diff --git a/CMake/Packages/FindSDL2.cmake b/CMake/Packages/FindSDL2.cmake new file mode 100644 index 000000000..236d6b4b9 --- /dev/null +++ b/CMake/Packages/FindSDL2.cmake @@ -0,0 +1,163 @@ +# Locate SDL2 library +# This module defines +# SDL2_LIBRARY, the name of the library to link against +# SDL2_FOUND, if false, do not try to link to SDL2 +# SDL2_INCLUDE_DIR, where to find SDL.h +# +# This module responds to the the flag: +# SDL2_BUILDING_LIBRARY +# If this is defined, then no SDL2main will be linked in because +# only applications need main(). +# Otherwise, it is assumed you are building an application and this +# module will attempt to locate and set the the proper link flags +# as part of the returned SDL2_LIBRARY variable. +# +# Don't forget to include SDLmain.h and SDLmain.m your project for the +# OS X framework based version. (Other versions link to -lSDL2main which +# this module will try to find on your behalf.) Also for OS X, this +# module will automatically add the -framework Cocoa on your behalf. +# +# +# Additional Note: If you see an empty SDL2_LIBRARY_TEMP in your configuration +# and no SDL2_LIBRARY, it means CMake did not find your SDL2 library +# (SDL2.dll, libsdl2.so, SDL2.framework, etc). +# Set SDL2_LIBRARY_TEMP to point to your SDL2 library, and configure again. +# Similarly, if you see an empty SDL2MAIN_LIBRARY, you should set this value +# as appropriate. These values are used to generate the final SDL2_LIBRARY +# variable, but when these values are unset, SDL2_LIBRARY does not get created. +# +# +# $SDL2DIR is an environment variable that would +# correspond to the ./configure --prefix=$SDL2DIR +# used in building SDL2. +# l.e.galup 9-20-02 +# +# Modified by Eric Wing. +# Added code to assist with automated building by using environmental variables +# and providing a more controlled/consistent search behavior. +# Added new modifications to recognize OS X frameworks and +# additional Unix paths (FreeBSD, etc). +# Also corrected the header search path to follow "proper" SDL guidelines. +# Added a search for SDL2main which is needed by some platforms. +# Added a search for threads which is needed by some platforms. +# Added needed compile switches for MinGW. +# +# On OSX, this will prefer the Framework version (if found) over others. +# People will have to manually change the cache values of +# SDL2_LIBRARY to override this selection or set the CMake environment +# CMAKE_INCLUDE_PATH to modify the search paths. +# +# Note that the header path has changed from SDL2/SDL.h to just SDL.h +# This needed to change because "proper" SDL convention +# is #include "SDL.h", not . This is done for portability +# reasons because not all systems place things in SDL2/ (see FreeBSD). + +#============================================================================= +# Copyright 2003-2009 Kitware, Inc. +# +# Distributed under the OSI-approved BSD License (the "License"); +# see accompanying file Copyright.txt for details. +# +# This software is distributed WITHOUT ANY WARRANTY; without even the +# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# See the License for more information. +#============================================================================= +# (To distribute this file outside of CMake, substitute the full +# License text for the above reference.) + +SET(SDL2_SEARCH_PATHS + ~/Library/Frameworks + /Library/Frameworks + /usr/local + /usr + /sw # Fink + /opt/local # DarwinPorts + /opt/csw # Blastwave + /opt +) + +FIND_PATH(SDL2_INCLUDE_DIR SDL.h + HINTS + $ENV{SDL2DIR} + PATH_SUFFIXES include/SDL2 include + PATHS ${SDL2_SEARCH_PATHS} +) + +FIND_LIBRARY(SDL2_LIBRARY_TEMP + NAMES SDL2 + HINTS + $ENV{SDL2DIR} + PATH_SUFFIXES lib64 lib + PATHS ${SDL2_SEARCH_PATHS} +) + +IF(NOT SDL2_BUILDING_LIBRARY) + IF(NOT ${SDL2_INCLUDE_DIR} MATCHES ".framework") + # Non-OS X framework versions expect you to also dynamically link to + # SDL2main. This is mainly for Windows and OS X. Other (Unix) platforms + # seem to provide SDL2main for compatibility even though they don't + # necessarily need it. + FIND_LIBRARY(SDL2MAIN_LIBRARY + NAMES SDL2main + HINTS + $ENV{SDL2DIR} + PATH_SUFFIXES lib64 lib + PATHS ${SDL2_SEARCH_PATHS} + ) + ENDIF(NOT ${SDL2_INCLUDE_DIR} MATCHES ".framework") +ENDIF(NOT SDL2_BUILDING_LIBRARY) + +# SDL2 may require threads on your system. +# The Apple build may not need an explicit flag because one of the +# frameworks may already provide it. +# But for non-OSX systems, I will use the CMake Threads package. +IF(NOT APPLE) + FIND_PACKAGE(Threads) +ENDIF(NOT APPLE) + +# MinGW needs an additional library, mwindows +# It's total link flags should look like -lmingw32 -lSDL2main -lSDL2 -lmwindows +# (Actually on second look, I think it only needs one of the m* libraries.) +IF(MINGW) + SET(MINGW32_LIBRARY mingw32 CACHE STRING "mwindows for MinGW") +ENDIF(MINGW) + +IF(SDL2_LIBRARY_TEMP) + # For SDL2main + IF(NOT SDL2_BUILDING_LIBRARY) + IF(SDL2MAIN_LIBRARY) + SET(SDL2_LIBRARY_TEMP ${SDL2MAIN_LIBRARY} ${SDL2_LIBRARY_TEMP}) + ENDIF(SDL2MAIN_LIBRARY) + ENDIF(NOT SDL2_BUILDING_LIBRARY) + + # For OS X, SDL2 uses Cocoa as a backend so it must link to Cocoa. + # CMake doesn't display the -framework Cocoa string in the UI even + # though it actually is there if I modify a pre-used variable. + # I think it has something to do with the CACHE STRING. + # So I use a temporary variable until the end so I can set the + # "real" variable in one-shot. + IF(APPLE) + SET(SDL2_LIBRARY_TEMP ${SDL2_LIBRARY_TEMP} "-framework Cocoa") + ENDIF(APPLE) + + # For threads, as mentioned Apple doesn't need this. + # In fact, there seems to be a problem if I used the Threads package + # and try using this line, so I'm just skipping it entirely for OS X. + IF(NOT APPLE) + SET(SDL2_LIBRARY_TEMP ${SDL2_LIBRARY_TEMP} ${CMAKE_THREAD_LIBS_INIT}) + ENDIF(NOT APPLE) + + # For MinGW library + IF(MINGW) + SET(SDL2_LIBRARY_TEMP ${MINGW32_LIBRARY} ${SDL2_LIBRARY_TEMP}) + ENDIF(MINGW) + + # Set the final string here so the GUI reflects the final state. + SET(SDL2_LIBRARY ${SDL2_LIBRARY_TEMP} CACHE STRING "Where the SDL2 Library can be found") + # Set the temp variable to INTERNAL so it is not seen in the CMake GUI + SET(SDL2_LIBRARY_TEMP "${SDL2_LIBRARY_TEMP}" CACHE INTERNAL "") +ENDIF(SDL2_LIBRARY_TEMP) + +INCLUDE(FindPackageHandleStandardArgs) + +FIND_PACKAGE_HANDLE_STANDARD_ARGS(SDL2 REQUIRED_VARS SDL2_LIBRARY SDL2_INCLUDE_DIR) diff --git a/CMakeLists.txt b/CMakeLists.txt index 518e94ecc..be15b3e13 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,6 @@ -cmake_minimum_required(VERSION 2.6) +cmake_minimum_required(VERSION 2.8) -project(emulationstation) +project(emulationstation-all) #------------------------------------------------------------------------------- #add local find scripts to CMAKE path @@ -34,9 +34,10 @@ else() endif() find_package(Freetype REQUIRED) find_package(FreeImage REQUIRED) -find_package(SDL REQUIRED) -find_package(Boost REQUIRED COMPONENTS system filesystem) +find_package(SDL2 REQUIRED) +find_package(Boost REQUIRED COMPONENTS system filesystem date_time) find_package(Eigen3 REQUIRED) +find_package(CURL REQUIRED) #add ALSA for Linux if(${CMAKE_SYSTEM_NAME} MATCHES "Linux") @@ -49,6 +50,8 @@ if(DEFINED BCMHOST) add_definitions(-D_RPI_) endif() +#------------------------------------------------------------------------------- + if(MSVC) set(CMAKE_DEBUG_POSTFIX "d") add_definitions(-D_CRT_SECURE_NO_DEPRECATE) @@ -63,9 +66,10 @@ if(CMAKE_COMPILER_IS_GNUCXX) if (G++_VERSION VERSION_LESS 4.7) message(SEND_ERROR "You need at least G++ 4.7 to compile EmulationStation!") endif() + #set up compiler flags for GCC - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -O2") #support C++11 for std::, optimize - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -s") #strip binary + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wno-attributes -O3") #support C++11 for std::, optimize + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -O3") #-s = strip binary endif() if(${GLSystem} MATCHES "Desktop OpenGL") @@ -78,23 +82,26 @@ add_definitions(-DEIGEN_DONT_ALIGN) #------------------------------------------------------------------------------- #add include directories -set(ES_INCLUDE_DIRS +set(COMMON_INCLUDE_DIRS ${FREETYPE_INCLUDE_DIRS} ${FreeImage_INCLUDE_DIRS} - ${SDL_INCLUDE_DIR} + ${SDL2_INCLUDE_DIR} ${Boost_INCLUDE_DIRS} ${EIGEN3_INCLUDE_DIR} + ${CURL_INCLUDE_DIR} + ${CMAKE_CURRENT_SOURCE_DIR}/external + ${CMAKE_CURRENT_SOURCE_DIR}/es-core/src ) #add ALSA for Linux if(${CMAKE_SYSTEM_NAME} MATCHES "Linux") - LIST(APPEND ES_INCLUDE_DIRS + LIST(APPEND COMMON_INCLUDE_DIRS ${ALSA_INCLUDE_DIRS} ) endif() if(DEFINED BCMHOST) - LIST(APPEND ES_INCLUDE_DIRS + LIST(APPEND COMMON_INCLUDE_DIRS "/opt/vc/include" "/opt/vc/include/interface/vcos" "/opt/vc/include/interface/vmcs_host/linux" @@ -102,129 +109,16 @@ if(DEFINED BCMHOST) ) else() if(${GLSystem} MATCHES "Desktop OpenGL") - LIST(APPEND ES_INCLUDE_DIRS + LIST(APPEND COMMON_INCLUDE_DIRS ${OPENGL_INCLUDE_DIR} ) else() - LIST(APPEND ES_INCLUDE_DIRS + LIST(APPEND COMMON_INCLUDE_DIRS ${OPENGLES_INCLUDE_DIR} ) endif() endif() -#------------------------------------------------------------------------------- -#define basic sources and headers -set(ES_HEADERS - ${CMAKE_CURRENT_SOURCE_DIR}/src/AudioManager.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/EmulationStation.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/FileData.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/FolderData.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/Font.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/GameData.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/GuiComponent.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/ImageIO.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/InputConfig.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/InputManager.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/Log.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/MathExp.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/platform.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/Renderer.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/Settings.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/Sound.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/SystemData.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/VolumeControl.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/Window.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/XMLReader.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/components/AnimationComponent.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/components/ComponentListComponent.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/components/ImageComponent.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/components/ScrollableContainer.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/components/SliderComponent.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/components/SwitchComponent.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/components/TextComponent.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/components/TextListComponent.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/components/ThemeComponent.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/components/GuiBox.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/components/GuiDetectDevice.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/components/GuiFastSelect.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/components/GuiGameList.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/components/GuiInputConfig.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/components/GuiMenu.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/components/GuiSettingsMenu.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/pugiXML/pugiconfig.hpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/pugiXML/pugixml.hpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/resources/ResourceManager.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/resources/TextureResource.h - ${CMAKE_CURRENT_SOURCE_DIR}/data/Resources.h -) -set(ES_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/src/AudioManager.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/FolderData.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/Font.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/GameData.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/GuiComponent.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/ImageIO.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/InputConfig.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/InputManager.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/Log.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/main.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/MathExp.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/platform.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/Renderer_draw_gl.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/Renderer_init.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/Settings.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/Sound.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/SystemData.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/VolumeControl.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/Window.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/XMLReader.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/components/AnimationComponent.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/components/ComponentListComponent.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/components/ImageComponent.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/components/ScrollableContainer.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/components/SliderComponent.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/components/SwitchComponent.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/components/TextComponent.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/components/ThemeComponent.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/components/GuiBox.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/components/GuiDetectDevice.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/components/GuiFastSelect.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/components/GuiGameList.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/components/GuiInputConfig.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/components/GuiMenu.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/components/GuiSettingsMenu.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/pugiXML/pugixml.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/resources/ResourceManager.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/resources/TextureResource.cpp - - ${CMAKE_CURRENT_SOURCE_DIR}/data/ResourceUtil.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/data/converted/ES_logo_16_png.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/data/converted/ES_logo_32_png.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/data/converted/bar_png.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/data/converted/corner_png.cpp -) - -SOURCE_GROUP(resources FILES ResourceUtil.cpp) - -#add open gl specific sources -if(${GLSystem} MATCHES "Desktop OpenGL") - LIST(APPEND ES_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/src/Renderer_init_sdlgl.cpp - ) -else() - LIST(APPEND ES_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/src/Renderer_init_rpi.cpp - ) -endif() - -#------------------------------------------------------------------------------- -#define OS specific sources and headers -if(MSVC) - LIST(APPEND ES_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/src/EmulationStation.rc - ) -endif() - #------------------------------------------------------------------------------- #define libraries and directories if(DEFINED BCMHOST) @@ -238,64 +132,56 @@ else() ) endif() -set(ES_LIBRARIES +set(COMMON_LIBRARIES ${Boost_LIBRARIES} ${FREETYPE_LIBRARIES} ${FreeImage_LIBRARIES} - ${SDL_LIBRARY} - ${SDLMAIN_LIBRARY} + ${SDL2_LIBRARY} + ${CURL_LIBRARIES} + pugixml + nanosvg ) #add ALSA for Linux if(${CMAKE_SYSTEM_NAME} MATCHES "Linux") - LIST(APPEND ES_LIBRARIES + LIST(APPEND COMMON_LIBRARIES ${ALSA_LIBRARY} ) endif() if(DEFINED BCMHOST) - LIST(APPEND ES_LIBRARIES + LIST(APPEND COMMON_LIBRARIES bcm_host EGL ${OPENGLES_LIBRARIES} ) else() if(MSVC) - LIST(APPEND ES_LIBRARIES + LIST(APPEND COMMON_LIBRARIES winmm ) endif() if(${GLSystem} MATCHES "Desktop OpenGL") - LIST(APPEND ES_LIBRARIES + LIST(APPEND COMMON_LIBRARIES ${OPENGL_LIBRARIES} ) else() - LIST(APPEND ES_LIBRARIES + LIST(APPEND COMMON_LIBRARIES ${OPENGLES_LIBRARIES} ) endif() endif() #------------------------------------------------------------------------------- -#set up build directories +# set up build directories set(dir ${CMAKE_CURRENT_SOURCE_DIR}) set(EXECUTABLE_OUTPUT_PATH ${dir} CACHE PATH "Build directory" FORCE) set(LIBRARY_OUTPUT_PATH ${dir} CACHE PATH "Build directory" FORCE) -#------------------------------------------------------------------------------- -#define target -include_directories(${ES_INCLUDE_DIRS}) -add_executable(emulationstation ${ES_SOURCES} ${ES_HEADERS}) -target_link_libraries(emulationstation ${ES_LIBRARIES}) -#special properties for windows builds -if(MSVC) - #show console in debug builds, but not in proper release builds - #Note that up to CMake 2.8.10 this feature is broken: http://public.kitware.com/Bug/view.php?id=12566 - set_target_properties(emulationstation PROPERTIES LINK_FLAGS_DEBUG "/SUBSYSTEM:CONSOLE") - set_target_properties(emulationstation PROPERTIES COMPILE_DEFINITIONS_DEBUG "_CONSOLE") - set_target_properties(emulationstation PROPERTIES LINK_FLAGS_RELWITHDEBINFO "/SUBSYSTEM:CONSOLE") - set_target_properties(emulationstation PROPERTIES COMPILE_DEFINITIONS_RELWITHDEBINFO "_CONSOLE") - set_target_properties(emulationstation PROPERTIES LINK_FLAGS_RELEASE "/SUBSYSTEM:WINDOWS") - set_target_properties(emulationstation PROPERTIES LINK_FLAGS_MINSIZEREL "/SUBSYSTEM:WINDOWS") -endif() +#------------------------------------------------------------------------------- +# add each component + +add_subdirectory("external") +add_subdirectory("es-core") +add_subdirectory("es-app") diff --git a/CREDITS.md b/CREDITS.md index e46f8bc28..49c70ddbc 100644 --- a/CREDITS.md +++ b/CREDITS.md @@ -1,14 +1,17 @@ Programming Alec "Aloshi" Lofquist - http://www.aloshi.com +UI Art & Design + Nils Bonenberger -Resources + +Libraries ========= PugiXML http://pugixml.org/ -SDL 1.2 +SDL 2 http://www.libsdl.org/ FreeImage @@ -16,3 +19,18 @@ FreeImage FreeType http://www.freetype.org + +cURL + http://curl.haxx.se/ + +Boost + http://www.boost.org/ + +nanosvg + https://github.com/memononen/nanosvg + +Resources +========= + +Open Sans font + http://www.google.com/fonts/specimen/Open+Sans \ No newline at end of file diff --git a/DEVNOTES.md b/DEVNOTES.md new file mode 100644 index 000000000..808a47f17 --- /dev/null +++ b/DEVNOTES.md @@ -0,0 +1,45 @@ +Also known as "Really Bad Technical Documentation" + +These are mostly notes I create as I go along, marking potential gotchas for people who might try to extend my code. +Some day I'll try and add an overview of the code structure, what each class does, etc. + +Development Environment +======================= + +I personally launch ES in windowed mode with a smaller resolution than my monitor and with debug text enabled. + +`emulationstation --windowed --debug --resolution 1280 720` + + +Creating a new GuiComponent +=========================== + +You probably want to override: + + `bool input(InputConfig* config, Input input);` + Check if some input is mapped to some action with `config->isMappedTo("a", input);`. + Check if an input is "pressed" with `input.value != 0` (input.value *can* be negative in the case of axes). + + `void update(int deltaTime);` + `deltaTime` is in milliseconds. + + `void render(const Eigen::Affine3f& parentTrans);` + You probably want to do `Eigen::Affine3f trans = parentTrans * getTransform();` to get your final "modelview" matrix. + Apply the modelview matrix with `Renderer::setMatrix(const Eigen::Affine3f&)`. + Render any children the component may have with `renderChildren(parentTrans);`. + + +Creating a new GameListView Class +================================= + +1. Don't allow the user to navigate to the root node's parent. If you use a stack of some sort to keep track of past cursor states this will be a natural side effect. + + + +Creating a new Component +======================== + +If your component is not made up of other components, and you draw something to the screen with OpenGL, make sure: + +* Your vertex positions are rounded before you render (you can use round(float) in Util.h to do this). +* Your transform matrix's translation is rounded (you can use roundMatrix(affine3f) in Util.h to do this). \ No newline at end of file diff --git a/GAMELISTS.md b/GAMELISTS.md new file mode 100644 index 000000000..5c0ae1736 --- /dev/null +++ b/GAMELISTS.md @@ -0,0 +1,87 @@ +Gamelists +========= + +The gamelist.xml file for a system defines metadata for a system's games, such as a name, image (like a screenshot or box art), description, release date, and rating. + +ES will check three places for a gamelist.xml in the following order, using the first one it finds: +* `[SYSTEM_PATH]/gamelist.xml` +* `~/.emulationstation/gamelists/[SYSTEM_NAME]/gamelist.xml` +* `/etc/emulationstation/gamelists/[SYSTEM_NAME]/gamelist.xml` + +An example gamelist.xml: +```xml + + + /home/pi/ROMs/nes/mm2.nes + Mega Man 2 + Mega Man 2 is a classic NES game which follows Mega Man as he murders eight robot masters in cold blood. + ~/.emulationstation/downloaded_images/nes/Mega Man 2-image.png + + +``` + +Everything is enclosed in a `` tag. The information for each game or folder is enclosed in a corresponding tag (`` or ``). Each piece of metadata is encoded as a string. + + +Reference +========= + +(if you suspect this section is out of date, check out `src/MetaData.cpp`) + +There are a few types of metadata: + +* `string` - just text. +* `image_path` - a path to an image. This path should be either the absolute to the image, a path relative to the system games folder that starts with "./" (e.g. `./mm2_image.png`), or a path relative to the home directory that starts with "~/" (e.g. `~/.emulationstation/downloaded_images/nes/mm2-image.png`). Images will be automatically resized by OpenGL to fit the corresponding `` tag in the current theme. Smaller images will load faster, so try to keep resolution low! +* `float` - a floating-point decimal value (written as a string). +* `integer` - an integer value (written as a string). +* `datetime` - a date and, potentially, a time. These are encoded as an ISO string, in the following format: "%Y%m%dT%H%M%S%F%q". For example, the release date for Chrono Trigger is encoded as "19950311T000000" (no time specified). + +Some metadata is also marked as "statistic" - these are kept track of by ES and do not show up in the metadata editor. They are shown in certain views (for example, the detailed view shows both `playcount` and `lastplayed`). + +#### `` + +* `name` - string, the displayed name for the game. +* `desc` - string, a description of the game. Longer descriptions will automatically scroll, so don't worry about size. +* `image` - image_path, the path to an image to display for the game (like box art or a screenshot). +* `thumbnail` - image_path, the path to a smaller image, displayed in image lists like the grid view. Should be small to ensure quick loading. *Currently not used.* +* `rating` - float, the rating for the game, expressed as a floating point number between 0 and 1. Arbitrary values are fine (ES can display half-stars, quarter-stars, etc). +* `releasedate` - datetime, the date the game was released. Displayed as date only, time is ignored. +* `developer` - string, the developer for the game. +* `publisher` - string, the publisher for the game. +* `genre` - string, the (primary) genre for the game. +* `players` - integer, the number of players the game supports. +* `playcount` - statistic, integer, the number of times this game has been played +* `lastplayed` - statistic, datetime, the last date and time this game was played. + + +#### `` +* `name` - string, the displayed name for the folder. +* `desc` - string, the description for the folder. +* `image` - image_path, the path to an image to display for the folder. +* `thumbnail` - image_path, the path to a smaller image to display for the folder. *Currently not used.* + + +Things to be Aware Of +===================== + +* You can use ES's built-in [scraping](http://en.wikipedia.org/wiki/Web_scraping) tools to avoid creating a gamelist.xml by hand, as described in README.md. + +* ES will try to write any image paths as relative to the current system games path or relative to the current home directory if it can. This is done to try and keep installations portable (so you can copy them between computers). + +* One thing to be aware of: the EmulationStation text rendering code doesn't currently support Unicode. If I fix this in the future, it will probably use UTF-8. For now, you'll just have to convert names and descriptions to ASCII. Sorry! + +* If a value matches the default for a particular piece of metadata, ES will not write it to the gamelist.xml (for example, if `genre` isn't specified, ES won't write an empty genre tag; if `players` is 1, ES won't write a `players` tag). + +* A `game` can actually point to a folder/directory if the the folder has a matching extension. + +* `folder` metadata will only be used if a game is found inside of that folder. + +* ES will keep entries for games and folders that it can't find the files for. + +* The switch `--gamelist-only` can be used to skip automatic searching, and only display games defined in the system's gamelist.xml. + +* The switch `--ignore-gamelist` can be used to ignore the gamelist and force ES to use the non-detailed view. + +* If at least one game in a system has an image specified, ES will use the detailed view for that system (which displays metadata alongside the game list). + +* If you want to write your own scraper, the built-in scraping system is actually pretty extendable if you can get past the ugly function declarations and your instinctual fear of C++. Check out `src/scrapers/GamesDBScraper.cpp` for an example (it's less than a hundred lines of actual code). An offline scraper is also possible (though you'll have to subclass `ScraperRequest`). I hope to write a more complete guide on how to do this in the future. diff --git a/LICENSE.md b/LICENSE.md index 67bc5a9b8..125abdaa0 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,4 +1,4 @@ -Copyright (c) 2013 Alec Lofquist +Copyright (c) 2014 Alec Lofquist Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index 14f555839..864ed2e51 100644 --- a/README.md +++ b/README.md @@ -3,168 +3,214 @@ EmulationStation A cross-platform graphical front-end for emulators with controller navigation. +Project website: http://emulationstation.org + **Raspberry Pi users:** A cool guy named petrockblog made a script which automatically installs many emulators and ES. It also includes options for configuring your RPi and setting it up to boot directly into ES. You can find it here: https://github.com/petrockblog/RetroPie-Setup +Download +======== + +Download a pre-compiled version at [emulationstation.org](http://emulationstation.org#download). + + I found a bug! I have a problem! ================================ - First, try to check the [issue list](https://github.com/Aloshi/EmulationStation/issues?state=open) for some entries that might match your problem. Make sure to check closed issues too! + - If you're running EmulationStation on a on Raspberry Pi and have problems with config file changes not taking effect, content missing after editing, etc., check if your SD card is corrupted (see issues [#78](https://github.com/Aloshi/EmulationStation/issues/78) and [#107](https://github.com/Aloshi/EmulationStation/issues/107)). You can do this with free tools like [h2testw](http://www.heise.de/download/h2testw.html) or [F3](http://oss.digirati.com.br/f3/). + - Try to update to the latest version of EmulationStation using git (you might need to delete your `es_input.cfg` and `es_settings.cfg` after that to reset them to default values): -``` -cd EmulationStation +```bash +cd YourEmulationStationDirectory git pull -export CXX=g++-4.7 cmake . make ``` + - If your problem still isn't gone, the best way to report a bug is to post an issue on GitHub. Try to post the simplest steps possible to reproduce the bug. Include files you think might be related (except for ROMs, of course). If you haven't re-run ES since the crash, the log file `~/.emulationstation/es_log.txt` is also helpful. Building ======== -EmulationStation uses some C++11 code, which means you'll need to install at least g++-4.7 on Linux, or VS2010 on Windows. -For installing and switching to g++-4.7 see [here](http://lektiondestages.blogspot.de/2013/05/installing-and-switching-gccg-versions.html). You can also just use `export CXX=g++-4.7` to explicitly specify the compiler for CMake (make sure you delete your CMake cache files if it's not working). +EmulationStation uses some C++11 code, which means you'll need to use at least g++-4.7 on Linux, or VS2010 on Windows, to compile. -EmulationStation has a few dependencies. For building, you'll need SDL 1.2, Boost.System, Boost.Filesystem, FreeImage, FreeType, and Eigen 3. You'll also need the DejaVu TrueType font on Linux to run ES. +EmulationStation has a few dependencies. For building, you'll need SDL2, Boost (System, Filesystem, DateTime), FreeImage, FreeType, Eigen3, and cURL. -**On Linux:** +**On Debian/Ubuntu:** All of this be easily installed with apt-get: -``` -sudo apt-get install libsdl1.2-dev libboost-system-dev libboost-filesystem-dev libfreeimage-dev libfreetype6-dev libeigen3-dev ttf-dejavu +```bash +sudo apt-get install libsdl2-dev libboost-system-dev libboost-filesystem-dev libboost-date-time-dev libfreeimage-dev libfreetype6-dev libeigen3-dev libcurl4-openssl-dev libasound2-dev libgl1-mesa-dev ``` -On "desktop" Linux (that is, *not* the Raspberry Pi), you'll also need OpenGL. Try installing the MESA development package with: -``` -sudo apt-get install libgl1-mesa-dev -``` - -On the Raspberry Pi, there are also a few special libraries, located in /opt/vc/: the Broadcom libraries, libEGL, and GLES. You shouldn't need to install them. - -**Generate and Build Makefile with CMake:** -``` -cd EmulationStation -export CXX=g++-4.7 +Then, generate and build the Makefile with CMake: +```bash +cd YourEmulationStationDirectory cmake . make ``` +**On the Raspberry Pi:** + +Complete Raspberry Pi build instructions at [emulationstation.org](http://emulationstation.org/gettingstarted.html#install_rpi_standalone). + **On Windows:** -[Boost](http://www.boost.org/users/download/) (you'll need to compile for Boost.Filesystem) +[Boost](http://www.boost.org/users/download/) (you'll need to compile yourself or get the pre-compiled binaries) -[Eigen 3](http://eigen.tuxfamily.org/index.php?title=Main_Page) +[Eigen3](http://eigen.tuxfamily.org/index.php?title=Main_Page) [FreeImage](http://downloads.sourceforge.net/freeimage/FreeImage3154Win32.zip) [FreeType2](http://download.savannah.gnu.org/releases/freetype/freetype-2.4.9.tar.bz2) (you'll need to compile) -[SDL-1.2](http://www.libsdl.org/release/SDL-devel-1.2.15-VC.zip) +[SDL2](http://www.libsdl.org/release/SDL2-devel-2.0.0-VC.zip) -(remember to copy necessary .DLLs into the same folder as the executable: FreeImage.dll, freetype6.dll, SDL.dll, and zlib1.dll) +[CURL](http://curl.haxx.se/download.html) (you'll need to compile or get the pre-compiled (DLL version)) + +(remember to copy necessary .DLLs into the same folder as the executable: FreeImage.dll, freetype6.dll, SDL2.dll, libcurl.dll, and zlib1.dll) [CMake](http://www.cmake.org/cmake/resources/software.html) (this is used for generating the Visual Studio project) -(If you don't know how to use CMake, here are some hints: run cmake-gui and point it at your EmulationStation folder. Point the "build" directory somewhere - I use EmulationStation/build. Click configure, choose "Visual Studio 2010 Project", fill in red fields as they appear, then click Generate.) +(If you don't know how to use CMake, here are some hints: run cmake-gui and point it at your EmulationStation folder. Point the "build" directory somewhere - I use EmulationStation/build. Click configure, choose "Visual Studio [year] Project", fill in red fields as they appear and keep clicking Configure, then click Generate.) Configuring =========== **~/.emulationstation/es_systems.cfg:** -When first run, an example systems configuration file will be created at $HOME/.emulationstation/es_systems.cfg. This example has some comments explaining how to write the configuration file, and an example RetroArch launch command. See the "Writing an es_systems.cfg" section for more information. +When first run, an example systems configuration file will be created at `~/.emulationstation/es_systems.cfg`. `~` is `$HOME` on Linux, and `%HOMEPATH%` on Windows. This example has some comments explaining how to write the configuration file. See the "Writing an es_systems.cfg" section for more information. + +**Keep in mind you'll have to set up your emulator separately from EmulationStation!** **~/.emulationstation/es_input.cfg:** -When you first start EmulationStation, you will be prompted to configure any input devices you wish to use. The process is thus: +When you first start EmulationStation, you will be prompted to configure an input device. The process is thus: -1. Press a button on any device you wish to use. *This includes the keyboard.* If you are unable to configure a device, hold a button on the first device to continue to step 2. +1. Hold a button on the device you want to configure. This includes the keyboard. -2. Press the displayed input for each device in sequence. You will be prompted for Up, Down, Left, Right, A (Select), B (Back), Menu, Select (fast select), PageUp, and PageDown, Volume up and Volume down. If your controller doesn't have enough buttons to map PageUp/PageDown, it will be skipped. +2. Press the buttons as they appear in the list. Some inputs can be skipped by holding any button down for a few seconds (e.g. page up/page down). -3. Your config will be saved to `~/.emulationstation/es_input.cfg`. If you wish to reconfigure, just delete this file. +3. You can review your mappings by pressing up and down, making any changes by pressing A. -*NOTE: If `~/.emulationstation/es_input.cfg` is present but does not contain any available joysticks or a keyboard, an emergency default keyboard mapping will be provided.* +4. Choose "SAVE" to save this device and close the input configuration screen. -As long as ES hasn't frozen, you can always press F4 to close the application. +The new configuration will be added to the `~/.emulationstation/es_input.cfg` file. + +**Both new and old devices can be (re)configured at any time by pressing the Start button and choosing "CONFIGURE INPUT".** From here, you may unplug the device you used to open the menu and plug in a new one, if necessary. New devices will be appended to the existing input configuration file, so your old devices will remain configured. + +**If your controller stops working, you can delete the `~/.emulationstation/es_input.cfg` file to make the input configuration screen re-appear on next run.** -**Keep in mind you'll have to set up your emulator separately from EmulationStation.** -I am currently also working on a stand-alone tool, [ES-config](https://github.com/Aloshi/ES-config), that will help make configuring emulators easier. - -After you launch a game, EmulationStation will return once your system's command terminates (i.e. your emulator closes). - - -You can use `--help` to view a list of command-line options. Briefly outlined here: +You can use `--help` or `-h` to view a list of command-line options. Briefly outlined here: ``` --w [width] - specify resolution width. --h [height] - specify resolution height. +--resolution [width] [height] - try and force a particular resolution --gamelist-only - only display games defined in a gamelist.xml file. --ignore-gamelist - do not parse any gamelist.xml files. --draw-framerate - draw the framerate. --no-exit - do not display 'exit' in the ES menu. --debug - print additional output to the console, primarily about input. ---dimtime [seconds] - delay before dimming the screen and entering sleep mode. Default is 30, use 0 for never. ---windowed - run ES in a window. +--windowed - run ES in a window, works best in conjunction with --resolution [w] [h]. +--scrape - run the interactive command-line metadata scraper. ``` +As long as ES hasn't frozen, you can always press F4 to close the application. + + Writing an es_systems.cfg ========================= -The file `~/.emulationstation/es_systems.cfg` contains the system configuration data for EmulationStation. A system is a NAME, DESCNAME, PATH, EXTENSION, and COMMAND. You can define any number of systems, just use every required variable again. You can switch between systems by pressing left and right. They will cycle in the order they are defined. -The NAME is what ES will use to internally identify the system. Theme.xml and gamelist.xml files will also be searched for in `~/.emulationstation/NAME/` if not found at the root of PATH. It is recommended that you abbreviate here if necessary, e.g. "nes". +Complete configuration instructions at [emulationstation.org](http://emulationstation.org/gettingstarted.html#config). -The DESCNAME is a "pretty" name for the system - it show up in a header if one is displayed. It is optional; if not supplied, it will copy NAME (note: DESCNAME must also *not* be the last tag you define for a system! This is due to the nature of how optional tags are implemented.). +The `es_systems.cfg` file contains the system configuration data for EmulationStation, written in XML. This tells EmulationStation what systems you have, what platform they correspond to (for scraping), and where the games are located. -The PATH is where ES will start the search for ROMs. All subdirectories (and links!) will be included. +ES will check two places for an es_systems.cfg file, in the following order, stopping after it finds one that works: +* `~/.emulationstation/es_systems.cfg` +* `/etc/emulationstation/es_systems.cfg` -**NOTE:** A system *must* have at least one game present in its PATH directory, or ES will ignore it. +The order EmulationStation displays systems reflects the order you define them in. -The EXTENSION is a list of extensions ES will consider valid and add to the list when searching. Each extension *must* start with a period. The list is delimited by a space. +**NOTE:** A system *must* have at least one game present in its "path" directory, or ES will ignore it! If no valid systems are found, ES will report an error and quit! -The COMMAND is the shell command ES will execute to start your emulator. As it is evaluated by the shell (i.e. bash), you can do some clever tricks if need be. +Here's an example es_systems.cfg: -The following "tags" are replaced by ES in COMMANDs: +```xml + + + + + + + snes + + + Super Nintendo Entertainment System + + + ~/roms/snes + + + .smc .sfc .SMC .SFC + + + snesemulator %ROM% + + + + snes + + + snes + + +``` + +The following "tags" are replaced by ES in launch commands: `%ROM%` - Replaced with absolute path to the selected ROM, with most Bash special characters escaped with a backslash. `%BASENAME%` - Replaced with the "base" name of the path to the selected ROM. For example, a path of "/foo/bar.rom", this tag would be "bar". This tag is useful for setting up AdvanceMAME. -`%ROM_RAW%` - Replaced with the unescaped absolute path to the selected ROM. If your emulator is picky about paths, you might want to use this instead of %ROM%, but enclosed in quotes. +`%ROM_RAW%` - Replaced with the unescaped, absolute path to the selected ROM. If your emulator is picky about paths, you might want to use this instead of %ROM%, but enclosed in quotes. + gamelist.xml ============ -The gamelist.xml for a system defines metadata for a system's games. This metadata includes an image (e.g. screenshot or box art), description, and name. +The gamelist.xml file for a system defines metadata for games, such as a name, image (like a screenshot or box art), description, release date, and rating. -**Making a gamelist.xml by hand sucks, so a cool guy named Pendor made a python script which automatically generates a gamelist.xml for you, with boxart automatically downloaded. It can be found here:** https://github.com/elpendor/ES-scraper +If at least one game in a system has an image specified, ES will use the detailed view for that system (which displays metadata alongside the game list). -If a file named gamelist.xml is found in the root of a system's search directory OR within `~/.emulationstation/%NAME%/`, game metadata will be loaded from it. This allows you to define images, descriptions, and different names for files. Note that only standard ASCII characters are supported for text (if you see a weird [X] symbol, you're probably using unicode!). -Images will be automatically resized to fit within the left column of the screen. Smaller images will load faster, so try to keep your resolution low. -An example gamelist.xml: -``` - - - /home/pi/ROMs/nes/mm2.nes - Mega Man 2 - Mega Man 2 is a classic NES game which follows Mega Man as he murders eight robot masters. - /home/pi/Screenshots/megaman2.png - - -``` +*You can use ES's [scraping](http://en.wikipedia.org/wiki/Web_scraping) tools to avoid creating a gamelist.xml by hand.* There are two ways to run the scraper: -The path element should be the absolute path of the ROM. Special characters SHOULD NOT be escaped. The image element is the path to an image to display above the description (like a screenshot or boxart). Most formats can be used (including png, jpg, gif, etc.). Not all elements need to be used. +* **If you want to scrape multiple games:** press start to open the menu and choose the "SCRAPER" option. Adjust your settings and press "SCRAPE NOW". +* **If you just want to scrape one game:** find the game on the game list in ES and press select. Choose "EDIT THIS GAME'S METADATA" and then press the "SCRAPE" button at the bottom of the metadata editor. + +You can also edit metadata within ES by using the metadata editor - just find the game you wish to edit on the gamelist, press Select, and choose "EDIT THIS GAME'S METADATA." + +A command-line version of the scraper is also provided - just run emulationstation with `--scrape` *(currently broken)*. + +The switch `--ignore-gamelist` can be used to ignore the gamelist and force ES to use the non-detailed view. + +If you're writing a tool to generate or parse gamelist.xml files, you should check out [GAMELISTS.md](GAMELISTS.md) for more detailed documentation. -The switch `--gamelist-only` can be used to skip automatic searching, and only display games defined in the system's gamelist.xml. -The switch `--ignore-gamelist` can be used to ignore the gamelist and use the non-detailed view. Themes ====== -By default, EmulationStation looks pretty ugly. You can fix that. If you want to know more about making your own themes (or editing existing ones), read THEMES.md! +By default, EmulationStation looks pretty ugly. You can fix that. If you want to know more about making your own themes (or editing existing ones), read [THEMES.md](THEMES.md)! I've put some themes up for download on my EmulationStation webpage: http://aloshi.com/emulationstation#themes + If you're using RetroPie, you should already have a nice set of themes automatically installed! --Aloshi + +-Alec "Aloshi" Lofquist http://www.aloshi.com +http://www.emulationstation.org diff --git a/THEMES.md b/THEMES.md index f35254e3d..d4a2bdd63 100644 --- a/THEMES.md +++ b/THEMES.md @@ -1,199 +1,480 @@ Themes ====== -EmulationStation allows each system to have its own "theme." A theme is a collection of display settings and images defined in an XML document. +EmulationStation allows each system to have its own "theme." A theme is a collection **views** that define some **elements**, each with their own **properties**. -ES will check 3 places for a theme, in the following order: - - a theme.xml file in the root of a system's %PATH% directory. - - $HOME/.emulationstation/%NAME%/theme.xml - - $HOME/.emulationstation/es_theme.xml +The first place ES will check for a theme is in the system's `` folder, for a theme.xml file: +* `[SYSTEM_PATH]/theme.xml` -Almost all positions, dimensions, origins, etc. work in percentages - that is, they are a decimal between 0 and 1, representing the percentage of the screen on that axis to use. This ensures that themes look similar at every resolution. +If that file doesn't exist, ES will try to find the theme in the current **theme set**. Theme sets are just a collection of individual system themes arranged in the "themes" folder under some name. Here's an example: -Colors are hex values, either 6 or 8 characters, defined as RRGGBB or RRGGBBAA. If alpha is not included, a default value of FF will be assumed (not transparent). - - -Example -======= - -Here's a theme that defines some colors, displays a background, and displays a logo in the top left corner: ``` +... + themes/ + my_theme_set/ + snes/ + theme.xml + my_cool_background.jpg + + nes/ + theme.xml + my_other_super_cool_background.jpg + + common_resources/ + scroll_sound.wav + + another_theme_set/ + snes/ + theme.xml + some_resource.svg +``` + +The theme set system makes it easy for users to try different themes and allows distributions to include multiple theme options. Users can change the currently active theme set in the "UI Settings" menu. The option is only visible if at least one theme set exists. + +There are two places ES can load theme sets from: +* `[HOME]/.emulationstation/themes/[CURRENT_THEME_SET]/[SYSTEM_THEME]/theme.xml` +* `/etc/emulationstation/themes/[CURRENT_THEME_SET]/[SYSTEM_THEME]/theme.xml` + +`[SYSTEM_THEME]` is the `` tag for the system, as defined in `es_systems.cfg`. If the `` tag is not set, ES will use the system's ``. + +If both files happen to exist, ES will pick the first one (the one located in the home directory). + +Again, the `[CURRENT_THEME_SET]` value is set in the "UI Settings" menu. If it has not been set yet or the previously selected theme set is missing, the first available theme set will be used as the default. + +Simple Example +============== + +Here is a very simple theme that changes the description text's color: + +```xml - 0000FF - 00FF00 - - - image - ./theme/background.png - 0 0 - 1 1 - 0 0 - - - - image - ./theme/logo.png - 0 0 - 0.4 0 - 0 0 - + 3 + + + 00FF00 + + + 0.5 0.5 + 0.5 0.5 + 0.8 0.8 + ./my_art/my_awesome_image.jpg + + - - - - 0000FF - 00FF00 - - - image - ./theme/background.png - 0 0 - 1 1 - 0 0 - - - ``` -Themes can be defined with two tags: `` and ``. -You can define both a normal and basic theme in the same file. - -If EmulationStation is running in "basic" mode, it will try to use ``. If that doesn't exist or ES is running in "detailed" mode (a gamelist.xml is present), `` will be used. - - -Components -========== -A theme is made up of components, which have various types. At the moment, the only type is `image`. Components are rendered in the order they are defined - that means you'll want to define the background first, a header image second, etc. - - -The "image" component -===================== -Used to display an image. - -`` - path to the image file. Most common file types are supported, and . and ~ are properly expanded. - -`` - the position, as two screen percentages, at which to display the image. - -`` - the dimensions, as two screen percentages, that the image will be resized to. Make one axis 0 to keep the aspect ratio. - -`` - the point on the image that `` defines, as an image percentage. "0.5 0.5", the center of the image, by default. - -`` - if present, the image is tiled instead of resized. - - -Display tags +How it works ============ -Display tags define some "meta" display attributes about your theme. Display tags must be at the root of the `` tree - for example, they can't be inside a component tag. They are not required. +Everything must be inside a `` tag. -**Game list attributes:** - -`` - the hex font color to use for games on the GuiGameList. - -`` - the hex font color to use for folders on the GuiGameList. - -`` - the hex font color to use for the description on the GuiGameList. - -`` - the hex color to use for the "selector bar" on the GuiGameList. Default is `000000FF`. - -`` - the hex color to use for selected text on the GuiGameList. Default is zero, which means no change. - -`` - if present, the games list names will be left aligned to the value of `` + ``. On by default for detailed themes. - -`` - if present, the system name header won't be displayed (useful for replacing it with an image). If you're making a complete custom theme, you probably want to use this. - -`` - if present, the divider between games on the detailed GuiGameList won't be displayed. - -`` - the percentage to offset the list by. Default is 0.5 (half the screen). **Will also move the selector bar**. - -`` - the percentage to offset the text in the list by. Default is 0.005. Only works in combination with ``. +**The `` tag *must* be specified**. This is the version of the theming system the theme was designed for. The current version is 3. -**Game image attributes:** +A *view* can be thought of as a particular "screen" within EmulationStation. Views are defined like this: -`` - two values for the position of the game art, in the form of `[x] [y]`, as a percentage. Default is `$infoWidth/2 $headerHeight`. - -`` - two values for the dimensions of the game art, in the form of `[width] [height]`, as a percentage of the screen. Default is `$infoWidth 0` (width fits within the info column). The image will only be resized if at least one axis is nonzero *and* exceeded by the image's size. You should always leave at least one axis as zero to preserve the aspect ratio. - -`` - two values for the origin of the game art, in the form of `[x] [y]`, as a percentage. Default is `0.5 0` (top-center of the image). - -`` - path to the image to display if a game's image is missing. '.' and '~' are expanded. - - - -**Fast Select box attributes:** - -`` - the hex color to use for the letter display on the Fast Select box. - -**WARNING:** the "box*" tags *WILL BE REMOVED* in future versions of EmulationStation. They have been replaced by a "nine patch" image that provides the (almost) the same functionality with less hassle. - -`` - path to a background image file. ~ and . are expanded. - -`` - if present, the background will be tiled instead of stretched. - -`` - path to the "left" border image file. It will be flipped for the right border. ~ and . are expanded. - -`` - if present, the horizontal image will be tiled instead of stretched downwards. - -`` - path to the "top" border image file. It will be flipped for the bottom border. ~ and . are expanded. - -`` - if present, the vertical image will be tiled instead of stretched to the right. - -`` - path to the "top left corner" image file. It will be flipped for the top right, bottom right, and bottom left corners. ~ and . are expanded. - -There is also a `` font tag (see the Fonts section for more info). - - -Fonts -===== - -Fonts are defined like so: - -``` - - ./path/to/font - 0.05 - +```xml + + ... define elements here ... + ``` -You can leave off any tags you don't want to use, and they'll use the default. Size is defined as a percentage of the screen height. "." and "~" are expanded for paths. - -NOTE: If your font size is too big, it'll overrun the maximum texture size. - -**Font tags:** - -`` - font to use for the game list. - -`` - font to use for description text. - -`` - font to use for the fast select letter. - -Audio -===== - -Themes can also define menu sounds. These tags go in the root of the `` tree, just like Display tags. Sounds should be in the .wav format. The relative path operator (.) and home operator (~) are properly expanded. - -`` - path to the sound to play when the game list or fast select menu is scrolling. - -`` - path to the sound to play when the user selects something from the game list. - -`` - path to the sound to play when the user "goes up" from a folder in the game list. - -`` - path to the sound to play when the user opens a menu (either the "main menu" or the fast select menu). -List of variables +An *element* is a particular visual element, such as an image or a piece of text. You can either modify an element that already exists for a particular view (as is done in the "description" example), like this: + +```xml + + ... define properties here ... + +``` + +Or, you can create your own elements by adding `extra="true"` (as is done in the "my_image" example) like this: + +```xml + + ... define properties here ... + +``` + +"Extra" elements will be drawn in the order they are defined (so define backgrounds first!). When they get drawn relative to the pre-existing elements depends on the view. Make sure "extra" element names do not clash with existing element names! An easy way to protect against this is to just start all your extra element names with some prefix like "e_". + + + +*Properties* control how a particular *element* looks - for example, its position, size, image path, etc. The type of the property determines what kinds of values you can use. You can read about the types below in the "Reference" section. Properties are defined like this: + +```xml + ValueHere +``` + + + + +Advanced Features ================= -Variables can be used in position and dimension definitions. They can be added, subtracted, multiplied, and divided. Parenthesis are valid. They are a percentage of the screen. +It is recommended that if you are writing a theme you launch EmulationStation with the `--debug` and `--windowed` switches. This way you can read error messages without having to check the log file. You can also reload the current gamelist view and system view with `Ctrl-R` if `--debug` is specified. -For example, if you wanted to place an image that covered the left half of the screen, up to the game list, you could use `$infoWidth 1`. +### The `` tag -`$headerHeight` - height of the system name header. +You can include theme files within theme files, similar to `#include` in C (though the internal mechanism is different, the effect is the same). Example: -`$infoWidth` - where the left of the game list begins. Will follow ``. +`~/.emulationstation/all_themes.xml`: +```xml + + 3 + + + ./all_themes/myfont.ttf + 00FF00 + + + +``` + +`~/.emulationstation/snes/theme.xml`: +```xml + + 3 + ./../all_themes.xml + + + FF0000 + + + +``` + +Is equivalent to this `snes/theme.xml`: +```xml + + 3 + + + ./all_themes/myfont.ttf + FF0000 + + + +``` + +Notice that properties that were not specified got merged (``) and the `snes/theme.xml` could overwrite the included files' values (``). Also notice the included file still needed the `` tag. --Aloshi -http://www.aloshi.com + +### Theming multiple views simultaneously + +Sometimes you want to apply the same properties to the same elements across multiple views. The `name` attribute actually works as a list (delimited by any characters of `\t\r\n ,` - that is, whitespace and commas). So, for example, to easily apply the same header to the basic, grid, and system views: + +```xml + + 3 + + + ./snes_art/snes_header.png + + + + + ./snes_art/snes_header_detailed.png + + + +``` + +This is equivalent to: +```xml + + 3 + + + ./snes_art/snes_header.png + + + + + ./snes_art/snes_header_detailed.png + + + + + ./snes_art/snes_header.png + + + + + ./snes_art/snes_header.png + + + ... and any other view that might try to look up "logo" ... + +``` + + + +### Theming multiple elements simultaneously + +You can theme multiple elements *of the same type* simultaneously. The `name` attribute actually works as a list (delimited by any characters of `\t\r\n ,` - that is, whitespace and commas), just like it does for views, as long as the elements have the same type. This is useful if you want to, say, apply the same color to all the metadata labels: + +```xml + + 3 + + + + 48474D + + + +``` + +Which is equivalent to: +```xml + + 3 + + + 48474D + + + 48474D + + + 48474D + + + 48474D + + + 48474D + + + 48474D + + + 48474D + + + 48474D + + + +``` + +Just remember, *this only works if the elements have the same type!* + + +Reference +========= + +## Views, their elements, and themable properties: + +#### basic +* `helpsystem name="help"` - ALL + - The help system style for this view. +* `image name="background"` - ALL + - This is a background image that exists for convenience. It goes from (0, 0) to (1, 1). +* `text name="logoText"` - ALL + - Displays the name of the system. Only present if no "logo" image is specified. Displayed at the top of the screen, centered by default. +* `image name="logo"` - ALL + - A header image. If a non-empty `path` is specified, `text name="headerText"` will be hidden and this image will be, by default, displayed roughly in its place. +* `textlist name="gamelist"` - ALL + - The gamelist. `primaryColor` is for games, `secondaryColor` is for folders. Centered by default. + +--- + +#### detailed +* `helpsystem name="help"` - ALL + - The help system style for this view. +* `image name="background"` - ALL + - This is a background image that exists for convenience. It goes from (0, 0) to (1, 1). +* `text name="logoText"` - ALL + - Displays the name of the system. Only present if no "logo" image is specified. Displayed at the top of the screen, centered by default. +* `image name="logo"` - ALL + - A header image. If a non-empty `path` is specified, `text name="headerText"` will be hidden and this image will be, by default, displayed roughly in its place. +* `textlist name="gamelist"` - ALL + - The gamelist. `primaryColor` is for games, `secondaryColor` is for folders. Left aligned by default. + +* Metadata + * Labels + * `text name="md_lbl_rating"` - ALL + * `text name="md_lbl_releasedate"` - ALL + * `text name="md_lbl_developer"` - ALL + * `text name="md_lbl_publisher"` - ALL + * `text name="md_lbl_genre"` - ALL + * `text name="md_lbl_players"` - ALL + * `text name="md_lbl_lastplayed"` - ALL + * `text name="md_lbl_playcount"` - ALL + + * Values + * All values will follow to the right of their labels if a position isn't specified. + + * `image name="md_image"` - POSITION | SIZE + - Path is the "image" metadata for the currently selected game. + * `rating name="md_rating"` - ALL + - The "rating" metadata. + * `datetime name="md_releasedate"` - ALL + - The "releasedate" metadata. + * `text name="md_developer"` - ALL + - The "developer" metadata. + * `text name="md_publisher"` - ALL + - The "publisher" metadata. + * `text name="md_genre"` - ALL + - The "genre" metadata. + * `text name="md_players"` - ALL + - The "players" metadata (number of players the game supports). + * `datetime name="md_lastplayed"` - ALL + - The "lastplayed" metadata. Displayed as a string representing the time relative to "now" (e.g. "3 hours ago"). + * `text name="md_playcount"` - ALL + - The "playcount" metadata (number of times the game has been played). + * `text name="md_description"` - POSITION | SIZE | FONT_PATH | FONT_SIZE | COLOR + - Text is the "desc" metadata. If no `pos`/`size` is specified, will move and resize to fit under the lowest label and reach to the bottom of the screen. + +--- + +#### grid +* `helpsystem name="help"` - ALL + - The help system style for this view. +* `image name="background"` - ALL + - This is a background image that exists for convenience. It goes from (0, 0) to (1, 1). +* `text name="logoText"` - ALL + - Displays the name of the system. Only present if no "logo" image is specified. Displayed at the top of the screen, centered by default. +* `image name="logo"` - ALL + - A header image. If a non-empty `path` is specified, `text name="headerText"` will be hidden and this image will be, by default, displayed roughly in its place. + +--- + +#### system +* `helpsystem name="help"` - ALL + - The help system style for this view. +* `image name="logo"` - PATH + - A logo image, to be displayed in the system logo carousel. +* You can use extra elements (elements with `extra="true"`) to add your own backgrounds, etc. They will be displayed behind the carousel, and scroll relative to the carousel. + + +## Types of properties: + +* NORMALIZED_PAIR - two decimals, in the range [0..1], delimited by a space. For example, `0.25 0.5`. Most commonly used for position (x and y coordinates) and size (width and height). +* PATH - a path. If the first character is a `~`, it will be expanded into the environment variable for the home path (`$HOME` for Linux or `%HOMEPATH%` for Windows). If the first character is a `.`, it will be expanded to the theme file's directory, allowing you to specify resources relative to the theme file, like so: `./../general_art/myfont.ttf`. +* BOOLEAN - `true`/`1` or `false`/`0`. +* COLOR - a hexidecimal RGB or RGBA color (6 or 8 digits). If 6 digits, will assume the alpha channel is `FF` (not transparent). +* FLOAT - a decimal. +* STRING - a string of text. + + +## Types of elements and their properties: + +Common to almost all elements is a `pos` and `size` property of the NORMALIZED_PAIR type. They are normalized in terms of their "parent" object's size; 99% of the time, this is just the size of the screen. In this case, `0 0` would correspond to the top left corner, and `1 1` the bottom right corner (a positive Y value points further down). `pos` almost always refers to the top left corner of your element. You *can* use numbers outside of the [0..1] range if you want to place an element partially or completely off-screen. + +The order you define properties in does not matter. +Remember, you do *not* need to specify every property! +*Note that a view may choose to only make only certain properties on a particular element themable!* + +#### image + +Can be created as an extra. + +* `pos` - type: NORMALIZED_PAIR. +* `size` - type: NORMALIZED_PAIR. + - If only one axis is specified (and the other is zero), the other will be automatically calculated in accordance with the image's aspect ratio. +* `maxSize` - type: NORMALIZED_PAIR. + - The image will be resized as large as possible so that it fits within this size and maintains its aspect ratio. Use this instead of `size` when you don't know what kind of image you're using so it doesn't get grossly oversized on one axis (e.g. with a game's image metadata). +* `origin` - type: NORMALIZED_PAIR. + - Where on the image `pos` refers to. For example, an origin of `0.5 0.5` and a `pos` of `0.5 0.5` would place the image exactly in the middle of the screen. If the "POSITION" and "SIZE" attributes are themable, "ORIGIN" is implied. +* `path` - type: PATH. + - Path to the image file. Most common extensions are supported (including .jpg, .png, and unanimated .gif). +* `tile` - type: BOOLEAN. + - If true, the image will be tiled instead of stretched to fit its size. Useful for backgrounds. +* `color` - type: COLOR. + - Multiply each pixel's color by this color. For example, an all-white image with `FF0000` would become completely red. You can also control the transparency of an image with `FFFFFFAA` - keeping all the pixels their normal color and only affecting the alpha channel. + +#### text + +Can be created as an extra. + +* `pos` - type: NORMALIZED_PAIR. +* `size` - type: NORMALIZED_PAIR. + - Possible combinations: + - `0 0` - automatically size so text fits on one line (expanding horizontally). + - `w 0` - automatically wrap text so it doesn't go beyond `w` (expanding vertically). + - `w h` - works like a "text box." If `h` is non-zero and `h` <= `fontSize` (implying it should be a single line of text), text that goes beyond `w` will be truncated with an elipses (...). +* `text` - type: STRING. +* `color` - type: COLOR. +* `fontPath` - type: PATH. + - Path to a truetype font (.ttf). +* `fontSize` - type: FLOAT. + - Size of the font as a percentage of screen height (e.g. for a value of `0.1`, the text's height would be 10% of the screen height). +* `alignment` - type: STRING. + - Valid values are "left", "center", or "right". Controls alignment on the X axis. "center" will also align vertically. +* `forceUppercase` - type: BOOLEAN. Draw text in uppercase. +* `lineSpacing` - type: FLOAT. Controls the space between lines (as a multiple of font height). Default is 1.5. + +#### textlist + +* `pos` - type: NORMALIZED_PAIR. +* `size` - type: NORMALIZED_PAIR. +* `selectorColor` - type: COLOR. + - Color of the "selector bar." +* `selectedColor` - type: COLOR. + - Color of the highlighted entry text. +* `primaryColor` - type: COLOR. + - Primary color; what this means depends on the text list. For example, for game lists, it is the color of a game. +* `secondaryColor` - type: COLOR. + - Secondary color; what this means depends on the text list. For example, for game lists, it is the color of a folder. +* `fontPath` - type: PATH. +* `fontSize` - type: FLOAT. +* `scrollSound` - type: PATH. + - Sound that is played when the list is scrolled. +* `alignment` - type: STRING. + - Valid values are "left", "center", or "right". Controls alignment on the X axis. +* `horizontalMargin` - type: FLOAT. + - Horizontal offset for text from the alignment point. If `alignment` is "left", offsets the text to the right. If `alignment` is "right", offsets text to the left. No effect if `alignment` is "center". Given as a percentage of the element's parent's width (same unit as `size`'s X value). +* `forceUppercase` - type: BOOLEAN. Draw text in uppercase. +* `lineSpacing` - type: FLOAT. Controls the space between lines (as a multiple of font height). Default is 1.5. + +#### ninepatch + +* `pos` - type: NORMALIZED_PAIR. +* `size` - type: NORMALIZED_PAIR. +* `path` - type: PATH. + +EmulationStation borrows the concept of "nine patches" from Android (or "9-Slices"). Currently the implementation is very simple and hard-coded to only use 48x48px images (16x16px for each "patch"). Check the `data/resources` directory for some examples (button.png, frame.png). + +#### rating + +* `pos` - type: NORMALIZED_PAIR. +* `size` - type: NORMALIZED_PAIR. + - Only one value is actually used. The other value should be zero. (e.g. specify width OR height, but not both. This is done to maintain the aspect ratio.) +* `filledPath` - type: PATH. + - Path to the "filled star" image. Image must be square (width equals height). +* `unfilledPath` - type: PATH. + - Path to the "unfilled star" image. Image must be square (width equals height). + +#### datetime + +* `pos` - type: NORMALIZED_PAIR. +* `size` - type: NORMALIZED_PAIR. + - You should probably not set this. Leave it to `fontSize`. +* `color` - type: COLOR. +* `fontPath` - type: PATH. +* `fontSize` - type: FLOAT. +* `forceUppercase` - type: BOOLEAN. Draw text in uppercase. + +#### sound + +* `path` - type: PATH. + - Path to the sound file. Only .wav files are currently supported. + +#### helpsystem + +* `pos` - type: NORMALIZED_PAIR. Default is "0.012 0.9515" +* `textColor` - type: COLOR. Default is 777777FF. +* `iconColor` - type: COLOR. Default is 777777FF. +* `fontPath` - type: PATH. +* `fontSize` - type: FLOAT. + +The help system is a special element that displays a context-sensitive list of actions the user can take at any time. You should try and keep the position constant throughout every screen. Keep in mind the "default" settings (including position) are used whenever the user opens a menu. + +[*Check out the "official" themes for some more examples!*](http://aloshi.com/emulationstation#themes) diff --git a/changelog.txt b/changelog.txt deleted file mode 100644 index ae49ec397..000000000 --- a/changelog.txt +++ /dev/null @@ -1,187 +0,0 @@ -May 13, 2013 --Ported to Windows. You'll need to change the lib_paths property sheet Include and Library directories (I didn't include dependencies!). --Added --windowed (only works for desktop builds). - -April 13, 2013 --Finally merged the unstable branch, which means better input everything! --Can now use multiple joysticks. --Can now remap keyboard input. --Hopefully prevented infinitely recursing symlinks. - -March 28, 2013 --Hopefully fixed bad joystick events at startup. - -March 25, 2013 --Fixed waking up from sleep with axes. - -March 19, 2013 --Finally added a "dim" or sleep mode. Change behavior with "--dimtime [positive integer time in seconds]", with 0 for off. - -March 17, 2013 --Added Fast Select font tag. - -January 26, 2013 --Added "Reload" option to the menu. This option reloads all game data. - -January 8, 2013 --Made a value of zero for "list selected color" mean no change. - -January 6, 2013 --Added tag support. - -December 20, 2012 --Added --debug command-line option. Useful if you're having input config problems. --Changed things so you can finish configuring without a keyboard. You should no longer need a keyboard to set up ES; SSH access should be sufficient. - -December 14, 2012 --Added %BASENAME% tag for launch commands. Useful for AdvMAME. - -December 8, 2012 --Fixed a segfault when opening the menu (related to sounds). Woops! --Fixed PAGEDOWN/PAGEUP not appearing in the input config GUI. --Fixed PAGEDOWN/PAGEUP not properly clearing/updating detail data. - -November 19 --Added Arch Linux's DejaVuSeriff.ttf path to the list of fonts to check for. - -November 17 --Fixed default game image resizing if none is defined. --Heavily refactored theming. You shouldn't notice any changes, but if something broke, let me know! - -November 14 --Added Exit command to the menu. - -October 31 --Added custom font support. Check out THEMES.md. --Happy halloween! - -October 26 --Hopefully fixed the black screen bug with certain programs. - -October 25 --Added gameImageNotFound tag for an image to display if a game image is not found/defined. --Fixed keyboard not skipping joystick input configuration. --Fixed a nasty crash bug with sounds. Always initialize your variables, kids! - -October 17 --Added GuiAnimation class which animates its children. --The game image on the game list now slides/fades in and out. --You can now define alpha in hex colors (add two characters) - e.g. FFFFFF2F - -October 14 --Fixed game list continuing to scroll when a menu is opened or a game is started. - -October 13 --Added sound support through SDL_mixer. --Added new theme tags for defining menu sounds. See THEMES.md for details. --Added new theme tags for defining game art information. See THEMES.md for details. - -October 10 --Added a theming tag for the Fast Select box's text. --Fixed GuiBox background being positioned wrong. --Fixed GuiBox/GuiFastSelect render order. --Redid tiling to use only 6 verticies (instead of tilecount-dependent) with wrapped textures. Tiling is also precise now (cuts off when it should). - -October 7 --Fixed borders for GuiBox. The right and bottom borders are flipped, too. --Added corners for GuiBox. --Added setFlipX() and setFlipY() to the GuiImage class. --Added theming tags for the Fast Select GuiBox! See THEMES.md for more details. Tiling still not perfect though. - -October 5 --GuiFastSelect is working, but ugly. --Began work on GuiBox for theming the fast select dialog. --Finally fixed detailed GuiGameList detection after input mapping. - -September 30 --Began implementing GuiFastSelect, currently invoked by holding F2. Unfortunately, it doesn't do anything yet. --Added . --Fixed OpenGL mipmap generation not setting a magnification filter. Hopefully this fixes the weird scaling. If not, I can switch from nearest neighbor to linear. - -September 29 --SDL is now completely shut down on both the RPi and SDL GL renderer. You may see the flicker of a terminal when you launch a game. This was done in preparation for audio. - -September 23 --Fixed crash when "%ROM%" isn't present in a launch command. Not sure why you'd ever do this on purpose, but hey. --Added relative path operator ("./") support for gamelist.xml, for both game paths and image paths. - -September 16 --Fixed a bug with skipping over unicode characters. [X] will be displayed if the character is not standard ASCII (characters 32 to 127). - -September 15 --Added , , and theme tags. See THEMES.md for details. --Fixed a bug causing gamelists to be read incorrectly. - -September 14 --Joystick names are now saved during input configuration to es_input.cfg. --When loading an input config, if JOYNAME is defined, load the first joystick with that name. If it is not present, load the first joystick (old behavior). --Joysticks should re-initialize properly with SDL on the desktop configuration. - -September 10 --Fixed multiple extensions breaking things. --Added Makefile.x86 for building on a desktop (acquire OpenGL context through SDL instead of EGL). - -September 8 --Added support for multiple filetypes for systems - just separate them with a space. --Updated example systems config to include example for multiple filetypes and be a little clearer. - -September 7 --Tiling is now much faster. --Added --draw-framerate and --help/-h command-line parameters. --Fixed themes not properly re-initializing. --Commented most headers. Things should be kind of understandable now. --Finally increased scrolling speed. - -September 3 --Everything is now rendered with OpenGL, leading to a (roughly) 600%+ speedup! - -August 13 --Tons of new theming features! --I've added a THEMES.md file for documentation on theming. --A CREDITS.md file. - --Fixed theme defaults not resetting when theme changes. --The game image on the GuiGameList now maintains its alpha channel. --Descriptions can now contain newline characters. --Changed the size of the game info column to be 50% of the screen (previously 40%). --Adjusted description to have a 3% left and right margins. --Added $infoWidth variable for playing with the size of the game info column. --Added tag that makes the game list left aligned instead of centered. --Made Renderer::LARGE (header) fontsize slightly bigger - -August 12 --If a theme.xml is not found in a system's directory, ES will now check for $HOME/.emulationstation/es_theme.xml. If present, it will load that. --Themes can now be used without the detailed GuiGameList. --Fixed GuiGameList image data not updating on system change/initial startup (finally!) --Made the GuiList code a little bit less likely to crash on empty lists - -August 10 --Themes now load from system directories (and thus you can set a different theme for each system) --Theme paths now expand . (to directory of this theme.xml) and ~ (to $HOME). --Added --ignore-gamelist switch. Does as it says, and forces the simple GuiGameList. --Folders that do not contain games will not be added. --Fixed float percentages in GuiTheme being converted to integers before they were converted to pixels...woops! - -August 9 --Removed multithreaded image loading --Improved GuiImage rendering speed by adding additional processing at load time (SDL_DisplayFormat) --Began work on the GuiTheme class, allowing custom theming with an XML file - -August 8 --Added automatic resizing of images using SDL_gfx --Experimenting with multithreaded image loading for the GuiImage class --Removed warning if an unknown variable is found in a systems config file (useful for additional utilities) - -August 7 --gamelist.xml files are now read from each system's individual search directory. --The switch --gamelist-only was added. Use it to skip automatic searching and only use files defined in gamelist.xml. --A gamelist.xml file can now specify a file that wasn't previously found by the automatic search. --Fixed alphabetizing uppercase and lowercase letters differently (woops!) --When loading the system config file, if a system doesn't contain any games, it will be automatically deleted. - -August 4 --Moved configuration files to $HOME/.emulationstation/ --Renderer::loadFonts() will now fall back to /usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf if LinLibertine.ttf is not found. --All folders should now be sorted alphabetically --Added Menu button --Added menu consisting of bash commands for "Restart" and "Shutdown" diff --git a/data/ResourceUtil.cpp b/data/ResourceUtil.cpp index d0b5b21ce..910ac2cb8 100644 --- a/data/ResourceUtil.cpp +++ b/data/ResourceUtil.cpp @@ -2,19 +2,91 @@ #include "Resources.h" -const size_t res2hNrOfFiles = 4; +const size_t res2hNrOfFiles = 40; const Res2hEntry res2hFiles[res2hNrOfFiles] = { - {":/bar.png", bar_png_size, bar_png_data}, - {":/corner.png", corner_png_size, corner_png_data}, - {":/ES_logo_16.png", ES_logo_16_png_size, ES_logo_16_png_data}, - {":/ES_logo_32.png", ES_logo_32_png_size, ES_logo_32_png_data} + {":/arrow.svg", arrow_svg_size, arrow_svg_data}, + {":/busy_0.svg", busy_0_svg_size, busy_0_svg_data}, + {":/busy_1.svg", busy_1_svg_size, busy_1_svg_data}, + {":/busy_2.svg", busy_2_svg_size, busy_2_svg_data}, + {":/busy_3.svg", busy_3_svg_size, busy_3_svg_data}, + {":/button.png", button_png_size, button_png_data}, + {":/button_filled.png", button_filled_png_size, button_filled_png_data}, + {":/checkbox_checked.svg", checkbox_checked_svg_size, checkbox_checked_svg_data}, + {":/checkbox_unchecked.svg", checkbox_unchecked_svg_size, checkbox_unchecked_svg_data}, + {":/fav_add.svg", fav_add_svg_size, fav_add_svg_data}, + {":/fav_remove.svg", fav_remove_svg_size, fav_remove_svg_data}, + {":/frame.png", frame_png_size, frame_png_data}, + {":/off.svg", off_svg_size, off_svg_data}, + {":/on.svg", on_svg_size, on_svg_data}, + {":/opensans_hebrew_condensed_light.ttf", opensans_hebrew_condensed_light_ttf_size, opensans_hebrew_condensed_light_ttf_data}, + {":/opensans_hebrew_condensed_regular.ttf", opensans_hebrew_condensed_regular_ttf_size, opensans_hebrew_condensed_regular_ttf_data}, + {":/option_arrow.svg", option_arrow_svg_size, option_arrow_svg_data}, + {":/scroll_gradient.png", scroll_gradient_png_size, scroll_gradient_png_data}, + {":/slider_knob.svg", slider_knob_svg_size, slider_knob_svg_data}, + {":/splash.svg", splash_svg_size, splash_svg_data}, + {":/star_filled.svg", star_filled_svg_size, star_filled_svg_data}, + {":/star_unfilled.svg", star_unfilled_svg_size, star_unfilled_svg_data}, + {":/textinput_ninepatch.png", textinput_ninepatch_png_size, textinput_ninepatch_png_data}, + {":/textinput_ninepatch_active.png", textinput_ninepatch_active_png_size, textinput_ninepatch_active_png_data}, + {":/window_icon_256.png", window_icon_256_png_size, window_icon_256_png_data}, + {":/help/button_a.svg", help_button_a_svg_size, help_button_a_svg_data}, + {":/help/button_b.svg", help_button_b_svg_size, help_button_b_svg_data}, + {":/help/button_l.svg", help_button_l_svg_size, help_button_l_svg_data}, + {":/help/button_r.svg", help_button_r_svg_size, help_button_r_svg_data}, + {":/help/button_select.svg", help_button_select_svg_size, help_button_select_svg_data}, + {":/help/button_start.svg", help_button_start_svg_size, help_button_start_svg_data}, + {":/help/button_x.svg", help_button_x_svg_size, help_button_x_svg_data}, + {":/help/button_y.svg", help_button_y_svg_size, help_button_y_svg_data}, + {":/help/dpad_all.svg", help_dpad_all_svg_size, help_dpad_all_svg_data}, + {":/help/dpad_down.svg", help_dpad_down_svg_size, help_dpad_down_svg_data}, + {":/help/dpad_left.svg", help_dpad_left_svg_size, help_dpad_left_svg_data}, + {":/help/dpad_leftright.svg", help_dpad_leftright_svg_size, help_dpad_leftright_svg_data}, + {":/help/dpad_right.svg", help_dpad_right_svg_size, help_dpad_right_svg_data}, + {":/help/dpad_up.svg", help_dpad_up_svg_size, help_dpad_up_svg_data}, + {":/help/dpad_updown.svg", help_dpad_updown_svg_size, help_dpad_updown_svg_data} }; res2hMapType::value_type mapTemp[] = { - std::make_pair(":/bar.png", res2hFiles[0]), - std::make_pair(":/corner.png", res2hFiles[1]), - std::make_pair(":/ES_logo_16.png", res2hFiles[2]), - std::make_pair(":/ES_logo_32.png", res2hFiles[3]) + std::make_pair(":/arrow.svg", res2hFiles[0]), + std::make_pair(":/busy_0.svg", res2hFiles[1]), + std::make_pair(":/busy_1.svg", res2hFiles[2]), + std::make_pair(":/busy_2.svg", res2hFiles[3]), + std::make_pair(":/busy_3.svg", res2hFiles[4]), + std::make_pair(":/button.png", res2hFiles[5]), + std::make_pair(":/button_filled.png", res2hFiles[6]), + std::make_pair(":/checkbox_checked.svg", res2hFiles[7]), + std::make_pair(":/checkbox_unchecked.svg", res2hFiles[8]), + std::make_pair(":/fav_add.svg", res2hFiles[9]), + std::make_pair(":/fav_remove.svg", res2hFiles[10]), + std::make_pair(":/frame.png", res2hFiles[11]), + std::make_pair(":/off.svg", res2hFiles[12]), + std::make_pair(":/on.svg", res2hFiles[13]), + std::make_pair(":/opensans_hebrew_condensed_light.ttf", res2hFiles[14]), + std::make_pair(":/opensans_hebrew_condensed_regular.ttf", res2hFiles[15]), + std::make_pair(":/option_arrow.svg", res2hFiles[16]), + std::make_pair(":/scroll_gradient.png", res2hFiles[17]), + std::make_pair(":/slider_knob.svg", res2hFiles[18]), + std::make_pair(":/splash.svg", res2hFiles[19]), + std::make_pair(":/star_filled.svg", res2hFiles[20]), + std::make_pair(":/star_unfilled.svg", res2hFiles[21]), + std::make_pair(":/textinput_ninepatch.png", res2hFiles[22]), + std::make_pair(":/textinput_ninepatch_active.png", res2hFiles[23]), + std::make_pair(":/window_icon_256.png", res2hFiles[24]), + std::make_pair(":/help/button_a.svg", res2hFiles[25]), + std::make_pair(":/help/button_b.svg", res2hFiles[26]), + std::make_pair(":/help/button_l.svg", res2hFiles[27]), + std::make_pair(":/help/button_r.svg", res2hFiles[28]), + std::make_pair(":/help/button_select.svg", res2hFiles[29]), + std::make_pair(":/help/button_start.svg", res2hFiles[30]), + std::make_pair(":/help/button_x.svg", res2hFiles[31]), + std::make_pair(":/help/button_y.svg", res2hFiles[32]), + std::make_pair(":/help/dpad_all.svg", res2hFiles[33]), + std::make_pair(":/help/dpad_down.svg", res2hFiles[34]), + std::make_pair(":/help/dpad_left.svg", res2hFiles[35]), + std::make_pair(":/help/dpad_leftright.svg", res2hFiles[36]), + std::make_pair(":/help/dpad_right.svg", res2hFiles[37]), + std::make_pair(":/help/dpad_up.svg", res2hFiles[38]), + std::make_pair(":/help/dpad_updown.svg", res2hFiles[39]) }; res2hMapType res2hMap(mapTemp, mapTemp + sizeof mapTemp / sizeof mapTemp[0]); diff --git a/data/Resources.h b/data/Resources.h index adb81fca4..376ed4658 100644 --- a/data/Resources.h +++ b/data/Resources.h @@ -5,17 +5,125 @@ #include #include -extern const size_t bar_png_size; -extern const unsigned char bar_png_data[]; +extern const size_t arrow_svg_size; +extern const unsigned char arrow_svg_data[]; -extern const size_t corner_png_size; -extern const unsigned char corner_png_data[]; +extern const size_t busy_0_svg_size; +extern const unsigned char busy_0_svg_data[]; -extern const size_t ES_logo_16_png_size; -extern const unsigned char ES_logo_16_png_data[]; +extern const size_t busy_1_svg_size; +extern const unsigned char busy_1_svg_data[]; -extern const size_t ES_logo_32_png_size; -extern const unsigned char ES_logo_32_png_data[]; +extern const size_t busy_2_svg_size; +extern const unsigned char busy_2_svg_data[]; + +extern const size_t busy_3_svg_size; +extern const unsigned char busy_3_svg_data[]; + +extern const size_t button_png_size; +extern const unsigned char button_png_data[]; + +extern const size_t button_filled_png_size; +extern const unsigned char button_filled_png_data[]; + +extern const size_t checkbox_checked_svg_size; +extern const unsigned char checkbox_checked_svg_data[]; + +extern const size_t checkbox_unchecked_svg_size; +extern const unsigned char checkbox_unchecked_svg_data[]; + +extern const size_t fav_add_svg_size; +extern const unsigned char fav_add_svg_data[]; + +extern const size_t fav_remove_svg_size; +extern const unsigned char fav_remove_svg_data[]; + +extern const size_t frame_png_size; +extern const unsigned char frame_png_data[]; + +extern const size_t off_svg_size; +extern const unsigned char off_svg_data[]; + +extern const size_t on_svg_size; +extern const unsigned char on_svg_data[]; + +extern const size_t opensans_hebrew_condensed_light_ttf_size; +extern const unsigned char opensans_hebrew_condensed_light_ttf_data[]; + +extern const size_t opensans_hebrew_condensed_regular_ttf_size; +extern const unsigned char opensans_hebrew_condensed_regular_ttf_data[]; + +extern const size_t option_arrow_svg_size; +extern const unsigned char option_arrow_svg_data[]; + +extern const size_t scroll_gradient_png_size; +extern const unsigned char scroll_gradient_png_data[]; + +extern const size_t slider_knob_svg_size; +extern const unsigned char slider_knob_svg_data[]; + +extern const size_t splash_svg_size; +extern const unsigned char splash_svg_data[]; + +extern const size_t star_filled_svg_size; +extern const unsigned char star_filled_svg_data[]; + +extern const size_t star_unfilled_svg_size; +extern const unsigned char star_unfilled_svg_data[]; + +extern const size_t textinput_ninepatch_png_size; +extern const unsigned char textinput_ninepatch_png_data[]; + +extern const size_t textinput_ninepatch_active_png_size; +extern const unsigned char textinput_ninepatch_active_png_data[]; + +extern const size_t window_icon_256_png_size; +extern const unsigned char window_icon_256_png_data[]; + +extern const size_t help_button_a_svg_size; +extern const unsigned char help_button_a_svg_data[]; + +extern const size_t help_button_b_svg_size; +extern const unsigned char help_button_b_svg_data[]; + +extern const size_t help_button_l_svg_size; +extern const unsigned char help_button_l_svg_data[]; + +extern const size_t help_button_r_svg_size; +extern const unsigned char help_button_r_svg_data[]; + +extern const size_t help_button_select_svg_size; +extern const unsigned char help_button_select_svg_data[]; + +extern const size_t help_button_start_svg_size; +extern const unsigned char help_button_start_svg_data[]; + +extern const size_t help_button_x_svg_size; +extern const unsigned char help_button_x_svg_data[]; + +extern const size_t help_button_y_svg_size; +extern const unsigned char help_button_y_svg_data[]; + +extern const size_t help_dpad_all_svg_size; +extern const unsigned char help_dpad_all_svg_data[]; + +extern const size_t help_dpad_down_svg_size; +extern const unsigned char help_dpad_down_svg_data[]; + +extern const size_t help_dpad_left_svg_size; +extern const unsigned char help_dpad_left_svg_data[]; + +extern const size_t help_dpad_leftright_svg_size; +extern const unsigned char help_dpad_leftright_svg_data[]; + +extern const size_t help_dpad_right_svg_size; +extern const unsigned char help_dpad_right_svg_data[]; + +extern const size_t help_dpad_up_svg_size; +extern const unsigned char help_dpad_up_svg_data[]; + +extern const size_t help_dpad_updown_svg_size; +extern const unsigned char help_dpad_updown_svg_data[]; struct Res2hEntry { const std::string relativeFileName; diff --git a/data/converted/ES_logo_16_png.cpp b/data/converted/ES_logo_16_png.cpp deleted file mode 100644 index dd233e2b8..000000000 --- a/data/converted/ES_logo_16_png.cpp +++ /dev/null @@ -1,103 +0,0 @@ -//this file was auto-generated from "ES_logo_16.png" by res2h - -#include "../Resources.h" - -const size_t ES_logo_16_png_size = 954; -const unsigned char ES_logo_16_png_data[954] = { - 0x89,0x50,0x4e,0x47,0x0d,0x0a,0x1a,0x0a,0x00,0x00, - 0x00,0x0d,0x49,0x48,0x44,0x52,0x00,0x00,0x00,0x10, - 0x00,0x00,0x00,0x10,0x08,0x06,0x00,0x00,0x00,0x1f, - 0xf3,0xff,0x61,0x00,0x00,0x00,0x04,0x73,0x42,0x49, - 0x54,0x08,0x08,0x08,0x08,0x7c,0x08,0x64,0x88,0x00, - 0x00,0x00,0x09,0x70,0x48,0x59,0x73,0x00,0x00,0x00, - 0xc0,0x00,0x00,0x00,0xc0,0x01,0x30,0x77,0xdf,0x5e, - 0x00,0x00,0x00,0x19,0x74,0x45,0x58,0x74,0x53,0x6f, - 0x66,0x74,0x77,0x61,0x72,0x65,0x00,0x77,0x77,0x77, - 0x2e,0x69,0x6e,0x6b,0x73,0x63,0x61,0x70,0x65,0x2e, - 0x6f,0x72,0x67,0x9b,0xee,0x3c,0x1a,0x00,0x00,0x03, - 0x37,0x49,0x44,0x41,0x54,0x38,0x8d,0x75,0x93,0x5d, - 0x68,0x9b,0x75,0x14,0xc6,0x9f,0xf3,0xcf,0x67,0xb3, - 0xb6,0xf2,0xe6,0xa3,0x1b,0xef,0x3a,0xa9,0x59,0x43, - 0xda,0x24,0x14,0xd2,0x37,0xe8,0xfc,0xa0,0x6e,0xdd, - 0x86,0x48,0xb7,0xc9,0x36,0x64,0xe2,0xc0,0x0e,0xa3, - 0xa0,0x5d,0xd7,0x8b,0x3a,0xe8,0xc5,0xae,0xd4,0x5d, - 0x88,0x17,0xbb,0x08,0xf3,0xca,0x4d,0xe8,0x6e,0x62, - 0xaf,0xf4,0xca,0x0f,0xba,0x6a,0x19,0x8c,0x81,0xeb, - 0x9a,0x20,0xcb,0xd6,0x60,0xa1,0x29,0x34,0x25,0xf6, - 0x6d,0xdf,0xb4,0x91,0x9a,0xbc,0x69,0xde,0xff,0xf1, - 0xc2,0xb5,0x9b,0x50,0x1f,0x38,0x70,0x2e,0xce,0x81, - 0xe7,0x70,0x7e,0x0f,0x31,0x33,0x76,0x53,0xb2,0x7d, - 0x64,0xa2,0xbb,0x1a,0x8f,0x03,0xc0,0xe3,0xa6,0x4c, - 0xe6,0xe6,0x52,0xea,0xdc,0x6e,0x73,0xf6,0xed,0x26, - 0x91,0x48,0x38,0x74,0x3d,0x96,0xb2,0xdb,0x97,0xaf, - 0x85,0x64,0xeb,0xd1,0x23,0xb5,0x37,0xa2,0xa7,0x8d, - 0x0b,0x21,0x00,0xb0,0x7c,0x8d,0xfa,0xc9,0x17,0x4e, - 0x7e,0x64,0x8a,0x47,0x53,0x6a,0xa3,0x31,0xfa,0x30, - 0x10,0x18,0x99,0x99,0x99,0xd9,0x02,0x00,0x30,0x33, - 0x34,0x4d,0x73,0xa8,0xea,0xd8,0xa4,0x10,0x15,0x56, - 0x94,0x74,0x51,0x75,0x16,0xb2,0xf3,0x90,0x9c,0xb5, - 0xad,0x73,0xd6,0xb6,0xce,0xf3,0x90,0x9c,0x73,0x9e, - 0xcd,0xa6,0x15,0xa5,0x58,0x11,0x82,0xc7,0x54,0x75, - 0x52,0xd3,0x34,0x07,0x33,0xff,0xeb,0x40,0xd7,0x63, - 0xa9,0x52,0xe9,0xca,0x31,0x29,0x9b,0x51,0x2e,0xbf, - 0xad,0x92,0x77,0xbc,0xfe,0xe9,0x9e,0x07,0xb7,0xca, - 0x36,0x7d,0x16,0x00,0x7c,0x96,0xbf,0xb7,0x6f,0x73, - 0xba,0x6f,0xd0,0x28,0xab,0x02,0xc0,0x95,0x52,0xe9, - 0x58,0xc9,0x6e,0x4f,0x01,0xf8,0x18,0xcc,0x8c,0x60, - 0xf0,0x78,0x48,0x51,0xd2,0x45,0xa0,0xc1,0xaa,0x7a, - 0xf9,0x7e,0x67,0x67,0xff,0x41,0x66,0xc6,0xb3,0xd5, - 0xdf,0xd9,0x79,0xf0,0xb2,0xaa,0xde,0x6f,0x00,0x9c, - 0x56,0x94,0xe2,0xf1,0x60,0x30,0xc4,0xcc,0x10,0x00, - 0xc0,0xb1,0xd6,0xc3,0x9b,0x47,0x5e,0xd6,0xbd,0xbe, - 0xf1,0x42,0x6b,0xeb,0xdd,0xf7,0x85,0x58,0x72,0x84, - 0xc3,0xe1,0xae,0x58,0x2c,0xb6,0x0f,0x00,0x22,0x91, - 0x48,0xe8,0x4f,0x97,0xcb,0xf5,0x9b,0xdb,0xfd,0xee, - 0xb8,0xd7,0x5b,0xe8,0x61,0xe8,0xa6,0xdf,0xdf,0x0f, - 0x00,0xb4,0xff,0xd2,0xa5,0x89,0x6a,0x4f,0x4f,0xd4, - 0x48,0x26,0xa3,0x07,0x2e,0x0e,0xdf,0xf2,0xfc,0x32, - 0xb5,0x48,0x44,0x9f,0x00,0xa8,0x02,0xc8,0x01,0xc8, - 0x03,0x38,0x01,0x80,0x88,0xe8,0xea,0xfe,0x7d,0xea, - 0x8b,0xaf,0xbd,0x72,0xf8,0xbd,0xc7,0xf9,0x47,0xb9, - 0x35,0x43,0xcf,0x89,0x6a,0x3c,0x1e,0x37,0x92,0xc9, - 0xa8,0xad,0x52,0x81,0x6d,0x55,0x9f,0x15,0x42,0x88, - 0x27,0xcb,0xbf,0x12,0xd1,0x0f,0x00,0xc2,0x00,0x74, - 0x22,0xfa,0x5e,0x4a,0xf9,0x5d,0xad,0x66,0xce,0xd6, - 0xeb,0x75,0x74,0x87,0x23,0xd1,0x80,0xaf,0x2d,0xbe, - 0xf3,0xc6,0x67,0x45,0x44,0x0d,0x66,0x2e,0x49,0x29, - 0x8b,0x42,0x88,0xab,0x00,0x4e,0x4b,0x29,0x4f,0x10, - 0x51,0x03,0xc0,0xfc,0x7f,0x38,0x68,0xca,0x64,0x32, - 0x5e,0xcb,0xaa,0x1b,0xc9,0x64,0xd4,0x0a,0xf8,0x7b, - 0xa5,0x94,0x8b,0x44,0xd4,0x02,0xe0,0x1d,0x22,0x3a, - 0xc4,0xcc,0x2e,0x00,0x3e,0x22,0x22,0x66,0xce,0xb8, - 0xdd,0xae,0xd7,0x9d,0x4e,0x27,0xb6,0x4f,0x20,0x66, - 0x46,0xf0,0xdc,0x5b,0x1f,0x16,0xbf,0x34,0x2f,0x36, - 0x4f,0xad,0x3c,0xd7,0x76,0xa3,0x71,0x4a,0xae,0x99, - 0x5b,0x4f,0x9c,0x54,0x4c,0xd3,0x34,0x3c,0x1e,0x4f, - 0x37,0x11,0x2d,0xee,0x75,0x9b,0xca,0xf9,0x2e,0xe3, - 0xf6,0xa1,0x03,0xbc,0x31,0x74,0x27,0xfc,0xd5,0xf4, - 0xdd,0x7b,0x5f,0x0b,0x00,0xa0,0xf2,0x1f,0xd3,0x7b, - 0xee,0xad,0x04,0x8c,0x41,0x57,0x47,0xe5,0x55,0xfa, - 0x46,0xb6,0x3b,0xb7,0xf2,0xf9,0xfc,0xdc,0xdc,0xdc, - 0xdc,0xf2,0xc2,0xc2,0x42,0x2d,0x97,0xcb,0x65,0xf6, - 0xba,0x4d,0xa5,0xb7,0xed,0xef,0x6f,0x07,0xa3,0x46, - 0xc7,0xef,0x25,0x04,0x9c,0xd6,0xca,0xf4,0x0e,0xca, - 0x0d,0xd5,0x36,0xba,0x31,0xe0,0x54,0x21,0x80,0xe5, - 0x2f,0x3c,0x09,0xdf,0x78,0xed,0xf6,0xd0,0xd0,0xf3, - 0x77,0x56,0x57,0x6d,0xb3,0x00,0x10,0xf0,0x5b,0xbd, - 0xe7,0xbb,0x36,0xfb,0x06,0xa3,0x46,0x87,0x20,0x60, - 0x20,0xb8,0xa1,0xfe,0x54,0x68,0x19,0xdd,0x01,0x49, - 0xd3,0x34,0x87,0x3a,0xd6,0x33,0x29,0x2a,0x2f,0xb1, - 0x92,0x8e,0x17,0xcf,0x2c,0x84,0xb2,0xd2,0x02,0xaf, - 0x97,0x6d,0xbc,0x5e,0xb6,0xb1,0xb4,0xc0,0x85,0xcf, - 0x9d,0xd9,0xf4,0x05,0xa5,0x58,0xf9,0x4c,0xf0,0xd8, - 0xc0,0x53,0x94,0x69,0x3b,0x8d,0x89,0x44,0xc2,0xa1, - 0xc7,0xcc,0x94,0x7d,0xd9,0xba,0x16,0x69,0x36,0x8f, - 0x9e,0x7a,0x73,0x63,0xf8,0x83,0xe4,0x5a,0x14,0x00, - 0x6e,0xdc,0xf4,0xe5,0x7e,0xfe,0xb1,0xe5,0x7a,0x65, - 0x59,0x4c,0xa9,0x4d,0x8d,0xd1,0x87,0x7f,0x3d,0x0d, - 0x13,0xfd,0x5f,0x9c,0x47,0x86,0xdb,0x27,0xe2,0x5a, - 0x35,0x0e,0x00,0x99,0x07,0x4d,0x99,0xd4,0xf5,0xa5, - 0x5d,0xe3,0xfc,0x0f,0x8e,0x59,0x81,0x6e,0x31,0xc1, - 0x05,0xe7,0x00,0x00,0x00,0x00,0x49,0x45,0x4e,0x44, - 0xae,0x42,0x60,0x82 -}; diff --git a/data/converted/ES_logo_32_png.cpp b/data/converted/ES_logo_32_png.cpp deleted file mode 100644 index a61ae0180..000000000 --- a/data/converted/ES_logo_32_png.cpp +++ /dev/null @@ -1,228 +0,0 @@ -//this file was auto-generated from "ES_logo_32.png" by res2h - -#include "../Resources.h" - -const size_t ES_logo_32_png_size = 2205; -const unsigned char ES_logo_32_png_data[2205] = { - 0x89,0x50,0x4e,0x47,0x0d,0x0a,0x1a,0x0a,0x00,0x00, - 0x00,0x0d,0x49,0x48,0x44,0x52,0x00,0x00,0x00,0x20, - 0x00,0x00,0x00,0x20,0x08,0x06,0x00,0x00,0x00,0x73, - 0x7a,0x7a,0xf4,0x00,0x00,0x00,0x04,0x73,0x42,0x49, - 0x54,0x08,0x08,0x08,0x08,0x7c,0x08,0x64,0x88,0x00, - 0x00,0x00,0x09,0x70,0x48,0x59,0x73,0x00,0x00,0x01, - 0x80,0x00,0x00,0x01,0x80,0x01,0x68,0xe3,0xfb,0xb4, - 0x00,0x00,0x00,0x19,0x74,0x45,0x58,0x74,0x53,0x6f, - 0x66,0x74,0x77,0x61,0x72,0x65,0x00,0x77,0x77,0x77, - 0x2e,0x69,0x6e,0x6b,0x73,0x63,0x61,0x70,0x65,0x2e, - 0x6f,0x72,0x67,0x9b,0xee,0x3c,0x1a,0x00,0x00,0x08, - 0x1a,0x49,0x44,0x41,0x54,0x58,0x85,0x95,0x57,0x59, - 0x6c,0x54,0xe7,0x15,0xfe,0xfe,0xbb,0xcc,0x9d,0xc5, - 0xcb,0x60,0x9c,0xc1,0xf6,0xd4,0x0d,0xc3,0x5c,0x8f, - 0xb9,0x37,0x21,0xe0,0xf1,0x40,0x6a,0x82,0x0d,0x08, - 0xca,0xf2,0xc0,0x43,0xd5,0x56,0x95,0x9a,0x87,0x8a, - 0x96,0x2e,0xaa,0xe4,0xd0,0xa8,0x08,0x48,0x2a,0x11, - 0xc3,0x03,0x9b,0x50,0x5b,0x12,0xa5,0x45,0x4e,0x52, - 0x54,0x81,0xd4,0x87,0x06,0xb5,0x52,0xd5,0x84,0xa4, - 0x05,0x11,0xda,0x82,0xc0,0xc6,0x66,0x69,0x66,0xc0, - 0xc6,0x9a,0x20,0xef,0xc3,0xe0,0xb1,0xc7,0x9e,0xf5, - 0x2e,0xa7,0x0f,0x5e,0x34,0x8b,0x07,0xca,0x91,0xce, - 0xc3,0x3d,0xf7,0xfc,0xe7,0x3b,0xff,0x39,0xdf,0x7f, - 0xff,0x73,0x19,0x11,0xe1,0x79,0xa4,0xa5,0xa1,0x75, - 0x17,0x07,0xee,0x04,0x07,0x56,0x26,0x98,0xa2,0x08, - 0x00,0x3a,0xa7,0x69,0x26,0x68,0xc6,0x84,0x79,0xe0, - 0x7a,0xff,0xbf,0xfe,0xf6,0x3c,0xf1,0x84,0xe7,0x42, - 0x07,0x20,0x90,0xb0,0xe5,0xe7,0xe3,0x87,0x94,0x75, - 0x33,0x9b,0xf2,0xec,0x37,0xcb,0xae,0xe0,0x77,0xcb, - 0x8e,0x6c,0x01,0xf0,0x5c,0x09,0x70,0xa5,0x5e,0x04, - 0x02,0x01,0x51,0x55,0xd5,0xb6,0x42,0xbb,0x01,0xdd, - 0xca,0x53,0x71,0xde,0x3c,0x09,0x30,0xa0,0x5b,0x0b, - 0xed,0xaa,0xaa,0xb6,0x05,0x02,0x01,0xb1,0x14,0x0e, - 0x5b,0xac,0x05,0xb2,0x2c,0xbb,0x38,0xae,0xf6,0x73, - 0x4d,0xab,0xf5,0x88,0xe2,0xf0,0x7b,0x15,0x15,0x99, - 0xa3,0x89,0x29,0xdb,0xfe,0xa5,0xe0,0x76,0x2f,0xcf, - 0xf8,0xec,0x6f,0x8e,0x1c,0xaf,0x76,0x1a,0x55,0x79, - 0x6b,0x26,0xf9,0x09,0xfc,0xa6,0xee,0x60,0xf4,0x2b, - 0xa9,0x2f,0x49,0x88,0x9c,0xcd,0x54,0x3a,0x4e,0x4a, - 0xf1,0xf8,0xdb,0x6e,0x4d,0x6b,0x1f,0x15,0x84,0xf0, - 0x28,0xd1,0xb6,0x87,0x0f,0x1f,0x46,0x8a,0xc0,0x88, - 0x28,0x4f,0x1b,0x1b,0x1b,0x5f,0x91,0xe5,0xb6,0x21, - 0xbb,0xbd,0xcb,0x00,0x74,0x72,0xbb,0xdb,0x63,0xb2, - 0xdc,0x1a,0x71,0x3a,0xcf,0xa5,0x7f,0xcf,0x52,0xa1, - 0x87,0x30,0xe9,0x69,0x1a,0x62,0x23,0xa1,0x73,0x4e, - 0x67,0xba,0x55,0x96,0x23,0xed,0x6e,0x77,0x4c,0x07, - 0xe8,0x96,0xcd,0x66,0x6c,0x94,0xe5,0xc1,0xc6,0xc6, - 0xc6,0x57,0x0a,0xf1,0xf2,0x1e,0xbc,0x5e,0xaf,0x4b, - 0x96,0x5b,0x87,0x45,0xf1,0x11,0x01,0x66,0x8e,0x1a, - 0x04,0x98,0xb4,0x02,0xe6,0x8d,0x79,0xa0,0x3b,0xfc, - 0x14,0x5d,0xb0,0x5f,0xa7,0x0b,0xf6,0xeb,0x74,0x87, - 0x9f,0x5a,0x48,0xe0,0x09,0x0e,0xdc,0x30,0x01,0x32, - 0x00,0x32,0x73,0x74,0x48,0x14,0x69,0xa3,0x2c,0x0f, - 0x7a,0xbd,0x5e,0x57,0x2e,0xe6,0x42,0x0b,0x02,0x81, - 0x80,0x18,0x8f,0xdb,0xba,0x86,0x87,0x7f,0xbd,0x2a, - 0x99,0x0c,0x2c,0xca,0x0d,0x9b,0xad,0x47,0xdf,0xb5, - 0xb4,0x73,0x62,0xc8,0x1a,0x12,0x75,0xa6,0x27,0x44, - 0x12,0x7b,0x01,0x40,0x63,0x5a,0x93,0x40,0x82,0x63, - 0x45,0xba,0x51,0xdb,0xfb,0xe4,0xcf,0x55,0xcd,0xa9, - 0xa9,0x45,0xc9,0xdd,0x6b,0xb3,0x99,0x7b,0xdd,0xee, - 0x7b,0xa9,0xca,0xca,0xb5,0xdd,0xdd,0xdd,0x1a,0x90, - 0x73,0x0a,0x12,0x89,0xc4,0x5a,0x4d,0x5b,0xe1,0x49, - 0x26,0xfd,0x45,0xe0,0x8c,0x65,0xe0,0x72,0x9d,0x4a, - 0x56,0x54,0x5c,0x1c,0xbc,0xcd,0x1e,0xef,0xc9,0x66, - 0xb3,0xdd,0xe1,0x70,0x38,0x9d,0xeb,0xe3,0xf1,0x78, - 0xac,0x51,0xfb,0x78,0xe0,0x17,0x36,0xd7,0x87,0x3b, - 0xe2,0xd6,0xfa,0x7d,0x91,0x88,0x5d,0x2a,0xe0,0xd7, - 0xea,0x54,0x8a,0xab,0xd3,0x75,0xcf,0xdd,0x44,0x62, - 0x2d,0x80,0x6b,0x45,0x1c,0x90,0xe5,0x0d,0x1d,0x6e, - 0x77,0x7b,0x2c,0xb7,0xfc,0x92,0xf4,0x80,0xbc,0xde, - 0xad,0x31,0x9f,0xaf,0xe5,0x30,0x00,0xbe,0xb0,0x87, - 0x45,0x3d,0x05,0xf8,0x16,0x9f,0xef,0xf0,0x56,0xaf, - 0x37,0xf6,0x40,0x92,0xf2,0xda,0xd0,0xee,0x76,0xc7, - 0x36,0xc8,0x72,0x47,0x49,0x0e,0x34,0x37,0x37,0xdb, - 0x65,0xb9,0x6d,0x7c,0xbe,0xe7,0x8c,0xa5,0xc8,0xeb, - 0xdd,0x1a,0x53,0x14,0xc5,0xff,0x2c,0xe0,0x42,0x55, - 0x14,0xc5,0xbf,0xd5,0xeb,0x8d,0xa5,0x18,0xa3,0x79, - 0x4e,0xb4,0xc9,0xf2,0x78,0x73,0x73,0xb3,0x3d,0xd7, - 0x2f,0xaf,0xdc,0x53,0x09,0xdb,0xfe,0x68,0xf4,0xc7, - 0x95,0x00,0x03,0x00,0xb8,0x5c,0xa7,0x92,0x3c,0x9f, - 0x78,0x37,0x18,0x0c,0xf6,0x2c,0xd6,0xd3,0xa7,0x49, - 0x30,0x18,0xec,0x49,0xf0,0xfc,0xbb,0xa7,0x5c,0xae, - 0x24,0x30,0x1b,0xf1,0x67,0xd1,0x68,0xa5,0x34,0x3d, - 0xbd,0x3f,0xd7,0x2f,0x9f,0x2c,0x2e,0x6e,0xf7,0xd4, - 0xe5,0xef,0x84,0x71,0x1a,0x71,0xdb,0x99,0x1e,0x7f, - 0x45,0xc5,0xc5,0xc1,0xbe,0xbe,0xeb,0x47,0x54,0x55, - 0x7d,0x19,0x80,0x5c,0x08,0x22,0x49,0xd2,0x95,0xde, - 0xde,0xde,0x49,0x00,0xf0,0xf9,0x7c,0x0a,0xcf,0xf3, - 0x5b,0x89,0x28,0xc9,0x71,0x5c,0xbf,0x28,0x8a,0xb7, - 0xee,0xf6,0xf5,0x1d,0xe1,0x1a,0x1a,0xbe,0xb7,0x33, - 0x1e,0xf7,0xd6,0xdb,0x1d,0x3d,0xd9,0xcd,0xdb,0x2b, - 0x52,0x03,0xa1,0x1f,0x02,0xe8,0x58,0x48,0xa0,0xa1, - 0xb5,0x75,0x17,0x09,0xc2,0x16,0xe8,0xba,0x35,0xbb, - 0x72,0xa5,0x9d,0x6a,0xa4,0xaf,0xe3,0x18,0xb0,0xf4, - 0x49,0x67,0x84,0x5d,0x7d,0xbc,0x87,0x88,0x0c,0x45, - 0x51,0xfe,0x02,0xa0,0xa6,0x00,0x5f,0x48,0xa5,0x52, - 0xef,0x34,0x34,0x34,0x9c,0x11,0x04,0xe1,0x36,0xcf, - 0xf3,0x0e,0x22,0xaa,0x66,0x8c,0x31,0x22,0x8a,0x67, - 0xb3,0xd9,0x5e,0x22,0xda,0xdc,0xd8,0xd8,0xb8,0xe7, - 0xad,0xc0,0xda,0x0b,0xaf,0xb5,0x7d,0x73,0x1d,0x00, - 0x38,0xa3,0xa3,0x51,0xbf,0xdf,0x7f,0x86,0x31,0x96, - 0x82,0x8e,0xcb,0x02,0x38,0xee,0xc4,0xf8,0xa1,0x43, - 0x0a,0x09,0x02,0xd2,0xaa,0xba,0x10,0xdd,0xfa,0x20, - 0x24,0x66,0xb3,0xd9,0xee,0xb9,0x47,0x1e,0x40,0x19, - 0x80,0x09,0x00,0xfa,0x7c,0x01,0x00,0x44,0x45,0x51, - 0xfc,0x11,0x11,0xd5,0x12,0x51,0x9a,0x31,0x36,0x06, - 0xc0,0x04,0x60,0x03,0x50,0x0e,0x00,0xd9,0x6c,0xb6, - 0x3b,0x3a,0x3d,0xbd,0xf0,0x29,0x7e,0x35,0xd0,0x52, - 0x1d,0x9b,0x9c,0xf8,0x29,0x99,0x84,0xae,0xde,0x1b, - 0xdb,0x05,0x00,0x8e,0x99,0x4d,0x9b,0xf2,0xb6,0xc6, - 0x4f,0x4f,0x83,0xe9,0x7a,0xa2,0xf0,0xa8,0x01,0x30, - 0x19,0x63,0xfb,0x00,0x68,0xa6,0x69,0xea,0xb5,0xb5, - 0xb5,0x7f,0x1d,0x1b,0x1b,0xfb,0x07,0x00,0x2b,0x63, - 0x2c,0x41,0x44,0xbf,0x05,0xf0,0x99,0x28,0x8a,0x31, - 0x22,0x92,0x00,0x20,0x1c,0x0e,0xa7,0xd7,0xac,0x5e, - 0x93,0xc8,0x6a,0xd9,0x25,0x16,0xd1,0x02,0xab,0x64, - 0x45,0xed,0xb2,0x3a,0x00,0x00,0xeb,0x65,0x65,0x9c, - 0x69,0xb1,0x14,0x5d,0x14,0x52,0x30,0x08,0x12,0x67, - 0x3f,0x32,0x05,0xe2,0x24,0xa2,0x4e,0x22,0x3a,0xcb, - 0x18,0xfb,0xc3,0xd8,0xd8,0xd8,0x6b,0x00,0xfe,0x08, - 0x20,0x09,0x60,0x29,0x80,0x63,0x8c,0xb1,0x4b,0xba, - 0xae,0xff,0x53,0xd7,0xf5,0x05,0xce,0x70,0x3c,0xd7, - 0x1b,0x9b,0x9c,0x28,0x0a,0xc6,0x71,0x9c,0x58,0xf2, - 0x36,0x2c,0x21,0xd3,0x00,0x12,0x73,0xca,0x88,0x28, - 0x56,0x53,0x53,0x73,0x9e,0x88,0x0e,0x03,0x18,0x61, - 0x8c,0x4d,0xcc,0x25,0xe2,0x63,0x8c,0x7d,0xc4,0x18, - 0x63,0xcf,0x0a,0x28,0x70,0xd9,0xac,0x56,0x68,0xcc, - 0xa8,0x2a,0x98,0xa6,0x35,0x2d,0xe2,0x6f,0xa4,0xd3, - 0xe9,0xfa,0xdc,0xd6,0xa8,0xaa,0xfa,0x2d,0x00,0xf7, - 0x1d,0x0e,0xc7,0xf2,0xe9,0xe9,0xe9,0x35,0x1c,0xc7, - 0x9d,0x07,0xe0,0x03,0x60,0x91,0x65,0x79,0x05,0x80, - 0x01,0xd3,0x30,0x9b,0x96,0x38,0xab,0x8a,0x82,0x99, - 0xa6,0xa9,0x09,0x00,0x12,0x65,0x57,0xae,0x60,0x9e, - 0x84,0x46,0x55,0x15,0x8c,0xf2,0x72,0x90,0x20,0x38, - 0x3c,0x1e,0x8f,0x35,0x17,0x8c,0x31,0x26,0x58,0xad, - 0xd6,0x41,0x45,0x51,0x40,0x44,0x02,0xc7,0x71,0x9d, - 0x44,0xd4,0xca,0x18,0x7b,0x39,0x91,0x48,0xcc,0xf0, - 0x3c,0xaf,0x13,0x91,0x7d,0xce,0x3d,0xdd,0xdf,0xdf, - 0x3f,0xe0,0xf1,0x78,0xac,0x4b,0x9c,0x4b,0x1c,0x16, - 0xd1,0x32,0x6b,0xcc,0xa4,0x11,0x9b,0x9c,0x00,0x99, - 0x04,0x02,0xcd,0x08,0x30,0xcd,0x03,0xcb,0x8e,0x1c, - 0x99,0x3f,0x86,0xdf,0x1e,0xec,0xec,0xac,0x06,0x80, - 0xb4,0xe2,0xd5,0xec,0xe3,0xe3,0x01,0x00,0xff,0x06, - 0x60,0x00,0x48,0x10,0x91,0x08,0x60,0x9e,0x33,0x1c, - 0x11,0xbd,0x00,0xa0,0x1f,0x80,0x97,0x88,0x9c,0x98, - 0x65,0x7f,0x0c,0x40,0x04,0xc0,0x09,0x00,0xb0,0x58, - 0x2c,0x81,0xea,0x25,0xe5,0x0b,0x55,0xbe,0xd1,0x7d, - 0x3d,0x3a,0x19,0x8b,0x7d,0xcc,0x78,0x96,0x66,0x06, - 0xbb,0x9c,0x37,0x90,0x34,0x6c,0xdc,0xf8,0x68,0xe0, - 0xb3,0x8e,0x24,0x49,0x9d,0x71,0x5b,0xcf,0x80,0xff, - 0x6b,0x7b,0x67,0x06,0xfa,0xff,0x13,0x7a,0x49,0x51, - 0x14,0x05,0x8b,0x7c,0x88,0x00,0xdc,0x08,0x06,0x83, - 0xa3,0x2b,0x57,0xae,0xf4,0x70,0x1c,0xf7,0x2a,0x80, - 0x5a,0xd3,0x34,0x6f,0x1b,0x86,0x71,0xad,0xbf,0xbf, - 0x3f,0xc3,0x18,0xe3,0x5f,0x5b,0xd3,0xf0,0xe5,0xe9, - 0xcd,0x43,0xde,0xfa,0x6a,0x47,0xcf,0xa7,0xc9,0xed, - 0x15,0xa7,0x3f,0x09,0xd9,0x7b,0x7a,0x6e,0xbd,0xb8, - 0xc0,0x81,0xfc,0xa6,0x4c,0x9c,0xad,0xfc,0xf8,0x97, - 0x07,0x27,0x5f,0x97,0xa4,0x94,0x9f,0x47,0x7c,0x87, - 0xa5,0xde,0x67,0xaa,0x87,0x82,0xd7,0xbe,0x7c,0x07, - 0xc0,0x7f,0x17,0x49,0x00,0x00,0x70,0xff,0xfe,0xfd, - 0x30,0x80,0x70,0xa1,0xbd,0x65,0xb5,0xef,0xd0,0x8e, - 0xe5,0x53,0xf5,0x7e,0x57,0x4a,0x00,0x52,0xeb,0xf8, - 0xa1,0xbf,0x67,0x6c,0xe4,0x3a,0x9e,0xeb,0x93,0x77, - 0x0a,0x2a,0x53,0xd2,0xc9,0xea,0x0f,0x32,0x53,0x98, - 0x2b,0x4a,0x64,0x9f,0xd5,0x6e,0x38,0xf0,0x86,0xaa, - 0xaa,0xfe,0x52,0xe0,0xa5,0x44,0x55,0x55,0xbf,0x43, - 0x34,0xde,0xd8,0x17,0x88,0xd8,0x01,0x80,0x00,0x7c, - 0x70,0xaf,0x7a,0x2a,0xc3,0x97,0x9f,0x2c,0x99,0xc0, - 0x94,0x2d,0xb5,0x3f,0xb5,0x9a,0xb7,0xcc,0xdd,0x45, - 0x20,0x89,0x61,0xe8,0x7d,0x87,0x33,0xeb,0x66,0x97, - 0x1a,0xd7,0xbf,0x74,0x98,0x31,0xc6,0x3f,0x0b,0x98, - 0x31,0xc6,0xaf,0x5f,0xd3,0x78,0xd8,0xed,0xc8,0x5e, - 0x7a,0x7f,0xcb,0x90,0x53,0xe2,0x67,0x77,0xc3,0x00, - 0xac,0xae,0x4e,0x59,0x6c,0x34,0x95,0x77,0x19,0x2d, - 0x70,0x40,0x51,0x94,0xf5,0xe9,0x55,0xfc,0xa7,0x5f, - 0xfd,0xa9,0xbc,0xa2,0x70,0x56,0x66,0x19,0x82,0xeb, - 0x54,0x3a,0x59,0x71,0x31,0x3b,0xc8,0x1e,0x1b,0x25, - 0x07,0x12,0x8b,0xc5,0x12,0x78,0xc1,0x4e,0x1f,0xee, - 0x58,0x1e,0xaf,0xdf,0x17,0x88,0xd8,0xe7,0xc1,0xe7, - 0xc5,0x24,0xe0,0xfb,0x9f,0x2c,0x8f,0xdf,0x8d,0x5a, - 0x77,0x86,0x42,0xa1,0x6b,0x40,0x0e,0x07,0x1c,0x0e, - 0x47,0x97,0x31,0x9a,0x0a,0xdb,0x7b,0xf4,0x55,0xc9, - 0x80,0x90,0x97,0x02,0x49,0x0c,0xe3,0xbf,0xb2,0xd9, - 0xd3,0x3b,0x05,0xef,0x77,0x3b,0xc7,0x2f,0x3c,0x08, - 0x59,0xc5,0xf5,0x2d,0xbe,0x84,0x68,0xa1,0xd9,0x91, - 0x2c,0xcb,0x9a,0xea,0xeb,0x05,0x87,0xd2,0x90,0xd4, - 0x7e,0x52,0xf9,0xa4,0x6a,0xb6,0xe7,0xc5,0x72,0xe7, - 0xb1,0xcd,0x1c,0x49,0x08,0x61,0x87,0xc3,0xd1,0x55, - 0x54,0x01,0x60,0x76,0x1c,0x67,0x75,0x96,0xde,0x47, - 0xe7,0xcb,0xeb,0xb4,0xfa,0x9c,0x1c,0x68,0xb6,0x86, - 0x07,0xcc,0xe1,0x9b,0xc7,0xd8,0xe0,0x3a,0x00,0x98, - 0x9e,0xe6,0x11,0x0c,0x4a,0x00,0x00,0x55,0xcd,0xa0, - 0xbc,0xdc,0x98,0xf5,0xfd,0x08,0x37,0xf1,0x04,0xeb, - 0xe6,0x96,0x2c,0xc8,0xc8,0x8c,0x88,0xd7,0x2f,0xbe, - 0x38,0x34,0x34,0x49,0xcd,0x79,0xe3,0xf9,0xa2,0x63, - 0x79,0x9b,0x32,0x64,0xef,0x0a,0x18,0xd0,0xbf,0x41, - 0xee,0xf6,0x55,0x31,0xb9,0x55,0x89,0x38,0xcf,0x35, - 0xa5,0x47,0x92,0x62,0xc8,0x34,0x40,0x4f,0xd3,0xd4, - 0x3d,0x16,0x3a,0xf7,0x03,0x67,0xba,0xb5,0x49,0x8e, - 0xb4,0x6f,0x73,0xc7,0xf4,0xa3,0xa0,0x5b,0x6f,0xda, - 0x8c,0x8d,0xcd,0x8b,0x8f,0xe5,0xa5,0x7f,0x4c,0x6a, - 0xa5,0xcf,0xb5,0x5a,0xe6,0x11,0x87,0xcd,0xf7,0x2a, - 0x32,0xf6,0xa3,0x09,0x5b,0x6a,0xbf,0x8b,0xcb,0xee, - 0xf6,0xf9,0x32,0xf6,0xe3,0xc7,0x46,0xaa,0xab,0xaa, - 0x8c,0xbc,0x35,0x13,0x13,0x3c,0x0e,0xbe,0x55,0x17, - 0xed,0xeb,0x93,0x92,0xe6,0x0c,0xce,0xa6,0x58,0xe5, - 0x49,0xc9,0x88,0xbf,0xed,0x2e,0xd3,0xda,0x47,0x13, - 0x42,0x78,0x34,0xfe,0x7f,0xfe,0x98,0xe4,0xcc,0x87, - 0xa2,0xa2,0x28,0x6d,0x85,0xf6,0x0d,0x1b,0xbc,0x67, - 0xae,0x7e,0xe1,0x28,0xda,0xf9,0xd5,0x2f,0x1c,0xb4, - 0x61,0x83,0xf7,0xcc,0x22,0xb3,0x61,0x5b,0x73,0x73, - 0xb3,0x58,0x0a,0xa7,0xe4,0xcf,0xe9,0xdc,0xdc,0x7e, - 0xb5,0xd0,0x2e,0x08,0x48,0xeb,0x46,0xf1,0x25,0xa7, - 0x1b,0x0c,0x82,0x80,0xc2,0xf9,0x01,0xc1,0x60,0xb0, - 0x28,0x46,0x5e,0xbc,0xa7,0xbd,0x5c,0x4c,0x74,0x9d, - 0x5d,0xea,0xe8,0xa8,0xd9,0xc6,0x18,0xca,0x44,0xd1, - 0x14,0x01,0x40,0xd3,0x38,0x8d,0x08,0x33,0xa6,0x89, - 0x4b,0xcf,0x1b,0xef,0x7f,0x25,0x1d,0xc4,0x52,0xa8, - 0x9f,0x66,0x66,0x00,0x00,0x00,0x00,0x49,0x45,0x4e, - 0x44,0xae,0x42,0x60,0x82 -}; diff --git a/data/converted/arrow_svg.cpp b/data/converted/arrow_svg.cpp new file mode 100644 index 000000000..781bda059 --- /dev/null +++ b/data/converted/arrow_svg.cpp @@ -0,0 +1,92 @@ +//this file was auto-generated from "arrow.svg" by res2h + +#include "../Resources.h" + +const size_t arrow_svg_size = 849; +const unsigned char arrow_svg_data[849] = { + 0x3c,0x3f,0x78,0x6d,0x6c,0x20,0x76,0x65,0x72,0x73, + 0x69,0x6f,0x6e,0x3d,0x22,0x31,0x2e,0x30,0x22,0x20, + 0x65,0x6e,0x63,0x6f,0x64,0x69,0x6e,0x67,0x3d,0x22, + 0x75,0x74,0x66,0x2d,0x38,0x22,0x3f,0x3e,0x0d,0x0a, + 0x3c,0x21,0x2d,0x2d,0x20,0x47,0x65,0x6e,0x65,0x72, + 0x61,0x74,0x6f,0x72,0x3a,0x20,0x41,0x64,0x6f,0x62, + 0x65,0x20,0x49,0x6c,0x6c,0x75,0x73,0x74,0x72,0x61, + 0x74,0x6f,0x72,0x20,0x31,0x36,0x2e,0x30,0x2e,0x33, + 0x2c,0x20,0x53,0x56,0x47,0x20,0x45,0x78,0x70,0x6f, + 0x72,0x74,0x20,0x50,0x6c,0x75,0x67,0x2d,0x49,0x6e, + 0x20,0x2e,0x20,0x53,0x56,0x47,0x20,0x56,0x65,0x72, + 0x73,0x69,0x6f,0x6e,0x3a,0x20,0x36,0x2e,0x30,0x30, + 0x20,0x42,0x75,0x69,0x6c,0x64,0x20,0x30,0x29,0x20, + 0x20,0x2d,0x2d,0x3e,0x0d,0x0a,0x3c,0x21,0x44,0x4f, + 0x43,0x54,0x59,0x50,0x45,0x20,0x73,0x76,0x67,0x20, + 0x50,0x55,0x42,0x4c,0x49,0x43,0x20,0x22,0x2d,0x2f, + 0x2f,0x57,0x33,0x43,0x2f,0x2f,0x44,0x54,0x44,0x20, + 0x53,0x56,0x47,0x20,0x31,0x2e,0x31,0x2f,0x2f,0x45, + 0x4e,0x22,0x20,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f, + 0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72, + 0x67,0x2f,0x47,0x72,0x61,0x70,0x68,0x69,0x63,0x73, + 0x2f,0x53,0x56,0x47,0x2f,0x31,0x2e,0x31,0x2f,0x44, + 0x54,0x44,0x2f,0x73,0x76,0x67,0x31,0x31,0x2e,0x64, + 0x74,0x64,0x22,0x3e,0x0d,0x0a,0x3c,0x73,0x76,0x67, + 0x20,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x3d,0x22, + 0x31,0x2e,0x31,0x22,0x20,0x69,0x64,0x3d,0x22,0x45, + 0x62,0x65,0x6e,0x65,0x5f,0x31,0x22,0x20,0x78,0x6d, + 0x6c,0x6e,0x73,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a, + 0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f, + 0x72,0x67,0x2f,0x32,0x30,0x30,0x30,0x2f,0x73,0x76, + 0x67,0x22,0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3a,0x78, + 0x6c,0x69,0x6e,0x6b,0x3d,0x22,0x68,0x74,0x74,0x70, + 0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e, + 0x6f,0x72,0x67,0x2f,0x31,0x39,0x39,0x39,0x2f,0x78, + 0x6c,0x69,0x6e,0x6b,0x22,0x20,0x78,0x3d,0x22,0x30, + 0x70,0x78,0x22,0x20,0x79,0x3d,0x22,0x30,0x70,0x78, + 0x22,0x0d,0x0a,0x09,0x20,0x77,0x69,0x64,0x74,0x68, + 0x3d,0x22,0x31,0x32,0x2e,0x31,0x36,0x35,0x70,0x78, + 0x22,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x22, + 0x32,0x31,0x2e,0x39,0x32,0x31,0x70,0x78,0x22,0x20, + 0x76,0x69,0x65,0x77,0x42,0x6f,0x78,0x3d,0x22,0x30, + 0x20,0x30,0x20,0x31,0x32,0x2e,0x31,0x36,0x35,0x20, + 0x32,0x31,0x2e,0x39,0x32,0x31,0x22,0x20,0x65,0x6e, + 0x61,0x62,0x6c,0x65,0x2d,0x62,0x61,0x63,0x6b,0x67, + 0x72,0x6f,0x75,0x6e,0x64,0x3d,0x22,0x6e,0x65,0x77, + 0x20,0x30,0x20,0x30,0x20,0x31,0x32,0x2e,0x31,0x36, + 0x35,0x20,0x32,0x31,0x2e,0x39,0x32,0x31,0x22,0x20, + 0x78,0x6d,0x6c,0x3a,0x73,0x70,0x61,0x63,0x65,0x3d, + 0x22,0x70,0x72,0x65,0x73,0x65,0x72,0x76,0x65,0x22, + 0x3e,0x0d,0x0a,0x3c,0x67,0x3e,0x0d,0x0a,0x09,0x3c, + 0x70,0x61,0x74,0x68,0x20,0x66,0x69,0x6c,0x6c,0x3d, + 0x22,0x23,0x37,0x37,0x37,0x37,0x37,0x37,0x22,0x20, + 0x64,0x3d,0x22,0x4d,0x30,0x2e,0x37,0x35,0x2c,0x32, + 0x31,0x2e,0x39,0x32,0x31,0x63,0x2d,0x30,0x2e,0x31, + 0x39,0x37,0x2c,0x30,0x2d,0x30,0x2e,0x33,0x39,0x35, + 0x2d,0x30,0x2e,0x30,0x37,0x37,0x2d,0x30,0x2e,0x35, + 0x34,0x32,0x2d,0x30,0x2e,0x32,0x33,0x31,0x63,0x2d, + 0x30,0x2e,0x32,0x38,0x37,0x2d,0x30,0x2e,0x32,0x39, + 0x39,0x2d,0x30,0x2e,0x32,0x37,0x36,0x2d,0x30,0x2e, + 0x37,0x37,0x33,0x2c,0x30,0x2e,0x30,0x32,0x33,0x2d, + 0x31,0x2e,0x30,0x36,0x31,0x6c,0x31,0x30,0x2e,0x30, + 0x39,0x38,0x2d,0x39,0x2e,0x36,0x36,0x38,0x0d,0x0a, + 0x09,0x09,0x4c,0x30,0x2e,0x32,0x33,0x31,0x2c,0x31, + 0x2e,0x32,0x39,0x32,0x63,0x2d,0x30,0x2e,0x32,0x39, + 0x39,0x2d,0x30,0x2e,0x32,0x38,0x36,0x2d,0x30,0x2e, + 0x33,0x31,0x2d,0x30,0x2e,0x37,0x36,0x31,0x2d,0x30, + 0x2e,0x30,0x32,0x33,0x2d,0x31,0x2e,0x30,0x36,0x63, + 0x30,0x2e,0x32,0x38,0x36,0x2d,0x30,0x2e,0x33,0x2c, + 0x30,0x2e,0x37,0x36,0x31,0x2d,0x30,0x2e,0x33,0x31, + 0x2c,0x31,0x2e,0x30,0x36,0x2d,0x30,0x2e,0x30,0x32, + 0x33,0x6c,0x31,0x30,0x2e,0x36,0x36,0x35,0x2c,0x31, + 0x30,0x2e,0x32,0x31,0x31,0x0d,0x0a,0x09,0x09,0x63, + 0x30,0x2e,0x31,0x34,0x37,0x2c,0x30,0x2e,0x31,0x34, + 0x31,0x2c,0x30,0x2e,0x32,0x33,0x31,0x2c,0x30,0x2e, + 0x33,0x33,0x37,0x2c,0x30,0x2e,0x32,0x33,0x31,0x2c, + 0x30,0x2e,0x35,0x34,0x32,0x73,0x2d,0x30,0x2e,0x30, + 0x38,0x34,0x2c,0x30,0x2e,0x34,0x2d,0x30,0x2e,0x32, + 0x33,0x31,0x2c,0x30,0x2e,0x35,0x34,0x32,0x4c,0x31, + 0x2e,0x32,0x36,0x39,0x2c,0x32,0x31,0x2e,0x37,0x31, + 0x33,0x43,0x31,0x2e,0x31,0x32,0x34,0x2c,0x32,0x31, + 0x2e,0x38,0x35,0x32,0x2c,0x30,0x2e,0x39,0x33,0x37, + 0x2c,0x32,0x31,0x2e,0x39,0x32,0x31,0x2c,0x30,0x2e, + 0x37,0x35,0x2c,0x32,0x31,0x2e,0x39,0x32,0x31,0x7a, + 0x22,0x2f,0x3e,0x0d,0x0a,0x3c,0x2f,0x67,0x3e,0x0d, + 0x0a,0x3c,0x2f,0x73,0x76,0x67,0x3e,0x0d,0x0a +}; diff --git a/data/converted/bar_png.cpp b/data/converted/bar_png.cpp deleted file mode 100644 index 2ccc94d0a..000000000 --- a/data/converted/bar_png.cpp +++ /dev/null @@ -1,290 +0,0 @@ -//this file was auto-generated from "bar.png" by res2h - -#include "../Resources.h" - -const size_t bar_png_size = 2825; -const unsigned char bar_png_data[2825] = { - 0x89,0x50,0x4e,0x47,0x0d,0x0a,0x1a,0x0a,0x00,0x00, - 0x00,0x0d,0x49,0x48,0x44,0x52,0x00,0x00,0x00,0x10, - 0x00,0x00,0x00,0x10,0x08,0x06,0x00,0x00,0x00,0x1f, - 0xf3,0xff,0x61,0x00,0x00,0x00,0x09,0x70,0x48,0x59, - 0x73,0x00,0x00,0x0b,0x13,0x00,0x00,0x0b,0x13,0x01, - 0x00,0x9a,0x9c,0x18,0x00,0x00,0x0a,0x4f,0x69,0x43, - 0x43,0x50,0x50,0x68,0x6f,0x74,0x6f,0x73,0x68,0x6f, - 0x70,0x20,0x49,0x43,0x43,0x20,0x70,0x72,0x6f,0x66, - 0x69,0x6c,0x65,0x00,0x00,0x78,0xda,0x9d,0x53,0x67, - 0x54,0x53,0xe9,0x16,0x3d,0xf7,0xde,0xf4,0x42,0x4b, - 0x88,0x80,0x94,0x4b,0x6f,0x52,0x15,0x08,0x20,0x52, - 0x42,0x8b,0x80,0x14,0x91,0x26,0x2a,0x21,0x09,0x10, - 0x4a,0x88,0x21,0xa1,0xd9,0x15,0x51,0xc1,0x11,0x45, - 0x45,0x04,0x1b,0xc8,0xa0,0x88,0x03,0x8e,0x8e,0x80, - 0x8c,0x15,0x51,0x2c,0x0c,0x8a,0x0a,0xd8,0x07,0xe4, - 0x21,0xa2,0x8e,0x83,0xa3,0x88,0x8a,0xca,0xfb,0xe1, - 0x7b,0xa3,0x6b,0xd6,0xbc,0xf7,0xe6,0xcd,0xfe,0xb5, - 0xd7,0x3e,0xe7,0xac,0xf3,0x9d,0xb3,0xcf,0x07,0xc0, - 0x08,0x0c,0x96,0x48,0x33,0x51,0x35,0x80,0x0c,0xa9, - 0x42,0x1e,0x11,0xe0,0x83,0xc7,0xc4,0xc6,0xe1,0xe4, - 0x2e,0x40,0x81,0x0a,0x24,0x70,0x00,0x10,0x08,0xb3, - 0x64,0x21,0x73,0xfd,0x23,0x01,0x00,0xf8,0x7e,0x3c, - 0x3c,0x2b,0x22,0xc0,0x07,0xbe,0x00,0x01,0x78,0xd3, - 0x0b,0x08,0x00,0xc0,0x4d,0x9b,0xc0,0x30,0x1c,0x87, - 0xff,0x0f,0xea,0x42,0x99,0x5c,0x01,0x80,0x84,0x01, - 0xc0,0x74,0x91,0x38,0x4b,0x08,0x80,0x14,0x00,0x40, - 0x7a,0x8e,0x42,0xa6,0x00,0x40,0x46,0x01,0x80,0x9d, - 0x98,0x26,0x53,0x00,0xa0,0x04,0x00,0x60,0xcb,0x63, - 0x62,0xe3,0x00,0x50,0x2d,0x00,0x60,0x27,0x7f,0xe6, - 0xd3,0x00,0x80,0x9d,0xf8,0x99,0x7b,0x01,0x00,0x5b, - 0x94,0x21,0x15,0x01,0xa0,0x91,0x00,0x20,0x13,0x65, - 0x88,0x44,0x00,0x68,0x3b,0x00,0xac,0xcf,0x56,0x8a, - 0x45,0x00,0x58,0x30,0x00,0x14,0x66,0x4b,0xc4,0x39, - 0x00,0xd8,0x2d,0x00,0x30,0x49,0x57,0x66,0x48,0x00, - 0xb0,0xb7,0x00,0xc0,0xce,0x10,0x0b,0xb2,0x00,0x08, - 0x0c,0x00,0x30,0x51,0x88,0x85,0x29,0x00,0x04,0x7b, - 0x00,0x60,0xc8,0x23,0x23,0x78,0x00,0x84,0x99,0x00, - 0x14,0x46,0xf2,0x57,0x3c,0xf1,0x2b,0xae,0x10,0xe7, - 0x2a,0x00,0x00,0x78,0x99,0xb2,0x3c,0xb9,0x24,0x39, - 0x45,0x81,0x5b,0x08,0x2d,0x71,0x07,0x57,0x57,0x2e, - 0x1e,0x28,0xce,0x49,0x17,0x2b,0x14,0x36,0x61,0x02, - 0x61,0x9a,0x40,0x2e,0xc2,0x79,0x99,0x19,0x32,0x81, - 0x34,0x0f,0xe0,0xf3,0xcc,0x00,0x00,0xa0,0x91,0x15, - 0x11,0xe0,0x83,0xf3,0xfd,0x78,0xce,0x0e,0xae,0xce, - 0xce,0x36,0x8e,0xb6,0x0e,0x5f,0x2d,0xea,0xbf,0x06, - 0xff,0x22,0x62,0x62,0xe3,0xfe,0xe5,0xcf,0xab,0x70, - 0x40,0x00,0x00,0xe1,0x74,0x7e,0xd1,0xfe,0x2c,0x2f, - 0xb3,0x1a,0x80,0x3b,0x06,0x80,0x6d,0xfe,0xa2,0x25, - 0xee,0x04,0x68,0x5e,0x0b,0xa0,0x75,0xf7,0x8b,0x66, - 0xb2,0x0f,0x40,0xb5,0x00,0xa0,0xe9,0xda,0x57,0xf3, - 0x70,0xf8,0x7e,0x3c,0x3c,0x45,0xa1,0x90,0xb9,0xd9, - 0xd9,0xe5,0xe4,0xe4,0xd8,0x4a,0xc4,0x42,0x5b,0x61, - 0xca,0x57,0x7d,0xfe,0x67,0xc2,0x5f,0xc0,0x57,0xfd, - 0x6c,0xf9,0x7e,0x3c,0xfc,0xf7,0xf5,0xe0,0xbe,0xe2, - 0x24,0x81,0x32,0x5d,0x81,0x47,0x04,0xf8,0xe0,0xc2, - 0xcc,0xf4,0x4c,0xa5,0x1c,0xcf,0x92,0x09,0x84,0x62, - 0xdc,0xe6,0x8f,0x47,0xfc,0xb7,0x0b,0xff,0xfc,0x1d, - 0xd3,0x22,0xc4,0x49,0x62,0xb9,0x58,0x2a,0x14,0xe3, - 0x51,0x12,0x71,0x8e,0x44,0x9a,0x8c,0xf3,0x32,0xa5, - 0x22,0x89,0x42,0x92,0x29,0xc5,0x25,0xd2,0xff,0x64, - 0xe2,0xdf,0x2c,0xfb,0x03,0x3e,0xdf,0x35,0x00,0xb0, - 0x6a,0x3e,0x01,0x7b,0x91,0x2d,0xa8,0x5d,0x63,0x03, - 0xf6,0x4b,0x27,0x10,0x58,0x74,0xc0,0xe2,0xf7,0x00, - 0x00,0xf2,0xbb,0x6f,0xc1,0xd4,0x28,0x08,0x03,0x80, - 0x68,0x83,0xe1,0xcf,0x77,0xff,0xef,0x3f,0xfd,0x47, - 0xa0,0x25,0x00,0x80,0x66,0x49,0x92,0x71,0x00,0x00, - 0x5e,0x44,0x24,0x2e,0x54,0xca,0xb3,0x3f,0xc7,0x08, - 0x00,0x00,0x44,0xa0,0x81,0x2a,0xb0,0x41,0x1b,0xf4, - 0xc1,0x18,0x2c,0xc0,0x06,0x1c,0xc1,0x05,0xdc,0xc1, - 0x0b,0xfc,0x60,0x36,0x84,0x42,0x24,0xc4,0xc2,0x42, - 0x10,0x42,0x0a,0x64,0x80,0x1c,0x72,0x60,0x29,0xac, - 0x82,0x42,0x28,0x86,0xcd,0xb0,0x1d,0x2a,0x60,0x2f, - 0xd4,0x40,0x1d,0x34,0xc0,0x51,0x68,0x86,0x93,0x70, - 0x0e,0x2e,0xc2,0x55,0xb8,0x0e,0x3d,0x70,0x0f,0xfa, - 0x61,0x08,0x9e,0xc1,0x28,0xbc,0x81,0x09,0x04,0x41, - 0xc8,0x08,0x13,0x61,0x21,0xda,0x88,0x01,0x62,0x8a, - 0x58,0x23,0x8e,0x08,0x17,0x99,0x85,0xf8,0x21,0xc1, - 0x48,0x04,0x12,0x8b,0x24,0x20,0xc9,0x88,0x14,0x51, - 0x22,0x4b,0x91,0x35,0x48,0x31,0x52,0x8a,0x54,0x20, - 0x55,0x48,0x1d,0xf2,0x3d,0x72,0x02,0x39,0x87,0x5c, - 0x46,0xba,0x91,0x3b,0xc8,0x00,0x32,0x82,0xfc,0x86, - 0xbc,0x47,0x31,0x94,0x81,0xb2,0x51,0x3d,0xd4,0x0c, - 0xb5,0x43,0xb9,0xa8,0x37,0x1a,0x84,0x46,0xa2,0x0b, - 0xd0,0x64,0x74,0x31,0x9a,0x8f,0x16,0xa0,0x9b,0xd0, - 0x72,0xb4,0x1a,0x3d,0x8c,0x36,0xa1,0xe7,0xd0,0xab, - 0x68,0x0f,0xda,0x8f,0x3e,0x43,0xc7,0x30,0xc0,0xe8, - 0x18,0x07,0x33,0xc4,0x6c,0x30,0x2e,0xc6,0xc3,0x42, - 0xb1,0x38,0x2c,0x09,0x93,0x63,0xcb,0xb1,0x22,0xac, - 0x0c,0xab,0xc6,0x1a,0xb0,0x56,0xac,0x03,0xbb,0x89, - 0xf5,0x63,0xcf,0xb1,0x77,0x04,0x12,0x81,0x45,0xc0, - 0x09,0x36,0x04,0x77,0x42,0x20,0x61,0x1e,0x41,0x48, - 0x58,0x4c,0x58,0x4e,0xd8,0x48,0xa8,0x20,0x1c,0x24, - 0x34,0x11,0xda,0x09,0x37,0x09,0x03,0x84,0x51,0xc2, - 0x27,0x22,0x93,0xa8,0x4b,0xb4,0x26,0xba,0x11,0xf9, - 0xc4,0x18,0x62,0x32,0x31,0x87,0x58,0x48,0x2c,0x23, - 0xd6,0x12,0x8f,0x13,0x2f,0x10,0x7b,0x88,0x43,0xc4, - 0x37,0x24,0x12,0x89,0x43,0x32,0x27,0xb9,0x90,0x02, - 0x49,0xb1,0xa4,0x54,0xd2,0x12,0xd2,0x46,0xd2,0x6e, - 0x52,0x23,0xe9,0x2c,0xa9,0x9b,0x34,0x48,0x1a,0x23, - 0x93,0xc9,0xda,0x64,0x6b,0xb2,0x07,0x39,0x94,0x2c, - 0x20,0x2b,0xc8,0x85,0xe4,0x9d,0xe4,0xc3,0xe4,0x33, - 0xe4,0x1b,0xe4,0x21,0xf2,0x5b,0x0a,0x9d,0x62,0x40, - 0x71,0xa4,0xf8,0x53,0xe2,0x28,0x52,0xca,0x6a,0x4a, - 0x19,0xe5,0x10,0xe5,0x34,0xe5,0x06,0x65,0x98,0x32, - 0x41,0x55,0xa3,0x9a,0x52,0xdd,0xa8,0xa1,0x54,0x11, - 0x35,0x8f,0x5a,0x42,0xad,0xa1,0xb6,0x52,0xaf,0x51, - 0x87,0xa8,0x13,0x34,0x75,0x9a,0x39,0xcd,0x83,0x16, - 0x49,0x4b,0xa5,0xad,0xa2,0x95,0xd3,0x1a,0x68,0x17, - 0x68,0xf7,0x69,0xaf,0xe8,0x74,0xba,0x11,0xdd,0x95, - 0x1e,0x4e,0x97,0xd0,0x57,0xd2,0xcb,0xe9,0x47,0xe8, - 0x97,0xe8,0x03,0xf4,0x77,0x0c,0x0d,0x86,0x15,0x83, - 0xc7,0x88,0x67,0x28,0x19,0x9b,0x18,0x07,0x18,0x67, - 0x19,0x77,0x18,0xaf,0x98,0x4c,0xa6,0x19,0xd3,0x8b, - 0x19,0xc7,0x54,0x30,0x37,0x31,0xeb,0x98,0xe7,0x99, - 0x0f,0x99,0x6f,0x55,0x58,0x2a,0xb6,0x2a,0x7c,0x15, - 0x91,0xca,0x0a,0x95,0x4a,0x95,0x26,0x95,0x1b,0x2a, - 0x2f,0x54,0xa9,0xaa,0xa6,0xaa,0xde,0xaa,0x0b,0x55, - 0xf3,0x55,0xcb,0x54,0x8f,0xa9,0x5e,0x53,0x7d,0xae, - 0x46,0x55,0x33,0x53,0xe3,0xa9,0x09,0xd4,0x96,0xab, - 0x55,0xaa,0x9d,0x50,0xeb,0x53,0x1b,0x53,0x67,0xa9, - 0x3b,0xa8,0x87,0xaa,0x67,0xa8,0x6f,0x54,0x3f,0xa4, - 0x7e,0x59,0xfd,0x89,0x06,0x59,0xc3,0x4c,0xc3,0x4f, - 0x43,0xa4,0x51,0xa0,0xb1,0x5f,0xe3,0xbc,0xc6,0x20, - 0x0b,0x63,0x19,0xb3,0x78,0x2c,0x21,0x6b,0x0d,0xab, - 0x86,0x75,0x81,0x35,0xc4,0x26,0xb1,0xcd,0xd9,0x7c, - 0x76,0x2a,0xbb,0x98,0xfd,0x1d,0xbb,0x8b,0x3d,0xaa, - 0xa9,0xa1,0x39,0x43,0x33,0x4a,0x33,0x57,0xb3,0x52, - 0xf3,0x94,0x66,0x3f,0x07,0xe3,0x98,0x71,0xf8,0x9c, - 0x74,0x4e,0x09,0xe7,0x28,0xa7,0x97,0xf3,0x7e,0x8a, - 0xde,0x14,0xef,0x29,0xe2,0x29,0x1b,0xa6,0x34,0x4c, - 0xb9,0x31,0x65,0x5c,0x6b,0xaa,0x96,0x97,0x96,0x58, - 0xab,0x48,0xab,0x51,0xab,0x47,0xeb,0xbd,0x36,0xae, - 0xed,0xa7,0x9d,0xa6,0xbd,0x45,0xbb,0x59,0xfb,0x81, - 0x0e,0x41,0xc7,0x4a,0x27,0x5c,0x27,0x47,0x67,0x8f, - 0xce,0x05,0x9d,0xe7,0x53,0xd9,0x53,0xdd,0xa7,0x0a, - 0xa7,0x16,0x4d,0x3d,0x3a,0xf5,0xae,0x2e,0xaa,0x6b, - 0xa5,0x1b,0xa1,0xbb,0x44,0x77,0xbf,0x6e,0xa7,0xee, - 0x98,0x9e,0xbe,0x5e,0x80,0x9e,0x4c,0x6f,0xa7,0xde, - 0x79,0xbd,0xe7,0xfa,0x1c,0x7d,0x2f,0xfd,0x54,0xfd, - 0x6d,0xfa,0xa7,0xf5,0x47,0x0c,0x58,0x06,0xb3,0x0c, - 0x24,0x06,0xdb,0x0c,0xce,0x18,0x3c,0xc5,0x35,0x71, - 0x6f,0x3c,0x1d,0x2f,0xc7,0xdb,0xf1,0x51,0x43,0x5d, - 0xc3,0x40,0x43,0xa5,0x61,0x95,0x61,0x97,0xe1,0x84, - 0x91,0xb9,0xd1,0x3c,0xa3,0xd5,0x46,0x8d,0x46,0x0f, - 0x8c,0x69,0xc6,0x5c,0xe3,0x24,0xe3,0x6d,0xc6,0x6d, - 0xc6,0xa3,0x26,0x06,0x26,0x21,0x26,0x4b,0x4d,0xea, - 0x4d,0xee,0x9a,0x52,0x4d,0xb9,0xa6,0x29,0xa6,0x3b, - 0x4c,0x3b,0x4c,0xc7,0xcd,0xcc,0xcd,0xa2,0xcd,0xd6, - 0x99,0x35,0x9b,0x3d,0x31,0xd7,0x32,0xe7,0x9b,0xe7, - 0x9b,0xd7,0x9b,0xdf,0xb7,0x60,0x5a,0x78,0x5a,0x2c, - 0xb6,0xa8,0xb6,0xb8,0x65,0x49,0xb2,0xe4,0x5a,0xa6, - 0x59,0xee,0xb6,0xbc,0x6e,0x85,0x5a,0x39,0x59,0xa5, - 0x58,0x55,0x5a,0x5d,0xb3,0x46,0xad,0x9d,0xad,0x25, - 0xd6,0xbb,0xad,0xbb,0xa7,0x11,0xa7,0xb9,0x4e,0x93, - 0x4e,0xab,0x9e,0xd6,0x67,0xc3,0xb0,0xf1,0xb6,0xc9, - 0xb6,0xa9,0xb7,0x19,0xb0,0xe5,0xd8,0x06,0xdb,0xae, - 0xb6,0x6d,0xb6,0x7d,0x61,0x67,0x62,0x17,0x67,0xb7, - 0xc5,0xae,0xc3,0xee,0x93,0xbd,0x93,0x7d,0xba,0x7d, - 0x8d,0xfd,0x3d,0x07,0x0d,0x87,0xd9,0x0e,0xab,0x1d, - 0x5a,0x1d,0x7e,0x73,0xb4,0x72,0x14,0x3a,0x56,0x3a, - 0xde,0x9a,0xce,0x9c,0xee,0x3f,0x7d,0xc5,0xf4,0x96, - 0xe9,0x2f,0x67,0x58,0xcf,0x10,0xcf,0xd8,0x33,0xe3, - 0xb6,0x13,0xcb,0x29,0xc4,0x69,0x9d,0x53,0x9b,0xd3, - 0x47,0x67,0x17,0x67,0xb9,0x73,0x83,0xf3,0x88,0x8b, - 0x89,0x4b,0x82,0xcb,0x2e,0x97,0x3e,0x2e,0x9b,0x1b, - 0xc6,0xdd,0xc8,0xbd,0xe4,0x4a,0x74,0xf5,0x71,0x5d, - 0xe1,0x7a,0xd2,0xf5,0x9d,0x9b,0xb3,0x9b,0xc2,0xed, - 0xa8,0xdb,0xaf,0xee,0x36,0xee,0x69,0xee,0x87,0xdc, - 0x9f,0xcc,0x34,0x9f,0x29,0x9e,0x59,0x33,0x73,0xd0, - 0xc3,0xc8,0x43,0xe0,0x51,0xe5,0xd1,0x3f,0x0b,0x9f, - 0x95,0x30,0x6b,0xdf,0xac,0x7e,0x4f,0x43,0x4f,0x81, - 0x67,0xb5,0xe7,0x23,0x2f,0x63,0x2f,0x91,0x57,0xad, - 0xd7,0xb0,0xb7,0xa5,0x77,0xaa,0xf7,0x61,0xef,0x17, - 0x3e,0xf6,0x3e,0x72,0x9f,0xe3,0x3e,0xe3,0x3c,0x37, - 0xde,0x32,0xde,0x59,0x5f,0xcc,0x37,0xc0,0xb7,0xc8, - 0xb7,0xcb,0x4f,0xc3,0x6f,0x9e,0x5f,0x85,0xdf,0x43, - 0x7f,0x23,0xff,0x64,0xff,0x7a,0xff,0xd1,0x00,0xa7, - 0x80,0x25,0x01,0x67,0x03,0x89,0x81,0x41,0x81,0x5b, - 0x02,0xfb,0xf8,0x7a,0x7c,0x21,0xbf,0x8e,0x3f,0x3a, - 0xdb,0x65,0xf6,0xb2,0xd9,0xed,0x41,0x8c,0xa0,0xb9, - 0x41,0x15,0x41,0x8f,0x82,0xad,0x82,0xe5,0xc1,0xad, - 0x21,0x68,0xc8,0xec,0x90,0xad,0x21,0xf7,0xe7,0x98, - 0xce,0x91,0xce,0x69,0x0e,0x85,0x50,0x7e,0xe8,0xd6, - 0xd0,0x07,0x61,0xe6,0x61,0x8b,0xc3,0x7e,0x0c,0x27, - 0x85,0x87,0x85,0x57,0x86,0x3f,0x8e,0x70,0x88,0x58, - 0x1a,0xd1,0x31,0x97,0x35,0x77,0xd1,0xdc,0x43,0x73, - 0xdf,0x44,0xfa,0x44,0x96,0x44,0xde,0x9b,0x67,0x31, - 0x4f,0x39,0xaf,0x2d,0x4a,0x35,0x2a,0x3e,0xaa,0x2e, - 0x6a,0x3c,0xda,0x37,0xba,0x34,0xba,0x3f,0xc6,0x2e, - 0x66,0x59,0xcc,0xd5,0x58,0x9d,0x58,0x49,0x6c,0x4b, - 0x1c,0x39,0x2e,0x2a,0xae,0x36,0x6e,0x6c,0xbe,0xdf, - 0xfc,0xed,0xf3,0x87,0xe2,0x9d,0xe2,0x0b,0xe3,0x7b, - 0x17,0x98,0x2f,0xc8,0x5d,0x70,0x79,0xa1,0xce,0xc2, - 0xf4,0x85,0xa7,0x16,0xa9,0x2e,0x12,0x2c,0x3a,0x96, - 0x40,0x4c,0x88,0x4e,0x38,0x94,0xf0,0x41,0x10,0x2a, - 0xa8,0x16,0x8c,0x25,0xf2,0x13,0x77,0x25,0x8e,0x0a, - 0x79,0xc2,0x1d,0xc2,0x67,0x22,0x2f,0xd1,0x36,0xd1, - 0x88,0xd8,0x43,0x5c,0x2a,0x1e,0x4e,0xf2,0x48,0x2a, - 0x4d,0x7a,0x92,0xec,0x91,0xbc,0x35,0x79,0x24,0xc5, - 0x33,0xa5,0x2c,0xe5,0xb9,0x84,0x27,0xa9,0x90,0xbc, - 0x4c,0x0d,0x4c,0xdd,0x9b,0x3a,0x9e,0x16,0x9a,0x76, - 0x20,0x6d,0x32,0x3d,0x3a,0xbd,0x31,0x83,0x92,0x91, - 0x90,0x71,0x42,0xaa,0x21,0x4d,0x93,0xb6,0x67,0xea, - 0x67,0xe6,0x66,0x76,0xcb,0xac,0x65,0x85,0xb2,0xfe, - 0xc5,0x6e,0x8b,0xb7,0x2f,0x1e,0x95,0x07,0xc9,0x6b, - 0xb3,0x90,0xac,0x05,0x59,0x2d,0x0a,0xb6,0x42,0xa6, - 0xe8,0x54,0x5a,0x28,0xd7,0x2a,0x07,0xb2,0x67,0x65, - 0x57,0x66,0xbf,0xcd,0x89,0xca,0x39,0x96,0xab,0x9e, - 0x2b,0xcd,0xed,0xcc,0xb3,0xca,0xdb,0x90,0x37,0x9c, - 0xef,0x9f,0xff,0xed,0x12,0xc2,0x12,0xe1,0x92,0xb6, - 0xa5,0x86,0x4b,0x57,0x2d,0x1d,0x58,0xe6,0xbd,0xac, - 0x6a,0x39,0xb2,0x3c,0x71,0x79,0xdb,0x0a,0xe3,0x15, - 0x05,0x2b,0x86,0x56,0x06,0xac,0x3c,0xb8,0x8a,0xb6, - 0x2a,0x6d,0xd5,0x4f,0xab,0xed,0x57,0x97,0xae,0x7e, - 0xbd,0x26,0x7a,0x4d,0x6b,0x81,0x5e,0xc1,0xca,0x82, - 0xc1,0xb5,0x01,0x6b,0xeb,0x0b,0x55,0x0a,0xe5,0x85, - 0x7d,0xeb,0xdc,0xd7,0xed,0x5d,0x4f,0x58,0x2f,0x59, - 0xdf,0xb5,0x61,0xfa,0x86,0x9d,0x1b,0x3e,0x15,0x89, - 0x8a,0xae,0x14,0xdb,0x17,0x97,0x15,0x7f,0xd8,0x28, - 0xdc,0x78,0xe5,0x1b,0x87,0x6f,0xca,0xbf,0x99,0xdc, - 0x94,0xb4,0xa9,0xab,0xc4,0xb9,0x64,0xcf,0x66,0xd2, - 0x66,0xe9,0xe6,0xde,0x2d,0x9e,0x5b,0x0e,0x96,0xaa, - 0x97,0xe6,0x97,0x0e,0x6e,0x0d,0xd9,0xda,0xb4,0x0d, - 0xdf,0x56,0xb4,0xed,0xf5,0xf6,0x45,0xdb,0x2f,0x97, - 0xcd,0x28,0xdb,0xbb,0x83,0xb6,0x43,0xb9,0xa3,0xbf, - 0x3c,0xb8,0xbc,0x65,0xa7,0xc9,0xce,0xcd,0x3b,0x3f, - 0x54,0xa4,0x54,0xf4,0x54,0xfa,0x54,0x36,0xee,0xd2, - 0xdd,0xb5,0x61,0xd7,0xf8,0x6e,0xd1,0xee,0x1b,0x7b, - 0xbc,0xf6,0x34,0xec,0xd5,0xdb,0x5b,0xbc,0xf7,0xfd, - 0x3e,0xc9,0xbe,0xdb,0x55,0x01,0x55,0x4d,0xd5,0x66, - 0xd5,0x65,0xfb,0x49,0xfb,0xb3,0xf7,0x3f,0xae,0x89, - 0xaa,0xe9,0xf8,0x96,0xfb,0x6d,0x5d,0xad,0x4e,0x6d, - 0x71,0xed,0xc7,0x03,0xd2,0x03,0xfd,0x07,0x23,0x0e, - 0xb6,0xd7,0xb9,0xd4,0xd5,0x1d,0xd2,0x3d,0x54,0x52, - 0x8f,0xd6,0x2b,0xeb,0x47,0x0e,0xc7,0x1f,0xbe,0xfe, - 0x9d,0xef,0x77,0x2d,0x0d,0x36,0x0d,0x55,0x8d,0x9c, - 0xc6,0xe2,0x23,0x70,0x44,0x79,0xe4,0xe9,0xf7,0x09, - 0xdf,0xf7,0x1e,0x0d,0x3a,0xda,0x76,0x8c,0x7b,0xac, - 0xe1,0x07,0xd3,0x1f,0x76,0x1d,0x67,0x1d,0x2f,0x6a, - 0x42,0x9a,0xf2,0x9a,0x46,0x9b,0x53,0x9a,0xfb,0x5b, - 0x62,0x5b,0xba,0x4f,0xcc,0x3e,0xd1,0xd6,0xea,0xde, - 0x7a,0xfc,0x47,0xdb,0x1f,0x0f,0x9c,0x34,0x3c,0x59, - 0x79,0x4a,0xf3,0x54,0xc9,0x69,0xda,0xe9,0x82,0xd3, - 0x93,0x67,0xf2,0xcf,0x8c,0x9d,0x95,0x9d,0x7d,0x7e, - 0x2e,0xf9,0xdc,0x60,0xdb,0xa2,0xb6,0x7b,0xe7,0x63, - 0xce,0xdf,0x6a,0x0f,0x6f,0xef,0xba,0x10,0x74,0xe1, - 0xd2,0x45,0xff,0x8b,0xe7,0x3b,0xbc,0x3b,0xce,0x5c, - 0xf2,0xb8,0x74,0xf2,0xb2,0xdb,0xe5,0x13,0x57,0xb8, - 0x57,0x9a,0xaf,0x3a,0x5f,0x6d,0xea,0x74,0xea,0x3c, - 0xfe,0x93,0xd3,0x4f,0xc7,0xbb,0x9c,0xbb,0x9a,0xae, - 0xb9,0x5c,0x6b,0xb9,0xee,0x7a,0xbd,0xb5,0x7b,0x66, - 0xf7,0xe9,0x1b,0x9e,0x37,0xce,0xdd,0xf4,0xbd,0x79, - 0xf1,0x16,0xff,0xd6,0xd5,0x9e,0x39,0x3d,0xdd,0xbd, - 0xf3,0x7a,0x6f,0xf7,0xc5,0xf7,0xf5,0xdf,0x16,0xdd, - 0x7e,0x72,0x27,0xfd,0xce,0xcb,0xbb,0xd9,0x77,0x27, - 0xee,0xad,0xbc,0x4f,0xbc,0x5f,0xf4,0x40,0xed,0x41, - 0xd9,0x43,0xdd,0x87,0xd5,0x3f,0x5b,0xfe,0xdc,0xd8, - 0xef,0xdc,0x7f,0x6a,0xc0,0x77,0xa0,0xf3,0xd1,0xdc, - 0x47,0xf7,0x06,0x85,0x83,0xcf,0xfe,0x91,0xf5,0x8f, - 0x0f,0x43,0x05,0x8f,0x99,0x8f,0xcb,0x86,0x0d,0x86, - 0xeb,0x9e,0x38,0x3e,0x39,0x39,0xe2,0x3f,0x72,0xfd, - 0xe9,0xfc,0xa7,0x43,0xcf,0x64,0xcf,0x26,0x9e,0x17, - 0xfe,0xa2,0xfe,0xcb,0xae,0x17,0x16,0x2f,0x7e,0xf8, - 0xd5,0xeb,0xd7,0xce,0xd1,0x98,0xd1,0xa1,0x97,0xf2, - 0x97,0x93,0xbf,0x6d,0x7c,0xa5,0xfd,0xea,0xc0,0xeb, - 0x19,0xaf,0xdb,0xc6,0xc2,0xc6,0x1e,0xbe,0xc9,0x78, - 0x33,0x31,0x5e,0xf4,0x56,0xfb,0xed,0xc1,0x77,0xdc, - 0x77,0x1d,0xef,0xa3,0xdf,0x0f,0x4f,0xe4,0x7c,0x20, - 0x7f,0x28,0xff,0x68,0xf9,0xb1,0xf5,0x53,0xd0,0xa7, - 0xfb,0x93,0x19,0x93,0x93,0xff,0x04,0x03,0x98,0xf3, - 0xfc,0x63,0x33,0x2d,0xdb,0x00,0x00,0x00,0x04,0x67, - 0x41,0x4d,0x41,0x00,0x00,0xb1,0x8e,0x7c,0xfb,0x51, - 0x93,0x00,0x00,0x00,0x20,0x63,0x48,0x52,0x4d,0x00, - 0x00,0x7a,0x25,0x00,0x00,0x80,0x83,0x00,0x00,0xf9, - 0xff,0x00,0x00,0x80,0xe9,0x00,0x00,0x75,0x30,0x00, - 0x00,0xea,0x60,0x00,0x00,0x3a,0x98,0x00,0x00,0x17, - 0x6f,0x92,0x5f,0xc5,0x46,0x00,0x00,0x00,0x24,0x49, - 0x44,0x41,0x54,0x78,0xda,0x62,0xfc,0xff,0xff,0xff, - 0x7f,0x06,0x0a,0x00,0x13,0x03,0x85,0x60,0xd4,0x80, - 0x51,0x03,0x46,0x0d,0x18,0x2c,0x06,0x00,0x00,0x00, - 0x00,0xff,0xff,0x03,0x00,0x6b,0xca,0x04,0x1c,0xc4, - 0xc8,0x59,0x18,0x00,0x00,0x00,0x00,0x49,0x45,0x4e, - 0x44,0xae,0x42,0x60,0x82 -}; diff --git a/data/converted/busy_0_svg.cpp b/data/converted/busy_0_svg.cpp new file mode 100644 index 000000000..732d087fc --- /dev/null +++ b/data/converted/busy_0_svg.cpp @@ -0,0 +1,144 @@ +//this file was auto-generated from "busy_0.svg" by res2h + +#include "../Resources.h" + +const size_t busy_0_svg_size = 1369; +const unsigned char busy_0_svg_data[1369] = { + 0x3c,0x3f,0x78,0x6d,0x6c,0x20,0x76,0x65,0x72,0x73, + 0x69,0x6f,0x6e,0x3d,0x22,0x31,0x2e,0x30,0x22,0x20, + 0x65,0x6e,0x63,0x6f,0x64,0x69,0x6e,0x67,0x3d,0x22, + 0x75,0x74,0x66,0x2d,0x38,0x22,0x3f,0x3e,0x0d,0x0a, + 0x3c,0x21,0x2d,0x2d,0x20,0x47,0x65,0x6e,0x65,0x72, + 0x61,0x74,0x6f,0x72,0x3a,0x20,0x41,0x64,0x6f,0x62, + 0x65,0x20,0x49,0x6c,0x6c,0x75,0x73,0x74,0x72,0x61, + 0x74,0x6f,0x72,0x20,0x31,0x36,0x2e,0x30,0x2e,0x33, + 0x2c,0x20,0x53,0x56,0x47,0x20,0x45,0x78,0x70,0x6f, + 0x72,0x74,0x20,0x50,0x6c,0x75,0x67,0x2d,0x49,0x6e, + 0x20,0x2e,0x20,0x53,0x56,0x47,0x20,0x56,0x65,0x72, + 0x73,0x69,0x6f,0x6e,0x3a,0x20,0x36,0x2e,0x30,0x30, + 0x20,0x42,0x75,0x69,0x6c,0x64,0x20,0x30,0x29,0x20, + 0x20,0x2d,0x2d,0x3e,0x0d,0x0a,0x3c,0x21,0x44,0x4f, + 0x43,0x54,0x59,0x50,0x45,0x20,0x73,0x76,0x67,0x20, + 0x50,0x55,0x42,0x4c,0x49,0x43,0x20,0x22,0x2d,0x2f, + 0x2f,0x57,0x33,0x43,0x2f,0x2f,0x44,0x54,0x44,0x20, + 0x53,0x56,0x47,0x20,0x31,0x2e,0x31,0x2f,0x2f,0x45, + 0x4e,0x22,0x20,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f, + 0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72, + 0x67,0x2f,0x47,0x72,0x61,0x70,0x68,0x69,0x63,0x73, + 0x2f,0x53,0x56,0x47,0x2f,0x31,0x2e,0x31,0x2f,0x44, + 0x54,0x44,0x2f,0x73,0x76,0x67,0x31,0x31,0x2e,0x64, + 0x74,0x64,0x22,0x3e,0x0d,0x0a,0x3c,0x73,0x76,0x67, + 0x20,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x3d,0x22, + 0x31,0x2e,0x31,0x22,0x20,0x69,0x64,0x3d,0x22,0x45, + 0x62,0x65,0x6e,0x65,0x5f,0x31,0x22,0x20,0x78,0x6d, + 0x6c,0x6e,0x73,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a, + 0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f, + 0x72,0x67,0x2f,0x32,0x30,0x30,0x30,0x2f,0x73,0x76, + 0x67,0x22,0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3a,0x78, + 0x6c,0x69,0x6e,0x6b,0x3d,0x22,0x68,0x74,0x74,0x70, + 0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e, + 0x6f,0x72,0x67,0x2f,0x31,0x39,0x39,0x39,0x2f,0x78, + 0x6c,0x69,0x6e,0x6b,0x22,0x20,0x78,0x3d,0x22,0x30, + 0x70,0x78,0x22,0x20,0x79,0x3d,0x22,0x30,0x70,0x78, + 0x22,0x0d,0x0a,0x09,0x20,0x77,0x69,0x64,0x74,0x68, + 0x3d,0x22,0x32,0x31,0x2e,0x30,0x30,0x32,0x70,0x78, + 0x22,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x22, + 0x32,0x32,0x2e,0x30,0x30,0x32,0x70,0x78,0x22,0x20, + 0x76,0x69,0x65,0x77,0x42,0x6f,0x78,0x3d,0x22,0x30, + 0x20,0x30,0x20,0x32,0x31,0x2e,0x30,0x30,0x32,0x20, + 0x32,0x32,0x2e,0x30,0x30,0x32,0x22,0x20,0x65,0x6e, + 0x61,0x62,0x6c,0x65,0x2d,0x62,0x61,0x63,0x6b,0x67, + 0x72,0x6f,0x75,0x6e,0x64,0x3d,0x22,0x6e,0x65,0x77, + 0x20,0x30,0x20,0x30,0x20,0x32,0x31,0x2e,0x30,0x30, + 0x32,0x20,0x32,0x32,0x2e,0x30,0x30,0x32,0x22,0x20, + 0x78,0x6d,0x6c,0x3a,0x73,0x70,0x61,0x63,0x65,0x3d, + 0x22,0x70,0x72,0x65,0x73,0x65,0x72,0x76,0x65,0x22, + 0x3e,0x0d,0x0a,0x3c,0x67,0x20,0x6f,0x70,0x61,0x63, + 0x69,0x74,0x79,0x3d,0x22,0x30,0x2e,0x35,0x22,0x3e, + 0x0d,0x0a,0x09,0x3c,0x70,0x61,0x74,0x68,0x20,0x66, + 0x69,0x6c,0x6c,0x3d,0x22,0x23,0x37,0x37,0x37,0x37, + 0x37,0x37,0x22,0x20,0x64,0x3d,0x22,0x4d,0x32,0x31, + 0x2e,0x30,0x30,0x32,0x2c,0x32,0x31,0x2e,0x32,0x39, + 0x33,0x63,0x30,0x2c,0x30,0x2e,0x33,0x39,0x2d,0x30, + 0x2e,0x33,0x31,0x39,0x2c,0x30,0x2e,0x37,0x30,0x39, + 0x2d,0x30,0x2e,0x37,0x30,0x39,0x2c,0x30,0x2e,0x37, + 0x30,0x39,0x68,0x2d,0x37,0x2e,0x39,0x33,0x37,0x63, + 0x2d,0x30,0x2e,0x33,0x39,0x2c,0x30,0x2d,0x30,0x2e, + 0x37,0x30,0x39,0x2d,0x30,0x2e,0x33,0x31,0x39,0x2d, + 0x30,0x2e,0x37,0x30,0x39,0x2d,0x30,0x2e,0x37,0x30, + 0x39,0x76,0x2d,0x38,0x2e,0x33,0x37,0x39,0x0d,0x0a, + 0x09,0x09,0x63,0x30,0x2d,0x30,0x2e,0x33,0x39,0x2c, + 0x30,0x2e,0x33,0x31,0x39,0x2d,0x30,0x2e,0x37,0x30, + 0x39,0x2c,0x30,0x2e,0x37,0x30,0x39,0x2d,0x30,0x2e, + 0x37,0x30,0x39,0x68,0x37,0x2e,0x39,0x33,0x37,0x63, + 0x30,0x2e,0x33,0x39,0x2c,0x30,0x2c,0x30,0x2e,0x37, + 0x30,0x39,0x2c,0x30,0x2e,0x33,0x31,0x39,0x2c,0x30, + 0x2e,0x37,0x30,0x39,0x2c,0x30,0x2e,0x37,0x30,0x39, + 0x56,0x32,0x31,0x2e,0x32,0x39,0x33,0x7a,0x22,0x2f, + 0x3e,0x0d,0x0a,0x3c,0x2f,0x67,0x3e,0x0d,0x0a,0x3c, + 0x67,0x20,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3d, + 0x22,0x30,0x2e,0x35,0x22,0x3e,0x0d,0x0a,0x09,0x3c, + 0x70,0x61,0x74,0x68,0x20,0x66,0x69,0x6c,0x6c,0x3d, + 0x22,0x23,0x37,0x37,0x37,0x37,0x37,0x37,0x22,0x20, + 0x64,0x3d,0x22,0x4d,0x32,0x31,0x2e,0x30,0x30,0x32, + 0x2c,0x39,0x2e,0x30,0x38,0x38,0x63,0x30,0x2c,0x30, + 0x2e,0x33,0x39,0x2d,0x30,0x2e,0x33,0x31,0x39,0x2c, + 0x30,0x2e,0x37,0x30,0x38,0x2d,0x30,0x2e,0x37,0x30, + 0x39,0x2c,0x30,0x2e,0x37,0x30,0x38,0x68,0x2d,0x37, + 0x2e,0x39,0x33,0x37,0x63,0x2d,0x30,0x2e,0x33,0x39, + 0x2c,0x30,0x2d,0x30,0x2e,0x37,0x30,0x39,0x2d,0x30, + 0x2e,0x33,0x31,0x39,0x2d,0x30,0x2e,0x37,0x30,0x39, + 0x2d,0x30,0x2e,0x37,0x30,0x38,0x56,0x30,0x2e,0x37, + 0x30,0x38,0x0d,0x0a,0x09,0x09,0x63,0x30,0x2d,0x30, + 0x2e,0x33,0x39,0x2c,0x30,0x2e,0x33,0x31,0x39,0x2d, + 0x30,0x2e,0x37,0x30,0x38,0x2c,0x30,0x2e,0x37,0x30, + 0x39,0x2d,0x30,0x2e,0x37,0x30,0x38,0x68,0x37,0x2e, + 0x39,0x33,0x37,0x63,0x30,0x2e,0x33,0x39,0x2c,0x30, + 0x2c,0x30,0x2e,0x37,0x30,0x39,0x2c,0x30,0x2e,0x33, + 0x31,0x39,0x2c,0x30,0x2e,0x37,0x30,0x39,0x2c,0x30, + 0x2e,0x37,0x30,0x38,0x56,0x39,0x2e,0x30,0x38,0x38, + 0x7a,0x22,0x2f,0x3e,0x0d,0x0a,0x3c,0x2f,0x67,0x3e, + 0x0d,0x0a,0x3c,0x67,0x20,0x6f,0x70,0x61,0x63,0x69, + 0x74,0x79,0x3d,0x22,0x30,0x2e,0x35,0x22,0x3e,0x0d, + 0x0a,0x09,0x3c,0x70,0x61,0x74,0x68,0x20,0x66,0x69, + 0x6c,0x6c,0x3d,0x22,0x23,0x37,0x37,0x37,0x37,0x37, + 0x37,0x22,0x20,0x64,0x3d,0x22,0x4d,0x39,0x2e,0x33, + 0x35,0x34,0x2c,0x32,0x31,0x2e,0x32,0x39,0x33,0x63, + 0x30,0x2c,0x30,0x2e,0x33,0x39,0x2d,0x30,0x2e,0x33, + 0x31,0x39,0x2c,0x30,0x2e,0x37,0x30,0x39,0x2d,0x30, + 0x2e,0x37,0x30,0x38,0x2c,0x30,0x2e,0x37,0x30,0x39, + 0x48,0x30,0x2e,0x37,0x30,0x38,0x43,0x30,0x2e,0x33, + 0x31,0x39,0x2c,0x32,0x32,0x2e,0x30,0x30,0x32,0x2c, + 0x30,0x2c,0x32,0x31,0x2e,0x36,0x38,0x33,0x2c,0x30, + 0x2c,0x32,0x31,0x2e,0x32,0x39,0x33,0x76,0x2d,0x38, + 0x2e,0x33,0x37,0x39,0x0d,0x0a,0x09,0x09,0x63,0x30, + 0x2d,0x30,0x2e,0x33,0x39,0x2c,0x30,0x2e,0x33,0x31, + 0x39,0x2d,0x30,0x2e,0x37,0x30,0x39,0x2c,0x30,0x2e, + 0x37,0x30,0x38,0x2d,0x30,0x2e,0x37,0x30,0x39,0x68, + 0x37,0x2e,0x39,0x33,0x38,0x63,0x30,0x2e,0x33,0x39, + 0x2c,0x30,0x2c,0x30,0x2e,0x37,0x30,0x38,0x2c,0x30, + 0x2e,0x33,0x31,0x39,0x2c,0x30,0x2e,0x37,0x30,0x38, + 0x2c,0x30,0x2e,0x37,0x30,0x39,0x56,0x32,0x31,0x2e, + 0x32,0x39,0x33,0x7a,0x22,0x2f,0x3e,0x0d,0x0a,0x3c, + 0x2f,0x67,0x3e,0x0d,0x0a,0x3c,0x67,0x3e,0x0d,0x0a, + 0x09,0x3c,0x70,0x61,0x74,0x68,0x20,0x66,0x69,0x6c, + 0x6c,0x3d,0x22,0x23,0x37,0x37,0x37,0x37,0x37,0x37, + 0x22,0x20,0x64,0x3d,0x22,0x4d,0x39,0x2e,0x33,0x35, + 0x34,0x2c,0x39,0x2e,0x30,0x38,0x37,0x63,0x30,0x2c, + 0x30,0x2e,0x33,0x39,0x2d,0x30,0x2e,0x33,0x31,0x39, + 0x2c,0x30,0x2e,0x37,0x30,0x38,0x2d,0x30,0x2e,0x37, + 0x30,0x38,0x2c,0x30,0x2e,0x37,0x30,0x38,0x48,0x30, + 0x2e,0x37,0x30,0x38,0x43,0x30,0x2e,0x33,0x31,0x39, + 0x2c,0x39,0x2e,0x37,0x39,0x36,0x2c,0x30,0x2c,0x39, + 0x2e,0x34,0x37,0x37,0x2c,0x30,0x2c,0x39,0x2e,0x30, + 0x38,0x37,0x56,0x30,0x2e,0x37,0x30,0x38,0x0d,0x0a, + 0x09,0x09,0x43,0x30,0x2c,0x30,0x2e,0x33,0x31,0x39, + 0x2c,0x30,0x2e,0x33,0x31,0x39,0x2c,0x30,0x2c,0x30, + 0x2e,0x37,0x30,0x38,0x2c,0x30,0x68,0x37,0x2e,0x39, + 0x33,0x38,0x63,0x30,0x2e,0x33,0x39,0x2c,0x30,0x2c, + 0x30,0x2e,0x37,0x30,0x38,0x2c,0x30,0x2e,0x33,0x31, + 0x39,0x2c,0x30,0x2e,0x37,0x30,0x38,0x2c,0x30,0x2e, + 0x37,0x30,0x38,0x56,0x39,0x2e,0x30,0x38,0x37,0x7a, + 0x22,0x2f,0x3e,0x0d,0x0a,0x3c,0x2f,0x67,0x3e,0x0d, + 0x0a,0x3c,0x2f,0x73,0x76,0x67,0x3e,0x0d,0x0a +}; diff --git a/data/converted/busy_1_svg.cpp b/data/converted/busy_1_svg.cpp new file mode 100644 index 000000000..6bbc474e1 --- /dev/null +++ b/data/converted/busy_1_svg.cpp @@ -0,0 +1,144 @@ +//this file was auto-generated from "busy_1.svg" by res2h + +#include "../Resources.h" + +const size_t busy_1_svg_size = 1369; +const unsigned char busy_1_svg_data[1369] = { + 0x3c,0x3f,0x78,0x6d,0x6c,0x20,0x76,0x65,0x72,0x73, + 0x69,0x6f,0x6e,0x3d,0x22,0x31,0x2e,0x30,0x22,0x20, + 0x65,0x6e,0x63,0x6f,0x64,0x69,0x6e,0x67,0x3d,0x22, + 0x75,0x74,0x66,0x2d,0x38,0x22,0x3f,0x3e,0x0d,0x0a, + 0x3c,0x21,0x2d,0x2d,0x20,0x47,0x65,0x6e,0x65,0x72, + 0x61,0x74,0x6f,0x72,0x3a,0x20,0x41,0x64,0x6f,0x62, + 0x65,0x20,0x49,0x6c,0x6c,0x75,0x73,0x74,0x72,0x61, + 0x74,0x6f,0x72,0x20,0x31,0x36,0x2e,0x30,0x2e,0x33, + 0x2c,0x20,0x53,0x56,0x47,0x20,0x45,0x78,0x70,0x6f, + 0x72,0x74,0x20,0x50,0x6c,0x75,0x67,0x2d,0x49,0x6e, + 0x20,0x2e,0x20,0x53,0x56,0x47,0x20,0x56,0x65,0x72, + 0x73,0x69,0x6f,0x6e,0x3a,0x20,0x36,0x2e,0x30,0x30, + 0x20,0x42,0x75,0x69,0x6c,0x64,0x20,0x30,0x29,0x20, + 0x20,0x2d,0x2d,0x3e,0x0d,0x0a,0x3c,0x21,0x44,0x4f, + 0x43,0x54,0x59,0x50,0x45,0x20,0x73,0x76,0x67,0x20, + 0x50,0x55,0x42,0x4c,0x49,0x43,0x20,0x22,0x2d,0x2f, + 0x2f,0x57,0x33,0x43,0x2f,0x2f,0x44,0x54,0x44,0x20, + 0x53,0x56,0x47,0x20,0x31,0x2e,0x31,0x2f,0x2f,0x45, + 0x4e,0x22,0x20,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f, + 0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72, + 0x67,0x2f,0x47,0x72,0x61,0x70,0x68,0x69,0x63,0x73, + 0x2f,0x53,0x56,0x47,0x2f,0x31,0x2e,0x31,0x2f,0x44, + 0x54,0x44,0x2f,0x73,0x76,0x67,0x31,0x31,0x2e,0x64, + 0x74,0x64,0x22,0x3e,0x0d,0x0a,0x3c,0x73,0x76,0x67, + 0x20,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x3d,0x22, + 0x31,0x2e,0x31,0x22,0x20,0x69,0x64,0x3d,0x22,0x45, + 0x62,0x65,0x6e,0x65,0x5f,0x31,0x22,0x20,0x78,0x6d, + 0x6c,0x6e,0x73,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a, + 0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f, + 0x72,0x67,0x2f,0x32,0x30,0x30,0x30,0x2f,0x73,0x76, + 0x67,0x22,0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3a,0x78, + 0x6c,0x69,0x6e,0x6b,0x3d,0x22,0x68,0x74,0x74,0x70, + 0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e, + 0x6f,0x72,0x67,0x2f,0x31,0x39,0x39,0x39,0x2f,0x78, + 0x6c,0x69,0x6e,0x6b,0x22,0x20,0x78,0x3d,0x22,0x30, + 0x70,0x78,0x22,0x20,0x79,0x3d,0x22,0x30,0x70,0x78, + 0x22,0x0d,0x0a,0x09,0x20,0x77,0x69,0x64,0x74,0x68, + 0x3d,0x22,0x32,0x31,0x2e,0x30,0x30,0x32,0x70,0x78, + 0x22,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x22, + 0x32,0x32,0x2e,0x30,0x30,0x32,0x70,0x78,0x22,0x20, + 0x76,0x69,0x65,0x77,0x42,0x6f,0x78,0x3d,0x22,0x30, + 0x20,0x30,0x20,0x32,0x31,0x2e,0x30,0x30,0x32,0x20, + 0x32,0x32,0x2e,0x30,0x30,0x32,0x22,0x20,0x65,0x6e, + 0x61,0x62,0x6c,0x65,0x2d,0x62,0x61,0x63,0x6b,0x67, + 0x72,0x6f,0x75,0x6e,0x64,0x3d,0x22,0x6e,0x65,0x77, + 0x20,0x30,0x20,0x30,0x20,0x32,0x31,0x2e,0x30,0x30, + 0x32,0x20,0x32,0x32,0x2e,0x30,0x30,0x32,0x22,0x20, + 0x78,0x6d,0x6c,0x3a,0x73,0x70,0x61,0x63,0x65,0x3d, + 0x22,0x70,0x72,0x65,0x73,0x65,0x72,0x76,0x65,0x22, + 0x3e,0x0d,0x0a,0x3c,0x67,0x20,0x6f,0x70,0x61,0x63, + 0x69,0x74,0x79,0x3d,0x22,0x30,0x2e,0x35,0x22,0x3e, + 0x0d,0x0a,0x09,0x3c,0x70,0x61,0x74,0x68,0x20,0x66, + 0x69,0x6c,0x6c,0x3d,0x22,0x23,0x37,0x37,0x37,0x37, + 0x37,0x37,0x22,0x20,0x64,0x3d,0x22,0x4d,0x32,0x31, + 0x2e,0x30,0x30,0x32,0x2c,0x32,0x31,0x2e,0x32,0x39, + 0x33,0x63,0x30,0x2c,0x30,0x2e,0x33,0x39,0x2d,0x30, + 0x2e,0x33,0x31,0x39,0x2c,0x30,0x2e,0x37,0x30,0x39, + 0x2d,0x30,0x2e,0x37,0x30,0x39,0x2c,0x30,0x2e,0x37, + 0x30,0x39,0x68,0x2d,0x37,0x2e,0x39,0x33,0x37,0x63, + 0x2d,0x30,0x2e,0x33,0x39,0x2c,0x30,0x2d,0x30,0x2e, + 0x37,0x30,0x39,0x2d,0x30,0x2e,0x33,0x31,0x39,0x2d, + 0x30,0x2e,0x37,0x30,0x39,0x2d,0x30,0x2e,0x37,0x30, + 0x39,0x76,0x2d,0x38,0x2e,0x33,0x37,0x39,0x0d,0x0a, + 0x09,0x09,0x63,0x30,0x2d,0x30,0x2e,0x33,0x39,0x2c, + 0x30,0x2e,0x33,0x31,0x39,0x2d,0x30,0x2e,0x37,0x30, + 0x39,0x2c,0x30,0x2e,0x37,0x30,0x39,0x2d,0x30,0x2e, + 0x37,0x30,0x39,0x68,0x37,0x2e,0x39,0x33,0x37,0x63, + 0x30,0x2e,0x33,0x39,0x2c,0x30,0x2c,0x30,0x2e,0x37, + 0x30,0x39,0x2c,0x30,0x2e,0x33,0x31,0x39,0x2c,0x30, + 0x2e,0x37,0x30,0x39,0x2c,0x30,0x2e,0x37,0x30,0x39, + 0x56,0x32,0x31,0x2e,0x32,0x39,0x33,0x7a,0x22,0x2f, + 0x3e,0x0d,0x0a,0x3c,0x2f,0x67,0x3e,0x0d,0x0a,0x3c, + 0x67,0x3e,0x0d,0x0a,0x09,0x3c,0x70,0x61,0x74,0x68, + 0x20,0x66,0x69,0x6c,0x6c,0x3d,0x22,0x23,0x37,0x37, + 0x37,0x37,0x37,0x37,0x22,0x20,0x64,0x3d,0x22,0x4d, + 0x32,0x31,0x2e,0x30,0x30,0x32,0x2c,0x39,0x2e,0x30, + 0x38,0x38,0x63,0x30,0x2c,0x30,0x2e,0x33,0x39,0x2d, + 0x30,0x2e,0x33,0x31,0x39,0x2c,0x30,0x2e,0x37,0x30, + 0x38,0x2d,0x30,0x2e,0x37,0x30,0x39,0x2c,0x30,0x2e, + 0x37,0x30,0x38,0x68,0x2d,0x37,0x2e,0x39,0x33,0x37, + 0x63,0x2d,0x30,0x2e,0x33,0x39,0x2c,0x30,0x2d,0x30, + 0x2e,0x37,0x30,0x39,0x2d,0x30,0x2e,0x33,0x31,0x39, + 0x2d,0x30,0x2e,0x37,0x30,0x39,0x2d,0x30,0x2e,0x37, + 0x30,0x38,0x56,0x30,0x2e,0x37,0x30,0x38,0x0d,0x0a, + 0x09,0x09,0x63,0x30,0x2d,0x30,0x2e,0x33,0x39,0x2c, + 0x30,0x2e,0x33,0x31,0x39,0x2d,0x30,0x2e,0x37,0x30, + 0x38,0x2c,0x30,0x2e,0x37,0x30,0x39,0x2d,0x30,0x2e, + 0x37,0x30,0x38,0x68,0x37,0x2e,0x39,0x33,0x37,0x63, + 0x30,0x2e,0x33,0x39,0x2c,0x30,0x2c,0x30,0x2e,0x37, + 0x30,0x39,0x2c,0x30,0x2e,0x33,0x31,0x39,0x2c,0x30, + 0x2e,0x37,0x30,0x39,0x2c,0x30,0x2e,0x37,0x30,0x38, + 0x56,0x39,0x2e,0x30,0x38,0x38,0x7a,0x22,0x2f,0x3e, + 0x0d,0x0a,0x3c,0x2f,0x67,0x3e,0x0d,0x0a,0x3c,0x67, + 0x20,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3d,0x22, + 0x30,0x2e,0x35,0x22,0x3e,0x0d,0x0a,0x09,0x3c,0x70, + 0x61,0x74,0x68,0x20,0x66,0x69,0x6c,0x6c,0x3d,0x22, + 0x23,0x37,0x37,0x37,0x37,0x37,0x37,0x22,0x20,0x64, + 0x3d,0x22,0x4d,0x39,0x2e,0x33,0x35,0x34,0x2c,0x32, + 0x31,0x2e,0x32,0x39,0x33,0x63,0x30,0x2c,0x30,0x2e, + 0x33,0x39,0x2d,0x30,0x2e,0x33,0x31,0x39,0x2c,0x30, + 0x2e,0x37,0x30,0x39,0x2d,0x30,0x2e,0x37,0x30,0x38, + 0x2c,0x30,0x2e,0x37,0x30,0x39,0x48,0x30,0x2e,0x37, + 0x30,0x38,0x43,0x30,0x2e,0x33,0x31,0x39,0x2c,0x32, + 0x32,0x2e,0x30,0x30,0x32,0x2c,0x30,0x2c,0x32,0x31, + 0x2e,0x36,0x38,0x33,0x2c,0x30,0x2c,0x32,0x31,0x2e, + 0x32,0x39,0x33,0x76,0x2d,0x38,0x2e,0x33,0x37,0x39, + 0x0d,0x0a,0x09,0x09,0x63,0x30,0x2d,0x30,0x2e,0x33, + 0x39,0x2c,0x30,0x2e,0x33,0x31,0x39,0x2d,0x30,0x2e, + 0x37,0x30,0x39,0x2c,0x30,0x2e,0x37,0x30,0x38,0x2d, + 0x30,0x2e,0x37,0x30,0x39,0x68,0x37,0x2e,0x39,0x33, + 0x38,0x63,0x30,0x2e,0x33,0x39,0x2c,0x30,0x2c,0x30, + 0x2e,0x37,0x30,0x38,0x2c,0x30,0x2e,0x33,0x31,0x39, + 0x2c,0x30,0x2e,0x37,0x30,0x38,0x2c,0x30,0x2e,0x37, + 0x30,0x39,0x56,0x32,0x31,0x2e,0x32,0x39,0x33,0x7a, + 0x22,0x2f,0x3e,0x0d,0x0a,0x3c,0x2f,0x67,0x3e,0x0d, + 0x0a,0x3c,0x67,0x20,0x6f,0x70,0x61,0x63,0x69,0x74, + 0x79,0x3d,0x22,0x30,0x2e,0x35,0x22,0x3e,0x0d,0x0a, + 0x09,0x3c,0x70,0x61,0x74,0x68,0x20,0x66,0x69,0x6c, + 0x6c,0x3d,0x22,0x23,0x37,0x37,0x37,0x37,0x37,0x37, + 0x22,0x20,0x64,0x3d,0x22,0x4d,0x39,0x2e,0x33,0x35, + 0x34,0x2c,0x39,0x2e,0x30,0x38,0x37,0x63,0x30,0x2c, + 0x30,0x2e,0x33,0x39,0x2d,0x30,0x2e,0x33,0x31,0x39, + 0x2c,0x30,0x2e,0x37,0x30,0x38,0x2d,0x30,0x2e,0x37, + 0x30,0x38,0x2c,0x30,0x2e,0x37,0x30,0x38,0x48,0x30, + 0x2e,0x37,0x30,0x38,0x43,0x30,0x2e,0x33,0x31,0x39, + 0x2c,0x39,0x2e,0x37,0x39,0x36,0x2c,0x30,0x2c,0x39, + 0x2e,0x34,0x37,0x37,0x2c,0x30,0x2c,0x39,0x2e,0x30, + 0x38,0x37,0x56,0x30,0x2e,0x37,0x30,0x38,0x0d,0x0a, + 0x09,0x09,0x43,0x30,0x2c,0x30,0x2e,0x33,0x31,0x39, + 0x2c,0x30,0x2e,0x33,0x31,0x39,0x2c,0x30,0x2c,0x30, + 0x2e,0x37,0x30,0x38,0x2c,0x30,0x68,0x37,0x2e,0x39, + 0x33,0x38,0x63,0x30,0x2e,0x33,0x39,0x2c,0x30,0x2c, + 0x30,0x2e,0x37,0x30,0x38,0x2c,0x30,0x2e,0x33,0x31, + 0x39,0x2c,0x30,0x2e,0x37,0x30,0x38,0x2c,0x30,0x2e, + 0x37,0x30,0x38,0x56,0x39,0x2e,0x30,0x38,0x37,0x7a, + 0x22,0x2f,0x3e,0x0d,0x0a,0x3c,0x2f,0x67,0x3e,0x0d, + 0x0a,0x3c,0x2f,0x73,0x76,0x67,0x3e,0x0d,0x0a +}; diff --git a/data/converted/busy_2_svg.cpp b/data/converted/busy_2_svg.cpp new file mode 100644 index 000000000..46896deb6 --- /dev/null +++ b/data/converted/busy_2_svg.cpp @@ -0,0 +1,144 @@ +//this file was auto-generated from "busy_2.svg" by res2h + +#include "../Resources.h" + +const size_t busy_2_svg_size = 1369; +const unsigned char busy_2_svg_data[1369] = { + 0x3c,0x3f,0x78,0x6d,0x6c,0x20,0x76,0x65,0x72,0x73, + 0x69,0x6f,0x6e,0x3d,0x22,0x31,0x2e,0x30,0x22,0x20, + 0x65,0x6e,0x63,0x6f,0x64,0x69,0x6e,0x67,0x3d,0x22, + 0x75,0x74,0x66,0x2d,0x38,0x22,0x3f,0x3e,0x0d,0x0a, + 0x3c,0x21,0x2d,0x2d,0x20,0x47,0x65,0x6e,0x65,0x72, + 0x61,0x74,0x6f,0x72,0x3a,0x20,0x41,0x64,0x6f,0x62, + 0x65,0x20,0x49,0x6c,0x6c,0x75,0x73,0x74,0x72,0x61, + 0x74,0x6f,0x72,0x20,0x31,0x36,0x2e,0x30,0x2e,0x33, + 0x2c,0x20,0x53,0x56,0x47,0x20,0x45,0x78,0x70,0x6f, + 0x72,0x74,0x20,0x50,0x6c,0x75,0x67,0x2d,0x49,0x6e, + 0x20,0x2e,0x20,0x53,0x56,0x47,0x20,0x56,0x65,0x72, + 0x73,0x69,0x6f,0x6e,0x3a,0x20,0x36,0x2e,0x30,0x30, + 0x20,0x42,0x75,0x69,0x6c,0x64,0x20,0x30,0x29,0x20, + 0x20,0x2d,0x2d,0x3e,0x0d,0x0a,0x3c,0x21,0x44,0x4f, + 0x43,0x54,0x59,0x50,0x45,0x20,0x73,0x76,0x67,0x20, + 0x50,0x55,0x42,0x4c,0x49,0x43,0x20,0x22,0x2d,0x2f, + 0x2f,0x57,0x33,0x43,0x2f,0x2f,0x44,0x54,0x44,0x20, + 0x53,0x56,0x47,0x20,0x31,0x2e,0x31,0x2f,0x2f,0x45, + 0x4e,0x22,0x20,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f, + 0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72, + 0x67,0x2f,0x47,0x72,0x61,0x70,0x68,0x69,0x63,0x73, + 0x2f,0x53,0x56,0x47,0x2f,0x31,0x2e,0x31,0x2f,0x44, + 0x54,0x44,0x2f,0x73,0x76,0x67,0x31,0x31,0x2e,0x64, + 0x74,0x64,0x22,0x3e,0x0d,0x0a,0x3c,0x73,0x76,0x67, + 0x20,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x3d,0x22, + 0x31,0x2e,0x31,0x22,0x20,0x69,0x64,0x3d,0x22,0x45, + 0x62,0x65,0x6e,0x65,0x5f,0x31,0x22,0x20,0x78,0x6d, + 0x6c,0x6e,0x73,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a, + 0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f, + 0x72,0x67,0x2f,0x32,0x30,0x30,0x30,0x2f,0x73,0x76, + 0x67,0x22,0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3a,0x78, + 0x6c,0x69,0x6e,0x6b,0x3d,0x22,0x68,0x74,0x74,0x70, + 0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e, + 0x6f,0x72,0x67,0x2f,0x31,0x39,0x39,0x39,0x2f,0x78, + 0x6c,0x69,0x6e,0x6b,0x22,0x20,0x78,0x3d,0x22,0x30, + 0x70,0x78,0x22,0x20,0x79,0x3d,0x22,0x30,0x70,0x78, + 0x22,0x0d,0x0a,0x09,0x20,0x77,0x69,0x64,0x74,0x68, + 0x3d,0x22,0x32,0x31,0x2e,0x30,0x30,0x32,0x70,0x78, + 0x22,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x22, + 0x32,0x32,0x2e,0x30,0x30,0x32,0x70,0x78,0x22,0x20, + 0x76,0x69,0x65,0x77,0x42,0x6f,0x78,0x3d,0x22,0x30, + 0x20,0x30,0x20,0x32,0x31,0x2e,0x30,0x30,0x32,0x20, + 0x32,0x32,0x2e,0x30,0x30,0x32,0x22,0x20,0x65,0x6e, + 0x61,0x62,0x6c,0x65,0x2d,0x62,0x61,0x63,0x6b,0x67, + 0x72,0x6f,0x75,0x6e,0x64,0x3d,0x22,0x6e,0x65,0x77, + 0x20,0x30,0x20,0x30,0x20,0x32,0x31,0x2e,0x30,0x30, + 0x32,0x20,0x32,0x32,0x2e,0x30,0x30,0x32,0x22,0x20, + 0x78,0x6d,0x6c,0x3a,0x73,0x70,0x61,0x63,0x65,0x3d, + 0x22,0x70,0x72,0x65,0x73,0x65,0x72,0x76,0x65,0x22, + 0x3e,0x0d,0x0a,0x3c,0x67,0x3e,0x0d,0x0a,0x09,0x3c, + 0x70,0x61,0x74,0x68,0x20,0x66,0x69,0x6c,0x6c,0x3d, + 0x22,0x23,0x37,0x37,0x37,0x37,0x37,0x37,0x22,0x20, + 0x64,0x3d,0x22,0x4d,0x32,0x31,0x2e,0x30,0x30,0x32, + 0x2c,0x32,0x31,0x2e,0x32,0x39,0x33,0x63,0x30,0x2c, + 0x30,0x2e,0x33,0x39,0x2d,0x30,0x2e,0x33,0x31,0x39, + 0x2c,0x30,0x2e,0x37,0x30,0x39,0x2d,0x30,0x2e,0x37, + 0x30,0x39,0x2c,0x30,0x2e,0x37,0x30,0x39,0x68,0x2d, + 0x37,0x2e,0x39,0x33,0x37,0x63,0x2d,0x30,0x2e,0x33, + 0x39,0x2c,0x30,0x2d,0x30,0x2e,0x37,0x30,0x39,0x2d, + 0x30,0x2e,0x33,0x31,0x39,0x2d,0x30,0x2e,0x37,0x30, + 0x39,0x2d,0x30,0x2e,0x37,0x30,0x39,0x76,0x2d,0x38, + 0x2e,0x33,0x37,0x39,0x0d,0x0a,0x09,0x09,0x63,0x30, + 0x2d,0x30,0x2e,0x33,0x39,0x2c,0x30,0x2e,0x33,0x31, + 0x39,0x2d,0x30,0x2e,0x37,0x30,0x39,0x2c,0x30,0x2e, + 0x37,0x30,0x39,0x2d,0x30,0x2e,0x37,0x30,0x39,0x68, + 0x37,0x2e,0x39,0x33,0x37,0x63,0x30,0x2e,0x33,0x39, + 0x2c,0x30,0x2c,0x30,0x2e,0x37,0x30,0x39,0x2c,0x30, + 0x2e,0x33,0x31,0x39,0x2c,0x30,0x2e,0x37,0x30,0x39, + 0x2c,0x30,0x2e,0x37,0x30,0x39,0x56,0x32,0x31,0x2e, + 0x32,0x39,0x33,0x7a,0x22,0x2f,0x3e,0x0d,0x0a,0x3c, + 0x2f,0x67,0x3e,0x0d,0x0a,0x3c,0x67,0x20,0x6f,0x70, + 0x61,0x63,0x69,0x74,0x79,0x3d,0x22,0x30,0x2e,0x35, + 0x22,0x3e,0x0d,0x0a,0x09,0x3c,0x70,0x61,0x74,0x68, + 0x20,0x66,0x69,0x6c,0x6c,0x3d,0x22,0x23,0x37,0x37, + 0x37,0x37,0x37,0x37,0x22,0x20,0x64,0x3d,0x22,0x4d, + 0x32,0x31,0x2e,0x30,0x30,0x32,0x2c,0x39,0x2e,0x30, + 0x38,0x38,0x63,0x30,0x2c,0x30,0x2e,0x33,0x39,0x2d, + 0x30,0x2e,0x33,0x31,0x39,0x2c,0x30,0x2e,0x37,0x30, + 0x38,0x2d,0x30,0x2e,0x37,0x30,0x39,0x2c,0x30,0x2e, + 0x37,0x30,0x38,0x68,0x2d,0x37,0x2e,0x39,0x33,0x37, + 0x63,0x2d,0x30,0x2e,0x33,0x39,0x2c,0x30,0x2d,0x30, + 0x2e,0x37,0x30,0x39,0x2d,0x30,0x2e,0x33,0x31,0x39, + 0x2d,0x30,0x2e,0x37,0x30,0x39,0x2d,0x30,0x2e,0x37, + 0x30,0x38,0x56,0x30,0x2e,0x37,0x30,0x38,0x0d,0x0a, + 0x09,0x09,0x63,0x30,0x2d,0x30,0x2e,0x33,0x39,0x2c, + 0x30,0x2e,0x33,0x31,0x39,0x2d,0x30,0x2e,0x37,0x30, + 0x38,0x2c,0x30,0x2e,0x37,0x30,0x39,0x2d,0x30,0x2e, + 0x37,0x30,0x38,0x68,0x37,0x2e,0x39,0x33,0x37,0x63, + 0x30,0x2e,0x33,0x39,0x2c,0x30,0x2c,0x30,0x2e,0x37, + 0x30,0x39,0x2c,0x30,0x2e,0x33,0x31,0x39,0x2c,0x30, + 0x2e,0x37,0x30,0x39,0x2c,0x30,0x2e,0x37,0x30,0x38, + 0x56,0x39,0x2e,0x30,0x38,0x38,0x7a,0x22,0x2f,0x3e, + 0x0d,0x0a,0x3c,0x2f,0x67,0x3e,0x0d,0x0a,0x3c,0x67, + 0x20,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3d,0x22, + 0x30,0x2e,0x35,0x22,0x3e,0x0d,0x0a,0x09,0x3c,0x70, + 0x61,0x74,0x68,0x20,0x66,0x69,0x6c,0x6c,0x3d,0x22, + 0x23,0x37,0x37,0x37,0x37,0x37,0x37,0x22,0x20,0x64, + 0x3d,0x22,0x4d,0x39,0x2e,0x33,0x35,0x34,0x2c,0x32, + 0x31,0x2e,0x32,0x39,0x33,0x63,0x30,0x2c,0x30,0x2e, + 0x33,0x39,0x2d,0x30,0x2e,0x33,0x31,0x39,0x2c,0x30, + 0x2e,0x37,0x30,0x39,0x2d,0x30,0x2e,0x37,0x30,0x38, + 0x2c,0x30,0x2e,0x37,0x30,0x39,0x48,0x30,0x2e,0x37, + 0x30,0x38,0x43,0x30,0x2e,0x33,0x31,0x39,0x2c,0x32, + 0x32,0x2e,0x30,0x30,0x32,0x2c,0x30,0x2c,0x32,0x31, + 0x2e,0x36,0x38,0x33,0x2c,0x30,0x2c,0x32,0x31,0x2e, + 0x32,0x39,0x33,0x76,0x2d,0x38,0x2e,0x33,0x37,0x39, + 0x0d,0x0a,0x09,0x09,0x63,0x30,0x2d,0x30,0x2e,0x33, + 0x39,0x2c,0x30,0x2e,0x33,0x31,0x39,0x2d,0x30,0x2e, + 0x37,0x30,0x39,0x2c,0x30,0x2e,0x37,0x30,0x38,0x2d, + 0x30,0x2e,0x37,0x30,0x39,0x68,0x37,0x2e,0x39,0x33, + 0x38,0x63,0x30,0x2e,0x33,0x39,0x2c,0x30,0x2c,0x30, + 0x2e,0x37,0x30,0x38,0x2c,0x30,0x2e,0x33,0x31,0x39, + 0x2c,0x30,0x2e,0x37,0x30,0x38,0x2c,0x30,0x2e,0x37, + 0x30,0x39,0x56,0x32,0x31,0x2e,0x32,0x39,0x33,0x7a, + 0x22,0x2f,0x3e,0x0d,0x0a,0x3c,0x2f,0x67,0x3e,0x0d, + 0x0a,0x3c,0x67,0x20,0x6f,0x70,0x61,0x63,0x69,0x74, + 0x79,0x3d,0x22,0x30,0x2e,0x35,0x22,0x3e,0x0d,0x0a, + 0x09,0x3c,0x70,0x61,0x74,0x68,0x20,0x66,0x69,0x6c, + 0x6c,0x3d,0x22,0x23,0x37,0x37,0x37,0x37,0x37,0x37, + 0x22,0x20,0x64,0x3d,0x22,0x4d,0x39,0x2e,0x33,0x35, + 0x34,0x2c,0x39,0x2e,0x30,0x38,0x37,0x63,0x30,0x2c, + 0x30,0x2e,0x33,0x39,0x2d,0x30,0x2e,0x33,0x31,0x39, + 0x2c,0x30,0x2e,0x37,0x30,0x38,0x2d,0x30,0x2e,0x37, + 0x30,0x38,0x2c,0x30,0x2e,0x37,0x30,0x38,0x48,0x30, + 0x2e,0x37,0x30,0x38,0x43,0x30,0x2e,0x33,0x31,0x39, + 0x2c,0x39,0x2e,0x37,0x39,0x36,0x2c,0x30,0x2c,0x39, + 0x2e,0x34,0x37,0x37,0x2c,0x30,0x2c,0x39,0x2e,0x30, + 0x38,0x37,0x56,0x30,0x2e,0x37,0x30,0x38,0x0d,0x0a, + 0x09,0x09,0x43,0x30,0x2c,0x30,0x2e,0x33,0x31,0x39, + 0x2c,0x30,0x2e,0x33,0x31,0x39,0x2c,0x30,0x2c,0x30, + 0x2e,0x37,0x30,0x38,0x2c,0x30,0x68,0x37,0x2e,0x39, + 0x33,0x38,0x63,0x30,0x2e,0x33,0x39,0x2c,0x30,0x2c, + 0x30,0x2e,0x37,0x30,0x38,0x2c,0x30,0x2e,0x33,0x31, + 0x39,0x2c,0x30,0x2e,0x37,0x30,0x38,0x2c,0x30,0x2e, + 0x37,0x30,0x38,0x56,0x39,0x2e,0x30,0x38,0x37,0x7a, + 0x22,0x2f,0x3e,0x0d,0x0a,0x3c,0x2f,0x67,0x3e,0x0d, + 0x0a,0x3c,0x2f,0x73,0x76,0x67,0x3e,0x0d,0x0a +}; diff --git a/data/converted/busy_3_svg.cpp b/data/converted/busy_3_svg.cpp new file mode 100644 index 000000000..8172c7c5f --- /dev/null +++ b/data/converted/busy_3_svg.cpp @@ -0,0 +1,144 @@ +//this file was auto-generated from "busy_3.svg" by res2h + +#include "../Resources.h" + +const size_t busy_3_svg_size = 1369; +const unsigned char busy_3_svg_data[1369] = { + 0x3c,0x3f,0x78,0x6d,0x6c,0x20,0x76,0x65,0x72,0x73, + 0x69,0x6f,0x6e,0x3d,0x22,0x31,0x2e,0x30,0x22,0x20, + 0x65,0x6e,0x63,0x6f,0x64,0x69,0x6e,0x67,0x3d,0x22, + 0x75,0x74,0x66,0x2d,0x38,0x22,0x3f,0x3e,0x0d,0x0a, + 0x3c,0x21,0x2d,0x2d,0x20,0x47,0x65,0x6e,0x65,0x72, + 0x61,0x74,0x6f,0x72,0x3a,0x20,0x41,0x64,0x6f,0x62, + 0x65,0x20,0x49,0x6c,0x6c,0x75,0x73,0x74,0x72,0x61, + 0x74,0x6f,0x72,0x20,0x31,0x36,0x2e,0x30,0x2e,0x33, + 0x2c,0x20,0x53,0x56,0x47,0x20,0x45,0x78,0x70,0x6f, + 0x72,0x74,0x20,0x50,0x6c,0x75,0x67,0x2d,0x49,0x6e, + 0x20,0x2e,0x20,0x53,0x56,0x47,0x20,0x56,0x65,0x72, + 0x73,0x69,0x6f,0x6e,0x3a,0x20,0x36,0x2e,0x30,0x30, + 0x20,0x42,0x75,0x69,0x6c,0x64,0x20,0x30,0x29,0x20, + 0x20,0x2d,0x2d,0x3e,0x0d,0x0a,0x3c,0x21,0x44,0x4f, + 0x43,0x54,0x59,0x50,0x45,0x20,0x73,0x76,0x67,0x20, + 0x50,0x55,0x42,0x4c,0x49,0x43,0x20,0x22,0x2d,0x2f, + 0x2f,0x57,0x33,0x43,0x2f,0x2f,0x44,0x54,0x44,0x20, + 0x53,0x56,0x47,0x20,0x31,0x2e,0x31,0x2f,0x2f,0x45, + 0x4e,0x22,0x20,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f, + 0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72, + 0x67,0x2f,0x47,0x72,0x61,0x70,0x68,0x69,0x63,0x73, + 0x2f,0x53,0x56,0x47,0x2f,0x31,0x2e,0x31,0x2f,0x44, + 0x54,0x44,0x2f,0x73,0x76,0x67,0x31,0x31,0x2e,0x64, + 0x74,0x64,0x22,0x3e,0x0d,0x0a,0x3c,0x73,0x76,0x67, + 0x20,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x3d,0x22, + 0x31,0x2e,0x31,0x22,0x20,0x69,0x64,0x3d,0x22,0x45, + 0x62,0x65,0x6e,0x65,0x5f,0x31,0x22,0x20,0x78,0x6d, + 0x6c,0x6e,0x73,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a, + 0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f, + 0x72,0x67,0x2f,0x32,0x30,0x30,0x30,0x2f,0x73,0x76, + 0x67,0x22,0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3a,0x78, + 0x6c,0x69,0x6e,0x6b,0x3d,0x22,0x68,0x74,0x74,0x70, + 0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e, + 0x6f,0x72,0x67,0x2f,0x31,0x39,0x39,0x39,0x2f,0x78, + 0x6c,0x69,0x6e,0x6b,0x22,0x20,0x78,0x3d,0x22,0x30, + 0x70,0x78,0x22,0x20,0x79,0x3d,0x22,0x30,0x70,0x78, + 0x22,0x0d,0x0a,0x09,0x20,0x77,0x69,0x64,0x74,0x68, + 0x3d,0x22,0x32,0x31,0x2e,0x30,0x30,0x32,0x70,0x78, + 0x22,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x22, + 0x32,0x32,0x2e,0x30,0x30,0x32,0x70,0x78,0x22,0x20, + 0x76,0x69,0x65,0x77,0x42,0x6f,0x78,0x3d,0x22,0x30, + 0x20,0x30,0x20,0x32,0x31,0x2e,0x30,0x30,0x32,0x20, + 0x32,0x32,0x2e,0x30,0x30,0x32,0x22,0x20,0x65,0x6e, + 0x61,0x62,0x6c,0x65,0x2d,0x62,0x61,0x63,0x6b,0x67, + 0x72,0x6f,0x75,0x6e,0x64,0x3d,0x22,0x6e,0x65,0x77, + 0x20,0x30,0x20,0x30,0x20,0x32,0x31,0x2e,0x30,0x30, + 0x32,0x20,0x32,0x32,0x2e,0x30,0x30,0x32,0x22,0x20, + 0x78,0x6d,0x6c,0x3a,0x73,0x70,0x61,0x63,0x65,0x3d, + 0x22,0x70,0x72,0x65,0x73,0x65,0x72,0x76,0x65,0x22, + 0x3e,0x0d,0x0a,0x3c,0x67,0x20,0x6f,0x70,0x61,0x63, + 0x69,0x74,0x79,0x3d,0x22,0x30,0x2e,0x35,0x22,0x3e, + 0x0d,0x0a,0x09,0x3c,0x70,0x61,0x74,0x68,0x20,0x66, + 0x69,0x6c,0x6c,0x3d,0x22,0x23,0x37,0x37,0x37,0x37, + 0x37,0x37,0x22,0x20,0x64,0x3d,0x22,0x4d,0x32,0x31, + 0x2e,0x30,0x30,0x32,0x2c,0x32,0x31,0x2e,0x32,0x39, + 0x33,0x63,0x30,0x2c,0x30,0x2e,0x33,0x39,0x2d,0x30, + 0x2e,0x33,0x31,0x39,0x2c,0x30,0x2e,0x37,0x30,0x39, + 0x2d,0x30,0x2e,0x37,0x30,0x39,0x2c,0x30,0x2e,0x37, + 0x30,0x39,0x68,0x2d,0x37,0x2e,0x39,0x33,0x37,0x63, + 0x2d,0x30,0x2e,0x33,0x39,0x2c,0x30,0x2d,0x30,0x2e, + 0x37,0x30,0x39,0x2d,0x30,0x2e,0x33,0x31,0x39,0x2d, + 0x30,0x2e,0x37,0x30,0x39,0x2d,0x30,0x2e,0x37,0x30, + 0x39,0x76,0x2d,0x38,0x2e,0x33,0x37,0x39,0x0d,0x0a, + 0x09,0x09,0x63,0x30,0x2d,0x30,0x2e,0x33,0x39,0x2c, + 0x30,0x2e,0x33,0x31,0x39,0x2d,0x30,0x2e,0x37,0x30, + 0x39,0x2c,0x30,0x2e,0x37,0x30,0x39,0x2d,0x30,0x2e, + 0x37,0x30,0x39,0x68,0x37,0x2e,0x39,0x33,0x37,0x63, + 0x30,0x2e,0x33,0x39,0x2c,0x30,0x2c,0x30,0x2e,0x37, + 0x30,0x39,0x2c,0x30,0x2e,0x33,0x31,0x39,0x2c,0x30, + 0x2e,0x37,0x30,0x39,0x2c,0x30,0x2e,0x37,0x30,0x39, + 0x56,0x32,0x31,0x2e,0x32,0x39,0x33,0x7a,0x22,0x2f, + 0x3e,0x0d,0x0a,0x3c,0x2f,0x67,0x3e,0x0d,0x0a,0x3c, + 0x67,0x20,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3d, + 0x22,0x30,0x2e,0x35,0x22,0x3e,0x0d,0x0a,0x09,0x3c, + 0x70,0x61,0x74,0x68,0x20,0x66,0x69,0x6c,0x6c,0x3d, + 0x22,0x23,0x37,0x37,0x37,0x37,0x37,0x37,0x22,0x20, + 0x64,0x3d,0x22,0x4d,0x32,0x31,0x2e,0x30,0x30,0x32, + 0x2c,0x39,0x2e,0x30,0x38,0x38,0x63,0x30,0x2c,0x30, + 0x2e,0x33,0x39,0x2d,0x30,0x2e,0x33,0x31,0x39,0x2c, + 0x30,0x2e,0x37,0x30,0x38,0x2d,0x30,0x2e,0x37,0x30, + 0x39,0x2c,0x30,0x2e,0x37,0x30,0x38,0x68,0x2d,0x37, + 0x2e,0x39,0x33,0x37,0x63,0x2d,0x30,0x2e,0x33,0x39, + 0x2c,0x30,0x2d,0x30,0x2e,0x37,0x30,0x39,0x2d,0x30, + 0x2e,0x33,0x31,0x39,0x2d,0x30,0x2e,0x37,0x30,0x39, + 0x2d,0x30,0x2e,0x37,0x30,0x38,0x56,0x30,0x2e,0x37, + 0x30,0x38,0x0d,0x0a,0x09,0x09,0x63,0x30,0x2d,0x30, + 0x2e,0x33,0x39,0x2c,0x30,0x2e,0x33,0x31,0x39,0x2d, + 0x30,0x2e,0x37,0x30,0x38,0x2c,0x30,0x2e,0x37,0x30, + 0x39,0x2d,0x30,0x2e,0x37,0x30,0x38,0x68,0x37,0x2e, + 0x39,0x33,0x37,0x63,0x30,0x2e,0x33,0x39,0x2c,0x30, + 0x2c,0x30,0x2e,0x37,0x30,0x39,0x2c,0x30,0x2e,0x33, + 0x31,0x39,0x2c,0x30,0x2e,0x37,0x30,0x39,0x2c,0x30, + 0x2e,0x37,0x30,0x38,0x56,0x39,0x2e,0x30,0x38,0x38, + 0x7a,0x22,0x2f,0x3e,0x0d,0x0a,0x3c,0x2f,0x67,0x3e, + 0x0d,0x0a,0x3c,0x67,0x3e,0x0d,0x0a,0x09,0x3c,0x70, + 0x61,0x74,0x68,0x20,0x66,0x69,0x6c,0x6c,0x3d,0x22, + 0x23,0x37,0x37,0x37,0x37,0x37,0x37,0x22,0x20,0x64, + 0x3d,0x22,0x4d,0x39,0x2e,0x33,0x35,0x34,0x2c,0x32, + 0x31,0x2e,0x32,0x39,0x33,0x63,0x30,0x2c,0x30,0x2e, + 0x33,0x39,0x2d,0x30,0x2e,0x33,0x31,0x39,0x2c,0x30, + 0x2e,0x37,0x30,0x39,0x2d,0x30,0x2e,0x37,0x30,0x38, + 0x2c,0x30,0x2e,0x37,0x30,0x39,0x48,0x30,0x2e,0x37, + 0x30,0x38,0x43,0x30,0x2e,0x33,0x31,0x39,0x2c,0x32, + 0x32,0x2e,0x30,0x30,0x32,0x2c,0x30,0x2c,0x32,0x31, + 0x2e,0x36,0x38,0x33,0x2c,0x30,0x2c,0x32,0x31,0x2e, + 0x32,0x39,0x33,0x76,0x2d,0x38,0x2e,0x33,0x37,0x39, + 0x0d,0x0a,0x09,0x09,0x63,0x30,0x2d,0x30,0x2e,0x33, + 0x39,0x2c,0x30,0x2e,0x33,0x31,0x39,0x2d,0x30,0x2e, + 0x37,0x30,0x39,0x2c,0x30,0x2e,0x37,0x30,0x38,0x2d, + 0x30,0x2e,0x37,0x30,0x39,0x68,0x37,0x2e,0x39,0x33, + 0x38,0x63,0x30,0x2e,0x33,0x39,0x2c,0x30,0x2c,0x30, + 0x2e,0x37,0x30,0x38,0x2c,0x30,0x2e,0x33,0x31,0x39, + 0x2c,0x30,0x2e,0x37,0x30,0x38,0x2c,0x30,0x2e,0x37, + 0x30,0x39,0x56,0x32,0x31,0x2e,0x32,0x39,0x33,0x7a, + 0x22,0x2f,0x3e,0x0d,0x0a,0x3c,0x2f,0x67,0x3e,0x0d, + 0x0a,0x3c,0x67,0x20,0x6f,0x70,0x61,0x63,0x69,0x74, + 0x79,0x3d,0x22,0x30,0x2e,0x35,0x22,0x3e,0x0d,0x0a, + 0x09,0x3c,0x70,0x61,0x74,0x68,0x20,0x66,0x69,0x6c, + 0x6c,0x3d,0x22,0x23,0x37,0x37,0x37,0x37,0x37,0x37, + 0x22,0x20,0x64,0x3d,0x22,0x4d,0x39,0x2e,0x33,0x35, + 0x34,0x2c,0x39,0x2e,0x30,0x38,0x37,0x63,0x30,0x2c, + 0x30,0x2e,0x33,0x39,0x2d,0x30,0x2e,0x33,0x31,0x39, + 0x2c,0x30,0x2e,0x37,0x30,0x38,0x2d,0x30,0x2e,0x37, + 0x30,0x38,0x2c,0x30,0x2e,0x37,0x30,0x38,0x48,0x30, + 0x2e,0x37,0x30,0x38,0x43,0x30,0x2e,0x33,0x31,0x39, + 0x2c,0x39,0x2e,0x37,0x39,0x36,0x2c,0x30,0x2c,0x39, + 0x2e,0x34,0x37,0x37,0x2c,0x30,0x2c,0x39,0x2e,0x30, + 0x38,0x37,0x56,0x30,0x2e,0x37,0x30,0x38,0x0d,0x0a, + 0x09,0x09,0x43,0x30,0x2c,0x30,0x2e,0x33,0x31,0x39, + 0x2c,0x30,0x2e,0x33,0x31,0x39,0x2c,0x30,0x2c,0x30, + 0x2e,0x37,0x30,0x38,0x2c,0x30,0x68,0x37,0x2e,0x39, + 0x33,0x38,0x63,0x30,0x2e,0x33,0x39,0x2c,0x30,0x2c, + 0x30,0x2e,0x37,0x30,0x38,0x2c,0x30,0x2e,0x33,0x31, + 0x39,0x2c,0x30,0x2e,0x37,0x30,0x38,0x2c,0x30,0x2e, + 0x37,0x30,0x38,0x56,0x39,0x2e,0x30,0x38,0x37,0x7a, + 0x22,0x2f,0x3e,0x0d,0x0a,0x3c,0x2f,0x67,0x3e,0x0d, + 0x0a,0x3c,0x2f,0x73,0x76,0x67,0x3e,0x0d,0x0a +}; diff --git a/data/converted/button_filled_png.cpp b/data/converted/button_filled_png.cpp new file mode 100644 index 000000000..755754b1b --- /dev/null +++ b/data/converted/button_filled_png.cpp @@ -0,0 +1,124 @@ +//this file was auto-generated from "button_filled.png" by res2h + +#include "../Resources.h" + +const size_t button_filled_png_size = 1168; +const unsigned char button_filled_png_data[1168] = { + 0x89,0x50,0x4e,0x47,0x0d,0x0a,0x1a,0x0a,0x00,0x00, + 0x00,0x0d,0x49,0x48,0x44,0x52,0x00,0x00,0x00,0x30, + 0x00,0x00,0x00,0x30,0x08,0x06,0x00,0x00,0x00,0x57, + 0x02,0xf9,0x87,0x00,0x00,0x00,0x19,0x74,0x45,0x58, + 0x74,0x53,0x6f,0x66,0x74,0x77,0x61,0x72,0x65,0x00, + 0x41,0x64,0x6f,0x62,0x65,0x20,0x49,0x6d,0x61,0x67, + 0x65,0x52,0x65,0x61,0x64,0x79,0x71,0xc9,0x65,0x3c, + 0x00,0x00,0x03,0x68,0x69,0x54,0x58,0x74,0x58,0x4d, + 0x4c,0x3a,0x63,0x6f,0x6d,0x2e,0x61,0x64,0x6f,0x62, + 0x65,0x2e,0x78,0x6d,0x70,0x00,0x00,0x00,0x00,0x00, + 0x3c,0x3f,0x78,0x70,0x61,0x63,0x6b,0x65,0x74,0x20, + 0x62,0x65,0x67,0x69,0x6e,0x3d,0x22,0xef,0xbb,0xbf, + 0x22,0x20,0x69,0x64,0x3d,0x22,0x57,0x35,0x4d,0x30, + 0x4d,0x70,0x43,0x65,0x68,0x69,0x48,0x7a,0x72,0x65, + 0x53,0x7a,0x4e,0x54,0x63,0x7a,0x6b,0x63,0x39,0x64, + 0x22,0x3f,0x3e,0x20,0x3c,0x78,0x3a,0x78,0x6d,0x70, + 0x6d,0x65,0x74,0x61,0x20,0x78,0x6d,0x6c,0x6e,0x73, + 0x3a,0x78,0x3d,0x22,0x61,0x64,0x6f,0x62,0x65,0x3a, + 0x6e,0x73,0x3a,0x6d,0x65,0x74,0x61,0x2f,0x22,0x20, + 0x78,0x3a,0x78,0x6d,0x70,0x74,0x6b,0x3d,0x22,0x41, + 0x64,0x6f,0x62,0x65,0x20,0x58,0x4d,0x50,0x20,0x43, + 0x6f,0x72,0x65,0x20,0x35,0x2e,0x33,0x2d,0x63,0x30, + 0x31,0x31,0x20,0x36,0x36,0x2e,0x31,0x34,0x35,0x36, + 0x36,0x31,0x2c,0x20,0x32,0x30,0x31,0x32,0x2f,0x30, + 0x32,0x2f,0x30,0x36,0x2d,0x31,0x34,0x3a,0x35,0x36, + 0x3a,0x32,0x37,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x22,0x3e,0x20,0x3c,0x72,0x64,0x66,0x3a,0x52, + 0x44,0x46,0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3a,0x72, + 0x64,0x66,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f, + 0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72, + 0x67,0x2f,0x31,0x39,0x39,0x39,0x2f,0x30,0x32,0x2f, + 0x32,0x32,0x2d,0x72,0x64,0x66,0x2d,0x73,0x79,0x6e, + 0x74,0x61,0x78,0x2d,0x6e,0x73,0x23,0x22,0x3e,0x20, + 0x3c,0x72,0x64,0x66,0x3a,0x44,0x65,0x73,0x63,0x72, + 0x69,0x70,0x74,0x69,0x6f,0x6e,0x20,0x72,0x64,0x66, + 0x3a,0x61,0x62,0x6f,0x75,0x74,0x3d,0x22,0x22,0x20, + 0x78,0x6d,0x6c,0x6e,0x73,0x3a,0x78,0x6d,0x70,0x4d, + 0x4d,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f, + 0x6e,0x73,0x2e,0x61,0x64,0x6f,0x62,0x65,0x2e,0x63, + 0x6f,0x6d,0x2f,0x78,0x61,0x70,0x2f,0x31,0x2e,0x30, + 0x2f,0x6d,0x6d,0x2f,0x22,0x20,0x78,0x6d,0x6c,0x6e, + 0x73,0x3a,0x73,0x74,0x52,0x65,0x66,0x3d,0x22,0x68, + 0x74,0x74,0x70,0x3a,0x2f,0x2f,0x6e,0x73,0x2e,0x61, + 0x64,0x6f,0x62,0x65,0x2e,0x63,0x6f,0x6d,0x2f,0x78, + 0x61,0x70,0x2f,0x31,0x2e,0x30,0x2f,0x73,0x54,0x79, + 0x70,0x65,0x2f,0x52,0x65,0x73,0x6f,0x75,0x72,0x63, + 0x65,0x52,0x65,0x66,0x23,0x22,0x20,0x78,0x6d,0x6c, + 0x6e,0x73,0x3a,0x78,0x6d,0x70,0x3d,0x22,0x68,0x74, + 0x74,0x70,0x3a,0x2f,0x2f,0x6e,0x73,0x2e,0x61,0x64, + 0x6f,0x62,0x65,0x2e,0x63,0x6f,0x6d,0x2f,0x78,0x61, + 0x70,0x2f,0x31,0x2e,0x30,0x2f,0x22,0x20,0x78,0x6d, + 0x70,0x4d,0x4d,0x3a,0x4f,0x72,0x69,0x67,0x69,0x6e, + 0x61,0x6c,0x44,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74, + 0x49,0x44,0x3d,0x22,0x78,0x6d,0x70,0x2e,0x64,0x69, + 0x64,0x3a,0x37,0x34,0x30,0x31,0x37,0x39,0x35,0x39, + 0x30,0x45,0x32,0x30,0x36,0x38,0x31,0x31,0x38,0x30, + 0x38,0x33,0x43,0x37,0x45,0x33,0x31,0x45,0x41,0x35, + 0x41,0x37,0x35,0x33,0x22,0x20,0x78,0x6d,0x70,0x4d, + 0x4d,0x3a,0x44,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74, + 0x49,0x44,0x3d,0x22,0x78,0x6d,0x70,0x2e,0x64,0x69, + 0x64,0x3a,0x39,0x38,0x44,0x38,0x30,0x39,0x44,0x44, + 0x39,0x44,0x38,0x37,0x31,0x31,0x45,0x33,0x41,0x39, + 0x31,0x44,0x42,0x44,0x46,0x44,0x34,0x30,0x39,0x39, + 0x32,0x45,0x45,0x33,0x22,0x20,0x78,0x6d,0x70,0x4d, + 0x4d,0x3a,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65, + 0x49,0x44,0x3d,0x22,0x78,0x6d,0x70,0x2e,0x69,0x69, + 0x64,0x3a,0x39,0x38,0x44,0x38,0x30,0x39,0x44,0x43, + 0x39,0x44,0x38,0x37,0x31,0x31,0x45,0x33,0x41,0x39, + 0x31,0x44,0x42,0x44,0x46,0x44,0x34,0x30,0x39,0x39, + 0x32,0x45,0x45,0x33,0x22,0x20,0x78,0x6d,0x70,0x3a, + 0x43,0x72,0x65,0x61,0x74,0x6f,0x72,0x54,0x6f,0x6f, + 0x6c,0x3d,0x22,0x41,0x64,0x6f,0x62,0x65,0x20,0x50, + 0x68,0x6f,0x74,0x6f,0x73,0x68,0x6f,0x70,0x20,0x43, + 0x53,0x36,0x20,0x28,0x4d,0x61,0x63,0x69,0x6e,0x74, + 0x6f,0x73,0x68,0x29,0x22,0x3e,0x20,0x3c,0x78,0x6d, + 0x70,0x4d,0x4d,0x3a,0x44,0x65,0x72,0x69,0x76,0x65, + 0x64,0x46,0x72,0x6f,0x6d,0x20,0x73,0x74,0x52,0x65, + 0x66,0x3a,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65, + 0x49,0x44,0x3d,0x22,0x78,0x6d,0x70,0x2e,0x69,0x69, + 0x64,0x3a,0x37,0x34,0x30,0x31,0x37,0x39,0x35,0x39, + 0x30,0x45,0x32,0x30,0x36,0x38,0x31,0x31,0x38,0x30, + 0x38,0x33,0x43,0x37,0x45,0x33,0x31,0x45,0x41,0x35, + 0x41,0x37,0x35,0x33,0x22,0x20,0x73,0x74,0x52,0x65, + 0x66,0x3a,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74, + 0x49,0x44,0x3d,0x22,0x78,0x6d,0x70,0x2e,0x64,0x69, + 0x64,0x3a,0x37,0x34,0x30,0x31,0x37,0x39,0x35,0x39, + 0x30,0x45,0x32,0x30,0x36,0x38,0x31,0x31,0x38,0x30, + 0x38,0x33,0x43,0x37,0x45,0x33,0x31,0x45,0x41,0x35, + 0x41,0x37,0x35,0x33,0x22,0x2f,0x3e,0x20,0x3c,0x2f, + 0x72,0x64,0x66,0x3a,0x44,0x65,0x73,0x63,0x72,0x69, + 0x70,0x74,0x69,0x6f,0x6e,0x3e,0x20,0x3c,0x2f,0x72, + 0x64,0x66,0x3a,0x52,0x44,0x46,0x3e,0x20,0x3c,0x2f, + 0x78,0x3a,0x78,0x6d,0x70,0x6d,0x65,0x74,0x61,0x3e, + 0x20,0x3c,0x3f,0x78,0x70,0x61,0x63,0x6b,0x65,0x74, + 0x20,0x65,0x6e,0x64,0x3d,0x22,0x72,0x22,0x3f,0x3e, + 0xfb,0x75,0xe4,0x6d,0x00,0x00,0x00,0xbe,0x49,0x44, + 0x41,0x54,0x78,0xda,0xec,0xd3,0xc1,0x09,0xc2,0x40, + 0x14,0x45,0xd1,0x71,0x10,0x6c,0x45,0x74,0x61,0x0f, + 0xb6,0xe0,0x22,0x15,0x24,0x08,0x29,0x60,0x2a,0x11, + 0x24,0x76,0x20,0xd8,0x8c,0x8b,0x60,0x2b,0x13,0x30, + 0xf8,0x3e,0x4c,0x36,0xae,0x5c,0xce,0xc7,0xfb,0xe1, + 0xee,0xdf,0x19,0x98,0x55,0x4a,0x29,0xe8,0xa2,0x3a, + 0xab,0x4e,0x6d,0xd5,0x26,0xd4,0x79,0x59,0xbd,0xd4, + 0xa0,0xae,0x6a,0x5e,0x97,0xf1,0x77,0x75,0x0a,0xf5, + 0x9f,0x3d,0xec,0x41,0x5d,0xd4,0x51,0x35,0xb1,0xbc, + 0xba,0x87,0xf1,0xdf,0x67,0x9b,0x5b,0x03,0xb4,0xc1, + 0xef,0x75,0x06,0xd8,0x3b,0x06,0xec,0x62,0xc5,0x1f, + 0xf6,0xa7,0x3f,0x11,0x83,0xf3,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,0xe0,0x1f,0x01,0xd9,0xf1, + 0xfe,0x6c,0x80,0xd1,0x31,0x60,0x34,0xc0,0xe0,0x18, + 0x30,0x2c,0x80,0x87,0xc3,0xf1,0xb6,0xf9,0x66,0x80, + 0x59,0x35,0xaa,0x57,0x4f,0x35,0x55,0x3c,0x7a,0x2a, + 0x1b,0xfb,0xb2,0xf9,0xfd,0x11,0x60,0x00,0xb7,0x75, + 0x1a,0x41,0x6b,0xc2,0x11,0x6c,0x00,0x00,0x00,0x00, + 0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82 +}; diff --git a/data/converted/button_png.cpp b/data/converted/button_png.cpp new file mode 100644 index 000000000..de4959dd2 --- /dev/null +++ b/data/converted/button_png.cpp @@ -0,0 +1,131 @@ +//this file was auto-generated from "button.png" by res2h + +#include "../Resources.h" + +const size_t button_png_size = 1231; +const unsigned char button_png_data[1231] = { + 0x89,0x50,0x4e,0x47,0x0d,0x0a,0x1a,0x0a,0x00,0x00, + 0x00,0x0d,0x49,0x48,0x44,0x52,0x00,0x00,0x00,0x30, + 0x00,0x00,0x00,0x30,0x08,0x06,0x00,0x00,0x00,0x57, + 0x02,0xf9,0x87,0x00,0x00,0x00,0x19,0x74,0x45,0x58, + 0x74,0x53,0x6f,0x66,0x74,0x77,0x61,0x72,0x65,0x00, + 0x41,0x64,0x6f,0x62,0x65,0x20,0x49,0x6d,0x61,0x67, + 0x65,0x52,0x65,0x61,0x64,0x79,0x71,0xc9,0x65,0x3c, + 0x00,0x00,0x03,0x68,0x69,0x54,0x58,0x74,0x58,0x4d, + 0x4c,0x3a,0x63,0x6f,0x6d,0x2e,0x61,0x64,0x6f,0x62, + 0x65,0x2e,0x78,0x6d,0x70,0x00,0x00,0x00,0x00,0x00, + 0x3c,0x3f,0x78,0x70,0x61,0x63,0x6b,0x65,0x74,0x20, + 0x62,0x65,0x67,0x69,0x6e,0x3d,0x22,0xef,0xbb,0xbf, + 0x22,0x20,0x69,0x64,0x3d,0x22,0x57,0x35,0x4d,0x30, + 0x4d,0x70,0x43,0x65,0x68,0x69,0x48,0x7a,0x72,0x65, + 0x53,0x7a,0x4e,0x54,0x63,0x7a,0x6b,0x63,0x39,0x64, + 0x22,0x3f,0x3e,0x20,0x3c,0x78,0x3a,0x78,0x6d,0x70, + 0x6d,0x65,0x74,0x61,0x20,0x78,0x6d,0x6c,0x6e,0x73, + 0x3a,0x78,0x3d,0x22,0x61,0x64,0x6f,0x62,0x65,0x3a, + 0x6e,0x73,0x3a,0x6d,0x65,0x74,0x61,0x2f,0x22,0x20, + 0x78,0x3a,0x78,0x6d,0x70,0x74,0x6b,0x3d,0x22,0x41, + 0x64,0x6f,0x62,0x65,0x20,0x58,0x4d,0x50,0x20,0x43, + 0x6f,0x72,0x65,0x20,0x35,0x2e,0x33,0x2d,0x63,0x30, + 0x31,0x31,0x20,0x36,0x36,0x2e,0x31,0x34,0x35,0x36, + 0x36,0x31,0x2c,0x20,0x32,0x30,0x31,0x32,0x2f,0x30, + 0x32,0x2f,0x30,0x36,0x2d,0x31,0x34,0x3a,0x35,0x36, + 0x3a,0x32,0x37,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x22,0x3e,0x20,0x3c,0x72,0x64,0x66,0x3a,0x52, + 0x44,0x46,0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3a,0x72, + 0x64,0x66,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f, + 0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72, + 0x67,0x2f,0x31,0x39,0x39,0x39,0x2f,0x30,0x32,0x2f, + 0x32,0x32,0x2d,0x72,0x64,0x66,0x2d,0x73,0x79,0x6e, + 0x74,0x61,0x78,0x2d,0x6e,0x73,0x23,0x22,0x3e,0x20, + 0x3c,0x72,0x64,0x66,0x3a,0x44,0x65,0x73,0x63,0x72, + 0x69,0x70,0x74,0x69,0x6f,0x6e,0x20,0x72,0x64,0x66, + 0x3a,0x61,0x62,0x6f,0x75,0x74,0x3d,0x22,0x22,0x20, + 0x78,0x6d,0x6c,0x6e,0x73,0x3a,0x78,0x6d,0x70,0x4d, + 0x4d,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f, + 0x6e,0x73,0x2e,0x61,0x64,0x6f,0x62,0x65,0x2e,0x63, + 0x6f,0x6d,0x2f,0x78,0x61,0x70,0x2f,0x31,0x2e,0x30, + 0x2f,0x6d,0x6d,0x2f,0x22,0x20,0x78,0x6d,0x6c,0x6e, + 0x73,0x3a,0x73,0x74,0x52,0x65,0x66,0x3d,0x22,0x68, + 0x74,0x74,0x70,0x3a,0x2f,0x2f,0x6e,0x73,0x2e,0x61, + 0x64,0x6f,0x62,0x65,0x2e,0x63,0x6f,0x6d,0x2f,0x78, + 0x61,0x70,0x2f,0x31,0x2e,0x30,0x2f,0x73,0x54,0x79, + 0x70,0x65,0x2f,0x52,0x65,0x73,0x6f,0x75,0x72,0x63, + 0x65,0x52,0x65,0x66,0x23,0x22,0x20,0x78,0x6d,0x6c, + 0x6e,0x73,0x3a,0x78,0x6d,0x70,0x3d,0x22,0x68,0x74, + 0x74,0x70,0x3a,0x2f,0x2f,0x6e,0x73,0x2e,0x61,0x64, + 0x6f,0x62,0x65,0x2e,0x63,0x6f,0x6d,0x2f,0x78,0x61, + 0x70,0x2f,0x31,0x2e,0x30,0x2f,0x22,0x20,0x78,0x6d, + 0x70,0x4d,0x4d,0x3a,0x4f,0x72,0x69,0x67,0x69,0x6e, + 0x61,0x6c,0x44,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74, + 0x49,0x44,0x3d,0x22,0x78,0x6d,0x70,0x2e,0x64,0x69, + 0x64,0x3a,0x37,0x34,0x30,0x31,0x37,0x39,0x35,0x39, + 0x30,0x45,0x32,0x30,0x36,0x38,0x31,0x31,0x38,0x30, + 0x38,0x33,0x43,0x37,0x45,0x33,0x31,0x45,0x41,0x35, + 0x41,0x37,0x35,0x33,0x22,0x20,0x78,0x6d,0x70,0x4d, + 0x4d,0x3a,0x44,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74, + 0x49,0x44,0x3d,0x22,0x78,0x6d,0x70,0x2e,0x64,0x69, + 0x64,0x3a,0x39,0x38,0x44,0x38,0x30,0x39,0x45,0x31, + 0x39,0x44,0x38,0x37,0x31,0x31,0x45,0x33,0x41,0x39, + 0x31,0x44,0x42,0x44,0x46,0x44,0x34,0x30,0x39,0x39, + 0x32,0x45,0x45,0x33,0x22,0x20,0x78,0x6d,0x70,0x4d, + 0x4d,0x3a,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65, + 0x49,0x44,0x3d,0x22,0x78,0x6d,0x70,0x2e,0x69,0x69, + 0x64,0x3a,0x39,0x38,0x44,0x38,0x30,0x39,0x45,0x30, + 0x39,0x44,0x38,0x37,0x31,0x31,0x45,0x33,0x41,0x39, + 0x31,0x44,0x42,0x44,0x46,0x44,0x34,0x30,0x39,0x39, + 0x32,0x45,0x45,0x33,0x22,0x20,0x78,0x6d,0x70,0x3a, + 0x43,0x72,0x65,0x61,0x74,0x6f,0x72,0x54,0x6f,0x6f, + 0x6c,0x3d,0x22,0x41,0x64,0x6f,0x62,0x65,0x20,0x50, + 0x68,0x6f,0x74,0x6f,0x73,0x68,0x6f,0x70,0x20,0x43, + 0x53,0x36,0x20,0x28,0x4d,0x61,0x63,0x69,0x6e,0x74, + 0x6f,0x73,0x68,0x29,0x22,0x3e,0x20,0x3c,0x78,0x6d, + 0x70,0x4d,0x4d,0x3a,0x44,0x65,0x72,0x69,0x76,0x65, + 0x64,0x46,0x72,0x6f,0x6d,0x20,0x73,0x74,0x52,0x65, + 0x66,0x3a,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65, + 0x49,0x44,0x3d,0x22,0x78,0x6d,0x70,0x2e,0x69,0x69, + 0x64,0x3a,0x37,0x36,0x30,0x31,0x37,0x39,0x35,0x39, + 0x30,0x45,0x32,0x30,0x36,0x38,0x31,0x31,0x38,0x30, + 0x38,0x33,0x43,0x37,0x45,0x33,0x31,0x45,0x41,0x35, + 0x41,0x37,0x35,0x33,0x22,0x20,0x73,0x74,0x52,0x65, + 0x66,0x3a,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74, + 0x49,0x44,0x3d,0x22,0x78,0x6d,0x70,0x2e,0x64,0x69, + 0x64,0x3a,0x37,0x34,0x30,0x31,0x37,0x39,0x35,0x39, + 0x30,0x45,0x32,0x30,0x36,0x38,0x31,0x31,0x38,0x30, + 0x38,0x33,0x43,0x37,0x45,0x33,0x31,0x45,0x41,0x35, + 0x41,0x37,0x35,0x33,0x22,0x2f,0x3e,0x20,0x3c,0x2f, + 0x72,0x64,0x66,0x3a,0x44,0x65,0x73,0x63,0x72,0x69, + 0x70,0x74,0x69,0x6f,0x6e,0x3e,0x20,0x3c,0x2f,0x72, + 0x64,0x66,0x3a,0x52,0x44,0x46,0x3e,0x20,0x3c,0x2f, + 0x78,0x3a,0x78,0x6d,0x70,0x6d,0x65,0x74,0x61,0x3e, + 0x20,0x3c,0x3f,0x78,0x70,0x61,0x63,0x6b,0x65,0x74, + 0x20,0x65,0x6e,0x64,0x3d,0x22,0x72,0x22,0x3f,0x3e, + 0x3a,0x2f,0x3e,0xac,0x00,0x00,0x00,0xfd,0x49,0x44, + 0x41,0x54,0x78,0xda,0xec,0x9a,0x41,0x0e,0xc1,0x50, + 0x14,0x45,0x7f,0x1b,0xa1,0x4b,0x11,0x06,0xf6,0x20, + 0x66,0x62,0x80,0x88,0x15,0x68,0x44,0x17,0xd0,0x95, + 0x08,0x6a,0x07,0xc2,0x84,0x9d,0x18,0x88,0x4d,0x98, + 0x6b,0x13,0x8d,0xfb,0xe2,0x4a,0x2c,0xe1,0xff,0xb8, + 0x2f,0x39,0x69,0x7f,0x4c,0xce,0xe9,0x6b,0x67,0xa2, + 0x3c,0xcf,0x1d,0x26,0x06,0x4b,0x90,0x82,0x36,0x68, + 0x39,0x3f,0xa7,0x04,0x77,0x50,0x80,0x2d,0xa8,0x1b, + 0x94,0x3f,0x80,0xa9,0xf3,0x7f,0xec,0xc1,0xf6,0xc0, + 0x1a,0xf4,0xc1,0x3c,0xe6,0x53,0x37,0xf9,0x07,0x98, + 0x81,0x04,0x44,0x9e,0x92,0xd0,0xf1,0x41,0xe7,0x85, + 0x6d,0x60,0xc1,0xba,0x15,0x38,0x7a,0xbe,0x81,0x92, + 0x8e,0x11,0xdf,0x9a,0xd4,0x36,0xd0,0xe5,0x8f,0x67, + 0x17,0xce,0x5c,0x78,0xed,0xc4,0x3f,0x1f,0xec,0x33, + 0xa0,0x80,0xaf,0x6b,0x2b,0x76,0x81,0x8f,0x02,0x14, + 0xa0,0x00,0x05,0x28,0x40,0x01,0x0a,0x50,0x80,0x02, + 0x14,0xa0,0x00,0x05,0x28,0x40,0x01,0x0a,0x50,0x80, + 0x02,0x14,0xa0,0x00,0x05,0x28,0x40,0x01,0x0a,0x50, + 0x80,0x02,0x14,0xf0,0x8f,0x01,0x25,0xef,0x93,0x80, + 0xbc,0xbf,0xae,0xa5,0x05,0xdc,0x78,0x18,0x05,0x14, + 0x30,0xe4,0xf5,0x66,0x01,0x05,0x0f,0x1b,0x30,0x01, + 0x4d,0x8f,0xc5,0xcd,0x6d,0x0c,0x76,0x3c,0x17,0x0d, + 0x06,0x0c,0xdc,0xe7,0xbf,0x07,0xa7,0x80,0xb6,0x60, + 0xae,0x7b,0xdb,0x40,0x0d,0xe6,0x20,0x03,0x57,0x50, + 0x79,0x2c,0x5d,0xd1,0x31,0xa3,0xf3,0xeb,0x2d,0xc0, + 0x00,0x1c,0x2e,0x26,0xd8,0xd1,0x85,0xb1,0xfa,0x00, + 0x00,0x00,0x00,0x49,0x45,0x4e,0x44,0xae,0x42,0x60, + 0x82 +}; diff --git a/data/converted/checkbox_checked_svg.cpp b/data/converted/checkbox_checked_svg.cpp new file mode 100644 index 000000000..06848c955 --- /dev/null +++ b/data/converted/checkbox_checked_svg.cpp @@ -0,0 +1,141 @@ +//this file was auto-generated from "checkbox_checked.svg" by res2h + +#include "../Resources.h" + +const size_t checkbox_checked_svg_size = 1337; +const unsigned char checkbox_checked_svg_data[1337] = { + 0x3c,0x3f,0x78,0x6d,0x6c,0x20,0x76,0x65,0x72,0x73, + 0x69,0x6f,0x6e,0x3d,0x22,0x31,0x2e,0x30,0x22,0x20, + 0x65,0x6e,0x63,0x6f,0x64,0x69,0x6e,0x67,0x3d,0x22, + 0x75,0x74,0x66,0x2d,0x38,0x22,0x3f,0x3e,0x0d,0x0a, + 0x3c,0x21,0x2d,0x2d,0x20,0x47,0x65,0x6e,0x65,0x72, + 0x61,0x74,0x6f,0x72,0x3a,0x20,0x41,0x64,0x6f,0x62, + 0x65,0x20,0x49,0x6c,0x6c,0x75,0x73,0x74,0x72,0x61, + 0x74,0x6f,0x72,0x20,0x31,0x36,0x2e,0x30,0x2e,0x33, + 0x2c,0x20,0x53,0x56,0x47,0x20,0x45,0x78,0x70,0x6f, + 0x72,0x74,0x20,0x50,0x6c,0x75,0x67,0x2d,0x49,0x6e, + 0x20,0x2e,0x20,0x53,0x56,0x47,0x20,0x56,0x65,0x72, + 0x73,0x69,0x6f,0x6e,0x3a,0x20,0x36,0x2e,0x30,0x30, + 0x20,0x42,0x75,0x69,0x6c,0x64,0x20,0x30,0x29,0x20, + 0x20,0x2d,0x2d,0x3e,0x0d,0x0a,0x3c,0x21,0x44,0x4f, + 0x43,0x54,0x59,0x50,0x45,0x20,0x73,0x76,0x67,0x20, + 0x50,0x55,0x42,0x4c,0x49,0x43,0x20,0x22,0x2d,0x2f, + 0x2f,0x57,0x33,0x43,0x2f,0x2f,0x44,0x54,0x44,0x20, + 0x53,0x56,0x47,0x20,0x31,0x2e,0x31,0x2f,0x2f,0x45, + 0x4e,0x22,0x20,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f, + 0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72, + 0x67,0x2f,0x47,0x72,0x61,0x70,0x68,0x69,0x63,0x73, + 0x2f,0x53,0x56,0x47,0x2f,0x31,0x2e,0x31,0x2f,0x44, + 0x54,0x44,0x2f,0x73,0x76,0x67,0x31,0x31,0x2e,0x64, + 0x74,0x64,0x22,0x3e,0x0d,0x0a,0x3c,0x73,0x76,0x67, + 0x20,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x3d,0x22, + 0x31,0x2e,0x31,0x22,0x20,0x69,0x64,0x3d,0x22,0x45, + 0x62,0x65,0x6e,0x65,0x5f,0x31,0x22,0x20,0x78,0x6d, + 0x6c,0x6e,0x73,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a, + 0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f, + 0x72,0x67,0x2f,0x32,0x30,0x30,0x30,0x2f,0x73,0x76, + 0x67,0x22,0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3a,0x78, + 0x6c,0x69,0x6e,0x6b,0x3d,0x22,0x68,0x74,0x74,0x70, + 0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e, + 0x6f,0x72,0x67,0x2f,0x31,0x39,0x39,0x39,0x2f,0x78, + 0x6c,0x69,0x6e,0x6b,0x22,0x20,0x78,0x3d,0x22,0x30, + 0x70,0x78,0x22,0x20,0x79,0x3d,0x22,0x30,0x70,0x78, + 0x22,0x0d,0x0a,0x09,0x20,0x77,0x69,0x64,0x74,0x68, + 0x3d,0x22,0x32,0x31,0x2e,0x39,0x36,0x32,0x70,0x78, + 0x22,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x22, + 0x32,0x31,0x2e,0x39,0x35,0x39,0x70,0x78,0x22,0x20, + 0x76,0x69,0x65,0x77,0x42,0x6f,0x78,0x3d,0x22,0x30, + 0x20,0x30,0x20,0x32,0x31,0x2e,0x39,0x36,0x32,0x20, + 0x32,0x31,0x2e,0x39,0x35,0x39,0x22,0x20,0x65,0x6e, + 0x61,0x62,0x6c,0x65,0x2d,0x62,0x61,0x63,0x6b,0x67, + 0x72,0x6f,0x75,0x6e,0x64,0x3d,0x22,0x6e,0x65,0x77, + 0x20,0x30,0x20,0x30,0x20,0x32,0x31,0x2e,0x39,0x36, + 0x32,0x20,0x32,0x31,0x2e,0x39,0x35,0x39,0x22,0x20, + 0x78,0x6d,0x6c,0x3a,0x73,0x70,0x61,0x63,0x65,0x3d, + 0x22,0x70,0x72,0x65,0x73,0x65,0x72,0x76,0x65,0x22, + 0x3e,0x0d,0x0a,0x3c,0x70,0x61,0x74,0x68,0x20,0x66, + 0x69,0x6c,0x6c,0x3d,0x22,0x23,0x37,0x37,0x37,0x37, + 0x37,0x37,0x22,0x20,0x64,0x3d,0x22,0x4d,0x31,0x37, + 0x2e,0x37,0x31,0x2c,0x31,0x2e,0x35,0x63,0x31,0x2e, + 0x35,0x31,0x38,0x2c,0x30,0x2c,0x32,0x2e,0x37,0x35, + 0x32,0x2c,0x31,0x2e,0x32,0x33,0x34,0x2c,0x32,0x2e, + 0x37,0x35,0x32,0x2c,0x32,0x2e,0x37,0x35,0x32,0x76, + 0x31,0x33,0x2e,0x34,0x35,0x35,0x63,0x30,0x2c,0x31, + 0x2e,0x35,0x31,0x38,0x2d,0x31,0x2e,0x32,0x33,0x34, + 0x2c,0x32,0x2e,0x37,0x35,0x32,0x2d,0x32,0x2e,0x37, + 0x35,0x32,0x2c,0x32,0x2e,0x37,0x35,0x32,0x48,0x34, + 0x2e,0x32,0x35,0x32,0x0d,0x0a,0x09,0x63,0x2d,0x31, + 0x2e,0x35,0x31,0x38,0x2c,0x30,0x2d,0x32,0x2e,0x37, + 0x35,0x32,0x2d,0x31,0x2e,0x32,0x33,0x34,0x2d,0x32, + 0x2e,0x37,0x35,0x32,0x2d,0x32,0x2e,0x37,0x35,0x32, + 0x56,0x34,0x2e,0x32,0x35,0x32,0x43,0x31,0x2e,0x35, + 0x2c,0x32,0x2e,0x37,0x33,0x34,0x2c,0x32,0x2e,0x37, + 0x33,0x34,0x2c,0x31,0x2e,0x35,0x2c,0x34,0x2e,0x32, + 0x35,0x32,0x2c,0x31,0x2e,0x35,0x48,0x31,0x37,0x2e, + 0x37,0x31,0x20,0x4d,0x31,0x37,0x2e,0x37,0x31,0x2c, + 0x30,0x48,0x34,0x2e,0x32,0x35,0x32,0x43,0x31,0x2e, + 0x39,0x31,0x34,0x2c,0x30,0x2c,0x30,0x2c,0x31,0x2e, + 0x39,0x31,0x34,0x2c,0x30,0x2c,0x34,0x2e,0x32,0x35, + 0x32,0x76,0x31,0x33,0x2e,0x34,0x35,0x35,0x0d,0x0a, + 0x09,0x63,0x30,0x2c,0x32,0x2e,0x33,0x33,0x39,0x2c, + 0x31,0x2e,0x39,0x31,0x34,0x2c,0x34,0x2e,0x32,0x35, + 0x32,0x2c,0x34,0x2e,0x32,0x35,0x32,0x2c,0x34,0x2e, + 0x32,0x35,0x32,0x48,0x31,0x37,0x2e,0x37,0x31,0x63, + 0x32,0x2e,0x33,0x33,0x39,0x2c,0x30,0x2c,0x34,0x2e, + 0x32,0x35,0x32,0x2d,0x31,0x2e,0x39,0x31,0x33,0x2c, + 0x34,0x2e,0x32,0x35,0x32,0x2d,0x34,0x2e,0x32,0x35, + 0x32,0x56,0x34,0x2e,0x32,0x35,0x32,0x43,0x32,0x31, + 0x2e,0x39,0x36,0x32,0x2c,0x31,0x2e,0x39,0x31,0x34, + 0x2c,0x32,0x30,0x2e,0x30,0x34,0x39,0x2c,0x30,0x2c, + 0x31,0x37,0x2e,0x37,0x31,0x2c,0x30,0x4c,0x31,0x37, + 0x2e,0x37,0x31,0x2c,0x30,0x7a,0x22,0x2f,0x3e,0x0d, + 0x0a,0x3c,0x67,0x3e,0x0d,0x0a,0x09,0x3c,0x67,0x3e, + 0x0d,0x0a,0x09,0x09,0x0d,0x0a,0x09,0x09,0x09,0x3c, + 0x72,0x65,0x63,0x74,0x20,0x78,0x3d,0x22,0x31,0x30, + 0x2e,0x32,0x33,0x32,0x22,0x20,0x79,0x3d,0x22,0x31, + 0x2e,0x30,0x37,0x39,0x22,0x20,0x74,0x72,0x61,0x6e, + 0x73,0x66,0x6f,0x72,0x6d,0x3d,0x22,0x6d,0x61,0x74, + 0x72,0x69,0x78,0x28,0x30,0x2e,0x37,0x30,0x37,0x31, + 0x20,0x30,0x2e,0x37,0x30,0x37,0x31,0x20,0x2d,0x30, + 0x2e,0x37,0x30,0x37,0x31,0x20,0x30,0x2e,0x37,0x30, + 0x37,0x31,0x20,0x31,0x30,0x2e,0x39,0x38,0x30,0x31, + 0x20,0x2d,0x34,0x2e,0x35,0x34,0x39,0x34,0x29,0x22, + 0x20,0x66,0x69,0x6c,0x6c,0x3d,0x22,0x23,0x37,0x37, + 0x37,0x37,0x37,0x37,0x22,0x20,0x77,0x69,0x64,0x74, + 0x68,0x3d,0x22,0x31,0x2e,0x35,0x22,0x20,0x68,0x65, + 0x69,0x67,0x68,0x74,0x3d,0x22,0x31,0x39,0x2e,0x38, + 0x22,0x2f,0x3e,0x0d,0x0a,0x09,0x3c,0x2f,0x67,0x3e, + 0x0d,0x0a,0x09,0x3c,0x67,0x3e,0x0d,0x0a,0x09,0x09, + 0x0d,0x0a,0x09,0x09,0x09,0x3c,0x72,0x65,0x63,0x74, + 0x20,0x78,0x3d,0x22,0x31,0x30,0x2e,0x32,0x33,0x32, + 0x22,0x20,0x79,0x3d,0x22,0x31,0x2e,0x30,0x37,0x39, + 0x22,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72, + 0x6d,0x3d,0x22,0x6d,0x61,0x74,0x72,0x69,0x78,0x28, + 0x30,0x2e,0x37,0x30,0x37,0x31,0x20,0x30,0x2e,0x37, + 0x30,0x37,0x31,0x20,0x2d,0x30,0x2e,0x37,0x30,0x37, + 0x31,0x20,0x30,0x2e,0x37,0x30,0x37,0x31,0x20,0x31, + 0x30,0x2e,0x39,0x38,0x30,0x31,0x20,0x2d,0x34,0x2e, + 0x35,0x34,0x39,0x34,0x29,0x22,0x20,0x66,0x69,0x6c, + 0x6c,0x3d,0x22,0x23,0x37,0x37,0x37,0x37,0x37,0x37, + 0x22,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x22,0x31, + 0x2e,0x35,0x22,0x20,0x68,0x65,0x69,0x67,0x68,0x74, + 0x3d,0x22,0x31,0x39,0x2e,0x38,0x22,0x2f,0x3e,0x0d, + 0x0a,0x09,0x3c,0x2f,0x67,0x3e,0x0d,0x0a,0x09,0x3c, + 0x67,0x3e,0x0d,0x0a,0x09,0x09,0x0d,0x0a,0x09,0x09, + 0x09,0x3c,0x72,0x65,0x63,0x74,0x20,0x78,0x3d,0x22, + 0x31,0x2e,0x30,0x38,0x32,0x22,0x20,0x79,0x3d,0x22, + 0x31,0x30,0x2e,0x32,0x33,0x22,0x20,0x74,0x72,0x61, + 0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3d,0x22,0x6d,0x61, + 0x74,0x72,0x69,0x78,0x28,0x30,0x2e,0x37,0x30,0x37, + 0x31,0x20,0x30,0x2e,0x37,0x30,0x37,0x31,0x20,0x2d, + 0x30,0x2e,0x37,0x30,0x37,0x31,0x20,0x30,0x2e,0x37, + 0x30,0x37,0x31,0x20,0x31,0x30,0x2e,0x39,0x37,0x39, + 0x33,0x20,0x2d,0x34,0x2e,0x35,0x34,0x39,0x34,0x29, + 0x22,0x20,0x66,0x69,0x6c,0x6c,0x3d,0x22,0x23,0x37, + 0x37,0x37,0x37,0x37,0x37,0x22,0x20,0x77,0x69,0x64, + 0x74,0x68,0x3d,0x22,0x31,0x39,0x2e,0x38,0x22,0x20, + 0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x22,0x31,0x2e, + 0x35,0x22,0x2f,0x3e,0x0d,0x0a,0x09,0x3c,0x2f,0x67, + 0x3e,0x0d,0x0a,0x3c,0x2f,0x67,0x3e,0x0d,0x0a,0x3c, + 0x2f,0x73,0x76,0x67,0x3e,0x0d,0x0a +}; diff --git a/data/converted/checkbox_unchecked_svg.cpp b/data/converted/checkbox_unchecked_svg.cpp new file mode 100644 index 000000000..a800cb782 --- /dev/null +++ b/data/converted/checkbox_unchecked_svg.cpp @@ -0,0 +1,93 @@ +//this file was auto-generated from "checkbox_unchecked.svg" by res2h + +#include "../Resources.h" + +const size_t checkbox_unchecked_svg_size = 859; +const unsigned char checkbox_unchecked_svg_data[859] = { + 0x3c,0x3f,0x78,0x6d,0x6c,0x20,0x76,0x65,0x72,0x73, + 0x69,0x6f,0x6e,0x3d,0x22,0x31,0x2e,0x30,0x22,0x20, + 0x65,0x6e,0x63,0x6f,0x64,0x69,0x6e,0x67,0x3d,0x22, + 0x75,0x74,0x66,0x2d,0x38,0x22,0x3f,0x3e,0x0d,0x0a, + 0x3c,0x21,0x2d,0x2d,0x20,0x47,0x65,0x6e,0x65,0x72, + 0x61,0x74,0x6f,0x72,0x3a,0x20,0x41,0x64,0x6f,0x62, + 0x65,0x20,0x49,0x6c,0x6c,0x75,0x73,0x74,0x72,0x61, + 0x74,0x6f,0x72,0x20,0x31,0x36,0x2e,0x30,0x2e,0x33, + 0x2c,0x20,0x53,0x56,0x47,0x20,0x45,0x78,0x70,0x6f, + 0x72,0x74,0x20,0x50,0x6c,0x75,0x67,0x2d,0x49,0x6e, + 0x20,0x2e,0x20,0x53,0x56,0x47,0x20,0x56,0x65,0x72, + 0x73,0x69,0x6f,0x6e,0x3a,0x20,0x36,0x2e,0x30,0x30, + 0x20,0x42,0x75,0x69,0x6c,0x64,0x20,0x30,0x29,0x20, + 0x20,0x2d,0x2d,0x3e,0x0d,0x0a,0x3c,0x21,0x44,0x4f, + 0x43,0x54,0x59,0x50,0x45,0x20,0x73,0x76,0x67,0x20, + 0x50,0x55,0x42,0x4c,0x49,0x43,0x20,0x22,0x2d,0x2f, + 0x2f,0x57,0x33,0x43,0x2f,0x2f,0x44,0x54,0x44,0x20, + 0x53,0x56,0x47,0x20,0x31,0x2e,0x31,0x2f,0x2f,0x45, + 0x4e,0x22,0x20,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f, + 0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72, + 0x67,0x2f,0x47,0x72,0x61,0x70,0x68,0x69,0x63,0x73, + 0x2f,0x53,0x56,0x47,0x2f,0x31,0x2e,0x31,0x2f,0x44, + 0x54,0x44,0x2f,0x73,0x76,0x67,0x31,0x31,0x2e,0x64, + 0x74,0x64,0x22,0x3e,0x0d,0x0a,0x3c,0x73,0x76,0x67, + 0x20,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x3d,0x22, + 0x31,0x2e,0x31,0x22,0x20,0x69,0x64,0x3d,0x22,0x45, + 0x62,0x65,0x6e,0x65,0x5f,0x31,0x22,0x20,0x78,0x6d, + 0x6c,0x6e,0x73,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a, + 0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f, + 0x72,0x67,0x2f,0x32,0x30,0x30,0x30,0x2f,0x73,0x76, + 0x67,0x22,0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3a,0x78, + 0x6c,0x69,0x6e,0x6b,0x3d,0x22,0x68,0x74,0x74,0x70, + 0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e, + 0x6f,0x72,0x67,0x2f,0x31,0x39,0x39,0x39,0x2f,0x78, + 0x6c,0x69,0x6e,0x6b,0x22,0x20,0x78,0x3d,0x22,0x30, + 0x70,0x78,0x22,0x20,0x79,0x3d,0x22,0x30,0x70,0x78, + 0x22,0x0d,0x0a,0x09,0x20,0x77,0x69,0x64,0x74,0x68, + 0x3d,0x22,0x32,0x31,0x2e,0x39,0x36,0x32,0x70,0x78, + 0x22,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x22, + 0x32,0x31,0x2e,0x39,0x35,0x39,0x70,0x78,0x22,0x20, + 0x76,0x69,0x65,0x77,0x42,0x6f,0x78,0x3d,0x22,0x30, + 0x20,0x30,0x20,0x32,0x31,0x2e,0x39,0x36,0x32,0x20, + 0x32,0x31,0x2e,0x39,0x35,0x39,0x22,0x20,0x65,0x6e, + 0x61,0x62,0x6c,0x65,0x2d,0x62,0x61,0x63,0x6b,0x67, + 0x72,0x6f,0x75,0x6e,0x64,0x3d,0x22,0x6e,0x65,0x77, + 0x20,0x30,0x20,0x30,0x20,0x32,0x31,0x2e,0x39,0x36, + 0x32,0x20,0x32,0x31,0x2e,0x39,0x35,0x39,0x22,0x20, + 0x78,0x6d,0x6c,0x3a,0x73,0x70,0x61,0x63,0x65,0x3d, + 0x22,0x70,0x72,0x65,0x73,0x65,0x72,0x76,0x65,0x22, + 0x3e,0x0d,0x0a,0x3c,0x70,0x61,0x74,0x68,0x20,0x66, + 0x69,0x6c,0x6c,0x3d,0x22,0x23,0x37,0x37,0x37,0x37, + 0x37,0x37,0x22,0x20,0x64,0x3d,0x22,0x4d,0x31,0x37, + 0x2e,0x37,0x31,0x2c,0x31,0x2e,0x35,0x63,0x31,0x2e, + 0x35,0x31,0x38,0x2c,0x30,0x2c,0x32,0x2e,0x37,0x35, + 0x32,0x2c,0x31,0x2e,0x32,0x33,0x34,0x2c,0x32,0x2e, + 0x37,0x35,0x32,0x2c,0x32,0x2e,0x37,0x35,0x32,0x76, + 0x31,0x33,0x2e,0x34,0x35,0x35,0x63,0x30,0x2c,0x31, + 0x2e,0x35,0x31,0x38,0x2d,0x31,0x2e,0x32,0x33,0x34, + 0x2c,0x32,0x2e,0x37,0x35,0x32,0x2d,0x32,0x2e,0x37, + 0x35,0x32,0x2c,0x32,0x2e,0x37,0x35,0x32,0x48,0x34, + 0x2e,0x32,0x35,0x32,0x0d,0x0a,0x09,0x63,0x2d,0x31, + 0x2e,0x35,0x31,0x38,0x2c,0x30,0x2d,0x32,0x2e,0x37, + 0x35,0x32,0x2d,0x31,0x2e,0x32,0x33,0x34,0x2d,0x32, + 0x2e,0x37,0x35,0x32,0x2d,0x32,0x2e,0x37,0x35,0x32, + 0x56,0x34,0x2e,0x32,0x35,0x32,0x43,0x31,0x2e,0x35, + 0x2c,0x32,0x2e,0x37,0x33,0x34,0x2c,0x32,0x2e,0x37, + 0x33,0x34,0x2c,0x31,0x2e,0x35,0x2c,0x34,0x2e,0x32, + 0x35,0x32,0x2c,0x31,0x2e,0x35,0x48,0x31,0x37,0x2e, + 0x37,0x31,0x20,0x4d,0x31,0x37,0x2e,0x37,0x31,0x2c, + 0x30,0x48,0x34,0x2e,0x32,0x35,0x32,0x43,0x31,0x2e, + 0x39,0x31,0x34,0x2c,0x30,0x2c,0x30,0x2c,0x31,0x2e, + 0x39,0x31,0x34,0x2c,0x30,0x2c,0x34,0x2e,0x32,0x35, + 0x32,0x76,0x31,0x33,0x2e,0x34,0x35,0x35,0x0d,0x0a, + 0x09,0x63,0x30,0x2c,0x32,0x2e,0x33,0x33,0x39,0x2c, + 0x31,0x2e,0x39,0x31,0x34,0x2c,0x34,0x2e,0x32,0x35, + 0x32,0x2c,0x34,0x2e,0x32,0x35,0x32,0x2c,0x34,0x2e, + 0x32,0x35,0x32,0x48,0x31,0x37,0x2e,0x37,0x31,0x63, + 0x32,0x2e,0x33,0x33,0x39,0x2c,0x30,0x2c,0x34,0x2e, + 0x32,0x35,0x32,0x2d,0x31,0x2e,0x39,0x31,0x33,0x2c, + 0x34,0x2e,0x32,0x35,0x32,0x2d,0x34,0x2e,0x32,0x35, + 0x32,0x56,0x34,0x2e,0x32,0x35,0x32,0x43,0x32,0x31, + 0x2e,0x39,0x36,0x32,0x2c,0x31,0x2e,0x39,0x31,0x34, + 0x2c,0x32,0x30,0x2e,0x30,0x34,0x39,0x2c,0x30,0x2c, + 0x31,0x37,0x2e,0x37,0x31,0x2c,0x30,0x4c,0x31,0x37, + 0x2e,0x37,0x31,0x2c,0x30,0x7a,0x22,0x2f,0x3e,0x0d, + 0x0a,0x3c,0x2f,0x73,0x76,0x67,0x3e,0x0d,0x0a +}; diff --git a/data/converted/fav_add_svg.cpp b/data/converted/fav_add_svg.cpp new file mode 100644 index 000000000..4bd2a3304 --- /dev/null +++ b/data/converted/fav_add_svg.cpp @@ -0,0 +1,72 @@ +//this file was auto-generated from "fav_add.svg" by res2h + +#include "../Resources.h" + +const size_t fav_add_svg_size = 650; +const unsigned char fav_add_svg_data[650] = { + 0x3c,0x3f,0x78,0x6d,0x6c,0x20,0x76,0x65,0x72,0x73, + 0x69,0x6f,0x6e,0x3d,0x22,0x31,0x2e,0x30,0x22,0x20, + 0x65,0x6e,0x63,0x6f,0x64,0x69,0x6e,0x67,0x3d,0x22, + 0x75,0x74,0x66,0x2d,0x38,0x22,0x3f,0x3e,0x0d,0x0a, + 0x3c,0x21,0x2d,0x2d,0x20,0x47,0x65,0x6e,0x65,0x72, + 0x61,0x74,0x6f,0x72,0x3a,0x20,0x41,0x64,0x6f,0x62, + 0x65,0x20,0x49,0x6c,0x6c,0x75,0x73,0x74,0x72,0x61, + 0x74,0x6f,0x72,0x20,0x31,0x36,0x2e,0x30,0x2e,0x33, + 0x2c,0x20,0x53,0x56,0x47,0x20,0x45,0x78,0x70,0x6f, + 0x72,0x74,0x20,0x50,0x6c,0x75,0x67,0x2d,0x49,0x6e, + 0x20,0x2e,0x20,0x53,0x56,0x47,0x20,0x56,0x65,0x72, + 0x73,0x69,0x6f,0x6e,0x3a,0x20,0x36,0x2e,0x30,0x30, + 0x20,0x42,0x75,0x69,0x6c,0x64,0x20,0x30,0x29,0x20, + 0x20,0x2d,0x2d,0x3e,0x0d,0x0a,0x3c,0x21,0x44,0x4f, + 0x43,0x54,0x59,0x50,0x45,0x20,0x73,0x76,0x67,0x20, + 0x50,0x55,0x42,0x4c,0x49,0x43,0x20,0x22,0x2d,0x2f, + 0x2f,0x57,0x33,0x43,0x2f,0x2f,0x44,0x54,0x44,0x20, + 0x53,0x56,0x47,0x20,0x31,0x2e,0x31,0x2f,0x2f,0x45, + 0x4e,0x22,0x20,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f, + 0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72, + 0x67,0x2f,0x47,0x72,0x61,0x70,0x68,0x69,0x63,0x73, + 0x2f,0x53,0x56,0x47,0x2f,0x31,0x2e,0x31,0x2f,0x44, + 0x54,0x44,0x2f,0x73,0x76,0x67,0x31,0x31,0x2e,0x64, + 0x74,0x64,0x22,0x3e,0x0d,0x0a,0x3c,0x73,0x76,0x67, + 0x20,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x3d,0x22, + 0x31,0x2e,0x31,0x22,0x20,0x69,0x64,0x3d,0x22,0x45, + 0x62,0x65,0x6e,0x65,0x5f,0x31,0x22,0x20,0x78,0x6d, + 0x6c,0x6e,0x73,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a, + 0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f, + 0x72,0x67,0x2f,0x32,0x30,0x30,0x30,0x2f,0x73,0x76, + 0x67,0x22,0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3a,0x78, + 0x6c,0x69,0x6e,0x6b,0x3d,0x22,0x68,0x74,0x74,0x70, + 0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e, + 0x6f,0x72,0x67,0x2f,0x31,0x39,0x39,0x39,0x2f,0x78, + 0x6c,0x69,0x6e,0x6b,0x22,0x20,0x78,0x3d,0x22,0x30, + 0x70,0x78,0x22,0x20,0x79,0x3d,0x22,0x30,0x70,0x78, + 0x22,0x0d,0x0a,0x09,0x20,0x77,0x69,0x64,0x74,0x68, + 0x3d,0x22,0x32,0x31,0x2e,0x30,0x30,0x32,0x70,0x78, + 0x22,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x22, + 0x32,0x32,0x2e,0x30,0x30,0x32,0x70,0x78,0x22,0x20, + 0x76,0x69,0x65,0x77,0x42,0x6f,0x78,0x3d,0x22,0x30, + 0x20,0x30,0x20,0x32,0x31,0x2e,0x30,0x30,0x32,0x20, + 0x32,0x32,0x2e,0x30,0x30,0x32,0x22,0x20,0x65,0x6e, + 0x61,0x62,0x6c,0x65,0x2d,0x62,0x61,0x63,0x6b,0x67, + 0x72,0x6f,0x75,0x6e,0x64,0x3d,0x22,0x6e,0x65,0x77, + 0x20,0x30,0x20,0x30,0x20,0x32,0x31,0x2e,0x30,0x30, + 0x32,0x20,0x32,0x32,0x2e,0x30,0x30,0x32,0x22,0x20, + 0x78,0x6d,0x6c,0x3a,0x73,0x70,0x61,0x63,0x65,0x3d, + 0x22,0x70,0x72,0x65,0x73,0x65,0x72,0x76,0x65,0x22, + 0x3e,0x0d,0x0a,0x3c,0x67,0x3e,0x0d,0x0a,0x09,0x3c, + 0x72,0x65,0x63,0x74,0x20,0x79,0x3d,0x22,0x31,0x30, + 0x2e,0x32,0x35,0x31,0x22,0x20,0x66,0x69,0x6c,0x6c, + 0x3d,0x22,0x23,0x37,0x37,0x37,0x37,0x37,0x37,0x22, + 0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x22,0x32,0x31, + 0x2e,0x30,0x30,0x32,0x22,0x20,0x68,0x65,0x69,0x67, + 0x68,0x74,0x3d,0x22,0x31,0x2e,0x35,0x22,0x2f,0x3e, + 0x0d,0x0a,0x3c,0x2f,0x67,0x3e,0x0d,0x0a,0x3c,0x67, + 0x3e,0x0d,0x0a,0x09,0x3c,0x72,0x65,0x63,0x74,0x20, + 0x78,0x3d,0x22,0x39,0x2e,0x37,0x35,0x31,0x22,0x20, + 0x66,0x69,0x6c,0x6c,0x3d,0x22,0x23,0x37,0x37,0x37, + 0x37,0x37,0x37,0x22,0x20,0x77,0x69,0x64,0x74,0x68, + 0x3d,0x22,0x31,0x2e,0x35,0x22,0x20,0x68,0x65,0x69, + 0x67,0x68,0x74,0x3d,0x22,0x32,0x32,0x2e,0x30,0x30, + 0x32,0x22,0x2f,0x3e,0x0d,0x0a,0x3c,0x2f,0x67,0x3e, + 0x0d,0x0a,0x3c,0x2f,0x73,0x76,0x67,0x3e,0x0d,0x0a +}; diff --git a/data/converted/fav_remove_svg.cpp b/data/converted/fav_remove_svg.cpp new file mode 100644 index 000000000..086ae9e76 --- /dev/null +++ b/data/converted/fav_remove_svg.cpp @@ -0,0 +1,65 @@ +//this file was auto-generated from "fav_remove.svg" by res2h + +#include "../Resources.h" + +const size_t fav_remove_svg_size = 576; +const unsigned char fav_remove_svg_data[576] = { + 0x3c,0x3f,0x78,0x6d,0x6c,0x20,0x76,0x65,0x72,0x73, + 0x69,0x6f,0x6e,0x3d,0x22,0x31,0x2e,0x30,0x22,0x20, + 0x65,0x6e,0x63,0x6f,0x64,0x69,0x6e,0x67,0x3d,0x22, + 0x75,0x74,0x66,0x2d,0x38,0x22,0x3f,0x3e,0x0d,0x0a, + 0x3c,0x21,0x2d,0x2d,0x20,0x47,0x65,0x6e,0x65,0x72, + 0x61,0x74,0x6f,0x72,0x3a,0x20,0x41,0x64,0x6f,0x62, + 0x65,0x20,0x49,0x6c,0x6c,0x75,0x73,0x74,0x72,0x61, + 0x74,0x6f,0x72,0x20,0x31,0x36,0x2e,0x30,0x2e,0x33, + 0x2c,0x20,0x53,0x56,0x47,0x20,0x45,0x78,0x70,0x6f, + 0x72,0x74,0x20,0x50,0x6c,0x75,0x67,0x2d,0x49,0x6e, + 0x20,0x2e,0x20,0x53,0x56,0x47,0x20,0x56,0x65,0x72, + 0x73,0x69,0x6f,0x6e,0x3a,0x20,0x36,0x2e,0x30,0x30, + 0x20,0x42,0x75,0x69,0x6c,0x64,0x20,0x30,0x29,0x20, + 0x20,0x2d,0x2d,0x3e,0x0d,0x0a,0x3c,0x21,0x44,0x4f, + 0x43,0x54,0x59,0x50,0x45,0x20,0x73,0x76,0x67,0x20, + 0x50,0x55,0x42,0x4c,0x49,0x43,0x20,0x22,0x2d,0x2f, + 0x2f,0x57,0x33,0x43,0x2f,0x2f,0x44,0x54,0x44,0x20, + 0x53,0x56,0x47,0x20,0x31,0x2e,0x31,0x2f,0x2f,0x45, + 0x4e,0x22,0x20,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f, + 0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72, + 0x67,0x2f,0x47,0x72,0x61,0x70,0x68,0x69,0x63,0x73, + 0x2f,0x53,0x56,0x47,0x2f,0x31,0x2e,0x31,0x2f,0x44, + 0x54,0x44,0x2f,0x73,0x76,0x67,0x31,0x31,0x2e,0x64, + 0x74,0x64,0x22,0x3e,0x0d,0x0a,0x3c,0x73,0x76,0x67, + 0x20,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x3d,0x22, + 0x31,0x2e,0x31,0x22,0x20,0x69,0x64,0x3d,0x22,0x45, + 0x62,0x65,0x6e,0x65,0x5f,0x31,0x22,0x20,0x78,0x6d, + 0x6c,0x6e,0x73,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a, + 0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f, + 0x72,0x67,0x2f,0x32,0x30,0x30,0x30,0x2f,0x73,0x76, + 0x67,0x22,0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3a,0x78, + 0x6c,0x69,0x6e,0x6b,0x3d,0x22,0x68,0x74,0x74,0x70, + 0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e, + 0x6f,0x72,0x67,0x2f,0x31,0x39,0x39,0x39,0x2f,0x78, + 0x6c,0x69,0x6e,0x6b,0x22,0x20,0x78,0x3d,0x22,0x30, + 0x70,0x78,0x22,0x20,0x79,0x3d,0x22,0x30,0x70,0x78, + 0x22,0x0d,0x0a,0x09,0x20,0x77,0x69,0x64,0x74,0x68, + 0x3d,0x22,0x32,0x31,0x2e,0x30,0x30,0x32,0x70,0x78, + 0x22,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x22, + 0x32,0x32,0x2e,0x30,0x30,0x32,0x70,0x78,0x22,0x20, + 0x76,0x69,0x65,0x77,0x42,0x6f,0x78,0x3d,0x22,0x30, + 0x20,0x30,0x20,0x32,0x31,0x2e,0x30,0x30,0x32,0x20, + 0x32,0x32,0x2e,0x30,0x30,0x32,0x22,0x20,0x65,0x6e, + 0x61,0x62,0x6c,0x65,0x2d,0x62,0x61,0x63,0x6b,0x67, + 0x72,0x6f,0x75,0x6e,0x64,0x3d,0x22,0x6e,0x65,0x77, + 0x20,0x30,0x20,0x30,0x20,0x32,0x31,0x2e,0x30,0x30, + 0x32,0x20,0x32,0x32,0x2e,0x30,0x30,0x32,0x22,0x20, + 0x78,0x6d,0x6c,0x3a,0x73,0x70,0x61,0x63,0x65,0x3d, + 0x22,0x70,0x72,0x65,0x73,0x65,0x72,0x76,0x65,0x22, + 0x3e,0x0d,0x0a,0x3c,0x67,0x3e,0x0d,0x0a,0x09,0x3c, + 0x72,0x65,0x63,0x74,0x20,0x79,0x3d,0x22,0x31,0x30, + 0x2e,0x32,0x35,0x31,0x22,0x20,0x66,0x69,0x6c,0x6c, + 0x3d,0x22,0x23,0x37,0x37,0x37,0x37,0x37,0x37,0x22, + 0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x22,0x32,0x31, + 0x2e,0x30,0x30,0x32,0x22,0x20,0x68,0x65,0x69,0x67, + 0x68,0x74,0x3d,0x22,0x31,0x2e,0x35,0x22,0x2f,0x3e, + 0x0d,0x0a,0x3c,0x2f,0x67,0x3e,0x0d,0x0a,0x3c,0x2f, + 0x73,0x76,0x67,0x3e,0x0d,0x0a +}; diff --git a/data/converted/frame_png.cpp b/data/converted/frame_png.cpp new file mode 100644 index 000000000..1e986b914 --- /dev/null +++ b/data/converted/frame_png.cpp @@ -0,0 +1,180 @@ +//this file was auto-generated from "frame.png" by res2h + +#include "../Resources.h" + +const size_t frame_png_size = 1729; +const unsigned char frame_png_data[1729] = { + 0x89,0x50,0x4e,0x47,0x0d,0x0a,0x1a,0x0a,0x00,0x00, + 0x00,0x0d,0x49,0x48,0x44,0x52,0x00,0x00,0x00,0x30, + 0x00,0x00,0x00,0x30,0x08,0x06,0x00,0x00,0x00,0x57, + 0x02,0xf9,0x87,0x00,0x00,0x00,0x19,0x74,0x45,0x58, + 0x74,0x53,0x6f,0x66,0x74,0x77,0x61,0x72,0x65,0x00, + 0x41,0x64,0x6f,0x62,0x65,0x20,0x49,0x6d,0x61,0x67, + 0x65,0x52,0x65,0x61,0x64,0x79,0x71,0xc9,0x65,0x3c, + 0x00,0x00,0x03,0x66,0x69,0x54,0x58,0x74,0x58,0x4d, + 0x4c,0x3a,0x63,0x6f,0x6d,0x2e,0x61,0x64,0x6f,0x62, + 0x65,0x2e,0x78,0x6d,0x70,0x00,0x00,0x00,0x00,0x00, + 0x3c,0x3f,0x78,0x70,0x61,0x63,0x6b,0x65,0x74,0x20, + 0x62,0x65,0x67,0x69,0x6e,0x3d,0x22,0xef,0xbb,0xbf, + 0x22,0x20,0x69,0x64,0x3d,0x22,0x57,0x35,0x4d,0x30, + 0x4d,0x70,0x43,0x65,0x68,0x69,0x48,0x7a,0x72,0x65, + 0x53,0x7a,0x4e,0x54,0x63,0x7a,0x6b,0x63,0x39,0x64, + 0x22,0x3f,0x3e,0x20,0x3c,0x78,0x3a,0x78,0x6d,0x70, + 0x6d,0x65,0x74,0x61,0x20,0x78,0x6d,0x6c,0x6e,0x73, + 0x3a,0x78,0x3d,0x22,0x61,0x64,0x6f,0x62,0x65,0x3a, + 0x6e,0x73,0x3a,0x6d,0x65,0x74,0x61,0x2f,0x22,0x20, + 0x78,0x3a,0x78,0x6d,0x70,0x74,0x6b,0x3d,0x22,0x41, + 0x64,0x6f,0x62,0x65,0x20,0x58,0x4d,0x50,0x20,0x43, + 0x6f,0x72,0x65,0x20,0x35,0x2e,0x33,0x2d,0x63,0x30, + 0x31,0x31,0x20,0x36,0x36,0x2e,0x31,0x34,0x35,0x36, + 0x36,0x31,0x2c,0x20,0x32,0x30,0x31,0x32,0x2f,0x30, + 0x32,0x2f,0x30,0x36,0x2d,0x31,0x34,0x3a,0x35,0x36, + 0x3a,0x32,0x37,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x22,0x3e,0x20,0x3c,0x72,0x64,0x66,0x3a,0x52, + 0x44,0x46,0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3a,0x72, + 0x64,0x66,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f, + 0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72, + 0x67,0x2f,0x31,0x39,0x39,0x39,0x2f,0x30,0x32,0x2f, + 0x32,0x32,0x2d,0x72,0x64,0x66,0x2d,0x73,0x79,0x6e, + 0x74,0x61,0x78,0x2d,0x6e,0x73,0x23,0x22,0x3e,0x20, + 0x3c,0x72,0x64,0x66,0x3a,0x44,0x65,0x73,0x63,0x72, + 0x69,0x70,0x74,0x69,0x6f,0x6e,0x20,0x72,0x64,0x66, + 0x3a,0x61,0x62,0x6f,0x75,0x74,0x3d,0x22,0x22,0x20, + 0x78,0x6d,0x6c,0x6e,0x73,0x3a,0x78,0x6d,0x70,0x4d, + 0x4d,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f, + 0x6e,0x73,0x2e,0x61,0x64,0x6f,0x62,0x65,0x2e,0x63, + 0x6f,0x6d,0x2f,0x78,0x61,0x70,0x2f,0x31,0x2e,0x30, + 0x2f,0x6d,0x6d,0x2f,0x22,0x20,0x78,0x6d,0x6c,0x6e, + 0x73,0x3a,0x73,0x74,0x52,0x65,0x66,0x3d,0x22,0x68, + 0x74,0x74,0x70,0x3a,0x2f,0x2f,0x6e,0x73,0x2e,0x61, + 0x64,0x6f,0x62,0x65,0x2e,0x63,0x6f,0x6d,0x2f,0x78, + 0x61,0x70,0x2f,0x31,0x2e,0x30,0x2f,0x73,0x54,0x79, + 0x70,0x65,0x2f,0x52,0x65,0x73,0x6f,0x75,0x72,0x63, + 0x65,0x52,0x65,0x66,0x23,0x22,0x20,0x78,0x6d,0x6c, + 0x6e,0x73,0x3a,0x78,0x6d,0x70,0x3d,0x22,0x68,0x74, + 0x74,0x70,0x3a,0x2f,0x2f,0x6e,0x73,0x2e,0x61,0x64, + 0x6f,0x62,0x65,0x2e,0x63,0x6f,0x6d,0x2f,0x78,0x61, + 0x70,0x2f,0x31,0x2e,0x30,0x2f,0x22,0x20,0x78,0x6d, + 0x70,0x4d,0x4d,0x3a,0x4f,0x72,0x69,0x67,0x69,0x6e, + 0x61,0x6c,0x44,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74, + 0x49,0x44,0x3d,0x22,0x78,0x6d,0x70,0x2e,0x64,0x69, + 0x64,0x3a,0x43,0x44,0x31,0x35,0x46,0x36,0x32,0x43, + 0x43,0x35,0x41,0x33,0x45,0x33,0x31,0x31,0x39,0x41, + 0x37,0x44,0x44,0x30,0x32,0x30,0x39,0x34,0x44,0x35, + 0x31,0x30,0x45,0x31,0x22,0x20,0x78,0x6d,0x70,0x4d, + 0x4d,0x3a,0x44,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74, + 0x49,0x44,0x3d,0x22,0x78,0x6d,0x70,0x2e,0x64,0x69, + 0x64,0x3a,0x34,0x32,0x31,0x44,0x45,0x36,0x35,0x31, + 0x41,0x33,0x44,0x37,0x31,0x31,0x45,0x33,0x39,0x44, + 0x44,0x37,0x44,0x38,0x31,0x37,0x37,0x35,0x41,0x41, + 0x45,0x34,0x34,0x45,0x22,0x20,0x78,0x6d,0x70,0x4d, + 0x4d,0x3a,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65, + 0x49,0x44,0x3d,0x22,0x78,0x6d,0x70,0x2e,0x69,0x69, + 0x64,0x3a,0x34,0x32,0x31,0x44,0x45,0x36,0x35,0x30, + 0x41,0x33,0x44,0x37,0x31,0x31,0x45,0x33,0x39,0x44, + 0x44,0x37,0x44,0x38,0x31,0x37,0x37,0x35,0x41,0x41, + 0x45,0x34,0x34,0x45,0x22,0x20,0x78,0x6d,0x70,0x3a, + 0x43,0x72,0x65,0x61,0x74,0x6f,0x72,0x54,0x6f,0x6f, + 0x6c,0x3d,0x22,0x41,0x64,0x6f,0x62,0x65,0x20,0x50, + 0x68,0x6f,0x74,0x6f,0x73,0x68,0x6f,0x70,0x20,0x43, + 0x53,0x36,0x20,0x28,0x57,0x69,0x6e,0x64,0x6f,0x77, + 0x73,0x29,0x22,0x3e,0x20,0x3c,0x78,0x6d,0x70,0x4d, + 0x4d,0x3a,0x44,0x65,0x72,0x69,0x76,0x65,0x64,0x46, + 0x72,0x6f,0x6d,0x20,0x73,0x74,0x52,0x65,0x66,0x3a, + 0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x49,0x44, + 0x3d,0x22,0x78,0x6d,0x70,0x2e,0x69,0x69,0x64,0x3a, + 0x43,0x44,0x31,0x35,0x46,0x36,0x32,0x43,0x43,0x35, + 0x41,0x33,0x45,0x33,0x31,0x31,0x39,0x41,0x37,0x44, + 0x44,0x30,0x32,0x30,0x39,0x34,0x44,0x35,0x31,0x30, + 0x45,0x31,0x22,0x20,0x73,0x74,0x52,0x65,0x66,0x3a, + 0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x49,0x44, + 0x3d,0x22,0x78,0x6d,0x70,0x2e,0x64,0x69,0x64,0x3a, + 0x43,0x44,0x31,0x35,0x46,0x36,0x32,0x43,0x43,0x35, + 0x41,0x33,0x45,0x33,0x31,0x31,0x39,0x41,0x37,0x44, + 0x44,0x30,0x32,0x30,0x39,0x34,0x44,0x35,0x31,0x30, + 0x45,0x31,0x22,0x2f,0x3e,0x20,0x3c,0x2f,0x72,0x64, + 0x66,0x3a,0x44,0x65,0x73,0x63,0x72,0x69,0x70,0x74, + 0x69,0x6f,0x6e,0x3e,0x20,0x3c,0x2f,0x72,0x64,0x66, + 0x3a,0x52,0x44,0x46,0x3e,0x20,0x3c,0x2f,0x78,0x3a, + 0x78,0x6d,0x70,0x6d,0x65,0x74,0x61,0x3e,0x20,0x3c, + 0x3f,0x78,0x70,0x61,0x63,0x6b,0x65,0x74,0x20,0x65, + 0x6e,0x64,0x3d,0x22,0x72,0x22,0x3f,0x3e,0x68,0xef, + 0xbd,0x8f,0x00,0x00,0x02,0xf1,0x49,0x44,0x41,0x54, + 0x78,0xda,0xec,0x9a,0xcf,0x4a,0x1b,0x51,0x14,0xc6, + 0xcf,0xdc,0x4c,0xd3,0x0a,0x66,0xa3,0x20,0x6d,0x15, + 0xd4,0xe0,0x56,0x10,0x52,0x91,0xae,0xb2,0xc8,0x0b, + 0x44,0x8a,0x7d,0x8a,0x6e,0x4a,0x5b,0xad,0x7d,0x80, + 0xb6,0xb4,0xeb,0xbe,0x84,0x4a,0xb5,0x0f,0xe0,0x26, + 0xab,0x04,0x9a,0x84,0x64,0x17,0xb4,0x8a,0x98,0x20, + 0xf8,0x2f,0xea,0x4c,0x30,0x1d,0x8d,0xf6,0xfb,0xc6, + 0x5c,0x19,0x8a,0xbb,0xd2,0x31,0x03,0xf7,0xc0,0x97, + 0xb9,0xce,0x5c,0xcd,0xf7,0x3b,0x73,0xce,0x08,0xf7, + 0x8e,0xd5,0x6c,0x36,0x85,0xa1,0x94,0x92,0x58,0x2c, + 0x26,0xb6,0x6d,0x73,0x1c,0x87,0xb2,0x38,0x4d,0x3d, + 0x87,0x9e,0x42,0x71,0x09,0x37,0x5c,0xa8,0x0e,0x95, + 0xa1,0xd5,0xab,0xab,0xab,0x1f,0x90,0x77,0x79,0x79, + 0x29,0x9d,0x4e,0x47,0x30,0xf6,0x27,0x59,0x04,0xa0, + 0x79,0x1a,0x27,0x00,0xc6,0xb3,0x96,0x65,0x7d,0xb9, + 0xbe,0xbe,0x9e,0x80,0xfc,0x89,0x3c,0x52,0x61,0x05, + 0xbe,0xff,0xf6,0x48,0x6f,0x3c,0x42,0x9b,0xf0,0xb0, + 0x00,0x3f,0xdf,0x09,0x40,0x10,0x7a,0xb3,0x4e,0x4f, + 0x4f,0x7d,0xe3,0x50,0x0c,0x93,0x3e,0x42,0xf3,0xbc, + 0xa0,0x29,0x35,0x69,0x98,0x00,0x41,0x08,0x02,0xe8, + 0xea,0xe0,0x11,0x3e,0x98,0xdc,0x0f,0x9d,0x9b,0x10, + 0x5b,0x13,0x22,0x3e,0xe1,0xc2,0x3b,0x9e,0xd4,0xe6, + 0xc3,0x36,0x1d,0x0c,0xfd,0xdd,0xc1,0x44,0x76,0x21, + 0xe6,0xbb,0x80,0x0b,0xbe,0x77,0xd7,0x75,0xf9,0xc3, + 0x1c,0xce,0x2d,0xf1,0x97,0x82,0xf5,0xd5,0x6b,0xa1, + 0xef,0x44,0x37,0xe1,0x73,0xf0,0xbb,0x62,0x39,0x8e, + 0xc3,0xe6,0xfc,0x05,0x8d,0x04,0x4b,0xa6,0x57,0x43, + 0x97,0x14,0xa2,0x01,0x25,0x6d,0x18,0x9e,0x03,0xd1, + 0x48,0xd8,0x8d,0xfa,0x2f,0xa5,0xe5,0x37,0xaf,0x65, + 0x0d,0x63,0xfc,0xd2,0xc6,0x47,0x56,0x5f,0x88,0x0a, + 0x40,0x60,0x9c,0x55,0xad,0x56,0x6b,0x3a,0x0a,0xc6, + 0xef,0x02,0x81,0xf7,0x67,0x0a,0x3d,0xf0,0x38,0x2a, + 0xd9,0x0f,0x9a,0xa7,0xe0,0xfd,0x89,0x3a,0x3f,0x3f, + 0x7f,0xd8,0xeb,0x8d,0x7b,0x57,0xf0,0x69,0x09,0xef, + 0x71,0xa5,0x9f,0xfb,0x51,0x0b,0xfd,0xcf,0x56,0x45, + 0xad,0x7c,0xfe,0x2e,0x23,0x25,0x11,0x0f,0x03,0x60, + 0x00,0x0c,0x80,0x01,0x30,0x00,0x06,0xc0,0x00,0x18, + 0x00,0x03,0x60,0x00,0x0c,0x80,0x01,0x30,0x00,0x06, + 0xc0,0x00,0x18,0x80,0x7b,0x02,0x88,0xea,0xba,0x10, + 0xc3,0x5f,0x17,0xd2,0x2b,0x73,0x51,0x5b,0x1b,0xd5, + 0x1b,0x31,0x5c,0x1b,0x75,0xa0,0x48,0x2d,0x2f,0x76, + 0xd7,0x45,0x29,0x4f,0xb9,0xae,0xbb,0xe7,0x38,0x4e, + 0xa4,0x00,0xb8,0x43,0xc9,0xcd,0xc9,0xb3,0xb3,0xb3, + 0x3d,0xd5,0x6c,0x36,0xab,0x87,0x87,0x87,0xd2,0x6e, + 0xb7,0x23,0xb3,0xc1,0x41,0xaf,0x07,0x07,0x07,0x72, + 0x7c,0x7c,0xfc,0x53,0x9d,0x9c,0x9c,0xac,0xed,0xee, + 0xee,0x0a,0x21,0x2e,0x2e,0x2e,0x7a,0x1e,0x80,0x1e, + 0x8f,0x8e,0x8e,0xa4,0xd1,0x68,0xf0,0x0e,0xac,0x29, + 0x9c,0x58,0xde,0xd9,0xd9,0xa9,0xd7,0x6a,0x35,0x12, + 0xf5,0x74,0x29,0xd1,0x1b,0xcd,0xd3,0x2b,0x3c,0x37, + 0xe8,0x5d,0x25,0x12,0x09,0x0f,0xc6,0xdf,0x94,0x4a, + 0x25,0xa9,0x54,0x2a,0x3d,0x0b,0x41,0x4f,0xf4,0x56, + 0xad,0x56,0x85,0x5e,0x01,0xf2,0xba,0xbf,0xbf,0xff, + 0xb7,0x3d,0x36,0x36,0x26,0xdb,0xdb,0xdb,0x4b,0x5b, + 0x5b,0x5b,0xd3,0x68,0xe8,0xb7,0xec,0xee,0x54,0x2a, + 0x25,0x43,0x43,0x43,0x12,0x8f,0xc7,0x6f,0x77,0xcc, + 0xef,0xb3,0xe6,0x3d,0xcf,0x93,0xfd,0xfd,0x7d,0x29, + 0x16,0x8b,0x92,0xcf,0xe7,0x05,0x7d,0xfb,0x35,0x99, + 0x4c,0x2e,0x8f,0x8f,0x8f,0x8b,0xcd,0x0f,0xd6,0x3f, + 0x26,0xbc,0xc7,0xad,0x79,0x54,0xaf,0xd7,0x5f,0x6d, + 0x6c,0x6c,0xf8,0x10,0x98,0x24,0x03,0x03,0x03,0xd2, + 0xd7,0xd7,0xe7,0xbf,0x4b,0x11,0x16,0x0c,0x4d,0xf3, + 0x49,0xc3,0x64,0x32,0xeb,0x48,0xae,0xe8,0x0a,0x69, + 0xb5,0x5a,0xdf,0xe0,0x6b,0x71,0x72,0x72,0x52,0xe8, + 0xdd,0x62,0x37,0x93,0xae,0x50,0x28,0xc8,0xfa,0xfa, + 0x3a,0x6b,0xeb,0x05,0xfe,0xc6,0x67,0x18,0x9e,0x20, + 0xc0,0xe8,0xe8,0xa8,0x0c,0x0e,0x0e,0xfa,0x10,0xdd, + 0x97,0x2e,0xfe,0xbb,0x79,0x8a,0xe6,0x59,0xef,0xf0, + 0xe3,0x03,0x00,0x68,0x13,0x97,0x17,0xe1,0x67,0x25, + 0x93,0xc9,0xc8,0xcc,0xcc,0x8c,0x5f,0x25,0xfe,0xdb, + 0x2a,0xa4,0xd5,0xf5,0x95,0xcb,0xe5,0xa4,0x5c,0x2e, + 0x73,0xf7,0x9e,0xaf,0x1f,0xcc,0x42,0x29,0x68,0x18, + 0x7a,0x10,0xf6,0x03,0x47,0x6e,0x76,0xe3,0x8b,0xd0, + 0x2a,0xb4,0x3c,0x35,0x35,0xe5,0xa5,0xd3,0x69,0x61, + 0xf6,0x99,0x54,0x56,0xc5,0x1f,0x01,0x06,0x00,0x8e, + 0xb5,0x2e,0x8e,0x23,0xf2,0x34,0xce,0x00,0x00,0x00, + 0x00,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82 +}; diff --git a/data/converted/help_button_a_svg.cpp b/data/converted/help_button_a_svg.cpp new file mode 100644 index 000000000..14120f83a --- /dev/null +++ b/data/converted/help_button_a_svg.cpp @@ -0,0 +1,106 @@ +//this file was auto-generated from "button_a.svg" by res2h + +#include "../Resources.h" + +const size_t help_button_a_svg_size = 981; +const unsigned char help_button_a_svg_data[981] = { + 0x3c,0x3f,0x78,0x6d,0x6c,0x20,0x76,0x65,0x72,0x73, + 0x69,0x6f,0x6e,0x3d,0x22,0x31,0x2e,0x30,0x22,0x20, + 0x65,0x6e,0x63,0x6f,0x64,0x69,0x6e,0x67,0x3d,0x22, + 0x75,0x74,0x66,0x2d,0x38,0x22,0x3f,0x3e,0x0d,0x0a, + 0x3c,0x21,0x2d,0x2d,0x20,0x47,0x65,0x6e,0x65,0x72, + 0x61,0x74,0x6f,0x72,0x3a,0x20,0x41,0x64,0x6f,0x62, + 0x65,0x20,0x49,0x6c,0x6c,0x75,0x73,0x74,0x72,0x61, + 0x74,0x6f,0x72,0x20,0x31,0x36,0x2e,0x30,0x2e,0x33, + 0x2c,0x20,0x53,0x56,0x47,0x20,0x45,0x78,0x70,0x6f, + 0x72,0x74,0x20,0x50,0x6c,0x75,0x67,0x2d,0x49,0x6e, + 0x20,0x2e,0x20,0x53,0x56,0x47,0x20,0x56,0x65,0x72, + 0x73,0x69,0x6f,0x6e,0x3a,0x20,0x36,0x2e,0x30,0x30, + 0x20,0x42,0x75,0x69,0x6c,0x64,0x20,0x30,0x29,0x20, + 0x20,0x2d,0x2d,0x3e,0x0d,0x0a,0x3c,0x21,0x44,0x4f, + 0x43,0x54,0x59,0x50,0x45,0x20,0x73,0x76,0x67,0x20, + 0x50,0x55,0x42,0x4c,0x49,0x43,0x20,0x22,0x2d,0x2f, + 0x2f,0x57,0x33,0x43,0x2f,0x2f,0x44,0x54,0x44,0x20, + 0x53,0x56,0x47,0x20,0x31,0x2e,0x31,0x2f,0x2f,0x45, + 0x4e,0x22,0x20,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f, + 0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72, + 0x67,0x2f,0x47,0x72,0x61,0x70,0x68,0x69,0x63,0x73, + 0x2f,0x53,0x56,0x47,0x2f,0x31,0x2e,0x31,0x2f,0x44, + 0x54,0x44,0x2f,0x73,0x76,0x67,0x31,0x31,0x2e,0x64, + 0x74,0x64,0x22,0x3e,0x0d,0x0a,0x3c,0x73,0x76,0x67, + 0x20,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x3d,0x22, + 0x31,0x2e,0x31,0x22,0x20,0x69,0x64,0x3d,0x22,0x5f, + 0x78,0x33,0x30,0x5f,0x22,0x20,0x78,0x6d,0x6c,0x6e, + 0x73,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f, + 0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72,0x67, + 0x2f,0x32,0x30,0x30,0x30,0x2f,0x73,0x76,0x67,0x22, + 0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3a,0x78,0x6c,0x69, + 0x6e,0x6b,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f, + 0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72, + 0x67,0x2f,0x31,0x39,0x39,0x39,0x2f,0x78,0x6c,0x69, + 0x6e,0x6b,0x22,0x20,0x78,0x3d,0x22,0x30,0x70,0x78, + 0x22,0x20,0x79,0x3d,0x22,0x30,0x70,0x78,0x22,0x0d, + 0x0a,0x09,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x22, + 0x33,0x37,0x2e,0x30,0x36,0x31,0x70,0x78,0x22,0x20, + 0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x22,0x33,0x37, + 0x2e,0x30,0x36,0x31,0x70,0x78,0x22,0x20,0x76,0x69, + 0x65,0x77,0x42,0x6f,0x78,0x3d,0x22,0x30,0x20,0x30, + 0x20,0x33,0x37,0x2e,0x30,0x36,0x31,0x20,0x33,0x37, + 0x2e,0x30,0x36,0x31,0x22,0x20,0x65,0x6e,0x61,0x62, + 0x6c,0x65,0x2d,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f, + 0x75,0x6e,0x64,0x3d,0x22,0x6e,0x65,0x77,0x20,0x30, + 0x20,0x30,0x20,0x33,0x37,0x2e,0x30,0x36,0x31,0x20, + 0x33,0x37,0x2e,0x30,0x36,0x31,0x22,0x20,0x78,0x6d, + 0x6c,0x3a,0x73,0x70,0x61,0x63,0x65,0x3d,0x22,0x70, + 0x72,0x65,0x73,0x65,0x72,0x76,0x65,0x22,0x3e,0x0d, + 0x0a,0x3c,0x67,0x3e,0x0d,0x0a,0x09,0x3c,0x67,0x3e, + 0x0d,0x0a,0x09,0x09,0x3c,0x70,0x61,0x74,0x68,0x20, + 0x66,0x69,0x6c,0x6c,0x3d,0x22,0x23,0x46,0x46,0x46, + 0x46,0x46,0x46,0x22,0x20,0x64,0x3d,0x22,0x4d,0x31, + 0x38,0x2e,0x39,0x31,0x34,0x2c,0x31,0x34,0x2e,0x35, + 0x37,0x39,0x6c,0x2d,0x31,0x2e,0x36,0x38,0x32,0x2c, + 0x35,0x2e,0x33,0x30,0x38,0x68,0x33,0x2e,0x34,0x30, + 0x35,0x6c,0x2d,0x31,0x2e,0x36,0x37,0x2d,0x35,0x2e, + 0x33,0x30,0x38,0x48,0x31,0x38,0x2e,0x39,0x31,0x34, + 0x7a,0x20,0x4d,0x31,0x38,0x2e,0x35,0x33,0x31,0x2c, + 0x33,0x2e,0x30,0x32,0x39,0x63,0x2d,0x38,0x2e,0x35, + 0x36,0x32,0x2c,0x30,0x2d,0x31,0x35,0x2e,0x35,0x30, + 0x31,0x2c,0x36,0x2e,0x39,0x34,0x2d,0x31,0x35,0x2e, + 0x35,0x30,0x31,0x2c,0x31,0x35,0x2e,0x35,0x0d,0x0a, + 0x09,0x09,0x09,0x63,0x30,0x2c,0x38,0x2e,0x35,0x36, + 0x33,0x2c,0x36,0x2e,0x39,0x33,0x39,0x2c,0x31,0x35, + 0x2e,0x35,0x30,0x32,0x2c,0x31,0x35,0x2e,0x35,0x30, + 0x31,0x2c,0x31,0x35,0x2e,0x35,0x30,0x32,0x53,0x33, + 0x34,0x2e,0x30,0x33,0x2c,0x32,0x37,0x2e,0x30,0x39, + 0x31,0x2c,0x33,0x34,0x2e,0x30,0x33,0x2c,0x31,0x38, + 0x2e,0x35,0x32,0x39,0x43,0x33,0x34,0x2e,0x30,0x33, + 0x2c,0x39,0x2e,0x39,0x37,0x2c,0x32,0x37,0x2e,0x30, + 0x39,0x31,0x2c,0x33,0x2e,0x30,0x32,0x39,0x2c,0x31, + 0x38,0x2e,0x35,0x33,0x31,0x2c,0x33,0x2e,0x30,0x32, + 0x39,0x7a,0x20,0x4d,0x32,0x32,0x2e,0x32,0x32,0x37, + 0x2c,0x32,0x34,0x2e,0x39,0x32,0x35,0x0d,0x0a,0x09, + 0x09,0x09,0x6c,0x2d,0x30,0x2e,0x39,0x31,0x39,0x2d, + 0x32,0x2e,0x39,0x31,0x33,0x68,0x2d,0x34,0x2e,0x37, + 0x34,0x31,0x6c,0x2d,0x30,0x2e,0x39,0x31,0x38,0x2c, + 0x32,0x2e,0x39,0x31,0x33,0x68,0x2d,0x32,0x2e,0x37, + 0x33,0x35,0x6c,0x34,0x2e,0x36,0x34,0x36,0x2d,0x31, + 0x33,0x2e,0x35,0x30,0x39,0x68,0x32,0x2e,0x37,0x37, + 0x34,0x6c,0x34,0x2e,0x36,0x32,0x39,0x2c,0x31,0x33, + 0x2e,0x35,0x30,0x39,0x48,0x32,0x32,0x2e,0x32,0x32, + 0x37,0x7a,0x22,0x2f,0x3e,0x0d,0x0a,0x09,0x3c,0x2f, + 0x67,0x3e,0x0d,0x0a,0x3c,0x2f,0x67,0x3e,0x0d,0x0a, + 0x3c,0x67,0x20,0x6f,0x70,0x61,0x63,0x69,0x74,0x79, + 0x3d,0x22,0x30,0x22,0x3e,0x0d,0x0a,0x09,0x3c,0x70, + 0x61,0x74,0x68,0x20,0x66,0x69,0x6c,0x6c,0x3d,0x22, + 0x23,0x46,0x46,0x46,0x46,0x46,0x46,0x22,0x20,0x64, + 0x3d,0x22,0x4d,0x33,0x36,0x2e,0x39,0x36,0x31,0x2c, + 0x30,0x2e,0x31,0x76,0x33,0x36,0x2e,0x38,0x36,0x31, + 0x48,0x30,0x2e,0x31,0x56,0x30,0x2e,0x31,0x48,0x33, + 0x36,0x2e,0x39,0x36,0x31,0x20,0x4d,0x33,0x37,0x2e, + 0x30,0x36,0x31,0x2c,0x30,0x48,0x30,0x76,0x33,0x37, + 0x2e,0x30,0x36,0x68,0x33,0x37,0x2e,0x30,0x36,0x31, + 0x56,0x30,0x4c,0x33,0x37,0x2e,0x30,0x36,0x31,0x2c, + 0x30,0x7a,0x22,0x2f,0x3e,0x0d,0x0a,0x3c,0x2f,0x67, + 0x3e,0x0d,0x0a,0x3c,0x2f,0x73,0x76,0x67,0x3e,0x0d, + 0x0a +}; diff --git a/data/converted/help_button_b_svg.cpp b/data/converted/help_button_b_svg.cpp new file mode 100644 index 000000000..c1316dc67 --- /dev/null +++ b/data/converted/help_button_b_svg.cpp @@ -0,0 +1,158 @@ +//this file was auto-generated from "button_b.svg" by res2h + +#include "../Resources.h" + +const size_t help_button_b_svg_size = 1504; +const unsigned char help_button_b_svg_data[1504] = { + 0x3c,0x3f,0x78,0x6d,0x6c,0x20,0x76,0x65,0x72,0x73, + 0x69,0x6f,0x6e,0x3d,0x22,0x31,0x2e,0x30,0x22,0x20, + 0x65,0x6e,0x63,0x6f,0x64,0x69,0x6e,0x67,0x3d,0x22, + 0x75,0x74,0x66,0x2d,0x38,0x22,0x3f,0x3e,0x0d,0x0a, + 0x3c,0x21,0x2d,0x2d,0x20,0x47,0x65,0x6e,0x65,0x72, + 0x61,0x74,0x6f,0x72,0x3a,0x20,0x41,0x64,0x6f,0x62, + 0x65,0x20,0x49,0x6c,0x6c,0x75,0x73,0x74,0x72,0x61, + 0x74,0x6f,0x72,0x20,0x31,0x36,0x2e,0x30,0x2e,0x33, + 0x2c,0x20,0x53,0x56,0x47,0x20,0x45,0x78,0x70,0x6f, + 0x72,0x74,0x20,0x50,0x6c,0x75,0x67,0x2d,0x49,0x6e, + 0x20,0x2e,0x20,0x53,0x56,0x47,0x20,0x56,0x65,0x72, + 0x73,0x69,0x6f,0x6e,0x3a,0x20,0x36,0x2e,0x30,0x30, + 0x20,0x42,0x75,0x69,0x6c,0x64,0x20,0x30,0x29,0x20, + 0x20,0x2d,0x2d,0x3e,0x0d,0x0a,0x3c,0x21,0x44,0x4f, + 0x43,0x54,0x59,0x50,0x45,0x20,0x73,0x76,0x67,0x20, + 0x50,0x55,0x42,0x4c,0x49,0x43,0x20,0x22,0x2d,0x2f, + 0x2f,0x57,0x33,0x43,0x2f,0x2f,0x44,0x54,0x44,0x20, + 0x53,0x56,0x47,0x20,0x31,0x2e,0x31,0x2f,0x2f,0x45, + 0x4e,0x22,0x20,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f, + 0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72, + 0x67,0x2f,0x47,0x72,0x61,0x70,0x68,0x69,0x63,0x73, + 0x2f,0x53,0x56,0x47,0x2f,0x31,0x2e,0x31,0x2f,0x44, + 0x54,0x44,0x2f,0x73,0x76,0x67,0x31,0x31,0x2e,0x64, + 0x74,0x64,0x22,0x3e,0x0d,0x0a,0x3c,0x73,0x76,0x67, + 0x20,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x3d,0x22, + 0x31,0x2e,0x31,0x22,0x20,0x69,0x64,0x3d,0x22,0x42, + 0x22,0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3d,0x22,0x68, + 0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e, + 0x77,0x33,0x2e,0x6f,0x72,0x67,0x2f,0x32,0x30,0x30, + 0x30,0x2f,0x73,0x76,0x67,0x22,0x20,0x78,0x6d,0x6c, + 0x6e,0x73,0x3a,0x78,0x6c,0x69,0x6e,0x6b,0x3d,0x22, + 0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77, + 0x2e,0x77,0x33,0x2e,0x6f,0x72,0x67,0x2f,0x31,0x39, + 0x39,0x39,0x2f,0x78,0x6c,0x69,0x6e,0x6b,0x22,0x20, + 0x78,0x3d,0x22,0x30,0x70,0x78,0x22,0x20,0x79,0x3d, + 0x22,0x30,0x70,0x78,0x22,0x0d,0x0a,0x09,0x20,0x77, + 0x69,0x64,0x74,0x68,0x3d,0x22,0x33,0x37,0x2e,0x30, + 0x36,0x31,0x70,0x78,0x22,0x20,0x68,0x65,0x69,0x67, + 0x68,0x74,0x3d,0x22,0x33,0x37,0x2e,0x30,0x36,0x31, + 0x70,0x78,0x22,0x20,0x76,0x69,0x65,0x77,0x42,0x6f, + 0x78,0x3d,0x22,0x30,0x20,0x30,0x20,0x33,0x37,0x2e, + 0x30,0x36,0x31,0x20,0x33,0x37,0x2e,0x30,0x36,0x31, + 0x22,0x20,0x65,0x6e,0x61,0x62,0x6c,0x65,0x2d,0x62, + 0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3d, + 0x22,0x6e,0x65,0x77,0x20,0x30,0x20,0x30,0x20,0x33, + 0x37,0x2e,0x30,0x36,0x31,0x20,0x33,0x37,0x2e,0x30, + 0x36,0x31,0x22,0x20,0x78,0x6d,0x6c,0x3a,0x73,0x70, + 0x61,0x63,0x65,0x3d,0x22,0x70,0x72,0x65,0x73,0x65, + 0x72,0x76,0x65,0x22,0x3e,0x0d,0x0a,0x3c,0x67,0x3e, + 0x0d,0x0a,0x09,0x3c,0x67,0x3e,0x0d,0x0a,0x09,0x09, + 0x3c,0x70,0x61,0x74,0x68,0x20,0x66,0x69,0x6c,0x6c, + 0x3d,0x22,0x23,0x46,0x46,0x46,0x46,0x46,0x46,0x22, + 0x20,0x64,0x3d,0x22,0x4d,0x31,0x39,0x2e,0x34,0x37, + 0x2c,0x31,0x38,0x2e,0x39,0x34,0x39,0x68,0x2d,0x32, + 0x2e,0x36,0x39,0x39,0x76,0x33,0x2e,0x38,0x38,0x37, + 0x68,0x32,0x2e,0x34,0x39,0x36,0x63,0x30,0x2e,0x37, + 0x31,0x37,0x2c,0x30,0x2c,0x31,0x2e,0x32,0x36,0x37, + 0x2d,0x30,0x2e,0x31,0x35,0x34,0x2c,0x31,0x2e,0x36, + 0x34,0x34,0x2d,0x30,0x2e,0x34,0x36,0x37,0x63,0x30, + 0x2e,0x33,0x37,0x38,0x2d,0x30,0x2e,0x33,0x31,0x33, + 0x2c,0x30,0x2e,0x35,0x36,0x33,0x2d,0x30,0x2e,0x37, + 0x37,0x32,0x2c,0x30,0x2e,0x35,0x36,0x33,0x2d,0x31, + 0x2e,0x33,0x38,0x35,0x0d,0x0a,0x09,0x09,0x09,0x63, + 0x30,0x2d,0x30,0x2e,0x36,0x35,0x39,0x2d,0x30,0x2e, + 0x31,0x36,0x2d,0x31,0x2e,0x31,0x36,0x35,0x2d,0x30, + 0x2e,0x34,0x38,0x2d,0x31,0x2e,0x35,0x31,0x33,0x43, + 0x32,0x30,0x2e,0x36,0x37,0x31,0x2c,0x31,0x39,0x2e, + 0x31,0x32,0x34,0x2c,0x32,0x30,0x2e,0x31,0x36,0x33, + 0x2c,0x31,0x38,0x2e,0x39,0x34,0x39,0x2c,0x31,0x39, + 0x2e,0x34,0x37,0x2c,0x31,0x38,0x2e,0x39,0x34,0x39, + 0x7a,0x20,0x4d,0x32,0x30,0x2e,0x33,0x38,0x39,0x2c, + 0x31,0x36,0x2e,0x36,0x33,0x63,0x30,0x2e,0x33,0x39, + 0x2d,0x30,0x2e,0x32,0x39,0x37,0x2c,0x30,0x2e,0x35, + 0x38,0x35,0x2d,0x30,0x2e,0x37,0x32,0x39,0x2c,0x30, + 0x2e,0x35,0x38,0x35,0x2d,0x31,0x2e,0x32,0x39,0x39, + 0x0d,0x0a,0x09,0x09,0x09,0x63,0x30,0x2d,0x30,0x2e, + 0x36,0x32,0x35,0x2d,0x30,0x2e,0x31,0x39,0x37,0x2d, + 0x31,0x2e,0x30,0x38,0x36,0x2d,0x30,0x2e,0x35,0x39, + 0x2d,0x31,0x2e,0x33,0x38,0x33,0x73,0x2d,0x30,0x2e, + 0x39,0x37,0x39,0x2d,0x30,0x2e,0x34,0x34,0x35,0x2d, + 0x31,0x2e,0x37,0x35,0x38,0x2d,0x30,0x2e,0x34,0x34, + 0x35,0x68,0x2d,0x31,0x2e,0x38,0x35,0x35,0x76,0x33, + 0x2e,0x35,0x37,0x32,0x68,0x31,0x2e,0x39,0x34,0x38, + 0x43,0x31,0x39,0x2e,0x34,0x34,0x32,0x2c,0x31,0x37, + 0x2e,0x30,0x37,0x35,0x2c,0x31,0x39,0x2e,0x39,0x39, + 0x39,0x2c,0x31,0x36,0x2e,0x39,0x32,0x37,0x2c,0x32, + 0x30,0x2e,0x33,0x38,0x39,0x2c,0x31,0x36,0x2e,0x36, + 0x33,0x7a,0x0d,0x0a,0x09,0x09,0x09,0x20,0x4d,0x31, + 0x38,0x2e,0x35,0x33,0x2c,0x33,0x2e,0x30,0x33,0x31, + 0x63,0x2d,0x38,0x2e,0x35,0x36,0x31,0x2c,0x30,0x2d, + 0x31,0x35,0x2e,0x35,0x2c,0x36,0x2e,0x39,0x33,0x38, + 0x2d,0x31,0x35,0x2e,0x35,0x2c,0x31,0x35,0x2e,0x35, + 0x63,0x30,0x2c,0x38,0x2e,0x35,0x36,0x2c,0x36,0x2e, + 0x39,0x33,0x39,0x2c,0x31,0x35,0x2e,0x35,0x2c,0x31, + 0x35,0x2e,0x35,0x2c,0x31,0x35,0x2e,0x35,0x63,0x38, + 0x2e,0x35,0x36,0x33,0x2c,0x30,0x2c,0x31,0x35,0x2e, + 0x35,0x2d,0x36,0x2e,0x39,0x33,0x39,0x2c,0x31,0x35, + 0x2e,0x35,0x2d,0x31,0x35,0x2e,0x35,0x0d,0x0a,0x09, + 0x09,0x09,0x43,0x33,0x34,0x2e,0x30,0x33,0x2c,0x39, + 0x2e,0x39,0x36,0x39,0x2c,0x32,0x37,0x2e,0x30,0x39, + 0x31,0x2c,0x33,0x2e,0x30,0x33,0x31,0x2c,0x31,0x38, + 0x2e,0x35,0x33,0x2c,0x33,0x2e,0x30,0x33,0x31,0x7a, + 0x20,0x4d,0x32,0x32,0x2e,0x38,0x39,0x34,0x2c,0x32, + 0x33,0x2e,0x39,0x32,0x37,0x63,0x2d,0x30,0x2e,0x38, + 0x35,0x34,0x2c,0x30,0x2e,0x36,0x36,0x35,0x2d,0x32, + 0x2e,0x30,0x36,0x33,0x2c,0x30,0x2e,0x39,0x39,0x37, + 0x2d,0x33,0x2e,0x36,0x32,0x37,0x2c,0x30,0x2e,0x39, + 0x39,0x37,0x68,0x2d,0x35,0x2e,0x32,0x30,0x35,0x56, + 0x31,0x31,0x2e,0x34,0x31,0x36,0x68,0x34,0x2e,0x35, + 0x36,0x34,0x0d,0x0a,0x09,0x09,0x09,0x63,0x31,0x2e, + 0x35,0x39,0x2c,0x30,0x2c,0x32,0x2e,0x38,0x33,0x2c, + 0x30,0x2e,0x33,0x31,0x2c,0x33,0x2e,0x37,0x32,0x31, + 0x2c,0x30,0x2e,0x39,0x32,0x39,0x63,0x30,0x2e,0x38, + 0x39,0x31,0x2c,0x30,0x2e,0x36,0x31,0x37,0x2c,0x31, + 0x2e,0x33,0x33,0x36,0x2c,0x31,0x2e,0x35,0x34,0x33, + 0x2c,0x31,0x2e,0x33,0x33,0x36,0x2c,0x32,0x2e,0x37, + 0x37,0x33,0x63,0x30,0x2c,0x30,0x2e,0x36,0x32,0x35, + 0x2d,0x30,0x2e,0x31,0x36,0x36,0x2c,0x31,0x2e,0x31, + 0x38,0x34,0x2d,0x30,0x2e,0x34,0x39,0x36,0x2c,0x31, + 0x2e,0x36,0x37,0x34,0x0d,0x0a,0x09,0x09,0x09,0x63, + 0x2d,0x30,0x2e,0x33,0x33,0x32,0x2c,0x30,0x2e,0x34, + 0x39,0x32,0x2d,0x30,0x2e,0x38,0x31,0x33,0x2c,0x30, + 0x2e,0x38,0x36,0x2d,0x31,0x2e,0x34,0x34,0x31,0x2c, + 0x31,0x2e,0x31,0x30,0x38,0x63,0x30,0x2e,0x38,0x31, + 0x31,0x2c,0x30,0x2e,0x31,0x37,0x34,0x2c,0x31,0x2e, + 0x34,0x31,0x38,0x2c,0x30,0x2e,0x35,0x34,0x34,0x2c, + 0x31,0x2e,0x38,0x32,0x31,0x2c,0x31,0x2e,0x31,0x31, + 0x33,0x63,0x30,0x2e,0x34,0x30,0x35,0x2c,0x30,0x2e, + 0x35,0x36,0x38,0x2c,0x30,0x2e,0x36,0x30,0x37,0x2c, + 0x31,0x2e,0x32,0x32,0x39,0x2c,0x30,0x2e,0x36,0x30, + 0x37,0x2c,0x31,0x2e,0x39,0x37,0x37,0x0d,0x0a,0x09, + 0x09,0x09,0x43,0x32,0x34,0x2e,0x31,0x37,0x34,0x2c, + 0x32,0x32,0x2e,0x32,0x38,0x33,0x2c,0x32,0x33,0x2e, + 0x37,0x34,0x37,0x2c,0x32,0x33,0x2e,0x32,0x36,0x32, + 0x2c,0x32,0x32,0x2e,0x38,0x39,0x34,0x2c,0x32,0x33, + 0x2e,0x39,0x32,0x37,0x7a,0x22,0x2f,0x3e,0x0d,0x0a, + 0x09,0x3c,0x2f,0x67,0x3e,0x0d,0x0a,0x3c,0x2f,0x67, + 0x3e,0x0d,0x0a,0x3c,0x67,0x20,0x6f,0x70,0x61,0x63, + 0x69,0x74,0x79,0x3d,0x22,0x30,0x22,0x3e,0x0d,0x0a, + 0x09,0x3c,0x70,0x61,0x74,0x68,0x20,0x66,0x69,0x6c, + 0x6c,0x3d,0x22,0x23,0x46,0x46,0x46,0x46,0x46,0x46, + 0x22,0x20,0x64,0x3d,0x22,0x4d,0x33,0x36,0x2e,0x39, + 0x36,0x31,0x2c,0x30,0x2e,0x31,0x76,0x33,0x36,0x2e, + 0x38,0x36,0x31,0x48,0x30,0x2e,0x31,0x56,0x30,0x2e, + 0x31,0x48,0x33,0x36,0x2e,0x39,0x36,0x31,0x20,0x4d, + 0x33,0x37,0x2e,0x30,0x36,0x31,0x2c,0x30,0x48,0x30, + 0x76,0x33,0x37,0x2e,0x30,0x36,0x68,0x33,0x37,0x2e, + 0x30,0x36,0x31,0x56,0x30,0x4c,0x33,0x37,0x2e,0x30, + 0x36,0x31,0x2c,0x30,0x7a,0x22,0x2f,0x3e,0x0d,0x0a, + 0x3c,0x2f,0x67,0x3e,0x0d,0x0a,0x3c,0x2f,0x73,0x76, + 0x67,0x3e,0x0d,0x0a +}; diff --git a/data/converted/help_button_l_svg.cpp b/data/converted/help_button_l_svg.cpp new file mode 100644 index 000000000..2fbb07e09 --- /dev/null +++ b/data/converted/help_button_l_svg.cpp @@ -0,0 +1,110 @@ +//this file was auto-generated from "button_l.svg" by res2h + +#include "../Resources.h" + +const size_t help_button_l_svg_size = 1026; +const unsigned char help_button_l_svg_data[1026] = { + 0x3c,0x3f,0x78,0x6d,0x6c,0x20,0x76,0x65,0x72,0x73, + 0x69,0x6f,0x6e,0x3d,0x22,0x31,0x2e,0x30,0x22,0x20, + 0x65,0x6e,0x63,0x6f,0x64,0x69,0x6e,0x67,0x3d,0x22, + 0x75,0x74,0x66,0x2d,0x38,0x22,0x3f,0x3e,0x0d,0x0a, + 0x3c,0x21,0x2d,0x2d,0x20,0x47,0x65,0x6e,0x65,0x72, + 0x61,0x74,0x6f,0x72,0x3a,0x20,0x41,0x64,0x6f,0x62, + 0x65,0x20,0x49,0x6c,0x6c,0x75,0x73,0x74,0x72,0x61, + 0x74,0x6f,0x72,0x20,0x31,0x36,0x2e,0x30,0x2e,0x33, + 0x2c,0x20,0x53,0x56,0x47,0x20,0x45,0x78,0x70,0x6f, + 0x72,0x74,0x20,0x50,0x6c,0x75,0x67,0x2d,0x49,0x6e, + 0x20,0x2e,0x20,0x53,0x56,0x47,0x20,0x56,0x65,0x72, + 0x73,0x69,0x6f,0x6e,0x3a,0x20,0x36,0x2e,0x30,0x30, + 0x20,0x42,0x75,0x69,0x6c,0x64,0x20,0x30,0x29,0x20, + 0x20,0x2d,0x2d,0x3e,0x0d,0x0a,0x3c,0x21,0x44,0x4f, + 0x43,0x54,0x59,0x50,0x45,0x20,0x73,0x76,0x67,0x20, + 0x50,0x55,0x42,0x4c,0x49,0x43,0x20,0x22,0x2d,0x2f, + 0x2f,0x57,0x33,0x43,0x2f,0x2f,0x44,0x54,0x44,0x20, + 0x53,0x56,0x47,0x20,0x31,0x2e,0x31,0x2f,0x2f,0x45, + 0x4e,0x22,0x20,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f, + 0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72, + 0x67,0x2f,0x47,0x72,0x61,0x70,0x68,0x69,0x63,0x73, + 0x2f,0x53,0x56,0x47,0x2f,0x31,0x2e,0x31,0x2f,0x44, + 0x54,0x44,0x2f,0x73,0x76,0x67,0x31,0x31,0x2e,0x64, + 0x74,0x64,0x22,0x3e,0x0d,0x0a,0x3c,0x73,0x76,0x67, + 0x20,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x3d,0x22, + 0x31,0x2e,0x31,0x22,0x20,0x69,0x64,0x3d,0x22,0x5f, + 0x78,0x33,0x30,0x5f,0x22,0x20,0x78,0x6d,0x6c,0x6e, + 0x73,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f, + 0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72,0x67, + 0x2f,0x32,0x30,0x30,0x30,0x2f,0x73,0x76,0x67,0x22, + 0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3a,0x78,0x6c,0x69, + 0x6e,0x6b,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f, + 0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72, + 0x67,0x2f,0x31,0x39,0x39,0x39,0x2f,0x78,0x6c,0x69, + 0x6e,0x6b,0x22,0x20,0x78,0x3d,0x22,0x30,0x70,0x78, + 0x22,0x20,0x79,0x3d,0x22,0x30,0x70,0x78,0x22,0x0d, + 0x0a,0x09,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x22, + 0x33,0x37,0x2e,0x30,0x36,0x31,0x70,0x78,0x22,0x20, + 0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x22,0x33,0x37, + 0x2e,0x30,0x36,0x31,0x70,0x78,0x22,0x20,0x76,0x69, + 0x65,0x77,0x42,0x6f,0x78,0x3d,0x22,0x30,0x20,0x30, + 0x20,0x33,0x37,0x2e,0x30,0x36,0x31,0x20,0x33,0x37, + 0x2e,0x30,0x36,0x31,0x22,0x20,0x65,0x6e,0x61,0x62, + 0x6c,0x65,0x2d,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f, + 0x75,0x6e,0x64,0x3d,0x22,0x6e,0x65,0x77,0x20,0x30, + 0x20,0x30,0x20,0x33,0x37,0x2e,0x30,0x36,0x31,0x20, + 0x33,0x37,0x2e,0x30,0x36,0x31,0x22,0x20,0x78,0x6d, + 0x6c,0x3a,0x73,0x70,0x61,0x63,0x65,0x3d,0x22,0x70, + 0x72,0x65,0x73,0x65,0x72,0x76,0x65,0x22,0x3e,0x0d, + 0x0a,0x3c,0x67,0x3e,0x0d,0x0a,0x09,0x3c,0x70,0x61, + 0x74,0x68,0x20,0x66,0x69,0x6c,0x6c,0x3d,0x22,0x23, + 0x46,0x46,0x46,0x46,0x46,0x46,0x22,0x20,0x64,0x3d, + 0x22,0x4d,0x32,0x39,0x2e,0x32,0x35,0x34,0x2c,0x31, + 0x31,0x2e,0x35,0x32,0x36,0x63,0x33,0x2e,0x34,0x37, + 0x38,0x2c,0x30,0x2c,0x36,0x2e,0x33,0x30,0x37,0x2c, + 0x33,0x2e,0x31,0x34,0x2c,0x36,0x2e,0x33,0x30,0x37, + 0x2c,0x36,0x2e,0x39,0x39,0x37,0x63,0x30,0x2c,0x33, + 0x2e,0x38,0x36,0x36,0x2d,0x32,0x2e,0x38,0x32,0x39, + 0x2c,0x37,0x2e,0x30,0x31,0x31,0x2d,0x36,0x2e,0x33, + 0x30,0x37,0x2c,0x37,0x2e,0x30,0x31,0x31,0x48,0x37, + 0x2e,0x37,0x36,0x0d,0x0a,0x09,0x09,0x63,0x2d,0x33, + 0x2e,0x34,0x35,0x32,0x2d,0x30,0x2e,0x30,0x33,0x2d, + 0x36,0x2e,0x32,0x36,0x2d,0x33,0x2e,0x31,0x37,0x37, + 0x2d,0x36,0x2e,0x32,0x36,0x2d,0x37,0x2e,0x30,0x31, + 0x31,0x63,0x30,0x2d,0x33,0x2e,0x38,0x32,0x38,0x2c, + 0x32,0x2e,0x38,0x30,0x38,0x2d,0x36,0x2e,0x39,0x36, + 0x36,0x2c,0x36,0x2e,0x32,0x34,0x37,0x2d,0x36,0x2e, + 0x39,0x39,0x37,0x48,0x32,0x39,0x2e,0x32,0x35,0x34, + 0x20,0x4d,0x32,0x39,0x2e,0x32,0x35,0x34,0x2c,0x31, + 0x30,0x2e,0x30,0x32,0x36,0x63,0x2d,0x30,0x2e,0x30, + 0x32,0x31,0x2c,0x30,0x2d,0x32,0x31,0x2e,0x35,0x30, + 0x37,0x2c,0x30,0x2d,0x32,0x31,0x2e,0x35,0x30,0x37, + 0x2c,0x30,0x0d,0x0a,0x09,0x09,0x43,0x33,0x2e,0x34, + 0x36,0x36,0x2c,0x31,0x30,0x2e,0x30,0x36,0x34,0x2c, + 0x30,0x2c,0x31,0x33,0x2e,0x38,0x34,0x36,0x2c,0x30, + 0x2c,0x31,0x38,0x2e,0x35,0x32,0x33,0x63,0x30,0x2c, + 0x34,0x2e,0x36,0x37,0x38,0x2c,0x33,0x2e,0x34,0x36, + 0x36,0x2c,0x38,0x2e,0x34,0x37,0x33,0x2c,0x37,0x2e, + 0x37,0x34,0x37,0x2c,0x38,0x2e,0x35,0x31,0x31,0x63, + 0x30,0x2c,0x30,0x2c,0x32,0x31,0x2e,0x34,0x38,0x33, + 0x2c,0x30,0x2c,0x32,0x31,0x2e,0x35,0x30,0x37,0x2c, + 0x30,0x63,0x34,0x2e,0x33,0x31,0x33,0x2c,0x30,0x2c, + 0x37,0x2e,0x38,0x30,0x37,0x2d,0x33,0x2e,0x38,0x31, + 0x32,0x2c,0x37,0x2e,0x38,0x30,0x37,0x2d,0x38,0x2e, + 0x35,0x31,0x31,0x0d,0x0a,0x09,0x09,0x53,0x33,0x33, + 0x2e,0x35,0x36,0x36,0x2c,0x31,0x30,0x2e,0x30,0x32, + 0x36,0x2c,0x32,0x39,0x2e,0x32,0x35,0x34,0x2c,0x31, + 0x30,0x2e,0x30,0x32,0x36,0x4c,0x32,0x39,0x2e,0x32, + 0x35,0x34,0x2c,0x31,0x30,0x2e,0x30,0x32,0x36,0x7a, + 0x22,0x2f,0x3e,0x0d,0x0a,0x3c,0x2f,0x67,0x3e,0x0d, + 0x0a,0x3c,0x70,0x6f,0x6c,0x79,0x67,0x6f,0x6e,0x20, + 0x66,0x69,0x6c,0x6c,0x3d,0x22,0x23,0x46,0x46,0x46, + 0x46,0x46,0x46,0x22,0x20,0x70,0x6f,0x69,0x6e,0x74, + 0x73,0x3d,0x22,0x31,0x35,0x2e,0x39,0x32,0x2c,0x32, + 0x32,0x2e,0x32,0x31,0x32,0x20,0x32,0x31,0x2e,0x31, + 0x34,0x31,0x2c,0x32,0x32,0x2e,0x32,0x31,0x32,0x20, + 0x32,0x31,0x2e,0x31,0x34,0x31,0x2c,0x32,0x30,0x2e, + 0x38,0x35,0x20,0x31,0x37,0x2e,0x35,0x34,0x33,0x2c, + 0x32,0x30,0x2e,0x38,0x35,0x20,0x31,0x37,0x2e,0x35, + 0x34,0x33,0x2c,0x31,0x34,0x2e,0x38,0x33,0x33,0x20, + 0x31,0x35,0x2e,0x39,0x32,0x2c,0x31,0x34,0x2e,0x38, + 0x33,0x33,0x20,0x22,0x2f,0x3e,0x0d,0x0a,0x3c,0x2f, + 0x73,0x76,0x67,0x3e,0x0d,0x0a +}; diff --git a/data/converted/help_button_r_svg.cpp b/data/converted/help_button_r_svg.cpp new file mode 100644 index 000000000..e76411c97 --- /dev/null +++ b/data/converted/help_button_r_svg.cpp @@ -0,0 +1,141 @@ +//this file was auto-generated from "button_r.svg" by res2h + +#include "../Resources.h" + +const size_t help_button_r_svg_size = 1331; +const unsigned char help_button_r_svg_data[1331] = { + 0x3c,0x3f,0x78,0x6d,0x6c,0x20,0x76,0x65,0x72,0x73, + 0x69,0x6f,0x6e,0x3d,0x22,0x31,0x2e,0x30,0x22,0x20, + 0x65,0x6e,0x63,0x6f,0x64,0x69,0x6e,0x67,0x3d,0x22, + 0x75,0x74,0x66,0x2d,0x38,0x22,0x3f,0x3e,0x0d,0x0a, + 0x3c,0x21,0x2d,0x2d,0x20,0x47,0x65,0x6e,0x65,0x72, + 0x61,0x74,0x6f,0x72,0x3a,0x20,0x41,0x64,0x6f,0x62, + 0x65,0x20,0x49,0x6c,0x6c,0x75,0x73,0x74,0x72,0x61, + 0x74,0x6f,0x72,0x20,0x31,0x36,0x2e,0x30,0x2e,0x33, + 0x2c,0x20,0x53,0x56,0x47,0x20,0x45,0x78,0x70,0x6f, + 0x72,0x74,0x20,0x50,0x6c,0x75,0x67,0x2d,0x49,0x6e, + 0x20,0x2e,0x20,0x53,0x56,0x47,0x20,0x56,0x65,0x72, + 0x73,0x69,0x6f,0x6e,0x3a,0x20,0x36,0x2e,0x30,0x30, + 0x20,0x42,0x75,0x69,0x6c,0x64,0x20,0x30,0x29,0x20, + 0x20,0x2d,0x2d,0x3e,0x0d,0x0a,0x3c,0x21,0x44,0x4f, + 0x43,0x54,0x59,0x50,0x45,0x20,0x73,0x76,0x67,0x20, + 0x50,0x55,0x42,0x4c,0x49,0x43,0x20,0x22,0x2d,0x2f, + 0x2f,0x57,0x33,0x43,0x2f,0x2f,0x44,0x54,0x44,0x20, + 0x53,0x56,0x47,0x20,0x31,0x2e,0x31,0x2f,0x2f,0x45, + 0x4e,0x22,0x20,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f, + 0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72, + 0x67,0x2f,0x47,0x72,0x61,0x70,0x68,0x69,0x63,0x73, + 0x2f,0x53,0x56,0x47,0x2f,0x31,0x2e,0x31,0x2f,0x44, + 0x54,0x44,0x2f,0x73,0x76,0x67,0x31,0x31,0x2e,0x64, + 0x74,0x64,0x22,0x3e,0x0d,0x0a,0x3c,0x73,0x76,0x67, + 0x20,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x3d,0x22, + 0x31,0x2e,0x31,0x22,0x20,0x69,0x64,0x3d,0x22,0x5f, + 0x78,0x33,0x30,0x5f,0x22,0x20,0x78,0x6d,0x6c,0x6e, + 0x73,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f, + 0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72,0x67, + 0x2f,0x32,0x30,0x30,0x30,0x2f,0x73,0x76,0x67,0x22, + 0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3a,0x78,0x6c,0x69, + 0x6e,0x6b,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f, + 0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72, + 0x67,0x2f,0x31,0x39,0x39,0x39,0x2f,0x78,0x6c,0x69, + 0x6e,0x6b,0x22,0x20,0x78,0x3d,0x22,0x30,0x70,0x78, + 0x22,0x20,0x79,0x3d,0x22,0x30,0x70,0x78,0x22,0x0d, + 0x0a,0x09,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x22, + 0x33,0x37,0x2e,0x30,0x36,0x31,0x70,0x78,0x22,0x20, + 0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x22,0x33,0x37, + 0x2e,0x30,0x36,0x31,0x70,0x78,0x22,0x20,0x76,0x69, + 0x65,0x77,0x42,0x6f,0x78,0x3d,0x22,0x30,0x20,0x30, + 0x20,0x33,0x37,0x2e,0x30,0x36,0x31,0x20,0x33,0x37, + 0x2e,0x30,0x36,0x31,0x22,0x20,0x65,0x6e,0x61,0x62, + 0x6c,0x65,0x2d,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f, + 0x75,0x6e,0x64,0x3d,0x22,0x6e,0x65,0x77,0x20,0x30, + 0x20,0x30,0x20,0x33,0x37,0x2e,0x30,0x36,0x31,0x20, + 0x33,0x37,0x2e,0x30,0x36,0x31,0x22,0x20,0x78,0x6d, + 0x6c,0x3a,0x73,0x70,0x61,0x63,0x65,0x3d,0x22,0x70, + 0x72,0x65,0x73,0x65,0x72,0x76,0x65,0x22,0x3e,0x0d, + 0x0a,0x3c,0x70,0x61,0x74,0x68,0x20,0x66,0x69,0x6c, + 0x6c,0x3d,0x22,0x23,0x46,0x46,0x46,0x46,0x46,0x46, + 0x22,0x20,0x64,0x3d,0x22,0x4d,0x31,0x36,0x2e,0x39, + 0x37,0x33,0x2c,0x31,0x36,0x2e,0x30,0x38,0x36,0x68, + 0x31,0x2e,0x37,0x37,0x39,0x63,0x30,0x2e,0x37,0x32, + 0x32,0x2c,0x30,0x2c,0x31,0x2e,0x31,0x31,0x37,0x2c, + 0x30,0x2e,0x33,0x31,0x32,0x2c,0x31,0x2e,0x31,0x31, + 0x37,0x2c,0x31,0x2e,0x30,0x32,0x32,0x63,0x30,0x2c, + 0x30,0x2e,0x37,0x34,0x37,0x2d,0x30,0x2e,0x33,0x39, + 0x36,0x2c,0x31,0x2e,0x30,0x36,0x2d,0x31,0x2e,0x31, + 0x31,0x37,0x2c,0x31,0x2e,0x30,0x36,0x68,0x2d,0x31, + 0x2e,0x37,0x37,0x39,0x56,0x31,0x36,0x2e,0x30,0x38, + 0x36,0x7a,0x0d,0x0a,0x09,0x20,0x4d,0x31,0x35,0x2e, + 0x33,0x35,0x33,0x2c,0x32,0x32,0x2e,0x32,0x31,0x32, + 0x68,0x31,0x2e,0x36,0x32,0x76,0x2d,0x32,0x2e,0x38, + 0x38,0x36,0x68,0x31,0x2e,0x36,0x32,0x35,0x63,0x30, + 0x2e,0x38,0x31,0x36,0x2c,0x30,0x2c,0x31,0x2e,0x31, + 0x31,0x37,0x2c,0x30,0x2e,0x33,0x34,0x32,0x2c,0x31, + 0x2e,0x32,0x33,0x2c,0x31,0x2e,0x31,0x31,0x38,0x63, + 0x30,0x2e,0x30,0x38,0x32,0x2c,0x30,0x2e,0x35,0x38, + 0x39,0x2c,0x30,0x2e,0x30,0x36,0x31,0x2c,0x31,0x2e, + 0x33,0x30,0x34,0x2c,0x30,0x2e,0x32,0x35,0x38,0x2c, + 0x31,0x2e,0x37,0x36,0x39,0x68,0x31,0x2e,0x36,0x32, + 0x31,0x0d,0x0a,0x09,0x63,0x2d,0x30,0x2e,0x32,0x38, + 0x39,0x2d,0x30,0x2e,0x34,0x31,0x34,0x2d,0x30,0x2e, + 0x32,0x37,0x39,0x2d,0x31,0x2e,0x32,0x38,0x2d,0x30, + 0x2e,0x33,0x31,0x33,0x2d,0x31,0x2e,0x37,0x34,0x38, + 0x63,0x2d,0x30,0x2e,0x30,0x35,0x31,0x2d,0x30,0x2e, + 0x37,0x34,0x34,0x2d,0x30,0x2e,0x32,0x37,0x35,0x2d, + 0x31,0x2e,0x35,0x32,0x31,0x2d,0x31,0x2e,0x30,0x37, + 0x2d,0x31,0x2e,0x37,0x32,0x38,0x63,0x30,0x2c,0x30, + 0x2c,0x31,0x2e,0x31,0x36,0x36,0x2d,0x30,0x2e,0x33, + 0x30,0x33,0x2c,0x31,0x2e,0x31,0x36,0x36,0x2d,0x31, + 0x2e,0x38,0x37,0x33,0x0d,0x0a,0x09,0x63,0x30,0x2d, + 0x31,0x2e,0x31,0x31,0x38,0x2d,0x30,0x2e,0x38,0x33, + 0x38,0x2d,0x32,0x2e,0x30,0x33,0x36,0x2d,0x32,0x2e, + 0x31,0x36,0x2d,0x32,0x2e,0x30,0x33,0x36,0x68,0x2d, + 0x33,0x2e,0x39,0x37,0x39,0x4c,0x31,0x35,0x2e,0x33, + 0x35,0x33,0x2c,0x32,0x32,0x2e,0x32,0x31,0x32,0x4c, + 0x31,0x35,0x2e,0x33,0x35,0x33,0x2c,0x32,0x32,0x2e, + 0x32,0x31,0x32,0x7a,0x22,0x2f,0x3e,0x0d,0x0a,0x3c, + 0x67,0x3e,0x0d,0x0a,0x09,0x3c,0x70,0x61,0x74,0x68, + 0x20,0x66,0x69,0x6c,0x6c,0x3d,0x22,0x23,0x46,0x46, + 0x46,0x46,0x46,0x46,0x22,0x20,0x64,0x3d,0x22,0x4d, + 0x32,0x39,0x2e,0x32,0x35,0x34,0x2c,0x31,0x31,0x2e, + 0x35,0x32,0x36,0x63,0x33,0x2e,0x34,0x37,0x38,0x2c, + 0x30,0x2c,0x36,0x2e,0x33,0x30,0x37,0x2c,0x33,0x2e, + 0x31,0x34,0x2c,0x36,0x2e,0x33,0x30,0x37,0x2c,0x36, + 0x2e,0x39,0x39,0x36,0x63,0x30,0x2c,0x33,0x2e,0x38, + 0x36,0x36,0x2d,0x32,0x2e,0x38,0x32,0x39,0x2c,0x37, + 0x2e,0x30,0x31,0x32,0x2d,0x36,0x2e,0x33,0x30,0x37, + 0x2c,0x37,0x2e,0x30,0x31,0x32,0x48,0x37,0x2e,0x37, + 0x36,0x0d,0x0a,0x09,0x09,0x63,0x2d,0x33,0x2e,0x34, + 0x35,0x32,0x2d,0x30,0x2e,0x30,0x33,0x2d,0x36,0x2e, + 0x32,0x36,0x2d,0x33,0x2e,0x31,0x37,0x37,0x2d,0x36, + 0x2e,0x32,0x36,0x2d,0x37,0x2e,0x30,0x31,0x32,0x63, + 0x30,0x2d,0x33,0x2e,0x38,0x32,0x37,0x2c,0x32,0x2e, + 0x38,0x30,0x38,0x2d,0x36,0x2e,0x39,0x36,0x36,0x2c, + 0x36,0x2e,0x32,0x34,0x37,0x2d,0x36,0x2e,0x39,0x39, + 0x36,0x48,0x32,0x39,0x2e,0x32,0x35,0x34,0x20,0x4d, + 0x32,0x39,0x2e,0x32,0x35,0x34,0x2c,0x31,0x30,0x2e, + 0x30,0x32,0x36,0x63,0x2d,0x30,0x2e,0x30,0x32,0x31, + 0x2c,0x30,0x2d,0x32,0x31,0x2e,0x35,0x30,0x37,0x2c, + 0x30,0x2d,0x32,0x31,0x2e,0x35,0x30,0x37,0x2c,0x30, + 0x0d,0x0a,0x09,0x09,0x43,0x33,0x2e,0x34,0x36,0x36, + 0x2c,0x31,0x30,0x2e,0x30,0x36,0x33,0x2c,0x30,0x2c, + 0x31,0x33,0x2e,0x38,0x34,0x36,0x2c,0x30,0x2c,0x31, + 0x38,0x2e,0x35,0x32,0x32,0x63,0x30,0x2c,0x34,0x2e, + 0x36,0x37,0x39,0x2c,0x33,0x2e,0x34,0x36,0x36,0x2c, + 0x38,0x2e,0x34,0x37,0x33,0x2c,0x37,0x2e,0x37,0x34, + 0x37,0x2c,0x38,0x2e,0x35,0x31,0x32,0x63,0x30,0x2c, + 0x30,0x2c,0x32,0x31,0x2e,0x34,0x38,0x33,0x2c,0x30, + 0x2c,0x32,0x31,0x2e,0x35,0x30,0x37,0x2c,0x30,0x63, + 0x34,0x2e,0x33,0x31,0x33,0x2c,0x30,0x2c,0x37,0x2e, + 0x38,0x30,0x37,0x2d,0x33,0x2e,0x38,0x31,0x32,0x2c, + 0x37,0x2e,0x38,0x30,0x37,0x2d,0x38,0x2e,0x35,0x31, + 0x32,0x0d,0x0a,0x09,0x09,0x43,0x33,0x37,0x2e,0x30, + 0x36,0x31,0x2c,0x31,0x33,0x2e,0x38,0x32,0x33,0x2c, + 0x33,0x33,0x2e,0x35,0x36,0x36,0x2c,0x31,0x30,0x2e, + 0x30,0x32,0x36,0x2c,0x32,0x39,0x2e,0x32,0x35,0x34, + 0x2c,0x31,0x30,0x2e,0x30,0x32,0x36,0x4c,0x32,0x39, + 0x2e,0x32,0x35,0x34,0x2c,0x31,0x30,0x2e,0x30,0x32, + 0x36,0x7a,0x22,0x2f,0x3e,0x0d,0x0a,0x3c,0x2f,0x67, + 0x3e,0x0d,0x0a,0x3c,0x2f,0x73,0x76,0x67,0x3e,0x0d, + 0x0a +}; diff --git a/data/converted/help_button_select_svg.cpp b/data/converted/help_button_select_svg.cpp new file mode 100644 index 000000000..703015aed --- /dev/null +++ b/data/converted/help_button_select_svg.cpp @@ -0,0 +1,197 @@ +//this file was auto-generated from "button_select.svg" by res2h + +#include "../Resources.h" + +const size_t help_button_select_svg_size = 1891; +const unsigned char help_button_select_svg_data[1891] = { + 0x3c,0x3f,0x78,0x6d,0x6c,0x20,0x76,0x65,0x72,0x73, + 0x69,0x6f,0x6e,0x3d,0x22,0x31,0x2e,0x30,0x22,0x20, + 0x65,0x6e,0x63,0x6f,0x64,0x69,0x6e,0x67,0x3d,0x22, + 0x75,0x74,0x66,0x2d,0x38,0x22,0x3f,0x3e,0x0d,0x0a, + 0x3c,0x21,0x2d,0x2d,0x20,0x47,0x65,0x6e,0x65,0x72, + 0x61,0x74,0x6f,0x72,0x3a,0x20,0x41,0x64,0x6f,0x62, + 0x65,0x20,0x49,0x6c,0x6c,0x75,0x73,0x74,0x72,0x61, + 0x74,0x6f,0x72,0x20,0x31,0x36,0x2e,0x30,0x2e,0x33, + 0x2c,0x20,0x53,0x56,0x47,0x20,0x45,0x78,0x70,0x6f, + 0x72,0x74,0x20,0x50,0x6c,0x75,0x67,0x2d,0x49,0x6e, + 0x20,0x2e,0x20,0x53,0x56,0x47,0x20,0x56,0x65,0x72, + 0x73,0x69,0x6f,0x6e,0x3a,0x20,0x36,0x2e,0x30,0x30, + 0x20,0x42,0x75,0x69,0x6c,0x64,0x20,0x30,0x29,0x20, + 0x20,0x2d,0x2d,0x3e,0x0d,0x0a,0x3c,0x21,0x44,0x4f, + 0x43,0x54,0x59,0x50,0x45,0x20,0x73,0x76,0x67,0x20, + 0x50,0x55,0x42,0x4c,0x49,0x43,0x20,0x22,0x2d,0x2f, + 0x2f,0x57,0x33,0x43,0x2f,0x2f,0x44,0x54,0x44,0x20, + 0x53,0x56,0x47,0x20,0x31,0x2e,0x31,0x2f,0x2f,0x45, + 0x4e,0x22,0x20,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f, + 0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72, + 0x67,0x2f,0x47,0x72,0x61,0x70,0x68,0x69,0x63,0x73, + 0x2f,0x53,0x56,0x47,0x2f,0x31,0x2e,0x31,0x2f,0x44, + 0x54,0x44,0x2f,0x73,0x76,0x67,0x31,0x31,0x2e,0x64, + 0x74,0x64,0x22,0x3e,0x0d,0x0a,0x3c,0x73,0x76,0x67, + 0x20,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x3d,0x22, + 0x31,0x2e,0x31,0x22,0x20,0x69,0x64,0x3d,0x22,0x5f, + 0x78,0x33,0x30,0x5f,0x22,0x20,0x78,0x6d,0x6c,0x6e, + 0x73,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f, + 0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72,0x67, + 0x2f,0x32,0x30,0x30,0x30,0x2f,0x73,0x76,0x67,0x22, + 0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3a,0x78,0x6c,0x69, + 0x6e,0x6b,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f, + 0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72, + 0x67,0x2f,0x31,0x39,0x39,0x39,0x2f,0x78,0x6c,0x69, + 0x6e,0x6b,0x22,0x20,0x78,0x3d,0x22,0x30,0x70,0x78, + 0x22,0x20,0x79,0x3d,0x22,0x30,0x70,0x78,0x22,0x0d, + 0x0a,0x09,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x22, + 0x33,0x37,0x2e,0x30,0x36,0x31,0x70,0x78,0x22,0x20, + 0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x22,0x33,0x37, + 0x2e,0x30,0x36,0x31,0x70,0x78,0x22,0x20,0x76,0x69, + 0x65,0x77,0x42,0x6f,0x78,0x3d,0x22,0x30,0x20,0x30, + 0x20,0x33,0x37,0x2e,0x30,0x36,0x31,0x20,0x33,0x37, + 0x2e,0x30,0x36,0x31,0x22,0x20,0x65,0x6e,0x61,0x62, + 0x6c,0x65,0x2d,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f, + 0x75,0x6e,0x64,0x3d,0x22,0x6e,0x65,0x77,0x20,0x30, + 0x20,0x30,0x20,0x33,0x37,0x2e,0x30,0x36,0x31,0x20, + 0x33,0x37,0x2e,0x30,0x36,0x31,0x22,0x20,0x78,0x6d, + 0x6c,0x3a,0x73,0x70,0x61,0x63,0x65,0x3d,0x22,0x70, + 0x72,0x65,0x73,0x65,0x72,0x76,0x65,0x22,0x3e,0x0d, + 0x0a,0x3c,0x67,0x3e,0x0d,0x0a,0x09,0x3c,0x67,0x3e, + 0x0d,0x0a,0x09,0x09,0x3c,0x70,0x61,0x74,0x68,0x20, + 0x66,0x69,0x6c,0x6c,0x3d,0x22,0x23,0x46,0x46,0x46, + 0x46,0x46,0x46,0x22,0x20,0x64,0x3d,0x22,0x4d,0x33, + 0x33,0x2e,0x32,0x31,0x37,0x2c,0x31,0x39,0x2e,0x31, + 0x31,0x38,0x48,0x33,0x2e,0x38,0x34,0x35,0x43,0x31, + 0x2e,0x37,0x32,0x32,0x2c,0x31,0x39,0x2e,0x31,0x31, + 0x38,0x2c,0x30,0x2c,0x32,0x30,0x2e,0x38,0x39,0x2c, + 0x30,0x2c,0x32,0x33,0x2e,0x30,0x37,0x35,0x73,0x31, + 0x2e,0x37,0x32,0x32,0x2c,0x33,0x2e,0x39,0x35,0x37, + 0x2c,0x33,0x2e,0x38,0x34,0x35,0x2c,0x33,0x2e,0x39, + 0x35,0x37,0x68,0x32,0x39,0x2e,0x33,0x37,0x32,0x0d, + 0x0a,0x09,0x09,0x09,0x63,0x32,0x2e,0x31,0x32,0x33, + 0x2c,0x30,0x2c,0x33,0x2e,0x38,0x34,0x34,0x2d,0x31, + 0x2e,0x37,0x37,0x31,0x2c,0x33,0x2e,0x38,0x34,0x34, + 0x2d,0x33,0x2e,0x39,0x35,0x37,0x43,0x33,0x37,0x2e, + 0x30,0x36,0x31,0x2c,0x32,0x30,0x2e,0x38,0x38,0x39, + 0x2c,0x33,0x35,0x2e,0x33,0x34,0x2c,0x31,0x39,0x2e, + 0x31,0x31,0x38,0x2c,0x33,0x33,0x2e,0x32,0x31,0x37, + 0x2c,0x31,0x39,0x2e,0x31,0x31,0x38,0x7a,0x22,0x2f, + 0x3e,0x0d,0x0a,0x09,0x3c,0x2f,0x67,0x3e,0x0d,0x0a, + 0x3c,0x2f,0x67,0x3e,0x0d,0x0a,0x3c,0x70,0x61,0x74, + 0x68,0x20,0x66,0x69,0x6c,0x6c,0x3d,0x22,0x23,0x46, + 0x46,0x46,0x46,0x46,0x46,0x22,0x20,0x64,0x3d,0x22, + 0x4d,0x33,0x33,0x2e,0x37,0x35,0x37,0x2c,0x31,0x35, + 0x2e,0x35,0x34,0x39,0x68,0x31,0x2e,0x31,0x38,0x36, + 0x56,0x39,0x2e,0x34,0x37,0x34,0x68,0x32,0x2e,0x31, + 0x32,0x34,0x56,0x38,0x2e,0x33,0x34,0x35,0x68,0x2d, + 0x35,0x2e,0x34,0x33,0x33,0x76,0x31,0x2e,0x31,0x32, + 0x38,0x68,0x32,0x2e,0x31,0x32,0x33,0x56,0x31,0x35, + 0x2e,0x35,0x34,0x39,0x7a,0x20,0x4d,0x33,0x30,0x2e, + 0x38,0x35,0x35,0x2c,0x31,0x31,0x2e,0x30,0x30,0x37, + 0x0d,0x0a,0x09,0x63,0x2d,0x30,0x2e,0x31,0x32,0x36, + 0x2d,0x31,0x2e,0x35,0x35,0x34,0x2d,0x31,0x2e,0x31, + 0x34,0x31,0x2d,0x32,0x2e,0x38,0x36,0x34,0x2d,0x33, + 0x2e,0x30,0x38,0x37,0x2d,0x32,0x2e,0x38,0x36,0x34, + 0x63,0x2d,0x32,0x2e,0x32,0x32,0x35,0x2c,0x30,0x2d, + 0x33,0x2e,0x31,0x36,0x32,0x2c,0x31,0x2e,0x37,0x37, + 0x33,0x2d,0x33,0x2e,0x31,0x36,0x32,0x2c,0x33,0x2e, + 0x38,0x30,0x35,0x63,0x30,0x2c,0x32,0x2e,0x30,0x32, + 0x36,0x2c,0x30,0x2e,0x39,0x37,0x39,0x2c,0x33,0x2e, + 0x38,0x30,0x34,0x2c,0x33,0x2e,0x30,0x32,0x31,0x2c, + 0x33,0x2e,0x38,0x30,0x34,0x0d,0x0a,0x09,0x63,0x32, + 0x2e,0x33,0x32,0x38,0x2c,0x30,0x2c,0x33,0x2e,0x30, + 0x36,0x33,0x2d,0x31,0x2e,0x35,0x32,0x31,0x2c,0x33, + 0x2e,0x32,0x32,0x39,0x2d,0x32,0x2e,0x39,0x35,0x38, + 0x68,0x2d,0x31,0x2e,0x32,0x38,0x63,0x2d,0x30,0x2e, + 0x30,0x39,0x39,0x2c,0x30,0x2e,0x37,0x35,0x37,0x2d, + 0x30,0x2e,0x35,0x31,0x2c,0x31,0x2e,0x38,0x32,0x39, + 0x2d,0x31,0x2e,0x37,0x34,0x33,0x2c,0x31,0x2e,0x38, + 0x32,0x39,0x63,0x2d,0x31,0x2e,0x31,0x37,0x35,0x2c, + 0x30,0x2d,0x31,0x2e,0x39,0x38,0x38,0x2d,0x31,0x2e, + 0x30,0x34,0x32,0x2d,0x31,0x2e,0x39,0x38,0x38,0x2d, + 0x32,0x2e,0x35,0x34,0x36,0x0d,0x0a,0x09,0x63,0x30, + 0x2d,0x31,0x2e,0x38,0x37,0x37,0x2c,0x30,0x2e,0x38, + 0x31,0x33,0x2d,0x32,0x2e,0x38,0x30,0x38,0x2c,0x31, + 0x2e,0x39,0x30,0x38,0x2d,0x32,0x2e,0x38,0x30,0x38, + 0x63,0x30,0x2e,0x39,0x39,0x39,0x2c,0x30,0x2c,0x31, + 0x2e,0x37,0x30,0x34,0x2c,0x30,0x2e,0x36,0x34,0x36, + 0x2c,0x31,0x2e,0x38,0x32,0x33,0x2c,0x31,0x2e,0x37, + 0x33,0x37,0x4c,0x33,0x30,0x2e,0x38,0x35,0x35,0x2c, + 0x31,0x31,0x2e,0x30,0x30,0x37,0x4c,0x33,0x30,0x2e, + 0x38,0x35,0x35,0x2c,0x31,0x31,0x2e,0x30,0x30,0x37, + 0x7a,0x20,0x4d,0x31,0x38,0x2e,0x36,0x35,0x39,0x2c, + 0x31,0x35,0x2e,0x35,0x34,0x39,0x68,0x34,0x2e,0x39, + 0x37,0x33,0x56,0x31,0x34,0x2e,0x34,0x32,0x68,0x2d, + 0x33,0x2e,0x37,0x38,0x36,0x0d,0x0a,0x09,0x76,0x2d, + 0x31,0x2e,0x39,0x39,0x38,0x68,0x33,0x2e,0x35,0x37, + 0x33,0x76,0x2d,0x31,0x2e,0x31,0x32,0x39,0x68,0x2d, + 0x33,0x2e,0x35,0x37,0x33,0x56,0x39,0x2e,0x34,0x37, + 0x34,0x68,0x33,0x2e,0x37,0x32,0x31,0x56,0x38,0x2e, + 0x33,0x34,0x35,0x48,0x31,0x38,0x2e,0x36,0x36,0x4c, + 0x31,0x38,0x2e,0x36,0x35,0x39,0x2c,0x31,0x35,0x2e, + 0x35,0x34,0x39,0x4c,0x31,0x38,0x2e,0x36,0x35,0x39, + 0x2c,0x31,0x35,0x2e,0x35,0x34,0x39,0x7a,0x20,0x4d, + 0x31,0x32,0x2e,0x39,0x37,0x39,0x2c,0x31,0x35,0x2e, + 0x35,0x34,0x39,0x68,0x34,0x2e,0x36,0x32,0x35,0x76, + 0x2d,0x31,0x2e,0x31,0x38,0x38,0x68,0x2d,0x33,0x2e, + 0x34,0x33,0x37,0x56,0x38,0x2e,0x33,0x34,0x35,0x0d, + 0x0a,0x09,0x68,0x2d,0x31,0x2e,0x31,0x38,0x38,0x56, + 0x31,0x35,0x2e,0x35,0x34,0x39,0x7a,0x20,0x4d,0x36, + 0x2e,0x37,0x31,0x34,0x2c,0x31,0x35,0x2e,0x35,0x34, + 0x39,0x68,0x34,0x2e,0x39,0x37,0x34,0x56,0x31,0x34, + 0x2e,0x34,0x32,0x48,0x37,0x2e,0x39,0x30,0x32,0x76, + 0x2d,0x31,0x2e,0x39,0x39,0x38,0x68,0x33,0x2e,0x35, + 0x37,0x32,0x76,0x2d,0x31,0x2e,0x31,0x32,0x39,0x48, + 0x37,0x2e,0x39,0x30,0x32,0x56,0x39,0x2e,0x34,0x37, + 0x34,0x68,0x33,0x2e,0x37,0x32,0x36,0x56,0x38,0x2e, + 0x33,0x34,0x35,0x48,0x36,0x2e,0x37,0x31,0x34,0x56, + 0x31,0x35,0x2e,0x35,0x34,0x39,0x7a,0x20,0x4d,0x30, + 0x2e,0x31,0x34,0x39,0x2c,0x31,0x30,0x2e,0x33,0x37, + 0x32,0x0d,0x0a,0x09,0x63,0x30,0x2c,0x32,0x2e,0x39, + 0x35,0x35,0x2c,0x34,0x2e,0x31,0x36,0x37,0x2c,0x31, + 0x2e,0x33,0x39,0x38,0x2c,0x34,0x2e,0x31,0x36,0x37, + 0x2c,0x33,0x2e,0x31,0x38,0x36,0x63,0x30,0x2c,0x30, + 0x2e,0x37,0x39,0x32,0x2d,0x30,0x2e,0x36,0x37,0x33, + 0x2c,0x31,0x2e,0x30,0x36,0x34,0x2d,0x31,0x2e,0x33, + 0x39,0x35,0x2c,0x31,0x2e,0x30,0x36,0x34,0x63,0x2d, + 0x30,0x2e,0x39,0x37,0x36,0x2c,0x30,0x2d,0x31,0x2e, + 0x35,0x39,0x31,0x2d,0x30,0x2e,0x34,0x35,0x36,0x2d, + 0x31,0x2e,0x36,0x32,0x34,0x2d,0x31,0x2e,0x34,0x30, + 0x37,0x48,0x30,0x2e,0x30,0x31,0x35,0x0d,0x0a,0x09, + 0x43,0x30,0x2e,0x30,0x33,0x2c,0x31,0x34,0x2e,0x37, + 0x33,0x2c,0x30,0x2e,0x38,0x34,0x36,0x2c,0x31,0x35, + 0x2e,0x37,0x35,0x2c,0x32,0x2e,0x38,0x38,0x32,0x2c, + 0x31,0x35,0x2e,0x37,0x35,0x63,0x31,0x2e,0x32,0x30, + 0x35,0x2c,0x30,0x2c,0x32,0x2e,0x37,0x31,0x36,0x2d, + 0x30,0x2e,0x34,0x38,0x34,0x2c,0x32,0x2e,0x37,0x31, + 0x36,0x2d,0x32,0x2e,0x33,0x34,0x33,0x63,0x30,0x2d, + 0x33,0x2e,0x30,0x37,0x37,0x2d,0x34,0x2e,0x32,0x31, + 0x33,0x2d,0x31,0x2e,0x34,0x35,0x35,0x2d,0x34,0x2e, + 0x32,0x31,0x33,0x2d,0x33,0x2e,0x31,0x34,0x36,0x0d, + 0x0a,0x09,0x63,0x30,0x2d,0x30,0x2e,0x36,0x37,0x37, + 0x2c,0x30,0x2e,0x35,0x32,0x33,0x2d,0x30,0x2e,0x39, + 0x39,0x31,0x2c,0x31,0x2e,0x33,0x31,0x33,0x2d,0x30, + 0x2e,0x39,0x39,0x31,0x63,0x30,0x2e,0x39,0x39,0x2c, + 0x30,0x2c,0x31,0x2e,0x33,0x38,0x38,0x2c,0x30,0x2e, + 0x36,0x30,0x35,0x2c,0x31,0x2e,0x34,0x32,0x38,0x2c, + 0x31,0x2e,0x31,0x36,0x33,0x48,0x35,0x2e,0x34,0x31, + 0x63,0x2d,0x30,0x2e,0x31,0x35,0x32,0x2d,0x32,0x2e, + 0x30,0x39,0x31,0x2d,0x31,0x2e,0x38,0x39,0x36,0x2d, + 0x32,0x2e,0x32,0x39,0x2d,0x32,0x2e,0x37,0x36,0x37, + 0x2d,0x32,0x2e,0x32,0x39,0x0d,0x0a,0x09,0x43,0x31, + 0x2e,0x32,0x36,0x36,0x2c,0x38,0x2e,0x31,0x34,0x33, + 0x2c,0x30,0x2e,0x31,0x34,0x39,0x2c,0x38,0x2e,0x37, + 0x36,0x37,0x2c,0x30,0x2e,0x31,0x34,0x39,0x2c,0x31, + 0x30,0x2e,0x33,0x37,0x32,0x22,0x2f,0x3e,0x0d,0x0a, + 0x3c,0x67,0x20,0x6f,0x70,0x61,0x63,0x69,0x74,0x79, + 0x3d,0x22,0x30,0x22,0x3e,0x0d,0x0a,0x09,0x3c,0x70, + 0x61,0x74,0x68,0x20,0x66,0x69,0x6c,0x6c,0x3d,0x22, + 0x23,0x46,0x46,0x46,0x46,0x46,0x46,0x22,0x20,0x64, + 0x3d,0x22,0x4d,0x33,0x36,0x2e,0x39,0x36,0x31,0x2c, + 0x30,0x2e,0x31,0x76,0x33,0x36,0x2e,0x38,0x36,0x31, + 0x48,0x30,0x2e,0x31,0x56,0x30,0x2e,0x31,0x48,0x33, + 0x36,0x2e,0x39,0x36,0x31,0x20,0x4d,0x33,0x37,0x2e, + 0x30,0x36,0x31,0x2c,0x30,0x48,0x30,0x76,0x33,0x37, + 0x2e,0x30,0x36,0x68,0x33,0x37,0x2e,0x30,0x36,0x31, + 0x56,0x30,0x4c,0x33,0x37,0x2e,0x30,0x36,0x31,0x2c, + 0x30,0x7a,0x22,0x2f,0x3e,0x0d,0x0a,0x3c,0x2f,0x67, + 0x3e,0x0d,0x0a,0x3c,0x2f,0x73,0x76,0x67,0x3e,0x0d, + 0x0a +}; diff --git a/data/converted/help_button_start_svg.cpp b/data/converted/help_button_start_svg.cpp new file mode 100644 index 000000000..8eac86483 --- /dev/null +++ b/data/converted/help_button_start_svg.cpp @@ -0,0 +1,187 @@ +//this file was auto-generated from "button_start.svg" by res2h + +#include "../Resources.h" + +const size_t help_button_start_svg_size = 1791; +const unsigned char help_button_start_svg_data[1791] = { + 0x3c,0x3f,0x78,0x6d,0x6c,0x20,0x76,0x65,0x72,0x73, + 0x69,0x6f,0x6e,0x3d,0x22,0x31,0x2e,0x30,0x22,0x20, + 0x65,0x6e,0x63,0x6f,0x64,0x69,0x6e,0x67,0x3d,0x22, + 0x75,0x74,0x66,0x2d,0x38,0x22,0x3f,0x3e,0x0d,0x0a, + 0x3c,0x21,0x2d,0x2d,0x20,0x47,0x65,0x6e,0x65,0x72, + 0x61,0x74,0x6f,0x72,0x3a,0x20,0x41,0x64,0x6f,0x62, + 0x65,0x20,0x49,0x6c,0x6c,0x75,0x73,0x74,0x72,0x61, + 0x74,0x6f,0x72,0x20,0x31,0x36,0x2e,0x30,0x2e,0x33, + 0x2c,0x20,0x53,0x56,0x47,0x20,0x45,0x78,0x70,0x6f, + 0x72,0x74,0x20,0x50,0x6c,0x75,0x67,0x2d,0x49,0x6e, + 0x20,0x2e,0x20,0x53,0x56,0x47,0x20,0x56,0x65,0x72, + 0x73,0x69,0x6f,0x6e,0x3a,0x20,0x36,0x2e,0x30,0x30, + 0x20,0x42,0x75,0x69,0x6c,0x64,0x20,0x30,0x29,0x20, + 0x20,0x2d,0x2d,0x3e,0x0d,0x0a,0x3c,0x21,0x44,0x4f, + 0x43,0x54,0x59,0x50,0x45,0x20,0x73,0x76,0x67,0x20, + 0x50,0x55,0x42,0x4c,0x49,0x43,0x20,0x22,0x2d,0x2f, + 0x2f,0x57,0x33,0x43,0x2f,0x2f,0x44,0x54,0x44,0x20, + 0x53,0x56,0x47,0x20,0x31,0x2e,0x31,0x2f,0x2f,0x45, + 0x4e,0x22,0x20,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f, + 0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72, + 0x67,0x2f,0x47,0x72,0x61,0x70,0x68,0x69,0x63,0x73, + 0x2f,0x53,0x56,0x47,0x2f,0x31,0x2e,0x31,0x2f,0x44, + 0x54,0x44,0x2f,0x73,0x76,0x67,0x31,0x31,0x2e,0x64, + 0x74,0x64,0x22,0x3e,0x0d,0x0a,0x3c,0x73,0x76,0x67, + 0x20,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x3d,0x22, + 0x31,0x2e,0x31,0x22,0x20,0x69,0x64,0x3d,0x22,0x5f, + 0x78,0x33,0x30,0x5f,0x22,0x20,0x78,0x6d,0x6c,0x6e, + 0x73,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f, + 0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72,0x67, + 0x2f,0x32,0x30,0x30,0x30,0x2f,0x73,0x76,0x67,0x22, + 0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3a,0x78,0x6c,0x69, + 0x6e,0x6b,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f, + 0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72, + 0x67,0x2f,0x31,0x39,0x39,0x39,0x2f,0x78,0x6c,0x69, + 0x6e,0x6b,0x22,0x20,0x78,0x3d,0x22,0x30,0x70,0x78, + 0x22,0x20,0x79,0x3d,0x22,0x30,0x70,0x78,0x22,0x0d, + 0x0a,0x09,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x22, + 0x33,0x37,0x2e,0x30,0x36,0x31,0x70,0x78,0x22,0x20, + 0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x22,0x33,0x37, + 0x2e,0x30,0x36,0x31,0x70,0x78,0x22,0x20,0x76,0x69, + 0x65,0x77,0x42,0x6f,0x78,0x3d,0x22,0x30,0x20,0x30, + 0x20,0x33,0x37,0x2e,0x30,0x36,0x31,0x20,0x33,0x37, + 0x2e,0x30,0x36,0x31,0x22,0x20,0x65,0x6e,0x61,0x62, + 0x6c,0x65,0x2d,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f, + 0x75,0x6e,0x64,0x3d,0x22,0x6e,0x65,0x77,0x20,0x30, + 0x20,0x30,0x20,0x33,0x37,0x2e,0x30,0x36,0x31,0x20, + 0x33,0x37,0x2e,0x30,0x36,0x31,0x22,0x20,0x78,0x6d, + 0x6c,0x3a,0x73,0x70,0x61,0x63,0x65,0x3d,0x22,0x70, + 0x72,0x65,0x73,0x65,0x72,0x76,0x65,0x22,0x3e,0x0d, + 0x0a,0x3c,0x70,0x61,0x74,0x68,0x20,0x66,0x69,0x6c, + 0x6c,0x3d,0x22,0x23,0x46,0x46,0x46,0x46,0x46,0x46, + 0x22,0x20,0x64,0x3d,0x22,0x4d,0x33,0x33,0x2e,0x30, + 0x36,0x35,0x2c,0x31,0x35,0x2e,0x35,0x34,0x38,0x68, + 0x31,0x2e,0x34,0x33,0x38,0x56,0x39,0x2e,0x34,0x37, + 0x31,0x68,0x32,0x2e,0x35,0x36,0x33,0x76,0x2d,0x31, + 0x2e,0x31,0x33,0x68,0x2d,0x36,0x2e,0x35,0x36,0x33, + 0x76,0x31,0x2e,0x31,0x33,0x68,0x32,0x2e,0x35,0x36, + 0x33,0x4c,0x33,0x33,0x2e,0x30,0x36,0x35,0x2c,0x31, + 0x35,0x2e,0x35,0x34,0x38,0x4c,0x33,0x33,0x2e,0x30, + 0x36,0x35,0x2c,0x31,0x35,0x2e,0x35,0x34,0x38,0x7a, + 0x20,0x4d,0x32,0x34,0x2e,0x33,0x35,0x31,0x2c,0x31, + 0x31,0x2e,0x35,0x37,0x33,0x0d,0x0a,0x09,0x56,0x39, + 0x2e,0x34,0x37,0x31,0x68,0x32,0x2e,0x34,0x38,0x32, + 0x63,0x30,0x2e,0x37,0x35,0x35,0x2c,0x30,0x2c,0x31, + 0x2e,0x32,0x32,0x36,0x2c,0x30,0x2e,0x32,0x39,0x32, + 0x2c,0x31,0x2e,0x32,0x32,0x36,0x2c,0x31,0x2e,0x30, + 0x33,0x39,0x63,0x30,0x2c,0x30,0x2e,0x38,0x30,0x38, + 0x2d,0x30,0x2e,0x34,0x33,0x32,0x2c,0x31,0x2e,0x30, + 0x36,0x33,0x2d,0x31,0x2e,0x32,0x32,0x36,0x2c,0x31, + 0x2e,0x30,0x36,0x33,0x48,0x32,0x34,0x2e,0x33,0x35, + 0x31,0x7a,0x20,0x4d,0x32,0x32,0x2e,0x39,0x31,0x37, + 0x2c,0x31,0x35,0x2e,0x35,0x34,0x38,0x68,0x31,0x2e, + 0x34,0x33,0x34,0x76,0x2d,0x32,0x2e,0x38,0x34,0x36, + 0x68,0x32,0x2e,0x34,0x34,0x33,0x0d,0x0a,0x09,0x63, + 0x31,0x2e,0x30,0x35,0x33,0x2c,0x30,0x2c,0x31,0x2e, + 0x31,0x38,0x38,0x2c,0x30,0x2e,0x37,0x32,0x37,0x2c, + 0x31,0x2e,0x31,0x38,0x38,0x2c,0x31,0x2e,0x37,0x35, + 0x35,0x63,0x30,0x2c,0x30,0x2e,0x35,0x32,0x36,0x2c, + 0x30,0x2e,0x30,0x36,0x38,0x2c,0x30,0x2e,0x38,0x39, + 0x2c,0x30,0x2e,0x31,0x37,0x34,0x2c,0x31,0x2e,0x30, + 0x39,0x31,0x68,0x31,0x2e,0x35,0x35,0x32,0x63,0x2d, + 0x30,0x2e,0x32,0x38,0x31,0x2d,0x30,0x2e,0x33,0x39, + 0x35,0x2d,0x30,0x2e,0x32,0x39,0x2d,0x31,0x2e,0x31, + 0x39,0x39,0x2d,0x30,0x2e,0x32,0x39,0x2d,0x31,0x2e, + 0x35,0x34,0x36,0x0d,0x0a,0x09,0x63,0x30,0x2d,0x31, + 0x2e,0x30,0x31,0x39,0x2d,0x30,0x2e,0x31,0x38,0x2d, + 0x31,0x2e,0x37,0x36,0x36,0x2d,0x30,0x2e,0x39,0x39, + 0x34,0x2d,0x31,0x2e,0x39,0x34,0x35,0x76,0x2d,0x30, + 0x2e,0x30,0x32,0x31,0x63,0x30,0x2e,0x36,0x34,0x33, + 0x2d,0x30,0x2e,0x32,0x31,0x31,0x2c,0x31,0x2e,0x31, + 0x32,0x38,0x2d,0x30,0x2e,0x37,0x39,0x37,0x2c,0x31, + 0x2e,0x31,0x32,0x38,0x2d,0x31,0x2e,0x37,0x33,0x37, + 0x63,0x30,0x2d,0x31,0x2e,0x31,0x31,0x39,0x2d,0x30, + 0x2e,0x35,0x36,0x33,0x2d,0x31,0x2e,0x39,0x35,0x34, + 0x2d,0x32,0x2e,0x33,0x30,0x35,0x2d,0x31,0x2e,0x39, + 0x35,0x34,0x68,0x2d,0x34,0x2e,0x33,0x32,0x37,0x4c, + 0x32,0x32,0x2e,0x39,0x31,0x37,0x2c,0x31,0x35,0x2e, + 0x35,0x34,0x38,0x0d,0x0a,0x09,0x4c,0x32,0x32,0x2e, + 0x39,0x31,0x37,0x2c,0x31,0x35,0x2e,0x35,0x34,0x38, + 0x7a,0x20,0x4d,0x31,0x34,0x2e,0x30,0x33,0x32,0x2c, + 0x31,0x35,0x2e,0x35,0x34,0x38,0x68,0x31,0x2e,0x35, + 0x35,0x31,0x6c,0x30,0x2e,0x37,0x30,0x38,0x2d,0x31, + 0x2e,0x37,0x38,0x36,0x68,0x33,0x2e,0x32,0x31,0x37, + 0x6c,0x30,0x2e,0x37,0x31,0x38,0x2c,0x31,0x2e,0x37, + 0x38,0x36,0x68,0x31,0x2e,0x36,0x30,0x33,0x6c,0x2d, + 0x33,0x2e,0x30,0x34,0x35,0x2d,0x37,0x2e,0x32,0x30, + 0x37,0x68,0x2d,0x31,0x2e,0x37,0x30,0x34,0x4c,0x31, + 0x34,0x2e,0x30,0x33,0x32,0x2c,0x31,0x35,0x2e,0x35, + 0x34,0x38,0x7a,0x20,0x4d,0x31,0x36,0x2e,0x37,0x32, + 0x33,0x2c,0x31,0x32,0x2e,0x36,0x33,0x32,0x0d,0x0a, + 0x09,0x4c,0x31,0x37,0x2e,0x39,0x31,0x2c,0x39,0x2e, + 0x35,0x39,0x6c,0x31,0x2e,0x31,0x36,0x38,0x2c,0x33, + 0x2e,0x30,0x34,0x32,0x48,0x31,0x36,0x2e,0x37,0x32, + 0x33,0x7a,0x20,0x4d,0x39,0x2e,0x39,0x39,0x32,0x2c, + 0x31,0x35,0x2e,0x35,0x34,0x38,0x68,0x31,0x2e,0x34, + 0x33,0x34,0x56,0x39,0x2e,0x34,0x37,0x31,0x68,0x32, + 0x2e,0x35,0x36,0x37,0x76,0x2d,0x31,0x2e,0x31,0x33, + 0x48,0x37,0x2e,0x34,0x32,0x35,0x76,0x31,0x2e,0x31, + 0x33,0x68,0x32,0x2e,0x35,0x36,0x37,0x56,0x31,0x35, + 0x2e,0x35,0x34,0x38,0x7a,0x20,0x4d,0x30,0x2e,0x31, + 0x38,0x37,0x2c,0x31,0x30,0x2e,0x33,0x36,0x38,0x0d, + 0x0a,0x09,0x63,0x30,0x2c,0x32,0x2e,0x39,0x35,0x36, + 0x2c,0x35,0x2e,0x30,0x33,0x36,0x2c,0x31,0x2e,0x34, + 0x2c,0x35,0x2e,0x30,0x33,0x36,0x2c,0x33,0x2e,0x31, + 0x38,0x38,0x63,0x30,0x2c,0x30,0x2e,0x37,0x39,0x32, + 0x2d,0x30,0x2e,0x38,0x31,0x33,0x2c,0x31,0x2e,0x30, + 0x36,0x34,0x2d,0x31,0x2e,0x36,0x38,0x34,0x2c,0x31, + 0x2e,0x30,0x36,0x34,0x63,0x2d,0x31,0x2e,0x31,0x37, + 0x39,0x2c,0x30,0x2d,0x31,0x2e,0x39,0x32,0x33,0x2d, + 0x30,0x2e,0x34,0x35,0x36,0x2d,0x31,0x2e,0x39,0x36, + 0x33,0x2d,0x31,0x2e,0x34,0x30,0x37,0x48,0x30,0x2e, + 0x30,0x32,0x36,0x0d,0x0a,0x09,0x63,0x30,0x2e,0x30, + 0x32,0x31,0x2c,0x31,0x2e,0x35,0x31,0x36,0x2c,0x31, + 0x2e,0x30,0x30,0x35,0x2c,0x32,0x2e,0x35,0x33,0x38, + 0x2c,0x33,0x2e,0x34,0x36,0x39,0x2c,0x32,0x2e,0x35, + 0x33,0x38,0x63,0x31,0x2e,0x34,0x35,0x35,0x2c,0x30, + 0x2c,0x33,0x2e,0x32,0x38,0x2d,0x30,0x2e,0x34,0x38, + 0x36,0x2c,0x33,0x2e,0x32,0x38,0x2d,0x32,0x2e,0x33, + 0x34,0x35,0x63,0x30,0x2d,0x33,0x2e,0x30,0x37,0x39, + 0x2d,0x35,0x2e,0x30,0x39,0x33,0x2d,0x31,0x2e,0x34, + 0x35,0x34,0x2d,0x35,0x2e,0x30,0x39,0x33,0x2d,0x33, + 0x2e,0x31,0x34,0x38,0x0d,0x0a,0x09,0x63,0x30,0x2d, + 0x30,0x2e,0x36,0x37,0x36,0x2c,0x30,0x2e,0x36,0x33, + 0x32,0x2d,0x30,0x2e,0x39,0x38,0x38,0x2c,0x31,0x2e, + 0x35,0x38,0x39,0x2d,0x30,0x2e,0x39,0x38,0x38,0x63, + 0x31,0x2e,0x31,0x39,0x36,0x2c,0x30,0x2c,0x31,0x2e, + 0x36,0x37,0x36,0x2c,0x30,0x2e,0x36,0x30,0x34,0x2c, + 0x31,0x2e,0x37,0x32,0x36,0x2c,0x31,0x2e,0x31,0x36, + 0x31,0x68,0x31,0x2e,0x35,0x35,0x31,0x63,0x2d,0x30, + 0x2e,0x31,0x38,0x35,0x2d,0x32,0x2e,0x30,0x39,0x33, + 0x2d,0x32,0x2e,0x32,0x39,0x2d,0x32,0x2e,0x32,0x39, + 0x32,0x2d,0x33,0x2e,0x33,0x34,0x35,0x2d,0x32,0x2e, + 0x32,0x39,0x32,0x0d,0x0a,0x09,0x43,0x31,0x2e,0x35, + 0x33,0x36,0x2c,0x38,0x2e,0x31,0x33,0x39,0x2c,0x30, + 0x2e,0x31,0x38,0x37,0x2c,0x38,0x2e,0x37,0x36,0x32, + 0x2c,0x30,0x2e,0x31,0x38,0x37,0x2c,0x31,0x30,0x2e, + 0x33,0x36,0x38,0x22,0x2f,0x3e,0x0d,0x0a,0x3c,0x67, + 0x3e,0x0d,0x0a,0x09,0x3c,0x67,0x3e,0x0d,0x0a,0x09, + 0x09,0x3c,0x70,0x61,0x74,0x68,0x20,0x66,0x69,0x6c, + 0x6c,0x3d,0x22,0x23,0x46,0x46,0x46,0x46,0x46,0x46, + 0x22,0x20,0x64,0x3d,0x22,0x4d,0x33,0x33,0x2e,0x32, + 0x31,0x37,0x2c,0x31,0x39,0x2e,0x31,0x31,0x38,0x48, + 0x33,0x2e,0x38,0x34,0x35,0x43,0x31,0x2e,0x37,0x32, + 0x32,0x2c,0x31,0x39,0x2e,0x31,0x31,0x38,0x2c,0x30, + 0x2c,0x32,0x30,0x2e,0x38,0x39,0x2c,0x30,0x2c,0x32, + 0x33,0x2e,0x30,0x37,0x35,0x73,0x31,0x2e,0x37,0x32, + 0x32,0x2c,0x33,0x2e,0x39,0x35,0x37,0x2c,0x33,0x2e, + 0x38,0x34,0x35,0x2c,0x33,0x2e,0x39,0x35,0x37,0x68, + 0x32,0x39,0x2e,0x33,0x37,0x32,0x0d,0x0a,0x09,0x09, + 0x09,0x63,0x32,0x2e,0x31,0x32,0x33,0x2c,0x30,0x2c, + 0x33,0x2e,0x38,0x34,0x34,0x2d,0x31,0x2e,0x37,0x37, + 0x31,0x2c,0x33,0x2e,0x38,0x34,0x34,0x2d,0x33,0x2e, + 0x39,0x35,0x37,0x43,0x33,0x37,0x2e,0x30,0x36,0x31, + 0x2c,0x32,0x30,0x2e,0x38,0x38,0x39,0x2c,0x33,0x35, + 0x2e,0x33,0x34,0x2c,0x31,0x39,0x2e,0x31,0x31,0x38, + 0x2c,0x33,0x33,0x2e,0x32,0x31,0x37,0x2c,0x31,0x39, + 0x2e,0x31,0x31,0x38,0x7a,0x22,0x2f,0x3e,0x0d,0x0a, + 0x09,0x3c,0x2f,0x67,0x3e,0x0d,0x0a,0x3c,0x2f,0x67, + 0x3e,0x0d,0x0a,0x3c,0x2f,0x73,0x76,0x67,0x3e,0x0d, + 0x0a +}; diff --git a/data/converted/help_button_x_svg.cpp b/data/converted/help_button_x_svg.cpp new file mode 100644 index 000000000..764cfc39f --- /dev/null +++ b/data/converted/help_button_x_svg.cpp @@ -0,0 +1,104 @@ +//this file was auto-generated from "button_x.svg" by res2h + +#include "../Resources.h" + +const size_t help_button_x_svg_size = 965; +const unsigned char help_button_x_svg_data[965] = { + 0x3c,0x3f,0x78,0x6d,0x6c,0x20,0x76,0x65,0x72,0x73, + 0x69,0x6f,0x6e,0x3d,0x22,0x31,0x2e,0x30,0x22,0x20, + 0x65,0x6e,0x63,0x6f,0x64,0x69,0x6e,0x67,0x3d,0x22, + 0x75,0x74,0x66,0x2d,0x38,0x22,0x3f,0x3e,0x0d,0x0a, + 0x3c,0x21,0x2d,0x2d,0x20,0x47,0x65,0x6e,0x65,0x72, + 0x61,0x74,0x6f,0x72,0x3a,0x20,0x41,0x64,0x6f,0x62, + 0x65,0x20,0x49,0x6c,0x6c,0x75,0x73,0x74,0x72,0x61, + 0x74,0x6f,0x72,0x20,0x31,0x36,0x2e,0x30,0x2e,0x33, + 0x2c,0x20,0x53,0x56,0x47,0x20,0x45,0x78,0x70,0x6f, + 0x72,0x74,0x20,0x50,0x6c,0x75,0x67,0x2d,0x49,0x6e, + 0x20,0x2e,0x20,0x53,0x56,0x47,0x20,0x56,0x65,0x72, + 0x73,0x69,0x6f,0x6e,0x3a,0x20,0x36,0x2e,0x30,0x30, + 0x20,0x42,0x75,0x69,0x6c,0x64,0x20,0x30,0x29,0x20, + 0x20,0x2d,0x2d,0x3e,0x0d,0x0a,0x3c,0x21,0x44,0x4f, + 0x43,0x54,0x59,0x50,0x45,0x20,0x73,0x76,0x67,0x20, + 0x50,0x55,0x42,0x4c,0x49,0x43,0x20,0x22,0x2d,0x2f, + 0x2f,0x57,0x33,0x43,0x2f,0x2f,0x44,0x54,0x44,0x20, + 0x53,0x56,0x47,0x20,0x31,0x2e,0x31,0x2f,0x2f,0x45, + 0x4e,0x22,0x20,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f, + 0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72, + 0x67,0x2f,0x47,0x72,0x61,0x70,0x68,0x69,0x63,0x73, + 0x2f,0x53,0x56,0x47,0x2f,0x31,0x2e,0x31,0x2f,0x44, + 0x54,0x44,0x2f,0x73,0x76,0x67,0x31,0x31,0x2e,0x64, + 0x74,0x64,0x22,0x3e,0x0d,0x0a,0x3c,0x73,0x76,0x67, + 0x20,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x3d,0x22, + 0x31,0x2e,0x31,0x22,0x20,0x69,0x64,0x3d,0x22,0x5f, + 0x78,0x33,0x30,0x5f,0x22,0x20,0x78,0x6d,0x6c,0x6e, + 0x73,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f, + 0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72,0x67, + 0x2f,0x32,0x30,0x30,0x30,0x2f,0x73,0x76,0x67,0x22, + 0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3a,0x78,0x6c,0x69, + 0x6e,0x6b,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f, + 0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72, + 0x67,0x2f,0x31,0x39,0x39,0x39,0x2f,0x78,0x6c,0x69, + 0x6e,0x6b,0x22,0x20,0x78,0x3d,0x22,0x30,0x70,0x78, + 0x22,0x20,0x79,0x3d,0x22,0x30,0x70,0x78,0x22,0x0d, + 0x0a,0x09,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x22, + 0x33,0x37,0x2e,0x30,0x36,0x31,0x70,0x78,0x22,0x20, + 0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x22,0x33,0x37, + 0x2e,0x30,0x36,0x31,0x70,0x78,0x22,0x20,0x76,0x69, + 0x65,0x77,0x42,0x6f,0x78,0x3d,0x22,0x30,0x20,0x30, + 0x20,0x33,0x37,0x2e,0x30,0x36,0x31,0x20,0x33,0x37, + 0x2e,0x30,0x36,0x31,0x22,0x20,0x65,0x6e,0x61,0x62, + 0x6c,0x65,0x2d,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f, + 0x75,0x6e,0x64,0x3d,0x22,0x6e,0x65,0x77,0x20,0x30, + 0x20,0x30,0x20,0x33,0x37,0x2e,0x30,0x36,0x31,0x20, + 0x33,0x37,0x2e,0x30,0x36,0x31,0x22,0x20,0x78,0x6d, + 0x6c,0x3a,0x73,0x70,0x61,0x63,0x65,0x3d,0x22,0x70, + 0x72,0x65,0x73,0x65,0x72,0x76,0x65,0x22,0x3e,0x0d, + 0x0a,0x3c,0x67,0x3e,0x0d,0x0a,0x09,0x3c,0x67,0x3e, + 0x0d,0x0a,0x09,0x09,0x3c,0x70,0x61,0x74,0x68,0x20, + 0x66,0x69,0x6c,0x6c,0x3d,0x22,0x23,0x46,0x46,0x46, + 0x46,0x46,0x46,0x22,0x20,0x64,0x3d,0x22,0x4d,0x31, + 0x38,0x2e,0x35,0x33,0x2c,0x33,0x2e,0x30,0x32,0x39, + 0x63,0x2d,0x38,0x2e,0x35,0x36,0x31,0x2c,0x30,0x2d, + 0x31,0x35,0x2e,0x35,0x2c,0x36,0x2e,0x39,0x34,0x2d, + 0x31,0x35,0x2e,0x35,0x2c,0x31,0x35,0x2e,0x35,0x63, + 0x30,0x2c,0x38,0x2e,0x35,0x36,0x33,0x2c,0x36,0x2e, + 0x39,0x33,0x39,0x2c,0x31,0x35,0x2e,0x35,0x30,0x32, + 0x2c,0x31,0x35,0x2e,0x35,0x2c,0x31,0x35,0x2e,0x35, + 0x30,0x32,0x0d,0x0a,0x09,0x09,0x09,0x63,0x38,0x2e, + 0x35,0x36,0x33,0x2c,0x30,0x2c,0x31,0x35,0x2e,0x35, + 0x2d,0x36,0x2e,0x39,0x33,0x39,0x2c,0x31,0x35,0x2e, + 0x35,0x2d,0x31,0x35,0x2e,0x35,0x30,0x32,0x43,0x33, + 0x34,0x2e,0x30,0x33,0x2c,0x39,0x2e,0x39,0x37,0x2c, + 0x32,0x37,0x2e,0x30,0x39,0x31,0x2c,0x33,0x2e,0x30, + 0x32,0x39,0x2c,0x31,0x38,0x2e,0x35,0x33,0x2c,0x33, + 0x2e,0x30,0x32,0x39,0x7a,0x20,0x4d,0x32,0x31,0x2e, + 0x34,0x36,0x35,0x2c,0x32,0x34,0x2e,0x39,0x32,0x35, + 0x6c,0x2d,0x32,0x2e,0x36,0x30,0x37,0x2d,0x34,0x2e, + 0x38,0x37,0x6c,0x2d,0x32,0x2e,0x36,0x30,0x34,0x2c, + 0x34,0x2e,0x38,0x37,0x68,0x2d,0x33,0x2e,0x31,0x36, + 0x34,0x6c,0x34,0x2e,0x31,0x31,0x2d,0x36,0x2e,0x38, + 0x31,0x31,0x0d,0x0a,0x09,0x09,0x09,0x6c,0x2d,0x34, + 0x2e,0x30,0x31,0x2d,0x36,0x2e,0x36,0x39,0x38,0x68, + 0x33,0x2e,0x31,0x33,0x38,0x6c,0x32,0x2e,0x34,0x39, + 0x33,0x2c,0x34,0x2e,0x37,0x38,0x37,0x6c,0x32,0x2e, + 0x35,0x33,0x33,0x2d,0x34,0x2e,0x37,0x38,0x37,0x68, + 0x33,0x2e,0x31,0x35,0x34,0x4c,0x32,0x30,0x2e,0x35, + 0x2c,0x31,0x38,0x2e,0x31,0x31,0x35,0x6c,0x34,0x2e, + 0x32,0x34,0x2c,0x36,0x2e,0x38,0x31,0x31,0x48,0x32, + 0x31,0x2e,0x34,0x36,0x35,0x7a,0x22,0x2f,0x3e,0x0d, + 0x0a,0x09,0x3c,0x2f,0x67,0x3e,0x0d,0x0a,0x3c,0x2f, + 0x67,0x3e,0x0d,0x0a,0x3c,0x67,0x20,0x6f,0x70,0x61, + 0x63,0x69,0x74,0x79,0x3d,0x22,0x30,0x22,0x3e,0x0d, + 0x0a,0x09,0x3c,0x70,0x61,0x74,0x68,0x20,0x66,0x69, + 0x6c,0x6c,0x3d,0x22,0x23,0x46,0x46,0x46,0x46,0x46, + 0x46,0x22,0x20,0x64,0x3d,0x22,0x4d,0x33,0x36,0x2e, + 0x39,0x36,0x31,0x2c,0x30,0x2e,0x31,0x76,0x33,0x36, + 0x2e,0x38,0x36,0x31,0x48,0x30,0x2e,0x31,0x56,0x30, + 0x2e,0x31,0x48,0x33,0x36,0x2e,0x39,0x36,0x31,0x20, + 0x4d,0x33,0x37,0x2e,0x30,0x36,0x31,0x2c,0x30,0x48, + 0x30,0x76,0x33,0x37,0x2e,0x30,0x36,0x68,0x33,0x37, + 0x2e,0x30,0x36,0x31,0x56,0x30,0x4c,0x33,0x37,0x2e, + 0x30,0x36,0x31,0x2c,0x30,0x7a,0x22,0x2f,0x3e,0x0d, + 0x0a,0x3c,0x2f,0x67,0x3e,0x0d,0x0a,0x3c,0x2f,0x73, + 0x76,0x67,0x3e,0x0d,0x0a +}; diff --git a/data/converted/help_button_y_svg.cpp b/data/converted/help_button_y_svg.cpp new file mode 100644 index 000000000..adb8fbc49 --- /dev/null +++ b/data/converted/help_button_y_svg.cpp @@ -0,0 +1,100 @@ +//this file was auto-generated from "button_y.svg" by res2h + +#include "../Resources.h" + +const size_t help_button_y_svg_size = 927; +const unsigned char help_button_y_svg_data[927] = { + 0x3c,0x3f,0x78,0x6d,0x6c,0x20,0x76,0x65,0x72,0x73, + 0x69,0x6f,0x6e,0x3d,0x22,0x31,0x2e,0x30,0x22,0x20, + 0x65,0x6e,0x63,0x6f,0x64,0x69,0x6e,0x67,0x3d,0x22, + 0x75,0x74,0x66,0x2d,0x38,0x22,0x3f,0x3e,0x0d,0x0a, + 0x3c,0x21,0x2d,0x2d,0x20,0x47,0x65,0x6e,0x65,0x72, + 0x61,0x74,0x6f,0x72,0x3a,0x20,0x41,0x64,0x6f,0x62, + 0x65,0x20,0x49,0x6c,0x6c,0x75,0x73,0x74,0x72,0x61, + 0x74,0x6f,0x72,0x20,0x31,0x36,0x2e,0x30,0x2e,0x33, + 0x2c,0x20,0x53,0x56,0x47,0x20,0x45,0x78,0x70,0x6f, + 0x72,0x74,0x20,0x50,0x6c,0x75,0x67,0x2d,0x49,0x6e, + 0x20,0x2e,0x20,0x53,0x56,0x47,0x20,0x56,0x65,0x72, + 0x73,0x69,0x6f,0x6e,0x3a,0x20,0x36,0x2e,0x30,0x30, + 0x20,0x42,0x75,0x69,0x6c,0x64,0x20,0x30,0x29,0x20, + 0x20,0x2d,0x2d,0x3e,0x0d,0x0a,0x3c,0x21,0x44,0x4f, + 0x43,0x54,0x59,0x50,0x45,0x20,0x73,0x76,0x67,0x20, + 0x50,0x55,0x42,0x4c,0x49,0x43,0x20,0x22,0x2d,0x2f, + 0x2f,0x57,0x33,0x43,0x2f,0x2f,0x44,0x54,0x44,0x20, + 0x53,0x56,0x47,0x20,0x31,0x2e,0x31,0x2f,0x2f,0x45, + 0x4e,0x22,0x20,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f, + 0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72, + 0x67,0x2f,0x47,0x72,0x61,0x70,0x68,0x69,0x63,0x73, + 0x2f,0x53,0x56,0x47,0x2f,0x31,0x2e,0x31,0x2f,0x44, + 0x54,0x44,0x2f,0x73,0x76,0x67,0x31,0x31,0x2e,0x64, + 0x74,0x64,0x22,0x3e,0x0d,0x0a,0x3c,0x73,0x76,0x67, + 0x20,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x3d,0x22, + 0x31,0x2e,0x31,0x22,0x20,0x69,0x64,0x3d,0x22,0x5f, + 0x78,0x33,0x30,0x5f,0x22,0x20,0x78,0x6d,0x6c,0x6e, + 0x73,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f, + 0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72,0x67, + 0x2f,0x32,0x30,0x30,0x30,0x2f,0x73,0x76,0x67,0x22, + 0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3a,0x78,0x6c,0x69, + 0x6e,0x6b,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f, + 0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72, + 0x67,0x2f,0x31,0x39,0x39,0x39,0x2f,0x78,0x6c,0x69, + 0x6e,0x6b,0x22,0x20,0x78,0x3d,0x22,0x30,0x70,0x78, + 0x22,0x20,0x79,0x3d,0x22,0x30,0x70,0x78,0x22,0x0d, + 0x0a,0x09,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x22, + 0x33,0x37,0x2e,0x30,0x36,0x31,0x70,0x78,0x22,0x20, + 0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x22,0x33,0x37, + 0x2e,0x30,0x36,0x31,0x70,0x78,0x22,0x20,0x76,0x69, + 0x65,0x77,0x42,0x6f,0x78,0x3d,0x22,0x30,0x20,0x30, + 0x20,0x33,0x37,0x2e,0x30,0x36,0x31,0x20,0x33,0x37, + 0x2e,0x30,0x36,0x31,0x22,0x20,0x65,0x6e,0x61,0x62, + 0x6c,0x65,0x2d,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f, + 0x75,0x6e,0x64,0x3d,0x22,0x6e,0x65,0x77,0x20,0x30, + 0x20,0x30,0x20,0x33,0x37,0x2e,0x30,0x36,0x31,0x20, + 0x33,0x37,0x2e,0x30,0x36,0x31,0x22,0x20,0x78,0x6d, + 0x6c,0x3a,0x73,0x70,0x61,0x63,0x65,0x3d,0x22,0x70, + 0x72,0x65,0x73,0x65,0x72,0x76,0x65,0x22,0x3e,0x0d, + 0x0a,0x3c,0x67,0x3e,0x0d,0x0a,0x09,0x3c,0x67,0x3e, + 0x0d,0x0a,0x09,0x09,0x3c,0x70,0x61,0x74,0x68,0x20, + 0x66,0x69,0x6c,0x6c,0x3d,0x22,0x23,0x46,0x46,0x46, + 0x46,0x46,0x46,0x22,0x20,0x64,0x3d,0x22,0x4d,0x31, + 0x38,0x2e,0x35,0x33,0x2c,0x33,0x2e,0x30,0x32,0x39, + 0x63,0x2d,0x38,0x2e,0x35,0x36,0x31,0x2c,0x30,0x2d, + 0x31,0x35,0x2e,0x35,0x2c,0x36,0x2e,0x39,0x34,0x2d, + 0x31,0x35,0x2e,0x35,0x2c,0x31,0x35,0x2e,0x35,0x63, + 0x30,0x2c,0x38,0x2e,0x35,0x36,0x32,0x2c,0x36,0x2e, + 0x39,0x33,0x39,0x2c,0x31,0x35,0x2e,0x35,0x30,0x32, + 0x2c,0x31,0x35,0x2e,0x35,0x2c,0x31,0x35,0x2e,0x35, + 0x30,0x32,0x0d,0x0a,0x09,0x09,0x09,0x63,0x38,0x2e, + 0x35,0x36,0x33,0x2c,0x30,0x2c,0x31,0x35,0x2e,0x35, + 0x2d,0x36,0x2e,0x39,0x34,0x2c,0x31,0x35,0x2e,0x35, + 0x2d,0x31,0x35,0x2e,0x35,0x30,0x32,0x43,0x33,0x34, + 0x2e,0x30,0x33,0x2c,0x39,0x2e,0x39,0x37,0x2c,0x32, + 0x37,0x2e,0x30,0x39,0x31,0x2c,0x33,0x2e,0x30,0x32, + 0x39,0x2c,0x31,0x38,0x2e,0x35,0x33,0x2c,0x33,0x2e, + 0x30,0x32,0x39,0x7a,0x20,0x4d,0x32,0x30,0x2e,0x31, + 0x30,0x32,0x2c,0x32,0x30,0x2e,0x31,0x37,0x34,0x76, + 0x34,0x2e,0x37,0x35,0x68,0x2d,0x32,0x2e,0x37,0x76, + 0x2d,0x34,0x2e,0x38,0x39,0x6c,0x2d,0x34,0x2e,0x35, + 0x35,0x35,0x2d,0x38,0x2e,0x36,0x31,0x38,0x68,0x32, + 0x2e,0x39,0x36,0x39,0x0d,0x0a,0x09,0x09,0x09,0x6c, + 0x32,0x2e,0x39,0x35,0x2c,0x36,0x2e,0x32,0x32,0x36, + 0x68,0x30,0x2e,0x30,0x35,0x36,0x6c,0x32,0x2e,0x39, + 0x35,0x2d,0x36,0x2e,0x32,0x32,0x36,0x68,0x32,0x2e, + 0x39,0x37,0x31,0x4c,0x32,0x30,0x2e,0x31,0x30,0x32, + 0x2c,0x32,0x30,0x2e,0x31,0x37,0x34,0x7a,0x22,0x2f, + 0x3e,0x0d,0x0a,0x09,0x3c,0x2f,0x67,0x3e,0x0d,0x0a, + 0x3c,0x2f,0x67,0x3e,0x0d,0x0a,0x3c,0x67,0x20,0x6f, + 0x70,0x61,0x63,0x69,0x74,0x79,0x3d,0x22,0x30,0x22, + 0x3e,0x0d,0x0a,0x09,0x3c,0x70,0x61,0x74,0x68,0x20, + 0x66,0x69,0x6c,0x6c,0x3d,0x22,0x23,0x46,0x46,0x46, + 0x46,0x46,0x46,0x22,0x20,0x64,0x3d,0x22,0x4d,0x33, + 0x36,0x2e,0x39,0x36,0x31,0x2c,0x30,0x2e,0x31,0x76, + 0x33,0x36,0x2e,0x38,0x36,0x31,0x48,0x30,0x2e,0x31, + 0x56,0x30,0x2e,0x31,0x48,0x33,0x36,0x2e,0x39,0x36, + 0x31,0x20,0x4d,0x33,0x37,0x2e,0x30,0x36,0x31,0x2c, + 0x30,0x48,0x30,0x76,0x33,0x37,0x2e,0x30,0x36,0x68, + 0x33,0x37,0x2e,0x30,0x36,0x31,0x56,0x30,0x4c,0x33, + 0x37,0x2e,0x30,0x36,0x31,0x2c,0x30,0x7a,0x22,0x2f, + 0x3e,0x0d,0x0a,0x3c,0x2f,0x67,0x3e,0x0d,0x0a,0x3c, + 0x2f,0x73,0x76,0x67,0x3e,0x0d,0x0a +}; diff --git a/data/converted/help_dpad_all_svg.cpp b/data/converted/help_dpad_all_svg.cpp new file mode 100644 index 000000000..3117c046b --- /dev/null +++ b/data/converted/help_dpad_all_svg.cpp @@ -0,0 +1,360 @@ +//this file was auto-generated from "dpad_all.svg" by res2h + +#include "../Resources.h" + +const size_t help_dpad_all_svg_size = 3523; +const unsigned char help_dpad_all_svg_data[3523] = { + 0x3c,0x3f,0x78,0x6d,0x6c,0x20,0x76,0x65,0x72,0x73, + 0x69,0x6f,0x6e,0x3d,0x22,0x31,0x2e,0x30,0x22,0x20, + 0x65,0x6e,0x63,0x6f,0x64,0x69,0x6e,0x67,0x3d,0x22, + 0x75,0x74,0x66,0x2d,0x38,0x22,0x3f,0x3e,0x0d,0x0a, + 0x3c,0x21,0x2d,0x2d,0x20,0x47,0x65,0x6e,0x65,0x72, + 0x61,0x74,0x6f,0x72,0x3a,0x20,0x41,0x64,0x6f,0x62, + 0x65,0x20,0x49,0x6c,0x6c,0x75,0x73,0x74,0x72,0x61, + 0x74,0x6f,0x72,0x20,0x31,0x36,0x2e,0x30,0x2e,0x33, + 0x2c,0x20,0x53,0x56,0x47,0x20,0x45,0x78,0x70,0x6f, + 0x72,0x74,0x20,0x50,0x6c,0x75,0x67,0x2d,0x49,0x6e, + 0x20,0x2e,0x20,0x53,0x56,0x47,0x20,0x56,0x65,0x72, + 0x73,0x69,0x6f,0x6e,0x3a,0x20,0x36,0x2e,0x30,0x30, + 0x20,0x42,0x75,0x69,0x6c,0x64,0x20,0x30,0x29,0x20, + 0x20,0x2d,0x2d,0x3e,0x0d,0x0a,0x3c,0x21,0x44,0x4f, + 0x43,0x54,0x59,0x50,0x45,0x20,0x73,0x76,0x67,0x20, + 0x50,0x55,0x42,0x4c,0x49,0x43,0x20,0x22,0x2d,0x2f, + 0x2f,0x57,0x33,0x43,0x2f,0x2f,0x44,0x54,0x44,0x20, + 0x53,0x56,0x47,0x20,0x31,0x2e,0x31,0x2f,0x2f,0x45, + 0x4e,0x22,0x20,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f, + 0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72, + 0x67,0x2f,0x47,0x72,0x61,0x70,0x68,0x69,0x63,0x73, + 0x2f,0x53,0x56,0x47,0x2f,0x31,0x2e,0x31,0x2f,0x44, + 0x54,0x44,0x2f,0x73,0x76,0x67,0x31,0x31,0x2e,0x64, + 0x74,0x64,0x22,0x3e,0x0d,0x0a,0x3c,0x73,0x76,0x67, + 0x20,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x3d,0x22, + 0x31,0x2e,0x31,0x22,0x20,0x69,0x64,0x3d,0x22,0x5f, + 0x78,0x33,0x30,0x5f,0x22,0x20,0x78,0x6d,0x6c,0x6e, + 0x73,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f, + 0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72,0x67, + 0x2f,0x32,0x30,0x30,0x30,0x2f,0x73,0x76,0x67,0x22, + 0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3a,0x78,0x6c,0x69, + 0x6e,0x6b,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f, + 0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72, + 0x67,0x2f,0x31,0x39,0x39,0x39,0x2f,0x78,0x6c,0x69, + 0x6e,0x6b,0x22,0x20,0x78,0x3d,0x22,0x30,0x70,0x78, + 0x22,0x20,0x79,0x3d,0x22,0x30,0x70,0x78,0x22,0x0d, + 0x0a,0x09,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x22, + 0x33,0x37,0x2e,0x30,0x36,0x31,0x70,0x78,0x22,0x20, + 0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x22,0x33,0x37, + 0x2e,0x30,0x36,0x31,0x70,0x78,0x22,0x20,0x76,0x69, + 0x65,0x77,0x42,0x6f,0x78,0x3d,0x22,0x30,0x20,0x30, + 0x20,0x33,0x37,0x2e,0x30,0x36,0x31,0x20,0x33,0x37, + 0x2e,0x30,0x36,0x31,0x22,0x20,0x65,0x6e,0x61,0x62, + 0x6c,0x65,0x2d,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f, + 0x75,0x6e,0x64,0x3d,0x22,0x6e,0x65,0x77,0x20,0x30, + 0x20,0x30,0x20,0x33,0x37,0x2e,0x30,0x36,0x31,0x20, + 0x33,0x37,0x2e,0x30,0x36,0x31,0x22,0x20,0x78,0x6d, + 0x6c,0x3a,0x73,0x70,0x61,0x63,0x65,0x3d,0x22,0x70, + 0x72,0x65,0x73,0x65,0x72,0x76,0x65,0x22,0x3e,0x0d, + 0x0a,0x3c,0x67,0x3e,0x0d,0x0a,0x09,0x3c,0x67,0x3e, + 0x0d,0x0a,0x09,0x09,0x3c,0x67,0x3e,0x0d,0x0a,0x09, + 0x09,0x09,0x3c,0x67,0x3e,0x0d,0x0a,0x09,0x09,0x09, + 0x09,0x3c,0x70,0x61,0x74,0x68,0x20,0x66,0x69,0x6c, + 0x6c,0x3d,0x22,0x23,0x46,0x46,0x46,0x46,0x46,0x46, + 0x22,0x20,0x64,0x3d,0x22,0x4d,0x32,0x32,0x2e,0x30, + 0x38,0x35,0x2c,0x33,0x37,0x2e,0x30,0x35,0x38,0x68, + 0x2d,0x37,0x2e,0x31,0x31,0x31,0x63,0x2d,0x32,0x2e, + 0x32,0x38,0x39,0x2c,0x30,0x2d,0x33,0x2e,0x31,0x31, + 0x39,0x2d,0x31,0x2e,0x38,0x36,0x36,0x2d,0x33,0x2e, + 0x31,0x31,0x39,0x2d,0x33,0x2e,0x31,0x32,0x31,0x76, + 0x2d,0x38,0x2e,0x37,0x33,0x32,0x48,0x33,0x2e,0x31, + 0x32,0x31,0x43,0x30,0x2e,0x38,0x33,0x31,0x2c,0x32, + 0x35,0x2e,0x32,0x30,0x35,0x2c,0x30,0x2c,0x32,0x33, + 0x2e,0x33,0x33,0x39,0x2c,0x30,0x2c,0x32,0x32,0x2e, + 0x30,0x38,0x34,0x0d,0x0a,0x09,0x09,0x09,0x09,0x09, + 0x76,0x2d,0x37,0x2e,0x31,0x31,0x63,0x30,0x2d,0x32, + 0x2e,0x32,0x38,0x39,0x2c,0x31,0x2e,0x38,0x36,0x37, + 0x2d,0x33,0x2e,0x31,0x32,0x2c,0x33,0x2e,0x31,0x32, + 0x31,0x2d,0x33,0x2e,0x31,0x32,0x68,0x38,0x2e,0x37, + 0x33,0x34,0x56,0x33,0x2e,0x31,0x32,0x31,0x63,0x30, + 0x2d,0x32,0x2e,0x32,0x39,0x2c,0x31,0x2e,0x38,0x36, + 0x35,0x2d,0x33,0x2e,0x31,0x32,0x31,0x2c,0x33,0x2e, + 0x31,0x31,0x39,0x2d,0x33,0x2e,0x31,0x32,0x31,0x68, + 0x37,0x2e,0x31,0x31,0x31,0x63,0x32,0x2e,0x32,0x39, + 0x2c,0x30,0x2c,0x33,0x2e,0x31,0x32,0x31,0x2c,0x31, + 0x2e,0x38,0x36,0x37,0x2c,0x33,0x2e,0x31,0x32,0x31, + 0x2c,0x33,0x2e,0x31,0x32,0x31,0x76,0x38,0x2e,0x37, + 0x33,0x33,0x0d,0x0a,0x09,0x09,0x09,0x09,0x09,0x68, + 0x38,0x2e,0x37,0x33,0x31,0x63,0x31,0x2e,0x32,0x30, + 0x31,0x2c,0x30,0x2c,0x32,0x2e,0x31,0x35,0x34,0x2c, + 0x30,0x2e,0x35,0x32,0x35,0x2c,0x32,0x2e,0x36,0x38, + 0x34,0x2c,0x31,0x2e,0x34,0x38,0x63,0x30,0x2e,0x32, + 0x30,0x37,0x2c,0x30,0x2e,0x33,0x37,0x35,0x2c,0x30, + 0x2e,0x34,0x35,0x36,0x2c,0x31,0x2e,0x31,0x31,0x32, + 0x2c,0x30,0x2e,0x34,0x32,0x39,0x2c,0x31,0x2e,0x36, + 0x33,0x39,0x68,0x30,0x2e,0x30,0x30,0x38,0x76,0x37, + 0x2e,0x31,0x31,0x63,0x30,0x2c,0x32,0x2e,0x32,0x39, + 0x2d,0x31,0x2e,0x38,0x36,0x36,0x2c,0x33,0x2e,0x31, + 0x32,0x31,0x2d,0x33,0x2e,0x31,0x32,0x31,0x2c,0x33, + 0x2e,0x31,0x32,0x31,0x68,0x2d,0x38,0x2e,0x37,0x33, + 0x31,0x0d,0x0a,0x09,0x09,0x09,0x09,0x09,0x76,0x38, + 0x2e,0x37,0x33,0x32,0x43,0x32,0x35,0x2e,0x32,0x30, + 0x36,0x2c,0x33,0x36,0x2e,0x32,0x32,0x37,0x2c,0x32, + 0x33,0x2e,0x33,0x34,0x2c,0x33,0x37,0x2e,0x30,0x35, + 0x38,0x2c,0x32,0x32,0x2e,0x30,0x38,0x35,0x2c,0x33, + 0x37,0x2e,0x30,0x35,0x38,0x7a,0x20,0x4d,0x33,0x2e, + 0x31,0x32,0x31,0x2c,0x31,0x33,0x2e,0x33,0x35,0x33, + 0x43,0x32,0x2e,0x37,0x34,0x35,0x2c,0x31,0x33,0x2e, + 0x33,0x35,0x39,0x2c,0x31,0x2e,0x35,0x2c,0x31,0x33, + 0x2e,0x34,0x39,0x32,0x2c,0x31,0x2e,0x35,0x2c,0x31, + 0x34,0x2e,0x39,0x37,0x33,0x76,0x37,0x2e,0x31,0x31, + 0x0d,0x0a,0x09,0x09,0x09,0x09,0x09,0x63,0x30,0x2e, + 0x30,0x30,0x36,0x2c,0x30,0x2e,0x33,0x37,0x36,0x2c, + 0x30,0x2e,0x31,0x33,0x39,0x2c,0x31,0x2e,0x36,0x32, + 0x31,0x2c,0x31,0x2e,0x36,0x32,0x31,0x2c,0x31,0x2e, + 0x36,0x32,0x31,0x68,0x31,0x30,0x2e,0x32,0x33,0x33, + 0x76,0x31,0x30,0x2e,0x32,0x33,0x32,0x63,0x30,0x2e, + 0x30,0x30,0x35,0x2c,0x30,0x2e,0x33,0x37,0x36,0x2c, + 0x30,0x2e,0x31,0x33,0x39,0x2c,0x31,0x2e,0x36,0x32, + 0x31,0x2c,0x31,0x2e,0x36,0x31,0x39,0x2c,0x31,0x2e, + 0x36,0x32,0x31,0x68,0x37,0x2e,0x31,0x30,0x38,0x0d, + 0x0a,0x09,0x09,0x09,0x09,0x09,0x63,0x30,0x2e,0x33, + 0x38,0x34,0x2d,0x30,0x2e,0x30,0x30,0x36,0x2c,0x31, + 0x2e,0x36,0x32,0x34,0x2d,0x30,0x2e,0x31,0x34,0x32, + 0x2c,0x31,0x2e,0x36,0x32,0x34,0x2d,0x31,0x2e,0x36, + 0x32,0x31,0x56,0x32,0x33,0x2e,0x37,0x30,0x35,0x68, + 0x31,0x30,0x2e,0x32,0x33,0x31,0x63,0x30,0x2e,0x33, + 0x37,0x36,0x2d,0x30,0x2e,0x30,0x30,0x36,0x2c,0x31, + 0x2e,0x36,0x32,0x31,0x2d,0x30,0x2e,0x31,0x34,0x2c, + 0x31,0x2e,0x36,0x32,0x31,0x2d,0x31,0x2e,0x36,0x32, + 0x31,0x76,0x2d,0x37,0x2e,0x31,0x32,0x31,0x0d,0x0a, + 0x09,0x09,0x09,0x09,0x09,0x63,0x2d,0x30,0x2e,0x30, + 0x30,0x35,0x2d,0x30,0x2e,0x32,0x38,0x37,0x2d,0x30, + 0x2e,0x31,0x31,0x32,0x2d,0x31,0x2e,0x36,0x30,0x39, + 0x2d,0x31,0x2e,0x36,0x32,0x2d,0x31,0x2e,0x36,0x30, + 0x39,0x48,0x32,0x33,0x2e,0x37,0x30,0x37,0x56,0x33, + 0x2e,0x31,0x32,0x31,0x43,0x32,0x33,0x2e,0x37,0x30, + 0x31,0x2c,0x32,0x2e,0x37,0x34,0x35,0x2c,0x32,0x33, + 0x2e,0x35,0x36,0x38,0x2c,0x31,0x2e,0x35,0x2c,0x32, + 0x32,0x2e,0x30,0x38,0x36,0x2c,0x31,0x2e,0x35,0x68, + 0x2d,0x37,0x2e,0x31,0x31,0x31,0x0d,0x0a,0x09,0x09, + 0x09,0x09,0x09,0x63,0x2d,0x30,0x2e,0x33,0x37,0x36, + 0x2c,0x30,0x2e,0x30,0x30,0x36,0x2d,0x31,0x2e,0x36, + 0x31,0x39,0x2c,0x30,0x2e,0x31,0x33,0x39,0x2d,0x31, + 0x2e,0x36,0x31,0x39,0x2c,0x31,0x2e,0x36,0x32,0x31, + 0x76,0x31,0x30,0x2e,0x32,0x33,0x32,0x48,0x33,0x2e, + 0x31,0x32,0x31,0x7a,0x22,0x2f,0x3e,0x0d,0x0a,0x09, + 0x09,0x09,0x3c,0x2f,0x67,0x3e,0x0d,0x0a,0x09,0x09, + 0x3c,0x2f,0x67,0x3e,0x0d,0x0a,0x09,0x3c,0x2f,0x67, + 0x3e,0x0d,0x0a,0x09,0x3c,0x67,0x3e,0x0d,0x0a,0x09, + 0x09,0x3c,0x70,0x61,0x74,0x68,0x20,0x66,0x69,0x6c, + 0x6c,0x3d,0x22,0x23,0x46,0x46,0x46,0x46,0x46,0x46, + 0x22,0x20,0x64,0x3d,0x22,0x4d,0x31,0x38,0x2e,0x35, + 0x33,0x31,0x2c,0x32,0x32,0x2e,0x31,0x38,0x31,0x63, + 0x2d,0x32,0x2e,0x30,0x31,0x32,0x2c,0x30,0x2d,0x33, + 0x2e,0x36,0x34,0x39,0x2d,0x31,0x2e,0x36,0x33,0x38, + 0x2d,0x33,0x2e,0x36,0x34,0x39,0x2d,0x33,0x2e,0x36, + 0x35,0x31,0x63,0x30,0x2d,0x32,0x2e,0x30,0x31,0x33, + 0x2c,0x31,0x2e,0x36,0x33,0x37,0x2d,0x33,0x2e,0x36, + 0x35,0x2c,0x33,0x2e,0x36,0x34,0x39,0x2d,0x33,0x2e, + 0x36,0x35,0x0d,0x0a,0x09,0x09,0x09,0x63,0x32,0x2e, + 0x30,0x31,0x33,0x2c,0x30,0x2c,0x33,0x2e,0x36,0x35, + 0x2c,0x31,0x2e,0x36,0x33,0x38,0x2c,0x33,0x2e,0x36, + 0x35,0x2c,0x33,0x2e,0x36,0x35,0x43,0x32,0x32,0x2e, + 0x31,0x38,0x31,0x2c,0x32,0x30,0x2e,0x35,0x34,0x34, + 0x2c,0x32,0x30,0x2e,0x35,0x34,0x33,0x2c,0x32,0x32, + 0x2e,0x31,0x38,0x31,0x2c,0x31,0x38,0x2e,0x35,0x33, + 0x31,0x2c,0x32,0x32,0x2e,0x31,0x38,0x31,0x7a,0x20, + 0x4d,0x31,0x38,0x2e,0x35,0x33,0x31,0x2c,0x31,0x36, + 0x2e,0x33,0x38,0x63,0x2d,0x31,0x2e,0x31,0x38,0x35, + 0x2c,0x30,0x2d,0x32,0x2e,0x31,0x34,0x39,0x2c,0x30, + 0x2e,0x39,0x36,0x35,0x2d,0x32,0x2e,0x31,0x34,0x39, + 0x2c,0x32,0x2e,0x31,0x35,0x0d,0x0a,0x09,0x09,0x09, + 0x63,0x30,0x2c,0x31,0x2e,0x31,0x38,0x37,0x2c,0x30, + 0x2e,0x39,0x36,0x34,0x2c,0x32,0x2e,0x31,0x35,0x31, + 0x2c,0x32,0x2e,0x31,0x34,0x39,0x2c,0x32,0x2e,0x31, + 0x35,0x31,0x63,0x31,0x2e,0x31,0x38,0x36,0x2c,0x30, + 0x2c,0x32,0x2e,0x31,0x35,0x2d,0x30,0x2e,0x39,0x36, + 0x35,0x2c,0x32,0x2e,0x31,0x35,0x2d,0x32,0x2e,0x31, + 0x35,0x31,0x43,0x32,0x30,0x2e,0x36,0x38,0x31,0x2c, + 0x31,0x37,0x2e,0x33,0x34,0x34,0x2c,0x31,0x39,0x2e, + 0x37,0x31,0x36,0x2c,0x31,0x36,0x2e,0x33,0x38,0x2c, + 0x31,0x38,0x2e,0x35,0x33,0x31,0x2c,0x31,0x36,0x2e, + 0x33,0x38,0x7a,0x22,0x2f,0x3e,0x0d,0x0a,0x09,0x3c, + 0x2f,0x67,0x3e,0x0d,0x0a,0x09,0x3c,0x67,0x3e,0x0d, + 0x0a,0x09,0x09,0x3c,0x70,0x61,0x74,0x68,0x20,0x66, + 0x69,0x6c,0x6c,0x3d,0x22,0x23,0x46,0x46,0x46,0x46, + 0x46,0x46,0x22,0x20,0x64,0x3d,0x22,0x4d,0x31,0x38, + 0x2e,0x35,0x33,0x2c,0x33,0x2e,0x31,0x38,0x33,0x6c, + 0x2d,0x33,0x2e,0x30,0x30,0x35,0x2c,0x34,0x2e,0x36, + 0x38,0x34,0x68,0x36,0x2e,0x30,0x31,0x32,0x4c,0x31, + 0x38,0x2e,0x35,0x33,0x2c,0x33,0x2e,0x31,0x38,0x33, + 0x7a,0x22,0x2f,0x3e,0x0d,0x0a,0x09,0x09,0x3c,0x70, + 0x61,0x74,0x68,0x20,0x66,0x69,0x6c,0x6c,0x3d,0x22, + 0x23,0x46,0x46,0x46,0x46,0x46,0x46,0x22,0x20,0x64, + 0x3d,0x22,0x4d,0x32,0x31,0x2e,0x35,0x33,0x36,0x2c, + 0x38,0x2e,0x36,0x31,0x37,0x68,0x2d,0x36,0x2e,0x30, + 0x31,0x32,0x63,0x2d,0x30,0x2e,0x32,0x37,0x34,0x2c, + 0x30,0x2d,0x30,0x2e,0x35,0x32,0x36,0x2d,0x30,0x2e, + 0x31,0x35,0x2d,0x30,0x2e,0x36,0x35,0x38,0x2d,0x30, + 0x2e,0x33,0x39,0x63,0x2d,0x30,0x2e,0x31,0x33,0x31, + 0x2d,0x30,0x2e,0x32,0x34,0x31,0x2d,0x30,0x2e,0x31, + 0x32,0x31,0x2d,0x30,0x2e,0x35,0x33,0x34,0x2c,0x30, + 0x2e,0x30,0x32,0x37,0x2d,0x30,0x2e,0x37,0x36,0x35, + 0x6c,0x33,0x2e,0x30,0x30,0x35,0x2d,0x34,0x2e,0x36, + 0x38,0x34,0x0d,0x0a,0x09,0x09,0x09,0x63,0x30,0x2e, + 0x32,0x37,0x36,0x2d,0x30,0x2e,0x34,0x33,0x31,0x2c, + 0x30,0x2e,0x39,0x38,0x37,0x2d,0x30,0x2e,0x34,0x33, + 0x2c,0x31,0x2e,0x32,0x36,0x32,0x2c,0x30,0x6c,0x33, + 0x2e,0x30,0x30,0x37,0x2c,0x34,0x2e,0x36,0x38,0x34, + 0x63,0x30,0x2e,0x31,0x34,0x38,0x2c,0x30,0x2e,0x32, + 0x33,0x31,0x2c,0x30,0x2e,0x31,0x35,0x39,0x2c,0x30, + 0x2e,0x35,0x32,0x34,0x2c,0x30,0x2e,0x30,0x32,0x37, + 0x2c,0x30,0x2e,0x37,0x36,0x35,0x43,0x32,0x32,0x2e, + 0x30,0x36,0x33,0x2c,0x38,0x2e,0x34,0x36,0x37,0x2c, + 0x32,0x31,0x2e,0x38,0x31,0x31,0x2c,0x38,0x2e,0x36, + 0x31,0x37,0x2c,0x32,0x31,0x2e,0x35,0x33,0x36,0x2c, + 0x38,0x2e,0x36,0x31,0x37,0x7a,0x0d,0x0a,0x09,0x09, + 0x09,0x20,0x4d,0x31,0x36,0x2e,0x38,0x39,0x37,0x2c, + 0x37,0x2e,0x31,0x31,0x37,0x68,0x33,0x2e,0x32,0x36, + 0x37,0x4c,0x31,0x38,0x2e,0x35,0x33,0x2c,0x34,0x2e, + 0x35,0x37,0x32,0x4c,0x31,0x36,0x2e,0x38,0x39,0x37, + 0x2c,0x37,0x2e,0x31,0x31,0x37,0x7a,0x22,0x2f,0x3e, + 0x0d,0x0a,0x09,0x3c,0x2f,0x67,0x3e,0x0d,0x0a,0x09, + 0x3c,0x67,0x3e,0x0d,0x0a,0x09,0x09,0x3c,0x70,0x61, + 0x74,0x68,0x20,0x66,0x69,0x6c,0x6c,0x3d,0x22,0x23, + 0x46,0x46,0x46,0x46,0x46,0x46,0x22,0x20,0x64,0x3d, + 0x22,0x4d,0x33,0x2e,0x31,0x32,0x35,0x2c,0x31,0x38, + 0x2e,0x35,0x33,0x6c,0x34,0x2e,0x36,0x38,0x34,0x2c, + 0x33,0x2e,0x30,0x30,0x34,0x76,0x2d,0x36,0x2e,0x30, + 0x31,0x4c,0x33,0x2e,0x31,0x32,0x35,0x2c,0x31,0x38, + 0x2e,0x35,0x33,0x7a,0x22,0x2f,0x3e,0x0d,0x0a,0x09, + 0x09,0x3c,0x70,0x61,0x74,0x68,0x20,0x66,0x69,0x6c, + 0x6c,0x3d,0x22,0x23,0x46,0x46,0x46,0x46,0x46,0x46, + 0x22,0x20,0x64,0x3d,0x22,0x4d,0x37,0x2e,0x38,0x30, + 0x39,0x2c,0x32,0x32,0x2e,0x32,0x38,0x34,0x63,0x2d, + 0x30,0x2e,0x31,0x34,0x31,0x2c,0x30,0x2d,0x30,0x2e, + 0x32,0x38,0x32,0x2d,0x30,0x2e,0x30,0x34,0x2d,0x30, + 0x2e,0x34,0x30,0x35,0x2d,0x30,0x2e,0x31,0x31,0x39, + 0x4c,0x32,0x2e,0x37,0x32,0x2c,0x31,0x39,0x2e,0x31, + 0x36,0x31,0x63,0x2d,0x30,0x2e,0x32,0x31,0x35,0x2d, + 0x30,0x2e,0x31,0x33,0x37,0x2d,0x30,0x2e,0x33,0x34, + 0x35,0x2d,0x30,0x2e,0x33,0x37,0x35,0x2d,0x30,0x2e, + 0x33,0x34,0x35,0x2d,0x30,0x2e,0x36,0x33,0x31,0x0d, + 0x0a,0x09,0x09,0x09,0x73,0x30,0x2e,0x31,0x33,0x2d, + 0x30,0x2e,0x34,0x39,0x33,0x2c,0x30,0x2e,0x33,0x34, + 0x35,0x2d,0x30,0x2e,0x36,0x33,0x31,0x6c,0x34,0x2e, + 0x36,0x38,0x34,0x2d,0x33,0x2e,0x30,0x30,0x36,0x63, + 0x30,0x2e,0x32,0x33,0x2d,0x30,0x2e,0x31,0x34,0x37, + 0x2c,0x30,0x2e,0x35,0x32,0x34,0x2d,0x30,0x2e,0x31, + 0x35,0x39,0x2c,0x30,0x2e,0x37,0x36,0x35,0x2d,0x30, + 0x2e,0x30,0x32,0x37,0x63,0x30,0x2e,0x32,0x34,0x2c, + 0x30,0x2e,0x31,0x33,0x31,0x2c,0x30,0x2e,0x33,0x39, + 0x2c,0x30,0x2e,0x33,0x38,0x34,0x2c,0x30,0x2e,0x33, + 0x39,0x2c,0x30,0x2e,0x36,0x35,0x38,0x76,0x36,0x2e, + 0x30,0x31,0x0d,0x0a,0x09,0x09,0x09,0x63,0x30,0x2c, + 0x30,0x2e,0x32,0x37,0x34,0x2d,0x30,0x2e,0x31,0x34, + 0x39,0x2c,0x30,0x2e,0x35,0x32,0x36,0x2d,0x30,0x2e, + 0x33,0x39,0x2c,0x30,0x2e,0x36,0x35,0x38,0x43,0x38, + 0x2e,0x30,0x35,0x36,0x2c,0x32,0x32,0x2e,0x32,0x35, + 0x34,0x2c,0x37,0x2e,0x39,0x33,0x32,0x2c,0x32,0x32, + 0x2e,0x32,0x38,0x34,0x2c,0x37,0x2e,0x38,0x30,0x39, + 0x2c,0x32,0x32,0x2e,0x32,0x38,0x34,0x7a,0x20,0x4d, + 0x34,0x2e,0x35,0x31,0x34,0x2c,0x31,0x38,0x2e,0x35, + 0x33,0x6c,0x32,0x2e,0x35,0x34,0x35,0x2c,0x31,0x2e, + 0x36,0x33,0x32,0x76,0x2d,0x33,0x2e,0x32,0x36,0x35, + 0x4c,0x34,0x2e,0x35,0x31,0x34,0x2c,0x31,0x38,0x2e, + 0x35,0x33,0x7a,0x22,0x2f,0x3e,0x0d,0x0a,0x09,0x3c, + 0x2f,0x67,0x3e,0x0d,0x0a,0x09,0x3c,0x67,0x3e,0x0d, + 0x0a,0x09,0x09,0x3c,0x70,0x61,0x74,0x68,0x20,0x66, + 0x69,0x6c,0x6c,0x3d,0x22,0x23,0x46,0x46,0x46,0x46, + 0x46,0x46,0x22,0x20,0x64,0x3d,0x22,0x4d,0x33,0x33, + 0x2e,0x38,0x37,0x39,0x2c,0x31,0x38,0x2e,0x35,0x32, + 0x39,0x6c,0x2d,0x34,0x2e,0x36,0x38,0x35,0x2d,0x33, + 0x2e,0x30,0x30,0x35,0x76,0x36,0x2e,0x30,0x31,0x4c, + 0x33,0x33,0x2e,0x38,0x37,0x39,0x2c,0x31,0x38,0x2e, + 0x35,0x32,0x39,0x7a,0x22,0x2f,0x3e,0x0d,0x0a,0x09, + 0x09,0x3c,0x70,0x61,0x74,0x68,0x20,0x66,0x69,0x6c, + 0x6c,0x3d,0x22,0x23,0x46,0x46,0x46,0x46,0x46,0x46, + 0x22,0x20,0x64,0x3d,0x22,0x4d,0x32,0x39,0x2e,0x31, + 0x39,0x35,0x2c,0x32,0x32,0x2e,0x32,0x38,0x34,0x63, + 0x2d,0x30,0x2e,0x31,0x32,0x34,0x2c,0x30,0x2d,0x30, + 0x2e,0x32,0x34,0x37,0x2d,0x30,0x2e,0x30,0x33,0x2d, + 0x30,0x2e,0x33,0x35,0x39,0x2d,0x30,0x2e,0x30,0x39, + 0x32,0x63,0x2d,0x30,0x2e,0x32,0x34,0x31,0x2d,0x30, + 0x2e,0x31,0x33,0x32,0x2d,0x30,0x2e,0x33,0x39,0x31, + 0x2d,0x30,0x2e,0x33,0x38,0x34,0x2d,0x30,0x2e,0x33, + 0x39,0x31,0x2d,0x30,0x2e,0x36,0x35,0x38,0x76,0x2d, + 0x36,0x2e,0x30,0x31,0x0d,0x0a,0x09,0x09,0x09,0x63, + 0x30,0x2d,0x30,0x2e,0x32,0x37,0x34,0x2c,0x30,0x2e, + 0x31,0x34,0x39,0x2d,0x30,0x2e,0x35,0x32,0x36,0x2c, + 0x30,0x2e,0x33,0x39,0x31,0x2d,0x30,0x2e,0x36,0x35, + 0x38,0x63,0x30,0x2e,0x32,0x33,0x39,0x2d,0x30,0x2e, + 0x31,0x33,0x32,0x2c,0x30,0x2e,0x35,0x33,0x32,0x2d, + 0x30,0x2e,0x31,0x32,0x33,0x2c,0x30,0x2e,0x37,0x36, + 0x35,0x2c,0x30,0x2e,0x30,0x32,0x37,0x6c,0x34,0x2e, + 0x36,0x38,0x35,0x2c,0x33,0x2e,0x30,0x30,0x35,0x63, + 0x30,0x2e,0x32,0x31,0x35,0x2c,0x30,0x2e,0x31,0x33, + 0x38,0x2c,0x30,0x2e,0x33,0x34,0x35,0x2c,0x30,0x2e, + 0x33,0x37,0x36,0x2c,0x30,0x2e,0x33,0x34,0x35,0x2c, + 0x30,0x2e,0x36,0x33,0x31,0x0d,0x0a,0x09,0x09,0x09, + 0x73,0x2d,0x30,0x2e,0x31,0x33,0x2c,0x30,0x2e,0x34, + 0x39,0x33,0x2d,0x30,0x2e,0x33,0x34,0x35,0x2c,0x30, + 0x2e,0x36,0x33,0x31,0x4c,0x32,0x39,0x2e,0x36,0x2c, + 0x32,0x32,0x2e,0x31,0x36,0x35,0x43,0x32,0x39,0x2e, + 0x34,0x37,0x37,0x2c,0x32,0x32,0x2e,0x32,0x34,0x34, + 0x2c,0x32,0x39,0x2e,0x33,0x33,0x35,0x2c,0x32,0x32, + 0x2e,0x32,0x38,0x34,0x2c,0x32,0x39,0x2e,0x31,0x39, + 0x35,0x2c,0x32,0x32,0x2e,0x32,0x38,0x34,0x7a,0x20, + 0x4d,0x32,0x39,0x2e,0x39,0x34,0x35,0x2c,0x31,0x36, + 0x2e,0x38,0x39,0x36,0x76,0x33,0x2e,0x32,0x36,0x36, + 0x6c,0x32,0x2e,0x35,0x34,0x36,0x2d,0x31,0x2e,0x36, + 0x33,0x33,0x0d,0x0a,0x09,0x09,0x09,0x4c,0x32,0x39, + 0x2e,0x39,0x34,0x35,0x2c,0x31,0x36,0x2e,0x38,0x39, + 0x36,0x7a,0x22,0x2f,0x3e,0x0d,0x0a,0x09,0x3c,0x2f, + 0x67,0x3e,0x0d,0x0a,0x09,0x3c,0x67,0x3e,0x0d,0x0a, + 0x09,0x09,0x3c,0x70,0x61,0x74,0x68,0x20,0x66,0x69, + 0x6c,0x6c,0x3d,0x22,0x23,0x46,0x46,0x46,0x46,0x46, + 0x46,0x22,0x20,0x64,0x3d,0x22,0x4d,0x31,0x38,0x2e, + 0x35,0x33,0x2c,0x33,0x33,0x2e,0x38,0x37,0x36,0x6c, + 0x33,0x2e,0x30,0x30,0x37,0x2d,0x34,0x2e,0x36,0x38, + 0x34,0x68,0x2d,0x36,0x2e,0x30,0x31,0x32,0x4c,0x31, + 0x38,0x2e,0x35,0x33,0x2c,0x33,0x33,0x2e,0x38,0x37, + 0x36,0x7a,0x22,0x2f,0x3e,0x0d,0x0a,0x09,0x09,0x3c, + 0x70,0x61,0x74,0x68,0x20,0x66,0x69,0x6c,0x6c,0x3d, + 0x22,0x23,0x46,0x46,0x46,0x46,0x46,0x46,0x22,0x20, + 0x64,0x3d,0x22,0x4d,0x31,0x38,0x2e,0x35,0x33,0x2c, + 0x33,0x34,0x2e,0x36,0x32,0x36,0x4c,0x31,0x38,0x2e, + 0x35,0x33,0x2c,0x33,0x34,0x2e,0x36,0x32,0x36,0x63, + 0x2d,0x30,0x2e,0x32,0x35,0x35,0x2c,0x30,0x2d,0x30, + 0x2e,0x34,0x39,0x33,0x2d,0x30,0x2e,0x31,0x33,0x2d, + 0x30,0x2e,0x36,0x33,0x31,0x2d,0x30,0x2e,0x33,0x34, + 0x35,0x6c,0x2d,0x33,0x2e,0x30,0x30,0x35,0x2d,0x34, + 0x2e,0x36,0x38,0x34,0x0d,0x0a,0x09,0x09,0x09,0x63, + 0x2d,0x30,0x2e,0x31,0x34,0x38,0x2d,0x30,0x2e,0x32, + 0x33,0x31,0x2d,0x30,0x2e,0x31,0x35,0x38,0x2d,0x30, + 0x2e,0x35,0x32,0x34,0x2d,0x30,0x2e,0x30,0x32,0x37, + 0x2d,0x30,0x2e,0x37,0x36,0x35,0x63,0x30,0x2e,0x31, + 0x33,0x32,0x2d,0x30,0x2e,0x32,0x34,0x31,0x2c,0x30, + 0x2e,0x33,0x38,0x34,0x2d,0x30,0x2e,0x33,0x39,0x31, + 0x2c,0x30,0x2e,0x36,0x35,0x38,0x2d,0x30,0x2e,0x33, + 0x39,0x31,0x68,0x36,0x2e,0x30,0x31,0x32,0x63,0x30, + 0x2e,0x32,0x37,0x34,0x2c,0x30,0x2c,0x30,0x2e,0x35, + 0x32,0x36,0x2c,0x30,0x2e,0x31,0x34,0x39,0x2c,0x30, + 0x2e,0x36,0x35,0x38,0x2c,0x30,0x2e,0x33,0x39,0x31, + 0x0d,0x0a,0x09,0x09,0x09,0x63,0x30,0x2e,0x31,0x33, + 0x32,0x2c,0x30,0x2e,0x32,0x34,0x2c,0x30,0x2e,0x31, + 0x32,0x31,0x2c,0x30,0x2e,0x35,0x33,0x34,0x2d,0x30, + 0x2e,0x30,0x32,0x37,0x2c,0x30,0x2e,0x37,0x36,0x35, + 0x6c,0x2d,0x33,0x2e,0x30,0x30,0x37,0x2c,0x34,0x2e, + 0x36,0x38,0x34,0x43,0x31,0x39,0x2e,0x30,0x32,0x33, + 0x2c,0x33,0x34,0x2e,0x34,0x39,0x36,0x2c,0x31,0x38, + 0x2e,0x37,0x38,0x35,0x2c,0x33,0x34,0x2e,0x36,0x32, + 0x36,0x2c,0x31,0x38,0x2e,0x35,0x33,0x2c,0x33,0x34, + 0x2e,0x36,0x32,0x36,0x7a,0x20,0x4d,0x31,0x36,0x2e, + 0x38,0x39,0x37,0x2c,0x32,0x39,0x2e,0x39,0x34,0x32, + 0x6c,0x31,0x2e,0x36,0x33,0x33,0x2c,0x32,0x2e,0x35, + 0x34,0x35,0x0d,0x0a,0x09,0x09,0x09,0x6c,0x31,0x2e, + 0x36,0x33,0x34,0x2d,0x32,0x2e,0x35,0x34,0x35,0x48, + 0x31,0x36,0x2e,0x38,0x39,0x37,0x7a,0x22,0x2f,0x3e, + 0x0d,0x0a,0x09,0x3c,0x2f,0x67,0x3e,0x0d,0x0a,0x3c, + 0x2f,0x67,0x3e,0x0d,0x0a,0x3c,0x2f,0x73,0x76,0x67, + 0x3e,0x0d,0x0a +}; diff --git a/data/converted/help_dpad_down_svg.cpp b/data/converted/help_dpad_down_svg.cpp new file mode 100644 index 000000000..e6b58955d --- /dev/null +++ b/data/converted/help_dpad_down_svg.cpp @@ -0,0 +1,329 @@ +//this file was auto-generated from "dpad_down.svg" by res2h + +#include "../Resources.h" + +const size_t help_dpad_down_svg_size = 3215; +const unsigned char help_dpad_down_svg_data[3215] = { + 0x3c,0x3f,0x78,0x6d,0x6c,0x20,0x76,0x65,0x72,0x73, + 0x69,0x6f,0x6e,0x3d,0x22,0x31,0x2e,0x30,0x22,0x20, + 0x65,0x6e,0x63,0x6f,0x64,0x69,0x6e,0x67,0x3d,0x22, + 0x75,0x74,0x66,0x2d,0x38,0x22,0x3f,0x3e,0x0d,0x0a, + 0x3c,0x21,0x2d,0x2d,0x20,0x47,0x65,0x6e,0x65,0x72, + 0x61,0x74,0x6f,0x72,0x3a,0x20,0x41,0x64,0x6f,0x62, + 0x65,0x20,0x49,0x6c,0x6c,0x75,0x73,0x74,0x72,0x61, + 0x74,0x6f,0x72,0x20,0x31,0x36,0x2e,0x30,0x2e,0x33, + 0x2c,0x20,0x53,0x56,0x47,0x20,0x45,0x78,0x70,0x6f, + 0x72,0x74,0x20,0x50,0x6c,0x75,0x67,0x2d,0x49,0x6e, + 0x20,0x2e,0x20,0x53,0x56,0x47,0x20,0x56,0x65,0x72, + 0x73,0x69,0x6f,0x6e,0x3a,0x20,0x36,0x2e,0x30,0x30, + 0x20,0x42,0x75,0x69,0x6c,0x64,0x20,0x30,0x29,0x20, + 0x20,0x2d,0x2d,0x3e,0x0d,0x0a,0x3c,0x21,0x44,0x4f, + 0x43,0x54,0x59,0x50,0x45,0x20,0x73,0x76,0x67,0x20, + 0x50,0x55,0x42,0x4c,0x49,0x43,0x20,0x22,0x2d,0x2f, + 0x2f,0x57,0x33,0x43,0x2f,0x2f,0x44,0x54,0x44,0x20, + 0x53,0x56,0x47,0x20,0x31,0x2e,0x31,0x2f,0x2f,0x45, + 0x4e,0x22,0x20,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f, + 0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72, + 0x67,0x2f,0x47,0x72,0x61,0x70,0x68,0x69,0x63,0x73, + 0x2f,0x53,0x56,0x47,0x2f,0x31,0x2e,0x31,0x2f,0x44, + 0x54,0x44,0x2f,0x73,0x76,0x67,0x31,0x31,0x2e,0x64, + 0x74,0x64,0x22,0x3e,0x0d,0x0a,0x3c,0x73,0x76,0x67, + 0x20,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x3d,0x22, + 0x31,0x2e,0x31,0x22,0x20,0x69,0x64,0x3d,0x22,0x5f, + 0x78,0x33,0x30,0x5f,0x22,0x20,0x78,0x6d,0x6c,0x6e, + 0x73,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f, + 0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72,0x67, + 0x2f,0x32,0x30,0x30,0x30,0x2f,0x73,0x76,0x67,0x22, + 0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3a,0x78,0x6c,0x69, + 0x6e,0x6b,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f, + 0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72, + 0x67,0x2f,0x31,0x39,0x39,0x39,0x2f,0x78,0x6c,0x69, + 0x6e,0x6b,0x22,0x20,0x78,0x3d,0x22,0x30,0x70,0x78, + 0x22,0x20,0x79,0x3d,0x22,0x30,0x70,0x78,0x22,0x0d, + 0x0a,0x09,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x22, + 0x33,0x37,0x2e,0x30,0x36,0x31,0x70,0x78,0x22,0x20, + 0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x22,0x33,0x37, + 0x2e,0x30,0x36,0x31,0x70,0x78,0x22,0x20,0x76,0x69, + 0x65,0x77,0x42,0x6f,0x78,0x3d,0x22,0x30,0x20,0x30, + 0x20,0x33,0x37,0x2e,0x30,0x36,0x31,0x20,0x33,0x37, + 0x2e,0x30,0x36,0x31,0x22,0x20,0x65,0x6e,0x61,0x62, + 0x6c,0x65,0x2d,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f, + 0x75,0x6e,0x64,0x3d,0x22,0x6e,0x65,0x77,0x20,0x30, + 0x20,0x30,0x20,0x33,0x37,0x2e,0x30,0x36,0x31,0x20, + 0x33,0x37,0x2e,0x30,0x36,0x31,0x22,0x20,0x78,0x6d, + 0x6c,0x3a,0x73,0x70,0x61,0x63,0x65,0x3d,0x22,0x70, + 0x72,0x65,0x73,0x65,0x72,0x76,0x65,0x22,0x3e,0x0d, + 0x0a,0x3c,0x67,0x3e,0x0d,0x0a,0x09,0x3c,0x67,0x3e, + 0x0d,0x0a,0x09,0x09,0x3c,0x67,0x3e,0x0d,0x0a,0x09, + 0x09,0x09,0x3c,0x70,0x61,0x74,0x68,0x20,0x66,0x69, + 0x6c,0x6c,0x3d,0x22,0x23,0x46,0x46,0x46,0x46,0x46, + 0x46,0x22,0x20,0x64,0x3d,0x22,0x4d,0x32,0x32,0x2e, + 0x30,0x38,0x36,0x2c,0x33,0x37,0x2e,0x30,0x36,0x68, + 0x2d,0x37,0x2e,0x31,0x31,0x31,0x63,0x2d,0x32,0x2e, + 0x32,0x38,0x39,0x2c,0x30,0x2d,0x33,0x2e,0x31,0x31, + 0x39,0x2d,0x31,0x2e,0x38,0x36,0x36,0x2d,0x33,0x2e, + 0x31,0x31,0x39,0x2d,0x33,0x2e,0x31,0x32,0x31,0x76, + 0x2d,0x38,0x2e,0x37,0x33,0x32,0x48,0x33,0x2e,0x31, + 0x32,0x31,0x43,0x30,0x2e,0x38,0x33,0x31,0x2c,0x32, + 0x35,0x2e,0x32,0x30,0x36,0x2c,0x30,0x2c,0x32,0x33, + 0x2e,0x33,0x34,0x2c,0x30,0x2c,0x32,0x32,0x2e,0x30, + 0x38,0x35,0x0d,0x0a,0x09,0x09,0x09,0x09,0x76,0x2d, + 0x37,0x2e,0x31,0x31,0x63,0x30,0x2d,0x32,0x2e,0x32, + 0x38,0x39,0x2c,0x31,0x2e,0x38,0x36,0x37,0x2d,0x33, + 0x2e,0x31,0x32,0x2c,0x33,0x2e,0x31,0x32,0x31,0x2d, + 0x33,0x2e,0x31,0x32,0x68,0x38,0x2e,0x37,0x33,0x33, + 0x56,0x33,0x2e,0x31,0x32,0x31,0x43,0x31,0x31,0x2e, + 0x38,0x35,0x35,0x2c,0x30,0x2e,0x38,0x33,0x31,0x2c, + 0x31,0x33,0x2e,0x37,0x32,0x2c,0x30,0x2c,0x31,0x34, + 0x2e,0x39,0x37,0x34,0x2c,0x30,0x68,0x37,0x2e,0x31, + 0x31,0x31,0x63,0x32,0x2e,0x32,0x39,0x2c,0x30,0x2c, + 0x33,0x2e,0x31,0x32,0x31,0x2c,0x31,0x2e,0x38,0x36, + 0x37,0x2c,0x33,0x2e,0x31,0x32,0x31,0x2c,0x33,0x2e, + 0x31,0x32,0x31,0x76,0x38,0x2e,0x37,0x33,0x32,0x0d, + 0x0a,0x09,0x09,0x09,0x09,0x68,0x38,0x2e,0x37,0x33, + 0x31,0x63,0x32,0x2e,0x32,0x39,0x2c,0x30,0x2c,0x33, + 0x2e,0x31,0x32,0x31,0x2c,0x31,0x2e,0x38,0x36,0x35, + 0x2c,0x33,0x2e,0x31,0x32,0x31,0x2c,0x33,0x2e,0x31, + 0x32,0x76,0x37,0x2e,0x31,0x31,0x63,0x30,0x2c,0x32, + 0x2e,0x32,0x39,0x2d,0x31,0x2e,0x38,0x36,0x36,0x2c, + 0x33,0x2e,0x31,0x32,0x31,0x2d,0x33,0x2e,0x31,0x32, + 0x31,0x2c,0x33,0x2e,0x31,0x32,0x31,0x68,0x2d,0x38, + 0x2e,0x37,0x33,0x31,0x76,0x38,0x2e,0x37,0x33,0x32, + 0x0d,0x0a,0x09,0x09,0x09,0x09,0x43,0x32,0x35,0x2e, + 0x32,0x30,0x37,0x2c,0x33,0x36,0x2e,0x32,0x32,0x39, + 0x2c,0x32,0x33,0x2e,0x33,0x34,0x31,0x2c,0x33,0x37, + 0x2e,0x30,0x36,0x2c,0x32,0x32,0x2e,0x30,0x38,0x36, + 0x2c,0x33,0x37,0x2e,0x30,0x36,0x7a,0x20,0x4d,0x33, + 0x2e,0x31,0x32,0x31,0x2c,0x31,0x33,0x2e,0x33,0x35, + 0x34,0x43,0x32,0x2e,0x37,0x34,0x35,0x2c,0x31,0x33, + 0x2e,0x33,0x35,0x39,0x2c,0x31,0x2e,0x35,0x2c,0x31, + 0x33,0x2e,0x34,0x39,0x33,0x2c,0x31,0x2e,0x35,0x2c, + 0x31,0x34,0x2e,0x39,0x37,0x34,0x76,0x37,0x2e,0x31, + 0x31,0x0d,0x0a,0x09,0x09,0x09,0x09,0x63,0x30,0x2e, + 0x30,0x30,0x36,0x2c,0x30,0x2e,0x33,0x37,0x36,0x2c, + 0x30,0x2e,0x31,0x33,0x39,0x2c,0x31,0x2e,0x36,0x32, + 0x31,0x2c,0x31,0x2e,0x36,0x32,0x31,0x2c,0x31,0x2e, + 0x36,0x32,0x31,0x68,0x31,0x30,0x2e,0x32,0x33,0x33, + 0x76,0x31,0x30,0x2e,0x32,0x33,0x32,0x63,0x30,0x2e, + 0x30,0x30,0x35,0x2c,0x30,0x2e,0x33,0x37,0x36,0x2c, + 0x30,0x2e,0x31,0x34,0x2c,0x31,0x2e,0x36,0x32,0x31, + 0x2c,0x31,0x2e,0x36,0x31,0x39,0x2c,0x31,0x2e,0x36, + 0x32,0x31,0x68,0x37,0x2e,0x31,0x30,0x38,0x0d,0x0a, + 0x09,0x09,0x09,0x09,0x63,0x30,0x2e,0x33,0x38,0x34, + 0x2d,0x30,0x2e,0x30,0x30,0x37,0x2c,0x31,0x2e,0x36, + 0x32,0x34,0x2d,0x30,0x2e,0x31,0x34,0x33,0x2c,0x31, + 0x2e,0x36,0x32,0x34,0x2d,0x31,0x2e,0x36,0x32,0x31, + 0x56,0x32,0x33,0x2e,0x37,0x30,0x36,0x68,0x31,0x30, + 0x2e,0x32,0x33,0x31,0x63,0x30,0x2e,0x33,0x37,0x36, + 0x2d,0x30,0x2e,0x30,0x30,0x36,0x2c,0x31,0x2e,0x36, + 0x32,0x31,0x2d,0x30,0x2e,0x31,0x34,0x2c,0x31,0x2e, + 0x36,0x32,0x31,0x2d,0x31,0x2e,0x36,0x32,0x31,0x76, + 0x2d,0x37,0x2e,0x31,0x31,0x0d,0x0a,0x09,0x09,0x09, + 0x09,0x63,0x2d,0x30,0x2e,0x30,0x30,0x36,0x2d,0x30, + 0x2e,0x33,0x37,0x36,0x2d,0x30,0x2e,0x31,0x34,0x2d, + 0x31,0x2e,0x36,0x32,0x2d,0x31,0x2e,0x36,0x32,0x31, + 0x2d,0x31,0x2e,0x36,0x32,0x68,0x2d,0x31,0x30,0x2e, + 0x32,0x33,0x56,0x33,0x2e,0x31,0x32,0x31,0x43,0x32, + 0x33,0x2e,0x37,0x30,0x31,0x2c,0x32,0x2e,0x37,0x34, + 0x35,0x2c,0x32,0x33,0x2e,0x35,0x36,0x37,0x2c,0x31, + 0x2e,0x35,0x2c,0x32,0x32,0x2e,0x30,0x38,0x36,0x2c, + 0x31,0x2e,0x35,0x68,0x2d,0x37,0x2e,0x31,0x31,0x31, + 0x0d,0x0a,0x09,0x09,0x09,0x09,0x63,0x2d,0x30,0x2e, + 0x33,0x37,0x36,0x2c,0x30,0x2e,0x30,0x30,0x36,0x2d, + 0x31,0x2e,0x36,0x31,0x39,0x2c,0x30,0x2e,0x31,0x34, + 0x2d,0x31,0x2e,0x36,0x31,0x39,0x2c,0x31,0x2e,0x36, + 0x32,0x31,0x76,0x31,0x30,0x2e,0x32,0x33,0x32,0x4c, + 0x33,0x2e,0x31,0x32,0x31,0x2c,0x31,0x33,0x2e,0x33, + 0x35,0x34,0x4c,0x33,0x2e,0x31,0x32,0x31,0x2c,0x31, + 0x33,0x2e,0x33,0x35,0x34,0x7a,0x22,0x2f,0x3e,0x0d, + 0x0a,0x09,0x09,0x3c,0x2f,0x67,0x3e,0x0d,0x0a,0x09, + 0x3c,0x2f,0x67,0x3e,0x0d,0x0a,0x09,0x3c,0x67,0x3e, + 0x0d,0x0a,0x09,0x09,0x3c,0x70,0x61,0x74,0x68,0x20, + 0x66,0x69,0x6c,0x6c,0x3d,0x22,0x23,0x46,0x46,0x46, + 0x46,0x46,0x46,0x22,0x20,0x64,0x3d,0x22,0x4d,0x31, + 0x38,0x2e,0x35,0x33,0x31,0x2c,0x32,0x32,0x2e,0x31, + 0x38,0x31,0x63,0x2d,0x32,0x2e,0x30,0x31,0x33,0x2c, + 0x30,0x2d,0x33,0x2e,0x36,0x34,0x39,0x2d,0x31,0x2e, + 0x36,0x33,0x39,0x2d,0x33,0x2e,0x36,0x34,0x39,0x2d, + 0x33,0x2e,0x36,0x35,0x31,0x73,0x31,0x2e,0x36,0x33, + 0x38,0x2d,0x33,0x2e,0x36,0x35,0x2c,0x33,0x2e,0x36, + 0x34,0x39,0x2d,0x33,0x2e,0x36,0x35,0x63,0x32,0x2e, + 0x30,0x31,0x33,0x2c,0x30,0x2c,0x33,0x2e,0x36,0x35, + 0x2c,0x31,0x2e,0x36,0x33,0x39,0x2c,0x33,0x2e,0x36, + 0x35,0x2c,0x33,0x2e,0x36,0x35,0x0d,0x0a,0x09,0x09, + 0x09,0x43,0x32,0x32,0x2e,0x31,0x38,0x32,0x2c,0x32, + 0x30,0x2e,0x35,0x34,0x33,0x2c,0x32,0x30,0x2e,0x35, + 0x34,0x34,0x2c,0x32,0x32,0x2e,0x31,0x38,0x31,0x2c, + 0x31,0x38,0x2e,0x35,0x33,0x31,0x2c,0x32,0x32,0x2e, + 0x31,0x38,0x31,0x7a,0x20,0x4d,0x31,0x38,0x2e,0x35, + 0x33,0x31,0x2c,0x31,0x36,0x2e,0x33,0x37,0x39,0x63, + 0x2d,0x31,0x2e,0x31,0x38,0x36,0x2c,0x30,0x2d,0x32, + 0x2e,0x31,0x34,0x39,0x2c,0x30,0x2e,0x39,0x36,0x35, + 0x2d,0x32,0x2e,0x31,0x34,0x39,0x2c,0x32,0x2e,0x31, + 0x35,0x73,0x30,0x2e,0x39,0x36,0x35,0x2c,0x32,0x2e, + 0x31,0x35,0x31,0x2c,0x32,0x2e,0x31,0x34,0x39,0x2c, + 0x32,0x2e,0x31,0x35,0x31,0x0d,0x0a,0x09,0x09,0x09, + 0x63,0x31,0x2e,0x31,0x38,0x36,0x2c,0x30,0x2c,0x32, + 0x2e,0x31,0x35,0x2d,0x30,0x2e,0x39,0x36,0x36,0x2c, + 0x32,0x2e,0x31,0x35,0x2d,0x32,0x2e,0x31,0x35,0x31, + 0x43,0x32,0x30,0x2e,0x36,0x38,0x32,0x2c,0x31,0x37, + 0x2e,0x33,0x34,0x34,0x2c,0x31,0x39,0x2e,0x37,0x31, + 0x37,0x2c,0x31,0x36,0x2e,0x33,0x37,0x39,0x2c,0x31, + 0x38,0x2e,0x35,0x33,0x31,0x2c,0x31,0x36,0x2e,0x33, + 0x37,0x39,0x7a,0x22,0x2f,0x3e,0x0d,0x0a,0x09,0x3c, + 0x2f,0x67,0x3e,0x0d,0x0a,0x09,0x3c,0x67,0x3e,0x0d, + 0x0a,0x09,0x09,0x3c,0x70,0x61,0x74,0x68,0x20,0x66, + 0x69,0x6c,0x6c,0x3d,0x22,0x23,0x46,0x46,0x46,0x46, + 0x46,0x46,0x22,0x20,0x64,0x3d,0x22,0x4d,0x32,0x31, + 0x2e,0x35,0x33,0x36,0x2c,0x38,0x2e,0x36,0x31,0x36, + 0x68,0x2d,0x36,0x2e,0x30,0x31,0x32,0x63,0x2d,0x30, + 0x2e,0x32,0x37,0x33,0x2c,0x30,0x2d,0x30,0x2e,0x35, + 0x32,0x35,0x2d,0x30,0x2e,0x31,0x35,0x2d,0x30,0x2e, + 0x36,0x35,0x37,0x2d,0x30,0x2e,0x33,0x39,0x63,0x2d, + 0x30,0x2e,0x31,0x33,0x32,0x2d,0x30,0x2e,0x32,0x34, + 0x31,0x2d,0x30,0x2e,0x31,0x32,0x31,0x2d,0x30,0x2e, + 0x35,0x33,0x34,0x2c,0x30,0x2e,0x30,0x32,0x36,0x2d, + 0x30,0x2e,0x37,0x36,0x36,0x6c,0x33,0x2e,0x30,0x30, + 0x35,0x2d,0x34,0x2e,0x36,0x38,0x34,0x0d,0x0a,0x09, + 0x09,0x09,0x63,0x30,0x2e,0x32,0x37,0x36,0x2d,0x30, + 0x2e,0x34,0x33,0x31,0x2c,0x30,0x2e,0x39,0x38,0x36, + 0x2d,0x30,0x2e,0x34,0x33,0x2c,0x31,0x2e,0x32,0x36, + 0x34,0x2c,0x30,0x6c,0x33,0x2e,0x30,0x30,0x35,0x2c, + 0x34,0x2e,0x36,0x38,0x34,0x63,0x30,0x2e,0x31,0x34, + 0x37,0x2c,0x30,0x2e,0x32,0x33,0x31,0x2c,0x30,0x2e, + 0x31,0x35,0x39,0x2c,0x30,0x2e,0x35,0x32,0x34,0x2c, + 0x30,0x2e,0x30,0x32,0x36,0x2c,0x30,0x2e,0x37,0x36, + 0x36,0x43,0x32,0x32,0x2e,0x30,0x36,0x33,0x2c,0x38, + 0x2e,0x34,0x36,0x36,0x2c,0x32,0x31,0x2e,0x38,0x31, + 0x31,0x2c,0x38,0x2e,0x36,0x31,0x36,0x2c,0x32,0x31, + 0x2e,0x35,0x33,0x36,0x2c,0x38,0x2e,0x36,0x31,0x36, + 0x7a,0x0d,0x0a,0x09,0x09,0x09,0x20,0x4d,0x31,0x36, + 0x2e,0x38,0x39,0x37,0x2c,0x37,0x2e,0x31,0x31,0x36, + 0x68,0x33,0x2e,0x32,0x36,0x38,0x4c,0x31,0x38,0x2e, + 0x35,0x33,0x2c,0x34,0x2e,0x35,0x37,0x31,0x4c,0x31, + 0x36,0x2e,0x38,0x39,0x37,0x2c,0x37,0x2e,0x31,0x31, + 0x36,0x7a,0x22,0x2f,0x3e,0x0d,0x0a,0x09,0x3c,0x2f, + 0x67,0x3e,0x0d,0x0a,0x09,0x3c,0x67,0x3e,0x0d,0x0a, + 0x09,0x09,0x3c,0x70,0x61,0x74,0x68,0x20,0x66,0x69, + 0x6c,0x6c,0x3d,0x22,0x23,0x46,0x46,0x46,0x46,0x46, + 0x46,0x22,0x20,0x64,0x3d,0x22,0x4d,0x37,0x2e,0x38, + 0x30,0x39,0x2c,0x32,0x32,0x2e,0x32,0x38,0x34,0x63, + 0x2d,0x30,0x2e,0x31,0x34,0x31,0x2c,0x30,0x2d,0x30, + 0x2e,0x32,0x38,0x32,0x2d,0x30,0x2e,0x30,0x34,0x2d, + 0x30,0x2e,0x34,0x30,0x35,0x2d,0x30,0x2e,0x31,0x31, + 0x39,0x4c,0x32,0x2e,0x37,0x32,0x2c,0x31,0x39,0x2e, + 0x31,0x36,0x32,0x63,0x2d,0x30,0x2e,0x32,0x31,0x35, + 0x2d,0x30,0x2e,0x31,0x33,0x38,0x2d,0x30,0x2e,0x33, + 0x34,0x35,0x2d,0x30,0x2e,0x33,0x37,0x36,0x2d,0x30, + 0x2e,0x33,0x34,0x35,0x2d,0x30,0x2e,0x36,0x33,0x31, + 0x0d,0x0a,0x09,0x09,0x09,0x73,0x30,0x2e,0x31,0x33, + 0x2d,0x30,0x2e,0x34,0x39,0x33,0x2c,0x30,0x2e,0x33, + 0x34,0x35,0x2d,0x30,0x2e,0x36,0x33,0x31,0x6c,0x34, + 0x2e,0x36,0x38,0x34,0x2d,0x33,0x2e,0x30,0x30,0x36, + 0x63,0x30,0x2e,0x32,0x33,0x2d,0x30,0x2e,0x31,0x34, + 0x38,0x2c,0x30,0x2e,0x35,0x32,0x34,0x2d,0x30,0x2e, + 0x31,0x35,0x38,0x2c,0x30,0x2e,0x37,0x36,0x36,0x2d, + 0x30,0x2e,0x30,0x32,0x37,0x63,0x30,0x2e,0x32,0x34, + 0x2c,0x30,0x2e,0x31,0x33,0x31,0x2c,0x30,0x2e,0x33, + 0x39,0x2c,0x30,0x2e,0x33,0x38,0x34,0x2c,0x30,0x2e, + 0x33,0x39,0x2c,0x30,0x2e,0x36,0x35,0x38,0x76,0x36, + 0x2e,0x30,0x31,0x0d,0x0a,0x09,0x09,0x09,0x63,0x30, + 0x2c,0x30,0x2e,0x32,0x37,0x34,0x2d,0x30,0x2e,0x31, + 0x34,0x38,0x2c,0x30,0x2e,0x35,0x32,0x36,0x2d,0x30, + 0x2e,0x33,0x39,0x2c,0x30,0x2e,0x36,0x35,0x38,0x43, + 0x38,0x2e,0x30,0x35,0x36,0x2c,0x32,0x32,0x2e,0x32, + 0x35,0x34,0x2c,0x37,0x2e,0x39,0x33,0x32,0x2c,0x32, + 0x32,0x2e,0x32,0x38,0x34,0x2c,0x37,0x2e,0x38,0x30, + 0x39,0x2c,0x32,0x32,0x2e,0x32,0x38,0x34,0x7a,0x20, + 0x4d,0x34,0x2e,0x35,0x31,0x34,0x2c,0x31,0x38,0x2e, + 0x35,0x33,0x6c,0x32,0x2e,0x35,0x34,0x35,0x2c,0x31, + 0x2e,0x36,0x33,0x32,0x76,0x2d,0x33,0x2e,0x32,0x36, + 0x35,0x4c,0x34,0x2e,0x35,0x31,0x34,0x2c,0x31,0x38, + 0x2e,0x35,0x33,0x7a,0x22,0x2f,0x3e,0x0d,0x0a,0x09, + 0x3c,0x2f,0x67,0x3e,0x0d,0x0a,0x09,0x3c,0x67,0x3e, + 0x0d,0x0a,0x09,0x09,0x3c,0x70,0x61,0x74,0x68,0x20, + 0x66,0x69,0x6c,0x6c,0x3d,0x22,0x23,0x46,0x46,0x46, + 0x46,0x46,0x46,0x22,0x20,0x64,0x3d,0x22,0x4d,0x32, + 0x39,0x2e,0x31,0x39,0x35,0x2c,0x32,0x32,0x2e,0x32, + 0x38,0x34,0x63,0x2d,0x30,0x2e,0x31,0x32,0x34,0x2c, + 0x30,0x2d,0x30,0x2e,0x32,0x34,0x36,0x2d,0x30,0x2e, + 0x30,0x33,0x2d,0x30,0x2e,0x33,0x35,0x38,0x2d,0x30, + 0x2e,0x30,0x39,0x32,0x63,0x2d,0x30,0x2e,0x32,0x34, + 0x31,0x2d,0x30,0x2e,0x31,0x33,0x32,0x2d,0x30,0x2e, + 0x33,0x39,0x32,0x2d,0x30,0x2e,0x33,0x38,0x34,0x2d, + 0x30,0x2e,0x33,0x39,0x32,0x2d,0x30,0x2e,0x36,0x35, + 0x38,0x76,0x2d,0x36,0x2e,0x30,0x31,0x0d,0x0a,0x09, + 0x09,0x09,0x63,0x30,0x2d,0x30,0x2e,0x32,0x37,0x34, + 0x2c,0x30,0x2e,0x31,0x34,0x39,0x2d,0x30,0x2e,0x35, + 0x32,0x36,0x2c,0x30,0x2e,0x33,0x39,0x32,0x2d,0x30, + 0x2e,0x36,0x35,0x38,0x63,0x30,0x2e,0x32,0x33,0x39, + 0x2d,0x30,0x2e,0x31,0x33,0x31,0x2c,0x30,0x2e,0x35, + 0x33,0x33,0x2d,0x30,0x2e,0x31,0x32,0x33,0x2c,0x30, + 0x2e,0x37,0x36,0x35,0x2c,0x30,0x2e,0x30,0x32,0x37, + 0x6c,0x34,0x2e,0x36,0x38,0x35,0x2c,0x33,0x2e,0x30, + 0x30,0x35,0x63,0x30,0x2e,0x32,0x31,0x35,0x2c,0x30, + 0x2e,0x31,0x33,0x38,0x2c,0x30,0x2e,0x33,0x34,0x35, + 0x2c,0x30,0x2e,0x33,0x37,0x36,0x2c,0x30,0x2e,0x33, + 0x34,0x35,0x2c,0x30,0x2e,0x36,0x33,0x31,0x0d,0x0a, + 0x09,0x09,0x09,0x73,0x2d,0x30,0x2e,0x31,0x33,0x2c, + 0x30,0x2e,0x34,0x39,0x33,0x2d,0x30,0x2e,0x33,0x34, + 0x35,0x2c,0x30,0x2e,0x36,0x33,0x31,0x6c,0x2d,0x34, + 0x2e,0x36,0x38,0x35,0x2c,0x33,0x2e,0x30,0x30,0x34, + 0x43,0x32,0x39,0x2e,0x34,0x37,0x38,0x2c,0x32,0x32, + 0x2e,0x32,0x34,0x34,0x2c,0x32,0x39,0x2e,0x33,0x33, + 0x36,0x2c,0x32,0x32,0x2e,0x32,0x38,0x34,0x2c,0x32, + 0x39,0x2e,0x31,0x39,0x35,0x2c,0x32,0x32,0x2e,0x32, + 0x38,0x34,0x7a,0x20,0x4d,0x32,0x39,0x2e,0x39,0x34, + 0x35,0x2c,0x31,0x36,0x2e,0x38,0x39,0x36,0x76,0x33, + 0x2e,0x32,0x36,0x36,0x6c,0x32,0x2e,0x35,0x34,0x36, + 0x2d,0x31,0x2e,0x36,0x33,0x33,0x0d,0x0a,0x09,0x09, + 0x09,0x4c,0x32,0x39,0x2e,0x39,0x34,0x35,0x2c,0x31, + 0x36,0x2e,0x38,0x39,0x36,0x7a,0x22,0x2f,0x3e,0x0d, + 0x0a,0x09,0x3c,0x2f,0x67,0x3e,0x0d,0x0a,0x09,0x3c, + 0x67,0x3e,0x0d,0x0a,0x09,0x09,0x3c,0x70,0x61,0x74, + 0x68,0x20,0x66,0x69,0x6c,0x6c,0x3d,0x22,0x23,0x46, + 0x46,0x46,0x46,0x46,0x46,0x22,0x20,0x64,0x3d,0x22, + 0x4d,0x31,0x38,0x2e,0x35,0x33,0x2c,0x33,0x33,0x2e, + 0x38,0x37,0x36,0x6c,0x33,0x2e,0x30,0x30,0x37,0x2d, + 0x34,0x2e,0x36,0x38,0x34,0x68,0x2d,0x36,0x2e,0x30, + 0x31,0x32,0x4c,0x31,0x38,0x2e,0x35,0x33,0x2c,0x33, + 0x33,0x2e,0x38,0x37,0x36,0x7a,0x22,0x2f,0x3e,0x0d, + 0x0a,0x09,0x09,0x3c,0x70,0x61,0x74,0x68,0x20,0x66, + 0x69,0x6c,0x6c,0x3d,0x22,0x23,0x46,0x46,0x46,0x46, + 0x46,0x46,0x22,0x20,0x64,0x3d,0x22,0x4d,0x31,0x38, + 0x2e,0x35,0x33,0x2c,0x33,0x34,0x2e,0x36,0x32,0x36, + 0x4c,0x31,0x38,0x2e,0x35,0x33,0x2c,0x33,0x34,0x2e, + 0x36,0x32,0x36,0x63,0x2d,0x30,0x2e,0x32,0x35,0x35, + 0x2c,0x30,0x2d,0x30,0x2e,0x34,0x39,0x32,0x2d,0x30, + 0x2e,0x31,0x33,0x2d,0x30,0x2e,0x36,0x33,0x31,0x2d, + 0x30,0x2e,0x33,0x34,0x35,0x6c,0x2d,0x33,0x2e,0x30, + 0x30,0x35,0x2d,0x34,0x2e,0x36,0x38,0x34,0x0d,0x0a, + 0x09,0x09,0x09,0x63,0x2d,0x30,0x2e,0x31,0x34,0x37, + 0x2d,0x30,0x2e,0x32,0x33,0x31,0x2d,0x30,0x2e,0x31, + 0x35,0x38,0x2d,0x30,0x2e,0x35,0x32,0x34,0x2d,0x30, + 0x2e,0x30,0x32,0x36,0x2d,0x30,0x2e,0x37,0x36,0x36, + 0x73,0x30,0x2e,0x33,0x38,0x34,0x2d,0x30,0x2e,0x33, + 0x39,0x31,0x2c,0x30,0x2e,0x36,0x35,0x37,0x2d,0x30, + 0x2e,0x33,0x39,0x31,0x68,0x36,0x2e,0x30,0x31,0x32, + 0x63,0x30,0x2e,0x32,0x37,0x33,0x2c,0x30,0x2c,0x30, + 0x2e,0x35,0x32,0x35,0x2c,0x30,0x2e,0x31,0x34,0x38, + 0x2c,0x30,0x2e,0x36,0x35,0x37,0x2c,0x30,0x2e,0x33, + 0x39,0x31,0x0d,0x0a,0x09,0x09,0x09,0x63,0x30,0x2e, + 0x31,0x33,0x33,0x2c,0x30,0x2e,0x32,0x34,0x2c,0x30, + 0x2e,0x31,0x32,0x31,0x2c,0x30,0x2e,0x35,0x33,0x33, + 0x2d,0x30,0x2e,0x30,0x32,0x36,0x2c,0x30,0x2e,0x37, + 0x36,0x36,0x6c,0x2d,0x33,0x2e,0x30,0x30,0x35,0x2c, + 0x34,0x2e,0x36,0x38,0x34,0x43,0x31,0x39,0x2e,0x30, + 0x32,0x33,0x2c,0x33,0x34,0x2e,0x34,0x39,0x36,0x2c, + 0x31,0x38,0x2e,0x37,0x38,0x36,0x2c,0x33,0x34,0x2e, + 0x36,0x32,0x36,0x2c,0x31,0x38,0x2e,0x35,0x33,0x2c, + 0x33,0x34,0x2e,0x36,0x32,0x36,0x7a,0x20,0x4d,0x31, + 0x36,0x2e,0x38,0x39,0x37,0x2c,0x32,0x39,0x2e,0x39, + 0x34,0x32,0x6c,0x31,0x2e,0x36,0x33,0x33,0x2c,0x32, + 0x2e,0x35,0x34,0x35,0x0d,0x0a,0x09,0x09,0x09,0x6c, + 0x31,0x2e,0x36,0x33,0x35,0x2d,0x32,0x2e,0x35,0x34, + 0x35,0x48,0x31,0x36,0x2e,0x38,0x39,0x37,0x7a,0x22, + 0x2f,0x3e,0x0d,0x0a,0x09,0x3c,0x2f,0x67,0x3e,0x0d, + 0x0a,0x3c,0x2f,0x67,0x3e,0x0d,0x0a,0x3c,0x2f,0x73, + 0x76,0x67,0x3e,0x0d,0x0a +}; diff --git a/data/converted/help_dpad_left_svg.cpp b/data/converted/help_dpad_left_svg.cpp new file mode 100644 index 000000000..3e3cca8ac --- /dev/null +++ b/data/converted/help_dpad_left_svg.cpp @@ -0,0 +1,329 @@ +//this file was auto-generated from "dpad_left.svg" by res2h + +#include "../Resources.h" + +const size_t help_dpad_left_svg_size = 3212; +const unsigned char help_dpad_left_svg_data[3212] = { + 0x3c,0x3f,0x78,0x6d,0x6c,0x20,0x76,0x65,0x72,0x73, + 0x69,0x6f,0x6e,0x3d,0x22,0x31,0x2e,0x30,0x22,0x20, + 0x65,0x6e,0x63,0x6f,0x64,0x69,0x6e,0x67,0x3d,0x22, + 0x75,0x74,0x66,0x2d,0x38,0x22,0x3f,0x3e,0x0d,0x0a, + 0x3c,0x21,0x2d,0x2d,0x20,0x47,0x65,0x6e,0x65,0x72, + 0x61,0x74,0x6f,0x72,0x3a,0x20,0x41,0x64,0x6f,0x62, + 0x65,0x20,0x49,0x6c,0x6c,0x75,0x73,0x74,0x72,0x61, + 0x74,0x6f,0x72,0x20,0x31,0x36,0x2e,0x30,0x2e,0x33, + 0x2c,0x20,0x53,0x56,0x47,0x20,0x45,0x78,0x70,0x6f, + 0x72,0x74,0x20,0x50,0x6c,0x75,0x67,0x2d,0x49,0x6e, + 0x20,0x2e,0x20,0x53,0x56,0x47,0x20,0x56,0x65,0x72, + 0x73,0x69,0x6f,0x6e,0x3a,0x20,0x36,0x2e,0x30,0x30, + 0x20,0x42,0x75,0x69,0x6c,0x64,0x20,0x30,0x29,0x20, + 0x20,0x2d,0x2d,0x3e,0x0d,0x0a,0x3c,0x21,0x44,0x4f, + 0x43,0x54,0x59,0x50,0x45,0x20,0x73,0x76,0x67,0x20, + 0x50,0x55,0x42,0x4c,0x49,0x43,0x20,0x22,0x2d,0x2f, + 0x2f,0x57,0x33,0x43,0x2f,0x2f,0x44,0x54,0x44,0x20, + 0x53,0x56,0x47,0x20,0x31,0x2e,0x31,0x2f,0x2f,0x45, + 0x4e,0x22,0x20,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f, + 0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72, + 0x67,0x2f,0x47,0x72,0x61,0x70,0x68,0x69,0x63,0x73, + 0x2f,0x53,0x56,0x47,0x2f,0x31,0x2e,0x31,0x2f,0x44, + 0x54,0x44,0x2f,0x73,0x76,0x67,0x31,0x31,0x2e,0x64, + 0x74,0x64,0x22,0x3e,0x0d,0x0a,0x3c,0x73,0x76,0x67, + 0x20,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x3d,0x22, + 0x31,0x2e,0x31,0x22,0x20,0x69,0x64,0x3d,0x22,0x5f, + 0x78,0x33,0x30,0x5f,0x22,0x20,0x78,0x6d,0x6c,0x6e, + 0x73,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f, + 0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72,0x67, + 0x2f,0x32,0x30,0x30,0x30,0x2f,0x73,0x76,0x67,0x22, + 0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3a,0x78,0x6c,0x69, + 0x6e,0x6b,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f, + 0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72, + 0x67,0x2f,0x31,0x39,0x39,0x39,0x2f,0x78,0x6c,0x69, + 0x6e,0x6b,0x22,0x20,0x78,0x3d,0x22,0x30,0x70,0x78, + 0x22,0x20,0x79,0x3d,0x22,0x30,0x70,0x78,0x22,0x0d, + 0x0a,0x09,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x22, + 0x33,0x37,0x2e,0x30,0x36,0x31,0x70,0x78,0x22,0x20, + 0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x22,0x33,0x37, + 0x2e,0x30,0x36,0x31,0x70,0x78,0x22,0x20,0x76,0x69, + 0x65,0x77,0x42,0x6f,0x78,0x3d,0x22,0x30,0x20,0x30, + 0x20,0x33,0x37,0x2e,0x30,0x36,0x31,0x20,0x33,0x37, + 0x2e,0x30,0x36,0x31,0x22,0x20,0x65,0x6e,0x61,0x62, + 0x6c,0x65,0x2d,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f, + 0x75,0x6e,0x64,0x3d,0x22,0x6e,0x65,0x77,0x20,0x30, + 0x20,0x30,0x20,0x33,0x37,0x2e,0x30,0x36,0x31,0x20, + 0x33,0x37,0x2e,0x30,0x36,0x31,0x22,0x20,0x78,0x6d, + 0x6c,0x3a,0x73,0x70,0x61,0x63,0x65,0x3d,0x22,0x70, + 0x72,0x65,0x73,0x65,0x72,0x76,0x65,0x22,0x3e,0x0d, + 0x0a,0x3c,0x67,0x3e,0x0d,0x0a,0x09,0x3c,0x67,0x3e, + 0x0d,0x0a,0x09,0x09,0x3c,0x67,0x3e,0x0d,0x0a,0x09, + 0x09,0x09,0x3c,0x70,0x61,0x74,0x68,0x20,0x66,0x69, + 0x6c,0x6c,0x3d,0x22,0x23,0x46,0x46,0x46,0x46,0x46, + 0x46,0x22,0x20,0x64,0x3d,0x22,0x4d,0x32,0x32,0x2e, + 0x30,0x38,0x36,0x2c,0x33,0x37,0x2e,0x30,0x36,0x68, + 0x2d,0x37,0x2e,0x31,0x31,0x31,0x63,0x2d,0x32,0x2e, + 0x32,0x38,0x39,0x2c,0x30,0x2d,0x33,0x2e,0x31,0x31, + 0x39,0x2d,0x31,0x2e,0x38,0x36,0x36,0x2d,0x33,0x2e, + 0x31,0x31,0x39,0x2d,0x33,0x2e,0x31,0x32,0x31,0x76, + 0x2d,0x38,0x2e,0x37,0x33,0x32,0x48,0x33,0x2e,0x31, + 0x32,0x31,0x43,0x30,0x2e,0x38,0x33,0x31,0x2c,0x32, + 0x35,0x2e,0x32,0x30,0x36,0x2c,0x30,0x2c,0x32,0x33, + 0x2e,0x33,0x34,0x2c,0x30,0x2c,0x32,0x32,0x2e,0x30, + 0x38,0x35,0x0d,0x0a,0x09,0x09,0x09,0x09,0x76,0x2d, + 0x37,0x2e,0x31,0x31,0x63,0x30,0x2d,0x32,0x2e,0x32, + 0x38,0x39,0x2c,0x31,0x2e,0x38,0x36,0x37,0x2d,0x33, + 0x2e,0x31,0x32,0x2c,0x33,0x2e,0x31,0x32,0x31,0x2d, + 0x33,0x2e,0x31,0x32,0x68,0x38,0x2e,0x37,0x33,0x33, + 0x56,0x33,0x2e,0x31,0x32,0x31,0x43,0x31,0x31,0x2e, + 0x38,0x35,0x35,0x2c,0x30,0x2e,0x38,0x33,0x31,0x2c, + 0x31,0x33,0x2e,0x37,0x32,0x2c,0x30,0x2c,0x31,0x34, + 0x2e,0x39,0x37,0x34,0x2c,0x30,0x68,0x37,0x2e,0x31, + 0x31,0x31,0x63,0x32,0x2e,0x32,0x39,0x2c,0x30,0x2c, + 0x33,0x2e,0x31,0x32,0x31,0x2c,0x31,0x2e,0x38,0x36, + 0x37,0x2c,0x33,0x2e,0x31,0x32,0x31,0x2c,0x33,0x2e, + 0x31,0x32,0x31,0x76,0x38,0x2e,0x37,0x33,0x32,0x0d, + 0x0a,0x09,0x09,0x09,0x09,0x68,0x38,0x2e,0x37,0x33, + 0x31,0x63,0x32,0x2e,0x32,0x39,0x2c,0x30,0x2c,0x33, + 0x2e,0x31,0x32,0x31,0x2c,0x31,0x2e,0x38,0x36,0x35, + 0x2c,0x33,0x2e,0x31,0x32,0x31,0x2c,0x33,0x2e,0x31, + 0x32,0x76,0x37,0x2e,0x31,0x31,0x63,0x30,0x2c,0x32, + 0x2e,0x32,0x39,0x2d,0x31,0x2e,0x38,0x36,0x36,0x2c, + 0x33,0x2e,0x31,0x32,0x31,0x2d,0x33,0x2e,0x31,0x32, + 0x31,0x2c,0x33,0x2e,0x31,0x32,0x31,0x68,0x2d,0x38, + 0x2e,0x37,0x33,0x31,0x76,0x38,0x2e,0x37,0x33,0x32, + 0x0d,0x0a,0x09,0x09,0x09,0x09,0x43,0x32,0x35,0x2e, + 0x32,0x30,0x37,0x2c,0x33,0x36,0x2e,0x32,0x32,0x39, + 0x2c,0x32,0x33,0x2e,0x33,0x34,0x31,0x2c,0x33,0x37, + 0x2e,0x30,0x36,0x2c,0x32,0x32,0x2e,0x30,0x38,0x36, + 0x2c,0x33,0x37,0x2e,0x30,0x36,0x7a,0x20,0x4d,0x33, + 0x2e,0x31,0x32,0x31,0x2c,0x31,0x33,0x2e,0x33,0x35, + 0x34,0x43,0x32,0x2e,0x37,0x34,0x35,0x2c,0x31,0x33, + 0x2e,0x33,0x35,0x39,0x2c,0x31,0x2e,0x35,0x2c,0x31, + 0x33,0x2e,0x34,0x39,0x33,0x2c,0x31,0x2e,0x35,0x2c, + 0x31,0x34,0x2e,0x39,0x37,0x34,0x76,0x37,0x2e,0x31, + 0x31,0x0d,0x0a,0x09,0x09,0x09,0x09,0x63,0x30,0x2e, + 0x30,0x30,0x36,0x2c,0x30,0x2e,0x33,0x37,0x36,0x2c, + 0x30,0x2e,0x31,0x33,0x39,0x2c,0x31,0x2e,0x36,0x32, + 0x31,0x2c,0x31,0x2e,0x36,0x32,0x31,0x2c,0x31,0x2e, + 0x36,0x32,0x31,0x68,0x31,0x30,0x2e,0x32,0x33,0x33, + 0x76,0x31,0x30,0x2e,0x32,0x33,0x32,0x63,0x30,0x2e, + 0x30,0x30,0x35,0x2c,0x30,0x2e,0x33,0x37,0x36,0x2c, + 0x30,0x2e,0x31,0x34,0x2c,0x31,0x2e,0x36,0x32,0x31, + 0x2c,0x31,0x2e,0x36,0x31,0x39,0x2c,0x31,0x2e,0x36, + 0x32,0x31,0x68,0x37,0x2e,0x31,0x30,0x38,0x0d,0x0a, + 0x09,0x09,0x09,0x09,0x63,0x30,0x2e,0x33,0x38,0x34, + 0x2d,0x30,0x2e,0x30,0x30,0x37,0x2c,0x31,0x2e,0x36, + 0x32,0x34,0x2d,0x30,0x2e,0x31,0x34,0x33,0x2c,0x31, + 0x2e,0x36,0x32,0x34,0x2d,0x31,0x2e,0x36,0x32,0x31, + 0x56,0x32,0x33,0x2e,0x37,0x30,0x36,0x68,0x31,0x30, + 0x2e,0x32,0x33,0x31,0x63,0x30,0x2e,0x33,0x37,0x36, + 0x2d,0x30,0x2e,0x30,0x30,0x36,0x2c,0x31,0x2e,0x36, + 0x32,0x31,0x2d,0x30,0x2e,0x31,0x34,0x2c,0x31,0x2e, + 0x36,0x32,0x31,0x2d,0x31,0x2e,0x36,0x32,0x31,0x76, + 0x2d,0x37,0x2e,0x31,0x31,0x0d,0x0a,0x09,0x09,0x09, + 0x09,0x63,0x2d,0x30,0x2e,0x30,0x30,0x36,0x2d,0x30, + 0x2e,0x33,0x37,0x36,0x2d,0x30,0x2e,0x31,0x34,0x2d, + 0x31,0x2e,0x36,0x32,0x2d,0x31,0x2e,0x36,0x32,0x31, + 0x2d,0x31,0x2e,0x36,0x32,0x68,0x2d,0x31,0x30,0x2e, + 0x32,0x33,0x56,0x33,0x2e,0x31,0x32,0x31,0x43,0x32, + 0x33,0x2e,0x37,0x30,0x31,0x2c,0x32,0x2e,0x37,0x34, + 0x35,0x2c,0x32,0x33,0x2e,0x35,0x36,0x37,0x2c,0x31, + 0x2e,0x35,0x2c,0x32,0x32,0x2e,0x30,0x38,0x36,0x2c, + 0x31,0x2e,0x35,0x68,0x2d,0x37,0x2e,0x31,0x31,0x31, + 0x0d,0x0a,0x09,0x09,0x09,0x09,0x63,0x2d,0x30,0x2e, + 0x33,0x37,0x36,0x2c,0x30,0x2e,0x30,0x30,0x36,0x2d, + 0x31,0x2e,0x36,0x31,0x39,0x2c,0x30,0x2e,0x31,0x34, + 0x2d,0x31,0x2e,0x36,0x31,0x39,0x2c,0x31,0x2e,0x36, + 0x32,0x31,0x76,0x31,0x30,0x2e,0x32,0x33,0x32,0x4c, + 0x33,0x2e,0x31,0x32,0x31,0x2c,0x31,0x33,0x2e,0x33, + 0x35,0x34,0x4c,0x33,0x2e,0x31,0x32,0x31,0x2c,0x31, + 0x33,0x2e,0x33,0x35,0x34,0x7a,0x22,0x2f,0x3e,0x0d, + 0x0a,0x09,0x09,0x3c,0x2f,0x67,0x3e,0x0d,0x0a,0x09, + 0x3c,0x2f,0x67,0x3e,0x0d,0x0a,0x09,0x3c,0x67,0x3e, + 0x0d,0x0a,0x09,0x09,0x3c,0x70,0x61,0x74,0x68,0x20, + 0x66,0x69,0x6c,0x6c,0x3d,0x22,0x23,0x46,0x46,0x46, + 0x46,0x46,0x46,0x22,0x20,0x64,0x3d,0x22,0x4d,0x31, + 0x38,0x2e,0x35,0x33,0x31,0x2c,0x32,0x32,0x2e,0x31, + 0x38,0x31,0x63,0x2d,0x32,0x2e,0x30,0x31,0x33,0x2c, + 0x30,0x2d,0x33,0x2e,0x36,0x34,0x39,0x2d,0x31,0x2e, + 0x36,0x33,0x39,0x2d,0x33,0x2e,0x36,0x34,0x39,0x2d, + 0x33,0x2e,0x36,0x35,0x31,0x73,0x31,0x2e,0x36,0x33, + 0x38,0x2d,0x33,0x2e,0x36,0x35,0x2c,0x33,0x2e,0x36, + 0x34,0x39,0x2d,0x33,0x2e,0x36,0x35,0x63,0x32,0x2e, + 0x30,0x31,0x33,0x2c,0x30,0x2c,0x33,0x2e,0x36,0x35, + 0x2c,0x31,0x2e,0x36,0x33,0x39,0x2c,0x33,0x2e,0x36, + 0x35,0x2c,0x33,0x2e,0x36,0x35,0x0d,0x0a,0x09,0x09, + 0x09,0x43,0x32,0x32,0x2e,0x31,0x38,0x32,0x2c,0x32, + 0x30,0x2e,0x35,0x34,0x33,0x2c,0x32,0x30,0x2e,0x35, + 0x34,0x34,0x2c,0x32,0x32,0x2e,0x31,0x38,0x31,0x2c, + 0x31,0x38,0x2e,0x35,0x33,0x31,0x2c,0x32,0x32,0x2e, + 0x31,0x38,0x31,0x7a,0x20,0x4d,0x31,0x38,0x2e,0x35, + 0x33,0x31,0x2c,0x31,0x36,0x2e,0x33,0x37,0x39,0x63, + 0x2d,0x31,0x2e,0x31,0x38,0x36,0x2c,0x30,0x2d,0x32, + 0x2e,0x31,0x34,0x39,0x2c,0x30,0x2e,0x39,0x36,0x35, + 0x2d,0x32,0x2e,0x31,0x34,0x39,0x2c,0x32,0x2e,0x31, + 0x35,0x73,0x30,0x2e,0x39,0x36,0x35,0x2c,0x32,0x2e, + 0x31,0x35,0x31,0x2c,0x32,0x2e,0x31,0x34,0x39,0x2c, + 0x32,0x2e,0x31,0x35,0x31,0x0d,0x0a,0x09,0x09,0x09, + 0x63,0x31,0x2e,0x31,0x38,0x36,0x2c,0x30,0x2c,0x32, + 0x2e,0x31,0x35,0x2d,0x30,0x2e,0x39,0x36,0x36,0x2c, + 0x32,0x2e,0x31,0x35,0x2d,0x32,0x2e,0x31,0x35,0x31, + 0x43,0x32,0x30,0x2e,0x36,0x38,0x32,0x2c,0x31,0x37, + 0x2e,0x33,0x34,0x34,0x2c,0x31,0x39,0x2e,0x37,0x31, + 0x37,0x2c,0x31,0x36,0x2e,0x33,0x37,0x39,0x2c,0x31, + 0x38,0x2e,0x35,0x33,0x31,0x2c,0x31,0x36,0x2e,0x33, + 0x37,0x39,0x7a,0x22,0x2f,0x3e,0x0d,0x0a,0x09,0x3c, + 0x2f,0x67,0x3e,0x0d,0x0a,0x09,0x3c,0x67,0x3e,0x0d, + 0x0a,0x09,0x09,0x3c,0x70,0x61,0x74,0x68,0x20,0x66, + 0x69,0x6c,0x6c,0x3d,0x22,0x23,0x46,0x46,0x46,0x46, + 0x46,0x46,0x22,0x20,0x64,0x3d,0x22,0x4d,0x32,0x31, + 0x2e,0x35,0x33,0x36,0x2c,0x38,0x2e,0x36,0x31,0x36, + 0x68,0x2d,0x36,0x2e,0x30,0x31,0x32,0x63,0x2d,0x30, + 0x2e,0x32,0x37,0x33,0x2c,0x30,0x2d,0x30,0x2e,0x35, + 0x32,0x35,0x2d,0x30,0x2e,0x31,0x35,0x2d,0x30,0x2e, + 0x36,0x35,0x37,0x2d,0x30,0x2e,0x33,0x39,0x63,0x2d, + 0x30,0x2e,0x31,0x33,0x32,0x2d,0x30,0x2e,0x32,0x34, + 0x31,0x2d,0x30,0x2e,0x31,0x32,0x31,0x2d,0x30,0x2e, + 0x35,0x33,0x34,0x2c,0x30,0x2e,0x30,0x32,0x36,0x2d, + 0x30,0x2e,0x37,0x36,0x36,0x6c,0x33,0x2e,0x30,0x30, + 0x35,0x2d,0x34,0x2e,0x36,0x38,0x34,0x0d,0x0a,0x09, + 0x09,0x09,0x63,0x30,0x2e,0x32,0x37,0x36,0x2d,0x30, + 0x2e,0x34,0x33,0x31,0x2c,0x30,0x2e,0x39,0x38,0x36, + 0x2d,0x30,0x2e,0x34,0x33,0x2c,0x31,0x2e,0x32,0x36, + 0x34,0x2c,0x30,0x6c,0x33,0x2e,0x30,0x30,0x35,0x2c, + 0x34,0x2e,0x36,0x38,0x34,0x63,0x30,0x2e,0x31,0x34, + 0x37,0x2c,0x30,0x2e,0x32,0x33,0x31,0x2c,0x30,0x2e, + 0x31,0x35,0x39,0x2c,0x30,0x2e,0x35,0x32,0x34,0x2c, + 0x30,0x2e,0x30,0x32,0x36,0x2c,0x30,0x2e,0x37,0x36, + 0x36,0x43,0x32,0x32,0x2e,0x30,0x36,0x33,0x2c,0x38, + 0x2e,0x34,0x36,0x36,0x2c,0x32,0x31,0x2e,0x38,0x31, + 0x31,0x2c,0x38,0x2e,0x36,0x31,0x36,0x2c,0x32,0x31, + 0x2e,0x35,0x33,0x36,0x2c,0x38,0x2e,0x36,0x31,0x36, + 0x7a,0x0d,0x0a,0x09,0x09,0x09,0x20,0x4d,0x31,0x36, + 0x2e,0x38,0x39,0x37,0x2c,0x37,0x2e,0x31,0x31,0x36, + 0x68,0x33,0x2e,0x32,0x36,0x38,0x4c,0x31,0x38,0x2e, + 0x35,0x33,0x2c,0x34,0x2e,0x35,0x37,0x31,0x4c,0x31, + 0x36,0x2e,0x38,0x39,0x37,0x2c,0x37,0x2e,0x31,0x31, + 0x36,0x7a,0x22,0x2f,0x3e,0x0d,0x0a,0x09,0x3c,0x2f, + 0x67,0x3e,0x0d,0x0a,0x09,0x3c,0x67,0x3e,0x0d,0x0a, + 0x09,0x09,0x3c,0x70,0x61,0x74,0x68,0x20,0x66,0x69, + 0x6c,0x6c,0x3d,0x22,0x23,0x46,0x46,0x46,0x46,0x46, + 0x46,0x22,0x20,0x64,0x3d,0x22,0x4d,0x33,0x2e,0x31, + 0x32,0x35,0x2c,0x31,0x38,0x2e,0x35,0x33,0x6c,0x34, + 0x2e,0x36,0x38,0x34,0x2c,0x33,0x2e,0x30,0x30,0x34, + 0x76,0x2d,0x36,0x2e,0x30,0x31,0x4c,0x33,0x2e,0x31, + 0x32,0x35,0x2c,0x31,0x38,0x2e,0x35,0x33,0x7a,0x22, + 0x2f,0x3e,0x0d,0x0a,0x09,0x09,0x3c,0x70,0x61,0x74, + 0x68,0x20,0x66,0x69,0x6c,0x6c,0x3d,0x22,0x23,0x46, + 0x46,0x46,0x46,0x46,0x46,0x22,0x20,0x64,0x3d,0x22, + 0x4d,0x37,0x2e,0x38,0x30,0x39,0x2c,0x32,0x32,0x2e, + 0x32,0x38,0x34,0x63,0x2d,0x30,0x2e,0x31,0x34,0x31, + 0x2c,0x30,0x2d,0x30,0x2e,0x32,0x38,0x32,0x2d,0x30, + 0x2e,0x30,0x34,0x2d,0x30,0x2e,0x34,0x30,0x35,0x2d, + 0x30,0x2e,0x31,0x31,0x39,0x4c,0x32,0x2e,0x37,0x32, + 0x2c,0x31,0x39,0x2e,0x31,0x36,0x32,0x63,0x2d,0x30, + 0x2e,0x32,0x31,0x35,0x2d,0x30,0x2e,0x31,0x33,0x38, + 0x2d,0x30,0x2e,0x33,0x34,0x35,0x2d,0x30,0x2e,0x33, + 0x37,0x36,0x2d,0x30,0x2e,0x33,0x34,0x35,0x2d,0x30, + 0x2e,0x36,0x33,0x31,0x0d,0x0a,0x09,0x09,0x09,0x73, + 0x30,0x2e,0x31,0x33,0x2d,0x30,0x2e,0x34,0x39,0x33, + 0x2c,0x30,0x2e,0x33,0x34,0x35,0x2d,0x30,0x2e,0x36, + 0x33,0x31,0x6c,0x34,0x2e,0x36,0x38,0x34,0x2d,0x33, + 0x2e,0x30,0x30,0x36,0x63,0x30,0x2e,0x32,0x33,0x2d, + 0x30,0x2e,0x31,0x34,0x38,0x2c,0x30,0x2e,0x35,0x32, + 0x34,0x2d,0x30,0x2e,0x31,0x35,0x38,0x2c,0x30,0x2e, + 0x37,0x36,0x36,0x2d,0x30,0x2e,0x30,0x32,0x37,0x63, + 0x30,0x2e,0x32,0x34,0x2c,0x30,0x2e,0x31,0x33,0x31, + 0x2c,0x30,0x2e,0x33,0x39,0x2c,0x30,0x2e,0x33,0x38, + 0x34,0x2c,0x30,0x2e,0x33,0x39,0x2c,0x30,0x2e,0x36, + 0x35,0x38,0x76,0x36,0x2e,0x30,0x31,0x0d,0x0a,0x09, + 0x09,0x09,0x63,0x30,0x2c,0x30,0x2e,0x32,0x37,0x34, + 0x2d,0x30,0x2e,0x31,0x34,0x38,0x2c,0x30,0x2e,0x35, + 0x32,0x36,0x2d,0x30,0x2e,0x33,0x39,0x2c,0x30,0x2e, + 0x36,0x35,0x38,0x43,0x38,0x2e,0x30,0x35,0x36,0x2c, + 0x32,0x32,0x2e,0x32,0x35,0x34,0x2c,0x37,0x2e,0x39, + 0x33,0x32,0x2c,0x32,0x32,0x2e,0x32,0x38,0x34,0x2c, + 0x37,0x2e,0x38,0x30,0x39,0x2c,0x32,0x32,0x2e,0x32, + 0x38,0x34,0x7a,0x20,0x4d,0x34,0x2e,0x35,0x31,0x34, + 0x2c,0x31,0x38,0x2e,0x35,0x33,0x6c,0x32,0x2e,0x35, + 0x34,0x35,0x2c,0x31,0x2e,0x36,0x33,0x32,0x76,0x2d, + 0x33,0x2e,0x32,0x36,0x35,0x4c,0x34,0x2e,0x35,0x31, + 0x34,0x2c,0x31,0x38,0x2e,0x35,0x33,0x7a,0x22,0x2f, + 0x3e,0x0d,0x0a,0x09,0x3c,0x2f,0x67,0x3e,0x0d,0x0a, + 0x09,0x3c,0x67,0x3e,0x0d,0x0a,0x09,0x09,0x3c,0x70, + 0x61,0x74,0x68,0x20,0x66,0x69,0x6c,0x6c,0x3d,0x22, + 0x23,0x46,0x46,0x46,0x46,0x46,0x46,0x22,0x20,0x64, + 0x3d,0x22,0x4d,0x32,0x39,0x2e,0x31,0x39,0x35,0x2c, + 0x32,0x32,0x2e,0x32,0x38,0x34,0x63,0x2d,0x30,0x2e, + 0x31,0x32,0x34,0x2c,0x30,0x2d,0x30,0x2e,0x32,0x34, + 0x36,0x2d,0x30,0x2e,0x30,0x33,0x2d,0x30,0x2e,0x33, + 0x35,0x38,0x2d,0x30,0x2e,0x30,0x39,0x32,0x63,0x2d, + 0x30,0x2e,0x32,0x34,0x31,0x2d,0x30,0x2e,0x31,0x33, + 0x32,0x2d,0x30,0x2e,0x33,0x39,0x32,0x2d,0x30,0x2e, + 0x33,0x38,0x34,0x2d,0x30,0x2e,0x33,0x39,0x32,0x2d, + 0x30,0x2e,0x36,0x35,0x38,0x76,0x2d,0x36,0x2e,0x30, + 0x31,0x0d,0x0a,0x09,0x09,0x09,0x63,0x30,0x2d,0x30, + 0x2e,0x32,0x37,0x34,0x2c,0x30,0x2e,0x31,0x34,0x39, + 0x2d,0x30,0x2e,0x35,0x32,0x36,0x2c,0x30,0x2e,0x33, + 0x39,0x32,0x2d,0x30,0x2e,0x36,0x35,0x38,0x63,0x30, + 0x2e,0x32,0x33,0x39,0x2d,0x30,0x2e,0x31,0x33,0x31, + 0x2c,0x30,0x2e,0x35,0x33,0x33,0x2d,0x30,0x2e,0x31, + 0x32,0x33,0x2c,0x30,0x2e,0x37,0x36,0x35,0x2c,0x30, + 0x2e,0x30,0x32,0x37,0x6c,0x34,0x2e,0x36,0x38,0x35, + 0x2c,0x33,0x2e,0x30,0x30,0x35,0x63,0x30,0x2e,0x32, + 0x31,0x35,0x2c,0x30,0x2e,0x31,0x33,0x38,0x2c,0x30, + 0x2e,0x33,0x34,0x35,0x2c,0x30,0x2e,0x33,0x37,0x36, + 0x2c,0x30,0x2e,0x33,0x34,0x35,0x2c,0x30,0x2e,0x36, + 0x33,0x31,0x0d,0x0a,0x09,0x09,0x09,0x73,0x2d,0x30, + 0x2e,0x31,0x33,0x2c,0x30,0x2e,0x34,0x39,0x33,0x2d, + 0x30,0x2e,0x33,0x34,0x35,0x2c,0x30,0x2e,0x36,0x33, + 0x31,0x6c,0x2d,0x34,0x2e,0x36,0x38,0x35,0x2c,0x33, + 0x2e,0x30,0x30,0x34,0x43,0x32,0x39,0x2e,0x34,0x37, + 0x38,0x2c,0x32,0x32,0x2e,0x32,0x34,0x34,0x2c,0x32, + 0x39,0x2e,0x33,0x33,0x36,0x2c,0x32,0x32,0x2e,0x32, + 0x38,0x34,0x2c,0x32,0x39,0x2e,0x31,0x39,0x35,0x2c, + 0x32,0x32,0x2e,0x32,0x38,0x34,0x7a,0x20,0x4d,0x32, + 0x39,0x2e,0x39,0x34,0x35,0x2c,0x31,0x36,0x2e,0x38, + 0x39,0x36,0x76,0x33,0x2e,0x32,0x36,0x36,0x6c,0x32, + 0x2e,0x35,0x34,0x36,0x2d,0x31,0x2e,0x36,0x33,0x33, + 0x0d,0x0a,0x09,0x09,0x09,0x4c,0x32,0x39,0x2e,0x39, + 0x34,0x35,0x2c,0x31,0x36,0x2e,0x38,0x39,0x36,0x7a, + 0x22,0x2f,0x3e,0x0d,0x0a,0x09,0x3c,0x2f,0x67,0x3e, + 0x0d,0x0a,0x09,0x3c,0x67,0x3e,0x0d,0x0a,0x09,0x09, + 0x3c,0x70,0x61,0x74,0x68,0x20,0x66,0x69,0x6c,0x6c, + 0x3d,0x22,0x23,0x46,0x46,0x46,0x46,0x46,0x46,0x22, + 0x20,0x64,0x3d,0x22,0x4d,0x31,0x38,0x2e,0x35,0x33, + 0x2c,0x33,0x34,0x2e,0x36,0x32,0x36,0x4c,0x31,0x38, + 0x2e,0x35,0x33,0x2c,0x33,0x34,0x2e,0x36,0x32,0x36, + 0x63,0x2d,0x30,0x2e,0x32,0x35,0x35,0x2c,0x30,0x2d, + 0x30,0x2e,0x34,0x39,0x32,0x2d,0x30,0x2e,0x31,0x33, + 0x2d,0x30,0x2e,0x36,0x33,0x31,0x2d,0x30,0x2e,0x33, + 0x34,0x35,0x6c,0x2d,0x33,0x2e,0x30,0x30,0x35,0x2d, + 0x34,0x2e,0x36,0x38,0x34,0x0d,0x0a,0x09,0x09,0x09, + 0x63,0x2d,0x30,0x2e,0x31,0x34,0x37,0x2d,0x30,0x2e, + 0x32,0x33,0x31,0x2d,0x30,0x2e,0x31,0x35,0x38,0x2d, + 0x30,0x2e,0x35,0x32,0x34,0x2d,0x30,0x2e,0x30,0x32, + 0x36,0x2d,0x30,0x2e,0x37,0x36,0x36,0x73,0x30,0x2e, + 0x33,0x38,0x34,0x2d,0x30,0x2e,0x33,0x39,0x31,0x2c, + 0x30,0x2e,0x36,0x35,0x37,0x2d,0x30,0x2e,0x33,0x39, + 0x31,0x68,0x36,0x2e,0x30,0x31,0x32,0x63,0x30,0x2e, + 0x32,0x37,0x33,0x2c,0x30,0x2c,0x30,0x2e,0x35,0x32, + 0x35,0x2c,0x30,0x2e,0x31,0x34,0x38,0x2c,0x30,0x2e, + 0x36,0x35,0x37,0x2c,0x30,0x2e,0x33,0x39,0x31,0x0d, + 0x0a,0x09,0x09,0x09,0x63,0x30,0x2e,0x31,0x33,0x33, + 0x2c,0x30,0x2e,0x32,0x34,0x2c,0x30,0x2e,0x31,0x32, + 0x31,0x2c,0x30,0x2e,0x35,0x33,0x33,0x2d,0x30,0x2e, + 0x30,0x32,0x36,0x2c,0x30,0x2e,0x37,0x36,0x36,0x6c, + 0x2d,0x33,0x2e,0x30,0x30,0x35,0x2c,0x34,0x2e,0x36, + 0x38,0x34,0x43,0x31,0x39,0x2e,0x30,0x32,0x33,0x2c, + 0x33,0x34,0x2e,0x34,0x39,0x36,0x2c,0x31,0x38,0x2e, + 0x37,0x38,0x36,0x2c,0x33,0x34,0x2e,0x36,0x32,0x36, + 0x2c,0x31,0x38,0x2e,0x35,0x33,0x2c,0x33,0x34,0x2e, + 0x36,0x32,0x36,0x7a,0x20,0x4d,0x31,0x36,0x2e,0x38, + 0x39,0x37,0x2c,0x32,0x39,0x2e,0x39,0x34,0x32,0x6c, + 0x31,0x2e,0x36,0x33,0x33,0x2c,0x32,0x2e,0x35,0x34, + 0x35,0x0d,0x0a,0x09,0x09,0x09,0x6c,0x31,0x2e,0x36, + 0x33,0x35,0x2d,0x32,0x2e,0x35,0x34,0x35,0x48,0x31, + 0x36,0x2e,0x38,0x39,0x37,0x7a,0x22,0x2f,0x3e,0x0d, + 0x0a,0x09,0x3c,0x2f,0x67,0x3e,0x0d,0x0a,0x3c,0x2f, + 0x67,0x3e,0x0d,0x0a,0x3c,0x2f,0x73,0x76,0x67,0x3e, + 0x0d,0x0a +}; diff --git a/data/converted/help_dpad_leftright_svg.cpp b/data/converted/help_dpad_leftright_svg.cpp new file mode 100644 index 000000000..0e9f86ce3 --- /dev/null +++ b/data/converted/help_dpad_leftright_svg.cpp @@ -0,0 +1,336 @@ +//this file was auto-generated from "dpad_leftright.svg" by res2h + +#include "../Resources.h" + +const size_t help_dpad_leftright_svg_size = 3290; +const unsigned char help_dpad_leftright_svg_data[3290] = { + 0x3c,0x3f,0x78,0x6d,0x6c,0x20,0x76,0x65,0x72,0x73, + 0x69,0x6f,0x6e,0x3d,0x22,0x31,0x2e,0x30,0x22,0x20, + 0x65,0x6e,0x63,0x6f,0x64,0x69,0x6e,0x67,0x3d,0x22, + 0x75,0x74,0x66,0x2d,0x38,0x22,0x3f,0x3e,0x0d,0x0a, + 0x3c,0x21,0x2d,0x2d,0x20,0x47,0x65,0x6e,0x65,0x72, + 0x61,0x74,0x6f,0x72,0x3a,0x20,0x41,0x64,0x6f,0x62, + 0x65,0x20,0x49,0x6c,0x6c,0x75,0x73,0x74,0x72,0x61, + 0x74,0x6f,0x72,0x20,0x31,0x36,0x2e,0x30,0x2e,0x33, + 0x2c,0x20,0x53,0x56,0x47,0x20,0x45,0x78,0x70,0x6f, + 0x72,0x74,0x20,0x50,0x6c,0x75,0x67,0x2d,0x49,0x6e, + 0x20,0x2e,0x20,0x53,0x56,0x47,0x20,0x56,0x65,0x72, + 0x73,0x69,0x6f,0x6e,0x3a,0x20,0x36,0x2e,0x30,0x30, + 0x20,0x42,0x75,0x69,0x6c,0x64,0x20,0x30,0x29,0x20, + 0x20,0x2d,0x2d,0x3e,0x0d,0x0a,0x3c,0x21,0x44,0x4f, + 0x43,0x54,0x59,0x50,0x45,0x20,0x73,0x76,0x67,0x20, + 0x50,0x55,0x42,0x4c,0x49,0x43,0x20,0x22,0x2d,0x2f, + 0x2f,0x57,0x33,0x43,0x2f,0x2f,0x44,0x54,0x44,0x20, + 0x53,0x56,0x47,0x20,0x31,0x2e,0x31,0x2f,0x2f,0x45, + 0x4e,0x22,0x20,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f, + 0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72, + 0x67,0x2f,0x47,0x72,0x61,0x70,0x68,0x69,0x63,0x73, + 0x2f,0x53,0x56,0x47,0x2f,0x31,0x2e,0x31,0x2f,0x44, + 0x54,0x44,0x2f,0x73,0x76,0x67,0x31,0x31,0x2e,0x64, + 0x74,0x64,0x22,0x3e,0x0d,0x0a,0x3c,0x73,0x76,0x67, + 0x20,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x3d,0x22, + 0x31,0x2e,0x31,0x22,0x20,0x69,0x64,0x3d,0x22,0x5f, + 0x78,0x33,0x30,0x5f,0x22,0x20,0x78,0x6d,0x6c,0x6e, + 0x73,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f, + 0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72,0x67, + 0x2f,0x32,0x30,0x30,0x30,0x2f,0x73,0x76,0x67,0x22, + 0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3a,0x78,0x6c,0x69, + 0x6e,0x6b,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f, + 0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72, + 0x67,0x2f,0x31,0x39,0x39,0x39,0x2f,0x78,0x6c,0x69, + 0x6e,0x6b,0x22,0x20,0x78,0x3d,0x22,0x30,0x70,0x78, + 0x22,0x20,0x79,0x3d,0x22,0x30,0x70,0x78,0x22,0x0d, + 0x0a,0x09,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x22, + 0x33,0x37,0x2e,0x30,0x36,0x31,0x70,0x78,0x22,0x20, + 0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x22,0x33,0x37, + 0x2e,0x30,0x36,0x31,0x70,0x78,0x22,0x20,0x76,0x69, + 0x65,0x77,0x42,0x6f,0x78,0x3d,0x22,0x30,0x20,0x30, + 0x20,0x33,0x37,0x2e,0x30,0x36,0x31,0x20,0x33,0x37, + 0x2e,0x30,0x36,0x31,0x22,0x20,0x65,0x6e,0x61,0x62, + 0x6c,0x65,0x2d,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f, + 0x75,0x6e,0x64,0x3d,0x22,0x6e,0x65,0x77,0x20,0x30, + 0x20,0x30,0x20,0x33,0x37,0x2e,0x30,0x36,0x31,0x20, + 0x33,0x37,0x2e,0x30,0x36,0x31,0x22,0x20,0x78,0x6d, + 0x6c,0x3a,0x73,0x70,0x61,0x63,0x65,0x3d,0x22,0x70, + 0x72,0x65,0x73,0x65,0x72,0x76,0x65,0x22,0x3e,0x0d, + 0x0a,0x3c,0x67,0x3e,0x0d,0x0a,0x09,0x3c,0x67,0x3e, + 0x0d,0x0a,0x09,0x09,0x3c,0x67,0x3e,0x0d,0x0a,0x09, + 0x09,0x09,0x3c,0x70,0x61,0x74,0x68,0x20,0x66,0x69, + 0x6c,0x6c,0x3d,0x22,0x23,0x46,0x46,0x46,0x46,0x46, + 0x46,0x22,0x20,0x64,0x3d,0x22,0x4d,0x32,0x32,0x2e, + 0x30,0x38,0x36,0x2c,0x33,0x37,0x2e,0x30,0x36,0x68, + 0x2d,0x37,0x2e,0x31,0x31,0x31,0x63,0x2d,0x32,0x2e, + 0x32,0x38,0x39,0x2c,0x30,0x2d,0x33,0x2e,0x31,0x31, + 0x39,0x2d,0x31,0x2e,0x38,0x36,0x36,0x2d,0x33,0x2e, + 0x31,0x31,0x39,0x2d,0x33,0x2e,0x31,0x32,0x31,0x76, + 0x2d,0x38,0x2e,0x37,0x33,0x32,0x48,0x33,0x2e,0x31, + 0x32,0x31,0x43,0x30,0x2e,0x38,0x33,0x31,0x2c,0x32, + 0x35,0x2e,0x32,0x30,0x36,0x2c,0x30,0x2c,0x32,0x33, + 0x2e,0x33,0x34,0x2c,0x30,0x2c,0x32,0x32,0x2e,0x30, + 0x38,0x35,0x0d,0x0a,0x09,0x09,0x09,0x09,0x76,0x2d, + 0x37,0x2e,0x31,0x31,0x63,0x30,0x2d,0x32,0x2e,0x32, + 0x38,0x39,0x2c,0x31,0x2e,0x38,0x36,0x37,0x2d,0x33, + 0x2e,0x31,0x32,0x2c,0x33,0x2e,0x31,0x32,0x31,0x2d, + 0x33,0x2e,0x31,0x32,0x68,0x38,0x2e,0x37,0x33,0x33, + 0x56,0x33,0x2e,0x31,0x32,0x31,0x43,0x31,0x31,0x2e, + 0x38,0x35,0x35,0x2c,0x30,0x2e,0x38,0x33,0x31,0x2c, + 0x31,0x33,0x2e,0x37,0x32,0x2c,0x30,0x2c,0x31,0x34, + 0x2e,0x39,0x37,0x34,0x2c,0x30,0x68,0x37,0x2e,0x31, + 0x31,0x31,0x63,0x32,0x2e,0x32,0x39,0x2c,0x30,0x2c, + 0x33,0x2e,0x31,0x32,0x31,0x2c,0x31,0x2e,0x38,0x36, + 0x37,0x2c,0x33,0x2e,0x31,0x32,0x31,0x2c,0x33,0x2e, + 0x31,0x32,0x31,0x76,0x38,0x2e,0x37,0x33,0x32,0x0d, + 0x0a,0x09,0x09,0x09,0x09,0x68,0x38,0x2e,0x37,0x33, + 0x31,0x63,0x32,0x2e,0x32,0x39,0x2c,0x30,0x2c,0x33, + 0x2e,0x31,0x32,0x31,0x2c,0x31,0x2e,0x38,0x36,0x35, + 0x2c,0x33,0x2e,0x31,0x32,0x31,0x2c,0x33,0x2e,0x31, + 0x32,0x76,0x37,0x2e,0x31,0x31,0x63,0x30,0x2c,0x32, + 0x2e,0x32,0x39,0x2d,0x31,0x2e,0x38,0x36,0x36,0x2c, + 0x33,0x2e,0x31,0x32,0x31,0x2d,0x33,0x2e,0x31,0x32, + 0x31,0x2c,0x33,0x2e,0x31,0x32,0x31,0x68,0x2d,0x38, + 0x2e,0x37,0x33,0x31,0x76,0x38,0x2e,0x37,0x33,0x32, + 0x0d,0x0a,0x09,0x09,0x09,0x09,0x43,0x32,0x35,0x2e, + 0x32,0x30,0x37,0x2c,0x33,0x36,0x2e,0x32,0x32,0x39, + 0x2c,0x32,0x33,0x2e,0x33,0x34,0x31,0x2c,0x33,0x37, + 0x2e,0x30,0x36,0x2c,0x32,0x32,0x2e,0x30,0x38,0x36, + 0x2c,0x33,0x37,0x2e,0x30,0x36,0x7a,0x20,0x4d,0x33, + 0x2e,0x31,0x32,0x31,0x2c,0x31,0x33,0x2e,0x33,0x35, + 0x34,0x43,0x32,0x2e,0x37,0x34,0x35,0x2c,0x31,0x33, + 0x2e,0x33,0x35,0x39,0x2c,0x31,0x2e,0x35,0x2c,0x31, + 0x33,0x2e,0x34,0x39,0x33,0x2c,0x31,0x2e,0x35,0x2c, + 0x31,0x34,0x2e,0x39,0x37,0x34,0x76,0x37,0x2e,0x31, + 0x31,0x0d,0x0a,0x09,0x09,0x09,0x09,0x63,0x30,0x2e, + 0x30,0x30,0x36,0x2c,0x30,0x2e,0x33,0x37,0x36,0x2c, + 0x30,0x2e,0x31,0x33,0x39,0x2c,0x31,0x2e,0x36,0x32, + 0x31,0x2c,0x31,0x2e,0x36,0x32,0x31,0x2c,0x31,0x2e, + 0x36,0x32,0x31,0x68,0x31,0x30,0x2e,0x32,0x33,0x33, + 0x76,0x31,0x30,0x2e,0x32,0x33,0x32,0x63,0x30,0x2e, + 0x30,0x30,0x35,0x2c,0x30,0x2e,0x33,0x37,0x36,0x2c, + 0x30,0x2e,0x31,0x34,0x2c,0x31,0x2e,0x36,0x32,0x31, + 0x2c,0x31,0x2e,0x36,0x31,0x39,0x2c,0x31,0x2e,0x36, + 0x32,0x31,0x68,0x37,0x2e,0x31,0x30,0x38,0x0d,0x0a, + 0x09,0x09,0x09,0x09,0x63,0x30,0x2e,0x33,0x38,0x34, + 0x2d,0x30,0x2e,0x30,0x30,0x37,0x2c,0x31,0x2e,0x36, + 0x32,0x34,0x2d,0x30,0x2e,0x31,0x34,0x33,0x2c,0x31, + 0x2e,0x36,0x32,0x34,0x2d,0x31,0x2e,0x36,0x32,0x31, + 0x56,0x32,0x33,0x2e,0x37,0x30,0x36,0x68,0x31,0x30, + 0x2e,0x32,0x33,0x31,0x63,0x30,0x2e,0x33,0x37,0x36, + 0x2d,0x30,0x2e,0x30,0x30,0x36,0x2c,0x31,0x2e,0x36, + 0x32,0x31,0x2d,0x30,0x2e,0x31,0x34,0x2c,0x31,0x2e, + 0x36,0x32,0x31,0x2d,0x31,0x2e,0x36,0x32,0x31,0x76, + 0x2d,0x37,0x2e,0x31,0x31,0x0d,0x0a,0x09,0x09,0x09, + 0x09,0x63,0x2d,0x30,0x2e,0x30,0x30,0x36,0x2d,0x30, + 0x2e,0x33,0x37,0x36,0x2d,0x30,0x2e,0x31,0x34,0x2d, + 0x31,0x2e,0x36,0x32,0x2d,0x31,0x2e,0x36,0x32,0x31, + 0x2d,0x31,0x2e,0x36,0x32,0x68,0x2d,0x31,0x30,0x2e, + 0x32,0x33,0x56,0x33,0x2e,0x31,0x32,0x31,0x43,0x32, + 0x33,0x2e,0x37,0x30,0x31,0x2c,0x32,0x2e,0x37,0x34, + 0x35,0x2c,0x32,0x33,0x2e,0x35,0x36,0x37,0x2c,0x31, + 0x2e,0x35,0x2c,0x32,0x32,0x2e,0x30,0x38,0x36,0x2c, + 0x31,0x2e,0x35,0x68,0x2d,0x37,0x2e,0x31,0x31,0x31, + 0x0d,0x0a,0x09,0x09,0x09,0x09,0x63,0x2d,0x30,0x2e, + 0x33,0x37,0x36,0x2c,0x30,0x2e,0x30,0x30,0x36,0x2d, + 0x31,0x2e,0x36,0x31,0x39,0x2c,0x30,0x2e,0x31,0x34, + 0x2d,0x31,0x2e,0x36,0x31,0x39,0x2c,0x31,0x2e,0x36, + 0x32,0x31,0x76,0x31,0x30,0x2e,0x32,0x33,0x32,0x4c, + 0x33,0x2e,0x31,0x32,0x31,0x2c,0x31,0x33,0x2e,0x33, + 0x35,0x34,0x4c,0x33,0x2e,0x31,0x32,0x31,0x2c,0x31, + 0x33,0x2e,0x33,0x35,0x34,0x7a,0x22,0x2f,0x3e,0x0d, + 0x0a,0x09,0x09,0x3c,0x2f,0x67,0x3e,0x0d,0x0a,0x09, + 0x3c,0x2f,0x67,0x3e,0x0d,0x0a,0x09,0x3c,0x67,0x3e, + 0x0d,0x0a,0x09,0x09,0x3c,0x70,0x61,0x74,0x68,0x20, + 0x66,0x69,0x6c,0x6c,0x3d,0x22,0x23,0x46,0x46,0x46, + 0x46,0x46,0x46,0x22,0x20,0x64,0x3d,0x22,0x4d,0x31, + 0x38,0x2e,0x35,0x33,0x31,0x2c,0x32,0x32,0x2e,0x31, + 0x38,0x31,0x63,0x2d,0x32,0x2e,0x30,0x31,0x33,0x2c, + 0x30,0x2d,0x33,0x2e,0x36,0x34,0x39,0x2d,0x31,0x2e, + 0x36,0x33,0x39,0x2d,0x33,0x2e,0x36,0x34,0x39,0x2d, + 0x33,0x2e,0x36,0x35,0x31,0x73,0x31,0x2e,0x36,0x33, + 0x38,0x2d,0x33,0x2e,0x36,0x35,0x2c,0x33,0x2e,0x36, + 0x34,0x39,0x2d,0x33,0x2e,0x36,0x35,0x63,0x32,0x2e, + 0x30,0x31,0x33,0x2c,0x30,0x2c,0x33,0x2e,0x36,0x35, + 0x2c,0x31,0x2e,0x36,0x33,0x39,0x2c,0x33,0x2e,0x36, + 0x35,0x2c,0x33,0x2e,0x36,0x35,0x0d,0x0a,0x09,0x09, + 0x09,0x43,0x32,0x32,0x2e,0x31,0x38,0x32,0x2c,0x32, + 0x30,0x2e,0x35,0x34,0x33,0x2c,0x32,0x30,0x2e,0x35, + 0x34,0x34,0x2c,0x32,0x32,0x2e,0x31,0x38,0x31,0x2c, + 0x31,0x38,0x2e,0x35,0x33,0x31,0x2c,0x32,0x32,0x2e, + 0x31,0x38,0x31,0x7a,0x20,0x4d,0x31,0x38,0x2e,0x35, + 0x33,0x31,0x2c,0x31,0x36,0x2e,0x33,0x37,0x39,0x63, + 0x2d,0x31,0x2e,0x31,0x38,0x36,0x2c,0x30,0x2d,0x32, + 0x2e,0x31,0x34,0x39,0x2c,0x30,0x2e,0x39,0x36,0x35, + 0x2d,0x32,0x2e,0x31,0x34,0x39,0x2c,0x32,0x2e,0x31, + 0x35,0x73,0x30,0x2e,0x39,0x36,0x35,0x2c,0x32,0x2e, + 0x31,0x35,0x31,0x2c,0x32,0x2e,0x31,0x34,0x39,0x2c, + 0x32,0x2e,0x31,0x35,0x31,0x0d,0x0a,0x09,0x09,0x09, + 0x63,0x31,0x2e,0x31,0x38,0x36,0x2c,0x30,0x2c,0x32, + 0x2e,0x31,0x35,0x2d,0x30,0x2e,0x39,0x36,0x36,0x2c, + 0x32,0x2e,0x31,0x35,0x2d,0x32,0x2e,0x31,0x35,0x31, + 0x43,0x32,0x30,0x2e,0x36,0x38,0x32,0x2c,0x31,0x37, + 0x2e,0x33,0x34,0x34,0x2c,0x31,0x39,0x2e,0x37,0x31, + 0x37,0x2c,0x31,0x36,0x2e,0x33,0x37,0x39,0x2c,0x31, + 0x38,0x2e,0x35,0x33,0x31,0x2c,0x31,0x36,0x2e,0x33, + 0x37,0x39,0x7a,0x22,0x2f,0x3e,0x0d,0x0a,0x09,0x3c, + 0x2f,0x67,0x3e,0x0d,0x0a,0x09,0x3c,0x67,0x3e,0x0d, + 0x0a,0x09,0x09,0x3c,0x70,0x61,0x74,0x68,0x20,0x66, + 0x69,0x6c,0x6c,0x3d,0x22,0x23,0x46,0x46,0x46,0x46, + 0x46,0x46,0x22,0x20,0x64,0x3d,0x22,0x4d,0x32,0x31, + 0x2e,0x35,0x33,0x36,0x2c,0x38,0x2e,0x36,0x31,0x36, + 0x68,0x2d,0x36,0x2e,0x30,0x31,0x32,0x63,0x2d,0x30, + 0x2e,0x32,0x37,0x33,0x2c,0x30,0x2d,0x30,0x2e,0x35, + 0x32,0x35,0x2d,0x30,0x2e,0x31,0x35,0x2d,0x30,0x2e, + 0x36,0x35,0x37,0x2d,0x30,0x2e,0x33,0x39,0x63,0x2d, + 0x30,0x2e,0x31,0x33,0x32,0x2d,0x30,0x2e,0x32,0x34, + 0x31,0x2d,0x30,0x2e,0x31,0x32,0x31,0x2d,0x30,0x2e, + 0x35,0x33,0x34,0x2c,0x30,0x2e,0x30,0x32,0x36,0x2d, + 0x30,0x2e,0x37,0x36,0x36,0x6c,0x33,0x2e,0x30,0x30, + 0x35,0x2d,0x34,0x2e,0x36,0x38,0x34,0x0d,0x0a,0x09, + 0x09,0x09,0x63,0x30,0x2e,0x32,0x37,0x36,0x2d,0x30, + 0x2e,0x34,0x33,0x31,0x2c,0x30,0x2e,0x39,0x38,0x36, + 0x2d,0x30,0x2e,0x34,0x33,0x2c,0x31,0x2e,0x32,0x36, + 0x34,0x2c,0x30,0x6c,0x33,0x2e,0x30,0x30,0x35,0x2c, + 0x34,0x2e,0x36,0x38,0x34,0x63,0x30,0x2e,0x31,0x34, + 0x37,0x2c,0x30,0x2e,0x32,0x33,0x31,0x2c,0x30,0x2e, + 0x31,0x35,0x39,0x2c,0x30,0x2e,0x35,0x32,0x34,0x2c, + 0x30,0x2e,0x30,0x32,0x36,0x2c,0x30,0x2e,0x37,0x36, + 0x36,0x43,0x32,0x32,0x2e,0x30,0x36,0x33,0x2c,0x38, + 0x2e,0x34,0x36,0x36,0x2c,0x32,0x31,0x2e,0x38,0x31, + 0x31,0x2c,0x38,0x2e,0x36,0x31,0x36,0x2c,0x32,0x31, + 0x2e,0x35,0x33,0x36,0x2c,0x38,0x2e,0x36,0x31,0x36, + 0x7a,0x0d,0x0a,0x09,0x09,0x09,0x20,0x4d,0x31,0x36, + 0x2e,0x38,0x39,0x37,0x2c,0x37,0x2e,0x31,0x31,0x36, + 0x68,0x33,0x2e,0x32,0x36,0x38,0x4c,0x31,0x38,0x2e, + 0x35,0x33,0x2c,0x34,0x2e,0x35,0x37,0x31,0x4c,0x31, + 0x36,0x2e,0x38,0x39,0x37,0x2c,0x37,0x2e,0x31,0x31, + 0x36,0x7a,0x22,0x2f,0x3e,0x0d,0x0a,0x09,0x3c,0x2f, + 0x67,0x3e,0x0d,0x0a,0x09,0x3c,0x67,0x3e,0x0d,0x0a, + 0x09,0x09,0x3c,0x70,0x61,0x74,0x68,0x20,0x66,0x69, + 0x6c,0x6c,0x3d,0x22,0x23,0x46,0x46,0x46,0x46,0x46, + 0x46,0x22,0x20,0x64,0x3d,0x22,0x4d,0x33,0x2e,0x31, + 0x32,0x35,0x2c,0x31,0x38,0x2e,0x35,0x33,0x6c,0x34, + 0x2e,0x36,0x38,0x34,0x2c,0x33,0x2e,0x30,0x30,0x34, + 0x76,0x2d,0x36,0x2e,0x30,0x31,0x4c,0x33,0x2e,0x31, + 0x32,0x35,0x2c,0x31,0x38,0x2e,0x35,0x33,0x7a,0x22, + 0x2f,0x3e,0x0d,0x0a,0x09,0x09,0x3c,0x70,0x61,0x74, + 0x68,0x20,0x66,0x69,0x6c,0x6c,0x3d,0x22,0x23,0x46, + 0x46,0x46,0x46,0x46,0x46,0x22,0x20,0x64,0x3d,0x22, + 0x4d,0x37,0x2e,0x38,0x30,0x39,0x2c,0x32,0x32,0x2e, + 0x32,0x38,0x34,0x63,0x2d,0x30,0x2e,0x31,0x34,0x31, + 0x2c,0x30,0x2d,0x30,0x2e,0x32,0x38,0x32,0x2d,0x30, + 0x2e,0x30,0x34,0x2d,0x30,0x2e,0x34,0x30,0x35,0x2d, + 0x30,0x2e,0x31,0x31,0x39,0x4c,0x32,0x2e,0x37,0x32, + 0x2c,0x31,0x39,0x2e,0x31,0x36,0x32,0x63,0x2d,0x30, + 0x2e,0x32,0x31,0x35,0x2d,0x30,0x2e,0x31,0x33,0x38, + 0x2d,0x30,0x2e,0x33,0x34,0x35,0x2d,0x30,0x2e,0x33, + 0x37,0x36,0x2d,0x30,0x2e,0x33,0x34,0x35,0x2d,0x30, + 0x2e,0x36,0x33,0x31,0x0d,0x0a,0x09,0x09,0x09,0x73, + 0x30,0x2e,0x31,0x33,0x2d,0x30,0x2e,0x34,0x39,0x33, + 0x2c,0x30,0x2e,0x33,0x34,0x35,0x2d,0x30,0x2e,0x36, + 0x33,0x31,0x6c,0x34,0x2e,0x36,0x38,0x34,0x2d,0x33, + 0x2e,0x30,0x30,0x36,0x63,0x30,0x2e,0x32,0x33,0x2d, + 0x30,0x2e,0x31,0x34,0x38,0x2c,0x30,0x2e,0x35,0x32, + 0x34,0x2d,0x30,0x2e,0x31,0x35,0x38,0x2c,0x30,0x2e, + 0x37,0x36,0x36,0x2d,0x30,0x2e,0x30,0x32,0x37,0x63, + 0x30,0x2e,0x32,0x34,0x2c,0x30,0x2e,0x31,0x33,0x31, + 0x2c,0x30,0x2e,0x33,0x39,0x2c,0x30,0x2e,0x33,0x38, + 0x34,0x2c,0x30,0x2e,0x33,0x39,0x2c,0x30,0x2e,0x36, + 0x35,0x38,0x76,0x36,0x2e,0x30,0x31,0x0d,0x0a,0x09, + 0x09,0x09,0x63,0x30,0x2c,0x30,0x2e,0x32,0x37,0x34, + 0x2d,0x30,0x2e,0x31,0x34,0x38,0x2c,0x30,0x2e,0x35, + 0x32,0x36,0x2d,0x30,0x2e,0x33,0x39,0x2c,0x30,0x2e, + 0x36,0x35,0x38,0x43,0x38,0x2e,0x30,0x35,0x36,0x2c, + 0x32,0x32,0x2e,0x32,0x35,0x34,0x2c,0x37,0x2e,0x39, + 0x33,0x32,0x2c,0x32,0x32,0x2e,0x32,0x38,0x34,0x2c, + 0x37,0x2e,0x38,0x30,0x39,0x2c,0x32,0x32,0x2e,0x32, + 0x38,0x34,0x7a,0x20,0x4d,0x34,0x2e,0x35,0x31,0x34, + 0x2c,0x31,0x38,0x2e,0x35,0x33,0x6c,0x32,0x2e,0x35, + 0x34,0x35,0x2c,0x31,0x2e,0x36,0x33,0x32,0x76,0x2d, + 0x33,0x2e,0x32,0x36,0x35,0x4c,0x34,0x2e,0x35,0x31, + 0x34,0x2c,0x31,0x38,0x2e,0x35,0x33,0x7a,0x22,0x2f, + 0x3e,0x0d,0x0a,0x09,0x3c,0x2f,0x67,0x3e,0x0d,0x0a, + 0x09,0x3c,0x67,0x3e,0x0d,0x0a,0x09,0x09,0x3c,0x70, + 0x61,0x74,0x68,0x20,0x66,0x69,0x6c,0x6c,0x3d,0x22, + 0x23,0x46,0x46,0x46,0x46,0x46,0x46,0x22,0x20,0x64, + 0x3d,0x22,0x4d,0x33,0x33,0x2e,0x38,0x37,0x39,0x2c, + 0x31,0x38,0x2e,0x35,0x32,0x39,0x6c,0x2d,0x34,0x2e, + 0x36,0x38,0x35,0x2d,0x33,0x2e,0x30,0x30,0x35,0x76, + 0x36,0x2e,0x30,0x31,0x4c,0x33,0x33,0x2e,0x38,0x37, + 0x39,0x2c,0x31,0x38,0x2e,0x35,0x32,0x39,0x7a,0x22, + 0x2f,0x3e,0x0d,0x0a,0x09,0x09,0x3c,0x70,0x61,0x74, + 0x68,0x20,0x66,0x69,0x6c,0x6c,0x3d,0x22,0x23,0x46, + 0x46,0x46,0x46,0x46,0x46,0x22,0x20,0x64,0x3d,0x22, + 0x4d,0x32,0x39,0x2e,0x31,0x39,0x35,0x2c,0x32,0x32, + 0x2e,0x32,0x38,0x34,0x63,0x2d,0x30,0x2e,0x31,0x32, + 0x34,0x2c,0x30,0x2d,0x30,0x2e,0x32,0x34,0x36,0x2d, + 0x30,0x2e,0x30,0x33,0x2d,0x30,0x2e,0x33,0x35,0x38, + 0x2d,0x30,0x2e,0x30,0x39,0x32,0x63,0x2d,0x30,0x2e, + 0x32,0x34,0x31,0x2d,0x30,0x2e,0x31,0x33,0x32,0x2d, + 0x30,0x2e,0x33,0x39,0x32,0x2d,0x30,0x2e,0x33,0x38, + 0x34,0x2d,0x30,0x2e,0x33,0x39,0x32,0x2d,0x30,0x2e, + 0x36,0x35,0x38,0x76,0x2d,0x36,0x2e,0x30,0x31,0x0d, + 0x0a,0x09,0x09,0x09,0x63,0x30,0x2d,0x30,0x2e,0x32, + 0x37,0x34,0x2c,0x30,0x2e,0x31,0x34,0x39,0x2d,0x30, + 0x2e,0x35,0x32,0x36,0x2c,0x30,0x2e,0x33,0x39,0x32, + 0x2d,0x30,0x2e,0x36,0x35,0x38,0x63,0x30,0x2e,0x32, + 0x33,0x39,0x2d,0x30,0x2e,0x31,0x33,0x31,0x2c,0x30, + 0x2e,0x35,0x33,0x33,0x2d,0x30,0x2e,0x31,0x32,0x33, + 0x2c,0x30,0x2e,0x37,0x36,0x35,0x2c,0x30,0x2e,0x30, + 0x32,0x37,0x6c,0x34,0x2e,0x36,0x38,0x35,0x2c,0x33, + 0x2e,0x30,0x30,0x35,0x63,0x30,0x2e,0x32,0x31,0x35, + 0x2c,0x30,0x2e,0x31,0x33,0x38,0x2c,0x30,0x2e,0x33, + 0x34,0x35,0x2c,0x30,0x2e,0x33,0x37,0x36,0x2c,0x30, + 0x2e,0x33,0x34,0x35,0x2c,0x30,0x2e,0x36,0x33,0x31, + 0x0d,0x0a,0x09,0x09,0x09,0x73,0x2d,0x30,0x2e,0x31, + 0x33,0x2c,0x30,0x2e,0x34,0x39,0x33,0x2d,0x30,0x2e, + 0x33,0x34,0x35,0x2c,0x30,0x2e,0x36,0x33,0x31,0x6c, + 0x2d,0x34,0x2e,0x36,0x38,0x35,0x2c,0x33,0x2e,0x30, + 0x30,0x34,0x43,0x32,0x39,0x2e,0x34,0x37,0x38,0x2c, + 0x32,0x32,0x2e,0x32,0x34,0x34,0x2c,0x32,0x39,0x2e, + 0x33,0x33,0x36,0x2c,0x32,0x32,0x2e,0x32,0x38,0x34, + 0x2c,0x32,0x39,0x2e,0x31,0x39,0x35,0x2c,0x32,0x32, + 0x2e,0x32,0x38,0x34,0x7a,0x20,0x4d,0x32,0x39,0x2e, + 0x39,0x34,0x35,0x2c,0x31,0x36,0x2e,0x38,0x39,0x36, + 0x76,0x33,0x2e,0x32,0x36,0x36,0x6c,0x32,0x2e,0x35, + 0x34,0x36,0x2d,0x31,0x2e,0x36,0x33,0x33,0x0d,0x0a, + 0x09,0x09,0x09,0x4c,0x32,0x39,0x2e,0x39,0x34,0x35, + 0x2c,0x31,0x36,0x2e,0x38,0x39,0x36,0x7a,0x22,0x2f, + 0x3e,0x0d,0x0a,0x09,0x3c,0x2f,0x67,0x3e,0x0d,0x0a, + 0x09,0x3c,0x67,0x3e,0x0d,0x0a,0x09,0x09,0x3c,0x70, + 0x61,0x74,0x68,0x20,0x66,0x69,0x6c,0x6c,0x3d,0x22, + 0x23,0x46,0x46,0x46,0x46,0x46,0x46,0x22,0x20,0x64, + 0x3d,0x22,0x4d,0x31,0x38,0x2e,0x35,0x33,0x2c,0x33, + 0x34,0x2e,0x36,0x32,0x36,0x4c,0x31,0x38,0x2e,0x35, + 0x33,0x2c,0x33,0x34,0x2e,0x36,0x32,0x36,0x63,0x2d, + 0x30,0x2e,0x32,0x35,0x35,0x2c,0x30,0x2d,0x30,0x2e, + 0x34,0x39,0x32,0x2d,0x30,0x2e,0x31,0x33,0x2d,0x30, + 0x2e,0x36,0x33,0x31,0x2d,0x30,0x2e,0x33,0x34,0x35, + 0x6c,0x2d,0x33,0x2e,0x30,0x30,0x35,0x2d,0x34,0x2e, + 0x36,0x38,0x34,0x0d,0x0a,0x09,0x09,0x09,0x63,0x2d, + 0x30,0x2e,0x31,0x34,0x37,0x2d,0x30,0x2e,0x32,0x33, + 0x31,0x2d,0x30,0x2e,0x31,0x35,0x38,0x2d,0x30,0x2e, + 0x35,0x32,0x34,0x2d,0x30,0x2e,0x30,0x32,0x36,0x2d, + 0x30,0x2e,0x37,0x36,0x36,0x73,0x30,0x2e,0x33,0x38, + 0x34,0x2d,0x30,0x2e,0x33,0x39,0x31,0x2c,0x30,0x2e, + 0x36,0x35,0x37,0x2d,0x30,0x2e,0x33,0x39,0x31,0x68, + 0x36,0x2e,0x30,0x31,0x32,0x63,0x30,0x2e,0x32,0x37, + 0x33,0x2c,0x30,0x2c,0x30,0x2e,0x35,0x32,0x35,0x2c, + 0x30,0x2e,0x31,0x34,0x38,0x2c,0x30,0x2e,0x36,0x35, + 0x37,0x2c,0x30,0x2e,0x33,0x39,0x31,0x0d,0x0a,0x09, + 0x09,0x09,0x63,0x30,0x2e,0x31,0x33,0x33,0x2c,0x30, + 0x2e,0x32,0x34,0x2c,0x30,0x2e,0x31,0x32,0x31,0x2c, + 0x30,0x2e,0x35,0x33,0x33,0x2d,0x30,0x2e,0x30,0x32, + 0x36,0x2c,0x30,0x2e,0x37,0x36,0x36,0x6c,0x2d,0x33, + 0x2e,0x30,0x30,0x35,0x2c,0x34,0x2e,0x36,0x38,0x34, + 0x43,0x31,0x39,0x2e,0x30,0x32,0x33,0x2c,0x33,0x34, + 0x2e,0x34,0x39,0x36,0x2c,0x31,0x38,0x2e,0x37,0x38, + 0x36,0x2c,0x33,0x34,0x2e,0x36,0x32,0x36,0x2c,0x31, + 0x38,0x2e,0x35,0x33,0x2c,0x33,0x34,0x2e,0x36,0x32, + 0x36,0x7a,0x20,0x4d,0x31,0x36,0x2e,0x38,0x39,0x37, + 0x2c,0x32,0x39,0x2e,0x39,0x34,0x32,0x6c,0x31,0x2e, + 0x36,0x33,0x33,0x2c,0x32,0x2e,0x35,0x34,0x35,0x0d, + 0x0a,0x09,0x09,0x09,0x6c,0x31,0x2e,0x36,0x33,0x35, + 0x2d,0x32,0x2e,0x35,0x34,0x35,0x48,0x31,0x36,0x2e, + 0x38,0x39,0x37,0x7a,0x22,0x2f,0x3e,0x0d,0x0a,0x09, + 0x3c,0x2f,0x67,0x3e,0x0d,0x0a,0x3c,0x2f,0x67,0x3e, + 0x0d,0x0a,0x3c,0x2f,0x73,0x76,0x67,0x3e,0x0d,0x0a +}; diff --git a/data/converted/help_dpad_right_svg.cpp b/data/converted/help_dpad_right_svg.cpp new file mode 100644 index 000000000..0fb71669b --- /dev/null +++ b/data/converted/help_dpad_right_svg.cpp @@ -0,0 +1,329 @@ +//this file was auto-generated from "dpad_right.svg" by res2h + +#include "../Resources.h" + +const size_t help_dpad_right_svg_size = 3216; +const unsigned char help_dpad_right_svg_data[3216] = { + 0x3c,0x3f,0x78,0x6d,0x6c,0x20,0x76,0x65,0x72,0x73, + 0x69,0x6f,0x6e,0x3d,0x22,0x31,0x2e,0x30,0x22,0x20, + 0x65,0x6e,0x63,0x6f,0x64,0x69,0x6e,0x67,0x3d,0x22, + 0x75,0x74,0x66,0x2d,0x38,0x22,0x3f,0x3e,0x0d,0x0a, + 0x3c,0x21,0x2d,0x2d,0x20,0x47,0x65,0x6e,0x65,0x72, + 0x61,0x74,0x6f,0x72,0x3a,0x20,0x41,0x64,0x6f,0x62, + 0x65,0x20,0x49,0x6c,0x6c,0x75,0x73,0x74,0x72,0x61, + 0x74,0x6f,0x72,0x20,0x31,0x36,0x2e,0x30,0x2e,0x33, + 0x2c,0x20,0x53,0x56,0x47,0x20,0x45,0x78,0x70,0x6f, + 0x72,0x74,0x20,0x50,0x6c,0x75,0x67,0x2d,0x49,0x6e, + 0x20,0x2e,0x20,0x53,0x56,0x47,0x20,0x56,0x65,0x72, + 0x73,0x69,0x6f,0x6e,0x3a,0x20,0x36,0x2e,0x30,0x30, + 0x20,0x42,0x75,0x69,0x6c,0x64,0x20,0x30,0x29,0x20, + 0x20,0x2d,0x2d,0x3e,0x0d,0x0a,0x3c,0x21,0x44,0x4f, + 0x43,0x54,0x59,0x50,0x45,0x20,0x73,0x76,0x67,0x20, + 0x50,0x55,0x42,0x4c,0x49,0x43,0x20,0x22,0x2d,0x2f, + 0x2f,0x57,0x33,0x43,0x2f,0x2f,0x44,0x54,0x44,0x20, + 0x53,0x56,0x47,0x20,0x31,0x2e,0x31,0x2f,0x2f,0x45, + 0x4e,0x22,0x20,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f, + 0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72, + 0x67,0x2f,0x47,0x72,0x61,0x70,0x68,0x69,0x63,0x73, + 0x2f,0x53,0x56,0x47,0x2f,0x31,0x2e,0x31,0x2f,0x44, + 0x54,0x44,0x2f,0x73,0x76,0x67,0x31,0x31,0x2e,0x64, + 0x74,0x64,0x22,0x3e,0x0d,0x0a,0x3c,0x73,0x76,0x67, + 0x20,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x3d,0x22, + 0x31,0x2e,0x31,0x22,0x20,0x69,0x64,0x3d,0x22,0x5f, + 0x78,0x33,0x30,0x5f,0x22,0x20,0x78,0x6d,0x6c,0x6e, + 0x73,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f, + 0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72,0x67, + 0x2f,0x32,0x30,0x30,0x30,0x2f,0x73,0x76,0x67,0x22, + 0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3a,0x78,0x6c,0x69, + 0x6e,0x6b,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f, + 0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72, + 0x67,0x2f,0x31,0x39,0x39,0x39,0x2f,0x78,0x6c,0x69, + 0x6e,0x6b,0x22,0x20,0x78,0x3d,0x22,0x30,0x70,0x78, + 0x22,0x20,0x79,0x3d,0x22,0x30,0x70,0x78,0x22,0x0d, + 0x0a,0x09,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x22, + 0x33,0x37,0x2e,0x30,0x36,0x31,0x70,0x78,0x22,0x20, + 0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x22,0x33,0x37, + 0x2e,0x30,0x36,0x31,0x70,0x78,0x22,0x20,0x76,0x69, + 0x65,0x77,0x42,0x6f,0x78,0x3d,0x22,0x30,0x20,0x30, + 0x20,0x33,0x37,0x2e,0x30,0x36,0x31,0x20,0x33,0x37, + 0x2e,0x30,0x36,0x31,0x22,0x20,0x65,0x6e,0x61,0x62, + 0x6c,0x65,0x2d,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f, + 0x75,0x6e,0x64,0x3d,0x22,0x6e,0x65,0x77,0x20,0x30, + 0x20,0x30,0x20,0x33,0x37,0x2e,0x30,0x36,0x31,0x20, + 0x33,0x37,0x2e,0x30,0x36,0x31,0x22,0x20,0x78,0x6d, + 0x6c,0x3a,0x73,0x70,0x61,0x63,0x65,0x3d,0x22,0x70, + 0x72,0x65,0x73,0x65,0x72,0x76,0x65,0x22,0x3e,0x0d, + 0x0a,0x3c,0x67,0x3e,0x0d,0x0a,0x09,0x3c,0x67,0x3e, + 0x0d,0x0a,0x09,0x09,0x3c,0x67,0x3e,0x0d,0x0a,0x09, + 0x09,0x09,0x3c,0x70,0x61,0x74,0x68,0x20,0x66,0x69, + 0x6c,0x6c,0x3d,0x22,0x23,0x46,0x46,0x46,0x46,0x46, + 0x46,0x22,0x20,0x64,0x3d,0x22,0x4d,0x32,0x32,0x2e, + 0x30,0x38,0x36,0x2c,0x33,0x37,0x2e,0x30,0x36,0x68, + 0x2d,0x37,0x2e,0x31,0x31,0x31,0x63,0x2d,0x32,0x2e, + 0x32,0x38,0x39,0x2c,0x30,0x2d,0x33,0x2e,0x31,0x31, + 0x39,0x2d,0x31,0x2e,0x38,0x36,0x36,0x2d,0x33,0x2e, + 0x31,0x31,0x39,0x2d,0x33,0x2e,0x31,0x32,0x31,0x76, + 0x2d,0x38,0x2e,0x37,0x33,0x32,0x48,0x33,0x2e,0x31, + 0x32,0x31,0x43,0x30,0x2e,0x38,0x33,0x31,0x2c,0x32, + 0x35,0x2e,0x32,0x30,0x36,0x2c,0x30,0x2c,0x32,0x33, + 0x2e,0x33,0x34,0x2c,0x30,0x2c,0x32,0x32,0x2e,0x30, + 0x38,0x35,0x0d,0x0a,0x09,0x09,0x09,0x09,0x76,0x2d, + 0x37,0x2e,0x31,0x31,0x63,0x30,0x2d,0x32,0x2e,0x32, + 0x38,0x39,0x2c,0x31,0x2e,0x38,0x36,0x37,0x2d,0x33, + 0x2e,0x31,0x32,0x2c,0x33,0x2e,0x31,0x32,0x31,0x2d, + 0x33,0x2e,0x31,0x32,0x68,0x38,0x2e,0x37,0x33,0x33, + 0x56,0x33,0x2e,0x31,0x32,0x31,0x43,0x31,0x31,0x2e, + 0x38,0x35,0x35,0x2c,0x30,0x2e,0x38,0x33,0x31,0x2c, + 0x31,0x33,0x2e,0x37,0x32,0x2c,0x30,0x2c,0x31,0x34, + 0x2e,0x39,0x37,0x34,0x2c,0x30,0x68,0x37,0x2e,0x31, + 0x31,0x31,0x63,0x32,0x2e,0x32,0x39,0x2c,0x30,0x2c, + 0x33,0x2e,0x31,0x32,0x31,0x2c,0x31,0x2e,0x38,0x36, + 0x37,0x2c,0x33,0x2e,0x31,0x32,0x31,0x2c,0x33,0x2e, + 0x31,0x32,0x31,0x76,0x38,0x2e,0x37,0x33,0x32,0x0d, + 0x0a,0x09,0x09,0x09,0x09,0x68,0x38,0x2e,0x37,0x33, + 0x31,0x63,0x32,0x2e,0x32,0x39,0x2c,0x30,0x2c,0x33, + 0x2e,0x31,0x32,0x31,0x2c,0x31,0x2e,0x38,0x36,0x35, + 0x2c,0x33,0x2e,0x31,0x32,0x31,0x2c,0x33,0x2e,0x31, + 0x32,0x76,0x37,0x2e,0x31,0x31,0x63,0x30,0x2c,0x32, + 0x2e,0x32,0x39,0x2d,0x31,0x2e,0x38,0x36,0x36,0x2c, + 0x33,0x2e,0x31,0x32,0x31,0x2d,0x33,0x2e,0x31,0x32, + 0x31,0x2c,0x33,0x2e,0x31,0x32,0x31,0x68,0x2d,0x38, + 0x2e,0x37,0x33,0x31,0x76,0x38,0x2e,0x37,0x33,0x32, + 0x0d,0x0a,0x09,0x09,0x09,0x09,0x43,0x32,0x35,0x2e, + 0x32,0x30,0x37,0x2c,0x33,0x36,0x2e,0x32,0x32,0x39, + 0x2c,0x32,0x33,0x2e,0x33,0x34,0x31,0x2c,0x33,0x37, + 0x2e,0x30,0x36,0x2c,0x32,0x32,0x2e,0x30,0x38,0x36, + 0x2c,0x33,0x37,0x2e,0x30,0x36,0x7a,0x20,0x4d,0x33, + 0x2e,0x31,0x32,0x31,0x2c,0x31,0x33,0x2e,0x33,0x35, + 0x34,0x43,0x32,0x2e,0x37,0x34,0x35,0x2c,0x31,0x33, + 0x2e,0x33,0x35,0x39,0x2c,0x31,0x2e,0x35,0x2c,0x31, + 0x33,0x2e,0x34,0x39,0x33,0x2c,0x31,0x2e,0x35,0x2c, + 0x31,0x34,0x2e,0x39,0x37,0x34,0x76,0x37,0x2e,0x31, + 0x31,0x0d,0x0a,0x09,0x09,0x09,0x09,0x63,0x30,0x2e, + 0x30,0x30,0x36,0x2c,0x30,0x2e,0x33,0x37,0x36,0x2c, + 0x30,0x2e,0x31,0x33,0x39,0x2c,0x31,0x2e,0x36,0x32, + 0x31,0x2c,0x31,0x2e,0x36,0x32,0x31,0x2c,0x31,0x2e, + 0x36,0x32,0x31,0x68,0x31,0x30,0x2e,0x32,0x33,0x33, + 0x76,0x31,0x30,0x2e,0x32,0x33,0x32,0x63,0x30,0x2e, + 0x30,0x30,0x35,0x2c,0x30,0x2e,0x33,0x37,0x36,0x2c, + 0x30,0x2e,0x31,0x34,0x2c,0x31,0x2e,0x36,0x32,0x31, + 0x2c,0x31,0x2e,0x36,0x31,0x39,0x2c,0x31,0x2e,0x36, + 0x32,0x31,0x68,0x37,0x2e,0x31,0x30,0x38,0x0d,0x0a, + 0x09,0x09,0x09,0x09,0x63,0x30,0x2e,0x33,0x38,0x34, + 0x2d,0x30,0x2e,0x30,0x30,0x37,0x2c,0x31,0x2e,0x36, + 0x32,0x34,0x2d,0x30,0x2e,0x31,0x34,0x33,0x2c,0x31, + 0x2e,0x36,0x32,0x34,0x2d,0x31,0x2e,0x36,0x32,0x31, + 0x56,0x32,0x33,0x2e,0x37,0x30,0x36,0x68,0x31,0x30, + 0x2e,0x32,0x33,0x31,0x63,0x30,0x2e,0x33,0x37,0x36, + 0x2d,0x30,0x2e,0x30,0x30,0x36,0x2c,0x31,0x2e,0x36, + 0x32,0x31,0x2d,0x30,0x2e,0x31,0x34,0x2c,0x31,0x2e, + 0x36,0x32,0x31,0x2d,0x31,0x2e,0x36,0x32,0x31,0x76, + 0x2d,0x37,0x2e,0x31,0x31,0x0d,0x0a,0x09,0x09,0x09, + 0x09,0x63,0x2d,0x30,0x2e,0x30,0x30,0x36,0x2d,0x30, + 0x2e,0x33,0x37,0x36,0x2d,0x30,0x2e,0x31,0x34,0x2d, + 0x31,0x2e,0x36,0x32,0x2d,0x31,0x2e,0x36,0x32,0x31, + 0x2d,0x31,0x2e,0x36,0x32,0x68,0x2d,0x31,0x30,0x2e, + 0x32,0x33,0x56,0x33,0x2e,0x31,0x32,0x31,0x43,0x32, + 0x33,0x2e,0x37,0x30,0x31,0x2c,0x32,0x2e,0x37,0x34, + 0x35,0x2c,0x32,0x33,0x2e,0x35,0x36,0x37,0x2c,0x31, + 0x2e,0x35,0x2c,0x32,0x32,0x2e,0x30,0x38,0x36,0x2c, + 0x31,0x2e,0x35,0x68,0x2d,0x37,0x2e,0x31,0x31,0x31, + 0x0d,0x0a,0x09,0x09,0x09,0x09,0x63,0x2d,0x30,0x2e, + 0x33,0x37,0x36,0x2c,0x30,0x2e,0x30,0x30,0x36,0x2d, + 0x31,0x2e,0x36,0x31,0x39,0x2c,0x30,0x2e,0x31,0x34, + 0x2d,0x31,0x2e,0x36,0x31,0x39,0x2c,0x31,0x2e,0x36, + 0x32,0x31,0x76,0x31,0x30,0x2e,0x32,0x33,0x32,0x4c, + 0x33,0x2e,0x31,0x32,0x31,0x2c,0x31,0x33,0x2e,0x33, + 0x35,0x34,0x4c,0x33,0x2e,0x31,0x32,0x31,0x2c,0x31, + 0x33,0x2e,0x33,0x35,0x34,0x7a,0x22,0x2f,0x3e,0x0d, + 0x0a,0x09,0x09,0x3c,0x2f,0x67,0x3e,0x0d,0x0a,0x09, + 0x3c,0x2f,0x67,0x3e,0x0d,0x0a,0x09,0x3c,0x67,0x3e, + 0x0d,0x0a,0x09,0x09,0x3c,0x70,0x61,0x74,0x68,0x20, + 0x66,0x69,0x6c,0x6c,0x3d,0x22,0x23,0x46,0x46,0x46, + 0x46,0x46,0x46,0x22,0x20,0x64,0x3d,0x22,0x4d,0x31, + 0x38,0x2e,0x35,0x33,0x31,0x2c,0x32,0x32,0x2e,0x31, + 0x38,0x31,0x63,0x2d,0x32,0x2e,0x30,0x31,0x33,0x2c, + 0x30,0x2d,0x33,0x2e,0x36,0x34,0x39,0x2d,0x31,0x2e, + 0x36,0x33,0x39,0x2d,0x33,0x2e,0x36,0x34,0x39,0x2d, + 0x33,0x2e,0x36,0x35,0x31,0x73,0x31,0x2e,0x36,0x33, + 0x38,0x2d,0x33,0x2e,0x36,0x35,0x2c,0x33,0x2e,0x36, + 0x34,0x39,0x2d,0x33,0x2e,0x36,0x35,0x63,0x32,0x2e, + 0x30,0x31,0x33,0x2c,0x30,0x2c,0x33,0x2e,0x36,0x35, + 0x2c,0x31,0x2e,0x36,0x33,0x39,0x2c,0x33,0x2e,0x36, + 0x35,0x2c,0x33,0x2e,0x36,0x35,0x0d,0x0a,0x09,0x09, + 0x09,0x43,0x32,0x32,0x2e,0x31,0x38,0x32,0x2c,0x32, + 0x30,0x2e,0x35,0x34,0x33,0x2c,0x32,0x30,0x2e,0x35, + 0x34,0x34,0x2c,0x32,0x32,0x2e,0x31,0x38,0x31,0x2c, + 0x31,0x38,0x2e,0x35,0x33,0x31,0x2c,0x32,0x32,0x2e, + 0x31,0x38,0x31,0x7a,0x20,0x4d,0x31,0x38,0x2e,0x35, + 0x33,0x31,0x2c,0x31,0x36,0x2e,0x33,0x37,0x39,0x63, + 0x2d,0x31,0x2e,0x31,0x38,0x36,0x2c,0x30,0x2d,0x32, + 0x2e,0x31,0x34,0x39,0x2c,0x30,0x2e,0x39,0x36,0x35, + 0x2d,0x32,0x2e,0x31,0x34,0x39,0x2c,0x32,0x2e,0x31, + 0x35,0x73,0x30,0x2e,0x39,0x36,0x35,0x2c,0x32,0x2e, + 0x31,0x35,0x31,0x2c,0x32,0x2e,0x31,0x34,0x39,0x2c, + 0x32,0x2e,0x31,0x35,0x31,0x0d,0x0a,0x09,0x09,0x09, + 0x63,0x31,0x2e,0x31,0x38,0x36,0x2c,0x30,0x2c,0x32, + 0x2e,0x31,0x35,0x2d,0x30,0x2e,0x39,0x36,0x36,0x2c, + 0x32,0x2e,0x31,0x35,0x2d,0x32,0x2e,0x31,0x35,0x31, + 0x43,0x32,0x30,0x2e,0x36,0x38,0x32,0x2c,0x31,0x37, + 0x2e,0x33,0x34,0x34,0x2c,0x31,0x39,0x2e,0x37,0x31, + 0x37,0x2c,0x31,0x36,0x2e,0x33,0x37,0x39,0x2c,0x31, + 0x38,0x2e,0x35,0x33,0x31,0x2c,0x31,0x36,0x2e,0x33, + 0x37,0x39,0x7a,0x22,0x2f,0x3e,0x0d,0x0a,0x09,0x3c, + 0x2f,0x67,0x3e,0x0d,0x0a,0x09,0x3c,0x67,0x3e,0x0d, + 0x0a,0x09,0x09,0x3c,0x70,0x61,0x74,0x68,0x20,0x66, + 0x69,0x6c,0x6c,0x3d,0x22,0x23,0x46,0x46,0x46,0x46, + 0x46,0x46,0x22,0x20,0x64,0x3d,0x22,0x4d,0x32,0x31, + 0x2e,0x35,0x33,0x36,0x2c,0x38,0x2e,0x36,0x31,0x36, + 0x68,0x2d,0x36,0x2e,0x30,0x31,0x32,0x63,0x2d,0x30, + 0x2e,0x32,0x37,0x33,0x2c,0x30,0x2d,0x30,0x2e,0x35, + 0x32,0x35,0x2d,0x30,0x2e,0x31,0x35,0x2d,0x30,0x2e, + 0x36,0x35,0x37,0x2d,0x30,0x2e,0x33,0x39,0x63,0x2d, + 0x30,0x2e,0x31,0x33,0x32,0x2d,0x30,0x2e,0x32,0x34, + 0x31,0x2d,0x30,0x2e,0x31,0x32,0x31,0x2d,0x30,0x2e, + 0x35,0x33,0x34,0x2c,0x30,0x2e,0x30,0x32,0x36,0x2d, + 0x30,0x2e,0x37,0x36,0x36,0x6c,0x33,0x2e,0x30,0x30, + 0x35,0x2d,0x34,0x2e,0x36,0x38,0x34,0x0d,0x0a,0x09, + 0x09,0x09,0x63,0x30,0x2e,0x32,0x37,0x36,0x2d,0x30, + 0x2e,0x34,0x33,0x31,0x2c,0x30,0x2e,0x39,0x38,0x36, + 0x2d,0x30,0x2e,0x34,0x33,0x2c,0x31,0x2e,0x32,0x36, + 0x34,0x2c,0x30,0x6c,0x33,0x2e,0x30,0x30,0x35,0x2c, + 0x34,0x2e,0x36,0x38,0x34,0x63,0x30,0x2e,0x31,0x34, + 0x37,0x2c,0x30,0x2e,0x32,0x33,0x31,0x2c,0x30,0x2e, + 0x31,0x35,0x39,0x2c,0x30,0x2e,0x35,0x32,0x34,0x2c, + 0x30,0x2e,0x30,0x32,0x36,0x2c,0x30,0x2e,0x37,0x36, + 0x36,0x43,0x32,0x32,0x2e,0x30,0x36,0x33,0x2c,0x38, + 0x2e,0x34,0x36,0x36,0x2c,0x32,0x31,0x2e,0x38,0x31, + 0x31,0x2c,0x38,0x2e,0x36,0x31,0x36,0x2c,0x32,0x31, + 0x2e,0x35,0x33,0x36,0x2c,0x38,0x2e,0x36,0x31,0x36, + 0x7a,0x0d,0x0a,0x09,0x09,0x09,0x20,0x4d,0x31,0x36, + 0x2e,0x38,0x39,0x37,0x2c,0x37,0x2e,0x31,0x31,0x36, + 0x68,0x33,0x2e,0x32,0x36,0x38,0x4c,0x31,0x38,0x2e, + 0x35,0x33,0x2c,0x34,0x2e,0x35,0x37,0x31,0x4c,0x31, + 0x36,0x2e,0x38,0x39,0x37,0x2c,0x37,0x2e,0x31,0x31, + 0x36,0x7a,0x22,0x2f,0x3e,0x0d,0x0a,0x09,0x3c,0x2f, + 0x67,0x3e,0x0d,0x0a,0x09,0x3c,0x67,0x3e,0x0d,0x0a, + 0x09,0x09,0x3c,0x70,0x61,0x74,0x68,0x20,0x66,0x69, + 0x6c,0x6c,0x3d,0x22,0x23,0x46,0x46,0x46,0x46,0x46, + 0x46,0x22,0x20,0x64,0x3d,0x22,0x4d,0x37,0x2e,0x38, + 0x30,0x39,0x2c,0x32,0x32,0x2e,0x32,0x38,0x34,0x63, + 0x2d,0x30,0x2e,0x31,0x34,0x31,0x2c,0x30,0x2d,0x30, + 0x2e,0x32,0x38,0x32,0x2d,0x30,0x2e,0x30,0x34,0x2d, + 0x30,0x2e,0x34,0x30,0x35,0x2d,0x30,0x2e,0x31,0x31, + 0x39,0x4c,0x32,0x2e,0x37,0x32,0x2c,0x31,0x39,0x2e, + 0x31,0x36,0x32,0x63,0x2d,0x30,0x2e,0x32,0x31,0x35, + 0x2d,0x30,0x2e,0x31,0x33,0x38,0x2d,0x30,0x2e,0x33, + 0x34,0x35,0x2d,0x30,0x2e,0x33,0x37,0x36,0x2d,0x30, + 0x2e,0x33,0x34,0x35,0x2d,0x30,0x2e,0x36,0x33,0x31, + 0x0d,0x0a,0x09,0x09,0x09,0x73,0x30,0x2e,0x31,0x33, + 0x2d,0x30,0x2e,0x34,0x39,0x33,0x2c,0x30,0x2e,0x33, + 0x34,0x35,0x2d,0x30,0x2e,0x36,0x33,0x31,0x6c,0x34, + 0x2e,0x36,0x38,0x34,0x2d,0x33,0x2e,0x30,0x30,0x36, + 0x63,0x30,0x2e,0x32,0x33,0x2d,0x30,0x2e,0x31,0x34, + 0x38,0x2c,0x30,0x2e,0x35,0x32,0x34,0x2d,0x30,0x2e, + 0x31,0x35,0x38,0x2c,0x30,0x2e,0x37,0x36,0x36,0x2d, + 0x30,0x2e,0x30,0x32,0x37,0x63,0x30,0x2e,0x32,0x34, + 0x2c,0x30,0x2e,0x31,0x33,0x31,0x2c,0x30,0x2e,0x33, + 0x39,0x2c,0x30,0x2e,0x33,0x38,0x34,0x2c,0x30,0x2e, + 0x33,0x39,0x2c,0x30,0x2e,0x36,0x35,0x38,0x76,0x36, + 0x2e,0x30,0x31,0x0d,0x0a,0x09,0x09,0x09,0x63,0x30, + 0x2c,0x30,0x2e,0x32,0x37,0x34,0x2d,0x30,0x2e,0x31, + 0x34,0x38,0x2c,0x30,0x2e,0x35,0x32,0x36,0x2d,0x30, + 0x2e,0x33,0x39,0x2c,0x30,0x2e,0x36,0x35,0x38,0x43, + 0x38,0x2e,0x30,0x35,0x36,0x2c,0x32,0x32,0x2e,0x32, + 0x35,0x34,0x2c,0x37,0x2e,0x39,0x33,0x32,0x2c,0x32, + 0x32,0x2e,0x32,0x38,0x34,0x2c,0x37,0x2e,0x38,0x30, + 0x39,0x2c,0x32,0x32,0x2e,0x32,0x38,0x34,0x7a,0x20, + 0x4d,0x34,0x2e,0x35,0x31,0x34,0x2c,0x31,0x38,0x2e, + 0x35,0x33,0x6c,0x32,0x2e,0x35,0x34,0x35,0x2c,0x31, + 0x2e,0x36,0x33,0x32,0x76,0x2d,0x33,0x2e,0x32,0x36, + 0x35,0x4c,0x34,0x2e,0x35,0x31,0x34,0x2c,0x31,0x38, + 0x2e,0x35,0x33,0x7a,0x22,0x2f,0x3e,0x0d,0x0a,0x09, + 0x3c,0x2f,0x67,0x3e,0x0d,0x0a,0x09,0x3c,0x67,0x3e, + 0x0d,0x0a,0x09,0x09,0x3c,0x70,0x61,0x74,0x68,0x20, + 0x66,0x69,0x6c,0x6c,0x3d,0x22,0x23,0x46,0x46,0x46, + 0x46,0x46,0x46,0x22,0x20,0x64,0x3d,0x22,0x4d,0x33, + 0x33,0x2e,0x38,0x37,0x39,0x2c,0x31,0x38,0x2e,0x35, + 0x32,0x39,0x6c,0x2d,0x34,0x2e,0x36,0x38,0x35,0x2d, + 0x33,0x2e,0x30,0x30,0x35,0x76,0x36,0x2e,0x30,0x31, + 0x4c,0x33,0x33,0x2e,0x38,0x37,0x39,0x2c,0x31,0x38, + 0x2e,0x35,0x32,0x39,0x7a,0x22,0x2f,0x3e,0x0d,0x0a, + 0x09,0x09,0x3c,0x70,0x61,0x74,0x68,0x20,0x66,0x69, + 0x6c,0x6c,0x3d,0x22,0x23,0x46,0x46,0x46,0x46,0x46, + 0x46,0x22,0x20,0x64,0x3d,0x22,0x4d,0x32,0x39,0x2e, + 0x31,0x39,0x35,0x2c,0x32,0x32,0x2e,0x32,0x38,0x34, + 0x63,0x2d,0x30,0x2e,0x31,0x32,0x34,0x2c,0x30,0x2d, + 0x30,0x2e,0x32,0x34,0x36,0x2d,0x30,0x2e,0x30,0x33, + 0x2d,0x30,0x2e,0x33,0x35,0x38,0x2d,0x30,0x2e,0x30, + 0x39,0x32,0x63,0x2d,0x30,0x2e,0x32,0x34,0x31,0x2d, + 0x30,0x2e,0x31,0x33,0x32,0x2d,0x30,0x2e,0x33,0x39, + 0x32,0x2d,0x30,0x2e,0x33,0x38,0x34,0x2d,0x30,0x2e, + 0x33,0x39,0x32,0x2d,0x30,0x2e,0x36,0x35,0x38,0x76, + 0x2d,0x36,0x2e,0x30,0x31,0x0d,0x0a,0x09,0x09,0x09, + 0x63,0x30,0x2d,0x30,0x2e,0x32,0x37,0x34,0x2c,0x30, + 0x2e,0x31,0x34,0x39,0x2d,0x30,0x2e,0x35,0x32,0x36, + 0x2c,0x30,0x2e,0x33,0x39,0x32,0x2d,0x30,0x2e,0x36, + 0x35,0x38,0x63,0x30,0x2e,0x32,0x33,0x39,0x2d,0x30, + 0x2e,0x31,0x33,0x31,0x2c,0x30,0x2e,0x35,0x33,0x33, + 0x2d,0x30,0x2e,0x31,0x32,0x33,0x2c,0x30,0x2e,0x37, + 0x36,0x35,0x2c,0x30,0x2e,0x30,0x32,0x37,0x6c,0x34, + 0x2e,0x36,0x38,0x35,0x2c,0x33,0x2e,0x30,0x30,0x35, + 0x63,0x30,0x2e,0x32,0x31,0x35,0x2c,0x30,0x2e,0x31, + 0x33,0x38,0x2c,0x30,0x2e,0x33,0x34,0x35,0x2c,0x30, + 0x2e,0x33,0x37,0x36,0x2c,0x30,0x2e,0x33,0x34,0x35, + 0x2c,0x30,0x2e,0x36,0x33,0x31,0x0d,0x0a,0x09,0x09, + 0x09,0x73,0x2d,0x30,0x2e,0x31,0x33,0x2c,0x30,0x2e, + 0x34,0x39,0x33,0x2d,0x30,0x2e,0x33,0x34,0x35,0x2c, + 0x30,0x2e,0x36,0x33,0x31,0x6c,0x2d,0x34,0x2e,0x36, + 0x38,0x35,0x2c,0x33,0x2e,0x30,0x30,0x34,0x43,0x32, + 0x39,0x2e,0x34,0x37,0x38,0x2c,0x32,0x32,0x2e,0x32, + 0x34,0x34,0x2c,0x32,0x39,0x2e,0x33,0x33,0x36,0x2c, + 0x32,0x32,0x2e,0x32,0x38,0x34,0x2c,0x32,0x39,0x2e, + 0x31,0x39,0x35,0x2c,0x32,0x32,0x2e,0x32,0x38,0x34, + 0x7a,0x20,0x4d,0x32,0x39,0x2e,0x39,0x34,0x35,0x2c, + 0x31,0x36,0x2e,0x38,0x39,0x36,0x76,0x33,0x2e,0x32, + 0x36,0x36,0x6c,0x32,0x2e,0x35,0x34,0x36,0x2d,0x31, + 0x2e,0x36,0x33,0x33,0x0d,0x0a,0x09,0x09,0x09,0x4c, + 0x32,0x39,0x2e,0x39,0x34,0x35,0x2c,0x31,0x36,0x2e, + 0x38,0x39,0x36,0x7a,0x22,0x2f,0x3e,0x0d,0x0a,0x09, + 0x3c,0x2f,0x67,0x3e,0x0d,0x0a,0x09,0x3c,0x67,0x3e, + 0x0d,0x0a,0x09,0x09,0x3c,0x70,0x61,0x74,0x68,0x20, + 0x66,0x69,0x6c,0x6c,0x3d,0x22,0x23,0x46,0x46,0x46, + 0x46,0x46,0x46,0x22,0x20,0x64,0x3d,0x22,0x4d,0x31, + 0x38,0x2e,0x35,0x33,0x2c,0x33,0x34,0x2e,0x36,0x32, + 0x36,0x4c,0x31,0x38,0x2e,0x35,0x33,0x2c,0x33,0x34, + 0x2e,0x36,0x32,0x36,0x63,0x2d,0x30,0x2e,0x32,0x35, + 0x35,0x2c,0x30,0x2d,0x30,0x2e,0x34,0x39,0x32,0x2d, + 0x30,0x2e,0x31,0x33,0x2d,0x30,0x2e,0x36,0x33,0x31, + 0x2d,0x30,0x2e,0x33,0x34,0x35,0x6c,0x2d,0x33,0x2e, + 0x30,0x30,0x35,0x2d,0x34,0x2e,0x36,0x38,0x34,0x0d, + 0x0a,0x09,0x09,0x09,0x63,0x2d,0x30,0x2e,0x31,0x34, + 0x37,0x2d,0x30,0x2e,0x32,0x33,0x31,0x2d,0x30,0x2e, + 0x31,0x35,0x38,0x2d,0x30,0x2e,0x35,0x32,0x34,0x2d, + 0x30,0x2e,0x30,0x32,0x36,0x2d,0x30,0x2e,0x37,0x36, + 0x36,0x73,0x30,0x2e,0x33,0x38,0x34,0x2d,0x30,0x2e, + 0x33,0x39,0x31,0x2c,0x30,0x2e,0x36,0x35,0x37,0x2d, + 0x30,0x2e,0x33,0x39,0x31,0x68,0x36,0x2e,0x30,0x31, + 0x32,0x63,0x30,0x2e,0x32,0x37,0x33,0x2c,0x30,0x2c, + 0x30,0x2e,0x35,0x32,0x35,0x2c,0x30,0x2e,0x31,0x34, + 0x38,0x2c,0x30,0x2e,0x36,0x35,0x37,0x2c,0x30,0x2e, + 0x33,0x39,0x31,0x0d,0x0a,0x09,0x09,0x09,0x63,0x30, + 0x2e,0x31,0x33,0x33,0x2c,0x30,0x2e,0x32,0x34,0x2c, + 0x30,0x2e,0x31,0x32,0x31,0x2c,0x30,0x2e,0x35,0x33, + 0x33,0x2d,0x30,0x2e,0x30,0x32,0x36,0x2c,0x30,0x2e, + 0x37,0x36,0x36,0x6c,0x2d,0x33,0x2e,0x30,0x30,0x35, + 0x2c,0x34,0x2e,0x36,0x38,0x34,0x43,0x31,0x39,0x2e, + 0x30,0x32,0x33,0x2c,0x33,0x34,0x2e,0x34,0x39,0x36, + 0x2c,0x31,0x38,0x2e,0x37,0x38,0x36,0x2c,0x33,0x34, + 0x2e,0x36,0x32,0x36,0x2c,0x31,0x38,0x2e,0x35,0x33, + 0x2c,0x33,0x34,0x2e,0x36,0x32,0x36,0x7a,0x20,0x4d, + 0x31,0x36,0x2e,0x38,0x39,0x37,0x2c,0x32,0x39,0x2e, + 0x39,0x34,0x32,0x6c,0x31,0x2e,0x36,0x33,0x33,0x2c, + 0x32,0x2e,0x35,0x34,0x35,0x0d,0x0a,0x09,0x09,0x09, + 0x6c,0x31,0x2e,0x36,0x33,0x35,0x2d,0x32,0x2e,0x35, + 0x34,0x35,0x48,0x31,0x36,0x2e,0x38,0x39,0x37,0x7a, + 0x22,0x2f,0x3e,0x0d,0x0a,0x09,0x3c,0x2f,0x67,0x3e, + 0x0d,0x0a,0x3c,0x2f,0x67,0x3e,0x0d,0x0a,0x3c,0x2f, + 0x73,0x76,0x67,0x3e,0x0d,0x0a +}; diff --git a/data/converted/help_dpad_up_svg.cpp b/data/converted/help_dpad_up_svg.cpp new file mode 100644 index 000000000..225af33da --- /dev/null +++ b/data/converted/help_dpad_up_svg.cpp @@ -0,0 +1,329 @@ +//this file was auto-generated from "dpad_up.svg" by res2h + +#include "../Resources.h" + +const size_t help_dpad_up_svg_size = 3213; +const unsigned char help_dpad_up_svg_data[3213] = { + 0x3c,0x3f,0x78,0x6d,0x6c,0x20,0x76,0x65,0x72,0x73, + 0x69,0x6f,0x6e,0x3d,0x22,0x31,0x2e,0x30,0x22,0x20, + 0x65,0x6e,0x63,0x6f,0x64,0x69,0x6e,0x67,0x3d,0x22, + 0x75,0x74,0x66,0x2d,0x38,0x22,0x3f,0x3e,0x0d,0x0a, + 0x3c,0x21,0x2d,0x2d,0x20,0x47,0x65,0x6e,0x65,0x72, + 0x61,0x74,0x6f,0x72,0x3a,0x20,0x41,0x64,0x6f,0x62, + 0x65,0x20,0x49,0x6c,0x6c,0x75,0x73,0x74,0x72,0x61, + 0x74,0x6f,0x72,0x20,0x31,0x36,0x2e,0x30,0x2e,0x33, + 0x2c,0x20,0x53,0x56,0x47,0x20,0x45,0x78,0x70,0x6f, + 0x72,0x74,0x20,0x50,0x6c,0x75,0x67,0x2d,0x49,0x6e, + 0x20,0x2e,0x20,0x53,0x56,0x47,0x20,0x56,0x65,0x72, + 0x73,0x69,0x6f,0x6e,0x3a,0x20,0x36,0x2e,0x30,0x30, + 0x20,0x42,0x75,0x69,0x6c,0x64,0x20,0x30,0x29,0x20, + 0x20,0x2d,0x2d,0x3e,0x0d,0x0a,0x3c,0x21,0x44,0x4f, + 0x43,0x54,0x59,0x50,0x45,0x20,0x73,0x76,0x67,0x20, + 0x50,0x55,0x42,0x4c,0x49,0x43,0x20,0x22,0x2d,0x2f, + 0x2f,0x57,0x33,0x43,0x2f,0x2f,0x44,0x54,0x44,0x20, + 0x53,0x56,0x47,0x20,0x31,0x2e,0x31,0x2f,0x2f,0x45, + 0x4e,0x22,0x20,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f, + 0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72, + 0x67,0x2f,0x47,0x72,0x61,0x70,0x68,0x69,0x63,0x73, + 0x2f,0x53,0x56,0x47,0x2f,0x31,0x2e,0x31,0x2f,0x44, + 0x54,0x44,0x2f,0x73,0x76,0x67,0x31,0x31,0x2e,0x64, + 0x74,0x64,0x22,0x3e,0x0d,0x0a,0x3c,0x73,0x76,0x67, + 0x20,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x3d,0x22, + 0x31,0x2e,0x31,0x22,0x20,0x69,0x64,0x3d,0x22,0x5f, + 0x78,0x33,0x30,0x5f,0x22,0x20,0x78,0x6d,0x6c,0x6e, + 0x73,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f, + 0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72,0x67, + 0x2f,0x32,0x30,0x30,0x30,0x2f,0x73,0x76,0x67,0x22, + 0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3a,0x78,0x6c,0x69, + 0x6e,0x6b,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f, + 0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72, + 0x67,0x2f,0x31,0x39,0x39,0x39,0x2f,0x78,0x6c,0x69, + 0x6e,0x6b,0x22,0x20,0x78,0x3d,0x22,0x30,0x70,0x78, + 0x22,0x20,0x79,0x3d,0x22,0x30,0x70,0x78,0x22,0x0d, + 0x0a,0x09,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x22, + 0x33,0x37,0x2e,0x30,0x36,0x31,0x70,0x78,0x22,0x20, + 0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x22,0x33,0x37, + 0x2e,0x30,0x36,0x31,0x70,0x78,0x22,0x20,0x76,0x69, + 0x65,0x77,0x42,0x6f,0x78,0x3d,0x22,0x30,0x20,0x30, + 0x20,0x33,0x37,0x2e,0x30,0x36,0x31,0x20,0x33,0x37, + 0x2e,0x30,0x36,0x31,0x22,0x20,0x65,0x6e,0x61,0x62, + 0x6c,0x65,0x2d,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f, + 0x75,0x6e,0x64,0x3d,0x22,0x6e,0x65,0x77,0x20,0x30, + 0x20,0x30,0x20,0x33,0x37,0x2e,0x30,0x36,0x31,0x20, + 0x33,0x37,0x2e,0x30,0x36,0x31,0x22,0x20,0x78,0x6d, + 0x6c,0x3a,0x73,0x70,0x61,0x63,0x65,0x3d,0x22,0x70, + 0x72,0x65,0x73,0x65,0x72,0x76,0x65,0x22,0x3e,0x0d, + 0x0a,0x3c,0x67,0x3e,0x0d,0x0a,0x09,0x3c,0x67,0x3e, + 0x0d,0x0a,0x09,0x09,0x3c,0x67,0x3e,0x0d,0x0a,0x09, + 0x09,0x09,0x3c,0x70,0x61,0x74,0x68,0x20,0x66,0x69, + 0x6c,0x6c,0x3d,0x22,0x23,0x46,0x46,0x46,0x46,0x46, + 0x46,0x22,0x20,0x64,0x3d,0x22,0x4d,0x32,0x32,0x2e, + 0x30,0x38,0x36,0x2c,0x33,0x37,0x2e,0x30,0x36,0x68, + 0x2d,0x37,0x2e,0x31,0x31,0x31,0x63,0x2d,0x32,0x2e, + 0x32,0x38,0x39,0x2c,0x30,0x2d,0x33,0x2e,0x31,0x31, + 0x39,0x2d,0x31,0x2e,0x38,0x36,0x36,0x2d,0x33,0x2e, + 0x31,0x31,0x39,0x2d,0x33,0x2e,0x31,0x32,0x31,0x76, + 0x2d,0x38,0x2e,0x37,0x33,0x32,0x48,0x33,0x2e,0x31, + 0x32,0x31,0x43,0x30,0x2e,0x38,0x33,0x31,0x2c,0x32, + 0x35,0x2e,0x32,0x30,0x36,0x2c,0x30,0x2c,0x32,0x33, + 0x2e,0x33,0x34,0x2c,0x30,0x2c,0x32,0x32,0x2e,0x30, + 0x38,0x35,0x0d,0x0a,0x09,0x09,0x09,0x09,0x76,0x2d, + 0x37,0x2e,0x31,0x31,0x63,0x30,0x2d,0x32,0x2e,0x32, + 0x38,0x39,0x2c,0x31,0x2e,0x38,0x36,0x37,0x2d,0x33, + 0x2e,0x31,0x32,0x2c,0x33,0x2e,0x31,0x32,0x31,0x2d, + 0x33,0x2e,0x31,0x32,0x68,0x38,0x2e,0x37,0x33,0x33, + 0x56,0x33,0x2e,0x31,0x32,0x31,0x43,0x31,0x31,0x2e, + 0x38,0x35,0x35,0x2c,0x30,0x2e,0x38,0x33,0x31,0x2c, + 0x31,0x33,0x2e,0x37,0x32,0x2c,0x30,0x2c,0x31,0x34, + 0x2e,0x39,0x37,0x34,0x2c,0x30,0x68,0x37,0x2e,0x31, + 0x31,0x31,0x63,0x32,0x2e,0x32,0x39,0x2c,0x30,0x2c, + 0x33,0x2e,0x31,0x32,0x31,0x2c,0x31,0x2e,0x38,0x36, + 0x37,0x2c,0x33,0x2e,0x31,0x32,0x31,0x2c,0x33,0x2e, + 0x31,0x32,0x31,0x76,0x38,0x2e,0x37,0x33,0x32,0x0d, + 0x0a,0x09,0x09,0x09,0x09,0x68,0x38,0x2e,0x37,0x33, + 0x31,0x63,0x32,0x2e,0x32,0x39,0x2c,0x30,0x2c,0x33, + 0x2e,0x31,0x32,0x31,0x2c,0x31,0x2e,0x38,0x36,0x35, + 0x2c,0x33,0x2e,0x31,0x32,0x31,0x2c,0x33,0x2e,0x31, + 0x32,0x76,0x37,0x2e,0x31,0x31,0x63,0x30,0x2c,0x32, + 0x2e,0x32,0x39,0x2d,0x31,0x2e,0x38,0x36,0x36,0x2c, + 0x33,0x2e,0x31,0x32,0x31,0x2d,0x33,0x2e,0x31,0x32, + 0x31,0x2c,0x33,0x2e,0x31,0x32,0x31,0x68,0x2d,0x38, + 0x2e,0x37,0x33,0x31,0x76,0x38,0x2e,0x37,0x33,0x32, + 0x0d,0x0a,0x09,0x09,0x09,0x09,0x43,0x32,0x35,0x2e, + 0x32,0x30,0x37,0x2c,0x33,0x36,0x2e,0x32,0x32,0x39, + 0x2c,0x32,0x33,0x2e,0x33,0x34,0x31,0x2c,0x33,0x37, + 0x2e,0x30,0x36,0x2c,0x32,0x32,0x2e,0x30,0x38,0x36, + 0x2c,0x33,0x37,0x2e,0x30,0x36,0x7a,0x20,0x4d,0x33, + 0x2e,0x31,0x32,0x31,0x2c,0x31,0x33,0x2e,0x33,0x35, + 0x34,0x43,0x32,0x2e,0x37,0x34,0x35,0x2c,0x31,0x33, + 0x2e,0x33,0x35,0x39,0x2c,0x31,0x2e,0x35,0x2c,0x31, + 0x33,0x2e,0x34,0x39,0x33,0x2c,0x31,0x2e,0x35,0x2c, + 0x31,0x34,0x2e,0x39,0x37,0x34,0x76,0x37,0x2e,0x31, + 0x31,0x0d,0x0a,0x09,0x09,0x09,0x09,0x63,0x30,0x2e, + 0x30,0x30,0x36,0x2c,0x30,0x2e,0x33,0x37,0x36,0x2c, + 0x30,0x2e,0x31,0x33,0x39,0x2c,0x31,0x2e,0x36,0x32, + 0x31,0x2c,0x31,0x2e,0x36,0x32,0x31,0x2c,0x31,0x2e, + 0x36,0x32,0x31,0x68,0x31,0x30,0x2e,0x32,0x33,0x33, + 0x76,0x31,0x30,0x2e,0x32,0x33,0x32,0x63,0x30,0x2e, + 0x30,0x30,0x35,0x2c,0x30,0x2e,0x33,0x37,0x36,0x2c, + 0x30,0x2e,0x31,0x34,0x2c,0x31,0x2e,0x36,0x32,0x31, + 0x2c,0x31,0x2e,0x36,0x31,0x39,0x2c,0x31,0x2e,0x36, + 0x32,0x31,0x68,0x37,0x2e,0x31,0x30,0x38,0x0d,0x0a, + 0x09,0x09,0x09,0x09,0x63,0x30,0x2e,0x33,0x38,0x34, + 0x2d,0x30,0x2e,0x30,0x30,0x37,0x2c,0x31,0x2e,0x36, + 0x32,0x34,0x2d,0x30,0x2e,0x31,0x34,0x33,0x2c,0x31, + 0x2e,0x36,0x32,0x34,0x2d,0x31,0x2e,0x36,0x32,0x31, + 0x56,0x32,0x33,0x2e,0x37,0x30,0x36,0x68,0x31,0x30, + 0x2e,0x32,0x33,0x31,0x63,0x30,0x2e,0x33,0x37,0x36, + 0x2d,0x30,0x2e,0x30,0x30,0x36,0x2c,0x31,0x2e,0x36, + 0x32,0x31,0x2d,0x30,0x2e,0x31,0x34,0x2c,0x31,0x2e, + 0x36,0x32,0x31,0x2d,0x31,0x2e,0x36,0x32,0x31,0x76, + 0x2d,0x37,0x2e,0x31,0x31,0x0d,0x0a,0x09,0x09,0x09, + 0x09,0x63,0x2d,0x30,0x2e,0x30,0x30,0x36,0x2d,0x30, + 0x2e,0x33,0x37,0x36,0x2d,0x30,0x2e,0x31,0x34,0x2d, + 0x31,0x2e,0x36,0x32,0x2d,0x31,0x2e,0x36,0x32,0x31, + 0x2d,0x31,0x2e,0x36,0x32,0x68,0x2d,0x31,0x30,0x2e, + 0x32,0x33,0x56,0x33,0x2e,0x31,0x32,0x31,0x43,0x32, + 0x33,0x2e,0x37,0x30,0x31,0x2c,0x32,0x2e,0x37,0x34, + 0x35,0x2c,0x32,0x33,0x2e,0x35,0x36,0x37,0x2c,0x31, + 0x2e,0x35,0x2c,0x32,0x32,0x2e,0x30,0x38,0x36,0x2c, + 0x31,0x2e,0x35,0x68,0x2d,0x37,0x2e,0x31,0x31,0x31, + 0x0d,0x0a,0x09,0x09,0x09,0x09,0x63,0x2d,0x30,0x2e, + 0x33,0x37,0x36,0x2c,0x30,0x2e,0x30,0x30,0x36,0x2d, + 0x31,0x2e,0x36,0x31,0x39,0x2c,0x30,0x2e,0x31,0x34, + 0x2d,0x31,0x2e,0x36,0x31,0x39,0x2c,0x31,0x2e,0x36, + 0x32,0x31,0x76,0x31,0x30,0x2e,0x32,0x33,0x32,0x4c, + 0x33,0x2e,0x31,0x32,0x31,0x2c,0x31,0x33,0x2e,0x33, + 0x35,0x34,0x4c,0x33,0x2e,0x31,0x32,0x31,0x2c,0x31, + 0x33,0x2e,0x33,0x35,0x34,0x7a,0x22,0x2f,0x3e,0x0d, + 0x0a,0x09,0x09,0x3c,0x2f,0x67,0x3e,0x0d,0x0a,0x09, + 0x3c,0x2f,0x67,0x3e,0x0d,0x0a,0x09,0x3c,0x67,0x3e, + 0x0d,0x0a,0x09,0x09,0x3c,0x70,0x61,0x74,0x68,0x20, + 0x66,0x69,0x6c,0x6c,0x3d,0x22,0x23,0x46,0x46,0x46, + 0x46,0x46,0x46,0x22,0x20,0x64,0x3d,0x22,0x4d,0x31, + 0x38,0x2e,0x35,0x33,0x31,0x2c,0x32,0x32,0x2e,0x31, + 0x38,0x31,0x63,0x2d,0x32,0x2e,0x30,0x31,0x33,0x2c, + 0x30,0x2d,0x33,0x2e,0x36,0x34,0x39,0x2d,0x31,0x2e, + 0x36,0x33,0x39,0x2d,0x33,0x2e,0x36,0x34,0x39,0x2d, + 0x33,0x2e,0x36,0x35,0x31,0x73,0x31,0x2e,0x36,0x33, + 0x38,0x2d,0x33,0x2e,0x36,0x35,0x2c,0x33,0x2e,0x36, + 0x34,0x39,0x2d,0x33,0x2e,0x36,0x35,0x63,0x32,0x2e, + 0x30,0x31,0x33,0x2c,0x30,0x2c,0x33,0x2e,0x36,0x35, + 0x2c,0x31,0x2e,0x36,0x33,0x39,0x2c,0x33,0x2e,0x36, + 0x35,0x2c,0x33,0x2e,0x36,0x35,0x0d,0x0a,0x09,0x09, + 0x09,0x43,0x32,0x32,0x2e,0x31,0x38,0x32,0x2c,0x32, + 0x30,0x2e,0x35,0x34,0x33,0x2c,0x32,0x30,0x2e,0x35, + 0x34,0x34,0x2c,0x32,0x32,0x2e,0x31,0x38,0x31,0x2c, + 0x31,0x38,0x2e,0x35,0x33,0x31,0x2c,0x32,0x32,0x2e, + 0x31,0x38,0x31,0x7a,0x20,0x4d,0x31,0x38,0x2e,0x35, + 0x33,0x31,0x2c,0x31,0x36,0x2e,0x33,0x37,0x39,0x63, + 0x2d,0x31,0x2e,0x31,0x38,0x36,0x2c,0x30,0x2d,0x32, + 0x2e,0x31,0x34,0x39,0x2c,0x30,0x2e,0x39,0x36,0x35, + 0x2d,0x32,0x2e,0x31,0x34,0x39,0x2c,0x32,0x2e,0x31, + 0x35,0x73,0x30,0x2e,0x39,0x36,0x35,0x2c,0x32,0x2e, + 0x31,0x35,0x31,0x2c,0x32,0x2e,0x31,0x34,0x39,0x2c, + 0x32,0x2e,0x31,0x35,0x31,0x0d,0x0a,0x09,0x09,0x09, + 0x63,0x31,0x2e,0x31,0x38,0x36,0x2c,0x30,0x2c,0x32, + 0x2e,0x31,0x35,0x2d,0x30,0x2e,0x39,0x36,0x36,0x2c, + 0x32,0x2e,0x31,0x35,0x2d,0x32,0x2e,0x31,0x35,0x31, + 0x43,0x32,0x30,0x2e,0x36,0x38,0x32,0x2c,0x31,0x37, + 0x2e,0x33,0x34,0x34,0x2c,0x31,0x39,0x2e,0x37,0x31, + 0x37,0x2c,0x31,0x36,0x2e,0x33,0x37,0x39,0x2c,0x31, + 0x38,0x2e,0x35,0x33,0x31,0x2c,0x31,0x36,0x2e,0x33, + 0x37,0x39,0x7a,0x22,0x2f,0x3e,0x0d,0x0a,0x09,0x3c, + 0x2f,0x67,0x3e,0x0d,0x0a,0x09,0x3c,0x67,0x3e,0x0d, + 0x0a,0x09,0x09,0x3c,0x70,0x61,0x74,0x68,0x20,0x66, + 0x69,0x6c,0x6c,0x3d,0x22,0x23,0x46,0x46,0x46,0x46, + 0x46,0x46,0x22,0x20,0x64,0x3d,0x22,0x4d,0x31,0x38, + 0x2e,0x35,0x33,0x2c,0x33,0x2e,0x31,0x38,0x33,0x6c, + 0x2d,0x33,0x2e,0x30,0x30,0x35,0x2c,0x34,0x2e,0x36, + 0x38,0x34,0x68,0x36,0x2e,0x30,0x31,0x32,0x4c,0x31, + 0x38,0x2e,0x35,0x33,0x2c,0x33,0x2e,0x31,0x38,0x33, + 0x7a,0x22,0x2f,0x3e,0x0d,0x0a,0x09,0x09,0x3c,0x70, + 0x61,0x74,0x68,0x20,0x66,0x69,0x6c,0x6c,0x3d,0x22, + 0x23,0x46,0x46,0x46,0x46,0x46,0x46,0x22,0x20,0x64, + 0x3d,0x22,0x4d,0x32,0x31,0x2e,0x35,0x33,0x36,0x2c, + 0x38,0x2e,0x36,0x31,0x36,0x68,0x2d,0x36,0x2e,0x30, + 0x31,0x32,0x63,0x2d,0x30,0x2e,0x32,0x37,0x33,0x2c, + 0x30,0x2d,0x30,0x2e,0x35,0x32,0x35,0x2d,0x30,0x2e, + 0x31,0x35,0x2d,0x30,0x2e,0x36,0x35,0x37,0x2d,0x30, + 0x2e,0x33,0x39,0x63,0x2d,0x30,0x2e,0x31,0x33,0x32, + 0x2d,0x30,0x2e,0x32,0x34,0x31,0x2d,0x30,0x2e,0x31, + 0x32,0x31,0x2d,0x30,0x2e,0x35,0x33,0x34,0x2c,0x30, + 0x2e,0x30,0x32,0x36,0x2d,0x30,0x2e,0x37,0x36,0x36, + 0x6c,0x33,0x2e,0x30,0x30,0x35,0x2d,0x34,0x2e,0x36, + 0x38,0x34,0x0d,0x0a,0x09,0x09,0x09,0x63,0x30,0x2e, + 0x32,0x37,0x36,0x2d,0x30,0x2e,0x34,0x33,0x31,0x2c, + 0x30,0x2e,0x39,0x38,0x36,0x2d,0x30,0x2e,0x34,0x33, + 0x2c,0x31,0x2e,0x32,0x36,0x34,0x2c,0x30,0x6c,0x33, + 0x2e,0x30,0x30,0x35,0x2c,0x34,0x2e,0x36,0x38,0x34, + 0x63,0x30,0x2e,0x31,0x34,0x37,0x2c,0x30,0x2e,0x32, + 0x33,0x31,0x2c,0x30,0x2e,0x31,0x35,0x39,0x2c,0x30, + 0x2e,0x35,0x32,0x34,0x2c,0x30,0x2e,0x30,0x32,0x36, + 0x2c,0x30,0x2e,0x37,0x36,0x36,0x43,0x32,0x32,0x2e, + 0x30,0x36,0x33,0x2c,0x38,0x2e,0x34,0x36,0x36,0x2c, + 0x32,0x31,0x2e,0x38,0x31,0x31,0x2c,0x38,0x2e,0x36, + 0x31,0x36,0x2c,0x32,0x31,0x2e,0x35,0x33,0x36,0x2c, + 0x38,0x2e,0x36,0x31,0x36,0x7a,0x0d,0x0a,0x09,0x09, + 0x09,0x20,0x4d,0x31,0x36,0x2e,0x38,0x39,0x37,0x2c, + 0x37,0x2e,0x31,0x31,0x36,0x68,0x33,0x2e,0x32,0x36, + 0x38,0x4c,0x31,0x38,0x2e,0x35,0x33,0x2c,0x34,0x2e, + 0x35,0x37,0x31,0x4c,0x31,0x36,0x2e,0x38,0x39,0x37, + 0x2c,0x37,0x2e,0x31,0x31,0x36,0x7a,0x22,0x2f,0x3e, + 0x0d,0x0a,0x09,0x3c,0x2f,0x67,0x3e,0x0d,0x0a,0x09, + 0x3c,0x67,0x3e,0x0d,0x0a,0x09,0x09,0x3c,0x70,0x61, + 0x74,0x68,0x20,0x66,0x69,0x6c,0x6c,0x3d,0x22,0x23, + 0x46,0x46,0x46,0x46,0x46,0x46,0x22,0x20,0x64,0x3d, + 0x22,0x4d,0x37,0x2e,0x38,0x30,0x39,0x2c,0x32,0x32, + 0x2e,0x32,0x38,0x34,0x63,0x2d,0x30,0x2e,0x31,0x34, + 0x31,0x2c,0x30,0x2d,0x30,0x2e,0x32,0x38,0x32,0x2d, + 0x30,0x2e,0x30,0x34,0x2d,0x30,0x2e,0x34,0x30,0x35, + 0x2d,0x30,0x2e,0x31,0x31,0x39,0x4c,0x32,0x2e,0x37, + 0x32,0x2c,0x31,0x39,0x2e,0x31,0x36,0x32,0x63,0x2d, + 0x30,0x2e,0x32,0x31,0x35,0x2d,0x30,0x2e,0x31,0x33, + 0x38,0x2d,0x30,0x2e,0x33,0x34,0x35,0x2d,0x30,0x2e, + 0x33,0x37,0x36,0x2d,0x30,0x2e,0x33,0x34,0x35,0x2d, + 0x30,0x2e,0x36,0x33,0x31,0x0d,0x0a,0x09,0x09,0x09, + 0x73,0x30,0x2e,0x31,0x33,0x2d,0x30,0x2e,0x34,0x39, + 0x33,0x2c,0x30,0x2e,0x33,0x34,0x35,0x2d,0x30,0x2e, + 0x36,0x33,0x31,0x6c,0x34,0x2e,0x36,0x38,0x34,0x2d, + 0x33,0x2e,0x30,0x30,0x36,0x63,0x30,0x2e,0x32,0x33, + 0x2d,0x30,0x2e,0x31,0x34,0x38,0x2c,0x30,0x2e,0x35, + 0x32,0x34,0x2d,0x30,0x2e,0x31,0x35,0x38,0x2c,0x30, + 0x2e,0x37,0x36,0x36,0x2d,0x30,0x2e,0x30,0x32,0x37, + 0x63,0x30,0x2e,0x32,0x34,0x2c,0x30,0x2e,0x31,0x33, + 0x31,0x2c,0x30,0x2e,0x33,0x39,0x2c,0x30,0x2e,0x33, + 0x38,0x34,0x2c,0x30,0x2e,0x33,0x39,0x2c,0x30,0x2e, + 0x36,0x35,0x38,0x76,0x36,0x2e,0x30,0x31,0x0d,0x0a, + 0x09,0x09,0x09,0x63,0x30,0x2c,0x30,0x2e,0x32,0x37, + 0x34,0x2d,0x30,0x2e,0x31,0x34,0x38,0x2c,0x30,0x2e, + 0x35,0x32,0x36,0x2d,0x30,0x2e,0x33,0x39,0x2c,0x30, + 0x2e,0x36,0x35,0x38,0x43,0x38,0x2e,0x30,0x35,0x36, + 0x2c,0x32,0x32,0x2e,0x32,0x35,0x34,0x2c,0x37,0x2e, + 0x39,0x33,0x32,0x2c,0x32,0x32,0x2e,0x32,0x38,0x34, + 0x2c,0x37,0x2e,0x38,0x30,0x39,0x2c,0x32,0x32,0x2e, + 0x32,0x38,0x34,0x7a,0x20,0x4d,0x34,0x2e,0x35,0x31, + 0x34,0x2c,0x31,0x38,0x2e,0x35,0x33,0x6c,0x32,0x2e, + 0x35,0x34,0x35,0x2c,0x31,0x2e,0x36,0x33,0x32,0x76, + 0x2d,0x33,0x2e,0x32,0x36,0x35,0x4c,0x34,0x2e,0x35, + 0x31,0x34,0x2c,0x31,0x38,0x2e,0x35,0x33,0x7a,0x22, + 0x2f,0x3e,0x0d,0x0a,0x09,0x3c,0x2f,0x67,0x3e,0x0d, + 0x0a,0x09,0x3c,0x67,0x3e,0x0d,0x0a,0x09,0x09,0x3c, + 0x70,0x61,0x74,0x68,0x20,0x66,0x69,0x6c,0x6c,0x3d, + 0x22,0x23,0x46,0x46,0x46,0x46,0x46,0x46,0x22,0x20, + 0x64,0x3d,0x22,0x4d,0x32,0x39,0x2e,0x31,0x39,0x35, + 0x2c,0x32,0x32,0x2e,0x32,0x38,0x34,0x63,0x2d,0x30, + 0x2e,0x31,0x32,0x34,0x2c,0x30,0x2d,0x30,0x2e,0x32, + 0x34,0x36,0x2d,0x30,0x2e,0x30,0x33,0x2d,0x30,0x2e, + 0x33,0x35,0x38,0x2d,0x30,0x2e,0x30,0x39,0x32,0x63, + 0x2d,0x30,0x2e,0x32,0x34,0x31,0x2d,0x30,0x2e,0x31, + 0x33,0x32,0x2d,0x30,0x2e,0x33,0x39,0x32,0x2d,0x30, + 0x2e,0x33,0x38,0x34,0x2d,0x30,0x2e,0x33,0x39,0x32, + 0x2d,0x30,0x2e,0x36,0x35,0x38,0x76,0x2d,0x36,0x2e, + 0x30,0x31,0x0d,0x0a,0x09,0x09,0x09,0x63,0x30,0x2d, + 0x30,0x2e,0x32,0x37,0x34,0x2c,0x30,0x2e,0x31,0x34, + 0x39,0x2d,0x30,0x2e,0x35,0x32,0x36,0x2c,0x30,0x2e, + 0x33,0x39,0x32,0x2d,0x30,0x2e,0x36,0x35,0x38,0x63, + 0x30,0x2e,0x32,0x33,0x39,0x2d,0x30,0x2e,0x31,0x33, + 0x31,0x2c,0x30,0x2e,0x35,0x33,0x33,0x2d,0x30,0x2e, + 0x31,0x32,0x33,0x2c,0x30,0x2e,0x37,0x36,0x35,0x2c, + 0x30,0x2e,0x30,0x32,0x37,0x6c,0x34,0x2e,0x36,0x38, + 0x35,0x2c,0x33,0x2e,0x30,0x30,0x35,0x63,0x30,0x2e, + 0x32,0x31,0x35,0x2c,0x30,0x2e,0x31,0x33,0x38,0x2c, + 0x30,0x2e,0x33,0x34,0x35,0x2c,0x30,0x2e,0x33,0x37, + 0x36,0x2c,0x30,0x2e,0x33,0x34,0x35,0x2c,0x30,0x2e, + 0x36,0x33,0x31,0x0d,0x0a,0x09,0x09,0x09,0x73,0x2d, + 0x30,0x2e,0x31,0x33,0x2c,0x30,0x2e,0x34,0x39,0x33, + 0x2d,0x30,0x2e,0x33,0x34,0x35,0x2c,0x30,0x2e,0x36, + 0x33,0x31,0x6c,0x2d,0x34,0x2e,0x36,0x38,0x35,0x2c, + 0x33,0x2e,0x30,0x30,0x34,0x43,0x32,0x39,0x2e,0x34, + 0x37,0x38,0x2c,0x32,0x32,0x2e,0x32,0x34,0x34,0x2c, + 0x32,0x39,0x2e,0x33,0x33,0x36,0x2c,0x32,0x32,0x2e, + 0x32,0x38,0x34,0x2c,0x32,0x39,0x2e,0x31,0x39,0x35, + 0x2c,0x32,0x32,0x2e,0x32,0x38,0x34,0x7a,0x20,0x4d, + 0x32,0x39,0x2e,0x39,0x34,0x35,0x2c,0x31,0x36,0x2e, + 0x38,0x39,0x36,0x76,0x33,0x2e,0x32,0x36,0x36,0x6c, + 0x32,0x2e,0x35,0x34,0x36,0x2d,0x31,0x2e,0x36,0x33, + 0x33,0x0d,0x0a,0x09,0x09,0x09,0x4c,0x32,0x39,0x2e, + 0x39,0x34,0x35,0x2c,0x31,0x36,0x2e,0x38,0x39,0x36, + 0x7a,0x22,0x2f,0x3e,0x0d,0x0a,0x09,0x3c,0x2f,0x67, + 0x3e,0x0d,0x0a,0x09,0x3c,0x67,0x3e,0x0d,0x0a,0x09, + 0x09,0x3c,0x70,0x61,0x74,0x68,0x20,0x66,0x69,0x6c, + 0x6c,0x3d,0x22,0x23,0x46,0x46,0x46,0x46,0x46,0x46, + 0x22,0x20,0x64,0x3d,0x22,0x4d,0x31,0x38,0x2e,0x35, + 0x33,0x2c,0x33,0x34,0x2e,0x36,0x32,0x36,0x4c,0x31, + 0x38,0x2e,0x35,0x33,0x2c,0x33,0x34,0x2e,0x36,0x32, + 0x36,0x63,0x2d,0x30,0x2e,0x32,0x35,0x35,0x2c,0x30, + 0x2d,0x30,0x2e,0x34,0x39,0x32,0x2d,0x30,0x2e,0x31, + 0x33,0x2d,0x30,0x2e,0x36,0x33,0x31,0x2d,0x30,0x2e, + 0x33,0x34,0x35,0x6c,0x2d,0x33,0x2e,0x30,0x30,0x35, + 0x2d,0x34,0x2e,0x36,0x38,0x34,0x0d,0x0a,0x09,0x09, + 0x09,0x63,0x2d,0x30,0x2e,0x31,0x34,0x37,0x2d,0x30, + 0x2e,0x32,0x33,0x31,0x2d,0x30,0x2e,0x31,0x35,0x38, + 0x2d,0x30,0x2e,0x35,0x32,0x34,0x2d,0x30,0x2e,0x30, + 0x32,0x36,0x2d,0x30,0x2e,0x37,0x36,0x36,0x73,0x30, + 0x2e,0x33,0x38,0x34,0x2d,0x30,0x2e,0x33,0x39,0x31, + 0x2c,0x30,0x2e,0x36,0x35,0x37,0x2d,0x30,0x2e,0x33, + 0x39,0x31,0x68,0x36,0x2e,0x30,0x31,0x32,0x63,0x30, + 0x2e,0x32,0x37,0x33,0x2c,0x30,0x2c,0x30,0x2e,0x35, + 0x32,0x35,0x2c,0x30,0x2e,0x31,0x34,0x38,0x2c,0x30, + 0x2e,0x36,0x35,0x37,0x2c,0x30,0x2e,0x33,0x39,0x31, + 0x0d,0x0a,0x09,0x09,0x09,0x63,0x30,0x2e,0x31,0x33, + 0x33,0x2c,0x30,0x2e,0x32,0x34,0x2c,0x30,0x2e,0x31, + 0x32,0x31,0x2c,0x30,0x2e,0x35,0x33,0x33,0x2d,0x30, + 0x2e,0x30,0x32,0x36,0x2c,0x30,0x2e,0x37,0x36,0x36, + 0x6c,0x2d,0x33,0x2e,0x30,0x30,0x35,0x2c,0x34,0x2e, + 0x36,0x38,0x34,0x43,0x31,0x39,0x2e,0x30,0x32,0x33, + 0x2c,0x33,0x34,0x2e,0x34,0x39,0x36,0x2c,0x31,0x38, + 0x2e,0x37,0x38,0x36,0x2c,0x33,0x34,0x2e,0x36,0x32, + 0x36,0x2c,0x31,0x38,0x2e,0x35,0x33,0x2c,0x33,0x34, + 0x2e,0x36,0x32,0x36,0x7a,0x20,0x4d,0x31,0x36,0x2e, + 0x38,0x39,0x37,0x2c,0x32,0x39,0x2e,0x39,0x34,0x32, + 0x6c,0x31,0x2e,0x36,0x33,0x33,0x2c,0x32,0x2e,0x35, + 0x34,0x35,0x0d,0x0a,0x09,0x09,0x09,0x6c,0x31,0x2e, + 0x36,0x33,0x35,0x2d,0x32,0x2e,0x35,0x34,0x35,0x48, + 0x31,0x36,0x2e,0x38,0x39,0x37,0x7a,0x22,0x2f,0x3e, + 0x0d,0x0a,0x09,0x3c,0x2f,0x67,0x3e,0x0d,0x0a,0x3c, + 0x2f,0x67,0x3e,0x0d,0x0a,0x3c,0x2f,0x73,0x76,0x67, + 0x3e,0x0d,0x0a +}; diff --git a/data/converted/help_dpad_updown_svg.cpp b/data/converted/help_dpad_updown_svg.cpp new file mode 100644 index 000000000..285315348 --- /dev/null +++ b/data/converted/help_dpad_updown_svg.cpp @@ -0,0 +1,336 @@ +//this file was auto-generated from "dpad_updown.svg" by res2h + +#include "../Resources.h" + +const size_t help_dpad_updown_svg_size = 3290; +const unsigned char help_dpad_updown_svg_data[3290] = { + 0x3c,0x3f,0x78,0x6d,0x6c,0x20,0x76,0x65,0x72,0x73, + 0x69,0x6f,0x6e,0x3d,0x22,0x31,0x2e,0x30,0x22,0x20, + 0x65,0x6e,0x63,0x6f,0x64,0x69,0x6e,0x67,0x3d,0x22, + 0x75,0x74,0x66,0x2d,0x38,0x22,0x3f,0x3e,0x0d,0x0a, + 0x3c,0x21,0x2d,0x2d,0x20,0x47,0x65,0x6e,0x65,0x72, + 0x61,0x74,0x6f,0x72,0x3a,0x20,0x41,0x64,0x6f,0x62, + 0x65,0x20,0x49,0x6c,0x6c,0x75,0x73,0x74,0x72,0x61, + 0x74,0x6f,0x72,0x20,0x31,0x36,0x2e,0x30,0x2e,0x33, + 0x2c,0x20,0x53,0x56,0x47,0x20,0x45,0x78,0x70,0x6f, + 0x72,0x74,0x20,0x50,0x6c,0x75,0x67,0x2d,0x49,0x6e, + 0x20,0x2e,0x20,0x53,0x56,0x47,0x20,0x56,0x65,0x72, + 0x73,0x69,0x6f,0x6e,0x3a,0x20,0x36,0x2e,0x30,0x30, + 0x20,0x42,0x75,0x69,0x6c,0x64,0x20,0x30,0x29,0x20, + 0x20,0x2d,0x2d,0x3e,0x0d,0x0a,0x3c,0x21,0x44,0x4f, + 0x43,0x54,0x59,0x50,0x45,0x20,0x73,0x76,0x67,0x20, + 0x50,0x55,0x42,0x4c,0x49,0x43,0x20,0x22,0x2d,0x2f, + 0x2f,0x57,0x33,0x43,0x2f,0x2f,0x44,0x54,0x44,0x20, + 0x53,0x56,0x47,0x20,0x31,0x2e,0x31,0x2f,0x2f,0x45, + 0x4e,0x22,0x20,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f, + 0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72, + 0x67,0x2f,0x47,0x72,0x61,0x70,0x68,0x69,0x63,0x73, + 0x2f,0x53,0x56,0x47,0x2f,0x31,0x2e,0x31,0x2f,0x44, + 0x54,0x44,0x2f,0x73,0x76,0x67,0x31,0x31,0x2e,0x64, + 0x74,0x64,0x22,0x3e,0x0d,0x0a,0x3c,0x73,0x76,0x67, + 0x20,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x3d,0x22, + 0x31,0x2e,0x31,0x22,0x20,0x69,0x64,0x3d,0x22,0x5f, + 0x78,0x33,0x30,0x5f,0x22,0x20,0x78,0x6d,0x6c,0x6e, + 0x73,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f, + 0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72,0x67, + 0x2f,0x32,0x30,0x30,0x30,0x2f,0x73,0x76,0x67,0x22, + 0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3a,0x78,0x6c,0x69, + 0x6e,0x6b,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f, + 0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72, + 0x67,0x2f,0x31,0x39,0x39,0x39,0x2f,0x78,0x6c,0x69, + 0x6e,0x6b,0x22,0x20,0x78,0x3d,0x22,0x30,0x70,0x78, + 0x22,0x20,0x79,0x3d,0x22,0x30,0x70,0x78,0x22,0x0d, + 0x0a,0x09,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x22, + 0x33,0x37,0x2e,0x30,0x36,0x31,0x70,0x78,0x22,0x20, + 0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x22,0x33,0x37, + 0x2e,0x30,0x36,0x31,0x70,0x78,0x22,0x20,0x76,0x69, + 0x65,0x77,0x42,0x6f,0x78,0x3d,0x22,0x30,0x20,0x30, + 0x20,0x33,0x37,0x2e,0x30,0x36,0x31,0x20,0x33,0x37, + 0x2e,0x30,0x36,0x31,0x22,0x20,0x65,0x6e,0x61,0x62, + 0x6c,0x65,0x2d,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f, + 0x75,0x6e,0x64,0x3d,0x22,0x6e,0x65,0x77,0x20,0x30, + 0x20,0x30,0x20,0x33,0x37,0x2e,0x30,0x36,0x31,0x20, + 0x33,0x37,0x2e,0x30,0x36,0x31,0x22,0x20,0x78,0x6d, + 0x6c,0x3a,0x73,0x70,0x61,0x63,0x65,0x3d,0x22,0x70, + 0x72,0x65,0x73,0x65,0x72,0x76,0x65,0x22,0x3e,0x0d, + 0x0a,0x3c,0x67,0x3e,0x0d,0x0a,0x09,0x3c,0x67,0x3e, + 0x0d,0x0a,0x09,0x09,0x3c,0x67,0x3e,0x0d,0x0a,0x09, + 0x09,0x09,0x3c,0x70,0x61,0x74,0x68,0x20,0x66,0x69, + 0x6c,0x6c,0x3d,0x22,0x23,0x46,0x46,0x46,0x46,0x46, + 0x46,0x22,0x20,0x64,0x3d,0x22,0x4d,0x32,0x32,0x2e, + 0x30,0x38,0x36,0x2c,0x33,0x37,0x2e,0x30,0x36,0x68, + 0x2d,0x37,0x2e,0x31,0x31,0x31,0x63,0x2d,0x32,0x2e, + 0x32,0x38,0x39,0x2c,0x30,0x2d,0x33,0x2e,0x31,0x31, + 0x39,0x2d,0x31,0x2e,0x38,0x36,0x36,0x2d,0x33,0x2e, + 0x31,0x31,0x39,0x2d,0x33,0x2e,0x31,0x32,0x31,0x76, + 0x2d,0x38,0x2e,0x37,0x33,0x32,0x48,0x33,0x2e,0x31, + 0x32,0x31,0x43,0x30,0x2e,0x38,0x33,0x31,0x2c,0x32, + 0x35,0x2e,0x32,0x30,0x36,0x2c,0x30,0x2c,0x32,0x33, + 0x2e,0x33,0x34,0x2c,0x30,0x2c,0x32,0x32,0x2e,0x30, + 0x38,0x35,0x0d,0x0a,0x09,0x09,0x09,0x09,0x76,0x2d, + 0x37,0x2e,0x31,0x31,0x63,0x30,0x2d,0x32,0x2e,0x32, + 0x38,0x39,0x2c,0x31,0x2e,0x38,0x36,0x37,0x2d,0x33, + 0x2e,0x31,0x32,0x2c,0x33,0x2e,0x31,0x32,0x31,0x2d, + 0x33,0x2e,0x31,0x32,0x68,0x38,0x2e,0x37,0x33,0x33, + 0x56,0x33,0x2e,0x31,0x32,0x31,0x43,0x31,0x31,0x2e, + 0x38,0x35,0x35,0x2c,0x30,0x2e,0x38,0x33,0x31,0x2c, + 0x31,0x33,0x2e,0x37,0x32,0x2c,0x30,0x2c,0x31,0x34, + 0x2e,0x39,0x37,0x34,0x2c,0x30,0x68,0x37,0x2e,0x31, + 0x31,0x31,0x63,0x32,0x2e,0x32,0x39,0x2c,0x30,0x2c, + 0x33,0x2e,0x31,0x32,0x31,0x2c,0x31,0x2e,0x38,0x36, + 0x37,0x2c,0x33,0x2e,0x31,0x32,0x31,0x2c,0x33,0x2e, + 0x31,0x32,0x31,0x76,0x38,0x2e,0x37,0x33,0x32,0x0d, + 0x0a,0x09,0x09,0x09,0x09,0x68,0x38,0x2e,0x37,0x33, + 0x31,0x63,0x32,0x2e,0x32,0x39,0x2c,0x30,0x2c,0x33, + 0x2e,0x31,0x32,0x31,0x2c,0x31,0x2e,0x38,0x36,0x35, + 0x2c,0x33,0x2e,0x31,0x32,0x31,0x2c,0x33,0x2e,0x31, + 0x32,0x76,0x37,0x2e,0x31,0x31,0x63,0x30,0x2c,0x32, + 0x2e,0x32,0x39,0x2d,0x31,0x2e,0x38,0x36,0x36,0x2c, + 0x33,0x2e,0x31,0x32,0x31,0x2d,0x33,0x2e,0x31,0x32, + 0x31,0x2c,0x33,0x2e,0x31,0x32,0x31,0x68,0x2d,0x38, + 0x2e,0x37,0x33,0x31,0x76,0x38,0x2e,0x37,0x33,0x32, + 0x0d,0x0a,0x09,0x09,0x09,0x09,0x43,0x32,0x35,0x2e, + 0x32,0x30,0x37,0x2c,0x33,0x36,0x2e,0x32,0x32,0x39, + 0x2c,0x32,0x33,0x2e,0x33,0x34,0x31,0x2c,0x33,0x37, + 0x2e,0x30,0x36,0x2c,0x32,0x32,0x2e,0x30,0x38,0x36, + 0x2c,0x33,0x37,0x2e,0x30,0x36,0x7a,0x20,0x4d,0x33, + 0x2e,0x31,0x32,0x31,0x2c,0x31,0x33,0x2e,0x33,0x35, + 0x34,0x43,0x32,0x2e,0x37,0x34,0x35,0x2c,0x31,0x33, + 0x2e,0x33,0x35,0x39,0x2c,0x31,0x2e,0x35,0x2c,0x31, + 0x33,0x2e,0x34,0x39,0x33,0x2c,0x31,0x2e,0x35,0x2c, + 0x31,0x34,0x2e,0x39,0x37,0x34,0x76,0x37,0x2e,0x31, + 0x31,0x0d,0x0a,0x09,0x09,0x09,0x09,0x63,0x30,0x2e, + 0x30,0x30,0x36,0x2c,0x30,0x2e,0x33,0x37,0x36,0x2c, + 0x30,0x2e,0x31,0x33,0x39,0x2c,0x31,0x2e,0x36,0x32, + 0x31,0x2c,0x31,0x2e,0x36,0x32,0x31,0x2c,0x31,0x2e, + 0x36,0x32,0x31,0x68,0x31,0x30,0x2e,0x32,0x33,0x33, + 0x76,0x31,0x30,0x2e,0x32,0x33,0x32,0x63,0x30,0x2e, + 0x30,0x30,0x35,0x2c,0x30,0x2e,0x33,0x37,0x36,0x2c, + 0x30,0x2e,0x31,0x34,0x2c,0x31,0x2e,0x36,0x32,0x31, + 0x2c,0x31,0x2e,0x36,0x31,0x39,0x2c,0x31,0x2e,0x36, + 0x32,0x31,0x68,0x37,0x2e,0x31,0x30,0x38,0x0d,0x0a, + 0x09,0x09,0x09,0x09,0x63,0x30,0x2e,0x33,0x38,0x34, + 0x2d,0x30,0x2e,0x30,0x30,0x37,0x2c,0x31,0x2e,0x36, + 0x32,0x34,0x2d,0x30,0x2e,0x31,0x34,0x33,0x2c,0x31, + 0x2e,0x36,0x32,0x34,0x2d,0x31,0x2e,0x36,0x32,0x31, + 0x56,0x32,0x33,0x2e,0x37,0x30,0x36,0x68,0x31,0x30, + 0x2e,0x32,0x33,0x31,0x63,0x30,0x2e,0x33,0x37,0x36, + 0x2d,0x30,0x2e,0x30,0x30,0x36,0x2c,0x31,0x2e,0x36, + 0x32,0x31,0x2d,0x30,0x2e,0x31,0x34,0x2c,0x31,0x2e, + 0x36,0x32,0x31,0x2d,0x31,0x2e,0x36,0x32,0x31,0x76, + 0x2d,0x37,0x2e,0x31,0x31,0x0d,0x0a,0x09,0x09,0x09, + 0x09,0x63,0x2d,0x30,0x2e,0x30,0x30,0x36,0x2d,0x30, + 0x2e,0x33,0x37,0x36,0x2d,0x30,0x2e,0x31,0x34,0x2d, + 0x31,0x2e,0x36,0x32,0x2d,0x31,0x2e,0x36,0x32,0x31, + 0x2d,0x31,0x2e,0x36,0x32,0x68,0x2d,0x31,0x30,0x2e, + 0x32,0x33,0x56,0x33,0x2e,0x31,0x32,0x31,0x43,0x32, + 0x33,0x2e,0x37,0x30,0x31,0x2c,0x32,0x2e,0x37,0x34, + 0x35,0x2c,0x32,0x33,0x2e,0x35,0x36,0x37,0x2c,0x31, + 0x2e,0x35,0x2c,0x32,0x32,0x2e,0x30,0x38,0x36,0x2c, + 0x31,0x2e,0x35,0x68,0x2d,0x37,0x2e,0x31,0x31,0x31, + 0x0d,0x0a,0x09,0x09,0x09,0x09,0x63,0x2d,0x30,0x2e, + 0x33,0x37,0x36,0x2c,0x30,0x2e,0x30,0x30,0x36,0x2d, + 0x31,0x2e,0x36,0x31,0x39,0x2c,0x30,0x2e,0x31,0x34, + 0x2d,0x31,0x2e,0x36,0x31,0x39,0x2c,0x31,0x2e,0x36, + 0x32,0x31,0x76,0x31,0x30,0x2e,0x32,0x33,0x32,0x4c, + 0x33,0x2e,0x31,0x32,0x31,0x2c,0x31,0x33,0x2e,0x33, + 0x35,0x34,0x4c,0x33,0x2e,0x31,0x32,0x31,0x2c,0x31, + 0x33,0x2e,0x33,0x35,0x34,0x7a,0x22,0x2f,0x3e,0x0d, + 0x0a,0x09,0x09,0x3c,0x2f,0x67,0x3e,0x0d,0x0a,0x09, + 0x3c,0x2f,0x67,0x3e,0x0d,0x0a,0x09,0x3c,0x67,0x3e, + 0x0d,0x0a,0x09,0x09,0x3c,0x70,0x61,0x74,0x68,0x20, + 0x66,0x69,0x6c,0x6c,0x3d,0x22,0x23,0x46,0x46,0x46, + 0x46,0x46,0x46,0x22,0x20,0x64,0x3d,0x22,0x4d,0x31, + 0x38,0x2e,0x35,0x33,0x31,0x2c,0x32,0x32,0x2e,0x31, + 0x38,0x31,0x63,0x2d,0x32,0x2e,0x30,0x31,0x33,0x2c, + 0x30,0x2d,0x33,0x2e,0x36,0x34,0x39,0x2d,0x31,0x2e, + 0x36,0x33,0x39,0x2d,0x33,0x2e,0x36,0x34,0x39,0x2d, + 0x33,0x2e,0x36,0x35,0x31,0x73,0x31,0x2e,0x36,0x33, + 0x38,0x2d,0x33,0x2e,0x36,0x35,0x2c,0x33,0x2e,0x36, + 0x34,0x39,0x2d,0x33,0x2e,0x36,0x35,0x63,0x32,0x2e, + 0x30,0x31,0x33,0x2c,0x30,0x2c,0x33,0x2e,0x36,0x35, + 0x2c,0x31,0x2e,0x36,0x33,0x39,0x2c,0x33,0x2e,0x36, + 0x35,0x2c,0x33,0x2e,0x36,0x35,0x0d,0x0a,0x09,0x09, + 0x09,0x43,0x32,0x32,0x2e,0x31,0x38,0x32,0x2c,0x32, + 0x30,0x2e,0x35,0x34,0x33,0x2c,0x32,0x30,0x2e,0x35, + 0x34,0x34,0x2c,0x32,0x32,0x2e,0x31,0x38,0x31,0x2c, + 0x31,0x38,0x2e,0x35,0x33,0x31,0x2c,0x32,0x32,0x2e, + 0x31,0x38,0x31,0x7a,0x20,0x4d,0x31,0x38,0x2e,0x35, + 0x33,0x31,0x2c,0x31,0x36,0x2e,0x33,0x37,0x39,0x63, + 0x2d,0x31,0x2e,0x31,0x38,0x36,0x2c,0x30,0x2d,0x32, + 0x2e,0x31,0x34,0x39,0x2c,0x30,0x2e,0x39,0x36,0x35, + 0x2d,0x32,0x2e,0x31,0x34,0x39,0x2c,0x32,0x2e,0x31, + 0x35,0x73,0x30,0x2e,0x39,0x36,0x35,0x2c,0x32,0x2e, + 0x31,0x35,0x31,0x2c,0x32,0x2e,0x31,0x34,0x39,0x2c, + 0x32,0x2e,0x31,0x35,0x31,0x0d,0x0a,0x09,0x09,0x09, + 0x63,0x31,0x2e,0x31,0x38,0x36,0x2c,0x30,0x2c,0x32, + 0x2e,0x31,0x35,0x2d,0x30,0x2e,0x39,0x36,0x36,0x2c, + 0x32,0x2e,0x31,0x35,0x2d,0x32,0x2e,0x31,0x35,0x31, + 0x43,0x32,0x30,0x2e,0x36,0x38,0x32,0x2c,0x31,0x37, + 0x2e,0x33,0x34,0x34,0x2c,0x31,0x39,0x2e,0x37,0x31, + 0x37,0x2c,0x31,0x36,0x2e,0x33,0x37,0x39,0x2c,0x31, + 0x38,0x2e,0x35,0x33,0x31,0x2c,0x31,0x36,0x2e,0x33, + 0x37,0x39,0x7a,0x22,0x2f,0x3e,0x0d,0x0a,0x09,0x3c, + 0x2f,0x67,0x3e,0x0d,0x0a,0x09,0x3c,0x67,0x3e,0x0d, + 0x0a,0x09,0x09,0x3c,0x70,0x61,0x74,0x68,0x20,0x66, + 0x69,0x6c,0x6c,0x3d,0x22,0x23,0x46,0x46,0x46,0x46, + 0x46,0x46,0x22,0x20,0x64,0x3d,0x22,0x4d,0x31,0x38, + 0x2e,0x35,0x33,0x2c,0x33,0x2e,0x31,0x38,0x33,0x6c, + 0x2d,0x33,0x2e,0x30,0x30,0x35,0x2c,0x34,0x2e,0x36, + 0x38,0x34,0x68,0x36,0x2e,0x30,0x31,0x32,0x4c,0x31, + 0x38,0x2e,0x35,0x33,0x2c,0x33,0x2e,0x31,0x38,0x33, + 0x7a,0x22,0x2f,0x3e,0x0d,0x0a,0x09,0x09,0x3c,0x70, + 0x61,0x74,0x68,0x20,0x66,0x69,0x6c,0x6c,0x3d,0x22, + 0x23,0x46,0x46,0x46,0x46,0x46,0x46,0x22,0x20,0x64, + 0x3d,0x22,0x4d,0x32,0x31,0x2e,0x35,0x33,0x36,0x2c, + 0x38,0x2e,0x36,0x31,0x36,0x68,0x2d,0x36,0x2e,0x30, + 0x31,0x32,0x63,0x2d,0x30,0x2e,0x32,0x37,0x33,0x2c, + 0x30,0x2d,0x30,0x2e,0x35,0x32,0x35,0x2d,0x30,0x2e, + 0x31,0x35,0x2d,0x30,0x2e,0x36,0x35,0x37,0x2d,0x30, + 0x2e,0x33,0x39,0x63,0x2d,0x30,0x2e,0x31,0x33,0x32, + 0x2d,0x30,0x2e,0x32,0x34,0x31,0x2d,0x30,0x2e,0x31, + 0x32,0x31,0x2d,0x30,0x2e,0x35,0x33,0x34,0x2c,0x30, + 0x2e,0x30,0x32,0x36,0x2d,0x30,0x2e,0x37,0x36,0x36, + 0x6c,0x33,0x2e,0x30,0x30,0x35,0x2d,0x34,0x2e,0x36, + 0x38,0x34,0x0d,0x0a,0x09,0x09,0x09,0x63,0x30,0x2e, + 0x32,0x37,0x36,0x2d,0x30,0x2e,0x34,0x33,0x31,0x2c, + 0x30,0x2e,0x39,0x38,0x36,0x2d,0x30,0x2e,0x34,0x33, + 0x2c,0x31,0x2e,0x32,0x36,0x34,0x2c,0x30,0x6c,0x33, + 0x2e,0x30,0x30,0x35,0x2c,0x34,0x2e,0x36,0x38,0x34, + 0x63,0x30,0x2e,0x31,0x34,0x37,0x2c,0x30,0x2e,0x32, + 0x33,0x31,0x2c,0x30,0x2e,0x31,0x35,0x39,0x2c,0x30, + 0x2e,0x35,0x32,0x34,0x2c,0x30,0x2e,0x30,0x32,0x36, + 0x2c,0x30,0x2e,0x37,0x36,0x36,0x43,0x32,0x32,0x2e, + 0x30,0x36,0x33,0x2c,0x38,0x2e,0x34,0x36,0x36,0x2c, + 0x32,0x31,0x2e,0x38,0x31,0x31,0x2c,0x38,0x2e,0x36, + 0x31,0x36,0x2c,0x32,0x31,0x2e,0x35,0x33,0x36,0x2c, + 0x38,0x2e,0x36,0x31,0x36,0x7a,0x0d,0x0a,0x09,0x09, + 0x09,0x20,0x4d,0x31,0x36,0x2e,0x38,0x39,0x37,0x2c, + 0x37,0x2e,0x31,0x31,0x36,0x68,0x33,0x2e,0x32,0x36, + 0x38,0x4c,0x31,0x38,0x2e,0x35,0x33,0x2c,0x34,0x2e, + 0x35,0x37,0x31,0x4c,0x31,0x36,0x2e,0x38,0x39,0x37, + 0x2c,0x37,0x2e,0x31,0x31,0x36,0x7a,0x22,0x2f,0x3e, + 0x0d,0x0a,0x09,0x3c,0x2f,0x67,0x3e,0x0d,0x0a,0x09, + 0x3c,0x67,0x3e,0x0d,0x0a,0x09,0x09,0x3c,0x70,0x61, + 0x74,0x68,0x20,0x66,0x69,0x6c,0x6c,0x3d,0x22,0x23, + 0x46,0x46,0x46,0x46,0x46,0x46,0x22,0x20,0x64,0x3d, + 0x22,0x4d,0x37,0x2e,0x38,0x30,0x39,0x2c,0x32,0x32, + 0x2e,0x32,0x38,0x34,0x63,0x2d,0x30,0x2e,0x31,0x34, + 0x31,0x2c,0x30,0x2d,0x30,0x2e,0x32,0x38,0x32,0x2d, + 0x30,0x2e,0x30,0x34,0x2d,0x30,0x2e,0x34,0x30,0x35, + 0x2d,0x30,0x2e,0x31,0x31,0x39,0x4c,0x32,0x2e,0x37, + 0x32,0x2c,0x31,0x39,0x2e,0x31,0x36,0x32,0x63,0x2d, + 0x30,0x2e,0x32,0x31,0x35,0x2d,0x30,0x2e,0x31,0x33, + 0x38,0x2d,0x30,0x2e,0x33,0x34,0x35,0x2d,0x30,0x2e, + 0x33,0x37,0x36,0x2d,0x30,0x2e,0x33,0x34,0x35,0x2d, + 0x30,0x2e,0x36,0x33,0x31,0x0d,0x0a,0x09,0x09,0x09, + 0x73,0x30,0x2e,0x31,0x33,0x2d,0x30,0x2e,0x34,0x39, + 0x33,0x2c,0x30,0x2e,0x33,0x34,0x35,0x2d,0x30,0x2e, + 0x36,0x33,0x31,0x6c,0x34,0x2e,0x36,0x38,0x34,0x2d, + 0x33,0x2e,0x30,0x30,0x36,0x63,0x30,0x2e,0x32,0x33, + 0x2d,0x30,0x2e,0x31,0x34,0x38,0x2c,0x30,0x2e,0x35, + 0x32,0x34,0x2d,0x30,0x2e,0x31,0x35,0x38,0x2c,0x30, + 0x2e,0x37,0x36,0x36,0x2d,0x30,0x2e,0x30,0x32,0x37, + 0x63,0x30,0x2e,0x32,0x34,0x2c,0x30,0x2e,0x31,0x33, + 0x31,0x2c,0x30,0x2e,0x33,0x39,0x2c,0x30,0x2e,0x33, + 0x38,0x34,0x2c,0x30,0x2e,0x33,0x39,0x2c,0x30,0x2e, + 0x36,0x35,0x38,0x76,0x36,0x2e,0x30,0x31,0x0d,0x0a, + 0x09,0x09,0x09,0x63,0x30,0x2c,0x30,0x2e,0x32,0x37, + 0x34,0x2d,0x30,0x2e,0x31,0x34,0x38,0x2c,0x30,0x2e, + 0x35,0x32,0x36,0x2d,0x30,0x2e,0x33,0x39,0x2c,0x30, + 0x2e,0x36,0x35,0x38,0x43,0x38,0x2e,0x30,0x35,0x36, + 0x2c,0x32,0x32,0x2e,0x32,0x35,0x34,0x2c,0x37,0x2e, + 0x39,0x33,0x32,0x2c,0x32,0x32,0x2e,0x32,0x38,0x34, + 0x2c,0x37,0x2e,0x38,0x30,0x39,0x2c,0x32,0x32,0x2e, + 0x32,0x38,0x34,0x7a,0x20,0x4d,0x34,0x2e,0x35,0x31, + 0x34,0x2c,0x31,0x38,0x2e,0x35,0x33,0x6c,0x32,0x2e, + 0x35,0x34,0x35,0x2c,0x31,0x2e,0x36,0x33,0x32,0x76, + 0x2d,0x33,0x2e,0x32,0x36,0x35,0x4c,0x34,0x2e,0x35, + 0x31,0x34,0x2c,0x31,0x38,0x2e,0x35,0x33,0x7a,0x22, + 0x2f,0x3e,0x0d,0x0a,0x09,0x3c,0x2f,0x67,0x3e,0x0d, + 0x0a,0x09,0x3c,0x67,0x3e,0x0d,0x0a,0x09,0x09,0x3c, + 0x70,0x61,0x74,0x68,0x20,0x66,0x69,0x6c,0x6c,0x3d, + 0x22,0x23,0x46,0x46,0x46,0x46,0x46,0x46,0x22,0x20, + 0x64,0x3d,0x22,0x4d,0x32,0x39,0x2e,0x31,0x39,0x35, + 0x2c,0x32,0x32,0x2e,0x32,0x38,0x34,0x63,0x2d,0x30, + 0x2e,0x31,0x32,0x34,0x2c,0x30,0x2d,0x30,0x2e,0x32, + 0x34,0x36,0x2d,0x30,0x2e,0x30,0x33,0x2d,0x30,0x2e, + 0x33,0x35,0x38,0x2d,0x30,0x2e,0x30,0x39,0x32,0x63, + 0x2d,0x30,0x2e,0x32,0x34,0x31,0x2d,0x30,0x2e,0x31, + 0x33,0x32,0x2d,0x30,0x2e,0x33,0x39,0x32,0x2d,0x30, + 0x2e,0x33,0x38,0x34,0x2d,0x30,0x2e,0x33,0x39,0x32, + 0x2d,0x30,0x2e,0x36,0x35,0x38,0x76,0x2d,0x36,0x2e, + 0x30,0x31,0x0d,0x0a,0x09,0x09,0x09,0x63,0x30,0x2d, + 0x30,0x2e,0x32,0x37,0x34,0x2c,0x30,0x2e,0x31,0x34, + 0x39,0x2d,0x30,0x2e,0x35,0x32,0x36,0x2c,0x30,0x2e, + 0x33,0x39,0x32,0x2d,0x30,0x2e,0x36,0x35,0x38,0x63, + 0x30,0x2e,0x32,0x33,0x39,0x2d,0x30,0x2e,0x31,0x33, + 0x31,0x2c,0x30,0x2e,0x35,0x33,0x33,0x2d,0x30,0x2e, + 0x31,0x32,0x33,0x2c,0x30,0x2e,0x37,0x36,0x35,0x2c, + 0x30,0x2e,0x30,0x32,0x37,0x6c,0x34,0x2e,0x36,0x38, + 0x35,0x2c,0x33,0x2e,0x30,0x30,0x35,0x63,0x30,0x2e, + 0x32,0x31,0x35,0x2c,0x30,0x2e,0x31,0x33,0x38,0x2c, + 0x30,0x2e,0x33,0x34,0x35,0x2c,0x30,0x2e,0x33,0x37, + 0x36,0x2c,0x30,0x2e,0x33,0x34,0x35,0x2c,0x30,0x2e, + 0x36,0x33,0x31,0x0d,0x0a,0x09,0x09,0x09,0x73,0x2d, + 0x30,0x2e,0x31,0x33,0x2c,0x30,0x2e,0x34,0x39,0x33, + 0x2d,0x30,0x2e,0x33,0x34,0x35,0x2c,0x30,0x2e,0x36, + 0x33,0x31,0x6c,0x2d,0x34,0x2e,0x36,0x38,0x35,0x2c, + 0x33,0x2e,0x30,0x30,0x34,0x43,0x32,0x39,0x2e,0x34, + 0x37,0x38,0x2c,0x32,0x32,0x2e,0x32,0x34,0x34,0x2c, + 0x32,0x39,0x2e,0x33,0x33,0x36,0x2c,0x32,0x32,0x2e, + 0x32,0x38,0x34,0x2c,0x32,0x39,0x2e,0x31,0x39,0x35, + 0x2c,0x32,0x32,0x2e,0x32,0x38,0x34,0x7a,0x20,0x4d, + 0x32,0x39,0x2e,0x39,0x34,0x35,0x2c,0x31,0x36,0x2e, + 0x38,0x39,0x36,0x76,0x33,0x2e,0x32,0x36,0x36,0x6c, + 0x32,0x2e,0x35,0x34,0x36,0x2d,0x31,0x2e,0x36,0x33, + 0x33,0x0d,0x0a,0x09,0x09,0x09,0x4c,0x32,0x39,0x2e, + 0x39,0x34,0x35,0x2c,0x31,0x36,0x2e,0x38,0x39,0x36, + 0x7a,0x22,0x2f,0x3e,0x0d,0x0a,0x09,0x3c,0x2f,0x67, + 0x3e,0x0d,0x0a,0x09,0x3c,0x67,0x3e,0x0d,0x0a,0x09, + 0x09,0x3c,0x70,0x61,0x74,0x68,0x20,0x66,0x69,0x6c, + 0x6c,0x3d,0x22,0x23,0x46,0x46,0x46,0x46,0x46,0x46, + 0x22,0x20,0x64,0x3d,0x22,0x4d,0x31,0x38,0x2e,0x35, + 0x33,0x2c,0x33,0x33,0x2e,0x38,0x37,0x36,0x6c,0x33, + 0x2e,0x30,0x30,0x37,0x2d,0x34,0x2e,0x36,0x38,0x34, + 0x68,0x2d,0x36,0x2e,0x30,0x31,0x32,0x4c,0x31,0x38, + 0x2e,0x35,0x33,0x2c,0x33,0x33,0x2e,0x38,0x37,0x36, + 0x7a,0x22,0x2f,0x3e,0x0d,0x0a,0x09,0x09,0x3c,0x70, + 0x61,0x74,0x68,0x20,0x66,0x69,0x6c,0x6c,0x3d,0x22, + 0x23,0x46,0x46,0x46,0x46,0x46,0x46,0x22,0x20,0x64, + 0x3d,0x22,0x4d,0x31,0x38,0x2e,0x35,0x33,0x2c,0x33, + 0x34,0x2e,0x36,0x32,0x36,0x4c,0x31,0x38,0x2e,0x35, + 0x33,0x2c,0x33,0x34,0x2e,0x36,0x32,0x36,0x63,0x2d, + 0x30,0x2e,0x32,0x35,0x35,0x2c,0x30,0x2d,0x30,0x2e, + 0x34,0x39,0x32,0x2d,0x30,0x2e,0x31,0x33,0x2d,0x30, + 0x2e,0x36,0x33,0x31,0x2d,0x30,0x2e,0x33,0x34,0x35, + 0x6c,0x2d,0x33,0x2e,0x30,0x30,0x35,0x2d,0x34,0x2e, + 0x36,0x38,0x34,0x0d,0x0a,0x09,0x09,0x09,0x63,0x2d, + 0x30,0x2e,0x31,0x34,0x37,0x2d,0x30,0x2e,0x32,0x33, + 0x31,0x2d,0x30,0x2e,0x31,0x35,0x38,0x2d,0x30,0x2e, + 0x35,0x32,0x34,0x2d,0x30,0x2e,0x30,0x32,0x36,0x2d, + 0x30,0x2e,0x37,0x36,0x36,0x73,0x30,0x2e,0x33,0x38, + 0x34,0x2d,0x30,0x2e,0x33,0x39,0x31,0x2c,0x30,0x2e, + 0x36,0x35,0x37,0x2d,0x30,0x2e,0x33,0x39,0x31,0x68, + 0x36,0x2e,0x30,0x31,0x32,0x63,0x30,0x2e,0x32,0x37, + 0x33,0x2c,0x30,0x2c,0x30,0x2e,0x35,0x32,0x35,0x2c, + 0x30,0x2e,0x31,0x34,0x38,0x2c,0x30,0x2e,0x36,0x35, + 0x37,0x2c,0x30,0x2e,0x33,0x39,0x31,0x0d,0x0a,0x09, + 0x09,0x09,0x63,0x30,0x2e,0x31,0x33,0x33,0x2c,0x30, + 0x2e,0x32,0x34,0x2c,0x30,0x2e,0x31,0x32,0x31,0x2c, + 0x30,0x2e,0x35,0x33,0x33,0x2d,0x30,0x2e,0x30,0x32, + 0x36,0x2c,0x30,0x2e,0x37,0x36,0x36,0x6c,0x2d,0x33, + 0x2e,0x30,0x30,0x35,0x2c,0x34,0x2e,0x36,0x38,0x34, + 0x43,0x31,0x39,0x2e,0x30,0x32,0x33,0x2c,0x33,0x34, + 0x2e,0x34,0x39,0x36,0x2c,0x31,0x38,0x2e,0x37,0x38, + 0x36,0x2c,0x33,0x34,0x2e,0x36,0x32,0x36,0x2c,0x31, + 0x38,0x2e,0x35,0x33,0x2c,0x33,0x34,0x2e,0x36,0x32, + 0x36,0x7a,0x20,0x4d,0x31,0x36,0x2e,0x38,0x39,0x37, + 0x2c,0x32,0x39,0x2e,0x39,0x34,0x32,0x6c,0x31,0x2e, + 0x36,0x33,0x33,0x2c,0x32,0x2e,0x35,0x34,0x35,0x0d, + 0x0a,0x09,0x09,0x09,0x6c,0x31,0x2e,0x36,0x33,0x35, + 0x2d,0x32,0x2e,0x35,0x34,0x35,0x48,0x31,0x36,0x2e, + 0x38,0x39,0x37,0x7a,0x22,0x2f,0x3e,0x0d,0x0a,0x09, + 0x3c,0x2f,0x67,0x3e,0x0d,0x0a,0x3c,0x2f,0x67,0x3e, + 0x0d,0x0a,0x3c,0x2f,0x73,0x76,0x67,0x3e,0x0d,0x0a +}; diff --git a/data/converted/off_svg.cpp b/data/converted/off_svg.cpp new file mode 100644 index 000000000..91198cf7b --- /dev/null +++ b/data/converted/off_svg.cpp @@ -0,0 +1,141 @@ +//this file was auto-generated from "off.svg" by res2h + +#include "../Resources.h" + +const size_t off_svg_size = 1338; +const unsigned char off_svg_data[1338] = { + 0x3c,0x3f,0x78,0x6d,0x6c,0x20,0x76,0x65,0x72,0x73, + 0x69,0x6f,0x6e,0x3d,0x22,0x31,0x2e,0x30,0x22,0x20, + 0x65,0x6e,0x63,0x6f,0x64,0x69,0x6e,0x67,0x3d,0x22, + 0x75,0x74,0x66,0x2d,0x38,0x22,0x3f,0x3e,0x0d,0x0a, + 0x3c,0x21,0x2d,0x2d,0x20,0x47,0x65,0x6e,0x65,0x72, + 0x61,0x74,0x6f,0x72,0x3a,0x20,0x41,0x64,0x6f,0x62, + 0x65,0x20,0x49,0x6c,0x6c,0x75,0x73,0x74,0x72,0x61, + 0x74,0x6f,0x72,0x20,0x31,0x36,0x2e,0x30,0x2e,0x33, + 0x2c,0x20,0x53,0x56,0x47,0x20,0x45,0x78,0x70,0x6f, + 0x72,0x74,0x20,0x50,0x6c,0x75,0x67,0x2d,0x49,0x6e, + 0x20,0x2e,0x20,0x53,0x56,0x47,0x20,0x56,0x65,0x72, + 0x73,0x69,0x6f,0x6e,0x3a,0x20,0x36,0x2e,0x30,0x30, + 0x20,0x42,0x75,0x69,0x6c,0x64,0x20,0x30,0x29,0x20, + 0x20,0x2d,0x2d,0x3e,0x0d,0x0a,0x3c,0x21,0x44,0x4f, + 0x43,0x54,0x59,0x50,0x45,0x20,0x73,0x76,0x67,0x20, + 0x50,0x55,0x42,0x4c,0x49,0x43,0x20,0x22,0x2d,0x2f, + 0x2f,0x57,0x33,0x43,0x2f,0x2f,0x44,0x54,0x44,0x20, + 0x53,0x56,0x47,0x20,0x31,0x2e,0x31,0x2f,0x2f,0x45, + 0x4e,0x22,0x20,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f, + 0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72, + 0x67,0x2f,0x47,0x72,0x61,0x70,0x68,0x69,0x63,0x73, + 0x2f,0x53,0x56,0x47,0x2f,0x31,0x2e,0x31,0x2f,0x44, + 0x54,0x44,0x2f,0x73,0x76,0x67,0x31,0x31,0x2e,0x64, + 0x74,0x64,0x22,0x3e,0x0d,0x0a,0x3c,0x73,0x76,0x67, + 0x20,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x3d,0x22, + 0x31,0x2e,0x31,0x22,0x20,0x69,0x64,0x3d,0x22,0x45, + 0x62,0x65,0x6e,0x65,0x5f,0x31,0x22,0x20,0x78,0x6d, + 0x6c,0x6e,0x73,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a, + 0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f, + 0x72,0x67,0x2f,0x32,0x30,0x30,0x30,0x2f,0x73,0x76, + 0x67,0x22,0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3a,0x78, + 0x6c,0x69,0x6e,0x6b,0x3d,0x22,0x68,0x74,0x74,0x70, + 0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e, + 0x6f,0x72,0x67,0x2f,0x31,0x39,0x39,0x39,0x2f,0x78, + 0x6c,0x69,0x6e,0x6b,0x22,0x20,0x78,0x3d,0x22,0x30, + 0x70,0x78,0x22,0x20,0x79,0x3d,0x22,0x30,0x70,0x78, + 0x22,0x0d,0x0a,0x09,0x20,0x77,0x69,0x64,0x74,0x68, + 0x3d,0x22,0x34,0x33,0x2e,0x39,0x31,0x36,0x70,0x78, + 0x22,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x22, + 0x32,0x31,0x2e,0x39,0x35,0x39,0x70,0x78,0x22,0x20, + 0x76,0x69,0x65,0x77,0x42,0x6f,0x78,0x3d,0x22,0x30, + 0x20,0x30,0x20,0x34,0x33,0x2e,0x39,0x31,0x36,0x20, + 0x32,0x31,0x2e,0x39,0x35,0x39,0x22,0x20,0x65,0x6e, + 0x61,0x62,0x6c,0x65,0x2d,0x62,0x61,0x63,0x6b,0x67, + 0x72,0x6f,0x75,0x6e,0x64,0x3d,0x22,0x6e,0x65,0x77, + 0x20,0x30,0x20,0x30,0x20,0x34,0x33,0x2e,0x39,0x31, + 0x36,0x20,0x32,0x31,0x2e,0x39,0x35,0x39,0x22,0x20, + 0x78,0x6d,0x6c,0x3a,0x73,0x70,0x61,0x63,0x65,0x3d, + 0x22,0x70,0x72,0x65,0x73,0x65,0x72,0x76,0x65,0x22, + 0x3e,0x0d,0x0a,0x3c,0x70,0x61,0x74,0x68,0x20,0x66, + 0x69,0x6c,0x6c,0x3d,0x22,0x23,0x37,0x37,0x37,0x37, + 0x37,0x37,0x22,0x20,0x64,0x3d,0x22,0x4d,0x32,0x39, + 0x2e,0x32,0x39,0x31,0x2c,0x31,0x35,0x2e,0x36,0x39, + 0x68,0x31,0x2e,0x39,0x33,0x34,0x76,0x2d,0x34,0x2e, + 0x31,0x31,0x33,0x68,0x35,0x2e,0x34,0x32,0x76,0x2d, + 0x31,0x2e,0x34,0x37,0x39,0x68,0x2d,0x35,0x2e,0x34, + 0x32,0x56,0x37,0x2e,0x37,0x30,0x34,0x68,0x35,0x2e, + 0x37,0x32,0x39,0x56,0x36,0x2e,0x32,0x32,0x35,0x68, + 0x2d,0x37,0x2e,0x36,0x36,0x32,0x56,0x31,0x35,0x2e, + 0x36,0x39,0x7a,0x20,0x4d,0x31,0x39,0x2e,0x38,0x31, + 0x2c,0x31,0x35,0x2e,0x36,0x39,0x68,0x31,0x2e,0x39, + 0x33,0x36,0x76,0x2d,0x34,0x2e,0x31,0x31,0x33,0x0d, + 0x0a,0x09,0x68,0x35,0x2e,0x34,0x31,0x36,0x76,0x2d, + 0x31,0x2e,0x34,0x37,0x39,0x68,0x2d,0x35,0x2e,0x34, + 0x31,0x36,0x56,0x37,0x2e,0x37,0x30,0x34,0x68,0x35, + 0x2e,0x37,0x32,0x35,0x56,0x36,0x2e,0x32,0x32,0x35, + 0x68,0x2d,0x37,0x2e,0x36,0x36,0x56,0x31,0x35,0x2e, + 0x36,0x39,0x7a,0x20,0x4d,0x31,0x32,0x2e,0x33,0x37, + 0x38,0x2c,0x31,0x34,0x2e,0x34,0x37,0x33,0x63,0x2d, + 0x32,0x2e,0x31,0x36,0x36,0x2c,0x30,0x2d,0x33,0x2e, + 0x34,0x30,0x34,0x2d,0x31,0x2e,0x34,0x33,0x35,0x2d, + 0x33,0x2e,0x34,0x30,0x34,0x2d,0x33,0x2e,0x35,0x31, + 0x37,0x0d,0x0a,0x09,0x63,0x30,0x2d,0x32,0x2e,0x30, + 0x38,0x33,0x2c,0x31,0x2e,0x32,0x33,0x38,0x2d,0x33, + 0x2e,0x35,0x31,0x38,0x2c,0x33,0x2e,0x34,0x30,0x34, + 0x2d,0x33,0x2e,0x35,0x31,0x38,0x63,0x32,0x2e,0x31, + 0x36,0x37,0x2c,0x30,0x2c,0x33,0x2e,0x34,0x30,0x36, + 0x2c,0x31,0x2e,0x34,0x33,0x35,0x2c,0x33,0x2e,0x34, + 0x30,0x36,0x2c,0x33,0x2e,0x35,0x31,0x38,0x43,0x31, + 0x35,0x2e,0x37,0x38,0x34,0x2c,0x31,0x33,0x2e,0x30, + 0x33,0x38,0x2c,0x31,0x34,0x2e,0x35,0x34,0x35,0x2c, + 0x31,0x34,0x2e,0x34,0x37,0x33,0x2c,0x31,0x32,0x2e, + 0x33,0x37,0x38,0x2c,0x31,0x34,0x2e,0x34,0x37,0x33, + 0x20,0x4d,0x31,0x32,0x2e,0x33,0x37,0x38,0x2c,0x31, + 0x35,0x2e,0x39,0x35,0x36,0x0d,0x0a,0x09,0x63,0x33, + 0x2e,0x38,0x39,0x36,0x2c,0x30,0x2c,0x35,0x2e,0x34, + 0x31,0x39,0x2d,0x32,0x2e,0x33,0x33,0x35,0x2c,0x35, + 0x2e,0x34,0x31,0x39,0x2d,0x35,0x73,0x2d,0x31,0x2e, + 0x35,0x32,0x32,0x2d,0x34,0x2e,0x39,0x39,0x37,0x2d, + 0x35,0x2e,0x34,0x31,0x39,0x2d,0x34,0x2e,0x39,0x39, + 0x37,0x63,0x2d,0x33,0x2e,0x38,0x39,0x36,0x2c,0x30, + 0x2d,0x35,0x2e,0x34,0x31,0x36,0x2c,0x32,0x2e,0x33, + 0x33,0x32,0x2d,0x35,0x2e,0x34,0x31,0x36,0x2c,0x34, + 0x2e,0x39,0x39,0x37,0x53,0x38,0x2e,0x34,0x38,0x32, + 0x2c,0x31,0x35,0x2e,0x39,0x35,0x36,0x2c,0x31,0x32, + 0x2e,0x33,0x37,0x38,0x2c,0x31,0x35,0x2e,0x39,0x35, + 0x36,0x22,0x2f,0x3e,0x0d,0x0a,0x3c,0x70,0x61,0x74, + 0x68,0x20,0x66,0x69,0x6c,0x6c,0x3d,0x22,0x23,0x37, + 0x37,0x37,0x37,0x37,0x37,0x22,0x20,0x64,0x3d,0x22, + 0x4d,0x33,0x39,0x2e,0x36,0x36,0x34,0x2c,0x31,0x2e, + 0x35,0x63,0x31,0x2e,0x35,0x31,0x38,0x2c,0x30,0x2c, + 0x32,0x2e,0x37,0x35,0x32,0x2c,0x31,0x2e,0x32,0x33, + 0x34,0x2c,0x32,0x2e,0x37,0x35,0x32,0x2c,0x32,0x2e, + 0x37,0x35,0x32,0x76,0x31,0x33,0x2e,0x34,0x35,0x35, + 0x63,0x30,0x2c,0x31,0x2e,0x35,0x31,0x38,0x2d,0x31, + 0x2e,0x32,0x33,0x34,0x2c,0x32,0x2e,0x37,0x35,0x32, + 0x2d,0x32,0x2e,0x37,0x35,0x32,0x2c,0x32,0x2e,0x37, + 0x35,0x32,0x48,0x34,0x2e,0x32,0x35,0x32,0x0d,0x0a, + 0x09,0x63,0x2d,0x31,0x2e,0x35,0x31,0x38,0x2c,0x30, + 0x2d,0x32,0x2e,0x37,0x35,0x32,0x2d,0x31,0x2e,0x32, + 0x33,0x34,0x2d,0x32,0x2e,0x37,0x35,0x32,0x2d,0x32, + 0x2e,0x37,0x35,0x32,0x56,0x34,0x2e,0x32,0x35,0x32, + 0x43,0x31,0x2e,0x35,0x2c,0x32,0x2e,0x37,0x33,0x34, + 0x2c,0x32,0x2e,0x37,0x33,0x34,0x2c,0x31,0x2e,0x35, + 0x2c,0x34,0x2e,0x32,0x35,0x32,0x2c,0x31,0x2e,0x35, + 0x48,0x33,0x39,0x2e,0x36,0x36,0x34,0x20,0x4d,0x33, + 0x39,0x2e,0x36,0x36,0x34,0x2c,0x30,0x48,0x34,0x2e, + 0x32,0x35,0x32,0x43,0x31,0x2e,0x39,0x31,0x34,0x2c, + 0x30,0x2c,0x30,0x2c,0x31,0x2e,0x39,0x31,0x34,0x2c, + 0x30,0x2c,0x34,0x2e,0x32,0x35,0x32,0x76,0x31,0x33, + 0x2e,0x34,0x35,0x35,0x0d,0x0a,0x09,0x63,0x30,0x2c, + 0x32,0x2e,0x33,0x33,0x39,0x2c,0x31,0x2e,0x39,0x31, + 0x34,0x2c,0x34,0x2e,0x32,0x35,0x32,0x2c,0x34,0x2e, + 0x32,0x35,0x32,0x2c,0x34,0x2e,0x32,0x35,0x32,0x68, + 0x33,0x35,0x2e,0x34,0x31,0x32,0x63,0x32,0x2e,0x33, + 0x33,0x39,0x2c,0x30,0x2c,0x34,0x2e,0x32,0x35,0x32, + 0x2d,0x31,0x2e,0x39,0x31,0x33,0x2c,0x34,0x2e,0x32, + 0x35,0x32,0x2d,0x34,0x2e,0x32,0x35,0x32,0x56,0x34, + 0x2e,0x32,0x35,0x32,0x43,0x34,0x33,0x2e,0x39,0x31, + 0x36,0x2c,0x31,0x2e,0x39,0x31,0x34,0x2c,0x34,0x32, + 0x2e,0x30,0x30,0x33,0x2c,0x30,0x2c,0x33,0x39,0x2e, + 0x36,0x36,0x34,0x2c,0x30,0x4c,0x33,0x39,0x2e,0x36, + 0x36,0x34,0x2c,0x30,0x7a,0x22,0x2f,0x3e,0x0d,0x0a, + 0x3c,0x2f,0x73,0x76,0x67,0x3e,0x0d,0x0a +}; diff --git a/data/converted/on_svg.cpp b/data/converted/on_svg.cpp new file mode 100644 index 000000000..7e3143077 --- /dev/null +++ b/data/converted/on_svg.cpp @@ -0,0 +1,122 @@ +//this file was auto-generated from "on.svg" by res2h + +#include "../Resources.h" + +const size_t on_svg_size = 1146; +const unsigned char on_svg_data[1146] = { + 0x3c,0x3f,0x78,0x6d,0x6c,0x20,0x76,0x65,0x72,0x73, + 0x69,0x6f,0x6e,0x3d,0x22,0x31,0x2e,0x30,0x22,0x20, + 0x65,0x6e,0x63,0x6f,0x64,0x69,0x6e,0x67,0x3d,0x22, + 0x75,0x74,0x66,0x2d,0x38,0x22,0x3f,0x3e,0x0d,0x0a, + 0x3c,0x21,0x2d,0x2d,0x20,0x47,0x65,0x6e,0x65,0x72, + 0x61,0x74,0x6f,0x72,0x3a,0x20,0x41,0x64,0x6f,0x62, + 0x65,0x20,0x49,0x6c,0x6c,0x75,0x73,0x74,0x72,0x61, + 0x74,0x6f,0x72,0x20,0x31,0x36,0x2e,0x30,0x2e,0x33, + 0x2c,0x20,0x53,0x56,0x47,0x20,0x45,0x78,0x70,0x6f, + 0x72,0x74,0x20,0x50,0x6c,0x75,0x67,0x2d,0x49,0x6e, + 0x20,0x2e,0x20,0x53,0x56,0x47,0x20,0x56,0x65,0x72, + 0x73,0x69,0x6f,0x6e,0x3a,0x20,0x36,0x2e,0x30,0x30, + 0x20,0x42,0x75,0x69,0x6c,0x64,0x20,0x30,0x29,0x20, + 0x20,0x2d,0x2d,0x3e,0x0d,0x0a,0x3c,0x21,0x44,0x4f, + 0x43,0x54,0x59,0x50,0x45,0x20,0x73,0x76,0x67,0x20, + 0x50,0x55,0x42,0x4c,0x49,0x43,0x20,0x22,0x2d,0x2f, + 0x2f,0x57,0x33,0x43,0x2f,0x2f,0x44,0x54,0x44,0x20, + 0x53,0x56,0x47,0x20,0x31,0x2e,0x31,0x2f,0x2f,0x45, + 0x4e,0x22,0x20,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f, + 0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72, + 0x67,0x2f,0x47,0x72,0x61,0x70,0x68,0x69,0x63,0x73, + 0x2f,0x53,0x56,0x47,0x2f,0x31,0x2e,0x31,0x2f,0x44, + 0x54,0x44,0x2f,0x73,0x76,0x67,0x31,0x31,0x2e,0x64, + 0x74,0x64,0x22,0x3e,0x0d,0x0a,0x3c,0x73,0x76,0x67, + 0x20,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x3d,0x22, + 0x31,0x2e,0x31,0x22,0x20,0x69,0x64,0x3d,0x22,0x45, + 0x62,0x65,0x6e,0x65,0x5f,0x31,0x22,0x20,0x78,0x6d, + 0x6c,0x6e,0x73,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a, + 0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f, + 0x72,0x67,0x2f,0x32,0x30,0x30,0x30,0x2f,0x73,0x76, + 0x67,0x22,0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3a,0x78, + 0x6c,0x69,0x6e,0x6b,0x3d,0x22,0x68,0x74,0x74,0x70, + 0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e, + 0x6f,0x72,0x67,0x2f,0x31,0x39,0x39,0x39,0x2f,0x78, + 0x6c,0x69,0x6e,0x6b,0x22,0x20,0x78,0x3d,0x22,0x30, + 0x70,0x78,0x22,0x20,0x79,0x3d,0x22,0x30,0x70,0x78, + 0x22,0x0d,0x0a,0x09,0x20,0x77,0x69,0x64,0x74,0x68, + 0x3d,0x22,0x34,0x33,0x2e,0x39,0x31,0x36,0x70,0x78, + 0x22,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x22, + 0x32,0x31,0x2e,0x39,0x35,0x39,0x70,0x78,0x22,0x20, + 0x76,0x69,0x65,0x77,0x42,0x6f,0x78,0x3d,0x22,0x30, + 0x20,0x30,0x20,0x34,0x33,0x2e,0x39,0x31,0x36,0x20, + 0x32,0x31,0x2e,0x39,0x35,0x39,0x22,0x20,0x65,0x6e, + 0x61,0x62,0x6c,0x65,0x2d,0x62,0x61,0x63,0x6b,0x67, + 0x72,0x6f,0x75,0x6e,0x64,0x3d,0x22,0x6e,0x65,0x77, + 0x20,0x30,0x20,0x30,0x20,0x34,0x33,0x2e,0x39,0x31, + 0x36,0x20,0x32,0x31,0x2e,0x39,0x35,0x39,0x22,0x20, + 0x78,0x6d,0x6c,0x3a,0x73,0x70,0x61,0x63,0x65,0x3d, + 0x22,0x70,0x72,0x65,0x73,0x65,0x72,0x76,0x65,0x22, + 0x3e,0x0d,0x0a,0x3c,0x67,0x3e,0x0d,0x0a,0x09,0x3c, + 0x70,0x61,0x74,0x68,0x20,0x66,0x69,0x6c,0x6c,0x3d, + 0x22,0x23,0x37,0x37,0x37,0x37,0x37,0x37,0x22,0x20, + 0x64,0x3d,0x22,0x4d,0x31,0x35,0x2e,0x37,0x35,0x34, + 0x2c,0x37,0x2e,0x34,0x36,0x31,0x63,0x2d,0x32,0x2e, + 0x33,0x31,0x39,0x2c,0x30,0x2d,0x33,0x2e,0x36,0x34, + 0x33,0x2c,0x31,0x2e,0x34,0x33,0x34,0x2d,0x33,0x2e, + 0x36,0x34,0x33,0x2c,0x33,0x2e,0x35,0x31,0x38,0x63, + 0x30,0x2c,0x32,0x2e,0x30,0x38,0x33,0x2c,0x31,0x2e, + 0x33,0x32,0x35,0x2c,0x33,0x2e,0x35,0x32,0x31,0x2c, + 0x33,0x2e,0x36,0x34,0x33,0x2c,0x33,0x2e,0x35,0x32, + 0x31,0x0d,0x0a,0x09,0x09,0x63,0x32,0x2e,0x33,0x32, + 0x2c,0x30,0x2c,0x33,0x2e,0x36,0x34,0x34,0x2d,0x31, + 0x2e,0x34,0x33,0x37,0x2c,0x33,0x2e,0x36,0x34,0x35, + 0x2d,0x33,0x2e,0x35,0x32,0x31,0x43,0x31,0x39,0x2e, + 0x33,0x39,0x39,0x2c,0x38,0x2e,0x38,0x39,0x35,0x2c, + 0x31,0x38,0x2e,0x30,0x37,0x34,0x2c,0x37,0x2e,0x34, + 0x36,0x31,0x2c,0x31,0x35,0x2e,0x37,0x35,0x34,0x2c, + 0x37,0x2e,0x34,0x36,0x31,0x7a,0x22,0x2f,0x3e,0x0d, + 0x0a,0x09,0x3c,0x70,0x61,0x74,0x68,0x20,0x66,0x69, + 0x6c,0x6c,0x3d,0x22,0x23,0x37,0x37,0x37,0x37,0x37, + 0x37,0x22,0x20,0x64,0x3d,0x22,0x4d,0x33,0x39,0x2e, + 0x36,0x36,0x34,0x2c,0x30,0x48,0x34,0x2e,0x32,0x35, + 0x32,0x43,0x31,0x2e,0x39,0x31,0x34,0x2c,0x30,0x2c, + 0x30,0x2c,0x31,0x2e,0x39,0x31,0x34,0x2c,0x30,0x2c, + 0x34,0x2e,0x32,0x35,0x32,0x76,0x31,0x33,0x2e,0x34, + 0x35,0x35,0x63,0x30,0x2c,0x32,0x2e,0x33,0x33,0x39, + 0x2c,0x31,0x2e,0x39,0x31,0x34,0x2c,0x34,0x2e,0x32, + 0x35,0x32,0x2c,0x34,0x2e,0x32,0x35,0x32,0x2c,0x34, + 0x2e,0x32,0x35,0x32,0x68,0x33,0x35,0x2e,0x34,0x31, + 0x32,0x0d,0x0a,0x09,0x09,0x63,0x32,0x2e,0x33,0x33, + 0x39,0x2c,0x30,0x2c,0x34,0x2e,0x32,0x35,0x32,0x2d, + 0x31,0x2e,0x39,0x31,0x33,0x2c,0x34,0x2e,0x32,0x35, + 0x32,0x2d,0x34,0x2e,0x32,0x35,0x32,0x56,0x34,0x2e, + 0x32,0x35,0x32,0x43,0x34,0x33,0x2e,0x39,0x31,0x36, + 0x2c,0x31,0x2e,0x39,0x31,0x34,0x2c,0x34,0x32,0x2e, + 0x30,0x30,0x33,0x2c,0x30,0x2c,0x33,0x39,0x2e,0x36, + 0x36,0x34,0x2c,0x30,0x7a,0x20,0x4d,0x31,0x35,0x2e, + 0x37,0x35,0x34,0x2c,0x31,0x35,0x2e,0x39,0x37,0x39, + 0x63,0x2d,0x34,0x2e,0x31,0x36,0x38,0x2c,0x30,0x2d, + 0x35,0x2e,0x37,0x39,0x36,0x2d,0x32,0x2e,0x33,0x33, + 0x34,0x2d,0x35,0x2e,0x37,0x39,0x36,0x2d,0x35,0x0d, + 0x0a,0x09,0x09,0x63,0x30,0x2d,0x32,0x2e,0x36,0x36, + 0x39,0x2c,0x31,0x2e,0x36,0x32,0x38,0x2d,0x35,0x2e, + 0x30,0x30,0x31,0x2c,0x35,0x2e,0x37,0x39,0x36,0x2d, + 0x35,0x2e,0x30,0x30,0x31,0x63,0x34,0x2e,0x31,0x37, + 0x2c,0x30,0x2c,0x35,0x2e,0x37,0x39,0x38,0x2c,0x32, + 0x2e,0x33,0x33,0x32,0x2c,0x35,0x2e,0x37,0x39,0x38, + 0x2c,0x35,0x2e,0x30,0x30,0x31,0x43,0x32,0x31,0x2e, + 0x35,0x35,0x32,0x2c,0x31,0x33,0x2e,0x36,0x34,0x34, + 0x2c,0x31,0x39,0x2e,0x39,0x32,0x34,0x2c,0x31,0x35, + 0x2e,0x39,0x37,0x39,0x2c,0x31,0x35,0x2e,0x37,0x35, + 0x34,0x2c,0x31,0x35,0x2e,0x39,0x37,0x39,0x7a,0x20, + 0x4d,0x33,0x33,0x2e,0x39,0x35,0x37,0x2c,0x31,0x35, + 0x2e,0x37,0x31,0x35,0x0d,0x0a,0x09,0x09,0x68,0x2d, + 0x32,0x2e,0x33,0x33,0x32,0x4c,0x32,0x35,0x2e,0x37, + 0x32,0x2c,0x38,0x2e,0x36,0x30,0x32,0x68,0x2d,0x30, + 0x2e,0x30,0x32,0x37,0x76,0x37,0x2e,0x31,0x31,0x33, + 0x68,0x2d,0x31,0x2e,0x39,0x38,0x38,0x56,0x36,0x2e, + 0x32,0x34,0x34,0x68,0x32,0x2e,0x33,0x37,0x33,0x6c, + 0x35,0x2e,0x38,0x36,0x35,0x2c,0x37,0x2e,0x31,0x31, + 0x34,0x68,0x30,0x2e,0x30,0x32,0x37,0x56,0x36,0x2e, + 0x32,0x34,0x34,0x68,0x31,0x2e,0x39,0x38,0x37,0x56, + 0x31,0x35,0x2e,0x37,0x31,0x35,0x7a,0x22,0x2f,0x3e, + 0x0d,0x0a,0x3c,0x2f,0x67,0x3e,0x0d,0x0a,0x3c,0x2f, + 0x73,0x76,0x67,0x3e,0x0d,0x0a +}; diff --git a/data/converted/opensans_hebrew_condensed_light_ttf.cpp b/data/converted/opensans_hebrew_condensed_light_ttf.cpp new file mode 100644 index 000000000..a9a553c35 --- /dev/null +++ b/data/converted/opensans_hebrew_condensed_light_ttf.cpp @@ -0,0 +1,3294 @@ +//this file was auto-generated from "opensans_hebrew_condensed_light.ttf" by res2h + +#include "../Resources.h" + +const size_t opensans_hebrew_condensed_light_ttf_size = 32868; +const unsigned char opensans_hebrew_condensed_light_ttf_data[32868] = { + 0x00,0x01,0x00,0x00,0x00,0x10,0x01,0x00,0x00,0x04, + 0x00,0x00,0x46,0x46,0x54,0x4d,0x67,0x7f,0x0d,0x13, + 0x00,0x00,0x7c,0xb4,0x00,0x00,0x00,0x1c,0x47,0x44, + 0x45,0x46,0x03,0xd1,0x04,0xb1,0x00,0x00,0x7c,0xd0, + 0x00,0x00,0x00,0x36,0x47,0x50,0x4f,0x53,0xc8,0x42, + 0xaa,0x57,0x00,0x00,0x7d,0x08,0x00,0x00,0x03,0x3a, + 0x47,0x53,0x55,0x42,0x68,0x93,0x62,0x93,0x00,0x00, + 0x80,0x44,0x00,0x00,0x00,0x1e,0x4f,0x53,0x2f,0x32, + 0x7f,0x1c,0xcd,0x34,0x00,0x00,0x01,0x88,0x00,0x00, + 0x00,0x60,0x63,0x6d,0x61,0x70,0x0a,0x98,0xec,0xca, + 0x00,0x00,0x06,0xc4,0x00,0x00,0x03,0x56,0x67,0x61, + 0x73,0x70,0x00,0x00,0x00,0x10,0x00,0x00,0x7c,0xac, + 0x00,0x00,0x00,0x08,0x67,0x6c,0x79,0x66,0xef,0xde, + 0xcd,0x13,0x00,0x00,0x0c,0x94,0x00,0x00,0x61,0x64, + 0x68,0x65,0x61,0x64,0x02,0xea,0x24,0x85,0x00,0x00, + 0x01,0x0c,0x00,0x00,0x00,0x36,0x68,0x68,0x65,0x61, + 0x0e,0xf1,0x05,0x93,0x00,0x00,0x01,0x44,0x00,0x00, + 0x00,0x24,0x68,0x6d,0x74,0x78,0x88,0x5f,0x5a,0xe2, + 0x00,0x00,0x01,0xe8,0x00,0x00,0x04,0xdc,0x6c,0x6f, + 0x63,0x61,0x42,0xdc,0x5b,0x10,0x00,0x00,0x0a,0x24, + 0x00,0x00,0x02,0x70,0x6d,0x61,0x78,0x70,0x01,0x80, + 0x00,0x49,0x00,0x00,0x01,0x68,0x00,0x00,0x00,0x20, + 0x6e,0x61,0x6d,0x65,0x61,0x6e,0xb0,0xc4,0x00,0x00, + 0x6d,0xf8,0x00,0x00,0x08,0xe8,0x70,0x6f,0x73,0x74, + 0x38,0xa2,0xa4,0x31,0x00,0x00,0x76,0xe0,0x00,0x00, + 0x05,0xca,0x70,0x72,0x65,0x70,0x68,0x06,0x8c,0x85, + 0x00,0x00,0x0a,0x1c,0x00,0x00,0x00,0x07,0x00,0x01, + 0x00,0x00,0x00,0x02,0x00,0x41,0xc4,0xb8,0xc0,0x2c, + 0x5f,0x0f,0x3c,0xf5,0x02,0x09,0x08,0x00,0x00,0x00, + 0x00,0x00,0xcd,0xac,0x5d,0x6c,0x00,0x00,0x00,0x00, + 0xcd,0xc0,0x7c,0x56,0xfe,0xb3,0xfe,0x12,0x07,0xae, + 0x07,0x73,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x08,0x8d, + 0xfd,0xa8,0x00,0x00,0x08,0x00,0xfe,0xb3,0xfe,0xb3, + 0x07,0xae,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x37, + 0x00,0x01,0x00,0x00,0x01,0x37,0x00,0x46,0x00,0x07, + 0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x01, + 0x00,0x01,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x03,0x03,0x1b,0x01,0x2c,0x00,0x03, + 0x00,0x00,0x05,0x33,0x04,0xcc,0x00,0x00,0x00,0x99, + 0x05,0x33,0x04,0xcc,0x00,0x00,0x02,0xcc,0x00,0x32, + 0x02,0x9e,0x00,0x00,0x00,0x00,0x04,0x06,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x03,0x40,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x55,0x4b,0x57,0x4e,0x00,0x00,0x00,0x0d,0xfb,0x4b, + 0x06,0x1f,0xfe,0x14,0x00,0x84,0x08,0x8d,0x02,0x58, + 0x20,0x00,0x00,0x21,0x00,0x00,0x00,0x00,0x04,0x3d, + 0x05,0xb6,0x00,0x00,0x00,0x20,0x00,0x04,0x02,0x14, + 0x00,0x00,0x00,0x00,0x00,0x00,0x02,0xaa,0x00,0x00, + 0x02,0x14,0x00,0x00,0x01,0x81,0x00,0x00,0x01,0xc3, + 0x00,0x93,0x02,0xae,0x00,0x85,0x03,0x64,0x00,0x25, + 0x03,0x33,0x00,0x5e,0x04,0xb8,0x00,0x5e,0x03,0x42, + 0x00,0x42,0x01,0x85,0x00,0x85,0x02,0x35,0x00,0x68, + 0x02,0x35,0x00,0x54,0x02,0xe9,0x00,0x5e,0x03,0x33, + 0x00,0x3b,0x01,0xa6,0x00,0x4e,0x02,0x04,0x00,0x35, + 0x01,0xa6,0x00,0x85,0x02,0xc9,0x00,0x33,0x03,0x33, + 0x00,0x58,0x03,0x33,0x00,0x96,0x03,0x33,0x00,0x4a, + 0x03,0x33,0x00,0x4c,0x03,0x33,0x00,0x25,0x03,0x33, + 0x00,0x62,0x03,0x33,0x00,0x64,0x03,0x33,0x00,0x39, + 0x03,0x33,0x00,0x48,0x03,0x33,0x00,0x52,0x01,0xa6, + 0x00,0x85,0x01,0xa6,0x00,0x4e,0x03,0x33,0x00,0x3b, + 0x03,0x33,0x00,0x3b,0x03,0x33,0x00,0x39,0x02,0x42, + 0x00,0x23,0x04,0xd1,0x00,0x6e,0x03,0x2d,0x00,0x00, + 0x03,0x8b,0x00,0xa0,0x03,0x5c,0x00,0x6e,0x03,0xe2, + 0x00,0xa0,0x03,0x14,0x00,0xa0,0x02,0xd9,0x00,0xa0, + 0x04,0x33,0x00,0x6f,0x04,0x02,0x00,0xa0,0x01,0xa2, + 0x00,0xa0,0x01,0x91,0xff,0xa6,0x03,0x39,0x00,0xa0, + 0x02,0xc7,0x00,0xa0,0x05,0x73,0x00,0xa0,0x04,0x42, + 0x00,0xa0,0x04,0x29,0x00,0x6f,0x03,0x48,0x00,0xa0, + 0x04,0x29,0x00,0x6f,0x03,0x66,0x00,0xa0,0x03,0x29, + 0x00,0x56,0x02,0xc7,0x00,0x0e,0x03,0xf4,0x00,0x93, + 0x03,0x1f,0x00,0x00,0x05,0x73,0x00,0x0a,0x02,0xcb, + 0x00,0x14,0x02,0xae,0x00,0x00,0x02,0x83,0x00,0x39, + 0x02,0x85,0x00,0xae,0x02,0xc9,0x00,0x33,0x02,0x85, + 0x00,0x4a,0x03,0x33,0x00,0x25,0x03,0x4a,0xff,0xfc, + 0x04,0x66,0x01,0xb2,0x03,0x10,0x00,0x4e,0x03,0x7d, + 0x00,0x91,0x02,0x7b,0x00,0x60,0x03,0x7d,0x00,0x5e, + 0x03,0x23,0x00,0x60,0x01,0xc5,0x00,0x14,0x02,0xe5, + 0x00,0x23,0x03,0x66,0x00,0x91,0x01,0x81,0x00,0x83, + 0x01,0x81,0xff,0xfc,0x02,0xc7,0x00,0x91,0x01,0x81, + 0x00,0x91,0x05,0x17,0x00,0x91,0x03,0x66,0x00,0x91, + 0x03,0x52,0x00,0x5e,0x03,0x7d,0x00,0x91,0x03,0x7d, + 0x00,0x5e,0x02,0x2f,0x00,0x91,0x02,0x85,0x00,0x4a, + 0x01,0xc1,0x00,0x2b,0x03,0x66,0x00,0x8d,0x02,0x8d, + 0x00,0x0a,0x04,0x64,0x00,0x14,0x02,0xa4,0x00,0x23, + 0x02,0x8d,0xff,0xfe,0x02,0x1d,0x00,0x3b,0x02,0xe1, + 0x00,0x6d,0x03,0x33,0x01,0x6a,0x02,0xe1,0x00,0x68, + 0x03,0x33,0x00,0x3b,0x02,0x14,0x00,0x00,0x01,0xc3, + 0x00,0x93,0x03,0x33,0x00,0xa8,0x03,0x33,0x00,0x50, + 0x04,0x6f,0x00,0x7d,0x03,0x33,0x00,0x6a,0x03,0x33, + 0x01,0x6a,0x02,0xba,0x00,0x52,0x04,0x66,0x01,0x5c, + 0x06,0xa8,0x00,0x64,0x02,0x42,0x00,0x39,0x03,0x58, + 0x00,0x52,0x03,0x33,0x00,0x3b,0x02,0x04,0x00,0x35, + 0x06,0xa8,0x00,0x64,0x03,0x4a,0xff,0xf8,0x03,0x6d, + 0x00,0x8b,0x03,0x33,0x00,0x3b,0x02,0x66,0x00,0x31, + 0x02,0x66,0x00,0x2f,0x04,0x66,0x01,0xb2,0x03,0x6a, + 0x00,0x91,0x03,0xc7,0x00,0x96,0x01,0xa6,0x00,0x85, + 0x01,0xd1,0x00,0x3b,0x02,0x66,0x00,0x52,0x02,0x6a, + 0x00,0x46,0x03,0x58,0x00,0x52,0x05,0x96,0x00,0x34, + 0x05,0x96,0x00,0x34,0x05,0x96,0x00,0x2f,0x02,0x42, + 0x00,0x2f,0x03,0x2d,0x00,0x00,0x03,0x2d,0x00,0x00, + 0x03,0x2d,0x00,0x00,0x03,0x2d,0x00,0x00,0x03,0x2d, + 0x00,0x00,0x03,0x2d,0x00,0x00,0x04,0x81,0x00,0x00, + 0x03,0x5c,0x00,0x6e,0x03,0x14,0x00,0xa0,0x03,0x14, + 0x00,0xa0,0x03,0x14,0x00,0xa0,0x03,0x14,0x00,0xa0, + 0x01,0xa2,0xff,0xde,0x01,0xa2,0x00,0x9a,0x01,0xa2, + 0xff,0xe6,0x01,0xa2,0xff,0xfb,0x03,0xe2,0x00,0x3d, + 0x04,0x42,0x00,0xa0,0x04,0x29,0x00,0x6f,0x04,0x29, + 0x00,0x6f,0x04,0x29,0x00,0x6f,0x04,0x29,0x00,0x6f, + 0x04,0x29,0x00,0x6f,0x03,0x33,0x00,0x3b,0x04,0x29, + 0x00,0x60,0x03,0xf4,0x00,0x93,0x03,0xf4,0x00,0x93, + 0x03,0xf4,0x00,0x93,0x03,0xf4,0x00,0x93,0x02,0xae, + 0x00,0x00,0x03,0x48,0x00,0xa0,0x03,0x37,0x00,0x91, + 0x03,0x10,0x00,0x4e,0x03,0x10,0x00,0x4e,0x03,0x10, + 0x00,0x4e,0x03,0x10,0x00,0x4e,0x03,0x10,0x00,0x4e, + 0x03,0x10,0x00,0x4e,0x04,0xec,0x00,0x4e,0x02,0x7b, + 0x00,0x60,0x03,0x23,0x00,0x60,0x03,0x23,0x00,0x60, + 0x03,0x23,0x00,0x60,0x03,0x23,0x00,0x60,0x01,0x81, + 0xff,0xe0,0x01,0x81,0x00,0x71,0x01,0x81,0xff,0xd6, + 0x01,0x81,0xff,0xec,0x03,0x58,0x00,0x5e,0x03,0x66, + 0x00,0x91,0x03,0x52,0x00,0x5e,0x03,0x52,0x00,0x5e, + 0x03,0x52,0x00,0x5e,0x03,0x52,0x00,0x5e,0x03,0x52, + 0x00,0x5e,0x03,0x33,0x00,0x3b,0x03,0x52,0x00,0x44, + 0x03,0x66,0x00,0x8d,0x03,0x66,0x00,0x8d,0x03,0x66, + 0x00,0x8d,0x03,0x66,0x00,0x8d,0x02,0x8d,0xff,0xfe, + 0x03,0x7d,0x00,0x91,0x02,0x8d,0xff,0xfe,0x01,0x81, + 0x00,0x91,0x04,0xd1,0x00,0x6f,0x05,0x52,0x00,0x5e, + 0x03,0x29,0x00,0x56,0x02,0x85,0x00,0x4a,0x02,0xae, + 0x00,0x00,0x02,0x83,0x00,0x39,0x02,0x1d,0x00,0x32, + 0x03,0x33,0x00,0x50,0x04,0x85,0x01,0x56,0x04,0x85, + 0x01,0x56,0x04,0x85,0x01,0x68,0x01,0x81,0x00,0x83, + 0x04,0x9e,0x01,0x89,0x01,0x7f,0x00,0x44,0x04,0x85, + 0x01,0x29,0x04,0x89,0x01,0x21,0x00,0x00,0xff,0xc4, + 0x00,0x00,0xfe,0xb3,0x00,0x00,0xfe,0xe1,0x00,0x00, + 0xfe,0xe1,0x00,0x00,0xff,0xc3,0x00,0x00,0xff,0x33, + 0x00,0x00,0xff,0x35,0x00,0x00,0xff,0x4e,0x00,0x00, + 0xff,0x4e,0x00,0x00,0xff,0xc3,0x00,0x00,0xff,0xc4, + 0x00,0x00,0xff,0x35,0x00,0x00,0xff,0xc3,0x00,0x00, + 0xff,0xd3,0x02,0x04,0x00,0x35,0x00,0x00,0xff,0xc3, + 0x00,0x00,0xff,0xc2,0x00,0x00,0xff,0x6e,0x03,0x09, + 0x00,0x48,0x02,0xec,0x00,0x5e,0x02,0x90,0x00,0x73, + 0x02,0xa6,0x00,0x11,0x03,0x94,0x00,0x91,0x01,0x81, + 0x00,0x91,0x01,0xab,0x00,0x87,0x03,0x94,0x00,0x91, + 0x03,0x74,0x00,0x5f,0x01,0x77,0x00,0x8c,0x02,0xa8, + 0x00,0x29,0x02,0x7b,0x00,0x29,0x02,0x5e,0x00,0x2d, + 0x03,0x93,0x00,0x91,0x03,0x5b,0x00,0x3b,0x01,0x90, + 0x00,0x73,0x02,0x39,0x00,0x27,0x03,0x74,0x00,0x5e, + 0x03,0x4e,0x00,0x48,0x03,0x90,0x00,0x5e,0x03,0x62, + 0x00,0x5e,0x02,0x6f,0x00,0x00,0x02,0xf3,0x00,0x3b, + 0x03,0x55,0x00,0x91,0x02,0x9c,0x00,0x17,0x04,0x18, + 0x00,0x4a,0x03,0x7a,0x00,0x10,0x01,0x3c,0x00,0x2b, + 0x02,0x56,0x00,0x2b,0x04,0x00,0x00,0x52,0x08,0x00, + 0x00,0x52,0x01,0x3b,0x00,0x2b,0x01,0x3b,0x00,0x2b, + 0x01,0xa6,0x00,0x4e,0x02,0x56,0x00,0x2b,0x02,0x56, + 0x00,0x2b,0x02,0x93,0x00,0x21,0x03,0x73,0x00,0x7b, + 0x03,0x73,0x00,0x7b,0x03,0x02,0x00,0xa8,0x04,0xf2, + 0x00,0x85,0x06,0xb6,0x00,0x5e,0x02,0x00,0x00,0x52, + 0x02,0x00,0x00,0x52,0x01,0x0a,0xfe,0xd7,0x04,0x6b, + 0x00,0x91,0x03,0x33,0x00,0x23,0x05,0xac,0x00,0x0e, + 0x03,0x46,0x00,0x14,0x03,0x46,0x00,0x14,0x04,0x18, + 0x00,0x4a,0x04,0x18,0x00,0x2e,0x04,0x18,0x00,0x4a, + 0x04,0x18,0x00,0x2e,0x03,0x09,0x00,0x48,0x03,0x09, + 0x00,0x48,0x03,0x09,0x00,0x48,0x02,0xec,0x00,0x5e, + 0x02,0x90,0x00,0x73,0x02,0xa6,0x00,0x11,0x03,0x94, + 0x00,0x91,0x01,0x81,0xff,0xcc,0x01,0xab,0xff,0xec, + 0x03,0x74,0x00,0x5f,0x01,0x77,0xff,0xca,0x02,0xa8, + 0x00,0x29,0x02,0x7b,0x00,0x29,0x02,0x5e,0x00,0x2d, + 0x03,0x5b,0x00,0x3b,0x02,0x39,0x00,0x27,0x03,0x74, + 0x00,0x5e,0x03,0x90,0x00,0x5e,0x03,0x62,0x00,0x5e, + 0x02,0xf3,0x00,0x3b,0x03,0x55,0x00,0x91,0x02,0x9c, + 0x00,0x17,0x04,0x18,0x00,0x4a,0x03,0x7a,0x00,0x10, + 0x01,0x81,0x00,0x67,0x00,0x00,0xff,0x15,0x01,0x81, + 0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x03, + 0x00,0x00,0x00,0x1c,0x00,0x01,0x00,0x00,0x00,0x00, + 0x01,0x4c,0x00,0x03,0x00,0x01,0x00,0x00,0x00,0x1c, + 0x00,0x04,0x01,0x30,0x00,0x00,0x00,0x48,0x00,0x40, + 0x00,0x05,0x00,0x08,0x00,0x0d,0x00,0x7e,0x00,0xa0, + 0x00,0xff,0x01,0x31,0x01,0x53,0x01,0x61,0x01,0x78, + 0x01,0x7e,0x01,0x92,0x02,0xc7,0x02,0xdd,0x05,0xbe, + 0x05,0xc2,0x05,0xc7,0x05,0xea,0x05,0xf4,0x20,0x14, + 0x20,0x1a,0x20,0x1e,0x20,0x22,0x20,0x26,0x20,0x30, + 0x20,0x3a,0x20,0x44,0x20,0xaa,0x20,0xac,0x21,0x22, + 0xfb,0x02,0xfb,0x36,0xfb,0x3c,0xfb,0x3e,0xfb,0x41, + 0xfb,0x44,0xfb,0x4b,0xff,0xff,0x00,0x00,0x00,0x0d, + 0x00,0x20,0x00,0xa0,0x00,0xa1,0x01,0x31,0x01,0x52, + 0x01,0x60,0x01,0x78,0x01,0x7d,0x01,0x92,0x02,0xc6, + 0x02,0xd8,0x05,0xb0,0x05,0xc1,0x05,0xc7,0x05,0xd0, + 0x05,0xf3,0x20,0x13,0x20,0x18,0x20,0x1c,0x20,0x20, + 0x20,0x26,0x20,0x30,0x20,0x39,0x20,0x44,0x20,0xaa, + 0x20,0xac,0x21,0x22,0xfb,0x01,0xfb,0x2a,0xfb,0x38, + 0xfb,0x3e,0xfb,0x40,0xfb,0x43,0xfb,0x46,0xff,0xff, + 0xff,0xf6,0xff,0xe4,0x00,0x96,0xff,0xc3,0xff,0x92, + 0xff,0x72,0xff,0x66,0xff,0x50,0xff,0x4c,0xff,0x39, + 0xfe,0x06,0xfd,0xf6,0xfb,0x24,0xfb,0x22,0xfb,0x1e, + 0xfb,0x16,0xfb,0x0e,0xe0,0xf0,0xe0,0xed,0xe0,0xec, + 0xe0,0xeb,0xe0,0xe8,0xe0,0xdf,0xe0,0xd7,0xe0,0xce, + 0xe0,0x69,0xe0,0x68,0xdf,0xf3,0x06,0x15,0x05,0xee, + 0x05,0xed,0x05,0xec,0x05,0xeb,0x05,0xea,0x05,0xe9, + 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,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x06,0x02,0x0a,0x00,0x00, + 0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x01,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,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,0x01,0x00,0x00,0x00,0x00,0x00,0x04, + 0x00,0x05,0x00,0x06,0x00,0x07,0x00,0x08,0x00,0x09, + 0x00,0x0a,0x00,0x0b,0x00,0x0c,0x00,0x0d,0x00,0x0e, + 0x00,0x0f,0x00,0x10,0x00,0x11,0x00,0x12,0x00,0x13, + 0x00,0x14,0x00,0x15,0x00,0x16,0x00,0x17,0x00,0x18, + 0x00,0x19,0x00,0x1a,0x00,0x1b,0x00,0x1c,0x00,0x1d, + 0x00,0x1e,0x00,0x1f,0x00,0x20,0x00,0x21,0x00,0x22, + 0x00,0x23,0x00,0x24,0x00,0x25,0x00,0x26,0x00,0x27, + 0x00,0x28,0x00,0x29,0x00,0x2a,0x00,0x2b,0x00,0x2c, + 0x00,0x2d,0x00,0x2e,0x00,0x2f,0x00,0x30,0x00,0x31, + 0x00,0x32,0x00,0x33,0x00,0x34,0x00,0x35,0x00,0x36, + 0x00,0x37,0x00,0x38,0x00,0x39,0x00,0x3a,0x00,0x3b, + 0x00,0x3c,0x00,0x3d,0x00,0x3e,0x00,0x3f,0x00,0x40, + 0x00,0x41,0x00,0x42,0x00,0x43,0x00,0x44,0x00,0x45, + 0x00,0x46,0x00,0x47,0x00,0x48,0x00,0x49,0x00,0x4a, + 0x00,0x4b,0x00,0x4c,0x00,0x4d,0x00,0x4e,0x00,0x4f, + 0x00,0x50,0x00,0x51,0x00,0x52,0x00,0x53,0x00,0x54, + 0x00,0x55,0x00,0x56,0x00,0x57,0x00,0x58,0x00,0x59, + 0x00,0x5a,0x00,0x5b,0x00,0x5c,0x00,0x5d,0x00,0x5e, + 0x00,0x5f,0x00,0x60,0x00,0x61,0x00,0x62,0x00,0x00, + 0x00,0x87,0x00,0x88,0x00,0x8a,0x00,0x8c,0x00,0x94, + 0x00,0x99,0x00,0x9f,0x00,0xa4,0x00,0xa3,0x00,0xa5, + 0x00,0xa7,0x00,0xa6,0x00,0xa8,0x00,0xaa,0x00,0xac, + 0x00,0xab,0x00,0xad,0x00,0xae,0x00,0xb0,0x00,0xaf, + 0x00,0xb1,0x00,0xb2,0x00,0xb4,0x00,0xb6,0x00,0xb5, + 0x00,0xb7,0x00,0xb9,0x00,0xb8,0x00,0xbd,0x00,0xbc, + 0x00,0xbe,0x00,0xbf,0x01,0x0b,0x00,0x73,0x00,0x65, + 0x00,0x66,0x00,0x6a,0x01,0x0d,0x00,0x79,0x00,0xa2, + 0x00,0x71,0x00,0x6c,0x01,0x15,0x00,0x77,0x00,0x6b, + 0x00,0x00,0x00,0x89,0x00,0x9b,0x00,0x00,0x00,0x74, + 0x00,0x00,0x00,0x00,0x00,0x68,0x00,0x78,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6d, + 0x00,0x7d,0x00,0x00,0x00,0xa9,0x00,0xbb,0x00,0x82, + 0x00,0x64,0x00,0x6f,0x00,0x00,0x00,0xcb,0x00,0x00, + 0x00,0x00,0x00,0x6e,0x00,0x7e,0x01,0x0e,0x01,0x36, + 0x00,0x83,0x00,0x86,0x00,0x98,0x00,0xc4,0x00,0xc5, + 0x01,0x03,0x01,0x04,0x01,0x08,0x01,0x09,0x01,0x05, + 0x01,0x06,0x00,0xba,0x00,0x00,0x00,0xc2,0x00,0xc8, + 0x01,0x12,0x01,0x14,0x01,0x10,0x01,0x11,0x01,0x16, + 0x01,0x17,0x01,0x0c,0x00,0x7a,0x01,0x07,0x01,0x0a, + 0x01,0x0f,0x00,0x85,0x00,0x8d,0x00,0x84,0x00,0x8e, + 0x00,0x8b,0x00,0x90,0x00,0x91,0x00,0x92,0x00,0x8f, + 0x00,0x96,0x00,0x97,0x00,0x00,0x00,0x95,0x00,0x9d, + 0x00,0x9e,0x00,0x9c,0x00,0xc3,0x00,0xcc,0x00,0xd2, + 0x00,0x72,0x00,0xce,0x00,0xcf,0x00,0xd0,0x00,0x7b, + 0x00,0xd3,0x00,0xd1,0x00,0xcd,0x00,0x00,0xb8,0x01, + 0xff,0x85,0xb0,0x04,0x8d,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18, + 0x00,0x2e,0x00,0x66,0x00,0xac,0x00,0xf2,0x01,0x3e, + 0x01,0x4c,0x01,0x68,0x01,0x84,0x01,0xa2,0x01,0xba, + 0x01,0xcc,0x01,0xda,0x01,0xea,0x01,0xf8,0x02,0x1e, + 0x02,0x36,0x02,0x64,0x02,0x9c,0x02,0xc0,0x02,0xec, + 0x03,0x22,0x03,0x36,0x03,0x7a,0x03,0xb4,0x03,0xce, + 0x03,0xea,0x04,0x00,0x04,0x14,0x04,0x28,0x04,0x5c, + 0x04,0xc2,0x04,0xe4,0x05,0x18,0x05,0x48,0x05,0x6a, + 0x05,0x84,0x05,0x9a,0x05,0xc4,0x05,0xdc,0x05,0xe8, + 0x06,0x00,0x06,0x1e,0x06,0x2e,0x06,0x58,0x06,0x76, + 0x06,0x9e,0x06,0xbe,0x06,0xee,0x07,0x16,0x07,0x4e, + 0x07,0x62,0x07,0x80,0x07,0x9a,0x07,0xc8,0x07,0xe6, + 0x07,0xfc,0x08,0x14,0x08,0x28,0x08,0x36,0x08,0x4a, + 0x08,0x5e,0x08,0x6c,0x08,0x82,0x08,0xb8,0x08,0xe8, + 0x09,0x0a,0x09,0x38,0x09,0x62,0x09,0x86,0x09,0xde, + 0x0a,0x04,0x0a,0x1e,0x0a,0x44,0x0a,0x62,0x0a,0x6e, + 0x0a,0xa0,0x0a,0xc2,0x0a,0xe4,0x0b,0x16,0x0b,0x44, + 0x0b,0x66,0x0b,0x98,0x0b,0xba,0x0b,0xde,0x0b,0xf8, + 0x0c,0x28,0x0c,0x44,0x0c,0x6e,0x0c,0x86,0x0c,0xbc, + 0x0c,0xca,0x0d,0x00,0x0d,0x22,0x0d,0x22,0x0d,0x3a, + 0x0d,0x62,0x0d,0x92,0x0d,0xd6,0x0d,0xfc,0x0e,0x10, + 0x0e,0x60,0x0e,0x80,0x0e,0xd2,0x0f,0x04,0x0f,0x28, + 0x0f,0x38,0x0f,0x46,0x0f,0x9a,0x0f,0xa8,0x0f,0xca, + 0x0f,0xea,0x10,0x10,0x10,0x40,0x10,0x54,0x10,0x7a, + 0x10,0x96,0x10,0xa6,0x10,0xc6,0x10,0xde,0x10,0xfe, + 0x11,0x20,0x11,0x5a,0x11,0x98,0x11,0xea,0x12,0x1e, + 0x12,0x50,0x12,0x80,0x12,0xbc,0x12,0xfc,0x13,0x36, + 0x13,0x70,0x13,0x98,0x13,0xdc,0x14,0x04,0x14,0x2c, + 0x14,0x60,0x14,0x92,0x14,0xae,0x14,0xca,0x14,0xf2, + 0x15,0x18,0x15,0x42,0x15,0x80,0x15,0xb8,0x15,0xee, + 0x16,0x30,0x16,0x76,0x16,0xb6,0x16,0xd8,0x17,0x16, + 0x17,0x44,0x17,0x70,0x17,0xa8,0x17,0xde,0x18,0x04, + 0x18,0x2a,0x18,0x66,0x18,0xaa,0x18,0xee,0x19,0x3e, + 0x19,0x92,0x19,0xe0,0x1a,0x2e,0x1a,0x7e,0x1a,0xb6, + 0x1a,0xf0,0x1b,0x28,0x1b,0x6e,0x1b,0xb0,0x1b,0xcc, + 0x1b,0xe8,0x1c,0x10,0x1c,0x36,0x1c,0x72,0x1c,0xb2, + 0x1c,0xe4,0x1d,0x14,0x1d,0x50,0x1d,0x90,0x1d,0xca, + 0x1d,0xec,0x1e,0x28,0x1e,0x5c,0x1e,0x8e,0x1e,0xcc, + 0x1f,0x08,0x1f,0x40,0x1f,0x76,0x1f,0xb8,0x1f,0xc4, + 0x1f,0xf4,0x20,0x36,0x20,0x86,0x20,0xd0,0x21,0x00, + 0x21,0x30,0x21,0x60,0x21,0x90,0x21,0xb2,0x21,0xd0, + 0x21,0xe8,0x21,0xfa,0x22,0x1a,0x22,0x36,0x22,0x5c, + 0x22,0x82,0x22,0x98,0x22,0xc6,0x22,0xe2,0x23,0x02, + 0x23,0x10,0x23,0x26,0x23,0x44,0x23,0x52,0x23,0x62, + 0x23,0x70,0x23,0x7e,0x23,0x9c,0x23,0xaa,0x23,0xb8, + 0x23,0xc6,0x23,0xd4,0x23,0xe2,0x23,0xf2,0x24,0x24, + 0x24,0x4c,0x24,0x78,0x24,0x9a,0x24,0xbe,0x24,0xca, + 0x24,0xe4,0x25,0x02,0x25,0x2e,0x25,0x3e,0x25,0x56, + 0x25,0x82,0x25,0x9c,0x25,0xc0,0x25,0xfe,0x26,0x14, + 0x26,0x3a,0x26,0x6a,0x26,0x94,0x26,0xbc,0x26,0xf8, + 0x27,0x1a,0x27,0x40,0x27,0x70,0x27,0x92,0x27,0xc6, + 0x27,0xf6,0x28,0x0e,0x28,0x34,0x28,0x42,0x28,0x50, + 0x28,0x62,0x28,0x74,0x28,0x86,0x28,0xa2,0x28,0xc0, + 0x28,0xde,0x28,0xfa,0x29,0x28,0x29,0x3a,0x29,0x5c, + 0x29,0xbc,0x29,0xd2,0x29,0xe6,0x29,0xf4,0x2a,0x32, + 0x2a,0x6e,0x2a,0x9a,0x2a,0xd0,0x2a,0xfa,0x2b,0x38, + 0x2b,0x76,0x2b,0xbc,0x2c,0x02,0x2c,0x3c,0x2c,0x78, + 0x2c,0xb2,0x2c,0xe2,0x2d,0x16,0x2d,0x40,0x2d,0x6c, + 0x2d,0x80,0x2d,0xa2,0x2d,0xd6,0x2d,0xee,0x2e,0x0e, + 0x2e,0x42,0x2e,0x64,0x2e,0xaa,0x2e,0xd8,0x2f,0x10, + 0x2f,0x40,0x2f,0x84,0x2f,0xb4,0x2f,0xee,0x30,0x18, + 0x30,0x54,0x30,0x8e,0x30,0xa4,0x30,0xb2,0x30,0xb2, + 0x00,0x02,0x00,0x93,0xff,0xf0,0x01,0x2f,0x05,0xb6, + 0x00,0x03,0x00,0x0a,0x00,0x00,0x13,0x23,0x03,0x33, + 0x02,0x32,0x15,0x14,0x06,0x23,0x22,0xfc,0x37,0x23, + 0x7d,0x8c,0x9c,0x2b,0x23,0x4e,0x01,0x6f,0x04,0x47, + 0xfb,0x0f,0x6b,0x36,0x34,0x00,0x00,0x00,0x00,0x02, + 0x00,0x85,0x03,0xa6,0x02,0x29,0x05,0xb6,0x00,0x03, + 0x00,0x07,0x00,0x00,0x13,0x23,0x03,0x33,0x01,0x23, + 0x03,0x33,0xe3,0x3d,0x21,0x7b,0x01,0x0c,0x3d,0x21, + 0x7b,0x03,0xa6,0x02,0x10,0xfd,0xf0,0x02,0x10,0x00, + 0x00,0x00,0x00,0x02,0x00,0x25,0x00,0x00,0x03,0x3d, + 0x05,0xb6,0x00,0x1b,0x00,0x1f,0x00,0x00,0x01,0x15, + 0x23,0x03,0x33,0x15,0x23,0x03,0x23,0x13,0x23,0x03, + 0x23,0x13,0x23,0x35,0x33,0x13,0x23,0x35,0x33,0x13, + 0x33,0x03,0x33,0x13,0x33,0x03,0x05,0x03,0x33,0x13, + 0x03,0x3d,0xb0,0x2d,0xae,0xb8,0x35,0x52,0x37,0xe9, + 0x36,0x4d,0x33,0xa8,0xb2,0x2d,0xb2,0xbc,0x2f,0x52, + 0x31,0xec,0x31,0x4c,0x2f,0xfe,0xbc,0x2d,0xe9,0x2f, + 0x04,0x12,0x56,0xfe,0x71,0x5a,0xfe,0x2d,0x01,0xd3, + 0xfe,0x2d,0x01,0xd3,0x5a,0x01,0x8f,0x56,0x01,0xa4, + 0xfe,0x5c,0x01,0xa4,0xfe,0x5c,0x56,0xfe,0x71,0x01, + 0x8f,0x00,0x00,0x00,0x00,0x03,0x00,0x5e,0xff,0x89, + 0x02,0xd7,0x06,0x14,0x00,0x1c,0x00,0x23,0x00,0x2a, + 0x00,0x00,0x01,0x15,0x16,0x17,0x07,0x26,0x27,0x11, + 0x16,0x16,0x14,0x06,0x07,0x15,0x23,0x35,0x22,0x27, + 0x35,0x16,0x16,0x33,0x11,0x26,0x26,0x34,0x36,0x37, + 0x35,0x11,0x06,0x06,0x14,0x17,0x16,0x17,0x13,0x36, + 0x34,0x26,0x27,0x11,0x36,0x01,0xc1,0x8d,0x75,0x25, + 0x75,0x68,0x96,0x80,0x97,0x7f,0x52,0xaf,0x62,0x33, + 0x95,0x49,0x92,0x75,0x92,0x75,0x49,0x5d,0x27,0x29, + 0x56,0xd5,0x31,0x54,0x60,0x51,0x06,0x14,0xb6,0x05, + 0x38,0x56,0x36,0x03,0xfe,0x04,0x3d,0x9a,0xf1,0xaa, + 0x15,0xf8,0xf2,0x35,0x67,0x1e,0x22,0x01,0xee,0x3c, + 0x9b,0xfa,0xb0,0x14,0xba,0xfe,0xea,0x10,0x7c,0xb2, + 0x37,0x36,0x2a,0xfe,0x04,0x3b,0xa3,0x70,0x29,0xfe, + 0x3b,0x13,0x00,0x00,0x00,0x05,0x00,0x5e,0xff,0xec, + 0x04,0x5a,0x05,0xcb,0x00,0x07,0x00,0x0b,0x00,0x15, + 0x00,0x1d,0x00,0x27,0x00,0x00,0x12,0x36,0x32,0x16, + 0x10,0x06,0x22,0x26,0x01,0x23,0x01,0x33,0x05,0x22, + 0x06,0x10,0x16,0x33,0x32,0x36,0x35,0x10,0x00,0x36, + 0x32,0x16,0x10,0x06,0x22,0x26,0x13,0x22,0x06,0x10, + 0x16,0x33,0x32,0x36,0x35,0x10,0x5e,0x66,0xc7,0x69, + 0x6c,0xc3,0x67,0x01,0x3c,0x58,0x01,0xdb,0x58,0xfd, + 0xb0,0x3a,0x33,0x34,0x3d,0x3b,0x36,0x01,0x2b,0x66, + 0xc6,0x69,0x6c,0xc2,0x67,0xc6,0x3a,0x32,0x33,0x3d, + 0x3b,0x36,0x04,0xe1,0xea,0xe9,0xfe,0x45,0xf2,0xee, + 0xfc,0xdd,0x05,0xb6,0x39,0xb7,0xfe,0x7b,0xb8,0xb9, + 0xc2,0x01,0x79,0xfd,0x1e,0xe6,0xe9,0xfe,0x43,0xef, + 0xf0,0x02,0x57,0xb7,0xfe,0x7b,0xb8,0xb9,0xc2,0x01, + 0x79,0x00,0x00,0x00,0x00,0x03,0x00,0x42,0xff,0xec, + 0x03,0x44,0x05,0xcb,0x00,0x1b,0x00,0x25,0x00,0x2d, + 0x00,0x00,0x05,0x22,0x26,0x10,0x37,0x36,0x37,0x26, + 0x26,0x34,0x36,0x32,0x16,0x10,0x06,0x07,0x13,0x36, + 0x35,0x33,0x14,0x06,0x07,0x13,0x23,0x27,0x06,0x06, + 0x03,0x22,0x06,0x14,0x16,0x17,0x36,0x36,0x35,0x34, + 0x02,0x06,0x14,0x16,0x32,0x36,0x37,0x03,0x01,0x48, + 0x7a,0x8c,0x57,0x2b,0x59,0x4b,0x2c,0x68,0xb5,0x68, + 0x4b,0x59,0xec,0x39,0x5e,0x3a,0x28,0x9c,0x6d,0x62, + 0x4b,0x89,0x3d,0x2e,0x32,0x32,0x26,0x3e,0x33,0xe7, + 0x44,0x5e,0x98,0x76,0x36,0xfe,0x14,0xc5,0x01,0x5f, + 0x7a,0x3e,0x4c,0x8c,0xa7,0xf0,0x94,0x98,0xfe,0xef, + 0xc3,0x59,0xfe,0x5a,0x76,0xaf,0x5d,0xde,0x46,0xfe, + 0xfc,0xb2,0x70,0x56,0x05,0x85,0x67,0xb7,0xc2,0x3f, + 0x3f,0xa8,0x71,0xc7,0xfd,0x02,0x9c,0xfa,0x93,0x5c, + 0x60,0x01,0xc7,0x00,0x00,0x00,0x00,0x01,0x00,0x85, + 0x03,0xa6,0x01,0x00,0x05,0xb6,0x00,0x03,0x00,0x00, + 0x13,0x23,0x03,0x33,0xe3,0x3d,0x21,0x7b,0x03,0xa6, + 0x02,0x10,0x00,0x00,0x00,0x01,0x00,0x68,0xfe,0xbc, + 0x01,0xe1,0x05,0xb6,0x00,0x0b,0x00,0x00,0x01,0x06, + 0x02,0x10,0x12,0x17,0x23,0x26,0x02,0x10,0x12,0x37, + 0x01,0xe1,0x87,0x89,0x91,0x7d,0x4e,0x90,0x99,0x9c, + 0x8d,0x05,0xb6,0xc8,0xfe,0x33,0xfe,0x1f,0xfe,0x28, + 0xac,0xa8,0x01,0xcc,0x02,0x03,0x01,0xd8,0xab,0x00, + 0x00,0x01,0x00,0x54,0xfe,0xbc,0x01,0xcd,0x05,0xb6, + 0x00,0x0b,0x00,0x00,0x13,0x16,0x12,0x10,0x02,0x07, + 0x23,0x36,0x12,0x10,0x02,0x27,0xa4,0x90,0x99,0x9a, + 0x8f,0x4e,0x80,0x8e,0x8b,0x85,0x05,0xb6,0xab,0xfe, + 0x25,0xfe,0x01,0xfe,0x31,0xa6,0xb5,0x01,0xd6,0x01, + 0xdd,0x01,0xcc,0xc6,0x00,0x00,0x00,0x01,0x00,0x5e, + 0x03,0xcf,0x02,0x8b,0x06,0x14,0x00,0x0e,0x00,0x00, + 0x01,0x37,0x17,0x07,0x17,0x07,0x27,0x07,0x27,0x37, + 0x27,0x37,0x17,0x27,0x33,0x01,0x96,0xe7,0x0e,0xe3, + 0x9c,0x61,0x6c,0x75,0x5c,0x95,0xdd,0x11,0xe5,0x1b, + 0x79,0x05,0x1b,0x39,0x6b,0x08,0xe3,0x2d,0xed,0xef, + 0x2f,0xe3,0x06,0x6b,0x37,0xf9,0x00,0x01,0x00,0x3b, + 0x00,0xfa,0x02,0xf8,0x04,0xae,0x00,0x0b,0x00,0x00, + 0x01,0x21,0x15,0x21,0x11,0x23,0x11,0x21,0x35,0x21, + 0x11,0x33,0x01,0xc3,0x01,0x35,0xfe,0xcb,0x52,0xfe, + 0xca,0x01,0x36,0x52,0x02,0xfc,0x52,0xfe,0x50,0x01, + 0xb0,0x52,0x01,0xb2,0x00,0x01,0x00,0x4e,0xfe,0xf8, + 0x01,0x33,0x00,0xcd,0x00,0x06,0x00,0x00,0x25,0x17, + 0x06,0x07,0x23,0x36,0x37,0x01,0x25,0x0e,0x43,0x63, + 0x3f,0x4a,0x1a,0xcd,0x17,0xe5,0xd9,0xfc,0xd9,0x00, + 0x00,0x01,0x00,0x35,0x01,0xf6,0x01,0xcf,0x02,0x5c, + 0x00,0x03,0x00,0x00,0x01,0x21,0x35,0x21,0x01,0xcf, + 0xfe,0x66,0x01,0x9a,0x01,0xf6,0x66,0x00,0x00,0x01, + 0x00,0x85,0xff,0xf0,0x01,0x21,0x00,0xc5,0x00,0x06, + 0x00,0x00,0x36,0x32,0x15,0x14,0x06,0x23,0x22,0x85, + 0x9c,0x2b,0x23,0x4e,0xc5,0x6b,0x36,0x34,0x00,0x00, + 0x00,0x01,0x00,0x33,0x00,0x00,0x02,0xa2,0x05,0xb6, + 0x00,0x03,0x00,0x00,0x33,0x23,0x01,0x33,0x98,0x65, + 0x02,0x0f,0x60,0x05,0xb6,0x00,0x00,0x00,0x00,0x02, + 0x00,0x58,0xff,0xec,0x02,0xd9,0x05,0xcb,0x00,0x09, + 0x00,0x11,0x00,0x00,0x01,0x32,0x12,0x10,0x02,0x20, + 0x27,0x26,0x11,0x10,0x05,0x22,0x02,0x10,0x12,0x33, + 0x32,0x10,0x01,0x98,0xa5,0x9c,0xa2,0xfe,0xb9,0x4d, + 0x4b,0x01,0x40,0x71,0x69,0x6a,0x70,0xdb,0x05,0xcb, + 0xfe,0x8e,0xfd,0x10,0xfe,0x83,0xb0,0xb1,0x01,0x90, + 0x02,0xee,0x5e,0xfe,0xbe,0xfd,0x65,0xfe,0xba,0x05, + 0x23,0x00,0x00,0x00,0x00,0x01,0x00,0x96,0x00,0x00, + 0x02,0x00,0x05,0xb6,0x00,0x0a,0x00,0x00,0x21,0x23, + 0x11,0x34,0x37,0x06,0x07,0x07,0x27,0x01,0x33,0x02, + 0x00,0x60,0x08,0x14,0x4e,0x7d,0x33,0x01,0x1a,0x50, + 0x04,0x33,0x79,0xa2,0x1b,0x4e,0x72,0x3f,0x01,0x04, + 0x00,0x00,0x00,0x01,0x00,0x4a,0x00,0x00,0x02,0xd9, + 0x05,0xcb,0x00,0x1a,0x00,0x00,0x01,0x32,0x16,0x15, + 0x14,0x07,0x06,0x07,0x01,0x15,0x21,0x15,0x21,0x35, + 0x01,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07, + 0x27,0x36,0x36,0x01,0x79,0x97,0xa8,0x5e,0x2c,0x67, + 0xfe,0xf3,0x02,0x1f,0xfd,0x71,0x01,0x27,0x86,0x5f, + 0x7a,0x69,0x43,0x67,0x36,0x35,0x47,0x7e,0x05,0xcb, + 0xbd,0x9f,0xcb,0xc2,0x5f,0x93,0xfe,0x72,0x08,0x5a, + 0x4e,0x01,0xbe,0xcb,0xff,0x99,0x76,0x8c,0x27,0x2b, + 0x4b,0x35,0x2c,0x00,0x00,0x01,0x00,0x4c,0xff,0xec, + 0x02,0xcf,0x05,0xcb,0x00,0x24,0x00,0x00,0x01,0x32, + 0x16,0x15,0x10,0x07,0x15,0x16,0x16,0x15,0x14,0x06, + 0x20,0x27,0x35,0x16,0x33,0x32,0x36,0x10,0x26,0x23, + 0x23,0x35,0x33,0x32,0x37,0x36,0x10,0x26,0x23,0x22, + 0x06,0x07,0x27,0x36,0x36,0x01,0x7d,0x8f,0xac,0xed, + 0x7b,0x89,0xc1,0xfe,0xb3,0x6d,0x7d,0x97,0x7b,0x87, + 0xa0,0x99,0x4a,0x50,0x7f,0x50,0x50,0x71,0x66,0x43, + 0x6f,0x44,0x3d,0x49,0x91,0x05,0xcb,0xbe,0x93,0xfe, + 0xd8,0x54,0x08,0x1b,0xbf,0x91,0xbf,0xe0,0x35,0x6c, + 0x49,0xb1,0x01,0x2e,0xa4,0x5c,0x59,0x5b,0x01,0x0f, + 0x8d,0x2d,0x40,0x40,0x47,0x3e,0x00,0x02,0x00,0x25, + 0x00,0x00,0x03,0x19,0x05,0xc7,0x00,0x0a,0x00,0x11, + 0x00,0x00,0x01,0x33,0x15,0x23,0x11,0x23,0x11,0x21, + 0x35,0x01,0x33,0x03,0x11,0x34,0x37,0x23,0x07,0x01, + 0x02,0x7d,0x9c,0x9c,0x60,0xfe,0x08,0x01,0xdf,0x79, + 0x60,0x08,0x06,0x4a,0xfe,0xb4,0x01,0xa6,0x5a,0xfe, + 0xb4,0x01,0x4c,0x54,0x04,0x27,0xfb,0xdf,0x02,0xc2, + 0x73,0x7b,0xbc,0xfd,0x0c,0x00,0x00,0x00,0x00,0x01, + 0x00,0x62,0xff,0xec,0x02,0xd7,0x05,0xb6,0x00,0x18, + 0x00,0x00,0x01,0x21,0x03,0x36,0x33,0x32,0x16,0x15, + 0x14,0x02,0x23,0x22,0x27,0x35,0x16,0x20,0x36,0x10, + 0x26,0x23,0x22,0x07,0x27,0x13,0x21,0x02,0x87,0xfe, + 0x62,0x24,0x5c,0x52,0xa4,0xc0,0xd2,0xaf,0x9c,0x58, + 0x6e,0x01,0x07,0x9c,0x89,0x7d,0x66,0x69,0x31,0x2b, + 0x01,0xef,0x05,0x58,0xfd,0xfe,0x14,0xda,0xbf,0xdd, + 0xfe,0xf8,0x37,0x6e,0x4d,0xda,0x01,0x50,0xa6,0x1e, + 0x3f,0x02,0x81,0x00,0x00,0x00,0x00,0x02,0x00,0x64, + 0xff,0xec,0x02,0xd9,0x05,0xcb,0x00,0x15,0x00,0x1f, + 0x00,0x00,0x01,0x32,0x16,0x10,0x06,0x23,0x22,0x02, + 0x11,0x10,0x21,0x32,0x17,0x15,0x26,0x23,0x22,0x02, + 0x03,0x33,0x36,0x36,0x00,0x26,0x22,0x06,0x14,0x17, + 0x16,0x33,0x32,0x36,0x01,0xb4,0x88,0x9d,0xa6,0x8d, + 0x9d,0xa5,0x01,0xa8,0x4c,0x33,0x39,0x4e,0x90,0xa3, + 0x0a,0x08,0x22,0x77,0x01,0x0d,0x69,0xca,0x79,0x1c, + 0x3a,0x89,0x64,0x69,0x03,0x87,0xf2,0xfe,0x51,0xfa, + 0x01,0x4a,0x01,0x39,0x03,0x5c,0x17,0x60,0x19,0xfe, + 0xb4,0xfe,0xc4,0x4d,0x55,0xfe,0xe8,0xbc,0xa2,0xfc, + 0x6a,0xd9,0xba,0x00,0x00,0x01,0x00,0x39,0x00,0x00, + 0x02,0xec,0x05,0xb6,0x00,0x06,0x00,0x00,0x13,0x35, + 0x21,0x15,0x01,0x23,0x01,0x39,0x02,0xb3,0xfe,0x3d, + 0x66,0x01,0xc6,0x05,0x58,0x5e,0x52,0xfa,0x9c,0x05, + 0x58,0x00,0x00,0x00,0x00,0x03,0x00,0x48,0xff,0xec, + 0x02,0xee,0x05,0xcb,0x00,0x14,0x00,0x1d,0x00,0x28, + 0x00,0x00,0x13,0x34,0x36,0x20,0x17,0x16,0x15,0x14, + 0x07,0x16,0x17,0x16,0x10,0x06,0x20,0x26,0x35,0x34, + 0x36,0x37,0x26,0x00,0x26,0x22,0x06,0x14,0x16,0x17, + 0x36,0x35,0x01,0x06,0x14,0x16,0x32,0x36,0x35,0x34, + 0x27,0x27,0x06,0x6a,0xab,0x01,0x11,0x54,0x55,0xf0, + 0x6c,0x35,0x6e,0xb9,0xfe,0xd7,0xc4,0x6f,0x86,0xd3, + 0x02,0x00,0x6d,0xc1,0x6d,0x5a,0x71,0xd0,0xfe,0x74, + 0x30,0x84,0xd6,0x7f,0xcf,0x31,0x79,0x04,0x77,0x97, + 0xbd,0x5a,0x58,0x9e,0xf3,0x8e,0x49,0x38,0x74,0xfe, + 0xbe,0xd7,0xce,0xa4,0x7f,0xc6,0x57,0xa2,0x01,0x4f, + 0x86,0x87,0xde,0x9a,0x4b,0x7d,0xcf,0xfd,0xbc,0x52, + 0xff,0x98,0x9e,0x8b,0xb3,0x8e,0x21,0x4d,0x00,0x00, + 0x00,0x02,0x00,0x52,0xff,0xec,0x02,0xc7,0x05,0xcb, + 0x00,0x16,0x00,0x20,0x00,0x00,0x01,0x22,0x26,0x10, + 0x36,0x20,0x12,0x11,0x10,0x02,0x23,0x22,0x26,0x27, + 0x35,0x16,0x33,0x32,0x12,0x13,0x23,0x06,0x06,0x03, + 0x22,0x06,0x10,0x16,0x32,0x36,0x10,0x26,0x26,0x01, + 0x77,0x89,0x9c,0xa9,0x01,0x2e,0x9e,0xda,0xd4,0x28, + 0x4f,0x11,0x37,0x59,0x91,0xa7,0x0b,0x08,0x22,0x77, + 0x38,0x64,0x71,0x69,0xca,0x79,0x35,0x60,0x02,0x2f, + 0xf6,0x01,0xab,0xfb,0xfe,0xbf,0xfe,0xd0,0xfe,0x4c, + 0xfe,0x46,0x0e,0x08,0x60,0x18,0x01,0x4f,0x01,0x38, + 0x4d,0x55,0x03,0x3e,0xbd,0xfe,0x97,0xbc,0xa9,0x01, + 0x0b,0xc7,0x67,0x00,0x00,0x00,0x00,0x02,0x00,0x85, + 0xff,0xf0,0x01,0x21,0x04,0x3f,0x00,0x06,0x00,0x0d, + 0x00,0x00,0x12,0x32,0x15,0x14,0x06,0x23,0x22,0x10, + 0x32,0x15,0x14,0x06,0x23,0x22,0x85,0x9c,0x2b,0x23, + 0x4e,0x9c,0x2b,0x23,0x4e,0x04,0x3f,0x6a,0x36,0x35, + 0xfd,0x5b,0x6b,0x36,0x34,0x00,0x00,0x00,0x00,0x02, + 0x00,0x4e,0xfe,0xf8,0x01,0x33,0x04,0x3f,0x00,0x06, + 0x00,0x0d,0x00,0x00,0x12,0x32,0x15,0x14,0x06,0x23, + 0x22,0x13,0x17,0x06,0x07,0x23,0x36,0x37,0x85,0x9c, + 0x2b,0x23,0x4e,0xa0,0x0e,0x43,0x63,0x3f,0x4a,0x1a, + 0x04,0x3f,0x6a,0x36,0x35,0xfd,0x63,0x17,0xe5,0xd9, + 0xfc,0xd9,0x00,0x00,0x00,0x01,0x00,0x3b,0x01,0x1f, + 0x02,0xfa,0x04,0x85,0x00,0x06,0x00,0x00,0x09,0x02, + 0x15,0x01,0x35,0x01,0x02,0xfa,0xfd,0xa8,0x02,0x58, + 0xfd,0x41,0x02,0xbf,0x04,0x21,0xfe,0xb2,0xfe,0xb2, + 0x66,0x01,0x93,0x44,0x01,0x8f,0x00,0x00,0x00,0x02, + 0x00,0x3b,0x01,0xd1,0x02,0xf8,0x03,0xd1,0x00,0x03, + 0x00,0x07,0x00,0x00,0x01,0x21,0x35,0x21,0x11,0x21, + 0x35,0x21,0x02,0xf8,0xfd,0x43,0x02,0xbd,0xfd,0x43, + 0x02,0xbd,0x03,0x7f,0x52,0xfe,0x00,0x52,0x00,0x01, + 0x00,0x39,0x01,0x1f,0x02,0xf8,0x04,0x85,0x00,0x06, + 0x00,0x00,0x01,0x15,0x01,0x35,0x01,0x01,0x35,0x02, + 0xf8,0xfd,0x41,0x02,0x58,0xfd,0xa8,0x02,0xf6,0x44, + 0xfe,0x6d,0x66,0x01,0x4e,0x01,0x4e,0x64,0x00,0x02, + 0x00,0x23,0xff,0xf0,0x02,0x12,0x05,0xcb,0x00,0x19, + 0x00,0x20,0x00,0x00,0x13,0x36,0x32,0x16,0x15,0x14, + 0x06,0x07,0x06,0x06,0x15,0x15,0x23,0x35,0x34,0x36, + 0x37,0x36,0x37,0x36,0x34,0x26,0x23,0x22,0x06,0x07, + 0x13,0x22,0x34,0x32,0x15,0x14,0x06,0x23,0x64,0xff, + 0x8c,0x40,0x5f,0x3c,0x2f,0x4a,0x2a,0x39,0x59,0x19, + 0x1b,0x5a,0x50,0x35,0x4f,0x2e,0x97,0x4d,0x9b,0x2b, + 0x05,0x81,0x4a,0xa6,0x9e,0x7a,0xa5,0x8f,0x5b,0x87, + 0x64,0x24,0x33,0x70,0x97,0x55,0x86,0x4f,0x4f,0xd2, + 0x7d,0x1d,0x1f,0xfa,0xbb,0xd5,0x6b,0x36,0x34,0x00, + 0x00,0x00,0x00,0x02,0x00,0x6f,0xff,0x4c,0x04,0x6a, + 0x05,0xc1,0x00,0x3a,0x00,0x45,0x00,0x00,0x05,0x22, + 0x02,0x11,0x34,0x35,0x10,0x12,0x36,0x33,0x32,0x33, + 0x32,0x16,0x12,0x15,0x10,0x23,0x22,0x26,0x27,0x23, + 0x06,0x06,0x23,0x22,0x26,0x35,0x10,0x21,0x32,0x17, + 0x03,0x15,0x14,0x33,0x32,0x36,0x35,0x34,0x35,0x34, + 0x02,0x26,0x23,0x22,0x23,0x22,0x06,0x02,0x15,0x10, + 0x12,0x33,0x32,0x36,0x37,0x15,0x06,0x03,0x22,0x06, + 0x15,0x10,0x33,0x32,0x36,0x37,0x13,0x26,0x02,0x48, + 0xe6,0xf3,0x85,0xf6,0x9f,0x03,0x03,0x89,0xdd,0x75, + 0xe1,0x51,0x4a,0x02,0x09,0x11,0x4a,0x42,0x58,0x61, + 0x01,0x06,0x56,0x4e,0x14,0x66,0x43,0x3c,0x5f,0xac, + 0x6b,0x02,0x03,0x85,0xce,0x6f,0xce,0xb5,0x43,0x78, + 0x26,0x64,0x42,0x4b,0x4e,0x68,0x2d,0x33,0x09,0x10, + 0x1d,0xb4,0x01,0x85,0x01,0x73,0x08,0x07,0x01,0x05, + 0x01,0x92,0xd7,0xbb,0xfe,0xaf,0xd6,0xfe,0x08,0x68, + 0x67,0x6d,0x62,0xbb,0xaa,0x01,0xd9,0x1d,0xfe,0x23, + 0x3d,0xa8,0xc9,0xd6,0x04,0x04,0xb6,0x01,0x25,0xa0, + 0xc6,0xfe,0x9b,0xe9,0xfe,0xb9,0xfe,0x95,0x26,0x1f, + 0x5e,0x3d,0x04,0x87,0xc9,0xc2,0xfe,0xfe,0xa6,0xae, + 0x01,0x31,0x08,0x00,0x00,0x00,0x00,0x02,0x00,0x00, + 0x00,0x00,0x03,0x2d,0x05,0xb6,0x00,0x07,0x00,0x0e, + 0x00,0x00,0x21,0x23,0x03,0x21,0x03,0x23,0x01,0x33, + 0x13,0x03,0x26,0x27,0x06,0x07,0x03,0x03,0x2d,0x64, + 0x81,0xfe,0x9d,0x7f,0x66,0x01,0x60,0x65,0x6c,0x81, + 0x16,0x09,0x09,0x13,0x7d,0x02,0x12,0xfd,0xee,0x05, + 0xb6,0xfc,0xbf,0x02,0x21,0x67,0x47,0x5b,0x53,0xfd, + 0xdf,0x00,0x00,0x00,0x00,0x03,0x00,0xa0,0x00,0x00, + 0x03,0x3b,0x05,0xb6,0x00,0x0e,0x00,0x17,0x00,0x1f, + 0x00,0x00,0x13,0x21,0x32,0x16,0x15,0x10,0x07,0x15, + 0x16,0x16,0x15,0x14,0x06,0x23,0x21,0x13,0x11,0x33, + 0x32,0x36,0x35,0x34,0x26,0x23,0x03,0x11,0x33,0x32, + 0x11,0x34,0x26,0x23,0xa0,0x01,0x18,0xad,0xb8,0xd9, + 0x7e,0x79,0xae,0x9d,0xfe,0xb0,0x62,0xb8,0x87,0x77, + 0x82,0x7e,0xb6,0xe1,0xf2,0x8d,0x81,0x05,0xb6,0xb1, + 0xab,0xfe,0xd7,0x2b,0x08,0x1a,0xab,0x99,0xc4,0xdc, + 0x05,0x5c,0xfd,0xcf,0x94,0x9d,0x7c,0x84,0xfd,0x75, + 0xfd,0x89,0x01,0x48,0x92,0x9d,0x00,0x00,0x00,0x01, + 0x00,0x6f,0xff,0xec,0x03,0x29,0x05,0xcd,0x00,0x1d, + 0x00,0x00,0x05,0x22,0x02,0x11,0x34,0x35,0x10,0x12, + 0x33,0x32,0x17,0x07,0x26,0x23,0x22,0x02,0x11,0x14, + 0x15,0x10,0x12,0x33,0x32,0x33,0x32,0x37,0x15,0x06, + 0x23,0x22,0x02,0x37,0xce,0xfa,0xf9,0xd7,0x85,0x65, + 0x2d,0x54,0x6b,0xa6,0xc2,0xc8,0xa4,0x02,0x03,0x70, + 0x54,0x4e,0x7f,0x03,0x14,0x01,0x94,0x01,0x54,0x06, + 0x05,0x01,0x5f,0x01,0x8f,0x3e,0x56,0x36,0xfe,0xa4, + 0xfe,0xca,0x06,0x05,0xfe,0xdc,0xfe,0x9c,0x29,0x5a, + 0x2d,0x00,0x00,0x00,0x00,0x02,0x00,0xa0,0x00,0x00, + 0x03,0x75,0x05,0xb6,0x00,0x07,0x00,0x0f,0x00,0x00, + 0x13,0x21,0x32,0x12,0x11,0x10,0x21,0x21,0x13,0x11, + 0x33,0x20,0x11,0x10,0x02,0x23,0xa0,0x01,0x0a,0xe2, + 0xe9,0xfe,0x2f,0xfe,0xfc,0x62,0x9c,0x01,0x70,0xb7, + 0xb1,0x05,0xb6,0xfe,0x93,0xfe,0xa0,0xfd,0x17,0x05, + 0x5c,0xfa,0xfe,0x02,0x89,0x01,0x36,0x01,0x43,0x00, + 0x00,0x00,0x00,0x01,0x00,0xa0,0x00,0x00,0x02,0xb2, + 0x05,0xb6,0x00,0x0b,0x00,0x00,0x01,0x21,0x11,0x21, + 0x15,0x21,0x11,0x21,0x15,0x21,0x11,0x21,0x02,0xb2, + 0xfe,0x50,0x01,0x98,0xfe,0x68,0x01,0xb0,0xfd,0xee, + 0x02,0x12,0x05,0x58,0xfd,0xd5,0x5e,0xfd,0x8f,0x5e, + 0x05,0xb6,0x00,0x00,0x00,0x01,0x00,0xa0,0x00,0x00, + 0x02,0xb4,0x05,0xb6,0x00,0x09,0x00,0x00,0x01,0x21, + 0x11,0x21,0x15,0x21,0x11,0x23,0x11,0x21,0x02,0xb4, + 0xfe,0x4e,0x01,0x9a,0xfe,0x66,0x62,0x02,0x14,0x05, + 0x58,0xfd,0x94,0x5f,0xfd,0x73,0x05,0xb6,0x00,0x01, + 0x00,0x6f,0xff,0xec,0x03,0xc1,0x05,0xcb,0x00,0x17, + 0x00,0x00,0x01,0x11,0x06,0x23,0x22,0x00,0x10,0x00, + 0x33,0x32,0x17,0x07,0x26,0x23,0x22,0x02,0x10,0x12, + 0x33,0x32,0x37,0x11,0x23,0x35,0x03,0xc1,0xa8,0xb3, + 0xef,0xfe,0xf8,0x01,0x10,0xf8,0xa7,0x92,0x2f,0x89, + 0x81,0xcc,0xd4,0xd4,0xc4,0x8d,0x62,0xdd,0x02,0xe1, + 0xfd,0x4c,0x41,0x01,0x90,0x02,0xc7,0x01,0x88,0x5e, + 0x56,0x58,0xfe,0xb0,0xfd,0x83,0xfe,0xa8,0x25,0x02, + 0x14,0x5e,0x00,0x01,0x00,0xa0,0x00,0x00,0x03,0x62, + 0x05,0xb6,0x00,0x0b,0x00,0x00,0x21,0x23,0x11,0x21, + 0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x33,0x03,0x62, + 0x62,0xfe,0x02,0x62,0x62,0x01,0xfe,0x62,0x02,0xcf, + 0xfd,0x31,0x05,0xb6,0xfd,0x77,0x02,0x89,0x00,0x00, + 0x00,0x01,0x00,0xa0,0x00,0x00,0x01,0x02,0x05,0xb6, + 0x00,0x03,0x00,0x00,0x21,0x23,0x11,0x33,0x01,0x02, + 0x62,0x62,0x05,0xb6,0x00,0x01,0xff,0xa6,0xfe,0x8f, + 0x00,0xf8,0x05,0xb6,0x00,0x0c,0x00,0x00,0x13,0x11, + 0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x32,0x36,0x35, + 0x11,0xf8,0x70,0x6d,0x44,0x31,0x33,0x80,0x3d,0x05, + 0xb6,0xfa,0x33,0xab,0xaf,0x19,0x5c,0x14,0x75,0x82, + 0x05,0xcf,0x00,0x01,0x00,0xa0,0x00,0x00,0x03,0x39, + 0x05,0xb6,0x00,0x0c,0x00,0x00,0x21,0x23,0x11,0x33, + 0x11,0x36,0x01,0x33,0x01,0x01,0x23,0x01,0x07,0x01, + 0x02,0x62,0x62,0x33,0x01,0x7d,0x6b,0xfe,0x91,0x01, + 0x8b,0x6e,0xfe,0xa8,0x71,0x05,0xb6,0xfc,0xfa,0x60, + 0x02,0xa6,0xfd,0x7d,0xfc,0xcd,0x02,0xd9,0x95,0x00, + 0x00,0x00,0x00,0x01,0x00,0xa0,0x00,0x00,0x02,0x9e, + 0x05,0xb6,0x00,0x05,0x00,0x00,0x25,0x21,0x15,0x21, + 0x11,0x33,0x01,0x02,0x01,0x9c,0xfe,0x02,0x62,0x5e, + 0x5e,0x05,0xb6,0x00,0x00,0x01,0x00,0xa0,0x00,0x00, + 0x04,0xd3,0x05,0xb6,0x00,0x17,0x00,0x00,0x21,0x23, + 0x11,0x34,0x37,0x23,0x01,0x23,0x01,0x23,0x16,0x15, + 0x11,0x23,0x11,0x33,0x01,0x16,0x17,0x33,0x36,0x37, + 0x01,0x33,0x04,0xd3,0x62,0x0a,0x08,0xfe,0x7d,0x6f, + 0xfe,0x7b,0x08,0x0a,0x5e,0x91,0x01,0x48,0x2b,0x0e, + 0x08,0x0c,0x32,0x01,0x45,0x96,0x04,0x21,0x48,0xc8, + 0xfa,0xcf,0x05,0x33,0xc8,0x42,0xfb,0xd7,0x05,0xb6, + 0xfb,0xa2,0x94,0x68,0x52,0xa8,0x04,0x60,0x00,0x01, + 0x00,0xa0,0x00,0x00,0x03,0xa2,0x05,0xb6,0x00,0x0f, + 0x00,0x00,0x21,0x23,0x01,0x23,0x16,0x15,0x11,0x23, + 0x11,0x33,0x01,0x33,0x26,0x35,0x11,0x33,0x03,0xa2, + 0x7d,0xfd,0xd7,0x08,0x0c,0x60,0x7f,0x02,0x25,0x06, + 0x08,0x60,0x05,0x1f,0x89,0x7d,0xfb,0xe7,0x05,0xb6, + 0xfa,0xf0,0xae,0x64,0x03,0xfe,0x00,0x00,0x00,0x02, + 0x00,0x6f,0xff,0xec,0x03,0xba,0x05,0xcb,0x00,0x09, + 0x00,0x11,0x00,0x00,0x01,0x32,0x17,0x16,0x10,0x02, + 0x20,0x02,0x11,0x10,0x00,0x02,0x20,0x02,0x10,0x12, + 0x20,0x12,0x02,0x17,0xcd,0x6a,0x6c,0xd9,0xfe,0x63, + 0xd5,0x02,0xe5,0xa0,0xfe,0xc3,0xa2,0xa3,0x01,0x3a, + 0xa2,0x05,0xcb,0xc3,0xc2,0xfd,0x2b,0xfe,0x7b,0x01, + 0x89,0x01,0x6a,0x02,0xec,0xfe,0x57,0x01,0x4b,0xfe, + 0xb3,0xfd,0x78,0xfe,0xb2,0x01,0x4b,0x00,0x00,0x02, + 0x00,0xa0,0x00,0x00,0x03,0x04,0x05,0xb6,0x00,0x09, + 0x00,0x11,0x00,0x00,0x13,0x33,0x32,0x16,0x10,0x06, + 0x23,0x23,0x11,0x23,0x13,0x11,0x33,0x32,0x36,0x10, + 0x26,0x23,0xa0,0xc8,0xd6,0xc6,0xcd,0xcd,0x68,0x62, + 0x62,0x62,0xac,0x90,0x93,0x9e,0x05,0xb6,0xca,0xfe, + 0x46,0xd6,0xfd,0xa4,0x05,0x5c,0xfd,0x5a,0xa2,0x01, + 0x69,0x9b,0x00,0x02,0x00,0x6f,0xfe,0xa4,0x03,0xba, + 0x05,0xcb,0x00,0x0f,0x00,0x17,0x00,0x00,0x13,0x10, + 0x21,0x32,0x17,0x16,0x11,0x10,0x02,0x07,0x13,0x23, + 0x03,0x07,0x22,0x02,0x00,0x02,0x20,0x02,0x10,0x12, + 0x20,0x12,0x6f,0x01,0xa8,0xcd,0x6a,0x6c,0x8d,0x85, + 0xd5,0x7d,0xba,0x32,0xd0,0xd5,0x02,0xe5,0xa0,0xfe, + 0xc3,0xa2,0xa3,0x01,0x3a,0xa2,0x02,0xdf,0x02,0xec, + 0xc3,0xc2,0xfe,0x97,0xfe,0xde,0xfe,0x8d,0x3e,0xfe, + 0x9a,0x01,0x4c,0x04,0x01,0x89,0x02,0xad,0x01,0x4b, + 0xfe,0xb3,0xfd,0x78,0xfe,0xb2,0x01,0x4b,0x00,0x02, + 0x00,0xa0,0x00,0x00,0x03,0x3b,0x05,0xb6,0x00,0x0d, + 0x00,0x15,0x00,0x00,0x13,0x33,0x32,0x16,0x15,0x14, + 0x06,0x07,0x01,0x23,0x01,0x23,0x11,0x23,0x13,0x11, + 0x33,0x32,0x36,0x10,0x26,0x23,0xa0,0xc8,0xd4,0xc8, + 0x6f,0x7c,0x01,0x22,0x6e,0xfe,0xef,0xba,0x62,0x62, + 0x89,0x86,0x8f,0x92,0x9f,0x05,0xb6,0xc8,0xcb,0x9c, + 0xc1,0x30,0xfd,0x6a,0x02,0x7f,0xfd,0x81,0x05,0x56, + 0xfd,0x83,0xa5,0x01,0x45,0x93,0x00,0x00,0x00,0x01, + 0x00,0x56,0xff,0xec,0x02,0xd1,0x05,0xcb,0x00,0x25, + 0x00,0x00,0x25,0x32,0x36,0x34,0x26,0x27,0x2e,0x02, + 0x35,0x34,0x35,0x34,0x36,0x33,0x32,0x33,0x32,0x17, + 0x07,0x26,0x22,0x06,0x14,0x16,0x17,0x16,0x16,0x15, + 0x14,0x07,0x06,0x23,0x22,0x27,0x35,0x16,0x16,0x01, + 0x6f,0x70,0x90,0x67,0x8f,0x72,0x6f,0x36,0xc3,0x8c, + 0x02,0x03,0x9a,0x6e,0x26,0x6f,0xdf,0x87,0x63,0x8e, + 0x94,0x89,0x64,0x65,0x99,0xaf,0x6a,0x38,0x98,0x4a, + 0xaa,0xfc,0x8f,0x46,0x3a,0x6a,0x8d,0x64,0x06,0x06, + 0x97,0xce,0x3c,0x5e,0x39,0x93,0xf5,0x86,0x4a,0x48, + 0xc1,0x8a,0xb4,0x70,0x6f,0x33,0x6a,0x1e,0x21,0x00, + 0x00,0x01,0x00,0x0e,0x00,0x00,0x02,0xb6,0x05,0xb6, + 0x00,0x07,0x00,0x00,0x01,0x21,0x11,0x23,0x11,0x21, + 0x35,0x21,0x02,0xb6,0xfe,0xdd,0x62,0xfe,0xdd,0x02, + 0xa8,0x05,0x58,0xfa,0xa8,0x05,0x58,0x5e,0x00,0x00, + 0x00,0x01,0x00,0x93,0xff,0xec,0x03,0x60,0x05,0xb6, + 0x00,0x0f,0x00,0x00,0x01,0x11,0x10,0x21,0x22,0x26, + 0x35,0x11,0x33,0x11,0x14,0x16,0x32,0x36,0x35,0x11, + 0x03,0x60,0xfe,0x9e,0xb1,0xba,0x63,0x89,0xfd,0x82, + 0x05,0xb6,0xfc,0x25,0xfe,0x11,0xff,0xf0,0x03,0xdb, + 0xfc,0x19,0xbd,0xc8,0xc7,0xc2,0x03,0xe3,0x00,0x00, + 0x00,0x01,0x00,0x00,0x00,0x00,0x03,0x1f,0x05,0xb6, + 0x00,0x0b,0x00,0x00,0x21,0x23,0x01,0x33,0x13,0x16, + 0x16,0x17,0x36,0x37,0x01,0x33,0x01,0xc5,0x6d,0xfe, + 0xa8,0x66,0xee,0x1b,0x13,0x09,0x15,0x0d,0x01,0x0d, + 0x65,0x05,0xb6,0xfb,0xfc,0x70,0x76,0x53,0x95,0x3b, + 0x04,0x6d,0x00,0x01,0x00,0x0a,0x00,0x00,0x05,0x68, + 0x05,0xb6,0x00,0x18,0x00,0x00,0x21,0x23,0x03,0x26, + 0x27,0x07,0x03,0x23,0x01,0x33,0x13,0x16,0x17,0x36, + 0x37,0x13,0x33,0x13,0x16,0x17,0x17,0x36,0x37,0x13, + 0x33,0x04,0x31,0x77,0xdf,0x07,0x1c,0x25,0xdb,0x74, + 0xfe,0xc6,0x67,0xce,0x31,0x0d,0x16,0x23,0xcd,0x6f, + 0xcc,0x22,0x0c,0x0a,0x1c,0x1d,0xd5,0x64,0x04,0x46, + 0x20,0xcf,0xed,0xfb,0xb8,0x05,0xb6,0xfc,0x11,0xfe, + 0x5a,0x9f,0xb5,0x03,0xf3,0xfc,0x11,0xb3,0x5b,0x4a, + 0xd1,0x87,0x03,0xef,0x00,0x01,0x00,0x14,0x00,0x00, + 0x02,0xb6,0x05,0xb6,0x00,0x0b,0x00,0x00,0x01,0x01, + 0x23,0x03,0x03,0x23,0x01,0x01,0x33,0x13,0x13,0x33, + 0x01,0xb4,0x01,0x02,0x66,0xdb,0xfe,0x63,0x01,0x32, + 0xfe,0xf9,0x67,0xd9,0xd3,0x64,0x02,0xf2,0xfd,0x0e, + 0x02,0xa0,0xfd,0x60,0x03,0x08,0x02,0xae,0xfd,0xa0, + 0x02,0x60,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00, + 0x02,0xae,0x05,0xb6,0x00,0x08,0x00,0x00,0x21,0x23, + 0x11,0x01,0x33,0x13,0x13,0x33,0x01,0x01,0x87,0x62, + 0xfe,0xdb,0x68,0xf0,0xee,0x68,0xfe,0xd9,0x02,0x3b, + 0x03,0x7b,0xfd,0x0d,0x02,0xf3,0xfc,0x85,0x00,0x01, + 0x00,0x39,0x00,0x00,0x02,0x5a,0x05,0xb6,0x00,0x09, + 0x00,0x00,0x25,0x15,0x21,0x35,0x01,0x21,0x35,0x21, + 0x15,0x01,0x02,0x5a,0xfd,0xdf,0x01,0xa8,0xfe,0x5e, + 0x02,0x0f,0xfe,0x52,0x5e,0x5e,0x58,0x04,0xfe,0x60, + 0x5a,0xfb,0x02,0x00,0x00,0x00,0x00,0x01,0x00,0xae, + 0xfe,0xbc,0x02,0x3b,0x05,0xb6,0x00,0x07,0x00,0x00, + 0x01,0x21,0x11,0x21,0x15,0x21,0x11,0x21,0x02,0x3b, + 0xfe,0xd1,0x01,0x2f,0xfe,0x73,0x01,0x8d,0x05,0x5c, + 0xf9,0xbb,0x5b,0x06,0xfa,0x00,0x00,0x01,0x00,0x33, + 0x00,0x00,0x02,0xa2,0x05,0xb6,0x00,0x03,0x00,0x00, + 0x21,0x23,0x01,0x33,0x02,0xa2,0x65,0xfd,0xf6,0x60, + 0x05,0xb6,0x00,0x00,0x00,0x01,0x00,0x4a,0xfe,0xbc, + 0x01,0xd7,0x05,0xb6,0x00,0x07,0x00,0x00,0x01,0x21, + 0x35,0x21,0x11,0x21,0x35,0x21,0x01,0xd7,0xfe,0x73, + 0x01,0x2f,0xfe,0xd1,0x01,0x8d,0xfe,0xbc,0x5b,0x06, + 0x45,0x5a,0x00,0x00,0x00,0x01,0x00,0x25,0x02,0xf6, + 0x03,0x0e,0x05,0xb4,0x00,0x06,0x00,0x00,0x01,0x23, + 0x01,0x01,0x23,0x01,0x33,0x03,0x0e,0x66,0xfe,0xf2, + 0xfe,0xef,0x64,0x01,0x52,0x43,0x02,0xf6,0x02,0x4e, + 0xfd,0xb2,0x02,0xbe,0x00,0x01,0xff,0xfc,0xfe,0xf6, + 0x03,0x4e,0xff,0x48,0x00,0x03,0x00,0x00,0x01,0x21, + 0x35,0x21,0x03,0x4e,0xfc,0xae,0x03,0x52,0xfe,0xf6, + 0x52,0x00,0x00,0x01,0x01,0xb2,0x04,0xd9,0x02,0xee, + 0x06,0x21,0x00,0x09,0x00,0x00,0x01,0x33,0x16,0x16, + 0x17,0x15,0x23,0x26,0x26,0x27,0x01,0xb2,0x7d,0x1d, + 0x6a,0x38,0x30,0x3f,0xa8,0x25,0x06,0x21,0x43,0xaa, + 0x46,0x15,0x33,0xbf,0x45,0x00,0x00,0x02,0x00,0x4e, + 0xff,0xec,0x02,0x83,0x04,0x52,0x00,0x16,0x00,0x20, + 0x00,0x00,0x13,0x36,0x20,0x16,0x15,0x11,0x23,0x27, + 0x23,0x06,0x23,0x22,0x27,0x26,0x10,0x36,0x37,0x37, + 0x35,0x34,0x26,0x22,0x07,0x03,0x14,0x16,0x33,0x32, + 0x36,0x35,0x35,0x07,0x04,0x9a,0x70,0x01,0x04,0x75, + 0x4e,0x0c,0x04,0x4e,0x9e,0x6b,0x40,0x40,0xba,0xa8, + 0x75,0x4d,0xb4,0x61,0x11,0x52,0x4a,0x66,0x71,0x71, + 0xfe,0xfe,0x04,0x0c,0x46,0xaa,0xc5,0xfd,0x1d,0x98, + 0xac,0x54,0x55,0x01,0x29,0xb5,0x08,0x06,0x5a,0x99, + 0x8a,0x3d,0xfd,0x60,0x73,0x71,0xca,0xb7,0x71,0x06, + 0x0d,0x00,0x00,0x00,0x00,0x02,0x00,0x91,0xff,0xec, + 0x03,0x1f,0x06,0x14,0x00,0x11,0x00,0x1b,0x00,0x00, + 0x01,0x20,0x11,0x10,0x02,0x23,0x22,0x26,0x27,0x23, + 0x07,0x23,0x11,0x33,0x11,0x07,0x33,0x36,0x03,0x15, + 0x10,0x33,0x32,0x36,0x10,0x26,0x22,0x06,0x01,0xe1, + 0x01,0x3e,0x9e,0x95,0x4f,0x7f,0x2a,0x08,0x0d,0x4e, + 0x5f,0x04,0x08,0x56,0x5a,0xf1,0x6f,0x6c,0x6b,0xf1, + 0x70,0x04,0x50,0xfd,0xd1,0xfe,0xec,0xfe,0xdf,0x57, + 0x53,0x96,0x06,0x14,0xfe,0x1d,0x83,0xa2,0xfd,0xd1, + 0x19,0xfe,0x3a,0xeb,0x01,0xe2,0xe9,0xdc,0x00,0x00, + 0x00,0x01,0x00,0x60,0xff,0xec,0x02,0x52,0x04,0x52, + 0x00,0x12,0x00,0x00,0x05,0x22,0x02,0x10,0x12,0x33, + 0x32,0x17,0x07,0x26,0x23,0x22,0x10,0x33,0x32,0x37, + 0x15,0x06,0x06,0x01,0xa8,0xa2,0xa6,0xa8,0xa2,0x65, + 0x43,0x25,0x42,0x39,0xef,0xef,0x46,0x54,0x1f,0x60, + 0x14,0x01,0x1b,0x02,0x29,0x01,0x22,0x25,0x54,0x1f, + 0xfc,0x4a,0x20,0x50,0x11,0x15,0x00,0x00,0x00,0x02, + 0x00,0x5e,0xff,0xec,0x02,0xec,0x06,0x14,0x00,0x11, + 0x00,0x1b,0x00,0x00,0x21,0x23,0x27,0x23,0x06,0x23, + 0x20,0x11,0x10,0x12,0x33,0x32,0x16,0x17,0x33,0x27, + 0x11,0x33,0x03,0x35,0x34,0x26,0x22,0x06,0x10,0x16, + 0x32,0x36,0x02,0xec,0x4e,0x08,0x09,0x51,0xa2,0xfe, + 0xc4,0x9f,0x99,0x49,0x83,0x27,0x08,0x04,0x5f,0x5f, + 0x76,0xed,0x69,0x6c,0xe6,0x7a,0x98,0xac,0x02,0x31, + 0x01,0x15,0x01,0x20,0x54,0x4a,0x79,0x01,0xe7,0xfb, + 0xcb,0x3e,0xf5,0xe6,0xef,0xfe,0x24,0xee,0xd4,0x00, + 0x00,0x02,0x00,0x60,0xff,0xec,0x02,0xc3,0x04,0x52, + 0x00,0x11,0x00,0x17,0x00,0x00,0x05,0x22,0x27,0x26, + 0x10,0x12,0x33,0x32,0x12,0x15,0x15,0x21,0x12,0x21, + 0x32,0x37,0x15,0x06,0x13,0x34,0x26,0x23,0x22,0x03, + 0x01,0xc5,0xac,0x5d,0x5c,0xa5,0x9b,0x87,0x9c,0xfd, + 0xfe,0x04,0x01,0x04,0x67,0x70,0x68,0x2c,0x6d,0x5d, + 0xc4,0x13,0x14,0x92,0x94,0x02,0x1b,0x01,0x25,0xff, + 0x00,0xdb,0x58,0xfe,0x27,0x43,0x5c,0x41,0x02,0x89, + 0xb3,0xd4,0xfe,0x79,0x00,0x01,0x00,0x14,0x00,0x00, + 0x01,0xf8,0x06,0x1f,0x00,0x15,0x00,0x00,0x13,0x34, + 0x36,0x33,0x32,0x17,0x07,0x26,0x23,0x06,0x06,0x07, + 0x15,0x33,0x15,0x23,0x11,0x23,0x11,0x23,0x35,0x37, + 0x9e,0x62,0x79,0x47,0x38,0x21,0x33,0x2d,0x48,0x31, + 0x02,0xaa,0xaa,0x5e,0x8a,0x8a,0x04,0x9a,0xcf,0xb6, + 0x19,0x58,0x19,0x03,0x7d,0xaf,0x5b,0x54,0xfc,0x17, + 0x03,0xe9,0x36,0x29,0x00,0x00,0x00,0x03,0x00,0x23, + 0xfe,0x14,0x02,0xdb,0x04,0x52,0x00,0x28,0x00,0x31, + 0x00,0x3d,0x00,0x00,0x25,0x33,0x32,0x16,0x15,0x14, + 0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x26,0x35,0x34, + 0x36,0x37,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x17, + 0x33,0x15,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x23, + 0x27,0x06,0x06,0x14,0x16,0x12,0x26,0x22,0x06,0x10, + 0x16,0x33,0x32,0x11,0x03,0x23,0x22,0x06,0x14,0x16, + 0x33,0x32,0x36,0x35,0x34,0x26,0x01,0x66,0x44,0x92, + 0x9f,0xd7,0xb0,0x93,0x9e,0xd7,0x6f,0x3c,0x41,0x52, + 0x56,0x92,0x7f,0x43,0x2f,0xe6,0x94,0x1d,0x27,0x8f, + 0x75,0x18,0x15,0x34,0x33,0x48,0xf4,0x5a,0xab,0x5c, + 0x60,0x53,0xae,0x73,0x46,0x62,0x81,0x6d,0x6a,0x87, + 0x9c,0x6b,0x91,0x97,0x8d,0x9f,0xba,0x95,0x8c,0xd0, + 0x51,0x30,0x6a,0x2e,0x4c,0x30,0x26,0xa8,0x75,0xad, + 0xc8,0x15,0x43,0x11,0x26,0x90,0x4e,0x9f,0xc3,0x02, + 0x25,0x43,0x58,0x34,0x02,0xdc,0x97,0x9b,0xfe,0xf0, + 0x8c,0x01,0x18,0xfd,0x50,0x88,0xd9,0x72,0x8c,0x7a, + 0x63,0x6a,0x00,0x01,0x00,0x91,0x00,0x00,0x02,0xd9, + 0x06,0x14,0x00,0x17,0x00,0x00,0x13,0x11,0x14,0x07, + 0x33,0x36,0x37,0x36,0x33,0x32,0x16,0x15,0x11,0x23, + 0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x23,0x11, + 0xf0,0x04,0x08,0x20,0x40,0x40,0x47,0x87,0x77,0x5e, + 0x4c,0x58,0x74,0x73,0x5f,0x06,0x14,0xfe,0x07,0x4a, + 0x29,0x52,0x2b,0x2d,0xb0,0xb6,0xfd,0x14,0x02,0xec, + 0x92,0x7c,0xcf,0xd9,0xfd,0xae,0x06,0x14,0x00,0x02, + 0x00,0x83,0x00,0x00,0x01,0x00,0x05,0xc9,0x00,0x07, + 0x00,0x0b,0x00,0x00,0x12,0x36,0x32,0x16,0x14,0x06, + 0x22,0x26,0x13,0x23,0x11,0x33,0x83,0x24,0x39,0x20, + 0x20,0x38,0x25,0x6d,0x5f,0x5f,0x05,0x96,0x33,0x32, + 0x58,0x33,0x34,0xfa,0xc0,0x04,0x3d,0x00,0x00,0x00, + 0x00,0x02,0xff,0xfc,0xfe,0x14,0x01,0x00,0x05,0xc9, + 0x00,0x07,0x00,0x15,0x00,0x00,0x12,0x36,0x32,0x16, + 0x14,0x06,0x22,0x26,0x13,0x11,0x14,0x06,0x23,0x22, + 0x27,0x35,0x16,0x33,0x32,0x36,0x35,0x11,0x83,0x24, + 0x39,0x20,0x20,0x38,0x25,0x6d,0x56,0x5b,0x29,0x1a, + 0x1f,0x20,0x2e,0x28,0x05,0x96,0x33,0x32,0x58,0x33, + 0x34,0xfe,0xfd,0xfa,0xfa,0x95,0x8e,0x11,0x5a,0x10, + 0x59,0x61,0x05,0x14,0x00,0x00,0x00,0x01,0x00,0x91, + 0x00,0x00,0x02,0xb8,0x06,0x14,0x00,0x0e,0x00,0x00, + 0x33,0x23,0x11,0x33,0x11,0x07,0x33,0x37,0x01,0x33, + 0x03,0x01,0x23,0x03,0x07,0xf0,0x5f,0x5f,0x07,0x09, + 0x3d,0x01,0x0c,0x67,0xfa,0x01,0x10,0x64,0xec,0x78, + 0x06,0x14,0xfc,0xbb,0xb6,0x6e,0x01,0xb6,0xfe,0x71, + 0xfd,0x52,0x02,0x56,0x9e,0x00,0x00,0x01,0x00,0x91, + 0x00,0x00,0x00,0xf0,0x06,0x14,0x00,0x03,0x00,0x00, + 0x33,0x23,0x11,0x33,0xf0,0x5f,0x5f,0x06,0x14,0x00, + 0x00,0x01,0x00,0x91,0x00,0x00,0x04,0x89,0x04,0x52, + 0x00,0x20,0x00,0x00,0x01,0x32,0x17,0x36,0x36,0x33, + 0x32,0x16,0x15,0x11,0x23,0x11,0x10,0x23,0x22,0x06, + 0x15,0x11,0x23,0x11,0x34,0x26,0x23,0x22,0x06,0x15, + 0x11,0x23,0x11,0x33,0x17,0x33,0x36,0x01,0xcf,0xaa, + 0x2f,0x27,0x72,0x5b,0x7b,0x72,0x5e,0xa0,0x6c,0x63, + 0x5e,0x4e,0x52,0x6b,0x63,0x5f,0x50,0x08,0x09,0x40, + 0x04,0x52,0xbc,0x64,0x58,0xbe,0xcf,0xfd,0x3b,0x02, + 0xe3,0x01,0x11,0xbb,0xbe,0xfd,0x85,0x02,0xe3,0x8a, + 0x87,0xc3,0xdd,0xfd,0xac,0x04,0x3d,0x97,0xac,0x00, + 0x00,0x01,0x00,0x91,0x00,0x00,0x02,0xd9,0x04,0x52, + 0x00,0x13,0x00,0x00,0x01,0x32,0x16,0x15,0x11,0x23, + 0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33, + 0x17,0x33,0x36,0x36,0x01,0xdd,0x80,0x7c,0x5e,0xa0, + 0x7a,0x71,0x5f,0x50,0x08,0x09,0x21,0x80,0x04,0x52, + 0xab,0xb9,0xfd,0x12,0x02,0xec,0x01,0x0e,0xca,0xdc, + 0xfd,0xac,0x04,0x3d,0x97,0x50,0x5c,0x00,0x00,0x02, + 0x00,0x5e,0xff,0xec,0x02,0xf4,0x04,0x52,0x00,0x08, + 0x00,0x10,0x00,0x00,0x01,0x32,0x12,0x10,0x02,0x20, + 0x02,0x11,0x10,0x05,0x22,0x06,0x15,0x10,0x33,0x32, + 0x10,0x01,0xaa,0x9c,0xae,0xad,0xfe,0xc0,0xa9,0x01, + 0x4a,0x78,0x6f,0xe7,0xe9,0x04,0x52,0xfe,0xda,0xfd, + 0xe3,0xfe,0xdd,0x01,0x23,0x01,0x12,0x02,0x31,0x5a, + 0xe9,0xee,0xfe,0x25,0x03,0xb2,0x00,0x02,0x00,0x91, + 0xfe,0x14,0x03,0x1f,0x04,0x52,0x00,0x12,0x00,0x1c, + 0x00,0x00,0x01,0x20,0x11,0x10,0x02,0x23,0x22,0x26, + 0x27,0x23,0x17,0x11,0x23,0x11,0x33,0x17,0x33,0x36, + 0x36,0x03,0x15,0x14,0x16,0x32,0x36,0x10,0x26,0x22, + 0x06,0x01,0xe1,0x01,0x3e,0x9d,0x94,0x52,0x87,0x23, + 0x09,0x07,0x5f,0x4e,0x0a,0x09,0x28,0x7d,0xa7,0x76, + 0xe9,0x6d,0x69,0xf0,0x73,0x04,0x52,0xfd,0xcf,0xfe, + 0xf0,0xfe,0xdb,0x5b,0x4f,0x77,0xfd,0xf5,0x06,0x29, + 0x95,0x52,0x58,0xfd,0xf4,0x1f,0xf9,0xec,0xea,0x01, + 0xe6,0xe6,0xd3,0x00,0x00,0x00,0x00,0x02,0x00,0x5e, + 0xfe,0x14,0x02,0xec,0x04,0x52,0x00,0x10,0x00,0x1a, + 0x00,0x00,0x25,0x06,0x23,0x20,0x11,0x10,0x12,0x20, + 0x17,0x33,0x37,0x33,0x11,0x23,0x11,0x34,0x37,0x03, + 0x35,0x34,0x26,0x22,0x06,0x10,0x16,0x32,0x36,0x02, + 0x8d,0x55,0x9e,0xfe,0xc4,0xa5,0x01,0x34,0x52,0x08, + 0x0f,0x4c,0x5f,0x09,0x09,0x76,0xed,0x69,0x6d,0xe6, + 0x79,0x9e,0xb2,0x02,0x31,0x01,0x1a,0x01,0x1b,0xa6, + 0x91,0xf9,0xd7,0x01,0xd5,0x43,0x72,0x01,0x4e,0x31, + 0xf5,0xe6,0xef,0xfe,0x1a,0xe1,0xda,0x00,0x00,0x01, + 0x00,0x91,0x00,0x00,0x02,0x1d,0x04,0x52,0x00,0x14, + 0x00,0x00,0x01,0x32,0x17,0x07,0x26,0x23,0x22,0x23, + 0x22,0x06,0x06,0x15,0x14,0x15,0x11,0x23,0x11,0x33, + 0x17,0x33,0x36,0x01,0xbe,0x32,0x2d,0x17,0x24,0x26, + 0x03,0x02,0x33,0x5d,0x37,0x5f,0x4e,0x0a,0x07,0x4c, + 0x04,0x52,0x0e,0x5f,0x0f,0x71,0xc9,0x73,0x04,0x04, + 0xfd,0xc1,0x04,0x3d,0xbe,0xd3,0x00,0x01,0x00,0x4a, + 0xff,0xec,0x02,0x3d,0x04,0x52,0x00,0x1f,0x00,0x00, + 0x25,0x32,0x36,0x35,0x34,0x2e,0x03,0x35,0x34,0x36, + 0x32,0x17,0x07,0x26,0x22,0x06,0x14,0x17,0x16,0x17, + 0x16,0x17,0x16,0x10,0x06,0x20,0x27,0x35,0x16,0x16, + 0x01,0x29,0x54,0x60,0x47,0xd1,0x4f,0x2c,0x9f,0xfb, + 0x59,0x31,0x52,0xb0,0x64,0x22,0x22,0x6e,0x6b,0x28, + 0x50,0x91,0xfe,0xf1,0x51,0x25,0x7a,0x46,0x6d,0x5d, + 0x47,0x66,0x85,0x52,0x67,0x49,0x75,0x99,0x3e,0x53, + 0x37,0x63,0x99,0x31,0x30,0x45,0x46,0x2a,0x56,0xfe, + 0xf6,0x9a,0x3d,0x6f,0x25,0x2d,0x00,0x01,0x00,0x2b, + 0xff,0xec,0x01,0xa6,0x05,0x3f,0x00,0x14,0x00,0x00, + 0x13,0x33,0x15,0x23,0x11,0x14,0x16,0x33,0x32,0x37, + 0x15,0x06,0x23,0x22,0x35,0x11,0x23,0x35,0x37,0x13, + 0x33,0xec,0xac,0xac,0x30,0x3c,0x2c,0x22,0x2d,0x44, + 0xa8,0x62,0x60,0x1f,0x42,0x04,0x3d,0x54,0xfd,0x19, + 0x6e,0x50,0x0c,0x50,0x14,0xfb,0x03,0x02,0x38,0x1c, + 0x01,0x02,0x00,0x00,0x00,0x01,0x00,0x8d,0xff,0xec, + 0x02,0xd5,0x04,0x3d,0x00,0x15,0x00,0x00,0x21,0x23, + 0x27,0x23,0x06,0x06,0x23,0x22,0x27,0x26,0x35,0x11, + 0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33, + 0x02,0xd5,0x50,0x0c,0x08,0x23,0x7b,0x4a,0x83,0x3d, + 0x3c,0x5f,0x4c,0x51,0x7c,0x72,0x5e,0x98,0x52,0x5a, + 0x5d,0x5d,0xd3,0x02,0xc4,0xfd,0x3c,0xa0,0x95,0xc8, + 0xdd,0x02,0x54,0x00,0x00,0x00,0x00,0x01,0x00,0x0a, + 0x00,0x00,0x02,0x83,0x04,0x3d,0x00,0x0b,0x00,0x00, + 0x21,0x23,0x01,0x33,0x13,0x16,0x17,0x33,0x36,0x36, + 0x13,0x33,0x01,0x7b,0x71,0xff,0x00,0x60,0xa2,0x1c, + 0x1a,0x08,0x09,0x20,0xb0,0x60,0x04,0x3d,0xfd,0x46, + 0x79,0x8f,0x40,0x9a,0x02,0xe8,0x00,0x00,0x00,0x01, + 0x00,0x14,0x00,0x00,0x04,0x50,0x04,0x3d,0x00,0x1a, + 0x00,0x00,0x21,0x23,0x03,0x27,0x27,0x23,0x07,0x07, + 0x03,0x23,0x03,0x33,0x13,0x13,0x33,0x36,0x37,0x13, + 0x33,0x13,0x16,0x13,0x33,0x36,0x36,0x13,0x33,0x03, + 0x5c,0x70,0x96,0x04,0x1f,0x02,0x0e,0x17,0x9b,0x71, + 0xec,0x5f,0x87,0x3f,0x06,0x13,0x27,0x87,0x64,0x88, + 0x10,0x29,0x06,0x02,0x2c,0x99,0x5e,0x02,0xdf,0x11, + 0xc0,0x55,0x7c,0xfd,0x21,0x04,0x3d,0xfd,0x88,0xfe, + 0xb6,0x95,0xb7,0x02,0x76,0xfd,0x88,0x47,0xfe,0xfd, + 0x1b,0xe1,0x02,0xc6,0x00,0x01,0x00,0x23,0x00,0x00, + 0x02,0x81,0x04,0x3d,0x00,0x0b,0x00,0x00,0x01,0x13, + 0x23,0x03,0x03,0x23,0x01,0x03,0x33,0x13,0x13,0x33, + 0x01,0x83,0xfe,0x64,0xcb,0xcd,0x62,0x01,0x02,0xee, + 0x67,0xb6,0xbe,0x63,0x02,0x27,0xfd,0xd9,0x01,0xd5, + 0xfe,0x2b,0x02,0x33,0x02,0x0a,0xfe,0x48,0x01,0xb8, + 0x00,0x01,0xff,0xfe,0xfe,0x14,0x02,0x83,0x04,0x3d, + 0x00,0x16,0x00,0x00,0x13,0x22,0x27,0x35,0x16,0x33, + 0x32,0x36,0x37,0x37,0x01,0x33,0x13,0x16,0x17,0x33, + 0x36,0x37,0x13,0x33,0x01,0x06,0x06,0x54,0x25,0x31, + 0x2a,0x24,0x3b,0x46,0x1c,0x30,0xfe,0xf1,0x60,0xa4, + 0x1e,0x1a,0x08,0x15,0x20,0xa0,0x60,0xfe,0xc3,0x24, + 0x72,0xfe,0x14,0x11,0x56,0x0e,0x65,0x74,0xbc,0x04, + 0x3b,0xfd,0x5b,0x81,0x92,0x8f,0x86,0x02,0xa3,0xfa, + 0xf6,0x93,0x8c,0x00,0x00,0x01,0x00,0x3b,0x00,0x00, + 0x01,0xee,0x04,0x3d,0x00,0x09,0x00,0x00,0x25,0x15, + 0x21,0x35,0x01,0x21,0x35,0x21,0x15,0x01,0x01,0xee, + 0xfe,0x4d,0x01,0x40,0xfe,0xd5,0x01,0x8f,0xfe,0xc1, + 0x54,0x54,0x4c,0x03,0x9d,0x54,0x4d,0xfc,0x64,0x00, + 0x00,0x00,0x00,0x01,0x00,0x6d,0xfe,0xbc,0x02,0x79, + 0x05,0xb6,0x00,0x21,0x00,0x00,0x01,0x11,0x14,0x06, + 0x07,0x15,0x16,0x16,0x15,0x11,0x14,0x16,0x17,0x15, + 0x26,0x26,0x35,0x11,0x34,0x26,0x26,0x23,0x35,0x32, + 0x37,0x36,0x35,0x11,0x34,0x36,0x37,0x15,0x06,0x06, + 0x01,0x9e,0x5b,0x68,0x6a,0x59,0x6b,0x70,0x97,0xa7, + 0x26,0x59,0x4f,0x92,0x28,0x14,0xa8,0x96,0x70,0x6b, + 0x04,0x7b,0xfe,0xc4,0x7a,0x74,0x14,0x08,0x13,0x77, + 0x78,0xfe,0xc5,0x77,0x73,0x02,0x50,0x04,0xa9,0x93, + 0x01,0x43,0x58,0x56,0x2a,0x45,0x52,0x2d,0x58,0x01, + 0x44,0x93,0xa8,0x04,0x50,0x02,0x72,0x00,0x00,0x00, + 0x00,0x01,0x01,0x6a,0xfe,0x14,0x01,0xc9,0x06,0x14, + 0x00,0x03,0x00,0x00,0x01,0x23,0x11,0x33,0x01,0xc9, + 0x5f,0x5f,0xfe,0x14,0x08,0x00,0x00,0x00,0x00,0x01, + 0x00,0x68,0xfe,0xbc,0x02,0x75,0x05,0xb6,0x00,0x22, + 0x00,0x00,0x01,0x11,0x14,0x16,0x17,0x16,0x33,0x15, + 0x22,0x07,0x06,0x15,0x11,0x14,0x06,0x07,0x35,0x36, + 0x36,0x35,0x11,0x34,0x36,0x37,0x35,0x26,0x26,0x35, + 0x11,0x34,0x26,0x27,0x35,0x16,0x16,0x01,0xa6,0x27, + 0x2d,0x2e,0x4d,0x93,0x28,0x14,0xa7,0x97,0x70,0x6c, + 0x5a,0x68,0x66,0x5c,0x6c,0x70,0x96,0xa8,0x04,0x77, + 0xfe,0xbc,0x58,0x55,0x16,0x14,0x45,0x53,0x2b,0x5a, + 0xfe,0xbd,0x93,0xa9,0x04,0x50,0x02,0x73,0x77,0x01, + 0x3b,0x78,0x77,0x13,0x08,0x13,0x76,0x79,0x01,0x3c, + 0x77,0x72,0x02,0x50,0x04,0xa8,0x00,0x01,0x00,0x3b, + 0x02,0x6a,0x02,0xf8,0x03,0x3b,0x00,0x12,0x00,0x00, + 0x01,0x22,0x2e,0x02,0x22,0x06,0x07,0x35,0x36,0x33, + 0x32,0x16,0x16,0x32,0x36,0x37,0x15,0x06,0x02,0x44, + 0x33,0x3e,0x86,0x3c,0x49,0x63,0x2a,0x4b,0x6e,0x29, + 0x47,0xa5,0x6a,0x5f,0x26,0x4a,0x02,0x71,0x13,0x4a, + 0x15,0x41,0x38,0x63,0x6a,0x13,0x5d,0x3f,0x35,0x62, + 0x68,0x00,0x00,0x00,0x00,0x02,0x00,0x93,0xfe,0x79, + 0x01,0x2f,0x04,0x3f,0x00,0x06,0x00,0x0a,0x00,0x00, + 0x13,0x32,0x16,0x15,0x14,0x22,0x34,0x13,0x23,0x13, + 0x33,0xe1,0x23,0x2b,0x9c,0x8c,0x7d,0x23,0x37,0x04, + 0x3f,0x34,0x36,0x6b,0xd5,0xfa,0x3a,0x04,0x48,0x00, + 0x00,0x00,0x00,0x01,0x00,0xa8,0xff,0xec,0x02,0x9a, + 0x05,0xcb,0x00,0x17,0x00,0x00,0x01,0x15,0x16,0x17, + 0x07,0x26,0x23,0x22,0x06,0x15,0x10,0x33,0x32,0x37, + 0x15,0x06,0x07,0x15,0x23,0x35,0x24,0x10,0x25,0x35, + 0x02,0x08,0x58,0x3a,0x25,0x48,0x33,0x7b,0x73,0xee, + 0x45,0x54,0x33,0x58,0x52,0xfe,0xf2,0x01,0x0e,0x05, + 0xcb,0xa8,0x06,0x1f,0x56,0x1d,0xef,0xea,0xfe,0x2b, + 0x20,0x54,0x1e,0x09,0xd0,0xd5,0x2f,0x03,0xf6,0x37, + 0xae,0x00,0x00,0x01,0x00,0x50,0x00,0x00,0x02,0xe5, + 0x05,0xcb,0x00,0x1e,0x00,0x00,0x13,0x11,0x34,0x36, + 0x20,0x17,0x07,0x26,0x27,0x26,0x23,0x22,0x06,0x15, + 0x11,0x33,0x15,0x23,0x11,0x14,0x07,0x21,0x15,0x21, + 0x35,0x36,0x36,0x35,0x11,0x23,0x35,0xee,0x82,0x01, + 0x11,0x64,0x37,0x33,0x2a,0x27,0x32,0x59,0x4f,0xfa, + 0xfa,0x79,0x02,0x0a,0xfd,0x7b,0x45,0x4d,0x9e,0x03, + 0x00,0x01,0x62,0xb8,0xb1,0x58,0x4c,0x2b,0x0f,0x10, + 0x82,0x8f,0xfe,0xa0,0x56,0xfe,0xe1,0xd6,0x57,0x5e, + 0x52,0x1d,0xa4,0x76,0x01,0x21,0x56,0x00,0x00,0x02, + 0x00,0x7d,0x01,0x19,0x03,0xf0,0x04,0x8b,0x00,0x17, + 0x00,0x29,0x00,0x00,0x00,0x10,0x07,0x17,0x07,0x27, + 0x06,0x20,0x27,0x07,0x27,0x37,0x26,0x10,0x37,0x27, + 0x37,0x17,0x36,0x20,0x17,0x37,0x17,0x07,0x25,0x22, + 0x06,0x15,0x14,0x15,0x14,0x16,0x20,0x36,0x35,0x34, + 0x35,0x34,0x26,0x23,0x22,0x22,0x03,0xc1,0x59,0x88, + 0x3a,0x89,0x6b,0xfe,0xe5,0x6a,0x85,0x39,0x85,0x56, + 0x56,0x87,0x39,0x87,0x6d,0x01,0x19,0x6a,0x87,0x3c, + 0x88,0xfe,0xc7,0x7b,0xb8,0xb6,0x01,0x0a,0xb9,0xbb, + 0x7b,0x04,0x08,0x03,0x5e,0xfe,0xea,0x6d,0x89,0x39, + 0x87,0x56,0x58,0x87,0x3b,0x85,0x6e,0x01,0x12,0x6e, + 0x89,0x39,0x89,0x5a,0x58,0x87,0x39,0x87,0x45,0xb9, + 0x7a,0x05,0x05,0x85,0xb6,0xb7,0x84,0x05,0x05,0x79, + 0xba,0x00,0x00,0x00,0x00,0x01,0x00,0x6a,0x00,0x00, + 0x02,0xc7,0x05,0xb6,0x00,0x17,0x00,0x00,0x01,0x15, + 0x23,0x15,0x33,0x15,0x23,0x11,0x23,0x11,0x23,0x35, + 0x33,0x35,0x27,0x23,0x35,0x33,0x03,0x33,0x13,0x13, + 0x33,0x03,0x02,0xa8,0xdd,0xdd,0xdd,0x67,0xd7,0xd7, + 0x02,0xd5,0xbf,0xe2,0x61,0xcf,0xca,0x63,0xe4,0x02, + 0x8f,0x52,0xc8,0x52,0xfe,0xdd,0x01,0x23,0x52,0xc6, + 0x02,0x52,0x03,0x27,0xfd,0x02,0x02,0xfe,0xfc,0xd9, + 0x00,0x02,0x01,0x6a,0xfe,0x14,0x01,0xc9,0x06,0x14, + 0x00,0x03,0x00,0x07,0x00,0x00,0x01,0x23,0x11,0x33, + 0x11,0x23,0x11,0x33,0x01,0xc9,0x5f,0x5f,0x5f,0x5f, + 0x02,0xf6,0x03,0x1e,0xf8,0x00,0x03,0x1f,0x00,0x00, + 0x00,0x02,0x00,0x52,0x00,0x62,0x02,0x58,0x06,0x14, + 0x00,0x2a,0x00,0x35,0x00,0x00,0x13,0x34,0x36,0x37, + 0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x07,0x26, + 0x26,0x23,0x22,0x06,0x14,0x1e,0x03,0x14,0x06,0x07, + 0x16,0x16,0x15,0x14,0x06,0x20,0x27,0x35,0x16,0x33, + 0x32,0x36,0x34,0x26,0x27,0x27,0x26,0x12,0x06,0x14, + 0x16,0x17,0x36,0x35,0x34,0x27,0x26,0x27,0x52,0x4e, + 0x45,0x7f,0x9b,0x78,0x3d,0x51,0x3f,0x27,0x31,0x4a, + 0x2f,0x51,0x61,0x43,0xdd,0x4e,0x27,0x42,0x35,0x40, + 0x37,0xa0,0xfe,0xf2,0x58,0x53,0x8c,0x5a,0x6f,0x43, + 0x63,0x5e,0xa4,0x9b,0x3f,0x69,0x87,0x5c,0x48,0x27, + 0x60,0x03,0x5a,0x50,0x75,0x1e,0x58,0x82,0x71,0x8c, + 0x14,0x23,0x4a,0x1d,0x15,0x5a,0x89,0x55,0x80,0x4c, + 0x58,0x83,0x7e,0x20,0x31,0x66,0x40,0x7b,0x94,0x38, + 0x64,0x4a,0x69,0x8d,0x58,0x3b,0x37,0x60,0x01,0x28, + 0x59,0x7e,0x69,0x41,0x35,0x77,0x5e,0x38,0x20,0x33, + 0x00,0x02,0x01,0x5c,0x05,0x19,0x03,0x0a,0x05,0xbe, + 0x00,0x07,0x00,0x0f,0x00,0x00,0x00,0x36,0x32,0x16, + 0x14,0x06,0x22,0x26,0x24,0x36,0x32,0x16,0x14,0x06, + 0x22,0x26,0x01,0x5c,0x25,0x35,0x23,0x23,0x35,0x25, + 0x01,0x31,0x24,0x35,0x24,0x24,0x35,0x24,0x05,0x95, + 0x29,0x29,0x52,0x2a,0x2a,0x52,0x29,0x29,0x52,0x2a, + 0x2b,0x00,0x00,0x00,0x00,0x03,0x00,0x64,0xff,0xec, + 0x06,0x44,0x05,0xcb,0x00,0x0b,0x00,0x17,0x00,0x2b, + 0x00,0x00,0x04,0x24,0x02,0x10,0x12,0x24,0x20,0x04, + 0x12,0x10,0x02,0x04,0x00,0x02,0x24,0x20,0x04,0x02, + 0x10,0x12,0x04,0x20,0x24,0x12,0x01,0x22,0x26,0x10, + 0x36,0x33,0x32,0x17,0x07,0x26,0x23,0x22,0x06,0x15, + 0x10,0x21,0x32,0x37,0x15,0x06,0x02,0x85,0xfe,0xa2, + 0xc3,0xc9,0x01,0x5e,0x01,0x91,0x01,0x5f,0xc9,0xc4, + 0xfe,0xa3,0x01,0xc4,0xac,0xfe,0xcd,0xfe,0x9d,0xfe, + 0xcc,0xb0,0xb0,0x01,0x31,0x01,0x64,0x01,0x2f,0xb2, + 0xfd,0x88,0xbb,0xcb,0xde,0xba,0x78,0x6b,0x25,0x62, + 0x5c,0x8e,0xa1,0x01,0x27,0x55,0x71,0x66,0x14,0xce, + 0x01,0x5a,0x01,0x8f,0x01,0x5f,0xc9,0xc9,0xfe,0xa2, + 0xfe,0x71,0xfe,0xa5,0xce,0x03,0x9c,0x01,0x30,0xb7, + 0xb3,0xfe,0xcd,0xfe,0x9f,0xfe,0xd2,0xb2,0xb1,0x01, + 0x30,0xfe,0xee,0xe7,0x01,0xa6,0xfa,0x34,0x53,0x2d, + 0xbe,0xa9,0xfe,0x94,0x2b,0x58,0x2d,0x00,0x00,0x02, + 0x00,0x39,0x03,0x25,0x01,0xcf,0x05,0xc7,0x00,0x15, + 0x00,0x1f,0x00,0x00,0x13,0x36,0x32,0x16,0x15,0x11, + 0x23,0x27,0x23,0x06,0x23,0x22,0x26,0x34,0x36,0x37, + 0x37,0x35,0x34,0x26,0x22,0x07,0x11,0x14,0x33,0x32, + 0x36,0x35,0x35,0x07,0x06,0x06,0x73,0x51,0xb8,0x53, + 0x39,0x0f,0x08,0x45,0x67,0x44,0x56,0x6f,0x79,0x5c, + 0x30,0x77,0x47,0x5f,0x44,0x4b,0x3e,0x60,0x50,0x05, + 0x9a,0x2d,0x63,0x6c,0xfe,0x39,0x54,0x60,0x64,0xb0, + 0x62,0x0b,0x08,0x48,0x4b,0x40,0x27,0xfe,0x81,0x71, + 0x67,0x5c,0x42,0x07,0x09,0x3f,0x00,0x00,0x00,0x02, + 0x00,0x52,0x00,0x93,0x03,0x06,0x03,0x8b,0x00,0x06, + 0x00,0x0d,0x00,0x00,0x01,0x03,0x13,0x07,0x01,0x35, + 0x01,0x05,0x03,0x13,0x07,0x01,0x35,0x01,0x01,0xae, + 0xdb,0xdb,0x3d,0xfe,0xe1,0x01,0x1f,0x01,0x95,0xd9, + 0xd9,0x3b,0xfe,0xdf,0x01,0x21,0x03,0x68,0xfe,0xa8, + 0xfe,0xa8,0x25,0x01,0x6f,0x1b,0x01,0x6e,0x23,0xfe, + 0xa8,0xfe,0xa8,0x25,0x01,0x6f,0x1b,0x01,0x6e,0x00, + 0x00,0x01,0x00,0x3b,0x00,0xfa,0x02,0xe3,0x02,0xfc, + 0x00,0x05,0x00,0x00,0x25,0x23,0x11,0x21,0x35,0x21, + 0x02,0xe3,0x52,0xfd,0xaa,0x02,0xa8,0xfa,0x01,0xb0, + 0x52,0x00,0x00,0x01,0x00,0x35,0x01,0xf6,0x01,0xcf, + 0x02,0x5c,0x00,0x03,0x00,0x00,0x01,0x21,0x35,0x21, + 0x01,0xcf,0xfe,0x66,0x01,0x9a,0x01,0xf6,0x66,0x00, + 0x00,0x04,0x00,0x64,0xff,0xec,0x06,0x44,0x05,0xcb, + 0x00,0x0b,0x00,0x17,0x00,0x24,0x00,0x2c,0x00,0x00, + 0x04,0x24,0x02,0x10,0x12,0x24,0x20,0x04,0x12,0x10, + 0x02,0x04,0x00,0x02,0x24,0x20,0x04,0x02,0x10,0x12, + 0x04,0x20,0x24,0x12,0x01,0x33,0x32,0x16,0x15,0x14, + 0x07,0x13,0x23,0x03,0x23,0x11,0x23,0x13,0x11,0x33, + 0x32,0x36,0x35,0x34,0x23,0x02,0x85,0xfe,0xa2,0xc3, + 0xc9,0x01,0x5e,0x01,0x91,0x01,0x5f,0xc9,0xc4,0xfe, + 0xa3,0x01,0xc4,0xac,0xfe,0xcd,0xfe,0x9d,0xfe,0xcc, + 0xb0,0xb0,0x01,0x31,0x01,0x64,0x01,0x2f,0xb2,0xfc, + 0x79,0xd3,0x92,0x9b,0x93,0xc6,0x72,0xae,0xae,0x65, + 0x65,0x70,0x5c,0x67,0xc5,0x14,0xce,0x01,0x5a,0x01, + 0x8f,0x01,0x5f,0xc9,0xc9,0xfe,0xa2,0xfe,0x71,0xfe, + 0xa5,0xce,0x03,0x9c,0x01,0x30,0xb7,0xb3,0xfe,0xcd, + 0xfe,0x9f,0xfe,0xd2,0xb2,0xb1,0x01,0x30,0x02,0x6a, + 0x7e,0x7f,0xb0,0x40,0xfe,0x7d,0x01,0x68,0xfe,0x98, + 0x03,0x1a,0xfe,0x9e,0x5e,0x58,0xac,0x00,0x00,0x01, + 0xff,0xf8,0x06,0x14,0x03,0x52,0x06,0x66,0x00,0x03, + 0x00,0x00,0x01,0x21,0x35,0x21,0x03,0x52,0xfc,0xa6, + 0x03,0x5a,0x06,0x14,0x52,0x00,0x00,0x02,0x00,0x8b, + 0x03,0x75,0x02,0xe1,0x05,0xcb,0x00,0x07,0x00,0x10, + 0x00,0x00,0x00,0x32,0x16,0x10,0x06,0x22,0x26,0x10, + 0x00,0x36,0x34,0x26,0x22,0x07,0x06,0x14,0x16,0x01, + 0x38,0xfc,0xad,0xad,0xff,0xaa,0x01,0x80,0x7c,0x78, + 0xb3,0x3c,0x3b,0x7a,0x05,0xcb,0xa7,0xfe,0xf8,0xa7, + 0xa5,0x01,0x0a,0xfe,0xa3,0x7c,0xb9,0x7d,0x40,0x41, + 0xb4,0x7d,0x00,0x00,0x00,0x02,0x00,0x3b,0x00,0x00, + 0x02,0xf8,0x04,0xae,0x00,0x0b,0x00,0x0f,0x00,0x00, + 0x01,0x21,0x15,0x21,0x11,0x23,0x11,0x21,0x35,0x21, + 0x11,0x33,0x01,0x21,0x35,0x21,0x01,0xc3,0x01,0x35, + 0xfe,0xcb,0x52,0xfe,0xca,0x01,0x36,0x52,0x01,0x35, + 0xfd,0x43,0x02,0xbd,0x02,0xfc,0x52,0xfe,0x50,0x01, + 0xb0,0x52,0x01,0xb2,0xfb,0x52,0x52,0x00,0x00,0x01, + 0x00,0x31,0x02,0x4a,0x02,0x08,0x05,0xcb,0x00,0x16, + 0x00,0x00,0x01,0x32,0x16,0x15,0x14,0x06,0x07,0x07, + 0x21,0x15,0x21,0x35,0x37,0x3e,0x02,0x34,0x26,0x23, + 0x22,0x07,0x27,0x36,0x01,0x10,0x6e,0x7c,0x4b,0x88, + 0x91,0x01,0x72,0xfe,0x29,0xb2,0x46,0x54,0x1f,0x4c, + 0x42,0x58,0x4c,0x37,0x5f,0x05,0xcb,0x7c,0x6c,0x56, + 0x9b,0xa6,0xb0,0x52,0x4e,0xdf,0x56,0x7e,0x57,0x84, + 0x4f,0x52,0x3d,0x6b,0x00,0x01,0x00,0x2f,0x02,0x39, + 0x02,0x0e,0x05,0xcd,0x00,0x1f,0x00,0x00,0x13,0x36, + 0x32,0x16,0x15,0x14,0x06,0x07,0x15,0x16,0x15,0x14, + 0x06,0x23,0x22,0x27,0x35,0x16,0x32,0x36,0x34,0x26, + 0x23,0x23,0x35,0x33,0x32,0x36,0x34,0x26,0x22,0x07, + 0x2f,0x63,0xe6,0x7a,0x49,0x41,0xa6,0x96,0x7e,0x65, + 0x60,0x5e,0xc4,0x59,0x68,0x65,0x3d,0x41,0x54,0x5d, + 0x4f,0x9b,0x4a,0x05,0x73,0x5a,0x7a,0x6c,0x48,0x6a, + 0x18,0x09,0x2e,0xb3,0x6e,0x8c,0x2b,0x5f,0x34,0x57, + 0xa8,0x5e,0x51,0x5f,0x92,0x49,0x48,0x00,0x00,0x00, + 0x00,0x01,0x01,0xb2,0x04,0xd9,0x02,0xee,0x06,0x21, + 0x00,0x08,0x00,0x00,0x01,0x15,0x06,0x06,0x07,0x23, + 0x35,0x36,0x37,0x02,0xee,0x25,0xa1,0x47,0x2f,0x7e, + 0x41,0x06,0x21,0x11,0x42,0xba,0x3b,0x15,0xa4,0x8f, + 0x00,0x01,0x00,0x91,0xfe,0x14,0x02,0xd9,0x04,0x3d, + 0x00,0x17,0x00,0x00,0x21,0x23,0x27,0x23,0x06,0x06, + 0x23,0x22,0x27,0x23,0x16,0x15,0x11,0x23,0x11,0x33, + 0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x33,0x02,0xd9, + 0x50,0x0c,0x08,0x21,0x7a,0x44,0x76,0x30,0x09,0x09, + 0x5f,0x5f,0x9d,0x7c,0x72,0x5e,0x98,0x50,0x5c,0x6a, + 0x78,0x3f,0xfe,0x75,0x06,0x29,0xfd,0x23,0xfe,0xe4, + 0xc8,0xdd,0x02,0x54,0x00,0x00,0x00,0x01,0x00,0x96, + 0xfe,0xfc,0x03,0x00,0x06,0x14,0x00,0x0e,0x00,0x00, + 0x01,0x23,0x11,0x23,0x11,0x23,0x11,0x06,0x23,0x22, + 0x26,0x10,0x12,0x33,0x21,0x03,0x00,0x5e,0x92,0x5e, + 0x1e,0x27,0x6f,0x68,0x80,0x88,0x01,0x62,0xfe,0xfc, + 0x06,0xb8,0xf9,0x48,0x03,0x33,0x12,0xf5,0x02,0x02, + 0x01,0x00,0x00,0x01,0x00,0x85,0x02,0x66,0x01,0x21, + 0x03,0x3b,0x00,0x06,0x00,0x00,0x12,0x32,0x15,0x14, + 0x06,0x23,0x22,0x85,0x9c,0x2b,0x23,0x4e,0x03,0x3b, + 0x6a,0x36,0x35,0x00,0x00,0x01,0x00,0x3b,0xfe,0x14, + 0x01,0x7b,0x00,0x00,0x00,0x11,0x00,0x00,0x01,0x14, + 0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x34, + 0x26,0x27,0x37,0x33,0x07,0x16,0x01,0x7b,0x7b,0x6f, + 0x3d,0x19,0x21,0x2d,0x4c,0x4c,0x54,0x52,0x48,0x4b, + 0x33,0xa0,0xfe,0xdd,0x62,0x67,0x0b,0x4e,0x0b,0x41, + 0x72,0x3e,0x0d,0xa0,0x73,0x27,0x00,0x00,0x00,0x01, + 0x00,0x52,0x02,0x4a,0x01,0x8d,0x05,0xb6,0x00,0x0a, + 0x00,0x00,0x01,0x23,0x11,0x34,0x37,0x06,0x06,0x07, + 0x27,0x37,0x33,0x01,0x8d,0x56,0x06,0x20,0x36,0x64, + 0x31,0xed,0x4e,0x02,0x4a,0x02,0x66,0x56,0x54,0x1f, + 0x2b,0x47,0x41,0xac,0x00,0x00,0x00,0x02,0x00,0x46, + 0x03,0x25,0x02,0x25,0x05,0xc7,0x00,0x07,0x00,0x10, + 0x00,0x00,0x12,0x36,0x32,0x16,0x10,0x06,0x22,0x26, + 0x13,0x22,0x11,0x14,0x16,0x32,0x36,0x10,0x26,0x46, + 0x7f,0xe5,0x7b,0x7a,0xeb,0x7a,0xef,0x95,0x47,0x9f, + 0x45,0x47,0x05,0x17,0xb0,0xa8,0xfe,0xb3,0xad,0xac, + 0x01,0xac,0xfe,0xfa,0x8a,0x7e,0x7c,0x01,0x16,0x7c, + 0x00,0x02,0x00,0x52,0x00,0x93,0x03,0x06,0x03,0x8b, + 0x00,0x06,0x00,0x0d,0x00,0x00,0x01,0x15,0x01,0x27, + 0x13,0x03,0x37,0x01,0x15,0x01,0x27,0x13,0x03,0x37, + 0x01,0xae,0xfe,0xdf,0x3b,0xd9,0xd9,0x3b,0x02,0x79, + 0xfe,0xe1,0x3d,0xdb,0xdb,0x3d,0x02,0x1d,0x1b,0xfe, + 0x91,0x25,0x01,0x58,0x01,0x58,0x23,0xfe,0x92,0x1b, + 0xfe,0x91,0x25,0x01,0x58,0x01,0x58,0x23,0x00,0x04, + 0x00,0x34,0x00,0x00,0x05,0x18,0x05,0xb6,0x00,0x0a, + 0x00,0x0e,0x00,0x19,0x00,0x20,0x00,0x00,0x01,0x23, + 0x11,0x34,0x37,0x06,0x06,0x07,0x27,0x37,0x33,0x13, + 0x23,0x01,0x33,0x13,0x33,0x15,0x23,0x15,0x23,0x35, + 0x21,0x35,0x01,0x33,0x03,0x11,0x34,0x37,0x06,0x06, + 0x03,0x01,0x6f,0x56,0x06,0x20,0x36,0x64,0x31,0xed, + 0x4e,0x01,0x5c,0x03,0x00,0x5c,0x44,0x64,0x64,0x56, + 0xfe,0xb2,0x01,0x54,0x50,0x56,0x04,0x04,0x4c,0x9d, + 0x02,0x4a,0x02,0x66,0x56,0x54,0x1f,0x2b,0x47,0x41, + 0xac,0xfa,0x4a,0x05,0xb6,0xfb,0x6e,0x52,0xd1,0xd1, + 0x41,0x02,0x60,0xfd,0xb1,0x01,0x1a,0x7f,0x2b,0x0c, + 0x9a,0xfe,0xe2,0x00,0x00,0x03,0x00,0x34,0x00,0x00, + 0x05,0x37,0x05,0xb6,0x00,0x0a,0x00,0x0e,0x00,0x25, + 0x00,0x00,0x01,0x23,0x11,0x34,0x37,0x06,0x06,0x07, + 0x27,0x37,0x33,0x03,0x23,0x01,0x33,0x03,0x32,0x16, + 0x15,0x14,0x06,0x07,0x07,0x21,0x15,0x21,0x35,0x37, + 0x3e,0x02,0x34,0x26,0x23,0x22,0x07,0x27,0x36,0x01, + 0x6f,0x56,0x06,0x20,0x36,0x64,0x31,0xed,0x4e,0x17, + 0x5c,0x03,0x00,0x5c,0x19,0x6e,0x7c,0x4b,0x88,0x91, + 0x01,0x72,0xfe,0x29,0xb2,0x46,0x54,0x1f,0x4c,0x42, + 0x58,0x4c,0x37,0x5f,0x02,0x4a,0x02,0x66,0x56,0x54, + 0x1f,0x2b,0x47,0x41,0xac,0xfa,0x4a,0x05,0xb6,0xfd, + 0xcc,0x7c,0x6c,0x56,0x9b,0xa6,0xb0,0x52,0x4e,0xdf, + 0x56,0x7e,0x57,0x84,0x4f,0x52,0x3d,0x6b,0x00,0x04, + 0x00,0x2f,0x00,0x00,0x05,0x3f,0x05,0xcd,0x00,0x1f, + 0x00,0x23,0x00,0x2e,0x00,0x35,0x00,0x00,0x13,0x36, + 0x32,0x16,0x15,0x14,0x06,0x07,0x15,0x16,0x15,0x14, + 0x06,0x23,0x22,0x27,0x35,0x16,0x32,0x36,0x34,0x26, + 0x23,0x23,0x35,0x33,0x32,0x36,0x34,0x26,0x22,0x07, + 0x01,0x23,0x01,0x33,0x13,0x33,0x15,0x23,0x15,0x23, + 0x35,0x21,0x35,0x01,0x33,0x03,0x11,0x34,0x37,0x06, + 0x06,0x03,0x2f,0x63,0xe6,0x7a,0x49,0x41,0xa6,0x96, + 0x7e,0x65,0x60,0x5e,0xc4,0x59,0x68,0x65,0x3d,0x41, + 0x54,0x5d,0x4f,0x9b,0x4a,0x01,0x35,0x5c,0x03,0x00, + 0x5c,0x42,0x64,0x64,0x56,0xfe,0xb2,0x01,0x54,0x50, + 0x56,0x04,0x05,0x4b,0x9d,0x05,0x73,0x5a,0x7a,0x6c, + 0x48,0x6a,0x18,0x09,0x2e,0xb3,0x6e,0x8c,0x2b,0x5f, + 0x34,0x57,0xa8,0x5e,0x51,0x5f,0x92,0x49,0x48,0xfa, + 0xd1,0x05,0xb6,0xfb,0x6e,0x52,0xd1,0xd1,0x41,0x02, + 0x60,0xfd,0xb1,0x01,0x1a,0x7f,0x2b,0x0c,0x9a,0xfe, + 0xe2,0x00,0x00,0x02,0x00,0x2f,0xfe,0x64,0x02,0x1f, + 0x04,0x3f,0x00,0x06,0x00,0x1f,0x00,0x00,0x01,0x32, + 0x14,0x22,0x35,0x34,0x36,0x13,0x15,0x14,0x06,0x06, + 0x07,0x06,0x14,0x16,0x33,0x32,0x36,0x37,0x17,0x06, + 0x22,0x26,0x10,0x37,0x36,0x37,0x36,0x36,0x35,0x35, + 0x01,0x58,0x4e,0x9c,0x2b,0x4e,0x2a,0x7f,0x16,0x31, + 0x5b,0x4f,0x35,0x4f,0x2f,0x2f,0x67,0xfe,0x8b,0x31, + 0x1a,0x55,0x3a,0x2e,0x04,0x3f,0xd5,0x6b,0x36,0x34, + 0xfe,0x82,0x34,0x73,0x92,0xc3,0x31,0x6c,0xed,0x7d, + 0x1d,0x1f,0x4c,0x4a,0xa9,0x01,0x26,0x69,0x39,0x81, + 0x5b,0x86,0x63,0x27,0x00,0x00,0x00,0x03,0x00,0x00, + 0x00,0x00,0x03,0x2d,0x07,0x73,0x00,0x09,0x00,0x11, + 0x00,0x18,0x00,0x00,0x13,0x33,0x16,0x16,0x17,0x15, + 0x23,0x26,0x26,0x27,0x01,0x23,0x03,0x21,0x03,0x23, + 0x01,0x33,0x13,0x03,0x26,0x27,0x06,0x07,0x03,0x92, + 0x7d,0x1d,0x6a,0x38,0x30,0x3f,0xa8,0x25,0x02,0x9b, + 0x64,0x81,0xfe,0x9d,0x7f,0x66,0x01,0x60,0x65,0x6c, + 0x81,0x16,0x09,0x09,0x13,0x7d,0x07,0x73,0x43,0xaa, + 0x46,0x15,0x33,0xbf,0x45,0xf8,0x9e,0x02,0x12,0xfd, + 0xee,0x05,0xb6,0xfc,0xbf,0x02,0x21,0x67,0x47,0x5b, + 0x53,0xfd,0xdf,0x00,0x00,0x00,0x00,0x03,0x00,0x00, + 0x00,0x00,0x03,0x2d,0x07,0x73,0x00,0x08,0x00,0x10, + 0x00,0x17,0x00,0x00,0x01,0x15,0x06,0x06,0x07,0x23, + 0x35,0x36,0x37,0x01,0x23,0x03,0x21,0x03,0x23,0x01, + 0x33,0x13,0x03,0x26,0x27,0x06,0x07,0x03,0x02,0x8f, + 0x25,0xa2,0x46,0x2f,0x7e,0x41,0x01,0x1b,0x64,0x81, + 0xfe,0x9d,0x7f,0x66,0x01,0x60,0x65,0x6c,0x81,0x16, + 0x09,0x09,0x13,0x7d,0x07,0x73,0x11,0x42,0xba,0x3b, + 0x15,0xa4,0x8f,0xf8,0x8d,0x02,0x12,0xfd,0xee,0x05, + 0xb6,0xfc,0xbf,0x02,0x21,0x67,0x47,0x5b,0x53,0xfd, + 0xdf,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x03,0x2d, + 0x07,0x73,0x00,0x11,0x00,0x19,0x00,0x20,0x00,0x00, + 0x01,0x23,0x26,0x27,0x27,0x06,0x07,0x06,0x07,0x23, + 0x35,0x36,0x37,0x33,0x16,0x17,0x16,0x17,0x13,0x23, + 0x03,0x21,0x03,0x23,0x01,0x33,0x13,0x03,0x26,0x27, + 0x06,0x07,0x03,0x02,0x7e,0x2f,0x2a,0x31,0x61,0x13, + 0x2c,0x51,0x31,0x2b,0x79,0x41,0x5f,0x17,0x37,0x3c, + 0x34,0xaf,0x64,0x81,0xfe,0x9d,0x7f,0x66,0x01,0x60, + 0x65,0x6c,0x81,0x16,0x09,0x09,0x13,0x7d,0x06,0x2b, + 0x2a,0x3b,0x70,0x15,0x33,0x5e,0x2f,0x13,0xa8,0x8d, + 0x36,0x5b,0x5f,0x45,0xf9,0xc2,0x02,0x12,0xfd,0xee, + 0x05,0xb6,0xfc,0xbf,0x02,0x21,0x67,0x47,0x5b,0x53, + 0xfd,0xdf,0x00,0x03,0x00,0x00,0x00,0x00,0x03,0x2d, + 0x07,0x00,0x00,0x15,0x00,0x1d,0x00,0x24,0x00,0x00, + 0x01,0x22,0x26,0x27,0x26,0x22,0x06,0x07,0x23,0x36, + 0x36,0x33,0x32,0x16,0x17,0x16,0x33,0x32,0x37,0x33, + 0x06,0x06,0x13,0x23,0x03,0x21,0x03,0x23,0x01,0x33, + 0x13,0x03,0x26,0x27,0x06,0x07,0x03,0x02,0x0f,0x20, + 0x4a,0x1c,0x4c,0x40,0x2c,0x09,0x4a,0x0c,0x54,0x46, + 0x20,0x49,0x1b,0x49,0x25,0x3b,0x14,0x4a,0x09,0x54, + 0xdb,0x64,0x81,0xfe,0x9d,0x7f,0x66,0x01,0x60,0x65, + 0x6c,0x81,0x16,0x09,0x09,0x13,0x7d,0x06,0x2d,0x28, + 0x17,0x40,0x46,0x3b,0x64,0x6f,0x28,0x18,0x3f,0x81, + 0x65,0x6e,0xf9,0xd3,0x02,0x12,0xfd,0xee,0x05,0xb6, + 0xfc,0xbf,0x02,0x21,0x67,0x47,0x5b,0x53,0xfd,0xdf, + 0x00,0x04,0x00,0x00,0x00,0x00,0x03,0x2d,0x07,0x10, + 0x00,0x07,0x00,0x0f,0x00,0x17,0x00,0x1e,0x00,0x00, + 0x12,0x36,0x32,0x16,0x14,0x06,0x22,0x26,0x24,0x36, + 0x32,0x16,0x14,0x06,0x22,0x26,0x01,0x23,0x03,0x21, + 0x03,0x23,0x01,0x33,0x13,0x03,0x26,0x27,0x06,0x07, + 0x03,0xbf,0x25,0x35,0x23,0x23,0x35,0x25,0x01,0x31, + 0x24,0x35,0x24,0x24,0x35,0x24,0x01,0x3d,0x64,0x81, + 0xfe,0x9d,0x7f,0x66,0x01,0x60,0x65,0x6c,0x81,0x16, + 0x09,0x09,0x13,0x7d,0x06,0xe7,0x29,0x29,0x52,0x2a, + 0x2a,0x52,0x29,0x29,0x52,0x2a,0x2b,0xf9,0x6a,0x02, + 0x12,0xfd,0xee,0x05,0xb6,0xfc,0xbf,0x02,0x21,0x67, + 0x47,0x5b,0x53,0xfd,0xdf,0x00,0x00,0x03,0x00,0x00, + 0x00,0x00,0x03,0x2d,0x06,0xeb,0x00,0x0f,0x00,0x17, + 0x00,0x1e,0x00,0x00,0x00,0x26,0x34,0x36,0x32,0x16, + 0x14,0x06,0x07,0x01,0x23,0x03,0x21,0x03,0x23,0x01, + 0x12,0x06,0x14,0x16,0x32,0x36,0x34,0x26,0x13,0x03, + 0x26,0x27,0x06,0x07,0x03,0x01,0x14,0x46,0x6b,0xb3, + 0x70,0x49,0x40,0x01,0x5a,0x64,0x81,0xfe,0x9d,0x7f, + 0x66,0x01,0x53,0x0c,0x43,0x3e,0x71,0x43,0x3f,0x62, + 0x81,0x16,0x09,0x09,0x13,0x7d,0x05,0x8f,0x5d,0x9a, + 0x65,0x64,0x9a,0x60,0x10,0xfa,0x83,0x02,0x12,0xfd, + 0xee,0x05,0x7e,0x01,0x27,0x41,0x69,0x3f,0x40,0x69, + 0x40,0xfb,0xd0,0x02,0x21,0x67,0x47,0x5b,0x53,0xfd, + 0xdf,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x04,0x1f, + 0x05,0xb6,0x00,0x0f,0x00,0x13,0x00,0x00,0x01,0x21, + 0x11,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x11,0x21, + 0x03,0x23,0x01,0x21,0x01,0x11,0x23,0x03,0x04,0x1f, + 0xfe,0x50,0x01,0x97,0xfe,0x69,0x01,0xb0,0xfd,0xed, + 0xfe,0xf4,0x98,0x68,0x01,0xb2,0x02,0x6d,0xfd,0xed, + 0x1c,0xd5,0x05,0x56,0xfd,0xd7,0x5e,0xfd,0x8f,0x5e, + 0x02,0x12,0xfd,0xee,0x05,0xb6,0xfc,0xbf,0x02,0xdf, + 0xfd,0x21,0x00,0x01,0x00,0x6f,0xfe,0x14,0x03,0x29, + 0x05,0xcd,0x00,0x2c,0x00,0x00,0x01,0x22,0x02,0x11, + 0x14,0x15,0x10,0x12,0x33,0x32,0x33,0x32,0x37,0x15, + 0x06,0x23,0x07,0x16,0x15,0x14,0x06,0x23,0x22,0x27, + 0x35,0x16,0x33,0x32,0x36,0x34,0x26,0x27,0x37,0x26, + 0x02,0x11,0x34,0x35,0x10,0x12,0x33,0x32,0x17,0x07, + 0x26,0x02,0x3d,0xa6,0xc2,0xc8,0xa4,0x02,0x03,0x70, + 0x54,0x4e,0x7e,0x2a,0xa0,0x7b,0x6f,0x3d,0x19,0x21, + 0x2d,0x4c,0x4c,0x54,0x52,0x42,0xb5,0xd2,0xf9,0xd7, + 0x85,0x65,0x2d,0x54,0x05,0x6f,0xfe,0xa4,0xfe,0xca, + 0x06,0x05,0xfe,0xdc,0xfe,0x9c,0x29,0x5a,0x2d,0x5f, + 0x27,0x89,0x62,0x67,0x0b,0x4e,0x0b,0x41,0x72,0x3e, + 0x0d,0x92,0x21,0x01,0x8b,0x01,0x35,0x06,0x06,0x01, + 0x5f,0x01,0x8f,0x3e,0x56,0x36,0x00,0x00,0x00,0x02, + 0x00,0xa0,0x00,0x00,0x02,0xb2,0x07,0x73,0x00,0x09, + 0x00,0x15,0x00,0x00,0x13,0x33,0x16,0x16,0x17,0x15, + 0x23,0x26,0x26,0x27,0x01,0x21,0x11,0x21,0x15,0x21, + 0x11,0x21,0x15,0x21,0x11,0x21,0xc7,0x7d,0x1d,0x6a, + 0x38,0x30,0x3f,0xa8,0x25,0x01,0xeb,0xfe,0x50,0x01, + 0x98,0xfe,0x68,0x01,0xb0,0xfd,0xee,0x02,0x12,0x07, + 0x73,0x43,0xaa,0x46,0x15,0x33,0xbf,0x45,0xfd,0xf6, + 0xfd,0xd5,0x5e,0xfd,0x8f,0x5e,0x05,0xb6,0x00,0x02, + 0x00,0xa0,0x00,0x00,0x02,0xb2,0x07,0x73,0x00,0x08, + 0x00,0x14,0x00,0x00,0x01,0x15,0x06,0x06,0x07,0x23, + 0x35,0x36,0x37,0x13,0x21,0x11,0x21,0x15,0x21,0x11, + 0x21,0x15,0x21,0x11,0x21,0x02,0x80,0x25,0xa1,0x47, + 0x2f,0x7e,0x41,0xaf,0xfe,0x50,0x01,0x98,0xfe,0x68, + 0x01,0xb0,0xfd,0xee,0x02,0x12,0x07,0x73,0x11,0x42, + 0xba,0x3b,0x15,0xa4,0x8f,0xfd,0xe5,0xfd,0xd5,0x5e, + 0xfd,0x8f,0x5e,0x05,0xb6,0x00,0x00,0x00,0x00,0x02, + 0x00,0xa0,0x00,0x00,0x02,0xb2,0x07,0x73,0x00,0x11, + 0x00,0x1d,0x00,0x00,0x01,0x23,0x26,0x27,0x27,0x06, + 0x07,0x06,0x07,0x23,0x35,0x36,0x37,0x33,0x16,0x17, + 0x16,0x17,0x17,0x21,0x11,0x21,0x15,0x21,0x11,0x21, + 0x15,0x21,0x11,0x21,0x02,0x8c,0x2f,0x2a,0x31,0x61, + 0x13,0x2c,0x51,0x31,0x2b,0x79,0x41,0x5f,0x17,0x37, + 0x3c,0x34,0x26,0xfe,0x50,0x01,0x98,0xfe,0x68,0x01, + 0xb0,0xfd,0xee,0x02,0x12,0x06,0x2b,0x2a,0x3b,0x70, + 0x15,0x33,0x5e,0x2f,0x13,0xa8,0x8d,0x36,0x5b,0x5f, + 0x45,0xe6,0xfd,0xd5,0x5e,0xfd,0x8f,0x5e,0x05,0xb6, + 0x00,0x00,0x00,0x03,0x00,0xa0,0x00,0x00,0x02,0xb2, + 0x07,0x10,0x00,0x07,0x00,0x0f,0x00,0x1b,0x00,0x00, + 0x12,0x36,0x32,0x16,0x14,0x06,0x22,0x26,0x24,0x36, + 0x32,0x16,0x14,0x06,0x22,0x26,0x13,0x21,0x11,0x21, + 0x15,0x21,0x11,0x21,0x15,0x21,0x11,0x21,0xca,0x25, + 0x35,0x23,0x23,0x35,0x25,0x01,0x31,0x24,0x35,0x24, + 0x24,0x35,0x24,0xb7,0xfe,0x50,0x01,0x98,0xfe,0x68, + 0x01,0xb0,0xfd,0xee,0x02,0x12,0x06,0xe7,0x29,0x29, + 0x52,0x2a,0x2a,0x52,0x29,0x29,0x52,0x2a,0x2b,0xfe, + 0xc2,0xfd,0xd5,0x5e,0xfd,0x8f,0x5e,0x05,0xb6,0x00, + 0x00,0x00,0x00,0x02,0xff,0xde,0x00,0x00,0x01,0x1a, + 0x07,0x73,0x00,0x09,0x00,0x0d,0x00,0x00,0x03,0x33, + 0x16,0x16,0x17,0x15,0x23,0x26,0x26,0x27,0x01,0x23, + 0x11,0x33,0x22,0x7d,0x1d,0x6a,0x38,0x30,0x3f,0xa8, + 0x25,0x01,0x24,0x62,0x62,0x07,0x73,0x43,0xaa,0x46, + 0x15,0x33,0xbf,0x45,0xf8,0x9e,0x05,0xb6,0x00,0x02, + 0x00,0x9a,0x00,0x00,0x01,0xd6,0x07,0x73,0x00,0x08, + 0x00,0x0c,0x00,0x00,0x01,0x15,0x06,0x06,0x07,0x23, + 0x35,0x36,0x37,0x03,0x23,0x11,0x33,0x01,0xd6,0x25, + 0xa1,0x47,0x2f,0x7e,0x41,0x57,0x62,0x62,0x07,0x73, + 0x11,0x42,0xba,0x3b,0x15,0xa4,0x8f,0xf8,0x8d,0x05, + 0xb6,0x00,0x00,0x00,0x00,0x02,0xff,0xe6,0x00,0x00, + 0x01,0xbd,0x07,0x73,0x00,0x11,0x00,0x15,0x00,0x00, + 0x01,0x23,0x26,0x27,0x27,0x06,0x07,0x06,0x07,0x23, + 0x35,0x36,0x37,0x33,0x16,0x17,0x16,0x17,0x03,0x23, + 0x11,0x33,0x01,0xbd,0x2f,0x2a,0x31,0x61,0x13,0x2c, + 0x51,0x31,0x2b,0x7a,0x40,0x5f,0x17,0x37,0x3c,0x34, + 0xbb,0x62,0x62,0x06,0x2b,0x2a,0x3b,0x70,0x15,0x33, + 0x5e,0x2f,0x13,0xa8,0x8d,0x36,0x5b,0x5f,0x45,0xf9, + 0xc2,0x05,0xb6,0x00,0x00,0x03,0xff,0xfb,0x00,0x00, + 0x01,0xa9,0x07,0x10,0x00,0x07,0x00,0x0f,0x00,0x13, + 0x00,0x00,0x02,0x36,0x32,0x16,0x14,0x06,0x22,0x26, + 0x24,0x36,0x32,0x16,0x14,0x06,0x22,0x26,0x03,0x23, + 0x11,0x33,0x05,0x25,0x35,0x23,0x23,0x35,0x25,0x01, + 0x31,0x24,0x35,0x24,0x24,0x35,0x24,0x2a,0x62,0x62, + 0x06,0xe7,0x29,0x29,0x52,0x2a,0x2a,0x52,0x29,0x29, + 0x52,0x2a,0x2b,0xf9,0x6a,0x05,0xb6,0x00,0x00,0x00, + 0x00,0x02,0x00,0x3d,0x00,0x00,0x03,0x75,0x05,0xb6, + 0x00,0x0b,0x00,0x17,0x00,0x00,0x13,0x21,0x32,0x12, + 0x11,0x10,0x21,0x21,0x11,0x23,0x35,0x33,0x13,0x11, + 0x33,0x15,0x23,0x11,0x33,0x20,0x11,0x10,0x02,0x23, + 0xa0,0x01,0x0a,0xe2,0xe9,0xfe,0x2f,0xfe,0xfc,0x63, + 0x63,0x62,0xe1,0xe1,0x9c,0x01,0x70,0xb7,0xb1,0x05, + 0xb6,0xfe,0x93,0xfe,0xa0,0xfd,0x17,0x02,0xbc,0x5b, + 0x02,0x45,0xfd,0xbb,0x5b,0xfd,0x9e,0x02,0x89,0x01, + 0x36,0x01,0x43,0x00,0x00,0x02,0x00,0xa0,0x00,0x00, + 0x03,0xa2,0x07,0x00,0x00,0x15,0x00,0x25,0x00,0x00, + 0x01,0x22,0x26,0x27,0x26,0x22,0x06,0x07,0x23,0x36, + 0x36,0x33,0x32,0x16,0x17,0x16,0x33,0x32,0x37,0x33, + 0x06,0x06,0x13,0x23,0x01,0x23,0x16,0x15,0x11,0x23, + 0x11,0x33,0x01,0x33,0x26,0x35,0x11,0x33,0x02,0xad, + 0x20,0x4a,0x1c,0x4c,0x40,0x2c,0x09,0x4a,0x0c,0x54, + 0x46,0x20,0x49,0x1b,0x49,0x25,0x3b,0x14,0x4a,0x09, + 0x54,0xb2,0x7d,0xfd,0xd7,0x08,0x0c,0x60,0x7f,0x02, + 0x25,0x06,0x08,0x60,0x06,0x2d,0x28,0x17,0x40,0x46, + 0x3b,0x64,0x6f,0x28,0x18,0x3f,0x81,0x65,0x6e,0xf9, + 0xd3,0x05,0x1f,0x89,0x7d,0xfb,0xe7,0x05,0xb6,0xfa, + 0xf0,0xae,0x64,0x03,0xfe,0x00,0x00,0x00,0x00,0x03, + 0x00,0x6f,0xff,0xec,0x03,0xba,0x07,0x73,0x00,0x09, + 0x00,0x13,0x00,0x1b,0x00,0x00,0x01,0x33,0x16,0x16, + 0x17,0x15,0x23,0x26,0x26,0x27,0x13,0x32,0x17,0x16, + 0x10,0x02,0x20,0x02,0x11,0x10,0x00,0x02,0x20,0x02, + 0x10,0x12,0x20,0x12,0x01,0x1b,0x7d,0x1d,0x6a,0x38, + 0x30,0x3f,0xa8,0x25,0xfc,0xcd,0x6a,0x6c,0xd9,0xfe, + 0x63,0xd5,0x02,0xe5,0xa0,0xfe,0xc3,0xa2,0xa3,0x01, + 0x3a,0xa2,0x07,0x73,0x43,0xaa,0x46,0x15,0x33,0xbf, + 0x45,0xfe,0x69,0xc3,0xc2,0xfd,0x2b,0xfe,0x7b,0x01, + 0x89,0x01,0x6a,0x02,0xec,0xfe,0x57,0x01,0x4b,0xfe, + 0xb3,0xfd,0x78,0xfe,0xb2,0x01,0x4b,0x00,0x00,0x00, + 0x00,0x03,0x00,0x6f,0xff,0xec,0x03,0xba,0x07,0x73, + 0x00,0x08,0x00,0x12,0x00,0x1a,0x00,0x00,0x01,0x15, + 0x06,0x06,0x07,0x23,0x35,0x36,0x37,0x03,0x32,0x17, + 0x16,0x10,0x02,0x20,0x02,0x11,0x10,0x00,0x02,0x20, + 0x02,0x10,0x12,0x20,0x12,0x03,0x07,0x25,0xa2,0x46, + 0x2f,0x7e,0x41,0x73,0xcd,0x6a,0x6c,0xd9,0xfe,0x63, + 0xd5,0x02,0xe5,0xa0,0xfe,0xc3,0xa2,0xa3,0x01,0x3a, + 0xa2,0x07,0x73,0x11,0x42,0xba,0x3b,0x15,0xa4,0x8f, + 0xfe,0x58,0xc3,0xc2,0xfd,0x2b,0xfe,0x7b,0x01,0x89, + 0x01,0x6a,0x02,0xec,0xfe,0x57,0x01,0x4b,0xfe,0xb3, + 0xfd,0x78,0xfe,0xb2,0x01,0x4b,0x00,0x00,0x00,0x03, + 0x00,0x6f,0xff,0xec,0x03,0xba,0x07,0x73,0x00,0x11, + 0x00,0x1b,0x00,0x23,0x00,0x00,0x01,0x23,0x26,0x27, + 0x27,0x06,0x07,0x06,0x07,0x23,0x35,0x36,0x37,0x33, + 0x16,0x17,0x16,0x17,0x07,0x32,0x17,0x16,0x10,0x02, + 0x20,0x02,0x11,0x10,0x00,0x02,0x20,0x02,0x10,0x12, + 0x20,0x12,0x02,0xff,0x2f,0x2a,0x31,0x61,0x13,0x2c, + 0x51,0x31,0x2b,0x7a,0x40,0x5f,0x17,0x37,0x3c,0x34, + 0xe8,0xcd,0x6a,0x6c,0xd9,0xfe,0x63,0xd5,0x02,0xe5, + 0xa0,0xfe,0xc3,0xa2,0xa3,0x01,0x3a,0xa2,0x06,0x2b, + 0x2a,0x3b,0x70,0x15,0x33,0x5e,0x2f,0x13,0xa8,0x8d, + 0x36,0x5b,0x5f,0x45,0x73,0xc3,0xc2,0xfd,0x2b,0xfe, + 0x7b,0x01,0x89,0x01,0x6a,0x02,0xec,0xfe,0x57,0x01, + 0x4b,0xfe,0xb3,0xfd,0x78,0xfe,0xb2,0x01,0x4b,0x00, + 0x00,0x03,0x00,0x6f,0xff,0xec,0x03,0xba,0x07,0x00, + 0x00,0x15,0x00,0x1f,0x00,0x27,0x00,0x00,0x01,0x22, + 0x26,0x27,0x26,0x22,0x06,0x07,0x23,0x36,0x36,0x33, + 0x32,0x16,0x17,0x16,0x33,0x32,0x37,0x33,0x06,0x06, + 0x07,0x32,0x17,0x16,0x10,0x02,0x20,0x02,0x11,0x10, + 0x00,0x02,0x20,0x02,0x10,0x12,0x20,0x12,0x02,0x96, + 0x20,0x4a,0x1c,0x4c,0x40,0x2c,0x09,0x4a,0x0c,0x54, + 0x46,0x20,0x49,0x1b,0x49,0x25,0x3b,0x14,0x4a,0x09, + 0x54,0xc2,0xcd,0x6a,0x6c,0xd9,0xfe,0x63,0xd5,0x02, + 0xe5,0xa0,0xfe,0xc3,0xa2,0xa3,0x01,0x3a,0xa2,0x06, + 0x2d,0x28,0x17,0x40,0x46,0x3b,0x64,0x6f,0x28,0x18, + 0x3f,0x81,0x65,0x6e,0x62,0xc3,0xc2,0xfd,0x2b,0xfe, + 0x7b,0x01,0x89,0x01,0x6a,0x02,0xec,0xfe,0x57,0x01, + 0x4b,0xfe,0xb3,0xfd,0x78,0xfe,0xb2,0x01,0x4b,0x00, + 0x00,0x04,0x00,0x6f,0xff,0xec,0x03,0xba,0x07,0x10, + 0x00,0x07,0x00,0x0f,0x00,0x19,0x00,0x21,0x00,0x00, + 0x00,0x36,0x32,0x16,0x14,0x06,0x22,0x26,0x24,0x36, + 0x32,0x16,0x14,0x06,0x22,0x26,0x07,0x32,0x17,0x16, + 0x10,0x02,0x20,0x02,0x11,0x10,0x00,0x02,0x20,0x02, + 0x10,0x12,0x20,0x12,0x01,0x46,0x25,0x35,0x23,0x23, + 0x35,0x25,0x01,0x31,0x24,0x35,0x24,0x24,0x35,0x24, + 0x60,0xcd,0x6a,0x6c,0xd9,0xfe,0x63,0xd5,0x02,0xe5, + 0xa0,0xfe,0xc3,0xa2,0xa3,0x01,0x3a,0xa2,0x06,0xe7, + 0x29,0x29,0x52,0x2a,0x2a,0x52,0x29,0x29,0x52,0x2a, + 0x2b,0xcb,0xc3,0xc2,0xfd,0x2b,0xfe,0x7b,0x01,0x89, + 0x01,0x6a,0x02,0xec,0xfe,0x57,0x01,0x4b,0xfe,0xb3, + 0xfd,0x78,0xfe,0xb2,0x01,0x4b,0x00,0x00,0x00,0x01, + 0x00,0x3b,0x01,0x75,0x02,0xf8,0x04,0x31,0x00,0x0b, + 0x00,0x00,0x09,0x02,0x07,0x01,0x01,0x27,0x01,0x01, + 0x37,0x01,0x01,0x02,0xf8,0xfe,0xdb,0x01,0x1f,0x3a, + 0xfe,0xe0,0xfe,0xdd,0x3a,0x01,0x23,0xfe,0xdf,0x3a, + 0x01,0x21,0x01,0x24,0x03,0xf8,0xfe,0xdb,0xfe,0xdf, + 0x39,0x01,0x21,0xfe,0xdb,0x3b,0x01,0x23,0x01,0x21, + 0x39,0xfe,0xdf,0x01,0x25,0x00,0x00,0x03,0x00,0x60, + 0xff,0xa2,0x03,0xd7,0x06,0x06,0x00,0x11,0x00,0x18, + 0x00,0x20,0x00,0x00,0x01,0x16,0x10,0x02,0x23,0x22, + 0x27,0x07,0x27,0x37,0x26,0x11,0x10,0x21,0x32,0x17, + 0x37,0x17,0x05,0x22,0x02,0x10,0x17,0x01,0x26,0x03, + 0x32,0x12,0x11,0x34,0x27,0x01,0x16,0x03,0x5c,0x5e, + 0xd9,0xcd,0x9e,0x66,0x5e,0x52,0x77,0x68,0x01,0xa8, + 0xa3,0x6b,0x60,0x52,0xfe,0x40,0xa0,0xa2,0x3b,0x01, + 0xe4,0x50,0x90,0x9e,0xa2,0x31,0xfe,0x1f,0x4d,0x04, + 0xee,0xbd,0xfd,0x40,0xfe,0x7b,0x72,0xbc,0x25,0xed, + 0xc2,0x01,0x69,0x02,0xec,0x83,0xbe,0x29,0x70,0xfe, + 0xb3,0xfd,0xa4,0x9f,0x03,0xbe,0x8a,0xfa,0xdd,0x01, + 0x4b,0x01,0x48,0xfd,0x9f,0xfc,0x45,0x74,0x00,0x00, + 0x00,0x02,0x00,0x93,0xff,0xec,0x03,0x60,0x07,0x73, + 0x00,0x09,0x00,0x19,0x00,0x00,0x01,0x33,0x16,0x16, + 0x17,0x15,0x23,0x26,0x26,0x27,0x01,0x11,0x10,0x21, + 0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x32,0x36, + 0x35,0x11,0x01,0x15,0x7d,0x1d,0x6a,0x38,0x30,0x3f, + 0xa8,0x25,0x02,0x4b,0xfe,0x9e,0xb1,0xba,0x63,0x89, + 0xfd,0x82,0x07,0x73,0x43,0xaa,0x46,0x15,0x33,0xbf, + 0x45,0xfe,0x54,0xfc,0x25,0xfe,0x11,0xff,0xf0,0x03, + 0xdb,0xfc,0x19,0xbd,0xc8,0xc7,0xc2,0x03,0xe3,0x00, + 0x00,0x00,0x00,0x02,0x00,0x93,0xff,0xec,0x03,0x60, + 0x07,0x73,0x00,0x08,0x00,0x18,0x00,0x00,0x01,0x15, + 0x06,0x06,0x07,0x23,0x35,0x36,0x37,0x13,0x11,0x10, + 0x21,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x32, + 0x36,0x35,0x11,0x02,0xe3,0x25,0xa2,0x46,0x2f,0x7e, + 0x41,0xfa,0xfe,0x9e,0xb1,0xba,0x63,0x89,0xfd,0x82, + 0x07,0x73,0x11,0x42,0xba,0x3b,0x15,0xa4,0x8f,0xfe, + 0x43,0xfc,0x25,0xfe,0x11,0xff,0xf0,0x03,0xdb,0xfc, + 0x19,0xbd,0xc8,0xc7,0xc2,0x03,0xe3,0x00,0x00,0x00, + 0x00,0x02,0x00,0x93,0xff,0xec,0x03,0x60,0x07,0x73, + 0x00,0x11,0x00,0x21,0x00,0x00,0x01,0x23,0x26,0x27, + 0x27,0x06,0x07,0x06,0x07,0x23,0x35,0x36,0x37,0x33, + 0x16,0x17,0x16,0x17,0x17,0x11,0x10,0x21,0x22,0x26, + 0x35,0x11,0x33,0x11,0x14,0x16,0x32,0x36,0x35,0x11, + 0x02,0xe6,0x2f,0x2a,0x31,0x61,0x13,0x2c,0x51,0x31, + 0x2b,0x79,0x41,0x5f,0x17,0x37,0x3c,0x34,0x7a,0xfe, + 0x9e,0xb1,0xba,0x63,0x89,0xfd,0x82,0x06,0x2b,0x2a, + 0x3b,0x70,0x15,0x33,0x5e,0x2f,0x13,0xa8,0x8d,0x36, + 0x5b,0x5f,0x45,0x88,0xfc,0x25,0xfe,0x11,0xff,0xf0, + 0x03,0xdb,0xfc,0x19,0xbd,0xc8,0xc7,0xc2,0x03,0xe3, + 0x00,0x00,0x00,0x03,0x00,0x93,0xff,0xec,0x03,0x60, + 0x07,0x10,0x00,0x07,0x00,0x0f,0x00,0x1f,0x00,0x00, + 0x00,0x36,0x32,0x16,0x14,0x06,0x22,0x26,0x24,0x36, + 0x32,0x16,0x14,0x06,0x22,0x26,0x05,0x11,0x10,0x21, + 0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x32,0x36, + 0x35,0x11,0x01,0x24,0x25,0x35,0x23,0x23,0x35,0x25, + 0x01,0x31,0x24,0x35,0x24,0x24,0x35,0x24,0x01,0x0b, + 0xfe,0x9e,0xb1,0xba,0x63,0x89,0xfd,0x82,0x06,0xe7, + 0x29,0x29,0x52,0x2a,0x2a,0x52,0x29,0x29,0x52,0x2a, + 0x2b,0xe0,0xfc,0x25,0xfe,0x11,0xff,0xf0,0x03,0xdb, + 0xfc,0x19,0xbd,0xc8,0xc7,0xc2,0x03,0xe3,0x00,0x00, + 0x00,0x02,0x00,0x00,0x00,0x00,0x02,0xae,0x07,0x73, + 0x00,0x08,0x00,0x11,0x00,0x00,0x01,0x15,0x06,0x06, + 0x07,0x23,0x35,0x36,0x37,0x03,0x23,0x11,0x01,0x33, + 0x13,0x13,0x33,0x01,0x02,0x4b,0x25,0xa2,0x46,0x2f, + 0x7e,0x41,0x47,0x62,0xfe,0xdb,0x68,0xf0,0xee,0x68, + 0xfe,0xd9,0x07,0x73,0x11,0x42,0xba,0x3b,0x15,0xa4, + 0x8f,0xf8,0x8d,0x02,0x3b,0x03,0x7b,0xfd,0x0d,0x02, + 0xf3,0xfc,0x85,0x00,0x00,0x00,0x00,0x02,0x00,0xa0, + 0x00,0x00,0x03,0x04,0x05,0xb6,0x00,0x0b,0x00,0x15, + 0x00,0x00,0x01,0x33,0x32,0x16,0x15,0x10,0x21,0x23, + 0x11,0x23,0x11,0x33,0x11,0x11,0x33,0x32,0x37,0x36, + 0x10,0x27,0x26,0x23,0x01,0x02,0x66,0xd5,0xc7,0xfe, + 0x69,0x6b,0x62,0x62,0x62,0xa9,0x4a,0x49,0x48,0x46, + 0xa3,0x04,0xa8,0xc6,0xd2,0xfe,0x3e,0xfe,0xb2,0x05, + 0xb6,0xfe,0x92,0xfd,0x64,0x4d,0x4d,0x01,0x6b,0x4b, + 0x4c,0x00,0x00,0x01,0x00,0x91,0xff,0xec,0x02,0xf0, + 0x06,0x1f,0x00,0x29,0x00,0x00,0x33,0x11,0x34,0x36, + 0x33,0x32,0x11,0x14,0x06,0x15,0x14,0x16,0x17,0x17, + 0x16,0x10,0x07,0x06,0x22,0x27,0x35,0x16,0x16,0x33, + 0x32,0x36,0x35,0x34,0x2e,0x02,0x34,0x36,0x37,0x36, + 0x35,0x34,0x23,0x22,0x06,0x15,0x11,0x91,0x92,0x7c, + 0xf4,0xb6,0x2f,0x40,0x3b,0x69,0x47,0x47,0xe7,0x3e, + 0x2c,0x4f,0x34,0x4e,0x55,0x2d,0xa0,0x41,0x28,0x31, + 0x59,0x93,0x55,0x5b,0x04,0xb4,0xac,0xbf,0xfe,0xeb, + 0x78,0xeb,0x49,0x39,0x5c,0x50,0x46,0x78,0xfe,0xd9, + 0x55,0x53,0x35,0x64,0x1e,0x21,0x74,0x69,0x3c,0x6f, + 0xc1,0x8c,0x76,0x5a,0x3d,0x70,0x76,0xb7,0x87,0x80, + 0xfb,0x42,0x00,0x03,0x00,0x4e,0xff,0xec,0x02,0x83, + 0x06,0x21,0x00,0x09,0x00,0x20,0x00,0x2a,0x00,0x00, + 0x13,0x33,0x16,0x16,0x17,0x15,0x23,0x26,0x26,0x27, + 0x03,0x36,0x20,0x16,0x15,0x11,0x23,0x27,0x23,0x06, + 0x23,0x22,0x27,0x26,0x10,0x36,0x37,0x37,0x35,0x34, + 0x26,0x22,0x07,0x03,0x14,0x16,0x33,0x32,0x36,0x35, + 0x35,0x07,0x04,0xa3,0x7d,0x1d,0x6a,0x38,0x30,0x3f, + 0xa8,0x25,0x09,0x70,0x01,0x04,0x75,0x4e,0x0c,0x04, + 0x4e,0x9e,0x6b,0x40,0x40,0xba,0xa8,0x75,0x4d,0xb4, + 0x61,0x11,0x52,0x4a,0x66,0x71,0x71,0xfe,0xfe,0x06, + 0x21,0x43,0xaa,0x46,0x15,0x33,0xbf,0x45,0xfd,0xfc, + 0x46,0xaa,0xc5,0xfd,0x1d,0x98,0xac,0x54,0x55,0x01, + 0x29,0xb5,0x08,0x06,0x5a,0x99,0x8a,0x3d,0xfd,0x60, + 0x73,0x71,0xca,0xb7,0x71,0x06,0x0d,0x00,0x00,0x03, + 0x00,0x4e,0xff,0xec,0x02,0x83,0x06,0x21,0x00,0x08, + 0x00,0x1f,0x00,0x29,0x00,0x00,0x01,0x15,0x06,0x06, + 0x07,0x23,0x35,0x36,0x37,0x01,0x36,0x20,0x16,0x15, + 0x11,0x23,0x27,0x23,0x06,0x23,0x22,0x27,0x26,0x10, + 0x36,0x37,0x37,0x35,0x34,0x26,0x22,0x07,0x03,0x14, + 0x16,0x33,0x32,0x36,0x35,0x35,0x07,0x04,0x02,0x5e, + 0x25,0xa1,0x47,0x2f,0x7e,0x41,0xfe,0xb9,0x70,0x01, + 0x04,0x75,0x4e,0x0c,0x04,0x4e,0x9e,0x6b,0x40,0x40, + 0xba,0xa8,0x75,0x4d,0xb4,0x61,0x11,0x52,0x4a,0x66, + 0x71,0x71,0xfe,0xfe,0x06,0x21,0x11,0x42,0xba,0x3b, + 0x15,0xa4,0x8f,0xfd,0xeb,0x46,0xaa,0xc5,0xfd,0x1d, + 0x98,0xac,0x54,0x55,0x01,0x29,0xb5,0x08,0x06,0x5a, + 0x99,0x8a,0x3d,0xfd,0x60,0x73,0x71,0xca,0xb7,0x71, + 0x06,0x0d,0x00,0x00,0x00,0x03,0x00,0x4e,0xff,0xec, + 0x02,0x83,0x06,0x23,0x00,0x11,0x00,0x28,0x00,0x32, + 0x00,0x00,0x01,0x23,0x26,0x27,0x27,0x06,0x07,0x06, + 0x07,0x23,0x35,0x36,0x37,0x33,0x16,0x17,0x16,0x17, + 0x05,0x36,0x20,0x16,0x15,0x11,0x23,0x27,0x23,0x06, + 0x23,0x22,0x27,0x26,0x10,0x36,0x37,0x37,0x35,0x34, + 0x26,0x22,0x07,0x03,0x14,0x16,0x33,0x32,0x36,0x35, + 0x35,0x07,0x04,0x02,0x6d,0x2f,0x2a,0x31,0x61,0x13, + 0x2c,0x51,0x31,0x2b,0x7a,0x40,0x5f,0x17,0x37,0x3c, + 0x34,0xfe,0x2d,0x70,0x01,0x04,0x75,0x4e,0x0c,0x04, + 0x4e,0x9e,0x6b,0x40,0x40,0xba,0xa8,0x75,0x4d,0xb4, + 0x61,0x11,0x52,0x4a,0x66,0x71,0x71,0xfe,0xfe,0x04, + 0xdb,0x2a,0x3b,0x70,0x15,0x33,0x5e,0x2f,0x13,0xa8, + 0x8d,0x36,0x5b,0x5f,0x45,0xe2,0x46,0xaa,0xc5,0xfd, + 0x1d,0x98,0xac,0x54,0x55,0x01,0x29,0xb5,0x08,0x06, + 0x5a,0x99,0x8a,0x3d,0xfd,0x60,0x73,0x71,0xca,0xb7, + 0x71,0x06,0x0d,0x00,0x00,0x03,0x00,0x4e,0xff,0xec, + 0x02,0xa5,0x05,0xae,0x00,0x15,0x00,0x2c,0x00,0x36, + 0x00,0x00,0x01,0x22,0x26,0x27,0x26,0x22,0x06,0x07, + 0x23,0x36,0x36,0x33,0x32,0x16,0x17,0x16,0x33,0x32, + 0x37,0x33,0x06,0x06,0x05,0x36,0x20,0x16,0x15,0x11, + 0x23,0x27,0x23,0x06,0x23,0x22,0x27,0x26,0x10,0x36, + 0x37,0x37,0x35,0x34,0x26,0x22,0x07,0x03,0x14,0x16, + 0x33,0x32,0x36,0x35,0x35,0x07,0x04,0x02,0x05,0x20, + 0x4a,0x1c,0x4c,0x40,0x2c,0x09,0x4a,0x0c,0x54,0x46, + 0x20,0x49,0x1b,0x49,0x25,0x3b,0x14,0x4a,0x09,0x54, + 0xfe,0x52,0x70,0x01,0x04,0x75,0x4e,0x0c,0x04,0x4e, + 0x9e,0x6b,0x40,0x40,0xba,0xa8,0x75,0x4d,0xb4,0x61, + 0x11,0x52,0x4a,0x66,0x71,0x71,0xfe,0xfe,0x04,0xdb, + 0x28,0x17,0x40,0x46,0x3b,0x64,0x6f,0x28,0x18,0x3f, + 0x81,0x65,0x6e,0xcf,0x46,0xaa,0xc5,0xfd,0x1d,0x98, + 0xac,0x54,0x55,0x01,0x29,0xb5,0x08,0x06,0x5a,0x99, + 0x8a,0x3d,0xfd,0x60,0x73,0x71,0xca,0xb7,0x71,0x06, + 0x0d,0x00,0x00,0x04,0x00,0x4e,0xff,0xec,0x02,0x83, + 0x05,0xbe,0x00,0x07,0x00,0x0f,0x00,0x26,0x00,0x30, + 0x00,0x00,0x12,0x36,0x32,0x16,0x14,0x06,0x22,0x26, + 0x24,0x36,0x32,0x16,0x14,0x06,0x22,0x26,0x01,0x36, + 0x20,0x16,0x15,0x11,0x23,0x27,0x23,0x06,0x23,0x22, + 0x27,0x26,0x10,0x36,0x37,0x37,0x35,0x34,0x26,0x22, + 0x07,0x03,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x07, + 0x04,0xa5,0x25,0x35,0x23,0x23,0x35,0x25,0x01,0x31, + 0x24,0x35,0x24,0x24,0x35,0x24,0xfe,0xc4,0x70,0x01, + 0x04,0x75,0x4e,0x0c,0x04,0x4e,0x9e,0x6b,0x40,0x40, + 0xba,0xa8,0x75,0x4d,0xb4,0x61,0x11,0x52,0x4a,0x66, + 0x71,0x71,0xfe,0xfe,0x05,0x95,0x29,0x29,0x52,0x2a, + 0x2a,0x52,0x29,0x29,0x52,0x2a,0x2b,0xfe,0xc8,0x46, + 0xaa,0xc5,0xfd,0x1d,0x98,0xac,0x54,0x55,0x01,0x29, + 0xb5,0x08,0x06,0x5a,0x99,0x8a,0x3d,0xfd,0x60,0x73, + 0x71,0xca,0xb7,0x71,0x06,0x0d,0x00,0x00,0x00,0x04, + 0x00,0x4e,0xff,0xec,0x02,0x83,0x06,0x58,0x00,0x07, + 0x00,0x0f,0x00,0x26,0x00,0x30,0x00,0x00,0x12,0x36, + 0x32,0x16,0x14,0x06,0x22,0x26,0x24,0x26,0x22,0x06, + 0x14,0x16,0x32,0x36,0x01,0x36,0x20,0x16,0x15,0x11, + 0x23,0x27,0x23,0x06,0x23,0x22,0x27,0x26,0x10,0x36, + 0x37,0x37,0x35,0x34,0x26,0x22,0x07,0x03,0x14,0x16, + 0x33,0x32,0x36,0x35,0x35,0x07,0x04,0xb9,0x6b,0xb3, + 0x70,0x6c,0xb8,0x6a,0x01,0x40,0x3f,0x70,0x43,0x3e, + 0x71,0x43,0xfe,0xa1,0x70,0x01,0x04,0x75,0x4e,0x0c, + 0x04,0x4e,0x9e,0x6b,0x40,0x40,0xba,0xa8,0x75,0x4d, + 0xb4,0x61,0x11,0x52,0x4a,0x66,0x71,0x71,0xfe,0xfe, + 0x05,0xf3,0x65,0x64,0xab,0x66,0x64,0x8b,0x40,0x41, + 0x69,0x3f,0x40,0xfe,0xa3,0x46,0xaa,0xc5,0xfd,0x1d, + 0x98,0xac,0x54,0x55,0x01,0x29,0xb5,0x08,0x06,0x5a, + 0x99,0x8a,0x3d,0xfd,0x60,0x73,0x71,0xca,0xb7,0x71, + 0x06,0x0d,0x00,0x00,0x00,0x03,0x00,0x4e,0xff,0xec, + 0x04,0x8b,0x04,0x52,0x00,0x22,0x00,0x29,0x00,0x33, + 0x00,0x00,0x01,0x32,0x17,0x36,0x33,0x32,0x16,0x15, + 0x15,0x21,0x12,0x33,0x32,0x37,0x15,0x06,0x22,0x26, + 0x27,0x06,0x06,0x22,0x27,0x26,0x10,0x36,0x37,0x37, + 0x35,0x34,0x26,0x22,0x07,0x27,0x36,0x01,0x35,0x34, + 0x26,0x23,0x22,0x03,0x04,0x06,0x14,0x16,0x33,0x32, + 0x36,0x35,0x35,0x07,0x01,0x85,0xb2,0x33,0x54,0xa6, + 0x88,0x9f,0xfd,0xfe,0x09,0xf9,0x71,0x6c,0x65,0xe3, + 0xa1,0x27,0x2d,0x8d,0xd0,0x40,0x40,0xba,0xa8,0x75, + 0x50,0xb1,0x61,0x29,0x71,0x03,0x22,0x6e,0x5d,0xc2, + 0x15,0xfe,0xa4,0x7d,0x52,0x4a,0x66,0x71,0x71,0x04, + 0x52,0xac,0xac,0xff,0xdc,0x58,0xfe,0x23,0x43,0x58, + 0x41,0x7f,0x72,0x7e,0x73,0x54,0x55,0x01,0x29,0xb5, + 0x08,0x06,0x5a,0x93,0x90,0x3d,0x4b,0x46,0xfe,0x23, + 0x0c,0xad,0xcc,0xfe,0x7b,0x53,0x7e,0xf6,0x71,0xca, + 0xb7,0x71,0x06,0x00,0x00,0x01,0x00,0x60,0xfe,0x14, + 0x02,0x52,0x04,0x52,0x00,0x24,0x00,0x00,0x01,0x22, + 0x10,0x33,0x32,0x37,0x15,0x06,0x06,0x23,0x23,0x07, + 0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33, + 0x32,0x36,0x34,0x26,0x27,0x37,0x26,0x11,0x10,0x12, + 0x33,0x32,0x17,0x07,0x26,0x01,0xb2,0xef,0xef,0x46, + 0x54,0x1f,0x60,0x25,0x03,0x2a,0xa0,0x7b,0x6f,0x3d, + 0x19,0x21,0x2d,0x4c,0x4c,0x54,0x52,0x43,0xfe,0xa8, + 0xa2,0x65,0x43,0x25,0x42,0x03,0xf8,0xfc,0x4a,0x20, + 0x50,0x11,0x15,0x5f,0x27,0x89,0x62,0x67,0x0b,0x4e, + 0x0b,0x41,0x72,0x3e,0x0d,0x94,0x3e,0x01,0xe7,0x01, + 0x17,0x01,0x22,0x25,0x54,0x1f,0x00,0x03,0x00,0x60, + 0xff,0xec,0x02,0xc3,0x06,0x21,0x00,0x09,0x00,0x1b, + 0x00,0x21,0x00,0x00,0x13,0x33,0x16,0x16,0x17,0x15, + 0x23,0x26,0x26,0x27,0x01,0x22,0x27,0x26,0x10,0x12, + 0x33,0x32,0x12,0x15,0x15,0x21,0x12,0x21,0x32,0x37, + 0x15,0x06,0x13,0x34,0x26,0x23,0x22,0x03,0xc5,0x7d, + 0x1d,0x6a,0x38,0x30,0x3f,0xa8,0x25,0x01,0x00,0xac, + 0x5d,0x5c,0xa5,0x9b,0x87,0x9c,0xfd,0xfe,0x04,0x01, + 0x04,0x67,0x70,0x68,0x2c,0x6d,0x5d,0xc4,0x13,0x06, + 0x21,0x43,0xaa,0x46,0x15,0x33,0xbf,0x45,0xf9,0xdc, + 0x92,0x94,0x02,0x1b,0x01,0x25,0xff,0x00,0xdb,0x58, + 0xfe,0x27,0x43,0x5c,0x41,0x02,0x89,0xb3,0xd4,0xfe, + 0x79,0x00,0x00,0x03,0x00,0x60,0xff,0xec,0x02,0xc3, + 0x06,0x21,0x00,0x08,0x00,0x1a,0x00,0x20,0x00,0x00, + 0x01,0x15,0x06,0x06,0x07,0x23,0x35,0x36,0x37,0x03, + 0x22,0x27,0x26,0x10,0x12,0x33,0x32,0x12,0x15,0x15, + 0x21,0x12,0x21,0x32,0x37,0x15,0x06,0x13,0x34,0x26, + 0x23,0x22,0x03,0x02,0x93,0x25,0xa2,0x46,0x2f,0x7e, + 0x41,0x51,0xac,0x5d,0x5c,0xa5,0x9b,0x87,0x9c,0xfd, + 0xfe,0x04,0x01,0x04,0x67,0x70,0x68,0x2c,0x6d,0x5d, + 0xc4,0x13,0x06,0x21,0x11,0x42,0xba,0x3b,0x15,0xa4, + 0x8f,0xf9,0xcb,0x92,0x94,0x02,0x1b,0x01,0x25,0xff, + 0x00,0xdb,0x58,0xfe,0x27,0x43,0x5c,0x41,0x02,0x89, + 0xb3,0xd4,0xfe,0x79,0x00,0x03,0x00,0x60,0xff,0xec, + 0x02,0xc3,0x06,0x21,0x00,0x11,0x00,0x23,0x00,0x29, + 0x00,0x00,0x01,0x23,0x26,0x27,0x27,0x06,0x07,0x06, + 0x07,0x23,0x35,0x36,0x37,0x33,0x16,0x17,0x16,0x17, + 0x03,0x22,0x27,0x26,0x10,0x12,0x33,0x32,0x12,0x15, + 0x15,0x21,0x12,0x21,0x32,0x37,0x15,0x06,0x13,0x34, + 0x26,0x23,0x22,0x03,0x02,0x88,0x2f,0x2a,0x31,0x61, + 0x13,0x2c,0x51,0x31,0x2b,0x79,0x41,0x5f,0x17,0x37, + 0x3c,0x34,0xc3,0xac,0x5d,0x5c,0xa5,0x9b,0x87,0x9c, + 0xfd,0xfe,0x04,0x01,0x04,0x67,0x70,0x68,0x2c,0x6d, + 0x5d,0xc4,0x13,0x04,0xd9,0x2a,0x3b,0x70,0x15,0x33, + 0x5e,0x2f,0x13,0xa8,0x8d,0x36,0x5b,0x5f,0x45,0xfb, + 0x00,0x92,0x94,0x02,0x1b,0x01,0x25,0xff,0x00,0xdb, + 0x58,0xfe,0x27,0x43,0x5c,0x41,0x02,0x89,0xb3,0xd4, + 0xfe,0x79,0x00,0x00,0x00,0x04,0x00,0x60,0xff,0xec, + 0x02,0xc3,0x05,0xbe,0x00,0x07,0x00,0x0f,0x00,0x21, + 0x00,0x27,0x00,0x00,0x12,0x36,0x32,0x16,0x14,0x06, + 0x22,0x26,0x24,0x36,0x32,0x16,0x14,0x06,0x22,0x26, + 0x03,0x22,0x27,0x26,0x10,0x12,0x33,0x32,0x12,0x15, + 0x15,0x21,0x12,0x21,0x32,0x37,0x15,0x06,0x13,0x34, + 0x26,0x23,0x22,0x03,0xc3,0x25,0x35,0x23,0x23,0x35, + 0x25,0x01,0x31,0x24,0x35,0x24,0x24,0x35,0x24,0x2f, + 0xac,0x5d,0x5c,0xa5,0x9b,0x87,0x9c,0xfd,0xfe,0x04, + 0x01,0x04,0x67,0x70,0x68,0x2c,0x6d,0x5d,0xc4,0x13, + 0x05,0x95,0x29,0x29,0x52,0x2a,0x2a,0x52,0x29,0x29, + 0x52,0x2a,0x2b,0xfa,0xa8,0x92,0x94,0x02,0x1b,0x01, + 0x25,0xff,0x00,0xdb,0x58,0xfe,0x27,0x43,0x5c,0x41, + 0x02,0x89,0xb3,0xd4,0xfe,0x79,0x00,0x02,0xff,0xe0, + 0x00,0x00,0x01,0x1c,0x06,0x21,0x00,0x09,0x00,0x0d, + 0x00,0x00,0x03,0x33,0x16,0x16,0x17,0x15,0x23,0x26, + 0x26,0x27,0x01,0x23,0x11,0x33,0x20,0x7d,0x1d,0x6a, + 0x38,0x30,0x3f,0xa8,0x25,0x01,0x10,0x5f,0x5f,0x06, + 0x21,0x43,0xaa,0x46,0x15,0x33,0xbf,0x45,0xf9,0xf0, + 0x04,0x3d,0x00,0x02,0x00,0x71,0x00,0x00,0x01,0xad, + 0x06,0x21,0x00,0x08,0x00,0x0c,0x00,0x00,0x01,0x15, + 0x06,0x06,0x07,0x23,0x35,0x36,0x37,0x03,0x23,0x11, + 0x33,0x01,0xad,0x25,0xa2,0x46,0x2f,0x7e,0x41,0x40, + 0x5f,0x5f,0x06,0x21,0x11,0x42,0xba,0x3b,0x15,0xa4, + 0x8f,0xf9,0xdf,0x04,0x3d,0x00,0x00,0x00,0x00,0x02, + 0xff,0xd6,0x00,0x00,0x01,0xad,0x06,0x21,0x00,0x11, + 0x00,0x15,0x00,0x00,0x01,0x23,0x26,0x27,0x27,0x06, + 0x07,0x06,0x07,0x23,0x35,0x36,0x37,0x33,0x16,0x17, + 0x16,0x17,0x03,0x23,0x11,0x33,0x01,0xad,0x2f,0x2a, + 0x31,0x61,0x13,0x2c,0x51,0x31,0x2b,0x7a,0x40,0x5f, + 0x17,0x37,0x3c,0x34,0xbd,0x5f,0x5f,0x04,0xd9,0x2a, + 0x3b,0x70,0x15,0x33,0x5e,0x2f,0x13,0xa8,0x8d,0x36, + 0x5b,0x5f,0x45,0xfb,0x14,0x04,0x3d,0x00,0x00,0x03, + 0xff,0xec,0x00,0x00,0x01,0x9a,0x05,0xbe,0x00,0x07, + 0x00,0x0f,0x00,0x13,0x00,0x00,0x02,0x36,0x32,0x16, + 0x14,0x06,0x22,0x26,0x24,0x36,0x32,0x16,0x14,0x06, + 0x22,0x26,0x03,0x23,0x11,0x33,0x14,0x25,0x35,0x23, + 0x23,0x35,0x25,0x01,0x31,0x24,0x35,0x24,0x24,0x35, + 0x24,0x2d,0x5f,0x5f,0x05,0x95,0x29,0x29,0x52,0x2a, + 0x2a,0x52,0x29,0x29,0x52,0x2a,0x2b,0xfa,0xbc,0x04, + 0x3d,0x00,0x00,0x00,0x00,0x02,0x00,0x5e,0xff,0xec, + 0x02,0xfa,0x06,0x14,0x00,0x17,0x00,0x21,0x00,0x00, + 0x01,0x10,0x21,0x22,0x02,0x10,0x36,0x20,0x17,0x33, + 0x02,0x27,0x07,0x27,0x37,0x26,0x27,0x37,0x16,0x17, + 0x37,0x17,0x07,0x00,0x05,0x22,0x06,0x10,0x16,0x32, + 0x36,0x35,0x34,0x26,0x02,0xfa,0xfe,0xae,0x94,0xb6, + 0xa1,0x01,0x31,0x49,0x08,0x34,0xba,0xae,0x27,0xa0, + 0x36,0x3a,0x2f,0x4b,0x42,0xbc,0x27,0xae,0x01,0x1b, + 0xfe,0xb6,0x76,0x7c,0x81,0xe9,0x72,0x82,0x02,0x02, + 0xfd,0xea,0x01,0x0f,0x01,0xc4,0xfb,0x7b,0x01,0x26, + 0xd8,0x66,0x42,0x5e,0x33,0x2d,0x3d,0x2f,0x41,0x6e, + 0x41,0x67,0xfe,0xbb,0xc5,0xcd,0xfe,0x84,0xd5,0xcd, + 0xd4,0xa6,0xd7,0x00,0x00,0x02,0x00,0x91,0x00,0x00, + 0x02,0xd9,0x05,0xae,0x00,0x15,0x00,0x29,0x00,0x00, + 0x01,0x22,0x26,0x27,0x26,0x22,0x06,0x07,0x23,0x36, + 0x36,0x33,0x32,0x16,0x17,0x16,0x33,0x32,0x37,0x33, + 0x06,0x06,0x07,0x32,0x16,0x15,0x11,0x23,0x11,0x10, + 0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x17,0x33, + 0x36,0x36,0x02,0x36,0x20,0x4a,0x1c,0x4c,0x40,0x2c, + 0x09,0x4a,0x0c,0x54,0x46,0x20,0x49,0x1b,0x49,0x25, + 0x3b,0x14,0x4a,0x09,0x54,0x9c,0x80,0x7c,0x5e,0xa0, + 0x7a,0x71,0x5f,0x50,0x08,0x09,0x21,0x80,0x04,0xdb, + 0x28,0x17,0x40,0x46,0x3b,0x64,0x6f,0x28,0x18,0x3f, + 0x81,0x65,0x6e,0x89,0xab,0xb9,0xfd,0x12,0x02,0xec, + 0x01,0x0e,0xca,0xdc,0xfd,0xac,0x04,0x3d,0x97,0x50, + 0x5c,0x00,0x00,0x03,0x00,0x5e,0xff,0xec,0x02,0xf4, + 0x06,0x21,0x00,0x09,0x00,0x12,0x00,0x1a,0x00,0x00, + 0x13,0x33,0x16,0x16,0x17,0x15,0x23,0x26,0x26,0x27, + 0x13,0x32,0x12,0x10,0x02,0x20,0x02,0x11,0x10,0x05, + 0x22,0x06,0x15,0x10,0x33,0x32,0x10,0xce,0x7d,0x1d, + 0x6a,0x38,0x30,0x3f,0xa8,0x25,0xdc,0x9c,0xae,0xad, + 0xfe,0xc0,0xa9,0x01,0x4a,0x78,0x6f,0xe7,0xe9,0x06, + 0x21,0x43,0xaa,0x46,0x15,0x33,0xbf,0x45,0xfe,0x42, + 0xfe,0xda,0xfd,0xe3,0xfe,0xdd,0x01,0x23,0x01,0x12, + 0x02,0x31,0x5a,0xe9,0xee,0xfe,0x25,0x03,0xb2,0x00, + 0x00,0x00,0x00,0x03,0x00,0x5e,0xff,0xec,0x02,0xf4, + 0x06,0x21,0x00,0x08,0x00,0x11,0x00,0x19,0x00,0x00, + 0x01,0x15,0x06,0x06,0x07,0x23,0x35,0x36,0x37,0x03, + 0x32,0x12,0x10,0x02,0x20,0x02,0x11,0x10,0x05,0x22, + 0x06,0x15,0x10,0x33,0x32,0x10,0x02,0x91,0x25,0xa2, + 0x46,0x2f,0x7e,0x41,0x6a,0x9c,0xae,0xad,0xfe,0xc0, + 0xa9,0x01,0x4a,0x78,0x6f,0xe7,0xe9,0x06,0x21,0x11, + 0x42,0xba,0x3b,0x15,0xa4,0x8f,0xfe,0x31,0xfe,0xda, + 0xfd,0xe3,0xfe,0xdd,0x01,0x23,0x01,0x12,0x02,0x31, + 0x5a,0xe9,0xee,0xfe,0x25,0x03,0xb2,0x00,0x00,0x03, + 0x00,0x5e,0xff,0xec,0x02,0xf4,0x06,0x21,0x00,0x11, + 0x00,0x1a,0x00,0x22,0x00,0x00,0x01,0x23,0x26,0x27, + 0x27,0x06,0x07,0x06,0x07,0x23,0x35,0x36,0x37,0x33, + 0x16,0x17,0x16,0x17,0x07,0x32,0x12,0x10,0x02,0x20, + 0x02,0x11,0x10,0x05,0x22,0x06,0x15,0x10,0x33,0x32, + 0x10,0x02,0x96,0x2f,0x2a,0x31,0x61,0x13,0x2c,0x51, + 0x31,0x2b,0x79,0x41,0x5f,0x17,0x37,0x3c,0x34,0xec, + 0x9c,0xae,0xad,0xfe,0xc0,0xa9,0x01,0x4a,0x78,0x6f, + 0xe7,0xe9,0x04,0xd9,0x2a,0x3b,0x70,0x15,0x33,0x5e, + 0x2f,0x13,0xa8,0x8d,0x36,0x5b,0x5f,0x45,0x9a,0xfe, + 0xda,0xfd,0xe3,0xfe,0xdd,0x01,0x23,0x01,0x12,0x02, + 0x31,0x5a,0xe9,0xee,0xfe,0x25,0x03,0xb2,0x00,0x03, + 0x00,0x5e,0xff,0xec,0x02,0xf4,0x05,0xae,0x00,0x15, + 0x00,0x1e,0x00,0x26,0x00,0x00,0x01,0x22,0x26,0x27, + 0x26,0x22,0x06,0x07,0x23,0x36,0x36,0x33,0x32,0x16, + 0x17,0x16,0x33,0x32,0x37,0x33,0x06,0x06,0x07,0x32, + 0x12,0x10,0x02,0x20,0x02,0x11,0x10,0x05,0x22,0x06, + 0x15,0x10,0x33,0x32,0x10,0x02,0x21,0x20,0x4a,0x1c, + 0x4c,0x40,0x2c,0x09,0x4a,0x0c,0x54,0x46,0x20,0x49, + 0x1b,0x49,0x25,0x3b,0x14,0x4a,0x09,0x54,0xba,0x9c, + 0xae,0xad,0xfe,0xc0,0xa9,0x01,0x4a,0x78,0x6f,0xe7, + 0xe9,0x04,0xdb,0x28,0x17,0x40,0x46,0x3b,0x64,0x6f, + 0x28,0x18,0x3f,0x81,0x65,0x6e,0x89,0xfe,0xda,0xfd, + 0xe3,0xfe,0xdd,0x01,0x23,0x01,0x12,0x02,0x31,0x5a, + 0xe9,0xee,0xfe,0x25,0x03,0xb2,0x00,0x04,0x00,0x5e, + 0xff,0xec,0x02,0xf4,0x05,0xbe,0x00,0x07,0x00,0x0f, + 0x00,0x18,0x00,0x20,0x00,0x00,0x12,0x36,0x32,0x16, + 0x14,0x06,0x22,0x26,0x24,0x36,0x32,0x16,0x14,0x06, + 0x22,0x26,0x07,0x32,0x12,0x10,0x02,0x20,0x02,0x11, + 0x10,0x05,0x22,0x06,0x15,0x10,0x33,0x32,0x10,0xd2, + 0x25,0x35,0x23,0x23,0x35,0x25,0x01,0x31,0x24,0x35, + 0x24,0x24,0x35,0x24,0x59,0x9c,0xae,0xad,0xfe,0xc0, + 0xa9,0x01,0x4a,0x78,0x6f,0xe7,0xe9,0x05,0x95,0x29, + 0x29,0x52,0x2a,0x2a,0x52,0x29,0x29,0x52,0x2a,0x2b, + 0xf2,0xfe,0xda,0xfd,0xe3,0xfe,0xdd,0x01,0x23,0x01, + 0x12,0x02,0x31,0x5a,0xe9,0xee,0xfe,0x25,0x03,0xb2, + 0x00,0x00,0x00,0x03,0x00,0x3b,0x01,0x0a,0x02,0xf8, + 0x04,0x9a,0x00,0x06,0x00,0x0a,0x00,0x11,0x00,0x00, + 0x01,0x22,0x34,0x32,0x15,0x14,0x06,0x01,0x21,0x35, + 0x21,0x01,0x22,0x34,0x32,0x15,0x14,0x06,0x01,0x9a, + 0x4e,0x9b,0x2a,0x01,0x3b,0xfd,0x43,0x02,0xbd,0xfe, + 0xa2,0x4e,0x9b,0x2a,0x03,0xc5,0xd5,0x6b,0x36,0x34, + 0xfe,0xe5,0x52,0xfe,0x0e,0xd5,0x6a,0x36,0x35,0x00, + 0x00,0x03,0x00,0x44,0xff,0x71,0x03,0x0e,0x04,0xa6, + 0x00,0x11,0x00,0x18,0x00,0x1f,0x00,0x00,0x01,0x16, + 0x10,0x02,0x23,0x22,0x27,0x07,0x27,0x37,0x26,0x11, + 0x10,0x21,0x32,0x17,0x37,0x17,0x05,0x22,0x06,0x10, + 0x17,0x01,0x26,0x03,0x32,0x11,0x34,0x27,0x01,0x16, + 0x02,0xa8,0x4c,0xad,0xa1,0x72,0x46,0x5f,0x4b,0x70, + 0x56,0x01,0x4c,0x75,0x50,0x54,0x4b,0xfe,0x9a,0x78, + 0x6f,0x26,0x01,0x5b,0x38,0x62,0xe9,0x20,0xfe,0xaa, + 0x33,0x03,0xac,0x94,0xfd,0xf7,0xfe,0xdd,0x45,0xc0, + 0x29,0xe3,0x92,0x01,0x12,0x02,0x31,0x56,0xaa,0x29, + 0x85,0xe9,0xfe,0x4a,0x72,0x02,0xbb,0x56,0xfc,0x4e, + 0x01,0xdb,0xb3,0x69,0xfd,0x4c,0x43,0x00,0x00,0x00, + 0x00,0x02,0x00,0x8d,0xff,0xec,0x02,0xd5,0x06,0x21, + 0x00,0x09,0x00,0x1f,0x00,0x00,0x13,0x33,0x16,0x16, + 0x17,0x15,0x23,0x26,0x26,0x27,0x01,0x23,0x27,0x23, + 0x06,0x06,0x23,0x22,0x27,0x26,0x35,0x11,0x33,0x11, + 0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0xc3,0x7d, + 0x1d,0x6a,0x38,0x30,0x3f,0xa8,0x25,0x02,0x12,0x50, + 0x0c,0x08,0x23,0x7b,0x4a,0x83,0x3d,0x3c,0x5f,0x4c, + 0x51,0x7c,0x72,0x5e,0x06,0x21,0x43,0xaa,0x46,0x15, + 0x33,0xbf,0x45,0xf9,0xf0,0x98,0x52,0x5a,0x5d,0x5d, + 0xd3,0x02,0xc4,0xfd,0x3c,0xa0,0x95,0xc8,0xdd,0x02, + 0x54,0x00,0x00,0x00,0x00,0x02,0x00,0x8d,0xff,0xec, + 0x02,0xd5,0x06,0x21,0x00,0x08,0x00,0x1e,0x00,0x00, + 0x01,0x15,0x06,0x06,0x07,0x23,0x35,0x36,0x37,0x13, + 0x23,0x27,0x23,0x06,0x06,0x23,0x22,0x27,0x26,0x35, + 0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11, + 0x33,0x02,0x9b,0x25,0xa2,0x46,0x2f,0x7e,0x41,0xb7, + 0x50,0x0c,0x08,0x23,0x7b,0x4a,0x83,0x3d,0x3c,0x5f, + 0x4c,0x51,0x7c,0x72,0x5e,0x06,0x21,0x11,0x42,0xba, + 0x3b,0x15,0xa4,0x8f,0xf9,0xdf,0x98,0x52,0x5a,0x5d, + 0x5d,0xd3,0x02,0xc4,0xfd,0x3c,0xa0,0x95,0xc8,0xdd, + 0x02,0x54,0x00,0x00,0x00,0x02,0x00,0x8d,0xff,0xec, + 0x02,0xd5,0x06,0x21,0x00,0x11,0x00,0x27,0x00,0x00, + 0x01,0x23,0x26,0x27,0x27,0x06,0x07,0x06,0x07,0x23, + 0x35,0x36,0x37,0x33,0x16,0x17,0x16,0x17,0x13,0x23, + 0x27,0x23,0x06,0x06,0x23,0x22,0x27,0x26,0x35,0x11, + 0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33, + 0x02,0x96,0x2f,0x2a,0x31,0x61,0x13,0x2c,0x51,0x31, + 0x2b,0x79,0x41,0x5f,0x17,0x37,0x3c,0x34,0x3f,0x50, + 0x0c,0x08,0x23,0x7b,0x4a,0x83,0x3d,0x3c,0x5f,0x4c, + 0x51,0x7c,0x72,0x5e,0x04,0xd9,0x2a,0x3b,0x70,0x15, + 0x33,0x5e,0x2f,0x13,0xa8,0x8d,0x36,0x5b,0x5f,0x45, + 0xfb,0x14,0x98,0x52,0x5a,0x5d,0x5d,0xd3,0x02,0xc4, + 0xfd,0x3c,0xa0,0x95,0xc8,0xdd,0x02,0x54,0x00,0x03, + 0x00,0x8d,0xff,0xec,0x02,0xd5,0x05,0xbe,0x00,0x07, + 0x00,0x0f,0x00,0x25,0x00,0x00,0x12,0x36,0x32,0x16, + 0x14,0x06,0x22,0x26,0x24,0x36,0x32,0x16,0x14,0x06, + 0x22,0x26,0x13,0x23,0x27,0x23,0x06,0x06,0x23,0x22, + 0x27,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32, + 0x36,0x35,0x11,0x33,0xda,0x25,0x35,0x23,0x23,0x35, + 0x25,0x01,0x31,0x24,0x35,0x24,0x24,0x35,0x24,0xca, + 0x50,0x0c,0x08,0x23,0x7b,0x4a,0x83,0x3d,0x3c,0x5f, + 0x4c,0x51,0x7c,0x72,0x5e,0x05,0x95,0x29,0x29,0x52, + 0x2a,0x2a,0x52,0x29,0x29,0x52,0x2a,0x2b,0xfa,0xbc, + 0x98,0x52,0x5a,0x5d,0x5d,0xd3,0x02,0xc4,0xfd,0x3c, + 0xa0,0x95,0xc8,0xdd,0x02,0x54,0x00,0x00,0x00,0x02, + 0xff,0xfe,0xfe,0x14,0x02,0x83,0x06,0x21,0x00,0x08, + 0x00,0x1f,0x00,0x00,0x01,0x15,0x06,0x06,0x07,0x23, + 0x35,0x36,0x37,0x01,0x22,0x27,0x35,0x16,0x33,0x32, + 0x36,0x37,0x37,0x01,0x33,0x13,0x16,0x17,0x33,0x36, + 0x37,0x13,0x33,0x01,0x06,0x06,0x02,0x39,0x25,0xa2, + 0x46,0x2f,0x7e,0x41,0xfe,0x98,0x25,0x31,0x2a,0x24, + 0x3b,0x46,0x1c,0x30,0xfe,0xf1,0x60,0xa4,0x1e,0x1a, + 0x08,0x15,0x20,0xa0,0x60,0xfe,0xc3,0x24,0x72,0x06, + 0x21,0x11,0x42,0xba,0x3b,0x15,0xa4,0x8f,0xf7,0xf3, + 0x11,0x56,0x0e,0x65,0x74,0xbc,0x04,0x3b,0xfd,0x5b, + 0x81,0x92,0x8f,0x86,0x02,0xa3,0xfa,0xf6,0x93,0x8c, + 0x00,0x02,0x00,0x91,0xfe,0x14,0x03,0x1f,0x06,0x14, + 0x00,0x13,0x00,0x1f,0x00,0x00,0x01,0x20,0x11,0x10, + 0x02,0x23,0x22,0x26,0x27,0x23,0x17,0x11,0x23,0x11, + 0x33,0x11,0x07,0x33,0x36,0x36,0x03,0x15,0x14,0x16, + 0x33,0x32,0x37,0x36,0x10,0x26,0x22,0x06,0x01,0xe1, + 0x01,0x3e,0x9d,0x94,0x53,0x89,0x22,0x07,0x0b,0x63, + 0x5f,0x04,0x04,0x27,0x7f,0xa6,0x76,0x79,0x6e,0x36, + 0x37,0x69,0xee,0x73,0x04,0x52,0xfd,0xcf,0xfe,0xf0, + 0xfe,0xdb,0x5c,0x4e,0x77,0xfd,0xf5,0x08,0x00,0xfe, + 0x1c,0x88,0x51,0x59,0xfd,0xf4,0x1f,0xf9,0xec,0x71, + 0x6f,0x01,0xf6,0xe0,0xd3,0x00,0x00,0x00,0x00,0x03, + 0xff,0xfe,0xfe,0x14,0x02,0x83,0x05,0xbe,0x00,0x07, + 0x00,0x0f,0x00,0x26,0x00,0x00,0x12,0x36,0x32,0x16, + 0x14,0x06,0x22,0x26,0x24,0x36,0x32,0x16,0x14,0x06, + 0x22,0x26,0x01,0x22,0x27,0x35,0x16,0x33,0x32,0x36, + 0x37,0x37,0x01,0x33,0x13,0x16,0x17,0x33,0x36,0x37, + 0x13,0x33,0x01,0x06,0x06,0x74,0x25,0x35,0x23,0x23, + 0x35,0x25,0x01,0x31,0x24,0x35,0x24,0x24,0x35,0x24, + 0xfe,0xaf,0x25,0x31,0x2a,0x24,0x3b,0x46,0x1c,0x30, + 0xfe,0xf1,0x60,0xa4,0x1e,0x1a,0x08,0x15,0x20,0xa0, + 0x60,0xfe,0xc3,0x24,0x72,0x05,0x95,0x29,0x29,0x52, + 0x2a,0x2a,0x52,0x29,0x29,0x52,0x2a,0x2b,0xf8,0xd0, + 0x11,0x56,0x0e,0x65,0x74,0xbc,0x04,0x3b,0xfd,0x5b, + 0x81,0x92,0x8f,0x86,0x02,0xa3,0xfa,0xf6,0x93,0x8c, + 0x00,0x01,0x00,0x91,0x00,0x00,0x00,0xf0,0x04,0x3d, + 0x00,0x03,0x00,0x00,0x33,0x23,0x11,0x33,0xf0,0x5f, + 0x5f,0x04,0x3d,0x00,0x00,0x02,0x00,0x6f,0xff,0xfa, + 0x04,0x6f,0x05,0xbc,0x00,0x11,0x00,0x19,0x00,0x00, + 0x01,0x15,0x21,0x11,0x21,0x15,0x21,0x11,0x21,0x15, + 0x21,0x07,0x20,0x11,0x10,0x12,0x33,0x17,0x03,0x11, + 0x22,0x07,0x06,0x10,0x17,0x16,0x04,0x6f,0xfe,0x4f, + 0x01,0x98,0xfe,0x68,0x01,0xb1,0xfe,0x58,0x7d,0xfe, + 0x25,0xf6,0xed,0x73,0x69,0xc9,0x5f,0x5d,0x5c,0x5d, + 0x05,0xb6,0x5e,0xfd,0xd5,0x5e,0xfd,0x8f,0x5e,0x06, + 0x02,0xe5,0x01,0x6a,0x01,0x73,0x06,0xfa,0xa2,0x05, + 0x06,0x96,0x96,0xfd,0x58,0x9a,0x98,0x00,0x00,0x00, + 0x00,0x03,0x00,0x5e,0xff,0xec,0x04,0xf2,0x04,0x52, + 0x00,0x18,0x00,0x1f,0x00,0x28,0x00,0x00,0x05,0x22, + 0x27,0x06,0x23,0x22,0x02,0x11,0x10,0x21,0x32,0x17, + 0x36,0x33,0x32,0x12,0x15,0x15,0x21,0x12,0x21,0x32, + 0x37,0x15,0x06,0x13,0x35,0x34,0x26,0x23,0x22,0x03, + 0x07,0x35,0x10,0x23,0x22,0x06,0x15,0x10,0x20,0x03, + 0xf4,0xda,0x59,0x4f,0xcc,0x9f,0xa9,0x01,0x4c,0xc1, + 0x53,0x50,0xc1,0x87,0x9c,0xfd,0xfe,0x04,0x01,0x04, + 0x67,0x70,0x68,0x2c,0x6d,0x5d,0xc3,0x14,0x63,0xe7, + 0x78,0x6f,0x01,0xce,0x14,0xe7,0xe7,0x01,0x23,0x01, + 0x12,0x02,0x31,0xe3,0xe3,0xff,0x00,0xdb,0x58,0xfe, + 0x23,0x43,0x58,0x41,0x02,0x89,0x0c,0xab,0xce,0xfe, + 0x7b,0x6d,0x19,0x01,0xd7,0xe9,0xee,0xfe,0x21,0x00, + 0x00,0x00,0x00,0x02,0x00,0x56,0xff,0xec,0x02,0xd1, + 0x07,0x73,0x00,0x0f,0x00,0x35,0x00,0x00,0x01,0x15, + 0x06,0x06,0x07,0x23,0x26,0x27,0x35,0x33,0x16,0x16, + 0x17,0x37,0x36,0x37,0x01,0x32,0x36,0x34,0x26,0x27, + 0x2e,0x02,0x35,0x34,0x35,0x34,0x36,0x33,0x32,0x33, + 0x32,0x17,0x07,0x26,0x22,0x06,0x14,0x16,0x17,0x16, + 0x16,0x15,0x14,0x07,0x06,0x23,0x22,0x27,0x35,0x16, + 0x16,0x02,0xa3,0x38,0x6e,0x18,0x5f,0x46,0x74,0x2b, + 0x31,0x7d,0x13,0x31,0x6f,0x1c,0xfe,0xfb,0x70,0x90, + 0x67,0x8f,0x72,0x6f,0x36,0xc3,0x8c,0x02,0x03,0x9a, + 0x6e,0x26,0x6f,0xdf,0x87,0x63,0x8e,0x94,0x89,0x64, + 0x65,0x99,0xaf,0x6a,0x38,0x98,0x07,0x73,0x13,0x48, + 0xb7,0x36,0x95,0xa0,0x13,0x2f,0x91,0x15,0x37,0x85, + 0x19,0xf8,0xd7,0xaa,0xfc,0x8f,0x46,0x3a,0x6a,0x8d, + 0x64,0x06,0x06,0x97,0xce,0x3c,0x5e,0x39,0x93,0xf5, + 0x86,0x4a,0x48,0xc1,0x8a,0xb4,0x70,0x6f,0x33,0x6a, + 0x1e,0x21,0x00,0x02,0x00,0x4a,0xff,0xec,0x02,0x3d, + 0x06,0x21,0x00,0x0f,0x00,0x2f,0x00,0x00,0x01,0x15, + 0x06,0x06,0x07,0x23,0x26,0x27,0x35,0x33,0x16,0x16, + 0x17,0x37,0x36,0x37,0x03,0x32,0x36,0x35,0x34,0x2e, + 0x03,0x35,0x34,0x36,0x32,0x17,0x07,0x26,0x22,0x06, + 0x14,0x17,0x16,0x17,0x16,0x17,0x16,0x10,0x06,0x20, + 0x27,0x35,0x16,0x16,0x02,0x3c,0x38,0x6e,0x18,0x5f, + 0x47,0x73,0x2b,0x31,0x7d,0x13,0x31,0x6f,0x1c,0xe4, + 0x54,0x60,0x47,0xd1,0x4f,0x2c,0x9f,0xfb,0x59,0x31, + 0x52,0xb0,0x64,0x22,0x22,0x6e,0x6b,0x28,0x50,0x91, + 0xfe,0xf1,0x51,0x25,0x7a,0x06,0x21,0x13,0x48,0xb7, + 0x36,0x95,0xa0,0x13,0x2f,0x91,0x15,0x37,0x85,0x19, + 0xfa,0x25,0x6d,0x5d,0x47,0x66,0x85,0x52,0x67,0x49, + 0x75,0x99,0x3e,0x53,0x37,0x63,0x99,0x31,0x30,0x45, + 0x46,0x2a,0x56,0xfe,0xf6,0x9a,0x3d,0x6f,0x25,0x2d, + 0x00,0x03,0x00,0x00,0x00,0x00,0x02,0xae,0x07,0x10, + 0x00,0x07,0x00,0x0f,0x00,0x18,0x00,0x00,0x12,0x36, + 0x32,0x16,0x14,0x06,0x22,0x26,0x24,0x36,0x32,0x16, + 0x14,0x06,0x22,0x26,0x03,0x23,0x11,0x01,0x33,0x13, + 0x13,0x33,0x01,0x82,0x25,0x35,0x23,0x23,0x35,0x25, + 0x01,0x31,0x24,0x35,0x24,0x24,0x35,0x24,0x2c,0x62, + 0xfe,0xdb,0x68,0xf0,0xee,0x68,0xfe,0xd9,0x06,0xe7, + 0x29,0x29,0x52,0x2a,0x2a,0x52,0x29,0x29,0x52,0x2a, + 0x2b,0xf9,0x6a,0x02,0x3b,0x03,0x7b,0xfd,0x0d,0x02, + 0xf3,0xfc,0x85,0x00,0x00,0x00,0x00,0x02,0x00,0x39, + 0x00,0x00,0x02,0x5a,0x07,0x73,0x00,0x0f,0x00,0x19, + 0x00,0x00,0x01,0x15,0x06,0x06,0x07,0x23,0x26,0x27, + 0x35,0x33,0x16,0x16,0x17,0x37,0x36,0x37,0x13,0x15, + 0x21,0x35,0x01,0x21,0x35,0x21,0x15,0x01,0x02,0x32, + 0x38,0x6e,0x18,0x5f,0x47,0x73,0x2b,0x31,0x7d,0x13, + 0x31,0x6f,0x1c,0x57,0xfd,0xdf,0x01,0xa8,0xfe,0x5e, + 0x02,0x0f,0xfe,0x52,0x07,0x73,0x13,0x48,0xb7,0x36, + 0x95,0xa0,0x13,0x2f,0x91,0x15,0x37,0x85,0x19,0xf8, + 0xeb,0x5e,0x58,0x04,0xfe,0x60,0x5a,0xfb,0x02,0x00, + 0x00,0x00,0x00,0x02,0x00,0x32,0x00,0x00,0x02,0x09, + 0x06,0x21,0x00,0x0f,0x00,0x19,0x00,0x00,0x01,0x15, + 0x06,0x06,0x07,0x23,0x26,0x27,0x35,0x33,0x16,0x16, + 0x17,0x37,0x36,0x37,0x13,0x15,0x21,0x35,0x01,0x21, + 0x35,0x21,0x15,0x01,0x02,0x09,0x38,0x6e,0x18,0x5f, + 0x46,0x74,0x2b,0x31,0x7d,0x13,0x31,0x6f,0x1c,0x14, + 0xfe,0x4d,0x01,0x40,0xfe,0xd5,0x01,0x8f,0xfe,0xc1, + 0x06,0x21,0x13,0x48,0xb7,0x36,0x95,0xa0,0x13,0x2f, + 0x91,0x15,0x37,0x85,0x19,0xfa,0x33,0x54,0x4c,0x03, + 0x9d,0x54,0x4d,0xfc,0x64,0x00,0x00,0x00,0x00,0x01, + 0x00,0x50,0xfe,0x14,0x02,0xdb,0x05,0xcb,0x00,0x1f, + 0x00,0x00,0x01,0x34,0x36,0x33,0x32,0x17,0x07,0x26, + 0x23,0x06,0x06,0x07,0x15,0x33,0x15,0x23,0x11,0x14, + 0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x35, + 0x11,0x23,0x35,0x37,0x01,0x62,0x67,0x74,0x4b,0x53, + 0x29,0x3f,0x31,0x49,0x35,0x03,0xbe,0xbe,0x6f,0x83, + 0x45,0x3a,0x48,0x31,0x52,0x47,0xa1,0xa1,0x04,0x66, + 0xb7,0xae,0x27,0x56,0x21,0x01,0x7a,0x9e,0xb4,0x54, + 0xfc,0x43,0xc6,0xb7,0x0d,0x5e,0x12,0x7c,0x84,0x03, + 0xe1,0x35,0x27,0x00,0x00,0x01,0x01,0x56,0x04,0xd9, + 0x03,0x2d,0x06,0x21,0x00,0x11,0x00,0x00,0x01,0x23, + 0x26,0x27,0x27,0x06,0x07,0x06,0x07,0x23,0x35,0x36, + 0x37,0x33,0x16,0x17,0x16,0x17,0x03,0x2d,0x2f,0x2a, + 0x31,0x61,0x13,0x2c,0x51,0x31,0x2b,0x7a,0x40,0x5f, + 0x17,0x37,0x3c,0x34,0x04,0xd9,0x2a,0x3b,0x70,0x15, + 0x33,0x5e,0x2f,0x13,0xa8,0x8d,0x36,0x5b,0x5f,0x45, + 0x00,0x00,0x00,0x01,0x01,0x56,0x04,0xd9,0x03,0x2d, + 0x06,0x21,0x00,0x0f,0x00,0x00,0x01,0x15,0x06,0x06, + 0x07,0x23,0x26,0x27,0x35,0x33,0x16,0x16,0x17,0x37, + 0x36,0x37,0x03,0x2d,0x38,0x6e,0x18,0x5f,0x46,0x74, + 0x2b,0x31,0x7d,0x13,0x31,0x6f,0x1c,0x06,0x21,0x13, + 0x48,0xb7,0x36,0x95,0xa0,0x13,0x2f,0x91,0x15,0x37, + 0x85,0x19,0x00,0x01,0x01,0x68,0x04,0xdd,0x03,0x1b, + 0x05,0xc7,0x00,0x0b,0x00,0x00,0x01,0x22,0x27,0x33, + 0x16,0x16,0x33,0x32,0x37,0x33,0x06,0x06,0x02,0x3b, + 0xc5,0x0e,0x44,0x07,0x4c,0x40,0x81,0x13,0x48,0x03, + 0x76,0x04,0xdd,0xea,0x49,0x4d,0x96,0x6e,0x7c,0x00, + 0x00,0x01,0x00,0x83,0x05,0x0c,0x01,0x00,0x05,0xc9, + 0x00,0x07,0x00,0x00,0x12,0x36,0x32,0x16,0x14,0x06, + 0x22,0x26,0x83,0x24,0x39,0x20,0x20,0x38,0x25,0x05, + 0x96,0x33,0x32,0x58,0x33,0x34,0x00,0x02,0x01,0x89, + 0x04,0xe3,0x03,0x17,0x06,0x58,0x00,0x07,0x00,0x0f, + 0x00,0x00,0x00,0x36,0x32,0x16,0x14,0x06,0x22,0x26, + 0x24,0x26,0x22,0x06,0x14,0x16,0x32,0x36,0x01,0x89, + 0x6b,0xb3,0x70,0x6c,0xb8,0x6a,0x01,0x40,0x3f,0x70, + 0x43,0x3e,0x71,0x43,0x05,0xf3,0x65,0x64,0xab,0x66, + 0x64,0x8b,0x40,0x41,0x69,0x3f,0x40,0x00,0x00,0x00, + 0x00,0x01,0x00,0x44,0xfe,0x42,0x01,0x37,0x00,0x00, + 0x00,0x0f,0x00,0x00,0x13,0x14,0x33,0x32,0x37,0x15, + 0x06,0x23,0x22,0x35,0x34,0x36,0x37,0x33,0x06,0x06, + 0x9e,0x60,0x27,0x12,0x1e,0x2d,0xa8,0x57,0x3c,0x4a, + 0x46,0x3d,0xfe,0xfc,0x6d,0x09,0x4a,0x0c,0xb0,0x4b, + 0x95,0x2e,0x46,0x7b,0x00,0x00,0x00,0x01,0x01,0x29, + 0x04,0xd9,0x03,0x5a,0x05,0xae,0x00,0x15,0x00,0x00, + 0x01,0x22,0x26,0x27,0x26,0x22,0x06,0x07,0x23,0x36, + 0x36,0x33,0x32,0x16,0x17,0x16,0x33,0x32,0x37,0x33, + 0x06,0x06,0x02,0xba,0x20,0x4a,0x1c,0x4c,0x40,0x2c, + 0x09,0x4a,0x0c,0x54,0x46,0x20,0x49,0x1b,0x49,0x25, + 0x3b,0x14,0x4a,0x09,0x54,0x04,0xdb,0x28,0x17,0x40, + 0x46,0x3b,0x64,0x6f,0x28,0x18,0x3f,0x81,0x65,0x6e, + 0x00,0x00,0x00,0x02,0x01,0x21,0x04,0xd9,0x03,0x4c, + 0x06,0x21,0x00,0x0a,0x00,0x14,0x00,0x00,0x01,0x15, + 0x06,0x07,0x06,0x07,0x23,0x35,0x36,0x36,0x37,0x21, + 0x15,0x06,0x06,0x07,0x23,0x35,0x36,0x36,0x37,0x02, + 0x42,0x29,0x45,0x45,0x3f,0x2f,0x2c,0x66,0x18,0x01, + 0x81,0x25,0x8d,0x40,0x2f,0x2c,0x66,0x18,0x06,0x21, + 0x11,0x48,0x5d,0x5a,0x38,0x15,0x39,0xc1,0x39,0x11, + 0x48,0xb5,0x3a,0x15,0x39,0xc1,0x39,0x00,0x00,0x02, + 0xff,0xc4,0xfe,0x12,0x00,0x41,0xff,0xb0,0x00,0x05, + 0x00,0x0b,0x00,0x00,0x17,0x32,0x14,0x23,0x22,0x34, + 0x13,0x32,0x14,0x23,0x22,0x34,0x01,0x40,0x40,0x3d, + 0x3d,0x40,0x40,0x3d,0x50,0x96,0x96,0xfe,0xf9,0x97, + 0x97,0x00,0x00,0x05,0xfe,0xb3,0xfe,0x12,0x01,0x4d, + 0xff,0xb0,0x00,0x05,0x00,0x0b,0x00,0x11,0x00,0x17, + 0x00,0x1d,0x00,0x00,0x05,0x32,0x14,0x23,0x22,0x34, + 0x21,0x32,0x14,0x23,0x22,0x34,0x21,0x32,0x14,0x23, + 0x22,0x34,0x01,0x32,0x14,0x23,0x22,0x34,0x21,0x32, + 0x14,0x23,0x22,0x34,0xfe,0xf0,0x3f,0x3f,0x3d,0x01, + 0x5c,0x3f,0x3f,0x3d,0x01,0x3b,0x40,0x40,0x3c,0xfe, + 0xad,0x40,0x40,0x3d,0x01,0xcc,0x40,0x40,0x3c,0x50, + 0x96,0x96,0x96,0x96,0x96,0x96,0xfe,0xf9,0x97,0x97, + 0x97,0x97,0x00,0x00,0x00,0x03,0xfe,0xe1,0xfe,0x12, + 0x01,0x1e,0xff,0xb0,0x00,0x05,0x00,0x09,0x00,0x0f, + 0x00,0x00,0x17,0x32,0x14,0x23,0x22,0x34,0x07,0x21, + 0x35,0x21,0x17,0x32,0x14,0x23,0x22,0x34,0xde,0x40, + 0x40,0x3d,0x5c,0xfe,0x9c,0x01,0x64,0x99,0x40,0x40, + 0x3d,0x50,0x96,0x96,0x6e,0x47,0xe0,0x97,0x97,0x00, + 0x00,0x03,0xfe,0xe1,0xfe,0x12,0x01,0x1e,0xff,0xb0, + 0x00,0x05,0x00,0x0d,0x00,0x13,0x00,0x00,0x17,0x32, + 0x14,0x23,0x22,0x34,0x07,0x23,0x15,0x23,0x35,0x23, + 0x35,0x21,0x17,0x32,0x14,0x23,0x22,0x34,0xde,0x40, + 0x40,0x3d,0x5c,0x8e,0x48,0x8e,0x01,0x64,0x99,0x40, + 0x40,0x3d,0x50,0x96,0x96,0x6e,0xca,0xca,0x47,0xe0, + 0x97,0x97,0x00,0x00,0x00,0x01,0xff,0xc3,0xff,0x1a, + 0x00,0x40,0xff,0xb0,0x00,0x05,0x00,0x00,0x15,0x32, + 0x14,0x23,0x22,0x34,0x40,0x40,0x3d,0x50,0x96,0x96, + 0x00,0x00,0x00,0x02,0xff,0x33,0xff,0x1a,0x00,0xce, + 0xff,0xb0,0x00,0x05,0x00,0x0b,0x00,0x00,0x07,0x32, + 0x14,0x23,0x22,0x34,0x21,0x32,0x14,0x23,0x22,0x34, + 0x90,0x3f,0x3f,0x3d,0x01,0x5c,0x3f,0x3f,0x3d,0x50, + 0x96,0x96,0x96,0x96,0x00,0x00,0x00,0x03,0xff,0x35, + 0xfe,0x12,0x00,0xd0,0xff,0xb0,0x00,0x05,0x00,0x0b, + 0x00,0x11,0x00,0x00,0x07,0x32,0x14,0x23,0x22,0x34, + 0x21,0x32,0x14,0x23,0x22,0x34,0x03,0x32,0x14,0x23, + 0x22,0x34,0x8e,0x3f,0x3f,0x3d,0x01,0x5c,0x3f,0x3f, + 0x3d,0x54,0x40,0x40,0x3d,0x50,0x96,0x96,0x96,0x96, + 0xfe,0xf9,0x97,0x97,0x00,0x00,0x00,0x01,0xff,0x4e, + 0xff,0x49,0x00,0xb3,0xff,0x91,0x00,0x03,0x00,0x00, + 0x17,0x21,0x35,0x21,0xb3,0xfe,0x9b,0x01,0x65,0xb7, + 0x48,0x00,0x00,0x00,0x00,0x01,0xff,0x4e,0xfe,0x80, + 0x00,0xb3,0xff,0x91,0x00,0x07,0x00,0x00,0x17,0x23, + 0x15,0x23,0x35,0x23,0x35,0x21,0xb3,0x8f,0x47,0x8f, + 0x01,0x65,0xb7,0xc9,0xc9,0x48,0x00,0x01,0xff,0xc3, + 0x05,0x82,0x00,0x40,0x06,0x18,0x00,0x05,0x00,0x00, + 0x11,0x32,0x14,0x23,0x22,0x34,0x40,0x40,0x3d,0x06, + 0x18,0x96,0x96,0x00,0x00,0x01,0xff,0xc4,0x05,0x82, + 0x00,0x40,0x06,0x18,0x00,0x05,0x00,0x00,0x11,0x32, + 0x14,0x23,0x22,0x34,0x40,0x40,0x3c,0x06,0x18,0x96, + 0x96,0x00,0x00,0x03,0xff,0x35,0xfe,0x12,0x00,0xd0, + 0xff,0xb0,0x00,0x05,0x00,0x0b,0x00,0x11,0x00,0x00, + 0x07,0x32,0x14,0x23,0x22,0x34,0x17,0x32,0x14,0x23, + 0x22,0x34,0x17,0x32,0x14,0x23,0x22,0x34,0x8e,0x3f, + 0x3f,0x3d,0xcb,0x40,0x40,0x3d,0xce,0x3f,0x3f,0x3d, + 0x50,0x96,0x96,0x83,0x97,0x97,0x84,0x97,0x97,0x00, + 0x00,0x00,0x00,0x01,0xff,0xc3,0x02,0x53,0x00,0x40, + 0x02,0xe9,0x00,0x05,0x00,0x00,0x11,0x32,0x14,0x23, + 0x22,0x34,0x40,0x40,0x3d,0x02,0xe9,0x96,0x96,0x00, + 0x00,0x01,0xff,0xd3,0xfe,0x45,0x00,0x2c,0xff,0x77, + 0x00,0x03,0x00,0x00,0x13,0x23,0x11,0x33,0x2c,0x59, + 0x59,0xfe,0x45,0x01,0x32,0x00,0x00,0x00,0x00,0x01, + 0x00,0x35,0x04,0xa3,0x01,0xcf,0x05,0x09,0x00,0x03, + 0x00,0x00,0x01,0x21,0x35,0x21,0x01,0xcf,0xfe,0x66, + 0x01,0x9a,0x04,0xa3,0x66,0x00,0x00,0x01,0xff,0xc3, + 0x05,0x82,0x00,0x40,0x06,0x18,0x00,0x05,0x00,0x00, + 0x11,0x32,0x14,0x23,0x22,0x34,0x40,0x40,0x3d,0x06, + 0x18,0x96,0x96,0x00,0x00,0x01,0xff,0xc2,0x05,0x82, + 0x00,0x3f,0x06,0x18,0x00,0x05,0x00,0x00,0x03,0x32, + 0x14,0x23,0x22,0x34,0x01,0x40,0x40,0x3d,0x06,0x18, + 0x96,0x96,0x00,0x01,0xff,0x6e,0xff,0x0a,0x00,0x8d, + 0xff,0xc7,0x00,0x07,0x00,0x00,0x17,0x23,0x15,0x23, + 0x35,0x23,0x35,0x21,0x8d,0x6c,0x47,0x6c,0x01,0x1f, + 0x81,0x75,0x75,0x48,0x00,0x01,0x00,0x48,0x00,0x00, + 0x02,0xbf,0x05,0x0a,0x00,0x1b,0x00,0x00,0x01,0x11, + 0x14,0x06,0x07,0x06,0x07,0x13,0x23,0x01,0x06,0x06, + 0x15,0x11,0x23,0x11,0x34,0x37,0x36,0x36,0x37,0x03, + 0x33,0x01,0x36,0x36,0x35,0x11,0x02,0xb4,0x0a,0x10, + 0x21,0x6f,0xb5,0x67,0xfe,0xc4,0x41,0x38,0x5b,0x1c, + 0x11,0x4c,0x39,0xb2,0x66,0x01,0x38,0x3f,0x34,0x05, + 0x0a,0xfe,0x2c,0x3d,0x5d,0x39,0x74,0x37,0xfe,0x48, + 0x03,0x03,0x2a,0x99,0x7c,0xfe,0x3c,0x01,0xc5,0x75, + 0x66,0x3c,0x5f,0x1c,0x01,0xb3,0xfd,0x06,0x27,0x89, + 0x77,0x01,0xd3,0x00,0x00,0x01,0x00,0x5e,0x00,0x00, + 0x02,0xcd,0x05,0x1e,0x00,0x17,0x00,0x00,0x13,0x36, + 0x32,0x16,0x16,0x17,0x16,0x15,0x11,0x33,0x15,0x21, + 0x35,0x21,0x11,0x34,0x27,0x26,0x27,0x26,0x23,0x22, + 0x07,0x07,0x5e,0x66,0xa9,0x5e,0x56,0x1b,0x3b,0x56, + 0xfd,0x92,0x01,0xb9,0x25,0x1f,0x51,0x22,0x2f,0x50, + 0x66,0x1e,0x05,0x14,0x0a,0x11,0x2f,0x28,0x56,0xaa, + 0xfc,0x9e,0x54,0x54,0x03,0x62,0x87,0x41,0x37,0x0d, + 0x06,0x08,0x03,0x00,0x00,0x01,0x00,0x73,0xff,0xfc, + 0x02,0x03,0x05,0x1e,0x00,0x1b,0x00,0x00,0x01,0x32, + 0x11,0x11,0x23,0x27,0x23,0x06,0x07,0x06,0x23,0x22, + 0x27,0x37,0x16,0x33,0x32,0x36,0x35,0x11,0x34,0x27, + 0x26,0x23,0x22,0x07,0x35,0x36,0x01,0x16,0xed,0x50, + 0x0a,0x07,0x1d,0x19,0x3e,0x7c,0x1e,0x21,0x12,0x17, + 0x1f,0x75,0x74,0x1a,0x1e,0x5e,0x23,0x3e,0x37,0x05, + 0x1e,0xfe,0xdd,0xfc,0x05,0xd5,0x59,0x25,0x5b,0x0b, + 0x5e,0x0d,0xdd,0xca,0x01,0xfc,0x5b,0x34,0x3e,0x11, + 0x58,0x0f,0x00,0x01,0x00,0x11,0x00,0x00,0x02,0x87, + 0x05,0x0a,0x00,0x11,0x00,0x00,0x01,0x15,0x06,0x06, + 0x07,0x06,0x15,0x11,0x23,0x11,0x34,0x36,0x37,0x36, + 0x37,0x37,0x21,0x35,0x02,0x87,0x43,0x52,0x14,0x2d, + 0x5f,0x1c,0x14,0x29,0x1f,0x0e,0xfe,0x39,0x05,0x0a, + 0x49,0x17,0x3f,0x1d,0x45,0x69,0xfc,0x60,0x03,0xa0, + 0x3b,0x65,0x1e,0x3e,0x12,0x08,0x54,0x00,0x00,0x00, + 0x00,0x02,0x00,0x91,0x00,0x00,0x03,0x07,0x05,0x1e, + 0x00,0x0f,0x00,0x13,0x00,0x00,0x13,0x36,0x32,0x1e, + 0x02,0x15,0x11,0x23,0x11,0x34,0x2e,0x02,0x22,0x07, + 0x13,0x23,0x11,0x33,0x91,0xcc,0x9a,0x7f,0x64,0x2d, + 0x60,0x1c,0x48,0x5d,0x6e,0xe7,0x5f,0x5f,0x5f,0x05, + 0x0a,0x14,0x1c,0x4d,0x90,0x6f,0xfc,0x4a,0x03,0xb6, + 0x5a,0x6c,0x3a,0x12,0x15,0xfb,0x4d,0x03,0x2d,0x00, + 0x00,0x00,0x00,0x01,0x00,0x91,0x00,0x00,0x00,0xf0, + 0x05,0x0a,0x00,0x03,0x00,0x00,0x33,0x23,0x11,0x33, + 0xf0,0x5f,0x5f,0x05,0x0a,0x00,0x00,0x01,0x00,0x87, + 0x00,0x00,0x01,0x8c,0x05,0x0a,0x00,0x0c,0x00,0x00, + 0x01,0x15,0x06,0x06,0x15,0x11,0x23,0x11,0x34,0x36, + 0x37,0x23,0x35,0x01,0x8c,0x38,0x45,0x5f,0x4a,0x25, + 0x98,0x05,0x0a,0x49,0x2c,0xda,0x8c,0xfc,0xd1,0x03, + 0x2f,0x96,0xd1,0x20,0x54,0x00,0x00,0x00,0x00,0x01, + 0x00,0x91,0x00,0x00,0x03,0x07,0x05,0x1e,0x00,0x11, + 0x00,0x00,0x33,0x11,0x36,0x32,0x1e,0x02,0x15,0x11, + 0x23,0x11,0x34,0x2e,0x02,0x22,0x07,0x11,0x91,0xcc, + 0x9a,0x7f,0x64,0x2d,0x60,0x1c,0x48,0x5d,0x82,0x74, + 0x05,0x0a,0x14,0x1c,0x4d,0x90,0x6f,0xfc,0x4a,0x03, + 0xb6,0x5a,0x6c,0x3a,0x12,0x0c,0xfb,0x44,0x00,0x01, + 0x00,0x5e,0xff,0xec,0x03,0x16,0x05,0x1e,0x00,0x18, + 0x00,0x00,0x01,0x20,0x10,0x20,0x13,0x11,0x33,0x11, + 0x10,0x17,0x16,0x16,0x32,0x36,0x37,0x36,0x11,0x10, + 0x27,0x2e,0x02,0x07,0x35,0x36,0x01,0xba,0x01,0x5c, + 0xfd,0x48,0x01,0x60,0x4b,0x24,0x55,0x6e,0x54,0x24, + 0x4a,0x4a,0x24,0x55,0x64,0x2f,0x2e,0x05,0x1e,0xfa, + 0xce,0x02,0x99,0x02,0x85,0xfd,0x7b,0xfe,0xb5,0x81, + 0x3e,0x35,0x35,0x3e,0x7f,0x01,0x4d,0x01,0x4c,0x81, + 0x3e,0x36,0x02,0x0a,0x58,0x08,0x00,0x01,0x00,0x8c, + 0x01,0xe2,0x00,0xeb,0x05,0x0a,0x00,0x04,0x00,0x00, + 0x13,0x11,0x33,0x11,0x07,0x8c,0x5f,0x56,0x01,0xe2, + 0x03,0x28,0xfd,0x46,0x6e,0x00,0x00,0x00,0x00,0x01, + 0x00,0x29,0xfe,0x14,0x02,0x1b,0x05,0x1e,0x00,0x0b, + 0x00,0x00,0x13,0x20,0x11,0x11,0x23,0x11,0x10,0x23, + 0x22,0x07,0x35,0x36,0xc9,0x01,0x52,0x61,0xf2,0x51, + 0x4e,0x47,0x05,0x1e,0xfd,0xb3,0xfb,0x43,0x04,0xbd, + 0x01,0xf3,0x32,0x67,0x25,0x00,0x00,0x01,0x00,0x29, + 0xff,0xec,0x02,0x1b,0x05,0x1e,0x00,0x1a,0x00,0x00, + 0x13,0x20,0x11,0x15,0x10,0x21,0x22,0x27,0x27,0x35, + 0x16,0x33,0x32,0x37,0x3e,0x02,0x37,0x36,0x35,0x35, + 0x10,0x23,0x22,0x07,0x35,0x36,0xc9,0x01,0x52,0xfe, + 0xae,0x45,0x40,0x15,0x39,0x60,0x6e,0x3c,0x23,0x18, + 0x08,0x02,0x03,0xf2,0x51,0x4e,0x47,0x05,0x1e,0xfd, + 0xb3,0xbd,0xfd,0xd8,0x14,0x07,0x5c,0x21,0x66,0x3c, + 0x73,0x3b,0x25,0x37,0x26,0xbd,0x01,0xf3,0x32,0x67, + 0x25,0x00,0x00,0x00,0x00,0x01,0x00,0x2d,0x00,0x00, + 0x02,0x3e,0x06,0x21,0x00,0x0a,0x00,0x00,0x13,0x21, + 0x15,0x03,0x03,0x23,0x13,0x13,0x21,0x11,0x33,0x8c, + 0x01,0xb2,0x9e,0x5b,0x61,0x59,0xa9,0xfe,0x47,0x5f, + 0x05,0x10,0x6e,0xfd,0x59,0xfe,0x05,0x01,0xf0,0x02, + 0xc4,0x01,0x6d,0x00,0x00,0x00,0x00,0x02,0x00,0x91, + 0x00,0x00,0x03,0x07,0x05,0x1e,0x00,0x09,0x00,0x14, + 0x00,0x00,0x33,0x11,0x36,0x32,0x16,0x16,0x17,0x16, + 0x15,0x11,0x27,0x11,0x34,0x27,0x2e,0x03,0x22,0x07, + 0x11,0x91,0xcc,0x94,0x72,0x5d,0x18,0x2f,0x5f,0x15, + 0x0d,0x22,0x45,0x4a,0x71,0x74,0x05,0x0a,0x14,0x0f, + 0x29,0x28,0x51,0xab,0xfc,0x3e,0x54,0x03,0x6e,0x7d, + 0x31,0x1f,0x20,0x14,0x05,0x0c,0xfb,0x98,0x00,0x01, + 0x00,0x3b,0x00,0x00,0x02,0xce,0x05,0x1e,0x00,0x25, + 0x00,0x00,0x00,0x36,0x32,0x16,0x16,0x17,0x16,0x15, + 0x11,0x21,0x35,0x33,0x11,0x34,0x27,0x26,0x27,0x26, + 0x22,0x06,0x07,0x06,0x07,0x07,0x03,0x23,0x13,0x36, + 0x35,0x34,0x27,0x27,0x33,0x16,0x17,0x33,0x36,0x37, + 0x01,0x5d,0x57,0x6c,0x54,0x33,0x0f,0x18,0xfe,0xc3, + 0xde,0x13,0x18,0x26,0x18,0x53,0x55,0x1a,0x35,0x10, + 0x07,0x5d,0x60,0x5d,0x02,0x2c,0x11,0x65,0x1c,0x0f, + 0x06,0x1f,0x32,0x04,0xfc,0x22,0x29,0x46,0x39,0x5f, + 0xa4,0xfc,0x8d,0x54,0x03,0x1f,0xc0,0x35,0x44,0x12, + 0x0a,0x2d,0x21,0x44,0x32,0x17,0xfc,0x13,0x03,0xed, + 0x17,0x1f,0x43,0x77,0x2d,0x41,0x46,0x3e,0x27,0x00, + 0x00,0x00,0x00,0x01,0x00,0x73,0xfe,0x14,0x01,0x03, + 0x05,0x0a,0x00,0x09,0x00,0x00,0x01,0x11,0x23,0x11, + 0x34,0x26,0x27,0x27,0x33,0x16,0x01,0x03,0x5f,0x18, + 0x0c,0x0d,0x60,0x30,0x03,0x89,0xfa,0x8b,0x05,0x75, + 0x51,0xc1,0x37,0x38,0xc3,0x00,0x00,0x01,0x00,0x27, + 0x00,0x00,0x01,0xad,0x05,0x1e,0x00,0x15,0x00,0x00, + 0x13,0x32,0x11,0x11,0x14,0x06,0x07,0x07,0x21,0x35, + 0x21,0x36,0x35,0x11,0x34,0x27,0x26,0x23,0x22,0x07, + 0x35,0x36,0xc0,0xed,0x13,0x0a,0x0a,0xfe,0xa1,0x01, + 0x0c,0x1b,0x1a,0x1e,0x5e,0x23,0x3e,0x37,0x05,0x1e, + 0xfe,0xdd,0xfd,0x4e,0x44,0xa4,0x31,0x30,0x54,0x7f, + 0x76,0x02,0xb2,0x5b,0x34,0x3e,0x11,0x58,0x0f,0x00, + 0x00,0x00,0x00,0x02,0x00,0x5e,0xff,0xec,0x03,0x16, + 0x05,0x1e,0x00,0x0a,0x00,0x1a,0x00,0x00,0x01,0x20, + 0x10,0x20,0x11,0x34,0x12,0x37,0x07,0x35,0x36,0x06, + 0x02,0x10,0x1e,0x02,0x32,0x3e,0x02,0x10,0x2e,0x02, + 0x23,0x07,0x01,0xba,0x01,0x5c,0xfd,0x48,0x3f,0x54, + 0x7e,0xe0,0x4f,0x43,0x26,0x48,0x54,0x6e,0x54,0x48, + 0x26,0x26,0x48,0x54,0x37,0x5e,0x05,0x1e,0xfa,0xce, + 0x02,0x99,0xcb,0x01,0x06,0x69,0x07,0x58,0x0e,0xb4, + 0xfe,0xf1,0xfe,0x85,0xe9,0x7c,0x35,0x35,0x7c,0xe9, + 0x01,0x4a,0xe9,0x7c,0x35,0x02,0x00,0x00,0x00,0x01, + 0x00,0x48,0xff,0xcf,0x03,0x2f,0x05,0x0a,0x00,0x14, + 0x00,0x00,0x01,0x03,0x06,0x07,0x06,0x07,0x06,0x07, + 0x05,0x35,0x37,0x37,0x01,0x33,0x13,0x13,0x36,0x37, + 0x36,0x37,0x13,0x03,0x2f,0x3a,0x19,0x14,0x30,0x7c, + 0x54,0x7f,0xfe,0xff,0xfa,0x1f,0xfe,0xef,0x60,0x86, + 0x7d,0x83,0x30,0x1c,0x15,0x38,0x05,0x0a,0xfd,0xcb, + 0xf6,0x5b,0xdb,0x5d,0x3f,0x13,0x2b,0x55,0x2a,0x06, + 0x04,0xb6,0xfd,0xb8,0xfd,0xb1,0x46,0xd5,0x7e,0xca, + 0x02,0x34,0x00,0x01,0x00,0x5e,0xfe,0x14,0x03,0x04, + 0x05,0x1e,0x00,0x17,0x00,0x00,0x01,0x22,0x26,0x10, + 0x36,0x33,0x20,0x11,0x11,0x23,0x11,0x10,0x23,0x22, + 0x06,0x07,0x06,0x15,0x14,0x17,0x16,0x33,0x33,0x07, + 0x01,0x88,0x98,0x92,0xb4,0x96,0x01,0x5c,0x5f,0xfd, + 0x3d,0x60,0x1c,0x39,0x43,0x34,0x62,0x0e,0x10,0x01, + 0xb9,0xde,0x01,0x8c,0xfb,0xfd,0x67,0xfb,0x8f,0x04, + 0x71,0x02,0x3f,0x46,0x38,0x70,0x7b,0xc5,0x52,0x40, + 0x4b,0x00,0x00,0x01,0x00,0x5e,0xff,0xec,0x03,0x04, + 0x05,0x1e,0x00,0x25,0x00,0x00,0x01,0x22,0x26,0x10, + 0x36,0x33,0x20,0x11,0x10,0x02,0x23,0x22,0x27,0x27, + 0x35,0x16,0x33,0x32,0x36,0x36,0x37,0x36,0x11,0x10, + 0x27,0x26,0x26,0x22,0x06,0x07,0x06,0x15,0x14,0x17, + 0x16,0x33,0x33,0x07,0x01,0x88,0x98,0x92,0xb4,0x96, + 0x01,0x5c,0xc0,0xad,0x69,0x57,0x1d,0x67,0x76,0x2b, + 0x4a,0x46,0x18,0x37,0x4a,0x24,0x54,0x74,0x60,0x1c, + 0x39,0x43,0x34,0x62,0x0e,0x10,0x01,0xb9,0xde,0x01, + 0x8c,0xfb,0xfd,0x67,0xfe,0xb2,0xfe,0xb5,0x0f,0x05, + 0x59,0x13,0x1f,0x50,0x3f,0x8e,0x01,0x03,0x01,0x4d, + 0x7f,0x3e,0x35,0x46,0x38,0x70,0x7b,0xc5,0x52,0x40, + 0x4b,0x00,0x00,0x01,0x00,0x00,0xfe,0x14,0x02,0x31, + 0x05,0x0a,0x00,0x10,0x00,0x00,0x01,0x11,0x14,0x07, + 0x06,0x06,0x07,0x11,0x23,0x11,0x03,0x33,0x13,0x36, + 0x36,0x35,0x11,0x02,0x31,0x32,0x1b,0x6b,0x4a,0x66, + 0xc9,0x66,0xc9,0x4f,0x54,0x05,0x0a,0xfe,0x46,0x7d, + 0x6d,0x3a,0x5a,0x15,0xfc,0x57,0x04,0x12,0x02,0xe4, + 0xfd,0x15,0x2b,0x8f,0x78,0x01,0xb9,0x00,0x00,0x00, + 0x00,0x01,0x00,0x3b,0x00,0x00,0x02,0xa9,0x05,0x0a, + 0x00,0x12,0x00,0x00,0x21,0x21,0x35,0x21,0x03,0x01, + 0x33,0x01,0x17,0x36,0x36,0x37,0x13,0x33,0x03,0x06, + 0x06,0x07,0x13,0x02,0xa1,0xfd,0x9a,0x01,0xed,0xd5, + 0xfe,0xe8,0x65,0x01,0x19,0x07,0x30,0x2c,0x0f,0x20, + 0x5e,0x1f,0x14,0x43,0x49,0xb7,0x54,0x01,0xfd,0x02, + 0xb9,0xfd,0x47,0x13,0x4d,0xc5,0x85,0x01,0x35,0xfe, + 0xcb,0xc6,0xe3,0x50,0xfe,0x4f,0x00,0x02,0x00,0x91, + 0xfe,0x14,0x03,0x0d,0x05,0x0a,0x00,0x19,0x00,0x1d, + 0x00,0x00,0x25,0x15,0x23,0x35,0x34,0x37,0x37,0x3e, + 0x03,0x37,0x13,0x21,0x35,0x21,0x15,0x03,0x0e,0x05, + 0x07,0x06,0x03,0x23,0x11,0x33,0x01,0xd8,0x5d,0x09, + 0x0e,0x0b,0x3a,0x0b,0x1d,0x03,0xac,0xfd,0xe3,0x02, + 0x7c,0xac,0x0c,0x21,0x1a,0x0f,0x15,0x0c,0x06,0x0c, + 0xe7,0x5f,0x5f,0x11,0x11,0x11,0x27,0x2d,0x49,0x35, + 0xd4,0x2a,0x64,0x0c,0x02,0x65,0x54,0x54,0xfd,0x9b, + 0x29,0x78,0x5c,0x3c,0x52,0x39,0x1f,0x3e,0xfd,0xe4, + 0x04,0xe3,0x00,0x01,0x00,0x17,0x00,0x00,0x02,0x10, + 0x05,0x1e,0x00,0x13,0x00,0x00,0x13,0x36,0x32,0x1e, + 0x02,0x17,0x16,0x15,0x11,0x23,0x11,0x34,0x2e,0x02, + 0x23,0x22,0x07,0x07,0x17,0x4d,0x9c,0x5c,0x4f,0x32, + 0x12,0x21,0x5f,0x14,0x3b,0x55,0x39,0x56,0x50,0x17, + 0x05,0x14,0x0a,0x0b,0x1f,0x33,0x28,0x49,0x9a,0xfc, + 0x4a,0x03,0xb6,0x5c,0x69,0x3c,0x11,0x08,0x03,0x00, + 0x00,0x01,0x00,0x4a,0x00,0x00,0x03,0xce,0x05,0x0a, + 0x00,0x1e,0x00,0x00,0x21,0x23,0x03,0x33,0x13,0x36, + 0x36,0x37,0x37,0x33,0x07,0x0e,0x03,0x07,0x13,0x33, + 0x32,0x36,0x37,0x36,0x13,0x13,0x33,0x03,0x06,0x07, + 0x0e,0x02,0x01,0x20,0x69,0x6d,0x58,0x3d,0x75,0x70, + 0x16,0x19,0x54,0x19,0x0d,0x27,0x49,0x74,0x56,0x20, + 0x19,0x73,0xc3,0x44,0x8c,0x1d,0x36,0x55,0x37,0x17, + 0x5a,0x33,0x89,0xcd,0x05,0x0a,0xfd,0x23,0x35,0xd4, + 0xd6,0xfe,0xfe,0x7e,0xac,0x92,0x60,0x20,0xfe,0x87, + 0x62,0x57,0xb3,0x01,0x1c,0x02,0x2b,0xfd,0xd5,0xec, + 0xaf,0x61,0x8d,0x56,0x00,0x01,0x00,0x10,0x00,0x00, + 0x02,0xe9,0x05,0x1e,0x00,0x1e,0x00,0x00,0x13,0x36, + 0x32,0x16,0x16,0x17,0x16,0x15,0x11,0x23,0x11,0x34, + 0x27,0x26,0x27,0x26,0x22,0x07,0x11,0x14,0x06,0x23, + 0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x11,0x07,0x40, + 0xc2,0xd2,0x64,0x59,0x1c,0x3c,0x5f,0x28,0x22,0x56, + 0x24,0x51,0x85,0x49,0x49,0x26,0x28,0x2c,0x11,0x44, + 0x51,0x05,0x08,0x16,0x11,0x2e,0x28,0x56,0xab,0xfc, + 0x4a,0x03,0xb6,0x88,0x40,0x37,0x0d,0x06,0x07,0xfc, + 0x0b,0x6f,0x5d,0x08,0x5b,0x08,0x71,0x03,0xec,0x07, + 0x00,0x01,0x00,0x2b,0x03,0x34,0x01,0x11,0x05,0x0a, + 0x00,0x09,0x00,0x00,0x01,0x17,0x06,0x07,0x07,0x23, + 0x36,0x36,0x37,0x37,0x01,0x04,0x0d,0x35,0x1d,0x55, + 0x3f,0x2f,0x28,0x07,0x07,0x05,0x0a,0x14,0xa9,0x4a, + 0xcf,0x9a,0xe5,0x2b,0x2c,0x00,0x00,0x00,0x00,0x02, + 0x00,0x2b,0x03,0x34,0x02,0x2b,0x05,0x0a,0x00,0x09, + 0x00,0x13,0x00,0x00,0x01,0x17,0x06,0x07,0x07,0x23, + 0x36,0x36,0x37,0x37,0x21,0x17,0x06,0x07,0x07,0x23, + 0x36,0x36,0x37,0x37,0x01,0x04,0x0d,0x35,0x1d,0x55, + 0x3f,0x2f,0x28,0x07,0x07,0x01,0x8e,0x0d,0x35,0x1d, + 0x55,0x3f,0x2f,0x28,0x07,0x07,0x05,0x0a,0x14,0xa9, + 0x4a,0xcf,0x9a,0xe5,0x2b,0x2c,0x14,0xa9,0x4a,0xcf, + 0x9a,0xe5,0x2b,0x2c,0x00,0x01,0x00,0x52,0x02,0x00, + 0x03,0xae,0x02,0x52,0x00,0x03,0x00,0x00,0x01,0x21, + 0x35,0x21,0x03,0xae,0xfc,0xa4,0x03,0x5c,0x02,0x00, + 0x52,0x00,0x00,0x01,0x00,0x52,0x02,0x00,0x07,0xae, + 0x02,0x52,0x00,0x03,0x00,0x00,0x01,0x21,0x35,0x21, + 0x07,0xae,0xf8,0xa4,0x07,0x5c,0x02,0x00,0x52,0x00, + 0x00,0x01,0x00,0x2b,0x03,0xe1,0x01,0x10,0x05,0xb6, + 0x00,0x06,0x00,0x00,0x13,0x33,0x06,0x07,0x23,0x27, + 0x36,0xd1,0x3f,0x4a,0x1a,0x73,0x0e,0x43,0x05,0xb6, + 0xfc,0xd9,0x17,0xe5,0x00,0x00,0x00,0x01,0x00,0x2b, + 0x03,0xe1,0x01,0x10,0x05,0xb6,0x00,0x06,0x00,0x00, + 0x01,0x17,0x06,0x07,0x23,0x36,0x37,0x01,0x02,0x0e, + 0x42,0x64,0x3f,0x4a,0x1a,0x05,0xb6,0x16,0xdd,0xe2, + 0xfc,0xd9,0x00,0x01,0x00,0x4e,0xfe,0xf8,0x01,0x33, + 0x00,0xcd,0x00,0x06,0x00,0x00,0x25,0x17,0x06,0x07, + 0x23,0x36,0x37,0x01,0x25,0x0e,0x43,0x63,0x3f,0x4a, + 0x1a,0xcd,0x17,0xe5,0xd9,0xfc,0xd9,0x00,0x00,0x02, + 0x00,0x2b,0x03,0xe1,0x02,0x2b,0x05,0xb6,0x00,0x06, + 0x00,0x0d,0x00,0x00,0x13,0x33,0x06,0x07,0x23,0x27, + 0x36,0x25,0x33,0x06,0x07,0x23,0x27,0x36,0xd1,0x3f, + 0x4a,0x1a,0x73,0x0e,0x43,0x01,0x7e,0x3f,0x4a,0x1a, + 0x73,0x0e,0x43,0x05,0xb6,0xfc,0xd9,0x17,0xe5,0xd9, + 0xfc,0xd9,0x17,0xe5,0x00,0x02,0x00,0x2b,0x03,0xe1, + 0x02,0x2b,0x05,0xb6,0x00,0x06,0x00,0x0d,0x00,0x00, + 0x01,0x17,0x06,0x07,0x23,0x36,0x37,0x21,0x17,0x06, + 0x07,0x23,0x36,0x37,0x01,0x02,0x0e,0x42,0x64,0x3f, + 0x4a,0x1a,0x01,0x8e,0x0e,0x42,0x64,0x3f,0x4a,0x1a, + 0x05,0xb6,0x16,0xdd,0xe2,0xfc,0xd9,0x16,0xdd,0xe2, + 0xfc,0xd9,0x00,0x00,0x00,0x02,0x00,0x21,0xfe,0xf8, + 0x02,0x21,0x00,0xcd,0x00,0x06,0x00,0x0d,0x00,0x00, + 0x37,0x17,0x06,0x07,0x23,0x36,0x37,0x13,0x12,0x37, + 0x33,0x17,0x06,0x07,0xf8,0x0e,0x43,0x63,0x3f,0x4a, + 0x1a,0xb6,0x4e,0x17,0x72,0x0f,0x3b,0x6b,0xcd,0x17, + 0xe5,0xd9,0xfc,0xd9,0xfe,0x2b,0x01,0x10,0xc5,0x17, + 0xca,0xf4,0x00,0x00,0x00,0x01,0x00,0x7b,0x00,0x00, + 0x02,0xf8,0x06,0x14,0x00,0x0b,0x00,0x00,0x01,0x25, + 0x15,0x25,0x13,0x23,0x13,0x05,0x35,0x05,0x03,0x33, + 0x01,0xd1,0x01,0x27,0xfe,0xd9,0x18,0x74,0x18,0xfe, + 0xee,0x01,0x12,0x18,0x74,0x04,0x68,0x13,0x5c,0x0a, + 0xfb,0xd7,0x04,0x29,0x0a,0x5c,0x13,0x01,0xac,0x00, + 0x00,0x01,0x00,0x7b,0x00,0x00,0x02,0xf8,0x06,0x14, + 0x00,0x15,0x00,0x00,0x01,0x25,0x15,0x25,0x13,0x03, + 0x25,0x15,0x25,0x13,0x23,0x13,0x05,0x35,0x05,0x03, + 0x13,0x05,0x35,0x05,0x03,0x33,0x01,0xd1,0x01,0x27, + 0xfe,0xd9,0x0a,0x0a,0x01,0x27,0xfe,0xd9,0x18,0x74, + 0x18,0xfe,0xee,0x01,0x12,0x0c,0x0c,0xfe,0xee,0x01, + 0x12,0x18,0x74,0x04,0x96,0x12,0x5c,0x0a,0xfe,0xbc, + 0xfe,0xac,0x0b,0x5c,0x10,0xfe,0x83,0x01,0x7d,0x10, + 0x5c,0x0b,0x01,0x54,0x01,0x44,0x0a,0x5c,0x12,0x01, + 0x7e,0x00,0x00,0x01,0x00,0xa8,0x01,0xfa,0x02,0x5a, + 0x03,0xdd,0x00,0x07,0x00,0x00,0x00,0x32,0x16,0x14, + 0x06,0x22,0x26,0x34,0x01,0x18,0xd2,0x70,0x70,0xd0, + 0x72,0x03,0xdd,0x7a,0xec,0x7d,0x7d,0xec,0x00,0x03, + 0x00,0x85,0xff,0xf0,0x04,0x6d,0x00,0xc5,0x00,0x06, + 0x00,0x0d,0x00,0x14,0x00,0x00,0x36,0x32,0x15,0x14, + 0x06,0x23,0x22,0x24,0x32,0x15,0x14,0x06,0x23,0x22, + 0x24,0x32,0x15,0x14,0x06,0x23,0x22,0x85,0x9c,0x2b, + 0x23,0x4e,0x01,0xa6,0x9c,0x2b,0x23,0x4e,0x01,0xa6, + 0x9c,0x2b,0x23,0x4e,0xc5,0x6b,0x36,0x34,0xd5,0x6b, + 0x36,0x34,0xd5,0x6b,0x36,0x34,0x00,0x07,0x00,0x5e, + 0xff,0xec,0x06,0x3f,0x05,0xcb,0x00,0x07,0x00,0x0b, + 0x00,0x15,0x00,0x1d,0x00,0x25,0x00,0x2f,0x00,0x39, + 0x00,0x00,0x12,0x36,0x32,0x16,0x10,0x06,0x22,0x26, + 0x01,0x23,0x01,0x33,0x05,0x22,0x06,0x10,0x16,0x33, + 0x32,0x36,0x35,0x10,0x00,0x36,0x32,0x16,0x10,0x06, + 0x22,0x26,0x00,0x32,0x16,0x10,0x06,0x22,0x26,0x10, + 0x25,0x22,0x06,0x10,0x16,0x33,0x32,0x36,0x35,0x10, + 0x21,0x22,0x06,0x10,0x16,0x33,0x32,0x36,0x35,0x10, + 0x5e,0x66,0xc7,0x69,0x6c,0xc3,0x67,0x01,0x3e,0x5d, + 0x01,0xde,0x58,0xfd,0xb0,0x3a,0x33,0x34,0x3d,0x3b, + 0x36,0x01,0x2b,0x66,0xc6,0x69,0x6c,0xc2,0x67,0x02, + 0x4b,0xc6,0x69,0x6c,0xc2,0x67,0xfe,0xe1,0x3a,0x32, + 0x33,0x3d,0x3b,0x36,0x01,0x71,0x3a,0x33,0x34,0x3d, + 0x3b,0x35,0x04,0xe1,0xea,0xe9,0xfe,0x45,0xf2,0xee, + 0xfc,0xdd,0x05,0xb6,0x39,0xb7,0xfe,0x7b,0xb8,0xb9, + 0xc2,0x01,0x79,0xfd,0x1e,0xe6,0xe9,0xfe,0x43,0xef, + 0xf0,0x02,0xa5,0xe9,0xfe,0x46,0xf2,0xef,0x01,0xbc, + 0x9c,0xb7,0xfe,0x7b,0xb8,0xb9,0xc2,0x01,0x79,0xb7, + 0xfe,0x7b,0xb8,0xb8,0xc3,0x01,0x79,0x00,0x00,0x01, + 0x00,0x52,0x00,0x93,0x01,0xae,0x03,0x8b,0x00,0x06, + 0x00,0x00,0x01,0x03,0x13,0x07,0x01,0x35,0x01,0x01, + 0xae,0xdb,0xdb,0x3d,0xfe,0xe1,0x01,0x1f,0x03,0x68, + 0xfe,0xa8,0xfe,0xa8,0x25,0x01,0x6f,0x1b,0x01,0x6e, + 0x00,0x00,0x00,0x01,0x00,0x52,0x00,0x93,0x01,0xae, + 0x03,0x8b,0x00,0x06,0x00,0x00,0x01,0x15,0x01,0x27, + 0x13,0x03,0x37,0x01,0xae,0xfe,0xe1,0x3d,0xdb,0xdb, + 0x3d,0x02,0x1d,0x1b,0xfe,0x91,0x25,0x01,0x58,0x01, + 0x58,0x23,0x00,0x01,0xfe,0xd7,0x00,0x00,0x02,0x33, + 0x05,0xb6,0x00,0x03,0x00,0x00,0x23,0x23,0x01,0x33, + 0xcd,0x5c,0x03,0x00,0x5c,0x05,0xb6,0x00,0x00,0x00, + 0x00,0x02,0x00,0x91,0x00,0x00,0x03,0xdf,0x05,0x0a, + 0x00,0x13,0x00,0x26,0x00,0x00,0x13,0x33,0x32,0x16, + 0x16,0x17,0x16,0x15,0x11,0x23,0x11,0x34,0x27,0x26, + 0x27,0x26,0x23,0x23,0x11,0x23,0x01,0x11,0x14,0x06, + 0x07,0x06,0x21,0x23,0x11,0x33,0x11,0x33,0x32,0x37, + 0x36,0x37,0x36,0x35,0x11,0x91,0x8d,0x5d,0x85,0x77, + 0x23,0x4d,0x5f,0x3d,0x34,0x7b,0x33,0x4b,0x2e,0x5f, + 0x03,0x4e,0x2f,0x38,0x6d,0xfe,0xe4,0x76,0x5f,0x17, + 0xc0,0x5d,0x55,0x15,0x0a,0x05,0x0a,0x10,0x2e,0x28, + 0x55,0xaa,0xfd,0x63,0x02,0x9d,0x87,0x40,0x37,0x0d, + 0x06,0xfb,0x4a,0x05,0x0a,0xfd,0x7d,0xa3,0xe6,0x56, + 0xa8,0x04,0x02,0xfc,0x52,0x5a,0x52,0xbc,0x54,0x77, + 0x02,0x83,0x00,0x00,0x00,0x01,0x00,0x23,0xff,0xec, + 0x03,0x04,0x05,0xcd,0x00,0x26,0x00,0x00,0x13,0x33, + 0x12,0x12,0x33,0x32,0x17,0x07,0x26,0x23,0x22,0x03, + 0x21,0x15,0x21,0x07,0x15,0x17,0x21,0x15,0x21,0x16, + 0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x02,0x03, + 0x23,0x35,0x33,0x27,0x35,0x37,0x23,0x23,0x8d,0x10, + 0xcb,0x9a,0x7a,0x65,0x33,0x56,0x52,0xed,0x25,0x01, + 0x45,0xfe,0xb6,0x02,0x02,0x01,0x29,0xfe,0xdc,0x0f, + 0x8f,0x84,0x65,0x56,0x56,0x65,0xb0,0xc3,0x16,0x8d, + 0x89,0x02,0x02,0x89,0x03,0x83,0x01,0x0d,0x01,0x3d, + 0x4a,0x56,0x3d,0xfe,0x19,0x52,0x4c,0x49,0x34,0x51, + 0xe9,0xe0,0x2f,0x64,0x2d,0x01,0x13,0x01,0x18,0x51, + 0x65,0x27,0x3d,0x00,0x00,0x02,0x00,0x0e,0x02,0xe5, + 0x05,0x1b,0x05,0xb6,0x00,0x07,0x00,0x18,0x00,0x00, + 0x01,0x23,0x11,0x23,0x11,0x23,0x35,0x21,0x01,0x23, + 0x11,0x37,0x23,0x03,0x23,0x03,0x23,0x17,0x11,0x23, + 0x11,0x33,0x13,0x13,0x33,0x02,0x19,0xdc,0x56,0xd9, + 0x02,0x0b,0x03,0x02,0x56,0x06,0x08,0xe4,0x49,0xde, + 0x08,0x06,0x52,0x7d,0xdd,0xe0,0x7d,0x05,0x68,0xfd, + 0x7d,0x02,0x83,0x4e,0xfd,0x2f,0x01,0x8e,0xcf,0xfd, + 0xa3,0x02,0x61,0xc9,0xfe,0x68,0x02,0xd1,0xfd,0xa2, + 0x02,0x5e,0x00,0x03,0x00,0x14,0x00,0x00,0x02,0xc5, + 0x06,0x1f,0x00,0x15,0x00,0x1d,0x00,0x21,0x00,0x00, + 0x13,0x34,0x36,0x33,0x32,0x17,0x07,0x26,0x23,0x06, + 0x06,0x07,0x15,0x33,0x15,0x23,0x11,0x23,0x11,0x23, + 0x35,0x37,0x00,0x36,0x32,0x16,0x14,0x06,0x22,0x26, + 0x13,0x23,0x11,0x33,0x9e,0x62,0x79,0x47,0x38,0x21, + 0x33,0x2d,0x48,0x31,0x02,0xaa,0xaa,0x5e,0x8a,0x8a, + 0x01,0xaa,0x24,0x39,0x20,0x20,0x38,0x25,0x6d,0x5f, + 0x5f,0x04,0x9a,0xcf,0xb6,0x19,0x58,0x19,0x03,0x7d, + 0xaf,0x5b,0x54,0xfc,0x17,0x03,0xe9,0x36,0x29,0x01, + 0x4e,0x33,0x32,0x58,0x33,0x34,0xfa,0xc0,0x04,0x3d, + 0x00,0x02,0x00,0x14,0x00,0x00,0x02,0xb5,0x06,0x1f, + 0x00,0x15,0x00,0x19,0x00,0x00,0x13,0x34,0x36,0x33, + 0x32,0x17,0x07,0x26,0x23,0x06,0x06,0x07,0x15,0x33, + 0x15,0x23,0x11,0x23,0x11,0x23,0x35,0x37,0x01,0x23, + 0x11,0x33,0x9e,0x62,0x79,0x47,0x38,0x21,0x33,0x2d, + 0x48,0x31,0x02,0xaa,0xaa,0x5e,0x8a,0x8a,0x02,0x17, + 0x5f,0x5f,0x04,0x9a,0xcf,0xb6,0x19,0x58,0x19,0x03, + 0x7d,0xaf,0x5b,0x54,0xfc,0x17,0x03,0xe9,0x36,0x29, + 0xfb,0xb8,0x06,0x14,0x00,0x02,0x00,0x4a,0x00,0x00, + 0x03,0xe0,0x06,0x18,0x00,0x05,0x00,0x24,0x00,0x00, + 0x01,0x32,0x14,0x23,0x22,0x34,0x01,0x23,0x03,0x33, + 0x13,0x36,0x36,0x37,0x37,0x33,0x07,0x0e,0x03,0x07, + 0x13,0x33,0x32,0x36,0x37,0x36,0x13,0x13,0x33,0x03, + 0x06,0x07,0x0e,0x02,0x03,0xa0,0x40,0x40,0x3d,0xfd, + 0xbd,0x69,0x6d,0x58,0x3d,0x75,0x70,0x16,0x19,0x54, + 0x19,0x0d,0x27,0x49,0x74,0x56,0x20,0x19,0x73,0xc3, + 0x44,0x8c,0x1d,0x36,0x55,0x37,0x17,0x5a,0x33,0x89, + 0xcd,0x06,0x18,0x96,0x96,0xf9,0xe8,0x05,0x0a,0xfd, + 0x23,0x35,0xd4,0xd6,0xfe,0xfe,0x7e,0xac,0x92,0x60, + 0x20,0xfe,0x87,0x62,0x57,0xb3,0x01,0x1c,0x02,0x2b, + 0xfd,0xd5,0xec,0xaf,0x61,0x8d,0x56,0x00,0x00,0x02, + 0x00,0x2e,0x00,0x00,0x03,0xce,0x06,0x18,0x00,0x05, + 0x00,0x24,0x00,0x00,0x13,0x32,0x14,0x23,0x22,0x34, + 0x13,0x23,0x03,0x33,0x13,0x36,0x36,0x37,0x37,0x33, + 0x07,0x0e,0x03,0x07,0x13,0x33,0x32,0x36,0x37,0x36, + 0x13,0x13,0x33,0x03,0x06,0x07,0x0e,0x02,0x6b,0x40, + 0x40,0x3d,0xf2,0x69,0x6d,0x58,0x3d,0x75,0x70,0x16, + 0x19,0x54,0x19,0x0d,0x27,0x49,0x74,0x56,0x20,0x19, + 0x73,0xc3,0x44,0x8c,0x1d,0x36,0x55,0x37,0x17,0x5a, + 0x33,0x89,0xcd,0x06,0x18,0x96,0x96,0xf9,0xe8,0x05, + 0x0a,0xfd,0x23,0x35,0xd4,0xd6,0xfe,0xfe,0x7e,0xac, + 0x92,0x60,0x20,0xfe,0x87,0x62,0x57,0xb3,0x01,0x1c, + 0x02,0x2b,0xfd,0xd5,0xec,0xaf,0x61,0x8d,0x56,0x00, + 0x00,0x00,0x00,0x03,0x00,0x4a,0x00,0x00,0x03,0xe0, + 0x06,0x18,0x00,0x05,0x00,0x24,0x00,0x2a,0x00,0x00, + 0x01,0x32,0x14,0x23,0x22,0x34,0x01,0x23,0x03,0x33, + 0x13,0x36,0x36,0x37,0x37,0x33,0x07,0x0e,0x03,0x07, + 0x13,0x33,0x32,0x36,0x37,0x36,0x13,0x13,0x33,0x03, + 0x06,0x07,0x0e,0x02,0x13,0x32,0x14,0x23,0x22,0x34, + 0x03,0xa0,0x40,0x40,0x3d,0xfd,0xbd,0x69,0x6d,0x58, + 0x3d,0x75,0x70,0x16,0x19,0x54,0x19,0x0d,0x27,0x49, + 0x74,0x56,0x20,0x19,0x73,0xc3,0x44,0x8c,0x1d,0x36, + 0x55,0x37,0x17,0x5a,0x33,0x89,0xcd,0x6f,0x40,0x40, + 0x3d,0x06,0x18,0x96,0x96,0xf9,0xe8,0x05,0x0a,0xfd, + 0x23,0x35,0xd4,0xd6,0xfe,0xfe,0x7e,0xac,0x92,0x60, + 0x20,0xfe,0x87,0x62,0x57,0xb3,0x01,0x1c,0x02,0x2b, + 0xfd,0xd5,0xec,0xaf,0x61,0x8d,0x56,0x02,0x03,0x96, + 0x96,0x00,0x00,0x03,0x00,0x2e,0x00,0x00,0x03,0xce, + 0x06,0x18,0x00,0x05,0x00,0x24,0x00,0x2a,0x00,0x00, + 0x13,0x32,0x14,0x23,0x22,0x34,0x13,0x23,0x03,0x33, + 0x13,0x36,0x36,0x37,0x37,0x33,0x07,0x0e,0x03,0x07, + 0x13,0x33,0x32,0x36,0x37,0x36,0x13,0x13,0x33,0x03, + 0x06,0x07,0x0e,0x02,0x13,0x32,0x14,0x23,0x22,0x34, + 0x6b,0x40,0x40,0x3d,0xf2,0x69,0x6d,0x58,0x3d,0x75, + 0x70,0x16,0x19,0x54,0x19,0x0d,0x27,0x49,0x74,0x56, + 0x20,0x19,0x73,0xc3,0x44,0x8c,0x1d,0x36,0x55,0x37, + 0x17,0x5a,0x33,0x89,0xcd,0x6f,0x40,0x40,0x3d,0x06, + 0x18,0x96,0x96,0xf9,0xe8,0x05,0x0a,0xfd,0x23,0x35, + 0xd4,0xd6,0xfe,0xfe,0x7e,0xac,0x92,0x60,0x20,0xfe, + 0x87,0x62,0x57,0xb3,0x01,0x1c,0x02,0x2b,0xfd,0xd5, + 0xec,0xaf,0x61,0x8d,0x56,0x02,0x03,0x96,0x96,0x00, + 0x00,0x00,0x00,0x02,0x00,0x48,0xfe,0xdb,0x02,0xbf, + 0x05,0x0a,0x00,0x1b,0x00,0x1f,0x00,0x00,0x01,0x11, + 0x14,0x06,0x07,0x06,0x07,0x13,0x23,0x01,0x06,0x06, + 0x15,0x11,0x23,0x11,0x34,0x37,0x36,0x36,0x37,0x03, + 0x33,0x01,0x36,0x36,0x35,0x11,0x03,0x21,0x35,0x21, + 0x02,0xb4,0x0a,0x10,0x21,0x6f,0xb5,0x67,0xfe,0xc4, + 0x41,0x38,0x5b,0x1c,0x11,0x4c,0x39,0xb2,0x66,0x01, + 0x38,0x3f,0x34,0x31,0xfe,0x9b,0x01,0x65,0x05,0x0a, + 0xfe,0x2c,0x3d,0x5d,0x39,0x74,0x37,0xfe,0x48,0x03, + 0x03,0x2a,0x99,0x7c,0xfe,0x3c,0x01,0xc5,0x75,0x66, + 0x3c,0x5f,0x1c,0x01,0xb3,0xfd,0x06,0x27,0x89,0x77, + 0x01,0xd3,0xf9,0xd1,0x48,0x00,0x00,0x00,0x00,0x02, + 0x00,0x48,0xfe,0x12,0x02,0xbf,0x05,0x0a,0x00,0x1b, + 0x00,0x23,0x00,0x00,0x01,0x11,0x14,0x06,0x07,0x06, + 0x07,0x13,0x23,0x01,0x06,0x06,0x15,0x11,0x23,0x11, + 0x34,0x37,0x36,0x36,0x37,0x03,0x33,0x01,0x36,0x36, + 0x35,0x11,0x03,0x23,0x15,0x23,0x35,0x23,0x35,0x21, + 0x02,0xb4,0x0a,0x10,0x21,0x6f,0xb5,0x67,0xfe,0xc4, + 0x41,0x38,0x5b,0x1c,0x11,0x4c,0x39,0xb2,0x66,0x01, + 0x38,0x3f,0x34,0x31,0x8f,0x47,0x8f,0x01,0x65,0x05, + 0x0a,0xfe,0x2c,0x3d,0x5d,0x39,0x74,0x37,0xfe,0x48, + 0x03,0x03,0x2a,0x99,0x7c,0xfe,0x3c,0x01,0xc5,0x75, + 0x66,0x3c,0x5f,0x1c,0x01,0xb3,0xfd,0x06,0x27,0x89, + 0x77,0x01,0xd3,0xf9,0xd1,0xc9,0xc9,0x48,0x00,0x02, + 0x00,0x48,0x00,0x00,0x02,0xbf,0x05,0x0a,0x00,0x1b, + 0x00,0x21,0x00,0x00,0x01,0x11,0x14,0x06,0x07,0x06, + 0x07,0x13,0x23,0x01,0x06,0x06,0x15,0x11,0x23,0x11, + 0x34,0x37,0x36,0x36,0x37,0x03,0x33,0x01,0x36,0x36, + 0x35,0x11,0x01,0x32,0x14,0x23,0x22,0x34,0x02,0xb4, + 0x0a,0x10,0x21,0x6f,0xb5,0x67,0xfe,0xc4,0x41,0x38, + 0x5b,0x1c,0x11,0x4c,0x39,0xb2,0x66,0x01,0x38,0x3f, + 0x34,0xfe,0xe0,0x40,0x40,0x3d,0x05,0x0a,0xfe,0x2c, + 0x3d,0x5d,0x39,0x74,0x37,0xfe,0x48,0x03,0x03,0x2a, + 0x99,0x7c,0xfe,0x3c,0x01,0xc5,0x75,0x66,0x3c,0x5f, + 0x1c,0x01,0xb3,0xfd,0x06,0x27,0x89,0x77,0x01,0xd3, + 0xfc,0x74,0x96,0x96,0x00,0x02,0x00,0x5e,0x00,0x00, + 0x02,0xcd,0x05,0x1e,0x00,0x17,0x00,0x1d,0x00,0x00, + 0x13,0x36,0x32,0x16,0x16,0x17,0x16,0x15,0x11,0x33, + 0x15,0x21,0x35,0x21,0x11,0x34,0x27,0x26,0x27,0x26, + 0x23,0x22,0x07,0x07,0x13,0x32,0x14,0x23,0x22,0x34, + 0x5e,0x66,0xa9,0x5e,0x56,0x1b,0x3b,0x56,0xfd,0x92, + 0x01,0xb9,0x25,0x1f,0x51,0x22,0x2f,0x50,0x66,0x1e, + 0xbd,0x40,0x40,0x3d,0x05,0x14,0x0a,0x11,0x2f,0x28, + 0x56,0xaa,0xfc,0x9e,0x54,0x54,0x03,0x62,0x87,0x41, + 0x37,0x0d,0x06,0x08,0x03,0xfe,0x2c,0x96,0x96,0x00, + 0x00,0x02,0x00,0x73,0xff,0xfc,0x02,0x03,0x05,0x1e, + 0x00,0x1b,0x00,0x21,0x00,0x00,0x01,0x32,0x11,0x11, + 0x23,0x27,0x23,0x06,0x07,0x06,0x23,0x22,0x27,0x37, + 0x16,0x33,0x32,0x36,0x35,0x11,0x34,0x27,0x26,0x23, + 0x22,0x07,0x35,0x36,0x13,0x32,0x14,0x23,0x22,0x34, + 0x01,0x16,0xed,0x50,0x0a,0x07,0x1d,0x19,0x3e,0x7c, + 0x1e,0x21,0x12,0x17,0x1f,0x75,0x74,0x1a,0x1e,0x5e, + 0x23,0x3e,0x37,0x19,0x40,0x40,0x3d,0x05,0x1e,0xfe, + 0xdd,0xfc,0x05,0xd5,0x59,0x25,0x5b,0x0b,0x5e,0x0d, + 0xdd,0xca,0x01,0xfc,0x5b,0x34,0x3e,0x11,0x58,0x0f, + 0xfd,0xcb,0x96,0x96,0x00,0x02,0x00,0x11,0x00,0x00, + 0x02,0x87,0x05,0x0a,0x00,0x11,0x00,0x17,0x00,0x00, + 0x01,0x15,0x06,0x06,0x07,0x06,0x15,0x11,0x23,0x11, + 0x34,0x36,0x37,0x36,0x37,0x37,0x21,0x35,0x13,0x32, + 0x14,0x23,0x22,0x34,0x02,0x87,0x43,0x52,0x14,0x2d, + 0x5f,0x1c,0x14,0x29,0x1f,0x0e,0xfe,0x39,0xcb,0x40, + 0x40,0x3d,0x05,0x0a,0x49,0x17,0x3f,0x1d,0x45,0x69, + 0xfc,0x60,0x03,0xa0,0x3b,0x65,0x1e,0x3e,0x12,0x08, + 0x54,0xfd,0xdf,0x96,0x96,0x00,0x00,0x00,0x00,0x03, + 0x00,0x91,0x00,0x00,0x03,0x07,0x05,0x1e,0x00,0x0f, + 0x00,0x13,0x00,0x19,0x00,0x00,0x13,0x36,0x32,0x1e, + 0x02,0x15,0x11,0x23,0x11,0x34,0x2e,0x02,0x22,0x07, + 0x11,0x11,0x33,0x11,0x13,0x32,0x14,0x23,0x22,0x34, + 0x91,0xcc,0x9a,0x7f,0x64,0x2d,0x60,0x1c,0x48,0x5d, + 0x6e,0xe7,0x5f,0xda,0x40,0x40,0x3d,0x05,0x0a,0x14, + 0x1c,0x4d,0x90,0x6f,0xfc,0x4a,0x03,0xb6,0x5a,0x6c, + 0x3a,0x12,0x15,0xfb,0x4d,0x03,0x2d,0xfc,0xd3,0x02, + 0xe9,0x96,0x96,0x00,0x00,0x00,0x00,0x02,0xff,0xcc, + 0x00,0x00,0x00,0xf0,0x05,0x0a,0x00,0x03,0x00,0x09, + 0x00,0x00,0x33,0x11,0x33,0x11,0x03,0x32,0x14,0x23, + 0x22,0x34,0x91,0x5f,0xe7,0x40,0x40,0x3d,0x05,0x0a, + 0xfa,0xf6,0x02,0xe9,0x96,0x96,0x00,0x02,0xff,0xec, + 0x00,0x00,0x01,0x8c,0x05,0x0a,0x00,0x0c,0x00,0x12, + 0x00,0x00,0x01,0x15,0x06,0x06,0x15,0x11,0x23,0x11, + 0x34,0x36,0x37,0x23,0x35,0x03,0x32,0x14,0x23,0x22, + 0x34,0x01,0x8c,0x38,0x45,0x5f,0x4a,0x25,0x98,0x5e, + 0x40,0x40,0x3d,0x05,0x0a,0x49,0x2c,0xda,0x8c,0xfc, + 0xd1,0x03,0x2f,0x96,0xd1,0x20,0x54,0xfd,0xdf,0x96, + 0x96,0x00,0x00,0x00,0x00,0x02,0x00,0x5e,0xff,0xec, + 0x03,0x16,0x05,0x1e,0x00,0x18,0x00,0x1e,0x00,0x00, + 0x01,0x20,0x10,0x20,0x13,0x11,0x33,0x11,0x10,0x17, + 0x16,0x16,0x32,0x36,0x37,0x36,0x11,0x10,0x27,0x2e, + 0x02,0x07,0x35,0x36,0x13,0x32,0x14,0x23,0x22,0x34, + 0x01,0xba,0x01,0x5c,0xfd,0x48,0x01,0x60,0x4b,0x24, + 0x55,0x6e,0x54,0x24,0x4a,0x4a,0x24,0x55,0x64,0x2f, + 0x2e,0x2f,0x40,0x40,0x3d,0x05,0x1e,0xfa,0xce,0x02, + 0x99,0x02,0x85,0xfd,0x7b,0xfe,0xb5,0x81,0x3e,0x35, + 0x35,0x3e,0x7f,0x01,0x4d,0x01,0x4c,0x81,0x3e,0x36, + 0x02,0x0a,0x58,0x08,0xfd,0xcb,0x96,0x96,0x00,0x02, + 0xff,0xca,0x01,0xe2,0x00,0xeb,0x05,0x0a,0x00,0x04, + 0x00,0x0a,0x00,0x00,0x13,0x11,0x33,0x11,0x07,0x03, + 0x32,0x14,0x23,0x22,0x34,0x8c,0x5f,0x56,0x8e,0x40, + 0x40,0x3d,0x01,0xe2,0x03,0x28,0xfd,0x46,0x6e,0x01, + 0x7c,0x96,0x96,0x00,0x00,0x00,0x00,0x02,0x00,0x29, + 0xfe,0x14,0x02,0x1b,0x05,0x1e,0x00,0x0b,0x00,0x11, + 0x00,0x00,0x13,0x20,0x11,0x11,0x23,0x11,0x10,0x23, + 0x22,0x07,0x35,0x36,0x13,0x32,0x14,0x23,0x22,0x34, + 0xc9,0x01,0x52,0x61,0xf2,0x51,0x4e,0x47,0x51,0x40, + 0x40,0x3d,0x05,0x1e,0xfd,0xb3,0xfb,0x43,0x04,0xbd, + 0x01,0xf3,0x32,0x67,0x25,0xfd,0xcb,0x96,0x96,0x00, + 0x00,0x02,0x00,0x29,0xff,0xec,0x02,0x1b,0x05,0x1e, + 0x00,0x1a,0x00,0x20,0x00,0x00,0x13,0x20,0x11,0x15, + 0x10,0x21,0x22,0x27,0x27,0x35,0x16,0x33,0x32,0x37, + 0x3e,0x02,0x37,0x36,0x35,0x35,0x10,0x23,0x22,0x07, + 0x35,0x36,0x13,0x32,0x14,0x23,0x22,0x34,0xc9,0x01, + 0x52,0xfe,0xae,0x45,0x40,0x15,0x39,0x60,0x6e,0x3c, + 0x23,0x18,0x08,0x02,0x03,0xf2,0x51,0x4e,0x47,0x51, + 0x40,0x40,0x3d,0x05,0x1e,0xfd,0xb3,0xbd,0xfd,0xd8, + 0x14,0x07,0x5c,0x21,0x66,0x3c,0x73,0x3b,0x25,0x37, + 0x26,0xbd,0x01,0xf3,0x32,0x67,0x25,0xfd,0xcb,0x96, + 0x96,0x00,0x00,0x00,0x00,0x02,0x00,0x2d,0x00,0x00, + 0x02,0x3e,0x06,0x21,0x00,0x0a,0x00,0x10,0x00,0x00, + 0x01,0x15,0x03,0x03,0x23,0x13,0x13,0x21,0x11,0x33, + 0x11,0x13,0x32,0x14,0x23,0x22,0x34,0x02,0x3e,0x9e, + 0x5b,0x61,0x59,0xa9,0xfe,0x47,0x5f,0x07,0x40,0x40, + 0x3d,0x05,0x10,0x6e,0xfd,0x59,0xfe,0x05,0x01,0xf0, + 0x02,0xc4,0x01,0x6d,0xfe,0xef,0xfd,0xd9,0x96,0x96, + 0x00,0x00,0x00,0x02,0x00,0x3b,0x00,0x00,0x02,0xce, + 0x05,0x1e,0x00,0x25,0x00,0x2b,0x00,0x00,0x00,0x36, + 0x32,0x16,0x16,0x17,0x16,0x15,0x11,0x21,0x35,0x33, + 0x11,0x34,0x27,0x26,0x27,0x26,0x22,0x06,0x07,0x06, + 0x07,0x07,0x03,0x23,0x13,0x36,0x35,0x34,0x27,0x27, + 0x33,0x16,0x17,0x33,0x36,0x37,0x13,0x32,0x14,0x23, + 0x22,0x34,0x01,0x5d,0x57,0x6c,0x54,0x33,0x0f,0x18, + 0xfe,0xc3,0xde,0x13,0x18,0x26,0x18,0x53,0x55,0x1a, + 0x35,0x10,0x07,0x5d,0x60,0x5d,0x02,0x2c,0x11,0x65, + 0x1c,0x0f,0x06,0x1f,0x32,0x6a,0x40,0x40,0x3d,0x04, + 0xfc,0x22,0x29,0x46,0x39,0x5f,0xa4,0xfc,0x8d,0x54, + 0x03,0x1f,0xc0,0x35,0x44,0x12,0x0a,0x2d,0x21,0x44, + 0x32,0x17,0xfc,0x13,0x03,0xed,0x17,0x1f,0x43,0x77, + 0x2d,0x41,0x46,0x3e,0x27,0xfe,0x01,0x96,0x96,0x00, + 0x00,0x00,0x00,0x02,0x00,0x27,0x00,0x00,0x01,0xad, + 0x05,0x1e,0x00,0x15,0x00,0x1b,0x00,0x00,0x13,0x32, + 0x11,0x11,0x14,0x06,0x07,0x07,0x21,0x35,0x21,0x36, + 0x35,0x11,0x34,0x27,0x26,0x23,0x22,0x07,0x35,0x36, + 0x13,0x32,0x14,0x23,0x22,0x34,0xc0,0xed,0x13,0x0a, + 0x0a,0xfe,0xa1,0x01,0x0c,0x1b,0x1a,0x1e,0x5e,0x23, + 0x3e,0x37,0x19,0x40,0x40,0x3d,0x05,0x1e,0xfe,0xdd, + 0xfd,0x4e,0x44,0xa4,0x31,0x30,0x54,0x7f,0x76,0x02, + 0xb2,0x5b,0x34,0x3e,0x11,0x58,0x0f,0xfd,0xcb,0x96, + 0x96,0x00,0x00,0x00,0x00,0x03,0x00,0x5e,0xff,0xec, + 0x03,0x16,0x05,0x1e,0x00,0x0a,0x00,0x1a,0x00,0x20, + 0x00,0x00,0x01,0x20,0x10,0x20,0x11,0x34,0x12,0x37, + 0x07,0x35,0x36,0x06,0x02,0x10,0x1e,0x02,0x32,0x3e, + 0x02,0x10,0x2e,0x02,0x23,0x07,0x13,0x32,0x14,0x23, + 0x22,0x34,0x01,0xba,0x01,0x5c,0xfd,0x48,0x3f,0x54, + 0x7e,0xe0,0x4f,0x43,0x26,0x48,0x54,0x6e,0x54,0x48, + 0x26,0x26,0x48,0x54,0x37,0x5e,0x5e,0x40,0x40,0x3d, + 0x05,0x1e,0xfa,0xce,0x02,0x99,0xcb,0x01,0x06,0x69, + 0x07,0x58,0x0e,0xb4,0xfe,0xf1,0xfe,0x85,0xe9,0x7c, + 0x35,0x35,0x7c,0xe9,0x01,0x4a,0xe9,0x7c,0x35,0x02, + 0xfe,0x27,0x96,0x96,0x00,0x00,0x00,0x02,0x00,0x5e, + 0xfe,0x14,0x03,0x04,0x05,0x1e,0x00,0x17,0x00,0x1d, + 0x00,0x00,0x01,0x22,0x26,0x10,0x36,0x33,0x20,0x11, + 0x11,0x23,0x11,0x10,0x23,0x22,0x06,0x07,0x06,0x15, + 0x14,0x17,0x16,0x33,0x33,0x07,0x13,0x32,0x14,0x23, + 0x22,0x34,0x01,0x88,0x98,0x92,0xb4,0x96,0x01,0x5c, + 0x5f,0xfd,0x3d,0x60,0x1c,0x39,0x43,0x34,0x62,0x0e, + 0x10,0x0a,0x40,0x40,0x3d,0x01,0xb9,0xde,0x01,0x8c, + 0xfb,0xfd,0x67,0xfb,0x8f,0x04,0x71,0x02,0x3f,0x46, + 0x38,0x70,0x7b,0xc5,0x52,0x40,0x4b,0x01,0xe1,0x96, + 0x96,0x00,0x00,0x02,0x00,0x5e,0xff,0xec,0x03,0x04, + 0x05,0x1e,0x00,0x25,0x00,0x2b,0x00,0x00,0x01,0x22, + 0x26,0x10,0x36,0x33,0x20,0x11,0x10,0x02,0x23,0x22, + 0x27,0x27,0x35,0x16,0x33,0x32,0x36,0x36,0x37,0x36, + 0x11,0x10,0x27,0x26,0x26,0x22,0x06,0x07,0x06,0x15, + 0x14,0x17,0x16,0x33,0x33,0x07,0x13,0x32,0x14,0x23, + 0x22,0x34,0x01,0x88,0x98,0x92,0xb4,0x96,0x01,0x5c, + 0xc0,0xad,0x69,0x57,0x1d,0x67,0x76,0x2b,0x4a,0x46, + 0x18,0x37,0x4a,0x24,0x54,0x74,0x60,0x1c,0x39,0x43, + 0x34,0x62,0x0e,0x10,0x24,0x40,0x40,0x3d,0x01,0xb9, + 0xde,0x01,0x8c,0xfb,0xfd,0x67,0xfe,0xb2,0xfe,0xb5, + 0x0f,0x05,0x59,0x13,0x1f,0x50,0x3f,0x8e,0x01,0x03, + 0x01,0x4d,0x7f,0x3e,0x35,0x46,0x38,0x70,0x7b,0xc5, + 0x52,0x40,0x4b,0x01,0xe1,0x96,0x96,0x00,0x00,0x02, + 0x00,0x3b,0x00,0x00,0x02,0xa9,0x05,0x0a,0x00,0x12, + 0x00,0x18,0x00,0x00,0x21,0x21,0x35,0x21,0x03,0x01, + 0x33,0x01,0x17,0x36,0x36,0x37,0x13,0x33,0x03,0x06, + 0x06,0x07,0x13,0x01,0x32,0x14,0x23,0x22,0x34,0x02, + 0xa1,0xfd,0x9a,0x01,0xed,0xd5,0xfe,0xe8,0x65,0x01, + 0x19,0x07,0x30,0x2c,0x0f,0x20,0x5e,0x1f,0x14,0x43, + 0x49,0xb7,0xfe,0x20,0x40,0x40,0x3d,0x54,0x01,0xfd, + 0x02,0xb9,0xfd,0x47,0x13,0x4d,0xc5,0x85,0x01,0x35, + 0xfe,0xcb,0xc6,0xe3,0x50,0xfe,0x4f,0x01,0x81,0x96, + 0x96,0x00,0x00,0x00,0x00,0x03,0x00,0x91,0xfe,0x14, + 0x03,0x0d,0x05,0x0a,0x00,0x19,0x00,0x1d,0x00,0x23, + 0x00,0x00,0x25,0x15,0x23,0x35,0x34,0x37,0x37,0x3e, + 0x03,0x37,0x13,0x21,0x35,0x21,0x15,0x03,0x0e,0x05, + 0x07,0x06,0x01,0x11,0x33,0x11,0x13,0x32,0x14,0x23, + 0x22,0x34,0x01,0xd8,0x5d,0x09,0x0e,0x0b,0x3a,0x0b, + 0x1d,0x03,0xac,0xfd,0xe3,0x02,0x7c,0xac,0x0c,0x21, + 0x1a,0x0f,0x15,0x0c,0x06,0x0c,0xfe,0xba,0x5f,0x92, + 0x40,0x40,0x3d,0x11,0x11,0x11,0x27,0x2d,0x49,0x35, + 0xd4,0x2a,0x64,0x0c,0x02,0x65,0x54,0x54,0xfd,0x9b, + 0x29,0x78,0x5c,0x3c,0x52,0x39,0x1f,0x3e,0xfd,0xe4, + 0x04,0xe3,0xfb,0x1d,0x04,0xd5,0x96,0x96,0x00,0x00, + 0x00,0x02,0x00,0x17,0x00,0x00,0x02,0x10,0x05,0x1e, + 0x00,0x13,0x00,0x19,0x00,0x00,0x13,0x36,0x32,0x1e, + 0x02,0x17,0x16,0x15,0x11,0x23,0x11,0x34,0x2e,0x02, + 0x23,0x22,0x07,0x07,0x13,0x32,0x14,0x23,0x22,0x34, + 0x17,0x4d,0x9c,0x5c,0x4f,0x32,0x12,0x21,0x5f,0x14, + 0x3b,0x55,0x39,0x56,0x50,0x17,0xc5,0x40,0x40,0x3d, + 0x05,0x14,0x0a,0x0b,0x1f,0x33,0x28,0x49,0x9a,0xfc, + 0x4a,0x03,0xb6,0x5c,0x69,0x3c,0x11,0x08,0x03,0xfe, + 0x2c,0x96,0x96,0x00,0x00,0x02,0x00,0x4a,0x00,0x00, + 0x03,0xce,0x05,0x0a,0x00,0x1e,0x00,0x24,0x00,0x00, + 0x21,0x23,0x03,0x33,0x13,0x36,0x36,0x37,0x37,0x33, + 0x07,0x0e,0x03,0x07,0x13,0x33,0x32,0x36,0x37,0x36, + 0x13,0x13,0x33,0x03,0x06,0x07,0x0e,0x02,0x13,0x32, + 0x14,0x23,0x22,0x34,0x01,0x20,0x69,0x6d,0x58,0x3d, + 0x75,0x70,0x16,0x19,0x54,0x19,0x0d,0x27,0x49,0x74, + 0x56,0x20,0x19,0x73,0xc3,0x44,0x8c,0x1d,0x36,0x55, + 0x37,0x17,0x5a,0x33,0x89,0xcd,0x6f,0x40,0x40,0x3d, + 0x05,0x0a,0xfd,0x23,0x35,0xd4,0xd6,0xfe,0xfe,0x7e, + 0xac,0x92,0x60,0x20,0xfe,0x87,0x62,0x57,0xb3,0x01, + 0x1c,0x02,0x2b,0xfd,0xd5,0xec,0xaf,0x61,0x8d,0x56, + 0x02,0x03,0x96,0x96,0x00,0x02,0x00,0x10,0x00,0x00, + 0x02,0xe9,0x05,0x1e,0x00,0x1e,0x00,0x24,0x00,0x00, + 0x13,0x36,0x32,0x16,0x16,0x17,0x16,0x15,0x11,0x23, + 0x11,0x34,0x27,0x26,0x27,0x26,0x22,0x07,0x11,0x14, + 0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x11, + 0x07,0x01,0x32,0x14,0x23,0x22,0x34,0x40,0xc2,0xd2, + 0x64,0x59,0x1c,0x3c,0x5f,0x28,0x22,0x56,0x24,0x51, + 0x85,0x49,0x49,0x26,0x28,0x2c,0x11,0x44,0x51,0x01, + 0x7d,0x40,0x40,0x3d,0x05,0x08,0x16,0x11,0x2e,0x28, + 0x56,0xab,0xfc,0x4a,0x03,0xb6,0x88,0x40,0x37,0x0d, + 0x06,0x07,0xfc,0x0b,0x6f,0x5d,0x08,0x5b,0x08,0x71, + 0x03,0xec,0x07,0xfe,0x38,0x96,0x96,0x00,0x00,0x00, + 0x00,0x02,0x00,0x67,0x00,0x00,0x00,0xf0,0x06,0x18, + 0x00,0x05,0x00,0x09,0x00,0x00,0x13,0x32,0x14,0x23, + 0x22,0x34,0x13,0x11,0x33,0x11,0xa4,0x40,0x40,0x3d, + 0x2a,0x5f,0x06,0x18,0x96,0x96,0xf9,0xe8,0x05,0x0a, + 0xfa,0xf6,0x00,0x00,0x00,0x01,0xff,0x15,0x05,0xa9, + 0x00,0xeb,0x05,0xfc,0x00,0x03,0x00,0x00,0x13,0x21, + 0x35,0x21,0xeb,0xfe,0x2a,0x01,0xd6,0x05,0xa9,0x53, + 0x00,0x00,0x00,0x00,0x00,0x20,0x01,0x86,0x00,0x01, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x75,0x00,0x00, + 0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x20, + 0x00,0x75,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x02, + 0x00,0x07,0x00,0x95,0x00,0x01,0x00,0x00,0x00,0x00, + 0x00,0x03,0x00,0x28,0x00,0x9c,0x00,0x01,0x00,0x00, + 0x00,0x00,0x00,0x04,0x00,0x20,0x00,0x75,0x00,0x01, + 0x00,0x00,0x00,0x00,0x00,0x05,0x00,0x3c,0x00,0xc4, + 0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x1d, + 0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x07, + 0x00,0x52,0x01,0x1d,0x00,0x01,0x00,0x00,0x00,0x00, + 0x00,0x08,0x00,0x22,0x01,0x6f,0x00,0x01,0x00,0x00, + 0x00,0x00,0x00,0x0b,0x00,0x32,0x01,0x91,0x00,0x01, + 0x00,0x00,0x00,0x00,0x00,0x0c,0x00,0x3c,0x01,0xc3, + 0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x0d,0x00,0x2e, + 0x01,0xff,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x0e, + 0x00,0x2a,0x02,0x2d,0x00,0x01,0x00,0x00,0x00,0x00, + 0x00,0x10,0x00,0x1a,0x02,0x57,0x00,0x01,0x00,0x00, + 0x00,0x00,0x00,0x11,0x00,0x05,0x02,0x71,0x00,0x01, + 0x00,0x00,0x00,0x00,0x00,0x12,0x00,0x20,0x00,0x75, + 0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x00,0x00,0xea, + 0x02,0x76,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x01, + 0x00,0x40,0x03,0x60,0x00,0x03,0x00,0x01,0x04,0x09, + 0x00,0x02,0x00,0x0e,0x03,0xa0,0x00,0x03,0x00,0x01, + 0x04,0x09,0x00,0x03,0x00,0x50,0x03,0xae,0x00,0x03, + 0x00,0x01,0x04,0x09,0x00,0x04,0x00,0x40,0x03,0x60, + 0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x05,0x00,0x78, + 0x03,0xfe,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x06, + 0x00,0x3a,0x04,0x76,0x00,0x03,0x00,0x01,0x04,0x09, + 0x00,0x07,0x00,0xa4,0x04,0xb0,0x00,0x03,0x00,0x01, + 0x04,0x09,0x00,0x08,0x00,0x44,0x05,0x54,0x00,0x03, + 0x00,0x01,0x04,0x09,0x00,0x0b,0x00,0x64,0x05,0x98, + 0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x0c,0x00,0x78, + 0x05,0xfc,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x0d, + 0x00,0x5c,0x06,0x74,0x00,0x03,0x00,0x01,0x04,0x09, + 0x00,0x0e,0x00,0x54,0x06,0xd0,0x00,0x03,0x00,0x01, + 0x04,0x09,0x00,0x10,0x00,0x34,0x07,0x24,0x00,0x03, + 0x00,0x01,0x04,0x09,0x00,0x11,0x00,0x0a,0x07,0x58, + 0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x12,0x00,0x40, + 0x03,0x60,0x44,0x69,0x67,0x69,0x74,0x69,0x7a,0x65, + 0x64,0x20,0x64,0x61,0x74,0x61,0x20,0x63,0x6f,0x70, + 0x79,0x72,0x69,0x67,0x68,0x74,0x20,0x28,0x63,0x29, + 0x20,0x32,0x30,0x31,0x31,0x2c,0x20,0x47,0x6f,0x6f, + 0x67,0x6c,0x65,0x20,0x43,0x6f,0x72,0x70,0x6f,0x72, + 0x61,0x74,0x69,0x6f,0x6e,0x2e,0x20,0x43,0x6f,0x70, + 0x79,0x72,0x69,0x67,0x68,0x74,0x20,0x28,0x63,0x29, + 0x20,0x32,0x30,0x31,0x32,0x2c,0x20,0x32,0x30,0x31, + 0x33,0x20,0x59,0x61,0x6e,0x65,0x6b,0x20,0x49,0x6f, + 0x6e,0x74,0x65,0x66,0x20,0x28,0x79,0x61,0x6e,0x65, + 0x6b,0x40,0x6e,0x65,0x74,0x76,0x69,0x73,0x69,0x6f, + 0x6e,0x2e,0x6e,0x65,0x74,0x2e,0x69,0x6c,0x29,0x4f, + 0x70,0x65,0x6e,0x20,0x53,0x61,0x6e,0x73,0x20,0x48, + 0x65,0x62,0x72,0x65,0x77,0x20,0x43,0x6f,0x6e,0x64, + 0x65,0x6e,0x73,0x65,0x64,0x20,0x4c,0x69,0x67,0x68, + 0x74,0x52,0x65,0x67,0x75,0x6c,0x61,0x72,0x32,0x2e, + 0x30,0x30,0x31,0x3b,0x55,0x4b,0x57,0x4e,0x3b,0x4f, + 0x70,0x65,0x6e,0x53,0x61,0x6e,0x73,0x48,0x65,0x62, + 0x72,0x65,0x77,0x43,0x6f,0x6e,0x64,0x65,0x6e,0x73, + 0x65,0x64,0x2d,0x4c,0x69,0x67,0x68,0x74,0x56,0x65, + 0x72,0x73,0x69,0x6f,0x6e,0x20,0x32,0x2e,0x30,0x30, + 0x31,0x3b,0x50,0x53,0x20,0x30,0x30,0x32,0x2e,0x30, + 0x30,0x31,0x3b,0x68,0x6f,0x74,0x63,0x6f,0x6e,0x76, + 0x20,0x31,0x2e,0x30,0x2e,0x37,0x30,0x3b,0x6d,0x61, + 0x6b,0x65,0x6f,0x74,0x66,0x2e,0x6c,0x69,0x62,0x32, + 0x2e,0x35,0x2e,0x35,0x38,0x33,0x32,0x39,0x4f,0x70, + 0x65,0x6e,0x53,0x61,0x6e,0x73,0x48,0x65,0x62,0x72, + 0x65,0x77,0x43,0x6f,0x6e,0x64,0x65,0x6e,0x73,0x65, + 0x64,0x2d,0x4c,0x69,0x67,0x68,0x74,0x4f,0x70,0x65, + 0x6e,0x20,0x53,0x61,0x6e,0x73,0x20,0x69,0x73,0x20, + 0x61,0x20,0x74,0x72,0x61,0x64,0x65,0x6d,0x61,0x72, + 0x6b,0x20,0x6f,0x66,0x20,0x47,0x6f,0x6f,0x67,0x6c, + 0x65,0x20,0x61,0x6e,0x64,0x20,0x6d,0x61,0x79,0x20, + 0x62,0x65,0x20,0x72,0x65,0x67,0x69,0x73,0x74,0x65, + 0x72,0x65,0x64,0x20,0x69,0x6e,0x20,0x63,0x65,0x72, + 0x74,0x61,0x69,0x6e,0x20,0x6a,0x75,0x72,0x69,0x73, + 0x64,0x69,0x63,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x41, + 0x73,0x63,0x65,0x6e,0x64,0x65,0x72,0x20,0x43,0x6f, + 0x72,0x70,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2c, + 0x20,0x59,0x61,0x6e,0x65,0x6b,0x20,0x49,0x6f,0x6e, + 0x74,0x65,0x66,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f, + 0x77,0x77,0x77,0x2e,0x61,0x73,0x63,0x65,0x6e,0x64, + 0x65,0x72,0x63,0x6f,0x72,0x70,0x2e,0x63,0x6f,0x6d, + 0x2f,0x20,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77, + 0x77,0x77,0x2e,0x66,0x6f,0x6e,0x74,0x65,0x66,0x2e, + 0x63,0x6f,0x6d,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f, + 0x77,0x77,0x77,0x2e,0x61,0x73,0x63,0x65,0x6e,0x64, + 0x65,0x72,0x63,0x6f,0x72,0x70,0x2e,0x63,0x6f,0x6d, + 0x2f,0x74,0x79,0x70,0x65,0x64,0x65,0x73,0x69,0x67, + 0x6e,0x65,0x72,0x73,0x2e,0x68,0x74,0x6d,0x6c,0x2c, + 0x20,0x59,0x61,0x6e,0x65,0x6b,0x20,0x49,0x6f,0x6e, + 0x74,0x65,0x66,0x4c,0x69,0x63,0x65,0x6e,0x73,0x65, + 0x64,0x20,0x75,0x6e,0x64,0x65,0x72,0x20,0x74,0x68, + 0x65,0x20,0x41,0x70,0x61,0x63,0x68,0x65,0x20,0x4c, + 0x69,0x63,0x65,0x6e,0x73,0x65,0x2c,0x20,0x56,0x65, + 0x72,0x73,0x69,0x6f,0x6e,0x20,0x32,0x2e,0x30,0x68, + 0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e, + 0x61,0x70,0x61,0x63,0x68,0x65,0x2e,0x6f,0x72,0x67, + 0x2f,0x6c,0x69,0x63,0x65,0x6e,0x73,0x65,0x73,0x2f, + 0x4c,0x49,0x43,0x45,0x4e,0x53,0x45,0x2d,0x32,0x2e, + 0x30,0x4f,0x70,0x65,0x6e,0x20,0x53,0x61,0x6e,0x73, + 0x20,0x48,0x65,0x62,0x72,0x65,0x77,0x20,0x43,0x6f, + 0x6e,0x64,0x65,0x6e,0x73,0x65,0x64,0x4c,0x69,0x67, + 0x68,0x74,0x00,0x44,0x00,0x69,0x00,0x67,0x00,0x69, + 0x00,0x74,0x00,0x69,0x00,0x7a,0x00,0x65,0x00,0x64, + 0x00,0x20,0x00,0x64,0x00,0x61,0x00,0x74,0x00,0x61, + 0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x70,0x00,0x79, + 0x00,0x72,0x00,0x69,0x00,0x67,0x00,0x68,0x00,0x74, + 0x00,0x20,0x00,0x28,0x00,0x63,0x00,0x29,0x00,0x20, + 0x00,0x32,0x00,0x30,0x00,0x31,0x00,0x31,0x00,0x2c, + 0x00,0x20,0x00,0x47,0x00,0x6f,0x00,0x6f,0x00,0x67, + 0x00,0x6c,0x00,0x65,0x00,0x20,0x00,0x43,0x00,0x6f, + 0x00,0x72,0x00,0x70,0x00,0x6f,0x00,0x72,0x00,0x61, + 0x00,0x74,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x2e, + 0x00,0x20,0x00,0x43,0x00,0x6f,0x00,0x70,0x00,0x79, + 0x00,0x72,0x00,0x69,0x00,0x67,0x00,0x68,0x00,0x74, + 0x00,0x20,0x00,0x28,0x00,0x63,0x00,0x29,0x00,0x20, + 0x00,0x32,0x00,0x30,0x00,0x31,0x00,0x32,0x00,0x2c, + 0x00,0x20,0x00,0x32,0x00,0x30,0x00,0x31,0x00,0x33, + 0x00,0x20,0x00,0x59,0x00,0x61,0x00,0x6e,0x00,0x65, + 0x00,0x6b,0x00,0x20,0x00,0x49,0x00,0x6f,0x00,0x6e, + 0x00,0x74,0x00,0x65,0x00,0x66,0x00,0x20,0x00,0x28, + 0x00,0x79,0x00,0x61,0x00,0x6e,0x00,0x65,0x00,0x6b, + 0x00,0x40,0x00,0x6e,0x00,0x65,0x00,0x74,0x00,0x76, + 0x00,0x69,0x00,0x73,0x00,0x69,0x00,0x6f,0x00,0x6e, + 0x00,0x2e,0x00,0x6e,0x00,0x65,0x00,0x74,0x00,0x2e, + 0x00,0x69,0x00,0x6c,0x00,0x29,0x00,0x4f,0x00,0x70, + 0x00,0x65,0x00,0x6e,0x00,0x20,0x00,0x53,0x00,0x61, + 0x00,0x6e,0x00,0x73,0x00,0x20,0x00,0x48,0x00,0x65, + 0x00,0x62,0x00,0x72,0x00,0x65,0x00,0x77,0x00,0x20, + 0x00,0x43,0x00,0x6f,0x00,0x6e,0x00,0x64,0x00,0x65, + 0x00,0x6e,0x00,0x73,0x00,0x65,0x00,0x64,0x00,0x20, + 0x00,0x4c,0x00,0x69,0x00,0x67,0x00,0x68,0x00,0x74, + 0x00,0x52,0x00,0x65,0x00,0x67,0x00,0x75,0x00,0x6c, + 0x00,0x61,0x00,0x72,0x00,0x32,0x00,0x2e,0x00,0x30, + 0x00,0x30,0x00,0x31,0x00,0x3b,0x00,0x55,0x00,0x4b, + 0x00,0x57,0x00,0x4e,0x00,0x3b,0x00,0x4f,0x00,0x70, + 0x00,0x65,0x00,0x6e,0x00,0x53,0x00,0x61,0x00,0x6e, + 0x00,0x73,0x00,0x48,0x00,0x65,0x00,0x62,0x00,0x72, + 0x00,0x65,0x00,0x77,0x00,0x43,0x00,0x6f,0x00,0x6e, + 0x00,0x64,0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65, + 0x00,0x64,0x00,0x2d,0x00,0x4c,0x00,0x69,0x00,0x67, + 0x00,0x68,0x00,0x74,0x00,0x56,0x00,0x65,0x00,0x72, + 0x00,0x73,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x20, + 0x00,0x32,0x00,0x2e,0x00,0x30,0x00,0x30,0x00,0x31, + 0x00,0x3b,0x00,0x50,0x00,0x53,0x00,0x20,0x00,0x30, + 0x00,0x30,0x00,0x32,0x00,0x2e,0x00,0x30,0x00,0x30, + 0x00,0x31,0x00,0x3b,0x00,0x68,0x00,0x6f,0x00,0x74, + 0x00,0x63,0x00,0x6f,0x00,0x6e,0x00,0x76,0x00,0x20, + 0x00,0x31,0x00,0x2e,0x00,0x30,0x00,0x2e,0x00,0x37, + 0x00,0x30,0x00,0x3b,0x00,0x6d,0x00,0x61,0x00,0x6b, + 0x00,0x65,0x00,0x6f,0x00,0x74,0x00,0x66,0x00,0x2e, + 0x00,0x6c,0x00,0x69,0x00,0x62,0x00,0x32,0x00,0x2e, + 0x00,0x35,0x00,0x2e,0x00,0x35,0x00,0x38,0x00,0x33, + 0x00,0x32,0x00,0x39,0x00,0x4f,0x00,0x70,0x00,0x65, + 0x00,0x6e,0x00,0x53,0x00,0x61,0x00,0x6e,0x00,0x73, + 0x00,0x48,0x00,0x65,0x00,0x62,0x00,0x72,0x00,0x65, + 0x00,0x77,0x00,0x43,0x00,0x6f,0x00,0x6e,0x00,0x64, + 0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65,0x00,0x64, + 0x00,0x2d,0x00,0x4c,0x00,0x69,0x00,0x67,0x00,0x68, + 0x00,0x74,0x00,0x4f,0x00,0x70,0x00,0x65,0x00,0x6e, + 0x00,0x20,0x00,0x53,0x00,0x61,0x00,0x6e,0x00,0x73, + 0x00,0x20,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x61, + 0x00,0x20,0x00,0x74,0x00,0x72,0x00,0x61,0x00,0x64, + 0x00,0x65,0x00,0x6d,0x00,0x61,0x00,0x72,0x00,0x6b, + 0x00,0x20,0x00,0x6f,0x00,0x66,0x00,0x20,0x00,0x47, + 0x00,0x6f,0x00,0x6f,0x00,0x67,0x00,0x6c,0x00,0x65, + 0x00,0x20,0x00,0x61,0x00,0x6e,0x00,0x64,0x00,0x20, + 0x00,0x6d,0x00,0x61,0x00,0x79,0x00,0x20,0x00,0x62, + 0x00,0x65,0x00,0x20,0x00,0x72,0x00,0x65,0x00,0x67, + 0x00,0x69,0x00,0x73,0x00,0x74,0x00,0x65,0x00,0x72, + 0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x69,0x00,0x6e, + 0x00,0x20,0x00,0x63,0x00,0x65,0x00,0x72,0x00,0x74, + 0x00,0x61,0x00,0x69,0x00,0x6e,0x00,0x20,0x00,0x6a, + 0x00,0x75,0x00,0x72,0x00,0x69,0x00,0x73,0x00,0x64, + 0x00,0x69,0x00,0x63,0x00,0x74,0x00,0x69,0x00,0x6f, + 0x00,0x6e,0x00,0x73,0x00,0x2e,0x00,0x41,0x00,0x73, + 0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x64,0x00,0x65, + 0x00,0x72,0x00,0x20,0x00,0x43,0x00,0x6f,0x00,0x72, + 0x00,0x70,0x00,0x6f,0x00,0x72,0x00,0x61,0x00,0x74, + 0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x2c,0x00,0x20, + 0x00,0x59,0x00,0x61,0x00,0x6e,0x00,0x65,0x00,0x6b, + 0x00,0x20,0x00,0x49,0x00,0x6f,0x00,0x6e,0x00,0x74, + 0x00,0x65,0x00,0x66,0x00,0x68,0x00,0x74,0x00,0x74, + 0x00,0x70,0x00,0x3a,0x00,0x2f,0x00,0x2f,0x00,0x77, + 0x00,0x77,0x00,0x77,0x00,0x2e,0x00,0x61,0x00,0x73, + 0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x64,0x00,0x65, + 0x00,0x72,0x00,0x63,0x00,0x6f,0x00,0x72,0x00,0x70, + 0x00,0x2e,0x00,0x63,0x00,0x6f,0x00,0x6d,0x00,0x2f, + 0x00,0x20,0x00,0x68,0x00,0x74,0x00,0x74,0x00,0x70, + 0x00,0x3a,0x00,0x2f,0x00,0x2f,0x00,0x77,0x00,0x77, + 0x00,0x77,0x00,0x2e,0x00,0x66,0x00,0x6f,0x00,0x6e, + 0x00,0x74,0x00,0x65,0x00,0x66,0x00,0x2e,0x00,0x63, + 0x00,0x6f,0x00,0x6d,0x00,0x68,0x00,0x74,0x00,0x74, + 0x00,0x70,0x00,0x3a,0x00,0x2f,0x00,0x2f,0x00,0x77, + 0x00,0x77,0x00,0x77,0x00,0x2e,0x00,0x61,0x00,0x73, + 0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x64,0x00,0x65, + 0x00,0x72,0x00,0x63,0x00,0x6f,0x00,0x72,0x00,0x70, + 0x00,0x2e,0x00,0x63,0x00,0x6f,0x00,0x6d,0x00,0x2f, + 0x00,0x74,0x00,0x79,0x00,0x70,0x00,0x65,0x00,0x64, + 0x00,0x65,0x00,0x73,0x00,0x69,0x00,0x67,0x00,0x6e, + 0x00,0x65,0x00,0x72,0x00,0x73,0x00,0x2e,0x00,0x68, + 0x00,0x74,0x00,0x6d,0x00,0x6c,0x00,0x2c,0x00,0x20, + 0x00,0x59,0x00,0x61,0x00,0x6e,0x00,0x65,0x00,0x6b, + 0x00,0x20,0x00,0x49,0x00,0x6f,0x00,0x6e,0x00,0x74, + 0x00,0x65,0x00,0x66,0x00,0x4c,0x00,0x69,0x00,0x63, + 0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65,0x00,0x64, + 0x00,0x20,0x00,0x75,0x00,0x6e,0x00,0x64,0x00,0x65, + 0x00,0x72,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65, + 0x00,0x20,0x00,0x41,0x00,0x70,0x00,0x61,0x00,0x63, + 0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x4c,0x00,0x69, + 0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65, + 0x00,0x2c,0x00,0x20,0x00,0x56,0x00,0x65,0x00,0x72, + 0x00,0x73,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x20, + 0x00,0x32,0x00,0x2e,0x00,0x30,0x00,0x68,0x00,0x74, + 0x00,0x74,0x00,0x70,0x00,0x3a,0x00,0x2f,0x00,0x2f, + 0x00,0x77,0x00,0x77,0x00,0x77,0x00,0x2e,0x00,0x61, + 0x00,0x70,0x00,0x61,0x00,0x63,0x00,0x68,0x00,0x65, + 0x00,0x2e,0x00,0x6f,0x00,0x72,0x00,0x67,0x00,0x2f, + 0x00,0x6c,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x6e, + 0x00,0x73,0x00,0x65,0x00,0x73,0x00,0x2f,0x00,0x4c, + 0x00,0x49,0x00,0x43,0x00,0x45,0x00,0x4e,0x00,0x53, + 0x00,0x45,0x00,0x2d,0x00,0x32,0x00,0x2e,0x00,0x30, + 0x00,0x4f,0x00,0x70,0x00,0x65,0x00,0x6e,0x00,0x20, + 0x00,0x53,0x00,0x61,0x00,0x6e,0x00,0x73,0x00,0x20, + 0x00,0x48,0x00,0x65,0x00,0x62,0x00,0x72,0x00,0x65, + 0x00,0x77,0x00,0x20,0x00,0x43,0x00,0x6f,0x00,0x6e, + 0x00,0x64,0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65, + 0x00,0x64,0x00,0x4c,0x00,0x69,0x00,0x67,0x00,0x68, + 0x00,0x74,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00, + 0xff,0xb5,0x00,0x32,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x01,0x37,0x00,0x00,0x00,0x01, + 0x00,0x02,0x01,0x02,0x00,0x03,0x00,0x04,0x00,0x05, + 0x00,0x06,0x00,0x07,0x00,0x08,0x00,0x09,0x00,0x0a, + 0x00,0x0b,0x00,0x0c,0x00,0x0d,0x00,0x0e,0x00,0x0f, + 0x00,0x10,0x00,0x11,0x00,0x12,0x00,0x13,0x00,0x14, + 0x00,0x15,0x00,0x16,0x00,0x17,0x00,0x18,0x00,0x19, + 0x00,0x1a,0x00,0x1b,0x00,0x1c,0x00,0x1d,0x00,0x1e, + 0x00,0x1f,0x00,0x20,0x00,0x21,0x00,0x22,0x00,0x23, + 0x00,0x24,0x00,0x25,0x00,0x26,0x00,0x27,0x00,0x28, + 0x00,0x29,0x00,0x2a,0x00,0x2b,0x00,0x2c,0x00,0x2d, + 0x00,0x2e,0x00,0x2f,0x00,0x30,0x00,0x31,0x00,0x32, + 0x00,0x33,0x00,0x34,0x00,0x35,0x00,0x36,0x00,0x37, + 0x00,0x38,0x00,0x39,0x00,0x3a,0x00,0x3b,0x00,0x3c, + 0x00,0x3d,0x00,0x3e,0x00,0x3f,0x00,0x40,0x00,0x41, + 0x00,0x42,0x00,0x43,0x00,0x44,0x00,0x45,0x00,0x46, + 0x00,0x47,0x00,0x48,0x00,0x49,0x00,0x4a,0x00,0x4b, + 0x00,0x4c,0x00,0x4d,0x00,0x4e,0x00,0x4f,0x00,0x50, + 0x00,0x51,0x00,0x52,0x00,0x53,0x00,0x54,0x00,0x55, + 0x00,0x56,0x00,0x57,0x00,0x58,0x00,0x59,0x00,0x5a, + 0x00,0x5b,0x00,0x5c,0x00,0x5d,0x00,0x5e,0x00,0x5f, + 0x00,0x60,0x00,0x61,0x01,0x03,0x00,0xa3,0x00,0x84, + 0x00,0x85,0x00,0xbd,0x00,0x96,0x00,0xe8,0x00,0x86, + 0x00,0x8e,0x00,0x8b,0x00,0x9d,0x00,0xa9,0x00,0xa4, + 0x01,0x04,0x00,0x8a,0x01,0x05,0x00,0x83,0x00,0x93, + 0x00,0xf2,0x00,0xf3,0x00,0x8d,0x01,0x06,0x00,0x88, + 0x00,0xc3,0x00,0xde,0x00,0xf1,0x00,0x9e,0x00,0xaa, + 0x00,0xf5,0x00,0xf4,0x00,0xf6,0x00,0xa2,0x00,0xad, + 0x00,0xc9,0x00,0xc7,0x00,0xae,0x00,0x62,0x00,0x63, + 0x00,0x90,0x00,0x64,0x00,0xcb,0x00,0x65,0x00,0xc8, + 0x00,0xca,0x00,0xcf,0x00,0xcc,0x00,0xcd,0x00,0xce, + 0x00,0xe9,0x00,0x66,0x00,0xd3,0x00,0xd0,0x00,0xd1, + 0x00,0xaf,0x00,0x67,0x00,0xf0,0x00,0x91,0x00,0xd6, + 0x00,0xd4,0x00,0xd5,0x00,0x68,0x00,0xeb,0x00,0xed, + 0x00,0x89,0x00,0x6a,0x00,0x69,0x00,0x6b,0x00,0x6d, + 0x00,0x6c,0x00,0x6e,0x00,0xa0,0x00,0x6f,0x00,0x71, + 0x00,0x70,0x00,0x72,0x00,0x73,0x00,0x75,0x00,0x74, + 0x00,0x76,0x00,0x77,0x00,0xea,0x00,0x78,0x00,0x7a, + 0x00,0x79,0x00,0x7b,0x00,0x7d,0x00,0x7c,0x00,0xb8, + 0x00,0xa1,0x00,0x7f,0x00,0x7e,0x00,0x80,0x00,0x81, + 0x00,0xec,0x00,0xee,0x00,0xba,0x00,0xd7,0x00,0xb0, + 0x00,0xb1,0x00,0xe4,0x00,0xe5,0x00,0xbb,0x00,0xe6, + 0x00,0xe7,0x00,0xa6,0x00,0xd8,0x00,0xe1,0x00,0xdb, + 0x00,0xdc,0x00,0xdd,0x00,0xe0,0x00,0xd9,0x00,0xdf, + 0x01,0x07,0x01,0x08,0x01,0x09,0x01,0x0a,0x01,0x0b, + 0x01,0x0c,0x01,0x0d,0x01,0x0e,0x01,0x0f,0x01,0x10, + 0x01,0x11,0x01,0x12,0x01,0x13,0x01,0x14,0x01,0x15, + 0x01,0x16,0x01,0x17,0x01,0x18,0x01,0x19,0x01,0x1a, + 0x01,0x1b,0x01,0x1c,0x01,0x1d,0x01,0x1e,0x01,0x1f, + 0x01,0x20,0x01,0x21,0x01,0x22,0x01,0x23,0x01,0x24, + 0x01,0x25,0x01,0x26,0x01,0x27,0x01,0x28,0x01,0x29, + 0x01,0x2a,0x01,0x2b,0x01,0x2c,0x01,0x2d,0x01,0x2e, + 0x01,0x2f,0x01,0x30,0x01,0x31,0x01,0x32,0x01,0x33, + 0x01,0x34,0x01,0x35,0x00,0xb2,0x00,0xb3,0x00,0xb6, + 0x00,0xb7,0x00,0xc4,0x00,0xb4,0x00,0xb5,0x00,0xc5, + 0x00,0x82,0x00,0xc2,0x00,0x87,0x00,0xab,0x00,0xc6, + 0x00,0xbe,0x00,0xbf,0x00,0xbc,0x01,0x36,0x01,0x37, + 0x00,0x8c,0x01,0x38,0x01,0x39,0x01,0x3a,0x01,0x3b, + 0x01,0x3c,0x01,0x3d,0x01,0x3e,0x01,0x3f,0x01,0x40, + 0x01,0x41,0x01,0x42,0x01,0x43,0x01,0x44,0x01,0x45, + 0x01,0x46,0x01,0x47,0x01,0x48,0x01,0x49,0x01,0x4a, + 0x01,0x4b,0x01,0x4c,0x01,0x4d,0x01,0x4e,0x01,0x4f, + 0x01,0x50,0x01,0x51,0x01,0x52,0x01,0x53,0x01,0x54, + 0x01,0x55,0x01,0x56,0x01,0x57,0x00,0xac,0x02,0x43, + 0x52,0x07,0x75,0x6e,0x69,0x30,0x30,0x41,0x30,0x07, + 0x75,0x6e,0x69,0x30,0x30,0x41,0x44,0x09,0x6f,0x76, + 0x65,0x72,0x73,0x63,0x6f,0x72,0x65,0x07,0x75,0x6e, + 0x69,0x30,0x30,0x42,0x35,0x07,0x75,0x6e,0x69,0x30, + 0x35,0x42,0x30,0x07,0x75,0x6e,0x69,0x30,0x35,0x42, + 0x31,0x07,0x75,0x6e,0x69,0x30,0x35,0x42,0x32,0x07, + 0x75,0x6e,0x69,0x30,0x35,0x42,0x33,0x07,0x75,0x6e, + 0x69,0x30,0x35,0x42,0x34,0x07,0x75,0x6e,0x69,0x30, + 0x35,0x42,0x35,0x07,0x75,0x6e,0x69,0x30,0x35,0x42, + 0x36,0x07,0x75,0x6e,0x69,0x30,0x35,0x42,0x37,0x07, + 0x75,0x6e,0x69,0x30,0x35,0x42,0x38,0x07,0x75,0x6e, + 0x69,0x30,0x35,0x42,0x39,0x07,0x75,0x6e,0x69,0x30, + 0x35,0x42,0x41,0x07,0x75,0x6e,0x69,0x30,0x35,0x42, + 0x42,0x07,0x75,0x6e,0x69,0x30,0x35,0x42,0x43,0x07, + 0x75,0x6e,0x69,0x30,0x35,0x42,0x44,0x07,0x75,0x6e, + 0x69,0x30,0x35,0x42,0x45,0x07,0x75,0x6e,0x69,0x30, + 0x35,0x43,0x31,0x07,0x75,0x6e,0x69,0x30,0x35,0x43, + 0x32,0x07,0x75,0x6e,0x69,0x30,0x35,0x43,0x37,0x07, + 0x75,0x6e,0x69,0x30,0x35,0x44,0x30,0x07,0x75,0x6e, + 0x69,0x30,0x35,0x44,0x31,0x07,0x75,0x6e,0x69,0x30, + 0x35,0x44,0x32,0x07,0x75,0x6e,0x69,0x30,0x35,0x44, + 0x33,0x07,0x75,0x6e,0x69,0x30,0x35,0x44,0x34,0x07, + 0x75,0x6e,0x69,0x30,0x35,0x44,0x35,0x07,0x75,0x6e, + 0x69,0x30,0x35,0x44,0x36,0x07,0x75,0x6e,0x69,0x30, + 0x35,0x44,0x37,0x07,0x75,0x6e,0x69,0x30,0x35,0x44, + 0x38,0x07,0x75,0x6e,0x69,0x30,0x35,0x44,0x39,0x07, + 0x75,0x6e,0x69,0x30,0x35,0x44,0x41,0x07,0x75,0x6e, + 0x69,0x30,0x35,0x44,0x42,0x07,0x75,0x6e,0x69,0x30, + 0x35,0x44,0x43,0x07,0x75,0x6e,0x69,0x30,0x35,0x44, + 0x44,0x07,0x75,0x6e,0x69,0x30,0x35,0x44,0x45,0x07, + 0x75,0x6e,0x69,0x30,0x35,0x44,0x46,0x07,0x75,0x6e, + 0x69,0x30,0x35,0x45,0x30,0x07,0x75,0x6e,0x69,0x30, + 0x35,0x45,0x31,0x07,0x75,0x6e,0x69,0x30,0x35,0x45, + 0x32,0x07,0x75,0x6e,0x69,0x30,0x35,0x45,0x33,0x07, + 0x75,0x6e,0x69,0x30,0x35,0x45,0x34,0x07,0x75,0x6e, + 0x69,0x30,0x35,0x45,0x35,0x07,0x75,0x6e,0x69,0x30, + 0x35,0x45,0x36,0x07,0x75,0x6e,0x69,0x30,0x35,0x45, + 0x37,0x07,0x75,0x6e,0x69,0x30,0x35,0x45,0x38,0x07, + 0x75,0x6e,0x69,0x30,0x35,0x45,0x39,0x07,0x75,0x6e, + 0x69,0x30,0x35,0x45,0x41,0x08,0x67,0x65,0x72,0x65, + 0x73,0x68,0x68,0x62,0x0b,0x67,0x65,0x72,0x73,0x68, + 0x61,0x79,0x69,0x6d,0x68,0x62,0x07,0x75,0x6e,0x69, + 0x32,0x30,0x41,0x41,0x04,0x45,0x75,0x72,0x6f,0x07, + 0x75,0x6e,0x69,0x46,0x42,0x30,0x31,0x07,0x75,0x6e, + 0x69,0x46,0x42,0x30,0x32,0x07,0x75,0x6e,0x69,0x46, + 0x42,0x32,0x41,0x07,0x75,0x6e,0x69,0x46,0x42,0x32, + 0x42,0x13,0x73,0x68,0x69,0x6e,0x64,0x61,0x67,0x65, + 0x73,0x68,0x73,0x68,0x69,0x6e,0x64,0x6f,0x74,0x68, + 0x62,0x12,0x73,0x68,0x69,0x6e,0x64,0x61,0x67,0x65, + 0x73,0x68,0x73,0x69,0x6e,0x64,0x6f,0x74,0x68,0x62, + 0x0b,0x61,0x6c,0x65,0x66,0x70,0x61,0x74,0x61,0x68, + 0x68,0x62,0x0c,0x61,0x6c,0x65,0x66,0x71,0x61,0x6d, + 0x61,0x74,0x73,0x68,0x62,0x0c,0x61,0x6c,0x65,0x66, + 0x64,0x61,0x67,0x65,0x73,0x68,0x68,0x62,0x0b,0x62, + 0x65,0x74,0x64,0x61,0x67,0x65,0x73,0x68,0x68,0x62, + 0x0d,0x67,0x69,0x6d,0x65,0x6c,0x64,0x61,0x67,0x65, + 0x73,0x68,0x68,0x62,0x0d,0x64,0x61,0x6c,0x65,0x74, + 0x64,0x61,0x67,0x65,0x73,0x68,0x68,0x62,0x0a,0x68, + 0x65,0x64,0x61,0x67,0x65,0x73,0x68,0x68,0x62,0x07, + 0x75,0x6e,0x69,0x46,0x42,0x33,0x35,0x0d,0x7a,0x61, + 0x79,0x69,0x6e,0x64,0x61,0x67,0x65,0x73,0x68,0x68, + 0x62,0x0b,0x74,0x65,0x74,0x64,0x61,0x67,0x65,0x73, + 0x68,0x68,0x62,0x0b,0x79,0x6f,0x64,0x64,0x61,0x67, + 0x65,0x73,0x68,0x68,0x62,0x10,0x66,0x69,0x6e,0x61, + 0x6c,0x6b,0x61,0x66,0x64,0x61,0x67,0x65,0x73,0x68, + 0x68,0x62,0x0b,0x6b,0x61,0x66,0x64,0x61,0x67,0x65, + 0x73,0x68,0x68,0x62,0x0d,0x6c,0x61,0x6d,0x65,0x64, + 0x64,0x61,0x67,0x65,0x73,0x68,0x68,0x62,0x0b,0x6d, + 0x65,0x6d,0x64,0x61,0x67,0x65,0x73,0x68,0x68,0x62, + 0x0b,0x6e,0x75,0x6e,0x64,0x61,0x67,0x65,0x73,0x68, + 0x68,0x62,0x0e,0x73,0x61,0x6d,0x65,0x6b,0x68,0x64, + 0x61,0x67,0x65,0x73,0x68,0x68,0x62,0x0f,0x66,0x69, + 0x6e,0x61,0x6c,0x70,0x65,0x64,0x61,0x67,0x65,0x73, + 0x68,0x68,0x62,0x0a,0x70,0x65,0x64,0x61,0x67,0x65, + 0x73,0x68,0x68,0x62,0x0d,0x74,0x73,0x61,0x64,0x69, + 0x64,0x61,0x67,0x65,0x73,0x68,0x68,0x62,0x0b,0x71, + 0x6f,0x66,0x64,0x61,0x67,0x65,0x73,0x68,0x68,0x62, + 0x0c,0x72,0x65,0x73,0x68,0x64,0x61,0x67,0x65,0x73, + 0x68,0x68,0x62,0x0c,0x73,0x68,0x69,0x6e,0x64,0x61, + 0x67,0x65,0x73,0x68,0x68,0x62,0x0b,0x74,0x61,0x76, + 0x64,0x61,0x67,0x65,0x73,0x68,0x68,0x62,0x07,0x75, + 0x6e,0x69,0x46,0x42,0x34,0x42,0x07,0x72,0x61,0x66, + 0x65,0x68,0x68,0x62,0x00,0x00,0x00,0x01,0x00,0x01, + 0xff,0xff,0x00,0x0f,0x00,0x00,0x00,0x01,0x00,0x00, + 0x00,0x00,0xcc,0x6d,0xb1,0x55,0x00,0x00,0x00,0x00, + 0xcd,0x64,0xfe,0x51,0x00,0x00,0x00,0x00,0xcd,0xac, + 0x5d,0x6c,0x00,0x01,0x00,0x00,0x00,0x0c,0x00,0x00, + 0x00,0x2e,0x00,0x00,0x00,0x02,0x00,0x05,0x00,0x03, + 0x00,0xd3,0x00,0x01,0x00,0xd4,0x00,0xe1,0x00,0x03, + 0x00,0xe2,0x00,0xe2,0x00,0x01,0x00,0xe3,0x00,0xe5, + 0x00,0x03,0x00,0xe6,0x01,0x35,0x00,0x01,0x00,0x04, + 0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x01, + 0x00,0x00,0x00,0x0a,0x00,0x1e,0x00,0x2c,0x00,0x01, + 0x68,0x65,0x62,0x72,0x00,0x08,0x00,0x04,0x00,0x00, + 0x00,0x00,0xff,0xff,0x00,0x01,0x00,0x00,0x00,0x01, + 0x6d,0x61,0x72,0x6b,0x00,0x08,0x00,0x00,0x00,0x01, + 0x00,0x00,0x00,0x01,0x00,0x04,0x00,0x04,0x00,0x00, + 0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x0c,0x00,0x1c, + 0x00,0x04,0x00,0x26,0x00,0x84,0x00,0x02,0x00,0x02, + 0x00,0xd4,0x00,0xe1,0x00,0x00,0x00,0xe3,0x00,0xe5, + 0x00,0x0e,0x00,0x02,0x00,0x01,0x00,0xe6,0x01,0x00, + 0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x58,0x00,0x00, + 0x00,0x58,0x00,0x00,0x00,0x58,0x00,0x00,0x00,0x58, + 0x00,0x00,0x00,0x58,0x00,0x00,0x00,0x58,0x00,0x00, + 0x00,0x58,0x00,0x00,0x00,0x58,0x00,0x00,0x00,0x58, + 0x00,0x01,0x00,0x52,0x00,0x01,0x00,0x52,0x00,0x00, + 0x00,0x58,0x00,0x02,0x00,0x46,0x00,0x00,0x00,0x58, + 0x00,0x03,0x00,0x4c,0x00,0x01,0x00,0x52,0x00,0x00, + 0x00,0x58,0x00,0x01,0x00,0x00,0x02,0x9e,0x00,0x01, + 0x00,0x00,0x04,0x5e,0x00,0x01,0xff,0xff,0x04,0x5e, + 0x00,0x01,0x00,0x00,0x00,0x6e,0x00,0x1b,0x00,0xda, + 0x02,0x6c,0x00,0xe0,0x02,0x78,0x00,0xe6,0x00,0xec, + 0x00,0xf2,0x02,0x78,0x00,0xf8,0x00,0xfe,0x01,0x04, + 0x02,0x78,0x01,0x0a,0x01,0x10,0x02,0x48,0x02,0x78, + 0x01,0x7c,0x01,0x16,0x01,0x88,0x02,0x78,0x01,0x1c, + 0x01,0x22,0x01,0x28,0x02,0x78,0x01,0x2e,0x01,0xca, + 0x01,0x34,0x02,0x78,0x01,0x7c,0x02,0x30,0x01,0x88, + 0x02,0x78,0x01,0xc4,0x01,0x3a,0x01,0xd0,0x02,0x78, + 0x01,0x40,0x01,0x46,0x01,0x4c,0x02,0x78,0x01,0x52, + 0x02,0x1e,0x01,0x64,0x02,0x78,0x01,0x58,0x01,0x5e, + 0x01,0x64,0x02,0x78,0x01,0x6a,0x01,0x70,0x01,0x76, + 0x02,0x78,0x01,0x7c,0x01,0x82,0x01,0x88,0x02,0x78, + 0x01,0x8e,0x01,0x94,0x01,0x9a,0x02,0x78,0x01,0xa0, + 0x01,0xa6,0x01,0xac,0x02,0x78,0x01,0xb2,0x01,0xb8, + 0x01,0xbe,0x02,0x78,0x01,0xc4,0x01,0xca,0x01,0xd0, + 0x02,0x78,0x01,0xd6,0x02,0x54,0x01,0xdc,0x02,0x78, + 0x01,0xe2,0x01,0xe8,0x01,0xee,0x02,0x78,0x01,0xf4, + 0x01,0xfa,0x02,0x00,0x02,0x78,0x02,0x06,0x02,0x0c, + 0x02,0x12,0x02,0x78,0x02,0x18,0x02,0x1e,0x02,0x24, + 0x02,0x78,0x02,0x2a,0x02,0x30,0x02,0x36,0x02,0x78, + 0x02,0x3c,0x02,0x42,0x02,0x48,0x02,0x78,0x02,0x4e, + 0x02,0x54,0x02,0x5a,0x02,0x60,0x02,0x66,0x02,0x6c, + 0x02,0x72,0x02,0x78,0x00,0x01,0x01,0x75,0x00,0x00, + 0x00,0x01,0x01,0x39,0x01,0x33,0x00,0x01,0x01,0x99, + 0x00,0x00,0x00,0x01,0x00,0x81,0x04,0x5e,0x00,0x01, + 0x01,0x1b,0x02,0x9e,0x00,0x01,0x01,0x48,0x00,0x00, + 0x00,0x01,0x00,0xc8,0x04,0x5e,0x00,0x01,0x00,0xfd, + 0x02,0x9e,0x00,0x01,0x01,0x53,0x00,0x00,0x00,0x01, + 0x00,0x49,0x04,0x5e,0x00,0x01,0x00,0xb4,0x04,0x5e, + 0x00,0x01,0x00,0xc1,0x00,0x00,0x00,0x01,0x00,0xa3, + 0x04,0x5e,0x00,0x01,0x00,0x09,0x02,0x9e,0x00,0x01, + 0x00,0xdd,0x00,0x00,0x00,0x01,0x00,0x29,0x02,0x9e, + 0x00,0x01,0x00,0x8c,0x04,0x5e,0x00,0x01,0x00,0xbc, + 0x00,0x00,0x00,0x01,0x00,0xa7,0x04,0x5e,0x00,0x01, + 0x00,0x07,0x03,0x13,0x00,0x01,0x00,0x43,0x01,0x54, + 0x00,0x01,0x01,0x3e,0x00,0x00,0x00,0x01,0x00,0x5d, + 0x04,0x5e,0x00,0x01,0x00,0xc1,0x02,0x9e,0x00,0x01, + 0x01,0x2f,0x00,0x00,0x00,0x01,0xff,0xbd,0x04,0x5e, + 0x00,0x01,0x00,0x93,0x02,0x9e,0x00,0x01,0x01,0xca, + 0x00,0x00,0x00,0x01,0x00,0xbb,0x04,0x5e,0x00,0x01, + 0x01,0xca,0x02,0x9e,0x00,0x01,0x01,0xae,0x00,0x00, + 0x00,0x01,0x00,0x7a,0x04,0x5e,0x00,0x01,0x01,0xae, + 0x02,0x9e,0x00,0x01,0xff,0x53,0x01,0x5b,0x00,0x01, + 0x00,0x85,0x04,0x5e,0x00,0x01,0x00,0x21,0x02,0x9e, + 0x00,0x01,0x01,0x1d,0x00,0x00,0x00,0x01,0x00,0x7f, + 0x04,0x5e,0x00,0x01,0x00,0xa7,0x02,0x9e,0x00,0x01, + 0x01,0xba,0x00,0x00,0x00,0x01,0x00,0x93,0x04,0x5e, + 0x00,0x01,0x01,0xba,0x02,0x9e,0x00,0x01,0x01,0xa7, + 0x00,0x00,0x00,0x01,0x01,0xe7,0x02,0x9e,0x00,0x01, + 0x01,0x39,0x01,0x54,0x00,0x01,0x00,0x99,0x04,0x5e, + 0x00,0x01,0x01,0x97,0x03,0x4f,0x00,0x01,0x01,0xb1, + 0x00,0x00,0x00,0x01,0x00,0x8b,0x04,0x5e,0x00,0x01, + 0x01,0xb1,0x03,0x4f,0x00,0x01,0xff,0x7b,0x01,0x54, + 0x00,0x01,0x00,0x14,0x04,0x5e,0x00,0x01,0x01,0x38, + 0x02,0x2f,0x00,0x01,0x01,0x7a,0x00,0x00,0x00,0x01, + 0x00,0x50,0x04,0x5e,0x00,0x01,0x00,0xc1,0x01,0x61, + 0x00,0x01,0x02,0x57,0x00,0x00,0x00,0x01,0x00,0xad, + 0x04,0x5e,0x00,0x01,0x01,0x83,0x02,0x9e,0x00,0x01, + 0x01,0xe7,0x00,0x00,0x00,0x01,0x00,0x43,0x04,0x5e, + 0x00,0x01,0x00,0xdc,0x02,0x9e,0x00,0x01,0x02,0x0c, + 0x00,0x00,0x00,0x01,0x00,0x6b,0x04,0x5e,0x00,0x01, + 0x02,0x0c,0x01,0xb8,0x00,0x01,0x03,0xa0,0x04,0x5e, + 0x00,0x01,0x01,0xbd,0x00,0x00,0x00,0x01,0x00,0x64, + 0x04,0x5e,0x00,0x01,0x01,0xbd,0x02,0x9e,0x00,0x01, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00, + 0x00,0x0a,0x00,0x1c,0x00,0x1c,0x00,0x01,0x68,0x65, + 0x62,0x72,0x00,0x08,0x00,0x04,0x00,0x00,0x00,0x00, + 0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00 +}; diff --git a/data/converted/opensans_hebrew_condensed_regular_ttf.cpp b/data/converted/opensans_hebrew_condensed_regular_ttf.cpp new file mode 100644 index 000000000..0fa9cd569 --- /dev/null +++ b/data/converted/opensans_hebrew_condensed_regular_ttf.cpp @@ -0,0 +1,3244 @@ +//this file was auto-generated from "opensans_hebrew_condensed_regular.ttf" by res2h + +#include "../Resources.h" + +const size_t opensans_hebrew_condensed_regular_ttf_size = 32364; +const unsigned char opensans_hebrew_condensed_regular_ttf_data[32364] = { + 0x00,0x01,0x00,0x00,0x00,0x11,0x01,0x00,0x00,0x04, + 0x00,0x10,0x44,0x53,0x49,0x47,0x00,0x00,0x00,0x01, + 0x00,0x00,0x7e,0x64,0x00,0x00,0x00,0x08,0x46,0x46, + 0x54,0x4d,0x67,0x93,0xcc,0x09,0x00,0x00,0x79,0x84, + 0x00,0x00,0x00,0x1c,0x47,0x44,0x45,0x46,0x04,0xf1, + 0x03,0x96,0x00,0x00,0x79,0xa0,0x00,0x00,0x00,0x38, + 0x47,0x50,0x4f,0x53,0x27,0x89,0xa7,0x91,0x00,0x00, + 0x79,0xd8,0x00,0x00,0x04,0x6c,0x47,0x53,0x55,0x42, + 0x68,0x95,0x62,0x93,0x00,0x00,0x7e,0x44,0x00,0x00, + 0x00,0x20,0x4f,0x53,0x2f,0x32,0x7f,0xef,0xcd,0xa7, + 0x00,0x00,0x01,0x98,0x00,0x00,0x00,0x60,0x63,0x6d, + 0x61,0x70,0xc6,0x3a,0x2e,0x6a,0x00,0x00,0x06,0xd0, + 0x00,0x00,0x03,0x4e,0x67,0x61,0x73,0x70,0x00,0x00, + 0x00,0x10,0x00,0x00,0x79,0x7c,0x00,0x00,0x00,0x08, + 0x67,0x6c,0x79,0x66,0xd6,0x72,0x55,0xa8,0x00,0x00, + 0x0c,0x98,0x00,0x00,0x63,0x74,0x68,0x65,0x61,0x64, + 0x02,0x27,0x83,0x65,0x00,0x00,0x01,0x1c,0x00,0x00, + 0x00,0x36,0x68,0x68,0x65,0x61,0x0d,0x24,0x05,0x2e, + 0x00,0x00,0x01,0x54,0x00,0x00,0x00,0x24,0x68,0x6d, + 0x74,0x78,0xbf,0x6a,0x52,0x02,0x00,0x00,0x01,0xf8, + 0x00,0x00,0x04,0xd8,0x6c,0x6f,0x63,0x61,0x7b,0x16, + 0x62,0x24,0x00,0x00,0x0a,0x28,0x00,0x00,0x02,0x6e, + 0x6d,0x61,0x78,0x70,0x01,0x7f,0x00,0x43,0x00,0x00, + 0x01,0x78,0x00,0x00,0x00,0x20,0x6e,0x61,0x6d,0x65, + 0x78,0xf3,0xd2,0xfd,0x00,0x00,0x70,0x0c,0x00,0x00, + 0x03,0xa8,0x70,0x6f,0x73,0x74,0xa5,0x58,0x36,0xcf, + 0x00,0x00,0x73,0xb4,0x00,0x00,0x05,0xc8,0x70,0x72, + 0x65,0x70,0x68,0x06,0x8c,0x85,0x00,0x00,0x0a,0x20, + 0x00,0x00,0x00,0x07,0x00,0x01,0x00,0x00,0x00,0x02, + 0x00,0x41,0x97,0x7a,0xdb,0x67,0x5f,0x0f,0x3c,0xf5, + 0x02,0x0b,0x08,0x00,0x00,0x00,0x00,0x00,0xcd,0xc1, + 0x1c,0x70,0x00,0x00,0x00,0x00,0xcd,0xc1,0x1c,0x70, + 0xfe,0x70,0xfd,0xd4,0x07,0x17,0x07,0x73,0x00,0x00, + 0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x01,0x00,0x00,0x07,0x9a,0xfe,0x00,0x00,0x00, + 0x07,0x65,0xfe,0x70,0xfe,0x92,0x07,0x17,0x00,0x01, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x01,0x36,0x00,0x01,0x00,0x00, + 0x01,0x36,0x00,0x40,0x00,0x07,0x00,0x00,0x00,0x00, + 0x00,0x02,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x00, + 0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03, + 0x03,0x4c,0x01,0x90,0x00,0x03,0x00,0x08,0x05,0x33, + 0x04,0xcc,0x00,0x00,0x00,0x99,0x05,0x33,0x04,0xcc, + 0x00,0x00,0x02,0xcc,0x00,0x32,0x02,0x66,0x00,0x00, + 0x00,0x00,0x05,0x06,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x08,0x03,0x40,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x55,0x4b,0x57,0x4e, + 0x00,0x40,0x00,0x0d,0xfb,0x4b,0x06,0x00,0xfe,0x00, + 0x01,0x9a,0x07,0x9a,0x02,0x00,0x20,0x00,0x00,0x21, + 0x00,0x00,0x00,0x00,0x04,0x46,0x05,0xb6,0x00,0x00, + 0x00,0x20,0x00,0x04,0x02,0xee,0x00,0x00,0x00,0x00, + 0x00,0x00,0x02,0xaa,0x00,0x00,0x02,0x14,0x00,0x00, + 0x01,0xa9,0x00,0x00,0x01,0xe5,0x00,0x87,0x02,0xf9, + 0x00,0x81,0x03,0xb5,0x00,0x26,0x03,0x5e,0x00,0x57, + 0x05,0x2a,0x00,0x54,0x03,0xb7,0x00,0x3f,0x01,0xab, + 0x00,0x81,0x02,0x56,0x00,0x5e,0x02,0x56,0x00,0x4a, + 0x03,0x2d,0x00,0x50,0x03,0x54,0x00,0x4b,0x01,0xd1, + 0x00,0x45,0x02,0x2f,0x00,0x3b,0x01,0xd1,0x00,0x7e, + 0x02,0xef,0x00,0x27,0x03,0x5e,0x00,0x53,0x03,0x5e, + 0x00,0x85,0x03,0x5e,0x00,0x4a,0x03,0x5e,0x00,0x47, + 0x03,0x5e,0x00,0x25,0x03,0x5e,0x00,0x5f,0x03,0x5e, + 0x00,0x5b,0x03,0x5e,0x00,0x41,0x03,0x5e,0x00,0x48, + 0x03,0x5e,0x00,0x4d,0x01,0xd1,0x00,0x7e,0x01,0xd1, + 0x00,0x45,0x03,0x54,0x00,0x4b,0x03,0x54,0x00,0x4b, + 0x03,0x54,0x00,0x49,0x02,0x85,0x00,0x1f,0x05,0x24, + 0x00,0x62,0x03,0x8a,0x00,0x00,0x03,0xb6,0x00,0x95, + 0x03,0x79,0x00,0x66,0x04,0x14,0x00,0x95,0x03,0x30, + 0x00,0x96,0x02,0xfd,0x00,0x96,0x04,0x3f,0x00,0x66, + 0x04,0x2f,0x00,0x96,0x01,0xe3,0x00,0xa6,0x01,0xbc, + 0xff,0x91,0x03,0x80,0x00,0x95,0x02,0xec,0x00,0x96, + 0x05,0xb9,0x00,0x95,0x04,0x81,0x00,0x96,0x04,0x5c, + 0x00,0x66,0x03,0x77,0x00,0x95,0x04,0x5c,0x00,0x66, + 0x03,0x99,0x00,0x96,0x03,0x35,0x00,0x50,0x03,0x00, + 0x00,0x12,0x04,0x22,0x00,0x8b,0x03,0x6c,0x00,0x00, + 0x05,0xbe,0x00,0x0c,0x03,0x1f,0x00,0x0d,0x03,0x09, + 0x00,0x00,0x02,0xd0,0x00,0x34,0x02,0x86,0x00,0xa0, + 0x02,0xef,0x00,0x27,0x02,0x86,0x00,0x41,0x03,0x8c, + 0x00,0x1d,0x03,0x1a,0xff,0xfc,0x04,0x62,0x01,0x89, + 0x03,0x49,0x00,0x46,0x03,0xa6,0x00,0x86,0x02,0xa4, + 0x00,0x58,0x03,0xa6,0x00,0x57,0x03,0x51,0x00,0x58, + 0x01,0xf9,0x00,0x16,0x03,0x25,0x00,0x1d,0x03,0x9d, + 0x00,0x86,0x01,0xa6,0x00,0x7a,0x01,0xa7,0xff,0xea, + 0x03,0x1b,0x00,0x86,0x01,0xa3,0x00,0x86,0x05,0x75, + 0x00,0x86,0x03,0x9d,0x00,0x86,0x03,0x87,0x00,0x57, + 0x03,0xa6,0x00,0x86,0x03,0xa6,0x00,0x57,0x02,0x5a, + 0x00,0x86,0x02,0xad,0x00,0x46,0x02,0x08,0x00,0x27, + 0x03,0x9d,0x00,0x80,0x02,0xe3,0x00,0x06,0x04,0xd9, + 0x00,0x14,0x02,0xea,0x00,0x1c,0x02,0xe3,0x00,0x06, + 0x02,0x5c,0x00,0x35,0x02,0xe1,0x00,0x51,0x03,0x7b, + 0x01,0x7b,0x02,0xe1,0x00,0x50,0x03,0x54,0x00,0x70, + 0x02,0x14,0x00,0x00,0x01,0xe5,0x00,0x87,0x03,0x5e, + 0x00,0xa1,0x03,0x5e,0x00,0x4f,0x04,0x67,0x00,0x71, + 0x03,0x5e,0x00,0x49,0x03,0x7b,0x01,0x7b,0x02,0xf3, + 0x00,0x52,0x04,0x67,0x01,0x36,0x06,0xa3,0x00,0x61, + 0x02,0x64,0x00,0x39,0x03,0xb6,0x00,0x4f,0x03,0x54, + 0x00,0x4b,0x02,0x2f,0x00,0x3b,0x06,0xa3,0x00,0x61, + 0x03,0x86,0xff,0xf9,0x03,0x5e,0x00,0x76,0x03,0x54, + 0x00,0x4b,0x02,0x7e,0x00,0x32,0x02,0x7e,0x00,0x32, + 0x04,0x62,0x01,0x89,0x03,0xa0,0x00,0x82,0x03,0xed, + 0x00,0x79,0x01,0xd1,0x00,0x7e,0x01,0xc1,0x00,0x1f, + 0x02,0x7e,0x00,0x4c,0x02,0x80,0x00,0x43,0x03,0xb6, + 0x00,0x4f,0x05,0xcd,0x00,0x36,0x05,0xcd,0x00,0x36, + 0x05,0xcd,0x00,0x33,0x02,0x85,0x00,0x31,0x03,0x8a, + 0x00,0x00,0x03,0x8a,0x00,0x00,0x03,0x8a,0x00,0x00, + 0x03,0x8a,0x00,0x00,0x03,0x8a,0x00,0x00,0x03,0x8a, + 0x00,0x00,0x04,0xdb,0x00,0x00,0x03,0x79,0x00,0x66, + 0x03,0x30,0x00,0x96,0x03,0x30,0x00,0x96,0x03,0x30, + 0x00,0x96,0x03,0x30,0x00,0x96,0x01,0xe3,0xff,0xd9, + 0x01,0xe3,0x00,0x9e,0x01,0xe3,0xff,0xde,0x01,0xe3, + 0xff,0xf5,0x04,0x14,0x00,0x28,0x04,0x81,0x00,0x96, + 0x04,0x5c,0x00,0x66,0x04,0x5c,0x00,0x66,0x04,0x5c, + 0x00,0x66,0x04,0x5c,0x00,0x66,0x04,0x5c,0x00,0x66, + 0x03,0x54,0x00,0x45,0x04,0x5c,0x00,0x66,0x04,0x22, + 0x00,0x8b,0x04,0x22,0x00,0x8b,0x04,0x22,0x00,0x8b, + 0x04,0x22,0x00,0x8b,0x03,0x09,0x00,0x00,0x03,0x77, + 0x00,0x95,0x03,0x95,0x00,0x86,0x03,0x49,0x00,0x46, + 0x03,0x49,0x00,0x46,0x03,0x49,0x00,0x46,0x03,0x49, + 0x00,0x46,0x03,0x49,0x00,0x46,0x03,0x49,0x00,0x46, + 0x05,0x29,0x00,0x46,0x02,0xa4,0x00,0x58,0x03,0x51, + 0x00,0x58,0x03,0x51,0x00,0x58,0x03,0x51,0x00,0x58, + 0x03,0x51,0x00,0x58,0x01,0xa6,0xff,0xc6,0x01,0xa6, + 0x00,0x71,0x01,0xa6,0xff,0xbf,0x01,0xa6,0xff,0xd7, + 0x03,0x8b,0x00,0x57,0x03,0x9d,0x00,0x86,0x03,0x87, + 0x00,0x57,0x03,0x87,0x00,0x57,0x03,0x87,0x00,0x57, + 0x03,0x87,0x00,0x57,0x03,0x87,0x00,0x57,0x03,0x54, + 0x00,0x4a,0x03,0x87,0x00,0x54,0x03,0x9d,0x00,0x80, + 0x03,0x9d,0x00,0x80,0x03,0x9d,0x00,0x80,0x03,0x9d, + 0x00,0x80,0x02,0xe3,0x00,0x06,0x03,0xa6,0x00,0x86, + 0x02,0xe3,0x00,0x06,0x01,0xa6,0x00,0x87,0x05,0x17, + 0x00,0x66,0x05,0x8a,0x00,0x57,0x03,0x35,0x00,0x50, + 0x02,0xad,0x00,0x46,0x03,0x09,0x00,0x00,0x02,0xd0, + 0x00,0x34,0x02,0x5c,0x00,0x26,0x03,0x5e,0x00,0x45, + 0x04,0x7e,0x01,0x2a,0x04,0x7e,0x01,0x2a,0x04,0x7b, + 0x01,0x44,0x01,0xbe,0x00,0x83,0x04,0x88,0x01,0x6d, + 0x01,0x8a,0x00,0x25,0x04,0x7e,0x01,0x10,0x04,0x85, + 0x00,0xf4,0x00,0x00,0xff,0xba,0x00,0x00,0xfe,0x70, + 0x00,0x00,0xfe,0xb6,0x00,0x00,0xfe,0xbb,0x00,0x00, + 0xff,0xb9,0x00,0x00,0xff,0x14,0x00,0x00,0xff,0x16, + 0x00,0x00,0xff,0x34,0x00,0x00,0xff,0x2f,0x00,0x00, + 0xff,0xb9,0x00,0x00,0xff,0xb9,0x00,0x00,0xff,0x6d, + 0x00,0x00,0xff,0xba,0x00,0x00,0xff,0xcd,0x02,0x2f, + 0x00,0x3b,0x00,0x00,0xff,0xba,0x00,0x00,0xff,0xba, + 0x00,0x00,0xff,0x34,0x03,0x5b,0x00,0x44,0x03,0x2a, + 0x00,0x5d,0x02,0xbb,0x00,0x59,0x02,0xdd,0x00,0x14, + 0x03,0xbc,0x00,0x86,0x01,0xa4,0x00,0x86,0x01,0xe1, + 0x00,0x81,0x03,0xbc,0x00,0x86,0x03,0xa7,0x00,0x5f, + 0x01,0x9e,0x00,0x83,0x02,0xd7,0x00,0x2d,0x02,0xaf, + 0x00,0x2d,0x02,0xa6,0x00,0x2c,0x03,0xbc,0x00,0x86, + 0x03,0xa5,0x00,0x35,0x01,0xa8,0x00,0x58,0x02,0x69, + 0x00,0x28,0x03,0x9e,0x00,0x57,0x03,0x78,0x00,0x41, + 0x03,0xaf,0x00,0x50,0x03,0x87,0x00,0x51,0x02,0xdb, + 0x00,0x03,0x03,0x45,0x00,0x3a,0x03,0x98,0x00,0x8d, + 0x02,0xcf,0x00,0x1d,0x04,0x68,0x00,0x40,0x03,0xb4, + 0x00,0x15,0x01,0x5e,0x00,0x23,0x02,0xab,0x00,0x23, + 0x03,0xef,0x00,0x4e,0x07,0x65,0x00,0x4e,0x01,0x5e, + 0x00,0x23,0x01,0x5e,0x00,0x23,0x01,0xd1,0x00,0x45, + 0x02,0xaa,0x00,0x23,0x02,0xaa,0x00,0x23,0x02,0xff, + 0x00,0x26,0x03,0xa2,0x00,0x78,0x03,0xa2,0x00,0x74, + 0x02,0xfb,0x00,0x91,0x05,0x74,0x00,0x7e,0x07,0x57, + 0x00,0x53,0x02,0x2f,0x00,0x4f,0x02,0x2f,0x00,0x4f, + 0x00,0xf5,0xfe,0xbe,0x05,0x02,0x00,0x8d,0x03,0x5e, + 0x00,0x24,0x05,0x90,0x00,0x0d,0x03,0x9f,0x00,0x16, + 0x03,0x9d,0x00,0x16,0x04,0x68,0x00,0x40,0x04,0x68, + 0x00,0x25,0x04,0x68,0x00,0x40,0x04,0x68,0x00,0x25, + 0x03,0x5b,0x00,0x44,0x03,0x5b,0x00,0x44,0x03,0x5b, + 0x00,0x44,0x03,0x2a,0x00,0x5d,0x02,0xbb,0x00,0x59, + 0x02,0xdd,0x00,0x14,0x03,0xbc,0x00,0x86,0x01,0xa4, + 0xff,0xab,0x01,0xe1,0xff,0xd5,0x03,0xa7,0x00,0x5f, + 0x01,0x9e,0xff,0xd6,0x02,0xd7,0x00,0x2d,0x02,0xaf, + 0x00,0x2d,0x02,0xa6,0x00,0x2b,0x03,0xa5,0x00,0x35, + 0x02,0x69,0x00,0x28,0x03,0x9e,0x00,0x57,0x03,0xaf, + 0x00,0x50,0x03,0x87,0x00,0x51,0x03,0x45,0x00,0x3a, + 0x03,0x98,0x00,0x8d,0x02,0xcf,0x00,0x1d,0x04,0x68, + 0x00,0x40,0x03,0xb4,0x00,0x15,0x01,0xa4,0x00,0x64, + 0x00,0x00,0xff,0x12,0x00,0x00,0x00,0x03,0x00,0x00, + 0x00,0x03,0x00,0x00,0x00,0x1c,0x00,0x01,0x00,0x00, + 0x00,0x00,0x01,0x44,0x00,0x03,0x00,0x01,0x00,0x00, + 0x00,0x1c,0x00,0x04,0x01,0x28,0x00,0x00,0x00,0x46, + 0x00,0x40,0x00,0x05,0x00,0x06,0x00,0x0d,0x00,0x7e, + 0x00,0xff,0x01,0x31,0x01,0x53,0x01,0x61,0x01,0x78, + 0x01,0x7e,0x01,0x92,0x02,0xc7,0x02,0xdd,0x05,0xbe, + 0x05,0xc2,0x05,0xc7,0x05,0xea,0x05,0xf4,0x20,0x14, + 0x20,0x1a,0x20,0x1e,0x20,0x22,0x20,0x26,0x20,0x30, + 0x20,0x3a,0x20,0x44,0x20,0xaa,0x20,0xac,0x21,0x22, + 0xfb,0x02,0xfb,0x36,0xfb,0x3c,0xfb,0x3e,0xfb,0x41, + 0xfb,0x44,0xfb,0x4b,0xff,0xff,0x00,0x00,0x00,0x0d, + 0x00,0x20,0x00,0xa0,0x01,0x31,0x01,0x52,0x01,0x60, + 0x01,0x78,0x01,0x7d,0x01,0x92,0x02,0xc6,0x02,0xd8, + 0x05,0xb0,0x05,0xc1,0x05,0xc7,0x05,0xd0,0x05,0xf3, + 0x20,0x13,0x20,0x18,0x20,0x1c,0x20,0x20,0x20,0x26, + 0x20,0x30,0x20,0x39,0x20,0x44,0x20,0xaa,0x20,0xac, + 0x21,0x22,0xfb,0x01,0xfb,0x2a,0xfb,0x38,0xfb,0x3e, + 0xfb,0x40,0xfb,0x43,0xfb,0x46,0xff,0xff,0xff,0xf6, + 0xff,0xe4,0xff,0xc3,0xff,0x92,0xff,0x72,0xff,0x66, + 0xff,0x50,0xff,0x4c,0xff,0x39,0xfe,0x06,0xfd,0xf6, + 0xfb,0x24,0xfb,0x22,0xfb,0x1e,0xfb,0x16,0xfb,0x0e, + 0xe0,0xf0,0xe0,0xed,0xe0,0xec,0xe0,0xeb,0xe0,0xe8, + 0xe0,0xdf,0xe0,0xd7,0xe0,0xce,0xe0,0x69,0xe0,0x68, + 0xdf,0xf3,0x06,0x15,0x05,0xee,0x05,0xed,0x05,0xec, + 0x05,0xeb,0x05,0xea,0x05,0xe9,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, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06, + 0x02,0x0a,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x01, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,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,0x01,0x00,0x00, + 0x00,0x00,0x00,0x04,0x00,0x05,0x00,0x06,0x00,0x07, + 0x00,0x08,0x00,0x09,0x00,0x0a,0x00,0x0b,0x00,0x0c, + 0x00,0x0d,0x00,0x0e,0x00,0x0f,0x00,0x10,0x00,0x11, + 0x00,0x12,0x00,0x13,0x00,0x14,0x00,0x15,0x00,0x16, + 0x00,0x17,0x00,0x18,0x00,0x19,0x00,0x1a,0x00,0x1b, + 0x00,0x1c,0x00,0x1d,0x00,0x1e,0x00,0x1f,0x00,0x20, + 0x00,0x21,0x00,0x22,0x00,0x23,0x00,0x24,0x00,0x25, + 0x00,0x26,0x00,0x27,0x00,0x28,0x00,0x29,0x00,0x2a, + 0x00,0x2b,0x00,0x2c,0x00,0x2d,0x00,0x2e,0x00,0x2f, + 0x00,0x30,0x00,0x31,0x00,0x32,0x00,0x33,0x00,0x34, + 0x00,0x35,0x00,0x36,0x00,0x37,0x00,0x38,0x00,0x39, + 0x00,0x3a,0x00,0x3b,0x00,0x3c,0x00,0x3d,0x00,0x3e, + 0x00,0x3f,0x00,0x40,0x00,0x41,0x00,0x42,0x00,0x43, + 0x00,0x44,0x00,0x45,0x00,0x46,0x00,0x47,0x00,0x48, + 0x00,0x49,0x00,0x4a,0x00,0x4b,0x00,0x4c,0x00,0x4d, + 0x00,0x4e,0x00,0x4f,0x00,0x50,0x00,0x51,0x00,0x52, + 0x00,0x53,0x00,0x54,0x00,0x55,0x00,0x56,0x00,0x57, + 0x00,0x58,0x00,0x59,0x00,0x5a,0x00,0x5b,0x00,0x5c, + 0x00,0x5d,0x00,0x5e,0x00,0x5f,0x00,0x60,0x00,0x61, + 0x00,0x62,0x00,0x00,0x00,0x87,0x00,0x88,0x00,0x8a, + 0x00,0x8c,0x00,0x94,0x00,0x99,0x00,0x9f,0x00,0xa4, + 0x00,0xa3,0x00,0xa5,0x00,0xa7,0x00,0xa6,0x00,0xa8, + 0x00,0xaa,0x00,0xac,0x00,0xab,0x00,0xad,0x00,0xae, + 0x00,0xb0,0x00,0xaf,0x00,0xb1,0x00,0xb2,0x00,0xb4, + 0x00,0xb6,0x00,0xb5,0x00,0xb7,0x00,0xb9,0x00,0xb8, + 0x00,0xbd,0x00,0xbc,0x00,0xbe,0x00,0xbf,0x01,0x0b, + 0x00,0x73,0x00,0x65,0x00,0x66,0x00,0x6a,0x01,0x0d, + 0x00,0x79,0x00,0xa2,0x00,0x71,0x00,0x6c,0x01,0x15, + 0x00,0x77,0x00,0x6b,0x00,0x00,0x00,0x89,0x00,0x9b, + 0x00,0x00,0x00,0x74,0x00,0x00,0x00,0x00,0x00,0x68, + 0x00,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x6d,0x00,0x7d,0x00,0x00,0x00,0xa9, + 0x00,0xbb,0x00,0x82,0x00,0x64,0x00,0x6f,0x00,0x00, + 0x00,0xcb,0x00,0x00,0x00,0x00,0x00,0x6e,0x00,0x7e, + 0x01,0x0e,0x00,0x63,0x00,0x83,0x00,0x86,0x00,0x98, + 0x00,0xc4,0x00,0xc5,0x01,0x03,0x01,0x04,0x01,0x08, + 0x01,0x09,0x01,0x05,0x01,0x06,0x00,0xba,0x00,0x00, + 0x00,0xc2,0x00,0xc8,0x01,0x12,0x01,0x14,0x01,0x10, + 0x01,0x11,0x01,0x16,0x01,0x17,0x01,0x0c,0x00,0x7a, + 0x01,0x07,0x01,0x0a,0x01,0x0f,0x00,0x85,0x00,0x8d, + 0x00,0x84,0x00,0x8e,0x00,0x8b,0x00,0x90,0x00,0x91, + 0x00,0x92,0x00,0x8f,0x00,0x96,0x00,0x97,0x00,0x00, + 0x00,0x95,0x00,0x9d,0x00,0x9e,0x00,0x9c,0x00,0xc3, + 0x00,0xcc,0x00,0xd2,0x00,0x72,0x00,0xce,0x00,0xcf, + 0x00,0xd0,0x00,0x7b,0x00,0xd3,0x00,0xd1,0x00,0xcd, + 0x00,0x00,0xb8,0x01,0xff,0x85,0xb0,0x04,0x8d,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x18,0x00,0x2e,0x00,0x66,0x00,0xae, + 0x00,0xf2,0x01,0x44,0x01,0x52,0x01,0x6e,0x01,0x8a, + 0x01,0xaa,0x01,0xc2,0x01,0xd4,0x01,0xe2,0x01,0xf2, + 0x02,0x00,0x02,0x2a,0x02,0x44,0x02,0x76,0x02,0xac, + 0x02,0xd0,0x03,0x02,0x03,0x36,0x03,0x4a,0x03,0x8a, + 0x03,0xc0,0x03,0xda,0x03,0xf6,0x04,0x0c,0x04,0x20, + 0x04,0x34,0x04,0x64,0x04,0xbe,0x04,0xe6,0x05,0x18, + 0x05,0x3c,0x05,0x5e,0x05,0x78,0x05,0x8e,0x05,0xba, + 0x05,0xd2,0x05,0xde,0x05,0xfa,0x06,0x1c,0x06,0x2c, + 0x06,0x56,0x06,0x74,0x06,0x9c,0x06,0xbe,0x06,0xf0, + 0x07,0x18,0x07,0x4a,0x07,0x5e,0x07,0x7c,0x07,0x98, + 0x07,0xd6,0x07,0xf4,0x08,0x0a,0x08,0x22,0x08,0x36, + 0x08,0x44,0x08,0x58,0x08,0x6c,0x08,0x7a,0x08,0x92, + 0x08,0xc6,0x08,0xf4,0x09,0x16,0x09,0x46,0x09,0x70, + 0x09,0x94,0x09,0xee,0x0a,0x14,0x0a,0x2e,0x0a,0x52, + 0x0a,0x70,0x0a,0x7c,0x0a,0xb2,0x0a,0xd4,0x0a,0xf6, + 0x0b,0x28,0x0b,0x5a,0x0b,0x78,0x0b,0xb2,0x0b,0xd4, + 0x0b,0xf8,0x0c,0x14,0x0c,0x46,0x0c,0x64,0x0c,0x94, + 0x0c,0xac,0x0c,0xe0,0x0c,0xee,0x0d,0x1e,0x0d,0x4c, + 0x0d,0x4c,0x0d,0x66,0x0d,0x8e,0x0d,0xbc,0x0d,0xf8, + 0x0e,0x24,0x0e,0x38,0x0e,0x92,0x0e,0xb0,0x0f,0x0a, + 0x0f,0x40,0x0f,0x64,0x0f,0x74,0x0f,0x82,0x0f,0xe4, + 0x0f,0xf2,0x10,0x14,0x10,0x34,0x10,0x60,0x10,0x94, + 0x10,0xaa,0x10,0xd0,0x10,0xec,0x10,0xfc,0x11,0x1a, + 0x11,0x32,0x11,0x52,0x11,0x74,0x11,0xb0,0x11,0xf4, + 0x12,0x4a,0x12,0x7c,0x12,0xb4,0x12,0xec,0x13,0x2a, + 0x13,0x70,0x13,0xae,0x13,0xee,0x14,0x18,0x14,0x54, + 0x14,0x7e,0x14,0xa6,0x14,0xd6,0x15,0x06,0x15,0x24, + 0x15,0x40,0x15,0x64,0x15,0x88,0x15,0xb2,0x15,0xee, + 0x16,0x26,0x16,0x5c,0x16,0x9a,0x16,0xde,0x17,0x1c, + 0x17,0x42,0x17,0x82,0x17,0xb2,0x17,0xe0,0x18,0x14, + 0x18,0x4a,0x18,0x70,0x18,0x94,0x18,0xd8,0x19,0x1e, + 0x19,0x62,0x19,0xae,0x1a,0x00,0x1a,0x4c,0x1a,0x9a, + 0x1a,0xea,0x1b,0x20,0x1b,0x5a,0x1b,0x92,0x1b,0xd2, + 0x1c,0x12,0x1c,0x30,0x1c,0x4c,0x1c,0x70,0x1c,0x94, + 0x1c,0xd4,0x1d,0x14,0x1d,0x48,0x1d,0x7a,0x1d,0xb4, + 0x1d,0xf4,0x1e,0x2e,0x1e,0x50,0x1e,0x92,0x1e,0xc6, + 0x1e,0xfa,0x1f,0x34,0x1f,0x70,0x1f,0xb0,0x1f,0xe2, + 0x20,0x28,0x20,0x34,0x20,0x6a,0x20,0xaa,0x20,0xf2, + 0x21,0x42,0x21,0x70,0x21,0x9c,0x21,0xc8,0x21,0xfa, + 0x22,0x18,0x22,0x34,0x22,0x4e,0x22,0x60,0x22,0x80, + 0x22,0xa4,0x22,0xc8,0x22,0xec,0x23,0x02,0x23,0x30, + 0x23,0x4e,0x23,0x6e,0x23,0x7c,0x23,0x92,0x23,0xb0, + 0x23,0xbe,0x23,0xce,0x23,0xdc,0x23,0xea,0x24,0x08, + 0x24,0x16,0x24,0x24,0x24,0x32,0x24,0x40,0x24,0x4e, + 0x24,0x5e,0x24,0x92,0x24,0xb6,0x24,0xea,0x25,0x06, + 0x25,0x28,0x25,0x34,0x25,0x50,0x25,0x72,0x25,0xa8, + 0x25,0xb8,0x25,0xd4,0x26,0x04,0x26,0x24,0x26,0x44, + 0x26,0x88,0x26,0xa0,0x26,0xcc,0x27,0x0c,0x27,0x38, + 0x27,0x6a,0x27,0xa8,0x27,0xca,0x27,0xf0,0x28,0x24, + 0x28,0x40,0x28,0x74,0x28,0xa8,0x28,0xc0,0x28,0xe6, + 0x28,0xf4,0x29,0x02,0x29,0x14,0x29,0x26,0x29,0x38, + 0x29,0x56,0x29,0x74,0x29,0x92,0x29,0xae,0x29,0xdc, + 0x29,0xee,0x2a,0x12,0x2a,0x74,0x2a,0x8a,0x2a,0x9e, + 0x2a,0xac,0x2a,0xf0,0x2b,0x2a,0x2b,0x56,0x2b,0x8e, + 0x2b,0xba,0x2b,0xf8,0x2c,0x36,0x2c,0x7c,0x2c,0xc2, + 0x2c,0xfe,0x2d,0x3e,0x2d,0x7c,0x2d,0xa8,0x2d,0xe4, + 0x2e,0x08,0x2e,0x32,0x2e,0x48,0x2e,0x6c,0x2e,0xaa, + 0x2e,0xc2,0x2e,0xe6,0x2f,0x1e,0x2f,0x48,0x2f,0x94, + 0x2f,0xc8,0x30,0x10,0x30,0x4a,0x30,0x90,0x30,0xbe, + 0x30,0xfa,0x31,0x1e,0x31,0x5a,0x31,0x96,0x31,0xac, + 0x31,0xba,0x00,0x00,0x00,0x02,0x00,0x87,0xff,0xec, + 0x01,0x5d,0x05,0xb6,0x00,0x03,0x00,0x0a,0x00,0x00, + 0x01,0x23,0x03,0x33,0x02,0x32,0x15,0x14,0x06,0x23, + 0x22,0x01,0x29,0x6e,0x27,0xbd,0xca,0xd6,0x3a,0x31, + 0x6b,0x01,0x91,0x04,0x25,0xfb,0x31,0x7d,0x3e,0x40, + 0x00,0x00,0x00,0x02,0x00,0x81,0x03,0xa6,0x02,0x78, + 0x05,0xb6,0x00,0x03,0x00,0x07,0x00,0x00,0x01,0x23, + 0x03,0x33,0x01,0x23,0x03,0x33,0x01,0x09,0x64,0x24, + 0xa9,0x01,0x2d,0x64,0x24,0xa9,0x03,0xa6,0x02,0x10, + 0xfd,0xf0,0x02,0x10,0x00,0x00,0x00,0x02,0x00,0x26, + 0x00,0x00,0x03,0x8e,0x05,0xb6,0x00,0x1b,0x00,0x1f, + 0x00,0x00,0x01,0x15,0x23,0x03,0x33,0x15,0x23,0x03, + 0x23,0x13,0x23,0x03,0x23,0x13,0x23,0x35,0x33,0x13, + 0x23,0x35,0x33,0x13,0x33,0x03,0x33,0x13,0x33,0x03, + 0x05,0x03,0x33,0x13,0x03,0x8e,0xbe,0x2a,0xb7,0xc7, + 0x37,0x76,0x39,0xd8,0x38,0x73,0x36,0xaf,0xbf,0x2b, + 0xba,0xca,0x33,0x75,0x35,0xdb,0x35,0x71,0x33,0xfe, + 0xa2,0x29,0xd7,0x2c,0x04,0x14,0x79,0xfe,0xa2,0x7d, + 0xfe,0x40,0x01,0xc0,0xfe,0x40,0x01,0xc0,0x7d,0x01, + 0x5e,0x79,0x01,0xa2,0xfe,0x5e,0x01,0xa2,0xfe,0x5e, + 0x79,0xfe,0xa2,0x01,0x5e,0x00,0x00,0x00,0x00,0x03, + 0x00,0x57,0xff,0x89,0x03,0x07,0x06,0x14,0x00,0x1f, + 0x00,0x25,0x00,0x2b,0x00,0x00,0x01,0x06,0x07,0x26, + 0x27,0x11,0x1e,0x01,0x10,0x06,0x07,0x15,0x23,0x35, + 0x26,0x27,0x35,0x1e,0x01,0x17,0x11,0x26,0x27,0x2e, + 0x01,0x34,0x36,0x37,0x35,0x33,0x15,0x16,0x04,0x06, + 0x14,0x16,0x17,0x11,0x12,0x36,0x34,0x26,0x27,0x11, + 0x02,0xee,0x31,0x02,0x77,0x69,0xa1,0x8b,0xa1,0x8b, + 0x5d,0xb6,0x71,0x3c,0x9f,0x4c,0x15,0x24,0x82,0x65, + 0x9f,0x81,0x5d,0x90,0xfe,0xcf,0x4e,0x43,0x4f,0xa6, + 0x54,0x47,0x56,0x05,0x20,0x7b,0x05,0x38,0x06,0xfe, + 0x43,0x43,0x9e,0xfe,0xf9,0xb2,0x13,0xeb,0xe5,0x03, + 0x3d,0x96,0x24,0x2a,0x02,0x01,0xbb,0x08,0x12,0x41, + 0x95,0xfc,0xb4,0x13,0xb2,0xaf,0x06,0x94,0x67,0x9a, + 0x5c,0x25,0x01,0x91,0xfc,0x32,0x66,0x91,0x5d,0x27, + 0xfe,0x75,0x00,0x05,0x00,0x54,0xff,0xed,0x04,0xd6, + 0x05,0xcb,0x00,0x07,0x00,0x0b,0x00,0x14,0x00,0x1c, + 0x00,0x25,0x00,0x00,0x12,0x36,0x32,0x16,0x10,0x06, + 0x22,0x26,0x01,0x23,0x01,0x33,0x05,0x22,0x06,0x10, + 0x16,0x32,0x36,0x35,0x10,0x00,0x36,0x32,0x16,0x10, + 0x06,0x22,0x26,0x13,0x22,0x06,0x10,0x16,0x32,0x36, + 0x35,0x10,0x54,0x74,0xe6,0x77,0x7a,0xe4,0x73,0x01, + 0x7d,0x7f,0x02,0x05,0x80,0xfd,0x62,0x34,0x2f,0x2f, + 0x6d,0x30,0x01,0x64,0x75,0xe5,0x76,0x7a,0xe2,0x74, + 0xe5,0x34,0x2e,0x2f,0x6c,0x30,0x04,0xe2,0xe9,0xe8, + 0xfe,0x41,0xef,0xeb,0xfc,0xe0,0x05,0xb6,0x5f,0xa5, + 0xfe,0xa0,0xa5,0xa6,0xb0,0x01,0x54,0xfd,0x43,0xe8, + 0xe7,0xfe,0x3f,0xed,0xeb,0x02,0x35,0xa4,0xfe,0xa0, + 0xa5,0xa5,0xb0,0x01,0x54,0x00,0x00,0x00,0x00,0x03, + 0x00,0x3f,0xff,0xec,0x03,0xb2,0x05,0xcb,0x00,0x20, + 0x00,0x2a,0x00,0x32,0x00,0x00,0x05,0x22,0x26,0x35, + 0x34,0x36,0x37,0x2e,0x01,0x35,0x34,0x36,0x32,0x16, + 0x10,0x06,0x07,0x16,0x12,0x17,0x36,0x37,0x33,0x0e, + 0x01,0x07,0x13,0x23,0x2e,0x01,0x27,0x0e,0x01,0x03, + 0x22,0x06,0x14,0x16,0x17,0x3e,0x01,0x35,0x34,0x02, + 0x06,0x14,0x16,0x33,0x32,0x37,0x03,0x01,0x74,0x91, + 0xa4,0x67,0x7c,0x49,0x30,0x84,0xde,0x84,0x57,0x66, + 0x2d,0xa5,0x10,0x38,0x0a,0x8c,0x07,0x44,0x2d,0xa8, + 0xac,0x0f,0x3b,0x0f,0x46,0x91,0x3b,0x2e,0x33,0x2f, + 0x27,0x3d,0x32,0xe9,0x3e,0x5c,0x4f,0x7d,0x61,0xfa, + 0x14,0xcc,0xb7,0x84,0xc1,0x66,0x80,0x96,0x5d,0x92, + 0xac,0xa3,0xfe,0xf4,0xbe,0x5b,0x4a,0xfe,0xea,0x1a, + 0x72,0xb2,0x6a,0xed,0x4f,0xfe,0xf9,0x19,0x66,0x19, + 0x5e,0x4e,0x05,0x58,0x5b,0xa0,0xa0,0x3c,0x3a,0x8e, + 0x60,0xaf,0xfd,0x23,0x8b,0xde,0x85,0x96,0x01,0xa3, + 0x00,0x00,0x00,0x01,0x00,0x81,0x03,0xa6,0x01,0x2a, + 0x05,0xb6,0x00,0x03,0x00,0x00,0x01,0x23,0x03,0x33, + 0x01,0x09,0x64,0x24,0xa9,0x03,0xa6,0x02,0x10,0x00, + 0x00,0x01,0x00,0x5e,0xfe,0xbc,0x02,0x0b,0x05,0xb6, + 0x00,0x0b,0x00,0x00,0x00,0x02,0x10,0x12,0x17,0x23, + 0x26,0x02,0x10,0x12,0x37,0x33,0x01,0x84,0x8d,0x92, + 0x80,0x81,0x8f,0x9b,0x9c,0x8e,0x83,0x04,0xf3,0xfe, + 0x30,0xfe,0x1f,0xfe,0x2a,0xb0,0xa7,0x01,0xcb,0x02, + 0x05,0x01,0xd7,0xac,0x00,0x00,0x00,0x01,0x00,0x4a, + 0xfe,0xbc,0x01,0xf8,0x05,0xb6,0x00,0x0b,0x00,0x00, + 0x00,0x12,0x10,0x02,0x07,0x23,0x36,0x12,0x10,0x02, + 0x27,0x33,0x01,0x5c,0x9c,0x9b,0x90,0x81,0x82,0x90, + 0x8c,0x88,0x83,0x05,0x0a,0xfe,0x28,0xfd,0xfd,0xfe, + 0x35,0xa8,0xb6,0x01,0xd3,0x01,0xe0,0x01,0xcd,0xc4, + 0x00,0x00,0x00,0x01,0x00,0x50,0x03,0x80,0x02,0xdd, + 0x06,0x14,0x00,0x0e,0x00,0x00,0x01,0x25,0x17,0x07, + 0x17,0x07,0x27,0x07,0x27,0x37,0x27,0x37,0x17,0x03, + 0x33,0x01,0xc8,0x01,0x01,0x14,0xf6,0xa6,0x83,0x73, + 0x75,0x81,0xa0,0xf1,0x18,0xfd,0x1e,0xa0,0x05,0x08, + 0x42,0x92,0x0b,0xe9,0x42,0xf4,0xf6,0x44,0xe9,0x0b, + 0x91,0x41,0x01,0x0c,0x00,0x00,0x00,0x01,0x00,0x4b, + 0x00,0xfa,0x03,0x09,0x04,0xae,0x00,0x0b,0x00,0x00, + 0x01,0x21,0x15,0x21,0x11,0x23,0x11,0x21,0x35,0x21, + 0x11,0x33,0x01,0xe6,0x01,0x23,0xfe,0xdd,0x78,0xfe, + 0xdd,0x01,0x23,0x78,0x03,0x10,0x7b,0xfe,0x65,0x01, + 0x9b,0x7b,0x01,0x9e,0x00,0x01,0x00,0x45,0xfe,0xf8, + 0x01,0x5c,0x00,0xd8,0x00,0x06,0x00,0x00,0x25,0x17, + 0x06,0x07,0x23,0x12,0x37,0x01,0x4e,0x0e,0x3f,0x6b, + 0x6d,0x47,0x1d,0xd8,0x17,0xde,0xeb,0x00,0xff,0xe1, + 0x00,0x01,0x00,0x3b,0x01,0xdf,0x01,0xf4,0x02,0x70, + 0x00,0x03,0x00,0x00,0x01,0x21,0x35,0x21,0x01,0xf4, + 0xfe,0x47,0x01,0xb9,0x01,0xdf,0x91,0x00,0x00,0x01, + 0x00,0x7e,0xff,0xec,0x01,0x53,0x00,0xe7,0x00,0x06, + 0x00,0x00,0x17,0x22,0x34,0x32,0x15,0x14,0x06,0xe8, + 0x6a,0xd5,0x39,0x14,0xfb,0x7d,0x3f,0x3f,0x00,0x00, + 0x00,0x01,0x00,0x27,0x00,0x00,0x02,0xd1,0x05,0xb6, + 0x00,0x03,0x00,0x00,0x33,0x23,0x01,0x33,0xc0,0x99, + 0x02,0x15,0x95,0x05,0xb6,0x00,0x00,0x00,0x00,0x02, + 0x00,0x53,0xff,0xec,0x03,0x08,0x05,0xcb,0x00,0x07, + 0x00,0x13,0x00,0x00,0x1a,0x01,0x20,0x12,0x10,0x02, + 0x20,0x02,0x01,0x22,0x02,0x10,0x12,0x33,0x32,0x37, + 0x36,0x11,0x10,0x02,0x53,0xaa,0x01,0x66,0xa5,0xaa, + 0xfe,0x96,0xa1,0x01,0x5a,0x65,0x57,0x57,0x65,0x3f, + 0x28,0x56,0x5c,0x04,0x5c,0x01,0x6f,0xfe,0x96,0xfc, + 0xfc,0xfe,0x8f,0x01,0x5f,0x03,0xf5,0xfe,0xe1,0xfd, + 0x74,0xfe,0xe2,0x39,0x78,0x01,0xb4,0x01,0x3f,0x01, + 0x25,0x00,0x00,0x01,0x00,0x85,0x00,0x00,0x02,0x48, + 0x05,0xb6,0x00,0x0b,0x00,0x00,0x21,0x23,0x11,0x34, + 0x37,0x06,0x07,0x06,0x07,0x27,0x01,0x33,0x02,0x48, + 0x99,0x0a,0x20,0x39,0x5f,0x28,0x54,0x01,0x3d,0x86, + 0x03,0xeb,0x76,0xb2,0x2b,0x36,0x5a,0x28,0x61,0x01, + 0x25,0x00,0x00,0x00,0x00,0x01,0x00,0x4a,0x00,0x00, + 0x03,0x03,0x05,0xcb,0x00,0x1e,0x00,0x00,0x13,0x26, + 0x27,0x3e,0x01,0x33,0x32,0x16,0x15,0x14,0x06,0x07, + 0x06,0x07,0x0e,0x01,0x07,0x15,0x21,0x15,0x21,0x35, + 0x01,0x3e,0x01,0x35,0x34,0x26,0x23,0x22,0x06,0xa8, + 0x03,0x52,0x50,0x90,0x5e,0x9e,0xb4,0x3e,0x49,0x36, + 0xa0,0x16,0x67,0x10,0x02,0x0a,0xfd,0x47,0x01,0x1b, + 0x86,0x5e,0x67,0x5a,0x40,0x66,0x04,0xde,0x03,0x64, + 0x4a,0x3c,0xc4,0xa7,0x79,0xd7,0x76,0x61,0xe0,0x1e, + 0x91,0x16,0x08,0x8c,0x77,0x01,0xa4,0xc7,0xe3,0x96, + 0x5a,0x89,0x2c,0x00,0x00,0x01,0x00,0x47,0xff,0xec, + 0x02,0xfc,0x05,0xcb,0x00,0x22,0x00,0x00,0x01,0x32, + 0x16,0x15,0x10,0x07,0x15,0x1e,0x01,0x15,0x14,0x06, + 0x20,0x27,0x35,0x16,0x33,0x32,0x36,0x10,0x26,0x2b, + 0x01,0x35,0x33,0x32,0x36,0x34,0x26,0x23,0x22,0x06, + 0x07,0x27,0x36,0x01,0x8f,0x9b,0xb9,0xf4,0x80,0x8d, + 0xd4,0xfe,0x9b,0x76,0x82,0x97,0x78,0x82,0x9a,0x91, + 0x4d,0x50,0x7d,0x94,0x66,0x5d,0x43,0x6d,0x3d,0x52, + 0x8d,0x05,0xcb,0xbf,0x94,0xfe,0xda,0x53,0x08,0x19, + 0xb9,0x92,0xc1,0xe6,0x3a,0x99,0x4e,0x99,0x01,0x12, + 0x96,0x81,0x9e,0xf6,0x7c,0x2f,0x3a,0x67,0x8a,0x00, + 0x00,0x00,0x00,0x02,0x00,0x25,0x00,0x00,0x03,0x42, + 0x05,0xc1,0x00,0x0a,0x00,0x12,0x00,0x00,0x01,0x33, + 0x15,0x23,0x11,0x23,0x11,0x21,0x35,0x01,0x33,0x03, + 0x11,0x34,0x37,0x23,0x06,0x07,0x03,0x02,0xa8,0x9a, + 0x9a,0x94,0xfe,0x11,0x01,0xd2,0xb1,0x94,0x09,0x07, + 0x23,0x4c,0xf4,0x01,0xca,0x87,0xfe,0xbd,0x01,0x43, + 0x81,0x03,0xfd,0xfc,0x09,0x01,0xe0,0xc7,0x8f,0x62, + 0xb2,0xfd,0xde,0x00,0x00,0x01,0x00,0x5f,0xff,0xec, + 0x03,0x03,0x05,0xb6,0x00,0x1e,0x00,0x00,0x37,0x16, + 0x33,0x32,0x36,0x35,0x34,0x35,0x34,0x26,0x23,0x22, + 0x07,0x27,0x13,0x21,0x15,0x21,0x03,0x36,0x33,0x1e, + 0x01,0x17,0x06,0x07,0x0e,0x01,0x07,0x22,0x27,0x5f, + 0x69,0x6f,0x87,0xa7,0x7e,0x76,0x5c,0x69,0x3e,0x2c, + 0x02,0x1a,0xfe,0x69,0x1f,0x50,0x50,0xab,0xb8,0x02, + 0x02,0x5f,0x2f,0xa1,0x69,0xa8,0x62,0xc6,0x49,0xb0, + 0x9a,0x03,0x04,0x93,0x95,0x1f,0x40,0x02,0x9f,0x8f, + 0xfe,0x3f,0x12,0x02,0xe7,0xb7,0xc7,0x8b,0x46,0x52, + 0x02,0x3d,0x00,0x00,0x00,0x02,0x00,0x5b,0xff,0xec, + 0x03,0x08,0x05,0xca,0x00,0x15,0x00,0x1e,0x00,0x00, + 0x01,0x32,0x16,0x10,0x02,0x23,0x22,0x02,0x11,0x10, + 0x12,0x33,0x32,0x17,0x15,0x26,0x23,0x20,0x03,0x33, + 0x3e,0x01,0x12,0x26,0x22,0x06,0x15,0x14,0x16,0x32, + 0x36,0x01,0xdd,0x8c,0x9f,0xb6,0x9c,0xaa,0xb1,0xe9, + 0xed,0x55,0x34,0x3c,0x4b,0xfe,0xcb,0x11,0x09,0x22, + 0x77,0xdf,0x5d,0xaf,0x6a,0x6b,0xad,0x5e,0x03,0x94, + 0xf3,0xfe,0x4c,0xfe,0xff,0x01,0x48,0x01,0x3a,0x01, + 0xb7,0x01,0xa5,0x15,0x8b,0x16,0xfd,0xb0,0x4e,0x56, + 0xfe,0xd1,0xa9,0x95,0x72,0xbc,0xd5,0xaa,0x00,0x01, + 0x00,0x41,0x00,0x00,0x03,0x12,0x05,0xb5,0x00,0x06, + 0x00,0x00,0x13,0x35,0x21,0x15,0x01,0x23,0x01,0x41, + 0x02,0xd1,0xfe,0x4d,0xa1,0x01,0xb8,0x05,0x27,0x8e, + 0x73,0xfa,0xbe,0x05,0x27,0x00,0x00,0x00,0x00,0x03, + 0x00,0x48,0xff,0xec,0x03,0x17,0x05,0xca,0x00,0x13, + 0x00,0x1c,0x00,0x26,0x00,0x00,0x12,0x36,0x20,0x16, + 0x15,0x14,0x07,0x1e,0x01,0x15,0x14,0x06,0x20,0x26, + 0x35,0x34,0x36,0x37,0x26,0x35,0x24,0x26,0x22,0x06, + 0x14,0x16,0x17,0x3e,0x01,0x00,0x06,0x14,0x16,0x32, + 0x36,0x35,0x34,0x2f,0x01,0x67,0xb9,0x01,0x26,0xb4, + 0xe6,0x8c,0x77,0xc3,0xfe,0xbb,0xc7,0x6f,0x7d,0xcd, + 0x01,0xf9,0x5d,0xa7,0x5c,0x4d,0x62,0x5d,0x54,0xfe, + 0xd7,0x56,0x71,0xbd,0x6e,0xb9,0x26,0x05,0x0a,0xc0, + 0xba,0x9e,0xe7,0x8e,0x5f,0xb4,0x7b,0xaa,0xd9,0xcd, + 0xab,0x83,0xc1,0x52,0x9d,0xd8,0x65,0x74,0x75,0xc9, + 0x83,0x45,0x3c,0x8f,0xfe,0x68,0x99,0xe6,0x88,0x8e, + 0x78,0xa6,0x83,0x1b,0x00,0x00,0x00,0x02,0x00,0x4d, + 0xff,0xec,0x02,0xfa,0x05,0xca,0x00,0x15,0x00,0x1e, + 0x00,0x00,0x01,0x22,0x26,0x10,0x12,0x20,0x12,0x11, + 0x10,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x12, + 0x13,0x23,0x0e,0x01,0x12,0x26,0x22,0x06,0x10,0x16, + 0x32,0x36,0x35,0x01,0x78,0x8c,0x9f,0xb9,0x01,0x46, + 0xae,0xef,0xeb,0x55,0x3a,0x3d,0x4e,0x99,0xa8,0x0a, + 0x08,0x22,0x77,0x98,0x69,0xab,0x62,0x5b,0xae,0x6d, + 0x02,0x20,0xf6,0x01,0xb3,0x01,0x01,0xfe,0xb9,0xfe, + 0xcc,0xfe,0x50,0xfe,0x4d,0x14,0x8b,0x17,0x01,0x2c, + 0x01,0x24,0x4e,0x56,0x02,0x4f,0xcf,0xaa,0xfe,0xba, + 0xa8,0x9f,0x78,0x00,0x00,0x02,0x00,0x7e,0xff,0xec, + 0x01,0x53,0x04,0x4f,0x00,0x06,0x00,0x0d,0x00,0x00, + 0x12,0x34,0x32,0x15,0x14,0x06,0x23,0x11,0x22,0x34, + 0x32,0x15,0x14,0x06,0x7e,0xd5,0x39,0x32,0x6a,0xd5, + 0x39,0x03,0x55,0xfa,0x7d,0x3e,0x3f,0xfc,0x97,0xfb, + 0x7d,0x3f,0x3f,0x00,0x00,0x00,0x00,0x02,0x00,0x45, + 0xfe,0xf8,0x01,0x5b,0x04,0x4f,0x00,0x06,0x00,0x0d, + 0x00,0x00,0x12,0x32,0x15,0x14,0x06,0x23,0x22,0x13, + 0x17,0x06,0x07,0x23,0x12,0x37,0x7d,0xd6,0x3a,0x31, + 0x6b,0xd0,0x0e,0x3d,0x6c,0x6d,0x49,0x1b,0x04,0x4f, + 0x7d,0x3e,0x40,0xfd,0x83,0x17,0xd8,0xf0,0x01,0x0b, + 0xd4,0x00,0x00,0x01,0x00,0x4b,0x01,0x05,0x03,0x0a, + 0x04,0x9f,0x00,0x06,0x00,0x00,0x09,0x02,0x15,0x01, + 0x35,0x01,0x03,0x0a,0xfd,0xcd,0x02,0x33,0xfd,0x41, + 0x02,0xbf,0x04,0x11,0xfe,0xc2,0xfe,0xc1,0x8f,0x01, + 0x9e,0x61,0x01,0x9b,0x00,0x00,0x00,0x02,0x00,0x4b, + 0x01,0xc3,0x03,0x09,0x03,0xdf,0x00,0x03,0x00,0x07, + 0x00,0x00,0x01,0x21,0x35,0x21,0x11,0x21,0x35,0x21, + 0x03,0x09,0xfd,0x42,0x02,0xbe,0xfd,0x42,0x02,0xbe, + 0x03,0x65,0x7a,0xfd,0xe4,0x7b,0x00,0x01,0x00,0x49, + 0x01,0x05,0x03,0x09,0x04,0x9f,0x00,0x06,0x00,0x00, + 0x01,0x15,0x01,0x35,0x09,0x01,0x35,0x03,0x09,0xfd, + 0x40,0x02,0x34,0xfd,0xcc,0x03,0x04,0x61,0xfe,0x62, + 0x8f,0x01,0x3f,0x01,0x3e,0x8e,0x00,0x02,0x00,0x1f, + 0xff,0xed,0x02,0x52,0x05,0xcb,0x00,0x15,0x00,0x1d, + 0x00,0x00,0x13,0x36,0x20,0x16,0x15,0x14,0x0e,0x02, + 0x1d,0x01,0x23,0x35,0x34,0x36,0x37,0x3e,0x01,0x34, + 0x26,0x22,0x07,0x13,0x32,0x16,0x14,0x06,0x23,0x22, + 0x34,0x1f,0x78,0x01,0x22,0x99,0x3d,0xa5,0x29,0x80, + 0x2e,0x42,0x53,0x31,0x54,0xa9,0x60,0xad,0x32,0x39, + 0x39,0x32,0x6a,0x05,0x76,0x55,0xb3,0xa6,0x74,0x94, + 0xe3,0x6f,0x5b,0x2c,0x39,0x70,0x8e,0x55,0x75,0x83, + 0xc1,0x6b,0x40,0xfb,0xe6,0x3f,0x7c,0x3f,0xfa,0x00, + 0x00,0x00,0x00,0x02,0x00,0x62,0xff,0x50,0x04,0xc6, + 0x05,0xc2,0x00,0x2f,0x00,0x3a,0x00,0x00,0x05,0x22, + 0x00,0x11,0x10,0x00,0x21,0x32,0x16,0x12,0x10,0x02, + 0x23,0x22,0x27,0x23,0x0e,0x01,0x23,0x22,0x26,0x35, + 0x34,0x36,0x33,0x32,0x17,0x03,0x15,0x14,0x16,0x33, + 0x32,0x11,0x10,0x02,0x23,0x22,0x06,0x02,0x15,0x10, + 0x12,0x33,0x32,0x37,0x15,0x06,0x03,0x22,0x06,0x15, + 0x14,0x33,0x32,0x36,0x37,0x13,0x26,0x02,0x7a,0xfe, + 0xfe,0xe6,0x01,0x48,0x01,0x11,0xa1,0xee,0x7c,0x82, + 0x7c,0x99,0x0e,0x09,0x17,0x55,0x42,0x64,0x6f,0x9c, + 0x8c,0x62,0x60,0x14,0x2e,0x2e,0x79,0xd4,0xb2,0x8f, + 0xd8,0x71,0xd9,0xc2,0x94,0x7b,0x79,0x61,0x47,0x4f, + 0x63,0x2e,0x32,0x09,0x0f,0x1f,0xb0,0x01,0x8a,0x01, + 0x6a,0x01,0x9c,0x01,0xe2,0xba,0xfe,0xb4,0xfe,0x2b, + 0xff,0x00,0xb8,0x5d,0x5b,0xbb,0xaf,0xe4,0xfa,0x21, + 0xfe,0x26,0x35,0x55,0x4b,0x01,0x88,0x01,0x18,0x01, + 0x4c,0xc3,0xfe,0xaa,0xdc,0xfe,0xcb,0xfe,0xa4,0x4b, + 0x7a,0x46,0x04,0x70,0xc1,0xb1,0xef,0x9b,0xa5,0x01, + 0x18,0x09,0x00,0x02,0x00,0x00,0x00,0x00,0x03,0x89, + 0x05,0xb7,0x00,0x09,0x00,0x13,0x00,0x00,0x01,0x33, + 0x16,0x01,0x23,0x03,0x21,0x03,0x23,0x00,0x17,0x27, + 0x26,0x27,0x0e,0x03,0x07,0x21,0x01,0x63,0xbd,0x3d, + 0x01,0x2c,0x9d,0x72,0xfe,0x94,0x70,0x9e,0x01,0x26, + 0xd9,0x20,0x13,0x0b,0x10,0x2d,0x16,0x36,0x0b,0x01, + 0x2d,0x05,0xb7,0xf7,0xfb,0x40,0x01,0xdc,0xfe,0x24, + 0x04,0xbc,0xcc,0x8f,0x55,0x56,0x7d,0xca,0x61,0xe4, + 0x30,0x00,0x00,0x03,0x00,0x95,0x00,0x00,0x03,0x69, + 0x05,0xb6,0x00,0x0e,0x00,0x16,0x00,0x1e,0x00,0x00, + 0x13,0x21,0x20,0x11,0x14,0x06,0x07,0x15,0x1e,0x01, + 0x15,0x14,0x06,0x23,0x21,0x13,0x11,0x33,0x32,0x36, + 0x35,0x34,0x23,0x03,0x11,0x33,0x32,0x11,0x34,0x26, + 0x23,0x95,0x01,0x37,0x01,0x7f,0x6e,0x67,0x7c,0x77, + 0xbb,0xa6,0xfe,0x8d,0x96,0xa5,0x76,0x68,0xe3,0xa0, + 0xc4,0xda,0x7b,0x73,0x05,0xb6,0xfe,0x9c,0x8c,0xac, + 0x14,0x08,0x1c,0xaa,0x96,0xc4,0xde,0x05,0x2c,0xfe, + 0x13,0x81,0x88,0xe4,0xfd,0x8c,0xfd,0xd2,0x01,0x22, + 0x82,0x8a,0x00,0x01,0x00,0x66,0xff,0xec,0x03,0x4a, + 0x05,0xcc,0x00,0x13,0x00,0x00,0x05,0x22,0x00,0x10, + 0x12,0x33,0x32,0x17,0x07,0x26,0x23,0x22,0x02,0x10, + 0x12,0x33,0x32,0x37,0x15,0x06,0x02,0x44,0xdd,0xfe, + 0xff,0xfd,0xe4,0x8c,0x77,0x3c,0x5f,0x65,0x97,0xad, + 0xb0,0x9b,0x75,0x62,0x58,0x14,0x01,0x89,0x02,0xbf, + 0x01,0x98,0x4a,0x83,0x3f,0xfe,0xb9,0xfd,0xc7,0xfe, + 0xbb,0x34,0x8c,0x35,0x00,0x02,0x00,0x95,0x00,0x00, + 0x03,0xae,0x05,0xb6,0x00,0x07,0x00,0x0f,0x00,0x00, + 0x13,0x21,0x32,0x12,0x10,0x02,0x23,0x21,0x13,0x11, + 0x33,0x20,0x11,0x10,0x02,0x23,0x95,0x01,0x34,0xea, + 0xfb,0xfc,0xf8,0xfe,0xdb,0x9c,0x85,0x01,0x57,0xa7, + 0xa3,0x05,0xb6,0xfe,0x90,0xfd,0x30,0xfe,0x8a,0x05, + 0x2c,0xfb,0x5e,0x02,0x58,0x01,0x21,0x01,0x29,0x00, + 0x00,0x00,0x00,0x01,0x00,0x96,0x00,0x00,0x02,0xd2, + 0x05,0xb6,0x00,0x0b,0x00,0x00,0x01,0x21,0x11,0x21, + 0x15,0x21,0x11,0x21,0x15,0x21,0x11,0x21,0x02,0xd2, + 0xfe,0x5f,0x01,0x88,0xfe,0x78,0x01,0xa1,0xfd,0xc4, + 0x02,0x3c,0x05,0x29,0xfe,0x1a,0x8d,0xfd,0xd8,0x8e, + 0x05,0xb6,0x00,0x00,0x00,0x01,0x00,0x96,0x00,0x00, + 0x02,0xd2,0x05,0xb6,0x00,0x09,0x00,0x00,0x01,0x21, + 0x11,0x21,0x15,0x21,0x11,0x23,0x11,0x21,0x02,0xd2, + 0xfe,0x5f,0x01,0x89,0xfe,0x77,0x9b,0x02,0x3c,0x05, + 0x29,0xfd,0xdb,0x8d,0xfd,0x89,0x05,0xb6,0x00,0x01, + 0x00,0x66,0xff,0xec,0x03,0xd3,0x05,0xcb,0x00,0x18, + 0x00,0x00,0x01,0x11,0x06,0x23,0x22,0x00,0x10,0x00, + 0x21,0x32,0x17,0x06,0x07,0x26,0x23,0x22,0x02,0x10, + 0x12,0x33,0x32,0x37,0x11,0x23,0x35,0x03,0xd3,0xad, + 0xc0,0xf4,0xfe,0xf4,0x01,0x1d,0x01,0x04,0xaa,0x96, + 0x32,0x0a,0x86,0x78,0xbc,0xca,0xbc,0xaa,0x75,0x57, + 0xd0,0x02,0xf9,0xfd,0x39,0x46,0x01,0x8b,0x02,0xc8, + 0x01,0x8c,0x5d,0x6f,0x14,0x53,0xfe,0xc1,0xfd,0xba, + 0xfe,0xc0,0x1f,0x01,0xd3,0x8e,0x00,0x01,0x00,0x96, + 0x00,0x00,0x03,0x99,0x05,0xb6,0x00,0x0b,0x00,0x00, + 0x21,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x11,0x21, + 0x11,0x33,0x03,0x99,0x9c,0xfe,0x34,0x9b,0x9b,0x01, + 0xcc,0x9c,0x02,0xb5,0xfd,0x4b,0x05,0xb6,0xfd,0x8d, + 0x02,0x73,0x00,0x00,0x00,0x01,0x00,0xa6,0x00,0x00, + 0x01,0x3c,0x05,0xb6,0x00,0x03,0x00,0x00,0x21,0x23, + 0x11,0x33,0x01,0x3c,0x96,0x96,0x05,0xb6,0x00,0x01, + 0xff,0x91,0xfe,0x7d,0x01,0x2a,0x05,0xb6,0x00,0x0e, + 0x00,0x00,0x01,0x11,0x16,0x06,0x23,0x22,0x23,0x22, + 0x27,0x35,0x16,0x32,0x36,0x35,0x11,0x01,0x2a,0x01, + 0x91,0x80,0x02,0x01,0x51,0x35,0x37,0x85,0x42,0x05, + 0xb6,0xfa,0x49,0xb8,0xc9,0x19,0x8b,0x14,0x71,0x7a, + 0x05,0xbd,0x00,0x00,0x00,0x01,0x00,0x95,0x00,0x00, + 0x03,0x7f,0x05,0xb6,0x00,0x0f,0x00,0x00,0x21,0x23, + 0x11,0x33,0x11,0x36,0x01,0x33,0x01,0x16,0x00,0x17, + 0x23,0x02,0x27,0x07,0x01,0x31,0x9c,0x9c,0x2f,0x01, + 0x64,0xa7,0xfe,0x9b,0x33,0x01,0x00,0x46,0xa9,0xfc, + 0x3a,0x6f,0x05,0xb6,0xfd,0x0a,0x62,0x02,0x94,0xfd, + 0x80,0x6f,0xfd,0xd0,0x97,0x02,0x36,0x80,0x88,0x00, + 0x00,0x00,0x00,0x01,0x00,0x96,0x00,0x00,0x02,0xc2, + 0x05,0xb6,0x00,0x05,0x00,0x00,0x25,0x21,0x15,0x21, + 0x11,0x33,0x01,0x31,0x01,0x91,0xfd,0xd4,0x9b,0x8e, + 0x8e,0x05,0xb6,0x00,0x00,0x01,0x00,0x95,0x00,0x00, + 0x05,0x22,0x05,0xb6,0x00,0x17,0x00,0x00,0x21,0x23, + 0x11,0x34,0x37,0x23,0x01,0x23,0x01,0x23,0x16,0x15, + 0x11,0x23,0x11,0x33,0x01,0x16,0x17,0x33,0x36,0x37, + 0x01,0x33,0x05,0x22,0x96,0x0b,0x08,0xfe,0xa1,0xac, + 0xfe,0x9f,0x09,0x0d,0x92,0xeb,0x01,0x21,0x23,0x11, + 0x08,0x0e,0x29,0x01,0x1e,0xf0,0x04,0x0b,0x61,0xa8, + 0xfa,0xec,0x05,0x16,0xb5,0x54,0xfb,0xf3,0x05,0xb6, + 0xfb,0xd7,0x81,0x68,0x55,0x92,0x04,0x2b,0x00,0x01, + 0x00,0x96,0x00,0x00,0x03,0xec,0x05,0xb6,0x00,0x0f, + 0x00,0x00,0x21,0x23,0x01,0x23,0x16,0x15,0x11,0x23, + 0x11,0x33,0x01,0x33,0x26,0x35,0x11,0x33,0x03,0xec, + 0xc2,0xfd,0xf9,0x0a,0x10,0x93,0xc3,0x02,0x04,0x07, + 0x0b,0x93,0x04,0xcc,0x80,0x86,0xfc,0x3a,0x05,0xb6, + 0xfb,0x42,0x97,0x73,0x03,0xb4,0x00,0x00,0x00,0x02, + 0x00,0x66,0xff,0xec,0x03,0xf5,0x05,0xcb,0x00,0x08, + 0x00,0x11,0x00,0x00,0x01,0x32,0x12,0x10,0x02,0x20, + 0x02,0x11,0x10,0x05,0x22,0x02,0x10,0x12,0x20,0x12, + 0x11,0x10,0x02,0x30,0xdb,0xea,0xeb,0xfe,0x44,0xe8, + 0x01,0xca,0x94,0x96,0x96,0x01,0x23,0x96,0x05,0xcb, + 0xfe,0x7a,0xfd,0x2e,0xfe,0x79,0x01,0x87,0x01,0x6c, + 0x02,0xec,0x8e,0xfe,0xcb,0xfd,0xa8,0xfe,0xca,0x01, + 0x33,0x01,0x30,0x02,0x60,0x00,0x00,0x00,0x00,0x02, + 0x00,0x95,0x00,0x00,0x03,0x36,0x05,0xb6,0x00,0x09, + 0x00,0x11,0x00,0x00,0x13,0x21,0x32,0x16,0x15,0x10, + 0x21,0x23,0x11,0x23,0x13,0x11,0x33,0x32,0x36,0x10, + 0x26,0x23,0x95,0x01,0x01,0xd5,0xcb,0xfe,0x57,0x5c, + 0x9c,0x9c,0x53,0x93,0x82,0x81,0x88,0x05,0xb6,0xd2, + 0xdc,0xfe,0x3b,0xfd,0xbd,0x05,0x2c,0xfd,0xa1,0x91, + 0x01,0x41,0x8d,0x00,0x00,0x00,0x00,0x02,0x00,0x66, + 0xfe,0xa4,0x03,0xf5,0x05,0xcb,0x00,0x10,0x00,0x19, + 0x00,0x00,0x05,0x22,0x02,0x11,0x10,0x21,0x32,0x12, + 0x11,0x10,0x02,0x07,0x13,0x23,0x03,0x26,0x06,0x03, + 0x22,0x02,0x10,0x12,0x20,0x12,0x11,0x10,0x02,0x2d, + 0xdf,0xe8,0x01,0xca,0xdb,0xea,0x8a,0x84,0xe7,0xbb, + 0xbf,0x07,0x1a,0x03,0x94,0x96,0x96,0x01,0x23,0x96, + 0x14,0x01,0x87,0x01,0x6c,0x02,0xec,0xfe,0x7a,0xfe, + 0x98,0xfe,0xea,0xfe,0x96,0x46,0xfe,0x8d,0x01,0x4b, + 0x01,0x04,0x05,0x51,0xfe,0xcb,0xfd,0xa8,0xfe,0xca, + 0x01,0x33,0x01,0x30,0x02,0x60,0x00,0x02,0x00,0x96, + 0x00,0x00,0x03,0x7b,0x05,0xb6,0x00,0x0d,0x00,0x15, + 0x00,0x00,0x13,0x33,0x32,0x16,0x15,0x14,0x06,0x07, + 0x01,0x23,0x01,0x23,0x11,0x23,0x13,0x11,0x33,0x32, + 0x36,0x10,0x26,0x23,0x96,0xfb,0xd9,0xcd,0x69,0x72, + 0x01,0x1f,0xaa,0xfe,0xfd,0x9d,0x9b,0x9b,0x73,0x79, + 0x7c,0x7e,0x8a,0x05,0xb6,0xcc,0xd1,0x96,0xc2,0x32, + 0xfd,0x71,0x02,0x68,0xfd,0x98,0x05,0x28,0xfd,0xc9, + 0x92,0x01,0x23,0x82,0x00,0x00,0x00,0x01,0x00,0x50, + 0xff,0xec,0x02,0xe9,0x05,0xcb,0x00,0x1d,0x00,0x00, + 0x25,0x32,0x36,0x34,0x26,0x27,0x2e,0x01,0x10,0x36, + 0x20,0x17,0x06,0x07,0x26,0x22,0x06,0x14,0x16,0x17, + 0x1e,0x01,0x15,0x14,0x06,0x20,0x27,0x35,0x1e,0x01, + 0x01,0x6f,0x64,0x7b,0x6e,0x64,0x9f,0x81,0xc7,0x01, + 0x3c,0x7b,0x13,0x24,0x74,0xc5,0x75,0x56,0x8a,0x92, + 0x82,0xcb,0xfe,0xa8,0x76,0x3c,0x9c,0x79,0x90,0xcf, + 0x8b,0x3d,0x59,0xb8,0x01,0x44,0xd6,0x48,0x2d,0x5a, + 0x3e,0x83,0xd0,0x7b,0x4d,0x4f,0xc2,0x89,0xbb,0xde, + 0x3a,0xa0,0x23,0x2a,0x00,0x00,0x00,0x01,0x00,0x12, + 0x00,0x00,0x02,0xec,0x05,0xb6,0x00,0x07,0x00,0x00, + 0x01,0x21,0x11,0x23,0x11,0x21,0x35,0x21,0x02,0xec, + 0xfe,0xe1,0x9b,0xfe,0xe0,0x02,0xda,0x05,0x28,0xfa, + 0xd8,0x05,0x28,0x8e,0x00,0x00,0x00,0x01,0x00,0x8b, + 0xff,0xec,0x03,0x96,0x05,0xb6,0x00,0x0f,0x00,0x00, + 0x01,0x11,0x14,0x02,0x20,0x02,0x35,0x11,0x33,0x11, + 0x14,0x16,0x32,0x36,0x35,0x11,0x03,0x96,0xc4,0xfe, + 0x81,0xc8,0x9c,0x7a,0xe4,0x76,0x05,0xb6,0xfc,0x33, + 0xfc,0xfe,0xff,0x01,0x06,0xf8,0x03,0xcc,0xfc,0x25, + 0xad,0xb3,0xb4,0xad,0x03,0xda,0x00,0x01,0x00,0x00, + 0x00,0x00,0x03,0x6b,0x05,0xb6,0x00,0x0c,0x00,0x00, + 0x21,0x23,0x02,0x03,0x33,0x12,0x13,0x16,0x17,0x36, + 0x37,0x13,0x33,0x02,0x12,0xbb,0x58,0xff,0x9e,0x78, + 0x67,0x21,0x14,0x13,0x16,0xf2,0x9e,0x01,0x75,0x04, + 0x41,0xfd,0xe8,0xfe,0x40,0x96,0xa8,0x8f,0x69,0x04, + 0x1e,0x00,0x00,0x01,0x00,0x0c,0x00,0x00,0x05,0xb0, + 0x05,0xb6,0x00,0x22,0x00,0x00,0x01,0x02,0x03,0x23, + 0x03,0x2e,0x05,0x27,0x0f,0x01,0x06,0x07,0x03,0x23, + 0x02,0x03,0x33,0x12,0x17,0x12,0x17,0x36,0x37,0x13, + 0x33,0x13,0x16,0x17,0x36,0x37,0x13,0x05,0xb0,0x3a, + 0xed,0xc0,0x93,0x05,0x17,0x07,0x11,0x0a,0x11,0x0a, + 0x0c,0x0f,0x2a,0x14,0x90,0xbe,0xda,0x50,0x9d,0x7e, + 0x2a,0x42,0x06,0x1f,0x12,0xc1,0xa8,0xa5,0x2b,0x22, + 0x1e,0x19,0xb8,0x05,0xb6,0xfe,0xe4,0xfb,0x66,0x02, + 0xe5,0x19,0x6c,0x23,0x5a,0x48,0x78,0x4d,0x58,0x5f, + 0xe6,0x72,0xfd,0x1b,0x04,0x32,0x01,0x84,0xfd,0x75, + 0xe9,0xfe,0x8b,0x31,0xe2,0x61,0x03,0xd7,0xfc,0xbb, + 0xdc,0xfa,0xf2,0x76,0x03,0xb3,0x00,0x01,0x00,0x0d, + 0x00,0x00,0x03,0x11,0x05,0xb6,0x00,0x0b,0x00,0x00, + 0x09,0x01,0x23,0x0b,0x01,0x23,0x09,0x01,0x33,0x1b, + 0x01,0x33,0x01,0xf6,0x01,0x1b,0xa2,0xd8,0xea,0xa0, + 0x01,0x3c,0xfe,0xe9,0xa0,0xd1,0xc4,0xa1,0x02,0xf0, + 0xfd,0x10,0x02,0x6f,0xfd,0x91,0x03,0x03,0x02,0xb3, + 0xfd,0xca,0x02,0x36,0x00,0x00,0x00,0x01,0x00,0x00, + 0x00,0x00,0x03,0x09,0x05,0xb6,0x00,0x08,0x00,0x00, + 0x21,0x23,0x11,0x01,0x33,0x1b,0x01,0x33,0x01,0x01, + 0xd1,0x9b,0xfe,0xca,0xa4,0xe1,0xe0,0xa4,0xfe,0xc8, + 0x02,0x3c,0x03,0x7a,0xfd,0x48,0x02,0xb8,0xfc,0x8a, + 0x00,0x01,0x00,0x34,0x00,0x00,0x02,0xa7,0x05,0xb6, + 0x00,0x09,0x00,0x00,0x25,0x15,0x21,0x35,0x01,0x21, + 0x35,0x21,0x15,0x01,0x02,0xa7,0xfd,0x8d,0x01,0xb7, + 0xfe,0x52,0x02,0x5d,0xfe,0x45,0x8e,0x8e,0x7a,0x04, + 0xad,0x8f,0x7b,0xfb,0x53,0x00,0x00,0x00,0x00,0x01, + 0x00,0xa0,0xfe,0xbc,0x02,0x45,0x05,0xb6,0x00,0x07, + 0x00,0x00,0x01,0x21,0x11,0x21,0x15,0x21,0x11,0x21, + 0x02,0x45,0xfe,0xec,0x01,0x14,0xfe,0x5b,0x01,0xa5, + 0x05,0x38,0xfa,0x03,0x7f,0x06,0xfa,0x00,0x00,0x01, + 0x00,0x27,0x00,0x00,0x02,0xd1,0x05,0xb6,0x00,0x03, + 0x00,0x00,0x21,0x23,0x01,0x33,0x02,0xd1,0x99,0xfd, + 0xef,0x95,0x05,0xb6,0x00,0x00,0x00,0x01,0x00,0x41, + 0xfe,0xbc,0x01,0xe6,0x05,0xb6,0x00,0x07,0x00,0x00, + 0x01,0x21,0x35,0x21,0x11,0x21,0x35,0x21,0x01,0xe6, + 0xfe,0x5b,0x01,0x15,0xfe,0xeb,0x01,0xa5,0xfe,0xbc, + 0x7f,0x05,0xfd,0x7e,0x00,0x00,0x00,0x01,0x00,0x1d, + 0x02,0xa9,0x03,0x70,0x05,0xb7,0x00,0x06,0x00,0x00, + 0x01,0x23,0x09,0x01,0x23,0x01,0x33,0x03,0x70,0x8f, + 0xfe,0xdf,0xfe,0xea,0x8d,0x01,0x73,0x5a,0x02,0xa9, + 0x02,0x66,0xfd,0x9a,0x03,0x0e,0x00,0x01,0xff,0xfc, + 0xfe,0xe3,0x03,0x1e,0xff,0x48,0x00,0x03,0x00,0x00, + 0x01,0x21,0x35,0x21,0x03,0x1e,0xfc,0xde,0x03,0x22, + 0xfe,0xe3,0x65,0x00,0x00,0x01,0x01,0x89,0x04,0xd9, + 0x02,0xff,0x06,0x21,0x00,0x0a,0x00,0x00,0x01,0x33, + 0x1e,0x01,0x17,0x15,0x23,0x26,0x27,0x26,0x27,0x01, + 0x89,0xbd,0x1d,0x6b,0x31,0x5e,0x44,0x5a,0x59,0x21, + 0x06,0x21,0x43,0xb1,0x3d,0x17,0x38,0x60,0x61,0x3d, + 0x00,0x00,0x00,0x02,0x00,0x46,0xff,0xee,0x02,0xc8, + 0x04,0x5c,0x00,0x15,0x00,0x20,0x00,0x00,0x13,0x27, + 0x36,0x20,0x16,0x15,0x11,0x23,0x27,0x23,0x06,0x23, + 0x22,0x26,0x10,0x36,0x3f,0x01,0x35,0x34,0x26,0x22, + 0x13,0x35,0x06,0x07,0x0e,0x01,0x15,0x14,0x33,0x32, + 0x36,0xcc,0x3a,0x82,0x01,0x26,0x8e,0x74,0x1a,0x05, + 0x52,0x9f,0x78,0x86,0xbc,0xb0,0x7f,0x48,0xb2,0xfa, + 0x22,0x44,0x76,0x71,0x89,0x5c,0x68,0x03,0x9b,0x6f, + 0x52,0xb6,0xc1,0xfd,0x1b,0x98,0xaa,0xa8,0x01,0x3a, + 0xb3,0x08,0x06,0x56,0x80,0x77,0xfd,0xda,0x6a,0x01, + 0x04,0x06,0x77,0x73,0xc7,0xb3,0x00,0x02,0x00,0x86, + 0xff,0xec,0x03,0x4e,0x06,0x14,0x00,0x0f,0x00,0x19, + 0x00,0x00,0x01,0x07,0x33,0x36,0x20,0x12,0x10,0x02, + 0x20,0x27,0x23,0x06,0x07,0x23,0x11,0x33,0x11,0x15, + 0x14,0x16,0x32,0x36,0x10,0x26,0x22,0x06,0x01,0x1d, + 0x07,0x0a,0x57,0x01,0x31,0xa6,0xa5,0xfe,0xcd,0x59, + 0x0b,0x08,0x0f,0x75,0x97,0x66,0xcf,0x60,0x60,0xd3, + 0x62,0x04,0x48,0x92,0xa4,0xfe,0xe0,0xfd,0xd7,0xfe, + 0xdb,0xa2,0x37,0x57,0x06,0x14,0xfc,0x1b,0x1a,0xd6, + 0xce,0xd7,0x01,0xb7,0xd5,0xc2,0x00,0x00,0x00,0x01, + 0x00,0x58,0xff,0xec,0x02,0x7e,0x04,0x5b,0x00,0x13, + 0x00,0x00,0x05,0x22,0x02,0x11,0x10,0x21,0x32,0x17, + 0x07,0x26,0x23,0x22,0x11,0x14,0x16,0x33,0x32,0x37, + 0x15,0x06,0x01,0xba,0xaf,0xb3,0x01,0x62,0x72,0x52, + 0x32,0x47,0x3c,0xd5,0x6b,0x70,0x4a,0x5c,0x59,0x14, + 0x01,0x1d,0x01,0x14,0x02,0x3e,0x30,0x7c,0x25,0xfe, + 0x4b,0xdc,0xd0,0x2a,0x83,0x2e,0x00,0x02,0x00,0x57, + 0xff,0xec,0x03,0x1f,0x06,0x14,0x00,0x12,0x00,0x1c, + 0x00,0x00,0x21,0x23,0x26,0x27,0x23,0x06,0x20,0x02, + 0x10,0x12,0x33,0x32,0x16,0x17,0x33,0x26,0x27,0x11, + 0x33,0x03,0x35,0x34,0x26,0x22,0x06,0x10,0x16,0x32, + 0x36,0x03,0x1f,0x75,0x0f,0x05,0x09,0x53,0xfe,0xc3, + 0xa6,0xa4,0x99,0x47,0x80,0x29,0x0b,0x05,0x02,0x97, + 0x98,0x67,0xd0,0x5c,0x5f,0xca,0x6a,0x6a,0x2b,0xa9, + 0x01,0x20,0x02,0x27,0x01,0x28,0x54,0x4c,0x4d,0x4a, + 0x01,0xc2,0xfb,0xd7,0x35,0xe2,0xd1,0xdb,0xfe,0x4d, + 0xd8,0xbe,0x00,0x02,0x00,0x58,0xff,0xec,0x02,0xfb, + 0x04,0x5b,0x00,0x10,0x00,0x16,0x00,0x00,0x05,0x22, + 0x02,0x10,0x12,0x33,0x32,0x12,0x1d,0x01,0x21,0x12, + 0x33,0x32,0x37,0x15,0x06,0x13,0x34,0x26,0x23,0x22, + 0x03,0x01,0xdc,0xb9,0xcb,0xb6,0xa9,0x96,0xae,0xfd, + 0xf7,0x06,0xf4,0x72,0x76,0x70,0x01,0x60,0x53,0xad, + 0x10,0x14,0x01,0x25,0x02,0x20,0x01,0x2a,0xfe,0xfb, + 0xdf,0x6a,0xfe,0x62,0x47,0x86,0x44,0x02,0x9a,0x9d, + 0xbb,0xfe,0xa8,0x00,0x00,0x00,0x00,0x01,0x00,0x16, + 0x00,0x00,0x02,0x33,0x06,0x1f,0x00,0x16,0x00,0x00, + 0x13,0x34,0x36,0x33,0x32,0x17,0x07,0x26,0x23,0x0e, + 0x01,0x1d,0x01,0x33,0x15,0x23,0x11,0x23,0x11,0x23, + 0x35,0x36,0x37,0x9e,0x76,0x87,0x52,0x46,0x2d,0x33, + 0x2f,0x3f,0x31,0xaf,0xaf,0x96,0x88,0x19,0x6f,0x04, + 0xa1,0xc7,0xb7,0x20,0x7e,0x19,0x02,0x6e,0x8c,0x58, + 0x7e,0xfc,0x38,0x03,0xc8,0x50,0x0b,0x2b,0x00,0x03, + 0x00,0x1d,0xfe,0x14,0x03,0x13,0x04,0x5b,0x00,0x2b, + 0x00,0x34,0x00,0x3f,0x00,0x00,0x25,0x33,0x32,0x16, + 0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x2e, + 0x01,0x34,0x36,0x37,0x2e,0x01,0x35,0x34,0x36,0x33, + 0x32,0x17,0x36,0x32,0x17,0x15,0x07,0x1e,0x01,0x15, + 0x14,0x06,0x2b,0x01,0x22,0x27,0x0e,0x01,0x14,0x16, + 0x12,0x26,0x22,0x06,0x14,0x16,0x33,0x32,0x35,0x03, + 0x23,0x22,0x06,0x14,0x16,0x33,0x32,0x36,0x35,0x34, + 0x01,0x84,0x63,0x91,0x9b,0xe7,0xc4,0xa0,0xab,0xd7, + 0x34,0x3d,0x38,0x42,0x4e,0x54,0xa1,0x90,0x3d,0x3c, + 0x0d,0x82,0x77,0x8f,0x1a,0x21,0xa4,0x83,0x08,0x1e, + 0x10,0x2b,0x2c,0x44,0xdc,0x4e,0x96,0x51,0x53,0x4a, + 0x98,0x5e,0x4c,0x61,0x6c,0x64,0x61,0x81,0x91,0xaa, + 0x9a,0x94,0xa7,0xc1,0x99,0x8f,0xcb,0x4e,0x16,0x51, + 0x64,0x4d,0x33,0x26,0xab,0x72,0xb1,0xc7,0x16,0x01, + 0x01,0x60,0x15,0x25,0x81,0x43,0xa4,0xc5,0x04,0x20, + 0x3b,0x4f,0x2e,0x02,0xbb,0x87,0x8a,0xf9,0x7e,0xfd, + 0xfd,0x37,0x73,0xbf,0x65,0x7c,0x6d,0xae,0x00,0x01, + 0x00,0x86,0x00,0x00,0x03,0x1d,0x06,0x14,0x00,0x16, + 0x00,0x00,0x01,0x11,0x14,0x07,0x33,0x3e,0x01,0x33, + 0x32,0x16,0x15,0x11,0x23,0x11,0x34,0x26,0x23,0x22, + 0x06,0x15,0x11,0x23,0x11,0x01,0x1d,0x06,0x0a,0x21, + 0x7f,0x4c,0x8d,0x83,0x98,0x47,0x4f,0x6b,0x67,0x97, + 0x06,0x14,0xfe,0x3b,0x43,0x59,0x4e,0x5a,0xba,0xbc, + 0xfd,0x1b,0x02,0xd0,0x8a,0x7c,0xc9,0xcf,0xfd,0xc2, + 0x06,0x14,0x00,0x00,0x00,0x02,0x00,0x7a,0x00,0x00, + 0x01,0x2d,0x05,0xdf,0x00,0x07,0x00,0x0b,0x00,0x00, + 0x12,0x36,0x32,0x16,0x14,0x06,0x22,0x26,0x13,0x23, + 0x11,0x33,0x7a,0x32,0x52,0x2f,0x30,0x51,0x32,0xa5, + 0x98,0x98,0x05,0xa4,0x3b,0x3b,0x67,0x3b,0x3b,0xfa, + 0xc3,0x04,0x47,0x00,0x00,0x00,0x00,0x02,0xff,0xea, + 0xfe,0x14,0x01,0x2f,0x05,0xdf,0x00,0x07,0x00,0x14, + 0x00,0x00,0x12,0x36,0x32,0x16,0x14,0x06,0x22,0x26, + 0x17,0x11,0x10,0x23,0x22,0x27,0x35,0x16,0x33,0x32, + 0x36,0x35,0x11,0x7c,0x32,0x53,0x2e,0x2f,0x51,0x33, + 0xa5,0xdc,0x38,0x23,0x25,0x21,0x2f,0x2a,0x05,0xa4, + 0x3b,0x3b,0x66,0x3c,0x3c,0xf7,0xfb,0x08,0xfe,0xc5, + 0x14,0x85,0x11,0x58,0x5d,0x04,0xf6,0x00,0x00,0x01, + 0x00,0x86,0x00,0x00,0x03,0x10,0x06,0x14,0x00,0x0e, + 0x00,0x00,0x21,0x23,0x11,0x33,0x11,0x07,0x33,0x37, + 0x13,0x33,0x09,0x01,0x23,0x03,0x07,0x01,0x1e,0x98, + 0x98,0x09,0x09,0x3f,0xfc,0xa2,0xfe,0xfc,0x01,0x19, + 0x9f,0xe0,0x73,0x06,0x14,0xfc,0xdd,0xc3,0x75,0x01, + 0xa4,0xfe,0x5d,0xfd,0x5c,0x02,0x2c,0x89,0x00,0x01, + 0x00,0x86,0x00,0x00,0x01,0x1e,0x06,0x14,0x00,0x03, + 0x00,0x00,0x21,0x23,0x11,0x33,0x01,0x1e,0x98,0x98, + 0x06,0x14,0x00,0x01,0x00,0x86,0x00,0x00,0x04,0xf4, + 0x04,0x5b,0x00,0x22,0x00,0x00,0x01,0x17,0x33,0x36, + 0x33,0x32,0x17,0x3e,0x02,0x37,0x36,0x33,0x32,0x16, + 0x15,0x11,0x23,0x11,0x10,0x23,0x22,0x06,0x15,0x11, + 0x23,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11, + 0x01,0x01,0x10,0x0c,0x44,0xa5,0xb4,0x37,0x14,0x17, + 0x33,0x18,0x3f,0x4c,0x83,0x7f,0x97,0x93,0x66,0x5b, + 0x98,0x93,0x65,0x5c,0x97,0x04,0x46,0x94,0xa9,0xbe, + 0x22,0x25,0x3d,0x10,0x2a,0xc4,0xcd,0xfd,0x36,0x02, + 0xca,0x01,0x08,0xb7,0xc0,0xfd,0xa5,0x02,0xca,0x01, + 0x08,0xbd,0xd6,0xfd,0xc1,0x04,0x46,0x00,0x00,0x00, + 0x00,0x01,0x00,0x86,0x00,0x00,0x03,0x1d,0x04,0x5b, + 0x00,0x13,0x00,0x00,0x01,0x17,0x33,0x3e,0x01,0x33, + 0x32,0x16,0x15,0x11,0x23,0x11,0x10,0x23,0x22,0x06, + 0x19,0x01,0x23,0x11,0x01,0x01,0x10,0x0c,0x22,0x82, + 0x4f,0x88,0x85,0x98,0x93,0x7a,0x5b,0x97,0x04,0x46, + 0x94,0x50,0x59,0xb7,0xbe,0xfd,0x1a,0x02,0xd0,0x01, + 0x06,0xdb,0xfe,0xf5,0xfe,0x10,0x04,0x46,0x00,0x02, + 0x00,0x57,0xff,0xec,0x03,0x30,0x04,0x5b,0x00,0x07, + 0x00,0x0f,0x00,0x00,0x1a,0x01,0x20,0x12,0x10,0x02, + 0x20,0x02,0x01,0x22,0x06,0x10,0x16,0x33,0x32,0x10, + 0x57,0xbd,0x01,0x5a,0xc2,0xc0,0xfe,0xa7,0xc0,0x01, + 0x6c,0x6d,0x63,0x65,0x6b,0xd0,0x03,0x36,0x01,0x25, + 0xfe,0xd3,0xfd,0xe6,0xfe,0xd8,0x01,0x29,0x02,0xbf, + 0xd4,0xfe,0x4c,0xd9,0x03,0x61,0x00,0x02,0x00,0x86, + 0xfe,0x14,0x03,0x4e,0x04,0x58,0x00,0x12,0x00,0x1c, + 0x00,0x00,0x01,0x32,0x12,0x10,0x02,0x23,0x22,0x26, + 0x27,0x23,0x16,0x17,0x11,0x23,0x11,0x33,0x17,0x33, + 0x36,0x03,0x14,0x16,0x32,0x36,0x10,0x26,0x22,0x06, + 0x07,0x02,0x18,0x97,0x9f,0xa3,0x97,0x4f,0x7f,0x27, + 0x0b,0x09,0x01,0x98,0x78,0x16,0x0a,0x51,0x52,0x66, + 0xcf,0x60,0x5d,0xd3,0x64,0x01,0x04,0x58,0xfe,0xdb, + 0xfd,0xe3,0xfe,0xd6,0x53,0x4f,0x67,0x1f,0xfe,0x0c, + 0x06,0x32,0x94,0xa6,0xfd,0xd2,0xe3,0xd6,0xd7,0x01, + 0xb9,0xd3,0xbd,0xcd,0x00,0x00,0x00,0x02,0x00,0x57, + 0xfe,0x14,0x03,0x1f,0x04,0x57,0x00,0x12,0x00,0x1c, + 0x00,0x00,0x25,0x06,0x20,0x02,0x10,0x12,0x33,0x32, + 0x16,0x17,0x33,0x36,0x37,0x33,0x11,0x23,0x11,0x34, + 0x37,0x03,0x35,0x34,0x26,0x22,0x06,0x10,0x16,0x32, + 0x36,0x02,0x89,0x54,0xfe,0xc7,0xa5,0xa5,0x94,0x52, + 0x78,0x2b,0x0a,0x0c,0x07,0x7d,0x97,0x0a,0x0b,0x66, + 0xd0,0x5d,0x5f,0xcb,0x69,0x99,0xad,0x01,0x1f,0x02, + 0x2a,0x01,0x22,0x4c,0x55,0x60,0x30,0xf9,0xce,0x01, + 0xd5,0x3e,0x72,0x01,0x5a,0x2d,0xe1,0xd2,0xdb,0xfe, + 0x45,0xce,0xc4,0x00,0x00,0x00,0x00,0x01,0x00,0x86, + 0x00,0x00,0x02,0x4c,0x04,0x5c,0x00,0x0f,0x00,0x00, + 0x00,0x36,0x32,0x17,0x07,0x26,0x23,0x22,0x06,0x15, + 0x11,0x23,0x11,0x33,0x17,0x33,0x01,0x43,0x67,0x76, + 0x2c,0x19,0x24,0x26,0x57,0x74,0x98,0x7d,0x11,0x07, + 0x03,0xf8,0x64,0x0f,0x95,0x0e,0xde,0xaa,0xfd,0xc2, + 0x04,0x47,0xb9,0x00,0x00,0x00,0x00,0x01,0x00,0x46, + 0xff,0xec,0x02,0x69,0x04,0x5c,0x00,0x25,0x00,0x00, + 0x36,0x16,0x32,0x36,0x35,0x34,0x27,0x2e,0x03,0x27, + 0x26,0x35,0x34,0x37,0x36,0x20,0x17,0x07,0x26,0x22, + 0x06,0x15,0x14,0x1f,0x01,0x1e,0x02,0x17,0x16,0x15, + 0x14,0x06,0x20,0x27,0x35,0x68,0x8b,0x8f,0x58,0x18, + 0x07,0x2e,0x14,0x7e,0x3b,0x7a,0x55,0x57,0x01,0x0f, + 0x68,0x3e,0x5b,0xa0,0x55,0x3c,0x82,0x2b,0x33,0x3c, + 0x10,0x26,0x9f,0xfe,0xd6,0x5a,0xa2,0x2d,0x58,0x42, + 0x32,0x31,0x0f,0x2b,0x0f,0x5a,0x2f,0x61,0x9c,0x7d, + 0x4f,0x4f,0x44,0x76,0x38,0x54,0x44,0x58,0x2e,0x61, + 0x20,0x2a,0x40,0x1f,0x48,0x5b,0x91,0x92,0x3e,0x97, + 0x00,0x00,0x00,0x01,0x00,0x27,0xff,0xec,0x01,0xe7, + 0x05,0x42,0x00,0x14,0x00,0x00,0x01,0x33,0x15,0x23, + 0x11,0x14,0x16,0x32,0x37,0x15,0x06,0x23,0x22,0x26, + 0x35,0x11,0x23,0x35,0x3f,0x01,0x33,0x01,0x25,0xb6, + 0xb6,0x2e,0x6b,0x29,0x33,0x59,0x74,0x5a,0x66,0x6e, + 0x2c,0x64,0x04,0x46,0x7e,0xfd,0x4d,0x59,0x4b,0x11, + 0x7a,0x1c,0xb0,0xc0,0x02,0x6c,0x4d,0x32,0xfb,0x00, + 0x00,0x01,0x00,0x80,0xff,0xec,0x03,0x17,0x04,0x46, + 0x00,0x15,0x00,0x00,0x21,0x23,0x26,0x27,0x23,0x0e, + 0x01,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16, + 0x33,0x32,0x36,0x35,0x11,0x33,0x03,0x17,0x7b,0x08, + 0x0b,0x0a,0x24,0x80,0x4e,0x89,0x84,0x98,0x46,0x4c, + 0x6e,0x68,0x97,0x38,0x5d,0x50,0x59,0xc1,0xcf,0x02, + 0xca,0xfd,0x4b,0x95,0x8b,0xc0,0xd6,0x02,0x3f,0x00, + 0x00,0x00,0x00,0x01,0x00,0x06,0x00,0x00,0x02,0xdc, + 0x04,0x46,0x00,0x0c,0x00,0x00,0x21,0x23,0x01,0x33, + 0x16,0x17,0x12,0x13,0x33,0x3e,0x01,0x13,0x33,0x01, + 0xca,0xb8,0xfe,0xf4,0x9c,0x10,0x30,0x5c,0x2f,0x07, + 0x0a,0x1b,0xa7,0x9c,0x04,0x46,0x46,0xce,0xfe,0x7c, + 0xfe,0xea,0x4c,0x8d,0x02,0xd5,0x00,0x00,0x00,0x01, + 0x00,0x14,0x00,0x00,0x04,0xc4,0x04,0x46,0x00,0x1a, + 0x00,0x00,0x01,0x06,0x03,0x23,0x03,0x33,0x1a,0x01, + 0x17,0x33,0x36,0x37,0x13,0x33,0x13,0x16,0x17,0x33, + 0x36,0x13,0x33,0x06,0x03,0x23,0x03,0x26,0x27,0x02, + 0x6a,0x1a,0x99,0xbc,0xe7,0x97,0x61,0x3e,0x12,0x06, + 0x14,0x1e,0x7e,0xb4,0x7f,0x11,0x20,0x06,0x07,0xad, + 0x94,0x1c,0xd1,0xbd,0x90,0x14,0x09,0x03,0xa8,0xa9, + 0xfd,0x01,0x04,0x46,0xfe,0x2a,0xfe,0xa2,0x7e,0xb0, + 0x92,0x02,0x70,0xfd,0x8e,0x4a,0xf6,0x5d,0x03,0x55, + 0x82,0xfc,0x3c,0x02,0xeb,0x7e,0x3f,0x00,0x00,0x01, + 0x00,0x1c,0x00,0x00,0x02,0xce,0x04,0x47,0x00,0x0b, + 0x00,0x00,0x09,0x01,0x23,0x0b,0x01,0x23,0x01,0x03, + 0x33,0x1b,0x01,0x33,0x01,0xc3,0x01,0x0b,0x9f,0xbc, + 0xba,0x9d,0x01,0x0d,0xfb,0xa0,0xab,0xac,0x9d,0x02, + 0x2d,0xfd,0xd3,0x01,0xb0,0xfe,0x50,0x02,0x35,0x02, + 0x12,0xfe,0x69,0x01,0x97,0x00,0x00,0x00,0x00,0x01, + 0x00,0x06,0xfe,0x14,0x02,0xdc,0x04,0x46,0x00,0x1a, + 0x00,0x00,0x00,0x06,0x22,0x27,0x35,0x16,0x33,0x32, + 0x36,0x3f,0x01,0x01,0x33,0x13,0x16,0x17,0x33,0x36, + 0x37,0x12,0x37,0x33,0x02,0x03,0x0e,0x02,0x01,0x06, + 0x59,0x6b,0x36,0x2a,0x29,0x3e,0x4c,0x19,0x27,0xfe, + 0xdd,0x9c,0xa0,0x1c,0x16,0x07,0x15,0x18,0x6c,0x2b, + 0x9d,0x86,0x91,0x1c,0x29,0x3b,0xfe,0x40,0x2c,0x11, + 0x84,0x0e,0x61,0x6b,0x95,0x04,0x4a,0xfd,0x6b,0x73, + 0x93,0x8a,0x75,0x01,0xda,0xc2,0xfd,0xf4,0xfd,0xc0, + 0x6a,0x83,0x86,0x00,0x00,0x01,0x00,0x35,0x00,0x00, + 0x02,0x2f,0x04,0x47,0x00,0x09,0x00,0x00,0x25,0x15, + 0x21,0x35,0x01,0x21,0x35,0x21,0x15,0x01,0x02,0x2f, + 0xfe,0x06,0x01,0x47,0xfe,0xce,0x01,0xd6,0xfe,0xbd, + 0x7f,0x7f,0x6b,0x03,0x5c,0x80,0x72,0xfc,0xaa,0x00, + 0x00,0x00,0x00,0x01,0x00,0x51,0xfe,0xbc,0x02,0x90, + 0x05,0xb6,0x00,0x1f,0x00,0x00,0x01,0x11,0x0e,0x01, + 0x07,0x15,0x1e,0x01,0x15,0x11,0x14,0x16,0x17,0x15, + 0x2e,0x01,0x27,0x11,0x34,0x26,0x23,0x35,0x32,0x36, + 0x35,0x11,0x34,0x36,0x37,0x15,0x0e,0x01,0x01,0xc4, + 0x01,0x63,0x6b,0x6b,0x64,0x5a,0x72,0xb3,0xab,0x02, + 0x65,0x7a,0x78,0x67,0xaf,0xb1,0x6a,0x62,0x04,0x6d, + 0xfe,0xc8,0x6f,0x75,0x14,0x09,0x13,0x75,0x6c,0xfe, + 0xde,0x78,0x6d,0x01,0x7c,0x04,0x98,0x98,0x01,0x40, + 0x6f,0x5e,0x78,0x56,0x72,0x01,0x46,0x98,0x97,0x04, + 0x7c,0x01,0x63,0x00,0x00,0x00,0x00,0x01,0x01,0x7b, + 0xfe,0x1b,0x01,0xff,0x06,0x12,0x00,0x03,0x00,0x00, + 0x01,0x23,0x11,0x33,0x01,0xff,0x84,0x84,0xfe,0x1b, + 0x07,0xf7,0x00,0x00,0x00,0x01,0x00,0x50,0xfe,0xbc, + 0x02,0x90,0x05,0xb6,0x00,0x1d,0x00,0x00,0x01,0x11, + 0x14,0x16,0x33,0x15,0x22,0x06,0x15,0x11,0x10,0x05, + 0x35,0x3e,0x01,0x35,0x11,0x34,0x36,0x37,0x35,0x2e, + 0x01,0x35,0x11,0x34,0x26,0x27,0x35,0x04,0x01,0xb1, + 0x65,0x7a,0x73,0x6c,0xfe,0x9f,0x6c,0x62,0x63,0x6b, + 0x6a,0x64,0x62,0x6c,0x01,0x61,0x04,0x83,0xfe,0xba, + 0x6e,0x5a,0x78,0x55,0x78,0xfe,0xc0,0xfe,0xd4,0x08, + 0x7c,0x01,0x65,0x67,0x01,0x3a,0x6d,0x74,0x14,0x09, + 0x13,0x76,0x6f,0x01,0x38,0x68,0x64,0x01,0x7c,0x09, + 0x00,0x01,0x00,0x70,0x02,0x5b,0x03,0x14,0x03,0x4f, + 0x00,0x1c,0x00,0x00,0x01,0x22,0x27,0x2e,0x01,0x27, + 0x22,0x07,0x06,0x07,0x35,0x3e,0x01,0x33,0x1e,0x07, + 0x17,0x16,0x33,0x32,0x37,0x15,0x06,0x02,0x57,0x3c, + 0x41,0x0b,0x86,0x26,0x4e,0x57,0x0c,0x02,0x1c,0x66, + 0x29,0x22,0x26,0x0e,0x1b,0x0b,0x1d,0x08,0x20,0x03, + 0x4a,0x34,0x5d,0x5a,0x4d,0x02,0x5b,0x1c,0x04,0x43, + 0x09,0x45,0x0a,0x01,0x8d,0x19,0x2b,0x03,0x0d,0x04, + 0x0c,0x04,0x0e,0x05,0x0f,0x02,0x27,0x76,0x8a,0x6a, + 0x00,0x00,0x00,0x02,0x00,0x87,0xfe,0x81,0x01,0x5c, + 0x04,0x49,0x00,0x08,0x00,0x0c,0x00,0x00,0x12,0x36, + 0x32,0x16,0x14,0x06,0x23,0x22,0x35,0x13,0x23,0x13, + 0x33,0x87,0x37,0x65,0x39,0x39,0x32,0x6a,0xc9,0xbf, + 0x29,0x6d,0x04,0x09,0x40,0x3f,0x7e,0x3e,0x7e,0xfa, + 0xb5,0x04,0x24,0x00,0x00,0x01,0x00,0xa1,0xff,0xec, + 0x02,0xc7,0x05,0xc9,0x00,0x17,0x00,0x00,0x01,0x07, + 0x26,0x23,0x22,0x06,0x15,0x10,0x33,0x32,0x37,0x15, + 0x06,0x07,0x15,0x23,0x35,0x24,0x10,0x25,0x35,0x33, + 0x15,0x16,0x02,0xc7,0x32,0x4e,0x35,0x6e,0x66,0xd3, + 0x51,0x5a,0x3a,0x5c,0x6e,0xfe,0xe9,0x01,0x17,0x6e, + 0x5c,0x04,0xf5,0x7e,0x24,0xd9,0xd9,0xfe,0x54,0x2d, + 0x86,0x23,0x0b,0xca,0xd0,0x39,0x03,0xed,0x3b,0xac, + 0xa5,0x09,0x00,0x00,0x00,0x01,0x00,0x4f,0x00,0x00, + 0x03,0x17,0x05,0xcb,0x00,0x1e,0x00,0x00,0x13,0x11, + 0x34,0x36,0x33,0x32,0x17,0x07,0x26,0x23,0x22,0x06, + 0x15,0x11,0x33,0x15,0x23,0x15,0x14,0x07,0x06,0x07, + 0x21,0x15,0x21,0x35,0x36,0x3d,0x01,0x23,0x35,0xec, + 0x8b,0xa1,0x8d,0x6e,0x41,0x55,0x61,0x4f,0x47,0xf7, + 0xf7,0x0b,0x0b,0x67,0x02,0x0e,0xfd,0x3f,0x96,0x9d, + 0x03,0x1c,0x01,0x06,0xda,0xcf,0x53,0x79,0x43,0x75, + 0x7f,0xfe,0xce,0x7d,0x8c,0x4a,0x4a,0xa7,0x4a,0x8e, + 0x82,0x44,0xe4,0xf5,0x7d,0x00,0x00,0x02,0x00,0x71, + 0x01,0x12,0x03,0xf4,0x04,0x93,0x00,0x1a,0x00,0x22, + 0x00,0x00,0x01,0x16,0x10,0x07,0x16,0x17,0x07,0x27, + 0x06,0x20,0x27,0x07,0x27,0x37,0x26,0x10,0x37,0x27, + 0x37,0x17,0x36,0x20,0x17,0x36,0x37,0x17,0x0e,0x01, + 0x26,0x22,0x06,0x14,0x16,0x32,0x36,0x03,0x6e,0x4e, + 0x4e,0x42,0x43,0x54,0x86,0x68,0xfe,0xfb,0x64,0x82, + 0x53,0x83,0x4c,0x4c,0x85,0x53,0x85,0x69,0x01,0x01, + 0x66,0x43,0x42,0x56,0x2c,0x7d,0xa2,0xe6,0xa5,0xa1, + 0xe7,0xa5,0x03,0xbc,0x68,0xfe,0xfb,0x66,0x43,0x42, + 0x52,0x83,0x4b,0x4d,0x83,0x54,0x82,0x67,0x00,0xff, + 0x6a,0x85,0x54,0x86,0x4f,0x4e,0x42,0x43,0x52,0x2d, + 0xd3,0xa8,0xa1,0xe9,0xa1,0xa2,0x00,0x01,0x00,0x49, + 0x00,0x00,0x03,0x13,0x05,0xb6,0x00,0x1b,0x00,0x00, + 0x01,0x15,0x23,0x15,0x33,0x15,0x23,0x11,0x23,0x11, + 0x23,0x35,0x33,0x35,0x22,0x35,0x23,0x35,0x33,0x26, + 0x02,0x27,0x33,0x1b,0x01,0x33,0x02,0x03,0x02,0xe0, + 0xe4,0xe4,0xe4,0x9d,0xe1,0xe1,0x01,0xe0,0xbd,0x28, + 0xa2,0x28,0x9e,0xc8,0xc4,0xa0,0x52,0xa2,0x02,0xa1, + 0x6f,0xb5,0x6f,0xfe,0xf2,0x01,0x0e,0x6f,0xb4,0x01, + 0x6f,0x83,0x02,0x0e,0x84,0xfd,0x32,0x02,0xce,0xfe, + 0xf9,0xfd,0xf2,0x00,0x00,0x02,0x01,0x7b,0xfe,0x1b, + 0x01,0xff,0x06,0x12,0x00,0x03,0x00,0x07,0x00,0x00, + 0x01,0x23,0x11,0x33,0x11,0x23,0x11,0x33,0x01,0xff, + 0x84,0x84,0x84,0x84,0x02,0xf1,0x03,0x21,0xf8,0x09, + 0x03,0x22,0x00,0x00,0x00,0x02,0x00,0x52,0x00,0x36, + 0x02,0x93,0x06,0x14,0x00,0x30,0x00,0x3b,0x00,0x00, + 0x01,0x33,0x1e,0x01,0x17,0x07,0x26,0x22,0x06,0x15, + 0x14,0x17,0x16,0x1f,0x01,0x1e,0x01,0x14,0x06,0x07, + 0x1e,0x01,0x15,0x14,0x06,0x20,0x27,0x35,0x16,0x33, + 0x32,0x36,0x35,0x34,0x2e,0x04,0x35,0x34,0x36,0x37, + 0x26,0x35,0x34,0x3f,0x01,0x36,0x13,0x34,0x26,0x27, + 0x0e,0x01,0x14,0x16,0x1f,0x01,0x36,0x01,0x8f,0x15, + 0x3f,0x5f,0x42,0x2f,0x67,0xa8,0x57,0x17,0x11,0x7c, + 0x3d,0x6b,0x57,0x41,0x38,0x3e,0x38,0xab,0xfe,0xd0, + 0x62,0x69,0x8d,0x56,0x66,0x40,0xa9,0x58,0x4e,0x20, + 0x4b,0x43,0x7e,0x52,0x0e,0x50,0xf5,0x4e,0x79,0x33, + 0x37,0x4e,0x62,0x36,0x4b,0x06,0x14,0x01,0x1a,0x20, + 0x6f,0x38,0x4c,0x41,0x2d,0x1b,0x2e,0x4a,0x25,0x41, + 0x78,0xa9,0x82,0x23,0x2f,0x65,0x42,0x82,0x9b,0x38, + 0x83,0x4a,0x5b,0x47,0x31,0x54,0x63,0x3b,0x4c,0x52, + 0x34,0x4f,0x7a,0x21,0x57,0x8d,0x77,0x49,0x09,0x3f, + 0xfc,0xf5,0x45,0x5f,0x40,0x13,0x54,0x74,0x59,0x34, + 0x1d,0x38,0x00,0x00,0x00,0x02,0x01,0x36,0x05,0x0f, + 0x03,0x31,0x05,0xd2,0x00,0x07,0x00,0x0f,0x00,0x00, + 0x00,0x32,0x16,0x14,0x06,0x22,0x26,0x34,0x24,0x32, + 0x16,0x14,0x06,0x22,0x26,0x34,0x01,0x66,0x4c,0x2f, + 0x2f,0x4c,0x30,0x01,0x7f,0x4c,0x30,0x2f,0x4c,0x30, + 0x05,0xd2,0x32,0x5d,0x34,0x33,0x5f,0x31,0x31,0x5f, + 0x33,0x34,0x5d,0x00,0x00,0x03,0x00,0x61,0xff,0xec, + 0x06,0x41,0x05,0xcb,0x00,0x10,0x00,0x21,0x00,0x35, + 0x00,0x00,0x01,0x32,0x04,0x12,0x15,0x14,0x02,0x06, + 0x04,0x20,0x24,0x26,0x02,0x10,0x12,0x36,0x24,0x04, + 0x26,0x20,0x0e,0x02,0x15,0x14,0x12,0x04,0x33,0x32, + 0x3e,0x02,0x10,0x26,0x01,0x22,0x26,0x10,0x36,0x33, + 0x32,0x17,0x07,0x26,0x23,0x22,0x06,0x10,0x16,0x33, + 0x32,0x37,0x15,0x06,0x03,0x51,0xcd,0x01,0x5c,0xc7, + 0x79,0xca,0xfe,0xea,0xfe,0xc8,0xfe,0xe4,0xc3,0x70, + 0x7c,0xcd,0x01,0x14,0x02,0x02,0xee,0xfe,0xfa,0xf1, + 0xab,0x64,0xb2,0x01,0x28,0xab,0x85,0xf1,0xab,0x64, + 0x68,0xfe,0x01,0xc1,0xd0,0xde,0xbd,0x80,0x79,0x30, + 0x65,0x60,0x80,0x91,0x83,0x89,0x65,0x6e,0x6b,0x05, + 0xcb,0xcf,0xfe,0xa6,0xc7,0x9a,0xfe,0xe9,0xc8,0x76, + 0x7e,0xd0,0x01,0x11,0x01,0x2c,0x01,0x1a,0xc6,0x74, + 0xd2,0x67,0x69,0xb0,0xed,0x7f,0xb3,0xfe,0xd6,0xa8, + 0x69,0xaf,0xed,0x01,0x03,0xef,0xfc,0xc5,0xec,0x01, + 0xab,0xf9,0x3b,0x6d,0x31,0xb3,0xfe,0xb8,0xa7,0x30, + 0x77,0x30,0x00,0x00,0x00,0x02,0x00,0x39,0x03,0x15, + 0x01,0xf7,0x05,0xc7,0x00,0x17,0x00,0x21,0x00,0x00, + 0x01,0x34,0x26,0x22,0x07,0x26,0x27,0x36,0x32,0x16, + 0x15,0x11,0x23,0x26,0x27,0x0e,0x01,0x23,0x22,0x26, + 0x34,0x36,0x3f,0x01,0x07,0x14,0x33,0x32,0x36,0x3d, + 0x01,0x07,0x0e,0x01,0x01,0x89,0x32,0x77,0x4f,0x1e, + 0x07,0x61,0xcc,0x5e,0x4d,0x0c,0x07,0x2c,0x55,0x36, + 0x4c,0x5b,0x77,0x80,0x59,0xde,0x55,0x41,0x48,0x42, + 0x54,0x48,0x04,0xe2,0x46,0x3f,0x2d,0x45,0x10,0x38, + 0x6f,0x73,0xfe,0x3c,0x3c,0x1f,0x34,0x33,0x67,0xbd, + 0x67,0x09,0x06,0xd7,0x66,0x60,0x55,0x39,0x07,0x09, + 0x39,0x00,0x00,0x02,0x00,0x4f,0x00,0x83,0x03,0x67, + 0x03,0xaf,0x00,0x06,0x00,0x0d,0x00,0x00,0x01,0x03, + 0x13,0x07,0x01,0x35,0x01,0x05,0x03,0x13,0x07,0x01, + 0x35,0x01,0x01,0xdf,0xdb,0xdb,0x6a,0xfe,0xda,0x01, + 0x26,0x01,0xf2,0xda,0xda,0x6a,0xfe,0xda,0x01,0x26, + 0x03,0x73,0xfe,0xa7,0xfe,0xa6,0x3d,0x01,0x89,0x1a, + 0x01,0x89,0x3c,0xfe,0xa7,0xfe,0xa6,0x3d,0x01,0x89, + 0x1a,0x01,0x89,0x00,0x00,0x01,0x00,0x4b,0x00,0xfa, + 0x02,0xfb,0x03,0x10,0x00,0x05,0x00,0x00,0x25,0x23, + 0x11,0x21,0x35,0x21,0x02,0xfb,0x78,0xfd,0xc8,0x02, + 0xb0,0xfa,0x01,0x9b,0x7b,0x00,0x00,0x01,0x00,0x3b, + 0x01,0xdf,0x01,0xf4,0x02,0x70,0x00,0x03,0x00,0x00, + 0x01,0x21,0x35,0x21,0x01,0xf4,0xfe,0x47,0x01,0xb9, + 0x01,0xdf,0x91,0x00,0x00,0x04,0x00,0x61,0xff,0xec, + 0x06,0x41,0x05,0xcb,0x00,0x10,0x00,0x21,0x00,0x2f, + 0x00,0x3a,0x00,0x00,0x01,0x32,0x04,0x12,0x15,0x14, + 0x02,0x06,0x04,0x20,0x24,0x26,0x02,0x10,0x12,0x36, + 0x24,0x04,0x26,0x20,0x0e,0x02,0x15,0x14,0x12,0x04, + 0x33,0x32,0x3e,0x02,0x10,0x26,0x25,0x33,0x20,0x11, + 0x14,0x07,0x17,0x16,0x17,0x23,0x03,0x23,0x11,0x23, + 0x13,0x11,0x33,0x32,0x37,0x3e,0x01,0x35,0x34,0x26, + 0x23,0x03,0x51,0xcd,0x01,0x5c,0xc7,0x79,0xca,0xfe, + 0xea,0xfe,0xc8,0xfe,0xe4,0xc3,0x70,0x7c,0xcd,0x01, + 0x14,0x02,0x02,0xee,0xfe,0xfa,0xf1,0xab,0x64,0xb2, + 0x01,0x28,0xab,0x85,0xf1,0xab,0x64,0x68,0xfc,0xdc, + 0xe3,0x01,0x3b,0x93,0x21,0x3c,0x76,0x9b,0xb1,0x87, + 0x8b,0x8b,0x32,0x2c,0x1b,0x43,0x4a,0x65,0x70,0x05, + 0xcb,0xcf,0xfe,0xa6,0xc7,0x9a,0xfe,0xe9,0xc8,0x76, + 0x7e,0xd0,0x01,0x11,0x01,0x2c,0x01,0x1a,0xc6,0x74, + 0xd2,0x67,0x69,0xb0,0xed,0x7f,0xb3,0xfe,0xd6,0xa8, + 0x69,0xaf,0xed,0x01,0x03,0xef,0x4a,0xfe,0xfb,0xae, + 0x40,0x3d,0x6e,0xdc,0x01,0x62,0xfe,0x9e,0x03,0x0b, + 0xfe,0xc1,0x0a,0x05,0x4f,0x46,0x58,0x43,0x00,0x00, + 0x00,0x01,0xff,0xf9,0x06,0x14,0x03,0x8d,0x06,0x89, + 0x00,0x03,0x00,0x00,0x01,0x21,0x35,0x21,0x03,0x8d, + 0xfc,0x6c,0x03,0x94,0x06,0x14,0x75,0x00,0x00,0x02, + 0x00,0x76,0x03,0x5b,0x02,0xe7,0x05,0xcb,0x00,0x08, + 0x00,0x11,0x00,0x00,0x13,0x36,0x20,0x16,0x10,0x06, + 0x20,0x26,0x10,0x25,0x26,0x22,0x06,0x14,0x16,0x32, + 0x36,0x34,0xd0,0x5c,0x01,0x04,0xb7,0xb4,0xfe,0xf5, + 0xb2,0x01,0xc2,0x37,0xa5,0x6f,0x72,0x9f,0x72,0x05, + 0x71,0x5a,0xb1,0xfe,0xf1,0xb0,0xaf,0x01,0x0d,0x09, + 0x3a,0x76,0xa6,0x72,0x72,0xaa,0x00,0x02,0x00,0x4b, + 0x00,0x00,0x03,0x09,0x04,0xae,0x00,0x0b,0x00,0x0f, + 0x00,0x00,0x01,0x21,0x15,0x21,0x11,0x23,0x11,0x21, + 0x35,0x21,0x11,0x33,0x01,0x21,0x35,0x21,0x01,0xe6, + 0x01,0x23,0xfe,0xdd,0x78,0xfe,0xdd,0x01,0x23,0x78, + 0x01,0x23,0xfd,0x42,0x02,0xbe,0x03,0x10,0x7b,0xfe, + 0x65,0x01,0x9b,0x7b,0x01,0x9e,0xfb,0x52,0x7b,0x00, + 0x00,0x01,0x00,0x32,0x02,0x4a,0x02,0x29,0x05,0xcb, + 0x00,0x1a,0x00,0x00,0x13,0x35,0x36,0x12,0x36,0x35, + 0x34,0x26,0x23,0x22,0x07,0x26,0x27,0x36,0x33,0x32, + 0x16,0x15,0x14,0x07,0x0e,0x03,0x07,0x21,0x15,0x32, + 0x3d,0xea,0x3f,0x44,0x38,0x54,0x4f,0x30,0x17,0x69, + 0x8a,0x72,0x81,0x39,0x1f,0x77,0x21,0x53,0x0f,0x01, + 0x63,0x02,0x4a,0x68,0x4a,0x01,0x18,0x74,0x4f,0x38, + 0x47,0x54,0x3a,0x1d,0x72,0x7f,0x6f,0x6b,0x58,0x30, + 0x90,0x28,0x62,0x12,0x74,0x00,0x00,0x00,0x00,0x01, + 0x00,0x32,0x02,0x39,0x02,0x2b,0x05,0xcb,0x00,0x22, + 0x00,0x00,0x13,0x33,0x32,0x36,0x34,0x26,0x23,0x22, + 0x07,0x26,0x27,0x36,0x33,0x32,0x16,0x15,0x14,0x06, + 0x07,0x15,0x16,0x15,0x14,0x06,0x22,0x27,0x35,0x16, + 0x33,0x32,0x36,0x34,0x26,0x2b,0x01,0xa9,0x47,0x51, + 0x57,0x45,0x3f,0x52,0x50,0x16,0x2a,0x6c,0x82,0x6e, + 0x81,0x49,0x44,0xa9,0x9b,0xfb,0x5d,0x60,0x71,0x53, + 0x52,0x5f,0x5d,0x49,0x04,0x44,0x52,0x85,0x41,0x4a, + 0x1e,0x3c,0x5f,0x7c,0x6a,0x49,0x67,0x19,0x0a,0x2c, + 0xb0,0x72,0x8b,0x2f,0x7a,0x3b,0x4d,0x96,0x52,0x00, + 0x00,0x00,0x00,0x01,0x01,0x89,0x04,0xd9,0x02,0xfe, + 0x06,0x21,0x00,0x09,0x00,0x00,0x01,0x15,0x0e,0x01, + 0x07,0x23,0x35,0x3e,0x01,0x37,0x02,0xfe,0x1d,0xb1, + 0x4a,0x5d,0x34,0x67,0x1e,0x06,0x21,0x13,0x37,0xc1, + 0x3d,0x16,0x45,0xab,0x42,0x00,0x00,0x01,0x00,0x82, + 0xfe,0x14,0x03,0x1a,0x04,0x46,0x00,0x17,0x00,0x00, + 0x21,0x23,0x26,0x27,0x23,0x0e,0x01,0x22,0x26,0x27, + 0x16,0x15,0x11,0x23,0x11,0x33,0x11,0x10,0x33,0x32, + 0x36,0x35,0x11,0x33,0x03,0x1a,0x7c,0x0b,0x08,0x0a, + 0x21,0x72,0x7b,0x39,0x28,0x09,0x99,0x99,0x92,0x6f, + 0x66,0x98,0x5d,0x38,0x51,0x58,0x22,0x32,0x8c,0x8a, + 0xfe,0xea,0x06,0x32,0xfd,0x2e,0xfe,0xfd,0xc0,0xd6, + 0x02,0x3f,0x00,0x01,0x00,0x79,0xfe,0xfc,0x03,0x3b, + 0x06,0x14,0x00,0x0e,0x00,0x00,0x01,0x23,0x11,0x23, + 0x11,0x23,0x11,0x06,0x23,0x22,0x26,0x10,0x12,0x33, + 0x21,0x03,0x3b,0x71,0x97,0x72,0x23,0x2e,0x7f,0x78, + 0x8c,0x94,0x01,0xa2,0xfe,0xfc,0x06,0x98,0xf9,0x68, + 0x03,0x33,0x12,0xf6,0x02,0x02,0x00,0xff,0x00,0x01, + 0x00,0x7e,0x02,0x54,0x01,0x53,0x03,0x4f,0x00,0x06, + 0x00,0x00,0x13,0x22,0x34,0x32,0x15,0x14,0x06,0xe8, + 0x6a,0xd5,0x39,0x02,0x54,0xfb,0x7d,0x3f,0x3f,0x00, + 0x00,0x01,0x00,0x1f,0xfe,0x14,0x01,0x81,0x00,0x00, + 0x00,0x10,0x00,0x00,0x01,0x14,0x06,0x23,0x22,0x27, + 0x35,0x16,0x32,0x36,0x35,0x34,0x27,0x37,0x33,0x07, + 0x16,0x01,0x81,0x83,0x7a,0x40,0x25,0x2d,0x71,0x41, + 0xa3,0x4b,0x6b,0x2e,0x9e,0xfe,0xe7,0x66,0x6d,0x0e, + 0x67,0x0d,0x36,0x31,0x64,0x1a,0x9f,0x66,0x27,0x00, + 0x00,0x01,0x00,0x4c,0x02,0x4a,0x01,0xae,0x05,0xb6, + 0x00,0x0a,0x00,0x00,0x01,0x23,0x11,0x34,0x37,0x0e, + 0x01,0x07,0x27,0x37,0x33,0x01,0xae,0x7a,0x07,0x20, + 0x3c,0x54,0x3f,0xf9,0x69,0x02,0x4a,0x01,0xe1,0xb1, + 0x58,0x20,0x30,0x3f,0x52,0xbf,0x00,0x00,0x00,0x02, + 0x00,0x43,0x03,0x15,0x02,0x3e,0x05,0xc7,0x00,0x07, + 0x00,0x10,0x00,0x00,0x12,0x36,0x32,0x16,0x10,0x06, + 0x22,0x26,0x13,0x22,0x15,0x14,0x16,0x32,0x36,0x10, + 0x26,0x43,0x85,0xf0,0x86,0x84,0xf5,0x82,0xfd,0x88, + 0x41,0x90,0x40,0x42,0x05,0x12,0xb5,0xb2,0xfe,0xb3, + 0xb3,0xb4,0x01,0x99,0xf3,0x80,0x76,0x75,0x01,0x00, + 0x74,0x00,0x00,0x02,0x00,0x4f,0x00,0x83,0x03,0x67, + 0x03,0xaf,0x00,0x06,0x00,0x0d,0x00,0x00,0x01,0x15, + 0x01,0x27,0x13,0x03,0x37,0x01,0x15,0x01,0x27,0x13, + 0x03,0x37,0x01,0xdf,0xfe,0xd9,0x69,0xda,0xda,0x69, + 0x02,0xaf,0xfe,0xda,0x6a,0xdb,0xdb,0x6a,0x02,0x26, + 0x1a,0xfe,0x77,0x3d,0x01,0x5a,0x01,0x59,0x3c,0xfe, + 0x77,0x1a,0xfe,0x77,0x3d,0x01,0x5a,0x01,0x59,0x3c, + 0x00,0x04,0x00,0x36,0x00,0x00,0x05,0x52,0x05,0xb6, + 0x00,0x0c,0x00,0x10,0x00,0x1b,0x00,0x21,0x00,0x00, + 0x01,0x23,0x11,0x36,0x37,0x30,0x07,0x0e,0x01,0x07, + 0x27,0x37,0x33,0x03,0x23,0x01,0x33,0x09,0x01,0x33, + 0x11,0x33,0x15,0x23,0x15,0x23,0x35,0x21,0x25,0x11, + 0x36,0x37,0x06,0x03,0x01,0x98,0x7b,0x06,0x01,0x18, + 0x13,0x70,0x14,0x3f,0xf8,0x6a,0x04,0x80,0x02,0xf7, + 0x81,0xfe,0x92,0x01,0x57,0x75,0x68,0x68,0x7a,0xfe, + 0xae,0x01,0x52,0x02,0x02,0x33,0xab,0x02,0x4a,0x01, + 0xe1,0xf5,0x14,0x18,0x13,0x54,0x10,0x52,0xbf,0xfa, + 0x4a,0x05,0xb6,0xfb,0x67,0x02,0x56,0xfd,0xba,0x6c, + 0xc0,0xc0,0x6c,0x01,0x09,0x72,0x29,0x76,0xfe,0xd2, + 0x00,0x03,0x00,0x36,0x00,0x00,0x05,0x72,0x05,0xb6, + 0x00,0x0a,0x00,0x0e,0x00,0x29,0x00,0x00,0x01,0x23, + 0x11,0x34,0x37,0x0e,0x01,0x07,0x27,0x37,0x33,0x03, + 0x23,0x01,0x33,0x01,0x35,0x36,0x12,0x36,0x35,0x34, + 0x26,0x23,0x22,0x07,0x26,0x27,0x36,0x33,0x32,0x16, + 0x15,0x14,0x07,0x0e,0x03,0x07,0x21,0x15,0x01,0x98, + 0x7a,0x07,0x20,0x3c,0x54,0x3f,0xf9,0x69,0x13,0x81, + 0x02,0xf7,0x81,0xfe,0xff,0x3d,0xea,0x3f,0x44,0x38, + 0x53,0x50,0x30,0x17,0x69,0x8a,0x72,0x81,0x39,0x1f, + 0x77,0x21,0x53,0x0f,0x01,0x63,0x02,0x4a,0x01,0xe1, + 0xb1,0x58,0x20,0x30,0x3f,0x52,0xbf,0xfa,0x4a,0x05, + 0xb6,0xfa,0x4b,0x68,0x4a,0x01,0x18,0x74,0x4f,0x38, + 0x47,0x54,0x3a,0x1d,0x72,0x7f,0x6f,0x6b,0x57,0x31, + 0x90,0x28,0x62,0x12,0x74,0x00,0x00,0x04,0x00,0x33, + 0x00,0x00,0x05,0x6e,0x05,0xcb,0x00,0x21,0x00,0x26, + 0x00,0x31,0x00,0x37,0x00,0x00,0x13,0x27,0x36,0x33, + 0x32,0x16,0x15,0x14,0x06,0x07,0x15,0x16,0x15,0x14, + 0x06,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x34,0x26, + 0x2b,0x01,0x35,0x33,0x32,0x36,0x34,0x26,0x23,0x22, + 0x25,0x33,0x00,0x07,0x23,0x09,0x01,0x33,0x11,0x33, + 0x15,0x23,0x15,0x23,0x35,0x21,0x25,0x11,0x36,0x37, + 0x06,0x03,0x73,0x40,0x6d,0x81,0x6f,0x81,0x4a,0x44, + 0xa9,0x9b,0xfb,0x5d,0x61,0x70,0x54,0x52,0x60,0x5d, + 0x49,0x47,0x51,0x57,0x45,0x3f,0x52,0x03,0x6f,0x81, + 0xfd,0x82,0x7a,0x80,0x01,0xff,0x01,0x57,0x75,0x68, + 0x68,0x7a,0xfe,0xae,0x01,0x52,0x02,0x02,0x33,0xab, + 0x05,0x12,0x5a,0x5f,0x7c,0x6a,0x49,0x67,0x19,0x0a, + 0x2c,0xb0,0x72,0x8b,0x2f,0x7a,0x3b,0x4d,0x95,0x53, + 0x68,0x52,0x85,0x41,0x5a,0xfb,0x34,0xea,0x01,0x1d, + 0x02,0x56,0xfd,0xba,0x6c,0xc0,0xc0,0x6c,0x01,0x09, + 0x72,0x29,0x76,0xfe,0xd2,0x00,0x00,0x00,0x00,0x02, + 0x00,0x31,0xfe,0x6b,0x02,0x65,0x04,0x49,0x00,0x07, + 0x00,0x1f,0x00,0x00,0x01,0x32,0x14,0x23,0x22,0x26, + 0x34,0x36,0x13,0x15,0x14,0x0e,0x02,0x07,0x06,0x14, + 0x16,0x32,0x37,0x17,0x06,0x20,0x26,0x35,0x34,0x3e, + 0x03,0x3d,0x01,0x01,0x78,0x6c,0x6c,0x31,0x39,0x3a, + 0x75,0x26,0x4e,0x4f,0x09,0x28,0x53,0xa6,0x64,0x3f, + 0x79,0xfe,0xde,0x99,0x19,0x3f,0x8a,0x29,0x04,0x49, + 0xfb,0x3e,0x7e,0x3f,0xfe,0x5c,0x3b,0x6d,0x71,0x80, + 0x74,0x13,0x58,0xcc,0x6c,0x40,0x75,0x55,0xb4,0xa5, + 0x51,0x6a,0x6f,0xbe,0x70,0x5a,0x2f,0x00,0x00,0x03, + 0x00,0x00,0x00,0x00,0x03,0x89,0x07,0x73,0x00,0x0a, + 0x00,0x14,0x00,0x1e,0x00,0x00,0x13,0x33,0x1e,0x01, + 0x17,0x15,0x23,0x26,0x27,0x26,0x27,0x13,0x33,0x16, + 0x01,0x23,0x03,0x21,0x03,0x23,0x00,0x17,0x27,0x26, + 0x27,0x0e,0x03,0x07,0x21,0xa2,0xbd,0x1d,0x6b,0x31, + 0x5e,0x44,0x5a,0x59,0x21,0xc1,0xbd,0x3d,0x01,0x2c, + 0x9d,0x72,0xfe,0x94,0x70,0x9e,0x01,0x26,0xd9,0x20, + 0x13,0x0b,0x10,0x2d,0x16,0x36,0x0b,0x01,0x2d,0x07, + 0x73,0x43,0xb1,0x3d,0x17,0x38,0x60,0x61,0x3d,0xfe, + 0x56,0xf7,0xfb,0x40,0x01,0xdc,0xfe,0x24,0x04,0xbc, + 0xcc,0x8f,0x55,0x56,0x7d,0xca,0x61,0xe4,0x30,0x00, + 0x00,0x03,0x00,0x00,0x00,0x00,0x03,0x89,0x07,0x73, + 0x00,0x09,0x00,0x13,0x00,0x1d,0x00,0x00,0x01,0x15, + 0x0e,0x01,0x07,0x23,0x35,0x3e,0x01,0x37,0x03,0x33, + 0x16,0x01,0x23,0x03,0x21,0x03,0x23,0x00,0x17,0x27, + 0x26,0x27,0x0e,0x03,0x07,0x21,0x02,0xde,0x1d,0xb1, + 0x4a,0x5d,0x34,0x67,0x1e,0xbf,0xbd,0x3d,0x01,0x2c, + 0x9d,0x72,0xfe,0x94,0x70,0x9e,0x01,0x26,0xd9,0x20, + 0x13,0x0b,0x10,0x2d,0x16,0x36,0x0b,0x01,0x2d,0x07, + 0x73,0x13,0x37,0xc1,0x3d,0x16,0x45,0xab,0x42,0xfe, + 0x44,0xf7,0xfb,0x40,0x01,0xdc,0xfe,0x24,0x04,0xbc, + 0xcc,0x8f,0x55,0x56,0x7d,0xca,0x61,0xe4,0x30,0x00, + 0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x03,0x89, + 0x07,0x73,0x00,0x0e,0x00,0x18,0x00,0x22,0x00,0x00, + 0x01,0x23,0x26,0x2f,0x01,0x06,0x07,0x23,0x35,0x36, + 0x37,0x33,0x1e,0x01,0x17,0x05,0x33,0x16,0x01,0x23, + 0x03,0x21,0x03,0x23,0x00,0x17,0x27,0x26,0x27,0x0e, + 0x03,0x07,0x21,0x02,0xd5,0x56,0x2a,0x39,0x5a,0x86, + 0x38,0x55,0x8d,0x38,0x9b,0x15,0x70,0x41,0xfe,0x8e, + 0xbd,0x3d,0x01,0x2c,0x9d,0x72,0xfe,0x94,0x70,0x9e, + 0x01,0x26,0xd9,0x20,0x13,0x0b,0x10,0x2d,0x16,0x36, + 0x0b,0x01,0x2d,0x06,0x2b,0x24,0x40,0x65,0x97,0x32, + 0x15,0xbd,0x76,0x31,0xaf,0x53,0x89,0xf7,0xfb,0x40, + 0x01,0xdc,0xfe,0x24,0x04,0xbc,0xcc,0x8f,0x55,0x56, + 0x7d,0xca,0x61,0xe4,0x30,0x00,0x00,0x03,0x00,0x00, + 0x00,0x00,0x03,0x89,0x07,0x1d,0x00,0x14,0x00,0x1e, + 0x00,0x28,0x00,0x00,0x01,0x22,0x26,0x27,0x26,0x23, + 0x22,0x07,0x23,0x3e,0x01,0x33,0x32,0x1e,0x01,0x32, + 0x36,0x37,0x33,0x0e,0x01,0x05,0x33,0x16,0x01,0x23, + 0x03,0x21,0x03,0x23,0x00,0x17,0x27,0x26,0x27,0x0e, + 0x03,0x07,0x21,0x02,0x43,0x22,0x4c,0x1b,0x49,0x25, + 0x3f,0x13,0x60,0x0c,0x5d,0x4e,0x2b,0x5e,0x52,0x3e, + 0x22,0x0b,0x60,0x0a,0x5e,0xfe,0xd4,0xbd,0x3d,0x01, + 0x2c,0x9d,0x72,0xfe,0x94,0x70,0x9e,0x01,0x26,0xd9, + 0x20,0x13,0x0b,0x10,0x2d,0x16,0x36,0x0b,0x01,0x2d, + 0x06,0x2c,0x26,0x16,0x3d,0x7b,0x75,0x7c,0x3c,0x3c, + 0x3c,0x3e,0x75,0x7c,0x75,0xf7,0xfb,0x40,0x01,0xdc, + 0xfe,0x24,0x04,0xbc,0xcc,0x8f,0x55,0x56,0x7d,0xca, + 0x61,0xe4,0x30,0x00,0x00,0x00,0x00,0x04,0x00,0x00, + 0x00,0x00,0x03,0x89,0x07,0x24,0x00,0x07,0x00,0x0f, + 0x00,0x19,0x00,0x23,0x00,0x00,0x12,0x32,0x16,0x14, + 0x06,0x22,0x26,0x34,0x24,0x32,0x16,0x14,0x06,0x22, + 0x26,0x34,0x03,0x33,0x16,0x01,0x23,0x03,0x21,0x03, + 0x23,0x00,0x17,0x27,0x26,0x27,0x0e,0x03,0x07,0x21, + 0xf8,0x4c,0x2f,0x2f,0x4c,0x30,0x01,0x7f,0x4c,0x30, + 0x2f,0x4c,0x30,0xb5,0xbd,0x3d,0x01,0x2c,0x9d,0x72, + 0xfe,0x94,0x70,0x9e,0x01,0x26,0xd9,0x20,0x13,0x0b, + 0x10,0x2d,0x16,0x36,0x0b,0x01,0x2d,0x07,0x24,0x32, + 0x5d,0x34,0x33,0x5f,0x31,0x31,0x5f,0x33,0x34,0x5d, + 0xfe,0xc5,0xf7,0xfb,0x40,0x01,0xdc,0xfe,0x24,0x04, + 0xbc,0xcc,0x8f,0x55,0x56,0x7d,0xca,0x61,0xe4,0x30, + 0x00,0x03,0x00,0x00,0x00,0x00,0x03,0x89,0x06,0xf5, + 0x00,0x12,0x00,0x1a,0x00,0x24,0x00,0x00,0x13,0x34, + 0x36,0x32,0x16,0x15,0x14,0x06,0x07,0x12,0x13,0x23, + 0x03,0x21,0x03,0x23,0x00,0x37,0x26,0x24,0x26,0x22, + 0x06,0x14,0x16,0x32,0x36,0x13,0x03,0x27,0x26,0x27, + 0x0e,0x03,0x07,0xed,0x76,0xbe,0x7a,0x38,0x33,0xc7, + 0x92,0x9d,0x72,0xfe,0x94,0x70,0x9e,0x01,0x2b,0x29, + 0x67,0x01,0x48,0x3d,0x67,0x40,0x3b,0x6a,0x3f,0x25, + 0x5b,0x20,0x13,0x0b,0x10,0x2d,0x16,0x36,0x0b,0x06, + 0x2b,0x5c,0x6e,0x6f,0x58,0x40,0x5e,0x18,0xfc,0xd1, + 0xfd,0xb7,0x01,0xdc,0xfe,0x24,0x04,0xd1,0xa8,0x32, + 0xb2,0x3d,0x3e,0x65,0x3c,0x3d,0xfc,0x76,0x01,0x82, + 0x8f,0x55,0x56,0x7d,0xca,0x61,0xe4,0x30,0x00,0x02, + 0x00,0x00,0x00,0x00,0x04,0x7c,0x05,0xb6,0x00,0x0f, + 0x00,0x15,0x00,0x00,0x01,0x03,0x23,0x01,0x21,0x15, + 0x21,0x11,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x11, + 0x35,0x11,0x23,0x06,0x02,0x07,0x01,0x2a,0x8b,0x9f, + 0x01,0xbe,0x02,0xbe,0xfe,0x60,0x01,0x86,0xfe,0x7a, + 0x01,0xa0,0xfd,0xc4,0x1f,0x35,0x7d,0x1a,0x01,0xdc, + 0xfe,0x24,0x05,0xb6,0x8e,0xfe,0x1a,0x8d,0xfd,0xd8, + 0x8d,0x01,0xdc,0x92,0x02,0xb8,0xb4,0xfe,0x52,0x56, + 0x00,0x00,0x00,0x01,0x00,0x66,0xfe,0x14,0x03,0x4a, + 0x05,0xcc,0x00,0x24,0x00,0x00,0x01,0x22,0x02,0x10, + 0x12,0x33,0x32,0x37,0x15,0x06,0x0f,0x01,0x16,0x15, + 0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x32,0x36,0x35, + 0x34,0x27,0x37,0x26,0x02,0x11,0x10,0x12,0x33,0x32, + 0x17,0x07,0x26,0x02,0x4a,0x97,0xad,0xb0,0x9b,0x75, + 0x62,0x55,0x86,0x25,0x9e,0x83,0x7a,0x40,0x25,0x2e, + 0x70,0x41,0xa3,0x46,0xb4,0xcc,0xfd,0xe4,0x8c,0x77, + 0x3c,0x5f,0x05,0x3e,0xfe,0xb9,0xfd,0xc7,0xfe,0xbb, + 0x34,0x8c,0x34,0x01,0x52,0x27,0x8c,0x66,0x6d,0x0e, + 0x67,0x0d,0x36,0x31,0x64,0x1a,0x95,0x29,0x01,0x7e, + 0x01,0x32,0x01,0x65,0x01,0x98,0x4a,0x83,0x3f,0x00, + 0x00,0x00,0x00,0x02,0x00,0x96,0x00,0x00,0x02,0xd2, + 0x07,0x73,0x00,0x0a,0x00,0x16,0x00,0x00,0x13,0x33, + 0x1e,0x01,0x17,0x15,0x23,0x26,0x27,0x26,0x27,0x01, + 0x21,0x11,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x11, + 0x21,0xa3,0xbd,0x1d,0x6b,0x31,0x5e,0x44,0x5a,0x59, + 0x21,0x02,0x2f,0xfe,0x5f,0x01,0x88,0xfe,0x78,0x01, + 0xa1,0xfd,0xc4,0x02,0x3c,0x07,0x73,0x43,0xb1,0x3d, + 0x17,0x38,0x60,0x61,0x3d,0xfd,0xc8,0xfe,0x1a,0x8d, + 0xfd,0xd8,0x8e,0x05,0xb6,0x00,0x00,0x02,0x00,0x96, + 0x00,0x00,0x02,0xd2,0x07,0x73,0x00,0x09,0x00,0x15, + 0x00,0x00,0x01,0x15,0x0e,0x01,0x07,0x23,0x35,0x3e, + 0x01,0x37,0x13,0x21,0x11,0x21,0x15,0x21,0x11,0x21, + 0x15,0x21,0x11,0x21,0x02,0xbd,0x1d,0xb1,0x4a,0x5d, + 0x34,0x67,0x1e,0xd1,0xfe,0x5f,0x01,0x88,0xfe,0x78, + 0x01,0xa1,0xfd,0xc4,0x02,0x3c,0x07,0x73,0x13,0x37, + 0xc1,0x3d,0x16,0x45,0xab,0x42,0xfd,0xb6,0xfe,0x1a, + 0x8d,0xfd,0xd8,0x8e,0x05,0xb6,0x00,0x02,0x00,0x96, + 0x00,0x00,0x02,0xd2,0x07,0x73,0x00,0x0e,0x00,0x1a, + 0x00,0x00,0x01,0x23,0x26,0x2f,0x01,0x06,0x07,0x23, + 0x35,0x36,0x37,0x33,0x1e,0x01,0x17,0x13,0x21,0x11, + 0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x11,0x21,0x02, + 0xc1,0x56,0x2a,0x39,0x5a,0x86,0x38,0x55,0x8d,0x38, + 0x9b,0x15,0x70,0x41,0x11,0xfe,0x5f,0x01,0x88,0xfe, + 0x78,0x01,0xa1,0xfd,0xc4,0x02,0x3c,0x06,0x2b,0x24, + 0x40,0x65,0x97,0x32,0x15,0xbd,0x76,0x31,0xaf,0x53, + 0xfe,0xe9,0xfe,0x1a,0x8d,0xfd,0xd8,0x8e,0x05,0xb6, + 0x00,0x00,0x00,0x03,0x00,0x96,0x00,0x00,0x02,0xd2, + 0x07,0x24,0x00,0x07,0x00,0x0f,0x00,0x1b,0x00,0x00, + 0x12,0x32,0x16,0x14,0x06,0x22,0x26,0x34,0x24,0x32, + 0x16,0x14,0x06,0x22,0x26,0x34,0x13,0x21,0x11,0x21, + 0x15,0x21,0x11,0x21,0x15,0x21,0x11,0x21,0xe3,0x4c, + 0x2f,0x2f,0x4c,0x30,0x01,0x7f,0x4c,0x30,0x2f,0x4c, + 0x30,0xcf,0xfe,0x5f,0x01,0x88,0xfe,0x78,0x01,0xa1, + 0xfd,0xc4,0x02,0x3c,0x07,0x24,0x32,0x5d,0x34,0x33, + 0x5f,0x31,0x31,0x5f,0x33,0x34,0x5d,0xfe,0x37,0xfe, + 0x1a,0x8d,0xfd,0xd8,0x8e,0x05,0xb6,0x00,0x00,0x02, + 0xff,0xd9,0x00,0x00,0x01,0x4f,0x07,0x73,0x00,0x0a, + 0x00,0x0e,0x00,0x00,0x03,0x33,0x1e,0x01,0x17,0x15, + 0x23,0x26,0x27,0x26,0x27,0x01,0x23,0x11,0x33,0x27, + 0xbd,0x1d,0x6b,0x31,0x5e,0x44,0x5a,0x59,0x21,0x01, + 0x63,0x96,0x96,0x07,0x73,0x43,0xb1,0x3d,0x17,0x38, + 0x60,0x61,0x3d,0xf8,0x9f,0x05,0xb6,0x00,0x00,0x02, + 0x00,0x9e,0x00,0x00,0x02,0x13,0x07,0x73,0x00,0x09, + 0x00,0x0d,0x00,0x00,0x01,0x15,0x0e,0x01,0x07,0x23, + 0x35,0x3e,0x01,0x37,0x03,0x23,0x11,0x33,0x02,0x13, + 0x1d,0xb1,0x4a,0x5d,0x34,0x67,0x1e,0x1b,0x96,0x96, + 0x07,0x73,0x13,0x37,0xc1,0x3d,0x16,0x45,0xab,0x42, + 0xf8,0x8d,0x05,0xb6,0x00,0x02,0xff,0xde,0x00,0x00, + 0x02,0x04,0x07,0x73,0x00,0x0e,0x00,0x12,0x00,0x00, + 0x01,0x23,0x26,0x2f,0x01,0x06,0x07,0x23,0x35,0x36, + 0x37,0x33,0x1e,0x01,0x17,0x03,0x23,0x11,0x33,0x02, + 0x04,0x56,0x2a,0x39,0x5a,0x86,0x38,0x55,0x8d,0x38, + 0x9b,0x15,0x70,0x41,0xc8,0x96,0x96,0x06,0x2b,0x24, + 0x40,0x65,0x97,0x32,0x15,0xbd,0x76,0x31,0xaf,0x53, + 0xf9,0xc0,0x05,0xb6,0x00,0x00,0x00,0x03,0xff,0xf5, + 0x00,0x00,0x01,0xf0,0x07,0x24,0x00,0x07,0x00,0x0f, + 0x00,0x13,0x00,0x00,0x12,0x32,0x16,0x14,0x06,0x22, + 0x26,0x34,0x24,0x32,0x16,0x14,0x06,0x22,0x26,0x34, + 0x03,0x23,0x11,0x33,0x25,0x4c,0x2f,0x2f,0x4c,0x30, + 0x01,0x7f,0x4c,0x30,0x2f,0x4c,0x30,0x09,0x96,0x96, + 0x07,0x24,0x32,0x5d,0x34,0x33,0x5f,0x31,0x31,0x5f, + 0x33,0x34,0x5d,0xf9,0x0e,0x05,0xb6,0x00,0x00,0x02, + 0x00,0x28,0x00,0x00,0x03,0xae,0x05,0xb6,0x00,0x0b, + 0x00,0x17,0x00,0x00,0x13,0x21,0x32,0x12,0x10,0x02, + 0x23,0x21,0x11,0x23,0x35,0x33,0x13,0x11,0x33,0x15, + 0x23,0x11,0x33,0x20,0x11,0x10,0x02,0x23,0x95,0x01, + 0x34,0xeb,0xfa,0xfc,0xf8,0xfe,0xdb,0x6d,0x6d,0x9c, + 0xd3,0xd3,0x85,0x01,0x57,0xa7,0xa3,0x05,0xb6,0xfe, + 0x8e,0xfd,0x34,0xfe,0x88,0x02,0x9c,0x8b,0x02,0x05, + 0xfd,0xfb,0x8b,0xfd,0xee,0x02,0x58,0x01,0x21,0x01, + 0x29,0x00,0x00,0x02,0x00,0x96,0x00,0x00,0x03,0xec, + 0x07,0x1d,0x00,0x14,0x00,0x24,0x00,0x00,0x01,0x22, + 0x26,0x27,0x26,0x23,0x22,0x07,0x23,0x3e,0x01,0x33, + 0x32,0x1e,0x01,0x32,0x36,0x37,0x33,0x0e,0x01,0x13, + 0x23,0x01,0x23,0x16,0x15,0x11,0x23,0x11,0x33,0x01, + 0x33,0x26,0x35,0x11,0x33,0x02,0xcb,0x22,0x4c,0x1b, + 0x49,0x25,0x3f,0x13,0x60,0x0c,0x5d,0x4e,0x2b,0x5e, + 0x52,0x3e,0x22,0x0b,0x60,0x0a,0x5e,0xd5,0xc2,0xfd, + 0xf9,0x0a,0x10,0x93,0xc3,0x02,0x04,0x07,0x0b,0x93, + 0x06,0x2c,0x26,0x16,0x3d,0x7b,0x75,0x7c,0x3c,0x3c, + 0x3c,0x3e,0x75,0x7c,0xf9,0xd4,0x04,0xcc,0x80,0x86, + 0xfc,0x3a,0x05,0xb6,0xfb,0x42,0x97,0x73,0x03,0xb4, + 0x00,0x00,0x00,0x03,0x00,0x66,0xff,0xec,0x03,0xf5, + 0x07,0x73,0x00,0x0a,0x00,0x13,0x00,0x1c,0x00,0x00, + 0x01,0x33,0x1e,0x01,0x17,0x15,0x23,0x26,0x27,0x26, + 0x27,0x01,0x32,0x12,0x10,0x02,0x20,0x02,0x11,0x10, + 0x05,0x22,0x02,0x10,0x12,0x20,0x12,0x11,0x10,0x01, + 0x0e,0xbd,0x1d,0x6b,0x31,0x5e,0x44,0x5a,0x59,0x21, + 0x01,0x22,0xdb,0xea,0xeb,0xfe,0x44,0xe8,0x01,0xca, + 0x94,0x96,0x96,0x01,0x23,0x96,0x07,0x73,0x43,0xb1, + 0x3d,0x17,0x38,0x60,0x61,0x3d,0xfe,0x6a,0xfe,0x7a, + 0xfd,0x2e,0xfe,0x79,0x01,0x87,0x01,0x6c,0x02,0xec, + 0x8e,0xfe,0xcb,0xfd,0xa8,0xfe,0xca,0x01,0x33,0x01, + 0x30,0x02,0x60,0x00,0x00,0x03,0x00,0x66,0xff,0xec, + 0x03,0xf5,0x07,0x73,0x00,0x09,0x00,0x12,0x00,0x1b, + 0x00,0x00,0x01,0x15,0x0e,0x01,0x07,0x23,0x35,0x3e, + 0x01,0x37,0x03,0x32,0x12,0x10,0x02,0x20,0x02,0x11, + 0x10,0x05,0x22,0x02,0x10,0x12,0x20,0x12,0x11,0x10, + 0x03,0x45,0x1d,0xb1,0x4a,0x5d,0x34,0x67,0x1e,0x59, + 0xdb,0xea,0xeb,0xfe,0x44,0xe8,0x01,0xca,0x94,0x96, + 0x96,0x01,0x23,0x96,0x07,0x73,0x13,0x37,0xc1,0x3d, + 0x16,0x45,0xab,0x42,0xfe,0x58,0xfe,0x7a,0xfd,0x2e, + 0xfe,0x79,0x01,0x87,0x01,0x6c,0x02,0xec,0x8e,0xfe, + 0xcb,0xfd,0xa8,0xfe,0xca,0x01,0x33,0x01,0x30,0x02, + 0x60,0x00,0x00,0x03,0x00,0x66,0xff,0xec,0x03,0xf5, + 0x07,0x73,0x00,0x0e,0x00,0x17,0x00,0x20,0x00,0x00, + 0x01,0x23,0x26,0x2f,0x01,0x06,0x07,0x23,0x35,0x36, + 0x37,0x33,0x1e,0x01,0x17,0x05,0x32,0x12,0x10,0x02, + 0x20,0x02,0x11,0x10,0x05,0x22,0x02,0x10,0x12,0x20, + 0x12,0x11,0x10,0x03,0x3f,0x56,0x2a,0x39,0x5a,0x86, + 0x38,0x55,0x8d,0x38,0x9b,0x15,0x70,0x41,0xfe,0xf1, + 0xdb,0xea,0xeb,0xfe,0x44,0xe8,0x01,0xca,0x94,0x96, + 0x96,0x01,0x23,0x96,0x06,0x2b,0x24,0x40,0x65,0x97, + 0x32,0x15,0xbd,0x76,0x31,0xaf,0x53,0x75,0xfe,0x7a, + 0xfd,0x2e,0xfe,0x79,0x01,0x87,0x01,0x6c,0x02,0xec, + 0x8e,0xfe,0xcb,0xfd,0xa8,0xfe,0xca,0x01,0x33,0x01, + 0x30,0x02,0x60,0x00,0x00,0x00,0x00,0x03,0x00,0x66, + 0xff,0xec,0x03,0xf5,0x07,0x1d,0x00,0x14,0x00,0x1d, + 0x00,0x26,0x00,0x00,0x01,0x22,0x26,0x27,0x26,0x23, + 0x22,0x07,0x23,0x3e,0x01,0x33,0x32,0x1e,0x01,0x32, + 0x36,0x37,0x33,0x0e,0x01,0x07,0x32,0x12,0x10,0x02, + 0x20,0x02,0x11,0x10,0x05,0x22,0x02,0x10,0x12,0x20, + 0x12,0x11,0x10,0x02,0xb2,0x22,0x4c,0x1b,0x49,0x25, + 0x3f,0x13,0x60,0x0c,0x5d,0x4e,0x2b,0x5e,0x52,0x3e, + 0x22,0x0b,0x60,0x0a,0x5e,0xce,0xdb,0xea,0xeb,0xfe, + 0x44,0xe8,0x01,0xca,0x94,0x96,0x96,0x01,0x23,0x96, + 0x06,0x2c,0x26,0x16,0x3d,0x7b,0x75,0x7c,0x3c,0x3c, + 0x3c,0x3e,0x75,0x7c,0x61,0xfe,0x7a,0xfd,0x2e,0xfe, + 0x79,0x01,0x87,0x01,0x6c,0x02,0xec,0x8e,0xfe,0xcb, + 0xfd,0xa8,0xfe,0xca,0x01,0x33,0x01,0x30,0x02,0x60, + 0x00,0x00,0x00,0x04,0x00,0x66,0xff,0xec,0x03,0xf5, + 0x07,0x24,0x00,0x07,0x00,0x0f,0x00,0x18,0x00,0x21, + 0x00,0x00,0x00,0x32,0x16,0x14,0x06,0x22,0x26,0x34, + 0x24,0x32,0x16,0x14,0x06,0x22,0x26,0x34,0x03,0x32, + 0x12,0x10,0x02,0x20,0x02,0x11,0x10,0x05,0x22,0x02, + 0x10,0x12,0x20,0x12,0x11,0x10,0x01,0x66,0x4c,0x2f, + 0x2f,0x4c,0x30,0x01,0x7f,0x4c,0x30,0x2f,0x4c,0x30, + 0x56,0xdb,0xea,0xeb,0xfe,0x44,0xe8,0x01,0xca,0x94, + 0x96,0x96,0x01,0x23,0x96,0x07,0x24,0x32,0x5d,0x34, + 0x33,0x5f,0x31,0x31,0x5f,0x33,0x34,0x5d,0xfe,0xd9, + 0xfe,0x7a,0xfd,0x2e,0xfe,0x79,0x01,0x87,0x01,0x6c, + 0x02,0xec,0x8e,0xfe,0xcb,0xfd,0xa8,0xfe,0xca,0x01, + 0x33,0x01,0x30,0x02,0x60,0x00,0x00,0x01,0x00,0x45, + 0x01,0x54,0x03,0x0c,0x04,0x4f,0x00,0x0f,0x00,0x00, + 0x09,0x01,0x17,0x06,0x07,0x01,0x06,0x07,0x09,0x01, + 0x26,0x27,0x01,0x26,0x27,0x37,0x01,0xa8,0x01,0x0a, + 0x5a,0xb8,0x5d,0x01,0x11,0x04,0x54,0xfe,0xf8,0xfe, + 0xf6,0x4d,0x0c,0x01,0x15,0x8c,0x87,0x59,0x03,0x2d, + 0x01,0x22,0x4b,0xcc,0x65,0xfe,0xd0,0x04,0x48,0x01, + 0x21,0xfe,0xdc,0x44,0x09,0x01,0x32,0x99,0x95,0x4b, + 0x00,0x00,0x00,0x03,0x00,0x66,0xff,0xa0,0x03,0xfe, + 0x06,0x0b,0x00,0x13,0x00,0x1b,0x00,0x22,0x00,0x00, + 0x01,0x16,0x10,0x02,0x23,0x22,0x27,0x07,0x27,0x36, + 0x37,0x26,0x11,0x10,0x21,0x32,0x17,0x37,0x16,0x17, + 0x05,0x22,0x02,0x11,0x14,0x17,0x01,0x26,0x03,0x20, + 0x11,0x34,0x27,0x01,0x16,0x03,0x8a,0x6b,0xeb,0xdd, + 0x97,0x66,0x57,0x6d,0x25,0x4a,0x75,0x01,0xca,0x9a, + 0x6e,0x58,0x02,0x6c,0xfe,0x32,0x94,0x96,0x2e,0x01, + 0xbf,0x46,0x80,0x01,0x26,0x23,0xfe,0x46,0x43,0x04, + 0xf5,0xbd,0xfd,0x3b,0xfe,0x79,0x5f,0xab,0x32,0x48, + 0x94,0xc2,0x01,0x6f,0x02,0xec,0x6e,0xae,0x01,0x33, + 0x9a,0xfe,0xcb,0xfe,0xd5,0xf4,0x8b,0x03,0x72,0x6d, + 0xfb,0x3d,0x02,0x69,0xd1,0x8a,0xfc,0x97,0x5b,0x00, + 0x00,0x02,0x00,0x8b,0xff,0xec,0x03,0x96,0x07,0x73, + 0x00,0x0a,0x00,0x1a,0x00,0x00,0x01,0x33,0x1e,0x01, + 0x17,0x15,0x23,0x26,0x27,0x26,0x27,0x01,0x11,0x14, + 0x02,0x20,0x02,0x35,0x11,0x33,0x11,0x14,0x16,0x32, + 0x36,0x35,0x11,0x00,0xff,0xbd,0x1d,0x6b,0x31,0x5e, + 0x44,0x5a,0x59,0x21,0x02,0x97,0xc4,0xfe,0x81,0xc8, + 0x9c,0x7a,0xe4,0x76,0x07,0x73,0x43,0xb1,0x3d,0x17, + 0x38,0x60,0x61,0x3d,0xfe,0x55,0xfc,0x33,0xfc,0xfe, + 0xff,0x01,0x06,0xf8,0x03,0xcc,0xfc,0x25,0xad,0xb3, + 0xb4,0xad,0x03,0xda,0x00,0x00,0x00,0x02,0x00,0x8b, + 0xff,0xec,0x03,0x96,0x07,0x73,0x00,0x09,0x00,0x19, + 0x00,0x00,0x01,0x15,0x0e,0x01,0x07,0x23,0x35,0x3e, + 0x01,0x37,0x01,0x11,0x14,0x02,0x20,0x02,0x35,0x11, + 0x33,0x11,0x14,0x16,0x32,0x36,0x35,0x11,0x03,0x22, + 0x1d,0xb1,0x4a,0x5d,0x34,0x67,0x1e,0x01,0x30,0xc4, + 0xfe,0x81,0xc8,0x9c,0x7a,0xe4,0x76,0x07,0x73,0x13, + 0x37,0xc1,0x3d,0x16,0x45,0xab,0x42,0xfe,0x43,0xfc, + 0x33,0xfc,0xfe,0xff,0x01,0x06,0xf8,0x03,0xcc,0xfc, + 0x25,0xad,0xb3,0xb4,0xad,0x03,0xda,0x00,0x00,0x02, + 0x00,0x8b,0xff,0xec,0x03,0x96,0x07,0x73,0x00,0x0e, + 0x00,0x1e,0x00,0x00,0x01,0x23,0x26,0x2f,0x01,0x06, + 0x07,0x23,0x35,0x36,0x37,0x33,0x1e,0x01,0x1f,0x01, + 0x11,0x14,0x02,0x20,0x02,0x35,0x11,0x33,0x11,0x14, + 0x16,0x32,0x36,0x35,0x11,0x03,0x24,0x56,0x2a,0x39, + 0x5a,0x86,0x38,0x55,0x8d,0x38,0x9b,0x15,0x70,0x41, + 0x72,0xc4,0xfe,0x81,0xc8,0x9c,0x7a,0xe4,0x76,0x06, + 0x2b,0x24,0x40,0x65,0x97,0x32,0x15,0xbd,0x76,0x31, + 0xaf,0x53,0x8a,0xfc,0x33,0xfc,0xfe,0xff,0x01,0x06, + 0xf8,0x03,0xcc,0xfc,0x25,0xad,0xb3,0xb4,0xad,0x03, + 0xda,0x00,0x00,0x03,0x00,0x8b,0xff,0xec,0x03,0x96, + 0x07,0x24,0x00,0x07,0x00,0x0f,0x00,0x1f,0x00,0x00, + 0x00,0x32,0x16,0x14,0x06,0x22,0x26,0x34,0x24,0x32, + 0x16,0x14,0x06,0x22,0x26,0x34,0x01,0x11,0x14,0x02, + 0x20,0x02,0x35,0x11,0x33,0x11,0x14,0x16,0x32,0x36, + 0x35,0x11,0x01,0x44,0x4c,0x2f,0x2f,0x4c,0x30,0x01, + 0x7f,0x4c,0x30,0x2f,0x4c,0x30,0x01,0x32,0xc4,0xfe, + 0x81,0xc8,0x9c,0x7a,0xe4,0x76,0x07,0x24,0x32,0x5d, + 0x34,0x33,0x5f,0x31,0x31,0x5f,0x33,0x34,0x5d,0xfe, + 0xc4,0xfc,0x33,0xfc,0xfe,0xff,0x01,0x06,0xf8,0x03, + 0xcc,0xfc,0x25,0xad,0xb3,0xb4,0xad,0x03,0xda,0x00, + 0x00,0x02,0x00,0x00,0x00,0x00,0x03,0x09,0x07,0x73, + 0x00,0x09,0x00,0x12,0x00,0x00,0x01,0x15,0x0e,0x01, + 0x07,0x23,0x35,0x3e,0x01,0x37,0x03,0x23,0x11,0x01, + 0x33,0x1b,0x01,0x33,0x01,0x02,0x9d,0x1d,0xb1,0x4a, + 0x5d,0x34,0x67,0x1e,0x10,0x9b,0xfe,0xca,0xa4,0xe1, + 0xe0,0xa4,0xfe,0xc8,0x07,0x73,0x13,0x37,0xc1,0x3d, + 0x16,0x45,0xab,0x42,0xf8,0x8d,0x02,0x3c,0x03,0x7a, + 0xfd,0x48,0x02,0xb8,0xfc,0x8a,0x00,0x02,0x00,0x95, + 0x00,0x00,0x03,0x36,0x05,0xb6,0x00,0x0b,0x00,0x13, + 0x00,0x00,0x01,0x33,0x32,0x16,0x10,0x06,0x2b,0x01, + 0x11,0x23,0x11,0x33,0x19,0x01,0x33,0x32,0x36,0x10, + 0x26,0x23,0x01,0x31,0x64,0xd5,0xcc,0xd6,0xd1,0x5e, + 0x9c,0x9c,0x53,0x94,0x81,0x7f,0x8a,0x04,0xb4,0xcf, + 0xfe,0x45,0xe9,0xfe,0xbf,0x05,0xb6,0xfe,0x70,0xfd, + 0xa7,0x8e,0x01,0x3f,0x8c,0x00,0x00,0x00,0x00,0x01, + 0x00,0x86,0xff,0xec,0x03,0x57,0x06,0x1f,0x00,0x2c, + 0x00,0x00,0x33,0x11,0x34,0x37,0x3e,0x01,0x20,0x16, + 0x10,0x0f,0x01,0x06,0x14,0x16,0x1f,0x01,0x1e,0x01, + 0x17,0x14,0x06,0x20,0x27,0x35,0x16,0x32,0x36,0x35, + 0x34,0x26,0x27,0x2e,0x01,0x35,0x34,0x37,0x3e,0x01, + 0x35,0x34,0x23,0x22,0x06,0x15,0x11,0x86,0x03,0x09, + 0xaa,0x01,0x1e,0x9d,0x60,0x09,0x57,0x23,0x3e,0x2f, + 0x4b,0x44,0x01,0xa0,0xfe,0xf5,0x43,0x5b,0xa4,0x54, + 0x32,0x53,0x52,0x43,0x6e,0x29,0x24,0x94,0x54,0x58, + 0x04,0x5f,0x35,0x32,0xa4,0xb5,0x9c,0xfe,0xf6,0x75, + 0x09,0x6c,0x6b,0x48,0x46,0x2e,0x4b,0x8c,0x5b,0x9b, + 0xaf,0x35,0x8d,0x40,0x63,0x5a,0x40,0x65,0x55,0x55, + 0x84,0x4b,0x72,0x6e,0x38,0x59,0x34,0xab,0x7c,0x77, + 0xfb,0x5a,0x00,0x00,0x00,0x03,0x00,0x46,0xff,0xee, + 0x02,0xc8,0x06,0x21,0x00,0x0a,0x00,0x20,0x00,0x2b, + 0x00,0x00,0x13,0x33,0x1e,0x01,0x17,0x15,0x23,0x26, + 0x27,0x26,0x27,0x13,0x27,0x36,0x20,0x16,0x15,0x11, + 0x23,0x27,0x23,0x06,0x23,0x22,0x26,0x10,0x36,0x3f, + 0x01,0x35,0x34,0x26,0x22,0x13,0x35,0x06,0x07,0x0e, + 0x01,0x15,0x14,0x33,0x32,0x36,0x9d,0xbd,0x1d,0x6b, + 0x31,0x5e,0x44,0x5a,0x59,0x21,0x2f,0x3a,0x82,0x01, + 0x26,0x8e,0x74,0x1a,0x05,0x52,0x9f,0x78,0x86,0xbc, + 0xb0,0x7f,0x48,0xb2,0xfa,0x22,0x44,0x76,0x71,0x89, + 0x5c,0x68,0x06,0x21,0x43,0xb1,0x3d,0x17,0x38,0x60, + 0x61,0x3d,0xfd,0x8c,0x6f,0x52,0xb6,0xc1,0xfd,0x1b, + 0x98,0xaa,0xa8,0x01,0x3a,0xb3,0x08,0x06,0x56,0x80, + 0x77,0xfd,0xda,0x6a,0x01,0x04,0x06,0x77,0x73,0xc7, + 0xb3,0x00,0x00,0x00,0x00,0x03,0x00,0x46,0xff,0xee, + 0x02,0xc8,0x06,0x21,0x00,0x09,0x00,0x1f,0x00,0x2a, + 0x00,0x00,0x01,0x15,0x0e,0x01,0x07,0x23,0x35,0x3e, + 0x01,0x37,0x01,0x27,0x36,0x20,0x16,0x15,0x11,0x23, + 0x27,0x23,0x06,0x23,0x22,0x26,0x10,0x36,0x3f,0x01, + 0x35,0x34,0x26,0x22,0x13,0x35,0x06,0x07,0x0e,0x01, + 0x15,0x14,0x33,0x32,0x36,0x02,0xaf,0x1d,0xb1,0x4a, + 0x5d,0x34,0x67,0x1e,0xfe,0xd9,0x3a,0x82,0x01,0x26, + 0x8e,0x74,0x1a,0x05,0x52,0x9f,0x78,0x86,0xbc,0xb0, + 0x7f,0x48,0xb2,0xfa,0x22,0x44,0x76,0x71,0x89,0x5c, + 0x68,0x06,0x21,0x13,0x37,0xc1,0x3d,0x16,0x45,0xab, + 0x42,0xfd,0x7a,0x6f,0x52,0xb6,0xc1,0xfd,0x1b,0x98, + 0xaa,0xa8,0x01,0x3a,0xb3,0x08,0x06,0x56,0x80,0x77, + 0xfd,0xda,0x6a,0x01,0x04,0x06,0x77,0x73,0xc7,0xb3, + 0x00,0x03,0x00,0x46,0xff,0xee,0x02,0xc8,0x06,0x22, + 0x00,0x0e,0x00,0x24,0x00,0x2f,0x00,0x00,0x01,0x23, + 0x26,0x2f,0x01,0x06,0x07,0x23,0x35,0x36,0x37,0x33, + 0x1e,0x01,0x17,0x01,0x27,0x36,0x20,0x16,0x15,0x11, + 0x23,0x27,0x23,0x06,0x23,0x22,0x26,0x10,0x36,0x3f, + 0x01,0x35,0x34,0x26,0x22,0x13,0x35,0x06,0x07,0x0e, + 0x01,0x15,0x14,0x33,0x32,0x36,0x02,0xb8,0x56,0x2a, + 0x39,0x5a,0x86,0x38,0x55,0x8d,0x38,0x9b,0x15,0x70, + 0x41,0xfe,0x14,0x3a,0x82,0x01,0x26,0x8e,0x74,0x1a, + 0x05,0x52,0x9f,0x78,0x86,0xbc,0xb0,0x7f,0x48,0xb2, + 0xfa,0x22,0x44,0x76,0x71,0x89,0x5c,0x68,0x04,0xda, + 0x24,0x40,0x65,0x97,0x32,0x15,0xbd,0x76,0x31,0xaf, + 0x53,0xfe,0xac,0x6f,0x52,0xb6,0xc1,0xfd,0x1b,0x98, + 0xaa,0xa8,0x01,0x3a,0xb3,0x08,0x06,0x56,0x80,0x77, + 0xfd,0xda,0x6a,0x01,0x04,0x06,0x77,0x73,0xc7,0xb3, + 0x00,0x00,0x00,0x03,0x00,0x46,0xff,0xee,0x02,0xe0, + 0x05,0xcb,0x00,0x14,0x00,0x2a,0x00,0x35,0x00,0x00, + 0x01,0x22,0x26,0x27,0x26,0x23,0x22,0x07,0x23,0x3e, + 0x01,0x33,0x32,0x1e,0x01,0x32,0x36,0x37,0x33,0x0e, + 0x01,0x01,0x27,0x36,0x20,0x16,0x15,0x11,0x23,0x27, + 0x23,0x06,0x23,0x22,0x26,0x10,0x36,0x3f,0x01,0x35, + 0x34,0x26,0x22,0x13,0x35,0x06,0x07,0x0e,0x01,0x15, + 0x14,0x33,0x32,0x36,0x02,0x2c,0x22,0x4c,0x1b,0x49, + 0x25,0x3f,0x13,0x60,0x0c,0x5d,0x4e,0x2b,0x5e,0x52, + 0x3e,0x22,0x0b,0x60,0x0a,0x5e,0xfe,0x54,0x3a,0x82, + 0x01,0x26,0x8e,0x74,0x1a,0x05,0x52,0x9f,0x78,0x86, + 0xbc,0xb0,0x7f,0x48,0xb2,0xfa,0x22,0x44,0x76,0x71, + 0x89,0x5c,0x68,0x04,0xda,0x26,0x16,0x3d,0x7b,0x75, + 0x7c,0x3c,0x3c,0x3c,0x3e,0x75,0x7c,0xfe,0xc1,0x6f, + 0x52,0xb6,0xc1,0xfd,0x1b,0x98,0xaa,0xa8,0x01,0x3a, + 0xb3,0x08,0x06,0x56,0x80,0x77,0xfd,0xda,0x6a,0x01, + 0x04,0x06,0x77,0x73,0xc7,0xb3,0x00,0x04,0x00,0x46, + 0xff,0xee,0x02,0xc8,0x05,0xd2,0x00,0x07,0x00,0x0f, + 0x00,0x25,0x00,0x30,0x00,0x00,0x12,0x32,0x16,0x14, + 0x06,0x22,0x26,0x34,0x24,0x32,0x16,0x14,0x06,0x22, + 0x26,0x34,0x01,0x27,0x36,0x20,0x16,0x15,0x11,0x23, + 0x27,0x23,0x06,0x23,0x22,0x26,0x10,0x36,0x3f,0x01, + 0x35,0x34,0x26,0x22,0x13,0x35,0x06,0x07,0x0e,0x01, + 0x15,0x14,0x33,0x32,0x36,0xd5,0x4c,0x2f,0x2f,0x4c, + 0x30,0x01,0x7f,0x4c,0x30,0x2f,0x4c,0x30,0xfe,0xd7, + 0x3a,0x82,0x01,0x26,0x8e,0x74,0x1a,0x05,0x52,0x9f, + 0x78,0x86,0xbc,0xb0,0x7f,0x48,0xb2,0xfa,0x22,0x44, + 0x76,0x71,0x89,0x5c,0x68,0x05,0xd2,0x32,0x5d,0x34, + 0x33,0x5f,0x31,0x31,0x5f,0x33,0x34,0x5d,0xfd,0xfb, + 0x6f,0x52,0xb6,0xc1,0xfd,0x1b,0x98,0xaa,0xa8,0x01, + 0x3a,0xb3,0x08,0x06,0x56,0x80,0x77,0xfd,0xda,0x6a, + 0x01,0x04,0x06,0x77,0x73,0xc7,0xb3,0x00,0x00,0x04, + 0x00,0x46,0xff,0xee,0x02,0xc8,0x06,0x73,0x00,0x07, + 0x00,0x0f,0x00,0x25,0x00,0x30,0x00,0x00,0x12,0x36, + 0x32,0x16,0x14,0x06,0x22,0x26,0x24,0x26,0x22,0x06, + 0x14,0x16,0x32,0x36,0x01,0x27,0x36,0x20,0x16,0x15, + 0x11,0x23,0x27,0x23,0x06,0x23,0x22,0x26,0x10,0x36, + 0x3f,0x01,0x35,0x34,0x26,0x22,0x13,0x35,0x06,0x07, + 0x0e,0x01,0x15,0x14,0x33,0x32,0x36,0xce,0x76,0xbe, + 0x7a,0x76,0xc3,0x75,0x01,0x48,0x3d,0x67,0x40,0x3b, + 0x6a,0x3f,0xfe,0xb6,0x3a,0x82,0x01,0x26,0x8e,0x74, + 0x1a,0x05,0x52,0x9f,0x78,0x86,0xbc,0xb0,0x7f,0x48, + 0xb2,0xfa,0x22,0x44,0x76,0x71,0x89,0x5c,0x68,0x06, + 0x05,0x6e,0x6f,0xb6,0x6f,0x6c,0x90,0x3d,0x3e,0x65, + 0x3c,0x3d,0xfe,0x25,0x6f,0x52,0xb6,0xc1,0xfd,0x1b, + 0x98,0xaa,0xa8,0x01,0x3a,0xb3,0x08,0x06,0x56,0x80, + 0x77,0xfd,0xda,0x6a,0x01,0x04,0x06,0x77,0x73,0xc7, + 0xb3,0x00,0x00,0x00,0x00,0x03,0x00,0x46,0xff,0xec, + 0x04,0xd3,0x04,0x5b,0x00,0x23,0x00,0x29,0x00,0x34, + 0x00,0x00,0x13,0x27,0x36,0x33,0x32,0x17,0x36,0x20, + 0x12,0x1d,0x01,0x21,0x12,0x33,0x32,0x37,0x15,0x06, + 0x23,0x22,0x26,0x27,0x0e,0x01,0x23,0x22,0x26,0x10, + 0x36,0x3f,0x01,0x35,0x34,0x26,0x23,0x22,0x01,0x34, + 0x26,0x23,0x22,0x03,0x07,0x35,0x06,0x07,0x0e,0x01, + 0x15,0x14,0x33,0x32,0x36,0xcc,0x3a,0x82,0x8a,0xb0, + 0x47,0x58,0x01,0x37,0xaf,0xfd,0xf7,0x09,0xed,0x79, + 0x73,0x6e,0x8d,0x6d,0xa4,0x2d,0x31,0x90,0x66,0x7c, + 0x8a,0xbc,0xb0,0x7f,0x4b,0x4f,0x60,0x03,0x08,0x61, + 0x53,0xab,0x13,0x9c,0x22,0x44,0x77,0x70,0x89,0x5c, + 0x68,0x03,0x9b,0x6f,0x50,0x90,0x91,0xfe,0xfc,0xe0, + 0x6a,0xfe,0x5f,0x48,0x84,0x44,0x72,0x6a,0x73,0x69, + 0xab,0x01,0x39,0xb3,0x08,0x06,0x56,0x7c,0x7b,0xfe, + 0xa8,0x9d,0xb9,0xfe,0xaa,0xce,0x6a,0x01,0x04,0x06, + 0x73,0x77,0xc7,0xb3,0x00,0x01,0x00,0x58,0xfe,0x14, + 0x02,0x7e,0x04,0x5b,0x00,0x22,0x00,0x00,0x01,0x22, + 0x11,0x14,0x16,0x33,0x32,0x37,0x15,0x06,0x0f,0x01, + 0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x32, + 0x36,0x35,0x34,0x27,0x37,0x24,0x11,0x10,0x21,0x32, + 0x17,0x07,0x26,0x01,0xc9,0xd5,0x6b,0x70,0x4a,0x5c, + 0x54,0x5d,0x25,0x9e,0x83,0x7a,0x40,0x25,0x2d,0x71, + 0x41,0xa3,0x47,0xfe,0xfa,0x01,0x62,0x72,0x52,0x32, + 0x47,0x03,0xd4,0xfe,0x4b,0xdc,0xd0,0x2a,0x83,0x2b, + 0x03,0x52,0x27,0x8c,0x66,0x6d,0x0e,0x67,0x0d,0x36, + 0x31,0x64,0x1a,0x97,0x46,0x01,0xdf,0x02,0x3e,0x30, + 0x7c,0x25,0x00,0x03,0x00,0x58,0xff,0xec,0x02,0xfb, + 0x06,0x21,0x00,0x0a,0x00,0x1b,0x00,0x21,0x00,0x00, + 0x13,0x33,0x1e,0x01,0x17,0x15,0x23,0x26,0x27,0x26, + 0x27,0x01,0x22,0x02,0x10,0x12,0x33,0x32,0x12,0x1d, + 0x01,0x21,0x12,0x33,0x32,0x37,0x15,0x06,0x13,0x34, + 0x26,0x23,0x22,0x03,0xb4,0xbd,0x1d,0x6b,0x31,0x5e, + 0x44,0x5a,0x59,0x21,0x01,0x28,0xb9,0xcb,0xb6,0xa9, + 0x96,0xae,0xfd,0xf7,0x06,0xf4,0x72,0x76,0x70,0x01, + 0x60,0x53,0xad,0x10,0x06,0x21,0x43,0xb1,0x3d,0x17, + 0x38,0x60,0x61,0x3d,0xf9,0xdd,0x01,0x25,0x02,0x20, + 0x01,0x2a,0xfe,0xfb,0xdf,0x6a,0xfe,0x62,0x47,0x86, + 0x44,0x02,0x9a,0x9d,0xbb,0xfe,0xa8,0x00,0x00,0x03, + 0x00,0x58,0xff,0xec,0x02,0xfb,0x06,0x21,0x00,0x09, + 0x00,0x1a,0x00,0x20,0x00,0x00,0x01,0x15,0x0e,0x01, + 0x07,0x23,0x35,0x3e,0x01,0x37,0x03,0x22,0x02,0x10, + 0x12,0x33,0x32,0x12,0x1d,0x01,0x21,0x12,0x33,0x32, + 0x37,0x15,0x06,0x13,0x34,0x26,0x23,0x22,0x03,0x02, + 0xce,0x1d,0xb1,0x4a,0x5d,0x34,0x67,0x1e,0x36,0xb9, + 0xcb,0xb6,0xa9,0x96,0xae,0xfd,0xf7,0x06,0xf4,0x72, + 0x76,0x70,0x01,0x60,0x53,0xad,0x10,0x06,0x21,0x13, + 0x37,0xc1,0x3d,0x16,0x45,0xab,0x42,0xf9,0xcb,0x01, + 0x25,0x02,0x20,0x01,0x2a,0xfe,0xfb,0xdf,0x6a,0xfe, + 0x62,0x47,0x86,0x44,0x02,0x9a,0x9d,0xbb,0xfe,0xa8, + 0x00,0x03,0x00,0x58,0xff,0xec,0x02,0xfb,0x06,0x21, + 0x00,0x0e,0x00,0x1f,0x00,0x25,0x00,0x00,0x01,0x23, + 0x26,0x2f,0x01,0x06,0x07,0x23,0x35,0x36,0x37,0x33, + 0x1e,0x01,0x17,0x03,0x22,0x02,0x10,0x12,0x33,0x32, + 0x12,0x1d,0x01,0x21,0x12,0x33,0x32,0x37,0x15,0x06, + 0x13,0x34,0x26,0x23,0x22,0x03,0x02,0xc8,0x56,0x2a, + 0x39,0x5a,0x86,0x38,0x55,0x8d,0x38,0x9b,0x15,0x70, + 0x41,0xec,0xb9,0xcb,0xb6,0xa9,0x96,0xae,0xfd,0xf7, + 0x06,0xf4,0x72,0x76,0x70,0x01,0x60,0x53,0xad,0x10, + 0x04,0xd9,0x24,0x40,0x65,0x97,0x32,0x15,0xbd,0x76, + 0x31,0xaf,0x53,0xfa,0xfe,0x01,0x25,0x02,0x20,0x01, + 0x2a,0xfe,0xfb,0xdf,0x6a,0xfe,0x62,0x47,0x86,0x44, + 0x02,0x9a,0x9d,0xbb,0xfe,0xa8,0x00,0x00,0x00,0x04, + 0x00,0x58,0xff,0xec,0x02,0xfb,0x05,0xd2,0x00,0x07, + 0x00,0x0f,0x00,0x20,0x00,0x26,0x00,0x00,0x12,0x32, + 0x16,0x14,0x06,0x22,0x26,0x34,0x24,0x32,0x16,0x14, + 0x06,0x22,0x26,0x34,0x03,0x22,0x02,0x10,0x12,0x33, + 0x32,0x12,0x1d,0x01,0x21,0x12,0x33,0x32,0x37,0x15, + 0x06,0x13,0x34,0x26,0x23,0x22,0x03,0xe7,0x4c,0x2f, + 0x2f,0x4c,0x30,0x01,0x7f,0x4c,0x30,0x2f,0x4c,0x30, + 0x2b,0xb9,0xcb,0xb6,0xa9,0x96,0xae,0xfd,0xf7,0x06, + 0xf4,0x72,0x76,0x70,0x01,0x60,0x53,0xad,0x10,0x05, + 0xd2,0x32,0x5d,0x34,0x33,0x5f,0x31,0x31,0x5f,0x33, + 0x34,0x5d,0xfa,0x4c,0x01,0x25,0x02,0x20,0x01,0x2a, + 0xfe,0xfb,0xdf,0x6a,0xfe,0x62,0x47,0x86,0x44,0x02, + 0x9a,0x9d,0xbb,0xfe,0xa8,0x00,0x00,0x02,0xff,0xc6, + 0x00,0x00,0x01,0x3c,0x06,0x21,0x00,0x0a,0x00,0x0e, + 0x00,0x00,0x03,0x33,0x1e,0x01,0x17,0x15,0x23,0x26, + 0x27,0x26,0x27,0x01,0x23,0x11,0x33,0x3a,0xbd,0x1d, + 0x6b,0x31,0x5e,0x44,0x5a,0x59,0x21,0x01,0x59,0x98, + 0x98,0x06,0x21,0x43,0xb1,0x3d,0x17,0x38,0x60,0x61, + 0x3d,0xf9,0xf1,0x04,0x47,0x00,0x00,0x02,0x00,0x71, + 0x00,0x00,0x01,0xe6,0x06,0x21,0x00,0x09,0x00,0x0d, + 0x00,0x00,0x01,0x15,0x0e,0x01,0x07,0x23,0x35,0x3e, + 0x01,0x37,0x03,0x23,0x11,0x33,0x01,0xe6,0x1d,0xb1, + 0x4a,0x5d,0x34,0x67,0x1e,0x0b,0x98,0x98,0x06,0x21, + 0x13,0x37,0xc1,0x3d,0x16,0x45,0xab,0x42,0xf9,0xdf, + 0x04,0x47,0x00,0x02,0xff,0xbf,0x00,0x00,0x01,0xe5, + 0x06,0x21,0x00,0x0e,0x00,0x12,0x00,0x00,0x01,0x23, + 0x26,0x2f,0x01,0x06,0x07,0x23,0x35,0x36,0x37,0x33, + 0x1e,0x01,0x17,0x03,0x23,0x11,0x33,0x01,0xe5,0x56, + 0x2a,0x39,0x5a,0x86,0x38,0x55,0x8d,0x38,0x9b,0x15, + 0x70,0x41,0xc6,0x98,0x98,0x04,0xd9,0x24,0x40,0x65, + 0x97,0x32,0x15,0xbd,0x76,0x31,0xaf,0x53,0xfb,0x12, + 0x04,0x47,0x00,0x00,0x00,0x03,0xff,0xd7,0x00,0x00, + 0x01,0xd2,0x05,0xd2,0x00,0x07,0x00,0x0f,0x00,0x13, + 0x00,0x00,0x12,0x32,0x16,0x14,0x06,0x22,0x26,0x34, + 0x24,0x32,0x16,0x14,0x06,0x22,0x26,0x34,0x03,0x23, + 0x11,0x33,0x07,0x4c,0x2f,0x2f,0x4c,0x30,0x01,0x7f, + 0x4c,0x30,0x2f,0x4c,0x30,0x08,0x98,0x98,0x05,0xd2, + 0x32,0x5d,0x34,0x33,0x5f,0x31,0x31,0x5f,0x33,0x34, + 0x5d,0xfa,0x60,0x04,0x47,0x00,0x00,0x02,0x00,0x57, + 0xff,0xec,0x03,0x34,0x06,0x18,0x00,0x1b,0x00,0x25, + 0x00,0x00,0x13,0x37,0x16,0x17,0x36,0x37,0x17,0x07, + 0x00,0x11,0x10,0x02,0x23,0x22,0x02,0x10,0x12,0x33, + 0x32,0x17,0x32,0x37,0x26,0x27,0x07,0x27,0x37,0x26, + 0x13,0x22,0x11,0x14,0x16,0x32,0x36,0x35,0x34,0x26, + 0xe7,0x3e,0x60,0x4c,0x9a,0x28,0x39,0xac,0x01,0x14, + 0xbe,0xb5,0xa5,0xc5,0xaf,0xa1,0x8d,0x4f,0x06,0x03, + 0x32,0xa9,0xbe,0x39,0xaa,0x36,0x9b,0xd8,0x71,0xd2, + 0x66,0x75,0x05,0xbb,0x5d,0x36,0x44,0x5f,0x19,0x5b, + 0x6a,0xfe,0xcd,0xfd,0xf6,0xfe,0xf2,0xfe,0xe6,0x01, + 0x10,0x01,0xc9,0x01,0x01,0x79,0x01,0xfd,0xc1,0x74, + 0x5c,0x67,0x30,0xfd,0xb9,0xfe,0x90,0xa4,0xc0,0xbe, + 0xc4,0x95,0xbd,0x00,0x00,0x02,0x00,0x86,0x00,0x00, + 0x03,0x1d,0x05,0xcb,0x00,0x14,0x00,0x28,0x00,0x00, + 0x01,0x22,0x26,0x27,0x26,0x23,0x22,0x07,0x23,0x3e, + 0x01,0x33,0x32,0x1e,0x01,0x32,0x36,0x37,0x33,0x0e, + 0x01,0x05,0x17,0x33,0x3e,0x01,0x33,0x32,0x16,0x15, + 0x11,0x23,0x11,0x10,0x23,0x22,0x06,0x19,0x01,0x23, + 0x11,0x02,0x55,0x22,0x4c,0x1b,0x49,0x25,0x3f,0x13, + 0x60,0x0c,0x5d,0x4e,0x2b,0x5e,0x52,0x3e,0x22,0x0b, + 0x60,0x0a,0x5e,0xfe,0x60,0x10,0x0c,0x22,0x82,0x4f, + 0x88,0x85,0x98,0x93,0x7a,0x5b,0x97,0x04,0xda,0x26, + 0x16,0x3d,0x7b,0x75,0x7c,0x3c,0x3c,0x3c,0x3e,0x75, + 0x7c,0x94,0x94,0x50,0x59,0xb7,0xbe,0xfd,0x1a,0x02, + 0xd0,0x01,0x06,0xdb,0xfe,0xf5,0xfe,0x10,0x04,0x46, + 0x00,0x00,0x00,0x03,0x00,0x57,0xff,0xec,0x03,0x30, + 0x06,0x21,0x00,0x0a,0x00,0x12,0x00,0x1a,0x00,0x00, + 0x13,0x33,0x1e,0x01,0x17,0x15,0x23,0x26,0x27,0x26, + 0x27,0x02,0x12,0x20,0x12,0x10,0x02,0x20,0x02,0x01, + 0x22,0x06,0x10,0x16,0x33,0x32,0x10,0xbe,0xbd,0x1d, + 0x6b,0x31,0x5e,0x44,0x5a,0x59,0x21,0x67,0xbd,0x01, + 0x5a,0xc2,0xc0,0xfe,0xa7,0xc0,0x01,0x6c,0x6d,0x63, + 0x65,0x6b,0xd0,0x06,0x21,0x43,0xb1,0x3d,0x17,0x38, + 0x60,0x61,0x3d,0xfd,0x27,0x01,0x25,0xfe,0xd3,0xfd, + 0xe6,0xfe,0xd8,0x01,0x29,0x02,0xbf,0xd4,0xfe,0x4c, + 0xd9,0x03,0x61,0x00,0x00,0x00,0x00,0x03,0x00,0x57, + 0xff,0xec,0x03,0x30,0x06,0x21,0x00,0x09,0x00,0x11, + 0x00,0x19,0x00,0x00,0x01,0x15,0x0e,0x01,0x07,0x23, + 0x35,0x3e,0x01,0x37,0x00,0x12,0x20,0x12,0x10,0x02, + 0x20,0x02,0x01,0x22,0x06,0x10,0x16,0x33,0x32,0x10, + 0x02,0xd2,0x1d,0xb1,0x4a,0x5d,0x34,0x67,0x1e,0xfe, + 0x41,0xbd,0x01,0x5a,0xc2,0xc0,0xfe,0xa7,0xc0,0x01, + 0x6c,0x6d,0x63,0x65,0x6b,0xd0,0x06,0x21,0x13,0x37, + 0xc1,0x3d,0x16,0x45,0xab,0x42,0xfd,0x15,0x01,0x25, + 0xfe,0xd3,0xfd,0xe6,0xfe,0xd8,0x01,0x29,0x02,0xbf, + 0xd4,0xfe,0x4c,0xd9,0x03,0x61,0x00,0x03,0x00,0x57, + 0xff,0xec,0x03,0x30,0x06,0x21,0x00,0x0e,0x00,0x16, + 0x00,0x1e,0x00,0x00,0x01,0x23,0x26,0x2f,0x01,0x06, + 0x07,0x23,0x35,0x36,0x37,0x33,0x1e,0x01,0x17,0x00, + 0x12,0x20,0x12,0x10,0x02,0x20,0x02,0x01,0x22,0x06, + 0x10,0x16,0x33,0x32,0x10,0x02,0xd8,0x56,0x2a,0x39, + 0x5a,0x86,0x38,0x55,0x8d,0x38,0x9b,0x15,0x70,0x41, + 0xfd,0x7f,0xbd,0x01,0x5a,0xc2,0xc0,0xfe,0xa7,0xc0, + 0x01,0x6c,0x6d,0x63,0x65,0x6b,0xd0,0x04,0xd9,0x24, + 0x40,0x65,0x97,0x32,0x15,0xbd,0x76,0x31,0xaf,0x53, + 0xfe,0x48,0x01,0x25,0xfe,0xd3,0xfd,0xe6,0xfe,0xd8, + 0x01,0x29,0x02,0xbf,0xd4,0xfe,0x4c,0xd9,0x03,0x61, + 0x00,0x00,0x00,0x03,0x00,0x57,0xff,0xec,0x03,0x30, + 0x05,0xcb,0x00,0x14,0x00,0x1c,0x00,0x24,0x00,0x00, + 0x01,0x22,0x26,0x27,0x26,0x23,0x22,0x07,0x23,0x3e, + 0x01,0x33,0x32,0x1e,0x01,0x32,0x36,0x37,0x33,0x0e, + 0x01,0x00,0x12,0x20,0x12,0x10,0x02,0x20,0x02,0x01, + 0x22,0x06,0x10,0x16,0x33,0x32,0x10,0x02,0x42,0x22, + 0x4c,0x1b,0x49,0x25,0x3f,0x13,0x60,0x0c,0x5d,0x4e, + 0x2b,0x5e,0x52,0x3e,0x22,0x0b,0x60,0x0a,0x5e,0xfd, + 0xc9,0xbd,0x01,0x5a,0xc2,0xc0,0xfe,0xa7,0xc0,0x01, + 0x6c,0x6d,0x63,0x65,0x6b,0xd0,0x04,0xda,0x26,0x16, + 0x3d,0x7b,0x75,0x7c,0x3c,0x3c,0x3c,0x3e,0x75,0x7c, + 0xfe,0x5c,0x01,0x25,0xfe,0xd3,0xfd,0xe6,0xfe,0xd8, + 0x01,0x29,0x02,0xbf,0xd4,0xfe,0x4c,0xd9,0x03,0x61, + 0x00,0x04,0x00,0x57,0xff,0xec,0x03,0x30,0x05,0xd2, + 0x00,0x07,0x00,0x0f,0x00,0x17,0x00,0x1f,0x00,0x00, + 0x12,0x32,0x16,0x14,0x06,0x22,0x26,0x34,0x24,0x32, + 0x16,0x14,0x06,0x22,0x26,0x34,0x00,0x12,0x20,0x12, + 0x10,0x02,0x20,0x02,0x01,0x22,0x06,0x10,0x16,0x33, + 0x32,0x10,0xf7,0x4c,0x2f,0x2f,0x4c,0x30,0x01,0x7f, + 0x4c,0x30,0x2f,0x4c,0x30,0xfe,0x40,0xbd,0x01,0x5a, + 0xc2,0xc0,0xfe,0xa7,0xc0,0x01,0x6c,0x6d,0x63,0x65, + 0x6b,0xd0,0x05,0xd2,0x32,0x5d,0x34,0x33,0x5f,0x31, + 0x31,0x5f,0x33,0x34,0x5d,0xfd,0x96,0x01,0x25,0xfe, + 0xd3,0xfd,0xe6,0xfe,0xd8,0x01,0x29,0x02,0xbf,0xd4, + 0xfe,0x4c,0xd9,0x03,0x61,0x00,0x00,0x03,0x00,0x4a, + 0x00,0xfd,0x03,0x08,0x04,0xa6,0x00,0x06,0x00,0x0a, + 0x00,0x11,0x00,0x00,0x00,0x34,0x32,0x15,0x14,0x06, + 0x23,0x01,0x21,0x35,0x21,0x01,0x22,0x34,0x32,0x15, + 0x14,0x06,0x01,0x4c,0xb9,0x32,0x2a,0x01,0x5f,0xfd, + 0x42,0x02,0xbe,0xfe,0xa1,0x5d,0xb9,0x32,0x03,0xb8, + 0xee,0x77,0x3b,0x3c,0xfe,0xdc,0x7c,0xfd,0xed,0xee, + 0x76,0x3b,0x3d,0x00,0x00,0x03,0x00,0x54,0xff,0x81, + 0x03,0x33,0x04,0xa6,0x00,0x14,0x00,0x1d,0x00,0x25, + 0x00,0x00,0x25,0x06,0x07,0x27,0x36,0x37,0x26,0x10, + 0x12,0x33,0x32,0x17,0x37,0x16,0x17,0x07,0x16,0x10, + 0x02,0x23,0x22,0x13,0x22,0x06,0x15,0x14,0x17,0x12, + 0x13,0x26,0x03,0x32,0x36,0x35,0x26,0x27,0x01,0x16, + 0x01,0x0f,0x08,0x4b,0x68,0x55,0x10,0x62,0xbc,0xb2, + 0x6e,0x50,0x49,0x11,0x56,0x5c,0x59,0xbf,0xb0,0x6a, + 0x6c,0x6d,0x66,0x1a,0x8c,0xad,0x31,0x4f,0x69,0x6b, + 0x01,0x16,0xfe,0xce,0x2a,0x26,0x0f,0x96,0x35,0xa7, + 0x21,0x97,0x02,0x22,0x01,0x24,0x47,0x92,0x09,0x2b, + 0xbb,0x95,0xfd,0xf1,0xfe,0xd9,0x03,0xe8,0xd6,0xd9, + 0x85,0x7c,0x01,0x15,0x01,0x5c,0x3f,0xfc,0x9f,0xdc, + 0xd6,0x8a,0x5b,0xfd,0x9a,0x31,0x00,0x02,0x00,0x80, + 0xff,0xec,0x03,0x17,0x06,0x21,0x00,0x0a,0x00,0x20, + 0x00,0x00,0x13,0x33,0x1e,0x01,0x17,0x15,0x23,0x26, + 0x27,0x26,0x27,0x01,0x23,0x26,0x27,0x23,0x0e,0x01, + 0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33, + 0x32,0x36,0x35,0x11,0x33,0xb8,0xbd,0x1d,0x6b,0x31, + 0x5e,0x44,0x5a,0x59,0x21,0x02,0x5f,0x7b,0x08,0x0b, + 0x0a,0x24,0x80,0x4e,0x89,0x84,0x98,0x46,0x4c,0x6e, + 0x68,0x97,0x06,0x21,0x43,0xb1,0x3d,0x17,0x38,0x60, + 0x61,0x3d,0xf9,0xf1,0x38,0x5d,0x50,0x59,0xc1,0xcf, + 0x02,0xca,0xfd,0x4b,0x95,0x8b,0xc0,0xd6,0x02,0x3f, + 0x00,0x02,0x00,0x80,0xff,0xec,0x03,0x17,0x06,0x21, + 0x00,0x09,0x00,0x1f,0x00,0x00,0x01,0x15,0x0e,0x01, + 0x07,0x23,0x35,0x3e,0x01,0x37,0x13,0x23,0x26,0x27, + 0x23,0x0e,0x01,0x23,0x22,0x26,0x35,0x11,0x33,0x11, + 0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x02,0xde, + 0x1d,0xb1,0x4a,0x5d,0x34,0x67,0x1e,0xf5,0x7b,0x08, + 0x0b,0x0a,0x24,0x80,0x4e,0x89,0x84,0x98,0x46,0x4c, + 0x6e,0x68,0x97,0x06,0x21,0x13,0x37,0xc1,0x3d,0x16, + 0x45,0xab,0x42,0xf9,0xdf,0x38,0x5d,0x50,0x59,0xc1, + 0xcf,0x02,0xca,0xfd,0x4b,0x95,0x8b,0xc0,0xd6,0x02, + 0x3f,0x00,0x00,0x00,0x00,0x02,0x00,0x80,0xff,0xec, + 0x03,0x17,0x06,0x21,0x00,0x0e,0x00,0x24,0x00,0x00, + 0x01,0x23,0x26,0x2f,0x01,0x06,0x07,0x23,0x35,0x36, + 0x37,0x33,0x1e,0x01,0x17,0x13,0x23,0x26,0x27,0x23, + 0x0e,0x01,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14, + 0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x02,0xdb,0x56, + 0x2a,0x39,0x5a,0x86,0x38,0x55,0x8d,0x38,0x9b,0x15, + 0x70,0x41,0x3c,0x7b,0x08,0x0b,0x0a,0x24,0x80,0x4e, + 0x89,0x84,0x98,0x46,0x4c,0x6e,0x68,0x97,0x04,0xd9, + 0x24,0x40,0x65,0x97,0x32,0x15,0xbd,0x76,0x31,0xaf, + 0x53,0xfb,0x12,0x38,0x5d,0x50,0x59,0xc1,0xcf,0x02, + 0xca,0xfd,0x4b,0x95,0x8b,0xc0,0xd6,0x02,0x3f,0x00, + 0x00,0x03,0x00,0x80,0xff,0xec,0x03,0x17,0x05,0xd2, + 0x00,0x07,0x00,0x0f,0x00,0x25,0x00,0x00,0x00,0x32, + 0x16,0x14,0x06,0x22,0x26,0x34,0x24,0x32,0x16,0x14, + 0x06,0x22,0x26,0x34,0x13,0x23,0x26,0x27,0x23,0x0e, + 0x01,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16, + 0x33,0x32,0x36,0x35,0x11,0x33,0x01,0x00,0x4c,0x2f, + 0x2f,0x4c,0x30,0x01,0x7f,0x4c,0x30,0x2f,0x4c,0x30, + 0xf7,0x7b,0x08,0x0b,0x0a,0x24,0x80,0x4e,0x89,0x84, + 0x98,0x46,0x4c,0x6e,0x68,0x97,0x05,0xd2,0x32,0x5d, + 0x34,0x33,0x5f,0x31,0x31,0x5f,0x33,0x34,0x5d,0xfa, + 0x60,0x38,0x5d,0x50,0x59,0xc1,0xcf,0x02,0xca,0xfd, + 0x4b,0x95,0x8b,0xc0,0xd6,0x02,0x3f,0x00,0x00,0x00, + 0x00,0x02,0x00,0x06,0xfe,0x14,0x02,0xdc,0x06,0x21, + 0x00,0x09,0x00,0x24,0x00,0x00,0x01,0x15,0x0e,0x01, + 0x07,0x23,0x35,0x3e,0x01,0x37,0x02,0x06,0x22,0x27, + 0x35,0x16,0x33,0x32,0x36,0x3f,0x01,0x01,0x33,0x13, + 0x16,0x17,0x33,0x36,0x37,0x12,0x37,0x33,0x02,0x03, + 0x0e,0x02,0x02,0x85,0x1d,0xb1,0x4a,0x5d,0x34,0x67, + 0x1e,0xc3,0x59,0x6b,0x36,0x2a,0x29,0x3e,0x4c,0x19, + 0x27,0xfe,0xdd,0x9c,0xa0,0x1c,0x16,0x07,0x15,0x18, + 0x6c,0x2b,0x9d,0x86,0x91,0x1c,0x29,0x3b,0x06,0x21, + 0x13,0x37,0xc1,0x3d,0x16,0x45,0xab,0x42,0xf8,0x1f, + 0x2c,0x11,0x84,0x0e,0x61,0x6b,0x95,0x04,0x4a,0xfd, + 0x6b,0x73,0x93,0x8a,0x75,0x01,0xda,0xc2,0xfd,0xf4, + 0xfd,0xc0,0x6a,0x83,0x86,0x00,0x00,0x00,0x00,0x02, + 0x00,0x86,0xfe,0x14,0x03,0x4e,0x06,0x14,0x00,0x11, + 0x00,0x1c,0x00,0x00,0x01,0x07,0x33,0x36,0x20,0x12, + 0x10,0x02,0x23,0x22,0x26,0x27,0x23,0x17,0x11,0x23, + 0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x10,0x26, + 0x22,0x06,0x07,0x01,0x1d,0x07,0x07,0x55,0x01,0x37, + 0xa5,0xa6,0x95,0x50,0x80,0x26,0x09,0x0d,0x9b,0x97, + 0x66,0x6c,0x61,0x60,0x5d,0xd1,0x64,0x01,0x04,0x47, + 0x95,0xa9,0xfe,0xe0,0xfd,0xdc,0xfe,0xd5,0x54,0x4e, + 0x86,0xfe,0x0c,0x08,0x00,0xfc,0x16,0xe3,0xd6,0xd2, + 0x01,0xc3,0xce,0xbd,0xcd,0x00,0x00,0x00,0x00,0x03, + 0x00,0x06,0xfe,0x14,0x02,0xdc,0x05,0xd2,0x00,0x07, + 0x00,0x0f,0x00,0x2a,0x00,0x00,0x12,0x32,0x16,0x14, + 0x06,0x22,0x26,0x34,0x24,0x32,0x16,0x14,0x06,0x22, + 0x26,0x34,0x02,0x06,0x22,0x27,0x35,0x16,0x33,0x32, + 0x36,0x3f,0x01,0x01,0x33,0x13,0x16,0x17,0x33,0x36, + 0x37,0x12,0x37,0x33,0x02,0x03,0x0e,0x02,0xa7,0x4c, + 0x2f,0x2f,0x4c,0x30,0x01,0x7f,0x4c,0x30,0x2f,0x4c, + 0x30,0xc1,0x59,0x6b,0x36,0x2a,0x29,0x3e,0x4c,0x19, + 0x27,0xfe,0xdd,0x9c,0xa0,0x1c,0x16,0x07,0x15,0x18, + 0x6c,0x2b,0x9d,0x86,0x91,0x1c,0x29,0x3b,0x05,0xd2, + 0x32,0x5d,0x34,0x33,0x5f,0x31,0x31,0x5f,0x33,0x34, + 0x5d,0xf8,0xa0,0x2c,0x11,0x84,0x0e,0x61,0x6b,0x95, + 0x04,0x4a,0xfd,0x6b,0x73,0x93,0x8a,0x75,0x01,0xda, + 0xc2,0xfd,0xf4,0xfd,0xc0,0x6a,0x83,0x86,0x00,0x01, + 0x00,0x87,0x00,0x00,0x01,0x1f,0x04,0x47,0x00,0x03, + 0x00,0x00,0x21,0x23,0x11,0x33,0x01,0x1f,0x98,0x98, + 0x04,0x47,0x00,0x02,0x00,0x66,0xff,0xf6,0x04,0xb9, + 0x05,0xc1,0x00,0x14,0x00,0x1e,0x00,0x00,0x29,0x01, + 0x22,0x06,0x07,0x22,0x02,0x10,0x12,0x33,0x32,0x17, + 0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x11,0x21,0x01, + 0x22,0x02,0x10,0x12,0x33,0x32,0x37,0x11,0x26,0x04, + 0xb9,0xfe,0x45,0x1f,0x76,0x18,0xf3,0xf8,0xfe,0xf3, + 0x33,0x4f,0x01,0xe0,0xfe,0x5f,0x01,0x86,0xfe,0x7a, + 0x01,0xa1,0xfd,0xa0,0xae,0xa4,0xa4,0xb0,0x17,0x0b, + 0x0c,0x09,0x01,0x01,0x7a,0x02,0xd8,0x01,0x79,0x0b, + 0x8d,0xfe,0x19,0x8d,0xfd,0xd8,0x04,0xa2,0xfe,0xe5, + 0xfd,0x90,0xfe,0xe3,0x01,0x04,0xa6,0x01,0x00,0x00, + 0x00,0x03,0x00,0x57,0xff,0xec,0x05,0x34,0x04,0x5b, + 0x00,0x17,0x00,0x1d,0x00,0x26,0x00,0x00,0x05,0x22, + 0x27,0x06,0x23,0x22,0x02,0x10,0x12,0x20,0x17,0x36, + 0x33,0x32,0x12,0x1d,0x01,0x21,0x12,0x33,0x32,0x37, + 0x15,0x06,0x13,0x34,0x26,0x23,0x22,0x03,0x07,0x35, + 0x10,0x23,0x22,0x06,0x15,0x10,0x20,0x04,0x16,0xd4, + 0x61,0x5b,0xc5,0xaa,0xc0,0xb9,0x01,0x70,0x5d,0x59, + 0xbb,0x95,0xae,0xfd,0xf8,0x07,0xf9,0x6c,0x76,0x71, + 0x02,0x60,0x53,0xad,0x10,0x9d,0xcf,0x6d,0x63,0x01, + 0x9f,0x14,0xc9,0xc9,0x01,0x29,0x02,0x24,0x01,0x22, + 0xc6,0xc6,0xfe,0xfc,0xe0,0x6a,0xfe,0x61,0x46,0x84, + 0x44,0x02,0x9a,0x9e,0xb8,0xfe,0xaa,0x72,0x11,0x01, + 0xaf,0xd4,0xdb,0xfe,0x4b,0x00,0x00,0x00,0x00,0x02, + 0x00,0x50,0xff,0xec,0x02,0xe9,0x07,0x73,0x00,0x0d, + 0x00,0x2b,0x00,0x00,0x01,0x15,0x0e,0x01,0x07,0x23, + 0x26,0x27,0x35,0x33,0x16,0x17,0x36,0x37,0x01,0x32, + 0x36,0x34,0x26,0x27,0x2e,0x01,0x10,0x36,0x20,0x17, + 0x06,0x07,0x26,0x22,0x06,0x14,0x16,0x17,0x1e,0x01, + 0x15,0x14,0x06,0x20,0x27,0x35,0x1e,0x01,0x02,0xc9, + 0x3c,0x72,0x18,0x9b,0x41,0x84,0x55,0x37,0x89,0x78, + 0x43,0xfe,0xfc,0x64,0x7b,0x6e,0x64,0x9f,0x81,0xc7, + 0x01,0x3c,0x7b,0x13,0x24,0x74,0xc5,0x75,0x56,0x8a, + 0x92,0x82,0xcb,0xfe,0xa8,0x76,0x3c,0x9c,0x07,0x73, + 0x16,0x4e,0xb2,0x32,0x82,0xb0,0x16,0x30,0x9a,0x92, + 0x38,0xf9,0x06,0x90,0xcf,0x8b,0x3d,0x59,0xb8,0x01, + 0x44,0xd6,0x48,0x2d,0x5a,0x3e,0x83,0xd0,0x7b,0x4d, + 0x4f,0xc2,0x89,0xbb,0xde,0x3a,0xa0,0x23,0x2a,0x00, + 0x00,0x00,0x00,0x02,0x00,0x46,0xff,0xec,0x02,0x73, + 0x06,0x21,0x00,0x0d,0x00,0x33,0x00,0x00,0x01,0x15, + 0x0e,0x01,0x07,0x23,0x26,0x27,0x35,0x33,0x16,0x17, + 0x36,0x37,0x00,0x16,0x32,0x36,0x35,0x34,0x27,0x2e, + 0x03,0x27,0x26,0x35,0x34,0x37,0x36,0x20,0x17,0x07, + 0x26,0x22,0x06,0x15,0x14,0x1f,0x01,0x1e,0x02,0x17, + 0x16,0x15,0x14,0x06,0x20,0x27,0x35,0x02,0x73,0x3c, + 0x72,0x18,0x9b,0x41,0x84,0x55,0x37,0x89,0x78,0x43, + 0xfe,0x4b,0x8b,0x8f,0x58,0x18,0x07,0x2e,0x14,0x7e, + 0x3b,0x7a,0x55,0x57,0x01,0x0f,0x68,0x3e,0x5b,0xa0, + 0x55,0x3c,0x82,0x2b,0x33,0x3c,0x10,0x26,0x9f,0xfe, + 0xd6,0x5a,0x06,0x21,0x16,0x4e,0xb2,0x32,0x82,0xb0, + 0x16,0x30,0x9a,0x92,0x38,0xfa,0x81,0x2d,0x58,0x42, + 0x32,0x31,0x0f,0x2b,0x0f,0x5a,0x2f,0x61,0x9c,0x7d, + 0x4f,0x4f,0x44,0x76,0x38,0x54,0x44,0x58,0x2e,0x61, + 0x20,0x2a,0x40,0x1f,0x48,0x5b,0x91,0x92,0x3e,0x97, + 0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x03,0x09, + 0x07,0x24,0x00,0x07,0x00,0x0f,0x00,0x18,0x00,0x00, + 0x12,0x32,0x16,0x14,0x06,0x22,0x26,0x34,0x24,0x32, + 0x16,0x14,0x06,0x22,0x26,0x34,0x03,0x23,0x11,0x01, + 0x33,0x1b,0x01,0x33,0x01,0xb9,0x4c,0x2f,0x2f,0x4c, + 0x30,0x01,0x7f,0x4c,0x30,0x2f,0x4c,0x30,0x08,0x9b, + 0xfe,0xca,0xa4,0xe1,0xe0,0xa4,0xfe,0xc8,0x07,0x24, + 0x32,0x5d,0x34,0x33,0x5f,0x31,0x31,0x5f,0x33,0x34, + 0x5d,0xf9,0x0e,0x02,0x3c,0x03,0x7a,0xfd,0x48,0x02, + 0xb8,0xfc,0x8a,0x00,0x00,0x02,0x00,0x34,0x00,0x00, + 0x02,0xa7,0x07,0x73,0x00,0x0d,0x00,0x17,0x00,0x00, + 0x01,0x15,0x0e,0x01,0x07,0x23,0x26,0x27,0x35,0x33, + 0x16,0x17,0x36,0x37,0x13,0x15,0x21,0x35,0x01,0x21, + 0x35,0x21,0x15,0x01,0x02,0x7d,0x3c,0x72,0x18,0x9b, + 0x41,0x84,0x55,0x37,0x89,0x78,0x43,0x80,0xfd,0x8d, + 0x01,0xb7,0xfe,0x52,0x02,0x5d,0xfe,0x45,0x07,0x73, + 0x16,0x4e,0xb2,0x32,0x82,0xb0,0x16,0x30,0x9a,0x92, + 0x38,0xf9,0x1b,0x8e,0x7a,0x04,0xad,0x8f,0x7b,0xfb, + 0x53,0x00,0x00,0x02,0x00,0x26,0x00,0x00,0x02,0x4c, + 0x06,0x21,0x00,0x0d,0x00,0x17,0x00,0x00,0x01,0x15, + 0x0e,0x01,0x07,0x23,0x26,0x27,0x35,0x33,0x16,0x17, + 0x36,0x37,0x13,0x15,0x21,0x35,0x01,0x21,0x35,0x21, + 0x15,0x01,0x02,0x4c,0x3c,0x72,0x18,0x9b,0x41,0x84, + 0x55,0x37,0x89,0x78,0x43,0x39,0xfe,0x06,0x01,0x47, + 0xfe,0xce,0x01,0xd6,0xfe,0xbd,0x06,0x21,0x16,0x4e, + 0xb2,0x32,0x82,0xb0,0x16,0x30,0x9a,0x92,0x38,0xfa, + 0x5e,0x7f,0x6b,0x03,0x5c,0x80,0x72,0xfc,0xaa,0x00, + 0x00,0x01,0x00,0x45,0xfe,0x14,0x03,0x11,0x05,0xcb, + 0x00,0x20,0x00,0x00,0x01,0x34,0x36,0x33,0x32,0x17, + 0x07,0x26,0x23,0x22,0x06,0x07,0x15,0x33,0x15,0x23, + 0x02,0x11,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33, + 0x32,0x36,0x35,0x11,0x23,0x35,0x37,0x01,0x4f,0x77, + 0x90,0x5e,0x5d,0x32,0x42,0x37,0x44,0x34,0x02,0xc7, + 0xc7,0x01,0x8a,0x8e,0x48,0x46,0x43,0x35,0x4e,0x44, + 0xa2,0xa2,0x04,0x38,0xd1,0xc2,0x29,0x7e,0x1f,0x6c, + 0x83,0x91,0x7f,0xfe,0xc3,0xfd,0x87,0xbf,0xbb,0x11, + 0x88,0x12,0x6f,0x78,0x03,0xc2,0x50,0x34,0x00,0x00, + 0x00,0x01,0x01,0x2a,0x04,0xd9,0x03,0x50,0x06,0x21, + 0x00,0x0e,0x00,0x00,0x01,0x23,0x26,0x2f,0x01,0x06, + 0x07,0x23,0x35,0x36,0x37,0x33,0x1e,0x01,0x17,0x03, + 0x50,0x56,0x2a,0x39,0x5a,0x86,0x38,0x55,0x8d,0x38, + 0x9b,0x15,0x70,0x41,0x04,0xd9,0x24,0x40,0x65,0x97, + 0x32,0x15,0xbd,0x76,0x31,0xaf,0x53,0x00,0x00,0x00, + 0x00,0x01,0x01,0x2a,0x04,0xd9,0x03,0x50,0x06,0x21, + 0x00,0x0d,0x00,0x00,0x01,0x15,0x0e,0x01,0x07,0x23, + 0x26,0x27,0x35,0x33,0x16,0x17,0x36,0x37,0x03,0x50, + 0x3c,0x72,0x18,0x9b,0x41,0x84,0x55,0x37,0x89,0x78, + 0x43,0x06,0x21,0x16,0x4e,0xb2,0x32,0x82,0xb0,0x16, + 0x30,0x9a,0x92,0x38,0x00,0x00,0x00,0x01,0x01,0x44, + 0x04,0xdb,0x03,0x34,0x05,0xe4,0x00,0x0b,0x00,0x00, + 0x01,0x22,0x03,0x33,0x1e,0x01,0x32,0x36,0x37,0x33, + 0x0e,0x01,0x02,0x37,0xe5,0x0e,0x62,0x07,0x47,0x8a, + 0x46,0x0b,0x65,0x06,0x84,0x04,0xdb,0x01,0x09,0x4b, + 0x43,0x43,0x4b,0x7e,0x8b,0x00,0x00,0x00,0x00,0x01, + 0x00,0x83,0x05,0x02,0x01,0x3c,0x05,0xdf,0x00,0x07, + 0x00,0x00,0x12,0x36,0x32,0x16,0x14,0x06,0x22,0x26, + 0x83,0x32,0x59,0x2e,0x30,0x56,0x33,0x05,0xa6,0x39, + 0x39,0x6a,0x3a,0x3a,0x00,0x02,0x01,0x6d,0x04,0xdf, + 0x03,0x1b,0x06,0x73,0x00,0x07,0x00,0x0f,0x00,0x00, + 0x00,0x36,0x32,0x16,0x14,0x06,0x22,0x26,0x24,0x26, + 0x22,0x06,0x14,0x16,0x32,0x36,0x01,0x6d,0x76,0xbe, + 0x7a,0x76,0xc3,0x75,0x01,0x48,0x3d,0x67,0x40,0x3b, + 0x6a,0x3f,0x06,0x05,0x6e,0x6f,0xb6,0x6f,0x6c,0x90, + 0x3d,0x3e,0x65,0x3c,0x3d,0x00,0x00,0x00,0x00,0x01, + 0x00,0x25,0xfe,0x37,0x01,0x53,0x00,0x00,0x00,0x13, + 0x00,0x00,0x01,0x06,0x22,0x27,0x26,0x35,0x37,0x36, + 0x35,0x34,0x27,0x36,0x37,0x33,0x06,0x07,0x16,0x1f, + 0x01,0x14,0x01,0x42,0x2f,0xa3,0x36,0x15,0x2f,0x34, + 0x26,0x27,0x2a,0x6a,0x5e,0x06,0x23,0x4e,0x29,0xfe, + 0x56,0x1f,0x2a,0x36,0x4c,0x2c,0x26,0x2c,0x20,0x12, + 0x41,0x2c,0x64,0x63,0x50,0x23,0x0d,0x35,0x00,0x00, + 0x00,0x01,0x01,0x10,0x04,0xd8,0x03,0x6d,0x05,0xcb, + 0x00,0x14,0x00,0x00,0x01,0x22,0x26,0x27,0x26,0x23, + 0x22,0x07,0x23,0x3e,0x01,0x33,0x32,0x1e,0x01,0x32, + 0x36,0x37,0x33,0x0e,0x01,0x02,0xb9,0x22,0x4c,0x1b, + 0x49,0x25,0x3f,0x13,0x60,0x0c,0x5d,0x4e,0x2b,0x5e, + 0x52,0x3e,0x22,0x0b,0x60,0x0a,0x5e,0x04,0xda,0x26, + 0x16,0x3d,0x7b,0x75,0x7c,0x3c,0x3c,0x3c,0x3e,0x75, + 0x7c,0x00,0x00,0x02,0x00,0xf4,0x04,0xd9,0x03,0x7e, + 0x06,0x21,0x00,0x09,0x00,0x13,0x00,0x00,0x01,0x15, + 0x0e,0x01,0x07,0x23,0x35,0x3e,0x01,0x37,0x21,0x15, + 0x0e,0x01,0x07,0x23,0x35,0x3e,0x01,0x37,0x02,0x4b, + 0x24,0x9d,0x45,0x51,0x2c,0x67,0x18,0x01,0xdf,0x20, + 0x9a,0x4c,0x51,0x2c,0x67,0x18,0x06,0x21,0x12,0x42, + 0xb8,0x3c,0x17,0x3b,0xbe,0x38,0x12,0x3e,0xb4,0x44, + 0x17,0x3b,0xbe,0x38,0x00,0x02,0xff,0xba,0xfd,0xd4, + 0x00,0x49,0xff,0xb0,0x00,0x05,0x00,0x0b,0x00,0x00, + 0x15,0x32,0x14,0x23,0x22,0x34,0x13,0x32,0x14,0x23, + 0x22,0x34,0x49,0x49,0x46,0x46,0x49,0x49,0x46,0x50, + 0xad,0xad,0xfe,0xd1,0xad,0xad,0x00,0x00,0x00,0x05, + 0xfe,0x70,0xfd,0xd4,0x01,0x6e,0xff,0xb0,0x00,0x05, + 0x00,0x0b,0x00,0x11,0x00,0x17,0x00,0x1d,0x00,0x00, + 0x05,0x32,0x14,0x23,0x22,0x34,0x21,0x32,0x14,0x23, + 0x22,0x34,0x21,0x32,0x14,0x23,0x22,0x34,0x01,0x32, + 0x14,0x23,0x22,0x34,0x21,0x32,0x14,0x23,0x22,0x34, + 0xfe,0xb6,0x49,0x49,0x46,0x01,0x90,0x49,0x49,0x46, + 0x01,0x6b,0x49,0x49,0x46,0xfe,0x7b,0x49,0x49,0x46, + 0x02,0x11,0x49,0x49,0x46,0x50,0xad,0xad,0xad,0xad, + 0xad,0xad,0xfe,0xd1,0xad,0xad,0xad,0xad,0x00,0x00, + 0x00,0x03,0xfe,0xb6,0xfd,0xd4,0x01,0x49,0xff,0xb0, + 0x00,0x05,0x00,0x09,0x00,0x0f,0x00,0x00,0x05,0x32, + 0x14,0x23,0x22,0x34,0x07,0x21,0x35,0x21,0x13,0x32, + 0x14,0x23,0x22,0x34,0x01,0x00,0x49,0x49,0x46,0x6a, + 0xfe,0x66,0x01,0x9a,0xb0,0x49,0x49,0x46,0x50,0xad, + 0xad,0x7f,0x52,0xfe,0xfe,0xad,0xad,0x00,0x00,0x00, + 0x00,0x03,0xfe,0xbb,0xfd,0xd4,0x01,0x4e,0xff,0xb0, + 0x00,0x05,0x00,0x0d,0x00,0x13,0x00,0x00,0x05,0x32, + 0x14,0x23,0x22,0x34,0x07,0x23,0x15,0x23,0x35,0x23, + 0x35,0x21,0x13,0x32,0x14,0x23,0x22,0x34,0x01,0x05, + 0x49,0x49,0x46,0x6a,0xa4,0x52,0xa4,0x01,0x9a,0xb0, + 0x49,0x49,0x46,0x50,0xad,0xad,0x7f,0xe8,0xe8,0x52, + 0xfe,0xfe,0xad,0xad,0x00,0x01,0xff,0xb9,0xff,0x03, + 0x00,0x48,0xff,0xb0,0x00,0x05,0x00,0x00,0x07,0x32, + 0x14,0x23,0x22,0x34,0x01,0x49,0x49,0x46,0x50,0xad, + 0xad,0x00,0x00,0x02,0xff,0x14,0xff,0x03,0x00,0xed, + 0xff,0xb0,0x00,0x05,0x00,0x0b,0x00,0x00,0x07,0x32, + 0x14,0x23,0x22,0x34,0x21,0x32,0x14,0x23,0x22,0x34, + 0xa6,0x49,0x49,0x46,0x01,0x90,0x49,0x49,0x46,0x50, + 0xad,0xad,0xad,0xad,0x00,0x00,0x00,0x03,0xff,0x16, + 0xfd,0xd4,0x00,0xef,0xff,0xb0,0x00,0x05,0x00,0x0b, + 0x00,0x11,0x00,0x00,0x07,0x32,0x14,0x23,0x22,0x34, + 0x21,0x32,0x14,0x23,0x22,0x34,0x03,0x32,0x14,0x23, + 0x22,0x34,0xa4,0x49,0x49,0x46,0x01,0x90,0x49,0x49, + 0x46,0x60,0x49,0x49,0x46,0x50,0xad,0xad,0xad,0xad, + 0xfe,0xd1,0xad,0xad,0x00,0x00,0x00,0x01,0xff,0x34, + 0xff,0x3a,0x00,0xce,0xff,0x8c,0x00,0x03,0x00,0x00, + 0x17,0x21,0x35,0x21,0xce,0xfe,0x66,0x01,0x9a,0xc6, + 0x52,0x00,0x00,0x00,0x00,0x01,0xff,0x2f,0xfe,0x52, + 0x00,0xc9,0xff,0x8c,0x00,0x07,0x00,0x00,0x17,0x23, + 0x15,0x23,0x35,0x23,0x35,0x21,0xc9,0xa4,0x52,0xa4, + 0x01,0x9a,0xc6,0xe8,0xe8,0x52,0x00,0x01,0xff,0xb9, + 0x05,0x82,0x00,0x48,0x06,0x2f,0x00,0x05,0x00,0x00, + 0x03,0x32,0x14,0x23,0x22,0x34,0x01,0x49,0x49,0x46, + 0x06,0x2f,0xad,0xad,0x00,0x01,0xff,0xb9,0x05,0x82, + 0x00,0x48,0x06,0x2f,0x00,0x05,0x00,0x00,0x03,0x32, + 0x14,0x23,0x22,0x34,0x01,0x49,0x49,0x46,0x06,0x2f, + 0xad,0xad,0x00,0x03,0xff,0x6d,0xfd,0xd4,0x01,0x46, + 0xff,0xb0,0x00,0x05,0x00,0x0b,0x00,0x11,0x00,0x00, + 0x07,0x32,0x14,0x23,0x22,0x34,0x17,0x32,0x14,0x23, + 0x22,0x34,0x17,0x32,0x14,0x23,0x22,0x34,0x4d,0x49, + 0x49,0x46,0xea,0x49,0x49,0x46,0xec,0x49,0x49,0x46, + 0x50,0xad,0xad,0x97,0xad,0xad,0x98,0xad,0xad,0x00, + 0x00,0x00,0x00,0x01,0xff,0xba,0x02,0x73,0x00,0x49, + 0x03,0x20,0x00,0x05,0x00,0x00,0x11,0x32,0x14,0x23, + 0x22,0x34,0x49,0x49,0x46,0x03,0x20,0xad,0xad,0x00, + 0x00,0x01,0xff,0xcd,0xfe,0x03,0x00,0x34,0xff,0x63, + 0x00,0x03,0x00,0x00,0x13,0x23,0x11,0x33,0x34,0x67, + 0x67,0xfe,0x03,0x01,0x60,0x00,0x00,0x00,0x00,0x01, + 0x00,0x3b,0x04,0x78,0x01,0xf4,0x05,0x09,0x00,0x03, + 0x00,0x00,0x01,0x21,0x35,0x21,0x01,0xf4,0xfe,0x47, + 0x01,0xb9,0x04,0x78,0x91,0x00,0x00,0x01,0xff,0xba, + 0x05,0x82,0x00,0x49,0x06,0x2f,0x00,0x05,0x00,0x00, + 0x11,0x32,0x14,0x23,0x22,0x34,0x49,0x49,0x46,0x06, + 0x2f,0xad,0xad,0x00,0x00,0x01,0xff,0xba,0x05,0x6e, + 0x00,0x49,0x06,0x1b,0x00,0x05,0x00,0x00,0x11,0x32, + 0x14,0x23,0x22,0x34,0x49,0x49,0x46,0x06,0x1b,0xad, + 0xad,0x00,0x00,0x01,0xff,0x34,0xfe,0x50,0x00,0xce, + 0xff,0x9e,0x00,0x07,0x00,0x00,0x17,0x23,0x15,0x23, + 0x35,0x23,0x35,0x21,0xce,0xa1,0x5d,0x9c,0x01,0x9a, + 0xc6,0xea,0xea,0x64,0x00,0x01,0x00,0x44,0x00,0x00, + 0x03,0x13,0x05,0x0a,0x00,0x1d,0x00,0x00,0x01,0x11, + 0x14,0x06,0x07,0x06,0x07,0x16,0x12,0x17,0x23,0x01, + 0x0e,0x01,0x15,0x11,0x23,0x11,0x34,0x37,0x36,0x37, + 0x03,0x33,0x13,0x17,0x3e,0x01,0x35,0x11,0x03,0x0f, + 0x0c,0x12,0x26,0x79,0x23,0x84,0x1a,0xab,0xfe,0xd8, + 0x37,0x28,0x95,0x58,0x28,0x3c,0xc4,0xaa,0xc3,0x69, + 0x38,0x28,0x05,0x0a,0xfe,0x2d,0x3c,0x5e,0x37,0x73, + 0x34,0x53,0xfe,0xd1,0x3d,0x02,0xce,0x28,0x8f,0x76, + 0xfe,0x5f,0x01,0xc7,0xd6,0x65,0x2d,0x1c,0x01,0xbf, + 0xfe,0x19,0xe7,0x24,0x85,0x78,0x01,0xad,0x00,0x01, + 0x00,0x5d,0x00,0x00,0x03,0x0a,0x05,0x1e,0x00,0x15, + 0x00,0x00,0x13,0x36,0x32,0x1e,0x03,0x15,0x11,0x33, + 0x15,0x21,0x35,0x21,0x11,0x34,0x27,0x26,0x23,0x22, + 0x0f,0x01,0x5d,0x6b,0xcf,0x80,0x4f,0x2e,0x10,0x66, + 0xfd,0x54,0x01,0xae,0x5c,0x2d,0x43,0x7d,0x4b,0x1b, + 0x05,0x12,0x0c,0x24,0x3e,0x66,0x71,0x4f,0xfc,0xe9, + 0x7f,0x7f,0x03,0x17,0xca,0x28,0x14,0x0a,0x03,0x00, + 0x00,0x01,0x00,0x59,0xff,0xf7,0x02,0x3a,0x05,0x1e, + 0x00,0x22,0x00,0x00,0x21,0x27,0x23,0x07,0x0e,0x03, + 0x07,0x06,0x23,0x22,0x27,0x37,0x14,0x16,0x33,0x32, + 0x36,0x35,0x11,0x34,0x26,0x23,0x22,0x07,0x35,0x36, + 0x32,0x1e,0x03,0x15,0x11,0x01,0xc5,0x15,0x0a,0x0a, + 0x02,0x19,0x15,0x2b,0x17,0x3f,0x47,0x25,0x26,0x13, + 0x31,0x0f,0x84,0x73,0x38,0x54,0x26,0x47,0x43,0x82, + 0x66,0x3a,0x21,0x0a,0xcc,0x1e,0x06,0x3a,0x1c,0x2f, + 0x0c,0x20,0x0a,0x91,0x03,0x08,0xbd,0xbf,0x01,0xbb, + 0x72,0x6a,0x13,0x85,0x12,0x27,0x3d,0x61,0x5c,0x3f, + 0xfc,0x42,0x00,0x00,0x00,0x01,0x00,0x14,0x00,0x00, + 0x02,0xc2,0x05,0x0a,0x00,0x0e,0x00,0x00,0x01,0x15, + 0x06,0x15,0x11,0x23,0x11,0x34,0x36,0x37,0x36,0x3f, + 0x01,0x21,0x35,0x02,0xc2,0xc2,0x97,0x1d,0x14,0x2a, + 0x22,0x0e,0xfe,0x20,0x05,0x0a,0x74,0x46,0xd4,0xfc, + 0x84,0x03,0x7e,0x3a,0x61,0x1d,0x3b,0x11,0x08,0x80, + 0x00,0x02,0x00,0x86,0x00,0x00,0x03,0x3c,0x05,0x1e, + 0x00,0x0e,0x00,0x12,0x00,0x00,0x01,0x32,0x16,0x15, + 0x11,0x23,0x11,0x34,0x2e,0x02,0x22,0x07,0x35,0x36, + 0x03,0x23,0x11,0x33,0x01,0xbb,0xd5,0xac,0x99,0x19, + 0x3e,0x57,0xb2,0xbd,0xa3,0x0b,0x98,0x98,0x05,0x1e, + 0xa9,0xdd,0xfc,0x68,0x03,0x98,0x52,0x66,0x38,0x14, + 0x1b,0x81,0x1c,0xfa,0xe2,0x03,0x30,0x00,0x00,0x01, + 0x00,0x86,0x00,0x00,0x01,0x1d,0x05,0x0a,0x00,0x03, + 0x00,0x00,0x21,0x23,0x11,0x33,0x01,0x1d,0x97,0x97, + 0x05,0x0a,0x00,0x01,0x00,0x81,0x00,0x00,0x01,0xc2, + 0x05,0x0a,0x00,0x0e,0x00,0x00,0x01,0x15,0x0e,0x01, + 0x07,0x06,0x15,0x11,0x23,0x11,0x34,0x12,0x37,0x23, + 0x35,0x01,0xc2,0x32,0x47,0x07,0x03,0x97,0x50,0x43, + 0xba,0x05,0x0a,0x78,0x37,0xd1,0xbe,0x40,0x14,0xfd, + 0x88,0x02,0x2b,0xd1,0x01,0x35,0x59,0x80,0x00,0x01, + 0x00,0x86,0x00,0x00,0x03,0x3c,0x05,0x1e,0x00,0x13, + 0x00,0x00,0x33,0x11,0x32,0x36,0x37,0x36,0x33,0x32, + 0x16,0x15,0x11,0x23,0x11,0x34,0x2e,0x02,0x22,0x07, + 0x11,0x86,0x04,0x5b,0x20,0x69,0x4d,0xd5,0xac,0x99, + 0x19,0x3e,0x57,0x7f,0x58,0x05,0x02,0x0d,0x03,0x0c, + 0xa9,0xdd,0xfc,0x68,0x03,0x98,0x52,0x66,0x38,0x14, + 0x0b,0xfb,0x6f,0x00,0x00,0x00,0x00,0x01,0x00,0x5f, + 0xff,0xec,0x03,0x4f,0x05,0x1e,0x00,0x20,0x00,0x00, + 0x01,0x32,0x17,0x16,0x11,0x10,0x07,0x06,0x23,0x22, + 0x27,0x26,0x19,0x01,0x33,0x11,0x10,0x17,0x1e,0x01, + 0x32,0x36,0x37,0x36,0x11,0x10,0x27,0x2e,0x01,0x22, + 0x07,0x35,0x36,0x01,0xe2,0x7c,0x53,0x9e,0x9f,0x5b, + 0x7d,0x7e,0x5b,0xa0,0x9c,0x41,0x20,0x4c,0x60,0x4b, + 0x1f,0x41,0x41,0x1f,0x4c,0x55,0x2f,0x34,0x05,0x1e, + 0x54,0xa1,0xfe,0x5c,0xfe,0x61,0x9f,0x5b,0x5b,0xa0, + 0x01,0x9e,0x02,0x84,0xfd,0x7c,0xfe,0xcc,0x77,0x3a, + 0x32,0x32,0x3a,0x78,0x01,0x33,0x01,0x31,0x7a,0x3a, + 0x32,0x0a,0x81,0x0b,0x00,0x01,0x00,0x83,0x01,0xd2, + 0x01,0x1a,0x05,0x0a,0x00,0x05,0x00,0x00,0x01,0x06, + 0x07,0x23,0x11,0x33,0x01,0x1a,0x6d,0x03,0x27,0x97, + 0x02,0x71,0x9b,0x04,0x03,0x38,0x00,0x01,0x00,0x2d, + 0xfe,0x14,0x02,0x56,0x05,0x1e,0x00,0x0e,0x00,0x00, + 0x13,0x36,0x32,0x1e,0x01,0x17,0x16,0x15,0x11,0x23, + 0x11,0x10,0x23,0x22,0x07,0x2d,0x66,0xac,0x7f,0x51, + 0x19,0x2e,0x99,0xd9,0x5b,0x5c,0x04,0xfc,0x22,0x3d, + 0x67,0x4c,0x88,0xd0,0xfb,0x3e,0x04,0xc2,0x01,0xc0, + 0x28,0x00,0x00,0x01,0x00,0x2d,0xff,0xec,0x02,0x56, + 0x05,0x1e,0x00,0x1e,0x00,0x00,0x13,0x36,0x32,0x1e, + 0x01,0x17,0x16,0x1d,0x01,0x14,0x0e,0x03,0x22,0x27, + 0x35,0x1e,0x01,0x32,0x3e,0x02,0x37,0x36,0x3d,0x01, + 0x10,0x23,0x22,0x07,0x2d,0x66,0xac,0x7f,0x51,0x19, + 0x2e,0x10,0x31,0x4d,0x85,0xbe,0x54,0x4d,0x4b,0x4b, + 0x4b,0x2d,0x1e,0x06,0x0b,0xd7,0x51,0x66,0x04,0xfc, + 0x22,0x3d,0x67,0x4c,0x88,0xd0,0xc6,0x52,0x8e,0x96, + 0x6a,0x44,0x1c,0x89,0x1a,0x07,0x2c,0x4d,0x53,0x34, + 0x55,0x4b,0xc6,0x01,0xc0,0x27,0x00,0x00,0x00,0x01, + 0x00,0x2c,0x00,0x00,0x02,0x81,0x06,0x1c,0x00,0x0f, + 0x00,0x00,0x13,0x21,0x15,0x06,0x02,0x07,0x06,0x03, + 0x23,0x36,0x12,0x37,0x13,0x21,0x11,0x33,0xc3,0x01, + 0xbe,0x1d,0x6c,0x18,0x19,0x46,0x96,0x09,0x4a,0x0a, + 0xa6,0xfe,0x3e,0x97,0x05,0x0e,0x86,0x75,0xfe,0x46, + 0x62,0x88,0xfe,0x91,0x34,0x01,0x82,0x3a,0x02,0x99, + 0x01,0x93,0x00,0x02,0x00,0x86,0x00,0x00,0x03,0x3c, + 0x05,0x1e,0x00,0x08,0x00,0x11,0x00,0x00,0x33,0x11, + 0x36,0x20,0x1e,0x02,0x15,0x11,0x27,0x11,0x34,0x2e, + 0x02,0x22,0x07,0x11,0x86,0xa1,0x01,0x0b,0x90,0x5a, + 0x20,0x98,0x13,0x3c,0x57,0x90,0x50,0x05,0x07,0x17, + 0x22,0x5b,0x8d,0x73,0xfc,0x5f,0x7f,0x03,0x22,0x55, + 0x5f,0x38,0x10,0x0a,0xfb,0xec,0x00,0x01,0x00,0x35, + 0x00,0x00,0x03,0x24,0x05,0x1e,0x00,0x2b,0x00,0x00, + 0x00,0x32,0x1e,0x03,0x17,0x16,0x15,0x11,0x21,0x35, + 0x33,0x11,0x34,0x27,0x26,0x27,0x26,0x22,0x06,0x07, + 0x06,0x0f,0x01,0x03,0x23,0x13,0x3e,0x01,0x2e,0x04, + 0x35,0x33,0x1e,0x01,0x17,0x33,0x3e,0x02,0x01,0xee, + 0x66,0x52,0x35,0x27,0x14,0x06,0x08,0xfe,0x85,0xe4, + 0x13,0x18,0x27,0x18,0x4f,0x50,0x18,0x30,0x11,0x07, + 0x57,0x98,0x4d,0x0a,0x01,0x08,0x0b,0x12,0x0a,0x12, + 0x97,0x06,0x22,0x06,0x09,0x09,0x37,0x37,0x05,0x1e, + 0x21,0x32,0x51,0x4b,0x35,0x52,0x65,0xfc,0xbd,0x7f, + 0x02,0xc4,0xb0,0x3b,0x4a,0x15,0x0d,0x2c,0x20,0x40, + 0x35,0x16,0xfc,0x3d,0x03,0x55,0x73,0x4d,0x3b,0x2f, + 0x3c,0x1f,0x2f,0x01,0x0f,0x6c,0x1b,0x16,0x42,0x2d, + 0x00,0x00,0x00,0x01,0x00,0x58,0xfe,0x14,0x01,0x24, + 0x05,0x0a,0x00,0x0a,0x00,0x00,0x01,0x11,0x23,0x11, + 0x34,0x26,0x2f,0x01,0x33,0x1e,0x01,0x01,0x24,0x98, + 0x1a,0x0d,0x0d,0x99,0x14,0x1f,0x03,0x6e,0xfa,0xa6, + 0x05,0x5a,0x62,0xce,0x36,0x36,0x45,0xf3,0x00,0x00, + 0x00,0x01,0x00,0x28,0x00,0x00,0x01,0xe9,0x05,0x1e, + 0x00,0x1a,0x00,0x00,0x13,0x36,0x32,0x1e,0x03,0x17, + 0x16,0x15,0x11,0x14,0x06,0x0f,0x01,0x21,0x35,0x21, + 0x36,0x35,0x11,0x34,0x27,0x26,0x23,0x22,0x07,0x5b, + 0x4a,0x68,0x54,0x39,0x28,0x17,0x07,0x09,0x15,0x0a, + 0x0b,0xfe,0x69,0x01,0x12,0x18,0x18,0x1d,0x57,0x24, + 0x47,0x05,0x0d,0x11,0x15,0x22,0x3b,0x3a,0x2c,0x40, + 0x6d,0xfd,0xbb,0x4c,0xaa,0x2f,0x2f,0x7f,0x53,0x82, + 0x02,0x88,0x53,0x31,0x3a,0x11,0x00,0x00,0x00,0x02, + 0x00,0x57,0xff,0xec,0x03,0x46,0x05,0x1e,0x00,0x15, + 0x00,0x26,0x00,0x00,0x01,0x32,0x17,0x16,0x17,0x16, + 0x10,0x0e,0x01,0x07,0x06,0x23,0x22,0x27,0x26,0x02, + 0x35,0x10,0x37,0x07,0x35,0x36,0x0e,0x01,0x10,0x1e, + 0x02,0x32,0x36,0x37,0x36,0x11,0x10,0x27,0x2e,0x01, + 0x23,0x07,0x01,0xce,0x7e,0x5b,0x64,0x27,0x14,0x29, + 0x45,0x31,0x5b,0x7e,0x9d,0x67,0x36,0x3d,0x92,0x80, + 0xc9,0x06,0x39,0x21,0x3f,0x4b,0x60,0x4b,0x1f,0x42, + 0x5a,0x1d,0x3f,0x26,0x56,0x05,0x1e,0x5b,0x64,0xd6, + 0x73,0xfe,0xde,0xe6,0x96,0x31,0x5b,0x90,0x4b,0x01, + 0x0a,0xb4,0x01,0x4d,0xbf,0x07,0x81,0x13,0xdb,0xfa, + 0xfe,0xa2,0xd7,0x74,0x31,0x31,0x3a,0x79,0x01,0x32, + 0x01,0x5e,0x75,0x25,0x1d,0x05,0x00,0x01,0x00,0x41, + 0xff,0xcc,0x03,0x54,0x05,0x0a,0x00,0x16,0x00,0x00, + 0x01,0x13,0x36,0x12,0x37,0x36,0x12,0x37,0x33,0x03, + 0x06,0x07,0x06,0x07,0x06,0x07,0x06,0x07,0x35,0x36, + 0x37,0x03,0x33,0x01,0x59,0x5d,0x5d,0x5d,0x15,0x0a, + 0x24,0x09,0x98,0x37,0x16,0x1a,0x3e,0xa9,0x51,0x6b, + 0x45,0xc4,0xc5,0x3c,0xff,0x98,0x02,0xc2,0xfd,0xe9, + 0x3d,0x01,0x06,0xd4,0x61,0x01,0x85,0x61,0xfd,0xc7, + 0xe2,0x65,0xef,0x60,0x2d,0x12,0x0c,0x23,0x80,0x20, + 0x0e,0x04,0x90,0x00,0x00,0x01,0x00,0x50,0xfe,0x14, + 0x03,0x2f,0x05,0x1e,0x00,0x1d,0x00,0x00,0x01,0x22, + 0x26,0x10,0x36,0x33,0x32,0x17,0x16,0x17,0x16,0x15, + 0x11,0x23,0x11,0x10,0x27,0x2e,0x01,0x22,0x06,0x07, + 0x06,0x15,0x10,0x17,0x32,0x17,0x07,0x22,0x01,0x9c, + 0x99,0xb3,0xca,0x9d,0x7e,0x5b,0x64,0x26,0x15,0x98, + 0x43,0x20,0x4c,0x69,0x56,0x17,0x2d,0xc0,0x06,0x10, + 0x1c,0x01,0x01,0xb4,0xd3,0x01,0x9f,0xf8,0x5b,0x64, + 0xd6,0x73,0x91,0xfb,0x8f,0x04,0x71,0x01,0x32,0x79, + 0x39,0x31,0x43,0x33,0x65,0x63,0xfe,0xdc,0x0b,0x02, + 0x77,0x00,0x00,0x00,0x00,0x01,0x00,0x51,0xff,0xec, + 0x03,0x2f,0x05,0x1e,0x00,0x26,0x00,0x00,0x12,0x26, + 0x10,0x36,0x33,0x32,0x17,0x16,0x17,0x16,0x10,0x0e, + 0x01,0x07,0x06,0x23,0x22,0x2f,0x01,0x35,0x16,0x33, + 0x32,0x11,0x10,0x27,0x2e,0x01,0x22,0x06,0x07,0x06, + 0x15,0x14,0x16,0x1f,0x01,0x07,0x27,0xf9,0xa8,0xca, + 0x9d,0x7e,0x5a,0x65,0x25,0x15,0x2b,0x49,0x33,0x5d, + 0x7f,0x76,0x64,0x20,0x85,0x75,0xe7,0x41,0x1f,0x4a, + 0x69,0x57,0x17,0x2d,0x59,0x67,0x16,0x1b,0x15,0x01, + 0xbb,0xd5,0x01,0x97,0xf7,0x5b,0x65,0xd5,0x73,0xfe, + 0xde,0xe6,0x95,0x31,0x5c,0x12,0x05,0x85,0x18,0x02, + 0x15,0x01,0x35,0x76,0x39,0x31,0x44,0x34,0x67,0x62, + 0x8f,0x98,0x04,0x02,0x78,0x02,0x00,0x00,0x00,0x01, + 0x00,0x03,0xfe,0x14,0x02,0x98,0x05,0x0a,0x00,0x10, + 0x00,0x00,0x01,0x11,0x14,0x07,0x0e,0x01,0x07,0x11, + 0x23,0x11,0x03,0x33,0x13,0x3e,0x01,0x35,0x11,0x02, + 0x98,0x3c,0x20,0x7e,0x59,0x9c,0xc6,0xa6,0xbd,0x4e, + 0x4d,0x05,0x0a,0xfe,0x39,0x86,0x6d,0x3a,0x50,0x0d, + 0xfc,0x5b,0x04,0x1a,0x02,0xdc,0xfd,0x29,0x1b,0x82, + 0x73,0x01,0xc7,0x00,0x00,0x00,0x00,0x01,0x00,0x3a, + 0x00,0x00,0x03,0x05,0x05,0x0a,0x00,0x11,0x00,0x00, + 0x29,0x01,0x35,0x21,0x17,0x03,0x01,0x33,0x01,0x36, + 0x1b,0x01,0x33,0x07,0x06,0x02,0x07,0x13,0x02,0xeb, + 0xfd,0x52,0x01,0x54,0xaf,0xb6,0xfe,0xb0,0x9f,0x01, + 0x10,0x4b,0x1c,0x1d,0x98,0x15,0x16,0x4f,0x60,0xc0, + 0x7f,0x04,0x01,0x65,0x03,0x2a,0xfd,0x53,0x52,0x01, + 0x2e,0x01,0x2c,0xd8,0xe8,0xfe,0xf6,0x5e,0xfe,0x6f, + 0x00,0x00,0x00,0x02,0x00,0x8d,0xfe,0x14,0x03,0x59, + 0x05,0x0a,0x00,0x1b,0x00,0x1f,0x00,0x00,0x25,0x15, + 0x23,0x35,0x34,0x3e,0x04,0x37,0x36,0x12,0x37,0x21, + 0x35,0x21,0x15,0x03,0x0e,0x06,0x07,0x06,0x01,0x23, + 0x11,0x33,0x02,0x38,0x95,0x0e,0x09,0x11,0x0c,0x17, + 0x06,0x1b,0x79,0x33,0xfd,0xd2,0x02,0xcc,0xa7,0x03, + 0x1c,0x0a,0x1a,0x0b,0x13,0x0a,0x05,0x0a,0xfe,0xed, + 0x97,0x97,0x16,0x16,0x16,0x2a,0x4e,0x31,0x49,0x31, + 0x57,0x18,0x5e,0x01,0xcc,0xb8,0x80,0x70,0xfd,0x9d, + 0x0b,0x68,0x24,0x60,0x2d,0x52,0x30,0x1f,0x34,0xfd, + 0xd6,0x04,0xe7,0x00,0x00,0x00,0x00,0x01,0x00,0x1d, + 0x00,0x00,0x02,0x4f,0x05,0x1e,0x00,0x0e,0x00,0x00, + 0x13,0x32,0x16,0x15,0x11,0x23,0x11,0x34,0x2e,0x02, + 0x22,0x07,0x35,0x36,0xe4,0xd3,0x98,0x98,0x12,0x35, + 0x52,0x89,0x78,0x74,0x05,0x1e,0xa5,0xe1,0xfc,0x68, + 0x03,0x98,0x53,0x60,0x3d,0x14,0x0c,0x82,0x0c,0x00, + 0x00,0x00,0x00,0x01,0x00,0x40,0x00,0x00,0x04,0x2a, + 0x05,0x0a,0x00,0x1c,0x00,0x00,0x21,0x23,0x03,0x33, + 0x13,0x3e,0x01,0x37,0x13,0x33,0x03,0x06,0x07,0x06, + 0x07,0x13,0x33,0x32,0x36,0x12,0x37,0x13,0x33,0x03, + 0x02,0x07,0x0e,0x02,0x01,0x69,0xbe,0x6b,0x92,0x3b, + 0x66,0x61,0x0f,0x1d,0x8f,0x1d,0x10,0x2c,0x4b,0xd3, + 0x1b,0x36,0x90,0xde,0x7f,0x10,0x34,0x90,0x34,0x1e, + 0xa8,0x33,0x7e,0xaf,0x05,0x0a,0xfd,0x3a,0x25,0xab, + 0xac,0x01,0x4a,0xfe,0xb7,0xaf,0x66,0xb2,0x33,0xfe, + 0xba,0x9b,0x01,0x0b,0xb0,0x02,0x33,0xfd,0xcd,0xfe, + 0xae,0xc3,0x3c,0x53,0x33,0x00,0x00,0x01,0x00,0x15, + 0xff,0xfa,0x03,0x30,0x05,0x1e,0x00,0x21,0x00,0x00, + 0x13,0x32,0x36,0x37,0x36,0x32,0x1e,0x03,0x15,0x11, + 0x23,0x11,0x34,0x27,0x26,0x22,0x07,0x11,0x14,0x06, + 0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x35,0x11, + 0x06,0x07,0x47,0x03,0x55,0x29,0x73,0xe2,0x88,0x4f, + 0x2e,0x0e,0x97,0x62,0x2f,0x82,0x51,0x4f,0x74,0x25, + 0x38,0x30,0x05,0x2d,0x26,0x19,0x3d,0x04,0xff,0x0c, + 0x05,0x0e,0x2c,0x45,0x6b,0x68,0x44,0xfc,0x6a,0x03, + 0x96,0xca,0x28,0x14,0x05,0xfc,0xca,0xcb,0x9c,0x0d, + 0x84,0x09,0x3f,0x3f,0x03,0x89,0x03,0x08,0x00,0x00, + 0x00,0x01,0x00,0x23,0x03,0x29,0x01,0x3a,0x05,0x0a, + 0x00,0x09,0x00,0x00,0x01,0x17,0x06,0x07,0x06,0x07, + 0x23,0x3e,0x01,0x37,0x01,0x2d,0x0d,0x08,0x1e,0x2c, + 0x58,0x6d,0x18,0x27,0x26,0x05,0x0a,0x15,0x1f,0x5c, + 0x85,0xcc,0x53,0xb4,0xda,0x00,0x00,0x00,0x00,0x02, + 0x00,0x23,0x03,0x29,0x02,0x87,0x05,0x0a,0x00,0x09, + 0x00,0x12,0x00,0x00,0x01,0x17,0x06,0x07,0x06,0x07, + 0x23,0x3e,0x01,0x37,0x05,0x06,0x03,0x23,0x36,0x37, + 0x36,0x37,0x33,0x01,0x2d,0x0d,0x08,0x1e,0x2c,0x58, + 0x6d,0x18,0x27,0x26,0x01,0xff,0x31,0x79,0x6e,0x37, + 0x04,0x19,0x11,0xa6,0x05,0x0a,0x15,0x1f,0x5c,0x85, + 0xcc,0x53,0xb4,0xda,0x15,0xb7,0xfe,0xeb,0xdc,0x13, + 0x7d,0x75,0x00,0x00,0x00,0x01,0x00,0x4e,0x01,0xe9, + 0x03,0xa1,0x02,0x67,0x00,0x03,0x00,0x00,0x01,0x21, + 0x35,0x21,0x03,0xa1,0xfc,0xad,0x03,0x53,0x01,0xe9, + 0x7e,0x00,0x00,0x01,0x00,0x4e,0x01,0xe9,0x07,0x17, + 0x02,0x67,0x00,0x03,0x00,0x00,0x01,0x21,0x35,0x21, + 0x07,0x17,0xf9,0x37,0x06,0xc9,0x01,0xe9,0x7e,0x00, + 0x00,0x01,0x00,0x23,0x03,0xd6,0x01,0x39,0x05,0xb6, + 0x00,0x06,0x00,0x00,0x13,0x33,0x02,0x07,0x23,0x27, + 0x36,0xcd,0x6c,0x4b,0x19,0xa4,0x0e,0x42,0x05,0xb6, + 0xfe,0xee,0xce,0x17,0xe9,0x00,0x00,0x01,0x00,0x23, + 0x03,0xd6,0x01,0x39,0x05,0xb6,0x00,0x06,0x00,0x00, + 0x01,0x17,0x06,0x07,0x23,0x36,0x37,0x01,0x2b,0x0e, + 0x39,0x70,0x6d,0x47,0x1d,0x05,0xb6,0x16,0xcf,0xfb, + 0xfc,0xe4,0x00,0x01,0x00,0x45,0xfe,0xf8,0x01,0x5c, + 0x00,0xd8,0x00,0x06,0x00,0x00,0x25,0x17,0x06,0x07, + 0x23,0x12,0x37,0x01,0x4e,0x0e,0x3f,0x6b,0x6d,0x47, + 0x1d,0xd8,0x17,0xde,0xeb,0x00,0xff,0xe1,0x00,0x02, + 0x00,0x23,0x03,0xd6,0x02,0x87,0x05,0xb6,0x00,0x06, + 0x00,0x0d,0x00,0x00,0x13,0x33,0x02,0x07,0x23,0x27, + 0x36,0x25,0x33,0x02,0x07,0x23,0x27,0x36,0xcd,0x6c, + 0x4b,0x19,0xa4,0x0e,0x42,0x01,0xb4,0x6e,0x49,0x1c, + 0xa4,0x0e,0x40,0x05,0xb6,0xfe,0xee,0xce,0x17,0xe9, + 0xe0,0xfe,0xf9,0xd9,0x17,0xdd,0x00,0x00,0x00,0x02, + 0x00,0x23,0x03,0xd6,0x02,0x87,0x05,0xb6,0x00,0x06, + 0x00,0x0d,0x00,0x00,0x01,0x17,0x06,0x07,0x23,0x36, + 0x37,0x21,0x17,0x06,0x07,0x23,0x36,0x37,0x01,0x2c, + 0x0e,0x3d,0x6c,0x6e,0x46,0x1f,0x01,0xf1,0x0e,0x3e, + 0x6c,0x6c,0x46,0x1e,0x05,0xb6,0x16,0xd7,0xf3,0xfb, + 0xe5,0x16,0xd8,0xf2,0xf9,0xe7,0x00,0x00,0x00,0x02, + 0x00,0x26,0xfe,0xf8,0x02,0x8a,0x00,0xd7,0x00,0x06, + 0x00,0x0d,0x00,0x00,0x25,0x17,0x06,0x07,0x23,0x36, + 0x37,0x21,0x17,0x06,0x03,0x23,0x12,0x37,0x01,0x2f, + 0x0e,0x3d,0x6c,0x6e,0x46,0x1f,0x01,0xf0,0x0f,0x37, + 0x73,0x6d,0x4a,0x1b,0xd7,0x17,0xd8,0xf0,0xfd,0xe2, + 0x17,0xc5,0xfe,0xfd,0x01,0x19,0xc6,0x00,0x00,0x01, + 0x00,0x78,0x00,0x00,0x03,0x2a,0x06,0x14,0x00,0x0b, + 0x00,0x00,0x01,0x25,0x15,0x25,0x13,0x23,0x13,0x05, + 0x35,0x05,0x03,0x33,0x01,0xf7,0x01,0x33,0xfe,0xcd, + 0x22,0xa5,0x22,0xfe,0xe2,0x01,0x1e,0x22,0xa5,0x04, + 0x6c,0x16,0x89,0x11,0xfb,0xf6,0x04,0x0a,0x11,0x89, + 0x16,0x01,0xa8,0x00,0x00,0x01,0x00,0x74,0x00,0x00, + 0x03,0x2d,0x06,0x14,0x00,0x15,0x00,0x00,0x01,0x25, + 0x15,0x25,0x13,0x03,0x25,0x15,0x25,0x13,0x23,0x13, + 0x05,0x35,0x05,0x03,0x13,0x05,0x35,0x05,0x03,0x33, + 0x01,0xfa,0x01,0x33,0xfe,0xcd,0x16,0x16,0x01,0x33, + 0xfe,0xcd,0x22,0xa5,0x22,0xfe,0xdb,0x01,0x25,0x17, + 0x17,0xfe,0xdb,0x01,0x25,0x22,0xa5,0x04,0x98,0x16, + 0x89,0x11,0xfe,0xdc,0xfe,0xcd,0x11,0x89,0x15,0xfe, + 0x84,0x01,0x7c,0x15,0x89,0x11,0x01,0x33,0x01,0x24, + 0x11,0x89,0x16,0x01,0x7c,0x00,0x00,0x01,0x00,0x91, + 0x01,0xe4,0x02,0x6a,0x03,0xf3,0x00,0x07,0x00,0x00, + 0x12,0x36,0x32,0x16,0x14,0x06,0x22,0x26,0x91,0x7a, + 0xe5,0x7a,0x7b,0xe3,0x7b,0x03,0x6d,0x86,0x87,0xff, + 0x89,0x89,0x00,0x03,0x00,0x7e,0xff,0xec,0x04,0xf6, + 0x00,0xe7,0x00,0x06,0x00,0x0e,0x00,0x15,0x00,0x00, + 0x17,0x22,0x34,0x32,0x15,0x14,0x06,0x25,0x32,0x16, + 0x14,0x06,0x23,0x22,0x34,0x20,0x32,0x15,0x14,0x06, + 0x23,0x22,0xe8,0x6a,0xd5,0x39,0x01,0xa0,0x32,0x39, + 0x3a,0x31,0x6b,0x01,0xd1,0xd6,0x3a,0x31,0x6b,0x14, + 0xfb,0x7d,0x3f,0x3f,0xfb,0x3e,0x7d,0x40,0xfb,0x7d, + 0x3e,0x40,0x00,0x00,0x00,0x07,0x00,0x53,0xff,0xed, + 0x06,0xf2,0x05,0xcb,0x00,0x07,0x00,0x0c,0x00,0x15, + 0x00,0x1e,0x00,0x26,0x00,0x30,0x00,0x39,0x00,0x00, + 0x12,0x36,0x32,0x16,0x10,0x06,0x22,0x26,0x01,0x33, + 0x02,0x01,0x23,0x03,0x22,0x06,0x10,0x16,0x32,0x36, + 0x35,0x10,0x01,0x32,0x16,0x10,0x06,0x22,0x26,0x35, + 0x10,0x04,0x36,0x32,0x16,0x10,0x06,0x22,0x26,0x01, + 0x22,0x06,0x10,0x16,0x33,0x32,0x36,0x35,0x10,0x21, + 0x22,0x06,0x10,0x16,0x32,0x36,0x35,0x10,0x53,0x74, + 0xe6,0x77,0x7a,0xe4,0x73,0x03,0x04,0x80,0x70,0xfe, + 0x6b,0x82,0x17,0x35,0x2e,0x2f,0x6b,0x31,0x02,0x4b, + 0x74,0x77,0x7b,0xe2,0x74,0x02,0x1c,0x74,0xe5,0x77, + 0x7a,0xe3,0x73,0xfe,0xc9,0x35,0x2e,0x2f,0x37,0x35, + 0x31,0x01,0xb3,0x34,0x2e,0x2f,0x6b,0x30,0x04,0xe1, + 0xea,0xe8,0xfe,0x41,0xef,0xea,0x02,0x97,0xfe,0xc5, + 0xfb,0x85,0x05,0x57,0xa4,0xfe,0x9e,0xa5,0xa6,0xb0, + 0x01,0x55,0xfe,0x2a,0xe8,0xfe,0x41,0xed,0xeb,0xdf, + 0x01,0xca,0xe9,0xe9,0xe7,0xfe,0x41,0xee,0xea,0x02, + 0x36,0xa4,0xfe,0x9f,0xa5,0xa8,0xae,0x01,0x54,0xa4, + 0xfe,0x9f,0xa5,0xa5,0xb1,0x01,0x54,0x00,0x00,0x00, + 0x00,0x01,0x00,0x4f,0x00,0x83,0x01,0xdf,0x03,0xaf, + 0x00,0x06,0x00,0x00,0x01,0x03,0x13,0x07,0x01,0x35, + 0x01,0x01,0xdf,0xdb,0xdb,0x6a,0xfe,0xda,0x01,0x26, + 0x03,0x73,0xfe,0xa7,0xfe,0xa6,0x3d,0x01,0x89,0x1a, + 0x01,0x89,0x00,0x00,0x00,0x01,0x00,0x4f,0x00,0x83, + 0x01,0xdf,0x03,0xaf,0x00,0x06,0x00,0x00,0x01,0x15, + 0x01,0x27,0x13,0x03,0x37,0x01,0xdf,0xfe,0xdb,0x6b, + 0xdb,0xdb,0x6b,0x02,0x26,0x1a,0xfe,0x77,0x3d,0x01, + 0x5a,0x01,0x59,0x3c,0x00,0x01,0xfe,0xbe,0x00,0x00, + 0x02,0x36,0x05,0xb6,0x00,0x03,0x00,0x00,0x2b,0x01, + 0x01,0x33,0xc1,0x81,0x02,0xf7,0x81,0x05,0xb6,0x00, + 0x00,0x00,0x00,0x02,0x00,0x8d,0x00,0x00,0x04,0x82, + 0x05,0x0a,0x00,0x18,0x00,0x2d,0x00,0x00,0x13,0x21, + 0x32,0x17,0x1e,0x04,0x15,0x30,0x11,0x23,0x11,0x34, + 0x2e,0x03,0x27,0x26,0x2b,0x01,0x11,0x23,0x01,0x11, + 0x10,0x07,0x0e,0x03,0x2b,0x01,0x11,0x33,0x11,0x33, + 0x32,0x37,0x36,0x37,0x36,0x35,0x11,0x8d,0x01,0x4e, + 0x93,0x66,0x29,0x38,0x1d,0x0e,0x02,0x93,0x10,0x10, + 0x1a,0x23,0x19,0x3c,0x42,0xb7,0x97,0x03,0xf5,0x39, + 0x17,0x53,0x72,0xa9,0x69,0xb9,0x97,0x22,0xbe,0x5e, + 0x56,0x17,0x0b,0x05,0x0a,0x32,0x14,0x52,0x3f,0x78, + 0x46,0x25,0xfd,0xf9,0x01,0xe0,0xa5,0x42,0x31,0x18, + 0x1a,0x05,0x0c,0xfb,0x7c,0x05,0x0a,0xfd,0xa7,0xfe, + 0xf4,0x8b,0x38,0x6f,0x47,0x2c,0x03,0xc0,0xfc,0xc5, + 0x5c,0x54,0xb8,0x53,0x71,0x02,0x59,0x00,0x00,0x01, + 0x00,0x24,0xff,0xec,0x03,0x37,0x05,0xcd,0x00,0x25, + 0x00,0x00,0x13,0x33,0x1a,0x01,0x33,0x32,0x17,0x07, + 0x26,0x23,0x22,0x03,0x21,0x15,0x21,0x07,0x17,0x21, + 0x15,0x21,0x12,0x33,0x32,0x37,0x15,0x06,0x23,0x20, + 0x03,0x23,0x35,0x33,0x26,0x3d,0x01,0x34,0x37,0x23, + 0x24,0x8a,0x18,0xdc,0xa3,0x84,0x6e,0x40,0x5a,0x52, + 0xd6,0x29,0x01,0x3b,0xfe,0xbd,0x02,0x02,0x01,0x1e, + 0xfe,0xea,0x27,0xe3,0x6f,0x60,0x5e,0x75,0xfe,0x92, + 0x36,0x8a,0x83,0x01,0x01,0x83,0x03,0x92,0x01,0x08, + 0x01,0x33,0x49,0x81,0x39,0xfe,0x56,0x6e,0x48,0x68, + 0x6d,0xfe,0x76,0x37,0x93,0x35,0x02,0x1b,0x6d,0x1e, + 0x3a,0x1a,0x29,0x15,0x00,0x02,0x00,0x0d,0x02,0xe5, + 0x05,0x0a,0x05,0xb6,0x00,0x07,0x00,0x18,0x00,0x00, + 0x01,0x23,0x11,0x23,0x11,0x23,0x35,0x21,0x01,0x23, + 0x11,0x37,0x23,0x03,0x23,0x03,0x23,0x17,0x11,0x23, + 0x11,0x33,0x1b,0x01,0x33,0x02,0x0f,0xcc,0x6c,0xca, + 0x02,0x02,0x02,0xfb,0x6c,0x05,0x07,0xc2,0x62,0xbd, + 0x08,0x06,0x68,0xa3,0xb7,0xbd,0xa2,0x05,0x53,0xfd, + 0x92,0x02,0x6e,0x63,0xfd,0x2f,0x01,0xa0,0xa5,0xfd, + 0xbb,0x02,0x48,0xc5,0xfe,0x7d,0x02,0xd1,0xfd,0xc9, + 0x02,0x37,0x00,0x03,0x00,0x16,0x00,0x00,0x03,0x26, + 0x06,0x1f,0x00,0x16,0x00,0x1e,0x00,0x22,0x00,0x00, + 0x13,0x34,0x36,0x33,0x32,0x17,0x07,0x26,0x23,0x0e, + 0x01,0x1d,0x01,0x33,0x15,0x23,0x11,0x23,0x11,0x23, + 0x35,0x36,0x37,0x00,0x36,0x32,0x16,0x14,0x06,0x22, + 0x26,0x13,0x23,0x11,0x33,0x9e,0x76,0x87,0x52,0x46, + 0x2d,0x33,0x2f,0x3f,0x31,0xaf,0xaf,0x96,0x88,0x19, + 0x6f,0x01,0xd5,0x32,0x52,0x2f,0x30,0x51,0x32,0xa5, + 0x98,0x98,0x04,0xa1,0xc7,0xb7,0x20,0x7e,0x19,0x02, + 0x6e,0x8c,0x58,0x7e,0xfc,0x38,0x03,0xc8,0x50,0x0b, + 0x2b,0x01,0x56,0x3b,0x3b,0x67,0x3b,0x3b,0xfa,0xc3, + 0x04,0x47,0x00,0x00,0x00,0x02,0x00,0x16,0x00,0x00, + 0x03,0x17,0x06,0x1f,0x00,0x16,0x00,0x1a,0x00,0x00, + 0x13,0x34,0x36,0x33,0x32,0x17,0x07,0x26,0x23,0x0e, + 0x01,0x1d,0x01,0x33,0x15,0x23,0x11,0x23,0x11,0x23, + 0x35,0x36,0x37,0x01,0x23,0x11,0x33,0x9e,0x76,0x87, + 0x52,0x46,0x2d,0x33,0x2f,0x3f,0x31,0xaf,0xaf,0x96, + 0x88,0x19,0x6f,0x02,0x79,0x98,0x98,0x04,0xa1,0xc7, + 0xb7,0x20,0x7e,0x19,0x02,0x6e,0x8c,0x58,0x7e,0xfc, + 0x38,0x03,0xc8,0x50,0x0b,0x2b,0xfb,0xb2,0x06,0x14, + 0x00,0x00,0x00,0x02,0x00,0x40,0x00,0x00,0x04,0x3c, + 0x06,0x06,0x00,0x05,0x00,0x22,0x00,0x00,0x01,0x32, + 0x14,0x23,0x22,0x34,0x01,0x23,0x03,0x33,0x13,0x3e, + 0x01,0x37,0x13,0x33,0x03,0x06,0x07,0x06,0x07,0x13, + 0x33,0x32,0x36,0x12,0x37,0x13,0x33,0x03,0x02,0x07, + 0x0e,0x02,0x03,0xf3,0x49,0x49,0x46,0xfd,0xbc,0xbe, + 0x6b,0x92,0x3b,0x66,0x61,0x0f,0x1d,0x8f,0x1d,0x10, + 0x2c,0x4b,0xd3,0x1b,0x36,0x90,0xde,0x7f,0x10,0x34, + 0x90,0x34,0x1e,0xa8,0x33,0x7e,0xaf,0x06,0x06,0xad, + 0xad,0xf9,0xfa,0x05,0x0a,0xfd,0x3a,0x25,0xab,0xac, + 0x01,0x4a,0xfe,0xb7,0xaf,0x66,0xb2,0x33,0xfe,0xba, + 0x9b,0x01,0x0b,0xb0,0x02,0x33,0xfd,0xcd,0xfe,0xae, + 0xc3,0x3c,0x53,0x33,0x00,0x00,0x00,0x02,0x00,0x25, + 0x00,0x00,0x04,0x2a,0x05,0xf2,0x00,0x05,0x00,0x22, + 0x00,0x00,0x13,0x32,0x14,0x23,0x22,0x34,0x01,0x23, + 0x03,0x33,0x13,0x3e,0x01,0x37,0x13,0x33,0x03,0x06, + 0x07,0x06,0x07,0x13,0x33,0x32,0x36,0x12,0x37,0x13, + 0x33,0x03,0x02,0x07,0x0e,0x02,0x6b,0x49,0x49,0x46, + 0x01,0x44,0xbe,0x6b,0x92,0x3b,0x66,0x61,0x0f,0x1d, + 0x8f,0x1d,0x10,0x2c,0x4b,0xd3,0x1b,0x36,0x90,0xde, + 0x7f,0x10,0x34,0x90,0x34,0x1e,0xa8,0x33,0x7e,0xaf, + 0x05,0xf2,0xad,0xad,0xfa,0x0e,0x05,0x0a,0xfd,0x3a, + 0x25,0xab,0xac,0x01,0x4a,0xfe,0xb7,0xaf,0x66,0xb2, + 0x33,0xfe,0xba,0x9b,0x01,0x0b,0xb0,0x02,0x33,0xfd, + 0xcd,0xfe,0xae,0xc3,0x3c,0x53,0x33,0x00,0x00,0x00, + 0x00,0x03,0x00,0x40,0x00,0x00,0x04,0x3c,0x06,0x06, + 0x00,0x05,0x00,0x22,0x00,0x28,0x00,0x00,0x01,0x32, + 0x14,0x23,0x22,0x34,0x01,0x23,0x03,0x33,0x13,0x3e, + 0x01,0x37,0x13,0x33,0x03,0x06,0x07,0x06,0x07,0x13, + 0x33,0x32,0x36,0x12,0x37,0x13,0x33,0x03,0x02,0x07, + 0x0e,0x02,0x13,0x32,0x14,0x23,0x22,0x34,0x03,0xf3, + 0x49,0x49,0x46,0xfd,0xbc,0xbe,0x6b,0x92,0x3b,0x66, + 0x61,0x0f,0x1d,0x8f,0x1d,0x10,0x2c,0x4b,0xd3,0x1b, + 0x36,0x90,0xde,0x7f,0x10,0x34,0x90,0x34,0x1e,0xa8, + 0x33,0x7e,0xaf,0x60,0x49,0x49,0x46,0x06,0x06,0xad, + 0xad,0xf9,0xfa,0x05,0x0a,0xfd,0x3a,0x25,0xab,0xac, + 0x01,0x4a,0xfe,0xb7,0xaf,0x66,0xb2,0x33,0xfe,0xba, + 0x9b,0x01,0x0b,0xb0,0x02,0x33,0xfd,0xcd,0xfe,0xae, + 0xc3,0x3c,0x53,0x33,0x02,0x08,0xad,0xad,0x00,0x00, + 0x00,0x03,0x00,0x25,0x00,0x00,0x04,0x2a,0x05,0xf2, + 0x00,0x05,0x00,0x22,0x00,0x28,0x00,0x00,0x13,0x32, + 0x14,0x23,0x22,0x34,0x01,0x23,0x03,0x33,0x13,0x3e, + 0x01,0x37,0x13,0x33,0x03,0x06,0x07,0x06,0x07,0x13, + 0x33,0x32,0x36,0x12,0x37,0x13,0x33,0x03,0x02,0x07, + 0x0e,0x02,0x13,0x32,0x14,0x23,0x22,0x34,0x6b,0x49, + 0x49,0x46,0x01,0x44,0xbe,0x6b,0x92,0x3b,0x66,0x61, + 0x0f,0x1d,0x8f,0x1d,0x10,0x2c,0x4b,0xd3,0x1b,0x36, + 0x90,0xde,0x7f,0x10,0x34,0x90,0x34,0x1e,0xa8,0x33, + 0x7e,0xaf,0x60,0x49,0x49,0x46,0x05,0xf2,0xad,0xad, + 0xfa,0x0e,0x05,0x0a,0xfd,0x3a,0x25,0xab,0xac,0x01, + 0x4a,0xfe,0xb7,0xaf,0x66,0xb2,0x33,0xfe,0xba,0x9b, + 0x01,0x0b,0xb0,0x02,0x33,0xfd,0xcd,0xfe,0xae,0xc3, + 0x3c,0x53,0x33,0x02,0x08,0xad,0xad,0x00,0x00,0x00, + 0x00,0x02,0x00,0x44,0xfe,0xcc,0x03,0x13,0x05,0x0a, + 0x00,0x1d,0x00,0x21,0x00,0x00,0x01,0x11,0x14,0x06, + 0x07,0x06,0x07,0x16,0x12,0x17,0x23,0x01,0x0e,0x01, + 0x15,0x11,0x23,0x11,0x34,0x37,0x36,0x37,0x03,0x33, + 0x13,0x17,0x3e,0x01,0x35,0x11,0x13,0x21,0x35,0x21, + 0x03,0x0f,0x0c,0x12,0x26,0x79,0x23,0x84,0x1a,0xab, + 0xfe,0xd8,0x37,0x28,0x95,0x58,0x28,0x3c,0xc4,0xaa, + 0xc3,0x69,0x38,0x28,0x02,0xfe,0x66,0x01,0x9a,0x05, + 0x0a,0xfe,0x2d,0x3c,0x5e,0x37,0x73,0x34,0x53,0xfe, + 0xd1,0x3d,0x02,0xce,0x28,0x8f,0x76,0xfe,0x5f,0x01, + 0xc7,0xd6,0x65,0x2d,0x1c,0x01,0xbf,0xfe,0x19,0xe7, + 0x24,0x85,0x78,0x01,0xad,0xf9,0xc2,0x52,0x00,0x00, + 0x00,0x02,0x00,0x44,0xfd,0xe4,0x03,0x13,0x05,0x0a, + 0x00,0x1d,0x00,0x25,0x00,0x00,0x01,0x11,0x14,0x06, + 0x07,0x06,0x07,0x16,0x12,0x17,0x23,0x01,0x0e,0x01, + 0x15,0x11,0x23,0x11,0x34,0x37,0x36,0x37,0x03,0x33, + 0x13,0x17,0x3e,0x01,0x35,0x11,0x03,0x23,0x15,0x23, + 0x35,0x23,0x35,0x21,0x03,0x0f,0x0c,0x12,0x26,0x79, + 0x23,0x84,0x1a,0xab,0xfe,0xd8,0x37,0x28,0x95,0x58, + 0x28,0x3c,0xc4,0xaa,0xc3,0x69,0x38,0x28,0x03,0xa4, + 0x52,0xa4,0x01,0x9a,0x05,0x0a,0xfe,0x2d,0x3c,0x5e, + 0x37,0x73,0x34,0x53,0xfe,0xd1,0x3d,0x02,0xce,0x28, + 0x8f,0x76,0xfe,0x5f,0x01,0xc7,0xd6,0x65,0x2d,0x1c, + 0x01,0xbf,0xfe,0x19,0xe7,0x24,0x85,0x78,0x01,0xad, + 0xf9,0xc2,0xe8,0xe8,0x52,0x00,0x00,0x00,0x00,0x02, + 0x00,0x44,0x00,0x00,0x03,0x13,0x05,0x0a,0x00,0x1d, + 0x00,0x23,0x00,0x00,0x01,0x11,0x14,0x06,0x07,0x06, + 0x07,0x16,0x12,0x17,0x23,0x01,0x0e,0x01,0x15,0x11, + 0x23,0x11,0x34,0x37,0x36,0x37,0x03,0x33,0x13,0x17, + 0x3e,0x01,0x35,0x11,0x01,0x32,0x14,0x23,0x22,0x34, + 0x03,0x0f,0x0c,0x12,0x26,0x79,0x23,0x84,0x1a,0xab, + 0xfe,0xd8,0x37,0x28,0x95,0x58,0x28,0x3c,0xc4,0xaa, + 0xc3,0x69,0x38,0x28,0xfe,0xe7,0x49,0x49,0x46,0x05, + 0x0a,0xfe,0x2d,0x3c,0x5e,0x37,0x73,0x34,0x53,0xfe, + 0xd1,0x3d,0x02,0xce,0x28,0x8f,0x76,0xfe,0x5f,0x01, + 0xc7,0xd6,0x65,0x2d,0x1c,0x01,0xbf,0xfe,0x19,0xe7, + 0x24,0x85,0x78,0x01,0xad,0xfc,0x3d,0xad,0xad,0x00, + 0x00,0x00,0x00,0x02,0x00,0x5d,0x00,0x00,0x03,0x0a, + 0x05,0x1e,0x00,0x15,0x00,0x1b,0x00,0x00,0x13,0x36, + 0x32,0x1e,0x03,0x15,0x11,0x33,0x15,0x21,0x35,0x21, + 0x11,0x34,0x27,0x26,0x23,0x22,0x0f,0x01,0x13,0x32, + 0x14,0x23,0x22,0x34,0x5d,0x6b,0xcf,0x80,0x4f,0x2e, + 0x10,0x66,0xfd,0x54,0x01,0xae,0x5c,0x2d,0x43,0x7d, + 0x4b,0x1b,0xc8,0x49,0x49,0x46,0x05,0x12,0x0c,0x24, + 0x3e,0x66,0x71,0x4f,0xfc,0xe9,0x7f,0x7f,0x03,0x17, + 0xca,0x28,0x14,0x0a,0x03,0xfe,0x4d,0xad,0xad,0x00, + 0x00,0x02,0x00,0x59,0xff,0xf7,0x02,0x3a,0x05,0x1e, + 0x00,0x22,0x00,0x28,0x00,0x00,0x21,0x27,0x23,0x07, + 0x0e,0x03,0x07,0x06,0x23,0x22,0x27,0x37,0x14,0x16, + 0x33,0x32,0x36,0x35,0x11,0x34,0x26,0x23,0x22,0x07, + 0x35,0x36,0x32,0x1e,0x03,0x15,0x11,0x01,0x32,0x14, + 0x23,0x22,0x34,0x01,0xc5,0x15,0x0a,0x0a,0x02,0x19, + 0x15,0x2b,0x17,0x3f,0x47,0x25,0x26,0x13,0x31,0x0f, + 0x84,0x73,0x38,0x54,0x26,0x47,0x43,0x82,0x66,0x3a, + 0x21,0x0a,0xfe,0xbd,0x49,0x49,0x46,0xcc,0x1e,0x06, + 0x3a,0x1c,0x2f,0x0c,0x20,0x0a,0x91,0x03,0x08,0xbd, + 0xbf,0x01,0xbb,0x72,0x6a,0x13,0x85,0x12,0x27,0x3d, + 0x61,0x5c,0x3f,0xfc,0x42,0x02,0xdc,0xad,0xad,0x00, + 0x00,0x02,0x00,0x14,0x00,0x00,0x02,0xc2,0x05,0x0a, + 0x00,0x0e,0x00,0x14,0x00,0x00,0x01,0x15,0x06,0x15, + 0x11,0x23,0x11,0x34,0x36,0x37,0x36,0x3f,0x01,0x21, + 0x35,0x13,0x32,0x14,0x23,0x22,0x34,0x02,0xc2,0xc2, + 0x97,0x1d,0x14,0x2a,0x22,0x0e,0xfe,0x20,0xbb,0x49, + 0x49,0x46,0x05,0x0a,0x74,0x46,0xd4,0xfc,0x84,0x03, + 0x7e,0x3a,0x61,0x1d,0x3b,0x11,0x08,0x80,0xfd,0xd2, + 0xad,0xad,0x00,0x03,0x00,0x86,0x00,0x00,0x03,0x3c, + 0x05,0x1e,0x00,0x0e,0x00,0x12,0x00,0x18,0x00,0x00, + 0x01,0x32,0x16,0x15,0x11,0x23,0x11,0x34,0x2e,0x02, + 0x22,0x07,0x35,0x36,0x03,0x11,0x33,0x11,0x13,0x32, + 0x14,0x23,0x22,0x34,0x01,0xbb,0xd5,0xac,0x99,0x19, + 0x3e,0x57,0xb2,0xbd,0xa3,0xa3,0x98,0xc0,0x49,0x49, + 0x46,0x05,0x1e,0xa9,0xdd,0xfc,0x68,0x03,0x98,0x52, + 0x66,0x38,0x14,0x1b,0x81,0x1c,0xfa,0xe2,0x03,0x30, + 0xfc,0xd0,0x02,0xdc,0xad,0xad,0x00,0x02,0xff,0xab, + 0x00,0x00,0x01,0x1d,0x05,0x0a,0x00,0x03,0x00,0x09, + 0x00,0x00,0x33,0x11,0x33,0x11,0x01,0x32,0x14,0x23, + 0x22,0x34,0x86,0x97,0xfe,0xd4,0x49,0x49,0x46,0x05, + 0x0a,0xfa,0xf6,0x02,0xdc,0xad,0xad,0x00,0x00,0x00, + 0x00,0x02,0xff,0xd5,0x00,0x00,0x01,0xc2,0x05,0x0a, + 0x00,0x0e,0x00,0x14,0x00,0x00,0x01,0x15,0x0e,0x01, + 0x07,0x06,0x15,0x11,0x23,0x11,0x34,0x12,0x37,0x23, + 0x35,0x03,0x32,0x14,0x23,0x22,0x34,0x01,0xc2,0x32, + 0x47,0x07,0x03,0x97,0x50,0x43,0xba,0x66,0x49,0x49, + 0x46,0x05,0x0a,0x78,0x37,0xd1,0xbe,0x40,0x14,0xfd, + 0x88,0x02,0x2b,0xd1,0x01,0x35,0x59,0x80,0xfd,0xd2, + 0xad,0xad,0x00,0x02,0x00,0x5f,0xff,0xec,0x03,0x4f, + 0x05,0x1e,0x00,0x20,0x00,0x26,0x00,0x00,0x01,0x32, + 0x17,0x16,0x11,0x10,0x07,0x06,0x23,0x22,0x27,0x26, + 0x19,0x01,0x33,0x11,0x10,0x17,0x1e,0x01,0x32,0x36, + 0x37,0x36,0x11,0x10,0x27,0x2e,0x01,0x22,0x07,0x35, + 0x36,0x13,0x32,0x14,0x23,0x22,0x34,0x01,0xe2,0x7c, + 0x53,0x9e,0x9f,0x5b,0x7d,0x7e,0x5b,0xa0,0x9c,0x41, + 0x20,0x4c,0x60,0x4b,0x1f,0x41,0x41,0x1f,0x4c,0x55, + 0x2f,0x34,0x1d,0x49,0x49,0x46,0x05,0x1e,0x54,0xa1, + 0xfe,0x5c,0xfe,0x61,0x9f,0x5b,0x5b,0xa0,0x01,0x9e, + 0x02,0x84,0xfd,0x7c,0xfe,0xcc,0x77,0x3a,0x32,0x32, + 0x3a,0x78,0x01,0x33,0x01,0x31,0x7a,0x3a,0x32,0x0a, + 0x81,0x0b,0xfd,0xbe,0xad,0xad,0x00,0x02,0xff,0xd6, + 0x01,0xd2,0x01,0x1a,0x05,0x0a,0x00,0x05,0x00,0x0b, + 0x00,0x00,0x01,0x06,0x07,0x23,0x11,0x33,0x03,0x32, + 0x14,0x23,0x22,0x34,0x01,0x1a,0x6d,0x03,0x27,0x97, + 0xfe,0x49,0x49,0x46,0x02,0x71,0x9b,0x04,0x03,0x38, + 0xfe,0xac,0xad,0xad,0x00,0x02,0x00,0x2d,0xfe,0x14, + 0x02,0x56,0x05,0x1e,0x00,0x0e,0x00,0x14,0x00,0x00, + 0x13,0x36,0x32,0x1e,0x01,0x17,0x16,0x15,0x11,0x23, + 0x11,0x10,0x23,0x22,0x07,0x13,0x32,0x14,0x23,0x22, + 0x34,0x2d,0x66,0xac,0x7f,0x51,0x19,0x2e,0x99,0xd9, + 0x5b,0x5c,0xbc,0x49,0x49,0x46,0x04,0xfc,0x22,0x3d, + 0x67,0x4c,0x88,0xd0,0xfb,0x3e,0x04,0xc2,0x01,0xc0, + 0x28,0xfe,0x6e,0xad,0xad,0x00,0x00,0x02,0x00,0x2d, + 0xff,0xec,0x02,0x56,0x05,0x1e,0x00,0x1e,0x00,0x24, + 0x00,0x00,0x13,0x36,0x32,0x1e,0x01,0x17,0x16,0x1d, + 0x01,0x14,0x0e,0x03,0x22,0x27,0x35,0x1e,0x01,0x32, + 0x3e,0x02,0x37,0x36,0x3d,0x01,0x10,0x23,0x22,0x07, + 0x13,0x32,0x14,0x23,0x22,0x34,0x2d,0x66,0xac,0x7f, + 0x51,0x19,0x2e,0x10,0x31,0x4d,0x85,0xbe,0x54,0x4d, + 0x4b,0x4b,0x4b,0x2d,0x1e,0x06,0x0b,0xd7,0x51,0x66, + 0xa8,0x49,0x49,0x46,0x04,0xfc,0x22,0x3d,0x67,0x4c, + 0x88,0xd0,0xc6,0x52,0x8e,0x96,0x6a,0x44,0x1c,0x89, + 0x1a,0x07,0x2c,0x4d,0x53,0x34,0x55,0x4b,0xc6,0x01, + 0xc0,0x27,0xfe,0x6d,0xad,0xad,0x00,0x00,0x00,0x02, + 0x00,0x2b,0x00,0x00,0x02,0x81,0x06,0x1c,0x00,0x0f, + 0x00,0x15,0x00,0x00,0x01,0x15,0x06,0x02,0x07,0x06, + 0x03,0x23,0x36,0x12,0x37,0x13,0x21,0x11,0x33,0x11, + 0x03,0x32,0x14,0x23,0x22,0x34,0x02,0x81,0x1d,0x6c, + 0x18,0x19,0x46,0x96,0x09,0x4a,0x0a,0xa6,0xfe,0x3e, + 0x97,0x52,0x49,0x49,0x46,0x05,0x0e,0x86,0x75,0xfe, + 0x46,0x62,0x88,0xfe,0x91,0x34,0x01,0x82,0x3a,0x02, + 0x99,0x01,0x93,0xfe,0xf2,0xfd,0xce,0xad,0xad,0x00, + 0x00,0x00,0x00,0x02,0x00,0x35,0x00,0x00,0x03,0x24, + 0x05,0x1e,0x00,0x2b,0x00,0x31,0x00,0x00,0x00,0x32, + 0x1e,0x03,0x17,0x16,0x15,0x11,0x21,0x35,0x33,0x11, + 0x34,0x27,0x26,0x27,0x26,0x22,0x06,0x07,0x06,0x0f, + 0x01,0x03,0x23,0x13,0x3e,0x01,0x2e,0x04,0x35,0x33, + 0x1e,0x01,0x17,0x33,0x3e,0x02,0x13,0x32,0x14,0x23, + 0x22,0x34,0x01,0xee,0x66,0x52,0x35,0x27,0x14,0x06, + 0x08,0xfe,0x85,0xe4,0x13,0x18,0x27,0x18,0x4f,0x50, + 0x18,0x30,0x11,0x07,0x57,0x98,0x4d,0x0a,0x01,0x08, + 0x0b,0x12,0x0a,0x12,0x97,0x06,0x22,0x06,0x09,0x09, + 0x37,0x37,0x42,0x49,0x49,0x46,0x05,0x1e,0x21,0x32, + 0x51,0x4b,0x35,0x52,0x65,0xfc,0xbd,0x7f,0x02,0xc4, + 0xb0,0x3b,0x4a,0x15,0x0d,0x2c,0x20,0x40,0x35,0x16, + 0xfc,0x3d,0x03,0x55,0x73,0x4d,0x3b,0x2f,0x3c,0x1f, + 0x2f,0x01,0x0f,0x6c,0x1b,0x16,0x42,0x2d,0xfd,0xe3, + 0xad,0xad,0x00,0x00,0x00,0x02,0x00,0x28,0x00,0x00, + 0x01,0xe9,0x05,0x1e,0x00,0x1a,0x00,0x20,0x00,0x00, + 0x13,0x36,0x32,0x1e,0x03,0x17,0x16,0x15,0x11,0x14, + 0x06,0x0f,0x01,0x21,0x35,0x21,0x36,0x35,0x11,0x34, + 0x27,0x26,0x23,0x22,0x07,0x13,0x32,0x14,0x23,0x22, + 0x34,0x5b,0x4a,0x68,0x54,0x39,0x28,0x17,0x07,0x09, + 0x15,0x0a,0x0b,0xfe,0x69,0x01,0x12,0x18,0x18,0x1d, + 0x57,0x24,0x47,0x60,0x49,0x49,0x46,0x05,0x0d,0x11, + 0x15,0x22,0x3b,0x3a,0x2c,0x40,0x6d,0xfd,0xbb,0x4c, + 0xaa,0x2f,0x2f,0x7f,0x53,0x82,0x02,0x88,0x53,0x31, + 0x3a,0x11,0xfe,0x53,0xad,0xad,0x00,0x00,0x00,0x03, + 0x00,0x57,0xff,0xec,0x03,0x46,0x05,0x1e,0x00,0x15, + 0x00,0x26,0x00,0x2c,0x00,0x00,0x01,0x32,0x17,0x16, + 0x17,0x16,0x10,0x0e,0x01,0x07,0x06,0x23,0x22,0x27, + 0x26,0x02,0x35,0x10,0x37,0x07,0x35,0x36,0x0e,0x01, + 0x10,0x1e,0x02,0x32,0x36,0x37,0x36,0x11,0x10,0x27, + 0x2e,0x01,0x23,0x07,0x13,0x32,0x14,0x23,0x22,0x34, + 0x01,0xce,0x7e,0x5b,0x64,0x27,0x14,0x29,0x45,0x31, + 0x5b,0x7e,0x9d,0x67,0x36,0x3d,0x92,0x80,0xc9,0x06, + 0x39,0x21,0x3f,0x4b,0x60,0x4b,0x1f,0x42,0x5a,0x1d, + 0x3f,0x26,0x56,0x57,0x49,0x49,0x46,0x05,0x1e,0x5b, + 0x64,0xd6,0x73,0xfe,0xde,0xe6,0x96,0x31,0x5b,0x90, + 0x4b,0x01,0x0a,0xb4,0x01,0x4d,0xbf,0x07,0x81,0x13, + 0xdb,0xfa,0xfe,0xa2,0xd7,0x74,0x31,0x31,0x3a,0x79, + 0x01,0x32,0x01,0x5e,0x75,0x25,0x1d,0x05,0xfe,0x47, + 0xad,0xad,0x00,0x02,0x00,0x50,0xfe,0x14,0x03,0x2f, + 0x05,0x1e,0x00,0x1d,0x00,0x23,0x00,0x00,0x01,0x22, + 0x26,0x10,0x36,0x33,0x32,0x17,0x16,0x17,0x16,0x15, + 0x11,0x23,0x11,0x10,0x27,0x2e,0x01,0x22,0x06,0x07, + 0x06,0x15,0x10,0x17,0x32,0x17,0x07,0x22,0x13,0x32, + 0x14,0x23,0x22,0x34,0x01,0x9c,0x99,0xb3,0xca,0x9d, + 0x7e,0x5b,0x64,0x26,0x15,0x98,0x43,0x20,0x4c,0x69, + 0x56,0x17,0x2d,0xc0,0x06,0x10,0x1c,0x01,0x3a,0x49, + 0x49,0x46,0x01,0xb4,0xd3,0x01,0x9f,0xf8,0x5b,0x64, + 0xd6,0x73,0x91,0xfb,0x8f,0x04,0x71,0x01,0x32,0x79, + 0x39,0x31,0x43,0x33,0x65,0x63,0xfe,0xdc,0x0b,0x02, + 0x77,0x02,0x0c,0xad,0xad,0x00,0x00,0x00,0x00,0x02, + 0x00,0x51,0xff,0xec,0x03,0x2f,0x05,0x1e,0x00,0x26, + 0x00,0x2c,0x00,0x00,0x12,0x26,0x10,0x36,0x33,0x32, + 0x17,0x16,0x17,0x16,0x10,0x0e,0x01,0x07,0x06,0x23, + 0x22,0x2f,0x01,0x35,0x16,0x33,0x32,0x11,0x10,0x27, + 0x2e,0x01,0x22,0x06,0x07,0x06,0x15,0x14,0x16,0x1f, + 0x01,0x07,0x27,0x13,0x32,0x14,0x23,0x22,0x34,0xf9, + 0xa8,0xca,0x9d,0x7e,0x5a,0x65,0x25,0x15,0x2b,0x49, + 0x33,0x5d,0x7f,0x76,0x64,0x20,0x85,0x75,0xe7,0x41, + 0x1f,0x4a,0x69,0x57,0x17,0x2d,0x59,0x67,0x16,0x1b, + 0x15,0x39,0x49,0x49,0x46,0x01,0xbb,0xd5,0x01,0x97, + 0xf7,0x5b,0x65,0xd5,0x73,0xfe,0xde,0xe6,0x95,0x31, + 0x5c,0x12,0x05,0x85,0x18,0x02,0x15,0x01,0x35,0x76, + 0x39,0x31,0x44,0x34,0x67,0x62,0x8f,0x98,0x04,0x02, + 0x78,0x02,0x02,0x0a,0xad,0xad,0x00,0x00,0x00,0x02, + 0x00,0x3a,0x00,0x00,0x03,0x05,0x05,0x0a,0x00,0x11, + 0x00,0x17,0x00,0x00,0x29,0x01,0x35,0x21,0x17,0x03, + 0x01,0x33,0x01,0x36,0x1b,0x01,0x33,0x07,0x06,0x02, + 0x07,0x13,0x01,0x32,0x14,0x23,0x22,0x34,0x02,0xeb, + 0xfd,0x52,0x01,0x54,0xaf,0xb6,0xfe,0xb0,0x9f,0x01, + 0x10,0x4b,0x1c,0x1d,0x98,0x15,0x16,0x4f,0x60,0xc0, + 0xfd,0xbc,0x49,0x49,0x46,0x7f,0x04,0x01,0x65,0x03, + 0x2a,0xfd,0x53,0x52,0x01,0x2e,0x01,0x2c,0xd8,0xe8, + 0xfe,0xf6,0x5e,0xfe,0x6f,0x02,0x37,0xad,0xad,0x00, + 0x00,0x03,0x00,0x8d,0xfe,0x14,0x03,0x59,0x05,0x0a, + 0x00,0x1b,0x00,0x21,0x00,0x25,0x00,0x00,0x25,0x15, + 0x23,0x35,0x34,0x3e,0x04,0x37,0x36,0x12,0x37,0x21, + 0x35,0x21,0x15,0x03,0x0e,0x06,0x07,0x06,0x03,0x32, + 0x14,0x23,0x22,0x34,0x03,0x11,0x33,0x11,0x02,0x38, + 0x95,0x0e,0x09,0x11,0x0c,0x17,0x06,0x1b,0x79,0x33, + 0xfd,0xd2,0x02,0xcc,0xa7,0x03,0x1c,0x0a,0x1a,0x0b, + 0x13,0x0a,0x05,0x0a,0x99,0x49,0x49,0x46,0xcb,0x97, + 0x16,0x16,0x16,0x2a,0x4e,0x31,0x49,0x31,0x57,0x18, + 0x5e,0x01,0xcc,0xb8,0x80,0x70,0xfd,0x9d,0x0b,0x68, + 0x24,0x60,0x2d,0x52,0x30,0x1f,0x34,0x02,0xc4,0xad, + 0xad,0xfb,0x12,0x04,0xe7,0xfb,0x19,0x00,0x00,0x00, + 0x00,0x02,0x00,0x1d,0x00,0x00,0x02,0x4f,0x05,0x1e, + 0x00,0x0e,0x00,0x14,0x00,0x00,0x13,0x32,0x16,0x15, + 0x11,0x23,0x11,0x34,0x2e,0x02,0x22,0x07,0x35,0x36, + 0x13,0x32,0x14,0x23,0x22,0x34,0xe4,0xd3,0x98,0x98, + 0x12,0x35,0x52,0x89,0x78,0x74,0x66,0x49,0x49,0x46, + 0x05,0x1e,0xa5,0xe1,0xfc,0x68,0x03,0x98,0x53,0x60, + 0x3d,0x14,0x0c,0x82,0x0c,0xfd,0xbe,0xad,0xad,0x00, + 0x00,0x00,0x00,0x02,0x00,0x40,0x00,0x00,0x04,0x2a, + 0x05,0x0a,0x00,0x1c,0x00,0x22,0x00,0x00,0x21,0x23, + 0x03,0x33,0x13,0x3e,0x01,0x37,0x13,0x33,0x03,0x06, + 0x07,0x06,0x07,0x13,0x33,0x32,0x36,0x12,0x37,0x13, + 0x33,0x03,0x02,0x07,0x0e,0x02,0x13,0x32,0x14,0x23, + 0x22,0x34,0x01,0x69,0xbe,0x6b,0x92,0x3b,0x66,0x61, + 0x0f,0x1d,0x8f,0x1d,0x10,0x2c,0x4b,0xd3,0x1b,0x36, + 0x90,0xde,0x7f,0x10,0x34,0x90,0x34,0x1e,0xa8,0x33, + 0x7e,0xaf,0x60,0x49,0x49,0x46,0x05,0x0a,0xfd,0x3a, + 0x25,0xab,0xac,0x01,0x4a,0xfe,0xb7,0xaf,0x66,0xb2, + 0x33,0xfe,0xba,0x9b,0x01,0x0b,0xb0,0x02,0x33,0xfd, + 0xcd,0xfe,0xae,0xc3,0x3c,0x53,0x33,0x02,0x08,0xad, + 0xad,0x00,0x00,0x02,0x00,0x15,0xff,0xfa,0x03,0x30, + 0x05,0x1e,0x00,0x21,0x00,0x27,0x00,0x00,0x13,0x32, + 0x36,0x37,0x36,0x32,0x1e,0x03,0x15,0x11,0x23,0x11, + 0x34,0x27,0x26,0x22,0x07,0x11,0x14,0x06,0x23,0x22, + 0x27,0x35,0x16,0x33,0x32,0x36,0x35,0x11,0x06,0x07, + 0x01,0x32,0x14,0x23,0x22,0x34,0x47,0x03,0x55,0x29, + 0x73,0xe2,0x88,0x4f,0x2e,0x0e,0x97,0x62,0x2f,0x82, + 0x51,0x4f,0x74,0x25,0x38,0x30,0x05,0x2d,0x26,0x19, + 0x3d,0x01,0x93,0x49,0x49,0x46,0x04,0xff,0x0c,0x05, + 0x0e,0x2c,0x45,0x6b,0x68,0x44,0xfc,0x6a,0x03,0x96, + 0xca,0x28,0x14,0x05,0xfc,0xca,0xcb,0x9c,0x0d,0x84, + 0x09,0x3f,0x3f,0x03,0x89,0x03,0x08,0xfe,0x5e,0xad, + 0xad,0x00,0x00,0x02,0x00,0x64,0x00,0x00,0x01,0x1d, + 0x06,0x06,0x00,0x05,0x00,0x09,0x00,0x00,0x13,0x32, + 0x14,0x23,0x22,0x34,0x13,0x11,0x33,0x11,0xaa,0x49, + 0x49,0x46,0x22,0x97,0x06,0x06,0xad,0xad,0xf9,0xfa, + 0x05,0x0a,0xfa,0xf6,0x00,0x00,0x00,0x01,0xff,0x12, + 0x05,0xa9,0x00,0xe8,0x05,0xfc,0x00,0x03,0x00,0x00, + 0x13,0x21,0x35,0x21,0xe8,0xfe,0x2a,0x01,0xd6,0x05, + 0xa9,0x53,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0xc6, + 0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11, + 0x00,0x24,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x01, + 0x00,0x1a,0x00,0x6c,0x00,0x01,0x00,0x00,0x00,0x00, + 0x00,0x02,0x00,0x07,0x00,0x97,0x00,0x01,0x00,0x00, + 0x00,0x00,0x00,0x03,0x00,0x2a,0x00,0xf5,0x00,0x01, + 0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x1a,0x01,0x56, + 0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x05,0x00,0x3c, + 0x01,0xeb,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x06, + 0x00,0x1f,0x02,0x68,0x00,0x01,0x00,0x00,0x00,0x00, + 0x00,0x12,0x00,0x1d,0x02,0xc4,0x00,0x03,0x00,0x01, + 0x04,0x09,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x03, + 0x00,0x01,0x04,0x09,0x00,0x01,0x00,0x34,0x00,0x36, + 0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x02,0x00,0x0e, + 0x00,0x87,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x03, + 0x00,0x54,0x00,0x9f,0x00,0x03,0x00,0x01,0x04,0x09, + 0x00,0x04,0x00,0x34,0x01,0x20,0x00,0x03,0x00,0x01, + 0x04,0x09,0x00,0x05,0x00,0x78,0x01,0x71,0x00,0x03, + 0x00,0x01,0x04,0x09,0x00,0x06,0x00,0x3e,0x02,0x28, + 0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x12,0x00,0x3a, + 0x02,0x88,0x00,0x63,0x00,0x6f,0x00,0x70,0x00,0x79, + 0x00,0x72,0x00,0x69,0x00,0x67,0x00,0x68,0x00,0x74, + 0x00,0x20,0x00,0x6d,0x00,0x69,0x00,0x73,0x00,0x73, + 0x00,0x69,0x00,0x6e,0x00,0x67,0x00,0x00,0x63,0x6f, + 0x70,0x79,0x72,0x69,0x67,0x68,0x74,0x20,0x6d,0x69, + 0x73,0x73,0x69,0x6e,0x67,0x00,0x00,0x4f,0x00,0x70, + 0x00,0x65,0x00,0x6e,0x00,0x20,0x00,0x53,0x00,0x61, + 0x00,0x6e,0x00,0x73,0x00,0x20,0x00,0x48,0x00,0x65, + 0x00,0x62,0x00,0x72,0x00,0x65,0x00,0x77,0x00,0x20, + 0x00,0x43,0x00,0x6f,0x00,0x6e,0x00,0x64,0x00,0x65, + 0x00,0x6e,0x00,0x73,0x00,0x65,0x00,0x64,0x00,0x00, + 0x4f,0x70,0x65,0x6e,0x20,0x53,0x61,0x6e,0x73,0x20, + 0x48,0x65,0x62,0x72,0x65,0x77,0x20,0x43,0x6f,0x6e, + 0x64,0x65,0x6e,0x73,0x65,0x64,0x00,0x00,0x52,0x00, + 0x65,0x00,0x67,0x00,0x75,0x00,0x6c,0x00,0x61,0x00, + 0x72,0x00,0x00,0x52,0x65,0x67,0x75,0x6c,0x61,0x72, + 0x00,0x00,0x32,0x00,0x2e,0x00,0x30,0x00,0x30,0x00, + 0x31,0x00,0x3b,0x00,0x55,0x00,0x4b,0x00,0x57,0x00, + 0x4e,0x00,0x3b,0x00,0x4f,0x00,0x70,0x00,0x65,0x00, + 0x6e,0x00,0x53,0x00,0x61,0x00,0x6e,0x00,0x73,0x00, + 0x48,0x00,0x65,0x00,0x62,0x00,0x72,0x00,0x65,0x00, + 0x77,0x00,0x43,0x00,0x6f,0x00,0x6e,0x00,0x64,0x00, + 0x65,0x00,0x6e,0x00,0x73,0x00,0x65,0x00,0x64,0x00, + 0x2d,0x00,0x52,0x00,0x65,0x00,0x67,0x00,0x75,0x00, + 0x6c,0x00,0x61,0x00,0x72,0x00,0x00,0x32,0x2e,0x30, + 0x30,0x31,0x3b,0x55,0x4b,0x57,0x4e,0x3b,0x4f,0x70, + 0x65,0x6e,0x53,0x61,0x6e,0x73,0x48,0x65,0x62,0x72, + 0x65,0x77,0x43,0x6f,0x6e,0x64,0x65,0x6e,0x73,0x65, + 0x64,0x2d,0x52,0x65,0x67,0x75,0x6c,0x61,0x72,0x00, + 0x00,0x4f,0x00,0x70,0x00,0x65,0x00,0x6e,0x00,0x20, + 0x00,0x53,0x00,0x61,0x00,0x6e,0x00,0x73,0x00,0x20, + 0x00,0x48,0x00,0x65,0x00,0x62,0x00,0x72,0x00,0x65, + 0x00,0x77,0x00,0x20,0x00,0x43,0x00,0x6f,0x00,0x6e, + 0x00,0x64,0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65, + 0x00,0x64,0x00,0x00,0x4f,0x70,0x65,0x6e,0x20,0x53, + 0x61,0x6e,0x73,0x20,0x48,0x65,0x62,0x72,0x65,0x77, + 0x20,0x43,0x6f,0x6e,0x64,0x65,0x6e,0x73,0x65,0x64, + 0x00,0x00,0x56,0x00,0x65,0x00,0x72,0x00,0x73,0x00, + 0x69,0x00,0x6f,0x00,0x6e,0x00,0x20,0x00,0x32,0x00, + 0x2e,0x00,0x30,0x00,0x30,0x00,0x31,0x00,0x3b,0x00, + 0x50,0x00,0x53,0x00,0x20,0x00,0x30,0x00,0x30,0x00, + 0x32,0x00,0x2e,0x00,0x30,0x00,0x30,0x00,0x31,0x00, + 0x3b,0x00,0x68,0x00,0x6f,0x00,0x74,0x00,0x63,0x00, + 0x6f,0x00,0x6e,0x00,0x76,0x00,0x20,0x00,0x31,0x00, + 0x2e,0x00,0x30,0x00,0x2e,0x00,0x37,0x00,0x30,0x00, + 0x3b,0x00,0x6d,0x00,0x61,0x00,0x6b,0x00,0x65,0x00, + 0x6f,0x00,0x74,0x00,0x66,0x00,0x2e,0x00,0x6c,0x00, + 0x69,0x00,0x62,0x00,0x32,0x00,0x2e,0x00,0x35,0x00, + 0x2e,0x00,0x35,0x00,0x38,0x00,0x33,0x00,0x32,0x00, + 0x39,0x00,0x00,0x56,0x65,0x72,0x73,0x69,0x6f,0x6e, + 0x20,0x32,0x2e,0x30,0x30,0x31,0x3b,0x50,0x53,0x20, + 0x30,0x30,0x32,0x2e,0x30,0x30,0x31,0x3b,0x68,0x6f, + 0x74,0x63,0x6f,0x6e,0x76,0x20,0x31,0x2e,0x30,0x2e, + 0x37,0x30,0x3b,0x6d,0x61,0x6b,0x65,0x6f,0x74,0x66, + 0x2e,0x6c,0x69,0x62,0x32,0x2e,0x35,0x2e,0x35,0x38, + 0x33,0x32,0x39,0x00,0x00,0x4f,0x00,0x70,0x00,0x65, + 0x00,0x6e,0x00,0x53,0x00,0x61,0x00,0x6e,0x00,0x73, + 0x00,0x48,0x00,0x65,0x00,0x62,0x00,0x72,0x00,0x65, + 0x00,0x77,0x00,0x43,0x00,0x6f,0x00,0x6e,0x00,0x64, + 0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65,0x00,0x64, + 0x00,0x2d,0x00,0x52,0x00,0x65,0x00,0x67,0x00,0x75, + 0x00,0x6c,0x00,0x61,0x00,0x72,0x00,0x00,0x4f,0x70, + 0x65,0x6e,0x53,0x61,0x6e,0x73,0x48,0x65,0x62,0x72, + 0x65,0x77,0x43,0x6f,0x6e,0x64,0x65,0x6e,0x73,0x65, + 0x64,0x2d,0x52,0x65,0x67,0x75,0x6c,0x61,0x72,0x00, + 0x00,0x4f,0x00,0x70,0x00,0x65,0x00,0x6e,0x00,0x20, + 0x00,0x53,0x00,0x61,0x00,0x6e,0x00,0x73,0x00,0x20, + 0x00,0x48,0x00,0x65,0x00,0x62,0x00,0x72,0x00,0x65, + 0x00,0x77,0x00,0x20,0x00,0x43,0x00,0x6f,0x00,0x6e, + 0x00,0x64,0x00,0x20,0x00,0x52,0x00,0x65,0x00,0x67, + 0x00,0x75,0x00,0x6c,0x00,0x61,0x00,0x72,0x00,0x00, + 0x4f,0x70,0x65,0x6e,0x20,0x53,0x61,0x6e,0x73,0x20, + 0x48,0x65,0x62,0x72,0x65,0x77,0x20,0x43,0x6f,0x6e, + 0x64,0x20,0x52,0x65,0x67,0x75,0x6c,0x61,0x72,0x00, + 0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xb5, + 0x00,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x01,0x36,0x00,0x00,0x00,0x01,0x00,0x02, + 0x01,0x02,0x00,0x03,0x00,0x04,0x00,0x05,0x00,0x06, + 0x00,0x07,0x00,0x08,0x00,0x09,0x00,0x0a,0x00,0x0b, + 0x00,0x0c,0x00,0x0d,0x00,0x0e,0x00,0x0f,0x00,0x10, + 0x00,0x11,0x00,0x12,0x00,0x13,0x00,0x14,0x00,0x15, + 0x00,0x16,0x00,0x17,0x00,0x18,0x00,0x19,0x00,0x1a, + 0x00,0x1b,0x00,0x1c,0x00,0x1d,0x00,0x1e,0x00,0x1f, + 0x00,0x20,0x00,0x21,0x00,0x22,0x00,0x23,0x00,0x24, + 0x00,0x25,0x00,0x26,0x00,0x27,0x00,0x28,0x00,0x29, + 0x00,0x2a,0x00,0x2b,0x00,0x2c,0x00,0x2d,0x00,0x2e, + 0x00,0x2f,0x00,0x30,0x00,0x31,0x00,0x32,0x00,0x33, + 0x00,0x34,0x00,0x35,0x00,0x36,0x00,0x37,0x00,0x38, + 0x00,0x39,0x00,0x3a,0x00,0x3b,0x00,0x3c,0x00,0x3d, + 0x00,0x3e,0x00,0x3f,0x00,0x40,0x00,0x41,0x00,0x42, + 0x00,0x43,0x00,0x44,0x00,0x45,0x00,0x46,0x00,0x47, + 0x00,0x48,0x00,0x49,0x00,0x4a,0x00,0x4b,0x00,0x4c, + 0x00,0x4d,0x00,0x4e,0x00,0x4f,0x00,0x50,0x00,0x51, + 0x00,0x52,0x00,0x53,0x00,0x54,0x00,0x55,0x00,0x56, + 0x00,0x57,0x00,0x58,0x00,0x59,0x00,0x5a,0x00,0x5b, + 0x00,0x5c,0x00,0x5d,0x00,0x5e,0x00,0x5f,0x00,0x60, + 0x00,0x61,0x01,0x03,0x00,0xa3,0x00,0x84,0x00,0x85, + 0x00,0xbd,0x00,0x96,0x00,0xe8,0x00,0x86,0x00,0x8e, + 0x00,0x8b,0x00,0x9d,0x00,0xa9,0x00,0xa4,0x01,0x04, + 0x00,0x8a,0x01,0x05,0x00,0x83,0x00,0x93,0x00,0xf2, + 0x00,0xf3,0x00,0x8d,0x01,0x06,0x00,0x88,0x00,0xc3, + 0x00,0xde,0x00,0xf1,0x00,0x9e,0x00,0xaa,0x00,0xf5, + 0x00,0xf4,0x00,0xf6,0x00,0xa2,0x00,0xad,0x00,0xc9, + 0x00,0xc7,0x00,0xae,0x00,0x62,0x00,0x63,0x00,0x90, + 0x00,0x64,0x00,0xcb,0x00,0x65,0x00,0xc8,0x00,0xca, + 0x00,0xcf,0x00,0xcc,0x00,0xcd,0x00,0xce,0x00,0xe9, + 0x00,0x66,0x00,0xd3,0x00,0xd0,0x00,0xd1,0x00,0xaf, + 0x00,0x67,0x00,0xf0,0x00,0x91,0x00,0xd6,0x00,0xd4, + 0x00,0xd5,0x00,0x68,0x00,0xeb,0x00,0xed,0x00,0x89, + 0x00,0x6a,0x00,0x69,0x00,0x6b,0x00,0x6d,0x00,0x6c, + 0x00,0x6e,0x00,0xa0,0x00,0x6f,0x00,0x71,0x00,0x70, + 0x00,0x72,0x00,0x73,0x00,0x75,0x00,0x74,0x00,0x76, + 0x00,0x77,0x00,0xea,0x00,0x78,0x00,0x7a,0x00,0x79, + 0x00,0x7b,0x00,0x7d,0x00,0x7c,0x00,0xb8,0x00,0xa1, + 0x00,0x7f,0x00,0x7e,0x00,0x80,0x00,0x81,0x00,0xec, + 0x00,0xee,0x00,0xba,0x00,0xd7,0x00,0xb0,0x00,0xb1, + 0x00,0xe4,0x00,0xe5,0x00,0xbb,0x00,0xe6,0x00,0xe7, + 0x00,0xa6,0x00,0xd8,0x00,0xe1,0x00,0xdb,0x00,0xdc, + 0x00,0xdd,0x00,0xe0,0x00,0xd9,0x00,0xdf,0x01,0x07, + 0x01,0x08,0x01,0x09,0x01,0x0a,0x01,0x0b,0x01,0x0c, + 0x01,0x0d,0x01,0x0e,0x01,0x0f,0x01,0x10,0x01,0x11, + 0x01,0x12,0x01,0x13,0x01,0x14,0x01,0x15,0x01,0x16, + 0x01,0x17,0x01,0x18,0x01,0x19,0x01,0x1a,0x01,0x1b, + 0x01,0x1c,0x01,0x1d,0x01,0x1e,0x01,0x1f,0x01,0x20, + 0x01,0x21,0x01,0x22,0x01,0x23,0x01,0x24,0x01,0x25, + 0x01,0x26,0x01,0x27,0x01,0x28,0x01,0x29,0x01,0x2a, + 0x01,0x2b,0x01,0x2c,0x01,0x2d,0x01,0x2e,0x01,0x2f, + 0x01,0x30,0x01,0x31,0x01,0x32,0x01,0x33,0x01,0x34, + 0x01,0x35,0x00,0xb2,0x00,0xb3,0x00,0xb6,0x00,0xb7, + 0x00,0xc4,0x00,0xb4,0x00,0xb5,0x00,0xc5,0x00,0x82, + 0x00,0xc2,0x00,0x87,0x00,0xab,0x00,0xc6,0x00,0xbe, + 0x00,0xbf,0x00,0xbc,0x01,0x36,0x01,0x37,0x00,0x8c, + 0x01,0x38,0x01,0x39,0x01,0x3a,0x01,0x3b,0x01,0x3c, + 0x01,0x3d,0x01,0x3e,0x01,0x3f,0x01,0x40,0x01,0x41, + 0x01,0x42,0x01,0x43,0x01,0x44,0x01,0x45,0x01,0x46, + 0x01,0x47,0x01,0x48,0x01,0x49,0x01,0x4a,0x01,0x4b, + 0x01,0x4c,0x01,0x4d,0x01,0x4e,0x01,0x4f,0x01,0x50, + 0x01,0x51,0x01,0x52,0x01,0x53,0x01,0x54,0x01,0x55, + 0x01,0x56,0x01,0x57,0x02,0x43,0x52,0x07,0x75,0x6e, + 0x69,0x30,0x30,0x41,0x30,0x07,0x75,0x6e,0x69,0x30, + 0x30,0x41,0x44,0x09,0x6f,0x76,0x65,0x72,0x73,0x63, + 0x6f,0x72,0x65,0x07,0x75,0x6e,0x69,0x30,0x30,0x42, + 0x35,0x07,0x75,0x6e,0x69,0x30,0x35,0x42,0x30,0x07, + 0x75,0x6e,0x69,0x30,0x35,0x42,0x31,0x07,0x75,0x6e, + 0x69,0x30,0x35,0x42,0x32,0x07,0x75,0x6e,0x69,0x30, + 0x35,0x42,0x33,0x07,0x75,0x6e,0x69,0x30,0x35,0x42, + 0x34,0x07,0x75,0x6e,0x69,0x30,0x35,0x42,0x35,0x07, + 0x75,0x6e,0x69,0x30,0x35,0x42,0x36,0x07,0x75,0x6e, + 0x69,0x30,0x35,0x42,0x37,0x07,0x75,0x6e,0x69,0x30, + 0x35,0x42,0x38,0x07,0x75,0x6e,0x69,0x30,0x35,0x42, + 0x39,0x07,0x75,0x6e,0x69,0x30,0x35,0x42,0x41,0x07, + 0x75,0x6e,0x69,0x30,0x35,0x42,0x42,0x07,0x75,0x6e, + 0x69,0x30,0x35,0x42,0x43,0x07,0x75,0x6e,0x69,0x30, + 0x35,0x42,0x44,0x07,0x75,0x6e,0x69,0x30,0x35,0x42, + 0x45,0x07,0x75,0x6e,0x69,0x30,0x35,0x43,0x31,0x07, + 0x75,0x6e,0x69,0x30,0x35,0x43,0x32,0x07,0x75,0x6e, + 0x69,0x30,0x35,0x43,0x37,0x07,0x75,0x6e,0x69,0x30, + 0x35,0x44,0x30,0x07,0x75,0x6e,0x69,0x30,0x35,0x44, + 0x31,0x07,0x75,0x6e,0x69,0x30,0x35,0x44,0x32,0x07, + 0x75,0x6e,0x69,0x30,0x35,0x44,0x33,0x07,0x75,0x6e, + 0x69,0x30,0x35,0x44,0x34,0x07,0x75,0x6e,0x69,0x30, + 0x35,0x44,0x35,0x07,0x75,0x6e,0x69,0x30,0x35,0x44, + 0x36,0x07,0x75,0x6e,0x69,0x30,0x35,0x44,0x37,0x07, + 0x75,0x6e,0x69,0x30,0x35,0x44,0x38,0x07,0x75,0x6e, + 0x69,0x30,0x35,0x44,0x39,0x07,0x75,0x6e,0x69,0x30, + 0x35,0x44,0x41,0x07,0x75,0x6e,0x69,0x30,0x35,0x44, + 0x42,0x07,0x75,0x6e,0x69,0x30,0x35,0x44,0x43,0x07, + 0x75,0x6e,0x69,0x30,0x35,0x44,0x44,0x07,0x75,0x6e, + 0x69,0x30,0x35,0x44,0x45,0x07,0x75,0x6e,0x69,0x30, + 0x35,0x44,0x46,0x07,0x75,0x6e,0x69,0x30,0x35,0x45, + 0x30,0x07,0x75,0x6e,0x69,0x30,0x35,0x45,0x31,0x07, + 0x75,0x6e,0x69,0x30,0x35,0x45,0x32,0x07,0x75,0x6e, + 0x69,0x30,0x35,0x45,0x33,0x07,0x75,0x6e,0x69,0x30, + 0x35,0x45,0x34,0x07,0x75,0x6e,0x69,0x30,0x35,0x45, + 0x35,0x07,0x75,0x6e,0x69,0x30,0x35,0x45,0x36,0x07, + 0x75,0x6e,0x69,0x30,0x35,0x45,0x37,0x07,0x75,0x6e, + 0x69,0x30,0x35,0x45,0x38,0x07,0x75,0x6e,0x69,0x30, + 0x35,0x45,0x39,0x07,0x75,0x6e,0x69,0x30,0x35,0x45, + 0x41,0x08,0x67,0x65,0x72,0x65,0x73,0x68,0x68,0x62, + 0x0b,0x67,0x65,0x72,0x73,0x68,0x61,0x79,0x69,0x6d, + 0x68,0x62,0x07,0x75,0x6e,0x69,0x32,0x30,0x41,0x41, + 0x04,0x45,0x75,0x72,0x6f,0x07,0x75,0x6e,0x69,0x46, + 0x42,0x30,0x31,0x07,0x75,0x6e,0x69,0x46,0x42,0x30, + 0x32,0x07,0x75,0x6e,0x69,0x46,0x42,0x32,0x41,0x07, + 0x75,0x6e,0x69,0x46,0x42,0x32,0x42,0x13,0x73,0x68, + 0x69,0x6e,0x64,0x61,0x67,0x65,0x73,0x68,0x73,0x68, + 0x69,0x6e,0x64,0x6f,0x74,0x68,0x62,0x12,0x73,0x68, + 0x69,0x6e,0x64,0x61,0x67,0x65,0x73,0x68,0x73,0x69, + 0x6e,0x64,0x6f,0x74,0x68,0x62,0x0b,0x61,0x6c,0x65, + 0x66,0x70,0x61,0x74,0x61,0x68,0x68,0x62,0x0c,0x61, + 0x6c,0x65,0x66,0x71,0x61,0x6d,0x61,0x74,0x73,0x68, + 0x62,0x0c,0x61,0x6c,0x65,0x66,0x64,0x61,0x67,0x65, + 0x73,0x68,0x68,0x62,0x0b,0x62,0x65,0x74,0x64,0x61, + 0x67,0x65,0x73,0x68,0x68,0x62,0x0d,0x67,0x69,0x6d, + 0x65,0x6c,0x64,0x61,0x67,0x65,0x73,0x68,0x68,0x62, + 0x0d,0x64,0x61,0x6c,0x65,0x74,0x64,0x61,0x67,0x65, + 0x73,0x68,0x68,0x62,0x0a,0x68,0x65,0x64,0x61,0x67, + 0x65,0x73,0x68,0x68,0x62,0x07,0x75,0x6e,0x69,0x46, + 0x42,0x33,0x35,0x0d,0x7a,0x61,0x79,0x69,0x6e,0x64, + 0x61,0x67,0x65,0x73,0x68,0x68,0x62,0x0b,0x74,0x65, + 0x74,0x64,0x61,0x67,0x65,0x73,0x68,0x68,0x62,0x0b, + 0x79,0x6f,0x64,0x64,0x61,0x67,0x65,0x73,0x68,0x68, + 0x62,0x10,0x66,0x69,0x6e,0x61,0x6c,0x6b,0x61,0x66, + 0x64,0x61,0x67,0x65,0x73,0x68,0x68,0x62,0x0b,0x6b, + 0x61,0x66,0x64,0x61,0x67,0x65,0x73,0x68,0x68,0x62, + 0x0d,0x6c,0x61,0x6d,0x65,0x64,0x64,0x61,0x67,0x65, + 0x73,0x68,0x68,0x62,0x0b,0x6d,0x65,0x6d,0x64,0x61, + 0x67,0x65,0x73,0x68,0x68,0x62,0x0b,0x6e,0x75,0x6e, + 0x64,0x61,0x67,0x65,0x73,0x68,0x68,0x62,0x0e,0x73, + 0x61,0x6d,0x65,0x6b,0x68,0x64,0x61,0x67,0x65,0x73, + 0x68,0x68,0x62,0x0f,0x66,0x69,0x6e,0x61,0x6c,0x70, + 0x65,0x64,0x61,0x67,0x65,0x73,0x68,0x68,0x62,0x0a, + 0x70,0x65,0x64,0x61,0x67,0x65,0x73,0x68,0x68,0x62, + 0x0d,0x74,0x73,0x61,0x64,0x69,0x64,0x61,0x67,0x65, + 0x73,0x68,0x68,0x62,0x0b,0x71,0x6f,0x66,0x64,0x61, + 0x67,0x65,0x73,0x68,0x68,0x62,0x0c,0x72,0x65,0x73, + 0x68,0x64,0x61,0x67,0x65,0x73,0x68,0x68,0x62,0x0c, + 0x73,0x68,0x69,0x6e,0x64,0x61,0x67,0x65,0x73,0x68, + 0x68,0x62,0x0b,0x74,0x61,0x76,0x64,0x61,0x67,0x65, + 0x73,0x68,0x68,0x62,0x07,0x75,0x6e,0x69,0x46,0x42, + 0x34,0x42,0x07,0x72,0x61,0x66,0x65,0x68,0x68,0x62, + 0x00,0x01,0x00,0x01,0xff,0xff,0x00,0x0f,0x00,0x00, + 0x00,0x01,0x00,0x00,0x00,0x00,0xcc,0x6d,0xb1,0x55, + 0x00,0x00,0x00,0x00,0xcd,0x64,0xfe,0x43,0x00,0x00, + 0x00,0x00,0xcd,0xc1,0x1c,0x70,0x00,0x01,0x00,0x00, + 0x00,0x0e,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x00, + 0x00,0x02,0x00,0x05,0x00,0x03,0x00,0xd3,0x00,0x01, + 0x00,0xd4,0x00,0xe1,0x00,0x03,0x00,0xe2,0x00,0xe2, + 0x00,0x01,0x00,0xe3,0x00,0xe5,0x00,0x03,0x00,0xe6, + 0x01,0x35,0x00,0x01,0x00,0x04,0x00,0x00,0x00,0x02, + 0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0a,0x00,0x1e, + 0x00,0x2c,0x00,0x01,0x68,0x65,0x62,0x72,0x00,0x08, + 0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x01, + 0x00,0x00,0x00,0x01,0x6d,0x61,0x72,0x6b,0x00,0x08, + 0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x04, + 0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01, + 0x03,0x78,0x03,0x6e,0x00,0x04,0x03,0x88,0x00,0x0c, + 0x00,0x1b,0x00,0xda,0x00,0xe0,0x00,0xe6,0x00,0xec, + 0x00,0xf2,0x00,0xf8,0x00,0xfe,0x01,0x04,0x01,0x0a, + 0x01,0x10,0x01,0x16,0x01,0x1c,0x01,0x22,0x01,0x28, + 0x01,0x2e,0x01,0x34,0x01,0x3a,0x01,0x40,0x01,0x46, + 0x01,0x4c,0x01,0x52,0x01,0x58,0x01,0x5e,0x01,0x64, + 0x01,0x6a,0x01,0x70,0x01,0x76,0x01,0x7c,0x01,0x82, + 0x01,0x88,0x01,0x8e,0x01,0x94,0x01,0x9a,0x01,0xa0, + 0x01,0xa6,0x01,0xac,0x01,0xb2,0x01,0xb8,0x01,0xbe, + 0x01,0xc4,0x01,0xca,0x01,0xd0,0x01,0xd6,0x01,0xdc, + 0x01,0xe2,0x01,0xe8,0x01,0xee,0x01,0xf4,0x01,0xfa, + 0x02,0x00,0x02,0x06,0x02,0x0c,0x02,0x12,0x02,0x18, + 0x02,0x1e,0x02,0x24,0x02,0x2a,0x02,0x30,0x02,0x36, + 0x02,0x3c,0x02,0x42,0x02,0x48,0x02,0x4e,0x02,0x54, + 0x02,0x5a,0x02,0x60,0x02,0x66,0x02,0x6c,0x02,0x72, + 0x02,0x78,0x02,0x7e,0x02,0x84,0x02,0x8a,0x02,0x90, + 0x02,0x96,0x02,0x9c,0x02,0xa2,0x02,0xa8,0x02,0xae, + 0x02,0xb4,0x02,0xba,0x02,0xc0,0x02,0xc6,0x02,0xcc, + 0x02,0xd2,0x02,0xd8,0x02,0xde,0x02,0xe4,0x02,0xea, + 0x02,0xf0,0x02,0xf6,0x02,0xfc,0x03,0x02,0x03,0x08, + 0x03,0x0e,0x03,0x14,0x03,0x1a,0x03,0x20,0x03,0x26, + 0x03,0x2c,0x03,0x32,0x03,0x38,0x03,0x3e,0x03,0x44, + 0x03,0x4a,0x03,0x50,0x03,0x56,0x03,0x5c,0x00,0x01, + 0x01,0xae,0x00,0x00,0x00,0x01,0x00,0x71,0x04,0x67, + 0x00,0x01,0x01,0x61,0x00,0x6b,0x00,0x01,0x00,0x00, + 0x00,0x00,0x00,0x01,0x01,0x95,0x00,0x00,0x00,0x01, + 0x00,0x93,0x04,0x67,0x00,0x01,0x01,0x25,0x02,0x00, + 0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x5e, + 0x00,0x00,0x00,0x01,0x00,0xc8,0x04,0x67,0x00,0x01, + 0x00,0xf7,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x00, + 0x00,0x01,0x01,0xb1,0x00,0x00,0x00,0x01,0x00,0x57, + 0x04,0x67,0x00,0x01,0x00,0xcf,0x02,0x00,0x00,0x01, + 0x00,0x00,0x00,0x00,0x00,0x01,0x01,0xde,0x00,0x00, + 0x00,0x01,0x00,0xb4,0x04,0x67,0x00,0x01,0x01,0xde, + 0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x01, + 0x00,0xd2,0x00,0x00,0x00,0x01,0x00,0xab,0x04,0x67, + 0x00,0x01,0xff,0xf1,0x02,0x00,0x00,0x01,0x00,0x00, + 0x00,0x00,0x00,0x01,0x00,0xf1,0x00,0x00,0x00,0x01, + 0x00,0x90,0x04,0x67,0x00,0x01,0x00,0x1b,0x02,0x00, + 0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0xde, + 0x00,0x00,0x00,0x01,0x00,0xbb,0x04,0x67,0x00,0x01, + 0x01,0xde,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x00, + 0x00,0x01,0x01,0xd4,0x00,0x00,0x00,0x01,0x00,0x78, + 0x04,0x67,0x00,0x01,0x01,0xd4,0x02,0x00,0x00,0x01, + 0x00,0x00,0x00,0x00,0x00,0x01,0x00,0xcf,0x00,0x00, + 0x00,0x01,0x00,0xa7,0x04,0x67,0x00,0x01,0x00,0x1c, + 0x02,0xda,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x01, + 0x00,0x35,0x01,0x68,0x00,0x01,0x00,0x64,0x04,0x67, + 0x00,0x01,0x00,0xe9,0x02,0x00,0x00,0x01,0x00,0x00, + 0x00,0x00,0x00,0x01,0x01,0x58,0x00,0x00,0x00,0x01, + 0x00,0x64,0x04,0x67,0x00,0x01,0x00,0xd5,0x02,0x00, + 0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x53, + 0x00,0x00,0x00,0x01,0xff,0xb7,0x04,0x67,0x00,0x01, + 0x00,0x71,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x00, + 0x00,0x01,0x01,0xde,0x00,0x00,0x00,0x01,0x00,0xa7, + 0x04,0x67,0x00,0x01,0x01,0xde,0x02,0x00,0x00,0x01, + 0x00,0x00,0x00,0x00,0x00,0x01,0x01,0xd3,0x00,0x00, + 0x00,0x01,0x00,0x6b,0x04,0x67,0x00,0x01,0x01,0xd3, + 0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x01, + 0xff,0x09,0x01,0x6f,0x00,0x01,0x00,0x6b,0x04,0x67, + 0x00,0x01,0x00,0x0d,0x02,0x00,0x00,0x01,0x00,0x00, + 0x00,0x00,0x00,0x01,0x01,0x35,0x00,0x00,0x00,0x01, + 0x00,0x85,0x04,0x67,0x00,0x01,0x00,0xbb,0x02,0x00, + 0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0xcf, + 0x00,0x00,0x00,0x01,0x00,0xa7,0x04,0x67,0x00,0x01, + 0x01,0xcf,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x00, + 0x00,0x01,0x01,0xbc,0x00,0x00,0x00,0x01,0x00,0x50, + 0x04,0x67,0x00,0x01,0x01,0xf4,0x02,0x44,0x00,0x01, + 0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x18,0x01,0x6f, + 0x00,0x01,0x00,0x7f,0x04,0x67,0x00,0x01,0x01,0xd8, + 0x02,0xe4,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x01, + 0x01,0xc4,0x00,0x00,0x00,0x01,0x00,0x93,0x04,0x67, + 0x00,0x01,0x01,0xc4,0x02,0xe4,0x00,0x01,0x00,0x00, + 0x00,0x00,0x00,0x01,0xff,0x4c,0x01,0x6f,0x00,0x01, + 0x00,0x38,0x04,0x67,0x00,0x01,0x01,0x6e,0x02,0x00, + 0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0xa3, + 0x00,0x00,0x00,0x01,0x00,0x7f,0x04,0x67,0x00,0x01, + 0x00,0xa7,0x01,0xab,0x00,0x01,0x00,0x00,0x00,0x00, + 0x00,0x01,0x02,0xc6,0x00,0x00,0x00,0x01,0x00,0xa7, + 0x04,0x67,0x00,0x01,0x01,0x9f,0x02,0x26,0x00,0x01, + 0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x08,0x00,0x00, + 0x00,0x01,0x00,0x50,0x04,0x67,0x00,0x01,0x00,0xf7, + 0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x01, + 0x02,0x34,0x00,0x00,0x00,0x01,0x00,0x6b,0x04,0x67, + 0x00,0x01,0x02,0x30,0x01,0x2c,0x00,0x01,0x03,0xf3, + 0x04,0x67,0x00,0x01,0x01,0xda,0x00,0x00,0x00,0x01, + 0x00,0x6b,0x04,0x67,0x00,0x01,0x01,0xda,0x02,0x00, + 0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x01, + 0x00,0xe6,0x01,0x00,0x00,0x00,0x00,0x02,0x00,0x02, + 0x00,0xd4,0x00,0xe1,0x00,0x00,0x00,0xe3,0x00,0xe5, + 0x00,0x0e,0x00,0x11,0x00,0x00,0x00,0x46,0x00,0x00, + 0x00,0x4c,0x00,0x00,0x00,0x52,0x00,0x00,0x00,0x58, + 0x00,0x00,0x00,0x5e,0x00,0x00,0x00,0x64,0x00,0x00, + 0x00,0x6a,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x76, + 0x00,0x01,0x00,0x7c,0x00,0x01,0x00,0x82,0x00,0x00, + 0x00,0x88,0x00,0x02,0x00,0x8e,0x00,0x00,0x00,0x94, + 0x00,0x03,0x00,0x9a,0x00,0x01,0x00,0xa0,0x00,0x00, + 0x00,0xa6,0x00,0x01,0x00,0x00,0x00,0x6e,0x00,0x01, + 0x00,0x00,0x00,0x6e,0x00,0x01,0x00,0x00,0x00,0x6e, + 0x00,0x01,0x00,0x00,0x00,0x6e,0x00,0x01,0x00,0x00, + 0x00,0x6e,0x00,0x01,0x00,0x00,0x00,0x6e,0x00,0x01, + 0x00,0x00,0x00,0x6e,0x00,0x01,0x00,0x00,0x00,0x6e, + 0x00,0x01,0x00,0x00,0x00,0x6e,0x00,0x01,0x00,0x00, + 0x04,0x90,0x00,0x01,0x00,0x00,0x04,0x90,0x00,0x01, + 0x00,0x00,0x00,0x6e,0x00,0x01,0x00,0x00,0x02,0x44, + 0x00,0x01,0x00,0x00,0x00,0x6e,0x00,0x01,0x00,0x00, + 0x04,0x90,0x00,0x01,0x00,0x00,0x04,0x90,0x00,0x01, + 0x00,0x00,0x00,0x6e,0x00,0x01,0x00,0x00,0x00,0x0a, + 0x00,0x1c,0x00,0x1e,0x00,0x01,0x68,0x65,0x62,0x72, + 0x00,0x08,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, + 0x00,0x00,0x00,0x00 +}; diff --git a/data/converted/option_arrow_svg.cpp b/data/converted/option_arrow_svg.cpp new file mode 100644 index 000000000..c07891afd --- /dev/null +++ b/data/converted/option_arrow_svg.cpp @@ -0,0 +1,92 @@ +//this file was auto-generated from "option_arrow.svg" by res2h + +#include "../Resources.h" + +const size_t option_arrow_svg_size = 850; +const unsigned char option_arrow_svg_data[850] = { + 0x3c,0x3f,0x78,0x6d,0x6c,0x20,0x76,0x65,0x72,0x73, + 0x69,0x6f,0x6e,0x3d,0x22,0x31,0x2e,0x30,0x22,0x20, + 0x65,0x6e,0x63,0x6f,0x64,0x69,0x6e,0x67,0x3d,0x22, + 0x75,0x74,0x66,0x2d,0x38,0x22,0x3f,0x3e,0x0d,0x0a, + 0x3c,0x21,0x2d,0x2d,0x20,0x47,0x65,0x6e,0x65,0x72, + 0x61,0x74,0x6f,0x72,0x3a,0x20,0x41,0x64,0x6f,0x62, + 0x65,0x20,0x49,0x6c,0x6c,0x75,0x73,0x74,0x72,0x61, + 0x74,0x6f,0x72,0x20,0x31,0x36,0x2e,0x30,0x2e,0x33, + 0x2c,0x20,0x53,0x56,0x47,0x20,0x45,0x78,0x70,0x6f, + 0x72,0x74,0x20,0x50,0x6c,0x75,0x67,0x2d,0x49,0x6e, + 0x20,0x2e,0x20,0x53,0x56,0x47,0x20,0x56,0x65,0x72, + 0x73,0x69,0x6f,0x6e,0x3a,0x20,0x36,0x2e,0x30,0x30, + 0x20,0x42,0x75,0x69,0x6c,0x64,0x20,0x30,0x29,0x20, + 0x20,0x2d,0x2d,0x3e,0x0d,0x0a,0x3c,0x21,0x44,0x4f, + 0x43,0x54,0x59,0x50,0x45,0x20,0x73,0x76,0x67,0x20, + 0x50,0x55,0x42,0x4c,0x49,0x43,0x20,0x22,0x2d,0x2f, + 0x2f,0x57,0x33,0x43,0x2f,0x2f,0x44,0x54,0x44,0x20, + 0x53,0x56,0x47,0x20,0x31,0x2e,0x31,0x2f,0x2f,0x45, + 0x4e,0x22,0x20,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f, + 0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72, + 0x67,0x2f,0x47,0x72,0x61,0x70,0x68,0x69,0x63,0x73, + 0x2f,0x53,0x56,0x47,0x2f,0x31,0x2e,0x31,0x2f,0x44, + 0x54,0x44,0x2f,0x73,0x76,0x67,0x31,0x31,0x2e,0x64, + 0x74,0x64,0x22,0x3e,0x0d,0x0a,0x3c,0x73,0x76,0x67, + 0x20,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x3d,0x22, + 0x31,0x2e,0x31,0x22,0x20,0x69,0x64,0x3d,0x22,0x45, + 0x62,0x65,0x6e,0x65,0x5f,0x31,0x22,0x20,0x78,0x6d, + 0x6c,0x6e,0x73,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a, + 0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f, + 0x72,0x67,0x2f,0x32,0x30,0x30,0x30,0x2f,0x73,0x76, + 0x67,0x22,0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3a,0x78, + 0x6c,0x69,0x6e,0x6b,0x3d,0x22,0x68,0x74,0x74,0x70, + 0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e, + 0x6f,0x72,0x67,0x2f,0x31,0x39,0x39,0x39,0x2f,0x78, + 0x6c,0x69,0x6e,0x6b,0x22,0x20,0x78,0x3d,0x22,0x30, + 0x70,0x78,0x22,0x20,0x79,0x3d,0x22,0x30,0x70,0x78, + 0x22,0x0d,0x0a,0x09,0x20,0x77,0x69,0x64,0x74,0x68, + 0x3d,0x22,0x31,0x32,0x2e,0x31,0x35,0x38,0x70,0x78, + 0x22,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x22, + 0x32,0x31,0x2e,0x39,0x31,0x33,0x70,0x78,0x22,0x20, + 0x76,0x69,0x65,0x77,0x42,0x6f,0x78,0x3d,0x22,0x30, + 0x20,0x30,0x20,0x31,0x32,0x2e,0x31,0x35,0x38,0x20, + 0x32,0x31,0x2e,0x39,0x31,0x33,0x22,0x20,0x65,0x6e, + 0x61,0x62,0x6c,0x65,0x2d,0x62,0x61,0x63,0x6b,0x67, + 0x72,0x6f,0x75,0x6e,0x64,0x3d,0x22,0x6e,0x65,0x77, + 0x20,0x30,0x20,0x30,0x20,0x31,0x32,0x2e,0x31,0x35, + 0x38,0x20,0x32,0x31,0x2e,0x39,0x31,0x33,0x22,0x20, + 0x78,0x6d,0x6c,0x3a,0x73,0x70,0x61,0x63,0x65,0x3d, + 0x22,0x70,0x72,0x65,0x73,0x65,0x72,0x76,0x65,0x22, + 0x3e,0x0d,0x0a,0x3c,0x67,0x3e,0x0d,0x0a,0x09,0x3c, + 0x70,0x61,0x74,0x68,0x20,0x66,0x69,0x6c,0x6c,0x3d, + 0x22,0x23,0x37,0x37,0x37,0x37,0x37,0x37,0x22,0x20, + 0x64,0x3d,0x22,0x4d,0x30,0x2e,0x37,0x35,0x2c,0x32, + 0x31,0x2e,0x39,0x31,0x33,0x63,0x2d,0x30,0x2e,0x31, + 0x2c,0x30,0x2d,0x30,0x2e,0x32,0x2d,0x30,0x2e,0x30, + 0x32,0x2d,0x30,0x2e,0x32,0x39,0x34,0x2d,0x30,0x2e, + 0x30,0x36,0x31,0x43,0x30,0x2e,0x31,0x37,0x39,0x2c, + 0x32,0x31,0x2e,0x37,0x33,0x35,0x2c,0x30,0x2c,0x32, + 0x31,0x2e,0x34,0x36,0x33,0x2c,0x30,0x2c,0x32,0x31, + 0x2e,0x31,0x36,0x33,0x56,0x30,0x2e,0x37,0x35,0x0d, + 0x0a,0x09,0x09,0x63,0x30,0x2d,0x30,0x2e,0x33,0x2c, + 0x30,0x2e,0x31,0x37,0x39,0x2d,0x30,0x2e,0x35,0x37, + 0x32,0x2c,0x30,0x2e,0x34,0x35,0x36,0x2d,0x30,0x2e, + 0x36,0x39,0x43,0x30,0x2e,0x37,0x33,0x2d,0x30,0x2e, + 0x30,0x35,0x37,0x2c,0x31,0x2e,0x30,0x35,0x32,0x2c, + 0x30,0x2c,0x31,0x2e,0x32,0x36,0x39,0x2c,0x30,0x2e, + 0x32,0x30,0x38,0x6c,0x31,0x30,0x2e,0x36,0x35,0x38, + 0x2c,0x31,0x30,0x2e,0x32,0x30,0x36,0x63,0x30,0x2e, + 0x31,0x34,0x37,0x2c,0x30,0x2e,0x31,0x34,0x31,0x2c, + 0x30,0x2e,0x32,0x33,0x31,0x2c,0x30,0x2e,0x33,0x33, + 0x37,0x2c,0x30,0x2e,0x32,0x33,0x31,0x2c,0x30,0x2e, + 0x35,0x34,0x32,0x0d,0x0a,0x09,0x09,0x73,0x2d,0x30, + 0x2e,0x30,0x38,0x34,0x2c,0x30,0x2e,0x34,0x2d,0x30, + 0x2e,0x32,0x33,0x31,0x2c,0x30,0x2e,0x35,0x34,0x32, + 0x4c,0x31,0x2e,0x32,0x36,0x39,0x2c,0x32,0x31,0x2e, + 0x37,0x30,0x35,0x43,0x31,0x2e,0x31,0x32,0x36,0x2c, + 0x32,0x31,0x2e,0x38,0x34,0x2c,0x30,0x2e,0x39,0x33, + 0x39,0x2c,0x32,0x31,0x2e,0x39,0x31,0x33,0x2c,0x30, + 0x2e,0x37,0x35,0x2c,0x32,0x31,0x2e,0x39,0x31,0x33, + 0x7a,0x20,0x4d,0x31,0x2e,0x35,0x2c,0x32,0x2e,0x35, + 0x30,0x36,0x76,0x31,0x36,0x2e,0x38,0x39,0x39,0x6c, + 0x38,0x2e,0x38,0x32,0x34,0x2d,0x38,0x2e,0x34,0x35, + 0x4c,0x31,0x2e,0x35,0x2c,0x32,0x2e,0x35,0x30,0x36, + 0x7a,0x22,0x2f,0x3e,0x0d,0x0a,0x3c,0x2f,0x67,0x3e, + 0x0d,0x0a,0x3c,0x2f,0x73,0x76,0x67,0x3e,0x0d,0x0a +}; diff --git a/data/converted/scroll_gradient_png.cpp b/data/converted/scroll_gradient_png.cpp new file mode 100644 index 000000000..53c59587f --- /dev/null +++ b/data/converted/scroll_gradient_png.cpp @@ -0,0 +1,8346 @@ +//this file was auto-generated from "scroll_gradient.png" by res2h + +#include "../Resources.h" + +const size_t scroll_gradient_png_size = 83384; +const unsigned char scroll_gradient_png_data[83384] = { + 0x89,0x50,0x4e,0x47,0x0d,0x0a,0x1a,0x0a,0x00,0x00, + 0x00,0x0d,0x49,0x48,0x44,0x52,0x00,0x00,0x02,0x40, + 0x00,0x00,0x01,0x44,0x08,0x06,0x00,0x00,0x00,0xcf, + 0xe3,0x81,0xbd,0x00,0x00,0x00,0x09,0x70,0x48,0x59, + 0x73,0x00,0x00,0x0b,0x13,0x00,0x00,0x0b,0x13,0x01, + 0x00,0x9a,0x9c,0x18,0x00,0x00,0x0a,0x4f,0x69,0x43, + 0x43,0x50,0x50,0x68,0x6f,0x74,0x6f,0x73,0x68,0x6f, + 0x70,0x20,0x49,0x43,0x43,0x20,0x70,0x72,0x6f,0x66, + 0x69,0x6c,0x65,0x00,0x00,0x78,0xda,0x9d,0x53,0x67, + 0x54,0x53,0xe9,0x16,0x3d,0xf7,0xde,0xf4,0x42,0x4b, + 0x88,0x80,0x94,0x4b,0x6f,0x52,0x15,0x08,0x20,0x52, + 0x42,0x8b,0x80,0x14,0x91,0x26,0x2a,0x21,0x09,0x10, + 0x4a,0x88,0x21,0xa1,0xd9,0x15,0x51,0xc1,0x11,0x45, + 0x45,0x04,0x1b,0xc8,0xa0,0x88,0x03,0x8e,0x8e,0x80, + 0x8c,0x15,0x51,0x2c,0x0c,0x8a,0x0a,0xd8,0x07,0xe4, + 0x21,0xa2,0x8e,0x83,0xa3,0x88,0x8a,0xca,0xfb,0xe1, + 0x7b,0xa3,0x6b,0xd6,0xbc,0xf7,0xe6,0xcd,0xfe,0xb5, + 0xd7,0x3e,0xe7,0xac,0xf3,0x9d,0xb3,0xcf,0x07,0xc0, + 0x08,0x0c,0x96,0x48,0x33,0x51,0x35,0x80,0x0c,0xa9, + 0x42,0x1e,0x11,0xe0,0x83,0xc7,0xc4,0xc6,0xe1,0xe4, + 0x2e,0x40,0x81,0x0a,0x24,0x70,0x00,0x10,0x08,0xb3, + 0x64,0x21,0x73,0xfd,0x23,0x01,0x00,0xf8,0x7e,0x3c, + 0x3c,0x2b,0x22,0xc0,0x07,0xbe,0x00,0x01,0x78,0xd3, + 0x0b,0x08,0x00,0xc0,0x4d,0x9b,0xc0,0x30,0x1c,0x87, + 0xff,0x0f,0xea,0x42,0x99,0x5c,0x01,0x80,0x84,0x01, + 0xc0,0x74,0x91,0x38,0x4b,0x08,0x80,0x14,0x00,0x40, + 0x7a,0x8e,0x42,0xa6,0x00,0x40,0x46,0x01,0x80,0x9d, + 0x98,0x26,0x53,0x00,0xa0,0x04,0x00,0x60,0xcb,0x63, + 0x62,0xe3,0x00,0x50,0x2d,0x00,0x60,0x27,0x7f,0xe6, + 0xd3,0x00,0x80,0x9d,0xf8,0x99,0x7b,0x01,0x00,0x5b, + 0x94,0x21,0x15,0x01,0xa0,0x91,0x00,0x20,0x13,0x65, + 0x88,0x44,0x00,0x68,0x3b,0x00,0xac,0xcf,0x56,0x8a, + 0x45,0x00,0x58,0x30,0x00,0x14,0x66,0x4b,0xc4,0x39, + 0x00,0xd8,0x2d,0x00,0x30,0x49,0x57,0x66,0x48,0x00, + 0xb0,0xb7,0x00,0xc0,0xce,0x10,0x0b,0xb2,0x00,0x08, + 0x0c,0x00,0x30,0x51,0x88,0x85,0x29,0x00,0x04,0x7b, + 0x00,0x60,0xc8,0x23,0x23,0x78,0x00,0x84,0x99,0x00, + 0x14,0x46,0xf2,0x57,0x3c,0xf1,0x2b,0xae,0x10,0xe7, + 0x2a,0x00,0x00,0x78,0x99,0xb2,0x3c,0xb9,0x24,0x39, + 0x45,0x81,0x5b,0x08,0x2d,0x71,0x07,0x57,0x57,0x2e, + 0x1e,0x28,0xce,0x49,0x17,0x2b,0x14,0x36,0x61,0x02, + 0x61,0x9a,0x40,0x2e,0xc2,0x79,0x99,0x19,0x32,0x81, + 0x34,0x0f,0xe0,0xf3,0xcc,0x00,0x00,0xa0,0x91,0x15, + 0x11,0xe0,0x83,0xf3,0xfd,0x78,0xce,0x0e,0xae,0xce, + 0xce,0x36,0x8e,0xb6,0x0e,0x5f,0x2d,0xea,0xbf,0x06, + 0xff,0x22,0x62,0x62,0xe3,0xfe,0xe5,0xcf,0xab,0x70, + 0x40,0x00,0x00,0xe1,0x74,0x7e,0xd1,0xfe,0x2c,0x2f, + 0xb3,0x1a,0x80,0x3b,0x06,0x80,0x6d,0xfe,0xa2,0x25, + 0xee,0x04,0x68,0x5e,0x0b,0xa0,0x75,0xf7,0x8b,0x66, + 0xb2,0x0f,0x40,0xb5,0x00,0xa0,0xe9,0xda,0x57,0xf3, + 0x70,0xf8,0x7e,0x3c,0x3c,0x45,0xa1,0x90,0xb9,0xd9, + 0xd9,0xe5,0xe4,0xe4,0xd8,0x4a,0xc4,0x42,0x5b,0x61, + 0xca,0x57,0x7d,0xfe,0x67,0xc2,0x5f,0xc0,0x57,0xfd, + 0x6c,0xf9,0x7e,0x3c,0xfc,0xf7,0xf5,0xe0,0xbe,0xe2, + 0x24,0x81,0x32,0x5d,0x81,0x47,0x04,0xf8,0xe0,0xc2, + 0xcc,0xf4,0x4c,0xa5,0x1c,0xcf,0x92,0x09,0x84,0x62, + 0xdc,0xe6,0x8f,0x47,0xfc,0xb7,0x0b,0xff,0xfc,0x1d, + 0xd3,0x22,0xc4,0x49,0x62,0xb9,0x58,0x2a,0x14,0xe3, + 0x51,0x12,0x71,0x8e,0x44,0x9a,0x8c,0xf3,0x32,0xa5, + 0x22,0x89,0x42,0x92,0x29,0xc5,0x25,0xd2,0xff,0x64, + 0xe2,0xdf,0x2c,0xfb,0x03,0x3e,0xdf,0x35,0x00,0xb0, + 0x6a,0x3e,0x01,0x7b,0x91,0x2d,0xa8,0x5d,0x63,0x03, + 0xf6,0x4b,0x27,0x10,0x58,0x74,0xc0,0xe2,0xf7,0x00, + 0x00,0xf2,0xbb,0x6f,0xc1,0xd4,0x28,0x08,0x03,0x80, + 0x68,0x83,0xe1,0xcf,0x77,0xff,0xef,0x3f,0xfd,0x47, + 0xa0,0x25,0x00,0x80,0x66,0x49,0x92,0x71,0x00,0x00, + 0x5e,0x44,0x24,0x2e,0x54,0xca,0xb3,0x3f,0xc7,0x08, + 0x00,0x00,0x44,0xa0,0x81,0x2a,0xb0,0x41,0x1b,0xf4, + 0xc1,0x18,0x2c,0xc0,0x06,0x1c,0xc1,0x05,0xdc,0xc1, + 0x0b,0xfc,0x60,0x36,0x84,0x42,0x24,0xc4,0xc2,0x42, + 0x10,0x42,0x0a,0x64,0x80,0x1c,0x72,0x60,0x29,0xac, + 0x82,0x42,0x28,0x86,0xcd,0xb0,0x1d,0x2a,0x60,0x2f, + 0xd4,0x40,0x1d,0x34,0xc0,0x51,0x68,0x86,0x93,0x70, + 0x0e,0x2e,0xc2,0x55,0xb8,0x0e,0x3d,0x70,0x0f,0xfa, + 0x61,0x08,0x9e,0xc1,0x28,0xbc,0x81,0x09,0x04,0x41, + 0xc8,0x08,0x13,0x61,0x21,0xda,0x88,0x01,0x62,0x8a, + 0x58,0x23,0x8e,0x08,0x17,0x99,0x85,0xf8,0x21,0xc1, + 0x48,0x04,0x12,0x8b,0x24,0x20,0xc9,0x88,0x14,0x51, + 0x22,0x4b,0x91,0x35,0x48,0x31,0x52,0x8a,0x54,0x20, + 0x55,0x48,0x1d,0xf2,0x3d,0x72,0x02,0x39,0x87,0x5c, + 0x46,0xba,0x91,0x3b,0xc8,0x00,0x32,0x82,0xfc,0x86, + 0xbc,0x47,0x31,0x94,0x81,0xb2,0x51,0x3d,0xd4,0x0c, + 0xb5,0x43,0xb9,0xa8,0x37,0x1a,0x84,0x46,0xa2,0x0b, + 0xd0,0x64,0x74,0x31,0x9a,0x8f,0x16,0xa0,0x9b,0xd0, + 0x72,0xb4,0x1a,0x3d,0x8c,0x36,0xa1,0xe7,0xd0,0xab, + 0x68,0x0f,0xda,0x8f,0x3e,0x43,0xc7,0x30,0xc0,0xe8, + 0x18,0x07,0x33,0xc4,0x6c,0x30,0x2e,0xc6,0xc3,0x42, + 0xb1,0x38,0x2c,0x09,0x93,0x63,0xcb,0xb1,0x22,0xac, + 0x0c,0xab,0xc6,0x1a,0xb0,0x56,0xac,0x03,0xbb,0x89, + 0xf5,0x63,0xcf,0xb1,0x77,0x04,0x12,0x81,0x45,0xc0, + 0x09,0x36,0x04,0x77,0x42,0x20,0x61,0x1e,0x41,0x48, + 0x58,0x4c,0x58,0x4e,0xd8,0x48,0xa8,0x20,0x1c,0x24, + 0x34,0x11,0xda,0x09,0x37,0x09,0x03,0x84,0x51,0xc2, + 0x27,0x22,0x93,0xa8,0x4b,0xb4,0x26,0xba,0x11,0xf9, + 0xc4,0x18,0x62,0x32,0x31,0x87,0x58,0x48,0x2c,0x23, + 0xd6,0x12,0x8f,0x13,0x2f,0x10,0x7b,0x88,0x43,0xc4, + 0x37,0x24,0x12,0x89,0x43,0x32,0x27,0xb9,0x90,0x02, + 0x49,0xb1,0xa4,0x54,0xd2,0x12,0xd2,0x46,0xd2,0x6e, + 0x52,0x23,0xe9,0x2c,0xa9,0x9b,0x34,0x48,0x1a,0x23, + 0x93,0xc9,0xda,0x64,0x6b,0xb2,0x07,0x39,0x94,0x2c, + 0x20,0x2b,0xc8,0x85,0xe4,0x9d,0xe4,0xc3,0xe4,0x33, + 0xe4,0x1b,0xe4,0x21,0xf2,0x5b,0x0a,0x9d,0x62,0x40, + 0x71,0xa4,0xf8,0x53,0xe2,0x28,0x52,0xca,0x6a,0x4a, + 0x19,0xe5,0x10,0xe5,0x34,0xe5,0x06,0x65,0x98,0x32, + 0x41,0x55,0xa3,0x9a,0x52,0xdd,0xa8,0xa1,0x54,0x11, + 0x35,0x8f,0x5a,0x42,0xad,0xa1,0xb6,0x52,0xaf,0x51, + 0x87,0xa8,0x13,0x34,0x75,0x9a,0x39,0xcd,0x83,0x16, + 0x49,0x4b,0xa5,0xad,0xa2,0x95,0xd3,0x1a,0x68,0x17, + 0x68,0xf7,0x69,0xaf,0xe8,0x74,0xba,0x11,0xdd,0x95, + 0x1e,0x4e,0x97,0xd0,0x57,0xd2,0xcb,0xe9,0x47,0xe8, + 0x97,0xe8,0x03,0xf4,0x77,0x0c,0x0d,0x86,0x15,0x83, + 0xc7,0x88,0x67,0x28,0x19,0x9b,0x18,0x07,0x18,0x67, + 0x19,0x77,0x18,0xaf,0x98,0x4c,0xa6,0x19,0xd3,0x8b, + 0x19,0xc7,0x54,0x30,0x37,0x31,0xeb,0x98,0xe7,0x99, + 0x0f,0x99,0x6f,0x55,0x58,0x2a,0xb6,0x2a,0x7c,0x15, + 0x91,0xca,0x0a,0x95,0x4a,0x95,0x26,0x95,0x1b,0x2a, + 0x2f,0x54,0xa9,0xaa,0xa6,0xaa,0xde,0xaa,0x0b,0x55, + 0xf3,0x55,0xcb,0x54,0x8f,0xa9,0x5e,0x53,0x7d,0xae, + 0x46,0x55,0x33,0x53,0xe3,0xa9,0x09,0xd4,0x96,0xab, + 0x55,0xaa,0x9d,0x50,0xeb,0x53,0x1b,0x53,0x67,0xa9, + 0x3b,0xa8,0x87,0xaa,0x67,0xa8,0x6f,0x54,0x3f,0xa4, + 0x7e,0x59,0xfd,0x89,0x06,0x59,0xc3,0x4c,0xc3,0x4f, + 0x43,0xa4,0x51,0xa0,0xb1,0x5f,0xe3,0xbc,0xc6,0x20, + 0x0b,0x63,0x19,0xb3,0x78,0x2c,0x21,0x6b,0x0d,0xab, + 0x86,0x75,0x81,0x35,0xc4,0x26,0xb1,0xcd,0xd9,0x7c, + 0x76,0x2a,0xbb,0x98,0xfd,0x1d,0xbb,0x8b,0x3d,0xaa, + 0xa9,0xa1,0x39,0x43,0x33,0x4a,0x33,0x57,0xb3,0x52, + 0xf3,0x94,0x66,0x3f,0x07,0xe3,0x98,0x71,0xf8,0x9c, + 0x74,0x4e,0x09,0xe7,0x28,0xa7,0x97,0xf3,0x7e,0x8a, + 0xde,0x14,0xef,0x29,0xe2,0x29,0x1b,0xa6,0x34,0x4c, + 0xb9,0x31,0x65,0x5c,0x6b,0xaa,0x96,0x97,0x96,0x58, + 0xab,0x48,0xab,0x51,0xab,0x47,0xeb,0xbd,0x36,0xae, + 0xed,0xa7,0x9d,0xa6,0xbd,0x45,0xbb,0x59,0xfb,0x81, + 0x0e,0x41,0xc7,0x4a,0x27,0x5c,0x27,0x47,0x67,0x8f, + 0xce,0x05,0x9d,0xe7,0x53,0xd9,0x53,0xdd,0xa7,0x0a, + 0xa7,0x16,0x4d,0x3d,0x3a,0xf5,0xae,0x2e,0xaa,0x6b, + 0xa5,0x1b,0xa1,0xbb,0x44,0x77,0xbf,0x6e,0xa7,0xee, + 0x98,0x9e,0xbe,0x5e,0x80,0x9e,0x4c,0x6f,0xa7,0xde, + 0x79,0xbd,0xe7,0xfa,0x1c,0x7d,0x2f,0xfd,0x54,0xfd, + 0x6d,0xfa,0xa7,0xf5,0x47,0x0c,0x58,0x06,0xb3,0x0c, + 0x24,0x06,0xdb,0x0c,0xce,0x18,0x3c,0xc5,0x35,0x71, + 0x6f,0x3c,0x1d,0x2f,0xc7,0xdb,0xf1,0x51,0x43,0x5d, + 0xc3,0x40,0x43,0xa5,0x61,0x95,0x61,0x97,0xe1,0x84, + 0x91,0xb9,0xd1,0x3c,0xa3,0xd5,0x46,0x8d,0x46,0x0f, + 0x8c,0x69,0xc6,0x5c,0xe3,0x24,0xe3,0x6d,0xc6,0x6d, + 0xc6,0xa3,0x26,0x06,0x26,0x21,0x26,0x4b,0x4d,0xea, + 0x4d,0xee,0x9a,0x52,0x4d,0xb9,0xa6,0x29,0xa6,0x3b, + 0x4c,0x3b,0x4c,0xc7,0xcd,0xcc,0xcd,0xa2,0xcd,0xd6, + 0x99,0x35,0x9b,0x3d,0x31,0xd7,0x32,0xe7,0x9b,0xe7, + 0x9b,0xd7,0x9b,0xdf,0xb7,0x60,0x5a,0x78,0x5a,0x2c, + 0xb6,0xa8,0xb6,0xb8,0x65,0x49,0xb2,0xe4,0x5a,0xa6, + 0x59,0xee,0xb6,0xbc,0x6e,0x85,0x5a,0x39,0x59,0xa5, + 0x58,0x55,0x5a,0x5d,0xb3,0x46,0xad,0x9d,0xad,0x25, + 0xd6,0xbb,0xad,0xbb,0xa7,0x11,0xa7,0xb9,0x4e,0x93, + 0x4e,0xab,0x9e,0xd6,0x67,0xc3,0xb0,0xf1,0xb6,0xc9, + 0xb6,0xa9,0xb7,0x19,0xb0,0xe5,0xd8,0x06,0xdb,0xae, + 0xb6,0x6d,0xb6,0x7d,0x61,0x67,0x62,0x17,0x67,0xb7, + 0xc5,0xae,0xc3,0xee,0x93,0xbd,0x93,0x7d,0xba,0x7d, + 0x8d,0xfd,0x3d,0x07,0x0d,0x87,0xd9,0x0e,0xab,0x1d, + 0x5a,0x1d,0x7e,0x73,0xb4,0x72,0x14,0x3a,0x56,0x3a, + 0xde,0x9a,0xce,0x9c,0xee,0x3f,0x7d,0xc5,0xf4,0x96, + 0xe9,0x2f,0x67,0x58,0xcf,0x10,0xcf,0xd8,0x33,0xe3, + 0xb6,0x13,0xcb,0x29,0xc4,0x69,0x9d,0x53,0x9b,0xd3, + 0x47,0x67,0x17,0x67,0xb9,0x73,0x83,0xf3,0x88,0x8b, + 0x89,0x4b,0x82,0xcb,0x2e,0x97,0x3e,0x2e,0x9b,0x1b, + 0xc6,0xdd,0xc8,0xbd,0xe4,0x4a,0x74,0xf5,0x71,0x5d, + 0xe1,0x7a,0xd2,0xf5,0x9d,0x9b,0xb3,0x9b,0xc2,0xed, + 0xa8,0xdb,0xaf,0xee,0x36,0xee,0x69,0xee,0x87,0xdc, + 0x9f,0xcc,0x34,0x9f,0x29,0x9e,0x59,0x33,0x73,0xd0, + 0xc3,0xc8,0x43,0xe0,0x51,0xe5,0xd1,0x3f,0x0b,0x9f, + 0x95,0x30,0x6b,0xdf,0xac,0x7e,0x4f,0x43,0x4f,0x81, + 0x67,0xb5,0xe7,0x23,0x2f,0x63,0x2f,0x91,0x57,0xad, + 0xd7,0xb0,0xb7,0xa5,0x77,0xaa,0xf7,0x61,0xef,0x17, + 0x3e,0xf6,0x3e,0x72,0x9f,0xe3,0x3e,0xe3,0x3c,0x37, + 0xde,0x32,0xde,0x59,0x5f,0xcc,0x37,0xc0,0xb7,0xc8, + 0xb7,0xcb,0x4f,0xc3,0x6f,0x9e,0x5f,0x85,0xdf,0x43, + 0x7f,0x23,0xff,0x64,0xff,0x7a,0xff,0xd1,0x00,0xa7, + 0x80,0x25,0x01,0x67,0x03,0x89,0x81,0x41,0x81,0x5b, + 0x02,0xfb,0xf8,0x7a,0x7c,0x21,0xbf,0x8e,0x3f,0x3a, + 0xdb,0x65,0xf6,0xb2,0xd9,0xed,0x41,0x8c,0xa0,0xb9, + 0x41,0x15,0x41,0x8f,0x82,0xad,0x82,0xe5,0xc1,0xad, + 0x21,0x68,0xc8,0xec,0x90,0xad,0x21,0xf7,0xe7,0x98, + 0xce,0x91,0xce,0x69,0x0e,0x85,0x50,0x7e,0xe8,0xd6, + 0xd0,0x07,0x61,0xe6,0x61,0x8b,0xc3,0x7e,0x0c,0x27, + 0x85,0x87,0x85,0x57,0x86,0x3f,0x8e,0x70,0x88,0x58, + 0x1a,0xd1,0x31,0x97,0x35,0x77,0xd1,0xdc,0x43,0x73, + 0xdf,0x44,0xfa,0x44,0x96,0x44,0xde,0x9b,0x67,0x31, + 0x4f,0x39,0xaf,0x2d,0x4a,0x35,0x2a,0x3e,0xaa,0x2e, + 0x6a,0x3c,0xda,0x37,0xba,0x34,0xba,0x3f,0xc6,0x2e, + 0x66,0x59,0xcc,0xd5,0x58,0x9d,0x58,0x49,0x6c,0x4b, + 0x1c,0x39,0x2e,0x2a,0xae,0x36,0x6e,0x6c,0xbe,0xdf, + 0xfc,0xed,0xf3,0x87,0xe2,0x9d,0xe2,0x0b,0xe3,0x7b, + 0x17,0x98,0x2f,0xc8,0x5d,0x70,0x79,0xa1,0xce,0xc2, + 0xf4,0x85,0xa7,0x16,0xa9,0x2e,0x12,0x2c,0x3a,0x96, + 0x40,0x4c,0x88,0x4e,0x38,0x94,0xf0,0x41,0x10,0x2a, + 0xa8,0x16,0x8c,0x25,0xf2,0x13,0x77,0x25,0x8e,0x0a, + 0x79,0xc2,0x1d,0xc2,0x67,0x22,0x2f,0xd1,0x36,0xd1, + 0x88,0xd8,0x43,0x5c,0x2a,0x1e,0x4e,0xf2,0x48,0x2a, + 0x4d,0x7a,0x92,0xec,0x91,0xbc,0x35,0x79,0x24,0xc5, + 0x33,0xa5,0x2c,0xe5,0xb9,0x84,0x27,0xa9,0x90,0xbc, + 0x4c,0x0d,0x4c,0xdd,0x9b,0x3a,0x9e,0x16,0x9a,0x76, + 0x20,0x6d,0x32,0x3d,0x3a,0xbd,0x31,0x83,0x92,0x91, + 0x90,0x71,0x42,0xaa,0x21,0x4d,0x93,0xb6,0x67,0xea, + 0x67,0xe6,0x66,0x76,0xcb,0xac,0x65,0x85,0xb2,0xfe, + 0xc5,0x6e,0x8b,0xb7,0x2f,0x1e,0x95,0x07,0xc9,0x6b, + 0xb3,0x90,0xac,0x05,0x59,0x2d,0x0a,0xb6,0x42,0xa6, + 0xe8,0x54,0x5a,0x28,0xd7,0x2a,0x07,0xb2,0x67,0x65, + 0x57,0x66,0xbf,0xcd,0x89,0xca,0x39,0x96,0xab,0x9e, + 0x2b,0xcd,0xed,0xcc,0xb3,0xca,0xdb,0x90,0x37,0x9c, + 0xef,0x9f,0xff,0xed,0x12,0xc2,0x12,0xe1,0x92,0xb6, + 0xa5,0x86,0x4b,0x57,0x2d,0x1d,0x58,0xe6,0xbd,0xac, + 0x6a,0x39,0xb2,0x3c,0x71,0x79,0xdb,0x0a,0xe3,0x15, + 0x05,0x2b,0x86,0x56,0x06,0xac,0x3c,0xb8,0x8a,0xb6, + 0x2a,0x6d,0xd5,0x4f,0xab,0xed,0x57,0x97,0xae,0x7e, + 0xbd,0x26,0x7a,0x4d,0x6b,0x81,0x5e,0xc1,0xca,0x82, + 0xc1,0xb5,0x01,0x6b,0xeb,0x0b,0x55,0x0a,0xe5,0x85, + 0x7d,0xeb,0xdc,0xd7,0xed,0x5d,0x4f,0x58,0x2f,0x59, + 0xdf,0xb5,0x61,0xfa,0x86,0x9d,0x1b,0x3e,0x15,0x89, + 0x8a,0xae,0x14,0xdb,0x17,0x97,0x15,0x7f,0xd8,0x28, + 0xdc,0x78,0xe5,0x1b,0x87,0x6f,0xca,0xbf,0x99,0xdc, + 0x94,0xb4,0xa9,0xab,0xc4,0xb9,0x64,0xcf,0x66,0xd2, + 0x66,0xe9,0xe6,0xde,0x2d,0x9e,0x5b,0x0e,0x96,0xaa, + 0x97,0xe6,0x97,0x0e,0x6e,0x0d,0xd9,0xda,0xb4,0x0d, + 0xdf,0x56,0xb4,0xed,0xf5,0xf6,0x45,0xdb,0x2f,0x97, + 0xcd,0x28,0xdb,0xbb,0x83,0xb6,0x43,0xb9,0xa3,0xbf, + 0x3c,0xb8,0xbc,0x65,0xa7,0xc9,0xce,0xcd,0x3b,0x3f, + 0x54,0xa4,0x54,0xf4,0x54,0xfa,0x54,0x36,0xee,0xd2, + 0xdd,0xb5,0x61,0xd7,0xf8,0x6e,0xd1,0xee,0x1b,0x7b, + 0xbc,0xf6,0x34,0xec,0xd5,0xdb,0x5b,0xbc,0xf7,0xfd, + 0x3e,0xc9,0xbe,0xdb,0x55,0x01,0x55,0x4d,0xd5,0x66, + 0xd5,0x65,0xfb,0x49,0xfb,0xb3,0xf7,0x3f,0xae,0x89, + 0xaa,0xe9,0xf8,0x96,0xfb,0x6d,0x5d,0xad,0x4e,0x6d, + 0x71,0xed,0xc7,0x03,0xd2,0x03,0xfd,0x07,0x23,0x0e, + 0xb6,0xd7,0xb9,0xd4,0xd5,0x1d,0xd2,0x3d,0x54,0x52, + 0x8f,0xd6,0x2b,0xeb,0x47,0x0e,0xc7,0x1f,0xbe,0xfe, + 0x9d,0xef,0x77,0x2d,0x0d,0x36,0x0d,0x55,0x8d,0x9c, + 0xc6,0xe2,0x23,0x70,0x44,0x79,0xe4,0xe9,0xf7,0x09, + 0xdf,0xf7,0x1e,0x0d,0x3a,0xda,0x76,0x8c,0x7b,0xac, + 0xe1,0x07,0xd3,0x1f,0x76,0x1d,0x67,0x1d,0x2f,0x6a, + 0x42,0x9a,0xf2,0x9a,0x46,0x9b,0x53,0x9a,0xfb,0x5b, + 0x62,0x5b,0xba,0x4f,0xcc,0x3e,0xd1,0xd6,0xea,0xde, + 0x7a,0xfc,0x47,0xdb,0x1f,0x0f,0x9c,0x34,0x3c,0x59, + 0x79,0x4a,0xf3,0x54,0xc9,0x69,0xda,0xe9,0x82,0xd3, + 0x93,0x67,0xf2,0xcf,0x8c,0x9d,0x95,0x9d,0x7d,0x7e, + 0x2e,0xf9,0xdc,0x60,0xdb,0xa2,0xb6,0x7b,0xe7,0x63, + 0xce,0xdf,0x6a,0x0f,0x6f,0xef,0xba,0x10,0x74,0xe1, + 0xd2,0x45,0xff,0x8b,0xe7,0x3b,0xbc,0x3b,0xce,0x5c, + 0xf2,0xb8,0x74,0xf2,0xb2,0xdb,0xe5,0x13,0x57,0xb8, + 0x57,0x9a,0xaf,0x3a,0x5f,0x6d,0xea,0x74,0xea,0x3c, + 0xfe,0x93,0xd3,0x4f,0xc7,0xbb,0x9c,0xbb,0x9a,0xae, + 0xb9,0x5c,0x6b,0xb9,0xee,0x7a,0xbd,0xb5,0x7b,0x66, + 0xf7,0xe9,0x1b,0x9e,0x37,0xce,0xdd,0xf4,0xbd,0x79, + 0xf1,0x16,0xff,0xd6,0xd5,0x9e,0x39,0x3d,0xdd,0xbd, + 0xf3,0x7a,0x6f,0xf7,0xc5,0xf7,0xf5,0xdf,0x16,0xdd, + 0x7e,0x72,0x27,0xfd,0xce,0xcb,0xbb,0xd9,0x77,0x27, + 0xee,0xad,0xbc,0x4f,0xbc,0x5f,0xf4,0x40,0xed,0x41, + 0xd9,0x43,0xdd,0x87,0xd5,0x3f,0x5b,0xfe,0xdc,0xd8, + 0xef,0xdc,0x7f,0x6a,0xc0,0x77,0xa0,0xf3,0xd1,0xdc, + 0x47,0xf7,0x06,0x85,0x83,0xcf,0xfe,0x91,0xf5,0x8f, + 0x0f,0x43,0x05,0x8f,0x99,0x8f,0xcb,0x86,0x0d,0x86, + 0xeb,0x9e,0x38,0x3e,0x39,0x39,0xe2,0x3f,0x72,0xfd, + 0xe9,0xfc,0xa7,0x43,0xcf,0x64,0xcf,0x26,0x9e,0x17, + 0xfe,0xa2,0xfe,0xcb,0xae,0x17,0x16,0x2f,0x7e,0xf8, + 0xd5,0xeb,0xd7,0xce,0xd1,0x98,0xd1,0xa1,0x97,0xf2, + 0x97,0x93,0xbf,0x6d,0x7c,0xa5,0xfd,0xea,0xc0,0xeb, + 0x19,0xaf,0xdb,0xc6,0xc2,0xc6,0x1e,0xbe,0xc9,0x78, + 0x33,0x31,0x5e,0xf4,0x56,0xfb,0xed,0xc1,0x77,0xdc, + 0x77,0x1d,0xef,0xa3,0xdf,0x0f,0x4f,0xe4,0x7c,0x20, + 0x7f,0x28,0xff,0x68,0xf9,0xb1,0xf5,0x53,0xd0,0xa7, + 0xfb,0x93,0x19,0x93,0x93,0xff,0x04,0x03,0x98,0xf3, + 0xfc,0x63,0x33,0x2d,0xdb,0x00,0x00,0x00,0x04,0x67, + 0x41,0x4d,0x41,0x00,0x00,0xb1,0x8e,0x7c,0xfb,0x51, + 0x93,0x00,0x00,0x00,0x20,0x63,0x48,0x52,0x4d,0x00, + 0x00,0x7a,0x25,0x00,0x00,0x80,0x83,0x00,0x00,0xf9, + 0xff,0x00,0x00,0x80,0xe9,0x00,0x00,0x75,0x30,0x00, + 0x00,0xea,0x60,0x00,0x00,0x3a,0x98,0x00,0x00,0x17, + 0x6f,0x92,0x5f,0xc5,0x46,0x00,0x01,0x3a,0xd3,0x49, + 0x44,0x41,0x54,0x78,0xda,0xa4,0xbd,0x4d,0x92,0x24, + 0x49,0xcf,0xa4,0xe7,0x16,0x55,0x43,0x11,0x72,0xc1, + 0x39,0x00,0x17,0x3c,0x13,0xc9,0xab,0xf1,0x1e,0x3c, + 0x13,0x17,0x3c,0xc0,0x70,0x31,0xb3,0xe0,0x54,0x82, + 0x8b,0x4e,0xcf,0x46,0xa8,0xeb,0xa3,0x40,0xd4,0xd7, + 0x22,0xaf,0xbc,0xdd,0x55,0x99,0x11,0xfe,0x63,0x06, + 0x03,0x14,0x0a,0xd5,0x73,0xce,0xf9,0x3f,0xcf,0x39, + 0xff,0xcb,0x39,0xe7,0xbf,0x55,0xd5,0x75,0xff,0x73, + 0xce,0xb9,0xbe,0xff,0xbb,0xaa,0xea,0x3a,0xe7,0x5c, + 0xe7,0x9c,0xeb,0xeb,0xeb,0xeb,0x3a,0xe7,0xbc,0xfd, + 0xdc,0xfd,0x33,0xfd,0x9f,0xfb,0x77,0xaa,0xaa,0xfa, + 0xcf,0xf7,0xcf,0xd6,0xdf,0xed,0x9f,0x7f,0x7f,0xf7, + 0x75,0x5d,0xd7,0xeb,0xf5,0xfa,0xf9,0xcc,0xfe,0x7b, + 0xf0,0x79,0x17,0x5d,0x4b,0xff,0x1d,0xbd,0xd7,0xfb, + 0xef,0xf4,0x77,0xbf,0xff,0xbe,0x5e,0xaf,0xd7,0xdb, + 0xbd,0xb7,0xeb,0x7c,0xdc,0x1f,0x7d,0x5f,0xfb,0xb9, + 0xc7,0xf3,0xea,0x7f,0xd7,0xaf,0x43,0x3e,0xbb,0xcc, + 0xb5,0x9d,0xfb,0xc3,0xda,0x73,0xbb,0xaa,0xea,0x7a, + 0xbd,0x5e,0x6f,0xdf,0x73,0x3f,0xbf,0xef,0xe7,0xf9, + 0xf8,0x2c,0x79,0x86,0xd5,0xbf,0xbf,0xaf,0x81,0xfe, + 0xa1,0xe6,0x3a,0x4b,0x3f,0x53,0xde,0x51,0xc1,0xf3, + 0xff,0xf9,0xfb,0xfb,0x1a,0xef,0xf5,0x70,0x5f,0xf7, + 0xfd,0x2e,0xf4,0x79,0xeb,0xb5,0xdf,0xdf,0x25,0xd7, + 0x8c,0xef,0xca,0xac,0xcd,0x72,0xeb,0xf5,0x5e,0x87, + 0xf8,0x12,0xe1,0x9f,0xef,0xfb,0x88,0xd7,0xad,0xd7, + 0xda,0xae,0x2d,0xad,0x2f,0xfb,0x0c,0xfb,0x33,0x3f, + 0xe7,0xd4,0xd7,0xd7,0x97,0xfd,0x39,0x5d,0x5f,0xfa, + 0xb9,0x6e,0x4f,0x4d,0xf7,0xd0,0xf7,0xab,0xec,0xe5, + 0xb7,0xdf,0xbd,0xaf,0xa9,0xbf,0x67,0x5a,0x6f,0xfa, + 0x77,0xfd,0x33,0xfb,0xb5,0xbd,0x5e,0xaf,0xc7,0xfd, + 0xa7,0xf7,0x4c,0xef,0x40,0xee,0xfd,0xb8,0xe7,0x7d, + 0xaf,0x07,0xb7,0x04,0xcc,0xe7,0x1c,0x7a,0x9e,0xfd, + 0x9a,0x25,0xce,0x1d,0xbd,0x4e,0x8d,0x8f,0x6d,0xbd, + 0x9c,0xfe,0xbc,0xdd,0x3b,0x6a,0xd7,0x76,0xdc,0x3b, + 0x95,0x3f,0x3b,0xe6,0x1c,0xb0,0xef,0x47,0xe3,0xca, + 0xbf,0x61,0xe3,0xe0,0xbb,0xe8,0xcf,0xd4,0xc4,0x87, + 0xeb,0xf5,0x7a,0x9d,0xfe,0xce,0x75,0x3b,0xa6,0x35, + 0xf0,0x1d,0x0f,0xdd,0x67,0x9f,0xbe,0x7e,0xfa,0xf3, + 0xea,0xd7,0xe4,0xf6,0x6e,0x7f,0x1e,0x43,0x6c,0x7b, + 0xbb,0xff,0xfe,0x0c,0xfa,0xb3,0x71,0xbf,0xdb,0xc2, + 0xb9,0xdd,0x73,0xf7,0x3b,0xd6,0x35,0x76,0xdf,0x2f, + 0xbd,0x6b,0xdd,0x8b,0x6e,0x1d,0x98,0x7d,0x70,0xfa, + 0xba,0xe8,0xb1,0xf4,0xfb,0xef,0x5c,0x2c,0x3b,0xf4, + 0x5c,0xee,0xfb,0xd2,0xbd,0xd6,0xd6,0xfe,0xe3,0xbe, + 0xdb,0x33,0x3d,0x7a,0xf6,0xeb,0xde,0xd2,0xef,0x93, + 0xfd,0x7a,0x20,0xbe,0xfd,0x8f,0xd7,0x75,0xfd,0x3f, + 0xe7,0x9c,0xf3,0x7f,0x9d,0x73,0xfe,0xd7,0xaa,0xfa, + 0xaf,0xb0,0x71,0x8a,0x82,0xee,0x7d,0x08,0x84,0xe0, + 0x51,0x29,0xa8,0x7e,0xff,0xfd,0xe3,0xa0,0x7d,0xbd, + 0x5e,0xa7,0xbe,0xff,0x31,0x2f,0xe2,0x3e,0xf3,0x2b, + 0x04,0x45,0x3a,0x98,0xca,0x1c,0xe6,0x6f,0x7f,0x67, + 0x36,0xdc,0x23,0x19,0x70,0x9f,0x69,0x16,0x52,0x99, + 0x03,0xf8,0xe7,0x10,0x87,0xe0,0x6b,0x13,0x0b,0x3d, + 0x94,0xd3,0xbd,0xca,0x22,0xc0,0x64,0x44,0x13,0xcf, + 0x7e,0xdd,0xba,0x01,0x25,0x00,0xd2,0x7a,0x28,0x0d, + 0x2c,0x12,0x20,0x8b,0x0e,0xd3,0xf6,0x7c,0xf5,0xb9, + 0x1c,0x49,0x02,0xec,0xb5,0x69,0xc2,0xec,0xde,0x55, + 0x4a,0x26,0x5c,0xd2,0x1f,0xde,0xf7,0xb4,0xc6,0xdc, + 0xbb,0xa8,0x74,0x80,0x98,0x03,0xff,0xe7,0xe7,0xe9, + 0x90,0x1d,0xfe,0x29,0x08,0x96,0x36,0xd1,0xa0,0x6b, + 0xbb,0x7f,0xbe,0x07,0x51,0xf7,0xbe,0xe9,0xbb,0x74, + 0xfd,0x6c,0x12,0x39,0x58,0x1f,0x6e,0xbf,0xbe,0x5d, + 0x63,0x0f,0x96,0x26,0xf9,0x7c,0x24,0x50,0x6e,0x0d, + 0xa5,0x6b,0xfa,0x7e,0x0f,0x6f,0x07,0xb3,0x8b,0x15, + 0xb4,0x17,0xfb,0x29,0xe0,0x0a,0x49,0x4a,0xb2,0xf4, + 0x9e,0xf4,0x70,0xef,0x87,0xb4,0xee,0x3b,0x4d,0x50, + 0xdc,0x41,0xaa,0xd7,0xfb,0x5d,0xe8,0x9d,0xc5,0xbb, + 0x39,0xe1,0x3e,0xfb,0x41,0x7f,0x4c,0x8c,0x3a,0x3d, + 0x19,0x80,0xef,0x39,0x94,0x6c,0x7d,0xaf,0xc7,0xa3, + 0xef,0x55,0x13,0x38,0x73,0xd0,0x62,0x32,0xda,0x93, + 0x09,0xb3,0x37,0x8f,0xae,0x37,0x4d,0x3e,0x21,0x6e, + 0x1f,0xf7,0x9e,0x5f,0xaf,0xd7,0x31,0x05,0xfd,0x5b, + 0x12,0x64,0x8a,0xd6,0x93,0x12,0xca,0x90,0xac,0x1e, + 0xb7,0x0f,0x5d,0x62,0xa1,0xef,0xc7,0xc5,0x88,0xfb, + 0xbd,0x40,0x11,0x76,0x1c,0xf8,0x70,0x6f,0xa1,0x3b, + 0x66,0x68,0xa1,0xf4,0x7d,0x8d,0x27,0xe4,0x0a,0xb8, + 0x1e,0xd3,0x5a,0xd1,0x64,0x5b,0x7e,0xe7,0x7f,0x3a, + 0xe7,0xfc,0xdf,0xbf,0xcf,0x39,0xff,0xed,0xba,0xae, + 0xff,0x7a,0xce,0xf9,0xaf,0x26,0x73,0xb6,0x28,0x4b, + 0xaa,0xa8,0xe5,0x06,0xca,0x55,0xe7,0x94,0x1c,0xe9, + 0x21,0xe4,0x92,0x1b,0x45,0x56,0x74,0xa1,0xdc,0x07, + 0xb8,0x79,0xb1,0x36,0x51,0xeb,0xc9,0xca,0x74,0x1d, + 0x66,0xd3,0x94,0x43,0x1b,0x14,0x1c,0x90,0xbf,0x7f, + 0x24,0x1e,0xfa,0x3b,0x77,0x55,0xdc,0x16,0xae,0x45, + 0xae,0x86,0xe7,0x44,0x09,0xd3,0xcf,0x7b,0x83,0xc5, + 0x56,0xba,0xd1,0x5a,0x00,0x79,0x24,0x75,0x0e,0xd5, + 0xba,0x7f,0xbe,0xa3,0x64,0x01,0x31,0xb2,0x09,0x61, + 0xbf,0xbf,0xe1,0x60,0x2a,0x3a,0xc4,0xfb,0xe7,0x2f, + 0x90,0x9f,0xd2,0x83,0xd5,0x1c,0x6e,0xf6,0xbb,0xa6, + 0x04,0xd3,0x55,0xf2,0x6e,0x7d,0xba,0x0a,0x69,0x42, + 0x66,0xa8,0x48,0xd1,0x04,0xda,0xa0,0xb6,0x6f,0xdf, + 0xa1,0xc9,0x8d,0xfb,0x1e,0x45,0x58,0x4c,0x92,0x1e, + 0x11,0x23,0x17,0x38,0x29,0xb9,0xa1,0x98,0x72,0xce, + 0xb9,0xfe,0xfc,0xf9,0x33,0x26,0x2c,0xf0,0xac,0x0e, + 0x5d,0x27,0x54,0x97,0x88,0xac,0x75,0xa4,0xe6,0x46, + 0x87,0x13,0xca,0x66,0xd0,0x82,0x43,0xf7,0xc8,0xf9, + 0x09,0xa3,0x7e,0xfa,0xb3,0x2e,0xc6,0x28,0xca,0xa3, + 0x09,0xa4,0x49,0xb0,0x8e,0x39,0xac,0xec,0x45,0x85, + 0xe4,0xf6,0xb8,0x3d,0xd5,0x9f,0x03,0xec,0x87,0xb7, + 0x03,0xd5,0xc4,0x3d,0x97,0xef,0xbe,0x5d,0x7b,0x47, + 0x1b,0x29,0x61,0xb8,0xdf,0x5b,0x7f,0x27,0xee,0x5a, + 0xfb,0xda,0x31,0x71,0xfd,0x04,0x24,0xf6,0x38,0x74, + 0x9a,0x10,0xa7,0xfb,0x40,0xef,0xbf,0x73,0x3f,0x7b, + 0xfd,0x1e,0x87,0x60,0x29,0x9a,0xf8,0xfd,0x33,0xf4, + 0x8e,0x8e,0x2b,0x34,0x3a,0x02,0x49,0xef,0xd4,0x21, + 0x55,0x8a,0x70,0x99,0x33,0xe6,0x00,0x6a,0xf7,0x76, + 0x7b,0x66,0x8f,0x62,0x02,0xa4,0x49,0x9e,0x8b,0x29, + 0xe7,0xfd,0x90,0xea,0xd7,0xf5,0xdf,0x7e,0xbb,0x03, + 0xc1,0x41,0xc9,0x6e,0x21,0xa6,0x40,0xe5,0x2a,0xfe, + 0x74,0x50,0xa5,0x56,0x8f,0x7c,0xe7,0xfa,0xef,0xdc, + 0xa6,0x54,0xe8,0xda,0x1d,0x0c,0x9a,0x5c,0xb8,0x20, + 0xed,0x5a,0x39,0xdf,0x0b,0x2e,0x1d,0xb6,0xa5,0x0b, + 0xd4,0x05,0xca,0xbe,0xb0,0x7b,0xb2,0x62,0x60,0x77, + 0x44,0x9f,0xc2,0x01,0x53,0x21,0xd8,0x96,0x6e,0x56, + 0x87,0xe0,0xb8,0xf7,0x45,0x07,0xd8,0xfd,0x3c,0xe8, + 0x00,0xbe,0x7f,0x57,0xd7,0x98,0x4b,0x74,0x53,0x42, + 0x02,0x9b,0xa3,0xa6,0xb6,0x91,0x26,0x67,0x21,0xa1, + 0x2f,0x08,0x64,0xb6,0x95,0xea,0x82,0x3a,0x3c,0xbf, + 0x4a,0x87,0xb7,0xbb,0x37,0x2d,0x20,0x52,0xb2,0x31, + 0xed,0xd7,0xfe,0x7e,0x74,0xdf,0xd3,0x9e,0x75,0x89, + 0x22,0xb5,0x82,0x1c,0x62,0x41,0xc8,0xcb,0xa6,0xd5, + 0xa2,0x2d,0xf1,0xf4,0xdc,0x4c,0xfb,0xbc,0x4c,0xa0, + 0xa4,0xe0,0x18,0xbf,0x43,0x29,0x02,0x5a,0xa5,0x6b, + 0x10,0x37,0xc9,0x4a,0xa5,0x76,0x90,0x8b,0x37,0xda, + 0x5e,0x72,0xeb,0xb4,0x21,0xa5,0x27,0xbd,0xc7,0x56, + 0x9c,0x62,0xdb,0xa5,0xad,0xe5,0x74,0x58,0x97,0xb6, + 0x53,0x0c,0x42,0x7d,0xa8,0x65,0xf4,0x6f,0x88,0xb3, + 0xf1,0xa1,0x08,0x25,0xba,0xff,0x8e,0x12,0xe1,0xef, + 0xe7,0x75,0xa6,0xf6,0xa4,0xc4,0xdd,0xba,0x13,0x32, + 0x78,0x16,0x27,0x20,0xae,0x27,0x14,0x87,0x6f,0xc9, + 0x56,0x8b,0x99,0x07,0xe2,0x1e,0x9e,0x6f,0x1d,0xb9, + 0x91,0x22,0xa6,0x7a,0x42,0x03,0xe8,0xd2,0xe3,0x7c, + 0xd3,0x77,0x23,0xb1,0xf3,0x50,0x7c,0x09,0x94,0x17, + 0xdb,0x86,0xa5,0xb3,0x58,0xce,0xac,0xe3,0x50,0xce, + 0xfb,0xef,0xc2,0x75,0xbc,0xbd,0xb7,0x9e,0xd0,0x87, + 0xb6,0xf4,0x3f,0xcf,0x2e,0x3c,0xa8,0x4a,0x3d,0x7f, + 0x87,0x8c,0x50,0xa2,0xa3,0xff,0x23,0xce,0x90,0x6b, + 0x3f,0x40,0xd5,0xe5,0x02,0x71,0x41,0x35,0x1b,0x5b, + 0x23,0xca,0x71,0x5a,0x06,0xe3,0x72,0x41,0x5e,0xf9, + 0x01,0x0e,0xe5,0x80,0x83,0xa2,0x52,0x72,0x00,0xdf, + 0x51,0x70,0x28,0x55,0x78,0xe9,0xe5,0x0e,0x63,0x97, + 0x34,0x75,0x14,0xca,0x5d,0x5f,0x7b,0xc6,0x0f,0xce, + 0x52,0x5b,0x80,0x75,0x1f,0xac,0x0e,0x31,0x72,0xed, + 0xb6,0xfe,0x3e,0x5d,0xe5,0x3d,0x25,0xa0,0xba,0x8e, + 0xa8,0x25,0xd7,0xf9,0x5b,0x9a,0x8c,0xca,0xe6,0x2c, + 0x87,0x8a,0x99,0xaa,0xb4,0x88,0x63,0xe6,0x36,0xfd, + 0xbf,0x67,0x47,0x4d,0x89,0x97,0xfb,0x0e,0x6c,0x95, + 0x42,0xf5,0xfa,0xf8,0xde,0xfb,0x73,0x1c,0xdc,0x4e, + 0x6d,0x94,0x1e,0x58,0x36,0xdc,0xa0,0xe9,0x59,0xa4, + 0x3d,0x4d,0xe8,0x09,0x71,0x4b,0xf4,0xb0,0x49,0x2d, + 0x33,0x49,0x76,0xaa,0xff,0xcf,0xa1,0x0d,0x1b,0x64, + 0xea,0x3e,0x84,0x74,0x8f,0x39,0x9e,0x8d,0x3e,0x8a, + 0xd7,0xeb,0x55,0x14,0xf7,0xcc,0xff,0xd7,0xd7,0xd7, + 0x57,0x29,0x3a,0x68,0x9e,0x4d,0x29,0xb2,0x9d,0xda, + 0xbd,0x0e,0xd9,0x4b,0x74,0x37,0x59,0x6f,0x8f,0x35, + 0xb9,0x41,0xa3,0x1d,0x7a,0x6c,0x62,0x6f,0x85,0x44, + 0xb4,0xe8,0x9c,0x21,0xf4,0x93,0xe2,0x6d,0x8b,0x51, + 0x45,0x7c,0x93,0xe9,0x1d,0x39,0x64,0xf5,0x02,0x6e, + 0x29,0xad,0x4f,0x77,0x5f,0xfd,0x7b,0xbe,0xbe,0xbe, + 0xaa,0xb5,0x7c,0xdf,0x8a,0x16,0xfd,0x0e,0xbd,0x86, + 0xa9,0xa8,0x82,0xb8,0xe6,0xfe,0xbf,0x28,0x66,0x28, + 0xed,0xc2,0x24,0x5c,0xab,0x58,0x37,0x80,0x2b,0x97, + 0x5b,0x2f,0x01,0xa5,0x45,0xea,0xcb,0x6f,0x17,0x30, + 0x36,0x41,0x6d,0x80,0xb4,0x8b,0x36,0x30,0xdd,0x58, + 0xe0,0xcb,0x60,0xd2,0xe5,0x5e,0xdc,0xc4,0x4d,0xd1, + 0xe0,0x67,0x92,0xa5,0xb7,0x56,0x95,0xb9,0xfe,0x0a, + 0x08,0x4e,0x4d,0xc8,0x94,0xd9,0x3c,0x05,0x99,0x75, + 0x4c,0x3a,0xa8,0x25,0x12,0x48,0x8a,0xe5,0x20,0xef, + 0xef,0x4d,0xf4,0x38,0x88,0x1d,0x37,0xca,0x7c,0x6e, + 0x85,0xf5,0x50,0x82,0x04,0x21,0xc1,0x9a,0x78,0x5a, + 0xb0,0x5e,0xca,0x6c,0x3a,0xfb,0x0e,0xa8,0xe5,0x44, + 0xe4,0xf0,0xc4,0x59,0xa2,0x9f,0x77,0xf7,0x42,0x3c, + 0x8d,0xbe,0x11,0x13,0x92,0x42,0xe8,0x10,0xb5,0x11, + 0xf4,0xd9,0xeb,0x3b,0x48,0xed,0x37,0xe2,0x07,0xc9, + 0xfb,0xc2,0xef,0xd3,0xb5,0xd7,0xf9,0x4b,0x74,0x7d, + 0x1b,0xa2,0x35,0x15,0x16,0xd4,0x52,0x71,0x28,0x8e, + 0x92,0xe8,0x03,0xc4,0xde,0x91,0xef,0x32,0x07,0xdb, + 0xa1,0x83,0xa1,0xdf,0x4f,0x4b,0xb4,0xb5,0x85,0x78, + 0x94,0xbc,0xec,0x92,0xbd,0xef,0x44,0xc8,0xb6,0x4e, + 0x1c,0xfd,0xc0,0x5d,0x9b,0x1b,0x50,0x21,0x14,0xa7, + 0x25,0x51,0x45,0xad,0x04,0x53,0x8c,0x3d,0x5a,0x4b, + 0x5a,0xa9,0x9b,0x67,0xda,0xf7,0xf5,0x5b,0xcb,0x4b, + 0x7f,0xb7,0x23,0xdc,0x8a,0x7e,0xf5,0xef,0x56,0x04, + 0xce,0x71,0x67,0x1a,0x0f,0xd3,0xa1,0x3a,0xd5,0xdb, + 0x61,0x0e,0x79,0x72,0x7c,0x95,0x8e,0x4a,0xe9,0xe1, + 0x7e,0x23,0x80,0x00,0x94,0x1d,0xa2,0x88,0x38,0x64, + 0xa9,0x23,0x30,0xb4,0x9f,0x08,0x09,0xd1,0x42,0xae, + 0xa3,0x82,0x09,0x65,0x4b,0xcf,0xc1,0xc4,0xb3,0x72, + 0xcf,0xbc,0x23,0x55,0x7a,0xb6,0xde,0xd7,0xf1,0xf5, + 0xf5,0x75,0xa8,0x93,0x70,0x5f,0x4b,0x1f,0x92,0xb8, + 0x3b,0x09,0x8a,0x06,0xca,0x9e,0xae,0xbb,0x55,0x06, + 0xd4,0x81,0x72,0xef,0xfa,0x45,0xd5,0xa9,0xcb,0xa8, + 0xfa,0x97,0x75,0xa8,0xc9,0x1d,0xf6,0x8a,0x80,0x38, + 0x64,0xc9,0x25,0x03,0xa1,0x1a,0x2c,0x87,0x26,0x69, + 0xd6,0x9e,0x0e,0x18,0xad,0x5a,0x42,0xa5,0x57,0x09, + 0x62,0xbe,0x7b,0xfe,0xdb,0xd6,0x5c,0x80,0x21,0x0b, + 0x12,0xc2,0xc4,0x7a,0x45,0xe4,0x83,0x7e,0xaf,0x1f, + 0xe6,0x84,0x8e,0xc1,0xb3,0xab,0x90,0x7d,0x97,0xab, + 0xba,0x5c,0x55,0xe9,0xaa,0x07,0xe0,0x2f,0x54,0x4a, + 0xb6,0x1d,0x7f,0x2a,0x25,0x6b,0xf4,0xfc,0xee,0x77, + 0x17,0x5a,0x29,0x91,0xfb,0xd6,0xae,0xa5,0x52,0xcb, + 0x44,0x10,0xcf,0xd2,0xe4,0x5e,0x50,0x36,0xfd,0xfe, + 0x5a,0x70,0x5a,0x1e,0x89,0xc0,0x77,0xa0,0x28,0xb7, + 0x4e,0x08,0x65,0x09,0xc9,0xef,0xdb,0x77,0x7e,0x5f, + 0x6f,0x75,0x14,0xe9,0xfe,0xef,0xaf,0xaf,0xaf,0xb7, + 0xe7,0x41,0xad,0x63,0xda,0x1b,0x54,0xbd,0x3b,0xce, + 0x9b,0xfe,0xef,0xbe,0x06,0x45,0x22,0x02,0x6f,0xce, + 0xa2,0x4f,0x7f,0xfe,0xfc,0xa1,0x62,0xa2,0x7f,0x3e, + 0x16,0x74,0x5a,0xad,0x3b,0x14,0x91,0xaa,0xd8,0x6d, + 0x3b,0x1f,0x90,0xe0,0x0d,0x4b,0xbe,0xb4,0xa8,0x83, + 0x36,0x4f,0xc1,0xde,0x7b,0xb4,0xbb,0x1d,0x32,0xd7, + 0x11,0x75,0x40,0x56,0x2b,0x20,0x89,0x35,0xa0,0xf5, + 0x6f,0xe7,0x4a,0xe3,0xc6,0xfc,0xc4,0x06,0x3d,0x38, + 0x1d,0x8f,0xd0,0x9d,0x4d,0x8a,0xaa,0xdc,0xc9,0x28, + 0xec,0xbd,0x02,0xd4,0x09,0xd1,0xb4,0xce,0x17,0x9d, + 0xda,0xc4,0x72,0xa8,0x63,0x7c,0xea,0xf7,0xab,0x67, + 0xa1,0x99,0x58,0x7d,0x8b,0xfd,0x72,0x7e,0x55,0x48, + 0xa2,0x6b,0x40,0x30,0x23,0xc2,0x4b,0x28,0x9c,0x43, + 0x99,0x1d,0x62,0x2f,0xf7,0x58,0xd3,0x35,0xb8,0x78, + 0x9a,0x50,0xdc,0xd7,0x04,0x79,0x11,0xb9,0x6b,0x43, + 0x3e,0x34,0x01,0xae,0xe8,0xa2,0x02,0xa1,0xef,0x2d, + 0xe1,0xd2,0xc4,0xc3,0xc1,0x99,0x5a,0x41,0xdf,0xbf, + 0x47,0x81,0x8f,0x0e,0x6f,0x73,0x88,0x57,0x5a,0x24, + 0xd0,0xae,0x89,0x13,0x69,0x6e,0xb3,0x13,0x1c,0x79, + 0xc1,0x74,0xcf,0x7d,0x30,0x69,0x9b,0xc2,0x41,0xc8, + 0x06,0xba,0xa6,0x16,0x43,0xa5,0x44,0x83,0xda,0x0c, + 0x74,0x5f,0xfd,0xfb,0x94,0xe4,0xad,0xaf,0x52,0xab, + 0x76,0x0d,0x3a,0x40,0xc8,0x2c,0x5a,0x57,0xad,0x02, + 0x7a,0x4c,0x15,0x6a,0x70,0xd7,0xe0,0xd6,0xdf,0xff, + 0xfd,0x3e,0x6f,0x94,0xc3,0x5d,0x87,0x41,0x2c,0xcb, + 0x21,0x37,0xee,0xfb,0xd3,0x61,0x36,0x4c,0xe5,0x94, + 0x3b,0xbc,0x5c,0xb2,0x04,0x05,0x4d,0x3a,0x0c,0xeb, + 0x1b,0x31,0xbb,0x93,0x9c,0xb8,0xef,0x29,0x21,0x4c, + 0x41,0xd0,0xf0,0x23,0xf0,0xfa,0xe9,0x3b,0x0c,0x01, + 0xfd,0x91,0xa4,0xd1,0x7a,0x4e,0x64,0x76,0x83,0x12, + 0x3d,0x12,0x4c,0x68,0x2d,0x3d,0xee,0xf3,0xf5,0x7a, + 0xf5,0x64,0xcd,0xa2,0x72,0x52,0x54,0xd6,0xd0,0x52, + 0x50,0x98,0xbf,0xd2,0x41,0xa0,0x07,0x71,0x3f,0xf4, + 0x5d,0xcc,0x20,0x5a,0xc0,0xfd,0x5d,0xba,0xfe,0x1d, + 0xa1,0x9f,0x38,0x9e,0x13,0xa1,0x9b,0x68,0x0e,0xfa, + 0xd9,0xc4,0x1d,0x4d,0x1c,0x4f,0x49,0x06,0xca,0x3d, + 0x2f,0xe5,0x8c,0x29,0xc9,0xbd,0x27,0x48,0xda,0x7a, + 0x24,0x9a,0x46,0x48,0x18,0x4a,0x08,0xc8,0xd8,0xd1, + 0x70,0x43,0x44,0xda,0x8a,0xa5,0x22,0x62,0x4a,0xe0, + 0xd3,0xde,0x4b,0x89,0x98,0xcb,0x0d,0x06,0x24,0xbf, + 0x5c,0xb7,0xe7,0x7e,0xe6,0xfd,0x1e,0x06,0xda,0x81, + 0x2d,0xae,0xa7,0xe7,0xdf,0x3f,0xe7,0xb7,0xcb,0xf0, + 0xdd,0x46,0xd6,0xf6,0x01,0x64,0x6f,0x69,0x5a,0x69, + 0x0a,0x32,0xb5,0x09,0xf8,0x1f,0x04,0xc9,0x9a,0x7a, + 0x82,0x0a,0x71,0x0e,0xc4,0xa9,0x32,0x1a,0x40,0x17, + 0x05,0x33,0x5d,0xd8,0x5a,0x41,0x04,0xed,0x97,0xa2, + 0xfb,0x49,0xdc,0x1e,0x78,0xe6,0x89,0x24,0x5c,0x81, + 0x7b,0x52,0x81,0x93,0x51,0xa0,0x61,0x51,0x14,0x70, + 0xa8,0x1d,0xd6,0xe1,0xf1,0xb4,0xa6,0x88,0x24,0xe8, + 0xee,0x9d,0x88,0xec,0x43,0xd5,0x52,0x81,0xa4,0x7d, + 0xfd,0xfa,0xf5,0xcb,0x4e,0xb2,0x41,0x6b,0xa5,0x54, + 0xef,0x86,0x3e,0xdb,0x8d,0xee,0xd3,0x01,0x26,0x2d, + 0xae,0x22,0xfd,0xa0,0x34,0xa9,0xe5,0xde,0x99,0xfe, + 0xae,0x06,0x7b,0x42,0x86,0x06,0x9e,0xd1,0x7a,0x74, + 0x1f,0x88,0xb1,0x13,0x72,0xfa,0x16,0x3b,0xdc,0x38, + 0x74,0x40,0x4b,0x70,0xfc,0x59,0x0f,0x7c,0x5d,0xa7, + 0x74,0x00,0xb4,0x8a,0xf5,0x50,0xf2,0x1f,0xa6,0x0e, + 0xcf,0x84,0xf2,0x48,0xdb,0xf7,0x0c,0xc4,0xf4,0xb7, + 0xcf,0x75,0xda,0x58,0xbd,0x2d,0x96,0xb8,0x41,0xaa, + 0x33,0x63,0xd6,0x5c,0x7d,0x7d,0x7d,0x9d,0x61,0x68, + 0xe2,0x04,0xde,0x0f,0x8d,0xc1,0x17,0x8d,0x3f,0x7f, + 0x3f,0xeb,0x72,0x63,0xdc,0x4a,0xa6,0x75,0x85,0xed, + 0x65,0xa6,0xaf,0xb4,0x0d,0x24,0xc9,0x0e,0xb6,0xa2, + 0xdc,0x74,0x73,0xbf,0x06,0x13,0x27,0xaa,0x4f,0x64, + 0x49,0xd2,0x53,0x4a,0xc8,0xd7,0xb6,0xa2,0xe3,0x51, + 0x5e,0x46,0x7f,0xa7,0xb7,0x99,0x4c,0xe1,0x51,0xa0, + 0x29,0xf4,0xf6,0x4c,0xa5,0x15,0x59,0x6e,0x92,0x4c, + 0xdb,0x6e,0x8e,0x8a,0x42,0x7b,0x98,0xe2,0xa2,0x12, + 0xce,0xcd,0x94,0xb5,0x25,0xc6,0x13,0x59,0x7b,0x6a, + 0x45,0xbe,0xfa,0xa1,0xee,0x7a,0x76,0x02,0x63,0x56, + 0x48,0x10,0xc6,0x2f,0x4f,0xb0,0x6a,0x20,0x3d,0xd5, + 0xb6,0x92,0x48,0x30,0xbb,0xd9,0xd8,0x96,0xdf,0x43, + 0x95,0xec,0xb6,0x12,0x55,0xa8,0x78,0x6a,0x2b,0x2c, + 0xf5,0x8b,0x90,0xe8,0x76,0x57,0xe5,0xa9,0xca,0xdf, + 0x12,0xdc,0x89,0x37,0xe2,0x5a,0x73,0xd0,0xde,0x72, + 0x07,0x54,0xac,0xca,0x54,0xeb,0x89,0xae,0x13,0x3e, + 0x3f,0xa1,0x7f,0x16,0x42,0xd6,0x00,0x3e,0x41,0xee, + 0xba,0xee,0x93,0x66,0xcc,0x56,0x18,0xb1,0x55,0xe2, + 0x95,0x5a,0x33,0xd4,0x22,0x30,0x13,0x20,0x3f,0xd7, + 0xa2,0x90,0xb8,0x41,0x23,0x3b,0xe9,0xd7,0x26,0x74, + 0xba,0x76,0x12,0x09,0x39,0xc5,0x81,0xd0,0x06,0xb7, + 0xed,0xd8,0xc4,0x39,0xa2,0x9f,0xd3,0x64,0x8d,0xfe, + 0x97,0x9e,0x6d,0x47,0xbb,0x1c,0x31,0x3d,0x8d,0xfe, + 0xcb,0x7d,0xf6,0xf6,0xa0,0xe5,0x84,0xb9,0xc3,0xf7, + 0xfb,0x80,0x29,0x42,0x80,0x0d,0xe7,0x6c,0x83,0x0a, + 0x8d,0xa4,0x7c,0x77,0xad,0x0e,0x09,0x9e,0x26,0x89, + 0x06,0xc4,0x22,0xd2,0x1a,0x5c,0x4c,0xe9,0xf1,0x26, + 0x91,0xc7,0x43,0xa2,0x5f,0xe1,0x20,0xa6,0xa9,0xd4, + 0x0a,0xb1,0xbe,0x68,0x0f,0x87,0xc4,0xbc,0xa0,0x05, + 0x94,0xd0,0xb1,0x47,0x21,0xd6,0x45,0x6b,0x69,0x5d, + 0x43,0xb2,0x51,0x21,0x49,0x46,0x54,0x89,0x50,0xdd, + 0x1b,0xf1,0xa3,0x3d,0x29,0x1c,0x4b,0xcc,0x17,0x24, + 0xf6,0x3a,0x7e,0x2b,0x52,0x6f,0x52,0x2c,0xd0,0xf3, + 0x46,0xa9,0x06,0x54,0xa8,0xbf,0x9c,0x46,0xcd,0xd4, + 0x9e,0x4a,0x55,0x05,0x40,0x6f,0xe3,0xc5,0x53,0xd0, + 0x74,0xfd,0xe4,0x05,0xfc,0x5e,0xc4,0x0e,0x27,0x08, + 0xde,0x8d,0xc8,0x2e,0xda,0x55,0x8f,0x3f,0x77,0x99, + 0xad,0xd3,0x87,0x31,0xcf,0x19,0x05,0x0d,0x09,0xad, + 0xe9,0x30,0x74,0xd2,0xb5,0xa1,0x44,0xd4,0x1d,0xe0, + 0x09,0x31,0x0a,0x3d,0xf9,0x1a,0x50,0x0e,0xe2,0xe2, + 0xbc,0xa1,0x37,0xa2,0x47,0x52,0x03,0x8c,0x5c,0x89, + 0x83,0x41,0xc1,0xf3,0x16,0xf6,0xd3,0xd6,0x14,0xac, + 0x97,0x72,0x08,0x94,0xe1,0x3d,0xc5,0x83,0x64,0xfa, + 0xcc,0xb0,0xa7,0xde,0xda,0x26,0x21,0xd8,0xbd,0xbd, + 0x0f,0x93,0x24,0x96,0xdb,0x13,0x7d,0x28,0xc0,0xa1, + 0x4d,0x6e,0x9c,0xb4,0x07,0x94,0xa1,0x4d,0xa1,0xed, + 0xa7,0xd2,0x44,0xe3,0xe6,0x51,0xc9,0x54,0x5a,0x49, + 0x22,0xa1,0x9f,0x81,0x89,0x48,0x8a,0x23,0xa1,0x18, + 0xc0,0x76,0xd2,0x95,0x55,0xd9,0xe3,0x44,0x4d,0xbb, + 0x76,0x97,0xc4,0xd8,0x96,0x9f,0x26,0x60,0x69,0x20, + 0x45,0x39,0x8c,0x21,0xe1,0xac,0x74,0xa0,0x90,0x42, + 0xbe,0x72,0x5b,0x60,0x9a,0xea,0x6d,0x8d,0x05,0x11, + 0xbc,0x1a,0xe8,0x12,0x6b,0x3e,0x26,0xe9,0x87,0x25, + 0x9e,0x4e,0x2a,0x70,0xa8,0x0d,0x6f,0x62,0x38,0x21, + 0xd1,0x23,0x5f,0x93,0x92,0x20,0x8a,0x91,0xfd,0xf3, + 0x1d,0xff,0xc5,0x9d,0x4d,0x13,0xe5,0x44,0xdf,0x47, + 0x38,0x8f,0x71,0x12,0x92,0xb4,0x76,0x2e,0x99,0xb8, + 0x4d,0x9a,0x78,0xa4,0x5f,0x66,0x12,0xbc,0x98,0x28, + 0x4e,0xb5,0xe6,0x96,0x73,0xf4,0xea,0x59,0x66,0x3a, + 0xc4,0x86,0xc3,0x31,0x42,0xdf,0x2a,0x18,0xa8,0xc1, + 0x26,0x6d,0xf2,0x00,0xaf,0x17,0x04,0xa5,0x0a,0x44, + 0xac,0x9a,0x7a,0xb0,0xe6,0xfe,0xcb,0xd9,0x2a,0x5c, + 0x61,0x34,0xf4,0x32,0x12,0x01,0x34,0x31,0x44,0x9b, + 0xd4,0xf5,0xa8,0x65,0x33,0x55,0x40,0xeb,0x2a,0x55, + 0x46,0x69,0x53,0x24,0xf5,0x67,0x53,0x9d,0xd7,0x40, + 0xe4,0x26,0xc1,0x4a,0xdb,0xbf,0x56,0xc2,0x70,0x20, + 0xd1,0xd7,0x80,0x34,0x56,0x82,0xf6,0xbf,0x93,0x2f, + 0xdb,0x3a,0x21,0x64,0x88,0x10,0x99,0xe2,0xd2,0x5a, + 0x0f,0x80,0xda,0x04,0xbe,0xef,0x6b,0xaa,0x7e,0x9d, + 0xfa,0xec,0xef,0x83,0x0e,0x84,0xd9,0x3a,0xa2,0x50, + 0x8e,0x1b,0xe0,0xb8,0x16,0x0b,0x0e,0xda,0x23,0x31, + 0x81,0x3f,0x73,0xf7,0xb3,0xfa,0xe7,0x7e,0x27,0xd0, + 0x56,0xd0,0xf7,0x5f,0x4d,0x11,0xfe,0x2d,0xa9,0xa2, + 0x83,0xd1,0xb5,0x17,0x87,0x24,0x46,0xdf,0x9d,0x45, + 0xed,0x06,0xce,0x41,0x75,0xc2,0xbc,0x4b,0xc8,0x00, + 0xf9,0xac,0xa0,0xcf,0xf3,0xe0,0x7e,0x29,0xb1,0x58, + 0x87,0x56,0x3a,0x67,0x85,0xd0,0xf4,0xd4,0xe6,0xed, + 0xc9,0xd9,0x90,0x08,0xd9,0xbf,0xeb,0xeb,0x83,0xda, + 0xe4,0xdb,0xee,0x81,0x7e,0x67,0xd0,0xb1,0xb2,0xa4, + 0xe4,0xce,0x97,0x72,0x7b,0x3f,0x70,0xd5,0x0a,0x92, + 0x81,0xa8,0x57,0xb6,0x1d,0x30,0xa1,0x04,0x44,0xd1, + 0x38,0x12,0x15,0x76,0x28,0x6d,0xe8,0x62,0x94,0xee, + 0x53,0xd2,0xe7,0x72,0xe7,0xa4,0x26,0x13,0xfd,0x3d, + 0xa4,0x76,0xee,0x27,0xb1,0xa7,0x9f,0x6b,0x86,0x6f, + 0x56,0xb4,0x2f,0x28,0x26,0x77,0x61,0xde,0x3b,0x2e, + 0xfd,0xee,0x4f,0x4f,0x2b,0x14,0x47,0xb0,0xd2,0x9f, + 0xbb,0xab,0xd4,0x70,0x53,0x95,0x5e,0x46,0x1a,0xbb, + 0x0c,0x2f,0x30,0x71,0x54,0x6c,0x10,0x70,0xaa,0xd4, + 0xa9,0xa2,0x76,0x9e,0x50,0xa9,0xb7,0xe9,0x36,0x5d, + 0x1a,0x0b,0x77,0xdf,0x63,0x78,0x30,0x96,0xf0,0xe7, + 0x26,0x14,0x1c,0xe7,0x85,0xda,0x6b,0xc1,0x8a,0x22, + 0x2a,0x4d,0x27,0xf4,0x4b,0xee,0xb9,0x60,0x9d,0x60, + 0x1b,0x95,0xb8,0x47,0x1a,0x9c,0xd2,0xc4,0x41,0xf2, + 0x65,0x23,0xae,0x54,0x6a,0xc9,0xb9,0xf5,0xd1,0xd7, + 0x66,0x9f,0x42,0x21,0x51,0xc4,0x89,0x30,0xec,0xb8, + 0x57,0x8e,0xdb,0xe2,0x78,0x45,0xba,0xb6,0x34,0xe1, + 0xd7,0x9f,0x5d,0x72,0x6c,0x2a,0x69,0xec,0x04,0x91, + 0xc1,0xb5,0xd5,0x05,0xb5,0xb3,0xc0,0x0b,0x28,0x7e, + 0x47,0x6f,0x05,0x3a,0xf5,0x74,0x27,0x8d,0xef,0x0e, + 0x8a,0x8e,0x34,0x27,0xeb,0x0c,0x83,0x2e,0x10,0x3f, + 0xc3,0x16,0x20,0xdd,0x92,0xc2,0x11,0x90,0xe5,0xb3, + 0xea,0x7b,0x1d,0x9c,0x84,0x78,0xb7,0x35,0x79,0x52, + 0x41,0xea,0x78,0x47,0x90,0x08,0x1d,0x98,0x4a,0xb2, + 0xfc,0x0c,0xe1,0x8d,0xdc,0x03,0x02,0xc4,0x55,0x2a, + 0x67,0x5d,0xd0,0xf6,0xef,0xa1,0xf8,0xd9,0x45,0x1b, + 0x8d,0x2f,0xe4,0x09,0x08,0x8d,0x95,0x31,0x70,0x5c, + 0x9d,0xfe,0x3b,0x7a,0x0d,0x83,0x7f,0x9e,0xe5,0xa6, + 0xd4,0xbf,0xde,0x4d,0x14,0x8f,0x0e,0x90,0x95,0xcf, + 0x80,0x16,0x3a,0xdb,0xa3,0x87,0x3d,0xc8,0x2d,0xee, + 0x98,0x14,0xd7,0x5d,0xe2,0xd8,0x39,0x44,0xa2,0x39, + 0xf4,0xb3,0xce,0xa8,0xc3,0x63,0xba,0x3f,0x75,0xce, + 0x79,0x48,0x1c,0xf4,0xbf,0x0b,0xda,0x6a,0x67,0x13, + 0x3b,0xcc,0x1e,0xc4,0xf7,0xde,0x3f,0xfe,0x37,0x05, + 0x18,0xd7,0x37,0x75,0x10,0xa9,0xcb,0x56,0x5d,0x00, + 0x9c,0xbc,0x99,0xc2,0xd4,0xc2,0xca,0xc8,0x30,0x65, + 0xc2,0x03,0x47,0xa9,0x92,0x5a,0xad,0x9a,0x35,0x36, + 0xd5,0xcd,0x38,0x9e,0x08,0x9c,0x13,0x87,0xf4,0x10, + 0x07,0xa6,0x26,0xa5,0x5b,0x67,0x71,0xa1,0x0b,0xc3, + 0xd8,0x52,0xd8,0xe4,0x27,0xb5,0x91,0x60,0xca,0x66, + 0x84,0x43,0xb5,0x82,0x27,0x74,0xce,0x5d,0xbb,0xf3, + 0x4f,0xa3,0xf7,0x43,0x15,0x24,0x91,0xd8,0x1d,0xd2, + 0x76,0x27,0x95,0xce,0x84,0x51,0x0d,0x64,0x3b,0xdf, + 0xc6,0xa1,0x15,0x4a,0x52,0x1e,0xda,0xbf,0x35,0x25, + 0x0b,0xce,0x8c,0x38,0xf9,0x8b,0x19,0x35,0xf1,0xb7, + 0x6b,0x94,0x7b,0xac,0x69,0x5f,0xd1,0x3e,0x9e,0x6c, + 0x41,0x40,0x47,0x65,0xd5,0x0e,0xa7,0x35,0xe9,0xae, + 0x2b,0x8d,0xf1,0x27,0x9e,0xdd,0x64,0xfc,0xb9,0x4c, + 0xe2,0xde,0xf4,0x6d,0x36,0x6d,0x7a,0x59,0xaf,0xc9, + 0x7e,0xa1,0x6b,0xcc,0x5c,0x37,0xe1,0x98,0x26,0xd9, + 0x54,0x57,0x26,0xe8,0x2a,0xbd,0x1d,0xfc,0xc0,0xcd, + 0x79,0x7b,0x36,0x9a,0xa8,0xa8,0x8d,0x85,0x1b,0xbb, + 0x0e,0xdc,0xb1,0x72,0x36,0x17,0x8e,0x28,0x2c,0xdf, + 0xfd,0x73,0xa8,0x19,0xbd,0xa0,0x87,0x76,0x8f,0xb4, + 0xef,0xcf,0x20,0x7d,0xf1,0x78,0x06,0xb7,0x67,0x97, + 0x41,0x9c,0x8e,0x2b,0x44,0x82,0x3a,0x75,0xd2,0xda, + 0x21,0xf3,0xe6,0x07,0x61,0x77,0xf8,0x0e,0xeb,0xe6, + 0x40,0xc9,0x82,0x7b,0x0f,0xfa,0x3d,0x9a,0x50,0xd3, + 0xa4,0x26,0x25,0x7b,0x13,0x85,0xa6,0xaf,0x4d,0x35, + 0x05,0x0e,0xbc,0x4f,0xdd,0x7b,0x27,0x71,0x84,0x28, + 0x8e,0xfc,0xa0,0x86,0xda,0x0a,0x58,0x20,0x1c,0xb6, + 0x5c,0xd4,0x8b,0x6d,0x50,0x7e,0xfc,0x3d,0xe0,0x20, + 0x8c,0xba,0x35,0xd4,0x66,0x4b,0x63,0xdb,0xf4,0x3b, + 0x7d,0x21,0xfd,0xfa,0xf5,0x2b,0x6a,0x3a,0x74,0x1d, + 0x8b,0x0e,0xbd,0xde,0xbf,0x07,0x63,0xbf,0x95,0xc6, + 0xfb,0x95,0xe3,0x44,0xed,0x2d,0x22,0x79,0xe9,0x01, + 0xaf,0x70,0xa0,0xbe,0x23,0x4a,0x7e,0x94,0xc4,0x67, + 0xf8,0x24,0x0f,0xc8,0xd9,0xb4,0x97,0x5c,0x50,0x7b, + 0x70,0x9f,0x1c,0xa2,0x42,0xd3,0x65,0x24,0x4a,0x29, + 0xc4,0x53,0x12,0xdd,0xb3,0xad,0x19,0x09,0x02,0x11, + 0xa5,0x6c,0x5c,0x15,0x8b,0xca,0xb4,0x11,0xe6,0x6a, + 0x15,0xf0,0x44,0x3e,0x7c,0x70,0x81,0xc0,0x72,0x45, + 0x93,0xb8,0xba,0x02,0x51,0x9d,0x20,0xea,0x7e,0x1f, + 0xd7,0x42,0x33,0x27,0xd9,0x57,0x4c,0x01,0x8e,0xfe, + 0xce,0xdd,0xe3,0x34,0x42,0xee,0x7e,0x8f,0x8a,0x0c, + 0xe3,0xf9,0x74,0x25,0x3e,0x83,0x48,0x15,0x54,0x7f, + 0x7f,0xfd,0x77,0x82,0x33,0xb9,0x6d,0x11,0x86,0xd6, + 0x2f,0x4a,0x1f,0x24,0x2a,0x80,0xb4,0xb6,0x6b,0x99, + 0x54,0x57,0x8a,0xe9,0xad,0x55,0x8a,0x9f,0xe3,0x64, + 0x23,0x5c,0x4b,0xdd,0x25,0x15,0xca,0x81,0x32,0xfb, + 0xc6,0x6a,0x6d,0xf5,0x58,0x16,0x88,0xdb,0xe8,0x2f, + 0x49,0xc5,0x74,0xff,0x4c,0x95,0x1a,0x20,0x9e,0x48, + 0x90,0x6d,0x29,0xe7,0xd5,0x95,0xce,0x9a,0xd0,0xf6, + 0x7f,0x0c,0xf2,0x90,0x38,0xef,0x54,0xb4,0x10,0x5d, + 0xe2,0xca,0x16,0x51,0x35,0x25,0xeb,0x44,0x33,0x49, + 0x89,0x0d,0x90,0xfd,0x2f,0x40,0xe0,0x0b,0x8a,0x15, + 0x6c,0xbb,0x51,0xb1,0xe1,0xa6,0xa3,0x09,0xb8,0x39, + 0xe7,0xd4,0xef,0x44,0xfc,0x6a,0x70,0xd8,0xe3,0xef, + 0x1d,0x4c,0xec,0x60,0xe4,0xf4,0x70,0x41,0xbd,0xf6, + 0x31,0xdd,0x32,0xa9,0xfc,0x86,0x56,0x45,0x6c,0x9b, + 0xb8,0x6a,0xeb,0x4e,0xdc,0x54,0x88,0x89,0xaa,0x69, + 0xa7,0x11,0xa4,0xbd,0x73,0x07,0x33,0xa6,0x1e,0x6c, + 0x20,0x72,0x95,0x0b,0xc6,0x4e,0x7e,0x7f,0xaa,0x8c, + 0x55,0xe9,0x38,0x2d,0x1c,0x22,0x8a,0xbb,0x04,0x07, + 0x5a,0x01,0x49,0x42,0x3e,0x26,0xc9,0x6e,0x53,0xa8, + 0xba,0x6c,0x40,0x7e,0xc8,0xf1,0x1e,0x13,0x4d,0xf7, + 0x6c,0x13,0x2a,0x33,0xb5,0x64,0xa9,0xc5,0xa6,0xff, + 0x38,0x05,0x5c,0x87,0x50,0x92,0x7a,0xb3,0xae,0x31, + 0xd7,0xae,0xe9,0x28,0xa6,0x1e,0x4a,0xa9,0xc8,0x49, + 0xa4,0xfe,0xe6,0xa1,0xb4,0x1a,0x61,0x4f,0x3f,0x93, + 0x5a,0x42,0x06,0x01,0x7b,0xa0,0x27,0x54,0x11,0x1b, + 0xd4,0xeb,0x4a,0x81,0xd1,0xac,0xab,0x33,0xc5,0x1b, + 0x47,0x9a,0xd5,0x96,0x5b,0x92,0xec,0x57,0x34,0xc9, + 0xc5,0x41,0xc3,0xe5,0x3b,0xb4,0xe7,0x14,0x15,0xa1, + 0x35,0x77,0x81,0x42,0xae,0x0e,0xc6,0x28,0x52,0x20, + 0x46,0xd2,0x27,0xed,0x0d,0x72,0x59,0xef,0xbf,0x1b, + 0x7c,0x18,0x9d,0x7b,0xfb,0x03,0xc1,0x6a,0x48,0xfd, + 0xca,0x3f,0x4c,0xd6,0x44,0x39,0x95,0x69,0x1a,0xab, + 0x4f,0xad,0x35,0x5a,0xd3,0x83,0x9f,0x98,0x1d,0xb5, + 0xef,0xad,0x28,0x5d,0x2f,0xc4,0x5f,0xbc,0x8c,0x0f, + 0x5c,0x0f,0xa7,0x40,0x03,0x29,0x27,0x89,0x10,0xae, + 0x37,0x21,0xa3,0x6f,0xf7,0xe2,0xda,0x52,0x2e,0xc1, + 0xef,0xef,0x6d,0x43,0x37,0x69,0xc8,0x51,0x75,0x64, + 0x34,0xb5,0xe5,0x1c,0x27,0xe8,0xf7,0x44,0x9a,0x4a, + 0x89,0x4e,0x57,0x9d,0x34,0x01,0xa1,0x88,0x74,0xd8, + 0x7a,0xdb,0xd8,0x6e,0x73,0x23,0x6c,0x61,0x9c,0xb5, + 0x36,0xed,0xae,0x7e,0x40,0x90,0xd3,0xfd,0x04,0x5b, + 0xc3,0x81,0x51,0x9d,0x33,0xe5,0xfa,0xc6,0x04,0x47, + 0x07,0x89,0xf6,0x47,0xbf,0x7a,0xe2,0x66,0xa4,0xcf, + 0x12,0x13,0x56,0xfc,0x2c,0x22,0x42,0x5e,0xc2,0xf4, + 0xef,0xe8,0x0f,0xf1,0x84,0x88,0xd7,0xa3,0x09,0xc8, + 0xa4,0x40,0x0a,0xa2,0x5c,0x35,0xc0,0xac,0x28,0x0f, + 0xa0,0xc9,0x13,0xf4,0xf8,0x6b,0x3a,0xc0,0x45,0x6e, + 0x3f,0x26,0xd7,0xd7,0x62,0x2a,0x45,0x03,0xaf,0x21, + 0x1a,0x22,0x7c,0xde,0xf6,0x53,0xd1,0x21,0x9d,0x38, + 0x73,0x44,0xa0,0x74,0x0a,0xbf,0x93,0x39,0x72,0xe2, + 0x1a,0x51,0x8b,0x9a,0xe0,0xea,0x20,0x33,0x61,0xb9, + 0x87,0xed,0xe7,0x4e,0x42,0xaf,0x95,0x23,0x45,0x88, + 0x95,0x69,0x9b,0x9d,0x54,0x81,0xba,0x96,0xce,0xbf, + 0x1f,0x9d,0x4d,0x2a,0x9d,0x05,0x81,0x51,0xfa,0x7d, + 0x0c,0x55,0xb8,0x96,0x97,0xd9,0x9b,0xc7,0x21,0x64, + 0x42,0x45,0x38,0x01,0xe5,0xaa,0x60,0x09,0x52,0x4e, + 0x07,0xc9,0x92,0x7e,0xb8,0x4a,0x8f,0xad,0x48,0xc7, + 0x9b,0xac,0xaa,0xe3,0x6c,0x0f,0x7a,0xd2,0x02,0xdd, + 0x80,0xe3,0x92,0xb1,0xc4,0x37,0x09,0x71,0xf4,0x98, + 0xe4,0xe4,0x61,0x74,0x4a,0x6b,0x51,0xb9,0x4a,0x0e, + 0x1d,0xbf,0x40,0xeb,0xe7,0x3c,0x39,0x13,0x13,0x65, + 0x84,0x38,0x4f,0x1f,0x19,0x01,0x2b,0x4f,0x29,0x25, + 0x44,0x64,0x08,0xad,0x08,0x6b,0x12,0x6d,0x75,0xc9, + 0xa6,0x24,0x41,0xd7,0xdf,0xfc,0x53,0x55,0xd7,0x6f, + 0x80,0x5a,0x7f,0x04,0xa7,0x74,0x24,0x4f,0x09,0x7a, + 0x93,0x05,0xc5,0x87,0xd5,0xdf,0x34,0x45,0xb0,0x41, + 0x62,0x90,0x57,0x42,0xfc,0x25,0x09,0x0c,0x0f,0x13, + 0x4d,0xc7,0x87,0x49,0xbe,0x56,0xc6,0xc3,0xc6,0x26, + 0x5f,0x26,0x43,0x2d,0x22,0x2f,0x6e,0xc6,0x61,0x27, + 0x4d,0x21,0x37,0x1e,0xaa,0xa8,0x90,0xeb,0x1d,0x2b, + 0xf2,0x33,0x69,0x38,0x39,0xce,0x8f,0xab,0x62,0x1d, + 0xf2,0xe7,0xc6,0x2a,0x4d,0xb5,0x92,0xda,0x11,0xe5, + 0x2a,0x7f,0x85,0x9c,0xd3,0xd4,0x44,0xe7,0x65,0x85, + 0x80,0x5c,0x70,0x7d,0xf6,0x3e,0x26,0x32,0x2f,0x09, + 0x42,0x26,0x1e,0x98,0x9b,0x1a,0x01,0x8b,0x99,0x91, + 0xb0,0xac,0x99,0x2a,0x29,0xa6,0x3b,0x4e,0xd0,0xc6, + 0xf6,0x25,0xf1,0x15,0x36,0x81,0xca,0x71,0x06,0xa8, + 0xb8,0x71,0x60,0x9b,0x23,0x42,0x93,0xa7,0x5f,0xff, + 0x6f,0x90,0x15,0x78,0x24,0x5a,0x03,0x8a,0xae,0x13, + 0x3c,0x8e,0x5b,0xa2,0x9c,0xb2,0xb7,0xd7,0xe1,0x9e, + 0x9f,0x0a,0xab,0xa6,0x24,0xa2,0x25,0xd4,0xc7,0xbd, + 0x8f,0x36,0x1d,0x93,0x44,0xe6,0x7e,0x50,0x99,0x30, + 0xbd,0x76,0x08,0xfd,0xb8,0x7f,0x57,0xb9,0x73,0x3d, + 0xe9,0x73,0x67,0x82,0x7a,0x90,0xe9,0x3d,0xdd,0x08, + 0xc0,0xc6,0xfb,0xa9,0x15,0x4f,0xe4,0xcd,0xe5,0x78, + 0x56,0x98,0xc0,0x11,0xc2,0xe5,0x04,0x14,0x1d,0xda, + 0xd4,0x51,0xd9,0x8e,0x82,0xe8,0xfb,0xed,0x48,0x99, + 0x50,0x0e,0x0e,0xec,0x63,0xe4,0xc6,0x24,0x61,0x4a, + 0xd3,0xc9,0x79,0x3c,0x47,0x27,0xf8,0x68,0xac,0x47, + 0x8e,0x76,0x84,0xee,0xd8,0xda,0x93,0x43,0x42,0x9c, + 0xba,0x34,0x8a,0xba,0xdd,0x6f,0x91,0xaa,0xfe,0xec, + 0x9c,0x48,0xec,0x39,0xe7,0x5f,0x2f,0xb0,0xad,0xcb, + 0x72,0xda,0xe4,0x1b,0x11,0x40,0x3a,0xfc,0xdd,0x81, + 0x30,0x09,0x04,0x76,0x0b,0x88,0xcd,0xb4,0x8d,0xd3, + 0x98,0x31,0xe3,0x91,0x91,0xdb,0x40,0x07,0x83,0x1b, + 0x47,0x06,0xd8,0xbd,0xe0,0x3e,0x49,0x28,0xb2,0x02, + 0x6f,0xa2,0x26,0x41,0x45,0x6a,0x87,0x50,0x6b,0x26, + 0x05,0xf2,0xce,0x45,0xfa,0xe6,0x8e,0xd5,0x50,0xc5, + 0xc6,0xbe,0x33,0x25,0xad,0x2a,0x3b,0x3f,0xb5,0x8f, + 0x1c,0xaa,0xe3,0x36,0xec,0x15,0xfc,0x95,0x5a,0xb0, + 0x8d,0x0e,0xe9,0x8e,0x3b,0x43,0x9c,0x03,0x4a,0x48, + 0x40,0xb4,0xac,0x12,0x6f,0x46,0x2b,0xb4,0xdb,0x92, + 0xc1,0x21,0x89,0x7f,0xfe,0xfc,0xb9,0xe8,0x19,0x82, + 0x8f,0x14,0x5a,0x3b,0x4c,0x07,0x7b,0x4a,0x1e,0x86, + 0xc1,0x0a,0xe2,0xe4,0x58,0xaf,0xa7,0x4e,0x8c,0x4c, + 0x3a,0x45,0x2e,0x49,0x03,0xc9,0xfc,0xc7,0xc8,0x7c, + 0x9a,0x66,0x19,0xd6,0x72,0xd2,0xd6,0xa2,0xe4,0xf9, + 0x31,0xea,0xee,0x8a,0xa8,0xd6,0xa6,0xaa,0x85,0x38, + 0x6b,0x2d,0xf8,0x59,0x35,0xf8,0x34,0x15,0x59,0xfb, + 0x4c,0xf6,0x3e,0x1a,0x43,0xb5,0x00,0x21,0x9f,0x40, + 0xf5,0x17,0x4c,0x16,0x45,0xd3,0x7b,0x26,0xde,0x09, + 0xf1,0x7c,0xcc,0xdf,0xd5,0xc6,0x9b,0x6d,0xe9,0xdb, + 0x56,0xc9,0x0f,0x71,0x6a,0x29,0x11,0xb2,0x41,0x1c, + 0x30,0x45,0xe5,0x89,0xf3,0x46,0x85,0x9f,0x22,0x2b, + 0x8d,0x90,0x5c,0x4e,0x46,0x83,0xc4,0x79,0x95,0x96, + 0xe1,0x0a,0x26,0x5d,0x83,0x8e,0x47,0xd6,0xa5,0x0d, + 0xf4,0xbd,0x25,0x29,0x10,0x68,0xcb,0x59,0x34,0xf5, + 0x37,0xb9,0x58,0x3b,0x97,0x72,0x67,0x17,0x91,0x5e, + 0x60,0x32,0x0c,0x04,0xa8,0x2f,0x06,0x6d,0xad,0x1c, + 0xdc,0x54,0x91,0x7b,0xd1,0x7a,0xa9,0x24,0xa1,0xbf, + 0xbd,0xb6,0x5e,0x9d,0xb8,0xca,0xda,0xb8,0x41,0xaf, + 0x50,0xb1,0xa9,0xe5,0x62,0x32,0x76,0x82,0x26,0x47, + 0x8e,0x54,0x42,0x11,0x1c,0x2a,0x97,0x1c,0xe9,0x95, + 0x9b,0xa1,0x6e,0xeb,0x8a,0x56,0x85,0x36,0x48,0x99, + 0xe9,0xac,0x2e,0x7f,0x8f,0x1e,0x40,0x5b,0xd1,0xc4, + 0xd0,0xbe,0xb1,0xcf,0x80,0xda,0xa6,0x21,0xf9,0xa9, + 0x69,0x1a,0x49,0x0f,0x92,0xcd,0xe4,0xa2,0x3b,0x5c, + 0xa6,0xe9,0x2c,0xe0,0x84,0x4c,0x3d,0x7c,0x3c,0xfc, + 0x53,0x91,0x44,0x24,0xe7,0xa9,0x05,0x95,0xda,0xb8, + 0x1b,0x9d,0x10,0x17,0x6b,0xd2,0x14,0x98,0x6b,0xa9, + 0x9b,0x58,0x17,0x79,0x0f,0xc4,0x67,0x71,0x08,0x53, + 0x6a,0xab,0x0b,0x1a,0x7c,0x26,0xf4,0xcb,0xa1,0x1a, + 0x8e,0xbf,0xd7,0xdd,0xd1,0x07,0xc5,0xfb,0x13,0x2c, + 0x09,0x12,0x9a,0x63,0xb9,0x3f,0xae,0x5d,0xd6,0x0f, + 0x30,0xd7,0x6e,0xa2,0xf6,0x51,0x10,0x3f,0x74,0x13, + 0x81,0x0a,0xd2,0xd8,0xa9,0x2d,0xe7,0x66,0x0e,0xc5, + 0xa5,0x1d,0xc7,0xbf,0x60,0x6a,0xca,0x9d,0x1d,0x4e, + 0x99,0x5d,0xce,0x9b,0x72,0x6d,0x51,0x7d,0xee,0x2d, + 0xb6,0x3e,0x78,0x4f,0x8a,0x02,0xd1,0xf5,0x98,0xe4, + 0xa2,0x00,0x2d,0x2c,0x6a,0x1d,0xbb,0xb8,0xdd,0x6d, + 0x49,0x88,0xf3,0x0b,0xed,0xf0,0xb7,0x7b,0x51,0xe2, + 0x79,0xe7,0xf4,0xc8,0xe7,0x3e,0x90,0x38,0x5d,0x03, + 0xa9,0xd5,0xef,0x86,0x64,0x7e,0x03,0xb9,0xaa,0x86, + 0x7e,0xbd,0xe5,0xdc,0xf4,0x0d,0xe8,0x2a,0x53,0x3d, + 0x4c,0xa7,0xe0,0xd8,0xb3,0xe8,0x14,0xf8,0x1c,0x64, + 0x39,0x65,0xcb,0x26,0x80,0x93,0x12,0xb4,0x35,0x6e, + 0xbb,0x0f,0x79,0x1a,0x79,0x27,0xa0,0xc2,0x25,0x73, + 0xd4,0xaa,0xa3,0x8a,0x28,0x25,0x77,0x81,0x67,0x44, + 0x87,0x1f,0xbd,0x93,0x0a,0xe6,0x99,0xa9,0xd2,0x1c, + 0x1d,0xe9,0x21,0x80,0x45,0xb3,0x4f,0x4a,0x26,0xf5, + 0x77,0x27,0x1d,0x23,0x37,0x9d,0xe6,0xb8,0x40,0x6e, + 0x4c,0x3d,0x6d,0x6a,0x37,0x51,0xa3,0xc3,0x00,0x53, + 0x95,0x0e,0x7d,0x7c,0xfb,0x48,0xff,0xfc,0xf9,0x73, + 0x25,0x88,0x3b,0x21,0xa7,0x29,0xd1,0x21,0x0f,0x32, + 0x42,0x6c,0xfb,0xbe,0x91,0x64,0x11,0xc7,0xa3,0x29, + 0x20,0x25,0x4e,0x91,0xe3,0x3c,0x29,0x19,0xda,0x1d, + 0xa8,0x93,0x72,0xb6,0x7b,0xaf,0xfd,0x81,0x7f,0x5f, + 0xff,0x71,0x83,0x10,0x81,0x60,0xdf,0xab,0xec,0x33, + 0xdd,0x93,0xec,0xa9,0x03,0x07,0x66,0x4f,0x10,0x7e, + 0x12,0xb5,0x49,0x25,0x59,0x0f,0x05,0xd0,0x19,0x3b, + 0x80,0x7a,0xfe,0x10,0xa0,0x35,0x91,0xb9,0xcf,0x89, + 0xae,0xf7,0xe3,0x26,0x3b,0x53,0xeb,0x48,0x13,0x00, + 0x97,0x9c,0x40,0xd1,0x87,0x5c,0x19,0xe0,0x4d,0x15, + 0xb4,0x11,0x51,0x0e,0xe0,0x32,0x64,0x5e,0x6a,0xd3, + 0x74,0xf2,0x31,0x14,0x90,0x07,0xf6,0x39,0x79,0x9a, + 0xd9,0xeb,0x52,0x7d,0x20,0xbd,0x56,0x73,0xc0,0xdb, + 0xe7,0x48,0x1e,0x66,0xee,0xbe,0x35,0xf9,0x20,0x55, + 0x71,0x48,0x50,0x1f,0xad,0x29,0x91,0xf1,0x38,0x1a, + 0x33,0xa8,0xe8,0x27,0x12,0x78,0x2a,0x4a,0x34,0x3e, + 0x5f,0x86,0xb4,0xfe,0x4a,0x55,0x53,0xaa,0x22,0xdd, + 0xcf,0xa7,0x24,0xc5,0x8d,0x6f,0x26,0xd9,0x72,0x97, + 0x80,0x25,0x43,0xd3,0xc9,0xae,0x20,0xf1,0x7b,0xf4, + 0xda,0xc4,0xdb,0x27,0x56,0xa4,0xe6,0x1a,0x69,0xa4, + 0xfb,0x67,0x8c,0xda,0x54,0x02,0x2e,0xa1,0x8b,0xc9, + 0x0f,0x05,0x3e,0xd7,0x16,0xe8,0x7e,0x61,0x3a,0xd2, + 0x4e,0xd6,0x27,0xae,0x6d,0x41,0x0a,0xd8,0x0e,0xf9, + 0x12,0x98,0x34,0x7a,0xbd,0xd1,0x46,0xba,0xdb,0x3c, + 0xc1,0xf4,0xb2,0xa8,0x5d,0x73,0xbb,0x97,0x13,0x74, + 0x4c,0xdc,0x26,0x4d,0xae,0xfe,0xfc,0xf9,0xf3,0xa6, + 0x4d,0x41,0x2d,0x10,0x82,0xab,0xe5,0x5a,0x6b,0x42, + 0xff,0x92,0x33,0x3d,0x15,0x0d,0x9a,0x9c,0xf6,0xb1, + 0x7d,0x85,0xab,0x53,0x5b,0xcb,0x25,0x2b,0xbd,0xed, + 0xd7,0x47,0xe8,0xdb,0x3f,0x0f,0x15,0x5e,0x42,0x86, + 0xa8,0xad,0x38,0xb5,0x9c,0x68,0xdf,0x49,0xfc,0x78, + 0x1b,0xef,0xa7,0xa2,0x22,0x05,0x6f,0x48,0xf0,0x1e, + 0xd6,0x18,0xf4,0x4f,0x6f,0x0f,0x8b,0xce,0x57,0x7d, + 0x90,0x84,0xfe,0xb4,0x36,0x3b,0xcc,0xef,0x62,0x20, + 0xb5,0x4d,0xa9,0xdd,0xec,0xb8,0x8f,0xca,0x49,0x84, + 0x62,0xa2,0xdc,0x3a,0x72,0x16,0x11,0xee,0x7e,0x88, + 0xff,0xa6,0x6d,0x62,0xd5,0xd2,0x4a,0x6d,0x36,0xe2, + 0x30,0xba,0xfb,0x74,0x43,0x0f,0x53,0x9c,0x4d,0x6b, + 0xee,0x62,0xd7,0x04,0x74,0x27,0xa0,0xf6,0x6e,0x12, + 0xf4,0x0d,0x87,0x39,0xd5,0x98,0x96,0x57,0xe3,0xe2, + 0x79,0xb7,0x21,0x12,0x8d,0xbb,0xd8,0xd2,0x86,0xb5, + 0x54,0xae,0x65,0x37,0x14,0xb5,0x57,0x58,0x73,0x95, + 0x86,0x5f,0x92,0x09,0x2d,0x51,0x6f,0x08,0x04,0xf9, + 0x9d,0xec,0x2d,0xa6,0x49,0x0d,0x97,0x05,0xbb,0x4c, + 0x2d,0xe9,0x77,0xf4,0xc3,0x2d,0xc1,0xca,0xe9,0xa0, + 0xa2,0x16,0x10,0x6d,0x86,0x54,0x95,0x26,0xae,0x8f, + 0xa2,0x19,0xe4,0x17,0x93,0x5a,0x0f,0x6e,0x63,0x4c, + 0xe6,0x7b,0xe4,0xc1,0xe5,0x50,0x24,0x20,0xc4,0x39, + 0x3d,0x90,0xa2,0xa9,0x10,0x87,0xf0,0x90,0xb3,0xba, + 0x12,0x87,0x0d,0x89,0xba,0xc8,0x5b,0xee,0x7e,0x57, + 0x7d,0x8d,0x04,0xf1,0xb6,0x87,0xde,0x86,0xb6,0x66, + 0x17,0xa8,0xd6,0x68,0x09,0xe2,0x6c,0x4b,0xc2,0xc1, + 0x5c,0x9b,0x89,0x95,0x0b,0xc4,0x0e,0x53,0x0b,0x93, + 0x26,0x27,0x82,0x8d,0x41,0xd4,0x12,0x4a,0xdc,0x27, + 0xb7,0x5e,0x26,0x29,0x05,0xd5,0xc1,0x4a,0x15,0x98, + 0x43,0x3d,0x40,0x3b,0x26,0x26,0x48,0xb4,0x57,0x87, + 0x24,0xf2,0x6d,0xbf,0xdc,0x88,0xc5,0x86,0x84,0xad, + 0x6b,0xf9,0x6e,0xef,0x36,0x84,0xe6,0x6c,0x5a,0xfe, + 0xe6,0x70,0x3c,0xd4,0xf6,0x33,0xb1,0xf4,0xb8,0xe7, + 0x66,0xde,0xfd,0x99,0x8c,0x99,0x2f,0x19,0x9b,0xd7, + 0xbd,0x7d,0x0b,0xff,0xb9,0x9f,0xb9,0x5b,0x53,0x50, + 0x95,0x97,0xaa,0x5b,0x1b,0xe4,0xff,0x04,0x54,0xfc, + 0x68,0xcb,0x28,0x21,0x1e,0xae,0x3d,0xe2,0x46,0xad, + 0x9d,0x9b,0x41,0x88,0x91,0x87,0x80,0xeb,0xd4,0xa1, + 0x70,0x2d,0xf0,0xcb,0x8b,0x1e,0x56,0x47,0x12,0xd5, + 0x69,0x5d,0x5b,0xb3,0xfd,0x9a,0x12,0xc1,0x58,0xf7, + 0x62,0x32,0x29,0xa6,0x36,0x90,0x49,0x6e,0x0a,0xd6, + 0xa8,0x45,0x51,0x86,0xef,0x2b,0x27,0xa1,0xa0,0xef, + 0x77,0x68,0xfd,0xc6,0x0e,0x4b,0x32,0x65,0x57,0x2e, + 0x9d,0xee,0x93,0x97,0x3b,0xe4,0x42,0x55,0x54,0xa1, + 0x15,0x50,0x14,0xc4,0x2e,0xa3,0xd0,0xdc,0x2b,0xa4, + 0x81,0xc8,0x66,0xdb,0x52,0xee,0x81,0xf5,0x8a,0x1f, + 0x0c,0x0e,0x9d,0x1e,0x47,0x91,0xc1,0x25,0x24,0x45, + 0x16,0x55,0xd8,0x70,0xa3,0x36,0xfc,0x85,0x81,0x2b, + 0x41,0x63,0xbf,0x05,0xbd,0xe8,0x72,0xc8,0x05,0x79, + 0xfa,0x38,0x54,0xc5,0x65,0xf9,0xa4,0x40,0x9d,0x5a, + 0x57,0xc9,0x5c,0x15,0x54,0x9f,0x31,0x71,0xbb,0x82, + 0x13,0xb4,0x73,0x88,0xa7,0xf7,0xa7,0x62,0x8e,0x6d, + 0x87,0xd4,0xd0,0xce,0x44,0x71,0x45,0x51,0xa6,0xae, + 0x0b,0xb4,0x88,0x9c,0x98,0xe3,0x05,0x22,0x6f,0x1d, + 0x35,0x6c,0xbe,0x38,0xd6,0x7f,0x8b,0xd4,0xa7,0xc9, + 0x28,0xf3,0x12,0x2f,0x2f,0x12,0x70,0x4c,0xbc,0x93, + 0xbb,0x78,0x71,0x06,0xa4,0xf4,0x79,0x13,0xbf,0x40, + 0x89,0x8e,0xdb,0x04,0x2e,0x25,0x5f,0xdd,0xa4,0x54, + 0x05,0x21,0xb7,0x83,0x14,0x02,0xbd,0xbf,0xbd,0xb7, + 0x0f,0xf6,0x74,0x34,0x76,0x35,0x9b,0xb1,0xa8,0x28, + 0x50,0x84,0x71,0x20,0x87,0xd6,0x80,0xac,0x97,0x26, + 0xc0,0x4e,0x54,0x34,0x11,0x5f,0x03,0x75,0xa2,0xe0, + 0x50,0xfa,0x39,0x03,0xe8,0xbe,0x20,0xf1,0x4d,0x83, + 0x03,0x05,0x05,0x04,0xfa,0x0c,0x06,0x32,0x3c,0x99, + 0x10,0x93,0x45,0x90,0x0a,0x2d,0x46,0x5e,0xed,0x7d, + 0x5d,0x8e,0x8b,0x45,0x93,0xd6,0xae,0xdd,0xee,0x7c, + 0xcc,0x9c,0x0d,0x94,0x43,0xbf,0x1c,0x57,0x2c,0xb4, + 0xd7,0x1f,0x1d,0x88,0x3e,0x8c,0x44,0xba,0x5a,0x53, + 0xb2,0xe6,0xf8,0x6e,0xc6,0xd3,0xee,0x81,0xa8,0xd1, + 0xe1,0xa5,0xc8,0x74,0x28,0xc4,0x5e,0xb6,0xaf,0x4e, + 0x70,0x69,0xe0,0xd0,0x8c,0xe2,0x60,0x04,0xd7,0x26, + 0x5b,0x09,0x0d,0xe2,0xd0,0x4f,0xb6,0xbe,0x65,0xfd, + 0x30,0x72,0x10,0x9d,0x06,0x81,0xd4,0x2a,0x70,0x5a, + 0x2c,0x66,0x7a,0xc2,0x89,0xf6,0xe1,0xc8,0x3b,0xc8, + 0x7e,0xa3,0xd2,0xf3,0xfd,0xf3,0x02,0x55,0x16,0xdc, + 0x7f,0xa5,0x16,0x44,0x0f,0xe4,0xc4,0x9d,0x72,0xf7, + 0xd6,0x0f,0xbb,0x5e,0xfd,0x51,0xbb,0x31,0x89,0x1f, + 0x26,0xc6,0x3e,0x41,0xdf,0xe9,0x1d,0xa8,0x4a,0xb7, + 0xe1,0x58,0x54,0xa8,0x12,0x4a,0xe1,0x70,0x4a,0x7c, + 0x52,0xfb,0xe6,0xfb,0xfb,0x2b,0xa9,0x13,0x77,0x03, + 0xe2,0xad,0x91,0xa2,0x4b,0xbe,0x1c,0xb2,0x49,0x13, + 0x12,0x62,0x02,0x19,0xdb,0x6b,0x46,0x99,0x3c,0xb6, + 0xdf,0x26,0xb4,0xc7,0xb5,0x96,0xa6,0x44,0x21,0x59, + 0xe3,0x84,0xe9,0xae,0xf8,0x39,0x8b,0xca,0xdd,0x26, + 0x26,0x53,0x32,0xf7,0xbe,0x45,0xcb,0x26,0x36,0xee, + 0x77,0xef,0x64,0x9b,0xc8,0xdf,0xf4,0xde,0x95,0x67, + 0x25,0xed,0xb7,0x1a,0x10,0xfb,0x0a,0xad,0x1a,0xab, + 0x41,0xd5,0x93,0xbf,0x1b,0x05,0xd3,0xf6,0x5c,0xe7, + 0x46,0x4e,0xb2,0x24,0x61,0x6f,0x21,0x7a,0x96,0xbc, + 0x17,0x27,0x97,0xf6,0x34,0xdd,0x9c,0x86,0x12,0x34, + 0xfe,0x39,0x01,0xc1,0x84,0xb8,0x39,0x37,0x03,0x97, + 0x7c,0x82,0xc6,0x13,0xae,0x87,0x61,0x90,0x66,0x1c, + 0x8e,0x71,0x9e,0x79,0xc4,0x0f,0x73,0x3e,0x84,0xc4, + 0xdb,0x4b,0x06,0xdd,0x79,0x80,0xb7,0x56,0xaa,0xf3, + 0xce,0xeb,0x90,0xd0,0xe1,0x70,0x96,0xbf,0xdd,0xef, + 0x6f,0x43,0x14,0x5a,0x07,0x3c,0xa3,0x43,0x11,0x61, + 0x68,0xf7,0x52,0x5c,0x55,0x60,0x3c,0x56,0x1e,0x15, + 0x3e,0x98,0xaa,0x59,0x18,0x6c,0x10,0x58,0x7a,0x3b, + 0xd8,0x5d,0x32,0x33,0x79,0xa2,0xa5,0x8a,0x03,0xd0, + 0xa0,0x02,0xf8,0xae,0x02,0xe2,0x60,0x83,0x32,0x8d, + 0x43,0x06,0x88,0x92,0x50,0xb2,0x38,0x3d,0x96,0x7e, + 0xc7,0xc1,0xb7,0x44,0xae,0x25,0xe1,0xc0,0x7e,0x9f, + 0x24,0x90,0x49,0xbd,0xe5,0x24,0xa8,0xe8,0xd6,0xa0, + 0xea,0x41,0xf4,0xa9,0xb5,0x60,0x40,0x58,0xce,0x90, + 0xd4,0xa8,0xe2,0x3e,0x38,0x66,0x7d,0x8d,0x91,0xde, + 0x53,0x9a,0xba,0x22,0xb3,0xe1,0x8d,0xc8,0x9a,0xab, + 0xcc,0x34,0x98,0x68,0x32,0x3c,0x89,0x9b,0xb9,0x80, + 0x4b,0x6a,0xdd,0x93,0xe0,0x22,0x1d,0xc4,0xc4,0xcb, + 0x30,0xfe,0x62,0x27,0xa1,0xae,0x8e,0x48,0xbc,0x01, + 0x8c,0xfa,0xed,0x6e,0xf8,0x3b,0x30,0xec,0x11,0x09, + 0xd0,0x06,0x75,0x3f,0x64,0x9f,0x22,0xa8,0xee,0x43, + 0x77,0x46,0x79,0x85,0xaa,0x51,0x94,0x74,0x77,0xa8, + 0x6d,0x1f,0x84,0x0d,0xdf,0x5a,0x4d,0xc0,0x3b,0x3a, + 0x61,0x3c,0xfa,0x38,0xc3,0xed,0xae,0x5f,0x43,0xc6, + 0xa5,0x7d,0x2f,0x4d,0xef,0xf5,0x1b,0x11,0xb3,0x0a, + 0xc7,0x77,0xbb,0x8e,0x5a,0x49,0xa9,0x55,0xe7,0x0c, + 0x5c,0x61,0x80,0xc5,0x12,0xb9,0x9d,0x39,0xea,0xc5, + 0xca,0xd2,0xa4,0x67,0x54,0x93,0xd8,0x67,0xda,0xb7, + 0xa0,0xbf,0xe6,0xe2,0xf1,0xd1,0xbd,0xac,0xef,0x29, + 0xed,0x67,0xa7,0xa8,0xed,0x8a,0x19,0x8a,0xa7,0x6e, + 0x1d,0x4d,0x13,0x79,0x9d,0x44,0x4e,0x32,0x24,0xf7, + 0x3f,0xbf,0xce,0x39,0xff,0xc7,0x75,0x5d,0xff,0xf9, + 0xba,0xae,0xff,0x8f,0x5e,0xfe,0x0d,0x71,0x6d,0x1f, + 0xe0,0x74,0x88,0x6a,0x56,0xed,0x46,0x2c,0x1d,0xea, + 0x43,0x2d,0xb1,0x04,0x91,0x2b,0x7c,0xec,0x5a,0x25, + 0x4e,0xa0,0x8f,0x20,0x52,0x1a,0x07,0x9f,0xfc,0x52, + 0x4c,0x70,0x7a,0xc8,0x84,0xc3,0x42,0x7a,0xac,0x6c, + 0x35,0xf0,0x24,0x74,0x29,0x79,0xe5,0x48,0x26,0x4d, + 0x1a,0x23,0x45,0xa8,0x9e,0xfa,0xb7,0xf4,0x40,0x45, + 0xe2,0x78,0x77,0x75,0x08,0x09,0x5b,0x85,0x43,0x31, + 0xad,0xbd,0x4a,0xd6,0x09,0xfd,0x1e,0x9c,0x77,0x19, + 0xa1,0x9e,0xe4,0xa3,0x93,0x0e,0x4c,0x6d,0xdd,0x98, + 0xf7,0x4f,0x84,0x77,0x84,0xad,0xd3,0x7e,0xfb,0x24, + 0x59,0x9e,0x02,0xe2,0xa6,0xc2,0x06,0x14,0x63,0x34, + 0x3b,0x24,0xf4,0x95,0x10,0x28,0xfd,0x73,0x27,0x7a, + 0xa8,0xd7,0x10,0xd0,0x99,0x43,0xd3,0x25,0x7d,0x3d, + 0x2c,0x12,0xbd,0xfb,0xbb,0x0e,0x15,0x54,0xfa,0x79, + 0x24,0xbe,0xa8,0x6b,0xac,0x17,0x10,0xca,0x11,0x72, + 0x48,0xfb,0xfb,0x5f,0x79,0x34,0xb4,0x8b,0x2e,0xa6, + 0x58,0xed,0x14,0x9c,0x93,0xaa,0xb6,0xb9,0xf7,0x33, + 0x4c,0xf2,0xa6,0x04,0xf2,0xc0,0xda,0x38,0xa4,0x1c, + 0xdc,0x93,0x0d,0xf3,0xbe,0x0f,0x14,0xa8,0x07,0x92, + 0xd6,0x03,0xe8,0xc7,0xdb,0x35,0xc8,0x33,0x3b,0xe0, + 0xaf,0x76,0x78,0x9b,0xd9,0xeb,0x3d,0xa0,0x7f,0x75, + 0x5c,0x6b,0xfe,0x82,0x51,0xf7,0x0b,0xc6,0xc9,0xbb, + 0xa8,0xa1,0xec,0xdd,0x03,0x1c,0x99,0x03,0x6b,0xfe, + 0xb8,0xb5,0xa7,0xcf,0x4e,0xce,0x01,0x32,0x7e,0x3d, + 0xfd,0x5d,0xcb,0xbf,0x1f,0x87,0x9a,0xba,0xaa,0xc0, + 0x3d,0x13,0x23,0x0b,0x72,0x06,0x0d,0xc3,0xff,0xa1, + 0xaa,0xfe,0xcb,0x6b,0x62,0xfa,0xf7,0x43,0x26,0x55, + 0xb7,0x44,0xa8,0x9c,0xe0,0xdd,0xa0,0x4d,0x83,0xc9, + 0x89,0x69,0x5d,0x91,0xa3,0xfa,0xe3,0x50,0x23,0xce, + 0xce,0x44,0x06,0x37,0xc9,0x47,0x14,0x75,0x53,0xf1, + 0x36,0x6a,0xdd,0xa4,0x03,0x85,0x0e,0x0b,0xb5,0xb3, + 0xd0,0x03,0x1b,0x26,0x7a,0xca,0xf1,0x2a,0x1c,0xf2, + 0xa3,0xcf,0x94,0xcc,0x6a,0xcd,0x7d,0x54,0x68,0x57, + 0x58,0xc3,0x51,0x9a,0xaa,0xd8,0x48,0x2e,0x5c,0x41, + 0x70,0x33,0xf5,0xfb,0x6f,0x54,0xc5,0xb5,0xe7,0x5a, + 0xff,0xbe,0x02,0x52,0xd7,0xd1,0x95,0xa2,0xaa,0x47, + 0xb7,0x02,0xa1,0x07,0x26,0xe9,0x8c,0x6d,0x31,0xa3, + 0x7a,0x7c,0x7d,0xf3,0x77,0x0a,0xa6,0x85,0x22,0x7a, + 0x68,0x0c,0x20,0xad,0x50,0xdf,0xc6,0xc9,0x3d,0x91, + 0x11,0xe9,0x73,0x92,0x6e,0xcf,0x46,0x8c,0x90,0x46, + 0xf5,0x89,0xe7,0xb4,0xd9,0xf3,0xa1,0xd8,0x2a,0x7d, + 0x47,0x6e,0x1d,0x19,0x14,0xb1,0xb4,0xe8,0x73,0xf7, + 0x77,0xb7,0x50,0x13,0xea,0x2b,0xe8,0x5e,0xa5,0xeb, + 0x6e,0x3c,0xa7,0x8b,0x92,0xf4,0xd4,0x9d,0x52,0x6e, + 0x09,0xc9,0x4c,0x4c,0xfe,0x66,0x49,0xf0,0xce,0x24, + 0xbd,0xa8,0x56,0x7f,0x19,0xfe,0x5f,0x12,0x86,0x55, + 0x6f,0x47,0xa7,0xce,0x4d,0x4e,0xf6,0xc9,0xcf,0x32, + 0xad,0x4b,0x9a,0xda,0x4b,0xc2,0x9d,0x7a,0x9f,0x1d, + 0x95,0x4d,0xd3,0x4c,0x9b,0x69,0xb1,0xc9,0x7e,0x87, + 0x9c,0xe3,0xdb,0x24,0xae,0x9b,0x84,0xc5,0xd8,0x4b, + 0xc5,0x97,0x8a,0x4c,0x4e,0xdc,0xd9,0x7b,0x02,0x97, + 0xba,0x52,0x5d,0x87,0xcf,0xc4,0x9a,0x64,0x80,0xfd, + 0x6f,0xf7,0x42,0xab,0xc6,0xcd,0xd8,0x5a,0x5a,0xe0, + 0x81,0xbf,0xf1,0x38,0x28,0x27,0xb1,0xbc,0xa4,0x02, + 0xbc,0x99,0x0a,0xeb,0x2f,0xcf,0xb5,0xac,0x5c,0x8f, + 0x1a,0x94,0x77,0x6b,0xb3,0xf9,0xbb,0x63,0x3b,0x40, + 0xfe,0xe5,0x92,0x25,0xea,0xc3,0x86,0xf1,0x71,0x22, + 0xe0,0xd5,0xc4,0xd7,0x22,0x05,0xcf,0x8d,0x67,0x8b, + 0x13,0x79,0xec,0xbc,0x97,0xb0,0x01,0xcb,0x89,0xe5, + 0xdd,0xcf,0xd0,0xa9,0x16,0xd3,0x73,0x57,0x64,0x87, + 0x50,0x9f,0xa1,0x85,0x5b,0xe9,0xe0,0xa3,0x04,0xcf, + 0x11,0xfb,0x03,0xdf,0xe1,0xed,0xf0,0x49,0xea,0xd2, + 0xc2,0xcf,0xc1,0x56,0x95,0xe9,0x6b,0x3f,0x78,0x2b, + 0x49,0x34,0x90,0x12,0x2e,0xc7,0x7f,0x99,0x7e,0x97, + 0xf4,0x7c,0xa6,0x58,0x90,0x62,0xc3,0xf4,0x73,0x89, + 0x3c,0xb9,0xd4,0xfa,0x7a,0x53,0x82,0xbe,0xa5,0x12, + 0xf4,0xa0,0x4b,0xad,0x3b,0x45,0xc5,0xdd,0x21,0x3a, + 0x24,0x54,0x45,0x09,0x85,0xdb,0xcf,0x64,0xe6,0xec, + 0x5a,0xc7,0x03,0x22,0xf7,0x16,0xdb,0x34,0x46,0xa8, + 0xa5,0x8e,0x21,0xa0,0x57,0x48,0x84,0xdf,0xf8,0x49, + 0xe6,0xb3,0x29,0x6e,0x17,0x4d,0x2e,0x75,0x45,0x78, + 0x83,0xd4,0xc5,0x96,0xb7,0x92,0xf2,0x81,0x23,0xf4, + 0x70,0xb4,0x97,0xef,0x21,0x40,0x20,0x3a,0xb1,0x9b, + 0x75,0x54,0x8e,0x03,0xd4,0xbf,0x57,0x12,0x26,0x74, + 0xa0,0x27,0x1a,0x42,0xea,0xb0,0xe8,0x3b,0xeb,0x84, + 0x73,0x68,0xc3,0x5a,0x9e,0x9d,0x9a,0x27,0x27,0x52, + 0xf7,0x84,0x74,0x43,0x91,0x53,0x9b,0xd8,0x90,0x26, + 0xde,0x52,0x72,0x4a,0xb1,0xeb,0xf7,0x22,0x50,0x55, + 0x70,0x5a,0xae,0x30,0xe1,0x51,0x29,0x90,0x53,0xb5, + 0x42,0x07,0x44,0x20,0x3c,0x15,0x8c,0xec,0xd2,0xc4, + 0xda,0x63,0xfa,0xc8,0x99,0x48,0xd2,0x3d,0x26,0xd1, + 0x26,0x27,0xf5,0x3e,0xb5,0x3f,0x2e,0x33,0xaa,0xbb, + 0xe5,0xea,0x50,0x22,0x3a,0x29,0x13,0x3b,0x33,0x52, + 0x15,0x38,0x4b,0xde,0x66,0x86,0x27,0x53,0x14,0x78, + 0x93,0x9b,0xfa,0xc5,0xc6,0x9d,0x93,0xfe,0x12,0x7a, + 0xbc,0x0d,0x88,0x0c,0x7a,0x8c,0xa9,0x3f,0x99,0xdb, + 0x2c,0x4e,0x24,0x54,0x37,0x9c,0xd3,0x29,0x21,0xa2, + 0x3e,0x19,0x03,0x0f,0x95,0x5c,0xb9,0x8a,0x26,0x6d, + 0xfa,0x56,0xe1,0xd5,0x24,0x6d,0x41,0x82,0x93,0xd0, + 0xb6,0x45,0xb4,0x87,0x82,0xeb,0x07,0xfc,0xbc,0x0b, + 0xb8,0x0f,0x2b,0xa4,0x94,0x9e,0xf9,0xb4,0xde,0x3a, + 0xe4,0xae,0x09,0x0f,0x25,0xb0,0xd7,0xbb,0xa4,0xc4, + 0x76,0xcc,0xbe,0x17,0x05,0x27,0x3d,0x8f,0x8d,0x5a, + 0xb4,0x0a,0x29,0xc2,0xa1,0x51,0xce,0xbf,0x4c,0x13, + 0x92,0x4b,0x84,0x1f,0x8d,0x36,0xcf,0xa1,0x58,0xec, + 0xfe,0x4e,0x7f,0x4f,0x91,0xe1,0xe0,0x8f,0x56,0xda, + 0x62,0x73,0xfc,0x10,0xe5,0x69,0xba,0x36,0x65,0x7f, + 0x86,0xca,0x7f,0x73,0x5e,0x5f,0xfd,0x3b,0x9c,0xd0, + 0xa5,0xb6,0x98,0x1c,0x8f,0xa7,0xc9,0x73,0xbc,0x09, + 0x46,0xf6,0xc7,0xf3,0xf5,0xf5,0xf5,0x36,0x02,0xdf, + 0xd5,0x95,0x9d,0x96,0x1c,0x48,0x11,0x20,0xaf,0xc8, + 0xf9,0xb6,0x39,0xfe,0x57,0xe3,0x1a,0x1e,0x28,0xf4, + 0x4f,0x28,0xf4,0x5c,0x6b,0xf7,0xcd,0xbf,0xcc,0xf9, + 0x9a,0x25,0x2e,0x9d,0xfc,0x39,0xa9,0x60,0x3f,0x7c, + 0xdd,0x1c,0xd7,0x2b,0x59,0xc8,0xfc,0xa6,0xbe,0xbb, + 0x06,0x89,0xc9,0x5b,0xc8,0x09,0x25,0xa5,0x00,0x3b, + 0xc9,0xec,0xb7,0x11,0xc9,0x47,0xe0,0x4e,0x0a,0xc2, + 0x34,0x6a,0xa9,0x44,0x2b,0xd2,0x44,0x70,0x19,0xa8, + 0x9b,0xe2,0x70,0xd9,0xef,0xe4,0x80,0x3d,0xfd,0xa3, + 0x19,0xf6,0xc4,0xab,0x9a,0xc4,0xbb,0xd2,0x61,0xd6, + 0xd1,0x31,0x15,0x93,0xfa,0x44,0xcb,0x88,0x0e,0x54, + 0xd7,0x46,0xa3,0xc4,0xda,0xb5,0xea,0x20,0xc9,0x28, + 0xf5,0x83,0xe9,0xd5,0xa6,0x9b,0x74,0x70,0xc9,0x1b, + 0x54,0xe9,0x45,0xa2,0x9a,0xc4,0x6f,0x02,0xab,0x01, + 0xb4,0x41,0x71,0x50,0xfe,0x54,0x24,0x90,0xf4,0x82, + 0x5b,0x0b,0xf0,0x39,0x35,0xb5,0x7b,0x83,0x40,0xa9, + 0xfd,0xf9,0xd6,0x82,0x8b,0xed,0x97,0xa9,0xbd,0xdd, + 0x13,0x4b,0x5a,0x23,0x94,0x78,0x29,0x1f,0x21,0xed, + 0x87,0x04,0xcd,0x83,0x99,0x72,0x4f,0x32,0x4f,0x42, + 0xbd,0xe8,0xbd,0xf6,0x43,0x3d,0x91,0xbd,0x95,0x04, + 0x9d,0xde,0x41,0x27,0xf5,0x86,0xfb,0x79,0xb3,0xc2, + 0x08,0xaa,0xe5,0x87,0x12,0xdf,0xdb,0x00,0xf3,0xeb, + 0xeb,0xeb,0xfa,0xf5,0xeb,0x17,0x21,0xcd,0xc7,0x5d, + 0xe3,0x77,0x5c,0x39,0x1d,0x85,0xa1,0x84,0x26,0x25, + 0xa7,0x52,0x38,0x12,0x27,0x0a,0x15,0x93,0x6f,0x7b, + 0x06,0x45,0xe7,0x82,0x4e,0x0e,0x59,0x70,0xd8,0x7b, + 0x75,0x89,0x56,0x4a,0x52,0x54,0x6b,0x48,0x9f,0x89, + 0x43,0xa1,0x35,0x99,0x9e,0xec,0x63,0x5c,0x61,0x34, + 0xdc,0xf3,0x15,0x1c,0x1d,0x1e,0xdd,0x0b,0x20,0xc5, + 0x57,0xe2,0x90,0xa5,0xef,0x31,0xc5,0xe3,0xcf,0xfa, + 0xa6,0x98,0xa0,0x45,0x89,0x6b,0x1b,0xba,0xbf,0xa3, + 0x78,0xf0,0xfb,0x02,0x3d,0x16,0x15,0x38,0x23,0xc4, + 0x61,0x9a,0x86,0x71,0x0a,0x9f,0x9b,0x2c,0x92,0x02, + 0x14,0xdd,0xf0,0x74,0x98,0x29,0xe4,0xea,0xcc,0xfd, + 0x8c,0x97,0x4b,0x4d,0x48,0x95,0xb6,0xd0,0xdc,0xe4, + 0x4f,0xe2,0xeb,0xd0,0xf5,0x13,0x24,0x4e,0xdf,0x4b, + 0x19,0xb0,0x43,0x02,0x48,0xe8,0xb0,0xeb,0x88,0x18, + 0x67,0x63,0xe4,0x65,0x4d,0x48,0xdb,0x84,0x56,0x39, + 0x14,0x85,0x0c,0x5e,0xdd,0x46,0xba,0x49,0xd4,0x7d, + 0x2d,0xf6,0x1e,0xfa,0x3d,0x45,0x95,0xac,0x36,0xc8, + 0x2f,0x4a,0x9f,0x6f,0xe2,0x86,0x0c,0xfa,0x19,0xf8, + 0x6e,0x93,0xa5,0xc2,0xd4,0xda,0x99,0x26,0xed,0xa6, + 0x40,0xb0,0xf4,0xa6,0xab,0xed,0xef,0xa4,0xa4,0x6f, + 0x32,0x1b,0x1d,0x48,0xe1,0x98,0x04,0xb9,0x36,0xe3, + 0x9d,0x80,0xb8,0x18,0x96,0xe4,0xf3,0x1d,0xa2,0xd0, + 0xfe,0xfc,0x74,0x8b,0x0f,0xd7,0x16,0x10,0xf7,0xeb, + 0xb7,0xc4,0x86,0x78,0x16,0x74,0x78,0xa6,0x98,0xa1, + 0x08,0x01,0x88,0xb2,0xa6,0x09,0x39,0xb4,0x49,0xd0, + 0x83,0x8d,0x44,0xec,0xfa,0xe7,0x3b,0xb7,0xf5,0x3b, + 0xf1,0x50,0x3f,0x3d,0xbd,0xae,0xfb,0x59,0x11,0x12, + 0xf6,0x7a,0xbd,0xaa,0x8b,0x4e,0x2a,0xe2,0xeb,0x10, + 0x2d,0xfa,0xf3,0x24,0xca,0x08,0x88,0x72,0x42,0x0e, + 0x6d,0xa1,0x9d,0x7e,0x97,0x5a,0xb3,0x81,0xe7,0xe2, + 0xce,0x86,0x03,0xf4,0x0d,0x9c,0x16,0x4b,0x7e,0x6c, + 0x86,0x73,0xe9,0x50,0xbc,0x37,0xfe,0xd6,0x1d,0x63, + 0x93,0x61,0x6b,0xe0,0xb7,0xfe,0x20,0x6b,0x74,0x06, + 0x80,0xea,0xf9,0x71,0x53,0xab,0x97,0xd8,0x77,0x90, + 0x30,0xa5,0x8b,0xaf,0xaf,0x21,0x88,0x55,0x7a,0x61, + 0x69,0x61,0x80,0x96,0x41,0x85,0x39,0x7e,0x6c,0x1d, + 0xb9,0xca,0x5d,0x11,0x29,0x87,0x44,0x38,0x54,0x09, + 0x5c,0xd5,0xaf,0x65,0x80,0x1a,0x17,0x75,0x87,0x32, + 0xa7,0x69,0x1d,0x1a,0xef,0x4b,0x09,0xa7,0x42,0xf2, + 0x9d,0xe8,0xbb,0x49,0xf6,0xd4,0xfe,0x22,0x8d,0xf8, + 0xf7,0x96,0x0f,0x04,0x88,0x72,0x8e,0xe5,0x34,0xc1, + 0xd4,0x51,0x03,0x21,0x1c,0x5b,0x6e,0x84,0xf1,0x49, + 0x7a,0xfb,0xcc,0x76,0x7d,0x65,0xa6,0xd1,0xf0,0x39, + 0x0b,0x61,0xbc,0x06,0xbf,0x2b,0xfb,0xd9,0x64,0x59, + 0x31,0x70,0x0d,0xca,0x21,0xab,0xce,0xac,0x32,0xa8, + 0x8a,0x63,0xa5,0xdc,0xed,0x29,0x26,0x7e,0x0c,0xf1, + 0x44,0xae,0xa7,0x9d,0x44,0x39,0x2d,0x90,0x49,0xbc, + 0x73,0x23,0x47,0x4f,0x7b,0x84,0xf8,0x69,0x5a,0xf0, + 0x4c,0x88,0xeb,0x7d,0x1f,0xcd,0xf5,0xbd,0x2e,0x33, + 0x48,0x31,0xdd,0x87,0x14,0x4a,0x0f,0xf1,0x44,0xd2, + 0x96,0xe9,0xed,0x80,0x6f,0x82,0x7a,0x2d,0xd4,0xad, + 0x51,0x64,0xd3,0xb4,0x95,0x6a,0xa8,0x70,0xeb,0x62, + 0xa7,0x72,0xfc,0x2e,0xb1,0xf5,0xa9,0xc4,0x1b,0xa2, + 0xa4,0x39,0x4c,0xd9,0x3e,0x38,0x92,0x62,0x3d,0x54, + 0xba,0x46,0xb4,0xf5,0x6c,0x62,0xb2,0xbd,0x0e,0x9a, + 0x3a,0xa5,0x96,0xec,0x2d,0xa4,0x6b,0x12,0xca,0x0a, + 0xa3,0xf1,0xd4,0x7a,0x89,0x31,0x7c,0xf2,0x1b,0xbc, + 0x5b,0x73,0xc9,0x9f,0x12,0x38,0x4a,0x6e,0x8f,0x14, + 0x25,0xdc,0x09,0x5d,0x32,0x9d,0x9d,0x4a,0x31,0xdd, + 0x24,0x4b,0x95,0xda,0xdd,0x90,0x6c,0x3e,0x2c,0x3a, + 0x92,0x07,0xa5,0xc6,0xa3,0x69,0x52,0x56,0xd7,0xcf, + 0x2b,0x89,0x11,0x4e,0x55,0x1f,0x65,0x5c,0xe4,0x16, + 0x4d,0x9f,0x75,0xb7,0x63,0x28,0x93,0x24,0xc6,0x3f, + 0x24,0x33,0x8f,0x51,0xef,0x7e,0x5d,0x70,0xd8,0xd8, + 0x60,0x07,0x42,0x55,0x44,0x14,0x2d,0xb8,0xd7,0x68, + 0xcb,0x40,0xd5,0x29,0x4c,0x5f,0xd9,0x9e,0xbc,0x4b, + 0x26,0x61,0x74,0xb9,0x82,0xc1,0x2d,0xc2,0x84,0xf4, + 0x9c,0x13,0xa9,0x30,0x39,0xcb,0x9b,0xcd,0x50,0xae, + 0xe5,0xd8,0x83,0x0f,0x25,0x79,0xa1,0xc5,0x58,0x17, + 0x90,0xd7,0x27,0xad,0xa2,0x16,0x1c,0xa6,0xde,0x65, + 0x4d,0x01,0x48,0x13,0x3b,0x4a,0x44,0x1a,0x79,0x1e, + 0xc9,0xa6,0x4e,0x25,0xb7,0x1d,0xee,0x58,0x3d,0x4d, + 0xe2,0x7d,0xed,0x50,0x57,0x8f,0xa8,0x47,0xf2,0x3f, + 0x4d,0x4e,0x2d,0x10,0xb0,0xb1,0x62,0x24,0x0e,0x56, + 0xaf,0x40,0x27,0x12,0xb6,0x8b,0x1f,0x7d,0x48,0xe1, + 0x7a,0x9f,0x0c,0x1b,0x5b,0x83,0xe0,0x73,0x54,0xba, + 0x76,0x89,0xd7,0x20,0xeb,0x0a,0xf7,0xb6,0x49,0x68, + 0x6d,0xac,0xd0,0x49,0x44,0x6a,0xc1,0x13,0x92,0x68, + 0x12,0x1d,0x44,0x60,0xdd,0xbe,0x75,0x03,0x1c,0x1b, + 0xd3,0x66,0x22,0x13,0xd3,0x3e,0xd4,0x38,0xa1,0xe4, + 0x6c,0x2a,0x7c,0x13,0x17,0xd5,0x15,0x94,0xae,0x5a, + 0x72,0x87,0x3f,0x79,0x8c,0xb9,0x73,0x05,0xf6,0x07, + 0x72,0x35,0xdd,0x5a,0x4f,0xad,0x5b,0x3d,0xe7,0xa6, + 0x04,0x9b,0xe8,0x1d,0x26,0x91,0x2a,0x57,0x04,0xb8, + 0xf7,0xe3,0x62,0x94,0x13,0xea,0xa5,0xe4,0x71,0x2a, + 0x92,0xa8,0x50,0x30,0xfc,0xbc,0x0a,0x2d,0xbe,0x22, + 0x7b,0x9d,0x57,0xb8,0x99,0x34,0xdd,0x55,0x69,0x9c, + 0xdc,0xf5,0x5c,0x9d,0x47,0x57,0x5a,0xec,0xa4,0xe1, + 0xa3,0xe8,0xc6,0xc4,0x49,0xa2,0xf1,0x5b,0x82,0xda, + 0xfb,0x0b,0xd4,0xea,0x3c,0x70,0x26,0x88,0xbc,0x6d, + 0x5b,0x5f,0xca,0xbf,0xd1,0x56,0x0c,0xa9,0x2a,0xd3, + 0xe2,0x70,0x15,0xf9,0x64,0x7e,0xe9,0x38,0x0f,0x00, + 0x17,0xbf,0x7d,0xc7,0x3d,0xfd,0xe2,0xae,0xa3,0x27, + 0xb2,0x66,0x4d,0x51,0x95,0x76,0x4d,0x44,0x7a,0xfa, + 0xae,0xc0,0x85,0x79,0x4b,0x00,0x15,0xba,0xbd,0xc0, + 0x72,0xc2,0x49,0x0c,0xb8,0xfd,0xe1,0xae,0x8d,0x2a, + 0x5a,0xf7,0xfb,0x90,0xc8,0x95,0xe3,0x82,0x51,0x90, + 0xa6,0x77,0x40,0xbc,0x20,0x59,0xab,0xa5,0x3a,0x4e, + 0xe9,0xf0,0x77,0x9f,0xa5,0x63,0xba,0xa4,0xca,0x4c, + 0x95,0x6a,0xb3,0x1c,0x79,0x1b,0x4f,0xdf,0xe8,0x7c, + 0xa5,0x20,0x9e,0xee,0x3f,0x5c,0x1f,0x8e,0xfd,0x4f, + 0x3c,0x06,0x37,0xc1,0x47,0x49,0x90,0xb4,0x94,0x6b, + 0x4a,0x0e,0x7b,0x52,0x9c,0xbc,0xb0,0xfa,0x9e,0x0c, + 0x85,0x66,0x0d,0xc4,0xf7,0x22,0x61,0x5a,0x42,0x1d, + 0xfa,0x35,0x06,0xe4,0xaf,0x82,0x5a,0x77,0x41,0xcb, + 0xbb,0xdc,0xc8,0x7c,0x9f,0xaa,0x72,0x44,0xdd,0xad, + 0xbd,0xcf,0x76,0xb2,0xca,0xac,0x1b,0x32,0x8d,0xad, + 0x6d,0x8b,0x7a,0x83,0xdc,0x4c,0xfe,0x9a,0xee,0xda, + 0x49,0x36,0xc4,0xa1,0x40,0xdb,0xa1,0x9a,0xe4,0x15, + 0x98,0xf4,0xd2,0x92,0x97,0x9f,0x3b,0xaf,0xd5,0xb7, + 0x8d,0xbc,0x36,0x93,0x83,0x84,0xfe,0x7d,0x5f,0x3b, + 0x5d,0x21,0x5f,0x91,0xe7,0x57,0xba,0x38,0x17,0x6c, + 0x12,0x4f,0x27,0x41,0xb6,0xc4,0xe7,0x99,0xec,0x0d, + 0x1c,0xa4,0xe5,0xc4,0xe6,0xd2,0x4b,0xb8,0x06,0x1d, + 0x08,0xb0,0x0c,0x40,0x61,0xc0,0x44,0x2e,0x4b,0xad, + 0x13,0xad,0x00,0x49,0x24,0x4f,0x2a,0x70,0xac,0x24, + 0xd4,0x16,0xa3,0x07,0x42,0xa3,0x10,0x5b,0xe4,0xd3, + 0x42,0xfa,0x29,0x50,0x11,0x12,0xda,0x50,0x7f,0xfe, + 0xfc,0xa1,0x77,0x94,0xe4,0xd9,0x0b,0x0e,0xaf,0x0a, + 0x32,0xf0,0x15,0xc8,0x7e,0x18,0x70,0xfb,0xf7,0x01, + 0xd4,0x6b,0x0f,0x62,0x19,0x51,0x8d,0xe3,0xe2,0x97, + 0xe8,0xcd,0x28,0x77,0x45,0xd7,0x5f,0x72,0x2d,0x77, + 0xed,0x0a,0xf5,0xba,0x21,0xde,0x81,0x70,0x41,0x7e, + 0x7e,0x17,0xfc,0xcf,0x6c,0x11,0x90,0xa0,0xeb,0x16, + 0xa8,0xaa,0xb7,0x9a,0xa4,0x0f,0x57,0xd7,0xbb,0x45, + 0xc4,0x5b,0xa2,0x01,0xfa,0x2f,0x25,0x2d,0xa3,0x9f, + 0xdf,0x6d,0xce,0xea,0xae,0xb5,0x65,0x2d,0x79,0x52, + 0x1b,0x11,0x06,0x3e,0xf4,0x7b,0x22,0x7a,0x6d,0x0a, + 0x80,0x52,0x39,0x8d,0x10,0x0b,0x1f,0xe8,0x1b,0x7d, + 0xc7,0xfd,0xac,0x4d,0x32,0xaf,0xb1,0xb4,0x28,0x79, + 0x75,0x1e,0x7b,0x69,0xb2,0xd7,0xc9,0x87,0xb8,0xf5, + 0xb1,0xf0,0x19,0xab,0x30,0xd5,0x4b,0xe6,0xd5,0x15, + 0xb8,0x77,0x18,0x83,0x52,0xb2,0x9b,0x12,0x7e,0x10, + 0x41,0x8d,0xda,0x72,0x4e,0xeb,0x67,0x33,0x1a,0x4f, + 0xe0,0x42,0x90,0x3c,0x28,0xa7,0x17,0x15,0x92,0x5a, + 0x3b,0xb9,0x4c,0xb2,0x21,0x13,0xe2,0xd4,0xcf,0x92, + 0x4e,0x5b,0x98,0xde,0x4b,0x9a,0x44,0xd6,0x44,0x93, + 0x5a,0x55,0x49,0xd5,0xdf,0xa0,0xc2,0x84,0xd2,0x61, + 0xf7,0xe1,0x45,0xd0,0x78,0x42,0x86,0x40,0x94,0xee, + 0xf1,0x7b,0x5a,0x01,0x39,0xf4,0x27,0x24,0x60,0x05, + 0xa6,0x89,0x51,0xc7,0xc0,0x55,0x2e,0x81,0xa8,0x77, + 0x01,0xbb,0x3f,0xf6,0x8d,0x5d,0xcb,0x67,0xf2,0x4b, + 0x71,0x95,0xa9,0xcb,0x94,0x97,0x8a,0xbf,0x64,0xa5, + 0x80,0x64,0x6b,0x87,0x2a,0x10,0xb9,0xf9,0x62,0x9d, + 0x9c,0xda,0x24,0xbc,0xad,0xa7,0x9e,0x36,0x63,0x69, + 0xcf,0x38,0x69,0x8e,0xd0,0x26,0xd3,0x04,0xc7,0x91, + 0xea,0x94,0xcb,0x44,0x41,0x09,0xb4,0x2e,0xde,0xae, + 0x09,0x4c,0x45,0x23,0x8f,0x0d,0x92,0xdd,0x89,0xbf, + 0xa1,0x89,0xcf,0xca,0x34,0xb7,0xb7,0xff,0xa8,0x45, + 0xda,0xcd,0x55,0x13,0xb7,0x48,0x79,0x4e,0x3d,0x91, + 0x49,0xfc,0x0f,0xaa,0xf2,0x86,0x89,0x41,0x6b,0x60, + 0xa8,0xf6,0x1a,0xc4,0xef,0xbb,0x9e,0x7a,0x46,0x35, + 0x20,0x78,0x78,0x1d,0x12,0xf4,0x1f,0x86,0xa7,0x30, + 0x91,0xfa,0x40,0x6e,0x2e,0xd0,0xc6,0x01,0x4f,0xa3, + 0x22,0x44,0x37,0x99,0x44,0xd2,0x58,0x7f,0xd2,0x83, + 0x0a,0x71,0x62,0x23,0xfd,0x51,0x01,0x85,0x43,0x04, + 0x38,0xc4,0x9a,0x38,0x64,0x40,0xc8,0x3d,0xb5,0x95, + 0xdd,0xbd,0x39,0x29,0x86,0xc5,0x50,0x02,0x3d,0x43, + 0xd2,0xff,0xb2,0xef,0xc5,0xe9,0x09,0x11,0x82,0x3c, + 0x59,0x37,0xa4,0xc4,0x4d,0x05,0x17,0x03,0xbf,0xcc, + 0x12,0xe6,0x81,0x5f,0x87,0x22,0xb9,0x49,0xcc,0x97, + 0x92,0xf4,0xa9,0xcd,0x65,0xc6,0xe8,0xed,0xa0,0x13, + 0x4d,0x49,0xf7,0xe4,0x4c,0xcf,0x3b,0xdd,0x83,0xf7, + 0x9f,0xff,0xa6,0x6a,0x72,0x0a,0x6e,0x5b,0x98,0x4b, + 0x5b,0x0e,0xfa,0x80,0x36,0x2c,0xfb,0x89,0xcc,0x44, + 0xd0,0x23,0x8c,0x29,0x47,0xe7,0xdb,0x2d,0xe9,0x54, + 0x5b,0x7e,0x93,0x46,0x82,0x4b,0x38,0xfa,0xc7,0x40, + 0xdb,0xa3,0xf4,0x3b,0x5c,0x12,0x95,0x92,0xa7,0xc0, + 0xa9,0xa2,0x31,0x7e,0x1a,0xcf,0xb6,0x63,0xe2,0xbd, + 0x72,0x71,0x32,0x05,0x9b,0x03,0xcf,0xf5,0xc8,0x09, + 0x81,0x9b,0x38,0x05,0x93,0x1f,0xd6,0x44,0xd8,0x0c, + 0x09,0xc5,0x98,0xa8,0x4c,0x89,0xfd,0xd7,0xd7,0x57, + 0x51,0x2f,0x7d,0xba,0x57,0xe2,0xbc,0x90,0x97,0xdc, + 0x62,0x4f,0x26,0xa5,0xe3,0x28,0xa4,0x49,0xbc,0x20, + 0x9a,0x1e,0x4d,0x08,0x95,0x6b,0x29,0x24,0x72,0xf4, + 0x94,0x00,0x52,0x31,0xd3,0xbe,0xfb,0x38,0xa4,0x6d, + 0xb0,0x43,0x71,0xcf,0xe6,0x4c,0x3c,0x26,0x69,0xa7, + 0x9e,0xc5,0x21,0xf5,0xf8,0x59,0xa8,0x8e,0x8b,0x6c, + 0x10,0x9c,0x17,0x55,0x70,0x8f,0x3f,0x34,0xfd,0xd8, + 0xa7,0x8a,0xd2,0xa8,0xb7,0x7a,0x39,0xf5,0x1b,0x48, + 0x7e,0x5e,0xae,0xdd,0x0e,0x96,0x15,0x6f,0xd3,0x61, + 0xe2,0x13,0x69,0xf5,0x6c,0xae,0x7f,0x54,0xd1,0x8f, + 0x79,0x27,0x75,0x19,0xbf,0xb5,0xcb,0xe8,0xc5,0xe8, + 0xa4,0x9c,0xb4,0x1d,0xe9,0x3e,0xec,0x68,0xbc,0x4b, + 0x98,0xc3,0xa8,0xf8,0x63,0x6a,0xa9,0xc5,0xa0,0x63, + 0xa6,0x3a,0x1f,0x5e,0x61,0x8b,0xb6,0xda,0x47,0x7b, + 0x6a,0xa2,0x50,0x4c,0xad,0x74,0x9d,0x14,0xd7,0x69, + 0xc2,0x0b,0xc6,0xfd,0xc3,0x74,0xf8,0x43,0xfe,0x40, + 0x50,0xc0,0x33,0x4d,0xf2,0xfd,0x20,0x48,0x06,0xf2, + 0x7b,0x33,0xa4,0x34,0x55,0x0d,0xf1,0x37,0xca,0x05, + 0x46,0x67,0x6c,0xe8,0xc4,0x07,0xa9,0x92,0x96,0x80, + 0x51,0x44,0x7c,0x9b,0x60,0x4f,0x82,0xe4,0x44,0x84, + 0x8e,0x54,0x5d,0x0b,0x88,0x5e,0x05,0xf0,0x68,0x01, + 0xdc,0x1d,0x11,0xa4,0xd4,0x83,0x25,0xef,0xb1,0x34, + 0x82,0xaf,0xa8,0xcd,0x04,0x07,0xba,0x16,0x9f,0xb6, + 0x95,0x5c,0x80,0xa2,0xeb,0x77,0xe4,0xfa,0x6f,0x27, + 0xe9,0x07,0x94,0xef,0x94,0x45,0xdd,0x73,0x02,0x81, + 0xc9,0x9a,0xb8,0x0f,0x10,0x14,0x90,0xe8,0xdc,0x02, + 0x6c,0x25,0x67,0xe6,0xd6,0xb2,0xc1,0xa0,0x73,0x19, + 0xb2,0x2d,0xa0,0x7f,0x0f,0xb4,0x61,0x39,0x3a,0x6d, + 0xa7,0xb5,0x26,0xfe,0x41,0x47,0x4e,0xf4,0x5e,0x09, + 0x41,0x98,0x12,0x6c,0x6a,0x33,0xb9,0xea,0x38,0xb5, + 0xda,0x03,0x5a,0x90,0x90,0x8b,0xf4,0x0e,0x7e,0xf8, + 0x77,0xc2,0x3b,0x7a,0x7b,0x2f,0x0a,0xf3,0x27,0xc4, + 0xb0,0x93,0xa0,0xa9,0xcd,0x22,0xc5,0x40,0x4d,0xe8, + 0x8c,0xa2,0x47,0xc3,0x73,0xaa,0xe4,0x85,0x77,0x99, + 0x29,0x47,0x98,0x1c,0x7c,0x54,0xd0,0xaa,0x64,0xae, + 0x48,0x1c,0xa1,0x98,0xaa,0x68,0x6c,0xda,0xa9,0x16, + 0x29,0xd1,0xa9,0x27,0xa9,0xe2,0x6b,0xcb,0x13,0x6c, + 0x32,0x1e,0x95,0x54,0xe0,0x0d,0x82,0xf5,0x76,0x9f, + 0x3a,0x7d,0x66,0x78,0x96,0x31,0xf6,0x53,0x50,0x25, + 0x72,0xba,0xf2,0xe3,0x88,0x83,0xe4,0xce,0x57,0x13, + 0x63,0x1f,0xbc,0xac,0x49,0x7a,0x45,0x5d,0x13,0x26, + 0x32,0xf7,0x05,0x1e,0x98,0xae,0x05,0xeb,0x78,0x62, + 0x53,0x0c,0x18,0x3a,0x14,0x23,0xe2,0x0c,0x68,0x6a, + 0xc9,0x1a,0xf9,0x67,0x0a,0x6c,0x22,0xcc,0x52,0xf5, + 0x9e,0xfa,0x85,0x4a,0x28,0x75,0xa6,0x99,0x14,0x48, + 0xa9,0x67,0x19,0x88,0x63,0x45,0x68,0x02,0x5d,0xeb, + 0x14,0x38,0x1f,0xbd,0xc2,0x27,0x6f,0x62,0x64,0xf3, + 0xa7,0x64,0x6c,0x78,0xb6,0xe4,0xa9,0x85,0xed,0x3c, + 0xf2,0xcd,0x99,0xd0,0x83,0x00,0xe1,0x63,0x05,0xee, + 0x12,0xc9,0x4d,0x8f,0xfe,0x7e,0xe7,0xb7,0xc7,0x0b, + 0x71,0x08,0xc8,0x53,0x6e,0x3a,0x0c,0xd3,0xf3,0xda, + 0xc0,0xbb,0xee,0x3b,0xa7,0xe9,0x2e,0xf7,0x6c,0x94, + 0xec,0x9a,0xa6,0xb9,0xa8,0xed,0x47,0xc8,0x8f,0x19, + 0xc7,0x7e,0xdb,0xe4,0x0a,0xf3,0x3a,0x82,0xb8,0x6b, + 0x13,0xa5,0xd6,0x03,0xc1,0xd0,0x81,0x07,0x45,0xad, + 0x83,0xb7,0xef,0xee,0xff,0x38,0x0f,0x32,0xd7,0x2e, + 0x4e,0x48,0x1e,0x48,0x0a,0x5c,0x06,0x21,0x70,0x6b, + 0xe1,0x6d,0x4c,0x3d,0x21,0xcc,0x30,0xac,0x51,0x1b, + 0xc9,0x0c,0xfd,0xf9,0x61,0x9f,0xd5,0x15,0xa6,0x2a, + 0xf5,0xb0,0x73,0x32,0x03,0x8e,0x06,0xe0,0xb8,0x93, + 0xc0,0xdd,0x79,0x0b,0x68,0x6e,0x8d,0xd1,0x1a,0xea, + 0x7e,0x7b,0x80,0x04,0xa5,0xa4,0x0d,0x75,0xc0,0x52, + 0x35,0xef,0xa4,0x57,0x16,0xc5,0x30,0x4e,0x41,0x93, + 0x60,0xe0,0x44,0x70,0x0e,0x6a,0xc6,0x28,0x9c,0x4a, + 0x85,0xab,0xee,0x67,0x40,0x29,0x3f,0x9a,0x44,0x4b, + 0xb1,0x36,0x25,0x28,0x30,0xd0,0x63,0x11,0x5f,0x42, + 0x67,0x80,0x5b,0x18,0xe9,0x05,0x5b,0x63,0xe9,0x89, + 0xbf,0xe4,0xfe,0xfe,0xd7,0xeb,0xf5,0xfa,0xdf,0xaf, + 0x6f,0x37,0x78,0x65,0xdd,0xab,0x6e,0x4e,0x10,0x74, + 0x7a,0x7b,0xb9,0xea,0xc1,0xb2,0xf9,0xc7,0x11,0x66, + 0x85,0x4c,0x4b,0x3a,0x38,0x29,0x49,0xc1,0x07,0x47, + 0x24,0x64,0x9a,0x54,0x08,0xad,0x97,0xb8,0x69,0xa8, + 0x5a,0xb8,0xff,0xdc,0xdd,0x47,0xca,0x68,0xd3,0xc6, + 0x73,0x95,0x91,0x81,0xf7,0x63,0x6f,0xdb,0x21,0x82, + 0x8e,0x70,0xa9,0xd2,0x05,0xee,0x79,0x24,0xbe,0x8c, + 0x38,0x7d,0x27,0x2f,0x2b,0x1c,0xc9,0x0c,0x2d,0x45, + 0x5b,0x19,0x6a,0x35,0x12,0xae,0xaf,0xdc,0x98,0x2d, + 0x91,0x2d,0x61,0x22,0xb1,0x86,0x0d,0x6c,0xdb,0x6b, + 0x03,0xbf,0xa3,0x3e,0x31,0x36,0x4c,0x53,0x2a,0x2e, + 0x21,0xde,0x8c,0xce,0xeb,0x84,0xc5,0x65,0x84,0x54, + 0x3f,0x49,0xf8,0x5d,0xa1,0x91,0x10,0x24,0x83,0xce, + 0xbe,0x29,0xc7,0xea,0x67,0xa6,0x40,0xee,0x38,0x45, + 0xf2,0xbd,0xc9,0x56,0x22,0xdd,0xc7,0xa1,0xc4,0x70, + 0x72,0x7e,0xd7,0x77,0xd9,0xd6,0xdf,0x59,0xc4,0x1e, + 0x6c,0x9d,0xa9,0x30,0x24,0xc4,0x8e,0xe3,0x9e,0x8f, + 0x7b,0x1e,0x66,0xad,0x9c,0x80,0xce,0x1f,0x38,0x20, + 0x0f,0x1c,0xb8,0x27,0x14,0x0b,0xc7,0xbd,0x87,0x7e, + 0xed,0xf2,0x99,0x07,0x68,0x0d,0x07,0x26,0x32,0x0f, + 0x18,0x3d,0xd3,0x7b,0x3a,0x90,0x14,0x1d,0xf3,0x1e, + 0x0e,0xbc,0x1b,0xb2,0x6b,0x38,0xee,0x5c,0x0b,0x2d, + 0xd2,0x63,0xd6,0xf2,0x81,0xc2,0xea,0x40,0x1b,0x9e, + 0xd6,0xfc,0x01,0x99,0x96,0x03,0x67,0xee,0x81,0xb3, + 0xeb,0x40,0xec,0x3c,0xc4,0x1f,0x22,0x71,0x50,0x6a, + 0xa7,0xea,0xf7,0x1b,0xa4,0xf8,0x9c,0x73,0xfe,0xd3, + 0x39,0xe7,0xbf,0xfc,0x26,0x54,0x63,0x12,0xd6,0x9b, + 0x90,0x85,0xc4,0x9d,0x70,0x2d,0xa2,0xe4,0xb1,0x95, + 0x12,0x10,0x67,0x1e,0xa7,0xb6,0x09,0x90,0xf0,0xd8, + 0xf6,0x8a,0x51,0x3b,0x7d,0x3c,0x0b,0xa7,0x5b,0xd4, + 0x61,0xd7,0xc9,0x18,0x36,0xe9,0xe5,0x74,0xd5,0x62, + 0x51,0xbd,0xa4,0x77,0x53,0x64,0xeb,0x60,0x7a,0xd0, + 0x45,0xd3,0x4f,0xae,0xc5,0xa1,0x53,0x72,0x1d,0xc9, + 0xe9,0x23,0xb8,0x8e,0x04,0x9f,0xa6,0x3d,0xd2,0x77, + 0x10,0xe1,0xd9,0x99,0xc4,0x12,0x87,0x49,0xdf,0x65, + 0xaa,0x96,0x48,0x11,0x1c,0x12,0x82,0x5a,0x40,0xaf, + 0x8f,0x35,0xe0,0xd4,0xd2,0x2f,0x90,0x78,0xe8,0xd5, + 0xbb,0x4b,0xf4,0x3e,0x70,0x77,0xaf,0xa6,0x48,0x1c, + 0x2b,0x25,0x22,0x60,0x3a,0x0d,0xad,0x49,0xa5,0x99, + 0xfa,0xff,0x2e,0x6e,0x68,0xf2,0x9f,0x2c,0x69,0x02, + 0x9f,0x2d,0xc9,0x75,0x9c,0x94,0x88,0x25,0x34,0x09, + 0xaa,0xf3,0x33,0x21,0x0f,0x8a,0x02,0x13,0x27,0xa4, + 0xbf,0xa7,0xee,0x23,0x96,0xe2,0xaf,0xe3,0x07,0x29, + 0xf7,0xa5,0xc7,0x7f,0x67,0xe5,0xa2,0x3c,0x28,0xf7, + 0x9e,0x7b,0x32,0x61,0x08,0xc3,0x07,0x12,0xe3,0xa2, + 0x43,0x52,0xf9,0x2b,0x32,0x9d,0xeb,0xf8,0x1f,0x6f, + 0xd7,0x69,0x34,0x89,0x0e,0x8c,0x67,0x9f,0xa4,0x9c, + 0xac,0xa8,0x56,0xf7,0xe7,0x12,0xa7,0x82,0x47,0xd2, + 0xf0,0xcd,0xdf,0x3b,0xa0,0x92,0xef,0xb8,0x4b,0x3f, + 0x4a,0xc9,0xca,0x11,0xa2,0x67,0xa7,0xbf,0x7f,0x5b, + 0x7a,0xa4,0x6e,0x42,0x42,0x97,0x1b,0x7d,0xe1,0xc0, + 0x99,0xe7,0x92,0xa0,0xaa,0xaa,0x63,0x12,0xf5,0x82, + 0xa4,0x26,0x7e,0x7e,0x52,0xa0,0x36,0xd3,0xc5,0x67, + 0xd2,0xa9,0x33,0xeb,0xf9,0x90,0xe2,0x3d,0xb8,0x32, + 0xf8,0x29,0xb0,0xe9,0xd0,0x26,0xe2,0xd3,0x15,0xd4, + 0x1e,0x13,0xec,0x9f,0xa6,0x78,0x3e,0x68,0x47,0x44, + 0x31,0xab,0x4f,0xac,0x05,0x36,0xd5,0xaa,0x1e,0x68, + 0x2e,0x58,0x4e,0x82,0x5b,0xc1,0x51,0xd9,0xb6,0x1d, + 0xdc,0x48,0x3d,0x71,0x93,0xe8,0x90,0x1a,0xe0,0xc9, + 0x22,0x1f,0x26,0x40,0xd1,0x8a,0x26,0xde,0xc2,0x5a, + 0xaa,0xd4,0xba,0x4c,0xfd,0x5f,0x33,0x72,0x5b,0xa4, + 0x14,0xac,0xbd,0x76,0x90,0x53,0xb7,0x3a,0x12,0x0a, + 0xf3,0x93,0xd6,0x13,0x05,0x23,0xd7,0xee,0x05,0x53, + 0xdf,0x07,0x6f,0x84,0x90,0x90,0xab,0x8d,0xae,0x4f, + 0xeb,0x52,0xc7,0xf4,0xc3,0x1e,0x43,0xa4,0x44,0xd4, + 0x81,0xfb,0x68,0xfb,0x6a,0xed,0x26,0xed,0x8e,0xf0, + 0x3c,0x62,0x9b,0x75,0x1a,0x4c,0x18,0x20,0xfb,0xb7, + 0xb6,0x9b,0xf2,0x4f,0x5c,0x8c,0x20,0xe1,0x37,0xa7, + 0x54,0xac,0xa4,0x6d,0xd7,0x46,0x52,0xae,0x8c,0xae, + 0x5b,0x51,0xb4,0xaf,0xe9,0xf9,0x5e,0x46,0xa0,0xd3, + 0x20,0xe6,0x45,0x62,0x81,0xdf,0xed,0xe7,0x4a,0xde, + 0x8d,0x24,0x1c,0x97,0xcc,0x8d,0xdd,0xb0,0x8b,0x7c, + 0x7e,0xc1,0x9a,0x40,0x09,0x80,0x7e,0x9f,0xfa,0x9c, + 0xa8,0xb5,0x46,0x3c,0x37,0x92,0x88,0x00,0xa4,0xab, + 0x00,0xcd,0x5e,0x8d,0xd9,0xab,0xd0,0xaa,0xc6,0x5b, + 0x48,0xfc,0x6b,0x23,0x34,0xea,0xde,0x4f,0x2b,0x34, + 0x2a,0x25,0xf6,0x89,0xf6,0xe1,0x92,0x85,0x44,0x4a, + 0x4e,0xe2,0x87,0xfa,0xb9,0xd4,0x7e,0x72,0x54,0x00, + 0xd7,0xea,0xde,0x78,0x6c,0x3a,0x83,0x62,0xd7,0x0e, + 0xd6,0x22,0xf9,0xe5,0x64,0xae,0xf5,0x26,0x5d,0x7b, + 0x68,0x21,0x34,0x68,0x5b,0x2d,0x7a,0xb8,0x27,0x85, + 0xc9,0x29,0xe8,0xa6,0x07,0xe0,0x5a,0x01,0x54,0x71, + 0x27,0xc6,0xf8,0xc4,0xab,0x09,0x22,0x5f,0x09,0x2d, + 0x2b,0x58,0x9c,0xa4,0xe1,0x63,0xab,0xcc,0x89,0x84, + 0xa6,0x5a,0x3c,0xe9,0x1e,0x49,0xef,0xc2,0xdd,0xd3, + 0x5d,0xd9,0x6c,0xc8,0x75,0x0e,0x11,0x49,0xd7,0xdf, + 0xa7,0xb6,0xcc,0xe1,0x52,0x84,0x3e,0xb8,0x9e,0x70, + 0xfb,0xdd,0x4a,0x9c,0x9e,0x3e,0x9d,0x45,0x1c,0x0f, + 0x9a,0x1c,0xec,0x31,0x49,0xdf,0x95,0xe1,0x86,0x4d, + 0x5c,0x8c,0xbe,0xc6,0x6a,0xc3,0x75,0x72,0xdf,0x0f, + 0x09,0x5c,0xfa,0xf7,0x37,0x42,0xaf,0x4b,0xe0,0xa6, + 0x62,0xe1,0x13,0x45,0xf1,0x50,0x4c,0xc5,0x36,0xf3, + 0x46,0xd0,0x34,0x25,0x64,0xc2,0xab,0x21,0x14,0xf7, + 0x61,0xaa,0x08,0xa8,0x42,0x25,0xae,0x95,0x79,0xce, + 0x35,0x89,0x3c,0xf6,0x77,0xe1,0x10,0x39,0x12,0xaa, + 0x85,0xc3,0xa1,0x94,0xeb,0x21,0x72,0x13,0x35,0x90, + 0x51,0x89,0xe3,0x68,0x05,0x4f,0xdf,0xe0,0x80,0x41, + 0x30,0x36,0xb5,0x9c,0x69,0xad,0x10,0x07,0x29,0xa0, + 0x58,0x36,0x99,0x22,0xe2,0xfc,0xd0,0x3a,0x8c,0x7c, + 0x98,0xd0,0x62,0x4e,0xe8,0x76,0x6c,0x67,0x52,0x91, + 0xaf,0x05,0x84,0x9e,0x11,0x81,0xa3,0x36,0x02,0x05, + 0x74,0x5e,0xbb,0x6b,0x4f,0x6e,0x06,0x9f,0x00,0x0b, + 0x0e,0x61,0xd7,0x29,0x71,0x47,0xfe,0xa6,0x18,0x9a, + 0x54,0xe1,0xdd,0xf9,0xf3,0xea,0xcf,0x82,0xbc,0x76, + 0xe8,0x0b,0x2f,0x20,0xd9,0x0e,0x0a,0x97,0x24,0x44, + 0x57,0xa2,0x6c,0xfa,0xb8,0xf9,0x94,0xb0,0x24,0x54, + 0x44,0xff,0x90,0x2c,0x2c,0x14,0x96,0x54,0x5e,0x81, + 0x53,0xa8,0xdc,0x90,0xcd,0xdc,0x67,0x98,0xe7,0x5b, + 0xf0,0x72,0x23,0x89,0x56,0x84,0x10,0x6d,0x12,0x70, + 0xc1,0xe4,0x18,0x4c,0x2c,0x58,0x12,0x76,0xe7,0x2c, + 0x4d,0x48,0x54,0x68,0x21,0x3c,0x92,0x9f,0xbe,0x91, + 0x37,0xa4,0x40,0xe0,0x7f,0x25,0x2f,0xae,0x22,0xe4, + 0xe3,0x9e,0x82,0x19,0x92,0xdd,0x82,0xb5,0x3f,0x16, + 0x07,0x8e,0x5f,0x45,0xc8,0x6a,0x7b,0x2e,0xe5,0x82, + 0xbc,0xd9,0x87,0xf6,0x20,0x37,0x7e,0x4d,0x94,0x60, + 0x3e,0x6c,0x34,0x26,0x5f,0xbf,0xc4,0x7b,0x9b,0x24, + 0xf8,0x8d,0x77,0xda,0xc3,0x73,0xac,0x3e,0x21,0x0d, + 0x5e,0x5e,0x5f,0x67,0xe3,0x7b,0x26,0xf1,0xeb,0x61, + 0x8b,0x61,0xa6,0x93,0x52,0xfb,0x0d,0x27,0xb6,0x60, + 0xfa,0x74,0xeb,0x47,0xf6,0xb0,0xc2,0x00,0x44,0xb3, + 0x1c,0x12,0x45,0x83,0x13,0x46,0x0b,0xad,0x02,0x0a, + 0x86,0xfc,0xc7,0x30,0x40,0xf9,0x38,0xc8,0x26,0x55, + 0x7b,0xa7,0xef,0x46,0xfa,0x3a,0x8a,0x8a,0x3b,0x24, + 0xee,0x62,0x8d,0x2d,0xa7,0x3d,0xb6,0x12,0x55,0x74, + 0x16,0x4c,0x9d,0xc7,0x48,0xa8,0xae,0x03,0x15,0x52, + 0x87,0x02,0x92,0x68,0x27,0x84,0x58,0x84,0x3c,0xa5, + 0x82,0x82,0xc0,0x00,0xd2,0xa4,0x12,0x9e,0x1c,0xc5, + 0xe0,0xd1,0x92,0x29,0x75,0x45,0x1c,0xba,0x34,0x09, + 0x20,0xea,0x7b,0x02,0xcb,0x2c,0x4b,0x1b,0xe9,0x3f, + 0xfb,0xdb,0x6d,0x44,0x07,0x17,0xd1,0x03,0x54,0x19, + 0xeb,0x5e,0xed,0xa4,0x29,0x0a,0x98,0x9a,0xb1,0x1c, + 0x01,0x8a,0x0e,0xe9,0xb3,0xc8,0x4e,0x40,0xdd,0xde, + 0x83,0x35,0x41,0x84,0xea,0x75,0x11,0x75,0x99,0x6d, + 0xe2,0xe1,0x10,0x37,0x25,0x70,0x2a,0x4a,0x79,0x36, + 0x34,0xe2,0x09,0x5c,0x99,0x47,0xc2,0xe5,0xec,0x22, + 0xb4,0x6a,0xd1,0xe7,0x99,0x3c,0x6f,0x48,0x4a,0x3d, + 0x54,0x5c,0x15,0xf4,0x61,0x2a,0xb4,0x65,0x46,0x4f, + 0x21,0x77,0x2f,0x0e,0xd6,0x9d,0x88,0xcc,0xca,0xff, + 0xea,0x6b,0x5c,0x7f,0xdf,0x09,0x6e,0x69,0xa2,0x37, + 0x09,0x63,0x06,0x13,0xd8,0x51,0xd2,0x3e,0xe9,0x8a, + 0x50,0xf0,0xdf,0x54,0x9f,0x4e,0xd7,0x69,0x13,0x9c, + 0x08,0x69,0xa5,0x24,0x3e,0x3d,0x8b,0xc4,0x59,0xba, + 0x89,0x2e,0x93,0x1e,0xd9,0x92,0xeb,0xe3,0x0c,0x17, + 0x0f,0x89,0xb7,0xc2,0xf3,0x28,0xe5,0x1d,0x0d,0x22, + 0xa8,0x13,0x5f,0xc7,0x3a,0xc4,0x3b,0x3d,0x15,0x72, + 0x38,0x97,0xc9,0xbf,0xe3,0x92,0xf3,0x7b,0xa0,0x41, + 0x79,0x1f,0x4e,0x97,0xc6,0xdc,0xd3,0xdb,0xdf,0xdd, + 0x9c,0x33,0xe5,0xe4,0x90,0x62,0xbe,0x52,0x09,0xd4, + 0xa1,0x5c,0xf6,0xe2,0x71,0x89,0xbc,0xfb,0x8e,0xd4, + 0x32,0xd1,0x6b,0xf9,0xbe,0xe6,0x02,0x92,0x79,0x29, + 0xb1,0xdc,0xf1,0x7e,0xb6,0xce,0xe7,0x06,0xf5,0x3a, + 0xd4,0x0a,0x4f,0x2e,0x03,0xa2,0xec,0x7d,0xc8,0x12, + 0xc6,0xd8,0x32,0x1d,0x57,0x48,0x7d,0x7d,0x7d,0x9d, + 0xad,0xeb,0xbc,0x6b,0x29,0x25,0xeb,0x18,0x12,0x46, + 0x76,0x6d,0xc0,0xfe,0xae,0x89,0xd7,0x93,0x9e,0xf7, + 0x06,0x81,0x7e,0x9c,0xdb,0xa6,0x1d,0xe0,0x32,0x3f, + 0x8b,0x58,0xb8,0xcc,0x6d,0xb0,0x8a,0x28,0xe0,0xa4, + 0xac,0xdc,0x6d,0xd3,0x18,0x62,0x13,0xc0,0xb2,0xd5, + 0x4a,0xba,0x97,0x64,0x34,0x47,0xd5,0x83,0x0a,0x0a, + 0x4e,0x23,0xe5,0x53,0x65,0xe8,0x5e,0x96,0x4e,0xd3, + 0xdd,0x64,0x3c,0x5d,0x40,0x54,0x91,0xa5,0xde,0x6c, + 0xf2,0x97,0x01,0xd1,0xb4,0x84,0xa2,0xa2,0xa7,0xd9, + 0x86,0x5b,0xd5,0xd7,0x86,0x83,0x6f,0xfb,0xf3,0x16, + 0x91,0x3c,0xbb,0x06,0x75,0xb2,0xcc,0x25,0x26,0xb4, + 0x96,0xee,0x6a,0x0e,0x0c,0x60,0x6d,0xbf,0x1e,0xa0, + 0xfb,0x34,0xd9,0xd6,0x03,0xa9,0x55,0x00,0x36,0x1c, + 0x97,0xa8,0x49,0x44,0x42,0x80,0xb7,0xee,0x92,0x1e, + 0x7e,0xda,0xc2,0x4c,0x2e,0xd0,0x1d,0x61,0x54,0x0d, + 0x1d,0x67,0x86,0xe9,0xd6,0xde,0x44,0x6e,0x4c,0xc5, + 0xca,0x50,0xe1,0x55,0xf3,0xb1,0x1a,0xf5,0x73,0xf4, + 0xb3,0x04,0x6d,0x7e,0xb4,0x90,0x74,0xf8,0x23,0x89, + 0xbf,0xa9,0x89,0x2e,0x20,0x05,0x16,0xe1,0x4d,0xfc, + 0x87,0x0e,0x05,0x25,0x8e,0x0d,0x20,0xdf,0x76,0xcd, + 0x53,0x91,0x01,0x1e,0x6a,0x51,0x67,0x2b,0x50,0x0b, + 0xa2,0x46,0x18,0x3c,0xc7,0x72,0x2d,0x49,0x2d,0xaa, + 0x5d,0xdc,0x73,0xe7,0x13,0x24,0x4d,0xd6,0x2a,0x88, + 0xec,0x59,0x5c,0x5c,0x9a,0x38,0x88,0xf4,0x1c,0x3a, + 0x11,0x1c,0xd6,0x77,0x2a,0x10,0xaf,0x69,0x18,0x41, + 0x0b,0x78,0xe9,0xec,0x44,0x73,0xdd,0xa1,0x85,0x6f, + 0xcf,0xaa,0x64,0xa9,0xa4,0x71,0xd0,0xe9,0x06,0xba, + 0xce,0xd1,0xb6,0xe5,0xae,0x03,0x42,0x9a,0xb3,0x6c, + 0x46,0xf9,0x5f,0x89,0x90,0x94,0x0e,0x2d,0x80,0xfa, + 0xdf,0x2a,0xb8,0x4d,0xff,0x34,0x8d,0xac,0xbb,0xb6, + 0x90,0x23,0xb5,0xf5,0x80,0xee,0xc6,0x61,0x9d,0xb1, + 0xde,0xc5,0xe6,0x79,0xb5,0xb0,0x32,0x88,0x32,0xdc, + 0x4e,0x97,0x87,0xa6,0xad,0x2e,0x50,0x64,0x4e,0x07, + 0x4b,0x9a,0x04,0x33,0xc1,0xd8,0x6d,0x9e,0x4a,0x07, + 0x1d,0x65,0xd7,0x13,0xa9,0x96,0xd4,0xa9,0x55,0xc8, + 0x8b,0x82,0xaf,0x83,0x9b,0x43,0xfb,0x29,0x89,0x62, + 0x56,0xe0,0x63,0x54,0x78,0xb7,0x35,0x11,0x40,0x75, + 0x84,0xde,0xbd,0x8b,0x4e,0x80,0x74,0x05,0x85,0x6b, + 0xad,0x91,0x13,0x74,0xf3,0xc1,0x8a,0x3c,0xb5,0x9e, + 0x9c,0x5d,0x46,0x4b,0x87,0x90,0x19,0x38,0x88,0xde, + 0x5a,0x53,0x89,0x33,0xb3,0xf1,0x0e,0xa4,0x36,0x19, + 0x25,0x71,0x1b,0x47,0x68,0xfa,0x1d,0x6d,0x4d,0x91, + 0xdf,0xd6,0x34,0x31,0xe2,0x74,0x97,0x92,0x9c,0x80, + 0xf9,0x7f,0x2b,0xb4,0x18,0x0a,0x8f,0x5a,0x10,0x60, + 0x91,0x84,0x3b,0x11,0xec,0x75,0xdd,0xc1,0x73,0x7f, + 0xb4,0xa6,0x9d,0x8f,0x98,0xb1,0x8c,0xa9,0xbb,0x30, + 0x33,0x31,0x81,0x86,0x40,0x6c,0xc2,0xa1,0x85,0x4d, + 0x92,0xbd,0x20,0xe1,0x40,0x17,0xcb,0xc9,0xe4,0x79, + 0x5a,0xd3,0xa1,0xf5,0xfb,0x50,0xef,0x77,0xc4,0xea, + 0xd0,0x86,0x46,0x3b,0x0f,0x48,0xe2,0x89,0xa3,0xfb, + 0x10,0xf7,0x1b,0x68,0x2b,0x2e,0x76,0xd9,0x84,0x89, + 0xda,0xe3,0x3d,0x29,0x4c,0xed,0x76,0x67,0x6f,0xe3, + 0x0a,0x09,0x4a,0x9c,0xc9,0xee,0xea,0x43,0x9e,0xd1, + 0x5b,0x81,0x29,0xf1,0xb5,0x5e,0xf7,0xa6,0x70,0xfe, + 0x33,0x43,0x9f,0x77,0xad,0xea,0xfa,0xa9,0xf7,0x96, + 0x12,0x61,0xa9,0x7a,0x30,0x70,0xe0,0x48,0xbc,0x73, + 0xc2,0x48,0x2e,0x41,0xd2,0x00,0xd8,0x5f,0xa4,0x54, + 0xc4,0xa3,0x3a,0x2d,0xa1,0x5f,0xc1,0xed,0x96,0x7c, + 0x50,0xaa,0xb7,0x73,0x26,0x38,0x30,0xe9,0x20,0x11, + 0x84,0x4f,0xe8,0x9c,0x41,0xd6,0x8a,0x5a,0x4b,0x40, + 0x46,0x2b,0xc7,0x63,0x48,0xa4,0x49,0xb7,0xc6,0x94, + 0x17,0x65,0x9e,0x7d,0x75,0xa1,0x45,0x09,0x0a,0x15, + 0xa6,0xa0,0x6a,0x20,0xf7,0x15,0x8d,0x6f,0x4b,0x82, + 0x84,0x5a,0x3e,0x0e,0x8d,0x0c,0x81,0xb2,0x1c,0x07, + 0x23,0x1c,0xdc,0xe5,0xf8,0x09,0xae,0xe5,0x41,0x0a, + 0xe3,0x4d,0x94,0x70,0x4d,0x46,0x4e,0xe8,0x2f,0xd9, + 0xdf,0x90,0x11,0xe9,0x04,0x59,0x4f,0xaa,0xd2,0x93, + 0xa8,0x6a,0xe7,0x3d,0x39,0x91,0xd4,0x69,0x7f,0x0a, + 0xc2,0x53,0x1b,0x68,0x5e,0x03,0x7a,0x9a,0xa8,0x51, + 0x45,0x6f,0x20,0x78,0xe2,0x94,0x9f,0x5c,0xa3,0x6d, + 0x99,0x29,0xe2,0x9e,0x78,0x32,0x50,0x1c,0xd7,0x84, + 0xea,0x12,0x62,0xea,0x34,0xbe,0x68,0xfa,0x27,0x14, + 0xdd,0x15,0x10,0x52,0x9b,0x88,0x4e,0x96,0x48,0x84, + 0xc4,0xa7,0x04,0x2b,0x59,0x40,0x01,0x9a,0x51,0xce, + 0x02,0xe5,0x4e,0x1c,0x37,0x53,0xd8,0x57,0x18,0x1c, + 0x31,0x3f,0x5f,0x53,0x4b,0x70,0xea,0x86,0xa8,0xa6, + 0x5f,0x42,0x18,0xa9,0x68,0x1f,0x10,0xf3,0x18,0xdf, + 0x8c,0xba,0x35,0xb5,0xcd,0x46,0xee,0x55,0xa7,0x92, + 0xbc,0x7d,0xae,0xd3,0x85,0x18,0xd0,0x06,0x24,0x37, + 0x4d,0x22,0x6d,0x02,0xa7,0x6f,0xb2,0xb7,0x55,0x55, + 0x49,0x37,0x19,0x78,0x4d,0x97,0x6b,0xfd,0x05,0x8b, + 0x08,0x0b,0x3f,0x42,0xdb,0xab,0x92,0xa8,0x1c,0xa9, + 0x59,0xea,0x67,0x6d,0x5b,0x13,0x9d,0xf8,0x2c,0xf7, + 0x8b,0x53,0x49,0x66,0x31,0x5a,0x54,0xa4,0x27,0x78, + 0xb2,0x71,0xa9,0x12,0xad,0x8d,0x7b,0x3b,0x69,0x21, + 0x29,0x44,0x0a,0xd3,0x80,0xd1,0x2b,0x2c,0x58,0x34, + 0xd8,0xb6,0x96,0x3b,0x30,0xcc,0xa1,0x8f,0xa8,0xa0, + 0x73,0xe1,0x06,0x28,0x17,0x0f,0x4d,0x0d,0x94,0xbd, + 0x9a,0xa6,0x36,0xd2,0x5b,0xc6,0xe2,0xf5,0x05,0xae, + 0x45,0xb5,0xf4,0x70,0x3d,0x4f,0x6d,0x92,0x49,0x35, + 0x3e,0x09,0x33,0xf6,0x84,0x9d,0x4c,0x80,0xff,0xe6, + 0x9f,0x74,0x58,0x52,0x0c,0x12,0xbe,0x41,0x6c,0xe3, + 0x51,0x0c,0xeb,0x09,0x15,0x25,0x89,0x2e,0xa1,0x4d, + 0xd3,0x4e,0xda,0x72,0x4a,0xdc,0x92,0x60,0x7d,0x63, + 0x51,0x55,0xd3,0x0a,0xaf,0xa0,0xf4,0x5d,0x94,0x14, + 0x52,0x51,0xe2,0xda,0xce,0x6e,0xff,0x11,0x82,0x41, + 0xbe,0x89,0x9f,0xa8,0xea,0x6f,0x24,0x41,0x52,0xe1, + 0x4d,0xed,0xf1,0x34,0x89,0x47,0xbc,0x44,0xb2,0xb2, + 0x11,0x01,0x58,0xe2,0x6d,0x5a,0xf4,0x3b,0x21,0x77, + 0x69,0x22,0xdb,0xc5,0xb2,0x6e,0xf9,0x32,0x09,0xce, + 0x4e,0x45,0x98,0x8b,0xdf,0xd3,0xe4,0xb5,0x76,0x6e, + 0x3e,0xb1,0xca,0xd1,0xcf,0xfc,0xbe,0x97,0x72,0x03, + 0x0b,0x44,0x8a,0xff,0xb9,0xe6,0xa0,0xa7,0x51,0xa9, + 0x77,0x1e,0x02,0xea,0x35,0x3d,0xc8,0x34,0xeb,0x4f, + 0x59,0x1e,0x05,0x48,0x43,0x10,0x7e,0x64,0xa4,0x0e, + 0xd2,0x9e,0x32,0x4e,0x9d,0x42,0x30,0x0b,0xcc,0x1d, + 0xd0,0xc4,0xb5,0xb0,0x3e,0x2b,0x50,0xc1,0x8d,0xa3, + 0xa2,0xe4,0x5f,0x43,0x95,0x95,0x42,0x9a,0xcb,0x1e, + 0x7e,0xa9,0x29,0xa5,0xe3,0xf7,0xa8,0x4a,0xb1,0xa2, + 0x23,0x6e,0xfa,0xce,0x4d,0x2b,0x98,0xf6,0x85,0xed, + 0xf5,0x86,0x0a,0xfd,0xd1,0x6b,0x76,0x6d,0x59,0x83, + 0x7e,0xd5,0x90,0x94,0xdb,0xbf,0x77,0x1a,0x23,0xa6, + 0xba,0x7b,0xe3,0xf9,0xa4,0xc9,0xaa,0xe6,0x3a,0x7e, + 0x51,0xa2,0xe6,0x3c,0x9e,0x36,0x05,0x84,0x98,0x44, + 0x3e,0xfc,0xc6,0x26,0x84,0xb4,0x57,0x82,0x09,0xb1, + 0xba,0xcc,0x84,0x97,0x7e,0xa7,0x99,0x40,0x2b,0x49, + 0x44,0xc6,0xff,0xdd,0xbf,0xd7,0x93,0xaa,0x94,0x58, + 0xea,0xbe,0x01,0xbb,0x90,0x6e,0xc9,0x31,0xc6,0x3b, + 0xa7,0xed,0xe4,0xa6,0x30,0x8d,0xee,0x4f,0xa5,0xca, + 0xd7,0x24,0x67,0x8f,0xf7,0x2f,0x05,0x04,0x8e,0x49, + 0x13,0x47,0xcb,0x68,0x3e,0x5d,0x40,0xd2,0xad,0x50, + 0x4c,0x54,0x6f,0x2b,0x50,0x8b,0xd9,0xb4,0x56,0x6d, + 0x12,0x14,0x7c,0xee,0xc8,0x7f,0x6f,0x24,0xe3,0xbb, + 0xee,0x83,0xec,0xe3,0x02,0x9e,0xa4,0xdb,0x87,0xe5, + 0x12,0x76,0x2d,0x34,0x87,0x76,0x6f,0x29,0xf2,0xaa, + 0x5a,0x48,0xc3,0x1e,0xb3,0xda,0x48,0xf7,0xba,0xea, + 0x71,0x4f,0x8c,0x78,0x2d,0xca,0xb7,0x49,0x72,0x74, + 0xfd,0x38,0xc4,0x8d,0x12,0xc8,0x45,0x5b,0xef,0x91, + 0x6c,0x93,0x35,0x90,0xeb,0xa4,0xf4,0xb8,0xec,0x50, + 0x79,0x1a,0x5e,0x78,0x9b,0xa2,0xde,0x30,0xb7,0x55, + 0xf9,0x72,0x22,0x18,0x99,0xc3,0x37,0xea,0x24,0xfc, + 0x2d,0x81,0xed,0xba,0x7e,0x7c,0xa5,0x8a,0xd0,0x25, + 0x5d,0x58,0x74,0x88,0x86,0xa9,0xa8,0xc7,0x41,0xd2, + 0x17,0xfd,0x54,0x6d,0x07,0x8e,0x4d,0x91,0x53,0xae, + 0x81,0xf5,0xad,0x22,0xb2,0x41,0x22,0x6c,0x62,0x41, + 0x86,0xae,0x29,0xd3,0x9f,0xdc,0x7e,0xe9,0x5e,0x9c, + 0x56,0x91,0x26,0x7c,0x3a,0x1e,0x2b,0x6d,0x45,0x6c, + 0x0b,0xea,0x35,0xf7,0xbd,0xf9,0x49,0xf6,0xaf,0xeb, + 0x09,0xde,0xb9,0xe5,0x6f,0x38,0xae,0x4f,0xe0,0xd1, + 0x55,0x6a,0x0f,0x75,0x14,0x67,0xc9,0xbb,0x2b,0x7d, + 0xd6,0x8b,0x16,0xb4,0xe5,0xc0,0x4c,0x89,0x13,0x4d, + 0x80,0x51,0xc2,0x92,0x7c,0x98,0x88,0xc0,0x39,0x99, + 0xa6,0x86,0x22,0xe1,0xad,0x65,0xd4,0xc1,0x30,0x57, + 0xb1,0x3b,0x7e,0xa3,0x43,0x23,0x7a,0xc1,0xd2,0x13, + 0x57,0xf2,0xa1,0x73,0xde,0x5b,0x4a,0x56,0x1e,0xac, + 0x6a,0x6a,0x41,0x0e,0x4f,0x9a,0x3b,0x6f,0x6a,0xd2, + 0x81,0xa8,0x5d,0x93,0xe7,0x5f,0xe0,0x16,0x15,0xb5, + 0x36,0xf5,0x5e,0x53,0x12,0x94,0xb8,0x53,0x9a,0x04, + 0x6d,0x92,0x23,0xa2,0x67,0x24,0x01,0xd5,0x4d,0x67, + 0xc2,0xc5,0x56,0xd2,0x3a,0x73,0x7c,0xd2,0xc9,0xa6, + 0xc7,0x89,0x5d,0x12,0x5a,0xd2,0xa5,0x61,0x12,0x7f, + 0xad,0x27,0x00,0x26,0x76,0x46,0xde,0x1a,0x15,0xd9, + 0xd3,0x79,0xec,0x40,0x08,0x8d,0x49,0x13,0xda,0xab, + 0xad,0x78,0x2d,0x68,0x68,0xf8,0x60,0x92,0x5f,0x20, + 0x8d,0x3d,0x45,0xa8,0xaa,0xea,0x9f,0x31,0xf8,0x04, + 0x9f,0x3a,0x09,0x69,0x82,0xf8,0xf5,0x62,0x13,0x3a, + 0x93,0x12,0x07,0xd1,0x3b,0xb0,0x24,0x5b,0x82,0xc3, + 0xdc,0x42,0xa3,0x51,0xbc,0x50,0x29,0x3f,0x60,0xe2, + 0xa9,0xb7,0x18,0xc6,0xee,0x8b,0x7e,0x77,0x33,0x0d, + 0x16,0x7e,0xaf,0x16,0x0b,0xda,0x21,0x2f,0x3a,0x3e, + 0x4b,0x2e,0xd1,0x96,0xac,0x3c,0xb9,0x81,0x93,0xa5, + 0x02,0x25,0x46,0xc9,0x3a,0x65,0x0a,0x26,0x3a,0xfd, + 0x62,0x94,0xba,0xd7,0x5e,0x61,0x02,0xa9,0x22,0xf9, + 0xba,0x4f,0x1b,0x06,0xfe,0x48,0xe4,0x49,0xb8,0xe7, + 0x49,0xeb,0x3a,0xad,0x8b,0x60,0x41,0x83,0x09,0x7d, + 0x78,0x27,0xae,0x5d,0xf2,0x28,0x16,0x74,0x3f,0xa6, + 0x04,0x79,0xeb,0x9d,0xa7,0xf1,0xc2,0xb5,0xb1,0x1d, + 0x81,0x92,0x74,0x99,0xcc,0x14,0xd3,0xa1,0x02,0x83, + 0x3e,0x07,0x1c,0xa9,0xc7,0xb1,0x65,0x37,0x12,0x3f, + 0x28,0x5e,0xdf,0xca,0xc0,0xa7,0xd9,0x2e,0x3c,0x50, + 0x61,0xb5,0xca,0x30,0x31,0xb9,0x4e,0xce,0xa2,0x7f, + 0xc6,0x9d,0xf5,0x5d,0xdd,0xf6,0x3b,0x17,0x58,0x87, + 0xf4,0xcf,0x9e,0x44,0x04,0x25,0xfe,0x1e,0x8d,0xbd, + 0xaf,0xd7,0xab,0xbe,0xbe,0xbe,0x0e,0x1c,0x54,0x3f, + 0x63,0xdd,0xf4,0xfd,0x64,0xcd,0x41,0x07,0x65,0x5a, + 0x3b,0xad,0x98,0x3d,0x50,0xd4,0x9d,0xbe,0x1e,0xb7, + 0x09,0x93,0x9c,0xa3,0x27,0x15,0xd3,0xee,0x1e,0x89, + 0x3a,0xa1,0xb2,0x06,0xc3,0xe7,0x25,0x9f,0xc2,0x9f, + 0xaf,0xec,0xbf,0xeb,0xda,0x72,0x69,0x2f,0x7f,0xa3, + 0x9e,0x4e,0x5e,0xe1,0xe7,0xb3,0x55,0x5a,0x41,0x51, + 0xf4,0x64,0x61,0x91,0xde,0x8d,0xb3,0x50,0x49,0xdd, + 0x22,0x98,0x6e,0x7c,0x47,0x80,0xa6,0x2c,0xd1,0x65, + 0x74,0xe9,0x40,0x74,0x3d,0x5e,0x82,0x31,0x15,0x72, + 0x73,0xc2,0x84,0x84,0x0a,0x11,0x72,0x02,0x15,0xa3, + 0x45,0x17,0x92,0x4a,0xa7,0x64,0x8e,0x05,0xf7,0x5e, + 0xf0,0xa2,0x5c,0xc5,0xe5,0xbc,0xc7,0x70,0x12,0x6a, + 0x6a,0x9d,0x4d,0xde,0x6b,0x20,0x9d,0x8f,0xd0,0xe6, + 0x06,0x49,0x69,0x9b,0xa5,0x14,0xcd,0x19,0x24,0xee, + 0xcb,0x71,0x42,0x2e,0xf0,0xe1,0x72,0xf2,0xee,0x34, + 0x09,0x96,0x5a,0x89,0x8a,0x1a,0x84,0x8a,0xa2,0x42, + 0xa5,0x8f,0xad,0x27,0xf7,0xfc,0x42,0x1b,0xb7,0x36, + 0x3c,0x8b,0xc4,0x1b,0x02,0x6e,0x48,0xb5,0x51,0x75, + 0x3b,0x76,0x3b,0xf1,0x22,0xae,0x20,0x0a,0x48,0xbc, + 0x08,0x87,0x02,0x10,0xca,0x43,0x13,0x36,0x2a,0x75, + 0xd0,0x35,0x62,0x08,0x39,0xa4,0x3d,0x6b,0x90,0x6b, + 0x8b,0x14,0x51,0x41,0x13,0x24,0x3d,0xca,0xad,0x81, + 0x81,0x54,0x5b,0x4e,0x5b,0xeb,0xfe,0xdf,0xaf,0x5f, + 0xbf,0xde,0x0a,0xa5,0xc9,0x63,0xcc,0xc5,0xb6,0xd4, + 0x12,0x4b,0x05,0x16,0xe9,0x8e,0x91,0x78,0xa6,0x43, + 0x39,0xfb,0x74,0x58,0xda,0x4b,0xda,0x32,0x54,0xdf, + 0xc4,0x6e,0xd3,0xe1,0x38,0x21,0x7d,0xba,0x6a,0x92, + 0xee,0x70,0x92,0x01,0x14,0xdb,0x5c,0x1b,0xc6,0x15, + 0x6a,0x4e,0x8d,0xde,0x20,0xad,0xb8,0x1e,0x8d,0x00, + 0xe5,0xa8,0x60,0xae,0x6d,0xc0,0x1b,0xe9,0x09,0xe4, + 0xe5,0x9a,0x8a,0x1c,0xda,0xb7,0x4a,0x4d,0x70,0x67, + 0x24,0xfc,0xb9,0x25,0x4b,0x03,0x07,0xaa,0xa8,0xab, + 0xd4,0x7f,0x3f,0xf1,0x9e,0x34,0x7e,0x99,0xe7,0x51, + 0x1b,0x54,0xfb,0xfe,0xef,0xdf,0x2e,0x9b,0x77,0xa2, + 0x4a,0xd4,0x63,0x5d,0x64,0xc1,0xe3,0xb8,0x9c,0x56, + 0x35,0xc6,0x34,0x2f,0x66,0xba,0x06,0x2e,0xa3,0x24, + 0x2a,0x55,0x6d,0x8f,0x96,0xd8,0x06,0x39,0x6a,0x46, + 0x79,0x8f,0x6c,0x17,0xb2,0x78,0xd4,0x79,0x20,0xc2, + 0xe3,0xa4,0xb0,0x39,0xa0,0x32,0x94,0x80,0x3e,0x84, + 0xc8,0xae,0xe0,0xff,0x15,0x02,0xae,0x25,0xe5,0x05, + 0x0e,0x8a,0xf5,0x3a,0x83,0xeb,0x4a,0xe4,0xe4,0x34, + 0x09,0x83,0x2d,0x43,0xdd,0xc4,0xf2,0x0c,0xde,0x38, + 0x01,0xb4,0x56,0xc0,0xdf,0xa6,0x12,0x3f,0x4d,0x93, + 0xb9,0xd4,0x3a,0x26,0xde,0x99,0x0b,0x6c,0xa4,0x16, + 0xee,0xee,0xdf,0x49,0x15,0x90,0xd7,0x57,0xaa,0x04, + 0xdd,0x48,0xbe,0xfb,0xf9,0x61,0x1a,0x11,0x63,0x03, + 0xdd,0xc7,0x22,0xb1,0x8c,0x81,0x9e,0x60,0x7d,0x35, + 0xa8,0x4c,0xa6,0xcf,0xfd,0xf7,0x15,0x35,0xe9,0xef, + 0xdc,0x20,0x57,0x6f,0x55,0x3b,0xa0,0xe9,0x3f,0x9f, + 0x19,0x0c,0x2e,0xef,0x44,0xe0,0x50,0x95,0xdf,0x0d, + 0x43,0x9d,0xbf,0x5c,0x47,0xa7,0xc0,0x2f,0xd1,0x3a, + 0x76,0xdf,0x82,0x89,0x14,0x67,0x00,0x81,0x2a,0x27, + 0x58,0x99,0x0e,0x67,0x17,0x9b,0x34,0xb6,0x2e,0xce, + 0x9f,0xc7,0x33,0x50,0x33,0x55,0xf3,0x5c,0x9d,0x50, + 0xa0,0xf5,0xdc,0xea,0xf7,0xea,0xd0,0x7f,0x99,0x1e, + 0x3d,0xd3,0x39,0xa9,0xa8,0x93,0x49,0xae,0x8e,0x39, + 0x47,0x0e,0xb5,0x89,0x37,0xf7,0x46,0xef,0x23,0xed, + 0x41,0x48,0x1e,0x0f,0xa0,0xe0,0x27,0x75,0x08,0x12, + 0xd1,0xdf,0x21,0x71,0x66,0xff,0x1d,0x57,0xf8,0x4c, + 0xd3,0xa1,0xfd,0x73,0x5e,0x74,0x60,0x6e,0x26,0xb3, + 0x54,0x7a,0x9c,0x0e,0xa9,0x2d,0x4b,0xea,0x02,0x12, + 0xf5,0xc5,0x62,0x61,0xd1,0x51,0x3b,0xa1,0x5a,0xfd, + 0xda,0xe9,0x90,0x74,0xfa,0x04,0x69,0xd2,0xc0,0xb5, + 0x79,0x28,0x18,0xa7,0x16,0x41,0x97,0x69,0x9f,0x84, + 0xef,0x34,0x89,0x70,0x9e,0x63,0x84,0x8e,0x38,0xb7, + 0x74,0x82,0x3c,0x8d,0xf6,0xc7,0x23,0xab,0x76,0xbe, + 0x2d,0x0e,0xe1,0x92,0xcc,0xbd,0x36,0x6d,0xbc,0x09, + 0x0d,0x54,0xd4,0x8d,0x60,0x79,0x37,0x19,0xe8,0x92, + 0xbf,0xce,0xcf,0xba,0xc0,0x9b,0x8b,0xd6,0xa7,0xfb, + 0xee,0x7b,0xa2,0xce,0xb5,0x24,0x1d,0xe2,0x43,0x2d, + 0xd5,0xe4,0x41,0xe6,0xae,0xcd,0x24,0xb9,0xbd,0x02, + 0xaf,0x24,0xe1,0xb0,0xb1,0xb7,0x80,0xc9,0x8f,0x07, + 0x69,0x19,0x04,0x14,0x4b,0x38,0x4a,0x6f,0x3f,0xdf, + 0x78,0x56,0x93,0xbe,0xcd,0x45,0xc8,0xc8,0x94,0x7c, + 0x19,0x2e,0x91,0x22,0x99,0x31,0xbe,0xe8,0x1e,0x4d, + 0xc4,0xec,0xfe,0x1d,0xee,0xda,0x5a,0x7b,0xb1,0x26, + 0x3e,0x61,0x40,0x5d,0x62,0xec,0xd5,0x41,0x05,0x9a, + 0x14,0x02,0x4e,0xca,0x95,0x04,0x19,0x13,0x0f,0x0d, + 0xf8,0x47,0xe5,0x50,0x31,0xd2,0x81,0x49,0xbc,0x1f, + 0x23,0xeb,0x60,0x11,0x78,0xb7,0x5e,0x1c,0xf7,0x64, + 0xd2,0x31,0x52,0x03,0x5c,0x57,0x94,0x51,0xfc,0xbf, + 0xe3,0xc1,0xd4,0xae,0xa1,0xd6,0x0e,0xb4,0x67,0x1f, + 0xcf,0x34,0xf9,0xe5,0xa9,0xf8,0xac,0x13,0xf7,0x0d, + 0x48,0x62,0x74,0x5a,0x4f,0x14,0x08,0xda,0xc7,0xe4, + 0x95,0x47,0x54,0x04,0x45,0xb7,0x37,0x14,0x01,0x5b, + 0xa4,0xba,0xc5,0x90,0x3e,0xd4,0xe9,0xe7,0x24,0x25, + 0x64,0x57,0x15,0x4f,0x32,0xf9,0x53,0x45,0x47,0x30, + 0x20,0x05,0xf2,0x0e,0xb3,0x2d,0x09,0xcb,0x31,0xd8, + 0xaa,0x68,0xd7,0xa4,0x4b,0x32,0x8d,0x36,0xde,0xc8, + 0x88,0x4b,0x68,0x48,0x00,0xd0,0x25,0x04,0x00,0x1d, + 0x6b,0xbb,0xa9,0x08,0x75,0x70,0x9a,0x2d,0xd4,0x7a, + 0xbc,0x3c,0x7b,0xbf,0x80,0xf0,0x56,0x29,0x59,0x02, + 0xdf,0xa5,0x4a,0x09,0x8e,0x06,0xce,0x3e,0xf5,0x60, + 0xa6,0x29,0x7e,0x0e,0x9e,0x3f,0x7f,0xfe,0xd8,0x43, + 0x89,0x0e,0x49,0x22,0x22,0x12,0x9c,0x6d,0x34,0x76, + 0xec,0x88,0x3c,0x09,0x30,0xc2,0x81,0xf0,0xb8,0x5e, + 0xc7,0x8b,0x0a,0x63,0xa4,0x75,0x8b,0xd5,0x5d,0x60, + 0x2b,0xe2,0xa6,0xa3,0x68,0x0f,0x38,0xf2,0xb1,0xf3, + 0x26,0x4b,0xed,0xb3,0xc9,0x26,0x23,0xa0,0x2e,0xfa, + 0x5d,0xd5,0x5a,0x7f,0x57,0xe2,0x3d,0xd1,0xc1,0x67, + 0x26,0x06,0x1f,0xef,0x43,0xd1,0x3c,0x93,0xdc,0x3f, + 0x7c,0xb5,0x1c,0x77,0x52,0x13,0xd7,0x70,0xb8,0x58, + 0xe2,0xba,0xee,0x4d,0x8d,0x3f,0xa9,0x5d,0x23,0xef, + 0xd9,0x92,0xd7,0x5d,0x21,0xec,0x8a,0xad,0x7e,0x00, + 0x69,0x1c,0x4a,0xa2,0xb6,0x7a,0x60,0xa6,0xa2,0x17, + 0x78,0x1d,0x95,0xfc,0xab,0x34,0x8e,0xea,0x7e,0x4b, + 0xed,0x2a,0x67,0x81,0x14,0xc8,0xf8,0x31,0x3e,0x91, + 0xea,0xb1,0x3e,0x63,0x43,0x60,0x7e,0xfc,0xd9,0x46, + 0xd5,0x58,0x69,0x24,0x6e,0xf2,0x39,0x91,0xc6,0x13, + 0xc0,0xe1,0xa4,0x09,0x26,0x3e,0xad,0x4b,0xec,0x61, + 0xa2,0xf5,0x31,0x0e,0x3f,0x24,0xd3,0x16,0x7c,0x50, + 0xe3,0x6f,0x37,0x95,0xeb,0x62,0xfc,0x6b,0x43,0xd0, + 0xea,0x37,0xaf,0x13,0x3b,0x5b,0x2b,0x09,0xf5,0xca, + 0x4a,0xd3,0x33,0x8e,0x04,0xed,0xb8,0x2a,0x34,0x9e, + 0x4e,0x09,0x1a,0x21,0x4e,0x53,0x16,0xee,0x90,0x8d, + 0x84,0x94,0x5c,0xc1,0x49,0x79,0x42,0xc3,0x08,0xe6, + 0xa5,0xc4,0x2c,0x88,0xee,0xc5,0x00,0xeb,0x36,0x07, + 0x4d,0xa0,0xe8,0x86,0xbe,0x75,0x6a,0x26,0x2b,0x06, + 0x12,0xd1,0x9a,0x92,0xd7,0x0b,0x54,0x71,0x49,0xa5, + 0xb9,0x5f,0x13,0x25,0x5f,0xae,0xef,0x7d,0x81,0x9d, + 0x8b,0xf2,0xba,0xa0,0xed,0x5a,0x4e,0xe0,0x4d,0xf9, + 0x62,0x53,0x92,0x9f,0x02,0x90,0x83,0x6c,0x08,0xea, + 0x86,0x77,0xfc,0x33,0x9a,0x3d,0xf1,0xe3,0x42,0x2b, + 0xe2,0x81,0xd0,0xa4,0xa4,0x62,0xfb,0x4f,0x92,0xf2, + 0x77,0x01,0x36,0x4d,0xbc,0x35,0xfe,0x59,0x7d,0xb7, + 0x69,0x70,0xf2,0x2d,0x4d,0x74,0x39,0xeb,0x00,0xe7, + 0x4d,0xe6,0x44,0x36,0x45,0x0b,0xa7,0x92,0x46,0x59, + 0x9f,0x48,0x9d,0x90,0xe7,0x20,0x75,0x81,0xd6,0x2e, + 0xc6,0x5b,0x2d,0x4d,0xc7,0x55,0x40,0x1f,0x52,0xbc, + 0xc1,0x03,0x35,0xbc,0xa7,0x51,0xf3,0xc7,0x4d,0xec, + 0x9a,0x35,0x53,0xdb,0xd6,0xa7,0xee,0x41,0x17,0x77, + 0x37,0x45,0xe3,0x46,0x1d,0xda,0x15,0x39,0xc9,0xb0, + 0x99,0x90,0x34,0xa0,0x6e,0xd4,0xa6,0x35,0x35,0xb4, + 0x81,0x2a,0x71,0xde,0xdc,0xd8,0xbf,0x7b,0x3e,0x09, + 0x30,0x70,0x94,0x0a,0x87,0x3c,0x4d,0x00,0x08,0x7d, + 0x8e,0x14,0xcb,0x45,0x7c,0xab,0x30,0xdd,0xf8,0x5e, + 0xd8,0x68,0x76,0xed,0x14,0x17,0xa9,0x2a,0x75,0x0f, + 0xd5,0x55,0xc6,0x89,0x88,0x46,0x04,0x65,0xa7,0xc0, + 0xeb,0x50,0xa8,0x4d,0xeb,0xe6,0xfe,0x00,0x68,0x07, + 0x20,0x84,0x38,0x05,0x77,0x45,0x07,0x06,0xa5,0xca, + 0x4a,0x8e,0xdb,0x6a,0x94,0x98,0xa6,0xe7,0x12,0xf1, + 0x8d,0x5a,0x02,0x83,0xf4,0xba,0xe3,0x25,0xe0,0xf8, + 0x29,0x3d,0x0b,0x77,0x3f,0x97,0xd1,0x2f,0x72,0xef, + 0xdb,0xc9,0xb2,0xeb,0xda,0x0c,0x48,0x4c,0xd2,0x14, + 0x1a,0x15,0x84,0x13,0x51,0x1d,0x0e,0x26,0x32,0x7a, + 0x7d,0x5c,0x13,0x8d,0x7a,0xdf,0xda,0x38,0x0e,0x11, + 0x32,0x07,0xe7,0x47,0x12,0xf0,0x6a,0x4d,0x90,0x2a, + 0x2a,0x40,0x53,0x2d,0xa2,0xb1,0x68,0x75,0x5c,0x0b, + 0x3b,0x07,0xe4,0xd7,0x24,0x21,0xb5,0x34,0xb5,0x46, + 0xe3,0xb6,0x92,0xc4,0x3c,0x12,0x13,0xc3,0x8f,0xa1, + 0xd6,0x74,0x91,0x0c,0x03,0x29,0x6c,0xbb,0x76,0x0d, + 0x5d,0xdf,0xc5,0x82,0x7a,0x6f,0xa8,0x54,0xf2,0x68, + 0xa2,0x83,0xbe,0x55,0xf1,0x89,0x40,0x5d,0x41,0xb3, + 0xcd,0xee,0xc7,0xfb,0x00,0x82,0x91,0xe7,0xea,0xeb, + 0x4b,0x63,0x76,0xe2,0xfe,0x24,0x0f,0x48,0x92,0x66, + 0x11,0x5e,0x8c,0x3d,0x88,0xa1,0x58,0xac,0x44,0xab, + 0x20,0xe4,0x99,0xa4,0x39,0xdc,0xb5,0xea,0x64,0x95, + 0xd9,0x27,0xee,0x70,0x67,0xe1,0xbe,0xe7,0xb8,0x3b, + 0xc5,0x51,0x94,0x80,0x70,0xeb,0xd6,0xe9,0xe8,0x38, + 0x39,0x19,0x25,0xeb,0x7f,0x5a,0xf4,0xf4,0xf5,0x90, + 0xbc,0xe3,0x02,0x07,0xee,0x81,0xf0,0x2b,0x10,0x63, + 0x84,0x3d,0x1f,0x96,0x58,0x6f,0x2d,0x30,0x55,0x55, + 0x74,0xed,0x11,0x5d,0x28,0x54,0xdd,0x3b,0xf8,0x71, + 0xe2,0x9a,0x2c,0x8c,0x25,0x1f,0x15,0x80,0xd3,0x1c, + 0x48,0xd5,0x12,0xb5,0xa3,0x36,0x7c,0x9c,0xce,0x52, + 0x4f,0x1c,0x09,0xd7,0x23,0x27,0x74,0xcb,0x4d,0x89, + 0xa5,0xa4,0x4e,0xc5,0x0d,0x21,0xd1,0x7b,0x5b,0x4b, + 0x89,0xe0,0x4c,0x55,0x1e,0xa9,0x68,0x83,0x67,0x4f, + 0xfa,0xbe,0x87,0x09,0xa0,0x0b,0x3c,0x7a,0xd0,0x80, + 0x09,0x69,0x85,0x2a,0xef,0x91,0xb4,0x2b,0xef,0xc0, + 0xd8,0x3f,0xd4,0x15,0x44,0xd0,0x48,0x3c,0xae,0x1f, + 0x6c,0xc9,0xc6,0xe4,0x32,0x04,0x6d,0xd7,0x8b,0x1e, + 0xe4,0xef,0xd1,0x83,0xab,0x7f,0xa6,0x98,0x39,0x56, + 0x68,0x1d,0xd8,0x76,0x74,0x4f,0x12,0xae,0xbd,0x5a, + 0xf5,0xca,0xeb,0x8b,0x0e,0x5c,0x42,0xa1,0xa6,0xcf, + 0x0a,0x15,0xe2,0xaa,0x38,0x52,0x7e,0x52,0x47,0x14, + 0x53,0xf2,0x26,0x36,0x2f,0x0f,0x6f,0xb6,0x84,0xc0, + 0xa9,0xb8,0xa2,0x90,0x69,0x35,0x99,0xa8,0x41,0x38, + 0xb6,0x40,0x9b,0xe9,0xcd,0x30,0x97,0x10,0x59,0xa7, + 0x97,0x36,0x4d,0x54,0xba,0xb8,0x9a,0x90,0x0d,0x87, + 0x1e,0xbb,0xf8,0x68,0xd6,0x48,0xf5,0xe7,0xd1,0xf9, + 0x77,0xce,0x8a,0xc7,0xd9,0x68,0xb8,0x38,0x47,0x7b, + 0x61,0x30,0x6b,0x5e,0x71,0x60,0x1c,0x47,0xe8,0xbb, + 0x7d,0x55,0xc4,0x0b,0x25,0xe4,0x9b,0xd0,0x13,0xed, + 0x42,0x68,0x22,0x49,0x82,0x91,0x4e,0x31,0x3f,0x69, + 0xfb,0x91,0xe9,0x73,0xb2,0xfc,0x70,0x42,0xb4,0x66, + 0xff,0x15,0xf1,0x77,0xa6,0xe2,0x6a,0x42,0xc9,0x3a, + 0x0a,0x64,0xd6,0x6d,0x19,0xc9,0x83,0x07,0x02,0xf5, + 0x5a,0x70,0x4e,0x46,0x04,0x84,0x5a,0x27,0xce,0x89, + 0x7c,0xf2,0xfd,0x4a,0x19,0x7d,0x72,0x9c,0x27,0xde, + 0x80,0x9a,0xd3,0x4d,0x5c,0x21,0x81,0xd4,0x2d,0x61, + 0xd0,0x1d,0xca,0x09,0x7a,0xa4,0x4a,0xda,0x1d,0x20, + 0xe9,0xe0,0xf6,0xb1,0xa3,0x90,0x9b,0x43,0x55,0xc4, + 0xc4,0xf1,0xb8,0x58,0xff,0xa8,0x86,0x03,0x02,0x61, + 0x6d,0x97,0xcc,0x10,0x8c,0x4f,0x6b,0x06,0x4c,0x2a, + 0x49,0xd9,0x17,0xf3,0x86,0x30,0xc2,0x5c,0x43,0x90, + 0x4c,0x2d,0x31,0xeb,0x27,0x36,0x29,0xf7,0xa6,0xaa, + 0x3b,0xed,0x19,0xe5,0x93,0x4c,0xe3,0xae,0x46,0xa5, + 0xbb,0x88,0x8b,0x32,0x7d,0x16,0x25,0x29,0x64,0x0b, + 0x70,0x19,0x72,0x73,0xff,0xdf,0x3d,0xba,0x2f,0xd7, + 0x54,0xda,0x6a,0x75,0xfc,0x3a,0xe5,0xf5,0x51,0x41, + 0x15,0xda,0xf4,0x56,0xc1,0x79,0x91,0xa4,0x95,0x13, + 0x66,0x75,0xa2,0x8e,0xd4,0xb6,0xd9,0xbc,0x7b,0x58, + 0xbf,0x15,0x10,0xe1,0xc9,0x30,0xb7,0x5c,0x32,0xea, + 0x5a,0x13,0x26,0x49,0x7e,0x8b,0x8b,0x69,0x14,0x5a, + 0x51,0xdb,0x24,0x5f,0xb1,0x30,0x3f,0x26,0x22,0x72, + 0xa5,0xb5,0x98,0xe4,0x44,0x9c,0xe9,0xb4,0x6b,0x81, + 0xa5,0x38,0x4e,0xed,0x1b,0x47,0x24,0x06,0xc3,0x5c, + 0x54,0xaa,0x0e,0xf6,0x10,0x35,0x71,0x6e,0x52,0x32, + 0xd1,0x15,0xfb,0x93,0xc8,0xe2,0x80,0xf8,0x22,0x32, + 0xac,0x1c,0x38,0xb2,0xe7,0xe8,0xa8,0xb6,0x31,0x8a, + 0xb6,0x49,0xf8,0x34,0xfd,0x4d,0x1e,0x7a,0x2e,0x69, + 0xfc,0xa1,0xf4,0xb8,0x1e,0x67,0xf2,0x13,0x71,0x13, + 0x41,0x60,0xfa,0x78,0x4d,0x28,0xc4,0x74,0xd0,0x0d, + 0xed,0x9c,0xbf,0x22,0x73,0x0d,0xd5,0x65,0xd2,0x95, + 0x19,0xdb,0x4c,0x1a,0x24,0x06,0xf8,0xdb,0x8e,0x1f, + 0x27,0xfd,0x0f,0x47,0x12,0x26,0x03,0x47,0x72,0xef, + 0x4d,0xc4,0xc4,0x41,0x19,0x1a,0x5b,0x59,0x6e,0xa1, + 0xc1,0x3a,0xa2,0xa9,0xb6,0x0a,0xe8,0x5a,0xec,0x2f, + 0xd3,0xb4,0x17,0x40,0xba,0xe9,0xb0,0x2f,0x7a,0xe7, + 0xa9,0x1a,0x22,0x55,0x5f,0xf3,0x1c,0x6c,0xe2,0xa3, + 0x7c,0x0c,0x45,0x01,0xc2,0x78,0x3b,0x5a,0x15,0xe8, + 0xde,0x14,0x45,0xf6,0x72,0xd0,0x7f,0x6a,0xa9,0x0d, + 0xc6,0xa3,0x8f,0xc4,0xe5,0x7a,0x27,0x27,0x4f,0xad, + 0xd6,0x07,0x7c,0x6d,0x88,0xa2,0x3f,0x09,0x91,0xf9, + 0x2e,0x4b,0x76,0x4d,0xed,0x22,0x4a,0xc0,0x95,0xfc, + 0x9c,0x90,0xa4,0x06,0xbb,0x3f,0x92,0x5a,0x8d,0x37, + 0xc6,0x55,0x3e,0x22,0xdf,0x6e,0x42,0x68,0xd3,0xde, + 0xd5,0xf5,0x18,0xe2,0x66,0x39,0x01,0xba,0xae,0xda, + 0x0f,0xb1,0x3f,0x92,0x87,0xf5,0xdd,0xb9,0xa2,0xc2, + 0x59,0x0c,0xb9,0xc3,0x35,0x59,0x4e,0x50,0x8b,0x46, + 0x5a,0x96,0xc8,0x4f,0xd2,0x29,0xd0,0x4d,0x4c,0x5a, + 0x0c,0x05,0x8c,0x6d,0x3c,0xa7,0x77,0xe6,0x3e,0xdb, + 0x90,0x8f,0x3f,0xe2,0xd1,0x4d,0xd3,0xb2,0x80,0x7a, + 0x16,0x25,0xef,0x43,0x42,0xa5,0xeb,0xee,0x72,0x93, + 0x94,0xfa,0x3f,0xa3,0x03,0x17,0x0d,0x51,0x93,0x6f, + 0x18,0x70,0x81,0x1f,0xef,0xd0,0x15,0xa5,0xaf,0x74, + 0xa8,0x6b,0x7b,0x83,0x5c,0xc5,0x27,0x37,0x56,0x57, + 0xb5,0xa5,0x07,0x79,0x43,0x5b,0x29,0x89,0x82,0xaa, + 0x76,0x84,0x2d,0xa9,0x1a,0xa0,0x8d,0x0f,0x63,0x90, + 0xb5,0xe5,0x42,0xa4,0x8a,0xce,0x18,0xb5,0x16,0xc1, + 0xa6,0x5a,0x19,0xc0,0xe1,0x54,0xa9,0x82,0xd7,0x67, + 0xd0,0x83,0x48,0x73,0x50,0x77,0x87,0x0a,0x4e,0x3c, + 0x00,0xa9,0xb4,0x28,0x41,0x9e,0xc4,0x35,0x13,0x8c, + 0xde,0x74,0xa2,0x0a,0xec,0x33,0x2a,0xa9,0x5b,0xd3, + 0x7a,0x74,0x5a,0x38,0xf2,0x7b,0x34,0x79,0xf2,0xe0, + 0x5e,0xb8,0x69,0x3e,0x97,0xa8,0x98,0xe7,0x16,0xb5, + 0x7c,0x74,0x4a,0x69,0xd2,0xc0,0x51,0xeb,0x8a,0x2b, + 0x68,0x2a,0x6d,0x7a,0xfa,0xdd,0xb7,0x4b,0xc6,0xda, + 0xf1,0x80,0x48,0x0e,0xd2,0xcb,0xa4,0x04,0xd7,0xba, + 0x49,0x40,0x7e,0xda,0x4d,0x34,0xba,0x9c,0x84,0x13, + 0x5d,0x2b,0x49,0xa5,0x0b,0xe0,0xbd,0x75,0x3e,0xc8, + 0xe3,0x90,0x06,0x3e,0xc2,0x5b,0xa2,0xa5,0x07,0xc5, + 0xf7,0xa4,0x62,0x11,0x32,0x3e,0x4d,0x17,0x91,0x07, + 0x9e,0x3b,0xf0,0x68,0xa2,0xea,0x13,0x6e,0x93,0xfb, + 0x2e,0xa2,0x17,0xb8,0x96,0x9c,0xa1,0x4b,0x54,0xfa, + 0x0c,0x49,0x14,0x90,0x83,0x0a,0x72,0x13,0x6e,0x90, + 0x82,0xec,0x29,0x2a,0x75,0x25,0x16,0x68,0x78,0x4d, + 0x07,0xbc,0x3b,0x67,0x48,0x34,0x36,0xc9,0x95,0x84, + 0x18,0x8d,0xbc,0x5d,0x3d,0x3b,0xa1,0xd0,0xa9,0xc1, + 0x8e,0xe6,0x4a,0x6d,0x32,0xc7,0xc1,0x9a,0x0c,0x6f, + 0x03,0xff,0x32,0xf2,0x8d,0x29,0x9f,0xa0,0x21,0x86, + 0xeb,0xba,0xfe,0xb1,0xc2,0x08,0x07,0xc3,0x63,0xd3, + 0x2f,0x12,0x9c,0x68,0xb1,0x9b,0x14,0x9e,0x81,0x27, + 0x33,0xde,0x94,0x13,0x51,0x74,0x55,0xbd,0x43,0x49, + 0x06,0x51,0xc2,0x4a,0x62,0x8e,0xa9,0x25,0x36,0xc0, + 0xef,0x65,0x2a,0x80,0x9a,0xaa,0x4e,0xad,0x92,0x1c, + 0x12,0x67,0x78,0x3c,0x95,0xf8,0x1c,0x8e,0xbc,0x18, + 0xee,0x71,0xaa,0x00,0x2c,0xda,0xe4,0x50,0xc6,0xa9, + 0xdf,0x0e,0xed,0xbd,0xc7,0x9f,0x4f,0x6b,0x43,0x91, + 0xc7,0x89,0x5f,0xe4,0x36,0x5c,0x90,0xd9,0x8f,0x82, + 0x94,0xca,0x17,0x9a,0xc8,0xe0,0xee,0xbb,0x26,0x73, + 0xe2,0x70,0xdf,0x45,0x02,0x9b,0x04,0x21,0x9b,0xd6, + 0x55,0x1c,0x06,0x08,0x0a,0xc8,0xf6,0x7e,0x12,0xb9, + 0xd1,0xc5,0x99,0x2d,0xd9,0x12,0xe2,0x44,0xc9,0x67, + 0xcc,0xc2,0x66,0x06,0xed,0xbd,0xdf,0xb1,0xda,0x37, + 0x38,0x11,0x42,0xd9,0x43,0x24,0x18,0xa8,0xb1,0xef, + 0x0c,0x08,0xdc,0x8f,0x90,0x20,0x1c,0x82,0x56,0x68, + 0xcf,0x7d,0x07,0xb4,0xe6,0x4f,0x68,0xad,0x9e,0x50, + 0x14,0x1c,0x78,0xe6,0xc7,0x0c,0x86,0xfc,0xdc,0x43, + 0x4a,0x18,0xa6,0xf8,0x72,0x8b,0x0a,0xc2,0xfe,0x3e, + 0x83,0xc8,0xe0,0xb5,0x68,0x4f,0x1f,0x28,0x4c,0x1d, + 0xc2,0x74,0xdc,0x7b,0x9a,0x06,0x15,0x9c,0xb8,0x5f, + 0xe2,0x0b,0x82,0xa8,0xe5,0x43,0x64,0x90,0xf6,0xb3, + 0xbb,0x2f,0x67,0x49,0xd1,0x62,0xf4,0x99,0x6c,0x8e, + 0xfa,0x1a,0xe8,0x23,0xee,0xa4,0x0f,0x37,0x10,0xfc, + 0x71,0x2f,0xa7,0x96,0xb6,0x7e,0x47,0x27,0x57,0x6b, + 0x3c,0xf8,0xf5,0xeb,0x97,0x6d,0x6b,0xfe,0x70,0x80, + 0xa6,0xe9,0x8e,0x54,0x31,0x51,0xf0,0x58,0xa2,0x3c, + 0x63,0x85,0xe6,0xaa,0x47,0x53,0x9d,0xd4,0xc6,0xa3, + 0x86,0xa6,0x7b,0x92,0xab,0x76,0x9a,0xc2,0x4a,0x8b, + 0xdc,0xb5,0x9e,0x26,0xa2,0xf7,0xa6,0x52,0x48,0x59, + 0x36,0xb4,0xda,0xe2,0x78,0x3b,0x25,0x4f,0x8a,0x4a, + 0x51,0xe2,0x92,0x48,0xde,0x6a,0x86,0xeb,0x46,0x86, + 0x03,0x6f,0xc4,0xa1,0x47,0xe5,0x26,0x22,0xb4,0x3a, + 0x70,0xbd,0xe7,0xbe,0xee,0xda,0xef,0x56,0x93,0xe0, + 0x7f,0x40,0xf4,0x44,0x1a,0xa4,0x64,0x51,0x0f,0x10, + 0xda,0xc0,0x2e,0xc9,0x10,0x33,0x4e,0x44,0x3d,0x6f, + 0x82,0xa8,0xd3,0xe3,0x72,0x28,0x58,0x5a,0x37,0x5d, + 0xf1,0xba,0x11,0xed,0xdf,0x38,0x31,0x01,0x5e,0xc6, + 0x9e,0x7b,0x72,0xb3,0x4e,0x2d,0xf3,0xcd,0xc1,0x48, + 0x87,0xdc,0x42,0x47,0xec,0xcd,0xe0,0x14,0x0a,0x9e, + 0x8b,0x8c,0x3f,0x5d,0xeb,0x30,0x25,0x51,0xfa,0x5d, + 0x8a,0x0a,0x39,0x5b,0x14,0x32,0xb4,0x74,0x48,0x09, + 0x91,0xea,0xa9,0x8d,0x48,0x6d,0xad,0x2b,0x4c,0x91, + 0x06,0xae,0x4e,0x22,0x8c,0x57,0x5f,0x07,0x6e,0xac, + 0xda,0xb4,0x72,0xd7,0x0a,0xf6,0xce,0xec,0x34,0x24, + 0x2c,0x56,0x40,0x97,0x26,0xe6,0x48,0x3f,0x6e,0xe8, + 0x26,0x44,0x49,0x17,0x25,0x44,0x07,0x24,0xf9,0x51, + 0xe4,0x10,0xf0,0x10,0xce,0x81,0x9a,0x40,0x0a,0x42, + 0x76,0x06,0xb2,0xb3,0x5d,0x5f,0x49,0xa2,0x60,0xdb, + 0x12,0x9c,0xc8,0xcf,0x2a,0xbe,0xeb,0x12,0x3d,0xa7, + 0xfd,0xd4,0x85,0x8e,0xef,0x7f,0x77,0xb1,0xf5,0xa5, + 0x2f,0x99,0x1c,0xb8,0xdd,0x02,0x48,0x9c,0x07,0x7d, + 0x79,0xae,0xe7,0xec,0x36,0x33,0xb1,0xda,0xe9,0xc0, + 0x08,0xbc,0xa1,0xda,0xb4,0xc3,0x54,0x53,0xc8,0x6d, + 0x84,0x34,0x06,0xee,0x5a,0x4f,0x03,0xcb,0xbf,0x88, + 0x07,0x61,0x78,0x06,0x45,0xae,0xee,0xa4,0x40,0x9a, + 0x20,0xdc,0xf4,0x6c,0xb5,0x0d,0x24,0xb2,0xf9,0x8f, + 0xa0,0xa9,0xe3,0x9d,0xfd,0xfb,0x64,0x83,0xac,0xa6, + 0x41,0x52,0xbb,0x4d,0xc9,0xec,0xea,0x6f,0x95,0xda, + 0xdd,0xe1,0xdd,0x5a,0x84,0x44,0x61,0x6e,0x40,0x62, + 0xd2,0xe8,0xe9,0xc3,0xb1,0xdd,0xa0,0x6f,0x15,0x14, + 0x51,0x1f,0xad,0x2b,0x4a,0x98,0xf5,0x3b,0x2f,0x43, + 0x4e,0x4c,0xc9,0x41,0x77,0x74,0xd7,0x7b,0xa6,0x11, + 0x5a,0x87,0x24,0xa6,0x75,0xbf,0xa9,0x88,0x93,0x8a, + 0xf5,0xa4,0xb9,0x32,0xf1,0x21,0x82,0xf8,0xdb,0x38, + 0xea,0x4f,0x48,0x9c,0xe3,0x5f,0x39,0x01,0xc4,0xfe, + 0x98,0xa1,0x8a,0x7e,0x20,0x9e,0x49,0x9d,0xb9,0x13, + 0x58,0xc1,0xfa,0xa1,0x02,0x2a,0x56,0x21,0x01,0x45, + 0x4e,0x98,0xda,0xca,0x90,0x9b,0x3d,0xa1,0xb7,0x66, + 0xbd,0x39,0x94,0x80,0x34,0x72,0xa2,0x3b,0xb9,0x26, + 0x35,0x8e,0x1f,0x94,0xda,0xdb,0x13,0x3f,0x27,0x38, + 0xac,0x3f,0x8a,0xdb,0xc1,0xb1,0xc0,0x76,0x27,0x36, + 0x68,0x7f,0xd0,0xd9,0x89,0xd3,0x6e,0x6e,0xb4,0x3f, + 0xd9,0x4b,0x91,0x00,0x25,0xed,0xf9,0xdb,0xa9,0xa0, + 0xff,0xae,0xe3,0x1e,0xea,0x82,0x70,0x5e,0x6e,0x13, + 0xb7,0x34,0x01,0x18,0xce,0x81,0xc0,0x14,0x85,0xa8, + 0x56,0xff,0x4a,0x2d,0x80,0x6d,0x46,0x98,0x88,0xa4, + 0x6a,0x58,0xaa,0x07,0x3c,0x05,0xcc,0xc1,0xc9,0xf6, + 0xb1,0xd9,0x9c,0x04,0xfd,0x07,0x3c,0x9f,0xa8,0x49, + 0x90,0x50,0x1b,0x72,0x0c,0x27,0x9e,0x06,0x69,0xf9, + 0x38,0x98,0x95,0x92,0xa8,0xe4,0xad,0x96,0x6c,0x37, + 0x12,0x69,0x90,0x10,0x21,0x5d,0xb4,0x4a,0x84,0x6c, + 0xe6,0x95,0xab,0x6a,0xd1,0x05,0xa9,0x0d,0x2c,0x1a, + 0x90,0x14,0xd4,0xed,0x20,0x44,0xec,0xeb,0xeb,0xab, + 0xba,0xab,0xf9,0xd4,0x92,0xd3,0x04,0x8f,0x04,0xc9, + 0x2e,0x99,0x30,0x4b,0x2d,0xbf,0xc4,0x09,0x9a,0xcc, + 0x12,0xd5,0x9c,0xd5,0x91,0x88,0x07,0x61,0xd3,0x9a, + 0xaa,0xc5,0xa9,0x75,0x4c,0x41,0xae,0x27,0x55,0xd7, + 0xbb,0xf9,0xe8,0x83,0xc0,0x4c,0x53,0x61,0xd7,0xbb, + 0xda,0xf5,0xc3,0x1a,0x23,0x55,0xdd,0x9b,0x36,0xa1, + 0x93,0xe7,0xdf,0x7c,0x6e,0xb0,0x14,0xd9,0x20,0xe7, + 0x45,0x88,0x93,0x1c,0x54,0x76,0x6c,0x58,0x8c,0x44, + 0x53,0x7b,0xa0,0x52,0xeb,0x9d,0x90,0x0a,0x42,0xab, + 0x92,0x1d,0x44,0x42,0xdd,0x68,0xd2,0x8c,0x3e,0xeb, + 0x5a,0xca,0x37,0x0c,0xc9,0x2d,0x0a,0xec,0x6d,0x06, + 0x40,0x26,0xa4,0x96,0xf6,0x93,0x2b,0xc6,0x92,0x89, + 0xad,0xbb,0x9e,0xfe,0x7c,0x3a,0x32,0xeb,0xe4,0x66, + 0x14,0xb9,0x55,0xf1,0xce,0x04,0x4c,0x84,0xbd,0x6b, + 0x93,0x36,0xd7,0x65,0xa1,0x73,0xcc,0x25,0x82,0xd3, + 0x99,0x05,0x93,0xd0,0x23,0x15,0x84,0x12,0x4d,0xa7, + 0x32,0x9d,0x8a,0xa1,0x57,0x82,0xa4,0xb4,0x9a,0x31, + 0xd9,0xdb,0xaa,0xda,0x24,0x7f,0x9c,0x4f,0x4c,0x0d, + 0x29,0x60,0x43,0x90,0xb2,0xc4,0x2d,0x98,0x48,0x59, + 0x71,0x1d,0x9c,0xfa,0xf4,0xfd,0x45,0x0e,0xa6,0x23, + 0xe2,0xf1,0xc6,0xa3,0x85,0xb8,0x3a,0x17,0x90,0x71, + 0x93,0x72,0x37,0xa9,0x59,0x2b,0xa3,0xde,0x40,0x88, + 0x95,0x12,0x3f,0xba,0x7e,0x27,0x34,0xe6,0xd4,0x99, + 0x41,0x21,0xba,0xa6,0xe9,0x3c,0xad,0x6a,0xc9,0xde, + 0x84,0xa4,0xd7,0x13,0xba,0xb3,0x19,0x27,0xa7,0xb6, + 0x2d,0xfd,0xae,0xab,0x98,0x83,0x1e,0x4e,0xd1,0xb3, + 0x21,0x24,0x31,0xf1,0x71,0x0c,0x34,0x8c,0xe8,0x95, + 0x9b,0xd6,0x20,0xf8,0xb9,0xa3,0x28,0xaa,0x57,0xa4, + 0x31,0x82,0x10,0x4e,0x12,0x59,0x4d,0xc9,0x8b,0x24, + 0xbd,0xce,0x5b,0xec,0xf1,0xf9,0xc9,0x1a,0xe1,0xfe, + 0xb9,0x3f,0x7f,0xfe,0xbc,0x89,0x53,0x4e,0xfc,0x29, + 0x22,0xca,0x53,0x8c,0x54,0x02,0x7b,0x6a,0x09,0x76, + 0xe4,0x23,0x24,0x56,0x35,0xb4,0x2e,0x2a,0x4d,0x94, + 0x12,0x0f,0x70,0xd3,0xbe,0x70,0x48,0x2a,0xfc,0xbd, + 0x1d,0x69,0x77,0x31,0xd8,0xc5,0x4e,0x77,0x98,0x26, + 0xa4,0x42,0xd1,0x56,0x29,0x70,0x4a,0x0d,0x8e,0x43, + 0xc1,0x5e,0x0b,0xc2,0xfb,0xe3,0x67,0xb7,0x09,0xb9, + 0x6b,0x17,0xba,0x33,0x2a,0x0d,0xf7,0x90,0xa4,0x48, + 0x47,0xc8,0x07,0xc2,0xf4,0x23,0x59,0x4b,0x52,0x13, + 0x6e,0xad,0xa9,0x0f,0xa8,0x5b,0x4f,0x2e,0xe9,0x74, + 0xc3,0x31,0x49,0xa9,0x3d,0x81,0x15,0x54,0x28,0x38, + 0xe4,0x91,0x10,0xde,0x57,0x82,0x4c,0x75,0xca,0x4a, + 0x59,0xf7,0x6e,0x61,0x3a,0x61,0x39,0x1a,0x55,0x4e, + 0x92,0xe1,0xe9,0xd0,0x51,0x83,0xcd,0x54,0xc5,0x6a, + 0xcb,0x64,0x09,0xcb,0x57,0xea,0xbf,0x2a,0x07,0xc3, + 0xc0,0x83,0x95,0xaa,0x21,0x37,0x45,0x34,0x99,0xb6, + 0xb9,0xef,0x09,0x55,0x4f,0x51,0xb5,0x92,0x46,0xd3, + 0x7b,0xb2,0xba,0x69,0x4f,0x0d,0x3c,0x02,0x44,0x09, + 0x13,0x4f,0xc1,0x8c,0x34,0x47,0x9b,0x0e,0x0d,0x16, + 0x43,0x20,0x2f,0x37,0x4e,0xe9,0x9e,0x03,0xb4,0x8a, + 0xe8,0x79,0x56,0x4a,0x68,0xb5,0x0d,0x07,0xc2,0x7f, + 0xe3,0xa4,0x58,0x3b,0x10,0x88,0x53,0x65,0xa7,0xd4, + 0x7a,0x62,0x45,0x95,0x6e,0x98,0xea,0xa0,0x31,0x77, + 0x9b,0x6c,0xd8,0x20,0x03,0x49,0x41,0x5f,0x03,0x0b, + 0x44,0xd6,0x26,0x34,0xd0,0x06,0x2a,0x87,0x8e,0x25, + 0x6f,0x32,0x13,0x20,0xbb,0x11,0x6b,0x7c,0x5e,0x2e, + 0x11,0x1a,0x0e,0x78,0x4c,0x44,0xa9,0x0d,0x6b,0xda, + 0x83,0xf5,0xf5,0xf5,0x55,0xc1,0x8f,0xb1,0x36,0x43, + 0x14,0x84,0xee,0x03,0x8a,0x51,0x24,0xf1,0xe0,0xd4, + 0x7a,0xb5,0xe5,0x45,0x6d,0x8c,0x1e,0xb7,0x82,0xcc, + 0x04,0x5e,0xab,0xac,0x35,0x8b,0xb0,0xde,0x05,0x1d, + 0x4d,0xc9,0xba,0xc9,0x27,0xa5,0x49,0xf4,0xf5,0x4c, + 0x42,0xa0,0x01,0xe5,0x45,0x5b,0x1c,0x77,0xbf,0xa0, + 0x06,0x7e,0x4d,0x03,0x20,0x61,0x10,0xa9,0xa8,0x30, + 0x4f,0x13,0xde,0x43,0xe7,0x82,0x12,0x43,0x44,0x81, + 0x20,0x91,0x29,0x88,0x17,0x95,0x78,0xbc,0xfa,0x8e, + 0xd2,0x54,0x2a,0x5d,0xef,0x6f,0x9a,0x52,0x99,0x88, + 0xbb,0x46,0xe1,0xb9,0xa8,0x1a,0xdd,0x54,0x53,0x03, + 0xfc,0x59,0x5b,0xbe,0x11,0x5d,0xe3,0xfd,0x19,0x8e, + 0x8b,0x94,0x50,0x29,0xe5,0x25,0x6d,0xdb,0x05,0x0e, + 0xbd,0xd1,0x9f,0xbf,0x03,0xd8,0x72,0xb1,0x15,0xf5, + 0xc2,0x5d,0x15,0x6d,0xde,0x41,0x39,0xc7,0xf9,0x9e, + 0xf4,0xe8,0x06,0x4e,0xbc,0x8d,0x74,0x5d,0x01,0x9d, + 0x2a,0xb8,0xc7,0x22,0xbe,0x85,0xa2,0x10,0x9d,0x9b, + 0x34,0x99,0xfb,0xd1,0xc8,0x6d,0x4a,0xd6,0xdc,0x74, + 0xc8,0x50,0x1d,0xd5,0x86,0x70,0x1e,0x92,0xef,0xf8, + 0xf7,0xce,0x04,0xd2,0xad,0x71,0x31,0x1c,0xac,0xc9, + 0xa4,0x90,0x92,0xb1,0x7e,0x4d,0x6e,0x4c,0x36,0x25, + 0x01,0x2e,0x79,0xa6,0xef,0x9b,0xda,0x1d,0x64,0x7e, + 0x3c,0x69,0x92,0x38,0x61,0xd1,0xf6,0x77,0x34,0xd5, + 0x84,0xbc,0x1f,0x79,0x9e,0x67,0x9a,0x4c,0x6b,0xa4, + 0xff,0x33,0xb5,0xe2,0xfa,0x84,0x0f,0xf1,0x4c,0xbe, + 0xff,0xec,0x84,0x76,0x40,0x7d,0x7d,0x7d,0x9d,0xa0, + 0xc4,0x7e,0xa0,0x15,0xff,0x76,0x8d,0xda,0x12,0xbc, + 0x27,0x9a,0x40,0x39,0xfe,0x00,0x4a,0x7b,0x74,0xaf, + 0xfe,0xeb,0x95,0x6b,0x27,0x24,0x8f,0x89,0xd5,0x6f, + 0x13,0x66,0x3a,0xcd,0x46,0xc8,0xa0,0xee,0xc9,0xfe, + 0xae,0x86,0x31,0x6e,0x7b,0x1d,0x84,0xe0,0xe9,0xcf, + 0x5e,0x32,0x49,0x37,0x14,0xab,0x8f,0x02,0xe0,0x7e, + 0x6e,0x74,0x4f,0x64,0x34,0xae,0xef,0x63,0xc3,0xc7, + 0x83,0x35,0x44,0x13,0x7d,0x54,0x7c,0x9d,0x0d,0xf5, + 0xc2,0xc5,0x4a,0xfd,0x8c,0xa9,0x55,0x1f,0x10,0x60, + 0x1b,0x03,0xd3,0x39,0xe8,0xd0,0xf1,0xaa,0xba,0x5e, + 0x49,0x61,0x39,0x89,0x35,0xa5,0x4c,0x6b,0x90,0x19, + 0xc7,0x83,0xbe,0x1b,0x5a,0xa6,0x0c,0x35,0x69,0x8b, + 0x50,0xb5,0x9d,0x04,0x06,0x1d,0xaa,0x94,0xb8,0x50, + 0x94,0xe5,0x4e,0xcf,0x49,0xe1,0x43,0xd7,0x76,0x48, + 0x55,0x0a,0x64,0xfb,0x8f,0x45,0x4a,0x28,0x4e,0x22, + 0xfb,0xde,0xd7,0x45,0x6d,0xce,0x6b,0x20,0xe3,0x9a, + 0x00,0x14,0xdb,0x1b,0x69,0x1d,0x4c,0x90,0x39,0xd9, + 0x01,0x04,0x44,0xb0,0xe8,0x7a,0x1d,0xf7,0x80,0x8c, + 0x22,0x4d,0x15,0x42,0xfe,0x75,0x08,0x71,0x3b,0x64, + 0x68,0x22,0x5c,0x4e,0x93,0x8b,0x13,0x07,0x84,0x2a, + 0x47,0xf3,0x7e,0xad,0x3d,0xc4,0xc0,0x07,0x4c,0x49, + 0xb7,0x2d,0x0a,0x68,0x7f,0x13,0x5a,0xe4,0xae,0x23, + 0x90,0xd4,0x2d,0xe7,0xc7,0x09,0x41,0xba,0x64,0x6e, + 0xe0,0x45,0xd5,0x35,0xd8,0x24,0xc8,0xf4,0x4f,0xa5, + 0x69,0x97,0xce,0x9d,0x4b,0x08,0xd5,0x65,0x74,0xcb, + 0x74,0x02,0x32,0x54,0xe8,0x15,0xd6,0x4c,0xb4,0x98, + 0x49,0xed,0xe0,0x69,0x12,0x8e,0xf6,0xfe,0xf6,0x5c, + 0x99,0x5a,0xef,0x84,0x76,0x38,0x3e,0xe8,0xc4,0x73, + 0x82,0xfb,0x29,0x37,0x8d,0x44,0x9c,0x15,0x42,0xe1, + 0x5d,0xa1,0x77,0xab,0x30,0x27,0xfd,0x3c,0xc7,0xb5, + 0xbc,0x82,0x34,0xc5,0x06,0xa1,0xb9,0xc0,0x4f,0x91, + 0x10,0x76,0x25,0x38,0x87,0x01,0x81,0x9a,0xf8,0x8a, + 0x6e,0x28,0x44,0x06,0x07,0xd0,0x0d,0x82,0xce,0x1c, + 0x50,0x81,0xae,0x04,0xa2,0x28,0x5a,0x4e,0x6e,0xf0, + 0x45,0x28,0x06,0x1c,0xd4,0x24,0x09,0x3f,0xba,0xc4, + 0x92,0x58,0x13,0x65,0x7b,0x0e,0x06,0xd3,0x56,0x08, + 0x55,0x52,0x69,0x71,0x38,0x06,0x3b,0x8d,0x2b,0x6f, + 0xfb,0xef,0x0a,0xa9,0x06,0x0e,0x81,0xdd,0x78,0xee, + 0x7d,0x28,0xe1,0x9c,0xb8,0x1f,0xa9,0xcd,0x46,0xc8, + 0x03,0x89,0x90,0xf5,0x6b,0x12,0xd4,0xa8,0x36,0x63, + 0xc9,0x7d,0x93,0xd0,0xf3,0x02,0xb7,0x75,0xa7,0x59, + 0x51,0x5a,0x65,0xd2,0x75,0x2f,0x34,0x8c,0x2a,0xbc, + 0x0f,0xd4,0xa7,0xba,0x78,0xbc,0xd6,0xb6,0x42,0x60, + 0xb2,0xa6,0x16,0x36,0x27,0x45,0x09,0x3d,0x70,0x50, + 0x2a,0x21,0x1b,0xee,0x60,0xbd,0x0c,0xb1,0x38,0x55, + 0x73,0x9f,0x70,0x44,0x94,0xec,0x7c,0xff,0x77,0x4b, + 0x0e,0x90,0xfc,0xdc,0x7d,0xb4,0x48,0x78,0xed,0x7e, + 0xff,0x09,0xd5,0x25,0x44,0xd2,0x10,0xb0,0x57,0x12, + 0x12,0x8e,0xcf,0x35,0x1c,0xde,0x76,0x62,0xcc,0x70, + 0xf3,0x68,0x42,0xca,0xee,0x57,0x42,0x88,0xc9,0x0c, + 0x34,0xac,0x83,0x4a,0x36,0x42,0xc0,0x69,0x24,0xdb, + 0x24,0xf4,0xf8,0x83,0xe4,0x14,0xb9,0x7d,0x90,0xec, + 0x46,0x61,0x48,0xb2,0xad,0x49,0x3c,0x4a,0x57,0xdc, + 0xa5,0x7d,0xa9,0x83,0x3b,0xdf,0x6b,0xb0,0x36,0xc9, + 0xb8,0x20,0x3f,0x96,0xb2,0x40,0xef,0x49,0xd7,0xa4, + 0x70,0x7d,0xca,0x9c,0xa3,0x95,0x38,0x4c,0x6e,0xe2, + 0x8a,0x12,0x16,0xed,0xa4,0x04,0xea,0x81,0x45,0x5d, + 0x68,0xa0,0xc6,0xbd,0x47,0xd7,0xce,0x4d,0xc8,0x79, + 0x28,0x6c,0x57,0x08,0xf8,0x6f,0xd3,0x47,0x7b,0xeb, + 0x73,0xaa,0xde,0x48,0x87,0xdb,0x29,0xd8,0xe8,0x0b, + 0x9e,0xb2,0xfc,0x4f,0xd8,0xdf,0x7d,0x01,0x80,0xf9, + 0x20,0x06,0xe8,0x69,0x4c,0x9e,0x5c,0x9e,0x03,0x2f, + 0x04,0x17,0x5d,0x82,0x1f,0x5d,0xf5,0x75,0xc3,0xc5, + 0x93,0x01,0xe4,0x44,0x14,0x27,0xf4,0xc3,0x2d,0x28, + 0xf3,0x99,0x8f,0xa0,0xae,0xef,0x7a,0xe8,0x33,0x93, + 0xe0,0x65,0xe4,0xf1,0xf4,0x75,0x75,0x3f,0x07,0x48, + 0x66,0x0a,0xa6,0xda,0x8a,0x84,0x31,0x35,0xf8,0x76, + 0x93,0x45,0xaa,0x4a,0x69,0xb6,0xd7,0x69,0xb2,0x18, + 0xc4,0xa3,0x08,0xc6,0xd5,0xf7,0x91,0x5a,0xbe,0x84, + 0xfc,0xc9,0x1e,0xa8,0x85,0xda,0xee,0x23,0x99,0x9d, + 0xd4,0x96,0xef,0xf5,0xb8,0x44,0x12,0x91,0x67,0xe3, + 0x90,0x1f,0x17,0x1f,0x28,0x06,0xb8,0xc9,0x43,0xc3, + 0xbd,0x3b,0xe9,0x39,0xc1,0x9a,0x48,0xa6,0xc0,0xc7, + 0xa1,0x4d,0x94,0x24,0xff,0xbb,0x1c,0xce,0x47,0xad, + 0x96,0x20,0xfe,0x79,0x7a,0xc5,0x2d,0xcf,0xcd,0xb6, + 0x81,0xf4,0x97,0x03,0x69,0xfd,0x40,0xfb,0x33,0xb5, + 0x97,0x48,0x88,0xf1,0xed,0xcf,0x5d,0x0b,0xcb,0xc4, + 0xa1,0xa3,0x05,0xe7,0x25,0x22,0x86,0xb2,0xae,0x8e, + 0x33,0xd2,0xd6,0x64,0xe2,0xbe,0x96,0xd4,0x46,0x25, + 0xc4,0x34,0x69,0xae,0xf5,0x76,0x9f,0x4b,0x12,0x9d, + 0xe1,0xb7,0x59,0x1f,0x47,0x7e,0xf6,0x21,0x3e,0x39, + 0x09,0x81,0x6a,0x0c,0x74,0xe2,0x95,0x69,0x0f,0x9a, + 0xe4,0xf5,0xa4,0x42,0x67,0xa9,0x71,0xb7,0x41,0x4e, + 0xad,0xb0,0x62,0xd2,0xd6,0xeb,0xe4,0xf5,0x69,0x12, + 0x70,0x8b,0x2a,0xa6,0x89,0xd6,0xd7,0x27,0x70,0x39, + 0x29,0x3e,0x3a,0x24,0x85,0x2a,0x19,0xf2,0x15,0x52, + 0xae,0x07,0x41,0x89,0xe4,0x84,0xec,0x5e,0xc2,0x30, + 0x26,0xed,0xc8,0xdb,0x95,0x16,0x5f,0xa8,0x36,0xec, + 0x9f,0x39,0x7f,0xad,0x94,0x8d,0x87,0x4d,0xb4,0xf6, + 0x68,0x21,0xd4,0x41,0x61,0xc2,0x09,0x65,0xa3,0x6a, + 0x8f,0xa0,0x60,0x15,0x36,0x24,0xd2,0xe8,0x94,0x08, + 0xa7,0x31,0x59,0x77,0x8f,0xb4,0x6e,0x1c,0x3f,0xa7, + 0x27,0x3f,0x93,0x98,0x18,0xbc,0x23,0x24,0x52,0x6a, + 0xe2,0xe6,0xde,0x55,0x27,0x57,0x4e,0x95,0x8d,0x39, + 0x28,0x1c,0x1f,0xe1,0xb1,0x86,0x3a,0x49,0x5f,0xc9, + 0xf2,0x93,0x5d,0x41,0xe8,0xdb,0xeb,0xc1,0xd4,0xf5, + 0x83,0xc6,0xea,0xce,0xc1,0xed,0x69,0x4c,0x16,0x8c, + 0x3a,0xa9,0xd5,0xf6,0x36,0x32,0x3f,0xb5,0x63,0x28, + 0x10,0x1a,0xfd,0x25,0xdb,0x36,0xd6,0xaa,0x97,0xf6, + 0x28,0x25,0x59,0xf7,0xe4,0xa2,0x8b,0x11,0xbd,0x4d, + 0x11,0xb8,0x0c,0x45,0x55,0x77,0x32,0x96,0x26,0x74, + 0x99,0x50,0xcd,0xd0,0xf6,0xb7,0x50,0xb5,0x54,0xf0, + 0xa8,0x2b,0x07,0xe8,0x00,0x15,0x8e,0xd1,0xec,0x39, + 0x4d,0x90,0x92,0xc1,0x37,0x21,0x7c,0x3a,0xd1,0x45, + 0xd3,0x6a,0xda,0x92,0xee,0x96,0x2c,0x13,0x87,0x96, + 0x7c,0xf1,0x7a,0x0b,0xc8,0x4d,0xed,0xea,0xfb,0xe8, + 0xe0,0x84,0xda,0x87,0xa4,0x29,0xb7,0x84,0xde,0xea, + 0xf7,0x38,0x1d,0x38,0x4a,0xfc,0x5c,0xb7,0x27,0x49, + 0xc0,0x38,0x74,0xca,0xc9,0xd4,0x6c,0x26,0x30,0xd3, + 0x99,0xe7,0x10,0x4d,0xcd,0x21,0x7e,0x03,0x34,0x6c, + 0x13,0x1c,0x42,0x7e,0x12,0xcc,0x44,0x09,0x89,0x41, + 0x36,0xca,0xfd,0x6e,0xef,0xe1,0xa7,0xd1,0xcb,0x44, + 0x84,0x52,0x8e,0x4b,0x7a,0x70,0xa6,0xe2,0x28,0x67, + 0xf0,0x47,0x86,0x95,0xfa,0xe2,0x1d,0x3c,0xea,0xd8, + 0xea,0x8a,0xfe,0x0c,0xa2,0x6c,0xce,0x08,0xb5,0xdc, + 0xb5,0x6f,0x17,0x89,0x5b,0xc0,0xe1,0x1a,0x1e,0x49, + 0x91,0x5b,0x37,0x83,0xa6,0x4d,0xd1,0xa1,0xb7,0xad, + 0x16,0xfa,0x3d,0x1a,0xb4,0xe2,0x71,0x50,0xf4,0x24, + 0x05,0x10,0xcc,0x72,0x28,0x63,0x0f,0xd2,0xf7,0xe1, + 0xd5,0x49,0xc7,0xee,0xf9,0x93,0x9b,0x31,0xb5,0xb3, + 0x28,0x80,0x9a,0xc3,0xba,0xa6,0xa4,0x9f,0x38,0x4e, + 0x29,0xb0,0xb8,0x03,0xfb,0x46,0x98,0x48,0x07,0x48, + 0x0f,0x4c,0xb2,0x0e,0x98,0x44,0x46,0xf5,0xb3,0x54, + 0x64,0x73,0x6a,0x0f,0xb8,0x04,0x41,0x51,0xa2,0x2d, + 0xe7,0x04,0x94,0xd5,0x4f,0x08,0xe6,0xba,0x27,0xcf, + 0x04,0xbb,0xab,0x05,0x06,0x89,0x9d,0x76,0x34,0x0a, + 0x8a,0x81,0x03,0x07,0xd9,0x83,0xc4,0x2c,0xfb,0xe2, + 0x00,0x0a,0xf9,0xf3,0x7b,0xf2,0x2e,0x91,0xd4,0x4d, + 0x84,0x7a,0xb5,0xcb,0x90,0x35,0x75,0xa6,0x44,0x9b, + 0x2a,0xfd,0x8e,0x62,0x50,0xa1,0x62,0x14,0xe2,0x8f, + 0x69,0xe3,0x1c,0x92,0x8c,0x30,0xeb,0xe9,0xa4,0xfb, + 0x4d,0x48,0xa6,0xb3,0x0d,0xe9,0x28,0x90,0x4b,0x90, + 0x68,0x3f,0x29,0x21,0x9c,0x34,0xf3,0xf4,0xb9,0x36, + 0x64,0x1d,0x51,0xb0,0x1b,0x71,0x4b,0x9d,0x06,0x39, + 0xbf,0xce,0x64,0x95,0xe4,0x10,0x44,0x4a,0x92,0x7a, + 0xe2,0x65,0x68,0x05,0xce,0x7a,0xe4,0xb1,0x2e,0xe5, + 0x2c,0x3d,0x74,0x8e,0xf6,0xef,0x7c,0x7d,0x90,0x4d, + 0xd1,0xc4,0x51,0x25,0xc2,0xd9,0x86,0x95,0x1e,0x82, + 0x78,0x24,0xad,0xe9,0xa1,0x3c,0x41,0x61,0x3d,0x5b, + 0xd7,0x0c,0xfa,0x9a,0xa7,0x79,0x2c,0x02,0x42,0xed, + 0x23,0xe2,0x33,0x25,0xe2,0x99,0x69,0x37,0x96,0xe3, + 0x9f,0x6c,0x32,0xde,0xd0,0xcf,0x1e,0x33,0x75,0x4a, + 0x56,0x89,0x37,0x93,0xcc,0x35,0x93,0x11,0x2b,0x54, + 0xc8,0x36,0x08,0x25,0x62,0xb6,0x09,0xa2,0x16,0x89, + 0x49,0xca,0xc2,0x64,0xee,0xab,0xad,0x3a,0x0d,0x38, + 0xbd,0xea,0xd6,0xd6,0x61,0xe3,0x49,0x91,0x24,0x00, + 0x4e,0x18,0xba,0x96,0xc3,0xc5,0x0a,0xbb,0x36,0x49, + 0x55,0x19,0xff,0xc4,0x43,0x6b,0xcf,0xa6,0x73,0x74, + 0x36,0x87,0xd1,0x47,0x68,0x64,0x22,0x34,0x3b,0x3b, + 0x95,0x64,0x25,0xb3,0x31,0x40,0xee,0x63,0xe7,0x5d, + 0xb3,0x2b,0x71,0x7c,0x80,0x58,0x59,0x93,0x47,0xe1, + 0x7b,0x77,0x1c,0x3d,0xa7,0xd0,0x45,0x7e,0x42,0x23, + 0x69,0x9c,0x1c,0x0c,0x29,0x51,0xb4,0xf3,0x02,0x3d, + 0x32,0x1a,0x51,0x77,0x08,0x91,0xfe,0xe1,0xe2,0x20, + 0x9c,0xd6,0x09,0xf2,0x45,0x27,0x19,0x03,0x2d,0x42, + 0x92,0x18,0xa8,0xa2,0xb9,0xaa,0xe2,0x3e,0x89,0xcc, + 0x26,0x23,0xcf,0x89,0x82,0x91,0x5a,0xe3,0x0e,0xdd, + 0xfa,0xe6,0xf9,0xac,0x15,0xa3,0x5d,0xc7,0xe1,0xf2, + 0x12,0x05,0xb6,0x8d,0x9f,0x7c,0xb9,0x52,0xa7,0xa8, + 0x25,0x2f,0x45,0x32,0x15,0x44,0x32,0x1f,0x8a,0x3d, + 0xec,0xf2,0x4c,0x02,0x87,0x49,0x33,0xe8,0xcd,0xb2, + 0x8b,0x60,0xf0,0xd4,0x93,0x9f,0x46,0xb7,0x3f,0xe5, + 0xfa,0x68,0xb5,0x3e,0x8c,0xbd,0xda,0x03,0xf8,0x26, + 0x85,0xa5,0x8a,0x36,0x04,0x0b,0x4a,0x1c,0x6a,0xca, + 0x5c,0x35,0xc1,0x12,0xa8,0xb2,0x80,0x20,0x8b,0xd7, + 0xb3,0x18,0x45,0x7c,0xf8,0xa8,0x29,0xc1,0x98,0x88, + 0x77,0xf4,0xf7,0x97,0x99,0x66,0xd2,0x00,0x11,0x16, + 0x32,0x06,0xb7,0x4d,0xfb,0xcc,0xc1,0xb5,0x1d,0xb1, + 0xe9,0x52,0x01,0x2e,0xd8,0xa5,0x89,0x21,0x13,0x68, + 0x2a,0x4d,0xa5,0x00,0xff,0xab,0x06,0xd7,0xf4,0x0a, + 0x82,0x90,0x45,0x22,0x6a,0x69,0x72,0x6d,0xa3,0x0a, + 0x1e,0xc6,0x7b,0x1f,0x2a,0xcf,0x29,0xc8,0xc9,0xbe, + 0x4a,0x64,0xd9,0xf4,0x9e,0x71,0x3d,0x13,0x99,0x93, + 0x3c,0xc1,0xfa,0x5a,0x51,0x9d,0xa0,0x2d,0x4a,0x30, + 0x28,0xc8,0x77,0xe7,0xf8,0x38,0x84,0x41,0xbc,0x37, + 0x23,0xd6,0x17,0x11,0xd5,0x4f,0x92,0x1c,0xd7,0xea, + 0x4c,0xf1,0x50,0xa7,0xf6,0xc4,0x76,0x28,0xa9,0x7d, + 0x63,0x3b,0x57,0x7d,0xe9,0x28,0xe1,0x9a,0xf6,0xc0, + 0x05,0x9e,0x7e,0xee,0x50,0xa6,0xc2,0x28,0x4c,0x5c, + 0xd5,0x94,0x68,0xab,0x58,0x9f,0x5e,0xcb,0x24,0xfe, + 0xa7,0xd7,0xbb,0x51,0xb7,0x87,0xeb,0x76,0xad,0x38, + 0x14,0x45,0x4d,0x24,0xec,0x41,0x4c,0xb8,0xc8,0x07, + 0x91,0xd0,0x59,0x55,0xb1,0x36,0xf4,0x92,0x1a,0xcc, + 0x9c,0x6d,0xc1,0x0f,0xd4,0x8b,0x94,0x90,0x4e,0xb6, + 0x46,0x09,0x28,0xb0,0xfb,0xc7,0x75,0x7b,0x74,0xda, + 0xec,0x35,0x1d,0xce,0x5d,0x34,0x2e,0x09,0xa8,0x4d, + 0xe3,0xc8,0x44,0x3c,0x4d,0xd9,0xd9,0x94,0x49,0x2f, + 0x48,0x5c,0x35,0x8d,0xf7,0xa5,0xaa,0x84,0x7c,0x73, + 0x1c,0xe4,0xec,0x0e,0xc9,0xd4,0x8f,0x34,0x2a,0xc1, + 0x51,0x01,0xd5,0x7d,0x8f,0x5b,0xc4,0x2e,0x41,0x20, + 0x44,0x8d,0x88,0xdb,0xb4,0x60,0xb5,0xf5,0xd6,0x02, + 0x4d,0x99,0xd6,0x05,0xf9,0x12,0x15,0xc9,0xd2,0x9b, + 0xec,0xbe,0x80,0x43,0x86,0x24,0x69,0x17,0x18,0x75, + 0x62,0x4d,0x47,0xcc,0x83,0xf1,0x69,0xe9,0xa1,0x2c, + 0x6d,0xd0,0xd2,0x84,0xad,0x7b,0x10,0x0d,0xfc,0x93, + 0x38,0x52,0xad,0xca,0xcd,0x46,0x38,0xd2,0xad,0xf5, + 0x0a,0xd5,0xb1,0x0b,0x04,0xd6,0xd7,0xca,0x09,0x7d, + 0x26,0xde,0x80,0xe9,0xef,0x3f,0x26,0xbc,0xfa,0xc4, + 0x95,0x5a,0x5b,0xf4,0x7f,0x77,0x36,0x19,0x2a,0xc0, + 0xb8,0x19,0xfd,0x25,0x59,0x01,0x39,0x00,0x4b,0x91, + 0xb2,0x05,0x5f,0x4f,0x6e,0xd1,0xb7,0xe1,0xdd,0x3b, + 0x09,0x31,0xa6,0x06,0x84,0x1c,0x91,0x1e,0x87,0xb6, + 0x1b,0xe4,0xd0,0xbe,0xbf,0xee,0x35,0x68,0xa6,0xb3, + 0x4a,0x27,0x81,0xa8,0x28,0x74,0xc9,0x21,0xa1,0x4d, + 0x1a,0x07,0x92,0x5e,0x9a,0xfe,0x99,0x6b,0x73,0x53, + 0x72,0xe5,0x14,0xce,0x8d,0x41,0x77,0xa5,0xf1,0xf7, + 0x60,0x57,0x81,0xe8,0x97,0x0a,0x08,0xa7,0xa4,0x65, + 0xd2,0xcc,0xe9,0x86,0xd4,0x93,0x01,0x6e,0x72,0x61, + 0x77,0xa3,0xec,0xce,0x9b,0x6b,0xf2,0x4a,0xd3,0xef, + 0x9f,0xe4,0x4d,0x12,0x5a,0xb6,0xf0,0x24,0x7b,0x9c, + 0x53,0xa1,0x45,0x89,0x7b,0x22,0xa8,0x62,0x9f,0xeb, + 0xba,0x7e,0x38,0x40,0x8e,0x9d,0x6f,0x8d,0xc9,0xc8, + 0x84,0x33,0x1d,0xf4,0xdb,0xea,0x51,0x03,0x74,0x82, + 0xfa,0xb4,0x0d,0xe7,0x10,0x8e,0x24,0xc4,0x48,0x9c, + 0x9c,0x6d,0xd6,0xed,0x1e,0x2a,0x3d,0x9b,0xa4,0x04, + 0x3d,0xb5,0x26,0x28,0xb0,0xb9,0x44,0x43,0x4d,0x04, + 0x85,0xa3,0x13,0x59,0xfe,0x7a,0xed,0xc1,0x37,0x2c, + 0x06,0xd8,0xb4,0x81,0x3a,0x0f,0x86,0x5c,0xc6,0x4d, + 0x0f,0x1f,0x93,0x33,0x57,0xd5,0x24,0xe2,0x28,0xb5, + 0xd6,0xc2,0x41,0x3e,0xea,0xcb,0xb8,0x20,0xe4,0xf8, + 0x6c,0x0b,0x93,0xda,0x78,0xcd,0x83,0x36,0x0d,0x56, + 0x64,0x2e,0xf1,0x22,0x0e,0x4f,0x42,0x51,0x9c,0xa9, + 0xb1,0x4b,0x88,0x09,0x71,0x4d,0x01,0x52,0x89,0xec, + 0xb4,0x76,0xb5,0x4d,0xd1,0xbe,0xf7,0x6c,0x95,0x5f, + 0xc3,0x7b,0xb9,0xdf,0xf7,0x49,0xad,0x00,0x73,0x58, + 0x9f,0xe1,0x5d,0xff,0x6c,0x49,0xfd,0xfd,0xfe,0x2c, + 0xfb,0x84,0x57,0x40,0x53,0x4f,0x88,0x05,0x96,0x17, + 0xe3,0xb8,0x12,0x12,0x13,0xab,0xaa,0x8e,0x08,0x69, + 0x46,0xde,0x96,0x7b,0xe7,0x8e,0x1f,0x3a,0x78,0x96, + 0xe1,0xbe,0xa6,0xfd,0x78,0xde,0x1f,0x28,0xc6,0xf3, + 0xce,0x67,0x71,0xdc,0x27,0x77,0xc6,0x99,0x98,0x76, + 0xf4,0x8c,0x39,0xe7,0x1c,0x45,0x1f,0x3a,0xb5,0x22, + 0xa1,0x40,0x97,0x08,0x45,0xf6,0xef,0x51,0x7e,0x98, + 0x9b,0xf2,0x22,0x94,0xc3,0x09,0xde,0x2a,0xbf,0xa8, + 0x4f,0xe6,0x4d,0xbe,0x79,0xc4,0xf9,0xd1,0x69,0xae, + 0x4d,0xeb,0x7b,0xd1,0xfa,0x2b,0x27,0xf2,0x99,0x86, + 0x9b,0x48,0x68,0xd8,0xa1,0xf7,0x1b,0x7b,0xab,0x17, + 0x55,0x30,0xa9,0xe7,0x9f,0xbc,0x38,0x26,0x5f,0xb0, + 0x24,0xf9,0x3e,0xb5,0xce,0x26,0x8e,0x8b,0x72,0x90, + 0xd2,0xf4,0x54,0x6a,0x39,0x25,0x99,0x75,0xba,0x2e, + 0x80,0xaf,0x71,0x24,0x3b,0x71,0x6a,0x26,0x18,0x70, + 0x32,0x17,0x85,0x6a,0xa3,0x52,0x02,0xea,0xb4,0x52, + 0x7a,0xf5,0xe7,0x84,0xaa,0x1c,0xc7,0x86,0xaa,0x3e, + 0xf2,0x88,0x72,0xeb,0x68,0xb2,0xdd,0x00,0xaf,0x99, + 0x98,0xe4,0x24,0x38,0x75,0xd2,0x6d,0x72,0xc8,0x94, + 0x83,0xe5,0xa9,0xb2,0x95,0x2a,0x8a,0x9c,0xaf,0x1f, + 0x55,0x64,0x0a,0x0c,0x84,0xe8,0x05,0xde,0x45,0x25, + 0xae,0x51,0xe2,0x6c,0xc9,0x7d,0x17,0x21,0x6d,0x01, + 0xa1,0x88,0x30,0x3f,0x4d,0x4b,0xd2,0xb8,0xbc,0x6b, + 0x9d,0x08,0x8a,0x84,0xb0,0x39,0x4d,0xa5,0x4a,0x4b, + 0xaa,0x12,0xe2,0x2c,0xd3,0x60,0xb7,0xb6,0xd1,0x45, + 0x24,0xf8,0x86,0xf2,0xa0,0x54,0xff,0x20,0xe2,0xb6, + 0x6a,0x11,0x25,0x4e,0x51,0x4f,0x7c,0x75,0x92,0x2d, + 0xf0,0xca,0x46,0x3e,0x90,0xfe,0x79,0x27,0xb1,0x92, + 0x76,0x4c,0xe7,0x62,0x3a,0x5b,0x9a,0x84,0x42,0x9b, + 0xf6,0x46,0xa5,0x44,0x75,0x81,0xf6,0x4f,0xe8,0x5b, + 0xe4,0xa9,0x5d,0xc6,0x4f,0x0b,0x90,0xf6,0x48,0xc8, + 0x4d,0x9c,0xa3,0x69,0x2a,0x95,0xba,0x27,0x0b,0xcb, + 0x0f,0x8c,0x97,0xf4,0x2c,0xe9,0xf7,0x86,0x21,0x84, + 0xd5,0x64,0xe1,0xb6,0xbd,0xb9,0xf0,0x58,0x9b,0xfc, + 0xc2,0x7e,0xde,0xf9,0xcb,0xe9,0xba,0x90,0x2a,0x2b, + 0x05,0x25,0xcd,0x6a,0xa1,0x32,0xae,0x01,0x31,0x19, + 0xfb,0x86,0x97,0x78,0x39,0xd1,0xf4,0x55,0x78,0xd8, + 0x95,0x16,0xa2,0x7b,0x29,0x34,0xb5,0xa2,0xed,0x2f, + 0xd7,0xd2,0x22,0xf2,0xe7,0xc4,0x67,0x30,0xaa,0xb2, + 0x04,0x65,0x97,0xd1,0x5c,0xc2,0xde,0xbe,0x21,0x80, + 0xd6,0x34,0xf6,0x9e,0x78,0x53,0x97,0x21,0x9e,0x53, + 0x52,0x75,0x19,0xaf,0x2f,0xf7,0x4e,0x48,0xd4,0x70, + 0x1a,0x81,0x55,0x44,0x41,0xc7,0x1e,0x29,0x91,0xea, + 0xd7,0xa8,0xa3,0x9f,0x6a,0x35,0xf1,0x5d,0xa5,0x57, + 0x48,0xe8,0x2b,0xb4,0x3b,0x4b,0xdf,0x0d,0xac,0x6f, + 0x2b,0x34,0xd6,0x0b,0x86,0x7e,0x1d,0xb4,0x7f,0x24, + 0x98,0x54,0x92,0x88,0x77,0x81,0xea,0xfe,0xdd,0x6f, + 0x1e,0x5b,0xd1,0xe1,0x4c,0x55,0x7f,0x12,0x3c,0x9b, + 0xd6,0x8c,0xdb,0x6b,0x93,0x46,0x89,0xb6,0x76,0x6e, + 0x63,0x53,0xd7,0x16,0xa4,0x44,0xd1,0xc4,0xab,0x4a, + 0x8e,0xd9,0xae,0xf5,0xe7,0xae,0x47,0xda,0x97,0x95, + 0x6c,0x48,0xfa,0x38,0x3f,0x7c,0x77,0x05,0xa9,0x08, + 0x3c,0x3c,0x7a,0xb1,0x79,0xa3,0x35,0xaa,0xa3,0x35, + 0x71,0x85,0x1c,0x42,0x6a,0x62,0x24,0xa9,0x9f,0x93, + 0xd8,0x5e,0x19,0x24,0x10,0xb9,0x43,0xae,0x80,0xa5, + 0xb6,0xa1,0xf3,0xf8,0xd2,0xe7,0x42,0x1e,0x7a,0x70, + 0xc8,0x57,0x28,0x30,0x46,0x5e,0x29,0x7c,0x47,0x91, + 0x18,0xad,0x23,0x9b,0x2b,0xe2,0x41,0x88,0x08,0xf9, + 0x64,0x91,0x07,0x57,0x4f,0x44,0xa7,0x76,0x18,0x75, + 0x39,0x66,0x20,0xa8,0x1e,0xc9,0x37,0xb5,0xda,0x89, + 0x2f,0x47,0x1c,0x34,0x40,0xa2,0x1f,0x89,0xb7,0x9e, + 0x19,0xaf,0xc0,0x37,0x41,0xc1,0xbe,0xc1,0xd0,0x6e, + 0x6c,0xf9,0xd0,0x21,0xd9,0xd1,0x06,0x0a,0x96,0xa4, + 0x30,0x9c,0xb2,0xc0,0xce,0x6b,0xd0,0x51,0xc3,0x73, + 0x4e,0x29,0xd9,0xb2,0x6b,0x32,0xe8,0xe4,0xd0,0x64, + 0xd6,0x18,0x12,0x3b,0xdb,0xaf,0x4e,0xaa,0x95,0xe9, + 0x7b,0x52,0x0b,0xce,0x24,0x6d,0x6f,0x15,0xaa,0xcb, + 0xec,0xf5,0xfa,0x65,0x61,0xd6,0xb4,0xc9,0x95,0x67, + 0xd4,0x15,0xa3,0x5d,0x92,0x43,0x15,0x6b,0xf2,0xc4, + 0x99,0x36,0xe5,0x07,0x9b,0x77,0x44,0xf2,0x88,0xc4, + 0x1b,0x26,0x98,0x2c,0xf7,0x88,0x1c,0xad,0x75,0x2d, + 0x69,0x82,0x31,0x19,0xc0,0x2e,0xfe,0x29,0x47,0x5a, + 0x5d,0x54,0xd8,0x1d,0x4d,0x89,0xed,0x57,0xe0,0x9e, + 0x45,0xb2,0xb6,0x43,0x21,0x12,0xb9,0x72,0xfb,0x3e, + 0x94,0xf0,0x6f,0xd6,0xd9,0x23,0xa1,0xa1,0xe7,0x62, + 0xb8,0x6c,0xb5,0xa9,0x68,0xdd,0x3e,0x0f,0xc5,0xe0, + 0x38,0x01,0xe6,0xd0,0x8b,0xd4,0xa2,0xd5,0xa2,0x0c, + 0xd6,0x6d,0x4d,0x86,0xbe,0x74,0xf0,0x50,0x72,0xe4, + 0x0a,0x33,0xd0,0x8c,0x2b,0x7a,0x76,0x86,0xc2,0x50, + 0x8e,0x18,0xaf,0x71,0xd9,0x25,0x63,0x94,0x5c,0xba, + 0xc4,0x48,0x8b,0xf3,0x49,0xe8,0x95,0x92,0x4e,0x57, + 0x48,0x9a,0x78,0x11,0x09,0xef,0xf7,0x19,0x35,0x71, + 0x63,0x28,0xf6,0x8b,0xc7,0x1c,0x4a,0x4b,0x4c,0x85, + 0xf7,0x84,0xec,0x2c,0x78,0x3f,0x56,0x7f,0xc9,0xb5, + 0x0a,0x37,0xb6,0x32,0xee,0x39,0x4d,0xed,0xed,0x5f, + 0xbf,0x7e,0xd9,0xf8,0xa0,0x3a,0x69,0x2f,0x5a,0xf4, + 0xd3,0xe4,0xc8,0x26,0x03,0x9e,0x60,0xaa,0x49,0x98, + 0x8c,0x48,0x50,0x0b,0x42,0x34,0x26,0x50,0xbd,0xfa, + 0x99,0x9c,0x81,0x75,0x3c,0x74,0xe3,0x26,0x9d,0xb2, + 0x7e,0x3a,0x4c,0x04,0x06,0x76,0x13,0x07,0x65,0xda, + 0x05,0x35,0xf5,0x6f,0x07,0x48,0xb0,0x4c,0xd2,0x5a, + 0x41,0x00,0xef,0x11,0x64,0x4d,0x80,0x2d,0x37,0x19, + 0x07,0x30,0x6d,0x44,0x79,0x5c,0xe0,0x82,0x16,0x48, + 0xa5,0xea,0xc4,0x05,0x87,0x90,0x30,0x27,0xd1,0xcc, + 0x32,0xf0,0xfb,0xea,0xf0,0x98,0xb4,0x4e,0x68,0xba, + 0x86,0x06,0x0b,0x06,0x33,0xcf,0x9a,0x12,0x25,0x48, + 0x7e,0x4a,0x35,0x95,0xa6,0x8a,0x96,0x12,0x14,0xe7, + 0xc7,0x44,0x81,0x35,0x05,0xe6,0x0d,0x3f,0x21,0xb5, + 0x36,0xfb,0x35,0xc8,0x7a,0x29,0x42,0x2a,0x42,0xe1, + 0x56,0x3a,0x11,0x93,0x26,0xb3,0x52,0x8b,0x50,0x7f, + 0x34,0x4c,0x32,0xd6,0x86,0x8f,0xe8,0x62,0x98,0xb6, + 0xeb,0x0d,0x27,0x69,0xb4,0x64,0x48,0x2d,0xeb,0x20, + 0x28,0x88,0x89,0x4d,0xd2,0x3d,0xea,0xff,0x6d,0x88, + 0xd7,0xb6,0x7d,0x91,0x3c,0xe4,0x52,0x2c,0x99,0xd0, + 0x4b,0xf7,0xef,0xbd,0xbd,0x3f,0x4d,0x48,0xea,0x1e, + 0xd8,0x14,0x71,0x0e,0x49,0xdb,0x24,0x9c,0xb4,0x86, + 0x08,0xcd,0x4a,0xc9,0x8e,0x43,0xa5,0x16,0xc5,0xa9, + 0x1d,0x48,0xd9,0x50,0x38,0xe8,0xf7,0xef,0xe4,0x45, + 0xa7,0x9d,0x37,0x39,0x45,0x17,0x89,0x9c,0x78,0x65, + 0x1d,0x01,0x42,0xae,0x0f,0x55,0x77,0x34,0x26,0x4f, + 0x6a,0x97,0x9b,0xca,0x22,0xb8,0x88,0x13,0xe2,0x50, + 0x09,0x1a,0xa7,0x11,0x4e,0xca,0x54,0x55,0x59,0x38, + 0x3d,0x78,0x47,0x9e,0xd6,0x0d,0xe2,0x60,0x61,0x40, + 0x42,0xec,0xdf,0x6d,0xde,0x43,0x3f,0x48,0x1c,0x21, + 0x16,0x90,0xba,0x51,0x77,0x46,0xdb,0x86,0xe6,0xb0, + 0x5c,0x39,0x7c,0x93,0xfa,0x2b,0x55,0xe2,0xae,0xfd, + 0xd9,0x09,0xf1,0x8e,0xb8,0x6a,0x3e,0x87,0x0c,0x26, + 0xcb,0xb5,0x27,0x9a,0x51,0xe6,0x05,0x5a,0x4e,0x95, + 0x0e,0xb1,0x24,0xd8,0x96,0x60,0xf5,0x49,0x0b,0xa6, + 0x5d,0x73,0x2d,0x92,0x83,0x4a,0x81,0x8b,0xda,0x29, + 0xf7,0xef,0x29,0xd2,0xb9,0x20,0xf9,0xbb,0x3d,0x61, + 0x3d,0xbd,0x74,0xa2,0x4b,0xb9,0x44,0xe4,0x09,0x76, + 0xbd,0x0f,0x95,0x95,0xf2,0x98,0x5c,0x80,0x74,0x56, + 0x29,0xb4,0xb6,0xee,0xa4,0x46,0x8b,0x2b,0x87,0x3a, + 0x08,0x19,0xb6,0x28,0x56,0xea,0xf3,0xd5,0x76,0xbd, + 0xe1,0xa7,0x54,0x6a,0x97,0x10,0xa7,0xa9,0xed,0xcd, + 0x4a,0x2d,0xd5,0x29,0x51,0x72,0xc9,0x51,0x4f,0x44, + 0xfa,0xfe,0x00,0x75,0xe4,0x82,0x76,0x6d,0xb9,0x73, + 0x41,0x13,0x98,0x81,0x6b,0x45,0x49,0x6a,0x69,0x8b, + 0xda,0x99,0xf8,0x6a,0x2b,0x95,0xd0,0x46,0xb7,0xc7, + 0xf5,0x7b,0xee,0x43,0x99,0xc6,0xbe,0x53,0xfb,0xd0, + 0x9d,0x39,0x49,0x4b,0x29,0x59,0x28,0xd1,0x39,0xe7, + 0x5a,0xca,0x26,0x01,0x28,0x93,0xec,0x57,0x4a,0xfe, + 0x36,0x26,0xe8,0x93,0x0d,0x8f,0x6b,0x49,0x11,0x2f, + 0x8a,0xce,0x2d,0xea,0x48,0x69,0xcb,0x9d,0x50,0x69, + 0xba,0xfe,0x97,0x73,0x26,0xdf,0x20,0x0b,0xf0,0xb3, + 0xe4,0x2e,0x5c,0x83,0x8a,0xea,0xe8,0xc3,0xa4,0x15, + 0x05,0x8d,0x81,0x2b,0x81,0x77,0xb2,0x66,0x48,0x52, + 0xeb,0x1a,0x64,0xd3,0x62,0xa7,0x96,0x00,0x11,0xf2, + 0x5c,0x4f,0xd7,0xb5,0x1b,0x95,0xf7,0x44,0x12,0xed, + 0xaa,0x78,0x6c,0x92,0xa3,0x6b,0xd8,0x64,0xb5,0x59, + 0xec,0xa1,0x25,0x57,0x53,0x5f,0xde,0xb5,0x09,0xdc, + 0xe2,0x4e,0xba,0x4d,0x93,0x47,0xd3,0xfd,0x5c,0x7f, + 0xfd,0xfa,0x75,0x05,0x1e,0x85,0xb6,0x3b,0x3e,0x4e, + 0x70,0x54,0xaa,0xde,0x11,0x52,0x5d,0x4b,0x78,0x32, + 0x8e,0x74,0x50,0x36,0x55,0xdb,0x8e,0x0c,0x99,0x5a, + 0xcc,0x3d,0x51,0x29,0xaf,0x8e,0x87,0xef,0x1b,0xda, + 0x61,0x9a,0xc4,0x44,0x58,0xda,0xbd,0xd3,0x24,0x4e, + 0xb9,0x48,0x0a,0x7b,0xa2,0x15,0xab,0x5c,0xe2,0x2a, + 0x48,0x25,0x5b,0x1b,0x94,0xa9,0x55,0xc9,0x45,0xc8, + 0xb9,0x2c,0xc9,0x1a,0x50,0x74,0xb4,0x1c,0xd0,0x76, + 0x98,0xb6,0xb2,0x09,0xed,0x54,0xd9,0x04,0xc3,0xc9, + 0x1a,0x79,0x3f,0x66,0xff,0x51,0xb2,0x86,0xe6,0xd9, + 0x6e,0xa0,0x02,0x5a,0x1d,0x35,0xa8,0x1f,0x5b,0x5a, + 0x43,0x42,0x89,0xf5,0xda,0x08,0xe9,0x4d,0x84,0x6b, + 0x38,0x70,0x2d,0xbf,0x48,0xb9,0x4c,0x89,0xb3,0x33, + 0x11,0x96,0xc3,0x59,0xe9,0x9e,0xf5,0x3a,0xa9,0xd2, + 0x33,0x61,0xe3,0x66,0x20,0x71,0x23,0x0e,0xd2,0x68, + 0xec,0x72,0x85,0x82,0x26,0xa6,0x7a,0x3f,0x64,0x05, + 0x33,0x0c,0x42,0x91,0x7c,0x01,0x9a,0x64,0x9f,0x73, + 0xae,0xdf,0x09,0xa9,0x71,0x84,0xe6,0xd4,0x0f,0x4c, + 0xbe,0x61,0x94,0xa5,0x3a,0xdd,0x83,0x25,0xf4,0x17, + 0xdb,0x5f,0x94,0x41,0x27,0xf8,0x31,0x64,0xc1,0xab, + 0x45,0xa7,0xad,0xb7,0x89,0x3d,0x4f,0xe3,0xc6,0x0e, + 0x3e,0xa6,0x1e,0x2b,0x99,0xab,0x3a,0x61,0xab,0x04, + 0xc1,0xba,0x6b,0xee,0x5c,0x2c,0xf7,0x7c,0xc9,0x07, + 0xae,0x5f,0x06,0x48,0x9b,0x23,0x77,0x08,0x50,0x85, + 0x18,0x98,0x36,0x2a,0xc1,0x0e,0x09,0x4b,0x7d,0x79, + 0x82,0x97,0x5d,0x25,0xa2,0x92,0xf3,0xe9,0x33,0xbb, + 0x6d,0xc8,0xb0,0x96,0x6b,0x0a,0x1a,0x2e,0xb8,0x0f, + 0xfd,0xf4,0x9a,0x64,0x17,0xa8,0x72,0x76,0xcf,0x63, + 0x4b,0x4c,0x4e,0x6b,0x5c,0x39,0x0a,0xd4,0xba,0x76, + 0x6d,0x6c,0xd1,0x2e,0xea,0x7b,0xe2,0x67,0x5c,0x59, + 0xb9,0x46,0x09,0xb5,0xfc,0xfe,0x79,0x6b,0xe6,0x19, + 0x0a,0xc1,0xea,0xa3,0xf3,0xa1,0x2d,0x64,0x4d,0x3f, + 0xe5,0xc0,0x4a,0x36,0x1a,0x6f,0x76,0x00,0x93,0x08, + 0x2d,0x8d,0x8f,0xd3,0x77,0xba,0x81,0x09,0x8a,0x3d, + 0x6a,0x4b,0x30,0xb8,0xd8,0xdb,0x22,0x45,0x4d,0x6c, + 0x5b,0x11,0x75,0x94,0x7f,0xe8,0xcc,0x58,0x9d,0x44, + 0xc3,0x64,0xa1,0x93,0xec,0x22,0xfa,0xf3,0xa0,0x44, + 0x19,0xf4,0xc0,0x30,0xd9,0x77,0x89,0xc1,0xbd,0xff, + 0xaf,0xa7,0xf9,0xac,0x7b,0xff,0xd6,0x46,0x62,0xf1, + 0x8e,0xd6,0x6b,0xa4,0x69,0xa4,0x1d,0xa3,0xf3,0x73, + 0xc4,0x46,0x28,0x16,0x48,0x09,0x31,0x22,0x7f,0xb4, + 0x7e,0x9f,0x4b,0x54,0xf0,0x41,0xb1,0xa0,0xae,0x89, + 0x43,0x84,0x1f,0x14,0x0d,0x9a,0xb8,0xd2,0x0a,0x62, + 0xf2,0x69,0x9a,0xda,0x56,0x4e,0x9e,0x7e,0x40,0x82, + 0x22,0x4c,0x46,0x49,0x9b,0xd3,0x2b,0xb9,0x3c,0xf9, + 0xb1,0xb6,0x62,0x88,0x09,0x96,0x24,0xb3,0x44,0x22, + 0x3a,0x07,0x92,0x58,0x39,0x03,0x48,0x42,0x18,0xc8, + 0x01,0x78,0xc3,0xc6,0x5f,0xf6,0x91,0x6b,0x22,0x58, + 0x13,0xf2,0xa7,0x5c,0x10,0xe2,0xf8,0x68,0xf2,0x93, + 0x04,0x26,0x29,0x01,0xd4,0x96,0x58,0x27,0x5f,0xeb, + 0x3d,0x93,0x90,0x99,0x13,0xcd,0xbb,0xda,0x84,0xdd, + 0x26,0x99,0xea,0xcf,0x22,0xe9,0x13,0x85,0x84,0x4e, + 0x51,0x15,0x84,0x72,0x95,0xe7,0x93,0xdc,0x9a,0x05, + 0xa5,0x49,0xca,0xba,0x8f,0xc0,0xd2,0x8d,0x4f,0x97, + 0x49,0xdb,0x8a,0xeb,0xa0,0xc1,0x54,0x45,0xe3,0x82, + 0x64,0x86,0x43,0x52,0x49,0x33,0xa6,0xb4,0x45,0x34, + 0xf1,0x3f,0x0c,0xba,0x53,0xd4,0xda,0x37,0x08,0x4c, + 0x0d,0xbc,0x0a,0xe4,0xa4,0xb8,0x89,0x3d,0x30,0x84, + 0xad,0x94,0xe8,0x50,0xfb,0x63,0x28,0x20,0xeb,0x6f, + 0xb9,0x1d,0x8e,0x8e,0xe0,0xb8,0x9b,0x90,0x74,0x16, + 0x39,0xa1,0x53,0xcb,0x3e,0x25,0xff,0x94,0xd4,0x10, + 0xd5,0x42,0x51,0xb3,0xd4,0x4e,0x4d,0x71,0xd4,0xf1, + 0x44,0x4d,0xb2,0xf7,0x51,0xeb,0xa8,0x9f,0x21,0x34, + 0x7c,0x33,0xd1,0x06,0x82,0xde,0x58,0x9a,0x62,0x45, + 0xa2,0x35,0x3d,0x8b,0x8e,0xa0,0x53,0x7b,0x51,0xee, + 0x05,0xdf,0xbb,0x72,0x07,0x9d,0x1b,0x41,0x40,0xe5, + 0x1e,0x1a,0x5b,0x44,0xcb,0xe8,0xeb,0xe7,0xd5,0xcf, + 0xb0,0x34,0xa6,0x9d,0xaa,0xec,0xe9,0xe1,0x90,0x91, + 0x1c,0xe9,0x4e,0xa4,0x71,0x3c,0x7d,0x90,0x9b,0xd6, + 0x14,0x25,0x2d,0x4b,0xa6,0x7b,0x6d,0x89,0x58,0x1a, + 0x94,0x95,0x88,0xb9,0xe1,0x16,0xdd,0xcf,0xed,0x3e, + 0x80,0x40,0xa7,0x04,0x51,0x99,0xe0,0x75,0x95,0x02, + 0xf3,0x6a,0x9c,0x79,0x42,0x1c,0x88,0x27,0xe4,0x64, + 0xce,0x37,0xd7,0xb1,0x25,0xd5,0x77,0x49,0x00,0x6d, + 0x59,0x6e,0xc8,0xb5,0xa4,0x03,0x04,0x1c,0xad,0xc7, + 0x1a,0xed,0x92,0xfb,0x8e,0x67,0xe0,0xa6,0x40,0xc8, + 0x1f,0x67,0x91,0x4c,0xd4,0x60,0x54,0xf8,0x26,0x8a, + 0x36,0x25,0x2c,0x90,0xdc,0xd5,0x65,0xf4,0x96,0x28, + 0x58,0xba,0x35,0xe6,0x26,0xaa,0x4c,0x6c,0x18,0xd7, + 0x01,0xa9,0x3b,0x53,0x32,0x07,0x95,0xe7,0x4f,0x32, + 0x94,0x84,0x2d,0xf5,0xb3,0x1b,0x5a,0x57,0x4b,0x1d, + 0x92,0x5a,0x14,0x4e,0x95,0xe2,0x86,0xe3,0xbe,0x48, + 0x0b,0x2b,0x4a,0x3b,0x04,0x2d,0xa8,0x0a,0x49,0x02, + 0x72,0xe6,0x92,0x22,0xbc,0xb6,0xdc,0x87,0x04,0x6d, + 0xe4,0x91,0x24,0x8b,0x1b,0xf7,0xce,0x6f,0xa2,0xb7, + 0x9a,0x9f,0x6e,0x0a,0x66,0xa5,0x21,0xf4,0xe7,0x0b, + 0xfa,0x57,0xd7,0xa4,0xc2,0x4f,0xeb,0x78,0xd2,0x6a, + 0x73,0x49,0x83,0x43,0x9b,0x42,0xfb,0x07,0xe3,0xc2, + 0x56,0xdb,0x08,0xae,0x27,0x4e,0xc7,0x39,0x1b,0x21, + 0x2a,0xfc,0x86,0xc2,0x20,0x15,0xd7,0x2b,0x10,0xc4, + 0x51,0x01,0xdc,0x19,0xae,0x9f,0xf9,0x72,0x90,0x16, + 0x25,0x23,0xee,0x29,0xeb,0xc6,0x4c,0x7c,0x91,0xe4, + 0xfd,0x93,0x1e,0x56,0x42,0x9d,0x36,0x9b,0x3c,0x8d, + 0xe5,0x2e,0x54,0x91,0x23,0x2f,0x44,0xbf,0xe7,0xcf, + 0x9f,0x3f,0xab,0xa9,0x30,0x07,0xf9,0x0f,0x55,0x7f, + 0xec,0xd7,0xea,0xc4,0x8b,0xeb,0xc1,0x6a,0x70,0x49, + 0x2d,0x20,0x4d,0xe2,0xe8,0xc0,0x83,0x0a,0xbb,0x12, + 0x31,0x3a,0x71,0x54,0x1c,0x89,0x32,0x21,0x48,0x6e, + 0xbc,0x5f,0xf9,0x13,0x80,0x92,0x15,0xf0,0x6e,0x1e, + 0xef,0x4d,0x45,0xd7,0x48,0xaa,0x3d,0xad,0x5f,0x47, + 0xdc,0x4c,0x5c,0x05,0x4d,0x38,0x9c,0x16,0x54,0x58, + 0xa3,0xb5,0x39,0x68,0x1d,0x57,0x85,0x82,0x23,0xd9, + 0xde,0x4c,0xc9,0x66,0x82,0xcd,0x53,0xb0,0x4c,0xc9, + 0xd0,0x96,0xa7,0xe8,0x02,0xb3,0xda,0x58,0x24,0xa1, + 0x3c,0xc7,0x67,0x49,0x89,0xb4,0xe3,0x7e,0x91,0x41, + 0x65,0x42,0x9b,0xa7,0xb6,0xf9,0x05,0xe2,0x7d,0xfa, + 0x77,0xdb,0xef,0x4d,0xeb,0xc3,0x15,0xc5,0x77,0xdb, + 0x24,0x15,0xc4,0x46,0xa8,0xd2,0xc5,0xaa,0xa2,0x04, + 0xc2,0xa1,0xe6,0x93,0x17,0x1c,0xc9,0x2b,0x04,0x7e, + 0x10,0xb6,0x96,0x48,0x5f,0x27,0xa0,0x4c,0xe8,0xa7, + 0x05,0xf7,0x89,0x85,0x6c,0x32,0x83,0x55,0xc0,0x42, + 0xb9,0x3c,0x2e,0xc9,0x72,0x67,0x09,0x11,0xc6,0xb7, + 0xde,0x9f,0xd4,0xee,0xd4,0xf3,0x66,0x92,0x72,0x71, + 0x71,0x3a,0xa1,0xbf,0x43,0x8b,0x1f,0xdf,0xa1,0x5b, + 0xe3,0xe7,0x9c,0x7a,0x5d,0xc3,0x7c,0xbf,0x93,0xfe, + 0x4e,0xbc,0x8f,0x65,0xd2,0x52,0x40,0xe6,0x8b,0x89, + 0x98,0xfb,0x3e,0x63,0xd8,0x87,0x55,0xf5,0x74,0x70, + 0xa4,0xe9,0x24,0xea,0x07,0x27,0xa2,0xf7,0xaf,0x5f, + 0xbf,0x8a,0x6c,0x12,0x74,0x33,0x90,0x91,0xe0,0x66, + 0x14,0x5a,0x0f,0xee,0xe4,0x31,0x93,0x48,0xda,0x9d, + 0x54,0x3b,0x4d,0x73,0xf5,0x8c,0x5b,0xd5,0x5c,0xa9, + 0x4d,0xe0,0xd6,0x11,0xa8,0xee,0xba,0x36,0xd9,0x63, + 0x7a,0xad,0x57,0xe9,0x20,0x68,0x46,0x04,0x66,0xab, + 0xa0,0xfa,0xbd,0x69,0x2a,0xe9,0xbb,0x24,0xe4,0x30, + 0xf0,0x0b,0x6a,0x08,0x12,0x35,0x54,0xc8,0xe5,0x2a, + 0x53,0x73,0x48,0x15,0x99,0xed,0x12,0x6a,0x76,0x0b, + 0x06,0x52,0x32,0x1a,0x84,0xff,0xec,0x44,0x93,0x20, + 0x48,0x76,0xc2,0xab,0x91,0xb0,0xad,0xdf,0x17,0x4d, + 0x85,0xe9,0x83,0xa2,0x8a,0x71,0x4a,0x8c,0xa4,0x6d, + 0x55,0xdb,0x62,0xed,0x5a,0x8a,0x4a,0xaa,0xea,0xb3, + 0x23,0x25,0x5f,0xc3,0x74,0xdf,0x2d,0x76,0x19,0x68, + 0x00,0x89,0xc8,0x5b,0x94,0x4c,0x5c,0x46,0x4d,0x3a, + 0xc4,0x1b,0x4c,0x1c,0x88,0x9c,0x1c,0x08,0xdf,0x95, + 0xd0,0x1c,0xb7,0xd7,0x74,0xf2,0x0a,0x28,0x19,0x95, + 0xf6,0xf7,0x16,0x01,0x77,0xfa,0x64,0x29,0xf6,0xb8, + 0x98,0x96,0x3c,0xe4,0x88,0xe2,0xd1,0x13,0xb7,0xad, + 0xd9,0x2f,0x75,0x54,0xe0,0xfb,0xa2,0xfb,0x80,0x9b, + 0xfe,0x4b,0xe7,0xdd,0x84,0xdc,0x6d,0xd1,0xb7,0x94, + 0x98,0xb8,0x16,0x6d,0xea,0x70,0x4c,0x28,0x53,0x12, + 0x3e,0x7d,0x2d,0x9c,0x70,0xd7,0xc6,0x88,0x2e,0x1b, + 0x4e,0x02,0x69,0x13,0xdf,0x27,0xf9,0x1f,0x0d,0x13, + 0x36,0x31,0x91,0x71,0x63,0xdc,0x4e,0xa4,0x2b,0xb1, + 0x63,0x5d,0xcf,0xd8,0x21,0x08,0x3d,0x1b,0xef,0xfc, + 0x94,0xe9,0xa5,0xba,0x6b,0xd7,0x16,0x8f,0x4b,0x20, + 0x68,0x63,0x2a,0xc7,0x68,0xc3,0xa7,0xea,0xc9,0x4d, + 0xaa,0x0e,0x12,0xe9,0x55,0x37,0xbf,0x3c,0xb7,0x07, + 0xca,0x43,0x10,0xb1,0x0b,0x62,0x37,0x2a,0x02,0xe6, + 0x9d,0x05,0x49,0x6e,0xe2,0xe0,0x60,0x92,0x16,0xa0, + 0xd7,0x0a,0xb6,0x0a,0x63,0xb5,0x9f,0xfc,0xe1,0xdc, + 0xa4,0x59,0x78,0xce,0x51,0xc3,0x25,0xa9,0xea,0x6e, + 0x50,0x51,0x80,0xb9,0xab,0x59,0x41,0x90,0xc0,0xde, + 0xd8,0x2e,0x9b,0x10,0x0f,0xd3,0x3e,0xab,0xef,0xf7, + 0xfe,0xd6,0xd6,0xa2,0x00,0xeb,0xb8,0x75,0x12,0x6f, + 0x4a,0xf9,0x60,0x93,0x4a,0xb4,0x5b,0xaf,0xe6,0x20, + 0xab,0xa9,0x4d,0xae,0xaf,0xce,0x4c,0xaf,0x56,0x52, + 0xc6,0x4f,0x36,0x09,0xe1,0x80,0x29,0x42,0x2f,0x5c, + 0x6b,0x90,0x44,0x6f,0x7b,0x1c,0x75,0xd5,0x3c,0xb5, + 0x3f,0x05,0x05,0x2f,0x42,0xb2,0xd3,0x94,0x71,0x8f, + 0x85,0xf0,0x7e,0x9d,0x4f,0x65,0x94,0x2d,0xa1,0xe9, + 0xa3,0x84,0xc4,0x6f,0x10,0x89,0x30,0xbd,0x67,0xbf, + 0xc3,0xb8,0x2d,0xb8,0x58,0x56,0xa6,0x98,0x4d,0x92, + 0x09,0x1f,0xb5,0x23,0xd3,0xfe,0x73,0x62,0x92,0xca, + 0xe9,0x13,0xe4,0x1a,0xc5,0x95,0x37,0xc8,0x4e,0xf0, + 0xb7,0x1b,0x87,0x1a,0x26,0x1a,0xc5,0xaf,0xd7,0xeb, + 0xf5,0xbf,0x55,0xd5,0x7f,0xbe,0xae,0xeb,0xbf,0x6f, + 0x13,0x08,0xb7,0xe0,0x27,0xef,0x22,0x5a,0x40,0x1b, + 0xef,0x2e,0x82,0x1d,0x15,0xce,0x9a,0xaa,0xbe,0xad, + 0xba,0xac,0x0b,0x02,0x2d,0xe0,0xd5,0x34,0x86,0xaa, + 0xfb,0x95,0x26,0x16,0x42,0x02,0x19,0x05,0x09,0xd5, + 0x9c,0x92,0x78,0x0c,0x94,0xd0,0x28,0xd7,0xc0,0x18, + 0xd4,0xd9,0xc0,0x43,0xef,0x91,0x64,0xc9,0x69,0x7d, + 0x0c,0x1b,0xb4,0xe0,0xfa,0x23,0x79,0x98,0xd6,0x4b, + 0xaa,0xea,0xa5,0xc5,0xb4,0x1a,0xa5,0x56,0xd1,0xca, + 0xfe,0xb3,0x93,0x16,0x8a,0xfc,0xfb,0xcf,0xb3,0x77, + 0xd5,0x1f,0x49,0xbf,0x3b,0xb2,0xba,0xe3,0x00,0x85, + 0x01,0x85,0xf1,0x5d,0x38,0x74,0x35,0xac,0x73,0x3c, + 0xe4,0xd2,0xbb,0x18,0x92,0x33,0xfb,0x3e,0xc5,0x47, + 0x2a,0x11,0xff,0x0f,0x05,0xbf,0x25,0xb1,0xff,0x24, + 0xbe,0x93,0xac,0xfb,0x33,0x71,0x55,0xee,0x9f,0x49, + 0x7e,0x61,0x57,0x9b,0x10,0x33,0xf1,0x33,0x4d,0x87, + 0x5d,0x6e,0x4a,0x8a,0xae,0xaf,0x7b,0x4f,0x42,0x35, + 0x7f,0xe0,0x7e,0x0f,0x3d,0x6b,0x40,0x23,0x0e,0xa0, + 0xd4,0x07,0x74,0x79,0x8e,0x39,0xa8,0xdd,0x7b,0x3c, + 0x40,0xda,0x3d,0x9b,0x7b,0xbc,0x9a,0x61,0x6c,0x4b, + 0x5e,0xed,0xcf,0x19,0xd7,0x80,0xb7,0xe7,0xd9,0xae, + 0xf7,0x98,0xf5,0xe8,0xde,0xc9,0x31,0xef,0xfe,0x98, + 0xbd,0xe3,0xee,0xd1,0x3f,0xf8,0xcb,0xbb,0x9c,0xcb, + 0x3d,0x1e,0xc3,0xd7,0x3a,0xa6,0xd5,0x7f,0x20,0xf6, + 0x3a,0x83,0xe0,0x63,0x80,0x07,0x9a,0x36,0xb4,0xbf, + 0x6f,0x8a,0xdd,0x03,0xe7,0xf3,0x81,0x38,0x7e,0xe0, + 0xcc,0x3f,0x70,0x36,0xf4,0x67,0xfd,0x9f,0xae,0xeb, + 0xfa,0x7f,0x5f,0x00,0xaf,0x91,0x9b,0xf5,0xca,0xa4, + 0x33,0x25,0x19,0x1b,0x71,0x22,0xaa,0xae,0x5d,0x3f, + 0xf6,0xcf,0x9f,0x3f,0x49,0x54,0xaf,0xa6,0xd1,0x38, + 0x97,0xe9,0x26,0xc3,0x57,0x25,0x78,0xba,0x83,0x4b, + 0xc9,0x9a,0x7a,0xe8,0x25,0x5e,0xce,0xa6,0x15,0xd8, + 0xab,0x27,0x53,0xd1,0x3e,0xa0,0xf7,0x09,0x8a,0x9d, + 0xde,0xa1,0x6b,0x71,0x01,0x5f,0xa4,0xd2,0xf7,0x10, + 0x34,0x3b,0xe9,0xfe,0x5c,0xe0,0x47,0x14,0x12,0x45, + 0xdb,0xfa,0xea,0xbe,0x43,0xf4,0xf9,0x4e,0x77,0xc3, + 0xad,0x93,0xaf,0xaf,0xaf,0xd2,0xf6,0xb0,0x08,0x69, + 0x56,0xa8,0x12,0xcb,0x25,0xa4,0xdb,0x96,0x41,0xe7, + 0x9b,0x90,0x4c,0xbe,0x90,0x27,0x4b,0x45,0x17,0x37, + 0x09,0x69,0x9f,0x88,0x52,0xae,0xd7,0x64,0x9a,0x3c, + 0xed,0xb1,0x54,0x94,0x24,0xc9,0xfc,0x89,0x9f,0xa2, + 0x02,0x8f,0xfa,0x8c,0x26,0x19,0x88,0x96,0x24,0xd6, + 0xa6,0x22,0x6d,0xad,0xbc,0x94,0xd8,0x97,0x22,0x95, + 0x6e,0x2a,0x95,0x8a,0x47,0x27,0xd6,0xe8,0x38,0x36, + 0x84,0xae,0xd3,0xde,0xd9,0x22,0xa4,0x83,0xaa,0x72, + 0x01,0x7a,0x5f,0x34,0x49,0x4c,0x09,0x30,0xb5,0x6a, + 0x9c,0x94,0x03,0x75,0x0f,0xa6,0xa2,0x17,0xe2,0xad, + 0x2b,0x34,0xca,0x78,0xa6,0x5d,0xc9,0x68,0x77,0x8a, + 0xa3,0x49,0x87,0x0a,0x84,0x0b,0x3f,0xf2,0xcb,0x9c, + 0x26,0x85,0xa5,0xfb,0x60,0xb9,0x4a,0x5a,0xc8,0x11, + 0x6f,0x10,0x12,0xee,0xda,0x58,0x5b,0x84,0xf7,0x65, + 0x87,0xa0,0x52,0xab,0x9b,0xd0,0xad,0x89,0x73,0xf8, + 0x66,0x86,0xea,0x3e,0x94,0x7a,0x92,0xd4,0x8f,0x24, + 0xa8,0x39,0x25,0x25,0xd3,0xc5,0x51,0xcb,0x21,0x5d, + 0x0f,0x8d,0xcd,0x12,0xfc,0x46,0x36,0x17,0x9b,0x2a, + 0x76,0x23,0x75,0xee,0x5e,0xb8,0x23,0x16,0xbb,0x83, + 0x8c,0x08,0x64,0xc9,0xd9,0x1a,0x9e,0xa9,0x33,0x8b, + 0x2b,0xe2,0xcc,0x24,0xff,0x27,0xda,0xe0,0x81,0x27, + 0x52,0x84,0x5e,0x99,0xc3,0x6d,0x3c,0xa0,0x5d,0x1b, + 0x95,0x0c,0xfe,0x26,0x18,0xdf,0xbd,0x4b,0x27,0x56, + 0x48,0xef,0x31,0x6d,0x8d,0xf0,0xfc,0x4a,0x27,0x05, + 0x4d,0x42,0x1c,0x05,0xf6,0xba,0x57,0xd7,0x54,0x70, + 0x7c,0x82,0xf8,0x28,0xd7,0xe5,0x32,0xc4,0x44,0x4a, + 0x82,0x92,0x29,0x62,0xd2,0xc8,0x21,0xe1,0xbe,0x54, + 0x40,0xb9,0x56,0xe9,0x42,0x91,0xb7,0x36,0xed,0x0c, + 0x27,0xca,0x4a,0x28,0xa0,0x26,0x08,0x2e,0xe6,0xa8, + 0x11,0xea,0x70,0x48,0x16,0xb5,0x21,0x5c,0x0b,0xc8, + 0xad,0x2b,0x2a,0x66,0xa9,0x7d,0x0c,0xad,0xc1,0x72, + 0x67,0x40,0x2f,0x20,0x1c,0xe7,0x66,0x52,0x49,0xee, + 0xd7,0x73,0x5f,0x3f,0xd1,0x01,0x36,0x16,0x4c,0xa9, + 0x40,0xfc,0x84,0xb8,0xde,0xdf,0x95,0x26,0x3d,0xe9, + 0xa0,0x1d,0x38,0x9c,0x2b,0xee,0x91,0x93,0x03,0x70, + 0x03,0x15,0xa6,0x35,0x4e,0xc6,0xb3,0x6f,0xef,0xe2, + 0x1b,0x20,0xc0,0x22,0xc0,0x25,0x5c,0x1f,0x8a,0x92, + 0x8e,0x88,0xbc,0xb1,0x0e,0xc2,0xf6,0x2d,0xbc,0xef, + 0x4a,0xd3,0x66,0x44,0xdd,0x01,0x2b,0x93,0x77,0xd4, + 0x8b,0x5e,0xb0,0x8e,0xdf,0x39,0x9e,0x80,0x3e,0xbc, + 0x24,0x89,0x3d,0xf9,0x95,0xb8,0x4d,0xfd,0x09,0x3a, + 0xb1,0x50,0x8a,0x5c,0xcb,0xfa,0x53,0x9f,0xd2,0xb5, + 0x82,0xba,0x71,0x2a,0xd9,0x5c,0xe8,0x01,0xec,0x14, + 0x88,0x53,0x22,0x71,0x19,0xc2,0x23,0xf5,0x7b,0xd3, + 0x81,0xbd,0x21,0xd9,0x25,0x9f,0x1e,0xdd,0xa0,0x14, + 0xbc,0xa9,0xf2,0xef,0x49,0x30,0x4d,0xba,0x19,0x4d, + 0x0e,0x4a,0x8a,0x2a,0xb5,0x12,0x35,0x41,0x22,0x2d, + 0x17,0x37,0xea,0x99,0x46,0xf6,0xf5,0xbb,0xd3,0x88, + 0xf0,0x44,0x5c,0xdd,0x1c,0x80,0xae,0x55,0x9c,0xda, + 0x4a,0x1d,0x81,0x22,0xe5,0x56,0x7a,0xd7,0x37,0xb7, + 0x86,0xd6,0xd2,0x14,0x00,0x53,0xc0,0xee,0xfb,0x75, + 0xfa,0x3d,0xf5,0x8f,0x4a,0xa3,0xeb,0x34,0xb5,0x49, + 0xc9,0xe7,0xb5,0xf4,0x39,0xea,0x93,0x4a,0xba,0xd6, + 0x88,0xbf,0xa7,0x09,0x02,0x14,0x43,0x76,0x0d,0x38, + 0x32,0xb2,0xea,0x8a,0xa5,0x09,0xd5,0xa1,0x68,0xa9, + 0x34,0x99,0xea,0x10,0x4c,0x87,0xf0,0xba,0x02,0x63, + 0x40,0xfe,0x0b,0x62,0x79,0x99,0x09,0xa3,0xa2,0x77, + 0xec,0x12,0x8e,0x89,0xbb,0x32,0x71,0xcc,0x28,0x7e, + 0xf5,0xe7,0x00,0xb2,0x1f,0xb5,0xd9,0x13,0x60,0x71, + 0x52,0x50,0xd0,0x6c,0x12,0x8b,0xa8,0x49,0x95,0x90, + 0x90,0xc5,0xc4,0xed,0x04,0x26,0xd4,0x24,0x85,0x90, + 0xf6,0xd2,0x65,0x86,0x5a,0xd2,0xba,0xdd,0xb6,0xd7, + 0x09,0x95,0x4d,0xed,0x74,0x3d,0xa7,0x7f,0xd3,0xc2, + 0xf8,0x84,0x48,0xe4,0x94,0x9c,0xef,0x43,0x72,0x93, + 0xf8,0x38,0x82,0x6e,0x70,0x2d,0x26,0xc8,0xda,0x26, + 0x2b,0x29,0x43,0xed,0xa6,0x69,0xa9,0x9a,0xdc,0x10, + 0xfa,0x88,0x90,0x9a,0x46,0xf1,0x3a,0x0a,0xe4,0xa6, + 0xc4,0xfa,0xa1,0x11,0x54,0xb2,0x1f,0xcf,0x3c,0xc1, + 0xc8,0x8e,0x9f,0xe4,0xb8,0x16,0xa9,0x2d,0xe8,0x90, + 0x09,0x58,0xbc,0x95,0x7c,0xd6,0x12,0x24,0x3f,0x04, + 0x32,0xfb,0x7c,0x9d,0x62,0xf7,0xfd,0x63,0x4d,0xa5, + 0xd9,0xa2,0x42,0xb2,0x86,0x1f,0xdc,0x1e,0x6a,0xf3, + 0x39,0x04,0x0b,0xc6,0x66,0xcb,0xc1,0xf6,0x49,0xb2, + 0xdd,0x1c,0x66,0x76,0x6d,0x68,0xd2,0xd0,0x2b,0x26, + 0x42,0x6c,0xdc,0x73,0xd3,0x3d,0x9c,0xb4,0x3d,0x54, + 0x21,0x56,0xa7,0x80,0x92,0xb2,0x7a,0xf2,0x67,0x9a, + 0x7e,0x97,0x78,0x02,0xd3,0x10,0x04,0xb5,0xf8,0xfb, + 0xe7,0x51,0x95,0x79,0xb7,0x3c,0x3b,0x8f,0xc0,0xc5, + 0x49,0x51,0x01,0x3f,0xa1,0x45,0x58,0x8e,0x23,0xd3, + 0x8b,0x1b,0xe5,0x72,0xa8,0x62,0x30,0x49,0x31,0xe8, + 0xf7,0x0a,0x42,0x72,0x5c,0x8b,0xd7,0x29,0x4c,0x27, + 0xc5,0x64,0x8d,0x8b,0xfa,0xf9,0x26,0x61,0x1f,0x39, + 0x59,0xfd,0x33,0xee,0xcf,0x55,0x95,0xe2,0xbe,0x0f, + 0x21,0x91,0xb3,0x6a,0xca,0xaa,0x5c,0xdd,0xef,0x99, + 0x92,0x00,0x8a,0x6d,0xee,0x1c,0x50,0x85,0xf2,0xa9, + 0xd8,0x48,0x67,0x0d,0x01,0x0a,0xa9,0xdd,0xbc,0xed, + 0x86,0x38,0x4d,0x21,0xa3,0xf4,0xfc,0x78,0x86,0xae, + 0xd3,0x91,0x78,0x7d,0x54,0x80,0x2c,0xc9,0xe3,0x05, + 0x7c,0x27,0x42,0xe8,0x0f,0x74,0x79,0x8e,0xb1,0x56, + 0x79,0x7c,0xf6,0x2b,0xb5,0x37,0x9c,0x37,0x4b,0x52, + 0xeb,0x4d,0x8b,0xa3,0x57,0x15,0x5a,0xe5,0x3b,0xd4, + 0x84,0xf8,0x38,0x44,0x62,0x4d,0x92,0xe4,0x74,0x70, + 0xa6,0xc5,0xef,0x16,0xc7,0x94,0x59,0x52,0xc5,0x3a, + 0x71,0x10,0x12,0x83,0x7d,0x5a,0x6c,0xa9,0x12,0x4c, + 0xad,0x0e,0x4a,0x40,0xb6,0xe3,0xf9,0xa1,0x0f,0x6c, + 0xbd,0xc7,0x9c,0x12,0x72,0x72,0x3f,0xd7,0xa4,0x61, + 0x93,0x88,0xbb,0x67,0xe6,0xda,0x06,0x84,0x54,0xd0, + 0x04,0x8a,0x6b,0x1b,0x12,0x3a,0x48,0x1c,0x10,0x5a, + 0x77,0xce,0xc6,0xc4,0x91,0x8f,0x49,0x15,0x55,0x85, + 0x16,0xa7,0x31,0x78,0xd3,0x52,0xa9,0xd4,0xe6,0x05, + 0xde,0x8b,0x1e,0xba,0xe5,0xb8,0x30,0xc3,0xb5,0x5e, + 0x49,0xf9,0x3c,0x04,0x7d,0x1d,0x9f,0xbf,0x52,0xb1, + 0x41,0x89,0x37,0x71,0x78,0x9c,0xbe,0xd4,0xe4,0x2d, + 0x44,0x08,0xe5,0x70,0x6d,0x05,0x28,0xd2,0xbd,0x06, + 0x2a,0x08,0xcd,0x15,0xb4,0x44,0xae,0x6b,0x70,0x2b, + 0x57,0x2e,0x08,0xd9,0x07,0x29,0xdf,0x86,0xee,0x6d, + 0xd3,0xb6,0x04,0x4a,0x45,0xa5,0x29,0xe2,0x24,0x00, + 0xa8,0x6e,0xf7,0x53,0x12,0xf3,0xc9,0x84,0x13,0x71, + 0x8e,0x12,0x2d,0x41,0x93,0xa3,0x24,0x7f,0x71,0x0d, + 0x62,0xb0,0xaa,0x2a,0xed,0xb4,0x83,0x26,0x37,0x75, + 0x68,0x87,0xba,0xe7,0x55,0x3a,0x61,0x4c,0xad,0x68, + 0x45,0x9f,0x48,0x95,0x5a,0x65,0x5e,0x12,0xad,0x45, + 0xcf,0x4c,0x75,0x51,0xa0,0x78,0x34,0xbd,0xb3,0x4f, + 0xa6,0x9d,0x5f,0xae,0x8a,0xd5,0x03,0x81,0xda,0x3f, + 0x5b,0x2b,0x09,0xb5,0xa7,0xdf,0x8c,0xe1,0x6d,0xcc, + 0xf0,0x08,0x81,0x71,0x0f,0xc2,0x21,0x28,0x3a,0x4e, + 0xa8,0x7d,0x59,0x07,0xd1,0x2e,0xda,0x7c,0xd8,0x3a, + 0x73,0x44,0x56,0x12,0x72,0x24,0x25,0xea,0xde,0x3a, + 0x23,0x04,0x41,0x13,0xce,0x04,0x89,0x4e,0x2d,0x0b, + 0x17,0x84,0x8c,0xf8,0x60,0x99,0x43,0x27,0xf2,0x47, + 0x1c,0x72,0x35,0xe9,0xba,0xd0,0x7d,0x3a,0x48,0x36, + 0x89,0x78,0xb9,0xa0,0xaf,0xe4,0xe5,0xa9,0xc2,0xa2, + 0xc4,0x7e,0x6a,0x0d,0xa5,0xd6,0x28,0x05,0x46,0x07, + 0x71,0xbb,0x71,0xea,0x4d,0x3f,0xbf,0x8b,0x01,0x4e, + 0xa4,0xe0,0x80,0xfc,0x59,0xb5,0xe8,0x54,0x35,0x4e, + 0xc1,0x29,0x91,0x9c,0xb5,0xb0,0x72,0x49,0x9c,0xa2, + 0x7f,0x09,0x5d,0x82,0x6b,0x7a,0xd3,0x26,0x4b,0x49, + 0x13,0xb5,0x32,0xf5,0x00,0x49,0xca,0xc8,0x69,0xf2, + 0xf5,0x16,0x54,0xbd,0x8c,0x97,0x5f,0x17,0xe5,0x74, + 0x89,0x05,0x8d,0xc0,0xeb,0x9a,0x77,0x63,0xd9,0x13, + 0x42,0x43,0x5a,0x6c,0x14,0x6f,0x6e,0x2d,0x9f,0x14, + 0x5b,0x5c,0xbb,0x9f,0xf6,0x6a,0x12,0x89,0x1d,0x68, + 0x1a,0x95,0x28,0x0e,0x7a,0xf6,0x4d,0x44,0xf9,0xcb, + 0x93,0xce,0x2b,0x29,0x22,0x53,0x6c,0x0a,0x1c,0xcd, + 0x9f,0x33,0x93,0xd0,0x9b,0x84,0x5a,0xb9,0xfd,0xe5, + 0x0c,0x50,0x69,0xea,0x73,0x81,0xd6,0xbd,0xbd,0x17, + 0xa2,0x72,0x0c,0x3a,0x82,0xb8,0x8f,0x74,0xdf,0xbb, + 0xd1,0xfb,0x29,0x36,0x4f,0x67,0xde,0x39,0xe7,0xb2, + 0x53,0x60,0xee,0x41,0x24,0x27,0xdf,0xd4,0xa3,0x75, + 0xee,0xb3,0x54,0x51,0x19,0x56,0xba,0x5e,0x4f,0x25, + 0x92,0xa7,0x23,0x6e,0x4f,0x7e,0x66,0x8e,0xa0,0xa5, + 0x15,0x99,0xfe,0xbb,0x1e,0xfc,0x94,0xb0,0x0d,0xea, + 0xb2,0x35,0x1d,0x72,0xee,0x77,0xa9,0xd7,0xa9,0xfa, + 0x21,0x01,0x19,0x71,0x4c,0xfb,0xd2,0x4d,0x42,0xa5, + 0x4b,0x82,0x68,0xa9,0x2f,0xdd,0x82,0x66,0x4d,0xdc, + 0x30,0xd2,0x60,0x1a,0x34,0x34,0x2a,0x6d,0x30,0xd3, + 0x3b,0x7f,0x54,0x29,0x6a,0x3d,0x32,0x25,0x2a,0xa9, + 0x6a,0x91,0xf6,0x42,0x25,0x3d,0x0d,0x5a,0xa7,0x3f, + 0x4a,0xa5,0x6d,0x3c,0x1f,0x5a,0x26,0xc8,0xf5,0x71, + 0x68,0x6d,0x17,0x8d,0xdc,0x78,0x3c,0xb5,0x3d,0x56, + 0x2a,0xf0,0x97,0xfa,0xf6,0x93,0x14,0xc6,0x80,0x12, + 0x46,0xeb,0x8d,0x41,0x12,0xe0,0x6d,0xfa,0x6b,0xdb, + 0x32,0x68,0xeb,0xbb,0x12,0x2a,0x29,0x68,0x72,0x25, + 0xbd,0x34,0x32,0x29,0x76,0xa4,0xfd,0x80,0x56,0xa0, + 0xa8,0x61,0x5f,0x5b,0xa6,0x10,0xa4,0xc4,0xba,0x48, + 0x17,0x2a,0x29,0x94,0x9b,0x2a,0x9b,0x08,0xdd,0x56, + 0xe1,0xd8,0xa1,0x28,0xa1,0x65,0x7d,0xa5,0x49,0xad, + 0x84,0xa2,0x11,0x6a,0x9c,0xba,0x0d,0x4e,0xd3,0x8d, + 0x5a,0x37,0x1b,0xee,0xca,0x16,0xb5,0x98,0xf6,0x90, + 0xfb,0x4e,0xda,0xe7,0x93,0x38,0x22,0xc5,0x68,0x1d, + 0xc8,0x09,0x22,0x85,0xd6,0x6a,0x88,0xce,0x1f,0x9a, + 0x68,0xdb,0xfa,0x06,0x26,0x85,0x7e,0x17,0xcb,0xdd, + 0x3f,0x34,0x8d,0xfd,0x46,0x21,0x48,0x30,0xe6,0xd4, + 0x8e,0xd9,0xaa,0x7b,0x92,0xe9,0x5c,0xfa,0xbd,0x85, + 0x42,0xf4,0x5b,0xd0,0x91,0xcf,0xae,0xc9,0xfd,0xdc, + 0x1d,0xc0,0xae,0x05,0xb2,0x69,0x71,0x85,0xcc,0x1e, + 0x51,0x08,0x87,0x60,0x51,0x5b,0x30,0x6d,0xa4,0x74, + 0xad,0xee,0xa0,0x73,0xc1,0x80,0xb8,0x39,0xcb,0x69, + 0x00,0x47,0x10,0xad,0x24,0x68,0xe8,0x5a,0x6f,0xda, + 0x3f,0x77,0x88,0x51,0xd7,0x60,0x72,0x3e,0x50,0xfd, + 0x3e,0x40,0x21,0x76,0xd4,0xa4,0x81,0x56,0x4c,0x25, + 0x37,0x70,0x42,0x31,0x93,0x8a,0xf2,0x05,0x6a,0xd7, + 0x9d,0x4b,0x92,0x82,0xa8,0xaa,0x56,0xbb,0xf5,0x26, + 0x68,0x81,0x95,0x28,0x18,0xaa,0xd5,0x37,0x02,0xf0, + 0xa6,0xed,0xb8,0x51,0x6d,0x25,0x54,0x36,0x0d,0x59, + 0x6c,0x5a,0xba,0x90,0x00,0x57,0x42,0x38,0xc3,0xbb, + 0x19,0x7d,0x09,0x7b,0x51,0x40,0x68,0xb4,0x2b,0xdc, + 0x26,0xd5,0x77,0x37,0x5c,0x12,0x0e,0x0e,0x9c,0xf0, + 0x09,0xe2,0xa5,0xe5,0xf6,0xbd,0x43,0x32,0x55,0xd0, + 0xd6,0x11,0xa2,0xa7,0x36,0x93,0xdb,0x43,0xfa,0x8c, + 0x08,0x31,0x74,0x71,0x24,0x55,0xf4,0x9a,0x88,0xea, + 0x9e,0xa6,0xe2,0x59,0xa5,0x45,0x16,0x45,0x5e,0x19, + 0x0b,0x23,0x44,0xe1,0xdd,0x00,0x87,0x5c,0x17,0xfa, + 0xb8,0xa9,0xb8,0xa6,0xe3,0xf0,0x29,0x65,0x23,0x01, + 0x13,0x8e,0xe6,0x40,0x1c,0xcb,0x44,0x11,0xd9,0x1a, + 0xa7,0xba,0x4e,0xcb,0x44,0x20,0x5f,0x78,0x9f,0x4d, + 0x36,0x3d,0x35,0xb5,0x2a,0xab,0xea,0xfa,0x4d,0x53, + 0x38,0x89,0x1c,0x4d,0xec,0xfc,0x81,0xa3,0x31,0x9a, + 0x8a,0x26,0xa2,0x69,0x0a,0xb6,0xcb,0xe4,0xa9,0x0c, + 0x47,0xa9,0xb4,0x1d,0xe5,0x50,0x0e,0xf2,0xc0,0x72, + 0xd7,0x4d,0xd9,0x78,0xaa,0x0a,0xe9,0x9e,0xb5,0x9a, + 0x51,0x14,0xc5,0xb5,0x6d,0x06,0x3e,0x87,0xf3,0xa3, + 0x72,0x6e,0xf5,0xd7,0xa4,0x4d,0x94,0x92,0x40,0xe0, + 0x72,0x54,0x5f,0x80,0x04,0xbf,0xf6,0x83,0x7d,0x33, + 0xb9,0xf7,0x7a,0xbd,0xca,0x1d,0xa4,0x54,0xc9,0x91, + 0xab,0x39,0x91,0x9b,0xd5,0xe5,0xbb,0x5f,0x2f,0x21, + 0x38,0xea,0x0d,0x66,0xb4,0xac,0x62,0xd2,0x04,0x2a, + 0xb6,0x0f,0xa5,0x5b,0xe2,0x14,0x39,0x8e,0x80,0x12, + 0xdb,0x87,0xc9,0x0f,0xd4,0x9c,0xe9,0x6b,0xbb,0xc7, + 0x09,0xaa,0x3e,0x9d,0x09,0xea,0x54,0x11,0xa6,0x82, + 0x67,0xe2,0x2b,0xe9,0x35,0xdf,0x7c,0x91,0x9e,0xa7, + 0x6e,0x2b,0xf5,0x72,0x0a,0x6e,0x90,0xc4,0x7f,0x7d, + 0x7d,0x9d,0xd4,0xc6,0xb8,0x1a,0x01,0xb3,0x07,0xe1, + 0xbe,0x87,0x5f,0xaf,0xd7,0x91,0x24,0xbe,0x07,0xce, + 0x43,0x6d,0x49,0x9a,0x3e,0xbd,0x1a,0x01,0x78,0x2a, + 0xa4,0xa6,0x82,0x67,0xa3,0x05,0xa3,0xd7,0xdb,0xdf, + 0xb7,0xdb,0x07,0x2d,0x66,0x1e,0x13,0xa7,0x4e,0x3a, + 0x87,0xa4,0x05,0x7a,0xcc,0xfa,0x3d,0x86,0xef,0x72, + 0x36,0x46,0xa0,0xd3,0x35,0x6a,0xb1,0x06,0xd6,0x48, + 0x71,0xb0,0x28,0x79,0x73,0x29,0xc9,0x77,0x02,0x16, + 0xdc,0xe1,0x7e,0x09,0xe9,0x9d,0x0a,0xf5,0xc9,0x8c, + 0x38,0x4d,0x63,0x86,0xb3,0xbf,0x2e,0x11,0x78,0xec, + 0xfb,0x5e,0xc9,0xec,0xe9,0xfb,0x69,0xbf,0x6f,0xb8, + 0xae,0x81,0xfa,0xf0,0xf3,0x87,0xaf,0x24,0x20,0x47, + 0x62,0x7d,0xc9,0x8b,0x23,0x55,0x20,0x01,0x06,0x46, + 0x8d,0x02,0x25,0xea,0x75,0x31,0x31,0xfa,0x1d,0x25, + 0x6a,0x39,0x84,0x65,0x91,0x85,0xc6,0xac,0x9b,0xe0, + 0x54,0xb3,0x09,0x56,0x56,0x08,0xd4,0x4a,0x33,0x09, + 0xcb,0xca,0x85,0xf7,0x0e,0xfa,0xce,0x78,0x95,0xaa, + 0x2e,0xd7,0x93,0xa6,0x6a,0xa9,0x67,0xb4,0x4e,0x42, + 0xde,0x71,0xc4,0x0c,0xba,0x52,0x8a,0x44,0x29,0x1f, + 0xa8,0x6b,0x5e,0xf4,0xde,0x70,0x92,0x6b,0xb8,0x98, + 0x80,0x5a,0x90,0xe8,0x55,0x82,0xbd,0x27,0xbe,0x83, + 0xe3,0x76,0x84,0xf5,0x1f,0xcd,0x67,0x83,0x08,0xe9, + 0x5b,0xeb,0x85,0xd6,0x92,0x24,0xb6,0x94,0xd4,0x5d, + 0x8e,0x57,0xd6,0x2d,0x21,0x92,0x3f,0x5e,0xe2,0x2b, + 0x69,0xf2,0xd8,0xf9,0x42,0xea,0x01,0x76,0xfb,0x90, + 0xf5,0x9f,0xb9,0xff,0xf7,0xbd,0x7e,0x4b,0xab,0xc1, + 0xc9,0xac,0x98,0xda,0x92,0x0e,0x15,0x72,0x22,0xa1, + 0xb7,0xda,0xb4,0xf2,0xa5,0xdc,0x1a,0xe8,0x2d,0x81, + 0xa4,0xcd,0xe4,0x0a,0x1f,0x68,0x5d,0x15,0xad,0xbd, + 0x94,0x6c,0x5f,0x99,0x58,0x4b,0xb1,0xdb,0x39,0x7d, + 0xdb,0xea,0xdf,0x71,0x30,0x88,0xc0,0x3f,0xb4,0xec, + 0x6b,0xb2,0x2c,0x48,0x64,0xee,0x89,0x9f,0xe7,0xee, + 0x53,0x69,0x11,0xce,0x3c,0x94,0x50,0xe5,0x14,0x5f, + 0x5d,0x02,0xaf,0x00,0x82,0x6b,0xf3,0x4e,0xc9,0x17, + 0x71,0x21,0x37,0x6d,0x35,0x9a,0x54,0x06,0xb2,0xbc, + 0x35,0xec,0xd5,0xef,0x22,0x53,0x51,0xd2,0xb6,0x22, + 0x0a,0xc4,0x56,0x9a,0x80,0xce,0x0c,0xa5,0x6f,0x7c, + 0xd2,0x62,0xa4,0x6b,0x7f,0xbd,0x5e,0x4f,0x12,0x34, + 0x05,0x3d,0x4d,0x3c,0xc2,0x83,0x2e,0xd7,0x83,0x4b, + 0xd0,0x59,0xaa,0xee,0x06,0x0f,0xa1,0x37,0x3b,0x01, + 0xa3,0x21,0x13,0x33,0xef,0x84,0x2e,0xb9,0xef,0xdb, + 0x98,0xb8,0xd1,0x14,0x5b,0x42,0x57,0x74,0x02,0xc4, + 0x21,0x29,0xa9,0x82,0x9b,0x16,0x84,0x0b,0xf4,0xfd, + 0xfd,0xa4,0x7b,0x70,0x55,0x18,0xad,0x99,0x3b,0x12, + 0x9b,0xc4,0xaa,0x1c,0xdf,0x8a,0x82,0x82,0x69,0x67, + 0xd1,0xf7,0x8d,0xee,0xd6,0x5b,0xe5,0x62,0x68,0x51, + 0x44,0xb1,0xae,0x64,0x5f,0x01,0xed,0xa0,0xda,0x20, + 0x9f,0x1a,0xd4,0x36,0xad,0x0d,0x52,0xf3,0x4d,0xae, + 0xd6,0xed,0x1d,0x97,0x4e,0x3e,0x4d,0x05,0x82,0x19, + 0xb3,0xad,0x66,0xc6,0x5a,0x0e,0xfa,0x27,0x65,0xf2, + 0x04,0xb3,0x3b,0x6e,0xcf,0x35,0xe8,0x67,0xa5,0xf7, + 0x2d,0xc9,0x7b,0x25,0x94,0x8d,0x8a,0x02,0x07,0xb9, + 0xab,0x1b,0xbc,0xe3,0x23,0x76,0x04,0x17,0xd4,0x79, + 0xad,0x27,0x61,0x4a,0x9e,0xd3,0xc4,0x66,0x52,0xde, + 0x75,0x6d,0x7f,0xe2,0x1d,0x05,0xa5,0xe6,0xf4,0x1e, + 0x47,0xc7,0x7b,0x87,0x4c,0x6f,0x29,0x15,0x2a,0xbf, + 0x40,0x89,0x9c,0x9b,0x3c,0x4b,0xed,0x9e,0x1e,0xc3, + 0xc8,0xbf,0x4a,0x5f,0x86,0x13,0xfa,0xa5,0x16,0x28, + 0x15,0x86,0x7a,0x7d,0x34,0x8d,0xe5,0xd6,0x1d,0xdd, + 0x5b,0x1a,0x64,0x48,0xbf,0xeb,0x62,0x55,0x98,0x6a, + 0x1b,0x2d,0x98,0xc8,0x56,0xca,0x75,0x3e,0x88,0xfb, + 0x93,0x5a,0xeb,0x30,0x31,0x67,0xe3,0x7a,0x4b,0x4c, + 0xff,0x91,0x56,0x98,0x78,0x17,0x69,0xe1,0x4e,0xb0, + 0x69,0x82,0x1b,0xdd,0x46,0xeb,0x84,0x2c,0x50,0xe6, + 0x8d,0xbc,0x8d,0xae,0x6e,0xaa,0xc1,0xf9,0x93,0x83, + 0x2a,0xf1,0x0b,0x5c,0x70,0x9c,0x34,0x7a,0xa4,0x3a, + 0x2d,0x4a,0x1e,0xfb,0xe7,0x77,0xab,0x05,0x77,0x20, + 0xb7,0x6c,0xbf,0xa8,0x85,0xa1,0xaa,0xaf,0x69,0xa2, + 0x8a,0x44,0xc6,0x34,0xf3,0x76,0xcf,0x67,0x33,0xd1, + 0x93,0xc4,0xd9,0x36,0xa2,0x62,0xc4,0x95,0xa2,0xf7, + 0x6a,0xde,0x65,0xc1,0x7a,0x2d,0xe0,0x4f,0xe0,0x74, + 0xd6,0x24,0x42,0xa9,0xc9,0x5e,0xd0,0xb4,0x79,0xf3, + 0x98,0x53,0x84,0xd3,0xb4,0x5c,0x2b,0xb5,0xae,0x1c, + 0xfa,0xd5,0x11,0x0d,0x43,0x94,0xb7,0x1c,0x9f,0x4d, + 0xf5,0xd9,0xb9,0x45,0xa4,0x50,0x9c,0x08,0xcc,0x54, + 0xb1,0xeb,0x44,0x15,0x21,0x5c,0x97,0xd8,0x7b,0x4c, + 0x15,0x66,0xd0,0xe3,0xb2,0x88,0x1a,0xf9,0xdc,0x39, + 0x55,0xdd,0x44,0x1c,0x86,0x7b,0x2d,0x3a,0x14,0x54, + 0x99,0xde,0x24,0xe8,0x35,0x1c,0x06,0x2e,0x36,0x17, + 0xa0,0x2e,0x35,0x29,0xe8,0x4e,0x42,0x9e,0x8e,0xe4, + 0x9c,0x54,0xd3,0x1d,0xa2,0xe7,0x54,0x97,0x43,0x82, + 0xeb,0x2c,0x36,0x30,0x3e,0x51,0xd1,0x4e,0x5c,0xcb, + 0x74,0xf6,0xb9,0xe2,0x3a,0x09,0x8d,0x0e,0x7c,0xd8, + 0xc8,0xf1,0x73,0xf2,0x24,0xee,0x3c,0x1b,0x26,0x79, + 0x1d,0xe2,0x56,0x7a,0x76,0x91,0xd2,0xf9,0xe4,0xba, + 0xee,0x9e,0x19,0x4c,0x25,0x46,0x13,0x54,0xe2,0xcb, + 0x4e,0x1d,0x27,0x4d,0x96,0x14,0xbd,0xbd,0xd7,0x4a, + 0x4a,0x1e,0x5f,0xdd,0x4c,0xcf,0x41,0x62,0xe1,0x01, + 0xd7,0xa6,0x27,0x39,0xb5,0xc3,0xf4,0x3b,0xee,0x83, + 0x60,0x12,0x64,0xdc,0x78,0xc1,0x6c,0x38,0x42,0x1a, + 0xe0,0x0c,0x71,0xb8,0xa6,0x40,0xe0,0x02,0x93,0xe3, + 0x18,0x6d,0x89,0x8c,0xd4,0xca,0x4b,0x9b,0x2b,0x29, + 0x61,0x6a,0xdf,0x7a,0x23,0x2d,0x30,0xa9,0x7b,0x83, + 0x3e,0x46,0x4d,0x09,0x09,0x05,0x69,0x32,0x81,0x25, + 0x7e,0x83,0xb3,0xd8,0x08,0x6d,0xa1,0x82,0x24,0x97, + 0x04,0x21,0x91,0xa3,0x43,0xb6,0x29,0xfa,0x7b,0x46, + 0x50,0x10,0x35,0x84,0xfa,0xb3,0xd4,0xc4,0xa9,0x8b, + 0xf0,0xb9,0xff,0x39,0x4d,0x9f,0x44,0xf4,0x55,0xbd, + 0xa0,0x0f,0xe1,0xe4,0x88,0xc2,0x7c,0x42,0x96,0x26, + 0x84,0x8e,0x82,0x95,0xdb,0xeb,0xd2,0x9e,0x89,0xda, + 0x40,0x0b,0x98,0xfc,0xed,0xf9,0xf5,0x11,0x64,0x47, + 0xb0,0x5c,0x88,0xd4,0x95,0x72,0x33,0x34,0x38,0x13, + 0xec,0xef,0x46,0xe4,0x13,0xf9,0xd8,0x4d,0x6e,0x9a, + 0xa4,0x9b,0xa6,0x2a,0x0b,0x0e,0x95,0x72,0x88,0x60, + 0x47,0x78,0x41,0x59,0x1d,0x51,0xa0,0x8d,0x2c,0x86, + 0x72,0x6f,0xd2,0xf9,0xd2,0x9f,0xe9,0xe4,0x19,0x69, + 0xcc,0x40,0xc7,0x62,0x37,0xb5,0xa8,0x1c,0x42,0xe1, + 0x92,0x09,0xf2,0xe2,0xfa,0x04,0x55,0xa3,0xbd,0x93, + 0x26,0x86,0x87,0xd6,0xf4,0x83,0x9b,0x43,0x7b,0x64, + 0xb2,0xc8,0xd8,0x68,0xa6,0x25,0xfd,0xbe,0xc0,0x39, + 0xaa,0x2d,0x27,0x75,0xc1,0xe5,0xd3,0x77,0xff,0xb3, + 0xd7,0x5f,0x6a,0xfe,0x97,0x0e,0xf1,0xb4,0xf0,0xd2, + 0xc3,0x56,0xa7,0x6d,0xfd,0x79,0x32,0xec,0xec,0xc1, + 0x24,0x29,0x91,0x12,0x27,0xc1,0x3d,0xa8,0x69,0x3a, + 0x69,0x9a,0x62,0xd3,0xeb,0x9e,0x2c,0x38,0x88,0xf7, + 0x34,0x55,0x3c,0x00,0xaf,0xe3,0x67,0xa7,0x3e,0xf7, + 0x96,0xbc,0x78,0x05,0x5d,0x17,0x33,0xf1,0xb0,0xb2, + 0x48,0x48,0x5c,0x08,0x52,0x2b,0x76,0x55,0x4c,0x22, + 0xa6,0x37,0xb8,0xda,0x06,0x5c,0xd7,0x8b,0x77,0x2d, + 0xb7,0xbe,0x0e,0x93,0x7f,0xcd,0x64,0x5e,0x4a,0x23, + 0xbc,0xd4,0x01,0xa3,0xa4,0xbc,0x27,0xc7,0xce,0x44, + 0xb3,0x13,0x6c,0xa9,0x25,0x46,0x88,0x4f,0x4a,0x78, + 0xdc,0x14,0x1c,0x71,0x43,0x36,0x31,0x60,0xf3,0x67, + 0x93,0xc7,0x57,0x42,0x55,0x1d,0x62,0x48,0x09,0xda, + 0x22,0x21,0xaa,0x34,0xf1,0xf9,0x06,0x05,0x99,0xf5, + 0xab,0x3c,0x2c,0x9a,0xf0,0xd4,0x76,0x97,0x16,0x2b, + 0x13,0xb2,0x1e,0x12,0xc7,0x9a,0xc8,0xae,0x1b,0xdf, + 0x36,0x42,0xdf,0x5d,0x2b,0xaa,0x23,0xef,0x90,0x70, + 0xdb,0x42,0x49,0xa6,0x50,0x6b,0x4a,0xa4,0x5d,0xcb, + 0xc6,0x0d,0x73,0x28,0xba,0xab,0x09,0x9c,0x43,0xa5, + 0xf4,0x9a,0xbb,0xd0,0x62,0x4a,0xe8,0x9c,0x9e,0x16, + 0xe9,0xb9,0x51,0xc2,0x92,0xba,0x0c,0x9b,0x0e,0x48, + 0x6a,0x7b,0x6e,0xe2,0xb1,0x6b,0xc9,0xd2,0xbb,0x48, + 0x34,0x08,0xc7,0x31,0x9a,0x92,0x95,0x89,0x3a,0xb2, + 0x6d,0xe5,0x4e,0xcf,0x83,0x92,0xe1,0xdf,0x1b,0xf2, + 0x90,0x0b,0xa6,0xc9,0x01,0x77,0x2b,0x4b,0x9f,0x20, + 0xd7,0xcd,0x64,0x17,0x4d,0xa7,0x84,0x44,0xea,0xc1, + 0x42,0x27,0x5e,0xc3,0x14,0x18,0x74,0xd2,0x64,0xd2, + 0x3d,0xd9,0xb4,0x14,0x9a,0x5d,0x43,0x91,0xa1,0xa9, + 0xfb,0x33,0x17,0x98,0x15,0x7d,0x20,0x3e,0xc1,0x02, + 0x01,0x28,0x27,0xd8,0xf8,0xeb,0xd7,0x2f,0xdd,0x28, + 0x28,0x7c,0xb8,0xe1,0xdd,0xb8,0x71,0x62,0x07,0x5f, + 0xa7,0x31,0xcd,0x34,0x99,0x91,0xa6,0x8e,0xa6,0x0a, + 0x88,0x90,0x33,0x6a,0x43,0xa6,0xf6,0xa1,0x4b,0xe0, + 0xc2,0xba,0x7b,0x8c,0xcb,0x26,0x48,0x3b,0xf9,0x83, + 0xd1,0x34,0x1b,0x25,0x20,0x4e,0xd4,0xd3,0x79,0xee, + 0x4d,0x87,0x24,0x8d,0x24,0x2f,0xda,0x6b,0x58,0x35, + 0x92,0x66,0x8e,0x89,0x19,0xf7,0xf5,0x9f,0x84,0x1a, + 0x93,0xa5,0x82,0x3b,0x44,0xd4,0x16,0x45,0x2d,0x2b, + 0x9c,0x39,0x6f,0x55,0x9d,0x8e,0xd6,0x48,0x7b,0xff, + 0x67,0x62,0x26,0x59,0x3b,0x98,0xc2,0xcd,0x7e,0xf7, + 0x90,0x90,0x3e,0xac,0x00,0xdc,0x64,0x8c,0x4e,0x58, + 0x39,0xbe,0x0d,0x9d,0x01,0x90,0xe0,0x9f,0x44,0x5d, + 0xa0,0x51,0xf6,0x16,0x0b,0x8f,0xbe,0x77,0xda,0xa7, + 0xe4,0x1a,0xe0,0xda,0x61,0x89,0xfe,0xe1,0x12,0x72, + 0xf5,0x15,0x74,0xe8,0x64,0x3a,0x0b,0x61,0x1a,0x54, + 0xd7,0x59,0x9d,0x7f,0xfe,0xd1,0x98,0x7e,0x0c,0x72, + 0x77,0x12,0x7a,0xe4,0x26,0xe2,0x68,0xb8,0x06,0xce, + 0x42,0x37,0x49,0xf6,0x98,0xda,0xd3,0x29,0x45,0xda, + 0xaf,0xa1,0xe8,0xb7,0x76,0x2c,0x84,0x96,0xdf,0x1d, + 0xab,0x4d,0x32,0xe9,0x62,0x43,0xff,0xd9,0xd7,0x84, + 0x46,0x50,0x4f,0x0f,0x84,0x93,0x8a,0xda,0x2b,0x0e, + 0x46,0x0e,0x6d,0x86,0xe8,0xbe,0xab,0xba,0x02,0x69, + 0xc4,0xf9,0x62,0x41,0xb0,0x28,0xb6,0xa6,0x24,0x6b, + 0xcd,0x8a,0x25,0x20,0xd9,0x36,0x99,0x13,0xbe,0xa3, + 0xa9,0x20,0xda,0xc0,0x93,0x06,0x43,0x22,0xca,0x4d, + 0x8b,0x83,0xd8,0xf6,0x53,0x6f,0x3a,0xe9,0x76,0xb8, + 0xea,0x88,0x84,0xdf,0x48,0xa4,0xac,0xa1,0x7b,0x95, + 0x50,0x31,0x57,0x9d,0x51,0x2b,0x01,0x36,0xd2,0x65, + 0x08,0xab,0x04,0xbb,0x17,0x8d,0xfa,0x3b,0x21,0x3a, + 0x25,0xbc,0x92,0x28,0x61,0xe2,0x3d,0xa5,0x36,0x92, + 0x72,0x1f,0xa8,0x72,0xee,0xad,0xb1,0xa9,0x82,0x72, + 0xdc,0x9a,0x09,0x42,0xdf,0x22,0x41,0xd2,0x42,0x2c, + 0x37,0x21,0x46,0x88,0xc8,0xc6,0x06,0x86,0xa0,0x7a, + 0x75,0xb7,0x9f,0x0c,0x74,0xcd,0x73,0x88,0x15,0xb0, + 0x4e,0xaa,0xc1,0xb3,0xf8,0x69,0xad,0x7f,0x2b,0x3c, + 0xa3,0xe5,0x8c,0xd9,0xdf,0x15,0x5a,0x12,0xa4,0xd7, + 0x52,0xc1,0x76,0xa4,0x88,0xb3,0xa1,0x93,0x81,0x2e, + 0xf6,0x51,0x1c,0x73,0x36,0x37,0x74,0x30,0xab,0xf2, + 0x36,0xc5,0xd1,0xe4,0x45,0x98,0x6c,0x2f,0xb4,0x2d, + 0x95,0x0e,0x46,0xb7,0xef,0x93,0xc4,0x00,0x4d,0x18, + 0x6f,0xba,0x09,0x1b,0x6d,0x3b,0x12,0x3d,0x4c,0xc3, + 0x43,0xae,0x18,0x4a,0xc5,0xbd,0x4e,0x87,0xa6,0xf3, + 0xd8,0x0d,0xc2,0xb8,0x44,0x67,0x73,0x76,0x38,0xa1, + 0xca,0x94,0x7b,0x6c,0xcc,0x51,0x27,0xf9,0x8c,0xa4, + 0xe7,0x57,0x55,0xd7,0x6f,0xd5,0x64,0x49,0x48,0xc7, + 0x14,0x8c,0x14,0x59,0x21,0x21,0x45,0xad,0x26,0x9b, + 0x12,0x65,0x91,0x4e,0xc0,0x56,0xd1,0x53,0x1f,0x60, + 0x57,0xb9,0x54,0x3e,0x06,0xf5,0xd5,0x1d,0xba,0xe3, + 0x04,0xbd,0x3e,0xe1,0x4f,0x4c,0x50,0xa6,0xeb,0x5d, + 0xf7,0x2a,0x63,0xe1,0xe5,0x85,0x48,0xd8,0x94,0x14, + 0x2e,0xb8,0x51,0x57,0xaa,0xe0,0xdc,0x3d,0x88,0x26, + 0x05,0xa2,0x2d,0xca,0x43,0x98,0xda,0x32,0x00,0x43, + 0x93,0x08,0x1a,0x8d,0xdd,0xd2,0xa4,0x62,0x05,0x41, + 0x40,0x7a,0x2e,0x35,0xa1,0x1f,0x53,0x9f,0xde,0xc9, + 0xea,0xbb,0xc9,0x40,0x59,0x0f,0xd1,0x15,0x9e,0x0e, + 0x48,0x72,0x92,0xbe,0xff,0x73,0x30,0xac,0x5d,0x0f, + 0x48,0x5c,0x5e,0x60,0x6d,0xac,0x9e,0x01,0xad,0xfc, + 0xf9,0xaa,0xc9,0xf9,0x7a,0xb2,0x49,0x68,0x87,0xf4, + 0x03,0xd9,0xe0,0xa5,0x5e,0x27,0x1d,0x00,0xad,0x58, + 0x3a,0x01,0xa1,0x76,0xa6,0x9c,0x16,0x29,0x01,0x21, + 0xce,0x43,0xfb,0x08,0x0e,0x0d,0x57,0xa9,0x27,0xae, + 0x95,0xd5,0x3c,0xba,0xff,0xdc,0xec,0xe7,0x87,0xae, + 0xce,0x84,0xaa,0x52,0x2b,0x6e,0xab,0xe9,0xe4,0x7e, + 0x4f,0x28,0x10,0x0e,0xc9,0xfa,0x41,0x27,0x84,0x33, + 0x76,0x28,0xd1,0xbe,0xd1,0xa7,0x6f,0xf5,0xe3,0x07, + 0xf2,0xe2,0x74,0x8b,0xf4,0xf3,0xbe,0x65,0x1c,0xce, + 0xd4,0xfe,0x99,0xb8,0x3c,0xe4,0xbd,0xd5,0xcf,0xb7, + 0xa5,0xe1,0x38,0x26,0x13,0xae,0x23,0x32,0x99,0x19, + 0x27,0x44,0x4e,0x0d,0x9a,0x37,0x0a,0xd7,0x81,0x2a, + 0x11,0x91,0x58,0x49,0x60,0xcf,0x26,0xe1,0x7c,0x8b, + 0x87,0xa9,0x8f,0x47,0xca,0x9a,0x13,0xca,0x33,0xf5, + 0xf9,0x1d,0x94,0xbe,0x49,0x22,0xe8,0x90,0x77,0x49, + 0x56,0x3a,0x74,0x27,0xee,0x8a,0x12,0xe5,0xa8,0x0a, + 0x4f,0x44,0xb6,0x34,0x52,0x3c,0x4d,0xdd,0x50,0x82, + 0x40,0xf0,0x12,0xb1,0xec,0xf5,0x10,0x1c,0x24,0x08, + 0x62,0x55,0xa0,0x3f,0x47,0xd6,0x12,0xf4,0x8c,0x93, + 0x7e,0x11,0x20,0x8f,0xb5,0x71,0xa4,0xee,0x68,0x4e, + 0x52,0x27,0x4d,0x95,0xe9,0x44,0x4c,0xa4,0x36,0xad, + 0x7b,0x16,0x7d,0xaa,0x2b,0xf0,0xcd,0x70,0x80,0x20, + 0x11,0xdf,0xb5,0xd2,0xee,0xc9,0x84,0x43,0xb8,0xa6, + 0x84,0x55,0xae,0xa7,0xa8,0xfa,0xd5,0x75,0x3d,0xa8, + 0x27,0x57,0x48,0x3c,0x2d,0xe7,0xcf,0x1d,0x84,0x49, + 0xc3,0xa7,0x7f,0xc1,0x76,0x6f,0x53,0x22,0x34,0x91, + 0x32,0x13,0x1a,0x97,0xf6,0x1f,0x89,0x6d,0x26,0x41, + 0xc1,0x0d,0xe2,0x66,0x90,0x9d,0xa2,0xbf,0x9b,0x7c, + 0xc4,0x5c,0x4c,0x51,0xff,0xc4,0x30,0xb2,0x4d,0x87, + 0x72,0x81,0x58,0xe1,0x78,0x36,0x4c,0xe3,0xeb,0x8e, + 0x47,0x34,0xb5,0xc0,0x36,0xb4,0x08,0x2a,0xf8,0xa7, + 0xf6,0x3d,0x91,0x7b,0x29,0x01,0x04,0xed,0x30,0x44, + 0x5e,0x92,0x8c,0x07,0x51,0x04,0x36,0x32,0x2f,0x13, + 0x05,0x20,0x91,0xa9,0x07,0xb4,0x39,0xc6,0xa0,0x34, + 0xc4,0x44,0xd7,0x99,0xf6,0xb1,0x5e,0x9f,0x4a,0x17, + 0xa4,0x69,0xef,0x87,0x19,0xea,0x74,0xf3,0x2a,0xd8, + 0xe5,0x12,0x06,0x0a,0x8c,0xe9,0xc5,0x24,0xd8,0x91, + 0xb8,0x25,0x14,0x90,0xa9,0x6d,0xe7,0x3e,0x7f,0x18, + 0xa5,0x1e,0x37,0x0b,0x2d,0x38,0x07,0x91,0xba,0xdf, + 0xbb,0x45,0xff,0x26,0x18,0x73,0x23,0x3e,0xf9,0x37, + 0x68,0x54,0xf2,0x98,0x21,0xb4,0x2e,0x21,0x50,0x66, + 0x3a,0xa9,0xd4,0x3b,0x4d,0x61,0xe6,0xd4,0xe6,0x4c, + 0x89,0xc3,0xf2,0xf0,0x20,0xf1,0xca,0x82,0x11,0xd8, + 0x02,0xc8,0x9b,0xda,0x13,0x0f,0x33,0xd5,0x44,0x6e, + 0xd5,0xdf,0x03,0x21,0xb5,0x87,0x05,0x83,0x91,0xb5, + 0xaf,0xc4,0x39,0xd0,0x04,0x4b,0x93,0x71,0x33,0x3e, + 0x8c,0x87,0x13,0xb5,0xbf,0x7b,0x32,0x42,0x63,0xe4, + 0x13,0x62,0x38,0x69,0x4a,0x11,0x29,0x5a,0x12,0xd7, + 0x9e,0x0c,0xd5,0x56,0x84,0x55,0xd0,0xa6,0x72,0xe8, + 0x31,0x68,0x38,0x15,0x1d,0x1e,0xda,0x7e,0xd2,0xf8, + 0xe2,0xf8,0x62,0xa6,0x38,0x88,0x44,0xfa,0x3e,0x4d, + 0x96,0x6c,0x26,0x44,0x7d,0x1a,0x5b,0x85,0xae,0x75, + 0x14,0x78,0x24,0x57,0x2a,0xc2,0x5c,0x01,0x3a,0x49, + 0x1f,0x5c,0xe0,0x03,0x39,0x89,0x25,0xea,0x01,0x98, + 0x48,0xbb,0x5a,0xa0,0xb9,0x7d,0xe9,0x90,0xec,0xa4, + 0x59,0xe6,0xf6,0x94,0x4b,0xf2,0xb7,0xbc,0x14,0x97, + 0x48,0x6b,0x4c,0xbc,0x27,0x41,0x1d,0xca,0xea,0x92, + 0x0e,0x3a,0x73,0xa4,0x15,0xfd,0x98,0xfc,0x9b,0x10, + 0xf8,0x4e,0x4d,0xd0,0x73,0xba,0x9f,0x7d,0xb4,0x9f, + 0xd2,0x5a,0x48,0xb1,0xdf,0x51,0x4e,0x68,0xdd,0xb8, + 0x35,0x42,0xe7,0xd7,0x8b,0xa0,0x35,0x37,0x8a,0x99, + 0x0e,0xd0,0x41,0xfb,0xc1,0xc1,0xaa,0x96,0xf7,0xd1, + 0x13,0x18,0x72,0x93,0x75,0x36,0x00,0x2e,0x38,0xa5, + 0x6a,0x4c,0xa1,0xb6,0x34,0xee,0xe7,0x14,0x95,0xb5, + 0x6a,0x22,0x28,0xb8,0xdd,0x4f,0x0c,0x16,0x93,0xba, + 0x6d,0x1a,0x61,0xa7,0x7b,0x75,0x7a,0x0e,0xa4,0xec, + 0xe9,0x78,0x04,0xa9,0xfa,0x74,0x2d,0x48,0x98,0x3c, + 0x9a,0xaa,0x8c,0x95,0xc0,0x18,0x1d,0xd2,0x4e,0x04, + 0xcb,0x11,0x76,0x27,0x2e,0x11,0xa1,0x94,0x1f,0xde, + 0x8b,0x1d,0xdf,0x74,0xd2,0x11,0x7d,0x7d,0xd3,0xfa, + 0x71,0x07,0x91,0xab,0xee,0x1d,0x6f,0x85,0x12,0xd4, + 0xbe,0xe6,0x37,0xda,0x27,0x26,0xf9,0xaa,0xee,0x25, + 0x35,0x09,0x8f,0x4d,0x55,0x9d,0x8a,0x71,0x26,0xc4, + 0x2d,0x71,0x05,0xd5,0xc3,0xeb,0x13,0x44,0xd9,0xf1, + 0x12,0x82,0x01,0x66,0x25,0x94,0x46,0xb9,0x83,0xa9, + 0x7d,0x01,0x89,0x9a,0x75,0x3e,0xef,0x86,0x94,0xd4, + 0x3a,0xd9,0xec,0x0f,0x1d,0x99,0x4f,0xad,0x08,0x98, + 0x84,0xb4,0xff,0x2d,0xeb,0xd8,0x09,0x29,0x5a,0x89, + 0x08,0x42,0x29,0x1c,0xb2,0x04,0x3c,0xad,0xcd,0xcf, + 0xb9,0x04,0xaa,0x4c,0x22,0x5b,0x60,0x04,0x8c,0xc5, + 0xdd,0x80,0xb4,0xd4,0x84,0x76,0x2c,0xf6,0x29,0x9e, + 0x61,0x32,0xb0,0x30,0xf2,0x9b,0x16,0x82,0x88,0xee, + 0x5a,0x6a,0x2a,0x98,0xb7,0x45,0xc7,0x84,0x2e,0x91, + 0xdc,0xc5,0x86,0x13,0x48,0x0a,0xf0,0x93,0x3f,0xe7, + 0xcb,0x4d,0xb6,0x24,0x41,0xc4,0x80,0x8c,0x44,0x5d, + 0x90,0x49,0x08,0xce,0xb8,0xbc,0xe2,0x82,0xd0,0xfe, + 0x6f,0xe8,0x53,0xba,0x6c,0xb8,0x54,0x34,0x09,0x12, + 0xb1,0x22,0x5e,0x03,0xf5,0xd4,0x53,0x06,0x3f,0x09, + 0x66,0x4d,0x8b,0x89,0x12,0x0d,0x7a,0x2f,0x5d,0xff, + 0xc6,0x69,0x6b,0x38,0x25,0x4d,0xc7,0x89,0x70,0x24, + 0x73,0x92,0xe8,0x17,0x24,0x23,0xf2,0x79,0x52,0xdb, + 0x83,0x04,0x0b,0x13,0xfc,0xac,0x9f,0x0d,0x6d,0x2d, + 0x3a,0x09,0x0b,0x90,0x86,0x4a,0x07,0xe2,0x86,0x13, + 0x95,0xaa,0x58,0xb2,0xcf,0x80,0xe0,0x58,0x43,0x3f, + 0xdf,0x16,0x2b,0xea,0xe0,0xdc,0x13,0x98,0x29,0x48, + 0x88,0xd4,0x43,0xa5,0xc3,0xbc,0x73,0x96,0x36,0x42, + 0x7d,0x04,0x9b,0x3b,0x49,0x82,0xf4,0xec,0x03,0xc7, + 0xab,0x3e,0x49,0xc6,0xd3,0xe8,0x3c,0xc5,0x10,0x97, + 0x00,0xa8,0xb6,0x97,0x5b,0xf3,0xba,0xae,0x1c,0xf1, + 0xd9,0x51,0x0d,0x12,0xe7,0xc9,0x55,0xfe,0xca,0x21, + 0xec,0xd7,0x48,0xfc,0xa7,0x44,0xac,0x76,0xc9,0x2b, + 0x25,0xb0,0x84,0x8e,0x6e,0x92,0xa9,0x8e,0xca,0x6d, + 0xda,0x83,0x69,0x58,0x86,0x62,0xcc,0xa7,0x45,0x51, + 0x12,0xcc,0xd5,0xf1,0xfa,0x69,0x78,0x87,0xe2,0x43, + 0x42,0x8c,0xa8,0x10,0xd8,0x8a,0x7e,0x52,0xd1,0xdd, + 0xcf,0xfc,0x49,0xfa,0x24,0x75,0x00,0x74,0x4d,0xb8, + 0x3d,0xdb,0x75,0x78,0x34,0xc7,0xd0,0x62,0x3d,0xb5, + 0x14,0x27,0x54,0x29,0x15,0xf9,0x1d,0x3d,0xbe,0xae, + 0xeb,0x9f,0x31,0xf8,0x3b,0x20,0x4e,0x5e,0x1d,0x29, + 0x73,0x9d,0x7a,0x7b,0x34,0x4e,0x4f,0x3d,0x4f,0xfa, + 0x6c,0xb7,0x08,0x53,0xa5,0xbe,0x19,0xf5,0x26,0x55, + 0x4c,0x25,0xfe,0x6d,0x7c,0xbb,0xe8,0xe5,0x24,0x02, + 0x9c,0x43,0xb1,0x5a,0x6b,0xaf,0x12,0x93,0xde,0x79, + 0x48,0xa5,0x56,0x19,0x8d,0x28,0x12,0x89,0x71,0xd3, + 0xb7,0x4d,0x81,0x9a,0x5a,0x46,0x21,0x41,0xb5,0x3c, + 0x06,0x48,0x8c,0xe8,0x9e,0xb1,0xda,0xa4,0xaa,0x2f, + 0x25,0x5c,0xc6,0x96,0xa3,0x3a,0x3f,0x22,0xf1,0x6e, + 0x26,0xfe,0x87,0x56,0xe3,0x8e,0xd3,0xa3,0x88,0x69, + 0x6a,0x79,0x25,0x3e,0x8c,0x4a,0x0d,0x84,0xd1,0x6d, + 0xfb,0xb9,0xd3,0xba,0x70,0x45,0xc8,0xd4,0x42,0x4e, + 0x15,0x9d,0xdb,0xcb,0x9f,0x70,0x67,0xda,0xfa,0x38, + 0x53,0xdb,0x2d,0x8d,0x8a,0xc3,0x35,0xbe,0x11,0x34, + 0x03,0x11,0xfc,0x40,0x0c,0x2d,0x77,0x5d,0x8b,0x29, + 0x3b,0x1c,0xbd,0xd7,0x11,0x61,0x31,0x4b,0x3e,0xce, + 0x44,0xf9,0x1e,0xd1,0x37,0x88,0xd8,0xa1,0x43,0xdf, + 0x14,0x99,0x67,0x3a,0x2b,0xda,0x3a,0x3f,0x9a,0xb8, + 0xb9,0xef,0x72,0xb2,0x2b,0xc0,0xbb,0x71,0xa4,0xe4, + 0x88,0xe6,0xf6,0xe7,0xd5,0xb9,0xdf,0x34,0xf8,0x32, + 0x0c,0x1a,0x4c,0xe8,0xe2,0x46,0x6d,0xba,0xce,0x39, + 0x47,0x86,0x7f,0xec,0xf8,0x3a,0xbd,0x0f,0xfa,0x8e, + 0xa4,0xd7,0x97,0xdc,0x1d,0xb6,0x1a,0x52,0x8b,0xee, + 0xcf,0xcf,0x03,0x26,0x52,0xf4,0x30,0x7c,0xf3,0x18, + 0x0e,0x08,0xef,0xd9,0xae,0xc5,0xf0,0xfe,0xdf,0xbd, + 0xc0,0xd4,0xcc,0x0d,0xaa,0xd9,0x22,0xd2,0x34,0xc8, + 0xcc,0xc7,0x16,0x8e,0x1e,0x5a,0x1b,0x01,0xb0,0x2d, + 0x14,0xb7,0x1d,0xa7,0x74,0x68,0xc1,0x86,0xa8,0x3b, + 0xc0,0xe0,0xb6,0xcd,0xe3,0x1c,0xdc,0x09,0xba,0xdc, + 0x8c,0x18,0xa7,0x4a,0x34,0x21,0x30,0x09,0x7a,0x4c, + 0x28,0x93,0x32,0xef,0xdd,0xfb,0x4f,0x9b,0x67,0x01, + 0x01,0x57,0xba,0xef,0x94,0xc8,0xa6,0x56,0x89,0x0a, + 0x9b,0x4d,0x64,0xec,0x24,0x78,0x48,0x95,0x60,0x10, + 0x91,0xac,0x80,0xf4,0x95,0x72,0x7d,0x1c,0xea,0x18, + 0xbe,0xa3,0x26,0x38,0x9b,0x10,0xa4,0xb4,0x5e,0xef, + 0x9b,0xd4,0x36,0x08,0xa9,0xff,0x6e,0x92,0x7f,0x31, + 0x73,0xed,0xa3,0xef,0x6f,0x3c,0x1e,0xf0,0xd0,0x1a, + 0xd1,0xb6,0xb0,0xae,0x1e,0xdc,0xaa,0xe1,0x9f,0xba, + 0x06,0x9f,0x39,0x57,0x9c,0xb8,0xfd,0xa7,0xf6,0x09, + 0x93,0x45,0x85,0x6b,0x19,0x91,0xb4,0xc3,0xd6,0x11, + 0x7b,0x4a,0x2e,0x37,0xe8,0x08,0xad,0xe3,0x60,0xb2, + 0x19,0xf9,0x3d,0xf4,0x2e,0x9d,0x16,0x58,0x7b,0xff, + 0x35,0xc5,0xb8,0xc0,0x59,0xaa,0x8d,0xf9,0xa8,0x3b, + 0x87,0xa6,0xc2,0x42,0x9f,0xa3,0x23,0xf9,0x4f,0x6b, + 0xd5,0xa1,0x64,0x06,0x41,0xae,0x84,0x54,0xb9,0x96, + 0x2e,0xed,0x95,0x24,0x08,0x4c,0x5d,0xa1,0xb4,0xc7, + 0xbb,0x98,0x65,0x92,0x11,0x20,0x5a,0x49,0xa2,0x00, + 0xa4,0x16,0x1d,0x21,0xc4,0xf2,0xd9,0xe5,0xf6,0xe7, + 0x8f,0x0e,0x50,0x52,0xc7,0xa5,0x97,0xb1,0x99,0xc0, + 0x72,0xd5,0x5b,0x1b,0x31,0x8c,0x6d,0x01,0xa7,0x18, + 0xea,0x94,0x9f,0x53,0x4b,0x85,0x92,0xbb,0x29,0xb0, + 0xa5,0x29,0x01,0x42,0xb1,0xda,0x02,0xae,0x0f,0x04, + 0xa0,0xb0,0x0a,0x4f,0x87,0xd9,0xa6,0x27,0x0a,0xb0, + 0x6d,0x75,0xe8,0xdb,0x5d,0x6f,0x40,0x56,0x6a,0x38, + 0x60,0x1f,0x3d,0xe3,0xb4,0xc9,0x37,0x04,0x68,0xa9, + 0x12,0x93,0x9f,0x93,0xba,0x9a,0x8f,0x55,0x98,0x43, + 0xfc,0x7b,0x10,0xec,0x6b,0x74,0x39,0xa2,0x5b,0xee, + 0xd0,0x9b,0x0a,0x00,0xe5,0x02,0xb9,0x40,0xa6,0xaa, + 0xe3,0x6e,0xe2,0x66,0x48,0x6e,0x2a,0x21,0x6c,0x0e, + 0x8d,0xd2,0xf5,0x29,0xce,0xe7,0x11,0xb1,0x90,0x24, + 0xaa,0xeb,0x0a,0x55,0xda,0x6f,0xed,0x5d,0xbf,0x4d, + 0x94,0xa5,0x64,0x24,0x0d,0x2d,0x10,0x0a,0xd7,0x5b, + 0x6d,0x43,0x35,0xbf,0x31,0xf4,0xac,0x01,0x35,0xaf, + 0x8d,0x47,0x19,0xd8,0xbf,0xac,0x3c,0xca,0x1c,0x39, + 0xdf,0x7c,0xde,0x63,0x70,0xc5,0xb5,0xb5,0xd3,0x94, + 0x15,0xb5,0x63,0x82,0xcd,0x06,0x1e,0xf6,0x84,0xb6, + 0xba,0x3f,0x98,0xb4,0x5e,0xa6,0x6e,0x05,0x21,0xd3, + 0x54,0xc4,0x53,0xdb,0xca,0xa1,0xae,0x9b,0xe4,0x60, + 0x52,0x27,0xde,0x90,0x75,0x53,0x61,0xd3,0xd1,0x9e, + 0x50,0xec,0xa3,0xde,0x9c,0x4c,0x93,0x6d,0xdf,0x45, + 0x25,0xea,0x4a,0x4f,0xb4,0x88,0x2f,0xea,0x5a,0xd8, + 0xbd,0x18,0x9c,0xe8,0x04,0x2e,0x61,0x9e,0x94,0xde, + 0x8d,0x15,0xc8,0x8b,0x84,0xc4,0x6a,0xc9,0x33,0x89, + 0xed,0x16,0x17,0xd8,0x35,0xb1,0x9a,0x64,0xd9,0x69, + 0x02,0x8d,0x26,0x90,0xe8,0xc1,0x5e,0x40,0xec,0x25, + 0x93,0x56,0x72,0xd8,0x26,0x21,0x3a,0x42,0x9c,0xd2, + 0x44,0x01,0x05,0x87,0xc0,0x8b,0xb1,0x72,0xec,0x49, + 0x81,0x78,0x0a,0x4c,0x89,0x4c,0x99,0xfa,0xf5,0x13, + 0x4f,0xcc,0x55,0x64,0xae,0xfa,0x4d,0x1b,0xdc,0x8d, + 0x7b,0x6a,0xdb,0x28,0xd9,0x8c,0xb8,0xf7,0x44,0xad, + 0xc9,0x29,0xf9,0xbc,0x44,0x3f,0x28,0x11,0x2f,0x27, + 0xfb,0x0c,0x57,0xe5,0x4b,0x30,0x2c,0x42,0x25,0xdd, + 0xfd,0x3b,0xb4,0xe6,0x32,0x23,0xe9,0xa1,0x7a,0x2c, + 0x67,0x8e,0x49,0x3d,0x7a,0x68,0x85,0x74,0x81,0xc3, + 0xb1,0x4d,0xb0,0x35,0xd0,0xec,0xa8,0x8c,0xf8,0x7e, + 0xc5,0xb5,0x07,0x49,0x5c,0x9f,0x5e,0x9b,0x2a,0xee, + 0x2b,0x25,0x6d,0x1d,0xad,0x71,0x5c,0x98,0x64,0x9e, + 0xab,0x16,0x0e,0x5a,0x24,0xd2,0xfe,0xeb,0x53,0x41, + 0xe6,0xcf,0x70,0x9f,0x13,0x9a,0x3b,0x39,0x6f,0xbb, + 0x38,0xe8,0xa6,0x03,0x43,0xfb,0x22,0x1a,0xb0,0x26, + 0x95,0x5e,0x2a,0xfc,0x68,0x1d,0xd2,0x9a,0x9b,0x9e, + 0x6b,0x42,0x14,0x89,0x1e,0x00,0xef,0xd3,0xa1,0xa6, + 0x96,0x58,0x3d,0xa1,0x19,0x6e,0xc0,0x68,0x2a,0xc6, + 0xe8,0xd9,0xe9,0x7b,0xd6,0xe4,0x9c,0xa6,0xb7,0x36, + 0x03,0x3a,0xee,0xf7,0xf4,0xcf,0x12,0x45,0x82,0xf8, + 0xa4,0xca,0x03,0x24,0x8e,0xee,0xd6,0xd4,0x96,0xe2, + 0xc2,0x6f,0xea,0xed,0x51,0x10,0x81,0x49,0x9b,0x9a, + 0x16,0xc8,0xa4,0xcb,0xe2,0x44,0x0c,0x53,0x8f,0x91, + 0x7c,0x79,0xee,0xcf,0xfa,0xf5,0xeb,0x57,0xa5,0x9b, + 0x97,0x1e,0xf2,0xca,0xfb,0x2b,0x6d,0xd6,0xc4,0x55, + 0xa1,0x7b,0x73,0xc9,0x94,0xbb,0xb6,0x29,0xa3,0x75, + 0x81,0x95,0x24,0xdc,0x27,0x13,0x55,0x12,0xb9,0x72, + 0x2d,0x23,0x6d,0x99,0x7e,0x72,0xc8,0x41,0x3f,0xd9, + 0x11,0x79,0x4b,0xc7,0xa2,0xe9,0xb9,0x03,0x9a,0xf5, + 0x56,0xe9,0x4c,0xa3,0xa8,0x7f,0xc3,0xe7,0x72,0x6b, + 0x5c,0xb9,0x3b,0xee,0xdd,0x7e,0xaa,0x87,0xa5,0xc5, + 0x09,0x19,0x3f,0x4e,0x49,0x9f,0x21,0x18,0x17,0x21, + 0xc1,0x43,0x02,0x5c,0x64,0x3c,0xf9,0xc9,0x73,0x5c, + 0xa8,0x32,0x53,0xeb,0xe1,0xfe,0xfe,0x93,0xf6,0x6e, + 0x48,0xe8,0x7f,0x6c,0x28,0x54,0xbc,0x4d,0x5b,0x4e, + 0xf7,0xcf,0xd1,0xba,0xe9,0x9c,0x0d,0x88,0xa5,0x3f, + 0x7c,0x13,0xe0,0x9b,0x1d,0x42,0xd2,0x48,0xb4,0x2f, + 0xf0,0x2f,0x1f,0xdc,0x96,0xce,0x91,0x30,0xc8,0xdb, + 0xe3,0x3b,0x12,0xef,0x84,0xda,0x72,0x5f,0x5f,0x5f, + 0x67,0x12,0xce,0x33,0x56,0x17,0xe9,0xf0,0x7a,0xe3, + 0x74,0xf4,0x6b,0x95,0x84,0xfc,0xed,0xfd,0x74,0x7e, + 0x93,0x69,0x03,0x1f,0x97,0xc4,0x9a,0x16,0xf0,0x49, + 0xad,0xfc,0xa9,0x1d,0x96,0xc6,0xf9,0x9d,0xd8,0xe8, + 0x05,0x76,0x24,0x29,0x01,0xd1,0x78,0x46,0x3a,0x5a, + 0xa9,0xd8,0x53,0x14,0x48,0x75,0xbe,0xa8,0xa3,0xe2, + 0xbc,0x09,0xd3,0x1e,0x04,0xfe,0xe6,0x21,0x5e,0x51, + 0xbf,0xce,0x2e,0x7a,0x48,0x82,0xc1,0xe9,0xb9,0x05, + 0x6d,0xb5,0x7a,0xa5,0xa0,0xe5,0x5a,0x4e,0xc9,0x87, + 0xc5,0x2d,0x0a,0xa7,0x53,0x30,0xf1,0x2c,0x5c,0x35, + 0xe6,0xa6,0x42,0x52,0xb5,0x9e,0xac,0x38,0x26,0x2e, + 0xc0,0xd4,0x87,0x24,0x8d,0x92,0x49,0x40,0x6b,0xaa, + 0x00,0xce,0x39,0xd7,0xaf,0x5f,0xbf,0x56,0xe4,0xb0, + 0x0d,0xf9,0x2e,0x55,0x2b,0x81,0xa7,0xe1,0xf4,0x1c, + 0x46,0x1f,0x32,0xb5,0xae,0x70,0x7d,0x6b,0x3a,0x48, + 0x69,0xa4,0x34,0xc1,0xbe,0x5b,0x12,0x3a,0x25,0x80, + 0xca,0x5f,0xea,0x95,0x05,0xb4,0x50,0x0b,0x2a,0x9e, + 0x47,0x7f,0x79,0x92,0x45,0x70,0xbd,0x71,0x35,0x6c, + 0xfc,0x5b,0x1b,0x94,0xd4,0xba,0x31,0x7c,0x8b,0xba, + 0x82,0x28,0x63,0x68,0x3b,0xd4,0x84,0x30,0xba,0x51, + 0xed,0x89,0xec,0xbc,0xe1,0xa9,0x50,0xdb,0x35,0xb5, + 0xab,0x86,0xe2,0xab,0xd2,0x20,0x05,0x71,0xb1,0xa0, + 0x0a,0x5e,0xf1,0x18,0xdd,0xbb,0x75,0x1c,0x35,0x45, + 0x76,0x12,0x22,0xb9,0x41,0x6a,0x93,0xde,0xcf,0xa4, + 0x98,0x9e,0x90,0x23,0xb2,0xd3,0x20,0x64,0xb6,0x1f, + 0x9e,0x8e,0xf3,0xf4,0x01,0x57,0x0b,0x0b,0xad,0xd4, + 0x36,0xa1,0x41,0x8a,0x24,0x70,0xeb,0x10,0x47,0x6d, + 0x4f,0xdf,0xf7,0x95,0x26,0x21,0x27,0xe4,0x49,0xf7, + 0x59,0x52,0x9e,0x77,0x32,0x05,0x5b,0x23,0x55,0x47, + 0x43,0x49,0xa4,0xe8,0x69,0xad,0xa4,0xdf,0xa5,0x58, + 0xb1,0xe1,0x22,0x25,0xb4,0xd0,0x90,0xfa,0x2d,0xad, + 0x21,0x89,0x63,0xfe,0xbe,0xc0,0x3f,0x64,0x52,0xc1, + 0x24,0x31,0x2d,0xaa,0xf4,0x9c,0xb4,0x3f,0x2d,0xae, + 0x49,0x01,0x38,0x19,0xde,0x6d,0x82,0x2b,0x55,0x00, + 0xdb,0xa4,0x23,0x4c,0xa7,0xd5,0x06,0x06,0x9e,0xaa, + 0x66,0xa7,0xe0,0x4a,0x95,0x17,0x90,0x08,0xab,0x73, + 0xad,0x3a,0x9a,0xe4,0x08,0xb4,0x28,0x12,0x15,0xac, + 0x4d,0xdc,0xb3,0xee,0x55,0x84,0x56,0xd3,0x0e,0x2a, + 0x5e,0xc0,0xe5,0x8f,0x67,0x43,0xd2,0xef,0xe1,0x30, + 0xae,0x5e,0x71,0x0e,0xed,0xcf,0x9a,0x0a,0x02,0x4a, + 0x30,0x9d,0xb4,0xc0,0xc4,0x0b,0x81,0xfb,0xab,0x81, + 0x1b,0x55,0x03,0xb7,0xac,0x96,0xfb,0x72,0x54,0x52, + 0x76,0xf7,0x33,0x05,0xda,0xc9,0x60,0x71,0x4a,0x54, + 0x53,0x8b,0x38,0xc5,0x18,0xd3,0x6e,0x3c,0xa9,0xd5, + 0xa9,0x89,0xbb,0x31,0x9b,0xbc,0xc0,0xc7,0xee,0x0c, + 0xad,0x98,0x07,0xca,0xa0,0x53,0x47,0x4e,0xc3,0x85, + 0x44,0x55,0x6f,0x23,0x5b,0xbd,0x1f,0x87,0x62,0x19, + 0x2d,0xa2,0x63,0x8a,0x8d,0xb7,0x29,0xb2,0x3e,0x6d, + 0x7a,0x89,0xd5,0x48,0xb0,0x58,0x78,0xbb,0xc7,0xe1, + 0xac,0x78,0x9b,0xd2,0xea,0x76,0x12,0x89,0x8e,0x30, + 0x75,0x0c,0x52,0xe1,0x4c,0x2d,0xa0,0xe9,0x8c,0xd9, + 0xd2,0x14,0xa4,0x0d,0x73,0x0c,0xea,0x7b,0xa8,0xd5, + 0xa3,0xf1,0x3c,0xb5,0x99,0xb6,0x86,0xcd,0x17,0x98, + 0xdc,0x02,0x97,0xe9,0x4c,0x46,0xb2,0xa9,0xa0,0x99, + 0x3a,0x3a,0xe9,0x1c,0x0d,0x66,0xd2,0xd7,0xc4,0x65, + 0xd4,0xb5,0x96,0x28,0x0f,0x9b,0x2e,0x92,0x55,0x82, + 0x4e,0xd9,0x72,0xef,0x57,0x6f,0x2f,0x54,0x37,0xb3, + 0xfe,0x8e,0x7b,0x00,0x4e,0x3e,0x7d,0x73,0x08,0x7f, + 0xe2,0xff,0xb1,0xd1,0x4a,0x98,0x3e,0xbb,0x0b,0xde, + 0x25,0xc3,0xbd,0x49,0x34,0xd2,0xc1,0x9a,0xae,0x0f, + 0x4b,0x87,0x5b,0xe2,0x8a,0xdc,0xc9,0x02,0x55,0x0a, + 0x53,0xf0,0xa2,0x56,0x25,0x55,0xa4,0x49,0x32,0xdf, + 0x55,0x8f,0x5a,0x41,0x82,0x91,0xa7,0xed,0x63,0x9b, + 0xe7,0x3b,0xea,0x50,0xf5,0x16,0xd2,0xc4,0xb3,0x20, + 0xd1,0x34,0x87,0x6e,0x4d,0xc6,0xb5,0x64,0x8c,0x49, + 0x22,0x78,0x6e,0xdd,0x90,0x5a,0xf5,0xa6,0x9a,0x35, + 0xc9,0x4d,0x4d,0x02,0x7a,0xda,0x52,0x71,0x6d,0xdc, + 0x49,0x18,0x93,0xa6,0x43,0x43,0x80,0x9e,0x7c,0xbc, + 0x2c,0x1f,0x00,0x48,0xe7,0x45,0x93,0x54,0x54,0xbc, + 0xf4,0xfd,0xe5,0x86,0x40,0xdc,0x3b,0x4a,0xff,0x4e, + 0x89,0x24,0x25,0xf2,0x4a,0x2c,0x75,0x32,0x12,0x3d, + 0xe6,0xd0,0x24,0x4d,0x42,0x7b,0x13,0x27,0x10,0x0a, + 0xbb,0x4a,0xe8,0x38,0xb5,0x75,0xa7,0x16,0xca,0x86, + 0xb4,0x9c,0xb8,0x36,0x24,0x89,0xe1,0xd6,0x86,0x49, + 0x50,0x37,0x66,0xad,0xf6,0xf9,0x11,0xf2,0x45,0x05, + 0x1b,0xed,0x6b,0x7a,0x1f,0x69,0x3f,0x26,0x73,0x71, + 0x83,0xa8,0xd4,0x46,0x28,0xb3,0x17,0x88,0x03,0x5a, + 0xe9,0x38,0x9b,0xce,0x3b,0xd0,0x1a,0x34,0x6f,0xd4, + 0xe1,0x03,0x5a,0x16,0x79,0xbf,0x09,0x8d,0x52,0xae, + 0xdd,0x83,0x2a,0x32,0x05,0x13,0x42,0x1d,0x26,0xd8, + 0x7c,0x3a,0x54,0x53,0x22,0x33,0x4d,0x4d,0x38,0x42, + 0xa6,0x92,0x35,0x29,0x00,0xab,0x7e,0x0b,0x11,0xd4, + 0xe8,0x90,0x9a,0x78,0x0c,0x09,0x6e,0xdb,0x20,0x6c, + 0x5d,0x6e,0x20,0x7d,0xa7,0x53,0xc2,0xdd,0xe8,0x35, + 0x4d,0xce,0xe1,0x69,0x7c,0x9e,0x8c,0x32,0xbf,0x2b, + 0x9a,0xfa,0x94,0x33,0x33,0x8d,0x73,0xf6,0x7f,0x7e, + 0xfd,0xfa,0x85,0x7a,0x42,0xc1,0xdf,0xa6,0xa8,0xa2, + 0xdc,0x0a,0x7e,0xea,0x7d,0xf6,0x64,0x32,0x90,0x4e, + 0x0b,0x3c,0x98,0xc6,0x0a,0xca,0x48,0xe0,0x63,0x3b, + 0x22,0xf9,0xb1,0xa5,0x60,0xe2,0x5a,0x22,0x54,0xe8, + 0x26,0xa7,0xf3,0x74,0xa0,0xba,0x6b,0x9c,0xf6,0x35, + 0xb5,0x4c,0x92,0xa6,0xd8,0xa2,0x3d,0xbc,0xf2,0xa1, + 0x4a,0xdc,0x29,0x97,0xc4,0x0c,0x7b,0xb0,0xa6,0x62, + 0x22,0x24,0x64,0xb5,0x41,0x2d,0x44,0x2d,0xdf,0x5e, + 0x8f,0x43,0x1a,0xe9,0x99,0xe8,0xd4,0x6d,0x4a,0x42, + 0x27,0x3b,0x13,0xf7,0xce,0x5d,0x1b,0x5b,0xc5,0x33, + 0x55,0xb8,0xd5,0x15,0x36,0xc1,0x8b,0x0e,0x65,0x58, + 0xd2,0xb9,0x13,0x44,0x6f,0x31,0x91,0xd4,0xc4,0x27, + 0x4d,0x35,0x87,0x3f,0xab,0xed,0xd4,0xe1,0x46,0x94, + 0x38,0x9d,0x4b,0xd4,0xb1,0xa0,0x35,0x7e,0xdb,0xff, + 0x50,0xeb,0xce,0xc5,0x5e,0xb2,0xfe,0x98,0x24,0x10, + 0x48,0xec,0x52,0xff,0x6e,0x23,0xa1,0x32,0xd1,0x40, + 0x5c,0x21,0xf5,0x72,0x2f,0xf0,0x32,0x4a,0xc6,0x09, + 0xed,0x71,0xad,0x1c,0x22,0xf0,0x6e,0x5d,0x6b,0x49, + 0x61,0x99,0xa0,0xfc,0x69,0xec,0x17,0x8c,0x46,0x2a, + 0x8d,0xa1,0x53,0xff,0x9f,0x4c,0x22,0x37,0x95,0x84, + 0x6a,0x69,0x90,0x5f,0xda,0xf4,0xbc,0x26,0x94,0x25, + 0x05,0x7c,0x9a,0x88,0x53,0x88,0x36,0x18,0x3c,0xc6, + 0x6a,0xab,0xcb,0xed,0x4f,0x41,0x89,0xdc,0xe0,0x27, + 0x54,0x51,0x6d,0x46,0x26,0xe7,0xe2,0x14,0x14,0x75, + 0xcd,0x1b,0x48,0xdb,0xa1,0x50,0xe5,0xac,0x46,0x14, + 0x15,0x92,0x8d,0x5c,0x09,0x9e,0x0e,0xda,0x23,0x45, + 0xc9,0x6b,0x12,0x3e,0x33,0x04,0xf3,0x4a,0x23,0xc0, + 0x72,0x0f,0xb5,0x41,0x5f,0x07,0x81,0xb8,0x1f,0x9d, + 0x9f,0x4b,0xc6,0xda,0x6f,0xde,0x4e,0x1f,0x79,0xbf, + 0xde,0xa7,0xc8,0xaa,0x7b,0x75,0x2d,0x3c,0x03,0xd3, + 0x21,0x57,0x7d,0x6a,0x6a,0x9a,0x2a,0xba,0x9a,0xef, + 0x56,0x98,0x6a,0xad,0xc4,0x55,0xd0,0x3d,0x4d,0xaa, + 0xcd,0xa9,0xba,0x77,0xb1,0x63,0x52,0x41,0xa7,0x62, + 0x74,0xd2,0x4b,0x1b,0x2a,0x76,0x37,0x5a,0x5f,0x53, + 0xbc,0xa3,0x83,0x7d,0x6a,0xf7,0x24,0xc4,0x22,0x69, + 0x1f,0xb9,0xa4,0x2b,0x9d,0x63,0x49,0xc7,0x0d,0xec, + 0x78,0x6a,0x98,0xa4,0xc4,0x77,0xb0,0x69,0x65,0x85, + 0xe9,0xc7,0x38,0x16,0xae,0x7c,0xb1,0xa9,0xa8,0x4c, + 0x2d,0xa7,0xe9,0xde,0x12,0xff,0xd5,0xdd,0xcb,0xf0, + 0x8c,0x2c,0x65,0x84,0x3c,0x08,0x69,0x2a,0x2c,0x21, + 0xd0,0x9a,0xf0,0xbd,0x89,0x20,0xbe,0x5e,0xff,0x5a, + 0x61,0xa4,0x6c,0x2b,0x41,0xd9,0x93,0xdd,0xfd,0x94, + 0xbd,0x29,0x32,0x33,0x55,0xe0,0x53,0x0f,0x38,0x91, + 0xe1,0x36,0x2d,0x34,0x6a,0x41,0x50,0x6b,0x81,0xb8, + 0x27,0x13,0x9c,0x3a,0x3d,0x97,0x49,0xca,0x3b,0xa0, + 0x2d,0x31,0xf9,0xd3,0x4c,0x9d,0x60,0x56,0x82,0xd6, + 0x49,0x75,0x34,0x55,0x86,0xa4,0xaf,0xa1,0xef,0x44, + 0xc8,0x91,0xb5,0x55,0x11,0x9e,0xda,0x53,0xd3,0xef, + 0xa7,0x3f,0xa3,0x09,0x0e,0xea,0x9b,0xd3,0xef,0xf5, + 0xc3,0xcb,0x04,0x9d,0x4a,0xd5,0x72,0xf2,0xc5,0xbb, + 0x39,0x2c,0xfd,0x67,0x54,0x8e,0x3e,0xc1,0xe1,0x66, + 0x8f,0xd5,0xdf,0xda,0x06,0xb4,0x96,0x49,0x25,0xf1, + 0xc7,0x0d,0xca,0x2b,0x68,0xc7,0x5b,0x12,0x45,0x7b, + 0x75,0x31,0x4d,0x56,0xa9,0x1d,0xae,0x48,0x4c,0xf0, + 0xf5,0x7b,0x5b,0x63,0x24,0xcc,0xa7,0x7b,0x48,0x0e, + 0xac,0xa2,0x75,0xa6,0xad,0x5f,0xb7,0x8e,0x1d,0x1a, + 0x0b,0xa2,0x84,0xb5,0x41,0xcc,0x26,0x0e,0xe5,0x76, + 0xba,0xce,0x99,0x0d,0x4f,0x7c,0x90,0xa4,0x56,0x9f, + 0x8c,0xb0,0xd3,0xe1,0x9d,0xb8,0x6d,0x0e,0xb9,0x99, + 0xf4,0xda,0xc8,0x82,0xa5,0x93,0xd7,0x53,0xa2,0x05, + 0x93,0x5f,0xb1,0x5d,0xbe,0x05,0x0d,0xb6,0x89,0xce, + 0xd6,0x8a,0x89,0x90,0xae,0x84,0x2c,0x91,0x88,0xee, + 0x46,0xac,0x73,0xe3,0xf7,0x37,0x51,0x42,0xf4,0xfd, + 0x3b,0x44,0xca,0x25,0x6f,0xaf,0x3e,0x4e,0xe7,0xda, + 0x3e,0x0e,0xd6,0x9c,0x0e,0xe2,0x80,0x66,0x54,0x6a, + 0xa9,0xa4,0x2a,0x3f,0xf1,0x06,0x7a,0xd6,0x1b,0xf8, + 0x15,0x78,0x60,0x92,0xc5,0xc6,0xd6,0x0a,0x24,0x78, + 0xd6,0xd4,0x66,0xe1,0x4e,0x2d,0xb6,0xe4,0x59,0x36, + 0x71,0x00,0xa6,0x4a,0x23,0x4d,0x86,0xd0,0xf3,0xd9, + 0x1e,0x60,0xc9,0xdb,0x2d,0x7d,0x46,0xea,0xa5,0xa7, + 0xbe,0xb8,0x5b,0x23,0x53,0x60,0x4f,0x0e,0xc2,0x0e, + 0xe9,0xfa,0x4e,0x2e,0x1e,0x7d,0xf3,0x05,0xf7,0x00, + 0xaf,0x6f,0x50,0x3e,0x8d,0x0a,0xc6,0x4e,0x17,0x2b, + 0x05,0x09,0xe7,0xc1,0xa3,0x5c,0x27,0x40,0xbc,0x6c, + 0xa0,0xbb,0x7f,0xef,0xfb,0x99,0x54,0x0a,0xc6,0x29, + 0xe9,0x20,0x35,0x76,0x42,0x2f,0x2f,0xe3,0x0d,0xb7, + 0x44,0x43,0xcb,0xa1,0x37,0xae,0x25,0xea,0x38,0x8f, + 0x9b,0x96,0x2e,0xf5,0x38,0x40,0x7b,0xe9,0x4a,0x48, + 0x12,0xb5,0x4e,0xc8,0x8b,0x31,0xa1,0xf3,0x82,0x62, + 0x55,0x9a,0x92,0x4a,0xc3,0x06,0xae,0xd5,0x9b,0x54, + 0x8c,0x37,0x09,0x8a,0x22,0xd3,0xda,0xb2,0xd3,0xa9, + 0x1f,0x42,0xf4,0x1d,0x92,0x93,0xee,0x93,0x44,0x7f, + 0x37,0x49,0xdf,0x7d,0x2d,0x86,0x83,0x56,0x8a,0xc4, + 0xb8,0x44,0xe9,0x93,0x33,0xc0,0x25,0xf2,0x92,0xa8, + 0xd4,0x94,0xb0,0x92,0x91,0xf2,0xb2,0x35,0xbb,0x42, + 0xd2,0x28,0xd6,0xd3,0x3d,0xd3,0xf9,0xf6,0x81,0x01, + 0xb2,0x5d,0xa7,0xae,0xf0,0x70,0x71,0xe2,0x77,0xd2, + 0xc0,0xa1,0x03,0x49,0x16,0x4c,0xd1,0xc5,0x4c,0x93, + 0x56,0x8e,0x64,0x97,0xe0,0xd0,0xa9,0x27,0xbe,0xe1, + 0x93,0x4c,0xa2,0x5b,0xfd,0xe7,0xc2,0x88,0x5e,0x6d, + 0x90,0x09,0x5d,0xa4,0x49,0x81,0x57,0x83,0x99,0x43, + 0x1d,0x1c,0x17,0x81,0x16,0xc1,0x34,0xc5,0x47,0x9c, + 0x0c,0x6d,0x9b,0x10,0xb2,0xe2,0x78,0x25,0x1a,0xa5, + 0x4d,0xbf,0xbe,0x08,0xbe,0xd4,0x6b,0xd7,0xf7,0x49, + 0x3c,0x28,0xf7,0x99,0x01,0x0d,0x2c,0x58,0xa3,0x48, + 0xb2,0xfb,0x24,0x81,0x24,0xa8,0x9f,0xd0,0xa2,0xd0, + 0x62,0x44,0x4e,0x40,0x9a,0x08,0xdb,0x4c,0x33,0xc2, + 0xfa,0x2c,0xba,0xe6,0x01,0x3a,0x2f,0x17,0x50,0x1d, + 0xf9,0x7a,0x53,0xc9,0x6f,0x2a,0xd9,0xa0,0x40,0x4c, + 0x1a,0x3b,0x34,0x01,0xf2,0xe6,0x41,0x15,0x14,0x8b, + 0xed,0x84,0x4d,0x5f,0x3b,0xc7,0xfc,0xb2,0xec,0x97, + 0x93,0xf6,0x5a,0xff,0xbc,0x56,0x75,0xd7,0xd7,0xd7, + 0xd7,0x49,0xc8,0xb6,0x7b,0xbe,0x2e,0x6e,0xa5,0x69, + 0x3d,0x67,0xea,0x79,0x19,0xdf,0x30,0x9a,0xec,0x4c, + 0xaa,0xf9,0xfd,0x7e,0xfa,0xf4,0x99,0xd3,0xef,0xd9, + 0x90,0xf2,0xd3,0x21,0x9a,0x0a,0x54,0x77,0xe6,0x74, + 0x4d,0x26,0x9d,0x6c,0xdb,0x70,0x6f,0xa6,0x69,0xe4, + 0xcd,0xba,0x76,0xd3,0x7d,0xc9,0xb1,0x7d,0x1a,0xb2, + 0x00,0x99,0x8b,0x43,0x53,0x50,0xd2,0x92,0x3d,0x9b, + 0xa4,0x8c,0xc8,0xd7,0x8b,0xf3,0xfe,0xe7,0xfd,0xdf, + 0xd3,0x8d,0x53,0xeb,0x30,0x9d,0xcd,0xd7,0xf5,0x0f, + 0x2f,0xf4,0x53,0xf4,0x52,0xaf,0xed,0x37,0xbd,0x50, + 0xba,0x21,0x15,0xb0,0xda,0xb4,0x95,0xd2,0xe2,0x48, + 0xb0,0x1f,0x99,0xa7,0x51,0xb6,0xb7,0xc9,0x4a,0x69, + 0xd3,0xd2,0x44,0xda,0x44,0xfe,0x72,0x9c,0xa7,0xfe, + 0x3b,0xfd,0x25,0x6d,0x46,0x7c,0x83,0x1a,0xea,0x38, + 0xbd,0xe0,0x12,0x08,0x08,0xb6,0x8e,0x9f,0x55,0x89, + 0x50,0x4c,0x44,0xde,0xa9,0xd7,0xbc,0x68,0x33,0xb9, + 0x56,0x57,0x25,0x55,0xd3,0x0d,0x11,0xff,0xd3,0xd6, + 0xa6,0x49,0xc6,0x68,0x9c,0xfc,0x6d,0xf2,0x41,0xa5, + 0x02,0x00,0xb2,0xae,0x29,0x20,0x7e,0x9a,0xb8,0x3b, + 0x92,0xbc,0x59,0x4f,0xb5,0x38,0x24,0x8a,0x54,0x82, + 0xfb,0x3e,0x44,0x48,0xe9,0x9a,0x3d,0xe4,0x12,0x57, + 0x28,0x0d,0x02,0x6c,0x5b,0x25,0x1a,0x60,0xdd,0xf7, + 0xb9,0xe1,0x87,0xfb,0x20,0xd4,0xbf,0x37,0xd7,0x36, + 0x19,0x9f,0xa2,0x81,0x6a,0x9b,0x96,0x39,0x54,0xcd, + 0x9f,0xf7,0x4a,0x62,0x6c,0x91,0x74,0x95,0x3e,0x12, + 0x76,0x34,0xa8,0xd1,0x81,0x29,0xcb,0xb3,0x71,0x6a, + 0xd7,0xc4,0x28,0x71,0xa8,0xee,0x9f,0x4d,0x45,0x29, + 0xad,0x07,0x4a,0xb4,0x16,0x84,0xfd,0xad,0xd9,0x2d, + 0x22,0x06,0x9b,0xf1,0xf2,0x29,0xb6,0x6c,0x44,0x11, + 0x27,0xea,0x46,0x6a,0xed,0x7f,0xd2,0x12,0x84,0x6b, + 0xfc,0x79,0x8f,0x94,0xac,0x50,0x42,0x08,0x67,0xb9, + 0x33,0xd4,0xb5,0xeb,0x8d,0x68,0x18,0x03,0xea,0xff, + 0x48,0xe6,0x86,0x58,0x7b,0x73,0xfe,0x4e,0x12,0x8c, + 0x7c,0x4b,0x80,0x26,0x0f,0xaf,0x61,0x34,0x7e,0x24, + 0xe2,0x25,0xf8,0x90,0x1c,0x86,0x93,0x72,0xf0,0xb4, + 0xf8,0x5d,0x6b,0xcd,0x55,0xbd,0x1b,0xc2,0x9a,0x4e, + 0x46,0x4c,0x52,0x01,0xe9,0xde,0x95,0xc3,0xd1,0x89, + 0xc2,0x93,0x15,0x48,0x0f,0x0a,0xdb,0x51,0x7f,0x42, + 0x67,0xa6,0x1e,0xb3,0x7b,0x26,0x6e,0x11,0x39,0x63, + 0x4c,0x42,0x72,0xe8,0xbe,0xb6,0xd9,0xfb,0x65,0xc6, + 0x2b,0xdd,0x7b,0xb9,0x75,0x53,0xf4,0xbb,0x09,0xd1, + 0xbc,0x40,0x52,0xdd,0x5d,0x77,0x0a,0x48,0xca,0xdb, + 0xb8,0x93,0xa3,0x3f,0x7f,0xfe,0xa4,0x71,0xe0,0xa2, + 0xc0,0xa7,0x1c,0x11,0x45,0x10,0x93,0x82,0xb4,0x43, + 0xea,0x20,0xc1,0x7e,0xb4,0x0c,0x48,0x55,0xd5,0xb5, + 0xb0,0x37,0xd7,0x31,0xf0,0x6c,0x6c,0x82,0x35,0xad, + 0xd1,0x70,0x38,0xdc,0xef,0xe0,0x50,0x2b,0xa8,0x13, + 0x65,0xbb,0x26,0x8d,0xde,0xf7,0x07,0x3a,0x53,0x16, + 0xe9,0x99,0xda,0x08,0x41,0x4b,0xcc,0x6a,0xe8,0x6c, + 0x38,0x8f,0x29,0x2e,0xf4,0xc4,0x62,0x42,0x58,0x6e, + 0x54,0x8b,0xde,0x4b,0x2a,0xe8,0xb6,0xca,0xe0,0x20, + 0x62,0x37,0x16,0x5e,0x37,0x7a,0x40,0x7a,0x45,0x5a, + 0x24,0x6d,0xb8,0x6f,0x34,0x69,0x08,0xcf,0xc8,0x25, + 0x06,0x3f,0x09,0xae,0x4b,0xfa,0xdc,0x73,0xee,0xfb, + 0xd9,0x25,0x8f,0x1b,0xd5,0x64,0x52,0xb7,0x27,0xb4, + 0x32,0xed,0x25,0x9a,0xe8,0x94,0xef,0x78,0xd3,0x74, + 0x4a,0xe8,0xd4,0xa6,0xd8,0x21,0xfe,0xd5,0x94,0x0c, + 0xd2,0x79,0x4a,0x6d,0xdf,0x74,0x6d,0xaf,0xa4,0xc3, + 0x40,0x24,0xa8,0x49,0x25,0xd9,0x9d,0xb8,0x1b,0xfd, + 0x99,0x81,0x28,0x66,0x27,0x11,0xa6,0x97,0xac,0xbe, + 0x66,0x53,0x5f,0x7c,0x53,0x4d,0xa4,0x56,0x09,0x7c, + 0xee,0xc8,0x17,0xd0,0x9e,0xa8,0x12,0xe8,0x36,0xa4, + 0x5b,0xfa,0x7c,0x12,0x37,0xdc,0x90,0xd5,0x12,0xfc, + 0xea,0x5c,0x8f,0xb7,0x1e,0x2c,0xfa,0xbe,0x5d,0x15, + 0x94,0x26,0x1a,0x88,0x5b,0xa0,0xa2,0x9b,0x1d,0xe6, + 0x4d,0xd5,0x13,0x05,0x16,0xe1,0xc2,0xd4,0xd4,0x43, + 0x4f,0x2d,0xae,0xae,0xa1,0xb4,0x29,0x2e,0xdc,0x3a, + 0x23,0x9f,0xbe,0xd4,0x3a,0x03,0x31,0xcd,0xea,0xeb, + 0xab,0xbf,0x53,0x0d,0x2c,0xdf,0xc4,0xe8,0x1a,0xb8, + 0x29,0x63,0xcb,0xd6,0x4d,0xe9,0x7c,0x2a,0xb0,0x46, + 0x6d,0x6c,0x6d,0x75,0x76,0x9d,0x2e,0xc3,0x1f,0x79, + 0xfb,0xee,0x5f,0xbf,0x7e,0xd5,0x82,0x57,0x57,0x2a, + 0x7b,0xb0,0xe5,0x13,0x26,0x34,0xce,0x4d,0x81,0x26, + 0x24,0x58,0xda,0x38,0x0e,0x21,0x29,0xc7,0x31,0xeb, + 0x93,0x92,0x34,0x61,0x98,0x4c,0xa3,0x83,0xb9,0x6f, + 0x05,0x63,0x5d,0x87,0x44,0xd9,0xe7,0x22,0x28,0xbc, + 0xdb,0x67,0x55,0x55,0xd7,0x9f,0x3f,0x7f,0x1e,0xf4, + 0x0b,0x7d,0x2e,0x49,0x4f,0x6c,0x4b,0xab,0x70,0x2d, + 0xa3,0x89,0xd3,0xb2,0xe1,0x4a,0xea,0x73,0x4a,0x86, + 0xbc,0x74,0x9e,0xb9,0x73,0x99,0x38,0x5b,0xdb,0xe4, + 0x6e,0x23,0x3e,0x3a,0x21,0x4d,0xca,0x5b,0xdd,0xb4, + 0xc1,0xc9,0xe2,0x66,0x8b,0x98,0xd3,0xa8,0xfd,0x34, + 0x35,0x7a,0xff,0xcc,0xef,0x0f,0x46,0xdb,0x6b,0x53, + 0xb9,0x4d,0x3e,0x28,0x53,0x86,0xb8,0xfd,0xd9,0x10, + 0x70,0xea,0x3f,0x32,0xe9,0x35,0x6d,0x00,0x17,0x80, + 0xe1,0x77,0x9c,0xda,0xef,0x68,0x0b,0x01,0xca,0xce, + 0xc8,0x37,0x91,0x77,0x50,0x53,0xe5,0x9d,0xb8,0x21, + 0x4e,0x25,0x3a,0x3d,0xcb,0x8d,0x5c,0xfb,0x10,0x68, + 0xd2,0xa1,0x60,0x11,0x26,0xd7,0xbe,0x49,0xad,0x2d, + 0x3a,0x44,0x9a,0xc2,0x2e,0xa2,0x4d,0x5a,0x75,0x86, + 0xb5,0x54,0x90,0x44,0x55,0xa8,0xd4,0x13,0x61,0xb8, + 0x74,0x6d,0x77,0x3d,0xa0,0x41,0x68,0xae,0x16,0x95, + 0x70,0x6d,0x39,0x39,0x24,0x84,0x47,0x22,0x8b,0xae, + 0x8a,0xeb,0xf7,0xe0,0x5a,0xb9,0xf2,0xdf,0x27,0x25, + 0xd4,0x9b,0x56,0x8a,0xe3,0x98,0x38,0xae,0x8c,0x99, + 0xd2,0x3b,0xe9,0x40,0x51,0xce,0x86,0xe3,0x92,0x75, + 0x85,0x63,0xf5,0x15,0xa3,0x3d,0x41,0x15,0xb8,0x6b, + 0x27,0xa4,0x22,0x63,0x9b,0x94,0xa6,0x84,0x66,0x40, + 0xac,0x6c,0x5b,0x64,0xa3,0xa3,0xb5,0x89,0xf7,0x93, + 0x80,0xe2,0x94,0x3c,0x10,0xca,0x06,0x6d,0xf3,0xba, + 0x91,0xc2,0x69,0x2f,0xb8,0x01,0x9b,0xf4,0x5d,0x2d, + 0x26,0x9c,0xe5,0x74,0x62,0x44,0x61,0xe0,0x3b,0x1f, + 0x68,0x8c,0xa3,0x90,0x24,0xd4,0x68,0xe3,0xdf,0xb9, + 0xd1,0x68,0xa3,0x0e,0x81,0x1b,0xb0,0x21,0x6a,0x4d, + 0xda,0x9f,0x09,0x19,0xd2,0xc2,0x9e,0xd0,0xb1,0xce, + 0x75,0xea,0xf7,0xfb,0x4a,0x8b,0x75,0x82,0x3a,0x37, + 0x2d,0x09,0x62,0xd8,0x2b,0xaa,0xd1,0x7d,0xb0,0x92, + 0xe2,0xa5,0x7b,0x88,0x69,0x03,0x3a,0xad,0x96,0x8d, + 0x5f,0xd1,0xd4,0x17,0x77,0x63,0xc9,0xc9,0x51,0x7d, + 0x52,0x5d,0x75,0x0b,0x9e,0x5a,0x80,0x1b,0x21,0x3b, + 0x9a,0xc4,0x80,0xac,0x79,0x35,0xad,0x76,0x99,0xa9, + 0x8f,0x64,0xe8,0xe9,0x46,0xb1,0x5d,0xf5,0x22,0x1c, + 0x8c,0x9a,0x60,0xfd,0x61,0x22,0xa1,0x5c,0x45,0x92, + 0x36,0x7a,0x12,0xff,0x4c,0xef,0x31,0x05,0x7d,0x7a, + 0x7f,0x34,0xfa,0x9f,0x82,0x75,0x42,0x2e,0xa7,0x96, + 0x8b,0x1b,0x8b,0x26,0x04,0x4d,0xd7,0x8a,0x4e,0xae, + 0xe8,0xde,0xa1,0xf6,0x85,0x49,0xa0,0xba,0xb6,0xcf, + 0x06,0x3d,0x7e,0xd3,0x0c,0x5a,0x1c,0x36,0x18,0x28, + 0x35,0xe1,0x22,0x01,0xc3,0xbe,0x46,0x07,0xce,0x46, + 0x6d,0x5b,0xd0,0xc0,0xf7,0x79,0x20,0xec,0x49,0x37, + 0x6d,0x53,0xcc,0x24,0x95,0x76,0x97,0x98,0x76,0x74, + 0x93,0xa6,0x99,0x3a,0x82,0xf6,0x49,0x02,0x4a,0xfb, + 0x50,0x8b,0x9a,0x84,0x96,0x4d,0x24,0x60,0x17,0xcf, + 0x12,0xf1,0x9b,0xf6,0x67,0x92,0x10,0x09,0x85,0xad, + 0x6d,0x2f,0xba,0xf5,0x45,0x43,0x18,0x94,0x0c,0x6e, + 0x63,0xdd,0x76,0xb4,0x9c,0xde,0x4f,0x6a,0xd3,0xb9, + 0xef,0x24,0x24,0x4b,0xed,0x3d,0xd2,0x5e,0xdc,0xdc, + 0x1b,0xd9,0x63,0x0c,0xf1,0xb6,0xdc,0x1a,0x71,0x94, + 0x06,0x17,0x73,0x5e,0xa9,0x9f,0x26,0x5e,0x52,0x98, + 0x18,0x2c,0xbd,0x53,0x6a,0xd2,0x06,0x9a,0x58,0xf5, + 0x1b,0x05,0x52,0xe2,0x30,0xb9,0x16,0x4b,0xef,0x8b, + 0x4f,0xfa,0x37,0x03,0x52,0x51,0x44,0xcc,0x76,0x7e, + 0x58,0x89,0x14,0x7e,0xff,0x9e,0x8c,0xe5,0x16,0x2d, + 0x98,0xd4,0xf6,0x4a,0xea,0xd8,0x9b,0x67,0xbe,0x41, + 0x8e,0x28,0x01,0xfc,0xe4,0x9e,0x17,0x9b,0xbe,0x88, + 0xf7,0x40,0x81,0x48,0xf9,0x39,0x13,0xc7,0x8a,0x4c, + 0xff,0x28,0xf1,0x5e,0x20,0x27,0xf6,0xdf,0x3b,0x47, + 0xc9,0x1d,0x92,0x5d,0x2f,0xc8,0xa8,0x8a,0xd7,0xdf, + 0x18,0x36,0x4e,0x92,0xf2,0xe6,0x00,0x2a,0x37,0x02, + 0xee,0x5a,0x01,0x30,0xfa,0xdd,0x05,0x0d,0xc7,0x04, + 0x9d,0xfe,0x5b,0x38,0x16,0xe5,0x12,0x14,0xba,0x36, + 0xd3,0x66,0x19,0xf7,0x50,0x6f,0x83,0xdf,0x5a,0x4a, + 0x24,0x4e,0x17,0x86,0x25,0x56,0xa3,0xef,0x94,0xd8, + 0xc2,0xda,0x2b,0x68,0xb1,0xd4,0x74,0x28,0x18,0xfe, + 0x0a,0xc6,0x83,0x41,0x73,0x25,0xb5,0x4a,0x8a,0x46, + 0xe1,0x53,0xab,0x77,0xb2,0x57,0x21,0x9a,0x41,0x32, + 0xcb,0x4e,0xa3,0xdd,0x74,0x38,0x0e,0x4a,0xe4,0x35, + 0x0d,0x7a,0x24,0x41,0xcb,0x85,0x0d,0x4c,0x6d,0x26, + 0xc0,0x5c,0x21,0xaf,0x89,0x17,0x14,0x37,0xb5,0xa5, + 0xa0,0x24,0x41,0xdf,0x49,0xc3,0x4e,0xd7,0x90,0xaa, + 0xe6,0x87,0xb6,0x7f,0x11,0x12,0x46,0x42,0x86,0x29, + 0xe1,0xa3,0x33,0x86,0x92,0xdf,0x17,0xc1,0xff,0xa4, + 0x01,0x32,0x6d,0x08,0xd5,0xd3,0x98,0x46,0xf5,0xa8, + 0x8f,0x49,0x23,0xe8,0x93,0x2b,0x7d,0x5a,0xa4,0x14, + 0xf0,0x1d,0xa2,0x44,0xfc,0x24,0x42,0x8d,0x48,0x7f, + 0x46,0xa1,0x48,0x77,0xb0,0x93,0x76,0x88,0x22,0x70, + 0x5a,0xb9,0x4d,0x62,0x5d,0x8a,0xd8,0x74,0x35,0x59, + 0xaa,0x9e,0x52,0x92,0x49,0x70,0xa6,0x7b,0x57,0xc9, + 0xcf,0xe7,0x13,0x57,0xf0,0x37,0xd1,0xaa,0x77,0x0e, + 0x49,0x6d,0x78,0x55,0xd3,0x5a,0x32,0xeb,0xbc,0xa0, + 0x87,0x5f,0x13,0xdf,0x2d,0xa9,0xe7,0xa6,0xe7,0xb0, + 0x35,0xa7,0x4d,0x55,0x9b,0x13,0x53,0x9c,0x0e,0xa5, + 0x4f,0x0e,0xcf,0xa4,0xd5,0xd5,0xf5,0x75,0xc8,0x16, + 0xc0,0xad,0x9f,0x8d,0x1e,0x13,0xc4,0xa7,0x28,0x14, + 0x18,0x3e,0x2b,0x7a,0xa9,0x39,0xe3,0xe0,0xf4,0xec, + 0x42,0x3b,0x83,0x12,0x90,0x49,0x7c,0xb4,0x08,0xbd, + 0xd9,0x20,0x1e,0x13,0x1a,0x1c,0xd6,0xc0,0x88,0x00, + 0xbb,0xa1,0x0a,0x67,0x80,0x9c,0x5a,0xcf,0x24,0x08, + 0x78,0x17,0x28,0x77,0x2c,0xb9,0xad,0x75,0x40,0x14, + 0xd3,0xb5,0xe5,0xfe,0xba,0x5d,0x9a,0x8a,0x22,0x42, + 0xe6,0x27,0x7d,0xa7,0x54,0x18,0x09,0xea,0x97,0xd0, + 0xa8,0xb7,0x42,0x7d,0x6b,0x8c,0x4a,0xea,0xde,0x09, + 0x35,0xa1,0xc4,0x34,0x25,0x38,0xf4,0xae,0x53,0xd2, + 0x47,0x92,0x39,0xa9,0x0d,0x9a,0x3a,0x2c,0xa9,0x5d, + 0xb6,0xd9,0x27,0x3f,0x3a,0x40,0x54,0x49,0x4d,0x06, + 0x7f,0x64,0x2b,0xb0,0x19,0x8d,0x4e,0x9a,0x2d,0x13, + 0x31,0x6d,0xb3,0x80,0x27,0x47,0xec,0x29,0x8b,0x0c, + 0xa3,0xed,0x95,0xfa,0xba,0xa9,0x4d,0xb2,0xd5,0xe1, + 0xd9,0x20,0x2e,0xf4,0xbe,0x68,0x51,0x39,0x3e,0x48, + 0x22,0xfd,0xa6,0x31,0x57,0x32,0x86,0xa4,0xc4,0xd6, + 0xf9,0xf7,0x10,0x1f,0x8a,0xaa,0xee,0xcd,0x74,0x99, + 0x3b,0x78,0x02,0x2c,0x5c,0x13,0x29,0x6f,0x3b,0xc5, + 0xb3,0x99,0x84,0xe9,0xae,0xdb,0x93,0x6c,0xfc,0x34, + 0x04,0x90,0x60,0xfa,0x50,0x51,0xc7,0xd1,0xf5,0x0d, + 0xda,0x07,0x87,0x42,0x4d,0x05,0x0a,0x09,0x8d,0x26, + 0x82,0x66,0x3a,0x50,0x04,0x15,0x39,0x6e,0x2f,0x98, + 0xfe,0x7f,0x74,0xeb,0x9e,0x10,0x49,0x72,0x7d,0x27, + 0x13,0xc9,0xb4,0xbf,0x13,0x87,0x64,0x43,0x02,0x57, + 0xd4,0xaf,0x8f,0x21,0xeb,0xf4,0x14,0xf1,0x2c,0x3e, + 0x71,0xfe,0xa6,0xf7,0xe1,0x10,0x1c,0x29,0xd2,0xde, + 0x38,0x43,0xca,0x23,0x4a,0xea,0xcf,0xee,0xf0,0xbf, + 0x73,0xa5,0x85,0xbc,0xc6,0x1b,0xf7,0xcb,0x71,0x77, + 0x12,0xb9,0x37,0xb5,0x93,0x93,0x30,0x2c,0xbd,0x47, + 0xd0,0x5b,0x9a,0xa8,0x06,0x47,0x8b,0xef,0x29,0x01, + 0xa0,0x3d,0x37,0xb5,0xcc,0xc2,0xf3,0xe4,0x59,0xf6, + 0x01,0x91,0xff,0x46,0x6c,0x4f,0x4a,0x28,0x13,0xff, + 0xca,0xfd,0x77,0xff,0xcc,0xf4,0x0e,0xa9,0x78,0x77, + 0x02,0xb0,0x2f,0x27,0xd7,0x3e,0x65,0xb3,0x29,0x78, + 0x3a,0x3d,0x0d,0xf7,0x39,0xa9,0x27,0xba,0x4d,0x7a, + 0x12,0xe7,0xc2,0x90,0x47,0x23,0xa7,0xe8,0x0a,0xde, + 0x3e,0xd4,0xee,0x23,0xab,0x08,0x9a,0xfc,0xa2,0xe7, + 0xe7,0x7a,0xc8,0x09,0xbe,0xa5,0x69,0x0e,0xea,0xa7, + 0x0f,0xe3,0xdb,0x63,0x32,0xa7,0xd5,0xb3,0xde,0x9f, + 0x6c,0xd0,0x4a,0xe8,0x89,0xe3,0x10,0xb5,0xaa,0xa8, + 0x80,0xec,0xb7,0x52,0x78,0xa6,0x20,0x91,0x54,0x5e, + 0x43,0x2b,0xe7,0xd1,0xb6,0x48,0x49,0x09,0xb5,0x26, + 0x12,0x97,0x63,0xba,0x17,0x22,0x9d,0x18,0x44,0xb0, + 0x06,0x3f,0x26,0x2b,0xe5,0xa0,0xd3,0x3c,0xee,0xdd, + 0x39,0xbe,0x5b,0x33,0xae,0xac,0x49,0xb4,0x34,0xf1, + 0xef,0xe8,0xc0,0x48,0x13,0x96,0x30,0x59,0x84,0xb6, + 0x27,0xc0,0x01,0xac,0xc9,0x1e,0xc7,0xbd,0xc3,0xa9, + 0x20,0x24,0x54,0xc5,0xac,0xb5,0x8f,0x6c,0x51,0xdc, + 0xd4,0xd7,0xc0,0x7b,0xb2,0x3f,0xdf,0x13,0x7f,0xe2, + 0x06,0xa6,0x98,0x38,0x28,0x22,0x97,0x56,0xdd,0xd3, + 0x41,0x04,0x07,0xa7,0x45,0xcf,0x5d,0x65,0x4f,0x9f, + 0x03,0x9e,0x55,0x65,0x0e,0xc0,0xda,0xc6,0x10,0x5a, + 0x5f,0x89,0xf3,0xe4,0xf8,0x8c,0x93,0x5d,0xc7,0x27, + 0xed,0xf6,0x09,0x95,0xd9,0x0c,0x16,0x39,0x73,0x5a, + 0xa2,0x34,0x38,0x7d,0xb4,0x4f,0x78,0x48,0x8e,0xbb, + 0xfa,0xb7,0x36,0x1f,0x3d,0x39,0x86,0x16,0x69,0xe9, + 0x19,0xe0,0x8a,0x81,0x97,0x83,0x16,0x87,0x07,0x15, + 0x3d,0x3a,0x3e,0x99,0x00,0xa3,0x07,0xec,0x88,0x87, + 0xd3,0xc6,0x71,0x64,0x3b,0x47,0x2e,0x4c,0x10,0xe2, + 0x64,0xd1,0xa0,0x2d,0x1f,0xd2,0x26,0x48,0x30,0x33, + 0xb5,0xce,0x92,0x5c,0x3c,0x1d,0xd0,0x93,0x44,0x3b, + 0x1d,0x2c,0x1a,0x10,0x75,0x34,0x3b,0xa1,0x4c,0x13, + 0xd7,0x65,0x6b,0xea,0x9a,0x0e,0x96,0x94,0xb0,0xdd, + 0x56,0x14,0x69,0x34,0x3e,0x8d,0x54,0x12,0x67,0xa0, + 0x73,0x6c,0xb6,0xd5,0xfc,0xb6,0x6d,0xd0,0x5d,0xbb, + 0x37,0xdc,0x90,0x89,0xd3,0xe2,0xda,0x66,0x3d,0xf1, + 0x76,0xc4,0xde,0x89,0x87,0x30,0x41,0xe7,0x43,0x4e, + 0x86,0x89,0xde,0x56,0xe0,0x71,0x7b,0xe0,0x4c,0xa3, + 0xff,0xa9,0x6d,0xaf,0x4e,0xe9,0x34,0xc5,0xaa,0xad, + 0x82,0xd0,0x66,0x2d,0x17,0x94,0x37,0x36,0x3a,0x5a, + 0x44,0x4c,0x87,0x2c,0xf9,0x20,0x3a,0x9e,0xdf,0x27, + 0xde,0x85,0xae,0xa5,0x9c,0x44,0x0a,0x07,0x01,0xc4, + 0xc8,0x63,0xd9,0xda,0x28,0x7c,0xb2,0x07,0x1c,0xe7, + 0x64,0x8b,0x78,0xa4,0x42,0x78,0xc3,0x67,0x24,0xf4, + 0x2f,0x14,0xd9,0x38,0xd0,0xa2,0x31,0x09,0x3c,0xf6, + 0x2c,0x85,0x82,0x3e,0x77,0xe3,0xdb,0xe5,0x38,0x55, + 0x64,0xbd,0x44,0x31,0xe4,0x02,0x49,0x0d,0x32,0xa7, + 0x9d,0xc6,0xef,0xa7,0xe9,0x65,0xfd,0x33,0x2d,0x70, + 0x29,0x57,0xe9,0x7b,0xf3,0x67,0xdf,0x50,0x76,0x34, + 0x2d,0x02,0x42,0x0f,0x26,0xd5,0x5b,0x07,0x7b,0x81, + 0x6e,0xc5,0x3a,0x93,0x9d,0x7a,0x85,0x64,0x35,0x91, + 0xaa,0x7f,0xd5,0x92,0xa1,0x85,0x9f,0x32,0xde,0xc9, + 0x03,0x67,0xc3,0x47,0x80,0x4c,0xbf,0xa6,0x43,0x25, + 0x71,0x5f,0xa6,0xbe,0xb3,0xf2,0x5d,0xc0,0x27,0x29, + 0xf2,0x3c,0x12,0x69,0x6e,0xc9,0xa3,0x58,0xf1,0x78, + 0xb6,0xc8,0xa1,0x98,0xe4,0x15,0x8d,0xdd,0xbb,0x76, + 0xc7,0x27,0xa4,0x5b,0xaa,0x78,0x13,0x07,0x60,0x23, + 0x20,0xd8,0x7f,0x47,0x79,0x17,0x4e,0xeb,0x26,0x71, + 0xb6,0x5c,0x2b,0x24,0xb5,0xbe,0x9d,0x0b,0x38,0x69, + 0xfa,0x38,0xd2,0xe6,0x66,0x94,0x36,0x88,0xa2,0x46, + 0xde,0x9b,0x21,0x20,0xd7,0x94,0x3c,0x6d,0x63,0xc9, + 0xf4,0xbe,0x6f,0xab,0x8c,0xe0,0xf5,0x56,0x01,0xe9, + 0x2b,0xfa,0xfc,0xb0,0x57,0x0b,0xd6,0xac,0x9d,0x5e, + 0x4a,0x53,0x7c,0x21,0xa1,0x8e,0xf7,0xae,0xe8,0x18, + 0x1d,0xb8,0x1b,0x7e,0x12,0xa1,0x4f,0x1b,0x9e,0x98, + 0x4b,0x20,0x37,0xad,0x64,0x47,0x17,0x20,0xb1,0x56, + 0xda,0xdf,0xc9,0x11,0x3d,0xf1,0xfc,0x5c,0xa2,0xe9, + 0xd6,0x38,0xc5,0x0e,0xb7,0x2f,0x1d,0x12,0x36,0xa1, + 0x2e,0xa9,0xd3,0xb1,0xe1,0x6c,0x4e,0xef,0xd9,0xed, + 0xed,0xb4,0x06,0x3f,0x6d,0xbf,0xbb,0xdf,0x9b,0xbc, + 0xeb,0x28,0x61,0x7f,0xa5,0xe0,0xa0,0xc4,0xb7,0x0d, + 0x3f,0x22,0x55,0x9b,0xa9,0xcd,0x96,0x5e,0x04,0x1c, + 0x4a,0xce,0x04,0xb2,0x36,0x2d,0x92,0x4f,0x2a,0xd4, + 0x89,0xc9,0xae,0xe4,0xe8,0x7e,0x48,0xd0,0xc2,0x98, + 0x08,0xe6,0x5a,0xc1,0x4f,0xc8,0x59,0xba,0x47,0x81, + 0x01,0x6b,0xb3,0xa8,0x53,0xeb,0x21,0x79,0xc1,0xa4, + 0x2a,0x3e,0x4d,0x69,0x6c,0xd6,0xd2,0xc2,0x3c,0xb4, + 0x26,0xef,0xb0,0x84,0x3c,0x86,0x42,0xa0,0x68,0x22, + 0x0b,0xd0,0x39,0x44,0x79,0x5c,0x3b,0xc6,0xc1,0xcf, + 0x0e,0xe1,0x81,0xe9,0x4b,0xcb,0xc1,0x6a,0xc9,0x49, + 0x51,0xe0,0xd4,0x56,0xcf,0xc2,0x9f,0xab,0xf4,0xde, + 0xa8,0x2d,0xe2,0x5a,0xba,0x26,0xf1,0xd2,0x71,0xf7, + 0x48,0xe4,0x75,0x08,0x82,0x4b,0x94,0xee,0x84,0x60, + 0x93,0x8c,0xd2,0xcf,0xc9,0x7a,0xab,0x4d,0x0b,0x64, + 0x33,0xc6,0x9c,0xd0,0x74,0x81,0xea,0x6b,0x6a,0xb9, + 0x51,0x40,0x4f,0xe8,0x71,0x5b,0x1b,0x35,0x21,0x13, + 0xfd,0x19,0x6d,0xec,0x85,0xc2,0x81,0xe9,0xd6,0x68, + 0xf4,0x18,0x74,0xe2,0x91,0x5d,0x1d,0x7b,0x2b,0x92, + 0x39,0x4d,0xb5,0x6e,0x27,0x37,0x2f,0xd0,0x44,0x73, + 0xb1,0x31,0x15,0xd4,0x34,0xa1,0xab,0xea,0xe4,0x49, + 0xe7,0xce,0x15,0x84,0x12,0xe3,0x2a,0x75,0x34,0x26, + 0x9a,0xc4,0x30,0x68,0xb1,0x42,0xb9,0x12,0x20,0x30, + 0xa1,0x63,0xc9,0x8c,0x99,0xb8,0x3f,0x29,0x09,0x9e, + 0x3a,0x0e,0x2f,0x5a,0x14,0x1b,0x8e,0xc8,0x16,0xf6, + 0x4d,0x4c,0xef,0x0f,0x36,0xd2,0x86,0xc7,0x13,0x2b, + 0x0e,0x0a,0x5c,0x5b,0x65,0x4f,0xc8,0x72,0x6b,0x4b, + 0x78,0x76,0xed,0x2f,0xa9,0x34,0x6a,0x5a,0x54,0x29, + 0xb9,0x4c,0xd0,0xa5,0x43,0x33,0x88,0x2f,0xe3,0x1c, + 0xb2,0x3f,0x59,0x6c,0xae,0x8d,0xb0,0x95,0xa6,0x4f, + 0x06,0x7c,0xae,0x0d,0x49,0x49,0x8e,0xbe,0x98,0x09, + 0x41,0x70,0x93,0x3f,0xe9,0xa0,0x4d,0xb0,0x3e,0xac, + 0xc7,0x72,0x01,0xe0,0xd3,0xcf,0x4c,0x09,0x82,0xbe, + 0x63,0x12,0x8a,0xeb,0x87,0x49,0x6a,0xfd,0x76,0xbe, + 0x4f,0x42,0x70,0xe9,0xfb,0x65,0xd4,0xf7,0x47,0x0b, + 0x48,0xd5,0x83,0xdb,0xda,0xaf,0xaf,0xaf,0xaf,0x9f, + 0x91,0xf7,0xa9,0x0d,0x4f,0xca,0xe1,0x3d,0x71,0x49, + 0x28,0x98,0x26,0x91,0x9b,0x77,0x37,0xb5,0xfa,0x1c, + 0x87,0x2d,0x4c,0x67,0xd5,0x76,0x7c,0xd7,0xbd,0x9b, + 0x60,0x92,0xfc,0x40,0x06,0x9c,0x6b,0x79,0xfa,0xae, + 0x44,0x1b,0xd8,0xa0,0xee,0x1b,0xe4,0x6d,0x83,0xf2, + 0x13,0xda,0x22,0xba,0x2e,0x65,0x9e,0x55,0xd1,0x84, + 0x9a,0x8b,0x2f,0xc9,0xbe,0x03,0x38,0x9d,0x45,0x09, + 0x7e,0x2a,0xb0,0x29,0x29,0xe9,0xb1,0x77,0x42,0xbb, + 0x53,0xa2,0x3b,0x25,0x1f,0x84,0xfe,0x4e,0xc8,0xf9, + 0xa7,0xe7,0x77,0x42,0x9c,0x12,0xd2,0x45,0xf1,0x8e, + 0xba,0x2e,0xfd,0x67,0xee,0x35,0xdf,0x65,0x6d,0xcc, + 0x7b,0x79,0x13,0xdf,0xfd,0x9d,0xa0,0xfe,0xad,0xbf, + 0xc7,0xf4,0x32,0x5c,0x52,0xb1,0xe5,0xd9,0xe8,0x62, + 0x4c,0x0f,0x6b,0x82,0xb3,0xb7,0x0a,0xa3,0x04,0x11, + 0x6f,0x26,0xc9,0x92,0xf3,0xf2,0x16,0x46,0x4c,0xbf, + 0x93,0xc4,0xee,0xd2,0x3d,0x4d,0x3d,0x55,0x33,0xad, + 0x14,0x11,0x13,0xb8,0x87,0x32,0x5e,0x4b,0x88,0x6a, + 0xa8,0x86,0x85,0x53,0xce,0x76,0xaa,0xa1,0x34,0x59, + 0xb1,0x0d,0x6e,0x53,0xb0,0xd8,0xb4,0x0d,0xa6,0xbe, + 0xb6,0xb6,0x4a,0xba,0x9a,0xb4,0xb3,0xa4,0x80,0xf7, + 0x5c,0x93,0x5d,0x4c,0xd8,0x1b,0x95,0x26,0x2d,0x09, + 0xa9,0x72,0x44,0xd8,0x41,0xb6,0x3e,0xc9,0x41,0xd4, + 0x27,0xa4,0x46,0x77,0xff,0xfd,0x8f,0xa7,0x2a,0xde, + 0x4c,0xea,0x44,0x2f,0x2d,0x31,0xbe,0x3d,0x4e,0x59, + 0xf6,0xfe,0x5c,0x85,0xf1,0x45,0xe7,0xeb,0xa1,0x10, + 0x3d,0x41,0xf7,0x3a,0x31,0xe5,0xde,0x65,0xba,0xd7, + 0x89,0x9b,0xb6,0x18,0x85,0x76,0xf1,0xd0,0x3a,0xd7, + 0xeb,0xf3,0xd8,0x4c,0x8b,0x4d,0xa4,0x5d,0xa7,0x03, + 0x94,0xe2,0xd9,0xa4,0x45,0xe7,0x9e,0x99,0x11,0xbf, + 0x23,0x13,0xd9,0xb1,0x50,0xa6,0x7d,0x4f,0xf7,0xac, + 0x71,0xd4,0x69,0xe0,0xdd,0x07,0xf5,0x77,0xab,0xf2, + 0xf4,0x84,0xed,0x36,0xf4,0xdc,0x9c,0xc5,0x93,0x81, + 0xb0,0x8b,0x1b,0xdb,0x7b,0xff,0xf4,0x99,0x07,0x24, + 0x75,0x0d,0x70,0xb4,0xfa,0xf5,0xe8,0x3b,0xec,0x71, + 0x54,0x8a,0x8c,0x43,0x31,0x2c,0xb9,0x01,0xbc,0x28, + 0x29,0x49,0x87,0x44,0xd2,0xde,0x48,0x02,0x6b,0xfa, + 0x3b,0x54,0xc1,0x6c,0xb2,0xf5,0xc9,0xa2,0x61,0xc3, + 0xb1,0xe9,0x8b,0x70,0x62,0xc0,0x77,0x50,0x21,0xb5, + 0xb7,0x12,0xb4,0x4d,0xfc,0x9e,0xbf,0x49,0xe8,0xe4, + 0xf3,0xca,0x98,0x58,0x56,0x9a,0x92,0xd8,0x24,0x92, + 0x4e,0x29,0x9a,0x44,0xf5,0x5c,0x2b,0x89,0x92,0xeb, + 0x0d,0xc1,0x8d,0x48,0x7b,0xaa,0x8f,0x61,0xf8,0x3d, + 0x36,0x69,0xed,0x56,0x12,0xfa,0x1d,0xc9,0xe6,0x62, + 0x63,0x19,0xa0,0x55,0xe2,0xc6,0xf9,0x7c,0x43,0xe4, + 0x4f,0x7b,0xb0,0x27,0x87,0x26,0x39,0xaa,0x49,0xb5, + 0x3a,0xa1,0x95,0xae,0xfd,0x91,0xde,0x95,0xe3,0xe1, + 0xb8,0xd6,0xc9,0x56,0x2f,0x05,0xae,0xfd,0x4d,0x49, + 0x7a,0x43,0xa6,0xfd,0x7e,0x26,0x95,0xaa,0x4f,0x0a, + 0xc6,0xc6,0xb3,0xad,0x16,0x13,0x69,0x49,0x0d,0x7b, + 0x44,0x5d,0xe4,0xf3,0x47,0x9b,0x16,0xe5,0x22,0xe9, + 0xf5,0x6f,0xe2,0x54,0x42,0xd5,0x87,0x89,0x4a,0x34, + 0xfa,0x72,0x8a,0xef,0x69,0xd2,0x6b,0x52,0xc5,0x4f, + 0x49,0xfa,0xd4,0x36,0x75,0xfb,0x72,0xf2,0x16,0x74, + 0x68,0xc2,0xa6,0x5b,0x91,0x62,0x2d,0x21,0xbc,0x29, + 0xe1,0x4a,0x06,0xa5,0x84,0x86,0x42,0x01,0xef,0xbc, + 0xd0,0xea,0x13,0xf7,0x83,0x09,0xd8,0x98,0xdc,0x1b, + 0x86,0x44,0xa9,0xa8,0x4d,0x77,0x23,0x97,0x4e,0xba, + 0x65,0x4a,0xb6,0xfa,0xfd,0x29,0x8a,0x77,0xff,0xdd, + 0x6f,0xdd,0x2c,0x1b,0x09,0xf1,0x4f,0x5b,0x55,0x53, + 0xef,0x75,0x0a,0xfc,0xa9,0x8f,0xee,0x38,0x39,0xd3, + 0xe1,0x9e,0x04,0x0f,0x87,0x60,0x8a,0x15,0x3f,0x24, + 0x26,0x0f,0x44,0x4b,0x3d,0xb4,0x5c,0x65,0x35,0xa1, + 0x64,0x9f,0xb4,0xea,0x9c,0x1e,0x0a,0xfd,0x7b,0xe2, + 0x8a,0x4c,0x89,0xe8,0x27,0xd5,0xe2,0xf2,0x00,0xf8, + 0xf9,0x2c,0xf5,0x3b,0xdb,0x5c,0x6f,0xf2,0x71,0x4b, + 0x07,0xc3,0x54,0xed,0xf5,0xe4,0xd2,0x7c,0x46,0xb9, + 0x35,0xa3,0x68,0x8c,0x7b,0x3e,0x8e,0x77,0x90,0x2a, + 0xf5,0x4f,0x6c,0x37,0xcc,0x3b,0xae,0xd4,0x6e,0xa1, + 0xa9,0x11,0x3d,0xc4,0x9c,0x95,0x44,0x5a,0x3f,0x4e, + 0x8f,0xe5,0x46,0xc7,0xb6,0x82,0x99,0xed,0x3b,0x0e, + 0x55,0xde,0x8a,0xac,0x5c,0xcd,0x97,0x29,0x24,0x7d, + 0x4e,0xb3,0x26,0xb6,0xf8,0x34,0x59,0xbc,0x9a,0x8b, + 0xf7,0x94,0x5c,0x6b,0x01,0xf6,0x09,0x52,0x36,0xed, + 0xdd,0xeb,0xba,0xae,0x5f,0xbf,0x7e,0xbd,0xf9,0x1f, + 0xb9,0xbd,0x36,0xe9,0x65,0xf5,0x03,0xaa,0x7b,0x9c, + 0x11,0x7f,0x66,0x53,0xf0,0x4d,0x89,0x20,0xe9,0x9a, + 0x51,0xbc,0x98,0xa6,0x46,0x93,0x7e,0x4f,0x7f,0xef, + 0x9b,0x24,0x49,0xf7,0x6d,0xf2,0x4a,0x9b,0xd0,0xad, + 0xe4,0x02,0x90,0x62,0xac,0xc6,0x24,0x47,0x30,0x9e, + 0x78,0x99,0x13,0x7a,0x95,0xce,0xc6,0x0d,0xf0,0x40, + 0x62,0xb9,0x5d,0x87,0xcb,0xed,0x01,0xfd,0x1c,0x8d, + 0x0b,0xee,0x0c,0x49,0x1a,0x4b,0x29,0x59,0xfa,0x49, + 0x80,0x5c,0x2f,0x35,0x65,0xb4,0x13,0xfc,0x3a,0x99, + 0x52,0x4e,0x7c,0x9c,0x4d,0xef,0x7b,0xca,0xe4,0x29, + 0xc9,0x72,0x63,0x73,0x1b,0x38,0x7e,0xbb,0x80,0xf5, + 0xe7,0x5c,0xb5,0x64,0x82,0x73,0x0c,0x64,0xe9,0x3b, + 0xa6,0xe0,0xb1,0xf1,0xae,0x4a,0x87,0xd8,0xa6,0xc2, + 0xa1,0xa4,0xcf,0x05,0x8f,0x61,0x9c,0x3b,0xc2,0xac, + 0x0e,0xbe,0x4c,0x6d,0xa4,0xe4,0xdb,0xe3,0xaa,0x63, + 0x92,0xf8,0xff,0x04,0xb6,0xdd,0xea,0x63,0x10,0x02, + 0xb5,0x21,0x93,0x6f,0xd7,0x68,0x42,0x99,0x88,0x13, + 0x20,0x7c,0x89,0x68,0x01,0xe0,0xcc,0x55,0x27,0x82, + 0x2e,0x05,0xae,0x44,0x96,0x0c,0xeb,0xe3,0xed,0xe0, + 0x22,0xa1,0xcf,0xd4,0xf6,0xa1,0xc3,0x30,0xe5,0x1e, + 0x97,0x88,0xbb,0x11,0xff,0x87,0x5c,0xbc,0x0d,0x42, + 0xf9,0xb8,0x8f,0x4d,0xe2,0x43,0x07,0x1e,0x8d,0x38, + 0x3b,0x1d,0xa7,0xdb,0x0c,0x74,0x13,0x5b,0xa6,0x75, + 0x43,0xd3,0x93,0x54,0xb8,0xa6,0x51,0xf2,0x94,0x40, + 0x4c,0x86,0xbb,0x49,0x54,0x72,0x3a,0xb7,0x7a,0x3b, + 0xbe,0xaf,0x83,0x8e,0x06,0x4d,0x07,0xff,0xb4,0x7f, + 0x3f,0x99,0xa8,0x9a,0x12,0x5f,0x3a,0xf0,0x7b,0xdb, + 0x7d,0x63,0xdc,0x2d,0x34,0x84,0xe3,0xce,0x71,0xb2, + 0x2d,0x71,0x49,0xf1,0x44,0x7f,0xa1,0xbd,0x90,0x92, + 0xd8,0x89,0xda,0xb2,0xa5,0x8a,0x3c,0x92,0xce,0x8d, + 0x48,0x12,0x90,0xb2,0x6a,0x03,0x25,0x2a,0xdc,0x46, + 0x0b,0x7a,0x43,0xec,0x4a,0x64,0xc6,0xbe,0x40,0x9c, + 0xf1,0xd9,0xa0,0x21,0x54,0x26,0x13,0x8f,0x22,0x59, + 0x69,0x0a,0x65,0x82,0x66,0xe9,0x80,0xde,0x4c,0x26, + 0x74,0xae,0x0c,0x65,0xdd,0xf7,0xe7,0x68,0x75,0x99, + 0xda,0x47,0x53,0x65,0x40,0x76,0x1e,0x34,0x1e,0x3c, + 0x11,0xa7,0xb7,0x1a,0x2f,0x74,0x10,0x26,0xb3,0xd7, + 0xc4,0x3f,0x71,0xbc,0x35,0xd2,0x55,0x49,0x9b,0x6e, + 0x9a,0x32,0x74,0xda,0x13,0x26,0x61,0xad,0xd4,0x06, + 0x98,0x92,0xd8,0x94,0xb4,0x75,0x5b,0x01,0x7a,0x2e, + 0x01,0x09,0x2b,0xed,0xbb,0x87,0x76,0x60,0x6d,0x24, + 0x0a,0xb6,0x24,0x4a,0x42,0xe3,0xe0,0xde,0x6b,0xb2, + 0xb8,0xe9,0x09,0x9d,0x5b,0x83,0xb4,0x0e,0x53,0x0b, + 0xd6,0xb4,0x83,0xec,0x77,0xe8,0x41,0x3d,0x99,0xc7, + 0x6e,0xdb,0x7a,0x4a,0x5e,0xd7,0x3f,0xef,0xd7,0x46, + 0x52,0x0a,0x09,0xd9,0x9d,0x5a,0xf9,0x13,0xef,0x30, + 0xad,0x2f,0xb7,0xf6,0x5d,0x1c,0xa6,0x78,0x46,0x67, + 0x0f,0xed,0xb3,0x89,0xe4,0x4d,0x09,0xf8,0xd4,0x06, + 0x77,0xc8,0x4d,0x6a,0xe7,0x6d,0x62,0x09,0x4d,0x4d, + 0x27,0x71,0x4d,0x77,0xef,0x89,0xdc,0x4c,0xf1,0x84, + 0xd4,0xd9,0x81,0x1e,0x52,0x69,0xff,0x38,0x10,0x62, + 0x4b,0x89,0x48,0x03,0x4e,0x34,0x91,0x4d,0xe8,0xbd, + 0x0e,0x84,0xb8,0x09,0xe6,0x17,0x65,0xe0,0x53,0x3b, + 0x6a,0xd2,0xb8,0xa1,0x8c,0xb9,0x25,0x29,0x35,0x1d, + 0x7a,0xc0,0x47,0x21,0x37,0xe5,0x95,0x42,0x66,0xfa, + 0xdc,0x54,0xd5,0xa5,0xc3,0x71,0xa3,0xf7,0x43,0x09, + 0xce,0x84,0x46,0x4d,0x2e,0xf2,0x0e,0x36,0x4d,0xdc, + 0x01,0xf5,0x05,0xd3,0x40,0x9e,0xc4,0x17,0x53,0x35, + 0x46,0xc9,0x49,0xaa,0x84,0xa6,0x24,0x71,0xfa,0xfb, + 0x49,0x71,0xfb,0x83,0x7f,0x6a,0x5a,0x83,0x24,0xa7, + 0x3f,0xf5,0xc4,0x93,0x56,0xc7,0x26,0xb1,0xea,0x87, + 0x8e,0xbe,0xc7,0x4f,0xda,0xb7,0xcb,0x83,0x75,0xb6, + 0x3a,0x17,0x7e,0x4d,0x9a,0xee,0x4b,0x93,0x4b,0x34, + 0x29,0x43,0x02,0x81,0xa1,0xe8,0xa8,0xe4,0x75,0x35, + 0x11,0xce,0xcd,0x77,0x25,0xed,0x9e,0xf8,0x7c,0x86, + 0xc3,0xbf,0x36,0xef,0x47,0xb4,0x9d,0xea,0x83,0xc4, + 0xf7,0x23,0x51,0xc9,0x94,0xf8,0x4d,0xd3,0xa2,0x9b, + 0xb6,0x8a,0x14,0x85,0x95,0x7e,0x66,0x42,0xfa,0x88, + 0xeb,0x42,0x1e,0x8a,0xf4,0x2e,0x54,0x41,0xdd,0xc5, + 0x98,0xa9,0xab,0x41,0x48,0x7f,0xe0,0x99,0xda,0xf1, + 0xfe,0xc9,0x84,0x75,0x32,0x21,0x4f,0x34,0x0c,0x4a, + 0x76,0xf4,0xdf,0x5d,0xfb,0xcc,0x20,0x69,0x95,0xc8, + 0xdf,0xee,0x9e,0xe8,0x1c,0x9d,0xec,0x57,0x96,0x96, + 0x40,0x0f,0xae,0x96,0x4b,0x7c,0x12,0x60,0xf1,0x56, + 0xdc,0x51,0x02,0xb4,0xd9,0x30,0x49,0xb2,0x7e,0x52, + 0xb0,0x85,0xc0,0x5f,0xfd,0xb0,0x71,0x1a,0x3b,0x53, + 0xdb,0x62,0xea,0x13,0x4e,0x3d,0x41,0xd7,0x53,0x24, + 0x62,0x35,0x05,0x9a,0x4d,0xeb,0x4f,0x49,0x82,0xd3, + 0x06,0x77,0x87,0x62,0x22,0x70,0xbb,0x04,0xd1,0xdd, + 0x83,0xbb,0x8e,0x6d,0x1b,0x6a,0xe3,0x89,0x65,0x36, + 0x4c,0x99,0x00,0x53,0xd3,0x3b,0x75,0x7f,0xef,0x90, + 0x89,0xd4,0x03,0xa7,0x6a,0x2f,0x55,0x2d,0x06,0x31, + 0x42,0x3b,0x6c,0xa8,0xe0,0x6a,0x12,0xc0,0x74,0x49, + 0x88,0x43,0x70,0x26,0x12,0x6b,0x30,0x66,0x7d,0x4b, + 0x00,0x1c,0x62,0xd9,0x93,0x8f,0x8d,0x10,0xe4,0x25, + 0xfa,0x48,0xa9,0x9d,0x91,0xda,0xa1,0xee,0x3d,0x52, + 0x62,0x1b,0xd6,0x59,0xe9,0x35,0xb8,0x96,0xeb,0x94, + 0x98,0x13,0x37,0x71,0xcb,0x59,0xeb,0xe8,0x2a,0xa1, + 0x66,0xf0,0xee,0x2b,0xb5,0xea,0x52,0x5b,0xd1,0x25, + 0xea,0xa6,0x30,0x1c,0x75,0x85,0x12,0xbf,0x4c,0x45, + 0x2a,0x07,0x9d,0x9a,0x87,0xb2,0x7c,0x7a,0x06,0x6e, + 0xad,0xf6,0x82,0x61,0x3b,0x75,0xb5,0x45,0xd9,0xf5, + 0x9e,0x09,0x95,0x73,0x09,0x6c,0xea,0x54,0x4c,0xe7, + 0x5f,0x3a,0x5f,0xb7,0xc8,0x11,0x25,0x2a,0x9b,0x84, + 0x78,0x13,0x23,0x37,0x93,0x76,0x09,0xa5,0x49,0x3e, + 0x69,0x53,0x0b,0x2b,0x11,0xe7,0x93,0x56,0xd1,0x30, + 0x14,0x55,0x14,0xeb,0x7f,0xcc,0x50,0x3f,0x75,0xd1, + 0x9d,0x16,0x25,0x71,0x5a,0x60,0x5a,0x85,0x4c,0x2d, + 0x47,0x34,0x27,0x4d,0xaa,0x11,0x14,0xe6,0x82,0x4d, + 0x52,0xfb,0x74,0x24,0x66,0x47,0xd0,0x92,0x36,0x43, + 0x51,0xcf,0x37,0x11,0xcd,0xd3,0x06,0xa7,0x7e,0xa9, + 0x33,0x39,0x4d,0x15,0xdf,0xdf,0x98,0xd0,0x6d,0x00, + 0x81,0x3e,0xc6,0x2e,0xcf,0xb6,0x26,0x6b,0x8d,0xb0, + 0x61,0xc9,0x13,0xe9,0xcd,0x03,0x26,0xb5,0x42,0xfb, + 0x7f,0xdf,0xa3,0xa5,0x53,0x10,0x52,0x0b,0x89,0x0d, + 0x9f,0xe6,0x2f,0xab,0xe3,0x9a,0xda,0x40,0x1b,0x33, + 0x51,0x7a,0xb7,0x1b,0x4d,0x10,0xf3,0x4e,0x8a,0xfa, + 0xfc,0x92,0x34,0x3f,0x50,0x28,0xe5,0x98,0x10,0x67, + 0xc4,0x79,0x27,0xfd,0xfb,0xaf,0x39,0x96,0x10,0xbf, + 0xef,0x9b,0xef,0xf0,0xc3,0xcf,0x19,0x62,0xc2,0xdb, + 0xcf,0x39,0xed,0x2c,0x35,0xf1,0x9c,0x0e,0x25,0x43, + 0x90,0x3f,0x93,0x65,0xca,0x86,0x97,0x97,0x7e,0x5e, + 0x79,0x6c,0x13,0x67,0x62,0x6a,0x4b,0xa4,0x38,0x4f, + 0x71,0xe5,0x36,0xa7,0x4c,0xc8,0x75,0x9a,0xf4,0x9b, + 0xf6,0x8d,0x33,0x69,0x76,0xa2,0x78,0x13,0x61,0xb7, + 0xb7,0xed,0xd2,0xfb,0xd0,0xe7,0xe4,0x38,0x34,0x53, + 0x6b,0x94,0x50,0xe0,0xb4,0x17,0xd2,0xbb,0xa7,0x38, + 0x37,0x09,0x02,0xba,0x9f,0x51,0xf4,0x55,0x87,0x64, + 0xd2,0x59,0xb5,0x4d,0xda,0x64,0xbd,0x58,0xe3,0x5b, + 0x4a,0x70,0x1d,0x57,0x88,0xf6,0xd0,0x96,0xe7,0x93, + 0x0a,0x86,0x37,0x2f,0xb0,0x29,0xab,0x74,0xa3,0x8b, + 0xd3,0x22,0x9e,0xd0,0x8e,0x09,0x4d,0x21,0x36,0xb8, + 0x42,0xc6,0x6a,0xfe,0xf7,0xc9,0x61,0x95,0xaa,0x4e, + 0xe2,0xe4,0xe8,0xbd,0x4d,0xbd,0xf0,0xa9,0x75,0xe3, + 0x26,0x8b,0x5c,0x6b,0x66,0xf2,0x63,0xdb,0xb0,0xff, + 0xd3,0x22,0xd2,0xf7,0xaf,0x87,0x5a,0xe7,0x53,0x6c, + 0xfc,0x8e,0xa6,0x40,0xb8,0x71,0x5b,0x97,0x6b,0xb2, + 0x62,0x82,0x93,0x6c,0x7e,0x22,0x2a,0x4e,0xc1,0x33, + 0x8d,0xdc,0xba,0x35,0x9e,0xcc,0x3d,0xa7,0x44,0xc7, + 0x19,0xcd,0x4e,0xa2,0x9e,0xdb,0x09,0x49,0xb5,0x45, + 0x48,0xae,0xe0,0xb4,0x0f,0xa9,0x95,0xba,0x69,0xd3, + 0x74,0x41,0x44,0x15,0x29,0x6c,0x9f,0x7b,0x6f,0xe2, + 0x22,0x5f,0x22,0x77,0xcf,0x6d,0x0f,0xd6,0x12,0x29, + 0xa8,0x94,0x40,0xeb,0xba,0x4d,0xc6,0xc9,0x9b,0x3d, + 0x26,0xf7,0xbf,0x42,0x93,0x5b,0x5c,0xaa,0x44,0x41, + 0xd8,0xba,0x98,0xd3,0xd4,0x52,0x1a,0xbc,0x58,0x4c, + 0x2a,0x8e,0xba,0x50,0x44,0x5f,0x48,0x3e,0x80,0x6e, + 0x4f,0xbb,0xf8,0xec,0xda,0xa9,0x8e,0x13,0xe5,0x50, + 0xd0,0x4d,0x6c,0xd0,0xe7,0x4a,0xf6,0x2f,0x44,0xa5, + 0x08,0xf4,0x0f,0xbb,0x3e,0x82,0xa5,0x8a,0x45,0x6c, + 0x7b,0x8b,0x50,0x0a,0xf7,0x22,0xb4,0x35,0x81,0x19, + 0x9b,0xfb,0x98,0x90,0xa1,0x0d,0xe7,0x88,0xe2,0x85, + 0x9b,0x06,0xdb,0x78,0x85,0x51,0xd7,0x67,0x4a,0xbc, + 0xcf,0x39,0xff,0x20,0x40,0x09,0x36,0x4b,0xe6,0x76, + 0x49,0x29,0x78,0x2b,0x1c,0x48,0x59,0xf5,0x26,0x89, + 0x49,0x5a,0x17,0x1b,0x79,0xee,0x7b,0x22,0x68,0xea, + 0x83,0xa7,0xa9,0x8e,0xcd,0x68,0x3c,0x55,0xb0,0x9f, + 0x90,0x5b,0xfb,0xc8,0x30,0xc1,0x80,0x84,0x5e,0x4c, + 0xea,0xaa,0xa9,0xc2,0x76,0xe8,0x57,0xaa,0x20,0xf4, + 0xbe,0xc9,0xc4,0x71,0x4a,0x08,0xd2,0xc4,0x8b,0xd1, + 0x9d,0x59,0x57,0xc3,0xa9,0x4a,0x9c,0x50,0xcc,0xbf, + 0xfd,0x6c,0xe5,0x03,0x11,0xe7,0xca,0x71,0x7c,0xa8, + 0x55,0xe8,0x96,0x36,0x8d,0x82,0xd2,0xf3,0x4b,0x8a, + 0xe6,0x93,0x95,0xc4,0x54,0xdd,0x3b,0xc5,0xe9,0x0d, + 0x4c,0x6f,0x9e,0xc3,0xa1,0x9f,0x87,0xc2,0xe8,0x6d, + 0xec,0x7b,0x23,0x4c,0x38,0x29,0xa6,0xa7,0xc4,0x60, + 0x2a,0x04,0xfb,0x9e,0xfd,0x24,0xbe,0x4d,0x62,0xb2, + 0xdf,0x89,0xe4,0x31,0x88,0x48,0x7d,0x7d,0x7d,0x9d, + 0x89,0x68,0xbd,0x15,0xbc,0x75,0x71,0x2f,0x8d,0x39, + 0x6f,0xf6,0xc2,0x80,0xbc,0xc6,0xb6,0xdf,0xa6,0x43, + 0xb1,0x91,0xc9,0xa0,0x6b,0x4e,0x9e,0x94,0xa9,0xb8, + 0x26,0x39,0x96,0x0d,0x0d,0xa4,0x8b,0x21,0xa6,0xf1, + 0x7d,0x97,0xf4,0x26,0xe4,0x75,0x3a,0x4f,0xc2,0xf9, + 0x11,0xd7,0xa0,0xde,0x63,0x7a,0xc7,0x53,0x57,0x28, + 0xa1,0x68,0xd0,0xaa,0x7c,0x7b,0x4e,0x29,0x99,0xdd, + 0x68,0x0b,0xbe,0xe8,0xa5,0x4e,0x46,0x9a,0xd4,0x9f, + 0x9b,0x48,0x65,0xd4,0x13,0x4e,0xfc,0x1c,0x33,0x79, + 0x50,0x34,0x15,0x24,0x1b,0xb4,0x26,0x6f,0x93,0x89, + 0x80,0x9b,0xa6,0xb5,0x36,0x5c,0xa0,0xad,0x77,0xda, + 0xa4,0x02,0x9b,0xac,0x49,0x92,0x4b,0x73,0x92,0xa4, + 0xdf,0x40,0x99,0x49,0xd6,0x5d,0x95,0x8d,0x37,0x52, + 0x05,0x93,0x7c,0xfb,0x44,0xa8,0x9d,0x9e,0x0b,0xad, + 0xa3,0xd0,0xbb,0x2f,0xba,0xe7,0xc9,0xd7,0x4e,0x2b, + 0x4d,0x73,0x3d,0xb5,0x19,0x0c,0x48,0x50,0xfe,0x24, + 0xe4,0x39,0xa1,0xaf,0xd3,0x67,0x6b,0x65,0x39,0x4c, + 0xd7,0x15,0xf9,0xfa,0x84,0x36,0x5f,0x29,0x59,0x71, + 0x93,0x3c,0x4a,0x56,0x56,0x7f,0xc3,0xfb,0x48,0x64, + 0xc9,0xcb,0xf0,0xa1,0xe4,0x79,0x8f,0xee,0xe8,0x5a, + 0x0c,0x4e,0xf1,0x92,0xd6,0x7e,0xf7,0xe7,0xd2,0xa9, + 0x95,0x69,0x52,0x36,0xdd,0x77,0x4a,0x4e,0x09,0x5d, + 0x0b,0xad,0xb1,0x22,0x01,0xd5,0x34,0xa8,0xe1,0x62, + 0x20,0x25,0x55,0x44,0x75,0xa0,0xd8,0xb8,0x55,0xc1, + 0xa7,0xef,0x9f,0xb4,0x9d,0x52,0xe1,0xd5,0xc5,0x31, + 0x3f,0x99,0xee,0x53,0xdd,0x9b,0xe9,0xb9,0x93,0x80, + 0xe4,0xc4,0x9f,0xd1,0xdf,0x99,0xda,0xe3,0x9b,0x33, + 0xeb,0x13,0x5a,0xc4,0xd6,0x28,0x35,0x81,0x20,0xb4, + 0x8e,0xa6,0x22,0x76,0x23,0xf8,0xf9,0x43,0x2f,0x49, + 0xba,0x19,0xf4,0x50,0xd5,0xe9,0xd9,0x05,0xb8,0x94, + 0x10,0xd0,0x43,0x9a,0xc8,0x8f,0x93,0x9a,0x29,0x65, + 0xb6,0xe9,0xc0,0xdc,0xda,0x20,0xd0,0x75,0x91,0xbe, + 0x4d,0x0a,0x2c,0x09,0xaa,0x4e,0x88,0x59,0xe2,0x45, + 0xd1,0x08,0xa5,0x06,0x7e,0xba,0xff,0x7e,0xc0,0x4d, + 0x46,0x80,0xc9,0x9f,0x6a,0x43,0x12,0x9d,0x9e,0xf5, + 0x24,0xc1,0xee,0x0e,0x9b,0x89,0xaf,0xb0,0x9c,0x12, + 0x9a,0xee,0xb1,0x26,0x5f,0xa1,0xd4,0xb2,0xd4,0x76, + 0x67,0x3a,0xd0,0x92,0x5b,0x7c,0xfa,0x1d,0x6d,0xeb, + 0x26,0x04,0x46,0x4d,0x84,0x87,0xb6,0x56,0x6d,0x2d, + 0x45,0xf4,0x33,0x69,0x6f,0x6c,0xf6,0x99,0x33,0x3f, + 0xd6,0x04,0xdc,0x90,0xc5,0x2b,0xc5,0x8f,0xe4,0x3c, + 0x4e,0xc9,0xdf,0x76,0xc8,0x43,0x5b,0x64,0x54,0x6c, + 0x4c,0x13,0x3e,0x89,0x1b,0x32,0xf1,0x7d,0xe8,0x11, + 0x27,0x32,0xeb,0x94,0x98,0x6c,0xd0,0x3b,0x8a,0xff, + 0x93,0x48,0x1e,0x21,0x8a,0xc9,0x30,0x7a,0x2b,0x9f, + 0x41,0xeb,0x40,0xd0,0xc3,0x72,0xb4,0x8a,0x94,0x9c, + 0x81,0x0c,0xc2,0x83,0x1e,0x30,0x15,0x96,0x13,0x72, + 0xf1,0x37,0xd3,0x78,0x69,0x8d,0x4c,0x44,0xf6,0xa5, + 0xaf,0x61,0x6c,0xe3,0x4e,0x72,0x35,0x6e,0x9f,0x4d, + 0x44,0xf9,0x0d,0x50,0xa3,0x52,0x2c,0xd3,0x3e,0xbe, + 0xae,0xcb,0x73,0x80,0x54,0x92,0x5d,0x2b,0xc5,0x24, + 0x11,0x9e,0x0e,0x94,0x04,0x4f,0x85,0x09,0x92,0xda, + 0xa2,0x0b,0xd3,0x44,0x92,0x7b,0xf0,0x44,0xb8,0x4a, + 0x95,0xdd,0x64,0xde,0xe6,0x78,0x1d,0x9f,0x64,0xcc, + 0xae,0x4a,0x4b,0x28,0x16,0x91,0x03,0xd3,0x06,0xfa, + 0x1b,0x1b,0x93,0x94,0xf8,0xea,0x82,0xa4,0xf1,0xfe, + 0xc9,0xeb,0x6c,0x32,0x5e,0x24,0xb4,0x47,0xaa,0xab, + 0x4a,0xef,0x23,0x55,0x8a,0xf4,0x3d,0x0e,0x5e,0x27, + 0xe9,0xf7,0x94,0x78,0xeb,0xf7,0x29,0xf2,0x42,0x10, + 0xfc,0xe6,0x30,0xdc,0x20,0x59,0x94,0x40,0xa6,0xfb, + 0x4a,0xa2,0x82,0xf0,0x59,0xe5,0xc4,0xee,0x26,0xce, + 0x4d,0x42,0x1c,0xc9,0xb0,0xd6,0x5d,0xeb,0x24,0x93, + 0xff,0xc9,0x84,0x6a,0x98,0x12,0xab,0xa4,0x69,0x12, + 0xd0,0x80,0x4a,0xfc,0x8f,0x69,0x68,0x20,0x19,0xd7, + 0x4e,0xeb,0x2d,0x0d,0x97,0x48,0x22,0x58,0x09,0x8d, + 0x4c,0xc5,0xcd,0x54,0x04,0x53,0x45,0xef,0xa6,0x26, + 0xa7,0x67,0x94,0x34,0xa0,0x36,0xfb,0x7c,0x8a,0xfd, + 0x93,0x4a,0xfc,0x26,0x71,0xd8,0xd8,0x4b,0x50,0x4b, + 0x2b,0xdd,0xd3,0x46,0x8c,0x77,0xea,0xc4,0x6c,0xce, + 0xa3,0xc9,0x61,0x7d,0xf3,0x7b,0x53,0xbb,0x72,0xe2, + 0xf0,0xe8,0xb9,0x4b,0x46,0xdd,0x2a,0xb4,0x98,0xae, + 0xe3,0x91,0x00,0x6d,0x79,0x3b,0xf4,0x81,0xcd,0xd8, + 0xed,0xaf,0x1f,0x4c,0x82,0xde,0x26,0xcd,0x83,0x69, + 0xf1,0xa7,0x11,0xe8,0x4d,0x9b,0xef,0xf2,0xd3,0x63, + 0x35,0x3d,0xe0,0x84,0x8e,0x25,0x18,0x56,0x0f,0x0f, + 0x6a,0x21,0x68,0x52,0xe2,0x0e,0x57,0x7a,0xce,0x5a, + 0x39,0x4f,0x28,0x13,0x5d,0x1f,0xf5,0xdd,0xa7,0x89, + 0x9c,0xb4,0xa9,0xb6,0xc2,0x83,0x84,0x1e,0xba,0xc4, + 0x30,0x25,0x6a,0x53,0xc0,0x4a,0x87,0xca,0x34,0xca, + 0xba,0x99,0x62,0x70,0x07,0x12,0x19,0x8b,0x9a,0x77, + 0x5d,0xbd,0x30,0x99,0xd4,0xcb,0xa9,0x65,0x49,0x6b, + 0x81,0x50,0x48,0xa8,0xd0,0xff,0xca,0x00,0xf5,0x03, + 0xa4,0xb8,0xc8,0x4e,0x42,0xd6,0x42,0x4d,0x45,0x46, + 0x4f,0xd4,0xf4,0xd9,0xd1,0x33,0x37,0xe8,0x01,0xee, + 0xef,0xed,0x08,0xb7,0xe3,0xc4,0xb8,0x16,0x15,0x25, + 0x7b,0x93,0x9b,0xb7,0xdb,0xaf,0x89,0xc8,0xeb,0xf8, + 0x19,0xd3,0xbd,0x2e,0x0e,0xe6,0xda,0xfa,0x23,0x4e, + 0x48,0xd3,0x94,0x08,0xba,0xc3,0x91,0xac,0x3a,0x36, + 0x96,0x11,0x9b,0x42,0x7b,0xab,0x65,0x46,0x07,0xf6, + 0x27,0x49,0xd2,0x27,0xfb,0x12,0x8c,0x85,0x1f,0x22, + 0x81,0x9b,0xc1,0xa6,0x54,0xfc,0x6f,0xb9,0x71,0xd3, + 0xe4,0xf3,0xc4,0x43,0x4a,0x74,0x80,0xc9,0x8f,0xcc, + 0x7d,0xef,0x6b,0x33,0xa6,0xb8,0x19,0x8b,0xa6,0x44, + 0x64,0x52,0xa5,0x74,0x0f,0x21,0x1d,0xdc,0xa9,0x72, + 0x4d,0x6d,0x91,0xb4,0x51,0xdd,0x4b,0x4b,0x48,0xd1, + 0xd4,0xf2,0xd2,0x6b,0x32,0x95,0x74,0xa5,0x84,0x63, + 0x82,0xff,0xa6,0x76,0x02,0xfd,0x8e,0xeb,0x0b,0x53, + 0x45,0xb4,0xd9,0x0c,0x94,0x34,0x4f,0x81,0x6c,0x52, + 0xef,0xed,0xef,0xa3,0xeb,0x9a,0x50,0x60,0xda,0x6e, + 0xaa,0xad,0x41,0xa8,0x9a,0x3a,0xba,0x44,0xd5,0x05, + 0x36,0x97,0xec,0x4e,0x93,0x93,0xca,0x59,0x9b,0xf6, + 0xc1,0xb6,0xca,0x9e,0xac,0x4d,0xa6,0xb6,0x8a,0x7c, + 0xf7,0x9b,0xce,0x8e,0x43,0x02,0x1d,0x5a,0x4b,0x13, + 0x71,0x7f,0xe3,0x3b,0x48,0x1c,0xaf,0x09,0xe6,0xd7, + 0x21,0x05,0x52,0x48,0xa7,0x04,0x35,0x15,0x37,0xc9, + 0x64,0x78,0x63,0x41,0x40,0x28,0xf1,0x86,0x7f,0x36, + 0x4d,0x0b,0xea,0x3b,0xda,0x38,0x9c,0x87,0xe9,0xba, + 0x11,0x6d,0x74,0xba,0x46,0x0b,0x3a,0x40,0x4d,0x3a, + 0x32,0x53,0xf2,0xbf,0xe1,0x88,0x50,0xe1,0x3c,0x75, + 0x14,0x36,0x85,0x97,0x9b,0x56,0x4b,0xb1,0x88,0xd6, + 0xf5,0xe6,0x3b,0x08,0x81,0xea,0x86,0xa1,0x09,0xc1, + 0xa6,0x29,0x55,0xe2,0x82,0x51,0x92,0x93,0x50,0xfd, + 0x8d,0xb5,0xca,0x94,0x50,0x26,0x9e,0xdb,0x27,0x2a, + 0xe4,0x01,0x31,0xfb,0x59,0x77,0xbf,0x93,0xd6,0xc2, + 0x04,0x63,0xa6,0x16,0x41,0x4a,0x42,0x36,0x8e,0xd7, + 0xfa,0xc0,0xa7,0xc5,0xbb,0xd1,0x45,0x50,0x4f,0x97, + 0xf4,0x3b,0xd4,0x9f,0x4e,0x1a,0x0d,0xa9,0xfd,0xb0, + 0xd1,0x93,0x70,0x09,0xc8,0x54,0x21,0x28,0x31,0x75, + 0x6a,0x59,0x4c,0xed,0x83,0x14,0x20,0x53,0x6f,0x7e, + 0x22,0x27,0x6e,0x82,0x4b,0x82,0xb8,0xa7,0xf6,0xd8, + 0x34,0x51,0x70,0xb5,0xc9,0x38,0xf0,0xbe,0x1a,0x93, + 0xe9,0x4d,0xdf,0x7e,0x12,0x18,0xfb,0xb4,0x75,0xab, + 0x9f,0xef,0x34,0xa1,0xb6,0xe4,0xd7,0x94,0xec,0x11, + 0xbf,0x26,0xb5,0x20,0xa6,0x11,0xd7,0x64,0x6c,0x39, + 0x21,0x8f,0x29,0xb9,0xee,0x86,0x8a,0x03,0xfa,0x52, + 0xf7,0x14,0xd9,0xf6,0x7e,0x48,0x07,0x2c,0xad,0x07, + 0x37,0x11,0xba,0xf1,0xbb,0x4b,0x88,0x73,0x18,0xed, + 0xc6,0x69,0x3e,0x35,0x82,0x56,0x94,0x6c,0x5a,0x93, + 0x2a,0xa2,0x7a,0xff,0x79,0x42,0x54,0x26,0xee,0x5c, + 0xda,0x53,0x0e,0x85,0x4d,0x42,0xb5,0xd3,0x54,0xd7, + 0x84,0x50,0x6c,0xa8,0x07,0x1b,0x3a,0x87,0x43,0xd4, + 0xd4,0xec,0xda,0x5d,0x33,0xf1,0x69,0xd3,0xfb,0x27, + 0xf1,0xcb,0x4f,0x0c,0x66,0x29,0x76,0x25,0x72,0xf8, + 0x27,0xa8,0xad,0xe3,0xe5,0x7c,0x32,0xd0,0x12,0xce, + 0xe0,0x9f,0x89,0xaf,0x4d,0x5c,0x9d,0x00,0x14,0x97, + 0x80,0xbd,0x9c,0xe8,0xd3,0x36,0xf3,0xd5,0xec,0x71, + 0x1a,0x6f,0x74,0x7d,0xce,0x4f,0x5a,0x6d,0x49,0x3b, + 0x22,0x1d,0xdc,0x34,0xa9,0xe6,0x78,0x48,0x8e,0xa1, + 0x4f,0xc1,0x26,0x55,0xb9,0x93,0xff,0xcf,0x64,0xc8, + 0xa7,0xad,0x09,0x87,0x4e,0x7d,0xda,0x73,0xd7,0xc3, + 0x61,0x9a,0x94,0xda,0x10,0xd3,0xa6,0x60,0x2e,0xd7, + 0x53,0x93,0xca,0xf6,0x27,0x15,0xd9,0xa4,0x3f,0xb2, + 0x45,0x01,0xb7,0x6a,0xb5,0x89,0xd7,0x45,0x68,0xc6, + 0xd6,0xe4,0x72,0x33,0x82,0xea,0x12,0xb7,0x84,0x34, + 0xd0,0xda,0xdf,0x26,0x1d,0xea,0xfb,0x33,0x40,0xd6, + 0x95,0x44,0x45,0x69,0x5f,0x52,0x02,0xa9,0x6b,0x83, + 0xb8,0x52,0x9b,0xf6,0x27,0xe9,0x87,0x6d,0xdb,0x37, + 0x01,0xbd,0xfb,0x69,0x81,0xff,0xf9,0xf3,0x47,0x7f, + 0xaf,0xb6,0x48,0x25,0xa1,0x71,0x2e,0x59,0xdf,0x4c, + 0xc3,0x38,0x84,0x29,0xa0,0xee,0xb5,0xa9,0xfa,0xa7, + 0x35,0x3d,0xb5,0xca,0x27,0x61,0xba,0x6d,0x2c,0x18, + 0xf6,0x7c,0x11,0x87,0x86,0xe2,0x47,0x42,0xbf,0x13, + 0x42,0x4a,0x3c,0xc8,0x4f,0x54,0x93,0x13,0x62,0xdf, + 0xdf,0x4d,0xe2,0x4b,0x92,0x36,0x59,0x8a,0x03,0xd3, + 0x30,0x8e,0xfb,0xfc,0x09,0xfd,0xa7,0xe2,0x77,0x1a, + 0x80,0xd9,0x78,0x7f,0x4d,0xda,0x6a,0x53,0xb7,0x29, + 0xd1,0x63,0x5e,0x9b,0xcd,0x99,0x16,0xb2,0x2c,0x9a, + 0x72,0x81,0x6b,0x82,0xc5,0x5c,0xb5,0xb3,0x91,0x4c, + 0x4f,0x87,0xc7,0x66,0xe2,0x68,0x92,0xd4,0xde,0x8c, + 0x41,0x3b,0x8e,0xce,0x56,0xa4,0xae,0x07,0xe3,0x34, + 0x9d,0xa6,0x1b,0x42,0x37,0xdf,0x76,0xaa,0x2a,0x4d, + 0xb2,0x6d,0x21,0xe5,0xc9,0x52,0x64,0xeb,0x66,0x3d, + 0x3c,0xa7,0x72,0xfc,0x9e,0x34,0x0e,0x3b,0x69,0x30, + 0x6d,0x92,0x96,0x09,0x42,0xdf,0xb4,0x63,0x15,0x71, + 0x9c,0xc8,0x7d,0x74,0x70,0x27,0xa4,0x6e,0x83,0xe2, + 0x6d,0xac,0x59,0xb4,0x15,0xa4,0xd3,0x83,0xc9,0x17, + 0x8f,0xda,0xda,0xa9,0xd2,0x53,0xef,0xa4,0x29,0x81, + 0x1f,0xc8,0xd2,0xd5,0xf9,0x0b,0xae,0x92,0x9e,0xa6, + 0x5d,0xfa,0xb8,0xfb,0x86,0xfb,0x30,0xb5,0x56,0xb7, + 0x55,0x74,0x12,0x90,0x04,0xd4,0xa3,0xd2,0xe4,0xe5, + 0xa6,0x0d,0x3c,0xdd,0xa3,0x6b,0xdd,0x86,0x91,0xfd, + 0xd5,0x44,0xee,0xe6,0x5e,0xff,0x06,0x6d,0xd8,0xc4, + 0x9b,0xa9,0x75,0x99,0xb4,0xd0,0xa6,0x35,0x40,0x6d, + 0x20,0x25,0xe9,0x0e,0x6d,0xc2,0xf5,0xfd,0x6f,0x49, + 0xc2,0x29,0x71,0x99,0xc4,0x27,0x37,0xf7,0x48,0x05, + 0xae,0x3b,0xbf,0x28,0x26,0x87,0x7d,0x5f,0x30,0xd0, + 0x62,0x51,0xe9,0x14,0x83,0xf5,0x7f,0x34,0x08,0x51, + 0x55,0xff,0x72,0x80,0x54,0x85,0x71,0xb3,0x10,0xfb, + 0x17,0xa8,0x6e,0xc5,0x54,0x55,0x4d,0xbd,0xd2,0x04, + 0xaf,0xa5,0x17,0x97,0x92,0x95,0x84,0x0c,0xa4,0x51, + 0x41,0xea,0xbf,0x4e,0x90,0xba,0xb6,0x16,0x3f,0x49, + 0xe2,0x1c,0xcc,0xba,0x39,0x80,0x36,0xc9,0x90,0x43, + 0xb3,0xa6,0x91,0x43,0x87,0x78,0x4d,0x13,0x7f,0x89, + 0x74,0x3e,0x79,0xc6,0xa4,0x76,0x18,0x05,0xb0,0xa0, + 0x20,0x3d,0x26,0x1a,0x93,0x2a,0xeb,0x26,0x60,0x25, + 0x2e,0xc5,0x46,0x9b,0xc2,0x49,0x4f,0x50,0xff,0x7e, + 0xab,0x98,0xba,0x2d,0x68,0x26,0xf4,0x8b,0xda,0x3e, + 0x0a,0x21,0x6c,0x10,0xd9,0xef,0x04,0xf7,0xe7,0x7f, + 0xdf,0x85,0x53,0x51,0x41,0x34,0x39,0x73,0x93,0x52, + 0xbc,0x5b,0x57,0xe9,0xc0,0x4b,0x85,0x42,0x5a,0x2f, + 0xa4,0x0c,0xee,0x5a,0x40,0x44,0xc8,0x4f,0x7b,0xc6, + 0x69,0xc1,0x24,0x2e,0xe1,0xa7,0x13,0x49,0x89,0xdf, + 0xb8,0xd1,0x8d,0x71,0x87,0x4b,0x42,0x63,0x3f,0x6d, + 0xa1,0x4d,0xad,0x7c,0x17,0x9b,0x53,0xcb,0x8c,0x88, + 0xd8,0xa6,0xfd,0x12,0x89,0xbe,0x29,0x8e,0x6f,0xa6, + 0x84,0x93,0xfe,0xd1,0xf4,0x67,0x9b,0x64,0xea,0x13, + 0xb9,0x12,0xc7,0x8f,0xdb,0xf0,0x7d,0x27,0x0a,0xc4, + 0x27,0xe4,0xea,0x29,0x8e,0x4e,0xdc,0xbf,0x4d,0x12, + 0xf9,0xe8,0xae,0x90,0xb7,0xca,0x64,0x63,0x41,0x90, + 0x6a,0x6a,0x21,0x25,0x25,0xcc,0x84,0x04,0xa5,0x91, + 0x4e,0x77,0xdd,0x24,0x18,0xb5,0x21,0xcb,0x92,0x77, + 0xcb,0x06,0xf6,0x4b,0x81,0x85,0xd0,0x89,0x04,0x55, + 0x27,0x91,0xc9,0x0f,0x4c,0xbb,0x51,0x35,0x7a,0xa3, + 0x83,0xb3,0xd5,0xde,0x98,0x84,0xfc,0xb6,0xd3,0x65, + 0x21,0x19,0xaa,0x69,0xd3,0xd3,0x3a,0x55,0x94,0x2e, + 0xc1,0xa8,0x29,0xd0,0x25,0x5e,0xd6,0xb4,0xa6,0x75, + 0x5f,0xa4,0x31,0x64,0x73,0xa0,0x54,0x58,0xb7,0xb5, + 0x69,0xb1,0xba,0x77,0xf7,0x7a,0xbd,0x4a,0x93,0x03, + 0xb2,0x84,0xa1,0xd6,0x00,0x4d,0x17,0x91,0xbb,0xf5, + 0x05,0x04,0x59,0x25,0x81,0xa7,0xc4,0x27,0x91,0x6d, + 0x8d,0x2e,0x57,0x51,0xcb,0x69,0x8b,0x8e,0xd0,0xde, + 0xbd,0x7f,0xcf,0x49,0xf8,0x27,0x04,0x58,0xdb,0x70, + 0x8a,0xa0,0x13,0x7a,0xbb,0xf1,0x3e,0x9a,0xda,0x2b, + 0x09,0xcd,0xdb,0x70,0x49,0x3e,0x6d,0xdd,0x26,0x12, + 0x2e,0x25,0x1f,0xcb,0xd8,0x66,0xd1,0x70,0xfa,0xfd, + 0xa9,0x8d,0x32,0x4d,0x2f,0x4f,0x14,0x80,0x24,0x07, + 0x30,0xb9,0xc9,0x7f,0x72,0xa0,0x6f,0x74,0xeb,0x52, + 0x5b,0x9f,0xce,0xb0,0x04,0x60,0x4c,0x9f,0xfd,0xe9, + 0xfb,0xdb,0x90,0xa0,0xe9,0x8c,0xd8,0xca,0x60,0x90, + 0x74,0x89,0x3e,0xf7,0xdf,0xc9,0x08,0xcf,0xb9,0x6f, + 0xa7,0xac,0x70,0x72,0x6f,0xa7,0x8c,0x31,0x21,0x15, + 0xb4,0xa9,0xb6,0x87,0xa0,0x2e,0x5e,0x32,0x62,0x23, + 0x12,0x1a,0x1d,0x70,0x29,0x10,0xa4,0x0c,0xd9,0x11, + 0x26,0xd3,0x7d,0x7d,0xda,0x6a,0x4a,0xd5,0xda,0x36, + 0x03,0x9f,0xe0,0xdf,0xd4,0x6e,0xd9,0xc2,0xf0,0x93, + 0xae,0x13,0xa9,0x39,0x13,0x77,0x62,0xd2,0xdf,0xa1, + 0x9f,0xa7,0xe7,0x4d,0xc9,0xd0,0x44,0x6c,0x4d,0xd5, + 0x4b,0x6a,0x4b,0xa6,0x60,0xe9,0xd0,0xb8,0x8d,0xbf, + 0xd8,0x64,0xbf,0x32,0x29,0xb0,0xf6,0x22,0xa8,0x4f, + 0x9a,0xf4,0xa4,0x8e,0xc8,0x9f,0x50,0x19,0xd6,0x94, + 0x60,0x74,0x23,0x52,0xb7,0x0f,0xdd,0xc0,0x06,0xd9, + 0x2b,0xb8,0xd6,0xdb,0xa6,0x7d,0x29,0xcf,0xea,0x61, + 0xf8,0x49,0xe6,0xa2,0xfa,0x7d,0xee,0xf9,0x3b,0xe4, + 0xfb,0x93,0x03,0x65,0xe1,0xd5,0xb6,0xda,0xdf,0x9a, + 0x80,0x4c,0xeb,0x29,0x59,0x18,0xa4,0x3d,0x90,0xc8, + 0xe4,0x69,0x78,0x63,0xda,0x8b,0x7f,0xa3,0x0f,0xa4, + 0xd7,0x44,0xdf,0x41,0x45,0xf9,0x24,0x77,0x42,0xc3, + 0x15,0xa9,0xb8,0x9c,0x38,0x52,0x66,0x1f,0xbd,0xad, + 0x47,0x42,0x6b,0x3a,0xc1,0xbc,0x9b,0x47,0x6f,0x88, + 0xd4,0xd3,0xf3,0xa7,0x6b,0xed,0xdf,0xb9,0xb5,0x10, + 0xd9,0xb4,0x07,0x13,0x2a,0x9b,0xf8,0xa4,0x14,0x03, + 0x3a,0xe2,0xfa,0x3b,0xf1,0x6f,0x9c,0x4e,0xc3,0x94, + 0x8c,0xb8,0x97,0x9b,0x44,0xf1,0x88,0x4c,0x9c,0x82, + 0xf2,0xc6,0x08,0x70,0x52,0x10,0xa5,0x80,0xe9,0xae, + 0x29,0xf5,0x31,0x53,0x80,0x98,0xaa,0x31,0x0a,0x9c, + 0x1b,0x9e,0x89,0x4b,0xe4,0xe8,0xbd,0x90,0x9b,0x3c, + 0xbd,0xdb,0xd4,0x2e,0xdb,0x1a,0x87,0x4e,0x7d,0x63, + 0x45,0x30,0x36,0xc9,0x5d,0xdf,0xc8,0x9b,0x60,0x47, + 0x1b,0x83,0x0e,0xcd,0xad,0xa0,0x1d,0x05,0x92,0xcd, + 0xc4,0xca,0x46,0x2b,0x89,0x12,0xf6,0x6d,0xb2,0x3a, + 0xf1,0x83,0xdc,0x64,0x10,0x04,0xde,0x72,0xf7,0xeb, + 0xfc,0xc9,0xa6,0xc4,0x7d,0x33,0x45,0xda,0x55,0x9f, + 0xdb,0xa0,0x17,0xf2,0x97,0x36,0xc5,0x01,0x25,0x7b, + 0xee,0x00,0x51,0x14,0x20,0x19,0xa4,0x6e,0x5a,0xbb, + 0x14,0xbb,0x1c,0xbf,0x61,0x12,0x50,0x4c,0xed,0xaa, + 0x84,0x04,0x9d,0x73,0xae,0x3f,0x7f,0xfe,0x4c,0xca, + 0xd5,0xab,0xfb,0x86,0x84,0xaa,0xce,0x3f,0x84,0xac, + 0x71,0xfd,0xa5,0xfd,0x44,0x89,0xe1,0x94,0x54,0x25, + 0xcf,0x46,0xf5,0x2a,0xdc,0x0c,0x25,0xa4,0xc3,0x3b, + 0xb5,0x82,0x12,0x52,0xb4,0x71,0x6c,0xdf,0x26,0xbd, + 0x13,0x02,0x48,0xc9,0x5d,0x42,0xb7,0xd5,0xee,0xe6, + 0x9f,0x3f,0xfa,0x4c,0x09,0xba,0x7f,0x77,0x07,0x4a, + 0x36,0x3c,0x22,0xf5,0x93,0xdc,0x68,0x2f,0x25,0x4e, + 0x5e,0x9a,0xaa,0x7e,0x9c,0x8d,0x34,0x6d,0xe0,0xda, + 0x5d,0x1b,0xee,0xcd,0x86,0xeb,0xa2,0x23,0x96,0x9f, + 0x40,0x7d,0x74,0x00,0x4f,0x53,0x1d,0x53,0x0f,0x9b, + 0x0e,0x6a,0x22,0x1d,0x6f,0x46,0x23,0x27,0x44,0x66, + 0xdb,0x4e,0xd9,0xc2,0x8c,0x14,0x70,0x26,0x2f,0xb4, + 0x0d,0x64,0xbc,0x99,0x20,0x48,0xc4,0xb3,0xe9,0x9a, + 0xa7,0x7e,0x70,0x82,0xdc,0xa7,0x67,0xd4,0xd7,0x5b, + 0x6a,0xd1,0x52,0x9b,0x97,0xde,0x4d,0x32,0x28,0x4c, + 0x62,0x6d,0x24,0x4e,0x38,0x8d,0xab,0xa6,0x16,0xec, + 0xb4,0xde,0x3f,0x21,0x35,0xba,0xf5,0x3c,0x25,0xc1, + 0x93,0x72,0xab,0x43,0xb9,0xfe,0x06,0x99,0xdc,0x90, + 0xd4,0xb7,0x87,0xdd,0xb4,0x0f,0x36,0x3c,0x24,0x2d, + 0x30,0x12,0x51,0x93,0x64,0x2e,0x3e,0xdd,0xf7,0xc4, + 0x75,0xd9,0xb4,0xbe,0x5c,0xdb,0x95,0x14,0x90,0x37, + 0x7c,0x8b,0xe4,0xe5,0xf8,0x89,0x9a,0xf0,0x86,0x50, + 0xad,0x9f,0x99,0x78,0xab,0x44,0xe0,0xde,0x4c,0x41, + 0xa6,0x84,0x77,0x42,0x90,0x13,0x0d,0x60,0x43,0x25, + 0xf8,0x8f,0xf0,0x85,0xf4,0xfb,0xa8,0xad,0x35,0x0d, + 0xb6,0x90,0x22,0xbd,0x03,0x34,0x88,0xe3,0x93,0x62, + 0x27,0x3d,0xfb,0xbe,0x8f,0x1c,0x89,0x7c,0x63,0x22, + 0x3e,0xb5,0x1a,0x55,0x2b,0xeb,0xe5,0x7e,0x81,0xd4, + 0x42,0x37,0x9b,0x85,0xe0,0xb8,0x94,0x10,0x4d,0x0b, + 0x7e,0xea,0xbb,0x82,0x8a,0xeb,0xc3,0x28,0x6e,0xa3, + 0x61,0x34,0xb5,0x76,0x88,0xe5,0xbf,0xe1,0x2e,0x4c, + 0x8b,0x3c,0x55,0x93,0x13,0x69,0x91,0x9e,0x7d,0xfa, + 0x7e,0x1d,0x33,0xfc,0x1b,0x21,0xb0,0x94,0x8c,0xa6, + 0x04,0x69,0xdb,0x0a,0xdd,0xf0,0x15,0x12,0x0f,0x84, + 0x36,0xf8,0x34,0xed,0xf1,0xb7,0xfd,0xec,0x29,0x01, + 0x4f,0xdf,0xb9,0x11,0x88,0x4c,0x13,0x54,0x74,0xa8, + 0x76,0xc8,0x77,0x83,0xa4,0xba,0x83,0x52,0x51,0xd1, + 0x34,0x7d,0xb8,0x99,0x7e,0xdc,0x3c,0xcf,0xc9,0x07, + 0x28,0x1d,0xaa,0xe4,0xdf,0xb4,0x25,0x4b,0x13,0xdf, + 0xce,0x11,0x96,0xf5,0x40,0x98,0x74,0xbc,0x92,0x4a, + 0xf9,0x34,0x59,0x96,0xdc,0xe4,0xa7,0xb8,0x99,0xf4, + 0x76,0xf4,0xde,0x3e,0x29,0xb6,0x36,0x49,0x48,0xe2, + 0x72,0x24,0x93,0xcf,0x8d,0x16,0xd2,0x86,0xe3,0x32, + 0xd9,0xb7,0x4c,0xb1,0x80,0xfe,0x3f,0x28,0x2f,0x8f, + 0xbe,0x72,0x53,0xfb,0x27,0x0d,0x10,0xd1,0x9a,0xda, + 0x08,0x8d,0x12,0x7a,0x43,0xd3,0xb6,0x9b,0x49,0xee, + 0x4d,0xfb,0x74,0xa2,0x78,0xf4,0x42,0xcb,0xe9,0x56, + 0x11,0xa5,0x81,0xd6,0xbf,0x43,0xb8,0x1f,0x7e,0xa7, + 0x5b,0x3b,0xfb,0x2d,0x51,0x77,0x0a,0x84,0x13,0xcf, + 0xe1,0x13,0x58,0x9f,0x24,0xfe,0x5d,0x42,0xb7,0xd9, + 0x18,0xe9,0xcf,0xf4,0xef,0xd5,0x09,0x7d,0x62,0xdc, + 0x6f,0xc4,0x0d,0x27,0x2d,0x97,0xb4,0xf8,0x14,0xa5, + 0xea,0x49,0x5f,0x9a,0x18,0x22,0x62,0xeb,0xc6,0x67, + 0x67,0x22,0xa8,0xa5,0x20,0x30,0xf1,0x7d,0xc8,0xaa, + 0x82,0xb4,0x70,0xb6,0xa2,0x68,0x84,0x64,0x4c,0xb6, + 0x14,0x9f,0xaa,0xcc,0x52,0x50,0x9f,0x60,0xe4,0x09, + 0x6e,0x4e,0x09,0xe1,0x46,0xed,0x77,0x93,0x10,0x27, + 0x01,0xd0,0x4d,0x61,0x32,0xb5,0xc4,0x36,0x15,0xf0, + 0x66,0xed,0x26,0x38,0x9c,0x0e,0x45,0x57,0x59,0x4e, + 0xbe,0x41,0x13,0xc2,0xe5,0xa6,0xf7,0xc8,0x17,0x6e, + 0x2a,0x92,0x34,0x61,0xdd,0x04,0xf9,0x64,0xb5,0x90, + 0x2a,0xef,0xa9,0x0d,0xe7,0x0e,0xc8,0x74,0x70,0x4f, + 0xb2,0x08,0xb4,0x0f,0x37,0x85,0xc7,0xe4,0x6d,0x96, + 0xe2,0x84,0xc6,0xdd,0xce,0x5d,0x73,0xeb,0x7e,0x3a, + 0x2b,0x52,0xcc,0xdb,0xa2,0x57,0x9b,0xb3,0x30,0x9d, + 0xc3,0x89,0x7e,0xa2,0x5d,0x1c,0xf7,0x59,0xf7,0xbf, + 0xff,0xfa,0xf5,0x2b,0x26,0x77,0xdb,0xce,0x49,0x4a, + 0x86,0xb7,0x7e,0x75,0xc9,0xd2,0x82,0xf6,0xfc,0x56, + 0x26,0x87,0xa8,0x07,0xbf,0xe9,0xe1,0xf4,0xfe,0xe9, + 0xc6,0xe2,0x60,0x13,0xdc,0x36,0xc6,0x8e,0xee,0x00, + 0x22,0x22,0x36,0x7d,0xe7,0x66,0x9c,0x39,0x11,0x15, + 0xb7,0xca,0x93,0x9b,0x97,0x3c,0x21,0x34,0x13,0x54, + 0xba,0x51,0x67,0x9e,0xb8,0x47,0x09,0x91,0x99,0x78, + 0x0b,0x14,0x54,0x36,0x93,0x34,0x89,0xc4,0xb8,0x69, + 0x67,0x4c,0x04,0x3f,0xf7,0xac,0x5d,0x95,0xbb,0x1d, + 0xa5,0xed,0x6d,0xd9,0x24,0xa8,0x46,0x13,0x2c,0x93, + 0x8a,0x73,0x7a,0xa7,0x53,0xff,0x3f,0x11,0x10,0xb7, + 0x88,0xe2,0xb4,0x3e,0xcd,0xef,0x9c,0x0b,0xac,0x34, + 0xda,0xcf,0x1f,0xd2,0xd2,0xd9,0xfa,0x2c,0x99,0xb5, + 0x74,0x36,0xd7,0x3c,0xa9,0xe4,0x12,0x51,0x36,0x25, + 0xbe,0xdb,0x24,0x6d,0xb2,0x08,0x70,0xd5,0xf8,0x34, + 0x7c,0x31,0xb5,0xdd,0x36,0x02,0x9f,0x49,0x3d,0x7f, + 0x6b,0x75,0xb3,0x19,0x76,0x68,0x45,0xe5,0x99,0x12, + 0xde,0x74,0x78,0xa5,0xfd,0x93,0x5c,0xc2,0x37,0xfb, + 0x87,0xba,0x16,0x93,0x68,0x9e,0x16,0xce,0xce,0x2a, + 0x22,0x15,0x89,0x9f,0xb4,0x99,0x95,0x12,0x32,0xed, + 0xe9,0x84,0xea,0x4c,0xca,0xda,0x13,0x02,0xfc,0x7d, + 0xde,0x1f,0x4a,0x22,0x37,0x3c,0x4a,0xa5,0x01,0x4c, + 0x2d,0xc6,0x09,0xa1,0x9a,0x62,0xb5,0x43,0x5e,0x29, + 0xf6,0xbb,0xef,0xfe,0x4d,0x1b,0x72,0x03,0xb5,0x4e, + 0x1a,0x2a,0xe9,0x01,0xa5,0x83,0x6f,0x52,0x48,0x4d, + 0xe8,0x4c,0x22,0x28,0x6e,0x7a,0xac,0xdb,0x4d,0xb5, + 0xb9,0xfe,0xf4,0xf7,0x13,0xff,0x84,0x16,0xdd,0x06, + 0xe1,0x50,0xd4,0x6b,0xba,0xbe,0xcd,0xbd,0xa5,0xc5, + 0xb8,0xa9,0x94,0x34,0x79,0x69,0x9b,0xf4,0xe7,0x00, + 0xdd,0x26,0x4a,0x1b,0xdf,0x9b,0x4d,0xa2,0x46,0xc1, + 0x60,0x9b,0x68,0x4c,0x53,0x4f,0x84,0xfe,0x39,0xe2, + 0xbf,0x7b,0x6f,0xc9,0x00,0xd3,0xed,0x2f,0x2d,0x0e, + 0x26,0xa3,0x41,0x3a,0x90,0xa8,0xe8,0xf9,0xc4,0x62, + 0x40,0x21,0xed,0xef,0xef,0x79,0x4b,0xa8,0x36,0x96, + 0x3b,0x49,0xfc,0x72,0x9b,0xe0,0x7d,0x2a,0x6e,0x97, + 0xbc,0xb8,0xfe,0xb6,0x8d,0x4d,0xa6,0xbb,0x0e,0xf2, + 0x27,0x42,0xeb,0x94,0xb8,0x3a,0x54,0x34,0x4d,0x3a, + 0x6d,0xe2,0xb0,0x92,0xc4,0xd3,0x00,0xc1,0x84,0x52, + 0x7e,0x32,0xa8,0xa0,0x07,0x79,0x6a,0x7d,0x4c,0x72, + 0x00,0x9f,0x9c,0x23,0xae,0xf8,0xd2,0x78,0xb3,0x69, + 0x1f,0x4f,0xc5,0x4e,0x9a,0xa8,0x4e,0xef,0xfd,0xf5, + 0x7a,0x9d,0x94,0x08,0x6d,0xf6,0x7d,0xff,0xee,0x74, + 0x4e,0xe8,0xf4,0x58,0xd0,0x4c,0x5a,0xab,0x66,0x4f, + 0x93,0x6f,0x2e,0xae,0x28,0x49,0xda,0xfd,0x0e,0x4d, + 0xc6,0x4e,0x83,0x11,0xaf,0x6d,0x26,0x3e,0x19,0xb2, + 0x4d,0x50,0xf9,0xa4,0xe1,0x93,0xa0,0xb5,0xa9,0xed, + 0xb3,0x81,0x65,0x37,0xb0,0xdd,0x27,0xc2,0x89,0x89, + 0x37,0xf0,0x09,0x64,0x49,0x9e,0x54,0xe9,0xba,0x36, + 0x90,0x64,0x22,0xec,0x4e,0x1c,0x9a,0xa4,0xe4,0xb9, + 0x45,0xde,0x88,0xe7,0x90,0x94,0x47,0x07,0x3e,0xc2, + 0xa1,0xc4,0x3c,0x79,0xbf,0x10,0xb2,0xa6,0xa4,0xd5, + 0xd4,0x1f,0xd7,0x16,0xc9,0xa7,0xda,0x49,0x93,0x3a, + 0xf3,0xe2,0xdf,0x4f,0x48,0xc2,0x8e,0x33,0xb7,0x75, + 0xba,0x58,0xe6,0xbd,0x9c,0xb4,0x7e,0x53,0x25,0xfd, + 0x09,0x17,0x40,0x3e,0xe7,0x0c,0xad,0xdd,0xf3,0x41, + 0xa2,0x73,0x26,0xc4,0x91,0xda,0xb0,0x5b,0xa4,0xfa, + 0xf6,0x12,0x73,0xad,0x4d,0xd2,0xd4,0x52,0xae,0x06, + 0xa1,0x45,0x66,0x5d,0xd8,0x7b,0x9f,0x84,0x34,0x13, + 0x87,0x68,0xdb,0x52,0x98,0x0a,0x9e,0xd4,0xb6,0x4f, + 0x68,0xf6,0x24,0x88,0x47,0xbc,0xab,0x09,0xa1,0x9a, + 0xae,0xdb,0xc5,0xcb,0x44,0x85,0x98,0xd0,0xf3,0xa9, + 0x95,0x3d,0x15,0x0a,0x13,0x2a,0x3d,0xb5,0x89,0x69, + 0x60,0x28,0xf1,0x6c,0x88,0x98,0x4f,0xf7,0x38,0xc9, + 0x7f,0x4c,0xf1,0x8e,0x62,0xd0,0xa4,0x2d,0xf4,0x37, + 0x1e,0x86,0x94,0xe0,0xba,0xf6,0x98,0xd3,0x36,0xfc, + 0x39,0x3b,0x52,0x4f,0x8e,0x8c,0xf0,0xdc,0x02,0xa5, + 0xc9,0xa7,0x09,0xca,0xdd,0x3a,0x7a,0xbb,0x64,0x25, + 0x25,0x24,0x94,0xc9,0x6f,0x38,0x30,0x09,0xe9,0x98, + 0xa4,0x02,0x28,0xf0,0x13,0x24,0xbe,0x41,0x90,0x68, + 0xc3,0x2b,0x5a,0xb0,0x6d,0xc9,0x00,0xf4,0x69,0x93, + 0xb0,0x29,0x50,0x25,0xb4,0x43,0x37,0x28,0x69,0x63, + 0xfc,0x8d,0xd2,0xe7,0x94,0xf4,0x6c,0x0f,0xe7,0xcd, + 0xc1,0xf2,0x37,0xee,0xd3,0xf4,0x19,0xce,0x4a,0x80, + 0x12,0x18,0x4d,0x06,0xa7,0x00,0xa2,0xbc,0xb4,0x4f, + 0xee,0x39,0xf9,0xf7,0xd0,0x3b,0xda,0xca,0xf2,0xbb, + 0xbf,0x82,0x76,0xdb,0xd9,0xf2,0x27,0xf4,0x5a,0xdd, + 0x44,0xd0,0xf7,0xff,0x9f,0x2d,0x57,0x23,0xf1,0x59, + 0x5c,0xa1,0x32,0x55,0xa0,0x93,0xb6,0xcb,0x26,0x91, + 0x18,0xd6,0xe0,0x49,0x2d,0x2e,0xb7,0x4e,0x09,0x91, + 0x9a,0xf6,0x8b,0xf3,0x5f,0x4b,0xa8,0x6a,0x5f,0xb7, + 0x9b,0xc9,0x29,0x97,0xa4,0xeb,0x67,0xc8,0xef,0x1d, + 0xc7,0xf1,0xd8,0xf8,0x40,0x12,0xe2,0x23,0xff,0x7e, + 0xb6,0xa8,0xf8,0xd4,0x59,0x48,0x09,0x77,0xf2,0xd4, + 0xdc,0x88,0xea,0x26,0xa5,0x7b,0x17,0x77,0x5d,0x52, + 0x34,0x9d,0x83,0xf4,0xdf,0x89,0x5b,0x46,0xf2,0x0f, + 0x0e,0x69,0xdf,0x24,0xc6,0x13,0xd2,0xef,0x0a,0x92, + 0xcd,0x39,0xf2,0x3b,0x65,0xbf,0x7d,0x63,0xa7,0x4a, + 0xbe,0xfd,0xd9,0x0f,0xc4,0x3d,0x69,0x68,0x4c,0x36, + 0x09,0xdb,0x56,0x4d,0x42,0x36,0x28,0x11,0xa3,0xca, + 0x2c,0xb5,0x00,0x1d,0x2c,0xe7,0x88,0x66,0x13,0x3c, + 0x9a,0x0e,0xaf,0x45,0xf0,0x79,0xe3,0x5b,0x10,0x6f, + 0x29,0x4d,0xcd,0xb9,0x51,0xc3,0x64,0x27,0xb1,0x31, + 0xed,0x73,0x9b,0xfc,0xfe,0x9e,0xfb,0xbe,0x52,0xdb, + 0xca,0x3c,0xab,0xe3,0x5c,0xee,0x49,0xa3,0x63,0x5a, + 0x17,0xaa,0xf1,0x44,0x6b,0x71,0x4a,0xaa,0x28,0xc8, + 0x12,0xb7,0x85,0x92,0xba,0xd4,0xef,0x76,0x9f,0xd1, + 0xc5,0xcc,0xd2,0x88,0x7c,0x42,0x6b,0x3e,0xe5,0x93, + 0x6d,0xdb,0xd4,0xf7,0xbe,0xbf,0xbd,0xb9,0x36,0x87, + 0xc3,0x8d,0x04,0x6d,0x6c,0x03,0x92,0xad,0xcc,0x74, + 0x70,0xeb,0x7a,0x31,0xed,0x84,0x1f,0x14,0xc9,0x11, + 0x7c,0xa7,0x96,0x7a,0x12,0xd0,0xd3,0x43,0xc7,0xa1, + 0x06,0x5b,0xf3,0xe8,0xbe,0x5f,0x3f,0xd5,0xf2,0xda, + 0x20,0xc6,0x53,0xdb,0x78,0x4b,0x0f,0x70,0x31,0x86, + 0xd0,0x80,0x4f,0x0c,0x7a,0xa9,0x00,0x9a,0x8c,0xb4, + 0xe9,0x59,0x6f,0xf8,0x25,0xd4,0x0e,0x9a,0xda,0x32, + 0xd3,0x7b,0xfc,0x54,0xc2,0x82,0x04,0x16,0x27,0x31, + 0xce,0x2d,0x2a,0xbd,0x79,0xd6,0x44,0x4b,0x70,0xc9, + 0xe7,0xc4,0xfb,0x71,0x49,0xf9,0x7d,0xa4,0x25,0xaa, + 0x07,0xc5,0xf7,0x4f,0xe9,0x31,0x8f,0x4e,0xc3,0x27, + 0x41,0x6f,0xfa,0x67,0x23,0x9a,0x37,0xc1,0x7d,0x93, + 0x7c,0x7c,0xaa,0xc2,0x36,0xe8,0x11,0x49,0xfa,0x53, + 0x46,0x9d,0x2a,0x89,0xa9,0x37,0xef,0x02,0xf2,0x24, + 0xdd,0x3d,0x41,0xa7,0x84,0x2e,0xb9,0xe7,0xab,0xe8, + 0x9d,0x7c,0xc6,0x99,0x12,0xc1,0x89,0xa7,0x91,0x82, + 0xaa,0x7e,0xf6,0x5d,0x8d,0xbb,0x35,0x30,0x05,0xc5, + 0xbf,0x6d,0x01,0x4e,0x68,0x63,0x42,0x5d,0x52,0x6b, + 0x8e,0x02,0xd7,0xa6,0xbd,0x32,0x4d,0x19,0x4d,0xa8, + 0xe3,0xd2,0x45,0x7a,0xe4,0xb2,0xa4,0xe9,0x38,0xb9, + 0x86,0x43,0xdf,0xb3,0xd5,0x00,0x49,0xf7,0x9e,0x10, + 0xc3,0xa1,0x55,0x72,0x92,0xb2,0xb3,0xdb,0x0f,0xd4, + 0x5a,0x4e,0xbe,0x60,0xc3,0x01,0x79,0x68,0x4c,0xbb, + 0x3f,0xb7,0x89,0xf4,0x9b,0xda,0x28,0xff,0xd6,0x3b, + 0x67,0xe5,0xd5,0x47,0x2d,0xa8,0xd4,0x7a,0x4e,0x43, + 0x06,0x2e,0x5e,0xdd,0x53,0xa6,0xb4,0x16,0x26,0x4f, + 0xb1,0x4f,0xf6,0xcc,0x56,0x23,0xad,0x1f,0xa2,0xc9, + 0x06,0x61,0x42,0x85,0x5c,0x5c,0x56,0x7b,0x15,0x87, + 0xca,0x4e,0x45,0xcd,0x86,0x8f,0xe7,0x10,0xbe,0x69, + 0x1f,0x25,0x1f,0xb9,0x8e,0xc8,0x7c,0x62,0x4a,0xeb, + 0xce,0x46,0x45,0x97,0xd3,0x64,0x72,0x5a,0xeb,0xd4, + 0x91,0x99,0xba,0x15,0x9b,0x49,0xd6,0xa9,0x25,0xe9, + 0xf6,0xda,0xef,0x4d,0xd2,0xb3,0xc9,0x22,0x7b,0x96, + 0xec,0xda,0x66,0x2e,0x78,0x6e,0x24,0xcb,0x37,0x8a, + 0x90,0x8e,0x64,0xd5,0x09,0x5c,0xdb,0xde,0x77,0x22, + 0xf6,0xa9,0xe3,0xed,0xa4,0x24,0x4d,0x2c,0xf4,0xad, + 0x18,0xdd,0x54,0xd1,0x49,0xa0,0xad,0x49,0xf9,0xf4, + 0xfe,0xef,0xae,0x0a,0xab,0x93,0x53,0xfa,0xe7,0x44, + 0xb2,0xdd,0x24,0x49,0x53,0x15,0x95,0x44,0xf2,0x52, + 0x3b,0x6c,0x52,0xf4,0x25,0xfe,0x42,0x87,0x28,0x48, + 0xdb,0x66,0x43,0xf2,0xa5,0x2a,0x2f,0xa1,0xa8,0x13, + 0x0c,0xfb,0x49,0xf2,0xe6,0xf6,0xd0,0x44,0xde,0x4d, + 0x2d,0xc4,0x89,0xc7,0x35,0x15,0x34,0x8a,0x02,0x4d, + 0xdc,0x14,0x0a,0x98,0x1d,0x99,0x4b,0x6b,0xe1,0xe6, + 0x3d,0x39,0xee,0xd7,0x66,0x9a,0x2c,0xbd,0x23,0xf7, + 0x4c,0x74,0x12,0x76,0x5b,0xa1,0x13,0x71,0x76,0x1b, + 0xd3,0x48,0xd5,0x78,0xe2,0x6a,0x6c,0xc8,0xa8,0xa2, + 0x65,0x76,0xdc,0xa1,0x45,0xfe,0x5a,0x13,0xb9,0x39, + 0xad,0x6d,0xfd,0x2c,0x87,0x68,0x29,0x42,0x3b,0x29, + 0xb2,0xa7,0xd8,0xe8,0xac,0x5a,0x36,0x7b,0xc2,0xad, + 0xd9,0x3f,0x7f,0xfe,0x8c,0xc8,0xd1,0x16,0xf9,0x77, + 0xa6,0xe0,0x1b,0x84,0x71,0x2a,0xd8,0x26,0x35,0xea, + 0x29,0xf9,0xa1,0xe4,0xe1,0x13,0xed,0x30,0x4a,0x76, + 0xa6,0x76,0x3a,0xc4,0x89,0x33,0x49,0x72,0x4c,0x84, + 0xf8,0x84,0x4c,0x7d,0x7d,0x7d,0xfd,0x83,0x00,0x6d, + 0xaa,0xae,0xb4,0xe0,0x26,0x83,0x4b,0xd7,0x73,0x9c, + 0x14,0x2a,0xa9,0x1a,0x9a,0xf4,0x03,0x36,0x99,0x2d, + 0x05,0xb2,0x64,0xe6,0x48,0xa3,0xf9,0x4e,0xda,0x7e, + 0x3a,0x5c,0xee,0x8a,0x8e,0xaa,0x37,0x4a,0xce,0x54, + 0xd0,0x2e,0x25,0x22,0x5a,0xa9,0x24,0xad,0x18,0x6a, + 0x49,0x4d,0x01,0x28,0x05,0xb9,0x94,0x50,0xa4,0x83, + 0xfd,0xd7,0xaf,0x5f,0x58,0x39,0x4e,0xed,0x92,0x54, + 0xe1,0x39,0xb3,0xce,0x50,0xd5,0x9d,0x8d,0xf8,0xe6, + 0xa7,0x24,0x78,0x45,0x03,0x4d,0xb0,0x3a,0x1b,0xd1, + 0xbe,0x4d,0x65,0xd9,0xae,0xe5,0x0c,0x6d,0x9d,0x33, + 0x55,0x76,0x84,0x20,0x6d,0x14,0x9d,0x13,0x6f,0x8d, + 0xda,0x70,0xda,0xf2,0xa2,0xe4,0xcc,0x55,0xbf,0x09, + 0xe5,0x4d,0xad,0x12,0x7a,0xe6,0x93,0x45,0xcf,0x27, + 0x08,0x79,0x6a,0xf7,0xb8,0xcf,0x70,0xc8,0x03,0x15, + 0x6b,0xd3,0xc0,0x82,0x43,0xd0,0xd3,0x70,0xc8,0x84, + 0xb2,0x6f,0xce,0x89,0x29,0xf9,0x55,0x1e,0x4f,0x48, + 0x04,0xce,0x84,0x76,0x27,0x5a,0x05,0x19,0xa1,0x2a, + 0xef,0x86,0x10,0xb3,0x64,0x13,0xb5,0x31,0x88,0xdd, + 0x4a,0x22,0x50,0x7b,0x7f,0x6b,0x2a,0x4e,0xeb,0xba, + 0xaf,0xa3,0x64,0x7a,0x9e,0xf6,0xf5,0x86,0xef,0x48, + 0xf4,0x80,0x84,0xf4,0xbb,0xb3,0x6f,0x2b,0x77,0x30, + 0xad,0x35,0xe8,0x42,0xfc,0x20,0x6b,0xaf,0xd7,0xeb, + 0x5f,0x12,0x34,0x09,0xd1,0x4d,0x23,0xc4,0x53,0x9b, + 0x88,0x78,0x07,0x53,0xb0,0x4d,0xdf,0xb9,0x51,0x80, + 0x75,0x41,0xd8,0x29,0x68,0xba,0xdf,0x81,0xfe,0xbd, + 0x3b,0x14,0xcf,0xd4,0xb6,0x98,0x02,0x86,0xdb,0x48, + 0x84,0x4c,0x28,0x1a,0x35,0x99,0x7f,0xd2,0x81,0xe0, + 0xd0,0x1e,0x12,0x7a,0xec,0x9f,0x41,0xde,0x51,0xee, + 0xbd,0x52,0x82,0x3a,0x19,0x3b,0xba,0xa4,0xed,0x13, + 0xed,0xa5,0x4f,0xc8,0x7c,0xf4,0xe7,0xd3,0xfa,0x9c, + 0xa6,0xba,0xa6,0x03,0x6f,0x5b,0x41,0x6d,0x83,0x4b, + 0x4f,0x72,0x7a,0x80,0xa6,0x16,0x91,0x7b,0x9f,0xc3, + 0xfa,0x3d,0x1b,0x2b,0x14,0xd7,0x12,0x22,0xb2,0xe3, + 0xa7,0xad,0xbe,0x3b,0x89,0xfd,0xfa,0xfa,0x3a,0x2e, + 0xc0,0xb9,0x67,0xb2,0x69,0x61,0x0d,0x85,0xd3,0x99, + 0x92,0x3f,0x27,0xb2,0x97,0x6c,0x0b,0xa6,0xa9,0xc5, + 0x6d,0x9c,0x9c,0x88,0xa3,0x53,0x81,0xb2,0xf1,0x5c, + 0xec,0xeb,0x68,0x33,0x91,0xda,0x27,0x36,0x29,0x56, + 0x4e,0x71,0x3e,0xb5,0x2a,0x53,0x71,0x49,0x45,0xdc, + 0x27,0xa8,0xd5,0xa6,0xc3,0xe1,0x50,0xba,0x34,0xb9, + 0x35,0xc5,0xc4,0x69,0x3a,0xf9,0x6f,0x12,0x4f,0x68, + 0xf5,0x9f,0xed,0xf9,0x94,0xce,0xf4,0x14,0xa3,0xa6, + 0x69,0x45,0xf7,0x9e,0xa7,0x42,0xc8,0x25,0xed,0x29, + 0xbe,0x52,0x0b,0xd3,0x99,0x37,0xbf,0x4d,0x81,0x85, + 0xc4,0xe2,0x6c,0x5a,0x62,0x69,0x61,0xa9,0x41,0x1a, + 0x7d,0x27,0x2c,0xea,0x43,0xe3,0x91,0xaa,0x29,0x93, + 0x60,0xc9,0xd4,0x6e,0x71,0xfd,0xc8,0x34,0xe9,0x94, + 0x0e,0x54,0x0d,0x18,0x13,0xf7,0xc4,0xb5,0x0b,0x7b, + 0x8f,0x5d,0x93,0x92,0x2d,0xcf,0x63,0xa3,0x4a,0x3b, + 0x4d,0x28,0xa4,0xc4,0x98,0xfe,0x2e,0x8d,0x9f,0x26, + 0x5e,0x8c,0x7b,0x7e,0x9f,0x10,0xea,0x24,0xf0,0x9d, + 0x89,0xeb,0xf2,0x29,0x17,0x67,0x5a,0xf7,0x9f,0x22, + 0x55,0x69,0x4c,0x18,0xfe,0x77,0x9c,0x1e,0x87,0x6b, + 0xb5,0x4c,0x02,0x6d,0x1b,0x8d,0x9f,0x09,0x5a,0x0e, + 0x81,0xee,0x6c,0x14,0x5a,0x49,0x1d,0x9c,0x46,0x7e, + 0x3b,0x17,0x26,0x05,0xc3,0x54,0x10,0x4c,0x8a,0xc9, + 0x84,0x80,0xea,0x64,0x8b,0xab,0x66,0xa7,0x11,0xe6, + 0x1e,0xcf,0x36,0xc9,0xee,0x94,0x24,0x10,0xcf,0x67, + 0xcb,0x89,0x4a,0xff,0xdd,0x93,0xcc,0x4f,0x14,0x9b, + 0x53,0x51,0x95,0xee,0xeb,0x8e,0x81,0x2e,0xa1,0xdd, + 0xca,0x68,0x4c,0xcf,0x7f,0x6a,0x45,0x6e,0xe8,0x12, + 0xf4,0xb9,0xd3,0xbe,0x48,0x85,0x7b,0x6a,0xc3,0x6f, + 0xa4,0x06,0xa6,0xae,0x0a,0xc5,0xab,0xd4,0xb1,0xf9, + 0xe4,0x3d,0x6e,0x3a,0x0b,0x69,0xaf,0x7e,0x10,0x57, + 0xec,0x75,0xf4,0x09,0xe6,0x24,0xda,0xe8,0xde,0xc1, + 0x4f,0x0b,0x8c,0x20,0x7a,0xe2,0x78,0x24,0x51,0xa2, + 0x69,0x73,0x0e,0x70,0xfc,0xaa,0xa5,0xb1,0xe1,0x56, + 0x24,0xab,0x8a,0xcd,0x24,0xc9,0x66,0x81,0x7f,0x22, + 0x12,0xe7,0x50,0x8d,0xc9,0xa5,0x37,0x7d,0x27,0x8d, + 0xbc,0xa6,0x85,0x3e,0x69,0x39,0x75,0x24,0xa1,0x1d, + 0x32,0x27,0x6d,0x92,0x2d,0x7a,0xb7,0x55,0xbc,0x25, + 0xcb,0x8a,0xc4,0xf6,0xa7,0x67,0xea,0x2c,0x0e,0x48, + 0x0e,0x61,0x83,0xda,0x38,0x87,0xf2,0xa9,0x17,0x0d, + 0x87,0xe1,0xa1,0x20,0xe7,0x2c,0x34,0xa6,0x43,0x9c, + 0x50,0xcd,0x29,0xb8,0xb4,0xa0,0x71,0x16,0xc1,0xf2, + 0x6c,0x0e,0xec,0x8e,0x96,0x4e,0x43,0x0e,0x13,0x59, + 0xfc,0x2e,0x04,0x7a,0xf2,0x43,0x3c,0x99,0x54,0x8d, + 0x6e,0xa6,0xdf,0x28,0x8e,0x68,0x31,0xd2,0x61,0xf4, + 0xf0,0x7e,0x4e,0xda,0x07,0x1b,0x61,0xb7,0x29,0x36, + 0x75,0x95,0xe2,0x44,0xd8,0x6e,0x6b,0xe4,0x7c,0x82, + 0x24,0x4c,0xcf,0x32,0x15,0x02,0x1b,0xa4,0x2a,0x8c, + 0x88,0x9f,0xa4,0xf1,0xf5,0xa9,0xca,0xf4,0x12,0x99, + 0x3d,0x9f,0xca,0x65,0x84,0xf6,0xe5,0x49,0xa8,0x26, + 0xb5,0xb5,0xa0,0x15,0xbf,0xb2,0x41,0x9a,0x84,0x80, + 0x27,0xf7,0x84,0x89,0xa0,0x3f,0x71,0xd4,0xe8,0x4c, + 0x9f,0x5a,0xc8,0x09,0x79,0xdc,0x18,0x13,0xa7,0xa1, + 0x8e,0x09,0x11,0xfc,0x79,0xd6,0x9b,0x16,0x52,0x22, + 0xc2,0x39,0x09,0x6c,0xf7,0xf0,0x1c,0xd9,0x6b,0x43, + 0x22,0x83,0x44,0xe8,0xa4,0x7e,0x7e,0xea,0x0b,0xbb, + 0x31,0x55,0x0a,0x96,0x24,0x02,0xb6,0x71,0x4f,0x4f, + 0x48,0xc7,0xd6,0xdc,0x72,0x03,0xff,0xba,0xbe,0xf2, + 0x06,0x3e,0x4d,0x68,0x4a,0x7a,0x9e,0x84,0x64,0xb9, + 0xe4,0x68,0x33,0xa6,0x48,0x68,0x61,0x42,0xa6,0xb6, + 0xea,0xd6,0x44,0xbc,0x97,0xfb,0x3c,0x53,0xc2,0xa2, + 0x1b,0x55,0x0f,0xc4,0x73,0xce,0x81,0xb6,0xc6,0x99, + 0x7a,0xe6,0x9b,0x09,0xc0,0xa9,0xe2,0xa2,0x83,0x86, + 0x50,0x87,0x89,0x2b,0xb2,0xe5,0x9a,0x0c,0xc1,0xe9, + 0xa4,0xef,0xdd,0x28,0x07,0xdf,0x2d,0x2f,0x27,0x9e, + 0x38,0x78,0xf0,0x9d,0xe9,0x39,0xdd,0x8a,0xba,0x01, + 0x25,0x3a,0x6e,0x9f,0x4f,0x6a,0xb8,0xd3,0x3f,0x61, + 0x4d,0x9f,0x54,0x54,0x4d,0x04,0xf7,0x89,0x7b,0xa2, + 0xbe,0x65,0xe9,0x9d,0x50,0x5b,0x6f,0xc3,0x5b,0x21, + 0xd4,0x79,0xeb,0x48,0x9e,0xb8,0x30,0x53,0x22,0x92, + 0xd0,0xc6,0x4f,0x5a,0x4c,0xd3,0xe4,0x91,0x72,0x39, + 0xa7,0xfd,0x34,0x15,0x8e,0x9d,0xb0,0xdd,0xdb,0x35, + 0x5b,0x9e,0x59,0x58,0xe3,0x8f,0x75,0xe0,0x28,0x17, + 0xce,0x30,0x9c,0x26,0x27,0x37,0x9c,0xc7,0xc9,0x33, + 0x2d,0x89,0x41,0xea,0x1e,0x4b,0x09,0xcc,0xe4,0x5e, + 0x4f,0xc0,0xc3,0x1b,0x30,0x41,0xbd,0xca,0x4d,0x75, + 0x82,0x1f,0x2a,0x19,0x2c,0x1c,0x1a,0xe8,0xbd,0xe2, + 0x92,0x28,0x1a,0x3f,0x74,0x7f,0xae,0x0a,0xba,0x29, + 0x11,0x9a,0x0e,0x86,0x05,0x2a,0x10,0x7b,0xb9,0x24, + 0x75,0x3f,0xa9,0x9e,0xf6,0x9f,0x77,0x64,0xcf,0x61, + 0x33,0x1f,0x57,0x71,0x6d,0xd1,0x8b,0x69,0x33,0x3b, + 0xc8,0x79,0xe2,0xe9,0x6c,0x0c,0x21,0x9d,0x41,0xa3, + 0x56,0xbc,0x9f,0xb8,0xab,0x6b,0x12,0x4f,0x89,0x31, + 0x55,0x59,0x8e,0x40,0xbe,0x21,0x47,0x4f,0x70,0xb4, + 0xba,0xac,0x4b,0x9b,0xf0,0x4c,0xfb,0xcb,0xed,0xa1, + 0xc4,0xe9,0x49,0x81,0xa5,0xed,0xaf,0x93,0xb8,0x11, + 0x8a,0xc2,0x6c,0xd5,0xac,0xef,0x02,0x3b,0x89,0x82, + 0x06,0x54,0xd6,0x3e,0x8b,0xa1,0x20,0x3b,0xae,0x68, + 0x48,0x07,0x51,0x2a,0x72,0x5c,0x40,0x4d,0xa8,0xf7, + 0x94,0xac,0x2b,0xbf,0x72,0x8a,0xbf,0x0b,0x99,0x02, + 0x9b,0x74,0x7f,0x62,0xfb,0x30,0xb5,0xfa,0xf5,0xdd, + 0x4f,0xca,0xc2,0x7a,0x00,0x93,0x68,0xa2,0x8b,0x35, + 0x6e,0xbc,0x3c,0x49,0x80,0x68,0xa2,0x40,0x3c,0x4f, + 0x8a,0x11,0xd4,0xa2,0x4f,0x5a,0x34,0x89,0xe4,0xab, + 0xb1,0xcc,0xbd,0x3b,0x92,0x9b,0xd8,0x38,0x9e,0x6f, + 0xda,0x42,0xdb,0xa2,0x9d,0x8a,0xcb,0x6d,0x77,0x64, + 0xdb,0xe2,0x4c,0xc9,0x20,0xdd,0x6f,0x38,0x1f,0xcf, + 0xe4,0x0b,0xb6,0x3d,0x1f,0xce,0x39,0x4f,0x21,0xc4, + 0x4f,0x92,0x9f,0x04,0xa7,0xa5,0x3e,0xdc,0x24,0x50, + 0x46,0x55,0xc1,0x10,0x00,0xac,0xcf,0x10,0x8d,0xa5, + 0xba,0x64,0x63,0x42,0xa0,0x5c,0xeb,0x29,0xf1,0x8a, + 0x36,0x08,0x45,0x3f,0x80,0xee,0x31,0xe2,0xf6,0xfc, + 0xe2,0x68,0xf1,0x86,0x20,0x97,0xcc,0x6c,0x75,0xf4, + 0xf7,0x36,0x01,0x5d,0x04,0xda,0x9f,0xd1,0x7b,0x07, + 0x89,0x4e,0xf6,0x27,0x9f,0xb4,0x20,0x64,0x9d,0x9d, + 0xd7,0xeb,0x55,0x06,0x72,0xae,0x69,0x43,0xbb,0xc4, + 0x44,0x13,0xd3,0x8d,0x77,0xcf,0x74,0x68,0x24,0x8e, + 0x95,0x23,0xff,0x39,0xfe,0x84,0x7b,0x1e,0xdf,0xd7, + 0xf9,0xb6,0x1e,0xf4,0xd9,0xdc,0x7f,0x07,0xcf,0xf1, + 0xe7,0x39,0x91,0xc4,0x01,0x29,0x52,0xab,0x60,0x19, + 0xad,0x49,0x0a,0xb8,0xf7,0xb8,0xf5,0x6d,0xf9,0xe6, + 0x48,0xfc,0x1a,0xe0,0xd2,0x5a,0x09,0xcf,0xee,0x10, + 0xd2,0x2a,0xfb,0xf0,0x6c,0xfc,0xde,0xa6,0xe4,0x61, + 0x12,0xbb,0x33,0x02,0x81,0x23,0x9f,0xd2,0x5c,0xf7, + 0x81,0xc3,0xe6,0xa8,0xe4,0x46,0x52,0x43,0xd6,0x36, + 0x6b,0xe7,0x95,0xb9,0x8a,0x3f,0x71,0x50,0x26,0xa1, + 0xd8,0x0d,0x61,0x9a,0x46,0x99,0x27,0x74,0x7b,0x8a, + 0x75,0xfa,0x57,0x2a,0x22,0x39,0x99,0xd8,0xa6,0xf6, + 0x3e,0xc9,0x1a,0x7c,0x70,0x3d,0x6f,0xfb,0x0d,0x68, + 0x08,0x9f,0x72,0x6c,0x8f,0xf9,0xfb,0x43,0x49,0x1a, + 0xad,0xef,0xc9,0xa4,0x38,0x09,0x21,0x4e,0xad,0xc2, + 0x94,0x60,0xa6,0x67,0x4c,0x9c,0xd7,0x8e,0x9a,0xf5, + 0xd8,0x4c,0xc8,0x74,0x4a,0xd0,0x7e,0x4f,0xbd,0xe8, + 0xe9,0x50,0x22,0x87,0x70,0x4a,0x2a,0x1c,0x37,0x67, + 0x13,0x80,0xee,0xdf,0xed,0x30,0xe1,0xd6,0x8c,0x52, + 0x1f,0x08,0xb9,0x89,0xeb,0x41,0x97,0x36,0x48,0xc8, + 0x7c,0x7f,0x54,0x8c,0x37,0xea,0x9b,0xd3,0x02,0x72, + 0xcf,0x32,0xa1,0x39,0x9b,0xef,0x70,0xf0,0x21,0xc1, + 0xec,0xc4,0x5b,0x72,0xad,0x4f,0x57,0xfd,0xf7,0x44, + 0x89,0x12,0x5c,0x08,0xfe,0x3f,0xbf,0xab,0x8b,0x3c, + 0x05,0xd4,0xa4,0x1f,0xf2,0x1d,0xf0,0xcb,0xe9,0x1e, + 0x99,0x96,0xed,0x23,0xa1,0x98,0x12,0x1e,0x9a,0xce, + 0x83,0x9f,0x7f,0x24,0x12,0x13,0x32,0x47,0x95,0xfb, + 0xdf,0xc8,0xf5,0x03,0xca,0xf4,0x70,0x76,0x07,0x53, + 0xcd,0x8d,0x4b,0x3c,0xad,0xe7,0x33,0xed,0x53,0x35, + 0x8e,0x4d,0xe8,0x68,0xaa,0x5a,0xd3,0xe1,0x44,0xca, + 0xcf,0xda,0xda,0x80,0x04,0xfa,0x90,0x2e,0x98,0x72, + 0x40,0x3e,0xd1,0x35,0x4b,0xc8,0xcd,0xdf,0xe8,0xb9, + 0x4c,0xfc,0x18,0x42,0x1a,0xa7,0xa1,0x92,0xcd,0x44, + 0xe7,0xa4,0xd9,0x95,0x5a,0xef,0x84,0xd0,0x6c,0xf9, + 0x52,0xf4,0x3c,0x1c,0x97,0x2c,0x25,0x1c,0x53,0xe2, + 0x45,0xeb,0x67,0xc3,0x51,0x23,0xd5,0xfd,0xf4,0xee, + 0x36,0x49,0xd4,0x66,0x1f,0x6e,0xe3,0x0d,0x79,0x6a, + 0xb9,0xf3,0x13,0x8a,0x84,0x33,0x39,0x42,0xa4,0x16, + 0xf8,0xb4,0xc7,0x89,0x6b,0xf4,0x09,0x2d,0xe2,0x45, + 0xc1,0x67,0x6a,0x69,0x4c,0x93,0x45,0x6e,0xba,0x29, + 0xb5,0xbf,0x92,0x43,0x37,0x11,0x7f,0x49,0x8d,0x93, + 0x12,0xb3,0xbb,0xf7,0xef,0xae,0x95,0xda,0x4c,0x69, + 0x3c,0x7c,0x03,0x2f,0xa6,0x91,0xec,0x44,0xa6,0x4b, + 0x70,0xfd,0xd4,0xba,0x9b,0x7c,0x74,0x08,0xfd,0x4a, + 0x53,0x39,0xd3,0xf3,0x75,0x6d,0x37,0xf8,0xef,0xb3, + 0xe0,0xac,0xc4,0x7b,0xdb,0x22,0x31,0xce,0x87,0x8c, + 0xc4,0xeb,0xd2,0x38,0xff,0x76,0x8a,0x07,0x9e,0xf5, + 0xa1,0xe9,0xc5,0x50,0x51,0x1d,0x97,0x5c,0xa5,0x96, + 0x89,0x7b,0x07,0x69,0x02,0x6e,0x43,0x96,0x76,0x13, + 0x66,0x04,0xd9,0x4f,0x26,0xb2,0x9f,0xc2,0xd3,0xd3, + 0x34,0xa6,0xb9,0xcf,0x43,0xb1,0x44,0x10,0xbf,0x33, + 0xd9,0xdc,0x24,0x35,0x78,0x87,0xde,0x6e,0x3c,0xee, + 0x52,0x4b,0xd3,0xe9,0xe1,0x50,0x12,0xba,0x4d,0x72, + 0xe4,0xfb,0xce,0x82,0x57,0xf9,0x48,0x36,0xd2,0xa8, + 0x79,0x97,0x1a,0x90,0x96,0xde,0x49,0x87,0x6e,0x27, + 0xe5,0x3a,0xc3,0xde,0x4f,0x1c,0x02,0xa6,0x04,0x21, + 0x49,0x61,0x38,0x8d,0x30,0x32,0x3d,0xee,0x59,0x13, + 0xf9,0xa1,0x4d,0x89,0x03,0x9d,0x75,0xd3,0x39,0x40, + 0xa4,0xdf,0x09,0x38,0xf8,0x44,0x6f,0x6a,0x42,0xe0, + 0x5d,0x0c,0x9a,0x00,0x87,0xc4,0x1b,0x9a,0xb4,0xe2, + 0x12,0x45,0x62,0x42,0x9e,0xdd,0x50,0x8f,0x20,0xd1, + 0xef,0xbc,0x5a,0xf7,0xe2,0x53,0xb5,0xe4,0x38,0x3d, + 0x5b,0xdf,0x23,0xba,0x31,0x85,0xb0,0x13,0xfc,0x4d, + 0x42,0x55,0x29,0xeb,0x4d,0x5c,0x9b,0xae,0x0f,0x40, + 0x12,0xff,0xc9,0x16,0x23,0x99,0xbd,0xa6,0xcd,0xb7, + 0x85,0x5d,0xa7,0x85,0x4d,0x53,0x53,0xe6,0x79,0x9c, + 0xb4,0x39,0xa7,0x84,0x36,0x25,0xc6,0x9f,0x24,0x33, + 0xf0,0x77,0x67,0x43,0x9a,0xfe,0x44,0x77,0x67,0x63, + 0x14,0xb8,0x39,0xdc,0x88,0x43,0x63,0x12,0xb4,0xf3, + 0xb7,0x24,0xbf,0x14,0xb4,0xf5,0xf7,0xdd,0x01,0x95, + 0xde,0x99,0x7c,0xae,0x25,0x7c,0x27,0xd1,0xb9,0x34, + 0x62,0xfc,0x7a,0xbd,0x8e,0xbb,0xde,0x54,0x98,0x7c, + 0xb2,0x3e,0xfa,0xe7,0x24,0xf2,0x31,0x25,0xdf,0x34, + 0x52,0x3d,0xb8,0xa3,0x1f,0xf7,0x0e,0xbb,0x48,0x66, + 0x3f,0x00,0x37,0xba,0x33,0x3d,0xc9,0x49,0xd5,0x2a, + 0x15,0x8c,0xce,0x76,0x82,0xd0,0x98,0xc9,0x56,0x60, + 0x31,0xa9,0x75,0xd2,0x40,0x80,0xb3,0x88,0x58,0xb4, + 0x1f,0xc6,0xa4,0x28,0x1c,0xa4,0x67,0x9a,0xc0,0xba, + 0x13,0xdb,0x2d,0x9a,0x30,0x49,0x5d,0x38,0xcd,0xb4, + 0x4f,0x38,0x37,0xba,0x9f,0x9c,0x7d,0x4e,0x2a,0xee, + 0xa6,0x56,0xda,0x66,0xe4,0x9f,0xba,0x0f,0x3a,0xfc, + 0x33,0xb4,0x5f,0xdf,0xd6,0xad,0xe3,0xb0,0xbd,0xc1, + 0xd9,0x83,0x37,0xdb,0xa7,0xe2,0xb6,0xd3,0x7b,0x49, + 0x7e,0x90,0x94,0x80,0xea,0x67,0xfc,0x9e,0x7a,0x65, + 0xae,0x12,0x9d,0x02,0xd8,0x94,0x55,0x52,0x0b,0x80, + 0xb8,0x01,0xe7,0x9c,0x37,0x0b,0x07,0xb7,0x90,0x9d, + 0x96,0x84,0x42,0x85,0x01,0xda,0x3f,0x5f,0x5f,0x5f, + 0xa5,0x9c,0x0a,0xc7,0x99,0x98,0xb4,0x1d,0x68,0x83, + 0xa7,0xea,0xcd,0xf1,0xa3,0x02,0x1a,0xf5,0xe0,0x0a, + 0x6d,0x20,0x56,0xd8,0x4c,0x96,0x3f,0x93,0xb8,0x30, + 0xa9,0x35,0x96,0x20,0xcb,0x14,0x44,0x7a,0x7f,0x5e, + 0x0f,0xf8,0x0d,0x79,0x1b,0x26,0xd5,0xce,0x39,0xa7, + 0xa6,0xeb,0x68,0x95,0x42,0x6d,0x4c,0x39,0xd3,0x73, + 0xd7,0x35,0xa2,0xeb,0x0e,0x5a,0x2d,0x35,0x59,0x5a, + 0x48,0x52,0xf0,0xd3,0xa9,0x02,0x14,0xe0,0xe7,0xef, + 0x95,0xf7,0xf0,0xbd,0xb6,0xde,0xd6,0x0f,0x24,0xbd, + 0xa7,0xaa,0xaa,0x73,0xc2,0xc2,0xa1,0x72,0x88,0xd7, + 0x93,0x0c,0x4c,0xd3,0x3e,0x49,0xeb,0x90,0xb8,0x0e, + 0x29,0x91,0x74,0x45,0xc0,0xc6,0x97,0x6c,0x93,0x88, + 0x6b,0x82,0x39,0xf9,0x14,0x7d,0xd2,0x96,0xbc,0xcc, + 0x20,0xe1,0x7d,0xdf,0x6e,0x94,0x9e,0xda,0x6f,0x53, + 0xcb,0xe6,0x53,0x89,0x90,0x89,0x9f,0xb1,0x4d,0x7c, + 0xcd,0x7a,0x3f,0x4b,0x02,0xf0,0xf9,0x04,0x55,0x4c, + 0x2d,0xae,0xbe,0x46,0x5d,0x61,0x92,0xe2,0x9e,0xb6, + 0xe5,0x27,0x94,0xbe,0x99,0x1a,0xe3,0x90,0x4a,0x4a, + 0xb0,0x12,0xca,0xde,0x81,0x8c,0xd4,0xa5,0x98,0x0a, + 0xbd,0x34,0xa5,0xdd,0xd7,0xdf,0xf2,0x8c,0xc7,0xb3, + 0x72,0x13,0x53,0xc9,0x9e,0xc6,0x4d,0xb3,0x6d,0x3b, + 0x24,0x66,0x60,0xeb,0x15,0xf5,0x56,0xc2,0x04,0xd2, + 0x49,0x04,0x5b,0x7a,0x60,0x34,0xe2,0x97,0x08,0x73, + 0x4e,0x16,0x5f,0x2b,0x24,0x9d,0x1c,0xa3,0xe4,0x63, + 0xaa,0xb8,0x27,0xfd,0x9f,0x94,0x4d,0x92,0xdc,0xb9, + 0x56,0x7f,0x69,0xe4,0xb4,0x57,0x57,0x93,0xc6,0x87, + 0x3b,0x28,0xa6,0xcd,0xe8,0x0c,0x59,0x9d,0xae,0x08, + 0x25,0xbb,0x1b,0x11,0xbd,0x4d,0x15,0xe6,0x2a,0x84, + 0xce,0x0f,0xeb,0x6b,0x6f,0x6a,0xab,0xdd,0xe8,0x4b, + 0xdf,0x14,0xda,0xf2,0x22,0xc5,0xed,0x41,0x43,0xe2, + 0x6c,0xdc,0xd6,0x89,0x84,0x9a,0x1c,0xb1,0x29,0x79, + 0xfe,0xc4,0x31,0xde,0xed,0xd9,0x0d,0x01,0x73,0x42, + 0x8c,0x5e,0xaf,0xd7,0x8f,0x25,0x09,0x41,0xd7,0x7a, + 0x19,0x34,0xe9,0xb3,0xe1,0xbd,0xa4,0xbe,0xff,0x84, + 0xfa,0x24,0x4e,0x81,0xa2,0x10,0x69,0x52,0x49,0x13, + 0x08,0x48,0x7a,0xce,0xd6,0x76,0x27,0x09,0xf8,0xa5, + 0xd6,0xca,0xb6,0x35,0xbe,0xb5,0x9b,0x20,0xc4,0xfa, + 0xe4,0xca,0xd4,0xc6,0xb6,0x3b,0xce,0x4e,0x63,0xca, + 0x54,0x24,0x69,0x5b,0xce,0xc5,0xc4,0x89,0xf4,0xae, + 0xdf,0xbf,0x29,0x32,0x69,0xe4,0x7b,0xc3,0x39,0x49, + 0x3c,0x92,0xc9,0xb8,0x79,0x93,0xcc,0x13,0xad,0xc4, + 0xbd,0x67,0x42,0x8b,0x26,0x02,0xfb,0x54,0x6c,0xb8, + 0x0d,0xb2,0x6d,0x3d,0x4f,0x48,0xae,0x13,0xfd,0x75, + 0x36,0x2b,0x74,0xbe,0xba,0xa9,0x3e,0xe2,0x4b,0x6d, + 0x08,0xd9,0xfa,0xef,0x2f,0x97,0xa8,0x24,0x88,0x76, + 0xc3,0x0d,0x49,0x41,0x81,0xfa,0xfc,0x49,0xb7,0xc5, + 0x1d,0xc6,0x1b,0x08,0x3d,0xb5,0xa9,0x36,0xd0,0x6e, + 0xba,0x6e,0xdd,0x88,0x0e,0x59,0xa2,0x56,0xc0,0x24, + 0x96,0xe6,0xd4,0x90,0xa7,0x4a,0x66,0x83,0xc0,0x4d, + 0x90,0x6f,0x87,0xea,0x53,0x05,0x30,0xe9,0xe5,0xd0, + 0x28,0xe3,0xd4,0x67,0x4e,0x9c,0x0b,0x6a,0x77,0xa4, + 0x67,0x37,0x41,0xcc,0xd3,0xf3,0x0b,0x66,0xb6,0x87, + 0x0e,0x48,0x77,0xe0,0x24,0x5e,0x84,0x1b,0x03,0x56, + 0x48,0xd9,0xb4,0x3c,0xce,0x46,0xe5,0x38,0xa8,0x04, + 0x1f,0x3d,0x0c,0xcc,0xfe,0x3b,0x8e,0x7b,0x14,0x92, + 0xd1,0x1f,0xbd,0x1e,0x55,0x4e,0x4e,0xcf,0x7e,0x23, + 0x64,0x98,0x2c,0x37,0x14,0xd6,0x87,0x75,0x77,0x52, + 0x0b,0xd4,0xb5,0x07,0xe8,0x70,0x9f,0x88,0xd5,0xd3, + 0xde,0xdc,0x2a,0xce,0x7f,0xd2,0x32,0x74,0x07,0x4e, + 0x22,0x57,0xd3,0x10,0x40,0x58,0x3b,0x8f,0x24,0x4d, + 0x2d,0x05,0x7a,0x01,0x95,0x0e,0x4a,0x8a,0xad,0x69, + 0x44,0x9f,0x0a,0xaa,0x29,0xb1,0xa1,0xf7,0x32,0xc5, + 0x93,0x3b,0x36,0xdf,0xf7,0x42,0x62,0x98,0x34,0x31, + 0x09,0x2d,0xa2,0xd1,0xe6,0x83,0xf6,0xb0,0x16,0xc3, + 0xdb,0xe4,0x3b,0x21,0x6f,0xc9,0xf4,0x58,0xe5,0x48, + 0x5c,0x5b,0x69,0x43,0x3f,0xa0,0x77,0x9d,0xf8,0x5e, + 0x9b,0xe9,0xbb,0x64,0x4a,0x9e,0x5a,0xe0,0xee,0xbd, + 0xfd,0xa6,0x09,0xa3,0xad,0xe2,0x30,0x8d,0xf1,0xb9, + 0xac,0x74,0xc3,0xd7,0x49,0x1b,0xc0,0x7d,0xfe,0x56, + 0x24,0xcc,0x6d,0x22,0x9d,0x26,0x23,0xde,0x8b,0x40, + 0xb4,0xa5,0x9b,0x4b,0xd1,0x86,0x54,0xd9,0x53,0xeb, + 0x42,0xaf,0x85,0x88,0x9a,0xe4,0x05,0xf5,0xf5,0xf5, + 0x55,0x7a,0x48,0xbe,0x5e,0xaf,0xa2,0xe7,0x9c,0x5a, + 0x1b,0xe6,0x7b,0x7f,0x5a,0x44,0x02,0x43,0x97,0x5b, + 0xc4,0x9f,0x3a,0x48,0x3b,0x28,0x79,0x33,0xc1,0x30, + 0x4d,0x2c,0xd2,0xd8,0xa8,0xba,0xc2,0x6f,0x0e,0xe8, + 0xed,0x54,0xcb,0xd6,0x40,0x78,0x6a,0xb1,0x11,0xcc, + 0xee,0x36,0xbe,0xf9,0x9e,0x9f,0xd6,0x66,0x0f,0xca, + 0xc9,0x74,0xb3,0x27,0xf3,0xb7,0xf3,0xf5,0xf7,0xc0, + 0x40,0x6d,0x48,0xa6,0x3a,0x65,0x53,0x4f,0xb8,0xf8, + 0xa3,0x77,0x4b,0x88,0x4f,0x1a,0xa3,0x26,0x79,0x8c, + 0xd4,0x4e,0x25,0xa5,0x64,0x13,0x83,0x26,0xd8,0xff, + 0xb8,0xb8,0xe7,0xd0,0x72,0x1a,0x15,0x56,0x63,0x5c, + 0x77,0x7f,0xa4,0x5a,0x7c,0x27,0xcc,0x06,0xf1,0x3e, + 0x9f,0x4e,0x64,0x4d,0x13,0x67,0x9d,0xa8,0x9f,0x0e, + 0xfb,0x69,0xcd,0x26,0xbe,0xe4,0xd4,0xbe,0xeb,0xcf, + 0x2c,0xb5,0xfb,0xd3,0xda,0x4d,0xad,0x2a,0x1a,0xa2, + 0x49,0x2d,0xd0,0x5b,0x5c,0x33,0x9d,0x23,0x49,0xe6, + 0x65,0xeb,0xde,0xbe,0x69,0x25,0x0b,0x4a,0xe7,0x44, + 0x36,0x0f,0x25,0x98,0x4a,0x52,0x9f,0xa8,0x07,0xa9, + 0x9b,0xe2,0xd6,0x8d,0x43,0xda,0x29,0x8e,0x3a,0xba, + 0x04,0xb9,0x54,0x10,0x5f,0x30,0x15,0xf2,0x2f,0xd7, + 0xd7,0x4c,0xbd,0xbb,0xc9,0x57,0x65,0x32,0x80,0x73, + 0x59,0xe7,0x34,0xa6,0x4d,0x22,0x8b,0x9f,0x78,0xa4, + 0xa4,0xcf,0xdc,0xb4,0x6e,0x74,0x71,0x92,0xc0,0xda, + 0x04,0x13,0x6e,0xa0,0xc9,0xed,0xd4,0xd7,0xb6,0x4a, + 0xd5,0x77,0x4b,0x24,0x5c,0xfd,0xfe,0x29,0x38,0x9a, + 0xe7,0x76,0x28,0xb9,0x53,0x76,0xbe,0x59,0x27,0x07, + 0xf8,0x25,0x88,0xda,0xa5,0x60,0xeb,0x88,0xfb,0xce, + 0x98,0xd3,0x11,0x5d,0xb7,0x7c,0x95,0x4d,0xe5,0x32, + 0x05,0x5b,0x45,0x5d,0x27,0xae,0x43,0x3b,0x28,0x8f, + 0x43,0x16,0x48,0x74,0x94,0x2a,0x5f,0x9a,0x80,0x69, + 0xfb,0x7a,0x0c,0xea,0xae,0xc2,0x26,0x25,0x68,0x82, + 0xbe,0x03,0x61,0xf2,0x4c,0x6d,0xa2,0xb0,0x8f,0xcf, + 0x86,0x13,0xa1,0x53,0x58,0x84,0x12,0x25,0xb3,0xe1, + 0x0d,0xe7,0x87,0xac,0x1d,0xb4,0xf5,0xeb,0xf6,0xcd, + 0x66,0x7f,0x13,0x6f,0x62,0xe2,0x97,0xa5,0x69,0xa9, + 0xe9,0xd0,0x17,0xaa,0x44,0x5c,0x2b,0x89,0x5b,0x93, + 0xc6,0xc8,0x27,0x95,0x5f,0x2a,0x7e,0x54,0x72,0xa5, + 0x6b,0x2a,0xa5,0xb8,0xea,0xe4,0x3e,0x68,0x5d,0x68, + 0x57,0xc0,0x3d,0xf7,0x85,0x04,0xc2,0x31,0xe8,0xe1, + 0xd9,0x08,0x5f,0x4e,0xe7,0x9f,0x1b,0xec,0xd9,0x90, + 0x90,0x5d,0x81,0xea,0x06,0x30,0x08,0x3d,0x4d,0x80, + 0x43,0xea,0xbe,0x28,0xca,0xab,0xd7,0x07,0x28,0xeb, + 0x71,0x6b,0x4b,0xe3,0xa0,0x5b,0x63,0xbf,0x27,0x05, + 0xd0,0x8d,0x83,0xf3,0xb6,0xcf,0x4f,0x1b,0xc2,0xf1, + 0x60,0x36,0xa6,0x75,0x8e,0x77,0xb0,0xb1,0x8b,0xf8, + 0x84,0xa7,0xf2,0x09,0xb9,0x2b,0x64,0xe0,0xa8,0xbb, + 0xa3,0x1b,0x54,0x85,0xee,0x12,0xd2,0x90,0xf4,0x60, + 0xa6,0x8a,0x37,0x4d,0x12,0x7c,0x5a,0x71,0x0c,0x90, + 0xfd,0x0f,0xe2,0xe2,0xae,0x8f,0x2a,0x35,0x0a,0xda, + 0x5b,0x45,0xef,0xd6,0x66,0xac,0x8d,0x73,0x73,0xff, + 0xd9,0x74,0x88,0xfd,0x0d,0x42,0x95,0x50,0x49,0xfd, + 0xbe,0xd4,0x56,0xa5,0x56,0x14,0x14,0x10,0xe7,0xeb, + 0xeb,0xab,0x68,0xcc,0xdd,0x91,0xbf,0x4d,0x1b,0xee, + 0xed,0xd9,0x0c,0x08,0x09,0x3d,0x37,0x4d,0x42,0x2a, + 0xb5,0xc7,0x5d,0x72,0x37,0x71,0x31,0x1c,0xba,0x35, + 0xf9,0x71,0x51,0x15,0x0e,0xef,0xf1,0x0c,0x08,0xdf, + 0x09,0xad,0xea,0x13,0xc4,0xdd,0x8e,0x26,0x2e,0xee, + 0xd0,0x9d,0xac,0x1c,0x28,0xae,0xc1,0x73,0x89,0xa8, + 0xce,0x94,0xdc,0x13,0xbf,0x92,0x3a,0x08,0xd3,0xa0, + 0x44,0x47,0xd1,0xb7,0x7c,0x0e,0xf3,0xee,0xce,0x46, + 0x37,0x66,0x13,0xc7,0x36,0x36,0x21,0xae,0xdd,0xed, + 0xe2,0x3b,0x09,0xf4,0x6d,0x8b,0xac,0x4d,0x4b,0xc8, + 0xa1,0x55,0xfa,0xee,0xfb,0x30,0xc4,0xdf,0xf8,0x5a, + 0x52,0x9b,0x2f,0x71,0x43,0x49,0x47,0xec,0x46,0x70, + 0x7a,0xb1,0x39,0xe9,0x65,0xe9,0x7d,0x38,0xca,0x83, + 0xde,0xaf,0x7b,0x16,0x6e,0xad,0xfc,0x5e,0x42,0xf3, + 0x3f,0xd3,0x2a,0x9b,0xc0,0x91,0xfa,0xd0,0x93,0xd0, + 0xd6,0x74,0xd8,0xb7,0xcf,0xfe,0x69,0xc1,0xa4,0x84, + 0x61,0x0a,0x6e,0xae,0x4d,0x40,0x87,0x1c,0x10,0x10, + 0x5d,0xd2,0xf2,0x38,0x4c,0xb5,0xff,0x3e,0xd9,0x01, + 0x10,0xe4,0x3a,0xb5,0x5b,0x86,0x40,0xf5,0x96,0x10, + 0xa4,0x9f,0xa5,0x64,0x4d,0x33,0x79,0x82,0x22,0xa9, + 0x85,0x3a,0xb9,0x1e,0x7f,0x62,0x62,0x28,0x87,0xc7, + 0x63,0x3d,0xd0,0xef,0x93,0x9b,0x3a,0xb4,0x6b,0xdf, + 0x0e,0x7f,0x7d,0x96,0xe6,0x80,0xa6,0xeb,0x78,0xfb, + 0x73,0x39,0xec,0xde,0xda,0x72,0x7a,0x90,0xd7,0x3f, + 0xff,0xb8,0x77,0x62,0x05,0x09,0x05,0x69,0xab,0x54, + 0x20,0xb8,0xe4,0x26,0x70,0x25,0x6a,0x3b,0x11,0xa7, + 0x53,0x42,0x89,0x63,0xd6,0x39,0x73,0x49,0x8c,0xce, + 0xad,0x25,0xe0,0x1b,0x9d,0xcd,0xb4,0xce,0xdd,0xe6, + 0xa3,0xa4,0x93,0xda,0x7d,0x1a,0x5c,0x89,0xe8,0xbc, + 0x99,0xa0,0xd4,0x6a,0x95,0xa6,0xc9,0xa6,0xf6,0xc0, + 0x86,0xa3,0x94,0x92,0xc3,0x50,0x9c,0x9c,0x49,0xbd, + 0x79,0x48,0x2a,0x5d,0x7b,0xc3,0xb5,0x1b,0x8f,0xee, + 0x4f,0xb2,0x47,0x51,0xda,0x81,0x4b,0x62,0x7a,0x52, + 0xaa,0xc5,0x8f,0x1e,0xc0,0x0b,0x27,0xf8,0xb3,0x29, + 0x10,0x29,0x11,0x9c,0x74,0xa7,0x36,0x00,0x84,0x73, + 0x4f,0x20,0x21,0xce,0x6d,0x72,0xf3,0x89,0xa9,0x68, + 0x3a,0xaf,0xa7,0x18,0x9f,0x62,0x7b,0x6a,0x61,0x26, + 0xd4,0x31,0x79,0x7e,0x3a,0xbf,0x4d,0xa2,0xd5,0xbc, + 0xa6,0x17,0xeb,0x2a,0x4f,0x85,0x6c,0xb5,0x7a,0xa3, + 0x89,0x91,0x8d,0x72,0xf3,0x04,0x97,0xbb,0x17,0x47, + 0x0e,0xcd,0x41,0x4a,0xfd,0xa4,0xde,0xf4,0xa6,0x35, + 0x36,0x8d,0x8b,0x4e,0x9e,0x36,0x53,0x76,0xad,0x0b, + 0x5a,0xe0,0xbc,0x33,0x59,0x4f,0x4c,0x9a,0x22,0x5b, + 0x42,0xb0,0x5b,0x38,0x6e,0x04,0xd6,0xe9,0x42,0x39, + 0x15,0x57,0x25,0x4b,0x4e,0x93,0x84,0x1b,0xdf,0xad, + 0x29,0x28,0xa8,0xa1,0x23,0x09,0xc3,0xa5,0xb5,0x90, + 0x44,0xcd,0x88,0xdc,0x98,0x0e,0x8c,0xa9,0xd7,0x4d, + 0x01,0x71,0x12,0x78,0xdb,0x90,0x69,0x41,0xb5,0xdb, + 0xa2,0x2b,0x86,0x0c,0x7b,0x12,0x6a,0x38,0xf9,0x97, + 0xa5,0xfd,0x30,0x79,0x18,0x2d,0xbf,0xe7,0x4c,0x68, + 0xdf,0x94,0x68,0xb8,0x56,0x04,0xe9,0x09,0x75,0xfd, + 0x19,0xf3,0x3e,0x4f,0xa0,0x06,0x9c,0xa1,0xf5,0xe7, + 0xf6,0xf1,0x49,0x6d,0x54,0xfd,0xbc,0x5b,0xf4,0x91, + 0x92,0xa8,0x49,0x9a,0x82,0x6c,0x88,0x7a,0x82,0xe9, + 0x0e,0xe6,0xff,0xe8,0xe4,0x90,0x23,0xeb,0xbb,0x42, + 0x75,0x42,0xa8,0x88,0x9b,0x94,0xb4,0x8b,0x88,0xb6, + 0x40,0xf1,0x2e,0x91,0xdc,0xdd,0xa8,0xb6,0x26,0x7f, + 0x1b,0x53,0xe3,0x4f,0x7e,0x36,0xe9,0x66,0x39,0xbe, + 0xaf,0xb6,0xfa,0x9c,0x29,0xaa,0x5b,0xbf,0x44,0xe6, + 0x4f,0xe7,0x89,0x33,0x01,0xdf,0xca,0x19,0x50,0x8b, + 0xf3,0x13,0x72,0xb6,0x9d,0x02,0x4d,0x9b,0x8f,0xfe, + 0x71,0x0f,0xc9,0x8d,0xb7,0xa7,0xc0,0x95,0xda,0x21, + 0xe6,0x25,0x9d,0xc9,0x91,0x9c,0x26,0x66,0x1c,0xc7, + 0x82,0x60,0xbb,0x6d,0x1f,0x55,0xb3,0xca,0xcd,0x21, + 0xbd,0x81,0xf9,0xdc,0x88,0xf6,0xb6,0x4f,0x9b,0x2a, + 0xa7,0x81,0x00,0x79,0x0c,0x72,0x77,0x48,0x21,0x3a, + 0xc1,0xe3,0x4e,0x6d,0xd9,0xbd,0xe3,0x9e,0x04,0x91, + 0xf9,0xe9,0x20,0x7a,0x78,0x36,0xad,0xc8,0x29,0x20, + 0xeb,0x94,0x48,0x0a,0x4e,0x6e,0x2a,0xc9,0x71,0x86, + 0x28,0xc8,0xaa,0x10,0x61,0x0a,0xb4,0x69,0x84,0xd8, + 0x69,0xa7,0xa4,0xd6,0x88,0x16,0x05,0x7d,0x7a,0x91, + 0x84,0xea,0x1c,0xb7,0xc2,0xb5,0x75,0x36,0xfc,0xb4, + 0xa9,0x00,0xda,0xb4,0xcc,0x75,0x0a,0x67,0x9a,0x5c, + 0x4b,0xc9,0xb3,0x4a,0x27,0x6c,0x5b,0x23,0x8e,0x03, + 0x31,0x4c,0x2b,0xae,0xda,0x57,0x29,0x76,0x4c,0x28, + 0xcf,0xc6,0x66,0x63,0x21,0x0f,0xf0,0xe0,0x5c,0x2c, + 0xdb,0x4e,0xcf,0x6a,0x3a,0x4c,0xcf,0x6e,0x0e,0xba, + 0x4f,0x7f,0x46,0xf7,0x48,0x92,0xed,0xa0,0xe9,0x30, + 0x37,0xe8,0xe2,0x9e,0x5f,0xd2,0xfb,0x71,0xc5,0x1c, + 0x71,0x6e,0x3e,0x51,0x3c,0x56,0x1b,0x1f,0x87,0xf0, + 0x6e,0x69,0x09,0x6e,0x40,0x45,0xcf,0xed,0x49,0xb5, + 0x3a,0x25,0x68,0x93,0x54,0x83,0xb6,0xa6,0x26,0x23, + 0xe2,0xa9,0xbd,0xbb,0x91,0x22,0xd8,0x0c,0x8f,0xbc, + 0x68,0x3c,0x71,0xa3,0x2b,0x93,0xc6,0xcc,0xc9,0x7c, + 0xd2,0x49,0xc0,0xcb,0x45,0x9f,0x0d,0x0a,0x65,0x5a, + 0x20,0x0f,0xf2,0x2b,0xe9,0x55,0x80,0x0e,0xcf,0xa1, + 0x40,0xb1,0xd4,0x3a,0x42,0xc4,0x4a,0xef,0x75,0xaa, + 0x5a,0xd2,0x78,0x6c,0xb0,0x82,0x38,0x13,0x1a,0x55, + 0x55,0xd7,0x9f,0x3f,0x7f,0x56,0xa3,0xb2,0x49,0xae, + 0x3f,0xad,0x0d,0xf7,0xfe,0xb6,0x41,0x41,0x95,0xc0, + 0xfb,0xe1,0x4c,0xa3,0xce,0x13,0x67,0x40,0xa1,0xf0, + 0x4d,0x9b,0xc6,0xac,0xb9,0xe3,0xde,0x4d,0x55,0x1d, + 0xa7,0x3d,0x74,0x99,0x31,0xed,0x85,0x8a,0xf8,0x09, + 0xd3,0x0d,0x56,0x45,0x58,0xaf,0x2f,0x20,0x60,0x47, + 0xd7,0x83,0x49,0xc0,0xce,0x74,0x08,0x29,0xba,0xe1, + 0xe0,0xf6,0x34,0x62,0x3b,0x0d,0x45,0xb8,0x0a,0xd6, + 0xd9,0xdf,0x98,0xef,0x3a,0xae,0x4d,0x91,0x84,0xdc, + 0xa6,0xb1,0xe0,0x40,0xcc,0x7f,0xb4,0x72,0x9c,0x47, + 0x92,0xdb,0x07,0xfd,0x30,0x0b,0x7c,0x8c,0xa3,0x28, + 0x87,0x8a,0x3e,0x26,0x85,0x60,0x3d,0x6c,0xf4,0x3d, + 0xa8,0x15,0x10,0x69,0xd6,0xa4,0xd6,0x10,0x89,0x89, + 0x3a,0x42,0xfc,0x66,0xa2,0x4b,0xcf,0x14,0xd5,0x74, + 0x73,0xf1,0x83,0x26,0x92,0x83,0xec,0xc5,0x3a,0xfe, + 0xba,0xf3,0x43,0xf7,0x5c,0x8f,0x1d,0xdf,0xd7,0x7b, + 0x4c,0x1b,0xe7,0x90,0x67,0x22,0x15,0x0c,0x09,0xa1, + 0x22,0xa7,0x02,0xb7,0x6f,0x37,0x04,0x7c,0x57,0x70, + 0x2d,0x90,0xea,0x43,0x48,0xe7,0xd4,0xd1,0xf9,0x1b, + 0x6f,0xb2,0x94,0x47,0x0c,0x4a,0xe8,0x27,0x99,0x03, + 0xff,0x8c,0xc1,0x4f,0x6d,0x8f,0x0d,0x7c,0xbf,0xa9, + 0xbe,0xa7,0x3e,0x2b,0xa1,0x0b,0x24,0x14,0x48,0x63, + 0xf7,0xd3,0x75,0xa5,0xf6,0x10,0xdd,0x77,0xe2,0x78, + 0xb8,0xe9,0x99,0x64,0x30,0x4a,0x3d,0x69,0xfd,0x2c, + 0x42,0x8d,0x74,0xf1,0x6d,0x94,0x48,0x1d,0x19,0x8c, + 0xde,0x2f,0x59,0x8f,0x10,0x12,0xd3,0x9f,0x45,0xa8, + 0x8a,0x1d,0xcf,0xc4,0x3a,0xca,0x27,0x1f,0xaa,0x64, + 0x72,0x37,0x99,0x0f,0x3a,0x1e,0x82,0x9a,0x9d,0x6e, + 0x94,0x73,0x93,0x87,0x5d,0xb2,0x92,0x71,0x84,0xe2, + 0x8d,0xa2,0xf4,0x84,0xca,0x0e,0xc9,0x28,0xee,0x17, + 0xf7,0x7c,0xbb,0xdc,0xc1,0x86,0x07,0xa3,0xd2,0x10, + 0xc9,0xe5,0x3d,0xf9,0x59,0xd1,0x50,0x44,0xe2,0xa7, + 0x50,0xd2,0xbf,0x40,0x30,0xce,0xb2,0x95,0x1d,0x7f, + 0xce,0xd9,0x8a,0x7c,0xd2,0xfe,0x23,0x65,0xdb,0x84, + 0x24,0x06,0x9e,0x97,0x3b,0x38,0x4f,0x42,0x9e,0xa6, + 0xf6,0x6b,0x47,0x1d,0xa6,0xa9,0xdd,0x80,0x6a,0x1c, + 0x13,0x5b,0xce,0x34,0x5a,0xad,0x6d,0xb5,0xcd,0xf9, + 0xb1,0x51,0x9d,0x77,0xd3,0x43,0x13,0xb2,0xbe,0x19, + 0xa6,0xd9,0x1c,0xea,0x93,0xda,0xfb,0x56,0x88,0x31, + 0x4d,0x96,0x12,0xf9,0x7c,0x83,0xc2,0xde,0xeb,0xc5, + 0x99,0xfc,0xa6,0xc9,0xb1,0xd0,0xe1,0x39,0x29,0x59, + 0x9f,0x78,0x77,0x10,0x73,0x0f,0x4d,0xac,0x4f,0x9a, + 0x40,0x44,0x29,0x78,0x51,0x06,0xba,0x7c,0xb1,0x27, + 0xf5,0x94,0x09,0xae,0xd2,0x84,0x23,0xc1,0xc4,0xff, + 0x91,0x4c,0x32,0xdd,0x8f,0x83,0x6b,0x93,0x2f,0x50, + 0xfa,0xee,0x24,0xe0,0x37,0xf4,0x27,0xdf,0x10,0x8f, + 0x5e,0x49,0x10,0x0a,0x35,0xf1,0x62,0x34,0xd8,0xc3, + 0xb4,0x13,0xa2,0x5b,0x1b,0xc1,0x34,0x82,0x32,0x27, + 0xd4,0x67,0xf3,0xcf,0xc6,0xe3,0x8d,0x12,0xc1,0xce, + 0x79,0x48,0xfc,0xa8,0x61,0x0d,0x9d,0x04,0xeb,0x87, + 0x67,0xfd,0xf3,0x3d,0xbf,0x7e,0xfd,0xfa,0xf1,0xc9, + 0x9a,0x90,0x36,0xf2,0xd6,0x72,0xe2,0x85,0xba,0xa7, + 0x92,0x9c,0x81,0x26,0xd3,0x6a,0x02,0x1a,0x0e,0xc1, + 0x33,0xb5,0x31,0xcd,0xbb,0x3d,0xae,0x0a,0x1c,0x94, + 0x88,0xd7,0x89,0xab,0x79,0x6e,0x76,0xc4,0x7e,0xe1, + 0x15,0x77,0xa8,0xad,0x95,0x92,0x1f,0x42,0x07,0xd2, + 0x34,0x55,0x22,0xf6,0x07,0xfe,0xda,0x49,0x8a,0xdb, + 0x49,0x69,0x7c,0x6a,0xa3,0x11,0x7d,0x80,0xda,0x81, + 0x44,0x38,0x9f,0xde,0xcd,0xe4,0xdd,0x96,0x8c,0xa1, + 0x35,0xb1,0x36,0x95,0xfe,0xd9,0xf0,0x88,0x28,0x31, + 0x9e,0x74,0x6d,0x52,0x11,0xe4,0x92,0x05,0x87,0x4a, + 0x6e,0x29,0x0b,0xa9,0xf8,0x57,0xc4,0x76,0x42,0x35, + 0xd3,0xcf,0xc0,0x14,0x20,0x22,0xa0,0x32,0xa4,0x33, + 0xa2,0xc2,0xa9,0xc3,0xa3,0x7b,0xc5,0x51,0x00,0x26, + 0x8e,0x96,0xfe,0x3c,0xf1,0x8f,0xa7,0xb5,0x46,0x9d, + 0xae,0x97,0x83,0xb3,0x40,0xd7,0x23,0xb6,0x1d,0x28, + 0xd1,0xd8,0xb4,0x2a,0xd2,0xe8,0x1a,0x55,0xfe,0x89, + 0x75,0xde,0x0d,0x4e,0x5d,0xd6,0x37,0x71,0x95,0x92, + 0xb5,0x03,0x28,0x66,0x9e,0x4d,0x9f,0x7e,0x93,0xdc, + 0xf5,0xbe,0x34,0xb9,0x13,0x53,0xa2,0xf5,0x89,0x69, + 0xde,0xb4,0x29,0xf5,0x20,0xa6,0xd6,0x62,0x4a,0x4e, + 0x53,0x10,0xda,0x4c,0x13,0x50,0xa2,0xad,0xd5,0xdb, + 0x76,0x32,0x2e,0xbd,0xa3,0x64,0x5c,0xaa,0xc4,0x69, + 0x52,0xce,0x4e,0x5c,0x9c,0x9e,0x94,0x38,0x12,0x72, + 0xea,0x5b,0x13,0xe2,0xd1,0x9f,0xd7,0x9d,0x3c,0x0d, + 0x15,0xd1,0x59,0x1a,0x45,0xbe,0xb5,0xb7,0x36,0xfa, + 0x57,0xed,0x80,0x3a,0xee,0x3a,0x53,0x02,0x7a,0x3f, + 0x63,0xa7,0x87,0xd3,0x93,0xac,0x3b,0xd1,0xda,0xc2, + 0xe7,0xaa,0x06,0x3d,0x25,0x0b,0xce,0x6f,0x89,0x63, + 0xeb,0x89,0x07,0x40,0x28,0x5c,0x4e,0x3a,0xf8,0xe1, + 0x59,0x51,0x7c,0x39,0xc0,0x3f,0xa1,0x49,0xa0,0x93, + 0x10,0x54,0x8a,0x4d,0xd4,0xca,0xef,0xcf,0x6c,0x4a, + 0xc6,0x7a,0x5b,0xcf,0xac,0xab,0xe3,0xd6,0xa2,0x6b, + 0xa7,0x99,0x67,0x74,0x36,0x1d,0x8a,0xe9,0x8c,0x4a, + 0xc6,0xd0,0x5b,0x2e,0xd0,0x84,0x42,0x6d,0x5a,0x8b, + 0x2e,0x99,0x4a,0x06,0xcf,0x6e,0x00,0xc9,0x59,0x29, + 0x49,0x2c,0x5b,0x4d,0x12,0x6e,0x65,0x04,0xdc,0x5e, + 0x9e,0xae,0x3f,0x51,0x37,0xa8,0x15,0xe9,0xb4,0x89, + 0x92,0xae,0x9f,0x53,0xb4,0x7e,0x14,0x8a,0x69,0x54, + 0x73,0x53,0x31,0xeb,0xcd,0x07,0x84,0xe2,0x68,0x75, + 0xea,0x2a,0xd8,0xcd,0x68,0x67,0xd2,0xb9,0xd8,0x12, + 0xa6,0x1c,0xab,0x5f,0xcd,0x23,0x3f,0x41,0xa0,0xdc, + 0xcb,0xdd,0x28,0x60,0x53,0x9f,0x56,0x48,0x97,0x07, + 0xbc,0x8b,0xd6,0x92,0xf1,0x0e,0xad,0xea,0x9c,0x95, + 0x8d,0x3c,0x7d,0x6a,0x0b,0xa4,0x0a,0x20,0x8d,0x2a, + 0xa6,0x60,0x9b,0xb2,0xf7,0xc9,0x33,0xc8,0xf1,0x88, + 0x26,0x53,0xd5,0xa9,0xfd,0x35,0xf9,0x2d,0xb9,0xea, + 0x17,0xda,0x58,0x67,0x83,0x0a,0x6e,0x0e,0x79,0xb9, + 0x86,0x93,0xda,0x31,0x4e,0xad,0x36,0x55,0xf2,0xc0, + 0xc9,0x5a,0xa9,0x42,0xdf,0xcb,0xb6,0xf3,0x73,0x36, + 0x84,0x50,0x39,0x14,0xef,0xdf,0x3d,0x84,0xd6,0x4c, + 0xd5,0x2f,0xb5,0x83,0x92,0x65,0xc6,0x20,0x44,0x7a, + 0x86,0x43,0xf6,0x10,0x2a,0xd2,0x9f,0x83,0x81,0xef, + 0x8f,0xf2,0xf4,0x88,0x87,0xe2,0xfe,0x5d,0x93,0xc8, + 0xa9,0x4a,0x27,0x8f,0x44,0x22,0xe2,0x27,0x2e,0x17, + 0x3c,0xd7,0x23,0x08,0xa4,0x4e,0x62,0xda,0xb8,0x39, + 0x1d,0xbe,0x1b,0x62,0xf5,0xc6,0x2a,0x02,0x62,0xcf, + 0x31,0xcf,0x09,0x15,0x93,0xa7,0xd1,0x6f,0x97,0x28, + 0xd2,0x7a,0x21,0x25,0xe6,0x29,0x81,0x23,0xca,0x44, + 0xe7,0xd4,0x26,0x1a,0x45,0xb2,0x29,0x49,0xcf,0x2e, + 0xc5,0x7c,0xe2,0x14,0xe9,0xef,0xe9,0x24,0xdd,0x02, + 0xc1,0xb5,0x52,0x20,0x69,0x82,0x32,0xa1,0x53,0xe7, + 0x9c,0x7f,0x48,0xd0,0x1b,0x92,0x6f,0xf2,0x7b,0xea, + 0x88,0x0b,0x8d,0xd1,0x6d,0xcc,0x11,0x95,0x5c,0xa6, + 0x9f,0x35,0xf5,0xd3,0xdd,0xe8,0xa9,0x3e,0x88,0x4e, + 0x08,0x76,0xc6,0xa0,0x7d,0x11,0x6e,0x3c,0x69,0x88, + 0x00,0x4e,0x42,0x6c,0x4b,0xbf,0xab,0xcd,0xcf,0x45, + 0xaf,0xa6,0xa9,0x97,0xbc,0x80,0x64,0xcf,0x94,0x89, + 0xab,0x20,0x98,0x26,0x2b,0xae,0xb5,0x42,0x30,0xb7, + 0x7e,0x5e,0x6a,0x5f,0x0d,0x13,0x48,0x67,0x83,0x08, + 0x11,0x49,0x91,0x20,0xf1,0x0d,0xdc,0x6a,0x02,0xd7, + 0x99,0xf8,0x3b,0xa9,0xa7,0x0f,0x49,0xf3,0x19,0xf6, + 0xd5,0x99,0xd4,0x83,0x6f,0xf4,0x8c,0x82,0xb5,0x93, + 0xd1,0x97,0x36,0xed,0xe3,0x3e,0x1c,0x71,0xd5,0xa8, + 0x2d,0x9f,0xfe,0xcf,0x77,0x5b,0xee,0x34,0xd5,0xe8, + 0xd3,0x90,0x9e,0xc8,0x3f,0x9b,0xf8,0x49,0xed,0xf9, + 0x9f,0xd4,0x12,0xd0,0xc3,0x0f,0x90,0xad,0x11,0x1d, + 0xfa,0x54,0x74,0x2f,0xb5,0xc9,0xdd,0x38,0xf2,0x56, + 0x4f,0x6b,0x53,0x80,0x4c,0x49,0x82,0x26,0xbf,0x1b, + 0xc3,0x4b,0xa7,0xa3,0x96,0xae,0x43,0xb5,0x9b,0x88, + 0xe0,0x9b,0x50,0xfa,0x4d,0xc7,0x61,0x83,0x04,0x4f, + 0xc5,0xcf,0x24,0x1d,0xe1,0xce,0x43,0x45,0x86,0x5d, + 0xd2,0xeb,0xee,0x89,0x7c,0xb2,0xfa,0x7a,0xf8,0xfe, + 0x1c,0x9b,0xac,0x4f,0x09,0x8a,0xaa,0x56,0x4f,0x46, + 0xdf,0x13,0xa7,0x68,0x83,0xea,0xa7,0x5c,0x22,0x91, + 0xdc,0x29,0x41,0x4a,0x89,0xf0,0xb0,0xd7,0x1e,0xc5, + 0xdf,0x2b,0x55,0x15,0x4a,0x5e,0x4b,0x63,0x86,0x0e, + 0x12,0xdd,0x6c,0x1a,0xfd,0x87,0x16,0xc9,0x25,0xb6, + 0x00,0xe4,0xa8,0x0e,0x9b,0xe1,0x24,0xeb,0x08,0x0d, + 0xf6,0x49,0xdf,0x60,0x38,0x58,0x26,0x7d,0x96,0x33, + 0x1c,0xc8,0xa3,0xfa,0xeb,0x04,0xcd,0x13,0x7f,0xc0, + 0xf9,0xa3,0x40,0x42,0x13,0xfb,0xff,0x9b,0xaa,0x47, + 0x47,0xaf,0xb7,0x0a,0xe0,0x13,0xaa,0x63,0xb8,0x3f, + 0x88,0x50,0x98,0x8a,0xe0,0x4c,0x08,0xe3,0x02,0x31, + 0x3a,0x69,0x6d,0xa6,0xe7,0x69,0x36,0xea,0x01,0xd4, + 0xe5,0xf1,0xfd,0xfd,0x70,0xf9,0xfe,0x0e,0x74,0x25, + 0xbf,0x2d,0x09,0x86,0x16,0xd7,0xe3,0xc0,0xdf,0x26, + 0x12,0x53,0x4b,0x80,0x48,0xac,0xc9,0x8f,0x29,0x11, + 0xbe,0x37,0xc4,0x46,0x12,0xfd,0x4c,0xc5,0x9d,0xfa, + 0x22,0x91,0x7f,0x50,0x6a,0x17,0x98,0x8a,0xf9,0x04, + 0xe4,0xf9,0x04,0xe2,0xea,0xa1,0xe1,0x03,0x68,0xff, + 0xda,0x3f,0x1f,0xf6,0xde,0x71,0xfb,0x5e,0x8d,0x3f, + 0x49,0xbe,0x83,0x24,0x45,0x9c,0x14,0x04,0xb5,0x5a, + 0x54,0x31,0x9b,0x12,0xcf,0x4e,0xc8,0x1d,0xd0,0x03, + 0xc7,0x65,0x79,0xf0,0x84,0xdc,0x84,0x60,0xea,0xa3, + 0x6e,0xd4,0xf4,0x27,0xa9,0x0a,0x47,0x1d,0x48,0x34, + 0x86,0xe4,0x09,0x46,0x49,0x92,0x8b,0x8f,0x93,0x86, + 0x0f,0x19,0x20,0x53,0xbc,0x9a,0xac,0xa3,0x12,0x72, + 0xb4,0x89,0x01,0xee,0x9c,0xba,0xf9,0x8a,0x09,0x28, + 0x99,0xbe,0xc7,0xdd,0x9b,0xbb,0xef,0x97,0xf3,0xcb, + 0x98,0xdc,0xb9,0x53,0xbb,0xc2,0x65,0x99,0x29,0xbb, + 0x24,0x35,0xcb,0x65,0xbb,0xe1,0x7c,0xc2,0x53,0x9a, + 0x5a,0x0d,0xf4,0xfb,0xc9,0xff,0x6c,0x72,0x33,0x4e, + 0x44,0xda,0x74,0xaf,0x09,0xc2,0x4b,0xa8,0x84,0x39, + 0x7c,0xce,0x96,0xd8,0x9e,0xee,0xcb,0x5d,0x83,0xea, + 0xb3,0x88,0x40,0xdc,0x9a,0xbc,0xad,0x9f,0x3f,0x69, + 0x2b,0x51,0xd2,0x9b,0x5a,0x59,0xca,0xe9,0x71,0x81, + 0x30,0x55,0x25,0x14,0xe4,0x28,0xa9,0xa7,0x51,0x79, + 0xe7,0x41,0x35,0x3d,0x93,0x29,0xd1,0xa7,0x35,0xb1, + 0xd0,0xcc,0x38,0x4e,0xd6,0x3e,0xb4,0x27,0x0f,0x11, + 0x33,0x37,0xa2,0x87,0xb4,0x9f,0x88,0xdf,0x41,0x95, + 0xed,0xa0,0xef,0x74,0xa0,0x95,0x41,0xfb,0xe8,0x28, + 0xda,0x0c,0xcf,0xd9,0x49,0x76,0xd8,0x75,0xb4,0x59, + 0x2f,0xd4,0xda,0x95,0xef,0x18,0xdb,0x2f,0x13,0x7a, + 0x1c,0xd4,0xb2,0x23,0x8a,0xee,0xf6,0x14,0x99,0xb0, + 0xa6,0x03,0x94,0x04,0x41,0x37,0x53,0x5e,0xe9,0xf9, + 0x6f,0xf8,0x31,0xd3,0x94,0x1b,0xc5,0xd0,0x69,0x48, + 0xc0,0x3c,0xc3,0x33,0xfd,0xde,0xa6,0x35,0xa3,0xa8, + 0xb8,0xb6,0xb1,0xdc,0x50,0xca,0xa4,0x41,0x36,0x25, + 0x0f,0x94,0xa0,0xc0,0x1e,0xb3,0xa6,0xa5,0x29,0x3e, + 0x51,0xc2,0xe4,0xd6,0x47,0x1a,0x9a,0xda,0x70,0x90, + 0x26,0xfe,0xad,0x6b,0x05,0xbf,0x54,0x0c,0x6a,0x7a, + 0x58,0x9b,0xcc,0xce,0xc1,0x85,0x6e,0x6c,0x3c,0x6d, + 0xee,0x24,0x9d,0xbd,0xcd,0x26,0x69,0xa3,0xa7,0x0d, + 0x44,0x1b,0x9c,0x12,0xa1,0x61,0xba,0xc2,0x6e,0xce, + 0xc9,0x8a,0x62,0x22,0x5f,0xa7,0x43,0x20,0xe9,0xa6, + 0x68,0x85,0x95,0x88,0xc6,0x53,0x4b,0xa6,0xf7,0xf5, + 0x09,0x4a,0x25,0x19,0x84,0xa9,0x2f,0xee,0x90,0x96, + 0xae,0x3e,0x9b,0x0e,0xde,0x7e,0x50,0x6f,0x44,0x3d, + 0x03,0x04,0x4e,0x2d,0x80,0xe3,0x36,0x32,0x25,0x07, + 0x7a,0xc0,0x91,0x67,0x9b,0x43,0x25,0x52,0x90,0xb9, + 0x02,0xd1,0xf8,0x7e,0xc7,0x4e,0xdb,0xcb,0x24,0x6e, + 0x67,0x52,0x97,0x36,0x3c,0x96,0x37,0x3b,0x02,0x87, + 0xe2,0xa6,0x24,0x4e,0xab,0x32,0x77,0x40,0x6f,0xda, + 0xcc,0x9a,0x2c,0x28,0xea,0xb3,0x68,0xbb,0x8f,0xc2, + 0x94,0x4e,0x07,0x2a,0xa1,0x34,0x50,0x14,0x1d,0x57, + 0x08,0x91,0x26,0x51,0x6a,0xcb,0x74,0x25,0xe6,0x25, + 0x2a,0x8c,0xfa,0x49,0xa0,0xe9,0x32,0x26,0x0d,0x1a, + 0x03,0xd2,0xa4,0x2a,0xb5,0x35,0xa8,0x75,0xb2,0x89, + 0xa9,0x93,0x01,0xad,0x56,0xfb,0x09,0xd1,0x20,0xb1, + 0x56,0xd7,0xf2,0xdc,0x20,0x3f,0x9b,0x73,0xcb,0x28, + 0xd3,0x63,0x91,0xe7,0x12,0xc6,0x8d,0x6f,0x56,0x48, + 0x16,0x4e,0x1a,0xc2,0x20,0x6a,0xc3,0x94,0xb0,0x90, + 0x91,0x6b,0x88,0x4f,0x0f,0xa0,0x44,0x5b,0x5e,0xe9, + 0xb9,0x50,0xc7,0x87,0xd0,0x6d,0x8a,0x1b,0x2f,0xd7, + 0x1e,0x49,0x5c,0x0b,0xb3,0xa8,0xce,0x04,0x1d,0x4f, + 0x49,0x13,0x91,0x7b,0x93,0x17,0xd6,0x86,0x69,0x9e, + 0xfa,0x82,0x34,0xc6,0x9a,0x16,0x91,0x8e,0x24,0xa7, + 0xea,0x58,0xdb,0x79,0xee,0x85,0x90,0xd8,0x9b,0x5b, + 0x7c,0x7d,0xc4,0x7b,0xab,0xd0,0x4a,0xbc,0x01,0x5a, + 0xc0,0x6e,0xf2,0xc6,0x8d,0x50,0x52,0xb2,0xe0,0x0e, + 0x17,0x0a,0xf6,0x49,0x86,0x20,0xf5,0xcb,0x5d,0x42, + 0x42,0xe3,0xf9,0xe6,0x80,0x3e,0x93,0xf5,0x82,0x56, + 0x51,0x89,0x78,0x6b,0x38,0x64,0x0f,0xdb,0x84,0x6f, + 0x94,0x2c,0x69,0xca,0x1c,0x17,0xe8,0x52,0xc5,0xe5, + 0xee,0x7d,0xe2,0x71,0xa4,0x77,0x4e,0x8e,0xef,0x74, + 0x50,0xb5,0xb5,0xe1,0x6c,0x5a,0xc6,0xc0,0x43,0x87, + 0xec,0x34,0x09,0x47,0x13,0x6b,0xc9,0xda,0x24,0xe5, + 0x05,0x84,0x08,0x68,0x8b,0x88,0x82,0x79,0xe2,0xdf, + 0xd1,0x84,0x53,0x4a,0xca,0xb4,0x65,0x3b,0xb5,0xdc, + 0xcc,0xf7,0x93,0x18,0xe4,0xd9,0x56,0xfe,0x21,0xe9, + 0x19,0x5b,0x46,0xba,0xcf,0x9c,0x2d,0x87,0x14,0x2f, + 0x67,0x83,0xdc,0x26,0xe5,0x6b,0xc7,0x4d,0x75,0xc9, + 0x8f,0x69,0xe9,0x5a,0x34,0x36,0xbd,0xcf,0x8d,0xdf, + 0x5a,0x1a,0x42,0x71,0x43,0x25,0xe9,0x20,0x5f,0xb6, + 0x5d,0x11,0x01,0xa3,0x35,0xae,0xf1,0xc9,0x15,0xf9, + 0x13,0xbf,0x4a,0xa5,0x09,0x16,0x85,0xfb,0x49,0xad, + 0xbb,0xc5,0x50,0xcb,0xa1,0x9f,0xdd,0xbc,0x17,0x2a, + 0xa2,0x5e,0x74,0xd8,0x4c,0x46,0x77,0x9b,0xbe,0x38, + 0xc1,0xf2,0xd3,0x18,0xdc,0x34,0xbe,0x9d,0x46,0x4d, + 0xa9,0x0d,0x65,0xa6,0x61,0x1e,0xfd,0xea,0x6d,0x15, + 0xe6,0x5e,0x1c,0xf8,0xac,0xd8,0xbe,0xbb,0xbe,0x40, + 0x27,0x84,0x98,0x0e,0xe6,0xc4,0x03,0x48,0xaa,0xaa, + 0x9b,0x76,0xcb,0x06,0x4d,0x0b,0xb6,0x23,0xe3,0xf3, + 0x4a,0x09,0xdb,0x04,0x15,0x5f,0x46,0x0d,0x37,0xad, + 0xb1,0xa9,0xca,0x51,0x2e,0x81,0x79,0x5e,0x56,0x97, + 0xc5,0x25,0x34,0x29,0x80,0xf7,0xa9,0x9e,0xd4,0x6e, + 0x85,0x04,0xec,0x6c,0x92,0xf3,0x90,0xa4,0x9d,0x84, + 0x70,0x48,0x80,0x39,0xdb,0x77,0xd7,0xd6,0xed,0x0f, + 0x81,0x39,0xe8,0xea,0x44,0xd4,0x34,0x21,0xbe,0xb0, + 0xa7,0xfb,0x84,0x59,0x4c,0xa8,0x26,0x2e,0xd7,0x70, + 0x98,0x1f,0xd2,0x93,0xd2,0x04,0xc7,0x25,0xb1,0xca, + 0x85,0x21,0xeb,0x8e,0x0d,0xc9,0xbf,0x27,0xab,0x9b, + 0x56,0x68,0xf2,0x3f,0xa2,0xfd,0xec,0x2a,0xbb,0x81, + 0x77,0x71,0xb6,0xb1,0xd2,0x69,0x3f,0xb9,0x6b,0xd2, + 0xf5,0xee,0x0a,0x97,0xfb,0x0f,0xd2,0x44,0x6c,0xdb, + 0xc7,0x27,0xec,0xfb,0x91,0x93,0x93,0xb4,0x90,0x02, + 0x4a,0x7e,0x20,0x51,0x8f,0x08,0xfb,0x80,0x94,0xdb, + 0x64,0x80,0xda,0xc7,0x7f,0x13,0x8b,0xd3,0xf7,0xa6, + 0x42,0x70,0x43,0x52,0x4e,0xe8,0x6e,0x12,0x00,0x76, + 0xe7,0x4c,0x2a,0x38,0x68,0xcd,0x21,0x1f,0x2a,0xd9, + 0x59,0x24,0x7e,0xcf,0x46,0x2d,0x12,0x02,0x17,0xf2, + 0x27,0xc8,0x59,0x5c,0xaf,0x2b,0x8d,0x86,0x52,0x35, + 0x0a,0xc6,0x74,0x36,0xf1,0xa0,0x80,0x96,0x5a,0x56, + 0x29,0xb0,0x4c,0x5e,0x54,0x09,0xad,0x49,0x55,0x38, + 0x65,0xda,0x2e,0x90,0x6f,0x08,0xba,0x53,0x12,0x94, + 0x08,0xb0,0x9b,0x29,0x81,0x09,0x8d,0xd0,0x56,0xcb, + 0x66,0x33,0x87,0x35,0x7a,0xee,0xb6,0x8a,0xb6,0xa0, + 0x02,0xd1,0x1e,0x0f,0xbb,0x49,0x26,0x40,0x7f,0x57, + 0x47,0xe1,0x87,0x9b,0x39,0xd3,0x33,0xa5,0x64,0x5f, + 0xc7,0xda,0x35,0x98,0x38,0xae,0x51,0x4a,0x3e,0x27, + 0xf8,0x5a,0xdb,0x0c,0xc2,0x65,0xf9,0x58,0xab,0x87, + 0x0e,0x12,0xd3,0x46,0x3c,0xca,0xef,0xd9,0xec,0x2d, + 0xf3,0x0c,0x57,0xb2,0xfd,0x7d,0xcf,0xd0,0xbe,0xef, + 0xed,0x43,0x50,0x72,0x3e,0x0b,0x0b,0x1e,0xa7,0x6c, + 0x7b,0xa8,0x55,0x1a,0x9e,0x15,0xa1,0x7d,0xe7,0x13, + 0x74,0x60,0xe2,0x8d,0x39,0x43,0xec,0x45,0xfb,0x3a, + 0x26,0xa6,0x13,0x0f,0x2c,0x1d,0x80,0x4e,0xee,0xa2, + 0x17,0x31,0x5a,0x00,0xf6,0x36,0x0b,0x39,0xca,0x27, + 0x6b,0x97,0xd4,0x12,0xa7,0x64,0x36,0x25,0xd0,0x2e, + 0x21,0x4a,0xcf,0x0d,0x62,0x8b,0x2d,0x86,0x53,0x31, + 0x92,0x78,0x34,0xd4,0x72,0xa3,0xbd,0x99,0x3e,0x73, + 0x2b,0x6b,0xa0,0x88,0x2a,0x8c,0xf4,0x3f,0xee,0x79, + 0x2a,0xa2,0xa7,0xf3,0x82,0xdc,0xe0,0xad,0xdb,0x38, + 0xf1,0x4c,0x92,0x17,0xc7,0x04,0xeb,0xd1,0xc5,0x6d, + 0xdc,0x90,0xb5,0x8f,0x3d,0x04,0x89,0x63,0xf8,0x4e, + 0x27,0x91,0x8c,0xb5,0xc7,0x3d,0x41,0xa4,0x13,0x37, + 0xa7,0x57,0x2e,0x6e,0xe3,0x26,0x35,0xd6,0x69,0x41, + 0x4d,0x7d,0xf1,0x49,0xaf,0x24,0xe8,0x36,0x4c,0xfc, + 0x87,0x2b,0xf0,0x1f,0x0e,0xf1,0x21,0xa8,0x3a,0xa2, + 0x00,0x90,0xb4,0x2c,0x88,0x83,0x91,0x02,0x34,0x25, + 0xb1,0xe4,0xdb,0xe5,0x0e,0x9c,0x34,0xa6,0x0e,0xef, + 0xe8,0x84,0x35,0x7f,0x02,0x1c,0x1c,0xf9,0x3e,0x6e, + 0x6c,0xbc,0x73,0x6c,0x7a,0x8b,0x76,0x0a,0xe8,0xca, + 0xa7,0x71,0xbc,0x85,0xd4,0xbe,0x92,0xfb,0xb9,0x3f, + 0xe7,0x27,0x79,0xd1,0xcf,0x05,0x4e,0xcc,0x11,0x51, + 0xc5,0x47,0x32,0x42,0x63,0xc9,0x64,0x54,0xd9,0xae, + 0x01,0x51,0x64,0x7a,0x87,0xc0,0xc3,0x38,0x54,0xa8, + 0xd1,0x24,0x13,0x09,0x68,0x6e,0x49,0x9f,0xc4,0x47, + 0xd4,0xb6,0x5c,0xa2,0x22,0x24,0xb4,0xdd,0xb5,0xd7, + 0x54,0x81,0x39,0xc5,0xf4,0x20,0x92,0x79,0x08,0x99, + 0x77,0x07,0x36,0x21,0xd7,0xf7,0x7f,0xff,0xfa,0xf5, + 0x0b,0x15,0xcd,0x93,0x67,0x94,0x22,0x73,0xc9,0x0e, + 0x28,0xf9,0x12,0x92,0x60,0x6b,0x9a,0x1a,0xfb,0x44, + 0xb1,0x5b,0x9f,0xdd,0x64,0xbd,0xe1,0x12,0x27,0xea, + 0xc6,0xb8,0x16,0xfe,0x06,0x39,0x9d,0x44,0x5b,0x13, + 0xaa,0xe7,0xf6,0xa3,0x03,0x1c,0x15,0xf1,0xde,0x72, + 0x91,0x37,0xf4,0x1b,0x5a,0xe7,0xbf,0xfb,0xe8,0xaa, + 0xe3,0xf8,0xb8,0x17,0xee,0x64,0xcf,0x27,0xa3,0x4b, + 0x32,0x26,0xfb,0x64,0xaa,0x65,0xb3,0x99,0xdb,0x83, + 0xad,0xcd,0x22,0xd1,0x4c,0xb9,0x7b,0x35,0xf5,0x83, + 0xeb,0xfe,0xbc,0x0d,0x72,0xa2,0x02,0x65,0xce,0x3a, + 0x22,0x25,0x3c,0xfd,0x3a,0x68,0x22,0x69,0xd2,0x41, + 0xa0,0x9e,0x6a,0x7f,0x57,0x7d,0x62,0xec,0xfb,0xbf, + 0xdf,0xee,0x3d,0x1c,0x2e,0x3f,0xd7,0xa6,0xcf,0x8d, + 0xb8,0x5b,0x29,0xd1,0xda,0x4c,0x74,0x49,0x10,0xaa, + 0x8d,0xb6,0xd1,0xf7,0x81,0x5b,0x93,0x34,0x3c,0x5d, + 0x7f,0xff,0x0c,0x7a,0xd6,0x9f,0x68,0x15,0xe9,0x73, + 0xef,0xff,0x9e,0xda,0x53,0xee,0x3a,0x80,0xd3,0x52, + 0xf4,0xfd,0xdd,0x93,0xcd,0xe9,0xb6,0xc0,0xf3,0xb4, + 0xcf,0x44,0xd7,0x0d,0x7d,0x46,0x20,0x3f,0x9f,0x09, + 0x89,0x5c,0xf0,0x4c,0x56,0xae,0xdf,0x2e,0x91,0x73, + 0xdf,0xdd,0xde,0xc3,0x09,0x88,0x4f,0x7f,0x17,0xd3, + 0xf7,0x8e,0x13,0xa8,0x40,0xd0,0x7d,0x43,0x6b,0xdd, + 0x04,0xa1,0xfb,0x9d,0x4d,0x01,0xd2,0x12,0xe2,0x03, + 0xbc,0x9a,0x93,0xde,0x9b,0x13,0xa0,0x9b,0x46,0x93, + 0x43,0x5b,0xee,0xc0,0x5e,0xb3,0xc5,0x0d,0xb5,0x22, + 0x69,0xe0,0x66,0x52,0xf3,0x77,0xad,0xc8,0x0d,0xd7, + 0x34,0xd9,0xc9,0xa4,0x9f,0x31,0x71,0xed,0x67,0x90, + 0xa0,0x3b,0x0a,0x38,0xa2,0x7c,0xe2,0xc6,0x24,0x44, + 0x7a,0x52,0xfc,0x9f,0x3c,0xe0,0xd2,0x19,0x30,0xb5, + 0x9e,0xf4,0x1f,0x12,0x2d,0xde,0x50,0x6d,0xfa,0x3e, + 0xe8,0x83,0x13,0x9b,0xf6,0xf7,0x50,0xa0,0x5f,0x2f, + 0xda,0xec,0xae,0x65,0xa4,0x90,0xe2,0x46,0x55,0x32, + 0xd9,0xdd,0x53,0x45,0xbb,0x31,0x2a,0x4d,0xfc,0x14, + 0x35,0xd6,0x4b,0x2f,0x72,0x62,0x9a,0x03,0xaf,0xe2, + 0x0d,0x3d,0x72,0x0b,0xff,0x7e,0x51,0xbf,0x7e,0xfd, + 0xfa,0xab,0x00,0xee,0x32,0x6a,0x10,0xb0,0x3b,0xd3, + 0x46,0x25,0x09,0x76,0x4a,0x42,0x37,0x90,0x27,0x58, + 0x82,0x60,0xb2,0x37,0x04,0xc3,0xb1,0xed,0xe9,0xde, + 0x1d,0x05,0xbf,0x34,0x22,0xaa,0x68,0xc8,0x04,0xd7, + 0x0e,0xed,0x4c,0x92,0xe1,0x3f,0x61,0xcd,0x9e,0xa4, + 0x9f,0x34,0x68,0x90,0xac,0x47,0xb1,0xc3,0x1e,0x39, + 0x44,0xec,0x0d,0x7c,0x99,0xe3,0x84,0xc9,0xa8,0x00, + 0x48,0x13,0x8f,0xee,0x7d,0x11,0x97,0x23,0x55,0x82, + 0x4e,0x7f,0x46,0xde,0x97,0xe5,0x34,0x39,0xcb,0x1d, + 0xe5,0xb4,0x0c,0x24,0xd3,0xa3,0x70,0xbd,0x43,0x07, + 0x29,0xa9,0x27,0x54,0x36,0xa9,0xc7,0x07,0xd1,0xd0, + 0x38,0x3a,0xbe,0x89,0xbd,0xa9,0xcd,0xde,0x2b,0xf2, + 0x89,0xbf,0xd1,0xf7,0xc3,0xe4,0x2a,0xb0,0x41,0xa3, + 0xd2,0xbe,0xbe,0xbc,0x18,0xa8,0x23,0x31,0xbb,0x49, + 0xa6,0x33,0xa1,0x0a,0x5b,0xe1,0xcd,0xcd,0x3d,0x90, + 0xce,0x95,0x6b,0x21,0xd2,0x7a,0xde,0x48,0x4c,0xb8, + 0xa4,0x2e,0x15,0xcc,0x4e,0x1c,0x70,0x43,0x42,0x56, + 0x4a,0x8b,0xa1,0x13,0x9c,0x8d,0x4f,0xd7,0xd4,0x0e, + 0xd7,0xa4,0x87,0x5a,0x96,0x1b,0xf9,0x0e,0xa7,0x88, + 0xfd,0x13,0x0f,0x1c,0x3f,0x60,0x1a,0x2f,0x26,0x84, + 0x66,0xc3,0x7f,0x81,0x83,0x27,0x8e,0x65,0x4f,0x07, + 0xf1,0x06,0x65,0xf8,0x24,0x53,0x4c,0x0f,0x96,0x92, + 0x08,0xe7,0xf3,0xa3,0x6b,0x47,0x7f,0x2f,0x29,0xa7, + 0x92,0x87,0xc9,0x20,0x3f,0x6f,0xa1,0x45,0xc7,0x0b, + 0xe9,0xef,0xd3,0x8d,0xb2,0x4f,0x63,0xda,0x0e,0x15, + 0xfc,0xa0,0xca,0x38,0x89,0xc3,0x90,0xf8,0x04,0x21, + 0xab,0x3f,0xe0,0xf3,0x76,0x3e,0xa8,0x82,0xa8,0xb2, + 0xc7,0xb5,0x48,0x90,0x7e,0x37,0x1f,0xdd,0x1c,0xee, + 0xda,0x0e,0xdc,0x48,0x21,0x40,0x72,0x70,0x5c,0x92, + 0x60,0xaa,0xad,0x43,0x3a,0x52,0xfa,0xdf,0xd2,0x9a, + 0x8a,0x89,0xce,0xa4,0x9c,0x4d,0x1c,0x30,0x8a,0x19, + 0x89,0xd0,0x0e,0x9f,0x6b,0x13,0x9f,0x41,0x1f,0xea, + 0x90,0x80,0xa0,0x33,0xab,0x5d,0x24,0x98,0x18,0x97, + 0x2e,0x43,0xca,0x6d,0x55,0xff,0xd9,0x72,0x2a,0x7a, + 0x5b,0x8c,0xc4,0x2b,0xdd,0x35,0x28,0x07,0xca,0xb5, + 0xe6,0x53,0x61,0xab,0xdc,0x0b,0xaa,0xda,0x1d,0x69, + 0x3b,0x1d,0xec,0xee,0x3d,0x6b,0x67,0x41,0x0b,0xf4, + 0xd4,0xc2,0x22,0x44,0xc8,0xc5,0xc4,0x09,0xf9,0xd9, + 0x4c,0x93,0xb5,0xb6,0x9a,0x13,0x0c,0x3d,0xd3,0x3a, + 0x27,0xd7,0x83,0x74,0x8d,0xae,0x1d,0x3b,0x90,0x99, + 0xe3,0xfa,0x9a,0x38,0x3c,0x34,0xec,0x93,0x5a,0x4c, + 0x5b,0xc1,0x48,0xba,0x16,0xa5,0x61,0x68,0xb1,0x34, + 0x4d,0x5e,0x0f,0x6d,0xea,0xeb,0xb7,0x2e,0xb4,0x29, + 0x03,0xdd,0x78,0x23,0x25,0x82,0x57,0x6f,0x4f,0xd1, + 0x41,0x92,0x0e,0x1b,0x42,0x5a,0x36,0x0a,0xca,0x54, + 0x91,0x91,0x9e,0x89,0x6b,0xe1,0x6d,0x60,0xc6,0x85, + 0x88,0xe3,0x4f,0x3b,0x23,0xc1,0x9d,0x53,0xcb,0x6c, + 0x73,0x9f,0xed,0x33,0xdf,0x5a,0x24,0x49,0xf5,0xf7, + 0x6e,0x7b,0xdc,0xcf,0x06,0x74,0x23,0xde,0xee,0xe1, + 0xfe,0xd7,0xaf,0xaf,0xaf,0x72,0x6d,0x97,0xd4,0xee, + 0x4a,0x06,0xbb,0xc4,0x05,0x3b,0xe7,0x54,0x42,0x7b, + 0xdc,0x61,0x6e,0x38,0x18,0x95,0x92,0x09,0xad,0x26, + 0x7b,0x5b,0xb5,0xb7,0x02,0x7a,0x9b,0x28,0xe9,0x69, + 0xd1,0x77,0xab,0x10,0xa1,0x0b,0x7e,0xc2,0x65,0x29, + 0xf7,0x2c,0x45,0x46,0xa1,0x26,0xee,0x54,0x6f,0xfb, + 0xd1,0x7e,0x33,0x09,0xf2,0x9d,0x04,0xd5,0x86,0x9f, + 0x95,0xda,0xb7,0x13,0x02,0xe9,0xda,0x74,0x01,0x2d, + 0x38,0x13,0x94,0x4e,0xef,0x82,0x86,0x3f,0xb4,0x15, + 0x33,0x89,0x31,0xaa,0xae,0x8e,0x4b,0x8e,0xa8,0x8d, + 0xaa,0x6d,0x35,0xc7,0x7d,0xa4,0xd6,0xdd,0x56,0x25, + 0x3b,0x15,0x80,0xc0,0xa7,0x19,0xa1,0x9b,0x49,0xb5, + 0x1b,0xd0,0x69,0xcc,0xd6,0x28,0x09,0x9a,0x62,0xc2, + 0xe4,0x4f,0xb7,0xfd,0x27,0x14,0x73,0x87,0x34,0x85, + 0x52,0x1c,0xeb,0x3f,0x47,0x5e,0x93,0x81,0x17,0x15, + 0x25,0x47,0x36,0x85,0xc1,0x14,0x63,0x09,0x35,0x4f, + 0x09,0x95,0xbe,0x13,0xe0,0x50,0x8d,0xd7,0x9c,0x9c, + 0x1d,0xa8,0x05,0xbc,0x98,0xd6,0x3b,0x03,0x2d,0xe2, + 0xed,0xda,0x7e,0xa7,0x8a,0x72,0xd3,0x6b,0xec,0x87, + 0xc3,0xf4,0x42,0x29,0xab,0x4e,0x01,0x48,0xdb,0x2a, + 0xda,0xff,0x23,0x34,0x66,0xa3,0x02,0xda,0x7a,0xb1, + 0xe5,0x60,0xf8,0xbe,0x60,0xd3,0xfd,0x6c,0xd0,0x8f, + 0x24,0xf4,0xd6,0x36,0x58,0x19,0x38,0xb1,0xb6,0xd3, + 0x50,0x94,0x18,0xa6,0x64,0x8c,0x12,0x37,0x83,0x6c, + 0x15,0x25,0x9b,0x53,0x12,0x98,0x78,0x5e,0xe9,0xf0, + 0x6b,0xe8,0xe0,0x23,0xf1,0x70,0xfe,0x53,0x53,0xef, + 0x7b,0x39,0x3e,0xfe,0x93,0xe8,0x90,0x44,0x02,0x8d, + 0x6d,0x43,0x15,0x5e,0xf0,0xae,0x7e,0x92,0x38,0x38, + 0x94,0x2b,0xac,0xa9,0x07,0xb7,0xc9,0xbc,0xf7,0xf3, + 0xf5,0xf5,0x55,0x93,0xdb,0xf3,0x37,0x82,0x50,0xb4, + 0x4f,0x7b,0x02,0x6c,0xae,0xe1,0xfa,0xf7,0xdc,0xca, + 0x23,0xac,0xee,0x30,0x73,0xa8,0xf3,0x76,0x2d,0x39, + 0xcd,0xac,0x69,0xea,0xd2,0x91,0xcb,0xd3,0xb4,0xa7, + 0xe3,0xfc,0x04,0xa4,0xf9,0x0c,0x08,0xfa,0x49,0xb1, + 0x8e,0x38,0x7b,0xa4,0x71,0xa5,0x9f,0x99,0x06,0x17, + 0x5a,0x1c,0x38,0x50,0xe4,0x8e,0x44,0xdb,0x54,0xe4, + 0x6a,0x22,0x39,0xf9,0x48,0x4d,0xce,0x02,0xce,0xbe, + 0xc6,0xbd,0x0b,0xc7,0xe1,0x49,0x7c,0x42,0x45,0x30, + 0x6f,0x54,0xcf,0x8c,0x7c,0x1f,0xc7,0x5f,0x49,0x67, + 0xe3,0xc6,0x4e,0x6a,0x4a,0xce,0x36,0x67,0xee,0xfd, + 0x3e,0x95,0x87,0x47,0x7b,0xc0,0x7d,0x66,0xff,0x7d, + 0x42,0x6a,0x53,0xe1,0x91,0xd6,0xc2,0x06,0x10,0x70, + 0xc2,0xb1,0x53,0xd2,0xf2,0xc9,0xfd,0x6d,0xcf,0x97, + 0xeb,0xba,0xce,0x2b,0x7c,0x79,0xf4,0x4e,0x72,0xcc, + 0xfa,0x29,0x10,0x25,0xbd,0x02,0xea,0x5d,0x6f,0x10, + 0x17,0x15,0xd9,0xfa,0x9e,0x12,0x70,0xe3,0xae,0x67, + 0xa9,0x18,0x7d,0xa8,0xaf,0x6e,0x31,0xe6,0x21,0xc1, + 0x98,0x4c,0x2e,0x5d,0x65,0x1b,0x50,0xa9,0x93,0xae, + 0x2b,0x59,0x6c,0x6c,0x55,0xb1,0x89,0x6f,0xb1,0xa9, + 0x3a,0xf4,0x33,0xd5,0x62,0x20,0xf1,0x4e,0xfa,0xe4, + 0x8c,0x0b,0x68,0xda,0x07,0x76,0x5e,0x4c,0x40,0xb4, + 0x3f,0x13,0x07,0x89,0xbe,0xcf,0x71,0xe0,0xa8,0x2a, + 0xd3,0x16,0x9c,0x13,0x19,0xa4,0x77,0x69,0xae,0xe9, + 0x10,0x84,0x7c,0xbb,0xba,0xd3,0xf8,0xf5,0xa0,0xf8, + 0x6d,0xe5,0xfd,0x2f,0x33,0x52,0x9a,0x7c,0xea,0x4c, + 0x22,0x71,0x7a,0x2b,0xc9,0x4d,0xda,0xb8,0x75,0xe5, + 0x0e,0x00,0x35,0x2c,0xd6,0x16,0x52,0x9f,0x30,0x4b, + 0x05,0x50,0x58,0xa3,0x67,0xe2,0x82,0xb4,0xb5,0x7b, + 0x16,0x36,0x3b,0x27,0x0d,0x22,0x5c,0x86,0x2b,0x46, + 0x8a,0xc3,0xc4,0x19,0x9b,0xf8,0x3c,0x9f,0x88,0x4d, + 0xa6,0xb6,0xce,0x82,0x9b,0x79,0xc8,0x10,0xd7,0xb4, + 0xf0,0x71,0x92,0x6a,0xd3,0xce,0x77,0x82,0x86,0xa4, + 0x3c,0x3d,0xc5,0xe6,0xe1,0xfd,0xa0,0x8d,0x44,0x12, + 0x43,0xdd,0x68,0x1f,0x5d,0xde,0xae,0x29,0x22,0x3b, + 0x29,0xc9,0xd0,0xe1,0x15,0xba,0x8f,0x34,0x68,0xb2, + 0x48,0x0c,0x46,0x6e,0x92,0x5b,0x2f,0x3a,0x9e,0xbf, + 0xa1,0x6e,0x4c,0x02,0xc0,0x93,0x3e,0x58,0xd2,0x96, + 0xda,0xd8,0x04,0xfd,0x4e,0x3e,0x20,0xd3,0xe1,0x38, + 0x65,0xbd,0x3d,0x93,0xa4,0xe9,0x2f,0xc7,0x23,0x49, + 0x7a,0x08,0xda,0x3e,0xe8,0x5a,0x3e,0x44,0xf8,0xa5, + 0x6c,0x99,0xa4,0xc6,0xe1,0xa5,0xbb,0xc9,0x27,0xb7, + 0x28,0xdf,0xda,0x0f,0x5b,0x77,0x66,0x42,0x95,0x92, + 0x86,0x4e,0xaf,0xec,0xae,0x36,0x31,0x46,0xfe,0x3a, + 0x3a,0x49,0xe4,0x82,0xe3,0x3d,0x25,0x62,0x5a,0x59, + 0x57,0xaa,0x12,0xdb,0x61,0x7c,0x5e,0xaf,0x57,0x99, + 0x00,0x5f,0xf2,0xac,0x8e,0x22,0x07,0xf7,0xdf,0x19, + 0xb4,0xec,0xd1,0xaa,0xb9,0xef,0x65,0x9a,0x36,0xd1, + 0x60,0x6d,0x38,0x46,0x65,0xda,0xaa,0x34,0x74,0xf5, + 0x86,0xe8,0x38,0x84,0x2d,0x41,0xe2,0xa9,0x98,0x08, + 0xda,0x2e,0xa5,0x07,0x4b,0xd7,0x8b,0x79,0xbd,0x5e, + 0x35,0xf4,0xc3,0x1f,0x08,0x5a,0x58,0x83,0x3f,0x40, + 0x06,0x05,0x45,0x17,0x80,0x0d,0xea,0xaa,0x84,0xd4, + 0x4a,0x30,0x3b,0xc9,0x69,0x50,0x8d,0xe1,0xb8,0x26, + 0xc9,0x4b,0xce,0x09,0xfd,0x11,0x4a,0x20,0xf1,0x07, + 0x27,0x9d,0x9c,0xa9,0x2c,0x21,0x60,0x09,0x45,0xd6, + 0x83,0xcf,0x8d,0x40,0x43,0xf2,0x79,0x26,0x0e,0x58, + 0xba,0xcf,0x85,0x73,0xfb,0x49,0x7e,0x87,0xc2,0x2b, + 0x1c,0x93,0x49,0xb7,0xd6,0x5d,0x81,0x42,0x89,0xda, + 0x76,0x40,0x25,0x75,0x16,0x08,0xc1,0x4b,0x03,0x33, + 0x49,0xac,0xd7,0xb5,0x2a,0x13,0x0a,0xb5,0x79,0x1e, + 0x44,0x31,0x99,0x84,0x19,0x17,0x93,0x62,0xae,0x10, + 0x3b,0xb4,0x36,0x09,0xdd,0x73,0x7b,0x33,0xdd,0xeb, + 0x06,0xf9,0x4a,0x80,0x48,0x68,0xd1,0x9e,0x44,0x5b, + 0x98,0x5a,0x60,0x8f,0x29,0xb0,0x94,0xd1,0x26,0xa8, + 0x77,0x48,0x84,0x26,0x58,0x38,0xea,0x15,0x24,0xc5, + 0xcb,0xf4,0x80,0x93,0xe8,0xa1,0xdb,0x54,0x1b,0xdb, + 0x83,0x64,0xd7,0x31,0xa9,0x50,0x5e,0x46,0x74,0xac, + 0x93,0x03,0xb7,0x86,0x7e,0x09,0x19,0x23,0x94,0xcd, + 0x1d,0x10,0xa9,0x22,0x33,0x9c,0x13,0x24,0x78,0xeb, + 0xd8,0x6c,0x32,0xd6,0x94,0xca,0x70,0x34,0x4e,0x4c, + 0xc1,0xb7,0xbf,0xf7,0x0f,0x04,0x07,0x4f,0xaa,0x9c, + 0x5d,0x8b,0x81,0x26,0xbf,0xe0,0x40,0x4c,0xea,0xc2, + 0x49,0x8d,0xf9,0x0c,0x5c,0x8d,0x33,0x20,0x8a,0x67, + 0x41,0x6a,0x7c,0xa8,0x26,0x0f,0xcf,0x75,0x54,0x84, + 0x4e,0x62,0x71,0x66,0xef,0xbd,0x69,0xfa,0xb4,0x31, + 0xb4,0xd3,0x34,0x87,0xba,0xa2,0x74,0x54,0xa5,0xd6, + 0x67,0xe9,0x08,0xad,0x20,0x10,0x7a,0x3e,0xe0,0x84, + 0x9c,0xc5,0xd4,0x56,0x7c,0x37,0x77,0x02,0x9a,0x5a, + 0x01,0x74,0x40,0xdc,0x6a,0xe3,0x60,0xca,0x6b,0x8d, + 0x57,0x93,0x46,0x8f,0x33,0x56,0x0d,0x13,0x55,0x34, + 0xc9,0x77,0x1c,0x72,0x17,0x9e,0xf7,0x68,0x29,0x41, + 0xd2,0x1d,0x1d,0x79,0xd3,0xb6,0xc9,0x46,0x42,0x63, + 0x9a,0x90,0x74,0xad,0xc5,0x56,0x30,0x20,0x6a,0xd4, + 0x0a,0x9f,0x93,0x3a,0x23,0x7f,0xd3,0xca,0x21,0x44, + 0xc7,0xb5,0x9d,0x5d,0x5c,0x76,0xb1,0x6e,0x4a,0x34, + 0x1c,0x0a,0x4f,0x09,0x3c,0x09,0x0e,0xd3,0xf7,0x6e, + 0x68,0x09,0x1b,0x8f,0x33,0x1a,0xb0,0x98,0x78,0xc3, + 0xc4,0xdf,0x7a,0x3b,0xd3,0xc3,0x78,0x35,0x8a,0x78, + 0x4d,0xed,0x13,0xfa,0x99,0xe1,0xef,0x4f,0x22,0x52, + 0xb9,0xa4,0x85,0x38,0x3b,0x69,0x23,0xb8,0xde,0x7a, + 0x6a,0xbf,0x6d,0x1c,0x94,0x29,0x6b,0xa5,0x83,0x3d, + 0x2c,0x8e,0x48,0xa2,0x4c,0xad,0xbc,0x4f,0x54,0x3d, + 0x37,0xd3,0x49,0xdb,0xde,0xec,0x46,0x73,0x83,0x94, + 0x4a,0xaf,0x20,0x19,0x4f,0x9e,0x37,0x2a,0x56,0x06, + 0x09,0xf1,0x49,0x15,0x87,0x6b,0xbb,0x99,0xcd,0xf6, + 0xc9,0x61,0x19,0x83,0x7e,0xea,0xf1,0xbb,0xa4,0xad, + 0x9b,0xcc,0xd2,0xfb,0x54,0x2f,0xaf,0xb4,0xde,0xf4, + 0xe7,0x16,0xad,0xdd,0xab,0x27,0x2c,0xee,0x80,0xfd, + 0x8f,0x18,0xcd,0x86,0xe7,0xf0,0xd1,0x44,0xe1,0xa4, + 0xd5,0xf2,0x9e,0x7f,0x1e,0x24,0x5d,0x9b,0xf5,0x10, + 0x4d,0x52,0xdd,0xb3,0x04,0xa1,0xb8,0x93,0x10,0xde, + 0xcd,0x81,0xa1,0x31,0xf8,0x02,0x5d,0x1c,0xad,0xca, + 0xd5,0xaf,0x31,0x19,0xfe,0x9a,0x43,0xfc,0xa4,0xbd, + 0x43,0x3e,0x72,0x53,0xdb,0xa3,0x4f,0xd1,0xb9,0xb8, + 0x44,0xf6,0x14,0x03,0xbd,0xe0,0x18,0x04,0xf0,0x4c, + 0xb1,0xcd,0x19,0xd1,0x26,0xb4,0x2f,0x09,0xd2,0xa6, + 0xc2,0x99,0x62,0xb1,0xb4,0xd4,0x8f,0x49,0x60,0x8f, + 0x69,0x29,0x5e,0x9b,0xfd,0x9b,0xae,0x21,0x9d,0x61, + 0xee,0x7d,0xdf,0xf7,0x76,0xc7,0x24,0x97,0x78,0x24, + 0x94,0x9d,0xb8,0x3e,0x93,0x63,0x3d,0xd9,0x1f,0x39, + 0xda,0xcd,0x7d,0x5e,0x10,0x6d,0x44,0xdf,0xdf,0x5b, + 0xd2,0x3b,0xb0,0xf5,0xb1,0x55,0x93,0x78,0x10,0x09, + 0x0d,0xd9,0x24,0x4d,0xce,0xbe,0x20,0x49,0xc3,0x53, + 0xc0,0xb8,0x3c,0xf1,0xf0,0x4c,0xf7,0xe8,0xc6,0x4b, + 0x89,0xab,0xa3,0x08,0x44,0xea,0xcb,0x4e,0xad,0x12, + 0x78,0x36,0xa8,0x5c,0x2c,0x0b,0xf2,0x50,0xbf,0xd3, + 0x21,0x4f,0x53,0xe5,0x02,0x70,0x30,0xea,0x6f,0xb8, + 0x40,0xbc,0x75,0x6f,0x9f,0x92,0x38,0xb5,0x30,0x48, + 0x1c,0x85,0xd4,0x5e,0xbc,0x03,0xb0,0x26,0xc0,0x74, + 0x9d,0x61,0xec,0xf9,0x4c,0x95,0x8d,0x4b,0xf0,0x93, + 0x70,0x5a,0x3f,0x48,0x8c,0x1a,0x35,0x6a,0xc0,0x90, + 0x36,0x8a,0x7b,0x8e,0x1d,0x91,0x48,0x09,0x87,0x23, + 0xb8,0xf6,0x83,0x26,0x1d,0x00,0xc9,0x52,0x87,0x0a, + 0x1c,0x67,0x5f,0x93,0x12,0x9e,0x14,0xd4,0x55,0x07, + 0x68,0xb2,0xdd,0xd1,0xbd,0xb6,0xd4,0x30,0x39,0xc9, + 0xae,0xe6,0xba,0x32,0x3f,0xb0,0x23,0x0d,0x9b,0x89, + 0xb3,0xb4,0x9f,0x09,0xb1,0x4a,0x05,0xe0,0x86,0x2c, + 0x9e,0xfc,0xd3,0xdc,0xfb,0xa5,0xc3,0x87,0x0a,0x48, + 0xc7,0x91,0xeb,0xfe,0x5d,0xe9,0x30,0x27,0x0b,0x8b, + 0xcd,0x77,0x4e,0x87,0xa3,0x8b,0xd9,0x86,0xd7,0x67, + 0x7d,0x0a,0x9d,0x56,0x9e,0x89,0xc9,0x87,0x06,0x28, + 0x52,0xa1,0xbe,0x28,0x06,0xc7,0x96,0x53,0x92,0x9d, + 0x70,0xae,0xec,0xee,0x79,0x92,0xbe,0x9f,0xf2,0x33, + 0x49,0x89,0xb9,0x6b,0x4b,0xa5,0xef,0x99,0x3a,0x52, + 0x80,0xfa,0x1e,0x02,0x4e,0x54,0xaf,0xe8,0x07,0x69, + 0xa5,0xa0,0xab,0x87,0x2f,0xb5,0x0c,0x28,0x0b,0x1c, + 0xc4,0xcc,0xd0,0x15,0x3c,0xb5,0xd7,0x86,0x76,0xc6, + 0x21,0xe4,0xc5,0x3d,0x54,0xd7,0xc3,0x86,0x05,0x6b, + 0x93,0x3c,0x9a,0x54,0x20,0x57,0x70,0xe7,0x54,0x9c, + 0xae,0x95,0x12,0xab,0x69,0x93,0xcb,0x7b,0x3c,0x6e, + 0x91,0x1a,0x4d,0x07,0xd7,0xd6,0x3c,0x24,0x78,0x98, + 0x5a,0x57,0x14,0x2c,0xdc,0x86,0xa6,0x2a,0x39,0xb5, + 0x85,0x5c,0x22,0xec,0xf4,0x42,0x48,0x34,0x8b,0x5c, + 0xd7,0x37,0x93,0x1b,0x29,0xd8,0x08,0x7f,0x28,0x56, + 0x9c,0x2e,0x80,0x10,0xe2,0xa5,0x07,0xdc,0x60,0xf5, + 0x71,0x1c,0xbf,0x03,0x0c,0x3c,0x47,0x02,0xbf,0x81, + 0x9c,0x4f,0x7f,0x37,0x8e,0x74,0xb8,0xf1,0xff,0xd9, + 0x0c,0x40,0x2c,0xe3,0x80,0x2b,0x16,0x8e,0x22,0x0d, + 0x14,0xf4,0x5d,0x4c,0xa1,0x75,0x44,0x31,0x80,0x8a, + 0xa7,0xa1,0x22,0x3f,0x53,0xfb,0xb1,0xef,0xa7,0xbe, + 0x4f,0x49,0x19,0xb8,0x57,0xc0,0x0e,0xfd,0x31,0x07, + 0xec,0x49,0xb4,0x85,0x94,0x30,0x92,0xf7,0x1c,0xf1, + 0xa2,0xdc,0xb3,0x9a,0xa6,0x85,0x4c,0xdc,0x72,0x9c, + 0x24,0xcb,0x6b,0x49,0xb2,0x26,0x29,0xc9,0x26,0x62, + 0xbc,0x19,0xca,0x38,0xb4,0x56,0xdd,0x94,0xa1,0xbb, + 0x9e,0x69,0xb8,0x68,0xdb,0x0e,0xd2,0xdf,0x57,0xe0, + 0xc0,0x29,0x3b,0x4f,0xd3,0x78,0xca,0xe7,0x73,0xd7, + 0x42,0x88,0xcb,0x06,0xf1,0xbd,0x3f,0xe7,0xcf,0x9f, + 0x3f,0x0f,0x34,0x8c,0x0a,0x26,0x25,0xbf,0x27,0xee, + 0x72,0x32,0xc9,0xd5,0x82,0xf3,0x95,0xdc,0x82,0xa7, + 0x7f,0x9f,0x58,0xfc,0xd4,0x8e,0x48,0xd5,0x0c,0x05, + 0xa6,0x49,0x9f,0x60,0x0b,0x03,0xea,0x41,0x38,0x91, + 0x01,0x93,0x26,0xc9,0x54,0xf9,0x38,0x38,0xdc,0x99, + 0x54,0x12,0x27,0x87,0xd0,0xa3,0x4d,0x05,0x4c,0x6d, + 0x2a,0x82,0x1f,0xcd,0xc2,0x5f,0x55,0x8b,0x8e,0x98, + 0xed,0x12,0x62,0x4a,0xa8,0xd3,0xa1,0x39,0xfd,0xfe, + 0x40,0x94,0x25,0x7f,0xb0,0xe3,0x20,0xde,0x14,0x2f, + 0xa1,0x52,0x3b,0x81,0x3c,0x7f,0x1c,0xf2,0xf9,0xfd, + 0x7c,0x4e,0x92,0x93,0x20,0x1e,0x0d,0x89,0x24,0x92, + 0xf9,0x25,0xad,0x17,0x41,0x6c,0x0e,0x25,0xff,0x69, + 0x7f,0x75,0x0e,0x4f,0x4a,0x5c,0x74,0x08,0xe1,0x56, + 0x45,0x9f,0x92,0xa4,0xad,0x75,0x8a,0xb4,0xac,0x2c, + 0x42,0x45,0x8a,0xf6,0x82,0xb6,0x20,0xba,0xe8,0x78, + 0x5e,0x54,0xe9,0x2b,0x2f,0x68,0x6a,0x19,0x4d,0x28, + 0x4e,0x57,0xa9,0x9e,0x50,0xe2,0x6d,0xb2,0x99,0x10, + 0x9f,0x94,0x9c,0x00,0x0f,0xea,0xb8,0xb8,0x0f,0x31, + 0xe2,0xc1,0xc3,0xe8,0x88,0x6c,0xfa,0x7d,0x2d,0x72, + 0x52,0x7c,0x14,0x51,0x42,0x9b,0xdc,0xf6,0xb6,0xd3, + 0x02,0x8d,0x47,0xb2,0x2d,0x4d,0x45,0x27,0x1a,0xc6, + 0xa6,0x7d,0x05,0x48,0xf6,0x49,0xd7,0x46,0x1c,0x9e, + 0x80,0x66,0x5a,0x89,0x01,0xb7,0x7f,0x53,0x5b,0x69, + 0x32,0x25,0xd6,0x77,0x12,0xce,0xe6,0x33,0x21,0x76, + 0x64,0xf8,0x4d,0xbe,0xa4,0xf4,0x4e,0xdf,0xbc,0xc0, + 0x36,0x22,0x63,0xf0,0xf0,0x2a,0x4d,0x89,0x39,0xbf, + 0xa9,0xa9,0xd2,0xa4,0xff,0x5e,0x66,0xef,0x91,0x63, + 0xe3,0x7e,0xcf,0x09,0x40,0x4e,0xca,0x98,0x04,0x5b, + 0x12,0xd7,0x66,0xdb,0xf2,0xba,0xff,0xdc,0x71,0x3f, + 0x2e,0xef,0xf3,0xf4,0x36,0xdd,0xd3,0xaa,0xbd,0x32, + 0xba,0x19,0xb5,0xd1,0xfa,0xe9,0x13,0x4e,0xd3,0x04, + 0x83,0x5b,0x0f,0x77,0xf5,0x71,0x8f,0xc0,0xf6,0x6b, + 0xa1,0xc4,0x95,0x14,0x5e,0x55,0xb8,0x71,0x3a,0x00, + 0xee,0xa9,0x2d,0x17,0x28,0x9d,0x97,0x95,0x79,0xd7, + 0x78,0xff,0xae,0xfa,0xd1,0x77,0x00,0x68,0x4c,0x6d, + 0xd6,0xae,0x69,0x37,0x25,0xa1,0x43,0x2b,0xa2,0x29, + 0xf7,0xfa,0x36,0xcd,0x35,0xb5,0x95,0xdc,0x5a,0x72, + 0xeb,0x71,0x4a,0x4a,0xbf,0x7f,0xb6,0x52,0xbf,0x9f, + 0x86,0x11,0x36,0x42,0x67,0xca,0xf9,0x98,0xf8,0x21, + 0xba,0x16,0x5c,0x92,0xfa,0x01,0xbf,0xe8,0x24,0xfe, + 0xdb,0xfd,0xdc,0xdd,0x77,0x26,0xd1,0x45,0x17,0x8f, + 0xfa,0x3a,0x75,0x5c,0x88,0xa5,0x94,0x47,0x6a,0xc3, + 0x3d,0x0e,0x90,0x36,0x99,0xe9,0x0a,0xbf,0xa3,0x7b, + 0x2b,0x24,0x25,0x67,0xeb,0xf1,0x04,0xfb,0xcb,0xd9, + 0x2b,0xd8,0xd8,0x3d,0xb5,0x86,0x12,0xaa,0xb2,0xe5, + 0xd2,0x6c,0xf5,0xea,0xd2,0x39,0xd4,0x91,0x98,0x54, + 0x7c,0x52,0x47,0x82,0xb4,0xef,0x52,0xe1,0xb0,0xb5, + 0xee,0x20,0xb4,0xdc,0xed,0x1f,0x89,0x41,0x36,0xf1, + 0xba,0x91,0x21,0x12,0xf5,0x9c,0xac,0x4e,0x7a,0xa2, + 0x74,0x7f,0xbf,0xa2,0x8c,0xc9,0xed,0xc1,0x4c,0xe7, + 0x1d,0x57,0xf8,0xfc,0x20,0xef,0x64,0x39,0x9f,0x16, + 0x06,0x2d,0x4a,0x97,0x00,0x38,0x88,0x34,0x64,0x78, + 0xa3,0x16,0x42,0xd2,0xbb,0x08,0xce,0xdd,0xae,0x82, + 0xc5,0x83,0x9e,0x50,0x21,0xad,0xc2,0x53,0x75,0x49, + 0x68,0x4a,0xea,0xb5,0x12,0xd9,0x6b,0xfb,0x4f,0x82, + 0x52,0x21,0x06,0x4e,0x88,0xd9,0xd1,0xb6,0x99,0x0b, + 0x9e,0x89,0x77,0x34,0x8c,0xa1,0x5b,0x94,0x70,0x08, + 0x68,0x67,0x10,0xad,0x7b,0x20,0x6c,0x86,0x5c,0x79, + 0x52,0x6b,0xc2,0x79,0x70,0xa5,0xe0,0x39,0x4d,0x35, + 0x18,0x88,0xfc,0xb8,0xca,0xb0,0x7b,0xbe,0x51,0x95, + 0xab,0xfa,0x2a,0x03,0x82,0xba,0x1a,0x4f,0xee,0x93, + 0x5a,0xc4,0x87,0xd0,0x16,0x9d,0xea,0xf3,0xf4,0xf6, + 0x80,0x20,0x44,0x87,0xd6,0x47,0xaa,0x9a,0xa5,0x55, + 0x77,0x1c,0x5a,0x45,0x48,0xd8,0x1d,0x84,0xa1,0x6a, + 0x3f,0xda,0xfe,0x21,0x62,0xae,0xa0,0x5d,0x63,0x55, + 0x9a,0x50,0x18,0xc7,0xbd,0x4b,0xad,0x60,0xa3,0x5b, + 0x34,0x22,0x7e,0xca,0x87,0x98,0x26,0x7e,0x14,0x29, + 0x49,0x93,0x81,0x34,0x7d,0x44,0x08,0x87,0x29,0x50, + 0x70,0x7f,0xf4,0xd6,0x07,0x3c,0xa3,0x93,0x14,0x7f, + 0x13,0x72,0x37,0xc8,0x3d,0x60,0x61,0x1b,0x4c,0x52, + 0x0f,0x14,0xa8,0xba,0xa6,0x8f,0x8b,0xe5,0x6e,0x38, + 0x84,0x7e,0x2e,0xd8,0xbd,0xac,0x0b,0xd4,0x8d,0x81, + 0x78,0xb2,0xb2,0xa2,0xcf,0x76,0xf6,0x4a,0x49,0xc6, + 0x21,0x39,0x4d,0x38,0x44,0x89,0xd6,0xd8,0x94,0x48, + 0x13,0x82,0x4c,0x88,0xdc,0x2b,0xf5,0x13,0xc9,0x83, + 0x64,0xea,0xa1,0x2e,0x5f,0xc6,0x71,0x44,0x54,0x5a, + 0xd4,0xfd,0xcf,0x6f,0x81,0x32,0xf3,0x20,0x8e,0x79, + 0xb0,0x87,0xc4,0x1a,0xdd,0x88,0xa5,0x1c,0x6a,0xc7, + 0xf1,0x6b,0xba,0xf1,0xa7,0x4a,0x03,0x50,0xeb,0xc4, + 0x65,0xa3,0x89,0x6c,0x39,0x49,0x12,0x4c,0x87,0x7f, + 0xaa,0x86,0xb4,0x15,0xe1,0x26,0x14,0x9c,0xc6,0x04, + 0x71,0x79,0x42,0x30,0x39,0xe6,0xa0,0x3b,0x9f,0xf0, + 0xc5,0x5c,0x92,0x00,0x81,0x81,0x26,0x6e,0x70,0xf2, + 0x89,0x36,0x1f,0xad,0x57,0x3a,0x20,0x83,0xc6,0xc8, + 0x09,0xa3,0xcf,0x87,0x44,0x16,0x75,0x7c,0x5a,0x9f, + 0xa1,0x3a,0x7a,0x0f,0x6b,0xe6,0x71,0xe0,0xa7,0x76, + 0xd5,0xd5,0xc4,0x0c,0xd3,0xd0,0x81,0x56,0xe9,0x03, + 0x21,0xf5,0x6d,0xc4,0x5d,0xff,0xa7,0x49,0x4e,0x4f, + 0x3a,0x26,0x73,0xcd,0x44,0x46,0x36,0xd3,0x53,0x67, + 0x52,0x89,0xd6,0xd8,0xe1,0x12,0x50,0x2a,0x28,0x42, + 0x2b,0xc6,0x4e,0xf4,0x38,0x74,0xc7,0xed,0x21,0xc7, + 0xc1,0xeb,0x07,0x4c,0x22,0xd5,0xba,0x6b,0x85,0x44, + 0xe5,0xc0,0x14,0xd7,0x49,0x13,0xb4,0x53,0x3b,0x3a, + 0xb4,0xde,0x0f,0x25,0x73,0x9f,0x4e,0x18,0x12,0x4a, + 0xa7,0x6d,0x1d,0xfa,0x7f,0x92,0x34,0xa0,0x36,0x8b, + 0x2b,0x98,0x29,0xfe,0x76,0x0e,0x17,0xb5,0x82,0x88, + 0xf3,0x46,0x9d,0x8a,0xd4,0x42,0x9d,0x92,0xd2,0x00, + 0x0e,0x1c,0x1a,0x3e,0xda,0xa0,0x69,0x6e,0x1f,0xd1, + 0x24,0xeb,0x44,0x4f,0x49,0xd4,0x8d,0x30,0xac,0x11, + 0x5b,0xff,0x6a,0x3e,0xfb,0x13,0x4b,0x29,0xa8,0x90, + 0xf1,0x27,0x8d,0xc3,0x4e,0xad,0x29,0x9a,0xf4,0x18, + 0xe0,0x75,0x3b,0xe5,0xe5,0x02,0x16,0x4d,0xb3,0x50, + 0x55,0x91,0xb2,0x63,0x22,0x5c,0x6d,0xb3,0xe4,0x81, + 0x3f,0x11,0xa1,0x98,0x3b,0x60,0x92,0xbe,0x8d,0x04, + 0xe0,0x43,0xe8,0x97,0x13,0x94,0x9b,0x12,0x2f,0x98, + 0x0e,0x88,0x15,0x0f,0x6d,0xbe,0xed,0xf3,0xd1,0x29, + 0x36,0x4a,0x4a,0x1d,0x9f,0x86,0x9e,0xf5,0xc6,0x85, + 0x5b,0x27,0xbc,0x88,0x83,0x95,0x2a,0x7f,0x97,0xe8, + 0xb9,0xca,0xbf,0x1f,0x16,0xfa,0x1c,0x95,0xe7,0xa1, + 0x55,0x3c,0x05,0x90,0x96,0x04,0x1d,0x17,0x84,0x29, + 0x38,0xba,0x4a,0x0e,0xb4,0x3e,0xac,0x41,0xe8,0x27, + 0xfe,0x43,0xf4,0x1c,0xdd,0xb3,0x70,0xa4,0x4a,0x37, + 0x11,0x3a,0xa1,0x6b,0x80,0x2e,0x8e,0x26,0xce,0x46, + 0xeb,0xec,0x24,0x94,0xc9,0xbd,0x23,0x88,0x6d,0x67, + 0x90,0xeb,0x3f,0xa9,0xc0,0xa4,0xfd,0x3a,0xc4,0x3e, + 0xe4,0xc5,0x05,0x1e,0x95,0x6d,0x67,0xc1,0xf9,0x70, + 0x36,0xaa,0xd3,0x37,0xd7,0x26,0xb5,0xac,0x9c,0x0b, + 0xf8,0x04,0x55,0x4f,0x63,0xdd,0xd3,0x34,0xa8,0x3b, + 0x9b,0x52,0x0c,0x4d,0x1a,0x4b,0xb4,0xa6,0x92,0x65, + 0xd2,0x44,0x2f,0xa1,0x42,0x5c,0x86,0x3d,0x4e,0xe2, + 0x4c,0xa9,0x66,0x94,0xb6,0x62,0xc9,0xd4,0x98,0xd0, + 0x59,0xf7,0x4c,0x49,0xe0,0xd8,0xed,0xd5,0xee,0x65, + 0x38,0xb9,0x45,0x68,0xbc,0x74,0xf1,0x79,0x23,0xba, + 0xb9,0xe1,0x19,0xbf,0xda,0x45,0x9d,0x6d,0xbf,0xde, + 0x7d,0x39,0x8d,0xc2,0xba,0x0a,0x88,0x5e,0x58,0x9a, + 0xe3,0x9f,0x38,0x36,0xfa,0xfd,0x01,0x02,0x5f,0x9b, + 0x32,0x7e,0xea,0xd7,0x92,0x12,0xba,0xad,0x96,0xd0, + 0xa4,0x72,0xba,0x48,0x28,0x0e,0x25,0xb4,0x0e,0x19, + 0xa1,0xf7,0xe4,0x5a,0x78,0x94,0x8c,0x4c,0x01,0xc3, + 0x54,0xaf,0x2b,0x3d,0x9a,0x14,0x21,0xfa,0xf7,0x6b, + 0xc2,0x9a,0xf8,0x01,0x13,0x2f,0x65,0x68,0xc1,0x9d, + 0x74,0x48,0x05,0xbf,0xb7,0x87,0x43,0x7b,0x9a,0x82, + 0xa3,0x84,0x2c,0x54,0x8a,0x67,0xe2,0x9d,0xdd,0x7f, + 0x94,0xaa,0x49,0x57,0x8d,0xdd,0x08,0x8d,0x06,0xa4, + 0x3f,0x7f,0xfe,0x44,0x27,0xed,0x0d,0x94,0x3e,0x55, + 0x83,0xe1,0x99,0xe0,0x50,0x86,0xa0,0x11,0x67,0x3b, + 0x05,0xe6,0x5a,0x12,0x74,0x2f,0x6d,0x2d,0xa4,0xc4, + 0xd7,0x16,0x37,0x6e,0x8a,0xd2,0xb5,0x15,0x08,0x59, + 0xee,0xce,0xf1,0x89,0xdb,0xb1,0xa4,0x1c,0xc4,0xb6, + 0x11,0x25,0x8a,0xae,0xf8,0x75,0x93,0x5f,0xa1,0xcd, + 0x79,0x82,0xd8,0x5f,0x6c,0xf1,0xd0,0x60,0x0d,0x08, + 0x1d,0x46,0xc1,0x48,0x2a,0x1e,0xb5,0xa8,0xd1,0xf7, + 0x32,0x69,0x39,0x9d,0x73,0x8e,0x49,0xda,0x8f,0xa1, + 0x72,0x9c,0x54,0xec,0x53,0x8b,0x98,0x92,0xbf,0x4f, + 0xde,0x2f,0x71,0xee,0x74,0x48,0x87,0x38,0x7f,0xda, + 0xee,0x4b,0xb4,0x94,0x49,0xf3,0xc7,0xa1,0x37,0xae, + 0x4b,0xe0,0x06,0x04,0x26,0x04,0xc9,0x25,0x54,0xfd, + 0x1e,0x5f,0xa9,0x17,0xde,0x15,0x2f,0x8d,0xf8,0x5a, + 0xd4,0x19,0x48,0x6d,0x0e,0x6a,0x71,0xd0,0x08,0x34, + 0xa9,0x78,0xa6,0xec,0x9b,0x2a,0x3d,0x15,0x94,0xa2, + 0x29,0x0f,0xcd,0xb4,0x53,0x70,0xd6,0x7e,0xb1,0xd3, + 0xb3,0x48,0x82,0x8a,0xf4,0x99,0x8e,0x18,0x36,0x55, + 0xc1,0x14,0x0c,0x35,0x49,0x48,0xad,0x84,0x04,0x3f, + 0xf6,0xcd,0x4b,0x86,0x90,0xbd,0x55,0xe9,0x12,0xad, + 0xa0,0x5e,0x8b,0x6a,0xd3,0x2e,0xb8,0xd1,0x88,0xf2, + 0xe4,0x6a,0xdd,0x5a,0x98,0x34,0xb2,0x7e,0xd2,0x04, + 0x94,0x43,0x09,0xf5,0xcf,0x69,0x3f,0xc0,0x54,0xe1, + 0x19,0x92,0xde,0x93,0x84,0x08,0xdd,0x94,0x61,0xe0, + 0xc9,0x1c,0xb7,0xa7,0x29,0x31,0xec,0x95,0x9b,0x70, + 0x72,0x46,0x0e,0x05,0x09,0x6f,0xa6,0x75,0x95,0x86, + 0x05,0xd4,0x19,0xda,0x21,0x3d,0xae,0xe5,0xe7,0x54, + 0xdf,0x81,0xe4,0x8c,0xad,0x3f,0x89,0x57,0xa7,0x8f, + 0x9e,0x07,0xe4,0xe9,0x0a,0xba,0x53,0x87,0xd4,0x84, + 0x89,0x22,0x40,0xea,0xe0,0xb2,0xb6,0x90,0xc7,0x06, + 0x87,0xdd,0x71,0x31,0x95,0x90,0x97,0x5b,0xc3,0x65, + 0x4a,0x7c,0x1d,0x6a,0x4d,0xe6,0xae,0x94,0xe8,0xa7, + 0x84,0x37,0x4d,0x55,0x4d,0xce,0xe4,0x60,0x3e,0x8c, + 0x89,0x29,0x25,0x6e,0x13,0x0d,0x61,0x13,0x6b,0x13, + 0x32,0x95,0xac,0x91,0x12,0x08,0x91,0x64,0x00,0xe8, + 0xcc,0x76,0x9a,0x3c,0x53,0x71,0xb2,0x49,0xbe,0x75, + 0x7f,0x24,0xf4,0xd7,0x89,0xb6,0x92,0x4c,0x4e,0x8a, + 0x71,0xa9,0x70,0x6a,0xe7,0xc1,0xb9,0xae,0xeb,0xfa, + 0xfd,0xfd,0x03,0xa5,0xcc,0xfe,0x00,0xa9,0xf5,0x0f, + 0xc1,0x89,0x0f,0xa7,0x15,0xe4,0x0e,0x93,0x7b,0x42, + 0xc9,0x55,0xd0,0x93,0xcb,0x2b,0x38,0x82,0x3f,0x26, + 0xd4,0xdc,0x9f,0xdd,0xd7,0xbf,0x71,0x8d,0x37,0x0f, + 0xf4,0x67,0x12,0x27,0xb9,0xa2,0x53,0x0f,0xfe,0xf6, + 0xca,0x12,0x13,0x38,0xeb,0x04,0x0f,0x07,0xfa,0xe3, + 0x3d,0x68,0xb5,0xd1,0xfd,0xb8,0xc2,0xa6,0x78,0x7c, + 0xc7,0xfd,0x79,0xa6,0x0d,0x56,0x84,0x26,0x4d,0xba, + 0x12,0x9b,0xb6,0x67,0x32,0xea,0xfb,0xb6,0x05,0xa8, + 0xa9,0x15,0x39,0x78,0xb1,0xb9,0x35,0xf0,0xf0,0x47, + 0x93,0x60,0x57,0x94,0x9c,0xc2,0x33,0xb0,0x13,0x5a, + 0x6d,0xfc,0xbd,0x1c,0x4a,0xa4,0xcf,0xd8,0x25,0x0c, + 0xdd,0x3b,0x2d,0x04,0xd0,0x3b,0x40,0x97,0x5e,0xaf, + 0x6b,0xa9,0xde,0x4b,0x98,0xd6,0x6c,0xaa,0x12,0x85, + 0x18,0x5c,0x29,0x60,0x4f,0x88,0x5c,0xaa,0x1e,0xdd, + 0x1e,0x4b,0x07,0x17,0x55,0xeb,0xa1,0x10,0x3b,0xd3, + 0xf4,0x8b,0x33,0x6c,0x4c,0x49,0xc0,0x15,0x84,0xfc, + 0x5c,0xa2,0x9e,0xda,0x16,0x46,0x6f,0xed,0x04,0xa4, + 0x78,0xb4,0x30,0x49,0x72,0x24,0x0b,0xcf,0xaf,0xdc, + 0xb3,0xb9,0xb2,0x34,0x0a,0xb9,0x80,0x87,0xc4,0xf7, + 0xb8,0xf6,0xa4,0x41,0xa8,0x0e,0x0d,0x80,0x24,0x9f, + 0xb6,0xd4,0x2a,0x73,0x2d,0xb5,0xfb,0xf7,0xbb,0x9b, + 0x3a,0x7d,0xcf,0x9f,0x3f,0x7f,0x92,0xd7,0x22,0xfa, + 0xe0,0x39,0xfe,0xa5,0x19,0xca,0x39,0x13,0x1a,0x74, + 0xbf,0x17,0x33,0xa8,0x63,0x27,0x15,0xbb,0x3b,0x7c, + 0x42,0xcc,0xd3,0x79,0x47,0x08,0x9a,0xbb,0x0f,0xd8, + 0x37,0xf6,0xd9,0xbb,0xf6,0xbe,0x5e,0x9b,0x33,0x85, + 0xfe,0xfa,0xfa,0x9a,0x6c,0x84,0x7e,0x12,0x20,0xb4, + 0x9d,0x08,0x9b,0xd4,0xf2,0x09,0xee,0xfc,0xa0,0x11, + 0x84,0xe3,0x8d,0x26,0xb7,0x6d,0x99,0x3e,0xba,0xc8, + 0xae,0xc3,0x39,0xe5,0x52,0xd6,0xe8,0xc8,0x9b,0xdb, + 0x69,0xab,0xa4,0x44,0x9b,0xfa,0xfc,0xd3,0x58,0xe2, + 0x96,0x20,0x76,0x1f,0x82,0x1b,0x6d,0x1f,0xd3,0x12, + 0x3c,0x5f,0x5f,0x5f,0x95,0xc6,0x37,0x53,0xf2,0x39, + 0x21,0x56,0x03,0x81,0xef,0x2d,0xd1,0xed,0x63,0xf7, + 0x9b,0x91,0xe6,0xc1,0x4d,0xbd,0x12,0xb7,0x60,0x03, + 0x11,0xbb,0xe7,0x90,0x46,0xb3,0xaf,0x36,0xe2,0xae, + 0x7f,0x7f,0x27,0x3a,0xf0,0x6e,0x7e,0xa4,0x01,0xe0, + 0x80,0x7b,0x14,0x15,0xf7,0xfa,0xbe,0x9f,0xe3,0xfd, + 0xcc,0x74,0x6f,0xb8,0x64,0x6a,0x92,0xbe,0xd7,0x6b, + 0x22,0x1b,0x8d,0x74,0x50,0xf5,0xf1,0xe9,0xb6,0xc7, + 0x4b,0x09,0xd3,0x93,0x78,0x99,0xfe,0xfb,0x6d,0xfa, + 0x2a,0x05,0xd9,0xa1,0x8a,0x7a,0xda,0x83,0x10,0xd7, + 0xce,0xd4,0x7a,0x30,0x95,0xe3,0x84,0x14,0x9c,0x24, + 0x56,0x37,0x1d,0xbe,0x2e,0x99,0x70,0xf7,0x26,0xa6, + 0xb8,0x76,0x28,0x84,0xa6,0x71,0xf4,0x5a,0x29,0x41, + 0x73,0x6d,0xbf,0x44,0x17,0x70,0x9f,0xe1,0xc6,0xa0, + 0xd5,0x9c,0xda,0x71,0xcd,0x36,0x05,0xb0,0x3b,0x8f, + 0x7a,0x9b,0xdd,0x21,0x3d,0xe6,0x20,0xb6,0xf6,0x21, + 0x26,0xbe,0xb9,0xf7,0x8a,0x43,0x2d,0x32,0x0a,0xee, + 0x0c,0x78,0x8f,0xa1,0x80,0x1c,0x97,0x0c,0x4f,0x9a, + 0x6d,0xce,0x06,0x25,0x25,0x75,0xa6,0x50,0x39,0x74, + 0xbf,0x12,0xa3,0x4e,0x3a,0xbf,0x48,0x7c,0xb6,0x7f, + 0xe6,0x94,0x94,0x26,0xe4,0x57,0xe3,0x88,0xdb,0x97, + 0x9a,0x38,0xba,0xb3,0xb0,0x17,0x6d,0xbf,0xb5,0xca, + 0xec,0xd5,0x5c,0x6a,0xb7,0x10,0x8f,0x82,0x94,0x7f, + 0x29,0xf9,0xe9,0x59,0x5e,0x9a,0x3a,0xd1,0xc3,0xae, + 0xbb,0x76,0xbb,0x9f,0x4f,0xd3,0x6d,0x53,0x95,0x09, + 0x01,0xa1,0x08,0xee,0x77,0x9f,0xef,0x50,0x01,0x87, + 0x20,0x50,0x45,0x46,0x23,0xf5,0x74,0x30,0xbb,0xca, + 0xdb,0xa9,0x3e,0xeb,0xc1,0xb9,0xe0,0x0a,0x61,0xe0, + 0xba,0x9f,0x8b,0x40,0xdc,0x8f,0x35,0x44,0x7d,0x60, + 0x45,0x3d,0x6e,0xb4,0x47,0x13,0x88,0xad,0xee,0x4b, + 0x7f,0xe6,0x90,0xa0,0xbc,0xa1,0x28,0x52,0xb1,0x97, + 0xa2,0x9f,0xee,0xe7,0xdb,0x86,0x4a,0xba,0x41,0x87, + 0x90,0x95,0x8e,0xe4,0x40,0x52,0xf2,0x76,0xed,0x74, + 0x08,0xa9,0x56,0x90,0x43,0xc2,0xbe,0xaf,0xbb,0xa8, + 0x70,0x01,0xe2,0x77,0xa5,0xc0,0xa4,0x49,0x8a,0x5b, + 0x93,0x5d,0xb5,0x37,0x11,0x35,0x75,0xfa,0xf3,0x03, + 0x64,0x20,0xe9,0xe5,0x5c,0x13,0x4a,0x46,0x3f,0xb3, + 0x69,0xcf,0xa4,0xa4,0xba,0x1f,0x56,0x1b,0xe7,0xf7, + 0x74,0xe8,0xc0,0x7e,0x3c,0x89,0x57,0x01,0x9f,0x1d, + 0xa7,0x23,0xd3,0xc1,0x6c,0x92,0x7e,0x44,0x7f,0x36, + 0xed,0x11,0xe2,0x82,0x92,0xf1,0x27,0x81,0x4d,0x3a, + 0x5d,0x44,0xeb,0x62,0xcb,0xd5,0x34,0xc5,0xfe,0xd9, + 0x8e,0x9b,0x27,0x87,0xf5,0x69,0x22,0x8f,0x12,0x09, + 0x6a,0x53,0xd1,0xd9,0x9b,0x00,0x83,0x64,0xd6,0x9d, + 0x00,0x80,0x7e,0x1e,0x4f,0xfc,0x9d,0x64,0xf2,0x4a, + 0x28,0x8d,0x4e,0xd1,0x92,0xed,0x55,0xff,0xbd,0x29, + 0xd7,0xe8,0x3f,0x4b,0x48,0x9b,0x5e,0xd3,0x2b,0xbd, + 0x08,0x09,0xf6,0xd7,0x04,0x73,0x1a,0x05,0xce,0x07, + 0x47,0x81,0xac,0x0a,0xa8,0xd2,0xd8,0x38,0xc1,0x2f, + 0xc9,0x94,0xe8,0xc8,0xfe,0x09,0x24,0x2a,0xc9,0x62, + 0xe4,0x10,0xb9,0xc4,0x4c,0x7d,0xad,0x92,0xc2,0xe8, + 0xe5,0x27,0x51,0x9c,0xf1,0xa5,0x5b,0x84,0x87,0x88, + 0xcf,0x54,0xa9,0xd1,0xf8,0xff,0x64,0xf1,0x30,0x4d, + 0x07,0xb8,0x91,0xf0,0xb4,0x91,0xc1,0x66,0x61,0x35, + 0xe6,0x3e,0x29,0x67,0x27,0x1e,0x88,0x72,0x2d,0x54, + 0xf6,0x7e,0x9a,0x74,0x48,0x15,0x9e,0x26,0xee,0xc3, + 0x81,0x71,0xa6,0x60,0xde,0x3f,0x5f,0x25,0xe4,0xff, + 0x46,0x0b,0x48,0x0e,0xf1,0xb3,0xd4,0xd3,0x42,0xf4, + 0x46,0xab,0x72,0xf2,0xe4,0xa1,0x7f,0x4f,0xa4,0x55, + 0x32,0x96,0x74,0x3f,0x23,0x81,0x1a,0x6d,0x1e,0x42, + 0xb2,0xe6,0x78,0x81,0x68,0x8e,0x9a,0xf4,0x5e,0x08, + 0xd1,0x0c,0x6e,0xf3,0x88,0xa8,0x74,0x8e,0x96,0xb3, + 0x2b,0xd0,0x43,0xc3,0xdd,0xf3,0x56,0x8e,0x23,0xc5, + 0x5d,0xb8,0x9f,0xb1,0x15,0xa7,0x49,0xe3,0x44,0xe0, + 0x0f,0x87,0xf1,0x31,0xad,0xaa,0x43,0xc9,0xd7,0xc6, + 0x1b,0x6e,0x52,0xc2,0x76,0xed,0xa3,0xd4,0x1d,0x21, + 0x7e,0x50,0xe2,0xe8,0xdc,0xed,0xce,0x4f,0x86,0x02, + 0x82,0x09,0xad,0x5d,0xdb,0xf4,0xe7,0xc4,0xdd,0x9b, + 0x26,0x3f,0x27,0x9d,0x35,0x6a,0x29,0x92,0x3e,0x95, + 0xa3,0x31,0x90,0x9e,0xd4,0x27,0x93,0x93,0x3d,0x6e, + 0xfe,0x4e,0x0b,0x79,0x51,0x99,0x21,0x6f,0x21,0xf5, + 0x81,0x1d,0xdf,0x87,0xdc,0xdc,0xa7,0xde,0xdf,0xa6, + 0x65,0xb3,0x75,0xaf,0xee,0x68,0x80,0x66,0xa1,0xc4, + 0x13,0x98,0x36,0xa8,0x83,0xed,0x12,0xc7,0x83,0x5e, + 0xee,0x66,0xfa,0x6c,0x22,0xd2,0xa5,0xf7,0x49,0xf7, + 0xb5,0x69,0x1d,0x99,0xcf,0xb5,0x88,0x0a,0x54,0xde, + 0x0e,0xad,0x79,0xb4,0x82,0xa6,0xa0,0xfb,0xc1,0xda, + 0x7c,0x7c,0x76,0x47,0xea,0x92,0xbf,0x0d,0x24,0xbc, + 0x35,0xc1,0xcc,0xf4,0x8c,0x3a,0x52,0x66,0x5a,0xb7, + 0x56,0x9d,0xd9,0x54,0x4f,0x35,0xed,0xdb,0xbe,0xb6, + 0x88,0x6b,0x60,0xd6,0xdd,0xfd,0xa5,0x45,0xeb,0x6f, + 0xe2,0xf5,0x24,0xf1,0xbb,0x69,0xda,0x74,0xc3,0xcd, + 0xd8,0xb4,0xab,0x15,0x95,0x49,0x1c,0xa7,0xd4,0xc2, + 0x49,0x89,0x9a,0xb6,0xad,0x28,0xe9,0xe8,0x5c,0x06, + 0x1a,0x0f,0x86,0x43,0xee,0xd0,0x3b,0xd3,0x83,0x9d, + 0x9c,0xe3,0x13,0xca,0x33,0xdd,0x33,0xa1,0x45,0x60, + 0x8e,0x4c,0xa8,0xed,0x71,0xdc,0x16,0x87,0x8a,0x5f, + 0xa2,0x07,0x94,0xc4,0x0d,0x09,0xfd,0x49,0xc5,0xa5, + 0x1b,0xda,0x48,0x32,0x18,0xce,0xc6,0xe3,0xf2,0x12, + 0x01,0xc7,0xb8,0x20,0x9c,0x14,0xc7,0xa8,0xed,0x48, + 0x93,0x5b,0xfa,0x1c,0xb5,0xb8,0xec,0x05,0x27,0xed, + 0x15,0x7a,0x56,0xee,0x3d,0x12,0xda,0xe6,0x7e,0x26, + 0xf1,0x9b,0x2e,0x18,0x0a,0xa0,0xa2,0x61,0x93,0x3c, + 0xda,0xa9,0xae,0x7f,0xdb,0x5e,0x34,0xd5,0x7e,0x1e, + 0x1c,0x20,0x82,0xcd,0x48,0x88,0x49,0xff,0x5d,0x17, + 0xea,0xf7,0x97,0x63,0xdb,0xc7,0x08,0x62,0x15,0xe9, + 0xfa,0xb8,0x03,0x62,0x3a,0xd0,0x94,0x03,0xe1,0xc8, + 0x67,0xea,0xa6,0x9e,0xda,0x66,0x9d,0x20,0xe6,0xda, + 0x57,0x49,0x78,0x30,0x65,0xe8,0x5a,0x15,0xab,0x04, + 0x38,0x21,0x2c,0xba,0xd8,0x08,0xde,0x73,0x44,0xdd, + 0x7e,0x68,0xba,0x03,0x52,0x13,0x32,0xd7,0x2a,0xa2, + 0x67,0x9d,0x36,0xc9,0x34,0xca,0x09,0x22,0x74,0x45, + 0x7c,0x15,0xd7,0xa2,0x24,0xae,0x8e,0xd9,0x20,0x6f, + 0x9c,0x24,0x41,0x7b,0x0a,0x82,0x77,0xb9,0x69,0x16, + 0x4d,0x2e,0x64,0x9d,0x21,0x29,0x9a,0x92,0x1c,0xc3, + 0x51,0xa9,0xe1,0xd9,0xdd,0xd3,0x70,0x35,0x24,0x21, + 0xf7,0x61,0x55,0x46,0x19,0x3b,0xb5,0x82,0xb5,0x0a, + 0x7d,0x4b,0x2a,0x9d,0x9d,0x4c,0x6a,0x4f,0x04,0xfe, + 0xd3,0x58,0x65,0xd2,0xb0,0x84,0x0b,0x70,0xfd,0xfa, + 0xa8,0x40,0x0b,0xc3,0x1d,0x38,0xca,0xaf,0x2d,0xd2, + 0x05,0x9f,0x6f,0x12,0xd8,0xb3,0xa3,0xd0,0x2d,0x06, + 0x9c,0x50,0x9d,0x9f,0xd4,0x5a,0x80,0x96,0xe7,0x51, + 0x1e,0x91,0x8b,0x8f,0x29,0x86,0xdd,0xd3,0xc1,0x70, + 0x60,0x9d,0xcd,0x20,0x0b,0x3d,0xbf,0xf0,0x6e,0x8e, + 0x9e,0x4d,0x1d,0x3d,0x52,0xa4,0x79,0xe2,0xf5,0x4c, + 0xff,0xa4,0x98,0xaa,0xf4,0x02,0xfa,0x3d,0x57,0xd0, + 0x93,0x6e,0x18,0x9d,0x0d,0x94,0x8c,0x7c,0x92,0x30, + 0x90,0x44,0x4a,0x6f,0x61,0xb9,0xa4,0x9a,0x0a,0x39, + 0x67,0xc4,0x0b,0x2d,0xe1,0x88,0x58,0x51,0x87,0xe4, + 0x1a,0x0c,0x6d,0x1d,0x8f,0x2f,0x4d,0x96,0xd2,0x7b, + 0x78,0xbd,0x5e,0xd7,0x6f,0x73,0x80,0x3f,0x12,0x12, + 0xca,0x22,0x53,0xb6,0x3a,0xc1,0xdb,0x1b,0x5f,0x15, + 0xaa,0x78,0x1d,0x12,0xb3,0xe9,0xb1,0xa6,0xe0,0x1a, + 0xaa,0xaf,0x54,0x79,0xba,0x2a,0xdd,0xfe,0x59,0xaf, + 0xd4,0xdd,0xd4,0x4f,0xff,0xb9,0x89,0x30,0xe9,0xfc, + 0xbd,0x5c,0x62,0xd3,0x3f,0x0f,0xfc,0x90,0xb0,0xef, + 0x3a,0xb9,0x9e,0x4f,0xcf,0x09,0x90,0x16,0x9a,0xb8, + 0x8a,0x10,0xae,0x1e,0xf8,0x9a,0xd4,0x2c,0xda,0x3a, + 0x23,0x32,0xe6,0xf8,0x43,0x7a,0x10,0xb9,0x7d,0xa1, + 0xb7,0xd6,0x93,0xd7,0x56,0x01,0x56,0x3a,0x04,0x12, + 0xd2,0x33,0x79,0xa2,0x49,0xc5,0x57,0x13,0xbf,0xa5, + 0x55,0xa4,0x95,0x82,0xd4,0x60,0x4f,0x71,0xff,0x59, + 0x6d,0xf8,0x1f,0x93,0x86,0x98,0xf2,0x82,0x34,0x69, + 0x49,0x9e,0x7b,0x8e,0x44,0x9b,0x78,0x62,0x01,0x4d, + 0x5d,0xb5,0xa8,0x5a,0xf2,0x75,0x16,0x87,0xe8,0x99, + 0x0e,0x00,0x87,0x10,0xe9,0xa1,0x9f,0xf8,0x4f,0x80, + 0xbc,0x9c,0x05,0x02,0xf9,0x28,0x38,0x92,0xef,0x53, + 0x8a,0x83,0xe9,0xfd,0x0c,0xc8,0x92,0x6b,0x9b,0x9e, + 0x09,0xf5,0x87,0xc2,0x0e,0xff,0xdc,0xa1,0x2b,0x70, + 0x4d,0x67,0xd8,0x63,0x6f,0x05,0x39,0x09,0x77,0x4e, + 0xa8,0xca,0x94,0x34,0x4f,0xc5,0x24,0x21,0xd3,0xe9, + 0x7d,0xa7,0x6e,0x46,0xa2,0x23,0xb8,0xc2,0xc2,0x25, + 0x4a,0x1b,0xbe,0x11,0x15,0x2b,0x74,0xbd,0xee,0x7d, + 0xb9,0x7d,0x3d,0xd1,0x11,0xc8,0xf0,0xba,0xaa,0xfe, + 0xf1,0x02,0x9b,0x60,0x5e,0xe2,0xa3,0xb8,0x03,0xc4, + 0x6d,0x04,0x75,0xd0,0x4e,0x7d,0x41,0xd7,0xc7,0x4e, + 0x2f,0xdb,0x41,0xbf,0x1b,0xed,0x00,0x49,0xf8,0x22, + 0x6f,0x82,0x6c,0x1d,0xfe,0x23,0xce,0xe9,0x9b,0x45, + 0xed,0x82,0x47,0x6a,0x27,0x68,0x50,0xfa,0x44,0xe1, + 0x94,0x34,0x85,0xa6,0xca,0x44,0x55,0x95,0xdd,0x62, + 0xa4,0x9e,0xb2,0x56,0x82,0x9b,0xe7,0x42,0xef,0xd2, + 0x11,0x50,0xf5,0xb3,0x65,0x23,0xe2,0x44,0x4f,0xf0, + 0x16,0x3a,0xe4,0xd5,0x76,0x8f,0x5c,0xd2,0xb4,0x8d, + 0x4e,0x88,0xb8,0x96,0x84,0x43,0x41,0xf5,0x70,0xd6, + 0xfe,0x7d,0xef,0x99,0x93,0x30,0x1f,0x1c,0xec,0xe7, + 0x1a,0xc6,0xa6,0x27,0x52,0xa3,0xfa,0x7e,0x25,0x41, + 0xbb,0x44,0xb8,0xa7,0x96,0x54,0x98,0xe4,0x7c,0xd3, + 0x24,0x4a,0x6a,0xf5,0x8b,0x69,0xc0,0x43,0x5e,0x5b, + 0x81,0x13,0x74,0x26,0x5d,0xae,0x2b,0x28,0x8a,0x2b, + 0x17,0xcc,0xa1,0xc0,0xfd,0xef,0x26,0xee,0x4b,0x3a, + 0x40,0xf4,0x7d,0x69,0xc2,0xd5,0x63,0x9b,0x6a,0x5b, + 0x5d,0xa0,0xe1,0x75,0xb7,0x17,0x4c,0x45,0x7d,0xc8, + 0xfb,0xd1,0xb4,0x21,0x1f,0x9a,0x3a,0xce,0x12,0xa9, + 0x5f,0x9f,0x4e,0x56,0xa9,0x1f,0xdd,0xb6,0x65,0x3a, + 0x21,0xf6,0x8a,0x0a,0x6f,0xf8,0x58,0x97,0xb1,0x43, + 0xb9,0x8c,0xbd,0x08,0xa1,0x30,0x46,0x1f,0xc7,0x09, + 0x4b,0x1e,0xc3,0xcb,0x3a,0x8b,0xbd,0x1e,0xf7,0xb8, + 0x5b,0x9f,0x24,0x7f,0x90,0xce,0x01,0x6a,0x5f,0xa6, + 0x56,0xd6,0x86,0x03,0xba,0x7d,0x7f,0x14,0x73,0x52, + 0xc1,0xf0,0x3b,0xf4,0x96,0xb1,0x8d,0x61,0x14,0x38, + 0x8b,0xb2,0x2c,0x47,0x7a,0x26,0xad,0x20,0x85,0x77, + 0x5f,0xaf,0x57,0x6d,0x5a,0x4d,0x37,0x6a,0xe5,0xc6, + 0xac,0xcd,0x41,0x5b,0xd3,0xa1,0xb7,0xd5,0xb1,0x49, + 0x5a,0x25,0x13,0x17,0xc4,0x55,0xbc,0x2a,0x06,0xa5, + 0x87,0x82,0x99,0xc2,0xba,0xa8,0x95,0xd5,0x2a,0x94, + 0x63,0x78,0x1c,0x0f,0xa4,0xe9,0x7e,0x36,0x66,0x73, + 0x15,0xa1,0x5e,0xce,0x67,0xc5,0x18,0xa7,0x56,0x42, + 0x86,0xb4,0x1d,0x64,0x0c,0x17,0x0b,0xfa,0xf4,0xce, + 0xbd,0xfc,0x21,0x13,0x30,0x99,0xc2,0x42,0x8b,0xca, + 0x3d,0x9f,0xa4,0xd9,0xf4,0x76,0x5d,0x3a,0x0a,0xab, + 0x08,0x8d,0xd1,0xae,0xfa,0x99,0xfe,0x72,0x6d,0x25, + 0xe7,0xf0,0x1e,0xdc,0x96,0xcf,0xe5,0x5e,0x1a,0x7b, + 0xbb,0x3d,0xf4,0x80,0x26,0x7e,0x0f,0x24,0x25,0x0f, + 0xc4,0x02,0xd6,0x7d,0x4d,0xa3,0xe9,0xa9,0x42,0x26, + 0xa4,0x21,0x71,0x05,0x92,0x27,0xd6,0x87,0xff,0xa4, + 0x51,0xf3,0xc8,0x97,0xe9,0x3e,0x82,0x57,0xd0,0x71, + 0x99,0x9c,0xea,0x1d,0x0f,0x84,0x12,0xaf,0x89,0xf7, + 0xa3,0xad,0xfd,0x05,0x3a,0x13,0xab,0x6f,0x40,0xdb, + 0xce,0x66,0x2d,0x91,0x27,0x9a,0x9b,0x32,0x0b,0xd3, + 0xa5,0x6e,0x4a,0xee,0x18,0x3a,0xc5,0xd9,0xa8,0x4e, + 0x53,0xc1,0xbd,0x3d,0xc8,0x1d,0x82,0xe8,0x92,0x0f, + 0x42,0x48,0x48,0x1f,0x28,0xd9,0x7f,0x38,0x29,0x86, + 0xfb,0x9c,0x36,0x94,0x8f,0x43,0xfc,0x54,0xd7,0x3a, + 0xa2,0x44,0x7e,0xa2,0x79,0xb8,0xd6,0x53,0xe0,0x03, + 0x9e,0x94,0xc8,0x4f,0x05,0xb2,0x43,0x2d,0x35,0xb6, + 0xf4,0xbf,0xfb,0xed,0x46,0xe7,0xa8,0xfa,0xda,0x90, + 0x27,0x5b,0xe0,0xc7,0x83,0xc2,0x1c,0xee,0xc7,0x8d, + 0xf5,0xea,0xa1,0x3f,0x7c,0x1f,0xfe,0x99,0x23,0x99, + 0xd2,0x82,0x4a,0xd0,0x34,0xe8,0xd9,0x8c,0xda,0x2a, + 0x7a,0xd8,0xba,0x96,0x9e,0xb6,0x78,0xa8,0x75,0xa4, + 0xfc,0x16,0x1a,0x8f,0x9f,0x44,0xab,0x52,0xcb,0x8f, + 0xfa,0xb3,0x04,0xa7,0xaa,0x46,0x4d,0x6a,0x83,0xb8, + 0x6e,0x98,0xe3,0x57,0xb9,0xd6,0x4e,0x6a,0x71,0x0e, + 0xfc,0x93,0x37,0xcd,0xa1,0x61,0xd4,0xd8,0xf2,0xc8, + 0x0c,0x1f,0xa1,0x12,0xc1,0x1b,0x08,0xec,0x56,0x12, + 0x41,0x13,0xb2,0xe4,0x59,0x97,0x04,0x48,0x4d,0x4b, + 0x03,0x93,0x20,0x77,0xf8,0xf4,0xf1,0x7a,0x4a,0x26, + 0x52,0x55,0x9d,0x0a,0x15,0xa7,0x75,0x42,0xef,0x33, + 0xf1,0xe5,0xf4,0xcf,0x95,0x97,0x95,0x94,0xad,0x5d, + 0x82,0x40,0xe8,0x6a,0x4a,0x96,0x08,0xa6,0x9f,0xb8, + 0x13,0xfd,0xb3,0x08,0xb6,0xa7,0xb1,0x72,0x4d,0x08, + 0x5c,0xc1,0x49,0x9e,0x5e,0x8a,0xbc,0xa7,0x31,0x79, + 0xbd,0x0e,0x45,0x59,0x08,0x99,0x72,0xd3,0x58,0xf4, + 0x5c,0x61,0x92,0x75,0x44,0xc3,0x13,0xa7,0xec,0x93, + 0x43,0x12,0x8a,0xfc,0xa3,0x5c,0x28,0x78,0x9f,0x27, + 0xb5,0x2d,0x89,0x53,0x9a,0xb4,0xd2,0xa8,0x0d,0x36, + 0x75,0x14,0x68,0x3f,0xa6,0x98,0x4d,0xad,0x69,0xe5, + 0x0a,0xba,0xc4,0xc1,0xed,0x89,0xcd,0x50,0xc3,0xe5, + 0x4d,0x6a,0xaf,0x45,0x0c,0x9b,0x5a,0x5e,0x27,0x89, + 0x31,0x3a,0x59,0x0b,0xbd,0xdf,0xdf,0x81,0x0b,0x11, + 0x7b,0xaf,0xb4,0x80,0x1d,0x8c,0x6f,0x46,0xdc,0x8b, + 0x5a,0x33,0x8b,0xa0,0xf4,0x56,0xe5,0x4f,0x07,0xf5, + 0xa6,0x5f,0x0a,0x1b,0xe3,0x41,0x40,0x05,0x0d,0x9e, + 0x37,0x02,0xae,0x13,0x5f,0xda,0xb6,0xc9,0x88,0x93, + 0x33,0x1d,0xd6,0x7a,0x7f,0x0a,0x61,0x7e,0x30,0x52, + 0x4a,0x50,0x7e,0x75,0xb2,0xa5,0x22,0x3b,0x43,0x2f, + 0xfc,0xa1,0x6b,0xe3,0x24,0x10,0x5c,0x62,0xe1,0xb4, + 0x20,0x12,0x12,0xe5,0x92,0x0c,0xe5,0xf6,0x18,0x4d, + 0x89,0x37,0xa4,0x71,0xe2,0xd5,0x2c,0x51,0x82,0x0a, + 0x7c,0xa9,0x1f,0x94,0x88,0x5a,0x79,0x37,0xa2,0x1a, + 0xd0,0x14,0xab,0xd7,0x65,0xec,0x27,0x7e,0xb4,0x80, + 0x28,0xd9,0x30,0x01,0xdb,0x72,0x7c,0x36,0x1c,0x84, + 0x54,0x19,0xa6,0x43,0x6a,0xaa,0xf2,0xa6,0xbd,0x92, + 0x92,0xe2,0xfe,0x1c,0xb6,0x5c,0x43,0x87,0x48,0xa4, + 0x03,0xdd,0xf1,0x7d,0xe0,0xfe,0xd2,0xc4,0x96,0x6d, + 0xcb,0x6a,0xeb,0x8f,0xde,0xdd,0x65,0x26,0xbe,0x92, + 0x2a,0xb2,0x6b,0xd1,0x38,0x03,0xcc,0x5e,0x48,0x92, + 0xde,0x92,0x93,0x4d,0x70,0xc9,0x02,0x4c,0x35,0xa1, + 0x1f,0x14,0x09,0x68,0x02,0xaa,0xf4,0xf6,0xec,0x9c, + 0x7c,0x8b,0x43,0x66,0x53,0x81,0x30,0x9d,0x45,0xdd, + 0xca,0x86,0xfc,0xca,0x34,0x41,0x75,0xa2,0xa5,0xa0, + 0x4b,0x66,0x13,0xe7,0x2d,0x87,0x96,0x84,0x27,0x27, + 0xae,0x6b,0x22,0x78,0x4f,0xb9,0x00,0x4d,0x41,0x03, + 0x5d,0xe6,0x6c,0x0a,0xda,0xe4,0x7b,0x47,0x05,0x58, + 0x6a,0xf7,0xe9,0xb3,0xfb,0xed,0xe0,0xf8,0xcb,0x10, + 0x58,0x7b,0xab,0x69,0x3b,0x82,0x0a,0x6d,0x91,0xc8, + 0x2d,0x51,0x14,0x49,0x49,0xbc,0x0b,0x18,0xf5,0x91, + 0xc4,0x98,0x45,0x58,0xb2,0x29,0xdf,0xaa,0xe5,0x49, + 0x60,0xd0,0x59,0x0b,0x68,0xf2,0xe3,0x10,0x28,0x87, + 0xee,0xdc,0x2d,0x30,0x42,0x33,0x5c,0x3b,0x49,0x5b, + 0x54,0xd4,0x36,0x72,0xd3,0x46,0xd2,0x57,0xc7,0x16, + 0xa1,0x0b,0x52,0x0e,0xd1,0x92,0x05,0x6e,0xed,0x45, + 0x28,0x38,0x92,0x88,0xa5,0x2e,0xe4,0x3f,0x7f,0xfe, + 0x38,0xbb,0x8f,0xc7,0xf7,0x49,0x4f,0xbd,0x20,0x00, + 0x95,0x49,0x16,0xec,0xfb,0x1f,0xe4,0x21,0xdc,0x34, + 0x9d,0x56,0x3c,0x05,0x32,0x0f,0x0f,0x11,0x45,0xa3, + 0xdc,0x5b,0xc4,0xc1,0x11,0x8f,0xbe,0xa2,0xd1,0x6e, + 0x85,0xbf,0x2f,0x20,0x5b,0xf7,0x96,0x08,0x21,0x0a, + 0x66,0xad,0x8c,0xc4,0xfa,0xde,0x62,0x99,0xda,0x04, + 0xe9,0xb3,0x37,0xa3,0xf6,0xae,0x4d,0x9a,0xda,0xf7, + 0xe0,0xc9,0x96,0x0e,0xaf,0x10,0x76,0x32,0x61,0x57, + 0x27,0x96,0xf4,0x60,0xd0,0x2a,0x19,0xe2,0xcf,0x09, + 0x74,0x80,0x93,0xc6,0xab,0x41,0xf4,0xee,0x84,0x96, + 0xcf,0x81,0x96,0xe3,0x99,0x0e,0xdd,0x61,0x5c,0x1b, + 0xbf,0x17,0x78,0x1b,0x87,0x54,0x7f,0x93,0x34,0xc8, + 0xe0,0x62,0x8e,0xa6,0xa9,0x64,0x5e,0xea,0x92,0xce, + 0x2d,0xb2,0xe2,0xce,0x0b,0x6d,0x41,0x4e,0x44,0xe7, + 0x49,0xaa,0x41,0x0b,0x98,0x84,0xb8,0xb9,0x45,0x1b, + 0x90,0xba,0x15,0xaf,0x75,0x40,0xcc,0x62,0x1b,0x7b, + 0xda,0x48,0x09,0xe5,0x4f,0xd4,0x9d,0x04,0xd0,0xbc, + 0xc5,0x52,0xcd,0xfc,0x29,0xd9,0x70,0x22,0x45,0x4a, + 0xae,0x73,0x48,0x44,0xaa,0x68,0x1c,0x4c,0x96,0xe0, + 0x7f,0x82,0xfb,0x1c,0xb4,0x4c,0xd0,0xe3,0xc6,0x01, + 0x3c,0x59,0x69,0xc0,0x54,0xc4,0xb9,0x5b,0x41,0x0d, + 0x61,0x38,0x7a,0xb0,0xb8,0xcf,0xed,0x7a,0x05,0x04, + 0x4b,0x3b,0x81,0x34,0x25,0x17,0x53,0x65,0xbe,0x81, + 0x1e,0x13,0x5c,0x99,0x54,0x63,0xc9,0xd4,0xd6,0x1c, + 0xa8,0x67,0x03,0x57,0x53,0x80,0xd2,0x51,0xcb,0xd4, + 0xc2,0xec,0xdf,0xdd,0xd1,0x9e,0x05,0xc9,0xf5,0xc0, + 0xbd,0x9c,0x10,0xf0,0xce,0x34,0xb6,0x1d,0xa6,0xab, + 0xce,0xd4,0xc7,0x26,0xdf,0x24,0x19,0x7b,0x7e,0x98, + 0xf0,0xa6,0xb5,0x3b,0x4d,0xd9,0x84,0x7d,0x70,0x93, + 0x7f,0x0f,0x21,0x15,0x04,0xc3,0x4f,0xc8,0x8b,0x13, + 0x64,0xd3,0xf1,0xdf,0xa9,0x75,0xd0,0x8a,0x84,0x93, + 0x8c,0x61,0x75,0x58,0xc2,0x14,0x0a,0xc8,0xf3,0xe9, + 0x1a,0x66,0xae,0x52,0x0f,0x24,0xfa,0xe3,0x08,0xf0, + 0xc9,0x92,0xc3,0x59,0x15,0xc0,0xe4,0xed,0xa1,0xf8, + 0xa6,0x88,0x51,0xaa,0xa0,0xd5,0x2e,0xc2,0x54,0xf1, + 0xa3,0x3d,0xc6,0xb4,0x8e,0x1c,0x6a,0xdf,0xf9,0x6d, + 0x2a,0x2e,0xf8,0xe7,0xcf,0x9f,0x28,0x54,0xa8,0x08, + 0xdf,0x27,0xad,0xa3,0x34,0xa2,0x1d,0xe2,0x84,0x8b, + 0x4d,0x87,0x0e,0xf2,0xe9,0x5c,0x05,0x83,0xd3,0x93, + 0x7c,0xb1,0xb6,0xc0,0x43,0x8a,0x49,0x21,0x39,0xb0, + 0x67,0xd1,0xc6,0x15,0x22,0x9c,0xcf,0xc7,0xe5,0x18, + 0x29,0x56,0x6c,0x4d,0xbe,0xd3,0x99,0xe7,0x5a,0x8a, + 0x6e,0x38,0xea,0x95,0x12,0x0c,0x37,0xa1,0x90,0x0e, + 0xb2,0x94,0xed,0x6f,0x3d,0xa8,0xdc,0x83,0x35,0x7d, + 0xfe,0x33,0x8d,0x94,0x52,0xcb,0xc8,0x25,0x44,0x81, + 0x17,0x74,0xdc,0x4b,0x4b,0x93,0x60,0xae,0xf5,0x45, + 0xc1,0x5d,0x0f,0xb3,0x89,0xab,0x41,0x09,0xd5,0x16, + 0x71,0x31,0x90,0xf2,0x99,0x12,0x3f,0x97,0x6c,0x0d, + 0x93,0x13,0xb1,0xc2,0x33,0x88,0x11,0x3e,0xd3,0x54, + 0xf9,0xb5,0xe0,0x7c,0x9c,0x79,0xe3,0x05,0x53,0x38, + 0xa4,0xae,0x9a,0x0e,0x74,0xad,0xaa,0x68,0x14,0xd4, + 0x25,0x0d,0x2e,0x09,0x9b,0xb8,0x25,0xae,0x6d,0x92, + 0x36,0xf1,0xed,0xd4,0x4e,0x4a,0xc2,0xc0,0x61,0x3a, + 0x6e,0x3f,0x4c,0x87,0xc6,0xed,0xdc,0xdc,0x93,0x0d, + 0xe2,0x68,0x4c,0xad,0xdf,0xcd,0x1a,0x1f,0x12,0xf7, + 0x3e,0x81,0x76,0x26,0x5e,0x44,0xfa,0x33,0x4d,0x42, + 0x54,0xa4,0xcf,0x1c,0x5a,0x27,0x1d,0x98,0xad,0x22, + 0x3e,0x9a,0xbc,0xea,0x54,0x90,0x26,0x7a,0xb2,0x56, + 0x92,0x0d,0xc7,0x71,0x4a,0xc5,0xf4,0x7b,0x94,0x70, + 0x24,0xf4,0x82,0x92,0x2b,0x6b,0x2b,0x20,0x7b,0xef, + 0xbe,0x9f,0x3b,0x91,0xb9,0x82,0x0d,0x09,0x68,0x78, + 0x3d,0x12,0x10,0x87,0xd8,0xa5,0xa9,0x65,0xfa,0x33, + 0x87,0x90,0xa5,0x62,0x69,0x4a,0x3c,0x16,0x07,0xb7, + 0x2d,0x9c,0x49,0xd3,0xca,0xf1,0xbe,0x5c,0x32,0x26, + 0x5c,0xcc,0x43,0x5a,0x7a,0x43,0xa7,0xe4,0xa3,0xe2, + 0x44,0x13,0x25,0x1a,0x80,0x0a,0xed,0xed,0xd3,0x0b, + 0x01,0x45,0xc9,0x27,0xcd,0xb8,0x09,0x08,0x71,0xef, + 0xee,0x7e,0x36,0x9a,0x13,0xfc,0xd6,0xde,0xe2,0x94, + 0x91,0x25,0x08,0x74,0x83,0x32,0x24,0x8e,0x0e,0x04, + 0xcd,0xc9,0x25,0x1b,0xc9,0x97,0x21,0xf8,0xa2,0x0b, + 0x7a,0xe2,0x38,0x2c,0xa6,0x8a,0x2e,0x35,0x90,0x9b, + 0xc8,0xc7,0xca,0x7d,0xe9,0xc4,0xf0,0x0b,0x84,0x08, + 0x8d,0xff,0x90,0x4e,0x06,0x3d,0x7e,0xce,0xbd,0xcb, + 0xf0,0xfe,0x8e,0x21,0xc3,0xc6,0x89,0x2e,0xd7,0x37, + 0x9e,0x88,0xc3,0xae,0x45,0x41,0x1a,0x49,0xf7,0x67, + 0x7c,0x7d,0x7d,0xad,0x5a,0x61,0xda,0x22,0x34,0x09, + 0x74,0x99,0xef,0x4e,0x9a,0x3c,0x24,0xb6,0x68,0x09, + 0xc7,0x26,0x78,0x3d,0xa6,0xc3,0x04,0x45,0x28,0x27, + 0xb4,0xa9,0x9c,0xab,0xd4,0x2a,0x6d,0x49,0x6e,0x4d, + 0xc9,0x8d,0x40,0xff,0x35,0x49,0xcb,0x0f,0x10,0xf3, + 0x59,0x18,0x94,0x56,0xea,0xc5,0x03,0x87,0xe8,0xa4, + 0x84,0x7c,0x42,0x33,0x1d,0xff,0x45,0x11,0x23,0x42, + 0x84,0x9d,0x93,0x7d,0x72,0xb9,0x36,0xf7,0x76,0x5c, + 0x9b,0xc3,0xb5,0x30,0x92,0xca,0x73,0x80,0xf9,0x4f, + 0x78,0x2f,0x07,0x10,0x21,0x2b,0x0b,0xa1,0x42,0x79, + 0x74,0x9d,0xb4,0xb6,0x97,0xe4,0xe4,0x03,0x74,0x02, + 0xa7,0xbf,0x74,0xe8,0x5d,0x27,0x45,0xe6,0xd0,0x02, + 0x1e,0x0f,0x68,0x29,0xa2,0x7e,0x10,0xfd,0xae,0xd4, + 0x6d,0x10,0xac,0x33,0x89,0x38,0xa6,0xe2,0x76,0xa3, + 0xba,0xef,0x80,0x85,0xe4,0x32,0xaf,0x60,0x01,0xb4, + 0xba,0x8e,0x91,0x8c,0x38,0xce,0xdb,0x2f,0x99,0x64, + 0xbb,0xb5,0x0a,0x05,0x17,0x3e,0x9f,0xc5,0x19,0x75, + 0xc0,0x0f,0x13,0xa7,0x03,0x5d,0xeb,0xd2,0xc5,0x85, + 0xaf,0xaf,0xaf,0x7f,0x5a,0x60,0xd4,0x3b,0xa6,0xfc, + 0x65,0x93,0xd8,0x24,0xd8,0xec,0x82,0x49,0x0c,0xf7, + 0x19,0xae,0xe2,0x0d,0xf0,0xe0,0x31,0xe8,0xca,0xd9, + 0x92,0xa7,0x12,0x9c,0xb7,0x80,0xfd,0x4e,0xf2,0xfc, + 0x9a,0xda,0x5b,0xb4,0xd9,0xa7,0xec,0x3a,0x25,0x62, + 0xe6,0xd9,0x59,0x88,0x73,0xa3,0x42,0xba,0x21,0xc5, + 0x75,0x69,0x84,0x64,0xa2,0xa7,0x87,0xa7,0x33,0x6d, + 0x85,0x6b,0x1d,0x2b,0xb0,0xf4,0x2e,0xd5,0x7a,0x80, + 0xb8,0x23,0xae,0x12,0xd4,0xdf,0x49,0xee,0xd7,0x1b, + 0x51,0x32,0x93,0xa4,0xe3,0xf7,0xb6,0xa0,0x75,0x74, + 0x5d,0x40,0x22,0x71,0xc2,0xf7,0x38,0x0e,0xca,0x51, + 0xb4,0xc2,0xb4,0x29,0xc6,0x96,0x6b,0x3a,0x04,0x04, + 0x31,0x3a,0xad,0xdd,0x74,0x5a,0x77,0x4e,0xff,0xdb, + 0xb5,0x8c,0xaf,0x4f,0xfe,0x01,0x12,0xfa,0xd1,0x36, + 0x45,0x5a,0xcf,0x0d,0xca,0x3f,0xb4,0xd6,0xb4,0x2d, + 0x49,0x53,0x89,0x09,0xa1,0x71,0x68,0x07,0xa1,0x57, + 0x14,0xcb,0xa0,0x05,0x87,0x0a,0xc4,0x0e,0x4d,0xa2, + 0xfd,0x40,0xb4,0x07,0x39,0x7c,0x8f,0x0a,0x82,0x06, + 0x55,0xfb,0x11,0x45,0xa3,0xfb,0x4c,0xb1,0xc9,0x65, + 0x25,0x4e,0xbb,0x68,0x43,0xbe,0x77,0x4a,0xe7,0xd4, + 0xca,0x99,0x04,0x03,0xc5,0x0a,0xe5,0x24,0x8a,0xc2, + 0xa0,0xbf,0x65,0x11,0xba,0xd4,0xc9,0xa1,0xb5,0x4a, + 0xca,0xcd,0xee,0x5c,0xa2,0x73,0x33,0x15,0x64,0x5a, + 0x58,0xdd,0xa8,0x20,0x75,0x3e,0x28,0xa6,0x7d,0x22, + 0x31,0xe0,0x5a,0xd2,0x90,0x28,0x9d,0xd7,0x24,0x60, + 0xb7,0xe8,0x1b,0x62,0x3f,0x7c,0xe2,0xa0,0x18,0x0e, + 0xc7,0x99,0x38,0x3a,0xc2,0x67,0xc0,0xf6,0x0d,0x09, + 0x39,0x51,0x4f,0x5a,0x89,0x8a,0x7a,0x5f,0xda,0x77, + 0xa7,0xfe,0x2a,0x69,0x8f,0x6c,0xdd,0xe9,0xe9,0x19, + 0x4f,0x55,0x8b,0xf3,0x8c,0x71,0x9c,0x10,0x25,0xa9, + 0x6e,0xaa,0xfd,0x09,0x56,0x26,0x32,0x6a,0x12,0xc9, + 0xa2,0x24,0x6f,0x41,0x94,0x3d,0x29,0xf0,0x50,0x62, + 0x1a,0x0e,0x85,0x58,0x5d,0xbb,0x04,0xb6,0x27,0x96, + 0xb2,0x96,0x0e,0x25,0x1c,0x97,0xd1,0x23,0x31,0xeb, + 0xf0,0xd0,0xf5,0x51,0xdb,0x32,0xb4,0x0f,0x0f,0xb5, + 0x70,0x87,0xa9,0xc9,0x33,0xdc,0x07,0x22,0x45,0x7f, + 0xa1,0xab,0x13,0xa7,0x57,0x84,0x6f,0x83,0xeb,0x63, + 0xe3,0x55,0x77,0x27,0x78,0xce,0x82,0x23,0xa9,0xdc, + 0x53,0x32,0x06,0x3a,0x2d,0x8f,0x9f,0x0d,0xad,0xbb, + 0xf4,0x3c,0xce,0x30,0x21,0x77,0x42,0x72,0x71,0x36, + 0x45,0x82,0x16,0x1b,0x20,0x5a,0x7a,0xa0,0xaa,0x26, + 0xc5,0x64,0x27,0xe8,0xf7,0x68,0xff,0x7c,0xca,0x67, + 0x71,0xa8,0x45,0x68,0x93,0xd9,0xa4,0x19,0x3a,0x1a, + 0xc7,0x1c,0xf2,0x87,0x86,0x01,0xb4,0x95,0x49,0x89, + 0x49,0xda,0x0f,0x3d,0xe6,0xd2,0xd4,0xa6,0x4b,0x22, + 0xb4,0x05,0xa5,0x31,0xe8,0xe6,0x4c,0x4d,0xb4,0x0b, + 0xb7,0xc6,0x27,0xc9,0x05,0xb2,0x3a,0x99,0x34,0x92, + 0x4c,0x61,0x8c,0xcf,0x8a,0xd0,0xc4,0xe9,0xdc,0x23, + 0x5b,0x8f,0x94,0x94,0xf6,0x98,0xf2,0x72,0x87,0xc4, + 0x90,0xe1,0x8e,0xad,0xaf,0xa4,0x68,0x49,0x81,0x8c, + 0x7a,0xaf,0x44,0xb0,0xa5,0x03,0x4d,0x7d,0x9f,0x88, + 0x10,0x45,0x4a,0xaa,0x29,0x59,0x4b,0xf0,0x26,0xb5, + 0xdf,0x2e,0x43,0x22,0x03,0x01,0x2a,0x57,0xb5,0x1f, + 0xe7,0x57,0x95,0x9c,0xc1,0x27,0xee,0x03,0xf5,0x93, + 0xdd,0xf5,0x6c,0xdf,0x3b,0xa0,0x6c,0xe4,0xa9,0xe4, + 0x90,0x97,0x03,0x68,0xd8,0xa1,0x76,0x14,0xb4,0x5c, + 0x0e,0xf0,0x36,0x88,0xac,0x6a,0x09,0x9f,0xaa,0x3e, + 0x6b,0x02,0xc6,0x11,0xbe,0x11,0x6a,0x66,0x08,0x12, + 0x77,0x54,0x3e,0x9e,0x5c,0xc5,0x1d,0x14,0x4d,0x49, + 0x0a,0xf1,0x17,0x14,0xb9,0x70,0xc8,0x60,0x28,0x7c, + 0xde,0xd0,0x98,0x54,0x71,0x25,0x14,0xd3,0x78,0x5b, + 0x3d,0x0e,0x04,0x07,0xbd,0x6f,0xe2,0x8b,0x1e,0x2a, + 0xe6,0xc0,0x3c,0xdf,0x09,0xeb,0x49,0x48,0x0a,0x48, + 0x78,0x1c,0xb7,0x3e,0xdc,0x41,0xfb,0xfd,0xf9,0x27, + 0xa9,0xad,0x2b,0xf7,0x2a,0x70,0xbf,0x26,0x13,0xcb, + 0x43,0x89,0xd8,0x90,0xfc,0x1c,0x27,0x5c,0xa8,0xd7, + 0x13,0x38,0x45,0x63,0x5c,0x4c,0x7f,0xe6,0x0a,0x27, + 0xd0,0x7d,0x39,0x9b,0x7d,0xad,0x9e,0x5b,0x54,0xf0, + 0x84,0x22,0xf6,0x1a,0x10,0x38,0x6c,0xff,0x84,0xf6, + 0xdf,0x21,0xd1,0x4a,0xe2,0xa0,0x12,0x6a,0x11,0x84, + 0x36,0x2d,0x48,0x71,0xaf,0x71,0x6a,0x4d,0x27,0x8f, + 0x38,0xd7,0x09,0x49,0x85,0xbc,0x79,0x9f,0x27,0xa1, + 0x49,0x6e,0x62,0x31,0xe9,0x7b,0x6d,0xd4,0xdb,0x43, + 0xfc,0x5c,0x0d,0xff,0xdc,0xcf,0xe6,0x37,0x1d,0xea, + 0x6d,0x73,0x14,0x5c,0x40,0xfd,0xad,0xd1,0x9c,0x72, + 0x6e,0x12,0x72,0x42,0x9c,0x16,0xaa,0x3e,0xbf,0xfb, + 0xb7,0x65,0xb2,0xcb,0x52,0xdf,0xb0,0x20,0x58,0xf7, + 0x38,0xd4,0x3a,0xd7,0xe5,0x3b,0xe0,0xba,0xd1,0xe9, + 0x28,0xfe,0x38,0x25,0x5b,0x53,0x3b,0x6c,0x42,0x49, + 0xdc,0x34,0x82,0x79,0x16,0x8f,0x56,0x82,0x4b,0x20, + 0xc3,0xb3,0xc6,0x51,0x77,0xd7,0xa7,0x7d,0xbd,0x5e, + 0x3f,0xcf,0x5d,0xf5,0x37,0x8c,0x95,0x44,0x6d,0xef, + 0x51,0x21,0x76,0xe2,0x83,0x69,0x92,0xe2,0x0e,0x14, + 0xd5,0x75,0x50,0x35,0x71,0xf5,0x81,0x9a,0x48,0xd4, + 0x7d,0xbd,0xea,0xe1,0xac,0x1c,0x34,0x6a,0xc3,0x7d, + 0x7d,0x7d,0x55,0x4f,0xe2,0xa1,0x27,0x4f,0x4a,0xd9, + 0xee,0x19,0x3e,0xb8,0x48,0xe9,0xb0,0x22,0x37,0xef, + 0xfb,0x03,0x36,0x6d,0xe3,0x54,0x75,0x4e,0x89,0x8d, + 0x3b,0xac,0x53,0x2b,0xbb,0x2b,0x51,0x4f,0x24,0x56, + 0x48,0x04,0x70,0x7c,0x3b,0x55,0xa6,0xfd,0xe0,0x49, + 0x05,0x9c,0x16,0x33,0x24,0x26,0x48,0xf6,0x0e,0xe4, + 0x9d,0x34,0x21,0x83,0xa9,0xed,0x7e,0x05,0x81,0xba, + 0xe0,0x63,0x76,0x88,0xd0,0x0f,0x55,0xfa,0x86,0xe8, + 0x6f,0xf9,0x40,0xe4,0x5b,0x15,0xb8,0x43,0xb1,0x8d, + 0x29,0x7b,0xc2,0x4e,0x6f,0x89,0xde,0x59,0x8c,0xd7, + 0x9f,0xc8,0x35,0xb8,0xf6,0x3b,0x39,0xba,0xd3,0x41, + 0x4f,0xa0,0xc4,0x14,0x8b,0xdd,0x9a,0x50,0x59,0x8e, + 0x7b,0x0f,0xa5,0xd1,0x75,0xfa,0xec,0x24,0xf8,0x98, + 0x3a,0x16,0x8e,0x67,0xa7,0x5c,0x25,0xf7,0x99,0x93, + 0x88,0x64,0x3a,0x5b,0xf5,0x9f,0xdf,0x09,0xd1,0x48, + 0x7d,0xc8,0x4d,0x52,0xd3,0x6f,0x8c,0xdc,0xcb,0x81, + 0x58,0x56,0x0a,0xef,0xd1,0xf7,0x4f,0xc6,0x72,0x13, + 0xe1,0xca,0x68,0x0f,0xc5,0xc4,0x62,0x32,0x73,0x4c, + 0x6d,0x83,0xd4,0xdf,0xdd,0x2c,0x32,0xe9,0x67,0x5b, + 0xd2,0xb4,0xdb,0xa0,0x49,0xf4,0x4b,0xd5,0xb8,0x15, + 0x6d,0x52,0x32,0xb4,0xab,0xe4,0xa7,0xfe,0xbc,0x26, + 0x2d,0xdf,0x81,0xbe,0xb6,0x6b,0x4a,0x55,0xb5,0xd5, + 0xa6,0x43,0x37,0xb3,0xaa,0x75,0x6b,0xb2,0x60,0xa0, + 0x5a,0x47,0xfa,0xc6,0xca,0xb6,0x27,0x31,0x4e,0xb5, + 0xbc,0x6b,0x58,0x29,0xf7,0x48,0xef,0xcb,0x3d,0x27, + 0xd1,0xf3,0xa8,0xc4,0x23,0xd2,0x9f,0xa3,0xa0,0x64, + 0xd0,0xc2,0xda,0xf2,0xb4,0xe8,0x20,0x76,0x2e,0xf1, + 0x0b,0x62,0x73,0x5c,0xfb,0x53,0xfb,0x80,0x60,0xc7, + 0x4f,0x12,0x31,0x78,0x9e,0x67,0x6b,0x38,0xaa,0x55, + 0xa4,0xd1,0xfb,0x72,0xbc,0xa3,0xc9,0xaf,0xeb,0xb8, + 0xa4,0x3e,0x21,0x98,0xcb,0x96,0xda,0x01,0xf2,0x7d, + 0x1a,0x42,0x21,0x33,0xd5,0x03,0x22,0x82,0x48,0x9e, + 0x86,0x78,0x3c,0x59,0x81,0xd8,0x0f,0x4e,0x9a,0x38, + 0x94,0x20,0x3a,0x64,0x8e,0xde,0x2d,0x75,0x30,0x4c, + 0x42,0x85,0xc9,0x4a,0xea,0x76,0xa4,0x89,0xaf,0x85, + 0xf1,0xb6,0x95,0x24,0x69,0xc5,0xe3,0xc3,0x3a,0xc7, + 0x9d,0x49,0xa9,0x6b,0x41,0xf2,0x06,0x84,0x6e,0xa7, + 0xdf,0x7f,0xbd,0x5e,0x47,0x13,0x1b,0x7d,0xb6,0x6e, + 0x62,0x97,0x4c,0x76,0xa7,0x96,0xfc,0x35,0x48,0x92, + 0xd0,0xb3,0x7e,0x69,0x70,0xd1,0xca,0x79,0xaa,0xbc, + 0x42,0x15,0x6c,0x7b,0x70,0x34,0x3a,0xee,0x7c,0x42, + 0x94,0x03,0x60,0xda,0x62,0x23,0xfc,0xe4,0x84,0xb9, + 0x74,0x04,0x35,0x91,0x13,0xf5,0x1a,0xe4,0xa5,0x5a, + 0xd3,0x54,0x22,0x3e,0xa7,0xb1,0x48,0x22,0x6c,0xd3, + 0x68,0x23,0x64,0xda,0x07,0x50,0x0c,0xd7,0x16,0x19, + 0x2d,0x2e,0xfa,0x33,0xa6,0x7b,0x74,0x1c,0x17,0xa7, + 0x2d,0x91,0x78,0x5d,0xd4,0x6b,0xd7,0x76,0x94,0xe3, + 0x24,0x41,0x3b,0xe6,0xed,0xbd,0x76,0xdd,0x16,0x25, + 0x86,0xa7,0xcd,0xe5,0x0c,0x08,0x0d,0x7a,0x74,0x08, + 0xc5,0x4b,0xe3,0xc6,0xc4,0x25,0x33,0xe8,0xd5,0x99, + 0x36,0x71,0x27,0x32,0x27,0xbd,0x2b,0x0d,0xa4,0xdf, + 0x6b,0x6b,0x6c,0x6f,0xa5,0x51,0x68,0x79,0xcf,0x3f, + 0xff,0xbb,0xff,0x5b,0x08,0xcf,0x5b,0x3e,0xc2,0xad, + 0x04,0xf9,0xf3,0xbf,0xfb,0x5a,0xe5,0x7b,0x30,0xf6, + 0xb8,0x43,0x0f,0xf4,0x5a,0x50,0x37,0x28,0x14,0x84, + 0x07,0xe2,0x89,0x0e,0x1e,0x3c,0xae,0x53,0xdb,0x8f, + 0xee,0xbd,0x49,0x55,0x7c,0x12,0xc2,0xa7,0xad,0x0f, + 0xdd,0x07,0x81,0x24,0x4d,0x13,0x76,0x6f,0x1c,0x18, + 0x1d,0x4a,0xa0,0x83,0xdf,0xa1,0x4b,0x80,0x64,0x9d, + 0xe9,0x5a,0x27,0xef,0xac,0xcb,0x13,0xb3,0x47,0x9e, + 0x96,0xb6,0x99,0xa7,0x36,0xd9,0x66,0xf8,0x66,0xf8, + 0xb3,0xe8,0xa0,0x4e,0x6e,0xf5,0x13,0x82,0x31,0x11, + 0xa7,0x53,0xa2,0x1c,0xe2,0x47,0x54,0x89,0x9e,0x2c, + 0x68,0xd2,0xd9,0xeb,0x34,0xf4,0x12,0xc2,0x3f,0x00, + 0x08,0x8f,0x61,0x13,0x63,0x0a,0x3d,0xca,0xb2,0xfc, + 0xec,0xc7,0xc4,0xa2,0x9e,0xfa,0xbb,0x13,0x41,0x52, + 0x91,0x83,0xbe,0xb1,0x53,0xcf,0x3a,0xe9,0xa1,0x24, + 0xa1,0x45,0xd2,0xac,0xa1,0xe0,0xed,0xf8,0x1d,0x74, + 0x3d,0x29,0x21,0x74,0x5e,0x64,0xb4,0x78,0x26,0xf6, + 0xfc,0xe6,0x90,0x20,0xa8,0x5e,0x3f,0x3f,0x55,0x7c, + 0x89,0x43,0x40,0x07,0x06,0x25,0xa3,0xba,0xb9,0x07, + 0x05,0x65,0x4b,0x34,0x9e,0x98,0xff,0x93,0x22,0x68, + 0x12,0xbe,0x74,0xc2,0x71,0xae,0x7c,0x98,0xda,0x01, + 0x1b,0x38,0x1a,0x0e,0xf3,0x34,0x3d,0x75,0xd2,0x24, + 0x12,0x1d,0xa4,0x89,0x73,0x36,0xb5,0xb7,0x4c,0x11, + 0x72,0xe8,0x3a,0x27,0x9d,0xb0,0x54,0x6d,0x19,0xf1, + 0xca,0xb7,0x84,0xa8,0x11,0x93,0xdf,0x26,0xc1,0x68, + 0x6f,0x6f,0xff,0x49,0x45,0xdb,0x9d,0x54,0x1e,0x66, + 0x27,0x23,0x37,0xa2,0x27,0x3e,0x8b,0xd8,0x17,0x05, + 0xed,0x94,0xa3,0x41,0x64,0xe3,0xe1,0x70,0x39,0xce, + 0x8f,0x4a,0xb9,0x3d,0xc9,0xb7,0x6b,0x7b,0xb8,0x0f, + 0xe2,0xb0,0x2b,0x62,0xb3,0x8a,0x40,0x12,0x82,0xec, + 0x92,0xae,0x64,0x61,0x44,0x53,0x51,0x5f,0x5f,0x5f, + 0x47,0x09,0xd0,0x49,0x46,0xa1,0x9f,0x4d,0x8d,0xe6, + 0x60,0xf7,0xd7,0x30,0x44,0x41,0xc6,0xe1,0x97,0x3b, + 0xbc,0x13,0x52,0xab,0xdf,0xad,0x13,0x76,0x0e,0x04, + 0x08,0xea,0xfd,0x91,0x4f,0x43,0xa3,0xf3,0xb4,0xbf, + 0x3a,0x52,0xed,0x44,0x70,0xd3,0x24,0x96,0xfe,0x9d, + 0xb3,0x3a,0xfa,0x84,0x8b,0x34,0xe5,0x2e,0xf4,0x0e, + 0x5e,0x1d,0xca,0x9d,0x0e,0x65,0x0a,0xf6,0x53,0x70, + 0xea,0x37,0x37,0xa9,0xbe,0x12,0x62,0xe4,0x46,0xf8, + 0x28,0x83,0xa5,0xca,0x1b,0x0e,0x51,0x5b,0x0d,0x90, + 0x04,0x7b,0x5a,0xf0,0xe9,0x70,0x9a,0xc4,0xfa,0x06, + 0xc4,0xe4,0x4c,0xed,0xc9,0x94,0x14,0x74,0x12,0x28, + 0xc1,0xea,0xe1,0xf0,0x7d,0x7b,0x67,0xda,0x32,0x70, + 0x63,0xa3,0x4e,0x78,0x6f,0xea,0xd1,0x26,0x62,0xb2, + 0xab,0xda,0xe8,0x5d,0xb5,0x2a,0xfc,0xf4,0xf6,0x18, + 0x11,0x4d,0x49,0xca,0x5d,0x03,0x64,0x17,0xd2,0x32, + 0x3c,0xa4,0xd3,0xc9,0xbc,0x84,0x3e,0x26,0xc1,0x4d, + 0x5d,0xf3,0xb0,0xa9,0x1f,0xe2,0x67,0x84,0xa4,0x39, + 0x12,0x7b,0xe2,0xdc,0xb4,0x7b,0x3c,0xc4,0xaf,0xd8, + 0x90,0xe2,0x27,0x12,0xe2,0x66,0x6c,0x37,0xb5,0x89, + 0xd3,0x74,0xa7,0x29,0xb0,0x34,0xe1,0x8e,0xc8,0x51, + 0x28,0x96,0xde,0x7e,0xcf,0xf1,0xe7,0x5c,0x32,0x99, + 0x90,0x4f,0x42,0x42,0xd2,0x9e,0x37,0x6d,0x5b,0x3b, + 0xa6,0xdc,0xe3,0x1f,0x5c,0xdf,0x1b,0x19,0x5e,0x39, + 0x41,0xa4,0x54,0xed,0x1e,0x1b,0x1c,0xfa,0x24,0xc2, + 0x78,0x48,0xeb,0xad,0x5f,0xc7,0xbd,0x7f,0x81,0xfa, + 0xe0,0xf4,0x84,0x4e,0x92,0x00,0x70,0x71,0x7c,0x23, + 0x1a,0xb9,0x6d,0xd1,0x82,0x62,0xfb,0x49,0xc5,0xce, + 0x34,0x35,0xf6,0xa9,0xe8,0x70,0x2a,0x5c,0x26,0xca, + 0x02,0x51,0x42,0x36,0x5a,0x60,0x30,0xfd,0x7b,0x26, + 0xb4,0x8a,0x62,0xe3,0xb4,0x27,0xb7,0x9a,0x84,0x83, + 0x72,0xf8,0xbf,0x66,0xa8,0xca,0xdf,0x01,0xdb,0x90, + 0x72,0x09,0x81,0x73,0xae,0xbe,0x8c,0xc8,0x60,0x22, + 0x6c,0x4e,0x07,0xf9,0x02,0x39,0x79,0xf3,0x94,0x22, + 0x34,0x26,0x7d,0x07,0x89,0xf8,0x4d,0x42,0x8b,0xa6, + 0x37,0xfc,0xa3,0xc8,0xa9,0x9c,0x08,0x27,0xa4,0xe7, + 0x3e,0x83,0xb8,0x49,0x57,0x23,0xc6,0xa6,0x77,0xd3, + 0xcd,0x36,0xdd,0xb3,0x33,0x9b,0xb4,0x4c,0xb2,0x55, + 0x4e,0x98,0x90,0x78,0x49,0x82,0x3a,0x1d,0xe0,0xa3, + 0x3c,0x48,0xef,0x8e,0x07,0xd3,0xef,0xcb,0x6c,0x74, + 0x72,0x68,0x27,0x83,0xba,0xe4,0x9c,0x6e,0x7f,0xad, + 0xff,0xa1,0xe9,0x61,0x3f,0x9e,0xad,0x09,0xa2,0x15, + 0x94,0x69,0x6b,0x40,0x54,0xcf,0x05,0x24,0xe5,0x1f, + 0xe1,0xae,0x6f,0x91,0x36,0x67,0xf8,0x9a,0xa6,0x03, + 0xfb,0x5e,0x75,0xc3,0x00,0x29,0xe1,0x9c,0xb8,0x48, + 0x34,0x59,0x33,0x8d,0xad,0x06,0x72,0x77,0x2c,0xa6, + 0x9c,0x39,0xa9,0x7b,0x8f,0x8e,0x74,0x9c,0xd6,0xee, + 0xc4,0x0b,0xa2,0xe4,0xb3,0x1f,0xc2,0xea,0x01,0x68, + 0x9e,0xc5,0xa1,0x44,0x8b,0xc8,0xce,0x4e,0xe7,0x29, + 0x21,0x9c,0x01,0x1d,0x45,0xe2,0x30,0xa9,0xeb,0x4f, + 0x93,0x98,0xa9,0x58,0x23,0xb3,0x53,0x23,0xe4,0x3a, + 0xd2,0x2c,0xc8,0xa6,0xc7,0x15,0x02,0xf4,0x1c,0xa8, + 0x70,0x76,0xef,0xa3,0xb7,0x16,0x45,0xe3,0x29,0xa2, + 0x86,0x9a,0xa0,0x2f,0x26,0xa0,0x8f,0x21,0x6c,0xbb, + 0xef,0x3e,0x24,0xe8,0x47,0xbc,0xa7,0x64,0xaf,0xa4, + 0xeb,0x81,0x26,0x34,0xdb,0xf9,0x78,0x40,0xdb,0x2b, + 0x1a,0x74,0x13,0x19,0x9e,0xd6,0xb6,0x13,0x74,0x9c, + 0x14,0xcb,0x2f,0x98,0xb4,0xa3,0xc2,0xbb,0x17,0x93, + 0xaf,0x0d,0x9c,0x17,0x36,0x33,0xa2,0x12,0x44,0x60, + 0x4a,0xbc,0x9e,0xa9,0xaf,0xea,0xc6,0xc7,0x07,0xdf, + 0x23,0xab,0xe9,0xb3,0x84,0xce,0x6d,0xa5,0x60,0x5e, + 0x08,0x7a,0x31,0x39,0x1d,0x93,0x04,0x41,0xa6,0x05, + 0x4c,0xd5,0xb7,0x6e,0xce,0x64,0xda,0x38,0xc1,0xfc, + 0x29,0x83,0x76,0x08,0x98,0x33,0xbf,0xfb,0x40,0xaa, + 0xfe,0xf1,0x4c,0x9d,0x26,0x8e,0xd1,0xdc,0xa1,0x6a, + 0xed,0x04,0xbe,0xc6,0xca,0x27,0x47,0xef,0x15,0x2a, + 0xb5,0xe3,0x10,0xaf,0x09,0x29,0x74,0x63,0xd0,0x49, + 0xaf,0x26,0x21,0x72,0x9b,0x36,0x06,0xf1,0x5d,0x82, + 0x17,0x9a,0x45,0x5b,0x7a,0x92,0xd9,0x38,0x33,0x1f, + 0xf3,0x02,0x53,0x31,0x92,0x5a,0x84,0x13,0x6f,0x4c, + 0xf7,0xfc,0xb7,0x35,0xca,0x49,0x13,0x44,0x69,0x4f, + 0x35,0x58,0xff,0x6c,0xbc,0xa4,0x5c,0xeb,0x37,0xf0, + 0xa6,0x8e,0x9b,0x7a,0xd1,0xd6,0x76,0x8a,0x4d,0x10, + 0xd7,0xf0,0x90,0x73,0x1c,0x17,0xe2,0xef,0x41,0xc1, + 0x31,0x0a,0xe4,0x51,0xb5,0xee,0x3c,0xdc,0x1c,0x79, + 0x5a,0xf7,0x51,0xf2,0x8f,0x32,0xed,0x13,0x9c,0xc2, + 0xa3,0x58,0x2d,0xc9,0xcf,0x63,0xaf,0xbb,0x2e,0x45, + 0xbf,0x5e,0x1d,0xbb,0x57,0x04,0x92,0x92,0x46,0x45, + 0x27,0x87,0x89,0xb8,0xcd,0x9e,0x3a,0xcb,0x73,0x13, + 0xa9,0x2b,0x53,0xd1,0xa1,0xef,0x66,0x23,0x52,0x98, + 0x10,0xa6,0x09,0xe9,0x1d,0x2c,0x45,0x4e,0x42,0x89, + 0x26,0x74,0xd9,0xa9,0x5e,0xff,0x3a,0xe7,0xfc,0x6f, + 0xd7,0x75,0xfd,0xcf,0xd7,0x75,0xfd,0xf7,0xd4,0x77, + 0x27,0xdf,0xa9,0x04,0xab,0xbb,0xd1,0x6a,0x73,0xb0, + 0x47,0xf6,0x3c,0x55,0x90,0x74,0xb8,0x4f,0x09,0x8e, + 0x72,0x76,0x36,0x10,0xda,0x06,0x4d,0xda,0xb0,0xfb, + 0x5d,0xeb,0x65,0xab,0xb3,0x11,0x7e,0x67,0x24,0xd5, + 0xb9,0x8a,0x99,0x0e,0xd6,0xde,0x3e,0x4a,0xc1,0xc4, + 0x29,0xc5,0xa6,0xf6,0x98,0x83,0x8a,0x07,0xa7,0xe3, + 0xb1,0xbf,0x9b,0xaa,0xc1,0x69,0xd3,0xeb,0xfb,0x00, + 0xbe,0x0a,0xbd,0x87,0x93,0x44,0xbd,0xe0,0x9d,0x60, + 0x95,0x0c,0xda,0x2b,0x67,0xf1,0x1c,0xe2,0x61,0xaf, + 0xad,0xbf,0x76,0xa8,0x1d,0xe5,0xc5,0x2c,0x03,0xc7, + 0x5b,0x9b,0xa7,0xab,0x3a,0x6f,0x46,0xcf,0xc3,0xa1, + 0x3f,0xee,0x05,0x27,0x6e,0xf6,0x8d,0x86,0x59,0x2f, + 0x30,0xdd,0xe3,0x53,0x7c,0x39,0xe2,0x3e,0xeb,0xd6, + 0x8c,0x79,0x4e,0x8f,0x67,0x49,0x87,0x51,0x47,0x14, + 0xb4,0xdd,0x43,0xad,0x03,0x13,0x4b,0x8f,0xe3,0xd5, + 0xb8,0xd6,0xb1,0xab,0xd4,0x49,0x01,0x7a,0x6a,0x9d, + 0x9b,0x7b,0x5a,0xab,0x3b,0x06,0x13,0x51,0x5b,0x94, + 0x05,0x29,0x82,0x03,0x49,0xc1,0x21,0x31,0x48,0xd7, + 0xfa,0xdb,0x5c,0xb3,0xc6,0x4f,0xa2,0x2c,0xb8,0x77, + 0x42,0xf7,0x7b,0x19,0x0b,0x95,0x5e,0x4c,0xc8,0x1e, + 0x3b,0xa9,0x20,0xa7,0x7b,0x77,0x08,0x63,0x42,0x05, + 0x9d,0x74,0x82,0x6b,0x91,0xa6,0xf7,0xf4,0x70,0x57, + 0xff,0x46,0xa8,0x09,0xd5,0x04,0xa9,0x96,0x68,0x81, + 0x43,0xaa,0xe4,0x8d,0x53,0xb6,0x22,0xdc,0x0b,0x90, + 0xf1,0x9f,0xae,0xeb,0xfa,0x2f,0xbf,0x0d,0x6a,0x52, + 0xc6,0x50,0xf4,0xad,0xf5,0x20,0x0f,0xab,0x00,0x5e, + 0x2a,0xa8,0x6e,0xcb,0x31,0xc9,0xcd,0x06,0xb4,0x63, + 0xdd,0xdb,0x9e,0x64,0xd0,0x80,0x78,0x1b,0x93,0x76, + 0xba,0x2d,0x44,0x28,0x6e,0x93,0x5a,0xb6,0xbd,0x65, + 0xfa,0xf0,0x35,0xf5,0x2c,0xb5,0x8d,0xa7,0xed,0x1b, + 0xc3,0x15,0xb1,0x5e,0x55,0x34,0xc2,0x7f,0x3f,0xe7, + 0x66,0x60,0x59,0x86,0xf0,0x56,0xe9,0xa0,0xd2,0x96, + 0x99,0x1e,0x04,0x70,0x90,0x39,0xbf,0x35,0xd4,0x9b, + 0xea,0xd2,0x07,0x32,0x01,0x53,0xd4,0xbe,0x72,0x5c, + 0x05,0xe7,0xc9,0xd5,0xfd,0xb8,0xdc,0x44,0xdc,0xeb, + 0xf5,0x22,0xed,0xa6,0x87,0xac,0x03,0x3d,0x37,0x08, + 0x4e,0x45,0xbc,0x04,0x1d,0x93,0xa7,0x8a,0x47,0x47, + 0xdc,0xa9,0x0d,0xfc,0xfd,0xc3,0xb5,0x51,0x52,0x35, + 0x44,0xc7,0x72,0x9a,0x58,0xae,0xd2,0xa7,0x04,0xa2, + 0x5b,0x9a,0x24,0x99,0xfb,0xd4,0x1a,0x4b,0xc4,0x54, + 0x42,0x96,0x29,0x0e,0xa8,0xb8,0x22,0x54,0xad,0x67, + 0x42,0xba,0xa9,0x8d,0x45,0x71,0x69,0xb2,0x25,0x81, + 0xd6,0xfe,0x71,0xa3,0xd2,0x7a,0x20,0x2c,0x3c,0xdd, + 0x68,0xcf,0xbe,0x79,0x14,0xb6,0xef,0x39,0xc1,0xc0, + 0xf6,0xc1,0xa1,0x23,0xdf,0x37,0x2a,0xee,0xd4,0x2f, + 0x8b,0x90,0xef,0xd4,0x5a,0x0b,0xfb,0xc7,0x2a,0x34, + 0x5f,0x20,0xb0,0xe8,0xb8,0x7b,0x6a,0x08,0x3c,0xf0, + 0x5f,0x0f,0x25,0x96,0x44,0x9f,0x48,0x3e,0x5a,0xed, + 0x3c,0x79,0x9c,0x7b,0xae,0x95,0x93,0x5a,0xb1,0xdb, + 0x51,0x77,0x4a,0x12,0x7b,0x42,0x61,0x54,0xb0,0x11, + 0xa9,0x74,0x3e,0x77,0xb0,0x46,0x1f,0xea,0xd1,0xd3, + 0xf4,0x5b,0x12,0x48,0x74,0xbc,0x4d,0x2a,0xb6,0x03, + 0x81,0xbe,0xaa,0xea,0x1f,0x0e,0x50,0xb2,0x69,0x98, + 0xfc,0x9f,0x1c,0x97,0x65,0x53,0xf9,0x99,0x8c,0xac, + 0x9c,0xc5,0x86,0x09,0xcc,0x6f,0x1a,0x38,0xee,0x60, + 0xe8,0xe4,0x54,0xc3,0x3b,0x41,0xa4,0x6a,0xea,0xaf, + 0x3a,0x7e,0x51,0x52,0xcb,0x06,0x6e,0x81,0xe5,0xa5, + 0x7c,0x62,0xe0,0x37,0x49,0x9c,0xab,0x86,0x8f,0x23, + 0x2a,0x6b,0xc2,0xea,0xcc,0x61,0x35,0x99,0x08,0x81, + 0xe9,0x91,0x58,0xd1,0xb5,0x06,0xe3,0xd0,0x37,0x43, + 0xd8,0x94,0x4c,0x13,0x07,0xcd,0x25,0x93,0x1b,0x0d, + 0x27,0xe2,0x38,0x29,0x77,0xc7,0x55,0x5b,0xaa,0x67, + 0x24,0xef,0xf2,0xc1,0xe9,0xd1,0xdf,0xd7,0xef,0x0d, + 0x4a,0xab,0x9b,0x77,0x71,0xbe,0x83,0x58,0x0d,0xc6, + 0xa4,0xa9,0xa2,0xaf,0x84,0x1e,0x12,0xb7,0x8c,0xcc, + 0x7f,0xdd,0x3f,0x5d,0x4b,0x46,0x0f,0xa9,0xe4,0x28, + 0x4f,0x7c,0x83,0x34,0xf0,0x30,0xe9,0xd9,0x24,0xa4, + 0x4a,0x27,0x88,0x2e,0xd0,0x1a,0x21,0x3f,0xb6,0xa4, + 0x3a,0x4c,0xda,0x2a,0x74,0xc8,0xa6,0x16,0x32,0xc5, + 0x24,0xf7,0x4c,0xba,0x24,0xc4,0xf4,0x99,0x4e,0x07, + 0x26,0x91,0x77,0xb7,0xba,0x36,0x2a,0xf8,0xa8,0x49, + 0x14,0x71,0xb1,0xc8,0x7c,0x93,0x92,0x51,0x8a,0xe3, + 0x34,0xe2,0xad,0x4a,0xdb,0x7d,0x9a,0x6c,0x6b,0x7a, + 0x0a,0xc3,0x07,0xae,0x6d,0x7f,0xa6,0x75,0x6d,0x04, + 0x14,0xdf,0x92,0x22,0x53,0x84,0x1e,0xe2,0x95,0xa6, + 0x36,0x54,0x3b,0x13,0x1e,0x2e,0xef,0x4e,0xfb,0x6d, + 0x6a,0x5b,0xf5,0x73,0x78,0xa2,0xca,0x68,0x5c,0xe8, + 0x9e,0x6d,0x32,0xe2,0x3e,0xfa,0x87,0x26,0x90,0x41, + 0x93,0xae,0x1f,0xcd,0xb6,0x4d,0xcb,0x68,0x08,0x3e, + 0x67,0xe0,0x1e,0x44,0xdb,0x8b,0xbe,0x31,0x5d,0x60, + 0x4e,0xa2,0x80,0x4e,0x0b,0xc0,0x05,0xaf,0xd0,0x4f, + 0x7f,0xcb,0x24,0x27,0xe2,0x18,0x55,0x22,0x3d,0xe3, + 0x54,0xc4,0x66,0xd3,0x97,0xa4,0x40,0x52,0x55,0xe7, + 0xcf,0x9f,0x3f,0x0f,0xa3,0x51,0x17,0x38,0x3e,0xf8, + 0x8e,0xf3,0x29,0x7f,0x43,0xab,0x66,0x82,0xfb,0xc9, + 0x7c,0x95,0xaa,0x0f,0xe2,0xb5,0xb8,0x83,0x3b,0xf1, + 0xa7,0x9c,0xc8,0x20,0xd8,0x43,0xd8,0x3f,0xa7,0x29, + 0xb3,0xfe,0x79,0x7d,0x7d,0x4e,0x01,0xd3,0x71,0x0c, + 0x34,0xb0,0xc8,0xfb,0xb0,0x63,0xf6,0x06,0x65,0x44, + 0x41,0x3c,0xf9,0xec,0xe3,0x0e,0x38,0xe2,0xfe,0x98, + 0x84,0xef,0xa8,0x8c,0x82,0x9b,0x04,0xd4,0xcf,0x27, + 0xe2,0xe2,0xa4,0x08,0x3d,0x11,0x95,0xa7,0x3d,0xb8, + 0x6d,0xdb,0xb5,0x76,0xd9,0xb8,0xf6,0xa5,0xe5,0x75, + 0xdc,0xbe,0x23,0xa3,0xc7,0x34,0x31,0xea,0xec,0x66, + 0x8c,0x36,0x10,0x72,0x3c,0xd2,0xa8,0x74,0xe2,0xd8, + 0xa4,0x04,0x41,0xdb,0x6c,0x54,0x08,0x04,0x91,0xba, + 0x03,0xd3,0xbd,0x87,0xf4,0x66,0x0c,0x97,0x86,0x54, + 0x8d,0xdf,0x0e,0xf5,0xde,0x32,0x4c,0xc9,0xcf,0x94, + 0x80,0x5c,0x20,0xf9,0x91,0xa6,0x5f,0x95,0x0b,0x98, + 0x7c,0xb0,0x86,0x18,0x4a,0x05,0xc9,0xd9,0xa0,0x9b, + 0x74,0xaf,0xee,0x3c,0x1c,0x48,0xf1,0x76,0xff,0xb9, + 0xd6,0xe3,0x04,0x6a,0xa4,0x04,0xd9,0x15,0x40,0x6d, + 0x98,0xc3,0xbe,0x77,0xd0,0xbc,0xb2,0x85,0x87,0xcb, + 0x07,0xee,0x78,0x94,0x62,0xdf,0xcf,0x18,0x3c,0x41, + 0x88,0x06,0xb2,0xb7,0x5f,0x04,0x87,0xfc,0x99,0xa0, + 0xb7,0xe9,0x25,0xeb,0xa6,0xa2,0xf1,0x5a,0xa7,0x7b, + 0xd1,0x83,0xb7,0x7b,0xa9,0xce,0xad,0x78,0xe1,0xf8, + 0x6e,0xcf,0x6a,0x73,0x28,0x62,0x25,0x1a,0xaa,0xaf, + 0xe3,0x78,0x56,0x6a,0x2e,0xa8,0x87,0xa8,0x23,0x03, + 0xea,0xa1,0x3e,0xf1,0x69,0x82,0x68,0x1f,0x05,0x58, + 0xc7,0x9d,0x39,0x40,0x44,0x3b,0x09,0xe2,0xa4,0x6c, + 0x9d,0x10,0x0a,0xa7,0xb4,0x0b,0x30,0xef,0x71,0x3a, + 0x13,0x5a,0x25,0x7d,0x6f,0xc6,0xb7,0xe4,0x92,0xbc, + 0xa5,0x42,0xf2,0x70,0x9c,0xf2,0xaa,0x54,0x66,0x96, + 0x2b,0xb2,0xe1,0xfc,0x2c,0x4d,0x5f,0x29,0xf0,0x9f, + 0xa4,0x9f,0x92,0x14,0xb8,0x85,0xe3,0x73,0x9c,0xce, + 0x87,0xca,0x53,0xa8,0x26,0x4d,0xa8,0x94,0xc7,0x44, + 0x26,0xa9,0x8a,0xbb,0x43,0x55,0xf7,0x93,0x8a,0x26, + 0x8a,0xac,0xc1,0x95,0xe0,0x77,0xe5,0x58,0x4d,0x68, + 0x4e,0xe3,0xcc,0x1c,0x6d,0xe1,0xc1,0x41,0x71,0x12, + 0x1a,0xed,0x0a,0x32,0x32,0x8e,0x06,0xc4,0xf0,0x80, + 0x99,0xec,0x43,0x6b,0xe9,0xde,0x03,0x21,0x66,0xc7, + 0x56,0x0a,0xf0,0x41,0x89,0xb0,0x4a,0x28,0xd2,0x21, + 0xc1,0xcd,0x0d,0x6f,0x27,0xf8,0x4e,0x4e,0x05,0x8a, + 0x35,0x7f,0x25,0x94,0x23,0xf9,0xdd,0xf5,0x77,0xa2, + 0xb6,0x17,0x9f,0x9c,0x33,0x1a,0x83,0x93,0x39,0xeb, + 0xc6,0xca,0xc6,0xad,0x01,0x67,0x43,0xe2,0x92,0xbd, + 0x20,0x0b,0x31,0x76,0x43,0xd2,0xbb,0x72,0xc5,0x92, + 0x13,0x57,0xd4,0x16,0x31,0xf9,0x79,0xaa,0xf5,0x4b, + 0x12,0x74,0x7d,0xf3,0x45,0x74,0x0b,0x9d,0x7c,0x46, + 0x92,0x09,0xde,0x56,0xac,0x0c,0x5c,0x87,0xd7,0x04, + 0x59,0x37,0xd1,0x40,0x59,0xb6,0x7b,0xd9,0xe9,0x5a, + 0xfa,0x62,0x4b,0x42,0x53,0xee,0x41,0x06,0x6f,0x14, + 0x7a,0x49,0x28,0xd0,0x98,0x50,0x8f,0xae,0x18,0x0d, + 0xd3,0x53,0xc8,0xd3,0xd0,0x60,0xe3,0xae,0xd9,0xc8, + 0xb5,0x9f,0x64,0xd1,0xa1,0x0b,0xf5,0x03,0x8d,0x17, + 0x54,0x77,0x86,0xf5,0x74,0xb4,0x2a,0xd3,0x24,0x8f, + 0x82,0xd7,0x1d,0xe0,0x8d,0x7d,0xc4,0x8f,0x19,0x67, + 0x3f,0xc4,0x02,0x42,0x10,0xa7,0xb3,0x9c,0x4b,0xb7, + 0xfb,0xfd,0xa0,0x82,0x6a,0x35,0x78,0x4c,0x7b,0xc9, + 0x9a,0x6f,0x86,0x09,0x96,0xb7,0x24,0x26,0x21,0xa7, + 0x03,0x6f,0x06,0x49,0xc7,0x8b,0x36,0xe3,0x35,0x21, + 0xc5,0x84,0x0e,0xa7,0x16,0xbb,0xa0,0x68,0xc7,0x25, + 0x9b,0x26,0xd6,0xc4,0x44,0xaa,0xa9,0x50,0xc7,0xfb, + 0x90,0x76,0xf3,0x99,0x2c,0x67,0x94,0x5b,0x43,0x93, + 0x57,0xb7,0xab,0xfa,0x90,0xd8,0x62,0xbc,0x0b,0x95, + 0xf4,0x09,0x5c,0x91,0x33,0xdc,0xdf,0x03,0xed,0xba, + 0x91,0x1f,0x83,0xfe,0x45,0x84,0x57,0x26,0xbe,0xb0, + 0xf8,0xbb,0x40,0xff,0x0c,0xa6,0xf9,0xb0,0x4d,0x45, + 0x93,0x9a,0x93,0xa8,0xee,0x3d,0xd1,0x65,0x0a,0xe9, + 0xb5,0x56,0x5b,0xd2,0xc9,0xd1,0x56,0x7f,0x4a,0x86, + 0x82,0x54,0x43,0xe2,0x54,0x1d,0x45,0xb1,0xa0,0xc0, + 0x44,0xda,0x46,0x6a,0xa3,0xa7,0x8e,0x4e,0x38,0x7b, + 0x6c,0x37,0xc9,0xb5,0xf5,0x5c,0x72,0x34,0xc5,0x96, + 0x21,0x4f,0x79,0xe4,0x18,0xaf,0xd4,0xae,0xa2,0x83, + 0x38,0x5d,0x24,0x98,0x3f,0x3a,0xc4,0x61,0x25,0xf4, + 0xd4,0x0f,0xb8,0x24,0x82,0x48,0x4e,0xe9,0xa6,0x3d, + 0xf2,0xf6,0xe7,0xee,0xe7,0x93,0x15,0x00,0xb5,0x71, + 0x92,0x65,0xc3,0x64,0xee,0xd7,0xab,0x3e,0xc7,0xcf, + 0x71,0x22,0x7b,0x50,0x21,0xbb,0x64,0x6b,0x94,0x0e, + 0x68,0x95,0xaa,0xd5,0x28,0x71,0x68,0x1f,0xf5,0xe0, + 0x21,0x89,0x8b,0x68,0x20,0x05,0x88,0x89,0x0f,0x41, + 0xda,0x27,0x9a,0x64,0x41,0x50,0x3c,0xb4,0xb6,0x7b, + 0x12,0x44,0x95,0x2a,0x21,0x12,0xd7,0x60,0xc8,0xe9, + 0x26,0x7d,0x28,0x09,0xd4,0xde,0x3f,0x7c,0xd6,0x63, + 0x7f,0x90,0xdf,0x9e,0x8a,0xfa,0xa5,0xd1,0x73,0x33, + 0xdd,0x41,0xef,0xa3,0x0f,0x50,0x1d,0xf2,0xc5,0x9a, + 0x8a,0x15,0xf7,0xf7,0x9d,0x7c,0xab,0xe8,0xc6,0x25, + 0x4e,0xf5,0x93,0x38,0x29,0x4d,0x05,0xca,0x5a,0x3c, + 0x57,0x76,0x54,0xb7,0x23,0xf3,0xd4,0xde,0x24,0x34, + 0x2e,0x24,0x5f,0xe7,0x13,0xf4,0xc3,0xa9,0x14,0x87, + 0xaa,0xff,0x81,0x7e,0x69,0x91,0x07,0x3c,0xc6,0x9f, + 0x36,0x9d,0x1b,0xff,0x4e,0xef,0x74,0x12,0xfa,0xa3, + 0x42,0x97,0x26,0x97,0x36,0xb6,0x11,0x14,0x77,0xa6, + 0xd6,0x94,0x22,0xd8,0x3a,0xe5,0x44,0x2d,0x60,0xe2, + 0xbf,0x90,0xed,0xc7,0x27,0x5e,0x95,0x57,0x70,0x59, + 0xa7,0x8e,0x89,0x4b,0xfe,0xdc,0x64,0x94,0xee,0x6d, + 0xa0,0xa1,0x9c,0xa4,0x71,0x24,0x7f,0x7e,0x08,0x38, + 0x31,0xed,0xbb,0xa3,0x7b,0xdb,0xa1,0xac,0x49,0xc8, + 0x75,0x32,0x3d,0xa6,0x18,0xa0,0x43,0x4e,0xaf,0x69, + 0xaa,0x42,0xa5,0xdb,0xdd,0x4b,0x50,0x3f,0x9a,0xa9, + 0x52,0xe9,0xca,0xc4,0x09,0x01,0x71,0xb0,0xba,0xb6, + 0x77,0x36,0x1a,0x06,0x97,0x8c,0xf6,0x39,0x18,0x71, + 0x98,0x30,0x39,0x14,0x3c,0x92,0xf5,0x82,0xe3,0x89, + 0x28,0xdc,0xbc,0xd4,0x47,0x3a,0xbd,0x5d,0x93,0x10, + 0x14,0x72,0x3c,0x9f,0xc4,0xd4,0x28,0x40,0x86,0xb1, + 0xce,0x58,0x9d,0x1a,0x02,0xed,0xd9,0xb4,0x13,0x5d, + 0xa2,0x91,0x12,0x17,0xf7,0x8e,0x26,0x95,0x57,0xfd, + 0x3b,0xdd,0xd8,0x5d,0xcb,0xc3,0xad,0x11,0x97,0xa0, + 0x25,0xd1,0x2f,0xa7,0xa9,0x44,0x55,0xbe,0xfa,0x4d, + 0x4d,0xfa,0x38,0xfd,0xf3,0xa8,0x48,0x00,0xdb,0x8e, + 0xd3,0x5b,0x36,0x93,0x95,0xc1,0x46,0xae,0xa0,0xbd, + 0xe7,0xf3,0x4d,0x5a,0x7c,0x24,0x48,0x0d,0x89,0x7a, + 0xf3,0x0a,0x33,0x3e,0x5f,0x6f,0xbf,0x43,0xc8,0x4e, + 0x4a,0xb0,0x08,0x41,0x32,0x0a,0xdc,0x67,0x72,0xf2, + 0xd6,0x76,0x71,0xbb,0x5e,0xbb,0x0e,0xe4,0x10,0x3d, + 0xae,0x75,0x2b,0xbf,0x77,0x5c,0x1b,0x58,0x6d,0x38, + 0x42,0xe2,0x8a,0x13,0x6d,0xfd,0x5a,0x41,0x21,0xdb, + 0x1e,0xa2,0xae,0x2d,0xa5,0x6d,0x2f,0x47,0x58,0x06, + 0xe4,0x83,0xa4,0x1f,0x0e,0x59,0x59,0x24,0x04,0xd6, + 0xed,0x47,0x27,0xfd,0x40,0xbc,0x29,0x7d,0xf6,0x2e, + 0x16,0x83,0x0b,0xc1,0x49,0xd2,0x22,0x0e,0xd9,0x23, + 0x14,0xb8,0x27,0x0f,0x84,0x70,0x68,0xab,0x79,0x42, + 0x9f,0x26,0x64,0x1c,0xd0,0x5d,0x6c,0x7d,0x52,0xb0, + 0x26,0x6e,0xab,0xe3,0xf0,0xa6,0x64,0x9c,0x12,0xc2, + 0xc9,0x66,0x67,0x89,0xcc,0xc6,0x49,0xbc,0xeb,0xfa, + 0x76,0x83,0x37,0x70,0xd5,0x38,0x75,0x62,0x92,0x8c, + 0xa8,0x2c,0x9b,0x7a,0xa0,0x52,0x4d,0x15,0x69,0xac, + 0x6c,0x08,0x56,0xdf,0x0f,0xfd,0x6d,0x54,0xfb,0x1e, + 0x03,0x4f,0x24,0x32,0x09,0x34,0xa5,0x6d,0x05,0x80, + 0xff,0xdc,0xa4,0xd4,0x63,0x74,0x5a,0x33,0xed,0x3e, + 0x51,0x66,0x5a,0x1d,0x76,0xea,0x88,0x7c,0x7d,0x5c, + 0xd0,0x4d,0xc9,0xac,0xf6,0x50,0xfb,0xc4,0x50,0x4b, + 0x96,0xc6,0x77,0xdf,0x27,0xae,0x1c,0xf1,0xee,0xfe, + 0x8c,0xfe,0xec,0x4d,0xe5,0xd9,0x93,0xe8,0x71,0xdc, + 0x7a,0xaa,0x02,0xfa,0xd8,0xba,0x41,0x54,0x0a,0x82, + 0xd5,0x43,0xa1,0x5b,0xf7,0x01,0x3c,0x7f,0x9c,0x7c, + 0x6b,0x81,0xbd,0x52,0x90,0xe8,0x8a,0xe1,0xc4,0x8b, + 0xea,0xd7,0xb7,0x15,0x95,0xbc,0x60,0xca,0x30,0xed, + 0x99,0xf6,0x73,0x45,0x42,0xa6,0xb4,0xff,0xa7,0xf7, + 0xb6,0xa8,0xf6,0x6d,0xe0,0x75,0x08,0x92,0xe3,0xf6, + 0x6d,0x3d,0xf5,0x92,0x19,0xe7,0xc6,0xa4,0x51,0x5b, + 0xe4,0x30,0x65,0x12,0x6d,0x6d,0x36,0x36,0x13,0xae, + 0xf5,0xd8,0xf7,0x89,0x39,0x80,0x50,0x5c,0x33,0x70, + 0x74,0xde,0x0e,0xe3,0xbe,0x4f,0x5d,0x4b,0xc6,0x4d, + 0xf4,0x38,0xb4,0x08,0x10,0x1e,0xd4,0x01,0xa2,0x56, + 0xb0,0xe3,0x9f,0x04,0x35,0x7b,0xc7,0xb9,0x3a,0x70, + 0x36,0xac,0xf6,0xc4,0xfd,0xb9,0xee,0x79,0x1b,0x87, + 0x00,0xab,0x92,0xec,0xec,0x4b,0x12,0x72,0xe4,0xba, + 0x09,0x69,0xba,0x51,0xef,0xc1,0x74,0x0f,0x2c,0xb9, + 0x38,0x4d,0x6a,0xcb,0x04,0xeb,0xb8,0xaf,0x52,0xab, + 0x72,0x4a,0xa8,0x92,0x6a,0xf3,0x94,0x50,0xdf,0x8f, + 0xd3,0x8c,0xe2,0xa3,0x79,0xb5,0xe3,0x70,0xbd,0x36, + 0x82,0x7f,0x5b,0x57,0xdc,0x34,0x0e,0x3b,0xf5,0x1f, + 0x53,0x3f,0x51,0x47,0xe3,0x5c,0x3b,0x8b,0xa0,0xd7, + 0x9e,0xc0,0x18,0xb7,0xd8,0xb3,0x51,0x34,0x75,0x09, + 0x8c,0xea,0x8c,0xd0,0xe1,0xf0,0xeb,0xd7,0x2f,0x84, + 0x83,0x89,0x33,0xe3,0xb8,0x18,0x90,0x79,0x9f,0xe4, + 0xad,0x12,0xc6,0xaf,0x27,0x89,0x76,0xf4,0x0e,0x4b, + 0x0e,0xf4,0x93,0xf7,0x5a,0x50,0xd7,0x3d,0x0e,0x59, + 0x73,0x7e,0x65,0x9d,0x93,0x00,0x46,0x8f,0xb4,0xa6, + 0x92,0x96,0xc6,0x49,0x7d,0x69,0xc7,0xeb,0x09,0xae, + 0xd2,0xb6,0x0a,0xa3,0x09,0x1a,0x15,0x63,0x04,0x14, + 0xe0,0x90,0xd1,0x6c,0x87,0xe7,0x45,0xb8,0xec,0xb8, + 0xc4,0x92,0xe0,0x74,0xfd,0x5d,0xad,0x74,0xa7,0x8a, + 0x4b,0xff,0x71,0x06,0x9d,0x53,0xeb,0x8b,0x10,0x90, + 0xd4,0xd2,0x9a,0xa6,0xcd,0x44,0x5d,0xfb,0xa4,0x6b, + 0x09,0x85,0x06,0xb6,0xc6,0x88,0x8f,0x91,0xfc,0x90, + 0x88,0x53,0x06,0xf7,0x18,0x95,0xc3,0x01,0xd1,0x58, + 0xc5,0x6c,0x77,0xa0,0x3b,0x94,0x43,0xd7,0x96,0xc6, + 0x96,0xef,0x16,0xfd,0x09,0x87,0x79,0x44,0xe9,0x96, + 0x63,0xff,0xe3,0x90,0x00,0xa1,0x3c,0x29,0x91,0x4f, + 0x72,0xdf,0x3a,0x0e,0x7e,0x77,0x2e,0xc8,0x3a,0xc9, + 0x25,0x8b,0x5b,0x43,0x4f,0xb7,0xf7,0xcd,0xd9,0x79, + 0xcc,0x88,0xf9,0x71,0x6d,0x27,0x45,0x97,0x3b,0x9f, + 0x89,0x62,0x66,0x32,0x9d,0x25,0x8a,0x49,0xd2,0xfd, + 0x4a,0x93,0x89,0x2e,0xd9,0x99,0x46,0xf6,0x5d,0x91, + 0x41,0xc3,0x33,0x6e,0xca,0xd7,0x4e,0xfa,0x05,0xd2, + 0x66,0x30,0x4c,0xb6,0x84,0xc5,0x03,0x53,0x1f,0x67, + 0x7a,0x10,0xd4,0x06,0x73,0x2f,0xc5,0x11,0xfe,0x92, + 0x2f,0x8a,0xf2,0x83,0xe8,0xa5,0xff,0xfa,0xf5,0xeb, + 0xe7,0x65,0xba,0xcd,0xec,0xe4,0xd9,0xdd,0x83,0xd6, + 0x36,0x10,0x55,0x7a,0xa1,0x6a,0x7c,0xb4,0xdc,0xdc, + 0x82,0x74,0xea,0xbd,0x34,0x11,0xe6,0xde,0x4f,0xe3, + 0x15,0x9d,0x89,0xa7,0xd5,0x36,0x75,0x9c,0x88,0x21, + 0xb8,0xda,0xf8,0x97,0x61,0xb2,0x43,0xc9,0xaf,0x6b, + 0x5f,0x04,0x8e,0xc4,0x01,0xde,0xcc,0x09,0xda,0x2d, + 0x69,0xa4,0xf8,0x50,0x60,0xba,0x60,0xca,0x48,0xaa, + 0xf7,0x43,0xa8,0x5d,0x57,0x67,0x26,0x53,0x43,0xd7, + 0x16,0x73,0x87,0x8a,0x23,0x7b,0x6e,0xda,0x6d,0x74, + 0x98,0x77,0xe7,0xf6,0x4b,0x88,0xd7,0x93,0x4a,0xbc, + 0xbb,0x46,0xe2,0x3b,0xa4,0x02,0x82,0x82,0x2d,0xe9, + 0x8c,0xf4,0x76,0x9a,0xb6,0x8d,0xfa,0x67,0xa4,0x04, + 0xae,0x6b,0x8f,0xe8,0xb3,0x23,0xc2,0xec,0x2d,0x34, + 0xda,0x13,0x96,0xc1,0xbf,0x70,0x22,0x91,0x8f,0xce, + 0xf3,0x4a,0x3d,0xd0,0x78,0x95,0x4c,0x6d,0x83,0x2f, + 0xd8,0x09,0x1a,0x69,0x87,0x7c,0x95,0x00,0x69,0x38, + 0x4e,0x43,0x67,0x50,0x17,0xb6,0x07,0x2f,0x14,0x72, + 0x27,0x71,0xec,0xdc,0xe4,0xd2,0xa6,0x50,0xbf,0x1a, + 0xb9,0x7b,0x22,0xef,0x53,0xac,0xfd,0xc0,0x1a,0xc6, + 0xb5,0x9f,0x8e,0x49,0xc6,0x8f,0x41,0x90,0x89,0xf7, + 0x77,0xa0,0xed,0xed,0xce,0x2c,0x57,0xe8,0xa4,0x78, + 0x86,0x1c,0x24,0xb3,0x0f,0x47,0x55,0xf8,0x49,0x16, + 0x60,0x42,0x44,0x89,0x70,0x2d,0x67,0x1c,0x3e,0x87, + 0xdf,0x9b,0x00,0x94,0x74,0x02,0xd2,0x94,0xc6,0x27, + 0xe2,0x7e,0xda,0x92,0x80,0x3e,0x6d,0x51,0x7f,0xd5, + 0xf4,0x79,0x8b,0xc4,0xd6,0x8c,0x2e,0x4e,0x25,0x22, + 0x55,0xe2,0x41,0x38,0x11,0xc1,0x80,0x2a,0xbd,0x89, + 0xf7,0x75,0xc1,0x42,0xaa,0x42,0x93,0x59,0x63,0xdb, + 0x80,0x45,0xef,0x51,0x20,0x5c,0xfb,0xb3,0x70,0xe0, + 0x92,0xca,0xb7,0x1b,0xf5,0x7e,0x13,0xb2,0x14,0xcf, + 0x95,0x02,0xa8,0xdc,0x5d,0x33,0xb5,0xdf,0x1e,0x4a, + 0xe4,0x4e,0x68,0x30,0x1d,0xaa,0x7a,0x5f,0x0a,0x9d, + 0xf6,0xef,0x09,0x46,0x8c,0x15,0xd6,0xc3,0xd4,0xf2, + 0x42,0xb1,0x45,0x23,0x35,0x51,0x03,0x3f,0xed,0x0e, + 0xd0,0xe5,0x2a,0x1f,0xd8,0x8f,0x77,0x40,0x2a,0xe2, + 0x1a,0x4c,0x9c,0x3a,0x97,0x44,0xde,0xd7,0x9b,0x26, + 0x47,0x12,0x92,0xea,0xae,0x35,0xf1,0x29,0x88,0xc7, + 0x06,0x70,0xf8,0x8a,0x1c,0xa9,0x6d,0x19,0x42,0x62, + 0x69,0x4f,0xba,0x03,0x3a,0xb4,0x8c,0xce,0x82,0x0b, + 0x11,0x27,0xca,0x82,0xba,0x32,0x8e,0x0d,0x6b,0x71, + 0x94,0x74,0x85,0xa0,0x2d,0x78,0x60,0x9d,0x9c,0x64, + 0x03,0x04,0x28,0xc9,0x5b,0xe1,0xda,0x0d,0x3f,0x89, + 0xc7,0x44,0x45,0x22,0xc9,0x62,0x50,0xa1,0x4a,0x06, + 0xad,0x8b,0xd6,0xed,0x31,0xc4,0xe1,0x31,0xd1,0x51, + 0x24,0x8f,0xfe,0x4c,0xa9,0x10,0x09,0xfd,0x98,0x10, + 0x2b,0x48,0xdc,0xd0,0x60,0x77,0xeb,0x38,0x0f,0x2d, + 0xb4,0x43,0x2d,0xb6,0x3e,0x38,0xe1,0xd0,0xca,0xde, + 0x6e,0x4b,0xa2,0xa8,0x81,0xc3,0x87,0xc8,0x9f,0xc4, + 0x18,0x7c,0x70,0xaf,0x44,0xd0,0x4b,0x6a,0xaa,0x20, + 0x40,0x74,0x48,0x15,0x95,0x7e,0x2f,0x29,0xd6,0x12, + 0x87,0x20,0xf1,0x08,0x52,0x1b,0xaf,0xc3,0x85,0xda, + 0x12,0xfb,0xf3,0xe7,0xcf,0xe8,0x9e,0x7b,0xf9,0xc9, + 0x2f,0xcc,0xae,0x35,0x01,0x71,0x49,0x56,0x22,0x3e, + 0x13,0xd9,0x6f,0x4a,0x2a,0x15,0xaa,0x9e,0x38,0x5a, + 0x77,0xc5,0x61,0x26,0x3d,0xc6,0x0a,0x91,0xaa,0x02, + 0x27,0xa3,0x9f,0x60,0xf0,0xc4,0xf8,0x1f,0xda,0x0d, + 0x8f,0x29,0x44,0xf2,0x4d,0x22,0xed,0x12,0x72,0xa7, + 0xa6,0x51,0xd3,0x54,0x0d,0x0e,0xc9,0xd8,0x71,0x10, + 0x3f,0xe9,0x58,0x74,0xf8,0x1d,0x10,0xd2,0x07,0x81, + 0xd7,0x55,0xae,0xa6,0x12,0x3e,0x74,0x60,0xb8,0xbd, + 0xe6,0x5a,0xdc,0x0e,0x99,0xba,0xde,0xc7,0xed,0x8f, + 0x33,0x76,0x4d,0x41,0x57,0xdb,0x00,0xef,0xcb,0xf3, + 0x49,0xa4,0x9e,0xda,0x9f,0x93,0x92,0xbd,0x39,0x8c, + 0xc8,0xe6,0x01,0xf7,0xd0,0x1d,0x3f,0xa9,0xd2,0x54, + 0xc2,0x35,0x4d,0x84,0x2a,0x6f,0x48,0xdb,0xf6,0x4b, + 0x34,0xd2,0x22,0xba,0x7a,0x88,0x7f,0xa2,0x32,0xef, + 0x28,0x08,0x44,0x2a,0x4d,0x93,0x9f,0xc9,0x7e,0xc4, + 0xc5,0x3b,0xf7,0x39,0x0b,0x4e,0x10,0x09,0xa9,0x1e, + 0x8a,0x1d,0x89,0x17,0x95,0xa6,0x55,0xc3,0x9a,0x3b, + 0xce,0xeb,0x2d,0x9d,0xa9,0x8a,0xf4,0x90,0x45,0x94, + 0x5b,0xb3,0x30,0x25,0x39,0x26,0x34,0x43,0xbb,0xd1, + 0x22,0xeb,0x6a,0x78,0x3d,0x0c,0x17,0x60,0x1b,0xcb, + 0xdc,0xf3,0x05,0x9e,0x68,0xf6,0xbd,0xd3,0x79,0x3a, + 0x29,0x6b,0xbb,0x77,0xfe,0x9b,0x20,0xbb,0xa6,0x8b, + 0x53,0x70,0x38,0x57,0x7f,0x31,0xd3,0xf8,0x3b,0x6c, + 0xfa,0x07,0xe1,0xd8,0x91,0x59,0x07,0x14,0xc6,0x12, + 0xb6,0x3b,0x11,0x57,0xaf,0xcb,0x04,0x15,0x25,0xd0, + 0x8d,0x81,0x41,0xee,0x0b,0xbd,0xbc,0x12,0x64,0xa8, + 0xbe,0x61,0x54,0xc9,0x68,0x00,0xa9,0xf7,0xd3,0xe1, + 0xed,0xbb,0x92,0xe8,0x9c,0x23,0x9a,0xcb,0x64,0x5e, + 0x99,0x60,0x50,0xd0,0x8b,0x2e,0x9d,0x76,0x21,0x8b, + 0x8b,0xfe,0x7d,0x0e,0xb9,0x32,0x07,0x80,0x5d,0x73, + 0xdd,0xb3,0x4a,0xa1,0xf4,0x7e,0x3d,0xce,0x0a,0x85, + 0x90,0x20,0x48,0x14,0x1e,0x36,0x1b,0x26,0xc8,0x56, + 0x98,0x76,0xa9,0x61,0x5a,0xc1,0xa2,0x49,0x80,0xb4, + 0xd4,0x86,0x73,0xf2,0x7d,0x60,0x56,0x2a,0x24,0xf4, + 0x77,0x64,0x44,0x76,0x2e,0x65,0xa1,0x65,0xb1,0xb0, + 0x1f,0x38,0x84,0x08,0x38,0xa1,0xd0,0xad,0xa6,0xd8, + 0x54,0xf9,0x02,0x5a,0xf3,0x68,0x5d,0xd0,0x77,0x82, + 0x88,0xe9,0x75,0x65,0x3d,0x1d,0x7b,0xc8,0x38,0xdf, + 0xa7,0xa4,0xd8,0xab,0x55,0x34,0xb5,0x15,0x26,0xe4, + 0xc8,0xf1,0x05,0x01,0x45,0x7e,0x1c,0xb4,0x3a,0x36, + 0xad,0x03,0x0d,0x01,0x55,0xb0,0x48,0x4e,0x6f,0x87, + 0xa9,0x00,0x21,0xbc,0x3b,0x4b,0x8c,0xed,0x2a,0xc2, + 0x0e,0x31,0x21,0xaf,0x28,0x2d,0x04,0x8c,0x64,0xc1, + 0x49,0xb6,0x1e,0x52,0xd8,0x1e,0xc7,0x99,0x49,0x9e, + 0x73,0x46,0xad,0x7d,0x44,0x3f,0x9d,0x7d,0xc3,0x94, + 0xf4,0xbb,0x18,0x49,0x08,0x92,0x9e,0xdf,0x41,0x82, + 0xc4,0xed,0x93,0x43,0xfb,0x77,0xba,0x26,0xb5,0x19, + 0x21,0x19,0x04,0xb3,0x77,0xcf,0x84,0x44,0x91,0x13, + 0x84,0x8b,0xb1,0xaf,0xc9,0x2e,0xc2,0x25,0x31,0x6e, + 0x6c,0x91,0x54,0x9a,0x1d,0x47,0x80,0x2a,0xd4,0xd4, + 0x73,0x4d,0x44,0xd6,0xad,0x95,0xc3,0x86,0x1f,0xb3, + 0xc8,0x86,0x4f,0xb8,0x3e,0xdc,0x50,0xfd,0xc5,0x26, + 0xd2,0x75,0xfa,0x2e,0x5a,0x54,0x9d,0xa3,0xe4,0xc6, + 0x10,0xd3,0x18,0xa0,0x26,0x80,0xa0,0x1c,0x3b,0x92, + 0xd5,0x68,0xdc,0x3e,0xa9,0x8b,0x6b,0x0f,0x5f,0x89, + 0x7d,0x06,0x81,0x38,0x13,0xf2,0x95,0x38,0x01,0x8e, + 0x8f,0x14,0x82,0xd7,0x51,0x19,0x06,0xe7,0x45,0x44, + 0x49,0xea,0x35,0x88,0x1e,0x26,0xee,0x90,0x72,0xd7, + 0x2e,0xd0,0x33,0x31,0xb0,0xf3,0x49,0x22,0x97,0x83, + 0x0d,0x82,0xd5,0xf2,0x59,0xf0,0xdd,0x36,0x6d,0xed, + 0xf1,0x77,0x48,0x03,0x88,0x0e,0x23,0x47,0x30,0x25, + 0x71,0x50,0x49,0x46,0x0e,0x29,0xa4,0xbb,0xd8,0xd2, + 0x8b,0xa5,0x36,0x92,0x1f,0xa7,0xdf,0x14,0x85,0x0d, + 0xdc,0x32,0xcb,0xc3,0x4b,0x71,0x27,0x54,0xc9,0x27, + 0xc4,0xde,0xb3,0x99,0xae,0x34,0x71,0xdd,0x9a,0x85, + 0x52,0x6c,0x4a,0x07,0x68,0x6a,0x89,0x12,0x12,0x1b, + 0xc4,0x38,0x47,0x04,0xa9,0x23,0x96,0xee,0xb0,0x34, + 0x82,0xaf,0x8f,0x21,0x19,0xc7,0xfd,0xd4,0xcf,0x4b, + 0x02,0x90,0x4e,0x32,0x60,0x32,0x9b,0xa6,0x33,0xd6, + 0x15,0x84,0xe4,0x04,0xef,0xce,0x6f,0x33,0xcd,0x76, + 0x12,0x2a,0xa5,0x62,0xb8,0x2a,0x5e,0x49,0x1a,0x5f, + 0x8e,0xab,0xa4,0xa1,0x78,0x31,0xb0,0x72,0x4d,0xf1, + 0x6e,0x92,0xad,0x18,0x64,0x03,0x7e,0xfe,0xfc,0x45, + 0x01,0x32,0x55,0x7d,0xda,0xe7,0x73,0x0b,0x92,0xcc, + 0x41,0xf5,0x85,0x4c,0x3d,0x48,0xca,0xac,0x35,0xb0, + 0x4d,0xb6,0x19,0x93,0x98,0xd2,0xdf,0x24,0x20,0x9f, + 0x04,0xa8,0x00,0x8d,0xff,0xc0,0xcc,0x1d,0x66,0x87, + 0xa9,0x28,0xdb,0x33,0x9d,0x82,0x1a,0xf0,0x96,0x62, + 0xc2,0xe6,0x26,0x71,0xa4,0x8a,0x7d,0xc8,0xbe,0xf7, + 0x60,0x6e,0x4c,0x32,0x4f,0x6a,0x9b,0xb9,0x00,0x4b, + 0xde,0x73,0x93,0x5d,0x06,0xb5,0x13,0x69,0x63,0x6e, + 0xfa,0xe6,0xb0,0x19,0x2d,0x2f,0xc2,0xf0,0x6e,0x1c, + 0xdf,0xc7,0xb9,0xb2,0x4f,0xed,0xb3,0xd8,0x6e,0x54, + 0x02,0x6d,0x5f,0x4b,0x41,0xbd,0xdb,0x25,0x2a,0x4a, + 0x7e,0x1e,0x3d,0x8f,0x1c,0x39,0x3e,0xb5,0xd8,0xe8, + 0x3a,0x9c,0xa3,0x7c,0x4a,0x32,0x92,0xc0,0x5f,0x13, + 0xf7,0x3c,0xa4,0x8b,0x62,0x74,0x5e,0x5c,0xf2,0x77, + 0xc0,0x2a,0x86,0xda,0x14,0x47,0xf7,0x28,0x69,0x31, + 0xe9,0x14,0x0f,0xb4,0xf6,0xcf,0xc0,0xd3,0x48,0x0a, + 0xe4,0xc7,0x25,0x1f,0x9d,0x28,0xdd,0x3f,0xfb,0x9e, + 0x5a,0xa5,0x77,0x46,0x87,0x99,0xb6,0x80,0xa9,0xb5, + 0x44,0x87,0xfe,0x84,0x22,0x12,0x32,0x47,0x36,0x4d, + 0xae,0x25,0x9d,0x24,0x44,0x2e,0x1e,0xaa,0x70,0xeb, + 0xf1,0x6c,0x5a,0xf2,0xc9,0xba,0x69,0x22,0x29,0x6b, + 0x52,0x45,0x2d,0x21,0x77,0x56,0x80,0x70,0xed,0x58, + 0x7c,0x50,0x01,0xab,0x2d,0x2f,0x3a,0xe7,0x26,0x4d, + 0xc1,0x84,0xd6,0x92,0x06,0x54,0x32,0x77,0xdd,0x72, + 0x97,0xe8,0xdd,0x5c,0xd7,0xf5,0x74,0x83,0xef,0xbf, + 0xd4,0x14,0x1e,0x9d,0xde,0xc9,0x4f,0x2b,0x46,0x20, + 0x48,0x6c,0x79,0x7c,0xfa,0xf3,0x17,0x90,0x7b,0xf5, + 0xc6,0xc2,0x44,0x14,0xe9,0x19,0xfd,0xb4,0x70,0xba, + 0x3b,0x72,0x72,0x11,0x77,0xc4,0x69,0xf7,0xf7,0x26, + 0x88,0x1e,0x75,0xe7,0x76,0xdf,0x45,0x46,0x6f,0xf7, + 0x73,0x70,0xa4,0x5d,0x25,0x11,0x2a,0x81,0xbc,0xdf, + 0x97,0x81,0x6a,0xdf,0x5a,0x69,0xaa,0x6f,0xa2,0xa6, + 0x8c,0xda,0xf2,0x71,0xc4,0xde,0x69,0x32,0x8c,0x2a, + 0xc9,0x4e,0xa0,0xde,0xb4,0x54,0xf4,0xbd,0xaa,0xfb, + 0x7a,0x48,0x50,0x4b,0xaf,0xe3,0x26,0x33,0xde,0x6b, + 0x10,0xaa,0xc5,0x4a,0x95,0xaa,0x7e,0x27,0x98,0xcf, + 0x52,0x2b,0xee,0x0d,0xf4,0x4a,0x49,0xb6,0x4c,0xd4, + 0x14,0x8d,0x85,0x86,0xe4,0xaa,0x92,0xc3,0x74,0x20, + 0x42,0x1f,0xe0,0x01,0xea,0x1e,0x8a,0xfb,0x26,0x4d, + 0x8a,0x11,0x5c,0x9e,0x82,0xa6,0x43,0x1e,0xa8,0xb0, + 0x71,0x05,0x5b,0x92,0x9e,0x20,0xb7,0xee,0xd4,0x4a, + 0x48,0x92,0x10,0x8a,0x94,0xa6,0xd6,0xc1,0x24,0x1e, + 0xea,0xd0,0x6c,0xe0,0x4e,0x8e,0xc9,0xbd,0xf1,0x99, + 0x7a,0x24,0x4d,0x54,0x51,0x6b,0xcb,0xe1,0xfe,0x7d, + 0x69,0x93,0x3d,0x0a,0x01,0x27,0xa8,0xa8,0x7f,0xae, + 0xda,0x6d,0x29,0x0b,0x04,0x24,0x16,0x27,0xd6,0x28, + 0xd9,0x20,0x79,0x0c,0x25,0x6a,0x43,0x12,0x75,0xa8, + 0xfd,0x36,0xa1,0x64,0x4e,0x77,0x27,0x21,0xf6,0x64, + 0x35,0x12,0xe2,0x93,0xa3,0x98,0xa0,0x76,0x9c,0xe3, + 0x60,0x99,0xf5,0xf5,0xf3,0x8e,0x36,0x5d,0x18,0x88, + 0xef,0x07,0xf6,0x20,0xbd,0x23,0x32,0xb9,0xc6,0xe4, + 0x8b,0xf4,0xb7,0x7e,0xe2,0x81,0x12,0xb7,0x12,0x2a, + 0xe2,0x9c,0x72,0xd3,0x97,0xba,0x8c,0x2c,0x3d,0x2c, + 0x47,0xc6,0x76,0xae,0xeb,0x13,0x9a,0x42,0xd9,0xb0, + 0xab,0xf6,0xa6,0x80,0x7c,0x01,0xe9,0x10,0xb2,0x79, + 0x52,0x3b,0x75,0x9b,0x75,0x65,0x88,0xaa,0xcf,0xbd, + 0x91,0x62,0x0f,0x4d,0x88,0x19,0xb7,0xe5,0x93,0xf8, + 0x45,0xee,0x1e,0x5c,0xc0,0x24,0xfb,0x10,0x48,0x6a, + 0x2c,0xef,0x24,0x70,0xec,0x6c,0xfb,0xc7,0x1d,0x10, + 0xb7,0x9b,0xb0,0x9b,0x1c,0xb8,0x82,0xa3,0x72,0x6a, + 0x25,0x41,0x0b,0xf1,0xad,0x75,0x42,0x08,0x87,0x1a, + 0x09,0x42,0x32,0x84,0x1e,0x5f,0xda,0xab,0xa7,0x36, + 0x90,0x83,0x70,0x53,0xf5,0x0c,0xa4,0xc9,0x03,0xf7, + 0x30,0x4a,0xfd,0x83,0xc5,0xc9,0x9b,0x5a,0x33,0x29, + 0x0e,0x3b,0x59,0x7e,0x57,0x55,0x0e,0x09,0xc4,0x83, + 0x6c,0xdd,0x81,0x94,0xd7,0xeb,0x85,0xd5,0xf0,0xc4, + 0x33,0xba,0x9f,0xcf,0xad,0x8e,0x9d,0xbc,0x9c,0x4c, + 0x62,0x75,0x12,0xc2,0xb9,0x0d,0xe2,0x44,0x24,0x4d, + 0x87,0x04,0x25,0x59,0xc3,0xa8,0x30,0xb6,0x4a,0xd4, + 0x7a,0x28,0x49,0x9a,0x68,0x31,0x04,0x67,0xc2,0x81, + 0x22,0xf6,0x84,0x96,0x2f,0x26,0x65,0x7a,0x6d,0xd7, + 0xc2,0x1a,0x63,0xc1,0x91,0x3a,0xb0,0xd6,0x1e,0x7b, + 0x71,0x22,0x90,0x13,0xe2,0x9a,0x3c,0xbb,0x1c,0x19, + 0xd8,0xb5,0xe8,0x1d,0x9a,0xa5,0x09,0x09,0x21,0x3e, + 0xc4,0x1b,0x6a,0xad,0x3d,0xe4,0xc4,0xa5,0xbd,0xe0, + 0x68,0x01,0xae,0x88,0x4c,0x1c,0x21,0x42,0x76,0xc1, + 0x9b,0x72,0x4d,0x4b,0xb9,0x16,0x3a,0x5b,0x5d,0x07, + 0xe8,0x84,0x7e,0x23,0xc1,0x87,0x98,0x94,0xd3,0x74, + 0x0b,0x55,0xe7,0x3d,0x20,0x92,0xeb,0x78,0x6a,0x25, + 0xa8,0xbd,0xc6,0x46,0xbc,0x8d,0xf4,0x0f,0xc0,0xeb, + 0xc4,0xb6,0x37,0xf4,0xcf,0x49,0xd0,0x6a,0x82,0x22, + 0x5d,0x8b,0xa7,0x57,0x0c,0x9b,0x71,0xe1,0x1e,0x88, + 0x74,0x72,0xa5,0x57,0xe9,0x0d,0xe6,0x3e,0xc4,0x07, + 0x49,0xfc,0x2c,0xe1,0x09,0x1d,0xb8,0xd7,0x87,0x63, + 0xbc,0x5a,0x4c,0x38,0x9b,0x15,0xc7,0x1f,0x4a,0x10, + 0xbe,0x31,0x47,0x25,0xeb,0x8f,0x47,0x75,0x61,0xa6, + 0x6c,0x4e,0x82,0xca,0x09,0xed,0x13,0xb1,0x3d,0x7b, + 0x00,0xab,0xa5,0x09,0x71,0x4d,0x2e,0x33,0xd9,0x15, + 0x54,0x5d,0xcf,0xc5,0x53,0x35,0xd3,0xa4,0x50,0xf4, + 0xbd,0x1a,0x5a,0xa8,0x8f,0xdf,0x91,0xe4,0x98,0x6c, + 0x2c,0x30,0x81,0xd1,0xbf,0xbb,0x8c,0x3d,0x46,0x2a, + 0x9e,0x88,0x93,0xa8,0x49,0x3b,0x99,0xa9,0xa6,0x91, + 0xe6,0x20,0xe4,0xfa,0xa6,0x8d,0x34,0x08,0x3c,0x1e, + 0xd5,0x9a,0x0a,0x48,0xe5,0xa1,0xc9,0x49,0x9a,0x6a, + 0x22,0xe4,0x07,0x44,0x32,0x47,0x6f,0x41,0xb3,0x0f, + 0x08,0xad,0xb1,0x46,0xaa,0x1a,0x23,0x7b,0x0c,0x25, + 0x7f,0x46,0x97,0x0c,0x24,0xf5,0xee,0x29,0x59,0x4a, + 0xbc,0x32,0x47,0x07,0xa0,0x36,0x2d,0x15,0x00,0xaa, + 0x56,0x9c,0x74,0xdf,0xe0,0x0c,0xb1,0xe3,0xf8,0xc3, + 0xc4,0xec,0x99,0xce,0x12,0xf2,0x48,0x74,0x7a,0x42, + 0x2e,0x46,0x24,0x0f,0x3d,0xd7,0xea,0xdc,0x78,0x72, + 0x2d,0x80,0x8d,0x31,0x29,0x5a,0xc4,0x35,0xec,0x22, + 0xb8,0xe7,0xf0,0xa3,0x03,0x24,0xc8,0xc2,0xdb,0x0f, + 0x36,0x01,0xbc,0x72,0x2f,0x28,0xc0,0x74,0x18,0x50, + 0x27,0xd8,0xce,0x7d,0x87,0x29,0xca,0x2b,0x11,0xa1, + 0x75,0x42,0x0b,0x5c,0xe2,0x8b,0x48,0x56,0xbd,0x4a, + 0x75,0x93,0x4c,0x4e,0x1b,0x44,0x5b,0x77,0x8b,0x36, + 0xcf,0xc3,0xfa,0x83,0xda,0x06,0xdf,0xed,0x0f,0x9d, + 0x98,0x7b,0x4c,0x84,0xf5,0xe9,0x3d,0xe3,0xc5,0x55, + 0x02,0x4d,0x3f,0xda,0x49,0x43,0x96,0x7f,0x74,0xd2, + 0xa8,0x21,0x0b,0xe5,0xac,0x29,0x74,0x12,0x4f,0x75, + 0x7d,0x0c,0xd7,0xa1,0x80,0xe0,0x68,0xdb,0x64,0x3a, + 0x19,0xa1,0xba,0x3c,0x21,0x40,0x16,0xb4,0x55,0x0f, + 0x69,0xe5,0xb4,0x80,0x52,0xe4,0xe6,0x4d,0x6d,0x41, + 0x23,0xc6,0x58,0xc3,0xa4,0xc9,0x4d,0xd4,0xac,0x45, + 0x7b,0xa8,0x1f,0x88,0x45,0x22,0xa2,0x84,0x24,0x48, + 0x90,0x2b,0xb7,0x06,0x9c,0xc9,0x27,0xf8,0xde,0xc5, + 0xc0,0xb3,0x81,0xa8,0xef,0x04,0x5e,0x09,0xf2,0xc4, + 0x91,0x71,0xda,0x23,0xa9,0x8d,0x90,0x4c,0x2a,0x83, + 0x4b,0xbb,0xe5,0xbf,0xa4,0xe4,0xf0,0xeb,0xeb,0xeb, + 0xfa,0xf5,0xeb,0xd7,0x21,0x4e,0x8d,0xf0,0x27,0xcf, + 0xd4,0x1a,0xbc,0x8c,0x7c,0x81,0xda,0x57,0x10,0x2a, + 0xef,0xf4,0x83,0x8c,0x67,0xd9,0xcf,0xa4,0x17,0x0d, + 0x53,0xe8,0xde,0xd3,0xc2,0xd3,0x15,0x6d,0x0e,0xb1, + 0x21,0xae,0x93,0xfb,0x33,0x48,0x64,0x4e,0xd2,0x18, + 0x4a,0x28,0x4f,0x5f,0x63,0x86,0x92,0x91,0xba,0x0c, + 0xc7,0x88,0xd0,0x9e,0x84,0xd4,0x53,0xeb,0x2b,0xad, + 0x35,0x45,0x4d,0xa6,0x29,0x47,0xf5,0x91,0x4b,0xed, + 0x42,0x9a,0x5c,0xa3,0x61,0x0e,0x1a,0x82,0x30,0xfb, + 0xea,0x40,0x4b,0xfe,0x24,0xcd,0x29,0x77,0x06,0x40, + 0x0e,0x71,0x20,0x96,0x9c,0x8d,0xf9,0xba,0x9e,0x79, + 0x3f,0xdd,0x04,0xb7,0x19,0x88,0x8f,0x12,0xe0,0x58, + 0xdb,0xe7,0x24,0xa3,0x48,0x65,0xde,0xeb,0x03,0x24, + 0xa8,0x7f,0x22,0x55,0xd1,0xa8,0x67,0x18,0x85,0x74, + 0xe3,0xfb,0x67,0xe3,0x31,0x34,0x20,0x5a,0xe3,0xcf, + 0xa6,0x67,0x37,0x19,0x9c,0xaa,0x6c,0xbd,0x6b,0x5b, + 0x40,0xf5,0x7b,0x52,0xe5,0xb5,0xa9,0x4a,0xb4,0xdd, + 0x43,0xea,0xc6,0x13,0x6c,0x49,0xc9,0xb3,0x1b,0x5f, + 0x24,0x81,0xba,0x54,0x7d,0x92,0xd5,0x88,0x83,0xf3, + 0x8d,0xf0,0xe4,0x99,0x0c,0x01,0x93,0x46,0x47,0x47, + 0x83,0xb2,0xd2,0xbe,0xff,0x1c,0xb3,0x1e,0x0f,0xd9, + 0x6d,0x18,0x34,0xeb,0x6c,0x8c,0x82,0x3b,0xf7,0x4c, + 0x10,0xc2,0x07,0x3a,0xe4,0xc8,0xc1,0xa9,0x50,0x21, + 0x83,0x60,0x81,0xdc,0xf1,0xb0,0x77,0x13,0x26,0xd4, + 0x52,0x70,0x0a,0xd7,0xe6,0xfb,0xbb,0x76,0xd0,0x49, + 0xa8,0x6d,0x40,0xc4,0x8e,0x4b,0x7e,0x86,0xb6,0xdd, + 0x99,0x6c,0x3e,0xdc,0x34,0x24,0xb5,0xc4,0x86,0xd8, + 0x7b,0x52,0x65,0x4c,0x7c,0x14,0xfd,0x3b,0xb2,0x7b, + 0xd1,0x3d,0x74,0x27,0x21,0x54,0x34,0x25,0x64,0x02, + 0xd6,0xc4,0x88,0x2a,0x98,0x91,0xed,0x88,0x54,0x3a, + 0xd4,0xc4,0x1d,0xb6,0x69,0x74,0xbb,0x8f,0xde,0x4f, + 0xed,0x2f,0x2d,0x2a,0x26,0x54,0xc2,0x8d,0x75,0x4f, + 0x49,0xc6,0x44,0xfc,0x4d,0x9d,0x07,0xa7,0x51,0xa7, + 0xb4,0x87,0x64,0x29,0x41,0x2a,0xd3,0x49,0xea,0x65, + 0xa2,0xc4,0x38,0x54,0x68,0xe2,0x37,0x4d,0x9c,0x40, + 0xb5,0xed,0x70,0xfc,0xba,0x9f,0x09,0x5f,0x09,0x04, + 0xd1,0x6d,0x19,0x36,0x02,0x4d,0x04,0x44,0x17,0x58, + 0x07,0x2d,0xbb,0xbf,0x27,0x13,0x53,0x72,0x0b,0x27, + 0x48,0xdc,0x7d,0x2f,0x79,0x9b,0x40,0xf5,0x7e,0x26, + 0x68,0x2e,0xf5,0xe7,0x41,0x89,0xf4,0xa7,0xd2,0xd7, + 0xc3,0x1e,0x20,0xc2,0x13,0x2a,0xd3,0x07,0x04,0xeb, + 0xaa,0x76,0x57,0xd9,0x53,0x12,0x41,0x23,0xe4,0x74, + 0xcf,0x49,0xd8,0x8d,0x7a,0xfd,0x34,0xba,0x0f,0x08, + 0xe1,0xa3,0x9a,0x4e,0x8a,0xac,0xaa,0x18,0xeb,0x94, + 0x9f,0x03,0x82,0x10,0x2d,0x2e,0x2e,0x30,0xef,0xd3, + 0x24,0x8b,0xfc,0x75,0x92,0xd0,0x9b,0x13,0x06,0xd3, + 0x71,0xf8,0x05,0x69,0xfc,0xed,0xfa,0xe9,0x1a,0x68, + 0x0f,0xb5,0x01,0x88,0xa3,0xc9,0x5a,0x82,0x9f,0x37, + 0x85,0x52,0x9a,0x60,0xfc,0x44,0xff,0x87,0x88,0xdb, + 0xbd,0x6d,0xa6,0x5c,0x39,0xf7,0x8f,0x23,0x02,0x4b, + 0x8c,0x38,0x4e,0xc0,0x75,0x92,0x38,0x98,0xc8,0xa1, + 0xb7,0x55,0xc4,0xe4,0x62,0x7f,0xb1,0x05,0xc5,0x63, + 0xef,0x01,0xc2,0x16,0x27,0x24,0x5d,0x51,0xd8,0xbf, + 0x14,0xa6,0x7d,0x8e,0x2b,0x20,0x5d,0x8b,0xce,0x85, + 0x94,0xa4,0x81,0xe4,0xee,0x4b,0xf5,0x90,0xe0,0xbc, + 0x39,0x9b,0xb6,0x8c,0xdb,0x77,0x9a,0x0c,0xa6,0x8e, + 0xc4,0x27,0xfc,0xa3,0xc1,0xf2,0x22,0x5e,0x5b,0x1a, + 0x07,0x4f,0x88,0x57,0x40,0x7d,0xcf,0x66,0x50,0xa5, + 0x27,0x7c,0xc4,0xa5,0x0b,0x48,0x22,0xae,0x3b,0xa5, + 0x28,0x98,0x33,0x9a,0x78,0x98,0xab,0x44,0x9b,0x64, + 0x03,0x92,0x71,0xeb,0x6f,0x37,0x81,0xe0,0xe0,0xe6, + 0xde,0x36,0x48,0xae,0xe3,0x0a,0xed,0xc2,0xe4,0xcf, + 0x03,0xbe,0x26,0xdb,0x8d,0xa9,0x85,0xe6,0xda,0x4a, + 0xf7,0x74,0x8a,0x79,0x88,0x35,0x7d,0xa6,0x6b,0xdd, + 0x0c,0x1a,0x46,0xb6,0xcd,0x13,0x26,0x05,0x8a,0xa4, + 0xf2,0x4d,0xe5,0x5f,0xa9,0xad,0x48,0x6d,0xac,0x81, + 0x68,0xf6,0xb0,0x8f,0x50,0x21,0x43,0xe5,0x14,0x69, + 0x1b,0xc6,0xb5,0x04,0xa9,0x4d,0xe7,0x84,0x13,0xf5, + 0x5d,0x41,0x52,0x50,0x64,0xe9,0x70,0x79,0x91,0x4c, + 0x6b,0x8b,0x31,0xb5,0xd0,0xda,0xc9,0x52,0x24,0xd6, + 0xa9,0x6d,0x3f,0x4d,0xa0,0x2e,0x98,0xde,0x92,0xca, + 0xbd,0xcc,0xf4,0x99,0x06,0xd2,0x4a,0xd5,0x95,0xc0, + 0xf3,0x95,0x02,0x82,0x0b,0xbc,0xdf,0xdf,0x5f,0xa4, + 0xf9,0xe1,0x84,0xd6,0xb4,0x60,0x20,0x62,0xa2,0xb6, + 0xdf,0xa6,0x3e,0x3f,0x59,0xe6,0x50,0x82,0x6d,0xe2, + 0xd2,0x49,0x16,0x37,0x9f,0xda,0x61,0xa8,0xd0,0x27, + 0x25,0x3a,0x81,0x1f,0x12,0x5d,0xe6,0x6f,0x82,0x36, + 0xb5,0xb2,0xa0,0x65,0xf7,0x48,0x18,0x84,0xe8,0x3d, + 0xf9,0x69,0x1d,0x7a,0xa7,0x2e,0x41,0x77,0xc3,0x26, + 0xc0,0x8b,0x41,0x7f,0xaf,0xde,0xbe,0x4c,0xbf,0xe3, + 0x88,0xaa,0x8e,0xc7,0x67,0x0e,0x6b,0x2a,0x5a,0x0f, + 0x48,0xab,0x9c,0x09,0x05,0x75,0x5d,0x0b,0x9d,0x78, + 0x4a,0x02,0xb3,0x0e,0x1d,0x26,0x34,0x8b,0x5a,0x92, + 0x52,0x74,0x10,0xfd,0xc0,0x16,0x48,0x2e,0x89,0xa3, + 0x56,0xb1,0x41,0x58,0xa3,0x3e,0x0f,0x0d,0x20,0x91, + 0x73,0x3d,0x70,0x7f,0x37,0x1d,0xa3,0x88,0x84,0x83, + 0xac,0xce,0x09,0xc3,0x12,0xd8,0x26,0xef,0x9f,0xf3, + 0x9b,0x0e,0x92,0xbe,0x71,0x52,0x1f,0x3e,0x29,0x93, + 0x76,0x85,0x63,0xc3,0x83,0x40,0xd5,0x60,0x28,0x1b, + 0x2a,0xf1,0x86,0xb6,0x5e,0x44,0x66,0xd1,0xfc,0x5c, + 0x63,0x5a,0x28,0xee,0x60,0x4e,0x41,0x55,0x47,0xb2, + 0x87,0xec,0xf5,0xed,0xfe,0x9c,0x17,0x8c,0xf4,0x91, + 0x8b,0x10,0x03,0x97,0x44,0x11,0x67,0x6b,0xeb,0x2d, + 0x13,0xb2,0x7b,0x97,0x74,0x39,0xa5,0x6a,0xfb,0x3c, + 0x06,0x8f,0x2c,0xe4,0x26,0x85,0xe7,0x79,0xae,0xeb, + 0x2a,0x95,0x45,0x70,0x0a,0xda,0x13,0x07,0xcd,0xf4, + 0xee,0xdf,0x24,0x19,0x8c,0x26,0x52,0x25,0xf3,0x3f, + 0x5a,0xc3,0xda,0x2f,0xff,0x3e,0x24,0x6b,0x4a,0x18, + 0x7a,0xd2,0x44,0xcf,0x07,0x8a,0x8c,0x8e,0x88,0xd4, + 0x84,0x28,0x6d,0xe4,0xe5,0x3b,0x17,0x61,0xd2,0xfa, + 0xa2,0x35,0x4b,0xa8,0x4a,0x2a,0x8c,0x08,0x05,0x9d, + 0x12,0x20,0x42,0x30,0xc3,0x64,0x54,0x2a,0xbe,0x4e, + 0x2a,0x3a,0x36,0x26,0xbe,0x70,0x0f,0x27,0x8d,0xd2, + 0xdf,0x68,0x3d,0x71,0xe0,0x1c,0x92,0xb1,0xb0,0xfa, + 0xb1,0x23,0xd9,0xd4,0x36,0x4a,0xc9,0x6a,0x1a,0x3c, + 0x20,0x54,0x3d,0x5d,0x7b,0x1a,0x2b,0xbf,0x9a,0x79, + 0xa9,0xbe,0x1b,0xe0,0xf9,0x1c,0x92,0x2d,0x31,0x14, + 0x84,0x03,0x07,0xf7,0x31,0x71,0x97,0x06,0x71,0x4e, + 0x42,0xa0,0x28,0xa1,0x4a,0x4a,0xd3,0xaa,0x07,0x97, + 0x10,0x49,0x4d,0xe2,0x16,0xc0,0xc2,0x99,0x92,0xb7, + 0x89,0xc0,0x9c,0xda,0x54,0x84,0xce,0x75,0xe1,0x59, + 0x72,0x8f,0x70,0xdd,0x8e,0xa1,0x33,0x81,0xc9,0xd6, + 0x39,0xe7,0x7a,0x2d,0x0e,0x72,0x0b,0x7f,0x4d,0x4e, + 0xe7,0x44,0x9a,0x74,0x0f,0xc5,0xe8,0x3d,0xc4,0x2c, + 0xd0,0xe1,0xc2,0x34,0x95,0x30,0xc9,0xeb,0xeb,0xc8, + 0xdd,0x44,0x22,0x0b,0x7c,0x8e,0xa8,0x9e,0x4d,0xe2, + 0x78,0x94,0xe8,0x0c,0xd0,0x9f,0xeb,0xd9,0x1e,0x80, + 0x7c,0xdd,0x68,0xfe,0x09,0xce,0xe5,0xf8,0x7d,0x1b, + 0x91,0xc7,0x44,0xda,0xa3,0xfe,0x76,0x9a,0x22,0x71, + 0xad,0x0e,0xc7,0x3d,0xd0,0x6a,0x8d,0xc4,0xce,0x42, + 0x92,0x72,0xfa,0x98,0xbd,0x4e,0x11,0x5d,0x4c,0xf2, + 0x7b,0xbc,0xab,0x81,0xf7,0xf3,0xb6,0xd9,0x61,0xba, + 0xef,0xf1,0x7e,0x1c,0x4f,0xc5,0xb9,0xcd,0x27,0xd7, + 0x73,0x08,0x8a,0xc7,0xb5,0x03,0x14,0x4e,0xee,0x2a, + 0xe1,0x53,0xb0,0x0d,0x53,0x53,0x56,0x9d,0x76,0x1a, + 0xbb,0x4f,0x45,0xcf,0xd4,0x22,0x1b,0x5a,0x7e,0x47, + 0x5d,0xd3,0x53,0xd0,0x76,0xbc,0xa2,0x94,0x20,0x99, + 0x35,0x7e,0xa6,0x83,0x82,0x3e,0xd7,0x55,0xe2,0xd2, + 0xb2,0xb5,0x09,0x47,0x6a,0xf3,0xe8,0xfb,0x9a,0xda, + 0x65,0xd4,0xaa,0xea,0xf4,0x09,0x23,0x60,0x79,0x26, + 0xf5,0x70,0x42,0xf2,0xdc,0x5e,0x75,0xfc,0xd4,0x74, + 0xce,0x84,0x02,0xe2,0x71,0xdf,0x4e,0x4d,0x1c,0xd6, + 0xd1,0xf9,0xa0,0x7d,0x6b,0x7f,0xd6,0x4c,0x3c,0x63, + 0xf2,0xac,0x42,0xbf,0xe4,0xa6,0x4e,0x28,0x4d,0x58, + 0xc7,0xc7,0x81,0x1b,0x24,0xb8,0xe8,0xf6,0x72,0x6f, + 0x53,0xca,0x99,0x7f,0x48,0x9b,0x8a,0x50,0x45,0x42, + 0xd9,0x27,0x54,0xdc,0xed,0x01,0x4a,0x94,0x1f,0xeb, + 0x89,0x02,0x4f,0x37,0xc6,0xec,0x0f,0x37,0x05,0x55, + 0xd0,0x4a,0x08,0xfa,0x55,0x07,0x21,0xc4,0x4d,0x0f, + 0x75,0x22,0x07,0xd2,0x81,0xaa,0x24,0x3a,0x32,0x71, + 0x05,0xf8,0xfb,0x4c,0x41,0xd7,0xdd,0x4b,0x32,0x41, + 0xa5,0x7e,0x72,0xea,0x63,0x43,0xa0,0x58,0x7d,0x46, + 0xb2,0xa7,0xb8,0x82,0x54,0x81,0xd9,0x44,0x07,0x0e, + 0x33,0x82,0xe6,0x4f,0xf2,0xa6,0x82,0x09,0x96,0xa4, + 0xff,0x41,0x95,0xca,0xd9,0x12,0x22,0xcd,0x66,0x3e, + 0xe1,0x20,0x3c,0x0e,0x5e,0x15,0x74,0xe5,0x98,0xe4, + 0x49,0xd1,0x4f,0xe2,0x30,0x38,0xe3,0xd4,0x13,0xb8, + 0x1d,0x9a,0xc0,0xfd,0xfc,0xbc,0x0b,0x98,0xc9,0x1f, + 0xcc,0x8c,0xa2,0x47,0xa5,0xda,0xcd,0x24,0x28,0x55, + 0x8b,0x9f,0x70,0x89,0x5c,0x8b,0x68,0x22,0xd5,0x03, + 0x0f,0xe9,0x18,0xd3,0xd6,0x55,0xb1,0x26,0xc8,0xc8, + 0xa1,0x60,0xed,0x86,0x17,0x9c,0xda,0x32,0x4d,0xc5, + 0xb8,0x78,0x61,0xda,0x6c,0xa8,0x30,0xad,0x87,0x33, + 0x4c,0x0b,0xa6,0x62,0xf5,0xb8,0x69,0x20,0x37,0x52, + 0xed,0x0e,0x5d,0x67,0x43,0x43,0x83,0x35,0x97,0x21, + 0x88,0xbb,0x04,0x4c,0x84,0x6a,0x6d,0x01,0x40,0x62, + 0x8a,0x81,0x02,0x70,0x89,0x81,0xed,0x5b,0x22,0x40, + 0xc4,0xf2,0x89,0xa7,0xb5,0xb5,0x7a,0xb9,0xb9,0x4a, + 0x94,0x04,0xc8,0x99,0x7a,0xb4,0x10,0x49,0x85,0x2d, + 0xb5,0x74,0x49,0x70,0x13,0x4c,0xcd,0x6d,0xeb,0x31, + 0x25,0x7a,0x20,0xd3,0xf1,0xf8,0x9f,0x9a,0xa8,0xa6, + 0xc4,0x77,0x42,0xb4,0x80,0xe4,0x7c,0x1c,0xa0,0x42, + 0x49,0xe0,0x6f,0x52,0xaf,0xed,0x5c,0x01,0x85,0xa8, + 0x20,0xe0,0x9d,0xc9,0x50,0x51,0x37,0xae,0x3a,0x2c, + 0xa7,0xde,0x6a,0x0a,0x4e,0x30,0xfd,0x60,0x5b,0x2b, + 0x49,0xf5,0xd2,0xb5,0x0b,0x54,0xb1,0x39,0x71,0x76, + 0xa0,0xf5,0x73,0x6d,0xf8,0x48,0x69,0x4c,0xf9,0x7e, + 0x17,0x7d,0x62,0x47,0xdb,0x32,0xa1,0x5a,0xfc,0xb9, + 0x36,0xa7,0x7b,0xe4,0xc6,0xce,0x27,0x32,0xaa,0x26, + 0x6e,0xaf,0xd7,0xab,0x60,0xc3,0x14,0x8c,0xdb,0x52, + 0x6b,0xf0,0x71,0x3d,0xf7,0x9f,0xeb,0x77,0xd0,0x74, + 0x90,0x7b,0x1f,0x21,0xd0,0x58,0xee,0xd6,0x77,0x80, + 0xaa,0x90,0x74,0x3e,0x4c,0x82,0x5d,0xbb,0x4f,0xdb, + 0xa9,0x5a,0x31,0x2b,0x7f,0xc8,0xc1,0xf8,0xa9,0x7d, + 0x16,0x44,0x3c,0xbb,0xd1,0x69,0x6d,0x5a,0x45,0xa6, + 0xbd,0xad,0xc9,0x6d,0xd1,0x73,0x4f,0xc9,0x88,0xde, + 0x93,0x8a,0x21,0xba,0x83,0x9a,0x82,0xb5,0xbb,0xef, + 0x60,0x60,0x7c,0x28,0x31,0xa1,0xfd,0xd9,0xf7,0xbf, + 0x1c,0xd8,0x2b,0x7f,0xab,0x54,0xe0,0xb9,0x80,0xae, + 0x86,0xa2,0xee,0x67,0x53,0x91,0x66,0xd6,0x48,0x32, + 0x43,0x3e,0xa9,0xc5,0x9d,0xfc,0xd1,0xfa,0x81,0x9d, + 0x90,0x53,0xd7,0x2a,0x9b,0x26,0x3a,0xa5,0x90,0x40, + 0xa3,0x4b,0x68,0x07,0xd1,0x90,0xc6,0x21,0xd5,0x79, + 0xd7,0x76,0x4d,0xe2,0x7a,0xa6,0xc5,0x74,0x48,0x7d, + 0x9d,0x0a,0x31,0xe2,0x7b,0xa6,0xd1,0xfb,0x01,0x59, + 0x3f,0x89,0x1a,0x40,0xdd,0x13,0xb2,0x1a,0xa2,0xf6, + 0x63,0xa0,0x56,0xd8,0xc4,0x91,0x14,0xcc,0x5b,0x6c, + 0x39,0x41,0x68,0xd6,0x8d,0xad,0x9f,0x0d,0x5d,0xc3, + 0x49,0x66,0xa4,0xf3,0xfe,0xad,0x95,0xbc,0x35,0xca, + 0x5c,0x78,0xba,0x44,0x81,0xa2,0xa9,0x37,0x2a,0x02, + 0x82,0x07,0x0e,0xe3,0x33,0x41,0x9a,0x34,0xea,0xa7, + 0xf0,0xaf,0x13,0xd5,0x73,0x7d,0x57,0xad,0x0e,0xdb, + 0xa8,0xb1,0x5d,0x74,0xe9,0xe5,0x12,0xd2,0xe5,0x5a, + 0x69,0x12,0x0c,0x0f,0x41,0x90,0x60,0x39,0xf2,0x10, + 0xde,0x72,0x8b,0x40,0xaa,0xa0,0xde,0x7f,0x45,0xb1, + 0x42,0x97,0xd5,0x3b,0x44,0x43,0xd5,0x95,0x89,0x34, + 0x97,0x0e,0x40,0xaa,0x40,0x08,0x99,0x72,0xa8,0xc6, + 0x43,0xf9,0xd3,0xa0,0x94,0xc0,0x73,0xb3,0xd7,0xde, + 0x13,0xd0,0xa1,0x55,0x3b,0x8a,0x14,0x0e,0x95,0x30, + 0xf9,0x73,0x21,0xf4,0x0b,0x4a,0xb1,0x6f,0x62,0x7d, + 0x6a,0x8a,0x98,0xbe,0xdb,0x88,0xef,0x9d,0xe4,0x13, + 0x96,0x5a,0x47,0x13,0xd4,0x3f,0xa8,0x68,0x63,0x3b, + 0xeb,0x26,0x8e,0xea,0xff,0xd2,0xda,0x22,0x14,0x55, + 0xfe,0xff,0x31,0x36,0x9f,0xf6,0x92,0x24,0xeb,0x67, + 0x68,0x9f,0x8d,0x6d,0x76,0xe7,0xb1,0x65,0x50,0xe3, + 0x37,0xa4,0x25,0x7c,0xd6,0xb4,0xdf,0x0e,0x88,0x04, + 0xda,0xd6,0x6e,0x52,0x9b,0x4e,0x87,0x0d,0xed,0x57, + 0xf7,0x59,0xc9,0xcb,0x6c,0xf0,0xee,0x1a,0xcf,0x8e, + 0x14,0x3f,0x26,0xf3,0x4d,0x90,0x6d,0x38,0x89,0xba, + 0x31,0xc9,0x11,0x84,0x75,0x7a,0xd2,0xd4,0xd5,0x90, + 0xd0,0xda,0x33,0x33,0x49,0x94,0xb8,0xa2,0xc8,0x9d, + 0x55,0xee,0xbb,0xb5,0x9d,0x6d,0xce,0x88,0xe8,0xef, + 0xe7,0x8a,0x25,0x42,0xdb,0x34,0x49,0x33,0x46,0xaf, + 0xae,0x0d,0x6f,0x2d,0x3d,0x7e,0x2b,0x1a,0x23,0x0b, + 0xa9,0x52,0x4b,0xc8,0x2c,0xb4,0x1f,0xa4,0xc1,0x55, + 0xc4,0xa9,0x87,0x9f,0x50,0x19,0xe2,0x0f,0xf4,0x5e, + 0xa6,0x43,0x08,0x3a,0x82,0x43,0xcc,0x79,0xfd,0x3b, + 0x58,0xb0,0x95,0x48,0xa2,0xd2,0xc6,0xa9,0xe9,0x79, + 0x25,0xf8,0xb0,0x7f,0x9f,0x43,0x38,0xc8,0xa3,0xcb, + 0xa1,0x2f,0xa6,0x95,0x54,0xb0,0x41,0x8a,0xd0,0x18, + 0x58,0x7c,0xe5,0x10,0x83,0xd7,0xeb,0x55,0xbd,0x22, + 0x77,0x62,0x8d,0x6e,0xd2,0x8b,0xae,0xd3,0xac,0x31, + 0x4b,0x2c,0x6f,0x30,0x71,0x01,0xef,0xa7,0x60,0x9c, + 0xf3,0x4d,0x6c,0xd0,0x88,0x66,0xbd,0x79,0x74,0xb9, + 0x04,0x5e,0x51,0x1c,0x83,0x28,0x1c,0x45,0x62,0x4c, + 0xb2,0x72,0x57,0xac,0x96,0xdc,0xee,0x60,0xee,0xef, + 0xeb,0xac,0xa9,0x1d,0xdb,0x51,0x2d,0x49,0x98,0x6a, + 0xf2,0x43,0xa2,0x09,0x21,0x6a,0x35,0x4c,0x2a,0xac, + 0xb2,0x6f,0x2a,0x89,0xed,0x01,0x42,0x10,0x93,0x17, + 0x50,0x46,0x8f,0x08,0xa6,0x23,0xc7,0x26,0xb2,0x37, + 0x71,0x0b,0x12,0x3a,0xed,0xda,0x5d,0xfd,0xbb,0xf5, + 0x39,0x6b,0x25,0x1d,0x62,0x96,0x1d,0x53,0x97,0xcf, + 0x4b,0x2d,0x81,0x33,0x5c,0x6f,0x34,0x11,0x9e,0x90, + 0x26,0x92,0xb8,0x70,0x22,0x85,0xc4,0xad,0xdb,0x10, + 0x5b,0xa7,0x83,0x3c,0x4c,0xe7,0x1e,0xd2,0x93,0xd3, + 0xb6,0xb4,0x6b,0x03,0x92,0xea,0x7c,0x90,0x2c,0x41, + 0xd2,0x37,0x21,0x9d,0x66,0x48,0xe0,0x24,0x34,0xa6, + 0xa3,0x4d,0x61,0x98,0x00,0xaf,0x99,0xce,0x2c,0x27, + 0x8e,0x49,0xad,0x29,0x42,0x9c,0xe8,0xde,0x81,0x4e, + 0x73,0x92,0x73,0x03,0x0c,0x4e,0x9c,0x0d,0x2f,0xb0, + 0x5f,0xc3,0xef,0x69,0x24,0x34,0xb4,0x10,0x2a,0x09, + 0x0d,0xb9,0x03,0x81,0xc8,0x4a,0x9b,0xc9,0x8d,0x8d, + 0xc9,0xa6,0xdb,0x5c,0xce,0xe4,0x53,0xdb,0x23,0x2d, + 0x43,0x7d,0x53,0x6c,0x76,0x49,0x8c,0x1b,0x3d,0x5f, + 0x5c,0xff,0x63,0x0c,0x5c,0x27,0xa9,0x12,0x43,0xbf, + 0x27,0xa4,0xa4,0x92,0xbc,0x10,0x6d,0xc4,0xa9,0xbc, + 0x7b,0x12,0xce,0x4c,0x4c,0x3c,0x46,0xf1,0x55,0x6a, + 0xc0,0x64,0xd9,0x4e,0xa1,0xdb,0xb6,0xc9,0xb4,0x1d, + 0x46,0x2d,0x2f,0x97,0x90,0x92,0x77,0x1d,0xb4,0x15, + 0xdf,0x46,0xc7,0xd3,0x7b,0x48,0xed,0xdd,0x20,0xc1, + 0x70,0xf4,0xb3,0x75,0x64,0xd9,0xbd,0x27,0x93,0x94, + 0xdb,0xb1,0xfa,0xa0,0x97,0xf5,0x18,0x89,0x27,0xfe, + 0x8a,0x31,0x0c,0xee,0x6d,0x82,0x4a,0x6d,0xd8,0x69, + 0xda,0xd2,0xb5,0xb7,0x52,0xcb,0x48,0x2b,0xfb,0x94, + 0x28,0xf5,0xca,0xd2,0xf1,0xe8,0x52,0x4b,0x6b,0x33, + 0x66,0x9e,0xc8,0xb4,0x8b,0xe4,0xf2,0x4c,0xcf,0x24, + 0x1d,0x02,0xa9,0xed,0xad,0x09,0xb9,0x4b,0x8e,0xfa, + 0x68,0x7d,0x72,0x91,0x87,0xd8,0x78,0x02,0xd7,0xc8, + 0x1e,0x64,0x8e,0xf3,0xe3,0x0e,0x78,0x52,0x68,0x4e, + 0x3e,0x51,0x0e,0x9d,0x26,0xa1,0xc5,0xe9,0xf0,0x85, + 0x62,0x0b,0x11,0x5f,0xc3,0xf3,0x72,0xd7,0x73,0x92, + 0xce,0x95,0x12,0x80,0xb7,0xa6,0xbf,0x89,0x31,0xb2, + 0xd9,0x73,0x09,0x55,0xbb,0x9a,0x2c,0x01,0x01,0x1d, + 0x34,0x70,0xa3,0xa6,0xc0,0x24,0x59,0x33,0x25,0xa5, + 0xe9,0x4c,0x4b,0x89,0x6a,0x48,0x68,0x49,0xe9,0xfb, + 0x0a,0xf6,0x41,0x58,0xa4,0xbd,0xfe,0xfd,0x79,0x86, + 0xd4,0x5c,0x56,0x99,0x20,0x39,0xea,0x61,0x43,0x4b, + 0xe1,0x53,0x68,0x12,0x05,0xf4,0x26,0x36,0x38,0x4d, + 0xc6,0xb8,0xf1,0xbb,0xa4,0xab,0xb0,0x0d,0x72,0x8a, + 0xb4,0x18,0x2f,0x2e,0xfa,0x1f,0xf6,0xdc,0x15,0x05, + 0x73,0xc4,0x31,0xed,0x55,0xdf,0x07,0x53,0x17,0x0d, + 0x4c,0xa6,0xa8,0xca,0xcd,0x4a,0xa4,0x55,0x32,0xe8, + 0xeb,0x07,0x17,0x41,0x9b,0xa4,0x34,0xeb,0xaa,0xa2, + 0xc9,0xdb,0x6d,0x80,0xd7,0xb1,0xe2,0xd5,0xdf,0x25, + 0x08,0x95,0xb8,0x1a,0xd2,0x86,0x38,0x24,0xba,0xd9, + 0xbe,0xc3,0xbe,0xdb,0xde,0x8e,0xec,0x6d,0x2b,0x4a, + 0xc0,0x0d,0x7f,0x20,0x0e,0x03,0x0c,0x5a,0x3c,0x3f, + 0x26,0xa0,0xe1,0xda,0x57,0x05,0x12,0x11,0x96,0xa7, + 0xb5,0x3c,0xb5,0x1c,0xa6,0xcf,0x9b,0x46,0xe9,0x25, + 0x19,0x3f,0x57,0x10,0xb1,0xa3,0xd6,0xa2,0x04,0x61, + 0x9c,0x96,0x72,0xea,0xf2,0x97,0x11,0xf1,0x04,0xb4, + 0xea,0x0d,0x7d,0x70,0x6d,0xaf,0xde,0x9e,0x85,0x98, + 0x87,0xe4,0x79,0xad,0xba,0xc9,0x2b,0x2e,0xa9,0xa0, + 0x2f,0xd0,0x3d,0xbb,0xc7,0xd3,0xf8,0xb5,0x59,0x3f, + 0x07,0xda,0x1a,0xc7,0xbd,0xf3,0x8b,0xc7,0xca,0x0f, + 0x1c,0xc2,0xc7,0x21,0x0a,0xe9,0x3b,0x9d,0x70,0x1f, + 0xc4,0x02,0x6c,0xdb,0x12,0x87,0x8a,0x0a,0x01,0x3d, + 0x2b,0x5d,0xc2,0x4b,0xbf,0x07,0x9f,0x85,0xeb,0x96, + 0x10,0xe0,0x64,0x22,0xec,0x12,0xba,0xad,0xdd,0x15, + 0x11,0x9f,0xa7,0x78,0xe3,0xd0,0xe1,0x0f,0xa7,0xb6, + 0xff,0x45,0xb6,0x74,0xd2,0x44,0xc6,0x68,0xcf,0x04, + 0x3d,0x26,0x8e,0x90,0x7b,0xa0,0x1b,0x73,0x34,0x0d, + 0xa0,0x8e,0x2c,0x3d,0x09,0x9f,0x91,0x75,0x83,0x6e, + 0x0c,0x23,0x4d,0x7f,0x9c,0x81,0xe2,0xa4,0xe2,0xab, + 0xde,0x58,0x14,0xa4,0xcf,0x39,0xd7,0x9f,0x3f,0x7f, + 0xb0,0x9a,0x72,0x0b,0x55,0xd5,0xaf,0xdd,0xb4,0x85, + 0xfe,0x7e,0xe3,0x46,0xe0,0x34,0x90,0x23,0xe1,0x89, + 0xc1,0x67,0x4c,0x50,0x61,0x6a,0x80,0xc8,0x7c,0x87, + 0x2a,0xde,0x10,0x70,0xdf,0xa6,0xf6,0x9c,0x09,0xa5, + 0x41,0x0b,0x8e,0xe3,0x52,0x39,0xbe,0x84,0xbb,0x76, + 0xe7,0x96,0x2e,0xc4,0xce,0x93,0x38,0x6f,0x1d,0x12, + 0x0f,0x16,0x12,0x47,0xd7,0x88,0x12,0xa6,0x9b,0xcd, + 0xc9,0x21,0x0e,0x89,0xfb,0xee,0xc6,0xd5,0x19,0xcd, + 0x09,0xa9,0xa5,0xd5,0xf9,0x3e,0xfd,0xf3,0x36,0x6d, + 0xdc,0x69,0x1a,0x2c,0xc5,0x02,0x8a,0x0d,0xc9,0xa4, + 0x39,0x71,0x88,0x2e,0x71,0xaa,0xd7,0x35,0x4e,0x2d, + 0xb6,0x8e,0xe0,0x49,0xfb,0x03,0x27,0x0f,0x61,0xb2, + 0x06,0x13,0x25,0xf3,0x1e,0xd1,0x4c,0x37,0x7d,0x9e, + 0xb1,0xbd,0x39,0x0b,0x2e,0xd7,0xe3,0xd9,0xdd,0xdc, + 0x46,0x8d,0x25,0xba,0x66,0x83,0xaf,0xd3,0x81,0x24, + 0x36,0xb6,0xc4,0x88,0x7f,0xe5,0x62,0x7c,0xb0,0xb6, + 0x39,0x01,0xf1,0xb6,0xad,0x43,0xd2,0xd5,0x01,0xfe, + 0xc8,0x63,0x32,0xda,0x9d,0x99,0xca,0x1d,0x34,0x6b, + 0xd1,0x79,0x25,0x22,0x62,0x11,0x6c,0x43,0x1e,0xcf, + 0xd0,0xad,0xfd,0x1e,0x3b,0xa7,0xe2,0x11,0xce,0x53, + 0xe2,0xb2,0x91,0xfa,0xf4,0x99,0x8a,0x5c,0x77,0x26, + 0x4c,0x20,0x42,0xfa,0x47,0x79,0x45,0x84,0xaa,0x93, + 0xad,0xd3,0xcb,0xc9,0xee,0x6f,0xbe,0x78,0xe8,0x0f, + 0x3f,0x0e,0x18,0x4d,0x0c,0xa4,0x3d,0x45,0xca,0xab, + 0x47,0x16,0x9d,0x4d,0x6a,0x7a,0x0b,0x0b,0x82,0xf1, + 0x49,0xe8,0x05,0xd9,0x6d,0xe8,0xe1,0xb2,0xa9,0x8c, + 0xe9,0x90,0x51,0xae,0x80,0x04,0xcd,0x33,0x04,0xf2, + 0xb7,0x45,0x09,0x04,0xed,0x43,0x01,0xfd,0x0e,0x70, + 0x4a,0x6a,0x4b,0x9a,0x41,0x54,0xf8,0x51,0x72,0xa9, + 0x0b,0xab,0xff,0x5c,0xab,0x5a,0x6c,0xd2,0xa4,0x41, + 0xc9,0x71,0x0a,0xa6,0xbf,0xd3,0x7b,0xbe,0x2d,0x06, + 0x82,0x8b,0xfa,0xe3,0x59,0xb7,0x44,0xeb,0x6c,0xd6, + 0xfe,0x9d,0x68,0xc2,0xd4,0xca,0x99,0x0c,0x7e,0xcf, + 0xb3,0x4f,0x7a,0xa9,0x16,0x51,0x4b,0xd6,0x1f,0x3c, + 0x01,0x25,0xae,0xea,0x38,0xe8,0x95,0xa5,0x02,0xe2, + 0x5a,0x76,0x3d,0xf9,0x9e,0x50,0x38,0x02,0xac,0xe3, + 0xe7,0x39,0xbd,0x93,0xad,0x93,0xf4,0xd4,0xff,0x57, + 0x04,0xec,0x12,0x97,0x79,0x42,0x71,0x52,0x21,0x66, + 0x90,0x58,0xab,0x93,0xe4,0xd6,0x8e,0x1c,0x04,0x2b, + 0xb9,0x8c,0xae,0xe3,0x44,0x28,0x18,0x1d,0xa0,0xee, + 0x73,0x06,0xeb,0xa1,0x43,0x23,0xd0,0x17,0x78,0xe3, + 0x4d,0xd5,0xb8,0x4b,0x1a,0x12,0x4f,0x48,0x13,0x05, + 0x97,0x84,0x90,0xc9,0x70,0xe2,0xaa,0x69,0x3c,0x0f, + 0xce,0xed,0xc4,0x31,0x7d,0x74,0x10,0x6e,0xbf,0xb3, + 0x8d,0xc1,0x2f,0xa1,0x2b,0x3d,0xb6,0x2d,0xd7,0xf8, + 0x27,0x43,0x33,0xb1,0xa5,0x94,0x86,0x6c,0x1c,0x27, + 0xad,0x17,0xbf,0x7d,0xaa,0x8b,0x90,0x68,0x3a,0x3b, + 0x54,0x69,0x7a,0x03,0x9c,0xb8,0xf7,0xe3,0xf8,0x94, + 0x69,0x3d,0xd2,0x64,0x79,0x42,0x90,0x5e,0x09,0x8e, + 0xa4,0xd6,0xc5,0x22,0x60,0x1e,0x6d,0x7f,0x10,0x12, + 0x44,0x3a,0x0b,0xbd,0xea,0x77,0xc2,0x51,0x72,0x60, + 0xa1,0x82,0xf3,0x60,0x3a,0x7a,0xa0,0xc5,0x87,0x28, + 0x41,0xd2,0xa9,0x21,0xb1,0x32,0x82,0x48,0x17,0x6d, + 0x01,0x54,0x50,0xa5,0x97,0x9a,0xa4,0xd5,0x25,0xc9, + 0xb4,0x09,0x6c,0xf7,0x80,0x31,0x46,0x99,0x23,0xb9, + 0x6d,0x83,0x04,0x4d,0x3d,0x5c,0xf3,0xac,0x4f,0xa8, + 0x5a,0x6c,0x62,0x4a,0x5e,0x6f,0x9a,0x3c,0xe9,0x61, + 0x40,0x82,0x62,0x53,0x92,0x07,0x87,0xc6,0x49,0xc4, + 0x79,0x35,0xd9,0x74,0x36,0x13,0xca,0x0d,0x71,0x2d, + 0x80,0x44,0xe6,0xef,0x07,0xf9,0xfd,0x6e,0xa7,0x11, + 0xe0,0xd4,0x6e,0x04,0x44,0x82,0xfe,0x97,0xda,0xbc, + 0x51,0x54,0xd3,0x05,0xbf,0x8e,0x48,0xf5,0x7f,0x68, + 0x0a,0x29,0xe9,0x9a,0xb8,0xbd,0xd8,0x62,0xcc,0x03, + 0x61,0x4c,0xa3,0xf9,0x3d,0x19,0x50,0x3f,0xaa,0x20, + 0xd9,0xf1,0x68,0x5b,0xea,0x21,0xd4,0xf5,0x99,0xa8, + 0x85,0xa9,0x48,0x2f,0x04,0xff,0xe3,0x8a,0xc6,0x1e, + 0x07,0x87,0xc2,0xf7,0xa4,0x49,0xaf,0xd0,0xf6,0xc3, + 0x42,0x70,0xf2,0x2c,0xdb,0xbc,0xb3,0xbb,0xd0,0xd9, + 0x14,0xe8,0xba,0x21,0x93,0x8f,0x22,0x4d,0x8e,0x51, + 0xe1,0x37,0xc4,0xf1,0x33,0xd9,0x89,0x80,0x13,0x7b, + 0x4c,0x70,0x28,0x29,0x74,0x26,0xd0,0x93,0x6e,0x14, + 0xe8,0xcc,0x9d,0xc4,0x7b,0xdb,0xb6,0x40,0x09,0x51, + 0x23,0x5a,0x49,0xd7,0x8e,0x72,0x08,0x26,0x9d,0x35, + 0xee,0xb3,0x94,0x93,0xe8,0xda,0x7a,0x2f,0xed,0x71, + 0x12,0x91,0x0e,0x32,0xe0,0xb3,0x30,0x81,0x73,0x93, + 0x52,0x16,0x2a,0x85,0x8c,0xfd,0x40,0x2f,0x9c,0x04, + 0xbf,0x88,0x68,0x78,0x88,0x20,0xb5,0x71,0x66,0xef, + 0x87,0xb7,0x4c,0xa0,0x3d,0xda,0x69,0x09,0x1e,0x0f, + 0xc6,0x85,0x47,0x93,0xba,0x4f,0x5c,0x72,0x5d,0x72, + 0x41,0x88,0x4f,0x42,0x3a,0x82,0x17,0xd2,0x09,0xd5, + 0xd0,0x71,0xed,0x0d,0x55,0x30,0xd5,0xa4,0x65,0x32, + 0x27,0xd5,0x76,0x42,0x18,0x51,0x3d,0x01,0xea,0x4d, + 0xfa,0x27,0x58,0xa9,0x0f,0xba,0x24,0x6f,0x2d,0x27, + 0xf0,0xce,0x7b,0x6b,0x0f,0x2c,0xda,0xb5,0x88,0xd6, + 0x18,0x21,0xb4,0xa3,0x87,0x74,0xb2,0x23,0x30,0x53, + 0x86,0x47,0x39,0x4b,0xc1,0x7a,0x05,0x5b,0x45,0x09, + 0x01,0x6e,0x6e,0xe1,0x6f,0x02,0x84,0xfa,0x67,0x61, + 0xbc,0xfe,0xf4,0xc4,0x8d,0x5a,0x69,0x4e,0xc7,0x8b, + 0xfe,0xd7,0xef,0xe3,0x2e,0xcc,0xbe,0x0f,0xd0,0x23, + 0x06,0xaa,0xe3,0xfd,0x4a,0x2b,0xfd,0x38,0x74,0x37, + 0xf1,0xb5,0x28,0xce,0x88,0x78,0xdd,0x09,0xbc,0x9a, + 0x87,0xe1,0x2d,0x14,0x7d,0xc7,0xc9,0x3c,0xa8,0x01, + 0x25,0xb4,0x1a,0xcf,0x15,0xb8,0x98,0xc4,0xed,0x19, + 0x6c,0x38,0x8e,0x26,0xe0,0x89,0x9b,0xa2,0x2d,0x6d, + 0x98,0xd2,0x74,0xfb,0xda,0xfa,0xfa,0xd1,0x39,0xe6, + 0x62,0x5a,0xd0,0x70,0x5b,0x71,0xa3,0x28,0x81,0x0e, + 0x45,0x46,0x24,0x7d,0x4f,0x2d,0xb1,0x6e,0x4e,0x6e, + 0xd0,0xac,0x63,0x90,0xee,0x11,0xcc,0xe8,0x9f,0xd3, + 0x8b,0x3e,0x39,0x8f,0x57,0xe2,0xb9,0xd4,0x16,0x9d, + 0x50,0xd9,0x24,0xd0,0x4b,0x03,0x57,0x64,0x76,0xfd, + 0x88,0x03,0x6e,0x36,0x9f,0xfc,0x77,0x36,0xb2,0xdd, + 0x89,0x34,0x4a,0x0b,0xc0,0x1d,0xf4,0xa9,0x55,0x05, + 0x53,0x11,0xf6,0xa5,0xa5,0x6a,0x73,0x31,0x31,0x65, + 0x17,0xd8,0x64,0xee,0x48,0x3d,0x6e,0xd7,0x4e,0xd3, + 0x6c,0x75,0xd3,0xbe,0xbb,0xc7,0x9a,0x49,0x7c,0x2b, + 0xbd,0xd3,0xc4,0x47,0x48,0x70,0xb2,0x3b,0x58,0x75, + 0xc2,0x80,0x26,0x09,0xa9,0x02,0x22,0xc7,0xe2,0xa0, + 0xea,0x9b,0x76,0xeb,0x09,0x15,0xff,0xd9,0x20,0x6d, + 0xa0,0x92,0x6a,0x79,0x41,0x94,0x5c,0x07,0xa5,0xf4, + 0x07,0x07,0x05,0xe0,0xdf,0xe3,0x82,0x69,0x90,0xe7, + 0x3f,0xdd,0x86,0x60,0xc3,0xa3,0xd1,0x76,0x60,0xb2, + 0x69,0x48,0x28,0x0a,0xd9,0xbf,0x6c,0x03,0x1b,0xed, + 0xf3,0xc1,0x0c,0x36,0xc6,0x13,0x87,0x08,0x03,0x1f, + 0xed,0x71,0xcf,0x81,0xb3,0x45,0x95,0xf0,0x71,0xfb, + 0xc4,0x49,0x6e,0xf4,0xe4,0x6a,0xa1,0x17,0x73,0x26, + 0x34,0xa0,0x73,0x3c,0x08,0x81,0x74,0xe4,0x5d,0x45, + 0x05,0x7b,0xbc,0x4c,0x42,0x79,0x13,0x8a,0xe2,0x38, + 0x70,0xe6,0x3d,0x8c,0x68,0x79,0xd0,0x65,0x4a,0x39, + 0x47,0xdc,0xeb,0xae,0x60,0x26,0xbe,0x0d,0x70,0x03, + 0xed,0xdf,0xe9,0x7e,0x4b,0xe3,0xfd,0xae,0x9d,0x97, + 0xbc,0x2b,0xdd,0x3b,0xd4,0xe4,0x77,0x43,0xb6,0xee, + 0x5d,0x80,0x44,0xee,0x26,0x6e,0xce,0x46,0xa4,0xd8, + 0xd9,0xdf,0xd0,0x59,0x0c,0xa0,0x80,0x45,0x97,0x26, + 0xcd,0xbb,0xfb,0x3c,0xde,0xb6,0xd5,0xdc,0x7a,0x78, + 0xa9,0x84,0x34,0x1d,0x20,0xc9,0x1e,0x40,0x2f,0x52, + 0x7b,0xb0,0xca,0x05,0x98,0xaa,0xc7,0x94,0x49,0x3a, + 0xde,0x4b,0x9a,0x3a,0xa0,0x0a,0x91,0x1c,0xe8,0x5d, + 0xff,0x98,0x82,0xa4,0x3b,0x04,0xcd,0xc3,0x3f,0x53, + 0xd6,0xaa,0xfd,0x66,0x22,0xb4,0xd1,0x73,0xd3,0x56, + 0xa5,0x8e,0x0e,0xa7,0x69,0x2b,0xba,0xee,0x7e,0x58, + 0x3b,0x45,0x5a,0x7d,0x6e,0x0a,0x45,0x37,0x38,0xff, + 0x6d,0x72,0x81,0x26,0x3a,0x5c,0x70,0x23,0x44,0xd0, + 0xb5,0x0c,0x7a,0xf0,0x4d,0x08,0x23,0x6d,0x90,0xc4, + 0x57,0xd0,0x4a,0x9a,0x3c,0x71,0x34,0x90,0x93,0xa4, + 0xbc,0x9b,0x8c,0x83,0xb6,0xdf,0x99,0x8c,0x00,0x65, + 0xcd,0xc7,0xd6,0x4d,0xe2,0xdc,0xf4,0xd6,0xcf,0x65, + 0x2c,0x3f,0x52,0xc2,0xe2,0x0e,0xc3,0x04,0x8b,0x4f, + 0x12,0x17,0x34,0x18,0x31,0x8d,0xd1,0x52,0x20,0xa6, + 0xfb,0xa2,0x24,0x2e,0x70,0xa4,0x8e,0x26,0x3e,0xfa, + 0x59,0x1d,0xad,0xee,0x08,0x51,0x72,0xc8,0x96,0x58, + 0x61,0x45,0xde,0x36,0x27,0x7f,0xdb,0xaf,0x0f,0x31, + 0x48,0x6a,0x93,0x42,0x81,0x8b,0x43,0x1c,0x1d,0xf1, + 0x74,0x49,0xc6,0xe6,0x9c,0x98,0xd6,0x81,0xb6,0x8f, + 0x0c,0x41,0xfd,0x50,0x2c,0x9e,0x04,0x02,0x37,0xe8, + 0x70,0x4f,0xf0,0xd4,0x1a,0x03,0x0a,0xf6,0xb3,0x98, + 0xb4,0x1c,0x6d,0x82,0x52,0xe1,0x42,0x89,0xed,0x94, + 0x70,0x6d,0x0a,0x96,0xe4,0xf1,0x98,0x5a,0x70,0x69, + 0x5c,0x3d,0xb5,0xde,0x48,0x47,0x30,0x0d,0x13,0x38, + 0xba,0x81,0x8b,0x9b,0x24,0x00,0x49,0xfb,0xe7,0xe5, + 0xfa,0xdb,0xce,0x47,0x28,0xbc,0x0c,0x5c,0x6c,0xe0, + 0x27,0x96,0x5a,0x67,0x8f,0x76,0x82,0xab,0xaa,0xdc, + 0xa1,0x3f,0x8d,0xa9,0xb7,0xc0,0x80,0x15,0x48,0x92, + 0x5a,0x27,0x6e,0x87,0xd9,0x24,0x58,0xb9,0x24,0x19, + 0xf7,0x7e,0x8d,0x5b,0x66,0xfc,0xeb,0xf5,0x3a,0x30, + 0xba,0x1f,0x4d,0x62,0x4d,0x16,0x4e,0x7c,0x97,0x43, + 0xca,0xb3,0x69,0x13,0x03,0x13,0xff,0xc0,0x7b,0x3b, + 0x61,0x1a,0x29,0x56,0xc8,0x14,0x68,0x43,0x35,0x77, + 0x3a,0xf2,0x64,0x7a,0xc3,0x47,0x13,0x3f,0xc3,0x5d, + 0x38,0xa9,0x95,0xa5,0x2d,0x8e,0x60,0x20,0x78,0x2e, + 0x63,0x18,0xa8,0xc4,0xe6,0x36,0xb2,0x1d,0x05,0x07, + 0x9d,0xfa,0xf3,0x05,0xc4,0x51,0x47,0x72,0x84,0x43, + 0xe3,0xa7,0x5d,0x25,0xd7,0x11,0xf5,0x6f,0xd2,0x9f, + 0x4d,0xdc,0x0e,0x8a,0x31,0x09,0x61,0xec,0x08,0x8b, + 0xb6,0xdc,0xae,0x40,0x02,0x4f,0x23,0xbe,0x9a,0x88, + 0x6a,0x1b,0x66,0x1a,0x3b,0xd6,0x16,0xe3,0xa0,0x77, + 0x74,0x1c,0x41,0x99,0xda,0xa9,0xc3,0xe1,0x7e,0x86, + 0x78,0x78,0x3a,0x8a,0x0d,0x6b,0x9c,0xde,0x41,0xf2, + 0x40,0x5b,0x4f,0x7b,0x69,0xfb,0x10,0x4c,0xb6,0xa3, + 0x61,0xb3,0x5b,0xf3,0x8a,0xd4,0x26,0x24,0x9e,0x86, + 0x14,0xb4,0x40,0x21,0x93,0x58,0x05,0x07,0x4c,0xc2, + 0x72,0x88,0x6c,0x6c,0xd6,0xce,0xba,0x38,0x55,0xe9, + 0x13,0xb2,0x03,0xea,0xfa,0x45,0x10,0xaf,0x22,0x77, + 0x33,0xb5,0x0f,0x5d,0x87,0xc2,0xc5,0x38,0x3d,0x17, + 0xa7,0xa9,0xe2,0x04,0x10,0xc0,0x40,0xc5,0x71,0x53, + 0x7a,0x61,0x30,0xe4,0xb1,0x67,0x7f,0x9b,0x9e,0x72, + 0x05,0xbe,0x4f,0x25,0x04,0x27,0x09,0x26,0x12,0x0a, + 0x63,0x38,0x1f,0x0f,0x3f,0xa8,0xee,0xcf,0x64,0x82, + 0xf9,0x9b,0x92,0xb1,0xf4,0x70,0xcb,0xd9,0x36,0xa8, + 0xcf,0x59,0xbf,0x77,0xad,0x2a,0xfa,0xc3,0xa7,0xc4, + 0x46,0x82,0x40,0xdd,0x07,0x68,0x4b,0x00,0x1f,0xea, + 0xc6,0xda,0x06,0xd9,0x98,0x46,0x82,0x46,0x0d,0x09, + 0x03,0x3e,0x14,0x90,0xdb,0x42,0x2b,0x53,0x11,0x9e, + 0xaf,0xaf,0xaf,0x9a,0x44,0x02,0x9f,0xb9,0x8b,0x65, + 0xea,0x57,0xd8,0x90,0x8f,0xd1,0xdd,0xfe,0x1d,0x26, + 0x00,0x54,0x6f,0x11,0xde,0x09,0xdf,0xfd,0x3d,0xc1, + 0x86,0xa2,0x86,0x0a,0xa0,0x02,0xb2,0xf2,0x10,0x80, + 0x34,0x89,0xde,0x34,0x26,0xf9,0xf8,0x8c,0x00,0x93, + 0xd7,0x74,0x48,0xca,0x14,0x61,0x4d,0xed,0x5c,0x25, + 0xcc,0x6f,0xd4,0x9f,0xe9,0x33,0x52,0x82,0xea,0x90, + 0xc7,0xef,0xb5,0x5d,0x69,0xa2,0x88,0x5a,0xe1,0x2e, + 0x26,0x28,0x1a,0x40,0x89,0x54,0x22,0x62,0x6e,0xfd, + 0xcb,0x5c,0xa1,0xe0,0x5a,0xd5,0xae,0x90,0x72,0xe2, + 0x73,0xa6,0xe5,0x62,0x39,0x0a,0x2e,0xa1,0xd1,0xa1, + 0x0c,0x6a,0xf9,0xf7,0x96,0x7d,0x6a,0x77,0x12,0x57, + 0xa3,0x15,0x51,0x27,0xf0,0x0d,0xed,0x40,0x46,0x6a, + 0xa5,0xe8,0x68,0xf9,0x06,0xf1,0x27,0x34,0x44,0xbd, + 0xa1,0xdc,0x1a,0x25,0xce,0x4e,0x8f,0x37,0x93,0x91, + 0x2e,0x75,0x20,0x48,0x94,0x75,0x1a,0x1f,0x77,0x7b, + 0x68,0xf0,0x89,0x8c,0xff,0xf4,0x89,0x32,0x75,0x43, + 0xa0,0xa2,0x82,0x00,0x8c,0x60,0x3b,0x84,0xb4,0x04, + 0x79,0x5e,0x6f,0xd3,0xb0,0xe9,0x6c,0xdc,0x0c,0xed, + 0x24,0x03,0xf3,0x84,0x6a,0xd1,0x5a,0x4d,0x83,0x4f, + 0x3f,0x40,0x0a,0x6d,0x64,0x52,0x71,0x4c,0x5c,0x17, + 0xc7,0x1b,0x22,0xd8,0xdd,0x65,0xc8,0x9d,0xe4,0x46, + 0x93,0x47,0x13,0xc3,0x7c,0x0a,0x6e,0x09,0x06,0x4e, + 0x0a,0xa6,0x26,0x9b,0xc5,0xb1,0x6d,0xe2,0x01,0x98, + 0x24,0x10,0x65,0xc0,0x01,0x59,0x3a,0x13,0x2f,0x23, + 0x71,0x27,0x52,0x9b,0xc2,0x05,0x76,0x5a,0xa8,0x64, + 0x62,0xab,0xee,0xc3,0xc0,0x9b,0x18,0x3d,0x6b,0x52, + 0x30,0x71,0x6d,0x3a,0x98,0x1e,0xa3,0x4a,0xf1,0x31, + 0x59,0x96,0xde,0x7b,0xd8,0x6c,0x27,0x21,0x7c,0xd2, + 0x7a,0x89,0x2d,0x9e,0xce,0x0f,0x4a,0x93,0x29,0x4e, + 0x0f,0x46,0xf7,0x89,0xd3,0xb3,0x69,0xe8,0xd2,0x4f, + 0x1b,0x88,0x0a,0x99,0x49,0xd0,0x6c,0xf0,0x39,0x52, + 0xc9,0xfe,0x07,0xe1,0xd9,0xe8,0xf2,0xfc,0xfc,0xef, + 0x26,0x24,0x2b,0x92,0x73,0xf3,0xdd,0x92,0x76,0xc9, + 0x24,0x1a,0x99,0x1c,0xa1,0x95,0xcc,0xbc,0x90,0xa2, + 0x70,0xd5,0xf4,0xa8,0xf9,0x23,0x66,0xba,0x84,0x3a, + 0x5b,0x34,0x37,0xa9,0xef,0x92,0x24,0x81,0x9b,0x38, + 0x03,0x5f,0xa9,0x87,0x50,0x63,0x12,0xb1,0xd5,0x7d, + 0x16,0x84,0x24,0xd1,0x99,0x3e,0xe8,0x5b,0x1d,0x42, + 0x34,0x02,0xe7,0x25,0x8a,0x20,0xd2,0x79,0x45,0xbc, + 0xa2,0x69,0x3a,0x6c,0xe2,0x98,0x51,0x22,0x12,0xb4, + 0xaa,0xc6,0x78,0xd8,0xdb,0xfd,0x49,0xb6,0x85,0x90, + 0x72,0x69,0xa9,0x9e,0x34,0x30,0x92,0x48,0xc3,0xee, + 0x7b,0x4d,0x3b,0xff,0x90,0xf2,0x7a,0xe2,0xe2,0x26, + 0xf4,0x97,0xd6,0xb6,0x43,0x4b,0xf5,0xf9,0xa4,0xd8, + 0xfb,0x72,0xcc,0x7f,0x20,0xd7,0xe2,0x58,0xb1,0x23, + 0x20,0x2b,0xa4,0x38,0x25,0x52,0x9a,0xcd,0x42,0xb5, + 0x13,0xd9,0xe6,0xa4,0x9d,0xe0,0x44,0x10,0xd5,0x87, + 0x47,0x39,0x24,0xe9,0xf3,0x9d,0x2f,0x8b,0xfe,0x9e, + 0x21,0x62,0x23,0xc3,0x5f,0x5f,0xee,0x77,0x02,0x68, + 0x03,0xd6,0x14,0x00,0x1b,0x9f,0xe8,0x72,0x9c,0x94, + 0x54,0x79,0x06,0x79,0x7c,0xba,0xcf,0xc4,0x4d,0x7a, + 0x4c,0x7a,0xb5,0x09,0x26,0x72,0xd5,0x46,0x9f,0x9b, + 0xfb,0x9e,0x54,0xfa,0xe0,0x6e,0x27,0xb9,0xf6,0xad, + 0x3b,0x94,0xcc,0xc1,0x80,0x95,0x8f,0xf3,0xfe,0x31, + 0x1b,0xfa,0xb8,0x44,0x45,0xda,0x68,0xc7,0x89,0xb2, + 0x01,0xc2,0x73,0x36,0x06,0xa2,0x6d,0xed,0xfc,0x1c, + 0x6e,0x8e,0x2f,0xe2,0x84,0x44,0x75,0x42,0xeb,0x4e, + 0x56,0x26,0xe1,0xc4,0xa9,0xc5,0xfb,0x09,0x0f,0x80, + 0x12,0x76,0x82,0xf8,0x13,0xe1,0x5a,0xe3,0xc8,0x42, + 0x35,0xfa,0x31,0xf9,0x35,0x1c,0xb0,0xa9,0x1d,0x35, + 0xfa,0x87,0xf5,0x44,0xa3,0x0f,0x2f,0xb8,0x20,0x2f, + 0xd6,0x29,0x27,0x24,0x35,0x97,0x8a,0xd8,0xc2,0x01, + 0x70,0x06,0xc9,0x89,0x13,0x38,0x1a,0x67,0x6a,0x37, + 0xeb,0x1a,0xeb,0xc5,0x0e,0x25,0x1f,0xa9,0x9d,0x02, + 0xf7,0x62,0x7f,0x87,0xd4,0x98,0x69,0xd2,0x94,0x92, + 0x02,0xfd,0x6e,0x45,0x7b,0x93,0xd6,0x19,0xb5,0x90, + 0xb4,0x73,0x70,0xf9,0x81,0x98,0x03,0x09,0x12,0x4e, + 0x32,0x43,0x12,0x70,0x26,0x3a,0x88,0x33,0x05,0x15, + 0x33,0x6c,0xfb,0x5c,0x48,0x66,0x40,0x93,0x6e,0x11, + 0x6f,0x8d,0x48,0xac,0xe3,0xeb,0xc0,0xfe,0x39,0xa1, + 0xc3,0xf4,0x06,0x06,0xf4,0x7d,0x9f,0x06,0x51,0xf4, + 0x7c,0xfb,0xad,0x0b,0xe7,0xc3,0x11,0x50,0xe5,0x3e, + 0x54,0x22,0xdb,0x99,0x4a,0xe6,0xcd,0x9b,0x8a,0xb2, + 0xda,0x34,0xca,0x46,0x08,0x96,0xfb,0xde,0x8e,0x72, + 0x90,0x3b,0x76,0x22,0xe7,0x51,0x55,0xa7,0xff,0x7c, + 0x1b,0x4f,0x96,0x26,0x59,0x17,0xfb,0x76,0xd9,0x76, + 0x89,0xdb,0x04,0x77,0xdf,0x49,0x21,0xdd,0x6e,0x38, + 0x6b,0x0e,0xc9,0x32,0x41,0xee,0xe9,0x46,0x29,0xed, + 0x1d,0x83,0x78,0xb8,0xb6,0xd1,0xdb,0xb5,0x1b,0xed, + 0x96,0x72,0x10,0xb7,0x7a,0xae,0xe9,0x33,0xa2,0xf6, + 0xcf,0x65,0xfc,0xd7,0x52,0x5b,0x8a,0x3c,0xcd,0x4c, + 0xb0,0x29,0x38,0xf8,0xde,0x8c,0x4a,0xcd,0x3b,0xed, + 0x1b,0xb5,0xa4,0x0d,0x84,0xcf,0x70,0x40,0x21,0xdf, + 0xbe,0x33,0x71,0x65,0x7a,0x80,0x6d,0xcf,0xa4,0x52, + 0x7b,0xc0,0xed,0x03,0x17,0x04,0x6f,0xb3,0x55,0xb2, + 0x4e,0xa1,0x6a,0x71,0x63,0xa8,0xea,0x12,0xbc,0x7e, + 0x9d,0x8a,0x48,0x6e,0x95,0xa8,0xf5,0xf3,0x5d,0x41, + 0x95,0xaa,0xdc,0x09,0x6d,0xa0,0xa0,0xbc,0xf1,0x75, + 0x0a,0x5a,0x2c,0x6f,0xde,0x4b,0x89,0x5f,0xe5,0xd0, + 0x95,0xd4,0x2e,0xa5,0x67,0xe7,0x10,0x68,0x12,0xa3, + 0x33,0x05,0x6a,0xe2,0xf5,0x20,0xec,0xe2,0x3e,0x77, + 0xe3,0x0d,0x47,0x71,0xdc,0x89,0x29,0xba,0x09,0x29, + 0x5a,0xdf,0x6a,0x2d,0xe2,0x62,0x21,0x4c,0xeb,0x9d, + 0x40,0x81,0x40,0x7e,0xd4,0xb0,0xae,0x1e,0x5e,0x5d, + 0x64,0x0d,0xd4,0xf9,0x7b,0x7d,0xbc,0x5d,0x10,0xfa, + 0x98,0x14,0x05,0x74,0x72,0xd5,0x9e,0x9e,0xc0,0x0f, + 0xe7,0x29,0x46,0x2d,0x63,0x05,0x41,0x52,0x6b,0xde, + 0x79,0xce,0x39,0x39,0x85,0xe4,0x49,0xda,0x7f,0xf7, + 0xf7,0xd4,0x42,0x72,0xfd,0x6c,0x0a,0xc8,0x0a,0x8b, + 0x39,0x37,0xf8,0xd4,0x0f,0xde,0xc0,0xef,0x97,0x31, + 0x10,0x55,0x4e,0x8a,0xb6,0x63,0x2e,0xe3,0x2e,0x7e, + 0x89,0xdb,0x79,0xe2,0xc8,0x0c,0xc9,0x0b,0x06,0xa1, + 0x54,0x19,0x86,0x56,0x50,0xbc,0xf6,0xb6,0x00,0xca, + 0x71,0x53,0x7a,0xc2,0x31,0x19,0xb7,0x76,0x13,0xd4, + 0xde,0xc7,0xed,0x7c,0x28,0x53,0x25,0xa1,0xb3,0x3b, + 0x1d,0xd2,0x9a,0x68,0xf6,0xe7,0xa9,0x89,0x42,0xff, + 0x3c,0x30,0x0e,0x45,0x33,0x54,0x17,0x6c,0xbb,0xb1, + 0x6b,0x7f,0x66,0xa0,0x92,0xfa,0x78,0xef,0x8d,0x7b, + 0x64,0x39,0x62,0x5a,0x8d,0xf6,0xa4,0x05,0x78,0x63, + 0x3f,0xc9,0xcd,0xc2,0xdd,0xfa,0xe1,0x46,0x9f,0x26, + 0xb2,0x4c,0xa5,0x58,0xee,0xd0,0x49,0x41,0xcd,0x4d, + 0xdb,0x98,0x03,0x0b,0xdf,0x35,0x25,0x5a,0x4e,0xa4, + 0xd1,0xa1,0x25,0x29,0x68,0xa5,0x0a,0x97,0x7a,0xfc, + 0x69,0x22,0xad,0x1d,0x22,0x6f,0xc4,0x70,0x5d,0xdf, + 0xea,0x4c,0xed,0xf6,0x7b,0xf0,0xe4,0xda,0x8e,0x12, + 0x93,0xbd,0x80,0x16,0x69,0x07,0x26,0xdd,0xb0,0x0d, + 0x0f,0xcf,0x33,0x69,0x40,0x1d,0x4a,0x7c,0xd5,0x46, + 0xa8,0x9f,0x11,0xdd,0xc0,0xd4,0x71,0x96,0x94,0x44, + 0x2d,0xa6,0xcb,0x3f,0x6b,0x46,0xce,0x9c,0x03,0x2d, + 0x90,0x03,0xdc,0xb3,0x43,0xe7,0x4a,0x32,0xd0,0x26, + 0xa4,0x62,0x53,0x68,0x93,0x79,0x2c,0x99,0xab,0x76, + 0xa4,0x24,0x49,0x76,0x38,0xb9,0x11,0x02,0x2c,0xf4, + 0xda,0x53,0x9b,0x8c,0xb8,0x7d,0xd4,0x42,0x4b,0xf4, + 0x97,0x41,0xea,0x24,0xb6,0x04,0x09,0x19,0x72,0xba, + 0x3f,0xa9,0xf5,0xae,0xf7,0xec,0x0a,0x3f,0x02,0x2e, + 0x7e,0x87,0x0d,0x50,0x94,0xcd,0x06,0xb4,0xc2,0x22, + 0x3a,0xc3,0xcb,0x7a,0x1c,0x68,0x6d,0x47,0x94,0x1b, + 0xcd,0x4f,0x73,0xfe,0x30,0xfa,0xf9,0xb8,0x1f,0x42, + 0xb9,0x68,0x71,0x11,0x2c,0xaf,0xc9,0x88,0x1e,0x86, + 0xae,0x5d,0xe5,0x9c,0xce,0xd5,0x91,0x3d,0x25,0x03, + 0xee,0xc0,0xde,0xf2,0x9f,0xe8,0x9d,0x80,0x8e,0x53, + 0xf5,0x40,0xd5,0x51,0x3b,0x68,0x07,0x55,0x18,0x39, + 0x2c,0xf3,0x1c,0xdf,0xee,0xcd,0xb4,0xc3,0x0a,0x0e, + 0xa7,0x03,0xe8,0xc8,0xcf,0x77,0x51,0x05,0xd8,0x13, + 0xbe,0xbe,0x51,0xba,0xa2,0xae,0x4b,0x38,0x3a,0x09, + 0x13,0xde,0xab,0x4d,0x3e,0x92,0x02,0xab,0xa2,0x46, + 0x84,0x2a,0xc8,0xa1,0x5e,0xc4,0x05,0x31,0x9f,0xa3, + 0xd5,0x50,0x05,0x04,0x69,0xdc,0xb3,0x2a,0x85,0x30, + 0x91,0x1a,0x09,0x91,0x4b,0x01,0x09,0xf6,0xdf,0xd9, + 0x90,0xbe,0x53,0x72,0x44,0x08,0x91,0xc6,0x0a,0xd7, + 0xf2,0xa5,0x67,0x01,0xad,0xcc,0x69,0x0a,0x0b,0xdb, + 0xce,0x84,0x4e,0x69,0x45,0x4f,0x9c,0x88,0x80,0x7c, + 0xd8,0x03,0x96,0x10,0xe6,0xb0,0x06,0xa2,0x68,0x6c, + 0xe7,0x2e,0x12,0x02,0x66,0x9e,0xe7,0x21,0xb5,0x6d, + 0x6d,0xb3,0x24,0xaf,0xac,0x09,0xb9,0xbf,0x58,0xf9, + 0x7d,0x74,0x90,0x4f,0x22,0x7e,0x84,0x86,0xd2,0x33, + 0x1a,0x78,0x76,0xc4,0xf7,0x3a,0x50,0xac,0x1c,0x48, + 0x6e,0x48,0xb2,0x83,0xc8,0xd9,0x67,0x53,0x5c,0xb8, + 0xe4,0xd9,0xd1,0x5d,0x4c,0x12,0x72,0x12,0xea,0x44, + 0x89,0x38,0xc4,0x9f,0x07,0xf1,0xba,0xaf,0x17,0x18, + 0xa0,0x78,0x20,0x43,0xf7,0xdf,0xff,0x9e,0x92,0x0a, + 0x5a,0xb4,0x2e,0xa1,0x18,0x60,0xcf,0xb7,0x69,0xad, + 0x25,0x0c,0xf7,0x76,0xd0,0x29,0xa2,0x04,0x53,0x15, + 0xb5,0x59,0x9c,0xf7,0x64,0xd9,0x39,0xa7,0x1a,0xf2, + 0x61,0xdb,0x3d,0xae,0xc2,0x77,0xe8,0xd3,0x07,0xed, + 0xa1,0x43,0xad,0x9c,0x49,0xa1,0x13,0x46,0x2e,0x6d, + 0x5b,0xd1,0x90,0x0e,0xcb,0xf5,0x95,0x21,0x81,0x43, + 0x71,0xb9,0x3e,0x49,0x67,0x5a,0x41,0x15,0x8c,0x44, + 0x63,0xcb,0xcd,0x05,0xa1,0xfe,0x3d,0x2e,0x99,0x99, + 0x12,0x78,0xf3,0xcc,0x6c,0x2b,0xcd,0x04,0xcb,0x0a, + 0x6b,0xf4,0xed,0x3e,0x29,0x48,0xf4,0x76,0x54,0xa8, + 0x80,0x4e,0x9f,0x9a,0x5a,0x88,0x75,0x76,0xfe,0x56, + 0x4d,0x30,0xaf,0x72,0xbf,0x34,0x39,0x21,0x93,0x52, + 0xc7,0x91,0x53,0x44,0x90,0x88,0xf3,0x6e,0x4a,0x24, + 0x41,0xec,0x9f,0xa8,0x4d,0x13,0xf2,0xd1,0xf7,0xb0, + 0x6b,0x41,0x4e,0x28,0x10,0xa9,0xe1,0xbb,0x3f,0x73, + 0x82,0x89,0x4a,0xfc,0x5c,0xb8,0x63,0x9f,0xc9,0x98, + 0x36,0x71,0xd5,0xe8,0xf0,0x1c,0x62,0x8a,0xbd,0xc6, + 0x7e,0x50,0x85,0x36,0x04,0x59,0x23,0xfc,0xf0,0x15, + 0xf5,0x1d,0xb8,0x67,0x3d,0x25,0x7f,0xbd,0xc5,0xa7, + 0x7f,0xae,0x08,0x4f,0xb2,0xe5,0x71,0x24,0x6e,0x37, + 0xaa,0x4e,0xc9,0x12,0xb4,0xa8,0x2d,0x82,0xd5,0xaf, + 0xb5,0xef,0x95,0xcb,0x90,0xaa,0x27,0x5f,0x33,0xb7, + 0x9f,0x14,0x49,0xd5,0x7b,0x95,0x77,0x16,0x91,0x25, + 0x1a,0x6f,0x77,0xad,0xa9,0xd4,0x46,0x34,0x13,0x75, + 0x67,0xeb,0x02,0x4f,0xd7,0x44,0x2d,0x58,0xe7,0xb7, + 0xa8,0xeb,0x34,0x9d,0x91,0xe9,0x9f,0x17,0x3d,0xf4, + 0xe4,0x39,0x94,0x08,0x8f,0x81,0xac,0xf6,0x16,0x40, + 0x9c,0x95,0x84,0x21,0xb2,0xe1,0xc2,0xa0,0x87,0xe5, + 0x16,0xbb,0x56,0xad,0xae,0x62,0x07,0xfd,0x0f,0x8b, + 0x8c,0x24,0xe1,0x34,0x17,0x5c,0x9d,0xba,0x72,0x82, + 0x9e,0xa7,0xaa,0x8d,0x14,0x63,0xdd,0xbb,0x4b,0x5c, + 0x84,0x6e,0x52,0x0a,0x07,0x0b,0x1a,0xc0,0xba,0x83, + 0xa5,0x39,0x4a,0x8f,0xc2,0x5a,0x93,0x6f,0x50,0x7f, + 0x6f,0xd3,0x18,0xf1,0x64,0x81,0x01,0x8a,0xa2,0x68, + 0xe2,0xa8,0xd5,0x0c,0x40,0xe4,0x48,0xe6,0x34,0xed, + 0xdf,0x0d,0x1c,0x7c,0xf4,0x9a,0x5d,0x0b,0xd1,0xbc, + 0xcf,0xe3,0xc4,0x02,0x27,0x25,0xe3,0xeb,0x39,0x7d, + 0x65,0x11,0x2d,0x5a,0xc3,0xf4,0xb9,0x9d,0x80,0x38, + 0x05,0xc4,0x69,0x82,0x31,0xf1,0x6b,0x48,0x4d,0x76, + 0x1a,0xbb,0x77,0x53,0x7a,0xda,0x7e,0x02,0xef,0x22, + 0xcb,0xa1,0x71,0x36,0x18,0x8e,0x1b,0x61,0x74,0x85, + 0xc6,0xc2,0xf1,0x02,0x13,0x5c,0x17,0x37,0x74,0x8d, + 0xf7,0x43,0xa3,0x7f,0x08,0xd9,0x53,0xb8,0x76,0xa7, + 0xee,0x05,0x8a,0xf7,0x6a,0xb1,0xa3,0xc2,0x8e,0x09, + 0x29,0x73,0xf7,0x43,0x13,0xb6,0x41,0x23,0x0d,0x07, + 0x58,0x5c,0xdc,0xa7,0x67,0xd6,0x3f,0xc7,0xf1,0x84, + 0x7a,0xcc,0xec,0x42,0xaf,0x90,0x18,0x92,0xf1,0x6c, + 0xd4,0xfc,0x71,0x45,0x60,0xe2,0xdc,0x6c,0x78,0x72, + 0x0b,0xa3,0xdd,0x51,0x0a,0x23,0xd1,0x39,0x68,0x8f, + 0x26,0x34,0xd5,0x25,0xe1,0x74,0xee,0x68,0x3c,0x9c, + 0x92,0x5f,0xd7,0x4d,0xa2,0x78,0xf8,0xd2,0x87,0xaa, + 0xca,0x97,0x89,0x3c,0xe5,0x16,0x56,0xaa,0x00,0x2e, + 0x76,0xa3,0x4d,0x30,0x3c,0x09,0xc0,0x51,0x56,0x4f, + 0xe2,0x8b,0x91,0x80,0xa8,0xaa,0xc2,0x29,0x3b,0x27, + 0x85,0x62,0xf8,0x3e,0x24,0xa9,0x91,0xca,0x29,0xa8, + 0x04,0x1f,0xb0,0xab,0x40,0x35,0x6c,0x30,0x88,0x3d, + 0xc1,0x8b,0x0a,0x19,0xfa,0x26,0x01,0x39,0x94,0xa8, + 0x06,0x49,0xf3,0x13,0xb8,0x07,0x87,0xfc,0x9a,0xae, + 0x61,0xda,0xcc,0xad,0xc1,0xd6,0xd2,0x3a,0xbf,0x7e, + 0xfd,0xa2,0x03,0x76,0x22,0x0a,0x1e,0x47,0x90,0x14, + 0xe1,0xc2,0xa3,0x72,0xec,0x40,0xfa,0x7e,0x18,0x84, + 0xba,0xa0,0xd0,0x0f,0xe5,0x5b,0x47,0x8a,0x14,0xda, + 0x8d,0x49,0xea,0x49,0x07,0x2a,0xd9,0x6a,0xc8,0x84, + 0xd2,0x43,0x51,0x7a,0x72,0x05,0x77,0xc9,0xc1,0x64, + 0x91,0x32,0x25,0x35,0xd4,0xcb,0x4f,0xe8,0xa4,0x2b, + 0xca,0xf4,0xf9,0xf4,0xa4,0x85,0x5a,0x5a,0xa9,0x9d, + 0xdc,0x3f,0xcb,0x49,0x0e,0x50,0x81,0xf0,0xdd,0x1e, + 0x5a,0x99,0x7d,0x5e,0x41,0xb1,0xda,0x24,0xf9,0xd1, + 0xdc,0xf3,0x5a,0x08,0x23,0x26,0x93,0xd7,0x94,0x80, + 0x91,0x71,0x65,0xf2,0x19,0x24,0x7e,0x87,0x23,0xf3, + 0xbb,0xc2,0x42,0xf7,0xdf,0x20,0x95,0x81,0x28,0x06, + 0x0d,0x3c,0x00,0x5d,0x83,0x8a,0xa5,0x03,0x6b,0x91, + 0xc8,0xe5,0x87,0x0e,0xe8,0xd4,0x8e,0x24,0x1b,0x07, + 0x95,0x8b,0x71,0x8a,0xe3,0x3a,0xf9,0xe5,0x5a,0x53, + 0x2e,0xb1,0x07,0xa0,0xe3,0x80,0x05,0xc8,0xa1,0xf8, + 0x32,0xe9,0x4a,0x5d,0xd7,0x75,0xfd,0xf9,0xf3,0xe7, + 0x2d,0x0e,0x05,0xf9,0x8a,0x33,0xe5,0x0c,0xc9,0xd0, + 0xdd,0xed,0xcf,0xdf,0x57,0x90,0xf1,0xa6,0x4a,0xdf, + 0x71,0x81,0x0c,0x54,0x58,0xd4,0x03,0x05,0xfe,0x80, + 0x15,0x34,0xdc,0x90,0x20,0x81,0x78,0x56,0xb0,0x61, + 0x0b,0xbc,0x9c,0x0a,0x16,0x78,0x51,0x0b,0xc4,0x6d, + 0x6c,0x22,0x21,0xdf,0xe2,0x75,0x6e,0xb2,0x42,0xff, + 0x9d,0xb4,0x27,0x04,0x5e,0x25,0xe2,0xe5,0xe5,0x48, + 0x77,0x44,0x32,0x4e,0x1c,0x19,0x47,0x20,0x56,0xa4, + 0xa9,0xb7,0xa8,0x4c,0xc2,0x66,0x79,0x57,0xdf,0xa4, + 0x52,0x24,0x77,0x83,0x7e,0xd4,0xdb,0x34,0x9b,0xe3, + 0x91,0x91,0x18,0x57,0x6f,0xd9,0x51,0x4b,0xcc,0xf1, + 0x9a,0x04,0x3d,0xac,0xd4,0x26,0xd6,0x76,0x67,0xaf, + 0xd2,0x34,0x48,0x75,0xe1,0xc3,0xb4,0x47,0x3a,0x4f, + 0x28,0x11,0x07,0x75,0xed,0xb7,0xeb,0x2b,0xda,0x3f, + 0x9d,0x6c,0xea,0x48,0x93,0xae,0xed,0xf1,0x7e,0x7e, + 0xcf,0x1e,0x5f,0x53,0x4f,0x9f,0x78,0x47,0xd3,0xf0, + 0x40,0x48,0x1e,0xde,0x2c,0x73,0x92,0x68,0x9e,0x83, + 0xca,0x5d,0xf0,0x4c,0x72,0x09,0xd3,0x75,0x5e,0x86, + 0x90,0x0b,0xfb,0x71,0x6a,0x6b,0xa4,0x36,0xe8,0x05, + 0x6d,0xad,0x93,0xc6,0xf9,0x93,0xe5,0x85,0x26,0x3f, + 0x40,0x94,0x7f,0x4c,0x25,0x91,0x81,0xf6,0x94,0x70, + 0xf5,0xf6,0x56,0x58,0x43,0xd1,0x78,0xd5,0x15,0xce, + 0x94,0xd0,0x26,0x59,0x00,0x6a,0x39,0x0d,0x28,0x87, + 0x3d,0xb3,0xe8,0xcf,0xd2,0x35,0x39,0x0b,0x29,0xfa, + 0xfe,0x2e,0x9d,0xd0,0x75,0x7e,0x68,0xea,0x6f,0xda, + 0xaf,0x8b,0x96,0xd5,0x4a,0x60,0xd4,0x19,0x9f,0x8b, + 0x01,0x6b,0x32,0xa0,0x46,0x8a,0x8c,0x2b,0x54,0xa6, + 0xae,0x54,0x48,0x8e,0xff,0x45,0x80,0xdc,0xe4,0x56, + 0x32,0x39,0x5c,0x8a,0x23,0x12,0x5a,0x72,0x9c,0x6e, + 0xc4,0xb0,0x28,0x0e,0x10,0x96,0x8f,0x53,0x6a,0x4d, + 0x62,0x7f,0x89,0xc8,0x38,0x49,0xfb,0x53,0x65,0xeb, + 0x0e,0x8f,0x14,0x58,0xbb,0xc6,0x42,0xa8,0xec,0x14, + 0xb9,0xb1,0xe4,0x33,0xe2,0x13,0xa8,0xf0,0xe0,0x46, + 0x01,0xb5,0xdf,0xc3,0xaf,0x5f,0xbf,0x1e,0xad,0x28, + 0xa3,0xe9,0x63,0x83,0x31,0x91,0xfa,0x5c,0x5b,0x90, + 0xf4,0x35,0x68,0xba,0x25,0x20,0x91,0x54,0xfd,0xa0, + 0xc4,0xbf,0x48,0xcb,0x9f,0x64,0x31,0xe1,0xda,0x1c, + 0x70,0xbf,0xd6,0x60,0x53,0x26,0x62,0xce,0x95,0x7d, + 0x93,0x6c,0xab,0x6b,0xb3,0xc7,0xe0,0xf7,0x4e,0x4a, + 0x04,0x36,0xa3,0xec,0xf4,0xb9,0x5d,0x47,0xe8,0x32, + 0xfe,0x65,0xdb,0x4a,0x2c,0x21,0x4c,0x5a,0x4c,0x74, + 0x81,0xc5,0xa6,0x61,0x74,0x1c,0xa9,0x92,0xc6,0x5f, + 0x29,0x98,0x6b,0x4b,0xf2,0x4c,0xf3,0xed,0x20,0x63, + 0x40,0x3e,0x53,0x94,0xd0,0xb8,0xe7,0xa6,0x87,0x61, + 0x27,0xe2,0xa7,0xc2,0x50,0x8d,0x86,0xa1,0x45,0x7e, + 0x06,0x61,0xc1,0xb4,0xde,0x4e,0x40,0xf4,0x92,0xe7, + 0xd7,0x09,0x49,0xc8,0x09,0xfc,0x8d,0x63,0x04,0x18, + 0xaf,0x0b,0xc4,0x4c,0x49,0x0c,0x94,0xe4,0x01,0xa8, + 0xdd,0xaf,0x68,0x15,0x49,0x2b,0xa8,0xfe,0x10,0xbc, + 0x9b,0xe3,0xda,0xc4,0x7a,0x3d,0x7d,0xc4,0xbf,0xa3, + 0x3c,0x14,0x53,0xbb,0xb8,0xa1,0xeb,0x6a,0x10,0x0f, + 0x2f,0x24,0x21,0x0f,0x22,0xb1,0x7e,0xbe,0x43,0xe0, + 0x53,0xbe,0xe0,0x46,0xfb,0x21,0xcf,0x38,0x41,0x99, + 0x1a,0x65,0x1f,0xba,0x14,0x00,0x21,0xc3,0x10,0x63, + 0xcf,0x8b,0x7a,0xfd,0x2d,0x80,0x1f,0x32,0x4c,0x73, + 0x7a,0x08,0xd4,0x9a,0x71,0x5e,0x63,0xb4,0xa8,0x12, + 0x5f,0xc0,0xf1,0x40,0x20,0xd3,0x7e,0x04,0xfd,0x5b, + 0x00,0x0e,0xda,0x75,0x63,0x0f,0x76,0xa3,0x04,0xed, + 0x04,0xe5,0xf4,0x00,0x4e,0x12,0xff,0xae,0x1a,0x9c, + 0x92,0x8a,0xc4,0x13,0xd2,0x56,0x98,0xdb,0xf0,0x29, + 0x18,0x9b,0x56,0x82,0xcb,0xc4,0x4f,0x1a,0xe5,0x76, + 0xeb,0xa0,0x1f,0xcc,0x46,0xc9,0xf8,0x90,0xb4,0xff, + 0x50,0xd9,0x9e,0x6b,0x70,0xb1,0x0e,0x93,0x3f,0x6f, + 0xdf,0x1b,0x12,0xcd,0x87,0xc7,0x13,0xb5,0xbc,0xdc, + 0xda,0x95,0x76,0xd6,0x8f,0x20,0x9f,0x16,0x1f,0x21, + 0x38,0x59,0x5f,0xb0,0xa9,0x70,0x31,0x7e,0x5e,0x13, + 0xc2,0x9b,0x1c,0xe8,0x2f,0xe2,0xbc,0x34,0xb2,0xed, + 0x91,0x76,0xd1,0x4f,0xd2,0xe2,0xfe,0xbd,0xbd,0xbb, + 0x87,0x82,0xb4,0x3e,0xf7,0x49,0x14,0x91,0x84,0x36, + 0x5d,0x9c,0x6b,0x09,0xea,0xc3,0x3f,0x8c,0x90,0x71, + 0xe0,0xf8,0xf5,0xf6,0x1a,0x16,0x8a,0xa6,0x15,0x13, + 0x47,0xe5,0x45,0xa9,0x39,0x2a,0xee,0x5f,0x46,0x30, + 0xd0,0xb5,0xe4,0x87,0x69,0xa4,0x13,0x44,0x2c,0xcf, + 0xf5,0x2d,0x4a,0x4a,0x6d,0x77,0x97,0x54,0xd2,0x78, + 0x3a,0xb5,0xa4,0x26,0x7e,0xa8,0x43,0xd7,0x24,0x8e, + 0xd3,0x39,0x82,0xca,0x8c,0x29,0x76,0x39,0x15,0x6b, + 0xcb,0x27,0xf9,0xf6,0x66,0xd4,0xb8,0xf0,0xf5,0xf5, + 0x65,0x0d,0x64,0x93,0xd7,0x24,0x09,0xcf,0x92,0x59, + 0x79,0x40,0xc6,0xed,0xe7,0xb8,0x02,0x41,0x49,0xde, + 0x84,0x04,0xbb,0xc2,0x26,0x09,0xfc,0x6a,0xfc,0x5e, + 0x0c,0x7a,0xc4,0x56,0x2b,0xd9,0x74,0xa4,0xb6,0x9b, + 0x1b,0xa0,0xa8,0xaa,0x7f,0x74,0x80,0xae,0xac,0xf6, + 0x19,0x47,0x48,0x53,0x95,0x93,0x74,0x2a,0x2e,0xaf, + 0x63,0x93,0x2a,0xab,0x47,0x8b,0x61,0x32,0x55,0x74, + 0x1b,0xa4,0x89,0x47,0x95,0xe1,0xc8,0x8c,0x22,0x80, + 0xd4,0xea,0xd3,0xec,0xfa,0x6e,0x85,0x19,0xde,0x4c, + 0x01,0x87,0x23,0xfa,0x6d,0x99,0x8d,0x59,0x6e,0x3c, + 0xd4,0xb5,0x7a,0x5c,0xcb,0xce,0xf9,0x50,0xa9,0x41, + 0x26,0x8c,0x29,0x52,0x7b,0xf3,0xad,0x4d,0x24,0x2d, + 0xbb,0xb7,0x96,0x9b,0xd1,0x35,0xa9,0x49,0xf8,0xd2, + 0xf1,0x92,0x6e,0x39,0x01,0x98,0x94,0x2a,0x80,0xaf, + 0xef,0x00,0x5f,0x41,0xfb,0xc5,0x4e,0x98,0xc9,0x14, + 0xd4,0x5b,0x4b,0x8e,0x6c,0x51,0xbe,0xbf,0xbb,0x08, + 0x96,0x6e,0xed,0x0e,0xf4,0x36,0x0b,0x48,0xc8,0xcf, + 0x8f,0xe9,0xda,0x27,0x21,0x50,0x0a,0xfa,0x3a,0xdd, + 0x38,0x19,0xa5,0xea,0x21,0xea,0xc6,0x9f,0x5d,0x02, + 0x68,0xda,0x25,0x1b,0x43,0x52,0xfb,0xb9,0x77,0x1b, + 0xef,0x9c,0xf3,0xc6,0x23,0xd0,0xe7,0x90,0xda,0x65, + 0x7d,0x72,0x69,0xb2,0xf9,0x80,0x7b,0x41,0xdd,0x9b, + 0xe4,0x6b,0xa6,0xef,0x56,0x4d,0xa4,0xb5,0xf2,0xa5, + 0xf7,0xa2,0x83,0x1c,0x81,0x3e,0x70,0x08,0xe9,0x6e, + 0xeb,0xcf,0x5e,0xc3,0x7d,0xb8,0xeb,0xfb,0xea,0xf1, + 0xe2,0xe6,0xac,0x81,0xc2,0xff,0x71,0xf7,0xe8,0xb8, + 0x8d,0x89,0xab,0x43,0xd3,0x85,0x6e,0x8d,0xbb,0x96, + 0x9d,0x8a,0xde,0x3a,0x43,0x4d,0x87,0x6c,0x98,0x38, + 0x37,0xa2,0xf0,0x09,0x79,0xa7,0x78,0x91,0xda,0x9e, + 0xd4,0x59,0xe8,0xc9,0x41,0x4a,0xd6,0xff,0x7f,0xce, + 0xce,0x60,0x39,0x72,0xe4,0x88,0xa1,0xcc,0x9e,0xb9, + 0xcc,0xfe,0xff,0x2f,0xee,0x37,0xf8,0x24,0x95,0x0f, + 0x6e,0x6a,0x92,0x28,0x3c,0x64,0xb5,0x1d,0xe1,0x70, + 0x78,0x57,0x6a,0xb1,0xc9,0x62,0x55,0x26,0x80,0x04, + 0x42,0xba,0x03,0xee,0x13,0x69,0x22,0x3c,0x31,0x33, + 0x9f,0x4e,0x52,0x7e,0x80,0x94,0x5e,0xd3,0x14,0xb9, + 0xda,0xa5,0xb8,0x49,0xf6,0xfe,0xf3,0xaf,0xeb,0xec, + 0x3f,0xa5,0x30,0x96,0x4e,0x45,0x91,0xa8,0xcc,0x75, + 0xb6,0x09,0x86,0x76,0x14,0x02,0x79,0x76,0x38,0x64, + 0xc2,0x1c,0xf0,0xf6,0x85,0x25,0xde,0x91,0xba,0xc9, + 0xa9,0x0b,0xa6,0x6b,0xa4,0x2e,0xf4,0x04,0xb2,0x73, + 0xe9,0xe0,0x53,0xe5,0x4c,0x4a,0x7b,0xdd,0xe0,0x1c, + 0x47,0xaa,0x16,0xfa,0x53,0xb1,0xeb,0x36,0xd9,0xf0, + 0x1d,0x0b,0x8a,0x99,0x44,0x49,0xd4,0xf0,0xbd,0xea, + 0xf5,0x7a,0x5d,0xb7,0xc8,0xd9,0x84,0xb2,0xa2,0x1e, + 0x25,0x45,0x3f,0xd0,0x44,0x9e,0xa1,0x3d,0x91,0x5e, + 0x32,0xe8,0xcb,0x05,0x50,0xf4,0x16,0xeb,0x11,0x26, + 0x51,0xac,0x46,0xcc,0x25,0x61,0x2b,0xc5,0xdc,0x0b, + 0x0f,0xca,0x1e,0x12,0x81,0x30,0x76,0xec,0x34,0x18, + 0x40,0x93,0x70,0x49,0x03,0x91,0xe2,0x63,0x68,0x5d, + 0xb8,0x77,0x9d,0xde,0x13,0x59,0x7f,0xa5,0x28,0x89, + 0xa3,0xce,0xc1,0xc6,0x41,0x91,0xef,0x1a,0x62,0x24, + 0x48,0x9b,0x58,0xd4,0x99,0xca,0x7a,0xb8,0x27,0xf4, + 0xd0,0x11,0x37,0xc5,0x26,0x28,0x7d,0xed,0xf6,0xce, + 0x69,0x92,0xc9,0x45,0xfe,0xdc,0xbf,0x23,0xfb,0x3a, + 0xa1,0x31,0xd6,0x03,0xe6,0x44,0x2b,0xa4,0x54,0xdf, + 0x44,0x45,0xbb,0xbf,0x95,0x26,0xb8,0x52,0x51,0x3f, + 0x9c,0x35,0xe3,0x68,0xb5,0xee,0xbb,0x49,0x88,0xdd, + 0x9f,0x83,0x63,0x0a,0x88,0x71,0x38,0xf1,0x7b,0x72, + 0x66,0x88,0x6e,0x5f,0xd4,0x67,0x41,0x94,0xa6,0x7b, + 0x86,0x4e,0x56,0xe2,0xe8,0xe8,0x29,0x34,0xb7,0x17, + 0x72,0x9a,0x83,0x19,0x74,0x83,0xe4,0xed,0x34,0x16, + 0x52,0xf7,0xb5,0xbc,0x92,0x38,0x8d,0xcc,0xce,0x4e, + 0x0e,0xe5,0x29,0x80,0x54,0x47,0x2b,0x89,0xe6,0xa0, + 0xaa,0x3c,0x74,0x76,0xa3,0xc8,0x4d,0x47,0x3b,0xa7, + 0x60,0x3d,0xe2,0xb6,0x3b,0x37,0xea,0x3a,0x6c,0xe7, + 0x04,0x9c,0xa6,0xb3,0x5c,0xb7,0xf9,0xf5,0xf5,0x55, + 0xd0,0xd9,0x1f,0x85,0xe8,0x25,0x7e,0xbe,0xff,0x8e, + 0x6a,0xa7,0xdc,0x98,0xb9,0x08,0x7e,0x6d,0xd0,0x1e, + 0xd1,0x61,0x64,0x61,0xae,0xd0,0x7d,0x3f,0xcc,0x9a, + 0xbf,0x4a,0x69,0x41,0xa8,0x91,0x00,0x92,0x01,0xa6, + 0xb4,0x86,0x2d,0x3a,0x5b,0xf8,0x26,0x72,0xc4,0xa4, + 0x77,0x30,0x10,0x71,0x0d,0x2f,0xec,0x46,0x91,0x38, + 0x2a,0xce,0x50,0x2a,0x76,0xb2,0xd1,0x1d,0x58,0x7d, + 0x8a,0x2b,0x4d,0x66,0xa4,0xd0,0x41,0xd1,0x29,0x6c, + 0x41,0xa6,0x8d,0xb6,0x42,0xba,0x89,0x9a,0x8b,0x4f, + 0x5c,0x62,0x53,0x3c,0xc5,0xd7,0xd7,0x97,0x43,0x59, + 0x36,0x2a,0xad,0xd3,0x6c,0x27,0x02,0x50,0xa3,0xd1, + 0xeb,0x05,0xc2,0x36,0x32,0x1f,0xec,0x2c,0x2c,0x7d, + 0xa5,0x7e,0x26,0xe0,0x46,0xfe,0x28,0x3e,0xe9,0xf9, + 0xd3,0xf8,0xbd,0xee,0x4d,0x6e,0x3a,0x95,0xb2,0x1f, + 0xdd,0x1e,0x79,0x65,0xe3,0xc4,0xc7,0xe7,0xbb,0x89, + 0x4f,0x77,0x60,0xf6,0xbd,0x48,0xc4,0xb1,0x8f,0x03, + 0x94,0xe2,0x32,0xf4,0xe0,0x4d,0xd3,0xb0,0x2a,0x31, + 0xd0,0xb0,0x5e,0x2a,0x2a,0xe9,0xd0,0x9c,0xf2,0xbf, + 0x0c,0x95,0x8f,0xb4,0x9e,0xea,0x6c,0xb4,0xa0,0xa6, + 0x10,0x51,0x2d,0x8a,0xe8,0x0c,0x23,0xfb,0x0a,0x2d, + 0x8c,0x52,0x83,0x41,0x48,0x4b,0x00,0x3e,0x62,0x53, + 0x00,0x7b,0x69,0x91,0x5e,0x4d,0xdf,0x1b,0xb2,0x63, + 0x49,0xb4,0xa0,0x69,0xbe,0xfe,0x9e,0x35,0xba,0xa0, + 0x43,0x42,0x7a,0x51,0xb7,0x94,0x54,0xdd,0xb7,0xc7, + 0x08,0x78,0x94,0x54,0x0a,0x7d,0x4c,0x5e,0x05,0xce, + 0x81,0xd7,0x41,0xe0,0x17,0x4c,0x4c,0x90,0xe7,0x87, + 0xf3,0x00,0xd1,0x0a,0x96,0xee,0x0d,0x09,0xfb,0xdc, + 0x98,0x24,0xc0,0xfd,0x47,0x1e,0x11,0x8e,0x46,0xd6, + 0x9f,0xef,0xc5,0xd8,0x3d,0x4a,0xed,0x0a,0xd8,0x69, + 0xca,0xc2,0x75,0x77,0x44,0xb3,0x90,0x26,0x48,0x9d, + 0xb3,0xc3,0x02,0xae,0xe4,0x3e,0x9c,0xc6,0xc0,0xdd, + 0xb3,0x05,0x03,0xc0,0x28,0x8c,0x0c,0x1b,0x4d,0xd2, + 0x29,0xd8,0xe0,0xc4,0xe0,0x61,0x51,0xae,0xb8,0x34, + 0x41,0xc2,0x56,0xf7,0x43,0xef,0x04,0x08,0x52,0x8b, + 0xa6,0x79,0xcc,0x81,0x39,0x16,0x35,0xaa,0x73,0x52, + 0xad,0x8f,0xe8,0x78,0xc6,0x31,0xf6,0x7e,0xcd,0xae, + 0x43,0xef,0x07,0xb9,0x43,0xa9,0xc8,0xaa,0x00,0x3c, + 0x58,0x22,0xc5,0xaf,0xef,0xc3,0x3d,0xba,0x3e,0x05, + 0xb0,0xc2,0x67,0x6d,0x5a,0x14,0x30,0x2e,0xdd,0x0a, + 0x02,0xd2,0x32,0x74,0x71,0xf6,0xe4,0x9e,0xab,0x0d, + 0x5e,0xd2,0xca,0xd0,0x5e,0xa7,0x93,0x51,0x82,0xd2, + 0x91,0xb6,0x70,0x4a,0xee,0x2e,0xa7,0xa1,0x71,0x4d, + 0xda,0xb4,0xc7,0x3a,0xdb,0x0d,0x2a,0x7e,0xc8,0x88, + 0x93,0x04,0xd7,0xfa,0x7d,0x5c,0x88,0x2d,0x49,0x88, + 0x26,0x1f,0x31,0xf2,0xd5,0x9b,0x2c,0x62,0xdc,0x7d, + 0x49,0x9a,0x17,0x32,0x60,0x34,0x6c,0x4e,0x4d,0xde, + 0x3a,0xc4,0xca,0x1c,0x04,0x3c,0x3f,0x8a,0x47,0x45, + 0x8c,0x12,0x60,0x72,0xfa,0xd9,0x13,0x58,0x11,0xde, + 0x01,0xa6,0xc0,0x86,0x49,0x1d,0x7b,0x88,0x26,0x91, + 0x64,0xaa,0x36,0x53,0x00,0xab,0x73,0xe3,0x9c,0x16, + 0x96,0xf3,0x56,0x31,0xb9,0x56,0x08,0xcf,0xd2,0xa2, + 0x9e,0xcc,0xfd,0x26,0xdd,0x06,0x2d,0x70,0x72,0x21, + 0x75,0xe2,0x44,0xd7,0xc1,0xc1,0x35,0xc4,0xa9,0x83, + 0x34,0x46,0x6b,0xd2,0x74,0x09,0x66,0x2f,0x5a,0x60, + 0x4a,0xa1,0x11,0xb7,0x4f,0xe2,0xf5,0x96,0xc1,0xf5, + 0xb8,0x31,0xdd,0xfb,0x82,0x60,0x7e,0x42,0x73,0x12, + 0x74,0xeb,0xa0,0x6a,0xd0,0x76,0x45,0x74,0xf1,0x46, + 0x61,0xcc,0x94,0xc6,0x96,0x56,0x4f,0x5e,0x4a,0xb0, + 0xee,0xfb,0xa1,0x6c,0x3f,0x7b,0xe0,0xe0,0x1f,0x45, + 0x8a,0x1e,0xb2,0x37,0xaa,0x32,0xd1,0x9e,0x93,0x7b, + 0xb1,0xa3,0x71,0x7a,0xd1,0xa2,0x85,0xd2,0xb5,0xa7, + 0xb2,0x3f,0x0a,0xab,0xc9,0x0f,0x27,0x05,0x37,0x4e, + 0x34,0xb1,0x13,0x5b,0x76,0x64,0x80,0x8a,0x7c,0x3a, + 0xe0,0x53,0xb1,0x1a,0xd6,0x0d,0x8a,0xd2,0x1d,0x2a, + 0x78,0x80,0x72,0x6f,0xe8,0xac,0xd1,0xbe,0xd4,0x10, + 0x29,0xb2,0xbd,0xd7,0x3d,0x6f,0x2b,0x0d,0x0a,0xf4, + 0x09,0x33,0x67,0x68,0xe9,0x34,0x4c,0x2e,0x96,0x82, + 0x44,0xb8,0xa6,0x11,0xc3,0xec,0x2f,0xd0,0xad,0x60, + 0xc6,0x9d,0x16,0xed,0x22,0x90,0xb7,0x45,0x2e,0x15, + 0x32,0x7a,0xcf,0x5d,0x28,0xa8,0x6a,0xbd,0x7a,0xec, + 0x0f,0xa1,0x4b,0x6e,0xdf,0xd7,0x3d,0x12,0x8a,0xa2, + 0x02,0x4d,0x4d,0x42,0xe9,0x88,0x7a,0x8d,0x2c,0xc9, + 0x09,0x6d,0x3f,0x69,0xad,0x9c,0xae,0x6a,0xf2,0xd7, + 0x9b,0x8c,0x55,0x1d,0x05,0xf8,0x72,0x4a,0x70,0x72, + 0x91,0x4c,0x76,0xf1,0x17,0x4c,0x21,0xe9,0x42,0x71, + 0x63,0xc1,0x69,0xec,0x2d,0xb9,0x69,0x1a,0xd1,0xe5, + 0x11,0x4f,0x4a,0x8b,0x5e,0x3b,0x2d,0xd8,0x28,0x8f, + 0x26,0x06,0xd2,0xd4,0x12,0x75,0x34,0xd0,0xf9,0x9c, + 0x6c,0xa4,0xf8,0x92,0xc0,0xb4,0x52,0x42,0x9a,0x28, + 0x6c,0xd1,0x6a,0x17,0x94,0xaa,0x71,0x1a,0x2c,0x6a, + 0x9b,0x82,0x68,0xb0,0x42,0xa4,0x40,0xfc,0xcc,0x2b, + 0xbb,0xec,0x96,0x3a,0x55,0x93,0x46,0xc3,0xa1,0x22, + 0xed,0xba,0xed,0x67,0xb8,0xc3,0x9f,0x74,0x19,0x4d, + 0x2b,0xd3,0x51,0x93,0xa3,0xa0,0xc3,0x5e,0x38,0xa8, + 0xd6,0xc7,0x21,0x4a,0x44,0xb1,0xc9,0x81,0x3d,0x8e, + 0xf9,0xd3,0xa8,0x71,0x40,0x78,0xf1,0xfd,0x86,0x6b, + 0x8a,0x74,0x5d,0xd2,0xdf,0x9d,0xb8,0x55,0x3b,0x74, + 0x4c,0x0a,0x30,0xd7,0xf9,0xdb,0x83,0x4d,0xe9,0x60, + 0x97,0xbf,0x44,0xf7,0xe4,0x36,0xcf,0xa4,0x42,0xc2, + 0x14,0xe6,0x0f,0xb3,0xcd,0x40,0x0f,0x55,0xa2,0xe3, + 0xfa,0xfb,0x01,0x94,0xf7,0x36,0x71,0xe3,0xfe,0x46, + 0x68,0x12,0x8a,0x04,0xed,0x4a,0x9d,0x1a,0xd4,0x25, + 0xe6,0x5a,0x05,0x94,0xcd,0xd9,0x1e,0xd8,0x49,0x3e, + 0x37,0x6e,0x7f,0xa0,0x23,0x3d,0x45,0x1d,0xae,0x24, + 0x27,0x21,0x8d,0xa4,0xee,0xad,0x14,0xb0,0xea,0x62, + 0x2a,0xc8,0x13,0xc9,0x14,0x91,0x49,0x37,0x35,0x7a, + 0x6a,0x25,0xff,0xa7,0x89,0xee,0xa2,0x74,0x08,0xa7, + 0x43,0x52,0xa9,0x48,0x92,0x26,0xa4,0x86,0xc1,0xf9, + 0xed,0xd1,0xf5,0xbd,0xa8,0xb2,0x9e,0x68,0x29,0xa7, + 0xe2,0x4e,0x3e,0x42,0xa4,0x33,0xe8,0x9b,0x00,0xb9, + 0x19,0x4f,0x88,0x0b,0x1d,0xac,0x09,0xd2,0xa5,0x1b, + 0x78,0xaa,0x47,0x48,0x45,0xd0,0xff,0x23,0x84,0x3b, + 0xa5,0xbc,0x4e,0x8b,0x26,0x37,0x2d,0x44,0xa2,0x37, + 0x80,0xaa,0xed,0xe2,0x4f,0xc5,0x98,0x13,0xda,0x26, + 0xff,0x06,0xa5,0x14,0x69,0xe4,0x53,0x0a,0x06,0x74, + 0x54,0x15,0xfa,0x22,0x1d,0xe0,0x88,0x16,0xf5,0x11, + 0xfd,0x41,0x00,0x5e,0x37,0x22,0x35,0x04,0x20,0x6e, + 0x87,0x46,0x7f,0x7f,0x4c,0x77,0x92,0x28,0x63,0x2c, + 0x5a,0xef,0x35,0xd6,0x3b,0xf5,0x13,0xc1,0x66,0xd7, + 0x5d,0x5d,0xfb,0x18,0x7a,0x7c,0x9f,0x27,0xc8,0x7a, + 0x5a,0x5f,0xf4,0x79,0x14,0xa7,0x91,0x68,0xbc,0x84, + 0x46,0x99,0x42,0xa7,0x4e,0x20,0xf5,0xa0,0x13,0xda, + 0x8a,0x92,0x49,0x87,0xe8,0xd0,0x1e,0xa5,0x12,0xcc, + 0x28,0x74,0xcc,0x57,0xa2,0xf5,0x7c,0xda,0xb8,0x11, + 0x25,0x46,0x39,0x58,0x69,0xaa,0x8e,0x68,0x68,0xea, + 0xd6,0x49,0xc4,0x9d,0xc6,0xc1,0x65,0x8d,0x94,0x5b, + 0x4f,0xae,0x09,0x26,0xb1,0xb6,0x43,0x41,0x8c,0x6c, + 0xa0,0x44,0x93,0xf8,0x28,0x98,0xcc,0x01,0x5e,0x09, + 0xb1,0x30,0xfb,0xf5,0xe6,0xf7,0x33,0xa5,0x98,0xbb, + 0x7d,0xd7,0x80,0x0e,0x76,0x38,0x47,0xce,0xe9,0x82, + 0xf3,0xad,0x4e,0xa8,0x38,0x2a,0x4a,0x86,0x22,0xfc, + 0x11,0xc1,0x44,0xe7,0x59,0x7a,0xef,0x87,0xc6,0x0b, + 0x1d,0xc8,0x75,0x6d,0x7c,0x7f,0x7f,0xff,0x8c,0xc1, + 0x13,0xbc,0x48,0x5f,0x74,0x81,0xe3,0xe4,0x16,0xf2, + 0x79,0xe0,0x9e,0xdc,0xea,0x16,0x16,0x4c,0x02,0x15, + 0xb6,0x74,0x6c,0x2f,0x15,0x4c,0x14,0x69,0x40,0x0e, + 0xc4,0x97,0x09,0xf7,0xfc,0xfa,0xfa,0x7a,0x38,0x19, + 0xa7,0x54,0xeb,0x94,0xcb,0xe4,0x82,0x51,0x0d,0x6a, + 0xb6,0xcc,0xe7,0x53,0x78,0xa8,0x1d,0xa5,0xa7,0xe0, + 0xd4,0xfe,0xb7,0x5d,0x48,0xa1,0x1b,0x23,0xd7,0x94, + 0x78,0xe3,0xfd,0xb2,0xdc,0x58,0xb9,0xce,0xb9,0x1b, + 0x1f,0x87,0x45,0x09,0xd8,0xea,0x9a,0x6c,0xf4,0x63, + 0x2b,0x6c,0xf8,0x2b,0xd9,0xaa,0xbb,0xd0,0x58,0x53, + 0xa0,0xae,0x44,0x19,0x6a,0x30,0x2a,0xe9,0xc9,0x9a, + 0x28,0x7e,0xa5,0x82,0x55,0x1c,0x71,0x17,0xa0,0x96, + 0xa3,0x93,0xf0,0x05,0x41,0xa9,0xba,0x69,0x9b,0x44, + 0x65,0x3b,0x31,0x22,0xef,0xc5,0x9a,0x06,0x11,0x9c, + 0xc3,0x79,0x7a,0x27,0x4f,0x7e,0x6e,0x2a,0xb2,0x68, + 0xba,0xcb,0x1d,0x54,0x93,0xab,0xaf,0x13,0x4e,0xd2, + 0xbb,0x3d,0xd9,0x82,0x38,0xdf,0xa8,0x14,0x9d,0xe1, + 0xbe,0xc7,0xd7,0xd7,0x97,0xcd,0x4c,0x4a,0xf9,0x82, + 0x8e,0x52,0x27,0x84,0x5e,0x1b,0x5a,0xb5,0x7c,0x18, + 0x0e,0xd6,0x0a,0x7b,0x4e,0xd1,0xd8,0xb2,0x86,0x88, + 0xba,0xeb,0xa6,0x14,0x74,0xf7,0x4e,0xba,0x7b,0xa9, + 0x21,0xaa,0x09,0xd1,0x20,0x5d,0x56,0xb2,0xa0,0x70, + 0x4d,0x9b,0x9b,0xf0,0x4c,0xf6,0x14,0xf4,0xfd,0x93, + 0x9d,0x81,0x41,0xf6,0x8b,0xc6,0xcb,0x4f,0x86,0x85, + 0x86,0x7d,0xf0,0x51,0x18,0x39,0x7a,0xcb,0xd9,0x4e, + 0x34,0x0b,0x94,0xe8,0x5a,0xde,0x9f,0xd3,0xb0,0x4e, + 0x93,0x14,0xc4,0xca,0x5f,0x92,0x35,0x47,0x55,0xfd, + 0xaf,0x00,0x02,0xff,0x85,0x35,0x51,0x30,0xe9,0xe6, + 0xd1,0x64,0xc1,0x27,0x1a,0x1a,0x2d,0x10,0x26,0xfe, + 0x5b,0x16,0xa2,0xf5,0xed,0xd1,0xf4,0x77,0x2d,0xec, + 0x9c,0x78,0xab,0x17,0x03,0x9a,0x6e,0xee,0xbc,0x11, + 0x7a,0x1c,0x86,0x16,0x1b,0x04,0x1d,0xa7,0xa4,0x76, + 0xf3,0x20,0xd1,0x97,0x88,0x52,0xe9,0xb5,0x18,0x70, + 0x31,0x17,0x86,0x63,0x5e,0xa1,0x5b,0x5c,0x01,0x7d, + 0x73,0x45,0x30,0x5d,0xdb,0xe3,0x5e,0x9a,0x83,0xf0, + 0x11,0x07,0x01,0x1b,0xfc,0x22,0x3f,0x9f,0xf7,0x0f, + 0x2c,0xa0,0x0f,0xea,0xef,0xc7,0x2e,0x5a,0xbf,0xd5, + 0x0b,0x8a,0x94,0xa3,0x76,0xff,0xdc,0xa0,0x45,0xf8, + 0x29,0xdc,0xa6,0x4d,0xc7,0x68,0xd4,0x16,0xc1,0xbd, + 0x06,0x96,0x56,0x3e,0x7e,0x05,0x5e,0x3c,0xbe,0xb3, + 0xee,0xc0,0x4c,0x85,0x40,0x6a,0x64,0xdc,0xf7,0x36, + 0x48,0x0c,0x8a,0x57,0x5d,0x97,0x0b,0x7a,0x8e,0x8b, + 0x9e,0xd7,0x61,0xbc,0x41,0x4d,0x56,0xfc,0xc3,0x41, + 0x52,0x49,0x47,0x35,0xd9,0x54,0xb8,0x2e,0x58,0x0f, + 0xe6,0x54,0x7c,0x39,0xd4,0xd9,0x45,0xfd,0x04,0x83, + 0xb9,0x68,0x85,0xa1,0x03,0x0d,0x01,0xf1,0xc2,0xa2, + 0xd0,0x3d,0xcb,0xee,0xad,0x44,0x92,0x02,0xf7,0x6e, + 0x11,0x72,0xfe,0x46,0x56,0xca,0xc5,0x44,0x10,0xf2, + 0xd0,0x9a,0x36,0x44,0xd4,0x4d,0x21,0x30,0xea,0x55, + 0x40,0x23,0x77,0x84,0x8c,0xc3,0x7e,0xb0,0xfd,0xbc, + 0xf1,0xbd,0xa9,0xa9,0xc0,0x72,0xfa,0x30,0x72,0x89, + 0x77,0xe7,0x7f,0x47,0x42,0xd3,0x64,0x5e,0xa2,0x22, + 0x49,0xd7,0xea,0x98,0x21,0xf7,0x5e,0xa4,0xc8,0x1a, + 0x87,0x50,0xfd,0x14,0x5e,0x6e,0xc4,0xdd,0x3d,0x14, + 0x47,0xdd,0xa4,0x3f,0x44,0x26,0x7a,0x41,0xc0,0x8c, + 0xbe,0x2b,0x44,0x75,0xe8,0x0e,0xd3,0x27,0x15,0x02, + 0xac,0x56,0xc0,0x39,0x62,0xd5,0xd9,0xff,0xb6,0xf3, + 0xbf,0x20,0x38,0xf8,0x64,0x9c,0x11,0x44,0xc7,0x38, + 0x9d,0x96,0x68,0xaf,0x46,0x63,0x3c,0x9e,0x8b,0x3a, + 0x60,0x2b,0x85,0xa9,0x87,0x25,0x2d,0x9a,0xf4,0xd2, + 0x25,0x08,0xfe,0x10,0x86,0x2f,0xb0,0xed,0xdf,0x02, + 0xfd,0x40,0x13,0x83,0xcf,0xcf,0x8d,0x85,0xa6,0x75, + 0x94,0x78,0x7a,0x2a,0x10,0x5c,0xa4,0xc6,0xa0,0x29, + 0x41,0xb7,0xe8,0xb4,0xc1,0x87,0x49,0xc1,0x49,0x33, + 0xa6,0x62,0xe3,0x71,0x88,0x61,0x0a,0xf8,0x54,0xfd, + 0x91,0x26,0x82,0xa7,0x18,0x0d,0xe7,0x00,0xad,0xf7, + 0xc4,0xad,0x2d,0xb7,0xfe,0x89,0x46,0x3a,0xf1,0x6e, + 0x31,0x63,0xdb,0x31,0xfe,0x82,0xf4,0x46,0xe2,0x6e, + 0x8e,0xeb,0xd1,0x88,0x81,0xb7,0xa9,0xae,0x80,0x18, + 0x6f,0x14,0xa9,0xd3,0x63,0x5c,0xec,0x60,0x8c,0x87, + 0x8c,0xee,0xfb,0x21,0x10,0x73,0xfb,0x11,0xd0,0x71, + 0x14,0x0d,0x8d,0x90,0x5f,0x4f,0x9a,0x28,0x6e,0x81, + 0xbd,0x24,0xa6,0xa6,0xc1,0x95,0x0a,0xe1,0xd8,0x63, + 0x08,0x29,0xe9,0xd9,0x68,0x70,0xa4,0x5f,0x17,0x79, + 0x2c,0x39,0x24,0xc7,0xdd,0xf7,0x34,0x88,0x12,0xa8, + 0x4e,0x3c,0x8b,0x93,0x86,0xe6,0x8e,0x3f,0x72,0x66, + 0x96,0x2a,0x2d,0xd1,0xf7,0x06,0xbc,0x80,0xb6,0x67, + 0xaf,0x31,0x1f,0x61,0x9f,0x1a,0xcd,0x3c,0x1d,0xd2, + 0x48,0x75,0x43,0x02,0x6b,0x5e,0x50,0x49,0x6d,0x07, + 0x69,0xda,0x84,0xfa,0xff,0xba,0xc3,0xbc,0x1f,0x10, + 0xce,0x1b,0xe1,0x00,0xca,0x4c,0x95,0x64,0xa4,0x11, + 0x0e,0xc2,0xd2,0xec,0x14,0x82,0xea,0x65,0x4e,0x74, + 0x52,0xa9,0xa8,0x72,0x3a,0x1e,0x1d,0x0f,0x85,0x2a, + 0x3e,0x45,0x49,0x44,0x6b,0x79,0x37,0xcd,0x10,0x5e, + 0x6a,0x7c,0xf1,0x52,0x76,0x93,0xbb,0x9f,0x1d,0xf6, + 0x34,0x05,0x2c,0x71,0xe1,0x3f,0x54,0x81,0xa6,0x9f, + 0xd3,0xc4,0xc7,0xb4,0x41,0xe8,0xf7,0x73,0x85,0x4e, + 0xdf,0xa8,0x52,0xaa,0xbb,0x1c,0xde,0xd1,0xb9,0xf8, + 0x6d,0xd0,0x58,0xfd,0x7b,0x0c,0xc5,0xdb,0xb1,0xa1, + 0x57,0x1f,0x85,0x76,0xef,0x6d,0xf2,0xa7,0x11,0xaf, + 0x24,0x2d,0x40,0xb0,0x90,0x05,0x8f,0xa5,0xb8,0xce, + 0x87,0x91,0xef,0xa8,0x6b,0x22,0x37,0x79,0x2a,0x40, + 0x4e,0x8d,0x45,0x5d,0x03,0xe5,0xbc,0xa2,0xdc,0xa1, + 0x3e,0x64,0xa4,0x55,0xa0,0x0b,0xed,0x3f,0xeb,0xd3, + 0x82,0x54,0x28,0xc8,0x60,0x0a,0x4e,0x4e,0x52,0x14, + 0x0c,0xa0,0x64,0xb6,0x88,0x76,0x3e,0x6c,0xce,0x11, + 0xd8,0x4d,0xd2,0xe8,0x1e,0x4f,0xe2,0x6e,0x0a,0xa7, + 0x4c,0x0d,0x92,0x2b,0xb8,0x8c,0xe6,0xac,0x26,0xe4, + 0x65,0x32,0xdc,0x6d,0x54,0x63,0xd1,0x99,0x41,0x08, + 0x8c,0xbe,0x8b,0x8d,0x61,0x40,0xeb,0x98,0xb4,0x87, + 0xa6,0x70,0xf2,0x84,0x3e,0xbb,0xfd,0x90,0xac,0x63, + 0xa0,0x89,0x1e,0x8b,0xb2,0x93,0x73,0x40,0xf5,0xbb, + 0x4a,0x73,0xbb,0x29,0x56,0x42,0x9b,0x1c,0xad,0x95, + 0x9a,0xee,0x7b,0xdd,0x8a,0x06,0xb2,0x68,0x2a,0xed, + 0xf7,0x74,0x73,0x21,0xa2,0x61,0xd3,0xa8,0x38,0x0a, + 0x4d,0x33,0xbf,0xdc,0xe6,0x98,0xa2,0x22,0xc4,0xde, + 0x7e,0xd3,0xab,0x38,0x2d,0x87,0x81,0xd2,0x16,0xe9, + 0x98,0x5c,0x17,0xaf,0xdd,0x94,0xf8,0x09,0xad,0x49, + 0x6b,0x22,0xe6,0x4e,0x2b,0xc0,0xa2,0xe3,0x3d,0xed, + 0x9d,0x8f,0xfb,0xee,0xaa,0xad,0x51,0x8b,0x77,0xf7, + 0xdd,0x5f,0xaf,0x57,0x7d,0x7f,0x7f,0x2f,0x1d,0x6d, + 0x55,0x0f,0x1a,0x85,0x83,0xef,0x7b,0xdc,0x3b,0xb0, + 0xe6,0xf1,0xb4,0x82,0x1e,0x65,0x9d,0x50,0x7e,0x8e, + 0x46,0x53,0xe4,0x4d,0x35,0x68,0x62,0xc5,0xff,0xf8, + 0x9b,0x40,0x73,0x5a,0xaa,0x53,0xc7,0x48,0x95,0x32, + 0xa2,0x82,0x9c,0x68,0x45,0x15,0x9a,0xbb,0xc8,0x0c, + 0xa7,0x37,0x52,0x1a,0x4d,0xa3,0x43,0x4c,0xa8,0xa0, + 0x76,0x65,0xcb,0x15,0x3f,0xc9,0xae,0xde,0xe9,0x3c, + 0xe4,0x77,0xd7,0xc4,0xb5,0x4f,0xb4,0x02,0xc0,0xf6, + 0x48,0xe5,0xa5,0x90,0x56,0x97,0xd4,0x4d,0x88,0x99, + 0xa2,0x21,0x34,0x16,0xed,0x1a,0xbd,0x20,0xb0,0xb7, + 0xe8,0x48,0xd2,0xfc,0x19,0xca,0xf5,0xd2,0xe2,0x58, + 0xff,0xd6,0x2d,0xf6,0x9f,0x44,0xb0,0x7a,0x70,0x91, + 0x2f,0x8c,0x43,0xee,0x5d,0x74,0x00,0x15,0x79,0xea, + 0xdb,0x06,0x45,0x4c,0x25,0x9d,0xcb,0x15,0x86,0x28, + 0x7a,0xa0,0x65,0x42,0x8e,0x1d,0x9a,0xd0,0x9f,0xab, + 0x36,0x7b,0x49,0xb0,0xad,0xf7,0xf5,0xbd,0x37,0x5e, + 0xd3,0x14,0xac,0xd1,0x00,0x46,0x76,0x02,0x62,0x83, + 0x2c,0x25,0xaf,0x6b,0x83,0x50,0xb1,0xd6,0xb4,0x61, + 0x01,0x95,0xf2,0xd0,0x8c,0xdc,0xa0,0x52,0xba,0xfa, + 0x44,0xbd,0x85,0x69,0xee,0x6d,0x0d,0x24,0x4b,0x08, + 0xa7,0x05,0x1c,0xe8,0xc2,0x4d,0x90,0x3e,0x48,0x6a, + 0x1e,0xd7,0xf3,0x4a,0x9d,0x92,0x42,0xb6,0x49,0xad, + 0x4d,0x22,0xd5,0x04,0xff,0x4d,0x1a,0x08,0xa2,0x8b, + 0x5c,0x17,0xad,0x63,0x6f,0x07,0x1b,0x6f,0x25,0xee, + 0x3e,0xd1,0x3a,0x3a,0xe6,0x1a,0xac,0xe0,0x11,0x82, + 0x4c,0x81,0x9d,0x4a,0xe9,0xc1,0x61,0x67,0x6d,0xea, + 0xdd,0x81,0xa0,0x66,0x73,0xba,0xd1,0x49,0x71,0x41, + 0x49,0xf7,0xe5,0xa6,0x98,0x1c,0xfc,0x9c,0xba,0x70, + 0x45,0x3e,0x26,0x21,0xa8,0x5b,0xd8,0x7d,0xfc,0x9b, + 0x60,0xd9,0x69,0xb4,0xf8,0x3a,0x98,0xf2,0x9a,0xe8, + 0x93,0xab,0x8d,0xaf,0x6b,0xd8,0xaf,0x79,0xac,0x95, + 0xe8,0x4b,0xa1,0x26,0x2b,0xd8,0xfa,0xdb,0x49,0x08, + 0xb9,0x9e,0x22,0xed,0x4c,0x7a,0xef,0x82,0x9e,0xee, + 0x8e,0x65,0xb0,0x3e,0x37,0x43,0xee,0x9f,0x2d,0x2e, + 0x94,0x36,0x20,0x9a,0xe9,0xc4,0x7f,0xab,0x23,0x7c, + 0xc6,0x7b,0x08,0x5d,0x70,0x09,0xa1,0xd1,0xc2,0xfb, + 0xa6,0x90,0x2f,0x71,0x2c,0xa7,0x02,0xcc,0xdc,0x03, + 0x6b,0x15,0x11,0x50,0x80,0x48,0x75,0xb6,0xfb,0x87, + 0xc1,0x9f,0x1a,0xaf,0x70,0x0d,0xde,0x44,0xc9,0x1b, + 0x48,0xf7,0x9f,0x84,0xd2,0xab,0x6b,0x6f,0x43,0x84, + 0x91,0x96,0x0b,0x56,0x21,0x16,0xc9,0x27,0xfa,0x45, + 0xd1,0x74,0xf2,0x6a,0x4a,0xc5,0x39,0x15,0x0d,0x94, + 0x69,0x39,0xf9,0x50,0x19,0x86,0x85,0x22,0x7a,0x08, + 0xe1,0x43,0x4a,0xd0,0xa4,0x0f,0x6c,0xfb,0xb8,0xac, + 0xf7,0xa3,0xcc,0x4f,0x91,0x90,0xd8,0xc6,0xc8,0xed, + 0x7b,0xed,0xf7,0x4b,0x65,0x28,0xc3,0xa4,0xec,0x91, + 0x07,0xd9,0xc9,0x7e,0xa3,0x61,0xeb,0x57,0xb6,0x4d, + 0xf9,0x3b,0x05,0x96,0x74,0x30,0xc3,0x01,0xb0,0x5c, + 0xc1,0xe4,0x68,0x8c,0xa4,0x75,0xe8,0xd5,0x9c,0x13, + 0x30,0x3b,0xe4,0x60,0xea,0x3a,0x75,0x6a,0x0a,0x46, + 0xed,0x1d,0xe4,0xf6,0x23,0xac,0x95,0x7b,0x81,0xd3, + 0x5f,0xe4,0x6b,0x12,0xfe,0xfe,0xf6,0x59,0x34,0x41, + 0xa0,0x93,0x3a,0xbd,0x4b,0xe8,0x7f,0x83,0x90,0xa3, + 0x30,0x31,0xb3,0x26,0x31,0x38,0x21,0x74,0x40,0xa1, + 0x2d,0xa0,0x15,0x57,0x28,0xd2,0x36,0x04,0x4f,0x7f, + 0xd7,0x3d,0xdb,0x5b,0xd8,0xa8,0x7f,0xd3,0x21,0x50, + 0xa1,0x2b,0x78,0x3c,0x03,0x42,0x65,0x7a,0x30,0x6a, + 0x40,0x19,0x56,0x8a,0x98,0x90,0x97,0x31,0xae,0x61, + 0x2d,0x6e,0x3b,0x22,0x36,0x70,0xfe,0x56,0x4b,0xf1, + 0xde,0x28,0x17,0x85,0x93,0x6a,0xd7,0x39,0xe5,0x90, + 0x51,0x41,0x4e,0xbf,0x73,0x99,0x00,0x60,0xa2,0xde, + 0x21,0xb8,0x76,0xfa,0xae,0xc7,0x48,0x14,0xa1,0x3d, + 0xe9,0x50,0x4a,0x9f,0x99,0xa6,0xc9,0x48,0xe8,0x1b, + 0x3a,0xd4,0x4a,0x68,0x8f,0x4b,0xc1,0x3e,0xc8,0x4e, + 0xaa,0x81,0x56,0xb1,0x1e,0x34,0x34,0xe5,0x45,0xae, + 0xc7,0xa9,0x79,0x26,0xdd,0x9c,0x43,0xe8,0xdc,0xfd, + 0x18,0x82,0x86,0xad,0xd3,0xbc,0x0e,0x45,0x4c,0x6b, + 0xf6,0x62,0x0f,0xa5,0x4a,0x43,0x01,0x27,0xa3,0xfd, + 0xed,0xfd,0xaa,0xe4,0x02,0xee,0x50,0x5b,0xb7,0xc6, + 0xc9,0x40,0xd0,0x79,0xa8,0x9d,0x14,0x15,0xb7,0x9d, + 0x07,0xbd,0xbf,0xd3,0xfb,0x77,0xf2,0xcc,0xf4,0x7d, + 0x10,0x63,0xcd,0xe8,0xfb,0xd3,0xf7,0x41,0x03,0x6e, + 0x94,0x16,0x3f,0x34,0x32,0xef,0xf6,0xd8,0xdf,0x57, + 0xc8,0x4a,0xd2,0x83,0x92,0x84,0x69,0xf7,0x39,0xe2, + 0xb2,0xbb,0x74,0xb3,0xd7,0xe9,0x23,0x18,0xdf,0xdc, + 0x7e,0x8f,0xc2,0x1c,0x7b,0x71,0xf2,0xfd,0xfd,0x4d, + 0x93,0x6b,0x05,0x07,0x48,0x05,0x1a,0xc3,0x7e,0xaf, + 0xcb,0x8c,0xc6,0xf7,0xe2,0x68,0x82,0x01,0x0d,0x67, + 0xef,0x0e,0xe0,0xed,0x7a,0x5d,0x31,0x67,0xe0,0xf5, + 0x75,0x9a,0x6c,0x4e,0x14,0xa7,0x9b,0x3e,0xa3,0x02, + 0xc9,0x75,0x44,0xae,0x78,0x6a,0x1d,0xd9,0x82,0x08, + 0x92,0xc7,0xb8,0xbb,0xe9,0x9e,0x57,0x40,0x06,0xb7, + 0xf5,0x69,0xcc,0x0d,0x71,0xe2,0xaa,0x4f,0x79,0xb9, + 0x11,0x52,0xd1,0x67,0xad,0xdc,0x98,0x3c,0x0f,0xfc, + 0x60,0xca,0xd9,0xdf,0x39,0xba,0x97,0x48,0x91,0xa9, + 0x6d,0x80,0x83,0xb4,0xc9,0x61,0xbb,0x21,0x1b,0x2b, + 0xf0,0xf7,0x5b,0x91,0x4d,0x88,0x95,0xe3,0xf5,0x27, + 0x9f,0x95,0x29,0xf1,0xba,0x8d,0x2e,0x63,0x48,0x25, + 0xfd,0x3d,0xa5,0x91,0x3e,0xa0,0xe6,0x6a,0x70,0xe1, + 0x1e,0x0b,0xd6,0x7e,0x28,0xb9,0xd4,0x7b,0xd2,0x95, + 0xd1,0xb0,0xc5,0x24,0xd8,0x0f,0x28,0x75,0xb9,0xcf, + 0x91,0xe7,0x59,0x09,0x21,0xd4,0x83,0x5c,0xbf,0xaf, + 0xe6,0xfe,0x25,0x27,0x5f,0x27,0xac,0x25,0x8a,0x88, + 0x28,0x1f,0x97,0xf0,0x7d,0x42,0x95,0x11,0xfd,0x66, + 0x9a,0x1c,0x44,0x5f,0xa6,0x22,0x47,0x0e,0xdb,0x82, + 0xc2,0xa5,0x68,0x8a,0xd1,0x59,0x19,0x24,0x4f,0xa1, + 0x8e,0x16,0x75,0x29,0x00,0xa1,0xd6,0x03,0x23,0x53, + 0x53,0x13,0xe5,0x46,0xee,0x75,0x2d,0xf4,0x66,0x8a, + 0x0a,0xa8,0x30,0xbd,0x5d,0xda,0xec,0xd3,0xbb,0xaf, + 0x75,0x80,0x7e,0x57,0x75,0xd1,0x1e,0xac,0x2b,0xea, + 0x45,0x53,0x1f,0x26,0xbb,0x28,0x6e,0x20,0x29,0x20, + 0x35,0x6d,0x26,0x24,0x1c,0x4e,0x8b,0xdc,0x39,0x4a, + 0x3b,0xde,0x37,0x25,0xc3,0xba,0xa4,0xee,0xc9,0xc1, + 0x76,0x32,0x86,0x73,0x09,0xc6,0x0e,0x7a,0x9c,0x2c, + 0x00,0xdc,0xa1,0xa1,0xe1,0x9f,0xee,0x40,0x77,0x9b, + 0x8a,0x83,0x84,0x53,0xfe,0xda,0xc4,0x0f,0x4e,0x14, + 0xde,0x65,0x42,0x5a,0x53,0x37,0xe5,0x46,0x58,0xd3, + 0xef,0x05,0x98,0x3c,0x19,0x3b,0x5a,0xa1,0xb1,0x43, + 0x34,0x06,0x27,0x71,0x14,0xd3,0xb9,0x69,0xa0,0x89, + 0xee,0x70,0x34,0x9a,0xd3,0x87,0xc0,0x21,0x58,0xd4, + 0x9d,0x26,0xaa,0x43,0x36,0xc4,0x2d,0xfd,0x5d,0x9b, + 0x8c,0xfe,0x5e,0x3b,0xa3,0x53,0xb2,0xcd,0x4f,0x91, + 0x38,0x7a,0x68,0xe8,0xf5,0xf5,0xcf,0x74,0x42,0xdc, + 0x29,0xd7,0x6b,0x2a,0xb4,0x6e,0xcd,0x89,0xa6,0xba, + 0xd3,0xef,0x24,0xf1,0x76,0x77,0xd5,0x9e,0xa8,0x4d, + 0x97,0x07,0xe7,0xbe,0x37,0x50,0x28,0x48,0x63,0x19, + 0x87,0x6f,0x44,0x29,0x48,0xeb,0xe3,0x62,0x67,0x86, + 0x7d,0xbc,0xc2,0x79,0x81,0xd4,0x09,0xed,0x87,0x61, + 0x5f,0x40,0x11,0x32,0xc9,0x0a,0x4c,0x23,0x53,0xc3, + 0x3b,0x88,0x9a,0x38,0xc8,0xdc,0x2a,0x38,0x13,0xc8, + 0x56,0xa0,0x9c,0x24,0x41,0xbf,0x93,0xa1,0x2d,0xb7, + 0x42,0xc0,0x69,0xe2,0xa6,0xf3,0xca,0x65,0x4f,0x4e, + 0x14,0xd3,0xc9,0x24,0xa4,0x91,0x9b,0xfc,0xd8,0x0d, + 0xf4,0x62,0x8e,0xa6,0xe1,0xdc,0x5e,0x61,0x0c,0x5c, + 0xb1,0x50,0x76,0x99,0x93,0x64,0x12,0x49,0xd7,0xfd, + 0x72,0x51,0xf4,0x69,0x31,0x52,0x01,0xe4,0x3a,0x4f, + 0x77,0x91,0x04,0x6d,0x39,0x9d,0x8c,0xaa,0xc5,0x9d, + 0x29,0x59,0x4a,0x9a,0x4d,0xaa,0x78,0xb2,0xc7,0x06, + 0x0f,0x98,0xb1,0x0b,0xa3,0x6e,0xec,0xa0,0x08,0x7a, + 0x38,0x81,0xba,0x4d,0x86,0x2c,0xd2,0xf5,0xef,0xa4, + 0x74,0x6f,0xe7,0xd4,0xea,0xc6,0xcb,0xfb,0x8b,0x45, + 0xf7,0x39,0x4d,0x6c,0x68,0x27,0x6c,0xba,0x5a,0xf4, + 0x78,0xd0,0xcf,0x94,0x8e,0xa8,0xa8,0xfb,0xa3,0x67, + 0x0c,0xf4,0xaa,0x0b,0x03,0xec,0x74,0x5c,0x0d,0x26, + 0x79,0x95,0x1a,0x82,0xd4,0xe5,0x26,0x6f,0x2c,0xfa, + 0xdc,0x83,0xf1,0xd2,0x22,0xb7,0xe9,0x94,0x2f,0x46, + 0x94,0xd3,0x25,0xa3,0xe9,0xb4,0xb1,0xea,0xc1,0x6d, + 0xe2,0x08,0x70,0x93,0x3b,0x3d,0x8c,0x00,0x11,0x8c, + 0xf4,0x57,0x30,0x88,0xdc,0xa6,0xde,0x28,0x50,0xd2, + 0xad,0x1d,0x18,0x23,0xdf,0x26,0xc8,0x0e,0x90,0xa3, + 0xba,0xb2,0x3f,0x0e,0x3d,0x93,0x69,0x3f,0x2e,0xa7, + 0x07,0x04,0x44,0x7f,0xfb,0xbe,0x49,0x2f,0x44,0x01, + 0xc9,0x44,0xeb,0x75,0x31,0xaf,0x79,0xf6,0xf5,0x69, + 0x23,0xa3,0xcf,0xda,0x45,0x20,0x05,0x57,0xf1,0x87, + 0x36,0x49,0x9a,0xdd,0xfa,0xa0,0x20,0xf8,0xf9,0x3c, + 0xca,0x22,0x9c,0x8c,0x6f,0x49,0x3b,0x4a,0x0d,0xeb, + 0x44,0x6d,0x3b,0x7d,0x8f,0x43,0x93,0xdc,0xfa,0x1d, + 0x28,0xc6,0x2d,0x0b,0xce,0xed,0xed,0x13,0x78,0x72, + 0x5f,0x87,0xb1,0x58,0xb0,0x05,0x20,0x05,0x94,0xbb, + 0x73,0x9d,0xa8,0x74,0xa7,0x49,0x73,0x7b,0xd2,0x36, + 0x05,0xa6,0x5a,0x0c,0xe3,0xf2,0xb8,0xb9,0xf2,0xaa, + 0xfe,0x23,0xbc,0xc8,0xe8,0x02,0xed,0x28,0x36,0xb7, + 0xc1,0x12,0x4f,0x6f,0xb8,0x52,0xab,0x6d,0xa1,0x51, + 0xfb,0x4e,0x85,0x85,0x44,0x5c,0x67,0xa4,0x47,0x53, + 0x70,0x9b,0x4e,0x89,0xa6,0xea,0x12,0xe5,0x95,0xb4, + 0x59,0xea,0x92,0xec,0x28,0xba,0x40,0xf7,0x2c,0xe2, + 0xe1,0x1d,0xb5,0xd7,0x29,0x24,0x88,0xab,0x58,0xe1, + 0x45,0x25,0x77,0xef,0x8d,0x7a,0xec,0x71,0x0c,0xb7, + 0xee,0x06,0xf4,0x04,0x91,0xd2,0x0a,0xb4,0xa2,0x42, + 0xc1,0x2b,0x74,0x38,0x47,0x94,0xd7,0xfd,0x39,0x6e, + 0x94,0xd3,0x41,0xf6,0x37,0xed,0x34,0x88,0x7b,0xfb, + 0x46,0xba,0x4e,0x0d,0xfe,0x5c,0x37,0xe9,0xa8,0xb2, + 0x70,0xdf,0xb0,0xe0,0x4b,0xef,0x5e,0xd2,0xf8,0xe8, + 0x81,0x95,0x8c,0x0d,0xe9,0xf7,0x53,0x51,0x45,0x5d, + 0xe5,0x89,0x2f,0x15,0x38,0x96,0xa3,0xe7,0xcb,0x15, + 0x7c,0xaa,0x0e,0x8a,0x99,0x94,0xa1,0x68,0xd1,0x95, + 0xd3,0x67,0xa5,0x82,0x77,0x42,0x38,0xb5,0x38,0x82, + 0xa2,0xb8,0x52,0x11,0xa7,0x79,0x5d,0x53,0x7e,0x62, + 0xf2,0x0e,0x32,0xcd,0x72,0xa5,0x6b,0x4f,0x34,0x46, + 0x7a,0x97,0x42,0x41,0x5a,0xb4,0x47,0xd3,0x9a,0x0a, + 0x8d,0x4f,0xc1,0x99,0xb9,0x4d,0xf2,0xdd,0x13,0xb7, + 0xfd,0xba,0xcd,0x59,0x49,0x13,0x8b,0x31,0xeb,0x0b, + 0x9e,0x4b,0xc1,0x14,0x68,0x25,0x8a,0x4a,0xff,0xb9, + 0x43,0x17,0x95,0x52,0x4d,0x1a,0x9e,0xd4,0xb0,0x04, + 0xad,0x58,0x41,0x11,0x6f,0x0b,0x31,0x62,0x1a,0x80, + 0x8e,0xac,0x87,0x0f,0x10,0x55,0x7c,0xc1,0xc6,0xdc, + 0x42,0x66,0x69,0x1c,0x54,0x6f,0xa8,0xb3,0xa9,0x26, + 0x95,0x3d,0x2d,0xe0,0x49,0x40,0x3c,0x2d,0x54,0x77, + 0x43,0x01,0x12,0x75,0xd5,0xed,0xa6,0xdc,0x6f,0x13, + 0x23,0xa9,0x3a,0x75,0x15,0x6d,0x39,0xaf,0x06,0x9d, + 0xce,0x20,0xa3,0x42,0xfd,0x9e,0x01,0x1a,0xfd,0xc8, + 0x48,0xaf,0xd3,0x84,0x27,0x89,0xbd,0x0e,0x09,0x22, + 0xf8,0x32,0xdd,0x1f,0xe7,0x23,0xe1,0x0e,0x14,0x5d, + 0x47,0xef,0x8e,0xe3,0x81,0x88,0x80,0x11,0x5a,0x32, + 0xe5,0xb4,0xa9,0xd8,0xa4,0xe7,0x71,0x28,0x9a,0xfb, + 0x1d,0x97,0x6e,0x4e,0x94,0x90,0x84,0xb3,0x56,0x5a, + 0x93,0xe1,0xb0,0xdf,0x7c,0x7e,0xa4,0x9b,0xc5,0x41, + 0x00,0x1a,0xad,0x75,0x90,0xb2,0xf8,0xe9,0x6c,0x28, + 0x92,0x4b,0x83,0xd7,0x04,0xf8,0xeb,0x39,0xc1,0xf6, + 0xf8,0xff,0xfa,0xcf,0x7a,0x0e,0xd7,0xd4,0x75,0xa7, + 0x02,0x45,0x69,0x9f,0x8e,0xc2,0xd6,0x13,0x0e,0xac, + 0x93,0x7d,0x30,0x20,0x6a,0xa3,0x89,0xe9,0x8d,0xb8, + 0x5e,0x21,0x94,0x55,0x33,0xaf,0xae,0x30,0x01,0x26, + 0xfb,0x72,0x0d,0x34,0xc9,0x16,0xe6,0xda,0x2d,0x26, + 0xe8,0x7d,0x75,0x7a,0xa1,0xe0,0x83,0x46,0xa6,0x83, + 0x8f,0x3d,0xce,0xbc,0x3b,0x15,0x0c,0x6b,0x6b,0xd2, + 0xd9,0x51,0x31,0xab,0xfb,0xe9,0xa0,0x13,0x7a,0x14, + 0x9a,0x4e,0x5b,0x06,0xfb,0xe3,0xd6,0x3c,0xc8,0x84, + 0xd2,0x35,0x19,0x92,0xa6,0xa9,0x65,0x37,0x3d,0xa5, + 0x5e,0x78,0xa1,0xb1,0x89,0x3e,0x75,0x6e,0xa2,0x15, + 0xc4,0xd8,0x78,0xa6,0x10,0xfd,0xa6,0xfb,0xb8,0x2b, + 0x52,0x09,0x19,0x22,0xa4,0xf8,0xa4,0xb9,0x70,0x7b, + 0xe4,0x6f,0x87,0x5e,0x50,0x45,0x48,0xd9,0x51,0x04, + 0x69,0x7e,0x20,0x08,0x56,0x4b,0x9b,0x11,0x35,0x49, + 0xa1,0xac,0x13,0x6a,0xa1,0x08,0x81,0x5b,0x10,0x94, + 0x99,0x75,0x92,0xab,0xe2,0x26,0x83,0xe4,0xa5,0x75, + 0x28,0xcc,0x23,0x63,0x4c,0xe0,0xcc,0x0d,0xa1,0xea, + 0x62,0xed,0xcb,0x88,0x6e,0xdf,0x1a,0x87,0x35,0x79, + 0xe1,0xe8,0xa2,0x7b,0xbd,0x5e,0x0b,0x68,0xc9,0x34, + 0xb5,0xb6,0x4d,0x03,0xca,0x66,0xb3,0xc2,0xf4,0xc3, + 0x72,0x82,0x39,0x12,0x7d,0x6b,0x67,0x33,0xa1,0x34, + 0x97,0x89,0xb9,0x30,0x0e,0xd1,0x8b,0xd0,0x15,0x42, + 0x83,0xb4,0xb0,0x6a,0x07,0xc8,0x9a,0x0a,0x9c,0x86, + 0x26,0xac,0x0f,0xa2,0x62,0xb6,0x58,0x0f,0x7a,0xc9, + 0x93,0xf1,0x5b,0xfb,0x8e,0x2b,0xc5,0x56,0x80,0xc3, + 0x30,0x22,0x5d,0x4e,0xec,0xaa,0xef,0x26,0xb9,0xcc, + 0xd2,0x88,0x3f,0xf9,0xf0,0x9c,0x6a,0x9d,0x52,0x81, + 0xe8,0x92,0xb4,0x75,0xf2,0x92,0xf4,0x47,0x43,0xe3, + 0x60,0xd1,0x1b,0x12,0xd8,0xd3,0x41,0x19,0xf6,0xd4, + 0x4a,0x0e,0xf1,0x34,0xbd,0x15,0x84,0xa9,0x48,0x2b, + 0xbf,0xd1,0x8a,0x3a,0x08,0xd4,0xad,0x74,0x10,0x39, + 0x2a,0xdd,0x69,0xef,0x1c,0x7a,0x1a,0x0e,0xb6,0xad, + 0xe1,0xd6,0x18,0x98,0x44,0xcf,0x9d,0xae,0x1b,0xfa, + 0x1d,0xd7,0xa8,0x09,0xb2,0x58,0xc4,0x42,0xdc,0xb4, + 0x1c,0xfd,0x1d,0xca,0xae,0x4b,0xc1,0xce,0x9f,0x4c, + 0x83,0x9d,0x22,0x92,0x42,0x3b,0x16,0x30,0x2e,0x57, + 0x02,0x22,0x12,0xb5,0x3d,0xd1,0x8e,0x61,0x0f,0xb0, + 0x93,0x8d,0x69,0x5f,0x20,0xd0,0xe0,0x45,0x0f,0x81, + 0x22,0x1a,0x08,0x2e,0xee,0x15,0x39,0x24,0x64,0xd7, + 0x27,0x1a,0x19,0xe2,0x0f,0x27,0x34,0x43,0x05,0xd1, + 0xa9,0xb3,0x57,0xd4,0x8b,0xba,0x06,0x97,0x24,0xeb, + 0x74,0x32,0xaa,0x87,0x70,0x1c,0x6b,0xea,0x34,0x5c, + 0xa7,0x95,0x16,0xf4,0x90,0xc3,0xb3,0xf9,0x23,0x49, + 0x01,0x55,0xd0,0x99,0xd8,0x14,0x6a,0x57,0xb1,0x53, + 0x3e,0x91,0xeb,0xf0,0x2e,0x4e,0xb2,0xaf,0xb4,0x6e, + 0xba,0xb0,0x0e,0xf8,0xe1,0x52,0xd1,0x9b,0xa2,0x71, + 0x6d,0x64,0xde,0x3d,0xf3,0xc7,0x7d,0x52,0xed,0x92, + 0x44,0x89,0x8c,0xa3,0xdf,0x6f,0x8f,0xa2,0x23,0xaf, + 0x11,0x41,0x4d,0x62,0x51,0x63,0xdc,0x7e,0xad,0xeb, + 0xef,0xa7,0x9f,0xd3,0xaf,0x21,0xa5,0x8f,0x4f,0x07, + 0xf3,0x74,0x90,0x24,0xca,0xc7,0x15,0x5c,0x66,0xbd, + 0x6e,0x4e,0xbb,0x93,0x46,0x08,0xae,0x61,0x8b,0xdf, + 0xb8,0x4c,0x7c,0x4f,0x8a,0xbc,0x00,0xcf,0x9e,0x72, + 0x66,0x79,0x29,0x67,0x8b,0x04,0xd8,0x41,0x17,0x52, + 0x29,0x12,0x47,0x04,0xf8,0x68,0x8e,0xd8,0x8a,0xa3, + 0xa2,0x48,0x13,0x7d,0xa7,0xc1,0x02,0x60,0x5b,0x83, + 0x06,0xc5,0xb5,0x0e,0xce,0x7d,0x8a,0x0c,0xf4,0x23, + 0x75,0xb2,0xef,0x9b,0x69,0xbf,0xa4,0x97,0x2a,0x28, + 0x66,0x8b,0xb4,0xaa,0x29,0x5d,0xbc,0xa3,0x1b,0x27, + 0x1a,0x1e,0x45,0x92,0x1c,0x62,0xd5,0x91,0x56,0xca, + 0x6c,0xeb,0x7b,0x5b,0x4a,0x80,0xa7,0xfc,0xb6,0x10, + 0xe4,0x4b,0xc5,0x61,0x91,0x2e,0x67,0x42,0xcd,0x9c, + 0x15,0xce,0xe4,0x6f,0x74,0x81,0xe7,0x94,0x43,0xa8, + 0xdc,0xbf,0xa7,0x66,0xc9,0x21,0x6b,0xaf,0x01,0x42, + 0x77,0x07,0xad,0xad,0x1e,0xfb,0x22,0x54,0x38,0xd0, + 0x99,0x12,0x91,0x39,0x19,0xc0,0x81,0x15,0xa8,0x85, + 0x72,0x2e,0xc6,0xee,0x05,0x4e,0x26,0x68,0xa6,0x93, + 0x47,0xd8,0x7c,0xb2,0x42,0x9f,0x8a,0x38,0xea,0x60, + 0x5c,0x71,0x91,0x8a,0x20,0x97,0xad,0xe2,0xc4,0xdf, + 0x0e,0x35,0x53,0x88,0xf4,0x24,0xf6,0x84,0xba,0x14, + 0x73,0xb8,0x8c,0x07,0xe0,0x64,0xb7,0x6e,0xf2,0x92, + 0x6c,0x24,0x83,0x1c,0xe6,0xb8,0xe0,0xd3,0x33,0x6a, + 0x2e,0xa4,0x45,0xc8,0xa2,0x99,0xc0,0x42,0xcd,0x47, + 0x2f,0xec,0x92,0x80,0xd7,0x15,0x24,0xc3,0xbb,0x67, + 0x85,0x94,0x5d,0x40,0x3d,0x15,0x04,0xa4,0x17,0x11, + 0x3d,0x41,0x95,0x51,0x84,0x27,0x71,0x73,0x0a,0x28, + 0x56,0xd8,0x3f,0x14,0xff,0xa3,0x46,0x88,0x7e,0x2e, + 0xa0,0x66,0x45,0x54,0x62,0x42,0x89,0x8c,0x07,0x98, + 0x2d,0x7a,0xe8,0xb0,0xd5,0x21,0x0b,0x31,0xfd,0x8b, + 0x43,0x27,0x46,0x77,0x52,0xa0,0x2d,0xb2,0x4e,0xcf, + 0x69,0xfa,0xe5,0x32,0x22,0xf0,0x50,0x24,0x6e,0x7b, + 0x19,0x25,0xa2,0x9f,0x20,0x61,0x5a,0xa4,0xb9,0xbd, + 0xa1,0xeb,0x00,0xf5,0xdf,0x39,0x13,0x57,0xd2,0xc8, + 0x98,0x82,0xb5,0x1c,0x6d,0x34,0xf8,0xd4,0x51,0x03, + 0x6b,0xdd,0x87,0x29,0x86,0xc6,0x15,0x39,0x6e,0x7a, + 0x19,0x9a,0x8c,0x9a,0x8c,0x40,0x13,0x88,0x31,0x15, + 0xd7,0x89,0x32,0x4c,0x59,0x99,0x74,0x46,0x86,0xf8, + 0x1e,0x2c,0x7e,0x4e,0xf2,0xfe,0xe8,0x3f,0x82,0x2a, + 0xd7,0xb0,0xbf,0x6d,0xe7,0xe7,0x2b,0x5d,0x44,0x80, + 0x57,0xd3,0x58,0x7c,0x91,0x31,0x22,0xfd,0x1d,0x47, + 0x3d,0x0c,0xc8,0x0f,0x6e,0x1a,0xe1,0x80,0xd9,0x8a, + 0xb1,0x13,0xba,0xce,0xb9,0x5f,0x12,0x24,0x4b,0x39, + 0x41,0x69,0xb3,0x49,0x3c,0xac,0x1b,0xf5,0x77,0xe6, + 0x6a,0xa9,0xb8,0x74,0x5d,0xc7,0xa9,0x1b,0x6d,0xd0, + 0x39,0x60,0xe7,0x48,0x07,0x64,0xd7,0x38,0x90,0x31, + 0x57,0x4a,0x81,0x3e,0xe9,0x6a,0xdf,0x45,0x4c,0x42, + 0x24,0x10,0xe1,0xe8,0x36,0x03,0x8e,0x4f,0x77,0x53, + 0x40,0xf4,0xfc,0x28,0x7b,0x29,0x4d,0x2f,0xb8,0x43, + 0xdb,0xdd,0xe3,0xb4,0xb9,0xdc,0xbf,0xfb,0x76,0x6c, + 0xb6,0xef,0x20,0x69,0x7e,0x40,0x9b,0xb1,0x69,0x89, + 0xf4,0xbf,0xee,0x86,0xba,0x18,0x92,0xc1,0x15,0x7c, + 0x2b,0x3e,0xfa,0x75,0x38,0x2f,0x1b,0x19,0xfb,0x7e, + 0x14,0x39,0x6e,0x62,0x90,0x0c,0x17,0x13,0xdd,0xa6, + 0xef,0x43,0x2a,0x7e,0x49,0x3c,0x4d,0x63,0xef,0x07, + 0xc6,0x88,0xe5,0x04,0xac,0xb4,0xc7,0x9c,0x34,0x1e, + 0x0e,0xe9,0x4c,0x8d,0x99,0x43,0x2d,0xb5,0x08,0xe9, + 0xff,0xd5,0x11,0xee,0x09,0xe9,0x80,0xc6,0xc8,0x6a, + 0x1e,0x9d,0x5f,0x8c,0x43,0xa0,0xe1,0xb9,0x58,0xb4, + 0xbb,0xeb,0x8f,0x68,0x3c,0x5d,0xdf,0xe7,0xae,0xf1, + 0x04,0x09,0x05,0xe5,0xea,0x95,0x3a,0xf2,0xa7,0x29, + 0x46,0x37,0x8a,0x2e,0xf7,0xba,0xa6,0x46,0xcf,0xa1, + 0x3f,0x6e,0x4f,0xa7,0xb3,0xb5,0xff,0x8e,0x9e,0xdf, + 0x0e,0x6d,0x91,0x22,0xb9,0x4e,0x9b,0xdf,0x29,0x6e, + 0x45,0x3a,0x4a,0x7b,0x0f,0x93,0x2e,0x88,0xb4,0x4b, + 0xb7,0x11,0x22,0x51,0x1d,0x94,0x31,0x45,0xbc,0x26, + 0x3a,0x26,0x8b,0x29,0x98,0x75,0xf7,0xd5,0xcc,0x2b, + 0x10,0x90,0x2e,0x39,0xac,0xb6,0xc9,0x20,0x27,0xce, + 0xbe,0x5d,0x70,0xc9,0xa5,0xd8,0xa9,0xdd,0x6f,0x8d, + 0x84,0x2b,0xfe,0x6e,0xed,0x06,0x71,0xac,0x70,0xf0, + 0xae,0xc0,0xdf,0x2e,0x47,0x5f,0xd1,0x35,0xb8,0x0c, + 0xb0,0xae,0x79,0x71,0xa9,0xd3,0x74,0x8f,0xda,0x86, + 0x64,0x0d,0x19,0x7b,0x96,0x55,0xd2,0x11,0x39,0xaa, + 0x8c,0xf4,0x62,0xaa,0x69,0x72,0x54,0xa8,0x4e,0x1c, + 0x4a,0x8c,0xc7,0x32,0xd9,0x3f,0x8a,0x78,0xad,0xa0, + 0x63,0xbb,0x54,0x23,0xd6,0x11,0xb5,0xcb,0xe4,0x72, + 0x39,0xfd,0x8f,0xc0,0xfb,0xcb,0x15,0x18,0x50,0x79, + 0xad,0xae,0x31,0x49,0x4e,0xd5,0xfd,0xf3,0x53,0x3e, + 0x95,0x83,0xf5,0xf5,0x67,0x6e,0xa3,0x50,0xca,0xc4, + 0x72,0x48,0x93,0x16,0x4e,0xee,0x3b,0x92,0x80,0x9f, + 0x46,0xe3,0x49,0x43,0x44,0x70,0x3e,0x79,0x06,0x4d, + 0xdd,0xf0,0x89,0x40,0x3a,0xd1,0x1e,0x69,0xd4,0x97, + 0x74,0x92,0x7a,0x70,0x90,0xfe,0xc1,0x69,0x3c,0xf4, + 0xc0,0x73,0x28,0x94,0x13,0xf3,0xf6,0xcf,0x77,0x26, + 0x92,0xd7,0x81,0x0f,0x99,0x3e,0x43,0xb8,0xc6,0x89, + 0x22,0xc5,0x98,0x10,0x45,0x3a,0x48,0xd3,0x43,0x4d, + 0xd7,0x10,0x36,0x9b,0x1a,0x8c,0x4a,0x93,0x7d,0x80, + 0xf8,0x59,0xed,0xd4,0x8d,0x4e,0x05,0x0d,0x2a,0x51, + 0xe4,0x45,0x45,0x86,0x16,0x2c,0x4e,0xc7,0x64,0xde, + 0x05,0x9a,0xfa,0x4a,0xcf,0x27,0x19,0x5f,0x16,0x38, + 0xd8,0xc7,0x7b,0x4e,0xeb,0x9f,0x18,0x1b,0x2d,0xc2, + 0x48,0xb7,0x44,0x45,0x21,0xbd,0x8b,0xfd,0xbb,0x87, + 0x46,0xa1,0xdc,0x7e,0xf3,0x9a,0x16,0x5c,0xf0,0x01, + 0xa9,0x53,0xed,0x81,0x31,0x79,0xba,0x3e,0xf1,0x97, + 0x71,0x90,0xa4,0x7b,0x88,0x01,0x2a,0xac,0xd0,0x3d, + 0x6d,0x50,0x9a,0x8a,0xf3,0x4e,0x60,0xfe,0xfb,0x60, + 0x77,0xdf,0xd9,0x2d,0xf4,0x84,0x4e,0xb9,0x43,0x4c, + 0xa1,0x3b,0x78,0x01,0xae,0x04,0x5d,0x77,0x21,0x9b, + 0x39,0x0c,0x4a,0xa7,0x83,0x52,0x05,0xaf,0x06,0x83, + 0x30,0x1e,0x9d,0x3c,0x47,0x6a,0x80,0x3f,0x2b,0x40, + 0xb6,0x68,0x6c,0x38,0xa1,0x3d,0x44,0x65,0x11,0x32, + 0x71,0xb0,0xe9,0xdb,0x6b,0xa2,0x83,0x56,0xd3,0xdc, + 0x53,0x04,0x8d,0x76,0xb1,0xb7,0xbe,0x88,0x8a,0x97, + 0x04,0x1d,0x0b,0x0a,0x51,0xdd,0xfe,0x7e,0xa0,0x3c, + 0xb7,0xe2,0x5e,0x37,0x29,0x45,0xc8,0x88,0xb2,0x32, + 0xfa,0xb9,0x18,0x59,0x91,0xa6,0x3c,0x26,0xd3,0x55, + 0xe7,0x87,0x12,0x3a,0xe3,0x4b,0xf4,0x50,0x16,0x61, + 0x3c,0x31,0x9d,0x54,0xda,0x90,0x10,0x57,0x73,0x80, + 0xd7,0x14,0xb5,0xd1,0xd1,0xa4,0x60,0xba,0xaa,0xfb, + 0x07,0xfa,0xc3,0xa8,0x10,0x39,0x85,0xb8,0x4e,0xfb, + 0x3d,0x9d,0x17,0x9a,0x85,0x06,0xeb,0xaa,0x02,0x65, + 0x5b,0x9a,0x4e,0xaf,0x4d,0x1f,0xe9,0x1c,0x5d,0x51, + 0xe5,0x8c,0x06,0xd3,0x3e,0x64,0xd0,0x5c,0x8b,0x4e, + 0xd1,0x54,0xab,0x2b,0x7e,0xe8,0x3c,0x3b,0x61,0x24, + 0xd2,0xda,0x9a,0xb4,0xa8,0x27,0xa8,0x8a,0x3b,0xbb, + 0x68,0x9f,0xa1,0x9c,0x46,0x8a,0xf4,0xe8,0xe7,0xcf, + 0x34,0xa9,0x45,0xee,0xe6,0xba,0x6f,0xa4,0xfd,0x53, + 0x91,0x68,0xf7,0x73,0xaf,0x49,0xab,0xe1,0x34,0x3d, + 0xee,0x0b,0x92,0x59,0x16,0x75,0x47,0xae,0x63,0xd4, + 0x4a,0xf0,0x94,0x77,0xa4,0xcd,0x82,0xae,0xcd,0x09, + 0x85,0x75,0x13,0x57,0xed,0xd1,0xaf,0x5f,0xbf,0x1e, + 0x2f,0x4f,0xd8,0xec,0xeb,0x20,0xb8,0xd1,0x06,0xce, + 0x11,0x07,0x4c,0x53,0x59,0x02,0xe5,0x6e,0xde,0x13, + 0xfd,0xa5,0x6f,0x8b,0xb9,0x94,0x96,0x4c,0xf9,0x55, + 0xae,0x7a,0x06,0xea,0x25,0xbe,0x7c,0xa9,0xc8,0x99, + 0x36,0xd5,0x54,0x10,0xa7,0x9c,0x23,0x97,0x4e,0x4d, + 0x82,0x45,0xf0,0xe4,0xd8,0x34,0x0b,0x5a,0x14,0x9b, + 0x0c,0xa6,0x18,0xa6,0x6b,0xf4,0x59,0x45,0x2f,0xb3, + 0xea,0x39,0x8c,0x78,0xda,0xae,0x7f,0x9a,0xdc,0x02, + 0x14,0x4f,0x35,0x3f,0xc9,0x77,0x07,0xb5,0x6a,0xc9, + 0x54,0x30,0x1d,0x2e,0x94,0x5a,0x9f,0x22,0x24,0x00, + 0x3d,0xb9,0x94,0x1e,0xd1,0xf7,0xae,0xe5,0x9e,0xb9, + 0x11,0xfd,0xa3,0x83,0x08,0xf6,0x9b,0x87,0xdd,0x00, + 0x4d,0x7c,0x19,0xf3,0xd5,0xcd,0x31,0xdc,0xa1,0x30, + 0xa9,0x90,0x80,0xfd,0xe5,0x21,0x4e,0x0e,0x94,0x67, + 0x74,0xc1,0x76,0x8e,0xce,0x4a,0xcb,0xf7,0x02,0x45, + 0x75,0x30,0xed,0x5e,0x4f,0x79,0x92,0xa9,0x91,0x49, + 0xde,0x57,0x45,0x85,0x71,0x5f,0xcb,0xfd,0x9a,0xc5, + 0x6b,0xcc,0xe9,0x55,0xed,0x94,0x9d,0x0a,0x9b,0xc9, + 0x52,0x83,0xd6,0xb5,0xde,0xe3,0x4e,0x61,0x99,0xd0, + 0xea,0x9a,0x4c,0x7a,0xcd,0x7b,0x98,0xb4,0x51,0x8f, + 0x7d,0x81,0xc2,0xaf,0xef,0x7f,0xef,0xb4,0x56,0xc9, + 0x82,0x86,0xbe,0xef,0x69,0x83,0x45,0x1e,0x52,0xce, + 0x55,0x1c,0x34,0x3e,0x56,0xfa,0x40,0xf4,0x68,0xbf, + 0x96,0xdf,0xd7,0x75,0xfd,0xa9,0xaa,0x7f,0xa8,0x53, + 0x03,0xe3,0xbe,0xfe,0xff,0x93,0xa1,0xdc,0xd2,0x2f, + 0xda,0x68,0x86,0xa5,0x63,0xc0,0x52,0x94,0x7c,0x87, + 0xa2,0x6b,0x91,0xa9,0x57,0xa7,0x5d,0xba,0x97,0x45, + 0xa7,0x33,0xc0,0x88,0xc9,0x06,0x5e,0x6a,0x8e,0x96, + 0x7e,0x5e,0x10,0x69,0x51,0xc0,0xe7,0x0a,0x53,0x5b, + 0x0b,0x72,0x73,0x92,0x41,0x25,0x06,0x4d,0xde,0x23, + 0xed,0xa6,0xc8,0x49,0x46,0x82,0x2b,0x04,0xe2,0xa5, + 0x31,0x9b,0xed,0xbe,0xcb,0x77,0xc4,0xef,0xd0,0x7e, + 0x77,0x99,0x62,0x72,0x75,0x4a,0x8b,0x28,0x9f,0x4e, + 0xe1,0x11,0xd2,0x97,0xc2,0x67,0xdb,0x7d,0x5f,0x4e, + 0xc8,0x6e,0xb2,0xa9,0x56,0xd2,0x53,0xe9,0xcf,0x4d, + 0xb4,0x4c,0x7b,0x4e,0x29,0x9c,0xd5,0x5e,0xbb,0x5c, + 0xdb,0x9a,0x44,0xfc,0x93,0x0e,0x85,0xd6,0x67,0x5f, + 0x1b,0x1a,0x4e,0x48,0x4b,0x43,0x29,0xb3,0x34,0xf2, + 0x6e,0x72,0xe7,0xa2,0x7e,0x89,0x34,0x75,0xc1,0x61, + 0xf7,0x08,0x59,0xa2,0x77,0x5a,0x9b,0xbb,0x64,0x1e, + 0xd7,0xa9,0x52,0x43,0xa1,0xdb,0xbd,0x4b,0xbb,0xf0, + 0x3e,0x65,0x1a,0x1a,0xcd,0x0d,0x01,0x4f,0x14,0xe9, + 0x05,0x5e,0x68,0x06,0x19,0xc2,0x69,0x1b,0x19,0x9f, + 0x7f,0xd0,0xfb,0xf7,0xbb,0xd2,0x9a,0x30,0x0a,0x90, + 0x2e,0xa7,0x27,0x15,0x1b,0x02,0xbc,0xcf,0x4e,0x84, + 0xdc,0xaf,0x2d,0x38,0x62,0x57,0xb8,0x47,0x95,0xe8, + 0x41,0xa7,0x51,0x75,0x54,0xa7,0x98,0x07,0x47,0x4f, + 0x1f,0x27,0x55,0x20,0x4b,0x80,0xd4,0x48,0xa5,0x06, + 0x1f,0x1a,0x11,0x4b,0xe5,0xb9,0xf7,0x87,0x34,0x3a, + 0xa4,0x35,0x05,0x59,0x48,0x1a,0xa6,0x28,0x42,0x21, + 0x5d,0xa1,0xe6,0x68,0xb5,0x14,0x61,0xe4,0x26,0x11, + 0xaf,0xeb,0xfa,0xa7,0xaa,0xfe,0xfc,0x5e,0x6b,0xfd, + 0xfb,0xfe,0x87,0xff,0x01,0xe4,0x64,0xdd,0xee,0x95, + 0xd0,0x9d,0x2d,0x77,0x58,0xe8,0xc1,0x14,0xbe,0xdc, + 0x52,0x9d,0x50,0x83,0xb9,0x9c,0xd3,0xf2,0xfd,0xb3, + 0x2b,0x54,0xe4,0xd4,0x99,0xae,0x00,0xcb,0x53,0xc1, + 0x72,0xf5,0x64,0x78,0xf3,0x37,0x17,0xe8,0x18,0x52, + 0x0a,0x79,0x2c,0x1a,0xa9,0xfb,0x56,0xe7,0xe9,0xef, + 0xef,0xef,0xeb,0xd7,0xaf,0x5f,0xc9,0x90,0xcd,0x7a, + 0x3a,0xbd,0x9f,0xe5,0x02,0xab,0xf3,0x87,0x56,0x24, + 0x5d,0x3b,0x08,0x49,0x57,0x98,0xb6,0x5b,0xa4,0xf7, + 0x78,0xdf,0xdf,0x35,0x74,0x15,0x2b,0x79,0x4f,0x50, + 0xc1,0xd0,0x03,0x40,0x9d,0x79,0x98,0xac,0x9f,0x75, + 0x72,0x78,0x5f,0xde,0x47,0x89,0x0e,0xea,0xe4,0x92, + 0x9e,0x0e,0xdf,0xa5,0x88,0x86,0x43,0x17,0x02,0x05, + 0xb4,0xa4,0xe3,0x43,0x3a,0x2a,0x84,0x6f,0x92,0x4e, + 0x2a,0x16,0x3e,0xb2,0x36,0xd6,0x41,0x8a,0xb4,0xbb, + 0x97,0xc9,0x04,0x8f,0x36,0xe8,0x31,0xbc,0x94,0x8a, + 0x1f,0xbd,0xbf,0x7d,0x5c,0x9b,0xa0,0x7f,0x57,0x90, + 0x81,0xbe,0xab,0xa6,0x74,0x6e,0xe7,0x72,0x4c,0xdf, + 0x01,0xa6,0x0e,0x47,0x2b,0x80,0x4b,0xa6,0x42,0x43, + 0xe2,0x77,0x25,0x1d,0xc6,0xbd,0x66,0x80,0xb6,0xac, + 0x61,0x42,0x2f,0x21,0xde,0x5b,0xc1,0xe1,0x02,0x3f, + 0xc9,0x41,0xd8,0x15,0x2b,0xce,0xcb,0xc6,0x21,0xc1, + 0x66,0x8f,0xb4,0x0e,0xc8,0xce,0xe7,0xcc,0x49,0x17, + 0x5c,0x0c,0xc3,0x15,0xa6,0xe7,0x9c,0xab,0x37,0xa1, + 0xec,0xe9,0xf7,0xdc,0xe4,0x1b,0xd1,0x8e,0x70,0x3f, + 0xe2,0xa8,0xbc,0x6b,0x66,0xa7,0x58,0x2b,0xda,0x1f, + 0xdc,0xf5,0xcb,0x1e,0x53,0xe9,0x1d,0x71,0xeb,0xf4, + 0x5e,0x2f,0xef,0xcf,0x21,0x6d,0xd0,0x9f,0xb5,0xd6, + 0xbf,0xff,0x1d,0x00,0xd2,0xe9,0x7b,0x10,0x6b,0xe0, + 0x91,0xf7,0x00,0x00,0x00,0x00,0x49,0x45,0x4e,0x44, + 0xae,0x42,0x60,0x82 +}; diff --git a/data/converted/slider_knob_svg.cpp b/data/converted/slider_knob_svg.cpp new file mode 100644 index 000000000..ec7122501 --- /dev/null +++ b/data/converted/slider_knob_svg.cpp @@ -0,0 +1,70 @@ +//this file was auto-generated from "slider_knob.svg" by res2h + +#include "../Resources.h" + +const size_t slider_knob_svg_size = 627; +const unsigned char slider_knob_svg_data[627] = { + 0x3c,0x3f,0x78,0x6d,0x6c,0x20,0x76,0x65,0x72,0x73, + 0x69,0x6f,0x6e,0x3d,0x22,0x31,0x2e,0x30,0x22,0x20, + 0x65,0x6e,0x63,0x6f,0x64,0x69,0x6e,0x67,0x3d,0x22, + 0x75,0x74,0x66,0x2d,0x38,0x22,0x3f,0x3e,0x0d,0x0a, + 0x3c,0x21,0x2d,0x2d,0x20,0x47,0x65,0x6e,0x65,0x72, + 0x61,0x74,0x6f,0x72,0x3a,0x20,0x41,0x64,0x6f,0x62, + 0x65,0x20,0x49,0x6c,0x6c,0x75,0x73,0x74,0x72,0x61, + 0x74,0x6f,0x72,0x20,0x31,0x36,0x2e,0x30,0x2e,0x33, + 0x2c,0x20,0x53,0x56,0x47,0x20,0x45,0x78,0x70,0x6f, + 0x72,0x74,0x20,0x50,0x6c,0x75,0x67,0x2d,0x49,0x6e, + 0x20,0x2e,0x20,0x53,0x56,0x47,0x20,0x56,0x65,0x72, + 0x73,0x69,0x6f,0x6e,0x3a,0x20,0x36,0x2e,0x30,0x30, + 0x20,0x42,0x75,0x69,0x6c,0x64,0x20,0x30,0x29,0x20, + 0x20,0x2d,0x2d,0x3e,0x0d,0x0a,0x3c,0x21,0x44,0x4f, + 0x43,0x54,0x59,0x50,0x45,0x20,0x73,0x76,0x67,0x20, + 0x50,0x55,0x42,0x4c,0x49,0x43,0x20,0x22,0x2d,0x2f, + 0x2f,0x57,0x33,0x43,0x2f,0x2f,0x44,0x54,0x44,0x20, + 0x53,0x56,0x47,0x20,0x31,0x2e,0x31,0x2f,0x2f,0x45, + 0x4e,0x22,0x20,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f, + 0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72, + 0x67,0x2f,0x47,0x72,0x61,0x70,0x68,0x69,0x63,0x73, + 0x2f,0x53,0x56,0x47,0x2f,0x31,0x2e,0x31,0x2f,0x44, + 0x54,0x44,0x2f,0x73,0x76,0x67,0x31,0x31,0x2e,0x64, + 0x74,0x64,0x22,0x3e,0x0d,0x0a,0x3c,0x73,0x76,0x67, + 0x20,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x3d,0x22, + 0x31,0x2e,0x31,0x22,0x20,0x69,0x64,0x3d,0x22,0x45, + 0x62,0x65,0x6e,0x65,0x5f,0x31,0x22,0x20,0x78,0x6d, + 0x6c,0x6e,0x73,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a, + 0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f, + 0x72,0x67,0x2f,0x32,0x30,0x30,0x30,0x2f,0x73,0x76, + 0x67,0x22,0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3a,0x78, + 0x6c,0x69,0x6e,0x6b,0x3d,0x22,0x68,0x74,0x74,0x70, + 0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e, + 0x6f,0x72,0x67,0x2f,0x31,0x39,0x39,0x39,0x2f,0x78, + 0x6c,0x69,0x6e,0x6b,0x22,0x20,0x78,0x3d,0x22,0x30, + 0x70,0x78,0x22,0x20,0x79,0x3d,0x22,0x30,0x70,0x78, + 0x22,0x0d,0x0a,0x09,0x20,0x77,0x69,0x64,0x74,0x68, + 0x3d,0x22,0x31,0x36,0x70,0x78,0x22,0x20,0x68,0x65, + 0x69,0x67,0x68,0x74,0x3d,0x22,0x31,0x36,0x70,0x78, + 0x22,0x20,0x76,0x69,0x65,0x77,0x42,0x6f,0x78,0x3d, + 0x22,0x30,0x20,0x30,0x20,0x31,0x36,0x20,0x31,0x36, + 0x22,0x20,0x65,0x6e,0x61,0x62,0x6c,0x65,0x2d,0x62, + 0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3d, + 0x22,0x6e,0x65,0x77,0x20,0x30,0x20,0x30,0x20,0x31, + 0x36,0x20,0x31,0x36,0x22,0x20,0x78,0x6d,0x6c,0x3a, + 0x73,0x70,0x61,0x63,0x65,0x3d,0x22,0x70,0x72,0x65, + 0x73,0x65,0x72,0x76,0x65,0x22,0x3e,0x0d,0x0a,0x3c, + 0x70,0x61,0x74,0x68,0x20,0x66,0x69,0x6c,0x6c,0x2d, + 0x72,0x75,0x6c,0x65,0x3d,0x22,0x65,0x76,0x65,0x6e, + 0x6f,0x64,0x64,0x22,0x20,0x63,0x6c,0x69,0x70,0x2d, + 0x72,0x75,0x6c,0x65,0x3d,0x22,0x65,0x76,0x65,0x6e, + 0x6f,0x64,0x64,0x22,0x20,0x66,0x69,0x6c,0x6c,0x3d, + 0x22,0x23,0x37,0x37,0x37,0x37,0x37,0x37,0x22,0x20, + 0x64,0x3d,0x22,0x4d,0x38,0x2c,0x30,0x63,0x34,0x2e, + 0x34,0x31,0x38,0x2c,0x30,0x2c,0x38,0x2c,0x33,0x2e, + 0x35,0x38,0x32,0x2c,0x38,0x2c,0x38,0x63,0x30,0x2c, + 0x34,0x2e,0x34,0x31,0x38,0x2d,0x33,0x2e,0x35,0x38, + 0x32,0x2c,0x38,0x2d,0x38,0x2c,0x38,0x73,0x2d,0x38, + 0x2d,0x33,0x2e,0x35,0x38,0x32,0x2d,0x38,0x2d,0x38, + 0x0d,0x0a,0x09,0x43,0x30,0x2c,0x33,0x2e,0x35,0x38, + 0x32,0x2c,0x33,0x2e,0x35,0x38,0x33,0x2c,0x30,0x2c, + 0x38,0x2c,0x30,0x7a,0x22,0x2f,0x3e,0x0d,0x0a,0x3c, + 0x2f,0x73,0x76,0x67,0x3e,0x0d,0x0a +}; diff --git a/data/converted/splash_svg.cpp b/data/converted/splash_svg.cpp new file mode 100644 index 000000000..2f945f177 --- /dev/null +++ b/data/converted/splash_svg.cpp @@ -0,0 +1,1801 @@ +//this file was auto-generated from "splash.svg" by res2h + +#include "../Resources.h" + +const size_t splash_svg_size = 17935; +const unsigned char splash_svg_data[17935] = { + 0x3c,0x3f,0x78,0x6d,0x6c,0x20,0x76,0x65,0x72,0x73, + 0x69,0x6f,0x6e,0x3d,0x22,0x31,0x2e,0x30,0x22,0x20, + 0x65,0x6e,0x63,0x6f,0x64,0x69,0x6e,0x67,0x3d,0x22, + 0x75,0x74,0x66,0x2d,0x38,0x22,0x3f,0x3e,0x0d,0x0a, + 0x3c,0x21,0x2d,0x2d,0x20,0x47,0x65,0x6e,0x65,0x72, + 0x61,0x74,0x6f,0x72,0x3a,0x20,0x41,0x64,0x6f,0x62, + 0x65,0x20,0x49,0x6c,0x6c,0x75,0x73,0x74,0x72,0x61, + 0x74,0x6f,0x72,0x20,0x31,0x36,0x2e,0x30,0x2e,0x30, + 0x2c,0x20,0x53,0x56,0x47,0x20,0x45,0x78,0x70,0x6f, + 0x72,0x74,0x20,0x50,0x6c,0x75,0x67,0x2d,0x49,0x6e, + 0x20,0x2e,0x20,0x53,0x56,0x47,0x20,0x56,0x65,0x72, + 0x73,0x69,0x6f,0x6e,0x3a,0x20,0x36,0x2e,0x30,0x30, + 0x20,0x42,0x75,0x69,0x6c,0x64,0x20,0x30,0x29,0x20, + 0x20,0x2d,0x2d,0x3e,0x0d,0x0a,0x3c,0x21,0x44,0x4f, + 0x43,0x54,0x59,0x50,0x45,0x20,0x73,0x76,0x67,0x20, + 0x50,0x55,0x42,0x4c,0x49,0x43,0x20,0x22,0x2d,0x2f, + 0x2f,0x57,0x33,0x43,0x2f,0x2f,0x44,0x54,0x44,0x20, + 0x53,0x56,0x47,0x20,0x31,0x2e,0x31,0x2f,0x2f,0x45, + 0x4e,0x22,0x20,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f, + 0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72, + 0x67,0x2f,0x47,0x72,0x61,0x70,0x68,0x69,0x63,0x73, + 0x2f,0x53,0x56,0x47,0x2f,0x31,0x2e,0x31,0x2f,0x44, + 0x54,0x44,0x2f,0x73,0x76,0x67,0x31,0x31,0x2e,0x64, + 0x74,0x64,0x22,0x3e,0x0d,0x0a,0x3c,0x73,0x76,0x67, + 0x20,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x3d,0x22, + 0x31,0x2e,0x31,0x22,0x20,0x69,0x64,0x3d,0x22,0x45, + 0x62,0x65,0x6e,0x65,0x5f,0x31,0x22,0x20,0x78,0x6d, + 0x6c,0x6e,0x73,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a, + 0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f, + 0x72,0x67,0x2f,0x32,0x30,0x30,0x30,0x2f,0x73,0x76, + 0x67,0x22,0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3a,0x78, + 0x6c,0x69,0x6e,0x6b,0x3d,0x22,0x68,0x74,0x74,0x70, + 0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e, + 0x6f,0x72,0x67,0x2f,0x31,0x39,0x39,0x39,0x2f,0x78, + 0x6c,0x69,0x6e,0x6b,0x22,0x20,0x78,0x3d,0x22,0x30, + 0x70,0x78,0x22,0x20,0x79,0x3d,0x22,0x30,0x70,0x78, + 0x22,0x0d,0x0a,0x09,0x20,0x77,0x69,0x64,0x74,0x68, + 0x3d,0x22,0x31,0x32,0x38,0x30,0x70,0x78,0x22,0x20, + 0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x22,0x37,0x32, + 0x30,0x70,0x78,0x22,0x20,0x76,0x69,0x65,0x77,0x42, + 0x6f,0x78,0x3d,0x22,0x30,0x20,0x30,0x20,0x31,0x32, + 0x38,0x30,0x20,0x37,0x32,0x30,0x22,0x20,0x65,0x6e, + 0x61,0x62,0x6c,0x65,0x2d,0x62,0x61,0x63,0x6b,0x67, + 0x72,0x6f,0x75,0x6e,0x64,0x3d,0x22,0x6e,0x65,0x77, + 0x20,0x30,0x20,0x30,0x20,0x31,0x32,0x38,0x30,0x20, + 0x37,0x32,0x30,0x22,0x20,0x78,0x6d,0x6c,0x3a,0x73, + 0x70,0x61,0x63,0x65,0x3d,0x22,0x70,0x72,0x65,0x73, + 0x65,0x72,0x76,0x65,0x22,0x3e,0x0d,0x0a,0x3c,0x70, + 0x61,0x74,0x68,0x20,0x66,0x69,0x6c,0x6c,0x3d,0x22, + 0x23,0x43,0x39,0x30,0x30,0x31,0x32,0x22,0x20,0x64, + 0x3d,0x22,0x4d,0x34,0x33,0x31,0x2e,0x35,0x32,0x39, + 0x2c,0x34,0x34,0x32,0x2e,0x30,0x39,0x37,0x4c,0x34, + 0x33,0x31,0x2e,0x35,0x32,0x39,0x2c,0x34,0x34,0x32, + 0x2e,0x30,0x39,0x37,0x4c,0x34,0x33,0x31,0x2e,0x35, + 0x32,0x39,0x2c,0x34,0x34,0x32,0x2e,0x30,0x39,0x37, + 0x7a,0x22,0x2f,0x3e,0x0d,0x0a,0x3c,0x70,0x61,0x74, + 0x68,0x20,0x66,0x69,0x6c,0x6c,0x3d,0x22,0x23,0x43, + 0x39,0x30,0x30,0x31,0x32,0x22,0x20,0x64,0x3d,0x22, + 0x4d,0x34,0x33,0x31,0x2e,0x35,0x32,0x39,0x2c,0x33, + 0x35,0x39,0x2e,0x32,0x31,0x36,0x4c,0x34,0x33,0x31, + 0x2e,0x35,0x32,0x39,0x2c,0x33,0x35,0x39,0x2e,0x32, + 0x31,0x36,0x4c,0x34,0x33,0x31,0x2e,0x35,0x32,0x39, + 0x2c,0x33,0x35,0x39,0x2e,0x32,0x31,0x36,0x7a,0x22, + 0x2f,0x3e,0x0d,0x0a,0x3c,0x70,0x61,0x74,0x68,0x20, + 0x66,0x69,0x6c,0x6c,0x3d,0x22,0x23,0x43,0x39,0x30, + 0x30,0x31,0x32,0x22,0x20,0x64,0x3d,0x22,0x4d,0x34, + 0x33,0x31,0x2e,0x35,0x32,0x39,0x2c,0x32,0x37,0x36, + 0x2e,0x33,0x30,0x36,0x4c,0x34,0x33,0x31,0x2e,0x35, + 0x32,0x39,0x2c,0x32,0x37,0x36,0x2e,0x33,0x30,0x36, + 0x4c,0x34,0x33,0x31,0x2e,0x35,0x32,0x39,0x2c,0x32, + 0x37,0x36,0x2e,0x33,0x30,0x36,0x7a,0x22,0x2f,0x3e, + 0x0d,0x0a,0x3c,0x70,0x61,0x74,0x68,0x20,0x66,0x69, + 0x6c,0x6c,0x3d,0x22,0x23,0x43,0x39,0x30,0x30,0x31, + 0x32,0x22,0x20,0x64,0x3d,0x22,0x4d,0x34,0x33,0x31, + 0x2e,0x35,0x32,0x39,0x2c,0x33,0x31,0x37,0x2e,0x37, + 0x35,0x33,0x4c,0x34,0x33,0x31,0x2e,0x35,0x32,0x39, + 0x2c,0x33,0x31,0x37,0x2e,0x37,0x35,0x33,0x4c,0x34, + 0x33,0x31,0x2e,0x35,0x32,0x39,0x2c,0x33,0x31,0x37, + 0x2e,0x37,0x35,0x33,0x7a,0x22,0x2f,0x3e,0x0d,0x0a, + 0x3c,0x70,0x61,0x74,0x68,0x20,0x66,0x69,0x6c,0x6c, + 0x3d,0x22,0x23,0x43,0x39,0x30,0x30,0x31,0x32,0x22, + 0x20,0x64,0x3d,0x22,0x4d,0x34,0x33,0x31,0x2e,0x35, + 0x32,0x39,0x2c,0x34,0x38,0x33,0x2e,0x35,0x34,0x34, + 0x4c,0x34,0x33,0x31,0x2e,0x35,0x32,0x39,0x2c,0x34, + 0x38,0x33,0x2e,0x35,0x34,0x34,0x4c,0x34,0x33,0x31, + 0x2e,0x35,0x32,0x39,0x2c,0x34,0x38,0x33,0x2e,0x35, + 0x34,0x34,0x7a,0x22,0x2f,0x3e,0x0d,0x0a,0x3c,0x70, + 0x61,0x74,0x68,0x20,0x66,0x69,0x6c,0x6c,0x3d,0x22, + 0x23,0x43,0x39,0x30,0x30,0x31,0x32,0x22,0x20,0x64, + 0x3d,0x22,0x4d,0x34,0x33,0x31,0x2e,0x35,0x32,0x39, + 0x2c,0x34,0x30,0x30,0x2e,0x36,0x34,0x32,0x4c,0x34, + 0x33,0x31,0x2e,0x35,0x32,0x39,0x2c,0x34,0x30,0x30, + 0x2e,0x36,0x34,0x32,0x4c,0x34,0x33,0x31,0x2e,0x35, + 0x32,0x39,0x2c,0x34,0x30,0x30,0x2e,0x36,0x34,0x32, + 0x7a,0x22,0x2f,0x3e,0x0d,0x0a,0x3c,0x70,0x61,0x74, + 0x68,0x20,0x66,0x69,0x6c,0x6c,0x3d,0x22,0x23,0x43, + 0x39,0x30,0x30,0x31,0x32,0x22,0x20,0x64,0x3d,0x22, + 0x4d,0x34,0x33,0x31,0x2e,0x35,0x32,0x39,0x2c,0x32, + 0x33,0x34,0x2e,0x38,0x34,0x32,0x4c,0x34,0x33,0x31, + 0x2e,0x35,0x32,0x39,0x2c,0x32,0x33,0x34,0x2e,0x38, + 0x34,0x32,0x4c,0x34,0x33,0x31,0x2e,0x35,0x32,0x39, + 0x2c,0x32,0x33,0x34,0x2e,0x38,0x34,0x32,0x7a,0x22, + 0x2f,0x3e,0x0d,0x0a,0x3c,0x70,0x61,0x74,0x68,0x20, + 0x66,0x69,0x6c,0x6c,0x3d,0x22,0x23,0x30,0x30,0x34, + 0x45,0x37,0x33,0x22,0x20,0x64,0x3d,0x22,0x4d,0x34, + 0x33,0x31,0x2e,0x35,0x32,0x39,0x2c,0x32,0x34,0x35, + 0x2e,0x39,0x35,0x31,0x63,0x30,0x2d,0x36,0x2e,0x31, + 0x31,0x2d,0x34,0x2e,0x39,0x39,0x39,0x2d,0x31,0x31, + 0x2e,0x31,0x30,0x38,0x2d,0x31,0x31,0x2e,0x31,0x30, + 0x35,0x2d,0x31,0x31,0x2e,0x31,0x30,0x38,0x48,0x36, + 0x39,0x2e,0x35,0x36,0x33,0x63,0x2d,0x36,0x2e,0x31, + 0x31,0x32,0x2c,0x30,0x2d,0x31,0x34,0x2e,0x36,0x34, + 0x34,0x2c,0x33,0x2e,0x35,0x33,0x34,0x2d,0x31,0x38, + 0x2e,0x39,0x36,0x33,0x2c,0x37,0x2e,0x38,0x35,0x35, + 0x0d,0x0a,0x09,0x6c,0x2d,0x32,0x35,0x2e,0x37,0x34, + 0x35,0x2c,0x32,0x35,0x2e,0x37,0x34,0x35,0x43,0x32, + 0x30,0x2e,0x35,0x33,0x33,0x2c,0x32,0x37,0x32,0x2e, + 0x37,0x36,0x34,0x2c,0x31,0x37,0x2c,0x32,0x38,0x31, + 0x2e,0x32,0x39,0x36,0x2c,0x31,0x37,0x2c,0x32,0x38, + 0x37,0x2e,0x34,0x30,0x36,0x76,0x32,0x32,0x36,0x2e, + 0x34,0x36,0x38,0x63,0x30,0x2c,0x36,0x2e,0x31,0x31, + 0x31,0x2c,0x34,0x2e,0x39,0x39,0x39,0x2c,0x31,0x31, + 0x2e,0x31,0x30,0x39,0x2c,0x31,0x31,0x2e,0x31,0x30, + 0x36,0x2c,0x31,0x31,0x2e,0x31,0x30,0x39,0x68,0x33, + 0x35,0x30,0x2e,0x38,0x36,0x0d,0x0a,0x09,0x63,0x36, + 0x2e,0x31,0x30,0x37,0x2c,0x30,0x2c,0x31,0x34,0x2e, + 0x36,0x34,0x33,0x2d,0x33,0x2e,0x35,0x33,0x35,0x2c, + 0x31,0x38,0x2e,0x39,0x36,0x33,0x2d,0x37,0x2e,0x38, + 0x35,0x34,0x6c,0x32,0x35,0x2e,0x37,0x34,0x31,0x2d, + 0x32,0x35,0x2e,0x37,0x33,0x36,0x63,0x34,0x2e,0x33, + 0x32,0x2d,0x34,0x2e,0x33,0x31,0x37,0x2c,0x37,0x2e, + 0x38,0x35,0x34,0x2d,0x31,0x32,0x2e,0x38,0x35,0x33, + 0x2c,0x37,0x2e,0x38,0x35,0x34,0x2d,0x31,0x38,0x2e, + 0x39,0x36,0x35,0x4c,0x34,0x33,0x31,0x2e,0x35,0x32, + 0x39,0x2c,0x32,0x34,0x35,0x2e,0x39,0x35,0x31,0x7a, + 0x22,0x2f,0x3e,0x0d,0x0a,0x3c,0x70,0x61,0x74,0x68, + 0x20,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3d,0x22, + 0x30,0x2e,0x32,0x22,0x20,0x65,0x6e,0x61,0x62,0x6c, + 0x65,0x2d,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75, + 0x6e,0x64,0x3d,0x22,0x6e,0x65,0x77,0x20,0x20,0x20, + 0x20,0x22,0x20,0x64,0x3d,0x22,0x4d,0x33,0x38,0x32, + 0x2e,0x32,0x32,0x2c,0x33,0x39,0x32,0x2e,0x37,0x38, + 0x39,0x6c,0x2d,0x32,0x35,0x2e,0x37,0x33,0x2d,0x32, + 0x35,0x2e,0x37,0x32,0x39,0x63,0x2d,0x34,0x2e,0x33, + 0x31,0x39,0x2d,0x34,0x2e,0x33,0x31,0x38,0x2d,0x31, + 0x32,0x2e,0x38,0x35,0x34,0x2d,0x37,0x2e,0x38,0x35, + 0x34,0x2d,0x31,0x38,0x2e,0x39,0x36,0x33,0x2d,0x37, + 0x2e,0x38,0x35,0x32,0x48,0x33,0x31,0x38,0x2e,0x32, + 0x38,0x0d,0x0a,0x09,0x63,0x2d,0x36,0x2e,0x31,0x31, + 0x32,0x2c,0x30,0x2e,0x30,0x30,0x31,0x2d,0x31,0x31, + 0x2e,0x31,0x31,0x2c,0x30,0x2e,0x30,0x30,0x31,0x2d, + 0x31,0x31,0x2e,0x31,0x31,0x2c,0x30,0x2e,0x30,0x30, + 0x31,0x73,0x33,0x2e,0x35,0x33,0x32,0x2d,0x33,0x2e, + 0x35,0x33,0x34,0x2c,0x37,0x2e,0x38,0x35,0x34,0x2d, + 0x37,0x2e,0x38,0x35,0x35,0x6c,0x36,0x37,0x2e,0x31, + 0x39,0x37,0x2d,0x36,0x37,0x2e,0x31,0x39,0x33,0x63, + 0x34,0x2e,0x33,0x32,0x2d,0x34,0x2e,0x33,0x32,0x31, + 0x2c,0x32,0x2e,0x38,0x35,0x34,0x2d,0x37,0x2e,0x38, + 0x35,0x35,0x2d,0x33,0x2e,0x32,0x35,0x33,0x2d,0x37, + 0x2e,0x38,0x35,0x35,0x48,0x32,0x37,0x36,0x2e,0x38, + 0x33,0x32,0x0d,0x0a,0x09,0x63,0x2d,0x36,0x2e,0x31, + 0x31,0x31,0x2c,0x30,0x2d,0x31,0x34,0x2e,0x36,0x34, + 0x33,0x2c,0x33,0x2e,0x35,0x33,0x34,0x2d,0x31,0x38, + 0x2e,0x39,0x36,0x33,0x2c,0x37,0x2e,0x38,0x35,0x35, + 0x4c,0x32,0x35,0x2e,0x31,0x34,0x32,0x2c,0x35,0x31, + 0x36,0x2e,0x38,0x36,0x63,0x2d,0x31,0x2e,0x38,0x32, + 0x35,0x2c,0x31,0x2e,0x38,0x32,0x32,0x2d,0x33,0x2e, + 0x35,0x31,0x37,0x2c,0x33,0x2e,0x35,0x31,0x34,0x2d, + 0x34,0x2e,0x38,0x37,0x31,0x2c,0x34,0x2e,0x38,0x36, + 0x37,0x63,0x32,0x2e,0x30,0x31,0x32,0x2c,0x32,0x2e, + 0x30,0x31,0x2c,0x34,0x2e,0x37,0x38,0x36,0x2c,0x33, + 0x2e,0x32,0x35,0x38,0x2c,0x37,0x2e,0x38,0x33,0x36, + 0x2c,0x33,0x2e,0x32,0x35,0x38,0x0d,0x0a,0x09,0x63, + 0x30,0x2e,0x30,0x30,0x35,0x2c,0x30,0x2c,0x30,0x2e, + 0x30,0x31,0x2c,0x30,0x2c,0x30,0x2e,0x30,0x31,0x36, + 0x2c,0x30,0x68,0x39,0x39,0x2e,0x39,0x35,0x33,0x68, + 0x31,0x36,0x37,0x2e,0x39,0x38,0x38,0x63,0x36,0x2e, + 0x31,0x31,0x31,0x2c,0x30,0x2c,0x31,0x31,0x2e,0x31, + 0x32,0x32,0x2d,0x30,0x2e,0x30,0x31,0x32,0x2c,0x31, + 0x31,0x2e,0x31,0x33,0x33,0x2d,0x30,0x2e,0x30,0x32, + 0x33,0x63,0x30,0x2e,0x30,0x31,0x35,0x2d,0x30,0x2e, + 0x30,0x31,0x36,0x2c,0x33,0x2e,0x35,0x35,0x39,0x2d, + 0x33,0x2e,0x35,0x36,0x32,0x2c,0x37,0x2e,0x38,0x38, + 0x2d,0x37,0x2e,0x38,0x38,0x6c,0x36,0x37,0x2e,0x31, + 0x34,0x34,0x2d,0x36,0x37,0x2e,0x31,0x33,0x32,0x0d, + 0x0a,0x09,0x63,0x34,0x2e,0x33,0x32,0x2d,0x34,0x2e, + 0x33,0x31,0x36,0x2c,0x37,0x2e,0x38,0x35,0x33,0x2d, + 0x31,0x32,0x2e,0x38,0x35,0x32,0x2c,0x37,0x2e,0x38, + 0x35,0x33,0x2d,0x31,0x38,0x2e,0x39,0x36,0x33,0x76, + 0x2d,0x31,0x39,0x2e,0x32,0x33,0x35,0x43,0x33,0x39, + 0x30,0x2e,0x30,0x37,0x33,0x2c,0x34,0x30,0x35,0x2e, + 0x36,0x34,0x2c,0x33,0x38,0x36,0x2e,0x35,0x34,0x2c, + 0x33,0x39,0x37,0x2e,0x31,0x30,0x34,0x2c,0x33,0x38, + 0x32,0x2e,0x32,0x32,0x2c,0x33,0x39,0x32,0x2e,0x37, + 0x38,0x39,0x7a,0x22,0x2f,0x3e,0x0d,0x0a,0x3c,0x70, + 0x61,0x74,0x68,0x20,0x66,0x69,0x6c,0x6c,0x3d,0x22, + 0x23,0x46,0x46,0x46,0x46,0x46,0x46,0x22,0x20,0x64, + 0x3d,0x22,0x4d,0x32,0x37,0x36,0x2e,0x38,0x32,0x34, + 0x2c,0x34,0x30,0x30,0x2e,0x36,0x34,0x39,0x63,0x2d, + 0x36,0x2e,0x31,0x30,0x38,0x2c,0x30,0x2d,0x31,0x34, + 0x2e,0x36,0x34,0x33,0x2d,0x33,0x2e,0x35,0x33,0x36, + 0x2d,0x31,0x38,0x2e,0x39,0x36,0x2d,0x37,0x2e,0x38, + 0x35,0x37,0x6c,0x2d,0x32,0x35,0x2e,0x37,0x31,0x2d, + 0x32,0x35,0x2e,0x37,0x31,0x38,0x63,0x2d,0x34,0x2e, + 0x33,0x32,0x31,0x2d,0x34,0x2e,0x33,0x32,0x31,0x2d, + 0x37,0x2e,0x38,0x35,0x37,0x2d,0x31,0x32,0x2e,0x38, + 0x35,0x35,0x2d,0x37,0x2e,0x38,0x36,0x35,0x2d,0x31, + 0x38,0x2e,0x39,0x36,0x36,0x0d,0x0a,0x09,0x6c,0x2d, + 0x30,0x2e,0x30,0x31,0x32,0x2d,0x31,0x39,0x2e,0x32, + 0x34,0x36,0x63,0x2d,0x30,0x2e,0x30,0x30,0x38,0x2d, + 0x36,0x2e,0x31,0x31,0x2c,0x33,0x2e,0x35,0x32,0x35, + 0x2d,0x31,0x34,0x2e,0x36,0x34,0x33,0x2c,0x37,0x2e, + 0x38,0x34,0x36,0x2d,0x31,0x38,0x2e,0x39,0x36,0x34, + 0x6c,0x32,0x35,0x2e,0x37,0x34,0x31,0x2d,0x32,0x35, + 0x2e,0x37,0x33,0x37,0x63,0x34,0x2e,0x33,0x32,0x31, + 0x2d,0x34,0x2e,0x33,0x32,0x31,0x2c,0x31,0x32,0x2e, + 0x38,0x35,0x32,0x2d,0x37,0x2e,0x38,0x35,0x35,0x2c, + 0x31,0x38,0x2e,0x39,0x36,0x33,0x2d,0x37,0x2e,0x38, + 0x35,0x35,0x68,0x31,0x30,0x32,0x2e,0x31,0x34,0x0d, + 0x0a,0x09,0x63,0x36,0x2e,0x31,0x30,0x37,0x2c,0x30, + 0x2c,0x37,0x2e,0x35,0x37,0x33,0x2c,0x33,0x2e,0x35, + 0x33,0x34,0x2c,0x33,0x2e,0x32,0x35,0x33,0x2c,0x37, + 0x2e,0x38,0x35,0x35,0x6c,0x2d,0x32,0x35,0x2e,0x37, + 0x34,0x31,0x2c,0x32,0x35,0x2e,0x37,0x33,0x37,0x63, + 0x2d,0x34,0x2e,0x33,0x32,0x31,0x2c,0x34,0x2e,0x33, + 0x32,0x31,0x2d,0x31,0x32,0x2e,0x38,0x35,0x32,0x2c, + 0x37,0x2e,0x38,0x35,0x35,0x2d,0x31,0x38,0x2e,0x39, + 0x36,0x33,0x2c,0x37,0x2e,0x38,0x35,0x35,0x68,0x2d, + 0x36,0x30,0x2e,0x36,0x38,0x38,0x0d,0x0a,0x09,0x63, + 0x2d,0x36,0x2e,0x31,0x31,0x32,0x2c,0x30,0x2d,0x31, + 0x31,0x2e,0x31,0x31,0x2c,0x34,0x2e,0x39,0x39,0x38, + 0x2d,0x31,0x31,0x2e,0x31,0x31,0x2c,0x31,0x31,0x2e, + 0x31,0x30,0x38,0x76,0x31,0x39,0x2e,0x32,0x34,0x36, + 0x63,0x30,0x2c,0x36,0x2e,0x31,0x31,0x2c,0x34,0x2e, + 0x39,0x39,0x38,0x2c,0x31,0x31,0x2e,0x31,0x30,0x38, + 0x2c,0x31,0x31,0x2e,0x31,0x30,0x36,0x2c,0x31,0x31, + 0x2e,0x31,0x30,0x36,0x6c,0x36,0x30,0x2e,0x37,0x30, + 0x32,0x2d,0x30,0x2e,0x30,0x30,0x37,0x63,0x36,0x2e, + 0x31,0x30,0x38,0x2d,0x30,0x2e,0x30,0x30,0x32,0x2c, + 0x31,0x34,0x2e,0x36,0x34,0x34,0x2c,0x33,0x2e,0x35, + 0x33,0x33,0x2c,0x31,0x38,0x2e,0x39,0x36,0x33,0x2c, + 0x37,0x2e,0x38,0x35,0x32,0x0d,0x0a,0x09,0x6c,0x32, + 0x35,0x2e,0x37,0x33,0x2c,0x32,0x35,0x2e,0x37,0x32, + 0x39,0x63,0x34,0x2e,0x33,0x32,0x2c,0x34,0x2e,0x33, + 0x31,0x35,0x2c,0x37,0x2e,0x38,0x35,0x33,0x2c,0x31, + 0x32,0x2e,0x38,0x35,0x31,0x2c,0x37,0x2e,0x38,0x35, + 0x33,0x2c,0x31,0x38,0x2e,0x39,0x36,0x33,0x76,0x31, + 0x39,0x2e,0x32,0x33,0x35,0x63,0x30,0x2c,0x36,0x2e, + 0x31,0x31,0x2d,0x33,0x2e,0x35,0x33,0x32,0x2c,0x31, + 0x34,0x2e,0x36,0x34,0x36,0x2d,0x37,0x2e,0x38,0x35, + 0x33,0x2c,0x31,0x38,0x2e,0x39,0x36,0x33,0x6c,0x2d, + 0x32,0x35,0x2e,0x37,0x34,0x31,0x2c,0x32,0x35,0x2e, + 0x37,0x34,0x0d,0x0a,0x09,0x63,0x2d,0x34,0x2e,0x33, + 0x32,0x31,0x2c,0x34,0x2e,0x33,0x31,0x37,0x2d,0x31, + 0x32,0x2e,0x38,0x35,0x32,0x2c,0x37,0x2e,0x38,0x35, + 0x34,0x2d,0x31,0x38,0x2e,0x39,0x36,0x33,0x2c,0x37, + 0x2e,0x38,0x35,0x34,0x68,0x2d,0x36,0x30,0x2e,0x36, + 0x38,0x38,0x63,0x2d,0x36,0x2e,0x31,0x31,0x32,0x2c, + 0x30,0x2d,0x31,0x34,0x2e,0x36,0x34,0x33,0x2d,0x33, + 0x2e,0x35,0x33,0x36,0x2d,0x31,0x38,0x2e,0x39,0x36, + 0x33,0x2d,0x37,0x2e,0x38,0x35,0x34,0x6c,0x2d,0x32, + 0x35,0x2e,0x37,0x34,0x31,0x2d,0x32,0x35,0x2e,0x37, + 0x34,0x0d,0x0a,0x09,0x63,0x2d,0x34,0x2e,0x33,0x32, + 0x2d,0x34,0x2e,0x33,0x31,0x36,0x2d,0x32,0x2e,0x38, + 0x35,0x38,0x2d,0x37,0x2e,0x38,0x35,0x34,0x2c,0x33, + 0x2e,0x32,0x35,0x33,0x2d,0x37,0x2e,0x38,0x35,0x34, + 0x68,0x31,0x30,0x32,0x2e,0x31,0x34,0x63,0x36,0x2e, + 0x31,0x31,0x32,0x2c,0x30,0x2c,0x31,0x31,0x2e,0x31, + 0x31,0x2d,0x34,0x2e,0x39,0x39,0x38,0x2c,0x31,0x31, + 0x2e,0x31,0x31,0x2d,0x31,0x31,0x2e,0x31,0x30,0x39, + 0x56,0x34,0x31,0x31,0x2e,0x37,0x35,0x63,0x30,0x2d, + 0x36,0x2e,0x31,0x31,0x32,0x2c,0x30,0x2d,0x31,0x31, + 0x2e,0x31,0x31,0x2c,0x30,0x2e,0x30,0x30,0x33,0x2d, + 0x31,0x31,0x2e,0x31,0x31,0x0d,0x0a,0x09,0x63,0x30, + 0x2e,0x30,0x30,0x34,0x2c,0x30,0x2d,0x34,0x2e,0x39, + 0x39,0x34,0x2c,0x30,0x2d,0x31,0x31,0x2e,0x31,0x30, + 0x33,0x2c,0x30,0x4c,0x32,0x37,0x36,0x2e,0x38,0x32, + 0x34,0x2c,0x34,0x30,0x30,0x2e,0x36,0x34,0x39,0x7a, + 0x22,0x2f,0x3e,0x0d,0x0a,0x3c,0x67,0x20,0x6f,0x70, + 0x61,0x63,0x69,0x74,0x79,0x3d,0x22,0x30,0x2e,0x32, + 0x22,0x3e,0x0d,0x0a,0x09,0x3c,0x70,0x61,0x74,0x68, + 0x20,0x64,0x3d,0x22,0x4d,0x31,0x37,0x2e,0x30,0x30, + 0x38,0x2c,0x33,0x37,0x30,0x2e,0x38,0x37,0x37,0x63, + 0x30,0x2d,0x36,0x2e,0x31,0x31,0x2c,0x30,0x2d,0x31, + 0x31,0x2e,0x32,0x33,0x38,0x2c,0x30,0x2d,0x31,0x31, + 0x2e,0x33,0x39,0x33,0x63,0x30,0x2d,0x30,0x2e,0x31, + 0x35,0x35,0x2c,0x33,0x2e,0x35,0x33,0x32,0x2d,0x33, + 0x2e,0x38,0x31,0x38,0x2c,0x37,0x2e,0x38,0x35,0x34, + 0x2d,0x38,0x2e,0x31,0x33,0x38,0x6c,0x36,0x37,0x2e, + 0x31,0x38,0x35,0x2d,0x36,0x37,0x2e,0x31,0x38,0x36, + 0x0d,0x0a,0x09,0x09,0x63,0x34,0x2e,0x33,0x32,0x31, + 0x2d,0x34,0x2e,0x33,0x32,0x31,0x2c,0x31,0x32,0x2e, + 0x38,0x35,0x35,0x2d,0x37,0x2e,0x38,0x35,0x35,0x2c, + 0x31,0x38,0x2e,0x39,0x36,0x33,0x2d,0x37,0x2e,0x38, + 0x35,0x35,0x68,0x31,0x30,0x32,0x2e,0x31,0x35,0x63, + 0x36,0x2e,0x31,0x30,0x38,0x2c,0x30,0x2c,0x37,0x2e, + 0x35,0x37,0x34,0x2c,0x33,0x2e,0x35,0x33,0x34,0x2c, + 0x33,0x2e,0x32,0x35,0x33,0x2c,0x37,0x2e,0x38,0x35, + 0x35,0x6c,0x2d,0x36,0x37,0x2e,0x31,0x39,0x37,0x2c, + 0x36,0x37,0x2e,0x31,0x38,0x32,0x0d,0x0a,0x09,0x09, + 0x63,0x2d,0x34,0x2e,0x33,0x32,0x2c,0x34,0x2e,0x33, + 0x32,0x31,0x2d,0x37,0x2e,0x38,0x35,0x33,0x2c,0x37, + 0x2e,0x38,0x35,0x35,0x2d,0x37,0x2e,0x38,0x35,0x33, + 0x2c,0x37,0x2e,0x38,0x35,0x35,0x73,0x34,0x2e,0x39, + 0x39,0x38,0x2c,0x30,0x2e,0x30,0x30,0x32,0x2c,0x31, + 0x31,0x2e,0x31,0x31,0x2c,0x30,0x2e,0x30,0x30,0x36, + 0x6c,0x31,0x39,0x2e,0x32,0x32,0x38,0x2c,0x30,0x2e, + 0x30,0x30,0x37,0x63,0x36,0x2e,0x31,0x30,0x38,0x2c, + 0x30,0x2e,0x30,0x30,0x34,0x2c,0x31,0x30,0x2e,0x37, + 0x35,0x2c,0x34,0x2e,0x39,0x39,0x33,0x2c,0x31,0x30, + 0x2e,0x33,0x31,0x38,0x2c,0x31,0x31,0x2e,0x30,0x38, + 0x36,0x6c,0x2d,0x31,0x2e,0x31,0x31,0x34,0x2c,0x31, + 0x35,0x2e,0x35,0x39,0x32,0x0d,0x0a,0x09,0x09,0x63, + 0x2d,0x30,0x2e,0x34,0x33,0x33,0x2c,0x36,0x2e,0x30, + 0x39,0x32,0x2d,0x31,0x2e,0x37,0x30,0x37,0x2c,0x31, + 0x31,0x2e,0x39,0x39,0x38,0x2d,0x32,0x2e,0x38,0x33, + 0x33,0x2c,0x31,0x33,0x2e,0x31,0x32,0x33,0x63,0x2d, + 0x31,0x2e,0x31,0x32,0x35,0x2c,0x31,0x2e,0x31,0x32, + 0x35,0x2d,0x35,0x2e,0x35,0x37,0x36,0x2c,0x35,0x2e, + 0x35,0x38,0x2d,0x39,0x2e,0x38,0x39,0x36,0x2c,0x39, + 0x2e,0x38,0x39,0x36,0x6c,0x2d,0x32,0x35,0x2e,0x32, + 0x30,0x31,0x2c,0x32,0x35,0x2e,0x32,0x30,0x31,0x63, + 0x2d,0x34,0x2e,0x33,0x32,0x2c,0x34,0x2e,0x33,0x31, + 0x36,0x2d,0x37,0x2e,0x38,0x38,0x35,0x2c,0x37,0x2e, + 0x38,0x38,0x35,0x2d,0x37,0x2e,0x39,0x32,0x32,0x2c, + 0x37,0x2e,0x39,0x31,0x38,0x0d,0x0a,0x09,0x09,0x63, + 0x2d,0x30,0x2e,0x30,0x33,0x34,0x2c,0x30,0x2e,0x30, + 0x33,0x35,0x2c,0x34,0x2e,0x39,0x33,0x33,0x2c,0x30, + 0x2e,0x30,0x36,0x35,0x2c,0x31,0x31,0x2e,0x30,0x34, + 0x31,0x2c,0x30,0x2e,0x30,0x36,0x32,0x68,0x31,0x37, + 0x2e,0x39,0x37,0x39,0x63,0x36,0x2e,0x31,0x30,0x38, + 0x2d,0x30,0x2e,0x30,0x30,0x34,0x2c,0x31,0x34,0x2e, + 0x37,0x38,0x34,0x2c,0x33,0x2e,0x33,0x37,0x39,0x2c, + 0x31,0x39,0x2e,0x32,0x38,0x31,0x2c,0x37,0x2e,0x35, + 0x31,0x38,0x6c,0x32,0x36,0x2e,0x38,0x33,0x36,0x2c, + 0x32,0x34,0x2e,0x36,0x39,0x35,0x0d,0x0a,0x09,0x09, + 0x63,0x34,0x2e,0x34,0x39,0x37,0x2c,0x34,0x2e,0x31, + 0x33,0x37,0x2c,0x38,0x2e,0x31,0x38,0x31,0x2c,0x37, + 0x2e,0x36,0x32,0x33,0x2c,0x38,0x2e,0x30,0x35,0x38, + 0x2c,0x37,0x2e,0x37,0x35,0x63,0x2d,0x30,0x2e,0x31, + 0x32,0x36,0x2c,0x30,0x2e,0x31,0x32,0x36,0x2d,0x33, + 0x2e,0x37,0x36,0x36,0x2c,0x33,0x2e,0x37,0x36,0x32, + 0x2d,0x38,0x2e,0x30,0x38,0x37,0x2c,0x38,0x2e,0x30, + 0x38,0x33,0x6c,0x2d,0x33,0x34,0x2e,0x38,0x32,0x37, + 0x2c,0x33,0x34,0x2e,0x38,0x34,0x39,0x6c,0x2d,0x31, + 0x34,0x37,0x2e,0x32,0x31,0x32,0x2c,0x30,0x2e,0x30, + 0x30,0x32,0x0d,0x0a,0x09,0x09,0x63,0x2d,0x36,0x2e, + 0x31,0x30,0x37,0x2c,0x30,0x2d,0x31,0x31,0x2e,0x31, + 0x30,0x35,0x2d,0x34,0x2e,0x39,0x39,0x38,0x2d,0x31, + 0x31,0x2e,0x31,0x30,0x35,0x2d,0x31,0x31,0x2e,0x31, + 0x31,0x4c,0x31,0x37,0x2e,0x30,0x30,0x38,0x2c,0x33, + 0x37,0x30,0x2e,0x38,0x37,0x37,0x7a,0x22,0x2f,0x3e, + 0x0d,0x0a,0x3c,0x2f,0x67,0x3e,0x0d,0x0a,0x3c,0x70, + 0x61,0x74,0x68,0x20,0x66,0x69,0x6c,0x6c,0x3d,0x22, + 0x23,0x46,0x46,0x46,0x46,0x46,0x46,0x22,0x20,0x64, + 0x3d,0x22,0x4d,0x31,0x31,0x31,0x2e,0x30,0x31,0x2c, + 0x34,0x34,0x32,0x2e,0x30,0x39,0x37,0x63,0x2d,0x36, + 0x2e,0x31,0x30,0x37,0x2c,0x30,0x2d,0x31,0x31,0x2e, + 0x31,0x30,0x35,0x2d,0x34,0x2e,0x39,0x39,0x38,0x2d, + 0x31,0x31,0x2e,0x31,0x30,0x35,0x2d,0x31,0x31,0x2e, + 0x31,0x30,0x39,0x76,0x2d,0x31,0x39,0x2e,0x32,0x33, + 0x35,0x63,0x30,0x2d,0x36,0x2e,0x31,0x31,0x32,0x2c, + 0x34,0x2e,0x39,0x39,0x38,0x2d,0x31,0x31,0x2e,0x31, + 0x31,0x2c,0x31,0x31,0x2e,0x31,0x30,0x35,0x2d,0x31, + 0x31,0x2e,0x31,0x31,0x68,0x36,0x30,0x2e,0x36,0x39, + 0x0d,0x0a,0x09,0x63,0x36,0x2e,0x31,0x30,0x38,0x2c, + 0x30,0x2c,0x31,0x31,0x2e,0x31,0x30,0x36,0x2d,0x34, + 0x2e,0x39,0x39,0x38,0x2c,0x31,0x31,0x2e,0x31,0x30, + 0x36,0x2d,0x31,0x31,0x2e,0x31,0x30,0x39,0x76,0x2d, + 0x31,0x39,0x2e,0x32,0x30,0x34,0x63,0x30,0x2d,0x36, + 0x2e,0x31,0x31,0x32,0x2d,0x34,0x2e,0x39,0x39,0x38, + 0x2d,0x31,0x31,0x2e,0x31,0x31,0x2d,0x31,0x31,0x2e, + 0x31,0x30,0x36,0x2d,0x31,0x31,0x2e,0x31,0x31,0x68, + 0x2d,0x36,0x30,0x2e,0x36,0x39,0x63,0x2d,0x36,0x2e, + 0x31,0x30,0x37,0x2c,0x30,0x2d,0x31,0x31,0x2e,0x31, + 0x30,0x35,0x2d,0x34,0x2e,0x39,0x39,0x38,0x2d,0x31, + 0x31,0x2e,0x31,0x30,0x35,0x2d,0x31,0x31,0x2e,0x31, + 0x30,0x38,0x76,0x2d,0x31,0x39,0x2e,0x32,0x34,0x36, + 0x0d,0x0a,0x09,0x63,0x30,0x2d,0x36,0x2e,0x31,0x31, + 0x2c,0x34,0x2e,0x39,0x39,0x38,0x2d,0x31,0x31,0x2e, + 0x31,0x30,0x38,0x2c,0x31,0x31,0x2e,0x31,0x30,0x35, + 0x2d,0x31,0x31,0x2e,0x31,0x30,0x38,0x68,0x36,0x30, + 0x2e,0x36,0x39,0x63,0x36,0x2e,0x31,0x30,0x38,0x2c, + 0x30,0x2c,0x31,0x34,0x2e,0x36,0x34,0x33,0x2d,0x33, + 0x2e,0x35,0x33,0x34,0x2c,0x31,0x38,0x2e,0x39,0x36, + 0x34,0x2d,0x37,0x2e,0x38,0x35,0x34,0x6c,0x32,0x35, + 0x2e,0x37,0x34,0x39,0x2d,0x32,0x35,0x2e,0x37,0x34, + 0x31,0x63,0x34,0x2e,0x33,0x32,0x31,0x2d,0x34,0x2e, + 0x33,0x31,0x39,0x2c,0x32,0x2e,0x38,0x35,0x35,0x2d, + 0x37,0x2e,0x38,0x35,0x33,0x2d,0x33,0x2e,0x32,0x35, + 0x33,0x2d,0x37,0x2e,0x38,0x35,0x33,0x0d,0x0a,0x09, + 0x48,0x31,0x31,0x31,0x2e,0x30,0x31,0x63,0x2d,0x36, + 0x2e,0x31,0x30,0x37,0x2c,0x30,0x2d,0x31,0x34,0x2e, + 0x36,0x34,0x33,0x2c,0x33,0x2e,0x35,0x33,0x34,0x2d, + 0x31,0x38,0x2e,0x39,0x36,0x33,0x2c,0x37,0x2e,0x38, + 0x35,0x35,0x4c,0x36,0x36,0x2e,0x33,0x31,0x2c,0x33, + 0x30,0x39,0x2e,0x39,0x63,0x2d,0x34,0x2e,0x33,0x32, + 0x2c,0x34,0x2e,0x33,0x32,0x31,0x2d,0x37,0x2e,0x38, + 0x35,0x37,0x2c,0x31,0x32,0x2e,0x38,0x35,0x34,0x2d, + 0x37,0x2e,0x38,0x35,0x37,0x2c,0x31,0x38,0x2e,0x39, + 0x36,0x34,0x76,0x31,0x30,0x32,0x2e,0x31,0x32,0x35, + 0x0d,0x0a,0x09,0x63,0x30,0x2c,0x36,0x2e,0x31,0x31, + 0x31,0x2c,0x33,0x2e,0x35,0x33,0x37,0x2c,0x31,0x34, + 0x2e,0x36,0x34,0x36,0x2c,0x37,0x2e,0x38,0x35,0x37, + 0x2c,0x31,0x38,0x2e,0x39,0x36,0x33,0x6c,0x32,0x35, + 0x2e,0x37,0x33,0x37,0x2c,0x32,0x35,0x2e,0x37,0x34, + 0x63,0x34,0x2e,0x33,0x32,0x31,0x2c,0x34,0x2e,0x33, + 0x31,0x37,0x2c,0x31,0x32,0x2e,0x38,0x35,0x35,0x2c, + 0x37,0x2e,0x38,0x35,0x34,0x2c,0x31,0x38,0x2e,0x39, + 0x36,0x33,0x2c,0x37,0x2e,0x38,0x35,0x34,0x68,0x31, + 0x30,0x32,0x2e,0x31,0x34,0x33,0x63,0x36,0x2e,0x31, + 0x31,0x32,0x2c,0x30,0x2c,0x37,0x2e,0x35,0x37,0x34, + 0x2d,0x33,0x2e,0x35,0x33,0x36,0x2c,0x33,0x2e,0x32, + 0x35,0x33,0x2d,0x37,0x2e,0x38,0x35,0x36,0x0d,0x0a, + 0x09,0x6c,0x2d,0x32,0x35,0x2e,0x37,0x34,0x31,0x2d, + 0x32,0x35,0x2e,0x37,0x34,0x34,0x63,0x2d,0x34,0x2e, + 0x33,0x32,0x2d,0x34,0x2e,0x33,0x32,0x31,0x2d,0x31, + 0x32,0x2e,0x38,0x35,0x34,0x2d,0x37,0x2e,0x38,0x35, + 0x37,0x2d,0x31,0x38,0x2e,0x39,0x36,0x34,0x2d,0x37, + 0x2e,0x38,0x35,0x37,0x4c,0x31,0x31,0x31,0x2e,0x30, + 0x31,0x2c,0x34,0x34,0x32,0x2e,0x30,0x39,0x37,0x7a, + 0x22,0x2f,0x3e,0x0d,0x0a,0x3c,0x67,0x3e,0x0d,0x0a, + 0x09,0x3c,0x70,0x61,0x74,0x68,0x20,0x64,0x3d,0x22, + 0x4d,0x35,0x35,0x38,0x2e,0x36,0x30,0x35,0x2c,0x33, + 0x32,0x36,0x2e,0x35,0x36,0x32,0x63,0x2d,0x31,0x2e, + 0x36,0x32,0x33,0x2c,0x33,0x2e,0x38,0x2d,0x33,0x2e, + 0x38,0x35,0x2c,0x37,0x2e,0x31,0x31,0x35,0x2d,0x36, + 0x2e,0x36,0x38,0x32,0x2c,0x39,0x2e,0x39,0x34,0x33, + 0x63,0x2d,0x32,0x2e,0x38,0x33,0x32,0x2c,0x32,0x2e, + 0x38,0x33,0x36,0x2d,0x36,0x2e,0x31,0x34,0x36,0x2c, + 0x35,0x2e,0x30,0x36,0x2d,0x39,0x2e,0x39,0x34,0x37, + 0x2c,0x36,0x2e,0x36,0x38,0x32,0x0d,0x0a,0x09,0x09, + 0x63,0x2d,0x33,0x2e,0x37,0x39,0x36,0x2c,0x31,0x2e, + 0x36,0x32,0x33,0x2d,0x37,0x2e,0x38,0x33,0x38,0x2c, + 0x32,0x2e,0x34,0x33,0x34,0x2d,0x31,0x32,0x2e,0x31, + 0x31,0x37,0x2c,0x32,0x2e,0x34,0x33,0x34,0x68,0x2d, + 0x38,0x2e,0x34,0x39,0x36,0x63,0x2d,0x34,0x2e,0x32, + 0x38,0x33,0x2c,0x30,0x2d,0x38,0x2e,0x33,0x32,0x34, + 0x2d,0x30,0x2e,0x38,0x31,0x32,0x2d,0x31,0x32,0x2e, + 0x31,0x32,0x31,0x2d,0x32,0x2e,0x34,0x33,0x34,0x63, + 0x2d,0x33,0x2e,0x38,0x2d,0x31,0x2e,0x36,0x32,0x33, + 0x2d,0x37,0x2e,0x31,0x31,0x35,0x2d,0x33,0x2e,0x38, + 0x34,0x36,0x2d,0x39,0x2e,0x39,0x34,0x32,0x2d,0x36, + 0x2e,0x36,0x38,0x32,0x0d,0x0a,0x09,0x09,0x63,0x2d, + 0x32,0x2e,0x38,0x33,0x36,0x2d,0x32,0x2e,0x38,0x32, + 0x38,0x2d,0x35,0x2e,0x30,0x36,0x33,0x2d,0x36,0x2e, + 0x31,0x34,0x33,0x2d,0x36,0x2e,0x36,0x38,0x33,0x2d, + 0x39,0x2e,0x39,0x34,0x33,0x63,0x2d,0x31,0x2e,0x36, + 0x32,0x36,0x2d,0x33,0x2e,0x37,0x39,0x36,0x2d,0x32, + 0x2e,0x34,0x33,0x34,0x2d,0x37,0x2e,0x38,0x33,0x38, + 0x2d,0x32,0x2e,0x34,0x33,0x34,0x2d,0x31,0x32,0x2e, + 0x31,0x32,0x31,0x76,0x2d,0x34,0x37,0x2e,0x38,0x35, + 0x38,0x63,0x30,0x2d,0x34,0x2e,0x32,0x38,0x32,0x2c, + 0x30,0x2e,0x38,0x30,0x38,0x2d,0x38,0x2e,0x33,0x32, + 0x34,0x2c,0x32,0x2e,0x34,0x33,0x34,0x2d,0x31,0x32, + 0x2e,0x31,0x32,0x0d,0x0a,0x09,0x09,0x63,0x31,0x2e, + 0x36,0x31,0x39,0x2d,0x33,0x2e,0x38,0x30,0x31,0x2c, + 0x33,0x2e,0x38,0x34,0x37,0x2d,0x37,0x2e,0x31,0x31, + 0x35,0x2c,0x36,0x2e,0x36,0x38,0x33,0x2d,0x39,0x2e, + 0x39,0x34,0x37,0x63,0x32,0x2e,0x38,0x32,0x37,0x2d, + 0x32,0x2e,0x38,0x33,0x33,0x2c,0x36,0x2e,0x31,0x34, + 0x33,0x2d,0x35,0x2e,0x30,0x35,0x36,0x2c,0x39,0x2e, + 0x39,0x34,0x32,0x2d,0x36,0x2e,0x36,0x38,0x32,0x63, + 0x33,0x2e,0x37,0x39,0x36,0x2d,0x31,0x2e,0x36,0x31, + 0x39,0x2c,0x37,0x2e,0x38,0x33,0x38,0x2d,0x32,0x2e, + 0x34,0x33,0x34,0x2c,0x31,0x32,0x2e,0x31,0x32,0x31, + 0x2d,0x32,0x2e,0x34,0x33,0x34,0x68,0x38,0x2e,0x34, + 0x39,0x36,0x0d,0x0a,0x09,0x09,0x63,0x34,0x2e,0x32, + 0x37,0x39,0x2c,0x30,0x2c,0x38,0x2e,0x33,0x32,0x2c, + 0x30,0x2e,0x38,0x31,0x35,0x2c,0x31,0x32,0x2e,0x31, + 0x31,0x37,0x2c,0x32,0x2e,0x34,0x33,0x34,0x63,0x33, + 0x2e,0x38,0x2c,0x31,0x2e,0x36,0x32,0x36,0x2c,0x37, + 0x2e,0x31,0x31,0x35,0x2c,0x33,0x2e,0x38,0x35,0x2c, + 0x39,0x2e,0x39,0x34,0x37,0x2c,0x36,0x2e,0x36,0x38, + 0x32,0x73,0x35,0x2e,0x30,0x36,0x2c,0x36,0x2e,0x31, + 0x34,0x36,0x2c,0x36,0x2e,0x36,0x38,0x32,0x2c,0x39, + 0x2e,0x39,0x34,0x37,0x63,0x31,0x2e,0x36,0x32,0x33, + 0x2c,0x33,0x2e,0x37,0x39,0x36,0x2c,0x32,0x2e,0x34, + 0x33,0x34,0x2c,0x37,0x2e,0x38,0x33,0x38,0x2c,0x32, + 0x2e,0x34,0x33,0x34,0x2c,0x31,0x32,0x2e,0x31,0x32, + 0x0d,0x0a,0x09,0x09,0x76,0x32,0x34,0x2e,0x39,0x36, + 0x34,0x68,0x2d,0x35,0x38,0x2e,0x31,0x31,0x34,0x76, + 0x32,0x33,0x2e,0x36,0x31,0x38,0x63,0x30,0x2c,0x32, + 0x2e,0x35,0x35,0x36,0x2c,0x30,0x2e,0x34,0x38,0x31, + 0x2c,0x34,0x2e,0x39,0x35,0x36,0x2c,0x31,0x2e,0x34, + 0x35,0x2c,0x37,0x2e,0x32,0x30,0x32,0x63,0x30,0x2e, + 0x39,0x36,0x35,0x2c,0x32,0x2e,0x32,0x34,0x33,0x2c, + 0x32,0x2e,0x32,0x37,0x37,0x2c,0x34,0x2e,0x31,0x39, + 0x35,0x2c,0x33,0x2e,0x39,0x33,0x35,0x2c,0x35,0x2e, + 0x38,0x35,0x32,0x63,0x31,0x2e,0x36,0x36,0x31,0x2c, + 0x31,0x2e,0x36,0x35,0x37,0x2c,0x33,0x2e,0x36,0x30, + 0x39,0x2c,0x32,0x2e,0x39,0x37,0x2c,0x35,0x2e,0x38, + 0x35,0x35,0x2c,0x33,0x2e,0x39,0x33,0x38,0x0d,0x0a, + 0x09,0x09,0x63,0x32,0x2e,0x32,0x34,0x33,0x2c,0x30, + 0x2e,0x39,0x36,0x34,0x2c,0x34,0x2e,0x36,0x34,0x33, + 0x2c,0x31,0x2e,0x34,0x34,0x37,0x2c,0x37,0x2e,0x31, + 0x39,0x39,0x2c,0x31,0x2e,0x34,0x34,0x37,0x68,0x38, + 0x2e,0x34,0x39,0x36,0x63,0x32,0x2e,0x35,0x35,0x33, + 0x2c,0x30,0x2c,0x34,0x2e,0x39,0x35,0x32,0x2d,0x30, + 0x2e,0x34,0x38,0x32,0x2c,0x37,0x2e,0x31,0x39,0x39, + 0x2d,0x31,0x2e,0x34,0x34,0x37,0x63,0x32,0x2e,0x32, + 0x34,0x33,0x2d,0x30,0x2e,0x39,0x36,0x38,0x2c,0x34, + 0x2e,0x31,0x39,0x35,0x2d,0x32,0x2e,0x32,0x38,0x31, + 0x2c,0x35,0x2e,0x38,0x35,0x32,0x2d,0x33,0x2e,0x39, + 0x33,0x38,0x0d,0x0a,0x09,0x09,0x63,0x31,0x2e,0x36, + 0x35,0x37,0x2d,0x31,0x2e,0x36,0x35,0x37,0x2c,0x32, + 0x2e,0x39,0x37,0x31,0x2d,0x33,0x2e,0x36,0x30,0x39, + 0x2c,0x33,0x2e,0x39,0x33,0x38,0x2d,0x35,0x2e,0x38, + 0x35,0x32,0x63,0x30,0x2e,0x39,0x36,0x34,0x2d,0x32, + 0x2e,0x32,0x34,0x36,0x2c,0x31,0x2e,0x34,0x35,0x31, + 0x2d,0x34,0x2e,0x36,0x34,0x36,0x2c,0x31,0x2e,0x34, + 0x35,0x31,0x2d,0x37,0x2e,0x32,0x30,0x32,0x76,0x2d, + 0x37,0x2e,0x30,0x34,0x32,0x6c,0x31,0x32,0x2e,0x37, + 0x33,0x39,0x2c,0x32,0x2e,0x30,0x37,0x76,0x34,0x2e, + 0x32,0x34,0x38,0x0d,0x0a,0x09,0x09,0x43,0x35,0x36, + 0x31,0x2e,0x30,0x33,0x38,0x2c,0x33,0x31,0x38,0x2e, + 0x37,0x32,0x34,0x2c,0x35,0x36,0x30,0x2e,0x32,0x32, + 0x38,0x2c,0x33,0x32,0x32,0x2e,0x37,0x36,0x35,0x2c, + 0x35,0x35,0x38,0x2e,0x36,0x30,0x35,0x2c,0x33,0x32, + 0x36,0x2e,0x35,0x36,0x32,0x7a,0x20,0x4d,0x35,0x34, + 0x38,0x2e,0x32,0x39,0x39,0x2c,0x32,0x36,0x35,0x2e, + 0x38,0x35,0x35,0x63,0x30,0x2d,0x32,0x2e,0x35,0x35, + 0x33,0x2d,0x30,0x2e,0x34,0x38,0x36,0x2d,0x34,0x2e, + 0x39,0x35,0x32,0x2d,0x31,0x2e,0x34,0x35,0x31,0x2d, + 0x37,0x2e,0x31,0x39,0x39,0x0d,0x0a,0x09,0x09,0x63, + 0x2d,0x30,0x2e,0x39,0x36,0x38,0x2d,0x32,0x2e,0x32, + 0x34,0x33,0x2d,0x32,0x2e,0x32,0x38,0x31,0x2d,0x34, + 0x2e,0x31,0x39,0x34,0x2d,0x33,0x2e,0x39,0x33,0x38, + 0x2d,0x35,0x2e,0x38,0x35,0x32,0x63,0x2d,0x31,0x2e, + 0x36,0x35,0x36,0x2d,0x31,0x2e,0x36,0x35,0x38,0x2d, + 0x33,0x2e,0x36,0x30,0x38,0x2d,0x32,0x2e,0x39,0x37, + 0x2d,0x35,0x2e,0x38,0x35,0x32,0x2d,0x33,0x2e,0x39, + 0x33,0x38,0x63,0x2d,0x32,0x2e,0x32,0x34,0x37,0x2d, + 0x30,0x2e,0x39,0x36,0x34,0x2d,0x34,0x2e,0x36,0x34, + 0x36,0x2d,0x31,0x2e,0x34,0x35,0x2d,0x37,0x2e,0x31, + 0x39,0x39,0x2d,0x31,0x2e,0x34,0x35,0x68,0x2d,0x38, + 0x2e,0x34,0x39,0x36,0x0d,0x0a,0x09,0x09,0x63,0x2d, + 0x32,0x2e,0x35,0x35,0x37,0x2c,0x30,0x2d,0x34,0x2e, + 0x39,0x35,0x36,0x2c,0x30,0x2e,0x34,0x38,0x36,0x2d, + 0x37,0x2e,0x31,0x39,0x39,0x2c,0x31,0x2e,0x34,0x35, + 0x63,0x2d,0x32,0x2e,0x32,0x34,0x36,0x2c,0x30,0x2e, + 0x39,0x36,0x39,0x2d,0x34,0x2e,0x31,0x39,0x34,0x2c, + 0x32,0x2e,0x32,0x38,0x31,0x2d,0x35,0x2e,0x38,0x35, + 0x35,0x2c,0x33,0x2e,0x39,0x33,0x38,0x63,0x2d,0x31, + 0x2e,0x36,0x35,0x37,0x2c,0x31,0x2e,0x36,0x35,0x37, + 0x2d,0x32,0x2e,0x39,0x37,0x2c,0x33,0x2e,0x36,0x30, + 0x39,0x2d,0x33,0x2e,0x39,0x33,0x34,0x2c,0x35,0x2e, + 0x38,0x35,0x32,0x0d,0x0a,0x09,0x09,0x63,0x2d,0x30, + 0x2e,0x39,0x36,0x39,0x2c,0x32,0x2e,0x32,0x34,0x37, + 0x2d,0x31,0x2e,0x34,0x35,0x31,0x2c,0x34,0x2e,0x36, + 0x34,0x36,0x2d,0x31,0x2e,0x34,0x35,0x31,0x2c,0x37, + 0x2e,0x31,0x39,0x39,0x56,0x32,0x38,0x31,0x2e,0x36, + 0x68,0x34,0x35,0x2e,0x33,0x37,0x35,0x4c,0x35,0x34, + 0x38,0x2e,0x32,0x39,0x39,0x2c,0x32,0x36,0x35,0x2e, + 0x38,0x35,0x35,0x4c,0x35,0x34,0x38,0x2e,0x32,0x39, + 0x39,0x2c,0x32,0x36,0x35,0x2e,0x38,0x35,0x35,0x7a, + 0x22,0x2f,0x3e,0x0d,0x0a,0x09,0x3c,0x70,0x61,0x74, + 0x68,0x20,0x64,0x3d,0x22,0x4d,0x36,0x39,0x38,0x2e, + 0x35,0x30,0x36,0x2c,0x33,0x34,0x33,0x2e,0x35,0x35, + 0x76,0x2d,0x37,0x37,0x2e,0x36,0x39,0x35,0x63,0x30, + 0x2d,0x32,0x2e,0x35,0x35,0x33,0x2d,0x30,0x2e,0x34, + 0x38,0x32,0x2d,0x34,0x2e,0x39,0x35,0x32,0x2d,0x31, + 0x2e,0x34,0x35,0x2d,0x37,0x2e,0x31,0x39,0x39,0x63, + 0x2d,0x30,0x2e,0x39,0x36,0x39,0x2d,0x32,0x2e,0x32, + 0x34,0x33,0x2d,0x32,0x2e,0x32,0x37,0x37,0x2d,0x34, + 0x2e,0x31,0x39,0x34,0x2d,0x33,0x2e,0x39,0x33,0x38, + 0x2d,0x35,0x2e,0x38,0x35,0x32,0x0d,0x0a,0x09,0x09, + 0x63,0x2d,0x31,0x2e,0x36,0x35,0x32,0x2d,0x31,0x2e, + 0x36,0x35,0x37,0x2d,0x33,0x2e,0x36,0x30,0x38,0x2d, + 0x32,0x2e,0x39,0x37,0x2d,0x35,0x2e,0x38,0x35,0x32, + 0x2d,0x33,0x2e,0x39,0x33,0x38,0x63,0x2d,0x32,0x2e, + 0x32,0x34,0x37,0x2d,0x30,0x2e,0x39,0x36,0x34,0x2d, + 0x34,0x2e,0x36,0x34,0x36,0x2d,0x31,0x2e,0x34,0x35, + 0x2d,0x37,0x2e,0x31,0x39,0x39,0x2d,0x31,0x2e,0x34, + 0x35,0x68,0x2d,0x36,0x2e,0x33,0x31,0x37,0x63,0x2d, + 0x32,0x2e,0x35,0x35,0x38,0x2c,0x30,0x2d,0x34,0x2e, + 0x39,0x35,0x36,0x2c,0x30,0x2e,0x34,0x38,0x36,0x2d, + 0x37,0x2e,0x32,0x30,0x32,0x2c,0x31,0x2e,0x34,0x35, + 0x0d,0x0a,0x09,0x09,0x63,0x2d,0x32,0x2e,0x32,0x34, + 0x33,0x2c,0x30,0x2e,0x39,0x36,0x39,0x2d,0x34,0x2e, + 0x32,0x31,0x2c,0x32,0x2e,0x32,0x38,0x31,0x2d,0x35, + 0x2e,0x39,0x30,0x32,0x2c,0x33,0x2e,0x39,0x33,0x38, + 0x63,0x2d,0x31,0x2e,0x36,0x39,0x35,0x2c,0x31,0x2e, + 0x36,0x35,0x37,0x2d,0x33,0x2e,0x30,0x32,0x33,0x2c, + 0x33,0x2e,0x36,0x30,0x39,0x2d,0x33,0x2e,0x39,0x39, + 0x31,0x2c,0x35,0x2e,0x38,0x35,0x32,0x63,0x2d,0x30, + 0x2e,0x39,0x36,0x35,0x2c,0x32,0x2e,0x32,0x34,0x37, + 0x2d,0x31,0x2e,0x34,0x34,0x35,0x2c,0x34,0x2e,0x36, + 0x34,0x36,0x2d,0x31,0x2e,0x34,0x34,0x35,0x2c,0x37, + 0x2e,0x31,0x39,0x39,0x76,0x37,0x37,0x2e,0x36,0x39, + 0x35,0x68,0x2d,0x31,0x32,0x2e,0x36,0x34,0x33,0x0d, + 0x0a,0x09,0x09,0x76,0x2d,0x37,0x37,0x2e,0x36,0x39, + 0x35,0x63,0x30,0x2d,0x32,0x2e,0x35,0x35,0x33,0x2d, + 0x30,0x2e,0x34,0x38,0x32,0x2d,0x34,0x2e,0x39,0x35, + 0x32,0x2d,0x31,0x2e,0x34,0x35,0x2d,0x37,0x2e,0x31, + 0x39,0x39,0x63,0x2d,0x30,0x2e,0x39,0x36,0x38,0x2d, + 0x32,0x2e,0x32,0x34,0x33,0x2d,0x32,0x2e,0x32,0x39, + 0x36,0x2d,0x34,0x2e,0x31,0x39,0x34,0x2d,0x33,0x2e, + 0x39,0x38,0x37,0x2d,0x35,0x2e,0x38,0x35,0x32,0x63, + 0x2d,0x31,0x2e,0x36,0x39,0x31,0x2d,0x31,0x2e,0x36, + 0x35,0x37,0x2d,0x33,0x2e,0x36,0x35,0x38,0x2d,0x32, + 0x2e,0x39,0x37,0x2d,0x35,0x2e,0x39,0x30,0x35,0x2d, + 0x33,0x2e,0x39,0x33,0x38,0x0d,0x0a,0x09,0x09,0x63, + 0x2d,0x32,0x2e,0x32,0x34,0x32,0x2d,0x30,0x2e,0x39, + 0x36,0x34,0x2d,0x34,0x2e,0x36,0x34,0x33,0x2d,0x31, + 0x2e,0x34,0x35,0x2d,0x37,0x2e,0x31,0x39,0x39,0x2d, + 0x31,0x2e,0x34,0x35,0x68,0x2d,0x36,0x2e,0x33,0x31, + 0x38,0x63,0x2d,0x32,0x2e,0x35,0x35,0x37,0x2c,0x30, + 0x2d,0x34,0x2e,0x39,0x35,0x36,0x2c,0x30,0x2e,0x34, + 0x38,0x36,0x2d,0x37,0x2e,0x31,0x39,0x38,0x2c,0x31, + 0x2e,0x34,0x35,0x63,0x2d,0x32,0x2e,0x32,0x34,0x37, + 0x2c,0x30,0x2e,0x39,0x36,0x39,0x2d,0x34,0x2e,0x31, + 0x39,0x35,0x2c,0x32,0x2e,0x32,0x38,0x31,0x2d,0x35, + 0x2e,0x38,0x35,0x35,0x2c,0x33,0x2e,0x39,0x33,0x38, + 0x0d,0x0a,0x09,0x09,0x63,0x2d,0x31,0x2e,0x36,0x35, + 0x37,0x2c,0x31,0x2e,0x36,0x35,0x37,0x2d,0x32,0x2e, + 0x39,0x37,0x2c,0x33,0x2e,0x36,0x30,0x39,0x2d,0x33, + 0x2e,0x39,0x33,0x35,0x2c,0x35,0x2e,0x38,0x35,0x32, + 0x63,0x2d,0x30,0x2e,0x39,0x36,0x38,0x2c,0x32,0x2e, + 0x32,0x34,0x37,0x2d,0x31,0x2e,0x34,0x35,0x2c,0x34, + 0x2e,0x36,0x34,0x36,0x2d,0x31,0x2e,0x34,0x35,0x2c, + 0x37,0x2e,0x31,0x39,0x39,0x76,0x37,0x37,0x2e,0x36, + 0x39,0x35,0x68,0x2d,0x31,0x32,0x2e,0x37,0x34,0x31, + 0x56,0x32,0x33,0x37,0x2e,0x34,0x37,0x34,0x68,0x34, + 0x2e,0x32,0x34,0x34,0x6c,0x36,0x2e,0x39,0x34,0x33, + 0x2c,0x31,0x30,0x2e,0x37,0x37,0x33,0x0d,0x0a,0x09, + 0x09,0x63,0x32,0x2e,0x38,0x39,0x39,0x2d,0x33,0x2e, + 0x39,0x33,0x38,0x2c,0x36,0x2e,0x35,0x34,0x2d,0x37, + 0x2e,0x30,0x36,0x31,0x2c,0x31,0x30,0x2e,0x39,0x33, + 0x2d,0x39,0x2e,0x33,0x37,0x36,0x63,0x34,0x2e,0x33, + 0x38,0x32,0x2d,0x32,0x2e,0x33,0x31,0x32,0x2c,0x39, + 0x2e,0x31,0x36,0x36,0x2d,0x33,0x2e,0x34,0x37,0x31, + 0x2c,0x31,0x34,0x2e,0x33,0x34,0x34,0x2d,0x33,0x2e, + 0x34,0x37,0x31,0x68,0x31,0x2e,0x30,0x33,0x37,0x63, + 0x36,0x2e,0x30,0x30,0x39,0x2c,0x30,0x2c,0x31,0x31, + 0x2e,0x34,0x32,0x38,0x2c,0x31,0x2e,0x34,0x38,0x35, + 0x2c,0x31,0x36,0x2e,0x32,0x36,0x36,0x2c,0x34,0x2e, + 0x34,0x35,0x35,0x0d,0x0a,0x09,0x09,0x63,0x34,0x2e, + 0x38,0x33,0x33,0x2c,0x32,0x2e,0x39,0x37,0x2c,0x38, + 0x2e,0x35,0x36,0x32,0x2c,0x36,0x2e,0x39,0x30,0x38, + 0x2c,0x31,0x31,0x2e,0x31,0x38,0x37,0x2c,0x31,0x31, + 0x2e,0x38,0x31,0x31,0x63,0x31,0x2e,0x33,0x31,0x32, + 0x2d,0x32,0x2e,0x34,0x31,0x39,0x2c,0x32,0x2e,0x39, + 0x33,0x36,0x2d,0x34,0x2e,0x36,0x32,0x37,0x2c,0x34, + 0x2e,0x38,0x36,0x39,0x2d,0x36,0x2e,0x36,0x32,0x39, + 0x63,0x31,0x2e,0x39,0x33,0x33,0x2d,0x32,0x2e,0x30, + 0x30,0x35,0x2c,0x34,0x2e,0x30,0x37,0x35,0x2d,0x33, + 0x2e,0x37,0x31,0x32,0x2c,0x36,0x2e,0x34,0x32,0x32, + 0x2d,0x35,0x2e,0x31,0x32,0x38,0x0d,0x0a,0x09,0x09, + 0x63,0x32,0x2e,0x33,0x35,0x2d,0x31,0x2e,0x34,0x31, + 0x36,0x2c,0x34,0x2e,0x39,0x30,0x36,0x2d,0x32,0x2e, + 0x35,0x32,0x32,0x2c,0x37,0x2e,0x36,0x36,0x39,0x2d, + 0x33,0x2e,0x33,0x31,0x38,0x63,0x32,0x2e,0x37,0x36, + 0x2d,0x30,0x2e,0x37,0x39,0x32,0x2c,0x35,0x2e,0x36, + 0x32,0x36,0x2d,0x31,0x2e,0x31,0x39,0x2c,0x38,0x2e, + 0x35,0x39,0x36,0x2d,0x31,0x2e,0x31,0x39,0x68,0x31, + 0x2e,0x30,0x33,0x37,0x63,0x34,0x2e,0x32,0x37,0x39, + 0x2c,0x30,0x2c,0x38,0x2e,0x33,0x32,0x2c,0x30,0x2e, + 0x38,0x31,0x35,0x2c,0x31,0x32,0x2e,0x31,0x32,0x31, + 0x2c,0x32,0x2e,0x34,0x33,0x34,0x0d,0x0a,0x09,0x09, + 0x63,0x33,0x2e,0x37,0x39,0x36,0x2c,0x31,0x2e,0x36, + 0x32,0x36,0x2c,0x37,0x2e,0x31,0x31,0x34,0x2c,0x33, + 0x2e,0x38,0x35,0x2c,0x39,0x2e,0x39,0x34,0x36,0x2c, + 0x36,0x2e,0x36,0x38,0x32,0x63,0x32,0x2e,0x38,0x32, + 0x38,0x2c,0x32,0x2e,0x38,0x33,0x32,0x2c,0x35,0x2e, + 0x30,0x35,0x36,0x2c,0x36,0x2e,0x31,0x34,0x36,0x2c, + 0x36,0x2e,0x36,0x38,0x33,0x2c,0x39,0x2e,0x39,0x34, + 0x37,0x63,0x31,0x2e,0x36,0x31,0x38,0x2c,0x33,0x2e, + 0x37,0x39,0x36,0x2c,0x32,0x2e,0x34,0x33,0x35,0x2c, + 0x37,0x2e,0x38,0x33,0x38,0x2c,0x32,0x2e,0x34,0x33, + 0x35,0x2c,0x31,0x32,0x2e,0x31,0x32,0x76,0x37,0x36, + 0x2e,0x39,0x36,0x38,0x68,0x2d,0x31,0x32,0x2e,0x37, + 0x34,0x37,0x0d,0x0a,0x09,0x09,0x56,0x33,0x34,0x33, + 0x2e,0x35,0x35,0x7a,0x22,0x2f,0x3e,0x0d,0x0a,0x09, + 0x3c,0x70,0x61,0x74,0x68,0x20,0x64,0x3d,0x22,0x4d, + 0x38,0x30,0x33,0x2e,0x33,0x34,0x33,0x2c,0x33,0x34, + 0x33,0x2e,0x35,0x35,0x6c,0x2d,0x37,0x2e,0x30,0x34, + 0x36,0x2d,0x31,0x30,0x2e,0x37,0x37,0x33,0x63,0x2d, + 0x32,0x2e,0x39,0x30,0x31,0x2c,0x33,0x2e,0x39,0x33, + 0x38,0x2d,0x36,0x2e,0x35,0x32,0x35,0x2c,0x37,0x2e, + 0x30,0x36,0x31,0x2d,0x31,0x30,0x2e,0x38,0x37,0x38, + 0x2c,0x39,0x2e,0x33,0x37,0x36,0x63,0x2d,0x34,0x2e, + 0x33,0x34,0x38,0x2c,0x32,0x2e,0x33,0x31,0x32,0x2d, + 0x39,0x2e,0x31,0x31,0x35,0x2c,0x33,0x2e,0x34,0x36, + 0x37,0x2d,0x31,0x34,0x2e,0x32,0x39,0x34,0x2c,0x33, + 0x2e,0x34,0x36,0x37,0x68,0x2d,0x33,0x2e,0x32,0x31, + 0x31,0x0d,0x0a,0x09,0x09,0x63,0x2d,0x34,0x2e,0x32, + 0x38,0x36,0x2c,0x30,0x2d,0x38,0x2e,0x33,0x32,0x33, + 0x2d,0x30,0x2e,0x38,0x31,0x32,0x2d,0x31,0x32,0x2e, + 0x31,0x32,0x2d,0x32,0x2e,0x34,0x33,0x34,0x63,0x2d, + 0x33,0x2e,0x38,0x30,0x31,0x2d,0x31,0x2e,0x36,0x32, + 0x33,0x2d,0x37,0x2e,0x31,0x31,0x34,0x2d,0x33,0x2e, + 0x38,0x34,0x36,0x2d,0x39,0x2e,0x39,0x34,0x36,0x2d, + 0x36,0x2e,0x36,0x38,0x32,0x63,0x2d,0x32,0x2e,0x38, + 0x33,0x32,0x2d,0x32,0x2e,0x38,0x32,0x38,0x2d,0x35, + 0x2e,0x30,0x36,0x31,0x2d,0x36,0x2e,0x31,0x34,0x33, + 0x2d,0x36,0x2e,0x36,0x38,0x34,0x2d,0x39,0x2e,0x39, + 0x34,0x33,0x0d,0x0a,0x09,0x09,0x63,0x2d,0x31,0x2e, + 0x36,0x32,0x32,0x2d,0x33,0x2e,0x37,0x39,0x36,0x2d, + 0x32,0x2e,0x34,0x33,0x34,0x2d,0x37,0x2e,0x38,0x33, + 0x38,0x2d,0x32,0x2e,0x34,0x33,0x34,0x2d,0x31,0x32, + 0x2e,0x31,0x32,0x31,0x76,0x2d,0x37,0x36,0x2e,0x39, + 0x36,0x36,0x68,0x31,0x32,0x2e,0x37,0x34,0x34,0x76, + 0x37,0x37,0x2e,0x36,0x39,0x31,0x63,0x30,0x2c,0x32, + 0x2e,0x35,0x35,0x36,0x2c,0x30,0x2e,0x34,0x38,0x31, + 0x2c,0x34,0x2e,0x39,0x35,0x36,0x2c,0x31,0x2e,0x34, + 0x34,0x36,0x2c,0x37,0x2e,0x32,0x30,0x32,0x0d,0x0a, + 0x09,0x09,0x63,0x30,0x2e,0x39,0x36,0x39,0x2c,0x32, + 0x2e,0x32,0x34,0x33,0x2c,0x32,0x2e,0x32,0x38,0x2c, + 0x34,0x2e,0x31,0x39,0x35,0x2c,0x33,0x2e,0x39,0x33, + 0x38,0x2c,0x35,0x2e,0x38,0x35,0x32,0x63,0x31,0x2e, + 0x36,0x35,0x37,0x2c,0x31,0x2e,0x36,0x35,0x37,0x2c, + 0x33,0x2e,0x36,0x30,0x39,0x2c,0x32,0x2e,0x39,0x37, + 0x2c,0x35,0x2e,0x38,0x35,0x32,0x2c,0x33,0x2e,0x39, + 0x33,0x38,0x63,0x32,0x2e,0x32,0x34,0x32,0x2c,0x30, + 0x2e,0x39,0x36,0x34,0x2c,0x34,0x2e,0x36,0x34,0x36, + 0x2c,0x31,0x2e,0x34,0x34,0x37,0x2c,0x37,0x2e,0x32, + 0x30,0x33,0x2c,0x31,0x2e,0x34,0x34,0x37,0x68,0x38, + 0x2e,0x34,0x39,0x36,0x0d,0x0a,0x09,0x09,0x63,0x32, + 0x2e,0x35,0x34,0x39,0x2c,0x30,0x2c,0x34,0x2e,0x39, + 0x35,0x32,0x2d,0x30,0x2e,0x34,0x38,0x32,0x2c,0x37, + 0x2e,0x31,0x39,0x34,0x2d,0x31,0x2e,0x34,0x34,0x37, + 0x63,0x32,0x2e,0x32,0x34,0x33,0x2d,0x30,0x2e,0x39, + 0x36,0x38,0x2c,0x34,0x2e,0x31,0x39,0x38,0x2d,0x32, + 0x2e,0x32,0x38,0x31,0x2c,0x35,0x2e,0x38,0x35,0x34, + 0x2d,0x33,0x2e,0x39,0x33,0x38,0x63,0x31,0x2e,0x36, + 0x35,0x37,0x2d,0x31,0x2e,0x36,0x35,0x37,0x2c,0x32, + 0x2e,0x39,0x37,0x31,0x2d,0x33,0x2e,0x36,0x30,0x39, + 0x2c,0x33,0x2e,0x39,0x33,0x36,0x2d,0x35,0x2e,0x38, + 0x35,0x32,0x0d,0x0a,0x09,0x09,0x63,0x30,0x2e,0x39, + 0x36,0x39,0x2d,0x32,0x2e,0x32,0x34,0x36,0x2c,0x31, + 0x2e,0x34,0x35,0x34,0x2d,0x34,0x2e,0x36,0x34,0x36, + 0x2c,0x31,0x2e,0x34,0x35,0x34,0x2d,0x37,0x2e,0x32, + 0x30,0x32,0x76,0x2d,0x37,0x37,0x2e,0x36,0x39,0x31, + 0x68,0x31,0x32,0x2e,0x37,0x33,0x36,0x56,0x33,0x34, + 0x33,0x2e,0x35,0x35,0x48,0x38,0x30,0x33,0x2e,0x33, + 0x34,0x33,0x7a,0x22,0x2f,0x3e,0x0d,0x0a,0x09,0x3c, + 0x70,0x61,0x74,0x68,0x20,0x64,0x3d,0x22,0x4d,0x38, + 0x33,0x37,0x2e,0x33,0x31,0x39,0x2c,0x33,0x34,0x33, + 0x2e,0x35,0x35,0x56,0x31,0x39,0x35,0x68,0x31,0x32, + 0x2e,0x37,0x34,0x76,0x31,0x34,0x38,0x2e,0x35,0x35, + 0x48,0x38,0x33,0x37,0x2e,0x33,0x31,0x39,0x7a,0x22, + 0x2f,0x3e,0x0d,0x0a,0x09,0x3c,0x70,0x61,0x74,0x68, + 0x20,0x64,0x3d,0x22,0x4d,0x39,0x34,0x36,0x2e,0x34, + 0x30,0x34,0x2c,0x33,0x34,0x33,0x2e,0x35,0x35,0x6c, + 0x2d,0x37,0x2e,0x30,0x34,0x36,0x2d,0x31,0x30,0x2e, + 0x35,0x36,0x37,0x63,0x2d,0x32,0x2e,0x39,0x2c,0x33, + 0x2e,0x38,0x2d,0x36,0x2e,0x35,0x32,0x35,0x2c,0x36, + 0x2e,0x38,0x35,0x34,0x2d,0x31,0x30,0x2e,0x38,0x38, + 0x31,0x2c,0x39,0x2e,0x31,0x37,0x63,0x2d,0x34,0x2e, + 0x33,0x34,0x38,0x2c,0x32,0x2e,0x33,0x31,0x32,0x2d, + 0x39,0x2e,0x31,0x31,0x36,0x2c,0x33,0x2e,0x34,0x36, + 0x37,0x2d,0x31,0x34,0x2e,0x32,0x39,0x2c,0x33,0x2e, + 0x34,0x36,0x37,0x68,0x2d,0x33,0x2e,0x32,0x31,0x35, + 0x0d,0x0a,0x09,0x09,0x63,0x2d,0x34,0x2e,0x32,0x38, + 0x32,0x2c,0x30,0x2d,0x38,0x2e,0x33,0x32,0x2d,0x30, + 0x2e,0x38,0x31,0x32,0x2d,0x31,0x32,0x2e,0x31,0x31, + 0x36,0x2d,0x32,0x2e,0x34,0x33,0x34,0x63,0x2d,0x33, + 0x2e,0x38,0x30,0x35,0x2d,0x31,0x2e,0x36,0x32,0x33, + 0x2d,0x37,0x2e,0x31,0x31,0x39,0x2d,0x33,0x2e,0x38, + 0x34,0x36,0x2d,0x39,0x2e,0x39,0x34,0x37,0x2d,0x36, + 0x2e,0x36,0x38,0x32,0x63,0x2d,0x32,0x2e,0x38,0x33, + 0x36,0x2d,0x32,0x2e,0x38,0x32,0x38,0x2d,0x35,0x2e, + 0x30,0x36,0x32,0x2d,0x36,0x2e,0x31,0x34,0x33,0x2d, + 0x36,0x2e,0x36,0x38,0x32,0x2d,0x39,0x2e,0x39,0x34, + 0x33,0x0d,0x0a,0x09,0x09,0x63,0x2d,0x31,0x2e,0x36, + 0x32,0x37,0x2d,0x33,0x2e,0x37,0x39,0x36,0x2d,0x32, + 0x2e,0x34,0x33,0x36,0x2d,0x37,0x2e,0x38,0x33,0x38, + 0x2d,0x32,0x2e,0x34,0x33,0x36,0x2d,0x31,0x32,0x2e, + 0x31,0x32,0x31,0x76,0x2d,0x31,0x2e,0x30,0x33,0x37, + 0x63,0x30,0x2d,0x34,0x2e,0x32,0x37,0x39,0x2c,0x30, + 0x2e,0x38,0x30,0x39,0x2d,0x38,0x2e,0x33,0x32,0x2c, + 0x32,0x2e,0x34,0x33,0x36,0x2d,0x31,0x32,0x2e,0x31, + 0x32,0x31,0x63,0x31,0x2e,0x36,0x31,0x38,0x2d,0x33, + 0x2e,0x37,0x39,0x36,0x2c,0x33,0x2e,0x38,0x34,0x36, + 0x2d,0x37,0x2e,0x31,0x31,0x31,0x2c,0x36,0x2e,0x36, + 0x38,0x32,0x2d,0x39,0x2e,0x39,0x34,0x33,0x0d,0x0a, + 0x09,0x09,0x63,0x32,0x2e,0x38,0x32,0x38,0x2d,0x32, + 0x2e,0x38,0x33,0x32,0x2c,0x36,0x2e,0x31,0x34,0x34, + 0x2d,0x35,0x2e,0x30,0x36,0x2c,0x39,0x2e,0x39,0x34, + 0x37,0x2d,0x36,0x2e,0x36,0x38,0x32,0x63,0x33,0x2e, + 0x37,0x39,0x36,0x2d,0x31,0x2e,0x36,0x32,0x33,0x2c, + 0x37,0x2e,0x38,0x33,0x34,0x2d,0x32,0x2e,0x34,0x33, + 0x34,0x2c,0x31,0x32,0x2e,0x31,0x31,0x36,0x2d,0x32, + 0x2e,0x34,0x33,0x34,0x68,0x32,0x36,0x2e,0x39,0x33, + 0x36,0x76,0x2d,0x31,0x36,0x2e,0x33,0x36,0x38,0x63, + 0x30,0x2d,0x32,0x2e,0x35,0x35,0x33,0x2d,0x30,0x2e, + 0x34,0x38,0x31,0x2d,0x34,0x2e,0x39,0x35,0x32,0x2d, + 0x31,0x2e,0x34,0x35,0x2d,0x37,0x2e,0x31,0x39,0x39, + 0x0d,0x0a,0x09,0x09,0x63,0x2d,0x30,0x2e,0x39,0x36, + 0x39,0x2d,0x32,0x2e,0x32,0x34,0x33,0x2d,0x32,0x2e, + 0x32,0x37,0x36,0x2d,0x34,0x2e,0x31,0x39,0x34,0x2d, + 0x33,0x2e,0x39,0x33,0x38,0x2d,0x35,0x2e,0x38,0x35, + 0x32,0x63,0x2d,0x31,0x2e,0x36,0x35,0x33,0x2d,0x31, + 0x2e,0x36,0x35,0x37,0x2d,0x33,0x2e,0x36,0x30,0x39, + 0x2d,0x32,0x2e,0x39,0x37,0x2d,0x35,0x2e,0x38,0x35, + 0x33,0x2d,0x33,0x2e,0x39,0x33,0x38,0x63,0x2d,0x32, + 0x2e,0x32,0x34,0x36,0x2d,0x30,0x2e,0x39,0x36,0x34, + 0x2d,0x34,0x2e,0x36,0x34,0x36,0x2d,0x31,0x2e,0x34, + 0x35,0x2d,0x37,0x2e,0x31,0x39,0x38,0x2d,0x31,0x2e, + 0x34,0x35,0x68,0x2d,0x37,0x2e,0x34,0x35,0x39,0x0d, + 0x0a,0x09,0x09,0x63,0x2d,0x32,0x2e,0x35,0x35,0x38, + 0x2c,0x30,0x2d,0x34,0x2e,0x39,0x35,0x36,0x2c,0x30, + 0x2e,0x34,0x38,0x36,0x2d,0x37,0x2e,0x31,0x39,0x38, + 0x2c,0x31,0x2e,0x34,0x35,0x63,0x2d,0x32,0x2e,0x32, + 0x34,0x37,0x2c,0x30,0x2e,0x39,0x36,0x39,0x2d,0x34, + 0x2e,0x31,0x39,0x35,0x2c,0x32,0x2e,0x32,0x38,0x31, + 0x2d,0x35,0x2e,0x38,0x35,0x36,0x2c,0x33,0x2e,0x39, + 0x33,0x38,0x63,0x2d,0x31,0x2e,0x36,0x35,0x32,0x2c, + 0x31,0x2e,0x36,0x35,0x37,0x2d,0x32,0x2e,0x39,0x37, + 0x2c,0x33,0x2e,0x36,0x30,0x39,0x2d,0x33,0x2e,0x39, + 0x33,0x34,0x2c,0x35,0x2e,0x38,0x35,0x32,0x0d,0x0a, + 0x09,0x09,0x63,0x2d,0x30,0x2e,0x39,0x36,0x39,0x2c, + 0x32,0x2e,0x32,0x34,0x37,0x2d,0x31,0x2e,0x34,0x35, + 0x31,0x2c,0x34,0x2e,0x36,0x34,0x36,0x2d,0x31,0x2e, + 0x34,0x35,0x31,0x2c,0x37,0x2e,0x31,0x39,0x39,0x76, + 0x33,0x2e,0x38,0x33,0x35,0x6c,0x2d,0x31,0x32,0x2e, + 0x37,0x34,0x2d,0x32,0x2e,0x30,0x37,0x35,0x76,0x2d, + 0x31,0x2e,0x30,0x33,0x33,0x63,0x30,0x2d,0x34,0x2e, + 0x32,0x38,0x32,0x2c,0x30,0x2e,0x38,0x31,0x32,0x2d, + 0x38,0x2e,0x33,0x32,0x34,0x2c,0x32,0x2e,0x34,0x33, + 0x36,0x2d,0x31,0x32,0x2e,0x31,0x32,0x0d,0x0a,0x09, + 0x09,0x63,0x31,0x2e,0x36,0x32,0x32,0x2d,0x33,0x2e, + 0x38,0x30,0x31,0x2c,0x33,0x2e,0x38,0x35,0x2d,0x37, + 0x2e,0x31,0x31,0x35,0x2c,0x36,0x2e,0x36,0x38,0x32, + 0x2d,0x39,0x2e,0x39,0x34,0x37,0x63,0x32,0x2e,0x38, + 0x32,0x38,0x2d,0x32,0x2e,0x38,0x33,0x33,0x2c,0x36, + 0x2e,0x31,0x34,0x36,0x2d,0x35,0x2e,0x30,0x35,0x36, + 0x2c,0x39,0x2e,0x39,0x34,0x33,0x2d,0x36,0x2e,0x36, + 0x38,0x32,0x63,0x33,0x2e,0x37,0x39,0x36,0x2d,0x31, + 0x2e,0x36,0x31,0x39,0x2c,0x37,0x2e,0x38,0x33,0x38, + 0x2d,0x32,0x2e,0x34,0x33,0x34,0x2c,0x31,0x32,0x2e, + 0x31,0x32,0x2d,0x32,0x2e,0x34,0x33,0x34,0x68,0x37, + 0x2e,0x34,0x35,0x39,0x0d,0x0a,0x09,0x09,0x63,0x34, + 0x2e,0x32,0x37,0x38,0x2c,0x30,0x2c,0x38,0x2e,0x33, + 0x31,0x39,0x2c,0x30,0x2e,0x38,0x31,0x35,0x2c,0x31, + 0x32,0x2e,0x31,0x31,0x37,0x2c,0x32,0x2e,0x34,0x33, + 0x34,0x63,0x33,0x2e,0x38,0x2c,0x31,0x2e,0x36,0x32, + 0x36,0x2c,0x37,0x2e,0x31,0x31,0x33,0x2c,0x33,0x2e, + 0x38,0x35,0x2c,0x39,0x2e,0x39,0x34,0x39,0x2c,0x36, + 0x2e,0x36,0x38,0x32,0x63,0x32,0x2e,0x38,0x32,0x38, + 0x2c,0x32,0x2e,0x38,0x33,0x32,0x2c,0x35,0x2e,0x30, + 0x35,0x37,0x2c,0x36,0x2e,0x31,0x34,0x36,0x2c,0x36, + 0x2e,0x36,0x38,0x2c,0x39,0x2e,0x39,0x34,0x37,0x0d, + 0x0a,0x09,0x09,0x63,0x31,0x2e,0x36,0x32,0x32,0x2c, + 0x33,0x2e,0x37,0x39,0x36,0x2c,0x32,0x2e,0x34,0x33, + 0x34,0x2c,0x37,0x2e,0x38,0x33,0x38,0x2c,0x32,0x2e, + 0x34,0x33,0x34,0x2c,0x31,0x32,0x2e,0x31,0x32,0x76, + 0x37,0x36,0x2e,0x39,0x36,0x38,0x48,0x39,0x34,0x36, + 0x2e,0x34,0x30,0x34,0x4c,0x39,0x34,0x36,0x2e,0x34, + 0x30,0x34,0x2c,0x33,0x34,0x33,0x2e,0x35,0x35,0x7a, + 0x20,0x4d,0x39,0x33,0x37,0x2e,0x39,0x30,0x37,0x2c, + 0x32,0x39,0x32,0x2e,0x31,0x36,0x37,0x68,0x2d,0x32, + 0x36,0x2e,0x39,0x33,0x36,0x63,0x2d,0x32,0x2e,0x35, + 0x35,0x38,0x2c,0x30,0x2d,0x34,0x2e,0x39,0x35,0x36, + 0x2c,0x30,0x2e,0x34,0x38,0x36,0x2d,0x37,0x2e,0x31, + 0x39,0x39,0x2c,0x31,0x2e,0x34,0x35,0x31,0x0d,0x0a, + 0x09,0x09,0x63,0x2d,0x32,0x2e,0x32,0x34,0x36,0x2c, + 0x30,0x2e,0x39,0x36,0x38,0x2d,0x34,0x2e,0x31,0x39, + 0x34,0x2c,0x32,0x2e,0x32,0x39,0x36,0x2d,0x35,0x2e, + 0x38,0x35,0x32,0x2c,0x33,0x2e,0x39,0x38,0x38,0x63, + 0x2d,0x31,0x2e,0x36,0x36,0x31,0x2c,0x31,0x2e,0x36, + 0x39,0x35,0x2d,0x32,0x2e,0x39,0x37,0x31,0x2c,0x33, + 0x2e,0x36,0x36,0x33,0x2d,0x33,0x2e,0x39,0x33,0x38, + 0x2c,0x35,0x2e,0x39,0x30,0x35,0x63,0x2d,0x30,0x2e, + 0x39,0x36,0x39,0x2c,0x32,0x2e,0x32,0x34,0x37,0x2d, + 0x31,0x2e,0x34,0x35,0x31,0x2c,0x34,0x2e,0x36,0x34, + 0x36,0x2d,0x31,0x2e,0x34,0x35,0x31,0x2c,0x37,0x2e, + 0x32,0x30,0x33,0x76,0x34,0x2e,0x34,0x35,0x31,0x0d, + 0x0a,0x09,0x09,0x63,0x30,0x2c,0x32,0x2e,0x35,0x35, + 0x36,0x2c,0x30,0x2e,0x34,0x38,0x32,0x2c,0x34,0x2e, + 0x39,0x35,0x36,0x2c,0x31,0x2e,0x34,0x35,0x31,0x2c, + 0x37,0x2e,0x32,0x30,0x32,0x63,0x30,0x2e,0x39,0x36, + 0x38,0x2c,0x32,0x2e,0x32,0x34,0x33,0x2c,0x32,0x2e, + 0x32,0x37,0x36,0x2c,0x34,0x2e,0x31,0x39,0x35,0x2c, + 0x33,0x2e,0x39,0x33,0x38,0x2c,0x35,0x2e,0x38,0x35, + 0x32,0x63,0x31,0x2e,0x36,0x35,0x36,0x2c,0x31,0x2e, + 0x36,0x35,0x37,0x2c,0x33,0x2e,0x36,0x30,0x34,0x2c, + 0x32,0x2e,0x39,0x37,0x2c,0x35,0x2e,0x38,0x35,0x32, + 0x2c,0x33,0x2e,0x39,0x33,0x38,0x0d,0x0a,0x09,0x09, + 0x63,0x32,0x2e,0x32,0x34,0x33,0x2c,0x30,0x2e,0x39, + 0x36,0x34,0x2c,0x34,0x2e,0x36,0x34,0x33,0x2c,0x31, + 0x2e,0x34,0x34,0x37,0x2c,0x37,0x2e,0x31,0x39,0x39, + 0x2c,0x31,0x2e,0x34,0x34,0x37,0x68,0x38,0x2e,0x34, + 0x39,0x36,0x63,0x32,0x2e,0x35,0x35,0x33,0x2c,0x30, + 0x2c,0x34,0x2e,0x39,0x35,0x32,0x2d,0x30,0x2e,0x34, + 0x38,0x32,0x2c,0x37,0x2e,0x31,0x39,0x38,0x2d,0x31, + 0x2e,0x34,0x34,0x37,0x63,0x32,0x2e,0x32,0x34,0x32, + 0x2d,0x30,0x2e,0x39,0x36,0x38,0x2c,0x34,0x2e,0x31, + 0x39,0x38,0x2d,0x32,0x2e,0x32,0x38,0x31,0x2c,0x35, + 0x2e,0x38,0x35,0x33,0x2d,0x33,0x2e,0x39,0x33,0x38, + 0x0d,0x0a,0x09,0x09,0x63,0x31,0x2e,0x36,0x36,0x31, + 0x2d,0x31,0x2e,0x36,0x35,0x37,0x2c,0x32,0x2e,0x39, + 0x37,0x2d,0x33,0x2e,0x36,0x30,0x39,0x2c,0x33,0x2e, + 0x39,0x33,0x38,0x2d,0x35,0x2e,0x38,0x35,0x32,0x63, + 0x30,0x2e,0x39,0x36,0x39,0x2d,0x32,0x2e,0x32,0x34, + 0x36,0x2c,0x31,0x2e,0x34,0x35,0x2d,0x34,0x2e,0x36, + 0x34,0x36,0x2c,0x31,0x2e,0x34,0x35,0x2d,0x37,0x2e, + 0x32,0x30,0x32,0x4c,0x39,0x33,0x37,0x2e,0x39,0x30, + 0x37,0x2c,0x32,0x39,0x32,0x2e,0x31,0x36,0x37,0x4c, + 0x39,0x33,0x37,0x2e,0x39,0x30,0x37,0x2c,0x32,0x39, + 0x32,0x2e,0x31,0x36,0x37,0x7a,0x22,0x2f,0x3e,0x0d, + 0x0a,0x09,0x3c,0x70,0x61,0x74,0x68,0x20,0x64,0x3d, + 0x22,0x4d,0x31,0x30,0x31,0x34,0x2e,0x37,0x37,0x32, + 0x2c,0x33,0x34,0x33,0x2e,0x35,0x35,0x63,0x2d,0x33, + 0x2e,0x38,0x36,0x35,0x2c,0x30,0x2d,0x37,0x2e,0x35, + 0x30,0x39,0x2d,0x30,0x2e,0x37,0x32,0x34,0x2d,0x31, + 0x30,0x2e,0x39,0x33,0x31,0x2d,0x32,0x2e,0x31,0x37, + 0x34,0x63,0x2d,0x33,0x2e,0x34,0x31,0x38,0x2d,0x31, + 0x2e,0x34,0x35,0x31,0x2d,0x36,0x2e,0x33,0x38,0x39, + 0x2d,0x33,0x2e,0x34,0x35,0x36,0x2d,0x38,0x2e,0x39, + 0x30,0x39,0x2d,0x36,0x2e,0x30,0x30,0x39,0x0d,0x0a, + 0x09,0x09,0x63,0x2d,0x32,0x2e,0x35,0x32,0x2d,0x32, + 0x2e,0x35,0x35,0x37,0x2d,0x34,0x2e,0x35,0x32,0x34, + 0x2d,0x35,0x2e,0x35,0x32,0x36,0x2d,0x36,0x2e,0x30, + 0x30,0x39,0x2d,0x38,0x2e,0x39,0x31,0x63,0x2d,0x31, + 0x2e,0x34,0x38,0x35,0x2d,0x33,0x2e,0x33,0x38,0x33, + 0x2d,0x32,0x2e,0x32,0x32,0x35,0x2d,0x37,0x2e,0x30, + 0x30,0x37,0x2d,0x32,0x2e,0x32,0x32,0x35,0x2d,0x31, + 0x30,0x2e,0x38,0x37,0x36,0x56,0x32,0x34,0x39,0x2e, + 0x35,0x39,0x68,0x2d,0x31,0x39,0x2e,0x30,0x36,0x32, + 0x76,0x2d,0x31,0x32,0x2e,0x31,0x31,0x36,0x68,0x31, + 0x39,0x2e,0x30,0x36,0x32,0x76,0x2d,0x32,0x35,0x2e, + 0x34,0x38,0x35,0x6c,0x31,0x32,0x2e,0x37,0x34,0x2d, + 0x32,0x2e,0x30,0x37,0x0d,0x0a,0x09,0x09,0x76,0x32, + 0x37,0x2e,0x35,0x35,0x35,0x68,0x32,0x36,0x2e,0x39, + 0x33,0x36,0x76,0x31,0x32,0x2e,0x31,0x31,0x36,0x68, + 0x2d,0x32,0x36,0x2e,0x39,0x33,0x36,0x76,0x36,0x36, + 0x2e,0x36,0x31,0x31,0x63,0x30,0x2c,0x32,0x2e,0x31, + 0x34,0x33,0x2c,0x30,0x2e,0x33,0x39,0x38,0x2c,0x34, + 0x2e,0x31,0x32,0x39,0x2c,0x31,0x2e,0x31,0x39,0x34, + 0x2c,0x35,0x2e,0x39,0x35,0x35,0x63,0x30,0x2e,0x37, + 0x38,0x38,0x2c,0x31,0x2e,0x38,0x33,0x33,0x2c,0x31, + 0x2e,0x38,0x37,0x39,0x2c,0x33,0x2e,0x34,0x33,0x37, + 0x2c,0x33,0x2e,0x32,0x36,0x31,0x2c,0x34,0x2e,0x38, + 0x31,0x38,0x0d,0x0a,0x09,0x09,0x63,0x31,0x2e,0x33, + 0x38,0x32,0x2c,0x31,0x2e,0x33,0x38,0x31,0x2c,0x33, + 0x2e,0x30,0x30,0x34,0x2c,0x32,0x2e,0x34,0x37,0x32, + 0x2c,0x34,0x2e,0x38,0x36,0x38,0x2c,0x33,0x2e,0x32, + 0x36,0x34,0x63,0x31,0x2e,0x38,0x36,0x36,0x2c,0x30, + 0x2e,0x37,0x39,0x32,0x2c,0x33,0x2e,0x38,0x36,0x34, + 0x2c,0x31,0x2e,0x31,0x38,0x39,0x2c,0x36,0x2e,0x30, + 0x30,0x39,0x2c,0x31,0x2e,0x31,0x38,0x39,0x68,0x31, + 0x31,0x2e,0x36,0x30,0x34,0x76,0x31,0x32,0x2e,0x31, + 0x32,0x31,0x4c,0x31,0x30,0x31,0x34,0x2e,0x37,0x37, + 0x32,0x2c,0x33,0x34,0x33,0x2e,0x35,0x35,0x4c,0x31, + 0x30,0x31,0x34,0x2e,0x37,0x37,0x32,0x2c,0x33,0x34, + 0x33,0x2e,0x35,0x35,0x7a,0x22,0x2f,0x3e,0x0d,0x0a, + 0x09,0x3c,0x70,0x61,0x74,0x68,0x20,0x64,0x3d,0x22, + 0x4d,0x31,0x30,0x35,0x32,0x2e,0x39,0x39,0x36,0x2c, + 0x32,0x31,0x31,0x2e,0x39,0x38,0x39,0x56,0x31,0x39, + 0x35,0x68,0x31,0x34,0x2e,0x38,0x31,0x35,0x76,0x31, + 0x36,0x2e,0x39,0x38,0x39,0x48,0x31,0x30,0x35,0x32, + 0x2e,0x39,0x39,0x36,0x7a,0x20,0x4d,0x31,0x30,0x35, + 0x34,0x2e,0x30,0x33,0x33,0x2c,0x33,0x34,0x33,0x2e, + 0x35,0x35,0x56,0x32,0x33,0x37,0x2e,0x34,0x37,0x34, + 0x68,0x31,0x32,0x2e,0x37,0x34,0x31,0x56,0x33,0x34, + 0x33,0x2e,0x35,0x35,0x48,0x31,0x30,0x35,0x34,0x2e, + 0x30,0x33,0x33,0x7a,0x22,0x2f,0x3e,0x0d,0x0a,0x09, + 0x3c,0x70,0x61,0x74,0x68,0x20,0x64,0x3d,0x22,0x4d, + 0x31,0x31,0x36,0x34,0x2e,0x39,0x33,0x2c,0x33,0x32, + 0x36,0x2e,0x35,0x36,0x32,0x63,0x2d,0x31,0x2e,0x36, + 0x32,0x33,0x2c,0x33,0x2e,0x38,0x2d,0x33,0x2e,0x38, + 0x35,0x32,0x2c,0x37,0x2e,0x31,0x31,0x35,0x2d,0x36, + 0x2e,0x36,0x37,0x39,0x2c,0x39,0x2e,0x39,0x34,0x33, + 0x63,0x2d,0x32,0x2e,0x38,0x33,0x37,0x2c,0x32,0x2e, + 0x38,0x33,0x36,0x2d,0x36,0x2e,0x31,0x35,0x2c,0x35, + 0x2e,0x30,0x36,0x2d,0x39,0x2e,0x39,0x35,0x2c,0x36, + 0x2e,0x36,0x38,0x32,0x0d,0x0a,0x09,0x09,0x63,0x2d, + 0x33,0x2e,0x37,0x39,0x37,0x2c,0x31,0x2e,0x36,0x32, + 0x33,0x2d,0x37,0x2e,0x38,0x33,0x38,0x2c,0x32,0x2e, + 0x34,0x33,0x34,0x2d,0x31,0x32,0x2e,0x31,0x31,0x37, + 0x2c,0x32,0x2e,0x34,0x33,0x34,0x68,0x2d,0x38,0x2e, + 0x34,0x39,0x36,0x63,0x2d,0x34,0x2e,0x32,0x38,0x32, + 0x2c,0x30,0x2d,0x38,0x2e,0x33,0x31,0x39,0x2d,0x30, + 0x2e,0x38,0x31,0x32,0x2d,0x31,0x32,0x2e,0x31,0x31, + 0x36,0x2d,0x32,0x2e,0x34,0x33,0x34,0x63,0x2d,0x33, + 0x2e,0x38,0x30,0x35,0x2d,0x31,0x2e,0x36,0x32,0x33, + 0x2d,0x37,0x2e,0x31,0x31,0x39,0x2d,0x33,0x2e,0x38, + 0x34,0x36,0x2d,0x39,0x2e,0x39,0x34,0x36,0x2d,0x36, + 0x2e,0x36,0x38,0x32,0x0d,0x0a,0x09,0x09,0x63,0x2d, + 0x32,0x2e,0x38,0x33,0x37,0x2d,0x32,0x2e,0x38,0x32, + 0x38,0x2d,0x35,0x2e,0x30,0x36,0x32,0x2d,0x36,0x2e, + 0x31,0x34,0x33,0x2d,0x36,0x2e,0x36,0x38,0x33,0x2d, + 0x39,0x2e,0x39,0x34,0x33,0x63,0x2d,0x31,0x2e,0x36, + 0x32,0x37,0x2d,0x33,0x2e,0x37,0x39,0x36,0x2d,0x32, + 0x2e,0x34,0x33,0x35,0x2d,0x37,0x2e,0x38,0x33,0x38, + 0x2d,0x32,0x2e,0x34,0x33,0x35,0x2d,0x31,0x32,0x2e, + 0x31,0x32,0x31,0x76,0x2d,0x34,0x37,0x2e,0x38,0x35, + 0x38,0x63,0x30,0x2d,0x34,0x2e,0x32,0x38,0x32,0x2c, + 0x30,0x2e,0x38,0x30,0x38,0x2d,0x38,0x2e,0x33,0x32, + 0x34,0x2c,0x32,0x2e,0x34,0x33,0x35,0x2d,0x31,0x32, + 0x2e,0x31,0x32,0x0d,0x0a,0x09,0x09,0x63,0x31,0x2e, + 0x36,0x31,0x39,0x2d,0x33,0x2e,0x38,0x30,0x31,0x2c, + 0x33,0x2e,0x38,0x34,0x36,0x2d,0x37,0x2e,0x31,0x31, + 0x35,0x2c,0x36,0x2e,0x36,0x38,0x33,0x2d,0x39,0x2e, + 0x39,0x34,0x37,0x63,0x32,0x2e,0x38,0x32,0x37,0x2d, + 0x32,0x2e,0x38,0x33,0x33,0x2c,0x36,0x2e,0x31,0x34, + 0x33,0x2d,0x35,0x2e,0x30,0x35,0x36,0x2c,0x39,0x2e, + 0x39,0x34,0x36,0x2d,0x36,0x2e,0x36,0x38,0x32,0x63, + 0x33,0x2e,0x37,0x39,0x37,0x2d,0x31,0x2e,0x36,0x31, + 0x39,0x2c,0x37,0x2e,0x38,0x33,0x34,0x2d,0x32,0x2e, + 0x34,0x33,0x34,0x2c,0x31,0x32,0x2e,0x31,0x31,0x36, + 0x2d,0x32,0x2e,0x34,0x33,0x34,0x68,0x38,0x2e,0x34, + 0x39,0x36,0x0d,0x0a,0x09,0x09,0x63,0x34,0x2e,0x32, + 0x37,0x39,0x2c,0x30,0x2c,0x38,0x2e,0x33,0x32,0x2c, + 0x30,0x2e,0x38,0x31,0x35,0x2c,0x31,0x32,0x2e,0x31, + 0x31,0x37,0x2c,0x32,0x2e,0x34,0x33,0x34,0x63,0x33, + 0x2e,0x38,0x2c,0x31,0x2e,0x36,0x32,0x36,0x2c,0x37, + 0x2e,0x31,0x31,0x34,0x2c,0x33,0x2e,0x38,0x35,0x2c, + 0x39,0x2e,0x39,0x35,0x2c,0x36,0x2e,0x36,0x38,0x32, + 0x63,0x32,0x2e,0x38,0x32,0x37,0x2c,0x32,0x2e,0x38, + 0x33,0x32,0x2c,0x35,0x2e,0x30,0x35,0x36,0x2c,0x36, + 0x2e,0x31,0x34,0x36,0x2c,0x36,0x2e,0x36,0x37,0x39, + 0x2c,0x39,0x2e,0x39,0x34,0x37,0x0d,0x0a,0x09,0x09, + 0x63,0x31,0x2e,0x36,0x32,0x32,0x2c,0x33,0x2e,0x37, + 0x39,0x36,0x2c,0x32,0x2e,0x34,0x33,0x34,0x2c,0x37, + 0x2e,0x38,0x33,0x38,0x2c,0x32,0x2e,0x34,0x33,0x34, + 0x2c,0x31,0x32,0x2e,0x31,0x32,0x76,0x34,0x37,0x2e, + 0x38,0x35,0x38,0x43,0x31,0x31,0x36,0x37,0x2e,0x33, + 0x36,0x33,0x2c,0x33,0x31,0x38,0x2e,0x37,0x32,0x34, + 0x2c,0x31,0x31,0x36,0x36,0x2e,0x35,0x35,0x32,0x2c, + 0x33,0x32,0x32,0x2e,0x37,0x36,0x35,0x2c,0x31,0x31, + 0x36,0x34,0x2e,0x39,0x33,0x2c,0x33,0x32,0x36,0x2e, + 0x35,0x36,0x32,0x7a,0x20,0x4d,0x31,0x31,0x35,0x34, + 0x2e,0x36,0x32,0x32,0x2c,0x32,0x36,0x35,0x2e,0x38, + 0x35,0x35,0x0d,0x0a,0x09,0x09,0x63,0x30,0x2d,0x32, + 0x2e,0x35,0x35,0x33,0x2d,0x30,0x2e,0x34,0x38,0x31, + 0x2d,0x34,0x2e,0x39,0x35,0x32,0x2d,0x31,0x2e,0x34, + 0x34,0x39,0x2d,0x37,0x2e,0x31,0x39,0x39,0x63,0x2d, + 0x30,0x2e,0x39,0x37,0x2d,0x32,0x2e,0x32,0x34,0x33, + 0x2d,0x32,0x2e,0x32,0x37,0x37,0x2d,0x34,0x2e,0x31, + 0x39,0x34,0x2d,0x33,0x2e,0x39,0x33,0x38,0x2d,0x35, + 0x2e,0x38,0x35,0x32,0x63,0x2d,0x31,0x2e,0x36,0x35, + 0x33,0x2d,0x31,0x2e,0x36,0x35,0x37,0x2d,0x33,0x2e, + 0x36,0x30,0x38,0x2d,0x32,0x2e,0x39,0x37,0x2d,0x35, + 0x2e,0x38,0x35,0x32,0x2d,0x33,0x2e,0x39,0x33,0x38, + 0x0d,0x0a,0x09,0x09,0x63,0x2d,0x32,0x2e,0x32,0x34, + 0x36,0x2d,0x30,0x2e,0x39,0x36,0x34,0x2d,0x34,0x2e, + 0x36,0x34,0x36,0x2d,0x31,0x2e,0x34,0x35,0x2d,0x37, + 0x2e,0x31,0x39,0x39,0x2d,0x31,0x2e,0x34,0x35,0x68, + 0x2d,0x38,0x2e,0x34,0x39,0x36,0x63,0x2d,0x32,0x2e, + 0x35,0x35,0x37,0x2c,0x30,0x2d,0x34,0x2e,0x39,0x35, + 0x36,0x2c,0x30,0x2e,0x34,0x38,0x36,0x2d,0x37,0x2e, + 0x31,0x39,0x38,0x2c,0x31,0x2e,0x34,0x35,0x63,0x2d, + 0x32,0x2e,0x32,0x34,0x37,0x2c,0x30,0x2e,0x39,0x36, + 0x39,0x2d,0x34,0x2e,0x31,0x39,0x34,0x2c,0x32,0x2e, + 0x32,0x38,0x31,0x2d,0x35,0x2e,0x38,0x35,0x32,0x2c, + 0x33,0x2e,0x39,0x33,0x38,0x0d,0x0a,0x09,0x09,0x63, + 0x2d,0x31,0x2e,0x36,0x36,0x31,0x2c,0x31,0x2e,0x36, + 0x35,0x37,0x2d,0x32,0x2e,0x39,0x37,0x31,0x2c,0x33, + 0x2e,0x36,0x30,0x39,0x2d,0x33,0x2e,0x39,0x33,0x38, + 0x2c,0x35,0x2e,0x38,0x35,0x32,0x63,0x2d,0x30,0x2e, + 0x39,0x36,0x39,0x2c,0x32,0x2e,0x32,0x34,0x37,0x2d, + 0x31,0x2e,0x34,0x35,0x2c,0x34,0x2e,0x36,0x34,0x36, + 0x2d,0x31,0x2e,0x34,0x35,0x2c,0x37,0x2e,0x31,0x39, + 0x39,0x76,0x34,0x39,0x2e,0x33,0x30,0x39,0x63,0x30, + 0x2c,0x32,0x2e,0x35,0x35,0x36,0x2c,0x30,0x2e,0x34, + 0x38,0x31,0x2c,0x34,0x2e,0x39,0x35,0x36,0x2c,0x31, + 0x2e,0x34,0x35,0x2c,0x37,0x2e,0x32,0x30,0x32,0x0d, + 0x0a,0x09,0x09,0x63,0x30,0x2e,0x39,0x36,0x38,0x2c, + 0x32,0x2e,0x32,0x34,0x33,0x2c,0x32,0x2e,0x32,0x37, + 0x37,0x2c,0x34,0x2e,0x31,0x39,0x35,0x2c,0x33,0x2e, + 0x39,0x33,0x38,0x2c,0x35,0x2e,0x38,0x35,0x32,0x63, + 0x31,0x2e,0x36,0x35,0x36,0x2c,0x31,0x2e,0x36,0x35, + 0x37,0x2c,0x33,0x2e,0x36,0x30,0x34,0x2c,0x32,0x2e, + 0x39,0x37,0x2c,0x35,0x2e,0x38,0x35,0x32,0x2c,0x33, + 0x2e,0x39,0x33,0x38,0x63,0x32,0x2e,0x32,0x34,0x32, + 0x2c,0x30,0x2e,0x39,0x36,0x34,0x2c,0x34,0x2e,0x36, + 0x34,0x33,0x2c,0x31,0x2e,0x34,0x34,0x37,0x2c,0x37, + 0x2e,0x31,0x39,0x38,0x2c,0x31,0x2e,0x34,0x34,0x37, + 0x68,0x38,0x2e,0x34,0x39,0x36,0x0d,0x0a,0x09,0x09, + 0x63,0x32,0x2e,0x35,0x35,0x33,0x2c,0x30,0x2c,0x34, + 0x2e,0x39,0x35,0x33,0x2d,0x30,0x2e,0x34,0x38,0x32, + 0x2c,0x37,0x2e,0x31,0x39,0x39,0x2d,0x31,0x2e,0x34, + 0x34,0x37,0x63,0x32,0x2e,0x32,0x34,0x33,0x2d,0x30, + 0x2e,0x39,0x36,0x38,0x2c,0x34,0x2e,0x31,0x39,0x37, + 0x2d,0x32,0x2e,0x32,0x38,0x31,0x2c,0x35,0x2e,0x38, + 0x35,0x32,0x2d,0x33,0x2e,0x39,0x33,0x38,0x63,0x31, + 0x2e,0x36,0x36,0x31,0x2d,0x31,0x2e,0x36,0x35,0x37, + 0x2c,0x32,0x2e,0x39,0x37,0x2d,0x33,0x2e,0x36,0x30, + 0x39,0x2c,0x33,0x2e,0x39,0x33,0x38,0x2d,0x35,0x2e, + 0x38,0x35,0x32,0x0d,0x0a,0x09,0x09,0x63,0x30,0x2e, + 0x39,0x36,0x38,0x2d,0x32,0x2e,0x32,0x34,0x36,0x2c, + 0x31,0x2e,0x34,0x34,0x39,0x2d,0x34,0x2e,0x36,0x34, + 0x36,0x2c,0x31,0x2e,0x34,0x34,0x39,0x2d,0x37,0x2e, + 0x32,0x30,0x32,0x56,0x32,0x36,0x35,0x2e,0x38,0x35, + 0x35,0x7a,0x22,0x2f,0x3e,0x0d,0x0a,0x09,0x3c,0x70, + 0x61,0x74,0x68,0x20,0x64,0x3d,0x22,0x4d,0x31,0x32, + 0x35,0x30,0x2e,0x39,0x36,0x34,0x2c,0x33,0x34,0x33, + 0x2e,0x35,0x35,0x76,0x2d,0x37,0x37,0x2e,0x36,0x39, + 0x35,0x63,0x30,0x2d,0x32,0x2e,0x35,0x35,0x33,0x2d, + 0x30,0x2e,0x34,0x38,0x36,0x2d,0x34,0x2e,0x39,0x35, + 0x32,0x2d,0x31,0x2e,0x34,0x35,0x31,0x2d,0x37,0x2e, + 0x31,0x39,0x39,0x63,0x2d,0x30,0x2e,0x39,0x36,0x39, + 0x2d,0x32,0x2e,0x32,0x34,0x33,0x2d,0x32,0x2e,0x32, + 0x38,0x2d,0x34,0x2e,0x31,0x39,0x34,0x2d,0x33,0x2e, + 0x39,0x33,0x35,0x2d,0x35,0x2e,0x38,0x35,0x32,0x0d, + 0x0a,0x09,0x09,0x63,0x2d,0x31,0x2e,0x36,0x36,0x31, + 0x2d,0x31,0x2e,0x36,0x35,0x37,0x2d,0x33,0x2e,0x36, + 0x31,0x32,0x2d,0x32,0x2e,0x39,0x37,0x2d,0x35,0x2e, + 0x38,0x35,0x35,0x2d,0x33,0x2e,0x39,0x33,0x38,0x63, + 0x2d,0x32,0x2e,0x32,0x34,0x32,0x2d,0x30,0x2e,0x39, + 0x36,0x34,0x2d,0x34,0x2e,0x36,0x34,0x36,0x2d,0x31, + 0x2e,0x34,0x35,0x2d,0x37,0x2e,0x31,0x39,0x38,0x2d, + 0x31,0x2e,0x34,0x35,0x68,0x2d,0x38,0x2e,0x34,0x39, + 0x32,0x63,0x2d,0x32,0x2e,0x35,0x35,0x37,0x2c,0x30, + 0x2d,0x34,0x2e,0x39,0x36,0x2c,0x30,0x2e,0x34,0x38, + 0x36,0x2d,0x37,0x2e,0x32,0x30,0x33,0x2c,0x31,0x2e, + 0x34,0x35,0x0d,0x0a,0x09,0x09,0x63,0x2d,0x32,0x2e, + 0x32,0x34,0x31,0x2c,0x30,0x2e,0x39,0x36,0x39,0x2d, + 0x34,0x2e,0x31,0x39,0x33,0x2c,0x32,0x2e,0x32,0x38, + 0x31,0x2d,0x35,0x2e,0x38,0x35,0x34,0x2c,0x33,0x2e, + 0x39,0x33,0x38,0x63,0x2d,0x31,0x2e,0x36,0x35,0x33, + 0x2c,0x31,0x2e,0x36,0x35,0x37,0x2d,0x32,0x2e,0x39, + 0x37,0x2c,0x33,0x2e,0x36,0x30,0x39,0x2d,0x33,0x2e, + 0x39,0x33,0x35,0x2c,0x35,0x2e,0x38,0x35,0x32,0x63, + 0x2d,0x30,0x2e,0x39,0x36,0x39,0x2c,0x32,0x2e,0x32, + 0x34,0x37,0x2d,0x31,0x2e,0x34,0x35,0x2c,0x34,0x2e, + 0x36,0x34,0x36,0x2d,0x31,0x2e,0x34,0x35,0x2c,0x37, + 0x2e,0x31,0x39,0x39,0x76,0x37,0x37,0x2e,0x36,0x39, + 0x35,0x68,0x2d,0x31,0x32,0x2e,0x37,0x34,0x0d,0x0a, + 0x09,0x09,0x56,0x32,0x33,0x37,0x2e,0x34,0x37,0x34, + 0x68,0x34,0x2e,0x32,0x34,0x38,0x6c,0x36,0x2e,0x39, + 0x33,0x38,0x2c,0x31,0x30,0x2e,0x37,0x37,0x33,0x63, + 0x32,0x2e,0x39,0x2d,0x33,0x2e,0x39,0x33,0x38,0x2c, + 0x36,0x2e,0x35,0x34,0x31,0x2d,0x37,0x2e,0x30,0x36, + 0x31,0x2c,0x31,0x30,0x2e,0x39,0x33,0x31,0x2d,0x39, + 0x2e,0x33,0x37,0x36,0x63,0x34,0x2e,0x33,0x38,0x32, + 0x2d,0x32,0x2e,0x33,0x31,0x32,0x2c,0x39,0x2e,0x31, + 0x36,0x36,0x2d,0x33,0x2e,0x34,0x37,0x31,0x2c,0x31, + 0x34,0x2e,0x33,0x34,0x38,0x2d,0x33,0x2e,0x34,0x37, + 0x31,0x68,0x33,0x2e,0x32,0x31,0x31,0x0d,0x0a,0x09, + 0x09,0x63,0x34,0x2e,0x32,0x38,0x32,0x2c,0x30,0x2c, + 0x38,0x2e,0x33,0x32,0x2c,0x30,0x2e,0x38,0x31,0x35, + 0x2c,0x31,0x32,0x2e,0x31,0x32,0x2c,0x32,0x2e,0x34, + 0x33,0x34,0x63,0x33,0x2e,0x37,0x39,0x37,0x2c,0x31, + 0x2e,0x36,0x32,0x36,0x2c,0x37,0x2e,0x31,0x31,0x31, + 0x2c,0x33,0x2e,0x38,0x35,0x2c,0x39,0x2e,0x39,0x34, + 0x33,0x2c,0x36,0x2e,0x36,0x38,0x32,0x73,0x35,0x2e, + 0x30,0x36,0x2c,0x36,0x2e,0x31,0x34,0x36,0x2c,0x36, + 0x2e,0x36,0x38,0x32,0x2c,0x39,0x2e,0x39,0x34,0x37, + 0x63,0x31,0x2e,0x36,0x32,0x33,0x2c,0x33,0x2e,0x37, + 0x39,0x36,0x2c,0x32,0x2e,0x34,0x33,0x36,0x2c,0x37, + 0x2e,0x38,0x33,0x38,0x2c,0x32,0x2e,0x34,0x33,0x36, + 0x2c,0x31,0x32,0x2e,0x31,0x32,0x0d,0x0a,0x09,0x09, + 0x76,0x37,0x36,0x2e,0x39,0x36,0x38,0x4c,0x31,0x32, + 0x35,0x30,0x2e,0x39,0x36,0x34,0x2c,0x33,0x34,0x33, + 0x2e,0x35,0x35,0x4c,0x31,0x32,0x35,0x30,0x2e,0x39, + 0x36,0x34,0x2c,0x33,0x34,0x33,0x2e,0x35,0x35,0x7a, + 0x22,0x2f,0x3e,0x0d,0x0a,0x09,0x3c,0x70,0x61,0x74, + 0x68,0x20,0x64,0x3d,0x22,0x4d,0x35,0x36,0x33,0x2e, + 0x31,0x30,0x39,0x2c,0x34,0x39,0x36,0x2e,0x32,0x35, + 0x38,0x63,0x30,0x2c,0x34,0x2e,0x32,0x37,0x38,0x2d, + 0x30,0x2e,0x38,0x36,0x35,0x2c,0x38,0x2e,0x31,0x39, + 0x38,0x2d,0x32,0x2e,0x35,0x38,0x37,0x2c,0x31,0x31, + 0x2e,0x37,0x35,0x37,0x63,0x2d,0x31,0x2e,0x37,0x32, + 0x39,0x2c,0x33,0x2e,0x35,0x36,0x31,0x2d,0x34,0x2e, + 0x30,0x37,0x36,0x2c,0x36,0x2e,0x36,0x31,0x33,0x2d, + 0x37,0x2e,0x30,0x34,0x36,0x2c,0x39,0x2e,0x31,0x37, + 0x0d,0x0a,0x09,0x09,0x63,0x2d,0x32,0x2e,0x39,0x37, + 0x2c,0x32,0x2e,0x35,0x35,0x38,0x2d,0x36,0x2e,0x34, + 0x30,0x36,0x2c,0x34,0x2e,0x35,0x33,0x39,0x2d,0x31, + 0x30,0x2e,0x33,0x30,0x37,0x2c,0x35,0x2e,0x39,0x35, + 0x35,0x63,0x2d,0x33,0x2e,0x39,0x30,0x33,0x2c,0x31, + 0x2e,0x34,0x31,0x36,0x2d,0x37,0x2e,0x39,0x39,0x35, + 0x2c,0x32,0x2e,0x31,0x32,0x2d,0x31,0x32,0x2e,0x32, + 0x37,0x37,0x2c,0x32,0x2e,0x31,0x32,0x48,0x35,0x32, + 0x32,0x2e,0x34,0x63,0x2d,0x34,0x2e,0x32,0x38,0x33, + 0x2c,0x30,0x2d,0x38,0x2e,0x33,0x37,0x37,0x2d,0x30, + 0x2e,0x38,0x31,0x32,0x2d,0x31,0x32,0x2e,0x32,0x37, + 0x37,0x2d,0x32,0x2e,0x34,0x33,0x34,0x0d,0x0a,0x09, + 0x09,0x63,0x2d,0x33,0x2e,0x39,0x30,0x33,0x2d,0x31, + 0x2e,0x36,0x32,0x33,0x2d,0x37,0x2e,0x33,0x32,0x2d, + 0x33,0x2e,0x38,0x34,0x33,0x2d,0x31,0x30,0x2e,0x32, + 0x35,0x37,0x2d,0x36,0x2e,0x36,0x38,0x33,0x63,0x2d, + 0x32,0x2e,0x39,0x33,0x36,0x2d,0x32,0x2e,0x38,0x32, + 0x34,0x2d,0x35,0x2e,0x32,0x38,0x2d,0x36,0x2e,0x31, + 0x34,0x2d,0x37,0x2e,0x30,0x34,0x32,0x2d,0x39,0x2e, + 0x39,0x34,0x33,0x63,0x2d,0x31,0x2e,0x37,0x36,0x2d, + 0x33,0x2e,0x37,0x39,0x37,0x2d,0x32,0x2e,0x36,0x34, + 0x31,0x2d,0x37,0x2e,0x38,0x33,0x38,0x2d,0x32,0x2e, + 0x36,0x34,0x31,0x2d,0x31,0x32,0x2e,0x31,0x31,0x36, + 0x76,0x2d,0x34,0x2e,0x32,0x34,0x38,0x0d,0x0a,0x09, + 0x09,0x6c,0x31,0x32,0x2e,0x37,0x34,0x2d,0x32,0x2e, + 0x30,0x37,0x34,0x76,0x37,0x2e,0x30,0x34,0x32,0x63, + 0x30,0x2c,0x32,0x2e,0x35,0x35,0x37,0x2c,0x30,0x2e, + 0x35,0x33,0x31,0x2c,0x34,0x2e,0x39,0x36,0x31,0x2c, + 0x31,0x2e,0x36,0x30,0x34,0x2c,0x37,0x2e,0x32,0x30, + 0x32,0x63,0x31,0x2e,0x30,0x37,0x31,0x2c,0x32,0x2e, + 0x32,0x34,0x33,0x2c,0x32,0x2e,0x35,0x30,0x33,0x2c, + 0x34,0x2e,0x31,0x39,0x34,0x2c,0x34,0x2e,0x33,0x30, + 0x31,0x2c,0x35,0x2e,0x38,0x35,0x34,0x63,0x31,0x2e, + 0x37,0x39,0x35,0x2c,0x31,0x2e,0x36,0x35,0x34,0x2c, + 0x33,0x2e,0x38,0x36,0x36,0x2c,0x32,0x2e,0x39,0x37, + 0x31,0x2c,0x36,0x2e,0x32,0x31,0x37,0x2c,0x33,0x2e, + 0x39,0x33,0x36,0x0d,0x0a,0x09,0x09,0x63,0x32,0x2e, + 0x33,0x34,0x36,0x2c,0x30,0x2e,0x39,0x36,0x35,0x2c, + 0x34,0x2e,0x37,0x39,0x39,0x2c,0x31,0x2e,0x34,0x34, + 0x37,0x2c,0x37,0x2e,0x33,0x35,0x34,0x2c,0x31,0x2e, + 0x34,0x34,0x37,0x68,0x38,0x2e,0x34,0x39,0x32,0x63, + 0x32,0x2e,0x35,0x35,0x37,0x2c,0x30,0x2c,0x35,0x2e, + 0x30,0x30,0x36,0x2d,0x30,0x2e,0x33,0x37,0x36,0x2c, + 0x37,0x2e,0x33,0x35,0x35,0x2d,0x31,0x2e,0x31,0x33, + 0x35,0x63,0x32,0x2e,0x33,0x34,0x37,0x2d,0x30,0x2e, + 0x37,0x36,0x35,0x2c,0x34,0x2e,0x34,0x33,0x37,0x2d, + 0x31,0x2e,0x38,0x35,0x32,0x2c,0x36,0x2e,0x32,0x37, + 0x2d,0x33,0x2e,0x32,0x36,0x38,0x0d,0x0a,0x09,0x09, + 0x63,0x31,0x2e,0x38,0x32,0x39,0x2d,0x31,0x2e,0x34, + 0x31,0x36,0x2c,0x33,0x2e,0x32,0x38,0x2d,0x33,0x2e, + 0x31,0x32,0x33,0x2c,0x34,0x2e,0x33,0x35,0x31,0x2d, + 0x35,0x2e,0x31,0x32,0x39,0x63,0x31,0x2e,0x30,0x36, + 0x38,0x2d,0x31,0x2e,0x39,0x39,0x37,0x2c,0x31,0x2e, + 0x36,0x30,0x34,0x2d,0x34,0x2e,0x32,0x37,0x37,0x2c, + 0x31,0x2e,0x36,0x30,0x34,0x2d,0x36,0x2e,0x38,0x33, + 0x35,0x63,0x30,0x2d,0x33,0x2e,0x37,0x39,0x37,0x2d, + 0x30,0x2e,0x38,0x32,0x37,0x2d,0x36,0x2e,0x39,0x30, + 0x33,0x2d,0x32,0x2e,0x34,0x38,0x38,0x2d,0x39,0x2e, + 0x33,0x32,0x33,0x0d,0x0a,0x09,0x09,0x63,0x2d,0x31, + 0x2e,0x36,0x35,0x37,0x2d,0x32,0x2e,0x34,0x31,0x39, + 0x2d,0x33,0x2e,0x38,0x35,0x2d,0x34,0x2e,0x34,0x33, + 0x38,0x2d,0x36,0x2e,0x35,0x37,0x35,0x2d,0x36,0x2e, + 0x30,0x36,0x32,0x63,0x2d,0x32,0x2e,0x37,0x32,0x39, + 0x2d,0x31,0x2e,0x36,0x32,0x33,0x2d,0x35,0x2e,0x38, + 0x33,0x36,0x2d,0x32,0x2e,0x39,0x36,0x34,0x2d,0x39, + 0x2e,0x33,0x32,0x32,0x2d,0x34,0x2e,0x30,0x33,0x34, + 0x63,0x2d,0x33,0x2e,0x34,0x39,0x2d,0x31,0x2e,0x30, + 0x37,0x31,0x2d,0x37,0x2e,0x30,0x36,0x35,0x2d,0x32, + 0x2e,0x31,0x34,0x35,0x2d,0x31,0x30,0x2e,0x37,0x32, + 0x35,0x2d,0x33,0x2e,0x32,0x31,0x35,0x0d,0x0a,0x09, + 0x09,0x63,0x2d,0x33,0x2e,0x36,0x36,0x33,0x2d,0x31, + 0x2e,0x30,0x37,0x31,0x2d,0x37,0x2e,0x32,0x33,0x36, + 0x2d,0x32,0x2e,0x32,0x39,0x36,0x2d,0x31,0x30,0x2e, + 0x37,0x32,0x34,0x2d,0x33,0x2e,0x36,0x37,0x34,0x63, + 0x2d,0x33,0x2e,0x34,0x38,0x36,0x2d,0x31,0x2e,0x33, + 0x38,0x37,0x2d,0x36,0x2e,0x35,0x39,0x34,0x2d,0x33, + 0x2e,0x32,0x2d,0x39,0x2e,0x33,0x32,0x33,0x2d,0x35, + 0x2e,0x34,0x34,0x32,0x63,0x2d,0x32,0x2e,0x37,0x32, + 0x39,0x2d,0x32,0x2e,0x32,0x34,0x32,0x2d,0x34,0x2e, + 0x39,0x31,0x38,0x2d,0x35,0x2e,0x30,0x36,0x2d,0x36, + 0x2e,0x35,0x37,0x35,0x2d,0x38,0x2e,0x34,0x34,0x32, + 0x0d,0x0a,0x09,0x09,0x63,0x2d,0x31,0x2e,0x36,0x36, + 0x31,0x2d,0x33,0x2e,0x33,0x38,0x34,0x2d,0x32,0x2e, + 0x34,0x38,0x37,0x2d,0x37,0x2e,0x35,0x39,0x33,0x2d, + 0x32,0x2e,0x34,0x38,0x37,0x2d,0x31,0x32,0x2e,0x36, + 0x33,0x38,0x63,0x30,0x2d,0x34,0x2e,0x32,0x37,0x38, + 0x2c,0x30,0x2e,0x38,0x32,0x36,0x2d,0x38,0x2e,0x31, + 0x39,0x36,0x2c,0x32,0x2e,0x34,0x38,0x37,0x2d,0x31, + 0x31,0x2e,0x37,0x35,0x37,0x63,0x31,0x2e,0x36,0x35, + 0x37,0x2d,0x33,0x2e,0x35,0x36,0x31,0x2c,0x33,0x2e, + 0x39,0x2d,0x36,0x2e,0x36,0x31,0x33,0x2c,0x36,0x2e, + 0x37,0x33,0x32,0x2d,0x39,0x2e,0x31,0x37,0x0d,0x0a, + 0x09,0x09,0x73,0x36,0x2e,0x31,0x32,0x37,0x2d,0x34, + 0x2e,0x35,0x33,0x39,0x2c,0x39,0x2e,0x38,0x39,0x33, + 0x2d,0x35,0x2e,0x39,0x35,0x35,0x63,0x33,0x2e,0x37, + 0x36,0x33,0x2d,0x31,0x2e,0x34,0x31,0x36,0x2c,0x37, + 0x2e,0x37,0x38,0x35,0x2d,0x32,0x2e,0x31,0x32,0x38, + 0x2c,0x31,0x32,0x2e,0x30,0x36,0x37,0x2d,0x32,0x2e, + 0x31,0x32,0x38,0x68,0x37,0x2e,0x34,0x35,0x39,0x63, + 0x34,0x2e,0x32,0x38,0x33,0x2c,0x30,0x2c,0x38,0x2e, + 0x33,0x32,0x34,0x2c,0x30,0x2e,0x38,0x31,0x39,0x2c, + 0x31,0x32,0x2e,0x31,0x32,0x31,0x2c,0x32,0x2e,0x34, + 0x33,0x35,0x0d,0x0a,0x09,0x09,0x63,0x33,0x2e,0x37, + 0x39,0x36,0x2c,0x31,0x2e,0x36,0x33,0x31,0x2c,0x37, + 0x2e,0x31,0x31,0x35,0x2c,0x33,0x2e,0x38,0x35,0x31, + 0x2c,0x39,0x2e,0x39,0x34,0x37,0x2c,0x36,0x2e,0x36, + 0x38,0x32,0x63,0x32,0x2e,0x38,0x32,0x37,0x2c,0x32, + 0x2e,0x38,0x33,0x34,0x2c,0x35,0x2e,0x30,0x35,0x36, + 0x2c,0x36,0x2e,0x31,0x34,0x36,0x2c,0x36,0x2e,0x36, + 0x38,0x32,0x2c,0x39,0x2e,0x39,0x35,0x31,0x63,0x31, + 0x2e,0x36,0x31,0x39,0x2c,0x33,0x2e,0x37,0x39,0x37, + 0x2c,0x32,0x2e,0x34,0x33,0x34,0x2c,0x37,0x2e,0x38, + 0x33,0x38,0x2c,0x32,0x2e,0x34,0x33,0x34,0x2c,0x31, + 0x32,0x2e,0x31,0x31,0x37,0x76,0x30,0x2e,0x34,0x31, + 0x33,0x0d,0x0a,0x09,0x09,0x6c,0x2d,0x31,0x32,0x2e, + 0x37,0x34,0x34,0x2c,0x32,0x2e,0x30,0x37,0x34,0x76, + 0x2d,0x33,0x2e,0x32,0x31,0x35,0x63,0x30,0x2d,0x32, + 0x2e,0x35,0x35,0x2d,0x30,0x2e,0x34,0x38,0x31,0x2d, + 0x34,0x2e,0x39,0x35,0x33,0x2d,0x31,0x2e,0x34,0x35, + 0x2d,0x37,0x2e,0x31,0x39,0x35,0x63,0x2d,0x30,0x2e, + 0x39,0x37,0x2d,0x32,0x2e,0x32,0x34,0x31,0x2d,0x32, + 0x2e,0x32,0x37,0x37,0x2d,0x34,0x2e,0x31,0x39,0x34, + 0x2d,0x33,0x2e,0x39,0x33,0x35,0x2d,0x35,0x2e,0x38, + 0x35,0x34,0x63,0x2d,0x31,0x2e,0x36,0x35,0x37,0x2d, + 0x31,0x2e,0x36,0x35,0x33,0x2d,0x33,0x2e,0x36,0x30, + 0x38,0x2d,0x32,0x2e,0x39,0x37,0x31,0x2d,0x35,0x2e, + 0x38,0x35,0x34,0x2d,0x33,0x2e,0x39,0x33,0x36,0x0d, + 0x0a,0x09,0x09,0x63,0x2d,0x32,0x2e,0x32,0x34,0x33, + 0x2d,0x30,0x2e,0x39,0x36,0x34,0x2d,0x34,0x2e,0x36, + 0x34,0x34,0x2d,0x31,0x2e,0x34,0x35,0x33,0x2d,0x37, + 0x2e,0x31,0x39,0x39,0x2d,0x31,0x2e,0x34,0x35,0x33, + 0x68,0x2d,0x37,0x2e,0x34,0x35,0x39,0x63,0x2d,0x32, + 0x2e,0x35,0x35,0x33,0x2c,0x30,0x2d,0x34,0x2e,0x39, + 0x35,0x36,0x2c,0x30,0x2e,0x33,0x38,0x33,0x2d,0x37, + 0x2e,0x31,0x39,0x39,0x2c,0x31,0x2e,0x31,0x34,0x31, + 0x63,0x2d,0x32,0x2e,0x32,0x34,0x33,0x2c,0x30,0x2e, + 0x37,0x36,0x36,0x2d,0x34,0x2e,0x31,0x39,0x35,0x2c, + 0x31,0x2e,0x38,0x35,0x33,0x2d,0x35,0x2e,0x38,0x35, + 0x32,0x2c,0x33,0x2e,0x32,0x36,0x31,0x0d,0x0a,0x09, + 0x09,0x63,0x2d,0x31,0x2e,0x36,0x35,0x37,0x2c,0x31, + 0x2e,0x34,0x32,0x34,0x2d,0x32,0x2e,0x39,0x37,0x31, + 0x2c,0x33,0x2e,0x31,0x33,0x2d,0x33,0x2e,0x39,0x33, + 0x38,0x2c,0x35,0x2e,0x31,0x32,0x38,0x63,0x2d,0x30, + 0x2e,0x39,0x36,0x39,0x2c,0x32,0x2e,0x30,0x30,0x36, + 0x2d,0x31,0x2e,0x34,0x35,0x31,0x2c,0x34,0x2e,0x32, + 0x38,0x37,0x2d,0x31,0x2e,0x34,0x35,0x31,0x2c,0x36, + 0x2e,0x38,0x34,0x34,0x63,0x30,0x2c,0x33,0x2e,0x36, + 0x35,0x38,0x2c,0x30,0x2e,0x38,0x33,0x31,0x2c,0x36, + 0x2e,0x36,0x34,0x35,0x2c,0x32,0x2e,0x34,0x38,0x38, + 0x2c,0x38,0x2e,0x39,0x35,0x35,0x0d,0x0a,0x09,0x09, + 0x63,0x31,0x2e,0x36,0x35,0x37,0x2c,0x32,0x2e,0x33, + 0x31,0x39,0x2c,0x33,0x2e,0x38,0x35,0x2c,0x34,0x2e, + 0x32,0x37,0x31,0x2c,0x36,0x2e,0x35,0x37,0x39,0x2c, + 0x35,0x2e,0x38,0x35,0x35,0x63,0x32,0x2e,0x37,0x32, + 0x35,0x2c,0x31,0x2e,0x35,0x39,0x32,0x2c,0x35,0x2e, + 0x38,0x33,0x33,0x2c,0x32,0x2e,0x39,0x31,0x36,0x2c, + 0x39,0x2e,0x33,0x32,0x33,0x2c,0x33,0x2e,0x39,0x38, + 0x36,0x63,0x33,0x2e,0x34,0x38,0x36,0x2c,0x31,0x2e, + 0x30,0x37,0x32,0x2c,0x37,0x2e,0x30,0x34,0x32,0x2c, + 0x32,0x2e,0x31,0x37,0x34,0x2c,0x31,0x30,0x2e,0x36, + 0x37,0x2c,0x33,0x2e,0x33,0x31,0x34,0x0d,0x0a,0x09, + 0x09,0x63,0x33,0x2e,0x36,0x32,0x35,0x2c,0x31,0x2e, + 0x31,0x34,0x31,0x2c,0x37,0x2e,0x31,0x38,0x2c,0x32, + 0x2e,0x34,0x33,0x36,0x2c,0x31,0x30,0x2e,0x36,0x37, + 0x2c,0x33,0x2e,0x38,0x38,0x39,0x63,0x33,0x2e,0x34, + 0x38,0x36,0x2c,0x31,0x2e,0x34,0x34,0x36,0x2c,0x36, + 0x2e,0x35,0x39,0x34,0x2c,0x33,0x2e,0x33,0x31,0x34, + 0x2c,0x39,0x2e,0x33,0x32,0x33,0x2c,0x35,0x2e,0x35, + 0x38,0x38,0x63,0x32,0x2e,0x37,0x32,0x39,0x2c,0x32, + 0x2e,0x32,0x38,0x2c,0x34,0x2e,0x39,0x32,0x32,0x2c, + 0x35,0x2e,0x31,0x32,0x39,0x2c,0x36,0x2e,0x35,0x37, + 0x39,0x2c,0x38,0x2e,0x35,0x35,0x31,0x0d,0x0a,0x09, + 0x09,0x43,0x35,0x36,0x32,0x2e,0x32,0x38,0x32,0x2c, + 0x34,0x38,0x36,0x2e,0x39,0x38,0x39,0x2c,0x35,0x36, + 0x33,0x2e,0x31,0x30,0x39,0x2c,0x34,0x39,0x31,0x2e, + 0x32,0x31,0x34,0x2c,0x35,0x36,0x33,0x2e,0x31,0x30, + 0x39,0x2c,0x34,0x39,0x36,0x2e,0x32,0x35,0x38,0x7a, + 0x22,0x2f,0x3e,0x0d,0x0a,0x09,0x3c,0x70,0x61,0x74, + 0x68,0x20,0x64,0x3d,0x22,0x4d,0x36,0x32,0x36,0x2e, + 0x31,0x39,0x36,0x2c,0x35,0x32,0x33,0x2e,0x31,0x39, + 0x34,0x63,0x2d,0x33,0x2e,0x38,0x36,0x35,0x2c,0x30, + 0x2d,0x37,0x2e,0x35,0x30,0x39,0x2d,0x30,0x2e,0x37, + 0x32,0x39,0x2d,0x31,0x30,0x2e,0x39,0x32,0x36,0x2d, + 0x32,0x2e,0x31,0x37,0x34,0x63,0x2d,0x33,0x2e,0x34, + 0x32,0x31,0x2d,0x31,0x2e,0x34,0x35,0x35,0x2d,0x36, + 0x2e,0x33,0x39,0x32,0x2d,0x33,0x2e,0x34,0x36,0x31, + 0x2d,0x38,0x2e,0x39,0x31,0x2d,0x36,0x2e,0x30,0x31, + 0x0d,0x0a,0x09,0x09,0x63,0x2d,0x32,0x2e,0x35,0x32, + 0x31,0x2d,0x32,0x2e,0x35,0x35,0x37,0x2d,0x34,0x2e, + 0x35,0x32,0x32,0x2d,0x35,0x2e,0x35,0x32,0x35,0x2d, + 0x36,0x2e,0x30,0x30,0x38,0x2d,0x38,0x2e,0x39,0x30, + 0x38,0x63,0x2d,0x31,0x2e,0x34,0x38,0x35,0x2d,0x33, + 0x2e,0x33,0x38,0x35,0x2d,0x32,0x2e,0x32,0x32,0x39, + 0x2d,0x37,0x2e,0x30,0x31,0x33,0x2d,0x32,0x2e,0x32, + 0x32,0x39,0x2d,0x31,0x30,0x2e,0x38,0x37,0x37,0x76, + 0x2d,0x36,0x35,0x2e,0x39,0x39,0x36,0x68,0x2d,0x31, + 0x39,0x2e,0x30,0x35,0x39,0x76,0x2d,0x31,0x32,0x2e, + 0x31,0x31,0x37,0x68,0x31,0x39,0x2e,0x30,0x35,0x39, + 0x76,0x2d,0x32,0x35,0x2e,0x34,0x37,0x39,0x6c,0x31, + 0x32,0x2e,0x37,0x34,0x2d,0x32,0x2e,0x30,0x37,0x33, + 0x0d,0x0a,0x09,0x09,0x76,0x32,0x37,0x2e,0x35,0x35, + 0x35,0x48,0x36,0x33,0x37,0x2e,0x38,0x76,0x31,0x32, + 0x2e,0x31,0x31,0x37,0x68,0x2d,0x32,0x36,0x2e,0x39, + 0x33,0x37,0x76,0x36,0x36,0x2e,0x36,0x31,0x34,0x63, + 0x30,0x2c,0x32,0x2e,0x31,0x34,0x34,0x2c,0x30,0x2e, + 0x33,0x39,0x38,0x2c,0x34,0x2e,0x31,0x32,0x36,0x2c, + 0x31,0x2e,0x31,0x39,0x34,0x2c,0x35,0x2e,0x39,0x35, + 0x35,0x63,0x30,0x2e,0x37,0x39,0x32,0x2c,0x31,0x2e, + 0x38,0x32,0x39,0x2c,0x31,0x2e,0x38,0x37,0x39,0x2c, + 0x33,0x2e,0x34,0x33,0x37,0x2c,0x33,0x2e,0x32,0x36, + 0x31,0x2c,0x34,0x2e,0x38,0x31,0x33,0x0d,0x0a,0x09, + 0x09,0x63,0x31,0x2e,0x33,0x38,0x31,0x2c,0x31,0x2e, + 0x33,0x38,0x36,0x2c,0x33,0x2e,0x30,0x30,0x34,0x2c, + 0x32,0x2e,0x34,0x37,0x33,0x2c,0x34,0x2e,0x38,0x36, + 0x38,0x2c,0x33,0x2e,0x32,0x37,0x63,0x31,0x2e,0x38, + 0x36,0x38,0x2c,0x30,0x2e,0x37,0x38,0x38,0x2c,0x33, + 0x2e,0x38,0x36,0x39,0x2c,0x31,0x2e,0x31,0x38,0x38, + 0x2c,0x36,0x2e,0x30,0x30,0x38,0x2c,0x31,0x2e,0x31, + 0x38,0x38,0x68,0x31,0x31,0x2e,0x36,0x30,0x34,0x76, + 0x31,0x32,0x2e,0x31,0x32,0x33,0x48,0x36,0x32,0x36, + 0x2e,0x31,0x39,0x36,0x4c,0x36,0x32,0x36,0x2e,0x31, + 0x39,0x36,0x2c,0x35,0x32,0x33,0x2e,0x31,0x39,0x34, + 0x7a,0x22,0x2f,0x3e,0x0d,0x0a,0x09,0x3c,0x70,0x61, + 0x74,0x68,0x20,0x64,0x3d,0x22,0x4d,0x37,0x32,0x37, + 0x2e,0x38,0x32,0x31,0x2c,0x35,0x32,0x33,0x2e,0x31, + 0x39,0x34,0x6c,0x2d,0x37,0x2e,0x30,0x34,0x32,0x2d, + 0x31,0x30,0x2e,0x35,0x37,0x63,0x2d,0x32,0x2e,0x38, + 0x39,0x39,0x2c,0x33,0x2e,0x38,0x30,0x34,0x2d,0x36, + 0x2e,0x35,0x32,0x37,0x2c,0x36,0x2e,0x38,0x35,0x37, + 0x2d,0x31,0x30,0x2e,0x38,0x37,0x36,0x2c,0x39,0x2e, + 0x31,0x36,0x39,0x63,0x2d,0x34,0x2e,0x33,0x35,0x32, + 0x2c,0x32,0x2e,0x33,0x31,0x32,0x2d,0x39,0x2e,0x31, + 0x31,0x36,0x2c,0x33,0x2e,0x34,0x36,0x38,0x2d,0x31, + 0x34,0x2e,0x32,0x39,0x39,0x2c,0x33,0x2e,0x34,0x36, + 0x38,0x68,0x2d,0x33,0x2e,0x32,0x30,0x37,0x0d,0x0a, + 0x09,0x09,0x63,0x2d,0x34,0x2e,0x32,0x38,0x36,0x2c, + 0x30,0x2d,0x38,0x2e,0x33,0x32,0x38,0x2d,0x30,0x2e, + 0x38,0x31,0x32,0x2d,0x31,0x32,0x2e,0x31,0x32,0x34, + 0x2d,0x32,0x2e,0x34,0x33,0x34,0x63,0x2d,0x33,0x2e, + 0x38,0x30,0x31,0x2d,0x31,0x2e,0x36,0x32,0x33,0x2d, + 0x37,0x2e,0x31,0x31,0x34,0x2d,0x33,0x2e,0x38,0x34, + 0x34,0x2d,0x39,0x2e,0x39,0x34,0x33,0x2d,0x36,0x2e, + 0x36,0x38,0x34,0x63,0x2d,0x32,0x2e,0x38,0x33,0x36, + 0x2d,0x32,0x2e,0x38,0x32,0x34,0x2d,0x35,0x2e,0x30, + 0x36,0x32,0x2d,0x36,0x2e,0x31,0x33,0x39,0x2d,0x36, + 0x2e,0x36,0x38,0x32,0x2d,0x39,0x2e,0x39,0x34,0x32, + 0x0d,0x0a,0x09,0x09,0x63,0x2d,0x31,0x2e,0x36,0x32, + 0x37,0x2d,0x33,0x2e,0x37,0x39,0x36,0x2d,0x32,0x2e, + 0x34,0x33,0x35,0x2d,0x37,0x2e,0x38,0x33,0x39,0x2d, + 0x32,0x2e,0x34,0x33,0x35,0x2d,0x31,0x32,0x2e,0x31, + 0x31,0x36,0x76,0x2d,0x31,0x2e,0x30,0x34,0x31,0x63, + 0x30,0x2d,0x34,0x2e,0x32,0x37,0x37,0x2c,0x30,0x2e, + 0x38,0x30,0x38,0x2d,0x38,0x2e,0x33,0x32,0x2c,0x32, + 0x2e,0x34,0x33,0x35,0x2d,0x31,0x32,0x2e,0x31,0x31, + 0x36,0x63,0x31,0x2e,0x36,0x31,0x38,0x2d,0x33,0x2e, + 0x37,0x39,0x37,0x2c,0x33,0x2e,0x38,0x34,0x36,0x2d, + 0x37,0x2e,0x31,0x31,0x2c,0x36,0x2e,0x36,0x38,0x32, + 0x2d,0x39,0x2e,0x39,0x34,0x32,0x0d,0x0a,0x09,0x09, + 0x63,0x32,0x2e,0x38,0x32,0x39,0x2d,0x32,0x2e,0x38, + 0x33,0x32,0x2c,0x36,0x2e,0x31,0x34,0x34,0x2d,0x35, + 0x2e,0x30,0x36,0x31,0x2c,0x39,0x2e,0x39,0x34,0x33, + 0x2d,0x36,0x2e,0x36,0x38,0x33,0x63,0x33,0x2e,0x37, + 0x39,0x36,0x2d,0x31,0x2e,0x36,0x32,0x32,0x2c,0x37, + 0x2e,0x38,0x33,0x38,0x2d,0x32,0x2e,0x34,0x33,0x35, + 0x2c,0x31,0x32,0x2e,0x31,0x32,0x34,0x2d,0x32,0x2e, + 0x34,0x33,0x35,0x68,0x32,0x36,0x2e,0x39,0x33,0x32, + 0x76,0x2d,0x31,0x36,0x2e,0x33,0x37,0x32,0x63,0x30, + 0x2d,0x32,0x2e,0x35,0x34,0x39,0x2d,0x30,0x2e,0x34, + 0x38,0x35,0x2d,0x34,0x2e,0x39,0x35,0x33,0x2d,0x31, + 0x2e,0x34,0x34,0x39,0x2d,0x37,0x2e,0x31,0x39,0x35, + 0x0d,0x0a,0x09,0x09,0x63,0x2d,0x30,0x2e,0x39,0x37, + 0x2d,0x32,0x2e,0x32,0x34,0x31,0x2d,0x32,0x2e,0x32, + 0x38,0x31,0x2d,0x34,0x2e,0x31,0x39,0x34,0x2d,0x33, + 0x2e,0x39,0x33,0x36,0x2d,0x35,0x2e,0x38,0x35,0x34, + 0x63,0x2d,0x31,0x2e,0x36,0x36,0x31,0x2d,0x31,0x2e, + 0x36,0x35,0x33,0x2d,0x33,0x2e,0x36,0x31,0x32,0x2d, + 0x32,0x2e,0x39,0x37,0x31,0x2d,0x35,0x2e,0x38,0x35, + 0x34,0x2d,0x33,0x2e,0x39,0x33,0x36,0x63,0x2d,0x32, + 0x2e,0x32,0x34,0x32,0x2d,0x30,0x2e,0x39,0x36,0x34, + 0x2d,0x34,0x2e,0x36,0x34,0x36,0x2d,0x31,0x2e,0x34, + 0x35,0x33,0x2d,0x37,0x2e,0x31,0x39,0x39,0x2d,0x31, + 0x2e,0x34,0x35,0x33,0x68,0x2d,0x37,0x2e,0x34,0x35, + 0x39,0x0d,0x0a,0x09,0x09,0x63,0x2d,0x32,0x2e,0x35, + 0x35,0x37,0x2c,0x30,0x2d,0x34,0x2e,0x39,0x35,0x36, + 0x2c,0x30,0x2e,0x34,0x38,0x39,0x2d,0x37,0x2e,0x32, + 0x30,0x32,0x2c,0x31,0x2e,0x34,0x35,0x33,0x63,0x2d, + 0x32,0x2e,0x32,0x34,0x33,0x2c,0x30,0x2e,0x39,0x36, + 0x35,0x2d,0x34,0x2e,0x31,0x39,0x34,0x2c,0x32,0x2e, + 0x32,0x38,0x31,0x2d,0x35,0x2e,0x38,0x35,0x32,0x2c, + 0x33,0x2e,0x39,0x33,0x36,0x63,0x2d,0x31,0x2e,0x36, + 0x35,0x37,0x2c,0x31,0x2e,0x36,0x36,0x2d,0x32,0x2e, + 0x39,0x37,0x31,0x2c,0x33,0x2e,0x36,0x31,0x33,0x2d, + 0x33,0x2e,0x39,0x33,0x36,0x2c,0x35,0x2e,0x38,0x35, + 0x34,0x0d,0x0a,0x09,0x09,0x63,0x2d,0x30,0x2e,0x39, + 0x36,0x39,0x2c,0x32,0x2e,0x32,0x34,0x32,0x2d,0x31, + 0x2e,0x34,0x35,0x2c,0x34,0x2e,0x36,0x34,0x36,0x2d, + 0x31,0x2e,0x34,0x35,0x2c,0x37,0x2e,0x31,0x39,0x35, + 0x76,0x33,0x2e,0x38,0x33,0x34,0x6c,0x2d,0x31,0x32, + 0x2e,0x37,0x34,0x34,0x2d,0x32,0x2e,0x30,0x37,0x34, + 0x76,0x2d,0x31,0x2e,0x30,0x33,0x32,0x63,0x30,0x2d, + 0x34,0x2e,0x32,0x37,0x39,0x2c,0x30,0x2e,0x38,0x31, + 0x32,0x2d,0x38,0x2e,0x33,0x32,0x2c,0x32,0x2e,0x34, + 0x33,0x35,0x2d,0x31,0x32,0x2e,0x31,0x31,0x37,0x0d, + 0x0a,0x09,0x09,0x63,0x31,0x2e,0x36,0x32,0x33,0x2d, + 0x33,0x2e,0x38,0x30,0x35,0x2c,0x33,0x2e,0x38,0x35, + 0x2d,0x37,0x2e,0x31,0x31,0x37,0x2c,0x36,0x2e,0x36, + 0x38,0x33,0x2d,0x39,0x2e,0x39,0x35,0x63,0x32,0x2e, + 0x38,0x33,0x32,0x2d,0x32,0x2e,0x38,0x33,0x32,0x2c, + 0x36,0x2e,0x31,0x34,0x36,0x2d,0x35,0x2e,0x30,0x35, + 0x32,0x2c,0x39,0x2e,0x39,0x34,0x36,0x2d,0x36,0x2e, + 0x36,0x38,0x33,0x63,0x33,0x2e,0x37,0x39,0x36,0x2d, + 0x31,0x2e,0x36,0x31,0x35,0x2c,0x37,0x2e,0x38,0x33, + 0x38,0x2d,0x32,0x2e,0x34,0x33,0x35,0x2c,0x31,0x32, + 0x2e,0x31,0x32,0x2d,0x32,0x2e,0x34,0x33,0x35,0x68, + 0x37,0x2e,0x34,0x35,0x39,0x0d,0x0a,0x09,0x09,0x63, + 0x34,0x2e,0x32,0x38,0x33,0x2c,0x30,0x2c,0x38,0x2e, + 0x33,0x32,0x2c,0x30,0x2e,0x38,0x31,0x39,0x2c,0x31, + 0x32,0x2e,0x31,0x32,0x31,0x2c,0x32,0x2e,0x34,0x33, + 0x35,0x63,0x33,0x2e,0x37,0x39,0x37,0x2c,0x31,0x2e, + 0x36,0x33,0x31,0x2c,0x37,0x2e,0x31,0x30,0x39,0x2c, + 0x33,0x2e,0x38,0x35,0x31,0x2c,0x39,0x2e,0x39,0x34, + 0x31,0x2c,0x36,0x2e,0x36,0x38,0x33,0x63,0x32,0x2e, + 0x38,0x33,0x32,0x2c,0x32,0x2e,0x38,0x33,0x33,0x2c, + 0x35,0x2e,0x30,0x36,0x31,0x2c,0x36,0x2e,0x31,0x34, + 0x36,0x2c,0x36,0x2e,0x36,0x38,0x34,0x2c,0x39,0x2e, + 0x39,0x35,0x0d,0x0a,0x09,0x09,0x63,0x31,0x2e,0x36, + 0x32,0x33,0x2c,0x33,0x2e,0x37,0x39,0x37,0x2c,0x32, + 0x2e,0x34,0x33,0x34,0x2c,0x37,0x2e,0x38,0x33,0x38, + 0x2c,0x32,0x2e,0x34,0x33,0x34,0x2c,0x31,0x32,0x2e, + 0x31,0x31,0x37,0x76,0x37,0x36,0x2e,0x39,0x37,0x31, + 0x48,0x37,0x32,0x37,0x2e,0x38,0x32,0x31,0x4c,0x37, + 0x32,0x37,0x2e,0x38,0x32,0x31,0x2c,0x35,0x32,0x33, + 0x2e,0x31,0x39,0x34,0x7a,0x20,0x4d,0x37,0x31,0x39, + 0x2e,0x33,0x32,0x38,0x2c,0x34,0x37,0x31,0x2e,0x38, + 0x31,0x68,0x2d,0x32,0x36,0x2e,0x39,0x33,0x32,0x63, + 0x2d,0x32,0x2e,0x35,0x36,0x31,0x2c,0x30,0x2d,0x34, + 0x2e,0x39,0x36,0x2c,0x30,0x2e,0x34,0x38,0x32,0x2d, + 0x37,0x2e,0x32,0x30,0x32,0x2c,0x31,0x2e,0x34,0x34, + 0x37,0x0d,0x0a,0x09,0x09,0x63,0x2d,0x32,0x2e,0x32, + 0x34,0x37,0x2c,0x30,0x2e,0x39,0x37,0x33,0x2d,0x34, + 0x2e,0x31,0x39,0x33,0x2c,0x32,0x2e,0x32,0x39,0x36, + 0x2d,0x35,0x2e,0x38,0x35,0x34,0x2c,0x33,0x2e,0x39, + 0x38,0x38,0x63,0x2d,0x31,0x2e,0x36,0x35,0x37,0x2c, + 0x31,0x2e,0x36,0x39,0x39,0x2d,0x32,0x2e,0x39,0x37, + 0x31,0x2c,0x33,0x2e,0x36,0x36,0x36,0x2d,0x33,0x2e, + 0x39,0x33,0x36,0x2c,0x35,0x2e,0x39,0x30,0x38,0x63, + 0x2d,0x30,0x2e,0x39,0x36,0x39,0x2c,0x32,0x2e,0x32, + 0x34,0x32,0x2d,0x31,0x2e,0x34,0x35,0x2c,0x34,0x2e, + 0x36,0x34,0x36,0x2d,0x31,0x2e,0x34,0x35,0x2c,0x37, + 0x2e,0x32,0x30,0x33,0x76,0x34,0x2e,0x34,0x34,0x36, + 0x0d,0x0a,0x09,0x09,0x63,0x30,0x2c,0x32,0x2e,0x35, + 0x35,0x38,0x2c,0x30,0x2e,0x34,0x38,0x31,0x2c,0x34, + 0x2e,0x39,0x36,0x2c,0x31,0x2e,0x34,0x35,0x2c,0x37, + 0x2e,0x32,0x30,0x32,0x63,0x30,0x2e,0x39,0x36,0x35, + 0x2c,0x32,0x2e,0x32,0x34,0x33,0x2c,0x32,0x2e,0x32, + 0x37,0x37,0x2c,0x34,0x2e,0x31,0x39,0x34,0x2c,0x33, + 0x2e,0x39,0x33,0x36,0x2c,0x35,0x2e,0x38,0x35,0x35, + 0x63,0x31,0x2e,0x36,0x36,0x31,0x2c,0x31,0x2e,0x36, + 0x35,0x32,0x2c,0x33,0x2e,0x36,0x30,0x37,0x2c,0x32, + 0x2e,0x39,0x37,0x2c,0x35,0x2e,0x38,0x35,0x34,0x2c, + 0x33,0x2e,0x39,0x33,0x35,0x0d,0x0a,0x09,0x09,0x63, + 0x32,0x2e,0x32,0x34,0x32,0x2c,0x30,0x2e,0x39,0x36, + 0x35,0x2c,0x34,0x2e,0x36,0x34,0x33,0x2c,0x31,0x2e, + 0x34,0x34,0x37,0x2c,0x37,0x2e,0x32,0x30,0x32,0x2c, + 0x31,0x2e,0x34,0x34,0x37,0x68,0x38,0x2e,0x34,0x39, + 0x32,0x63,0x32,0x2e,0x35,0x35,0x33,0x2c,0x30,0x2c, + 0x34,0x2e,0x39,0x35,0x37,0x2d,0x30,0x2e,0x34,0x38, + 0x32,0x2c,0x37,0x2e,0x31,0x39,0x39,0x2d,0x31,0x2e, + 0x34,0x34,0x37,0x63,0x32,0x2e,0x32,0x34,0x31,0x2d, + 0x30,0x2e,0x39,0x36,0x35,0x2c,0x34,0x2e,0x31,0x39, + 0x33,0x2d,0x32,0x2e,0x32,0x38,0x2c,0x35,0x2e,0x38, + 0x35,0x34,0x2d,0x33,0x2e,0x39,0x33,0x35,0x0d,0x0a, + 0x09,0x09,0x63,0x31,0x2e,0x36,0x35,0x33,0x2d,0x31, + 0x2e,0x36,0x36,0x31,0x2c,0x32,0x2e,0x39,0x36,0x36, + 0x2d,0x33,0x2e,0x36,0x31,0x32,0x2c,0x33,0x2e,0x39, + 0x33,0x36,0x2d,0x35,0x2e,0x38,0x35,0x35,0x63,0x30, + 0x2e,0x39,0x36,0x34,0x2d,0x32,0x2e,0x32,0x34,0x32, + 0x2c,0x31,0x2e,0x34,0x34,0x39,0x2d,0x34,0x2e,0x36, + 0x34,0x36,0x2c,0x31,0x2e,0x34,0x34,0x39,0x2d,0x37, + 0x2e,0x32,0x30,0x32,0x4c,0x37,0x31,0x39,0x2e,0x33, + 0x32,0x38,0x2c,0x34,0x37,0x31,0x2e,0x38,0x31,0x4c, + 0x37,0x31,0x39,0x2e,0x33,0x32,0x38,0x2c,0x34,0x37, + 0x31,0x2e,0x38,0x31,0x7a,0x22,0x2f,0x3e,0x0d,0x0a, + 0x09,0x3c,0x70,0x61,0x74,0x68,0x20,0x64,0x3d,0x22, + 0x4d,0x37,0x39,0x36,0x2e,0x31,0x39,0x33,0x2c,0x35, + 0x32,0x33,0x2e,0x31,0x39,0x34,0x63,0x2d,0x33,0x2e, + 0x38,0x36,0x39,0x2c,0x30,0x2d,0x37,0x2e,0x35,0x31, + 0x33,0x2d,0x30,0x2e,0x37,0x32,0x39,0x2d,0x31,0x30, + 0x2e,0x39,0x32,0x37,0x2d,0x32,0x2e,0x31,0x37,0x34, + 0x63,0x2d,0x33,0x2e,0x34,0x32,0x31,0x2d,0x31,0x2e, + 0x34,0x35,0x35,0x2d,0x36,0x2e,0x33,0x39,0x32,0x2d, + 0x33,0x2e,0x34,0x36,0x31,0x2d,0x38,0x2e,0x39,0x30, + 0x39,0x2d,0x36,0x2e,0x30,0x31,0x0d,0x0a,0x09,0x09, + 0x63,0x2d,0x32,0x2e,0x35,0x32,0x36,0x2d,0x32,0x2e, + 0x35,0x35,0x37,0x2d,0x34,0x2e,0x35,0x32,0x33,0x2d, + 0x35,0x2e,0x35,0x32,0x35,0x2d,0x36,0x2e,0x30,0x30, + 0x39,0x2d,0x38,0x2e,0x39,0x30,0x38,0x63,0x2d,0x31, + 0x2e,0x34,0x38,0x35,0x2d,0x33,0x2e,0x33,0x38,0x35, + 0x2d,0x32,0x2e,0x32,0x32,0x39,0x2d,0x37,0x2e,0x30, + 0x31,0x33,0x2d,0x32,0x2e,0x32,0x32,0x39,0x2d,0x31, + 0x30,0x2e,0x38,0x37,0x37,0x76,0x2d,0x36,0x35,0x2e, + 0x39,0x39,0x36,0x68,0x2d,0x31,0x39,0x2e,0x30,0x35, + 0x39,0x76,0x2d,0x31,0x32,0x2e,0x31,0x31,0x37,0x68, + 0x31,0x39,0x2e,0x30,0x35,0x39,0x76,0x2d,0x32,0x35, + 0x2e,0x34,0x37,0x39,0x0d,0x0a,0x09,0x09,0x6c,0x31, + 0x32,0x2e,0x37,0x34,0x31,0x2d,0x32,0x2e,0x30,0x37, + 0x33,0x76,0x32,0x37,0x2e,0x35,0x35,0x35,0x68,0x32, + 0x36,0x2e,0x39,0x33,0x32,0x76,0x31,0x32,0x2e,0x31, + 0x31,0x37,0x68,0x2d,0x32,0x36,0x2e,0x39,0x33,0x32, + 0x76,0x36,0x36,0x2e,0x36,0x31,0x34,0x63,0x30,0x2c, + 0x32,0x2e,0x31,0x34,0x34,0x2c,0x30,0x2e,0x33,0x39, + 0x35,0x2c,0x34,0x2e,0x31,0x32,0x36,0x2c,0x31,0x2e, + 0x31,0x38,0x39,0x2c,0x35,0x2e,0x39,0x35,0x35,0x63, + 0x30,0x2e,0x37,0x39,0x36,0x2c,0x31,0x2e,0x38,0x32, + 0x39,0x2c,0x31,0x2e,0x38,0x38,0x33,0x2c,0x33,0x2e, + 0x34,0x33,0x37,0x2c,0x33,0x2e,0x32,0x36,0x35,0x2c, + 0x34,0x2e,0x38,0x31,0x33,0x0d,0x0a,0x09,0x09,0x63, + 0x31,0x2e,0x33,0x38,0x32,0x2c,0x31,0x2e,0x33,0x38, + 0x36,0x2c,0x33,0x2e,0x30,0x30,0x35,0x2c,0x32,0x2e, + 0x34,0x37,0x33,0x2c,0x34,0x2e,0x38,0x36,0x38,0x2c, + 0x33,0x2e,0x32,0x37,0x63,0x31,0x2e,0x38,0x36,0x34, + 0x2c,0x30,0x2e,0x37,0x38,0x38,0x2c,0x33,0x2e,0x38, + 0x36,0x39,0x2c,0x31,0x2e,0x31,0x38,0x38,0x2c,0x36, + 0x2e,0x30,0x30,0x39,0x2c,0x31,0x2e,0x31,0x38,0x38, + 0x68,0x31,0x31,0x2e,0x36,0x76,0x31,0x32,0x2e,0x31, + 0x32,0x33,0x48,0x37,0x39,0x36,0x2e,0x31,0x39,0x33, + 0x4c,0x37,0x39,0x36,0x2e,0x31,0x39,0x33,0x2c,0x35, + 0x32,0x33,0x2e,0x31,0x39,0x34,0x7a,0x22,0x2f,0x3e, + 0x0d,0x0a,0x09,0x3c,0x70,0x61,0x74,0x68,0x20,0x64, + 0x3d,0x22,0x4d,0x38,0x33,0x34,0x2e,0x34,0x31,0x39, + 0x2c,0x33,0x39,0x31,0x2e,0x36,0x33,0x32,0x76,0x2d, + 0x31,0x36,0x2e,0x39,0x38,0x38,0x68,0x31,0x34,0x2e, + 0x38,0x31,0x33,0x76,0x31,0x36,0x2e,0x39,0x38,0x38, + 0x48,0x38,0x33,0x34,0x2e,0x34,0x31,0x39,0x7a,0x20, + 0x4d,0x38,0x33,0x35,0x2e,0x34,0x35,0x35,0x2c,0x35, + 0x32,0x33,0x2e,0x31,0x39,0x34,0x56,0x34,0x31,0x37, + 0x2e,0x31,0x31,0x33,0x68,0x31,0x32,0x2e,0x37,0x34, + 0x76,0x31,0x30,0x36,0x2e,0x30,0x38,0x31,0x48,0x38, + 0x33,0x35,0x2e,0x34,0x35,0x35,0x7a,0x22,0x2f,0x3e, + 0x0d,0x0a,0x09,0x3c,0x70,0x61,0x74,0x68,0x20,0x64, + 0x3d,0x22,0x4d,0x39,0x34,0x36,0x2e,0x33,0x35,0x31, + 0x2c,0x35,0x30,0x36,0x2e,0x32,0x30,0x31,0x63,0x2d, + 0x31,0x2e,0x36,0x32,0x33,0x2c,0x33,0x2e,0x38,0x30, + 0x35,0x2d,0x33,0x2e,0x38,0x35,0x2c,0x37,0x2e,0x31, + 0x31,0x38,0x2d,0x36,0x2e,0x36,0x38,0x32,0x2c,0x39, + 0x2e,0x39,0x34,0x32,0x63,0x2d,0x32,0x2e,0x38,0x33, + 0x32,0x2c,0x32,0x2e,0x38,0x34,0x2d,0x36,0x2e,0x31, + 0x34,0x36,0x2c,0x35,0x2e,0x30,0x36,0x31,0x2d,0x39, + 0x2e,0x39,0x34,0x33,0x2c,0x36,0x2e,0x36,0x38,0x34, + 0x0d,0x0a,0x09,0x09,0x63,0x2d,0x33,0x2e,0x38,0x30, + 0x31,0x2c,0x31,0x2e,0x36,0x32,0x32,0x2d,0x37,0x2e, + 0x38,0x33,0x38,0x2c,0x32,0x2e,0x34,0x33,0x34,0x2d, + 0x31,0x32,0x2e,0x31,0x32,0x2c,0x32,0x2e,0x34,0x33, + 0x34,0x68,0x2d,0x38,0x2e,0x34,0x39,0x33,0x63,0x2d, + 0x34,0x2e,0x32,0x38,0x36,0x2c,0x30,0x2d,0x38,0x2e, + 0x33,0x32,0x37,0x2d,0x30,0x2e,0x38,0x31,0x32,0x2d, + 0x31,0x32,0x2e,0x31,0x32,0x34,0x2d,0x32,0x2e,0x34, + 0x33,0x34,0x63,0x2d,0x33,0x2e,0x37,0x39,0x36,0x2d, + 0x31,0x2e,0x36,0x32,0x33,0x2d,0x37,0x2e,0x31,0x30, + 0x39,0x2d,0x33,0x2e,0x38,0x34,0x34,0x2d,0x39,0x2e, + 0x39,0x34,0x31,0x2d,0x36,0x2e,0x36,0x38,0x34,0x0d, + 0x0a,0x09,0x09,0x63,0x2d,0x32,0x2e,0x38,0x33,0x32, + 0x2d,0x32,0x2e,0x38,0x32,0x34,0x2d,0x35,0x2e,0x30, + 0x36,0x31,0x2d,0x36,0x2e,0x31,0x33,0x39,0x2d,0x36, + 0x2e,0x36,0x38,0x34,0x2d,0x39,0x2e,0x39,0x34,0x32, + 0x63,0x2d,0x31,0x2e,0x36,0x32,0x33,0x2d,0x33,0x2e, + 0x37,0x39,0x36,0x2d,0x32,0x2e,0x34,0x33,0x35,0x2d, + 0x37,0x2e,0x38,0x33,0x39,0x2d,0x32,0x2e,0x34,0x33, + 0x35,0x2d,0x31,0x32,0x2e,0x31,0x31,0x36,0x76,0x2d, + 0x34,0x37,0x2e,0x38,0x36,0x31,0x63,0x30,0x2d,0x34, + 0x2e,0x32,0x37,0x39,0x2c,0x30,0x2e,0x38,0x31,0x32, + 0x2d,0x38,0x2e,0x33,0x32,0x2c,0x32,0x2e,0x34,0x33, + 0x35,0x2d,0x31,0x32,0x2e,0x31,0x31,0x37,0x0d,0x0a, + 0x09,0x09,0x63,0x31,0x2e,0x36,0x32,0x33,0x2d,0x33, + 0x2e,0x38,0x30,0x35,0x2c,0x33,0x2e,0x38,0x35,0x32, + 0x2d,0x37,0x2e,0x31,0x31,0x37,0x2c,0x36,0x2e,0x36, + 0x38,0x34,0x2d,0x39,0x2e,0x39,0x35,0x63,0x32,0x2e, + 0x38,0x33,0x31,0x2d,0x32,0x2e,0x38,0x33,0x32,0x2c, + 0x36,0x2e,0x31,0x34,0x36,0x2d,0x35,0x2e,0x30,0x35, + 0x32,0x2c,0x39,0x2e,0x39,0x34,0x31,0x2d,0x36,0x2e, + 0x36,0x38,0x33,0x63,0x33,0x2e,0x37,0x39,0x37,0x2d, + 0x31,0x2e,0x36,0x31,0x35,0x2c,0x37,0x2e,0x38,0x33, + 0x38,0x2d,0x32,0x2e,0x34,0x33,0x35,0x2c,0x31,0x32, + 0x2e,0x31,0x32,0x34,0x2d,0x32,0x2e,0x34,0x33,0x35, + 0x68,0x38,0x2e,0x34,0x39,0x33,0x0d,0x0a,0x09,0x09, + 0x63,0x34,0x2e,0x32,0x38,0x32,0x2c,0x30,0x2c,0x38, + 0x2e,0x33,0x31,0x39,0x2c,0x30,0x2e,0x38,0x31,0x39, + 0x2c,0x31,0x32,0x2e,0x31,0x32,0x2c,0x32,0x2e,0x34, + 0x33,0x35,0x63,0x33,0x2e,0x37,0x39,0x37,0x2c,0x31, + 0x2e,0x36,0x33,0x31,0x2c,0x37,0x2e,0x31,0x31,0x31, + 0x2c,0x33,0x2e,0x38,0x35,0x31,0x2c,0x39,0x2e,0x39, + 0x34,0x33,0x2c,0x36,0x2e,0x36,0x38,0x33,0x63,0x32, + 0x2e,0x38,0x33,0x31,0x2c,0x32,0x2e,0x38,0x33,0x33, + 0x2c,0x35,0x2e,0x30,0x35,0x39,0x2c,0x36,0x2e,0x31, + 0x34,0x36,0x2c,0x36,0x2e,0x36,0x38,0x32,0x2c,0x39, + 0x2e,0x39,0x35,0x0d,0x0a,0x09,0x09,0x63,0x31,0x2e, + 0x36,0x32,0x33,0x2c,0x33,0x2e,0x37,0x39,0x37,0x2c, + 0x32,0x2e,0x34,0x33,0x34,0x2c,0x37,0x2e,0x38,0x33, + 0x38,0x2c,0x32,0x2e,0x34,0x33,0x34,0x2c,0x31,0x32, + 0x2e,0x31,0x31,0x37,0x76,0x34,0x37,0x2e,0x38,0x36, + 0x31,0x43,0x39,0x34,0x38,0x2e,0x37,0x38,0x33,0x2c, + 0x34,0x39,0x38,0x2e,0x33,0x36,0x33,0x2c,0x39,0x34, + 0x37,0x2e,0x39,0x37,0x34,0x2c,0x35,0x30,0x32,0x2e, + 0x34,0x30,0x35,0x2c,0x39,0x34,0x36,0x2e,0x33,0x35, + 0x31,0x2c,0x35,0x30,0x36,0x2e,0x32,0x30,0x31,0x7a, + 0x20,0x4d,0x39,0x33,0x36,0x2e,0x30,0x34,0x34,0x2c, + 0x34,0x34,0x35,0x2e,0x34,0x39,0x36,0x0d,0x0a,0x09, + 0x09,0x63,0x30,0x2d,0x32,0x2e,0x35,0x34,0x39,0x2d, + 0x30,0x2e,0x34,0x38,0x35,0x2d,0x34,0x2e,0x39,0x35, + 0x33,0x2d,0x31,0x2e,0x34,0x35,0x2d,0x37,0x2e,0x31, + 0x39,0x35,0x63,0x2d,0x30,0x2e,0x39,0x36,0x38,0x2d, + 0x32,0x2e,0x32,0x34,0x31,0x2d,0x32,0x2e,0x32,0x38, + 0x31,0x2d,0x34,0x2e,0x31,0x39,0x34,0x2d,0x33,0x2e, + 0x39,0x33,0x36,0x2d,0x35,0x2e,0x38,0x35,0x34,0x63, + 0x2d,0x31,0x2e,0x36,0x36,0x31,0x2d,0x31,0x2e,0x36, + 0x35,0x33,0x2d,0x33,0x2e,0x36,0x31,0x31,0x2d,0x32, + 0x2e,0x39,0x37,0x31,0x2d,0x35,0x2e,0x38,0x35,0x34, + 0x2d,0x33,0x2e,0x39,0x33,0x36,0x0d,0x0a,0x09,0x09, + 0x63,0x2d,0x32,0x2e,0x32,0x34,0x32,0x2d,0x30,0x2e, + 0x39,0x36,0x34,0x2d,0x34,0x2e,0x36,0x34,0x36,0x2d, + 0x31,0x2e,0x34,0x35,0x33,0x2d,0x37,0x2e,0x31,0x39, + 0x38,0x2d,0x31,0x2e,0x34,0x35,0x33,0x68,0x2d,0x38, + 0x2e,0x34,0x39,0x33,0x63,0x2d,0x32,0x2e,0x35,0x35, + 0x37,0x2c,0x30,0x2d,0x34,0x2e,0x39,0x36,0x2c,0x30, + 0x2e,0x34,0x38,0x39,0x2d,0x37,0x2e,0x32,0x30,0x32, + 0x2c,0x31,0x2e,0x34,0x35,0x33,0x63,0x2d,0x32,0x2e, + 0x32,0x34,0x32,0x2c,0x30,0x2e,0x39,0x36,0x35,0x2d, + 0x34,0x2e,0x31,0x39,0x33,0x2c,0x32,0x2e,0x32,0x38, + 0x31,0x2d,0x35,0x2e,0x38,0x35,0x34,0x2c,0x33,0x2e, + 0x39,0x33,0x36,0x0d,0x0a,0x09,0x09,0x63,0x2d,0x31, + 0x2e,0x36,0x35,0x33,0x2c,0x31,0x2e,0x36,0x36,0x2d, + 0x32,0x2e,0x39,0x37,0x2c,0x33,0x2e,0x36,0x31,0x33, + 0x2d,0x33,0x2e,0x39,0x33,0x36,0x2c,0x35,0x2e,0x38, + 0x35,0x34,0x63,0x2d,0x30,0x2e,0x39,0x36,0x38,0x2c, + 0x32,0x2e,0x32,0x34,0x32,0x2d,0x31,0x2e,0x34,0x34, + 0x39,0x2c,0x34,0x2e,0x36,0x34,0x36,0x2d,0x31,0x2e, + 0x34,0x34,0x39,0x2c,0x37,0x2e,0x31,0x39,0x35,0x76, + 0x34,0x39,0x2e,0x33,0x31,0x63,0x30,0x2c,0x32,0x2e, + 0x35,0x35,0x37,0x2c,0x30,0x2e,0x34,0x38,0x31,0x2c, + 0x34,0x2e,0x39,0x35,0x39,0x2c,0x31,0x2e,0x34,0x34, + 0x39,0x2c,0x37,0x2e,0x32,0x30,0x31,0x0d,0x0a,0x09, + 0x09,0x63,0x30,0x2e,0x39,0x36,0x36,0x2c,0x32,0x2e, + 0x32,0x34,0x33,0x2c,0x32,0x2e,0x32,0x38,0x31,0x2c, + 0x34,0x2e,0x31,0x39,0x34,0x2c,0x33,0x2e,0x39,0x33, + 0x36,0x2c,0x35,0x2e,0x38,0x35,0x35,0x63,0x31,0x2e, + 0x36,0x36,0x31,0x2c,0x31,0x2e,0x36,0x35,0x32,0x2c, + 0x33,0x2e,0x36,0x31,0x32,0x2c,0x32,0x2e,0x39,0x37, + 0x2c,0x35,0x2e,0x38,0x35,0x34,0x2c,0x33,0x2e,0x39, + 0x33,0x35,0x63,0x32,0x2e,0x32,0x34,0x32,0x2c,0x30, + 0x2e,0x39,0x36,0x36,0x2c,0x34,0x2e,0x36,0x34,0x36, + 0x2c,0x31,0x2e,0x34,0x34,0x37,0x2c,0x37,0x2e,0x32, + 0x30,0x32,0x2c,0x31,0x2e,0x34,0x34,0x37,0x68,0x38, + 0x2e,0x34,0x39,0x33,0x0d,0x0a,0x09,0x09,0x63,0x32, + 0x2e,0x35,0x35,0x33,0x2c,0x30,0x2c,0x34,0x2e,0x39, + 0x35,0x36,0x2d,0x30,0x2e,0x34,0x38,0x31,0x2c,0x37, + 0x2e,0x31,0x39,0x38,0x2d,0x31,0x2e,0x34,0x34,0x37, + 0x63,0x32,0x2e,0x32,0x34,0x33,0x2d,0x30,0x2e,0x39, + 0x36,0x35,0x2c,0x34,0x2e,0x31,0x39,0x33,0x2d,0x32, + 0x2e,0x32,0x38,0x2c,0x35,0x2e,0x38,0x35,0x34,0x2d, + 0x33,0x2e,0x39,0x33,0x35,0x63,0x31,0x2e,0x36,0x35, + 0x33,0x2d,0x31,0x2e,0x36,0x36,0x31,0x2c,0x32,0x2e, + 0x39,0x36,0x38,0x2d,0x33,0x2e,0x36,0x31,0x32,0x2c, + 0x33,0x2e,0x39,0x33,0x36,0x2d,0x35,0x2e,0x38,0x35, + 0x35,0x0d,0x0a,0x09,0x09,0x63,0x30,0x2e,0x39,0x36, + 0x35,0x2d,0x32,0x2e,0x32,0x34,0x32,0x2c,0x31,0x2e, + 0x34,0x35,0x2d,0x34,0x2e,0x36,0x34,0x36,0x2c,0x31, + 0x2e,0x34,0x35,0x2d,0x37,0x2e,0x32,0x30,0x31,0x56, + 0x34,0x34,0x35,0x2e,0x34,0x39,0x36,0x7a,0x22,0x2f, + 0x3e,0x0d,0x0a,0x09,0x3c,0x70,0x61,0x74,0x68,0x20, + 0x64,0x3d,0x22,0x4d,0x31,0x30,0x33,0x32,0x2e,0x33, + 0x38,0x35,0x2c,0x35,0x32,0x33,0x2e,0x31,0x39,0x34, + 0x76,0x2d,0x37,0x37,0x2e,0x36,0x39,0x38,0x63,0x30, + 0x2d,0x32,0x2e,0x35,0x34,0x39,0x2d,0x30,0x2e,0x34, + 0x38,0x32,0x2d,0x34,0x2e,0x39,0x35,0x33,0x2d,0x31, + 0x2e,0x34,0x35,0x2d,0x37,0x2e,0x31,0x39,0x35,0x63, + 0x2d,0x30,0x2e,0x39,0x36,0x39,0x2d,0x32,0x2e,0x32, + 0x34,0x31,0x2d,0x32,0x2e,0x32,0x37,0x37,0x2d,0x34, + 0x2e,0x31,0x39,0x34,0x2d,0x33,0x2e,0x39,0x33,0x38, + 0x2d,0x35,0x2e,0x38,0x35,0x34,0x0d,0x0a,0x09,0x09, + 0x63,0x2d,0x31,0x2e,0x36,0x35,0x32,0x2d,0x31,0x2e, + 0x36,0x35,0x33,0x2d,0x33,0x2e,0x36,0x30,0x38,0x2d, + 0x32,0x2e,0x39,0x37,0x31,0x2d,0x35,0x2e,0x38,0x35, + 0x32,0x2d,0x33,0x2e,0x39,0x33,0x36,0x63,0x2d,0x32, + 0x2e,0x32,0x34,0x37,0x2d,0x30,0x2e,0x39,0x36,0x34, + 0x2d,0x34,0x2e,0x36,0x34,0x36,0x2d,0x31,0x2e,0x34, + 0x35,0x33,0x2d,0x37,0x2e,0x31,0x39,0x39,0x2d,0x31, + 0x2e,0x34,0x35,0x33,0x68,0x2d,0x38,0x2e,0x34,0x39, + 0x36,0x63,0x2d,0x32,0x2e,0x35,0x35,0x37,0x2c,0x30, + 0x2d,0x34,0x2e,0x39,0x35,0x36,0x2c,0x30,0x2e,0x34, + 0x38,0x39,0x2d,0x37,0x2e,0x31,0x39,0x38,0x2c,0x31, + 0x2e,0x34,0x35,0x33,0x0d,0x0a,0x09,0x09,0x63,0x2d, + 0x32,0x2e,0x32,0x34,0x36,0x2c,0x30,0x2e,0x39,0x36, + 0x35,0x2d,0x34,0x2e,0x31,0x39,0x34,0x2c,0x32,0x2e, + 0x32,0x38,0x31,0x2d,0x35,0x2e,0x38,0x35,0x33,0x2c, + 0x33,0x2e,0x39,0x33,0x36,0x63,0x2d,0x31,0x2e,0x36, + 0x36,0x31,0x2c,0x31,0x2e,0x36,0x36,0x2d,0x32,0x2e, + 0x39,0x37,0x2c,0x33,0x2e,0x36,0x31,0x33,0x2d,0x33, + 0x2e,0x39,0x33,0x38,0x2c,0x35,0x2e,0x38,0x35,0x34, + 0x63,0x2d,0x30,0x2e,0x39,0x37,0x2c,0x32,0x2e,0x32, + 0x34,0x32,0x2d,0x31,0x2e,0x34,0x35,0x31,0x2c,0x34, + 0x2e,0x36,0x34,0x36,0x2d,0x31,0x2e,0x34,0x35,0x31, + 0x2c,0x37,0x2e,0x31,0x39,0x35,0x76,0x37,0x37,0x2e, + 0x36,0x39,0x38,0x68,0x2d,0x31,0x32,0x2e,0x37,0x34, + 0x0d,0x0a,0x09,0x09,0x56,0x34,0x31,0x37,0x2e,0x31, + 0x31,0x33,0x68,0x34,0x2e,0x32,0x34,0x34,0x6c,0x36, + 0x2e,0x39,0x34,0x32,0x2c,0x31,0x30,0x2e,0x37,0x37, + 0x36,0x63,0x32,0x2e,0x39,0x2d,0x33,0x2e,0x39,0x34, + 0x2c,0x36,0x2e,0x35,0x34,0x35,0x2d,0x37,0x2e,0x30, + 0x36,0x33,0x2c,0x31,0x30,0x2e,0x39,0x33,0x31,0x2d, + 0x39,0x2e,0x33,0x37,0x35,0x63,0x34,0x2e,0x33,0x38, + 0x36,0x2d,0x32,0x2e,0x33,0x31,0x32,0x2c,0x39,0x2e, + 0x31,0x37,0x2d,0x33,0x2e,0x34,0x37,0x37,0x2c,0x31, + 0x34,0x2e,0x33,0x34,0x34,0x2d,0x33,0x2e,0x34,0x37, + 0x37,0x68,0x33,0x2e,0x32,0x31,0x35,0x0d,0x0a,0x09, + 0x09,0x63,0x34,0x2e,0x32,0x37,0x38,0x2c,0x30,0x2c, + 0x38,0x2e,0x33,0x32,0x2c,0x30,0x2e,0x38,0x31,0x38, + 0x2c,0x31,0x32,0x2e,0x31,0x31,0x37,0x2c,0x32,0x2e, + 0x34,0x33,0x36,0x63,0x33,0x2e,0x38,0x2c,0x31,0x2e, + 0x36,0x32,0x39,0x2c,0x37,0x2e,0x31,0x31,0x34,0x2c, + 0x33,0x2e,0x38,0x35,0x2c,0x39,0x2e,0x39,0x35,0x2c, + 0x36,0x2e,0x36,0x38,0x32,0x63,0x32,0x2e,0x38,0x32, + 0x38,0x2c,0x32,0x2e,0x38,0x33,0x33,0x2c,0x35,0x2e, + 0x30,0x35,0x36,0x2c,0x36,0x2e,0x31,0x34,0x36,0x2c, + 0x36,0x2e,0x36,0x37,0x39,0x2c,0x39,0x2e,0x39,0x35, + 0x31,0x0d,0x0a,0x09,0x09,0x63,0x31,0x2e,0x36,0x32, + 0x32,0x2c,0x33,0x2e,0x37,0x39,0x35,0x2c,0x32,0x2e, + 0x34,0x33,0x35,0x2c,0x37,0x2e,0x38,0x33,0x38,0x2c, + 0x32,0x2e,0x34,0x33,0x35,0x2c,0x31,0x32,0x2e,0x31, + 0x31,0x35,0x76,0x37,0x36,0x2e,0x39,0x37,0x33,0x48, + 0x31,0x30,0x33,0x32,0x2e,0x33,0x38,0x35,0x4c,0x31, + 0x30,0x33,0x32,0x2e,0x33,0x38,0x35,0x2c,0x35,0x32, + 0x33,0x2e,0x31,0x39,0x34,0x7a,0x22,0x2f,0x3e,0x0d, + 0x0a,0x3c,0x2f,0x67,0x3e,0x0d,0x0a,0x3c,0x2f,0x73, + 0x76,0x67,0x3e,0x0d,0x0a +}; diff --git a/data/converted/star_filled_svg.cpp b/data/converted/star_filled_svg.cpp new file mode 100644 index 000000000..3cec60910 --- /dev/null +++ b/data/converted/star_filled_svg.cpp @@ -0,0 +1,124 @@ +//this file was auto-generated from "star_filled.svg" by res2h + +#include "../Resources.h" + +const size_t star_filled_svg_size = 1164; +const unsigned char star_filled_svg_data[1164] = { + 0x3c,0x3f,0x78,0x6d,0x6c,0x20,0x76,0x65,0x72,0x73, + 0x69,0x6f,0x6e,0x3d,0x22,0x31,0x2e,0x30,0x22,0x20, + 0x65,0x6e,0x63,0x6f,0x64,0x69,0x6e,0x67,0x3d,0x22, + 0x75,0x74,0x66,0x2d,0x38,0x22,0x3f,0x3e,0x0d,0x0a, + 0x3c,0x21,0x2d,0x2d,0x20,0x47,0x65,0x6e,0x65,0x72, + 0x61,0x74,0x6f,0x72,0x3a,0x20,0x41,0x64,0x6f,0x62, + 0x65,0x20,0x49,0x6c,0x6c,0x75,0x73,0x74,0x72,0x61, + 0x74,0x6f,0x72,0x20,0x31,0x36,0x2e,0x30,0x2e,0x33, + 0x2c,0x20,0x53,0x56,0x47,0x20,0x45,0x78,0x70,0x6f, + 0x72,0x74,0x20,0x50,0x6c,0x75,0x67,0x2d,0x49,0x6e, + 0x20,0x2e,0x20,0x53,0x56,0x47,0x20,0x56,0x65,0x72, + 0x73,0x69,0x6f,0x6e,0x3a,0x20,0x36,0x2e,0x30,0x30, + 0x20,0x42,0x75,0x69,0x6c,0x64,0x20,0x30,0x29,0x20, + 0x20,0x2d,0x2d,0x3e,0x0d,0x0a,0x3c,0x21,0x44,0x4f, + 0x43,0x54,0x59,0x50,0x45,0x20,0x73,0x76,0x67,0x20, + 0x50,0x55,0x42,0x4c,0x49,0x43,0x20,0x22,0x2d,0x2f, + 0x2f,0x57,0x33,0x43,0x2f,0x2f,0x44,0x54,0x44,0x20, + 0x53,0x56,0x47,0x20,0x31,0x2e,0x31,0x2f,0x2f,0x45, + 0x4e,0x22,0x20,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f, + 0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72, + 0x67,0x2f,0x47,0x72,0x61,0x70,0x68,0x69,0x63,0x73, + 0x2f,0x53,0x56,0x47,0x2f,0x31,0x2e,0x31,0x2f,0x44, + 0x54,0x44,0x2f,0x73,0x76,0x67,0x31,0x31,0x2e,0x64, + 0x74,0x64,0x22,0x3e,0x0d,0x0a,0x3c,0x73,0x76,0x67, + 0x20,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x3d,0x22, + 0x31,0x2e,0x31,0x22,0x20,0x69,0x64,0x3d,0x22,0x45, + 0x62,0x65,0x6e,0x65,0x5f,0x31,0x22,0x20,0x78,0x6d, + 0x6c,0x6e,0x73,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a, + 0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f, + 0x72,0x67,0x2f,0x32,0x30,0x30,0x30,0x2f,0x73,0x76, + 0x67,0x22,0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3a,0x78, + 0x6c,0x69,0x6e,0x6b,0x3d,0x22,0x68,0x74,0x74,0x70, + 0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e, + 0x6f,0x72,0x67,0x2f,0x31,0x39,0x39,0x39,0x2f,0x78, + 0x6c,0x69,0x6e,0x6b,0x22,0x20,0x78,0x3d,0x22,0x30, + 0x70,0x78,0x22,0x20,0x79,0x3d,0x22,0x30,0x70,0x78, + 0x22,0x0d,0x0a,0x09,0x20,0x77,0x69,0x64,0x74,0x68, + 0x3d,0x22,0x32,0x31,0x2e,0x37,0x37,0x35,0x70,0x78, + 0x22,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x22, + 0x32,0x30,0x2e,0x37,0x36,0x32,0x70,0x78,0x22,0x20, + 0x76,0x69,0x65,0x77,0x42,0x6f,0x78,0x3d,0x22,0x30, + 0x20,0x30,0x20,0x32,0x31,0x2e,0x37,0x37,0x35,0x20, + 0x32,0x30,0x2e,0x37,0x36,0x32,0x22,0x20,0x65,0x6e, + 0x61,0x62,0x6c,0x65,0x2d,0x62,0x61,0x63,0x6b,0x67, + 0x72,0x6f,0x75,0x6e,0x64,0x3d,0x22,0x6e,0x65,0x77, + 0x20,0x30,0x20,0x30,0x20,0x32,0x31,0x2e,0x37,0x37, + 0x35,0x20,0x32,0x30,0x2e,0x37,0x36,0x32,0x22,0x20, + 0x78,0x6d,0x6c,0x3a,0x73,0x70,0x61,0x63,0x65,0x3d, + 0x22,0x70,0x72,0x65,0x73,0x65,0x72,0x76,0x65,0x22, + 0x3e,0x0d,0x0a,0x3c,0x70,0x61,0x74,0x68,0x20,0x66, + 0x69,0x6c,0x6c,0x3d,0x22,0x23,0x37,0x37,0x37,0x37, + 0x37,0x37,0x22,0x20,0x64,0x3d,0x22,0x4d,0x38,0x2e, + 0x37,0x31,0x2c,0x32,0x2e,0x30,0x37,0x36,0x63,0x2d, + 0x30,0x2e,0x31,0x38,0x32,0x2c,0x30,0x2d,0x30,0x2e, + 0x33,0x36,0x34,0x2c,0x30,0x2e,0x31,0x34,0x2d,0x30, + 0x2e,0x35,0x30,0x31,0x2c,0x30,0x2e,0x34,0x31,0x39, + 0x4c,0x36,0x2e,0x33,0x35,0x2c,0x36,0x2e,0x32,0x36, + 0x31,0x63,0x2d,0x30,0x2e,0x32,0x37,0x36,0x2c,0x30, + 0x2e,0x35,0x36,0x2d,0x31,0x2e,0x30,0x30,0x37,0x2c, + 0x31,0x2e,0x30,0x39,0x31,0x2d,0x31,0x2e,0x36,0x32, + 0x34,0x2c,0x31,0x2e,0x31,0x38,0x4c,0x30,0x2e,0x35, + 0x37,0x32,0x2c,0x38,0x2e,0x30,0x34,0x35,0x0d,0x0a, + 0x09,0x43,0x2d,0x30,0x2e,0x30,0x34,0x36,0x2c,0x38, + 0x2e,0x31,0x33,0x35,0x2d,0x30,0x2e,0x31,0x38,0x35, + 0x2c,0x38,0x2e,0x35,0x36,0x34,0x2c,0x30,0x2e,0x32, + 0x36,0x32,0x2c,0x39,0x6c,0x33,0x2e,0x30,0x30,0x37, + 0x2c,0x32,0x2e,0x39,0x33,0x31,0x63,0x30,0x2e,0x34, + 0x34,0x37,0x2c,0x30,0x2e,0x34,0x33,0x36,0x2c,0x30, + 0x2e,0x37,0x32,0x36,0x2c,0x31,0x2e,0x32,0x39,0x35, + 0x2c,0x30,0x2e,0x36,0x32,0x2c,0x31,0x2e,0x39,0x30, + 0x39,0x6c,0x2d,0x30,0x2e,0x37,0x31,0x2c,0x34,0x2e, + 0x31,0x34,0x0d,0x0a,0x09,0x63,0x2d,0x30,0x2e,0x30, + 0x37,0x37,0x2c,0x30,0x2e,0x34,0x34,0x36,0x2c,0x30, + 0x2e,0x30,0x39,0x34,0x2c,0x30,0x2e,0x37,0x30,0x38, + 0x2c,0x30,0x2e,0x34,0x30,0x35,0x2c,0x30,0x2e,0x37, + 0x30,0x38,0x63,0x30,0x2e,0x31,0x31,0x38,0x2c,0x30, + 0x2c,0x30,0x2e,0x32,0x35,0x35,0x2d,0x30,0x2e,0x30, + 0x33,0x38,0x2c,0x30,0x2e,0x34,0x30,0x37,0x2d,0x30, + 0x2e,0x31,0x31,0x37,0x6c,0x33,0x2e,0x37,0x31,0x37, + 0x2d,0x31,0x2e,0x39,0x35,0x36,0x63,0x30,0x2e,0x32, + 0x37,0x36,0x2d,0x30,0x2e,0x31,0x34,0x35,0x2c,0x30, + 0x2e,0x36,0x34,0x2d,0x30,0x2e,0x32,0x31,0x36,0x2c, + 0x31,0x2e,0x30,0x30,0x33,0x2d,0x30,0x2e,0x32,0x31, + 0x36,0x0d,0x0a,0x09,0x63,0x30,0x2e,0x33,0x36,0x34, + 0x2c,0x30,0x2c,0x30,0x2e,0x37,0x32,0x39,0x2c,0x30, + 0x2e,0x30,0x37,0x32,0x2c,0x31,0x2e,0x30,0x30,0x34, + 0x2c,0x30,0x2e,0x32,0x31,0x36,0x6c,0x33,0x2e,0x37, + 0x31,0x37,0x2c,0x31,0x2e,0x39,0x35,0x36,0x63,0x30, + 0x2e,0x31,0x35,0x2c,0x30,0x2e,0x30,0x37,0x39,0x2c, + 0x30,0x2e,0x32,0x38,0x39,0x2c,0x30,0x2e,0x31,0x31, + 0x37,0x2c,0x30,0x2e,0x34,0x30,0x37,0x2c,0x30,0x2e, + 0x31,0x31,0x37,0x63,0x30,0x2e,0x33,0x31,0x31,0x2c, + 0x30,0x2c,0x30,0x2e,0x34,0x38,0x31,0x2d,0x30,0x2e, + 0x32,0x36,0x32,0x2c,0x30,0x2e,0x34,0x30,0x35,0x2d, + 0x30,0x2e,0x37,0x30,0x38,0x6c,0x2d,0x30,0x2e,0x37, + 0x31,0x31,0x2d,0x34,0x2e,0x31,0x34,0x0d,0x0a,0x09, + 0x63,0x2d,0x30,0x2e,0x31,0x30,0x35,0x2d,0x30,0x2e, + 0x36,0x31,0x34,0x2c,0x30,0x2e,0x31,0x37,0x34,0x2d, + 0x31,0x2e,0x34,0x37,0x34,0x2c,0x30,0x2e,0x36,0x31, + 0x39,0x2d,0x31,0x2e,0x39,0x30,0x39,0x4c,0x31,0x37, + 0x2e,0x31,0x36,0x2c,0x39,0x63,0x30,0x2e,0x34,0x34, + 0x36,0x2d,0x30,0x2e,0x34,0x33,0x36,0x2c,0x30,0x2e, + 0x33,0x30,0x37,0x2d,0x30,0x2e,0x38,0x36,0x35,0x2d, + 0x30,0x2e,0x33,0x31,0x31,0x2d,0x30,0x2e,0x39,0x35, + 0x35,0x6c,0x2d,0x34,0x2e,0x31,0x35,0x34,0x2d,0x30, + 0x2e,0x36,0x30,0x33,0x0d,0x0a,0x09,0x63,0x2d,0x30, + 0x2e,0x36,0x31,0x37,0x2d,0x30,0x2e,0x30,0x38,0x39, + 0x2d,0x31,0x2e,0x33,0x34,0x39,0x2d,0x30,0x2e,0x36, + 0x32,0x2d,0x31,0x2e,0x36,0x32,0x34,0x2d,0x31,0x2e, + 0x31,0x38,0x4c,0x39,0x2e,0x32,0x31,0x33,0x2c,0x32, + 0x2e,0x34,0x39,0x35,0x43,0x39,0x2e,0x30,0x37,0x34, + 0x2c,0x32,0x2e,0x32,0x31,0x36,0x2c,0x38,0x2e,0x38, + 0x39,0x33,0x2c,0x32,0x2e,0x30,0x37,0x36,0x2c,0x38, + 0x2e,0x37,0x31,0x2c,0x32,0x2e,0x30,0x37,0x36,0x4c, + 0x38,0x2e,0x37,0x31,0x2c,0x32,0x2e,0x30,0x37,0x36, + 0x7a,0x22,0x2f,0x3e,0x0d,0x0a,0x3c,0x2f,0x73,0x76, + 0x67,0x3e,0x0d,0x0a +}; diff --git a/data/converted/star_unfilled_svg.cpp b/data/converted/star_unfilled_svg.cpp new file mode 100644 index 000000000..5d6b43bda --- /dev/null +++ b/data/converted/star_unfilled_svg.cpp @@ -0,0 +1,196 @@ +//this file was auto-generated from "star_unfilled.svg" by res2h + +#include "../Resources.h" + +const size_t star_unfilled_svg_size = 1889; +const unsigned char star_unfilled_svg_data[1889] = { + 0x3c,0x3f,0x78,0x6d,0x6c,0x20,0x76,0x65,0x72,0x73, + 0x69,0x6f,0x6e,0x3d,0x22,0x31,0x2e,0x30,0x22,0x20, + 0x65,0x6e,0x63,0x6f,0x64,0x69,0x6e,0x67,0x3d,0x22, + 0x75,0x74,0x66,0x2d,0x38,0x22,0x3f,0x3e,0x0d,0x0a, + 0x3c,0x21,0x2d,0x2d,0x20,0x47,0x65,0x6e,0x65,0x72, + 0x61,0x74,0x6f,0x72,0x3a,0x20,0x41,0x64,0x6f,0x62, + 0x65,0x20,0x49,0x6c,0x6c,0x75,0x73,0x74,0x72,0x61, + 0x74,0x6f,0x72,0x20,0x31,0x36,0x2e,0x30,0x2e,0x33, + 0x2c,0x20,0x53,0x56,0x47,0x20,0x45,0x78,0x70,0x6f, + 0x72,0x74,0x20,0x50,0x6c,0x75,0x67,0x2d,0x49,0x6e, + 0x20,0x2e,0x20,0x53,0x56,0x47,0x20,0x56,0x65,0x72, + 0x73,0x69,0x6f,0x6e,0x3a,0x20,0x36,0x2e,0x30,0x30, + 0x20,0x42,0x75,0x69,0x6c,0x64,0x20,0x30,0x29,0x20, + 0x20,0x2d,0x2d,0x3e,0x0d,0x0a,0x3c,0x21,0x44,0x4f, + 0x43,0x54,0x59,0x50,0x45,0x20,0x73,0x76,0x67,0x20, + 0x50,0x55,0x42,0x4c,0x49,0x43,0x20,0x22,0x2d,0x2f, + 0x2f,0x57,0x33,0x43,0x2f,0x2f,0x44,0x54,0x44,0x20, + 0x53,0x56,0x47,0x20,0x31,0x2e,0x31,0x2f,0x2f,0x45, + 0x4e,0x22,0x20,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f, + 0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72, + 0x67,0x2f,0x47,0x72,0x61,0x70,0x68,0x69,0x63,0x73, + 0x2f,0x53,0x56,0x47,0x2f,0x31,0x2e,0x31,0x2f,0x44, + 0x54,0x44,0x2f,0x73,0x76,0x67,0x31,0x31,0x2e,0x64, + 0x74,0x64,0x22,0x3e,0x0d,0x0a,0x3c,0x73,0x76,0x67, + 0x20,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x3d,0x22, + 0x31,0x2e,0x31,0x22,0x20,0x69,0x64,0x3d,0x22,0x45, + 0x62,0x65,0x6e,0x65,0x5f,0x31,0x22,0x20,0x78,0x6d, + 0x6c,0x6e,0x73,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a, + 0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f, + 0x72,0x67,0x2f,0x32,0x30,0x30,0x30,0x2f,0x73,0x76, + 0x67,0x22,0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3a,0x78, + 0x6c,0x69,0x6e,0x6b,0x3d,0x22,0x68,0x74,0x74,0x70, + 0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e, + 0x6f,0x72,0x67,0x2f,0x31,0x39,0x39,0x39,0x2f,0x78, + 0x6c,0x69,0x6e,0x6b,0x22,0x20,0x78,0x3d,0x22,0x30, + 0x70,0x78,0x22,0x20,0x79,0x3d,0x22,0x30,0x70,0x78, + 0x22,0x0d,0x0a,0x09,0x20,0x77,0x69,0x64,0x74,0x68, + 0x3d,0x22,0x32,0x31,0x2e,0x37,0x37,0x35,0x70,0x78, + 0x22,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x22, + 0x32,0x30,0x2e,0x37,0x36,0x32,0x70,0x78,0x22,0x20, + 0x76,0x69,0x65,0x77,0x42,0x6f,0x78,0x3d,0x22,0x30, + 0x20,0x30,0x20,0x32,0x31,0x2e,0x37,0x37,0x35,0x20, + 0x32,0x30,0x2e,0x37,0x36,0x32,0x22,0x20,0x65,0x6e, + 0x61,0x62,0x6c,0x65,0x2d,0x62,0x61,0x63,0x6b,0x67, + 0x72,0x6f,0x75,0x6e,0x64,0x3d,0x22,0x6e,0x65,0x77, + 0x20,0x30,0x20,0x30,0x20,0x32,0x31,0x2e,0x37,0x37, + 0x35,0x20,0x32,0x30,0x2e,0x37,0x36,0x32,0x22,0x20, + 0x78,0x6d,0x6c,0x3a,0x73,0x70,0x61,0x63,0x65,0x3d, + 0x22,0x70,0x72,0x65,0x73,0x65,0x72,0x76,0x65,0x22, + 0x3e,0x0d,0x0a,0x3c,0x70,0x61,0x74,0x68,0x20,0x66, + 0x69,0x6c,0x6c,0x3d,0x22,0x23,0x37,0x37,0x37,0x37, + 0x37,0x37,0x22,0x20,0x64,0x3d,0x22,0x4d,0x38,0x2e, + 0x37,0x31,0x2c,0x32,0x2e,0x34,0x38,0x63,0x30,0x2e, + 0x30,0x32,0x36,0x2c,0x30,0x2e,0x30,0x31,0x38,0x2c, + 0x30,0x2e,0x30,0x38,0x33,0x2c,0x30,0x2e,0x30,0x37, + 0x2c,0x30,0x2e,0x31,0x34,0x33,0x2c,0x30,0x2e,0x31, + 0x39,0x33,0x6c,0x31,0x2e,0x38,0x35,0x39,0x2c,0x33, + 0x2e,0x37,0x36,0x36,0x63,0x30,0x2e,0x33,0x33,0x33, + 0x2c,0x30,0x2e,0x36,0x37,0x36,0x2c,0x31,0x2e,0x31, + 0x38,0x2c,0x31,0x2e,0x32,0x39,0x31,0x2c,0x31,0x2e, + 0x39,0x32,0x34,0x2c,0x31,0x2e,0x33,0x39,0x38,0x6c, + 0x34,0x2e,0x31,0x35,0x35,0x2c,0x30,0x2e,0x36,0x30, + 0x33,0x0d,0x0a,0x09,0x63,0x30,0x2e,0x31,0x35,0x2c, + 0x30,0x2e,0x30,0x32,0x32,0x2c,0x30,0x2e,0x32,0x31, + 0x38,0x2c,0x30,0x2e,0x30,0x36,0x36,0x2c,0x30,0x2e, + 0x32,0x32,0x37,0x2c,0x30,0x2e,0x30,0x36,0x36,0x63, + 0x30,0x2e,0x30,0x30,0x31,0x2c,0x30,0x2c,0x30,0x2e, + 0x30,0x30,0x31,0x2c,0x30,0x2c,0x30,0x2e,0x30,0x30, + 0x31,0x2c,0x30,0x63,0x30,0x2c,0x30,0x2e,0x30,0x31, + 0x39,0x2d,0x30,0x2e,0x30,0x32,0x35,0x2c,0x30,0x2e, + 0x30,0x39,0x36,0x2d,0x30,0x2e,0x31,0x34,0x2c,0x30, + 0x2e,0x32,0x30,0x37,0x6c,0x2d,0x33,0x2e,0x30,0x30, + 0x39,0x2c,0x32,0x2e,0x39,0x33,0x31,0x0d,0x0a,0x09, + 0x63,0x2d,0x30,0x2e,0x35,0x33,0x39,0x2c,0x30,0x2e, + 0x35,0x32,0x36,0x2d,0x30,0x2e,0x38,0x36,0x32,0x2c, + 0x31,0x2e,0x35,0x32,0x31,0x2d,0x30,0x2e,0x37,0x33, + 0x35,0x2c,0x32,0x2e,0x32,0x36,0x33,0x6c,0x30,0x2e, + 0x37,0x31,0x31,0x2c,0x34,0x2e,0x31,0x34,0x63,0x30, + 0x2e,0x30,0x32,0x37,0x2c,0x30,0x2e,0x31,0x35,0x36, + 0x2c,0x30,0x2e,0x30,0x30,0x33,0x2c,0x30,0x2e,0x32, + 0x33,0x34,0x2d,0x30,0x2e,0x30,0x31,0x31,0x2c,0x30, + 0x2e,0x32,0x33,0x39,0x63,0x2d,0x30,0x2e,0x30,0x32, + 0x35,0x2c,0x30,0x2d,0x30,0x2e,0x30,0x39,0x38,0x2d, + 0x30,0x2e,0x30,0x30,0x38,0x2d,0x30,0x2e,0x32,0x32, + 0x31,0x2d,0x30,0x2e,0x30,0x37,0x31,0x4c,0x39,0x2e, + 0x39,0x2c,0x31,0x36,0x2e,0x32,0x36,0x0d,0x0a,0x09, + 0x63,0x2d,0x30,0x2e,0x33,0x32,0x34,0x2d,0x30,0x2e, + 0x31,0x37,0x31,0x2d,0x30,0x2e,0x37,0x34,0x37,0x2d, + 0x30,0x2e,0x32,0x36,0x34,0x2d,0x31,0x2e,0x31,0x39, + 0x2d,0x30,0x2e,0x32,0x36,0x34,0x53,0x37,0x2e,0x38, + 0x34,0x33,0x2c,0x31,0x36,0x2e,0x30,0x39,0x2c,0x37, + 0x2e,0x35,0x32,0x2c,0x31,0x36,0x2e,0x32,0x36,0x6c, + 0x2d,0x33,0x2e,0x37,0x31,0x36,0x2c,0x31,0x2e,0x39, + 0x35,0x34,0x63,0x2d,0x30,0x2e,0x31,0x32,0x33,0x2c, + 0x30,0x2e,0x30,0x36,0x33,0x2d,0x30,0x2e,0x31,0x39, + 0x36,0x2c,0x30,0x2e,0x30,0x37,0x31,0x2d,0x30,0x2e, + 0x32,0x32,0x34,0x2c,0x30,0x2e,0x30,0x38,0x32,0x0d, + 0x0a,0x09,0x63,0x2d,0x30,0x2e,0x30,0x31,0x2d,0x30, + 0x2e,0x30,0x31,0x36,0x2d,0x30,0x2e,0x30,0x33,0x34, + 0x2d,0x30,0x2e,0x30,0x39,0x34,0x2d,0x30,0x2e,0x30, + 0x30,0x38,0x2d,0x30,0x2e,0x32,0x35,0x6c,0x30,0x2e, + 0x37,0x31,0x2d,0x34,0x2e,0x31,0x34,0x63,0x30,0x2e, + 0x31,0x32,0x38,0x2d,0x30,0x2e,0x37,0x34,0x33,0x2d, + 0x30,0x2e,0x31,0x39,0x35,0x2d,0x31,0x2e,0x37,0x33, + 0x37,0x2d,0x30,0x2e,0x37,0x33,0x35,0x2d,0x32,0x2e, + 0x32,0x36,0x33,0x4c,0x30,0x2e,0x35,0x34,0x31,0x2c, + 0x38,0x2e,0x37,0x31,0x32,0x43,0x30,0x2e,0x34,0x32, + 0x37,0x2c,0x38,0x2e,0x36,0x30,0x32,0x2c,0x30,0x2e, + 0x34,0x2c,0x38,0x2e,0x35,0x32,0x35,0x2c,0x30,0x2e, + 0x33,0x39,0x35,0x2c,0x38,0x2e,0x35,0x32,0x35,0x0d, + 0x0a,0x09,0x6c,0x30,0x2c,0x30,0x43,0x30,0x2e,0x34, + 0x30,0x35,0x2c,0x38,0x2e,0x35,0x31,0x2c,0x30,0x2e, + 0x34,0x37,0x32,0x2c,0x38,0x2e,0x34,0x36,0x34,0x2c, + 0x30,0x2e,0x36,0x33,0x2c,0x38,0x2e,0x34,0x34,0x31, + 0x6c,0x34,0x2e,0x31,0x35,0x33,0x2d,0x30,0x2e,0x36, + 0x30,0x33,0x43,0x35,0x2e,0x35,0x33,0x2c,0x37,0x2e, + 0x37,0x33,0x2c,0x36,0x2e,0x33,0x37,0x35,0x2c,0x37, + 0x2e,0x31,0x31,0x35,0x2c,0x36,0x2e,0x37,0x30,0x39, + 0x2c,0x36,0x2e,0x34,0x33,0x39,0x6c,0x31,0x2e,0x38, + 0x35,0x39,0x2d,0x33,0x2e,0x37,0x36,0x36,0x0d,0x0a, + 0x09,0x43,0x38,0x2e,0x36,0x32,0x38,0x2c,0x32,0x2e, + 0x35,0x35,0x2c,0x38,0x2e,0x36,0x38,0x35,0x2c,0x32, + 0x2e,0x34,0x39,0x36,0x2c,0x38,0x2e,0x37,0x31,0x2c, + 0x32,0x2e,0x34,0x38,0x20,0x4d,0x38,0x2e,0x37,0x31, + 0x2c,0x32,0x2e,0x30,0x37,0x36,0x63,0x2d,0x30,0x2e, + 0x31,0x38,0x32,0x2c,0x30,0x2d,0x30,0x2e,0x33,0x36, + 0x34,0x2c,0x30,0x2e,0x31,0x34,0x2d,0x30,0x2e,0x35, + 0x30,0x31,0x2c,0x30,0x2e,0x34,0x31,0x39,0x4c,0x36, + 0x2e,0x33,0x35,0x2c,0x36,0x2e,0x32,0x36,0x32,0x63, + 0x2d,0x30,0x2e,0x32,0x37,0x36,0x2c,0x30,0x2e,0x35, + 0x36,0x2d,0x31,0x2e,0x30,0x30,0x37,0x2c,0x31,0x2e, + 0x30,0x39,0x31,0x2d,0x31,0x2e,0x36,0x32,0x34,0x2c, + 0x31,0x2e,0x31,0x38,0x0d,0x0a,0x09,0x4c,0x30,0x2e, + 0x35,0x37,0x32,0x2c,0x38,0x2e,0x30,0x34,0x35,0x63, + 0x2d,0x30,0x2e,0x36,0x31,0x38,0x2c,0x30,0x2e,0x30, + 0x39,0x2d,0x30,0x2e,0x37,0x35,0x37,0x2c,0x30,0x2e, + 0x35,0x32,0x2d,0x30,0x2e,0x33,0x31,0x2c,0x30,0x2e, + 0x39,0x35,0x35,0x6c,0x33,0x2e,0x30,0x30,0x37,0x2c, + 0x32,0x2e,0x39,0x33,0x31,0x63,0x30,0x2e,0x34,0x34, + 0x37,0x2c,0x30,0x2e,0x34,0x33,0x36,0x2c,0x30,0x2e, + 0x37,0x32,0x36,0x2c,0x31,0x2e,0x32,0x39,0x35,0x2c, + 0x30,0x2e,0x36,0x32,0x2c,0x31,0x2e,0x39,0x30,0x39, + 0x6c,0x2d,0x30,0x2e,0x37,0x31,0x2c,0x34,0x2e,0x31, + 0x33,0x39,0x0d,0x0a,0x09,0x63,0x2d,0x30,0x2e,0x30, + 0x37,0x37,0x2c,0x30,0x2e,0x34,0x34,0x36,0x2c,0x30, + 0x2e,0x30,0x39,0x34,0x2c,0x30,0x2e,0x37,0x30,0x38, + 0x2c,0x30,0x2e,0x34,0x30,0x35,0x2c,0x30,0x2e,0x37, + 0x30,0x38,0x63,0x30,0x2e,0x31,0x31,0x38,0x2c,0x30, + 0x2c,0x30,0x2e,0x32,0x35,0x35,0x2d,0x30,0x2e,0x30, + 0x33,0x38,0x2c,0x30,0x2e,0x34,0x30,0x37,0x2d,0x30, + 0x2e,0x31,0x31,0x37,0x6c,0x33,0x2e,0x37,0x31,0x37, + 0x2d,0x31,0x2e,0x39,0x35,0x35,0x63,0x30,0x2e,0x32, + 0x37,0x36,0x2d,0x30,0x2e,0x31,0x34,0x35,0x2c,0x30, + 0x2e,0x36,0x34,0x2d,0x30,0x2e,0x32,0x31,0x36,0x2c, + 0x31,0x2e,0x30,0x30,0x33,0x2d,0x30,0x2e,0x32,0x31, + 0x36,0x0d,0x0a,0x09,0x63,0x30,0x2e,0x33,0x36,0x34, + 0x2c,0x30,0x2c,0x30,0x2e,0x37,0x32,0x39,0x2c,0x30, + 0x2e,0x30,0x37,0x32,0x2c,0x31,0x2e,0x30,0x30,0x34, + 0x2c,0x30,0x2e,0x32,0x31,0x36,0x6c,0x33,0x2e,0x37, + 0x31,0x37,0x2c,0x31,0x2e,0x39,0x35,0x35,0x63,0x30, + 0x2e,0x31,0x35,0x2c,0x30,0x2e,0x30,0x37,0x39,0x2c, + 0x30,0x2e,0x32,0x38,0x39,0x2c,0x30,0x2e,0x31,0x31, + 0x37,0x2c,0x30,0x2e,0x34,0x30,0x37,0x2c,0x30,0x2e, + 0x31,0x31,0x37,0x63,0x30,0x2e,0x33,0x31,0x31,0x2c, + 0x30,0x2c,0x30,0x2e,0x34,0x38,0x31,0x2d,0x30,0x2e, + 0x32,0x36,0x32,0x2c,0x30,0x2e,0x34,0x30,0x35,0x2d, + 0x30,0x2e,0x37,0x30,0x38,0x6c,0x2d,0x30,0x2e,0x37, + 0x31,0x31,0x2d,0x34,0x2e,0x31,0x33,0x39,0x0d,0x0a, + 0x09,0x63,0x2d,0x30,0x2e,0x31,0x30,0x35,0x2d,0x30, + 0x2e,0x36,0x31,0x34,0x2c,0x30,0x2e,0x31,0x37,0x34, + 0x2d,0x31,0x2e,0x34,0x37,0x34,0x2c,0x30,0x2e,0x36, + 0x31,0x39,0x2d,0x31,0x2e,0x39,0x30,0x39,0x6c,0x33, + 0x2e,0x30,0x30,0x39,0x2d,0x32,0x2e,0x39,0x33,0x31, + 0x63,0x30,0x2e,0x34,0x34,0x36,0x2d,0x30,0x2e,0x34, + 0x33,0x35,0x2c,0x30,0x2e,0x33,0x30,0x37,0x2d,0x30, + 0x2e,0x38,0x36,0x35,0x2d,0x30,0x2e,0x33,0x31,0x31, + 0x2d,0x30,0x2e,0x39,0x35,0x35,0x6c,0x2d,0x34,0x2e, + 0x31,0x35,0x34,0x2d,0x30,0x2e,0x36,0x30,0x33,0x0d, + 0x0a,0x09,0x63,0x2d,0x30,0x2e,0x36,0x31,0x37,0x2d, + 0x30,0x2e,0x30,0x38,0x39,0x2d,0x31,0x2e,0x33,0x34, + 0x39,0x2d,0x30,0x2e,0x36,0x32,0x2d,0x31,0x2e,0x36, + 0x32,0x34,0x2d,0x31,0x2e,0x31,0x38,0x4c,0x39,0x2e, + 0x32,0x31,0x33,0x2c,0x32,0x2e,0x34,0x39,0x35,0x43, + 0x39,0x2e,0x30,0x37,0x34,0x2c,0x32,0x2e,0x32,0x31, + 0x36,0x2c,0x38,0x2e,0x38,0x39,0x33,0x2c,0x32,0x2e, + 0x30,0x37,0x36,0x2c,0x38,0x2e,0x37,0x31,0x2c,0x32, + 0x2e,0x30,0x37,0x36,0x4c,0x38,0x2e,0x37,0x31,0x2c, + 0x32,0x2e,0x30,0x37,0x36,0x7a,0x22,0x2f,0x3e,0x0d, + 0x0a,0x3c,0x2f,0x73,0x76,0x67,0x3e,0x0d,0x0a +}; diff --git a/data/converted/corner_png.cpp b/data/converted/textinput_ninepatch_active_png.cpp similarity index 85% rename from data/converted/corner_png.cpp rename to data/converted/textinput_ninepatch_active_png.cpp index 3ae6f5db2..aae67003b 100644 --- a/data/converted/corner_png.cpp +++ b/data/converted/textinput_ninepatch_active_png.cpp @@ -1,13 +1,13 @@ -//this file was auto-generated from "corner.png" by res2h +//this file was auto-generated from "textinput_ninepatch_active.png" by res2h #include "../Resources.h" -const size_t corner_png_size = 2946; -const unsigned char corner_png_data[2946] = { +const size_t textinput_ninepatch_active_png_size = 3084; +const unsigned char textinput_ninepatch_active_png_data[3084] = { 0x89,0x50,0x4e,0x47,0x0d,0x0a,0x1a,0x0a,0x00,0x00, - 0x00,0x0d,0x49,0x48,0x44,0x52,0x00,0x00,0x00,0x10, - 0x00,0x00,0x00,0x10,0x08,0x06,0x00,0x00,0x00,0x1f, - 0xf3,0xff,0x61,0x00,0x00,0x00,0x09,0x70,0x48,0x59, + 0x00,0x0d,0x49,0x48,0x44,0x52,0x00,0x00,0x00,0x30, + 0x00,0x00,0x00,0x30,0x08,0x06,0x00,0x00,0x00,0x57, + 0x02,0xf9,0x87,0x00,0x00,0x00,0x09,0x70,0x48,0x59, 0x73,0x00,0x00,0x0b,0x13,0x00,0x00,0x0b,0x13,0x01, 0x00,0x9a,0x9c,0x18,0x00,0x00,0x0a,0x4f,0x69,0x43, 0x43,0x50,0x50,0x68,0x6f,0x74,0x6f,0x73,0x68,0x6f, @@ -274,29 +274,43 @@ const unsigned char corner_png_data[2946] = { 0x77,0x1d,0xef,0xa3,0xdf,0x0f,0x4f,0xe4,0x7c,0x20, 0x7f,0x28,0xff,0x68,0xf9,0xb1,0xf5,0x53,0xd0,0xa7, 0xfb,0x93,0x19,0x93,0x93,0xff,0x04,0x03,0x98,0xf3, - 0xfc,0x63,0x33,0x2d,0xdb,0x00,0x00,0x00,0x04,0x67, - 0x41,0x4d,0x41,0x00,0x00,0xb1,0x8e,0x7c,0xfb,0x51, - 0x93,0x00,0x00,0x00,0x20,0x63,0x48,0x52,0x4d,0x00, - 0x00,0x7a,0x25,0x00,0x00,0x80,0x83,0x00,0x00,0xf9, - 0xff,0x00,0x00,0x80,0xe9,0x00,0x00,0x75,0x30,0x00, - 0x00,0xea,0x60,0x00,0x00,0x3a,0x98,0x00,0x00,0x17, - 0x6f,0x92,0x5f,0xc5,0x46,0x00,0x00,0x00,0x9d,0x49, - 0x44,0x41,0x54,0x78,0xda,0xa4,0x90,0x31,0x0a,0xc2, - 0x40,0x10,0x00,0x27,0x49,0x15,0x08,0x04,0xd2,0x5a, - 0x59,0x05,0xac,0x7c,0x80,0x20,0xa4,0xca,0x7b,0x04, - 0xc1,0x4f,0xf8,0x12,0x1f,0xe0,0x1b,0xfc,0x81,0x60, - 0x6b,0x65,0xe5,0x0f,0xc6,0xea,0x20,0x48,0x8c,0xc9, - 0xdd,0xc0,0xc2,0x35,0x33,0xdc,0x6e,0xa6,0xb2,0x80, - 0x3d,0xd0,0x03,0x3b,0xa0,0x04,0x36,0xa8,0xff,0xa6, - 0x56,0xcf,0xea,0xcb,0x11,0xa6,0xc4,0x42,0x3d,0xa8, - 0x6f,0x27,0xf8,0x25,0x37,0xea,0xd5,0x19,0x8c,0xc9, - 0x6b,0xf5,0xe1,0x4c,0xb2,0xaf,0x23,0xd6,0xc0,0x0d, - 0x68,0xe7,0x5e,0x35,0x1f,0xbc,0x0b,0xe0,0xb2,0x44, - 0x06,0x18,0x7e,0xfd,0x64,0x04,0x61,0x85,0x15,0x70, - 0x07,0x2a,0x16,0x12,0x56,0x38,0xc6,0xc8,0x00,0x99, - 0x5a,0x02,0x4f,0xa0,0x89,0x09,0xe4,0x40,0x17,0x2b, - 0x87,0x40,0x4f,0x02,0x39,0xb0,0x4d,0x0d,0xb4,0xa9, - 0x81,0x2a,0x25,0xf0,0x19,0x00,0x11,0x68,0x32,0x6a, - 0xb1,0xe9,0x64,0xd5,0x00,0x00,0x00,0x00,0x49,0x45, - 0x4e,0x44,0xae,0x42,0x60,0x82 + 0xfc,0x63,0x33,0x2d,0xdb,0x00,0x00,0x00,0x20,0x63, + 0x48,0x52,0x4d,0x00,0x00,0x7a,0x25,0x00,0x00,0x80, + 0x83,0x00,0x00,0xf9,0xff,0x00,0x00,0x80,0xe9,0x00, + 0x00,0x75,0x30,0x00,0x00,0xea,0x60,0x00,0x00,0x3a, + 0x98,0x00,0x00,0x17,0x6f,0x92,0x5f,0xc5,0x46,0x00, + 0x00,0x01,0x37,0x49,0x44,0x41,0x54,0x78,0xda,0xec, + 0xda,0xbd,0x4d,0xc3,0x40,0x00,0xc5,0xf1,0x7f,0x2e, + 0x27,0x45,0x4a,0x47,0x47,0x43,0x8f,0x0d,0x9e,0x84, + 0x26,0x56,0x0a,0x26,0x48,0xc4,0x00,0x48,0x71,0x4d, + 0xe5,0x11,0x50,0x46,0x40,0xb2,0xbd,0x80,0x4b,0x8f, + 0x10,0xc7,0x5e,0x81,0x05,0xa2,0x18,0xf9,0x30,0x45, + 0x62,0x89,0x82,0x01,0xce,0xe2,0xbd,0xea,0x74,0xd5, + 0xfb,0xdd,0x47,0x75,0x37,0x1b,0x86,0x81,0x24,0x49, + 0x0c,0xf0,0x02,0x6c,0x81,0x7b,0x60,0x81,0x9f,0xe9, + 0x80,0x16,0xd8,0x03,0xef,0x69,0x9a,0x7e,0xcf,0xcf, + 0xe7,0xb3,0x01,0x3e,0x80,0x57,0xe0,0x16,0xb0,0xf8, + 0x1b,0x7b,0xed,0xf8,0x04,0x3c,0x96,0x65,0x99,0xd9, + 0xeb,0xaa,0xaf,0x97,0xcb,0x25,0x71,0x1c,0x13,0x04, + 0x01,0xd6,0xfa,0x69,0xe8,0xfb,0x9e,0xa6,0x69,0x28, + 0x8a,0x82,0xd3,0xe9,0xb4,0x06,0x36,0x06,0xd8,0x00, + 0xac,0x56,0x2b,0xa2,0x28,0xf2,0xb6,0x3c,0x80,0xb5, + 0x96,0x28,0x8a,0x88,0xe3,0x78,0x9c,0xda,0x1a,0xe0, + 0x01,0x20,0x0c,0x43,0xa6,0x92,0x20,0x08,0xc6,0x61, + 0x68,0xc6,0x0b,0xeb,0xf3,0xca,0xff,0xb5,0x13,0xd7, + 0x2c,0x0c,0x13,0x8f,0x00,0x02,0x08,0x20,0x80,0x00, + 0x02,0x08,0x20,0x80,0x00,0x02,0x08,0x20,0x80,0x00, + 0x02,0x08,0x20,0x80,0x00,0x02,0x08,0x20,0x80,0x00, + 0x02,0x08,0x20,0x80,0x00,0x02,0xfc,0x47,0x40,0x07, + 0x97,0x47,0xe4,0xa9,0xe4,0x57,0xd7,0xce,0x00,0x47, + 0x80,0xa6,0x69,0x26,0x03,0x68,0xdb,0x76,0x1c,0x1e, + 0x0d,0x97,0x8f,0x13,0x14,0x45,0xc1,0xe1,0x70,0xc0, + 0x39,0xe7,0x6d,0x71,0xe7,0x1c,0x75,0x5d,0x93,0xe7, + 0xf9,0x38,0xb5,0x9f,0xed,0x76,0xbb,0xf1,0xb3,0xc7, + 0x7a,0x62,0xc7,0x3f,0x03,0x9e,0xe7,0x55,0x55,0x0d, + 0x65,0x59,0x66,0xc0,0x27,0x70,0x07,0xdc,0x00,0x73, + 0x4f,0x4b,0x7f,0x01,0x35,0xf0,0x06,0x24,0x69,0x9a, + 0xba,0x9f,0x01,0x00,0x79,0x0c,0x54,0x84,0x18,0x0e, + 0x50,0x30,0x00,0x00,0x00,0x00,0x49,0x45,0x4e,0x44, + 0xae,0x42,0x60,0x82 }; diff --git a/data/converted/textinput_ninepatch_png.cpp b/data/converted/textinput_ninepatch_png.cpp new file mode 100644 index 000000000..21387e40d --- /dev/null +++ b/data/converted/textinput_ninepatch_png.cpp @@ -0,0 +1,135 @@ +//this file was auto-generated from "textinput_ninepatch.png" by res2h + +#include "../Resources.h" + +const size_t textinput_ninepatch_png_size = 1275; +const unsigned char textinput_ninepatch_png_data[1275] = { + 0x89,0x50,0x4e,0x47,0x0d,0x0a,0x1a,0x0a,0x00,0x00, + 0x00,0x0d,0x49,0x48,0x44,0x52,0x00,0x00,0x00,0x30, + 0x00,0x00,0x00,0x30,0x08,0x06,0x00,0x00,0x00,0x57, + 0x02,0xf9,0x87,0x00,0x00,0x00,0x19,0x74,0x45,0x58, + 0x74,0x53,0x6f,0x66,0x74,0x77,0x61,0x72,0x65,0x00, + 0x41,0x64,0x6f,0x62,0x65,0x20,0x49,0x6d,0x61,0x67, + 0x65,0x52,0x65,0x61,0x64,0x79,0x71,0xc9,0x65,0x3c, + 0x00,0x00,0x03,0x68,0x69,0x54,0x58,0x74,0x58,0x4d, + 0x4c,0x3a,0x63,0x6f,0x6d,0x2e,0x61,0x64,0x6f,0x62, + 0x65,0x2e,0x78,0x6d,0x70,0x00,0x00,0x00,0x00,0x00, + 0x3c,0x3f,0x78,0x70,0x61,0x63,0x6b,0x65,0x74,0x20, + 0x62,0x65,0x67,0x69,0x6e,0x3d,0x22,0xef,0xbb,0xbf, + 0x22,0x20,0x69,0x64,0x3d,0x22,0x57,0x35,0x4d,0x30, + 0x4d,0x70,0x43,0x65,0x68,0x69,0x48,0x7a,0x72,0x65, + 0x53,0x7a,0x4e,0x54,0x63,0x7a,0x6b,0x63,0x39,0x64, + 0x22,0x3f,0x3e,0x20,0x3c,0x78,0x3a,0x78,0x6d,0x70, + 0x6d,0x65,0x74,0x61,0x20,0x78,0x6d,0x6c,0x6e,0x73, + 0x3a,0x78,0x3d,0x22,0x61,0x64,0x6f,0x62,0x65,0x3a, + 0x6e,0x73,0x3a,0x6d,0x65,0x74,0x61,0x2f,0x22,0x20, + 0x78,0x3a,0x78,0x6d,0x70,0x74,0x6b,0x3d,0x22,0x41, + 0x64,0x6f,0x62,0x65,0x20,0x58,0x4d,0x50,0x20,0x43, + 0x6f,0x72,0x65,0x20,0x35,0x2e,0x33,0x2d,0x63,0x30, + 0x31,0x31,0x20,0x36,0x36,0x2e,0x31,0x34,0x35,0x36, + 0x36,0x31,0x2c,0x20,0x32,0x30,0x31,0x32,0x2f,0x30, + 0x32,0x2f,0x30,0x36,0x2d,0x31,0x34,0x3a,0x35,0x36, + 0x3a,0x32,0x37,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x22,0x3e,0x20,0x3c,0x72,0x64,0x66,0x3a,0x52, + 0x44,0x46,0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3a,0x72, + 0x64,0x66,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f, + 0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72, + 0x67,0x2f,0x31,0x39,0x39,0x39,0x2f,0x30,0x32,0x2f, + 0x32,0x32,0x2d,0x72,0x64,0x66,0x2d,0x73,0x79,0x6e, + 0x74,0x61,0x78,0x2d,0x6e,0x73,0x23,0x22,0x3e,0x20, + 0x3c,0x72,0x64,0x66,0x3a,0x44,0x65,0x73,0x63,0x72, + 0x69,0x70,0x74,0x69,0x6f,0x6e,0x20,0x72,0x64,0x66, + 0x3a,0x61,0x62,0x6f,0x75,0x74,0x3d,0x22,0x22,0x20, + 0x78,0x6d,0x6c,0x6e,0x73,0x3a,0x78,0x6d,0x70,0x4d, + 0x4d,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f, + 0x6e,0x73,0x2e,0x61,0x64,0x6f,0x62,0x65,0x2e,0x63, + 0x6f,0x6d,0x2f,0x78,0x61,0x70,0x2f,0x31,0x2e,0x30, + 0x2f,0x6d,0x6d,0x2f,0x22,0x20,0x78,0x6d,0x6c,0x6e, + 0x73,0x3a,0x73,0x74,0x52,0x65,0x66,0x3d,0x22,0x68, + 0x74,0x74,0x70,0x3a,0x2f,0x2f,0x6e,0x73,0x2e,0x61, + 0x64,0x6f,0x62,0x65,0x2e,0x63,0x6f,0x6d,0x2f,0x78, + 0x61,0x70,0x2f,0x31,0x2e,0x30,0x2f,0x73,0x54,0x79, + 0x70,0x65,0x2f,0x52,0x65,0x73,0x6f,0x75,0x72,0x63, + 0x65,0x52,0x65,0x66,0x23,0x22,0x20,0x78,0x6d,0x6c, + 0x6e,0x73,0x3a,0x78,0x6d,0x70,0x3d,0x22,0x68,0x74, + 0x74,0x70,0x3a,0x2f,0x2f,0x6e,0x73,0x2e,0x61,0x64, + 0x6f,0x62,0x65,0x2e,0x63,0x6f,0x6d,0x2f,0x78,0x61, + 0x70,0x2f,0x31,0x2e,0x30,0x2f,0x22,0x20,0x78,0x6d, + 0x70,0x4d,0x4d,0x3a,0x4f,0x72,0x69,0x67,0x69,0x6e, + 0x61,0x6c,0x44,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74, + 0x49,0x44,0x3d,0x22,0x78,0x6d,0x70,0x2e,0x64,0x69, + 0x64,0x3a,0x45,0x39,0x31,0x35,0x37,0x37,0x33,0x42, + 0x31,0x31,0x32,0x30,0x36,0x38,0x31,0x31,0x38,0x30, + 0x38,0x33,0x43,0x37,0x45,0x33,0x31,0x45,0x41,0x35, + 0x41,0x37,0x35,0x33,0x22,0x20,0x78,0x6d,0x70,0x4d, + 0x4d,0x3a,0x44,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74, + 0x49,0x44,0x3d,0x22,0x78,0x6d,0x70,0x2e,0x64,0x69, + 0x64,0x3a,0x33,0x42,0x37,0x42,0x36,0x33,0x37,0x36, + 0x39,0x44,0x38,0x38,0x31,0x31,0x45,0x33,0x41,0x39, + 0x31,0x44,0x42,0x44,0x46,0x44,0x34,0x30,0x39,0x39, + 0x32,0x45,0x45,0x33,0x22,0x20,0x78,0x6d,0x70,0x4d, + 0x4d,0x3a,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65, + 0x49,0x44,0x3d,0x22,0x78,0x6d,0x70,0x2e,0x69,0x69, + 0x64,0x3a,0x39,0x38,0x44,0x38,0x30,0x39,0x45,0x34, + 0x39,0x44,0x38,0x37,0x31,0x31,0x45,0x33,0x41,0x39, + 0x31,0x44,0x42,0x44,0x46,0x44,0x34,0x30,0x39,0x39, + 0x32,0x45,0x45,0x33,0x22,0x20,0x78,0x6d,0x70,0x3a, + 0x43,0x72,0x65,0x61,0x74,0x6f,0x72,0x54,0x6f,0x6f, + 0x6c,0x3d,0x22,0x41,0x64,0x6f,0x62,0x65,0x20,0x50, + 0x68,0x6f,0x74,0x6f,0x73,0x68,0x6f,0x70,0x20,0x43, + 0x53,0x36,0x20,0x28,0x4d,0x61,0x63,0x69,0x6e,0x74, + 0x6f,0x73,0x68,0x29,0x22,0x3e,0x20,0x3c,0x78,0x6d, + 0x70,0x4d,0x4d,0x3a,0x44,0x65,0x72,0x69,0x76,0x65, + 0x64,0x46,0x72,0x6f,0x6d,0x20,0x73,0x74,0x52,0x65, + 0x66,0x3a,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65, + 0x49,0x44,0x3d,0x22,0x78,0x6d,0x70,0x2e,0x69,0x69, + 0x64,0x3a,0x45,0x39,0x31,0x35,0x37,0x37,0x33,0x42, + 0x31,0x31,0x32,0x30,0x36,0x38,0x31,0x31,0x38,0x30, + 0x38,0x33,0x43,0x37,0x45,0x33,0x31,0x45,0x41,0x35, + 0x41,0x37,0x35,0x33,0x22,0x20,0x73,0x74,0x52,0x65, + 0x66,0x3a,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74, + 0x49,0x44,0x3d,0x22,0x78,0x6d,0x70,0x2e,0x64,0x69, + 0x64,0x3a,0x45,0x39,0x31,0x35,0x37,0x37,0x33,0x42, + 0x31,0x31,0x32,0x30,0x36,0x38,0x31,0x31,0x38,0x30, + 0x38,0x33,0x43,0x37,0x45,0x33,0x31,0x45,0x41,0x35, + 0x41,0x37,0x35,0x33,0x22,0x2f,0x3e,0x20,0x3c,0x2f, + 0x72,0x64,0x66,0x3a,0x44,0x65,0x73,0x63,0x72,0x69, + 0x70,0x74,0x69,0x6f,0x6e,0x3e,0x20,0x3c,0x2f,0x72, + 0x64,0x66,0x3a,0x52,0x44,0x46,0x3e,0x20,0x3c,0x2f, + 0x78,0x3a,0x78,0x6d,0x70,0x6d,0x65,0x74,0x61,0x3e, + 0x20,0x3c,0x3f,0x78,0x70,0x61,0x63,0x6b,0x65,0x74, + 0x20,0x65,0x6e,0x64,0x3d,0x22,0x72,0x22,0x3f,0x3e, + 0x18,0xec,0x12,0x45,0x00,0x00,0x01,0x29,0x49,0x44, + 0x41,0x54,0x78,0xda,0xec,0x9a,0x41,0x6a,0x02,0x31, + 0x18,0x85,0x7f,0x43,0xc0,0xad,0xd1,0x13,0x98,0x55, + 0xb1,0x17,0xa8,0x7b,0x6f,0xe0,0x62,0x4e,0xa0,0x14, + 0x7a,0xa1,0x62,0x6f,0x20,0x78,0x0d,0xa7,0xeb,0x2e, + 0xa4,0xba,0x88,0x37,0x98,0xb8,0x55,0xa6,0x33,0xfd, + 0x5f,0x49,0xc1,0x45,0x0f,0x90,0xd0,0xf7,0xe0,0x41, + 0x60,0x36,0xdf,0x97,0x64,0x56,0xf9,0x07,0x7d,0xdf, + 0x4b,0xfd,0x5e,0x1b,0x11,0x79,0xd6,0xae,0xb5,0x0f, + 0xda,0xa1,0xe4,0x99,0xab,0xf6,0x53,0xbb,0xd1,0xbe, + 0xce,0x9f,0xe6,0xdd,0x60,0x5f,0xef,0x01,0xbf,0xd5, + 0x2e,0xa5,0xac,0xec,0xb4,0x95,0x4d,0xbb,0xbe,0xb4, + 0xd6,0x8a,0xf7,0x5e,0xdc,0xc8,0x89,0x31,0x26,0x4b, + 0xe2,0xae,0xeb,0x24,0x5e,0xa2,0x84,0x10,0xa4,0x6d, + 0x5b,0x6c,0xf8,0x0a,0xa4,0x2b,0x7c,0xf4,0x53,0x2f, + 0x93,0xf1,0x24,0x5b,0x78,0x04,0x6c,0x60,0x04,0x6b, + 0xca,0x1a,0xb4,0x8f,0x58,0x39,0xe7,0x8a,0xb9,0x3b, + 0x77,0xac,0x33,0xf3,0xfb,0xc3,0xe6,0xbc,0xf3,0x7f, + 0x9d,0x44,0xca,0xd0,0x48,0xe1,0xa1,0x00,0x05,0x28, + 0x40,0x01,0x0a,0x50,0x80,0x02,0x14,0xa0,0x00,0x05, + 0x28,0x40,0x01,0x0a,0x50,0x80,0x02,0x14,0xa0,0x00, + 0x05,0x28,0x40,0x01,0x0a,0x50,0x80,0x02,0x14,0xa0, + 0x00,0x05,0xfe,0xa3,0x00,0x9e,0xef,0x7f,0x1e,0x91, + 0x4b,0xc9,0x1d,0xeb,0x15,0x02,0x07,0xac,0x62,0x8c, + 0xc5,0x08,0xe0,0xb5,0x3e,0xe5,0x00,0x01,0x0c,0x4e, + 0x48,0x38,0x07,0x69,0x9a,0x46,0x30,0xfc,0x91,0x6b, + 0xc0,0x06,0x46,0x8c,0x1a,0xa4,0x6c,0x6c,0x12,0x58, + 0x60,0xf6,0xe0,0x78,0x3a,0x96,0x74,0xfd,0x31,0xec, + 0xf1,0x66,0x30,0xb2,0xa2,0x8b,0x4a,0xfb,0xa2,0xfd, + 0xd0,0xde,0x32,0x86,0xbe,0x25,0x46,0xb0,0x56,0xca, + 0xfe,0xf5,0x2d,0xc0,0x00,0x3b,0xe6,0x51,0x95,0x79, + 0xeb,0x7d,0x04,0x00,0x00,0x00,0x00,0x49,0x45,0x4e, + 0x44,0xae,0x42,0x60,0x82 +}; diff --git a/data/converted/window_icon_256_png.cpp b/data/converted/window_icon_256_png.cpp new file mode 100644 index 000000000..e88c4c9f7 --- /dev/null +++ b/data/converted/window_icon_256_png.cpp @@ -0,0 +1,494 @@ +//this file was auto-generated from "window_icon_256.png" by res2h + +#include "../Resources.h" + +const size_t window_icon_256_png_size = 4870; +const unsigned char window_icon_256_png_data[4870] = { + 0x89,0x50,0x4e,0x47,0x0d,0x0a,0x1a,0x0a,0x00,0x00, + 0x00,0x0d,0x49,0x48,0x44,0x52,0x00,0x00,0x01,0x00, + 0x00,0x00,0x01,0x00,0x08,0x06,0x00,0x00,0x00,0x5c, + 0x72,0xa8,0x66,0x00,0x00,0x00,0x19,0x74,0x45,0x58, + 0x74,0x53,0x6f,0x66,0x74,0x77,0x61,0x72,0x65,0x00, + 0x41,0x64,0x6f,0x62,0x65,0x20,0x49,0x6d,0x61,0x67, + 0x65,0x52,0x65,0x61,0x64,0x79,0x71,0xc9,0x65,0x3c, + 0x00,0x00,0x12,0xa8,0x49,0x44,0x41,0x54,0x78,0xda, + 0xec,0x9d,0x09,0x78,0x14,0x55,0xba,0x40,0xff,0xce, + 0x46,0x20,0x04,0xc3,0x16,0xf6,0x00,0x51,0x10,0xd9, + 0x41,0x04,0x05,0x64,0x95,0xcd,0x05,0x14,0x14,0x45, + 0x19,0xc5,0xe1,0x9b,0x0c,0x38,0xe8,0x73,0x26,0xcf, + 0x65,0x06,0x1e,0x22,0x2e,0xe3,0x8c,0xa2,0x8c,0x0f, + 0x41,0xd4,0x11,0x44,0x05,0x9e,0x28,0xca,0x22,0x82, + 0x02,0x61,0x49,0xd8,0x44,0x96,0x04,0x10,0x88,0x42, + 0x08,0x61,0x09,0x04,0xb2,0xef,0x49,0x67,0xaa,0x9a, + 0x38,0x83,0x79,0x0a,0xdd,0xd0,0x75,0xbb,0xab,0xea, + 0x1c,0xbf,0x8a,0x22,0xdf,0x97,0x9b,0x5a,0xce,0xe9, + 0xaa,0x4e,0x72,0xaf,0xa3,0xa2,0xa2,0x42,0x00,0xc0, + 0x9e,0x38,0x08,0x00,0x00,0x01,0x00,0x00,0x02,0x00, + 0x00,0x04,0x00,0x00,0x08,0x00,0x00,0x10,0x00,0x00, + 0x20,0x00,0x00,0x40,0x00,0x00,0x80,0x00,0x00,0x00, + 0x01,0x00,0x00,0x02,0x00,0x00,0x04,0x00,0x00,0x08, + 0x00,0x00,0x10,0x00,0x00,0x20,0x00,0x00,0x40,0x00, + 0x00,0x80,0x00,0x00,0x00,0x01,0x00,0x00,0x02,0x00, + 0x00,0x04,0x00,0x00,0x08,0x00,0x00,0x10,0x00,0x00, + 0x20,0x00,0x00,0x40,0x00,0x00,0x80,0x00,0x00,0x00, + 0x01,0x00,0x00,0x02,0x00,0x00,0x04,0x00,0x00,0x08, + 0x00,0x00,0x10,0x00,0x00,0x20,0x00,0x00,0x40,0x00, + 0x00,0x80,0x00,0x00,0x00,0x01,0x00,0x00,0x02,0x00, + 0x00,0x04,0x00,0x00,0x08,0x00,0x80,0xed,0x03,0xa0, + 0x74,0xb4,0xe1,0xb1,0x4d,0xb5,0x8f,0x77,0x68,0xdb, + 0x40,0x6d,0xeb,0xac,0x6d,0x51,0xda,0x56,0x8d,0xd3, + 0x00,0x60,0x28,0x4e,0x6d,0x4b,0xd5,0xb6,0x35,0xda, + 0x36,0x43,0x96,0xcf,0x48,0x56,0x17,0x80,0xe1,0xb1, + 0xfa,0x18,0x77,0x6a,0xdb,0x13,0x95,0xe2,0x3b,0x38, + 0x1f,0x00,0x3e,0xa3,0x5c,0xdb,0x9e,0xd6,0x22,0xf0, + 0xba,0xf1,0x01,0x18,0x1e,0x3b,0xc8,0x55,0x1c,0x91, + 0x0e,0x1c,0x77,0x00,0xbf,0x22,0x56,0x8f,0x80,0xc3, + 0x20,0xf1,0xc3,0xb5,0x8f,0x6f,0x6a,0xdb,0x38,0x8e, + 0x33,0x80,0xdf,0xde,0x09,0xb4,0x75,0x18,0x20,0x7f, + 0x13,0xed,0xe3,0x97,0xda,0xd6,0x89,0x63,0x0c,0xe0, + 0xd7,0xcc,0x75,0x78,0x59,0x7e,0xfd,0x4d,0xbe,0x0d, + 0xda,0x76,0x2d,0xc7,0x16,0xc0,0xef,0x49,0x71,0x20, + 0x3f,0x80,0x6d,0x71,0x3a,0x90,0x1f,0xc0,0xbe,0x38, + 0x90,0x1f,0x80,0x00,0x20,0x3f,0x00,0x01,0x40,0x7e, + 0x00,0x02,0x80,0xfc,0x00,0x04,0x00,0xf9,0x01,0x08, + 0x00,0xf2,0x03,0xd8,0x3e,0x00,0xc8,0x0f,0x60,0xd3, + 0x00,0x20,0x3f,0x80,0x4d,0x03,0x80,0xfc,0x00,0x36, + 0x0d,0x00,0xf2,0x03,0xd8,0x34,0x00,0xc8,0x0f,0x60, + 0xd3,0x00,0x20,0x3f,0x80,0x4d,0x03,0x80,0xfc,0x00, + 0x36,0x0d,0xc0,0xf0,0xd8,0x5a,0xda,0xc7,0x04,0x6d, + 0x6b,0xcf,0xa1,0x01,0xb0,0x3e,0x01,0x55,0xfe,0x3c, + 0x0b,0xf9,0x01,0xec,0x78,0x07,0x30,0x3c,0x76,0x88, + 0xf6,0x71,0x35,0x87,0x04,0xc0,0x6e,0x01,0x18,0x1e, + 0xab,0xdf,0x09,0x24,0x6a,0x5b,0x3b,0x0e,0x09,0x80, + 0x7d,0x08,0xfa,0xe9,0xf5,0xdf,0x6a,0xf2,0x07,0x38, + 0x1c,0xd2,0xa6,0x49,0x3d,0x69,0x17,0xd5,0x50,0xea, + 0xd7,0x0a,0x93,0x90,0xa0,0x40,0xdb,0x9e,0xe4,0xb2, + 0x72,0xa7,0x9c,0xcc,0xcc,0x91,0xf5,0x49,0x47,0x24, + 0x2b,0xbf,0xd0,0xe7,0x5f,0x4f,0xa4,0x76,0x3e,0x3a, + 0xb5,0x68,0x24,0xcd,0x23,0x23,0xa4,0x66,0xa8,0xbd, + 0xd7,0x85,0xd1,0xcf,0xc7,0xb7,0x3f,0xa4,0xc9,0xfe, + 0xe3,0x67,0x7c,0x1a,0x80,0x27,0xac,0x70,0x30,0x83, + 0x03,0x03,0x65,0x68,0xa7,0x68,0x19,0xd3,0xa7,0x8b, + 0x0c,0xe9,0xd6,0x4e,0xea,0x84,0x87,0x91,0xf8,0x8b, + 0xc8,0xd1,0x2e,0xb6,0x51,0x7f,0x9d,0x27,0x6b,0xb5, + 0x10,0xa8,0xe6,0xfa,0x46,0x75,0xe4,0x91,0x7e,0x5d, + 0xe5,0xce,0xee,0xed,0xa5,0x43,0x74,0x53,0x4e,0x46, + 0x15,0xde,0x5d,0xb5,0x59,0x62,0xe6,0x2e,0xf3,0xc1, + 0x23,0xc0,0xf0,0xd8,0x66,0xda,0xbf,0x8f,0x89,0x89, + 0x57,0xec,0xa9,0x1e,0x1c,0x24,0x13,0x07,0xdf,0x24, + 0x7f,0xbc,0xa7,0xbf,0x34,0xad,0x5f,0x87,0xab,0xe9, + 0x12,0x2c,0xd9,0xbc,0x4b,0x46,0xbf,0xb6,0x50,0xd9, + 0x78,0x7d,0xda,0x44,0xc9,0xe4,0xfb,0x06,0xca,0xe0, + 0x6e,0x3c,0x5d,0x5e,0x8e,0x3a,0x0f,0x4e,0x91,0xcc, + 0xfc,0x22,0xe5,0x77,0x00,0x77,0x9a,0x59,0xfe,0x7b, + 0x6e,0x6a,0x23,0x33,0x63,0xee,0x91,0xa8,0xc8,0xba, + 0x5c,0x41,0x6e,0x70,0x28,0x4d,0xcd,0xad,0x66,0x93, + 0x3a,0xe1,0xf2,0xd6,0xef,0x46,0xc8,0x88,0x9e,0x9d, + 0x39,0xe8,0x6e,0x70,0xfa,0x7c,0xb6,0x64,0x17,0x14, + 0xfb,0xe4,0x11,0x60,0x80,0x19,0x0f,0x98,0xfe,0x4c, + 0x3f,0xfb,0x77,0x77,0xc9,0xf8,0xa1,0xbd,0xb9,0x7a, + 0xdc,0xe4,0xe4,0xb9,0x2c,0x99,0xb9,0x72,0x8b,0xe1, + 0xe3,0xdc,0xd5,0xb5,0x95,0x2c,0x88,0xfd,0x8d,0x44, + 0xd4,0xac,0xc1,0x41,0x77,0x93,0x67,0xde,0x5f,0x2e, + 0x4e,0x1f,0xac,0xd4,0xad,0x07,0xa0,0x8b,0xd9,0x0e, + 0x56,0x8d,0x90,0x60,0x59,0xfe,0xe7,0x87,0x65,0x60, + 0xd7,0x1b,0xb8,0x72,0x3c,0x78,0xfe,0xbf,0x73,0xfa, + 0xbb,0x72,0x2e,0xaf,0xc0,0xd0,0x71,0x62,0x06,0xde, + 0x28,0x73,0x26,0x3d,0x20,0x01,0x01,0xac,0x01,0xeb, + 0x2e,0x2f,0x2f,0xfa,0x4a,0x16,0x6c,0xde,0xeb,0x93, + 0xb1,0xf5,0x00,0x34,0x33,0x9b,0xfc,0x2b,0x27,0x3f, + 0x22,0xfd,0x3b,0xb7,0xe1,0xca,0xf1,0x40,0xfe,0xc1, + 0x53,0xe7,0xc8,0xee,0x94,0x74,0x43,0xc7,0x99,0x38, + 0xa8,0x9b,0xcc,0xd6,0xe4,0x07,0xf7,0xf9,0xdb,0x27, + 0x6b,0x64,0xf2,0xe2,0x75,0x3e,0x1b,0x5f,0xff,0xfe, + 0x7f,0x08,0xf2,0x5b,0x5f,0xfe,0xed,0x3f,0x9c,0x44, + 0x7e,0x3f,0x94,0xff,0xd9,0x8f,0xbf,0xf1,0xe9,0xd7, + 0x10,0x80,0xfc,0xc8,0x8f,0xfc,0xf6,0x94,0xdf,0x34, + 0x01,0x40,0x7e,0xe4,0x47,0x7e,0x9b,0x06,0x00,0xf9, + 0x91,0x1f,0xf9,0x6d,0x1a,0x00,0xe4,0x47,0x7e,0xe4, + 0xb7,0x69,0x00,0x90,0x1f,0xf9,0x91,0xdf,0xa6,0x01, + 0x40,0x7e,0xe4,0x47,0x7e,0x9b,0x06,0x00,0xf9,0x91, + 0x1f,0xf9,0x6d,0x1a,0x00,0xe4,0x47,0x7e,0xe4,0x57, + 0x4b,0x10,0xf2,0x9b,0x97,0x8c,0xec,0x5c,0xb9,0x6d, + 0xca,0x1c,0xd9,0x9b,0x7a,0x06,0xf9,0x91,0xdf,0xbc, + 0x01,0x40,0xfe,0x2b,0x93,0x7f,0xc0,0xe4,0xd9,0x92, + 0x74,0xfc,0x2c,0xf2,0x23,0xbf,0x79,0x1f,0x01,0x90, + 0x1f,0xf9,0x91,0xdf,0xa6,0x01,0x40,0x7e,0xe4,0x47, + 0x7e,0x9b,0x06,0x00,0xf9,0x91,0x1f,0xf9,0x6d,0xfa, + 0x1e,0x40,0x48,0x60,0x00,0xf2,0x7b,0x88,0x3e,0x63, + 0xcc,0xe0,0xa9,0x6f,0x1b,0x2e,0xff,0xa3,0xfd,0x3a, + 0x23,0xbf,0x87,0x3c,0xb7,0x60,0x85,0x4c,0xff,0x6c, + 0xa3,0x29,0xbf,0x76,0xf5,0x01,0xa8,0xa8,0x90,0xb9, + 0xbf,0x1f,0x81,0xfc,0x1e,0x10,0x9f,0x74,0x58,0x1e, + 0x9c,0xb1,0x50,0x8e,0x67,0xe6,0x19,0x3a,0xce,0xad, + 0xad,0x9b,0xc8,0xdc,0xc7,0xc7,0x70,0xc0,0xdd,0x24, + 0x3b,0xbf,0x40,0x26,0xbc,0xb9,0x50,0x16,0x6f,0x3b, + 0x68,0xda,0x7d,0x08,0x52,0x2d,0xff,0xc8,0xae,0xd1, + 0x32,0x6e,0x48,0x2f,0xae,0x1e,0x37,0x38,0x97,0x93, + 0x27,0xcf,0xcd,0xfb,0x5c,0xde,0x5e,0xb7,0x5b,0xca, + 0x1d,0xc6,0x3e,0xad,0xd5,0x0c,0x74,0xba,0xa6,0xf1, + 0x0a,0xb6,0xf1,0xf4,0xe9,0x9e,0xb0,0x70,0xed,0x16, + 0x79,0x66,0xde,0x0a,0x49,0xcb,0x2b,0x35,0xf5,0x7e, + 0x04,0xa9,0x94,0xbf,0x7a,0x59,0x81,0xcc,0x7c,0x8c, + 0xdb,0xcb,0xcb,0x71,0x2c,0x3d,0x43,0xde,0xfa,0x7c, + 0xad,0xcc,0x5d,0xb1,0x41,0x72,0x1c,0xa1,0x22,0x81, + 0x06,0x9f,0xa6,0x92,0x42,0x79,0xf6,0xc1,0xc1,0xd2, + 0xa2,0x61,0x3d,0x0e,0xfe,0x25,0x28,0x2e,0x2d,0x93, + 0x25,0x71,0xdb,0xe5,0xd5,0xc5,0x5f,0x4a,0xe2,0x89, + 0xf3,0x22,0xa1,0x35,0x4d,0xbf,0x4f,0x41,0xaa,0xe4, + 0x97,0xfc,0x2c,0x99,0x38,0x72,0xa0,0x34,0x63,0xf6, + 0xde,0xff,0x47,0x59,0x79,0xb9,0xec,0x3f,0x7a,0x42, + 0xd6,0xef,0x3a,0x20,0xcb,0x13,0x76,0xc9,0xa6,0xc4, + 0x83,0xe2,0xd4,0x27,0x6a,0x0e,0xab,0xad,0x44,0xfe, + 0x7a,0xc1,0x15,0x12,0x7b,0xff,0xed,0x9c,0x88,0x5f, + 0xe0,0x44,0x46,0xa6,0x6c,0xdd,0x97,0x2c,0xab,0xb6, + 0xed,0x95,0xcf,0x37,0xef,0x94,0x2c,0x7d,0x4e,0xc5, + 0xd0,0x30,0x4b,0xc8,0xaf,0x26,0x00,0x95,0xf2,0x07, + 0x4b,0xb9,0xfc,0x71,0xf4,0x50,0xa5,0x3b,0xb7,0x7a, + 0x47,0xa2,0x7c,0xbe,0x69,0xa7,0x1c,0x4c,0x3d,0xe5, + 0xfa,0x91,0x59,0x7f,0xa3,0x42,0xfb,0x27,0x33,0x37, + 0x5f,0x4e,0x9d,0xcb,0x92,0xd2,0xb2,0xf2,0xff,0xfc, + 0x45,0x40,0x80,0x32,0xf9,0xa5,0x20,0x47,0x26,0x3d, + 0x3a,0x52,0x42,0x43,0x82,0x95,0xed,0x77,0x6a,0xfa, + 0x39,0xf9,0xf0,0xeb,0x78,0x49,0x48,0x4a,0x96,0xf4, + 0xcc,0x6c,0x71,0x3a,0x2b,0xfc,0xee,0xdc,0x14,0x14, + 0x17,0xcb,0xd9,0xac,0x5c,0xd7,0xf9,0xf9,0x19,0x16, + 0x92,0xdf,0xf8,0x00,0x54,0xca,0x2f,0x65,0x25,0x32, + 0xa4,0x67,0x17,0x65,0x8b,0x76,0xe8,0xd5,0x1e,0xf3, + 0xfc,0x5b,0xb2,0x39,0xf1,0x90,0xf9,0xce,0x88,0x62, + 0xf9,0xf5,0xd9,0x7b,0xc7,0xdf,0xd1,0x57,0xd9,0xee, + 0xbd,0xf0,0xc1,0x17,0xf2,0xd2,0x87,0xcb,0x5c,0xb7, + 0xd3,0xa6,0xc3,0x62,0xf2,0x1b,0x1b,0x00,0x97,0xfc, + 0x99,0x9a,0xfc,0x17,0xde,0x24,0x79,0xf0,0xb6,0x5b, + 0x94,0xec,0xd0,0x49,0x4d,0xfe,0x9b,0x27,0x4c,0x93, + 0xb4,0xb3,0xe7,0x91,0xff,0x32,0xf2,0xeb,0xf4,0xee, + 0x70,0xbd,0xb2,0x30,0x4f,0x98,0x31,0x4f,0xe6,0x2e, + 0x5f,0x6f,0x4e,0x53,0x2c,0x28,0xbf,0xeb,0x92,0x53, + 0x21,0xbf,0xfe,0x2a,0x33,0xf8,0xa6,0x0e,0x4a,0x76, + 0x68,0xec,0x8b,0x6f,0x23,0xbf,0x9b,0xf2,0xeb,0x0c, + 0xed,0xde,0x51,0xc9,0xee,0x2d,0x5e,0xb7,0x0d,0xf9, + 0x6d,0x11,0x80,0x2a,0xf2,0xeb,0xb4,0x6a,0xda,0x50, + 0xea,0xd6,0x32,0xfe,0x00,0x6e,0xdc,0x73,0x50,0xe2, + 0x76,0x1f,0x40,0x7e,0x37,0xe5,0xd7,0xb9,0xa5,0xfd, + 0x75,0x4a,0x76,0x71,0xda,0xfc,0xa5,0xc8,0x6f,0xf9, + 0x00,0xfc,0x82,0xfc,0x3a,0xed,0x5a,0x34,0x51,0xb2, + 0x33,0xfa,0xbb,0xb4,0xc8,0xef,0xbe,0xfc,0x3a,0x6d, + 0x9b,0x1b,0x7f,0x6e,0x0e,0xa4,0x9c,0x90,0x43,0xa9, + 0xa7,0x90,0xdf,0xd2,0x01,0xf8,0x15,0xf9,0x75,0xea, + 0x47,0xd4,0x52,0xb2,0x33,0x87,0x8f,0x9f,0x46,0x7e, + 0x0f,0xe4,0xbf,0x70,0x6e,0xc2,0x0d,0xdf,0xcd,0xe4, + 0xb4,0x74,0xe4,0xb7,0x74,0x00,0x2e,0x21,0xbf,0x4e, + 0xf5,0x6a,0x6a,0x16,0x1f,0x2a,0x2c,0x2e,0x41,0x7e, + 0x0f,0xe4,0xd7,0x71,0x38,0x8c,0x5f,0xc3,0x2f,0x2b, + 0x2f,0x1f,0xf9,0x2d,0x1b,0x80,0xcb,0xc8,0x0f,0xfe, + 0x2b,0x3f,0xd8,0x5b,0xfe,0xab,0x0f,0x00,0xf2,0x23, + 0x3f,0xf2,0xdb,0x34,0x00,0xc8,0x8f,0xfc,0xc8,0x6f, + 0xd3,0x00,0x20,0x3f,0xf2,0x23,0xbf,0x4d,0x03,0x80, + 0xfc,0xc8,0x8f,0xfc,0x36,0x0d,0x00,0xf2,0x23,0x3f, + 0xf2,0x5b,0x8a,0x20,0xe4,0x47,0x7e,0x5b,0x52,0x5d, + 0x13,0xbf,0x5a,0x18,0x97,0x28,0xf2,0x23,0x3f,0xf2, + 0x13,0x00,0xe4,0x47,0x7e,0xe4,0x27,0x00,0xc8,0x8f, + 0xfc,0xc8,0x4f,0x00,0x90,0x1f,0xf9,0x91,0xdf,0xc6, + 0x01,0x30,0xa9,0xfc,0x61,0xd5,0xab,0x21,0xbf,0x87, + 0xfc,0x6c,0x2a,0x32,0x83,0xa8,0x77,0x4d,0x38,0xf2, + 0x9b,0x26,0x00,0x26,0x7e,0xe5,0x6f,0xdf,0xb2,0x29, + 0xf2,0x7b,0x88,0x3e,0x27,0x9f,0xd1,0xdc,0xd0,0xbc, + 0x31,0xf2,0x9b,0x22,0x00,0x26,0xbf,0xed,0x1f,0xdd, + 0xbf,0x07,0xf2,0x7b,0x48,0xd2,0x91,0xe3,0x86,0x1f, + 0xa2,0xe8,0xc6,0x91,0xd2,0xed,0xfa,0x96,0xc8,0xef, + 0xd7,0x01,0xb0,0xc0,0x33,0x7f,0xd7,0xd6,0x2d,0xe4, + 0xde,0x7e,0xdd,0x91,0xdf,0x03,0xf4,0x99,0x79,0x55, + 0xf0,0x72,0xcc,0x68,0x25,0xbf,0x7a,0x8c,0xfc,0x57, + 0x12,0x80,0x7f,0xcf,0xde,0x6b,0xfe,0x37,0xfc,0xde, + 0x7b,0x7a,0xbc,0x74,0x88,0x6e,0x86,0xfc,0x6e,0xb2, + 0x6a,0xdb,0x1e,0x25,0xe7,0x65,0x50,0xb7,0xf6,0x32, + 0xfd,0xb7,0xa3,0x90,0xdf,0x2f,0x03,0x50,0x39,0x75, + 0xb7,0x15,0xb8,0x26,0xac,0x86,0xc4,0xcf,0xfa,0x1f, + 0x79,0x68,0x50,0x4f,0xe3,0x5e,0x71,0x2c,0xf4,0x6e, + 0xff,0xee,0xe4,0x63,0xf2,0xfd,0xb1,0x93,0x4a,0xce, + 0xcd,0x94,0x87,0x47,0xc8,0xfc,0x3f,0xc7,0x18,0xfb, + 0xa6,0x20,0xf2,0x7b,0x84,0x43,0x06,0x8e,0xaf,0x90, + 0xd2,0x62,0x43,0x07,0x79,0xf2,0xbe,0xa1,0xf2,0xc6, + 0xa4,0x87,0x94,0xef,0x9c,0x7e,0x61,0x2f,0xdd,0xf4, + 0xad,0x6b,0x61,0x90,0xbc,0xc2,0x22,0xef,0x7d,0xe2, + 0xe0,0x50,0x2d,0x02,0x57,0xbf,0x86,0x5e,0x59,0xb9, + 0x53,0xd2,0xb3,0xf3,0x64,0xdf,0xf1,0xb3,0x52,0x58, + 0x75,0x9e,0x7c,0x85,0xdf,0xea,0xfb,0xaf,0x7b,0x87, + 0xc8,0xcc,0xc7,0xc7,0x2a,0x3b,0x2f,0xfa,0x22,0x2d, + 0xcb,0x12,0x76,0x69,0x8f,0x1f,0x87,0xe5,0x4c,0x66, + 0x8e,0x6b,0x81,0x14,0xef,0x84,0x59,0x0b,0x72,0xb0, + 0x77,0xbe,0x13,0x54,0x50,0x52,0x2a,0x67,0x73,0xf2, + 0xe5,0xfb,0x13,0x19,0x52,0x54,0x5a,0x6e,0xe1,0x00, + 0xf4,0x19,0x6b,0xf8,0xb2,0x2c,0xbe,0x0a,0x80,0x59, + 0xc8,0x2f,0x2a,0x96,0xc5,0x1b,0xbe,0x95,0xa9,0x8b, + 0xd7,0xca,0x49,0x7d,0x05,0xe0,0xe2,0x02,0x91,0xc2, + 0x5c,0x65,0xe3,0xd7,0xac,0x1e,0x2a,0x29,0x9f,0xbc, + 0xa1,0x64,0xe6,0x66,0xb3,0x51,0xee,0x74,0x6a,0x77, + 0x49,0xa9,0xf2,0xd5,0xce,0xfd,0xb2,0x28,0x21,0x51, + 0x0b,0xc2,0x39,0x4b,0xed,0x5f,0xa0,0x34,0xef,0x38, + 0xcd,0xe8,0x41,0x6e,0x6e,0x77,0x9d,0xb2,0xf9,0xe7, + 0xcd,0x48,0x48,0x50,0x90,0x74,0xbd,0x2e,0x4a,0x1e, + 0xee,0x77,0xa3,0x24,0xec,0x3d,0x20,0xc7,0x8f,0xa7, + 0x29,0x1d,0xbf,0xa4,0xac,0x4c,0x8a,0xb4,0x57,0xbc, + 0x61,0x3d,0x3a,0x71,0x32,0xaa,0xde,0x54,0x68,0x8f, + 0x91,0x8d,0xeb,0x45,0x48,0xdf,0x8e,0xad,0xe5,0x0f, + 0x77,0xdc,0x2a,0x83,0x3a,0xb4,0x94,0x8c,0xec,0x5c, + 0x39,0x7c,0xfa,0xbc,0x35,0xf6,0x8f,0x53,0xec,0x3f, + 0xe8,0x33,0xf4,0xae,0x98,0xfe,0x98,0xb4,0x6c,0xa4, + 0x7e,0x95,0xde,0x39,0xcb,0xd6,0xb9,0xde,0x0f,0x80, + 0x4b,0xd3,0xab,0x7d,0x2b,0x59,0x36,0x35,0x46,0xe2, + 0x5f,0xfa,0xbd,0x74,0x6d,0xd1,0x80,0x00,0x80,0x77, + 0xa9,0x53,0x2b,0x5c,0x5e,0x9d,0x70,0xbf,0xf2,0x71, + 0xf5,0x9f,0x08,0x1c,0xfb,0xe2,0x1c,0xc9,0x2d,0x28, + 0xe2,0x24,0xb8,0x41,0x4f,0xed,0xae,0x76,0xfb,0xeb, + 0x7f,0x92,0x67,0xef,0xee,0xad,0xf6,0xdb,0x9b,0x04, + 0xc0,0xfa,0x8c,0xec,0xdb,0x43,0x22,0x6b,0xd7,0x52, + 0x3e,0xae,0xbe,0x80,0xc7,0x7d,0xcf,0xbd,0xa9,0xe4, + 0xc7,0x83,0xad,0x40,0x50,0x60,0xa0,0xfc,0xf5,0xd1, + 0xbb,0xe5,0xfd,0xc7,0xee,0x91,0xc0,0x80,0x00,0x02, + 0x00,0xde,0x41,0x7f,0x45,0xe9,0xdd,0xa1,0xb5,0x4f, + 0xc6,0x5e,0xb3,0x23,0x49,0xee,0x9d,0x4a,0x04,0x3c, + 0x61,0xdc,0xe0,0x9e,0xb2,0xe0,0xf1,0x51,0xa6,0x8c, + 0x00,0x01,0xf0,0x53,0x1a,0xd5,0x8d,0xf0,0xd9,0xd8, + 0xcb,0x13,0x76,0x11,0x01,0x0f,0x79,0x70,0x40,0x0f, + 0x53,0x46,0x80,0x00,0xf8,0x29,0xc1,0x41,0x41,0x3e, + 0x1d,0x9f,0x08,0xd8,0x23,0x02,0x04,0x00,0x88,0x80, + 0x8d,0x23,0x40,0x00,0x80,0x08,0xd8,0x38,0x02,0x04, + 0x00,0x88,0x80,0x8d,0x23,0x40,0x00,0x80,0x08,0xd8, + 0x38,0x02,0x04,0x00,0x88,0x80,0x8d,0x23,0x40,0x00, + 0x80,0x08,0xd8,0x38,0x02,0x04,0x00,0x88,0x80,0x8d, + 0x23,0x40,0x00,0x80,0x08,0xd8,0x38,0x02,0x04,0x00, + 0x88,0x80,0x8d,0x23,0x40,0x00,0x80,0x08,0xd8,0x38, + 0x02,0x04,0xc0,0x4f,0x29,0x2d,0x2b,0x23,0x02,0x44, + 0x80,0x00,0xd8,0x95,0xd3,0xe7,0xb3,0x4d,0xf5,0xf5, + 0x12,0x01,0x73,0x46,0x80,0x00,0xf8,0x21,0x15,0x15, + 0x15,0x12,0x9f,0x78,0xd8,0x94,0x8f,0x03,0x77,0x4f, + 0x7e,0x43,0x0a,0x8a,0x4a,0x38,0x89,0x1e,0x44,0x60, + 0xfe,0xa4,0x91,0x3e,0x9b,0x54,0x84,0x00,0xf8,0x21, + 0x5f,0xc4,0x7f,0xa7,0x64,0xc9,0x2e,0x23,0x58,0xb5, + 0x6d,0xaf,0xf4,0x79,0xe2,0x45,0x39,0x72,0xf2,0x0c, + 0x27,0xd2,0x4d,0xc6,0x0e,0xbc,0x59,0xa6,0x8f,0xee, + 0x4f,0x00,0x40,0x24,0x2b,0x2f,0x5f,0x9e,0x9a,0xbd, + 0xc8,0xd4,0xfb,0xf0,0xdd,0xa1,0xa3,0xd2,0xe9,0xb7, + 0x93,0xe5,0x1f,0x9f,0xae,0xe1,0x91,0xc0,0x4d,0xfe, + 0xf2,0xc0,0x30,0xe9,0xd3,0x26,0x8a,0x00,0xd8,0x99, + 0xf3,0x39,0xb9,0x72,0xd7,0xb3,0xaf,0xcb,0x8f,0x16, + 0x78,0xf5,0xd4,0xd7,0x61,0x78,0xf2,0x7f,0x3f,0x92, + 0xb6,0x0f,0x3f,0x23,0xef,0xac,0x88,0x93,0xc2,0x62, + 0x1e,0x0b,0x2e,0x29,0x62,0x80,0x43,0xde,0x9a,0x30, + 0x4a,0x82,0x02,0xd5,0x2a,0xc9,0xb4,0xe0,0x7e,0x40, + 0x51,0x49,0x89,0x7c,0xfc,0xd5,0x06,0x19,0x3d,0xf5, + 0x4d,0xd9,0x77,0xec,0x94,0xb5,0xa2,0x96,0x9b,0x2f, + 0x2b,0xb7,0xec,0x96,0x59,0x4b,0xd7,0x6a,0x8f,0x05, + 0x67,0xf5,0x95,0x28,0xa4,0x49,0xbd,0xda,0x12,0x12, + 0x1c,0xc4,0x89,0xaf,0x82,0x3e,0x0f,0x64,0xca,0xc9, + 0x74,0xd9,0x93,0x72,0x5a,0xd9,0x98,0x96,0x3e,0x0b, + 0xc9,0x69,0xa7,0x65,0xe9,0xa6,0x9d,0x72,0xf8,0xf8, + 0x69,0xed,0x42,0xcc,0xf3,0xce,0x27,0xd5,0x97,0x50, + 0x2b,0xf5,0xce,0xab,0x99,0xbe,0x22,0xce,0x99,0xf3, + 0x59,0x92,0x98,0x9c,0x22,0xf9,0x15,0xda,0xa9,0x08, + 0x0a,0xb1,0xec,0xb9,0xc8,0xce,0x2f,0x90,0x77,0x57, + 0xc6,0xb9,0x36,0xfd,0xd5,0x2e,0xba,0x51,0xa4,0x34, + 0x6f,0x58,0x4f,0xc2,0x6b,0x84,0x9a,0x6a,0x3f,0xf4, + 0x25,0xe8,0x5f,0x18,0x7f,0xaf,0x61,0x9f,0xff,0xe9, + 0x51,0x03,0x65,0xfe,0xc6,0xbd,0xae,0x37,0x82,0x09, + 0xc0,0x55,0xdc,0x7e,0x4e,0x9a,0xb9,0x40,0x3e,0xfc, + 0x3a,0x5e,0x9c,0x4e,0x2f,0x1e,0xc8,0xd2,0x42,0x91, + 0xe2,0x42,0xef,0x7f,0xc1,0xa1,0x35,0x2d,0x2d,0x7f, + 0x55,0xf4,0x73,0xf2,0xc3,0x89,0x74,0xd7,0x66,0x36, + 0xb2,0x72,0x0b,0x0c,0xfd,0xfc,0x6d,0xa2,0x1a,0x49, + 0x9f,0x36,0xcd,0x64,0xe3,0xf7,0xa9,0xbc,0x07,0x70, + 0x25,0xe8,0xeb,0xce,0xf5,0x9e,0xf4,0x82,0x7c,0xb0, + 0x7a,0x33,0xf2,0x83,0x29,0x79,0xa8,0x4f,0x17,0x75, + 0xef,0x3d,0x58,0xed,0xe0,0xc5,0xbc,0xf6,0xbe,0xec, + 0xfd,0xc1,0xcb,0xf5,0x44,0x7e,0x50,0xc8,0xb0,0x9b, + 0xda,0x11,0x80,0x2b,0x61,0xd7,0xe1,0x14,0xf9,0x24, + 0x6e,0x3b,0xf2,0x83,0xa9,0x69,0x5a,0xbf,0x8e,0xb4, + 0xa8,0x5f,0x9b,0x00,0x78,0xca,0x92,0x0d,0x3b,0xbc, + 0xfb,0xe6,0x09,0xf2,0x83,0x8f,0x68,0x1f,0xd5,0x80, + 0x00,0x78,0xca,0xbe,0xa3,0x69,0xc8,0x0f,0x96,0xa0, + 0x61,0xed,0x9a,0x04,0xc0,0x53,0xf2,0xbc,0xb5,0xb0, + 0x25,0xf2,0x83,0x8f,0xa9,0x19,0x5a,0x8d,0x00,0xf8, + 0x04,0xe4,0x07,0x1b,0x41,0x00,0x90,0x1f,0x08,0x00, + 0x20,0x3f,0x10,0x00,0xe4,0x47,0x7e,0x20,0x00,0xc8, + 0x8f,0xfc,0x40,0x00,0x90,0x1f,0xf9,0x81,0x00,0x20, + 0x3f,0xf2,0x03,0x01,0x40,0x7e,0xe4,0x07,0x02,0x80, + 0xfc,0xc8,0x0f,0x04,0x00,0xf9,0x91,0x1f,0x08,0x00, + 0xf2,0x23,0x3f,0x10,0x80,0xcb,0xa0,0x6a,0x42,0xc8, + 0xd0,0x90,0x60,0xe4,0x07,0xdf,0x5c,0x63,0x5e,0xa6, + 0xa0,0xb8,0xd4,0x3a,0x01,0xc8,0xc8,0xce,0x55,0xb2, + 0x33,0xad,0x9a,0x36,0x44,0x7e,0x30,0x94,0xd6,0xcd, + 0x1a,0x2a,0x19,0x27,0x23,0x37,0xdf,0x3a,0x01,0xf0, + 0xea,0xaf,0xe9,0x5e,0x82,0x7b,0xfa,0xdc,0x88,0xfc, + 0x60,0x28,0x77,0xdf,0x7a,0xa3,0x92,0x71,0xf6,0xa7, + 0x9e,0xb1,0x4e,0x00,0xf4,0xd9,0x79,0xcf,0xe7,0xe4, + 0x19,0x3e,0x4e,0xff,0x2e,0x6d,0xa5,0x6f,0xe7,0x36, + 0xc8,0x0f,0x86,0xa0,0x5f,0x5b,0xfa,0x35,0x66,0x34, + 0xe7,0x34,0x57,0x92,0x4f,0x65,0x58,0x27,0x00,0xfa, + 0xe4,0x9c,0x6b,0xbe,0x4d,0x52,0xb2,0x43,0x1f,0x4e, + 0x9e,0x20,0x8d,0xaf,0xa9,0x8e,0xfc,0xe0,0x55,0x1a, + 0xd7,0xab,0x2d,0x1f,0x4d,0x99,0xa8,0x64,0xac,0xaf, + 0xbf,0x3b,0x20,0x4e,0x45,0xd3,0x82,0x2b,0xfb,0x2e, + 0xc0,0xe2,0x75,0xdb,0x94,0x8c,0xd3,0x2c,0xb2,0xae, + 0x6c,0x7d,0xe7,0x25,0xe9,0xd9,0xe9,0x06,0xe4,0x07, + 0xaf,0xd0,0xab,0x43,0x6b,0xd9,0x3a,0xfb,0x39,0xd7, + 0x5c,0x7d,0x2a,0x58,0xb4,0x69,0xb7,0xb2,0x7d,0x73, + 0x48,0x9f,0xb1,0x4a,0x52,0x13,0x1c,0x14,0x28,0x29, + 0xff,0xf7,0x86,0xab,0xa4,0xaa,0xf8,0x2a,0x61,0xa7, + 0x7c,0xb6,0x3e,0x41,0x0e,0x1c,0x49,0xbd,0xba,0xef, + 0x44,0x04,0x55,0xd3,0x36,0x6f,0x2c,0xa1,0xa0,0xf5, + 0xd6,0xb5,0x0a,0xec,0x85,0x95,0x60,0x9d,0x15,0x4e, + 0xc9,0xcc,0x2d,0x90,0xd3,0xe7,0xb3,0xfc,0x6a,0x0d, + 0xbd,0xb0,0xd0,0x6a,0xae,0xf3,0x14,0xa6,0x68,0x56, + 0x1a,0x7f,0xa4,0x7a,0xb5,0x60,0x69,0xdb,0xa2,0x89, + 0xdc,0xdb,0xaf,0xbb,0xd2,0x55,0xad,0x4e,0x64,0x64, + 0x4a,0xcb,0x98,0x57,0xa4,0xb4,0xbc,0xdc,0x5a,0x01, + 0xd0,0x79,0x6a,0xcc,0x1d,0xf2,0xf7,0x09,0x0f,0xf0, + 0x92,0x52,0x05,0x5d,0xfe,0xa4,0x23,0xc7,0x25,0x6e, + 0xf7,0x01,0x59,0x9e,0xb0,0x5b,0x36,0x27,0x1e,0x52, + 0xb6,0x32,0x4c,0xd5,0xbb,0xa7,0x77,0x9f,0x1a,0x2f, + 0x83,0xba,0xb5,0x77,0xad,0xde,0x03,0xea,0x79,0xea, + 0xbd,0xa5,0xf2,0xda,0x8a,0x2d,0xd6,0xbb,0x03,0xb8, + 0x50,0xd5,0x10,0x49,0x5e,0xf8,0x9a,0x6b,0x6d,0x38, + 0xf8,0x75,0x52,0x4e,0x67,0xc8,0xac,0xa5,0xdf,0xc8, + 0xdc,0xe5,0xeb,0x5d,0xab,0x1c,0xa9,0x62,0xde,0xb3, + 0x31,0x32,0x6e,0xd8,0xad,0x9c,0x00,0x1f,0xa1,0xbf, + 0xfa,0xb7,0x9a,0xf0,0x37,0x29,0x2c,0x2d,0x53,0x36, + 0xa6,0xd2,0x9f,0x04,0xd4,0x6f,0xc3,0xf5,0x15,0x63, + 0xe1,0xd2,0xb4,0x68,0x58,0x4f,0x5e,0x7b,0x6c,0x8c, + 0x1c,0x59,0xfc,0xba,0x4c,0x1c,0x31,0x50,0xd9,0xab, + 0x71,0x49,0x59,0x19,0x07,0xdf,0x87,0x3c,0xf9,0xce, + 0x52,0xa5,0xf2,0x2b,0x0f,0x80,0xce,0xa7,0x1b,0x76, + 0xc8,0x82,0x35,0xf1,0x9c,0x6d,0x37,0xa8,0x1f,0x11, + 0x2e,0xb3,0xff,0x34,0x4e,0xe2,0x66,0xfe,0x45,0xc9, + 0x1b,0x50,0xfa,0x5d,0x87,0x3f,0xbd,0x17,0x61,0x27, + 0x16,0x7c,0xb3,0x55,0x3e,0xdd,0xfe,0xbd,0xf2,0x71, + 0x7d,0xf2,0xbb,0x00,0x31,0xaf,0xfe,0x53,0xe2,0x93, + 0x0e,0x73,0xd6,0xdd,0xa4,0x4f,0xa7,0x36,0xb2,0xfd, + 0xed,0x69,0xd2,0x21,0xba,0x99,0xa1,0xe3,0xe8,0xef, + 0x43,0x4c,0x98,0x31,0x8f,0x03,0xae,0x98,0xf8,0x7d, + 0xc9,0x12,0x33,0x77,0x99,0x4f,0xc6,0x0e,0x94,0xe6, + 0x1d,0xa7,0xa9,0x1e,0xb4,0xdc,0xe9,0x94,0xa5,0x1b, + 0x77,0xca,0x80,0xae,0x6d,0xa5,0x89,0xa2,0x6f,0xad, + 0x98,0x9d,0xf0,0x1a,0xd5,0xe5,0xbe,0xfe,0xdd,0x65, + 0xf5,0xf6,0x44,0x39,0x93,0x99,0x63,0xd8,0x38,0xbb, + 0x93,0x8f,0xb9,0x3e,0xff,0x1d,0xb7,0x74,0xe6,0xa0, + 0x2b,0x60,0xc7,0xc1,0xa3,0x32,0x6c,0xfa,0xfb,0x92, + 0xaf,0xe8,0x67,0xff,0xfd,0x22,0x00,0x3a,0xc5,0xa5, + 0xa5,0xb2,0x24,0x6e,0x07,0x11,0xf0,0x80,0x1a,0xa1, + 0xd5,0x94,0x44,0x60,0xe7,0xa1,0xa3,0x44,0x40,0x91, + 0xfc,0x83,0xa7,0xbd,0x27,0xd9,0x85,0xc5,0x3e,0xfb, + 0x1a,0x7c,0x16,0x00,0x22,0x40,0x04,0x90,0xdf,0xb7, + 0xf2,0xfb,0x3c,0x00,0x44,0x80,0x08,0x20,0xbf,0xd8, + 0x3b,0x00,0x44,0x80,0x08,0x20,0xbf,0xcd,0x03,0x40, + 0x04,0x88,0x80,0x1d,0xd8,0x7a,0xe0,0x47,0x19,0xfa, + 0xfc,0x3f,0xfd,0x46,0x7e,0xbf,0x0a,0x00,0x11,0x20, + 0x02,0x56,0x26,0x6e,0xcf,0x41,0x19,0x3a,0x7d,0x9e, + 0xe4,0x29,0x9a,0x1d,0xcb,0x94,0x01,0xb8,0x38,0x02, + 0x3d,0xda,0xb4,0x94,0x96,0x8d,0x23,0xb9,0x72,0x88, + 0x80,0x25,0xe4,0xbf,0xf3,0xa5,0x0f,0xa4,0xa0,0xa4, + 0xd4,0xef,0xbe,0x36,0xbf,0x0b,0x80,0x2b,0x02,0xf9, + 0xd9,0xb2,0x64,0x75,0x9c,0xeb,0x57,0x7a,0x5b,0x36, + 0x6e,0xc0,0x15,0x44,0x04,0x90,0xdf,0x36,0x01,0x28, + 0x29,0xd0,0xb6,0x22,0xd7,0x8f,0xa4,0x2e,0x59,0x1b, + 0x4f,0x04,0x88,0x00,0xf2,0xdb,0x26,0x00,0x95,0xf2, + 0xff,0x04,0x11,0x20,0x02,0xc8,0x6f,0x97,0x00,0x54, + 0x91,0x9f,0x08,0x10,0x01,0xe4,0xb7,0x4b,0x00,0x7e, + 0x45,0x7e,0x22,0x40,0x04,0x90,0xdf,0xea,0x01,0xb8, + 0x8c,0xfc,0x44,0x80,0x08,0x20,0xbf,0x55,0x03,0xe0, + 0xa6,0xfc,0x44,0x80,0x08,0x20,0xbf,0x21,0x14,0xfb, + 0x2e,0x00,0x1e,0xca,0x4f,0x04,0xcc,0x11,0x81,0xf4, + 0xcc,0x6c,0xb9,0xbd,0x47,0x67,0x71,0x38,0x1c,0xc8, + 0xef,0xff,0x1c,0xf5,0x4d,0x00,0xae,0x50,0xfe,0x8b, + 0x23,0xb0,0x68,0xcd,0x46,0x89,0x6a,0x18,0x29,0x9d, + 0x5b,0x47,0x63,0xb8,0x9b,0x11,0xb8,0xab,0x57,0x17, + 0x99,0xff,0xd5,0x66,0x29,0x32,0xf0,0x42,0xd5,0x23, + 0x90,0x78,0x24,0x55,0x86,0xf5,0xe8,0xa8,0x6c,0x1d, + 0x3d,0x5f,0xf2,0xc1,0xd7,0x5b,0xe4,0xfe,0x19,0x8b, + 0xa4,0xc8,0x9c,0x33,0x29,0xc5,0xa9,0x0f,0xc0,0x55, + 0xca,0xff,0x13,0xfa,0xa4,0x22,0x5f,0x6c,0xd8,0xea, + 0x9a,0xf2,0xbb,0x67,0xa7,0xb6,0x52,0x2b,0xac,0x06, + 0x96,0x5f,0x86,0x5a,0x61,0xd5,0x5d,0xf2,0x6f,0xd8, + 0x63,0xec,0xd4,0x53,0x07,0x53,0x4f,0xc9,0xc2,0xb5, + 0x5b,0xa5,0x55,0x93,0x06,0xd2,0xba,0x59,0x23,0x4b, + 0x1e,0x4b,0x7d,0x02,0xcf,0xf1,0xaf,0xce,0x97,0x97, + 0x97,0x25,0x48,0x79,0x85,0x69,0x77,0x63,0x96,0xda, + 0x00,0x78,0x49,0xfe,0x8b,0xd1,0x03,0xf0,0xf6,0x67, + 0xab,0x24,0x27,0xbf,0x40,0xda,0x5f,0xdb,0xdc,0x35, + 0x73,0x0e,0xfc,0x3a,0x67,0xb3,0x72,0x65,0xc9,0x86, + 0x1d,0x86,0x8f,0x93,0x9d,0x5f,0x28,0x8b,0xd6,0x6d, + 0x75,0x4d,0xfd,0xa6,0xcf,0x02,0x1d,0x6d,0x91,0x1f, + 0xeb,0x3e,0x75,0x2e,0x4b,0x5e,0x5c,0xf0,0x85,0xfc, + 0xe6,0x95,0xf7,0x65,0x6f,0x7a,0x6e,0xe5,0x3a,0x0f, + 0xa6,0x44,0xcf,0xd6,0x63,0xea,0xa6,0x05,0x37,0x40, + 0xfe,0xaa,0x84,0x04,0x07,0xc9,0xed,0xbd,0x6e,0x92, + 0x87,0x86,0xf5,0x93,0xdb,0x7a,0x74,0x91,0x88,0xf0, + 0x30,0x8c,0xbf,0x88,0xdc,0x82,0x42,0x19,0x35,0xe5, + 0x1f,0xf2,0xcd,0x77,0xfb,0x95,0x8f,0xad,0x2f,0xb2, + 0xf1,0xf0,0x90,0xde,0x32,0xbc,0x57,0x57,0xb9,0xa1, + 0x79,0x63,0x53,0x1d,0xb7,0xac,0xbc,0x02,0x59,0xbb, + 0x73,0x9f,0x7c,0xbc,0x76,0x8b,0xac,0xda,0xb6,0x57, + 0x4a,0x2a,0x02,0x44,0xc2,0x22,0xcc,0x2c,0xbf,0xeb, + 0xf6,0x5f,0x96,0xcf,0x18,0xa0,0x26,0x00,0x0a,0xe4, + 0xaf,0x4a,0x60,0x40,0x80,0xb4,0x8d,0x8e,0x92,0x76, + 0xd7,0x46,0x49,0x64,0xed,0x08,0x5b,0x2f,0x74,0xa1, + 0xaf,0x31,0x92,0x76,0x26,0x43,0x36,0xec,0x3b,0x22, + 0xe7,0xf2,0x7d,0xff,0xab,0xa8,0x8d,0xea,0x46,0x48, + 0xe7,0xeb,0x9a,0x4b,0x54,0x83,0xba,0xae,0xb5,0x22, + 0xfc,0x11,0xa7,0xf6,0x88,0x79,0x26,0x2b,0x47,0xf6, + 0x1f,0x3d,0x21,0x07,0x52,0x4e,0xb8,0x1e,0x39,0x5d, + 0xe8,0xcb,0xc3,0x99,0x5f,0x7e,0x9d,0x51,0x5a,0x00, + 0x96,0x1a,0x1f,0x00,0x1f,0xc8,0x0f,0xbf,0x00,0x6b, + 0x1b,0x5e,0x3d,0xd6,0x91,0x5f,0xbf,0x05,0xec,0xa8, + 0x05,0xc0,0x19,0x80,0xfc,0xc8,0x0f,0xb6,0x92,0x5f, + 0xe7,0xbf,0x75,0xf9,0xf5,0xff,0x08,0x40,0x7e,0xe4, + 0x07,0x5b,0xc9,0xff,0x91,0x26,0xff,0xea,0x9f,0xfe, + 0x10,0x80,0xfc,0xc8,0x0f,0xb6,0x91,0x7f,0x9f,0xb6, + 0xfd,0xe1,0xe2,0xff,0x11,0x80,0xfc,0xc8,0x0f,0xb6, + 0x90,0xff,0x47,0x6d,0x1b,0xa6,0xbd,0xfa,0xe7,0x18, + 0x17,0x00,0xe4,0x47,0x7e,0xe4,0xf7,0x57,0xf9,0xfb, + 0x69,0xf2,0xa7,0x55,0xfd,0x8b,0x00,0xe4,0x47,0x7e, + 0xb0,0xa7,0xfc,0xde,0x0b,0x00,0xf2,0x23,0x3f,0xf2, + 0x9b,0x4e,0x7e,0xef,0x04,0x00,0xf9,0x91,0x1f,0xf9, + 0x4d,0x29,0xff,0xd5,0x07,0x00,0xf9,0x91,0x1f,0xf9, + 0x4d,0x2b,0xff,0xd5,0x05,0x00,0xf9,0x91,0x1f,0xf9, + 0x4d,0x2d,0xff,0x95,0x07,0x00,0xf9,0x91,0x1f,0xf9, + 0x4d,0x2f,0xff,0x95,0x05,0x00,0xf9,0x91,0x1f,0xf9, + 0x2d,0x21,0xbf,0xe7,0x01,0x40,0x7e,0xe4,0x47,0x7e, + 0xcb,0xc8,0xef,0x59,0x00,0x90,0x1f,0xf9,0x91,0xdf, + 0x52,0xf2,0xbb,0x1f,0x00,0xe4,0x47,0x7e,0xe4,0xb7, + 0x9c,0xfc,0xee,0x05,0x00,0xf9,0x91,0x1f,0xf9,0x2d, + 0x29,0xff,0xe5,0x03,0x80,0xfc,0xc8,0x8f,0xfc,0x96, + 0x95,0xff,0x42,0x00,0x1c,0xe2,0x44,0x7e,0xe4,0x47, + 0x7e,0xfb,0xc9,0x5f,0x79,0x07,0xe0,0x48,0x47,0x7e, + 0xe4,0x47,0x7e,0xfb,0xc9,0x5f,0x79,0x07,0xe0,0x58, + 0x8f,0xfc,0xc8,0x8f,0xfc,0x7e,0xcf,0x5e,0x6d,0xeb, + 0xeb,0x4d,0xf9,0x2b,0x03,0x10,0xf8,0xca,0xbf,0x1f, + 0x03,0x90,0x1f,0xf9,0x91,0xdf,0x1f,0x99,0xaf,0x6d, + 0xb7,0x6a,0xf2,0x9f,0xf0,0xf6,0x27,0xbe,0x70,0x74, + 0xfa,0x3d,0x32,0x55,0x8a,0x72,0x9f,0x47,0x7e,0xe4, + 0x47,0x7e,0xbf,0x22,0x49,0xdb,0x62,0x35,0xf1,0xbf, + 0x31,0x6a,0x80,0xff,0x1c,0xa1,0xee,0x23,0xfe,0x2e, + 0xe5,0xa5,0xb1,0x52,0x21,0x01,0x5c,0x41,0xc8,0x8f, + 0xfc,0x3e,0x43,0x9f,0xa6,0x7f,0x9d,0xb6,0xbd,0xa9, + 0x6d,0x2b,0x35,0xf9,0x0d,0x9d,0xb6,0xff,0xe7,0x47, + 0xa9,0xc7,0xc8,0x1b,0xc5,0x59,0x36,0x45,0xdb,0x7a, + 0x69,0x5f,0x46,0x5d,0x11,0x62,0x80,0xfc,0xc8,0x6f, + 0x30,0xfa,0x4a,0x2d,0xa9,0xda,0xb6,0xa7,0x52,0xfc, + 0x2f,0xbd,0xfd,0x9c,0x7f,0xc9,0x00,0x54,0x54,0x54, + 0x70,0xe1,0x00,0xd8,0x14,0x02,0x00,0x40,0x00,0x00, + 0x80,0x00,0x00,0x00,0x01,0x00,0x00,0x02,0x00,0x00, + 0x04,0x00,0x00,0x08,0x00,0x00,0x10,0x00,0x00,0x20, + 0x00,0x00,0x40,0x00,0x00,0x80,0x00,0x00,0x00,0x01, + 0x00,0x00,0x02,0x00,0x00,0x04,0x00,0x00,0x08,0x00, + 0x00,0x10,0x00,0x00,0x20,0x00,0x00,0x40,0x00,0x00, + 0x80,0x00,0x00,0x00,0x01,0x00,0x00,0x02,0x00,0x00, + 0x04,0x00,0x00,0x08,0x00,0x00,0x10,0x00,0x00,0x20, + 0x00,0x00,0x40,0x00,0x00,0x80,0x00,0x00,0x00,0x01, + 0x00,0x00,0x02,0x00,0x00,0x04,0x00,0x00,0x08,0x00, + 0x00,0x10,0x00,0x00,0x20,0x00,0x00,0x40,0x00,0x00, + 0x80,0x00,0x00,0x00,0x01,0x00,0x00,0x02,0x00,0x40, + 0x00,0x08,0x00,0x80,0x7d,0xf9,0x97,0x00,0x03,0x00, + 0x21,0xc5,0x64,0xe3,0xe4,0x8c,0x4c,0xec,0x00,0x00, + 0x00,0x00,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82 +}; diff --git a/data/es_icon.ico b/data/es_icon.ico new file mode 100644 index 000000000..aec6b6aa7 Binary files /dev/null and b/data/es_icon.ico differ diff --git a/data/logo/ES_logo.icns b/data/logo/ES_logo.icns deleted file mode 100644 index 640868ba3..000000000 Binary files a/data/logo/ES_logo.icns and /dev/null differ diff --git a/data/logo/ES_logo.ico b/data/logo/ES_logo.ico deleted file mode 100644 index bbfaa9cc7..000000000 Binary files a/data/logo/ES_logo.ico and /dev/null differ diff --git a/data/logo/ES_logo.svg b/data/logo/ES_logo.svg deleted file mode 100644 index 70e346c83..000000000 --- a/data/logo/ES_logo.svg +++ /dev/null @@ -1,134 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/data/logo/ES_logo_1024.png b/data/logo/ES_logo_1024.png deleted file mode 100644 index eb45a0eb9..000000000 Binary files a/data/logo/ES_logo_1024.png and /dev/null differ diff --git a/data/logo/ES_logo_128.png b/data/logo/ES_logo_128.png deleted file mode 100644 index 0e6f17043..000000000 Binary files a/data/logo/ES_logo_128.png and /dev/null differ diff --git a/data/logo/ES_logo_16.png b/data/logo/ES_logo_16.png deleted file mode 100644 index e25213f06..000000000 Binary files a/data/logo/ES_logo_16.png and /dev/null differ diff --git a/data/logo/ES_logo_24.png b/data/logo/ES_logo_24.png deleted file mode 100644 index 65e4942f1..000000000 Binary files a/data/logo/ES_logo_24.png and /dev/null differ diff --git a/data/logo/ES_logo_256.png b/data/logo/ES_logo_256.png deleted file mode 100644 index 27a48a4b6..000000000 Binary files a/data/logo/ES_logo_256.png and /dev/null differ diff --git a/data/logo/ES_logo_32.png b/data/logo/ES_logo_32.png deleted file mode 100644 index 4fcfb73f6..000000000 Binary files a/data/logo/ES_logo_32.png and /dev/null differ diff --git a/data/logo/ES_logo_48.png b/data/logo/ES_logo_48.png deleted file mode 100644 index b4ce968c8..000000000 Binary files a/data/logo/ES_logo_48.png and /dev/null differ diff --git a/data/logo/ES_logo_512.png b/data/logo/ES_logo_512.png deleted file mode 100644 index 3cfde06fd..000000000 Binary files a/data/logo/ES_logo_512.png and /dev/null differ diff --git a/data/logo/ES_logo_64.png b/data/logo/ES_logo_64.png deleted file mode 100644 index 5642dffe5..000000000 Binary files a/data/logo/ES_logo_64.png and /dev/null differ diff --git a/data/resources/ES_logo_16.png b/data/resources/ES_logo_16.png deleted file mode 100644 index e25213f06..000000000 Binary files a/data/resources/ES_logo_16.png and /dev/null differ diff --git a/data/resources/ES_logo_32.png b/data/resources/ES_logo_32.png deleted file mode 100644 index 4fcfb73f6..000000000 Binary files a/data/resources/ES_logo_32.png and /dev/null differ diff --git a/data/resources/arrow.svg b/data/resources/arrow.svg new file mode 100644 index 000000000..442f00cb0 --- /dev/null +++ b/data/resources/arrow.svg @@ -0,0 +1,11 @@ + + + + + + + + diff --git a/data/resources/bar.png b/data/resources/bar.png deleted file mode 100644 index a1a3ea86e..000000000 Binary files a/data/resources/bar.png and /dev/null differ diff --git a/data/resources/busy_0.svg b/data/resources/busy_0.svg new file mode 100644 index 000000000..6dc4abb27 --- /dev/null +++ b/data/resources/busy_0.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + diff --git a/data/resources/busy_1.svg b/data/resources/busy_1.svg new file mode 100644 index 000000000..d13089132 --- /dev/null +++ b/data/resources/busy_1.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + diff --git a/data/resources/busy_2.svg b/data/resources/busy_2.svg new file mode 100644 index 000000000..95862598b --- /dev/null +++ b/data/resources/busy_2.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + diff --git a/data/resources/busy_3.svg b/data/resources/busy_3.svg new file mode 100644 index 000000000..cf35d9cfc --- /dev/null +++ b/data/resources/busy_3.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + diff --git a/data/resources/button.png b/data/resources/button.png new file mode 100644 index 000000000..7ac2297f9 Binary files /dev/null and b/data/resources/button.png differ diff --git a/data/resources/button_filled.png b/data/resources/button_filled.png new file mode 100644 index 000000000..ac543584f Binary files /dev/null and b/data/resources/button_filled.png differ diff --git a/data/resources/checkbox_checked.svg b/data/resources/checkbox_checked.svg new file mode 100644 index 000000000..952ce80d0 --- /dev/null +++ b/data/resources/checkbox_checked.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/data/resources/checkbox_unchecked.svg b/data/resources/checkbox_unchecked.svg new file mode 100644 index 000000000..a1b48e55e --- /dev/null +++ b/data/resources/checkbox_unchecked.svg @@ -0,0 +1,9 @@ + + + + + + diff --git a/data/resources/fav_add.svg b/data/resources/fav_add.svg new file mode 100644 index 000000000..94aea1560 --- /dev/null +++ b/data/resources/fav_add.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/data/resources/fav_remove.svg b/data/resources/fav_remove.svg new file mode 100644 index 000000000..c086952db --- /dev/null +++ b/data/resources/fav_remove.svg @@ -0,0 +1,9 @@ + + + + + + + + diff --git a/data/resources/frame.png b/data/resources/frame.png new file mode 100644 index 000000000..0bca559ef Binary files /dev/null and b/data/resources/frame.png differ diff --git a/data/resources/help/button_a.svg b/data/resources/help/button_a.svg new file mode 100644 index 000000000..a4f8e98dd --- /dev/null +++ b/data/resources/help/button_a.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + diff --git a/data/resources/help/button_b.svg b/data/resources/help/button_b.svg new file mode 100644 index 000000000..3b01f4df4 --- /dev/null +++ b/data/resources/help/button_b.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + diff --git a/data/resources/help/button_l.svg b/data/resources/help/button_l.svg new file mode 100644 index 000000000..a41213734 --- /dev/null +++ b/data/resources/help/button_l.svg @@ -0,0 +1,13 @@ + + + + + + + + + diff --git a/data/resources/help/button_r.svg b/data/resources/help/button_r.svg new file mode 100644 index 000000000..32ab692b7 --- /dev/null +++ b/data/resources/help/button_r.svg @@ -0,0 +1,16 @@ + + + + + + + + + diff --git a/data/resources/help/button_select.svg b/data/resources/help/button_select.svg new file mode 100644 index 000000000..32e167611 --- /dev/null +++ b/data/resources/help/button_select.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + diff --git a/data/resources/help/button_start.svg b/data/resources/help/button_start.svg new file mode 100644 index 000000000..7ec281877 --- /dev/null +++ b/data/resources/help/button_start.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + diff --git a/data/resources/help/button_x.svg b/data/resources/help/button_x.svg new file mode 100644 index 000000000..1466649dd --- /dev/null +++ b/data/resources/help/button_x.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + diff --git a/data/resources/help/button_y.svg b/data/resources/help/button_y.svg new file mode 100644 index 000000000..c815ea3ef --- /dev/null +++ b/data/resources/help/button_y.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + diff --git a/data/resources/help/dpad_all.svg b/data/resources/help/dpad_all.svg new file mode 100644 index 000000000..411eff419 --- /dev/null +++ b/data/resources/help/dpad_all.svg @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/data/resources/help/dpad_down.svg b/data/resources/help/dpad_down.svg new file mode 100644 index 000000000..831db2aac --- /dev/null +++ b/data/resources/help/dpad_down.svg @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/data/resources/help/dpad_left.svg b/data/resources/help/dpad_left.svg new file mode 100644 index 000000000..f0576b469 --- /dev/null +++ b/data/resources/help/dpad_left.svg @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/data/resources/help/dpad_leftright.svg b/data/resources/help/dpad_leftright.svg new file mode 100644 index 000000000..e5493582e --- /dev/null +++ b/data/resources/help/dpad_leftright.svg @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/data/resources/help/dpad_right.svg b/data/resources/help/dpad_right.svg new file mode 100644 index 000000000..70ddeb47e --- /dev/null +++ b/data/resources/help/dpad_right.svg @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/data/resources/help/dpad_up.svg b/data/resources/help/dpad_up.svg new file mode 100644 index 000000000..fe2469e1d --- /dev/null +++ b/data/resources/help/dpad_up.svg @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/data/resources/help/dpad_updown.svg b/data/resources/help/dpad_updown.svg new file mode 100644 index 000000000..6a306f9f3 --- /dev/null +++ b/data/resources/help/dpad_updown.svg @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/data/resources/off.svg b/data/resources/off.svg new file mode 100644 index 000000000..70490ee4a --- /dev/null +++ b/data/resources/off.svg @@ -0,0 +1,13 @@ + + + + + + + diff --git a/data/resources/on.svg b/data/resources/on.svg new file mode 100644 index 000000000..ec61bdc64 --- /dev/null +++ b/data/resources/on.svg @@ -0,0 +1,14 @@ + + + + + + + + + diff --git a/data/resources/opensans_hebrew_condensed_light.ttf b/data/resources/opensans_hebrew_condensed_light.ttf new file mode 100644 index 000000000..b0b5cf6b3 Binary files /dev/null and b/data/resources/opensans_hebrew_condensed_light.ttf differ diff --git a/data/resources/opensans_hebrew_condensed_regular.ttf b/data/resources/opensans_hebrew_condensed_regular.ttf new file mode 100644 index 000000000..987276916 Binary files /dev/null and b/data/resources/opensans_hebrew_condensed_regular.ttf differ diff --git a/data/resources/option_arrow.svg b/data/resources/option_arrow.svg new file mode 100644 index 000000000..36d39eb8d --- /dev/null +++ b/data/resources/option_arrow.svg @@ -0,0 +1,11 @@ + + + + + + + + diff --git a/data/resources/scroll_gradient.png b/data/resources/scroll_gradient.png new file mode 100644 index 000000000..f7c3bfc8d Binary files /dev/null and b/data/resources/scroll_gradient.png differ diff --git a/data/resources/slider_knob.svg b/data/resources/slider_knob.svg new file mode 100644 index 000000000..47d4e97ac --- /dev/null +++ b/data/resources/slider_knob.svg @@ -0,0 +1,8 @@ + + + + + + diff --git a/data/resources/splash.svg b/data/resources/splash.svg new file mode 100644 index 000000000..67af3660f --- /dev/null +++ b/data/resources/splash.svg @@ -0,0 +1,171 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/data/resources/star_filled.svg b/data/resources/star_filled.svg new file mode 100644 index 000000000..11d7e0f41 --- /dev/null +++ b/data/resources/star_filled.svg @@ -0,0 +1,12 @@ + + + + + + diff --git a/data/resources/star_unfilled.svg b/data/resources/star_unfilled.svg new file mode 100644 index 000000000..d1063e40a --- /dev/null +++ b/data/resources/star_unfilled.svg @@ -0,0 +1,18 @@ + + + + + + diff --git a/data/resources/textinput_ninepatch.png b/data/resources/textinput_ninepatch.png new file mode 100644 index 000000000..9ba16d6f2 Binary files /dev/null and b/data/resources/textinput_ninepatch.png differ diff --git a/data/resources/corner.png b/data/resources/textinput_ninepatch_active.png similarity index 84% rename from data/resources/corner.png rename to data/resources/textinput_ninepatch_active.png index 34cf2519c..2381af87e 100644 Binary files a/data/resources/corner.png and b/data/resources/textinput_ninepatch_active.png differ diff --git a/data/resources/window_icon_256.png b/data/resources/window_icon_256.png new file mode 100644 index 000000000..251686c07 Binary files /dev/null and b/data/resources/window_icon_256.png differ diff --git a/es-app/CMakeLists.txt b/es-app/CMakeLists.txt new file mode 100644 index 000000000..bac158bcf --- /dev/null +++ b/es-app/CMakeLists.txt @@ -0,0 +1,149 @@ +project("emulationstation") + +set(ES_HEADERS + ${CMAKE_CURRENT_SOURCE_DIR}/src/EmulationStation.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/FileData.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/FileSorts.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/MetaData.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/PlatformId.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/ScraperCmdLine.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/SystemData.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/VolumeControl.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/Gamelist.h + + # GuiComponents + ${CMAKE_CURRENT_SOURCE_DIR}/src/components/AsyncReqComponent.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/components/RatingComponent.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/components/ScraperSearchComponent.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/components/TextListComponent.h + + # Guis + ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiFastSelect.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiMetaDataEd.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiGameScraper.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiGamelistOptions.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiMenu.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiSettings.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiScraperMulti.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiScraperStart.h + + # Scrapers + ${CMAKE_CURRENT_SOURCE_DIR}/src/scrapers/Scraper.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/scrapers/GamesDBScraper.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/scrapers/TheArchiveScraper.h + + # Views + ${CMAKE_CURRENT_SOURCE_DIR}/src/views/gamelist/BasicGameListView.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/views/gamelist/DetailedGameListView.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/views/gamelist/IGameListView.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/views/gamelist/ISimpleGameListView.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/views/gamelist/GridGameListView.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/views/SystemView.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/views/ViewController.h + + # Animations + ${CMAKE_CURRENT_SOURCE_DIR}/src/animations/LaunchAnimation.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/animations/MoveCameraAnimation.h +) + +set(ES_SOURCES + ${CMAKE_CURRENT_SOURCE_DIR}/src/FileData.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/FileSorts.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/main.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/MameNameMap.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/MetaData.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/PlatformId.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/ScraperCmdLine.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/SystemData.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/VolumeControl.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/Gamelist.cpp + + # GuiComponents + ${CMAKE_CURRENT_SOURCE_DIR}/src/components/AsyncReqComponent.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/components/RatingComponent.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/components/ScraperSearchComponent.cpp + + # Guis + ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiFastSelect.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiMetaDataEd.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiGameScraper.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiGamelistOptions.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiMenu.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiSettings.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiScraperMulti.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiScraperStart.cpp + + # Scrapers + ${CMAKE_CURRENT_SOURCE_DIR}/src/scrapers/Scraper.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/scrapers/GamesDBScraper.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/scrapers/TheArchiveScraper.cpp + + # Views + ${CMAKE_CURRENT_SOURCE_DIR}/src/views/gamelist/BasicGameListView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/views/gamelist/DetailedGameListView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/views/gamelist/IGameListView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/views/gamelist/ISimpleGameListView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/views/gamelist/GridGameListView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/views/SystemView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/views/ViewController.cpp +) + +#------------------------------------------------------------------------------- +# define OS specific sources and headers +if(MSVC) + LIST(APPEND ES_SOURCES + ${CMAKE_CURRENT_SOURCE_DIR}/src/EmulationStation.rc + ) +endif() + +#------------------------------------------------------------------------------- +# define target +include_directories(${COMMON_INCLUDE_DIRS} ${CMAKE_CURRENT_SOURCE_DIR}/src) +add_executable(emulationstation ${ES_SOURCES} ${ES_HEADERS}) +target_link_libraries(emulationstation ${COMMON_LIBRARIES} es-core) + +# special properties for Windows builds +if(MSVC) + #show console in debug builds, but not in proper release builds + #Note that up to CMake 2.8.10 this feature is broken: http://public.kitware.com/Bug/view.php?id=12566 + set_target_properties(emulationstation PROPERTIES LINK_FLAGS_DEBUG "/SUBSYSTEM:CONSOLE") + set_target_properties(emulationstation PROPERTIES COMPILE_DEFINITIONS_DEBUG "_CONSOLE") + set_target_properties(emulationstation PROPERTIES LINK_FLAGS_RELWITHDEBINFO "/SUBSYSTEM:CONSOLE") + set_target_properties(emulationstation PROPERTIES COMPILE_DEFINITIONS_RELWITHDEBINFO "_CONSOLE") + set_target_properties(emulationstation PROPERTIES LINK_FLAGS_RELEASE "/SUBSYSTEM:WINDOWS") + set_target_properties(emulationstation PROPERTIES LINK_FLAGS_MINSIZEREL "/SUBSYSTEM:WINDOWS") +endif() + + +#------------------------------------------------------------------------------- +# set up CPack install stuff so `make install` does something useful + +install(TARGETS emulationstation + RUNTIME + DESTINATION bin) + +INCLUDE(InstallRequiredSystemLibraries) + +SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "A flexible graphical emulator front-end") +SET(CPACK_PACKAGE_DESCRIPTION "EmulationStation is a flexible, graphical front-end designed for keyboardless navigation of your multi-platform retro game collection.") + +SET(CPACK_RESOURCE_FILE LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE.md") +SET(CPACK_RESOURCE_FILE README "${CMAKE_CURRENT_SOURCE_DIR}/README.md") + +SET(CPACK_DEBIAN_PACKAGE_MAINTAINER "Alec Lofquist ") +SET(CPACK_DEBIAN_PACKAGE_SECTION "misc") +SET(CPACK_DEBIAN_PACKAGE_PRIORITY "extra") +SET(CPACK_DEBIAN_PACKAGE_DEPENDS "libc6, libsdl2-2.0-0, libboost-system1.54.0, libboost-filesystem1.54.0, libfreeimage3, libfreetype6, libcurl3, libasound2") +SET(CPACK_DEBIAN_PACKAGE_BUILDS_DEPENDS "debhelper (>= 8.0.0), cmake, g++ (>= 4.8), libsdl2-dev, libboost-system-dev, libboost-filesystem-dev, libboost-date-time-dev, libfreeimage-dev, libfreetype6-dev, libeigen3-dev, libcurl4-openssl-dev, libasound2-dev, libgl1-mesa-dev") + +SET(CPACK_PACKAGE_VENDOR "emulationstation.org") +SET(CPACK_PACKAGE_VERSION "2.0.0~rc1") +SET(CPACK_PACKAGE_VERSION_MAJOR "2") +SET(CPACK_PACKAGE_VERSION_MINOR "0") +SET(CPACK_PACKAGE_VERSION_PATCH "0") +SET(CPACK_PACKAGE_INSTALL_DIRECTORY "emulationstation_${CMAKE_PACKAGE_VERSION}") +SET(CPACK_PACKAGE_EXECUTABLES "emulationstation" "emulationstation") + +SET(CPACK_GENERATOR "TGZ;DEB") + +INCLUDE(CPack) diff --git a/es-app/src/EmulationStation.aps b/es-app/src/EmulationStation.aps new file mode 100644 index 000000000..2fce32bb8 Binary files /dev/null and b/es-app/src/EmulationStation.aps differ diff --git a/es-app/src/EmulationStation.h b/es-app/src/EmulationStation.h new file mode 100644 index 000000000..d87539eb6 --- /dev/null +++ b/es-app/src/EmulationStation.h @@ -0,0 +1,13 @@ +#pragma once + +// These numbers and strings need to be manually updated for a new version. +// Do this version number update as the very last commit for the new release version. +#define PROGRAM_VERSION_MAJOR 2 +#define PROGRAM_VERSION_MINOR 0 +#define PROGRAM_VERSION_MAINTENANCE 0 +#define PROGRAM_VERSION_STRING "2.0.0-rc1" + +#define PROGRAM_BUILT_STRING __DATE__ " - " __TIME__ + +#define RESOURCE_VERSION_STRING "2,0,0\0" +#define RESOURCE_VERSION PROGRAM_VERSION_MAJOR,PROGRAM_VERSION_MINOR,PROGRAM_VERSION_MAINTENANCE diff --git a/src/EmulationStation.rc b/es-app/src/EmulationStation.rc similarity index 76% rename from src/EmulationStation.rc rename to es-app/src/EmulationStation.rc index eff407b20..a89896c99 100644 --- a/src/EmulationStation.rc +++ b/es-app/src/EmulationStation.rc @@ -20,20 +20,20 @@ BEGIN BLOCK "040904E4" BEGIN VALUE "Comments", "\0" - VALUE "FileDescription", "EmulationStation multi-emulator frontend\0" + VALUE "FileDescription", "EmulationStation - emulator frontend\0" VALUE "FileVersion", RESOURCE_VERSION_STRING VALUE "InternalName", "emulationstation.exe\0" VALUE "LegalCopyright", "\0" VALUE "LegalTrademarks", "\0" VALUE "OriginalFilename", "emulationstation.exe\0" VALUE "ProductName", "EmulationStation\0" - VALUE "ProductVersion", RESOURCE_VERSION_STRING + VALUE "ProductVersion", PROGRAM_VERSION_STRING END END BLOCK "VarFileInfo" BEGIN - VALUE "Translation", 0x407, 1200 + VALUE "Translation", 0x409, 1252 END END -IDI_ES_LOGO ICON DISCARDABLE "../data/logo/ES_logo.ico" \ No newline at end of file +IDI_ES_LOGO ICON DISCARDABLE "../data/es_icon.ico" \ No newline at end of file diff --git a/es-app/src/FileData.cpp b/es-app/src/FileData.cpp new file mode 100644 index 000000000..a1b625d8a --- /dev/null +++ b/es-app/src/FileData.cpp @@ -0,0 +1,144 @@ +#include "FileData.h" +#include "SystemData.h" + +namespace fs = boost::filesystem; + +std::string removeParenthesis(const std::string& str) +{ + // remove anything in parenthesis or brackets + // should be roughly equivalent to the regex replace "\((.*)\)|\[(.*)\]" with "" + // I would love to just use regex, but it's not worth pulling in another boost lib for one function that is used once + + std::string ret = str; + size_t start, end; + + static const int NUM_TO_REPLACE = 2; + static const char toReplace[NUM_TO_REPLACE*2] = { '(', ')', '[', ']' }; + + bool done = false; + while(!done) + { + done = true; + for(int i = 0; i < NUM_TO_REPLACE; i++) + { + end = ret.find_first_of(toReplace[i*2+1]); + start = ret.find_last_of(toReplace[i*2], end); + + if(start != std::string::npos && end != std::string::npos) + { + ret.erase(start, end - start + 1); + done = false; + } + } + } + + // also strip whitespace + end = ret.find_last_not_of(' '); + if(end != std::string::npos) + end++; + + ret = ret.substr(0, end); + + return ret; +} + + +FileData::FileData(FileType type, const fs::path& path, SystemData* system) + : mType(type), mPath(path), mSystem(system), mParent(NULL), metadata(type == GAME ? GAME_METADATA : FOLDER_METADATA) // metadata is REALLY set in the constructor! +{ + // metadata needs at least a name field (since that's what getName() will return) + if(metadata.get("name").empty()) + metadata.set("name", getCleanName()); +} + +FileData::~FileData() +{ + if(mParent) + mParent->removeChild(this); + + while(mChildren.size()) + delete mChildren.back(); +} + +std::string FileData::getCleanName() const +{ + std::string stem = mPath.stem().generic_string(); + if(mSystem && mSystem->hasPlatformId(PlatformIds::ARCADE) || mSystem->hasPlatformId(PlatformIds::NEOGEO)) + stem = PlatformIds::getCleanMameName(stem.c_str()); + + return removeParenthesis(stem); +} + +const std::string& FileData::getThumbnailPath() const +{ + if(!metadata.get("thumbnail").empty()) + return metadata.get("thumbnail"); + else + return metadata.get("image"); +} + + +std::vector FileData::getFilesRecursive(unsigned int typeMask) const +{ + std::vector out; + + for(auto it = mChildren.begin(); it != mChildren.end(); it++) + { + if((*it)->getType() & typeMask) + out.push_back(*it); + + if((*it)->getChildren().size() > 0) + { + std::vector subchildren = (*it)->getFilesRecursive(typeMask); + out.insert(out.end(), subchildren.cbegin(), subchildren.cend()); + } + } + + return out; +} + +void FileData::addChild(FileData* file) +{ + assert(mType == FOLDER); + assert(file->getParent() == NULL); + + mChildren.push_back(file); + file->mParent = this; +} + +void FileData::removeChild(FileData* file) +{ + assert(mType == FOLDER); + assert(file->getParent() == this); + + for(auto it = mChildren.begin(); it != mChildren.end(); it++) + { + if(*it == file) + { + mChildren.erase(it); + return; + } + } + + // File somehow wasn't in our children. + assert(false); +} + +void FileData::sort(ComparisonFunction& comparator, bool ascending) +{ + std::sort(mChildren.begin(), mChildren.end(), comparator); + + for(auto it = mChildren.begin(); it != mChildren.end(); it++) + { + if((*it)->getChildren().size() > 0) + (*it)->sort(comparator, ascending); + } + + if(!ascending) + std::reverse(mChildren.begin(), mChildren.end()); +} + +void FileData::sort(const SortType& type) +{ + sort(*type.comparisonFunction, type.ascending); +} diff --git a/es-app/src/FileData.h b/es-app/src/FileData.h new file mode 100644 index 000000000..add6345f4 --- /dev/null +++ b/es-app/src/FileData.h @@ -0,0 +1,77 @@ +#pragma once + +#include +#include +#include +#include "MetaData.h" + +class SystemData; + +enum FileType +{ + GAME = 1, // Cannot have children. + FOLDER = 2 +}; + +enum FileChangeType +{ + FILE_ADDED, + FILE_METADATA_CHANGED, + FILE_REMOVED, + FILE_SORTED +}; + +// Used for loading/saving gamelist.xml. +const char* fileTypeToString(FileType type); +FileType stringToFileType(const char* str); + +// Remove (.*) and [.*] from str +std::string removeParenthesis(const std::string& str); + +// A tree node that holds information for a file. +class FileData +{ +public: + FileData(FileType type, const boost::filesystem::path& path, SystemData* system); + virtual ~FileData(); + + inline const std::string& getName() const { return metadata.get("name"); } + inline FileType getType() const { return mType; } + inline const boost::filesystem::path& getPath() const { return mPath; } + inline FileData* getParent() const { return mParent; } + inline const std::vector& getChildren() const { return mChildren; } + inline SystemData* getSystem() const { return mSystem; } + + virtual const std::string& getThumbnailPath() const; + + std::vector getFilesRecursive(unsigned int typeMask) const; + + void addChild(FileData* file); // Error if mType != FOLDER + void removeChild(FileData* file); //Error if mType != FOLDER + + // Returns our best guess at the "real" name for this file (will strip parenthesis and attempt to perform MAME name translation) + std::string getCleanName() const; + + typedef bool ComparisonFunction(const FileData* a, const FileData* b); + struct SortType + { + ComparisonFunction* comparisonFunction; + bool ascending; + std::string description; + + SortType(ComparisonFunction* sortFunction, bool sortAscending, const std::string & sortDescription) + : comparisonFunction(sortFunction), ascending(sortAscending), description(sortDescription) {} + }; + + void sort(ComparisonFunction& comparator, bool ascending = true); + void sort(const SortType& type); + + MetaDataList metadata; + +private: + FileType mType; + boost::filesystem::path mPath; + SystemData* mSystem; + FileData* mParent; + std::vector mChildren; +}; diff --git a/es-app/src/FileSorts.cpp b/es-app/src/FileSorts.cpp new file mode 100644 index 000000000..b985c0ae6 --- /dev/null +++ b/es-app/src/FileSorts.cpp @@ -0,0 +1,72 @@ +#include "FileSorts.h" + +namespace FileSorts +{ + const FileData::SortType typesArr[] = { + FileData::SortType(&compareFileName, true, "filename, ascending"), + FileData::SortType(&compareFileName, false, "filename, descending"), + + FileData::SortType(&compareRating, true, "rating, ascending"), + FileData::SortType(&compareRating, false, "rating, descending"), + + FileData::SortType(&compareTimesPlayed, true, "times played, ascending"), + FileData::SortType(&compareTimesPlayed, false, "times played, descending"), + + FileData::SortType(&compareLastPlayed, true, "last played, ascending"), + FileData::SortType(&compareLastPlayed, false, "last played, descending") + }; + + const std::vector SortTypes(typesArr, typesArr + sizeof(typesArr)/sizeof(typesArr[0])); + + //returns if file1 should come before file2 + bool compareFileName(const FileData* file1, const FileData* file2) + { + std::string name1 = file1->getName(); + std::string name2 = file2->getName(); + + //min of name1/name2 .length()s + unsigned int count = name1.length() > name2.length() ? name2.length() : name1.length(); + for(unsigned int i = 0; i < count; i++) + { + if(toupper(name1[i]) != toupper(name2[i])) + { + return toupper(name1[i]) < toupper(name2[i]); + } + } + + return name1.length() < name2.length(); + } + + bool compareRating(const FileData* file1, const FileData* file2) + { + //only games have rating metadata + if(file1->metadata.getType() == GAME_METADATA && file2->metadata.getType() == GAME_METADATA) + { + return file1->metadata.getFloat("rating") < file2->metadata.getFloat("rating"); + } + + return false; + } + + bool compareTimesPlayed(const FileData* file1, const FileData* file2) + { + //only games have playcount metadata + if(file1->metadata.getType() == GAME_METADATA && file2->metadata.getType() == GAME_METADATA) + { + return (file1)->metadata.getInt("playcount") < (file2)->metadata.getInt("playcount"); + } + + return false; + } + + bool compareLastPlayed(const FileData* file1, const FileData* file2) + { + //only games have lastplayed metadata + if(file1->metadata.getType() == GAME_METADATA && file2->metadata.getType() == GAME_METADATA) + { + return (file1)->metadata.getTime("lastplayed") < (file2)->metadata.getTime("lastplayed"); + } + + return false; + } +}; diff --git a/es-app/src/FileSorts.h b/es-app/src/FileSorts.h new file mode 100644 index 000000000..e9f662437 --- /dev/null +++ b/es-app/src/FileSorts.h @@ -0,0 +1,14 @@ +#pragma once + +#include +#include "FileData.h" + +namespace FileSorts +{ + bool compareFileName(const FileData* file1, const FileData* file2); + bool compareRating(const FileData* file1, const FileData* file2); + bool compareTimesPlayed(const FileData* file1, const FileData* fil2); + bool compareLastPlayed(const FileData* file1, const FileData* file2); + + extern const std::vector SortTypes; +}; diff --git a/es-app/src/Gamelist.cpp b/es-app/src/Gamelist.cpp new file mode 100644 index 000000000..8c647fc4d --- /dev/null +++ b/es-app/src/Gamelist.cpp @@ -0,0 +1,252 @@ +#include "Gamelist.h" +#include "SystemData.h" +#include "pugixml/pugixml.hpp" +#include +#include "Log.h" +#include "Settings.h" +#include "Util.h" + +namespace fs = boost::filesystem; + +FileData* findOrCreateFile(SystemData* system, const boost::filesystem::path& path, FileType type) +{ + // first, verify that path is within the system's root folder + FileData* root = system->getRootFolder(); + + bool contains = false; + fs::path relative = removeCommonPath(path, root->getPath(), contains); + if(!contains) + { + LOG(LogError) << "File path \"" << path << "\" is outside system path \"" << system->getStartPath() << "\""; + return NULL; + } + + auto path_it = relative.begin(); + FileData* treeNode = root; + bool found = false; + while(path_it != relative.end()) + { + const std::vector& children = treeNode->getChildren(); + found = false; + for(auto child_it = children.begin(); child_it != children.end(); child_it++) + { + if((*child_it)->getPath().filename() == *path_it) + { + treeNode = *child_it; + found = true; + break; + } + } + + // this is the end + if(path_it == --relative.end()) + { + if(found) + return treeNode; + + if(type == FOLDER) + { + LOG(LogWarning) << "gameList: folder doesn't already exist, won't create"; + return NULL; + } + + FileData* file = new FileData(type, path, system); + treeNode->addChild(file); + return file; + } + + if(!found) + { + // don't create folders unless it's leading up to a game + // if type is a folder it's gonna be empty, so don't bother + if(type == FOLDER) + { + LOG(LogWarning) << "gameList: folder doesn't already exist, won't create"; + return NULL; + } + + // create missing folder + FileData* folder = new FileData(FOLDER, treeNode->getPath().stem() / *path_it, system); + treeNode->addChild(folder); + treeNode = folder; + } + + path_it++; + } + + return NULL; +} + +void parseGamelist(SystemData* system) +{ + std::string xmlpath = system->getGamelistPath(false); + + if(!boost::filesystem::exists(xmlpath)) + return; + + LOG(LogInfo) << "Parsing XML file \"" << xmlpath << "\"..."; + + pugi::xml_document doc; + pugi::xml_parse_result result = doc.load_file(xmlpath.c_str()); + + if(!result) + { + LOG(LogError) << "Error parsing XML file \"" << xmlpath << "\"!\n " << result.description(); + return; + } + + pugi::xml_node root = doc.child("gameList"); + if(!root) + { + LOG(LogError) << "Could not find node in gamelist \"" << xmlpath << "\"!"; + return; + } + + fs::path relativeTo = system->getStartPath(); + + const char* tagList[2] = { "game", "folder" }; + FileType typeList[2] = { GAME, FOLDER }; + for(int i = 0; i < 2; i++) + { + const char* tag = tagList[i]; + FileType type = typeList[i]; + for(pugi::xml_node fileNode = root.child(tag); fileNode; fileNode = fileNode.next_sibling(tag)) + { + fs::path path = resolvePath(fileNode.child("path").text().get(), relativeTo, false); + + if(!boost::filesystem::exists(path)) + { + LOG(LogWarning) << "File \"" << path << "\" does not exist! Ignoring."; + continue; + } + + FileData* file = findOrCreateFile(system, path, type); + if(!file) + { + LOG(LogError) << "Error finding/creating FileData for \"" << path << "\", skipping."; + continue; + } + + //load the metadata + std::string defaultName = file->metadata.get("name"); + file->metadata = MetaDataList::createFromXML(GAME_METADATA, fileNode, relativeTo); + + //make sure name gets set if one didn't exist + if(file->metadata.get("name").empty()) + file->metadata.set("name", defaultName); + } + } +} + +void addFileDataNode(pugi::xml_node& parent, const FileData* file, const char* tag, SystemData* system) +{ + //create game and add to parent node + pugi::xml_node newNode = parent.append_child(tag); + + //write metadata + file->metadata.appendToXML(newNode, true, system->getStartPath()); + + if(newNode.children().begin() == newNode.child("name") //first element is name + && ++newNode.children().begin() == newNode.children().end() //theres only one element + && newNode.child("name").text().get() == file->getCleanName()) //the name is the default + { + //if the only info is the default name, don't bother with this node + //delete it and ultimately do nothing + parent.remove_child(newNode); + }else{ + //there's something useful in there so we'll keep the node, add the path + + // try and make the path relative if we can so things still work if we change the rom folder location in the future + newNode.prepend_child("path").text().set(makeRelativePath(file->getPath(), system->getStartPath(), false).generic_string().c_str()); + } +} + +void updateGamelist(SystemData* system) +{ + //We do this by reading the XML again, adding changes and then writing it back, + //because there might be information missing in our systemdata which would then miss in the new XML. + //We have the complete information for every game though, so we can simply remove a game + //we already have in the system from the XML, and then add it back from its GameData information... + + if(Settings::getInstance()->getBool("IgnoreGamelist")) + return; + + pugi::xml_document doc; + pugi::xml_node root; + std::string xmlReadPath = system->getGamelistPath(false); + + if(boost::filesystem::exists(xmlReadPath)) + { + //parse an existing file first + pugi::xml_parse_result result = doc.load_file(xmlReadPath.c_str()); + + if(!result) + { + LOG(LogError) << "Error parsing XML file \"" << xmlReadPath << "\"!\n " << result.description(); + return; + } + + root = doc.child("gameList"); + if(!root) + { + LOG(LogError) << "Could not find node in gamelist \"" << xmlReadPath << "\"!"; + return; + } + }else{ + //set up an empty gamelist to append to + root = doc.append_child("gameList"); + } + + + //now we have all the information from the XML. now iterate through all our games and add information from there + FileData* rootFolder = system->getRootFolder(); + if (rootFolder != nullptr) + { + //get only files, no folders + std::vector files = rootFolder->getFilesRecursive(GAME | FOLDER); + //iterate through all files, checking if they're already in the XML + std::vector::const_iterator fit = files.cbegin(); + while(fit != files.cend()) + { + const char* tag = ((*fit)->getType() == GAME) ? "game" : "folder"; + + // check if the file already exists in the XML + // if it does, remove it before adding + for(pugi::xml_node fileNode = root.child(tag); fileNode; fileNode = fileNode.next_sibling(tag)) + { + pugi::xml_node pathNode = fileNode.child("path"); + if(!pathNode) + { + LOG(LogError) << "<" << tag << "> node contains no child!"; + continue; + } + + fs::path nodePath = resolvePath(pathNode.text().get(), system->getStartPath(), true); + fs::path gamePath((*fit)->getPath()); + if(nodePath == gamePath || (fs::exists(nodePath) && fs::exists(gamePath) && fs::equivalent(nodePath, gamePath))) + { + // found it + root.remove_child(fileNode); + break; + } + } + + // it was either removed or never existed to begin with; either way, we can add it now + addFileDataNode(root, *fit, tag, system); + + ++fit; + } + + //now write the file + + //make sure the folders leading up to this path exist (or the write will fail) + boost::filesystem::path xmlWritePath(system->getGamelistPath(true)); + boost::filesystem::create_directories(xmlWritePath.parent_path()); + + if (!doc.save_file(xmlWritePath.c_str())) { + LOG(LogError) << "Error saving gamelist.xml to \"" << xmlWritePath << "\" (for system " << system->getName() << ")!"; + } + }else{ + LOG(LogError) << "Found no root folder for system \"" << system->getName() << "\"!"; + } +} diff --git a/es-app/src/Gamelist.h b/es-app/src/Gamelist.h new file mode 100644 index 000000000..b681e9160 --- /dev/null +++ b/es-app/src/Gamelist.h @@ -0,0 +1,9 @@ +#pragma once + +class SystemData; + +// Loads gamelist.xml data into a SystemData. +void parseGamelist(SystemData* system); + +// Writes currently loaded metadata for a SystemData to gamelist.xml. +void updateGamelist(SystemData* system); diff --git a/es-app/src/MameNameMap.cpp b/es-app/src/MameNameMap.cpp new file mode 100644 index 000000000..c09c5fd9d --- /dev/null +++ b/es-app/src/MameNameMap.cpp @@ -0,0 +1,30048 @@ +#define NULL 0 + +const char* mameNameToRealName[] = { + "005", "005", + "10yard", "10-Yard Fight (World, set 1)", + "10yard85", "10-Yard Fight '85 (US, Taito license)", + "10yardj", "10-Yard Fight (Japan)", + "11beat", "Eleven Beat", + "18w", "18 Wheeler (set 1)", + "18w2", "18 Wheeler (set 2)", + "18wheelr", "18 Wheeler (Deluxe) (Rev A)", + "18wheels", "18 Wheeler (Standard)", + "18wheelu", "18 Wheeler (Upright)", + "1941", "1941: Counter Attack (World 900227)", + "1941j", "1941: Counter Attack (Japan)", + "1941r1", "1941: Counter Attack (World)", + "1941u", "1941: Counter Attack (USA 900227)", + "1942", "1942 (Revision B)", + "1942a", "1942 (Revision A)", + "1942abl", "1942 (Revision A, bootleg)", + "1942b", "1942 (First Version)", + "1942p", "1942 (prototype)", + "1942w", "1942 (Williams Electronics license)", + "1943", "1943: The Battle of Midway (Euro)", + "1943b", "1943: Battle of Midway (bootleg, hack of Japan set)", + "1943j", "1943: Midway Kaisen (Japan, Rev B)", + "1943ja", "1943: Midway Kaisen (Japan)", + "1943kai", "1943 Kai: Midway Kaisen (Japan)", + "1943u", "1943: The Battle of Midway (US, Rev C)", + "1944", "1944: The Loop Master (USA 000620)", + "1944d", "1944: The Loop Master (USA 000620 Phoenix Edition) (bootleg)", + "1944j", "1944: The Loop Master (Japan 000620)", + "1945kiii", "1945k III", + "19in1", "19 in 1 MAME bootleg", + "19xx", "19XX: The War Against Destiny (USA 951207)", + "19xxa", "19XX: The War Against Destiny (Asia 951207)", + "19xxb", "19XX: The War Against Destiny (Brazil 951218)", + "19xxd", "19XX: The War Against Destiny (USA 951207 Phoenix Edition) (bootleg)", + "19xxh", "19XX: The War Against Destiny (Hispanic 951218)", + "19xxj", "19XX: The War Against Destiny (Japan 960104, yellow case)", + "19xxjr1", "19XX: The War Against Destiny (Japan 951225)", + "19xxjr2", "19XX: The War Against Destiny (Japan 951207)", + "1on1gov", "1 on 1 Government (Japan)", + "2020bb", "2020 Super Baseball (set 1)", + "2020bba", "2020 Super Baseball (set 2)", + "2020bbh", "2020 Super Baseball (set 3)", + "20pacgal", "Ms. Pac-Man/Galaga - 20th Anniversary Class of 1981 Reunion (V1.08)", + "20pacgalr0", "Ms. Pac-Man/Galaga - 20th Anniversary Class of 1981 Reunion (V1.00)", + "20pacgalr1", "Ms. Pac-Man/Galaga - 20th Anniversary Class of 1981 Reunion (V1.01)", + "20pacgalr2", "Ms. Pac-Man/Galaga - 20th Anniversary Class of 1981 Reunion (V1.02)", + "20pacgalr3", "Ms. Pac-Man/Galaga - 20th Anniversary Class of 1981 Reunion (V1.03)", + "20pacgalr4", "Ms. Pac-Man/Galaga - 20th Anniversary Class of 1981 Reunion (V1.04)", + "24cdjuke", "Midcoin Juke Box 24CD", + "25pacman", "Pac-Man - 25th Anniversary Edition (Rev 3.00)", + "25pacmano", "Pac-Man - 25th Anniversary Edition (Rev 2.00)", + "280zzzap", "280-ZZZAP", + "2mindril", "Two Minute Drill", + "30test", "30 Test (Remake)", + "39in1", "39 in 1 MAME bootleg", + "3bagflnz", "3 Bags Full (3VXFC5345, New Zealand)", + "3bagflvt", "3 Bags Full (5VXFC790, Victoria)", + "3countb", "3 Count Bout / Fire Suplex (NGM-043)(NGH-043)", + "3dobios", "3DO Bios", + "3ds", "Three Ds - Three Dealers Casino House", + "3in1semi", "XESS - The New Revolution (SemiCom 3-in-1)", + "3kokushi", "Sankokushi (Japan)", + "3on3dunk", "3 On 3 Dunk Madness (US, prototype? 1997/02/04)", + "3stooges", "The Three Stooges In Brides Is Brides (set 1)", + "3stoogesa", "The Three Stooges In Brides Is Brides (set 2)", + "3super8", "3 Super 8 (Italy)", + "3wishrd", "Three Wishes Red (Russia) (Atronic)", + "3wonders", "Three Wonders (World 910520)", + "3wondersb", "Three Wonders (bootleg)", + "3wondersh", "Three Wonders (hack)", + "3wondersr1", "Three Wonders (World 910513)", + "3wondersu", "Three Wonders (USA 910520)", + "3x3puzzl", "3X3 Puzzle (Enterprise)", + "3x3puzzla", "3X3 Puzzle (Normal)", + "40love", "Forty-Love", + "47pie2", "Idol Janshi Su-Chi-Pie 2 (v1.1)", + "47pie2o", "Idol Janshi Su-Chi-Pie 2 (v1.0)", + "48in1", "48 in 1 MAME bootleg (set 1, ver 3.09)", + "48in1a", "48 in 1 MAME bootleg (set 3, ver 3.02)", + "48in1b", "48 in 1 MAME bootleg (set 2, ver 3.09, alt flash)", + "4dwarrio", "4-D Warriors (315-5162)", + "4enlinea", "Cuatro en Linea", + "4enraya", "4 En Raya (set 1)", + "4enrayaa", "4 En Raya (set 2)", + "4in1", "4 Fun in 1", + "4in1a", "4 in 1 MAME bootleg (set 1, ver 3.00)", + "4in1b", "4 in 1 MAME bootleg (set 2)", + "4in1boot", "Puzzle King (includes bootleg of Snow Bros.)", + "4psimasy", "Mahjong 4P Simasyo (Japan)", + "4roses", "Four Roses (encrypted, set 1)", + "4rosesa", "Four Roses (encrypted, set 2)", + "500gp", "500 GP (5GP3 Ver. C)", + "50lions", "50 Lions (10120511, NSW/ACT)", + "50lionsa", "50 Lions (10156111, Malaysia)", + "5acespkr", "5-Aces Poker", + "5clown", "Five Clown (English, set 1)", + "5clowna", "Five Clown (English, set 2)", + "5clownsp", "Five Clown (Spanish hack)", + "600", "600", + "60in1", "60 in 1 MAME bootleg (ver 3.00)", + "64street", "64th. Street - A Detective Story (World)", + "64streetj", "64th. Street - A Detective Story (Japan)", + "720", "720 Degrees (rev 4)", + "720g", "720 Degrees (German, rev 2)", + "720gr1", "720 Degrees (German, rev 1)", + "720r1", "720 Degrees (rev 1)", + "720r2", "720 Degrees (rev 2)", + "720r3", "720 Degrees (rev 3)", + "7jigen", "7jigen no Youseitachi - Mahjong 7 Dimensions (Japan)", + "7mezzo", "7 e Mezzo", + "7ordi", "7 Ordi (Korea)", + "7smash", "7 Smash", + "7toitsu", "Chi-Toitsu", + "800fath", "800 Fathoms", + "86lions", "86 Lions", + "88games", "'88 Games", + "8ball", "Video Eight Ball", + "8ball1", "Video Eight Ball (Rev.1)", + "8ballact", "Eight Ball Action (DK conversion)", + "8ballact2", "Eight Ball Action (DKJr conversion)", + "8bpm", "Eight Ball Action (Pac-Man conversion)", + "98best44", "Neo Print - '98 NeoPri Best 44 (Japan)", + "99bottles", "99 Bottles of Beer", + "99lstwar", "'99: The Last War (set 1)", + "99lstwara", "'99: The Last War (set 2)", + "99lstwark", "'99: The Last War (Kyugo)", + "9ballsht", "9-Ball Shootout (set 1)", + "9ballsht2", "9-Ball Shootout (set 2)", + "9ballsht3", "9-Ball Shootout (set 3)", + "9ballshtc", "9-Ball Shootout Championship", + "a51mxr3k", "Area 51 / Maximum Force Duo (R3000)", + "a51site4", "Area 51: Site 4 (HD Rev 2.01, September 7, 1998)", + "a51site4a", "Area 51: Site 4 (HD Rev 2.0, September 11, 1998)", + "aadvent", "African Adventure (Konami Endeavour)", + "aafb", "All American Football (rev E)", + "aafbb", "All American Football (rev B)", + "aafbc", "All American Football (rev C)", + "aafbd2p", "All American Football (rev D, 2 Players)", + "aar_101", "Aaron Spelling (1.01)", + "aavenger", "Airborne Avenger", + "abacus", "Abacus (Ver 1.0)", + "abaseb", "Atari Baseball (set 1)", + "abaseb2", "Atari Baseball (set 2)", + "abattle", "Astro Battle (set 1)", + "abattle2", "Astro Battle (set 2)", + "abcop", "A.B. Cop (World, FD1094 317-0169b)", + "abcopj", "A.B. Cop (Japan, FD1094 317-0169b)", + "abigchs", "Big Cheese (Russia) (Atronic)", + "abnudge", "Animal Bonus Nudge (Version 2.1 Dual)", + "abnudgeb", "Animal Bonus Nudge (Version 2.0, set 1)", + "abnudged", "Animal Bonus Nudge (Version 2.0, set 2)", + "abnudgeo", "Animal Bonus Nudge (Version 1.7)", + "abscam", "Abscam", + "abunai", "Abunai Houkago - Mou Matenai (Japan 890325)", + "aburner", "After Burner", + "aburner2", "After Burner II", + "aburner2g", "After Burner II (German)", + "abv106", "Airborne", + "abv106r", "Airborne (Redemption)", + "ac1bbclb", "Big Break Club (Ace) (ACESYS1) (set 1)", + "ac1bbclba", "Big Break Club (Ace) (ACESYS1) (set 2)", + "ac1bluec", "Blue Chip (Pcp) (ACESYS1) (set 1)", + "ac1blueca", "Blue Chip (Pcp) (ACESYS1) (set 2)", + "ac1bluecb", "Blue Chip (Pcp) (ACESYS1) (set 3)", + "ac1bluecc", "Blue Chip (Pcp) (ACESYS1) (set 4)", + "ac1bluecd", "Blue Chip (Pcp) (ACESYS1) (set 5)", + "ac1clbmn", "Club Money (Ace) (ACESYS1) (set 1)", + "ac1clbsv", "Club Sovereign (Ace) (ACESYS1)", + "ac1clbxt", "Club Xtra (Ace) (ACESYS1) (set 1)", + "ac1clbxta", "Club Xtra (Ace) (ACESYS1) (set 2)", + "ac1dbldx", "Double Deluxe (Pcp) (ACESYS1)", + "ac1gogld", "Go For Gold (Ace) (ACESYS1) (set 1)", + "ac1hideh", "Hi De Hi Deluxe (Ace) (ACESYS1) (set 1)", + "ac1hideha", "Hi De Hi Deluxe (Ace) (ACESYS1) (set 2)", + "ac1hotpf", "Hot Profit (Ace) (ACESYS1)", + "ac1nudbk", "Nudge Break (Pcp) (ACESYS1) (set 1)", + "ac1nudbka", "Nudge Break (Pcp) (ACESYS1) (set 2)", + "ac1nudbkb", "Nudge Break (Pcp) (ACESYS1) (set 3)", + "ac1nudbkc", "Nudge Break (Pcp) (ACESYS1) (set 4)", + "ac1nudbkd", "Nudge Break (Pcp) (ACESYS1) (set 5)", + "ac1piaca", "Play It Again Casino (Ace) (ACESYS1)", + "ac1piacl", "Play It Again Club (Ace) (ACESYS1) (set 1)", + "ac1piacla", "Play It Again Club (Ace) (ACESYS1) (set 2)", + "ac1piaclb", "Play It Again Club (Ace) (ACESYS1) (set 3)", + "ac1piaclc", "Play It Again Club (Ace) (ACESYS1) (set 4)", + "ac1primt", "Primetime (Ace) (ACESYS1) (set 1)", + "ac1prmcl", "Premier Club (Ace) (ACESYS1) (set 1)", + "ac1prmcla", "Premier Club (Ace) (ACESYS1) (set 2)", + "ac1prmclb", "Premier Club (Ace) (ACESYS1) (set 3)", + "ac1prmclc", "Premier Club (Ace) (ACESYS1) (set 4)", + "ac1pster", "Pound Sterling (Ace) (ACESYS1)", + "ac1pstrt", "Pound Stretcher (Pcp) (ACESYS1)", + "ac1roll", "Roll Up (Pcp) (ACESYS1) (set 1)", + "ac1rolla", "Roll Up (Pcp) (ACESYS1) (set 2)", + "ac1rollb", "Roll Up (Pcp) (ACESYS1) (set 3)", + "ac1rundx", "Runner Deluxe Club (Ace) (ACESYS1) (set 1)", + "ac1rundxa", "Runner Deluxe Club (Ace) (ACESYS1) (set 2)", + "ac1shid", "Super Hi De Hi (Ace) (ACESYS1) (set 1)", + "ac1shida", "Super Hi De Hi (Ace) (ACESYS1) (set 2)", + "ac1sstrk", "Starstruck (Pcp) (ACESYS1) (set 1)", + "ac1sstrka", "Starstruck (Pcp) (ACESYS1) (set 2)", + "ac1sstrkb", "Starstruck (Pcp) (ACESYS1) (set 3)", + "ac1taklv", "Take It Or Leave It (Ace) (ACESYS1) (set 1)", + "ac1totb", "Top Of The Bill (Ace) (ACESYS1)", + "ac1xpres", "Xpress (Pcp) (ACESYS1)", + "ace", "Ace", + "aceattac", "Ace Attacker (FD1094 317-0059)", + "aceattaca", "Ace Attacker (Japan, System 16A, FD1094 317-0060)", + "acedrvrw", "Ace Driver: Racing Evolution (Rev. AD2)", + "acefruit", "Silhouette", + "acheart", "Arcana Heart", + "acheartf", "Arcana Heart Full", + "acitya", "Atlantic City Action", + "aclown", "Clown (Russia) (Atronic)", + "acombat", "Astro Combat (newer, CB)", + "acombat3", "Astro Combat (unencrypted)", + "acombato", "Astro Combat (older, PZ)", + "acommand", "Alien Command", + "acpsx", "Acclaim PSX", + "acrobatm", "Acrobat Mission", + "act2000", "Action 2000 (Version 3.5E Dual)", + "act2000b1", "Action 2000 (Version 3.5R, set 2)", + "act2000bx", "Action 2000 (Version 3.30XT, set 2)", + "act2000d1", "Action 2000 (Version 3.5R, set 1)", + "act2000dx", "Action 2000 (Version 3.30XT, set 1)", + "act2000o", "Action 2000 (Version 3.3)", + "act2000o2", "Action 2000 (Version 3.10XT)", + "act2000o3", "Action 2000 (Version 1.2)", + "act2000v1", "Action 2000 (Version 3.5R Dual)", + "act2000vx", "Action 2000 (Version 3.30XT Dual)", + "actfancr", "Act-Fancer Cybernetick Hyper Weapon (World revision 2)", + "actfancr1", "Act-Fancer Cybernetick Hyper Weapon (World revision 1)", + "actfancrj", "Act-Fancer Cybernetick Hyper Weapon (Japan revision 1)", + "actionhw", "Action Hollywood", + "ad2083", "A. D. 2083", + "ad4ctl", "Cop The Lot Club (Video) (Bellfruit) (Adder 4) (set 1)", + "ad4ctla", "Cop The Lot Club (Video) (Bellfruit) (Adder 4) (set 2)", + "ad4film", "Film Premiere (Video?) (Bellfruit) (Adder 4) (set 1)", + "ad4filma", "Film Premiere (Video?) (Bellfruit) (Adder 4) (set 2)", + "ad4skill", "Skill Dice (BFM) (Scorpion 4 + Adder 4)", + "ad5bpfpm", "Bullseye Pounds For Points (Mazooma) (Adder 5) (set 1)", + "ad5bpfpma", "Bullseye Pounds For Points (Mazooma) (Adder 5) (set 2)", + "ad5bpfpmb", "Bullseye Pounds For Points (Mazooma) (Adder 5) (set 3)", + "ad5bpfpmc", "Bullseye Pounds For Points (Mazooma) (Adder 5) (set 4)", + "ad5bpfpmd", "Bullseye Pounds For Points (Mazooma) (Adder 5) (set 5)", + "ad5btc", "Bullseye Triple Club (PR1758, BFGPBULS) (Bellfruit) (Adder 5) (set 1)", + "ad5btca", "Bullseye Triple Club (PR1758, BFGPBULS) (Bellfruit) (Adder 5) (set 3)", + "ad5btcb", "Bullseye Triple Club (PR1758, BFGNBULS) (Bellfruit) (Adder 5) (set 4)", + "ad5cmons", "Crazy Money (Bellfruit) (Adder 5) (set 1)", + "ad5cmonsa", "Crazy Money (Bellfruit) (Adder 5) (set 2)", + "ad5copsr", "Cops 'n' Robbers (PR3206) (Bellfruit) (Adder 5) (set 1)", + "ad5copsr0", "Cops 'n' Robbers (PR2476) (Mazooma) (Adder 5) (set 7)", + "ad5copsr1", "Cops 'n' Robbers (PR2497) (Mazooma) (Adder 5) (set 2)", + "ad5copsr2", "Cops 'n' Robbers (PR2476) (Mazooma) (Adder 5) (set 8)", + "ad5copsr3", "Cops 'n' Robbers (PR2628) (Mazooma) (Adder 5) (set 1)", + "ad5copsr4", "Cops 'n' Robbers (PR2495) (Mazooma) (Adder 5) (set 5)", + "ad5copsr5", "Cops 'n' Robbers (PR2628) (Mazooma) (Adder 5) (set 2)", + "ad5copsr6", "Cops 'n' Robbers (PR2495) (Mazooma) (Adder 5) (set 6)", + "ad5copsr7", "Cops 'n' Robbers (PR2628) (Mazooma) (Adder 5) (set 4)", + "ad5copsra", "Cops 'n' Robbers (PR3206) (Bellfruit) (Adder 5) (set 2)", + "ad5copsrb", "Cops 'n' Robbers (PR3206) (Bellfruit) (Adder 5) (set 3)", + "ad5copsrc", "Cops 'n' Robbers (PR1965) (Bellfruit) (Adder 5) (set 1)", + "ad5copsrd", "Cops 'n' Robbers (PR3206) (Bellfruit) (Adder 5) (set 4)", + "ad5copsre", "Cops 'n' Robbers (PR3206) (Bellfruit) (Adder 5) (set 5)", + "ad5copsrf", "Cops 'n' Robbers (PR3206) (Bellfruit) (Adder 5) (set 6)", + "ad5copsrg", "Cops 'n' Robbers (PR1965) (Bellfruit) (Adder 5) (set 2)", + "ad5copsrh", "Cops 'n' Robbers (PR2495) (Mazooma) (Adder 5) (set 1)", + "ad5copsri", "Cops 'n' Robbers (PR2495) (Mazooma) (Adder 5) (set 2)", + "ad5copsrj", "Cops 'n' Robbers (PR2476) (Mazooma) (Adder 5) (set 5)", + "ad5copsrk", "Cops 'n' Robbers (PR3206) (Bellfruit) (Adder 5) (set 7)", + "ad5copsrl", "Cops 'n' Robbers (PR3206) (Bellfruit) (Adder 5) (set 8)", + "ad5copsrm", "Cops 'n' Robbers (PR3206) (Bellfruit) (Adder 5) (set 9)", + "ad5copsrn", "Cops 'n' Robbers (PR1965) (Bellfruit) (Adder 5) (set 3)", + "ad5copsro", "Cops 'n' Robbers (PR3206) (Bellfruit) (Adder 5) (set 10)", + "ad5copsrp", "Cops 'n' Robbers (PR3206) (Bellfruit) (Adder 5) (set 11)", + "ad5copsrq", "Cops 'n' Robbers (PR3206) (Bellfruit) (Adder 5) (set 12)", + "ad5copsrr", "Cops 'n' Robbers (PR1965) (Bellfruit) (Adder 5) (set 4)", + "ad5copsrs", "Cops 'n' Robbers (PR2495) (Mazooma) (Adder 5) (set 3)", + "ad5copsrt", "Cops 'n' Robbers (PR2495) (Mazooma) (Adder 5) (set 4)", + "ad5copsru", "Cops 'n' Robbers (PR2476) (Mazooma) (Adder 5) (set 6)", + "ad5copsrv", "Cops 'n' Robbers (PR3206) (Bellfruit) (Adder 5) (set 13)", + "ad5copsrw", "Cops 'n' Robbers (PR3206) (Bellfruit) (Adder 5) (set 14)", + "ad5copsrx", "Cops 'n' Robbers (PR1965) (Bellfruit) (Adder 5) (set 5)", + "ad5copsry", "Cops 'n' Robbers (PR1965) (Bellfruit) (Adder 5) (set 6)", + "ad5copsrz", "Cops 'n' Robbers (PR2497) (Mazooma) (Adder 5) (set 1)", + "ad5crcpt", "Cops 'n' Robbers Community Party (Bellfruit) (Adder 5) (set 1)", + "ad5crcpta", "Cops 'n' Robbers Community Party (Bellfruit) (Adder 5) (set 2)", + "ad5crsc", "Cops 'n' Robbers (PR2476) (Mazooma) (Adder 5) (set 1)", + "ad5crsca", "Cops 'n' Robbers (PR2476) (Mazooma) (Adder 5) (set 2)", + "ad5crscb", "Cops 'n' Robbers (PR2476) (Mazooma) (Adder 5) (set 3)", + "ad5crscc", "Cops 'n' Robbers (PR2476) (Mazooma) (Adder 5) (set 4)", + "ad5crscd", "Cops 'n' Robbers (PR2495) (Mazooma) (Adder 5) (set 7)", + "ad5crsce", "Cops 'n' Robbers (PR2495) (Mazooma) (Adder 5) (set 8)", + "ad5crscf", "Cops 'n' Robbers (PR2495) (Mazooma) (Adder 5) (set 9)", + "ad5crscg", "Cops 'n' Robbers (PR2495) (Mazooma) (Adder 5) (set 10)", + "ad5crsch", "Cops 'n' Robbers (PR2628) (Mazooma) (Adder 5) (set 3)", + "ad5dnd", "Deal Or No Deal (Bellfruit) (Adder 5) (set 1)", + "ad5dnda", "Deal Or No Deal (Bellfruit) (Adder 5) (set 2)", + "ad5dndb", "Deal Or No Deal (Bellfruit) (Adder 5) (set 3)", + "ad5dndc", "Deal Or No Deal (Bellfruit) (Adder 5) (set 4)", + "ad5dndcl", "Deal Or No Deal Club (Bellfruit) (Adder 5) (set 1)", + "ad5dndcla", "Deal Or No Deal Club (Bellfruit) (Adder 5) (set 2)", + "ad5dndclb", "Deal Or No Deal Club (Bellfruit) (Adder 5) (set 3)", + "ad5dndclc", "Deal Or No Deal Club (Bellfruit) (Adder 5) (set 4)", + "ad5dndcld", "Deal Or No Deal Club (Bellfruit) (Adder 5) (set 5)", + "ad5dndcle", "Deal Or No Deal Club (Bellfruit) (Adder 5) (set 6)", + "ad5dndclf", "Deal Or No Deal Club (Bellfruit) (Adder 5) (set 20)", + "ad5dndclg", "Deal Or No Deal Club (Bellfruit) (Adder 5) (set 21)", + "ad5dndd", "Deal Or No Deal (Bellfruit) (Adder 5) (set 5)", + "ad5dnddd", "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Adder 5) (set 1)", + "ad5dnddda", "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Adder 5) (set 2)", + "ad5dnde", "Deal Or No Deal (Bellfruit) (Adder 5) (set 6)", + "ad5dndf", "Deal Or No Deal (Bellfruit) (Adder 5) (set 7)", + "ad5dndg", "Deal Or No Deal (Bellfruit) (Adder 5) (set 8)", + "ad5dndh", "Deal Or No Deal (Bellfruit) (Adder 5) (set 9)", + "ad5dndi", "Deal Or No Deal (Bellfruit) (Adder 5) (set 10)", + "ad5dndj", "Deal Or No Deal (Bellfruit) (Adder 5) (set 11)", + "ad5dndk", "Deal Or No Deal (Bellfruit) (Adder 5) (set 12)", + "ad5dndl", "Deal Or No Deal (Bellfruit) (Adder 5) (set 13)", + "ad5dndm", "Deal Or No Deal (Bellfruit) (Adder 5) (set 14)", + "ad5dndn", "Deal Or No Deal (Bellfruit) (Adder 5) (set 15)", + "ad5dndo", "Deal Or No Deal (Bellfruit) (Adder 5) (set 16)", + "ad5dndp", "Deal Or No Deal (Bellfruit) (Adder 5) (set 17)", + "ad5dndpg", "Deal Or No Deal The Perfect Game (Bellfruit) (Adder 5) (set 1)", + "ad5dndpga", "Deal Or No Deal The Perfect Game (Bellfruit) (Adder 5) (set 2)", + "ad5dndpgb", "Deal Or No Deal The Perfect Game (Bellfruit) (Adder 5) (set 3)", + "ad5dndpgc", "Deal Or No Deal The Perfect Game (Bellfruit) (Adder 5) (set 4)", + "ad5dndpl", "Deal Or No Deal Platinum (Bellfruit) (Adder 5) (set 1)", + "ad5dndpla", "Deal Or No Deal Platinum (Bellfruit) (Adder 5) (set 2)", + "ad5dndplb", "Deal Or No Deal Platinum (Bellfruit) (Adder 5) (set 3)", + "ad5dndplc", "Deal Or No Deal Platinum (Bellfruit) (Adder 5) (set 4)", + "ad5dndq", "Deal Or No Deal (Bellfruit) (Adder 5) (set 18)", + "ad5dndr", "Deal Or No Deal (Bellfruit) (Adder 5) (set 19)", + "ad5dndu", "Deal Or No Deal (Bellfruit) (Adder 5) (set 22)", + "ad5dndv", "Deal Or No Deal (Bellfruit) (Adder 5) (set 23)", + "ad5eyes", "Eyes Down (PR2242, MAZNEYDW) (Mazooma) (Adder 5) (set 1)", + "ad5eyesa", "Eyes Down (PR2242, MAZNEYDW) (Mazooma) (Adder 5) (set 2)", + "ad5eyesb", "Eyes Down (PR2246, MAZNEYDW) (Mazooma) (Adder 5) (set 1)", + "ad5eyesc", "Eyes Down (PR2246, MAZPEYDW) (Mazooma) (Adder 5) (set 1)", + "ad5eyesd", "Eyes Down (PR2242, MAZPEYDW) (Mazooma) (Adder 5) (set 1)", + "ad5eyese", "Eyes Down (PR2242, MAZPEYDW) (Mazooma) (Adder 5) (set 2)", + "ad5eyesf", "Eyes Down (PR2246, MAZPEYDW) (Mazooma) (Adder 5) (set 2)", + "ad5eyesg", "Eyes Down (PR2246, MAZNEYDW) (Mazooma) (Adder 5) (set 2)", + "ad5gldmn", "Gold Mine (Bellfruit) (Adder 5) (set 1)", + "ad5gldmna", "Gold Mine (Bellfruit) (Adder 5) (set 2)", + "ad5gldmnb", "Gold Mine (Bellfruit) (Adder 5) (set 3)", + "ad5gldmnc", "Gold Mine (Bellfruit) (Adder 5) (set 4)", + "ad5gldmnd", "Gold Mine (Bellfruit) (Adder 5) (set 5)", + "ad5gldmne", "Gold Mine (Bellfruit) (Adder 5) (set 6)", + "ad5gldmnf", "Gold Mine (Bellfruit) (Adder 5) (set 7)", + "ad5gldmng", "Gold Mine (Bellfruit) (Adder 5) (set 8)", + "ad5gldmnh", "Gold Mine (Bellfruit) (Adder 5) (set 9)", + "ad5gldmni", "Gold Mine (Bellfruit) (Adder 5) (set 10)", + "ad5gldmnj", "Gold Mine (Bellfruit) (Adder 5) (set 11)", + "ad5gldmnk", "Gold Mine (Bellfruit) (Adder 5) (set 12)", + "ad5gldwn", "Golden Winner (Mazooma) (Adder 5) (set 1)", + "ad5gldwna", "Golden Winner (Mazooma) (Adder 5) (set 2)", + "ad5hir", "Hi Roller (Bellfruit) (Adder 5) (set 1)", + "ad5hira", "Hi Roller (Bellfruit) (Adder 5) (set 2)", + "ad5hirb", "Hi Roller (Bellfruit) (Adder 5) (set 3)", + "ad5hirc", "Hi Roller (Bellfruit) (Adder 5) (set 4)", + "ad5hircl", "Hi Roller Club (Bellfruit) (Adder 5) (set 1)", + "ad5hircla", "Hi Roller Club (Bellfruit) (Adder 5) (set 2)", + "ad5hirclb", "Hi Roller Club (Bellfruit) (Adder 5) (set 3)", + "ad5jckmo", "Jackpot Monopoly (PR2226, MAZNJACM) (Mazooma) (Adder 5) (set 1)", + "ad5jckmoa", "Jackpot Monopoly (PR2226, MAZNJACM) (Mazooma) (Adder 5) (set 2)", + "ad5jckmob", "Jackpot Monopoly (PR2253, MAZNJACM) (Mazooma) (Adder 5)", + "ad5jckmoc", "Jackpot Monopoly (PR2226, MAZNJACM) (Mazooma) (Adder 5) (set 3)", + "ad5jckmod", "Jackpot Monopoly (PR2226, MAZPJACM) (Mazooma) (Adder 5) (set 1)", + "ad5jckmoe", "Jackpot Monopoly (PR2226, MAZPJACM) (Mazooma) (Adder 5) (set 2)", + "ad5mcob", "Monte Carlo Or Bust (Qps) (Adder 5) (set 1)", + "ad5mcoba", "Monte Carlo Or Bust (Qps) (Adder 5) (set 2)", + "ad5mcobb", "Monte Carlo Or Bust (Qps) (Adder 5) (set 3)", + "ad5mcobc", "Monte Carlo Or Bust (Qps) (Adder 5) (set 4)", + "ad5monop", "Random Monopoly (PR2217, MAZNRNDN) (Mazooma) (Adder 5) (set 1)", + "ad5monopa", "Random Monopoly (PR2217, MAZNRNDN) (Mazooma) (Adder 5) (set 2)", + "ad5monopb", "Random Monopoly (PR2217, MAZNRNDN) (Mazooma) (Adder 5) (set 3)", + "ad5monopc", "Random Monopoly (PR2217, MAZNRNDN) (Mazooma) (Adder 5) (set 4)", + "ad5monopd", "Random Monopoly (PR2221, MAZNRNDN) (Mazooma) (Adder 5) (set 1)", + "ad5monope", "Random Monopoly (PR2221, MAZNRNDN) (Mazooma) (Adder 5) (set 2)", + "ad5monopf", "Random Monopoly (PR2217, MAZPRNDN) (Mazooma) (Adder 5) (set 1)", + "ad5monopg", "Random Monopoly (PR2217, MAZPRNDN) (Mazooma) (Adder 5) (set 2)", + "ad5monoph", "Random Monopoly (PR2217, MAZPRNDN) (Mazooma) (Adder 5) (set 3)", + "ad5monopi", "Random Monopoly (PR2217, MAZPRNDN) (Mazooma) (Adder 5) (set 4)", + "ad5monopj", "Random Monopoly (PR2221, MAZPRNDN) (Mazooma) (Adder 5) (set 1)", + "ad5monopk", "Random Monopoly (PR2221, MAZPRNDN) (Mazooma) (Adder 5) (set 2)", + "ad5mowow", "Monopoly Wheel Of Wealth (PR2365, MAZNBPFP) (Mazooma) (Adder 5) (set 1)", + "ad5mowowa", "Monopoly Wheel Of Wealth (PR2365, MAZNWOWT) (Mazooma) (Adder 5) (set 1)", + "ad5mowowb", "Monopoly Wheel Of Wealth (PR2365, MAZNWOWT) (Mazooma) (Adder 5) (set 2)", + "ad5mowowc", "Monopoly Wheel Of Wealth (PR2389, MAZNWWBU) (Mazooma) (Adder 5)", + "ad5mowowd", "Monopoly Wheel Of Wealth (PR2365, MAZNMWOW) (Mazooma) (Adder 5)", + "ad5mowowe", "Monopoly Wheel Of Wealth (PR2365, MAZPBPFP) (Mazooma) (Adder 5) (set 1)", + "ad5mowowf", "Monopoly Wheel Of Wealth (PR2365, MAZPWOWT) (Mazooma) (Adder 5) (set 1)", + "ad5mowowg", "Monopoly Wheel Of Wealth (PR2365, MAZPWOWT) (Mazooma) (Adder 5) (set 2)", + "ad5mowowh", "Monopoly Wheel Of Wealth (PR2389, MAZPWWBU) (Mazooma) (Adder 5)", + "ad5mowowi", "Monopoly Wheel Of Wealth (PR2365, MAZPMWOW) (Mazooma) (Adder 5)", + "ad5mowowj", "Monopoly Wheel Of Wealth (PR3075) (Adder 5) (set 1)", + "ad5mowowk", "Monopoly Wheel Of Wealth (PR3075) (Adder 5) (set 2)", + "ad5mowowl", "Monopoly Wheel Of Wealth (PR2365, MAZNBPFP) (Mazooma) (Adder 5) (set 2)", + "ad5mowowm", "Monopoly Wheel Of Wealth (PR2365, MAZPBPFP) (Mazooma) (Adder 5) (set 2)", + "ad5mr2r", "Monopoly Road To Riches (Mazooma) (Adder 5) (set 1)", + "ad5mr2ra", "Monopoly Road To Riches (Mazooma) (Adder 5) (set 2)", + "ad5mr2rb", "Monopoly Road To Riches (Mazooma) (Adder 5) (set 3)", + "ad5mr2rc", "Monopoly Road To Riches (Mazooma) (Adder 5) (set 4)", + "ad5mr2rd", "Monopoly Road To Riches (Mazooma) (Adder 5) (set 5)", + "ad5mr2re", "Monopoly Road To Riches (Mazooma) (Adder 5) (set 6)", + "ad5mr2rf", "Monopoly Road To Riches (Mazooma) (Adder 5) (set 7)", + "ad5mr2rg", "Monopoly Road To Riches (Mazooma) (Adder 5) (set 8)", + "ad5mr2rh", "Monopoly Road To Riches (Mazooma) (Adder 5) (set 9)", + "ad5mww", "Random Monopoly Wonders Of The World (PR2284) (Mazooma) (Adder 5)", + "ad5mwwa", "Random Monopoly Wonders Of The World (PR2291) (Mazooma) (Adder 5)", + "ad5pking", "Poker King (Bellfruit) (Adder 5) (set 1)", + "ad5pkinga", "Poker King (Bellfruit) (Adder 5) (set 2)", + "ad5pp", "Pink Panther (PR2283, QPSNPINK) (Mazooma) (Adder 5) (set 1)", + "ad5ppa", "Pink Panther (PR2283, QPSNPINK) (Mazooma) (Adder 5) (set 2)", + "ad5ppb", "Pink Panther (PR2267, MAZNPINK) (Mazooma) (Adder 5) (set 1)", + "ad5ppbtb", "Pink Panther Break The Bank (PR2304, QPSNPPBB) (Qps) (Adder 5) (set 1)", + "ad5ppbtba", "Pink Panther Break The Bank (PR2304, QPSNPPBB) (Qps) (Adder 5) (set 2)", + "ad5ppbtbb", "Pink Panther Break The Bank (PR2304, QPSPPPBB) (Qps) (Adder 5) (set 1)", + "ad5ppbtbc", "Pink Panther Break The Bank (PR2304, QPSPPPBB) (Qps) (Adder 5) (set 2)", + "ad5ppc", "Pink Panther (PR2267, MAZNPINK) (Mazooma) (Adder 5) (set 2)", + "ad5ppd", "Pink Panther (MAZNPINK) (Mazooma) (Adder 5) (set 1)", + "ad5ppe", "Pink Panther (MAZNPINK) (Mazooma) (Adder 5) (set 2)", + "ad5ppf", "Pink Panther (PR2283, QPSPPINK) (Mazooma) (Adder 5) (set 1)", + "ad5ppg", "Pink Panther (PR2283, QPSPPINK) (Mazooma) (Adder 5) (set 2)", + "ad5pph", "Pink Panther (PR2267, MAZPPINK) (Mazooma) (Adder 5)", + "ad5ppi", "Pink Panther (MAZPPINK) (Mazooma) (Adder 5) (set 1)", + "ad5ppj", "Pink Panther (MAZPPINK) (Mazooma) (Adder 5) (set 2)", + "ad5rapid", "Rapid Pay (Bellfruit) (Adder 5) (set 1)", + "ad5rapida", "Rapid Pay (Bellfruit) (Adder 5) (set 2)", + "ad5rcash", "Reel Cash (Mazooma) (Adder 5) (set 1)", + "ad5rcasha", "Reel Cash (Mazooma) (Adder 5) (set 2)", + "ad5rroul", "Reel Roulette (QPSNRLRO) (Mazooma) (Adder 5)", + "ad5rroula", "Reel Roulette (QPSPRLRO) (Mazooma) (Adder 5)", + "ad5rroulb", "Reel Roulette (MAZNRERO) (Mazooma) (Adder 5)", + "ad5rroulc", "Reel Roulette (MAZPRERO) (Mazooma) (Adder 5)", + "ad5rsclb", "Random Spinner Club (PR1669, BFGNRNDN) (Bellfruit) (Adder 5) (set 1)", + "ad5rsclba", "Random Spinner Club (PR1826, BFGNRNDN) (Bellfruit) (Adder 5) (set 1)", + "ad5rsclbb", "Random Spinner Club (PR1826, BFGNRNDN) (Bellfruit) (Adder 5) (set 2)", + "ad5rsclbc", "Random Spinner Club (PR1669, BFGNRNDN) (Bellfruit) (Adder 5) (set 2)", + "ad5rsclbd", "Random Spinner Club (PR1669, BFGNRNDN) (Bellfruit) (Adder 5) (set 3)", + "ad5rsclbe", "Random Spinner Club (PR1669, BFGNRNDN) (Bellfruit) (Adder 5) (set 4)", + "ad5rsclbf", "Random Spinner Club (PR1669, BFGPRNDN) (Bellfruit) (Adder 5) (set 1)", + "ad5rsclbg", "Random Spinner Club (PR1826, BFGPRNDN) (Bellfruit) (Adder 5) (set 1)", + "ad5rsclbh", "Random Spinner Club (PR1826, BFGPRNDN) (Bellfruit) (Adder 5) (set 2)", + "ad5rsclbi", "Random Spinner Club (PR1669, BFGPRNDN) (Bellfruit) (Adder 5) (set 2)", + "ad5rsclbj", "Random Spinner Club (PR1669, BFGPRNDN) (Bellfruit) (Adder 5) (set 3)", + "ad5rsnw", "Random Spin 'n' Win (PR2226, MAZNRNDN) (Mazooma) (Adder 5) (set 1)", + "ad5rsnwa", "Random Spin 'n' Win (PR2226, MAZNRNDN) (Mazooma) (Adder 5) (set 2)", + "ad5rsnwb", "Random Spin 'n' Win (PR2226, MAZPRNDN) (Mazooma) (Adder 5) (set 1)", + "ad5rsnwc", "Random Spin 'n' Win (PR2226, MAZPRNDN) (Mazooma) (Adder 5) (set 2)", + "ad5rspin", "Random Spinner (PR1669, BFGNRNDN) (Bellfruit) (Adder 5) (set 1)", + "ad5rspinb", "Random Spinner (PR1669, BFGPRNDN) (Bellfruit) (Adder 5) (set 2)", + "ad5rspinc", "Random Spinner (Bellfruit) (Adder 5) (set 1)", + "ad5rsrm", "Ronnie O'Sullivan's Rocket Money (Bellfruit) (Adder 5) (set 1)", + "ad5rsrma", "Ronnie O'Sullivan's Rocket Money (Bellfruit) (Adder 5) (set 2)", + "ad5rsrr", "Ronnie O'Sullivan's Rocket Money (Bellfruit) (Adder 5) (set 3)", + "ad5rsrra", "Ronnie O'Sullivan's Rocket Money (Bellfruit) (Adder 5) (set 4)", + "ad5rwclb", "Random Winner Club (PR1756, BFGNRWSX) (Bellfruit) (Adder 5) (set 1)", + "ad5rwclba", "Random Winner Club (PR1756, BFGNRWSX) (Bellfruit) (Adder 5) (set 2)", + "ad5rwclbb", "Random Winner Club (PR1756, BFGPRWSX) (Bellfruit) (Adder 5) (set 1)", + "ad5rwclbc", "Random Winner Club (PR1756, BFGPRWSX) (Bellfruit) (Adder 5) (set 2)", + "ad5rwclbd", "Random Winner Club (PR1757, BFGPRWCL) (Bellfruit) (Adder 5)", + "ad5rwclbe", "Random Winner Club (PR1757, BFGNRWCL) (Bellfruit) (Adder 5)", + "ad5sslam", "Super Slam (Bellfruit) (Adder 5) (set 1)", + "ad5sslama", "Super Slam (Bellfruit) (Adder 5) (set 2)", + "ad5sslamb", "Super Slam (Bellfruit) (Adder 5) (set 3)", + "ad5sslamc", "Super Slam (Bellfruit) (Adder 5) (set 4)", + "ad5sslamd", "Super Slam (Bellfruit) (Adder 5) (set 5)", + "ad5sslame", "Super Slam (Bellfruit) (Adder 5) (set 6)", + "ad5sslamf", "Super Slam (Bellfruit) (Adder 5) (set 7)", + "ad5tornc", "Tornado Club (PR1629, 5.5, rv 8, BFGNTORD) (Bellfruit) (Adder 5)", + "ad5tornca", "Tornado Club (PR1629, 5.8, rv 7, BFGNTORD) (Bellfruit) (Adder 5)", + "ad5torncb", "Tornado Club (PR1629, 5.5, rv 8, BFGPTORD) (Bellfruit) (Adder 5)", + "ad5torncc", "Tornado Club (PR1629, 5.8, rv 7, BFGPTORD) (Bellfruit) (Adder 5)", + "ad5torncd", "Tornado Club (PR1627, 0.1, rv 1, BFGPTORN) (Bellfruit) (Adder 5)", + "ad5tornce", "Tornado Club (PR1627, 0.1, rv 1, BFGNTORN) (Bellfruit) (Adder 5)", + "ad5vlv", "Viva Las Vegas (Bellfruit) (Adder 5) (set 1)", + "ad5vlvb", "Viva Las Vegas (Bellfruit) (Adder 5) (set 2)", + "ad5vlvc", "Viva Las Vegas (Bellfruit) (Adder 5) (set 3)", + "ad5vlvd", "Viva Las Vegas (Bellfruit) (Adder 5) (set 4)", + "ad5vlve", "Viva Las Vegas (Bellfruit) (Adder 5) (set 5)", + "ad5vlvf", "Viva Las Vegas (Bellfruit) (Adder 5) (set 6)", + "ad5vpa", "Video Poker Ace (Bellfruit) (Adder 5) (set 1)", + "ad5vpaa", "Video Poker Ace (Bellfruit) (Adder 5) (set 2)", + "ad5vpab", "Video Poker Ace (Bellfruit) (Adder 5) (set 3)", + "ad5vpac", "Video Poker Ace (Bellfruit) (Adder 5) (set 4)", + "adillor", "Armadillo Racing (Rev. AM1 Ver.A)", + "adonis", "Adonis (0200751V, NSW/ACT)", + "adults", "Adults Only (Russia) (Extrema)", + "aerfboo2", "Aero Fighters (bootleg set 2)", + "aerfboot", "Aero Fighters (bootleg set 1)", + "aeroboto", "Aeroboto", + "aerofgt", "Aero Fighters (World / USA + Canada / Korea / Hong Kong / Taiwan) (newer hardware)", + "aerofgtb", "Aero Fighters (Taiwan / Japan, set 1)", + "aerofgtc", "Aero Fighters (Taiwan / Japan, set 2)", + "aerofgts", "Aero Fighters Special (Taiwan)", + "aerolitos", "Aerolitos (Spanish bootleg of Asteroids)", + "afighter", "Action Fighter (FD1089A 317-0018)", + "afire", "Astro Fire", + "afm_10", "Attack From Mars (1.0)", + "afm_11", "Attack From Mars (1.1)", + "afm_113", "Attack From Mars (1.13)", + "afm_113b", "Attack From Mars (1.13b)", + "afm_11u", "Attack From Mars (1.1 Ultrapin)", + "aftor", "Af-Tor", + "afv_l4", "Addams Family Values (Coin Dropper L-4)", + "agallet", "Air Gallet (Europe)", + "agalleth", "Air Gallet (Hong Kong)", + "agalletj", "Akuu Gallet (Japan)", + "agalletk", "Air Gallet (Korea)", + "agallett", "Air Gallet (Taiwan)", + "agalletu", "Air Gallet (USA)", + "agent777", "Agents 777", + "agentx1", "Agent X (prototype, rev 1)", + "agentx2", "Agent X (prototype, rev 2)", + "agentx3", "Agent X (prototype, rev 3)", + "agentx4", "Agent X (prototype, rev 4)", + "agress", "Agress - Missile Daisenryaku (Japan)", + "agressb", "Agress - Missile Daisenryaku (English bootleg)", + "agsoccer", "A.G. Soccer Ball", + "ainferno", "Air Inferno (US)", + "ainfernoj", "Air Inferno (Japan)", + "airass", "Air Assault (World)", + "airattck", "Air Attack (set 1)", + "airattcka", "Air Attack (set 2)", + "airbustr", "Air Buster: Trouble Specialty Raid Unit (World)", + "airbustrb", "Air Buster: Trouble Specialty Raid Unit (bootleg)", + "airbustrj", "Air Buster: Trouble Specialty Raid Unit (Japan)", + "airco22b", "Air Combat 22 (Rev. ACS1 Ver.B, Japan)", + "aircomb", "Air Combat (US)", + "aircombj", "Air Combat (Japan)", + "airduel", "Air Duel (Japan)", + "airlbios", "Naomi Airline Pilots Deluxe Bios", + "airrace", "Air Race (prototype)", + "airraid", "Air Raid (encrypted)", + "airtrix", "Air Trix", + "airwolf", "Airwolf", + "airwolfa", "Airwolf (US)", + "ajax", "Ajax", + "ajaxj", "Ajax (Japan)", + "akamaru", "Panel & Variety Akamaru Q Jousyou Dont-R", + "aking", "Angler King (AG1 Ver. A)", + "akiss", "Mahjong Angel Kiss", + "akkanvdr", "Akkanbeder (Ver 2.5J 1995/06/14)", + "akumajou", "Akuma-Jou Dracula (Japan version P)", + "akumajoun", "Akuma-Jou Dracula (Japan version N)", + "aladmdb", "Aladdin (bootleg of Japanese Megadrive version)", + "albatross", "Albatross (US Prototype?)", + "alcapone", "Al Capone", + "alcat_l7", "Alley Cats (Shuffle) (L-7)", + "alcon", "Alcon (US)", + "aleck64", "Aleck64 PIF BIOS", + "alexkidd", "Alex Kidd: The Lost Stars (set 2, unprotected)", + "alexkidd1", "Alex Kidd: The Lost Stars (set 1, FD1089A 317-0021)", + "alg_bios", "American Laser Games BIOS", + "algar_l1", "Algar (L-1)", + "ali", "Ali", + "alibaba", "Ali Baba and 40 Thieves", + "alibabab", "Mustafa and 40 Thieves (bootleg)", + "alien", "Alien: The Arcade Medal Edition", + "alien3", "Alien3: The Gun (World)", + "alien3u", "Alien3: The Gun (US)", + "alienar", "Alien Arena", + "alienaru", "Alien Arena (Stargate upgrade)", + "aliencha", "Alien Challenge (World)", + "alienchac", "Alien Challenge (China)", + "aliencr", "Alien Crush", + "alienfnt", "Alien Front (Rev T)", + "alienfnta", "Alien Front (Rev A)", + "alieninv", "Alien Invasion", + "alieninvp2", "Alien Invasion Part II", + "aliens", "Aliens (World set 1)", + "aliens2", "Aliens (World set 2)", + "aliens3", "Aliens (World set 3)", + "aliensa", "Aliens (Asia)", + "aliensec", "Alien Sector", + "aliensj", "Aliens (Japan set 1)", + "aliensj2", "Aliens (Japan set 2)", + "alienstr", "Alien Star", + "aliensu", "Aliens (US)", + "aliensyn", "Alien Syndrome (set 4, System 16B, unprotected)", + "aliensyn2", "Alien Syndrome (set 2, System 16A, FD1089A 317-0033)", + "aliensyn3", "Alien Syndrome (set 3, System 16B, FD1089A 317-0033)", + "aliensyn5", "Alien Syndrome (set 5, System 16A, FD1089B 317-0037)", + "aliensyn7", "Alien Syndrome (set 7, System 16B, MC-8123B 317-00xx)", + "aliensynj", "Alien Syndrome (set 6, Japan, new, System 16B, FD1089A 317-0033)", + "aliensynjo", "Alien Syndrome (set 1, Japan, old, System 16A, FD1089A 317-0033)", + "aligator", "Alligator Hunt", + "aligatorun", "Alligator Hunt (unprotected)", + "alleymas", "Alley Master", + "allied", "Allied System", + "alpha1v", "Alpha One (Vision Electronics)", + "alphaho", "Alpha Fighter / Head On", + "alpham2", "Alpha Mission II / ASO II - Last Guardian (NGM-007)(NGH-007)", + "alpham2p", "Alpha Mission II / ASO II - Last Guardian (prototype)", + "alphamis", "Alpha Mission", + "alphaone", "Alpha One (prototype, 3 lives)", + "alphaonea", "Alpha One (prototype, 5 lives)", + "alphaxz", "The Alphax Z (Japan)", + "alpilota", "Airline Pilots (Rev A)", + "alpiltdx", "Airline Pilots Deluxe (Rev B)", + "alpine", "Alpine Ski (set 1)", + "alpinea", "Alpine Ski (set 2)", + "alpinerc", "Alpine Racer (Rev. AR2 Ver.C)", + "alpinerd", "Alpine Racer (Rev. AR2 Ver.D)", + "alpinesa", "Alpine Surfer (Rev. AF2 Ver.A)", + "alpinr2a", "Alpine Racer 2 (Rev. ARS2 Ver.A)", + "alpinr2b", "Alpine Racer 2 (Rev. ARS2 Ver.B)", + "alpok_f6", "Alien Poker (L-6 French speech)", + "alpok_l2", "Alien Poker (L-2)", + "alpok_l6", "Alien Poker (L-6)", + "altair", "Altair", + "altbeast", "Altered Beast (set 8, 8751 317-0078)", + "altbeast2", "Altered Beast (set 2, MC-8123B 317-0066)", + "altbeast4", "Altered Beast (set 4, MC-8123B 317-0066)", + "altbeast5", "Altered Beast (set 5, FD1094 317-0069)", + "altbeast6", "Altered Beast (set 6, 8751 317-0076)", + "altbeastbl", "Altered Beast (Datsu bootleg)", + "altbeastj", "Juuouki (set 7, Japan, 8751 317-0077)", + "altbeastj1", "Juuouki (set 1, Japan, FD1094 317-0065)", + "altbeastj3", "Juuouki (set 3, Japan, FD1094 317-0068)", + "am_mg24", "Multi Game I (V.Ger 2.4)", + "am_mg3", "Multi Game III (V.Ger 3.5)", + "am_mg31i", "Multi Game III (S.Ita 3.1)", + "am_mg33i", "Multi Game III (S.Ita 3.3)", + "am_mg34i", "Multi Game III (S.Ita 3.4)", + "am_mg35i", "Multi Game III (S.Ita 3.5)", + "am_mg3a", "Multi Game III (V.Ger 3.64)", + "amatelas", "Sei Senshi Amatelass", + "amazon", "Soldier Girl Amazon", + "amazonh", "Amazon Hunt", + "ambush", "Ambush", + "ambushh", "Ambush (hack?)", + "ambushj", "Ambush (Japan)", + "ambushv", "Ambush (Volt Electronics)", + "amclink", "Amcoe Link Control Box (Version 2.2)", + "amerdart", "AmeriDarts (set 1)", + "amerdart2", "AmeriDarts (set 2)", + "amerdart3", "AmeriDarts (set 3)", + "america", "America 1492", + "amidar", "Amidar", + "amidar1", "Amidar (older)", + "amidarb", "Amidar (bootleg)", + "amidaro", "Amidar (Olympia)", + "amidars", "Amidar (Scramble hardware)", + "amidaru", "Amidar (Stern Electronics)", + "amigo", "Amigo", + "ampkr228", "American Poker II (iamp2 v28)", + "ampkr2b1", "American Poker II (bootleg, set 1)", + "ampkr2b2", "American Poker II (bootleg, set 2)", + "ampkr2b3", "American Poker II (bootleg, set 3)", + "ampkr2b4", "American Poker II (bootleg, set 4)", + "ampkr95", "American Poker 95", + "ampoker2", "American Poker II", + "amspdwy", "American Speedway (set 1)", + "amspdwya", "American Speedway (set 2)", + "amusco", "American Music Poker (V1.4)", + "amuse", "Amuse (Version 50.08 IBA)", + "amuse1", "Amuse (Version 30.08 IBA)", + "ancienta", "Ancient Atlantis (set 1)", + "ancientaa", "Ancient Atlantis (set 2)", + "ancientab", "Ancient Atlantis (set 3)", + "ancientac", "Ancient Atlantis (set 4)", + "ancientad", "Ancient Atlantis (set 5)", + "andretti", "Mario Andretti", + "andretti4", "Mario Andretti (rev.T4)", + "androdun", "Andro Dunos (NGM-049)(NGH-049)", + "andromed", "Andromeda (Japan?)", + "andromep", "Andromeda (set 1)", + "andromepa", "Andromeda (set 2)", + "angelkds", "Angel Kids (Japan)", + "anibonus", "Animal Bonus (Version 1.8E Dual)", + "anibonusb1", "Animal Bonus (Version 1.7R, set 1)", + "anibonusb2", "Animal Bonus (Version 1.7LT, set 1)", + "anibonusd1", "Animal Bonus (Version 1.7R, set 2)", + "anibonusd2", "Animal Bonus (Version 1.7LT, set 2)", + "anibonuso", "Animal Bonus (Version 1.5)", + "anibonuso2", "Animal Bonus (Version 1.4, set 1)", + "anibonuso3", "Animal Bonus (Version 1.4, set 2)", + "anibonusv1", "Animal Bonus (Version 1.8R Dual)", + "anibonusv2", "Animal Bonus (Version 1.8LT Dual)", + "anibonusxo", "Animal Bonus (Version 1.50XT)", + "anibonusxo2", "Animal Bonus (Version 1.40XT, set 1)", + "anibonusxo3", "Animal Bonus (Version 1.40XT, set 2)", + "animalc", "Animal Catch", + "animaljr", "Exciting Animal Land Jr. (USA)", + "animaljrj", "Waiwai Animal Land Jr. (Japan)", + "animaljrs", "Animalandia Jr. (Spanish)", + "anithunt", "Animal Treasure Hunt (Version 1.9R, set 1)", + "anithuntd1", "Animal Treasure Hunt (Version 1.9R, set 2)", + "anithunto", "Animal Treasure Hunt (Version 1.7)", + "anithunto2", "Animal Treasure Hunt (Version 1.5)", + "anithuntv1", "Animal Treasure Hunt (Version 1.9R Dual)", + "anmlbskt", "Animal Basket", + "antar", "Antar (set 1)", + "antar2", "Antar (set 2)", + "antcleo", "Antony and Cleopatra (10177211, Malaysia)", + "anteater", "Anteater", + "anteaterg", "Ameisenbaer (German)", + "anteateruk", "The Anteater (UK)", + "antiairc", "Anti-Aircraft [TTL]", + "aodk", "Aggressors of Dark Kombat / Tsuukai GANGAN Koushinkyoku (ADM-008)(ADH-008)", + "aof", "Art of Fighting / Ryuuko no Ken (NGM-044)(NGH-044)", + "aof2", "Art of Fighting 2 / Ryuuko no Ken 2 (NGM-056)", + "aof2a", "Art of Fighting 2 / Ryuuko no Ken 2 (NGH-056)", + "aof3", "Art of Fighting 3 - The Path of the Warrior / Art of Fighting - Ryuuko no Ken Gaiden", + "aof3k", "Art of Fighting 3 - The Path of the Warrior (Korean release)", + "aoh", "Age Of Heroes - Silkroad 2 (v0.63 - 2001/02/07)", + "apache3", "Apache 3", + "apache3a", "Apache 3 (Kana Corporation license)", + "apb", "APB - All Points Bulletin (rev 7)", + "apb1", "APB - All Points Bulletin (rev 1)", + "apb2", "APB - All Points Bulletin (rev 2)", + "apb3", "APB - All Points Bulletin (rev 3)", + "apb4", "APB - All Points Bulletin (rev 4)", + "apb5", "APB - All Points Bulletin (rev 5)", + "apb6", "APB - All Points Bulletin (rev 6)", + "apbf", "APB - All Points Bulletin (French)", + "apbg", "APB - All Points Bulletin (German)", + "aplatoon", "Platoon V.?.? US", + "apollo13", "Apollo 13", + "aponow", "Apocaljpse Now (bootleg of Rescue)", + "apparel", "Apparel Night (Japan 860929)", + "apple10", "Apple 10 (Ver 1.21)", + "appoooh", "Appoooh", + "aquajack", "Aqua Jack (World)", + "aquajackj", "Aqua Jack (Japan)", + "aquajacku", "Aqua Jack (US)", + "aquajet", "Aqua Jet (Rev. AJ2 Ver.B)", + "aqualand", "Aqualand", + "aquarium", "Aquarium (Japan)", + "aquarush", "Aqua Rush (Japan, AQ1/VER.A1)", + "ar_airh", "SportTime Table Hockey (Arcadia, set 1, V 2.1)", + "ar_airh2", "SportTime Table Hockey (Arcadia, set 2)", + "ar_argh", "Aaargh (Arcadia)", + "ar_bios", "Arcadia System BIOS", + "ar_blast", "Blastaball (Arcadia, V 2.1)", + "ar_bowl", "SportTime Bowling (Arcadia, V 2.1)", + "ar_dart", "World Darts (Arcadia, set 1, V 2.1)", + "ar_dart2", "World Darts (Arcadia, set 2)", + "ar_dlta", "Delta Command (Arcadia)", + "ar_fast", "Magic Johnson's Fast Break (Arcadia, V 2.8)", + "ar_fasta", "Magic Johnson's Fast Break (Arcadia, V 2.7)", + "ar_ldrb", "Leader Board (Arcadia, set 1, V 2.5)", + "ar_ldrba", "Leader Board (Arcadia, set 2, V 2.4)", + "ar_ldrbb", "Leader Board (Arcadia, set 3)", + "ar_ninj", "Ninja Mission (Arcadia, set 1, V 2.5)", + "ar_ninj2", "Ninja Mission (Arcadia, set 2)", + "ar_pm", "Pharaohs Match (Arcadia)", + "ar_rdwr", "RoadWars (Arcadia, V 2.3)", + "ar_sdwr", "Sidewinder (Arcadia, set 1, V 2.1)", + "ar_sdwr2", "Sidewinder (Arcadia, set 2)", + "ar_socc", "World Trophy Soccer (Arcadia, V 3.0)", + "ar_spot", "Spot (Arcadia, V 2.0)", + "ar_sprg", "Space Ranger (Arcadia, V 2.0)", + "ar_xeon", "Xenon (Arcadia, V 2.3)", + "arabfgt", "Arabian Fight (World)", + "arabfgtj", "Arabian Fight (Japan)", + "arabfgtu", "Arabian Fight (US)", + "arabian", "Arabian", + "arabiana", "Arabian (Atari)", + "arabianm", "Arabian Magic (Ver 1.0O 1992/07/06)", + "arabianmj", "Arabian Magic (Ver 1.0J 1992/07/06)", + "arabianmu", "Arabian Magic (Ver 1.0A 1992/07/06)", + "arac6000", "Super Six Plus II English Mark Darts", + "aracnis", "Aracnis (bootleg of Scorpion on Moon Cresta hardware)", + "arbalest", "Arbalester", + "arcadecl", "Arcade Classics (prototype)", + "arcadian", "Arcadia (NMK)", + "archrivl", "Arch Rivals (rev 4.0 6/29/89)", + "archrivla", "Arch Rivals (rev 2.0 5/03/89)", + "archrivlb", "Arch Rivals (rev 2.0 5/03/89, 8-way Joystick bootleg)", + "arctthnd", "Arctic Thunder (v1.002)", + "arctthndult", "Ultimate Arctic Thunder", + "arcwins", "Arctic Wins (4XF5227H03, USA)", + "area51", "Area 51 (R3000)", + "area51a", "Area 51 (Atari Games license)", + "area51mx", "Area 51 / Maximum Force Duo v2.0", + "area51t", "Area 51 (Time Warner license)", + "area88", "Area 88 (Japan)", + "area88r", "Area 88 (Japan Resale Ver.)", + "arena", "Arena", + "arescue", "Air Rescue", + "argus", "Argus", + "argusg", "Argus (Gottlieb, prototype)", + "arian", "Arian Mission", + "arist_l1", "Aristocrat (Shuffle) (L-1)", + "aristmk5", "MKV Set/Clear Chips (USA)", + "aristmk6", "Aristocrat MK6 Base (15011025, Malaysia)", + "ark1ball", "Arkanoid (bootleg with MCU, harder)", + "arkangc", "Arkanoid (Game Corporation bootleg, set 1)", + "arkangc2", "Arkanoid (Game Corporation bootleg, set 2)", + "arkanoid", "Arkanoid (World)", + "arkanoidj", "Arkanoid (Japan)", + "arkanoidjb", "Arkanoid (bootleg with MCU, set 1)", + "arkanoidjb2", "Arkanoid (bootleg with MCU, set 2)", + "arkanoidjo", "Arkanoid (Japan, older)", + "arkanoidu", "Arkanoid (US)", + "arkanoiduo", "Arkanoid (US, older)", + "arkarea", "Ark Area", + "arkatayt", "Arkanoid (Tayto bootleg)", + "arkatour", "Tournament Arkanoid (US)", + "arkbloc2", "Block (Game Corporation bootleg, set 2)", + "arkbloc3", "Block (Game Corporation bootleg, set 3)", + "arkblock", "Block (Game Corporation bootleg, set 1)", + "arkgcbl", "Arkanoid (bootleg on Block hardware, set 1)", + "arkgcbla", "Arkanoid (bootleg on Block hardware, set 2)", + "arknoid2", "Arkanoid - Revenge of DOH (World)", + "arknoid2b", "Arkanoid - Revenge of DOH (Japan bootleg)", + "arknoid2j", "Arkanoid - Revenge of DOH (Japan)", + "arknoid2u", "Arkanoid - Revenge of DOH (US)", + "arkretrn", "Arkanoid Returns (Ver 2.02O 1997/02/10)", + "arkretrnj", "Arkanoid Returns (Ver 2.02J 1997/02/10)", + "arktayt2", "Arkanoid (Tayto bootleg, harder)", + "arlingtn", "Arlington Horse Racing (v1.21-D)", + "armchmp2", "Arm Champs II v2.6", + "armchmp2o", "Arm Champs II v1.7", + "armedf", "Armed Formation", + "armedff", "Armed Formation (Fillmore license)", + "armora", "Armor Attack", + "armorap", "Armor Attack (prototype)", + "armorar", "Armor Attack (Rock-Ola)", + "armorcar", "Armored Car (set 1)", + "armorcar2", "Armored Car (set 2)", + "armwar", "Armored Warriors (Euro 941024)", + "armwar1d", "Armored Warriors (Euro 941011 Phoenix Edition) (bootleg)", + "armwara", "Armored Warriors (Asia 940920)", + "armwarr1", "Armored Warriors (Euro 941011)", + "armwaru", "Armored Warriors (USA 941024)", + "armwaru1", "Armored Warriors (USA 940920)", + "armwrest", "Arm Wrestling", + "as_acp", "unknown Astra 'ACP' (Astra, V403)", + "as_bbr", "Bullion Bars (Astra, V101)", + "as_bbra", "Bullion Bars (Astra, V102,alt)", + "as_bbrb", "Bullion Bars (Astra, V201)", + "as_bbrc", "Bullion Bars (Astra, V003)", + "as_bbrd", "Bullion Bars (Astra, V102)", + "as_bbre", "Bullion Bars (Astra, V105)", + "as_bbrf", "Bullion Bars (Astra, V004)", + "as_big10", "Big 10 (Astra, V500)", + "as_big10a", "Big 10 (Astra, V503)", + "as_big10b", "Big 10 (Astra, V507)", + "as_big10c", "Big 10 (Astra, V601)", + "as_big10d", "Big 10 (Astra, V605)", + "as_big15", "Big 15 (Astra, V101)", + "as_bigcs", "Big Cash (Astra, V101)", + "as_bigcsa", "Big Cash (Astra, V103)", + "as_bigtm", "Big Time (Astra, V003)", + "as_celeb", "Celebration (Astra, V100)", + "as_celeba", "Celebration (Astra, V101)", + "as_celebb", "Celebration (Astra, V201)", + "as_colmn", "Colour Of Money (Astra, V200)", + "as_colmna", "Colour Of Money (Astra, V107)", + "as_colmnb", "Colour Of Money (Astra, V108)", + "as_colmnc", "Colour Of Money (Astra, V109)", + "as_colmnd", "Colour Of Money (Astra, V908)", + "as_cshah", "Cash Ahoi (Lowen, V105)", + "as_cshcs", "Cash Castle (Lowen, V006)", + "as_csv", "Slot Slant (?) (Astra, V202)", + "as_dblcs", "Double Cash (Astra, V110)", + "as_dblcsa", "Double Cash (Astra, V112)", + "as_dblcsb", "Double Cash (Astra, V108)", + "as_dblcsc", "Double Cash (Astra, V109)", + "as_dblcsd", "Double Cash (Astra, V106)", + "as_dblcse", "Double Cash (Astra, V102)", + "as_dblcsf", "Double Cash (Astra, V100)", + "as_dblcsg", "Double Cash (Astra, V100, alt)", + "as_dblcsh", "Double Cash (Astra, V004)", + "as_djp", "Double Jackpot (Astra, V107)", + "as_djpa", "Double Jackpot (Astra, V004)", + "as_djpb", "Double Jackpot (Astra, V109)", + "as_fortn", "Fortune Teller (Astra, V009)", + "as_gof", "Game Of Fortune (Lowen, V208)", + "as_hc", "Hokey Cokey (Astra, V107)", + "as_hca", "Hokey Cokey (Astra, V109)", + "as_hcb", "Hokey Cokey (Astra, V110)", + "as_hcc", "Hokey Cokey (Astra, V111)", + "as_hcd", "Hokey Cokey (Astra, V909)", + "as_hog", "Hearts Of Gold (Astra, V002)", + "as_hr", "Hot Reel (Astra, V004)", + "as_hxr", "Hot Cross Run (Astra, V108)", + "as_jackb", "Jackpot Bell (Astra, V104)", + "as_jjive", "Jungle Jive (Astra, V107)", + "as_jjivea", "Jungle Jive (Astra, V106)", + "as_jjiveb", "Jungle Jive (Astra, V104)", + "as_jjivec", "Jungle Jive (Astra, V102)", + "as_jjived", "Jungle Jive (Astra, V101)", + "as_jjivee", "Jungle Jive (Astra, V101, alt)", + "as_jjivef", "Jungle Jive (Astra, V004)", + "as_jjiveg", "Jungle Jive (Astra, V005)", + "as_jmpj", "Jumping Jackpots (Astra, V100)", + "as_jmpja", "Jumping Jackpots (Astra, V102)", + "as_jolly", "Jolly Roger (Astra, V103)", + "as_jpx", "Jackpot X (Astra, V100)", + "as_jpxa", "Jackpot X (Astra, V101)", + "as_jpxb", "Jackpot X (Astra, V002)", + "as_kingc", "King Cash (Astra, V106)", + "as_kingca", "King Cash (Astra, V103)", + "as_koc", "King Of Clubs (Astra, V200)", + "as_koca", "King Of Clubs (Astra, V101)", + "as_lbt", "Little Big 10 (Astra, V103)", + "as_lbta", "Little Big 10 (Astra, V102)", + "as_ldl", "Little Devils (Astra, V700)", + "as_ldla", "Little Devils (Astra, V600)", + "as_ldlb", "Little Devils (Astra, V312)", + "as_ldlc", "Little Devils (Astra, V003)", + "as_ldld", "Little Devils (Astra, V102)", + "as_ldle", "Little Devils (Astra, V103)", + "as_letsp", "Let's Party (Astra, V904)", + "as_mp", "Mission Possible (Lowen, V118)", + "as_mp2", "Mission Possible 2 (Lowen, V114)", + "as_otr", "Over The Rainbow (Astra, V104)", + "as_otra", "Over The Rainbow (Astra, V102)", + "as_party", "Party Time (Astra, V105)", + "as_partya", "Party Time (Astra, V110)", + "as_partyb", "Party Time (Astra, V112)", + "as_partyc", "Party Time (Astra, V206)", + "as_partyd", "Party Time (Astra, V401)", + "as_partye", "Party Time (Astra, V907)", + "as_partyf", "Party Time (Astra, V906)", + "as_pb", "Piggy Banking (Astra, V105)", + "as_pharg", "Pharaoh's Gold (Astra, V005)", + "as_pharga", "Pharaoh's Gold (Astra, V101)", + "as_phargb", "Pharaoh's Gold (Astra, V102)", + "as_phargc", "Pharaoh's Gold (Astra, V104)", + "as_phargd", "Pharaoh's Gold (Astra, V106)", + "as_pharge", "Pharaoh's Gold (Astra, V107)", + "as_pia", "Pay It Again (Astra, V202)", + "as_piaa", "Pay It Again (Astra, V206)", + "as_piab", "Pay It Again (Astra, V904)", + "as_ptf", "Party Fruits (Astra, V102)", + "as_ptfa", "Party Fruits (Astra, V803)", + "as_ptfb", "Party Fruits (Astra, V905)", + "as_ptfc", "Party Fruits (Astra)", + "as_rab", "Ring A Bell (Astra, V105)", + "as_raba", "Ring A Bell (Astra, V106)", + "as_rabb", "Ring A Bell (Astra, V107)", + "as_rabc", "Ring A Bell (Astra, V104)", + "as_rbg", "River Boat Gambler (Astra, V304)", + "as_rbga", "River Boat Gambler (Astra, V303)", + "as_rbgb", "River Boat Gambler (Astra, V104)", + "as_rbgc", "River Boat Gambler (Astra, V102)", + "as_rbgd", "River Boat Gambler (Astra, V101)", + "as_rbge", "River Boat Gambler (Astra, V008)", + "as_rbglo", "River Boat Gambler (Lowen, V106)", + "as_rox", "Roll X (Astra, V006)", + "as_rtr", "Ready To Roll (Astra, V101)", + "as_rtra", "Ready To Roll (Astra, V101, alt 1)", + "as_rtrb", "Ready To Roll (Astra, V101, alt 2)", + "as_rtrc", "Ready To Roll (Astra, V101, alt 3)", + "as_rtrd", "Ready To Roll (Astra, V100, )", + "as_rtre", "Ready To Roll (Astra, V100, alt)", + "as_rtrf", "Ready To Roll (Astra, V200)", + "as_rtrg", "Ready To Roll (Astra, V200, alt)", + "as_rtrh", "Ready To Roll (Astra, V202)", + "as_siu", "Step It Up (Astra, V202)", + "as_siua", "Step It Up (Astra, V203)", + "as_sld", "Super Little Devil (Astra, V700)", + "as_slda", "Super Little Devil (Astra, V600)", + "as_sldb", "Super Little Devil (Astra, V500)", + "as_sldc", "Super Little Devil (Astra, V400)", + "as_sldd", "Super Little Devil (Astra, V200)", + "as_slde", "Super Little Devil (Astra, V101)", + "as_sltcl", "Slots Classic (?) (Astra)", + "as_srb", "Super Ring a Bell (Astra, V004)", + "as_srba", "Super Ring a Bell (Astra, V100)", + "as_srbb", "Super Ring a Bell (Astra, V101)", + "as_srbc", "Super Ring a Bell (Astra, V201)", + "as_srbd", "Super Ring a Bell (Astra, V202)", + "as_srbe", "Super Ring a Bell (Astra, V203)", + "as_stp", "Stampede (Astra, V103)", + "as_stpa", "Stampede (Astra, V102)", + "as_stpb", "Stampede (Astra, V105)", + "as_tbl", "Triple Bells (Astra, V104)", + "as_tbla", "Triple Bells (Astra, V105)", + "as_tblb", "Triple Bells (Astra, V106)", + "as_tblc", "Triple Bells (Astra, V103)", + "as_tbld", "Triple Bells (Astra, V304)", + "as_tble", "Triple Bells (Astra, V303)", + "as_tblf", "Triple Bells (Astra, V301)", + "as_td", "Twin Dragons (Astra, V103)", + "as_tem", "Temptation (Astra, V101)", + "as_tema", "Temptation (Astra, V006)", + "as_topsl", "Top Slot (Astra, V103)", + "as_topsla", "Top Slot (Astra, V104)", + "as_topslb", "Top Slot (Astra, V201)", + "as_topslc", "Top Slot (Astra, V203)", + "as_topsld", "Top Slot (Astra, V205)", + "as_twp", "Twin Pots (Astra, V106)", + "as_twpa", "Twin Pots (Astra, V104)", + "as_vcv", "Viva Cash Vegas (Astra, V005)", + "as_vcva", "Viva Cash Vegas (Astra, V107)", + "as_vcvb", "Viva Cash Vegas (Astra, V106)", + "as_vcvc", "Viva Cash Vegas (Astra, V104)", + "as_vcvd", "Viva Cash Vegas (Astra, V102)", + "as_vcve", "Viva Cash Vegas (Astra, V101)", + "as_vn", "Vegas Nights (Astra, V205)", + "as_ws", "Win Streak (Astra, V100)", + "as_ww", "Wicked Willy (Astra, V203)", + "as_wwa", "Wicked Willy (Astra, V204)", + "as_wwb", "Wicked Willy (Astra, V205)", + "as_wwc", "Wicked Willy (Astra, V104)", + "as_wwd", "Wicked Willy (Astra, V103)", + "as_wwe", "Wicked Willy (Astra, V102)", + "ashnojoe", "Ashita no Joe (Japan)", + "ashura", "Ashura Blaster (World)", + "ashuraj", "Ashura Blaster (Japan)", + "ashurau", "Ashura Blaster (US)", + "asideral", "Ataque Sideral (Spanish bootleg of UniWar S)", + "asndynmt", "Asian Dynamite", + "aso", "ASO - Armored Scrum Object", + "asoccer", "American Soccer", + "assault", "Assault (Rev B)", + "assaultj", "Assault (Japan)", + "assaultp", "Assault Plus (Japan)", + "astannie", "Asteroid Annie and the Aliens", + "astdelux", "Asteroids Deluxe (rev 3)", + "astdelux1", "Asteroids Deluxe (rev 1)", + "astdelux2", "Asteroids Deluxe (rev 2)", + "asterix", "Asterix (ver EAD)", + "asterixaad", "Asterix (ver AAD)", + "asterixeaa", "Asterix (ver EAA)", + "asterixeac", "Asterix (ver EAC)", + "asterixj", "Asterix (ver JAD)", + "asterock", "Asterock (Sidam bootleg of Asteroids)", + "asterockv", "Asterock (Videotron bootleg of Asteroids)", + "asteroid", "Asteroids (rev 4)", + "asteroid1", "Asteroids (rev 1)", + "asteroid2", "Asteroids (rev 2)", + "asteroidb", "Asteroids (bootleg on Lunar Lander hardware)", + "astinvad", "Astro Invader", + "astoneag", "Stone Age (Astro, Ver. ENG.03.A)", + "astorm", "Alien Storm (World, 2 Players, FD1094 317-0154)", + "astorm3", "Alien Storm (World, 3 Players, FD1094 317-0148)", + "astormb2", "Alien Storm (bootleg, set 2)", + "astormbl", "Alien Storm (bootleg, set 1)", + "astormj", "Alien Storm (Japan, 2 Players, FD1094 317-0146)", + "astormu", "Alien Storm (US, 3 Players, FD1094 317-0147)", + "astrass", "Astra SuperStars (J 980514 V1.002)", + "astrians", "Astrians (clone of Swarm)", + "astrob", "Astro Blaster (version 3)", + "astrob1", "Astro Blaster (version 1)", + "astrob2", "Astro Blaster (version 2)", + "astrob2a", "Astro Blaster (version 2a)", + "astrobg", "Astro Blaster (German)", + "astrof", "Astro Fighter (set 1)", + "astrof2", "Astro Fighter (set 2)", + "astrof3", "Astro Fighter (set 3)", + "astrofl", "Astro Flash (Japan)", + "astron", "Astron Belt", + "astronp", "Astron Belt (Pioneer LDV1000)", + "astropal", "Astropal", + "astrowar", "Astro Wars", + "astyanax", "The Astyanax", + "asuka", "Asuka & Asuka (World)", + "asukaj", "Asuka & Asuka (Japan)", + "asurabld", "Asura Blade - Sword of Dynasty (Japan)", + "asurabus", "Asura Buster - Eternal Warriors (Japan)", + "asylum", "Asylum (prototype)", + "atamanot", "Computer Quiz Atama no Taisou (Japan)", + "atarians", "The Atarians", + "atarifb", "Atari Football (revision 2)", + "atarifb1", "Atari Football (revision 1)", + "atarifb4", "Atari Football (4 players)", + "atarisy1", "Atari System 1 BIOS", + "ataxx", "Ataxx (set 1)", + "ataxxa", "Ataxx (set 2)", + "ataxxe", "Ataxx (Europe)", + "ataxxj", "Ataxx (Japan)", + "atehate", "Athena no Hatena ?", + "atetris", "Tetris (set 1)", + "atetrisa", "Tetris (set 2)", + "atetrisb", "Tetris (bootleg set 1)", + "atetrisb2", "Tetris (bootleg set 2)", + "atetrisc", "Tetris (cocktail set 1)", + "atetrisc2", "Tetris (cocktail set 2)", + "athena", "Athena", + "atla_ltd", "Atlantis (LTD)", + "atlantca", "Atlantica (Russia) (Atronic) (set 1)", + "atlantcaa", "Atlantica (Russia) (Atronic) (set 2)", + "atlantip", "Atlantis", + "atlantis", "Battle of Atlantis (set 1)", + "atlantis2", "Battle of Atlantis (set 2)", + "atlantisb", "Battle of Atlantis (bootleg)", + "atlantol", "Atlant Olimpic", + "atleta", "Atleta", + "atluspsx", "Atlus PSX", + "atombjt", "Atom (bootleg of Bombjack Twin)", + "atomboy", "Atomic Boy (revision B)", + "atomboya", "Atomic Boy (revision A)", + "atomicp", "Atomic Point (Korea)", + "atompunk", "Atomic Punk (US)", + "atpsx", "Atari PSX", + "atronic", "Atronic SetUp/Clear Chips (Russia, set 1)", + "atronica", "Atronic SetUp/Clear Chips (Russia, set 2)", + "attack", "Attack", + "attackfc", "Attack Force", + "attckexd", "Attack [TTL]", + "attckufo", "Attack Ufo", + "attila", "Attila The Hun", + "atvtrack", "ATV Track (set 1)", + "atvtracka", "ATV Track (set 2)", + "atworld", "Around The World (Version 1.4R CGA)", + "atworldd1", "Around The World (Version 1.3R CGA)", + "atworlde1", "Around The World (Version 1.3E CGA)", + "aurail", "Aurail (set 3, US, unprotected)", + "aurail1", "Aurail (set 2, World, FD1089B 317-0168)", + "aurailj", "Aurail (set 1, Japan, FD1089A 317-0167)", + "ausfache", "Akatsuki Blitzkampf Ausf Achse", + "aust201", "Austin Powers (2.01)", + "aust300", "Austin Powers (3.00)", + "aust301", "Austin Powers (3.01)", + "austin", "Austin Powers (3.02)", + "austinf", "Austin Powers (France)", + "austing", "Austin Powers (Germany)", + "austini", "Austin Powers (Italy)", + "austnew", "Austin Powers (ARM7 Sound Board)", + "autmoon", "Autumn Moon (1VXFC5488, New Zealand)", + "automat", "Automat (bootleg of Robocop)", + "av2mj1bb", "AV2Mahjong No.1 Bay Bridge no Seijo (Japan)", + "av2mj2rg", "AV2Mahjong No.2 Rouge no Kaori (Japan)", + "avalnche", "Avalanche", + "avalon13", "The Key Of Avalon 1.3 - Chaotic Sabbat (client) (Rev C) (GDT-0010C)", + "avalon20", "The Key Of Avalon 2.0 - Eutaxy and Commandment (client) (Rev B) (GDT-0017B)", + "avalons", "The Key Of Avalon - The Wizard Master (server) (Rev C) (GDT-0005C)", + "avefenix", "Ave Fenix (Spanish bootleg of Phoenix)", + "avenger", "Avenger [TTL]", + "avengers", "Avengers (US set 1)", + "avengers2", "Avengers (US set 2)", + "avengrgs", "Avengers In Galactic Storm (US)", + "avengrgsj", "Avengers In Galactic Storm (Japan)", + "avsp", "Alien vs. Predator (Euro 940520)", + "avspa", "Alien vs. Predator (Asia 940520)", + "avspd", "Alien vs. Predator (Euro 940520 Phoenix Edition) (bootleg)", + "avsph", "Alien vs. Predator (Hispanic 940520)", + "avspirit", "Avenging Spirit", + "avspj", "Alien vs. Predator (Japan 940520)", + "avspu", "Alien vs. Predator (USA 940520)", + "avtbingo", "Arrow Bingo", + "avtnfl", "NFL (ver 109)", + "avtsym14", "Symbols (ver 1.4)", + "avtsym25", "Symbols (ver 2.5)", + "awbios", "Atomiswave Bios", + "aztarac", "Aztarac", + "azumanga", "Azumanga Daioh Puzzle Bobble (GDL-0018)", + "azurian", "Azurian Attack", + "b83catms", "Cat & Mouse (Bellfruit) (System 83)", + "b83cops", "Cops & Robbers (Bellfruit) (System 83)", + "b85bdclb", "Big Deal Club (System 85, set 1)", + "b85bdclba", "Big Deal Club (System 85, set 2)", + "b85bdclbb", "Big Deal Club (System 85, set 3)", + "b85cb7p", "Bar Sevens (Bellfruit) (Protocol) (System 85)", + "b85cblit", "Cash Blitz (System 85, set 1)", + "b85cblita", "Cash Blitz (System 85, set 2)", + "b85cblitb", "Cash Blitz (System 85, set 3)", + "b85cexpl", "Cash Explosion (System 85)", + "b85clbpm", "Club Premier (System 85)", + "b85cops", "Cops 'n' Robbers (Dutch) (Bellfruit) (System 85)", + "b85dbldl", "Double Dealer (System 85, set 1)", + "b85dbldla", "Double Dealer (System 85, set 2)", + "b85dbldlb", "Double Dealer (System 85, set 3)", + "b85disc", "Discovey (Dutch) (Bellfruit) (System 85)", + "b85hilo", "Hi Lo Silver (System 85, set 1)", + "b85hiloa", "Hi Lo Silver (System 85, set 2)", + "b85jkwld", "Jokers Wild (Dutch) (System 85)", + "b85jpclb", "Jackpot Club (System 85, set 1)", + "b85jpclba", "Jackpot Club (System 85, set 2)", + "b85jpclbb", "Jackpot Club (System 85, set 3)", + "b85jpclbc", "Jackpot Club (System 85, set 4)", + "b85koc", "King of Clubs (Bellfruit) (System 85, set 1)", + "b85koca", "King of Clubs (Bellfruit) (System 85, set 2)", + "b85luckd", "Lucky Dice (Dutch) (System 85)", + "b85lucky", "Lucky Cards (Dutch) (System 85)", + "b85potp", "Pick Of The Pack (System 85)", + "b85ritz", "The Ritz (System 85, set 1)", + "b85ritza", "The Ritz (System 85, set 2)", + "b85ritzb", "The Ritz (System 85, set 3)", + "b85ritzc", "The Ritz (System 85, set 4)", + "b85ritzd", "The Ritz (System 85, set 5)", + "b85royal", "The Royal (System 85)", + "b85scard", "Supercards (Dutch, Game Card 39-340-271?) (System 85)", + "b85sngam", "Super Nudge Gambler (System 85)", + "baboshka", "Baboshka (Russia) (Atronic)", + "babydad", "Baby Dado", + "babypac", "Baby Pac-Man (set 1)", + "babypac2", "Baby Pac-Man (set 2)", + "babypkr", "Baby Poker", + "backfire", "Backfire! (set 1)", + "backfirea", "Backfire! (set 2)", + "backfirt", "Back Fire (Tecmo, bootleg)", + "backgamn", "Backgammon", + "baddudes", "Bad Dudes vs. Dragonninja (US)", + "badgirls", "Bad Girls", + "badlands", "Bad Lands", + "badlandsb", "Bad Lands (bootleg)", + "badlandsb2", "Bad Lands (bootleg, alternate)", + "bagman", "Bagman", + "bagmanf", "Bagman (bootleg on Crazy Kong hardware)", + "bagmanm2", "Bagman (bootleg on Moon Cresta hardware, set 2)", + "bagmanmc", "Bagman (bootleg on Moon Cresta hardware, set 1)", + "bagmans", "Bagman (Stern Electronics, set 1)", + "bagmans2", "Bagman (Stern Electronics, set 2)", + "bagnard", "Le Bagnard (set 1)", + "bagnarda", "Le Bagnard (set 2)", + "bagnardi", "Le Bagnard (Itisa, Spain)", + "bakatono", "Bakatonosama Mahjong Manyuuki (MOM-002)(MOH-002)", + "bakubaku", "Baku Baku Animal (J 950407 V1.000)", + "bakubrkr", "Bakuretsu Breaker", + "bakuhatu", "Mahjong Bakuhatsu Junjouden (Japan)", + "bakutotu", "Bakutotsu Kijuutei", + "balcube", "Bal Cube", + "ballbomb", "Balloon Bomber", + "ballboy", "Ball Boy", + "ballbros", "Balloon Brothers", + "balonfgt", "Vs. Balloon Fight (set BF4 A-3)", + "baluba", "Baluba-louk no Densetsu (Japan)", + "bam2", "Bust a Move 2 (Japanese ROM ver. 1999/07/17 10:00:00)", + "bananadr", "Mahjong Banana Dream [BET] (Japan 891124)", + "bananas", "Bananas Go Bahamas (set 1)", + "bananasa", "Bananas Go Bahamas (set 2)", + "banbam", "BanBam", + "bandido", "Bandido", + "bang", "Bang!", + "bangball", "Bang Bang Ball (v1.05)", + "bangbead", "Bang Bead", + "bangj", "Gun Gabacho (Japan)", + "bankp", "Bank Panic", + "bankrob", "Bank Robbery (Ver. 3.32)", + "bankroba", "Bank Robbery (Ver. 2.00)", + "baraduke", "Baraduke", + "barbball", "Barroom Baseball (prototype)", + "barbwire", "Barb Wire", + "barline", "Barline (Japan?)", + "barra_l1", "Barracora (L-1)", + "barricad", "Barricade", + "barrier", "Barrier", + "baryon", "Baryon - Future Assault", + "basebal2", "Baseball: The Season II", + "bass", "Sega Bass Fishing (Japan)", + "bassang2", "Bass Angler 2 (GE865 VER. JAA)", + "bassangl", "Bass Angler (GE765 VER. JAA)", + "basschal", "Sega Bass Fishing Challenge", + "bassdx", "Sega Bass Fishing Deluxe (Japan)", + "batcir", "Battle Circuit (Euro 970319)", + "batcira", "Battle Circuit (Asia 970319)", + "batcird", "Battle Circuit (Euro 970319 Phoenix Edition) (bootleg)", + "batcirj", "Battle Circuit (Japan 970319)", + "batlball", "Battle Balls (Germany)", + "batlballa", "Battle Balls (Hong Kong)", + "batlballe", "Battle Balls (Hong Kong, earlier)", + "batlballu", "Battle Balls (US)", + "batlbubl", "Battle Bubble (v2.00)", + "batlgear", "Battle Gear", + "batlgr2", "Battle Gear 2 (v2.04J)", + "batlgr2a", "Battle Gear 2 (v2.01J)", + "batlzone", "Battle Zone (bootleg of Mayday)", + "batman", "Batman", + "batman2", "Batman Part 2", + "batmanf", "Batman Forever (4.0)", + "batmanf3", "Batman Forever (3.0)", + "batmanfr", "Batman Forever (JUE 960507 V1.000)", + "batrider", "Armed Police Batrider (Europe) (Fri Feb 13 1998)", + "batriderc", "Armed Police Batrider (China) (Fri Feb 13 1998)", + "batriderj", "Armed Police Batrider (Japan, B version) (Fri Feb 13 1998)", + "batriderja", "Armed Police Batrider (Japan, older version) (Mon Dec 22 1997)", + "batriderk", "Armed Police Batrider (Korea) (Fri Feb 13 1998)", + "batridert", "Armed Police Batrider (Taiwan) (Mon Dec 22 1997)", + "batrideru", "Armed Police Batrider (USA) (Fri Feb 13 1998)", + "batsugun", "Batsugun", + "batsuguna", "Batsugun (older set)", + "batsugunsp", "Batsugun - Special Version", + "battlane", "Battle Lane! Vol. 5 (set 1)", + "battlane2", "Battle Lane! Vol. 5 (set 2)", + "battlane3", "Battle Lane! Vol. 5 (set 3)", + "battlcry", "Battlecry", + "battlera", "Battle Rangers (World)", + "battles", "Battles", + "battlex", "Battle Cross", + "battlnts", "Battlantis (program code G)", + "battlntsa", "Battlantis (program code F)", + "battlntsj", "Battlantis (Japan, program code E)", + "battroad", "The Battle-Road", + "bayroute", "Bay Route (set 3, World, FD1094 317-0116)", + "bayroute1", "Bay Route (set 1, US, unprotected)", + "bayrouteb1", "Bay Route (encrypted, protected bootleg)", + "bayrouteb2", "Bay Route (Datsu bootleg)", + "bayroutej", "Bay Route (set 2, Japan, FD1094 317-0115)", + "baywatch", "Baywatch", + "bbakraid", "Battle Bakraid - Unlimited Version (USA) (Tue Jun 8 1999)", + "bbakraidj", "Battle Bakraid - Unlimited Version (Japan) (Tue Jun 8 1999)", + "bbakraidja", "Battle Bakraid (Japan) (Wed Apr 7 1999)", + "bballoon", "BnB Arcade", + "bballrmt", "Baseball (Ramtek) [TTL]", + "bballs", "Bouncing Balls", + "bbb108", "Big Bang Bar (Beta 1.8 US)", + "bbb109", "Big Bang Bar (Beta 1.9 US)", + "bbbowlin", "Big Ball Bowling (Bowler)", + "bbbxing", "Best Bout Boxing", + "bbeltzac", "Black Belt (Zaccaria)", + "bbmanw", "Bomber Man World / New Dyna Blaster - Global Quest", + "bbmanwj", "Bomber Man World (Japan)", + "bbmanwja", "Bomber Man World (Japan, revised sound hardware)", + "bbnny_l2", "Bugs Bunny Birthday Ball (L-2)", + "bbnny_lu", "Bugs Bunny Birthday Ball (LU-2) European", + "bbonk", "Bigfoot Bonkers", + "bbprot", "unknown fighting game 'BB' (prototype)", + "bbros", "Buster Bros. (USA)", + "bbust2", "Beast Busters 2nd Nightmare", + "bbusters", "Beast Busters (World)", + "bbustersu", "Beast Busters (US, Version 2)", + "bcats_l2", "Bad Cats (LA-2)", + "bcats_l5", "Bad Cats (L-5)", + "bchance", "Bonne Chance! (French/English)", + "bchancep", "Bonne Chance! (Golden Poker prequel HW)", + "bchopper", "Battle Chopper", + "bcrusher", "Bone Crusher", + "bcruzm12", "Battle Cruiser M-12", + "bcstry", "B.C. Story (set 1)", + "bcstrya", "B.C. Story (set 2)", + "bdrdown", "Border Down (Rev A) (GDL-0023A)", + "beachpt", "Beach Patrol (Russia) (Atronic)", + "beachspi", "Beach Spikers (GDS-0014)", + "beaminv", "Beam Invader", + "bearnec", "Bear Necessities (Russia) (Atronic)", + "beastf", "Beastie Feastie", + "beastrzr", "Beastorizer (USA)", + "beastrzrb", "Beastorizer (USA bootleg)", + "beatclck", "Beat the Clock", + "beathead", "BeatHead (prototype)", + "beautyb", "Beauty Block", + "beebop", "Bee Bop (set 1)", + "beebopa", "Bee Bop (set 2)", + "beebopb", "Bee Bop (set 3)", + "beebopc", "Bee Bop (set 4)", + "beebopd", "Bee Bop (set 5)", + "beebope", "Bee Bop (set 6)", + "beeline", "Beeline (39-360-075)", + "beetlem", "Beetlemania (set 1)", + "beetlema", "Beetlemania (set 2)", + "beetlemb", "Beetlemania (set 3)", + "beetlemc", "Beetlemania (set 4)", + "beetlemd", "Beetlemania (set 5)", + "beetleup", "Beetles Unplugged (Russia) (Atronic)", + "beezer", "Beezer (set 1)", + "beezer1", "Beezer (set 2)", + "begas", "Bega's Battle (Revision 3)", + "begas1", "Bega's Battle (Revision 1)", + "bel", "Behind Enemy Lines", + "bellring", "Bell Ringer", + "benberob", "Ben Bero Beh (Japan)", + "berabohm", "Beraboh Man (Japan, Rev C)", + "berabohmb", "Beraboh Man (Japan, Rev B)", + "berenstn", "The Berenstain Bears in Big Paw's Cave", + "berlwall", "The Berlin Wall", + "berlwallt", "The Berlin Wall (bootleg ?)", + "bermudat", "Bermuda Triangle (World?)", + "bermudata", "Bermuda Triangle (World Wars) (US)", + "bermudatj", "Bermuda Triangle (Japan)", + "berzerk", "Berzerk (set 1)", + "berzerk1", "Berzerk (set 2)", + "berzerkg", "Berzerk (German Speech)", + "bestbest", "Best Of Best", + "bestleag", "Best League (bootleg of Big Striker, Italian Serie A)", + "bestleaw", "Best League (bootleg of Big Striker, World Cup)", + "bestri", "Bestri (Korea)", + "bg_barmy", "Barmy Army (BGT)", + "bg_ddb", "Ding Dong Bells (BGT)", + "bg_max", "Max A Million (BGT) (set 1)", + "bg_maxa", "Max A Million (BGT) (set 2)", + "bgaregga", "Battle Garegga (Europe / USA / Japan / Asia) (Sat Feb 3 1996)", + "bgareggabl", "1945 Part-2 (Chinese hack of Battle Garegga)", + "bgareggacn", "Battle Garegga - Type 2 (Denmark / China) (Tue Apr 2 1996)", + "bgareggahk", "Battle Garegga (Austria / Hong Kong) (Sat Feb 3 1996)", + "bgaregganv", "Battle Garegga - New Version (Austria / Hong Kong) (Sat Mar 2 1996)", + "bgareggat2", "Battle Garegga - Type 2 (Europe / USA / Japan / Asia) (Sat Mar 2 1996)", + "bgareggatw", "Battle Garegga (Taiwan / Germany) (Thu Feb 1 1996)", + "bguns_l7", "Big Guns (L-7)", + "bguns_l8", "Big Guns (L-8)", + "bguns_la", "Big Guns (L-A)", + "bguns_p1", "Big Guns (P-1)", + "bhead2k", "Beach Head 2000 Install - 05/27/03", + "bhead2k2", "Beach Head 2002 Install - 05/27/03", + "bhead2k3", "Beach Head 2003 Desert War Install - 05/27/03", + "bhead2ka", "Beach Head 2000 Install - 09/16/01", + "bhol_ltd", "Black Hole (LTD)", + "big10", "Big 10", + "bigappg", "The Big Apple (2131-13, U5-0)", + "bigbang", "Big Bang (9th Nov. 1993)", + "bigblue", "Big Blue (Russia) (Atronic)", + "bigbucks", "Big Bucks", + "bigd2", "Big D2", + "bigdeal", "Big Deal (Hungarian, set 1)", + "bigdealb", "Big Deal (Hungarian, set 2)", + "bigevglf", "Big Event Golf (US)", + "bigevglfj", "Big Event Golf (Japan)", + "bigfghtr", "Tatakae! Big Fighter (Japan)", + "bigfight", "Big Fight - Big Trouble In The Atlantic Ocean", + "biggame", "Big Game", + "bighouse", "Big House", + "bighurt", "Frank Thomas' Big Hurt (rev.3)", + "bigkarnk", "Big Karnak", + "bigkong", "Big Kong", + "bigprowr", "The Big Pro Wrestling!", + "bigrun", "Big Run (11th Rallye version)", + "bigstrik", "Big Striker", + "bigstrkb", "Big Striker (bootleg)", + "bigstrkba", "Big Striker (bootleg w/Italian teams)", + "bigtown", "Big Town", + "bigtwin", "Big Twin", + "bigtwinb", "Big Twin (No Girls Conversion)", + "bijokkog", "Bijokko Gakuen (Japan 880116)", + "bijokkoy", "Bijokko Yume Monogatari (Japan 870925)", + "bikiniko", "BiKiNikko - Okinawa de Ippai Shichaimashita (Japan)", + "bikkuric", "Bikkuri Card (Japan)", + "billiard", "The Billiards (Video Hustler bootleg)", + "billlist", "Billard List", + "bilyard", "Billiard", + "bingo", "Bingo", + "bingoc", "Bingo Circus (Rev. A 891001)", + "bingoman", "Bingo Mania (P03-P07-P14)", + "bingomana", "Bingo Mania (A03)", + "bingor1", "Bingo Roll / Bell Star? (set 1)", + "bingor2", "Bingo Roll / Bell Star? (set 2)", + "bingor3", "Bingo Roll / Bell Star? (set 3)", + "bingor4", "Bingo Roll / Bell Star? (set 4)", + "bingor5", "Bingo Roll / Bell Star V3? (set 5)", + "bingowng", "Bingo (set 1)", + "bingownga", "Bingo (set 2)", + "bioatack", "Bio Attack", + "biofreak", "BioFreaks (prototype)", + "biomtoy", "Biomechanical Toy (Ver. 1.0.1885)", + "biomtoya", "Biomechanical Toy (Ver. 1.0.1884)", + "bionicc", "Bionic Commando (Euro)", + "bionicc1", "Bionic Commando (US set 1)", + "bionicc2", "Bionic Commando (US set 2)", + "bioship", "Bio-ship Paladin", + "biplane4", "Biplane 4 [TTL]", + "birdiy", "Birdiy", + "birdtry", "Birdie Try (Japan)", + "bishi", "Bishi Bashi Championship Mini Game Senshuken (ver JAA, 3 Players)", + "bishjan", "Bishou Jan (Japan, Ver. 2.03)", + "bjourney", "Blue's Journey / Raguy (ALM-001)(ALH-001)", + "bjpoker", "Poker / Black Jack (Model 7521)", + "bjtwin", "Bombjack Twin (set 1)", + "bjtwina", "Bombjack Twin (set 2)", + "bjtwinp", "Bombjack Twin (prototype? with adult pictures)", + "bk2k_l4", "Black Knight 2000 (L-4)", + "bk2k_lg1", "Black Knight 2000 (LG-1)", + "bk2k_lg3", "Black Knight 2000 (LG-3)", + "bk2k_pu1", "Black Knight 2000 (PU-1)", + "bk_f4", "Black Knight (L-4, French speech)", + "bk_l3", "Black Knight (L-3)", + "bk_l4", "Black Knight (L-4)", + "bking", "Birdie King", + "bking2", "Birdie King 2", + "bking3", "Birdie King 3", + "bkrtmaq", "Bakuretsu Quiz Ma-Q Dai Bouken (Japan)", + "black", "Czernyj Korabl (Arcade bootleg of ZX Spectrum 'Blackbeard')", + "black100", "Blackwater 100", + "black100s", "Blackwater 100 (Single Ball Play)", + "blackbd", "Black Beard (Russia, set 1)", + "blackbda", "Black Beard (Russia, set 2)", + "blackbdb", "Black Beard (Russia, set 3)", + "blackblt", "Black Belt", + "blackjck", "Black Jack (Pinball)", + "blackt96", "Black Touch '96", + "bladestl", "Blades of Steel (version T)", + "bladestle", "Blades of Steel (version E)", + "bladestll", "Blades of Steel (version L)", + "blakpyra", "Black Pyramid", + "blandia", "Blandia", + "blandiap", "Blandia (prototype)", + "blasted", "Blasted", + "blaster", "Blaster", + "blasterkit", "Blaster (conversion kit)", + "blastero", "Blaster (location test)", + "blasto", "Blasto", + "blastoff", "Blast Off (Japan)", + "blazeon", "Blaze On (Japan)", + "blazer", "Blazer (Japan)", + "blazlaz", "Blazing Lazers", + "blazstar", "Blazing Star", + "blbeauty", "Black Beauty (Shuffle)", + "blckhole", "Black Hole (Rev. 4)", + "blckhole2", "Black Hole (Rev. 2)", + "blckhols", "Black Hole (Sound Only)", + "blckjack", "Black Jack", + "bldwolf", "Bloody Wolf (US)", + "bldwolfj", "Narazumono Sentoubutai Bloody Wolf (Japan)", + "bldyr3b", "Bloody Roar 3 (bootleg)", + "bldyroar", "Bloody Roar (Japan)", + "bldyror2", "Bloody Roar 2 (World)", + "bldyror2a", "Bloody Roar 2 (Asia)", + "bldyror2j", "Bloody Roar 2 (Japan)", + "bldyror2u", "Bloody Roar 2 (USA)", + "blitz", "NFL Blitz (boot ROM 1.2)", + "blitz11", "NFL Blitz (boot ROM 1.1)", + "blitz2k", "NFL Blitz 2000 Gold Edition", + "blitz99", "NFL Blitz '99", + "blkbustr", "BlockBuster", + "blkdrgon", "Black Dragon (Japan)", + "blkdrgonb", "Black Dragon (bootleg)", + "blkfever", "Black Fever", + "blkheart", "Black Heart", + "blkheartj", "Black Heart (Japan)", + "blkhole", "Black Hole", + "blkou_f1", "Blackout (L-1, French Speech)", + "blkou_l1", "Blackout (L-1)", + "blkou_t1", "Blackout (T-1)", + "blkpnthr", "Black Panther", + "blkrhino", "Black Rhino (3VXFC5344, New Zealand)", + "blkshpsq", "Black Sheep Squadron", + "blktiger", "Black Tiger", + "blktigera", "Black Tiger (older)", + "blktigerb1", "Black Tiger (bootleg set 1)", + "blktigerb2", "Black Tiger (bootleg set 2)", + "blktouch", "Black Touch (Korea)", + "blmbycar", "Blomby Car", + "blmbycaru", "Blomby Car (not encrypted)", + "block", "Block Block (World 910910)", + "block2", "Block 2 (S.P.A. Co. bootleg)", + "blockade", "Blockade", + "blockbl", "Block Block (bootleg)", + "blockcar", "Block Carnival / Thunder & Lightning 2", + "blockcarb", "Block Carnival / Thunder & Lightning 2 (bootleg)", + "blocken", "Blocken (Japan)", + "blockgal", "Block Gal (MC-8123B, 317-0029)", + "blockgalb", "Block Gal (bootleg)", + "blockhl", "Block Hole", + "blockj", "Block Block (Japan 910910)", + "blockjoy", "Block Block (World 911106 Joystick)", + "blockout", "Block Out (set 1)", + "blockout2", "Block Out (set 2)", + "blockoutj", "Block Out (Japan)", + "bloodbro", "Blood Bros. (set 1)", + "bloodbroa", "Blood Bros. (set 2)", + "bloodbrob", "Blood Bros. (set 3)", + "bloodstm", "Blood Storm (v2.22)", + "bloodstm10", "Blood Storm (v1.04)", + "bloodstm11", "Blood Storm (v1.10)", + "bloodstm21", "Blood Storm (v2.10)", + "bloodstm22", "Blood Storm (v2.20)", + "bloodwar", "Blood Warrior", + "bloto", "Blits Loto (Russia) (Extrema)", + "bloxeed", "Bloxeed (Japan, FD1094 317-0139)", + "bloxeedc", "Bloxeed (World, C System)", + "bloxeedu", "Bloxeed (US, C System)", + "blpearl", "Black Pearl (Russia) (Extrema)", + "blstroid", "Blasteroids (rev 4)", + "blstroid2", "Blasteroids (rev 2)", + "blstroid3", "Blasteroids (rev 3)", + "blstroidg", "Blasteroids (German, rev 2)", + "blstroidh", "Blasteroids (with heads)", + "blswhstl", "Bells & Whistles (Version L)", + "bluehawk", "Blue Hawk", + "bluehawkn", "Blue Hawk (NTC)", + "blueprnt", "Blue Print (Midway)", + "blueprntj", "Blue Print (Jaleco)", + "blueshrk", "Blue Shark", + "blvelvet", "Black Velvet", + "blzntrnd", "Blazing Tornado", + "bm1stmix", "beatmania (ver JA-B)", + "bm2ndmix", "beatmania 2nd MIX (ver JA-B)", + "bm2ndmxa", "beatmania 2nd MIX (ver JA-A)", + "bm37th", "Beatmania III Append 7th Mix", + "bm3final", "Beatmania III The Final", + "bm3rdmix", "beatmania 3rd MIX (ver JA-A)", + "bm4thmix", "beatmania 4th MIX (ver JA-A)", + "bm5thmix", "beatmania 5th MIX (ver JA-A)", + "bm6thmix", "beatmania 6th MIX (ver JA-A)", + "bm7thmix", "beatmania 7th MIX (ver JA-B)", + "bmaster", "Blade Master (World)", + "bmcbowl", "Konkyuu no Hoshi", + "bmclubmx", "beatmania Club MIX (ver JA-A)", + "bmcompm2", "beatmania complete MIX 2 (ver JA-A)", + "bmcompmx", "beatmania complete MIX (ver JA-B)", + "bmcorerm", "beatmania CORE REMIX (ver JA-A)", + "bmcpokr", "unknown BMC poker game", + "bmdct", "beatmania featuring Dreams Come True (ver JA-A)", + "bmf_at", "Batman Forever (Austrian)", + "bmf_be", "Batman Forever (Belgian)", + "bmf_ch", "Batman Forever (Swiss)", + "bmf_cn", "Batman Forever (Canadian)", + "bmf_de", "Batman Forever (German)", + "bmf_fr", "Batman Forever (French)", + "bmf_it", "Batman Forever (Italian)", + "bmf_jp", "Batman Forever (Japanese)", + "bmf_nl", "Batman Forever (Dutch)", + "bmf_no", "Batman Forever (Norwegian)", + "bmf_sp", "Batman Forever (Spanish)", + "bmf_sv", "Batman Forever (Swedish)", + "bmf_time", "Batman Forever (Timed Play)", + "bmf_uk", "Batman Forever (English)", + "bmfinal", "beatmania THE FINAL (ver JA-A)", + "bmiidx", "beatmania IIDX (863 JAB)", + "bmiidx2", "beatmania IIDX 2nd style (GC985 JAA)", + "bmiidx3", "beatmania IIDX 3rd style (GC992 JAC)", + "bmiidx3a", "beatmania IIDX 3rd style (GC992 JAA)", + "bmiidx4", "beatmania IIDX 4th style (GCA03 JAA)", + "bmiidx5", "beatmania IIDX 5th style (GCA17 JAA)", + "bmiidx6", "beatmania IIDX 6th style (GCB4U JAB)", + "bmiidx6a", "beatmania IIDX 6th style (GCB4U JAA)", + "bmiidx7", "beatmania IIDX 7th style (GCB44 JAA)", + "bmiidx8", "beatmania IIDX 8th style (GCC44 JAA)", + "bmiidxa", "beatmania IIDX (863 JAA)", + "bmiidxc", "beatmania IIDX with DDR 2nd Club Version (896 JAB)", + "bmiidxc2", "Beatmania IIDX Substream with DDR 2nd Club Version 2 (984 A01 BM)", + "bmiidxca", "beatmania IIDX with DDR 2nd Club Version (896 JAA)", + "bmiidxs", "beatmania IIDX Substream (983 JAA)", + "bmx", "BMX", + "bnglngby", "Vs. Raid on Bungeling Bay (RD4-2 B)", + "bnj", "Bump 'n' Jump", + "bnjm", "Bump 'n' Jump (Midway)", + "bnstars", "Vs. Janshi Brandnew Stars (MegaSystem32 Version)", + "bnstars1", "Vs. Janshi Brandnew Stars", + "bntyhunt", "Bounty Hunter (GCTech Co., LTD)", + "bnzabros", "Bonanza Bros (US, Floppy DS3-5000-07d? Based)", + "bnzabrosj", "Bonanza Bros (Japan, Floppy DS3-5000-07b Based)", + "bnzai_g3", "Banzai Run (L-3) Germany", + "bnzai_l1", "Banzai Run (L-1)", + "bnzai_l3", "Banzai Run (L-3)", + "bnzai_pa", "Banzai Run (P-A)", + "boblbobl", "Bobble Bobble (set 1)", + "boblbobl2", "Bobble Bobble (set 2)", + "bodyslam", "Body Slam (8751 317-0015)", + "bogeyman", "Bogey Manor", + "boggy84", "Boggy '84", + "boggy84b", "Boggy '84 (bootleg)", + "bombbee", "Bomb Bee", + "bomber", "Bomber (bootleg of Scramble)", + "bombjack", "Bomb Jack (set 1)", + "bombjack2", "Bomb Jack (set 2)", + "bombjackt", "Bomb Jack (Tecfri, Spain)", + "bombkick", "Bomb Kick (set 1)", + "bombkicka", "Bomb Kick (set 2)", + "bomblord", "Bomber Lord (bootleg)", + "bombrman", "Bomber Man (Japan)", + "bombsa", "Bombs Away", + "bonanza", "Touchstar Bonanza (Revision 3)", + "bonanzar2", "Touchstar Bonanza (Revision 2)", + "bonebstr", "Bone Busters Inc.", + "bongo", "Bongo", + "bonkadv", "B.C. Kid / Bonk's Adventure / Kyukyoku!! PC Genjin", + "bonuscrd", "Bonus Card (Austrian)", + "bonuscrda", "Bonus Card (Austrian, ATG Electronic hack)", + "bonzeadv", "Bonze Adventure (World, Newer)", + "bonzeadvo", "Bonze Adventure (World, Older)", + "bonzeadvu", "Bonze Adventure (US)", + "boobhack", "Booby Kids (Italian manufactured graphic hack / bootleg of Kid no Hore Hore Daisakusen (bootleg))", + "boogwing", "Boogie Wings (Euro v1.5, 92.12.07)", + "boogwinga", "Boogie Wings (Asia v1.5, 92.12.07)", + "bookra", "Book Of Ra (set 1)", + "bookthr", "Book Theatre (Ver 1.2)", + "boomrang", "Boomer Rang'r / Genesis (set 1)", + "boomranga", "Boomer Rang'r / Genesis (set 2)", + "boonggab", "Boong-Ga Boong-Ga (Spank'em!)", + "bootcamp", "Boot Camp", + "boothill", "Boot Hill", + "bop_l2", "The Machine: Bride of Pinbot (L-2)", + "bop_l3", "The Machine: Bride of Pinbot (L-3)", + "bop_l4", "The Machine: Bride of Pinbot (L-4)", + "bop_l5", "The Machine: Bride of Pinbot (L-5)", + "bop_l6", "The Machine: Bride of Pinbot (L-6)", + "bop_l7", "The Machine: Bride of Pinbot (L-7)", + "borench", "Borench", + "borntofi", "Born To Fight", + "bosco", "Bosconian (new version)", + "boscomd", "Bosconian (Midway, new version)", + "boscomdo", "Bosconian (Midway, old version)", + "boscoo", "Bosconian (old version)", + "boscoo2", "Bosconian (older version)", + "botanic", "Botanic (French)", + "botss", "Battle of the Solar System (rev. 1.1a 7/23/92)", + "botss11", "Battle of the Solar System (rev. 1.1 3/24/92)", + "bottl10b", "Bottle 10 (Italian, set 2)", + "bottle10", "Bottle 10 (Italian, set 1)", + "bottom9", "Bottom of the Ninth (version T)", + "bottom9n", "Bottom of the Ninth (version N)", + "bouldash", "Boulder Dash / Boulder Dash Part 2 (World)", + "bouldashj", "Boulder Dash / Boulder Dash Part 2 (Japan)", + "bounty", "The Bounty", + "bountyh", "Bounty Hunter", + "bowarrow", "Bow & Arrow (Prototype)", + "bowl3d", "3-D Bowling", + "bowler", "Bowling Alley", + "bowlrama", "Bowl-O-Rama", + "bowltry", "Bowling Try", + "boxer", "Boxer (prototype)", + "boxingb", "Boxing Bugs", + "boxingm", "Boxing Mania (ver JAA)", + "boxyboy", "Boxy Boy (SB?)", + "bpoker", "Video Poker (v1403)", + "br_l1", "Black Rose (L-1)", + "br_l3", "Black Rose (L-3)", + "br_l4", "Black Rose (L-4)", + "br_p17", "Black Rose (SP-1)", + "bradley", "Bradley Trainer", + "brain", "Brain", + "brapboys", "B.Rap Boys (World)", + "brapboysj", "B.Rap Boys Special (Japan)", + "brapboysu", "B.Rap Boys Special (US)", + "brasil", "Bra$il (Version 3)", + "brasil86", "Brasil 86", + "brasil87", "Brasil 87", + "brasil89", "Brasil 89 (set 1)", + "brasil89a", "Brasil 89 (set 2)", + "brasil93", "Brasil 93", + "braveff", "Brave Fire Fighters", + "brdrlinb", "Borderline (Karateco bootleg)", + "brdrline", "Borderline", + "brdrlinet", "Borderline (Tranquilizer Gun conversion)", + "brdrlins", "Borderline (Sidam bootleg)", + "break86", "Break '86", + "breakers", "Breakers", + "breakrev", "Breakers Revenge", + "breywood", "Breywood (Japan revision 2)", + "brickyrd", "Brickyard", + "brickzn", "Brick Zone (v5.0, Joystick)", + "brickzn11", "Brick Zone (v1.1)", + "brickznv4", "Brick Zone (v4.0, Spinner)", + "brival", "Burning Rival (World)", + "brivalj", "Burning Rival (Japan)", + "brix", "Brix", + "brixian", "Brixian", + "brkthru", "Break Thru (US)", + "brkthruj", "Kyohkoh-Toppa (Japan)", + "brod", "Brodjaga (Arcade bootleg of ZX Spectrum 'Inspector Gadget and the Circus of Fear')", + "bronx", "Bronx", + "brooklyn", "Brooklyn (set 1) (Bingo)", + "brooklyna", "Brooklyn (set 2) (Bingo)", + "brooks", "Brooks & Dunn (rev.T1)", + "brubber", "Burnin' Rubber", + "brutforc", "Brute Force", + "brvblade", "Brave Blade (World)", + "brvbladea", "Brave Blade (Asia)", + "brvbladej", "Brave Blade (Japan)", + "brvbladeu", "Brave Blade (USA)", + "brvteam", "Brave Team", + "bs94", "Buena Suerte '94", + "bsb105", "Breakshot (Beta)", + "bshark", "Battle Shark (World)", + "bsharkj", "Battle Shark (Japan)", + "bsharkjjs", "Battle Shark (Japan, Joystick)", + "bsharku", "Battle Shark (US)", + "bsktball", "Basketball", + "bsplash", "Banana Splash (set 1)", + "bssoccer", "Back Street Soccer (KRB-0031 PCB)", + "bssoccera", "Back Street Soccer (KRB-0032A PCB)", + "bstars", "Baseball Stars Professional (NGM-002)", + "bstars2", "Baseball Stars 2", + "bstarsh", "Baseball Stars Professional (NGH-002)", + "bstrk_l1", "Big Strike (Shuffle) (L-1)", + "bsuerte", "Buena Suerte (Spanish, set 1)", + "bsuertea", "Buena Suerte (Spanish, set 2)", + "bsuerteb", "Buena Suerte (Spanish, set 3)", + "bsuertec", "Buena Suerte (Spanish, set 4)", + "bsuerted", "Buena Suerte (Spanish, set 5)", + "bsuertee", "Buena Suerte (Spanish, set 6)", + "bsuertef", "Buena Suerte (Spanish, set 7)", + "bsuerteg", "Buena Suerte (Spanish, set 8)", + "bsuerteh", "Buena Suerte (Spanish, set 9)", + "bsuertei", "Buena Suerte (Spanish, set 10)", + "bsuertej", "Buena Suerte (Spanish, set 11)", + "bsuertek", "Buena Suerte (Spanish, set 12)", + "bsuertel", "Buena Suerte (Spanish, set 13)", + "bsuertem", "Buena Suerte (Spanish, set 14)", + "bsuerten", "Buena Suerte (Spanish, set 15)", + "bsuerteo", "Buena Suerte (Spanish, set 16)", + "bsuertep", "Buena Suerte (Spanish, set 17)", + "bsuerteq", "Buena Suerte (Spanish, set 18)", + "bsuerter", "Buena Suerte (Spanish, set 19)", + "bsuertes", "Buena Suerte (Spanish, set 20)", + "bsuertet", "Buena Suerte (Spanish, set 21)", + "bsuerteu", "Buena Suerte (Spanish, set 22)", + "bsv100r", "Breakshot (Redemption 1.0)", + "bsv102r", "Breakshot (Redemption 1.2)", + "bsv103", "Breakshot", + "btchamp", "Beat the Champ (GV053 UAA01)", + "btime", "Burger Time (Data East set 1)", + "btime2", "Burger Time (Data East set 2)", + "btime3", "Burger Time (Data East USA)", + "btimem", "Burger Time (Midway)", + "btippers", "Big Tippers (Russia)", + "btlecity", "Vs. Battle City", + "btlfield", "Battle Field (Japan)", + "btlfieldb", "Battle Field (bootleg)", + "btlkroad", "Battle K-Road", + "btltryst", "Battle Tryst (ver JAC)", + "btmn_101", "Batman (1.01)", + "btmn_103", "Batman (1.03)", + "btmn_106", "Batman (1.06)", + "btmn_g13", "Batman (1.03 Germany)", + "btoads", "Battletoads", + "bttf_a20", "Back To the Future (2.0)", + "bttf_a21", "Back To The Future (2.1)", + "bttf_a27", "Back To the Future (2.7)", + "bttf_g27", "Back To the Future (2.7 Germany)", + "bub68705", "Bubble Bobble (bootleg with 68705)", + "bubblem", "Bubble Memories: The Story Of Bubble Bobble III (Ver 2.4O 1996/02/15)", + "bubblemj", "Bubble Memories: The Story Of Bubble Bobble III (Ver 2.3J 1996/02/07)", + "bubbles", "Bubbles", + "bubblesp", "Bubbles (prototype version)", + "bubblesr", "Bubbles (Solid Red label)", + "bubbletr", "Bubble Trouble (Japan, Rev C)", + "bubl2000", "Bubble 2000", + "bublbob2", "Bubble Bobble II (Ver 2.5O 1994/10/05)", + "bublbob2p", "Bubble Bobble II (Ver 0.0J 1993/12/13, prototype)", + "bublbobl", "Bubble Bobble (Japan, Ver 0.1)", + "bublbobl1", "Bubble Bobble (Japan, Ver 0.0)", + "bublboblr", "Bubble Bobble (US, Ver 5.1)", + "bublboblr1", "Bubble Bobble (US, Ver 1.0)", + "bublpong", "Bubble Pong Pong", + "bubsymphb", "Bubble Symphony (bootleg with OKI6295)", + "bubsymphe", "Bubble Symphony (Ver 2.5O 1994/10/05)", + "bubsymphj", "Bubble Symphony (Ver 2.5J 1994/10/05)", + "bubsymphu", "Bubble Symphony (Ver 2.5A 1994/10/05)", + "bubsys", "Bubble System BIOS", + "bucaner", "Buccaneer", + "buccanrs", "Buccaneers (set 1)", + "buccanrsa", "Buccaneers (set 2)", + "buckrgrs", "Buck Rogers", + "buckrog", "Buck Rogers: Planet of Zoom", + "buckrogn", "Buck Rogers: Planet of Zoom (not encrypted, set 1)", + "buckrogn2", "Buck Rogers: Planet of Zoom (not encrypted, set 2)", + "bucky", "Bucky O'Hare (ver EAB)", + "buckyaab", "Bucky O'Hare (ver AAB)", + "buckyea", "Bucky O'Hare (ver EA)", + "buckyuab", "Bucky O'Hare (ver UAB)", + "bugfever", "Bugs Fever (Version 1.7R CGA)", + "bugfeverd", "Bugs Fever (Version 1.7E CGA)", + "bugfevero", "Bugs Fever (Version 1.6R CGA)", + "bugfeverv", "Bugs Fever (Version 1.7R Dual)", + "bugfeverv2", "Bugs Fever (Version 1.7E Dual)", + "buggyboy", "Buggy Boy/Speed Buggy (cockpit)", + "buggyboyjr", "Buggy Boy Junior/Speed Buggy (upright)", + "buggychl", "Buggy Challenge", + "buggychlt", "Buggy Challenge (Tecfri)", + "bujutsu", "Fighting Bujutsu", + "bullet", "Bullet (FD1094 317-0041)", + "bullfgt", "Bullfight (315-5065)", + "bullfgtr", "Bull Fighter", + "bullfgtrs", "Bull Fighter (Sega)", + "bullsdrt", "Bulls Eye Darts", + "bullsdrtg", "Bulls Eye Darts (Galaxian conversion)", + "bullseye", "301/Bullseye", + "bungeem", "Bungee Monkey (set 1)", + "bungeema", "Bungee Monkey (set 2)", + "buraiken", "Hissatsu Buraiken (Japan)", + "burglarx", "Burglar X", + "buriki", "Buriki One (rev.B)", + "burnforc", "Burning Force (Japan, new version (Rev C))", + "burnforco", "Burning Force (Japan, old version)", + "burningf", "Burning Fight (NGM-018)(NGH-018)", + "burningfh", "Burning Fight (NGH-018)(US)", + "burningfp", "Burning Fight (prototype)", + "bushido", "Bushido (set 1)", + "bushidoa", "Bushido (set 2)", + "buster", "Buster", + "butasan", "Butasan - Pig's & Bomber's (Japan, English)", + "butasanj", "Butasan (Japan, Japanese)", + "butrfly", "Butterfly Video Game (version U350C)", + "buzzard", "Buzzard", + "buzzundr", "Buzzundrum (Ace)", + "bwcasino", "Boardwalk Casino", + "bwidow", "Black Widow", + "bwings", "B-Wings (Japan new Ver.)", + "bwingsa", "B-Wings (Alt Ver.?)", + "bwingso", "B-Wings (Japan old Ver.)", + "bygone", "Bygone", + "bzone", "Battle Zone (rev 2)", + "bzonea", "Battle Zone (rev 1)", + "bzonec", "Battle Zone (cocktail)", + "c3_ppays", "The Phrase That Pays (Bellfruit) (Cobra 3?)", + "c3_rtime", "Radio Times (Bellfruit) (Cobra 3)", + "c3_telly", "Telly Addicts (Bellfruit) (Cobra 3)", + "c3_totp", "Top of the Pops (Bellfruit) (Cobra 3?)", + "cabal", "Cabal (World, Joystick version)", + "cabala", "Cabal (Alpha Trading)", + "cabalbl", "Cabal (bootleg of Joystick version, set 1, alternate sound hardware)", + "cabalbl2", "Cabal (bootleg of Joystick version, set 2)", + "cabalus", "Cabal (US set 1, Trackball version)", + "cabalus2", "Cabal (US set 2, Trackball version)", + "cabaret", "Cabaret", + "cachat", "Cachat (Japan)", + "cactjack", "Cactus Jack's", + "cactus", "Cactus (bootleg of Saboten Bombers)", + "cadanglr", "Angler Dangler (DECO Cassette)", + "cadash", "Cadash (World)", + "cadashf", "Cadash (France)", + "cadashg", "Cadash (Germany)", + "cadashi", "Cadash (Italy)", + "cadashj", "Cadash (Japan)", + "cadashp", "Cadash (World, prototype)", + "cadashu", "Cadash (US)", + "cafebrk", "Mahjong Cafe Break", + "cafedoll", "Mahjong Cafe Doll (Japan)", + "cafetime", "Mahjong Cafe Time", + "cairblad", "Change Air Blade (Japan)", + "calchase", "California Chase", + "calibr50", "Caliber 50", + "calipso", "Calipso", + "calorie", "Calorie Kun vs Moguranian", + "calorieb", "Calorie Kun vs Moguranian (bootleg)", + "calspeed", "California Speed (Version 2.1a, 4/17/98)", + "calspeeda", "California Speed (Version 1.0r7a 3/4/98)", + "cameltry", "Cameltry (US, YM2610)", + "cameltrya", "Cameltry (World, YM2203 + M6295)", + "cameltryau", "Cameltry (US, YM2203 + M6295)", + "cameltryj", "Cameltry (Japan, YM2610)", + "camlight", "Camel Lights", + "canasta", "Canasta '86'", + "candance", "Cannon Dancer (Japan)", + "candy", "Candy Candy", + "cannball", "Cannon Ball (Yun Sung, horizontal)", + "cannballv", "Cannon Ball (Yun Sung, vertical)", + "cannonb", "Cannon Ball (bootleg on Crazy Kong hardware) (set 1, buggy)", + "cannonb2", "Cannon Ball (bootleg on Crazy Kong hardware) (set 2, buggy)", + "cannonb3", "Cannon Ball (bootleg on Crazy Kong hardware) (set 3, no bonus game)", + "cannonbp", "Cannon Ball (Pac-Man Hardware)", + "canvas", "Canvas Croquis", + "canyon", "Canyon Bomber", + "canyonp", "Canyon Bomber (prototype)", + "capbowl", "Capcom Bowling (set 1)", + "capbowl2", "Capcom Bowling (set 2)", + "capbowl3", "Capcom Bowling (set 3)", + "capbowl4", "Capcom Bowling (set 4)", + "capcor", "Capitani Coraggiosi (Ver 1.3)", + "capitol", "Capitol", + "capsnk", "Capcom Vs. SNK Millennium Fight 2000 (JPN, USA, EXP, KOR, AUS) (Rev C)", + "capsnka", "Capcom Vs. SNK Millennium Fight 2000 (JPN, USA, EXP, KOR, AUS) (Rev A)", + "capsnkb", "Capcom Vs. SNK Millennium Fight 2000 (JPN, USA, EXP, KOR, AUS)", + "captaven", "Captain America and The Avengers (Asia Rev 1.4)", + "captavena", "Captain America and The Avengers (Asia Rev 1.0)", + "captavene", "Captain America and The Avengers (UK Rev 1.4)", + "captavenj", "Captain America and The Avengers (Japan Rev 0.2)", + "captavenu", "Captain America and The Avengers (US Rev 1.9)", + "captavenua", "Captain America and The Avengers (US Rev 1.4)", + "captavenuu", "Captain America and The Avengers (US Rev 1.6)", + "captcomm", "Captain Commando (World 911202)", + "captcommb", "Captain Commando (bootleg)", + "captcommj", "Captain Commando (Japan 911202)", + "captcommjr1", "Captain Commando (Japan 910928)", + "captcommr1", "Captain Commando (World 911014)", + "captcommu", "Captain Commando (USA 910928)", + "capunc", "Capitan Uncino (Ver 1.2)", + "car2", "Car 2 (bootleg of Head On 2)", + "caractn", "Car Action (set 1)", + "caractn2", "Car Action (set 2)", + "carb2002", "Carriage Bonus 2002 (bootleg)", + "carb2003", "Carriage Bonus 2003 (bootleg)", + "cardline", "Card Line", + "carhop", "Car Hop", + "carjmbre", "Car Jamboree", + "carket", "Carket Ball", + "carnevil", "CarnEvil (v1.0.3)", + "carnevil1", "CarnEvil (v1.0.1)", + "carnival", "Carnival (upright)", + "carnivalc", "Carnival (cocktail)", + "carnivalh", "Carnival (Head On hardware, set 1)", + "carnivalha", "Carnival (Head On hardware, set 2)", + "carnking", "Carnival King (v1.00.11)", + "carpolo", "Car Polo", + "carrera", "Carrera (Version 6.7)", + "cartfury", "Cart Fury", + "casanova", "Casanova", + "casbjack", "Casino Black Jack (color, Standard 00-05)", + "cascade", "Cascade", + "cashcade", "Cashcade (JPM) (SYSTEM5 VIDEO)", + "cashcrop", "Cash Crop (Russia)", + "cashquiz", "Cash Quiz (Type B, Version 5)", + "cashtrn", "Cash Train (v1.10)", + "casino5", "Casino Five (3315-02, U5-0)", + "caspoker", "Casino Poker (Ver PM86LO-35-5, German)", + "castaway", "Castaway (Russia) (Atronic) (set 1)", + "castawaya", "Castaway (Russia) (Atronic) (set 2)", + "castfant", "Astro Fantasia (DECO Cassette)", + "castfpt", "Fortune Pot (Castle) (MACH2000 V2rvA)", + "castrev", "Revolution (Castle) (MACH2000 V1rvE)", + "caswin", "Casino Winner", + "catacomb", "Catacomb", + "catacomp", "Catacomb (Pinball)", + "catapult", "Catapult", + "catch22", "Catch-22 (version 8.0)", + "catchp", "Catch (prototype)", + "caterplr", "Caterpillar (bootleg of Centipede)", + "catnmous", "Cat and Mouse (set 1)", + "catnmousa", "Cat and Mouse (set 2)", + "catt", "Catt (Japan)", + "cavelon", "Cavelon", + "caveman", "Caveman (Pinball/Video Combo, set 1)", + "cavemana", "Caveman (Pinball/Video Combo, set 2)", + "cavenger", "Cosmic Avenger", + "cavnegro", "Cavaleiro Negro", + "cavnegro1", "Cavaleiro Negro (alternate set 1)", + "cavnegro2", "Cavaleiro Negro (alternate set 2)", + "cawing", "Carrier Air Wing (World 901012)", + "cawingb2", "Carrier Air Wing (bootleg with 2xYM2203 + 2xMSM205 set 2)", + "cawingbl", "Carrier Air Wing (bootleg with 2xYM2203 + 2xMSM205 set 1)", + "cawingj", "U.S. Navy (Japan 901012)", + "cawingr1", "Carrier Air Wing (World 901009)", + "cawingu", "Carrier Air Wing (USA 901012)", + "cb2001", "Cherry Bonus 2001", + "cb3", "Cherry Bonus III (ver.1.40, encrypted)", + "cb3a", "Cherry Bonus III (ver.1.40, set 2)", + "cb3b", "Cherry Bonus III (alt)", + "cb3c", "Cherry Bonus III (alt, set 2)", + "cb3d", "Cherry Bonus III (set 3)", + "cb3e", "Cherry Bonus III (set 4, encrypted bootleg)", + "cbaj", "Cool Boarders Arcade Jam", + "cball", "Cannonball (Atari, prototype)", + "cbasebal", "Capcom Baseball (Japan)", + "cbdash", "Boulder Dash (DECO Cassette)", + "cbnj", "Bump 'n' Jump (DECO Cassette)", + "cbombers", "Chase Bombers (World)", + "cbombersj", "Chase Bombers (Japan)", + "cbombersp", "Chase Bombers (Japan Prototype)", + "cbtime", "Burger Time (DECO Cassette)", + "cburnrub", "Burnin' Rubber (DECO Cassette, set 1)", + "cburnrub2", "Burnin' Rubber (DECO Cassette, set 2)", + "cbuster", "Crude Buster (World FX version)", + "cbusterj", "Crude Buster (Japan)", + "cbusterw", "Crude Buster (World FU version)", + "cc_12", "Cactus Canyon (1.2)", + "cc_13", "Cactus Canyon (1.3)", + "ccasino", "Chinese Casino [BET] (Japan)", + "ccastles", "Crystal Castles (version 4)", + "ccastles1", "Crystal Castles (version 1)", + "ccastles2", "Crystal Castles (version 2)", + "ccastles3", "Crystal Castles (version 3)", + "ccastlesf", "Crystal Castles (version 3, French)", + "ccastlesg", "Crystal Castles (version 3, German)", + "ccastlesj", "Crystal Castles (joystick version)", + "ccastlesp", "Crystal Castles (version 3, Spanish)", + "ccboot", "Crazy Climber (bootleg set 1)", + "ccboot2", "Crazy Climber (bootleg set 2)", + "ccbootmr", "Crazy Climber (Model Racing bootleg)", + "ccclass", "Country Club Classic (v1.10 03-apr-1997)", + "cchance", "Cherry Chance", + "cchasm", "Cosmic Chasm (set 1)", + "cchasm1", "Cosmic Chasm (set 2)", + "cclimber", "Crazy Climber (US)", + "cclimberj", "Crazy Climber (Japan)", + "cclimbr2", "Crazy Climber 2 (Japan)", + "cclimbr2a", "Crazy Climber 2 (Japan, Harder)", + "cclimbroper", "Crazy Climber (Spanish, Operamatic bootleg)", + "cclownz", "Crazzy Clownz (Version 1.0)", + "ccruise", "Caribbean Cruise", + "cd32bios", "CD32 Bios", + "cdibios", "CD-i Bios", + "cdiscon1", "Disco No.1 (DECO Cassette)", + "cdsteljn", "DS Telejan (DECO Cassette, Japan)", + "cecmatch", "ChuckECheese's Match Game", + "centaur", "Centaur", + "centipdb", "Centipede (bootleg)", + "centipdd", "Centipede Dux (hack)", + "centiped", "Centipede (revision 3)", + "centiped2", "Centipede (revision 2)", + "centtime", "Centipede (1 player, timed)", + "cerberup", "Cerberus (Pinball)", + "cerberus", "Cerberus", + "cexplore", "Explorer (DECO Cassette)", + "cfarm", "Chicken Farm (Version 2.0)", + "cfblue", "Crazy Fruits Blue (Russia) (Atronic) (set 1)", + "cfbluea", "Crazy Fruits Blue (Russia) (Atronic) (set 2)", + "cfever1k", "Casino Fever 1k", + "cfever40", "Casino Fever 4.0", + "cfever50", "Casino Fever 5.0", + "cfever51", "Casino Fever 5.1", + "cfever61", "Casino Fever 6.1", + "cfghtice", "Fighting Ice Hockey (DECO Cassette)", + "cfgreen", "Crazy Fruits Green (Russia) (Atronic)", + "cfield", "Chaos Field (GDL-0025)", + "cfishing", "Fishing (DECO Cassette)", + "cflyball", "Flying Ball (DECO Cassette)", + "cftbl_l3", "Creature from the Black Lagoon (L-3,SP-1)", + "cftbl_l4", "Creature from the Black Lagoon (L-4)", + "cgangpzl", "Cosmo Gang the Puzzle (US)", + "cgangpzlj", "Cosmo Gang the Puzzle (Japan)", + "cgip30cs", "Credit Poker (ver.30c, standard)", + "cgold", "Caribbean Gold (3VXEC449, USA)", + "cgold2", "Caribbean Gold II (3XF5182H04, USA)", + "cgraplop", "Cluster Buster (DECO Cassette)", + "cgraplop2", "Graplop (no title screen) (DECO Cassette)", + "ch2000", "Fruit Bonus 2000 / New Cherry 2000 (Version 4.4E Dual)", + "ch2000b1", "Fruit Bonus 2000 / New Cherry 2000 (Version 4.4R, set 1)", + "ch2000b2", "Fruit Bonus 2000 / New Cherry 2000 (Version 4.1LT, set 1)", + "ch2000c1", "Fruit Bonus 2000 / New Cherry 2000 (Version 4.4R, set 2)", + "ch2000c2", "Fruit Bonus 2000 / New Cherry 2000 (Version 4.1LT, set 2)", + "ch2000d1", "Fruit Bonus 2000 / New Cherry 2000 (Version 4.4R, set 3)", + "ch2000d2", "Fruit Bonus 2000 / New Cherry 2000 (Version 4.1LT, set 3)", + "ch2000o", "Fruit Bonus 2000 / New Cherry 2000 (Version 3.9XT)", + "ch2000o2", "Fruit Bonus 2000 / New Cherry 2000 (Version 3.9D)", + "ch2000o3", "Fruit Bonus 2000 / New Cherry 2000 (Version 3.9)", + "ch2000v1", "Fruit Bonus 2000 / New Cherry 2000 (Version 4.4R Dual)", + "ch2000v2", "Fruit Bonus 2000 / New Cherry 2000 (Version 4.1LT Dual)", + "chainrec", "Chain Reaction (World, Version 2.2, 1995.09.25)", + "chaknpop", "Chack'n Pop", + "challeng", "Challenger", + "cham24", "Chameleon 24", + "chamburger", "Hamburger (DECO Cassette, Japan)", + "chameleo", "Chameleon", + "champbas", "Champion Base Ball", + "champbasj", "Champion Base Ball (Japan set 1)", + "champbasja", "Champion Base Ball (Japan set 2)", + "champbb2", "Champion Base Ball Part-2: Pair Play (set 1)", + "champbb2a", "Champion Baseball II (set 2)", + "champbb2j", "Champion Baseball II (Japan)", + "champbwl", "Championship Bowling", + "champwr", "Champion Wrestler (World)", + "champwrj", "Champion Wrestler (Japan)", + "champwru", "Champion Wrestler (US)", + "chanbara", "Chanbara", + "chance", "Chance", + "chance32", "Chance Thirty Two", + "changela", "Change Lanes", + "changes", "Changes", + "changesa", "Changes (EME license)", + "chaosbrk", "Chaos Breaker (v2.02J)", + "chaoshea", "Chaos Heat (V2.09O)", + "chaosheaj", "Chaos Heat (V2.08J)", + "charlien", "Charlie Ninja", + "charlies", "Charlie's Angels", + "chasehq", "Chase H.Q. (World)", + "chasehq2", "Chase H.Q. 2 (v2.0.6.JP)", + "chasehqj", "Chase H.Q. (Japan)", + "chasehqju", "Chase H.Q. (Japan, upright?)", + "chasehqu", "Chase H.Q. (US)", + "chboxing", "Champion Boxing", + "checkman", "Check Man", + "checkmanj", "Check Man (Japan)", + "checkmat", "Checkmate", + "cheekyms", "Cheeky Mouse", + "cheesech", "Cheese Chase", + "cheetah", "Cheetah", + "chelnov", "Chelnov - Atomic Runner (World)", + "chelnovj", "Chelnov - Atomic Runner (Japan)", + "chelnovu", "Chelnov - Atomic Runner (US)", + "chessc2", "Chess Challenge 2", + "chewheel", "Cherry Wheel (Version 1.7)", + "chewing", "Chewing Gum", + "cheyenne", "Cheyenne (version 1.0)", + "chicken", "Chicken (Russia) (Atronic)", + "chihiro", "Chihiro Bios", + "chikij", "Chiki Chiki Boys (Japan 900619)", + "chiller", "Chiller (version 3.0)", + "chillicc", "Chilli Con Cash (set 1)", + "chimerab", "Chimera Beast (prototype)", + "chinagat", "China Gate (US)", + "chinatow", "China Town (Ver 1B, Dino4 HW)", + "chinatwn", "China Town (Japan)", + "chinhero", "Chinese Hero", + "chinhero2", "Chinese Hero (older, set 1)", + "chinhero3", "Chinese Hero (older, set 2)", + "chinherot", "Chinese Heroe (Taito)", + "chinmoku", "Mahjong Chinmoku no Hentai (Japan 900511)", + "chinsan", "Ganbare Chinsan Ooshoubu (MC-8123A, 317-5012)", + "chkun", "Chance Kun (Japan)", + "chleague", "Champion League (Poker)", + "chleagul", "Champion League (Lattine)", + "chmpnum", "Champion Number (V0.74)", + "chocomk", "Musapey's Choco Marker (Rev A) (GDL-0014A)", + "chocovdr", "Uchuu Daisakusen: Chocovader Contactee (Japan, CVC1 Ver.A)", + "chokchok", "Choky! Choky!", + "choko", "Janpai Puzzle Choukou (Japan 010820)", + "choplift", "Choplifter (8751 315-5151)", + "chopliftbl", "Choplifter (bootleg)", + "chopliftu", "Choplifter (unprotected)", + "chopper", "Chopper I (US set 1)", + "choppera", "Chopper I (US set 2)", + "chopperb", "Chopper I (US set 3)", + "choysun", "Choy Sun Doa (20131511, Malaysia)", + "chqflag", "Chequered Flag", + "chqflagj", "Chequered Flag (Japan)", + "chry10", "Cherry 10 (bootleg with PIC16F84)", + "chryangl", "Cherry Angel", + "chrygld", "Cherry Gold I", + "chsuper2", "Champion Super 2 (V0.13)", + "chsuper3", "Champion Super 3 (V0.35)", + "chucklck", "Chuck-A-Luck", + "chukatai", "Chuka Taisen (World)", + "chukataij", "Chuka Taisen (Japan)", + "chukataiu", "Chuka Taisen (US)", + "chwrestl", "Champion Pro Wrestling", + "chwy", "Highway Chase (DECO Cassette)", + "ciclone", "Ciclone", + "circa33", "Circa 1933", + "circus", "Circus / Acrobat TV", + "circusc", "Circus Charlie (level select, set 1)", + "circusc2", "Circus Charlie (level select, set 2)", + "circusc3", "Circus Charlie (no level select)", + "circuscc", "Circus Charlie (Centuri)", + "circusce", "Circus Charlie (Centuri, earlier)", + "circusp", "Circus", + "cischeat", "Cisco Heat", + "citalcup", "Champion Italian Cup (bootleg V220IT)", + "citybomb", "City Bomber (World)", + "citybombj", "City Bomber (Japan)", + "citycon", "City Connection (set 1)", + "citycona", "City Connection (set 2)", + "citylove", "City Love (Japan 860908)", + "cityslck", "City Slicker", + "cj3play", "Triple Play (Ver. 1.10)", + "cjddzsp", "Super Dou Di Zhu Special (V122CN)", + "cjdh2", "Chao Ji Da Heng 2 (V311CN)", + "cjdh2a", "Chao Ji Da Heng 2 (V311CNA)", + "cjdh2b", "Chao Ji Da Heng 2 (V311CNB)", + "cjdh2c", "Chao Ji Da Heng 2 (V215CN)", + "cjffruit", "Funny Fruit (Ver. 1.13)", + "ckong", "Crazy Kong", + "ckongalc", "Crazy Kong (Alca bootleg)", + "ckongcv", "Crazy Kong (bootleg on Galaxian hardware, encrypted, set 2)", + "ckongg", "Crazy Kong (bootleg on Galaxian hardware)", + "ckonggx", "Crazy Kong (bootleg on Galaxian hardware, encrypted, set 1)", + "ckongis", "Crazy Kong (bootleg on Galaxian hardware, encrypted, set 3)", + "ckongmc", "Crazy Kong (bootleg on Moon Cresta hardware)", + "ckongo", "Crazy Kong (Orca bootleg)", + "ckongpt2", "Crazy Kong Part II (set 1)", + "ckongpt2a", "Crazy Kong Part II (set 2)", + "ckongpt2b", "Crazy Kong Part II (alternative levels)", + "ckongpt2j", "Crazy Kong Part II (Japan)", + "ckongpt2jeu", "Crazy Kong Part II (Jeutel bootleg)", + "ckongs", "Crazy Kong (Scramble hardware)", + "ckpt_a17", "Checkpoint (1.7)", + "clapapa", "Rootin' Tootin' / La-Pa-Pa (DECO Cassette)", + "clapapa2", "Rootin' Tootin' (DECO Cassette)", + "clas1812", "Class of 1812", + "classice", "Classic Edition (Version 1.6E)", + "classice1", "Classic Edition (Version 1.6R, set 1)", + "classice2", "Classic Edition (Version 1.6LT, set 1)", + "classiced1", "Classic Edition (Version 1.6R, set 2)", + "classiced2", "Classic Edition (Version 1.6LT, set 2)", + "classicev", "Classic Edition (Version 1.6E Dual)", + "classicev1", "Classic Edition (Version 1.6R Dual)", + "classicev2", "Classic Edition (Version 1.6LT Dual)", + "claybust", "Claybuster", + "claychal", "Sega Clay Challenge", + "claypign", "Clay Pigeon (version 2.0)", + "clayshoo", "Clay Shoot", + "clbowl", "Coors Light Bowling", + "cleanswp", "Clean Sweep [TTL]", + "cleoftp", "Cleopatra Fortune Plus (GDL-0012)", + "cleopatr", "Cleopatra Fortune (Ver 2.1J 1996/09/05)", + "cleoptra", "Cleopatra", + "cliffhgr", "Cliff Hanger (set 1)", + "cliffhgra", "Cliff Hanger (set 2)", + "clkwise", "Clockwise (1VXEC534, New Zealand)", + "cloak", "Cloak & Dagger (rev 5)", + "cloakfr", "Cloak & Dagger (French)", + "cloakgr", "Cloak & Dagger (German)", + "cloaksp", "Cloak & Dagger (Spanish)", + "clocknch", "Lock'n'Chase (DECO Cassette)", + "closeenc", "Close Encounters of the Third Kind", + "cloud9", "Cloud 9 (prototype)", + "clown", "Clown", + "clowns", "Clowns (rev. 2)", + "clowns1", "Clowns (rev. 1)", + "clshroad", "Clash-Road", + "clshroadd", "Clash-Road (Data East license)", + "clshroads", "Clash-Road (Status license)", + "cltchitr", "Clutch Hitter (US, FD1094 317-0176)", + "cltchitrj", "Clutch Hitter (Japan, FD1094 317-0175)", + "club90s", "Mahjong CLUB 90's (set 1) (Japan 900919)", + "club90sa", "Mahjong CLUB 90's (set 2) (Japan 900919)", + "clubk2k3", "Club Kart: European Session (2003)", + "clubk2kf", "Club Kart: European Session (2003, not protected)", + "clubkprz", "Club Kart Prize", + "clubkpzb", "Club Kart Prize Ver. B", + "clubkrtd", "Club Kart: European Session (Rev D)", + "clubkrte", "Club Kart: European Session", + "cluckypo", "Lucky Poker (DECO Cassette)", + "cluclu", "Vs. Clu Clu Land", + "cluedo", "Cluedo (prod. 2D)", + "cluedo2", "Cluedo (prod. 2)", + "cluedo2c", "Cluedo (prod. 2C)", + "cluedod", "Cluedo (prod. 2D) (Protocol)", + "cmagica", "Carta Magica (Ver 1.8)", + "cmanhat", "Manhattan (DECO Cassette)", + "cmast91", "Cherry Master '91 (ver.1.30)", + "cmast92", "Cherry Master '92", + "cmast97", "Cherry Master '97", + "cmaster", "Cherry Master I (ver.1.01, set 1)", + "cmasterb", "Cherry Master I (ver.1.01, set 2)", + "cmasterbv", "Cherry Master I (ver.1.01, set 4, with Blitz Poker ROM?)", + "cmasterc", "Cherry Master I (ver.1.01, set 3)", + "cmasterd", "Cherry Master I (ver.1.01, set 5)", + "cmastere", "Cherry Master I (ver.1.01, set 6)", + "cmasterf", "Cherry Master I (ver.1.01, set 7)", + "cmehyou", "Mahjong Circuit no Mehyou (Japan)", + "cmezspin", "Cherry Master I (E-Z Spin bootleg / hack)", + "cmfun", "Cherry Master (Fun USA v2.5 bootleg / hack)", + "cmissnx", "Mission-X (DECO Cassette)", + "cmkenosp", "Coinmaster Keno (Y2K, Spanish, 2000-12-14)", + "cmkenospa", "Coinmaster Keno (Y2K, Spanish, 2000-12-02)", + "cmmb162", "Centipede / Millipede / Missile Command / Let's Go Bowling (rev 1.62)", + "cmrltv75", "Coinmaster Roulette V75 (Y2K, Spanish)", + "cmv4", "Cherry Master (ver.4, set 1)", + "cmv4a", "Cherry Master (ver.4, set 2)", + "cmv801", "Cherry Master (Corsica, ver.8.01)", + "cmwm", "Cherry Master (Watermelon bootleg / hack)", + "cndypuzl", "Candy Puzzle (v1.0)", + "cnightst", "Night Star (DECO Cassette, set 1)", + "cnightst2", "Night Star (DECO Cassette, set 2)", + "cninja", "Caveman Ninja (World ver 4)", + "cninja1", "Caveman Ninja (World ver 1)", + "cninjabl", "Caveman Ninja (bootleg)", + "cninjabl2", "Caveman Ninja (bootleg, alt)", + "cninjau", "Caveman Ninja (US ver 4)", + "cntct_l1", "Contact (L-1)", + "cntforce", "Counterforce", + "cntine31", "Continental 3 in 1 (Bingo)", + "cntinntl", "Continental (Bingo)", + "cntrygrl", "Country Girl (Japan set 1)", + "cntrygrla", "Country Girl (Japan set 2)", + "cntsteer", "Counter Steer (Japan)", + "cobra", "Cobra Command (Data East LD, set 1)", + "cobraa", "Cobra Command (Data East LD, set 2)", + "cobracom", "Cobra-Command (World revision 5)", + "cobracomj", "Cobra-Command (Japan)", + "cobram3", "Cobra Command (M.A.C.H. 3 hardware)", + "cobrap", "Cobra", + "cobraseg", "Cobra Command (Sega LaserDisc Hardware)", + "code1d", "Code One Dispatch (ver D)", + "code1db", "Code One Dispatch (ver B)", + "colmns97", "Columns '97 (JET 961209 V1.000)", + "colony7", "Colony 7 (set 1)", + "colony7a", "Colony 7 (set 2)", + "colorama", "Colorama (English)", + "colt", "Colt", + "columbia", "Columbia", + "columbus", "Columbus (set 1)", + "columbusa", "Columbus (set 2)", + "columbusb", "Columbus (set 3)", + "columbusc", "Columbus (set 4)", + "columbusd", "Columbus (set 5)", + "columbuse", "Columbus (set 6)", + "columbusf", "Columbus (set 7)", + "column2j", "Columns II: The Voyage Through Time (Japan)", + "columns", "Columns (World)", + "columns2", "Columns II: The Voyage Through Time (World)", + "columnsj", "Columns (Japan)", + "columnsu", "Columns (US, cocktail)", + "combat", "Combat (version 3.0)", + "combatsc", "Combat School (joystick)", + "combatscb", "Combat School (bootleg)", + "combatscj", "Combat School (Japan trackball)", + "combatsct", "Combat School (trackball)", + "combh", "Combat Hawk", + "comebaby", "Come On Baby", + "comet_l4", "Comet (L-4)", + "comet_l5", "Comet (L-5)", + "comg074", "Cal Omega - Game 7.4 (Gaming Poker, W.Export)", + "comg076", "Cal Omega - Game 7.6 (Arcade Poker)", + "comg079", "Cal Omega - Game 7.9 (Arcade Poker)", + "comg080", "Cal Omega - Game 8.0 (Arcade Black Jack)", + "comg094", "Cal Omega - Game 9.4 (Keno)", + "comg107", "Cal Omega - Game 10.7c (Big Game)", + "comg123", "Cal Omega - Game 12.3 (Ticket Poker)", + "comg125", "Cal Omega - Game 12.5 (Bingo)", + "comg127", "Cal Omega - Game 12.7 (Keno)", + "comg128", "Cal Omega - Game 12.8 (Arcade Game)", + "comg134", "Cal Omega - Game 13.4 (Nudge Bingo)", + "comg145", "Cal Omega - Game 14.5 (Pixels)", + "comg157", "Cal Omega - Game 15.7 (Double-Draw Poker)", + "comg159", "Cal Omega - Game 15.9 (Wild Double-Up)", + "comg164", "Cal Omega - Game 16.4 (Keno)", + "comg168", "Cal Omega - Game 16.8 (Keno)", + "comg172", "Cal Omega - Game 17.2 (Double Double Poker)", + "comg175", "Cal Omega - Game 17.51 (Gaming Draw Poker)", + "comg176", "Cal Omega - Game 17.6 (Nudge Bingo)", + "comg181", "Cal Omega - Game 18.1 (Nudge Bingo)", + "comg183", "Cal Omega - Game 18.3 (Pixels)", + "comg185", "Cal Omega - Game 18.5 (Pixels)", + "comg186", "Cal Omega - Game 18.6 (Pixels)", + "comg187", "Cal Omega - Game 18.7 (Amusement Poker)", + "comg204", "Cal Omega - Game 20.4 (Super Blackjack)", + "comg208", "Cal Omega - Game 20.8 (Winner's Choice)", + "comg227", "Cal Omega - Game 22.7 (Amusement Poker, d/d)", + "comg230", "Cal Omega - Game 23.0 (FC Bingo (4-card))", + "comg236", "Cal Omega - Game 23.6 (Hotline)", + "comg239", "Cal Omega - Game 23.9 (Gaming Draw Poker)", + "comg240", "Cal Omega - Game 24.0 (Gaming Draw Poker, hold)", + "comg246", "Cal Omega - Game 24.6 (Hotline)", + "comg272a", "Cal Omega - Game 27.2 (Keno, amusement)", + "comg272b", "Cal Omega - Game 27.2 (Keno, gaming)", + "comg5108", "Cal Omega - Game 51.08 (CEI Video Poker, Jacks or Better)", + "comg903d", "Cal Omega - System 903 Diag.PROM", + "comg905d", "Cal Omega - System 905 Diag.PROM", + "commando", "Commando (World)", + "commandob", "Commando (bootleg set 1)", + "commandob2", "Commando (bootleg set 2)", + "commandoj", "Senjou no Ookami", + "commandou", "Commando (US set 1)", + "commandou2", "Commando (US set 2)", + "commandw", "Command War - Super Special Battle & War Game (Ver 0.0J) (Prototype)", + "commsega", "Commando (Sega)", + "comotion", "Comotion", + "compgolf", "Competition Golf Final Round (revision 3)", + "compgolfo", "Competition Golf Final Round (old version)", + "complexx", "Complex X", + "condor", "Condor (bootleg of Phoenix)", + "coneyis", "Old Coney Island!", + "confmiss", "Confidential Mission (GDS-0001)", + "congo", "Congo Bongo (Rev C, 2 board stack)", + "congo_13", "Congo (1.3)", + "congo_20", "Congo (2.0)", + "congo_21", "Congo (2.1)", + "congoa", "Congo Bongo (Rev C, 3 board stack)", + "conquer", "Conqueror", + "contcirc", "Continental Circus (World)", + "contcircj", "Continental Circus (Japan)", + "contcircu", "Continental Circus (US set 1)", + "contcircua", "Continental Circus (US set 2)", + "contra", "Contra (US, set 1)", + "contra1", "Contra (US, set 2)", + "contrab", "Contra (bootleg)", + "contrabj", "Contra (Japan bootleg, set 1)", + "contrabj1", "Contra (Japan bootleg, set 2)", + "contraj", "Contra (Japan, set 1)", + "contraj1", "Contra (Japan, set 2)", + "cookbib", "Cookie & Bibi (set 1)", + "cookbib2", "Cookie & Bibi 2", + "cookbib3", "Cookie & Bibi 3", + "cookbiba", "Cookie & Bibi (set 2)", + "cookrace", "Cook Race", + "coolmini", "Cool Minigame Collection", + "coolpool", "Cool Pool", + "coolridr", "Cool Riders", + "coozumou", "Oozumou - The Grand Sumo (DECO Cassette, Japan)", + "cop01", "Cop 01 (set 1)", + "cop01a", "Cop 01 (set 2)", + "cops", "Cops", + "copsnrob", "Cops'n Robbers", + "coralr2", "Coral Riches II (1VXFC5472, New Zealand)", + "coronatn", "Coronation Street Quiz Game", + "coronatnd", "Coronation Street Quiz Game (Protocol)", + "corsario", "Corsario", + "corv_21", "Corvette (2.1)", + "corv_lx1", "Corvette (LX1)", + "corv_px4", "Corvette (PX4)", + "cosflash", "Cosmic Flash", + "cosmccop", "Cosmic Cop (World)", + "cosmic", "Cosmic", + "cosmica", "Cosmic Alien (version II)", + "cosmica1", "Cosmic Alien (first version)", + "cosmica2", "Cosmic Alien (early version II?)", + "cosmicg", "Cosmic Guerilla", + "cosmicgi", "Cosmic Guerilla (Spanish bootleg)", + "cosmicm2", "Cosmic Monsters 2", + "cosmicmo", "Cosmic Monsters (version II)", + "cosmo", "Cosmo", + "cosmogng", "Cosmo Gang the Video (US)", + "cosmogngj", "Cosmo Gang the Video (Japan)", + "cosmos", "Cosmos", + "cotton", "Cotton (set 4, World, FD1094 317-0181a)", + "cotton2", "Cotton 2 (JUET 970902 V1.000)", + "cottonbm", "Cotton Boomerang (JUET 980709 V1.000)", + "cottong", "Cotocoto Cottong", + "cottonj", "Cotton (set 2, Japan, Rev B, FD1094 317-0179b)", + "cottonja", "Cotton (set 1, Japan, Rev A, FD1094 317-0179a)", + "cottonu", "Cotton (set 3, US, FD1094 317-0180)", + "countdwn", "Count-Down", + "countrun", "Counter Run (NS6201-A 1988.3)", + "countrunb", "Counter Run (bootleg set 1)", + "countrunb2", "Counter Run (bootleg set 2)", + "countryc", "Country Club", + "couple", "The Couples (set 1)", + "couplei", "The Couples (set 3)", + "couplep", "The Couples (set 2)", + "cowboy", "Cowboy Eight Ball", + "cowrace", "Cow Race (King Derby hack)", + "cp_15", "The Champion Pub (1.5)", + "cp_16", "The Champion Pub (1.6)", + "cpoker", "Champion Poker (v220I)", + "cpokerpk", "Champion Italian PK (bootleg, blue board)", + "cpokerpkg", "Champion Italian PK (bootleg, green board)", + "cpokert", "Champion Poker (v200G)", + "cpokerx", "Champion Poker (v100)", + "cppicf", "Peter Pepper's Ice Cream Factory (DECO Cassette, set 1)", + "cppicf2", "Peter Pepper's Ice Cream Factory (DECO Cassette, set 2)", + "cprobowl", "Pro Bowling (DECO Cassette)", + "cprogolf", "Tournament Pro Golf (DECO Cassette)", + "cprogolf18", "18 Challenge Pro Golf (DECO Cassette, Japan)", + "cprogolfj", "Tournament Pro Golf (DECO Cassette, Japan)", + "cps3boot", "CPS3 Multi-game bootleg for HD6417095 type SH2 (New Generation, 3rd Strike, JoJo's Venture, JoJo's Bizarre Adventure, Red Earth)", + "cps3boota", "CPS3 Multi-game bootleg for dead security cart (New Generation, 2nd Impact, 3rd Strike)", + "cps3bs32", "Street Fighter III 2nd Impact: Giant Attack (USA 970930, bootleg for HD6417095 type SH2, V3)", + "cps3bs32a", "Street Fighter III 2nd Impact: Giant Attack (USA 970930, bootleg for HD6417095 type SH2, older)", + "cpsoccer", "Pro Soccer (DECO Cassette)", + "cpsoccerj", "Pro Soccer (DECO Cassette, Japan)", + "cptennis", "Pro Tennis (DECO Cassette)", + "cpthook", "Captain Hook", + "cpzn1", "ZN1", + "cpzn2", "ZN2", + "cr589fw", "CD-ROM Drive Updater 2.0 (700B04)", + "cr589fwa", "CD-ROM Drive Updater (700A04)", + "crackndj", "Crackin' DJ", + "cracksht", "Crackshot (version 2.0)", + "crakndj2", "Crackin' DJ Part 2", + "crash", "Crash", + "crater", "Crater Raider", + "crazyblk", "Crazy Blocks", + "crazycop", "Crazy Cop (Japan)", + "crazyfgt", "Crazy Fight", + "crazywar", "Crazy War", + "crbaloon", "Crazy Balloon (set 1)", + "crbaloon2", "Crazy Balloon (set 2)", + "crgolf", "Crowns Golf (834-5419-04)", + "crgolfa", "Crowns Golf (834-5419-03)", + "crgolfb", "Crowns Golf (set 3)", + "crgolfbt", "Champion Golf (bootleg)", + "crgolfc", "Champion Golf", + "crgolfhi", "Crowns Golf in Hawaii", + "crimec", "Crime City (World)", + "crimecj", "Crime City (Japan)", + "crimecu", "Crime City (US)", + "crimep2", "Crime Patrol 2: Drug Wars v1.3", + "crimep211", "Crime Patrol 2: Drug Wars v1.1", + "crimepat", "Crime Patrol v1.4", + "crimfght", "Crime Fighters (US 4 players)", + "crimfght2", "Crime Fighters (World 2 Players)", + "crimfghtj", "Crime Fighters (Japan 2 Players)", + "crisscrs", "Criss Cross (Sweden)", + "critcrsh", "Critter Crusher (EA 951204 V1.000)", + "crkdown", "Crack Down (World, Floppy Based, FD1094 317-0058-04c)", + "crkdownj", "Crack Down (Japan, Floppy Based, FD1094 317-0058-04b Rev A)", + "crkdownu", "Crack Down (US, Floppy Based, FD1094 317-0058-04d)", + "crockman", "Crock-Man", + "croquis", "Croquis (Germany)", + "crospang", "Cross Pang", + "crossbld", "Cross Blades! (Japan)", + "crossbow", "Crossbow (version 2.0)", + "croupier", "Croupier (Playmark Roulette v.20.05)", + "croupiera", "Croupier (Playmark Roulette v.09.04)", + "crsbingo", "Poker Carnival", + "crshnscr", "Crash 'n Score [TTL]", + "crshrace", "Lethal Crash Race (set 1)", + "crshrace2", "Lethal Crash Race (set 2)", + "crsword", "Crossed Swords (ALM-002)(ALH-002)", + "crszone", "Crisis Zone (CSZO4 Ver. B)", + "crszonev2a", "Crisis Zone (CSZO2 Ver. A)", + "crszonev3a", "Crisis Zone (CSZO3 Ver. A)", + "crszonev3b", "Crisis Zone (CSZO3 Ver. B, set 1)", + "crszonev3b2", "Crisis Zone (CSZO3 Ver. B, set 2)", + "crszonev4a", "Crisis Zone (CSZO4 Ver. A)", + "crtaxihr", "Crazy Taxi High Roller (Rev B) (GDX-0002B)", + "cruisin", "Cruisin", + "crush", "Crush Roller (set 1)", + "crush2", "Crush Roller (set 2)", + "crush3", "Crush Roller (set 3)", + "crush4", "Crush Roller (set 4)", + "crushbl", "Crush Roller (bootleg set 1)", + "crushbl2", "Crush Roller (bootleg set 2)", + "crushbl3", "Crush Roller (bootleg set 3)", + "crusherm", "Crusher Makochan (Japan)", + "crushs", "Crush Roller (bootleg set 4)", + "crusnexo", "Cruis'n Exotica (version 2.4)", + "crusnexoa", "Cruis'n Exotica (version 2.0)", + "crusnexob", "Cruis'n Exotica (version 1.6)", + "crusnexoc", "Cruis'n Exotica (version 1.3)", + "crusnexod", "Cruis'n Exotica (version 1.0)", + "crusnusa", "Cruis'n USA (rev L4.1)", + "crusnusa21", "Cruis'n USA (rev L2.1)", + "crusnusa40", "Cruis'n USA (rev L4.0)", + "crusnwld", "Cruis'n World (rev L2.5)", + "crusnwld13", "Cruis'n World (rev L1.3)", + "crusnwld17", "Cruis'n World (rev L1.7)", + "crusnwld19", "Cruis'n World (rev L1.9)", + "crusnwld20", "Cruis'n World (rev L2.0)", + "crusnwld23", "Cruis'n World (rev L2.3)", + "crusnwld24", "Cruis'n World (rev L2.4)", + "cryptklr", "Crypt Killer (GQ420 UAA)", + "crysbios", "Crystal System BIOS", + "crysking", "The Crystal of Kings", + "crystal", "Crystal Colours (CMC hardware)", + "crystal2", "Crystal Gal 2 (Japan 860620)", + "crystalc", "Crystals Colours (Ver 1.01)", + "crystalg", "Crystal Gal (Japan 860512)", + "crystals", "Crystal Springs (10155811, Malaysia)", + "crzmon2", "Crazy Monkey 2 (100310)", + "crzmon2_2", "Crazy Monkey 2 (100311 Lottery)", + "crzmon2_3", "Crazy Monkey 2 (100315 Entertainment)", + "crzrally", "Crazy Rally (set 1)", + "crzrallya", "Crazy Rally (set 2)", + "crzrallyg", "Crazy Rally (Gecas license)", + "crzytaxi", "Crazy Taxi (JPN, USA, EXP, KOR, AUS)", + "csclub", "Capcom Sports Club (Euro 971017)", + "csclub1", "Capcom Sports Club (Euro 970722)", + "csclub1d", "Capcom Sports Club (Euro 970722 Phoenix Edition) (bootleg)", + "cscluba", "Capcom Sports Club (Asia 970722)", + "csclubh", "Capcom Sports Club (Hispanic 970722)", + "csclubj", "Capcom Sports Club (Japan 970722)", + "csclubjy", "Capcom Sports Club (Japan 970722, yellow case)", + "cscrtry", "Scrum Try (DECO Cassette, set 1)", + "cscrtry2", "Scrum Try (DECO Cassette, set 2)", + "csdtenis", "Super Doubles Tennis (DECO Cassette, Japan)", + "cshift", "Chicken Shift", + "cshooter", "Cross Shooter (not encrypted)", + "cshootere", "Cross Shooter (encrypted)", + "csilver", "Captain Silver (World)", + "csilverj", "Captain Silver (Japan)", + "csk227it", "Champion Skill (with Ability)", + "csk234it", "Champion Skill (Ability, Poker & Symbols)", + "cskater", "Skater (DECO Cassette, Japan)", + "csmash", "Cosmic Smash (JPN, USA, EXP, KOR, AUS) (Rev A)", + "csmasho", "Cosmic Smash (JPN, USA, EXP, KOR, AUS)", + "csmic_l1", "Cosmic Gunfight (L-1)", + "cspike", "Gun Spike (JPN) / Cannon Spike (USA, EXP, KOR, AUS)", + "csplayh1", "Super CD Dai8dan Mahjong Hanafuda Cosplay Tengoku (Japan)", + "csplayh5", "Mahjong Hanafuda Cosplay Tengoku 5 (Japan)", + "csplayh7", "Cosplay Tengoku 7 - Super Kogal Grandprix (Japan)", + "csprint", "Championship Sprint (rev 3)", + "csprint1", "Championship Sprint (rev 1)", + "csprint2", "Championship Sprint (rev 2)", + "csprintf", "Championship Sprint (French)", + "csprintg", "Championship Sprint (German, rev 2)", + "csprintg1", "Championship Sprint (German, rev 1)", + "csprints", "Championship Sprint (Spanish, rev 2)", + "csprints1", "Championship Sprint (Spanish, rev 1)", + "cstlevna", "Vs. Castlevania", + "cstripxi", "Casino Strip XI", + "csuperas", "Super Astro Fighter (DECO Cassette)", + "cswat", "Cosmoswat", + "csweetht", "Sweet Heart (DECO Cassette)", + "ct2k3sa", "Crouching Tiger Hidden Dragon 2003 Super Plus alternate (The King of Fighters 2001 bootleg)", + "ct2k3sp", "Crouching Tiger Hidden Dragon 2003 Super Plus (The King of Fighters 2001 bootleg)", + "ctcheese", "Cut The Cheese (Redemption)", + "ctchzdlx", "Cut The Cheese Deluxe (Redemption)", + "cterrani", "Terranean (DECO Cassette)", + "cthd2003", "Crouching Tiger Hidden Dragon 2003 (The King of Fighters 2001 bootleg)", + "ctisland", "Treasure Island (DECO Cassette, set 1)", + "ctisland2", "Treasure Island (DECO Cassette, set 2)", + "ctisland3", "Treasure Island (DECO Cassette, set 3)", + "ctomaday", "Captain Tomaday", + "ctornado", "Tornado (DECO Cassette)", + "ctribe", "The Combatribes (US)", + "ctribe1", "The Combatribes (US set 1?)", + "ctribeb", "The Combatribes (bootleg set 1)", + "ctribeb2", "The Combatribes (bootleg set 2)", + "ctribej", "The Combatribes (Japan)", + "ctrpllrp", "Caterpillar Pacman Hack", + "ctsttape", "Test Tape (DECO Cassette)", + "cubeqst", "Cube Quest (01/04/84)", + "cubeqsta", "Cube Quest (12/30/83)", + "cubybop", "Cuby Bop (location test)", + "cueball", "Cue Ball Wizard", + "cuebrick", "Cue Brick (World version D)", + "cuebrickj", "Cue Brick (Japan)", + "cultname", "Seimei-Kantei-Meimei-Ki Cult Name", + "cultures", "Jibun wo Migaku Culture School Mahjong Hen", + "cuoreuno", "Cuore 1 (Italian)", + "cupfinal", "Taito Cup Finals (Ver 1.0O 1993/02/28)", + "cupsoc", "Seibu Cup Soccer (set 1)", + "cupsoca", "Seibu Cup Soccer (set 2)", + "cupsocb", "Seibu Cup Soccer (set 3)", + "cupsocs", "Seibu Cup Soccer :Selection: (set 1)", + "cupsocs2", "Seibu Cup Soccer :Selection: (set 2)", + "cupsocsb", "Seibu Cup Soccer :Selection: (bootleg, set 1)", + "cupsocsb2", "Seibu Cup Soccer :Selection: (bootleg, set 2)", + "cupsocsb3", "Seibu Cup Soccer :Selection: (bootleg, set 3)", + "curvebal", "Curve Ball", + "cutieq", "Cutie Q", + "cv_10", "Cirqus Voltaire (1.0)", + "cv_11", "Cirqus Voltaire (1.1)", + "cv_13", "Cirqus Voltaire (1.3)", + "cv_14", "Cirqus Voltaire (1.4)", + "cv_20h", "Cirqus Voltaire (2.0H)", + "cvs2gd", "Capcom Vs. SNK 2 Millionaire Fighting 2001 (Rev A) (GDL-0007A)", + "cvsgd", "Capcom Vs. SNK Millennium Fight 2000 Pro (GDL-0004)", + "cworld", "Capcom World (Japan)", + "cworld2j", "Adventure Quiz Capcom World 2 (Japan 920611)", + "cybattlr", "Cybattler", + "cyberbal", "Cyberball (rev 4)", + "cyberbal2", "Cyberball (rev 2)", + "cyberbal2p", "Cyberball 2072 (2 player, rev 4)", + "cyberbal2p1", "Cyberball 2072 (2 player, rev 1)", + "cyberbal2p2", "Cyberball 2072 (2 player, rev 2)", + "cyberbal2p3", "Cyberball 2072 (2 player, rev 3)", + "cyberbalp", "Cyberball (prototype)", + "cyberbalt", "Tournament Cyberball 2072 (rev 2)", + "cyberbalt1", "Tournament Cyberball 2072 (rev 1)", + "cyberlip", "Cyber-Lip (NGM-010)", + "cybertnk", "Cyber Tank (v1.4)", + "cybots", "Cyberbots: Fullmetal Madness (Euro 950424)", + "cybotsj", "Cyberbots: Fullmetal Madness (Japan 950420)", + "cybotsjd", "Cyberbots: Fullmetal Madness (Japan 950424) (decrypted bootleg)", + "cybotsu", "Cyberbots: Fullmetal Madness (USA 950424)", + "cybotsud", "Cyberbots: Fullmetal Madness (USA 950424 Phoenix Edition) (bootleg)", + "cybrcomm", "Cyber Commando (Rev. CY1, Japan)", + "cybrcycc", "Cyber Cycles (Rev. CB2 Ver.C)", + "cybrnaut", "Cybernaut", + "cybsled", "Cyber Sled (World)", + "cybsledj", "Cyber Sled (Japan)", + "cyclemb", "Cycle Maabou (Japan)", + "cycln_l4", "Cyclone (L-4)", + "cycln_l5", "Cyclone (L-5)", + "cyclopes", "Cyclopes", + "cyclshtg", "Cycle Shooting", + "cyclwarr", "Cycle Warriors (set 1)", + "cyclwarra", "Cycle Warriors (set 2)", + "cyvern", "Cyvern (US)", + "cyvernj", "Cyvern (Japan)", + "czeroize", "Zeroize (DECO Cassette)", + "czmon_13", "Crazy Monkey (100311 World)", + "czmon_15", "Crazy Monkey (100311 Entertainment)", + "czmon_16", "Crazy Monkey (100312 Russia)", + "czmon_5", "Crazy Monkey (030421 World)", + "czmon_7", "Crazy Monkey (031110 World)", + "czmon_7a", "Crazy Monkey (bootleg, 031110, backdoor set 1)", + "czmon_7b", "Crazy Monkey (bootleg, 031110, backdoor set 2)", + "czmon_8", "Crazy Monkey (050120 World)", + "czmon_8a", "Crazy Monkey (bootleg, 050120, backdoor)", + "czmon_8b", "Crazy Monkey (bootleg, 050120, changed version text)", + "czmon_8c", "Crazy Monkey (bootleg, 050120, VIDEO GAME-1 CM01)", + "czmon_8d", "Crazy Monkey (bootleg, 050120, LOTTOGAME (I))", + "czmon_8e", "Crazy Monkey (bootleg, 050120, LOTO PROGRAM V-CM2)", + "czmon_8f", "Crazy Monkey (bootleg, 050120, LOTOS CM01)", + "czmon_9", "Crazy Monkey (070315 Russia)", + "czmon_9a", "Crazy Monkey (bootleg, 070315, VIDEO GAME-1 O01 set 1)", + "czmon_9b", "Crazy Monkey (bootleg, 070315, VIDEO GAME-1 O01 set 2)", + "czmon_9c", "Crazy Monkey (bootleg, 070315, payout percentage 70)", + "d9final", "Dream 9 Final (v2.24)", + "dacholer", "Dacholer", + "dadandrn", "Kyukyoku Sentai Dadandarn (ver JAA)", + "dai2kaku", "Dai-Dai-Kakumei (Japan)", + "dai3wksi", "Dai San Wakusei Meteor (Japan)", + "daikaiju", "Daikaiju no Gyakushu", + "daimakai", "Daimakaimura (Japan)", + "daimakair", "Daimakaimura (Japan Resale Ver.)", + "daimyojn", "Mahjong Daimyojin (Japan, T017-PB-00)", + "daioh", "Daioh (set 1)", + "daioha", "Daioh (set 2)", + "daireika", "Mahjong Daireikai (Japan)", + "dairesya", "Dai Ressya Goutou (Japan)", + "daisenpu", "Daisenpu (Japan)", + "daiskiss", "Daisu-Kiss (ver JAA)", + "daisyari", "Daisyarin [BET] (Japan)", + "daitorid", "Daitoride", + "daitorida", "Daitoride (YMF278B version)", + "daiyogen", "Mahjong Daiyogen (Japan)", + "dakar", "Dakar", + "dakkochn", "DakkoChan House (MC-8123B, 317-5014)", + "dambustr", "Dambusters (US, set 1)", + "dambustra", "Dambusters (US, set 2)", + "dambustruk", "Dambusters (UK)", + "danceyes", "Dancing Eyes (US, DC3/VER.C)", + "danceyesj", "Dancing Eyes (Japan, DC1/VER.A)", + "danchih", "Danchi de Hanafuda (J 990607 V1.400)", + "danchiq", "Danchi de Quiz Okusan Yontaku Desuyo! (J 001128 V1.200)", + "dangar", "Ufo Robo Dangar (12/1/1986)", + "dangar2", "Ufo Robo Dangar (9/26/1986)", + "dangarb", "Ufo Robo Dangar (bootleg)", + "dangcurv", "Dangerous Curves (Ver 2.2 J)", + "dangerz", "Danger Zone", + "dangseed", "Dangerous Seed (Japan)", + "dankuga", "Dan-Ku-Ga (Ver 0.0J 1994/12/13) (Prototype)", + "daraku", "Daraku Tenshi - The Fallen Angels", + "darius", "Darius (World)", + "darius2", "Darius II (triple screen) (Japan)", + "darius2d", "Darius II (dual screen) (Japan, Rev 2)", + "darius2do", "Darius II (dual screen) (Japan, Rev 1)", + "dariuse", "Darius (Extra) (Japan)", + "dariusg", "Darius Gaiden - Silver Hawk (Ver 2.5O 1994/09/19)", + "dariusgj", "Darius Gaiden - Silver Hawk (Ver 2.5J 1994/09/19)", + "dariusgu", "Darius Gaiden - Silver Hawk (Ver 2.5A 1994/09/19)", + "dariusgx", "Darius Gaiden - Silver Hawk Extra Version (Ver 2.7J 1995/03/06) (Official Hack)", + "dariusj", "Darius (Japan)", + "dariuso", "Darius (Japan old version)", + "darkadv", "Dark Adventure", + "darkedge", "Dark Edge (World)", + "darkedgej", "Dark Edge (Japan)", + "darkhleg", "Dark Horse Legend (GX706 VER. JAA)", + "darkhors", "Dark Horse (bootleg of Jockey Club II)", + "darkmist", "The Lost Castle In Darkmist", + "darkplnt", "Dark Planet", + "darkseal", "Dark Seal (World revision 3)", + "darkseal1", "Dark Seal (World revision 1)", + "darkseal2", "Dark Seal 2 (Japan v2.1)", + "darksealj", "Dark Seal (Japan revision 4)", + "darkshad", "Dark Shadow", + "darktowr", "Dark Tower", + "darkwar", "Dark Warrior", + "darthvdr", "Darth Vader (bootleg of Space Invaders)", + "darwin", "Darwin 4078 (Japan)", + "dassault", "Desert Assault (US)", + "dassault4", "Desert Assault (US 4 Players)", + "dayto2pe", "Daytona USA 2 Power Edition", + "daytona", "Daytona USA (Japan, Revision A)", + "daytona2", "Daytona USA 2 (Revision A)", + "daytona93", "Daytona USA Deluxe '93", + "daytonam", "Daytona USA (Japan, To The MAXX)", + "daytonas", "Daytona USA (With Saturn Adverts)", + "daytonase", "Daytona USA Special Edition (Japan, Revision A)", + "daytonat", "Daytona USA (Japan, Turbo hack, set 1)", + "daytonata", "Daytona USA (Japan, Turbo hack, set 2)", + "dazzler", "Dazzler", + "dbc", "Da Ban Cheng (Hong Kong, V027H)", + "dblaxle", "Double Axle (US)", + "dblaxleu", "Double Axle (US, earlier)", + "dblchal", "Double Challenge (Version 1.5R, set 1)", + "dblchalc1", "Double Challenge (Version 1.5R, set 2)", + "dblchald1", "Double Challenge (Version 1.5R, set 3)", + "dblchalo", "Double Challenge (Version 1.1)", + "dblchalv1", "Double Challenge (Version 1.5R Dual)", + "dblcrown", "Double Crown (v1.0.3)", + "dbldynj", "The Double Dynamites (Japan)", + "dbldynu", "The Double Dynamites (US)", + "dblewing", "Double Wings", + "dblplay", "Super Baseball Double Play Home Run Derby", + "dblpoint", "Double Point", + "dblpointd", "Double Point (Dong Bang Electron, bootleg?)", + "dbreed", "Dragon Breed (M81 PCB version)", + "dbreedm72", "Dragon Breed (M72 PCB version)", + "dbz", "Dragonball Z (rev B)", + "dbz2", "Dragonball Z 2 - Super Battle", + "dbza", "Dragonball Z (rev A)", + "dbzvrvs", "Dragon Ball Z V.R.V.S. (Japan)", + "dcclub", "Dynamic Country Club (World, ROM Based)", + "dcclubfd", "Dynamic Country Club (US, Floppy Based, FD1094 317-0058-09d)", + "dcclubj", "Dynamic Country Club (Japan, ROM Based)", + "dcheese", "Double Cheese", + "dcon", "D-Con", + "dcrown", "Dream Crown (Set 1)", + "dcrowna", "Dream Crown (Set 2)", + "dd_l2", "Dr. Dude (LA-2)", + "dd_p06", "Dr. Dude (PA-6 WPC)", + "dd_p6", "Dr. Dude (PA-6)", + "dd_p7", "Dr. Dude (PA-7 WPC)", + "dday", "D-Day", + "ddayc", "D-Day (Centuri)", + "ddayjlc", "D-Day (Jaleco set 1)", + "ddayjlca", "D-Day (Jaleco set 2)", + "ddcrew", "D. D. Crew (World, 3 Players, FD1094 317-0190)", + "ddcrew1", "D. D. Crew (World, 4 Players, FD1094 317-0187)", + "ddcrew2", "D. D. Crew (World, 2 Players, FD1094 317-0184)", + "ddcrewj", "D. D. Crew (Japan, 4 Players, FD1094 317-0185)", + "ddcrewj2", "D. D. Crew (Japan, 2 Players, FD1094 317-0182)", + "ddcrewu", "D. D. Crew (US, 4 Players, FD1094 317-0186)", + "ddealer", "Double Dealer", + "ddenlovj", "Don Den Lover Vol. 1 - Shiro Kuro Tsukeyo! (Japan)", + "ddenlovr", "Don Den Lover Vol. 1 (Hong Kong)", + "ddenlovrb", "Don Den Lover Vol. 1 - Heukbaeg-euro Jeonghaja (Korea, bootleg)", + "ddenlovrk", "Don Den Lover Vol. 1 - Heukbaeg-euro Jeonghaja (Korea)", + "ddonpach", "DoDonPachi (International, Master Ver. 97/02/05)", + "ddonpachj", "DoDonPachi (Japan, Master Ver. 97/02/05)", + "ddp2", "DoDonPachi II - Bee Storm (World, ver. 102)", + "ddp2100", "DoDonPachi II - Bee Storm (World, ver. 100)", + "ddp2100c", "DoDonPachi II - Bee Storm (China, ver. 100)", + "ddp2100hk", "DoDonPachi II - Bee Storm (Hong Kong, ver. 100)", + "ddp2100j", "DoDonPachi II - Bee Storm (Japan, ver. 100)", + "ddp2100k", "DoDonPachi II - Bee Storm (Korea, ver. 100)", + "ddp2100t", "DoDonPachi II - Bee Storm (Taiwan, ver. 100)", + "ddp2101", "DoDonPachi II - Bee Storm (World, ver. 101)", + "ddp2101c", "DoDonPachi II - Bee Storm (China, ver. 101)", + "ddp2101hk", "DoDonPachi II - Bee Storm (Hong Kong, ver. 101)", + "ddp2101j", "DoDonPachi II - Bee Storm (Japan, ver. 101)", + "ddp2101k", "DoDonPachi II - Bee Storm (Korea, ver. 101)", + "ddp2101t", "DoDonPachi II - Bee Storm (Taiwan, ver. 101)", + "ddp2c", "DoDonPachi II - Bee Storm (China, ver. 102)", + "ddp2hk", "DoDonPachi II - Bee Storm (Hong Kong, ver. 102)", + "ddp2j", "DoDonPachi II - Bee Storm (Japan, ver. 102)", + "ddp2k", "DoDonPachi II - Bee Storm (Korea, ver. 102)", + "ddp2t", "DoDonPachi II - Bee Storm (Taiwan, ver. 102)", + "ddpdfk", "DoDonPachi Dai-Fukkatsu Ver 1.5 (2008/06/23 MASTER VER 1.5)", + "ddpdfk10", "DoDonPachi Dai-Fukkatsu Ver 1.0 (2008/05/16 MASTER VER)", + "ddpdoj", "DoDonPachi Dai-Ou-Jou V101 (2002.04.05.Master Ver)", + "ddpdoja", "DoDonPachi Dai-Ou-Jou V100 (2002.04.05.Master Ver)", + "ddpdojb", "DoDonPachi Dai-Ou-Jou (2002.04.05 Master Ver)", + "ddpdojblk", "DoDonPachi Dai-Ou-Jou (2002.10.07.Black Ver)", + "ddpdojblka", "DoDonPachi Dai-Ou-Jou (2002.10.07 Black Ver)", + "ddpdojh", "Dodonpachi Daioujou Tamashii (V201, China)", + "ddr2m", "Dance Dance Revolution 2nd Mix (GN895 VER. JAA)", + "ddr2mc", "Dance Dance Revolution 2nd Mix with beatmaniaIIDX CLUB VERSiON (GE896 VER. JAA)", + "ddr2mc2", "Dance Dance Revolution 2nd Mix with beatmaniaIIDX substream CLUB VERSiON 2 (GE984 VER. JAA)", + "ddr2ml", "Dance Dance Revolution 2nd Mix - Link Ver (GE885 VER. JAB)", + "ddr2mla", "Dance Dance Revolution 2nd Mix - Link Ver (GE885 VER. JAA)", + "ddr3ma", "Dance Dance Revolution 3rd Mix (GN887 VER. AAA)", + "ddr3mj", "Dance Dance Revolution 3rd Mix (GN887 VER. JAA)", + "ddr3mk", "Dance Dance Revolution 3rd Mix - Ver.Korea2 (GN887 VER. KBA)", + "ddr3mka", "Dance Dance Revolution 3rd Mix - Ver.Korea (GN887 VER. KAA)", + "ddr3mp", "Dance Dance Revolution 3rd Mix Plus (G*A22 VER. JAA)", + "ddr4m", "Dance Dance Revolution 4th Mix (G*A33 VER. AAA)", + "ddr4mj", "Dance Dance Revolution 4th Mix (G*A33 VER. JAA)", + "ddr4mp", "Dance Dance Revolution 4th Mix Plus (G*A34 VER. JAA)", + "ddr4mps", "Dance Dance Revolution 4th Mix Plus Solo (G*A34 VER. JBA)", + "ddr4ms", "Dance Dance Revolution 4th Mix Solo (G*A33 VER. ABA)", + "ddr4msj", "Dance Dance Revolution 4th Mix Solo (G*A33 VER. JBA)", + "ddr5m", "Dance Dance Revolution 5th Mix (G*A27 VER. JAA)", + "ddra", "Dance Dance Revolution (GN845 VER. AAA)", + "ddragon", "Double Dragon (Japan)", + "ddragon2", "Double Dragon II - The Revenge (World)", + "ddragon2u", "Double Dragon II - The Revenge (US)", + "ddragon3", "Double Dragon 3 - The Rosetta Stone (US)", + "ddragon3b", "Double Dragon 3 - The Rosetta Stone (bootleg)", + "ddragon3j", "Double Dragon 3 - The Rosetta Stone (Japan)", + "ddragon3p", "Double Dragon 3 - The Rosetta Stone (prototype)", + "ddragon6809", "Double Dragon (bootleg with 3xM6809, set 1)", + "ddragon6809a", "Double Dragon (bootleg with 3xM6809, set 2)", + "ddragonb", "Double Dragon (bootleg with HD6309)", + "ddragonb2", "Double Dragon (bootleg)", + "ddragonba", "Double Dragon (bootleg with M6803)", + "ddragonu", "Double Dragon (US set 1)", + "ddragonua", "Double Dragon (US set 2)", + "ddragonub", "Double Dragon (US set 3)", + "ddragonw", "Double Dragon (World set 1)", + "ddragonw1", "Double Dragon (World set 2)", + "ddrbocd", "Dance Dance Revolution Best of Cool Dancers (GE892 VER. JAA)", + "ddream95", "Dunk Dream '95 (Japan 1.4, EAM)", + "ddrextrm", "Dance Dance Revolution Extreme (G*C36 VER. JAA)", + "ddribble", "Double Dribble", + "ddribblep", "Double Dribble (prototype?)", + "ddrj", "Dance Dance Revolution - Internet Ranking Ver (GC845 VER. JBA)", + "ddrja", "Dance Dance Revolution (GC845 VER. JAA)", + "ddrjb", "Dance Dance Revolution (GC845 VER. JAB)", + "ddrmax", "DDR Max - Dance Dance Revolution 6th Mix (G*B19 VER. JAA)", + "ddrmax2", "DDR Max 2 - Dance Dance Revolution 7th Mix (G*B20 VER. JAA)", + "ddrs2k", "Dance Dance Revolution Solo 2000 (GC905 VER. AAA)", + "ddrs2kj", "Dance Dance Revolution Solo 2000 (GC905 VER. JAA)", + "ddrsbm", "Dance Dance Revolution Solo Bass Mix (GQ894 VER. JAA)", + "ddru", "Dance Dance Revolution (GN845 VER. UAA)", + "ddrusa", "Dance Dance Revolution USA (G*A44 VER. UAA)", + "ddsom", "Dungeons & Dragons: Shadow over Mystara (Euro 960619)", + "ddsoma", "Dungeons & Dragons: Shadow over Mystara (Asia 960619)", + "ddsomb", "Dungeons & Dragons: Shadow over Mystara (Brazil 960223)", + "ddsomh", "Dungeons & Dragons: Shadow over Mystara (Hispanic 960223)", + "ddsomj", "Dungeons & Dragons: Shadow over Mystara (Japan 960619)", + "ddsomjr1", "Dungeons & Dragons: Shadow over Mystara (Japan 960206)", + "ddsomr1", "Dungeons & Dragons: Shadow over Mystara (Euro 960223)", + "ddsomr2", "Dungeons & Dragons: Shadow over Mystara (Euro 960209)", + "ddsomr3", "Dungeons & Dragons: Shadow over Mystara (Euro 960208)", + "ddsomu", "Dungeons & Dragons: Shadow over Mystara (USA 960619)", + "ddsomud", "Dungeons & Dragons: Shadow over Mystara (USA 960619 Phoenix Edition) (bootleg)", + "ddsomur1", "Dungeons & Dragons: Shadow over Mystara (USA 960209)", + "ddtod", "Dungeons & Dragons: Tower of Doom (Euro 940412)", + "ddtoda", "Dungeons & Dragons: Tower of Doom (Asia 940412)", + "ddtodar1", "Dungeons & Dragons: Tower of Doom (Asia 940113)", + "ddtodd", "Dungeons & Dragons: Tower of Doom (Euro 940412 Phoenix Edition) (bootleg)", + "ddtodh", "Dungeons & Dragons: Tower of Doom (Hispanic 940412)", + "ddtodhr1", "Dungeons & Dragons: Tower of Doom (Hispanic 940125)", + "ddtodhr2", "Dungeons & Dragons: Tower of Doom (Hispanic 940113)", + "ddtodj", "Dungeons & Dragons: Tower of Doom (Japan 940412)", + "ddtodjr1", "Dungeons & Dragons: Tower of Doom (Japan 940125)", + "ddtodjr2", "Dungeons & Dragons: Tower of Doom (Japan 940113)", + "ddtodr1", "Dungeons & Dragons: Tower of Doom (Euro 940113)", + "ddtodu", "Dungeons & Dragons: Tower of Doom (USA 940125)", + "ddtodur1", "Dungeons & Dragons: Tower of Doom (USA 940113)", + "ddungeon", "Dangerous Dungeons (set 1)", + "ddungeone", "Dangerous Dungeons (set 2)", + "ddux", "Dynamite Dux (set 3, World, FD1094 317-0096)", + "ddux1", "Dynamite Dux (set 1, 8751 317-0095)", + "dduxbl", "Dynamite Dux (Datsu bootleg)", + "dduxj", "Dynamite Dux (set 2, Japan, FD1094 317-0094)", + "ddz", "Dou Di Zhu", + "deadang", "Dead Angle", + "deadconx", "Dead Connection (World)", + "deadconxj", "Dead Connection (Japan)", + "deadeye", "Dead Eye", + "deadweap", "Deadly Weapon", + "dealer", "The Dealer", + "deathbrd", "Death Brade (Japan ver JM-3)", + "deathcox", "Death Crimson OX (JPN, USA, EXP, KOR, AUS)", + "deathrac", "Death Race [TTL]", + "deathsm2", "Deathsmiles II: Makai no Merry Christmas (2009/10/14 MASTER VER 4.00)", + "deathsml", "Deathsmiles (2007/10/09 MASTER VER)", + "decathlt", "Decathlete (JUET 960709 V1.001)", + "decathlto", "Decathlete (JUET 960424 V1.000)", + "decocass", "DECO Cassette System", + "deerhunt", "Deer Hunting USA V4.3", + "deerhunta", "Deer Hunting USA V4.2", + "deerhuntb", "Deer Hunting USA V4.0", + "deerhuntc", "Deer Hunting USA V3", + "deerhuntd", "Deer Hunting USA V2", + "deerhunte", "Deer Hunting USA V1", + "defcmnd", "Defense Command (Defender bootleg)", + "defence", "Defence Command (Defender bootleg)", + "defender", "Defender (Red label)", + "defenderb", "Defender (Blue label)", + "defenderg", "Defender (Green label)", + "defenderw", "Defender (White label)", + "defense", "Defense (System 16B, FD1089A 317-0028)", + "defndjeu", "Defender (bootleg)", + "deltrace", "Delta Race", + "deluxe5", "Deluxe 5 (ver. 0107, 07/01/2000, set 1)", + "deluxe5a", "Deluxe 5 (ver. 0107, 07/01/2000, set 2)", + "deluxe5b", "Deluxe 5 (ver. 0107, 07/01/2000, set 3)", + "demndrgn", "Demons & Dragons (prototype)", + "demoderb", "Demolition Derby", + "demoderbc", "Demolition Derby (cocktail)", + "demoderm", "Demolition Derby (MCR-3 Mono Board Version)", + "demofist", "Demolish Fist", + "demon", "Demon", + "demoneye", "Demoneye-X", + "demonwld", "Demon's World / Horror Story (set 1)", + "demonwld1", "Demon's World / Horror Story (set 2)", + "demonwld2", "Demon's World / Horror Story (set 3)", + "demonwld3", "Demon's World / Horror Story (set 4)", + "dendego", "Densha de GO! (Ver 2.2 J)", + "dendego2", "Densha de GO! 2 Kousoku-hen (Ver 2.5 J)", + "dendego23k", "Densha de GO! 2 Kousoku-hen 3000-bandai (Ver 2.20 J)", + "dendegox", "Densha de GO! EX (Ver 2.4 J)", + "denjinmk", "Denjin Makai", + "denseib", "Ghost Chaser Densei (SNES bootleg)", + "depthch", "Depthcharge", + "depthcho", "Depthcharge (older)", + "derbyo2k", "Derby Owners Club 2000 (Rev A)", + "derbyoc", "Derby Owners Club (JPN, USA, EXP, KOR, AUS) (Rev B)", + "derbyoc2", "Derby Owners Club II (JPN, USA, EXP, KOR, AUS) (Rev B)", + "derbyocw", "Derby Owners Club World Edition (JPN, USA, EXP, KOR, AUS) (Rev D)", + "deroon", "Deroon DeroDero", + "desert", "Desert Tank", + "desertbr", "Desert Breaker (World, FD1094 317-0196)", + "desertbrj", "Desert Breaker (Japan, FD1094 317-0194)", + "desertdn", "Desert Dan", + "desertgu", "Desert Gun", + "desertwr", "Desert War / Wangan Sensou", + "destdrby", "Destruction Derby [TTL]", + "desterth", "Destination Earth (bootleg of Lunar Rescue)", + "destiny", "Destiny - The Fortuneteller (USA)", + "destroyr", "Destroyer (version O2)", + "destroyr1", "Destroyer (version O1)", + "destryer", "Destroyer (Cidelsa) (set 1)", + "destryera", "Destroyer (Cidelsa) (set 2)", + "detatwin", "Detana!! Twin Bee (Japan ver. J)", + "detest", "Data East Test Chip", + "deucesw2", "Deuces Wild 2 - American Heritage (Ver. 2.02F)", + "devilfsg", "Devil Fish (Galaxian hardware, bootleg?)", + "devilfsh", "Devil Fish", + "devilw", "Devil World", + "devstors", "Devastators (ver. Z)", + "devstors2", "Devastators (ver. X)", + "devstors3", "Devastators (ver. V)", + "devzone", "Devil Zone", + "devzone2", "Devil Zone (easier)", + "df_djpkr", "Double Joker Poker (45%-75% payout)", + "dfeveron", "Dangun Feveron (Japan, Ver. 98/09/17)", + "dfndr_l4", "Defender (L-4)", + "dfruit", "Fruit Dream (Japan)", + "dh_lx2", "Dirty Harry (LX-2)", + "dharma", "Dharma Doujou", + "dharmak", "Dharma Doujou (Korea)", + "diamond", "Diamond Run", + "diamondp", "Diamond Lady", + "diehard", "Die Hard Arcade (UET 960515 V1.000)", + "dietgo", "Diet Go Go (Euro v1.1 1992.09.26)", + "dietgoe", "Diet Go Go (Euro v1.1 1992.08.04)", + "dietgoj", "Diet Go Go (Japan v1.1 1992.09.26)", + "dietgou", "Diet Go Go (USA v1.1 1992.09.26)", + "digdug", "Dig Dug (rev 2)", + "digdug1", "Dig Dug (rev 1)", + "digdug2", "Dig Dug II (New Ver.)", + "digdug2o", "Dig Dug II (Old Ver.)", + "digdugat", "Dig Dug (Atari, rev 2)", + "digdugat1", "Dig Dug (Atari, rev 1)", + "digger", "Digger", + "diggerc", "Digger (CVS)", + "diggerma", "Digger Man (prototype)", + "digsid", "Dig Dug (manufactured by Sidam)", + "dimahoo", "Dimahoo (Euro 000121)", + "dimahoou", "Dimahoo (USA 000121)", + "dimahoud", "Dimahoo (USA 000121 Phoenix Edition) (bootleg)", + "diner_l1", "Diner (L-1) Europe", + "diner_l3", "Diner (L-3)", + "diner_l4", "Diner (L-4)", + "dingo", "Dingo", + "dingoe", "Dingo (encrypted)", + "dino", "Cadillacs and Dinosaurs (World 930201)", + "dinoeggs", "Dinosaur Eggs", + "dinohunt", "Dinosaur Hunter (Chinese bootleg of Cadillacs and Dinosaurs)", + "dinoj", "Cadillacs: Kyouryuu Shin Seiki (Japan 930201)", + "dinopic", "Cadillacs and Dinosaurs (bootleg with PIC16c57, set 1)", + "dinopic2", "Cadillacs and Dinosaurs (bootleg with PIC16c57, set 2)", + "dinorex", "Dino Rex (World)", + "dinorexj", "Dino Rex (Japan)", + "dinorexu", "Dino Rex (US)", + "dinou", "Cadillacs and Dinosaurs (USA 930201)", + "dirtdash", "Dirt Dash (Rev. DT2)", + "dirtdvls", "Dirt Devils (set 1) (Revision A)", + "dirtdvlsa", "Dirt Devils (set 2) (Revision A)", + "dirtfoxj", "Dirt Fox (Japan)", + "dirtypig", "Dirty Pigskin Football", + "disco", "Disco No.1", + "disco79", "Disco '79", + "disco_l1", "Disco Fever (L-1)", + "discoboy", "Disco Boy", + "discoboyp", "Disco Boy (Promat license?)", + "discof", "Disco No.1 (Rev.F)", + "ditrio", "Diamond Trio (set 1)", + "diverboy", "Diver Boy", + "djboy", "DJ Boy (set 1)", + "djboya", "DJ Boy (set 2)", + "djboyj", "DJ Boy (Japan)", + "dkgensan", "Daiku no Gensan (Japan, M82)", + "dkgensanm72", "Daiku no Gensan (Japan, M72)", + "dking", "Donkey King", + "dkingjr", "Donkey King Jr. (bootleg of Donkey Kong Jr.)", + "dkong", "Donkey Kong (US set 1)", + "dkong3", "Donkey Kong 3 (US)", + "dkong3b", "Donkey Kong 3 (bootleg on Donkey Kong Jr. hardware)", + "dkong3j", "Donkey Kong 3 (Japan)", + "dkongf", "Donkey Kong Foundry (hack)", + "dkonghrd", "Donkey Kong (hard kit)", + "dkongj", "Donkey Kong (Japan set 1)", + "dkongjnrj", "Donkey Kong Junior (Japan?)", + "dkongjo", "Donkey Kong (Japan set 2)", + "dkongjo1", "Donkey Kong (Japan set 3)", + "dkongjr", "Donkey Kong Junior (US set F-2)", + "dkongjrb", "Donkey Kong Jr. (bootleg)", + "dkongjre", "Donkey Kong Junior (E kit)", + "dkongjrj", "Donkey Kong Jr. (Japan)", + "dkongjrm", "Donkey Kong Jr. (bootleg on Moon Cresta hardware)", + "dkongjrpb", "Donkey Kong Junior (P kit, bootleg)", + "dkongo", "Donkey Kong (US set 2)", + "dkongx", "Donkey Kong II - Jumpman Returns (V1.2) (hack)", + "dkongx11", "Donkey Kong II - Jumpman Returns (V1.1) (hack)", + "dlair", "Dragon's Lair (US Rev. F2)", + "dlair2", "Dragon's Lair 2: Time Warp (US v3.19)", + "dlair2_211", "Dragon's Lair 2: Time Warp (US v2.11)", + "dlair2_300", "Dragon's Lair 2: Time Warp (US v3.00)", + "dlair2_312", "Dragon's Lair 2: Time Warp (US v3.12)", + "dlair2_314", "Dragon's Lair 2: Time Warp (US v3.14)", + "dlair2_315", "Dragon's Lair 2: Time Warp (US v3.15)", + "dlair2_315s", "Dragon's Lair 2: Time Warp (Spanish v3.15)", + "dlair2_316e", "Dragon's Lair 2: Time Warp (Euro v3.16)", + "dlair2_317e", "Dragon's Lair 2: Time Warp (Euro v3.17)", + "dlair2_318", "Dragon's Lair 2: Time Warp (US v3.18)", + "dlair2_319e", "Dragon's Lair 2: Time Warp (Euro v3.19)", + "dlair2_319s", "Dragon's Lair 2: Time Warp (Spanish v3.19)", + "dlaira", "Dragon's Lair (US Rev. A, Pioneer PR-7820)", + "dlairb", "Dragon's Lair (US Rev. B, Pioneer PR-7820)", + "dlairc", "Dragon's Lair (US Rev. C, Pioneer PR-7820)", + "dlaird", "Dragon's Lair (US Rev. D, Pioneer LD-V1000)", + "dlaire", "Dragon's Lair (US Rev. E)", + "dlairf", "Dragon's Lair (US Rev. F)", + "dland", "Dream Land / Super Dream Land (bootleg of Bubble Bobble)", + "dleague", "Dynamite League (US)", + "dleaguej", "Dynamite League (Japan)", + "dleuro", "Dragon's Lair (European)", + "dlital", "Dragon's Lair (Italian)", + "dm_h5", "Demolition Man (H-5)", + "dm_h6", "Demolition Man (H-6)", + "dm_la1", "Demolition Man (LA-1)", + "dm_lx3", "Demolition Man (LX-3)", + "dm_lx4", "Demolition Man (LX-4)", + "dm_pa2", "Demolition Man (PA-2)", + "dm_px5", "Demolition Man (PX-5)", + "dmdtouch", "Diamond Touch (0400433V, Local)", + "dmndrby", "Diamond Derby (Newer)", + "dmndrbya", "Diamond Derby (Original)", + "dmnfrnt", "Demon Front (68k label V105, ROM M105XX 08/05/02) (ARM label V105, ROM 08/05/02 S105XX)", + "dmnfrnta", "Demon Front (68k label V102, ROM M102XX 06/19/02) (ARM label V102, ROM 05/24/02 S101XX)", + "dmnfrntb", "Demon Front (68k label V103, ROM M103XX 07/05/02) (ARM label V103, ROM 07/05/02 S103XX)", + "dmnfrntpcb", "Demon Front (68k label V107KR, ROM M107KR 11/03/03) (ARM label V106KR, ROM 10/16/03 S106KR) (JAMMA PCB)", + "dmx", "Dance Maniax (G*874 VER. JAA)", + "dmx2m", "Dance Maniax 2nd Mix (G*A39 VER. JAA)", + "dmx2majp", "Dance Maniax 2nd Mix Append J-Paradise (G*A38 VER. JAA)", + "dncfrks", "Dance Freaks (G*874 VER. KAA)", + "dncsprt", "Dancing Spirit (Russia) (Atronic)", + "dnmtdeka", "Dynamite Deka (J 960515 V1.000)", + "doa", "Dead or Alive (Model 2B, Revision B)", + "doa2", "Dead or Alive 2 (JPN, USA, EXP, KOR, AUS)", + "doa2m", "Dead or Alive 2 Millennium (JPN, USA, EXP, KOR, AUS)", + "doaa", "Dead or Alive (Model 2A, Revision A)", + "doapp", "Dead Or Alive ++ (Japan)", + "docastle", "Mr. Do's Castle (set 1)", + "docastle2", "Mr. Do's Castle (set 2)", + "docastleo", "Mr. Do's Castle (older)", + "dockman", "Dock Man", + "dodgecty", "Dodge City (9131-02)", + "dodgectya", "Dodge City (2131-82, U5-0D)", + "dodgectyb", "Dodge City (2131-82, U5-50)", + "dodgectyc", "Dodge City (2131-82, U5-0 GT)", + "dodgem", "Dodgem", + "dogfgt", "Acrobatic Dog-Fight", + "dogfgtj", "Dog-Fight (Japan)", + "dogfgtu", "Acrobatic Dog-Fight (USA)", + "dogfight", "Dog Fight (Thunderbolt)", + "dogosokb", "Dogou Souken (Joystick hack bootleg)", + "dogosoke", "Dogou Souken", + "dogpatch", "Dog Patch", + "dogyuun", "Dogyuun", + "dogyuuna", "Dogyuun (older set)", + "dogyuunt", "Dogyuun (location test)", + "dokaben", "Dokaben (Japan)", + "dokidoki", "Doki Doki Penguin Land", + "dokyusei", "Mahjong Doukyuusei", + "dokyusp", "Mahjong Doukyuusei Special", + "dollyptn", "Dolly Parton", + "dolmen", "Dolmen", + "dolphin", "Dolphin Blue", + "dolphinp", "Dolphin's Pearl (set 1)", + "dolphntr", "Dolphin Treasure (0200424V, NSW/ACT)", + "dolphtra", "Dolphin Treasure (0100424V, NSW/ACT)", + "domino", "Domino Man", + "domino2", "Domino II (Bingo)", + "dominob", "Domino Block", + "dominobv2", "Domino Block ver.2", + "dominos", "Dominos", + "dommy", "Dommy", + "doncdoon", "Hanabi de Doon! - Don-chan Puzzle", + "dondenmj", "Don Den Mahjong [BET] (Japan)", + "dondokod", "Don Doko Don (World)", + "dondokodj", "Don Doko Don (Japan)", + "dondokodu", "Don Doko Don (US)", + "donghaer", "Donggul Donggul Haerong", + "donpachi", "DonPachi (US)", + "donpachihk", "DonPachi (Hong Kong)", + "donpachij", "DonPachi (Japan)", + "donpachikr", "DonPachi (Korea)", + "dorachan", "Dorachan", + "doraemon", "Doraemon no Eawase Montage (prototype)", + "dorodon", "Dorodon (set 1)", + "dorodon2", "Dorodon (set 2)", + "dorunrun", "Do! Run Run (set 1)", + "dorunrun2", "Do! Run Run (set 2)", + "dorunrunc", "Do! Run Run (Do's Castle hardware, set 1)", + "dorunrunca", "Do! Run Run (Do's Castle hardware, set 2)", + "dotrikun", "Dottori Kun (new version)", + "dotrikun2", "Dottori Kun (old version)", + "dotron", "Discs of Tron (Upright)", + "dotrona", "Discs of Tron (Upright alternate)", + "dotrone", "Discs of Tron (Environmental)", + "doubledr", "Double Dragon (Neo-Geo)", + "douni", "Mr. Do vs. Unicorns", + "dowild", "Mr. Do's Wild Ride", + "downhill", "Downhill Bikers (DH3 Ver. A)", + "downtown", "DownTown / Mokugeki (set 1)", + "downtown2", "DownTown / Mokugeki (set 2)", + "downtownj", "DownTown / Mokugeki (joystick hack)", + "downtownp", "DownTown / Mokugeki (prototype)", + "dphl", "Draw Poker HI-LO (M.Kramer)", + "dphla", "Draw Poker HI-LO (Alt)", + "dphljp", "Draw Poker HI-LO (Japanese)", + "dphlunka", "Draw Poker HI-LO (unknown, rev 1)", + "dphlunkb", "Draw Poker HI-LO (unknown, rev 2)", + "dplay", "Double Play", + "dpoker", "Draw Poker (Bally, 03-20)", + "dquizgo", "Date Quiz Go Go (Korea)", + "dquizgo2", "Date Quiz Go Go Episode 2", + "drac_l1", "Bram Stoker's Dracula (L-1)", + "drac_p11", "Bram Stoker's Dracula (P-11)", + "draco", "Draco", + "dracula", "Dracula", + "dragchrn", "Dragon Chronicles (DC001 Ver. A)", + "dragfist", "Dragonfist", + "dragnblz", "Dragon Blaze", + "dragnfly", "Dragonfly (Konami Endeavour)", + "dragngun", "Dragon Gun (US)", + "dragngunj", "Dragon Gun (Japan)", + "dragon", "Dragon", + "dragoona", "Dragoon Might (ver AAB)", + "dragoonj", "Dragoon Might (ver JAA)", + "dragrace", "Drag Race", + "dragsphr", "Dragon Sphere", + "drakor", "Drakor", + "drakton", "Drakton (DK conversion)", + "drbyocwc", "Derby Owners Club World Edition (JPN, USA, EXP, KOR, AUS) (Rev C)", + "dreambal", "Dream Ball (Japan V2.4)", + "dreamwld", "Dream World", + "dremshpr", "Dream Shopper", + "drgnbowl", "Dragon Bowl", + "drgnbstr", "Dragon Buster", + "drgninja", "Dragonninja (Japan)", + "drgninjab", "Dragonninja (bootleg)", + "drgnmst", "Dragon Master", + "drgnunit", "Dragon Unit / Castle of Dragon", + "drgnwrld", "Dragon World (World, V040O)", + "drgnwrldv10c", "Zhong Guo Long (China, V010C)", + "drgnwrldv11h", "Dong Fang Zhi Zhu (Hong Kong, V011H)", + "drgnwrldv20j", "Zhong Guo Long (Japan, V020J)", + "drgnwrldv21", "Dragon World (World, V021O)", + "drgnwrldv21j", "Zhong Guo Long (Japan, V021J)", + "drgnwrldv30", "Dragon World (World, V030O)", + "drgpunch", "Dragon Punch (Japan)", + "drgw2", "Dragon World II (ver. 110X, Export)", + "drgw2c", "Zhong Guo Long II (ver. 100C, China)", + "drgw2j", "Chuugokuryuu II (ver. 100J, Japan)", + "drgw3", "Dragon World 3 (ver. 106)", + "drgw3100", "Dragon World 3 (Japan, ver. 100)", + "drgw3105", "Dragon World 3 (ver. 105)", + "drhl", "Drews Revenge (v.2.89, set 1)", + "drhla", "Drews Revenge (v.2.89, set 2)", + "dribling", "Dribbling", + "driblingbr", "Dribbling (bootleg, Brazil)", + "driblingo", "Dribbling (Olympia)", + "drifto94", "Drift Out '94 - The Hard Order (Japan)", + "driftout", "Drift Out (Europe)", + "driftoutj", "Drift Out (Japan)", + "drivedge", "Driver's Edge", + "driveout", "Drive Out (bootleg)", + "driveyes", "Driver's Eyes (Japan)", + "drivfrcb", "Driving Force (Galaxian conversion bootleg)", + "drivfrcg", "Driving Force (Galaxian conversion)", + "drivfrcp", "Driving Force (Pac-Man conversion)", + "drivfrct", "Top Racer (bootleg of Driving Force)", + "drktnjr", "Drakton (DKJr conversion)", + "drmario", "Vs. Dr. Mario", + "drmicro", "Dr. Micro", + "drmmake", "Dream Maker (Russia) (Atronic)", + "drmn", "DrumMania (GQ881 VER. JAD)", + "drmn10m", "DrumMania 10th Mix (G*D40 VER. JAA)", + "drmn2m", "DrumMania 2nd Mix (GE912 VER. JAB)", + "drmn2mpu", "DrumMania 2nd Mix Session Power Up Kit (GE912 VER. JAB)", + "drmn3m", "DrumMania 3rd Mix (G*A23 VER. JAA)", + "drmn4m", "DrumMania 4th Mix (G*A25 VER. JAA)", + "drmn5m", "DrumMania 5th Mix (G*B05 VER. JAA)", + "drmn6m", "DrumMania 6th Mix (G*B16 VER. JAA)", + "drmn7m", "DrumMania 7th Mix power-up ver. (G*C07 VER. JBA)", + "drmn7ma", "DrumMania 7th Mix (G*C07 VER. JAA)", + "drmn8m", "DrumMania 8th Mix (G*C07 VER. JAA)", + "drmn9m", "DrumMania 9th Mix (G*D09 VER. JAA)", + "drtomy", "Dr. Tomy", + "drtoppel", "Dr. Toppel's Adventure (World)", + "drtoppelj", "Dr. Toppel's Tankentai (Japan)", + "drtoppelu", "Dr. Toppel's Adventure (US)", + "drw80pk2", "Draw 80 Poker - Minn", + "drw80pkr", "Draw 80 Poker", + "dsaber", "Dragon Saber", + "dsaberj", "Dragon Saber (Japan, Rev B)", + "dsem", "Dancing Stage Euro Mix (G*936 VER. EAA)", + "dsem2", "Dancing Stage Euro Mix 2 (G*C23 VER. EAA)", + "dsfdct", "Dancing Stage featuring Dreams Come True (GC910 VER. JCA)", + "dsfdcta", "Dancing Stage featuring Dreams Come True (GC910 VER. JAA)", + "dsfdr", "Dancing Stage Featuring Disney's Rave (GCA37JAA)", + "dsftkd", "Dancing Stage featuring TRUE KiSS DESTiNATiON (G*884 VER. JAA)", + "dslayrr", "Dragon Slayer (Russia, set 1)", + "dslayrra", "Dragon Slayer (Russia, set 2)", + "dsmbl", "Deathsmiles MegaBlack Label (2008/10/06 MEGABLACK LABEL VER)", + "dsoccr94", "Dream Soccer '94 (World, M107 hardware)", + "dsoccr94j", "Dream Soccer '94 (Japan, M92 hardware)", + "dspirit", "Dragon Spirit (new version (DS3))", + "dspirit1", "Dragon Spirit (old version (DS1))", + "dspirit2", "Dragon Spirit (DS2)", + "dstage", "Dancing Stage - Internet Ranking Ver (GC845 VER. EBA)", + "dstagea", "Dancing Stage (GN845 VER. EAA)", + "dstlk", "Darkstalkers: The Night Warriors (Euro 940705)", + "dstlka", "Darkstalkers: The Night Warriors (Asia 940705)", + "dstlkh", "Darkstalkers: The Night Warriors (Hispanic 940818)", + "dstlku", "Darkstalkers: The Night Warriors (USA 940818)", + "dstlku1d", "Darkstalkers: The Night Warriors (USA 940705 Phoenix Edition) (bootleg)", + "dstlkur1", "Darkstalkers: The Night Warriors (USA 940705)", + "dtfamily", "Diet Family", + "dtoyoken", "Mahjong Dai Touyouken (Japan)", + "dtrvwz5", "Deluxe Trivia ? Whiz (6221-70, U5-0A Edition 5)", + "dualaslt", "Dual Assault", + "dualgame", "Dual Games (prototype)", + "duckhunt", "Vs. Duck Hunt (set DH3 E)", + "dumpmtmt", "Dump Matsumoto (Japan, 8751 317-0011a)", + "dungdrag", "Dungeons & Dragons", + "dungeonm", "Dungeon Magic (Ver 2.1O 1994/02/18)", + "dungeonmu", "Dungeon Magic (Ver 2.1A 1994/02/18)", + "dunhuang", "Mahjong Dunhuang", + "dunkmnia", "Dunk Mania (Asia, DM2/VER.C)", + "dunkmniajc", "Dunk Mania (Japan, DM1/VER.C)", + "dunkshot", "Dunk Shot (FD1089A 317-0022)", + "dvisland", "Devil Island (Version 1.4R CGA)", + "dvislando", "Devil Island (Version 1.0R CGA)", + "dvlrider", "Devil Riders", + "dvlriderg", "Devil Riders (German speech)", + "dvlrideri", "Devil Riders (Italian speech)", + "dvlsdre", "Devil's Dare", + "dvlsdre2", "Devil's Dare (Sound Only)", + "dw2001", "Dragon World 2001 (V100?, Japan)", + "dw2v100x", "Dragon World II (ver. 100X, Export)", + "dw_l1", "Doctor Who (L-1)", + "dw_l2", "Doctor Who (L-2)", + "dw_p5", "Doctor Who (P-5)", + "dwarfd", "Draw Poker III / Dwarfs Den (Dwarf Gfx)", + "dwarfda", "Draw Poker III / Dwarfs Den (Card Gfx)", + "dwex", "Dragon World 3 EX (ver. 100)", + "dwpc", "Dragon World Pretty Chance (V101, Japan)", + "dybb99", "Dynamite Baseball '99 (JPN) / World Series '99 (USA, EXP, KOR, AUS) (Rev B)", + "dybbnao", "Dynamite Baseball NAOMI (JPN)", + "dyger", "Dyger (Korea set 1)", + "dygera", "Dyger (Korea set 2)", + "dygolf", "Dynamic Golf / Virtua Golf (Rev A) (GDS-0009A)", + "dynabb", "Dynamite Baseball", + "dynabb97", "Dynamite Baseball 97 (Revision A)", + "dynablst", "Dynablaster / Bomber Man", + "dynablstb", "Dynablaster / Bomber Man (bootleg)", + "dynablstb2", "Dynablaster / Bomber Man (bootleg, alt)", + "dynabomb", "Dynamite Bomber (Korea, Rev 1.5)", + "dynadice", "Dynamic Dice", + "dynagear", "Dyna Gear", + "dynamcop", "Dynamite Cop (Export, Model 2A)", + "dynamcopb", "Dynamite Cop (Export, Model 2B)", + "dynamcopc", "Dynamite Cop (USA, Model 2C)", + "dynamski", "Dynamic Ski", + "dynashot", "Dynamic Shoot Kyousou", + "dyndeka2", "Dynamite Deka 2 (Japan, Model 2A)", + "dyndeka2b", "Dynamite Deka 2 (Japan, Model 2B)", + "dynduke", "Dynamite Duke (Europe set 1)", + "dyndukea", "Dynamite Duke (Europe set 2)", + "dyndukej", "Dynamite Duke (Japan)", + "dyndukeu", "Dynamite Duke (US)", + "dynobop", "Dyno Bop", + "dynwar", "Dynasty Wars (USA, B-Board 89624B-?)", + "dynwara", "Dynasty Wars (USA, B-Board 88622B-3)", + "dynwarj", "Tenchi wo Kurau (Japan)", + "dynwarjr", "Tenchi wo Kurau (Japan Resale Ver.)", + "dzigzag", "Zig Zag (Dig Dug hardware)", + "eagle", "Eagle (set 1)", + "eagle2", "Eagle (set 2)", + "eagle3", "Eagle (set 3)", + "eaglshot", "Eagle Shot Golf", + "earthjkr", "U.N. Defense Force: Earth Joker (Japan)", + "earthjkrp", "U.N. Defense Force: Earth Joker (Japan, prototype?)", + "eatpm_4g", "Elvira and the Party Monsters (LG-4)", + "eatpm_4u", "Elvira and the Party Monsters (LU-4)", + "eatpm_l1", "Elvira and the Party Monsters (LA-1)", + "eatpm_l2", "Elvira and the Party Monsters (LA-2)", + "eatpm_l4", "Elvira and the Party Monsters (LA-4)", + "eatpm_p7", "Elvira and the Party Monsters (PA-7)", + "eballchp", "Eight Ball Champ", + "eballd14", "Eight Ball Deluxe (rev. 14)", + "eballdlx", "Eight Ball Deluxe (rev. 15)", + "eballdlxp1", "Eight Ball Deluxe (prototype rev. 1)", + "eballdlxp2", "Eight Ball Deluxe (prototype rev. 2)", + "eballdlxp3", "Eight Ball Deluxe (prototype rev. 3)", + "eballdlxp4", "Eight Ball Deluxe (prototype rev. 4)", + "ebases", "Extra Bases", + "ec_bar5", "Bar 5 (older PCB) (Electrocoin)", + "ec_bar7", "Bar 7 (Concept Games Ltd) (?)", + "ec_barx", "Bar X (Electrocoin) (set 1)", + "ec_barx__0", "Bar X (Electrocoin) (set 28)", + "ec_barx__1", "Bar X (Electrocoin) (set 29)", + "ec_barx__2", "Bar X (Electrocoin) (set 30)", + "ec_barx__3", "Bar X (Electrocoin) (set 31)", + "ec_barx__4", "Bar X (Electrocoin) (set 32)", + "ec_barx__5", "Bar X (Electrocoin) (set 33)", + "ec_barx__6", "Bar X (Electrocoin) (set 34)", + "ec_barx__7", "Bar X (Electrocoin) (set 35)", + "ec_barx__8", "Bar X (Electrocoin) (set 36)", + "ec_barx__9", "Bar X (Electrocoin) (set 37)", + "ec_barx__a", "Bar X (Electrocoin) (set 2)", + "ec_barx__a0", "Bar X (Electrocoin) (set 64)", + "ec_barx__a1", "Bar X (Electrocoin) (set 65)", + "ec_barx__a2", "Bar X (Electrocoin) (set 66)", + "ec_barx__a3", "Bar X (Electrocoin) (set 67)", + "ec_barx__a4", "Bar X (Electrocoin) (set 68)", + "ec_barx__a5", "Bar X (Electrocoin) (set 69)", + "ec_barx__a6", "Bar X (Electrocoin) (set 70)", + "ec_barx__a7", "Bar X (Electrocoin) (set 71)", + "ec_barx__a8", "Bar X (Electrocoin) (set 72)", + "ec_barx__a9", "Bar X (Electrocoin) (set 73)", + "ec_barx__aa", "Bar X (Electrocoin) (set 38)", + "ec_barx__ab", "Bar X (Electrocoin) (set 39)", + "ec_barx__ac", "Bar X (Electrocoin) (set 40)", + "ec_barx__ad", "Bar X (Electrocoin) (set 41)", + "ec_barx__ae", "Bar X (Electrocoin) (set 42)", + "ec_barx__af", "Bar X (Electrocoin) (set 43)", + "ec_barx__ag", "Bar X (Electrocoin) (set 44)", + "ec_barx__ah", "Bar X (Electrocoin) (set 45)", + "ec_barx__ai", "Bar X (Electrocoin) (set 46)", + "ec_barx__aj", "Bar X (Electrocoin) (set 47)", + "ec_barx__ak", "Bar X (Electrocoin) (set 48)", + "ec_barx__al", "Bar X (Electrocoin) (set 49)", + "ec_barx__am", "Bar X (Electrocoin) (set 50)", + "ec_barx__an", "Bar X (Electrocoin) (set 51)", + "ec_barx__ao", "Bar X (Electrocoin) (set 52)", + "ec_barx__ap", "Bar X (Electrocoin) (set 53)", + "ec_barx__aq", "Bar X (Electrocoin) (set 54)", + "ec_barx__ar", "Bar X (Electrocoin) (set 55)", + "ec_barx__as", "Bar X (Electrocoin) (set 56)", + "ec_barx__at", "Bar X (Electrocoin) (set 57)", + "ec_barx__au", "Bar X (Electrocoin) (set 58)", + "ec_barx__av", "Bar X (Electrocoin) (set 59)", + "ec_barx__aw", "Bar X (Electrocoin) (set 60)", + "ec_barx__ax", "Bar X (Electrocoin) (set 61)", + "ec_barx__ay", "Bar X (Electrocoin) (set 62)", + "ec_barx__az", "Bar X (Electrocoin) (set 63)", + "ec_barx__b", "Bar X (Electrocoin) (set 3)", + "ec_barx__ba", "Bar X (Electrocoin) (set 74)", + "ec_barx__bb", "Bar X (Electrocoin) (set 75)", + "ec_barx__bc", "Bar X (Electrocoin) (set 76)", + "ec_barx__bd", "Bar X (Electrocoin) (set 77)", + "ec_barx__be", "Bar X (Electrocoin) (set 78)", + "ec_barx__bf", "Bar X (Electrocoin) (set 79)", + "ec_barx__bg", "Bar X (Electrocoin) (set 80)", + "ec_barx__bh", "Bar X (Electrocoin) (set 81)", + "ec_barx__bi", "Bar X (Electrocoin) (set 82)", + "ec_barx__bj", "Bar X (Electrocoin) (set 83)", + "ec_barx__bk", "Bar X (Electrocoin) (set 84)", + "ec_barx__bl", "Bar X (Electrocoin) (set 85)", + "ec_barx__bm", "Bar X (Electrocoin) (set 86)", + "ec_barx__bn", "Bar X (Electrocoin) (set 87)", + "ec_barx__bo", "Bar X (Electrocoin) (set 88)", + "ec_barx__bp", "Bar X (Electrocoin) (set 89)", + "ec_barx__bq", "Bar X (Electrocoin) (set 90)", + "ec_barx__br", "Bar X (Electrocoin) (set 91)", + "ec_barx__bs", "Bar X (Electrocoin) (set 92)", + "ec_barx__bt", "Bar X (Electrocoin) (set 93)", + "ec_barx__bu", "Bar X (Electrocoin) (set 94)", + "ec_barx__c", "Bar X (Electrocoin) (set 4)", + "ec_barx__d", "Bar X (Electrocoin) (set 5)", + "ec_barx__e", "Bar X (Electrocoin) (set 6)", + "ec_barx__f", "Bar X (Electrocoin) (set 7)", + "ec_barx__g", "Bar X (Electrocoin) (set 8)", + "ec_barx__h", "Bar X (Electrocoin) (set 9)", + "ec_barx__i", "Bar X (Electrocoin) (set 10)", + "ec_barx__j", "Bar X (Electrocoin) (set 11)", + "ec_barx__k", "Bar X (Electrocoin) (set 12)", + "ec_barx__l", "Bar X (Electrocoin) (set 13)", + "ec_barx__m", "Bar X (Electrocoin) (set 14)", + "ec_barx__n", "Bar X (Electrocoin) (set 15)", + "ec_barx__o", "Bar X (Electrocoin) (set 16)", + "ec_barx__p", "Bar X (Electrocoin) (set 17)", + "ec_barx__q", "Bar X (Electrocoin) (set 18)", + "ec_barx__r", "Bar X (Electrocoin) (set 19)", + "ec_barx__s", "Bar X (Electrocoin) (set 20)", + "ec_barx__t", "Bar X (Electrocoin) (set 21)", + "ec_barx__u", "Bar X (Electrocoin) (set 22)", + "ec_barx__v", "Bar X (Electrocoin) (set 23)", + "ec_barx__w", "Bar X (Electrocoin) (set 24)", + "ec_barx__x", "Bar X (Electrocoin) (set 25)", + "ec_barx__y", "Bar X (Electrocoin) (set 26)", + "ec_barx__z", "Bar X (Electrocoin) (set 27)", + "ec_barxmab", "Bar X (MAB PCB) (Electrocoin)", + "ec_barxo", "Bar X (older PCB) (Electrocoin) (set 1)", + "ec_barxoa", "Bar X (older PCB) (Electrocoin) (set 2)", + "ec_barxob", "Bar X (older PCB) (Electrocoin) (set 3)", + "ec_barxoc", "Bar X (older PCB) (Electrocoin) (set 4)", + "ec_barxod", "Bar X (older PCB) (Electrocoin) (set 5)", + "ec_barxoe", "Bar X (older PCB) (Electrocoin) (set 6)", + "ec_big7", "Big 7 / Super Big 7 (Electrocoin) (set 1)", + "ec_big7__0", "Big 7 / Super Big 7 (Electrocoin) (set 28)", + "ec_big7__1", "Big 7 / Super Big 7 (Electrocoin) (set 29)", + "ec_big7__2", "Big 7 / Super Big 7 (Electrocoin) (set 30)", + "ec_big7__3", "Big 7 / Super Big 7 (Electrocoin) (set 31)", + "ec_big7__4", "Big 7 / Super Big 7 (Electrocoin) (set 32)", + "ec_big7__5", "Big 7 / Super Big 7 (Electrocoin) (set 33)", + "ec_big7__6", "Big 7 / Super Big 7 (Electrocoin) (set 34)", + "ec_big7__7", "Big 7 / Super Big 7 (Electrocoin) (set 35)", + "ec_big7__8", "Big 7 / Super Big 7 (Electrocoin) (set 36)", + "ec_big7__9", "Big 7 / Super Big 7 (Electrocoin) (set 37)", + "ec_big7__a", "Big 7 / Super Big 7 (Electrocoin) (set 2)", + "ec_big7__a0", "Big 7 / Super Big 7 (Electrocoin) (set 64)", + "ec_big7__a1", "Big 7 / Super Big 7 (Electrocoin) (set 65)", + "ec_big7__a2", "Big 7 / Super Big 7 (Electrocoin) (set 66)", + "ec_big7__aa", "Big 7 / Super Big 7 (Electrocoin) (set 38)", + "ec_big7__ab", "Big 7 / Super Big 7 (Electrocoin) (set 39)", + "ec_big7__ac", "Big 7 / Super Big 7 (Electrocoin) (set 40)", + "ec_big7__ad", "Big 7 / Super Big 7 (Electrocoin) (set 41)", + "ec_big7__ae", "Big 7 / Super Big 7 (Electrocoin) (set 42)", + "ec_big7__af", "Big 7 / Super Big 7 (Electrocoin) (set 43)", + "ec_big7__ag", "Big 7 / Super Big 7 (Electrocoin) (set 44)", + "ec_big7__ah", "Big 7 / Super Big 7 (Electrocoin) (set 45)", + "ec_big7__ai", "Big 7 / Super Big 7 (Electrocoin) (set 46)", + "ec_big7__aj", "Big 7 / Super Big 7 (Electrocoin) (set 47)", + "ec_big7__ak", "Big 7 / Super Big 7 (Electrocoin) (set 48)", + "ec_big7__al", "Big 7 / Super Big 7 (Electrocoin) (set 49)", + "ec_big7__am", "Big 7 / Super Big 7 (Electrocoin) (set 50)", + "ec_big7__an", "Big 7 / Super Big 7 (Electrocoin) (set 51)", + "ec_big7__ao", "Big 7 / Super Big 7 (Electrocoin) (set 52)", + "ec_big7__ap", "Big 7 / Super Big 7 (Electrocoin) (set 53)", + "ec_big7__aq", "Big 7 / Super Big 7 (Electrocoin) (set 54)", + "ec_big7__ar", "Big 7 / Super Big 7 (Electrocoin) (set 55)", + "ec_big7__as", "Big 7 / Super Big 7 (Electrocoin) (set 56)", + "ec_big7__at", "Big 7 / Super Big 7 (Electrocoin) (set 57)", + "ec_big7__au", "Big 7 / Super Big 7 (Electrocoin) (set 58)", + "ec_big7__av", "Big 7 / Super Big 7 (Electrocoin) (set 59)", + "ec_big7__aw", "Big 7 / Super Big 7 (Electrocoin) (set 60)", + "ec_big7__ax", "Big 7 / Super Big 7 (Electrocoin) (set 61)", + "ec_big7__ay", "Big 7 / Super Big 7 (Electrocoin) (set 62)", + "ec_big7__az", "Big 7 / Super Big 7 (Electrocoin) (set 63)", + "ec_big7__b", "Big 7 / Super Big 7 (Electrocoin) (set 3)", + "ec_big7__c", "Big 7 / Super Big 7 (Electrocoin) (set 4)", + "ec_big7__d", "Big 7 / Super Big 7 (Electrocoin) (set 5)", + "ec_big7__e", "Big 7 / Super Big 7 (Electrocoin) (set 6)", + "ec_big7__f", "Big 7 / Super Big 7 (Electrocoin) (set 7)", + "ec_big7__g", "Big 7 / Super Big 7 (Electrocoin) (set 8)", + "ec_big7__h", "Big 7 / Super Big 7 (Electrocoin) (set 9)", + "ec_big7__i", "Big 7 / Super Big 7 (Electrocoin) (set 10)", + "ec_big7__j", "Big 7 / Super Big 7 (Electrocoin) (set 11)", + "ec_big7__k", "Big 7 / Super Big 7 (Electrocoin) (set 12)", + "ec_big7__l", "Big 7 / Super Big 7 (Electrocoin) (set 13)", + "ec_big7__m", "Big 7 / Super Big 7 (Electrocoin) (set 14)", + "ec_big7__n", "Big 7 / Super Big 7 (Electrocoin) (set 15)", + "ec_big7__o", "Big 7 / Super Big 7 (Electrocoin) (set 16)", + "ec_big7__p", "Big 7 / Super Big 7 (Electrocoin) (set 17)", + "ec_big7__q", "Big 7 / Super Big 7 (Electrocoin) (set 18)", + "ec_big7__r", "Big 7 / Super Big 7 (Electrocoin) (set 19)", + "ec_big7__s", "Big 7 / Super Big 7 (Electrocoin) (set 20)", + "ec_big7__t", "Big 7 / Super Big 7 (Electrocoin) (set 21)", + "ec_big7__u", "Big 7 / Super Big 7 (Electrocoin) (set 22)", + "ec_big7__v", "Big 7 / Super Big 7 (Electrocoin) (set 23)", + "ec_big7__w", "Big 7 / Super Big 7 (Electrocoin) (set 24)", + "ec_big7__x", "Big 7 / Super Big 7 (Electrocoin) (set 25)", + "ec_big7__y", "Big 7 / Super Big 7 (Electrocoin) (set 26)", + "ec_big7__z", "Big 7 / Super Big 7 (Electrocoin) (set 27)", + "ec_bx125", "Bar X 125 (Electrocoin) (set 1)", + "ec_bx125a", "Bar X 125 (Electrocoin) (set 2)", + "ec_bx180", "Bar X (Z180 hardware) (Electrocoin) (set 1)", + "ec_bx180a", "Bar X (Z180 hardware) (Electrocoin) (set 2)", + "ec_bxd7s", "Bar X Diamond 7s (2006 COOL7) (Electrocoin) (set 1)", + "ec_bxd7s__a", "Bar X Diamond 7s (2006 COOL7) (Electrocoin) (set 2)", + "ec_bxd7s__b", "Bar X Diamond 7s (2006 COOL7) (Electrocoin) (set 3)", + "ec_bxd7s__c", "Bar X Diamond 7s (2006 COOL7) (Electrocoin) (set 4)", + "ec_bxd7s__d", "Bar X Diamond 7s (2006 COOL7) (Electrocoin) (set 5)", + "ec_casbx", "Casino Bar X (Electrocoin) (set 1)", + "ec_casbx__a", "Casino Bar X (Electrocoin) (set 2)", + "ec_casbx__b", "Casino Bar X (Electrocoin) (set 3)", + "ec_casbxcon", "Casino Bar X (Concept Games Ltd) (?)", + "ec_casbxo", "Casino Bar X (older PCB) (Electrocoin) (set 1)", + "ec_casbxoa", "Casino Bar X (older PCB) (Electrocoin) (set 2)", + "ec_casmb", "Casino Multi Bar (Concept Games Ltd) (?)", + "ec_fltr", "Flutter (Concept Games Ltd) (?)", + "ec_gold7", "Golden 7 (Concept Games Ltd) (?)", + "ec_jackb", "Jackpot Bars (MAB PCB?) (Concept Games Ltd) (?)", + "ec_laby", "Labyrinth (v8) (Electrocoin)", + "ec_labya", "Labyrinth (v10) (Electrocoin)", + "ec_mag7s", "Magic 7s / Cool 7 / Bar X 7 (2001 COOL7) (Electrocoin) (set 1)", + "ec_mag7s__0", "Magic 7s / Cool 7 / Bar X 7 (2001 COOL7) (Electrocoin) (set 28)", + "ec_mag7s__1", "Magic 7s / Cool 7 / Bar X 7 (2001 COOL7) (Electrocoin) (set 29)", + "ec_mag7s__2", "Magic 7s / Cool 7 / Bar X 7 (2001 COOL7) (Electrocoin) (set 30)", + "ec_mag7s__3", "Magic 7s / Cool 7 / Bar X 7 (2001 COOL7) (Electrocoin) (set 31)", + "ec_mag7s__4", "Magic 7s / Cool 7 / Bar X 7 (2001 COOL7) (Electrocoin) (set 32)", + "ec_mag7s__5", "Magic 7s / Cool 7 / Bar X 7 (2001 COOL7) (Electrocoin) (set 33)", + "ec_mag7s__6", "Magic 7s / Cool 7 / Bar X 7 (2001 COOL7) (Electrocoin) (set 34)", + "ec_mag7s__7", "Magic 7s / Cool 7 / Bar X 7 (2001 COOL7) (Electrocoin) (set 35)", + "ec_mag7s__8", "Magic 7s / Cool 7 / Bar X 7 (2001 COOL7) (Electrocoin) (set 36)", + "ec_mag7s__9", "Magic 7s / Cool 7 / Bar X 7 (2001 COOL7) (Electrocoin) (set 37)", + "ec_mag7s__a", "Magic 7s / Cool 7 / Bar X 7 (2001 COOL7) (Electrocoin) (set 2)", + "ec_mag7s__a0", "Magic 7s / Cool 7 / Bar X 7 (2001 COOL7) (Electrocoin) (set 64)", + "ec_mag7s__aa", "Magic 7s / Cool 7 / Bar X 7 (2001 COOL7) (Electrocoin) (set 38)", + "ec_mag7s__ab", "Magic 7s / Cool 7 / Bar X 7 (2001 COOL7) (Electrocoin) (set 39)", + "ec_mag7s__ac", "Magic 7s / Cool 7 / Bar X 7 (2001 COOL7) (Electrocoin) (set 40)", + "ec_mag7s__ad", "Magic 7s / Cool 7 / Bar X 7 (2001 COOL7) (Electrocoin) (set 41)", + "ec_mag7s__ae", "Magic 7s / Cool 7 / Bar X 7 (2001 COOL7) (Electrocoin) (set 42)", + "ec_mag7s__af", "Magic 7s / Cool 7 / Bar X 7 (2001 COOL7) (Electrocoin) (set 43)", + "ec_mag7s__ag", "Magic 7s / Cool 7 / Bar X 7 (2001 COOL7) (Electrocoin) (set 44)", + "ec_mag7s__ah", "Magic 7s / Cool 7 / Bar X 7 (2001 COOL7) (Electrocoin) (set 45)", + "ec_mag7s__ai", "Magic 7s / Cool 7 / Bar X 7 (2001 COOL7) (Electrocoin) (set 46)", + "ec_mag7s__aj", "Magic 7s / Cool 7 / Bar X 7 (2001 COOL7) (Electrocoin) (set 47)", + "ec_mag7s__ak", "Magic 7s / Cool 7 / Bar X 7 (2001 COOL7) (Electrocoin) (set 48)", + "ec_mag7s__al", "Magic 7s / Cool 7 / Bar X 7 (2001 COOL7) (Electrocoin) (set 49)", + "ec_mag7s__am", "Magic 7s / Cool 7 / Bar X 7 (2001 COOL7) (Electrocoin) (set 50)", + "ec_mag7s__an", "Magic 7s / Cool 7 / Bar X 7 (2001 COOL7) (Electrocoin) (set 51)", + "ec_mag7s__ao", "Magic 7s / Cool 7 / Bar X 7 (2001 COOL7) (Electrocoin) (set 52)", + "ec_mag7s__ap", "Magic 7s / Cool 7 / Bar X 7 (2001 COOL7) (Electrocoin) (set 53)", + "ec_mag7s__aq", "Magic 7s / Cool 7 / Bar X 7 (2001 COOL7) (Electrocoin) (set 54)", + "ec_mag7s__ar", "Magic 7s / Cool 7 / Bar X 7 (2001 COOL7) (Electrocoin) (set 55)", + "ec_mag7s__as", "Magic 7s / Cool 7 / Bar X 7 (2001 COOL7) (Electrocoin) (set 56)", + "ec_mag7s__at", "Magic 7s / Cool 7 / Bar X 7 (2001 COOL7) (Electrocoin) (set 57)", + "ec_mag7s__au", "Magic 7s / Cool 7 / Bar X 7 (2001 COOL7) (Electrocoin) (set 58)", + "ec_mag7s__av", "Magic 7s / Cool 7 / Bar X 7 (2001 COOL7) (Electrocoin) (set 59)", + "ec_mag7s__aw", "Magic 7s / Cool 7 / Bar X 7 (2001 COOL7) (Electrocoin) (set 60)", + "ec_mag7s__ax", "Magic 7s / Cool 7 / Bar X 7 (2001 COOL7) (Electrocoin) (set 61)", + "ec_mag7s__ay", "Magic 7s / Cool 7 / Bar X 7 (2001 COOL7) (Electrocoin) (set 62)", + "ec_mag7s__az", "Magic 7s / Cool 7 / Bar X 7 (2001 COOL7) (Electrocoin) (set 63)", + "ec_mag7s__b", "Magic 7s / Cool 7 / Bar X 7 (2001 COOL7) (Electrocoin) (set 3)", + "ec_mag7s__c", "Magic 7s / Cool 7 / Bar X 7 (2001 COOL7) (Electrocoin) (set 4)", + "ec_mag7s__d", "Magic 7s / Cool 7 / Bar X 7 (2001 COOL7) (Electrocoin) (set 5)", + "ec_mag7s__e", "Magic 7s / Cool 7 / Bar X 7 (2001 COOL7) (Electrocoin) (set 6)", + "ec_mag7s__f", "Magic 7s / Cool 7 / Bar X 7 (2001 COOL7) (Electrocoin) (set 7)", + "ec_mag7s__g", "Magic 7s / Cool 7 / Bar X 7 (2001 COOL7) (Electrocoin) (set 8)", + "ec_mag7s__h", "Magic 7s / Cool 7 / Bar X 7 (2001 COOL7) (Electrocoin) (set 9)", + "ec_mag7s__i", "Magic 7s / Cool 7 / Bar X 7 (2001 COOL7) (Electrocoin) (set 10)", + "ec_mag7s__j", "Magic 7s / Cool 7 / Bar X 7 (2001 COOL7) (Electrocoin) (set 11)", + "ec_mag7s__k", "Magic 7s / Cool 7 / Bar X 7 (2001 COOL7) (Electrocoin) (set 12)", + "ec_mag7s__l", "Magic 7s / Cool 7 / Bar X 7 (2001 COOL7) (Electrocoin) (set 13)", + "ec_mag7s__m", "Magic 7s / Cool 7 / Bar X 7 (2001 COOL7) (Electrocoin) (set 14)", + "ec_mag7s__n", "Magic 7s / Cool 7 / Bar X 7 (2001 COOL7) (Electrocoin) (set 15)", + "ec_mag7s__o", "Magic 7s / Cool 7 / Bar X 7 (2001 COOL7) (Electrocoin) (set 16)", + "ec_mag7s__p", "Magic 7s / Cool 7 / Bar X 7 (2001 COOL7) (Electrocoin) (set 17)", + "ec_mag7s__q", "Magic 7s / Cool 7 / Bar X 7 (2001 COOL7) (Electrocoin) (set 18)", + "ec_mag7s__r", "Magic 7s / Cool 7 / Bar X 7 (2001 COOL7) (Electrocoin) (set 19)", + "ec_mag7s__s", "Magic 7s / Cool 7 / Bar X 7 (2001 COOL7) (Electrocoin) (set 20)", + "ec_mag7s__t", "Magic 7s / Cool 7 / Bar X 7 (2001 COOL7) (Electrocoin) (set 21)", + "ec_mag7s__u", "Magic 7s / Cool 7 / Bar X 7 (2001 COOL7) (Electrocoin) (set 22)", + "ec_mag7s__v", "Magic 7s / Cool 7 / Bar X 7 (2001 COOL7) (Electrocoin) (set 23)", + "ec_mag7s__w", "Magic 7s / Cool 7 / Bar X 7 (2001 COOL7) (Electrocoin) (set 24)", + "ec_mag7s__x", "Magic 7s / Cool 7 / Bar X 7 (2001 COOL7) (Electrocoin) (set 25)", + "ec_mag7s__y", "Magic 7s / Cool 7 / Bar X 7 (2001 COOL7) (Electrocoin) (set 26)", + "ec_mag7s__z", "Magic 7s / Cool 7 / Bar X 7 (2001 COOL7) (Electrocoin) (set 27)", + "ec_mgbel", "Megabell (Concept Games Ltd) (?)", + "ec_multb", "Multi Bar (Concept Games Ltd) (?)", + "ec_ndgxs", "Nudge Xcess (MAB PCB?) (Concept Games Ltd) (?)", + "ec_oxocg", "Oxo Classic Gold (Electrocoin) (?)", + "ec_oxocl", "Oxo Club (Electrocoin) (?)", + "ec_oxogb", "Oxo Golden Bars (Electrocoin) (?)", + "ec_oxorl", "Oxo Reels (Electrocoin) (?)", + "ec_oxorv", "Oxo Revolution (Electrocoin) (?)", + "ec_penni", "Pennies From Heaven (v1) (Electrocoin)", + "ec_pennia", "Pennies From Heaven (v6) (Electrocoin)", + "ec_pyram", "Pyramid (v1) (Electrocoin)", + "ec_pyrama", "Pyramid (v6) (Electrocoin)", + "ec_rcc", "Royal Casino Club (Electrocoin) (?)", + "ec_rdht7", "Red Hot 7 (MAB PCB?) (Concept Games Ltd) (?)", + "ec_redbr", "Red Bar (Electrocoin) (set 1)", + "ec_redbr__0", "Red Bar (Electrocoin) (set 28)", + "ec_redbr__1", "Red Bar (Electrocoin) (set 29)", + "ec_redbr__2", "Red Bar (Electrocoin) (set 30)", + "ec_redbr__3", "Red Bar (Electrocoin) (set 31)", + "ec_redbr__4", "Red Bar (Electrocoin) (set 32)", + "ec_redbr__5", "Red Bar (Electrocoin) (set 33)", + "ec_redbr__6", "Red Bar (Electrocoin) (set 34)", + "ec_redbr__7", "Red Bar (Electrocoin) (set 35)", + "ec_redbr__8", "Red Bar (Electrocoin) (set 36)", + "ec_redbr__9", "Red Bar (Electrocoin) (set 37)", + "ec_redbr__a", "Red Bar (Electrocoin) (set 2)", + "ec_redbr__a0", "Red Bar (Electrocoin) (set 64)", + "ec_redbr__a1", "Red Bar (Electrocoin) (set 65)", + "ec_redbr__a2", "Red Bar (Electrocoin) (set 66)", + "ec_redbr__a3", "Red Bar (Electrocoin) (set 67)", + "ec_redbr__a4", "Red Bar (Electrocoin) (set 68)", + "ec_redbr__a5", "Red Bar (Electrocoin) (set 69)", + "ec_redbr__a6", "Red Bar (Electrocoin) (set 70)", + "ec_redbr__a7", "Red Bar (Electrocoin) (set 71)", + "ec_redbr__a8", "Red Bar (Electrocoin) (set 72)", + "ec_redbr__a9", "Red Bar (Electrocoin) (set 73)", + "ec_redbr__aa", "Red Bar (Electrocoin) (set 38)", + "ec_redbr__ab", "Red Bar (Electrocoin) (set 39)", + "ec_redbr__ac", "Red Bar (Electrocoin) (set 40)", + "ec_redbr__ad", "Red Bar (Electrocoin) (set 41)", + "ec_redbr__ae", "Red Bar (Electrocoin) (set 42)", + "ec_redbr__af", "Red Bar (Electrocoin) (set 43)", + "ec_redbr__ag", "Red Bar (Electrocoin) (set 44)", + "ec_redbr__ah", "Red Bar (Electrocoin) (set 45)", + "ec_redbr__ai", "Red Bar (Electrocoin) (set 46)", + "ec_redbr__aj", "Red Bar (Electrocoin) (set 47)", + "ec_redbr__ak", "Red Bar (Electrocoin) (set 48)", + "ec_redbr__al", "Red Bar (Electrocoin) (set 49)", + "ec_redbr__am", "Red Bar (Electrocoin) (set 50)", + "ec_redbr__an", "Red Bar (Electrocoin) (set 51)", + "ec_redbr__ao", "Red Bar (Electrocoin) (set 52)", + "ec_redbr__ap", "Red Bar (Electrocoin) (set 53)", + "ec_redbr__aq", "Red Bar (Electrocoin) (set 54)", + "ec_redbr__ar", "Red Bar (Electrocoin) (set 55)", + "ec_redbr__as", "Red Bar (Electrocoin) (set 56)", + "ec_redbr__at", "Red Bar (Electrocoin) (set 57)", + "ec_redbr__au", "Red Bar (Electrocoin) (set 58)", + "ec_redbr__av", "Red Bar (Electrocoin) (set 59)", + "ec_redbr__aw", "Red Bar (Electrocoin) (set 60)", + "ec_redbr__ax", "Red Bar (Electrocoin) (set 61)", + "ec_redbr__ay", "Red Bar (Electrocoin) (set 62)", + "ec_redbr__az", "Red Bar (Electrocoin) (set 63)", + "ec_redbr__b", "Red Bar (Electrocoin) (set 3)", + "ec_redbr__b0", "Red Bar (Electrocoin) (set 100)", + "ec_redbr__b1", "Red Bar (Electrocoin) (set 101)", + "ec_redbr__ba", "Red Bar (Electrocoin) (set 74)", + "ec_redbr__bb", "Red Bar (Electrocoin) (set 75)", + "ec_redbr__bc", "Red Bar (Electrocoin) (set 76)", + "ec_redbr__bd", "Red Bar (Electrocoin) (set 77)", + "ec_redbr__be", "Red Bar (Electrocoin) (set 78)", + "ec_redbr__bf", "Red Bar (Electrocoin) (set 79)", + "ec_redbr__bg", "Red Bar (Electrocoin) (set 80)", + "ec_redbr__bh", "Red Bar (Electrocoin) (set 81)", + "ec_redbr__bi", "Red Bar (Electrocoin) (set 82)", + "ec_redbr__bj", "Red Bar (Electrocoin) (set 83)", + "ec_redbr__bk", "Red Bar (Electrocoin) (set 84)", + "ec_redbr__bl", "Red Bar (Electrocoin) (set 85)", + "ec_redbr__bm", "Red Bar (Electrocoin) (set 86)", + "ec_redbr__bn", "Red Bar (Electrocoin) (set 87)", + "ec_redbr__bo", "Red Bar (Electrocoin) (set 88)", + "ec_redbr__bp", "Red Bar (Electrocoin) (set 89)", + "ec_redbr__bq", "Red Bar (Electrocoin) (set 90)", + "ec_redbr__br", "Red Bar (Electrocoin) (set 91)", + "ec_redbr__bs", "Red Bar (Electrocoin) (set 92)", + "ec_redbr__bt", "Red Bar (Electrocoin) (set 93)", + "ec_redbr__bu", "Red Bar (Electrocoin) (set 94)", + "ec_redbr__bv", "Red Bar (Electrocoin) (set 95)", + "ec_redbr__bw", "Red Bar (Electrocoin) (set 96)", + "ec_redbr__bx", "Red Bar (Electrocoin) (set 97)", + "ec_redbr__by", "Red Bar (Electrocoin) (set 98)", + "ec_redbr__c", "Red Bar (Electrocoin) (set 4)", + "ec_redbr__d", "Red Bar (Electrocoin) (set 5)", + "ec_redbr__e", "Red Bar (Electrocoin) (set 6)", + "ec_redbr__f", "Red Bar (Electrocoin) (set 7)", + "ec_redbr__g", "Red Bar (Electrocoin) (set 8)", + "ec_redbr__h", "Red Bar (Electrocoin) (set 9)", + "ec_redbr__i", "Red Bar (Electrocoin) (set 10)", + "ec_redbr__j", "Red Bar (Electrocoin) (set 11)", + "ec_redbr__k", "Red Bar (Electrocoin) (set 12)", + "ec_redbr__l", "Red Bar (Electrocoin) (set 13)", + "ec_redbr__m", "Red Bar (Electrocoin) (set 14)", + "ec_redbr__n", "Red Bar (Electrocoin) (set 15)", + "ec_redbr__o", "Red Bar (Electrocoin) (set 16)", + "ec_redbr__p", "Red Bar (Electrocoin) (set 17)", + "ec_redbr__q", "Red Bar (Electrocoin) (set 18)", + "ec_redbr__r", "Red Bar (Electrocoin) (set 19)", + "ec_redbr__s", "Red Bar (Electrocoin) (set 20)", + "ec_redbr__t", "Red Bar (Electrocoin) (set 21)", + "ec_redbr__u", "Red Bar (Electrocoin) (set 22)", + "ec_redbr__v", "Red Bar (Electrocoin) (set 23)", + "ec_redbr__w", "Red Bar (Electrocoin) (set 24)", + "ec_redbr__x", "Red Bar (Electrocoin) (set 25)", + "ec_redbr__y", "Red Bar (Electrocoin) (set 26)", + "ec_redbr__z", "Red Bar (Electrocoin) (set 27)", + "ec_sbarx", "Super Bar X (Electrocoin) (set 1)", + "ec_sbarx__0", "Super Bar X (Electrocoin) (set 28)", + "ec_sbarx__1", "Super Bar X (Electrocoin) (set 29)", + "ec_sbarx__2", "Super Bar X (Electrocoin) (set 30)", + "ec_sbarx__3", "Super Bar X (Electrocoin) (set 31)", + "ec_sbarx__4", "Super Bar X (Electrocoin) (set 32)", + "ec_sbarx__5", "Super Bar X (Electrocoin) (set 33)", + "ec_sbarx__6", "Super Bar X (Electrocoin) (set 34)", + "ec_sbarx__7", "Super Bar X (Electrocoin) (set 35)", + "ec_sbarx__8", "Super Bar X (Electrocoin) (set 36)", + "ec_sbarx__9", "Super Bar X (Electrocoin) (set 37)", + "ec_sbarx__a", "Super Bar X (Electrocoin) (set 2)", + "ec_sbarx__a0", "Super Bar X (Electrocoin) (set 64)", + "ec_sbarx__a1", "Super Bar X (Electrocoin) (set 65)", + "ec_sbarx__a2", "Super Bar X (Electrocoin) (set 66)", + "ec_sbarx__a3", "Super Bar X (Electrocoin) (set 67)", + "ec_sbarx__a4", "Super Bar X (Electrocoin) (set 68)", + "ec_sbarx__aa", "Super Bar X (Electrocoin) (set 38)", + "ec_sbarx__ab", "Super Bar X (Electrocoin) (set 39)", + "ec_sbarx__ac", "Super Bar X (Electrocoin) (set 40)", + "ec_sbarx__ad", "Super Bar X (Electrocoin) (set 41)", + "ec_sbarx__ae", "Super Bar X (Electrocoin) (set 42)", + "ec_sbarx__af", "Super Bar X (Electrocoin) (set 43)", + "ec_sbarx__ag", "Super Bar X (Electrocoin) (set 44)", + "ec_sbarx__ah", "Super Bar X (Electrocoin) (set 45)", + "ec_sbarx__ai", "Super Bar X (Electrocoin) (set 46)", + "ec_sbarx__aj", "Super Bar X (Electrocoin) (set 47)", + "ec_sbarx__ak", "Super Bar X (Electrocoin) (set 48)", + "ec_sbarx__al", "Super Bar X (Electrocoin) (set 49)", + "ec_sbarx__am", "Super Bar X (Electrocoin) (set 50)", + "ec_sbarx__an", "Super Bar X (Electrocoin) (set 51)", + "ec_sbarx__ao", "Super Bar X (Electrocoin) (set 52)", + "ec_sbarx__ap", "Super Bar X (Electrocoin) (set 53)", + "ec_sbarx__aq", "Super Bar X (Electrocoin) (set 54)", + "ec_sbarx__ar", "Super Bar X (Electrocoin) (set 55)", + "ec_sbarx__as", "Super Bar X (Electrocoin) (set 56)", + "ec_sbarx__at", "Super Bar X (Electrocoin) (set 57)", + "ec_sbarx__au", "Super Bar X (Electrocoin) (set 58)", + "ec_sbarx__av", "Super Bar X (Electrocoin) (set 59)", + "ec_sbarx__aw", "Super Bar X (Electrocoin) (set 60)", + "ec_sbarx__ax", "Super Bar X (Electrocoin) (set 61)", + "ec_sbarx__ay", "Super Bar X (Electrocoin) (set 62)", + "ec_sbarx__az", "Super Bar X (Electrocoin) (set 63)", + "ec_sbarx__b", "Super Bar X (Electrocoin) (set 3)", + "ec_sbarx__c", "Super Bar X (Electrocoin) (set 4)", + "ec_sbarx__d", "Super Bar X (Electrocoin) (set 5)", + "ec_sbarx__e", "Super Bar X (Electrocoin) (set 6)", + "ec_sbarx__f", "Super Bar X (Electrocoin) (set 7)", + "ec_sbarx__g", "Super Bar X (Electrocoin) (set 8)", + "ec_sbarx__h", "Super Bar X (Electrocoin) (set 9)", + "ec_sbarx__i", "Super Bar X (Electrocoin) (set 10)", + "ec_sbarx__j", "Super Bar X (Electrocoin) (set 11)", + "ec_sbarx__k", "Super Bar X (Electrocoin) (set 12)", + "ec_sbarx__l", "Super Bar X (Electrocoin) (set 13)", + "ec_sbarx__m", "Super Bar X (Electrocoin) (set 14)", + "ec_sbarx__n", "Super Bar X (Electrocoin) (set 15)", + "ec_sbarx__o", "Super Bar X (Electrocoin) (set 16)", + "ec_sbarx__p", "Super Bar X (Electrocoin) (set 17)", + "ec_sbarx__q", "Super Bar X (Electrocoin) (set 18)", + "ec_sbarx__r", "Super Bar X (Electrocoin) (set 19)", + "ec_sbarx__s", "Super Bar X (Electrocoin) (set 20)", + "ec_sbarx__t", "Super Bar X (Electrocoin) (set 21)", + "ec_sbarx__u", "Super Bar X (Electrocoin) (set 22)", + "ec_sbarx__v", "Super Bar X (Electrocoin) (set 23)", + "ec_sbarx__w", "Super Bar X (Electrocoin) (set 24)", + "ec_sbarx__x", "Super Bar X (Electrocoin) (set 25)", + "ec_sbarx__y", "Super Bar X (Electrocoin) (set 26)", + "ec_sbarx__z", "Super Bar X (Electrocoin) (set 27)", + "ec_sbxbr", "Super Bar X (Brunel Research) (set 1)", + "ec_sbxbra", "Super Bar X (Brunel Research) (set 2)", + "ec_sbxbrb", "Super Bar X (Brunel Research) (set 3)", + "ec_sbxbrc", "Super Bar X (Brunel Research) (set 4)", + "ec_sbxbrd", "Super Bar X (Brunel Research) (set 5)", + "ec_sbxbre", "Super Bar X (Brunel Research) (set 6)", + "ec_sbxbrf", "Super Bar X (Brunel Research) (set 7)", + "ec_sbxbrg", "Super Bar X (Brunel Research) (set 8)", + "ec_sbxbrh", "Super Bar X (Brunel Research) (set 9)", + "ec_secrt", "Secret Castle (v1) (Electrocoin)", + "ec_spbdx", "Super Bar X Deluxe (Electrocoin) (set 1)", + "ec_spbdx__a", "Super Bar X Deluxe (Electrocoin) (set 2)", + "ec_spbdx__b", "Super Bar X Deluxe (Electrocoin) (set 3)", + "ec_spbdx__c", "Super Bar X Deluxe (Electrocoin) (set 4)", + "ec_spbdx__d", "Super Bar X Deluxe (Electrocoin) (set 5)", + "ec_spbg7mab", "Super Big 7 (MAB PCB) (Electrocoin) (?)", + "ec_sphin", "Sphinx (v2) (Electrocoin) (set 1)", + "ec_sphina", "Sphinx (v2) (Electrocoin) (set 2)", + "ec_sphinb", "Sphinx (v1) (Electrocoin)", + "ec_stair", "Stairway To Heaven (v11) (Electrocoin)", + "ec_staira", "Stairway To Heaven (v1) (Electrocoin)", + "ec_stkex", "Stake X (Concept Games Ltd) (?)", + "ec_sumnc", "Casino Super Multi Nudger (Concept / Electrocoin Oxo) (?)", + "ec_sumnd", "Super Multi Nudger (Concept / Electrocoin Oxo) (?)", + "ec_supbxcon", "Super Bar X (MAB PCB) (Concept Games Ltd) (?)", + "ec_supbxmab", "Super Bar X (MAB PCB) (Electrocoin) (?)", + "ec_supmb", "Super Multi Bar (Concept Games Ltd) (?)", + "ec_suprl", "Super Reels (Electrocoin) (?)", + "ec_unk5", "unknown 'Electrocoin' Fruit Machines (Electrocoin) (set 1)", + "ec_unk5__a", "unknown 'Electrocoin' Fruit Machines (Electrocoin) (set 2)", + "ec_unk5__b", "unknown 'Electrocoin' Fruit Machines (Electrocoin) (set 3)", + "ec_unk5__c", "unknown 'Electrocoin' Fruit Machines (Electrocoin) (set 4)", + "ec_unkt", "unknown 'T' (MAB PCB?) (Concept Games Ltd) (?)", + "eca", "Emergency Call Ambulance", + "ecap", "Emergency Call Ambulance (US location test?)", + "ecax", "Emergency Call Ambulance (Export)", + "eclipse", "Eclipse", + "ecofghtr", "Eco Fighters (World 931203)", + "ecofghtra", "Eco Fighters (Asia 931203)", + "ecofghtrd", "Eco Fighters (World 931203 Phoenix Edition) (bootleg)", + "ecofghtrh", "Eco Fighters (Hispanic 931203)", + "ecofghtru", "Eco Fighters (USA 940215)", + "ecofghtru1", "Eco Fighters (USA 931203)", + "edf", "E.D.F. : Earth Defense Force", + "edfbl", "E.D.F. : Earth Defense Force (bootleg)", + "edfu", "E.D.F. : Earth Defense Force (North America)", + "edrandy", "The Cliffhanger - Edward Randy (World ver 3)", + "edrandy1", "The Cliffhanger - Edward Randy (World ver 1)", + "edrandy2", "The Cliffhanger - Edward Randy (World ver 2)", + "edrandyj", "The Cliffhanger - Edward Randy (Japan ver 3)", + "eforest", "Enchanted Forest (12XF528902, US)", + "eforesta", "Enchanted Forest (4VXFC818, NSW)", + "eforestb", "Enchanted Forest (3VXFC5343, New Zealand)", + "egghunt", "Egg Hunt", + "eggor", "Eggor", + "eggs", "Eggs (USA)", + "eggventr", "Egg Venture (Release 10)", + "eggventr2", "Egg Venture (Release 2)", + "eggventr7", "Egg Venture (Release 7)", + "eggventr8", "Egg Venture (Release 8)", + "eggventra", "Egg Venture (A.L. Release)", + "eggventrd", "Egg Venture Deluxe", + "ehrgeiz", "Ehrgeiz (US, EG3/VER.A)", + "ehrgeizaa", "Ehrgeiz (Asia, EG2/VER.A)", + "ehrgeizja", "Ehrgeiz (Japan, EG1/VER.A)", + "eightbll", "Eight Ball", + "eightfrc", "Eight Forces", + "eightman", "Eight Man (NGM-025)(NGH-025)", + "einning", "Extra Inning / Ball Park II", + "ejanhs", "E-Jan High School (Japan)", + "ejihon", "Ejihon Tantei Jimusyo (J 950613 V1.000)", + "ejollyx5", "Euro Jolly X5", + "ejollyx9", "Euro Jolly X9", + "ejsakura", "E-Jan Sakurasou (Japan, SYS386F V2.0)", + "ejsakura12", "E-Jan Sakurasou (Japan, SYS386F V1.2)", + "elandore", "Touryuu Densetsu Elan-Doree / Elan Doree - Legend of Dragoon (JUET 980922 V1.006)", + "eldorado", "El Dorado City of Gold", + "elecyoyo", "The Electric Yo-Yo (set 1)", + "elecyoyo2", "The Electric Yo-Yo (set 2)", + "elektra", "Elektra", + "elephfam", "Elephant Family (Italian, new)", + "elephfmb", "Elephant Family (Italian, old)", + "elevator", "Elevator Action", + "elevatorb", "Elevator Action (bootleg)", + "elgrande", "El Grande - 5 Card Draw (New)", + "elim2", "Eliminator (2 Players, set 1)", + "elim2a", "Eliminator (2 Players, set 2)", + "elim2c", "Eliminator (2 Players, cocktail)", + "elim4", "Eliminator (4 Players)", + "elim4p", "Eliminator (4 Players, prototype)", + "elvact2u", "Elevator Action II (Ver 2.2A 1995/02/20)", + "elvactr", "Elevator Action Returns (Ver 2.2O 1995/02/20)", + "elvactrj", "Elevator Action Returns (Ver 2.2J 1995/02/20)", + "elvis", "Elvis?", + "elvisf", "Elvis (5.00 France)", + "elvisf302", "Elvis (3.02 France)", + "elvisf303", "Elvis (3.03 France)", + "elvisf4", "Elvis (4.00 France)", + "elvisg", "Elvis (5.00 Germany)", + "elvisg302", "Elvis (3.02 Germany)", + "elvisg303", "Elvis (3.03 Germany)", + "elvisg4", "Elvis (4.00 Germany)", + "elvisi", "Elvis (5.00 Italy)", + "elvisi302", "Elvis (3.02 Italy)", + "elvisi303", "Elvis (3.03 Italy)", + "elvisi4", "Elvis (4.00 Italy)", + "elvisl", "Elvis (5.00 Spain)", + "elvisl302", "Elvis (3.02 Spain)", + "elvisl303", "Elvis (3.03 Spain)", + "elvisl4", "Elvis (4.00 Spain)", + "elvisp", "Elvis (5.00)", + "elvisp302", "Elvis (3.02)", + "elvisp303", "Elvis (3.03)", + "elvisp4", "Elvis (4.00)", + "embargo", "Embargo", + "embryon", "Embryon", + "emeralda", "Emeraldia (World)", + "emeraldaj", "Emeraldia (Japan Version B)", + "emeraldaja", "Emeraldia (Japan)", + "empcity", "Empire City: 1931 (bootleg?)", + "empcityi", "Empire City: 1931 (Italy)", + "empcityj", "Empire City: 1931 (Japan)", + "empcityu", "Empire City: 1931 (US)", + "empsback", "The Empire Strike Back", + "enchfrst", "Enchanted Forest (0400122V, Local)", + "enchlamp", "Enchanted Lamp (Konami Endeavour)", + "endless", "Gundam Wing: Endless Duel (SNES bootleg)", + "endurob2", "Enduro Racer (bootleg set 2)", + "endurobl", "Enduro Racer (bootleg set 1)", + "enduror", "Enduro Racer (YM2151, FD1089B 317-0013A)", + "enduror1", "Enduro Racer (YM2203, FD1089B 317-0013A)", + "enforce", "Enforce (World)", + "enforcej", "Enforce (Japan)", + "enforceja", "Enforce (Japan, Analog Controls)", + "enigma2", "Enigma II", + "enigma2a", "Enigma II (Space Invaders hardware)", + "enigma2b", "Phantoms II (Space Invaders hardware)", + "ep_21clb", "Twenty One Club (Maygay) (EPOCH) (3.2, set 1)", + "ep_21clba", "Twenty One Club (Maygay) (EPOCH) (3.2, set 2)", + "ep_25crt", "25 Carrot Gold (Maygay) (EPOCH) (1.2, set 1)", + "ep_25crta", "25 Carrot Gold (Maygay) (EPOCH) (1.1, set 2)", + "ep_25crtb", "25 Carrot Gold (Maygay) (EPOCH) (3.1, set 3)", + "ep_25crtc", "25 Carrot Gold (Maygay) (EPOCH) (4.1, set 4)", + "ep_25crtd", "25 Carrot Gold (Maygay) (EPOCH) (5.1, set 5)", + "ep_bartk", "Bar Trekkin (Maygay) (EPOCH) (4.5, set 1)", + "ep_bartka", "Bar Trekkin (Maygay) (EPOCH) (3.9, set 2)", + "ep_bartkb", "Bar Trekkin (Maygay) (EPOCH) (3.9, set 3)", + "ep_bartkc", "Bar Trekkin (Maygay) (EPOCH) (4.4, set 4)", + "ep_bartkd", "Bar Trekkin (Maygay) (EPOCH) (4.4, set 5)", + "ep_bartke", "Bar Trekkin (Maygay) (EPOCH) (4.5, set 6)", + "ep_bartkf", "Bar Trekkin (Maygay) (EPOCH) (4.2, set 7)", + "ep_baskr", "Pounds Of The Baskervilles (Maygay) (EPOCH) (1.7, set 1)", + "ep_baskra", "Pounds Of The Baskervilles (Maygay) (EPOCH) (2.2, set 2)", + "ep_baskrb", "Pounds Of The Baskervilles (Maygay) (EPOCH) (2.2, set 3)", + "ep_baskrc", "Pounds Of The Baskervilles (Maygay) (EPOCH) (1.7, set 4)", + "ep_baskrd", "Pounds Of The Baskervilles (Maygay) (EPOCH) (2.1, set 5)", + "ep_baskre", "Pounds Of The Baskervilles (Maygay) (EPOCH) (1.5, set 6)", + "ep_bathl", "Bat Outa Hell (Global) (EPOCH) (2.1, set 1)", + "ep_bathla", "Bat Outa Hell (Global) (EPOCH) (2.1, set 2)", + "ep_bathlb", "Bat Outa Hell (Global) (EPOCH) (2.2, set 3)", + "ep_bathlc", "Bat Outa Hell (Global) (EPOCH) (2.2, set 4)", + "ep_bathld", "Bat Outa Hell (Global) (EPOCH) (3.1, set 5)", + "ep_bathle", "Bat Outa Hell (Global) (EPOCH) (3.1, set 6)", + "ep_bathlf", "Bat Outa Hell (Global) (EPOCH) (4.1, set 7)", + "ep_bathlg", "Bat Outa Hell (Global) (EPOCH) (4.1, set 8)", + "ep_bathlh", "Bat Outa Hell (Global) (EPOCH) (3.3, set 9)", + "ep_batls", "Battleships (Maygay) (EPOCH) (2.2, set 1)", + "ep_batlsa", "Battleships (Maygay) (EPOCH) (2.2, set 2)", + "ep_batlsb", "Battleships (Maygay) (EPOCH) (1.9, set 3)", + "ep_batlsc", "Battleships (Maygay) (EPOCH) (1.9, set 4)", + "ep_bbars", "Balloon Bars (Maygay) (EPOCH) (1.2, set 1)", + "ep_bbarsa", "Balloon Bars (Maygay) (EPOCH) (1.2, set 2)", + "ep_bbarsb", "Balloon Bars (Maygay) (EPOCH) (2.0, set 3)", + "ep_bbarsc", "Balloon Bars (Maygay) (EPOCH) (2.0, set 4)", + "ep_bbonz", "Bingo Bonanza (Maygay - Union) (EPOCH) (set 1)", + "ep_bbonza", "Bingo Bonanza (Maygay - Union) (EPOCH) (set 2)", + "ep_beav3", "Casino Beaver Las Vegas (Global) (EPOCH) (CA000720, 3.3, set 1)", + "ep_beav3a", "Casino Beaver Las Vegas (Global) (EPOCH) (CA000720, 3.3, set 2)", + "ep_beav3b", "Casino Beaver Las Vegas (Global) (EPOCH) (CA000720, 4.2, set 3)", + "ep_beav3c", "Casino Beaver Las Vegas (Global) (EPOCH) (CA000720, 4.2, set 4)", + "ep_beavr", "Casino Beaver Las Vegas (Global) (EPOCH) (set 1)", + "ep_beavra", "Casino Beaver Las Vegas (Global) (EPOCH) (set 2)", + "ep_beavrb", "Casino Beaver Las Vegas (Global) (EPOCH) (set 3)", + "ep_beavrc", "Casino Beaver Las Vegas (Global) (EPOCH) (set 4)", + "ep_beavrd", "Casino Beaver Las Vegas (Global) (EPOCH) (set 5)", + "ep_beavre", "Casino Beaver Las Vegas (Global) (EPOCH) (set 6)", + "ep_beavrf", "Casino Beaver Las Vegas (Global) (EPOCH) (set 7)", + "ep_beavrg", "Casino Beaver Las Vegas (Global) (EPOCH) (set 8)", + "ep_beavrh", "Casino Beaver Las Vegas (Global) (EPOCH) (set 9)", + "ep_beavri", "Casino Beaver Las Vegas (Global) (EPOCH) (set 10)", + "ep_beavrj", "Casino Beaver Las Vegas (Global) (EPOCH) (set 11)", + "ep_beavrk", "Casino Beaver Las Vegas (Global) (EPOCH) (set 12)", + "ep_beavrl", "Casino Beaver Las Vegas (Global) (EPOCH) (set 13)", + "ep_beavrm", "Casino Beaver Las Vegas (Global) (EPOCH) (set 14)", + "ep_beavrn", "Casino Beaver Las Vegas (Global) (EPOCH) (CA000720, 2.3, set 5)", + "ep_beavro", "Casino Beaver Las Vegas (Global) (EPOCH) (CA000720, 2.3, set 6)", + "ep_bingb", "Bingo Belle (Maygay) (EPOCH) (1.3, set 1)", + "ep_bingba", "Bingo Belle (Maygay) (EPOCH) (1.3, set 2)", + "ep_bjclb", "Blackjack Club, The (Global) (EPOCH)", + "ep_braid", "Bank Raid (Extreme) (EPOCH) (BARA 0.1, set 1)", + "ep_braida", "Bank Raid (Extreme) (EPOCH) (BARA 0.1, set 2)", + "ep_braidb", "Bank Raid (Extreme) (EPOCH) (BARA 0.5, set 3)", + "ep_braidc", "Bank Raid (Extreme) (EPOCH) (BARA 0.5, set 4)", + "ep_braidd", "Bank Raid (Extreme) (EPOCH) (BARA 0.5, set 5)", + "ep_braide", "Bank Raid (Extreme) (EPOCH) (BARA 0.5, set 6)", + "ep_bubsq", "Bubble & Squeak (Extreme) (EPOCH) (BASQ 0.2, set 1)", + "ep_bubsqa", "Bubble & Squeak (Extreme) (EPOCH) (BASQ 0.2, set 2)", + "ep_bubsqb", "Bubble & Squeak (Extreme) (EPOCH) (BASQ 0.3, set 3)", + "ep_bubsqc", "Bubble & Squeak (Extreme) (EPOCH) (BASQ 0.3, set 4)", + "ep_bubsqd", "Bubble & Squeak (Extreme) (EPOCH) (BASQ 0.4, set 5)", + "ep_bvrcl", "Beaver Las Vegas Club (Global) (EPOCH) (set 1)", + "ep_bvrcla", "Beaver Las Vegas Club (Global) (EPOCH) (set 2)", + "ep_bvrclb", "Beaver Las Vegas Club (Global) (EPOCH) (set 3)", + "ep_bvrclc", "Beaver Las Vegas Club (Global) (EPOCH) (set 4)", + "ep_bvrcld", "Beaver Las Vegas Club (Global) (EPOCH) (set 5)", + "ep_bvrcle", "Beaver Las Vegas Club (Global) (EPOCH) (set 6)", + "ep_bvrclf", "Beaver Las Vegas Club (Global) (EPOCH) (set 7)", + "ep_bvrclg", "Beaver Las Vegas Club (Global) (EPOCH) (set 8)", + "ep_bvrclh", "Beaver Las Vegas Club (Global) (EPOCH) (set 9)", + "ep_bvrcli", "Beaver Las Vegas Club (Global) (EPOCH) (set 10)", + "ep_bvrclj", "Beaver Las Vegas Club (Global) (EPOCH) (set 11)", + "ep_bvrclk", "Beaver Las Vegas Club (Global) (EPOCH) (set 12)", + "ep_bvruc", "Beaver Uncovered (Global) (EPOCH) (1.4, set 1)", + "ep_bvruca", "Beaver Uncovered (Global) (EPOCH) (1.4, set 2)", + "ep_bvrucb", "Beaver Uncovered (Global) (EPOCH) (1.6, set 3)", + "ep_bvrucc", "Beaver Uncovered (Global) (EPOCH) (2.3, set 4)", + "ep_cahoy", "Cash Ahoy (Maygay - Eclipse?) (EPOCH) (set 1)", + "ep_cahoya", "Cash Ahoy (Maygay) (EPOCH) (set 2)", + "ep_cahoyb", "Cash Ahoy (Maygay) (EPOCH) (set 3)", + "ep_calyp", "Calypso (Maygay) (EPOCH) (2.2, set 1)", + "ep_calypa", "Calypso (Maygay) (EPOCH) (2.2, set 2)", + "ep_cascz", "Casino Crazy (Global) (EPOCH) (set 1)", + "ep_cascza", "Casino Crazy (Global) (EPOCH) (2.1, set 2)", + "ep_casgc", "Casino Grand Club (Maygay) (EPOCH) (1.1, set 1)", + "ep_casgca", "Casino Grand Club (Maygay) (EPOCH) (1.1, set 2)", + "ep_casgcb", "Casino Grand Club (Maygay) (EPOCH) (1.4, set 3)", + "ep_casgcc", "Casino Grand Club (Maygay) (EPOCH) (1.4, set 4)", + "ep_cashn", "Cashino (Maygay - Extreme) (EPOCH) (CSHI 1.0, set 1)", + "ep_cashna", "Cashino (Maygay - Extreme) (EPOCH) (CSHI 1.0, set 2)", + "ep_casrd", "Casino Royale Deluxe Club (Maygay) (EPOCH) (1.5, set 1)", + "ep_casrda", "Casino Royale Deluxe Club (Maygay) (EPOCH) (1.3, set 2)", + "ep_cbrcl", "Cannonball Run Club (Global) (EPOCH) (set 1)", + "ep_cbrcla", "Cannonball Run Club (Global) (EPOCH) (set 2)", + "ep_cbrclb", "Cannonball Run Club (Global) (EPOCH) (set 3)", + "ep_cbrclc", "Cannonball Run Club (Global) (EPOCH) (set 4)", + "ep_cbrcld", "Cannonball Run Club (Global) (EPOCH) (set 5)", + "ep_cbrcle", "Cannonball Run Club (Global) (EPOCH) (set 6)", + "ep_cbrclf", "Cannonball Run Club (Global) (EPOCH) (set 7)", + "ep_cbrclg", "Cannonball Run Club (Global) (EPOCH) (set 8)", + "ep_cbrclh", "Cannonball Run Club (Global) (EPOCH) (set 9)", + "ep_cbrcli", "Cannonball Run Club (Global) (EPOCH) (set 10)", + "ep_cbrclj", "Cannonball Run Club (Global) (EPOCH) (set 11)", + "ep_cbrclk", "Cannonball Run Club (Global) (EPOCH) (set 12)", + "ep_cbrun", "Cannonball Run (Global) (EPOCH) (2.2, set 1)", + "ep_cbruna", "Cannonball Run (Global) (EPOCH) (2.2, set 2)", + "ep_cbrunb", "Cannonball Run (Global) (EPOCH) (2.4, set 3)", + "ep_cbrunc", "Cannonball Run (Global) (EPOCH) (2.4, set 4)", + "ep_cbrund", "Cannonball Run (Global) (EPOCH) (3.1, set 5)", + "ep_cbrune", "Cannonball Run (Global) (EPOCH) (3.1, set 6)", + "ep_cclas", "Casino Classic (Global) (EPOCH) (set 1)", + "ep_cclasa", "Casino Classic (Global) (EPOCH) (set 2)", + "ep_ccock", "Cash Cocktail (Maygay) (EPOCH) (1.1, set 1)", + "ep_ccocka", "Cash Cocktail (Maygay) (EPOCH) (1.1, set 2)", + "ep_ccockb", "Cash Cocktail (Maygay) (EPOCH) (1.1, set 3)", + "ep_ccockc", "Cash Cocktail (Maygay) (EPOCH) (1.1, set 4)", + "ep_cdspn", "Cardinal Spin (Maygay) (EPOCH) (1.1, set 1)", + "ep_cdspna", "Cardinal Spin (Maygay) (EPOCH) (1.1, set 2)", + "ep_cfall", "Cash Falls (Maygay) (EPOCH) (1.2, set 1)", + "ep_cfalla", "Cash Falls (Maygay) (EPOCH) (1.3, set 2)", + "ep_cfallb", "Cash Falls (Maygay) (EPOCH) (1.3, set 3)", + "ep_cfallc", "Cash Falls (Maygay) (EPOCH) (2.3, set 4)", + "ep_cfalld", "Cash Falls (Maygay) (EPOCH) (2.3, set 5)", + "ep_cfalle", "Cash Falls (Maygay) (EPOCH) (3.2, set 6)", + "ep_cfallf", "Cash Falls (Maygay) (EPOCH) (3.2, set 7)", + "ep_cflow", "Cash Flow (Maygay) (EPOCH) (3.7, set 1)", + "ep_cflowa", "Cash Flow (Maygay) (EPOCH) (3.2, set 2)", + "ep_cflowc", "Cash Flow (Maygay) (EPOCH) (3.A, set 3)", + "ep_cflowd", "Cash Flow (Maygay) (EPOCH) (3.A, set 4)", + "ep_cgord", "Cash Gordon (Maygay) (EPOCH) (2.1, set 1)", + "ep_cgorda", "Cash Gordon (Maygay) (EPOCH) (2.3, set 2)", + "ep_cgordb", "Cash Gordon (Maygay) (EPOCH) (2.3, set 3)", + "ep_cgordc", "Cash Gordon (Maygay) (EPOCH) (1.9, set 4)", + "ep_cgrc", "Casino Grand Classic (Global) (EPOCH) (set 1)", + "ep_cgrca", "Casino Grand Classic (Global) (EPOCH) (set 2)", + "ep_cgred", "Club Greed (Global) (EPOCH) (set 1)", + "ep_cgreda", "Club Greed (Global) (EPOCH) (set 2)", + "ep_chock", "Chocks Away (Maygay) (EPOCH) (1.1, set 1)", + "ep_chocka", "Chocks Away (Maygay) (EPOCH) (1.1, set 2)", + "ep_chockb", "Chocks Away (Maygay) (EPOCH) (1.1, set 3)", + "ep_cock", "Cock A Doodle Dosh (Maygay - Union) (EPOCH) (set 1)", + "ep_cocka", "Cock A Doodle Dosh (Maygay - Union) (EPOCH) (set 2)", + "ep_cockb", "Cock A Doodle Dosh (Maygay - Union) (EPOCH) (set 3)", + "ep_cockc", "Cock A Doodle Dosh (Maygay - Union) (EPOCH) (set 4)", + "ep_cockd", "Cock A Doodle Dosh (Maygay - Union) (EPOCH) (set 5)", + "ep_cocke", "Cock A Doodle Dosh (Maygay - Union) (EPOCH) (set 6)", + "ep_commd", "Complete Madness (Maygay) (EPOCH) (2.2, set 1)", + "ep_commda", "Complete Madness (Maygay) (EPOCH) (2.2, set 2)", + "ep_commdb", "Complete Madness (Maygay) (EPOCH) (1.1, set 3)", + "ep_commdc", "Complete Madness (Maygay) (EPOCH) (1.2, set 4)", + "ep_commdd", "Complete Madness (Maygay) (EPOCH) (2.1, set 5)", + "ep_cor2", "Coronation Street 2 (Maygay) (EPOCH) (3.7, set 1)", + "ep_cor2a", "Coronation Street 2 (Maygay) (EPOCH) (3.7, set 2)", + "ep_cor2b", "Coronation Street 2 (Maygay) (EPOCH) (3.8, set 3)", + "ep_cor2c", "Coronation Street 2 (Maygay) (EPOCH) (3.8, set 4)", + "ep_cormn", "Coronation Street Monopoly Club (Maygay) (EPOCH) (1.7, set 1)", + "ep_cormna", "Coronation Street Monopoly Club (Maygay) (EPOCH) (1.7, set 2)", + "ep_cosc", "Carry On Screaming (Maygay) (EPOCH) (1.3, set 1)", + "ep_cosca", "Carry On Screaming (Maygay) (EPOCH) (1.3, set 2)", + "ep_cow", "Carry On Winning (Maygay) (EPOCH) (1.3, set 1)", + "ep_cowa", "Carry On Winning (Maygay) (EPOCH) (1.3, set 2)", + "ep_crazy", "Reel Crazy (Maygay) (EPOCH) (1.6, set 1)", + "ep_crazya", "Reel Crazy (Maygay) (EPOCH) (1.6, set 2)", + "ep_crazyb", "Reel Crazy (Maygay) (EPOCH) (2.6, set 3)", + "ep_crazyc", "Reel Crazy (Maygay) (EPOCH) (2.6, set 4)", + "ep_crazyd", "Reel Crazy (Maygay) (EPOCH) (1.9, set 5)", + "ep_crazye", "Reel Crazy (Maygay) (EPOCH) (1.9, set 6)", + "ep_crzbn", "Crazy Bingo (Maygay) (EPOCH) (1.1, set 1)", + "ep_crzbna", "Crazy Bingo (Maygay) (EPOCH) (1.1, set 2)", + "ep_crzbnb", "Crazy Bingo (Maygay) (EPOCH) (1.1 Gala, set 3)", + "ep_crzbnc", "Crazy Bingo (Maygay) (EPOCH) (1.1 Gala, set 4)", + "ep_cshpn", "Cash In The Pan (Maygay) (EPOCH) (1.1, set 1)", + "ep_cshpna", "Cash In The Pan (Maygay) (EPOCH) (1.1, set 2)", + "ep_cslay", "Cash Slayer (Global) (EPOCH) (1.4, set 1)", + "ep_cslaya", "Cash Slayer (Global) (EPOCH) (set 2)", + "ep_cstrk", "Crazy Streak Club (Global) (EPOCH) (set 1)", + "ep_cstrka", "Crazy Streak Club (Global) (EPOCH) (set 2)", + "ep_cstrkb", "Crazy Streak Club (Global) (EPOCH) (set 3)", + "ep_cstrkc", "Crazy Streak Club (Global) (EPOCH) (set 4)", + "ep_cstrkd", "Crazy Streak Club (Global) (EPOCH) (set 5)", + "ep_cstrke", "Crazy Streak Club (Global) (EPOCH) (set 6)", + "ep_cstrkf", "Crazy Streak Club (Global) (EPOCH) (set 7)", + "ep_cstrkg", "Crazy Streak Club (Global) (EPOCH) (set 8)", + "ep_ctc", "Cut Throat Cash (Global) (EPOCH) (1.2, set 1)", + "ep_ctca", "Cut Throat Cash (Global) (EPOCH) (1.2, set 2)", + "ep_ctit", "Cash Of The Titans (Maygay) (EPOCH) (1.5, set 1)", + "ep_ctita", "Cash Of The Titans (Maygay) (EPOCH) (1.5, set 2)", + "ep_cyc", "Cyclone (Extreme) (EPOCH) (CYCL 0.2, set 1)", + "ep_cyca", "Cyclone (Extreme) (EPOCH) (CYCL 0.2, set 2)", + "ep_cycb", "Cyclone (Extreme) (EPOCH) (CYCL 0.3, set 3)", + "ep_cycc", "Cyclone (Extreme) (EPOCH) (CYCL 0.3, set 4)", + "ep_cycd", "Cyclone (Extreme) (EPOCH) (CYCL 0.1, set 5)", + "ep_cyce", "Cyclone (Extreme) (EPOCH) (CYCL 0.1, set 6)", + "ep_cycl", "Cyclone Club (Maygay) (EPOCH) (3.1, set 1)", + "ep_cycla", "Cyclone Club (Maygay) (EPOCH) (3.1, set 2)", + "ep_cyclb", "Cyclone Club (Maygay) (EPOCH) (2.1, set 3)", + "ep_dblim", "Double Impact (Maygay - Impulse) (EPOCH) (set 1)", + "ep_dblima", "Double Impact (Maygay - Impulse) (EPOCH) (set 2)", + "ep_dblimb", "Double Impact (Maygay - Impulse) (EPOCH) (set 3)", + "ep_dblimc", "Double Impact (Maygay - Impulse) (EPOCH) (set 4)", + "ep_dblimd", "Double Impact (Maygay - Impulse) (EPOCH) (set 5)", + "ep_ddq", "Dungeons & Drag Queens (Global) (EPOCH) (1.4, set 1)", + "ep_ddqa", "Dungeons & Drag Queens (Global) (EPOCH) (1.4, set 2)", + "ep_ddqb", "Dungeons & Drag Queens (Global) (EPOCH) (2.1, set 3)", + "ep_ddqc", "Dungeons & Drag Queens (Global) (EPOCH) (2.1, set 4)", + "ep_ddqcl", "Dungeons & Drag Queens Club (Global) (EPOCH) (set 1)", + "ep_ddqcla", "Dungeons & Drag Queens Club (Global) (EPOCH) (set 2)", + "ep_ddqclb", "Dungeons & Drag Queens Club (Global) (EPOCH) (set 3)", + "ep_ddqclc", "Dungeons & Drag Queens Club (Global) (EPOCH) (set 4)", + "ep_ddqcld", "Dungeons & Drag Queens Club (Global) (EPOCH) (set 5)", + "ep_ddqcle", "Dungeons & Drag Queens Club (Global) (EPOCH) (set 6)", + "ep_ddqclf", "Dungeons & Drag Queens Club (Global) (EPOCH) (set 7)", + "ep_ddqclg", "Dungeons & Drag Queens Club (Global) (EPOCH) (set 8)", + "ep_ddqd", "Dungeons & Drag Queens (Global) (EPOCH) (2.2, set 5)", + "ep_ddqe", "Dungeons & Drag Queens (Global) (EPOCH) (2.2, set 6)", + "ep_ddqf", "Dungeons & Drag Queens (Global) (EPOCH) (2.4, set 7)", + "ep_ddqg", "Dungeons & Drag Queens (Global) (EPOCH) (2.4, set 8)", + "ep_ddqh", "Dungeons & Drag Queens (Global) (EPOCH) (2.5, set 9)", + "ep_ddqi", "Dungeons & Drag Queens (Global) (EPOCH) (2.5, set 10)", + "ep_dmbus", "Dambusters (Impulse) (EPOCH) (set 1)", + "ep_dmbusa", "Dambusters (Impulse) (EPOCH) (set 2)", + "ep_dmbusb", "Dambusters (Impulse) (EPOCH) (set 3)", + "ep_dmbusc", "Dambusters (Impulse) (EPOCH) (set 4)", + "ep_dmbusd", "Dambusters (Impulse) (EPOCH) (set 5)", + "ep_dmbuse", "Dambusters (Impulse) (EPOCH) (set 6)", + "ep_dmbusf", "Dambusters (Impulse) (EPOCH) (set 7)", + "ep_doubl", "Double Top (Maygay) (EPOCH) (1.4, set 1)", + "ep_doubla", "Double Top (Maygay) (EPOCH) (1.4, set 2)", + "ep_doublb", "Double Top (Maygay) (EPOCH) (1.6, set 3)", + "ep_doublc", "Double Top (Maygay) (EPOCH) (1.6, set 4)", + "ep_doubld", "Double Top (Maygay) (EPOCH) (1.4, set 5)", + "ep_duff", "The Simpsons - Duff Beer Guide (Maygay) (EPOCH) (set 1)", + "ep_duffa", "The Simpsons - Duff Beer Guide (Maygay) (EPOCH) (set 2)", + "ep_duffb", "The Simpsons - Duff Beer Guide (Maygay) (EPOCH) (set 3)", + "ep_duffc", "The Simpsons - Duff Beer Guide (Maygay) (EPOCH) (set 4)", + "ep_evil", "Evil Streak (Maygay) (EPOCH) (1.6, set 1)", + "ep_evila", "Evil Streak (Maygay) (EPOCH) (1.6, set 2)", + "ep_evilb", "Evil Streak (Maygay) (EPOCH) (1.4, set 3)", + "ep_fgods", "Fruit Of The Gods (Maygay) (EPOCH) (1.2, set 1)", + "ep_fgodsa", "Fruit Of The Gods (Maygay) (EPOCH) (1.2, set 2)", + "ep_fgodsb", "Fruit Of The Gods (Maygay) (EPOCH) (2.2, set 3)", + "ep_fgodsc", "Fruit Of The Gods (Maygay) (EPOCH) (2.2, set 4)", + "ep_fgodsd", "Fruit Of The Gods (Maygay) (EPOCH) (2.1, set 5)", + "ep_fgodse", "Fruit Of The Gods (Maygay) (EPOCH) (3.2, set 6)", + "ep_fgodsf", "Fruit Of The Gods (Maygay) (EPOCH) (1.1, set 7)", + "ep_fgodsg", "Fruit Of The Gods (Maygay) (EPOCH) (1.1, set 8)", + "ep_flash", "Flashback (Maygay - Impulse) (EPOCH) (set 1)", + "ep_flasha", "Flashback (Maygay - Impulse) (EPOCH) (set 2)", + "ep_flashb", "Flashback (Maygay - Impulse) (EPOCH) (set 3)", + "ep_flashc", "Flashback (Maygay - Impulse) (EPOCH) (set 4)", + "ep_flashd", "Flashback (Maygay - Impulse) (EPOCH) (set 5)", + "ep_flashe", "Flashback (Maygay - Impulse) (EPOCH) (set 6)", + "ep_flashf", "Flashback (Maygay - Impulse) (EPOCH) (set 7)", + "ep_fmf", "Full Moon Fever (Global) (EPOCH) (set 1)", + "ep_fmfa", "Full Moon Fever (Global) (EPOCH) (set 2)", + "ep_fnclb", "Fruit & Nudge Club (Maygay) (EPOCH) (set 1)", + "ep_fnclba", "Fruit & Nudge Club (Maygay) (EPOCH) (set 2)", + "ep_fog", "Fields of Gold (Global) (EPOCH) (set 1)", + "ep_foga", "Fields of Gold (Global) (EPOCH) (set 2)", + "ep_fortg", "Fortune & Glory (Maygay - Impulse) (EPOCH) (set 1)", + "ep_fortga", "Fortune & Glory (Maygay - Impulse) (EPOCH) (set 2)", + "ep_fortgb", "Fortune & Glory (Maygay - Impulse) (EPOCH) (set 3)", + "ep_fran", "Frantic (Maygay) (EPOCH) (set 1)", + "ep_frana", "Frantic (Maygay) (EPOCH) (set 2)", + "ep_fullm", "Full Moon Fever (Maygay - Impulse) (EPOCH) (set 1)", + "ep_fullma", "Full Moon Fever (Maygay - Impulse) (EPOCH) (set 2)", + "ep_fullmb", "Full Moon Fever (Maygay - Impulse) (EPOCH) (set 3)", + "ep_fullmc", "Full Moon Fever (Maygay - Impulse) (EPOCH) (set 4)", + "ep_fullmd", "Full Moon Fever (Maygay - Impulse) (EPOCH) (set 5)", + "ep_fullme", "Full Moon Fever (Maygay - Impulse) (EPOCH) (set 6)", + "ep_fullmf", "Full Moon Fever (Maygay - Impulse) (EPOCH) (set 7)", + "ep_funny", "Funny Money (Maygay) (EPOCH) (set 1)", + "ep_funnya", "Funny Money (Maygay) (EPOCH) (set 2)", + "ep_funnyb", "Funny Money (Maygay) (EPOCH) (set 3)", + "ep_funnyc", "Funny Money (Maygay) (EPOCH) (set 4)", + "ep_funnyd", "Funny Money (Maygay) (EPOCH) (set 5)", + "ep_funnye", "Funny Money (Maygay) (EPOCH) (set 6)", + "ep_funnyf", "Funny Money (Maygay) (EPOCH) (set 7)", + "ep_funnyg", "Funny Money (Maygay) (EPOCH) (set 8)", + "ep_geclb", "Great Escape Club (Maygay) (EPOCH) (1.C, set 1)", + "ep_geclba", "Great Escape Club (Maygay) (EPOCH) (1.C, set 2)", + "ep_geclbb", "Great Escape Club (Maygay) (EPOCH) (1.9, set 3)", + "ep_geron", "Geronimo (Maygay - Impulse) (EPOCH) (set 1)", + "ep_gerona", "Geronimo (Maygay - Impulse) (EPOCH) (set 2)", + "ep_geronb", "Geronimo (Maygay - Impulse) (EPOCH) (set 3)", + "ep_geronc", "Geronimo (Maygay - Impulse) (EPOCH) (set 4)", + "ep_gerond", "Geronimo (Maygay - Impulse) (EPOCH) (set 5)", + "ep_gerone", "Geronimo (Maygay - Impulse) (EPOCH) (set 6)", + "ep_gesc2", "Great Escape 2 (Maygay) (EPOCH) (2.1, set 1)", + "ep_gesc2a", "Great Escape 2 (Maygay) (EPOCH) (2.1, set 2)", + "ep_gldtp", "Gold Top (Maygay) (EPOCH) (1.1, set 1)", + "ep_gldtpa", "Gold Top (Maygay) (EPOCH) (1.1, set 2)", + "ep_goldf", "Gold Fever (Impulse) (EPOCH)", + "ep_greed", "Greed (Global) (EPOCH) (1.3, set 1)", + "ep_greeda", "Greed (Global) (EPOCH) (1.3, set 2)", + "ep_gresc", "Great Escape (Maygay) (EPOCH) (1.1, set 1)", + "ep_gresca", "Great Escape (Maygay) (EPOCH) (1.1, set 2)", + "ep_gridr", "Gridrunner (Maygay - Impulse) (EPOCH) (set 1)", + "ep_gridra", "Gridrunner (Maygay - Impulse) (EPOCH) (set 2)", + "ep_gridrb", "Gridrunner (Maygay - Impulse) (EPOCH) (set 3)", + "ep_gridrc", "Gridrunner (Maygay - Impulse) (EPOCH) (set 4)", + "ep_gridrd", "Gridrunner (Maygay - Impulse) (EPOCH) (set 5)", + "ep_grncl", "Grid Runner Club (Global) (EPOCH) (set 1)", + "ep_grncla", "Grid Runner Club (Global) (EPOCH) (set 2)", + "ep_grnclb", "Grid Runner Club (Global) (EPOCH) (set 3)", + "ep_grnclc", "Grid Runner Club (Global) (EPOCH) (set 4)", + "ep_grun", "Grid Runner (Global) (EPOCH) (set 1)", + "ep_gruna", "Grid Runner (Global) (EPOCH) (set 2)", + "ep_gtrot", "Globe Trotter (Global) (EPOCH) (set 1)", + "ep_gtrota", "Globe Trotter (Global) (EPOCH) (set 2)", + "ep_heybc", "Hey Big Spender Club (Global) (EPOCH) (set 1)", + "ep_heybca", "Hey Big Spender Club (Global) (EPOCH) (set 2)", + "ep_heybg", "Hey Big Spender (Global) (EPOCH) (set 1)", + "ep_heybga", "Hey Big Spender (Global) (EPOCH) (set 2)", + "ep_heybgb", "Hey Big Spender (Global) (EPOCH) (set 3)", + "ep_heybgc", "Hey Big Spender (Global) (EPOCH) (set 4)", + "ep_hhclb", "Haunted House Club (Maygay) (EPOCH) (1.4, set 1)", + "ep_hhclba", "Haunted House Club (Maygay) (EPOCH) (1.4, set 2)", + "ep_hhclbb", "Haunted House Club (Maygay) (EPOCH) (1.1, set 3)", + "ep_hhclbc", "Haunted House Club (Maygay) (EPOCH) (1.1, set 4)", + "ep_highv", "High Voltage (Maygay - Impulse) (EPOCH) (set 1)", + "ep_highva", "High Voltage (Maygay - Impulse) (EPOCH) (set 2)", + "ep_highvb", "High Voltage (Maygay - Impulse) (EPOCH) (set 3)", + "ep_highvc", "High Voltage (Maygay - Impulse) (EPOCH) (set 4)", + "ep_highvd", "High Voltage (Maygay - Impulse) (EPOCH) (set 5)", + "ep_highve", "High Voltage (Maygay - Impulse) (EPOCH) (set 6)", + "ep_highvf", "High Voltage (Maygay - Impulse) (EPOCH) (set 7)", + "ep_hiscl", "Hi Spirits Club (Global) (EPOCH) (set 1)", + "ep_hiscla", "Hi Spirits Club (Global) (EPOCH) (set 2)", + "ep_hispr", "Hi Spirits (Global) (EPOCH) (1.A, set 1)", + "ep_hispra", "Hi Spirits (Global) (EPOCH) (1.A, set 2)", + "ep_hisprb", "Hi Spirits (Global) (EPOCH) (4.2, set 3)", + "ep_hisprc", "Hi Spirits (Global) (EPOCH) (4.2, set 4)", + "ep_hisprd", "Hi Spirits (Global) (EPOCH) (3.2, set 5)", + "ep_hispre", "Hi Spirits (Global) (EPOCH) (3.2, set 6)", + "ep_hogmn", "Hog Money (Maygay - Impulse) (EPOCH) (set 1)", + "ep_hogmna", "Hog Money (Maygay - Impulse) (EPOCH) (set 2)", + "ep_hogmnb", "Hog Money (Maygay - Impulse) (EPOCH) (set 3)", + "ep_homer", "The Simpsons - Homer's Meltdown (Maygay) (EPOCH) (2.A, set 1)", + "ep_homera", "The Simpsons - Homer's Meltdown (Maygay) (EPOCH) (3.2, set 3)", + "ep_homerb", "The Simpsons - Homer's Meltdown (Maygay) (EPOCH) (3.2, set 4)", + "ep_homerc", "The Simpsons - Homer's Meltdown (Maygay) (EPOCH) (2.B, set 5)", + "ep_homerd", "The Simpsons - Homer's Meltdown (Maygay) (EPOCH) (2.B, set 6)", + "ep_homere", "The Simpsons - Homer's Meltdown (Maygay) (EPOCH) (3.1, set 7)", + "ep_homerf", "The Simpsons - Homer's Meltdown (Maygay) (EPOCH) (3.1, set 8)", + "ep_homerg", "The Simpsons - Homer's Meltdown (Maygay) (EPOCH) (2.1, set 9)", + "ep_homerh", "The Simpsons - Homer's Meltdown (Maygay) (EPOCH) (2.1, set 10)", + "ep_homeri", "The Simpsons - Homer's Meltdown (Maygay) (EPOCH) (2.9, set 2)", + "ep_htdgs", "Hot Dogs (Maygay) (EPOCH) (set 1)", + "ep_htdgsa", "Hot Dogs (Maygay) (EPOCH) (set 2)", + "ep_hubbl", "Hubble Bubble (Maygay) (EPOCH) (set 1)", + "ep_hubbla", "Hubble Bubble (Maygay) (EPOCH) (set 2)", + "ep_hur", "Hurricane (Global) (EPOCH) (set 1)", + "ep_hura", "Hurricane (Global) (EPOCH) (set 2)", + "ep_hurb", "Hurricane (Global) (EPOCH) (set 3)", + "ep_huric", "Hurricane (Maygay - Impulse) (EPOCH) (set 1)", + "ep_hurica", "Hurricane (Maygay - Impulse) (EPOCH) (set 2)", + "ep_huricb", "Hurricane (Maygay - Impulse) (EPOCH) (set 3)", + "ep_huricc", "Hurricane (Maygay - Impulse) (EPOCH) (set 4)", + "ep_huricd", "Hurricane (Maygay - Impulse) (EPOCH) (set 5)", + "ep_hurice", "Hurricane (Maygay - Impulse) (EPOCH) (set 6)", + "ep_hvns", "Heavens Above (Maygay) (EPOCH) (set 1)", + "ep_hvnsa", "Heavens Above (Maygay) (EPOCH) (set 2)", + "ep_hyst", "Hysteria (Maygay - Impulse) (EPOCH) (set 1)", + "ep_hysta", "Hysteria (Maygay - Impulse) (EPOCH) (set 2)", + "ep_icebg", "Ice Burger (Maygay) (EPOCH) (1.4, set 1)", + "ep_icebga", "Ice Burger (Maygay) (EPOCH) (1.2, set 2)", + "ep_icebgb", "Ice Burger (Maygay) (EPOCH) (1.4, set 3)", + "ep_icebgc", "Ice Burger (Maygay) (EPOCH) (1.3, set 4)", + "ep_icebgd", "Ice Burger (Maygay) (EPOCH) (1.1, set 5)", + "ep_icebge", "Ice Burger (Maygay) (EPOCH) (1.1, set 6)", + "ep_icebgf", "Ice Burger (Maygay) (EPOCH) (1.3, set 7)", + "ep_icebgg", "Ice Burger (Maygay) (EPOCH) (1.3, set 8)", + "ep_icebgh", "Ice Burger (Maygay) (EPOCH) (1.4, set 9)", + "ep_icebgi", "Ice Burger (Maygay) (EPOCH) (1.4, set 10)", + "ep_ifern", "Inferno (Impulse) (EPOCH) (set 1)", + "ep_iferna", "Inferno (Impulse) (EPOCH) (set 2)", + "ep_ijcl", "Italian Job Club (Maygay) (EPOCH) (2.6, set 1)", + "ep_ijcla", "Italian Job Club (Maygay) (EPOCH) (2.5, set 2)", + "ep_ijob", "Italian Job (Maygay) (EPOCH, v2.1)", + "ep_ijoba", "Italian Job (Maygay) (EPOCH, v1.1)", + "ep_imj", "I'm A Jackpot (Global) (EPOCH) (1.5)", + "ep_inca", "Inca Dinka Do (Maygay - Extreme) (EPOCH) (INCA 1.2, set 1)", + "ep_incaa", "Inca Dinka Do (Maygay - Extreme) (EPOCH) (INCA 1.2, set 2)", + "ep_incab", "Inca Dinka Do (Maygay - Extreme) (EPOCH) (INCA 1.1, set 3)", + "ep_itjb2", "Italian Job 2 (Maygay) (EPOCH) (1.5, set 1)", + "ep_itjb2a", "Italian Job 2 (Maygay) (EPOCH) (1.5, set 2)", + "ep_itjb2b", "Italian Job 2 (Maygay) (EPOCH) (2.3, set 3)", + "ep_itjb2c", "Italian Job 2 (Maygay) (EPOCH) (2.3, set 4)", + "ep_itjb3", "Italian Job 3 (Maygay) (EPOCH) (set 1)", + "ep_itjb3a", "Italian Job 3 (Maygay) (EPOCH) (set 2)", + "ep_jakbn", "Jackpot & The Beanstreak (Extreme) (EPOCH) (JABS 0.3, set 1)", + "ep_jakbna", "Jackpot & The Beanstreak (Extreme) (EPOCH) (JABS 0.3, set 2)", + "ep_jakbnb", "Jackpot & The Beanstreak (Extreme) (EPOCH) (JABS 0.5, set 3)", + "ep_jakbnc", "Jackpot & The Beanstreak (Extreme) (EPOCH) (JABS 0.5, set 4)", + "ep_jsttt", "Just The Ticket (Maygay) (EPOCH) (4.2, set 1)", + "ep_jsttta", "Just The Ticket (Maygay) (EPOCH) (4.2, set 2)", + "ep_jstttb", "Just The Ticket (Maygay) (EPOCH) (3.5, set 3)", + "ep_jstttc", "Just The Ticket (Maygay) (EPOCH) (3.4, set 4)", + "ep_jstttd", "Just The Ticket (Maygay) (EPOCH) (3.5, set 5)", + "ep_jsttte", "Just The Ticket (Maygay) (EPOCH) (3.5, set 6)", + "ep_jstttf", "Just The Ticket (Maygay) (EPOCH) (3.6, set 7)", + "ep_jstttg", "Just The Ticket (Maygay) (EPOCH) (3.6, set 8)", + "ep_kopcl", "Knockout Punch Club (Global) (EPOCH) (set 1)", + "ep_kopcla", "Knockout Punch Club (Global) (EPOCH) (set 2)", + "ep_kopclb", "Knockout Punch Club (Global) (EPOCH) (set 3)", + "ep_ll", "Lucky Ladders (Extreme) (EPOCH) (LULA 0.3, set 1)", + "ep_lla", "Lucky Ladders (Extreme) (EPOCH) (LULA 0.3, set 2)", + "ep_loadd", "Loaded (Maygay) (EPOCH) (LOAD 1.2, set 1)", + "ep_loadda", "Loaded (Maygay) (EPOCH) (LOAD 1.2, set 2)", + "ep_ltt", "Licence To Thrill (Global) (EPOCH) (set 1)", + "ep_ltta", "Licence To Thrill (Global) (EPOCH) (set 2)", + "ep_lug", "London Underground (Maygay) (EPOCH) (2.4, set 1)", + "ep_luga", "London Underground (Maygay) (EPOCH) (2.9, set 2)", + "ep_lugb", "London Underground (Maygay) (EPOCH) (3.1, set 3)", + "ep_lugc", "London Underground (Maygay) (EPOCH) (3.1, set 4)", + "ep_lukld", "Lucky Ladders (Maygay) (EPOCH) (LULA 0.2, set 1)", + "ep_luklda", "Lucky Ladders (Maygay) (EPOCH) (LULA 0.2, set 2)", + "ep_makmv", "Make Your Move (Global) (EPOCH) (set 1)", + "ep_makmva", "Make Your Move (Global) (EPOCH) (set 2)", + "ep_manic", "Manic Miner (Maygay - Impulse) (EPOCH) (set 1)", + "ep_manica", "Manic Miner (Maygay - Impulse) (EPOCH) (set 2)", + "ep_manicb", "Manic Miner (Maygay - Impulse) (EPOCH) (set 3)", + "ep_manicc", "Manic Miner (Maygay - Impulse) (EPOCH) (set 4)", + "ep_manicd", "Manic Miner (Maygay - Impulse) (EPOCH) (set 5)", + "ep_manice", "Manic Miner (Maygay - Impulse) (EPOCH) (set 6)", + "ep_manicf", "Manic Miner (Maygay - Impulse) (EPOCH) (set 7)", + "ep_mario", "Super Mario (Maygay) (EPOCH) (1.5, set 1)", + "ep_marioa", "Super Mario (Maygay) (EPOCH) (1.5, set 2)", + "ep_mariob", "Super Mario (Maygay) (EPOCH) (1.A, set 3)", + "ep_marioc", "Super Mario (Maygay) (EPOCH) (1.A, set 4)", + "ep_mariod", "Super Mario (Maygay) (EPOCH) (2.A, set 5)", + "ep_marioe", "Super Mario (Maygay) (EPOCH) (2.A, set 6)", + "ep_mariof", "Super Mario (Maygay) (EPOCH) (1.C, set 7)", + "ep_mariog", "Super Mario (Maygay) (EPOCH) (1.C, set 8)", + "ep_marioh", "Super Mario (Maygay) (EPOCH) (1.B, set 9)", + "ep_matrx", "Matrix (Maygay - Impulse) (EPOCH)", + "ep_merln", "Merlin's Magic (Maygay) (EPOCH) (1.91)", + "ep_midas", "Midas Touch Club (Maygay) (EPOCH) (1.1, set 1)", + "ep_midasa", "Midas Touch Club (Maygay) (EPOCH) (1.1, set 2)", + "ep_milhr", "Who Wants To Be A Millionhare? (Global) (EPOCH) (1.2, set 1)", + "ep_milhra", "Who Wants To Be A Millionhare? (Global) (EPOCH) (1.2, set 2)", + "ep_milhrb", "Who Wants To Be A Millionhare? (Global) (EPOCH) (1.3, set 3)", + "ep_milhrc", "Who Wants To Be A Millionhare? (Global) (EPOCH) (1.3, set 4)", + "ep_milhrd", "Who Wants To Be A Millionhare? (Global) (EPOCH) (1.6, set 5)", + "ep_milhre", "Who Wants To Be A Millionhare? (Global) (EPOCH) (1.6, set 6)", + "ep_milhrf", "Who Wants To Be A Millionhare? (Global) (EPOCH) (1.9, set 7)", + "ep_milhrg", "Who Wants To Be A Millionhare? (Global) (EPOCH) (1.9, set 8)", + "ep_mkart", "Mario Kart (Maygay) (EPOCH) (1.2, set 1)", + "ep_mkarta", "Mario Kart (Maygay) (EPOCH) (1.2, set 2)", + "ep_mkartb", "Mario Kart (Maygay) (EPOCH) (1.6, set 3)", + "ep_mkartc", "Mario Kart (Maygay) (EPOCH) (1.6, set 4)", + "ep_mkartd", "Mario Kart (Maygay) (EPOCH) (1.1, set 5)", + "ep_mkarte", "Mario Kart (Maygay) (EPOCH) (1.5, set 6)", + "ep_mlhrc", "Who Whats To Be A Millionhare Club (Global) (EPOCH) (set 1)", + "ep_mlhrca", "Who Whats To Be A Millionhare Club (Global) (EPOCH) (set 2)", + "ep_mlhrcb", "Who Whats To Be A Millionhare Club (Global) (EPOCH) (set 3)", + "ep_mlhrcc", "Who Whats To Be A Millionhare Club (Global) (EPOCH) (set 4)", + "ep_mlhrcd", "Who Whats To Be A Millionhare Club (Global) (EPOCH) (set 5)", + "ep_mlhrce", "Who Whats To Be A Millionhare Club (Global) (EPOCH) (set 6)", + "ep_monbs", "Monte Carlo Or Bust (Maygay) (EPOCH) (1.2, set 1)", + "ep_monbsa", "Monte Carlo Or Bust (Maygay) (EPOCH) (1.2, set 2)", + "ep_monky", "Monkey Business (Global) (EPOCH) (1.4, set 1)", + "ep_monkya", "Monkey Business (Global) (EPOCH) (1.5, set 2)", + "ep_monrt", "Money Returns Club, The (Global) (EPOCH) (set 1)", + "ep_monrta", "Money Returns Club, The (Global) (EPOCH) (set 2)", + "ep_monrtb", "Money Returns Club, The (Global) (EPOCH) (set 3)", + "ep_monrtc", "Money Returns Club, The (Global) (EPOCH) (set 4)", + "ep_monrtd", "Money Returns Club, The (Global) (EPOCH) (set 5)", + "ep_monrte", "Money Returns Club, The (Global) (EPOCH) (set 6)", + "ep_monrtf", "Money Returns Club, The (Global) (EPOCH) (set 7)", + "ep_monsh", "The Moonshine Club (Global) (EPOCH) (set 1)", + "ep_monsha", "The Moonshine Club (Global) (EPOCH) (set 2)", + "ep_monshb", "The Moonshine Club (Global) (EPOCH) (set 3)", + "ep_monshc", "The Moonshine Club (Global) (EPOCH) (set 4)", + "ep_monshd", "The Moonshine Club (Global) (EPOCH) (set 5)", + "ep_monshe", "The Moonshine Club (Global) (EPOCH) (set 6)", + "ep_monshf", "The Moonshine Club (Global) (EPOCH) (set 7)", + "ep_mrmus", "Mr Muscle (Maygay) (EPOCH) (1.2, set 1)", + "ep_mrmusa", "Mr Muscle (Maygay) (EPOCH) (1.2, set 2)", + "ep_mummy", "Mummy Talks (Impulse) (EPOCH) (set 1)", + "ep_mummya", "Mummy Talks (Impulse) (EPOCH) (set 2)", + "ep_mummyb", "Mummy Talks (Impulse) (EPOCH) (set 3)", + "ep_mummyc", "Mummy Talks (Impulse) (EPOCH) (set 4)", + "ep_mummyd", "Mummy Talks (Impulse) (EPOCH) (set 5)", + "ep_mummye", "Mummy Talks (Impulse) (EPOCH) (set 6)", + "ep_mummyf", "Mummy Talks (Impulse) (EPOCH) (set 7)", + "ep_mwom", "Mortal Wombat (Maygay) (EPOCH) (set 1)", + "ep_mwoma", "Mortal Wombat (Maygay) (EPOCH) (set 2)", + "ep_mwomb", "Mortal Wombat (Maygay) (EPOCH) (set 3)", + "ep_mwomc", "Mortal Wombat (Maygay) (EPOCH) (set 4)", + "ep_mwomd", "Mortal Wombat (Maygay) (EPOCH) (set 5)", + "ep_noter", "Note Runner (Maygay) (EPOCH) (NORU 0.1, set 1)", + "ep_notera", "Note Runner (Maygay) (EPOCH) (NORU 0.1, set 2)", + "ep_noterb", "Note Runner (Maygay) (EPOCH) (NORU 0.2, set 3)", + "ep_noterc", "Note Runner (Maygay) (EPOCH) (NORU 0.2, set 4)", + "ep_noterd", "Note Runner (Maygay) (EPOCH) (NORU 1.0, set 5)", + "ep_notere", "Note Runner (Maygay) (EPOCH) (NORU 1.0, set 6)", + "ep_nuns", "Nuns Of Navarone (Maygay) (EPOCH) (2.4, set 1)", + "ep_nunsa", "Nuns Of Navarone (Maygay) (EPOCH) (2.4, set 2)", + "ep_nyny", "New York New York (Maygay) (EPOCH) (3.6, set 1)", + "ep_nynya", "New York New York (Maygay) (EPOCH) (3.6, set 2)", + "ep_nynyb", "New York New York (Maygay) (EPOCH) (4.6, set 3)", + "ep_nynyc", "New York New York (Maygay) (EPOCH) (4.6, set 4)", + "ep_nynyd", "New York New York (Maygay) (EPOCH) (3.A, set 5)", + "ep_nynye", "New York New York (Maygay) (EPOCH) (3.A, set 6)", + "ep_nynyf", "New York New York (Maygay) (EPOCH) (3.9, set 7)", + "ep_otm", "Over The Moon (Maygay) (EPOCH) (1.2, set 1)", + "ep_otma", "Over The Moon (Maygay) (EPOCH) (1.2, set 2)", + "ep_otmcl", "Over The Moon Club (Maygay) (EPOCH) (set 1)", + "ep_otmcla", "Over The Moon Club (Maygay) (EPOCH) (set 2)", + "ep_ozzie", "Ozzie Ozzie Ozzie (Maygay) (EPOCH) (2.Z, set 1)", + "ep_ozziea", "Ozzie Ozzie Ozzie (Maygay) (EPOCH) ( .2, set 2)", + "ep_ozzieb", "Ozzie Ozzie Ozzie (Maygay) (EPOCH) (5.J, set 3)", + "ep_ozziec", "Ozzie Ozzie Ozzie (Maygay) (EPOCH) (6.J, set 4)", + "ep_ozzied", "Ozzie Ozzie Ozzie (Maygay) (EPOCH) (1.1, set 5)", + "ep_ozziee", "Ozzie Ozzie Ozzie (Maygay) (EPOCH) (1.1, set 6)", + "ep_ozzief", "Ozzie Ozzie Ozzie (Maygay) (EPOCH) (2.Z, set 7)", + "ep_ozzieg", "Ozzie Ozzie Ozzie (Maygay) (EPOCH) (0.2, set 8)", + "ep_ozzieh", "Ozzie Ozzie Ozzie (Maygay) (EPOCH) (0.2, set 9)", + "ep_party", "Party Party (Global) (EPOCH) (1.1)", + "ep_pascl", "Passport To Riches Classic Club (Maygay) (EPOCH) (1.2, set 1)", + "ep_pascla", "Passport To Riches Classic Club (Maygay) (EPOCH) (1.2, set 2)", + "ep_passp", "Passport To Riches Club (Maygay) (EPOCH) (1.2, set 1)", + "ep_passpa", "Passport To Riches Club (Maygay) (EPOCH) (1.2, set 2)", + "ep_passpb", "Passport To Riches Classic Club (Maygay) (EPOCH) (1.3, set 3)", + "ep_passpc", "Passport To Riches Classic Club (Maygay) (EPOCH) (1.3, set 4)", + "ep_pesos", "Pick Yer Pesos (Maygay - Impulse) (EPOCH) (set 1)", + "ep_pesosa", "Pick Yer Pesos (Maygay - Impulse) (EPOCH) (set 2)", + "ep_pesosb", "Pick Yer Pesos (Maygay - Impulse) (EPOCH) (set 3)", + "ep_pesosc", "Pick Yer Pesos (Maygay - Impulse) (EPOCH) (set 4)", + "ep_pharo", "Pharaoh's Treasure (Maygay) (EPOCH) (set 1)", + "ep_pharoa", "Pharaoh's Treasure (Maygay) (EPOCH) (set 2)", + "ep_pizza", "Pizza The Action (Maygay) (EPOCH) (2.3, set 1)", + "ep_pizzaa", "Pizza The Action (Maygay) (EPOCH) (2.3, set 2)", + "ep_pizzab", "Pizza The Action (Maygay) (EPOCH) (2.1, set 3)", + "ep_pizzac", "Pizza The Action (Maygay) (EPOCH) (2.1, set 4)", + "ep_pkni", "The Phoenix Knights (Global) (EPOCH) (1.1, set 1)", + "ep_pknia", "The Phoenix Knights (Global) (EPOCH) (1.1, set 2)", + "ep_pknib", "The Phoenix Knights (Global) (EPOCH) (1.3, set 3)", + "ep_pknic", "The Phoenix Knights (Global) (EPOCH) (1.3, set 4)", + "ep_pknid", "The Phoenix Knights (Global) (EPOCH) (1.4, set 5)", + "ep_pknie", "The Phoenix Knights (Global) (EPOCH) (1.7, set 6)", + "ep_pknif", "The Phoenix Knights (Global) (EPOCH) (1.7, set 7)", + "ep_pwrpl", "Power Play (Maygay) (EPOCH) (PPLY 0.3, set 1)", + "ep_pwrpla", "Power Play (Maygay) (EPOCH) (PPLY 0.3, set 2)", + "ep_rags", "Rags To Riches Club (Maygay) (EPOCH) (1.10, set 1)", + "ep_ragsa", "Rags To Riches Club (Maygay) (EPOCH) (1.10, set 2)", + "ep_rchik", "Rich Chics Club (Global) (EPOCH) (set 1)", + "ep_rchika", "Rich Chics Club (Global) (EPOCH) (set 2)", + "ep_react", "Reactor (Maygay - Impulse) (EPOCH) (set 1)", + "ep_reacta", "Reactor (Maygay - Impulse) (EPOCH) (set 2)", + "ep_reactb", "Reactor (Maygay - Impulse) (EPOCH) (set 3)", + "ep_reactc", "Reactor (Maygay - Impulse) (EPOCH) (set 4)", + "ep_reactd", "Reactor (Maygay - Impulse) (EPOCH) (set 5)", + "ep_reacte", "Reactor (Maygay - Impulse) (EPOCH) (set 6)", + "ep_redl", "Red Line (Extreme) (EPOCH) (RELI 0.1, set 1)", + "ep_redla", "Red Line (Extreme) (EPOCH) (RELI 0.1, set 2)", + "ep_rlgdt", "Reel Good Time (Rebuild) (Global) (Version 1.0) (EPOCH)", + "ep_roost", "Roosters Millions (Maygay) (EPOCH) (1.2, set 1)", + "ep_roosta", "Roosters Millions (Maygay) (EPOCH) (1.2, set 2)", + "ep_royrc", "Royal Roulette Club (Impulse) (EPOCH) (set 1)", + "ep_royrca", "Royal Roulette Club (Impulse) (EPOCH) (set 2)", + "ep_royrl", "Royal Roulette (Maygay) (EPOCH) (set 1)", + "ep_royrla", "Royal Roulette (Maygay) (EPOCH) (set 2)", + "ep_royrlb", "Royal Roulette (Maygay) (EPOCH) (set 3)", + "ep_royrlc", "Royal Roulette (Maygay) (EPOCH) (set 4)", + "ep_royrld", "Royal Roulette (Maygay) (EPOCH) (set 5)", + "ep_royrle", "Royal Roulette (Maygay) (EPOCH) (set 6)", + "ep_rtt", "Round The Twist (Maygay) (EPOCH) (set 1)", + "ep_rtta", "Round The Twist (Maygay) (EPOCH) (set 2)", + "ep_scrm", "Screamin Demon (Maygay) (EPOCH) (SCDE 2.0, set 1)", + "ep_scrma", "Screamin Demon (Maygay) (EPOCH) (SCDE 2.0, set 2)", + "ep_scrmb", "Screamin Demon (Maygay) (EPOCH) (SCDE 1.0, set 3)", + "ep_scrmc", "Screamin Demon (Maygay) (EPOCH) (SCDE 1.0, set 4)", + "ep_sdcla", "Spotted Dick Classic (Global) (EPOCH) (set 1)", + "ep_sdclaa", "Spotted Dick Classic (Global) (EPOCH) (set 2)", + "ep_sdclab", "Spotted Dick Classic (Global) (EPOCH) (set 3)", + "ep_sdclac", "Spotted Dick Classic (Global) (EPOCH) (set 4)", + "ep_sdclad", "Spotted Dick Classic (Global) (EPOCH) (set 5)", + "ep_sdclae", "Spotted Dick Classic (Global) (EPOCH) (set 6)", + "ep_sdclaf", "Spotted Dick Classic (Global) (EPOCH) (set 7)", + "ep_sdclag", "Spotted Dick Classic (Global) (EPOCH) (set 8)", + "ep_sdclb", "Spotted Dick Club (Global) (EPOCH) (set 1)", + "ep_sdclba", "Spotted Dick Club (Global) (EPOCH) (set 2)", + "ep_secag", "Secret Agent (Maygay) (EPOCH) (1.5, set 1)", + "ep_secaga", "Secret Agent (Maygay) (EPOCH) (1.5, set 2)", + "ep_secagb", "Secret Agent (Maygay) (EPOCH) (1.3, set 3)", + "ep_simfr", "Simply Fruits (Maygay) (EPOCH) (1.2, set 1)", + "ep_simfra", "Simply Fruits (Maygay) (EPOCH) (1.2, set 2)", + "ep_simp", "The Simpsons (Maygay) (EPOCH) (3.6, set 1)", + "ep_simpa", "The Simpsons (Maygay) (EPOCH) (3.5, set 2)", + "ep_simpb", "The Simpsons (Maygay) (EPOCH) (3.5, set 3)", + "ep_simpc", "The Simpsons (Maygay) (EPOCH) (4.5, set 4)", + "ep_simpd", "The Simpsons (Maygay) (EPOCH) (4.5, set 5)", + "ep_simpe", "The Simpsons (Maygay) (EPOCH) (1.5, set 6)", + "ep_simpf", "The Simpsons (Maygay) (EPOCH) (1.5, set 7)", + "ep_simpg", "The Simpsons (Maygay) (EPOCH) (2.5, set 8)", + "ep_simph", "The Simpsons (Maygay) (EPOCH) (2.5, set 9)", + "ep_simpj", "The Simpsons (Maygay) (EPOCH) (1.8, set 10)", + "ep_simpk", "The Simpsons (Maygay) (EPOCH) (1.8, set 11)", + "ep_simpl", "The Simpsons (Maygay) (EPOCH) (3.7, set 12)", + "ep_simpm", "The Simpsons (Maygay) (EPOCH) (3.7, set 13)", + "ep_smoke", "Holy Smoke! (Impulse) (EPOCH) (set 1)", + "ep_smokea", "Holy Smoke! (Impulse) (EPOCH) (set 2)", + "ep_smokeb", "Holy Smoke! (Impulse) (EPOCH) (set 3)", + "ep_smokec", "Holy Smoke! (Impulse) (EPOCH) (set 4)", + "ep_smoked", "Holy Smoke! (Impulse) (EPOCH) (set 5)", + "ep_smokee", "Holy Smoke! (Impulse) (EPOCH) (set 6)", + "ep_smokef", "Holy Smoke! (Impulse) (EPOCH) (set 7)", + "ep_smokeg", "Holy Smoke! (Impulse) (EPOCH) (set 8)", + "ep_smokeh", "Holy Smoke! (Impulse) (EPOCH) (set 9)", + "ep_smokei", "Holy Smoke! (Impulse) (EPOCH) (set 10)", + "ep_smokej", "Holy Smoke! (Impulse) (EPOCH) (set 11)", + "ep_snbev", "Saturday Night Beaver (Global) (EPOCH) (1.8, set 1)", + "ep_snbeva", "Saturday Night Beaver (Global) (EPOCH) (1.8, set 2)", + "ep_snbevb", "Saturday Night Beaver (Global) (EPOCH) (1.9, set 3)", + "ep_snbevc", "Saturday Night Beaver (Global) (EPOCH) (1.9, set 4)", + "ep_snbevd", "Saturday Night Beaver (Global) (EPOCH) (2.1, set 5)", + "ep_snbeve", "Saturday Night Beaver (Global) (EPOCH) (2.1, set 6)", + "ep_snset", "Sunset Strip (Extreme) (EPOCH) (SUST 0.1, set 1)", + "ep_snseta", "Sunset Strip (Extreme) (EPOCH) (SUST 0.1, set 2)", + "ep_snw", "Super Nudge Wink (Maygay - Union) (EPOCH) (set 1)", + "ep_snwa", "Super Nudge Wink (Maygay - Union) (EPOCH) (set 2)", + "ep_snwb", "Super Nudge Wink (Maygay - Union) (EPOCH) (set 3)", + "ep_snwc", "Super Nudge Wink (Maygay - Union) (EPOCH) (set 4)", + "ep_snwd", "Super Nudge Wink (Maygay - Union) (EPOCH) (set 5)", + "ep_spart", "Spartacash (Maygay - Impulse) (EPOCH) (set 1)", + "ep_sparta", "Spartacash (Maygay - Impulse) (EPOCH) (set 2)", + "ep_spartb", "Spartacash (Maygay - Impulse) (EPOCH) (set 3)", + "ep_spcbw", "Special Brew (Maygay) (EPOCH) (1.1, set 1)", + "ep_spcbwa", "Special Brew (Maygay) (EPOCH) (1.1, set 2)", + "ep_spcbwb", "Special Brew (Maygay) (EPOCH) (1.3, set 3)", + "ep_spcbwc", "Special Brew (Maygay) (EPOCH) (1.3, set 4)", + "ep_spcbwd", "Special Brew (Maygay) (EPOCH) (1.5, set 5)", + "ep_spcbwe", "Special Brew (Maygay) (EPOCH) (1.5, set 6)", + "ep_spcbwf", "Special Brew (Maygay) (EPOCH) (1.6, set 7)", + "ep_spcbwg", "Special Brew (Maygay) (EPOCH) (1.6, set 8)", + "ep_spcbwh", "Special Brew (Maygay) (EPOCH) (1.4, set 9)", + "ep_spcbwi", "Special Brew (Maygay) (EPOCH) (1.4, set 10)", + "ep_spcbwj", "Special Brew (Maygay) (EPOCH) (1.8, set 11)", + "ep_spcbwk", "Special Brew (Maygay) (EPOCH) (1.8, set 12)", + "ep_spcbwl", "Special Brew (Maygay) (EPOCH) (1.9, set 13)", + "ep_spcbwm", "Special Brew (Maygay) (EPOCH) (1.9, set 14)", + "ep_spec", "Spectre (Maygay) (EPOCH) (1.6, set 1)", + "ep_speca", "Spectre (Maygay) (EPOCH) (1.6, set 2)", + "ep_specb", "Spectre (Maygay) (EPOCH) (1.3, set 3)", + "ep_spin", "Spin On It (Maygay - Impulse) (EPOCH) (set 1)", + "ep_spina", "Spin On It (Maygay - Impulse) (EPOCH) (set 2)", + "ep_spinb", "Spin On It (Maygay - Impulse) (EPOCH) (set 3)", + "ep_spinc", "Spin On It (Maygay - Impulse) (EPOCH) (set 4)", + "ep_spind", "Spin On It (Maygay - Impulse) (EPOCH) (set 5)", + "ep_spine", "Spin On It (Maygay - Impulse) (EPOCH) (set 6)", + "ep_spirt", "Hi Spirits (Global) (EPOCH) (2.3, set 1)", + "ep_spirta", "Hi Spirits (Global) (EPOCH) (2.3, set 2)", + "ep_spirtb", "Hi Spirits (Global) (EPOCH) (4.1, set 3)", + "ep_spntn", "Spin & Tonic (Maygay - Impulse) (EPOCH) (set 1)", + "ep_spntna", "Spin & Tonic (Maygay - Impulse) (EPOCH) (set 2)", + "ep_spntnb", "Spin & Tonic (Maygay - Impulse) (EPOCH) (set 3)", + "ep_spntnc", "Spin & Tonic (Maygay - Impulse) (EPOCH) (set 4)", + "ep_spook", "Spooky Hollow (Global) (EPOCH) (1.3, set 1)", + "ep_spooka", "Spooky Hollow (Global) (EPOCH) (1.3, set 2)", + "ep_spookb", "Spooky Hollow (Global) (EPOCH) (2.7, set 3)", + "ep_srwin", "Sir Winalot (Maygay) (EPOCH) (2.6, set 1)", + "ep_srwina", "Sir Winalot (Maygay) (EPOCH) (3.3, set 2)", + "ep_srwinb", "Sir Winalot (Maygay) (EPOCH) (3.3, set 3)", + "ep_srwinc", "Sir Winalot (Maygay) (EPOCH) (2.6, set 4)", + "ep_srwind", "Sir Winalot (Maygay) (EPOCH) (2.1, set 5)", + "ep_step", "Stepping Stones (Maygay) (EPOCH) (1.0, set 1)", + "ep_stepa", "Stepping Stones (Maygay) (EPOCH) (1.0, set 2)", + "ep_stm", "Storm Force (Global) (EPOCH) (set 1)", + "ep_stma", "Storm Force (Global) (EPOCH) (set 2)", + "ep_stmb", "Storm Force (Global) (EPOCH) (set 3)", + "ep_stmc", "Storm Force (Global) (EPOCH) (set 4)", + "ep_stmcl", "Storm Force Club (Global) (EPOCH) (set 1)", + "ep_stmcla", "Storm Force Club (Global) (EPOCH) (set 2)", + "ep_strat", "Stratagem (Maygay) (EPOCH) (set 1)", + "ep_strata", "Stratagem (Maygay) (EPOCH) (set 2)", + "ep_subb", "Subbuteo (Maygay) (EPOCH) (set 1)", + "ep_subba", "Subbuteo (Maygay) (EPOCH) (set 2)", + "ep_subbb", "Subbuteo (Maygay) (EPOCH) (set 3)", + "ep_subbc", "Subbuteo (Maygay) (EPOCH) (set 4)", + "ep_subbd", "Subbuteo (Maygay) (EPOCH) (set 5)", + "ep_subbe", "Subbuteo (Maygay) (EPOCH) (set 6)", + "ep_subbf", "Subbuteo (Maygay) (EPOCH) (set 7)", + "ep_subbg", "Subbuteo (Maygay) (EPOCH) (set 8)", + "ep_survi", "Survival (Maygay) (EPOCH) (1.4, set 1)", + "ep_survia", "Survival (Maygay) (EPOCH) (1.4, set 2)", + "ep_tak5", "Take Five (Maygay - Union) (EPOCH) (set 1)", + "ep_tak5a", "Take Five (Maygay - Union) (EPOCH) (set 2)", + "ep_tcrwn", "Triple Crown (Maygay) (EPOCH) (2.2, set 1)", + "ep_tcrwna", "Triple Crown (Maygay) (EPOCH) (2.2, set 2)", + "ep_tcrwnb", "Triple Crown (Maygay) (EPOCH) (2.2, set 3)", + "ep_tcrwnc", "Triple Crown (Maygay) (EPOCH) (2.2, set 4)", + "ep_tcrwnd", "Triple Crown (Maygay) (EPOCH) (3.1, set 5)", + "ep_tcrwne", "Triple Crown (Maygay) (EPOCH) (3.1, set 6)", + "ep_tincn", "Tin Can Alley (Maygay) (EPOCH) (1.5, set 1)", + "ep_tincna", "Tin Can Alley (Maygay) (EPOCH) (1.5, set 2)", + "ep_tits", "Title Shot Club (Maygay) (EPOCH) (1.7, set 1)", + "ep_titsa", "Title Shot Club (Maygay) (EPOCH) (1.7, set 2)", + "ep_titsb", "Title Shot Club (Maygay) (EPOCH) (1.5, set 3)", + "ep_tod", "Truth Or Dare (Global) (EPOCH) (set 1)", + "ep_toda", "Truth Or Dare (Global) (EPOCH) (set 2)", + "ep_tonfn", "Tons Of Fun (Maygay) (EPOCH) (1.5, set 1)", + "ep_tonfna", "Tons Of Fun (Maygay) (EPOCH) (1.5, set 2)", + "ep_tortr", "Torture TV (Maygay) (EPOCH) (1.3, set 1)", + "ep_tortra", "Torture TV (Maygay) (EPOCH) (1.3, set 2)", + "ep_tp", "Trivial Pursuit (Maygay) (EPOCH) (3.5, set 1)", + "ep_tp2", "Trivial Pursuit 2 (Maygay) (EPOCH) (2.2, set 1)", + "ep_tp2a", "Trivial Pursuit 2 (Maygay) (EPOCH) (2.2, set 2)", + "ep_tpa", "Trivial Pursuit (Maygay) (EPOCH) (3.5, set 2)", + "ep_tpb", "Trivial Pursuit (Maygay) (EPOCH) (2.1, set 3)", + "ep_trail", "Trailblazer (Maygay - Impulse) (EPOCH) (set 1)", + "ep_traila", "Trailblazer (Maygay - Impulse) (EPOCH) (set 2)", + "ep_trailb", "Trailblazer (Maygay - Impulse) (EPOCH) (set 3)", + "ep_treas", "Treasure Hunt (Global) (EPOCH) (Version 1.6)", + "ep_tree", "Tree Amigos (Maygay) (EPOCH) (TRAM 0.3, set 1)", + "ep_treea", "Tree Amigos (Maygay) (EPOCH) (TRAM 0.3, set 2)", + "ep_trics", "Triple Cash (Maygay - Union) (EPOCH) (set 1)", + "ep_tricsa", "Triple Cash (Maygay - Union) (EPOCH) (set 2)", + "ep_tutcl", "Tutankhamun Club (Maygay) (EPOCH) (2.1, set 1)", + "ep_tutcla", "Tutankhamun Club (Maygay) (EPOCH) (2.1, set 2)", + "ep_tutclb", "Tutankhamun Club (Maygay) (EPOCH) (1.8, set 3)", + "ep_twarp", "Time Warp (Extreme) (EPOCH) (TWRP 0.1, set 1)", + "ep_twarpa", "Time Warp (Extreme) (EPOCH) (TWRP 0.1, set 2)", + "ep_twarpb", "Time Warp (Extreme) (EPOCH) (TWRP 0.4, set 3)", + "ep_twarpc", "Time Warp (Extreme) (EPOCH) (TWRP 0.4, set 4)", + "ep_utncl", "Utter Nutter Club (Global) (EPOCH) (set 1)", + "ep_utncla", "Utter Nutter Club (Global) (EPOCH) (set 2)", + "ep_utnut", "Utter Nutter (Global) (EPOCH) (set 1)", + "ep_utnuta", "Utter Nutter (Global) (EPOCH) (set 2)", + "ep_utnutb", "Utter Nutter (Global) (EPOCH) (set 3)", + "ep_utnutc", "Utter Nutter (Global) (EPOCH) (set 4)", + "ep_vipjv", "Viper Jive (Maygay - Extreme) (EPOCH) (JIVE 1.1, set 1)", + "ep_vipjva", "Viper Jive (Maygay - Extreme) (EPOCH) (JIVE 1.1, set 2)", + "ep_vipjvb", "Viper Jive (Maygay - Extreme) (EPOCH) (JIVE 2.2, set 3)", + "ep_vipjvc", "Viper Jive (Maygay - Extreme) (EPOCH) (JIVE 2.2, set 4)", + "ep_vipjvd", "Viper Jive (Maygay - Extreme) (EPOCH) (JIVE 2.1, set 5)", + "ep_wf", "Wildfire (Global) (EPOCH) (set 1)", + "ep_wfa", "Wildfire (Global) (EPOCH) (set 2)", + "ep_wfb", "Wildfire (Global) (EPOCH) (set 3)", + "ep_wfc", "Wildfire (Global) (EPOCH) (set 4)", + "ep_wfd", "Wildfire (Global) (EPOCH) (set 5)", + "ep_wfe", "Wildfire (Global) (EPOCH) (set 6)", + "ep_wff", "Wildfire (Global) (EPOCH) (set 7)", + "ep_wfg", "Wildfire (Global) (EPOCH) (set 8)", + "ep_wildf", "Wildfire (Maygay - Impulse) (EPOCH) (set 1)", + "ep_wildfa", "Wildfire (Maygay - Impulse) (EPOCH) (set 2)", + "ep_wipeo", "Wipeout (Maygay) (EPOCH) (set 1)", + "ep_wipeoa", "Wipeout (Maygay) (EPOCH) (set 2)", + "ep_wipeob", "Wipeout (Maygay) (EPOCH) (set 3)", + "ep_wipeoc", "Wipeout (Maygay) (EPOCH) (set 4)", + "ep_wipeoe", "Wipeout (Maygay) (EPOCH) (set 5)", + "ep_wleek", "Weakest Leek Club (Global) (EPOCH) (set 1)", + "ep_wleeka", "Weakest Leek Club (Global) (EPOCH) (set 2)", + "ep_word", "Word Up (Maygay) (EPOCH) (1.4, set 1)", + "ep_worda", "Word Up (Maygay) (EPOCH) (1.4, set 2)", + "ep_wordb", "Word Up (Maygay) (EPOCH) (2.4, set 3)", + "ep_wordc", "Word Up (Maygay) (EPOCH) (2.4, set 4)", + "ep_wordd", "Word Up (Maygay) (EPOCH) (3.1, set 5)", + "ep_worde", "Word Up (Maygay) (EPOCH) (3.1, set 6)", + "ep_wordf", "Word Up (Maygay) (EPOCH) (4.1, set 7)", + "ep_wordg", "Word Up (Maygay) (EPOCH) (4.1, set 8)", + "ep_wside", "Wildside (Global) (EPOCH) (1.2, set 1)", + "ep_wsidea", "Wildside (Global) (EPOCH) (set 2)", + "ep_wud", "What's Up Doc (Global) (EPOCH) (set 1)", + "ep_wuda", "What's Up Doc (Global) (EPOCH) (set 2)", + "ep_wudb", "What's Up Doc (Global) (EPOCH) (set 3)", + "ep_wudc", "What's Up Doc (Global) (EPOCH) (set 4)", + "ep_wudd", "What's Up Doc (Global) (EPOCH) (set 5)", + "ep_wude", "What's Up Doc (Global) (EPOCH) (set 6)", + "ep_xspot", "X Marks The Spot (Maygay) (EPOCH) (1.5, set 1)", + "ep_xspota", "X Marks The Spot (Maygay) (EPOCH) (1.5, set 2)", + "ep_xspotb", "X Marks The Spot (Maygay) (EPOCH) (1.4, set 3)", + "ep_xtra", "X-tra X-tra (Maygay) (EPOCH) (1.5, set 1)", + "ep_xtraa", "X-tra X-tra (Maygay) (EPOCH) (1.5, set 2)", + "eprom", "Escape from the Planet of the Robot Monsters (set 1)", + "eprom2", "Escape from the Planet of the Robot Monsters (set 2)", + "equites", "Equites", + "equitess", "Equites (Sega)", + "erosone", "Eros One", + "ertictac", "Erotictac/Tactic", + "ertictaca", "Erotictac/Tactic (ver 01)", + "ertictacb", "Erotictac/Tactic (set 2)", + "esb", "The Empire Strikes Back", + "escape", "Escape", + "esckids", "Escape Kids (Asia, 4 Players)", + "esckidsj", "Escape Kids (Japan, 2 Players)", + "esclwrld", "Escape from the Lost World", + "esclwrldg", "Escape from the Lost World (German)", + "escounts", "Every Second Counts (39-360-053)", + "esh", "Esh's Aurunmilla (set 1)", + "esha", "Esh's Aurunmilla (set 2)", + "esha_la1", "Earthshaker (LA-1)", + "esha_la3", "Earthshaker (LA-3)", + "esha_lg1", "Earthshaker (German) (LG-1)", + "esha_lg2", "Earthshaker (German) (LG-2)", + "esha_ma3", "Earthshaker (Metallica) (LA-3)", + "esha_pa1", "Earthshaker (Prototype) (PA-1)", + "esha_pr4", "Earthshaker (Family version) (PR-4)", + "eshb", "Esh's Aurunmilla (set 3)", + "espgal", "Espgaluda (2003/10/15 Master Ver)", + "espgal2", "Espgaluda II (2005/11/14 MASTER VER)", + "espial", "Espial (Europe)", + "espialu", "Espial (US?)", + "esprade", "ESP Ra.De. (International, Ver. 98/04/22)", + "espradej", "ESP Ra.De. (Japan, Ver. 98/04/21)", + "espradejo", "ESP Ra.De. (Japan, Ver. 98/04/14)", + "eswat", "E-Swat - Cyber Police (set 4, World, FD1094 317-0130)", + "eswatbl", "E-Swat - Cyber Police (bootleg)", + "eswatj", "E-Swat - Cyber Police (set 2, Japan, FD1094 317-0128)", + "eswatj1", "E-Swat - Cyber Police (set 1, Japan, FD1094 317-0131)", + "eswatu", "E-Swat - Cyber Police (set 3, US, FD1094 317-0129)", + "eto", "Kokontouzai Eto Monogatari (Japan)", + "euro2k2", "Europa 2002 (Ver 2.0, set 1)", + "euro2k2a", "Europa 2002 (Ver 2.0, set 2)", + "euro2k2s", "Europa 2002 Space (Ver 3.0)", + "euroch92", "Euro Champ '92 (World)", + "eurogame", "The Euro Game (set 1)", + "eurogamea", "The Euro Game (set 2)", + "europass", "Euro Pass (Ver 1.1)", + "evelknie", "Evel Knievel", + "evilngt", "Evil Night (ver UBA)", + "evilngte", "Evil Night (ver EAA)", + "evilston", "Evil Stone", + "evlfight", "Evil Fight", + "evosocc", "Evolution Soccer", + "ewf", "Earth Wind Fire", + "excalibr", "Excalibur", + "excelsr", "Excelsior (set 1)", + "excelsra", "Excelsior (set 2)", + "excitbj", "Exciting Black Jack", + "excitebk", "Vs. Excitebike (set EB4-4 A)", + "excitebka", "Vs. Excitebike (set EB4-3 ?)", + "excthour", "Exciting Hour", + "exctleag", "Excite League (FD1094 317-0079)", + "exctscc2", "Exciting Soccer II", + "exctsccr", "Exciting Soccer", + "exctsccra", "Exciting Soccer (alternate music)", + "exctsccrb", "Exciting Soccer (bootleg)", + "exctsccrj", "Exciting Soccer (Japan)", + "exctsccrjo", "Exciting Soccer (Japan, older)", + "exctsccru", "Exciting Soccer (US)", + "exedexes", "Exed Exes", + "exerion", "Exerion", + "exerionb", "Exerion (bootleg)", + "exeriont", "Exerion (Taito)", + "exerizer", "Exerizer (Japan)", + "exerizerb", "Exerizer (Japan) (bootleg)", + "exodus", "Exodus (bootleg?)", + "expcard", "Express Card / Top Card (Ver. 1.5)", + "explbrkr", "Explosive Breaker", + "explorer", "Explorer (bootleg of Scramble)", + "exprraid", "Express Raider (World, Rev 4)", + "exprraidi", "Express Raider (Italy)", + "exprraidu", "Express Raider (US, rev 5)", + "exsafar", "Safari (Russia) (Extrema)", + "extdwnhl", "Extreme Downhill (v1.5)", + "exterm", "Exterminator", + "extrmatn", "Extermination (World)", + "extrmatnj", "Extermination (Japan)", + "extrmatnu", "Extermination (US)", + "extrmth", "Treasure Hunt (Russia) (Extrema)", + "extrmti", "Treasure Island (Russia) (Extrema)", + "exvania", "Exvania (World)", + "exvaniaj", "Exvania (Japan)", + "exzisus", "Exzisus (Japan, dedicated)", + "exzisusa", "Exzisus (Japan, conversion)", + "exzisust", "Exzisus (TAD license)", + "eyes", "Eyes (US set 1)", + "eyes2", "Eyes (US set 2)", + "eyesb", "Eyes (bootleg set 1)", + "eyeszac", "Eyes (Italy)", + "eyeszacb", "Eyes (bootleg set 2, decrypted)", + "eztouch", "EZ Touch (v116 China)", + "f14_l1", "F14 Tomcat (L-1)", + "f14_p3", "F14 Tomcat (P-3)", + "f14_p4", "F14 Tomcat (P-4)", + "f15se", "F-15 Strike Eagle (rev. 2.2 02/25/91)", + "f15se21", "F-15 Strike Eagle (rev. 2.1 02/04/91)", + "f1dream", "F-1 Dream", + "f1dreamb", "F-1 Dream (bootleg)", + "f1en", "F1 Exhaust Note", + "f1gp", "F-1 Grand Prix", + "f1gp2", "F-1 Grand Prix Part II", + "f1gpb", "F-1 Grand Prix (Playmark bootleg)", + "f1gpp", "F1 Grand Prix", + "f1gpstar", "Grand Prix Star", + "f1gpstr2", "F-1 Grand Prix Star II", + "f1lap", "F1 Super Lap (World)", + "f1lapj", "F1 Super Lap (Japan)", + "f1superb", "F1 Super Battle", + "f355", "Ferrari F355 Challenge", + "f355bios", "Naomi Ferrari F355 Challenge Bios", + "f355twin", "Ferrari F355 Challenge (Twin)", + "f355twn2", "Ferrari F355 Challenge 2 (Twin)", + "fa", "F/A (Japan)", + "faceoff", "Face Off (Japan)", + "faeton", "Faeton", + "fairyl2", "Fairy Land 2 (set 1)", + "fairyl2a", "Fairy Land 2 (set 2)", + "fairyl2b", "Fairy Land 2 (set 3)", + "fairyl2bl", "Fairy Land 2 (bootleg)", + "falcnwld", "Falcons Wild - Wild Card 1991 (TVG)", + "falcnwlda", "Falcons Wild - World Wide Poker (Video Klein, set 1)", + "falcnwldb", "Falcons Wild - World Wide Poker (Video Klein, set 2)", + "falcnwldc", "Falcons Wild - World Wide Poker (Falcon original)", + "falcon", "Falcon (bootleg of Phoenix) (8085A CPU)", + "falconz", "Falcon (bootleg of Phoenix) (Z80 CPU)", + "famibox", "FamicomBox", + "famlyfun", "Family Fun!", + "fantasia", "Fantasia (940429 PCB, set 1)", + "fantasiaa", "Fantasia (940307 PCB)", + "fantasiab", "Fantasia (940429 PCB, set 2)", + "fantastc", "Fantastic (Galaga conversion on Galaxian hardware)", + "fantasy", "Fantasy (World)", + "fantasyj", "Fantasy (Japan)", + "fantasyu", "Fantasy (US)", + "fantazia", "Fantazia (bootleg?)", + "fantjour", "Fantastic Journey (ver EAA)", + "fantjoura", "Fantastic Journey (ver AAA)", + "fantland", "Fantasy Land (set 1)", + "fantlanda", "Fantasy Land (set 2)", + "fantsia2", "Fantasia II (Explicit)", + "fantsia2a", "Fantasia II (Less Explicit)", + "fantsy95", "Fantasy '95", + "fantzn2", "Fantasy Zone II - The Tears of Opa-Opa (MC-8123, 317-0057)", + "fantzn2x", "Fantasy Zone II - The Tears of Opa-Opa (System 16C version)", + "fantzn2xp", "Fantasy Zone II - The Tears of Opa-Opa (System 16C version, prototype)", + "fantzone", "Fantasy Zone (Rev A, unprotected)", + "fantzone1", "Fantasy Zone (unprotected)", + "fantzonep", "Fantasy Zone (317-5000)", + "fantzonepr", "Fantasy Zone (prototype)", + "farfalla", "Farfalla", + "farfallag", "Farfalla (German speech)", + "farfallai", "Farfalla (Italian speech)", + "farmer", "Farmers Rebellion", + "farwest", "Far West", + "fashion", "Fashion (Version 2.14)", + "fashiong", "Fashion Gambler (set 1)", + "fashiong2", "Fashion Gambler (set 2)", + "fastdraw", "Fast Draw Showdown v1.3", + "fastdrwp", "Fast Draw (poker conversion kit)?", + "fastfred", "Fast Freddie", + "fastlane", "Fast Lane", + "fateulc", "Fate: Unlimited Codes (FUD1 ver. A)", + "fateulcb", "Fate: Unlimited Codes (bootleg)", + "fatfursp", "Fatal Fury Special / Garou Densetsu Special (set 1)(NGM-058)(NGH-058)", + "fatfurspa", "Fatal Fury Special / Garou Densetsu Special (set 2)(NGM-058)(NGH-058)", + "fatfurwa", "Fatal Fury: Wild Ambition (rev.A)", + "fatfury1", "Fatal Fury - King of Fighters / Garou Densetsu - shukumei no tatakai (NGM-033)(NGH-033)", + "fatfury2", "Fatal Fury 2 / Garou Densetsu 2 - arata-naru tatakai (NGM-047)(NGH-047)", + "fatfury3", "Fatal Fury 3 - Road to the Final Victory / Garou Densetsu 3 - haruka-naru tatakai (NGM-069)(NGH-069)", + "fathom", "Fathom", + "fax", "FAX", + "fax2", "FAX 2", + "fb2010", "Fruit Bonus 2010", + "fb2gen", "Fruit Bonus 2nd Generation (Version 1.8E Dual)", + "fb2genc1", "Fruit Bonus 2nd Generation (Version 1.8R, set 1)", + "fb2genc2", "Fruit Bonus 2nd Generation (Version 1.8LT, set 1)", + "fb2gend1", "Fruit Bonus 2nd Generation (Version 1.8R, set 2)", + "fb2gend2", "Fruit Bonus 2nd Generation (Version 1.8LT, set 2)", + "fb2geno", "Fruit Bonus 2nd Generation (Version 1.6XT)", + "fb2geno2", "Fruit Bonus 2nd Generation (Version 1.5)", + "fb2genv1", "Fruit Bonus 2nd Generation (Version 1.8R Dual)", + "fb2genv2", "Fruit Bonus 2nd Generation (Version 1.8LT Dual)", + "fb2nd", "Fruit Bonus 2nd Edition (Version 1.8R, set 1)", + "fb2ndc2", "Fruit Bonus 2nd Edition (Version 1.8LT, set 1)", + "fb2ndd1", "Fruit Bonus 2nd Edition (Version 1.8R, set 2)", + "fb2ndd2", "Fruit Bonus 2nd Edition (Version 1.8LT, set 2)", + "fb2ndo", "Fruit Bonus 2nd Edition (Version 1.5)", + "fb2ndv1", "Fruit Bonus 2nd Edition (Version 1.8R Dual)", + "fb2ndv2", "Fruit Bonus 2nd Edition (Version 1.8LT Dual)", + "fb3g", "Fruit Bonus 3G (Version 1.0.3)", + "fb4", "Fruit Bonus 2004 (Version 1.5R, set 1)", + "fb4b2", "Fruit Bonus 2004 (Version 1.5LT, set 1)", + "fb4c1", "Fruit Bonus 2004 (Version 1.5R, set 2)", + "fb4c2", "Fruit Bonus 2004 (Version 1.5LT, set 2)", + "fb4d1", "Fruit Bonus 2004 (Version 1.5R, set 3)", + "fb4d2", "Fruit Bonus 2004 (Version 1.5LT, set 3)", + "fb4exp", "Fruit Bonus 2005 (2004 Export - Version 1.5E Dual)", + "fb4o", "Fruit Bonus 2004 (Version 1.3XT)", + "fb4o2", "Fruit Bonus 2004 (Version 1.2)", + "fb4v1", "Fruit Bonus 2004 (Version 1.5R Dual)", + "fb4v2", "Fruit Bonus 2004 (Version 1.5LT Dual)", + "fb5", "Fruit Bonus 2005 (Version 1.5SH, set 1)", + "fb5c", "Fruit Bonus 2005 (Version 1.5SH, set 2)", + "fb5d", "Fruit Bonus 2005 (Version 1.5SH, set 3)", + "fb5v", "Fruit Bonus 2005 (Version 1.5SH Dual)", + "fb6", "Fruit Bonus '06 - 10th anniversary (Version 1.7E CGA)", + "fb6d1", "Fruit Bonus '06 - 10th anniversary (Version 1.7R CGA)", + "fb6d2", "Fruit Bonus '06 - 10th anniversary (Version 1.7LT CGA)", + "fb6s1", "Fruit Bonus '06 - 10th anniversary (Version 1.7R CGA, Compact PCB)", + "fb6s2", "Fruit Bonus '06 - 10th anniversary (Version 1.7LT CGA, Compact PCB)", + "fb6s3", "Fruit Bonus '06 - 10th anniversary (Version 1.3R CGA, Compact PCB)", + "fb6se", "Fruit Bonus 2006 Special Edition (Version 1.4E CGA)", + "fb6sed1", "Fruit Bonus 2006 Special Edition (Version 1.4R CGA)", + "fb6sed2", "Fruit Bonus 2006 Special Edition (Version 1.4LT CGA)", + "fb6sev", "Fruit Bonus 2006 Special Edition (Version 1.4E Dual)", + "fb6sev1", "Fruit Bonus 2006 Special Edition (Version 1.4R Dual)", + "fb6sev2", "Fruit Bonus 2006 Special Edition (Version 1.4LT Dual)", + "fb6v", "Fruit Bonus '06 - 10th anniversary (Version 1.7E Dual)", + "fb6v1", "Fruit Bonus '06 - 10th anniversary (Version 1.7R Dual)", + "fb6v2", "Fruit Bonus '06 - 10th anniversary (Version 1.7LT Dual)", + "fbait2bc", "Fisherman's Bait 2 - A Bass Challenge (GE865 VER. UAB)", + "fbaitbc", "Fisherman's Bait - A Bass Challenge (GE765 VER. UAB)", + "fbaitmc", "Fisherman's Bait - Marlin Challenge (GX889 VER. EA)", + "fbaitmca", "Fisherman's Bait - Marlin Challenge (GX889 VER. AA)", + "fbaitmcj", "Fisherman's Bait - Marlin Challenge (GX889 VER. JA)", + "fbaitmcu", "Fisherman's Bait - Marlin Challenge (GX889 VER. UA)", + "fball_ii", "Fireball II", + "fbclass", "Fireball Classic", + "fbcrazy", "Football Crazy (Video Quiz)", + "fbdeluxe", "Fruit Bonus Deluxe (Version 1.0.9)", + "fbdeluxeo", "Fruit Bonus Deluxe (Version 1.0.7)", + "fbfrenzy", "Football Frenzy (NGM-034)(NGH-034)", + "fcnudge", "Fruit Carnival Nudge (Version 2.1 Dual)", + "fcnudgeo", "Fruit Carnival Nudge (Version 2.0, set 1)", + "fcnudgeo2", "Fruit Carnival Nudge (Version 2.0, set 2)", + "fcnudgeo3", "Fruit Carnival Nudge (Version 1.7)", + "fcockt2", "Fruit Cocktail 2 (080707 Russia)", + "fcockt2_3", "Fruit Cocktail 2 (080909 World)", + "fcockt2_4", "Fruit Cocktail 2 (081105 World)", + "fcockt2_4a", "Fruit Cocktail 2 (bootleg, 081105, banking address hack)", + "fcockt2_4b", "Fruit Cocktail 2 (bootleg, 081105, banking address hack, no credit limit)", + "fcockt2_4d", "Fruit Cocktail 2 (bootleg, 081105, banking address hack, payout percentage 70)", + "fcockt2_4f", "Fruit Cocktail 2 (bootleg, 081105, LOTOS FR02)", + "fcockt2_5", "Fruit Cocktail 2 (081106 Russia)", + "fcockt2_6", "Fruit Cocktail 2 (090528 Lottery)", + "fcockt2_7", "Fruit Cocktail 2 (090813 Entertainment)", + "fcockt2a", "Fruit Cocktail 2 (bootleg, 080707, banking address hack)", + "fcockt_10", "Fruit Cocktail (070517 Russia)", + "fcockt_11", "Fruit Cocktail (070822 Russia)", + "fcockt_12", "Fruit Cocktail (070911 Russia)", + "fcockt_14", "Fruit Cocktail (090708 Entertainment)", + "fcockt_3", "Fruit Cocktail (030623 World)", + "fcockt_5", "Fruit Cocktail (031111 World)", + "fcockt_6", "Fruit Cocktail (040216 World)", + "fcockt_6a", "Fruit Cocktail (bootleg, 040216, banking address hack)", + "fcockt_6b", "Fruit Cocktail (bootleg, 040216, backdoor)", + "fcockt_6c", "Fruit Cocktail (bootleg, 040216, LotoRossy+)", + "fcockt_6d", "Fruit Cocktail (bootleg, 040216, VIDEO GAME-1 FR01)", + "fcockt_7", "Fruit Cocktail (050118 World)", + "fcockt_7a", "Fruit Cocktail (bootleg, 050118, backdoor)", + "fcockt_7b", "Fruit Cocktail (bootleg, 050118, VIDEO GAME-1 FR01)", + "fcockt_7c", "Fruit Cocktail (bootleg, 050118, payout percentage 40)", + "fcockt_7d", "Fruit Cocktail (bootleg, 050118, payout percentage 60)", + "fcockt_7e", "Fruit Cocktail (bootleg, 050118, payout percentage 70)", + "fcockt_7f", "Fruit Cocktail (bootleg, 050118, changed version text)", + "fcockt_7g", "Fruit Cocktail (bootleg, 050118, LOTO PROGRAM V-FC2)", + "fcockt_7h", "Fruit Cocktail (bootleg, 050118, LOTOS FR01)", + "fcockt_8", "Fruit Cocktail (060111 World)", + "fcockt_8a", "Fruit Cocktail (bootleg, 060111, LOTO COCKTAIL V01-0001)", + "fcockt_8b", "Fruit Cocktail (bootleg, 060111, LOTTOGAME (I))", + "fcockt_9", "Fruit Cocktail (070305 Russia)", + "fcombat", "Field Combat", + "fcrash", "Final Crash (bootleg of Final Fight)", + "fearless", "Fearless Pinocchio (V101US)", + "fenix", "Fenix (bootleg of Phoenix)", + "feversoc", "Fever Soccer", + "feversos", "Fever SOS (International, Ver. 98/09/25)", + "ffantasy", "Fighting Fantasy (Japan revision 2)", + "ffantasya", "Fighting Fantasy (Japan)", + "ffantasybl", "Fighting Fantasy (bootleg with 68705)", + "ffight", "Final Fight (World, set 1)", + "ffight2b", "Final Fight 2 (SNES bootleg)", + "ffighta", "Final Fight (World, set 2)", + "ffightbl", "Final Fight (bootleg)", + "ffightj", "Final Fight (Japan)", + "ffightj1", "Final Fight (Japan 900112)", + "ffightj2", "Final Fight (Japan 900305)", + "ffightj3", "Final Fight (Japan 900613)", + "ffightjh", "Street Smart / Final Fight (Japan, hack)", + "ffightu", "Final Fight (USA, set 1)", + "ffightu1", "Final Fight (USA, set 2)", + "ffightua", "Final Fight (USA 900112)", + "ffightub", "Final Fight (USA 900613)", + "ffortune", "Fantasy Fortune (1VXFC5460, New Zealand)", + "ffreveng", "Final Fight Revenge (JUET 990714 V1.000)", + "ffv101", "Flipper Football (v1.01)", + "ffv104", "Flipper Football (v1.04)", + "fghtatck", "Fighter & Attacker (US)", + "fghtbskt", "Fighting Basketball", + "fghthist", "Fighter's History (World ver 43-07, DE-0380-2 PCB)", + "fghthistj", "Fighter's History (Japan ver 41-07, DE-0395-1 PCB)", + "fghthistja", "Fighter's History (Japan ver 41-05, DE-0380-2 PCB)", + "fghthistjb", "Fighter's History (Japan ver 41-04, DE-0380-1 PCB)", + "fghthistu", "Fighter's History (US ver 42-05, DE-0395-1 PCB)", + "fghthistua", "Fighter's History (US ver 42-03, DE-0380-2 PCB)", + "fghtjam", "Capcom Fighting Jam (JAM1 Ver. A)", + "fghtmn", "Fighting Mania (QG918 VER. EAA)", + "fghtmna", "Fighting Mania (QG918 VER. AAA)", + "fghtmnk", "Fighting Mania (QG918 VER. KAA)", + "fghtmnu", "Fighting Mania (QG918 VER. UAA)", + "fgoal", "Field Goal (set 1)", + "fgoala", "Field Goal (set 2)", + "fgtlayer", "Fighting Layer (Japan, FTL1/VER.A)", + "fh_905h", "Funhouse 9.05H", + "fh_l3", "Funhouse L-3", + "fh_l4", "Funhouse L-4", + "fh_l5", "Funhouse L-5", + "fh_l9", "Funhouse L-9 (SL-2m)", + "fh_l9b", "Funhouse L-9 (SL-2m) Bootleg Improved German translation", + "fhawk", "Fighting Hawk (World)", + "fhawkj", "Fighting Hawk (Japan)", + "fhboxers", "Funky Head Boxers (JUETBKAL 951218 V1.000)", + "fhunter", "Fortune Hunter (2XF5196I01, USA)", + "fhuntera", "Fortune Hunter (2XF5196I02, USA)", + "fieldday", "Field Day", + "fightfev", "Fight Fever (set 1)", + "fightfeva", "Fight Fever (set 2)", + "fightrol", "Fighting Roller", + "filetto", "Filetto (v1.05 901009)", + "filthyr", "Filthy Rich (Russia)", + "finalap2", "Final Lap 2", + "finalap2j", "Final Lap 2 (Japan)", + "finalap3", "Final Lap 3 (World, set 1)", + "finalap3a", "Final Lap 3 (World, set 2)", + "finalap3bl", "Final Lap 3 (bootleg)", + "finalap3j", "Final Lap 3 (Japan)", + "finalap3jc", "Final Lap 3 (Japan - Rev C)", + "finalapr", "Final Lap R (Rev. B)", + "finalaprj", "Final Lap R (Japan Rev. C)", + "finalapro", "Final Lap R", + "finalb", "Final Blow (World)", + "finalbj", "Final Blow (Japan)", + "finalbny", "Mahjong Final Bunny [BET] (Japan)", + "finalbu", "Final Blow (US)", + "finalgdr", "Final Godori (Korea, version 2.20.5915)", + "finalizr", "Finalizer - Super Transformation", + "finalizrb", "Finalizer - Super Transformation (bootleg)", + "finallap", "Final Lap (Rev E)", + "finallapc", "Final Lap (Rev C)", + "finallapd", "Final Lap (Rev D)", + "finallapjb", "Final Lap (Japan, Rev B)", + "finallapjc", "Final Lap (Japan, Rev C)", + "finalttr", "Final Tetris", + "findlove", "Zenkoku Seifuku Bishoujo Grand Prix Find Love (J 971212 V1.000)", + "findout", "Find Out (Version 4.04)", + "finehour", "Finest Hour (Japan)", + "finfurl", "Final Furlong (FF2 Ver. A)", + "finfurl2", "Final Furlong 2 (World)", + "finfurl2j", "Final Furlong 2 (Japan)", + "finlarch", "Final Arch (J 950714 V1.001)", + "fire_l3", "Fire! (L-3)", + "fireact", "Fire Action", + "fireactd", "Fire Action Deluxe", + "firebarr", "Fire Barrel (Japan)", + "firebatl", "Fire Battle", + "firebeas", "Firebeast (prototype)", + "firebird", "Hot Fire Birds", + "firefox", "Fire Fox (set 1)", + "firefoxa", "Fire Fox (set 2)", + "firehawk", "Fire Hawk", + "firemntn", "Fire Mountain", + "fireone", "Fire One", + "fireshrk", "Fire Shark", + "fireshrka", "Fire Shark (earlier)", + "fireshrkd", "Fire Shark (Korea, set 1, easier)", + "fireshrkdh", "Fire Shark (Korea, set 2, harder)", + "firetrap", "Fire Trap (US)", + "firetrapbl", "Fire Trap (Japan bootleg)", + "firetrapj", "Fire Trap (Japan)", + "firetrk", "Fire Truck / Smokey Joe", + "firstcl", "First Class Traveller (set 1)", + "fishfren", "Fishin' Frenzy (prototype)", + "fitegolf", "Fighting Golf (World?)", + "fitegolfu", "Fighting Golf (US)", + "fitfight", "Fit of Fighting", + "fitter", "Fitter", + "fitterbl", "Fitter (bootleg of Round-Up)", + "fiveside", "Five a Side Soccer (ver UAA)", + "fixeight", "FixEight (Europe)", + "fixeighta", "FixEight (Southeast Asia)", + "fixeightat", "FixEight (Southeast Asia, Taito license)", + "fixeightbl", "FixEight (Korea, bootleg)", + "fixeighth", "FixEight (Hong Kong)", + "fixeightht", "FixEight (Hong Kong, Taito license)", + "fixeightj", "FixEight (Japan)", + "fixeightjt", "FixEight (Japan, Taito license)", + "fixeightk", "FixEight (Korea)", + "fixeightkt", "FixEight (Korea, Taito license)", + "fixeightt", "FixEight (Europe, Taito license)", + "fixeighttw", "FixEight (Taiwan)", + "fixeighttwt", "FixEight (Taiwan, Taito license)", + "fixeightu", "FixEight (USA)", + "fixeightut", "FixEight (USA, Taito license)", + "fjbuster", "Fujiyama Buster (Japan)", + "fjholden", "FJ Holden", + "flamegun", "Flame Gunner", + "flamegunj", "Flame Gunner (Japan)", + "flash_l1", "Flash (L-1)", + "flash_t1", "Flash (T-1) Ted Estes", + "flashgal", "Flashgal (set 1)", + "flashgala", "Flashgal (set 2)", + "flashgdn", "Flash Gordon", + "flashgdnf", "Flash Gordon (French)", + "flashgdnp1", "Flash Gordon (prototype rev. 1)", + "flashgdnp2", "Flash Gordon (prototype rev. 2)", + "flashgdnv", "Flash Gordon (Vocalizer sound)", + "flicker", "Flicker (prototype)", + "flicky", "Flicky (128k Version, System 2, 315-5051)", + "flickyo", "Flicky (64k Version, System 1, 315-5051, set 1)", + "flickys1", "Flicky (64k Version, System 1, 315-5051, set 2)", + "flickys2", "Flicky (128k Version, System 2, not encrypted)", + "flight2k", "Flight 2000", + "flipjack", "Flipper Jack", + "flipmaze", "Flip Maze (V2.04J)", + "flipshot", "Battle Flip Shot", + "flipull", "Flipull (Japan)", + "flkatck", "Flak Attack (Japan)", + "flkatcka", "Flak Attack (Japan, PWB 450593 sub-board)", + "flower", "Flower (US)", + "flowerj", "Flower (Japan)", + "flstory", "The FairyLand Story", + "flstoryj", "The FairyLand Story (Japan)", + "flyball", "Flyball (rev 2)", + "flyball1", "Flyball (rev 1)", + "flyboy", "Fly-Boy", + "flyboyb", "Fly-Boy (bootleg)", + "flytiger", "Flying Tiger (set 1)", + "flytigera", "Flying Tiger (set 2)", + "fmaniac3", "Fishing Maniac 3", + "fncywld", "Fancy World - Earth of Crisis", + "fnkyfish", "Funky Fish", + "fnshark", "Flyin' Shark (bootleg of Hishou Zame)", + "foathens", "Flame of Athens", + "foodf", "Food Fight (rev 3)", + "foodf2", "Food Fight (rev 2)", + "foodfc", "Food Fight (cocktail)", + "footchmp", "Football Champ (World)", + "footchmpbl", "Football Champ (World) (bootleg)", + "forcebrk", "Force Break (bootleg)", + "forceii", "Force II", + "forgottn", "Forgotten Worlds (World)", + "forgottnu", "Forgotten Worlds (USA, B-Board 88621B-2, Rev. C)", + "forgottnu1", "Forgotten Worlds (USA, B-Board 88618B-2, Rev. C)", + "forgottnua", "Forgotten Worlds (USA, B-Board 88618B-2, Rev. A)", + "forgottnuaa", "Forgotten Worlds (USA, B-Board 88618B-2, Rev. AA)", + "formatz", "Formation Z", + "fort2b", "Fortress 2 Blue Arcade (ver 1.01 / pcb ver 3.05)", + "fort2ba", "Fortress 2 Blue Arcade (ver 1.00 / pcb ver 3.05)", + "fortecar", "Forte Card (Ver 103, English)", + "fortecrd", "Forte Card (Ver 110, Spanish)", + "fortune1", "Fortune I (PK485-S) Draw Poker", + "fotns", "Fist Of The North Star", + "fourtrax", "Four Trax", + "foxylady", "Foxy Lady", + "fpoint", "Flash Point (set 2, Japan, FD1094 317-0127A)", + "fpoint1", "Flash Point (set 1, Japan, FD1094 317-0127A)", + "fpointbj", "Flash Point (Japan, bootleg)", + "fpointbl", "Flash Point (World, bootleg)", + "fpwr2_l2", "Firepower II (L-2)", + "frankst", "Mary Shelley's Frankenstein", + "frankstg", "Mary Shelley's Frankenstein (Germany)", + "franticf", "Frantic Fred", + "freddy", "Freddy: A Nightmare on Elm Street (rev.3)", + "freddy4", "Freddy: A Nightmare on Elm Street (rev.4)", + "fredmem", "Fred Flintstones' Memory Match (World?, Ticket version, 3/17/95)", + "fredmemc", "Fred Flintstones' Memory Match (Mandarin Chinese, 3/17/95)", + "fredmemj", "Fred Flintstones' Memory Match (Japan, High Score version, 3/20/95)", + "fredmemuk", "Fred Flintstones' Memory Match (UK, 3/17/95)", + "fredmemus", "Fred Flintstones' Memory Match (US, High Score version, 3/10/95)", + "fredmesp", "Fred Flintstones' Memory Match (Spanish, 3/17/95)", + "freedom", "Freedom", + "freefall", "Freefall", + "freekick", "Free Kick (NS6201-A 1987.10)", + "freekicka", "Free Kick (NS6201-A 1987.9)", + "freekickb1", "Free Kick (bootleg set 1)", + "freekickb2", "Free Kick (bootleg set 2)", + "freekickb3", "Free Kick (bootleg set 3)", + "freeze", "Freeze", + "freezeat", "Freeze (Atari) (prototype, English voice, 96/10/25)", + "freezeat2", "Freeze (Atari) (prototype, 96/10/18)", + "freezeat3", "Freeze (Atari) (prototype, 96/10/07)", + "freezeat4", "Freeze (Atari) (prototype, 96/10/03)", + "freezeat5", "Freeze (Atari) (prototype, 96/09/20, AMOA-96)", + "freezeat6", "Freeze (Atari) (prototype, 96/09/07, Jamma-96)", + "freezeatjp", "Freeze (Atari) (prototype, Japanese voice, 96/10/25)", + "frenzy", "Frenzy", + "fresh", "Fruit Fresh (Italy)", + "friskyt", "Frisky Tom (set 1)", + "friskyta", "Frisky Tom (set 2)", + "frogf", "Frog (Falcon bootleg)", + "frogg", "Frog (Galaxian hardware)", + "frogger", "Frogger", + "froggermc", "Frogger (Moon Cresta hardware)", + "froggers", "Frog", + "froggers1", "Frogger (Sega set 1)", + "froggers2", "Frogger (Sega set 2)", + "froggrs", "Frogger (Scramble hardware)", + "frogs", "Frogs", + "fromanc2", "Taisen Idol-Mahjong Final Romance 2 (Japan)", + "fromanc4", "Taisen Mahjong Final Romance 4 (Japan)", + "fromance", "Idol-Mahjong Final Romance (Japan)", + "fromancr", "Taisen Mahjong Final Romance R (Japan)", + "frontier", "Frontier", + "frontlin", "Front Line", + "fround", "The Final Round (version M)", + "froundl", "The Final Round (version L)", + "frpwr_l2", "Firepower (L-2)", + "frpwr_l6", "Firepower (L-6)", + "frpwr_t6", "Firepower (T-6)", + "fruitbun", "Fruits & Bunny (World?)", + "fruitpc", "Fruit Land", + "fruitstb", "Fruit Star Bonus (Ver 8.20PIR)", + "fruitstr", "Fruit Star (encrypted)", + "fs_lx2", "The Flintstones (LX-2)", + "fs_lx4", "The Flintstones (LX-4)", + "fs_lx5", "The Flintstones (LX-5)", + "fs_sp2", "The Flintstones (SP-2)", + "fshark", "Flying Shark (World)", + "fsharkbt", "Flying Shark (bootleg with 8741)", + "fsoccer", "Fighting Soccer (version 4)", + "fsoccerb", "Fighting Soccer (Joystick hack bootleg)", + "fsoccerba", "Fighting Soccer (Joystick hack bootleg, alt)", + "fsoccerj", "Fighting Soccer (Japan)", + "fspiderb", "Frog & Spiders (bootleg?)", + "fstarfrc", "Final Star Force (US)", + "fstarfrcj", "Final Star Force (Japan)", + "fstation", "Fun Station Spielekoffer 9 Spiele", + "fswords", "Fighters Swords (Korean release of Samurai Shodown III)", + "ft_l3", "Fish Tales (L-3)", + "ft_l4", "Fish Tales (L-4)", + "ft_l5", "Fish Tales (L-5)", + "ft_p4", "Fish Tales (P-4)", + "ftimpact", "Fighters' Impact (Ver 2.02O)", + "ftimpactj", "Fighters' Impact (Ver 2.02J)", + "ftimpactu", "Fighters' Impact (Ver 2.02A)", + "ftimpcta", "Fighters' Impact A (Ver 2.00J)", + "ftspeed", "Faster Than Speed", + "fullthrl", "Full Throttle (Japan)", + "fun4", "Fun Four (Set 1) [TTL]", + "fun4a", "Fun Four (Set 2) [TTL]", + "funcsino", "Status Fun Casino (V1.3s)", + "funcube", "Funcube (v1.5)", + "funcube2", "Funcube 2 (v1.1)", + "funcube3", "Funcube 3 (v1.1)", + "funcube4", "Funcube 4 (v1.0)", + "funcube5", "Funcube 5 (v1.0)", + "funkball", "Funky Ball", + "funkybee", "Funky Bee", + "funkybeeb", "Funky Bee (bootleg, harder)", + "funkyfig", "The First Funky Fighter (set 1)", + "funkyfiga", "The First Funky Fighter (set 2)", + "funkyjet", "Funky Jet (World, rev 1)", + "funkyjeta", "Funky Jet (World)", + "funkyjetj", "Funky Jet (Japan, rev 2)", + "funlddlx", "Funny Land de Luxe", + "funnyfm", "Funny Farm (v1.17)", + "funnyfma", "Funny Farm (v1.26)", + "funnyfmb", "Funny Farm (v1.30)", + "funnymou", "Funny Mouse (Japan)", + "funquiz", "Fun World Quiz (Austrian)", + "funriver", "Fun River (Version 1.4R CGA)", + "funriverd1", "Fun River (Version 1.3R CGA)", + "funriverv", "Fun River (Version 1.4R Dual)", + "funybubl", "Funny Bubble", + "funybublc", "Funny Bubble (Comad version)", + "funystrp", "Funny Strip", + "futari10", "Mushihime-Sama Futari Ver 1.0 (2006/10/23 MASTER VER.)", + "futari15", "Mushihime-Sama Futari Ver 1.5 (2006/12/8.MASTER VER. 1.54.)", + "futari15a", "Mushihime-Sama Futari Ver 1.5 (2006/12/8 MASTER VER 1.54)", + "futaribl", "Mushihime-Sama Futari Black Label (2007/12/11 BLACK LABEL VER)", + "futflash", "Future Flash", + "futrquen", "Future Queen", + "futspy", "Future Spy (315-5061)", + "futurspa", "Future Spa", + "futurwld", "Future World", + "fuudol", "Fuudol (Japan)", + "fvipers", "Fighting Vipers (Revision D)", + "fvipers2", "Fighting Vipers 2 (Revision A)", + "fx", "F-X (bootleg of S.R.D. Mission)", + "g13knd", "Golgo 13 Kiseki no Dandou (Japan, GLS1/VER.A)", + "g4u2", "Games 4 U 2 (94 5.6-0)", + "g4u3", "Games 4 U 3 (94 5.6-4)", + "g4u3a", "Games 4 U 3 (94 5.6-5)", + "g4u4", "Games 4 U 4 (94 5.6-5)", + "g4u5", "Games 4 U 5 (94 5.6-5)", + "g4u6", "Games 4 U 6 (94 5.6-5)", + "g4u7", "Games 4 U 7 (94 5.6-5a)", + "ga2", "Golden Axe: The Revenge of Death Adder (World)", + "ga2j", "Golden Axe: The Revenge of Death Adder (Japan)", + "ga2u", "Golden Axe: The Revenge of Death Adder (US)", + "gaia", "Gaia Crusaders", + "gaiapols", "Gaiapolis (ver EAF)", + "gaiapolsj", "Gaiapolis (ver JAF)", + "gaiapolsu", "Gaiapolis (ver UAF)", + "gaiden", "Ninja Gaiden (US)", + "gakupara", "Quiz Gakuen Paradise (Japan)", + "gakusai", "Mahjong Gakuensai (Japan)", + "gakusai2", "Mahjong Gakuensai 2 (Japan)", + "gal10ren", "Mahjong Gal 10-renpatsu (Japan)", + "gal3", "Galaxian 3 - Theater 6 : Project Dragoon", + "galactic", "Galactica - Batalha Espacial", + "galaga", "Galaga (Namco rev. B)", + "galaga3", "Galaga 3 (GP3 rev. D)", + "galaga3a", "Galaga 3 (GP3 rev. C)", + "galaga3b", "Galaga 3 (GP3)", + "galaga3c", "Galaga 3 (set 4)", + "galaga3m", "Galaga 3 (set 5)", + "galaga88", "Galaga '88", + "galaga88j", "Galaga '88 (Japan)", + "galagamf", "Galaga (Midway set 1 with fast shoot hack)", + "galagamk", "Galaga (Midway set 2)", + "galagamw", "Galaga (Midway set 1)", + "galagao", "Galaga (Namco)", + "galap1", "Space Invaders Galactica (galaxiana hack)", + "galap4", "Galaxian Part 4 (hack)", + "galapx", "Galaxian Part X (moonaln hack)", + "galastrm", "Galactic Storm (Japan)", + "galaxbsf", "Galaxian (bootleg, set 1)", + "galaxbsf2", "Galaxian (bootleg, set 3)", + "galaxi", "Galaxi (v2.0)", + "galaxia", "Galaxia (set 1)", + "galaxiaa", "Galaxia (set 2)", + "galaxiab", "Galaxia (set 3)", + "galaxiac", "Galaxia (set 4)", + "galaxian", "Galaxian (Namco set 1)", + "galaxiana", "Galaxian (Namco set 2)", + "galaxianbl", "Galaxian (bootleg, set 2)", + "galaxiani", "Galaxian (Irem)", + "galaxianm", "Galaxian (Midway set 1)", + "galaxianmo", "Galaxian (Midway set 2)", + "galaxiant", "Galaxian (Taito)", + "galaxrf", "Galaxian (Recreativos Franco S.A. Spanish bootleg)", + "galaxrfgg", "Galaxian Growing Galaxip / Galaxian Nave Creciente (Recreativos Franco S.A. Spanish bootleg)", + "galaxyfg", "Galaxy Fight - Universal Warriors", + "galaxygn", "Galaxy Gunners", + "galaxypi", "Galaxy", + "galaxyr", "Galaxy Ranger", + "galaxyrp", "Galaxy Ranger (Pioneer LDV1000)", + "galds", "Gals Ds - Three Dealers Casino House (bootleg?)", + "galemp", "Galaxy Empire (bootleg?)", + "galgame", "Galaxy Game", + "galgame2", "Galaxy Games StarPak 2", + "galgbios", "Galaxy Games (BIOS v1.90)", + "galhustl", "Gals Hustler", + "galivan", "Cosmo Police Galivan (12/26/1985)", + "galivan2", "Cosmo Police Galivan (12/16/1985)", + "galivan3", "Cosmo Police Galivan (12/11/1985)", + "galkaika", "Mahjong Gal no Kaika (Japan)", + "galkoku", "Mahjong Gal no Kokuhaku (Japan)", + "gallag", "Gallag", + "gallgall", "Gallagher's Gallery v2.2", + "gallop", "Gallop - Armed Police Unit (Japan)", + "galmedes", "Galmedes (Japan)", + "galpani2", "Gals Panic II (Asia)", + "galpani2e", "Gals Panic II (English)", + "galpani2e2", "Gals Panic II (English, 2 PCB ver.)", + "galpani2g", "Gals Panic II (Germany, 2 PCB ver.)", + "galpani2gs", "Gals Panic II (Germany, single PCB)", + "galpani2i", "Gals Panic II (Italy, single PCB)", + "galpani2j", "Gals Panic II (Japan)", + "galpani2t", "Gals Panic II (Taiwan)", + "galpani3", "Gals Panic 3 (Euro)", + "galpani3hk", "Gals Panic 3 (Hong Kong)", + "galpani3j", "Gals Panic 3 (Japan)", + "galpani3k", "Gals Panic 3 (Korea)", + "galpani4", "Gals Panic 4 (Japan)", + "galpani4k", "Gals Panic 4 (Korea)", + "galpanic", "Gals Panic (Unprotected)", + "galpanica", "Gals Panic (MCU Protected)", + "galpanis", "Gals Panic S - Extra Edition (Europe)", + "galpanisj", "Gals Panic S - Extra Edition (Japan)", + "galpanisk", "Gals Panic S - Extra Edition (Korea)", + "galpans2", "Gals Panic S2 (Japan)", + "galpans2a", "Gals Panic S2 (Asia)", + "galpans3", "Gals Panic S3 (Japan)", + "galpansu", "Gals Panic SU (Korea)", + "galsnew", "Gals Panic (US, EXPRO-02 PCB)", + "galsnewa", "Gals Panic (Export, EXPRO-02 PCB)", + "galsnewj", "Gals Panic (Japan, EXPRO-02 PCB)", + "galsnewk", "Gals Panic (Korea, EXPRO-02 PCB)", + "galspnbl", "Gals Pinball", + "galturbo", "Galaxian Turbo (superg hack)", + "galxwars", "Galaxy Wars (Universal set 1)", + "galxwars2", "Galaxy Wars (Universal set 2)", + "galxwarst", "Galaxy Wars (Taito?)", + "gamatron", "Gamatron", + "gamatros", "Gamatron (Sonic)", + "gambl186", "unknown 186 based gambling game (V398)", + "gambl186a", "unknown 186 based gambling game (V399)", + "gamecst2", "GameCristal (version 2.613)", + "gamecstl", "GameCristal", + "gametngk", "The Game Paradise - Master of Shooting! / Game Tengoku - The Game Paradise", + "gammagic", "Game Magic", + "gamshara", "Gamshara (10021 Ver.A)", + "gamt1", "Gaminator 1 (set 1)", + "gamt10", "Gaminator 10 (set 1)", + "gamt10a", "Gaminator 10 (set 2)", + "gamt10b", "Gaminator 10 (set 3)", + "gamt10bag", "Gaminator 10 (bootleg, Bag)", + "gamt10c", "Gaminator 10 (set 4)", + "gamt10d", "Gaminator 10 (set 5)", + "gamt10e", "Gaminator 10 (set 6)", + "gamt10ent", "Gaminator 10 (bootleg, Ent)", + "gamt10f", "Gaminator 10 (set 7)", + "gamt10g", "Gaminator 10 (set 8)", + "gamt10gmult", "Gaminator 10 (bootleg, Multiloto)", + "gamt10h", "Gaminator 10 (set 9)", + "gamt10i", "Gaminator 10 (set 10)", + "gamt10j", "Gaminator 10 (set 11)", + "gamt10k", "Gaminator 10 (set 12)", + "gamt10l", "Gaminator 10 (set 13)", + "gamt10lotc", "Gaminator 10 (bootleg, C-Loto)", + "gamt10lotm", "Gaminator 10 (bootleg, Lotomatic)", + "gamt10m", "Gaminator 10 (set 14)", + "gamt10n", "Gaminator 10 (set 15)", + "gamt10o", "Gaminator 10 (set 16)", + "gamt11", "Gaminator 11 (set 1)", + "gamt11a", "Gaminator 11 (set 2)", + "gamt11b", "Gaminator 11 (set 3)", + "gamt11bmult", "Gaminator 11 (bootleg, Multiloto)", + "gamt11c", "Gaminator 11 (set 4)", + "gamt12", "Gaminator 12 (set 1)", + "gamt12a", "Gaminator 12 (set 2)", + "gamt12b", "Gaminator 12 (set 3)", + "gamt16", "Gaminator 16 (set 1)", + "gamt16a", "Gaminator 16 (set 2)", + "gamt16b", "Gaminator 16 (set 3)", + "gamt16c", "Gaminator 16 (set 4)", + "gamt16d", "Gaminator 16 (set 5)", + "gamt16e", "Gaminator 16 (set 6)", + "gamt16f", "Gaminator 16 (set 7)", + "gamt16fmult", "Gaminator 16 (bootleg, Multiloto)", + "gamt16g", "Gaminator 16 (set 8)", + "gamt16h", "Gaminator 16 (set 9)", + "gamt16i", "Gaminator 16 (set 10)", + "gamt16j", "Gaminator 16 (set 11)", + "gamt16k", "Gaminator 16 (set 12)", + "gamt16lotc", "Gaminator 16 (bootleg, C-Loto)", + "gamt17", "Gaminator 17 (set 1)", + "gamt17a", "Gaminator 17 (set 2)", + "gamt17b", "Gaminator 17 (set 3)", + "gamt18", "Gaminator 18 (set 1)", + "gamt18a", "Gaminator 18 (set 2)", + "gamt18b", "Gaminator 18 (set 3)", + "gamt18bmult", "Gaminator 18 (bootleg, Multiloto)", + "gamt18c", "Gaminator 18 (set 4)", + "gamt18d", "Gaminator 18 (set 5)", + "gamt18ent", "Gaminator 18 (bootleg, Ent)", + "gamt18lotc", "Gaminator 18 (bootleg, C-Loto)", + "gamt19", "Gaminator 19 (set 1)", + "gamt19a", "Gaminator 19 (set 2)", + "gamt19ent", "Gaminator 19 (bootleg, Ent)", + "gamt19lotc", "Gaminator 19 (bootleg, C-Loto)", + "gamt19mult", "Gaminator 19 (bootleg, Multiloto)", + "gamt1a", "Gaminator 1 (set 2)", + "gamt1b", "Gaminator 1 (set 3)", + "gamt1ent", "Gaminator 1 (bootleg, Ent)", + "gamt1lotc", "Gaminator 1 (bootleg, C-Loto)", + "gamt20", "Gaminator 20 (set 1)", + "gamt20a", "Gaminator 20 (set 2)", + "gamt20b", "Gaminator 20 (set 3)", + "gamt20ent", "Gaminator 20 (bootleg, Ent)", + "gamt20lotc", "Gaminator 20 (bootleg, C-Loto)", + "gamt20lotm", "Gaminator 20 (bootleg, Lotomatic)", + "gamt21", "Gaminator 21 (set 1)", + "gamt21a", "Gaminator 21 (set 2)", + "gamt21amult", "Gaminator 21 (bootleg, Multiloto)", + "gamt22", "Gaminator 22 (set 1)", + "gamt22a", "Gaminator 22 (set 2)", + "gamt22amult", "Gaminator 22 (bootleg, Multiloto)", + "gamt22b", "Gaminator 22 (set 3)", + "gamt23", "Gaminator 23 (set 1)", + "gamt23a", "Gaminator 23 (set 2)", + "gamt23b", "Gaminator 23 (set 3)", + "gamt29", "Gaminator 29 (set 1)", + "gamt29a", "Gaminator 29 (set 2)", + "gamt30", "Gaminator 30 (set 1)", + "gamt31", "Gaminator 31 (set 1)", + "gamt31mult", "Gaminator 31 (bootleg, Multiloto)", + "gamt4", "Gaminator 4 (set 1)", + "gamt4a", "Gaminator 4 (set 2)", + "gamt4b", "Gaminator 4 (set 3)", + "gamt4c", "Gaminator 4 (set 4)", + "gamt4d", "Gaminator 4 (set 5)", + "gamt4dbag", "Gaminator 4 (bootleg, Bag, set 1)", + "gamt4e", "Gaminator 4 (set 6)", + "gamt4ent", "Gaminator 4 (bootleg, Ent)", + "gamt4f", "Gaminator 4 (set 7)", + "gamt4fbag", "Gaminator 4 (bootleg, Bag, set 2)", + "gamt4g", "Gaminator 4 (set 8)", + "gamt4h", "Gaminator 4 (set 9)", + "gamt4hbag", "Gaminator 4 (bootleg, Bag, set 3)", + "gamt4hmult", "Gaminator 4 (bootleg, Multiloto)", + "gamt4i", "Gaminator 4 (set 10)", + "gamt4ibag", "Gaminator 4 (bootleg, Bag, set 4)", + "gamt4j", "Gaminator 4 (set 11)", + "gamt4lotc", "Gaminator 4 (bootleg, C-Loto)", + "gamt4lotca", "Gaminator 4 (C-Loto, MK4)", + "gamt4lotm", "Gaminator 4 (bootleg, Lotomatic)", + "gamt5", "Gaminator 5 (set 1)", + "gamt6", "Gaminator 6 (set 1)", + "gamt6a", "Gaminator 6 (set 2)", + "gamt6b", "Gaminator 6 (set 3)", + "gamt6c", "Gaminator 6 (set 4)", + "gamt6d", "Gaminator 6 (set 5)", + "gamt6e", "Gaminator 6 (set 6)", + "gamt6ent", "Gaminator 6 (bootleg, Ent)", + "gamt6f", "Gaminator 6 (set 7)", + "gamt6lotc", "Gaminator 6 (bootleg, C-Loto)", + "gamt7", "Gaminator 7 (set 1)", + "gamt7a", "Gaminator 7 (set 2)", + "gamt7b", "Gaminator 7 (set 3)", + "gamt7c", "Gaminator 7 (set 4)", + "gamt7d", "Gaminator 7 (set 5)", + "gamt7e", "Gaminator 7 (set 6)", + "gamt7f", "Gaminator 7 (set 7)", + "gamt7g", "Gaminator 7 (set 8)", + "gamt7h", "Gaminator 7 (set 9)", + "gamt8", "Gaminator 8 (set 1)", + "gamt8a", "Gaminator 8 (set 2)", + "gamt8b", "Gaminator 8 (set 3)", + "gamt8c", "Gaminator 8 (set 4)", + "gamt8d", "Gaminator 8 (set 5)", + "gamt8lotc", "Gaminator 8 (bootleg, C-Loto)", + "gamt9", "Gaminator 9 (set 1)", + "gamt9a", "Gaminator 9 (set 2)", + "gamt9lotc", "Gaminator 9 (bootleg, C-Loto)", + "ganbare", "Ganbare! Marine Kun (Japan 2K0411)", + "gangonta", "Ganbare! Gonta!! 2 / Party Time: Gonta the Diver II (Japan Release)", + "gangrose", "Gangster's Roses (v4.70)", + "gangwars", "Gang Wars", + "gangwarsu", "Gang Wars (US)", + "ganjaja", "Ganbare Jajamaru Saisho wa Goo / Ganbare Jajamaru Hop Step & Jump", + "ganryu", "Ganryu / Musashi Ganryuki", + "gaplus", "Gaplus (GP2 rev. B)", + "gaplusa", "Gaplus (GP2)", + "gaplusd", "Gaplus (GP2 rev D, alternate hardware)", + "garage_4", "Garage (040219 World)", + "garage_4a", "Garage (bootleg, 040219, backdoor)", + "garage_4b", "Garage (bootleg, 040219, changed version text)", + "garage_4c", "Garage (bootleg, 040219, LOTO PROGRAM V-GG2)", + "garage_5", "Garage (050311 World)", + "garage_5a", "Garage (bootleg, 050311, backdoor)", + "garage_5b", "Garage (bootleg, 050311, VIDEO GAME-1 GA01)", + "garage_5c", "Garage (bootleg, 050311, payout percentage 70)", + "garage_5d", "Garage (bootleg, 050311, LOTTOGAME (I))", + "garage_5e", "Garage (bootleg, 050311, LOTOS GA01)", + "garage_6", "Garage (070213 Russia)", + "garage_7", "Garage (070329 Russia)", + "garage_9", "Garage (090715 Entertainment)", + "gardia", "Gardia (317-0006)", + "gardiab", "Gardia (317-0007?, bootleg)", + "garogun", "Garogun Seroyang (Korea)", + "garou", "Garou - Mark of the Wolves (NGM-2530)", + "garoubl", "Garou - Mark of the Wolves (bootleg)", + "garouh", "Garou - Mark of the Wolves (NGM-2530)(NGH-2530)", + "garoup", "Garou - Mark of the Wolves (prototype)", + "garuka", "Garuka (Japan ver. W)", + "garyoret", "Garyo Retsuden (Japan)", + "gatedoom", "Gate of Doom (US revision 4)", + "gatedoom1", "Gate of Doom (US revision 1)", + "gatsbee", "Gatsbee", + "gaunt2", "Gauntlet II", + "gaunt22p", "Gauntlet II (2 Players, rev 2)", + "gaunt22p1", "Gauntlet II (2 Players, rev 1)", + "gaunt22pg", "Gauntlet II (2 Players, German)", + "gaunt2g", "Gauntlet II (German)", + "gauntdl", "Gauntlet Dark Legacy (version DL 2.52)", + "gauntdl24", "Gauntlet Dark Legacy (version DL 2.4)", + "gauntleg", "Gauntlet Legends (version 1.6)", + "gauntleg12", "Gauntlet Legends (version 1.2)", + "gauntlet", "Gauntlet (rev 14)", + "gauntlet2p", "Gauntlet (2 Players, rev 6)", + "gauntlet2pg", "Gauntlet (2 Players, German, rev 4)", + "gauntlet2pg1", "Gauntlet (2 Players, German, rev 1)", + "gauntlet2pj", "Gauntlet (2 Players, Japanese, rev 5)", + "gauntlet2pj2", "Gauntlet (2 Players, Japanese, rev 2)", + "gauntlet2pr3", "Gauntlet (2 Players, rev 3)", + "gauntletg", "Gauntlet (German, rev 10)", + "gauntletgr3", "Gauntlet (German, rev 3)", + "gauntletgr6", "Gauntlet (German, rev 6)", + "gauntletgr8", "Gauntlet (German, rev 8)", + "gauntletj", "Gauntlet (Japanese, rev 13)", + "gauntletj12", "Gauntlet (Japanese, rev 12)", + "gauntletr1", "Gauntlet (rev 1)", + "gauntletr2", "Gauntlet (rev 2)", + "gauntletr4", "Gauntlet (rev 4)", + "gauntletr5", "Gauntlet (rev 5)", + "gauntletr7", "Gauntlet (rev 7)", + "gauntletr9", "Gauntlet (rev 9)", + "gauntlets", "Gauntlet (Spanish, rev 15)", + "gaxeduel", "Golden Axe - The Duel (JUETL 950117 V1.000)", + "gberet", "Green Beret", + "gberetb", "Green Beret (bootleg)", + "gblchmp", "Global Champion (Ver 2.1A 1994/07/29)", + "gbusters", "Gang Busters (set 1)", + "gbustersa", "Gang Busters (set 2)", + "gcastle", "Golden Castle (prototype?)", + "gchgchmp", "Gachaga Champ (GE877 VER. JAB)", + "gcpinbal", "Grand Cross", + "gdarius", "G-Darius (Ver 2.01J)", + "gdarius2", "G-Darius Ver.2 (Ver 2.03J)", + "gdariusb", "G-Darius (Ver 2.02A)", + "gdfs", "Mobil Suit Gundam Final Shooting (Japan)", + "gdvsgd", "Gundam vs. Gundam", + "geebee", "Gee Bee (Japan)", + "geebeeb", "Gee Bee (Europe)", + "geebeeg", "Gee Bee (US)", + "gegege", "GeGeGe no Kitarou Youkai Slot", + "geimulti", "GEI Multi Game", + "geishanz", "Geisha (0101408V, New Zealand)", + "gekiretu", "Quiz Gekiretsu Scramble (Japan)", + "gekiridn", "Gekirindan (Ver 2.3O 1995/09/21)", + "gekiridnj", "Gekirindan (Ver 2.3J 1995/09/21)", + "gekisha", "Mahjong Gekisha", + "gekisou", "Gekisou (Japan)", + "gekitsui", "Gekitsui Oh (Japan)", + "gekpurya", "Gekitou Pro Yakyuu Mizushima Shinji All Stars vs. Pro Yakyuu (Rev C) (GDT-0008C)", + "gemini", "Gemini Wing (Japan)", + "gemini2k", "Gemini 2000", + "gemini2k1", "Gemini 2000 (alternate set)", + "genesisp", "Genesis", + "genie", "Genie", + "geniep", "Genie (Pinball)", + "genix", "Genix Family", + "genpeitd", "Genpei ToumaDen", + "gensitou", "Genshi-Tou 1930's", + "geostorm", "Geo Storm (Japan)", + "gepoker", "Poker (Version 50.02 ICB, set 1)", + "gepoker1", "Poker (Version 50.02 ICB, set 2)", + "gepoker2", "Poker (Version 50.02 ICB, set 3)", + "getbass", "Get Bass", + "getrich", "Get Rich (Version 1.0.1)", + "getstarb1", "Get Star (bootleg set 1)", + "getstarb2", "Get Star (bootleg set 2)", + "getstarj", "Get Star (Japan)", + "gfire2", "Golden Fire II", + "gforce2", "Galaxy Force 2", + "gforce2j", "Galaxy Force 2 (Japan)", + "gforce2ja", "Galaxy Force 2 (Japan, Rev A)", + "ggate", "Golden Gate (set 1) (Bingo)", + "ggatea", "Golden Gate (set 2) (Bingo)", + "ggconnie", "Go! Go! Connie chan Jaka Jaka Janken", + "gghost", "Goalie Ghost", + "ggisuka", "Guilty Gear Isuka", + "ggram2", "Giant Gram: All Japan Pro Wrestling 2 (JPN, USA, EXP, KOR, AUS)", + "ggreats2", "Golfing Greats 2 (ver JAC)", + "gground", "Gain Ground (World, 3 Players, Floppy Based, FD1094 317-0058-03d Rev A)", + "ggroundj", "Gain Ground (Japan, 2 Players, Floppy Based, FD1094 317-0058-03b)", + "ggx", "Guilty Gear X (JPN)", + "ggx15", "Guilty Gear X ver. 1.5", + "ggxx", "Guilty Gear XX (GDL-0011)", + "ggxxac", "Guilty Gear XX Accent Core (GDL-0041)", + "ggxxrl", "Guilty Gear XX #Reload (Rev A) (GDL-0019A)", + "ggxxsla", "Guilty Gear XX Slash (Rev A) (GDL-0033A)", + "ghlpanic", "Ghoul Panic (Asia, OB2/VER.A)", + "ghoshunt", "Ghost Hunter", + "ghostb", "The Real Ghostbusters (US 2 Players, revision 2)", + "ghostb2a", "The Real Ghostbusters (US 2 Players)", + "ghostb3", "The Real Ghostbusters (US 3 Players)", + "ghostlop", "Ghostlop (prototype)", + "ghostmun", "Ghost Muncher", + "ghostsqu", "Ghost Squad (Rev A) (GDX-0012A)", + "ghouls", "Ghouls'n Ghosts (World)", + "ghoulsu", "Ghouls'n Ghosts (USA)", + "ghox", "Ghox (spinner)", + "ghoxj", "Ghox (joystick)", + "ghunter", "Gang Hunter (Spain)", + "ghv101", "Goofy Hoops", + "gi_l3", "Gilligan's Island (L-3)", + "gi_l4", "Gilligan's Island (L-4)", + "gi_l6", "Gilligan's Island (L-6)", + "gi_l9", "Gilligan's Island (L-9)", + "gigaman2", "Giga Man 2: The Power Fighters (bootleg of Mega Man 2: The Power Fighters)", + "gigandes", "Gigandes", + "gigandesa", "Gigandes (earlier)", + "gigas", "Gigas (MC-8123, 317-5002)", + "gigasb", "Gigas (bootleg)", + "gigasm2b", "Gigas Mark II (bootleg)", + "gigawing", "Giga Wing (USA 990222)", + "gigawinga", "Giga Wing (Asia 990222)", + "gigawingb", "Giga Wing (Brazil 990222)", + "gigawingd", "Giga Wing (USA 990222 Phoenix Edition) (bootleg)", + "gigawingh", "Giga Wing (Hispanic 990222)", + "gigawingj", "Giga Wing (Japan 990223)", + "gigawingjd", "Giga Wing (Japan 990223 Phoenix Edition) (bootleg)", + "gijoe", "G.I. Joe (World, EAB, set 1)", + "gijoea", "G.I. Joe (World, EB8, prototype?)", + "gijoej", "G.I. Joe (Japan, JAA)", + "gijoeu", "G.I. Joe (US, UAB)", + "gimeabrk", "Gimme A Break (7/7/85)", + "ginganin", "Ginga NinkyouDen (set 1)", + "ginganina", "Ginga NinkyouDen (set 2)", + "ginkun", "Ganbare Ginkun", + "gionbana", "Gionbana (Japan 890120)", + "girotutt", "GiroTutto", + "gjspace", "Gekitoride-Jong Space (10011 Ver.A)", + "gl_coc", "Carry On Clubbin' (Global) (v3.0) (Stealth)", + "gl_coc29", "Carry On Clubbin' (Global) (v2.9) (Stealth)", + "gl_coc29p", "Carry On Clubbin' (Global) (v2.9 Protocol) (Stealth)", + "gl_cocp", "Carry On Clubbin' (Global) (v3.0 Protocol) (Stealth)", + "gl_dow", "Deals On Wheels (Global) (v1.4) (Stealth)", + "gl_dowcl", "Deals On Wheels Club (Global) (v1.6) (Stealth)", + "gl_dowclp", "Deals On Wheels Club (Global) (v1.6 Protocol) (Stealth)", + "gl_dowp", "Deals On Wheels (Global) (v1.4 Protocol) (Stealth)", + "gl_grncl", "Grid Runner Club (Global) (Stealth?) (set 1)", + "gl_grncla", "Grid Runner Club (Global) (Stealth?) (set 2)", + "gl_hbh", "Heartbreak Hotel (Global) (v1.0) (Stealth)", + "gl_hbhcl", "Heartbreak Hotel Club (Global) (v1.9) (Stealth)", + "gl_hbhcla", "Heartbreak Hotel Club (Global) (Set 2) (Stealth)", + "gl_hbhclp", "Heartbreak Hotel Club (Global) (v1.9 Protocol) (Stealth)", + "gl_snbev", "Saturday Night Beaver (Global) (Stealth?) (set 1)", + "gl_snbeva", "Saturday Night Beaver (Global) (Stealth?) (set 2)", + "gl_uyr", "Up Yer Riggin Club (Global) (v2.8) (Stealth)", + "gl_uyrp", "Up Yer Riggin Club (Global) (v2.8 Protocol) (Stealth)", + "gl_wywh", "Wish You Were Here Club (Global) (v2.9) (Stealth)", + "gl_wywh24", "Wish You Were Here Club (Global) (v2.4) (Stealth)", + "gl_wywh24p", "Wish You Were Here Club (Global) (v2.4 Protocol) (Stealth)", + "gl_wywhp", "Wish You Were Here Club (Global) (v2.9 Protocol) (Stealth)", + "gladiatp", "Gladiators", + "gladiatr", "Gladiator (US)", + "glass", "Glass (Ver 1.1)", + "glass10", "Glass (Ver 1.0)", + "glassbrk", "Glass (Ver 1.0, Break Edition)", + "gldarrow", "Golden Arrow (Standard G8-03)", + "gldncrwn", "Golden Crown (Dutch, Game Card 95-752-011)", + "gldneye", "Goldeneye", + "gldnpkr", "Golden Poker (8VXEC037, New Zealand)", + "glfgreat", "Golfing Greats", + "glfgreatj", "Golfing Greats (Japan)", + "gloc", "G-LOC Air Battle (US)", + "glocr360", "G-LOC R360", + "glpracr", "Gallop Racer (English Ver 10.17.K)", + "glpracr2", "Gallop Racer 2 (USA)", + "glpracr2j", "Gallop Racer 2 (Japan)", + "glpracr2l", "Gallop Racer 2 Link HW (Japan)", + "glpracr3", "Gallop Racer 3 (Japan)", + "glpracrj", "Gallop Racer (Japanese Ver 9.01.12)", + "gluck2", "Good Luck II", + "gmahou", "Great Mahou Daisakusen (Japan 000121)", + "gmgalax", "Ghostmuncher Galaxian (bootleg)", + "gmine_l2", "Gold Mine (Shuffle) (L-2)", + "gmissile", "Guided Missile", + "gnbarich", "Gunbarich", + "gng", "Ghosts'n Goblins (World? set 1)", + "gnga", "Ghosts'n Goblins (World? set 2)", + "gngbl", "Ghosts'n Goblins (bootleg with Cross)", + "gngblita", "Ghosts'n Goblins (Italian bootleg, harder)", + "gngc", "Ghosts'n Goblins (World? set 3)", + "gngprot", "Ghosts'n Goblins (prototype)", + "gngt", "Ghosts'n Goblins (US)", + "gnome", "Gnome (070906 Russia)", + "gnome_10", "Gnome (100326 Lottery)", + "gnome_11", "Gnome (100326 Entertainment)", + "gnome_12", "Gnome (100326 Russia)", + "gnome_2", "Gnome (071115 Russia)", + "gnome_2a", "Gnome (bootleg, 071115, banking address hack)", + "gnome_3", "Gnome (080303 World)", + "gnome_3a", "Gnome (bootleg, 080303, banking address hack)", + "gnome_3b", "Gnome (bootleg, 080303, banking address hack, payout percentage 45)", + "gnome_3c", "Gnome (bootleg, 080303, banking address hack, payout percentage 60)", + "gnome_4", "Gnome (090402 Russia)", + "gnome_5", "Gnome (090406 World)", + "gnome_5a", "Gnome (bootleg, 090406, banking address hack, payout percentage 70)", + "gnome_5b", "Gnome (bootleg, 090406, LOTTOGAME (I))", + "gnome_7", "Gnome (090708 Lottery)", + "gnome_9", "Gnome (100326 World)", + "gnomea", "Gnome (bootleg, 070906, banking address hack set 1)", + "gnomeb", "Gnome (bootleg, 070906, banking address hack set 2)", + "gnomec", "Gnome (bootleg, 070906, banking address hack set 3)", + "gnomed", "Gnome (bootleg, 070906, VIDEO GAME-1 GN01)", + "gnomee", "Gnome (bootleg, 070906, LOTOS GN01)", + "gnr_300", "Guns N Roses (3.00)", + "go2000", "Go 2000", + "goal92", "Goal! '92", + "goaltogo", "Goal To Go", + "goalx3", "Goal! Goal! Goal!", + "gobyrc", "Go By RC (V2.03O)", + "godzilla", "Godzilla (Japan)", + "godzillp", "Godzilla (Pinball)", + "gogold", "Go For The Gold (Japan)", + "gogomile", "Go Go! Mile Smile", + "gogomilej", "Susume! Mile Smile (Japan)", + "goindol", "Goindol (World)", + "goindolk", "Goindol (Korea)", + "goindolu", "Goindol (US)", + "goinnuts", "Goin' Nuts", + "goketsuj", "Goketsuji Ichizoku: Matsuri Senzo Kuyou (v200906230)", + "gokuparo", "Gokujyou Parodius (ver JAD)", + "goldball", "Gold Ball (set 1)", + "goldballn", "Gold Ball (set 2)", + "goldbug", "Gold Bug", + "goldcity", "Gold City (Russia) (Atronic)", + "goldcue", "Golden Cue", + "goldenc", "Golden Canaries (1VXFC5462, New Zealand)", + "goldfish", "Gold Fish (020903, prototype)", + "goldfrui", "Gold Fruit", + "goldgame", "Golden Game (Bingo)", + "goldgkit1", "Golden Game Kit 1 Generation (Bingo)", + "goldgkitb", "Golden Game Kit Bingo Stake 6/10 (Bingo)", + "goldglen", "Golden Glenn (Russia) (Atronic)", + "goldgnew", "Golden Game Bingo New (Bingo)", + "goldgstake", "Golden Game Bingo Stake 6/10 (Bingo)", + "goldmedl", "Gold Medalist (set 1)", + "goldmedla", "Gold Medalist (set 2)", + "goldmedlb", "Gold Medalist (bootleg)", + "goldnaxe", "Golden Axe (set 6, US, 8751 317-123A)", + "goldnaxe1", "Golden Axe (set 1, World, FD1094 317-0110)", + "goldnaxe2", "Golden Axe (set 2, US, 8751 317-0112)", + "goldnaxe3", "Golden Axe (set 3, World, FD1094 317-0120)", + "goldnaxeb1", "Golden Axe (encrypted bootleg)", + "goldnaxeb2", "Golden Axe (bootleg)", + "goldnaxej", "Golden Axe (set 4, Japan, FD1094 317-0121)", + "goldnaxeu", "Golden Axe (set 5, US, FD1094 317-0122)", + "goldnpkb", "Golden Poker Double Up (Mini Boy)", + "goldnpkr", "Golden Poker Double Up (Big Boy)", + "goldprmd", "Golden Pyramids (MV4091, USA)", + "goldstar", "Golden Star", + "goldstbl", "Golden Star (Blue version)", + "goldwing", "Gold Wings", + "golgo13", "Golgo 13 (Japan, GLG1/VER.A)", + "gollygho", "Golly! Ghost!", + "gomoku", "Gomoku Narabe Renju", + "gondo", "Gondomania (US)", + "gonefsh2", "Gone Fishing 2", + "good", "Good (Korea)", + "goodejan", "Good E Jong -Kachinuki Mahjong Syoukin Oh!!- (set 1)", + "goodejana", "Good E Jong -Kachinuki Mahjong Syoukin Oh!!- (set 2)", + "goodluck", "Good Luck", + "goonies", "Vs. The Goonies (set E)", + "gorf", "Gorf", + "gorfpgm1", "Gorf (program 1)", + "gorfpgm1g", "Gorf (program 1, with German Language ROM)", + "gork", "Gork", + "gorkans", "Gorkans", + "gotcha", "Got-cha Mini Game Festival", + "gotya", "Got-Ya (12/24/1981, prototype?)", + "gowcaizr", "Voltage Fighter - Gowcaizer / Choujin Gakuen Gowcaizer", + "gp2quiz", "Gals Panic II - Quiz Version", + "gp2se", "Gals Panic II' - Special Edition (Japan)", + "gp98", "Grand Prix '98 (V100K)", + "gp_110", "Model 110", + "gpgolf", "Golden Par Golf (Joystick, V1.1)", + "gpilots", "Ghost Pilots (NGM-020)(NGH-020)", + "gpilotsh", "Ghost Pilots (NGH-020)(US)", + "gprider", "GP Rider (World, FD1094 317-0163)", + "gpriderj", "GP Rider (Japan, FD1094 317-0161)", + "gprideru", "GP Rider (US, FD1094 317-0162)", + "gprix", "Grand Prix (4.50)", + "gprix_301", "Grand Prix (3.01)", + "gprix_340", "Grand Prix (3.40)", + "gprix_350", "Grand Prix (3.50)", + "gprix_352", "Grand Prix (3.52)", + "gprix_400", "Grand Prix (4.00)", + "gprixf", "Grand Prix (4.50 France)", + "gprixf_301", "Grand Prix (3.01 France)", + "gprixf_340", "Grand Prix (3.40 France)", + "gprixf_350", "Grand Prix (3.50 France)", + "gprixf_352", "Grand Prix (3.52 France)", + "gprixf_400", "Grand Prix (4.00 France)", + "gprixg", "Grand Prix (4.50 Germany)", + "gprixg_301", "Grand Prix (3.01 Germany)", + "gprixg_340", "Grand Prix (3.40 Germany)", + "gprixg_350", "Grand Prix (3.50 Germany)", + "gprixg_352", "Grand Prix (3.52 Germany)", + "gprixg_400", "Grand Prix (4.00 Germany)", + "gprixi", "Grand Prix (4.50 Italy)", + "gprixi_301", "Grand Prix (3.01 Italy)", + "gprixi_340", "Grand Prix (3.40 Italy)", + "gprixi_350", "Grand Prix (3.50 Italy)", + "gprixi_352", "Grand Prix (3.52 Italy)", + "gprixi_400", "Grand Prix (4.00 Italy)", + "gprixl", "Grand Prix (4.50 Spain)", + "gprixl_301", "Grand Prix (3.01 Spain)", + "gprixl_340", "Grand Prix (3.40 Spain)", + "gprixl_350", "Grand Prix (3.50 Spain)", + "gprixl_352", "Grand Prix (3.52 Spain)", + "gprixl_400", "Grand Prix (4.00 Spain)", + "gpworld", "GP World", + "gq863", "Twinkle System", + "gradius", "Gradius (Japan, ROM version)", + "gradius2", "Gradius II - GOFER no Yabou (Japan New Ver.)", + "gradius2a", "Gradius II - GOFER no Yabou (Japan Old Ver.)", + "gradius2b", "Gradius II - GOFER no Yabou (Japan Older Ver.)", + "gradius3", "Gradius III (World, program code R)", + "gradius3a", "Gradius III (Asia)", + "gradius3j", "Gradius III (Japan, program code S)", + "gradius4", "Gradius 4: Fukkatsu", + "grainbow", "SD Gundam Sangokushi Rainbow Tairiku Senki", + "gram2000", "Giant Gram 2000 (JPN, USA, EXP, KOR, AUS)", + "grancan", "Grand Canyon (Russia) (Extrema)", + "grancapi", "Gran Capitan (Version 3)", + "grand_l4", "Grand Lizard (L-4)", + "grandprx", "Grand Prix", + "granny", "Granny and the Gators", + "granslam", "Grand Slam", + "granslam4", "Grand Slam (4 Players)", + "grasspin", "Grasspin", + "gratia", "Gratia - Second Earth (92047-01 version)", + "gratiaa", "Gratia - Second Earth (91022-10 version)", + "gravitar", "Gravitar (version 3)", + "gravitar2", "Gravitar (version 2)", + "gravp", "Gravitar (prototype)", + "grchamp", "Grand Champion", + "grdforce", "Guardian Force (JUET 980318 V0.105)", + "grdian", "Guardian (US)", + "grdians", "Guardians / Denjin Makai II", + "grdnstrm", "Guardian Storm (horizontal, not encrypted)", + "grdnstrmg", "Guardian Storm (Germany)", + "grdnstrmk", "Jeon Sin - Guardian Storm (Korea)", + "grdnstrmv", "Guardian Storm (vertical)", + "greatgun", "Great Guns", + "greatgur", "Great Gurianos (Japan?)", + "greenber", "Green Beret (Irem)", + "grescue", "Galaxy Rescue", + "grgar_l1", "Gorgar (L-1)", + "grgar_t1", "Gorgar (T-1)", + "gridiron", "Gridiron Fight", + "gridlee", "Gridlee", + "griffon", "Griffon (bootleg of Phoenix)", + "grindstm", "Grind Stormer", + "grindstma", "Grind Stormer (older set)", + "grmatch", "Grudge Match (Yankee Game Technology)", + "grndtour", "Grand Tour", + "grobda", "Grobda (New Ver.)", + "grobda2", "Grobda (Old Ver. set 1)", + "grobda3", "Grobda (Old Ver. set 2)", + "groovef", "Groove on Fight - Gouketsuji Ichizoku 3 (J 970416 V1.001)", + "groundfx", "Ground Effects / Super Ground Effects (Japan)", + "growl", "Growl (World)", + "growlp", "Growl (World, prototype)", + "growlu", "Growl (US)", + "grtesoro", "Gran Tesoro? / Play 2000 (v5.01) (Italy)", + "grtesoro4", "Gran Tesoro? / Play 2000 (v4.0) (Italy)", + "grudge", "Grudge Match (prototype)", + "gryzor", "Gryzor (set 1)", + "gryzor1", "Gryzor (set 2)", + "gs4002", "Selection (Version 40.02TMB, set 1)", + "gs4002a", "Selection (Version 40.02TMB, set 2)", + "gs_l3", "The Bally Game Show (L-3)", + "gs_l4", "The Bally Game Show (L-4)", + "gseeker", "Grid Seeker: Project Storm Hammer (Ver 1.3O)", + "gseekerj", "Grid Seeker: Project Storm Hammer (Ver 1.3J)", + "gseekeru", "Grid Seeker: Project Storm Hammer (Ver 1.3A)", + "gslgr94j", "Great Sluggers '94 (Japan)", + "gslgr94u", "Great Sluggers '94", + "gslugrsj", "Great Sluggers (Japan)", + "gstream", "G-Stream G2020", + "gstrik2", "Grand Striker 2 (Europe and Oceania)", + "gstrik2j", "Grand Striker 2 (Japan)", + "gstriker", "Grand Striker", + "gstrikera", "Grand Striker (Americas)", + "gstrikerj", "Grand Striker (Japan)", + "gsword", "Great Swordsman (World?)", + "gsword2", "Great Swordsman (Japan?)", + "gt103a1", "Trivia (Unsorted question roms)", + "gt103aa", "Trivia (Version 1.03a Alt questions 1)", + "gt103ab", "Trivia (Version 1.03a Alt questions 2)", + "gt103asx", "Trivia (Version 1.03a Sex questions)", + "gt2k", "Golden Tee 2K (v1.00)", + "gt2kp100", "Golden Tee 2K (v1.00) (alt protection)", + "gt2ks100", "Golden Tee 2K (v1.00S)", + "gt2kt500", "Golden Tee 2K Tournament (v5.00)", + "gt3d", "Golden Tee 3D Golf (v1.93N)", + "gt3dl19", "Golden Tee 3D Golf (v1.9L)", + "gt3dl191", "Golden Tee 3D Golf (v1.91L)", + "gt3dl192", "Golden Tee 3D Golf (v1.92L)", + "gt3ds192", "Golden Tee 3D Golf (v1.92S)", + "gt3dt211", "Golden Tee 3D Golf Tournament (v2.11)", + "gt3dt231", "Golden Tee 3D Golf Tournament (v2.31)", + "gt3dv14", "Golden Tee 3D Golf (v1.4)", + "gt3dv15", "Golden Tee 3D Golf (v1.5)", + "gt3dv16", "Golden Tee 3D Golf (v1.6)", + "gt3dv17", "Golden Tee 3D Golf (v1.7)", + "gt3dv18", "Golden Tee 3D Golf (v1.8)", + "gt507uk", "Trivia (UK Version 5.07)", + "gt97", "Golden Tee '97 (v1.30)", + "gt97s121", "Golden Tee '97 (v1.21S)", + "gt97t240", "Golden Tee '97 Tournament (v2.40)", + "gt97t243", "Golden Tee '97 Tournament (v2.43)", + "gt97v120", "Golden Tee '97 (v1.20)", + "gt97v121", "Golden Tee '97 (v1.21)", + "gt97v122", "Golden Tee '97 (v1.22)", + "gt98", "Golden Tee '98 (v1.10)", + "gt98s100", "Golden Tee '98 (v1.00S)", + "gt98t303", "Golden Tee '98 Tournament (v3.03)", + "gt98v100", "Golden Tee '98 (v1.00)", + "gt99", "Golden Tee '99 (v1.00)", + "gt99s100", "Golden Tee '99 (v1.00S)", + "gt99t400", "Golden Tee '99 Tournament (v4.00)", + "gtclassc", "Golden Tee Classic (v1.00)", + "gtclasscp", "Golden Tee Classic (v1.00) (alt protection)", + "gtclasscs", "Golden Tee Classic (v1.00S)", + "gtdiamond", "Golden Tee Diamond Edition Tournament (v3.05T ELC)", + "gteikob2", "Gingateikoku No Gyakushu (bootleg set 2)", + "gteikokb", "Gingateikoku No Gyakushu (bootleg set 1)", + "gteikoku", "Gingateikoku No Gyakushu", + "gtfore02", "Golden Tee Fore! 2002 (v2.01.04 UMV)", + "gtfore02o", "Golden Tee Fore! 2002 (v2.00.00)", + "gtfore04", "Golden Tee Fore! 2004", + "gtfore05", "Golden Tee Fore! 2005", + "gtfrk10m", "Guitar Freaks 10th Mix (G*D10 VER. JAB)", + "gtfrk10ma", "Guitar Freaks 10th Mix (G*D10 VER. JAA)", + "gtfrk10mb", "Guitar Freaks 10th Mix eAmusement (G*D10 VER. JBA)", + "gtfrk11m", "Guitar Freaks 11th Mix (G*D39 VER. JAA)", + "gtfrk3ma", "Guitar Freaks 3rd Mix (GE949 VER. JAB)", + "gtfrk3mb", "Guitar Freaks 3rd Mix - security cassette versionup (949JAZ02)", + "gtg", "Golden Tee Golf (Joystick, v3.1)", + "gtg2", "Golden Tee Golf II (Trackball, V2.2)", + "gtg2j", "Golden Tee Golf II (Joystick, V1.0)", + "gtg2t", "Golden Tee Golf II (Trackball, V1.1)", + "gtgt", "Golden Tee Golf (Trackball, v2.0)", + "gtgt1", "Golden Tee Golf (Trackball, v1.0)", + "gticlub", "GTI Club (ver EAA)", + "gticlub2", "GTI Club 2 (ver JAB)", + "gticlub2ea", "GTI Club 2 (ver EAA)", + "gticluba", "GTI Club (ver AAA)", + "gticlubj", "GTI Club (ver JAA)", + "gticlubu", "GTI Club (ver UAA)", + "gtipoker", "GTI Poker", + "gtipokra", "GTI Poker? (SMS hardware)", + "gtmr", "1000 Miglia: Great 1000 Miles Rally (94/07/18)", + "gtmr2", "Mille Miglia 2: Great 1000 Miles Rally (95/05/24)", + "gtmr2a", "Mille Miglia 2: Great 1000 Miles Rally (95/04/04)", + "gtmr2u", "Great 1000 Miles Rally 2 USA (95/05/18)", + "gtmra", "1000 Miglia: Great 1000 Miles Rally (94/06/13)", + "gtmre", "Great 1000 Miles Rally: Evolution Model!!! (94/09/06)", + "gtmrusa", "Great 1000 Miles Rally: U.S.A Version! (94/09/06)", + "gtrfrk2m", "Guitar Freaks 2nd Mix Ver 1.01 (GQ883 VER. JAD)", + "gtrfrk3m", "Guitar Freaks 3rd Mix (GE949 VER. JAC)", + "gtrfrk4m", "Guitar Freaks 4th Mix (G*A24 VER. JAA)", + "gtrfrk5m", "Guitar Freaks 5th Mix (G*A26 VER. JAA)", + "gtrfrk6m", "Guitar Freaks 6th Mix (G*B06 VER. JAA)", + "gtrfrk7m", "Guitar Freaks 7th Mix (G*B17 VER. JAA)", + "gtrfrk8m", "Guitar Freaks 8th Mix power-up ver. (G*C08 VER. JBA)", + "gtrfrk8ma", "Guitar Freaks 8th Mix (G*C08 VER. JAA)", + "gtrfrk9m", "Guitar Freaks 9th Mix (G*C39 VER. JAA)", + "gtrfrks", "Guitar Freaks (GQ886 VER. EAC)", + "gtrfrksa", "Guitar Freaks (GQ886 VER. AAC)", + "gtrfrksj", "Guitar Freaks (GQ886 VER. JAC)", + "gtrfrksu", "Guitar Freaks (GQ886 VER. UAC)", + "gtroppo", "Gone Troppo (1VXEC542, New Zealand)", + "gtroyal", "Golden Tee Royal Edition Tournament (v4.02T EDM)", + "gts1", "System 1", + "gts1s", "System 1 with sound board", + "gtsers1", "Trivia (Questions Series 1)", + "gtsers10", "Trivia (Questions Series 10)", + "gtsers10a", "Trivia (Questions Series 10 Alt Question Rom)", + "gtsers11", "Trivia (Questions Series 11)", + "gtsers11a", "Trivia (Questions Series 11 Alt Question Rom)", + "gtsers12", "Trivia (Questions Series 12)", + "gtsers14", "Trivia (Questions Series 14)", + "gtsers15", "Trivia (Questions Series 15)", + "gtsers2", "Trivia (Questions Series 2)", + "gtsers3", "Trivia (Questions Series 3)", + "gtsers4", "Trivia (Questions Series 4)", + "gtsers5", "Trivia (Questions Series 5)", + "gtsers7", "Trivia (Questions Series 7)", + "gtsers8", "Trivia (Questions Series 8)", + "gtsers9", "Trivia (Questions Series 9)", + "gtsersa", "Trivia (Alt revision questions set 1)", + "gtsersb", "Trivia (Alt revision questions set 2)", + "gtsupreme", "Golden Tee Supreme Edition Tournament (v5.10T ELC S)", + "guab", "Give us a Break (3rd edition)", + "guab21", "Give us a Break (21st edition)", + "guab3a", "Give us a Break (3rd edition alt?)", + "guab4", "Give us a Break (4th edition)", + "guab43", "Give us a Break (43rd edition)", + "guab6", "Give us a Break (6th edition)", + "guab6a", "Give us a Break (6th edition alt?)", + "guab7", "Give us a Break (7th edition)", + "guardian", "Guardians of the 'Hood", + "guiness", "The Guiness (Japan)", + "gulfstrm", "Gulf Storm (set 1)", + "gulfstrma", "Gulf Storm (set 2)", + "gulfstrmb", "Gulf Storm (set 3)", + "gulfstrmm", "Gulf Storm (Media Shoji)", + "gulfwar2", "Gulf War II (set 1)", + "gulfwar2a", "Gulf War II (set 2)", + "gumbo", "Gumbo", + "gunbalina", "Gunbalina (Japan, GNN1 Ver.A)", + "gunball", "Gun Ball (Japan)", + "gunbarl", "Gunbarl (Japan, GNB4/VER.A)", + "gunbird", "Gunbird (World)", + "gunbird2", "Gunbird 2", + "gunbirdj", "Gunbird (Japan)", + "gunbirdk", "Gunbird (Korea)", + "gunblade", "Gunblade NY (Revision A)", + "gunbuletj", "Gun Bullet (Japan, GN1)", + "gunbuletw", "Gun Bullet (World, GN3 Rev B)", + "gunbustr", "Gunbuster (World)", + "gunbustrj", "Gunbuster (Japan)", + "gunbustru", "Gunbuster (US)", + "gunchamp", "Gun Champ", + "gunchamps", "Gun Champ (newer, Super Shot hardware)", + "gundamex", "Mobile Suit Gundam EX Revue", + "gundamos", "Gundam Battle Operating Simulator (GDX-0013)", + "gundealr", "Gun Dealer", + "gundealra", "Gun Dealer (alt card set)", + "gundealrt", "Gun Dealer (Japan)", + "gundhara", "Gundhara", + "gundl94", "Gun Dealer '94", + "gundmct", "Mobile Suit Gundam: Federation Vs. Zeon (2001-02-08)", + "gundmgd", "Mobile Suit Gundam: Federation Vs. Zeon (GDL-0001)", + "gundmxgd", "Mobile Suit Gundam: Federation Vs. Zeon DX (GDL-0006)", + "gundzaft", "Gundam Seed: Federation vs. Z.A.F.T. (SED1 Ver. A)", + "gunfight", "Gun Fight (set 1)", + "gunfighto", "Gun Fight (set 2)", + "gunforc2", "Gun Force II (US)", + "gunforce", "Gunforce - Battle Fire Engulfed Terror Island (World)", + "gunforcej", "Gunforce - Battle Fire Engulfed Terror Island (Japan)", + "gunforceu", "Gunforce - Battle Fire Engulfed Terror Island (US)", + "gunfront", "Gun & Frontier (World)", + "gunfrontj", "Gun Frontier (Japan)", + "gunhard", "Gun Hard (Japan)", + "gunhohki", "Mahou Keibitai Gun Hohki (Japan)", + "gunlock", "Gunlock (Ver 2.3O 1994/01/20)", + "gunman", "Gunman [TTL]", + "gunmania", "GunMania (GL906 VER. JAA)", + "gunmast", "Gun Master", + "gunnail", "GunNail (28th May. 1992)", + "gunnrose", "Guns and Roses (C606191SMP, Australia)", + "gunpey", "Gunpey (Japan)", + "gunsmoke", "Gun.Smoke (World)", + "gunsmokej", "Gun.Smoke (Japan)", + "gunsmokeu", "Gun.Smoke (US set 1)", + "gunsmokeua", "Gun.Smoke (US set 2)", + "gunsur2", "Gun Survivor 2 Biohazard Code: Veronica (BHF1 Ver. E)", + "gunsur2e", "Gun Survivor 2 Biohazard Code: Veronica (BHF2 Ver. E)", + "gunwars", "Gunmen Wars (GM1 Ver. B)", + "gunwarsa", "Gunmen Wars (GM1 Ver. A)", + "gururin", "Gururin", + "gussun", "Gussun Oyoyo (Japan)", + "gutangtn", "Guttang Gottong", + "guts", "Guts n' Glory (prototype)", + "gutsn", "Guts'n (Japan)", + "guttangt", "Guttang Gottong (bootleg on Galaxian type hardware)", + "guwange", "Guwange (Japan, Master Ver. 99/06/24)", + "guwanges", "Guwange (Japan, Special Ver. 00/07/07)", + "guzzler", "Guzzler", + "guzzlers", "Guzzler (Swimmer Conversion)", + "gvrxpsup", "Global VR XP OS Update/Install - 06/11/02", + "gvrxpsys", "Global VR XP OS Install - 09/30/01", + "gw_l1", "The Getaway: High Speed II (L-1)", + "gw_l2", "The Getaway: High Speed II (L-2)", + "gw_l3", "The Getaway: High Speed II (L-3)", + "gw_l5", "The Getaway: High Speed II (L-5)", + "gw_p7", "The Getaway: High Speed II (P-7)", + "gw_pc", "The Getaway: High Speed II (P-C)", + "gwar", "Guerrilla War (US)", + "gwara", "Guerrilla War (Version 1)", + "gwarb", "Guerrilla War (Joystick hack bootleg)", + "gwarfare", "Global Warfare", + "gwarj", "Guevara (Japan)", + "gwarrior", "Galactic Warriors", + "gwing2", "Giga Wing 2 (JPN, USA, EXP, KOR, AUS)", + "gwinggen", "Giga Wing Generations (v2.02J)", + "gypmagic", "Gypsy Magic (Konami Endeavour)", + "gypsyjug", "Gypsy Juggler", + "gyrodine", "Gyrodine", + "gyrodinet", "Gyrodine (Taito Corporation license)", + "gyruss", "Gyruss", + "gyrussb", "Gyruss (bootleg?)", + "gyrussce", "Gyruss (Centuri)", + "hachamf", "Hacha Mecha Fighter (19th Sep. 1991)", + "hacher", "Hacher (hack of Win Win Bingo)", + "hachoo", "Hachoo!", + "haekaka", "Hae Hae Ka Ka Ka", + "hal21", "HAL21", + "hal21j", "HAL21 (Japan)", + "halley", "Halley Comet", + "halley87", "Halley's Comet '87", + "halleycj", "Halley's Comet (Japan, Older)", + "halleys", "Halley's Comet (US)", + "halleysc", "Halley's Comet (Japan, Newer)", + "hammer", "Hammer", + "hanaawas", "Hana Awase", + "hanagumi", "Sakura Taisen - Hanagumi Taisen Columns (J 971007 V1.010)", + "hanakanz", "Hana Kanzashi (Japan)", + "hanamai", "Hana no Mai (Japan)", + "hanamomb", "Mahjong Hana no Momoko gumi (Japan 881125)", + "hanamomo", "Mahjong Hana no Momoko gumi (Japan 881201)", + "hanaoji", "Hana to Ojisan [BET] (Japan 911209)", + "hanaroku", "Hanaroku", + "hanayara", "Hana wo Yaraneba! (Japan)", + "hangly", "Hangly-Man (set 1)", + "hangly2", "Hangly-Man (set 2)", + "hangly3", "Hangly-Man (set 3)", + "hangman", "Hangman", + "hangon", "Hang-On (Rev A)", + "hangon1", "Hang-On", + "hangon2", "Hang-On (ride-on)", + "hangonjr", "Hang-On Jr.", + "hangplt", "Hang Pilot (ver JAB)", + "hangpltu", "Hang Pilot (ver UAA)", + "happy6", "Happy 6-in-1 (ver. 102CN)", + "happy6101", "Happy 6-in-1 (ver. 101CN)", + "hapytour", "Happy Tour", + "hardbody", "Hardbody", + "hardbodyg", "Hardbody (German)", + "harddriv", "Hard Drivin' (cockpit, rev 7)", + "harddriv1", "Hard Drivin' (cockpit, rev 1)", + "harddriv2", "Hard Drivin' (cockpit, rev 2)", + "harddriv3", "Hard Drivin' (cockpit, rev 3)", + "harddrivb", "Hard Drivin' (cockpit, British, rev 7)", + "harddrivb5", "Hard Drivin' (cockpit, British, rev 5)", + "harddrivb6", "Hard Drivin' (cockpit, British, rev 6)", + "harddrivc", "Hard Drivin' (compact, rev 2)", + "harddrivc1", "Hard Drivin' (compact, rev 1)", + "harddrivcb", "Hard Drivin' (compact, British, rev 2)", + "harddrivcg", "Hard Drivin' (compact, German, rev 2)", + "harddrivg", "Hard Drivin' (cockpit, German, rev 7)", + "harddrivg4", "Hard Drivin' (cockpit, German, rev 4)", + "harddrivj", "Hard Drivin' (cockpit, Japan, rev 7)", + "harddrivj6", "Hard Drivin' (cockpit, Japan, rev 6)", + "harddunk", "Hard Dunk (World)", + "harddunkj", "Hard Dunk (Japan)", + "hardhat", "Hard Hat", + "hardhea2", "Hard Head 2 (v2.0)", + "hardhead", "Hard Head", + "hardheadb", "Hard Head (bootleg)", + "hardyard", "Hard Yardage (v1.20)", + "hardyard10", "Hard Yardage (v1.00)", + "harem", "Harem", + "haremchl", "Harem Challenge", + "harl_a10", "Harley Davidson (1.03 Display rev. 1.00)", + "harl_a13", "Harley Davidson (1.03)", + "harl_a18", "Harley Davidson (1.08)", + "harl_a30", "Harley Davidson (3.00)", + "harl_a40", "Harley Davidson (4.00)", + "harl_f13", "Harley Davidson (1.03 France)", + "harl_f18", "Harley Davidson (1.08 France)", + "harl_f30", "Harley Davidson (3.00 France)", + "harl_f40", "Harley Davidson (4.00 France)", + "harl_g13", "Harley Davidson (1.03 Germany)", + "harl_g18", "Harley Davidson (1.08 Germany)", + "harl_g30", "Harley Davidson (3.00 Germany)", + "harl_g40", "Harley Davidson (4.00 Germany)", + "harl_i13", "Harley Davidson (1.03 Italy)", + "harl_i18", "Harley Davidson (1.08 Italy)", + "harl_i30", "Harley Davidson (3.00 Italy)", + "harl_i40", "Harley Davidson (4.00 Italy)", + "harl_l13", "Harley Davidson (1.03 Spain)", + "harl_l18", "Harley Davidson (1.08 Spain)", + "harl_l30", "Harley Davidson (3.00 Spain)", + "harl_l40", "Harley Davidson (4.00 Spain)", + "harley", "Harley-Davidson and L.A. Riders (Revision B)", + "harleya", "Harley-Davidson and L.A. Riders (Revision A)", + "hasamu", "Hasamu (Japan)", + "hatena", "Adventure Quiz 2 - Hatena? no Daibouken (Japan 900228)", + "hatris", "Hatris (US)", + "hatrisj", "Hatris (Japan)", + "hattrick", "Hat Trick", + "haunthig", "Haunted House (IGS)", + "hawaii", "Hawaii (Russia)", + "hawkman", "Hawkman", + "hawkman1", "Hawkman (alternate set)", + "hayaosi1", "Hayaoshi Quiz Ouza Ketteisen - The King Of Quiz", + "hayaosi2", "Hayaoshi Quiz Grand Champion Taikai", + "hayaosi3", "Hayaoshi Quiz Nettou Namahousou", + "hb_bar7", "Bar Seven (Fairgames) (set 1)", + "hb_bar7a", "Bar Seven (Fairgames) (set 2)", + "hb_bigx", "Big X (JPM) (set 1)", + "hb_bigxa", "Big X (JPM) (set 2)", + "hb_bigxb", "Big X (JPM) (set 3)", + "hb_bigxc", "Big X (JPM) (set 4)", + "hb_bigxd", "Big X (JPM) (set 5)", + "hb_cashc", "Cash Crusade (Qps) (set 1)", + "hb_cashca", "Cash Crusade (Qps) (set 2)", + "hb_cashcb", "Cash Crusade (Qps) (set 3)", + "hb_cashx", "Cash X (Fairgames) (set 1)", + "hb_cashxa", "Cash X (Fairgames) (set 2)", + "hb_ccow", "Cash Cow (Qps) (set 1)", + "hb_ccowa", "Cash Cow (Qps) (set 2)", + "hb_ccowb", "Cash Cow (Qps) (set 3)", + "hb_cr", "Cash Raker (Qps) (set 1)", + "hb_cra", "Cash Raker (Qps) (set 2)", + "hb_crb", "Cash Raker (Qps) (set 3)", + "hb_cwf", "Cherry Win Falls (Fairgames) (set 1)", + "hb_cwfa", "Cherry Win Falls (Fairgames) (set 2)", + "hb_dac", "Dough & Arrow Club (Qps, set 1)", + "hb_daca", "Dough & Arrow Club (Qps, set 2)", + "hb_dacb", "Dough & Arrow Club (Qps, set 3)", + "hb_dacc", "Dough & Arrow Club (Qps, set 4)", + "hb_dacd", "Dough & Arrow Club (Qps, set 5)", + "hb_dace", "Dough & Arrow Club (Qps, set 6)", + "hb_dacf", "Dough & Arrow Club (Qps, set 7)", + "hb_dacg", "Dough & Arrow Club (Qps, set 8)", + "hb_dacz", "Dough & Arrow Club (Qps, set 9)", + "hb_frtcl", "Fruitopia Club (Qps) (set 1)", + "hb_frtcla", "Fruitopia Club (Qps) (set 2)", + "hb_frtclb", "Fruitopia Club (Qps) (set 3)", + "hb_frtclc", "Fruitopia Club (Qps) (set 4)", + "hb_frtcld", "Fruitopia Club (Qps) (set 5)", + "hb_frtcle", "Fruitopia Club (Qps) (set 6)", + "hb_frtclf", "Fruitopia Club (Qps) (set 7)", + "hb_frtclg", "Fruitopia Club (Qps) (set 8)", + "hb_frtclh", "Fruitopia Club (Qps) (set 9)", + "hb_frtcli", "Fruitopia Club (Qps) (set 10)", + "hb_frtclj", "Fruitopia Club (Qps) (set 11)", + "hb_frtclk", "Fruitopia Club (Qps) (set 12)", + "hb_frtcll", "Fruitopia Club (Qps) (set 13)", + "hb_frtclm", "Fruitopia Club (Qps) (set 14)", + "hb_frtcln", "Fruitopia Club (Qps) (set 15)", + "hb_gldpl", "Golden Palace (Qps / Mazooma) (set 1)", + "hb_gldpla", "Golden Palace (Qps / Mazooma) (set 2)", + "hb_gldwn", "Golden Winner (Fairgames) (set 1)", + "hb_gldwna", "Golden Winner (Fairgames) (set 2)", + "hb_gpal", "Golden Palace (Qps) (set 1)", + "hb_gpala", "Golden Palace (Qps) (set 2)", + "hb_gpalb", "Golden Palace (Qps) (set 3)", + "hb_gpalc", "Golden Palace (Qps) (set 4)", + "hb_gpald", "Golden Palace (Qps) (set 5)", + "hb_gpale", "Golden Palace (Qps) (set 6)", + "hb_gpalf", "Golden Palace (Qps) (set 7)", + "hb_gpalg", "Golden Palace (Qps) (set 8)", + "hb_gpalh", "Golden Palace (Qps) (set 9)", + "hb_gpali", "Golden Palace (Qps) (set 10)", + "hb_hotst", "Hot Stuff (JPM?) (set 1)", + "hb_hotsta", "Hot Stuff (JPM?) (set 2)", + "hb_hotstb", "Hot Stuff (JPM?) (set 3)", + "hb_hotstc", "Hot Stuff (JPM?) (set 4)", + "hb_hotstd", "Hot Stuff (JPM?) (set 5)", + "hb_hotste", "Hot Stuff (JPM?) (set 6)", + "hb_hotstf", "Hot Stuff (JPM?) (set 7)", + "hb_hotstg", "Hot Stuff (JPM?) (set 8)", + "hb_hotsth", "Hot Stuff (JPM?) (set 9)", + "hb_jailb", "Jail Break (Qps) (set 1)", + "hb_jailba", "Jail Break (Qps) (set 2)", + "hb_jkrwl", "Jokers Wild (Fairgames) (set 1)", + "hb_jkrwla", "Jokers Wild (Fairgames) (set 2)", + "hb_medal", "Medallion Job (Qps)", + "hb_mrmon", "Mr. Money (Qps) (set 1)", + "hb_mrmona", "Mr. Money (Qps) (set 2)", + "hb_mrmonb", "Mr. Money (Qps) (set 3)", + "hb_mrmonc", "Mr. Money (Qps) (set 4)", + "hb_rckrl", "Rock 'n' Roll (Qps) (set 1)", + "hb_rckrla", "Rock 'n' Roll (Qps) (set 2)", + "hb_rckrlb", "Rock 'n' Roll (Qps) (set 3)", + "hb_rckrlc", "Rock 'n' Roll (Qps) (set 4)", + "hb_rckrld", "Rock 'n' Roll (Qps) (set 5)", + "hb_rckrle", "Rock 'n' Roll (Qps) (set 6)", + "hb_rckrlf", "Rock 'n' Roll (Qps) (set 7)", + "hb_rckrlg", "Rock 'n' Roll (Qps) (set 8)", + "hb_rhv", "Red Hot Voucher (Qps) (set 1)", + "hb_rhva", "Red Hot Voucher (Qps) (set 2)", + "hb_ringb", "Ring A Bell (JPM) (set 1)", + "hb_ringba", "Ring A Bell (JPM) (set 2)", + "hb_ringbb", "Ring A Bell (JPM) (set 3)", + "hb_ringbc", "Ring A Bell (JPM) (set 4)", + "hb_ringbd", "Ring A Bell (JPM) (set 5)", + "hb_ringbe", "Ring A Bell (JPM) (set 6)", + "hb_ydd", "Yabba-Dabba-Dough (Qps) (set 1)", + "hb_ydda", "Yabba-Dabba-Dough (Qps) (set 2)", + "hbarrel", "Heavy Barrel (US)", + "hbarrelw", "Heavy Barrel (World)", + "hcastle", "Haunted Castle (version M)", + "hcastlee", "Haunted Castle (version E)", + "hcastlek", "Haunted Castle (version K)", + "hcrash", "Hyper Crash (version D)", + "hcrashc", "Hyper Crash (version C)", + "hd_l1", "Harley Davidson (L-1)", + "hd_l3", "Harley Davidson (L-3)", + "hdrivair", "Hard Drivin's Airborne (prototype)", + "hdrivairp", "Hard Drivin's Airborne (prototype, early rev)", + "headon", "Head On (2 players)", + "headon1", "Head On (1 player)", + "headon2", "Head On 2", + "headon2s", "Head On 2 (Sidam bootleg)", + "headonb", "Head On (bootleg on dedicated hardware)", + "headoni", "Head On (Irem, M-15 Hardware)", + "headonmz", "Head On (bootleg, alt maze)", + "headons", "Head On (Sidam bootleg, set 1)", + "headonsa", "Head On (Sidam bootleg, set 2)", + "heartatk", "Heart Attack", + "heartspd", "Hearts & Spades", + "heatbrl", "Heated Barrel (World version 3)", + "heatbrl2", "Heated Barrel (World version 2)", + "heatbrle", "Heated Barrel (Electronic Devices license)", + "heatbrlo", "Heated Barrel (World old version)", + "heatbrlu", "Heated Barrel (US)", + "heatof11", "Heat of Eleven '98 (ver EAA)", + "heavymtl", "Heavy Metal", + "heberpop", "Hebereke no Popoon (Japan)", + "hedpanic", "Head Panic (ver. 0117, 17/01/2000)", + "hedpanicf", "Head Panic (ver. 0315, 15/03/2000)", + "hedpanico", "Head Panic (ver. 0615, 15/06/1999)", + "heiankyo", "Heiankyo Alien", + "helifire", "HeliFire (set 1)", + "helifirea", "HeliFire (set 2)", + "hellfire", "Hellfire (2P set)", + "hellfire1", "Hellfire (1P set)", + "hellfire1a", "Hellfire (1P set, older)", + "hellfire2a", "Hellfire (2P set, older)", + "hellngt", "Hell Night (ver EAA)", + "herbiedk", "Herbie at the Olympics (DK conversion)", + "hercules", "Hercules", + "hermit", "The Hermit (Ver. 1.14)", + "hero", "Hero", + "herodk", "Hero in the Castle of Doom (DK conversion)", + "herodku", "Hero in the Castle of Doom (DK conversion not encrypted)", + "heuksun", "Heuk Sun Baek Sa (Korea)", + "hexa", "Hexa", + "hexagone", "L'Hexagone", + "hexion", "Hexion (Japan ver JAB)", + "hexpool", "Hex Pool (Shinkai)", + "hexpoola", "Hex Pool (Senko)", + "hg_frd", "Fruit Deuce (Hazel Grove)", + "hginga", "Hanafuda Hana Ginga", + "hgkairak", "Taisen Hot Gimmick Kairakuten (Japan)", + "hglbtrtr", "Harlem Globetrotters On Tour", + "hgokbang", "Hanafuda Hana Gokou Bangaihen (Japan)", + "hgokou", "Hanafuda Hana Gokou (Japan)", + "hh", "Haunted House (Rev. 2)", + "hh_1", "Haunted House (Rev. 1)", + "hharry", "Hammerin' Harry (World)", + "hharryu", "Hammerin' Harry (US)", + "hidctch2", "Hidden Catch 2 (pcb ver 3.03) (Kor/Eng) (AT89c52 protected)", + "hidctch2a", "Hidden Catch 2 (pcb ver 1.00) (Kor/Eng/Jpn/Chi)", + "hidctch3", "Hidden Catch 3 (ver 1.00 / pcb ver 3.05)", + "hideseek", "Hide & Seek", + "hidnc2k", "Hidden Catch 2000 (AT89c52 protected)", + "hidnctch", "Hidden Catch (World) / Tul Lin Gu Lim Chat Ki '98 (Korea) (pcb ver 3.03)", + "higemaru", "Pirate Ship Higemaru", + "highsplt", "Space Fever High Splitter (set 1)", + "highsplta", "Space Fever High Splitter (set 2)", + "highspltb", "Space Fever High Splitter (alt Sound)", + "hiimpact", "High Impact Football (rev LA5 02/15/91)", + "hiimpact1", "High Impact Football (rev LA1 12/16/90)", + "hiimpact2", "High Impact Football (rev LA2 12/26/90)", + "hiimpact3", "High Impact Football (rev LA3 12/27/90)", + "hiimpact4", "High Impact Football (rev LA4 02/04/91)", + "hiimpactp", "High Impact Football (prototype, rev 8.6 12/09/90)", + "hikaru", "Hikaru Bios", + "himesiki", "Himeshikibu (Japan)", + "hipai", "Hi Pai Paradise", + "hippodrm", "Hippodrome (US)", + "hirol_fr", "High Roller Casino (3.00 France)", + "hirol_gr", "High Roller Casino (3.00 Germany)", + "hirol_gr_210", "High Roller Casino (2.10 Germany)", + "hirol_it", "High Roller Casino (3.00 Italy)", + "hirolcas", "High Roller Casino (3.00)", + "hirolcas_210", "High Roller Casino (2.10)", + "hirolcat", "High Roller Casino (3.00) TEST", + "hironew", "High Roller Casino (ARM7 Sound Board)", + "hiryuken", "Hokuha Syourin Hiryu no Ken", + "hishouza", "Hishou Zame (Japan)", + "histryma", "The History of Martial Arts", + "hitice", "Hit the Ice (US)", + "hiticej", "Hit the Ice (Japan)", + "hitme", "Hit Me (set 1)", + "hitme1", "Hit Me (set 2)", + "hitnmiss", "Hit 'n Miss (version 3.0)", + "hitnmiss2", "Hit 'n Miss (version 2.0)", + "hitpoker", "Hit Poker (Bulgaria)", + "hjingi", "Hana Jingi (Japan, Bet)", + "hkagerou", "Hana Kagerou [BET] (Japan)", + "hldspin1", "Hold & Spin I (Version 2.7T, set 1)", + "hldspin1dt", "Hold & Spin I (Version 2.7T, set 2)", + "hldspin1o", "Hold & Spin I (Version 2.5T)", + "hldspin1vt", "Hold & Spin I (Version 2.7T Dual)", + "hldspin2", "Hold & Spin II (Version 2.8R, set 1)", + "hldspin2d1", "Hold & Spin II (Version 2.8R, set 2)", + "hldspin2o", "Hold & Spin II (Version 2.6)", + "hldspin2v1", "Hold & Spin II (Version 2.8R Dual)", + "hlywoodh", "Hollywood Heat", + "hmcompm2", "hiphopmania complete MIX 2 (ver UA-A)", + "hmcompmx", "hiphopmania complete MIX (ver UA-B)", + "hmgeo", "Heavy Metal Geomatrix (JPN, USA, EUR, ASI, AUS) (Rev A)", + "hnageman", "AV Hanafuda Hana no Ageman (Japan 900716)", + "hnayayoi", "Hana Yayoi (Japan)", + "hncholms", "Hunchback Olympic (Scramble hardware)", + "hndlchmp", "Handle Champ (GQ710 VER. JAB)", + "hnfubuki", "Hana Fubuki [BET] (Japan)", + "hng64", "Hyper NeoGeo 64 Bios", + "hngmnjpm", "Hangman (JPM)", + "hngmnjpmd", "Hangman (JPM) (Protocol)", + "hnkochou", "Hana Kochou (Japan, Bet)", + "hnoridur", "Hana Oriduru (Japan)", + "hnxmasev", "AV Hanafuda Hana no Christmas Eve (Japan 901204)", + "hoccer", "Hoccer (set 1)", + "hoccer2", "Hoccer (set 2)", + "hocrash", "Crash (bootleg of Head On)", + "hod", "House of Diamonds", + "hod2bios", "Naomi House of the Dead 2 Bios", + "hoedown", "Hoe Down", + "hogalley", "Vs. Hogan's Alley (set HA4-1 E-1)", + "holeland", "Hole Land", + "holo", "Holosseum (US)", + "homerun", "Moero!! Pro Yakyuu Homerun Kyousou", + "homo", "Homo", + "homura", "Homura (v2.04J)", + "honeydol", "Honey Dolls", + "hook", "Hook (World)", + "hook_401", "Hook (4.01)", + "hook_404", "Hook (4.04)", + "hook_408", "Hook (4.08)", + "hookj", "Hook (Japan)", + "hooku", "Hook (US)", + "hoops", "Hoops", + "hoops95", "Hoops (Europe/Asia 1.7)", + "hoops96", "Hoops '96 (Europe/Asia 2.0)", + "hopmappy", "Hopping Mappy", + "hopper", "SWP Hopper Board", + "hopprobo", "Hopper Robo", + "horekid", "Kid no Hore Hore Daisakusen", + "horekidb", "Kid no Hore Hore Daisakusen (bootleg)", + "horizon", "Horizon (Irem)", + "horshoes", "American Horseshoes (US)", + "hotblock", "Hot Blocks - Tetrix II", + "hotbubl", "Hot Bubble", + "hotchase", "Hot Chase", + "hotd", "House of the Dead", + "hotd2", "House of the Dead 2", + "hotd2o", "House of the Dead 2 (original)", + "hotd2p", "House of the Dead 2 (prototype)", + "hotd3", "The House of the Dead III (GDX-0001)", + "hotdebut", "Quiz de Idol! Hot Debut (Japan)", + "hotdoggn", "Hotdoggin'", + "hotdogst", "Hotdog Storm (International)", + "hotgm4ev", "Taisen Hot Gimmick 4 Ever (Japan)", + "hotgmck", "Taisen Hot Gimmick (Japan)", + "hotgmck3", "Taisen Hot Gimmick 3 Digital Surfing (Japan)", + "hotgmcki", "Mahjong Hot Gimmick Integral (Japan)", + "hotgmkmp", "Taisen Hot Gimmick Mix Party", + "hothand", "Hot Hand", + "hotmemry", "Hot Memory (V1.2, Germany, 12/28/94)", + "hotmemry11", "Hot Memory (V1.1, Germany, 11/30/94)", + "hotmind", "Hot Mind (Hard Times hardware)", + "hotminda", "Hot Mind (adjustable prize)", + "hotmindff", "Hot Mind (Fit of Fighting hardware)", + "hotpinbl", "Hot Pinball", + "hotrod", "Hot Rod (World, 3 Players, Turbo set 1, Floppy Based)", + "hotroda", "Hot Rod (World, 3 Players, Turbo set 2, Floppy Based)", + "hotrodj", "Hot Rod (Japan, 4 Players, Floppy Based)", + "hotshock", "Hot Shocker", + "hotshockb", "Hot Shocker (early revision?)", + "hotshots", "Hot Shots", + "hotslot", "Hot Slot (ver. 05.01)", + "hotslots", "Hot Slots (6.00)", + "hotsmash", "Vs. Hot Smash", + "hotstuff", "Olympic Hot Stuff (TAS 5 Reel System)", + "hottop", "Hot Toppings (Russia)", + "hotwheel", "Hot Wheels", + "hourouki", "Mahjong Hourouki Part 1 - Seisyun Hen (Japan)", + "housemn2", "House Mannequin Roppongi Live hen (Japan 870418)", + "housemnq", "House Mannequin (Japan 870217)", + "howzat", "Howzat!", + "hparadis", "Super Hana Paradise (Japan)", + "hpolym84", "Hyper Olympic '84", + "hpuncher", "Hard Puncher (Japan)", + "hrclass", "Home Run Classic (v1.21 12-feb-1997)", + "hrdtimes", "Hard Times (set 1)", + "hrdtimesa", "Hard Times (set 2)", + "hs_l3", "High Speed (L-3)", + "hs_l4", "High Speed (L-4)", + "hsf2", "Hyper Street Fighter 2: The Anniversary Edition (USA 040202)", + "hsf2a", "Hyper Street Fighter 2: The Anniversary Edition (Asia 040202)", + "hsf2d", "Hyper Street Fighter II: The Anniversary Edition (Asia 040202 Phoenix Edition) (bootleg)", + "hsf2j", "Hyper Street Fighter 2: The Anniversary Edition (Japan 031222)", + "hshavoc", "High Seas Havoc", + "hshot_p8", "Hot Shot Basketball (P-8)", + "hspot2", "Hot Spot 2", + "hspot3", "Hot Spot 3", + "hstennis", "Hot Shots Tennis (V1.1)", + "hstennis10", "Hot Shots Tennis (V1.0)", + "htchctch", "Hatch Catch", + "htengoku", "Hanafuda Hana Tengoku (Japan)", + "hthero", "Hat Trick Hero (Japan)", + "hthero93", "Hat Trick Hero '93 (Ver 1.0J 1993/02/28)", + "hthero94", "Hat Trick Hero '94 (Ver 2.2A 1994/05/26)", + "hthero95", "Hat Trick Hero '95 (Ver 2.5J 1994/11/03)", + "hthero95u", "Hat Trick Hero '95 (Ver 2.5A 1994/11/03)", + "httip_l1", "Hot Tip (L-1)", + "hulk", "Incredible Hulk,The", + "hunchbak", "Hunchback (set 1)", + "hunchbaka", "Hunchback (set 2)", + "hunchbkd", "Hunchback (DK conversion)", + "hunchbkg", "Hunchback (Galaxian hardware)", + "hunchbks", "Hunchback (Scramble hardware)", + "hunchbks2", "Hunchback (Scramble hardware, bootleg)", + "huncholy", "Hunchback Olympic", + "hurr_l2", "Hurricane (L-2)", + "hustle", "Hustle", + "hustler", "Video Hustler", + "hustlerb", "Video Hustler (bootleg, set 1)", + "hustlerb2", "Fatsy Gambler (Video Hustler bootleg)", + "hustlerb3", "Video Pool (Video Hustler bootleg)", + "hustlerb4", "Video Hustler (bootleg, set 2)", + "hustlerd", "Video Hustler (Dynamo Games)", + "hvnsgate", "Heaven's Gate", + "hvoltage", "High Voltage", + "hvymetal", "Heavy Metal (315-5135)", + "hvymetap", "Heavy Metal Meltdown", + "hvysmsh", "Heavy Smash (Europe version -2)", + "hvysmsha", "Heavy Smash (Asia version -4)", + "hvysmshj", "Heavy Smash (Japan version -2)", + "hvyunit", "Heavy Unit (World)", + "hvyunitj", "Heavy Unit (Japan, Newer)", + "hvyunitjo", "Heavy Unit (Japan, Older)", + "hvyunitu", "Heavy Unit -U.S.A. Version- (US)", + "hwchamp", "Heavyweight Champ", + "hwchampj", "Heavyweight Champ (Japan, FD1094 317-0046)", + "hwrace", "High Way Race", + "hydra", "Hydra", + "hydrap", "Hydra (prototype 5/14/90)", + "hydrap2", "Hydra (prototype 5/25/90)", + "hydrthnd", "Hydro Thunder", + "hyhoo", "Hayaoshi Taisen Quiz Hyhoo (Japan)", + "hyhoo2", "Hayaoshi Taisen Quiz Hyhoo 2 (Japan)", + "hyouban", "Mahjong Hyouban Musume [BET] (Japan)", + "hypbbc2p", "Hyper Bishi Bashi Champ - 2 Player (GX908 1999/08/24 VER. JAA)", + "hypbbc2pk", "Hyper Bishi Bashi Champ - 2 Player (GX908 1999/08/24 VER. KAA)", + "hypbl_l4", "HyperBall (L-4)", + "hyperath", "Hyper Athlete (GV021 Japan 1.00)", + "hyperbbc", "Hyper Bishi Bashi Champ (GQ876 VER. EAA)", + "hyperbbca", "Hyper Bishi Bashi Champ (GQ876 VER. AAA)", + "hyperpac", "Hyper Pacman", + "hyperpacb", "Hyper Pacman (bootleg)", + "hyperspc", "Hyperspace (bootleg of Asteroids)", + "hyperspt", "Hyper Sports", + "hypersptb", "Hyper Sports (bootleg)", + "hyperv2", "Hyper V2 (Global VR) Install - 06/12/02", + "hyperv2a", "Hyper V2 (Global VR) Install - 09/30/01", + "hyprdriv", "Hyperdrive", + "hyprduel", "Hyper Duel (Japan set 1)", + "hyprduel2", "Hyper Duel (Japan set 2)", + "hypreac2", "Mahjong Hyper Reaction 2 (Japan)", + "hypreact", "Mahjong Hyper Reaction (Japan)", + "hyprolym", "Hyper Olympic", + "hyprolymb", "Hyper Olympic (bootleg)", + "hypsptsp", "Hyper Sports Special (Japan)", + "i500_11b", "Indianapolis 500 (1.1 Belgium)", + "i500_11r", "Indianapolis 500 (1.1R)", + "ibara", "Ibara (2005/03/22 MASTER VER..)", + "ibarablk", "Ibara Kuro Black Label (2006/02/06. MASTER VER.)", + "ibarablka", "Ibara Kuro Black Label (2006/02/06 MASTER VER.)", + "iccash", "I C Cash (Russia) (Atronic)", + "iceclimb", "Vs. Ice Climber (set IC4-4 B-1)", + "iceclimba", "Vs. Ice Climber (set IC4-4 ?)", + "iceclmrd", "Vs. Ice Climber Dual (set IC4-4 A-1)", + "icecold", "Ice Cold Beer", + "icefever", "Ice Fever", + "ichiban", "Ichi Ban Jyan", + "ichir", "Puzzle & Action: Ichidant-R (World)", + "ichirj", "Puzzle & Action: Ichidant-R (Japan)", + "ichirjbl", "Puzzle & Action: Ichidant-R (Japan) (bootleg)", + "ichirk", "Puzzle & Action: Ichidant-R (Korea)", + "id4", "Independence Day", + "idhimitu", "Idol no Himitsu [BET] (Japan 890304)", + "idolmj", "Idol-Mahjong Housoukyoku (Japan)", + "idsoccer", "Indoor Soccer (set 1)", + "idsoccera", "Indoor Soccer (set 2)", + "iemoto", "Iemoto (Japan 871020)", + "iemotom", "Iemoto [BET] (Japan 871118)", + "iganinju", "Iga Ninjyutsuden (Japan)", + "igmo", "IGMO", + "igromula", "Igrosoft Multigame Bootleg (15 Games)", + "igromult", "Igrosoft Multigame Bootleg (10 Games)", + "igs_ncs", "New Champion Skill (v100n)", + "igs_ncs2", "New Champion Skill (v100n 2000)", + "igsm312", "unknown 'IGS 6POKER2' game (V312CN)", + "ij_l3", "Indiana Jones (L-3)", + "ij_l4", "Indiana Jones (L-4)", + "ij_l5", "Indiana Jones (L-5)", + "ij_l6", "Indiana Jones (L-6)", + "ij_l7", "Indiana Jones (L-7)", + "ij_lg7", "Indiana Jones (LG-7)", + "ikari", "Ikari Warriors (US JAMMA)", + "ikari3", "Ikari III - The Rescue (World, 8-Way Joystick)", + "ikari3j", "Ikari Three (Japan, Rotary Joystick)", + "ikari3k", "Ikari Three (Korea, 8-Way Joystick)", + "ikari3u", "Ikari III - The Rescue (US, Rotary Joystick)", + "ikaria", "Ikari Warriors (US)", + "ikarijp", "Ikari (Japan No Continues)", + "ikarijpb", "Ikari (Joystick hack bootleg)", + "ikarinc", "Ikari Warriors (US No Continues)", + "ikaruga", "Ikaruga (GDL-0010)", + "ikki", "Ikki (Japan)", + "illvelo", "Illvelo (Illmatic Envelope)", + "ilpag", "Il Pagliaccio (Italy, Ver. 2.7C)", + "imago", "Imago (cocktail set)", + "imagoa", "Imago (no cocktail set)", + "imekura", "Imekura Mahjong (Japan)", + "imgfight", "Image Fight (World, revision A)", + "imgfightj", "Image Fight (Japan)", + "imolagp", "Imola Grand Prix (set 1)", + "imolagpo", "Imola Grand Prix (set 2)", + "imsorry", "I'm Sorry (315-5110, US)", + "imsorryj", "Gonbee no I'm Sorry (315-5110, Japan)", + "inca", "Inca", + "incanp", "Incan Pyramids (Konami Endeavour)", + "ind250cc", "250 CC", + "indianbt", "Indian Battle", + "indianbtbr", "Indian Battle (Brazil)", + "indiandr", "Indian Dreaming (0100845V, Local)", + "indianmm", "Indian Dreaming - Maximillion$ (10130711, NSW/ACT)", + "indy4", "Indy 4 [TTL]", + "indy500", "INDY 500 Twin (Revision A, Newer)", + "indy500d", "INDY 500 Deluxe (Revision A)", + "indy500to", "INDY 500 Twin (Revision A)", + "indy800", "Indy 800 [TTL]", + "indyheat", "Danny Sullivan's Indy Heat", + "indytemp", "Indiana Jones and the Temple of Doom (set 1)", + "indytemp2", "Indiana Jones and the Temple of Doom (set 2)", + "indytemp3", "Indiana Jones and the Temple of Doom (set 3)", + "indytemp4", "Indiana Jones and the Temple of Doom (set 4)", + "indytempc", "Indiana Jones and the Temple of Doom (Cocktail)", + "indytempd", "Indiana Jones and the Temple of Doom (German)", + "inferno", "Inferno (Williams)", + "inidv3cy", "Initial D Arcade Stage Ver. 3 Cycraft Edition (Rev. B) (GDS-0039B)", + "initd", "Initial D Arcade Stage (Rev B) (Japan) (GDS-0020B)", + "initdexp", "Initial D Arcade Stage (Export) (GDS-0025)", + "initdv2e", "Initial D Arcade Stage Ver. 2 (Export) (GDS-0027)", + "initdv2j", "Initial D Arcade Stage Ver. 2 (Japan) (Rev. B) (GDS-0026B)", + "initdv2jo", "Initial D Arcade Stage Ver. 2 (Japan) (GDS-0026)", + "initdv3e", "Initial D Arcade Stage Ver. 3 (Export) (GDS-0033)", + "initdv3j", "Initial D Arcade Stage Ver. 3 (Japan) (Rev. C) (GDS-0032C)", + "initdv3jb", "Initial D Arcade Stage Ver. 3 (Japan) (Rev. B) (GDS-0032B)", + "inquiztr", "Inquizitor", + "insector", "Insector (prototype)", + "insectx", "Insector X (World)", + "insectxj", "Insector X (Japan)", + "intcup94", "International Cup '94 (Ver 2.2O 1994/05/26)", + "inthunt", "In The Hunt (World)", + "inthuntu", "In The Hunt (US)", + "intlaser", "International Team Laser (prototype)", + "intrepid", "Intrepid (set 1)", + "intrepid2", "Intrepid (set 2)", + "intrepidb", "Intrepid (Elsys bootleg, set 1)", + "intrepidb2", "Intrepid (Loris bootleg)", + "intrepidb3", "Intrepid (Elsys bootleg, set 2)", + "introdon", "Karaoke Quiz Intro Don Don! (J 960213 V1.000)", + "intrscti", "Intersecti", + "intruder", "Intruder", + "inttoote", "International Toote (Germany)", + "inttootea", "International Toote II (World?)", + "inufuku", "Quiz & Variety Sukusuku Inufuku (Japan)", + "inunoos", "Inu No Osanpo / Dog Walking (Rev A)", + "invad2ct", "Space Invaders II (Midway, cocktail)", + "invaddlx", "Space Invaders Deluxe", + "invader4", "Space Invaders Part Four", + "invaderl", "Space Invaders (Logitec)", + "invaders", "Space Invaders / Space Invaders M", + "invadpt2", "Space Invaders Part II (Taito)", + "invadpt2br", "Space Invaders Part II (Brazil)", + "invadrmr", "Space Invaders (Model Racing)", + "invasion", "Invasion (Sidam)", + "invasiona", "Invasion (bootleg set 1, normal graphics)", + "invasionb", "Invasion (bootleg set 2, no copyright)", + "invasionrz", "Invasion (bootleg set 3, R Z SRL Bologna)", + "invasionrza", "Invasion (bootleg set 4, R Z SRL Bologna)", + "invasnab", "Invasion - The Abductors (version 5.0)", + "invasnab3", "Invasion - The Abductors (version 3.0)", + "invasnab4", "Invasion - The Abductors (version 4.0)", + "invds", "Invinco / Deep Scan", + "invho2", "Invinco / Head On 2", + "invinco", "Invinco", + "invmulti", "Space Invaders Multigame (M8.03D)", + "invmultim1a", "Space Invaders Multigame (M8.01A)", + "invmultim2a", "Space Invaders Multigame (M8.02A)", + "invmultim2c", "Space Invaders Multigame (M8.02C)", + "invmultim3a", "Space Invaders Multigame (M8.03A)", + "invmultip", "Space Invaders Multigame (prototype)", + "invmultis1a", "Space Invaders Multigame (S0.81A)", + "invmultis2a", "Space Invaders Multigame (S0.82A)", + "invmultis3a", "Space Invaders Multigame (S0.83A)", + "invmultit3d", "Space Invaders Multigame (T8.03D)", + "invqix", "Space Invaders / Qix Silver Anniversary Edition (Ver. 2.03)", + "invrvnge", "Invader's Revenge (set 1)", + "invrvngea", "Invader's Revenge (set 2)", + "invrvngeb", "Invader's Revenge (set 3)", + "invrvngedu", "Invader's Revenge (Dutchford, single PCB)", + "invrvngegw", "Invader's Revenge (Game World, single PCB)", + "inwinner", "Instant Winner (Russia)", + "ipminvad", "IPM Invader", + "ipminvad1", "IPM Invader (Incomplete Dump)", + "ippatsu", "Ippatsu Gyakuten [BET] (Japan)", + "iqblock", "IQ-Block", + "iqblocka", "Shu Zi Le Yuan (V127M)", + "iqblockf", "Shu Zi Le Yuan (V113FR)", + "iqpipe", "IQ Pipe", + "irobot", "I, Robot", + "iron", "Iron (SNES bootleg)", + "ironclad", "Choutetsu Brikin'ger - Iron clad (Prototype)", + "ironclado", "Choutetsu Brikin'ger - Iron clad (Prototype, bootleg)", + "ironfort", "Iron Fortress", + "ironfortj", "Iron Fortress (Japan)", + "ironhors", "Iron Horse", + "ironmaid", "Iron Maiden", + "irrmaze", "The Irritating Maze / Ultra Denryu Iraira Bou", + "isgsm", "ISG Selection Master Type 2006 BIOS", + "island", "Island (050713 World)", + "island2", "Island 2 (060529 World)", + "island2_3", "Island 2 (061218 World)", + "island2_3a", "Island 2 (bootleg, 061218, VIDEO GAME-1 OS2-01)", + "island2_4", "Island 2 (070205 Russia)", + "island2_4a", "Island 2 (bootleg, 070205, banking address hack)", + "island2_5", "Island 2 (090528 Lottery)", + "island2_6", "Island 2 (090724 Entertainment)", + "island2a", "Island 2 (bootleg, 060529, banking address hack)", + "island2b", "Island 2 (bootleg, 060529, banking address hack, changed version text)", + "island2c", "Island 2 (bootleg, 060529, LOTTOGAME (I))", + "island_2", "Island (070409 Russia)", + "islanda", "Island (bootleg, 050713, backdoor)", + "islandb", "Island (bootleg, 050713, VIDEO GAME-1 OS01)", + "islandc", "Island (bootleg, 050713, LOTOS OS01)", + "istellar", "Interstellar Laser Fantasy", + "itaten", "Itazura Tenshi (Japan)", + "itazuram", "Itazura Monkey", + "iteagle", "Eagle BIOS", + "ivorytsk", "Ivory Tusk", + "ixion", "Ixion (prototype)", + "j2008", "unknown '008' (Unk) (MPS)", + "j2adnote", "Add A Note (JPM) (MPS, set 1)", + "j2adnotea", "Add A Note (JPM) (MPS, set 2)", + "j2adnoteb", "Add A Note (JPM) (MPS, set 3)", + "j2adnotec", "Add A Note (JPM) (MPS, set 4)", + "j2adnoted", "Add A Note (JPM) (MPS, set 5)", + "j2adnotee", "Add A Note (JPM) (MPS, set 6)", + "j2adnotef", "Add A Note (JPM) (MPS, set 7)", + "j2adnoteg", "Add A Note (JPM) (MPS, set 8)", + "j2adnoteh", "Add A Note (JPM) (MPS, set 9)", + "j2adnotei", "Add A Note (JPM) (MPS, set 10)", + "j2always", "Always Eight (Bwb) (MPS)", + "j2b7", "Bar 7? (JPM) (MPS)", + "j2bankch", "Bank Chase (JPM) (MPS)", + "j2bankrd", "Bank Raid (JPM) (MPS)", + "j2bigbnk", "Big Banker (JPM) (MPS)", + "j2bigbox", "Big Box (JPM) (MPS)", + "j2bigbuk", "Big Buck$ (JPM) (MPS)", + "j2bigdl", "Big Deal (JPM) (MPS)", + "j2bkroll", "Bank Roll (JPM) (MPS)", + "j2blkchy", "Black Cherry (JPM) (MPS)", + "j2blustr", "Blue Streak (Pcp) (MPS)", + "j2bodym", "Body Match (JPM) (MPS)", + "j2bonanz", "Bonanza (Eurocoin) (MPS)", + "j2cashab", "Cashablanca (JPM) (MPS)", + "j2cashbn", "Cash Bonus Club (JPM) (MPS)", + "j2cashfl", "Cash Falls (JPM) (MPS)", + "j2cashrl", "Cash Reels (JPM) (MPS)", + "j2cashro", "Cash Rolls (JPM) (MPS)", + "j2cashrv", "Cash Reserve (JPM) (MPS)", + "j2cashry", "Cashino Royale (Pcp) (MPS)", + "j2cashtd", "Cash Track Deluxe (JPM) (MPS)", + "j2cashtk", "Cash Track (JPM) (MPS)", + "j2casino", "Casino Classic (Pcp) (MPS)", + "j2chsn", "unknown 'chsnsn05' (Unk) (MPS)", + "j2clbbin", "Club Bingo (Crystal) (MPS)", + "j2club77", "Club 77 (Unk) (MPS)", + "j2coinct", "Coin Count (JPM) (MPS)", + "j2coinsh", "Coin Shoot (Bwb) (MPS)", + "j2contnd", "Continuous Nudger (Mdm) (MPS)", + "j2coppot", "Copper Pot (JPM) (MPS)", + "j2coprun", "Copper Run (JPM) (MPS)", + "j2cprndx", "Copper Run Deluxe (JPM) (MPS)", + "j2criscr", "Criss Cross Jackpot (Pcp) (MPS)", + "j2crkbnk", "Crack The Bank (JPM) (MPS)", + "j2crown", "Crown Dealer (Unk) (MPS)", + "j2cshalm", "Cash Alarm (Pcp) (MPS)", + "j2cshcrd", "Cash Cards (Pcp) (MPS)", + "j2cshfil", "Cash-Filla (Pcp) (MPS)", + "j2cshnud", "Cash Nudger (Mdm) (MPS)", + "j2cshsmh", "Cash Smash (Pcp) (MPS)", + "j2cvault", "Cash Vault (JPM) (MPS)", + "j2dropld", "Drop The Lot Deluxe (JPM) (MPS)", + "j2droplt", "Drop The Lot (JPM) (MPS)", + "j2ewn", "Each Way Nudger (JPM) (MPS)", + "j2ews", "Each Way Shuffle (JPM) (MPS)", + "j2exec", "Executive Club (JPM) (MPS)", + "j2fasttk", "Fast Trak (JPM) (MPS)", + "j2fiveal", "Five Alive (JPM) (MPS)", + "j2fiveln", "Five Liner (JPM) (MPS)", + "j2fivepn", "Fivepenny Nudger (Mdm) (MPS)", + "j2fqueen", "Find The Queen (JPM) (MPS)", + "j2frmtch", "Fruit Match (JPM) (MPS)", + "j2frucnx", "Fruit Connexion (Pcp) (MPS)", + "j2fullhs", "Full House Club (JPM) (MPS)", + "j2fws", "Five Way Shuffle (Set 1) (JPM) (MPS)", + "j2fwsa", "Five Way Shuffle (Set 2) (JPM) (MPS)", + "j2ghostb", "Ghostbuster (JPM) (MPS)", + "j2gldchy", "Golden Cherry (JPM) (MPS)", + "j2gldwin", "Golden Win (JPM) (MPS)", + "j2goldbr", "Golden Bars (JPM) (MPS)", + "j2goldrn", "Gold Run (JPM) (MPS)", + "j2hcash", "Hot Cash (Unk) (MPS)", + "j2hilocl", "Hi Lo Climber Club (Crystal) (MPS)", + "j2hinote", "Hi Note (JPM) (MPS)", + "j2hirola", "Hi Roll (Unk) (MPS)", + "j2hiroll", "Hi Roller (JPM) (MPS)", + "j2hitmon", "Hit Money (Pcp) (MPS)", + "j2hotpot", "Hot Pot (JPM) (MPS)", + "j2hotptd", "Hot Pot Deluxe (JPM) (MPS)", + "j2hotsht", "Hot Shot Club (JPM) (MPS)", + "j2hypnot", "Hypernote (JPM) (MPS)", + "j2jackbr", "Jackpot Bars (JPM) (MPS)", + "j2jackdc", "Jackpot Dice (JPM) (MPS)", + "j2jokers", "Jokers (JPM) (MPS)", + "j2kingcl", "King Of Clubs (JPM) (MPS)", + "j2lhs", "unknown 'lhs' (Unk) (MPS)", + "j2litean", "Lite A Nudge (JPM) (MPS)", + "j2litnot", "Lite A Note Club (Crystal) (MPS)", + "j2loots", "Loot Shoot (Pcp) (MPS)", + "j2lovshd", "Loot Shoot Deluxe (JPM) (MPS)", + "j2lovsht", "Loot Shoot (JPM) (MPS)", + "j2luckar", "Lucky Arrows (JPM) (MPS)", + "j2lucky2", "Lucky 2s (JPM) (MPS)", + "j2match", "Match It (JPM) (MPS)", + "j2maxima", "Maxima (Pcp) (MPS)", + "j2missis", "Mississippi Gambler Club (Crystal) (MPS)", + "j2monblt", "Money Belt (JPM) (MPS)", + "j2monbnd", "Money Bands (JPM) (MPS)", + "j2mongam", "Money Game (JPM) (MPS)", + "j2mongmd", "Money Game Deluxe (JPM) (MPS)", + "j2monmin", "Money Mine (Unk) (MPS)", + "j2monmtx", "Money Matrix (Bwb) (MPS)", + "j2montrp", "Money Trapper (Pcp) (MPS)", + "j2multwn", "Multi Win (JPM) (MPS)", + "j2nbz", "Nudge Bonanza (JPM) (MPS)", + "j2ncsp", "unknown 'ncsp0pp' (Bwb) (MPS)", + "j2nn2", "unknown 'nn_2' (Unk) (MPS)", + "j2nolimt", "No Limit Nudge (Mdm) (MPS)", + "j2notesh", "Note Shoot (JPM) (MPS)", + "j2notexc", "Note Exchange (Set 1) (JPM) (MPS)", + "j2notexca", "Note Exchange (Set 2) (JPM) (MPS)", + "j2notexcb", "Note Exchange (Set 3) (JPM) (MPS)", + "j2notspn", "Note Spinner (Unk) (MPS)", + "j2nrrp", "unknown 'nprpopp' (Bwb) (MPS)", + "j2nsc15", "unknown 'nsc15' (Pcp) (MPS)", + "j2nsw12", "unknown 'nsw12' (Pcp) (MPS)", + "j2nud5p", "5p Nudger (JPM) (MPS)", + "j2nudbnz", "Nudge Bonanza Deluxe (Set 1) (JPM) (MPS)", + "j2nudbnza", "Nudge Bonanza Deluxe (Set 2) (JPM) (MPS)", + "j2nuddud", "Nudge Double Up Deluxe (JPM) (MPS)", + "j2nuddup", "Nudge Double Up (JPM) (MPS)", + "j2nudfev", "Nudge Fever (Bwb) (MPS)", + "j2nudmon", "Nudge Money (Pcp) (MPS)", + "j2nudnud", "Nudge Nudge (JPM) (MPS)", + "j2nudshf", "Nudge Shuffler (JPM) (MPS)", + "j2nudup3", "Nudge Double Up MkIII (JPM) (MPS)", + "j2paypkt", "Pay Packet (Pcp) (MPS)", + "j2penny", "In For A Penny In For A Pound (Pcp) (MPS)", + "j2pharo", "Pharoah (Unk) (MPS)", + "j2pinac", "Pinnacle (JPM) (MPS)", + "j2pinclb", "Pinnacle Club (JPM) (MPS)", + "j2plsmnd", "Plus Money Deluxe (JPM) (MPS)", + "j2plsmon", "Plus Money (JPM) (MPS)", + "j2plsnud", "Plus Nudge (JPM) (MPS)", + "j2pndrsh", "Pound Rush (JPM) (MPS)", + "j2potlck", "Pot Luck (JPM) (MPS)", + "j2pyramd", "Pyramid (JPM) (MPS)", + "j2rdclb", "Royal Deal Club (JPM) (MPS)", + "j2reelbn", "Reel Bingo Club (Set 1) (JPM) (MPS)", + "j2reelbna", "Reel Bingo Club (Set 2) (JPM) (MPS)", + "j2reelbo", "Reel Bonus (JPM) (MPS)", + "j2reelcz", "Reel Crazy (JPM) (MPS)", + "j2reeldc", "Reel Deal Club (JPM) (MPS)", + "j2reelmc", "Reel Magic Club (JPM) (MPS)", + "j2reelmg", "Reel Magic (JPM) (MPS)", + "j2reelmgd", "Reel Magic (JPM) [Dutch] (MPS)", + "j2reelmo", "Reel Money (JPM) (MPS)", + "j2rm941", "unknown 'rm941' (Unk) (MPS)", + "j2rotnot", "Rota Note (JPM) (MPS)", + "j2roulcl", "Roulette Club (JPM) [Mps] (MPS)", + "j2sex", "Super Exchanger (Unk) (MPS)", + "j2silvcl", "Silver Classic (Pcp) (MPS)", + "j2silvsh", "Silver Shot (Pcp) (MPS)", + "j2sirich", "Strike It Rich (JPM) (MPS) (set 1)", + "j2siricha", "Strike It Rich (JPM) (MPS) (set 2)", + "j2sldgld", "Solid Gold (JPM) (MPS)", + "j2slvrgh", "Silver Ghost (JPM) (MPS)", + "j2sng", "Super Nudge Gambler (Cotswold Microsystems) (MPS)", + "j2spcrsv", "Special Reserve (JPM) (MPS)", + "j2ss", "Supa Stepper (JPM) (MPS)", + "j2sset", "Sunset Strip (v2.0) (Unk) (MPS?)", + "j2sstrea", "Supa Streak (Pcp) (MPS)", + "j2stahed", "Streets Ahead (JPM) (MPS)", + "j2strk10", "Strike Ten (Ace) (MPS)", + "j2supchy", "Super Cherry (Eurocoin) (MPS)", + "j2super7", "Super 7's (Unk) (MPS)", + "j2supfrc", "Supa Fruit Club (JPM) (MPS)", + "j2supfrt", "Supa Fruit (JPM) (MPS)", + "j2supln", "Super Line (JPM) (MPS)", + "j2suppot", "Super Pots (JPM) (MPS)", + "j2suprft", "Super Fruit (JPM) (MPS)", + "j2suprl", "Super Reel (JPM) (MPS)", + "j2suprsh", "Supershot (JPM) (MPS)", + "j2supsft", "Supashifta (JPM) (MPS)", + "j2supstp", "Supa Steppa (JPM) (MPS)", + "j2supstr", "Superstars (JPM) (MPS)", + "j2suptrk", "Supa Track (JPM) (MPS)", + "j2swbank", "Switch Back (JPM) (MPS)", + "j2take2", "Take 2 (JPM) (MPS)", + "j2topcd", "Top Card (Bwb) (MPS)", + "j2topsht", "Top Shot (JPM) (MPS)", + "j2trail", "Trailblazer (Bwb) (MPS)", + "j2tst", "MPS 1 Test Rom (JPM) (MPS)", + "j2tstplt", "Test Pilot (Set 1) (Pcp) (MPS)", + "j2tstplta", "Test Pilot (Set 2) (Pcp) (MPS)", + "j2tupnd", "Tuppenny Nudger (Mdm) (MPS)", + "j2tupnud", "Tuppenny Nudger (JPM) (MPS)", + "j2wag", "Win-A-Gain (Bwb) (MPS)", + "j2westrn", "Western (JPM) (MPS)", + "j2wrb", "Wild Reel Bingo (JPM) (MPS)", + "j2xxx", "Triple X (Bwb) (MPS)", + "j5ar80", "Around The World In Eighty Days (JPM) (SYSTEM5, set 1)", + "j5ar80a", "Around The World In Eighty Days (JPM) (SYSTEM5, set 2)", + "j5ar80b", "Around The World In Eighty Days (JPM) (SYSTEM5, set 3)", + "j5ar80c", "Around The World In Eighty Days (JPM) (SYSTEM5, set 4)", + "j5ar80cl", "Around The World Club (JPM) (SYSTEM5, set 1)", + "j5ar80cla", "Around The World Club (JPM) (SYSTEM5, set 2)", + "j5ar80clb", "Around The World Club (JPM) (SYSTEM5, set 3)", + "j5ar80clc", "Around The World Club (JPM) (SYSTEM5, set 4)", + "j5ar80d", "Around The World In Eighty Days (JPM) (SYSTEM5, set 5)", + "j5buc", "Buccaneer (JPM) (SYSTEM5)", + "j5cir", "Circus (JPM) (SYSTEM5, set 1)", + "j5cira", "Circus (JPM) (SYSTEM5, set 2)", + "j5cirb", "Circus (JPM) (SYSTEM5, set 3)", + "j5circ", "Circus (JPM) (SYSTEM5, set 4)", + "j5cird", "Circus (JPM) (SYSTEM5, set 5)", + "j5cire", "Circus (JPM) (SYSTEM5, set 6)", + "j5clbnud", "Club Nudger (JPM) (SYSTEM5-SAA, set 1)", + "j5clbnuda", "Club Nudger (JPM) (SYSTEM5-SAA, set 2)", + "j5daycls", "Daytona Classic (JPM) (SYSTEM5, set 1)", + "j5dayclsa", "Daytona Classic (JPM) (SYSTEM5, set 2)", + "j5daytn", "Daytona (JPM) (SYSTEM5, set 1)", + "j5daytna", "Daytona (JPM) (SYSTEM5, set 2)", + "j5dirty", "Dirty Dozen (JPM) (SYSTEM5, set 1)", + "j5dirtya", "Dirty Dozen (JPM) (SYSTEM5, set 2)", + "j5dirtyb", "Dirty Dozen (JPM) (SYSTEM5, set 3)", + "j5dirtyc", "Dirty Dozen (JPM) (SYSTEM5, set 4)", + "j5fair", "Fairground (JPM) (SYSTEM5, set 1)", + "j5faira", "Fairground (JPM) (SYSTEM5, set 2)", + "j5fairb", "Fairground (JPM) (SYSTEM5, set 3)", + "j5fairc", "Fairground (JPM) (SYSTEM5, set 4)", + "j5faird", "Fairground (JPM) (SYSTEM5, set 5)", + "j5faire", "Fairground (JPM) (SYSTEM5, set 6)", + "j5fairf", "Fairground (JPM) (SYSTEM5, set 7)", + "j5fairg", "Fairground (JPM) (SYSTEM5, set 8)", + "j5fairgd", "Fairground Attraction Club (JPM) (SYSTEM5, set 1)", + "j5fairgda", "Fairground Attraction Club (JPM) (SYSTEM5, set 2)", + "j5fairgdb", "Fairground Attraction Club (JPM) (SYSTEM5, set 3)", + "j5fairgdc", "Fairground Attraction Club (JPM) (SYSTEM5, set 4)", + "j5fairgdd", "Fairground Attraction Club (JPM) (SYSTEM5, set 5)", + "j5fairgde", "Fairground Attraction Club (JPM) (SYSTEM5, set 6)", + "j5fairh", "Fairground (JPM) (SYSTEM5, set 9)", + "j5fairi", "Fairground (JPM) (SYSTEM5, set 10)", + "j5fairj", "Fairground (JPM) (SYSTEM5, set 11)", + "j5fairk", "Fairground (JPM) (SYSTEM5, set 12)", + "j5fairl", "Fairground (JPM) (SYSTEM5, set 13)", + "j5fairm", "Fairground (JPM) (SYSTEM5, set 14)", + "j5fairn", "Fairground (JPM) (SYSTEM5, set 15)", + "j5fairo", "Fairground (JPM) (SYSTEM5, set 16)", + "j5fairp", "Fairground (JPM) (SYSTEM5, set 17)", + "j5fairq", "Fairground (JPM) (SYSTEM5, set 18)", + "j5fifth", "5th Avenue (JPM) (SYSTEM5-SAA)", + "j5filth", "Filthy Rich (JPM) (SYSTEM5, set 1)", + "j5filtha", "Filthy Rich (JPM) (SYSTEM5, set 2)", + "j5filthb", "Filthy Rich (JPM) (SYSTEM5, set 3)", + "j5filthc", "Filthy Rich (JPM) (SYSTEM5, set 4)", + "j5filthd", "Filthy Rich (JPM) (SYSTEM5, set 5)", + "j5filthe", "Filthy Rich (JPM) (SYSTEM5, set 6)", + "j5filthf", "Filthy Rich (JPM) (SYSTEM5, set 7)", + "j5filthg", "Filthy Rich (JPM) (SYSTEM5, set 8)", + "j5filthh", "Filthy Rich (JPM) (SYSTEM5, set 9)", + "j5filthi", "Filthy Rich (JPM) (SYSTEM5, set 10)", + "j5filthj", "Filthy Rich (JPM) (SYSTEM5, set 11)", + "j5firebl", "Fireball (JPM) (SYSTEM5-SAA, set 1)", + "j5firebla", "Fireball (JPM) (SYSTEM5-SAA, set 2)", + "j5fireblb", "Fireball (JPM) (SYSTEM5-SAA, set 3)", + "j5frmag", "Fruit Magic (JPM) (SYSTEM5-SAA)", + "j5goldbr", "Golden Bars (JPM) (SYSTEM5-SAA)", + "j5hagar", "Hagar (JPM) (SYSTEM5, set 1)", + "j5hagara", "Hagar (JPM) (SYSTEM5, set 2)", + "j5hagarb", "Hagar (JPM) (SYSTEM5, set 3)", + "j5hagarc", "Hagar (JPM) (SYSTEM5, set 4)", + "j5hagard", "Hagar (JPM) (SYSTEM5, set 5)", + "j5hagare", "Hagar (JPM) (SYSTEM5, set 6)", + "j5hagarf", "Hagar (JPM) (SYSTEM5, set 7)", + "j5hagarg", "Hagar (JPM) (SYSTEM5, set 8)", + "j5hagarh", "Hagar (JPM) (SYSTEM5, set 9)", + "j5hagari", "Hagar (JPM) (SYSTEM5, set 10)", + "j5hagarj", "Hagar (JPM) (SYSTEM5, set 11)", + "j5hagsho", "Hagar Showcase (JPM) (SYSTEM5, set 1)", + "j5hagshoa", "Hagar Showcase (JPM) (SYSTEM5, set 2)", + "j5hagshob", "Hagar Showcase (JPM) (SYSTEM5, set 3)", + "j5hagshoc", "Hagar Showcase (JPM) (SYSTEM5, set 4)", + "j5hilos", "Hi Lo Silver (JPM) (SYSTEM5)", + "j5holly", "Hollywood Nights (JPM) (SYSTEM5, set 1)", + "j5hollya", "Hollywood Nights (JPM) (SYSTEM5, set 2)", + "j5hollyb", "Hollywood Nights (JPM) (SYSTEM5, set 3)", + "j5hollyc", "Hollywood Nights (JPM) (SYSTEM5, set 4)", + "j5hollyd", "Hollywood Nights (JPM) (SYSTEM5, set 5)", + "j5hollye", "Hollywood Nights (JPM) (SYSTEM5, set 6)", + "j5hotdog", "Hot Dogs (JPM) (SYSTEM5, set 1)", + "j5hotdoga", "Hot Dogs (JPM) (SYSTEM5, set 2)", + "j5indsum", "Indian Summer (JPM) (SYSTEM5)", + "j5intr", "Intrigue (JPM) (SYSTEM5, set 1)", + "j5intra", "Intrigue (JPM) (SYSTEM5, set 2)", + "j5intrb", "Intrigue (JPM) (SYSTEM5, set 3)", + "j5intrc", "Intrigue (JPM) (SYSTEM5, set 4)", + "j5jokgld", "Jokers Gold (JPM) (SYSTEM5, set 1)", + "j5jokglda", "Jokers Gold (JPM) (SYSTEM5, set 2)", + "j5jokgldb", "Jokers Gold (JPM) (SYSTEM5, set 3)", + "j5jokgldc", "Jokers Gold (JPM) (SYSTEM5, set 4)", + "j5jokgldd", "Jokers Gold (JPM) (SYSTEM5, set 5)", + "j5jokglde", "Jokers Gold (JPM) (SYSTEM5, set 6)", + "j5jokgldf", "Jokers Gold (JPM) (SYSTEM5, set 7)", + "j5jokgldg", "Jokers Gold (JPM) (SYSTEM5, set 8)", + "j5jokgldh", "Jokers Gold (JPM) (SYSTEM5, set 9)", + "j5movie", "Movie Magic Club (Crystal) (SYSTEM5)", + "j5nite", "Nite Club (JPM) (SYSTEM5, set 1)", + "j5nitea", "Nite Club (JPM) (SYSTEM5, set 2)", + "j5nudfic", "Nudge Fiction (JPM) (SYSTEM5)", + "j5palm", "Palm Springs (JPM) (SYSTEM5, set 1)", + "j5palma", "Palm Springs (JPM) (SYSTEM5, set 2)", + "j5phnx", "Phoenix (JPM) (SYSTEM5, set 1)", + "j5phnxa", "Phoenix (JPM) (SYSTEM5, set 2)", + "j5popeye", "Popeye (JPM) (SYSTEM5, set 1)", + "j5popeyea", "Popeye (JPM) (SYSTEM5, set 2)", + "j5popeyeb", "Popeye (JPM) (SYSTEM5, set 3)", + "j5popeyec", "Popeye (JPM) (SYSTEM5, set 4)", + "j5popeyed", "Popeye (JPM) (SYSTEM5, set 5)", + "j5popeyee", "Popeye (JPM) (SYSTEM5, set 6)", + "j5popeyef", "Popeye (JPM) (SYSTEM5, set 7)", + "j5popeyeg", "Popeye (JPM) (SYSTEM5, set 8)", + "j5popeyeh", "Popeye (JPM) (SYSTEM5, set 9)", + "j5popeyei", "Popeye (JPM) (SYSTEM5, set 10)", + "j5popprz", "Prize Popeye Vending (JPM) (SYSTEM5, set 1)", + "j5popprza", "Prize Popeye Vending (JPM) (SYSTEM5, set 2)", + "j5popth", "Popeye's Treasure Hunt (JPM) (SYSTEM5, set 1)", + "j5poptha", "Popeye's Treasure Hunt (JPM) (SYSTEM5, set 2)", + "j5popthb", "Popeye's Treasure Hunt (JPM) (SYSTEM5, set 3)", + "j5reelgh", "Reel Ghost (JPM) (SYSTEM5-SAA)", + "j5revo", "Revolver (JPM) (SYSTEM5, set 1)", + "j5revoa", "Revolver (JPM) (SYSTEM5, set 2)", + "j5roul", "Roulette (JPM) (SYSTEM5)", + "j5roulcl", "Roulette Club (JPM) (SYSTEM5, set 1)", + "j5roulcla", "Roulette Club (JPM) (SYSTEM5, set 2)", + "j5roulclb", "Roulette Club (JPM) (SYSTEM5, set 3)", + "j5roulclc", "Roulette Club (JPM) (SYSTEM5, set 4)", + "j5sizl", "Sizzling (JPM) (SYSTEM5)", + "j5slvree", "Silver Reels (JPM) (SYSTEM5, set 1)", + "j5slvreea", "Silver Reels (JPM) (SYSTEM5, set 2)", + "j5slvstr", "Silver Streak (JPM) (SYSTEM5, set 1)", + "j5slvstra", "Silver Streak (JPM) (SYSTEM5, set 2)", + "j5slvstrb", "Silver Streak (JPM) (SYSTEM5, set 3)", + "j5street", "Streetwise (JPM) (SYSTEM5)", + "j5sup4", "Super 4 (JPM) (SYSTEM5-SAA)", + "j5supbar", "Super Bars (JPM) (SYSTEM5, set 1)", + "j5supbara", "Super Bars (JPM) (SYSTEM5, set 2)", + "j5suphi", "Super Hi-Lo (JPM) (SYSTEM5-SAA)", + "j5swop", "Swop A Fruit Club (JPM) (SYSTEM5-SAA)", + "j5td", "Tumbling Dice (JPM) (SYSTEM5-SAA)", + "j5term", "Terminator (JPM) (SYSTEM5)", + "j5topshp", "Top Of The Shop Club (JPM) (SYSTEM5)", + "j5trail", "Trailblazer Club (JPM) (SYSTEM5, set 1)", + "j5traila", "Trailblazer Club (JPM) (SYSTEM5, set 2)", + "j5trailb", "Trailblazer Club (JPM) (SYSTEM5, set 3)", + "j5tst1", "JPM System 5 Test Set (JPM) (SYSTEM5, set 1)", + "j5tst2", "JPM System 5 Test Set (JPM) (SYSTEM5, set 2)", + "j5tstal", "JPM System 5 Alpha Display Test Utility (JPM) (SYSTEM5)", + "j5uj", "Union Jackpot (JPM) (SYSTEM5, set 1)", + "j5uja", "Union Jackpot (JPM) (SYSTEM5, set 2)", + "j5ujb", "Union Jackpot (JPM) (SYSTEM5, set 3)", + "j5wsc", "Wall Street Club (JPM) (SYSTEM5, set 1)", + "j5wsca", "Wall Street Club (JPM) (SYSTEM5, set 2)", + "j6aceclb", "Ace Of Clubs (Crystal) (IMPACT, set 1)", + "j6aceclba", "Ace Of Clubs (Crystal) (IMPACT, set 2)", + "j6acehi", "Aces High (Ace) (IMPACT)", + "j6amdrm", "American Dream (Mdm) (IMPACT)", + "j6arcade", "Arcadia (JPM) (IMPACT) (V9, set 1)", + "j6arcadea", "Arcadia (JPM) (IMPACT) (V9, set 2)", + "j6arcadeb", "Arcadia (JPM) (IMPACT) (V9, set 3)", + "j6arcadec", "Arcadia (JPM) (IMPACT) (V9, set 4)", + "j6arcaded", "Arcadia (JPM) (IMPACT) (V9, set 5)", + "j6arcadee", "Arcadia (JPM) (IMPACT) (V10, set 1)", + "j6arcadef", "Arcadia (JPM) (IMPACT) (V10, set 2)", + "j6arcadeg", "Arcadia (JPM) (IMPACT) (V10, set 3)", + "j6arcadeh", "Arcadia (JPM) (IMPACT) (V10, set 4)", + "j6arcadei", "Arcadia (JPM) (IMPACT) (V10, set 5)", + "j6arcadej", "Arcadia (JPM) (IMPACT) (V10, set 6)", + "j6arcadek", "Arcadia (JPM) (IMPACT) (V10, set 7)", + "j6bags", "Three Bags Full (JPM) (IMPACT)", + "j6bbankr", "Big Banker (Crystal) (IMPACT) (BB 2 T 2)", + "j6big50", "Big 50 (JPM) (IMPACT) (set 1)", + "j6big50a", "Big 50 (JPM) (IMPACT) (set 2)", + "j6big50b", "Big 50 (JPM) (IMPACT) (set 3)", + "j6big50c", "Big 50 (JPM) (IMPACT) (set 4)", + "j6big50d", "Big 50 (JPM) (IMPACT) (set 5)", + "j6bigbnk", "Big Banker (JPM) (IMPACT) (BB10C 20) (set 1)", + "j6bigbnka", "Big Banker (JPM) (IMPACT) (BB10C 20) (set 2)", + "j6bigbnkb", "Big Banker (JPM) (IMPACT) (BB10C 20) (set 3)", + "j6bigbnkc", "Big Banker (JPM) (IMPACT) (BB10C 20) (set 4)", + "j6bigbnkd", "Big Banker (JPM) (IMPACT) (BB8 H18)", + "j6bigbnke", "Big Banker (JPM) (IMPACT) (BB8 P H18)", + "j6bigbnkf", "Big Banker (JPM) (IMPACT) (BB8 AH18)", + "j6bigbnkg", "Big Banker (JPM) (IMPACT) (BB6 C 16) (set 1)", + "j6bigbnkh", "Big Banker (JPM) (IMPACT) (BB6 C 16) (set 2)", + "j6bigbnki", "Big Banker (JPM) (IMPACT) (BB2B H11)", + "j6bigbnkj", "Big Banker (JPM) (IMPACT) (BB2BP H11)", + "j6bigbnkk", "Big Banker (JPM) (IMPACT) (BB2B AH11)", + "j6bigbnkl", "Big Banker (JPM) (IMPACT) (BB2BI H11)", + "j6bigbnkm", "Big Banker (JPM) (IMPACT) (BB2II H08)", + "j6bigbnkn", "Big Banker (JPM) (IMPACT) (BB 9C 19)", + "j6bigbnko", "Big Banker (JPM) (IMPACT) (BB5 I H15)", + "j6bigbnkp", "Big Banker (JPM) (IMPACT) (BB4 I H09)", + "j6bigbuk", "Big Bucks (JPM) (IMPACT) (set 1)", + "j6bigbuka", "Big Bucks (JPM) (IMPACT) (set 2)", + "j6bigbukb", "Big Bucks (JPM) (IMPACT) (set 3)", + "j6bigbukc", "Big Bucks (JPM) (IMPACT) (set 4)", + "j6bigbukd", "Big Bucks (JPM) (IMPACT) (set 5)", + "j6bigbuke", "Big Bucks (JPM) (IMPACT) (set 6)", + "j6bigbukf", "Big Bucks (JPM) (IMPACT) (set 7)", + "j6bigbukg", "Big Bucks (JPM) (IMPACT) (set 8)", + "j6bigbukh", "Big Bucks (JPM) (IMPACT) (set 9)", + "j6bigbuki", "Big Bucks (JPM) (IMPACT) (set 10)", + "j6bigbukj", "Big Bucks (JPM) (IMPACT) (set 11)", + "j6bigcsh", "Big Cash Machine (Empire) (IMPACT)", + "j6bigpct", "Big Picture (Ace) (IMPACT) (set 1)", + "j6bigpcta", "Big Picture (Ace) (IMPACT) (set 2)", + "j6bigpctb", "Big Picture (Ace) (IMPACT) (set 3)", + "j6bigtop", "Big Top Club (JPM) (IMPACT) (set 1)", + "j6bigtopa", "Big Top Club (JPM) (IMPACT) (set 2)", + "j6bigtopb", "Big Top Club (JPM) (IMPACT) (set 3)", + "j6bigtopc", "Big Top Club (JPM) (IMPACT) (set 4)", + "j6bigwhl", "Big Wheel (JPM) (IMPACT) (set 1)", + "j6bigwhla", "Big Wheel (JPM) (IMPACT) (set 2)", + "j6bigwhlb", "Big Wheel (JPM) (IMPACT) (set 3)", + "j6bigwhlc", "Big Wheel (JPM) (IMPACT) (set 4)", + "j6bigwhld", "Big Wheel (JPM) (IMPACT) (set 5)", + "j6bigwhle", "Big Wheel (JPM) (IMPACT) (set 6)", + "j6bmc", "Big Money Club (Crystal) (IMPACT) (set 1)", + "j6bmca", "Big Money Club (Crystal) (IMPACT) (set 2)", + "j6bnkrcl", "Banker Club (JPM) (IMPACT) (V6, set 1)", + "j6bnkrcla", "Banker Club (JPM) (IMPACT) (V6, set 2)", + "j6bnkrclb", "Banker Club (JPM) (IMPACT) (V6, set 3)", + "j6bnkrclc", "Banker Club (JPM) (IMPACT) (V2)", + "j6bno", "Big Nite Out (Crystal) (IMPACT) (set 1)", + "j6bnoa", "Big Nite Out (Crystal) (IMPACT) (set 2)", + "j6bnob", "Big Nite Out (Crystal) (IMPACT) (set 3)", + "j6bnoc", "Big Nite Out (Crystal) (IMPACT) (set 4)", + "j6bnza", "Bonanza (JPM) (IMPACT) (BO1 H06)", + "j6bnzaa", "Bonanza (JPM) (IMPACT) (BO1 P H06)", + "j6bnzab", "Bonanza (JPM) (IMPACT) (BO1 AH06)", + "j6bnzac", "Bonanza (JPM) (IMPACT) (BO1 I H06)", + "j6bnzad", "Bonanza (JPM) (IMPACT) (BO 9 14)", + "j6bnzae", "Bonanza (JPM) (IMPACT) (BO 9P 14)", + "j6bnzaf", "Bonanza (JPM) (IMPACT) (BO 9 A 14)", + "j6bnzag", "Bonanza (JPM) (IMPACT) (BO 9I 14)", + "j6bnzah", "Bonanza (JPM) (IMPACT) (BO5 H10)", + "j6bnzai", "Bonanza (JPM) (IMPACT) (BO5 I H10)", + "j6bnzaj", "Bonanza (JPM) (IMPACT) (incomplete pair)", + "j6bnzak", "Bonanza (JPM) (IMPACT) (BO06 11)", + "j6brkout", "Breakout (JPM) (IMPACT) (set 1)", + "j6brkouta", "Breakout (JPM) (IMPACT) (set 2)", + "j6btbw", "Born To Be Wild Club (Crystal) (IMPACT) (set 1)", + "j6btbwa", "Born To Be Wild Club (Crystal) (IMPACT) (set 2)", + "j6btbwb", "Born To Be Wild Club (Crystal) (IMPACT) (set 3)", + "j6btbwc", "Born To Be Wild Club (Crystal) (IMPACT) (set 4)", + "j6btbwd", "Born To Be Wild Club (Crystal) (IMPACT) (set 5)", + "j6bucks", "Bucks Fizz (Ace) (IMPACT)", + "j6camelt", "Camelot (JPM) (IMPACT) (set 1)", + "j6camelta", "Camelot (JPM) (IMPACT) (set 2)", + "j6cameltb", "Camelot (JPM) (IMPACT) (set 3)", + "j6cameltc", "Camelot (JPM) (IMPACT) (set 4)", + "j6cameltd", "Camelot (JPM) (IMPACT) (set 5)", + "j6cas5", "Casino 5ive Liner (JPM) (IMPACT) (set 1)", + "j6cas5a", "Casino 5ive Liner (JPM) (IMPACT) (set 2)", + "j6cas5b", "Casino 5ive Liner (JPM) (IMPACT) (set 3)", + "j6cas5c", "Casino 5ive Liner (JPM) (IMPACT) (set 4)", + "j6cas5d", "Casino 5ive Liner (JPM) (IMPACT) (set 5)", + "j6cas5e", "Casino 5ive Liner (JPM) (IMPACT) (set 6)", + "j6cas5f", "Casino 5ive Liner (JPM) (IMPACT) (set 7)", + "j6cas5g", "Casino 5ive Liner (JPM) (IMPACT) (set 8)", + "j6cas5h", "Casino 5ive Liner (JPM) (IMPACT) (set 9)", + "j6cas5i", "Casino 5ive Liner (JPM) (IMPACT) (set 10)", + "j6cas5j", "Casino 5ive Liner (JPM) (IMPACT) (set 11)", + "j6cas5k", "Casino 5ive Liner (JPM) (IMPACT) (set 12)", + "j6cas5l", "Casino 5ive Liner (JPM) (IMPACT) (set 13)", + "j6cascla", "Casino Crazy Classic Club (JPM) (IMPACT) (set 1)", + "j6casclaa", "Casino Crazy Classic Club (JPM) (IMPACT) (set 2)", + "j6casclab", "Casino Crazy Classic Club (JPM) (IMPACT) (set 3)", + "j6casclac", "Casino Crazy Classic Club (JPM) (IMPACT) (set 4)", + "j6casclad", "Casino Crazy Classic Club (JPM) (IMPACT) (set 5)", + "j6casclae", "Casino Crazy Classic Club (JPM) (IMPACT) (set 6)", + "j6casclaf", "Casino Crazy Classic Club (JPM) (IMPACT) (set 7)", + "j6casclag", "Casino Crazy Classic Club (JPM) (IMPACT) (set 8)", + "j6casclah", "Casino Crazy Classic Club (JPM) (IMPACT) (set 9)", + "j6casclai", "Casino Crazy Classic Club (JPM) (IMPACT) (set 10)", + "j6casclaj", "Casino Crazy Classic Club (JPM) (IMPACT) (set 11)", + "j6casclak", "Casino Crazy Classic Club (JPM) (IMPACT) (set 12)", + "j6casclal", "Casino Crazy Classic Club (JPM) (IMPACT) (set 13)", + "j6casclam", "Casino Crazy Classic Club (JPM) (IMPACT) (set 14)", + "j6casclan", "Casino Crazy Classic Club (JPM) (IMPACT) (set 15)", + "j6casclao", "Casino Crazy Classic Club (JPM) (IMPACT) (set 16)", + "j6casclap", "Casino Crazy Classic Club (JPM) (IMPACT) (set 17)", + "j6casclaq", "Casino Crazy Classic Club (JPM) (IMPACT) (set 18)", + "j6casclar", "Casino Crazy Classic Club (JPM) (IMPACT) (set 19)", + "j6casclas", "Casino Crazy Classic Club (JPM) (IMPACT) (set 20)", + "j6casclat", "Casino Crazy Classic Club (JPM) (IMPACT) (set 21)", + "j6casclb", "Casino Crazy Club (JPM) (IMPACT) (set 1)", + "j6casclba", "Casino Crazy Club (JPM) (IMPACT) (set 2)", + "j6cascz", "Casino Crazy (JPM) (IMPACT) (set 1)", + "j6cascza", "Casino Crazy (JPM) (IMPACT) (set 2)", + "j6casczb", "Casino Crazy (JPM) (IMPACT) (set 3)", + "j6casczc", "Casino Crazy (JPM) (IMPACT) (set 4)", + "j6casczd", "Casino Crazy (JPM) (IMPACT) (set 5)", + "j6cascze", "Casino Crazy (JPM) (IMPACT) (set 6)", + "j6casczf", "Casino Crazy (JPM) (IMPACT) (set 7)", + "j6casczg", "Casino Crazy (JPM) (IMPACT) (set 8)", + "j6casczh", "Casino Crazy (JPM) (IMPACT) (set 9)", + "j6casczi", "Casino Crazy (JPM) (IMPACT) (set 10)", + "j6casczj", "Casino Crazy (JPM) (IMPACT) (set 11)", + "j6casczk", "Casino Crazy (JPM) (IMPACT) (set 12)", + "j6casczl", "Casino Crazy (JPM) (IMPACT) (set 13)", + "j6casczm", "Casino Crazy (JPM) (IMPACT) (set 14)", + "j6caslas", "Casino Las Vegas (JPM) (IMPACT) (set 1)", + "j6caslasa", "Casino Las Vegas (JPM) (IMPACT) (set 2)", + "j6caslasb", "Casino Las Vegas (JPM) (IMPACT) (set 3)", + "j6caslasc", "Casino Las Vegas (JPM) (IMPACT) (set 4)", + "j6ccc", "Casino Crazy Club (Crystal) (IMPACT) (set 1)", + "j6ccca", "Casino Crazy Club (Crystal) (IMPACT) (set 2)", + "j6cccb", "Casino Crazy Club (Crystal) (IMPACT) (set 3)", + "j6cccc", "Casino Crazy Club (Crystal) (IMPACT) (set 4)", + "j6cccla", "Casino Crazy Classic (JPM) (IMPACT) (set 1)", + "j6ccclaa", "Casino Crazy Classic (JPM) (IMPACT) (set 2)", + "j6ccclab", "Casino Crazy Classic (JPM) (IMPACT) (set 3)", + "j6ccclac", "Casino Crazy Classic (JPM) (IMPACT) (set 4)", + "j6ccclad", "Casino Crazy Classic (JPM) (IMPACT) (set 5)", + "j6ccclae", "Casino Crazy Classic (JPM) (IMPACT) (set 6)", + "j6ccclaf", "Casino Crazy Classic (JPM) (IMPACT) (set 7)", + "j6ccclag", "Casino Crazy Classic (JPM) (IMPACT) (set 8)", + "j6ccclah", "Casino Crazy Classic (JPM) (IMPACT) (set 9)", + "j6ccclai", "Casino Crazy Classic (JPM) (IMPACT) (set 10)", + "j6ccclaj", "Casino Crazy Classic (JPM) (IMPACT) (set 11)", + "j6ccclak", "Casino Crazy Classic (JPM) (IMPACT) (set 12)", + "j6cdivr", "Cash Diver (Crystal) (IMPACT)", + "j6cheque", "Cheque Mate (JPM) (IMPACT)", + "j6cluclb", "Cluedo Club (JPM) (IMPACT) (set 1)", + "j6cluclba", "Cluedo Club (JPM) (IMPACT) (set 2)", + "j6cluclbb", "Cluedo Club (JPM) (IMPACT) (set 3)", + "j6cluclbc", "Cluedo Club (JPM) (IMPACT) (set 4)", + "j6cluclbd", "Cluedo Club (JPM) (IMPACT) (set 5)", + "j6cluclbe", "Cluedo Club (JPM) (IMPACT) (set 6)", + "j6cluclbf", "Cluedo Club (JPM) (IMPACT) (set 7)", + "j6cluclbg", "Cluedo Club (JPM) (IMPACT) (set 8)", + "j6cluclbh", "Cluedo Club (JPM) (IMPACT) (set 9)", + "j6cluclbi", "Cluedo Club (JPM) (IMPACT) (set 10)", + "j6cluclbj", "Cluedo Club (JPM) (IMPACT) (set 11)", + "j6cluclbk", "Cluedo Club (JPM) (IMPACT) (set 12)", + "j6cluclbl", "Cluedo Club (JPM) (IMPACT) (set 13)", + "j6col", "Coliseum (Mdm) (IMPACT) (set 1)", + "j6cola", "Coliseum (Mdm) (IMPACT) (set 2)", + "j6colb", "Coliseum (Mdm) (IMPACT) (set 3)", + "j6colc", "Coliseum (Mdm) (IMPACT) (set 4)", + "j6colcsh", "Coliseum Cash (JPM) (IMPACT) (set 1)", + "j6colcsha", "Coliseum Cash (JPM) (IMPACT) (set 2)", + "j6colcshb", "Coliseum Cash (JPM) (IMPACT) (set 3)", + "j6colcshc", "Coliseum Cash (JPM) (IMPACT) (set 4)", + "j6colcshd", "Coliseum Cash (JPM) (IMPACT) (set 5)", + "j6cold", "Coliseum (Mdm) (IMPACT) (set 5)", + "j6cole", "Coliseum (Mdm) (IMPACT) (set 6)", + "j6colf", "Coliseum (Mdm) (IMPACT) (set 7)", + "j6colic", "Coliseum (Crystal) (IMPACT) (set 1)", + "j6colica", "Coliseum (Crystal) (IMPACT) (set 2)", + "j6colicb", "Coliseum (Crystal) (IMPACT) (set 3)", + "j6colicc", "Coliseum (Crystal) (IMPACT) (set 4)", + "j6colicd", "Coliseum (Crystal) (IMPACT) (set 5)", + "j6colmon", "Colour Of Money (JPM) (IMPACT) (set 1)", + "j6colmona", "Colour Of Money (JPM) (IMPACT) (set 2)", + "j6colmonb", "Colour Of Money (JPM) (IMPACT) (set 3)", + "j6colmonc", "Colour Of Money (JPM) (IMPACT) (set 4)", + "j6colmond", "Colour Of Money (JPM) (IMPACT) (set 5)", + "j6colmone", "Colour Of Money (JPM) (IMPACT) (set 6)", + "j6colmonf", "Colour Of Money (JPM) (IMPACT) (set 7)", + "j6colmong", "Colour Of Money (JPM) (IMPACT) (set 8)", + "j6colmonh", "Colour Of Money (JPM) (IMPACT) (set 9)", + "j6colmoni", "Colour Of Money (JPM) (IMPACT) (set 10)", + "j6colmonj", "Colour Of Money (JPM) (IMPACT) (set 11)", + "j6coprob", "Cops 'n' Robbers (Qps) (IMPACT) (set 1)", + "j6coproba", "Cops 'n' Robbers (Qps) (IMPACT) (set 2)", + "j6coprobb", "Cops 'n' Robbers (Qps) (IMPACT) (set 3)", + "j6coprobc", "Cops 'n' Robbers (Qps) (IMPACT) (set 4)", + "j6coprobd", "Cops 'n' Robbers (Qps) (IMPACT) (set 5)", + "j6coprobe", "Cops 'n' Robbers (Qps) (IMPACT) (set 6)", + "j6cpal", "Caesars Palace (Whitbread / Crystal) (IMPACT) (set 1)", + "j6cpala", "Caesars Palace (Whitbread / Crystal) (IMPACT) (set 2)", + "j6cpalb", "Caesars Palace (Whitbread / Crystal) (IMPACT) (set 3)", + "j6cpalc", "Caesars Palace (Whitbread / Crystal) (IMPACT) (set 4)", + "j6cpald", "Caesars Palace (Whitbread / Crystal) (IMPACT) (set 5)", + "j6cpale", "Caesars Palace (Whitbread / Crystal) (IMPACT) (set 6)", + "j6cpalf", "Caesars Palace (Whitbread / Crystal) (IMPACT) (set 7)", + "j6cpalg", "Caesars Palace (Whitbread / Crystal) (IMPACT) (set 8)", + "j6cpclb", "Caesar's Palace Club (JPM) (IMPACT) (set 1)", + "j6cpclba", "Caesar's Palace Club (JPM) (IMPACT) (set 2)", + "j6cpclbb", "Caesar's Palace Club (JPM) (IMPACT) (set 3)", + "j6crack", "Cracker (JPM) (IMPACT) (set 1)", + "j6cracka", "Cracker (JPM) (IMPACT) (set 2)", + "j6crackb", "Cracker (JPM) (IMPACT) (set 3)", + "j6crackc", "Cracker (JPM) (IMPACT) (set 4)", + "j6crackd", "Cracker (JPM) (IMPACT) (set 5)", + "j6cracke", "Cracker (JPM) (IMPACT) (set 6)", + "j6crackf", "Cracker (JPM) (IMPACT) (set 7)", + "j6crackg", "Cracker (JPM) (IMPACT) (set 8)", + "j6crackh", "Cracker (JPM) (IMPACT) (set 9)", + "j6cracki", "Cracker (JPM) (IMPACT) (set 10)", + "j6crackj", "Cracker (JPM) (IMPACT) (set 11)", + "j6crakr", "Cracker (Crystal) (IMPACT) (set 1)", + "j6crakra", "Cracker (Crystal) (IMPACT) (set 2)", + "j6crakrb", "Cracker (Crystal) (IMPACT) (set 3)", + "j6crsfir", "Cross Fire (JPM) (IMPACT) (set 1)", + "j6crsfira", "Cross Fire (JPM) (IMPACT) (set 2)", + "j6crzclb", "Crazy Club (JPM) (IMPACT) (set 1)", + "j6crzclba", "Crazy Club (JPM) (IMPACT) (set 2)", + "j6crzclbb", "Crazy Club (JPM) (IMPACT) (set 3)", + "j6crzclbc", "Crazy Club (JPM) (IMPACT) (set 4)", + "j6cshbeu", "Cash Box Club (Empire) (Euro) (IMPACT)", + "j6cshbox", "Cash Box Club (Empire) (IMPACT) (set 1)", + "j6cshboxa", "Cash Box Club (Empire) (IMPACT) (set 2)", + "j6cshboxb", "Cash Box Club (Empire) (IMPACT) (set 3)", + "j6cshbst", "Cash Buster (JPM) (IMPACT) (set 1)", + "j6cshbsta", "Cash Buster (JPM) (IMPACT) (set 2)", + "j6cshbstb", "Cash Buster (JPM) (IMPACT) (set 3)", + "j6cshbstc", "Cash Buster (JPM) (IMPACT) (set 4)", + "j6cshbstd", "Cash Buster (JPM) (IMPACT) (set 5)", + "j6cshcnt", "Cash Countdown (JPM) (IMPACT) (set 1)", + "j6cshcnta", "Cash Countdown (JPM) (IMPACT) (set 2)", + "j6cshrd", "Cash Raider (Ace) (IMPACT) (set 1)", + "j6cshrda", "Cash Raider (Ace) (IMPACT) (set 2)", + "j6cshrdb", "Cash Raider (Ace) (IMPACT) (set 3)", + "j6cshrdc", "Cash Raider (Ace) (IMPACT) (set 4)", + "j6cshrdd", "Cash Raider (Ace) (IMPACT) (set 5)", + "j6cshtwr", "Cash Towers (JPM) (IMPACT)", + "j6cshvgs", "Cash Vegas Strip (JPM) (IMPACT) (set 1)", + "j6cshvgsa", "Cash Vegas Strip (JPM) (IMPACT) (set 2)", + "j6cshvgsb", "Cash Vegas Strip (JPM) (IMPACT) (set 3)", + "j6cshvgsc", "Cash Vegas Strip (JPM) (IMPACT) (set 4)", + "j6cshvgsd", "Cash Vegas Strip (JPM) (IMPACT) (set 5)", + "j6cshvgse", "Cash Vegas Strip (JPM) (IMPACT) (set 6)", + "j6cshvgsf", "Cash Vegas Strip (JPM) (IMPACT) (set 7)", + "j6cshvgsg", "Cash Vegas Strip (JPM) (IMPACT) (set 8)", + "j6cshvgsh", "Cash Vegas Strip (JPM) (IMPACT) (set 9)", + "j6cshvgsi", "Cash Vegas Strip (JPM) (IMPACT) (set 10)", + "j6cshvgsj", "Cash Vegas Strip (JPM) (IMPACT) (set 11)", + "j6cshvgsk", "Cash Vegas Strip (JPM) (IMPACT) (set 12)", + "j6cshvgsl", "Cash Vegas Strip (JPM) (IMPACT) (set 13)", + "j6cshvgsm", "Cash Vegas Strip (JPM) (IMPACT) (set 14)", + "j6cshvgsn", "Cash Vegas Strip (JPM) (IMPACT) (set 15)", + "j6cshvgso", "Cash Vegas Strip (JPM) (IMPACT) (set 16)", + "j6cshvgsp", "Cash Vegas Strip (JPM) (IMPACT) (set 17)", + "j6cshvgsq", "Cash Vegas Strip (JPM) (IMPACT) (set 18)", + "j6cshvgsr", "Cash Vegas Strip (JPM) (IMPACT) (set 19)", + "j6daygld", "Daytona Gold (JPM) (IMPACT) (set 1)", + "j6dayglda", "Daytona Gold (JPM) (IMPACT) (set 2)", + "j6daygldb", "Daytona Gold (JPM) (IMPACT) (set 3)", + "j6daygldc", "Daytona Gold (JPM) (IMPACT) (set 4)", + "j6daygldd", "Daytona Gold (JPM) (IMPACT) (set 5)", + "j6dayglde", "Daytona Gold (JPM) (IMPACT) (set 6)", + "j6dayml", "Daytona Millennium (JPM) (IMPACT) (set 1)", + "j6daymla", "Daytona Millennium (JPM) (IMPACT) (set 2)", + "j6daymlb", "Daytona Millennium (JPM) (IMPACT) (set 3)", + "j6dmngz", "Diamond Geezer (JPM) (IMPACT)", + "j6dmnjkr", "Demon Jokers (JPM) (IMPACT) (set 1)", + "j6dmnjkra", "Demon Jokers (JPM) (IMPACT) (set 2)", + "j6dmnjkrb", "Demon Jokers (JPM) (IMPACT) (set 3)", + "j6dmnjkrc", "Demon Jokers (JPM) (IMPACT) (set 4)", + "j6drdogh", "Dr Dough (Qps) (IMPACT)", + "j6dyfl", "Do You Feel Lucky (JPM) (IMPACT) (set 1)", + "j6dyfla", "Do You Feel Lucky (JPM) (IMPACT) (set 2)", + "j6dyflb", "Do You Feel Lucky (JPM) (IMPACT) (set 3)", + "j6dyflc", "Do You Feel Lucky (JPM) (IMPACT) (set 4)", + "j6dyfld", "Do You Feel Lucky (JPM) (IMPACT) (set 5)", + "j6dyfle", "Do You Feel Lucky (JPM) (IMPACT) (set 6)", + "j6dyflf", "Do You Feel Lucky (JPM) (IMPACT) (set 7)", + "j6dyflg", "Do You Feel Lucky (JPM) (IMPACT) (set 8)", + "j6dyflh", "Do You Feel Lucky (JPM) (IMPACT) (set 9)", + "j6dyfli", "Do You Feel Lucky (JPM) (IMPACT) (set 10)", + "j6dyflj", "Do You Feel Lucky (JPM) (IMPACT) (set 11)", + "j6easy", "Easy Money (Crystal) (IMPACT) (set 1)", + "j6easya", "Easy Money (Crystal) (IMPACT) (set 2)", + "j6easyb", "Easy Money (Crystal) (IMPACT) (set 3)", + "j6easyc", "Easy Money (Crystal) (IMPACT) (set 4)", + "j6euphor", "Euphoria (Ace) (IMPACT) (set 1)", + "j6euphora", "Euphoria (Ace) (IMPACT) (set 2)", + "j6euphorb", "Euphoria (Ace) (IMPACT) (set 3)", + "j6euphorc", "Euphoria (Ace) (IMPACT) (set 4)", + "j6euphord", "Euphoria (Ace) (IMPACT) (set 5)", + "j6euphore", "Euphoria (Ace) (IMPACT) (set 6)", + "j6euphorf", "Euphoria (Ace) (IMPACT) (set 7)", + "j6ewn", "Each Way Nudger (JPM) (IMPACT)", + "j6ewndg", "Each Way Nudger (Crystal) (IMPACT) (set 1)", + "j6ewndga", "Each Way Nudger (Crystal) (IMPACT) (set 2)", + "j6ewndgb", "Each Way Nudger (Crystal) (IMPACT) (set 3)", + "j6fastfr", "Fast Fruits Club (Qps) (IMPACT) (set 1)", + "j6fastfra", "Fast Fruits Club (Qps) (IMPACT) (set 2)", + "j6fasttk", "Fast Trak (JPM) (IMPACT) (set 1)", + "j6fasttka", "Fast Trak (JPM) (IMPACT) (set 2)", + "j6fasttkb", "Fast Trak (JPM) (IMPACT) (set 3)", + "j6fasttkc", "Fast Trak (JPM) (IMPACT) (set 4)", + "j6fbcrz", "Football Crazy (JPM) (IMPACT)", + "j6ffc", "Frame & Fortune Club (Crystal) (IMPACT) (set 1)", + "j6ffca", "Frame & Fortune Club (Crystal) (IMPACT) (set 2)", + "j6ffcb", "Frame & Fortune Club (Crystal) (IMPACT) (set 3)", + "j6ffcc", "Frame & Fortune Club (Crystal) (IMPACT) (set 4)", + "j6ffcd", "Frame & Fortune Club (Crystal) (IMPACT) (set 5)", + "j6ffce", "Frame & Fortune Club (Crystal) (IMPACT) (set 6)", + "j6fifth", "5th Dimension (Ace) (IMPACT)", + "j6filth", "Filthy Rich Club (JPM) (IMPACT) (set 1)", + "j6filtha", "Filthy Rich Club (JPM) (IMPACT) (set 2)", + "j6filthb", "Filthy Rich Club (JPM) (IMPACT) (set 3)", + "j6filthc", "Filthy Rich Club (JPM) (IMPACT) (set 4)", + "j6firbl", "Fireball (JPM) (IMPACT) (set 1)", + "j6firbla", "Fireball (JPM) (IMPACT) (set 2)", + "j6firblb", "Fireball (JPM) (IMPACT) (set 3)", + "j6firblc", "Fireball (JPM) (IMPACT) (set 4)", + "j6firbld", "Fireball (JPM) (IMPACT) (set 5)", + "j6firclb", "Firecracker Club (JPM) (IMPACT) (set 1)", + "j6firclba", "Firecracker Club (JPM) (IMPACT) (set 2)", + "j6firclbb", "Firecracker Club (JPM) (IMPACT) (set 3)", + "j6firclbc", "Firecracker Club (JPM) (IMPACT) (set 4)", + "j6fireck", "Firecracker (JPM) (IMPACT) (set 1)", + "j6firecka", "Firecracker (JPM) (IMPACT) (set 2)", + "j6fireckb", "Firecracker (JPM) (IMPACT) (set 3)", + "j6fireckc", "Firecracker (JPM) (IMPACT) (set 4)", + "j6fireckd", "Firecracker (JPM) (IMPACT) (set 5)", + "j6firecke", "Firecracker (JPM) (IMPACT) (set 6)", + "j6fivalv", "Five Alive Club (JPM) (IMPACT) (set 1)", + "j6fivalva", "Five Alive Club (JPM) (IMPACT) (set 2)", + "j6fivalvb", "Five Alive Club (JPM) (IMPACT) (set 3)", + "j6fiveln", "Five Liner (JPM) (IMPACT) (set 1)", + "j6fivelna", "Five Liner (JPM) (IMPACT) (set 2)", + "j6fivelnb", "Five Liner (JPM) (IMPACT) (set 3)", + "j6fivelnc", "Five Liner (JPM) (IMPACT) (set 4)", + "j6footy", "Football Fever (Empire) (IMPACT) (set 1)", + "j6footya", "Football Fever (Empire) (IMPACT) (set 2)", + "j6footyb", "Football Fever (Empire) (IMPACT) (set 3)", + "j6framft", "Frame & Fortune Club (JPM) (IMPACT)", + "j6frc10", "Force 10 (JPM) (IMPACT) (set 1)", + "j6frc10a", "Force 10 (JPM) (IMPACT) (set 2)", + "j6frc10b", "Force 10 (JPM) (IMPACT) (set 3)", + "j6frc10c", "Force 10 (JPM) (IMPACT) (set 4)", + "j6frc10d", "Force 10 (JPM) (IMPACT) (set 5)", + "j6frtmch", "The Fruit Machine (JPM) (IMPACT)", + "j6frtpot", "Fruitpots (Qps) (IMPACT) (set 1)", + "j6frtpota", "Fruitpots (Qps) (IMPACT) (set 2)", + "j6frtpotb", "Fruitpots (Qps) (IMPACT) (set 3)", + "j6frtpotc", "Fruitpots (Qps) (IMPACT) (set 4)", + "j6gforce", "G Force (JPM) (IMPACT) (set 1)", + "j6gforcea", "G Force (JPM) (IMPACT) (set 2)", + "j6gforceb", "G Force (JPM) (IMPACT) (set 3)", + "j6gforcec", "G Force (JPM) (IMPACT) (set 4)", + "j6gforced", "G Force (JPM) (IMPACT) (15GBP Jackpot)", + "j6gidogh", "G.I. Dough (Ace) (IMPACT)", + "j6gldclb", "Gladiator Club (JPM) (IMPACT) (set 1)", + "j6gldclba", "Gladiator Club (JPM) (IMPACT) (set 2)", + "j6gldclbb", "Gladiator Club (JPM) (IMPACT) (set 3)", + "j6gldmin", "Gold Mine (Empire) (IMPACT)", + "j6gldpl", "Golden Palace (Qps) (IMPACT)", + "j6gogold", "Go For Gold (JPM) (IMPACT) (set 1)", + "j6gogolda", "Go For Gold (JPM) (IMPACT) (set 2)", + "j6gogoldb", "Go For Gold (JPM) (IMPACT) (set 3)", + "j6gogoldc", "Go For Gold (JPM) (IMPACT) (set 4)", + "j6golddm", "Golden Demons (JPM) (IMPACT) (set 1)", + "j6golddma", "Golden Demons (JPM) (IMPACT) (set 2)", + "j6goldgl", "Golden Goal (JPM) (IMPACT) (set 1)", + "j6goldgla", "Golden Goal (JPM) (IMPACT) (set 2)", + "j6goldglb", "Golden Goal (JPM) (IMPACT) (set 3)", + "j6goldglc", "Golden Goal (JPM) (IMPACT) (set 4)", + "j6goldgld", "Golden Goal (JPM) (IMPACT) (set 5)", + "j6goldgle", "Golden Goal (JPM) (IMPACT) (set 6)", + "j6goldglf", "Golden Goal (JPM) (IMPACT) (set 7)", + "j6goldglg", "Golden Goal (JPM) (IMPACT) (set 8)", + "j6goldglh", "Golden Goal (JPM) (IMPACT) (set 9)", + "j6goldgli", "Golden Goal (JPM) (IMPACT) (set 10)", + "j6goldglj", "Golden Goal (JPM) (IMPACT) (set 11)", + "j6goldglk", "Golden Goal (JPM) (IMPACT) (set 12)", + "j6goldgll", "Golden Goal (JPM) (IMPACT) (set 13)", + "j6grc", "Gold Rush Club (Crystal) (IMPACT) (set 1)", + "j6grca", "Gold Rush Club (Crystal) (IMPACT) (set 2)", + "j6guab", "Give Us A Break (JPM) (IMPACT) (set 1)", + "j6guaba", "Give Us A Break (JPM) (IMPACT) (set 2)", + "j6guabb", "Give Us A Break (JPM) (IMPACT) (set 3)", + "j6guabc", "Give Us A Break (JPM) (IMPACT) (set 4)", + "j6guabcl", "Give Us A Break Club (JPM) (IMPACT) (set 1)", + "j6guabcla", "Give Us A Break Club (JPM) (IMPACT) (set 2)", + "j6guabd", "Give Us A Break (JPM) (IMPACT) (set 5)", + "j6guabe", "Give Us A Break (JPM) (IMPACT) (set 6)", + "j6guabf", "Give Us A Break (JPM) (IMPACT) (set 7)", + "j6h5clb", "High Five Club (JPM) (IMPACT) (set 1)", + "j6h5clba", "High Five Club (JPM) (IMPACT) (set 2)", + "j6hapyhr", "Happy Hour (JPM) (IMPACT) (set 1)", + "j6hapyhra", "Happy Hour (JPM) (IMPACT) (set 2)", + "j6hapyhrb", "Happy Hour (JPM) (IMPACT) (set 3)", + "j6hdc", "Hot Dogs Club (Crystal) (IMPACT) (set 1)", + "j6hdca", "Hot Dogs Club (Crystal) (IMPACT) (set 2)", + "j6hdcb", "Hot Dogs Club (Crystal) (IMPACT) (set 3)", + "j6hdcc", "Hot Dogs Club (Crystal) (IMPACT) (set 4)", + "j6hdcd", "Hot Dogs Club (Crystal) (IMPACT) (set 5)", + "j6hdce", "Hot Dogs Club (Crystal) (IMPACT) (set 6)", + "j6hdcf", "Hot Dogs Club (Crystal) (IMPACT) (set 7)", + "j6hdcg", "Hot Dogs Club (Crystal) (IMPACT) (set 8)", + "j6hifly", "Hi Flyer (Crystal) (IMPACT)", + "j6hikar", "Hi Karate (Crystal) (IMPACT) (set 1)", + "j6hikara", "Hi Karate (Crystal) (IMPACT) (set 2)", + "j6hikarb", "Hi Karate (Crystal) (IMPACT) (set 3)", + "j6hilosv", "Hi Lo Silver (JPM) (IMPACT) (set 1)", + "j6hilosva", "Hi Lo Silver (JPM) (IMPACT) (set 2)", + "j6hilosvb", "Hi Lo Silver (JPM) (IMPACT) (set 3)", + "j6hilosvc", "Hi Lo Silver (JPM) (IMPACT) (set 4)", + "j6hilosvd", "Hi Lo Silver (JPM) (IMPACT) (set 5)", + "j6hilosve", "Hi Lo Silver (JPM) (IMPACT) (set 6)", + "j6hiphop", "Hip Hopper (Ace) (IMPACT) (set 1)", + "j6hiphopa", "Hip Hopper (Ace) (IMPACT) (set 2)", + "j6hiphopb", "Hip Hopper (Ace) (IMPACT) (set 3)", + "j6hiphopc", "Hip Hopper (Ace) (IMPACT) (set 4)", + "j6hiphopd", "Hip Hopper (Ace) (IMPACT) (set 5)", + "j6hirlcl", "Hi Roller Club (JPM) (IMPACT) (set 1)", + "j6hirlcla", "Hi Roller Club (JPM) (IMPACT) (set 2)", + "j6hirlclb", "Hi Roller Club (JPM) (IMPACT) (set 3)", + "j6hirlclc", "Hi Roller Club (JPM) (IMPACT) (set 4)", + "j6hirol", "Hi Roller (JPM) (IMPACT) (set 1)", + "j6hirola", "Hi Roller (JPM) (IMPACT) (set 2)", + "j6hirolb", "Hi Roller (JPM) (IMPACT) (set 3)", + "j6hirolc", "Hi Roller (JPM) (IMPACT) (set 4)", + "j6hirold", "Hi Roller (JPM) (IMPACT) (set 5)", + "j6hisprt", "High Spirits (Empire) (IMPACT) (prototype?)", + "j6histk", "Hi Stakes (Qps) (IMPACT) (set 1)", + "j6histka", "Hi Stakes (Qps) (IMPACT) (set 2)", + "j6hotsht", "Hot Shot (Ace) (IMPACT) (set 1)", + "j6hotshta", "Hot Shot (Ace) (IMPACT) (set 2)", + "j6hotshtb", "Hot Shot (Ace) (IMPACT) (set 3)", + "j6hotshtc", "Hot Shot (Ace) (IMPACT) (set 4)", + "j6hotshtd", "Hot Shot (Ace) (IMPACT) (set 5)", + "j6hotshte", "Hot Shot (Ace) (IMPACT) (set 6)", + "j6hotshtf", "Hot Shot (Ace) (IMPACT) (set 7)", + "j6hotshtg", "Hot Shot (Ace) (IMPACT) (set 8)", + "j6hotshth", "Hot Shot (Ace) (IMPACT) (set 9)", + "j6hotshti", "Hot Shot (Ace) (IMPACT) (set 10)", + "j6hotshtj", "Hot Shot (Ace) (IMPACT) (set 11)", + "j6hotshtk", "Hot Shot (Ace) (IMPACT) (set 12)", + "j6hotshtl", "Hot Shot (Ace) (IMPACT) (set 13)", + "j6impact", "Hi Impact (JPM) (IMPACT) (set 1)", + "j6impacta", "Hi Impact (JPM) (IMPACT) (set 2)", + "j6impactb", "Hi Impact (JPM) (IMPACT) (set 3)", + "j6impactc", "Hi Impact (JPM) (IMPACT) (15GBP Jackpot)", + "j6impls", "Impulse (Crystal) (IMPACT)", + "j6impuls", "Impulse (JPM) (IMPACT) (set 1)", + "j6impulsa", "Impulse (JPM) (IMPACT) (set 2)", + "j6impulsb", "Impulse (JPM) (IMPACT) (set 3)", + "j6impulsc", "Impulse (JPM) (IMPACT) (set 4)", + "j6impulsd", "Impulse (JPM) (IMPACT) (set 5)", + "j6impulse", "Impulse (JPM) (IMPACT) (set 6)", + "j6impulsf", "Impulse (JPM) (IMPACT) (set 7)", + "j6indy", "Indiana Jones (JPM) (IMPACT) (set 1)", + "j6indya", "Indiana Jones (JPM) (IMPACT) (set 2)", + "j6indyb", "Indiana Jones (JPM) (IMPACT) (set 3)", + "j6indyc", "Indiana Jones (JPM) (IMPACT) (set 4)", + "j6indyd", "Indiana Jones (JPM) (IMPACT) (set 5)", + "j6indye", "Indiana Jones (JPM) (IMPACT) (set 6)", + "j6indyf", "Indiana Jones (JPM) (IMPACT) (set 7)", + "j6indyg", "Indiana Jones (JPM) (IMPACT) (set 8)", + "j6indyge", "Indiana Jones (JPM) (IMPACT, German set 1)", + "j6indyge2", "Indiana Jones (JPM) (IMPACT, German set 2)", + "j6indyh", "Indiana Jones (JPM) (IMPACT) (set 9)", + "j6indyi", "Indiana Jones (JPM) (IMPACT) (set 10)", + "j6indyj", "Indiana Jones (JPM) (IMPACT) (set 11)", + "j6indyk", "Indiana Jones (JPM) (IMPACT) (set 12)", + "j6jackjs", "Jackpot Justice (Qps) (IMPACT) (set 1)", + "j6jackjsa", "Jackpot Justice (Qps) (IMPACT) (set 2)", + "j6jackjsb", "Jackpot Justice (Qps) (IMPACT) (set 3)", + "j6jackjsc", "Jackpot Justice (Qps) (IMPACT) (set 4)", + "j6jkpldx", "Jokers Plus Deluxe (JPM) (IMPACT) (set 1)", + "j6jkpldxa", "Jokers Plus Deluxe (JPM) (IMPACT) (set 2)", + "j6jkrgld", "Jokers Gold (JPM) (IMPACT)", + "j6jkrpls", "Jokers Plus (JPM) (IMPACT) (set 1)", + "j6jkrplsa", "Jokers Plus (JPM) (IMPACT) (set 2)", + "j6jkrplsb", "Jokers Plus (JPM) (IMPACT) (set 3)", + "j6jkrplsc", "Jokers Plus (JPM) (IMPACT) (set 4)", + "j6jkrplsd", "Jokers Plus (JPM) (IMPACT) (set 5)", + "j6jkrplse", "Jokers Plus (JPM) (IMPACT) (set 6)", + "j6jkwld", "Jokers Wild (JPM) (IMPACT)", + "j6jungfv", "Jungle Fever (Ace) (IMPACT)", + "j6kamel", "Kameleon (JPM) (IMPACT)", + "j6kapang", "Kapang! (Crystal) (IMPACT) (set 1)", + "j6kapanga", "Kapang! (Crystal) (IMPACT) (set 2)", + "j6kfc", "Kung Fu Club (Crystal) (IMPACT) (set 1)", + "j6kfca", "Kung Fu Club (Crystal) (IMPACT) (set 2)", + "j6kfcb", "Kung Fu Club (Crystal) (IMPACT) (set 3)", + "j6knight", "Your Lucky Knight (JPM) (IMPACT) (set 1)", + "j6knighta", "Your Lucky Knight (JPM) (IMPACT) (set 2)", + "j6knightb", "Your Lucky Knight (JPM) (IMPACT) (set 3)", + "j6knightc", "Your Lucky Knight (JPM) (IMPACT) (set 4)", + "j6knightd", "Your Lucky Knight (JPM) (IMPACT) (set 5)", + "j6knighte", "Your Lucky Knight (JPM) (IMPACT) (set 6)", + "j6kungfu", "Kung Fu (Ace) (IMPACT) (set 1)", + "j6kungfua", "Kung Fu (Ace) (IMPACT) (set 2)", + "j6kungfub", "Kung Fu (Ace) (IMPACT) (set 3)", + "j6kungfuc", "Kung Fu (Ace) (IMPACT) (set 4)", + "j6kungfud", "Kung Fu (Ace) (IMPACT) (set 5)", + "j6luckla", "Lucky Las Vegas (JPM) (IMPACT) (set 1)", + "j6lucklaa", "Lucky Las Vegas (JPM) (IMPACT) (set 2)", + "j6lucklab", "Lucky Las Vegas (JPM) (IMPACT) (set 3)", + "j6lucklo", "Lucky Lottery Club (Crystal) (IMPACT) (set 1)", + "j6luckloa", "Lucky Lottery Club (Crystal) (IMPACT) (set 2)", + "j6magcir", "Magic Circle Club (JPM) (IMPACT) (set 1)", + "j6magcira", "Magic Circle Club (JPM) (IMPACT) (set 2)", + "j6magcirb", "Magic Circle Club (JPM) (IMPACT) (set 3)", + "j6magcirc", "Magic Circle Club (JPM) (IMPACT) (set 4)", + "j6magcird", "Magic Circle Club (JPM) (IMPACT) (set 5)", + "j6mavrk", "Maverick (JPM) (IMPACT) (set 1)", + "j6mavrka", "Maverick (JPM) (IMPACT) (set 2)", + "j6mavrkb", "Maverick (JPM) (IMPACT) (set 3)", + "j6mavrkc", "Maverick (JPM) (IMPACT) (set 4)", + "j6mavrkd", "Maverick (JPM) (IMPACT) (set 5)", + "j6maxcsh", "Maximus Cash (JPM) (IMPACT)", + "j6maxod", "Maximum Overdrive (JPM) (IMPACT) (set 1)", + "j6maxoda", "Maximum Overdrive (JPM) (IMPACT) (set 2)", + "j6maxodb", "Maximum Overdrive (JPM) (IMPACT) (set 3)", + "j6maxodc", "Maximum Overdrive (JPM) (IMPACT) (set 4)", + "j6medal", "Medallion Job (Qps) (IMPACT) (set 1)", + "j6medala", "Medallion Job (Qps) (IMPACT) (set 2)", + "j6medalb", "Medallion Job (Qps) (IMPACT) (set 3)", + "j6medalc", "Medallion Job (Qps) (IMPACT) (set 4)", + "j6medald", "Medallion Job (Qps) (IMPACT) (set 5)", + "j6megbck", "Mega Bucks (JPM) (IMPACT) (set 1)", + "j6megbcka", "Mega Bucks (JPM) (IMPACT) (set 2)", + "j6megbckb", "Mega Bucks (JPM) (IMPACT) (set 3)", + "j6megbckc", "Mega Bucks (JPM) (IMPACT) (set 4)", + "j6megbckd", "Mega Bucks (JPM) (IMPACT) (set 5)", + "j6milln", "Millionaire (JPM) (IMPACT) (set 1)", + "j6millna", "Millionaire (JPM) (IMPACT) (set 2)", + "j6monmad", "Money Madness (Ace) (IMPACT)", + "j6mono60", "Monopoly 60th Anniversary Edition (JPM) (IMPACT) (set 1)", + "j6mono60a", "Monopoly 60th Anniversary Edition (JPM) (IMPACT) (set 2)", + "j6mono60b", "Monopoly 60th Anniversary Edition (JPM) (IMPACT) (set 3)", + "j6mono60c", "Monopoly 60th Anniversary Edition (JPM) (IMPACT) (set 4)", + "j6mono60d", "Monopoly 60th Anniversary Edition (JPM) (IMPACT) (set 5)", + "j6mono60e", "Monopoly 60th Anniversary Edition (JPM) (IMPACT) (set 6)", + "j6mono60f", "Monopoly 60th Anniversary Edition (JPM) (IMPACT) (set 7)", + "j6mono60g", "Monopoly 60th Anniversary Edition (JPM) (IMPACT) (set 8)", + "j6mono60h", "Monopoly 60th Anniversary Edition (JPM) (IMPACT) (set 9)", + "j6mono60i", "Monopoly 60th Anniversary Edition (JPM) (IMPACT) (set 10)", + "j6mono60j", "Monopoly 60th Anniversary Edition (JPM) (IMPACT) (set 11)", + "j6mono60k", "Monopoly 60th Anniversary Edition (JPM) (IMPACT) (set 12)", + "j6mono60l", "Monopoly 60th Anniversary Edition (JPM) (IMPACT) (set 13)", + "j6monobn", "Monopoly Bingo (JPM) (IMPACT) (set 1)", + "j6monobna", "Monopoly Bingo (JPM) (IMPACT) (set 2)", + "j6monobnb", "Monopoly Bingo (JPM) (IMPACT) (set 3)", + "j6monst", "Monster Cash Club (Crystal) (IMPACT) (set 1)", + "j6monsta", "Monster Cash Club (Crystal) (IMPACT) (set 2)", + "j6monstb", "Monster Cash Club (Crystal) (IMPACT) (set 3)", + "j6monstc", "Monster Cash Club (Crystal) (IMPACT) (set 4)", + "j6monstd", "Monster Cash Club (Crystal) (IMPACT) (set 5)", + "j6montlk", "Money Talks (JPM) (IMPACT) (set 1)", + "j6montlka", "Money Talks (JPM) (IMPACT) (set 2)", + "j6montlkb", "Money Talks (JPM) (IMPACT) (set 3)", + "j6montlkc", "Money Talks (JPM) (IMPACT) (set 4)", + "j6montlkd", "Money Talks (JPM) (IMPACT) (set 5)", + "j6montlke", "Money Talks (JPM) (IMPACT) (set 6)", + "j6montlkf", "Money Talks (JPM) (IMPACT) (set 7)", + "j6montlkg", "Money Talks (JPM) (IMPACT) (set 8)", + "j6montlkh", "Money Talks (JPM) (IMPACT) (set 9)", + "j6outlaw", "Outlaw (JPM) (IMPACT, v3)", + "j6outlawc", "Outlaw (JPM) (IMPACT, Club?)", + "j6outlawd", "Outlaw (JPM) (IMPACT, v3) (Protocol)", + "j6oxo", "Oxo (JPM) (IMPACT) (set 1)", + "j6oxoa", "Oxo (JPM) (IMPACT) (set 2)", + "j6oxob", "Oxo (JPM) (IMPACT) (set 3)", + "j6oxobin", "Oxo Bingo (JPM) (IMPACT) (set 1)", + "j6oxobina", "Oxo Bingo (JPM) (IMPACT) (set 2)", + "j6oxobinb", "Oxo Bingo (JPM) (IMPACT) (set 3)", + "j6oxobinc", "Oxo Bingo (JPM) (IMPACT) (set 4)", + "j6oxobind", "Oxo Bingo (JPM) (IMPACT) (set 5)", + "j6oxobine", "Oxo Bingo (JPM) (IMPACT) (set 6)", + "j6oxobinf", "Oxo Bingo (JPM) (IMPACT) (set 7)", + "j6oxoc", "Oxo (JPM) (IMPACT) (set 4)", + "j6oxod", "Oxo (JPM) (IMPACT) (set 5)", + "j6oxoe", "Oxo (JPM) (IMPACT) (set 6)", + "j6pacman", "Pac Man Plus (Qps) (IMPACT)", + "j6papa", "Paparazzi (Empire) (IMPACT) (set 1)", + "j6papaa", "Paparazzi (Empire) (IMPACT) (set 2)", + "j6papab", "Paparazzi (Empire) (IMPACT) (set 3)", + "j6papac", "Paparazzi (Empire) (IMPACT) (set 4)", + "j6papad", "Paparazzi (Empire) (IMPACT) (set 5)", + "j6papae", "Paparazzi (Empire) (IMPACT) (set 6)", + "j6papaf", "Paparazzi (Empire) (IMPACT) (set 7)", + "j6phxgld", "Phoenix Gold (JPM) (IMPACT) (set 1)", + "j6phxglda", "Phoenix Gold (JPM) (IMPACT) (set 2)", + "j6phxgldb", "Phoenix Gold (JPM) (IMPACT) (set 3)", + "j6phxgldc", "Phoenix Gold (JPM) (IMPACT) (set 4)", + "j6phxgldd", "Phoenix Gold (JPM) (IMPACT) (set 5)", + "j6phxglde", "Phoenix Gold (JPM) (IMPACT) (set 6)", + "j6phxgldf", "Phoenix Gold (JPM) (IMPACT) (set 7)", + "j6phxgldg", "Phoenix Gold (JPM) (IMPACT) (set 8)", + "j6pinfvr", "Pinball Fever (Crystal) (IMPACT)", + "j6pinwzc", "Pinball Wizard (Crystal) (IMPACT) (set 1)", + "j6pinwzca", "Pinball Wizard (Crystal) (IMPACT) (set 2)", + "j6pinwzcb", "Pinball Wizard (Crystal) (IMPACT) (set 3)", + "j6pinwzd", "Pinball Wizard (JPM) (IMPACT) (set 1)", + "j6pinwzda", "Pinball Wizard (JPM) (IMPACT) (set 2)", + "j6pinwzdb", "Pinball Wizard (JPM) (IMPACT) (set 3)", + "j6pinwzdc", "Pinball Wizard (JPM) (IMPACT) (set 4)", + "j6pinwzdd", "Pinball Wizard (JPM) (IMPACT) (set 5)", + "j6pinwzde", "Pinball Wizard (JPM) (IMPACT) (set 6)", + "j6pirgld", "Pirates Gold (JPM) (IMPACT) (set 1)", + "j6pirglda", "Pirates Gold (JPM) (IMPACT) (set 2)", + "j6pnxgd", "Phoenix Gold De Luxe (JPM) (IMPACT)", + "j6pnxmil", "Phoenix Millennium (JPM) (IMPACT) (set 1)", + "j6pnxmila", "Phoenix Millennium (JPM) (IMPACT) (set 2)", + "j6pnxmilb", "Phoenix Millennium (JPM) (IMPACT) (set 3)", + "j6pnxmilc", "Phoenix Millennium (JPM) (IMPACT) (set 4)", + "j6pog", "Pot Of Gold (Ace) (IMPACT) (set 1)", + "j6poga", "Pot Of Gold (Ace) (IMPACT) (set 2)", + "j6pogb", "Pot Of Gold (Ace) (IMPACT) (set 3)", + "j6pogc", "Pot Of Gold (Ace) (IMPACT) (set 4)", + "j6pogcls", "Pot Of Gold Classic (JPM) (IMPACT) (set 1)", + "j6pogclsa", "Pot Of Gold Classic (JPM) (IMPACT) (set 2)", + "j6pogclsb", "Pot Of Gold Classic (JPM) (IMPACT) (set 3)", + "j6pogd", "Pot Of Gold (Ace) (IMPACT) (set 5)", + "j6pompay", "Up Pompay (Ace) (IMPACT) (set 1)", + "j6pompaya", "Up Pompay (Ace) (IMPACT) (set 2)", + "j6pompayb", "Up Pompay (Ace) (IMPACT) (set 3)", + "j6pompayc", "Up Pompay (Ace) (IMPACT) (set 4)", + "j6popoli", "Popeye & Olive (JPM) (IMPACT) (set 1)", + "j6popolia", "Popeye & Olive (JPM) (IMPACT) (set 2)", + "j6potg", "Pot Of Gold (Crystal) (IMPACT) (set 1)", + "j6potga", "Pot Of Gold (Crystal) (IMPACT) (set 2)", + "j6potgb", "Pot Of Gold (Crystal) (IMPACT) (set 3)", + "j6pwrlin", "Power Lines (JPM) (IMPACT) (set 1)", + "j6pwrlina", "Power Lines (JPM) (IMPACT) (set 2)", + "j6pwrspn", "Powerspin (JPM) (IMPACT) (set 1)", + "j6pwrspna", "Powerspin (JPM) (IMPACT) (set 2)", + "j6pwrspnb", "Powerspin (JPM) (IMPACT) (set 3)", + "j6pwrspnc", "Powerspin (JPM) (IMPACT) (set 4)", + "j6pwrspnd", "Powerspin (JPM) (IMPACT) (set 5)", + "j6pwrspne", "Powerspin (JPM) (IMPACT) (set 6)", + "j6quantm", "Quantum Leap (JPM) (IMPACT) (set 1)", + "j6quantma", "Quantum Leap (JPM) (IMPACT) (set 2)", + "j6quantmb", "Quantum Leap (JPM) (IMPACT) (set 3)", + "j6quantmc", "Quantum Leap (JPM) (IMPACT) (set 4)", + "j6quick", "Quicksilver (RAL) (IMPACT)", + "j6r2rum", "Ready To Rumble (Crystal) (IMPACT) (set 1)", + "j6r2ruma", "Ready To Rumble (Crystal) (IMPACT) (set 2)", + "j6r2rumb", "Ready To Rumble (Crystal) (IMPACT) (set 3)", + "j6r2rumc", "Ready To Rumble (Crystal) (IMPACT) (set 4)", + "j6r2rumd", "Ready To Rumble (Crystal) (IMPACT) (set 5)", + "j6r2rume", "Ready To Rumble (Crystal) (IMPACT) (set 6)", + "j6ra", "Red Alert (JPM) (IMPACT) (set 1)", + "j6raa", "Red Alert (JPM) (IMPACT) (set 2)", + "j6rab", "Red Alert (JPM) (IMPACT) (set 3)", + "j6rac", "Red Alert (JPM) (IMPACT) (set 4)", + "j6raclb", "Red Alert Club (JPM) (IMPACT) (set 1)", + "j6raclba", "Red Alert Club (JPM) (IMPACT) (set 2)", + "j6raclbb", "Red Alert Club (JPM) (IMPACT) (set 3)", + "j6raclbc", "Red Alert Club (JPM) (IMPACT) (set 4)", + "j6raclbd", "Red Alert Club (JPM) (IMPACT) (set 5)", + "j6rad", "Red Alert (JPM) (IMPACT) (set 5)", + "j6rager", "Red Alert (JPM) [German] (IMPACT)", + "j6ramese", "Rameses' Riches Club (Crystal) (IMPACT) (set 1)", + "j6ramesea", "Rameses' Riches Club (Crystal) (IMPACT) (set 2)", + "j6rameseb", "Rameses' Riches Club (Crystal) (IMPACT) (set 3)", + "j6ramesec", "Rameses' Riches Club (Crystal) (IMPACT) (set 4)", + "j6ramesed", "Rameses' Riches Club (Crystal) (IMPACT) (set 5)", + "j6ramesee", "Rameses' Riches Club (Crystal) (IMPACT) (set 6)", + "j6ramesef", "Rameses' Riches Club (Crystal) (IMPACT) (set 7)", + "j6rccls", "Roller Coaster Classic (JPM) (IMPACT) (set 1)", + "j6rcclsa", "Roller Coaster Classic (JPM) (IMPACT) (set 2)", + "j6rcclsb", "Roller Coaster Classic (JPM) (IMPACT) (set 3)", + "j6rcclub", "Roller Coaster Club (JPM) (IMPACT) (set 1)", + "j6rccluba", "Roller Coaster Club (JPM) (IMPACT) (set 2)", + "j6rcclubb", "Roller Coaster Club (JPM) (IMPACT) (set 3)", + "j6redal", "Red Alert (Crystal) (IMPACT) (set 1)", + "j6redala", "Red Alert (Crystal) (IMPACT) (set 2)", + "j6redarw", "Red Arrow (JPM) (IMPACT) (set 1)", + "j6redarwa", "Red Arrow (JPM) (IMPACT) (set 2)", + "j6redarwb", "Red Arrow (JPM) (IMPACT) (set 3)", + "j6redarwc", "Red Arrow (JPM) (IMPACT) (set 4)", + "j6redarwd", "Red Arrow (JPM) (IMPACT) (set 5)", + "j6redarwe", "Red Arrow (JPM) (IMPACT) (set 6)", + "j6redarwf", "Red Arrow (JPM) (IMPACT) (set 7)", + "j6redarwg", "Red Arrow (JPM) (IMPACT) (set 8)", + "j6redarwh", "Red Arrow (JPM) (IMPACT) (set 9)", + "j6redarwi", "Red Arrow (JPM) (IMPACT) (set 10)", + "j6redarwj", "Red Arrow (JPM) (IMPACT) (set 11)", + "j6redarww", "Red Arrow (Whitbread / JPM) (IMPACT)", + "j6reddmn", "Red Demon (JPM) (IMPACT)", + "j6reelb", "Reel Bingo Classic Club (Crystal) (IMPACT) (set 1)", + "j6reelba", "Reel Bingo Classic Club (Crystal) (IMPACT) (set 2)", + "j6reelmn", "Reel Money (JPM) (IMPACT) (set 1)", + "j6reelmna", "Reel Money (JPM) (IMPACT) (set 2)", + "j6reelmnb", "Reel Money (JPM) (IMPACT) (set 3)", + "j6reelmnc", "Reel Money (JPM) (IMPACT) (set 4)", + "j6reelmnd", "Reel Money (JPM) (IMPACT) (set 5)", + "j6reelth", "Reel Thing (Ace) (IMPACT) set 1)", + "j6reeltha", "Reel Thing (Ace) (IMPACT) set 2)", + "j6reelthb", "Reel Thing (Ace) (IMPACT) set 3)", + "j6rh6", "Red Hot 6 (JPM) (IMPACT) (set 1)", + "j6rh6a", "Red Hot 6 (JPM) (IMPACT) (set 2)", + "j6rh6b", "Red Hot 6 (JPM) (IMPACT) (set 3)", + "j6rh6c", "Red Hot 6 (JPM) (IMPACT) (set 4)", + "j6rh6cl", "Red Hot Six Club (JPM) (IMPACT) (set 1)", + "j6rh6cla", "Red Hot Six Club (JPM) (IMPACT) (set 2)", + "j6rh6clb", "Red Hot Six Club (JPM) (IMPACT) (set 3)", + "j6rh6clc", "Red Hot Six Club (JPM) (IMPACT) (set 4)", + "j6rh6cld", "Red Hot Six Club (JPM) (IMPACT) (set 5)", + "j6rh6d", "Red Hot 6 (JPM) (IMPACT) (set 5)", + "j6rh6e", "Red Hot 6 (JPM) (IMPACT) (set 6)", + "j6rhchil", "Red Hot Chili Stepper (Ace) (IMPACT) (set 1)", + "j6rhchila", "Red Hot Chili Stepper (Ace) (IMPACT) (set 2)", + "j6rhchilb", "Red Hot Chili Stepper (Ace) (IMPACT) (set 3)", + "j6rhchilc", "Red Hot Chili Stepper (Ace) (IMPACT) (set 4)", + "j6rhchild", "Red Hot Chili Stepper (Ace) (IMPACT) (set 5)", + "j6richpk", "Rich Pickings (Ace) (IMPACT)", + "j6rico", "Ricochet (JPM) (IMPACT) (set 1)", + "j6ricoa", "Ricochet (JPM) (IMPACT) (set 2)", + "j6ricob", "Ricochet (JPM) (IMPACT) (set 3)", + "j6ricoc", "Ricochet (JPM) (IMPACT) (set 4)", + "j6ricod", "Ricochet (JPM) (IMPACT) (set 5)", + "j6ricoe", "Ricochet (JPM) (IMPACT) (set 6)", + "j6robin", "Robin Hood (Ace) (IMPACT) (set 1)", + "j6robina", "Robin Hood (Ace) (IMPACT) (set 2)", + "j6robinb", "Robin Hood (Ace) (IMPACT) (set 3)", + "j6robinc", "Robin Hood (Ace) (IMPACT) (set 4)", + "j6roller", "Roller Coaster (JPM) (IMPACT) (set 1)", + "j6rollera", "Roller Coaster (JPM) (IMPACT) (set 2)", + "j6rollerb", "Roller Coaster (JPM) (IMPACT) (set 3)", + "j6rollerc", "Roller Coaster (JPM) (IMPACT) (set 4)", + "j6rollerd", "Roller Coaster (JPM) (IMPACT) (set 5)", + "j6rollere", "Roller Coaster (JPM) (IMPACT) (set 6)", + "j6rollerf", "Roller Coaster (JPM) (IMPACT) (set 7)", + "j6rollerg", "Roller Coaster (JPM) (IMPACT) (set 8)", + "j6rollerh", "Roller Coaster (JPM) (IMPACT) (set 9)", + "j6rolleri", "Roller Coaster (JPM) (IMPACT) (set 10)", + "j6rollerj", "Roller Coaster (JPM) (IMPACT) (set 11)", + "j6rollerk", "Roller Coaster (JPM) (IMPACT) (set 12)", + "j6rollerl", "Roller Coaster (JPM) (IMPACT) (set 13)", + "j6rollerm", "Roller Coaster (JPM) (IMPACT) (set 14)", + "j6rollern", "Roller Coaster (JPM) (IMPACT) (set 15)", + "j6rollero", "Roller Coaster (JPM) (IMPACT) (set 16)", + "j6rollerp", "Roller Coaster (JPM) (IMPACT) (set 17)", + "j6roof", "Thru' The Roof (Ace) (IMPACT) (set 1)", + "j6roofa", "Thru' The Roof (Ace) (IMPACT) (set 2)", + "j6royfls", "Royal Flush Club (JPM) (IMPACT) (set 1)", + "j6royflsa", "Royal Flush Club (JPM) (IMPACT) (set 2)", + "j6royflsb", "Royal Flush Club (JPM) (IMPACT) (set 3)", + "j6royflsc", "Royal Flush Club (JPM) (IMPACT) (set 4)", + "j6royflsd", "Royal Flush Club (JPM) (IMPACT) (set 5)", + "j6royflse", "Royal Flush Club (JPM) (IMPACT) (set 6)", + "j6samur", "Samurai Club (JPM) (IMPACT) (set 1)", + "j6samura", "Samurai Club (JPM) (IMPACT) (set 2)", + "j6samurb", "Samurai Club (JPM) (IMPACT) (set 3)", + "j6samurc", "Samurai Club (JPM) (IMPACT) (set 4)", + "j6samurd", "Samurai Club (JPM) (IMPACT) (set 5)", + "j6scarlt", "Captain Scarlet (Ace) (IMPACT)", + "j6shoot", "ShootOut (JPM / Whitbread) (IMPACT)", + "j6showtm", "It's Showtime (JPM) (IMPACT) (set 1)", + "j6showtma", "It's Showtime (JPM) (IMPACT) (set 2)", + "j6showtmb", "It's Showtime (JPM) (IMPACT) (set 3)", + "j6showtmc", "It's Showtime (JPM) (IMPACT) (set 4)", + "j6showtmd", "It's Showtime (JPM) (IMPACT) (set 5)", + "j6showtme", "It's Showtime (JPM) (IMPACT) (set 6)", + "j6showtmf", "It's Showtime (JPM) (IMPACT) (set 7)", + "j6showtmg", "It's Showtime (JPM) (IMPACT) (set 8)", + "j6showtmh", "It's Showtime (JPM) (IMPACT) (set 9)", + "j6showtmi", "It's Showtime (JPM) (IMPACT) (set 10)", + "j6showtmj", "It's Showtime (JPM) (IMPACT) (set 11)", + "j6showtmk", "It's Showtime (JPM) (IMPACT) (set 12)", + "j6showtml", "It's Showtime (JPM) (IMPACT) (set 13)", + "j6sidewd", "Sidewinder (JPM) (IMPACT) (set 1)", + "j6sidewda", "Sidewinder (JPM) (IMPACT) (set 2)", + "j6sidewdb", "Sidewinder (JPM) (IMPACT) (set 3)", + "j6sidewdc", "Sidewinder (JPM) (IMPACT) (set 4)", + "j6sidewdd", "Sidewinder (JPM) (IMPACT) (set 5)", + "j6sidewde", "Sidewinder (JPM) (IMPACT) (set 6)", + "j6slagn", "Snakes & Ladders Slides Again (Crystal) (IMPACT) (set 1)", + "j6slagna", "Snakes & Ladders Slides Again (Crystal) (IMPACT) (set 2)", + "j6slagnb", "Snakes & Ladders Slides Again (Crystal) (IMPACT) (set 3)", + "j6slagnc", "Snakes & Ladders Slides Again (Crystal) (IMPACT) (set 4)", + "j6slagnd", "Snakes & Ladders Slides Again (Crystal) (IMPACT) (set 5)", + "j6slagne", "Snakes & Ladders Slides Again (Crystal) (IMPACT) (set 6)", + "j6slagnf", "Snakes & Ladders Slides Again (Crystal) (IMPACT) (set 7)", + "j6slagng", "Snakes & Ladders Slides Again (Crystal) (IMPACT) (set 8)", + "j6slagnh", "Snakes & Ladders Slides Again (Crystal) (IMPACT) (set 9)", + "j6slvgst", "Silver Ghost (JPM) (IMPACT) (set 1)", + "j6slvgsta", "Silver Ghost (JPM) (IMPACT) (set 2)", + "j6slvgstb", "Silver Ghost (JPM) (IMPACT) (set 3)", + "j6slvgstc", "Silver Ghost (JPM) (IMPACT) (set 4)", + "j6slvgstd", "Silver Ghost (JPM) (IMPACT) (set 5)", + "j6slvgste", "Silver Ghost (JPM) (IMPACT) (set 6)", + "j6slvgstf", "Silver Ghost (JPM) (IMPACT) (set 7)", + "j6slvgstg", "Silver Ghost (JPM) (IMPACT) (set 8)", + "j6snakes", "Snakes & Ladders (JPM) (IMPACT) (set 1)", + "j6snakesa", "Snakes & Ladders (JPM) (IMPACT) (set 2)", + "j6snakesb", "Snakes & Ladders (JPM) (IMPACT) (set 3)", + "j6snakesc", "Snakes & Ladders (JPM) (IMPACT) (set 4)", + "j6snakesd", "Snakes & Ladders (JPM) (IMPACT) (set 5)", + "j6snakese", "Snakes & Ladders (JPM) (IMPACT) (set 6)", + "j6snakesf", "Snakes & Ladders (JPM) (IMPACT) (set 7)", + "j6snakesg", "Snakes & Ladders (JPM) (IMPACT) (set 8)", + "j6sonic", "Sonic The Hedgehog (JPM) (IMPACT) (set 1)", + "j6sonica", "Sonic The Hedgehog (JPM) (IMPACT) (set 2)", + "j6sonicb", "Sonic The Hedgehog (JPM) (IMPACT) (set 3)", + "j6sonicc", "Sonic The Hedgehog (JPM) (IMPACT) (set 4)", + "j6sonicd", "Sonic The Hedgehog (JPM) (IMPACT) (set 5)", + "j6sonice", "Sonic The Hedgehog (JPM) (IMPACT) (set 6)", + "j6sonicf", "Sonic The Hedgehog (JPM) (IMPACT) (set 7)", + "j6sonicg", "Sonic The Hedgehog (JPM) (IMPACT) (set 8)", + "j6sonich", "Sonic The Hedgehog (JPM) (IMPACT) (set 9)", + "j6spcinv", "Space Invaders (Crystal) (IMPACT)", + "j6stards", "Stardust (JPM) (IMPACT) (set 1)", + "j6stardsa", "Stardust (JPM) (IMPACT) (set 2)", + "j6stardsb", "Stardust (JPM) (IMPACT) (set 3)", + "j6stardsc", "Stardust (JPM) (IMPACT) (set 4)", + "j6start", "Starturn (JPM) (IMPACT) (set 1)", + "j6starta", "Starturn (JPM) (IMPACT) (set 2)", + "j6strk10", "Strike 10 (Ace) (IMPACT) (set 1)", + "j6strk10a", "Strike 10 (Ace) (IMPACT) (set 2)", + "j6strk10b", "Strike 10 (Ace) (IMPACT) (set 3)", + "j6strk10c", "Strike 10 (Ace) (IMPACT) (set 4)", + "j6strk10d", "Strike 10 (Ace) (IMPACT) (set 5)", + "j6strk10e", "Strike 10 (Ace) (IMPACT) (set 6)", + "j6strk10f", "Strike 10 (Ace) (IMPACT) (set 7)", + "j6strk10g", "Strike 10 (Ace) (IMPACT) (set 8)", + "j6strk10h", "Strike 10 (Ace) (IMPACT) (set 9)", + "j6strk10i", "Strike 10 (Ace) (IMPACT) (set 10)", + "j6strk10j", "Strike 10 (Ace) (IMPACT) (set 11)", + "j6strk10k", "Strike 10 (Ace) (IMPACT) (set 12)", + "j6supbrk", "Super Breakout (JPM) (IMPACT) (set 1)", + "j6supbrka", "Super Breakout (JPM) (IMPACT) (set 2)", + "j6supbrkb", "Super Breakout (JPM) (IMPACT) (set 3)", + "j6supbrkc", "Super Breakout (JPM) (IMPACT) (set 4)", + "j6supbrkd", "Super Breakout (JPM) (IMPACT) (set 5)", + "j6supbrke", "Super Breakout (JPM) (IMPACT) (set 6)", + "j6supbrkf", "Super Breakout (JPM) (IMPACT) (set 7)", + "j6supbrkg", "Super Breakout (JPM) (IMPACT) (set 8)", + "j6supbrkh", "Super Breakout (JPM) (IMPACT) (set 9)", + "j6supbrki", "Super Breakout (JPM) (IMPACT) (set 10)", + "j6supbrkj", "Super Breakout (JPM) (IMPACT) (set 11)", + "j6svndb", "7 Deadly Bins (Ace) (IMPACT)", + "j6swpdrp", "Swop Till Ya Drop (JPM) (IMPACT)", + "j6tbirds", "Thunderbirds (JPM) (IMPACT) (set 1)", + "j6tbirdsa", "Thunderbirds (JPM) (IMPACT) (set 2)", + "j6tbirdsb", "Thunderbirds (JPM) (IMPACT) (set 3)", + "j6tbirdsc", "Thunderbirds (JPM) (IMPACT) (set 4)", + "j6tbirdsd", "Thunderbirds (JPM) (IMPACT) (set 5)", + "j6tbirdse", "Thunderbirds (JPM) (IMPACT) (set 6)", + "j6tbirdsf", "Thunderbirds (JPM) (IMPACT) (set 7)", + "j6tbirdsg", "Thunderbirds (JPM) (IMPACT) (set 8)", + "j6tbirdsh", "Thunderbirds (JPM) (IMPACT) (set 9)", + "j6tbirdsi", "Thunderbirds (JPM) (IMPACT) (set 10)", + "j6tbirdsj", "Thunderbirds (JPM) (IMPACT) (set 11)", + "j6tbirdsk", "Thunderbirds (JPM) (IMPACT) (set 12)", + "j6tbirdsl", "Thunderbirds (JPM) (IMPACT) (set 13)", + "j6tbirdsm", "Thunderbirds (JPM) (IMPACT) (set 14)", + "j6tbirdsn", "Thunderbirds (JPM) (IMPACT) (set 15)", + "j6tbirdso", "Thunderbirds (JPM) (IMPACT) (set 16)", + "j6tbirdsp", "Thunderbirds (JPM) (IMPACT) (set 17)", + "j6tbirdsq", "Thunderbirds (JPM) (IMPACT) (set 18)", + "j6tbirdsr", "Thunderbirds (JPM) (IMPACT) (set 19)", + "j6tbrdcl", "Thunderbirds Club (JPM) (IMPACT) (set 1)", + "j6tbrdcla", "Thunderbirds Club (JPM) (IMPACT) (set 2)", + "j6tbrdclb", "Thunderbirds Club (JPM) (IMPACT) (set 3)", + "j6tbrdclc", "Thunderbirds Club (JPM) (IMPACT) (set 4)", + "j6tbrdcld", "Thunderbirds Club (JPM) (IMPACT) (set 5)", + "j6tbrdcle", "Thunderbirds Club (JPM) (IMPACT) (set 6)", + "j6tbrdclf", "Thunderbirds Club (JPM) (IMPACT) (set 7)", + "j6tbrdclg", "Thunderbirds Club (JPM) (IMPACT) (set 8)", + "j6tbrdclh", "Thunderbirds Club (JPM) (IMPACT) (set 9)", + "j6tbrdcli", "Thunderbirds Club (JPM) (IMPACT) (set 10)", + "j6tbrdclj", "Thunderbirds Club (JPM) (IMPACT) (set 11)", + "j6tbrdclk", "Thunderbirds Club (JPM) (IMPACT) (set 12)", + "j6tbrdcll", "Thunderbirds Club (JPM) (IMPACT) (set 13)", + "j6thril", "Thriller (Crystal) (IMPACT) (set 1)", + "j6thrila", "Thriller (Crystal) (IMPACT) (set 2)", + "j6tomb", "Tomb Raider (JPM) (IMPACT) (set 1)", + "j6tomba", "Tomb Raider (JPM) (IMPACT) (set 2)", + "j6tombb", "Tomb Raider (JPM) (IMPACT) (set 3)", + "j6tombc", "Tomb Raider (JPM) (IMPACT) (set 4)", + "j6tombd", "Tomb Raider (JPM) (IMPACT) (set 5)", + "j6tombe", "Tomb Raider (JPM) (IMPACT) (set 6)", + "j6tombf", "Tomb Raider (JPM) (IMPACT) (set 7)", + "j6tombg", "Tomb Raider (JPM) (IMPACT) (set 8)", + "j6topflg", "Top Flight (Ace) (IMPACT)", + "j6tqust", "Treasure Quest (Crystal) (IMPACT) (set 1)", + "j6tqusta", "Treasure Quest (Crystal) (IMPACT) (set 2)", + "j6tqustb", "Treasure Quest (Crystal) (IMPACT) (set 3)", + "j6tqustc", "Treasure Quest (Crystal) (IMPACT) (set 4)", + "j6tutti", "Tutti Frutti (Qps) (IMPACT)", + "j6twst", "Twister (Ace) (IMPACT) (set 1)", + "j6twsta", "Twister (Ace) (IMPACT) (set 2)", + "j6twstb", "Twister (Ace) (IMPACT) (set 3)", + "j6twstc", "Twister (Ace) (IMPACT) (set 4)", + "j6twstd", "Twister (Ace) (IMPACT) (set 5)", + "j6twstdt", "Twister (JPM) [Dutch] (IMPACT)", + "j6twste", "Twister (Ace) (IMPACT) (set 6)", + "j6twstf", "Twister (Ace) (IMPACT) (set 7)", + "j6twstg", "Twister (Ace) (IMPACT) (set 8)", + "j6twsth", "Twister (Ace) (IMPACT) (set 9)", + "j6twsti", "Twister (Ace) (IMPACT) (set 10)", + "j6twstj", "Twister (Ace) (IMPACT) (set 11)", + "j6untch", "Untouchables (JPM) (IMPACT) (set 1)", + "j6untcha", "Untouchables (JPM) (IMPACT) (set 2)", + "j6vindal", "Vindaloot (JPM) (IMPACT)", + "j6vivark", "Viva Rock Vegas (JPM) (IMPACT) (set 1)", + "j6vivarka", "Viva Rock Vegas (JPM) (IMPACT) (set 2)", + "j6vivarkb", "Viva Rock Vegas (JPM) (IMPACT) (set 3)", + "j6vivarkc", "Viva Rock Vegas (JPM) (IMPACT) (set 4)", + "j6vivarkd", "Viva Rock Vegas (JPM) (IMPACT) (set 5)", + "j6vivarke", "Viva Rock Vegas (JPM) (IMPACT) (set 6)", + "j6vivarkf", "Viva Rock Vegas (JPM) (IMPACT) (set 7)", + "j6vivarkg", "Viva Rock Vegas (JPM) (IMPACT) (set 8)", + "j6vivarkh", "Viva Rock Vegas (JPM) (IMPACT) (set 9)", + "j6vivarki", "Viva Rock Vegas (JPM) (IMPACT) (set 10)", + "j6vivarkj", "Viva Rock Vegas (JPM) (IMPACT) (set 11)", + "j6vivarkk", "Viva Rock Vegas (JPM) (IMPACT) (set 12)", + "j6vivrkc", "Viva Rock Vegas Club (JPM) (IMPACT) (set 1)", + "j6vivrkca", "Viva Rock Vegas Club (JPM) (IMPACT) (set 2)", + "j6vivrkcb", "Viva Rock Vegas Club (JPM) (IMPACT) (set 3)", + "j6wildw", "Wild West (Ace) (IMPACT) (set 1)", + "j6wildwa", "Wild West (Ace) (IMPACT) (set 2)", + "j6wildwb", "Wild West (Ace) (IMPACT) (set 3)", + "j6wildwc", "Wild West (Ace) (IMPACT) (set 4)", + "j6wildwd", "Wild West (Ace) (IMPACT) (set 5)", + "j6wildwe", "Wild West (Ace) (IMPACT) (set 6)", + "j6wildwf", "Wild West (Ace) (IMPACT) (set 7)", + "j6wildwg", "Wild West (Ace) (IMPACT) (set 8)", + "j6wizard", "Wizard Of Odds (JPM) (IMPACT) (set 1)", + "j6wizarda", "Wizard Of Odds (JPM) (IMPACT) (set 2)", + "j6wizardb", "Wizard Of Odds (JPM) (IMPACT) (set 3)", + "j6wizardc", "Wizard Of Odds (JPM) (IMPACT) (set 4)", + "j6wizardd", "Wizard Of Odds (JPM) (IMPACT) (set 5)", + "j6wizarde", "Wizard Of Odds (JPM) (IMPACT) (set 6)", + "j6wldkng", "Wild King Club (JPM) (IMPACT) (set 1)", + "j6wldknga", "Wild King Club (JPM) (IMPACT) (set 2)", + "j6wthing", "Wild Thing (Empire) (IMPACT) (set 1)", + "j6wthinga", "Wild Thing (Empire) (IMPACT) (set 2)", + "j6wthingb", "Wild Thing (Empire) (IMPACT) (set 3)", + "j7bmagic", "Black Magic (JPM)", + "j7bullio", "Bullionaire (Ace)", + "j7cexprs", "Cash Xpress (JPM)", + "j7clbmag", "Club Magic (JPM)", + "j7crztrl", "Crazy Trails (JPM)", + "j7fantaz", "Fantaztec (JPM)", + "j7kerchn", "Ker - Chinq (JPM)", + "j7r2roll", "Ready To Roll (JPM)", + "j7razzma", "Razzamataz (JPM) (set 1)", + "j7razzmaa", "Razzamataz (JPM) (set 2)", + "j7tubgld", "Turbo Gold (JPM)", + "j7wldwkd", "Wild 'N' Wicked (JPM)", + "j80alad", "Aladdin's Cave (PCP)", + "j80bac", "Bank A Coin (JPM) (SYSTEM80)", + "j80blbnk", "Blankity Bank (PCP) (SYSTEM80)", + "j80bounc", "Bouncer (JPM) (SYSTEM80)", + "j80fortr", "Fortune Trail (JPM)", + "j80frogh", "Frog Hop (JPM) (SYSTEM80)", + "j80fruit", "Fruit Snappa (JPM) (SYSTEM80)", + "j80golds", "Golden Steppa (JPM) (SYSTEM80)", + "j80hotln", "Hot Lines (JPM) (SYSTEM80)", + "j80mster", "Masterspy (Pcp)", + "j80myspn", "Mystery Spin (JPM) (SYSTEM80)", + "j80nudg2", "Nudge Double Up MkII (JPM) (SYSTEM80)", + "j80plsnd", "Plus Nudge (JPM)", + "j80rr", "Road Runner (JPM) (SYSTEM80, set 1)", + "j80rra", "Road Runner (JPM) (SYSTEM80, set 2)", + "j80supbk", "Superbank (JPM) (SYSTEM80)", + "j80supst", "Supa Steppa (JPM) (SYSTEM80)", + "j80topsp", "Top Sprint (JPM) (SYSTEM80)", + "j80topup", "Top Up (JPM) (SYSTEM80)", + "j80tumbl", "Tumble (JPM) (SYSTEM80)", + "j80wsprt", "Winsprint (JPM) (V4, 5x20p) (SYSTEM80)", + "j80wsprt2", "Winsprint (JPM) (V2, 10x10p) (SYSTEM80)", + "j80wsprt3", "Winsprint (JPM) (V3, 50p, 5 credits) (SYSTEM80)", + "j_ewnd20", "Each Way Nudger (Barcrest?, set 3, version 20?)", + "j_ewnda", "Each Way Nudger (Barcrest?, set 2)", + "j_ewnud", "Each Way Nudger (Barcrest?, set 1)", + "j_ews", "Each Way Shifter (Barcrest?, set 1, version 16)", + "j_ews8a", "Each Way Shifter (Barcrest?, set 2, version 8a)", + "j_luck2", "Lucky Twos?", + "j_luckac", "Lucky Aces (Unk)", + "j_nuddup", "Nudge Double Up (JPM SRU, set 1)", + "j_nuddup2", "Nudge Double Up (JPM SRU, set 2)", + "j_plus2", "Plus 2 (JPM)", + "j_super2", "Super 2 (JPM)", + "j_unk", "unknown SRU Game (JPM?)", + "jack", "Jack the Giantkiller (set 1)", + "jack2", "Jack the Giantkiller (set 2)", + "jack2opn", "Jacks to Open", + "jack3", "Jack the Giantkiller (set 3)", + "jackal", "Jackal (World, 8-way Joystick)", + "jackalj", "Tokushu Butai Jackal (Japan, 8-way Joystick)", + "jackalr", "Jackal (World, Rotary Joystick)", + "jackie", "Happy Jackie (v110U)", + "jackler", "Jackler (Jungler bootleg)", + "jackpool", "Jackpot Cards / Jackpot Pool (Italy)", + "jackrabt", "Jack Rabbit (set 1)", + "jackrabt2", "Jack Rabbit (set 2)", + "jackrabts", "Jack Rabbit (special)", + "jailbrek", "Jail Break", + "jailbrekb", "Jail Break (bootleg)", + "jajamaru", "Vs. Ninja Jajamaru Kun (Japan)", + "jambo", "Jambo! Safari (JPN, USA, EXP, KOR, AUS) (Rev A)", + "jamesb", "James Bond (Timed Play)", + "jamesb2", "James Bond (3/5-Ball)", + "janbari", "Mahjong Janjan Baribari (Japan)", + "jangou", "Jangou [BET] (Japan)", + "janjans1", "Lovely Pop Mahjong JangJang Shimasho (Japan)", + "janjans2", "Lovely Pop Mahjong JangJang Shimasho 2 (Japan)", + "jankenmn", "Janken Man Kattara Ageru", + "janoh", "Jan Oh (set 1)", + "janoha", "Jan Oh (set 2)", + "janptr96", "Janputer '96 (Japan)", + "janptrsp", "Janputer Special (Japan)", + "janputer", "New Double Bet Mahjong (bootleg of Janputer)", + "janshi", "Janshi", + "janshin", "Jyanshin Densetsu - Quest of Jongmaster", + "janshinp", "Mahjong Janshin Plus (Japan)", + "jansou", "Jansou (set 1)", + "jansoua", "Jansou (set 2)", + "jantotsu", "4nin-uchi Mahjong Jantotsu", + "jantouki", "Jong Tou Ki (Japan)", + "janyoup2", "Janyou Part II (ver 7.03, July 1 1983)", + "janyuki", "Jong Yu Ki (Japan)", + "jb_10b", "Jack*Bot (1.0B) (Belgium/Canada)", + "jb_10r", "Jack*Bot (1.0R)", + "jchan", "Jackie Chan - The Kung-Fu Master", + "jchan2", "Jackie Chan in Fists of Fire", + "jclub2", "Jockey Club II (newer hardware)", + "jclub2o", "Jockey Club II (older hardware)", + "jclub2ob", "Jockey Club II (older hardware, set 2)", + "jcross", "Jumping Cross", + "jd_l1", "Judge Dredd (L-1)", + "jd_l6", "Judge Dredd (L-6)", + "jd_l7", "Judge Dredd (L-7)", + "jdredd", "Judge Dredd (Rev C Dec. 17 1997)", + "jdreddb", "Judge Dredd (Rev B Nov. 26 1997)", + "jdreddp", "Judge Dredd (rev LA1, prototype)", + "jedi", "Return of the Jedi", + "jestmagi", "Jester Magic (Konami Endeavour)", + "jetfight", "Jet Fighter (Set1) [TTL]", + "jetfighta", "Jet Fighter (Set2) [TTL]", + "jetwave", "Jet Wave (EAB, Euro v1.04)", + "jetwavej", "Jet Wave (JAB, Japan v1.04)", + "jgakuen", "Shiritsu Justice Gakuen: Legion of Heroes (Japan 971117)", + "jigkmgri", "Jigoku Meguri (Japan)", + "jin", "Jin", + "jingbell", "Jingle Bell (Italy, V133I)", + "jingystm", "Jingi Storm - The Arcade (GDL-0037)", + "jitsupro", "Jitsuryoku!! Pro Yakyuu (Japan)", + "jituroku", "Jitsuroku Maru-chi Mahjong (Japan)", + "jjack", "Jumping Jack", + "jjparad2", "Jan Jan Paradise 2", + "jjparads", "Jan Jan Paradise", + "jjpoker", "Jackpot Joker Poker (set 1)", + "jjpokerb", "Jackpot Joker Poker (set 2)", + "jjsquawk", "J. J. Squawkers", + "jjsquawkb", "J. J. Squawkers (bootleg)", + "jjsquawkb2", "J. J. Squawkers (bootleg, Blandia Conversion)", + "jkrmast", "Joker Master", + "jleague", "The J.League 1994 (Japan)", + "jm_12b", "Johnny Mnemonic (1.2B) Belgium", + "jm_12r", "Johnny Mnemonic (1.2R)", + "jmpbreak", "Jumping Break", + "jnero", "Johnny Nero Action Hero", + "jngld_l2", "Jungle Lord (L-2)", + "jngolady", "Jangou Lady (Japan)", + "jockeyc", "Jockey Club", + "jockeygp", "Jockey Grand Prix (set 1)", + "jockeygpa", "Jockey Grand Prix (set 2)", + "joemac", "Tatakae Genshizin Joe & Mac (Japan ver 1)", + "joemacr", "Joe & Mac Returns (World, Version 1.1, 1994.05.27)", + "joemacra", "Joe & Mac Returns (World, Version 1.0, 1994.05.19)", + "jogakuen", "Mahjong Jogakuen (Japan)", + "joinem", "Joinem", + "jojo", "JoJo's Venture (USA 990128)", + "jojoba", "JoJo no Kimyou na Bouken: Mirai e no Isan (Japan 990927)", + "jojoban", "JoJo no Kimyou na Bouken: Mirai e no Isan (Japan 990927, NO CD)", + "jojobane", "JoJo's Bizarre Adventure (Euro 990927, NO CD)", + "jojobaner1", "JoJo's Bizarre Adventure (Euro 990913, NO CD)", + "jojobanr1", "JoJo no Kimyou na Bouken: Mirai e no Isan (Japan 990913, NO CD)", + "jojobar1", "JoJo no Kimyou na Bouken: Mirai e no Isan (Japan 990913)", + "jojoj", "JoJo no Kimyou na Bouken (Japan 990128)", + "jojojr1", "JoJo no Kimyou na Bouken (Japan 990108)", + "jojojr2", "JoJo no Kimyou na Bouken (Japan 981202)", + "jojon", "JoJo's Venture (Asia 990128, NO CD)", + "jojonr1", "JoJo's Venture (Asia 990108, NO CD)", + "jojonr2", "JoJo's Venture (Asia 981202, NO CD)", + "jojor1", "JoJo's Venture (USA 990108)", + "jojor2", "JoJo's Venture (USA 981202)", + "jokercrd", "Joker Card (Ver.A267BC, encrypted)", + "jokpoker", "Joker Poker (Version 16.03B)", + "jokpokera", "Joker Poker (Version 16.03BI 5-10-85, Joker Poker ICB 9-30-86)", + "jokpokerb", "Joker Poker (Version 16.04BI 10-19-88, Joker Poker ICB 9-30-86)", + "jokpokerc", "Joker Poker (Version 16.03BI 5-10-85, Poker No Raise ICB 9-30-86)", + "jokrpokr", "Joker Poker", + "jokrwild", "Joker's Wild (encrypted)", + "jokrz_l3", "Jokerz! (L-3)", + "jokrz_l6", "Jokerz! (L-6)", + "jollycrd", "Jolly Card (Austrian)", + "jollyjgr", "Jolly Jogger", + "jolyc3x3", "Jolly Card (3x3 deal)", + "jolyc980", "Jolly Card Professional 2.0 (Spale Soft)", + "jolyccra", "Jolly Card (Croatian, set 1)", + "jolyccrb", "Jolly Card (Croatian, set 2)", + "jolycdab", "Jolly Card (Austrian, Fun World, bootleg)", + "jolycdev", "Jolly Card (Evona Electronic)", + "jolycdib", "Jolly Card (Italian, encrypted bootleg, set 1)", + "jolycdic", "Jolly Card (Italian, encrypted bootleg, set 2)", + "jolycdid", "Jolly Card (Italian, different colors, set 1)", + "jolycdie", "Jolly Card (Italian, different colors, set 2)", + "jolycdit", "Jolly Card (Italian, blue TAB board, encrypted)", + "jolycdsp", "Jolly Card (Spanish, blue TAB board, encrypted)", + "jolycmzs", "Jolly Card Professional 2.0 (MZS Tech)", + "jolyjokr", "Jolly Joker (98bet, set 1)", + "jolyjokra", "Jolly Joker (98bet, set 2)", + "jolyjokrb", "Jolly Joker (40bet, Croatian hack)", + "jolypark", "Jolly Park", + "jongbou", "Mahjong Block Jongbou (Japan)", + "jongkyo", "Jongkyo", + "jongtei", "Mahjong Jong-Tei (Japan, ver. NM532-01)", + "josvolly", "Joshi Volleyball", + "journey", "Journey", + "joust", "Joust (White/Green label)", + "joust2", "Joust 2 - Survival of the Fittest", + "joustr", "Joust (Solid Red label)", + "joustwr", "Joust (White/Red label)", + "joyfulr", "Joyful Road (Japan)", + "joyjoy", "Puzzled / Joy Joy Kid (NGM-021)(NGH-021)", + "joyman", "Joyman", + "jpark", "Jurassic Park (World)", + "jpark3", "Jurassic Park 3 (ver EBC)", + "jparkj", "Jurassic Park (Japan, Rev A, Deluxe)", + "jparkja", "Jurassic Park (Japan, Deluxe)", + "jparkjc", "Jurassic Park (Japan, Rev A, Conversion)", + "jpcoin", "Joker Poker (Coinmaster set 1)", + "jpcoin2", "Joker Poker (Coinmaster, Amusement Only)", + "jplstw20", "Lost World: Jurassic Park, The (2.00)", + "jplstw22", "Lost World: Jurassic Park, The (2.02)", + "jpopnics", "Jumping Pop (Nics, Korean bootleg of Plump Pop)", + "jptparty", "Jackpot Party (Russia)", + "jrking", "Junior King (bootleg of Donkey Kong Jr.)", + "jrpacman", "Jr. Pac-Man (11/9/83)", + "jrpacmanf", "Jr. Pac-Man (speedup hack)", + "jrpacmbl", "Jr. Pac-Man (Pengo hardware)", + "jsk", "Joryuu Syougi Kyoushitsu (Japan)", + "jspecter", "Jatre Specter (set 1)", + "jspecter2", "Jatre Specter (set 2)", + "jst_l2", "Joust (L-2)", + "jubileep", "Double-Up Poker (Jubilee)", + "juju", "JuJu Densetsu (Japan)", + "jujub", "JuJu Densetsu (Playmark bootleg)", + "jujuba", "JuJu Densetsu (Japan, bootleg)", + "jumpbug", "Jump Bug", + "jumpbugb", "Jump Bug (bootleg)", + "jumpcoas", "Jump Coaster", + "jumpcoast", "Jump Coaster (Taito)", + "jumping", "Jumping", + "jumpjkpt", "Jumping Jackpots (Russia) (Atronic)", + "jumpkids", "Jump Kids", + "jumppop", "Jumping Pop (set 1)", + "jumppope", "Jumping Pop (set 2)", + "jumpshot", "Jump Shot", + "jumpshotp", "Jump Shot Engineering Sample", + "junai", "Junai - Manatsu no First Kiss (Japan)", + "junai2", "Junai 2 - White Love Story (Japan)", + "jungleby", "Jungle Boy (bootleg)", + "jungleh", "Jungle Hunt (US)", + "junglehbr", "Jungle Hunt (Brazil)", + "junglek", "Jungle King (Japan)", + "junglekas", "Jungle King (alternate sound)", + "junglekj2", "Jungle King (Japan, earlier)", + "jungler", "Jungler", + "junglers", "Jungler (Stern Electronics)", + "junofrst", "Juno First", + "junofrstg", "Juno First (Gottlieb)", + "jupk_501", "Jurassic Park (5.01)", + "jupk_513", "Jurassic Park (5.13)", + "jupk_g51", "Jurassic Park (5.01 Germany)", + "jwildb52", "Joker's Wild (B52 system, set 1)", + "jwildb52a", "Joker's Wild (B52 system, set 2)", + "jwildb52h", "Joker's Wild (B52 system, Harrah's GFX)", + "jy_03", "Junk Yard (0.3)", + "jy_11", "Junk Yard (1.1)", + "jy_12", "Junk Yard (1.2)", + "jyangoku", "Jyangokushi: Haoh no Saihai (Japan 990527)", + "jzth", "Jue Zhan Tian Huang", + "kabukikl", "Far East of Eden - Kabuki Klash / Tengai Makyou - Shin Den", + "kabukiz", "Kabuki-Z (World)", + "kabukizj", "Kabuki-Z (Japan)", + "kageki", "Kageki (US)", + "kagekih", "Kageki (hack)", + "kagekij", "Kageki (Japan)", + "kaguya", "Mahjong Kaguyahime [BET] (Japan 880521)", + "kaguya2", "Mahjong Kaguyahime Sono2 [BET] (Japan 890829)", + "kaguya2f", "Mahjong Kaguyahime Sono2 Fukkokuban [BET] (Japan 010808)", + "kaiserkn", "Kaiser Knuckle (Ver 2.1O 1994/07/29)", + "kaiserknj", "Kaiser Knuckle (Ver 2.1J 1994/07/29)", + "kaitei", "Kaitei Takara Sagashi", + "kaiteids", "Kaitei Daisensou (Japan)", + "kaitein", "Kaitei Takara Sagashi (Namco license)", + "kaiunqz", "Kaiun Quiz (Japan, KW1/VER.A)", + "kakumei", "Mahjong Kakumei (Japan)", + "kakumei2", "Mahjong Kakumei 2 - Princess League (Japan)", + "kamakazi3", "Kamakazi III (superg hack)", + "kamenrid", "Masked Riders Club Battle Race", + "kamikaze", "Kamikaze", + "kamikcab", "Kamikaze Cabbie", + "kanatuen", "Kanatsuen no Onna [BET] (Japan 880905)", + "kangaroo", "Kangaroo", + "kangarooa", "Kangaroo (Atari)", + "kangaroob", "Kangaroo (bootleg)", + "kaos", "Kaos", + "karatblz", "Karate Blazers (World)", + "karatblzj", "Karate Blazers (Japan)", + "karatblzu", "Karate Blazers (US)", + "karatedo", "Karate Dou (Japan)", + "karatevs", "Taisen Karate Dou (Japan VS version)", + "karatour", "The Karate Tournament", + "karianx", "Karian Cross (Rev. 1.0)", + "karnov", "Karnov (US, rev 6)", + "karnova", "Karnov (US, rev 5)", + "karnovj", "Karnov (Japan)", + "karnovr", "Karnov's Revenge / Fighter's History Dynamite", + "karous", "Karous (GDL-0040)", + "kartduel", "Kart Duel (Japan, KTD1/VER.A)", + "kas89", "Kasino '89", + "kazan", "Ninja Kazan (World)", + "kbash", "Knuckle Bash", + "kbash2", "Knuckle Bash 2 (bootleg)", + "kbm", "Keyboardmania", + "kbm2nd", "Keyboardmania 2nd Mix", + "kbm3rd", "Keyboardmania 3rd Mix", + "kchamp", "Karate Champ (US)", + "kchampvs", "Karate Champ (US VS version, set 1)", + "kchampvs2", "Karate Champ (US VS version, set 2)", + "kdeadeye", "Dead Eye (GV054 UAA01)", + "kdynastg", "King of Dynast Gear (version 1.8)", + "keith", "Keith Courage In Alpha Zones", + "keithlcy", "Dramatic Adventure Quiz Keith & Lucy (Japan)", + "keks", "Keks (060328 World)", + "keks_2", "Keks (060403 World)", + "keks_2a", "Keks (bootleg, 060403, banking address hack)", + "keks_2b", "Keks (bootleg, 060403, banking address hack, changed version text)", + "keks_2c", "Keks (bootleg, 060403, VIDEO GAME-1 KS01 set 1)", + "keks_2d", "Keks (bootleg, 060403, VIDEO GAME-1 KS01 set 2)", + "keks_2e", "Keks (bootleg, 060403, banking address hack, payout percentage 60)", + "keks_2f", "Keks (bootleg, 060403, LOTTOGAME (I))", + "keks_2g", "Keks (bootleg, 060403, LOTOS KS01)", + "keks_3", "Keks (070119 Russia)", + "keks_3a", "Keks (bootleg, 070119, banking address hack set 1)", + "keks_3b", "Keks (bootleg, 070119, banking address hack set 2)", + "keks_4", "Keks (090604 Lottery)", + "keks_5", "Keks (090727 Entertainment)", + "keksa", "Keks (bootleg, 060328, banking address hack)", + "keksb", "Keks (bootleg, 060328, backdoor)", + "keksc", "Keks (bootleg, 060328, banking address hack, changed version text)", + "kengo", "Ken-Go", + "keroppi", "Kero Kero Keroppi's Let's Play Together (USA, Version 2.0)", + "keroppij", "Kero Kero Keroppi no Issyoni Asobou (Japan)", + "ket", "Ketsui: Kizuna Jigoku Tachi (2003/01/01. Master Ver.)", + "keta", "Ketsui: Kizuna Jigoku Tachi (2003/01/01 Master Ver.)", + "ketb", "Ketsui: Kizuna Jigoku Tachi (2003/01/01 Master Ver)", + "keyboard", "La Keyboard (GDS-0017)", + "kf10thep", "The King of Fighters 10th Anniversary Extra Plus (The King of Fighters 2002 bootleg)", + "kf2k2mp", "The King of Fighters 2002 Magic Plus (bootleg)", + "kf2k2mp2", "The King of Fighters 2002 Magic Plus II (bootleg)", + "kf2k2pla", "The King of Fighters 2002 Plus (bootleg set 2)", + "kf2k2pls", "The King of Fighters 2002 Plus (bootleg set 1)", + "kf2k3bl", "The King of Fighters 2003 (bootleg set 1)", + "kf2k3bla", "The King of Fighters 2003 (bootleg set 2)", + "kf2k3pcb", "The King of Fighters 2003 (Japan, JAMMA PCB)", + "kf2k3pl", "The King of Fighters 2004 Plus / Hero (The King of Fighters 2003 bootleg)", + "kf2k3upl", "The King of Fighters 2004 Ultra Plus (The King of Fighters 2003 bootleg)", + "kf2k5uni", "The King of Fighters 10th Anniversary 2005 Unique (The King of Fighters 2002 bootleg)", + "kftgoal", "Kick for the Goal", + "kgbird", "K.G. Bird (4VXFC5341, New Zealand, 5c)", + "kgbirda", "K.G. Bird (4VXFC5341, New Zealand, 10c)", + "kick", "Kick (upright)", + "kick4csh", "Kick '4' Cash", + "kickboy", "Kick Boy", + "kickc", "Kick (cocktail)", + "kicker", "Kicker", + "kickgoal", "Kick Goal", + "kickman", "Kickman (upright)", + "kicknrun", "Kick and Run (World)", + "kicknrunu", "Kick and Run (US)", + "kickoff", "Kick Off (Japan)", + "kickridr", "Kick Rider", + "kidniki", "Kid Niki - Radical Ninja (World)", + "kidnikiu", "Kid Niki - Radical Ninja (US)", + "kikaioh", "Choukou Senki Kikaioh (Japan 980914)", + "kikcubic", "Meikyu Jima (Japan)", + "kikcubicb", "Kickle Cubele", + "kikikai", "KiKi KaiKai", + "kikstart", "Kick Start - Wheelie King", + "killbld", "The Killing Blade (ver. 109, Chinese Board)", + "killbld104", "The Killing Blade (ver. 104)", + "killbldp", "The Killing Blade Plus (China, ver. 300)", + "killcom", "Killer Comet", + "kimbldhl", "Kimble Double HI-LO", + "kimblz80", "Kimble Double HI-LO (z80 version)", + "kingball", "King & Balloon (US)", + "kingballj", "King & Balloon (Japan)", + "kingdmgp", "Kingdom Grandprix", + "kingdrbb", "King Derby (Taiwan bootleg)", + "kingdrbb2", "King Derby (bootleg set 2)", + "kingdrby", "King Derby (1981)", + "kingofb", "King of Boxer (English)", + "kingpin", "Kingpin", + "kingrt66", "King of Route 66 (Rev A)", + "kingt_l1", "King Tut (Shuffle) (L-1)", + "kingtut", "King Tut (NSW, Australia)", + "kinniku", "Kinnikuman Muscle Grand Prix (KN1 Ver. A)", + "kinst", "Killer Instinct (v1.5d)", + "kinst13", "Killer Instinct (v1.3)", + "kinst14", "Killer Instinct (v1.4)", + "kinst2", "Killer Instinct 2 (v1.4)", + "kinst210", "Killer Instinct 2 (v1.0)", + "kinst211", "Killer Instinct 2 (v1.1)", + "kinst213", "Killer Instinct 2 (v1.3)", + "kinst2k3", "Killer Instinct 2 (v1.3k, upgrade kit)", + "kinst2k4", "Killer Instinct 2 (v1.4k, upgrade kit)", + "kinstb", "Killer Instinct (SNES bootleg)", + "kinstp", "Killer Instinct (proto v4.7)", + "kirameki", "Kirameki Star Road (Ver 2.10J 1997/08/29)", + "kirarast", "Ryuusei Janshi Kirara Star", + "kisekaeh", "Kisekae Hanafuda", + "kisekaem", "Kisekae Mahjong", + "kiss", "Kiss", + "kissp", "Kiss (prototype)", + "kittenk", "Kitten Kaboodle", + "kiwame", "Pro Mahjong Kiwame", + "kiwames", "Pro Mahjong Kiwame S (J 951020 V1.208)", + "kizuna", "Kizuna Encounter - Super Tag Battle / Fu'un Super Tag Battle", + "kizuna4p", "Kizuna Encounter - Super Tag Battle 4 Way Battle Version / Fu'un Super Tag Battle Special Version", + "kkotnoli", "Kkot No Li (Kill the Bees)", + "klax", "Klax (set 1)", + "klax2", "Klax (set 2)", + "klax3", "Klax (set 3)", + "klaxd", "Klax (Germany)", + "klaxj", "Klax (Japan)", + "klaxp1", "Klax (prototype set 1)", + "klaxp2", "Klax (prototype set 2)", + "klondkp", "KlonDike+", + "klxyj", "Kuai Le Xi You Ji", + "knckhead", "Knuckle Heads (World)", + "knckheadj", "Knuckle Heads (Japan)", + "knckheadjp", "Knuckle Heads (Japan, Prototype?)", + "kncljoe", "Knuckle Joe (set 1)", + "kncljoea", "Knuckle Joe (set 2)", + "kngtmare", "Knightmare (prototype)", + "knightb", "Knight Boy", + "knights", "Knights of the Round (World 911127)", + "knightsb", "Knights of the Round (bootleg)", + "knightsj", "Knights of the Round (Japan 911127, B-Board 91634B-2)", + "knightsja", "Knights of the Round (Japan 911127, B-Board 89625B-1)", + "knightsu", "Knights of the Round (USA 911127)", + "knockout", "Knock Out!! (bootleg?)", + "knpuzzle", "Kotoba no Puzzle Mojipittan (Japan, KPM1 Ver.A)", + "kod", "The King of Dragons (World 910805)", + "kodb", "The King of Dragons (bootleg)", + "kodj", "The King of Dragons (Japan 910805, B-Board 90629B-3)", + "kodja", "The King of Dragons (Japan 910805, B-Board 89625B-1)", + "kodr1", "The King of Dragons (World 910711)", + "kodu", "The King of Dragons (USA 910910)", + "kof10th", "The King of Fighters 10th Anniversary (The King of Fighters 2002 bootleg)", + "kof2000", "The King of Fighters 2000 (NGM-2570) (NGH-2570)", + "kof2000n", "The King of Fighters 2000 (not encrypted)", + "kof2001", "The King of Fighters 2001 (NGM-262?)", + "kof2001h", "The King of Fighters 2001 (NGH-2621)", + "kof2002", "The King of Fighters 2002 (NGM-2650)(NGH-2650)", + "kof2002b", "The King of Fighters 2002 (bootleg)", + "kof2003", "The King of Fighters 2003 (NGM-2710)", + "kof2003h", "The King of Fighters 2003 (NGH-2710)", + "kof2k4se", "The King of Fighters Special Edition 2004 (The King of Fighters 2002 bootleg)", + "kof94", "The King of Fighters '94 (NGM-055)(NGH-055)", + "kof95", "The King of Fighters '95 (NGM-084)", + "kof95a", "The King of Fighters '95 (NGM-084), alternate board", + "kof95h", "The King of Fighters '95 (NGH-084)", + "kof96", "The King of Fighters '96 (NGM-214)", + "kof96h", "The King of Fighters '96 (NGH-214)", + "kof97", "The King of Fighters '97 (NGM-2320)", + "kof97h", "The King of Fighters '97 (NGH-2320)", + "kof97k", "The King of Fighters '97 (Korean release)", + "kof97oro", "The King of Fighters '97 Oroshi Plus 2003 (bootleg)", + "kof97pls", "The King of Fighters '97 Plus (bootleg)", + "kof98", "The King of Fighters '98 - The Slugfest / King of Fighters '98 - dream match never ends (NGM-2420)", + "kof98a", "The King of Fighters '98 - The Slugfest / King of Fighters '98 - dream match never ends (NGM-2420, alternate board)", + "kof98h", "The King of Fighters '98 - The Slugfest / King of Fighters '98 - dream match never ends (NGH-2420)", + "kof98k", "The King of Fighters '98 - The Slugfest / King of Fighters '98 - dream match never ends (Korean board)", + "kof98ka", "The King of Fighters '98 - The Slugfest / King of Fighters '98 - dream match never ends (Korean board 2)", + "kof98um", "The King of Fighters '98: Ultimate Match (v1.00)", + "kof99", "The King of Fighters '99 - Millennium Battle (NGM-2510)", + "kof99e", "The King of Fighters '99 - Millennium Battle (earlier)", + "kof99h", "The King of Fighters '99 - Millennium Battle (NGH-2510)", + "kof99k", "The King of Fighters '99 - Millennium Battle (Korean release)", + "kof99p", "The King of Fighters '99 - Millennium Battle (prototype)", + "kofnw", "The King of Fighters Neowave", + "kofnwj", "The King of Fighters Neowave (Japan)", + "koftball", "King of Football", + "kofxi", "The King of Fighters XI", + "kog", "King of Gladiator (The King of Fighters '97 bootleg)", + "koikoi", "Koi Koi Part 2", + "koikois", "Koi Koi Shimasho", + "koikois2", "Koi Koi Shimasho 2 - Super Real Hanafuda (Japan)", + "koinomp", "Mahjong Koi no Magic Potion (Japan)", + "kok", "Povar / Sobrat' Buran / Agroprom (Arcade multi-game bootleg of ZX Spectrum 'Cookie', 'Jetpac' & 'Pssst')", + "kokoroj2", "Kokoroji 2", + "kollon", "Kollon (V2.04J)", + "kollonc", "Kollon (V2.04JC)", + "konam80a", "Konami 80's AC Special (GC826 VER. AAA)", + "konam80j", "Konami 80's Gallery (GC826 VER. JAA)", + "konam80k", "Konami 80's AC Special (GC826 VER. KAA)", + "konam80s", "Konami 80's AC Special (GC826 VER. EAA)", + "konam80u", "Konami 80's AC Special (GC826 VER. UAA)", + "konami88", "Konami '88", + "konamigt", "Konami GT", + "konamigv", "Baby Phoenix/GV System", + "konamigx", "System GX", + "konek", "Konek-Gorbunok", + "kong", "Kong (Donkey Kong conversion on Galaxian hardware)", + "konotako", "Kono Tako (10021 Ver.A)", + "kontest", "Konami Test Board (GX800, Japan)", + "konzero", "Zero (Konami Endeavour)", + "kopunch", "KO Punch", + "korinai", "Mahjong-zukino Korinai Menmen (Japan 880425)", + "korinaim", "Mahjong-zukino Korinai Menmen [BET] (Japan 880920)", + "korokoro", "Koro Koro Quest (Japan)", + "koroleva", "Snezhnaja Koroleva", + "korosuke", "Korosuke Roller (Japan)", + "koshien", "Ah Eikou no Koshien (Japan)", + "kosmokil", "Kosmo Killer", + "kosteel", "Kings of Steel", + "kotbinsp", "Kkot Bi Nyo Special (Korea)", + "kotbinyo", "Kkot Bi Nyo (Korea)", + "kothello", "Kyuukyoku no Othello", + "kotm", "King of the Monsters (set 1)", + "kotm2", "King of the Monsters 2 - The Next Thing (NGM-039)(NGH-039)", + "kotm2p", "King of the Monsters 2 - The Next Thing (prototype)", + "kotmh", "King of the Monsters (set 2)", + "kouyakyu", "The Koukouyakyuh", + "kov", "Knights of Valour / Sangoku Senki (ver. 117)", + "kov100", "Knights of Valour / Sangoku Senki (ver. 100, Japanese Board)", + "kov115", "Knights of Valour / Sangoku Senki (ver. 115)", + "kov2", "Knights of Valour 2 / Sangoku Senki 2 (ver. 107, 102, 100HK)", + "kov2100", "Knights of Valour 2 / Sangoku Senki 2 (ver. 100, 100, 100HK)", + "kov2101", "Knights of Valour 2 / Sangoku Senki 2 (ver. 101, 101, 100HK)", + "kov2102", "Knights of Valour 2 / Sangoku Senki 2 (ver. 102, 101, 100HK)", + "kov2103", "Knights of Valour 2 / Sangoku Senki 2 (ver. 103, 101, 100HK)", + "kov2106", "Knights of Valour 2 / Sangoku Senki 2 (ver. 106, 102, 100KH)", + "kov2nl", "Knights of Valour 2 New Legend (V302, China)", + "kov2nlo", "Knights of Valour 2 New Legend (V301, China)", + "kov2p", "Knights of Valour 2 Plus - Nine Dragons / Sangoku Senki 2 Plus - Nine Dragons (ver. M205XX, 200, 100CN)", + "kov2p202", "Knights of Valour 2 Plus - Nine Dragons / Sangoku Senki 2 Plus - Nine Dragons (ver. M202XX, 200, 100CN)", + "kov2p204", "Knights of Valour 2 Plus - Nine Dragons / Sangoku Senki 2 Plus - Nine Dragons (ver. M204XX, 200, 100CN)", + "kov3", "Knights of Valour 3 (V102, China)", + "kov7sprt", "Knights of Valour - The Seven Spirits", + "kovlsjb", "Knights of Valour: Luan Shi Jie Ba / Sangoku Senki: Luan Shi Jie Ba (ver. 200CN, set 1)", + "kovlsjba", "Knights of Valour: Luan Shi Jie Ba / Sangoku Senki: Luan Shi Jie Ba (ver. 200CN, set 2)", + "kovlsqh", "Knights of Valour: Luan Shi Quan Huang / Sangoku Senki: Luan Shi Quan Huang (ver. 200CN)", + "kovlsqh2", "Knights of Valour: Luan Shi Quan Huang 2 / Sangoku Senki: Luan Shi Quan Huang 2 (ver. 200CN)", + "kovplus", "Knights of Valour Plus / Sangoku Senki Plus (ver. 119, set 1)", + "kovplusa", "Knights of Valour Plus / Sangoku Senki Plus (ver. 119, set 2)", + "kovqhsgs", "Knights of Valour: Quan Huang San Guo Special / Sangoku Senki: Quan Huang San Guo Special (ver. 303CN)", + "kovsgqyz", "Knights of Valour: SanGuo QunYingZhuan / Sangoku Senki: SanGuo QunYingZhuan (bootleg, set 1)", + "kovsgqyza", "Knights of Valour: SanGuo QunYingZhuan / Sangoku Senki: SanGuo QunYingZhuan (bootleg, set 2)", + "kovsgqyzb", "Knights of Valour: SanGuo QunYingZhuan / Sangoku Senki: SanGuo QunYingZhuan (bootleg, set 3)", + "kovsh", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (ver. 104, CN)", + "kovsh101", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (ver. 101, CN)", + "kovsh102", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (ver. 102, CN)", + "kovsh103", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (ver. 103, CN)", + "kovshp", "Knights of Valour Super Heroes Plus / Sangoku Senki Super Heroes Plus (ver. 101)", + "kovshpa", "Knights of Valour Super Heroes Plus / Sangoku Senki Super Heroes Plus (ver. 100)", + "kovshxas", "Knights of Valour: Aoshi Sanguo / Sangoku Senki: Aoshi Sanguo (ver. 202CN)", + "kovytzy", "Knights of Valour: Yi Tong Zhong Yuan / Sangoku Senki: Yi Tong Zhong Yuan (ver. 201, China)", + "kozure", "Kozure Ookami (Japan)", + "kpv106", "Kingpin (Pinball)", + "kram", "Kram (set 1)", + "kram2", "Kram (set 2)", + "kram3", "Kram (encrypted)", + "kroozr", "Kozmik Kroozr", + "krull", "Krull", + "krullp", "Krull (Pinball)", + "krzybowl", "Krazy Bowl", + "ksayakyu", "Kusayakyuu", + "ktiger", "Kyukyoku Tiger (Japan)", + "ktiger2", "Kyukyoku Tiger II (Ver 2.1J 1995/11/30)", + "kuhga", "Kuhga - Operation Code 'Vapor Trail' (Japan revision 3)", + "kungfub", "Kung-Fu Master (bootleg set 1)", + "kungfub2", "Kung-Fu Master (bootleg set 2)", + "kungfum", "Kung-Fu Master (World)", + "kungfumd", "Kung-Fu Master (US)", + "kungfur", "Kung-Fu Roushi", + "kungfut", "Kung-Fu Taikun (set 1)", + "kungfuta", "Kung-Fu Taikun (set 2)", + "kuniokun", "Nekketsu Kouha Kunio-kun (Japan)", + "kuniokunb", "Nekketsu Kouha Kunio-kun (Japan bootleg)", + "kurikint", "Kuri Kinton (World)", + "kurikinta", "Kuri Kinton (World, prototype?)", + "kurikintj", "Kuri Kinton (Japan)", + "kurikintu", "Kuri Kinton (US)", + "kurucham", "Kurukuru Chameleon (GDL-0034)", + "kurufev", "Kurukuru Fever", + "kurukuru", "Kuru Kuru Pyon Pyon (Japan)", + "kviper", "Konami Viper BIOS", + "kyros", "Kyros", + "kyrosj", "Kyros No Yakata (Japan)", + "kyuhito", "Kyukyoku no Hito [BET] (Japan 880824)", + "kyukaidk", "Kyuukai Douchuuki (Japan, new version (Rev B))", + "kyukaidko", "Kyuukai Douchuuki (Japan, old version)", + "kyustrkr", "Last Striker / Kyuukyoku no Striker", + "kz26", "KZ-26", + "labyrunr", "Labyrinth Runner (Japan)", + "labyrunrk", "Labyrinth Runner (World Ver. K)", + "lacrazyc", "Let's Attack Crazy Cross (GV027 Asia 1.10)", + "ladybgb2", "Lady Bug (bootleg set 2)", + "ladybug", "Lady Bug", + "ladybugb", "Lady Bug (bootleg set 1)", + "ladybugg", "Lady Bug (bootleg on Galaxian hardware)", + "ladyfrog", "Lady Frog", + "ladygolf", "Vs. Stroke & Match Golf (Ladies Version, set LG4 ?)", + "ladygolfe", "Vs. Stroke & Match Golf (Ladies Version, set LG4 E)", + "ladykill", "Lady Killer", + "ladylinr", "Lady Liner", + "ladyluck", "Lady Luck", + "ladylukt", "Lady Luck (Taito)", + "ladymstr", "Lady Master of Kung Fu", + "ladyshot", "Lady Sharpshooter", + "ladyshota", "Lady Sharpshooter (alternate set)", + "lagirl", "LA Girl", + "lagunar", "Laguna Racer", + "lah_110", "Last Action Hero (1.10)", + "lah_112", "Last Action Hero (1.12)", + "lah_l104", "Last Action Hero (1.04 Spain)", + "lah_l108", "Last Action Hero (1.08 Spain)", + "lamachin", "L.A. Machineguns", + "landbrk", "Land Breaker (World) / Miss Tang Ja Ru Gi (Korea) (pcb ver 3.02)", + "landbrka", "Land Breaker (World) / Miss Tang Ja Ru Gi (Korea) (pcb ver 3.03) (AT89c52 protected)", + "landgear", "Landing Gear (Ver 4.2 O)", + "landgeara", "Landing Gear (Ver 3.1 O)", + "landgearj", "Landing Gear (Ver 4.2 J)", + "landgearja", "Landing Gear (Ver 3.0 J)", + "landhigh", "Landing High Japan", + "landmakr", "Land Maker (Ver 2.01J 1998/06/01)", + "landmakrp", "Land Maker (Ver 2.02O 1998/06/02) (Prototype)", + "lans2004", "Lansquenet 2004 (Shock Troopers - 2nd Squad bootleg)", + "lapbylap", "Lap By Lap", + "laperla", "La Perla Nera (Ver 2.0)", + "laperlag", "La Perla Nera Gold (Ver 2.0)", + "laser", "Astro Laser (bootleg of Space Laser)", + "laser2k1", "Laser 2001 (Ver 1.2)", + "laserbas", "Laser Base (set 1)", + "laserbasa", "Laser Base (set 2)", + "laserbat", "Laser Battle", + "lasso", "Lasso", + "lasstixx", "Laser Strixx 2", + "lastbank", "Last Bank (v1.16)", + "lastbh", "The Last Bounty Hunter v0.06", + "lastblad", "The Last Blade / Bakumatsu Roman - Gekka no Kenshi (NGM-2340)", + "lastbladh", "The Last Blade / Bakumatsu Roman - Gekka no Kenshi (NGH-2340)", + "lastbld2", "The Last Blade 2 / Bakumatsu Roman - Dai Ni Maku Gekka no Kenshi (NGM-2430)(NGH-2430)", + "lastbrnx", "Last Bronx (Export, Revision A)", + "lastbrnxj", "Last Bronx (Japan, Revision A)", + "lastbrnxu", "Last Bronx (USA, Revision A)", + "lastday", "The Last Day (set 1)", + "lastdaya", "The Last Day (set 2)", + "lastduel", "Last Duel (US New Ver.)", + "lastduelb", "Last Duel (bootleg)", + "lastduelj", "Last Duel (Japan)", + "lastduelo", "Last Duel (US Old Ver.)", + "lastfght", "Last Fighting", + "lastfort", "Last Fortress - Toride", + "lastforte", "Last Fortress - Toride (Erotic, Rev C)", + "lastfortea", "Last Fortress - Toride (Erotic, Rev A)", + "lastfortg", "Last Fortress - Toride (German)", + "lastfortk", "Last Fortress - Toride (Korea)", + "lastlap", "Last Lap", + "lastmisn", "Last Mission (US revision 6)", + "lastmisnj", "Last Mission (Japan)", + "lastmisno", "Last Mission (US revision 5)", + "lastsold", "The Last Soldier (Korean release of The Last Blade)", + "laststar", "The Last Starfighter (prototype)", + "lastsurv", "Last Survivor (Japan, FD1094 317-0083)", + "lasvegas", "Las Vegas, Nevada", + "lazarian", "Lazarian", + "lazercmd", "Lazer Command", + "lazrlord", "Lazer Lord", + "lbeach", "Long Beach", + "lbgrande", "Libero Grande (Asia, LG2/VER.A)", + "lbgrandeja", "Libero Grande (Japan, LG1/VER.A)", + "lbowling", "League Bowling (NGM-019)(NGH-019)", + "lc_11", "League Champ (1.1)", + "lca", "Lights...Camera...Action!", + "lca2", "Lights...Camera...Action! (rev.2)", + "ldrink", "Lucky Drink (set 1)", + "ldrinka", "Lucky Drink (set 2)", + "ldrun", "Lode Runner (set 1)", + "ldrun2", "Lode Runner II - The Bungeling Strikes Back", + "ldrun3", "Lode Runner III - The Golden Labyrinth", + "ldrun3j", "Lode Runner III - Majin No Fukkatsu", + "ldrun4", "Lode Runner IV - Teikoku Karano Dasshutsu", + "ldruna", "Lode Runner (set 2)", + "le2", "Lethal Enforcers II: Gun Fighters (ver EAA)", + "le2j", "Lethal Enforcers II: The Western (ver JAA)", + "le2u", "Lethal Enforcers II: Gun Fighters (ver UAA)", + "leadang", "Lead Angle (Japan)", + "leader", "Leader", + "leaguemn", "Yakyuu Kakutou League-Man (Japan)", + "lectrono", "Lectronamo", + "ledstorm", "Led Storm (US)", + "ledstorm2", "Led Storm Rally 2011 (US)", + "legend", "Legend", + "legendb", "Legion (bootleg of Legend)", + "legendoh", "Legend of Heroes", + "legendos", "Legend of Success Joe / Ashita no Joe Densetsu", + "legion", "Legion - Spinner-87 (World ver 2.03)", + "legionna", "Legionnaire (World)", + "legionnau", "Legionnaire (US)", + "legiono", "Chouji Meikyuu Legion (Japan bootleg ver 1.05)", + "legofair", "Koukuu Kihei Monogatari - The Legend of Air Cavalry (Japan)", + "leking", "Le King", + "lemans24", "Le Mans 24 (Revision B)", + "lemmings", "Lemmings (US prototype)", + "lemnangl", "Mahjong Lemon Angel (Japan)", + "leprechn", "Leprechaun", + "leprechp", "Leprechaun (Pacific)", + "leprgld", "Leprechaun's Gold (Russia)", + "lethalen", "Lethal Enforcers (ver UAE, 11/19/92 15:04)", + "lethaleneab", "Lethal Enforcers (ver EAB, 10/14/92 19:53)", + "lethaleneae", "Lethal Enforcers (ver EAE, 11/19/92 16:24)", + "lethalenj", "Lethal Enforcers (ver JAD, 12/04/92 17:16)", + "lethalenua", "Lethal Enforcers (ver UAA, 08/17/92 21:38)", + "lethalenub", "Lethal Enforcers (ver UAB, 09/01/92 11:12)", + "lethalenux", "Lethal Enforcers (ver unknown, US, 08/06/92 15:11, hacked/proto?)", + "lethalj", "Lethal Justice", + "lethalth", "Lethal Thunder (World)", + "levers", "Levers", + "lghost", "Laser Ghost (World, FD1094 317-0166)", + "lghostu", "Laser Ghost (US, FD1094 317-0165)", + "lgp", "Laser Grand Prix", + "lgtnfght", "Lightning Fighters (World)", + "lgtnfghta", "Lightning Fighters (Asia)", + "lgtnfghtu", "Lightning Fighters (US)", + "lhaunt_10", "Lucky Haunter (090712 Entertainment)", + "lhaunt_11", "Lucky Haunter (100331 Entertainment)", + "lhaunt_2", "Lucky Haunter (030804 World)", + "lhaunt_4", "Lucky Haunter (031111 World)", + "lhaunt_4a", "Lucky Haunter (bootleg, 031111, backdoor)", + "lhaunt_5", "Lucky Haunter (040216 World)", + "lhaunt_5a", "Lucky Haunter (bootleg, 040216, backdoor)", + "lhaunt_6", "Lucky Haunter (040825 World)", + "lhaunt_6a", "Lucky Haunter (bootleg, 040825, backdoor)", + "lhaunt_6b", "Lucky Haunter (bootleg, 040825, VIDEO GAME-1 PB01)", + "lhaunt_6c", "Lucky Haunter (bootleg, 040825, changed version text)", + "lhaunt_6d", "Lucky Haunter (bootleg, 040825, LOTTOGAME (I))", + "lhaunt_6e", "Lucky Haunter (bootleg, 040825, LOTO PROGRAM V-LH2)", + "lhaunt_6f", "Lucky Haunter (bootleg, 040825, LOTOS PB01)", + "lhaunt_7", "Lucky Haunter (070402 Russia)", + "lhaunt_8", "Lucky Haunter (070604 Russia)", + "lhb", "Long Hu Bang (China, V035C)", + "lhb2", "Long Hu Bang II (Hong Kong, V185H)", + "lhbv33c", "Long Hu Bang (China, V033C)", + "lhzb2", "Mahjong Long Hu Zheng Ba 2 (set 1)", + "lhzb2a", "Mahjong Long Hu Zheng Ba 2 (VS221M)", + "lhzb3", "Long Hu Zheng Ba 3", + "lhzb4", "Long Hu Zheng Ba 4", + "liberate", "Liberation", + "liberateb", "Liberation (bootleg)", + "liberatr", "Liberator (set 1)", + "liberatr2", "Liberator (set 2)", + "liblrabl", "Libble Rabble", + "lifefrce", "Lifeforce (US)", + "lifefrcej", "Lifeforce (Japan)", + "lightbr", "Light Bringer (Ver 2.2O 1994/04/08)", + "lightbrj", "Light Bringer (Ver 2.1J 1994/02/18)", + "lightnin", "Lightning", + "lindbios", "Sega Lindbergh Bios", + "linkypip", "Linky Pipe", + "liquidk", "Liquid Kids (World)", + "liquidku", "Liquid Kids (US)", + "lithero", "Little Hero", + "littlerb", "Little Robin", + "livegal", "Live Gal (Japan 870530)", + "livequiz", "Live Quiz Show", + "lizard", "Pinball Lizard", + "lizwiz", "Lizard Wizard", + "lkage", "The Legend of Kage", + "lkageb", "The Legend of Kage (bootleg set 1)", + "lkageb2", "The Legend of Kage (bootleg set 2)", + "lkageb3", "The Legend of Kage (bootleg set 3)", + "lkageo", "The Legend of Kage (older)", + "lkageoo", "The Legend of Kage (oldest)", + "llander", "Lunar Lander (rev 2)", + "llander1", "Lunar Lander (rev 1)", + "llcharm", "Lucky Lady's Charm (set 1)", + "llcharma", "Lucky Lady's Charm (set 2)", + "lluck3x3", "Lucky Lady (3x3 deal)", + "lluck4x1", "Lucky Lady (4x1 aces)", + "lnc", "Lock'n'Chase", + "lockload", "Locked 'n Loaded (World)", + "lockloadu", "Locked 'n Loaded (US, Dragon Gun conversion)", + "lockon", "Lock-On (rev. E)", + "lockonc", "Lock-On (rev. C)", + "locoboot", "Loco-Motion (bootleg)", + "locomotn", "Loco-Motion", + "locomotp", "Locomotion", + "loderndf", "Lode Runner - The Dig Fight (ver. B)", + "loderndfa", "Lode Runner - The Dig Fight (ver. A)", + "loffire", "Line of Fire / Bakudan Yarou (World, FD1094 317-0136)", + "loffirej", "Line of Fire / Bakudan Yarou (Japan, FD1094 317-0134)", + "loffireu", "Line of Fire / Bakudan Yarou (US, FD1094 317-0135)", + "logger", "Logger", + "logicpr2", "Logic Pro 2 (Japan)", + "logicpro", "Logic Pro (Japan)", + "loht", "Legend of Hero Tonma", + "lohtb", "Legend of Hero Tonma (unprotected bootleg)", + "lohtb2", "Legend of Hero Tonma (Japan, bootleg with i8751)", + "lohtj", "Legend of Hero Tonma (Japan)", + "lol", "Life of Luxury (Russia)", + "lomakai", "Legend of Makai (World)", + "looper", "Looper", + "looping", "Looping", + "loopingv", "Looping (Venture Line license, set 1)", + "loopingva", "Looping (Venture Line license, set 2)", + "lordgun", "Lord of Gun (USA)", + "lordofk", "The Lord of King (Japan)", + "lortium", "Lortium", + "lostspc", "Lost in Space", + "losttomb", "Lost Tomb (easy)", + "losttombh", "Lost Tomb (hard)", + "lostwrld", "Lost Worlds (Japan)", + "lostwrldo", "Lost Worlds (Japan Old Ver.)", + "lostwrlp", "Lost World", + "lostwsga", "The Lost World (Revision A)", + "lotlot", "Lot Lot", + "lotr", "Lord Of The Rings, The (10.00)", + "lotr401", "Lord Of The Rings, The (4.01)", + "lotr410", "Lord Of The Rings, The (4.10)", + "lotr5", "Lord Of The Rings, The (5.00)", + "lotr501", "Lord Of The Rings, The (5.01)", + "lotr6", "Lord Of The Rings, The (6.00)", + "lotr7", "Lord Of The Rings, The (7.00)", + "lotr8", "Lord Of The Rings, The (8.00)", + "lotr9", "Lord Of The Rings, The (9.00)", + "lotr_fr", "Lord Of The Rings, The (10.00 France)", + "lotr_fr401", "Lord Of The Rings, The (4.01 France)", + "lotr_fr410", "Lord Of The Rings, The (4.10 France)", + "lotr_fr5", "Lord Of The Rings, The (5.0 France)", + "lotr_fr501", "Lord Of The Rings, The (5.01 France)", + "lotr_fr6", "Lord Of The Rings, The (6.0 France)", + "lotr_fr7", "Lord Of The Rings, The (7.0 France)", + "lotr_fr8", "Lord Of The Rings, The (8.0 France)", + "lotr_fr9", "Lord Of The Rings, The (9.0 France)", + "lotr_gr", "Lord Of The Rings, The (10.00 Germany)", + "lotr_gr401", "Lord Of The Rings, The (4.01 Germany)", + "lotr_gr410", "Lord Of The Rings, The (4.10 Germany)", + "lotr_gr5", "Lord Of The Rings, The (5.0 Germany)", + "lotr_gr501", "Lord Of The Rings, The (5.01 Germany)", + "lotr_gr6", "Lord Of The Rings, The (6.0 Germany)", + "lotr_gr7", "Lord Of The Rings, The (7.0 Germany)", + "lotr_gr8", "Lord Of The Rings, The (8.0 Germany)", + "lotr_gr9", "Lord Of The Rings, The (9.0 Germany)", + "lotr_it", "Lord Of The Rings, The (10.00 Italy)", + "lotr_it401", "Lord Of The Rings, The (4.01 Italy)", + "lotr_it410", "Lord Of The Rings, The (4.10 Italy)", + "lotr_it5", "Lord Of The Rings, The (5.0 Italy)", + "lotr_it501", "Lord Of The Rings, The (5.01 Italy)", + "lotr_it6", "Lord Of The Rings, The (6.0 Italy)", + "lotr_it7", "Lord Of The Rings, The (7.0 Italy)", + "lotr_it8", "Lord Of The Rings, The (8.0 Italy)", + "lotr_it9", "Lord Of The Rings, The (9.0 Italy)", + "lotr_le", "Lord Of The Rings, The (10.02 Limited Edition)", + "lotr_sp", "Lord Of The Rings, The (10.00 Spain)", + "lotr_sp401", "Lord Of The Rings, The (4.01 Spain)", + "lotr_sp5", "Lord Of The Rings, The (5.0 Spain)", + "lotr_sp501", "Lord Of The Rings, The (5.01 Spain)", + "lotr_sp6", "Lord Of The Rings, The (6.0 Spain)", + "lotr_sp7", "Lord Of The Rings, The (7.0 Spain)", + "lotr_sp8", "Lord Of The Rings, The (8.0 Spain)", + "lotr_sp9", "Lord Of The Rings, The (9.0 Spain)", + "lottof2", "Lotto Fun 2", + "lottofun", "Lotto Fun", + "lovehous", "Mahjong Love House [BET] (Japan 901024)", + "loverboy", "Lover Boy", + "lovewin", "Love To Win (Russia)", + "lpadv", "Logic Pro Adventure (Japan)", + "lrescue", "Lunar Rescue", + "lrescuem", "Lunar Rescue (Model Racing bootleg, set 1)", + "lrescuem2", "Lunar Rescue (Model Racing bootleg, set 2)", + "lresort", "Last Resort", + "lsasquad", "Land Sea Air Squad / Riku Kai Kuu Saizensen", + "lsrcu_l2", "Laser Cue (L-2)", + "lsrquiz", "Laser Quiz Italy", + "lsrquiz2", "Laser Quiz 2 Italy (v1.0)", + "ltcasinn", "Little Casino (newer)", + "ltcasino", "Little Casino (older)", + "luckboom", "Lucky Boom", + "luckboomh", "Lucky Boom (Hard Times hardware)", + "luckfoun", "Lucky Fountain (Konami Endeavour)", + "luckgrln", "Lucky Girl (newer Z180 based hardware)", + "luckshel", "Lucky Shell (Russia) (Extrema)", + "lucky74", "Lucky 74 (bootleg, set 1)", + "lucky74a", "Lucky 74 (bootleg, set 3)", + "lucky74b", "Lucky 74 (bootleg, set 2)", + "lucky8", "New Lucky 8 Lines (set 1, W-4)", + "lucky8a", "New Lucky 8 Lines (set 2, W-4)", + "lucky8b", "New Lucky 8 Lines (set 3, W-4, extended gfx)", + "lucky8c", "New Lucky 8 Lines (set 4, W-4)", + "lucky8d", "New Lucky 8 Lines (set 5, W-4, main 40%, d-up 60%)", + "lucky8e", "New Lucky 8 Lines (set 6, W-4, main 40%, d-up 60%)", + "lucky_l1", "Lucky Seven (L-1)", + "luckygrl", "Lucky Girl? (Wing)", + "luckylad", "Lucky Lady (Wing, encrypted)", + "luckyrlt", "Lucky Roulette Plus (6-players, Spanish)", + "luckywld", "Lucky & Wild", + "luckywldj", "Lucky & Wild (Japan)", + "luctoday", "Lucky Today", + "lunapark", "Luna Park (set 1, dual program)", + "lunaparkb", "Luna Park (set 2, dual program)", + "lunaparkc", "Luna Park (set 3)", + "lunarba1", "Lunar Battle (prototype, earlier)", + "lunarbat", "Lunar Battle (prototype, later)", + "lunelle", "Lunelle", + "lupin3", "Lupin III (set 1)", + "lupin3a", "Lupin III (set 2)", + "lupinsho", "Lupin The Third - The Shooting (GDS-0018)", + "luplup", "Lup Lup Puzzle / Zhuan Zhuan Puzzle (version 3.0 / 990128)", + "luplup29", "Lup Lup Puzzle / Zhuan Zhuan Puzzle (version 2.9 / 990108)", + "luptype", "Lupin The Third - The Typing (Rev A) (GDS-0021A)", + "lvcards", "Lovely Cards", + "lvgirl94", "Las Vegas Girl (Girl '94)", + "lvpoker", "Lovely Poker [BET]", + "lw3_200", "Lethal Weapon 3 (2.00)", + "lw3_205", "Lethal Weapon 3 (2.05)", + "lw3_207", "Lethal Weapon 3 (2.07 Canada)", + "lw3_208", "Lethal Weapon 3 (2.08)", + "lwar_a83", "Laser War (8.3)", + "lwar_e90", "Laser War (9.0 Europe)", + "lwings", "Legendary Wings (US set 1)", + "lwings2", "Legendary Wings (US set 2)", + "lwingsb", "Legendary Wings (bootleg)", + "lwingsj", "Ares no Tsubasa (Japan)", + "lzbal_l2", "Laser Ball (L-2)", + "lzbal_t2", "Laser Ball (T-2)", + "m1albsq", "Albert Square (Maygay) v4.1 (M1A/B)", + "m1albsq1", "Albert Square (Maygay) v1.1 (M1A/B)", + "m1albsq1p", "Albert Square (Maygay) v1.1 (Protocol) (M1A/B)", + "m1albsq2", "Albert Square (Maygay) v2.2 (M1A/B)", + "m1albsq3", "Albert Square (Maygay) v3.0 (M1A/B)", + "m1albsqp", "Albert Square (Maygay) v4.1 (Protocol) (M1A/B)", + "m1alley", "Alley Cat (Maygay) (M1A/B)", + "m1apollo", "Apollo 9 (Maygay) vA.1 (Newer) (M1A/B)", + "m1apollo11", "Apollo 9 (Maygay) v11? (M1A/B)", + "m1apollo11b", "Apollo 9 (Maygay) v11? (BwB Rebuild) (M1A/B)", + "m1apollo11p", "Apollo 9 (Maygay) v11? (Protocol) (M1A/B)", + "m1apollo2", "Apollo 9 (Maygay) v2.1 (M1A/B)", + "m1apollo2p", "Apollo 9 (Maygay) v2.1 (Protocol) (M1A/B)", + "m1apollo3", "Apollo 9 (Maygay) v3.1 (M1A/B)", + "m1apollo3p", "Apollo 9 (Maygay) v3.1 (Protocol) (M1A/B)", + "m1apollo4", "Apollo 9 (Maygay) v4.1 (Newer) (M1A/B)", + "m1apollo4o", "Apollo 9 (Maygay) v4.1 (Older, Token)(M1A/B)", + "m1apollo4p", "Apollo 9 (Maygay) v4.1 (Newer) (Protocol) (M1A/B)", + "m1apollo5", "Apollo 9 (Maygay) v5.1 (M1A/B)", + "m1apollo5p", "Apollo 9 (Maygay) v5.1 (Protocol) (M1A/B)", + "m1apollo7", "Apollo 9 (Maygay) v7.1 (M1A/B)", + "m1apollo7p", "Apollo 9 (Maygay) v7.1 (Protocol) (M1A/B)", + "m1apollo8", "Apollo 9 (Maygay) v8.1 (M1A/B)", + "m1apollo8p", "Apollo 9 (Maygay) v8.1 (Protocol) (M1A/B)", + "m1apollo9", "Apollo 9 (Maygay) v9.1 (M1A/B)", + "m1apollo9p", "Apollo 9 (Maygay) v9.1 (Protocol) (M1A/B)", + "m1apolloa", "Apollo 9 (Maygay) vA.1 (Older) (M1A/B)", + "m1apolloao", "Apollo 9 (Maygay) vA.1 (Older, 15GBP) (M1A/B)", + "m1apolloap", "Apollo 9 (Maygay) vA.1 (Older) (Protocol) (M1A/B)", + "m1apolloh", "Apollo 9 (Maygay) vA.1 (Newer) (Hack?) (M1A/B)", + "m1apollop", "Apollo 9 (Maygay) vA.1 (Newer) (Protocol) (M1A/B)", + "m1atunk", "Random Runner (Avantime?)", + "m1bankbs", "Bank Buster Club (Maygay) v2.9 (M1A/B)", + "m1bankbso", "Bank Buster Club (Maygay) v2.8 (M1A/B)", + "m1bankbsp", "Bank Buster Club (Maygay) v2.9 (Protocol) (M1A/B)", + "m1bankrl", "Bank Roll (Maygay) v1.1 (M1A/B)", + "m1bankrl2p", "Bank Roll (Maygay) v2.1 (Protocol) (M1A/B)", + "m1bankrlp", "Bank Roll (Maygay) v1.1 (Protocol) (M1A/B)", + "m1bargn", "Bar-gain (Maygay) v7.1 (M1A/B)", + "m1bargnc", "Casino Bar-gain (Maygay) v5.1 (M1A/B)", + "m1bargncp", "Casino Bar-gain (Maygay) v5.1 (Protocol)(M1A/B)", + "m1bargnp", "Bar-gain (Maygay) v7.1 (Protocol) (M1A/B)", + "m1bghou", "Big Ghoulies (Gemini) (M1A/B) (set 1)", + "m1bghoua", "Big Ghoulies (Gemini) (M1A/B) (set 2)", + "m1bghoub", "Big Ghoulies (Gemini) (M1A/B) (set 3)", + "m1bghouc", "Big Ghoulies (Gemini) (M1A/B) (set 4)", + "m1bghoud", "Big Ghoulies (Gemini) (M1A/B) (set 5)", + "m1bghoue", "Big Ghoulies (Gemini) (M1A/B) (set 6)", + "m1bghouf", "Big Ghoulies (Gemini) (M1A/B) (set 7)", + "m1bghoug", "Big Ghoulies (Gemini) (M1A/B) (set 8)", + "m1bigdel", "Big Deal (Maygay) (M1A/B)", + "m1bignit", "Mike Reid's Big Night Out (Maygay) (M1A/B) (set 1)", + "m1bignita", "Mike Reid's Big Night Out (Maygay) (M1A/B) (set 2)", + "m1bignitb", "Mike Reid's Big Night Out (Maygay) (M1A/B) (set 3)", + "m1bignitc", "Mike Reid's Big Night Out (Maygay) (M1A/B) (set 4)", + "m1blkhol", "Black Hole (Dutch) (Maygay) (M1A/B)", + "m1bluemx", "Blue Max (Maygay) v2.1 (M1A/B)", + "m1bluemxp", "Blue Max (Maygay) v2.1 (Protocol) (M1A/B)", + "m1bondi", "Bondi Beach (Maygay) v1.1 (Newer) (M1A/B)", + "m1bondi1", "Bondi Beach (Maygay) v1.1 (M1A/B)", + "m1bondi1p", "Bondi Beach (Maygay) v1.1 (Protocol) (M1A/B)", + "m1bondi2", "Bondi Beach (Maygay) v2.1 (M1A/B)", + "m1bondi2p", "Bondi Beach (Maygay) v2.1 (Protocol) (M1A/B)", + "m1bondi2po", "Bondi Beach (Maygay) v2.1 (Older) (Protocol) (M1A/B)", + "m1bondi3", "Bondi Beach (Maygay) v3.1 (M1A/B)", + "m1bondi4", "Bondi Beach (Maygay) v4.1 (M1A/B)", + "m1bondi4p", "Bondi Beach (Maygay) v4.1 (Protocol) (M1A/B)", + "m1bondip", "Bondi Beach (Maygay) v1.1 (Newer) (Protocol) (M1A/B)", + "m1bountc", "Bounty Hunter Club (Maygay) v1.3 (M1A/B)", + "m1bountcp", "Bounty Hunter Club (Maygay) v1.3 (Protocol) (M1A/B)", + "m1calyps", "Calypso (Maygay) (M1A/B) (set 1)", + "m1calypsa", "Calypso (Maygay) (M1A/B) (set 2)", + "m1calypsb", "Calypso (Maygay) (M1A/B) (set 3)", + "m1casclb", "Casino Club (Maygay) v1.2 (M1A/B)", + "m1casclb1", "Casino Club (Maygay) v1.1 (M1A/B)", + "m1casclbp", "Casino Club (Maygay) v1.2 (Protocol) (M1A/B)", + "m1casgcl", "Casino Gambler Club (Maygay) v1.2 (M1A/B)", + "m1casgclp", "Casino Gambler Club (Maygay) v1.2 (Protocol) (M1A/B)", + "m1cashc", "Cash Classic (Maygay) (M1A/B) (set 1)", + "m1cashca", "Cash Classic (Maygay) (M1A/B) (set 2)", + "m1cashln", "Cash Lines (Maygay) (M1A/B)", + "m1casroy", "Casino Royale Club (Maygay) v1.2 (M1A/B)", + "m1casroy1", "Casino Royale Club (Maygay) v1.1 (M1A/B)", + "m1casroyp", "Casino Royale Club (Maygay) v1.2 (Protocol) (M1A/B)", + "m1chain", "Chain Reaction (Maygay) (M1A/B)", + "m1cik", "Cash Is King (Maygay) v11? (M1A/B)", + "m1cik11", "Cash Is King (Maygay) v1.1 (M1A/B)", + "m1cik11n", "Cash Is King (Maygay) v1.1 (alternate) (M1A/B)", + "m1cik11np", "Cash Is King (Maygay) v1.1 (alternate,Protocol) (M1A/B)", + "m1cik11p", "Cash Is King (Maygay) v1.1 (Protocol) (M1A/B)", + "m1cik12", "Cash Is King (Maygay) v1.2 (M1A/B)", + "m1cik21", "Cash Is King (Maygay) v2.1 (M1A/B)", + "m1cik21p", "Cash Is King (Maygay) v2.1 (Protocol) (M1A/B)", + "m1cik31", "Cash Is King (Maygay) v3.1 (M1A/B)", + "m1cik31p", "Cash Is King (Maygay) v3.1 (Protocol) (M1A/B)", + "m1cik41", "Cash Is King (Maygay) v4.1 (M1A/B)", + "m1cik41p", "Cash Is King (Maygay) v4.1 (Protocol) (M1A/B)", + "m1cik51", "Cash Is King (Maygay) v5.1 (M1A/B)", + "m1cik51o", "Cash Is King (Maygay) v5.1 (Older) (M1A/B)", + "m1cik51p", "Cash Is King (Maygay) v5.1 (Protocol) (M1A/B)", + "m1cikh", "Cash Is King (Maygay) v11? (Hack?) (M1A/B)", + "m1cikp", "Cash Is King (Maygay) v11? (Protocol) (M1A/B)", + "m1clbfvr", "Club Fever (Maygay) v1.1 (M1A/B)", + "m1clbfvrp", "Club Fever (Maygay) v1.1 (Protocol) (M1A/B)", + "m1cluecb", "Cluedo Club (Maygay) v3.1 (M1A/B)", + "m1cluecb1", "Cluedo Club (Maygay) v1.1 (M1A/B)", + "m1cluecb1p", "Cluedo Club (Maygay) v1.1 (Protocol) (M1A/B)", + "m1cluecb2", "Cluedo Club (Maygay) v2.1 (M1A/B)", + "m1cluecb2p", "Cluedo Club (Maygay) v2.1 (Protocol) (M1A/B)", + "m1cluecbp", "Cluedo Club (Maygay) v3.1 (Protocol) (M1A/B)", + "m1cluedo", "Cluedo (Maygay) v6.1 (M1A/B)", + "m1cluedo1", "Cluedo (Maygay) v1.1 (M1A/B)", + "m1cluedo1h", "Cluedo (Maygay) v1.1 (Hack?) (M1A/B)", + "m1cluedo1p", "Cluedo (Maygay) v1.1 (Protocol) (M1A/B)", + "m1cluedo3", "Cluedo (Maygay) v3.1 (M1A/B)", + "m1cluedo3h", "Cluedo (Maygay) v3.1 (Hack?) (M1A/B)", + "m1cluedo3p", "Cluedo (Maygay) v3.1 (Protocol) (M1A/B)", + "m1cluedo4", "Cluedo (Maygay) v4.1 (M1A/B)", + "m1cluedo4p", "Cluedo (Maygay) v4.1 (Protocol) (M1A/B)", + "m1cluedo5", "Cluedo (Maygay) v5.1 (M1A/B)", + "m1cluedo5p", "Cluedo (Maygay) v5.1 (Protocol) (M1A/B)", + "m1cluedob1", "Cluedo (Maygay/BwB) v1.1 (M1A/B)", + "m1cluedob1h", "Cluedo (Maygay/BwB) v1.1 (Hack?) (M1A/B)", + "m1cluedob1p", "Cluedo (Maygay/BwB) v1.1 (Protocol) (M1A/B)", + "m1cluedob2", "Cluedo (Maygay/BwB) v2.1 (M1A/B)", + "m1cluedob2h", "Cluedo (Maygay/BwB) v2.1 (Hack?) (M1A/B)", + "m1cluedob2p", "Cluedo (Maygay/BwB) v2.1 (Protocol) (M1A/B)", + "m1cluedoi", "Cluedo (Maygay) v7.2 (Isle of Man) (M1A/B)", + "m1cluedoip", "Cluedo (Maygay) v7.2 (Isle of Man) (Protocol) (M1A/B)", + "m1cluedon", "Cluedo (Maygay) v1.2 (Newer) (M1A/B)", + "m1cluedonp", "Cluedo (Maygay) v1.2 (Newer) (Protocol) (M1A/B)", + "m1cluedop", "Cluedo (Maygay) v6.1 (Protocol) (M1A/B)", + "m1cluesh", "Super Cluedo Showcase (Maygay) v1.2 (M1A/B)", + "m1cluesho", "Super Cluedo Showcase (Maygay) v1.2 (Older) (M1A/B)", + "m1clueshop", "Super Cluedo Showcase (Maygay) v1.2 (Older) (Protocol) (M1A/B)", + "m1clueshp", "Super Cluedo Showcase (Maygay) v1.2 (Protocol) (M1A/B)", + "m1cluess", "Cluedo Super Sleuth (Maygay) v2.3 (M1A/B)", + "m1cluessa", "Cluedo Super Sleuth (Maygay) v1.2 (Newer) (M1A/B)", + "m1cluessap", "Cluedo Super Sleuth (Maygay) v1.2 (Newer) (Protocol) (M1A/B)", + "m1cluessb", "Cluedo Super Sleuth (Maygay) v7.1 (Older) (M1A/B)", + "m1cluessbp", "Cluedo Super Sleuth (Maygay) v7.1 (Older) (Protocol) (M1A/B)", + "m1cluessc", "Cluedo Super Sleuth (Maygay) v6.1 (Older) (M1A/B)", + "m1cluesscp", "Cluedo Super Sleuth (Maygay) v6.1 (Older) (Protocol) (M1A/B)", + "m1cluessd", "Cluedo Super Sleuth (Maygay) v5.1 (Older) (M1A/B)", + "m1cluessdp", "Cluedo Super Sleuth (Maygay) v5.1 (Older) (Protocol) (M1A/B)", + "m1cluesse", "Cluedo Super Sleuth (Maygay) v2.1 (Older) (M1A/B)", + "m1cluessep", "Cluedo Super Sleuth (Maygay) v2.1 (Older) (Protocol) (M1A/B)", + "m1cluessf", "Cluedo Super Sleuth (Maygay) v1.1 (Older) (M1A/B)", + "m1cluessfp", "Cluedo Super Sleuth (Maygay) v1.1 (Older) (Protocol) (M1A/B)", + "m1cluessg", "Cluedo Super Sleuth (Maygay) v7.1 (15GBP Jackpot) (Older) (M1A/B)", + "m1cluessh", "Cluedo Super Sleuth (Maygay) v2.3 (Newer) (Hack) (M1A/B)", + "m1cluessi", "Cluedo Super Sleuth (Maygay) v2.1 (10GBP Jackpot) (Older) (M1A/B)", + "m1cluessj", "Cluedo Super Sleuth (Maygay) v2.3 (5GBP Jackpot) (Older) (M1A/B)", + "m1cluessk", "Cluedo Super Sleuth (Maygay) v1.2 (Older) (M1A/B)", + "m1cluessl", "Cluedo Super Sleuth (Maygay) v4.1 (Older) (M1A/B)", + "m1cluesslp", "Cluedo Super Sleuth (Maygay) v4.1 (Older) (Protocol) (M1A/B)", + "m1cluessm", "Cluedo Super Sleuth (Maygay) v3.1 (Older) (M1A/B)", + "m1cluessmp", "Cluedo Super Sleuth (Maygay) v3.1 (Older) (Protocol) (M1A/B)", + "m1cluessn", "Cluedo Super Sleuth (Maygay) v1.1 (10GBP Jackpot) (Older) (M1A/B)", + "m1cluesso", "Cluedo Super Sleuth (Maygay) v2.1 (Older, alternate) (M1A/B)", + "m1cluessop", "Cluedo Super Sleuth (Maygay) v2.1 (Older, alternate) (Protocol) (M1A/B)", + "m1cluessp", "Cluedo Super Sleuth (Maygay) v2.3 (Newer) (Protocol) (M1A/B)", + "m1cluessq", "Cluedo Super Sleuth (Maygay) v5.1 (Older, alternate) (M1A/B)", + "m1cluessqp", "Cluedo Super Sleuth (Maygay) v5.1 (Older, alternate) (Protocol) (M1A/B)", + "m1cluessr", "Cluedo Super Sleuth (Maygay) v3.1 (Older, alternate) (M1A/B)", + "m1cluessrp", "Cluedo Super Sleuth (Maygay) v3.1 (Older, alternate) (Protocol) (M1A/B)", + "m1cluesss", "Cluedo Super Sleuth (Maygay) v4.1? (Older, alternate) (M1A/B)", + "m1cluesssp", "Cluedo Super Sleuth (Maygay) v4.1? (Older, alternate) (Protocol) (M1A/B)", + "m1coderd", "Code Red Club (Maygay) v2.1 (M1A/B)", + "m1coderdp", "Code Red Club (Maygay) v2.1 (Protocol) (M1A/B)", + "m1coro", "Coronation Street (Maygay) (M1A/B)", + "m1coro10h1", "Coronation Street (Maygay) v1.0 (Hack 1) (M1A/B)", + "m1coro10h2", "Coronation Street (Maygay) v1.0 (Hack 2) (M1A/B)", + "m1coro10h3", "Coronation Street (Maygay) v1.0 (Hack 3) (M1A/B)", + "m1coro11n", "Coronation Street (Maygay) v1.1 (Newer) (M1A/B)", + "m1coro11np", "Coronation Street (Maygay) v1.1 (Newer) (Protocol) (M1A/B)", + "m1coro12a", "Coronation Street (Maygay) v1.2 (Newer, G?) (Alternate) (M1A/B)", + "m1coro12g", "Coronation Street (Maygay) v1.2 (Newer, G?) (M1A/B)", + "m1coro12gp", "Coronation Street (Maygay) v1.2 (Newer, G?) (Protocol) (M1A/B)", + "m1coro12n", "Coronation Street (Maygay) v1.2 (Newer) (M1A/B)", + "m1coro12np", "Coronation Street (Maygay) v1.2 (Newer) (Protocol) (M1A/B)", + "m1coro21n", "Coronation Street (Maygay) v2.1 (Newer) (M1A/B)", + "m1coro21np", "Coronation Street (Maygay) v2.1 (Newer) (Protocol) (M1A/B)", + "m1coro21v", "Coronation Street (Maygay) v2.1 (Multivend) (M1A/B)", + "m1coro21vp", "Coronation Street (Maygay) v2.1 (Multivend) (Protocol)(M1A/B)", + "m1coro22n", "Coronation Street (Maygay) v2.2 (Newer) (M1A/B)", + "m1coro30h", "Coronation Street (Maygay) v3.0 (Hack) (M1A/B)", + "m1coro31", "Coronation Street (Maygay) v3.1 (Older) (M1A/B)", + "m1coro31p", "Coronation Street (Maygay) v3.1 (Older) (Protocol) (M1A/B)", + "m1coro32g", "Coronation Street (Maygay) v3.2 (Newer, G?) (M1A/B)", + "m1coro32gh", "Coronation Street (Maygay) v3.2 (Newer, G?) (Hack) (M1A/B)", + "m1coro32n", "Coronation Street (Maygay) v3.2 (Newer) (M1A/B)", + "m1coro32np", "Coronation Street (Maygay) v3.2 (Newer) (Protocol) (M1A/B)", + "m1coro81", "Coronation Street (Maygay) v8.1 (M1A/B)", + "m1coro81p", "Coronation Street (Maygay) v8.1 (Protocol) (M1A/B)", + "m1corocb", "Coronation Street Club (Maygay) v2.1 (M1A/B)", + "m1corocb1", "Coronation Street Club (Maygay) v1.1 (M1A/B)", + "m1corocb1p", "Coronation Street Club (Maygay) v1.1 (Protocol)(M1A/B)", + "m1corocbp", "Coronation Street Club (Maygay) v2.1 (Protocol) (M1A/B)", + "m1corop", "Coronation Street (Maygay) (Protocol) (M1A/B)", + "m1cororr", "Coronation Street - Rovers Return (Maygay) (set 1) (M1A/B)", + "m1cororra", "Coronation Street - Rovers Return (Maygay) (set 1) (Alternate) (M1A/B)", + "m1cororrb", "Coronation Street - Rovers Return (Maygay) (set 2) (M1A/B)", + "m1cororrb1", "Coronation Street - Rovers Return (Maygay) (set 2) (Alternate) (M1A/B)", + "m1cororrbh", "Coronation Street - Rovers Return (Maygay) (set 2) (Hack) (M1A/B)", + "m1cororrbp", "Coronation Street - Rovers Return (Maygay) (set 2) (Protocol) (M1A/B)", + "m1cororrc", "Coronation Street - Rovers Return (Maygay) (set 3) (M1A/B)", + "m1cororrc1", "Coronation Street - Rovers Return (Maygay) (set 3) (Alternate 1) (M1A/B)", + "m1cororrc2", "Coronation Street - Rovers Return (Maygay) (set 3) (Alternate 2) (M1A/B)", + "m1cororrd", "Coronation Street - Rovers Return (Maygay) (set 4) (M1A/B)", + "m1cororrdp", "Coronation Street - Rovers Return (Maygay) (set 4) (Protocol) (M1A/B)", + "m1cororre", "Coronation Street - Rovers Return (Maygay) (set 5) (M1A/B)", + "m1cororrf", "Coronation Street - Rovers Return (Maygay) (set 6) (BW) (M1A/B)", + "m1cororrfp", "Coronation Street - Rovers Return (Maygay) (set 6) (BW) (Protocol) (M1A/B)", + "m1cororrg", "Coronation Street - Rovers Return (Maygay) (set 7) (M1A/B)", + "m1cororrgp", "Coronation Street - Rovers Return (Maygay) (set 7) (Protocol) (M1A/B)", + "m1cororrh", "Coronation Street - Rovers Return (Maygay) (set 8) (M1A/B)", + "m1cororri", "Coronation Street - Rovers Return (Maygay) (set 9) (M1A/B)", + "m1cororrip", "Coronation Street - Rovers Return (Maygay) (set 9) (Protocol) (M1A/B)", + "m1cororrj", "Coronation Street - Rovers Return (Maygay) (set 10) (M1A/B)", + "m1cororrjp", "Coronation Street - Rovers Return (Maygay) (set 10) (Protocol) (M1A/B)", + "m1cororrk", "Coronation Street - Rovers Return (Maygay) (set 11) (M1A/B)", + "m1cororrl", "Coronation Street - Rovers Return (Maygay) (set 12) (M1A/B)", + "m1cororrlp", "Coronation Street - Rovers Return (Maygay) (set 12) (Protocol) (M1A/B)", + "m1cororrp", "Coronation Street - Rovers Return (Maygay) (set 1) (Protocol) (M1A/B)", + "m1corosh", "Coronation Street Showcase (Maygay) v1.1 (M1A/B)", + "m1coroshp", "Coronation Street Showcase (Maygay) v1.1 (Protocol)(M1A/B)", + "m1criss", "Criss Cross Club (Maygay) (Dutch) (M1A/B)", + "m1crzco", "Crazy Cobra (Gemini) (M1A/B) (set 1)", + "m1crzcoa", "Crazy Cobra (Gemini) (M1A/B) (set 2)", + "m1crzcob", "Crazy Cobra (Gemini) (M1A/B) (set 3)", + "m1crzcoc", "Crazy Cobra (Gemini) (M1A/B) (set 4)", + "m1crzcod", "Crazy Cobra (Gemini) (M1A/B) (set 5)", + "m1crzcoe", "Crazy Cobra (Gemini) (M1A/B) (set 6)", + "m1digdel", "Diggers Delight (Global) (M1A/B) (set 1)", + "m1digdela", "Diggers Delight (Global) (M1A/B) (set 2)", + "m1dkong", "Donkey Kong (Maygay) v9.2 (M1A/B)", + "m1dkong11", "Donkey Kong (Maygay) v1.1 (M1A/B)", + "m1dkong11p", "Donkey Kong (Maygay) v1.1 (M1A/B) (Protocol?)", + "m1dkong21", "Donkey Kong (Maygay) v2.1 (Older) (M1A/B)", + "m1dkong21n", "Donkey Kong (Maygay) v2.1 (M1A/B)", + "m1dkong21p", "Donkey Kong (Maygay) v2.1 (Older) (Protocol) (M1A/B)", + "m1dkong31", "Donkey Kong (Maygay) v3.1 (M1A/B)", + "m1dkong31p", "Donkey Kong (Maygay) v3.1 (Protocol) (M1A/B)", + "m1dkong41", "Donkey Kong (Maygay) v4.1 (M1A/B)", + "m1dkong41p", "Donkey Kong (Maygay) v4.1 (Protocol) (M1A/B)", + "m1dkong51", "Donkey Kong (Maygay) v5.1 (M1A/B)", + "m1dkong51p", "Donkey Kong (Maygay) v5.1 (Protocol) (M1A/B)", + "m1dkong81", "Donkey Kong (Maygay) v8.1 (Older) (M1A/B)", + "m1dkong81n", "Donkey Kong (Maygay) v8.1 (M1A/B)", + "m1dkong81na", "Donkey Kong (Maygay) v8.1 (Alternate) (M1A/B)", + "m1dkong81np", "Donkey Kong (Maygay) v8.1 (Protocol) (M1A/B)", + "m1dkong81p", "Donkey Kong (Maygay) v8.1 (Older) (Protocol) (M1A/B)", + "m1dkong91", "Donkey Kong (Maygay) v9.1 (Older) (M1A/B)", + "m1dkong91a", "Donkey Kong (Maygay) v9.1 (Older) (Alternate) (M1A/B)", + "m1dkong91h1", "Donkey Kong (Maygay) v9.1 (Older) (Hack 1) (M1A/B)", + "m1dkong91h2", "Donkey Kong (Maygay) v9.1 (Older) (Hack 2) (M1A/B)", + "m1dkong91n", "Donkey Kong (Maygay) v9.1 (M1A/B)", + "m1dkong91na", "Donkey Kong (Maygay) v9.1 (Alternate) (M1A/B)", + "m1dkong91np", "Donkey Kong (Maygay) v9.1 (Protocol) (M1A/B)", + "m1dkong91p", "Donkey Kong (Maygay) v9.1 (Older) (Protocol) (M1A/B)", + "m1dkonga", "Donkey Kong (Maygay) v9.2 (Alternate) (M1A/B)", + "m1dkongp", "Donkey Kong (Maygay) v9.2 (Protocol) (M1A/B)", + "m1dm4ev", "Diamonds Are Forever Club (Maygay) v5.1 (M1A/B)", + "m1dm4ev11", "Diamonds Are Forever Club (Maygay) v1.1 (M1A/B)", + "m1dm4evp", "Diamonds Are Forever Club (Maygay) v5.1 (Protocol) n(M1A/B)", + "m1dmnhrt", "Diamond Hearts (Maygay) (M1A/B)", + "m1dxmono", "Deluxe Monopoly (Maygay) v5.1 (M1A/B)", + "m1dxmono11", "Deluxe Monopoly (Maygay) v1.1 (M1A/B)", + "m1dxmono11m", "Deluxe Monopoly (Maygay) v1.1 (Code M) (M1A/B)", + "m1dxmono11mb", "Deluxe Monopoly (Maygay) v1.1 (Code M, Alternate) (M1A/B)", + "m1dxmono11o", "Deluxe Monopoly (Maygay) v1.1 (Older) (M1A/B)", + "m1dxmono11p", "Deluxe Monopoly (Maygay) v1.1 (Protocol) (M1A/B)", + "m1dxmono12", "Deluxe Monopoly (Maygay) v1.2 (M1A/B)", + "m1dxmono12a", "Deluxe Monopoly (Maygay) v1.2 (Alternate) (M1A/B)", + "m1dxmono12n", "Deluxe Monopoly (Maygay) v1.2 (Newer) (M1A/B)", + "m1dxmono12p", "Deluxe Monopoly (Maygay) v1.2 (Protocol) (M1A/B)", + "m1dxmono21p", "Deluxe Monopoly (Maygay) v2.1 (Protocol) (M1A/B)", + "m1dxmono30h", "Deluxe Monopoly (Maygay) v3.0 (Hack) (M1A/B)", + "m1dxmono31b", "Deluxe Monopoly (Maygay) v3.1 (BwB set) (M1A/B)", + "m1dxmono31h", "Deluxe Monopoly (Maygay) v3.1 (Hack) (M1A/B)", + "m1dxmono31h2", "Deluxe Monopoly (Maygay) v3.1 (Alternate Hack) (M1A/B)", + "m1dxmono31p", "Deluxe Monopoly (Maygay) v3.1 (Protocol) (M1A/B)", + "m1dxmono51", "Deluxe Monopoly (Maygay) v5.1 (Older) (M1A/B)", + "m1dxmono51o", "Deluxe Monopoly (Maygay) v5.1 (Older) (M1A/B) (alt?)", + "m1dxmono51p", "Deluxe Monopoly (Maygay) v5.1 (Older) (Protocol) (M1A/B)", + "m1dxmonop", "Deluxe Monopoly (Maygay) v5.1 (Protocol) (M1A/B)", + "m1eastnd", "Eastenders (Maygay) (M1A/B) (set 1)", + "m1eastnd0", "Eastenders (Maygay) (M1A/B) (set 28)", + "m1eastnd1", "Eastenders (Maygay) (M1A/B) (set 29)", + "m1eastnd2", "Eastenders (Maygay) (M1A/B) (set 30)", + "m1eastnd3", "Eastenders (Maygay) (M1A/B) (set 31)", + "m1eastnd4", "Eastenders (Maygay) (M1A/B) (set 32)", + "m1eastnd5", "Eastenders (Maygay) (M1A/B) (set 33)", + "m1eastnd6", "Eastenders (Maygay) (M1A/B) (set 34)", + "m1eastnd7", "Eastenders (Maygay) (M1A/B) (set 35)", + "m1eastnd8", "Eastenders (Maygay) (M1A/B) (set 36)", + "m1eastnd9", "Eastenders (Maygay) (M1A/B) (set 37)", + "m1eastnda", "Eastenders (Maygay) (M1A/B) (set 2)", + "m1eastndaa", "Eastenders (Maygay) (M1A/B) (set 38)", + "m1eastndab", "Eastenders (Maygay) (M1A/B) (set 39)", + "m1eastndac", "Eastenders (Maygay) (M1A/B) (set 40)", + "m1eastndad", "Eastenders (Maygay) (M1A/B) (set 41)", + "m1eastndae", "Eastenders (Maygay) (M1A/B) (set 42)", + "m1eastndaf", "Eastenders (Maygay) (M1A/B) (set 43)", + "m1eastndb", "Eastenders (Maygay) (M1A/B) (set 3)", + "m1eastndc", "Eastenders (Maygay) (M1A/B) (set 4)", + "m1eastndd", "Eastenders (Maygay) (M1A/B) (set 5)", + "m1eastnde", "Eastenders (Maygay) (M1A/B) (set 6)", + "m1eastndf", "Eastenders (Maygay) (M1A/B) (set 7)", + "m1eastndg", "Eastenders (Maygay) (M1A/B) (set 8)", + "m1eastndh", "Eastenders (Maygay) (M1A/B) (set 9)", + "m1eastndi", "Eastenders (Maygay) (M1A/B) (set 10)", + "m1eastndj", "Eastenders (Maygay) (M1A/B) (set 11)", + "m1eastndk", "Eastenders (Maygay) (M1A/B) (set 12)", + "m1eastndl", "Eastenders (Maygay) (M1A/B) (set 13)", + "m1eastndn", "Eastenders (Maygay) (M1A/B) (set 15)", + "m1eastndp", "Eastenders (Maygay) (M1A/B) (set 17)", + "m1eastndq", "Eastenders (Maygay) (M1A/B) (set 18)", + "m1eastndr", "Eastenders (Maygay) (M1A/B) (set 19)", + "m1eastnds", "Eastenders (Maygay) (M1A/B) (set 20)", + "m1eastndt", "Eastenders (Maygay) (M1A/B) (set 21)", + "m1eastndu", "Eastenders (Maygay) (M1A/B) (set 22)", + "m1eastndv", "Eastenders (Maygay) (M1A/B) (set 23)", + "m1eastndw", "Eastenders (Maygay) (M1A/B) (set 24)", + "m1eastndx", "Eastenders (Maygay) (M1A/B) (set 25)", + "m1eastndy", "Eastenders (Maygay) (M1A/B) (set 26)", + "m1eastndz", "Eastenders (Maygay) (M1A/B) (set 27)", + "m1eastqv", "Eastenders - Queen Vic (Maygay) (M1A/B) (set 1)", + "m1eastqv0", "Eastenders - Queen Vic (Maygay) (M1A/B) (set 28)", + "m1eastqv1", "Eastenders - Queen Vic (Maygay) (M1A/B) (set 29)", + "m1eastqv2", "Eastenders - Queen Vic (Maygay) (M1A/B) (set 30)", + "m1eastqv3", "Eastenders - Queen Vic (Maygay) (M1A/B) (set 31)", + "m1eastqv5", "Eastenders - Queen Vic (Maygay) (M1A/B) (set 33)", + "m1eastqv6", "Eastenders - Queen Vic (Maygay) (M1A/B) (set 34)", + "m1eastqv7", "Eastenders - Queen Vic (Maygay) (M1A/B) (set 35)", + "m1eastqv8", "Eastenders - Queen Vic (Maygay) (M1A/B) (set 36)", + "m1eastqva", "Eastenders - Queen Vic (Maygay) (M1A/B) (set 2)", + "m1eastqvaa", "Eastenders - Queen Vic (Maygay) (M1A/B) (set 38)", + "m1eastqvb", "Eastenders - Queen Vic (Maygay) (M1A/B) (set 3)", + "m1eastqvc", "Eastenders - Queen Vic (Maygay) (M1A/B) (set 4)", + "m1eastqvd", "Eastenders - Queen Vic (Maygay) (M1A/B) (set 5)", + "m1eastqvf", "Eastenders - Queen Vic (Maygay) (M1A/B) (set 7)", + "m1eastqvg", "Eastenders - Queen Vic (Maygay) (M1A/B) (set 8)", + "m1eastqvh", "Eastenders - Queen Vic (Maygay) (M1A/B) (set 9)", + "m1eastqvi", "Eastenders - Queen Vic (Maygay) (M1A/B) (set 10)", + "m1eastqvj", "Eastenders - Queen Vic (Maygay) (M1A/B) (set 11)", + "m1eastqvk", "Eastenders - Queen Vic (Maygay) (M1A/B) (set 12)", + "m1eastqvl", "Eastenders - Queen Vic (Maygay) (M1A/B) (set 13)", + "m1eastqvm", "Eastenders - Queen Vic (Maygay) (M1A/B) (set 14)", + "m1eastqvn", "Eastenders - Queen Vic (Maygay) (M1A/B) (set 15)", + "m1eastqvo", "Eastenders - Queen Vic (Maygay) (M1A/B) (set 16)", + "m1eastqvp", "Eastenders - Queen Vic (Maygay) (M1A/B) (set 17)", + "m1eastqvq", "Eastenders - Queen Vic (Maygay) (M1A/B) (set 18)", + "m1eastqvr", "Eastenders - Queen Vic (Maygay) (M1A/B) (set 19)", + "m1eastqvs", "Eastenders - Queen Vic (Maygay) (M1A/B) (set 20)", + "m1eastqvt", "Eastenders - Queen Vic (Maygay) (M1A/B) (set 21)", + "m1eastqvu", "Eastenders - Queen Vic (Maygay) (M1A/B) (set 22)", + "m1eastqvv", "Eastenders - Queen Vic (Maygay) (M1A/B) (set 23)", + "m1eastqvw", "Eastenders - Queen Vic (Maygay) (M1A/B) (set 24)", + "m1eastqvx", "Eastenders - Queen Vic (Maygay) (M1A/B) (set 25)", + "m1eastqvy", "Eastenders - Queen Vic (Maygay) (M1A/B) (set 26)", + "m1eastqvz", "Eastenders - Queen Vic (Maygay) (M1A/B) (set 27)", + "m1expclb", "Explorer Club (Maygay) (M1A/B) (set 2)", + "m1expclba", "Explorer Club (Maygay) (M1A/B) (set 3)", + "m1fantfb", "Fantasy Football (Maygay) (M1A/B) (set 1)", + "m1fantfba", "Fantasy Football (Maygay) (M1A/B) (set 2)", + "m1fantfbb", "Fantasy Football (Maygay) (M1A/B) (set 3)", + "m1fantfbc", "Fantasy Football (Maygay) (M1A/B) (set 4)", + "m1fantfbd", "Fantasy Football (Maygay) (M1A/B) (set 5)", + "m1fantfbf", "Fantasy Football (Maygay) (M1A/B) (set 7)", + "m1fantfbg", "Fantasy Football (Maygay) (M1A/B) (set 8)", + "m1fantfbh", "Fantasy Football (Maygay) (M1A/B) (set 9)", + "m1fantfbj", "Fantasy Football (Maygay) (M1A/B) (set 11)", + "m1fantfbk", "Fantasy Football (Maygay) (M1A/B) (set 12)", + "m1fantfbl", "Fantasy Football (Maygay) (M1A/B) (set 13)", + "m1fight", "Fight Night (Maygay) (M1A/B) (set 1)", + "m1fighta", "Fight Night (Maygay) (M1A/B) (set 2)", + "m1fightb", "Fight Night (Maygay) (M1A/B) (set 3)", + "m1fightc", "Fight Night (Maygay) (M1A/B) (set 4)", + "m1fightd", "Fight Night (Maygay) (M1A/B) (set 5)", + "m1fighte", "Fight Night (Maygay) (M1A/B) (set 6)", + "m1fightg", "Fight Night (Maygay) (M1A/B) (set 8)", + "m1fighth", "Fight Night (Maygay) (M1A/B) (set 9)", + "m1fighti", "Fight Night (Maygay) (M1A/B) (set 10)", + "m1fightj", "Fight Night (Maygay) (M1A/B) (set 11)", + "m1fightk", "Fight Night (Maygay) (M1A/B) (set 12)", + "m1fightl", "Fight Night (Maygay) (M1A/B) (set 13)", + "m1fightm", "Fight Night (Maygay) (M1A/B) (set 14)", + "m1fightn", "Fight Night (Maygay) (M1A/B) (set 15)", + "m1fighto", "Fight Night (Maygay) (M1A/B) (set 16)", + "m1fightp", "Fight Night (Maygay) (M1A/B) (set 17)", + "m1fightq", "Fight Night (Maygay) (M1A/B) (set 18)", + "m1fightr", "Fight Night (Maygay) (M1A/B) (set 19)", + "m1fights", "Fight Night (Maygay) (M1A/B) (set 20)", + "m1fightt", "Fight Night (Maygay) (M1A/B) (set 21)", + "m1fightu", "Fight Night (Maygay) (M1A/B) (set 22)", + "m1fightv", "Fight Night (Maygay) (M1A/B) (set 23)", + "m1fightw", "Fight Night (Maygay) (M1A/B) (set 24)", + "m1fightx", "Fight Night (Maygay) (M1A/B) (set 25)", + "m1fivest", "Five Star (Dutch) (Maygay) (M1A/B)", + "m1frexpl", "Fruit Explosion (Maygay) (M1A/B) (set 1)", + "m1frexpla", "Fruit Explosion (Maygay) (M1A/B) (set 2)", + "m1frexplc", "Fruit Explosion (Maygay) (M1A/B) (set 4)", + "m1frexpld", "Fruit Explosion (Maygay) (M1A/B) (set 5)", + "m1frexple", "Fruit Explosion (Maygay) (M1A/B) (set 6)", + "m1frexplg", "Fruit Explosion (Maygay) (M1A/B) (set 8)", + "m1frexplh", "Fruit Explosion (Maygay) (M1A/B) (set 9)", + "m1frexpli", "Fruit Explosion (Maygay) (M1A/B) (set 10)", + "m1frexplj", "Fruit Explosion (Maygay) (M1A/B) (set 11)", + "m1frexplk", "Fruit Explosion (Maygay) (M1A/B) (set 12)", + "m1frexpll", "Fruit Explosion (Maygay) (M1A/B) (set 13)", + "m1frexplm", "Fruit Explosion (Maygay) (M1A/B) (set 14)", + "m1frexpln", "Fruit Explosion (Maygay) (M1A/B) (set 15)", + "m1frexplo", "Fruit Explosion (Maygay) (M1A/B) (set 16)", + "m1frexplp", "Fruit Explosion (Maygay) (M1A/B) (set 17)", + "m1frexplq", "Fruit Explosion (Maygay) (M1A/B) (set 18)", + "m1frexplr", "Fruit Explosion (Maygay) (M1A/B) (set 19)", + "m1frexpls", "Fruit Explosion (Maygay) (M1A/B) (set 20)", + "m1frexplt", "Fruit Explosion (Maygay) (M1A/B) (set 21)", + "m1frexplu", "Fruit Explosion (Maygay) (M1A/B) (set 22)", + "m1frexplv", "Fruit Explosion (Maygay) (M1A/B) (set 23)", + "m1glad", "Gladiators (Maygay) (M1A/B) (set 1)", + "m1glad0", "Gladiators (Maygay) (M1A/B) (set 28)", + "m1glad1", "Gladiators (Maygay) (M1A/B) (set 29)", + "m1glada", "Gladiators (Maygay) (M1A/B) (set 2)", + "m1gladb", "Gladiators (Maygay) (M1A/B) (set 3)", + "m1gladc", "Gladiators (Maygay) (M1A/B) (set 4)", + "m1gladd", "Gladiators (Maygay) (M1A/B) (set 5)", + "m1glade", "Gladiators (Maygay) (M1A/B) (set 6)", + "m1gladf", "Gladiators (Maygay) (M1A/B) (set 7)", + "m1gladg", "Gladiators (Maygay) (M1A/B) (set 8)", + "m1gladh", "Gladiators (Maygay) (M1A/B) (set 9)", + "m1gladj", "Gladiators (Maygay) (M1A/B) (set 11)", + "m1gladk", "Gladiators (Maygay) (M1A/B) (set 12)", + "m1gladl", "Gladiators (Maygay) (M1A/B) (set 13)", + "m1gladm", "Gladiators (Maygay) (M1A/B) (set 14)", + "m1gladn", "Gladiators (Maygay) (M1A/B) (set 15)", + "m1glado", "Gladiators (Maygay) (M1A/B) (set 16)", + "m1gladp", "Gladiators (Maygay) (M1A/B) (set 17)", + "m1gladq", "Gladiators (Maygay) (M1A/B) (set 18)", + "m1gladr", "Gladiators (Maygay) (M1A/B) (set 19)", + "m1glads", "Gladiators (Maygay) (M1A/B) (set 20)", + "m1gladt", "Gladiators (Maygay) (M1A/B) (set 21)", + "m1gladu", "Gladiators (Maygay) (M1A/B) (set 22)", + "m1gladv", "Gladiators (Maygay) (M1A/B) (set 23)", + "m1gladw", "Gladiators (Maygay) (M1A/B) (set 24)", + "m1gladx", "Gladiators (Maygay) (M1A/B) (set 25)", + "m1glady", "Gladiators (Maygay) (M1A/B) (set 26)", + "m1gladz", "Gladiators (Maygay) (M1A/B) (set 27)", + "m1gold10", "Golden 10 (German) (Maygay) (M1A/B)", + "m1goldng", "Golden Nugget Club (Maygay) (M1A/B) (set 1)", + "m1goldnga", "Golden Nugget Club (Maygay) (M1A/B) (set 2)", + "m1goldngb", "Golden Nugget Club (Maygay) (M1A/B) (set 3)", + "m1goldngc", "Golden Nugget Club (Maygay) (M1A/B) (set 4)", + "m1goldngd", "Golden Nugget Club (Maygay) (M1A/B) (set 5)", + "m1goldnge", "Golden Nugget Club (Maygay) (M1A/B) (set 6)", + "m1goldsv", "Gold & Silver (Maygay) (M1A/B) (set 1)", + "m1goldsva", "Gold & Silver (Maygay) (M1A/B) (set 2)", + "m1gresc", "Great Escape, The (Maygay) (M1A/B) (set 1)", + "m1gresca", "Great Escape, The (Maygay) (M1A/B) (set 2)", + "m1grescb", "Great Escape, The (Maygay) (M1A/B) (set 3)", + "m1grescc", "Great Escape, The (Maygay) (M1A/B) (set 4)", + "m1grescd", "Great Escape, The (Maygay) (M1A/B) (set 5)", + "m1gresce", "Great Escape, The (Maygay) (M1A/B) (set 6)", + "m1grescf", "Great Escape, The (Maygay) (M1A/B) (set 7)", + "m1grescg", "Great Escape, The (Maygay) (M1A/B) (set 8)", + "m1gresch", "Great Escape, The (Maygay) (M1A/B) (set 9)", + "m1gresci", "Great Escape, The (Maygay) (M1A/B) (set 10)", + "m1grescj", "Great Escape, The (Maygay) (M1A/B) (set 11)", + "m1gresck", "Great Escape, The (Maygay) (M1A/B) (set 12)", + "m1grescl", "Great Escape, The (Maygay) (M1A/B) (set 13)", + "m1grescm", "Great Escape, The (Maygay) (M1A/B) (set 14)", + "m1grescn", "Great Escape, The (Maygay) (M1A/B) (set 15)", + "m1gresco", "Great Escape, The (Maygay) (M1A/B) (set 16)", + "m1grescp", "Great Escape, The (Maygay) (M1A/B) (set 17)", + "m1grescq", "Great Escape, The (Maygay) (M1A/B) (set 18)", + "m1gskill", "Greek Skill (Hitech Amusement)", + "m1guvnor", "The Guvnor (Maygay) (M1A/B) (set 1)", + "m1guvnora", "The Guvnor (Maygay) (M1A/B) (set 2)", + "m1guvnorb", "The Guvnor (Maygay) (M1A/B) (set 3)", + "m1guvnorc", "The Guvnor (Maygay) (M1A/B) (set 4)", + "m1guvnord", "The Guvnor (Maygay) (M1A/B) (set 5)", + "m1guvnore", "The Guvnor (Maygay) (M1A/B) (set 6)", + "m1guvnorf", "The Guvnor (Maygay) (M1A/B) (set 7)", + "m1guvnorg", "The Guvnor (Maygay) (M1A/B) (set 8)", + "m1guvnorh", "The Guvnor (Maygay) (M1A/B) (set 9)", + "m1guvnori", "The Guvnor (Maygay) (M1A/B) (set 10)", + "m1guvnorj", "The Guvnor (Maygay) (M1A/B) (set 11)", + "m1guvnork", "The Guvnor (Maygay) (M1A/B) (set 12)", + "m1guvnorl", "The Guvnor (Maygay) (M1A/B) (set 13)", + "m1guvnorm", "The Guvnor (Maygay) (M1A/B) (set 14)", + "m1guvnorn", "The Guvnor (Maygay) (M1A/B) (set 15)", + "m1guvnoro", "The Guvnor (Maygay) (M1A/B) (set 16)", + "m1guvnorp", "The Guvnor (Maygay) (M1A/B) (set 17)", + "m1guvnorq", "The Guvnor (Maygay) (M1A/B) (set 18)", + "m1guvnorr", "The Guvnor (Maygay) (M1A/B) (set 19)", + "m1guvnors", "The Guvnor (Maygay) (M1A/B) (set 20)", + "m1guvnort", "The Guvnor (Maygay) (M1A/B) (set 21)", + "m1hiloc", "Hi Lo Casino (Global) (M1A/B) (set 1)", + "m1hiloca", "Hi Lo Casino (Global) (M1A/B) (set 2)", + "m1hotpot", "Hot Pots (Maygay) (M1A/B) (set 1)", + "m1hotpot0", "Hot Pots (Maygay) (M1A/B) (set 28)", + "m1hotpotd", "Hot Pots (Maygay) (M1A/B) (set 5)", + "m1hotpote", "Hot Pots (Maygay) (M1A/B) (set 6)", + "m1hotpoth", "Hot Pots (Maygay) (M1A/B) (set 9)", + "m1hotpoti", "Hot Pots (Maygay) (M1A/B) (set 10)", + "m1hotpotj", "Hot Pots (Maygay) (M1A/B) (set 11)", + "m1hotpotk", "Hot Pots (Maygay) (M1A/B) (set 12)", + "m1hotpotl", "Hot Pots (Maygay) (M1A/B) (set 13)", + "m1hotpotm", "Hot Pots (Maygay) (M1A/B) (set 14)", + "m1hotpotn", "Hot Pots (Maygay) (M1A/B) (set 15)", + "m1hotpoto", "Hot Pots (Maygay) (M1A/B) (set 16)", + "m1hotpotp", "Hot Pots (Maygay) (M1A/B) (set 17)", + "m1hotpotq", "Hot Pots (Maygay) (M1A/B) (set 18)", + "m1hotpotr", "Hot Pots (Maygay) (M1A/B) (set 19)", + "m1hotpots", "Hot Pots (Maygay) (M1A/B) (set 20)", + "m1hotpott", "Hot Pots (Maygay) (M1A/B) (set 21)", + "m1hotpotu", "Hot Pots (Maygay) (M1A/B) (set 22)", + "m1hotpotv", "Hot Pots (Maygay) (M1A/B) (set 23)", + "m1hotpotw", "Hot Pots (Maygay) (M1A/B) (set 24)", + "m1hotpotx", "Hot Pots (Maygay) (M1A/B) (set 25)", + "m1hotpoty", "Hot Pots (Maygay) (M1A/B) (set 26)", + "m1hotpotz", "Hot Pots (Maygay) (M1A/B) (set 27)", + "m1htclb", "Hi Tension Club (Maygay) (M1A/B) (set 1)", + "m1htclba", "Hi Tension Club (Maygay) (M1A/B) (set 2)", + "m1imclb", "Instant Millionaire Club (Maygay) (M1A/B) (set 1)", + "m1imclba", "Instant Millionaire Club (Maygay) (M1A/B) (set 2)", + "m1imclbb", "Instant Millionaire Club (Maygay) (M1A/B) (set 3)", + "m1infern", "Inferno (Maygay) (M1A/B) (set 1)", + "m1inferna", "Inferno (Maygay) (M1A/B) (set 2)", + "m1infernb", "Inferno (Maygay) (M1A/B) (set 3)", + "m1infernc", "Inferno (Maygay) (M1A/B) (set 4)", + "m1infernd", "Inferno (Maygay) (M1A/B) (set 5)", + "m1inferne", "Inferno (Maygay) (M1A/B) (set 6)", + "m1infernf", "Inferno (Maygay) (M1A/B) (set 7)", + "m1inferng", "Inferno (Maygay) (M1A/B) (set 8)", + "m1infernh", "Inferno (Maygay) (M1A/B) (set 9)", + "m1inferni", "Inferno (Maygay) (M1A/B) (set 10)", + "m1infernj", "Inferno (Maygay) (M1A/B) (set 11)", + "m1infernk", "Inferno (Maygay) (M1A/B) (set 12)", + "m1infernl", "Inferno (Maygay) (M1A/B) (set 13)", + "m1inwin", "Instant Win (Maygay) (M1A/B) (set 1)", + "m1inwina", "Instant Win (Maygay) (M1A/B) (set 2)", + "m1inwinb", "Instant Win (Maygay) (M1A/B) (set 3)", + "m1inwinc", "Instant Win (Maygay) (M1A/B) (set 4)", + "m1inwinf", "Instant Win (Maygay) (M1A/B) (set 7)", + "m1inwinh", "Instant Win (Maygay) (M1A/B) (set 9)", + "m1inwini", "Instant Win (Maygay) (M1A/B) (set 10)", + "m1inwinj", "Instant Win (Maygay) (M1A/B) (set 11)", + "m1inwink", "Instant Win (Maygay) (M1A/B) (set 12)", + "m1inwinl", "Instant Win (Maygay) (M1A/B) (set 13)", + "m1inwinm", "Instant Win (Maygay) (M1A/B) (set 14)", + "m1inwinn", "Instant Win (Maygay) (M1A/B) (set 15)", + "m1inwino", "Instant Win (Maygay) (M1A/B) (set 16)", + "m1inwinp", "Instant Win (Maygay) (M1A/B) (set 17)", + "m1inwinq", "Instant Win (Maygay) (M1A/B) (set 18)", + "m1inwinr", "Instant Win (Maygay) (M1A/B) (set 19)", + "m1inwins", "Instant Win (Maygay) (M1A/B) (set 20)", + "m1inwint", "Instant Win (Maygay) (M1A/B) (set 21)", + "m1inwinu", "Instant Win (Maygay) (M1A/B) (set 22)", + "m1inwinv", "Instant Win (Maygay) (M1A/B) (set 23)", + "m1inwinw", "Instant Win (Maygay) (M1A/B) (set 24)", + "m1inwinx", "Instant Win (Maygay) (M1A/B) (set 25)", + "m1itjob", "Italian Job (Maygay) (M1A/B) (set 1)", + "m1itjobc", "Italian Job (Maygay) (M1A/B) (set 4)", + "m1itjobd", "Italian Job (Maygay) (M1A/B) (set 5)", + "m1itjobe", "Italian Job (Maygay) (M1A/B) (set 6)", + "m1itjobf", "Italian Job (Maygay) (M1A/B) (set 7)", + "m1itjobg", "Italian Job (Maygay) (M1A/B) (set 8)", + "m1itjobh", "Italian Job (Maygay) (M1A/B) (set 9)", + "m1itjobi", "Italian Job (Maygay) (M1A/B) (set 10)", + "m1itjobj", "Italian Job (Maygay) (M1A/B) (set 11)", + "m1itjobk", "Italian Job (Maygay) (M1A/B) (set 12)", + "m1itjobl", "Italian Job (Maygay) (M1A/B) (set 13)", + "m1itjobm", "Italian Job (Maygay) (M1A/B) (set 14)", + "m1itjobn", "Italian Job (Maygay) (M1A/B) (set 15)", + "m1itjobo", "Italian Job (Maygay) (M1A/B) (set 16)", + "m1itjobp", "Italian Job (Maygay) (M1A/B) (set 17)", + "m1itjobq", "Italian Job (Maygay) (M1A/B) (set 18)", + "m1itjobr", "Italian Job (Maygay) (M1A/B) (set 19)", + "m1itsko", "It's A Knockout (Maygay) (M1A/B) (set 1)", + "m1itsko0", "It's A Knockout (Maygay) (M1A/B) (set 28)", + "m1itsko1", "It's A Knockout (Maygay) (M1A/B) (set 29)", + "m1itsko2", "It's A Knockout (Maygay) (M1A/B) (set 30)", + "m1itsko3", "It's A Knockout (Maygay) (M1A/B) (set 31)", + "m1itsko4", "It's A Knockout (Maygay) (M1A/B) (set 32)", + "m1itsko5", "It's A Knockout (Maygay) (M1A/B) (set 33)", + "m1itsko6", "It's A Knockout (Maygay) (M1A/B) (set 34)", + "m1itsko7", "It's A Knockout (Maygay) (M1A/B) (set 35)", + "m1itsko8", "It's A Knockout (Maygay) (M1A/B) (set 36)", + "m1itskoa", "It's A Knockout (Maygay) (M1A/B) (set 2)", + "m1itskob", "It's A Knockout (Maygay) (M1A/B) (set 3)", + "m1itskoc", "It's A Knockout (Maygay) (M1A/B) (set 4)", + "m1itskod", "It's A Knockout (Maygay) (M1A/B) (set 5)", + "m1itskoe", "It's A Knockout (Maygay) (M1A/B) (set 6)", + "m1itskof", "It's A Knockout (Maygay) (M1A/B) (set 7)", + "m1itskog", "It's A Knockout (Maygay) (M1A/B) (set 8)", + "m1itskoh", "It's A Knockout (Maygay) (M1A/B) (set 9)", + "m1itskoi", "It's A Knockout (Maygay) (M1A/B) (set 10)", + "m1itskoj", "It's A Knockout (Maygay) (M1A/B) (set 11)", + "m1itskok", "It's A Knockout (Maygay) (M1A/B) (set 12)", + "m1itskol", "It's A Knockout (Maygay) (M1A/B) (set 13)", + "m1itskom", "It's A Knockout (Maygay) (M1A/B) (set 14)", + "m1itskon", "It's A Knockout (Maygay) (M1A/B) (set 15)", + "m1itskoo", "It's A Knockout (Maygay) (M1A/B) (set 16)", + "m1itskop", "It's A Knockout (Maygay) (M1A/B) (set 17)", + "m1itskoq", "It's A Knockout (Maygay) (M1A/B) (set 18)", + "m1itskor", "It's A Knockout (Maygay) (M1A/B) (set 19)", + "m1itskos", "It's A Knockout (Maygay) (M1A/B) (set 20)", + "m1itskot", "It's A Knockout (Maygay) (M1A/B) (set 21)", + "m1itskou", "It's A Knockout (Maygay) (M1A/B) (set 22)", + "m1itskov", "It's A Knockout (Maygay) (M1A/B) (set 23)", + "m1itskow", "It's A Knockout (Maygay) (M1A/B) (set 24)", + "m1itskox", "It's A Knockout (Maygay) (M1A/B) (set 25)", + "m1itskoy", "It's A Knockout (Maygay) (M1A/B) (set 26)", + "m1itskoz", "It's A Knockout (Maygay) (M1A/B) (set 27)", + "m1jbond", "James Bond (Maygay) (M1A/B) (set 1)", + "m1jbonda", "James Bond (Maygay) (M1A/B) (set 2)", + "m1jbondb", "James Bond (Maygay) (M1A/B) (set 3)", + "m1jbondc", "James Bond (Maygay) (M1A/B) (set 4)", + "m1jbondd", "James Bond (Maygay) (M1A/B) (set 5)", + "m1jbonde", "James Bond (Maygay) (M1A/B) (set 6)", + "m1jbondf", "James Bond (Maygay) (M1A/B) (set 7)", + "m1jbondg", "James Bond (Maygay) (M1A/B) (set 8)", + "m1jbondh", "James Bond (Maygay) (M1A/B) (set 9)", + "m1jbondi", "James Bond (Maygay) (M1A/B) (set 10)", + "m1jbondj", "James Bond (Maygay) (M1A/B) (set 11)", + "m1jbondk", "James Bond (Maygay) (M1A/B) (set 12)", + "m1jbondl", "James Bond (Maygay) (M1A/B) (set 13)", + "m1jbondm", "James Bond (Maygay) (M1A/B) (set 14)", + "m1jbondn", "James Bond (Maygay) (M1A/B) (set 15)", + "m1jbondo", "James Bond (Maygay) (M1A/B) (set 16)", + "m1jbondp", "James Bond (Maygay) (M1A/B) (set 17)", + "m1jbondq", "James Bond (Maygay) (M1A/B) (set 18)", + "m1jdwins", "Jim Davison's Winning Streak (Maygay) (M1A/B) (set 1)", + "m1jdwinsa", "Jim Davison's Winning Streak (Maygay) (M1A/B) (set 2)", + "m1jdwinsb", "Jim Davison's Winning Streak (Maygay) (M1A/B) (set 3)", + "m1jdwinsc", "Jim Davison's Winning Streak (Maygay) (M1A/B) (set 4)", + "m1jdwinsd", "Jim Davison's Winning Streak (Maygay) (M1A/B) (set 5)", + "m1jdwinse", "Jim Davison's Winning Streak (Maygay) (M1A/B) (set 6)", + "m1jdwinsf", "Jim Davison's Winning Streak (Maygay) (M1A/B) (set 7)", + "m1jdwinsg", "Jim Davison's Winning Streak (Maygay) (M1A/B) (set 8)", + "m1jdwinsh", "Jim Davison's Winning Streak (Maygay) (M1A/B) (set 9)", + "m1jdwinsi", "Jim Davison's Winning Streak (Maygay) (M1A/B) (set 10)", + "m1jdwinsj", "Jim Davison's Winning Streak (Maygay) (M1A/B) (set 11)", + "m1jdwinsk", "Jim Davison's Winning Streak (Maygay) (M1A/B) (set 12)", + "m1jdwinsl", "Jim Davison's Winning Streak (Maygay) (M1A/B) (set 13)", + "m1jdwinsm", "Jim Davison's Winning Streak (Maygay) (M1A/B) (set 14)", + "m1jdwinsn", "Jim Davison's Winning Streak (Maygay) (M1A/B) (set 15)", + "m1jpmult", "Jackpot Multiplier (Maygay) (M1A/B) (set 1)", + "m1jpmulta", "Jackpot Multiplier (Maygay) (M1A/B) (set 2)", + "m1jtjob", "Just The Job (Global) (M1A/B) (set 1)", + "m1jtjoba", "Just The Job (Global) (M1A/B) (set 2)", + "m1jtjobb", "Just The Job (Global) (M1A/B) (set 3)", + "m1jtjobc", "Just The Job (Global) (M1A/B) (set 4)", + "m1jtjobd", "Just The Job (Global) (M1A/B) (set 5)", + "m1jtjobe", "Just The Job (Global) (M1A/B) (set 6)", + "m1kingsw", "King Of The Swingers (Global) (M1A/B) (set 1)", + "m1kingswa", "King Of The Swingers (Global) (M1A/B) (set 2)", + "m1kingswb", "King Of The Swingers (Global) (M1A/B) (set 3)", + "m1kingswc", "King Of The Swingers (Global) (M1A/B) (set 4)", + "m1lca", "Lights Camera Action (Global) (M1A/B) (set 1)", + "m1lcaa", "Lights Camera Action (Global) (M1A/B) (set 2)", + "m1lcab", "Lights Camera Action (Global) (M1A/B) (set 3)", + "m1lcac", "Lights Camera Action (Global) (M1A/B) (set 4)", + "m1liveam", "Living In America (Maygay) (M1A/B) (set 1)", + "m1liveama", "Living In America (Maygay) (M1A/B) (set 2)", + "m1liveamb", "Living In America (Maygay) (M1A/B) (set 3)", + "m1lotmil", "Lottery Millionaire Club (Maygay) (M1A/B) (set 1)", + "m1lotmila", "Lottery Millionaire Club (Maygay) (M1A/B) (set 2)", + "m1lotmilb", "Lottery Millionaire Club (Maygay) (M1A/B) (set 3)", + "m1lotmilc", "Lottery Millionaire Club (Maygay) (M1A/B) (set 4)", + "m1luckno", "Lucky Numbers (Maygay) (M1A/B) (set 1)", + "m1lucknoa", "Lucky Numbers (Maygay) (M1A/B) (set 2)", + "m1lucknob", "Lucky Numbers (Maygay) (M1A/B) (set 3)", + "m1lucknoc", "Lucky Numbers (Maygay) (M1A/B) (set 4)", + "m1lucknod", "Lucky Numbers (Maygay) (M1A/B) (set 5)", + "m1lucknoe", "Lucky Numbers (Maygay) (M1A/B) (set 6)", + "m1lucknof", "Lucky Numbers (Maygay) (M1A/B) (set 7)", + "m1lucknog", "Lucky Numbers (Maygay) (M1A/B) (set 8)", + "m1lucknoh", "Lucky Numbers (Maygay) (M1A/B) (set 9)", + "m1lucknoi", "Lucky Numbers (Maygay) (M1A/B) (set 10)", + "m1lucknoj", "Lucky Numbers (Maygay) (M1A/B) (set 11)", + "m1lucknok", "Lucky Numbers (Maygay) (M1A/B) (set 12)", + "m1lucknol", "Lucky Numbers (Maygay) (M1A/B) (set 13)", + "m1lucknom", "Lucky Numbers (Maygay) (M1A/B) (set 14)", + "m1lucknon", "Lucky Numbers (Maygay) (M1A/B) (set 15)", + "m1lucknoo", "Lucky Numbers (Maygay) (M1A/B) (set 16)", + "m1lucknop", "Lucky Numbers (Maygay) (M1A/B) (set 17)", + "m1lucknoq", "Lucky Numbers (Maygay) (M1A/B) (set 18)", + "m1lucknor", "Lucky Numbers (Maygay) (M1A/B) (set 19)", + "m1lucknos", "Lucky Numbers (Maygay) (M1A/B) (set 20)", + "m1luxor", "Luxor Casino (Gemini) (M1A/B) (set 1)", + "m1luxora", "Luxor Casino (Gemini) (M1A/B) (set 2)", + "m1luxorb", "Luxor Casino (Gemini) (M1A/B) (set 3)", + "m1luxorc", "Luxor Casino (Gemini) (M1A/B) (set 4)", + "m1magic", "Magic Squares (Maygay) (M1A/B) (set 1)", + "m1magica", "Magic Squares (Maygay) (M1A/B) (set 2)", + "m1magicb", "Magic Squares (Maygay) (M1A/B) (set 3)", + "m1magicc", "Magic Squares (Maygay) (M1A/B) (set 4)", + "m1manhat", "Manhattan Skylines (Maygay) (M1A/B)", + "m1mb", "Monkey Business (Global) (M1A/B) (set 1)", + "m1mba", "Monkey Business (Global) (M1A/B) (set 2)", + "m1mbb", "Monkey Business (Global) (M1A/B) (set 3)", + "m1mbc", "Monkey Business (Global) (M1A/B) (set 4)", + "m1mbclb", "Monkey Business Club (Global) (M1A/B)", + "m1monclb", "Monopoly Club (Maygay) (M1A/B) (set 1)", + "m1monclba", "Monopoly Club (Maygay) (M1A/B) (set 2)", + "m1monclbb", "Monopoly Club (Maygay) (M1A/B) (set 3)", + "m1monclbc", "Monopoly Club (Maygay) (M1A/B) (set 4)", + "m1monclbd", "Monopoly Club (Maygay) (M1A/B) (set 5)", + "m1monclbe", "Monopoly Club (Maygay) (M1A/B) (set 6)", + "m1monclbf", "Monopoly Club (Maygay) (M1A/B) (set 7)", + "m1monclbg", "Monopoly Club (Maygay) (M1A/B) (set 8)", + "m1monclbh", "Monopoly Club (Maygay) (M1A/B) (set 9)", + "m1monclbi", "Monopoly Club (Maygay) (M1A/B) (set 10)", + "m1monclbj", "Monopoly Club (Maygay) (M1A/B) (set 11)", + "m1monclbk", "Monopoly Club (Maygay) (M1A/B) (set 12)", + "m1monclbl", "Monopoly Club (Maygay) (M1A/B) (set 13)", + "m1monclbm", "Monopoly Club (Maygay) (M1A/B) (set 14)", + "m1moncls", "Monopoly Classic (Maygay) (M1A/B) (set 1)", + "m1monclsa", "Monopoly Classic (Maygay) (M1A/B) (set 2)", + "m1monclsb", "Monopoly Classic (Maygay) (M1A/B) (set 3)", + "m1monclsc", "Monopoly Classic (Maygay) (M1A/B) (set 4)", + "m1monclsd", "Monopoly Classic (Maygay) (M1A/B) (set 5)", + "m1mongam", "Money Game Club (Maygay) (M1A/B) (set 1)", + "m1mongama", "Money Game Club (Maygay) (M1A/B) (set 2)", + "m1mongamb", "Money Game Club (Maygay) (M1A/B) (set 3)", + "m1monmon", "Money Money Money (Maygay) (M1A/B) (set 1)", + "m1monmona", "Money Money Money (Maygay) (M1A/B) (set 2)", + "m1monmonb", "Money Money Money (Maygay) (M1A/B) (set 3)", + "m1monmonc", "Money Money Money (Maygay) (M1A/B) (set 4)", + "m1monmond", "Money Money Money (Maygay) (M1A/B) (set 5)", + "m1monmone", "Money Money Money (Maygay) (M1A/B) (set 6)", + "m1monmonf", "Money Money Money (Maygay) (M1A/B) (set 7)", + "m1monmong", "Money Money Money (Maygay) (M1A/B) (set 8)", + "m1monmonh", "Money Money Money (Maygay) (M1A/B) (set 9)", + "m1monmoni", "Money Money Money (Maygay) (M1A/B) (set 10)", + "m1monmonj", "Money Money Money (Maygay) (M1A/B) (set 11)", + "m1monmonk", "Money Money Money (Maygay) (M1A/B) (set 12)", + "m1monmonl", "Money Money Money (Maygay) (M1A/B) (set 13)", + "m1monmonm", "Money Money Money (Maygay) (M1A/B) (set 14)", + "m1monmonn", "Money Money Money (Maygay) (M1A/B) (set 15)", + "m1monmono", "Money Money Money (Maygay) (M1A/B) (set 16)", + "m1monmonp", "Money Money Money (Maygay) (M1A/B) (set 17)", + "m1monmonq", "Money Money Money (Maygay) (M1A/B) (set 18)", + "m1monmonr", "Money Money Money (Maygay) (M1A/B) (set 19)", + "m1monmons", "Money Money Money (Maygay) (M1A/B) (set 20)", + "m1monmont", "Money Money Money (Maygay) (M1A/B) (set 21)", + "m1monmonu", "Money Money Money (Maygay) (M1A/B) (set 22)", + "m1monmonv", "Money Money Money (Maygay) (M1A/B) (set 23)", + "m1monmonw", "Money Money Money (Maygay) (M1A/B) (set 24)", + "m1mono", "Monopoly (Maygay) (M1A/B) (set 1)", + "m1mono0", "Monopoly (Maygay) (M1A/B) (set 28)", + "m1mono1", "Monopoly (Maygay) (M1A/B) (set 29)", + "m1mono2", "Monopoly (Maygay) (M1A/B) (set 30)", + "m1mono3", "Monopoly (Maygay) (M1A/B) (set 31)", + "m1mono4", "Monopoly (Maygay) (M1A/B) (set 32)", + "m1mono5", "Monopoly (Maygay) (M1A/B) (set 33)", + "m1mono6", "Monopoly (Maygay) (M1A/B) (set 34)", + "m1mono7", "Monopoly (Maygay) (M1A/B) (set 35)", + "m1mono8", "Monopoly (Maygay) (M1A/B) (set 36)", + "m1mono9", "Monopoly (Maygay) (M1A/B) (set 37)", + "m1monoa", "Monopoly (Maygay) (M1A/B) (set 2)", + "m1monoaa", "Monopoly (Maygay) (M1A/B) (set 38)", + "m1monoc", "Monopoly (Maygay) (M1A/B) (set 4)", + "m1monod", "Monopoly (Maygay) (M1A/B) (set 5)", + "m1monodt", "Monopoly (Dutch) (Maygay) (M1A/B)", + "m1monoe", "Monopoly (Maygay) (M1A/B) (set 6)", + "m1monof", "Monopoly (Maygay) (M1A/B) (set 7)", + "m1monog", "Monopoly (Maygay) (M1A/B) (set 8)", + "m1monoh", "Monopoly (Maygay) (M1A/B) (set 9)", + "m1monoi", "Monopoly (Maygay) (M1A/B) (set 10)", + "m1monok", "Monopoly (Maygay) (M1A/B) (set 12)", + "m1monol", "Monopoly (Maygay) (M1A/B) (set 13)", + "m1monom", "Monopoly (Maygay) (M1A/B) (set 14)", + "m1monon", "Monopoly (Maygay) (M1A/B) (set 15)", + "m1monoo", "Monopoly (Maygay) (M1A/B) (set 16)", + "m1monop", "Monopoly (Maygay) (M1A/B) (set 17)", + "m1monoq", "Monopoly (Maygay) (M1A/B) (set 18)", + "m1monor", "Monopoly (Maygay) (M1A/B) (set 19)", + "m1monos", "Monopoly (Maygay) (M1A/B) (set 20)", + "m1monot", "Monopoly (Maygay) (M1A/B) (set 21)", + "m1monou", "Monopoly (Maygay) (M1A/B) (set 22)", + "m1monov", "Monopoly (Maygay) (M1A/B) (set 23)", + "m1monow", "Monopoly (Maygay) (M1A/B) (set 24)", + "m1monox", "Monopoly (Maygay) (M1A/B) (set 25)", + "m1monoy", "Monopoly (Maygay) (M1A/B) (set 26)", + "m1monoz", "Monopoly (Maygay) (M1A/B) (set 27)", + "m1monstr", "Monster Cash (Maygay) (M1A/B) (set 1)", + "m1monstra", "Monster Cash (Maygay) (M1A/B) (set 2)", + "m1monstrb", "Monster Cash (Maygay) (M1A/B) (set 3)", + "m1monstrc", "Monster Cash (Maygay) (M1A/B) (set 4)", + "m1nhp", "Noel's House Party (Maygay) (M1A/B) (set 1)", + "m1nhpa", "Noel's House Party (Maygay) (M1A/B) (set 2)", + "m1nhpb", "Noel's House Party (Maygay) (M1A/B) (set 3)", + "m1nhpc", "Noel's House Party (Maygay) (M1A/B) (set 4)", + "m1nhpd", "Noel's House Party (Maygay) (M1A/B) (set 5)", + "m1nhpe", "Noel's House Party (Maygay) (M1A/B) (set 6)", + "m1nhpf", "Noel's House Party (Maygay) (M1A/B) (set 7)", + "m1nhpg", "Noel's House Party (Maygay) (M1A/B) (set 8)", + "m1nhph", "Noel's House Party (Maygay) (M1A/B) (set 9)", + "m1nhpi", "Noel's House Party (Maygay) (M1A/B) (set 10)", + "m1nhpj", "Noel's House Party (Maygay) (M1A/B) (set 11)", + "m1nhpk", "Noel's House Party (Maygay) (M1A/B) (set 12)", + "m1nhpl", "Noel's House Party (Maygay) (M1A/B) (set 13)", + "m1nhpm", "Noel's House Party (Maygay) (M1A/B) (set 14)", + "m1nudbnk", "Nudge Banker (Maygay) (M1A/B) (set 1)", + "m1nudbnka", "Nudge Banker (Maygay) (M1A/B) (set 2)", + "m1nudbnkb", "Nudge Banker (Maygay) (M1A/B) (set 3)", + "m1nudbnkc", "Nudge Banker (Maygay) (M1A/B) (set 4)", + "m1nudbnkd", "Nudge Banker (Maygay) (M1A/B) (set 5)", + "m1nudbnke", "Nudge Banker (Maygay) (M1A/B) (set 6)", + "m1nudbnkf", "Nudge Banker (Maygay) (M1A/B) (set 7)", + "m1nudbnkg", "Nudge Banker (Maygay) (M1A/B) (set 8)", + "m1nudbnkh", "Nudge Banker (Maygay) (M1A/B) (set 9)", + "m1nudbnki", "Nudge Banker (Maygay) (M1A/B) (set 10)", + "m1nudbnkj", "Nudge Banker (Maygay) (M1A/B) (set 11)", + "m1nudbnkk", "Nudge Banker (Maygay) (M1A/B) (set 12)", + "m1nudbnkl", "Nudge Banker (Maygay) (M1A/B) (set 13)", + "m1nudbnkm", "Nudge Banker (Maygay) (M1A/B) (set 14)", + "m1nudbnkn", "Nudge Banker (Maygay) (M1A/B) (set 15)", + "m1nudbnko", "Nudge Banker (Maygay) (M1A/B) (set 16)", + "m1nudbnkp", "Nudge Banker (Maygay) (M1A/B) (set 17)", + "m1nudbnkq", "Nudge Banker (Maygay) (M1A/B) (set 18)", + "m1nudbnkr", "Nudge Banker (Maygay) (M1A/B) (set 19)", + "m1nudbnks", "Nudge Banker (Maygay) (M1A/B) (set 20)", + "m1nudbnkt", "Nudge Banker (Maygay) (M1A/B) (set 21)", + "m1nudbnku", "Nudge Banker (Maygay) (M1A/B) (set 22)", + "m1nudbnkv", "Nudge Banker (Maygay) (M1A/B) (set 23)", + "m1nudunl", "Nudges Unlimited (Maygay) (M1A/B) (set 1)", + "m1nudunla", "Nudges Unlimited (Maygay) (M1A/B) (set 2)", + "m1nudunlb", "Nudges Unlimited (Maygay) (M1A/B) (set 3)", + "m1nudunlc", "Nudges Unlimited (Maygay) (M1A/B) (set 4)", + "m1nudunld", "Nudges Unlimited (Maygay) (M1A/B) (set 5)", + "m1nudunle", "Nudges Unlimited (Maygay) (M1A/B) (set 6)", + "m1omega", "Omega (Maygay) (M1A/B) (set 1)", + "m1omegaa", "Omega (Maygay) (M1A/B) (set 2)", + "m1onbus", "On The Buses (Maygay) (M1A/B) (set 1)", + "m1onbusa", "On The Buses (Maygay) (M1A/B) (set 2)", + "m1onbusb", "On The Buses (Maygay) (M1A/B) (set 3)", + "m1onbusc", "On The Buses (Maygay) (M1A/B) (set 4)", + "m1onbusd", "On The Buses (Maygay) (M1A/B) (set 5)", + "m1onbuse", "On The Buses (Maygay) (M1A/B) (set 6)", + "m1onbusf", "On The Buses (Maygay) (M1A/B) (set 7)", + "m1onbusg", "On The Buses (Maygay) (M1A/B) (set 8)", + "m1onbush", "On The Buses (Maygay) (M1A/B) (set 9)", + "m1onbusi", "On The Buses (Maygay) (M1A/B) (set 10)", + "m1onbusj", "On The Buses (Maygay) (M1A/B) (set 11)", + "m1onbusk", "On The Buses (Maygay) (M1A/B) (set 12)", + "m1onbusl", "On The Buses (Maygay) (M1A/B) (set 13)", + "m1onbusm", "On The Buses (Maygay) (M1A/B) (set 14)", + "m1onbusn", "On The Buses (Maygay) (M1A/B) (set 15)", + "m1onbuso", "On The Buses (Maygay) (M1A/B) (set 16)", + "m1onbusp", "On The Buses (Maygay) (M1A/B) (set 17)", + "m1ott", "Over The Top (Maygay) (M1A/B) (set 1)", + "m1otta", "Over The Top (Maygay) (M1A/B) (set 2)", + "m1piggy", "Piggy Bank (Maygay) (M1A/B) (set 1)", + "m1piggya", "Piggy Bank (Maygay) (M1A/B) (set 2)", + "m1piggyb", "Piggy Bank (Maygay) (M1A/B) (set 3)", + "m1piggyc", "Piggy Bank (Maygay) (M1A/B) (set 4)", + "m1pinkp", "Pink Panther (Maygay) (M1A/B) (set 1)", + "m1pinkpa", "Pink Panther (Maygay) (M1A/B) (set 2)", + "m1pinkpb", "Pink Panther (Maygay) (M1A/B) (set 3)", + "m1pinkpc", "Pink Panther (Maygay) (M1A/B) (set 4)", + "m1pinkpd", "Pink Panther (Maygay) (M1A/B) (set 5)", + "m1pinkpe", "Pink Panther (Maygay) (M1A/B) (set 6)", + "m1pinkpf", "Pink Panther (Maygay) (M1A/B) (set 7)", + "m1pinkpg", "Pink Panther (Maygay) (M1A/B) (set 8)", + "m1pinkph", "Pink Panther (Maygay) (M1A/B) (set 9)", + "m1pinkpi", "Pink Panther (Maygay) (M1A/B) (set 10)", + "m1pinkpj", "Pink Panther (Maygay) (M1A/B) (set 11)", + "m1pinkpk", "Pink Panther (Maygay) (M1A/B) (set 12)", + "m1pinkpl", "Pink Panther (Maygay) (M1A/B) (set 13)", + "m1pinkpm", "Pink Panther (Maygay) (M1A/B) (set 14)", + "m1pinkpn", "Pink Panther (Maygay) (M1A/B) (set 15)", + "m1pinkpo", "Pink Panther (Maygay) (M1A/B) (set 16)", + "m1pinkpp", "Pink Panther (Maygay) (M1A/B) (set 17)", + "m1pinkpq", "Pink Panther (Maygay) (M1A/B) (set 18)", + "m1pinkpr", "Pink Panther (Maygay) (M1A/B) (set 19)", + "m1ppc", "Pink Panther Club (Maygay) (M1A/B) (set 1)", + "m1ppca", "Pink Panther Club (Maygay) (M1A/B) (set 2)", + "m1ppcb", "Pink Panther Club (Maygay) (M1A/B) (set 3)", + "m1ppdt", "Pink Panther (German) (Maygay) (M1A/B)", + "m1przclu", "Prize Cluedo (Maygay) (M1A/B) (set 1)", + "m1przclua", "Prize Cluedo (Maygay) (M1A/B) (set 2)", + "m1przclub", "Prize Cluedo (Maygay) (M1A/B) (set 3)", + "m1przee", "Prize Eastenders (Maygay) (M1A/B) (set 1)", + "m1przeea", "Prize Eastenders (Maygay) (M1A/B) (set 2)", + "m1przeeb", "Prize Eastenders (Maygay) (M1A/B) (set 3)", + "m1przeec", "Prize Eastenders (Maygay) (M1A/B) (set 4)", + "m1races", "A Day At The Races (Maygay) (M1A/B) (set 1)", + "m1racesa", "A Day At The Races (Maygay) (M1A/B) (set 2)", + "m1racesb", "A Day At The Races (Maygay) (M1A/B) (set 3)", + "m1racesc", "A Day At The Races (Maygay) (M1A/B) (set 4)", + "m1reeldm", "Reel Diamonds (Maygay) (M1A/B) (set 1)", + "m1reeldma", "Reel Diamonds (Maygay) (M1A/B) (set 2)", + "m1reeldmb", "Reel Diamonds (Maygay) (M1A/B) (set 3)", + "m1reeldmc", "Reel Diamonds (Maygay) (M1A/B) (set 4)", + "m1reeldmd", "Reel Diamonds (Maygay) (M1A/B) (set 5)", + "m1reeldme", "Reel Diamonds (Maygay) (M1A/B) (set 6)", + "m1reeldmf", "Reel Diamonds (Maygay) (M1A/B) (set 7)", + "m1reeldmg", "Reel Diamonds (Maygay) (M1A/B) (set 8)", + "m1reeldmh", "Reel Diamonds (Maygay) (M1A/B) (set 9)", + "m1reeldmi", "Reel Diamonds (Maygay) (M1A/B) (set 10)", + "m1reeldmj", "Reel Diamonds (Maygay) (M1A/B) (set 11)", + "m1reeldmk", "Reel Diamonds (Maygay) (M1A/B) (set 12)", + "m1reeldml", "Reel Diamonds (Maygay) (M1A/B) (set 13)", + "m1reeldmm", "Reel Diamonds (Maygay) (M1A/B) (set 14)", + "m1reeldmn", "Reel Diamonds (Maygay) (M1A/B) (set 15)", + "m1reeldmo", "Reel Diamonds (Maygay) (M1A/B) (set 16)", + "m1retpp", "Return Of The Pink Panther (Maygay) (M1A/B) (set 1)", + "m1retppa", "Return Of The Pink Panther (Maygay) (M1A/B) (set 2)", + "m1retppb", "Return Of The Pink Panther (Maygay) (M1A/B) (set 3)", + "m1retppc", "Return Of The Pink Panther (Maygay) (M1A/B) (set 4)", + "m1retppd", "Return Of The Pink Panther (Maygay) (M1A/B) (set 5)", + "m1search", "Search Light (Maygay) (M1A/B) (set 1)", + "m1searcha", "Search Light (Maygay) (M1A/B) (set 2)", + "m1searchb", "Search Light (Maygay) (M1A/B) (set 3)", + "m1simps", "The Simpsons (Maygay) (M1A/B) (set 1)", + "m1simpsa", "The Simpsons (Maygay) (M1A/B) (set 2)", + "m1simpsb", "The Simpsons (Maygay) (M1A/B) (set 3)", + "m1simpsc", "The Simpsons (Maygay) (M1A/B) (set 4)", + "m1simpsd", "The Simpsons (Maygay) (M1A/B) (set 5)", + "m1simpse", "The Simpsons (Maygay) (M1A/B) (set 6)", + "m1simpsf", "The Simpsons (Maygay) (M1A/B) (set 7)", + "m1simpsg", "The Simpsons (Maygay) (M1A/B) (set 8)", + "m1sirich", "Strike It Rich (Maygay) (M1A/B) (set 1)", + "m1siricha", "Strike It Rich (Maygay) (M1A/B) (set 2)", + "m1sirichb", "Strike It Rich (Maygay) (M1A/B) (set 3)", + "m1sirichc", "Strike It Rich (Maygay) (M1A/B) (set 4)", + "m1sixspn", "Six Spinner (Maygay) (M1A/B)", + "m1spid", "Spiderman (Maygay) (M1A/B) (set 1)", + "m1spida", "Spiderman (Maygay) (M1A/B) (set 2)", + "m1spidb", "Spiderman (Maygay) (M1A/B) (set 3)", + "m1sprnov", "Super Nova (Dutch) (Maygay) (M1A/B)", + "m1sptlgt", "Spotlight (Maygay) (M1A/B) (set 1)", + "m1sptlgta", "Spotlight (Maygay) (M1A/B) (set 2)", + "m1sptlgtb", "Spotlight (Maygay) (M1A/B) (set 3)", + "m1sptlgtc", "Spotlight (Maygay) (M1A/B) (set 4)", + "m1sptlgtd", "Spotlight (Maygay) (M1A/B) (set 5)", + "m1sptlgte", "Spotlight (Maygay) (M1A/B) (set 6)", + "m1startr", "Star Trekking (Mdm) (M1A/B) (set 1)", + "m1startra", "Star Trekking (Mdm) (M1A/B) (set 2)", + "m1startrb", "Star Trekking (Mdm) (M1A/B) (set 3)", + "m1startrc", "Star Trekking (Mdm) (M1A/B) (set 4)", + "m1startrd", "Star Trekking (Mdm) (M1A/B) (set 5)", + "m1startre", "Star Trekking (Mdm) (M1A/B) (set 6)", + "m1startrf", "Star Trekking (Mdm) (M1A/B) (set 7)", + "m1startrg", "Star Trekking (Mdm) (M1A/B) (set 8)", + "m1startrh", "Star Trekking (Mdm) (M1A/B) (set 9)", + "m1startri", "Star Trekking (Mdm) (M1A/B) (set 10)", + "m1startrj", "Star Trekking (Mdm) (M1A/B) (set 11)", + "m1startrk", "Star Trekking (Mdm) (M1A/B) (set 12)", + "m1startrm", "Star Trekking (Mdm) (M1A/B) (set 14)", + "m1startrn", "Star Trekking (Mdm) (M1A/B) (set 15)", + "m1startro", "Star Trekking (Mdm) (M1A/B) (set 16)", + "m1startrp", "Star Trekking (Mdm) (M1A/B) (set 17)", + "m1startrq", "Star Trekking (Mdm) (M1A/B) (set 18)", + "m1startrr", "Star Trekking (Mdm) (M1A/B) (set 19)", + "m1sudnim", "Sudden Impact (Maygay) (M1A/B) (set 1)", + "m1sudnima", "Sudden Impact (Maygay) (M1A/B) (set 2)", + "m1sudnimb", "Sudden Impact (Maygay) (M1A/B) (set 3)", + "m1sudnimc", "Sudden Impact (Maygay) (M1A/B) (set 4)", + "m1suppot", "Super Pots (Maygay) (M1A/B) (set 1)", + "m1suppot0", "Super Pots (Maygay) (M1A/B) (set 28)", + "m1suppota", "Super Pots (Maygay) (M1A/B) (set 2)", + "m1suppotb", "Super Pots (Maygay) (M1A/B) (set 3)", + "m1suppotc", "Super Pots (Maygay) (M1A/B) (set 4)", + "m1suppotd", "Super Pots (Maygay) (M1A/B) (set 5)", + "m1suppote", "Super Pots (Maygay) (M1A/B) (set 6)", + "m1suppotf", "Super Pots (Maygay) (M1A/B) (set 7)", + "m1suppotg", "Super Pots (Maygay) (M1A/B) (set 8)", + "m1suppoti", "Super Pots (Maygay) (M1A/B) (set 10)", + "m1suppotj", "Super Pots (Maygay) (M1A/B) (set 11)", + "m1suppotk", "Super Pots (Maygay) (M1A/B) (set 12)", + "m1suppotl", "Super Pots (Maygay) (M1A/B) (set 13)", + "m1suppotm", "Super Pots (Maygay) (M1A/B) (set 14)", + "m1suppotn", "Super Pots (Maygay) (M1A/B) (set 15)", + "m1suppoto", "Super Pots (Maygay) (M1A/B) (set 16)", + "m1suppotp", "Super Pots (Maygay) (M1A/B) (set 17)", + "m1suppotq", "Super Pots (Maygay) (M1A/B) (set 18)", + "m1suppotr", "Super Pots (Maygay) (M1A/B) (set 19)", + "m1suppots", "Super Pots (Maygay) (M1A/B) (set 20)", + "m1suppott", "Super Pots (Maygay) (M1A/B) (set 21)", + "m1suppotu", "Super Pots (Maygay) (M1A/B) (set 22)", + "m1suppotv", "Super Pots (Maygay) (M1A/B) (set 23)", + "m1suppotw", "Super Pots (Maygay) (M1A/B) (set 24)", + "m1suppotx", "Super Pots (Maygay) (M1A/B) (set 25)", + "m1suppoty", "Super Pots (Maygay) (M1A/B) (set 26)", + "m1suppotz", "Super Pots (Maygay) (M1A/B) (set 27)", + "m1sycc", "Stake Yer Claim Club (Global) (M1A/B) (set 1)", + "m1sycca", "Stake Yer Claim Club (Global) (M1A/B) (set 2)", + "m1syccb", "Stake Yer Claim Club (Global) (M1A/B) (set 3)", + "m1taknot", "Take Note (Maygay) (M1A/B)", + "m1thatlf", "That's Life (Maygay) (M1A/B) (set 1)", + "m1thatlfa", "That's Life (Maygay) (M1A/B) (set 2)", + "m1thatlfb", "That's Life (Maygay) (M1A/B) (set 3)", + "m1thatlfc", "That's Life (Maygay) (M1A/B) (set 4)", + "m1thatlfd", "That's Life (Maygay) (M1A/B) (set 5)", + "m1thrill", "Thrills 'n' Spills (Global) (M1A/B) (set 1)", + "m1thrilla", "Thrills 'n' Spills (Global) (M1A/B) (set 2)", + "m1thrillb", "Thrills 'n' Spills (Global) (M1A/B) (set 3)", + "m1thrillc", "Thrills 'n' Spills (Global) (M1A/B) (set 4)", + "m1topstr", "Top Strike (Maygay - Bwb) (M1A/B)", + "m1topten", "Top Tenner (Maygay) (M1A/B) (set 1)", + "m1toptena", "Top Tenner (Maygay) (M1A/B) (set 2)", + "m1tpclb", "Trivial Pursuit Club (Maygay) (M1A/B) (set 1)", + "m1tpclba", "Trivial Pursuit Club (Maygay) (M1A/B) (set 2)", + "m1tpclbb", "Trivial Pursuit Club (Maygay) (M1A/B) (set 3)", + "m1tpclbc", "Trivial Pursuit Club (Maygay) (M1A/B) (set 4)", + "m1trivia", "Trivial Pursuit (Maygay) (M1A/B) (set 1)", + "m1triviaa", "Trivial Pursuit (Maygay) (M1A/B) (set 2)", + "m1triviab", "Trivial Pursuit (Maygay) (M1A/B) (set 3)", + "m1triviac", "Trivial Pursuit (Maygay) (M1A/B) (set 4)", + "m1triviad", "Trivial Pursuit (Maygay) (M1A/B) (set 5)", + "m1triviae", "Trivial Pursuit (Maygay) (M1A/B) (set 6)", + "m1triviaf", "Trivial Pursuit (Maygay) (M1A/B) (set 7)", + "m1triviag", "Trivial Pursuit (Maygay) (M1A/B) (set 8)", + "m1triviah", "Trivial Pursuit (Maygay) (M1A/B) (set 9)", + "m1triviai", "Trivial Pursuit (Maygay) (M1A/B) (set 10)", + "m1triviaj", "Trivial Pursuit (Maygay) (M1A/B) (set 11)", + "m1triviak", "Trivial Pursuit (Maygay) (M1A/B) (set 12)", + "m1trivial", "Trivial Pursuit (Maygay) (M1A/B) (set 13)", + "m1trivian", "Trivial Pursuit (Maygay) (M1A/B) (set 15)", + "m1triviap", "Trivial Pursuit (Maygay) (M1A/B) (set 17)", + "m1triviaq", "Trivial Pursuit (Maygay) (M1A/B) (set 18)", + "m1triviar", "Trivial Pursuit (Maygay) (M1A/B) (set 19)", + "m1trivias", "Trivial Pursuit (Maygay) (M1A/B) (set 20)", + "m1triviat", "Trivial Pursuit (Maygay) (M1A/B) (set 21)", + "m1triviau", "Trivial Pursuit (Maygay) (M1A/B) (set 22)", + "m1triviav", "Trivial Pursuit (Maygay) (M1A/B) (set 23)", + "m1triviaw", "Trivial Pursuit (Maygay) (M1A/B) (set 24)", + "m1triviax", "Trivial Pursuit (Maygay) (M1A/B) (set 25)", + "m1triviay", "Trivial Pursuit (Maygay) (M1A/B) (set 26)", + "m1triviaz", "Trivial Pursuit (Maygay) (M1A/B) (set 27)", + "m1trtr", "Trick Or Treat (Global) (M1A/B) (set 1)", + "m1trtra", "Trick Or Treat (Global) (M1A/B) (set 2)", + "m1trtrcl", "Trick Or Treat Club (Global) (M1A/B)", + "m1tstunt", "Test Unit (Maygay) (M1A/B)", + "m1ttcash", "Tick Tock Cash (Empire) (M1A/B)", + "m1ultchl", "Ultimate Challenge (Maygay) (M1A/B) (set 1)", + "m1ultchla", "Ultimate Challenge (Maygay) (M1A/B) (set 2)", + "m1ultchlb", "Ultimate Challenge (Maygay) (M1A/B) (set 3)", + "m1ultchlc", "Ultimate Challenge (Maygay) (M1A/B) (set 4)", + "m1undsie", "Under Siege (Maygay) (M1A/B) (set 1)", + "m1undsiea", "Under Siege (Maygay) (M1A/B) (set 2)", + "m1undsieb", "Under Siege (Maygay) (M1A/B) (set 3)", + "m1undsiec", "Under Siege (Maygay) (M1A/B) (set 4)", + "m1vegas", "Vegas Gambler Club (Maygay) (M1A/B) (set 1)", + "m1vegasa", "Vegas Gambler Club (Maygay) (M1A/B) (set 2)", + "m1vegasb", "Vegas Gambler Club (Maygay) (M1A/B) (set 3)", + "m1vegcrw", "Vegetable Crew (Global) (M1A/B)", + "m1wagon", "Wagon Trail (Maygay) (M1A/B) (set 1)", + "m1wagona", "Wagon Trail (Maygay) (M1A/B) (set 2)", + "m1wagonb", "Wagon Trail (Maygay) (M1A/B) (set 3)", + "m1wagonc", "Wagon Trail (Maygay) (M1A/B) (set 4)", + "m1winenc", "John Francombe's Winners Enclosure (Maygay) (M1A/B) (set 1)", + "m1winenca", "John Francombe's Winners Enclosure (Maygay) (M1A/B) (set 2)", + "m1winencb", "John Francombe's Winners Enclosure (Maygay) (M1A/B) (set 3)", + "m1winencc", "John Francombe's Winners Enclosure (Maygay) (M1A/B) (set 4)", + "m1wldzne", "Wild Zone (Maygay) (M1A/B) (set 1)", + "m1wldznea", "Wild Zone (Maygay) (M1A/B) (set 2)", + "m1wldzneb", "Wild Zone (Maygay) (M1A/B) (set 3)", + "m1wldznec", "Wild Zone (Maygay) (M1A/B) (set 4)", + "m1wldzned", "Wild Zone (Maygay) (M1A/B) (set 5)", + "m1wldznee", "Wild Zone (Maygay) (M1A/B) (set 6)", + "m1wldznef", "Wild Zone (Maygay) (M1A/B) (set 7)", + "m1wldzneg", "Wild Zone (Maygay) (M1A/B) (set 8)", + "m1wldzneh", "Wild Zone (Maygay) (M1A/B) (set 9)", + "m1wldznei", "Wild Zone (Maygay) (M1A/B) (set 10)", + "m1wldznej", "Wild Zone (Maygay) (M1A/B) (set 11)", + "m1wldznek", "Wild Zone (Maygay) (M1A/B) (set 12)", + "m1wldznel", "Wild Zone (Maygay) (M1A/B) (set 13)", + "m1wldznem", "Wild Zone (Maygay) (M1A/B) (set 14)", + "m1wldznen", "Wild Zone (Maygay) (M1A/B) (set 15)", + "m1wldzneo", "Wild Zone (Maygay) (M1A/B) (set 16)", + "m1wldznep", "Wild Zone (Maygay) (M1A/B) (set 17)", + "m1wldzneq", "Wild Zone (Maygay) (M1A/B) (set 18)", + "m1wldzner", "Wild Zone (Maygay) (M1A/B) (set 19)", + "m1wldznes", "Wild Zone (Maygay) (M1A/B) (set 20)", + "m1wotw", "War Of The Worlds (Maygay) (M1A/B) (set 1)", + "m1wotwa", "War Of The Worlds (Maygay) (M1A/B) (set 2)", + "m1wotwb", "War Of The Worlds (Maygay) (M1A/B) (set 3)", + "m21", "21 (Mirco)", + "m2hilite", "Hi-Lights (Barcrest) (MPU2)", + "m2svlite", "Silver Lights (Barcrest) (MPU2)", + "m3acech", "Ace Chase (Bwb) (MPU3)", + "m3autort", "Autoroute (Barcrest) (MPU3)", + "m3bankr", "Banker (Bwb) (MPU3)", + "m3big20j", "Big 20 Joker (Barcrest) (MPU3)", + "m3biggam", "The Big Game (Barcrest) (MPU3)", + "m3bigsht", "Big Shot (Barcrest) (MPU3)", + "m3blkhle", "Black Hole (Barcrest) (MPU3)", + "m3cabret", "Cabaret (Barcrest) (MPU3, set 1)", + "m3cabreta", "Cabaret (Barcrest) (MPU3, set 2)", + "m3cdash", "Cash Dash (Pcp) (MPU3)", + "m3chase", "Chase It (Bwb) (MPU3)", + "m3circle", "Special Circle Club (Barcrest) (MPU3, set 1)", + "m3circlea", "Special Circle Club (Barcrest) (MPU3, set 2)", + "m3circleb", "Special Circle Club (Barcrest) (MPU3, set 3)", + "m3cjoker", "Crazy Joker (Barcrest) (MPU3)", + "m3cskill", "Circle Skill (Barcrest) (MPU3)", + "m3cunlim", "Chances Unlimited (Barcrest) (MPU3)", + "m3fortun", "Fortune Numbers (Barcrest) (MPU3, set 1)", + "m3fortuna", "Fortune Numbers (Barcrest) (MPU3, set 2)", + "m3fortund", "Fortune Numbers (Barcrest) [Dutch] (MPU3)", + "m3gaward", "Golden Award (Barcrest) (MPU3)", + "m3gcrown", "Golden Crowns (Mdm) (MPU3)", + "m3gmine", "Gold Mine (Bwb) (MPU3)", + "m3hprvpr", "Hyper Viper (Barcrest) (MPU3)", + "m3lineup", "Line Up (Barcrest) (MPU3)", + "m3llotto", "Lucky Lotto (Barcrest) (MPU3)", + "m3loony", "Loonybin (Pcp) (MPU3)", + "m3lstrik", "Lucky Strike Club (Barcrest) (MPU3, set 1)", + "m3lstrika", "Lucky Strike Club (Barcrest) (MPU3, set 2)", + "m3magrp", "Magic Replay (Barcrest) (MPU3)", + "m3minmax", "Mini Max (Associated Leisure) (MPU3)", + "m3mremon", "More Money (VFS) (MPU3)", + "m3nnice", "Naughty But Nice (Barcrest) (MPU3)", + "m3nudge", "Nudges Unlimited (Barcrest) (MPU3)", + "m3oddson", "Odds On (Barcrest) (MPU3)", + "m3online", "On Line (Pcp) (MPU3)", + "m3optunl", "Options Unlimited (Barcrest) (MPU3)", + "m3oxo", "Noughts 'n' Crosses (VFS) (MPU3)", + "m3ratrce", "Rat Race (Bwb) (MPU3)", + "m3razdaz", "Razzle Dazzle (Barcrest) (MPU3, set 1)", + "m3razdaza", "Razzle Dazzle (Barcrest) (MPU3, set 2)", + "m3razdazd", "Razzle Dazzle (Barcrest) [Dutch] (MPU3)", + "m3replay", "Instant Replay (Barcrest) (MPU3)", + "m3rockpl", "Rock Pile (Pcp) (MPU3)", + "m3rollem", "Roll 'Em (Pcp) (MPU3)", + "m3rxchng", "Royal Exchange Club (Barcrest) (MPU3)", + "m3scoop", "Scoop (Peter Simper, prototype?) (MPU3)", + "m3sdeal", "Super Deal (Barcrest) (MPU3)", + "m3sexcu", "Super Exchanges Unlimited (Barcrest) (MPU3)", + "m3slight", "Strike A Light (Barcrest) (MPU3)", + "m3snaphp", "Snap Happy (Pcp) (MPU3)", + "m3snappy", "Snappy Viper (Barcrest) (MPU3)", + "m3spoof", "Spoof (Pcp) (MPU3, set 1)", + "m3spoofa", "Spoof (Pcp) (MPU3, set 2)", + "m3supadr", "Super Adders & Ladders (Barcrest) (MPU3)", + "m3supasw", "Supaswop (Bwb) (MPU3)", + "m3suplin", "Super Line Up (Barcrest) (MPU3, set 1)", + "m3suplina", "Super Line Up (Barcrest) (MPU3, set 2)", + "m3supnud", "Super Nudges Unlimited (Barcrest) (MPU3)", + "m3supser", "Super Series (Barcrest) (MPU3)", + "m3supspo", "Super Spoof (Pcp) (MPU3, set 1)", + "m3supspoa", "Super Spoof (Pcp) (MPU3, set 2)", + "m3supwin", "Super Win (Bwb) (MPU3, set 1)", + "m3supwina", "Super Win (Bwb) (MPU3, set 2)", + "m3sweep", "Sweep Stake Club (Barcrest) (MPU3, set 1)", + "m3sweepa", "Sweep Stake Club (Barcrest) (MPU3, set 2)", + "m3tfair", "Tuppenny Fair (Mdm) (MPU3)", + "m3tlktwn", "Talk of the Town (MPU3?)", + "m3toplin", "Top Line (Pcp) (MPU3)", + "m3topsht", "Top Shot (Barcrest) (MPU3)", + "m3tst", "MPU3 Unit Test (Program 5) (Barcrest) (MPU3)", + "m3wacky", "Wacky Racer (Mdm) (MPU3)", + "m3wigwam", "Wig Wam (Pcp) (MPU3)", + "m3winagn", "Win-A-Gain (Bwb) (MPU3, set 1)", + "m3winagna", "Win-A-Gain (Bwb) (MPU3, set 2)", + "m3winagnb", "Win-A-Gain (Bwb) (MPU3, set 3)", + "m3winstr", "Winstrike (Bwb) (MPU3)", + "m3winstra", "Winstrike (Barcrest) (MPU3)", + "m3xchngg", "Exchanges Galore (Barcrest) (MPU3)", + "m3xchngu", "Exchanges Unlimited (Barcrest) (MPU3, set 1)", + "m3xchngua", "Exchanges Unlimited (Barcrest) (MPU3, set 2)", + "m4", "M-4", + "m421", "Twenty One (Barcrest) (MPU4)", + "m421club", "21 Club (Barcrest) [DTW, Dutch] (MPU4)", + "m42punlm", "2p Unlimited (Mdm) (MPU4)", + "m4aao", "Against All Odds (Eurotek) (MPU4)", + "m4abeaut", "American Beauty (Avantime?) (MPU4) (AB, set 1)", + "m4abeaut_1", "American Beauty (Avantime?) (MPU4) (AB, set 2)", + "m4abeaut_2", "American Beauty (Avantime?) (MPU4) (AB, set 3)", + "m4abeaut_3", "American Beauty (Avantime?) (MPU4) (AB, set 4)", + "m4abeaut_4", "American Beauty (Avantime?) (MPU4) (AB, set 5)", + "m4abeaut_5", "American Beauty (Avantime?) (MPU4) (AB, set 6)", + "m4abeaut_6", "American Beauty (Avantime?) (MPU4) (AB, set 7)", + "m4abeaut_7", "American Beauty (Avantime?) (MPU4) (AB, set 8)", + "m4abeaut_8", "American Beauty (Avantime?) (MPU4) (AB, set 9)", + "m4abeaut_9", "American Beauty (Avantime?) (MPU4) (AB, set 10)", + "m4abeaut_c1", "American Beauty (Avantime?) (MPU4) (ABC1, Czech, set 1)", + "m4abeaut_c10", "American Beauty (Avantime?) (MPU4) (ABC1, Czech, set 10)", + "m4abeaut_c11", "American Beauty (Avantime?) (MPU4) (ABC1, Czech, set 11)", + "m4abeaut_c12", "American Beauty (Avantime?) (MPU4) (ABC1, Czech, set 12)", + "m4abeaut_c13", "American Beauty (Avantime?) (MPU4) (ABC1, Czech, set 13)", + "m4abeaut_c14", "American Beauty (Avantime?) (MPU4) (ABC1, Czech, set 14)", + "m4abeaut_c15", "American Beauty (Avantime?) (MPU4) (ABC1, Czech, set 15)", + "m4abeaut_c16", "American Beauty (Avantime?) (MPU4) (ABC2, Czech, set 1)", + "m4abeaut_c17", "American Beauty (Avantime?) (MPU4) (ABC2, Czech, set 2)", + "m4abeaut_c18", "American Beauty (Avantime?) (MPU4) (ABC2, Czech, set 3)", + "m4abeaut_c19", "American Beauty (Avantime?) (MPU4) (ABC2, Czech, set 4)", + "m4abeaut_c2", "American Beauty (Avantime?) (MPU4) (ABC1, Czech, set 2)", + "m4abeaut_c20", "American Beauty (Avantime?) (MPU4) (ABC2, Czech, set 5)", + "m4abeaut_c21", "American Beauty (Avantime?) (MPU4) (ABC2, Czech, set 6)", + "m4abeaut_c22", "American Beauty (Avantime?) (MPU4) (ABC2, Czech, set 7)", + "m4abeaut_c23", "American Beauty (Avantime?) (MPU4) (ABC2, Czech, set 8)", + "m4abeaut_c24", "American Beauty (Avantime?) (MPU4) (ABC2, Czech, set 9)", + "m4abeaut_c25", "American Beauty (Avantime?) (MPU4) (ABC2, Czech, set 10)", + "m4abeaut_c26", "American Beauty (Avantime?) (MPU4) (ABC2, Czech, set 11)", + "m4abeaut_c27", "American Beauty (Avantime?) (MPU4) (ABC2, Czech, set 12)", + "m4abeaut_c28", "American Beauty (Avantime?) (MPU4) (ABC2, Czech, set 13)", + "m4abeaut_c29", "American Beauty (Avantime?) (MPU4) (ABC2, Czech, set 14)", + "m4abeaut_c3", "American Beauty (Avantime?) (MPU4) (ABC1, Czech, set 3)", + "m4abeaut_c30", "American Beauty (Avantime?) (MPU4) (M2C1, Czech, set 1)", + "m4abeaut_c31", "American Beauty (Avantime?) (MPU4) (M2C1, Czech, set 2)", + "m4abeaut_c4", "American Beauty (Avantime?) (MPU4) (ABC1, Czech, set 4)", + "m4abeaut_c5", "American Beauty (Avantime?) (MPU4) (ABC1, Czech, set 5)", + "m4abeaut_c6", "American Beauty (Avantime?) (MPU4) (ABC1, Czech, set 6)", + "m4abeaut_c7", "American Beauty (Avantime?) (MPU4) (ABC1, Czech, set 7)", + "m4abeaut_c8", "American Beauty (Avantime?) (MPU4) (ABC1, Czech, set 8)", + "m4abeaut_c9", "American Beauty (Avantime?) (MPU4) (ABC1, Czech, set 9)", + "m4abeaut_i1", "American Beauty (Avantime?) (MPU4) (A2I0, Israel, set 1)", + "m4abeaut_i2", "American Beauty (Avantime?) (MPU4) (A2I0, Israel, set 2)", + "m4abeaut_k1", "American Beauty (Avantime?) (MPU4) (A2K0, set 1)", + "m4abeaut_k2", "American Beauty (Avantime?) (MPU4) (A2K0, set 2)", + "m4abeaut_l1", "American Beauty (Avantime?) (MPU4) (ABL0, Latvia, set 1)", + "m4abeaut_l10", "American Beauty (Avantime?) (MPU4) (ABL0, Latvia, set 10)", + "m4abeaut_l11", "American Beauty (Avantime?) (MPU4) (ABL0, Latvia, set 11)", + "m4abeaut_l12", "American Beauty (Avantime?) (MPU4) (ABL0, Latvia, set 12)", + "m4abeaut_l13", "American Beauty (Avantime?) (MPU4) (A2L0, Latvia, set 1)", + "m4abeaut_l14", "American Beauty (Avantime?) (MPU4) (A2L0, Latvia, set 2)", + "m4abeaut_l15", "American Beauty (Avantime?) (MPU4) (A2L0, Latvia, set 3)", + "m4abeaut_l16", "American Beauty (Avantime?) (MPU4) (A2L0, Latvia, set 4)", + "m4abeaut_l17", "American Beauty (Avantime?) (MPU4) (A2L0, Latvia, set 5)", + "m4abeaut_l18", "American Beauty (Avantime?) (MPU4) (A2L0, Latvia, set 6)", + "m4abeaut_l19", "American Beauty (Avantime?) (MPU4) (A2L0, Latvia, set 7)", + "m4abeaut_l2", "American Beauty (Avantime?) (MPU4) (ABL0, Latvia, set 2)", + "m4abeaut_l20", "American Beauty (Avantime?) (MPU4) (A2L0, Latvia, set 8)", + "m4abeaut_l21", "American Beauty (Avantime?) (MPU4) (A2L0, Latvia, set 9)", + "m4abeaut_l22", "American Beauty (Avantime?) (MPU4) (A2L0, Latvia, set 10)", + "m4abeaut_l23", "American Beauty (Avantime?) (MPU4) (A2L0, Latvia, set 11)", + "m4abeaut_l24", "American Beauty (Avantime?) (MPU4) (A2L0, Latvia, set 12)", + "m4abeaut_l25", "American Beauty (Avantime?) (MPU4) (A2L0, Latvia, set 13)", + "m4abeaut_l26", "American Beauty (Avantime?) (MPU4) (A2L0, Latvia, set 14)", + "m4abeaut_l27", "American Beauty (Avantime?) (MPU4) (A2L0, Latvia, set 15)", + "m4abeaut_l28", "American Beauty (Avantime?) (MPU4) (A2L0, Latvia, set 16)", + "m4abeaut_l29", "American Beauty (Avantime?) (MPU4) (A2L0, Latvia, set 17)", + "m4abeaut_l3", "American Beauty (Avantime?) (MPU4) (ABL0, Latvia, set 3)", + "m4abeaut_l30", "American Beauty (Avantime?) (MPU4) (A2L0, Latvia, set 18)", + "m4abeaut_l31", "American Beauty (Avantime?) (MPU4) (A2L0, Latvia, set 19)", + "m4abeaut_l32", "American Beauty (Avantime?) (MPU4) (A2L0, Latvia, set 20)", + "m4abeaut_l33", "American Beauty (Avantime?) (MPU4) (A3L0, Latvia, set 1)", + "m4abeaut_l34", "American Beauty (Avantime?) (MPU4) (A3L0, Latvia, set 2)", + "m4abeaut_l35", "American Beauty (Avantime?) (MPU4) (A3L0, Latvia, set 3)", + "m4abeaut_l36", "American Beauty (Avantime?) (MPU4) (A3L0, Latvia, set 4)", + "m4abeaut_l37", "American Beauty (Avantime?) (MPU4) (A3L0, Latvia, set 5)", + "m4abeaut_l38", "American Beauty (Avantime?) (MPU4) (A3L0, Latvia, set 6)", + "m4abeaut_l4", "American Beauty (Avantime?) (MPU4) (ABL0, Latvia, set 4)", + "m4abeaut_l5", "American Beauty (Avantime?) (MPU4) (ABL0, Latvia, set 5)", + "m4abeaut_l6", "American Beauty (Avantime?) (MPU4) (ABL0, Latvia, set 6)", + "m4abeaut_l7", "American Beauty (Avantime?) (MPU4) (ABL0, Latvia, set 7)", + "m4abeaut_l8", "American Beauty (Avantime?) (MPU4) (ABL0, Latvia, set 8)", + "m4abeaut_l9", "American Beauty (Avantime?) (MPU4) (ABL0, Latvia, set 9)", + "m4abeaut_m1", "American Beauty (Avantime?) (MPU4) (ABM1, Montenegro, set 1)", + "m4abeaut_m2", "American Beauty (Avantime?) (MPU4) (ABM1, Montenegro, set 2)", + "m4abeaut_m3", "American Beauty (Avantime?) (MPU4) (ABM2, Montenegro, set 1)", + "m4abeaut_m4", "American Beauty (Avantime?) (MPU4) (ABM2, Montenegro, set 2)", + "m4abeaut_pb1", "American Beauty (Avantime?) (MPU4) (AJL0, Project Bar, set 1)", + "m4abeaut_pb2", "American Beauty (Avantime?) (MPU4) (AJL0, Project Bar, set 2)", + "m4abeaut_r1", "American Beauty (Avantime?) (MPU4) (ABR1, Russia, set 1)", + "m4abeaut_r10", "American Beauty (Avantime?) (MPU4) (ABR1, Russia, set 10)", + "m4abeaut_r11", "American Beauty (Avantime?) (MPU4) (ABR1, Russia, set 11)", + "m4abeaut_r12", "American Beauty (Avantime?) (MPU4) (ABR1, Russia, set 12)", + "m4abeaut_r13", "American Beauty (Avantime?) (MPU4) (ABR1, Russia, set 13)", + "m4abeaut_r14", "American Beauty (Avantime?) (MPU4) (ABR1, Russia, set 14)", + "m4abeaut_r2", "American Beauty (Avantime?) (MPU4) (ABR1, Russia, set 2)", + "m4abeaut_r3", "American Beauty (Avantime?) (MPU4) (ABR1, Russia, set 3)", + "m4abeaut_r4", "American Beauty (Avantime?) (MPU4) (ABR1, Russia, set 4)", + "m4abeaut_r5", "American Beauty (Avantime?) (MPU4) (ABR1, Russia, set 5)", + "m4abeaut_r6", "American Beauty (Avantime?) (MPU4) (ABR1, Russia, set 6)", + "m4abeaut_r7", "American Beauty (Avantime?) (MPU4) (ABR1, Russia, set 7)", + "m4abeaut_r8", "American Beauty (Avantime?) (MPU4) (ABR1, Russia, set 8)", + "m4abeaut_r9", "American Beauty (Avantime?) (MPU4) (ABR1, Russia, set 9)", + "m4abeaut_s1", "American Beauty (Avantime?) (MPU4) (ABS1, Slovakia, set 1)", + "m4abeaut_s2", "American Beauty (Avantime?) (MPU4) (ABS1, Slovakia, set 2)", + "m4abeaut_s3", "American Beauty (Avantime?) (MPU4) (ABS2, Slovakia, set 1)", + "m4abeaut_s4", "American Beauty (Avantime?) (MPU4) (ABS2, Slovakia, set 2)", + "m4abeaut_u1", "American Beauty (Avantime?) (MPU4) (ABU1, Ukraine, set 1)", + "m4abeaut_u10", "American Beauty (Avantime?) (MPU4) (ABU1, Ukraine, set 10)", + "m4abeaut_u11", "American Beauty (Avantime?) (MPU4) (ABU1, Ukraine, set 11)", + "m4abeaut_u12", "American Beauty (Avantime?) (MPU4) (ABU1, Ukraine, set 12)", + "m4abeaut_u13", "American Beauty (Avantime?) (MPU4) (ABU1, Ukraine, set 13)", + "m4abeaut_u14", "American Beauty (Avantime?) (MPU4) (ABU1, Ukraine, set 14)", + "m4abeaut_u15", "American Beauty (Avantime?) (MPU4) (ABU1, Ukraine, set 15)", + "m4abeaut_u16", "American Beauty (Avantime?) (MPU4) (ABU1, Ukraine, set 16)", + "m4abeaut_u17", "American Beauty (Avantime?) (MPU4) (ABU1, Ukraine, set 17)", + "m4abeaut_u18", "American Beauty (Avantime?) (MPU4) (ABU1, Ukraine, set 18)", + "m4abeaut_u19", "American Beauty (Avantime?) (MPU4) (ABU1, Ukraine, set 19)", + "m4abeaut_u2", "American Beauty (Avantime?) (MPU4) (ABU1, Ukraine, set 2)", + "m4abeaut_u20", "American Beauty (Avantime?) (MPU4) (ABU1, Ukraine, set 20)", + "m4abeaut_u21", "American Beauty (Avantime?) (MPU4) (ABU1, Ukraine, set 21)", + "m4abeaut_u22", "American Beauty (Avantime?) (MPU4) (ABU1, Ukraine, set 22)", + "m4abeaut_u23", "American Beauty (Avantime?) (MPU4) (ABU1, Ukraine, set 23)", + "m4abeaut_u24", "American Beauty (Avantime?) (MPU4) (ABU1, Ukraine, set 24)", + "m4abeaut_u25", "American Beauty (Avantime?) (MPU4) (ABU1, Ukraine, set 25)", + "m4abeaut_u26", "American Beauty (Avantime?) (MPU4) (ABU1, Ukraine, set 26)", + "m4abeaut_u27", "American Beauty (Avantime?) (MPU4) (ABU1, Ukraine, set 27)", + "m4abeaut_u28", "American Beauty (Avantime?) (MPU4) (ABU1, Ukraine, set 28)", + "m4abeaut_u29", "American Beauty (Avantime?) (MPU4) (ABU1, Ukraine, set 29)", + "m4abeaut_u3", "American Beauty (Avantime?) (MPU4) (ABU1, Ukraine, set 3)", + "m4abeaut_u30", "American Beauty (Avantime?) (MPU4) (ABU1, Ukraine, set 30)", + "m4abeaut_u31", "American Beauty (Avantime?) (MPU4) (ABU1, Ukraine, set 31)", + "m4abeaut_u32", "American Beauty (Avantime?) (MPU4) (ABU1, Ukraine, set 32)", + "m4abeaut_u33", "American Beauty (Avantime?) (MPU4) (ABU1, Ukraine, set 33)", + "m4abeaut_u34", "American Beauty (Avantime?) (MPU4) (ABU1, Ukraine, set 34)", + "m4abeaut_u35", "American Beauty (Avantime?) (MPU4) (ABU1, Ukraine, set 35)", + "m4abeaut_u36", "American Beauty (Avantime?) (MPU4) (ABU1, Ukraine, set 36)", + "m4abeaut_u37", "American Beauty (Avantime?) (MPU4) (ABU1, Ukraine, set 37)", + "m4abeaut_u38", "American Beauty (Avantime?) (MPU4) (ABU1, Ukraine, set 38)", + "m4abeaut_u39", "American Beauty (Avantime?) (MPU4) (ABU1, Ukraine, set 39)", + "m4abeaut_u4", "American Beauty (Avantime?) (MPU4) (ABU1, Ukraine, set 4)", + "m4abeaut_u40", "American Beauty (Avantime?) (MPU4) (ABU1, Ukraine, set 40)", + "m4abeaut_u41", "American Beauty (Avantime?) (MPU4) (ABU1, Ukraine, set 41)", + "m4abeaut_u42", "American Beauty (Avantime?) (MPU4) (ABU1, Ukraine, set 42)", + "m4abeaut_u43", "American Beauty (Avantime?) (MPU4) (ABU1, Ukraine, set 43)", + "m4abeaut_u44", "American Beauty (Avantime?) (MPU4) (ABU1, Ukraine, set 44)", + "m4abeaut_u45", "American Beauty (Avantime?) (MPU4) (ABU1, Ukraine, set 45)", + "m4abeaut_u46", "American Beauty (Avantime?) (MPU4) (ABU1, Ukraine, set 46)", + "m4abeaut_u47", "American Beauty (Avantime?) (MPU4) (ABU1, Ukraine, set 47)", + "m4abeaut_u48", "American Beauty (Avantime?) (MPU4) (ABU1, Ukraine, set 48)", + "m4abeaut_u49", "American Beauty (Avantime?) (MPU4) (ABU2, Ukraine, set 1)", + "m4abeaut_u5", "American Beauty (Avantime?) (MPU4) (ABU1, Ukraine, set 5)", + "m4abeaut_u50", "American Beauty (Avantime?) (MPU4) (ABU2, Ukraine, set 2)", + "m4abeaut_u51", "American Beauty (Avantime?) (MPU4) (ABU2, Ukraine, set 3)", + "m4abeaut_u52", "American Beauty (Avantime?) (MPU4) (ABU2, Ukraine, set 4)", + "m4abeaut_u53", "American Beauty (Avantime?) (MPU4) (A2U2, Ukraine, set 1)", + "m4abeaut_u54", "American Beauty (Avantime?) (MPU4) (A2U2, Ukraine, set 2)", + "m4abeaut_u55", "American Beauty (Avantime?) (MPU4) (A2U2, Ukraine, set 3)", + "m4abeaut_u56", "American Beauty (Avantime?) (MPU4) (A2U2, Ukraine, set 4)", + "m4abeaut_u57", "American Beauty (Avantime?) (MPU4) (A2U2, Ukraine, set 5)", + "m4abeaut_u58", "American Beauty (Avantime?) (MPU4) (A2U2, Ukraine, set 6)", + "m4abeaut_u59", "American Beauty (Avantime?) (MPU4) (A2U3, Ukraine, set 1)", + "m4abeaut_u6", "American Beauty (Avantime?) (MPU4) (ABU1, Ukraine, set 6)", + "m4abeaut_u60", "American Beauty (Avantime?) (MPU4) (A2U3, Ukraine, set 2)", + "m4abeaut_u61", "American Beauty (Avantime?) (MPU4) (A3U2, Ukraine, set 1)", + "m4abeaut_u62", "American Beauty (Avantime?) (MPU4) (A3U2, Ukraine, set 2)", + "m4abeaut_u63", "American Beauty (Avantime?) (MPU4) (A3U2, Ukraine, set 3)", + "m4abeaut_u64", "American Beauty (Avantime?) (MPU4) (A3U2, Ukraine, set 4)", + "m4abeaut_u7", "American Beauty (Avantime?) (MPU4) (ABU1, Ukraine, set 7)", + "m4abeaut_u8", "American Beauty (Avantime?) (MPU4) (ABU1, Ukraine, set 8)", + "m4abeaut_u9", "American Beauty (Avantime?) (MPU4) (ABU1, Ukraine, set 9)", + "m4abra", "Abracadabra (Bwb) (MPU4) (set 1)", + "m4abra__a", "Abracadabra (Bwb) (MPU4) (set 2)", + "m4abra__b", "Abracadabra (Bwb) (MPU4) (set 3)", + "m4abra__c", "Abracadabra (Bwb) (MPU4) (set 4)", + "m4acechs", "Ace Chase (Barcrest) (MPU4) (set 1)", + "m4acechs__a", "Ace Chase (Barcrest) (MPU4) (set 2)", + "m4acechs__b", "Ace Chase (Barcrest) (MPU4) (set 3)", + "m4acechs__c", "Ace Chase (Barcrest) (MPU4) (set 4)", + "m4acechs__d", "Ace Chase (Barcrest) (MPU4) (set 5)", + "m4acechs__e", "Ace Chase (Barcrest) (MPU4) (set 6)", + "m4acechs__f", "Ace Chase (Barcrest) (MPU4) (set 7)", + "m4acechs__g", "Ace Chase (Barcrest) (MPU4) (set 8)", + "m4acechs__h", "Ace Chase (Barcrest) (MPU4) (set 9)", + "m4acechs__i", "Ace Chase (Barcrest) (MPU4) (set 10)", + "m4acechs__j", "Ace Chase (Barcrest) (MPU4) (set 11)", + "m4acechs__k", "Ace Chase (Barcrest) (MPU4) (set 12)", + "m4acechs__l", "Ace Chase (Barcrest) (MPU4) (set 13)", + "m4acechs__m", "Ace Chase (Barcrest) (MPU4) (set 14)", + "m4acechs__n", "Ace Chase (Barcrest) (MPU4) (set 15)", + "m4acechs__o", "Ace Chase (Barcrest) (MPU4) (set 16)", + "m4acechs__p", "Ace Chase (Barcrest) (MPU4) (set 17)", + "m4acechs__q", "Ace Chase (Barcrest) (MPU4) (set 18)", + "m4acechs__r", "Ace Chase (Barcrest) (MPU4) (set 19)", + "m4acechs__s", "Ace Chase (Barcrest) (MPU4) (set 20)", + "m4acechs__t", "Ace Chase (Barcrest) (MPU4) (set 21)", + "m4acechs__u", "Ace Chase (Barcrest) (MPU4) (set 22)", + "m4actbnk", "Action Bank (Barcrest) (MPU4) (set 1)", + "m4actbnk__a", "Action Bank (Barcrest) (MPU4) (set 2)", + "m4actbnk__b", "Action Bank (Barcrest) (MPU4) (set 3)", + "m4actbnk__c", "Action Bank (Barcrest) (MPU4) (set 4)", + "m4actbnk__d", "Action Bank (Barcrest) (MPU4) (set 5)", + "m4actbnk__e", "Action Bank (Barcrest) (MPU4) (set 6)", + "m4actbnk__f", "Action Bank (Barcrest) (MPU4) (set 7)", + "m4actbnk__g", "Action Bank (Barcrest) (MPU4) (set 8)", + "m4actbnk__h", "Action Bank (Barcrest) (MPU4) (set 9)", + "m4actbnk__i", "Action Bank (Barcrest) (MPU4) (set 10)", + "m4actbnka", "Action Bank (Barcrest) (Mod 2 type, AC3.0) (MPU4)", + "m4actbnkb", "Action Bank (Barcrest) (Mod 2 type, ACT2.0) (MPU4)", + "m4actclb", "Action Club (Barcrest) (MPU4) (1.9)", + "m4actclba", "Action Club (Barcrest) (MPU4) (1.1)", + "m4actnot", "Action Note (Barcrest) (MPU4) (AN 1.2)", + "m4actpak", "Action Pack (Barcrest) (MPU4) (AP 0.4)", + "m4actpaka", "Action Pack (Barcrest) (MPU4) (AP 0.5)", + "m4addr", "Adders & Ladders (Barcrest) (MPU4) (A6L 0.1)", + "m4addr10", "Adders & Ladders (Bwb / Barcrest) (MPU4) (ADD 1.0, set 1)", + "m4addr10_a", "Adders & Ladders (Bwb / Barcrest) (MPU4) (ADD 1.0, set 2)", + "m4addr10c", "Adders & Ladders (Bwb / Barcrest) (MPU4) (ADD 1.0C, set 1)", + "m4addr10c_a", "Adders & Ladders (Bwb / Barcrest) (MPU4) (ADD 1.0C, set 2)", + "m4addr10d", "Adders & Ladders (Bwb / Barcrest) (MPU4) (ADD 1.0D, set 1)", + "m4addr10d_a", "Adders & Ladders (Bwb / Barcrest) (MPU4) (ADD 1.0D, set 2)", + "m4addr10yd", "Adders & Ladders (Bwb / Barcrest) (MPU4) (ADD 1.0YD, set 1)", + "m4addr10yd_a", "Adders & Ladders (Bwb / Barcrest) (MPU4) (ADD 1.0YD, set 2)", + "m4addr3", "Adders & Ladders (Bwb / Barcrest) (MPU4) (ADD 3.0, set 1)", + "m4addr3_a", "Adders & Ladders (Bwb / Barcrest) (MPU4) (ADD 3.0, set 2)", + "m4addr3_b", "Adders & Ladders (Bwb / Barcrest) (MPU4) (ADD 3.0, set 3)", + "m4addr3_c", "Adders & Ladders (Bwb / Barcrest) (MPU4) (ADD 3.0, set 4)", + "m4addr3_d", "Adders & Ladders (Bwb / Barcrest) (MPU4) (ADD 3.0, set 5)", + "m4addr3d", "Adders & Ladders (Bwb / Barcrest) (MPU4) (ADD 3.0D, set 1)", + "m4addr3d_a", "Adders & Ladders (Bwb / Barcrest) (MPU4) (ADD 3.0D, set 2)", + "m4addr3d_b", "Adders & Ladders (Bwb / Barcrest) (MPU4) (ADD 3.0D, set 3)", + "m4addr3d_c", "Adders & Ladders (Bwb / Barcrest) (MPU4) (ADD 3.0D, set 4)", + "m4addr3yd", "Adders & Ladders (Bwb / Barcrest) (MPU4) (ADD 3.0YD, set 1)", + "m4addr3yd_a", "Adders & Ladders (Bwb / Barcrest) (MPU4) (ADD 3.0YD, set 2)", + "m4addr3yd_b", "Adders & Ladders (Bwb / Barcrest) (MPU4) (ADD 3.0YD, set 3)", + "m4addr3yd_c", "Adders & Ladders (Bwb / Barcrest) (MPU4) (ADD 3.0YD, set 4)", + "m4addr4", "Adders & Ladders (Bwb / Barcrest) (MPU4) (ADD 4.0, set 1)", + "m4addr4_a", "Adders & Ladders (Bwb / Barcrest) (MPU4) (ADD 4.0, set 2)", + "m4addr4c", "Adders & Ladders (Bwb / Barcrest) (MPU4) (ADD 4.0C, set 1)", + "m4addr4c_a", "Adders & Ladders (Bwb / Barcrest) (MPU4) (ADD 4.0C, set 2)", + "m4addr4c_b", "Adders & Ladders (Bwb / Barcrest) (MPU4) (ADD 4.0C, set 3)", + "m4addr4d", "Adders & Ladders (Bwb / Barcrest) (MPU4) (ADD 4.0D, set 1)", + "m4addr4yd", "Adders & Ladders (Bwb / Barcrest) (MPU4) (ADD 4.0YD, set 1)", + "m4addr5", "Adders & Ladders (Bwb / Barcrest) (MPU4) (ADD 5.0, set 1)", + "m4addr5_a", "Adders & Ladders (Bwb / Barcrest) (MPU4) (ADD 5.0, set 2)", + "m4addr5c", "Adders & Ladders (Bwb / Barcrest) (MPU4) (ADD 5.0C, set 1)", + "m4addr5c_a", "Adders & Ladders (Bwb / Barcrest) (MPU4) (ADD 5.0C, set 2)", + "m4addr5d", "Adders & Ladders (Bwb / Barcrest) (MPU4) (ADD 5.0D, set 1)", + "m4addr5d_a", "Adders & Ladders (Bwb / Barcrest) (MPU4) (ADD 5.0D, set 2)", + "m4addr5yd", "Adders & Ladders (Bwb / Barcrest) (MPU4) (ADD 5.0YD, set 1)", + "m4addr5yd_a", "Adders & Ladders (Bwb / Barcrest) (MPU4) (ADD 5.0YD, set 2)", + "m4addr6lc", "Adders & Ladders (Barcrest) (MPU4) (A6L 0.1C)", + "m4addr6ld", "Adders & Ladders (Barcrest) (MPU4) (A6L 0.1D)", + "m4addr6lk", "Adders & Ladders (Barcrest) (MPU4) (A6L 0.1K)", + "m4addr6ly", "Adders & Ladders (Barcrest) (MPU4) (A6L 0.1Y)", + "m4addr6lybd", "Adders & Ladders (Barcrest) (MPU4) (A6L 0.1YBD)", + "m4addr6lyd", "Adders & Ladders (Barcrest) (MPU4) (A6L 0.1YD)", + "m4addr_h1", "Adders & Ladders (Bwb / Barcrest) (MPU4) (ADD 1.0C, hack?, set 1)", + "m4addr_h2", "Adders & Ladders (Bwb / Barcrest) (MPU4) (ADD 1.0C, hack?, set 2)", + "m4addrc", "Adders & Ladders Classic (Barcrest) (MPU4) (set 1)", + "m4addrc__a", "Adders & Ladders Classic (Barcrest) (MPU4) (set 2)", + "m4addrc__b", "Adders & Ladders Classic (Barcrest) (MPU4) (set 3)", + "m4addrc__c", "Adders & Ladders Classic (Barcrest) (MPU4) (set 4)", + "m4addrc__d", "Adders & Ladders Classic (Barcrest) (MPU4) (set 5)", + "m4addrc__e", "Adders & Ladders Classic (Barcrest) (MPU4) (set 6)", + "m4addrc__f", "Adders & Ladders Classic (Barcrest) (MPU4) (set 7)", + "m4addrc__h", "Adders & Ladders Classic (Barcrest) (MPU4) (set 8)", + "m4addrc__i", "Adders & Ladders Classic (Barcrest) (MPU4) (set 9)", + "m4addrc__j", "Adders & Ladders Classic (Barcrest) (MPU4) (set 10)", + "m4addrc__k", "Adders & Ladders Classic (Barcrest) (MPU4) (set 11)", + "m4addrc__l", "Adders & Ladders Classic (Barcrest) (MPU4) (set 12)", + "m4addrc__m", "Adders & Ladders Classic (Barcrest) (MPU4) (set 13)", + "m4addrc__n", "Adders & Ladders Classic (Barcrest) (MPU4) (set 14)", + "m4addrcc", "Adders & Ladders Classic Club (Barcrest) (MPU4) (set 1)", + "m4addrcc__a", "Adders & Ladders Classic Club (Barcrest) (MPU4) (set 2)", + "m4addrcc__b", "Adders & Ladders Classic Club (Barcrest) (MPU4) (set 3)", + "m4addrcc__c", "Adders & Ladders Classic Club (Barcrest) (MPU4) (set 4)", + "m4addrcc__d", "Adders & Ladders Classic Club (Barcrest) (MPU4) (set 5)", + "m4addrd", "Adders & Ladders (Barcrest) (DAL, Dutch) (MPU4)", + "m4aladn", "Aladdin's Cave (Crystal) (MPU4) (set 1)", + "m4aladna", "Aladdin's Cave (Crystal) (MPU4) (set 2)", + "m4aladnb", "Aladdin's Cave (Crystal) (MPU4) (set 3)", + "m4aladnc", "Aladdin's Cave (Crystal) (MPU4) (set 4)", + "m4aladnd", "Aladdin's Cave (Crystal) (MPU4) (set 5)", + "m4aladne", "Aladdin's Cave (Crystal) (MPU4) (set 6)", + "m4aladnf", "Aladdin's Cave (Crystal) (MPU4) (set 7)", + "m4aladng", "Aladdin's Cave (Crystal) (MPU4) (set 8)", + "m4aladnh", "Aladdin's Cave (Crystal) (MPU4) (set 9)", + "m4aladni", "Aladdin's Cave (Crystal) (MPU4) (set 10)", + "m4aliz", "AlizBaz (Qps) (German) (MPU4)", + "m4alladv", "All Cash Advance (Barcrest) (MPU4) (C2B 6.0)", + "m4alpha", "Alphabet (Barcrest) [A4B 1.0] (MPU4)", + "m4amalad", "American Aladdin (Avantime?) (MPU4) (set 1)", + "m4amalad__a", "American Aladdin (Avantime?) (MPU4) (set 2)", + "m4amalad__b", "American Aladdin (Avantime?) (MPU4) (set 3)", + "m4amalad__c", "American Aladdin (Avantime?) (MPU4) (set 4)", + "m4amalad__d", "American Aladdin (Avantime?) (MPU4) (set 5)", + "m4amalad__e", "American Aladdin (Avantime?) (MPU4) (set 6)", + "m4amalad__f", "American Aladdin (Avantime?) (MPU4) (set 7)", + "m4amalad__g", "American Aladdin (Avantime?) (MPU4) (set 8)", + "m4amalad__h", "American Aladdin (Avantime?) (MPU4) (set 9)", + "m4amalad__i", "American Aladdin (Avantime?) (MPU4) (set 10)", + "m4amalad__j", "American Aladdin (Avantime?) (MPU4) (set 11)", + "m4amalad__k", "American Aladdin (Avantime?) (MPU4) (set 12)", + "m4amalad__l", "American Aladdin (Avantime?) (MPU4) (set 13)", + "m4amalad__m", "American Aladdin (Avantime?) (MPU4) (set 14)", + "m4amalad__n", "American Aladdin (Avantime?) (MPU4) (set 15)", + "m4ambass", "Ambassador (Barcrest) (DAM, Dutch) (MPU4)", + "m4amhiwy", "American Highway (Barcrest) (MPU4) (DAH)", + "m4andybt", "Andy's Big Time Club (Barcrest) (MPU4) (set 1)", + "m4andybt__a", "Andy's Big Time Club (Barcrest) (MPU4) (set 2)", + "m4andybt__b", "Andy's Big Time Club (Barcrest) (MPU4) (set 3)", + "m4andybt__c", "Andy's Big Time Club (Barcrest) (MPU4) (set 4)", + "m4andycp", "Andy Capp (Bwb / Barcrest) (MPU4) (AC10)", + "m4andycp10_a", "Andy Capp (Bwb / Barcrest) (MPU4) (AC10, hack?)", + "m4andycp10c", "Andy Capp (Bwb / Barcrest) (MPU4) (AC10C)", + "m4andycp10c_a", "Andy Capp (Bwb / Barcrest) (MPU4) (AC10C, hack?, set 1)", + "m4andycp10c_b", "Andy Capp (Bwb / Barcrest) (MPU4) (AC10C, hack?, set 2)", + "m4andycp10c_c", "Andy Capp (Bwb / Barcrest) (MPU4) (AC10C, hack?, set 3)", + "m4andycp10c_d", "Andy Capp (Bwb / Barcrest) (MPU4) (AC10C, hack?, set 4)", + "m4andycp10d", "Andy Capp (Bwb / Barcrest) (MPU4) (AC10D)", + "m4andycp10k", "Andy Capp (Bwb / Barcrest) (MPU4) (AC10K)", + "m4andycp10yd", "Andy Capp (Bwb / Barcrest) (MPU4) (AC10YD)", + "m4andycp20", "Andy Capp (Barcrest) (MPU4) (hack?, set 1)", + "m4andycp20_a", "Andy Capp (Barcrest) (MPU4) (hack?, set 2)", + "m4andycp20_b", "Andy Capp (Barcrest) (MPU4) (hack?, set 3)", + "m4andycp8", "Andy Capp (Barcrest) (MPU4) (AM8)", + "m4andycp8ad", "Andy Capp (Barcrest) (MPU4) (AN8 AD)", + "m4andycp8b", "Andy Capp (Barcrest) (MPU4) (AN8 B)", + "m4andycp8c", "Andy Capp (Barcrest) (MPU4) (AN8 C)", + "m4andycp8d", "Andy Capp (Barcrest) (MPU4) (AN8 D)", + "m4andycp8k", "Andy Capp (Barcrest) (MPU4) (AN8 K)", + "m4andycp8kd", "Andy Capp (Barcrest) (MPU4) (AN8 KD)", + "m4andycp8y", "Andy Capp (Barcrest) (MPU4) (AN8 Y)", + "m4andycp8yd", "Andy Capp (Barcrest) (MPU4) (AN8 YD)", + "m4andycpac", "Andy Capp (Bwb / Barcrest) (MPU4) (AC5)", + "m4andycpac_a", "Andy Capp (Bwb / Barcrest) (MPU4) (AC5, hack?)", + "m4andycpacc", "Andy Capp (Bwb / Barcrest) (MPU4) (AC5 C)", + "m4andycpacc_a", "Andy Capp (Bwb / Barcrest) (MPU4) (AC5 C, hack?, set 1)", + "m4andycpacc_b", "Andy Capp (Bwb / Barcrest) (MPU4) (AC5 C, hack?, set 2)", + "m4andycpacc_c", "Andy Capp (Bwb / Barcrest) (MPU4) (AC5 C, hack?, set 3)", + "m4andycpacc_d", "Andy Capp (Bwb / Barcrest) (MPU4) (AC5 C, hack?, set 4)", + "m4andycpacc_e", "Andy Capp (Bwb / Barcrest) (MPU4) (AC5 C, hack?, set 5)", + "m4andycpaccsd", "Andy Capp (Bwb / Barcrest) (MPU4) (ACC5)", + "m4andycpacd", "Andy Capp (Bwb / Barcrest) (MPU4) (AC5 D)", + "m4andycpack", "Andy Capp (Bwb / Barcrest) (MPU4) (AC5 K)", + "m4andycpacyd", "Andy Capp (Bwb / Barcrest) (MPU4) (AC5 YD)", + "m4andycpc2", "Andy Capp (Barcrest) (MPU4) (C2T, set 1)", + "m4andycpc2_a", "Andy Capp (Barcrest) (MPU4) (C2T, set 2)", + "m4andycpc2ad", "Andy Capp (Barcrest) (MPU4) (C2T AD)", + "m4andycpc2b", "Andy Capp (Barcrest) (MPU4) (C2T B)", + "m4andycpc2bd", "Andy Capp (Barcrest) (MPU4) (C2T BD)", + "m4andycpc2d", "Andy Capp (Barcrest) (MPU4) (C2T D)", + "m4andycpc2k", "Andy Capp (Barcrest) (MPU4) (C2T K)", + "m4andycpc2kd", "Andy Capp (Barcrest) (MPU4) (C2T KD)", + "m4andycpc2r", "Andy Capp (Barcrest) (MPU4) (C2T R)", + "m4andycpc2rd", "Andy Capp (Barcrest) (MPU4) (C2T RD)", + "m4andycpc2y", "Andy Capp (Barcrest) (MPU4) (C2T Y)", + "m4andycpc2yd", "Andy Capp (Barcrest) (MPU4) (C2T YD)", + "m4andycpc5", "Andy Capp (Barcrest) (MPU4) (C5T)", + "m4andycpc5ad", "Andy Capp (Barcrest) (MPU4) (C5T AD)", + "m4andycpc5b", "Andy Capp (Barcrest) (MPU4) (C5T B)", + "m4andycpc5bd", "Andy Capp (Barcrest) (MPU4) (C5T BD)", + "m4andycpc5d", "Andy Capp (Barcrest) (MPU4) (C5T D)", + "m4andycpc5k", "Andy Capp (Barcrest) (MPU4) (C5T K)", + "m4andycpc5kd", "Andy Capp (Barcrest) (MPU4) (C5T KD)", + "m4andycpc5y", "Andy Capp (Barcrest) (MPU4) (C5T Y)", + "m4andycpc5yd", "Andy Capp (Barcrest) (MPU4) (C5T YD)", + "m4andycpd", "Andy Capp (Barcrest) (MPU4) (AND)", + "m4andycpdc", "Andy Capp (Barcrest) (MPU4) (AND C)", + "m4andycpdd", "Andy Capp (Barcrest) (MPU4) (AND D)", + "m4andycpdk", "Andy Capp (Barcrest) (MPU4) (AND K)", + "m4andycpdut", "Andy Capp (Barcrest) [DAC 1.3, Dutch] (MPU4)", + "m4andycpdy", "Andy Capp (Barcrest) (MPU4) (AND Y, set 1)", + "m4andycpdy_a", "Andy Capp (Barcrest) (MPU4) (AND Y, set 2)", + "m4andycpdyd", "Andy Capp (Barcrest) (MPU4) (AND YD)", + "m4andyfh", "Andy's Full House (Barcrest) (MPU4) (set 1)", + "m4andyfh__0", "Andy's Full House (Barcrest) (MPU4) (set 28)", + "m4andyfh__1", "Andy's Full House (Barcrest) (MPU4) (set 29)", + "m4andyfh__2", "Andy's Full House (Barcrest) (MPU4) (set 30)", + "m4andyfh__3", "Andy's Full House (Barcrest) (MPU4) (set 31)", + "m4andyfh__4", "Andy's Full House (Barcrest) (MPU4) (set 32)", + "m4andyfh__5", "Andy's Full House (Barcrest) (MPU4) (set 33)", + "m4andyfh__6", "Andy's Full House (Barcrest) (MPU4) (set 34)", + "m4andyfh__7", "Andy's Full House (Barcrest) (MPU4) (set 35)", + "m4andyfh__8", "Andy's Full House (Barcrest) (MPU4) (set 36)", + "m4andyfh__9", "Andy's Full House (Barcrest) (MPU4) (set 37)", + "m4andyfh__a", "Andy's Full House (Barcrest) (MPU4) (set 2)", + "m4andyfh__a0", "Andy's Full House (Barcrest) (MPU4) (set 64)", + "m4andyfh__a1", "Andy's Full House (Barcrest) (MPU4) (set 65)", + "m4andyfh__a2", "Andy's Full House (Barcrest) (MPU4) (set 66)", + "m4andyfh__a3", "Andy's Full House (Barcrest) (MPU4) (set 67)", + "m4andyfh__a4", "Andy's Full House (Barcrest) (MPU4) (set 68)", + "m4andyfh__aa", "Andy's Full House (Barcrest) (MPU4) (set 38)", + "m4andyfh__ab", "Andy's Full House (Barcrest) (MPU4) (set 39)", + "m4andyfh__ac", "Andy's Full House (Barcrest) (MPU4) (set 40)", + "m4andyfh__ad", "Andy's Full House (Barcrest) (MPU4) (set 41)", + "m4andyfh__ae", "Andy's Full House (Barcrest) (MPU4) (set 42)", + "m4andyfh__af", "Andy's Full House (Barcrest) (MPU4) (set 43)", + "m4andyfh__ag", "Andy's Full House (Barcrest) (MPU4) (set 44)", + "m4andyfh__ah", "Andy's Full House (Barcrest) (MPU4) (set 45)", + "m4andyfh__ai", "Andy's Full House (Barcrest) (MPU4) (set 46)", + "m4andyfh__aj", "Andy's Full House (Barcrest) (MPU4) (set 47)", + "m4andyfh__ak", "Andy's Full House (Barcrest) (MPU4) (set 48)", + "m4andyfh__al", "Andy's Full House (Barcrest) (MPU4) (set 49)", + "m4andyfh__am", "Andy's Full House (Barcrest) (MPU4) (set 50)", + "m4andyfh__an", "Andy's Full House (Barcrest) (MPU4) (set 51)", + "m4andyfh__ao", "Andy's Full House (Barcrest) (MPU4) (set 52)", + "m4andyfh__ap", "Andy's Full House (Barcrest) (MPU4) (set 53)", + "m4andyfh__aq", "Andy's Full House (Barcrest) (MPU4) (set 54)", + "m4andyfh__ar", "Andy's Full House (Barcrest) (MPU4) (set 55)", + "m4andyfh__as", "Andy's Full House (Barcrest) (MPU4) (set 56)", + "m4andyfh__at", "Andy's Full House (Barcrest) (MPU4) (set 57)", + "m4andyfh__au", "Andy's Full House (Barcrest) (MPU4) (set 58)", + "m4andyfh__av", "Andy's Full House (Barcrest) (MPU4) (set 59)", + "m4andyfh__aw", "Andy's Full House (Barcrest) (MPU4) (set 60)", + "m4andyfh__ax", "Andy's Full House (Barcrest) (MPU4) (set 61)", + "m4andyfh__ay", "Andy's Full House (Barcrest) (MPU4) (set 62)", + "m4andyfh__az", "Andy's Full House (Barcrest) (MPU4) (set 63)", + "m4andyfh__b", "Andy's Full House (Barcrest) (MPU4) (set 3)", + "m4andyfh__c", "Andy's Full House (Barcrest) (MPU4) (set 4)", + "m4andyfh__d", "Andy's Full House (Barcrest) (MPU4) (set 5)", + "m4andyfh__e", "Andy's Full House (Barcrest) (MPU4) (set 6)", + "m4andyfh__f", "Andy's Full House (Barcrest) (MPU4) (set 7)", + "m4andyfh__g", "Andy's Full House (Barcrest) (MPU4) (set 8)", + "m4andyfh__h", "Andy's Full House (Barcrest) (MPU4) (set 9)", + "m4andyfh__i", "Andy's Full House (Barcrest) (MPU4) (set 10)", + "m4andyfh__j", "Andy's Full House (Barcrest) (MPU4) (set 11)", + "m4andyfh__k", "Andy's Full House (Barcrest) (MPU4) (set 12)", + "m4andyfh__l", "Andy's Full House (Barcrest) (MPU4) (set 13)", + "m4andyfh__m", "Andy's Full House (Barcrest) (MPU4) (set 14)", + "m4andyfh__n", "Andy's Full House (Barcrest) (MPU4) (set 15)", + "m4andyfh__o", "Andy's Full House (Barcrest) (MPU4) (set 16)", + "m4andyfh__p", "Andy's Full House (Barcrest) (MPU4) (set 17)", + "m4andyfh__q", "Andy's Full House (Barcrest) (MPU4) (set 18)", + "m4andyfh__r", "Andy's Full House (Barcrest) (MPU4) (set 19)", + "m4andyfh__s", "Andy's Full House (Barcrest) (MPU4) (set 20)", + "m4andyfh__t", "Andy's Full House (Barcrest) (MPU4) (set 21)", + "m4andyfh__u", "Andy's Full House (Barcrest) (MPU4) (set 22)", + "m4andyfh__v", "Andy's Full House (Barcrest) (MPU4) (set 23)", + "m4andyfh__w", "Andy's Full House (Barcrest) (MPU4) (set 24)", + "m4andyfh__x", "Andy's Full House (Barcrest) (MPU4) (set 25)", + "m4andyfh__y", "Andy's Full House (Barcrest) (MPU4) (set 26)", + "m4andyfh__z", "Andy's Full House (Barcrest) (MPU4) (set 27)", + "m4andyfl", "Andy Loves Flo (Bwb / Barcrest) (MPU4) (AL4 2.1KS)", + "m4andyfl3", "Andy Loves Flo (Barcrest) (MPU4) (AL3 0.1)", + "m4andyfl3ad", "Andy Loves Flo (Barcrest) (MPU4) (AL3 0.1AD)", + "m4andyfl3b", "Andy Loves Flo (Barcrest) (MPU4) (AL3 0.1B)", + "m4andyfl3bd", "Andy Loves Flo (Barcrest) (MPU4) (AL3 0.1BD)", + "m4andyfl3d", "Andy Loves Flo (Barcrest) (MPU4) (AL3 0.1D)", + "m4andyfl3k", "Andy Loves Flo (Barcrest) (MPU4) (AL3 0.1K)", + "m4andyfl3kd", "Andy Loves Flo (Barcrest) (MPU4) (AL3 0.1KD)", + "m4andyfl3y", "Andy Loves Flo (Barcrest) (MPU4) (AL3 0.1Y)", + "m4andyfl3yd", "Andy Loves Flo (Barcrest) (MPU4) (AL3 0.1YD)", + "m4andyfl8", "Andy Loves Flo (Barcrest) (MPU4) (AL8 0.1)", + "m4andyfl8ad", "Andy Loves Flo (Barcrest) (MPU4) (AL8 0.1AD)", + "m4andyfl8b", "Andy Loves Flo (Barcrest) (MPU4) (AL8 0.1B)", + "m4andyfl8bd", "Andy Loves Flo (Barcrest) (MPU4) (AL8 0.1BD)", + "m4andyfl8bs", "Andy Loves Flo (Bwb / Barcrest) (MPU4) (AL_ 2.4KS)", + "m4andyfl8c", "Andy Loves Flo (Barcrest) (MPU4) (AL8 0.1C)", + "m4andyfl8d", "Andy Loves Flo (Barcrest) (MPU4) (AL8 0.1D)", + "m4andyfl8k", "Andy Loves Flo (Barcrest) (MPU4) (AL8 0.1K)", + "m4andyfl8kd", "Andy Loves Flo (Barcrest) (MPU4) (AL8 0.1KD)", + "m4andyfl8y", "Andy Loves Flo (Barcrest) (MPU4) (AL8 0.1Y)", + "m4andyflf", "Andy Loves Flo (Barcrest) (MPU4) (ALF 2.0)", + "m4andyflfb", "Andy Loves Flo (Barcrest) (MPU4) (ALF 2.0B)", + "m4andyflfc", "Andy Loves Flo (Barcrest) (MPU4) (ALF 2.0C)", + "m4andyflfk", "Andy Loves Flo (Barcrest) (MPU4) (ALF 2.0K)", + "m4andyflfr", "Andy Loves Flo (Barcrest) (MPU4) (ALF 2.0R)", + "m4andyflt", "Andy Loves Flo (Barcrest) (MPU4) (ALT 0.4)", + "m4andyfltad", "Andy Loves Flo (Barcrest) (MPU4) (ALT 0.4AD)", + "m4andyfltb", "Andy Loves Flo (Barcrest) (MPU4) (ALT 0.4B)", + "m4andyfltbd", "Andy Loves Flo (Barcrest) (MPU4) (ALT 0.4BD)", + "m4andyfltd", "Andy Loves Flo (Barcrest) (MPU4) (ALT 0.4D)", + "m4andyfltk", "Andy Loves Flo (Barcrest) (MPU4) (ALT 0.4K)", + "m4andyfltkd", "Andy Loves Flo (Barcrest) (MPU4) (ALT 0.4KD)", + "m4andyfltr", "Andy Loves Flo (Barcrest) (MPU4) (ALT 0.4R)", + "m4andyfltrd", "Andy Loves Flo (Barcrest) (MPU4) (ALT 0.4RD)", + "m4andyflty", "Andy Loves Flo (Barcrest) (MPU4) (ALT 0.4Y)", + "m4andyfltyd", "Andy Loves Flo (Barcrest) (MPU4) (ALT 0.4YD)", + "m4andyflu", "Andy Loves Flo (Barcrest) (MPU4) (ALU 0.3)", + "m4andyfluad", "Andy Loves Flo (Barcrest) (MPU4) (ALU 0.3AD)", + "m4andyflub", "Andy Loves Flo (Barcrest) (MPU4) (ALU 0.3B)", + "m4andyflubd", "Andy Loves Flo (Barcrest) (MPU4) (ALU 0.3BD)", + "m4andyflud", "Andy Loves Flo (Barcrest) (MPU4) (ALU 0.3D)", + "m4andyfluk", "Andy Loves Flo (Barcrest) (MPU4) (ALU 0.3K)", + "m4andyflukd", "Andy Loves Flo (Barcrest) (MPU4) (ALU 0.3KD)", + "m4andyflur", "Andy Loves Flo (Barcrest) (MPU4) (ALU 0.3R)", + "m4andyflurd", "Andy Loves Flo (Barcrest) (MPU4) (ALU 0.3RD)", + "m4andyfluy", "Andy Loves Flo (Barcrest) (MPU4) (ALU 0.3Y)", + "m4andyfluyd", "Andy Loves Flo (Barcrest) (MPU4) (ALU 0.3YD)", + "m4andyge", "Andy's Great Escape (Barcrest) (MPU4) (AN2 0.3, set 1)", + "m4andyge28", "Andy's Great Escape (Barcrest) (MPU4) (A28 0.1)", + "m4andyge28ad", "Andy's Great Escape (Barcrest) (MPU4) (A28 0.1AD)", + "m4andyge28b", "Andy's Great Escape (Barcrest) (MPU4) (A28 0.1B)", + "m4andyge28bd", "Andy's Great Escape (Barcrest) (MPU4) (A28 0.1BD)", + "m4andyge28c", "Andy's Great Escape (Barcrest) (MPU4) (A28 0.1C)", + "m4andyge28d", "Andy's Great Escape (Barcrest) (MPU4) (A28 0.1D)", + "m4andyge28k", "Andy's Great Escape (Barcrest) (MPU4) (A28 0.1K)", + "m4andyge28kd", "Andy's Great Escape (Barcrest) (MPU4) (A28 0.1KD)", + "m4andyge28y", "Andy's Great Escape (Barcrest) (MPU4) (A28 0.1Y)", + "m4andyge28yd", "Andy's Great Escape (Barcrest) (MPU4) (A28 0.1YD)", + "m4andyge2t", "Andy's Great Escape (Barcrest) (MPU4) (A2T 0.1)", + "m4andyge2tad", "Andy's Great Escape (Barcrest) (MPU4) (A2T 0.1AD)", + "m4andyge2tb", "Andy's Great Escape (Barcrest) (MPU4) (A2T 0.1B)", + "m4andyge2tbd", "Andy's Great Escape (Barcrest) (MPU4) (A2T 0.1BD)", + "m4andyge2td", "Andy's Great Escape (Barcrest) (MPU4) (A2T 0.1D)", + "m4andyge2tk", "Andy's Great Escape (Barcrest) (MPU4) (A2T 0.1K)", + "m4andyge2tkd", "Andy's Great Escape (Barcrest) (MPU4) (A2T 0.1KD)", + "m4andyge2ty", "Andy's Great Escape (Barcrest) (MPU4) (A2T 0.1Y)", + "m4andyge2tyd", "Andy's Great Escape (Barcrest) (MPU4) (A2T 0.1YD)", + "m4andyge5t", "Andy's Great Escape (Barcrest) (MPU4) (A5T 0.1)", + "m4andyge5tad", "Andy's Great Escape (Barcrest) (MPU4) (A5T 0.1AD)", + "m4andyge5tb", "Andy's Great Escape (Barcrest) (MPU4) (A5T 0.1B)", + "m4andyge5tbd", "Andy's Great Escape (Barcrest) (MPU4) (A5T 0.1BD)", + "m4andyge5td", "Andy's Great Escape (Barcrest) (MPU4) (A5T 0.1D)", + "m4andyge5tk", "Andy's Great Escape (Barcrest) (MPU4) (A5T 0.1K)", + "m4andyge5tkd", "Andy's Great Escape (Barcrest) (MPU4) (A5T 0.1KD)", + "m4andyge5ty", "Andy's Great Escape (Barcrest) (MPU4) (A5T 0.1Y)", + "m4andyge5tyd", "Andy's Great Escape (Barcrest) (MPU4) (A5T 0.1YD)", + "m4andyge_h1", "Andy's Great Escape (Bwb / Barcrest) (MPU4) (8V1 3.0, hack?, set 1)", + "m4andyge_h2", "Andy's Great Escape (Bwb / Barcrest) (MPU4) (8V1 3.0, hack?, set 2)", + "m4andyge_h3", "Andy's Great Escape (Bwb / Barcrest) (MPU4) (8V1 0.3, hack?, set 1)", + "m4andyge_h4", "Andy's Great Escape (Bwb / Barcrest) (MPU4) (8V1 0.3, hack?, set 2)", + "m4andyge_hx1", "Andy's Great Escape (Bwb / Barcrest) (MPU4) (AG5 3.0CX, hack?, set 1)", + "m4andyge_hx2", "Andy's Great Escape (Bwb / Barcrest) (MPU4) (AG5 3.0CX, hack?, set 2)", + "m4andyge_hx3", "Andy's Great Escape (Bwb / Barcrest) (MPU4) (AG5 3.0CX, hack?, set 3)", + "m4andyge_hx4", "Andy's Great Escape (Bwb / Barcrest) (MPU4) (AG5 3.0CX, hack?, set 4)", + "m4andyge_hx5", "Andy's Great Escape (Bwb / Barcrest) (MPU4) (AG__2.0CX, hack?)", + "m4andygeg5", "Andy's Great Escape (Bwb / Barcrest) (MPU4) (AG5 3.0)", + "m4andygeg5a", "Andy's Great Escape (Bwb / Barcrest) (MPU4) (AG5 3.0A)", + "m4andygeg5c", "Andy's Great Escape (Bwb / Barcrest) (MPU4) (AG5 3.0C)", + "m4andygeg5d", "Andy's Great Escape (Bwb / Barcrest) (MPU4) (AG5 3.0D)", + "m4andygeg5k", "Andy's Great Escape (Bwb / Barcrest) (MPU4) (AG5 3.0K)", + "m4andygeg5yd", "Andy's Great Escape (Bwb / Barcrest) (MPU4) (AG5 3.0YD)", + "m4andygeg_2", "Andy's Great Escape (Bwb / Barcrest) (MPU4) (AG__2.0)", + "m4andygeg_2c", "Andy's Great Escape (Bwb / Barcrest) (MPU4) (AG__2.0C)", + "m4andygeg_2d", "Andy's Great Escape (Bwb / Barcrest) (MPU4) (AG__2.0D)", + "m4andygeg_2k", "Andy's Great Escape (Bwb / Barcrest) (MPU4) (AG__2.0K)", + "m4andygeg_2yd", "Andy's Great Escape (Bwb / Barcrest) (MPU4) (AG__2.0YD)", + "m4andygegc2", "Andy's Great Escape (Bwb / Barcrest) (MPU4) (AGC 2.0)", + "m4andygegc2d", "Andy's Great Escape (Bwb / Barcrest) (MPU4) (AGC 2.0D)", + "m4andygen2_a", "Andy's Great Escape (Barcrest) (MPU4) (AN2 0.3, set 2)", + "m4andygen2c", "Andy's Great Escape (Barcrest) (MPU4) (AN2 0.3C)", + "m4andygen2d", "Andy's Great Escape (Barcrest) (MPU4) (AN2 0.3D)", + "m4andygen2k", "Andy's Great Escape (Barcrest) (MPU4) (AN2 0.3K)", + "m4andygen2y", "Andy's Great Escape (Barcrest) (MPU4) (AN2 0.3Y)", + "m4apach", "Apache (Barcrest) (MPU4 w/ Plasma DMD?)", + "m4apachg", "Apache Gold (Empire) (MPU4, set 1)", + "m4apachga", "Apache Gold (Empire) (MPU4, set 2)", + "m4apachgb", "Apache Gold (Empire) (MPU4, set 3)", + "m4apachgc", "Apache Gold (Empire) (MPU4, set 4)", + "m4apachgd", "Apache Gold (Empire) (MPU4, set 5)", + "m4apachge", "Apache Gold (Empire) (MPU4, set 6)", + "m4apachgf", "Apache Gold (Empire) (MPU4, set 7)", + "m4atlan", "Atlantis (Barcrest) (DAT, Dutch) (MPU4)", + "m4bagcsh", "Bags Of Cash Club (Crystal) (MPU4) (set 1)", + "m4bagcsha", "Bags Of Cash Club (Crystal) (MPU4) (set 2)", + "m4bagtel", "Bagatelle (Barcrest) (MPU4) (set 1)", + "m4bagtel__0", "Bagatelle (Barcrest) (MPU4) (set 28)", + "m4bagtel__1", "Bagatelle (Barcrest) (MPU4) (set 29)", + "m4bagtel__2", "Bagatelle (Barcrest) (MPU4) (set 30)", + "m4bagtel__3", "Bagatelle (Barcrest) (MPU4) (set 31)", + "m4bagtel__4", "Bagatelle (Barcrest) (MPU4) (set 32)", + "m4bagtel__5", "Bagatelle (Barcrest) (MPU4) (set 33)", + "m4bagtel__6", "Bagatelle (Barcrest) (MPU4) (set 34)", + "m4bagtel__7", "Bagatelle (Barcrest) (MPU4) (set 35)", + "m4bagtel__8", "Bagatelle (Barcrest) (MPU4) (set 36)", + "m4bagtel__9", "Bagatelle (Barcrest) (MPU4) (set 37)", + "m4bagtel__a", "Bagatelle (Barcrest) (MPU4) (set 2)", + "m4bagtel__aa", "Bagatelle (Barcrest) (MPU4) (set 38)", + "m4bagtel__ab", "Bagatelle (Barcrest) (MPU4) (set 39)", + "m4bagtel__ac", "Bagatelle (Barcrest) (MPU4) (set 40)", + "m4bagtel__ad", "Bagatelle (Barcrest) (MPU4) (set 41)", + "m4bagtel__ae", "Bagatelle (Barcrest) (MPU4) (set 42)", + "m4bagtel__af", "Bagatelle (Barcrest) (MPU4) (set 43)", + "m4bagtel__ag", "Bagatelle (Barcrest) (MPU4) (set 45)", + "m4bagtel__b", "Bagatelle (Barcrest) (MPU4) (set 3)", + "m4bagtel__c", "Bagatelle (Barcrest) (MPU4) (set 4)", + "m4bagtel__d", "Bagatelle (Barcrest) (MPU4) (set 5)", + "m4bagtel__e", "Bagatelle (Barcrest) (MPU4) (set 6)", + "m4bagtel__f", "Bagatelle (Barcrest) (MPU4) (set 7)", + "m4bagtel__g", "Bagatelle (Barcrest) (MPU4) (set 8)", + "m4bagtel__h", "Bagatelle (Barcrest) (MPU4) (set 9)", + "m4bagtel__i", "Bagatelle (Barcrest) (MPU4) (set 10)", + "m4bagtel__j", "Bagatelle (Barcrest) (MPU4) (set 11)", + "m4bagtel__k", "Bagatelle (Barcrest) (MPU4) (set 12)", + "m4bagtel__l", "Bagatelle (Barcrest) (MPU4) (set 13)", + "m4bagtel__m", "Bagatelle (Barcrest) (MPU4) (set 14)", + "m4bagtel__n", "Bagatelle (Barcrest) (MPU4) (set 15)", + "m4bagtel__o", "Bagatelle (Barcrest) (MPU4) (set 16)", + "m4bagtel__p", "Bagatelle (Barcrest) (MPU4) (set 17)", + "m4bagtel__q", "Bagatelle (Barcrest) (MPU4) (set 18)", + "m4bagtel__r", "Bagatelle (Barcrest) (MPU4) (set 19)", + "m4bagtel__s", "Bagatelle (Barcrest) (MPU4) (set 20)", + "m4bagtel__t", "Bagatelle (Barcrest) (MPU4) (set 21)", + "m4bagtel__u", "Bagatelle (Barcrest) (MPU4) (set 22)", + "m4bagtel__v", "Bagatelle (Barcrest) (MPU4) (set 23)", + "m4bagtel__w", "Bagatelle (Barcrest) (MPU4) (set 24)", + "m4bagtel__x", "Bagatelle (Barcrest) (MPU4) (set 25)", + "m4bagtel__y", "Bagatelle (Barcrest) (MPU4) (set 26)", + "m4bagtel__z", "Bagatelle (Barcrest) (MPU4) (set 27)", + "m4bandgd", "Bands Of Gold (Eurogames) (MPU4)", + "m4bangin", "Bangin' Away (Global) (MPU4, set 1)", + "m4bangina", "Bangin' Away (Global) (MPU4, set 2)", + "m4banginb", "Bangin' Away (Global) (MPU4, set 3)", + "m4bangrs", "Bangers 'n' Cash (Empire) (MPU4, set 1)", + "m4bangrsa", "Bangers 'n' Cash (Empire) (MPU4, set 2)", + "m4bangrsb", "Bangers 'n' Cash (Empire) (MPU4, set 3)", + "m4bankrd", "Bank Raid (Empire) (MPU4, set 1)", + "m4bankrda", "Bank Raid (Empire) (MPU4, set 2)", + "m4bankrdb", "Bank Raid (Empire) (MPU4, set 3)", + "m4bankrdc", "Bank Raid (Empire) (MPU4, set 4)", + "m4bankrdd", "Bank Raid (Empire) (MPU4, set 5)", + "m4barcrz", "Bar Crazy (unknown) (MPU4?)", + "m4bben", "Big Ben (Avantime?) (MPU4) (set 1)", + "m4bben__a", "Big Ben (Avantime?) (MPU4) (set 2)", + "m4bben__b", "Big Ben (Avantime?) (MPU4) (set 3)", + "m4bben__c", "Big Ben (Avantime?) (MPU4) (set 4)", + "m4bben__d", "Big Ben (Avantime?) (MPU4) (set 5)", + "m4bben__e", "Big Ben (Avantime?) (MPU4) (set 6)", + "m4bben__f", "Big Ben (Avantime?) (MPU4) (set 7)", + "m4bben__g", "Big Ben (Avantime?) (MPU4) (set 8)", + "m4bben__h", "Big Ben (Avantime?) (MPU4) (set 9)", + "m4bben__i", "Big Ben (Avantime?) (MPU4) (set 10)", + "m4bbox", "Brain Box (Avantime?) (MPU4) (set 1)", + "m4bbox__a", "Brain Box (Avantime?) (MPU4) (set 2)", + "m4bbox__b", "Brain Box (Avantime?) (MPU4) (set 3)", + "m4bbox__c", "Brain Box (Avantime?) (MPU4) (set 4)", + "m4bbox__d", "Brain Box (Avantime?) (MPU4) (set 5)", + "m4bbox__e", "Brain Box (Avantime?) (MPU4) (set 6)", + "m4bbox__f", "Brain Box (Avantime?) (MPU4) (set 7)", + "m4bbox__g", "Brain Box (Avantime?) (MPU4) (set 8)", + "m4bbox__h", "Brain Box (Avantime?) (MPU4) (set 9)", + "m4bbox__i", "Brain Box (Avantime?) (MPU4) (set 10)", + "m4bclimb", "Bear Climber (MPU4?)", + "m4bdash", "Boulder Dash (Barcrest) (MPU4) (set 1)", + "m4bdash__0", "Boulder Dash (Barcrest) (MPU4) (set 28)", + "m4bdash__1", "Boulder Dash (Barcrest) (MPU4) (set 29)", + "m4bdash__2", "Boulder Dash (Barcrest) (MPU4) (set 30)", + "m4bdash__3", "Boulder Dash (Barcrest) (MPU4) (set 31)", + "m4bdash__4", "Boulder Dash (Barcrest) (MPU4) (set 32)", + "m4bdash__5", "Boulder Dash (Barcrest) (MPU4) (set 33)", + "m4bdash__6", "Boulder Dash (Barcrest) (MPU4) (set 34)", + "m4bdash__7", "Boulder Dash (Barcrest) (MPU4) (set 35)", + "m4bdash__8", "Boulder Dash (Barcrest) (MPU4) (set 36)", + "m4bdash__9", "Boulder Dash (Barcrest) (MPU4) (set 37)", + "m4bdash__a", "Boulder Dash (Barcrest) (MPU4) (set 2)", + "m4bdash__a0", "Boulder Dash (Barcrest) (MPU4) (set 64)", + "m4bdash__a1", "Boulder Dash (Barcrest) (MPU4) (set 65)", + "m4bdash__a2", "Boulder Dash (Barcrest) (MPU4) (set 66)", + "m4bdash__a3", "Boulder Dash (Barcrest) (MPU4) (set 67)", + "m4bdash__a4", "Boulder Dash (Barcrest) (MPU4) (set 68)", + "m4bdash__aa", "Boulder Dash (Barcrest) (MPU4) (set 38)", + "m4bdash__ab", "Boulder Dash (Barcrest) (MPU4) (set 39)", + "m4bdash__ac", "Boulder Dash (Barcrest) (MPU4) (set 40)", + "m4bdash__ad", "Boulder Dash (Barcrest) (MPU4) (set 41)", + "m4bdash__ae", "Boulder Dash (Barcrest) (MPU4) (set 42)", + "m4bdash__af", "Boulder Dash (Barcrest) (MPU4) (set 43)", + "m4bdash__ag", "Boulder Dash (Barcrest) (MPU4) (set 44)", + "m4bdash__ah", "Boulder Dash (Barcrest) (MPU4) (set 45)", + "m4bdash__ai", "Boulder Dash (Barcrest) (MPU4) (set 46)", + "m4bdash__aj", "Boulder Dash (Barcrest) (MPU4) (set 47)", + "m4bdash__ak", "Boulder Dash (Barcrest) (MPU4) (set 48)", + "m4bdash__al", "Boulder Dash (Barcrest) (MPU4) (set 49)", + "m4bdash__am", "Boulder Dash (Barcrest) (MPU4) (set 50)", + "m4bdash__an", "Boulder Dash (Barcrest) (MPU4) (set 51)", + "m4bdash__ao", "Boulder Dash (Barcrest) (MPU4) (set 52)", + "m4bdash__ap", "Boulder Dash (Barcrest) (MPU4) (set 53)", + "m4bdash__aq", "Boulder Dash (Barcrest) (MPU4) (set 54)", + "m4bdash__ar", "Boulder Dash (Barcrest) (MPU4) (set 55)", + "m4bdash__as", "Boulder Dash (Barcrest) (MPU4) (set 56)", + "m4bdash__at", "Boulder Dash (Barcrest) (MPU4) (set 57)", + "m4bdash__au", "Boulder Dash (Barcrest) (MPU4) (set 58)", + "m4bdash__av", "Boulder Dash (Barcrest) (MPU4) (set 59)", + "m4bdash__aw", "Boulder Dash (Barcrest) (MPU4) (set 60)", + "m4bdash__ax", "Boulder Dash (Barcrest) (MPU4) (set 61)", + "m4bdash__ay", "Boulder Dash (Barcrest) (MPU4) (set 62)", + "m4bdash__az", "Boulder Dash (Barcrest) (MPU4) (set 63)", + "m4bdash__b", "Boulder Dash (Barcrest) (MPU4) (set 3)", + "m4bdash__c", "Boulder Dash (Barcrest) (MPU4) (set 4)", + "m4bdash__d", "Boulder Dash (Barcrest) (MPU4) (set 5)", + "m4bdash__e", "Boulder Dash (Barcrest) (MPU4) (set 6)", + "m4bdash__f", "Boulder Dash (Barcrest) (MPU4) (set 7)", + "m4bdash__g", "Boulder Dash (Barcrest) (MPU4) (set 8)", + "m4bdash__h", "Boulder Dash (Barcrest) (MPU4) (set 9)", + "m4bdash__i", "Boulder Dash (Barcrest) (MPU4) (set 10)", + "m4bdash__j", "Boulder Dash (Barcrest) (MPU4) (set 11)", + "m4bdash__k", "Boulder Dash (Barcrest) (MPU4) (set 12)", + "m4bdash__l", "Boulder Dash (Barcrest) (MPU4) (set 13)", + "m4bdash__m", "Boulder Dash (Barcrest) (MPU4) (set 14)", + "m4bdash__n", "Boulder Dash (Barcrest) (MPU4) (set 15)", + "m4bdash__o", "Boulder Dash (Barcrest) (MPU4) (set 16)", + "m4bdash__p", "Boulder Dash (Barcrest) (MPU4) (set 17)", + "m4bdash__q", "Boulder Dash (Barcrest) (MPU4) (set 18)", + "m4bdash__r", "Boulder Dash (Barcrest) (MPU4) (set 19)", + "m4bdash__s", "Boulder Dash (Barcrest) (MPU4) (set 20)", + "m4bdash__t", "Boulder Dash (Barcrest) (MPU4) (set 21)", + "m4bdash__u", "Boulder Dash (Barcrest) (MPU4) (set 22)", + "m4bdash__v", "Boulder Dash (Barcrest) (MPU4) (set 23)", + "m4bdash__w", "Boulder Dash (Barcrest) (MPU4) (set 24)", + "m4bdash__x", "Boulder Dash (Barcrest) (MPU4) (set 25)", + "m4bdash__y", "Boulder Dash (Barcrest) (MPU4) (set 26)", + "m4bdash__z", "Boulder Dash (Barcrest) (MPU4) (set 27)", + "m4berser", "Berserk (Barcrest) (MPU4) (set 1)", + "m4berser__0", "Berserk (Barcrest) (MPU4) (set 28)", + "m4berser__1", "Berserk (Barcrest) (MPU4) (set 29)", + "m4berser__a", "Berserk (Barcrest) (MPU4) (set 2)", + "m4berser__b", "Berserk (Barcrest) (MPU4) (set 3)", + "m4berser__c", "Berserk (Barcrest) (MPU4) (set 4)", + "m4berser__d", "Berserk (Barcrest) (MPU4) (set 5)", + "m4berser__e", "Berserk (Barcrest) (MPU4) (set 6)", + "m4berser__f", "Berserk (Barcrest) (MPU4) (set 7)", + "m4berser__g", "Berserk (Barcrest) (MPU4) (set 8)", + "m4berser__h", "Berserk (Barcrest) (MPU4) (set 9)", + "m4berser__i", "Berserk (Barcrest) (MPU4) (set 10)", + "m4berser__j", "Berserk (Barcrest) (MPU4) (set 11)", + "m4berser__k", "Berserk (Barcrest) (MPU4) (set 12)", + "m4berser__l", "Berserk (Barcrest) (MPU4) (set 13)", + "m4berser__m", "Berserk (Barcrest) (MPU4) (set 14)", + "m4berser__n", "Berserk (Barcrest) (MPU4) (set 15)", + "m4berser__o", "Berserk (Barcrest) (MPU4) (set 16)", + "m4berser__p", "Berserk (Barcrest) (MPU4) (set 17)", + "m4berser__q", "Berserk (Barcrest) (MPU4) (set 18)", + "m4berser__r", "Berserk (Barcrest) (MPU4) (set 19)", + "m4berser__s", "Berserk (Barcrest) (MPU4) (set 20)", + "m4berser__t", "Berserk (Barcrest) (MPU4) (set 21)", + "m4berser__u", "Berserk (Barcrest) (MPU4) (set 22)", + "m4berser__v", "Berserk (Barcrest) (MPU4) (set 23)", + "m4berser__w", "Berserk (Barcrest) (MPU4) (set 24)", + "m4berser__x", "Berserk (Barcrest) (MPU4) (set 25)", + "m4berser__y", "Berserk (Barcrest) (MPU4) (set 26)", + "m4berser__z", "Berserk (Barcrest) (MPU4) (set 27)", + "m4bigapl", "The Big Apple (Mdm) (MPU4, set 1)", + "m4bigapla", "The Big Apple (Mdm) (MPU4, set 2)", + "m4bigaplb", "The Big Apple (Mdm) (MPU4, set 3)", + "m4bigaplc", "The Big Apple (Mdm) (MPU4, set 4)", + "m4bigapld", "The Big Apple (Mdm) (MPU4, set 5)", + "m4bigaple", "The Big Apple (Mdm) (MPU4, set 6)", + "m4bigban", "Big Bandit (Nova) (MPU4)", + "m4bigben", "Big Ben (Coinworld) (MPU4, set 1)", + "m4bigbena", "Big Ben (Coinworld) (MPU4, set 2)", + "m4bigbenb", "Big Ben (Coinworld) (MPU4, set 3)", + "m4bigbend", "Big Ben (Coinworld) (MPU4, set 4)", + "m4bigbene", "Big Ben (Coinworld) (MPU4, set 5)", + "m4bigbn", "Big Ben (Barcrest) (DBB, Dutch) (MPU4)", + "m4bigchd", "Big Chief (Barcrest) [BCH, Dutch] (MPU4)", + "m4bigchf", "Big Chief (Barcrest) (MPU4 w/ Plasma DMD) (set 1)", + "m4bigchfa", "Big Chief (Barcrest) (MPU4 w/ Plasma DMD) (set 2)", + "m4bigchfb", "Big Chief (Barcrest) (MPU4 w/ Plasma DMD) (set 3)", + "m4bigchfc", "Big Chief (Barcrest) (MPU4 w/ Plasma DMD) (set 4)", + "m4bigchs", "Big Cheese (Empire) (MPU4, set 1)", + "m4bigchsa", "Big Cheese (Empire) (MPU4, set 2)", + "m4bigchsb", "Big Cheese (Empire) (MPU4, set 3)", + "m4bigmt", "The Big Match (Bwb) (MPU4) (set 1)", + "m4bigmt__a", "The Big Match (Bwb) (MPU4) (set 2)", + "m4bigmt__b", "The Big Match (Bwb) (MPU4) (set 3)", + "m4bigmt__c", "The Big Match (Bwb) (MPU4) (set 4)", + "m4bigmt__d", "The Big Match (Bwb) (MPU4) (set 5)", + "m4bigmt__e", "The Big Match (Bwb) (MPU4) (set 6)", + "m4bigmt__f", "The Big Match (Bwb) (MPU4) (set 7)", + "m4bingbl", "Bingo Belle (Bwb) (MPU4) (set 1)", + "m4bingbl__a", "Bingo Belle (Bwb) (MPU4) (set 2)", + "m4bingbl__b", "Bingo Belle (Bwb) (MPU4) (set 3)", + "m4bingbl__c", "Bingo Belle (Bwb) (MPU4) (set 4)", + "m4bingbl__d", "Bingo Belle (Bwb) (MPU4) (set 5)", + "m4bingbl__e", "Bingo Belle (Bwb) (MPU4) (set 6)", + "m4bingbl__f", "Bingo Belle (Bwb) (MPU4) (set 7)", + "m4bingbl__g", "Bingo Belle (Bwb) (MPU4) (set 8)", + "m4bingbs", "Bingo Belle Showcase (Bwb) (MPU4) (set 1)", + "m4bingbs__a", "Bingo Belle Showcase (Bwb) (MPU4) (set 2)", + "m4bingbs__b", "Bingo Belle Showcase (Bwb) (MPU4) (set 3)", + "m4bingbs__c", "Bingo Belle Showcase (Bwb) (MPU4) (set 4)", + "m4bingbs__d", "Bingo Belle Showcase (Bwb) (MPU4) (set 5)", + "m4bingbs__e", "Bingo Belle Showcase (Bwb) (MPU4) (set 6)", + "m4bingbs__f", "Bingo Belle Showcase (Bwb) (MPU4) (set 7)", + "m4bingcl", "Bingo Club (Bwb) (MPU4) (set 1)", + "m4bingcl__a", "Bingo Club (Bwb) (MPU4) (set 2)", + "m4bingcl__b", "Bingo Club (Bwb) (MPU4) (set 3)", + "m4bj", "Black Jack (Barcrest) [Dutch] (MPU4)", + "m4bjac", "Blackjack Club (Barcrest) (MPU4) (set 1)", + "m4bjaca", "Blackjack Club (Barcrest) (MPU4) (set 2)", + "m4bjack", "Black Jack (Barcrest) (MPU4) (set 1)", + "m4bjacka", "Black Jack (Barcrest) (MPU4) (set 2)", + "m4bjc", "Black Jack Club (Barcrest) (Dutch) (MPU4)", + "m4bjsm", "Blackjack Super Multi (Barcrest) (MPU4) (SM H)", + "m4bjsma", "Blackjack Super Multi (Barcrest) (MPU4)", + "m4blflsh", "Blue Flash (Bwb) (MPU4) (set 1)", + "m4blflsha", "Blue Flash (Bwb) (MPU4) (set 2)", + "m4blflshb", "Blue Flash (Bwb) (MPU4) (set 3)", + "m4blflshc", "Blue Flash (Bwb) (MPU4) (set 4)", + "m4blflshd", "Blue Flash (Bwb) (MPU4) (set 5)", + "m4blflshe", "Blue Flash (Bwb) (MPU4) (set 6)", + "m4blkbul", "Super Play (Black Bull?) (Czech) (Barcrest) [XSP] (MPU4)", + "m4blkbuld", "Gun Smoke (Barcrest) (Dutch, alt sound roms) (MPU4)", + "m4blkcat", "Black Cat (Barcrest) (Dutch) (MPU4) (DBL 1.4)", + "m4blkgd", "Black Gold (Gemini) (MPU4) (set 1)", + "m4blkgda", "Black Gold (Gemini) (MPU4) (set 2)", + "m4blkmgc", "Black Magic (Avantime?) (MPU4) (Latvia, set 1)", + "m4blkmgc_1", "Black Magic (Avantime?) (MPU4) (Latvia, set 2)", + "m4blkmgc_u1", "Black Magic (Avantime?) (MPU4) (Ukraine, set 1)", + "m4blkmgc_u2", "Black Magic (Avantime?) (MPU4) (Ukraine, set 2)", + "m4blkmgc_u3", "Black Magic (Avantime?) (MPU4) (Ukraine, set 3)", + "m4blkmgc_u4", "Black Magic (Avantime?) (MPU4) (Ukraine, set 4)", + "m4blkmgc_u5", "Black Magic (Avantime?) (MPU4) (Ukraine, set 5)", + "m4blkmgc_u6", "Black Magic (Avantime?) (MPU4) (Ukraine, set 6)", + "m4blkwhd", "Black & White (Barcrest) [Dutch] (MPU4) (DBW 1.1)", + "m4blsbys", "Blues Boys (Bwb) (MPU4) (set 1)", + "m4blsbys__0", "Blues Boys (Bwb) (MPU4) (set 28)", + "m4blsbys__1", "Blues Boys (Bwb) (MPU4) (set 29)", + "m4blsbys__2", "Blues Boys (Bwb) (MPU4) (set 30)", + "m4blsbys__3", "Blues Boys (Bwb) (MPU4) (set 31)", + "m4blsbys__4", "Blues Boys (Bwb) (MPU4) (set 32)", + "m4blsbys__5", "Blues Boys (Bwb) (MPU4) (set 33)", + "m4blsbys__6", "Blues Boys (Bwb) (MPU4) (set 34)", + "m4blsbys__7", "Blues Boys (Bwb) (MPU4) (set 35)", + "m4blsbys__8", "Blues Boys (Bwb) (MPU4) (set 36)", + "m4blsbys__9", "Blues Boys (Bwb) (MPU4) (set 37)", + "m4blsbys__a", "Blues Boys (Bwb) (MPU4) (set 2)", + "m4blsbys__aa", "Blues Boys (Bwb) (MPU4) (set 38)", + "m4blsbys__ab", "Blues Boys (Bwb) (MPU4) (set 39)", + "m4blsbys__ac", "Blues Boys (Bwb) (MPU4) (set 40)", + "m4blsbys__ad", "Blues Boys (Bwb) (MPU4) (set 41)", + "m4blsbys__b", "Blues Boys (Bwb) (MPU4) (set 3)", + "m4blsbys__c", "Blues Boys (Bwb) (MPU4) (set 4)", + "m4blsbys__d", "Blues Boys (Bwb) (MPU4) (set 5)", + "m4blsbys__e", "Blues Boys (Bwb) (MPU4) (set 6)", + "m4blsbys__f", "Blues Boys (Bwb) (MPU4) (set 7)", + "m4blsbys__g", "Blues Boys (Bwb) (MPU4) (set 8)", + "m4blsbys__h", "Blues Boys (Bwb) (MPU4) (set 9)", + "m4blsbys__i", "Blues Boys (Bwb) (MPU4) (set 10)", + "m4blsbys__j", "Blues Boys (Bwb) (MPU4) (set 11)", + "m4blsbys__k", "Blues Boys (Bwb) (MPU4) (set 12)", + "m4blsbys__l", "Blues Boys (Bwb) (MPU4) (set 13)", + "m4blsbys__m", "Blues Boys (Bwb) (MPU4) (set 14)", + "m4blsbys__n", "Blues Boys (Bwb) (MPU4) (set 15)", + "m4blsbys__o", "Blues Boys (Bwb) (MPU4) (set 16)", + "m4blsbys__p", "Blues Boys (Bwb) (MPU4) (set 17)", + "m4blsbys__q", "Blues Boys (Bwb) (MPU4) (set 18)", + "m4blsbys__r", "Blues Boys (Bwb) (MPU4) (set 19)", + "m4blsbys__s", "Blues Boys (Bwb) (MPU4) (set 20)", + "m4blsbys__t", "Blues Boys (Bwb) (MPU4) (set 21)", + "m4blsbys__u", "Blues Boys (Bwb) (MPU4) (set 22)", + "m4blsbys__v", "Blues Boys (Bwb) (MPU4) (set 23)", + "m4blsbys__w", "Blues Boys (Bwb) (MPU4) (set 24)", + "m4blsbys__x", "Blues Boys (Bwb) (MPU4) (set 25)", + "m4blsbys__y", "Blues Boys (Bwb) (MPU4) (set 26)", + "m4blsbys__z", "Blues Boys (Bwb) (MPU4) (set 27)", + "m4blstbk", "Blast A Bank (Barcrest) (MPU4)", + "m4bluedm", "Blue Diamond (Barcrest) (MPU4) (DBD1.0)", + "m4bluemn", "Blue Moon (Barcrest) (MPU4) (BLU 2.3)", + "m4bluemna", "Blue Moon (Barcrest) (MPU4) (BLU 2.1)", + "m4bluemnb", "Blue Moon (Barcrest) (MPU4) (BLU 1.1)", + "m4bluesn", "Blues Boys (Nova) (MPU4)", + "m4blztrl", "Blazing Trails (Mdm) (MPU4, set 1)", + "m4blztrla", "Blazing Trails (Mdm) (MPU4, set 2)", + "m4bnknot", "Bank A Note (Barcrest) [BN 1.0] (MPU4)", + "m4bnkrol", "Bank Roller Club (Barcrest) (MPU4) (set 1)", + "m4bnkrol__a", "Bank Roller Club (Barcrest) (MPU4) (set 2)", + "m4bnkrol__b", "Bank Roller Club (Barcrest) (MPU4) (set 3)", + "m4bnkrol__c", "Bank Roller Club (Barcrest) (MPU4) (set 4)", + "m4bnkrol__d", "Bank Roller Club (Barcrest) (MPU4) (set 5)", + "m4bnkrol__e", "Bank Roller Club (Barcrest) (MPU4) (set 6)", + "m4bodymt", "Body Match (Mdm) (MPU4)", + "m4boltbl", "Bolt From The Blue (DJE) (MPU4, set 1)", + "m4boltbla", "Bolt From The Blue (DJE) (MPU4, set 2)", + "m4boltblb", "Bolt From The Blue (DJE) (MPU4, set 3)", + "m4boltblc", "Bolt From The Blue (DJE) (MPU4, set 4)", + "m4bonzbn", "Bingo Bonanza (unknown) (MPU4?)", + "m4booze", "Booze Cruise (Extreme) (MPU4)", + "m4brdway", "Broadway (Barcrest) (DBR, Dutch) (MPU4)", + "m4brktak", "Break & Take (Barcrest) (MPU4)", + "m4brnze", "Bronze Voyage (unknown) (MPU4) (set 1)", + "m4brnzea", "Bronze Voyage (unknown) (MPU4) (set 2)", + "m4brnzeb", "Bronze Voyage (unknown) (MPU4) (set 3)", + "m4brook", "Brooklyn (Barcrest) (MPU4) (PFT 1.8)", + "m4btclok", "Beat The Clock (Barcrest) (MPU4)", + "m4buc", "Buccaneer (Barcrest) (MPU4) (set 1)", + "m4buc__0", "Buccaneer (Barcrest) (MPU4) (set 28)", + "m4buc__1", "Buccaneer (Barcrest) (MPU4) (set 29)", + "m4buc__2", "Buccaneer (Barcrest) (MPU4) (set 30)", + "m4buc__3", "Buccaneer (Barcrest) (MPU4) (set 31)", + "m4buc__4", "Buccaneer (Barcrest) (MPU4) (set 32)", + "m4buc__5", "Buccaneer (Barcrest) (MPU4) (set 33)", + "m4buc__6", "Buccaneer (Barcrest) (MPU4) (set 34)", + "m4buc__7", "Buccaneer (Barcrest) (MPU4) (set 35)", + "m4buc__8", "Buccaneer (Barcrest) (MPU4) (set 36)", + "m4buc__9", "Buccaneer (Barcrest) (MPU4) (set 37)", + "m4buc__a", "Buccaneer (Barcrest) (MPU4) (set 2)", + "m4buc__aa", "Buccaneer (Barcrest) (MPU4) (set 38)", + "m4buc__ab", "Buccaneer (Barcrest) (MPU4) (set 39)", + "m4buc__ac", "Buccaneer (Barcrest) (MPU4) (set 40)", + "m4buc__ad", "Buccaneer (Barcrest) (MPU4) (set 41)", + "m4buc__ae", "Buccaneer (Barcrest) (MPU4) (set 42)", + "m4buc__af", "Buccaneer (Barcrest) (MPU4) (set 43)", + "m4buc__ag", "Buccaneer (Barcrest) (MPU4) (set 44)", + "m4buc__ah", "Buccaneer (Barcrest) (MPU4) (set 45)", + "m4buc__ai", "Buccaneer (Barcrest) (MPU4) (set 46)", + "m4buc__aj", "Buccaneer (Barcrest) (MPU4) (set 47)", + "m4buc__ak", "Buccaneer (Barcrest) (MPU4) (set 48)", + "m4buc__al", "Buccaneer (Barcrest) (MPU4) (set 49)", + "m4buc__am", "Buccaneer (Barcrest) (MPU4) (set 50)", + "m4buc__an", "Buccaneer (Barcrest) (MPU4) (set 51)", + "m4buc__ao", "Buccaneer (Barcrest) (MPU4) (set 52)", + "m4buc__ap", "Buccaneer (Barcrest) (MPU4) (set 53)", + "m4buc__aq", "Buccaneer (Barcrest) (MPU4) (set 54)", + "m4buc__ar", "Buccaneer (Barcrest) (MPU4) (set 55)", + "m4buc__as", "Buccaneer (Barcrest) (MPU4) (set 56)", + "m4buc__at", "Buccaneer (Barcrest) (MPU4) (set 57)", + "m4buc__au", "Buccaneer (Barcrest) (MPU4) (set 58)", + "m4buc__av", "Buccaneer (Barcrest) (MPU4) (set 59)", + "m4buc__aw", "Buccaneer (Barcrest) (MPU4) (set 60)", + "m4buc__ax", "Buccaneer (Barcrest) (MPU4) (set 61)", + "m4buc__ay", "Buccaneer (Barcrest) (MPU4) (set 62)", + "m4buc__az", "Buccaneer (Barcrest) (MPU4) (set 63)", + "m4buc__b", "Buccaneer (Barcrest) (MPU4) (set 3)", + "m4buc__c", "Buccaneer (Barcrest) (MPU4) (set 4)", + "m4buc__d", "Buccaneer (Barcrest) (MPU4) (set 5)", + "m4buc__e", "Buccaneer (Barcrest) (MPU4) (set 6)", + "m4buc__f", "Buccaneer (Barcrest) (MPU4) (set 7)", + "m4buc__g", "Buccaneer (Barcrest) (MPU4) (set 8)", + "m4buc__h", "Buccaneer (Barcrest) (MPU4) (set 9)", + "m4buc__i", "Buccaneer (Barcrest) (MPU4) (set 10)", + "m4buc__j", "Buccaneer (Barcrest) (MPU4) (set 11)", + "m4buc__k", "Buccaneer (Barcrest) (MPU4) (set 12)", + "m4buc__l", "Buccaneer (Barcrest) (MPU4) (set 13)", + "m4buc__m", "Buccaneer (Barcrest) (MPU4) (set 14)", + "m4buc__n", "Buccaneer (Barcrest) (MPU4) (set 15)", + "m4buc__o", "Buccaneer (Barcrest) (MPU4) (set 16)", + "m4buc__p", "Buccaneer (Barcrest) (MPU4) (set 17)", + "m4buc__q", "Buccaneer (Barcrest) (MPU4) (set 18)", + "m4buc__r", "Buccaneer (Barcrest) (MPU4) (set 19)", + "m4buc__s", "Buccaneer (Barcrest) (MPU4) (set 20)", + "m4buc__t", "Buccaneer (Barcrest) (MPU4) (set 21)", + "m4buc__u", "Buccaneer (Barcrest) (MPU4) (set 22)", + "m4buc__v", "Buccaneer (Barcrest) (MPU4) (set 23)", + "m4buc__w", "Buccaneer (Barcrest) (MPU4) (set 24)", + "m4buc__x", "Buccaneer (Barcrest) (MPU4) (set 25)", + "m4buc__y", "Buccaneer (Barcrest) (MPU4) (set 26)", + "m4buc__z", "Buccaneer (Barcrest) (MPU4) (set 27)", + "m4bucclb", "Buccaneer Club (Crystal) (MPU4) (set 1)", + "m4bucclba", "Buccaneer Club (Crystal) (MPU4) (set 2)", + "m4bucclbb", "Buccaneer Club (Crystal) (MPU4) (set 3)", + "m4bucclbc", "Buccaneer Club (Crystal) (MPU4) (set 4)", + "m4bucks", "Bucks Fizz Club (Barcrest) (MPU4)", + "m4bullio", "Bullion Club (Crystal) (MPU4) (set 1)", + "m4bullioa", "Bullion Club (Crystal) (MPU4) (set 2)", + "m4bulliob", "Bullion Club (Crystal) (MPU4) (set 3)", + "m4c2", "Circus Circus 2 (Nova?) (MPU4)", + "m4c9", "Cloud Nine (Barcrest) (MPU4) (set 1)", + "m4c999", "Cloud 999 (Barcrest) (MPU4) (OC9 0.3, set 1)", + "m4c999a", "Cloud 999 (Barcrest) (MPU4) (OC9 0.3, set 2)", + "m4c999b", "Cloud 999 (Barcrest) (MPU4) (CLN 3.6)", + "m4c999c", "Cloud 999 (Barcrest) (MPU4) (CLN 3.0)", + "m4c9__0", "Cloud Nine (Barcrest) (MPU4) (set 28)", + "m4c9__1", "Cloud Nine (Barcrest) (MPU4) (set 29)", + "m4c9__2", "Cloud Nine (Barcrest) (MPU4) (set 30)", + "m4c9__3", "Cloud Nine (Barcrest) (MPU4) (set 31)", + "m4c9__4", "Cloud Nine (Barcrest) (MPU4) (set 32)", + "m4c9__5", "Cloud Nine (Barcrest) (MPU4) (set 33)", + "m4c9__6", "Cloud Nine (Barcrest) (MPU4) (set 34)", + "m4c9__7", "Cloud Nine (Barcrest) (MPU4) (set 35)", + "m4c9__8", "Cloud Nine (Barcrest) (MPU4) (set 36)", + "m4c9__9", "Cloud Nine (Barcrest) (MPU4) (set 37)", + "m4c9__a", "Cloud Nine (Barcrest) (MPU4) (set 2)", + "m4c9__a0", "Cloud Nine (Barcrest) (MPU4) (set 64)", + "m4c9__a1", "Cloud Nine (Barcrest) (MPU4) (set 65)", + "m4c9__a2", "Cloud Nine (Barcrest) (MPU4) (set 66)", + "m4c9__a3", "Cloud Nine (Barcrest) (MPU4) (set 67)", + "m4c9__aa", "Cloud Nine (Barcrest) (MPU4) (set 38)", + "m4c9__ab", "Cloud Nine (Barcrest) (MPU4) (set 39)", + "m4c9__ac", "Cloud Nine (Barcrest) (MPU4) (set 40)", + "m4c9__ad", "Cloud Nine (Barcrest) (MPU4) (set 41)", + "m4c9__ae", "Cloud Nine (Barcrest) (MPU4) (set 42)", + "m4c9__af", "Cloud Nine (Barcrest) (MPU4) (set 43)", + "m4c9__ag", "Cloud Nine (Barcrest) (MPU4) (set 44)", + "m4c9__ah", "Cloud Nine (Barcrest) (MPU4) (set 45)", + "m4c9__ai", "Cloud Nine (Barcrest) (MPU4) (set 46)", + "m4c9__aj", "Cloud Nine (Barcrest) (MPU4) (set 47)", + "m4c9__ak", "Cloud Nine (Barcrest) (MPU4) (set 48)", + "m4c9__al", "Cloud Nine (Barcrest) (MPU4) (set 49)", + "m4c9__am", "Cloud Nine (Barcrest) (MPU4) (set 50)", + "m4c9__an", "Cloud Nine (Barcrest) (MPU4) (set 51)", + "m4c9__ao", "Cloud Nine (Barcrest) (MPU4) (set 52)", + "m4c9__ap", "Cloud Nine (Barcrest) (MPU4) (set 53)", + "m4c9__aq", "Cloud Nine (Barcrest) (MPU4) (set 54)", + "m4c9__ar", "Cloud Nine (Barcrest) (MPU4) (set 55)", + "m4c9__as", "Cloud Nine (Barcrest) (MPU4) (set 56)", + "m4c9__at", "Cloud Nine (Barcrest) (MPU4) (set 57)", + "m4c9__au", "Cloud Nine (Barcrest) (MPU4) (set 58)", + "m4c9__av", "Cloud Nine (Barcrest) (MPU4) (set 59)", + "m4c9__aw", "Cloud Nine (Barcrest) (MPU4) (set 60)", + "m4c9__ax", "Cloud Nine (Barcrest) (MPU4) (set 61)", + "m4c9__ay", "Cloud Nine (Barcrest) (MPU4) (set 62)", + "m4c9__az", "Cloud Nine (Barcrest) (MPU4) (set 63)", + "m4c9__b", "Cloud Nine (Barcrest) (MPU4) (set 3)", + "m4c9__c", "Cloud Nine (Barcrest) (MPU4) (set 4)", + "m4c9__d", "Cloud Nine (Barcrest) (MPU4) (set 5)", + "m4c9__e", "Cloud Nine (Barcrest) (MPU4) (set 6)", + "m4c9__f", "Cloud Nine (Barcrest) (MPU4) (set 7)", + "m4c9__g", "Cloud Nine (Barcrest) (MPU4) (set 8)", + "m4c9__h", "Cloud Nine (Barcrest) (MPU4) (set 9)", + "m4c9__i", "Cloud Nine (Barcrest) (MPU4) (set 10)", + "m4c9__j", "Cloud Nine (Barcrest) (MPU4) (set 11)", + "m4c9__k", "Cloud Nine (Barcrest) (MPU4) (set 12)", + "m4c9__l", "Cloud Nine (Barcrest) (MPU4) (set 13)", + "m4c9__m", "Cloud Nine (Barcrest) (MPU4) (set 14)", + "m4c9__n", "Cloud Nine (Barcrest) (MPU4) (set 15)", + "m4c9__o", "Cloud Nine (Barcrest) (MPU4) (set 16)", + "m4c9__p", "Cloud Nine (Barcrest) (MPU4) (set 17)", + "m4c9__q", "Cloud Nine (Barcrest) (MPU4) (set 18)", + "m4c9__r", "Cloud Nine (Barcrest) (MPU4) (set 19)", + "m4c9__s", "Cloud Nine (Barcrest) (MPU4) (set 20)", + "m4c9__t", "Cloud Nine (Barcrest) (MPU4) (set 21)", + "m4c9__u", "Cloud Nine (Barcrest) (MPU4) (set 22)", + "m4c9__v", "Cloud Nine (Barcrest) (MPU4) (set 23)", + "m4c9__w", "Cloud Nine (Barcrest) (MPU4) (set 24)", + "m4c9__x", "Cloud Nine (Barcrest) (MPU4) (set 25)", + "m4c9__y", "Cloud Nine (Barcrest) (MPU4) (set 26)", + "m4c9__z", "Cloud Nine (Barcrest) (MPU4) (set 27)", + "m4c9c", "Cloud Nine Club (Barcrest) (MPU4) (CNC 2.1)", + "m4calama", "Calamari Club (Barcrest) (MPU4) (set 1)", + "m4calama__a", "Calamari Club (Barcrest) (MPU4) (set 2)", + "m4calama__b", "Calamari Club (Barcrest) (MPU4) (set 3)", + "m4calama__c", "Calamari Club (Barcrest) (MPU4) (set 4)", + "m4calama__d", "Calamari Club (Barcrest) (MPU4) (set 5)", + "m4calama__e", "Calamari Club (Barcrest) (MPU4) (set 6)", + "m4calama__f", "Calamari Club (Barcrest) (MPU4) (set 7)", + "m4calama__g", "Calamari Club (Barcrest) (MPU4) (set 8)", + "m4calama__h", "Calamari Club (Barcrest) (MPU4) (set 9)", + "m4calama__i", "Calamari Club (Barcrest) (MPU4) (set 10)", + "m4calama__j", "Calamari Club (Barcrest) (MPU4) (set 11)", + "m4calicl", "California Club (Barcrest) (MPU4) (set 1)", + "m4calicla", "California Club (Barcrest) (MPU4) (set 2)", + "m4caliclb", "California Club (Barcrest) (MPU4) (set 3)", + "m4caliclc", "California Club (Barcrest) (MPU4) (set 4)", + "m4calicld", "California Club (Barcrest) (MPU4) (set 5)", + "m4captb", "Captain Bear (MPU4?)", + "m4cardcs", "Card Cash (Barcrest) (MPU4) (CCS 1.9)", + "m4carou", "Carousel Club (Crystal) (MPU4) (set 1)", + "m4caroua", "Carousel Club (Crystal) (MPU4) (set 2)", + "m4caroub", "Carousel Club (Crystal) (MPU4) (set 3)", + "m4carouc", "Carousel Club (Crystal) (MPU4) (set 4)", + "m4cashat", "Cash Attack (Barcrest) (MPU4) (set 1)", + "m4cashat__0", "Cash Attack (Barcrest) (MPU4) (set 28)", + "m4cashat__1", "Cash Attack (Barcrest) (MPU4) (set 29)", + "m4cashat__2", "Cash Attack (Barcrest) (MPU4) (set 30)", + "m4cashat__3", "Cash Attack (Barcrest) (MPU4) (set 31)", + "m4cashat__4", "Cash Attack (Barcrest) (MPU4) (set 32)", + "m4cashat__5", "Cash Attack (Barcrest) (MPU4) (set 33)", + "m4cashat__6", "Cash Attack (Barcrest) (MPU4) (set 34)", + "m4cashat__7", "Cash Attack (Barcrest) (MPU4) (set 35)", + "m4cashat__8", "Cash Attack (Barcrest) (MPU4) (set 36)", + "m4cashat__9", "Cash Attack (Barcrest) (MPU4) (set 37)", + "m4cashat__a", "Cash Attack (Barcrest) (MPU4) (set 2)", + "m4cashat__aa", "Cash Attack (Barcrest) (MPU4) (set 38)", + "m4cashat__ab", "Cash Attack (Barcrest) (MPU4) (set 39)", + "m4cashat__ac", "Cash Attack (Barcrest) (MPU4) (set 40)", + "m4cashat__ad", "Cash Attack (Barcrest) (MPU4) (set 41)", + "m4cashat__ae", "Cash Attack (Barcrest) (MPU4) (set 42)", + "m4cashat__af", "Cash Attack (Barcrest) (MPU4) (set 43)", + "m4cashat__ag", "Cash Attack (Barcrest) (MPU4) (set 44)", + "m4cashat__ah", "Cash Attack (Barcrest) (MPU4) (set 45)", + "m4cashat__ai", "Cash Attack (Barcrest) (MPU4) (set 46)", + "m4cashat__aj", "Cash Attack (Barcrest) (MPU4) (set 47)", + "m4cashat__ak", "Cash Attack (Barcrest) (MPU4) (set 48)", + "m4cashat__al", "Cash Attack (Barcrest) (MPU4) (set 49)", + "m4cashat__am", "Cash Attack (Barcrest) (MPU4) (set 50)", + "m4cashat__an", "Cash Attack (Barcrest) (MPU4) (set 51)", + "m4cashat__ao", "Cash Attack (Barcrest) (MPU4) (set 52)", + "m4cashat__ap", "Cash Attack (Barcrest) (MPU4) (set 53)", + "m4cashat__aq", "Cash Attack (Barcrest) (MPU4) (set 54)", + "m4cashat__ar", "Cash Attack (Barcrest) (MPU4) (set 55)", + "m4cashat__b", "Cash Attack (Barcrest) (MPU4) (set 3)", + "m4cashat__c", "Cash Attack (Barcrest) (MPU4) (set 4)", + "m4cashat__d", "Cash Attack (Barcrest) (MPU4) (set 5)", + "m4cashat__e", "Cash Attack (Barcrest) (MPU4) (set 6)", + "m4cashat__f", "Cash Attack (Barcrest) (MPU4) (set 7)", + "m4cashat__g", "Cash Attack (Barcrest) (MPU4) (set 8)", + "m4cashat__h", "Cash Attack (Barcrest) (MPU4) (set 9)", + "m4cashat__i", "Cash Attack (Barcrest) (MPU4) (set 10)", + "m4cashat__j", "Cash Attack (Barcrest) (MPU4) (set 11)", + "m4cashat__k", "Cash Attack (Barcrest) (MPU4) (set 12)", + "m4cashat__l", "Cash Attack (Barcrest) (MPU4) (set 13)", + "m4cashat__m", "Cash Attack (Barcrest) (MPU4) (set 14)", + "m4cashat__n", "Cash Attack (Barcrest) (MPU4) (set 15)", + "m4cashat__o", "Cash Attack (Barcrest) (MPU4) (set 16)", + "m4cashat__p", "Cash Attack (Barcrest) (MPU4) (set 17)", + "m4cashat__q", "Cash Attack (Barcrest) (MPU4) (set 18)", + "m4cashat__r", "Cash Attack (Barcrest) (MPU4) (set 19)", + "m4cashat__s", "Cash Attack (Barcrest) (MPU4) (set 20)", + "m4cashat__t", "Cash Attack (Barcrest) (MPU4) (set 21)", + "m4cashat__u", "Cash Attack (Barcrest) (MPU4) (set 22)", + "m4cashat__v", "Cash Attack (Barcrest) (MPU4) (set 23)", + "m4cashat__w", "Cash Attack (Barcrest) (MPU4) (set 24)", + "m4cashat__x", "Cash Attack (Barcrest) (MPU4) (set 25)", + "m4cashat__y", "Cash Attack (Barcrest) (MPU4) (set 26)", + "m4cashat__z", "Cash Attack (Barcrest) (MPU4) (set 27)", + "m4cashcn", "Cash Connect (Barcrest) (MPU4) (CCO 3.2)", + "m4cashco", "Cash Counter (Barcrest) (MPU4) (C3 2.4)", + "m4cashcoa", "Cash Counter (Barcrest) (MPU4) (C3 1.8)", + "m4cashcob", "Cash Counter (Barcrest) (MPU4) (CO 0.5)", + "m4cashcoc", "Cash Counter (Barcrest) (MPU4) (C3 3.1)", + "m4cashcod", "Cash Connect (Barcrest) (MPU4) (C3 2.0)", + "m4cashln", "Cash Lines (Barcrest) (MPU4) (set 1)", + "m4cashln__0", "Cash Lines (Barcrest) (MPU4) (set 28)", + "m4cashln__1", "Cash Lines (Barcrest) (MPU4) (set 29)", + "m4cashln__2", "Cash Lines (Barcrest) (MPU4) (set 30)", + "m4cashln__3", "Cash Lines (Barcrest) (MPU4) (set 31)", + "m4cashln__4", "Cash Lines (Barcrest) (MPU4) (set 32)", + "m4cashln__5", "Cash Lines (Barcrest) (MPU4) (set 33)", + "m4cashln__6", "Cash Lines (Barcrest) (MPU4) (set 34)", + "m4cashln__7", "Cash Lines (Barcrest) (MPU4) (set 35)", + "m4cashln__8", "Cash Lines (Barcrest) (MPU4) (set 36)", + "m4cashln__9", "Cash Lines (Barcrest) (MPU4) (set 37)", + "m4cashln__a", "Cash Lines (Barcrest) (MPU4) (set 2)", + "m4cashln__a0", "Cash Lines (Barcrest) (MPU4) (set 64)", + "m4cashln__a1", "Cash Lines (Barcrest) (MPU4) (set 65)", + "m4cashln__a2", "Cash Lines (Barcrest) (MPU4) (set 66)", + "m4cashln__a3", "Cash Lines (Barcrest) (MPU4) (set 67)", + "m4cashln__a4", "Cash Lines (Barcrest) (MPU4) (set 68)", + "m4cashln__a5", "Cash Lines (Barcrest) (MPU4) (set 69)", + "m4cashln__a6", "Cash Lines (Barcrest) (MPU4) (set 70)", + "m4cashln__a7", "Cash Lines (Barcrest) (MPU4) (set 71)", + "m4cashln__a8", "Cash Lines (Barcrest) (MPU4) (set 72)", + "m4cashln__a9", "Cash Lines (Barcrest) (MPU4) (set 73)", + "m4cashln__aa", "Cash Lines (Barcrest) (MPU4) (set 38)", + "m4cashln__ab", "Cash Lines (Barcrest) (MPU4) (set 39)", + "m4cashln__ac", "Cash Lines (Barcrest) (MPU4) (set 40)", + "m4cashln__ad", "Cash Lines (Barcrest) (MPU4) (set 41)", + "m4cashln__ae", "Cash Lines (Barcrest) (MPU4) (set 42)", + "m4cashln__af", "Cash Lines (Barcrest) (MPU4) (set 43)", + "m4cashln__ag", "Cash Lines (Barcrest) (MPU4) (set 44)", + "m4cashln__ah", "Cash Lines (Barcrest) (MPU4) (set 45)", + "m4cashln__ai", "Cash Lines (Barcrest) (MPU4) (set 46)", + "m4cashln__aj", "Cash Lines (Barcrest) (MPU4) (set 47)", + "m4cashln__ak", "Cash Lines (Barcrest) (MPU4) (set 48)", + "m4cashln__al", "Cash Lines (Barcrest) (MPU4) (set 49)", + "m4cashln__am", "Cash Lines (Barcrest) (MPU4) (set 50)", + "m4cashln__an", "Cash Lines (Barcrest) (MPU4) (set 51)", + "m4cashln__ao", "Cash Lines (Barcrest) (MPU4) (set 52)", + "m4cashln__ap", "Cash Lines (Barcrest) (MPU4) (set 53)", + "m4cashln__aq", "Cash Lines (Barcrest) (MPU4) (set 54)", + "m4cashln__ar", "Cash Lines (Barcrest) (MPU4) (set 55)", + "m4cashln__as", "Cash Lines (Barcrest) (MPU4) (set 56)", + "m4cashln__at", "Cash Lines (Barcrest) (MPU4) (set 57)", + "m4cashln__au", "Cash Lines (Barcrest) (MPU4) (set 58)", + "m4cashln__av", "Cash Lines (Barcrest) (MPU4) (set 59)", + "m4cashln__aw", "Cash Lines (Barcrest) (MPU4) (set 60)", + "m4cashln__ax", "Cash Lines (Barcrest) (MPU4) (set 61)", + "m4cashln__ay", "Cash Lines (Barcrest) (MPU4) (set 62)", + "m4cashln__az", "Cash Lines (Barcrest) (MPU4) (set 63)", + "m4cashln__b", "Cash Lines (Barcrest) (MPU4) (set 3)", + "m4cashln__ba", "Cash Lines (Barcrest) (MPU4) (set 74)", + "m4cashln__bb", "Cash Lines (Barcrest) (MPU4) (set 75)", + "m4cashln__bc", "Cash Lines (Barcrest) (MPU4) (set 76)", + "m4cashln__bd", "Cash Lines (Barcrest) (MPU4) (set 77)", + "m4cashln__be", "Cash Lines (Barcrest) (MPU4) (set 78)", + "m4cashln__bf", "Cash Lines (Barcrest) (MPU4) (set 79)", + "m4cashln__bg", "Cash Lines (Barcrest) (MPU4) (set 80)", + "m4cashln__bh", "Cash Lines (Barcrest) (MPU4) (set 81)", + "m4cashln__bi", "Cash Lines (Barcrest) (MPU4) (set 82)", + "m4cashln__bj", "Cash Lines (Barcrest) (MPU4) (set 83)", + "m4cashln__c", "Cash Lines (Barcrest) (MPU4) (set 4)", + "m4cashln__d", "Cash Lines (Barcrest) (MPU4) (set 5)", + "m4cashln__e", "Cash Lines (Barcrest) (MPU4) (set 6)", + "m4cashln__f", "Cash Lines (Barcrest) (MPU4) (set 7)", + "m4cashln__g", "Cash Lines (Barcrest) (MPU4) (set 8)", + "m4cashln__h", "Cash Lines (Barcrest) (MPU4) (set 9)", + "m4cashln__i", "Cash Lines (Barcrest) (MPU4) (set 10)", + "m4cashln__j", "Cash Lines (Barcrest) (MPU4) (set 11)", + "m4cashln__k", "Cash Lines (Barcrest) (MPU4) (set 12)", + "m4cashln__l", "Cash Lines (Barcrest) (MPU4) (set 13)", + "m4cashln__m", "Cash Lines (Barcrest) (MPU4) (set 14)", + "m4cashln__n", "Cash Lines (Barcrest) (MPU4) (set 15)", + "m4cashln__o", "Cash Lines (Barcrest) (MPU4) (set 16)", + "m4cashln__p", "Cash Lines (Barcrest) (MPU4) (set 17)", + "m4cashln__q", "Cash Lines (Barcrest) (MPU4) (set 18)", + "m4cashln__r", "Cash Lines (Barcrest) (MPU4) (set 19)", + "m4cashln__s", "Cash Lines (Barcrest) (MPU4) (set 20)", + "m4cashln__t", "Cash Lines (Barcrest) (MPU4) (set 21)", + "m4cashln__u", "Cash Lines (Barcrest) (MPU4) (set 22)", + "m4cashln__v", "Cash Lines (Barcrest) (MPU4) (set 23)", + "m4cashln__w", "Cash Lines (Barcrest) (MPU4) (set 24)", + "m4cashln__x", "Cash Lines (Barcrest) (MPU4) (set 25)", + "m4cashln__y", "Cash Lines (Barcrest) (MPU4) (set 26)", + "m4cashln__z", "Cash Lines (Barcrest) (MPU4) (set 27)", + "m4cashmn", "Cash Machine (Barcrest) (MPU4) (set 1)", + "m4cashmn__0", "Cash Machine (Barcrest) (MPU4) (set 28)", + "m4cashmn__1", "Cash Machine (Barcrest) (MPU4) (set 29)", + "m4cashmn__2", "Cash Machine (Barcrest) (MPU4) (set 30)", + "m4cashmn__3", "Cash Machine (Barcrest) (MPU4) (set 31)", + "m4cashmn__4", "Cash Machine (Barcrest) (MPU4) (set 32)", + "m4cashmn__5", "Cash Machine (Barcrest) (MPU4) (set 33)", + "m4cashmn__6", "Cash Machine (Barcrest) (MPU4) (set 34)", + "m4cashmn__7", "Cash Machine (Barcrest) (MPU4) (set 35)", + "m4cashmn__8", "Cash Machine (Barcrest) (MPU4) (set 36)", + "m4cashmn__9", "Cash Machine (Barcrest) (MPU4) (set 37)", + "m4cashmn__a", "Cash Machine (Barcrest) (MPU4) (set 2)", + "m4cashmn__aa", "Cash Machine (Barcrest) (MPU4) (set 38)", + "m4cashmn__ab", "Cash Machine (Barcrest) (MPU4) (set 39)", + "m4cashmn__ac", "Cash Machine (Barcrest) (MPU4) (set 40)", + "m4cashmn__ad", "Cash Machine (Barcrest) (MPU4) (set 41)", + "m4cashmn__ae", "Cash Machine (Barcrest) (MPU4) (set 42)", + "m4cashmn__af", "Cash Machine (Barcrest) (MPU4) (set 43)", + "m4cashmn__ag", "Cash Machine (Barcrest) (MPU4) (set 44)", + "m4cashmn__ah", "Cash Machine (Barcrest) (MPU4) (set 45)", + "m4cashmn__ai", "Cash Machine (Barcrest) (MPU4) (set 46)", + "m4cashmn__aj", "Cash Machine (Barcrest) (MPU4) (set 47)", + "m4cashmn__ak", "Cash Machine (Barcrest) (MPU4) (set 48)", + "m4cashmn__al", "Cash Machine (Barcrest) (MPU4) (set 49)", + "m4cashmn__b", "Cash Machine (Barcrest) (MPU4) (set 3)", + "m4cashmn__c", "Cash Machine (Barcrest) (MPU4) (set 4)", + "m4cashmn__d", "Cash Machine (Barcrest) (MPU4) (set 5)", + "m4cashmn__e", "Cash Machine (Barcrest) (MPU4) (set 6)", + "m4cashmn__f", "Cash Machine (Barcrest) (MPU4) (set 7)", + "m4cashmn__g", "Cash Machine (Barcrest) (MPU4) (set 8)", + "m4cashmn__h", "Cash Machine (Barcrest) (MPU4) (set 9)", + "m4cashmn__i", "Cash Machine (Barcrest) (MPU4) (set 10)", + "m4cashmn__j", "Cash Machine (Barcrest) (MPU4) (set 11)", + "m4cashmn__k", "Cash Machine (Barcrest) (MPU4) (set 12)", + "m4cashmn__l", "Cash Machine (Barcrest) (MPU4) (set 13)", + "m4cashmn__m", "Cash Machine (Barcrest) (MPU4) (set 14)", + "m4cashmn__n", "Cash Machine (Barcrest) (MPU4) (set 15)", + "m4cashmn__o", "Cash Machine (Barcrest) (MPU4) (set 16)", + "m4cashmn__p", "Cash Machine (Barcrest) (MPU4) (set 17)", + "m4cashmn__q", "Cash Machine (Barcrest) (MPU4) (set 18)", + "m4cashmn__r", "Cash Machine (Barcrest) (MPU4) (set 19)", + "m4cashmn__s", "Cash Machine (Barcrest) (MPU4) (set 20)", + "m4cashmn__t", "Cash Machine (Barcrest) (MPU4) (set 21)", + "m4cashmn__u", "Cash Machine (Barcrest) (MPU4) (set 22)", + "m4cashmn__v", "Cash Machine (Barcrest) (MPU4) (set 23)", + "m4cashmn__w", "Cash Machine (Barcrest) (MPU4) (set 24)", + "m4cashmn__x", "Cash Machine (Barcrest) (MPU4) (set 25)", + "m4cashmn__y", "Cash Machine (Barcrest) (MPU4) (set 26)", + "m4cashmn__z", "Cash Machine (Barcrest) (MPU4) (set 27)", + "m4cashmn__za", "Cash Machine (Barcrest) (MPU4) (CMH 0.6Y, hack?)", + "m4cashmn__zb", "Cash Machine (Barcrest) (MPU4) (CMA 0.7C, hack?)", + "m4cashmx", "Cash Matrix (Barcrest) (MPU4) (CM 1.7, set 1)", + "m4cashmxa", "Cash Matrix (Barcrest) (MPU4) (CM 1.7, set 2)", + "m4cashzn", "Cash Zone (Barcrest) (MPU4) (CAZ 1.2)", + "m4cashzna", "Cash Zone (Barcrest) (MPU4) (CAZ 1.5)", + "m4casmul", "Casino Multiplay (Barcrest) (MPU4)", + "m4casot", "Old Timer (Barcrest) (Dutch, alt 'Black and White' sound roms) (DOT1.1)", + "m4cbing", "Cherry Bingo (Redpoint Systems) (MPU4)", + "m4ccc", "Criss Cross Crazy (Coinworld) (MPU4?)", + "m4cclimb", "Crazy Climber (Crystal) (MPU4) (set 1)", + "m4cclimba", "Crazy Climber (Crystal) (MPU4) (set 2)", + "m4ccop", "Cash Cops (MPU4?) (set 1)", + "m4ccopa", "Cash Cops (MPU4?) (set 2)", + "m4ccopb", "Cash Cops (MPU4?) (set 3)", + "m4celclb", "Celebration Club (Barcrest) (MPU4)", + "m4centpt", "Centrepoint (Barcrest) (v1.3) (MPU4)", + "m4centpta", "Centrepoint (Barcrest) (v1.5) (MPU4)", + "m4ceptr", "Ceptor (Barcrest) (Dutch) (MPU4) (DCE 1.0)", + "m4cfinln", "Cup Final (Nova) (MPU4) (set 1)", + "m4cfinln__a", "Cup Final (Nova) (MPU4) (set 2)", + "m4ch30", "unknown MPU4 'CH3 0.1' (Barcrest) (MPU4)", + "m4chacec", "Chase The Ace [Cards] (Empire) (MPU4, set 1)", + "m4chaceca", "Chase The Ace [Cards] (Empire) (MPU4, set 2)", + "m4chacef", "Chase The Ace [Fruits] (Empire) (MPU4, set 1)", + "m4chacefa", "Chase The Ace [Fruits] (Empire) (MPU4, set 2)", + "m4chacefb", "Chase The Ace [Fruits] (Empire) (MPU4, set 3)", + "m4chacefc", "Chase The Ace [Fruits] (Empire) (MPU4, set 4)", + "m4chasei", "Chase Invaders (Barcrest) (MPU4) (set 1)", + "m4chaseia", "Chase Invaders (Barcrest) (MPU4) (set 2)", + "m4chaseib", "Chase Invaders (Barcrest) (MPU4) (set 3)", + "m4chaseic", "Chase Invaders (Barcrest) (MPU4) (set 4)", + "m4chaseid", "Chase Invaders (Barcrest) (MPU4) (set 5)", + "m4chaseie", "Chase Invaders (Barcrest) (MPU4) (set 6)", + "m4chaseif", "Chase Invaders (Barcrest) (MPU4) (set 7)", + "m4cheryo", "Cherryo (Barcrest) (DCH, Dutch) (MPU4)", + "m4clab", "Cash Lab (Qps) (MPU4) (set 1)", + "m4clab__a", "Cash Lab (Qps) (MPU4) (set 2)", + "m4clab__b", "Cash Lab (Qps) (MPU4) (set 3)", + "m4clab__c", "Cash Lab (Qps) (MPU4) (set 4)", + "m4clab__d", "Cash Lab (Qps) (MPU4) (set 5)", + "m4clab__e", "Cash Lab (Qps) (MPU4) (set 6)", + "m4clab__f", "Cash Lab (Qps) (MPU4) (set 7)", + "m4clab__g", "Cash Lab (Qps) (MPU4) (set 8)", + "m4clab__h", "Cash Lab (Qps) (MPU4) (set 9)", + "m4clab__i", "Cash Lab (Qps) (MPU4) (set 10)", + "m4clab__j", "Cash Lab (Qps) (MPU4) (set 11)", + "m4class", "First Class (Barcrest) [DFC, Dutch] (MPU4) (set 1)", + "m4classa", "First Class (Barcrest) [DFC, Dutch] (MPU4) (set 2)", + "m4clbclm", "Club Climber (Barcrest) (MPU4, C1C 3.3)", + "m4clbclma", "Club Climber (Barcrest) (MPU4, CC 4.5)", + "m4clbcls", "Club Classic (Barcrest) (MPU4)", + "m4clbcnt", "Club Connect (Barcrest) (MPU4) (set 1)", + "m4clbcnta", "Club Connect (Barcrest) (MPU4) (set 2)", + "m4clbcntb", "Club Connect (Barcrest) (MPU4) (set 3)", + "m4clbcntc", "Club Connect (Barcrest) (MPU4) (set 4)", + "m4clbcntd", "Club Connect (Barcrest) (MPU4) (set 5)", + "m4clbdbl", "Club Double (Barcrest) (MPU4) (CD 1.6)", + "m4clbrpl", "Club Replay (PCP) (MPU4) (01)", + "m4clbshf", "Club Shuffle (Barcrest) (MPU4)", + "m4clbveg", "Club Vegas (Barcrest) (MPU4) (set 1)", + "m4clbvega", "Club Vegas (Barcrest) (MPU4) (set 2)", + "m4clbvegb", "Club Vegas (Barcrest) (MPU4) (set 3)", + "m4clbvegc", "Club Vegas (Barcrest) (MPU4) (set 4)", + "m4clbx", "Club X (Barcrest) (MPU4) (set 1)", + "m4clbxa", "Club X (Barcrest) (MPU4) (set 2)", + "m4clbxb", "Club X (Barcrest) (MPU4) (set 3)", + "m4cld02", "unknown MPU4 'CLD 0.2C' (MPU4?)", + "m4click", "Clickity Click (Barcrest) (MPU4 w/ Plasma DMD)", + "m4clr", "MPU4 Meter Clear ROM", + "m4cmont", "Casino Monte Carlo (Avantime?) (MPU4) (Czech, set 1)", + "m4cmont_1", "Casino Monte Carlo (Avantime?) (MPU4) (Czech, set 2)", + "m4cmont_10", "Casino Monte Carlo (Avantime?) (MPU4) (Czech, set 11)", + "m4cmont_11", "Casino Monte Carlo (Avantime?) (MPU4) (Czech, set 12)", + "m4cmont_12", "Casino Monte Carlo (Avantime?) (MPU4) (Czech, set 13)", + "m4cmont_13", "Casino Monte Carlo (Avantime?) (MPU4) (Czech, set 14)", + "m4cmont_2", "Casino Monte Carlo (Avantime?) (MPU4) (Czech, set 3)", + "m4cmont_3", "Casino Monte Carlo (Avantime?) (MPU4) (Czech, set 4)", + "m4cmont_4", "Casino Monte Carlo (Avantime?) (MPU4) (Czech, set 5)", + "m4cmont_5", "Casino Monte Carlo (Avantime?) (MPU4) (Czech, set 6)", + "m4cmont_6", "Casino Monte Carlo (Avantime?) (MPU4) (Czech, set 7)", + "m4cmont_7", "Casino Monte Carlo (Avantime?) (MPU4) (Czech, set 8)", + "m4cmont_8", "Casino Monte Carlo (Avantime?) (MPU4) (Czech, set 9)", + "m4cmont_9", "Casino Monte Carlo (Avantime?) (MPU4) (Czech, set 10)", + "m4cmont_gt1", "Casino Monte Carlo (Avantime?) (MPU4) (GTR, set 1)", + "m4cmont_gt2", "Casino Monte Carlo (Avantime?) (MPU4) (GTR, set 2)", + "m4cmont_gt3", "Casino Monte Carlo (Avantime?) (MPU4) (GTR, set 3)", + "m4cmont_l1", "Casino Monte Carlo (Avantime?) (MPU4) (Latvia, set 1)", + "m4cmont_l10", "Casino Monte Carlo (Avantime?) (MPU4) (Latvia, set 10)", + "m4cmont_l11", "Casino Monte Carlo (Avantime?) (MPU4) (Latvia, set 11)", + "m4cmont_l12", "Casino Monte Carlo (Avantime?) (MPU4) (Latvia, set 12)", + "m4cmont_l13", "Casino Monte Carlo (Avantime?) (MPU4) (Latvia, set 13)", + "m4cmont_l14", "Casino Monte Carlo (Avantime?) (MPU4) (Latvia, set 14)", + "m4cmont_l15", "Casino Monte Carlo (Avantime?) (MPU4) (Latvia, set 15)", + "m4cmont_l16", "Casino Monte Carlo (Avantime?) (MPU4) (Latvia, set 16)", + "m4cmont_l2", "Casino Monte Carlo (Avantime?) (MPU4) (Latvia, set 2)", + "m4cmont_l3", "Casino Monte Carlo (Avantime?) (MPU4) (Latvia, set 3)", + "m4cmont_l4", "Casino Monte Carlo (Avantime?) (MPU4) (Latvia, set 4)", + "m4cmont_l5", "Casino Monte Carlo (Avantime?) (MPU4) (Latvia, set 5)", + "m4cmont_l6", "Casino Monte Carlo (Avantime?) (MPU4) (Latvia, set 6)", + "m4cmont_l7", "Casino Monte Carlo (Avantime?) (MPU4) (Latvia, set 7)", + "m4cmont_l8", "Casino Monte Carlo (Avantime?) (MPU4) (Latvia, set 8)", + "m4cmont_l9", "Casino Monte Carlo (Avantime?) (MPU4) (Latvia, set 9)", + "m4cmont_r1", "Casino Monte Carlo (Avantime?) (MPU4) (Russia, set 1)", + "m4cmont_r2", "Casino Monte Carlo (Avantime?) (MPU4) (Russia, set 2)", + "m4cmont_r3", "Casino Monte Carlo (Avantime?) (MPU4) (Russia, set 3)", + "m4cmont_r4", "Casino Monte Carlo (Avantime?) (MPU4) (Russia, set 4)", + "m4cmont_r5", "Casino Monte Carlo (Avantime?) (MPU4) (Russia, set 5)", + "m4cmont_r6", "Casino Monte Carlo (Avantime?) (MPU4) (Russia, set 6)", + "m4cmont_r7", "Casino Monte Carlo (Avantime?) (MPU4) (Russia, set 7)", + "m4cmont_r8", "Casino Monte Carlo (Avantime?) (MPU4) (Russia, set 8)", + "m4cmont_u1", "Casino Monte Carlo (Avantime?) (MPU4) (Ukraine, set 1)", + "m4cmont_u10", "Casino Monte Carlo (Avantime?) (MPU4) (Ukraine, set 10)", + "m4cmont_u11", "Casino Monte Carlo (Avantime?) (MPU4) (Ukraine, set 11)", + "m4cmont_u12", "Casino Monte Carlo (Avantime?) (MPU4) (Ukraine, set 12)", + "m4cmont_u13", "Casino Monte Carlo (Avantime?) (MPU4) (Ukraine, set 13)", + "m4cmont_u14", "Casino Monte Carlo (Avantime?) (MPU4) (Ukraine, set 14)", + "m4cmont_u15", "Casino Monte Carlo (Avantime?) (MPU4) (Ukraine, set 15)", + "m4cmont_u16", "Casino Monte Carlo (Avantime?) (MPU4) (Ukraine, set 16)", + "m4cmont_u17", "Casino Monte Carlo (Avantime?) (MPU4) (Ukraine, set 17)", + "m4cmont_u18", "Casino Monte Carlo (Avantime?) (MPU4) (Ukraine, set 18)", + "m4cmont_u19", "Casino Monte Carlo (Avantime?) (MPU4) (Ukraine, set 19)", + "m4cmont_u2", "Casino Monte Carlo (Avantime?) (MPU4) (Ukraine, set 2)", + "m4cmont_u20", "Casino Monte Carlo (Avantime?) (MPU4) (Ukraine, set 20)", + "m4cmont_u21", "Casino Monte Carlo (Avantime?) (MPU4) (Ukraine, set 21)", + "m4cmont_u22", "Casino Monte Carlo (Avantime?) (MPU4) (Ukraine, set 22)", + "m4cmont_u23", "Casino Monte Carlo (Avantime?) (MPU4) (Ukraine, set 23)", + "m4cmont_u24", "Casino Monte Carlo (Avantime?) (MPU4) (Ukraine, set 24)", + "m4cmont_u25", "Casino Monte Carlo (Avantime?) (MPU4) (Ukraine, set 25)", + "m4cmont_u26", "Casino Monte Carlo (Avantime?) (MPU4) (Ukraine, set 26)", + "m4cmont_u27", "Casino Monte Carlo (Avantime?) (MPU4) (Ukraine, set 27)", + "m4cmont_u3", "Casino Monte Carlo (Avantime?) (MPU4) (Ukraine, set 3)", + "m4cmont_u4", "Casino Monte Carlo (Avantime?) (MPU4) (Ukraine, set 4)", + "m4cmont_u5", "Casino Monte Carlo (Avantime?) (MPU4) (Ukraine, set 5)", + "m4cmont_u6", "Casino Monte Carlo (Avantime?) (MPU4) (Ukraine, set 6)", + "m4cmont_u7", "Casino Monte Carlo (Avantime?) (MPU4) (Ukraine, set 7)", + "m4cmont_u8", "Casino Monte Carlo (Avantime?) (MPU4) (Ukraine, set 8)", + "m4cmont_u9", "Casino Monte Carlo (Avantime?) (MPU4) (Ukraine, set 9)", + "m4cojok", "Carry On Joker (Barcrest) (MPU4) (set 1)", + "m4cojok__a", "Carry On Joker (Barcrest) (MPU4) (set 2)", + "m4cojok__b", "Carry On Joker (Barcrest) (MPU4) (set 3)", + "m4cojok__c", "Carry On Joker (Barcrest) (MPU4) (set 4)", + "m4cojok__d", "Carry On Joker (Barcrest) (MPU4) (set 5)", + "m4cojok__e", "Carry On Joker (Barcrest) (MPU4) (set 6)", + "m4cojok__f", "Carry On Joker (Barcrest) (MPU4) (set 7)", + "m4coloss", "Colossus (Mdm) (MPU4, set 1)", + "m4colossa", "Colossus (Mdm) (MPU4, set 2)", + "m4colossb", "Colossus (Mdm) (MPU4, set 3)", + "m4colossc", "Colossus (Mdm) (MPU4, set 4)", + "m4colossd", "Colossus (Mdm) (MPU4, set 5)", + "m4colosse", "Colossus (Mdm) (MPU4, set 6)", + "m4colossf", "Colossus (Mdm) (MPU4, set 7)", + "m4colossg", "Colossus (Mdm) (MPU4, set 8)", + "m4coney", "Coney Island (Qps) (MPU4)", + "m4conn4", "Connect 4", + "m4copcsh", "Coppa Cash (Barcrest) (MPU4) (FC 2.0)", + "m4coscas", "Cosmic Casino (Barcrest) (MPU4) (set 1)", + "m4coscas__a", "Cosmic Casino (Barcrest) (MPU4) (set 2)", + "m4coscas__b", "Cosmic Casino (Barcrest) (MPU4) (set 3)", + "m4coscas__c", "Cosmic Casino (Barcrest) (MPU4) (set 4)", + "m4coscas__d", "Cosmic Casino (Barcrest) (MPU4) (set 5)", + "m4coscas__e", "Cosmic Casino (Barcrest) (MPU4) (set 6)", + "m4coscas__f", "Cosmic Casino (Barcrest) (MPU4) (set 7)", + "m4coscas__g", "Cosmic Casino (Barcrest) (MPU4) (set 8)", + "m4coscas__h", "Cosmic Casino (Barcrest) (MPU4) (set 9)", + "m4coscas__i", "Cosmic Casino (Barcrest) (MPU4) (set 10)", + "m4coscas__j", "Cosmic Casino (Barcrest) (MPU4) (set 11)", + "m4coscas__k", "Cosmic Casino (Barcrest) (MPU4) (set 12)", + "m4coscas__l", "Cosmic Casino (Barcrest) (MPU4) (set 13)", + "m4coscas__m", "Cosmic Casino (Barcrest) (MPU4) (set 14)", + "m4coscas__n", "Cosmic Casino (Barcrest) (MPU4) (set 15)", + "m4coscas__o", "Cosmic Casino (Barcrest) (MPU4) (set 16)", + "m4coscas__p", "Cosmic Casino (Barcrest) (MPU4) (set 17)", + "m4coscas__q", "Cosmic Casino (Barcrest) (MPU4) (set 18)", + "m4coscas__r", "Cosmic Casino (Barcrest) (MPU4) (set 19)", + "m4coscas__s", "Cosmic Casino (Barcrest) (MPU4) (set 20)", + "m4coscas__t", "Cosmic Casino (Barcrest) (MPU4) (set 21)", + "m4coscas__u", "Cosmic Casino (Barcrest) (MPU4) (set 22)", + "m4coscas__v", "Cosmic Casino (Barcrest) (MPU4) (set 23)", + "m4cpfinl", "Cup Final (Bwb) (MPU4) (set 1)", + "m4cpfinl__a", "Cup Final (Bwb) (MPU4) (set 2)", + "m4cpfinl__b", "Cup Final (Bwb) (MPU4) (set 3)", + "m4cpfinl__c", "Cup Final (Bwb) (MPU4) (set 4)", + "m4cpfinl__d", "Cup Final (Bwb) (MPU4) (set 5)", + "m4cpfinl__e", "Cup Final (Bwb) (MPU4) (set 6)", + "m4cpfinl__f", "Cup Final (Bwb) (MPU4) (set 7)", + "m4cpfinl__g", "Cup Final (Bwb) (MPU4) (set 8)", + "m4cpfinl__h", "Cup Final (Bwb) (MPU4) (set 9)", + "m4cpfinl__i", "Cup Final (Bwb) (MPU4) (set 10)", + "m4cpfinl__j", "Cup Final (Bwb) (MPU4) (set 11)", + "m4cpfinl__k", "Cup Final (Bwb) (MPU4) (set 12)", + "m4cpycat", "Copy Cat (Barcrest) (MPU4) (set 1)", + "m4cpycat__0", "Copy Cat (Barcrest) (MPU4) (set 28)", + "m4cpycat__1", "Copy Cat (Barcrest) (MPU4) (set 29)", + "m4cpycat__2", "Copy Cat (Barcrest) (MPU4) (set 30)", + "m4cpycat__3", "Copy Cat (Barcrest) (MPU4) (set 31)", + "m4cpycat__4", "Copy Cat (Barcrest) (MPU4) (set 32)", + "m4cpycat__5", "Copy Cat (Barcrest) (MPU4) (set 33)", + "m4cpycat__6", "Copy Cat (Barcrest) (MPU4) (set 34)", + "m4cpycat__7", "Copy Cat (Barcrest) (MPU4) (set 35)", + "m4cpycat__8", "Copy Cat (Barcrest) (MPU4) (set 36)", + "m4cpycat__a", "Copy Cat (Barcrest) (MPU4) (set 2)", + "m4cpycat__b", "Copy Cat (Barcrest) (MPU4) (set 3)", + "m4cpycat__c", "Copy Cat (Barcrest) (MPU4) (set 4)", + "m4cpycat__d", "Copy Cat (Barcrest) (MPU4) (set 5)", + "m4cpycat__e", "Copy Cat (Barcrest) (MPU4) (set 6)", + "m4cpycat__f", "Copy Cat (Barcrest) (MPU4) (set 7)", + "m4cpycat__g", "Copy Cat (Barcrest) (MPU4) (set 8)", + "m4cpycat__h", "Copy Cat (Barcrest) (MPU4) (set 9)", + "m4cpycat__i", "Copy Cat (Barcrest) (MPU4) (set 10)", + "m4cpycat__j", "Copy Cat (Barcrest) (MPU4) (set 11)", + "m4cpycat__k", "Copy Cat (Barcrest) (MPU4) (set 12)", + "m4cpycat__l", "Copy Cat (Barcrest) (MPU4) (set 13)", + "m4cpycat__m", "Copy Cat (Barcrest) (MPU4) (set 14)", + "m4cpycat__n", "Copy Cat (Barcrest) (MPU4) (set 15)", + "m4cpycat__o", "Copy Cat (Barcrest) (MPU4) (set 16)", + "m4cpycat__p", "Copy Cat (Barcrest) (MPU4) (set 17)", + "m4cpycat__q", "Copy Cat (Barcrest) (MPU4) (set 18)", + "m4cpycat__r", "Copy Cat (Barcrest) (MPU4) (set 19)", + "m4cpycat__s", "Copy Cat (Barcrest) (MPU4) (set 20)", + "m4cpycat__t", "Copy Cat (Barcrest) (MPU4) (set 21)", + "m4cpycat__u", "Copy Cat (Barcrest) (MPU4) (set 22)", + "m4cpycat__v", "Copy Cat (Barcrest) (MPU4) (set 23)", + "m4cpycat__w", "Copy Cat (Barcrest) (MPU4) (set 24)", + "m4cpycat__x", "Copy Cat (Barcrest) (MPU4) (set 25)", + "m4cpycat__y", "Copy Cat (Barcrest) (MPU4) (set 26)", + "m4cpycat__z", "Copy Cat (Barcrest) (MPU4) (set 27)", + "m4crdome", "Crystal Dome (Barcrest) (MPU4) (set 1)", + "m4crdome__a", "Crystal Dome (Barcrest) (MPU4) (set 2)", + "m4crdome__b", "Crystal Dome (Barcrest) (MPU4) (set 3)", + "m4crdome__c", "Crystal Dome (Barcrest) (MPU4) (set 4)", + "m4crdome__d", "Crystal Dome (Barcrest) (MPU4) (set 5)", + "m4crdome__e", "Crystal Dome (Barcrest) (MPU4) (set 6)", + "m4crdome__f", "Crystal Dome (Barcrest) (MPU4) (set 7)", + "m4crdome__g", "Crystal Dome (Barcrest) (MPU4) (set 8)", + "m4crdome__h", "Crystal Dome (Barcrest) (MPU4) (set 9)", + "m4crdome__i", "Crystal Dome (Barcrest) (MPU4) (set 10)", + "m4crdome__j", "Crystal Dome (Barcrest) (MPU4) (set 11)", + "m4crdome__k", "Crystal Dome (Barcrest) (MPU4) (set 12)", + "m4crdome__l", "Crystal Dome (Barcrest) (MPU4) (set 13)", + "m4crdome__m", "Crystal Dome (Barcrest) (MPU4) (set 14)", + "m4crdome__n", "Crystal Dome (Barcrest) (MPU4) (set 15)", + "m4crfire", "Crossfire (Empire) (MPU4, set 1)", + "m4crfirea", "Crossfire (Empire) (MPU4, set 2)", + "m4crjwl", "Crown Jewels Club (Barcrest) (MPU4) (set 1)", + "m4crjwl2", "Crown Jewels Mk II Club (Barcrest) (MPU4) (set 1)", + "m4crjwl2a", "Crown Jewels Mk II Club (Barcrest) (MPU4) (set 2)", + "m4crjwl2b", "Crown Jewels Mk II Club (Barcrest) (MPU4) (set 3)", + "m4crjwla", "Crown Jewels Club (Barcrest) (MPU4) (set 2)", + "m4crjwlb", "Crown Jewels Club (Barcrest) (MPU4) (set 3)", + "m4crjwlc", "Crown Jewels Club (Barcrest) (MPU4) (set 4)", + "m4crkpot", "Crackpot 100 Club (Barcrest) (MPU4) (set 1, C1P 1.2)", + "m4crkpota", "Crackpot 100 Club (Barcrest) (MPU4) (set 2, CP 3.8)", + "m4crkpotb", "Crackpot 100 Club (Barcrest) (MPU4) (set 3, CP 3.1)", + "m4crmaze", "Crystal Maze (Barcrest) (MPU4) (CRM 3.0)", + "m4crmaze__c", "Crystal Maze (Barcrest) (MPU4) (CRM 2.3)", + "m4crmaze__d", "Crystal Maze (Barcrest) (MPU4) (CRM 3.0AD)", + "m4crmaze__e", "Crystal Maze (Barcrest) (MPU4) (CRM 3.0B)", + "m4crmaze__f", "Crystal Maze (Barcrest) (MPU4) (CRM 3.0BD)", + "m4crmaze__g", "Crystal Maze (Barcrest) (MPU4) (CRM 3.0C)", + "m4crmaze__h", "Crystal Maze (Barcrest) (MPU4) (CRM 3.0D)", + "m4crmaze__i", "Crystal Maze (Barcrest) (MPU4) (CRM 3.0KD)", + "m4crmaze__j", "Crystal Maze (Barcrest) (MPU4) (CRM 3.0YD)", + "m4crmaze__k", "Crystal Maze (Barcrest) (MPU4) (CRM 3.0K)", + "m4crmaze__l", "Crystal Maze (Barcrest) (MPU4) (CRM 3.0Y)", + "m4crmaze__m", "Crystal Maze (Barcrest) (MPU4) (CRM 3.0, hack?)", + "m4crmaze__n", "Crystal Maze (Bwb / Barcrest) (MPU4) (CRC 0.7, hack?)", + "m4crmaze__o", "Crystal Maze (Bwb / Barcrest) (MPU4) (CR5 1.0, hack?)", + "m4crmaze__p", "Crystal Maze (Bwb / Barcrest) (MPU4) (CRC 1.3, hack?)", + "m4crmaze__q", "Crystal Maze (Bwb / Barcrest) (MPU4) (CR5 2.0, hack?, set 1)", + "m4crmaze__r", "Crystal Maze (Bwb / Barcrest) (MPU4) (CR5 2.0, hack?, set 2)", + "m4crmaze__s", "Crystal Maze (Bwb / Barcrest) (MPU4) (CR8 1.2, hack?)", + "m4crzbn", "Crazy Bingo (Union) (MPU4)", + "m4crzcap", "Crazy Capers (Empire) (MPU4, set 1)", + "m4crzcapa", "Crazy Capers (Empire) (MPU4, set 2)", + "m4crzcapb", "Crazy Capers (Empire) (MPU4, set 3)", + "m4crzcapc", "Crazy Capers (Empire) (MPU4, set 4)", + "m4crzcav", "Crazy Cavern (Nova) (MPU4)", + "m4crzcl", "Crazy Climber Club (Crystal) (MPU4) (set 1)", + "m4crzcla", "Crazy Climber Club (Crystal) (MPU4) (set 2)", + "m4crzclb", "Crazy Climber Club (Crystal) (MPU4) (set 3)", + "m4crzclc", "Crazy Climber Club (Crystal) (MPU4) (set 4)", + "m4crzcld", "Crazy Climber Club (Crystal) (MPU4) (set 5)", + "m4crzcsn", "Crazy Casino (Nova) (MPU4)", + "m4crzjk", "Crazy Jokers (Nova?) (MPU4)", + "m4crzjwl", "Crown Jewels (Barcrest) (German) (MPU4) (set 1)", + "m4crzjwla", "Crown Jewels (Barcrest) (German) (MPU4) (set 2)", + "m4crzjwlb", "Crown Jewels (Barcrest) (German) (MPU4) (set 3)", + "m4crzjwlc", "Crown Jewels (Barcrest) (German) (MPU4) (set 4)", + "m4crzjwld", "Crown Jewels (Barcrest) (German) (MPU4) (set 5)", + "m4crzjwle", "Crown Jewels (Barcrest) (German) (MPU4) (set 6)", + "m4crzjwlf", "Crown Jewels (Barcrest) (German) (MPU4) (set 7)", + "m4crzjwlg", "Crown Jewels (Barcrest) (German) (MPU4) (set 8)", + "m4crzjwlh", "Crown Jewels (Barcrest) (German) (MPU4) (set 9)", + "m4cshenc", "Cash Encounters (Barcrest) (MPU4) (set 1)", + "m4cshenc__a", "Cash Encounters (Barcrest) (MPU4) (set 2)", + "m4cshenc__b", "Cash Encounters (Barcrest) (MPU4) (set 3)", + "m4cshenc__c", "Cash Encounters (Barcrest) (MPU4) (set 4)", + "m4cshenc__d", "Cash Encounters (Barcrest) (MPU4) (set 5)", + "m4cshino", "Cashino Deluxe (Pcp) (MPU4)", + "m4csoc", "Championship Soccer (Bwb) (MPU4) (set 1)", + "m4csoc__a", "Championship Soccer (Bwb) (MPU4) (set 2)", + "m4csoc__b", "Championship Soccer (Bwb) (MPU4) (set 3)", + "m4csoc__c", "Championship Soccer (Bwb) (MPU4) (set 4)", + "m4csoc__d", "Championship Soccer (Bwb) (MPU4) (set 5)", + "m4csoc__e", "Championship Soccer (Bwb) (MPU4) (set 6)", + "m4csoc__f", "Championship Soccer (Bwb) (MPU4) (set 7)", + "m4csoc__g", "Championship Soccer (Bwb) (MPU4) (set 8)", + "m4csoc__h", "Championship Soccer (Bwb) (MPU4) (set 9)", + "m4csoc__i", "Championship Soccer (Bwb) (MPU4) (set 10)", + "m4csoc__j", "Championship Soccer (Bwb) (MPU4) (set 11)", + "m4cstrik", "Cash Strike (Empire) (MPU4, set 1)", + "m4cstrika", "Cash Strike (Empire) (MPU4, set 2)", + "m4cstrikb", "Cash Strike (Empire) (MPU4, set 3)", + "m4cstrikc", "Cash Strike (Empire) (MPU4, set 4)", + "m4ctn", "Tuppenny Nudger Classic (Mdm?) (MPU4)", + "m4cwalk", "Cake Walk (Union) (MPU4)", + "m4czne", "Cash Zone (Bwb) (MPU4)", + "m4danced", "Dancing Diamonds (Bwb) (MPU4) (set 1)", + "m4danced__a", "Dancing Diamonds (Bwb) (MPU4) (set 2)", + "m4danced__b", "Dancing Diamonds (Bwb) (MPU4) (set 3)", + "m4danced__c", "Dancing Diamonds (Bwb) (MPU4) (set 4)", + "m4danced__d", "Dancing Diamonds (Bwb) (MPU4) (set 5)", + "m4danced__e", "Dancing Diamonds (Bwb) (MPU4) (set 6)", + "m4danced__f", "Dancing Diamonds (Bwb) (MPU4) (set 7)", + "m4danced__g", "Dancing Diamonds (Bwb) (MPU4) (set 8)", + "m4danced__h", "Dancing Diamonds (Bwb) (MPU4) (set 9)", + "m4danced__i", "Dancing Diamonds (Bwb) (MPU4) (set 10)", + "m4danced__j", "Dancing Diamonds (Bwb) (MPU4) (set 11)", + "m4danced__k", "Dancing Diamonds (Bwb) (MPU4) (set 12)", + "m4danced__l", "Dancing Diamonds (Bwb) (MPU4) (set 13)", + "m4danced__m", "Dancing Diamonds (Bwb) (MPU4) (set 14)", + "m4danced__n", "Dancing Diamonds (Bwb) (MPU4) (set 15)", + "m4danced__o", "Dancing Diamonds (Bwb) (MPU4) (set 16)", + "m4danced__p", "Dancing Diamonds (Bwb) (MPU4) (set 17)", + "m4danced__q", "Dancing Diamonds (Bwb) (MPU4) (set 18)", + "m4danced__r", "Dancing Diamonds (Bwb) (MPU4) (set 19)", + "m4danced__s", "Dancing Diamonds (Bwb) (MPU4) (set 20)", + "m4danced__t", "Dancing Diamonds (Bwb) (MPU4) (set 21)", + "m4danced__u", "Dancing Diamonds (Bwb) (MPU4) (set 22)", + "m4danced__v", "Dancing Diamonds (Bwb) (MPU4) (set 23)", + "m4danced__w", "Dancing Diamonds (Bwb) (MPU4) (set 24)", + "m4daytn", "Daytona (Bwb) (MPU4) (set 1)", + "m4daytn__a", "Daytona (Bwb) (MPU4) (set 2)", + "m4daytn__b", "Daytona (Bwb) (MPU4) (set 3)", + "m4daytn__c", "Daytona (Bwb) (MPU4) (set 4)", + "m4daytn__d", "Daytona (Bwb) (MPU4) (set 5)", + "m4daytn__e", "Daytona (Bwb) (MPU4) (set 6)", + "m4daytn__f", "Daytona (Bwb) (MPU4) (set 7)", + "m4daytn__g", "Daytona (Bwb) (MPU4) (set 8)", + "m4daytn__h", "Daytona (Bwb) (MPU4) (set 9)", + "m4daytn__i", "Daytona (Bwb) (MPU4) (set 10)", + "m4daytn__j", "Daytona (Bwb) (MPU4) (set 11)", + "m4daytn__k", "Daytona (Bwb) (MPU4) (set 12)", + "m4daytn__l", "Daytona (Bwb) (MPU4) (set 13)", + "m4daytn__m", "Daytona (Bwb) (MPU4) (set 14)", + "m4daytn__n", "Daytona (Bwb) (MPU4) (set 15)", + "m4dbl9", "Double 9's (Barcrest) (MPU4) (set 1)", + "m4dbl9a", "Double 9's (Barcrest) (MPU4) (set 2)", + "m4dblchn", "Double Chance (DJE) (MPU4)", + "m4dbldm", "Double Diamond Club (Barcrest) (MPU4) (set 1)", + "m4dbldm__a", "Double Diamond Club (Barcrest) (MPU4) (set 2)", + "m4dbldm__b", "Double Diamond Club (Barcrest) (MPU4) (set 3)", + "m4dbldm__c", "Double Diamond Club (Barcrest) (MPU4) (set 4)", + "m4dblup", "Double Up (Barcrest) (MPU4) (DU 1.5)", + "m4dcrls", "Double Crazy Reels (Qps) (MPU4) (set 1)", + "m4dcrls__a", "Double Crazy Reels (Qps) (MPU4) (set 2)", + "m4dcrls__b", "Double Crazy Reels (Qps) (MPU4) (set 3)", + "m4dcrls__c", "Double Crazy Reels (Qps) (MPU4) (set 4)", + "m4dcrls__d", "Double Crazy Reels (Qps) (MPU4) (set 5)", + "m4dcrls__e", "Double Crazy Reels (Qps) (MPU4) (set 6)", + "m4dcrls__f", "Double Crazy Reels (Qps) (MPU4) (set 7)", + "m4dcrls__g", "Double Crazy Reels (Qps) (MPU4) (set 8)", + "m4dcrls__h", "Double Crazy Reels (Qps) (MPU4) (set 9)", + "m4dcrls__i", "Double Crazy Reels (Qps) (MPU4) (set 10)", + "m4dcrls__j", "Double Crazy Reels (Qps) (MPU4) (set 11)", + "m4dcrls__k", "Double Crazy Reels (Qps) (MPU4) (set 12)", + "m4dcrls__l", "Double Crazy Reels (Qps) (MPU4) (set 13)", + "m4dcrls__m", "Double Crazy Reels (Qps) (MPU4) (set 14)", + "m4dcrls__n", "Double Crazy Reels (Qps) (MPU4) (set 15)", + "m4dcrls__o", "Double Crazy Reels (Qps) (MPU4) (set 16)", + "m4dcrls__p", "Double Crazy Reels (Qps) (MPU4) (set 17)", + "m4dcrls__q", "Double Crazy Reels (Qps) (MPU4) (set 18)", + "m4dcrls__r", "Double Crazy Reels (Qps) (MPU4) (set 19)", + "m4ddb", "Ding Dong Bells (Coinworld) (MPU4) (set 1)", + "m4ddba", "Ding Dong Bells (Coinworld) (MPU4) (set 2)", + "m4denmen", "Dennis The Menace (Barcrest) (MPU4) (DEN 1.2)", + "m4denmen_h1", "Dennis The Menace (Barcrest) (MPU4) (DMT 0.1, hack?)", + "m4denmen_h2", "Dennis The Menace (Barcrest) (MPU4) (V1 0.1, hack, set 1)", + "m4denmen_h3", "Dennis The Menace (Barcrest) (MPU4) (V1 0.1, hack, set 2)", + "m4denmend5", "Dennis The Menace (Barcrest) (MPU4) (DM5 0.1))", + "m4denmend5ad", "Dennis The Menace (Barcrest) (MPU4) (DM5 0.1AD)", + "m4denmend5b", "Dennis The Menace (Barcrest) (MPU4) (DM5 0.1B)", + "m4denmend5bd", "Dennis The Menace (Barcrest) (MPU4) (DM5 0.1BD)", + "m4denmend5d", "Dennis The Menace (Barcrest) (MPU4) (DM5 0.1D)", + "m4denmend5k", "Dennis The Menace (Barcrest) (MPU4) (DM5 0.1K)", + "m4denmend5kd", "Dennis The Menace (Barcrest) (MPU4) (DM5 0.1KD)", + "m4denmend5y", "Dennis The Menace (Barcrest) (MPU4) (DM5 0.1Y)", + "m4denmend5yd", "Dennis The Menace (Barcrest) (MPU4) (DM5 0.1YD)", + "m4denmend8", "Dennis The Menace (Barcrest) (MPU4) (DM8 0.1)", + "m4denmend8c", "Dennis The Menace (Barcrest) (MPU4) (DM8 0.1C)", + "m4denmend8d", "Dennis The Menace (Barcrest) (MPU4) (DM8 0.1D)", + "m4denmend8k", "Dennis The Menace (Barcrest) (MPU4) (DM8 0.1K)", + "m4denmend8y", "Dennis The Menace (Barcrest) (MPU4) (DM8 0.1Y)", + "m4denmend8yd", "Dennis The Menace (Barcrest) (MPU4) (DM8 0.1YD)", + "m4denmendnb", "Dennis The Menace (Barcrest) (MPU4) (DEN 1.2B)", + "m4denmendnc", "Dennis The Menace (Barcrest) (MPU4) (DEN 1.2C)", + "m4denmendnd", "Dennis The Menace (Barcrest) (MPU4) (DEN 1.2D)", + "m4denmendnk", "Dennis The Menace (Barcrest) (MPU4) (DEN 1.2K)", + "m4denmendny", "Dennis The Menace (Barcrest) (MPU4) (DEN 1.2Y)", + "m4denmendt", "Dennis The Menace (Barcrest) (MPU4) (DMT 0.1)", + "m4denmendtad", "Dennis The Menace (Barcrest) (MPU4) (DMT 0.1AD)", + "m4denmendtb", "Dennis The Menace (Barcrest) (MPU4) (DMT 0.1B)", + "m4denmendtbd", "Dennis The Menace (Barcrest) (MPU4) (DMT 0.1BD)", + "m4denmendtd", "Dennis The Menace (Barcrest) (MPU4) (DMT 0.1D)", + "m4denmendtk", "Dennis The Menace (Barcrest) (MPU4) (DMT 0.1K)", + "m4denmendtkd", "Dennis The Menace (Barcrest) (MPU4) (DMT 0.1KD)", + "m4denmendty", "Dennis The Menace (Barcrest) (MPU4) (DMT 0.1Y)", + "m4denmendtyd", "Dennis The Menace (Barcrest) (MPU4) (DMT 0.1YD)", + "m4dnj", "Double Nudge (unknown) (MPU4) (set 1)", + "m4dnja", "Double Nudge (unknown) (MPU4) (set 2)", + "m4dnjb", "Double Nudge (unknown) (MPU4) (set 3)", + "m4drac", "Dracula (Barcrest - Nova) (German) (MPU4) (set 1)", + "m4draca", "Dracula (Barcrest - Nova) (German) (MPU4) (set 2)", + "m4dracb", "Dracula (Barcrest - Nova) (German) (MPU4) (set 3)", + "m4dragon", "Dragon (Nova) (MPU4)", + "m4dtyfre", "Duty Free (Barcrest) (MPU4) (DUT 0.4)", + "m4dtyfre_h1", "Duty Free (Bwb / Barcrest) (MPU4) (DF4 4.1, hack?)", + "m4dtyfre_h2", "Duty Free (Barcrest) (MPU4) (DFT 0.1, hack?)", + "m4dtyfrebwb", "Duty Free (Bwb / Barcrest) (MPU4) (DF10 4.3, set 1)", + "m4dtyfrebwb_a", "Duty Free (Bwb / Barcrest) (MPU4) (DF10 4.3, set 2)", + "m4dtyfrebwb_b", "Duty Free (Bwb / Barcrest) (MPU4) (DF8 4.2)", + "m4dtyfrebwb_c", "Duty Free (Bwb / Barcrest) (MPU4) (DF8 2.2, set 1)", + "m4dtyfrebwb_d", "Duty Free (Bwb / Barcrest) (MPU4) (DF8 2.2, set 2)", + "m4dtyfrebwb_e", "Duty Free (Bwb / Barcrest) (MPU4) (DF4 4.1)", + "m4dtyfrebwb_f", "Duty Free (Bwb / Barcrest) (MPU4) (DF4 2.1)", + "m4dtyfrebwb_g", "Duty Free (Bwb / Barcrest) (MPU4) (DF4 1.1)", + "m4dtyfrebwb_h", "Duty Free (Bwb / Barcrest) (MPU4) (DFC 2.3)", + "m4dtyfref5", "Duty Free (Barcrest) (MPU4) (DF5 0.3)", + "m4dtyfref5ad", "Duty Free (Barcrest) (MPU4) (DF5 0.3AD)", + "m4dtyfref5b", "Duty Free (Barcrest) (MPU4) (DF5 0.3B)", + "m4dtyfref5bd", "Duty Free (Barcrest) (MPU4) (DF5 0.3BD)", + "m4dtyfref5d", "Duty Free (Barcrest) (MPU4) (DF5 0.3D)", + "m4dtyfref5k", "Duty Free (Barcrest) (MPU4) (DF5 0.3K)", + "m4dtyfref5kd", "Duty Free (Barcrest) (MPU4) (DF5 0.3KD)", + "m4dtyfref5r", "Duty Free (Barcrest) (MPU4) (DF5 0.3R)", + "m4dtyfref5rd", "Duty Free (Barcrest) (MPU4) (DF5 0.3RD)", + "m4dtyfref5y", "Duty Free (Barcrest) (MPU4) (DF5 0.3Y)", + "m4dtyfref5yd", "Duty Free (Barcrest) (MPU4) (DF5 0.3YD)", + "m4dtyfref8", "Duty Free (Barcrest) (MPU4) (DF8 0.1)", + "m4dtyfref8c", "Duty Free (Barcrest) (MPU4) (DF8 0.1C)", + "m4dtyfref8d", "Duty Free (Barcrest) (MPU4) (DF8 0.1D)", + "m4dtyfref8k", "Duty Free (Barcrest) (MPU4) (DF8 0.1K)", + "m4dtyfref8y", "Duty Free (Barcrest) (MPU4) (DF8 0.1Y)", + "m4dtyfref8yd", "Duty Free (Barcrest) (MPU4) (DF8 0.1YD)", + "m4dtyfreft", "Duty Free (Barcrest) (MPU4) (DFT 0.1)", + "m4dtyfreftad", "Duty Free (Barcrest) (MPU4) (DFT 0.1AD)", + "m4dtyfreftb", "Duty Free (Barcrest) (MPU4) (DFT 0.1B)", + "m4dtyfreftbd", "Duty Free (Barcrest) (MPU4) (DFT 0.1BD)", + "m4dtyfreftd", "Duty Free (Barcrest) (MPU4) (DFT 0.1D)", + "m4dtyfreftk", "Duty Free (Barcrest) (MPU4) (DFT 0.1K)", + "m4dtyfreftkd", "Duty Free (Barcrest) (MPU4) (DFT 0.1KD)", + "m4dtyfrefty", "Duty Free (Barcrest) (MPU4) (DFT 0.1Y)", + "m4dtyfreftyd", "Duty Free (Barcrest) (MPU4) (DFT 0.1YD)", + "m4dtyfreutb", "Duty Free (Barcrest) (MPU4) (DUT 0.4B)", + "m4dtyfreutc", "Duty Free (Barcrest) (MPU4) (DUT 0.4C)", + "m4dtyfrexd", "Duty Free (Barcrest) (MPU4) (XD5 0.2)", + "m4dtyfrexd_a", "Duty Free (Barcrest) (MPU4) (XD5 0.1)", + "m4dtyfrexdad", "Duty Free (Barcrest) (MPU4) (XD5 0.2AD)", + "m4dtyfrexdb", "Duty Free (Barcrest) (MPU4) (XD5 0.2B)", + "m4dtyfrexdbd", "Duty Free (Barcrest) (MPU4) (XD5 0.2BD)", + "m4dtyfrexdc", "Duty Free (Barcrest) (MPU4) (XD5 0.2C)", + "m4dtyfrexdd", "Duty Free (Barcrest) (MPU4) (XD5 0.2D)", + "m4dtyfrexdk", "Duty Free (Barcrest) (MPU4) (XD5 0.2K)", + "m4dtyfrexdkd", "Duty Free (Barcrest) (MPU4) (XD5 0.2KD)", + "m4dtyfrexdr", "Duty Free (Barcrest) (MPU4) (XD5 0.2R)", + "m4dtyfrexdrd", "Duty Free (Barcrest) (MPU4) (XD5 0.2RD)", + "m4dtyfrexdy", "Duty Free (Barcrest) (MPU4) (XD5 0.2Y)", + "m4dtyfrexdyd", "Duty Free (Barcrest) (MPU4) (XD5 0.2YD)", + "m4dtyfrexf", "Duty Free (Barcrest) (MPU4) (XFT 0.1)", + "m4dtyfrexfad", "Duty Free (Barcrest) (MPU4) (XFT 0.1AD)", + "m4dtyfrexfb", "Duty Free (Barcrest) (MPU4) (XFT 0.1B)", + "m4dtyfrexfbd", "Duty Free (Barcrest) (MPU4) (XFT 0.1BD)", + "m4dtyfrexfc", "Duty Free (Barcrest) (MPU4) (XFT 0.1C)", + "m4dtyfrexfd", "Duty Free (Barcrest) (MPU4) (XFT 0.1D)", + "m4dtyfrexfk", "Duty Free (Barcrest) (MPU4) (XFT 0.1K)", + "m4dtyfrexfkd", "Duty Free (Barcrest) (MPU4) (XFT 0.1KD)", + "m4dtyfrexfr", "Duty Free (Barcrest) (MPU4) (XFT 0.1R)", + "m4dtyfrexfrd", "Duty Free (Barcrest) (MPU4) (XFT 0.1RD)", + "m4dtyfrexfy", "Duty Free (Barcrest) (MPU4) (XFT 0.1Y)", + "m4dtyfrexfyd", "Duty Free (Barcrest) (MPU4) (XFT 0.1YD)", + "m4dz", "Danger Zone (Crystal) (MPU4)", + "m4eaw", "Everyone's A Winner (Barcrest) (MPU4) (set 1)", + "m4eaw__0", "Everyone's A Winner (Barcrest) (MPU4) (set 28)", + "m4eaw__1", "Everyone's A Winner (Barcrest) (MPU4) (set 29)", + "m4eaw__2", "Everyone's A Winner (Barcrest) (MPU4) (set 30)", + "m4eaw__3", "Everyone's A Winner (Barcrest) (MPU4) (set 31)", + "m4eaw__4", "Everyone's A Winner (Barcrest) (MPU4) (set 32)", + "m4eaw__5", "Everyone's A Winner (Barcrest) (MPU4) (set 33)", + "m4eaw__6", "Everyone's A Winner (Barcrest) (MPU4) (set 34)", + "m4eaw__7", "Everyone's A Winner (Barcrest) (MPU4) (set 35)", + "m4eaw__8", "Everyone's A Winner (Barcrest) (MPU4) (set 36)", + "m4eaw__9", "Everyone's A Winner (Barcrest) (MPU4) (set 37)", + "m4eaw__a", "Everyone's A Winner (Barcrest) (MPU4) (set 2)", + "m4eaw__a0", "Everyone's A Winner (Barcrest) (MPU4) (set 64)", + "m4eaw__a1", "Everyone's A Winner (Barcrest) (MPU4) (set 65)", + "m4eaw__a2", "Everyone's A Winner (Barcrest) (MPU4) (set 66)", + "m4eaw__a3", "Everyone's A Winner (Barcrest) (MPU4) (set 67)", + "m4eaw__a4", "Everyone's A Winner (Barcrest) (MPU4) (set 68)", + "m4eaw__a5", "Everyone's A Winner (Barcrest) (MPU4) (set 69)", + "m4eaw__a6", "Everyone's A Winner (Barcrest) (MPU4) (set 70)", + "m4eaw__a7", "Everyone's A Winner (Barcrest) (MPU4) (set 71)", + "m4eaw__a8", "Everyone's A Winner (Barcrest) (MPU4) (set 72)", + "m4eaw__a9", "Everyone's A Winner (Barcrest) (MPU4) (set 73)", + "m4eaw__aa", "Everyone's A Winner (Barcrest) (MPU4) (set 38)", + "m4eaw__ab", "Everyone's A Winner (Barcrest) (MPU4) (set 39)", + "m4eaw__ac", "Everyone's A Winner (Barcrest) (MPU4) (set 40)", + "m4eaw__ad", "Everyone's A Winner (Barcrest) (MPU4) (set 41)", + "m4eaw__ae", "Everyone's A Winner (Barcrest) (MPU4) (set 42)", + "m4eaw__af", "Everyone's A Winner (Barcrest) (MPU4) (set 43)", + "m4eaw__ag", "Everyone's A Winner (Barcrest) (MPU4) (set 44)", + "m4eaw__ah", "Everyone's A Winner (Barcrest) (MPU4) (set 45)", + "m4eaw__ai", "Everyone's A Winner (Barcrest) (MPU4) (set 46)", + "m4eaw__aj", "Everyone's A Winner (Barcrest) (MPU4) (set 47)", + "m4eaw__ak", "Everyone's A Winner (Barcrest) (MPU4) (set 48)", + "m4eaw__al", "Everyone's A Winner (Barcrest) (MPU4) (set 49)", + "m4eaw__am", "Everyone's A Winner (Barcrest) (MPU4) (set 50)", + "m4eaw__an", "Everyone's A Winner (Barcrest) (MPU4) (set 51)", + "m4eaw__ao", "Everyone's A Winner (Barcrest) (MPU4) (set 52)", + "m4eaw__ap", "Everyone's A Winner (Barcrest) (MPU4) (set 53)", + "m4eaw__aq", "Everyone's A Winner (Barcrest) (MPU4) (set 54)", + "m4eaw__ar", "Everyone's A Winner (Barcrest) (MPU4) (set 55)", + "m4eaw__as", "Everyone's A Winner (Barcrest) (MPU4) (set 56)", + "m4eaw__at", "Everyone's A Winner (Barcrest) (MPU4) (set 57)", + "m4eaw__au", "Everyone's A Winner (Barcrest) (MPU4) (set 58)", + "m4eaw__av", "Everyone's A Winner (Barcrest) (MPU4) (set 59)", + "m4eaw__aw", "Everyone's A Winner (Barcrest) (MPU4) (set 60)", + "m4eaw__ax", "Everyone's A Winner (Barcrest) (MPU4) (set 61)", + "m4eaw__ay", "Everyone's A Winner (Barcrest) (MPU4) (set 62)", + "m4eaw__az", "Everyone's A Winner (Barcrest) (MPU4) (set 63)", + "m4eaw__b", "Everyone's A Winner (Barcrest) (MPU4) (set 3)", + "m4eaw__ba", "Everyone's A Winner (Barcrest) (MPU4) (set 74)", + "m4eaw__bb", "Everyone's A Winner (Barcrest) (MPU4) (set 75)", + "m4eaw__bc", "Everyone's A Winner (Barcrest) (MPU4) (set 76)", + "m4eaw__bd", "Everyone's A Winner (Barcrest) (MPU4) (set 77)", + "m4eaw__be", "Everyone's A Winner (Barcrest) (MPU4) (set 78)", + "m4eaw__bf", "Everyone's A Winner (Barcrest) (MPU4) (set 79)", + "m4eaw__bg", "Everyone's A Winner (Barcrest) (MPU4) (set 80)", + "m4eaw__bh", "Everyone's A Winner (Barcrest) (MPU4) (set 81)", + "m4eaw__bi", "Everyone's A Winner (Barcrest) (MPU4) (set 82)", + "m4eaw__bj", "Everyone's A Winner (Barcrest) (MPU4) (set 83)", + "m4eaw__bk", "Everyone's A Winner (Barcrest) (MPU4) (set 84)", + "m4eaw__bl", "Everyone's A Winner (Barcrest) (MPU4) (set 85)", + "m4eaw__bm", "Everyone's A Winner (Barcrest) (MPU4) (set 86)", + "m4eaw__bn", "Everyone's A Winner (Barcrest) (MPU4) (set 87)", + "m4eaw__bo", "Everyone's A Winner (Barcrest) (MPU4) (set 88)", + "m4eaw__bp", "Everyone's A Winner (Barcrest) (MPU4) (set 89)", + "m4eaw__bq", "Everyone's A Winner (Barcrest) (MPU4) (set 90)", + "m4eaw__br", "Everyone's A Winner (Barcrest) (MPU4) (set 91)", + "m4eaw__bs", "Everyone's A Winner (Barcrest) (MPU4) (set 92)", + "m4eaw__bt", "Everyone's A Winner (Barcrest) (MPU4) (set 93)", + "m4eaw__bu", "Everyone's A Winner (Barcrest) (MPU4) (set 94)", + "m4eaw__bv", "Everyone's A Winner (Barcrest) (MPU4) (set 95)", + "m4eaw__bw", "Everyone's A Winner (Barcrest) (MPU4) (set 96)", + "m4eaw__bx", "Everyone's A Winner (Barcrest) (MPU4) (set 97)", + "m4eaw__bz", "Everyone's A Winner (Barcrest) (MPU4) (set 99)", + "m4eaw__c", "Everyone's A Winner (Barcrest) (MPU4) (set 4)", + "m4eaw__d", "Everyone's A Winner (Barcrest) (MPU4) (set 5)", + "m4eaw__e", "Everyone's A Winner (Barcrest) (MPU4) (set 6)", + "m4eaw__f", "Everyone's A Winner (Barcrest) (MPU4) (set 7)", + "m4eaw__g", "Everyone's A Winner (Barcrest) (MPU4) (set 8)", + "m4eaw__h", "Everyone's A Winner (Barcrest) (MPU4) (set 9)", + "m4eaw__i", "Everyone's A Winner (Barcrest) (MPU4) (set 10)", + "m4eaw__j", "Everyone's A Winner (Barcrest) (MPU4) (set 11)", + "m4eaw__k", "Everyone's A Winner (Barcrest) (MPU4) (set 12)", + "m4eaw__l", "Everyone's A Winner (Barcrest) (MPU4) (set 13)", + "m4eaw__m", "Everyone's A Winner (Barcrest) (MPU4) (set 14)", + "m4eaw__n", "Everyone's A Winner (Barcrest) (MPU4) (set 15)", + "m4eaw__o", "Everyone's A Winner (Barcrest) (MPU4) (set 16)", + "m4eaw__p", "Everyone's A Winner (Barcrest) (MPU4) (set 17)", + "m4eaw__q", "Everyone's A Winner (Barcrest) (MPU4) (set 18)", + "m4eaw__r", "Everyone's A Winner (Barcrest) (MPU4) (set 19)", + "m4eaw__s", "Everyone's A Winner (Barcrest) (MPU4) (set 20)", + "m4eaw__t", "Everyone's A Winner (Barcrest) (MPU4) (set 21)", + "m4eaw__u", "Everyone's A Winner (Barcrest) (MPU4) (set 22)", + "m4eaw__v", "Everyone's A Winner (Barcrest) (MPU4) (set 23)", + "m4eaw__w", "Everyone's A Winner (Barcrest) (MPU4) (set 24)", + "m4eaw__x", "Everyone's A Winner (Barcrest) (MPU4) (set 25)", + "m4eaw__y", "Everyone's A Winner (Barcrest) (MPU4) (set 26)", + "m4eaw__z", "Everyone's A Winner (Barcrest) (MPU4) (set 27)", + "m4eezee", "Eezee Fruits (Union) (MPU4)", + "m4eighth", "Eighth Wonder (Barcrest) (MPU4) (WON 2.2)", + "m4eightha", "Eighth Wonder (Barcrest) (MPU4) (BEW 0.3, set 1)", + "m4eighthb", "Eighth Wonder (Barcrest) (MPU4) (BEW 0.3, set 2)", + "m4eighthc", "Eighth Wonder (Barcrest) (MPU4) (BEW 0.3, set 3)", + "m4eighthd", "Eighth Wonder (Barcrest) (MPU4) (BEW 0.3, set 4, bad?)", + "m4eighthe", "Eighth Wonder (Barcrest) (MPU4) (BEW 0.3, set 5)", + "m4eighthf", "Eighth Wonder (Barcrest) (MPU4) (BEW 0.3, set 6)", + "m4eighthg", "Eighth Wonder (Barcrest) (MPU4) (BEW 0.3, set 7)", + "m4elitc", "Elite Club (Crystal) (MPU4) (set 1)", + "m4elitca", "Elite Club (Crystal) (MPU4) (set 2)", + "m4elite", "Elite (Barcrest) (MPU4 w/ Plasma DMD?)", + "m4eureka", "Eureka (Empire) (MPU4, set 1)", + "m4eurekaa", "Eureka (Empire) (MPU4, set 2)", + "m4eurekab", "Eureka (Empire) (MPU4, set 3)", + "m4ewshft", "Each Way Shifter (Mdm) (MPU4)", + "m4excal", "Excalibur (Bwb) (MPU4) (set 1)", + "m4excal__a", "Excalibur (Bwb) (MPU4) (set 2)", + "m4excal__b", "Excalibur (Bwb) (MPU4) (set 3)", + "m4excal__c", "Excalibur (Bwb) (MPU4) (set 4)", + "m4excal__d", "Excalibur (Bwb) (MPU4) (set 5)", + "m4excal__e", "Excalibur (Bwb) (MPU4) (set 6)", + "m4excal__f", "Excalibur (Bwb) (MPU4) (set 7)", + "m4excal__g", "Excalibur (Bwb) (MPU4) (set 8)", + "m4excal__h", "Excalibur (Bwb) (MPU4) (set 9)", + "m4excal__i", "Excalibur (Bwb) (MPU4) (set 10)", + "m4excal__j", "Excalibur (Bwb) (MPU4) (set 11)", + "m4excaln", "Excalibur (Nova) (MPU4) (set 1)", + "m4excaln__a", "Excalibur (Nova) (MPU4) (set 2)", + "m4excam", "Excalibur (Mdm) (MPU4)", + "m4exgam", "Extra Game (Fairplay - Barcrest) (MPU4)", + "m4exlin", "Extra Lines (Pcp) (MPU4) (set 1)", + "m4exlina", "Extra Lines (Pcp) (MPU4) (set 2)", + "m4exotic", "Exotic Fruits (Bwb) (MPU4) (set 1)", + "m4exotic__a", "Exotic Fruits (Bwb) (MPU4) (set 2)", + "m4exotic__b", "Exotic Fruits (Bwb) (MPU4) (set 3)", + "m4exotic__c", "Exotic Fruits (Bwb) (MPU4) (set 4)", + "m4exotic__d", "Exotic Fruits (Bwb) (MPU4) (set 5)", + "m4exotic__e", "Exotic Fruits (Bwb) (MPU4) (set 6)", + "m4exprs", "Express (Barcrest) (DXP, Dutch) (MPU4)", + "m4fairg", "Fairground (Crystal) (MPU4)", + "m4fastfw", "Fast Forward (Barcrest) (MPU4) (set 1)", + "m4fastfw__a", "Fast Forward (Barcrest) (MPU4) (set 2)", + "m4fastfw__b", "Fast Forward (Barcrest) (MPU4) (set 3)", + "m4fastfw__c", "Fast Forward (Barcrest) (MPU4) (set 4)", + "m4fastfw__d", "Fast Forward (Barcrest) (MPU4) (set 5)", + "m4fastfw__e", "Fast Forward (Barcrest) (MPU4) (set 6)", + "m4fastfw__f", "Fast Forward (Barcrest) (MPU4) (set 7)", + "m4firebl", "Fireball (Mdm) (MPU4, set 1)", + "m4firebla", "Fireball (Mdm) (MPU4, set 2)", + "m4fireblb", "Fireball (Mdm) (MPU4, set 3)", + "m4fireblc", "Fireball (Mdm) (MPU4, set 4)", + "m4firebld", "Fireball (Mdm) (MPU4, set 5)", + "m4firice", "Fire & Ice (Bwb) (MPU4) (set 1)", + "m4firice__a", "Fire & Ice (Bwb) (MPU4) (set 2)", + "m4firice__b", "Fire & Ice (Bwb) (MPU4) (set 3)", + "m4firice__c", "Fire & Ice (Bwb) (MPU4) (set 4)", + "m4firice__d", "Fire & Ice (Bwb) (MPU4) (set 5)", + "m4firice__e", "Fire & Ice (Bwb) (MPU4) (set 6)", + "m4firice__f", "Fire & Ice (Bwb) (MPU4) (set 7)", + "m4firice__g", "Fire & Ice (Bwb) (MPU4) (set 8)", + "m4firice__h", "Fire & Ice (Bwb) (MPU4) (set 9)", + "m4firice__i", "Fire & Ice (Bwb) (MPU4) (set 10)", + "m4firice__j", "Fire & Ice (Bwb) (MPU4) (set 11)", + "m4flash", "Flash Cash (Barcrest) (MPU4, FC 1.0)", + "m4flshlt", "Flashlite (Bwb) (MPU4) (set 1)", + "m4flshlta", "Flashlite (Bwb) (MPU4) (set 2)", + "m4flshltb", "Flashlite (Bwb) (MPU4) (set 3)", + "m4flshltc", "Flashlite (Bwb) (MPU4) (set 4)", + "m4flshltd", "Flashlite (Bwb) (MPU4) (set 5)", + "m4flshlte", "Flashlite (Bwb) (MPU4) (set 6)", + "m4flshltf", "Flashlite (Bwb) (MPU4) (set 7)", + "m4flshltg", "Flashlite (Bwb) (MPU4) (set 8)", + "m4fortcb", "Fortune Club (Barcrest) (MPU4) (set 1)", + "m4fortcba", "Fortune Club (Barcrest) (MPU4) (set 2)", + "m4fortcbb", "Fortune Club (Barcrest) (MPU4) (set 3)", + "m4fourmr", "Four More (Bwb) (MPU4)", + "m4frcrak", "Fruit Cracker (Pcp) (MPU4)", + "m4frdrop", "Fruit Drop (Union) (MPU4)", + "m4fright", "Fright Night (Empire) (MPU4, v4.1X)", + "m4frighta", "Fright Night (Empire) (MPU4, v4.1)", + "m4frightb", "Fright Night (Empire) (MPU4, v4.1i)", + "m4frightc", "Fright Night (Empire) (MPU4, v?.?, set 1)", + "m4frightd", "Fright Night (Empire) (MPU4, v3.3)", + "m4frighte", "Fright Night (Empire) (MPU4, v3.0)", + "m4frightf", "Fright Night (Empire) (MPU4, v?.?, set 2)", + "m4frkstn", "Frank 'n' Stein (Crystal) (MPU4, set 1)", + "m4frkstna", "Frank 'n' Stein (Crystal) (MPU4, set 2)", + "m4frkstnb", "Frank 'n' Stein (Crystal) (MPU4, set 3)", + "m4frkstnc", "Frank 'n' Stein (Crystal) (MPU4, set 4)", + "m4frkstnd", "Frank 'n' Stein (Crystal) (MPU4, set 5)", + "m4frkstne", "Frank 'n' Stein (Crystal) (MPU4, set 6)", + "m4frkstnf", "Frank 'n' Stein (Crystal) (MPU4, set 7)", + "m4frkstng", "Frank 'n' Stein (Crystal) (MPU4, set 8)", + "m4frkstnh", "Frank 'n' Stein (Crystal) (MPU4, set 9)", + "m4frmani", "Fruit Mania (Crystal) (MPU4) (set 1)", + "m4frmania", "Fruit Mania (Crystal) (MPU4) (set 2)", + "m4frmanib", "Fruit Mania (Crystal) (MPU4) (set 3)", + "m4frmanic", "Fruit Mania (Crystal) (MPU4) (set 4)", + "m4frmtx", "Fruit Matrix (Avantime?) (MPU4) (set 1)", + "m4frmtx__a", "Fruit Matrix (Avantime?) (MPU4) (set 2)", + "m4frmtx__b", "Fruit Matrix (Avantime?) (MPU4) (set 3)", + "m4frmtx__c", "Fruit Matrix (Avantime?) (MPU4) (set 4)", + "m4frmtx__d", "Fruit Matrix (Avantime?) (MPU4) (set 5)", + "m4frmtx__e", "Fruit Matrix (Avantime?) (MPU4) (set 6)", + "m4frmtx__f", "Fruit Matrix (Avantime?) (MPU4) (set 7)", + "m4frnudg", "Fruit & Nudge (Avantime?) (MPU4) (set 1)", + "m4frnudg__a", "Fruit & Nudge (Avantime?) (MPU4) (set 2)", + "m4frnudg__b", "Fruit & Nudge (Avantime?) (MPU4) (set 3)", + "m4frnudg__c", "Fruit & Nudge (Avantime?) (MPU4) (set 4)", + "m4front", "Final Frontier (Mdm) (MPU4)", + "m4frtfl", "Fruit Full (Barcrest) (MPU4) (set 1)", + "m4frtfla", "Fruit Full (Barcrest) (MPU4) (set 2)", + "m4frtflc", "Fruit Full Club (Barcrest) (MPU4)", + "m4frtgm", "Fruit Game (Barcrest) (MPU4)", + "m4frtlnk", "Fruit Link Club (Barcrest) (MPU4) (set 1)", + "m4frtlnka", "Fruit Link Club (Barcrest) (MPU4) (set 2)", + "m4frtprs", "Fruit Preserve (Barcrest) (MPU4) (F4P 1.1, set 1)", + "m4frtprsa", "Fruit Preserve (Barcrest) (MPU4) (F4P 1.1, set 2)", + "m4fsx", "Fun Spot X (MPU4?) (set 1)", + "m4fsxa", "Fun Spot X (MPU4?) (set 2)", + "m4fsxb", "Fun Spot X (MPU4?) (set 3)", + "m4ftladn", "Find the Lady (Nova) (MPU4)", + "m4funh", "Fun House (unknown) (MPU4)", + "m4gambal", "Gamball (Barcrest) (MPU4) (set 1)", + "m4gambal__a", "Gamball (Barcrest) (MPU4) (set 2)", + "m4gambal__b", "Gamball (Barcrest) (MPU4) (set 3)", + "m4gambal__c", "Gamball (Barcrest) (MPU4) (set 4)", + "m4gamblr", "The Gambler (Empire) (MPU4, set 1)", + "m4gamblra", "The Gambler (Empire) (MPU4, set 2)", + "m4gamblrb", "The Gambler (Empire) (MPU4, set 3)", + "m4gb006", "Games Bond 006 (Barcrest) (MPU4) (set 1)", + "m4gb006__a", "Games Bond 006 (Barcrest) (MPU4) (set 2)", + "m4gb006__b", "Games Bond 006 (Barcrest) (MPU4) (set 3)", + "m4gb006__c", "Games Bond 006 (Barcrest) (MPU4) (set 4)", + "m4gbust", "Ghost Buster (Barcrest) (MPU4) (set 1)", + "m4gbust__a", "Ghost Buster (Barcrest) (MPU4) (set 2)", + "m4gbust__b", "Ghost Buster (Barcrest) (MPU4) (set 3)", + "m4gbust__c", "Ghost Buster (Barcrest) (MPU4) (set 4)", + "m4gbust__d", "Ghost Buster (Barcrest) (MPU4) (set 5)", + "m4gbust__e", "Ghost Buster (Barcrest) (MPU4) (set 6)", + "m4gbust__f", "Ghost Buster (Barcrest) (MPU4) (set 7)", + "m4gbust__g", "Ghost Buster (Barcrest) (MPU4) (set 8)", + "m4gbust__h", "Ghost Buster (Barcrest) (MPU4) (set 9)", + "m4gbust__i", "Ghost Buster (Barcrest) (MPU4) (set 10)", + "m4gbust__j", "Ghost Buster (Barcrest) (MPU4) (set 11)", + "m4gbust__k", "Ghost Buster (Barcrest) (MPU4) (set 12)", + "m4gbust__l", "Ghost Buster (Barcrest) (MPU4) (set 13)", + "m4gbust__m", "Ghost Buster (Barcrest) (MPU4) (set 14)", + "m4gbust__n", "Ghost Buster (Barcrest) (MPU4) (set 15)", + "m4gbust__o", "Ghost Buster (Barcrest) (MPU4) (set 16)", + "m4gbust__p", "Ghost Buster (Barcrest) (MPU4) (set 17)", + "m4gbust__q", "Ghost Buster (Barcrest) (MPU4) (set 18)", + "m4gbust__r", "Ghost Buster (Barcrest) (MPU4) (set 19)", + "m4gbust__s", "Ghost Buster (Barcrest) (MPU4) (set 20)", + "m4gbust__t", "Ghost Buster (Barcrest) (MPU4) (set 21)", + "m4gbust__u", "Ghost Buster (Barcrest) (MPU4) (set 22)", + "m4gbust__v", "Ghost Buster (Barcrest) (MPU4) (set 23)", + "m4gbust__w", "Ghost Buster (Barcrest) (MPU4) (set 24)", + "m4gclue", "Give Us A Clue (Barcrest) (MPU4) (set 1)", + "m4gclue__a", "Give Us A Clue (Barcrest) (MPU4) (set 2)", + "m4gclue__b", "Give Us A Clue (Barcrest) (MPU4) (set 3)", + "m4gclue__c", "Give Us A Clue (Barcrest) (MPU4) (set 4)", + "m4gclue__d", "Give Us A Clue (Barcrest) (MPU4) (set 5)", + "m4gclue__e", "Give Us A Clue (Barcrest) (MPU4) (set 6)", + "m4gclue__f", "Give Us A Clue (Barcrest) (MPU4) (set 7)", + "m4gclue__g", "Give Us A Clue (Barcrest) (MPU4) (set 8)", + "m4gclue__h", "Give Us A Clue (Barcrest) (MPU4) (set 9)", + "m4gclue__i", "Give Us A Clue (Barcrest) (MPU4) (set 10)", + "m4gclue__j", "Give Us A Clue (Barcrest) (MPU4) (set 11)", + "m4gclue__k", "Give Us A Clue (Barcrest) (MPU4) (set 12)", + "m4gclue__l", "Give Us A Clue (Barcrest) (MPU4) (set 13)", + "m4gclue__m", "Give Us A Clue (Barcrest) (MPU4) (set 14)", + "m4gclue__n", "Give Us A Clue (Barcrest) (MPU4) (set 15)", + "m4gclue__o", "Give Us A Clue (Barcrest) (MPU4) (set 16)", + "m4gclue__p", "Give Us A Clue (Barcrest) (MPU4) (set 17)", + "m4gclue__q", "Give Us A Clue (Barcrest) (MPU4) (set 18)", + "m4gclue__r", "Give Us A Clue (Barcrest) (MPU4) (set 19)", + "m4gclue__s", "Give Us A Clue (Barcrest) (MPU4) (set 20)", + "m4gclue__t", "Give Us A Clue (Barcrest) (MPU4) (set 21)", + "m4gclue__u", "Give Us A Clue (Barcrest) (MPU4) (set 22)", + "m4gclue__v", "Give Us A Clue (Barcrest) (MPU4) (set 23)", + "m4gclue__w", "Give Us A Clue (Barcrest) (MPU4) (set 24)", + "m4giant", "Giant (Barcrest) (DGI, Dutch) (MPU4)", + "m4gldgat", "Golden Gate (Barcrest) [DGG, Dutch] (MPU4)", + "m4gldjok", "Golden Joker (Barcrest) (Dutch) (MPU4) (DGJ 1.2)", + "m4gldstr", "Gold Strike (Barcrest) (MPU4) (G4S 2.0)", + "m4gnsmk", "Gun Smoke (Barcrest) (Dutch) (MPU4)", + "m4gobana", "Go Bananas (Union) (MPU4, set 1)", + "m4gobanaa", "Go Bananas (Union) (MPU4, set 2)", + "m4gobanab", "Go Bananas (Union) (MPU4, set 3)", + "m4gobanac", "Go Bananas (Union) (MPU4, set 4)", + "m4gobanad", "Go Bananas (Union) (MPU4, set 5)", + "m4goldfc", "Gold Fever (Crystal) (MPU4) (set 1)", + "m4goldfca", "Gold Fever (Crystal) (MPU4) (set 2)", + "m4goldfcb", "Gold Fever (Crystal) (MPU4) (set 3)", + "m4goldfv", "Gold Fever (Empire) (MPU4)", + "m4goldnn", "Golden Years (Nova) (MPU4)", + "m4goldxc", "Gold Exchange Club (Crystal) (MPU4) (set 1)", + "m4goldxca", "Gold Exchange Club (Crystal) (MPU4) (set 2)", + "m4goldxcb", "Gold Exchange Club (Crystal) (MPU4) (set 3)", + "m4goldxcc", "Gold Exchange Club (Crystal) (MPU4) (set 4)", + "m4goldxcd", "Gold Exchange Club (Crystal) (MPU4) (set 5)", + "m4goldxce", "Gold Exchange Club (Crystal) (MPU4) (set 6)", + "m4goodtm", "Let The Good Times Roll (Barcrest) (MPU4) (set 1)", + "m4goodtm__0", "Let The Good Times Roll (Barcrest) (MPU4) (set 28)", + "m4goodtm__1", "Let The Good Times Roll (Barcrest) (MPU4) (set 29)", + "m4goodtm__2", "Let The Good Times Roll (Barcrest) (MPU4) (set 30)", + "m4goodtm__3", "Let The Good Times Roll (Barcrest) (MPU4) (set 31)", + "m4goodtm__4", "Let The Good Times Roll (Barcrest) (MPU4) (set 32)", + "m4goodtm__5", "Let The Good Times Roll (Barcrest) (MPU4) (set 33)", + "m4goodtm__6", "Let The Good Times Roll (Barcrest) (MPU4) (set 34)", + "m4goodtm__7", "Let The Good Times Roll (Barcrest) (MPU4) (set 35)", + "m4goodtm__8", "Let The Good Times Roll (Barcrest) (MPU4) (set 36)", + "m4goodtm__9", "Let The Good Times Roll (Barcrest) (MPU4) (set 37)", + "m4goodtm__a", "Let The Good Times Roll (Barcrest) (MPU4) (set 2)", + "m4goodtm__a0", "Let The Good Times Roll (Barcrest) (MPU4) (set 64)", + "m4goodtm__a1", "Let The Good Times Roll (Barcrest) (MPU4) (set 65)", + "m4goodtm__a2", "Let The Good Times Roll (Barcrest) (MPU4) (set 66)", + "m4goodtm__a3", "Let The Good Times Roll (Barcrest) (MPU4) (set 67)", + "m4goodtm__a4", "Let The Good Times Roll (Barcrest) (MPU4) (set 68)", + "m4goodtm__a5", "Let The Good Times Roll (Barcrest) (MPU4) (set 69)", + "m4goodtm__a6", "Let The Good Times Roll (Barcrest) (MPU4) (set 70)", + "m4goodtm__aa", "Let The Good Times Roll (Barcrest) (MPU4) (set 38)", + "m4goodtm__ab", "Let The Good Times Roll (Barcrest) (MPU4) (set 39)", + "m4goodtm__ac", "Let The Good Times Roll (Barcrest) (MPU4) (set 40)", + "m4goodtm__ad", "Let The Good Times Roll (Barcrest) (MPU4) (set 41)", + "m4goodtm__ae", "Let The Good Times Roll (Barcrest) (MPU4) (set 42)", + "m4goodtm__af", "Let The Good Times Roll (Barcrest) (MPU4) (set 43)", + "m4goodtm__ag", "Let The Good Times Roll (Barcrest) (MPU4) (set 44)", + "m4goodtm__ah", "Let The Good Times Roll (Barcrest) (MPU4) (set 45)", + "m4goodtm__ai", "Let The Good Times Roll (Barcrest) (MPU4) (set 46)", + "m4goodtm__aj", "Let The Good Times Roll (Barcrest) (MPU4) (set 47)", + "m4goodtm__ak", "Let The Good Times Roll (Barcrest) (MPU4) (set 48)", + "m4goodtm__al", "Let The Good Times Roll (Barcrest) (MPU4) (set 49)", + "m4goodtm__am", "Let The Good Times Roll (Barcrest) (MPU4) (set 50)", + "m4goodtm__an", "Let The Good Times Roll (Barcrest) (MPU4) (set 51)", + "m4goodtm__ao", "Let The Good Times Roll (Barcrest) (MPU4) (set 52)", + "m4goodtm__ap", "Let The Good Times Roll (Barcrest) (MPU4) (set 53)", + "m4goodtm__aq", "Let The Good Times Roll (Barcrest) (MPU4) (set 54)", + "m4goodtm__ar", "Let The Good Times Roll (Barcrest) (MPU4) (set 55)", + "m4goodtm__as", "Let The Good Times Roll (Barcrest) (MPU4) (set 56)", + "m4goodtm__at", "Let The Good Times Roll (Barcrest) (MPU4) (set 57)", + "m4goodtm__au", "Let The Good Times Roll (Barcrest) (MPU4) (set 58)", + "m4goodtm__av", "Let The Good Times Roll (Barcrest) (MPU4) (set 59)", + "m4goodtm__aw", "Let The Good Times Roll (Barcrest) (MPU4) (set 60)", + "m4goodtm__ax", "Let The Good Times Roll (Barcrest) (MPU4) (set 61)", + "m4goodtm__ay", "Let The Good Times Roll (Barcrest) (MPU4) (set 62)", + "m4goodtm__az", "Let The Good Times Roll (Barcrest) (MPU4) (set 63)", + "m4goodtm__b", "Let The Good Times Roll (Barcrest) (MPU4) (set 3)", + "m4goodtm__c", "Let The Good Times Roll (Barcrest) (MPU4) (set 4)", + "m4goodtm__d", "Let The Good Times Roll (Barcrest) (MPU4) (set 5)", + "m4goodtm__e", "Let The Good Times Roll (Barcrest) (MPU4) (set 6)", + "m4goodtm__f", "Let The Good Times Roll (Barcrest) (MPU4) (set 7)", + "m4goodtm__g", "Let The Good Times Roll (Barcrest) (MPU4) (set 8)", + "m4goodtm__h", "Let The Good Times Roll (Barcrest) (MPU4) (set 9)", + "m4goodtm__i", "Let The Good Times Roll (Barcrest) (MPU4) (set 10)", + "m4goodtm__j", "Let The Good Times Roll (Barcrest) (MPU4) (set 11)", + "m4goodtm__k", "Let The Good Times Roll (Barcrest) (MPU4) (set 12)", + "m4goodtm__l", "Let The Good Times Roll (Barcrest) (MPU4) (set 13)", + "m4goodtm__m", "Let The Good Times Roll (Barcrest) (MPU4) (set 14)", + "m4goodtm__n", "Let The Good Times Roll (Barcrest) (MPU4) (set 15)", + "m4goodtm__o", "Let The Good Times Roll (Barcrest) (MPU4) (set 16)", + "m4goodtm__p", "Let The Good Times Roll (Barcrest) (MPU4) (set 17)", + "m4goodtm__q", "Let The Good Times Roll (Barcrest) (MPU4) (set 18)", + "m4goodtm__r", "Let The Good Times Roll (Barcrest) (MPU4) (set 19)", + "m4goodtm__s", "Let The Good Times Roll (Barcrest) (MPU4) (set 20)", + "m4goodtm__t", "Let The Good Times Roll (Barcrest) (MPU4) (set 21)", + "m4goodtm__u", "Let The Good Times Roll (Barcrest) (MPU4) (set 22)", + "m4goodtm__v", "Let The Good Times Roll (Barcrest) (MPU4) (set 23)", + "m4goodtm__w", "Let The Good Times Roll (Barcrest) (MPU4) (set 24)", + "m4goodtm__x", "Let The Good Times Roll (Barcrest) (MPU4) (set 25)", + "m4goodtm__y", "Let The Good Times Roll (Barcrest) (MPU4) (set 26)", + "m4goodtm__z", "Let The Good Times Roll (Barcrest) (MPU4) (set 27)", + "m4graff", "Graffiti (Barcrest) (MPU4) (set 1)", + "m4graff__a", "Graffiti (Barcrest) (MPU4) (set 2)", + "m4graff__b", "Graffiti (Barcrest) (MPU4) (set 3)", + "m4graffd", "Grafitti (Barcrest) [Dutch] (MPU4)", + "m4grands", "Grandstand Club (Barcrest) (MPU4) (G2D 4.0)", + "m4grandsa", "Grandstand Club (Barcrest) (MPU4) (GD 1.1)", + "m4grbbnk", "Grab The Bank (Barcrest) (MPU4) (G4B 2.0)", + "m4grbbnka", "Grab The Bank (Barcrest) (MPU4) (G4B 2.1)", + "m4grbbnkb", "Grab The Bank (Barcrest) (MPU4) (G4B 1.0)", + "m4gtrain", "Ghost Train (Empire) (MPU4, set 1)", + "m4gtraina", "Ghost Train (Empire) (MPU4, set 2)", + "m4gtrainb", "Ghost Train (Empire) (MPU4, set 3)", + "m4gtrainc", "Ghost Train (Empire) (MPU4, set 4)", + "m4gvibes", "Good Vibrations (Union - Empire) (MPU4, set 1)", + "m4gvibesa", "Good Vibrations (Union - Empire) (MPU4, set 2)", + "m4hapfrt", "Happy Fruits (Coinworld) (MPU4) (set 1)", + "m4hapfrta", "Happy Fruits (Coinworld) (MPU4) (set 2)", + "m4hapfrtb", "Happy Fruits (Coinworld) (MPU4) (set 3)", + "m4harle", "Harlequin (Bwb) (MPU4) (set 1)", + "m4harle__a", "Harlequin (Bwb) (MPU4) (set 2)", + "m4harle__b", "Harlequin (Bwb) (MPU4) (set 3)", + "m4harle__c", "Harlequin (Bwb) (MPU4) (set 4)", + "m4harle__d", "Harlequin (Bwb) (MPU4) (set 5)", + "m4harle__e", "Harlequin (Bwb) (MPU4) (set 6)", + "m4harle__f", "Harlequin (Bwb) (MPU4) (set 7)", + "m4harle__g", "Harlequin (Bwb) (MPU4) (set 8)", + "m4harle__h", "Harlequin (Bwb) (MPU4) (set 9)", + "m4harle__i", "Harlequin (Bwb) (MPU4) (set 10)", + "m4harle__j", "Harlequin (Bwb) (MPU4) (set 11)", + "m4harle__k", "Harlequin (Bwb) (MPU4) (set 12)", + "m4harle__l", "Harlequin (Bwb) (MPU4) (set 13)", + "m4harle__m", "Harlequin (Bwb) (MPU4) (set 14)", + "m4harle__n", "Harlequin (Bwb) (MPU4) (set 15)", + "m4harle__o", "Harlequin (Bwb) (MPU4) (set 16)", + "m4harle__p", "Harlequin (Bwb) (MPU4) (set 17)", + "m4harle__q", "Harlequin (Bwb) (MPU4) (set 18)", + "m4harle__r", "Harlequin (Bwb) (MPU4) (set 19)", + "m4harle__s", "Harlequin (Bwb) (MPU4) (set 20)", + "m4harle__t", "Harlequin (Bwb) (MPU4) (set 21)", + "m4harle__u", "Harlequin (Bwb) (MPU4) (set 22)", + "m4harle__v", "Harlequin (Bwb) (MPU4) (set 23)", + "m4harle__w", "Harlequin (Bwb) (MPU4) (set 24)", + "m4harle__x", "Harlequin (Bwb) (MPU4) (set 25)", + "m4haunt", "Haunted House (Empire) (MPU4, set 1)", + "m4haunta", "Haunted House (Empire) (MPU4, set 2)", + "m4hauntb", "Haunted House (Empire) (MPU4, set 3)", + "m4hauntc", "Haunted House (Empire) (MPU4, set 4)", + "m4hauntd", "Haunted House (Empire) (MPU4, set 5)", + "m4hijinx", "Hi Jinx (Barcrest) (MPU4) (set 1)", + "m4hijinx__0", "Hi Jinx (Barcrest) (MPU4) (set 28)", + "m4hijinx__1", "Hi Jinx (Barcrest) (MPU4) (set 29)", + "m4hijinx__2", "Hi Jinx (Barcrest) (MPU4) (set 30)", + "m4hijinx__3", "Hi Jinx (Barcrest) (MPU4) (set 31)", + "m4hijinx__4", "Hi Jinx (Barcrest) (MPU4) (set 32)", + "m4hijinx__5", "Hi Jinx (Barcrest) (MPU4) (set 33)", + "m4hijinx__6", "Hi Jinx (Barcrest) (MPU4) (set 34)", + "m4hijinx__7", "Hi Jinx (Barcrest) (MPU4) (set 35)", + "m4hijinx__8", "Hi Jinx (Barcrest) (MPU4) (set 36)", + "m4hijinx__9", "Hi Jinx (Barcrest) (MPU4) (set 37)", + "m4hijinx__a", "Hi Jinx (Barcrest) (MPU4) (set 2)", + "m4hijinx__aa", "Hi Jinx (Barcrest) (MPU4) (set 38)", + "m4hijinx__ab", "Hi Jinx (Barcrest) (MPU4) (set 39)", + "m4hijinx__b", "Hi Jinx (Barcrest) (MPU4) (set 3)", + "m4hijinx__c", "Hi Jinx (Barcrest) (MPU4) (set 4)", + "m4hijinx__d", "Hi Jinx (Barcrest) (MPU4) (set 5)", + "m4hijinx__e", "Hi Jinx (Barcrest) (MPU4) (set 6)", + "m4hijinx__f", "Hi Jinx (Barcrest) (MPU4) (set 7)", + "m4hijinx__g", "Hi Jinx (Barcrest) (MPU4) (set 8)", + "m4hijinx__h", "Hi Jinx (Barcrest) (MPU4) (set 9)", + "m4hijinx__i", "Hi Jinx (Barcrest) (MPU4) (set 10)", + "m4hijinx__j", "Hi Jinx (Barcrest) (MPU4) (set 11)", + "m4hijinx__k", "Hi Jinx (Barcrest) (MPU4) (set 12)", + "m4hijinx__l", "Hi Jinx (Barcrest) (MPU4) (set 13)", + "m4hijinx__m", "Hi Jinx (Barcrest) (MPU4) (set 14)", + "m4hijinx__n", "Hi Jinx (Barcrest) (MPU4) (set 15)", + "m4hijinx__o", "Hi Jinx (Barcrest) (MPU4) (set 16)", + "m4hijinx__p", "Hi Jinx (Barcrest) (MPU4) (set 17)", + "m4hijinx__q", "Hi Jinx (Barcrest) (MPU4) (set 18)", + "m4hijinx__r", "Hi Jinx (Barcrest) (MPU4) (set 19)", + "m4hijinx__s", "Hi Jinx (Barcrest) (MPU4) (set 20)", + "m4hijinx__t", "Hi Jinx (Barcrest) (MPU4) (set 21)", + "m4hijinx__u", "Hi Jinx (Barcrest) (MPU4) (set 22)", + "m4hijinx__v", "Hi Jinx (Barcrest) (MPU4) (set 23)", + "m4hijinx__w", "Hi Jinx (Barcrest) (MPU4) (set 24)", + "m4hijinx__x", "Hi Jinx (Barcrest) (MPU4) (set 25)", + "m4hijinx__y", "Hi Jinx (Barcrest) (MPU4) (set 26)", + "m4hijinx__z", "Hi Jinx (Barcrest) (MPU4) (set 27)", + "m4hilonv", "Hi Lo Casino (Nova) (MPU4)", + "m4hirise", "High Rise (Barcrest) (MPU4) (set 1)", + "m4hirisea", "High Rise (Barcrest) (MPU4) (set 2)", + "m4hiriseb", "High Rise (Barcrest) (MPU4) (set 3)", + "m4hirisec", "High Rise (Barcrest) (MPU4) (set 4)", + "m4hirised", "High Rise (Barcrest) (MPU4) (set 5)", + "m4hirisee", "High Rise (Barcrest) (MPU4) (set 6)", + "m4hirol", "Hi Roller Club (Crystal) (MPU4) (set 1)", + "m4hirola", "Hi Roller Club (Crystal) (MPU4) (set 2)", + "m4hiroll", "High Roller (Barcrest) (MPU4)", + "m4hisprt", "High Spirits (Empire) (MPU4, set 1)", + "m4hisprta", "High Spirits (Empire) (MPU4, set 2)", + "m4hisprtb", "High Spirits (Empire) (MPU4, set 3)", + "m4hisprtc", "High Spirits (Empire) (MPU4, set 4)", + "m4hisprtd", "High Spirits (Empire) (MPU4, set 5)", + "m4hisprte", "High Spirits (Empire) (MPU4, set 6)", + "m4hittop", "Hit The Top (Barcrest) (MPU4) (set 1)", + "m4hittop__0", "Hit The Top (Barcrest) (MPU4) (set 28)", + "m4hittop__1", "Hit The Top (Barcrest) (MPU4) (set 29)", + "m4hittop__2", "Hit The Top (Barcrest) (MPU4) (set 30)", + "m4hittop__3", "Hit The Top (Barcrest) (MPU4) (set 31)", + "m4hittop__4", "Hit The Top (Barcrest) (MPU4) (set 32)", + "m4hittop__5", "Hit The Top (Barcrest) (MPU4) (set 33)", + "m4hittop__6", "Hit The Top (Barcrest) (MPU4) (set 34)", + "m4hittop__7", "Hit The Top (Barcrest) (MPU4) (set 35)", + "m4hittop__8", "Hit The Top (Barcrest) (MPU4) (set 36)", + "m4hittop__9", "Hit The Top (Barcrest) (MPU4) (set 37)", + "m4hittop__a", "Hit The Top (Barcrest) (MPU4) (set 2)", + "m4hittop__aa", "Hit The Top (Barcrest) (MPU4) (set 38)", + "m4hittop__ab", "Hit The Top (Barcrest) (MPU4) (set 39)", + "m4hittop__ac", "Hit The Top (Barcrest) (MPU4) (set 40)", + "m4hittop__ad", "Hit The Top (Barcrest) (MPU4) (set 41)", + "m4hittop__ae", "Hit The Top (Barcrest) (MPU4) (set 42)", + "m4hittop__af", "Hit The Top (Barcrest) (MPU4) (set 43)", + "m4hittop__ag", "Hit The Top (Barcrest) (MPU4) (set 44)", + "m4hittop__ah", "Hit The Top (Barcrest) (MPU4) (set 45)", + "m4hittop__ai", "Hit The Top (Barcrest) (MPU4) (set 46)", + "m4hittop__aj", "Hit The Top (Barcrest) (MPU4) (set 47)", + "m4hittop__ak", "Hit The Top (Barcrest) (MPU4) (set 48)", + "m4hittop__al", "Hit The Top (Barcrest) (MPU4) (set 49)", + "m4hittop__am", "Hit The Top (Barcrest) (MPU4) (set 50)", + "m4hittop__an", "Hit The Top (Barcrest) (MPU4) (set 51)", + "m4hittop__ao", "Hit The Top (Barcrest) (MPU4) (set 52)", + "m4hittop__ap", "Hit The Top (Barcrest) (MPU4) (set 53)", + "m4hittop__aq", "Hit The Top (Barcrest) (MPU4) (set 54)", + "m4hittop__ar", "Hit The Top (Barcrest) (MPU4) (set 55)", + "m4hittop__as", "Hit The Top (Barcrest) (MPU4) (set 56)", + "m4hittop__at", "Hit The Top (Barcrest) (MPU4) (set 57)", + "m4hittop__au", "Hit The Top (Barcrest) (MPU4) (set 58)", + "m4hittop__av", "Hit The Top (Barcrest) (MPU4) (set 59)", + "m4hittop__aw", "Hit The Top (Barcrest) (MPU4) (set 60)", + "m4hittop__ax", "Hit The Top (Barcrest) (MPU4) (set 61)", + "m4hittop__b", "Hit The Top (Barcrest) (MPU4) (set 3)", + "m4hittop__c", "Hit The Top (Barcrest) (MPU4) (set 4)", + "m4hittop__d", "Hit The Top (Barcrest) (MPU4) (set 5)", + "m4hittop__e", "Hit The Top (Barcrest) (MPU4) (set 6)", + "m4hittop__f", "Hit The Top (Barcrest) (MPU4) (set 7)", + "m4hittop__g", "Hit The Top (Barcrest) (MPU4) (set 8)", + "m4hittop__h", "Hit The Top (Barcrest) (MPU4) (set 9)", + "m4hittop__i", "Hit The Top (Barcrest) (MPU4) (set 10)", + "m4hittop__j", "Hit The Top (Barcrest) (MPU4) (set 11)", + "m4hittop__k", "Hit The Top (Barcrest) (MPU4) (set 12)", + "m4hittop__l", "Hit The Top (Barcrest) (MPU4) (set 13)", + "m4hittop__m", "Hit The Top (Barcrest) (MPU4) (set 14)", + "m4hittop__n", "Hit The Top (Barcrest) (MPU4) (set 15)", + "m4hittop__o", "Hit The Top (Barcrest) (MPU4) (set 16)", + "m4hittop__p", "Hit The Top (Barcrest) (MPU4) (set 17)", + "m4hittop__q", "Hit The Top (Barcrest) (MPU4) (set 18)", + "m4hittop__r", "Hit The Top (Barcrest) (MPU4) (set 19)", + "m4hittop__s", "Hit The Top (Barcrest) (MPU4) (set 20)", + "m4hittop__t", "Hit The Top (Barcrest) (MPU4) (set 21)", + "m4hittop__u", "Hit The Top (Barcrest) (MPU4) (set 22)", + "m4hittop__v", "Hit The Top (Barcrest) (MPU4) (set 23)", + "m4hittop__w", "Hit The Top (Barcrest) (MPU4) (set 24)", + "m4hittop__x", "Hit The Top (Barcrest) (MPU4) (set 25)", + "m4hittop__y", "Hit The Top (Barcrest) (MPU4) (set 26)", + "m4hittop__z", "Hit The Top (Barcrest) (MPU4) (set 27)", + "m4hittp2", "Hit The Top (Barcrest) (MPU4, Mod 2 type, H4T 2.0, set 1)", + "m4hittp2a", "Hit The Top (Barcrest) (MPU4, Mod 2 type, H4T 2.0, set 2)", + "m4holdon", "Hold On (Barcrest) (Dutch) (MPU4)", + "m4holdtm", "Hold Timer (Barcrest) (Dutch) (MPU4) (DHT)", + "m4holywd", "Hollywood (Bwb) (MPU4)", + "m4hotcsh", "Hot Cash (Empire) (MPU4, set 1)", + "m4hotcsha", "Hot Cash (Empire) (MPU4, set 2)", + "m4hotcshb", "Hot Cash (Empire) (MPU4, set 3)", + "m4hotcshc", "Hot Cash (Empire) (MPU4, set 4)", + "m4hotrod", "Hot Rod (Barcrest) (MPU4) (set 1)", + "m4hotrod__a", "Hot Rod (Barcrest) (MPU4) (set 2)", + "m4hotrod__b", "Hot Rod (Barcrest) (MPU4) (set 3)", + "m4hotrod__c", "Hot Rod (Barcrest) (MPU4) (set 4)", + "m4hotrod__d", "Hot Rod (Barcrest) (MPU4) (set 5)", + "m4hotrod__e", "Hot Rod (Barcrest) (MPU4) (set 6)", + "m4hotrod__f", "Hot Rod (Barcrest) (MPU4) (set 7)", + "m4hotrod__g", "Hot Rod (Barcrest) (MPU4) (set 8)", + "m4hotrod__h", "Hot Rod (Barcrest) (MPU4) (set 9)", + "m4hotrod__i", "Hot Rod (Barcrest) (MPU4) (set 10)", + "m4hotrod__j", "Hot Rod (Barcrest) (MPU4) (set 11)", + "m4hotrod__k", "Hot Rod (Barcrest) (MPU4) (set 12)", + "m4hotrod__l", "Hot Rod (Barcrest) (MPU4) (set 13)", + "m4hotrod__m", "Hot Rod (Barcrest) (MPU4) (set 14)", + "m4hotrod__n", "Hot Rod (Barcrest) (MPU4) (set 15)", + "m4hotrod__o", "Hot Rod (Barcrest) (MPU4) (set 16)", + "m4hotrod__p", "Hot Rod (Barcrest) (MPU4) (set 17)", + "m4hotrod__q", "Hot Rod (Barcrest) (MPU4) (set 18)", + "m4hotrod__r", "Hot Rod (Barcrest) (MPU4) (set 19)", + "m4hotrod__s", "Hot Rod (Barcrest) (MPU4) (set 20)", + "m4hotrod__t", "Hot Rod (Barcrest) (MPU4) (set 21)", + "m4hotrod__u", "Hot Rod (Barcrest) (MPU4) (set 22)", + "m4hotrod__v", "Hot Rod (Barcrest) (MPU4) (set 23)", + "m4hpyjok", "Happy Joker (Barcrest) (Dutch) (MPU4) (DHJ1.2)", + "m4hslo", "unknown MPU4 'HOT 3.0' (MPU4?)", + "m4hstr", "Happy Streak (Coinworld) (MPU4) (set 1)", + "m4hstra", "Happy Streak (Coinworld) (MPU4) (set 2)", + "m4hstrb", "Happy Streak (Coinworld) (MPU4) (set 3)", + "m4hstrcs", "Casino Happy Streak (Coinworld) (MPU4) (set 1)", + "m4hstrcsa", "Casino Happy Streak (Coinworld) (MPU4) (set 2)", + "m4hstrcsb", "Casino Happy Streak (Coinworld) (MPU4) (set 3)", + "m4hstrcsc", "Casino Happy Streak (Coinworld) (MPU4) (set 4)", + "m4hstrcsd", "Casino Happy Streak (Coinworld) (MPU4) (set 5)", + "m4hvhel", "Heaven & Hell (Bwb) (MPU4) (set 1)", + "m4hvhel__a", "Heaven & Hell (Bwb) (MPU4) (set 2)", + "m4hvhel__b", "Heaven & Hell (Bwb) (MPU4) (set 3)", + "m4hvhel__c", "Heaven & Hell (Bwb) (MPU4) (set 4)", + "m4hvhel__d", "Heaven & Hell (Bwb) (MPU4) (set 5)", + "m4hvhel__e", "Heaven & Hell (Bwb) (MPU4) (set 6)", + "m4hvhel__f", "Heaven & Hell (Bwb) (MPU4) (set 7)", + "m4hvhel__g", "Heaven & Hell (Bwb) (MPU4) (set 8)", + "m4hvhel__h", "Heaven & Hell (Bwb) (MPU4) (set 9)", + "m4hypclb", "Hyper Viper Club (Barcrest) (MPU4) (set 1)", + "m4hypclb__a", "Hyper Viper Club (Barcrest) (MPU4) (set 2)", + "m4hypclb__b", "Hyper Viper Club (Barcrest) (MPU4) (set 3)", + "m4hypclb__c", "Hyper Viper Club (Barcrest) (MPU4) (set 4)", + "m4hypvip", "Hyper Viper (Barcrest) (MPU4) (set 1)", + "m4hypvip__a", "Hyper Viper (Barcrest) (MPU4) (set 2)", + "m4hypvip__b", "Hyper Viper (Barcrest) (MPU4) (set 3)", + "m4hypvip__c", "Hyper Viper (Barcrest) (MPU4) (set 4)", + "m4hypvip__d", "Hyper Viper (Barcrest) (MPU4) (set 5)", + "m4hypvip__e", "Hyper Viper (Barcrest) (MPU4) (set 6)", + "m4hypvip__f", "Hyper Viper (Barcrest) (MPU4) (set 7)", + "m4hypvip__g", "Hyper Viper (Barcrest) (MPU4) (set 8)", + "m4hypvip__h", "Hyper Viper (Barcrest) (MPU4) (set 9)", + "m4hypvip__i", "Hyper Viper (Barcrest) (MPU4) (set 10)", + "m4hypvip__j", "Hyper Viper (Barcrest) (MPU4) (set 11)", + "m4hypvip__k", "Hyper Viper (Barcrest) (MPU4) (set 12)", + "m4hypvip__l", "Hyper Viper (Barcrest) (MPU4) (set 13)", + "m4hypvip__m", "Hyper Viper (Barcrest) (MPU4) (set 14)", + "m4hypvip__n", "Hyper Viper (Barcrest) (MPU4) (set 15)", + "m4hypvip__o", "Hyper Viper (Barcrest) (MPU4) (set 16)", + "m4hypvip__p", "Hyper Viper (Barcrest) (MPU4) (set 17)", + "m4hypvip__q", "Hyper Viper (Barcrest) (MPU4) (set 18)", + "m4hypvip__r", "Hyper Viper (Barcrest) (MPU4) (set 19)", + "m4hypvip__s", "Hyper Viper (Barcrest) (MPU4) (set 20)", + "m4hypvip__t", "Hyper Viper (Barcrest) (MPU4) (set 21)", + "m4hypvip__u", "Hyper Viper (Barcrest) (MPU4) (set 22)", + "m4hypvip__v", "Hyper Viper (Barcrest) (MPU4) (set 23)", + "m4indycr", "Indy Cars (Bwb) (MPU4) (set 1)", + "m4indycr__a", "Indy Cars (Bwb) (MPU4) (set 2)", + "m4indycr__b", "Indy Cars (Bwb) (MPU4) (set 3)", + "m4indycr__c", "Indy Cars (Bwb) (MPU4) (set 4)", + "m4indycr__d", "Indy Cars (Bwb) (MPU4) (set 5)", + "m4indycr__e", "Indy Cars (Bwb) (MPU4) (set 6)", + "m4indycr__f", "Indy Cars (Bwb) (MPU4) (set 7)", + "m4intcep", "Interceptor (Barcrest) (MPU4) (INT 3.0)", + "m4intcepa", "Interceptor (Barcrest) (MPU4) (INT 3.0X)", + "m4intcepb", "Interceptor (Barcrest) (MPU4) (INT 1.1)", + "m4jakjok", "Jackpot Jokers (Bwb) (MPU4) (set 1)", + "m4jakjok__a", "Jackpot Jokers (Bwb) (MPU4) (set 2)", + "m4jakjok__b", "Jackpot Jokers (Bwb) (MPU4) (set 3)", + "m4jakjok__c", "Jackpot Jokers (Bwb) (MPU4) (set 4)", + "m4jakjoka", "Jackpot Jokers (alt) (Bwb) (MPU4)", + "m4jflash", "Jumping Jack Flash (Bwb) (MPU4) (set 1)", + "m4jflash__a", "Jumping Jack Flash (Bwb) (MPU4) (set 2)", + "m4jflash__b", "Jumping Jack Flash (Bwb) (MPU4) (set 3)", + "m4jflash__c", "Jumping Jack Flash (Bwb) (MPU4) (set 4)", + "m4jflash__d", "Jumping Jack Flash (Bwb) (MPU4) (set 5)", + "m4jflash__e", "Jumping Jack Flash (Bwb) (MPU4) (set 6)", + "m4jflash__f", "Jumping Jack Flash (Bwb) (MPU4) (set 7)", + "m4jflash__g", "Jumping Jack Flash (Bwb) (MPU4) (set 8)", + "m4jflash__h", "Jumping Jack Flash (Bwb) (MPU4) (set 9)", + "m4jflash__i", "Jumping Jack Flash (Bwb) (MPU4) (set 10)", + "m4jiggin", "Jiggin' In The Riggin' (Global) (MPU4) (set 1)", + "m4jiggina", "Jiggin' In The Riggin' (Global) (MPU4) (set 2)", + "m4jjc", "Jumping Jack Cash (Pcp) (MPU4) (set 1)", + "m4jjca", "Jumping Jack Cash (Pcp) (MPU4) (set 2)", + "m4jne", "The Jackpot's Not Enough (Empire) (MPU4)", + "m4jok2k", "Joker 2000 (Avantime?) (MPU4) (set 1)", + "m4jok2k__a", "Joker 2000 (Avantime?) (MPU4) (set 2)", + "m4jok2k__b", "Joker 2000 (Avantime?) (MPU4) (set 3)", + "m4jok300", "Jokers 300 (Barcrest) (German?) (MPU4)", + "m4jokmil", "Jokers Millennium (Barcrest) (German) (MPU4)", + "m4jolgem", "Jolly Gems (Barcrest) (MPU4) (set 1)", + "m4jolgem__0", "Jolly Gems (Barcrest) (MPU4) (set 28)", + "m4jolgem__1", "Jolly Gems (Barcrest) (MPU4) (set 29)", + "m4jolgem__2", "Jolly Gems (Barcrest) (MPU4) (set 30)", + "m4jolgem__3", "Jolly Gems (Barcrest) (MPU4) (set 31)", + "m4jolgem__4", "Jolly Gems (Barcrest) (MPU4) (set 32)", + "m4jolgem__5", "Jolly Gems (Barcrest) (MPU4) (set 33)", + "m4jolgem__6", "Jolly Gems (Barcrest) (MPU4) (set 34)", + "m4jolgem__7", "Jolly Gems (Barcrest) (MPU4) (set 35)", + "m4jolgem__8", "Jolly Gems (Barcrest) (MPU4) (set 36)", + "m4jolgem__9", "Jolly Gems (Barcrest) (MPU4) (set 37)", + "m4jolgem__a", "Jolly Gems (Barcrest) (MPU4) (set 2)", + "m4jolgem__aa", "Jolly Gems (Barcrest) (MPU4) (set 38)", + "m4jolgem__ab", "Jolly Gems (Barcrest) (MPU4) (set 39)", + "m4jolgem__ac", "Jolly Gems (Barcrest) (MPU4) (set 40)", + "m4jolgem__ad", "Jolly Gems (Barcrest) (MPU4) (set 41)", + "m4jolgem__ae", "Jolly Gems (Barcrest) (MPU4) (set 42)", + "m4jolgem__af", "Jolly Gems (Barcrest) (MPU4) (set 43)", + "m4jolgem__ag", "Jolly Gems (Barcrest) (MPU4) (set 44)", + "m4jolgem__ah", "Jolly Gems (Barcrest) (MPU4) (set 45)", + "m4jolgem__ai", "Jolly Gems (Barcrest) (MPU4) (set 46)", + "m4jolgem__aj", "Jolly Gems (Barcrest) (MPU4) (set 47)", + "m4jolgem__ak", "Jolly Gems (Barcrest) (MPU4) (set 48)", + "m4jolgem__al", "Jolly Gems (Barcrest) (MPU4) (set 49)", + "m4jolgem__am", "Jolly Gems (Barcrest) (MPU4) (set 50)", + "m4jolgem__an", "Jolly Gems (Barcrest) (MPU4) (set 51)", + "m4jolgem__ao", "Jolly Gems (Barcrest) (MPU4) (set 52)", + "m4jolgem__ap", "Jolly Gems (Barcrest) (MPU4) (set 53)", + "m4jolgem__b", "Jolly Gems (Barcrest) (MPU4) (set 3)", + "m4jolgem__c", "Jolly Gems (Barcrest) (MPU4) (set 4)", + "m4jolgem__d", "Jolly Gems (Barcrest) (MPU4) (set 5)", + "m4jolgem__e", "Jolly Gems (Barcrest) (MPU4) (set 6)", + "m4jolgem__f", "Jolly Gems (Barcrest) (MPU4) (set 7)", + "m4jolgem__g", "Jolly Gems (Barcrest) (MPU4) (set 8)", + "m4jolgem__h", "Jolly Gems (Barcrest) (MPU4) (set 9)", + "m4jolgem__i", "Jolly Gems (Barcrest) (MPU4) (set 10)", + "m4jolgem__j", "Jolly Gems (Barcrest) (MPU4) (set 11)", + "m4jolgem__k", "Jolly Gems (Barcrest) (MPU4) (set 12)", + "m4jolgem__l", "Jolly Gems (Barcrest) (MPU4) (set 13)", + "m4jolgem__m", "Jolly Gems (Barcrest) (MPU4) (set 14)", + "m4jolgem__n", "Jolly Gems (Barcrest) (MPU4) (set 15)", + "m4jolgem__o", "Jolly Gems (Barcrest) (MPU4) (set 16)", + "m4jolgem__p", "Jolly Gems (Barcrest) (MPU4) (set 17)", + "m4jolgem__q", "Jolly Gems (Barcrest) (MPU4) (set 18)", + "m4jolgem__r", "Jolly Gems (Barcrest) (MPU4) (set 19)", + "m4jolgem__s", "Jolly Gems (Barcrest) (MPU4) (set 20)", + "m4jolgem__t", "Jolly Gems (Barcrest) (MPU4) (set 21)", + "m4jolgem__u", "Jolly Gems (Barcrest) (MPU4) (set 22)", + "m4jolgem__v", "Jolly Gems (Barcrest) (MPU4) (set 23)", + "m4jolgem__w", "Jolly Gems (Barcrest) (MPU4) (set 24)", + "m4jolgem__x", "Jolly Gems (Barcrest) (MPU4) (set 25)", + "m4jolgem__y", "Jolly Gems (Barcrest) (MPU4) (set 26)", + "m4jolgem__z", "Jolly Gems (Barcrest) (MPU4) (set 27)", + "m4joljok", "Jolly Joker (Barcrest) (MPU4)", + "m4joljokd", "Jolly Joker (Barcrest) [Dutch] (MPU4) (DJJ)", + "m4joljokh", "Jolly Joker (Barcrest) [Hungarian] (MPU4) (HJJ)", + "m4joltav", "Jolly Taverner (Barcrest) (MPU4) (set 1)", + "m4joltava", "Jolly Taverner (Barcrest) (MPU4) (set 2)", + "m4joltavb", "Jolly Taverner (Barcrest) (MPU4) (set 3)", + "m4jp777", "Jackpot 777 (Cotswold Microsystems) (MPU4)", + "m4jpgem", "Jackpot Gems (Barcrest) (MPU4) (set 1)", + "m4jpgem__0", "Jackpot Gems (Barcrest) (MPU4) (set 28)", + "m4jpgem__1", "Jackpot Gems (Barcrest) (MPU4) (set 29)", + "m4jpgem__2", "Jackpot Gems (Barcrest) (MPU4) (set 30)", + "m4jpgem__3", "Jackpot Gems (Barcrest) (MPU4) (set 31)", + "m4jpgem__4", "Jackpot Gems (Barcrest) (MPU4) (set 32)", + "m4jpgem__5", "Jackpot Gems (Barcrest) (MPU4) (set 33)", + "m4jpgem__6", "Jackpot Gems (Barcrest) (MPU4) (set 34)", + "m4jpgem__7", "Jackpot Gems (Barcrest) (MPU4) (set 35)", + "m4jpgem__8", "Jackpot Gems (Barcrest) (MPU4) (set 36)", + "m4jpgem__9", "Jackpot Gems (Barcrest) (MPU4) (set 37)", + "m4jpgem__a", "Jackpot Gems (Barcrest) (MPU4) (set 2)", + "m4jpgem__a0", "Jackpot Gems (Barcrest) (MPU4) (set 64)", + "m4jpgem__a1", "Jackpot Gems (Barcrest) (MPU4) (set 65)", + "m4jpgem__a2", "Jackpot Gems (Barcrest) (MPU4) (set 66)", + "m4jpgem__a3", "Jackpot Gems (Barcrest) (MPU4) (set 67)", + "m4jpgem__a4", "Jackpot Gems (Barcrest) (MPU4) (set 68)", + "m4jpgem__a5", "Jackpot Gems (Barcrest) (MPU4) (set 69)", + "m4jpgem__a6", "Jackpot Gems (Barcrest) (MPU4) (set 70)", + "m4jpgem__a7", "Jackpot Gems (Barcrest) (MPU4) (set 71)", + "m4jpgem__a8", "Jackpot Gems (Barcrest) (MPU4) (set 72)", + "m4jpgem__a9", "Jackpot Gems (Barcrest) (MPU4) (set 73)", + "m4jpgem__aa", "Jackpot Gems (Barcrest) (MPU4) (set 38)", + "m4jpgem__ab", "Jackpot Gems (Barcrest) (MPU4) (set 39)", + "m4jpgem__ac", "Jackpot Gems (Barcrest) (MPU4) (set 40)", + "m4jpgem__ad", "Jackpot Gems (Barcrest) (MPU4) (set 41)", + "m4jpgem__ae", "Jackpot Gems (Barcrest) (MPU4) (set 42)", + "m4jpgem__af", "Jackpot Gems (Barcrest) (MPU4) (set 43)", + "m4jpgem__ag", "Jackpot Gems (Barcrest) (MPU4) (set 44)", + "m4jpgem__ah", "Jackpot Gems (Barcrest) (MPU4) (set 45)", + "m4jpgem__ai", "Jackpot Gems (Barcrest) (MPU4) (set 46)", + "m4jpgem__aj", "Jackpot Gems (Barcrest) (MPU4) (set 47)", + "m4jpgem__ak", "Jackpot Gems (Barcrest) (MPU4) (set 48)", + "m4jpgem__al", "Jackpot Gems (Barcrest) (MPU4) (set 49)", + "m4jpgem__am", "Jackpot Gems (Barcrest) (MPU4) (set 50)", + "m4jpgem__an", "Jackpot Gems (Barcrest) (MPU4) (set 51)", + "m4jpgem__ao", "Jackpot Gems (Barcrest) (MPU4) (set 52)", + "m4jpgem__ap", "Jackpot Gems (Barcrest) (MPU4) (set 53)", + "m4jpgem__aq", "Jackpot Gems (Barcrest) (MPU4) (set 54)", + "m4jpgem__ar", "Jackpot Gems (Barcrest) (MPU4) (set 55)", + "m4jpgem__as", "Jackpot Gems (Barcrest) (MPU4) (set 56)", + "m4jpgem__at", "Jackpot Gems (Barcrest) (MPU4) (set 57)", + "m4jpgem__au", "Jackpot Gems (Barcrest) (MPU4) (set 58)", + "m4jpgem__av", "Jackpot Gems (Barcrest) (MPU4) (set 59)", + "m4jpgem__aw", "Jackpot Gems (Barcrest) (MPU4) (set 60)", + "m4jpgem__ax", "Jackpot Gems (Barcrest) (MPU4) (set 61)", + "m4jpgem__ay", "Jackpot Gems (Barcrest) (MPU4) (set 62)", + "m4jpgem__az", "Jackpot Gems (Barcrest) (MPU4) (set 63)", + "m4jpgem__b", "Jackpot Gems (Barcrest) (MPU4) (set 3)", + "m4jpgem__ba", "Jackpot Gems (Barcrest) (MPU4) (set 74)", + "m4jpgem__bb", "Jackpot Gems (Barcrest) (MPU4) (set 75)", + "m4jpgem__bc", "Jackpot Gems (Barcrest) (MPU4) (set 76)", + "m4jpgem__bd", "Jackpot Gems (Barcrest) (MPU4) (set 77)", + "m4jpgem__be", "Jackpot Gems (Barcrest) (MPU4) (set 78)", + "m4jpgem__bf", "Jackpot Gems (Barcrest) (MPU4) (set 79)", + "m4jpgem__bg", "Jackpot Gems (Barcrest) (MPU4) (set 80)", + "m4jpgem__bh", "Jackpot Gems (Barcrest) (MPU4) (set 81)", + "m4jpgem__bi", "Jackpot Gems (Barcrest) (MPU4) (set 82)", + "m4jpgem__bj", "Jackpot Gems (Barcrest) (MPU4) (set 83)", + "m4jpgem__bk", "Jackpot Gems (Barcrest) (MPU4) (set 84)", + "m4jpgem__bl", "Jackpot Gems (Barcrest) (MPU4) (set 85)", + "m4jpgem__bm", "Jackpot Gems (Barcrest) (MPU4) (set 86)", + "m4jpgem__bn", "Jackpot Gems (Barcrest) (MPU4) (set 87)", + "m4jpgem__bo", "Jackpot Gems (Barcrest) (MPU4) (set 88)", + "m4jpgem__bp", "Jackpot Gems (Barcrest) (MPU4) (set 89)", + "m4jpgem__c", "Jackpot Gems (Barcrest) (MPU4) (set 4)", + "m4jpgem__d", "Jackpot Gems (Barcrest) (MPU4) (set 5)", + "m4jpgem__e", "Jackpot Gems (Barcrest) (MPU4) (set 6)", + "m4jpgem__f", "Jackpot Gems (Barcrest) (MPU4) (set 7)", + "m4jpgem__g", "Jackpot Gems (Barcrest) (MPU4) (set 8)", + "m4jpgem__h", "Jackpot Gems (Barcrest) (MPU4) (set 9)", + "m4jpgem__i", "Jackpot Gems (Barcrest) (MPU4) (set 10)", + "m4jpgem__j", "Jackpot Gems (Barcrest) (MPU4) (set 11)", + "m4jpgem__k", "Jackpot Gems (Barcrest) (MPU4) (set 12)", + "m4jpgem__l", "Jackpot Gems (Barcrest) (MPU4) (set 13)", + "m4jpgem__m", "Jackpot Gems (Barcrest) (MPU4) (set 14)", + "m4jpgem__n", "Jackpot Gems (Barcrest) (MPU4) (set 15)", + "m4jpgem__o", "Jackpot Gems (Barcrest) (MPU4) (set 16)", + "m4jpgem__p", "Jackpot Gems (Barcrest) (MPU4) (set 17)", + "m4jpgem__q", "Jackpot Gems (Barcrest) (MPU4) (set 18)", + "m4jpgem__r", "Jackpot Gems (Barcrest) (MPU4) (set 19)", + "m4jpgem__s", "Jackpot Gems (Barcrest) (MPU4) (set 20)", + "m4jpgem__t", "Jackpot Gems (Barcrest) (MPU4) (set 21)", + "m4jpgem__u", "Jackpot Gems (Barcrest) (MPU4) (set 22)", + "m4jpgem__v", "Jackpot Gems (Barcrest) (MPU4) (set 23)", + "m4jpgem__w", "Jackpot Gems (Barcrest) (MPU4) (set 24)", + "m4jpgem__x", "Jackpot Gems (Barcrest) (MPU4) (set 25)", + "m4jpgem__y", "Jackpot Gems (Barcrest) (MPU4) (set 26)", + "m4jpgem__z", "Jackpot Gems (Barcrest) (MPU4) (set 27)", + "m4jpgemc", "Jackpot Gems Classic (Barcrest) (MPU4) (set 1)", + "m4jpgemc__a", "Jackpot Gems Classic (Barcrest) (MPU4) (set 2)", + "m4jpgemc__b", "Jackpot Gems Classic (Barcrest) (MPU4) (set 3)", + "m4jpgemc__c", "Jackpot Gems Classic (Barcrest) (MPU4) (set 4)", + "m4jpgemc__d", "Jackpot Gems Classic (Barcrest) (MPU4) (set 5)", + "m4jpgemc__e", "Jackpot Gems Classic (Barcrest) (MPU4) (set 6)", + "m4jpgemc__f", "Jackpot Gems Classic (Barcrest) (MPU4) (set 7)", + "m4jpgemc__g", "Jackpot Gems Classic (Barcrest) (MPU4) (set 8)", + "m4jpgemc__h", "Jackpot Gems Classic (Barcrest) (MPU4) (set 9)", + "m4jpgemc__i", "Jackpot Gems Classic (Barcrest) (MPU4) (set 10)", + "m4jpgemc__j", "Jackpot Gems Classic (Barcrest) (MPU4) (set 11)", + "m4jpgemc__k", "Jackpot Gems Classic (Barcrest) (MPU4) (set 12)", + "m4jpgemc__l", "Jackpot Gems Classic (Barcrest) (MPU4) (set 13)", + "m4jpgemc__m", "Jackpot Gems Classic (Barcrest) (MPU4) (set 14)", + "m4jpgemc__n", "Jackpot Gems Classic (Barcrest) (MPU4) (set 15)", + "m4jpgemc__o", "Jackpot Gems Classic (Barcrest) (MPU4) (set 16)", + "m4jpgemc__p", "Jackpot Gems Classic (Barcrest) (MPU4) (set 17)", + "m4jpgemc__q", "Jackpot Gems Classic (Barcrest) (MPU4) (set 18)", + "m4jpgemc__r", "Jackpot Gems Classic (Barcrest) (MPU4) (set 19)", + "m4jpgemc__s", "Jackpot Gems Classic (Barcrest) (MPU4) (set 20)", + "m4jpgemc__t", "Jackpot Gems Classic (Barcrest) (MPU4) (set 21)", + "m4jpgemc__u", "Jackpot Gems Classic (Barcrest) (MPU4) (set 22)", + "m4jpgemc__v", "Jackpot Gems Classic (Barcrest) (MPU4) (set 23)", + "m4jpgemc__w", "Jackpot Gems Classic (Barcrest) (MPU4) (set 24)", + "m4jpjmp", "Jackpot Jump (Barcrest) (MPU4) (set 1)", + "m4jpjmpa", "Jackpot Jump (Barcrest) (MPU4) (set 2)", + "m4jpmcla", "Old Timer (Barcrest) (Dutch, alt 'JPM Classic' sound roms) (DOT1.1)", + "m4jungj", "Jungle Japes (MPU4?) (set 1)", + "m4jungja", "Jungle Japes (MPU4?) (set 2)", + "m4jungjb", "Jungle Japes (MPU4?) (set 3)", + "m4jungjc", "Jungle Japes (MPU4?) (set 4)", + "m4jungjk", "Jungle Jackpots (Qps) (MPU4) (set 1)", + "m4jungjk__a", "Jungle Jackpots (Qps) (MPU4) (set 2)", + "m4jungjk__b", "Jungle Jackpots (Qps) (MPU4) (set 3)", + "m4jungjk__c", "Jungle Jackpots (Qps) (MPU4) (set 4)", + "m4jungjk__d", "Jungle Jackpots (Qps) (MPU4) (set 5)", + "m4jungjk__e", "Jungle Jackpots (Qps) (MPU4) (set 6)", + "m4jwlcwn", "Jewel In the Crown (Barcrest) (MPU4) (set 1)", + "m4jwlcwn__0", "Jewel In the Crown (Barcrest) (MPU4) (set 28)", + "m4jwlcwn__1", "Jewel In the Crown (Barcrest) (MPU4) (set 29)", + "m4jwlcwn__2", "Jewel In the Crown (Barcrest) (MPU4) (set 30)", + "m4jwlcwn__3", "Jewel In the Crown (Barcrest) (MPU4) (set 31)", + "m4jwlcwn__4", "Jewel In the Crown (Barcrest) (MPU4) (set 32)", + "m4jwlcwn__5", "Jewel In the Crown (Barcrest) (MPU4) (set 33)", + "m4jwlcwn__6", "Jewel In the Crown (Barcrest) (MPU4) (set 34)", + "m4jwlcwn__a", "Jewel In the Crown (Barcrest) (MPU4) (set 2)", + "m4jwlcwn__b", "Jewel In the Crown (Barcrest) (MPU4) (set 3)", + "m4jwlcwn__c", "Jewel In the Crown (Barcrest) (MPU4) (set 4)", + "m4jwlcwn__d", "Jewel In the Crown (Barcrest) (MPU4) (set 5)", + "m4jwlcwn__e", "Jewel In the Crown (Barcrest) (MPU4) (set 6)", + "m4jwlcwn__f", "Jewel In the Crown (Barcrest) (MPU4) (set 7)", + "m4jwlcwn__g", "Jewel In the Crown (Barcrest) (MPU4) (set 8)", + "m4jwlcwn__h", "Jewel In the Crown (Barcrest) (MPU4) (set 9)", + "m4jwlcwn__i", "Jewel In the Crown (Barcrest) (MPU4) (set 10)", + "m4jwlcwn__j", "Jewel In the Crown (Barcrest) (MPU4) (set 11)", + "m4jwlcwn__k", "Jewel In the Crown (Barcrest) (MPU4) (set 12)", + "m4jwlcwn__l", "Jewel In the Crown (Barcrest) (MPU4) (set 13)", + "m4jwlcwn__m", "Jewel In the Crown (Barcrest) (MPU4) (set 14)", + "m4jwlcwn__n", "Jewel In the Crown (Barcrest) (MPU4) (set 15)", + "m4jwlcwn__o", "Jewel In the Crown (Barcrest) (MPU4) (set 16)", + "m4jwlcwn__p", "Jewel In the Crown (Barcrest) (MPU4) (set 17)", + "m4jwlcwn__q", "Jewel In the Crown (Barcrest) (MPU4) (set 18)", + "m4jwlcwn__r", "Jewel In the Crown (Barcrest) (MPU4) (set 19)", + "m4jwlcwn__s", "Jewel In the Crown (Barcrest) (MPU4) (set 20)", + "m4jwlcwn__t", "Jewel In the Crown (Barcrest) (MPU4) (set 21)", + "m4jwlcwn__u", "Jewel In the Crown (Barcrest) (MPU4) (set 22)", + "m4jwlcwn__v", "Jewel In the Crown (Barcrest) (MPU4) (set 23)", + "m4jwlcwn__w", "Jewel In the Crown (Barcrest) (MPU4) (set 24)", + "m4jwlcwn__x", "Jewel In the Crown (Barcrest) (MPU4) (set 25)", + "m4jwlcwn__y", "Jewel In the Crown (Barcrest) (MPU4) (set 26)", + "m4jwlcwn__z", "Jewel In the Crown (Barcrest) (MPU4) (set 27)", + "m4kingg", "King George (Avantime?) (MPU4) (set 1)", + "m4kingg__a", "King George (Avantime?) (MPU4) (set 2)", + "m4kingq", "Kings & Queens (Barcrest) (MPU4) (set 1)", + "m4kingq__a", "Kings & Queens (Barcrest) (MPU4) (set 2)", + "m4kingq__b", "Kings & Queens (Barcrest) (MPU4) (set 3)", + "m4kingq__c", "Kings & Queens (Barcrest) (MPU4) (set 4)", + "m4kingq__d", "Kings & Queens (Barcrest) (MPU4) (set 5)", + "m4kingq__e", "Kings & Queens (Barcrest) (MPU4) (set 6)", + "m4kingq__f", "Kings & Queens (Barcrest) (MPU4) (set 7)", + "m4kingq__g", "Kings & Queens (Barcrest) (MPU4) (set 8)", + "m4kingq__h", "Kings & Queens (Barcrest) (MPU4) (set 9)", + "m4kingq__i", "Kings & Queens (Barcrest) (MPU4) (set 10)", + "m4kingq__j", "Kings & Queens (Barcrest) (MPU4) (set 11)", + "m4kingq__k", "Kings & Queens (Barcrest) (MPU4) (set 12)", + "m4kingq__l", "Kings & Queens (Barcrest) (MPU4) (set 13)", + "m4kingq__m", "Kings & Queens (Barcrest) (MPU4) (set 14)", + "m4kingq__n", "Kings & Queens (Barcrest) (MPU4) (set 15)", + "m4kingq__o", "Kings & Queens (Barcrest) (MPU4) (set 16)", + "m4kingq__p", "Kings & Queens (Barcrest) (MPU4) (set 17)", + "m4kingq__r", "Kings & Queens (Barcrest) (MPU4) (set 18)", + "m4kingq__s", "Kings & Queens (Barcrest) (MPU4) (set 19)", + "m4kingq__t", "Kings & Queens (Barcrest) (MPU4) (set 20)", + "m4kingqc", "Kings & Queens Classic (Barcrest) (MPU4) (set 1)", + "m4kingqc__0", "Kings & Queens Classic (Barcrest) (MPU4) (set 26)", + "m4kingqc__1", "Kings & Queens Classic (Barcrest) (MPU4) (set 27)", + "m4kingqc__2", "Kings & Queens Classic (Barcrest) (MPU4) (set 28)", + "m4kingqc__3", "Kings & Queens Classic (Barcrest) (MPU4) (set 29)", + "m4kingqc__4", "Kings & Queens Classic (Barcrest) (MPU4) (set 30)", + "m4kingqc__5", "Kings & Queens Classic (Barcrest) (MPU4) (set 31)", + "m4kingqc__a", "Kings & Queens Classic (Barcrest) (MPU4) (set 2)", + "m4kingqc__b", "Kings & Queens Classic (Barcrest) (MPU4) (set 3)", + "m4kingqc__c", "Kings & Queens Classic (Barcrest) (MPU4) (set 4)", + "m4kingqc__d", "Kings & Queens Classic (Barcrest) (MPU4) (set 5)", + "m4kingqc__e", "Kings & Queens Classic (Barcrest) (MPU4) (set 6)", + "m4kingqc__f", "Kings & Queens Classic (Barcrest) (MPU4) (set 7)", + "m4kingqc__g", "Kings & Queens Classic (Barcrest) (MPU4) (set 8)", + "m4kingqc__h", "Kings & Queens Classic (Barcrest) (MPU4) (set 9)", + "m4kingqc__i", "Kings & Queens Classic (Barcrest) (MPU4) (set 10)", + "m4kingqc__j", "Kings & Queens Classic (Barcrest) (MPU4) (set 11)", + "m4kingqc__k", "Kings & Queens Classic (Barcrest) (MPU4) (set 12)", + "m4kingqc__l", "Kings & Queens Classic (Barcrest) (MPU4) (set 13)", + "m4kingqc__m", "Kings & Queens Classic (Barcrest) (MPU4) (set 14)", + "m4kingqc__n", "Kings & Queens Classic (Barcrest) (MPU4) (set 15)", + "m4kingqc__q", "Kings & Queens Classic (Barcrest) (MPU4) (set 16)", + "m4kingqc__r", "Kings & Queens Classic (Barcrest) (MPU4) (set 17)", + "m4kingqc__s", "Kings & Queens Classic (Barcrest) (MPU4) (set 18)", + "m4kingqc__t", "Kings & Queens Classic (Barcrest) (MPU4) (set 19)", + "m4kingqc__u", "Kings & Queens Classic (Barcrest) (MPU4) (set 20)", + "m4kingqc__v", "Kings & Queens Classic (Barcrest) (MPU4) (set 21)", + "m4kingqc__w", "Kings & Queens Classic (Barcrest) (MPU4) (set 22)", + "m4kingqc__x", "Kings & Queens Classic (Barcrest) (MPU4) (set 23)", + "m4kingqc__y", "Kings & Queens Classic (Barcrest) (MPU4) (set 24)", + "m4kingqc__z", "Kings & Queens Classic (Barcrest) (MPU4) (set 25)", + "m4kingqn", "Kings & Queens Club (Crystal) (MPU4) (set 1)", + "m4kingqna", "Kings & Queens Club (Crystal) (MPU4) (set 2)", + "m4kqclub", "Kings & Queens Club (Newby) (MPU4)", + "m4lazy", "Lazy Bones (Bwb) (MPU4) (set 1)", + "m4lazya", "Lazy Bones (Bwb) (MPU4) (set 2)", + "m4lazyb", "Lazy Bones (Bwb) (MPU4) (set 3)", + "m4libty", "Liberty (Barcrest) (Dutch) (MPU4)", + "m4lineup", "Line Up (Bwb - Barcrest) (MPU4) (set 1)", + "m4lineupa", "Line Up (Bwb - Barcrest) (MPU4) (set 2)", + "m4ln7", "Lucky No7 (Bwb) (MPU4) (set 1)", + "m4ln7__a", "Lucky No7 (Bwb) (MPU4) (set 2)", + "m4ln7__b", "Lucky No7 (Bwb) (MPU4) (set 3)", + "m4ln7__c", "Lucky No7 (Bwb) (MPU4) (set 4)", + "m4ln7__d", "Lucky No7 (Bwb) (MPU4) (set 5)", + "m4loadmn", "Loads A Money (Barcrest) (MPU4) (set 1)", + "m4loadmna", "Loads A Money (Barcrest) (MPU4) (set 2)", + "m4loadmnb", "Loads A Money (Barcrest) (MPU4) (set 3)", + "m4looplt", "Loop The Loot (Qps) (MPU4) (set 1)", + "m4looplt__a", "Loop The Loot (Qps) (MPU4) (set 2)", + "m4looplt__b", "Loop The Loot (Qps) (MPU4) (set 3)", + "m4looplt__c", "Loop The Loot (Qps) (MPU4) (set 4)", + "m4looplt__d", "Loop The Loot (Qps) (MPU4) (set 5)", + "m4looplt__e", "Loop The Loot (Qps) (MPU4) (set 6)", + "m4looplt__f", "Loop The Loot (Qps) (MPU4) (set 7)", + "m4looplt__g", "Loop The Loot (Qps) (MPU4) (set 8)", + "m4looplt__h", "Loop The Loot (Qps) (MPU4) (set 9)", + "m4looplt__i", "Loop The Loot (Qps) (MPU4) (set 10)", + "m4looplt__j", "Loop The Loot (Qps) (MPU4) (set 11)", + "m4looplt__k", "Loop The Loot (Qps) (MPU4) (set 12)", + "m4looplt__l", "Loop The Loot (Qps) (MPU4) (set 13)", + "m4looplt__m", "Loop The Loot (Qps) (MPU4) (set 14)", + "m4lotclb", "Lottery Club (Crystal) (MPU4) (set 1)", + "m4lotclba", "Lottery Club (Crystal) (MPU4) (set 2)", + "m4lotty", "Lotty Time (Union) (MPU4)", + "m4luck7", "Lucky 7 (Barcrest) (Dutch) (MPU4)", + "m4luckdv", "Lucky Devil (Barcrest) [Czech] (MPU4)", + "m4luckdvd", "Lucky Devil (Barcrest) [Dutch] (MPU4) (DLD)", + "m4lucklv", "Lucky Las Vegas (Barcrest) (MPU4) (set 1)", + "m4lucklv__0", "Lucky Las Vegas (Barcrest) (MPU4) (set 28)", + "m4lucklv__1", "Lucky Las Vegas (Barcrest) (MPU4) (set 29)", + "m4lucklv__2", "Lucky Las Vegas (Barcrest) (MPU4) (set 30)", + "m4lucklv__3", "Lucky Las Vegas (Barcrest) (MPU4) (set 31)", + "m4lucklv__4", "Lucky Las Vegas (Barcrest) (MPU4) (set 32)", + "m4lucklv__5", "Lucky Las Vegas (Barcrest) (MPU4) (set 33)", + "m4lucklv__6", "Lucky Las Vegas (Barcrest) (MPU4) (set 34)", + "m4lucklv__7", "Lucky Las Vegas (Barcrest) (MPU4) (set 35)", + "m4lucklv__8", "Lucky Las Vegas (Barcrest) (MPU4) (set 36)", + "m4lucklv__9", "Lucky Las Vegas (Barcrest) (MPU4) (set 37)", + "m4lucklv__a", "Lucky Las Vegas (Barcrest) (MPU4) (set 2)", + "m4lucklv__aa", "Lucky Las Vegas (Barcrest) (MPU4) (set 38)", + "m4lucklv__ab", "Lucky Las Vegas (Barcrest) (MPU4) (set 39)", + "m4lucklv__ac", "Lucky Las Vegas (Barcrest) (MPU4) (set 40)", + "m4lucklv__ad", "Lucky Las Vegas (Barcrest) (MPU4) (set 41)", + "m4lucklv__ae", "Lucky Las Vegas (Barcrest) (MPU4) (set 42)", + "m4lucklv__af", "Lucky Las Vegas (Barcrest) (MPU4) (set 43)", + "m4lucklv__ag", "Lucky Las Vegas (Barcrest) (MPU4) (set 44)", + "m4lucklv__ah", "Lucky Las Vegas (Barcrest) (MPU4) (set 45)", + "m4lucklv__ai", "Lucky Las Vegas (Barcrest) (MPU4) (set 46)", + "m4lucklv__b", "Lucky Las Vegas (Barcrest) (MPU4) (set 3)", + "m4lucklv__c", "Lucky Las Vegas (Barcrest) (MPU4) (set 4)", + "m4lucklv__d", "Lucky Las Vegas (Barcrest) (MPU4) (set 5)", + "m4lucklv__e", "Lucky Las Vegas (Barcrest) (MPU4) (set 6)", + "m4lucklv__f", "Lucky Las Vegas (Barcrest) (MPU4) (set 7)", + "m4lucklv__g", "Lucky Las Vegas (Barcrest) (MPU4) (set 8)", + "m4lucklv__h", "Lucky Las Vegas (Barcrest) (MPU4) (set 9)", + "m4lucklv__i", "Lucky Las Vegas (Barcrest) (MPU4) (set 10)", + "m4lucklv__j", "Lucky Las Vegas (Barcrest) (MPU4) (set 11)", + "m4lucklv__k", "Lucky Las Vegas (Barcrest) (MPU4) (set 12)", + "m4lucklv__l", "Lucky Las Vegas (Barcrest) (MPU4) (set 13)", + "m4lucklv__m", "Lucky Las Vegas (Barcrest) (MPU4) (set 14)", + "m4lucklv__n", "Lucky Las Vegas (Barcrest) (MPU4) (set 15)", + "m4lucklv__o", "Lucky Las Vegas (Barcrest) (MPU4) (set 16)", + "m4lucklv__p", "Lucky Las Vegas (Barcrest) (MPU4) (set 17)", + "m4lucklv__q", "Lucky Las Vegas (Barcrest) (MPU4) (set 18)", + "m4lucklv__r", "Lucky Las Vegas (Barcrest) (MPU4) (set 19)", + "m4lucklv__s", "Lucky Las Vegas (Barcrest) (MPU4) (set 20)", + "m4lucklv__t", "Lucky Las Vegas (Barcrest) (MPU4) (set 21)", + "m4lucklv__u", "Lucky Las Vegas (Barcrest) (MPU4) (set 22)", + "m4lucklv__v", "Lucky Las Vegas (Barcrest) (MPU4) (set 23)", + "m4lucklv__w", "Lucky Las Vegas (Barcrest) (MPU4) (set 24)", + "m4lucklv__x", "Lucky Las Vegas (Barcrest) (MPU4) (set 25)", + "m4lucklv__y", "Lucky Las Vegas (Barcrest) (MPU4) (set 26)", + "m4lucklv__z", "Lucky Las Vegas (Barcrest) (MPU4) (set 27)", + "m4lucksc", "Lucky Strike Club (Barcrest) (MPU4) (set 1)", + "m4lucksc__a", "Lucky Strike Club (Barcrest) (MPU4) (set 2)", + "m4lucksc__b", "Lucky Strike Club (Barcrest) (MPU4) (set 3)", + "m4lucksc__c", "Lucky Strike Club (Barcrest) (MPU4) (set 4)", + "m4lucksc__d", "Lucky Strike Club (Barcrest) (MPU4) (set 5)", + "m4lucksc__e", "Lucky Strike Club (Barcrest) (MPU4) (set 6)", + "m4lucksc__f", "Lucky Strike Club (Barcrest) (MPU4) (set 7)", + "m4lucksc__g", "Lucky Strike Club (Barcrest) (MPU4) (set 8)", + "m4lucksc__h", "Lucky Strike Club (Barcrest) (MPU4) (set 9)", + "m4lucksc__i", "Lucky Strike Club (Barcrest) (MPU4) (set 10)", + "m4lucksc__j", "Lucky Strike Club (Barcrest) (MPU4) (set 11)", + "m4lucksc__k", "Lucky Strike Club (Barcrest) (MPU4) (set 12)", + "m4lucksc__l", "Lucky Strike Club (Barcrest) (MPU4) (set 13)", + "m4luckst", "Lucky Strike (Barcrest) (MPU4) (set 1)", + "m4luckst__0", "Lucky Strike (Barcrest) (MPU4) (set 28)", + "m4luckst__1", "Lucky Strike (Barcrest) (MPU4) (set 29)", + "m4luckst__2", "Lucky Strike (Barcrest) (MPU4) (set 30)", + "m4luckst__3", "Lucky Strike (Barcrest) (MPU4) (set 31)", + "m4luckst__4", "Lucky Strike (Barcrest) (MPU4) (set 32)", + "m4luckst__5", "Lucky Strike (Barcrest) (MPU4) (set 33)", + "m4luckst__6", "Lucky Strike (Barcrest) (MPU4) (set 34)", + "m4luckst__7", "Lucky Strike (Barcrest) (MPU4) (set 35)", + "m4luckst__8", "Lucky Strike (Barcrest) (MPU4) (set 36)", + "m4luckst__9", "Lucky Strike (Barcrest) (MPU4) (set 37)", + "m4luckst__a", "Lucky Strike (Barcrest) (MPU4) (set 2)", + "m4luckst__aa", "Lucky Strike (Barcrest) (MPU4) (set 38)", + "m4luckst__ab", "Lucky Strike (Barcrest) (MPU4) (set 39)", + "m4luckst__ac", "Lucky Strike (Barcrest) (MPU4) (set 40)", + "m4luckst__ad", "Lucky Strike (Barcrest) (MPU4) (set 41)", + "m4luckst__ae", "Lucky Strike (Barcrest) (MPU4) (set 42)", + "m4luckst__af", "Lucky Strike (Barcrest) (MPU4) (set 43)", + "m4luckst__ag", "Lucky Strike (Barcrest) (MPU4) (set 44)", + "m4luckst__ah", "Lucky Strike (Barcrest) (MPU4) (set 45)", + "m4luckst__ai", "Lucky Strike (Barcrest) (MPU4) (set 46)", + "m4luckst__aj", "Lucky Strike (Barcrest) (MPU4) (set 47)", + "m4luckst__ak", "Lucky Strike (Barcrest) (MPU4) (set 48)", + "m4luckst__al", "Lucky Strike (Barcrest) (MPU4) (set 49)", + "m4luckst__am", "Lucky Strike (Barcrest) (MPU4) (set 50)", + "m4luckst__an", "Lucky Strike (Barcrest) (MPU4) (set 51)", + "m4luckst__ao", "Lucky Strike (Barcrest) (MPU4) (set 52)", + "m4luckst__ap", "Lucky Strike (Barcrest) (MPU4) (set 53)", + "m4luckst__aq", "Lucky Strike (Barcrest) (MPU4) (set 54)", + "m4luckst__ar", "Lucky Strike (Barcrest) (MPU4) (set 55)", + "m4luckst__as", "Lucky Strike (Barcrest) (MPU4) (set 56)", + "m4luckst__at", "Lucky Strike (Barcrest) (MPU4) (set 57)", + "m4luckst__au", "Lucky Strike (Barcrest) (MPU4) (set 58)", + "m4luckst__av", "Lucky Strike (Barcrest) (MPU4) (set 59)", + "m4luckst__aw", "Lucky Strike (Barcrest) (MPU4) (set 60)", + "m4luckst__b", "Lucky Strike (Barcrest) (MPU4) (set 3)", + "m4luckst__c", "Lucky Strike (Barcrest) (MPU4) (set 4)", + "m4luckst__d", "Lucky Strike (Barcrest) (MPU4) (set 5)", + "m4luckst__e", "Lucky Strike (Barcrest) (MPU4) (set 6)", + "m4luckst__f", "Lucky Strike (Barcrest) (MPU4) (set 7)", + "m4luckst__g", "Lucky Strike (Barcrest) (MPU4) (set 8)", + "m4luckst__h", "Lucky Strike (Barcrest) (MPU4) (set 9)", + "m4luckst__i", "Lucky Strike (Barcrest) (MPU4) (set 10)", + "m4luckst__j", "Lucky Strike (Barcrest) (MPU4) (set 11)", + "m4luckst__k", "Lucky Strike (Barcrest) (MPU4) (set 12)", + "m4luckst__l", "Lucky Strike (Barcrest) (MPU4) (set 13)", + "m4luckst__m", "Lucky Strike (Barcrest) (MPU4) (set 14)", + "m4luckst__n", "Lucky Strike (Barcrest) (MPU4) (set 15)", + "m4luckst__p", "Lucky Strike (Barcrest) (MPU4) (set 17)", + "m4luckst__q", "Lucky Strike (Barcrest) (MPU4) (set 18)", + "m4luckst__r", "Lucky Strike (Barcrest) (MPU4) (set 19)", + "m4luckst__s", "Lucky Strike (Barcrest) (MPU4) (set 20)", + "m4luckst__t", "Lucky Strike (Barcrest) (MPU4) (set 21)", + "m4luckst__u", "Lucky Strike (Barcrest) (MPU4) (set 22)", + "m4luckst__v", "Lucky Strike (Barcrest) (MPU4) (set 23)", + "m4luckst__w", "Lucky Strike (Barcrest) (MPU4) (set 24)", + "m4luckst__x", "Lucky Strike (Barcrest) (MPU4) (set 25)", + "m4luckst__y", "Lucky Strike (Barcrest) (MPU4) (set 26)", + "m4luckst__z", "Lucky Strike (Barcrest) (MPU4) (set 27)", + "m4luckwb", "Lucky Wild Boar (Barcrest) (MPU4) (set 1)", + "m4luckwba", "Lucky Wild Boar (Barcrest) (MPU4) (set 2)", + "m4luckwbb", "Lucky Wild Boar (Barcrest) (MPU4) (set 3)", + "m4luckwbc", "Lucky Wild Boar (Barcrest) (MPU4) (set 4)", + "m4luckwbd", "Lucky Wild Boar (Barcrest) (MPU4) (set 5)", + "m4luckwbe", "Lucky Wild Boar (Barcrest) (MPU4) (set 6)", + "m4luckwbf", "Lucky Wild Boar (Barcrest) (MPU4) (set 7)", + "m4luxor", "Luxor (Barcrest) (MPU4) (set 1)", + "m4luxor__a", "Luxor (Barcrest) (MPU4) (set 2)", + "m4luxor__b", "Luxor (Barcrest) (MPU4) (set 3)", + "m4luxor__c", "Luxor (Barcrest) (MPU4) (set 4)", + "m4luxor__d", "Luxor (Barcrest) (MPU4) (set 5)", + "m4luxor__e", "Luxor (Barcrest) (MPU4) (set 6)", + "m4luxor__f", "Luxor (Barcrest) (MPU4) (set 7)", + "m4luxor__g", "Luxor (Barcrest) (MPU4) (set 8)", + "m4luxor__h", "Luxor (Barcrest) (MPU4) (set 9)", + "m4luxor__i", "Luxor (Barcrest) (MPU4) (set 10)", + "m4luxor__j", "Luxor (Barcrest) (MPU4) (set 11)", + "m4luxor__k", "Luxor (Barcrest) (MPU4) (set 12)", + "m4luxor__l", "Luxor (Barcrest) (MPU4) (set 13)", + "m4luxor__m", "Luxor (Barcrest) (MPU4) (set 14)", + "m4luxor__n", "Luxor (Barcrest) (MPU4) (set 15)", + "m4luxor__o", "Luxor (Barcrest) (MPU4) (set 16)", + "m4luxor__p", "Luxor (Barcrest) (MPU4) (set 17)", + "m4luxor__q", "Luxor (Barcrest) (MPU4) (set 18)", + "m4luxor__r", "Luxor (Barcrest) (MPU4) (set 19)", + "m4luxor__s", "Luxor (Barcrest) (MPU4) (set 20)", + "m4luxor__t", "Luxor (Barcrest) (MPU4) (set 21)", + "m4luxor__u", "Luxor (Barcrest) (MPU4) (set 22)", + "m4luxor__v", "Luxor (Barcrest) (MPU4) (set 23)", + "m4luxor__w", "Luxor (Barcrest) (MPU4) (set 24)", + "m4luxor__x", "Luxor (Barcrest) (MPU4) (set 25)", + "m4luxor__y", "Luxor (Barcrest) (MPU4) (set 26)", + "m4luxor__z", "Luxor (Barcrest) (MPU4) (set 27)", + "m4lvlcl", "Lucky Las Vegas Classic (Barcrest) (MPU4) (set 1)", + "m4lvlcl__a", "Lucky Las Vegas Classic (Barcrest) (MPU4) (set 2)", + "m4lvlcl__b", "Lucky Las Vegas Classic (Barcrest) (MPU4) (set 3)", + "m4lvlcl__c", "Lucky Las Vegas Classic (Barcrest) (MPU4) (set 4)", + "m4lvlcl__d", "Lucky Las Vegas Classic (Barcrest) (MPU4) (set 5)", + "m4lvlcl__e", "Lucky Las Vegas Classic (Barcrest) (MPU4) (set 6)", + "m4lvlcl__f", "Lucky Las Vegas Classic (Barcrest) (MPU4) (set 7)", + "m4madhse", "Mad House (Barcrest) (MPU4) (set 1)", + "m4madhse__0", "Mad House (Barcrest) (MPU4) (set 28)", + "m4madhse__a", "Mad House (Barcrest) (MPU4) (set 2)", + "m4madhse__b", "Mad House (Barcrest) (MPU4) (set 3)", + "m4madhse__c", "Mad House (Barcrest) (MPU4) (set 4)", + "m4madhse__d", "Mad House (Barcrest) (MPU4) (set 5)", + "m4madhse__e", "Mad House (Barcrest) (MPU4) (set 6)", + "m4madhse__f", "Mad House (Barcrest) (MPU4) (set 7)", + "m4madhse__g", "Mad House (Barcrest) (MPU4) (set 8)", + "m4madhse__h", "Mad House (Barcrest) (MPU4) (set 9)", + "m4madhse__i", "Mad House (Barcrest) (MPU4) (set 10)", + "m4madhse__j", "Mad House (Barcrest) (MPU4) (set 11)", + "m4madhse__k", "Mad House (Barcrest) (MPU4) (set 12)", + "m4madhse__l", "Mad House (Barcrest) (MPU4) (set 13)", + "m4madhse__m", "Mad House (Barcrest) (MPU4) (set 14)", + "m4madhse__n", "Mad House (Barcrest) (MPU4) (set 15)", + "m4madhse__o", "Mad House (Barcrest) (MPU4) (set 16)", + "m4madhse__p", "Mad House (Barcrest) (MPU4) (set 17)", + "m4madhse__q", "Mad House (Barcrest) (MPU4) (set 18)", + "m4madhse__r", "Mad House (Barcrest) (MPU4) (set 19)", + "m4madhse__s", "Mad House (Barcrest) (MPU4) (set 20)", + "m4madhse__t", "Mad House (Barcrest) (MPU4) (set 21)", + "m4madhse__u", "Mad House (Barcrest) (MPU4) (set 22)", + "m4madhse__v", "Mad House (Barcrest) (MPU4) (set 23)", + "m4madhse__w", "Mad House (Barcrest) (MPU4) (set 24)", + "m4madhse__x", "Mad House (Barcrest) (MPU4) (set 25)", + "m4madhse__y", "Mad House (Barcrest) (MPU4) (set 26)", + "m4madhse__z", "Mad House (Barcrest) (MPU4) (set 27)", + "m4madmnc", "Mad Money Classic (Bwb) (MPU4) (set 1)", + "m4madmnc__a", "Mad Money Classic (Bwb) (MPU4) (set 2)", + "m4madmnc__b", "Mad Money Classic (Bwb) (MPU4) (set 3)", + "m4madmnc__c", "Mad Money Classic (Bwb) (MPU4) (set 4)", + "m4madmnc__d", "Mad Money Classic (Bwb) (MPU4) (set 5)", + "m4madmnc__e", "Mad Money Classic (Bwb) (MPU4) (set 6)", + "m4madmnc__f", "Mad Money Classic (Bwb) (MPU4) (set 7)", + "m4madmnc__g", "Mad Money Classic (Bwb) (MPU4) (set 8)", + "m4madmnc__h", "Mad Money Classic (Bwb) (MPU4) (set 9)", + "m4madmnc__i", "Mad Money Classic (Bwb) (MPU4) (set 10)", + "m4madmnc__j", "Mad Money Classic (Bwb) (MPU4) (set 11)", + "m4madmnc__k", "Mad Money Classic (Bwb) (MPU4) (set 12)", + "m4madmnc__l", "Mad Money Classic (Bwb) (MPU4) (set 13)", + "m4madmnc__m", "Mad Money Classic (Bwb) (MPU4) (set 14)", + "m4madmnc__n", "Mad Money Classic (Bwb) (MPU4) (set 15)", + "m4madmnc__o", "Mad Money Classic (Bwb) (MPU4) (set 16)", + "m4madmnc__p", "Mad Money Classic (Bwb) (MPU4) (set 17)", + "m4madmnc__q", "Mad Money Classic (Bwb) (MPU4) (set 18)", + "m4madmnc__r", "Mad Money Classic (Bwb) (MPU4) (set 19)", + "m4madmnc__s", "Mad Money Classic (Bwb) (MPU4) (set 20)", + "m4madmnc__t", "Mad Money Classic (Bwb) (MPU4) (set 21)", + "m4madmnc__u", "Mad Money Classic (Bwb) (MPU4) (set 22)", + "m4madmnc__v", "Mad Money Classic (Bwb) (MPU4) (set 23)", + "m4madmnc__w", "Mad Money Classic (Bwb) (MPU4) (set 24)", + "m4madmon", "Mad Money (Bwb) (MPU4) (set 1)", + "m4madmon__a", "Mad Money (Bwb) (MPU4) (set 2)", + "m4madmon__b", "Mad Money (Bwb) (MPU4) (set 3)", + "m4madmon__c", "Mad Money (Bwb) (MPU4) (set 4)", + "m4madmon__d", "Mad Money (Bwb) (MPU4) (set 5)", + "m4madmon__e", "Mad Money (Bwb) (MPU4) (set 6)", + "m4madmon__f", "Mad Money (Bwb) (MPU4) (set 7)", + "m4madmon__g", "Mad Money (Bwb) (MPU4) (set 8)", + "m4madmon__h", "Mad Money (Bwb) (MPU4) (set 9)", + "m4madmon__i", "Mad Money (Bwb) (MPU4) (set 10)", + "m4madmon__j", "Mad Money (Bwb) (MPU4) (set 11)", + "m4madmon__k", "Mad Money (Bwb) (MPU4) (set 12)", + "m4mag7s", "Magnificent 7s (Barcrest) (MPU4) (set 1)", + "m4mag7s__0", "Magnificent 7s (Barcrest) (MPU4) (set 28)", + "m4mag7s__1", "Magnificent 7s (Barcrest) (MPU4) (set 29)", + "m4mag7s__2", "Magnificent 7s (Barcrest) (MPU4) (set 30)", + "m4mag7s__3", "Magnificent 7s (Barcrest) (MPU4) (set 31)", + "m4mag7s__4", "Magnificent 7s (Barcrest) (MPU4) (set 32)", + "m4mag7s__5", "Magnificent 7s (Barcrest) (MPU4) (set 33)", + "m4mag7s__6", "Magnificent 7s (Barcrest) (MPU4) (set 34)", + "m4mag7s__7", "Magnificent 7s (Barcrest) (MPU4) (set 35)", + "m4mag7s__8", "Magnificent 7s (Barcrest) (MPU4) (set 36)", + "m4mag7s__9", "Magnificent 7s (Barcrest) (MPU4) (set 37)", + "m4mag7s__a", "Magnificent 7s (Barcrest) (MPU4) (set 2)", + "m4mag7s__aa", "Magnificent 7s (Barcrest) (MPU4) (set 38)", + "m4mag7s__ab", "Magnificent 7s (Barcrest) (MPU4) (set 39)", + "m4mag7s__ac", "Magnificent 7s (Barcrest) (MPU4) (set 40)", + "m4mag7s__ad", "Magnificent 7s (Barcrest) (MPU4) (set 41)", + "m4mag7s__ae", "Magnificent 7s (Barcrest) (MPU4) (set 42)", + "m4mag7s__af", "Magnificent 7s (Barcrest) (MPU4) (set 43)", + "m4mag7s__ag", "Magnificent 7s (Barcrest) (MPU4) (set 44)", + "m4mag7s__ah", "Magnificent 7s (Barcrest) (MPU4) (set 45)", + "m4mag7s__ai", "Magnificent 7s (Barcrest) (MPU4) (set 46)", + "m4mag7s__aj", "Magnificent 7s (Barcrest) (MPU4) (set 47)", + "m4mag7s__ak", "Magnificent 7s (Barcrest) (MPU4) (set 48)", + "m4mag7s__al", "Magnificent 7s (Barcrest) (MPU4) (set 49)", + "m4mag7s__am", "Magnificent 7s (Barcrest) (MPU4) (set 50)", + "m4mag7s__an", "Magnificent 7s (Barcrest) (MPU4) (set 51)", + "m4mag7s__ao", "Magnificent 7s (Barcrest) (MPU4) (set 52)", + "m4mag7s__ap", "Magnificent 7s (Barcrest) (MPU4) (set 53)", + "m4mag7s__aq", "Magnificent 7s (Barcrest) (MPU4) (set 54)", + "m4mag7s__ar", "Magnificent 7s (Barcrest) (MPU4) (set 55)", + "m4mag7s__as", "Magnificent 7s (Barcrest) (MPU4) (set 56)", + "m4mag7s__at", "Magnificent 7s (Barcrest) (MPU4) (set 57)", + "m4mag7s__au", "Magnificent 7s (Barcrest) (MPU4) (set 58)", + "m4mag7s__av", "Magnificent 7s (Barcrest) (MPU4) (set 59)", + "m4mag7s__aw", "Magnificent 7s (Barcrest) (MPU4) (set 60)", + "m4mag7s__ax", "Magnificent 7s (Barcrest) (MPU4) (set 61)", + "m4mag7s__b", "Magnificent 7s (Barcrest) (MPU4) (set 3)", + "m4mag7s__c", "Magnificent 7s (Barcrest) (MPU4) (set 4)", + "m4mag7s__d", "Magnificent 7s (Barcrest) (MPU4) (set 5)", + "m4mag7s__e", "Magnificent 7s (Barcrest) (MPU4) (set 6)", + "m4mag7s__f", "Magnificent 7s (Barcrest) (MPU4) (set 7)", + "m4mag7s__g", "Magnificent 7s (Barcrest) (MPU4) (set 8)", + "m4mag7s__h", "Magnificent 7s (Barcrest) (MPU4) (set 9)", + "m4mag7s__i", "Magnificent 7s (Barcrest) (MPU4) (set 10)", + "m4mag7s__j", "Magnificent 7s (Barcrest) (MPU4) (set 11)", + "m4mag7s__k", "Magnificent 7s (Barcrest) (MPU4) (set 12)", + "m4mag7s__l", "Magnificent 7s (Barcrest) (MPU4) (set 13)", + "m4mag7s__m", "Magnificent 7s (Barcrest) (MPU4) (set 14)", + "m4mag7s__n", "Magnificent 7s (Barcrest) (MPU4) (set 15)", + "m4mag7s__o", "Magnificent 7s (Barcrest) (MPU4) (set 16)", + "m4mag7s__p", "Magnificent 7s (Barcrest) (MPU4) (set 17)", + "m4mag7s__q", "Magnificent 7s (Barcrest) (MPU4) (set 18)", + "m4mag7s__r", "Magnificent 7s (Barcrest) (MPU4) (set 19)", + "m4mag7s__s", "Magnificent 7s (Barcrest) (MPU4) (set 20)", + "m4mag7s__t", "Magnificent 7s (Barcrest) (MPU4) (set 21)", + "m4mag7s__u", "Magnificent 7s (Barcrest) (MPU4) (set 22)", + "m4mag7s__v", "Magnificent 7s (Barcrest) (MPU4) (set 23)", + "m4mag7s__w", "Magnificent 7s (Barcrest) (MPU4) (set 24)", + "m4mag7s__x", "Magnificent 7s (Barcrest) (MPU4) (set 25)", + "m4mag7s__y", "Magnificent 7s (Barcrest) (MPU4) (set 26)", + "m4mag7s__z", "Magnificent 7s (Barcrest) (MPU4) (set 27)", + "m4magdrg", "Magic Dragon (Barcrest) (MPU4) (DMD1.0)", + "m4magi7", "Magic 7's (Crystal) (MPU4) (set 1)", + "m4magi7a", "Magic 7's (Crystal) (MPU4) (set 2)", + "m4maglin", "Magic Liner (Barcrest) (MPU4) (DMA2.1)", + "m4magrep", "Magic Replay (Barcrest) (Dutch) (MPU4)", + "m4magtbo", "Magic Turbo (Barcrest) (MPU4)", + "m4makmnt", "Make A Mint (Barcrest) (MPU4) (set 1)", + "m4makmnt__0", "Make A Mint (Barcrest) (MPU4) (set 28)", + "m4makmnt__1", "Make A Mint (Barcrest) (MPU4) (set 29)", + "m4makmnt__2", "Make A Mint (Barcrest) (MPU4) (set 30)", + "m4makmnt__3", "Make A Mint (Barcrest) (MPU4) (set 31)", + "m4makmnt__4", "Make A Mint (Barcrest) (MPU4) (set 32)", + "m4makmnt__5", "Make A Mint (Barcrest) (MPU4) (set 33)", + "m4makmnt__6", "Make A Mint (Barcrest) (MPU4) (set 34)", + "m4makmnt__7", "Make A Mint (Barcrest) (MPU4) (set 35)", + "m4makmnt__8", "Make A Mint (Barcrest) (MPU4) (set 36)", + "m4makmnt__9", "Make A Mint (Barcrest) (MPU4) (set 37)", + "m4makmnt__a", "Make A Mint (Barcrest) (MPU4) (set 2)", + "m4makmnt__aa", "Make A Mint (Barcrest) (MPU4) (set 38)", + "m4makmnt__ab", "Make A Mint (Barcrest) (MPU4) (set 39)", + "m4makmnt__ac", "Make A Mint (Barcrest) (MPU4) (set 40)", + "m4makmnt__ad", "Make A Mint (Barcrest) (MPU4) (set 41)", + "m4makmnt__ae", "Make A Mint (Barcrest) (MPU4) (set 42)", + "m4makmnt__af", "Make A Mint (Barcrest) (MPU4) (set 43)", + "m4makmnt__ag", "Make A Mint (Barcrest) (MPU4) (set 44)", + "m4makmnt__ah", "Make A Mint (Barcrest) (MPU4) (set 45)", + "m4makmnt__ai", "Make A Mint (Barcrest) (MPU4) (set 46)", + "m4makmnt__aj", "Make A Mint (Barcrest) (MPU4) (set 47)", + "m4makmnt__ak", "Make A Mint (Barcrest) (MPU4) (set 48)", + "m4makmnt__al", "Make A Mint (Barcrest) (MPU4) (set 49)", + "m4makmnt__am", "Make A Mint (Barcrest) (MPU4) (set 50)", + "m4makmnt__an", "Make A Mint (Barcrest) (MPU4) (set 51)", + "m4makmnt__ao", "Make A Mint (Barcrest) (MPU4) (set 52)", + "m4makmnt__ap", "Make A Mint (Barcrest) (MPU4) (set 53)", + "m4makmnt__aq", "Make A Mint (Barcrest) (MPU4) (set 54)", + "m4makmnt__ar", "Make A Mint (Barcrest) (MPU4) (set 55)", + "m4makmnt__as", "Make A Mint (Barcrest) (MPU4) (set 56)", + "m4makmnt__b", "Make A Mint (Barcrest) (MPU4) (set 3)", + "m4makmnt__c", "Make A Mint (Barcrest) (MPU4) (set 4)", + "m4makmnt__d", "Make A Mint (Barcrest) (MPU4) (set 5)", + "m4makmnt__e", "Make A Mint (Barcrest) (MPU4) (set 6)", + "m4makmnt__f", "Make A Mint (Barcrest) (MPU4) (set 7)", + "m4makmnt__g", "Make A Mint (Barcrest) (MPU4) (set 8)", + "m4makmnt__h", "Make A Mint (Barcrest) (MPU4) (set 9)", + "m4makmnt__i", "Make A Mint (Barcrest) (MPU4) (set 10)", + "m4makmnt__j", "Make A Mint (Barcrest) (MPU4) (set 11)", + "m4makmnt__k", "Make A Mint (Barcrest) (MPU4) (set 12)", + "m4makmnt__l", "Make A Mint (Barcrest) (MPU4) (set 13)", + "m4makmnt__m", "Make A Mint (Barcrest) (MPU4) (set 14)", + "m4makmnt__n", "Make A Mint (Barcrest) (MPU4) (set 15)", + "m4makmnt__o", "Make A Mint (Barcrest) (MPU4) (set 16)", + "m4makmnt__p", "Make A Mint (Barcrest) (MPU4) (set 17)", + "m4makmnt__q", "Make A Mint (Barcrest) (MPU4) (set 18)", + "m4makmnt__r", "Make A Mint (Barcrest) (MPU4) (set 19)", + "m4makmnt__s", "Make A Mint (Barcrest) (MPU4) (set 20)", + "m4makmnt__t", "Make A Mint (Barcrest) (MPU4) (set 21)", + "m4makmnt__u", "Make A Mint (Barcrest) (MPU4) (set 22)", + "m4makmnt__v", "Make A Mint (Barcrest) (MPU4) (set 23)", + "m4makmnt__w", "Make A Mint (Barcrest) (MPU4) (set 24)", + "m4makmnt__x", "Make A Mint (Barcrest) (MPU4) (set 25)", + "m4makmnt__y", "Make A Mint (Barcrest) (MPU4) (set 26)", + "m4makmnt__z", "Make A Mint (Barcrest) (MPU4) (set 27)", + "m4matdr", "Matador (unknown) (MPU4?)", + "m4maxmze", "Maximize (Union) (MPU4, set 1)", + "m4maxmzea", "Maximize (Union) (MPU4, set 2)", + "m4maxmzeb", "Maximize (Union) (MPU4, set 3)", + "m4maxmzec", "Maximize (Union) (MPU4, set 4)", + "m4maxmzed", "Maximize (Union) (MPU4, set 5)", + "m4mayhem", "Mayhem (Mdm) (MPU4, set 1)", + "m4mayhema", "Mayhem (Mdm) (MPU4, set 2)", + "m4mbel", "Millennium Bells (Avantime?) (MPU4) (set 1)", + "m4mbel__0", "Millennium Bells (Avantime?) (MPU4) (set 28)", + "m4mbel__1", "Millennium Bells (Avantime?) (MPU4) (set 29)", + "m4mbel__2", "Millennium Bells (Avantime?) (MPU4) (set 30)", + "m4mbel__3", "Millennium Bells (Avantime?) (MPU4) (set 31)", + "m4mbel__4", "Millennium Bells (Avantime?) (MPU4) (set 32)", + "m4mbel__5", "Millennium Bells (Avantime?) (MPU4) (set 33)", + "m4mbel__6", "Millennium Bells (Avantime?) (MPU4) (set 34)", + "m4mbel__7", "Millennium Bells (Avantime?) (MPU4) (set 35)", + "m4mbel__8", "Millennium Bells (Avantime?) (MPU4) (set 36)", + "m4mbel__9", "Millennium Bells (Avantime?) (MPU4) (set 37)", + "m4mbel__a", "Millennium Bells (Avantime?) (MPU4) (set 2)", + "m4mbel__a0", "Millennium Bells (Avantime?) (MPU4) (set 64)", + "m4mbel__aa", "Millennium Bells (Avantime?) (MPU4) (set 38)", + "m4mbel__ab", "Millennium Bells (Avantime?) (MPU4) (set 39)", + "m4mbel__ac", "Millennium Bells (Avantime?) (MPU4) (set 40)", + "m4mbel__ad", "Millennium Bells (Avantime?) (MPU4) (set 41)", + "m4mbel__ae", "Millennium Bells (Avantime?) (MPU4) (set 42)", + "m4mbel__af", "Millennium Bells (Avantime?) (MPU4) (set 43)", + "m4mbel__ag", "Millennium Bells (Avantime?) (MPU4) (set 44)", + "m4mbel__ah", "Millennium Bells (Avantime?) (MPU4) (set 45)", + "m4mbel__ai", "Millennium Bells (Avantime?) (MPU4) (set 46)", + "m4mbel__aj", "Millennium Bells (Avantime?) (MPU4) (set 47)", + "m4mbel__ak", "Millennium Bells (Avantime?) (MPU4) (set 48)", + "m4mbel__al", "Millennium Bells (Avantime?) (MPU4) (set 49)", + "m4mbel__am", "Millennium Bells (Avantime?) (MPU4) (set 50)", + "m4mbel__an", "Millennium Bells (Avantime?) (MPU4) (set 51)", + "m4mbel__ao", "Millennium Bells (Avantime?) (MPU4) (set 52)", + "m4mbel__ap", "Millennium Bells (Avantime?) (MPU4) (set 53)", + "m4mbel__aq", "Millennium Bells (Avantime?) (MPU4) (set 54)", + "m4mbel__ar", "Millennium Bells (Avantime?) (MPU4) (set 55)", + "m4mbel__as", "Millennium Bells (Avantime?) (MPU4) (set 56)", + "m4mbel__at", "Millennium Bells (Avantime?) (MPU4) (set 57)", + "m4mbel__au", "Millennium Bells (Avantime?) (MPU4) (set 58)", + "m4mbel__av", "Millennium Bells (Avantime?) (MPU4) (set 59)", + "m4mbel__aw", "Millennium Bells (Avantime?) (MPU4) (set 60)", + "m4mbel__ax", "Millennium Bells (Avantime?) (MPU4) (set 61)", + "m4mbel__ay", "Millennium Bells (Avantime?) (MPU4) (set 62)", + "m4mbel__az", "Millennium Bells (Avantime?) (MPU4) (set 63)", + "m4mbel__b", "Millennium Bells (Avantime?) (MPU4) (set 3)", + "m4mbel__c", "Millennium Bells (Avantime?) (MPU4) (set 4)", + "m4mbel__d", "Millennium Bells (Avantime?) (MPU4) (set 5)", + "m4mbel__e", "Millennium Bells (Avantime?) (MPU4) (set 6)", + "m4mbel__f", "Millennium Bells (Avantime?) (MPU4) (set 7)", + "m4mbel__g", "Millennium Bells (Avantime?) (MPU4) (set 8)", + "m4mbel__h", "Millennium Bells (Avantime?) (MPU4) (set 9)", + "m4mbel__i", "Millennium Bells (Avantime?) (MPU4) (set 10)", + "m4mbel__j", "Millennium Bells (Avantime?) (MPU4) (set 11)", + "m4mbel__k", "Millennium Bells (Avantime?) (MPU4) (set 12)", + "m4mbel__m", "Millennium Bells (Avantime?) (MPU4) (set 14)", + "m4mbel__n", "Millennium Bells (Avantime?) (MPU4) (set 15)", + "m4mbel__o", "Millennium Bells (Avantime?) (MPU4) (set 16)", + "m4mbel__p", "Millennium Bells (Avantime?) (MPU4) (set 17)", + "m4mbel__q", "Millennium Bells (Avantime?) (MPU4) (set 18)", + "m4mbel__r", "Millennium Bells (Avantime?) (MPU4) (set 19)", + "m4mbel__s", "Millennium Bells (Avantime?) (MPU4) (set 20)", + "m4mbel__t", "Millennium Bells (Avantime?) (MPU4) (set 21)", + "m4mbel__u", "Millennium Bells (Avantime?) (MPU4) (set 22)", + "m4mbel__v", "Millennium Bells (Avantime?) (MPU4) (set 23)", + "m4mbel__w", "Millennium Bells (Avantime?) (MPU4) (set 24)", + "m4mbel__x", "Millennium Bells (Avantime?) (MPU4) (set 25)", + "m4mbel__y", "Millennium Bells (Avantime?) (MPU4) (set 26)", + "m4mbel__z", "Millennium Bells (Avantime?) (MPU4) (set 27)", + "m4mecca", "Mecca Money (Union) (MPU4)", + "m4megbks", "Mega Bucks (Barcrest) (MPU4) (BUC 4.1X)", + "m4megbksa", "Mega Bucks (Barcrest) (MPU4) (BUC 4.1CX)", + "m4megbksb", "Mega Bucks (Barcrest) (MPU4) (BUC 4.1XD)", + "m4megbksc", "Mega Bucks (Barcrest) (MPU4) (BUC 3.1)", + "m4meglnk", "Megalink (Barcrest) (Dutch) (MPU4)", + "m4mgpn", "Monaco Grand Prix (Nova) (MPU4)", + "m4milclb", "Millionaire's Club (Barcrest) (MPU4) (set 1)", + "m4milclba", "Millionaire's Club (Barcrest) (MPU4) (set 2)", + "m4milclbb", "Millionaire's Club (Barcrest) (MPU4) (set 3)", + "m4milclbc", "Millionaire's Club (Barcrest) (MPU4) (set 4)", + "m4milclbd", "Millionaire's Club (Barcrest) (MPU4) (set 5)", + "m4milrou", "Millennium Roulette (Avantime?) (MPU4) (set 1)", + "m4milrou__a", "Millennium Roulette (Avantime?) (MPU4) (set 2)", + "m4mirage", "Mirage (Barcrest) (MPU4) (RAG 4.1)", + "m4mjp", "Mega Jackpot (Avantime?) (MPU4) (set 1)", + "m4mjp__a", "Mega Jackpot (Avantime?) (MPU4) (set 2)", + "m4mjp__b", "Mega Jackpot (Avantime?) (MPU4) (set 3)", + "m4mjp__c", "Mega Jackpot (Avantime?) (MPU4) (set 4)", + "m4mjp__d", "Mega Jackpot (Avantime?) (MPU4) (set 5)", + "m4mjp__e", "Mega Jackpot (Avantime?) (MPU4) (set 6)", + "m4mjp__f", "Mega Jackpot (Avantime?) (MPU4) (set 7)", + "m4mjp__g", "Mega Jackpot (Avantime?) (MPU4) (set 8)", + "m4mmm", "Money Mummy Money (Bwb) (MPU4) (set 1)", + "m4mmm__a", "Money Mummy Money (Bwb) (MPU4) (set 2)", + "m4mmm__b", "Money Mummy Money (Bwb) (MPU4) (set 3)", + "m4mmm__c", "Money Mummy Money (Bwb) (MPU4) (set 4)", + "m4mmm__d", "Money Mummy Money (Bwb) (MPU4) (set 5)", + "m4mmm__e", "Money Mummy Money (Bwb) (MPU4) (set 6)", + "m4mmm__f", "Money Mummy Money (Bwb) (MPU4) (set 7)", + "m4moneym", "Money Maker (Barcrest) (MPU4)", + "m4monspn", "Money Spinner (Empire) (MPU4, set 1)", + "m4monspna", "Money Spinner (Empire) (MPU4, set 2)", + "m4monspnb", "Money Spinner (Empire) (MPU4, set 3)", + "m4monte", "Monte Carlo (Barcrest) (MPU4) (set 1)", + "m4monte__a", "Monte Carlo (Barcrest) (MPU4) (set 2)", + "m4monte__b", "Monte Carlo (Barcrest) (MPU4) (set 3)", + "m4monte__c", "Monte Carlo (Barcrest) (MPU4) (set 4)", + "m4monte__d", "Monte Carlo (Barcrest) (MPU4) (set 5)", + "m4monte__e", "Monte Carlo (Barcrest) (MPU4) (set 6)", + "m4monte__f", "Monte Carlo (Barcrest) (MPU4) (set 7)", + "m4monte__g", "Monte Carlo (Barcrest) (MPU4) (set 8)", + "m4monte__h", "Monte Carlo (Barcrest) (MPU4) (set 9)", + "m4monte__i", "Monte Carlo (Barcrest) (MPU4) (set 10)", + "m4monte__j", "Monte Carlo (Barcrest) (MPU4) (set 11)", + "m4monte__k", "Monte Carlo (Barcrest) (MPU4) (set 12)", + "m4monte__l", "Monte Carlo (Barcrest) (MPU4) (set 13)", + "m4monte__m", "Monte Carlo (Barcrest) (MPU4) (set 14)", + "m4montrl", "Money Trail (Crystal) (MPU4) (set 1)", + "m4montrla", "Money Trail (Crystal) (MPU4) (set 2)", + "m4montrlb", "Money Trail (Crystal) (MPU4) (set 3)", + "m4montrlc", "Money Trail (Crystal) (MPU4) (set 4)", + "m4montrld", "Money Trail (Crystal) (MPU4) (set 5)", + "m4multcl", "Multiplay Club (Barcrest) (MPU4, MP 2.8)", + "m4multwy", "Multiway (Barcrest) (Dutch) (MPU4)", + "m4mystiq", "Mystique Club (Crystal) (MPU4) (set 1)", + "m4mystiqa", "Mystique Club (Crystal) (MPU4) (set 2)", + "m4mystiqb", "Mystique Club (Crystal) (MPU4) (set 3)", + "m4mystiqc", "Mystique Club (Crystal) (MPU4) (set 4)", + "m4ndup", "Nudge Double Up Deluxe (Crystal) (MPU4) (set 1)", + "m4ndupa", "Nudge Double Up Deluxe (Crystal) (MPU4) (set 2)", + "m4ndupb", "Nudge Double Up Deluxe (Crystal) (MPU4) (set 3)", + "m4ndupc", "Nudge Double Up Deluxe (Crystal) (MPU4) (set 4)", + "m4nhtt", "New Hit the Top (Barcrest) (MPU4) (set 1)", + "m4nhtt__a", "New Hit the Top (Barcrest) (MPU4) (set 2)", + "m4nhtt__b", "New Hit the Top (Barcrest) (MPU4) (set 3)", + "m4nhtt__c", "New Hit the Top (Barcrest) (MPU4) (set 4)", + "m4nhtt__d", "New Hit the Top (Barcrest) (MPU4) (set 5)", + "m4nhtt__e", "New Hit the Top (Barcrest) (MPU4) (set 6)", + "m4nhtt__f", "New Hit the Top (Barcrest) (MPU4) (set 7)", + "m4nhtt__g", "New Hit the Top (Barcrest) (MPU4) (set 8)", + "m4nhtt__h", "New Hit the Top (Barcrest) (MPU4) (set 9)", + "m4nhtt__i", "New Hit the Top (Barcrest) (MPU4) (set 10)", + "m4nhtt__j", "New Hit the Top (Barcrest) (MPU4) (set 11)", + "m4nick", "Nickelodeon (Barcrest) (MPU4) (set 1)", + "m4nicka", "Nickelodeon (Barcrest) (MPU4) (set 2)", + "m4nickb", "Nickelodeon (Barcrest) (MPU4) (set 3)", + "m4nickc", "Nickelodeon (Barcrest) (MPU4) (set 4)", + "m4nickd", "Nickelodeon (Barcrest) (MPU4) (set 5)", + "m4nicke", "Nickelodeon (Barcrest) (MPU4) (set 6)", + "m4nifty", "Nifty Fifty (Barcrest) (MPU4) (NF 2.0)", + "m4niftya", "Nifty Fifty (Barcrest) (MPU4) (NF 2.1, set 1)", + "m4niftyb", "Nifty Fifty (Barcrest) (MPU4) (NF 2.1, set 2)", + "m4nile", "Nile Jewels (Barcrest) (German) (MPU4) (GJN0.8)", + "m4nnww", "Nudge Nudge Wink Wink (Barcrest) (MPU4) (set 1)", + "m4nnww__0", "Nudge Nudge Wink Wink (Barcrest) (MPU4) (set 28)", + "m4nnww__1", "Nudge Nudge Wink Wink (Barcrest) (MPU4) (set 29)", + "m4nnww__2", "Nudge Nudge Wink Wink (Barcrest) (MPU4) (set 30)", + "m4nnww__3", "Nudge Nudge Wink Wink (Barcrest) (MPU4) (set 31)", + "m4nnww__4", "Nudge Nudge Wink Wink (Barcrest) (MPU4) (set 32)", + "m4nnww__5", "Nudge Nudge Wink Wink (Barcrest) (MPU4) (set 33)", + "m4nnww__6", "Nudge Nudge Wink Wink (Barcrest) (MPU4) (set 34)", + "m4nnww__7", "Nudge Nudge Wink Wink (Barcrest) (MPU4) (set 35)", + "m4nnww__8", "Nudge Nudge Wink Wink (Barcrest) (MPU4) (set 36)", + "m4nnww__9", "Nudge Nudge Wink Wink (Barcrest) (MPU4) (set 37)", + "m4nnww__a", "Nudge Nudge Wink Wink (Barcrest) (MPU4) (set 2)", + "m4nnww__aa", "Nudge Nudge Wink Wink (Barcrest) (MPU4) (set 38)", + "m4nnww__ab", "Nudge Nudge Wink Wink (Barcrest) (MPU4) (set 39)", + "m4nnww__ac", "Nudge Nudge Wink Wink (Barcrest) (MPU4) (set 40)", + "m4nnww__ad", "Nudge Nudge Wink Wink (Barcrest) (MPU4) (set 41)", + "m4nnww__ae", "Nudge Nudge Wink Wink (Barcrest) (MPU4) (set 42)", + "m4nnww__af", "Nudge Nudge Wink Wink (Barcrest) (MPU4) (set 43)", + "m4nnww__ag", "Nudge Nudge Wink Wink (Barcrest) (MPU4) (set 44)", + "m4nnww__ah", "Nudge Nudge Wink Wink (Barcrest) (MPU4) (set 45)", + "m4nnww__ai", "Nudge Nudge Wink Wink (Barcrest) (MPU4) (set 46)", + "m4nnww__aj", "Nudge Nudge Wink Wink (Barcrest) (MPU4) (set 47)", + "m4nnww__ak", "Nudge Nudge Wink Wink (Barcrest) (MPU4) (set 48)", + "m4nnww__al", "Nudge Nudge Wink Wink (Barcrest) (MPU4) (set 49)", + "m4nnww__am", "Nudge Nudge Wink Wink (Barcrest) (MPU4) (set 50)", + "m4nnww__an", "Nudge Nudge Wink Wink (Barcrest) (MPU4) (set 51)", + "m4nnww__ao", "Nudge Nudge Wink Wink (Barcrest) (MPU4) (set 52)", + "m4nnww__ap", "Nudge Nudge Wink Wink (Barcrest) (MPU4) (set 53)", + "m4nnww__aq", "Nudge Nudge Wink Wink (Barcrest) (MPU4) (set 54)", + "m4nnww__ar", "Nudge Nudge Wink Wink (Barcrest) (MPU4) (set 55)", + "m4nnww__as", "Nudge Nudge Wink Wink (Barcrest) (MPU4) (set 56)", + "m4nnww__at", "Nudge Nudge Wink Wink (Barcrest) (MPU4) (set 57)", + "m4nnww__au", "Nudge Nudge Wink Wink (Barcrest) (MPU4) (set 58)", + "m4nnww__av", "Nudge Nudge Wink Wink (Barcrest) (MPU4) (set 59)", + "m4nnww__aw", "Nudge Nudge Wink Wink (Barcrest) (MPU4) (set 60)", + "m4nnww__ax", "Nudge Nudge Wink Wink (Barcrest) (MPU4) (set 61)", + "m4nnww__ay", "Nudge Nudge Wink Wink (Barcrest) (MPU4) (set 62)", + "m4nnww__az", "Nudge Nudge Wink Wink (Barcrest) (MPU4) (set 63)", + "m4nnww__b", "Nudge Nudge Wink Wink (Barcrest) (MPU4) (set 3)", + "m4nnww__c", "Nudge Nudge Wink Wink (Barcrest) (MPU4) (set 4)", + "m4nnww__d", "Nudge Nudge Wink Wink (Barcrest) (MPU4) (set 5)", + "m4nnww__e", "Nudge Nudge Wink Wink (Barcrest) (MPU4) (set 6)", + "m4nnww__f", "Nudge Nudge Wink Wink (Barcrest) (MPU4) (set 7)", + "m4nnww__g", "Nudge Nudge Wink Wink (Barcrest) (MPU4) (set 8)", + "m4nnww__h", "Nudge Nudge Wink Wink (Barcrest) (MPU4) (set 9)", + "m4nnww__i", "Nudge Nudge Wink Wink (Barcrest) (MPU4) (set 10)", + "m4nnww__j", "Nudge Nudge Wink Wink (Barcrest) (MPU4) (set 11)", + "m4nnww__k", "Nudge Nudge Wink Wink (Barcrest) (MPU4) (set 12)", + "m4nnww__l", "Nudge Nudge Wink Wink (Barcrest) (MPU4) (set 13)", + "m4nnww__m", "Nudge Nudge Wink Wink (Barcrest) (MPU4) (set 14)", + "m4nnww__n", "Nudge Nudge Wink Wink (Barcrest) (MPU4) (set 15)", + "m4nnww__o", "Nudge Nudge Wink Wink (Barcrest) (MPU4) (set 16)", + "m4nnww__p", "Nudge Nudge Wink Wink (Barcrest) (MPU4) (set 17)", + "m4nnww__q", "Nudge Nudge Wink Wink (Barcrest) (MPU4) (set 18)", + "m4nnww__r", "Nudge Nudge Wink Wink (Barcrest) (MPU4) (set 19)", + "m4nnww__s", "Nudge Nudge Wink Wink (Barcrest) (MPU4) (set 20)", + "m4nnww__t", "Nudge Nudge Wink Wink (Barcrest) (MPU4) (set 21)", + "m4nnww__u", "Nudge Nudge Wink Wink (Barcrest) (MPU4) (set 22)", + "m4nnww__v", "Nudge Nudge Wink Wink (Barcrest) (MPU4) (set 23)", + "m4nnww__w", "Nudge Nudge Wink Wink (Barcrest) (MPU4) (set 24)", + "m4nnww__x", "Nudge Nudge Wink Wink (Barcrest) (MPU4) (set 25)", + "m4nnww__y", "Nudge Nudge Wink Wink (Barcrest) (MPU4) (set 26)", + "m4nnww__z", "Nudge Nudge Wink Wink (Barcrest) (MPU4) (set 27)", + "m4nnwwc", "Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 1)", + "m4nnwwc__0", "Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 28)", + "m4nnwwc__1", "Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 29)", + "m4nnwwc__2", "Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 30)", + "m4nnwwc__3", "Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 31)", + "m4nnwwc__4", "Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 32)", + "m4nnwwc__5", "Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 33)", + "m4nnwwc__6", "Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 34)", + "m4nnwwc__7", "Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 35)", + "m4nnwwc__8", "Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 36)", + "m4nnwwc__9", "Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 37)", + "m4nnwwc__a", "Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 2)", + "m4nnwwc__aa", "Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 38)", + "m4nnwwc__ab", "Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 39)", + "m4nnwwc__ac", "Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 40)", + "m4nnwwc__ad", "Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 41)", + "m4nnwwc__b", "Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 3)", + "m4nnwwc__c", "Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 4)", + "m4nnwwc__d", "Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 5)", + "m4nnwwc__e", "Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 6)", + "m4nnwwc__f", "Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 7)", + "m4nnwwc__g", "Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 8)", + "m4nnwwc__h", "Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 9)", + "m4nnwwc__i", "Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 10)", + "m4nnwwc__j", "Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 11)", + "m4nnwwc__k", "Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 12)", + "m4nnwwc__l", "Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 13)", + "m4nnwwc__m", "Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 14)", + "m4nnwwc__n", "Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 15)", + "m4nnwwc__o", "Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 16)", + "m4nnwwc__p", "Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 17)", + "m4nnwwc__q", "Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 18)", + "m4nnwwc__r", "Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 19)", + "m4nnwwc__s", "Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 20)", + "m4nnwwc__t", "Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 21)", + "m4nnwwc__u", "Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 22)", + "m4nnwwc__v", "Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 23)", + "m4nnwwc__w", "Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 24)", + "m4nnwwc__x", "Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 25)", + "m4nnwwc__y", "Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 26)", + "m4nnwwc__z", "Nudge Nudge Wink Wink Classic (Barcrest) (MPU4) (set 27)", + "m4nod", "Nod And A Wink (Eurotech) (MPU4)", + "m4nspot", "Night Spot Club (Barcrest) (MPU4) (set 1)", + "m4nspota", "Night Spot Club (Barcrest) (MPU4) (set 2)", + "m4nspotb", "Night Spot Club (Barcrest) (MPU4) (set 3)", + "m4nud2p", "2p Nudger (Mdm?) (MPU4)", + "m4nudbnk", "Nudge Banker (Barcrest) (MPU4) (set 1)", + "m4nudbnk__a", "Nudge Banker (Barcrest) (MPU4) (set 2)", + "m4nudbnk__b", "Nudge Banker (Barcrest) (MPU4) (set 3)", + "m4nudbnk__c", "Nudge Banker (Barcrest) (MPU4) (set 4)", + "m4nudbnk__d", "Nudge Banker (Barcrest) (MPU4) (set 5)", + "m4nudbon", "Nudge Bonanza (Mdm) (MPU4, set 1)", + "m4nudbona", "Nudge Bonanza (Mdm) (MPU4, set 2)", + "m4nudgem", "Nudge Gems (Mdm) (MPU4)", + "m4nudgwc", "Nudge-A-Win (Concept Games Ltd) (MPU4) (set 1)", + "m4nudgwc__a", "Nudge-A-Win (Concept Games Ltd) (MPU4) (set 2)", + "m4nudgwc__b", "Nudge-A-Win (Concept Games Ltd) (MPU4) (set 3)", + "m4nudgwc__c", "Nudge-A-Win (Concept Games Ltd) (MPU4) (set 4)", + "m4nudgwc__d", "Nudge-A-Win (Concept Games Ltd) (MPU4) (set 5)", + "m4nudgwc__e", "Nudge-A-Win (Concept Games Ltd) (MPU4) (set 6)", + "m4nudgwc__f", "Nudge-A-Win (Concept Games Ltd) (MPU4) (set 7)", + "m4nudgwc__g", "Nudge-A-Win (Concept Games Ltd) (MPU4) (set 8)", + "m4nudgwc__h", "Nudge-A-Win (Concept Games Ltd) (MPU4) (set 9)", + "m4nudqst", "Nudge Quest (Barcrest) (MPU4) (NQ 2.0)", + "m4nudshf", "Nudge Shuffle (Barcrest) (MPU4) (set 1)", + "m4nudshfa", "Nudge Shuffle (Barcrest) (MPU4) (set 2)", + "m4nudshfb", "Nudge Shuffle (Barcrest) (MPU4) (set 3)", + "m4nudshfc", "Nudge Shuffle (Barcrest) (MPU4) (set 4)", + "m4nudup", "Nudge Up (Barcrest) (Dutch) (MPU4)", + "m4nudwin", "Nudge & Win (Crystal) (MPU4) (set 1)", + "m4nudwina", "Nudge & Win (Crystal) (MPU4) (set 2)", + "m4num1", "Number One (Barcrest) (Dutch) (MPU4)", + "m4oadrac", "Ooh Aah Dracula (Barcrest) (MPU4) (set 1)", + "m4oadrac__a", "Ooh Aah Dracula (Barcrest) (MPU4) (set 2)", + "m4oadrac__b", "Ooh Aah Dracula (Barcrest) (MPU4) (set 3)", + "m4oadrac__c", "Ooh Aah Dracula (Barcrest) (MPU4) (set 4)", + "m4oadrac__d", "Ooh Aah Dracula (Barcrest) (MPU4) (set 5)", + "m4oadrac__e", "Ooh Aah Dracula (Barcrest) (MPU4) (set 6)", + "m4oadrac__f", "Ooh Aah Dracula (Barcrest) (MPU4) (set 7)", + "m4oadrac__g", "Ooh Aah Dracula (Barcrest) (MPU4) (set 8)", + "m4oadrac__h", "Ooh Aah Dracula (Barcrest) (MPU4) (set 9)", + "m4octo", "Octopus (Nova) (MPU4)", + "m4oldtmr", "Old Timer (Barcrest) (Dutch) (MPU4) (DOT1.1)", + "m4olygn", "Olympic Gold (German) (Nova) (MPU4) (set 1)", + "m4olygn__a", "Olympic Gold (German) (Nova) (MPU4) (set 2)", + "m4omega", "Omega (Barcrest) (Dutch) (MPU4)", + "m4ordmnd", "Oriental Diamonds (Barcrest) (German) (MPU4)", + "m4orland", "Orlando Magic (Bwb) (MPU4) (set 1)", + "m4orland__a", "Orlando Magic (Bwb) (MPU4) (set 2)", + "m4orland__b", "Orlando Magic (Bwb) (MPU4) (set 3)", + "m4orland__c", "Orlando Magic (Bwb) (MPU4) (set 4)", + "m4orland__d", "Orlando Magic (Bwb) (MPU4) (set 5)", + "m4orland__e", "Orlando Magic (Bwb) (MPU4) (set 6)", + "m4orland__f", "Orlando Magic (Bwb) (MPU4) (set 7)", + "m4orland__g", "Orlando Magic (Bwb) (MPU4) (set 8)", + "m4orland__h", "Orlando Magic (Bwb) (MPU4) (set 9)", + "m4overmn", "Over The Moon (Barcrest) (MPU4) (set 1)", + "m4overmn__0", "Over The Moon (Barcrest) (MPU4) (set 28)", + "m4overmn__1", "Over The Moon (Barcrest) (MPU4) (set 29)", + "m4overmn__2", "Over The Moon (Barcrest) (MPU4) (set 30)", + "m4overmn__3", "Over The Moon (Barcrest) (MPU4) (set 31)", + "m4overmn__4", "Over The Moon (Barcrest) (MPU4) (set 32)", + "m4overmn__5", "Over The Moon (Barcrest) (MPU4) (set 33)", + "m4overmn__6", "Over The Moon (Barcrest) (MPU4) (set 34)", + "m4overmn__7", "Over The Moon (Barcrest) (MPU4) (set 35)", + "m4overmn__8", "Over The Moon (Barcrest) (MPU4) (set 36)", + "m4overmn__a", "Over The Moon (Barcrest) (MPU4) (set 2)", + "m4overmn__b", "Over The Moon (Barcrest) (MPU4) (set 3)", + "m4overmn__c", "Over The Moon (Barcrest) (MPU4) (set 4)", + "m4overmn__d", "Over The Moon (Barcrest) (MPU4) (set 5)", + "m4overmn__e", "Over The Moon (Barcrest) (MPU4) (set 6)", + "m4overmn__f", "Over The Moon (Barcrest) (MPU4) (set 7)", + "m4overmn__g", "Over The Moon (Barcrest) (MPU4) (set 8)", + "m4overmn__h", "Over The Moon (Barcrest) (MPU4) (set 9)", + "m4overmn__i", "Over The Moon (Barcrest) (MPU4) (set 10)", + "m4overmn__j", "Over The Moon (Barcrest) (MPU4) (set 11)", + "m4overmn__k", "Over The Moon (Barcrest) (MPU4) (set 12)", + "m4overmn__l", "Over The Moon (Barcrest) (MPU4) (set 13)", + "m4overmn__m", "Over The Moon (Barcrest) (MPU4) (set 14)", + "m4overmn__n", "Over The Moon (Barcrest) (MPU4) (set 15)", + "m4overmn__o", "Over The Moon (Barcrest) (MPU4) (set 16)", + "m4overmn__p", "Over The Moon (Barcrest) (MPU4) (set 17)", + "m4overmn__q", "Over The Moon (Barcrest) (MPU4) (set 18)", + "m4overmn__r", "Over The Moon (Barcrest) (MPU4) (set 19)", + "m4overmn__s", "Over The Moon (Barcrest) (MPU4) (set 20)", + "m4overmn__t", "Over The Moon (Barcrest) (MPU4) (set 21)", + "m4overmn__u", "Over The Moon (Barcrest) (MPU4) (set 22)", + "m4overmn__v", "Over The Moon (Barcrest) (MPU4) (set 23)", + "m4overmn__w", "Over The Moon (Barcrest) (MPU4) (set 24)", + "m4overmn__x", "Over The Moon (Barcrest) (MPU4) (set 25)", + "m4overmn__y", "Over The Moon (Barcrest) (MPU4) (set 26)", + "m4overmn__z", "Over The Moon (Barcrest) (MPU4) (set 27)", + "m4paracl", "Paradise Club (Crystal) (MPU4) (set 1)", + "m4paracla", "Paradise Club (Crystal) (MPU4) (set 2)", + "m4pbnudg", "Pinball Nudger (Empire) (MPU4, set 1)", + "m4pbnudga", "Pinball Nudger (Empire) (MPU4, set 2)", + "m4pbnudgb", "Pinball Nudger (Empire) (MPU4, set 3)", + "m4pick", "Pick A Fruit (JPM) (MPU4)", + "m4pitfal", "Pitfall (Empire) (MPU4, set 1)", + "m4pitfala", "Pitfall (Empire) (MPU4, set 2)", + "m4pitfalb", "Pitfall (Empire) (MPU4, set 3)", + "m4pitfalc", "Pitfall (Empire) (MPU4, set 4)", + "m4placbt", "Place Your Bets (Barcrest) (MPU4) (set 1)", + "m4placbt__0", "Place Your Bets (Barcrest) (MPU4) (set 28)", + "m4placbt__1", "Place Your Bets (Barcrest) (MPU4) (set 29)", + "m4placbt__2", "Place Your Bets (Barcrest) (MPU4) (set 30)", + "m4placbt__3", "Place Your Bets (Barcrest) (MPU4) (set 31)", + "m4placbt__4", "Place Your Bets (Barcrest) (MPU4) (set 32)", + "m4placbt__5", "Place Your Bets (Barcrest) (MPU4) (set 33)", + "m4placbt__6", "Place Your Bets (Barcrest) (MPU4) (set 34)", + "m4placbt__7", "Place Your Bets (Barcrest) (MPU4) (set 35)", + "m4placbt__8", "Place Your Bets (Barcrest) (MPU4) (set 36)", + "m4placbt__9", "Place Your Bets (Barcrest) (MPU4) (set 37)", + "m4placbt__a", "Place Your Bets (Barcrest) (MPU4) (set 2)", + "m4placbt__aa", "Place Your Bets (Barcrest) (MPU4) (set 38)", + "m4placbt__ab", "Place Your Bets (Barcrest) (MPU4) (set 39)", + "m4placbt__ac", "Place Your Bets (Barcrest) (MPU4) (set 40)", + "m4placbt__ad", "Place Your Bets (Barcrest) (MPU4) (set 41)", + "m4placbt__ae", "Place Your Bets (Barcrest) (MPU4) (set 42)", + "m4placbt__af", "Place Your Bets (Barcrest) (MPU4) (set 43)", + "m4placbt__ag", "Place Your Bets (Barcrest) (MPU4) (set 44)", + "m4placbt__ah", "Place Your Bets (Barcrest) (MPU4) (set 45)", + "m4placbt__ai", "Place Your Bets (Barcrest) (MPU4) (set 46)", + "m4placbt__aj", "Place Your Bets (Barcrest) (MPU4) (set 47)", + "m4placbt__ak", "Place Your Bets (Barcrest) (MPU4) (set 48)", + "m4placbt__al", "Place Your Bets (Barcrest) (MPU4) (set 49)", + "m4placbt__am", "Place Your Bets (Barcrest) (MPU4) (set 50)", + "m4placbt__an", "Place Your Bets (Barcrest) (MPU4) (set 51)", + "m4placbt__ao", "Place Your Bets (Barcrest) (MPU4) (set 52)", + "m4placbt__b", "Place Your Bets (Barcrest) (MPU4) (set 3)", + "m4placbt__c", "Place Your Bets (Barcrest) (MPU4) (set 4)", + "m4placbt__d", "Place Your Bets (Barcrest) (MPU4) (set 5)", + "m4placbt__e", "Place Your Bets (Barcrest) (MPU4) (set 6)", + "m4placbt__f", "Place Your Bets (Barcrest) (MPU4) (set 7)", + "m4placbt__g", "Place Your Bets (Barcrest) (MPU4) (set 8)", + "m4placbt__h", "Place Your Bets (Barcrest) (MPU4) (set 9)", + "m4placbt__i", "Place Your Bets (Barcrest) (MPU4) (set 10)", + "m4placbt__j", "Place Your Bets (Barcrest) (MPU4) (set 11)", + "m4placbt__k", "Place Your Bets (Barcrest) (MPU4) (set 12)", + "m4placbt__l", "Place Your Bets (Barcrest) (MPU4) (set 13)", + "m4placbt__m", "Place Your Bets (Barcrest) (MPU4) (set 14)", + "m4placbt__n", "Place Your Bets (Barcrest) (MPU4) (set 15)", + "m4placbt__o", "Place Your Bets (Barcrest) (MPU4) (set 16)", + "m4placbt__p", "Place Your Bets (Barcrest) (MPU4) (set 17)", + "m4placbt__q", "Place Your Bets (Barcrest) (MPU4) (set 18)", + "m4placbt__r", "Place Your Bets (Barcrest) (MPU4) (set 19)", + "m4placbt__s", "Place Your Bets (Barcrest) (MPU4) (set 20)", + "m4placbt__t", "Place Your Bets (Barcrest) (MPU4) (set 21)", + "m4placbt__u", "Place Your Bets (Barcrest) (MPU4) (set 22)", + "m4placbt__v", "Place Your Bets (Barcrest) (MPU4) (set 23)", + "m4placbt__w", "Place Your Bets (Barcrest) (MPU4) (set 24)", + "m4placbt__x", "Place Your Bets (Barcrest) (MPU4) (set 25)", + "m4placbt__y", "Place Your Bets (Barcrest) (MPU4) (set 26)", + "m4placbt__z", "Place Your Bets (Barcrest) (MPU4) (set 27)", + "m4pont", "Pontoon Club (Barcrest) (MPU4) (PON 3.0)", + "m4ponta", "Pontoon Club (Barcrest) (MPU4) (PON 4.0)", + "m4potblk", "Pot Black (Barcrest) (MPU4) (set 1)", + "m4potblk__0", "Pot Black (Barcrest) (MPU4) (set 28)", + "m4potblk__1", "Pot Black (Barcrest) (MPU4) (set 29)", + "m4potblk__2", "Pot Black (Barcrest) (MPU4) (set 30)", + "m4potblk__3", "Pot Black (Barcrest) (MPU4) (set 31)", + "m4potblk__4", "Pot Black (Barcrest) (MPU4) (set 32)", + "m4potblk__5", "Pot Black (Barcrest) (MPU4) (set 33)", + "m4potblk__6", "Pot Black (Barcrest) (MPU4) (set 34)", + "m4potblk__7", "Pot Black (Barcrest) (MPU4) (set 35)", + "m4potblk__8", "Pot Black (Barcrest) (MPU4) (set 36)", + "m4potblk__9", "Pot Black (Barcrest) (MPU4) (set 37)", + "m4potblk__a", "Pot Black (Barcrest) (MPU4) (set 2)", + "m4potblk__aa", "Pot Black (Barcrest) (MPU4) (set 38)", + "m4potblk__ab", "Pot Black (Barcrest) (MPU4) (set 39)", + "m4potblk__ac", "Pot Black (Barcrest) (MPU4) (set 40)", + "m4potblk__ad", "Pot Black (Barcrest) (MPU4) (set 41)", + "m4potblk__ae", "Pot Black (Barcrest) (MPU4) (set 42)", + "m4potblk__af", "Pot Black (Barcrest) (MPU4) (set 43)", + "m4potblk__ag", "Pot Black (Barcrest) (MPU4) (set 44)", + "m4potblk__ah", "Pot Black (Barcrest) (MPU4) (set 45)", + "m4potblk__ai", "Pot Black (Barcrest) (MPU4) (set 46)", + "m4potblk__aj", "Pot Black (Barcrest) (MPU4) (set 47)", + "m4potblk__ak", "Pot Black (Barcrest) (MPU4) (set 48)", + "m4potblk__al", "Pot Black (Barcrest) (MPU4) (set 49)", + "m4potblk__am", "Pot Black (Barcrest) (MPU4) (set 50)", + "m4potblk__an", "Pot Black (Barcrest) (MPU4) (set 51)", + "m4potblk__ao", "Pot Black (Barcrest) (MPU4) (set 52)", + "m4potblk__ap", "Pot Black (Barcrest) (MPU4) (set 53)", + "m4potblk__aq", "Pot Black (Barcrest) (MPU4) (set 54)", + "m4potblk__ar", "Pot Black (Barcrest) (MPU4) (set 55)", + "m4potblk__as", "Pot Black (Barcrest) (MPU4) (set 56)", + "m4potblk__at", "Pot Black (Barcrest) (MPU4) (set 57)", + "m4potblk__au", "Pot Black (Barcrest) (MPU4) (set 58)", + "m4potblk__av", "Pot Black (Barcrest) (MPU4) (set 59)", + "m4potblk__aw", "Pot Black (Barcrest) (MPU4) (set 60)", + "m4potblk__ax", "Pot Black (Barcrest) (MPU4) (set 61)", + "m4potblk__b", "Pot Black (Barcrest) (MPU4) (set 3)", + "m4potblk__c", "Pot Black (Barcrest) (MPU4) (set 4)", + "m4potblk__d", "Pot Black (Barcrest) (MPU4) (set 5)", + "m4potblk__e", "Pot Black (Barcrest) (MPU4) (set 6)", + "m4potblk__f", "Pot Black (Barcrest) (MPU4) (set 7)", + "m4potblk__g", "Pot Black (Barcrest) (MPU4) (set 8)", + "m4potblk__h", "Pot Black (Barcrest) (MPU4) (set 9)", + "m4potblk__i", "Pot Black (Barcrest) (MPU4) (set 10)", + "m4potblk__j", "Pot Black (Barcrest) (MPU4) (set 11)", + "m4potblk__k", "Pot Black (Barcrest) (MPU4) (set 12)", + "m4potblk__l", "Pot Black (Barcrest) (MPU4) (set 13)", + "m4potblk__m", "Pot Black (Barcrest) (MPU4) (set 14)", + "m4potblk__n", "Pot Black (Barcrest) (MPU4) (set 15)", + "m4potblk__o", "Pot Black (Barcrest) (MPU4) (set 16)", + "m4potblk__p", "Pot Black (Barcrest) (MPU4) (set 17)", + "m4potblk__q", "Pot Black (Barcrest) (MPU4) (set 18)", + "m4potblk__r", "Pot Black (Barcrest) (MPU4) (set 19)", + "m4potblk__s", "Pot Black (Barcrest) (MPU4) (set 20)", + "m4potblk__t", "Pot Black (Barcrest) (MPU4) (set 21)", + "m4potblk__u", "Pot Black (Barcrest) (MPU4) (set 22)", + "m4potblk__v", "Pot Black (Barcrest) (MPU4) (set 23)", + "m4potblk__w", "Pot Black (Barcrest) (MPU4) (set 24)", + "m4potblk__x", "Pot Black (Barcrest) (MPU4) (set 25)", + "m4potblk__y", "Pot Black (Barcrest) (MPU4) (set 26)", + "m4potblk__z", "Pot Black (Barcrest) (MPU4) (set 27)", + "m4potlck", "Pot Luck 100 Club (Barcrest) (MPU4) (P1L 2.2)", + "m4potlcka", "Pot Luck 100 Club (Barcrest) (MPU4) (PL 2.7)", + "m4prem", "Premier (Barcrest) (MPU4) (DPM)", + "m4przdty", "Prize Duty Free (Barcrest) (MPU4) (set 1)", + "m4przdty__a", "Prize Duty Free (Barcrest) (MPU4) (set 2)", + "m4przdty__b", "Prize Duty Free (Barcrest) (MPU4) (set 3)", + "m4przdty__c", "Prize Duty Free (Barcrest) (MPU4) (set 4)", + "m4przdty__d", "Prize Duty Free (Barcrest) (MPU4) (set 5)", + "m4przdty__e", "Prize Duty Free (Barcrest) (MPU4) (set 6)", + "m4przdty__f", "Prize Duty Free (Barcrest) (MPU4) (set 7)", + "m4przdty__g", "Prize Duty Free (Barcrest) (MPU4) (set 8)", + "m4przdty__h", "Prize Duty Free (Barcrest) (MPU4) (set 9)", + "m4przdty__i", "Prize Duty Free (Barcrest) (MPU4) (set 10)", + "m4przdty__j", "Prize Duty Free (Barcrest) (MPU4) (set 11)", + "m4przdty__k", "Prize Duty Free (Barcrest) (MPU4) (set 12)", + "m4przdty__l", "Prize Duty Free (Barcrest) (MPU4) (set 13)", + "m4przdty__m", "Prize Duty Free (Barcrest) (MPU4) (set 14)", + "m4przdty__n", "Prize Duty Free (Barcrest) (MPU4) (set 15)", + "m4przdty__o", "Prize Duty Free (Barcrest) (MPU4) (set 16)", + "m4przdty__p", "Prize Duty Free (Barcrest) (MPU4) (set 17)", + "m4przfrt", "Prize Fruit & Loot (Barcrest) (MPU4) (set 1)", + "m4przfrt__a", "Prize Fruit & Loot (Barcrest) (MPU4) (set 2)", + "m4przfrt__b", "Prize Fruit & Loot (Barcrest) (MPU4) (set 3)", + "m4przfrt__c", "Prize Fruit & Loot (Barcrest) (MPU4) (set 4)", + "m4przfrt__d", "Prize Fruit & Loot (Barcrest) (MPU4) (set 5)", + "m4przfrt__e", "Prize Fruit & Loot (Barcrest) (MPU4) (set 6)", + "m4przfrt__f", "Prize Fruit & Loot (Barcrest) (MPU4) (set 7)", + "m4przfrt__g", "Prize Fruit & Loot (Barcrest) (MPU4) (set 8)", + "m4przfrt__h", "Prize Fruit & Loot (Barcrest) (MPU4) (set 9)", + "m4przfrt__i", "Prize Fruit & Loot (Barcrest) (MPU4) (set 10)", + "m4przfrt__j", "Prize Fruit & Loot (Barcrest) (MPU4) (set 11)", + "m4przfrt__k", "Prize Fruit & Loot (Barcrest) (MPU4) (set 12)", + "m4przfrt__l", "Prize Fruit & Loot (Barcrest) (MPU4) (set 13)", + "m4przhr", "Prize High Roller (Barcrest) (MPU4) (set 1)", + "m4przhr__a", "Prize High Roller (Barcrest) (MPU4) (set 2)", + "m4przhr__b", "Prize High Roller (Barcrest) (MPU4) (set 3)", + "m4przhr__c", "Prize High Roller (Barcrest) (MPU4) (set 4)", + "m4przhr__d", "Prize High Roller (Barcrest) (MPU4) (set 5)", + "m4przhr__e", "Prize High Roller (Barcrest) (MPU4) (set 6)", + "m4przhr__f", "Prize High Roller (Barcrest) (MPU4) (set 7)", + "m4przhr__g", "Prize High Roller (Barcrest) (MPU4) (set 8)", + "m4przhr__h", "Prize High Roller (Barcrest) (MPU4) (set 9)", + "m4przhr__i", "Prize High Roller (Barcrest) (MPU4) (set 10)", + "m4przhr__j", "Prize High Roller (Barcrest) (MPU4) (set 11)", + "m4przhr__k", "Prize High Roller (Barcrest) (MPU4) (set 12)", + "m4przhr__l", "Prize High Roller (Barcrest) (MPU4) (set 13)", + "m4przhr__m", "Prize High Roller (Barcrest) (MPU4) (set 14)", + "m4przhr__n", "Prize High Roller (Barcrest) (MPU4) (set 15)", + "m4przhr__o", "Prize High Roller (Barcrest) (MPU4) (set 16)", + "m4przhr__p", "Prize High Roller (Barcrest) (MPU4) (set 17)", + "m4przlux", "Prize Luxor (Barcrest) (MPU4) (set 1)", + "m4przlux__a", "Prize Luxor (Barcrest) (MPU4) (set 2)", + "m4przlux__b", "Prize Luxor (Barcrest) (MPU4) (set 3)", + "m4przlux__c", "Prize Luxor (Barcrest) (MPU4) (set 4)", + "m4przlux__d", "Prize Luxor (Barcrest) (MPU4) (set 5)", + "m4przlux__e", "Prize Luxor (Barcrest) (MPU4) (set 6)", + "m4przlux__f", "Prize Luxor (Barcrest) (MPU4) (set 7)", + "m4przmc", "Prize Monte Carlo (Barcrest) (MPU4) (set 1)", + "m4przmc__a", "Prize Monte Carlo (Barcrest) (MPU4) (set 2)", + "m4przmc__b", "Prize Monte Carlo (Barcrest) (MPU4) (set 3)", + "m4przmc__c", "Prize Monte Carlo (Barcrest) (MPU4) (set 4)", + "m4przmc__d", "Prize Monte Carlo (Barcrest) (MPU4) (set 5)", + "m4przmc__e", "Prize Monte Carlo (Barcrest) (MPU4) (set 6)", + "m4przmc__f", "Prize Monte Carlo (Barcrest) (MPU4) (set 7)", + "m4przmns", "Prize Money Showcase (Barcrest) (MPU4) (set 1)", + "m4przmns__a", "Prize Money Showcase (Barcrest) (MPU4) (set 2)", + "m4przmns__b", "Prize Money Showcase (Barcrest) (MPU4) (set 3)", + "m4przmns__c", "Prize Money Showcase (Barcrest) (MPU4) (set 4)", + "m4przmns__d", "Prize Money Showcase (Barcrest) (MPU4) (set 5)", + "m4przmns__e", "Prize Money Showcase (Barcrest) (MPU4) (set 6)", + "m4przmns__f", "Prize Money Showcase (Barcrest) (MPU4) (set 7)", + "m4przmns__g", "Prize Money Showcase (Barcrest) (MPU4) (set 8)", + "m4przmns__h", "Prize Money Showcase (Barcrest) (MPU4) (set 9)", + "m4przmns__i", "Prize Money Showcase (Barcrest) (MPU4) (set 10)", + "m4przmns__j", "Prize Money Showcase (Barcrest) (MPU4) (set 11)", + "m4przmns__k", "Prize Money Showcase (Barcrest) (MPU4) (set 12)", + "m4przmns__l", "Prize Money Showcase (Barcrest) (MPU4) (set 13)", + "m4przmns__m", "Prize Money Showcase (Barcrest) (MPU4) (set 14)", + "m4przmns__n", "Prize Money Showcase (Barcrest) (MPU4) (set 15)", + "m4przmon", "Prize Money (Barcrest) (MPU4) (set 1)", + "m4przmon__0", "Prize Money (Barcrest) (MPU4) (set 28)", + "m4przmon__1", "Prize Money (Barcrest) (MPU4) (set 29)", + "m4przmon__a", "Prize Money (Barcrest) (MPU4) (set 2)", + "m4przmon__b", "Prize Money (Barcrest) (MPU4) (set 3)", + "m4przmon__c", "Prize Money (Barcrest) (MPU4) (set 4)", + "m4przmon__d", "Prize Money (Barcrest) (MPU4) (set 5)", + "m4przmon__e", "Prize Money (Barcrest) (MPU4) (set 6)", + "m4przmon__f", "Prize Money (Barcrest) (MPU4) (set 7)", + "m4przmon__g", "Prize Money (Barcrest) (MPU4) (set 8)", + "m4przmon__h", "Prize Money (Barcrest) (MPU4) (set 9)", + "m4przmon__i", "Prize Money (Barcrest) (MPU4) (set 10)", + "m4przmon__j", "Prize Money (Barcrest) (MPU4) (set 11)", + "m4przmon__k", "Prize Money (Barcrest) (MPU4) (set 12)", + "m4przmon__l", "Prize Money (Barcrest) (MPU4) (set 13)", + "m4przmon__m", "Prize Money (Barcrest) (MPU4) (set 14)", + "m4przmon__n", "Prize Money (Barcrest) (MPU4) (set 15)", + "m4przmon__o", "Prize Money (Barcrest) (MPU4) (set 16)", + "m4przmon__p", "Prize Money (Barcrest) (MPU4) (set 17)", + "m4przmon__q", "Prize Money (Barcrest) (MPU4) (set 18)", + "m4przmon__r", "Prize Money (Barcrest) (MPU4) (set 19)", + "m4przmon__s", "Prize Money (Barcrest) (MPU4) (set 20)", + "m4przmon__t", "Prize Money (Barcrest) (MPU4) (set 21)", + "m4przmon__u", "Prize Money (Barcrest) (MPU4) (set 22)", + "m4przmon__v", "Prize Money (Barcrest) (MPU4) (set 23)", + "m4przmon__w", "Prize Money (Barcrest) (MPU4) (set 24)", + "m4przmon__x", "Prize Money (Barcrest) (MPU4) (set 25)", + "m4przmon__y", "Prize Money (Barcrest) (MPU4) (set 26)", + "m4przmon__z", "Prize Money (Barcrest) (MPU4) (set 27)", + "m4przrf", "Prize Rich And Famous (Barcrest) (MPU4) (set 1)", + "m4przrf__a", "Prize Rich And Famous (Barcrest) (MPU4) (set 2)", + "m4przrf__b", "Prize Rich And Famous (Barcrest) (MPU4) (set 3)", + "m4przrf__c", "Prize Rich And Famous (Barcrest) (MPU4) (set 4)", + "m4przrf__d", "Prize Rich And Famous (Barcrest) (MPU4) (set 5)", + "m4przrf__e", "Prize Rich And Famous (Barcrest) (MPU4) (set 6)", + "m4przrf__f", "Prize Rich And Famous (Barcrest) (MPU4) (set 7)", + "m4przrf__g", "Prize Rich And Famous (Barcrest) (MPU4) (set 8)", + "m4przrf__h", "Prize Rich And Famous (Barcrest) (MPU4) (set 9)", + "m4przrf__i", "Prize Rich And Famous (Barcrest) (MPU4) (set 10)", + "m4przrf__j", "Prize Rich And Famous (Barcrest) (MPU4) (set 11)", + "m4przrfm", "Prize Run For Your Money (Barcrest) (MPU4) (set 1)", + "m4przrfm__a", "Prize Run For Your Money (Barcrest) (MPU4) (set 2)", + "m4przrfm__b", "Prize Run For Your Money (Barcrest) (MPU4) (set 3)", + "m4przrfm__c", "Prize Run For Your Money (Barcrest) (MPU4) (set 4)", + "m4przrfm__d", "Prize Run For Your Money (Barcrest) (MPU4) (set 5)", + "m4przrfm__e", "Prize Run For Your Money (Barcrest) (MPU4) (set 6)", + "m4przrfm__f", "Prize Run For Your Money (Barcrest) (MPU4) (set 7)", + "m4przrfm__g", "Prize Run For Your Money (Barcrest) (MPU4) (set 8)", + "m4przrfm__h", "Prize Run For Your Money (Barcrest) (MPU4) (set 9)", + "m4przrfm__i", "Prize Run For Your Money (Barcrest) (MPU4) (set 10)", + "m4przrfm__j", "Prize Run For Your Money (Barcrest) (MPU4) (set 11)", + "m4przrfm__k", "Prize Run For Your Money (Barcrest) (MPU4) (set 12)", + "m4przrfm__l", "Prize Run For Your Money (Barcrest) (MPU4) (set 13)", + "m4przrfm__m", "Prize Run For Your Money (Barcrest) (MPU4) (set 14)", + "m4przrfm__n", "Prize Run For Your Money (Barcrest) (MPU4) (set 15)", + "m4przrfm__o", "Prize Run For Your Money (Barcrest) (MPU4) (set 16)", + "m4przsss", "Prize Spend Spend Spend (Barcrest) (MPU4) (set 1)", + "m4przsss__0", "Prize Spend Spend Spend (Barcrest) (MPU4) (set 28)", + "m4przsss__a", "Prize Spend Spend Spend (Barcrest) (MPU4) (set 2)", + "m4przsss__b", "Prize Spend Spend Spend (Barcrest) (MPU4) (set 3)", + "m4przsss__c", "Prize Spend Spend Spend (Barcrest) (MPU4) (set 4)", + "m4przsss__d", "Prize Spend Spend Spend (Barcrest) (MPU4) (set 5)", + "m4przsss__e", "Prize Spend Spend Spend (Barcrest) (MPU4) (set 6)", + "m4przsss__f", "Prize Spend Spend Spend (Barcrest) (MPU4) (set 7)", + "m4przsss__g", "Prize Spend Spend Spend (Barcrest) (MPU4) (set 8)", + "m4przsss__h", "Prize Spend Spend Spend (Barcrest) (MPU4) (set 9)", + "m4przsss__i", "Prize Spend Spend Spend (Barcrest) (MPU4) (set 10)", + "m4przsss__j", "Prize Spend Spend Spend (Barcrest) (MPU4) (set 11)", + "m4przsss__k", "Prize Spend Spend Spend (Barcrest) (MPU4) (set 12)", + "m4przsss__l", "Prize Spend Spend Spend (Barcrest) (MPU4) (set 13)", + "m4przsss__m", "Prize Spend Spend Spend (Barcrest) (MPU4) (set 14)", + "m4przsss__n", "Prize Spend Spend Spend (Barcrest) (MPU4) (set 15)", + "m4przsss__o", "Prize Spend Spend Spend (Barcrest) (MPU4) (set 16)", + "m4przsss__p", "Prize Spend Spend Spend (Barcrest) (MPU4) (set 17)", + "m4przsss__q", "Prize Spend Spend Spend (Barcrest) (MPU4) (set 18)", + "m4przsss__r", "Prize Spend Spend Spend (Barcrest) (MPU4) (set 19)", + "m4przsss__s", "Prize Spend Spend Spend (Barcrest) (MPU4) (set 20)", + "m4przsss__t", "Prize Spend Spend Spend (Barcrest) (MPU4) (set 21)", + "m4przsss__u", "Prize Spend Spend Spend (Barcrest) (MPU4) (set 22)", + "m4przsss__v", "Prize Spend Spend Spend (Barcrest) (MPU4) (set 23)", + "m4przsss__w", "Prize Spend Spend Spend (Barcrest) (MPU4) (set 24)", + "m4przsss__x", "Prize Spend Spend Spend (Barcrest) (MPU4) (set 25)", + "m4przsss__y", "Prize Spend Spend Spend (Barcrest) (MPU4) (set 26)", + "m4przsss__z", "Prize Spend Spend Spend (Barcrest) (MPU4) (set 27)", + "m4przve", "Prize Viva Esapana (Barcrest) (MPU4) (set 1)", + "m4przve__a", "Prize Viva Esapana (Barcrest) (MPU4) (set 2)", + "m4przve__b", "Prize Viva Esapana (Barcrest) (MPU4) (set 3)", + "m4przve__c", "Prize Viva Esapana (Barcrest) (MPU4) (set 4)", + "m4przve__d", "Prize Viva Esapana (Barcrest) (MPU4) (set 5)", + "m4przve__e", "Prize Viva Esapana (Barcrest) (MPU4) (set 6)", + "m4przve__f", "Prize Viva Esapana (Barcrest) (MPU4) (set 7)", + "m4przve__g", "Prize Viva Esapana (Barcrest) (MPU4) (set 8)", + "m4przve__h", "Prize Viva Esapana (Barcrest) (MPU4) (set 9)", + "m4przve__i", "Prize Viva Esapana (Barcrest) (MPU4) (set 10)", + "m4przve__j", "Prize Viva Esapana (Barcrest) (MPU4) (set 11)", + "m4przve__k", "Prize Viva Esapana (Barcrest) (MPU4) (set 12)", + "m4przve__l", "Prize Viva Esapana (Barcrest) (MPU4) (set 13)", + "m4przve__m", "Prize Viva Esapana (Barcrest) (MPU4) (set 14)", + "m4przve__n", "Prize Viva Esapana (Barcrest) (MPU4) (set 15)", + "m4przve__o", "Prize Viva Esapana (Barcrest) (MPU4) (set 16)", + "m4przve__p", "Prize Viva Esapana (Barcrest) (MPU4) (set 17)", + "m4przwo", "Prize What's On (Barcrest) (MPU4) (set 1)", + "m4przwo__a", "Prize What's On (Barcrest) (MPU4) (set 2)", + "m4przwo__b", "Prize What's On (Barcrest) (MPU4) (set 3)", + "m4przwo__c", "Prize What's On (Barcrest) (MPU4) (set 4)", + "m4przwo__d", "Prize What's On (Barcrest) (MPU4) (set 5)", + "m4przwo__e", "Prize What's On (Barcrest) (MPU4) (set 6)", + "m4przwo__f", "Prize What's On (Barcrest) (MPU4) (set 7)", + "m4przwta", "Prize Winner Takes All (Barcrest) (MPU4) (set 1)", + "m4przwta__a", "Prize Winner Takes All (Barcrest) (MPU4) (set 2)", + "m4przwta__b", "Prize Winner Takes All (Barcrest) (MPU4) (set 3)", + "m4przwta__c", "Prize Winner Takes All (Barcrest) (MPU4) (set 4)", + "m4przwta__d", "Prize Winner Takes All (Barcrest) (MPU4) (set 5)", + "m4przwta__e", "Prize Winner Takes All (Barcrest) (MPU4) (set 6)", + "m4przwta__f", "Prize Winner Takes All (Barcrest) (MPU4) (set 7)", + "m4przwta__g", "Prize Winner Takes All (Barcrest) (MPU4) (set 8)", + "m4przwta__h", "Prize Winner Takes All (Barcrest) (MPU4) (set 9)", + "m4przwta__i", "Prize Winner Takes All (Barcrest) (MPU4) (set 10)", + "m4przwta__j", "Prize Winner Takes All (Barcrest) (MPU4) (set 11)", + "m4przwta__k", "Prize Winner Takes All (Barcrest) (MPU4) (set 12)", + "m4przwta__l", "Prize Winner Takes All (Barcrest) (MPU4) (set 13)", + "m4przwta__m", "Prize Winner Takes All (Barcrest) (MPU4) (set 14)", + "m4przwta__n", "Prize Winner Takes All (Barcrest) (MPU4) (set 15)", + "m4przwta__o", "Prize Winner Takes All (Barcrest) (MPU4) (set 16)", + "m4przwta__p", "Prize Winner Takes All (Barcrest) (MPU4) (set 17)", + "m4ptblkc", "Pot Black Casino (Bwb - Barcrest) (MPU4)", + "m4pulwnc", "Pull-A-Win (Concept Games Ltd) (MPU4) (set 1)", + "m4pulwnc__0", "Pull-A-Win (Concept Games Ltd) (MPU4) (set 28)", + "m4pulwnc__1", "Pull-A-Win (Concept Games Ltd) (MPU4) (set 29)", + "m4pulwnc__2", "Pull-A-Win (Concept Games Ltd) (MPU4) (set 30)", + "m4pulwnc__3", "Pull-A-Win (Concept Games Ltd) (MPU4) (set 31)", + "m4pulwnc__4", "Pull-A-Win (Concept Games Ltd) (MPU4) (set 32)", + "m4pulwnc__a", "Pull-A-Win (Concept Games Ltd) (MPU4) (set 2)", + "m4pulwnc__b", "Pull-A-Win (Concept Games Ltd) (MPU4) (set 3)", + "m4pulwnc__c", "Pull-A-Win (Concept Games Ltd) (MPU4) (set 4)", + "m4pulwnc__d", "Pull-A-Win (Concept Games Ltd) (MPU4) (set 5)", + "m4pulwnc__e", "Pull-A-Win (Concept Games Ltd) (MPU4) (set 6)", + "m4pulwnc__f", "Pull-A-Win (Concept Games Ltd) (MPU4) (set 7)", + "m4pulwnc__g", "Pull-A-Win (Concept Games Ltd) (MPU4) (set 8)", + "m4pulwnc__h", "Pull-A-Win (Concept Games Ltd) (MPU4) (set 9)", + "m4pulwnc__i", "Pull-A-Win (Concept Games Ltd) (MPU4) (set 10)", + "m4pulwnc__j", "Pull-A-Win (Concept Games Ltd) (MPU4) (set 11)", + "m4pulwnc__k", "Pull-A-Win (Concept Games Ltd) (MPU4) (set 12)", + "m4pulwnc__l", "Pull-A-Win (Concept Games Ltd) (MPU4) (set 13)", + "m4pulwnc__m", "Pull-A-Win (Concept Games Ltd) (MPU4) (set 14)", + "m4pulwnc__n", "Pull-A-Win (Concept Games Ltd) (MPU4) (set 15)", + "m4pulwnc__o", "Pull-A-Win (Concept Games Ltd) (MPU4) (set 16)", + "m4pulwnc__p", "Pull-A-Win (Concept Games Ltd) (MPU4) (set 17)", + "m4pulwnc__q", "Pull-A-Win (Concept Games Ltd) (MPU4) (set 18)", + "m4pulwnc__r", "Pull-A-Win (Concept Games Ltd) (MPU4) (set 19)", + "m4pulwnc__s", "Pull-A-Win (Concept Games Ltd) (MPU4) (set 20)", + "m4pulwnc__t", "Pull-A-Win (Concept Games Ltd) (MPU4) (set 21)", + "m4pulwnc__u", "Pull-A-Win (Concept Games Ltd) (MPU4) (set 22)", + "m4pulwnc__v", "Pull-A-Win (Concept Games Ltd) (MPU4) (set 23)", + "m4pulwnc__w", "Pull-A-Win (Concept Games Ltd) (MPU4) (set 24)", + "m4pulwnc__x", "Pull-A-Win (Concept Games Ltd) (MPU4) (set 25)", + "m4pulwnc__y", "Pull-A-Win (Concept Games Ltd) (MPU4) (set 26)", + "m4pulwnc__z", "Pull-A-Win (Concept Games Ltd) (MPU4) (set 27)", + "m4purmad", "Pure Madness (Union)", + "m4pzbing", "Prize Bingo (Bwb) (MPU4) (set 1)", + "m4pzbing__a", "Prize Bingo (Bwb) (MPU4) (set 2)", + "m4pzbing__b", "Prize Bingo (Bwb) (MPU4) (set 3)", + "m4pzbing__c", "Prize Bingo (Bwb) (MPU4) (set 4)", + "m4pzbing__d", "Prize Bingo (Bwb) (MPU4) (set 5)", + "m4pzbing__e", "Prize Bingo (Bwb) (MPU4) (set 6)", + "m4quidin", "Quids In (Bwb) (MPU4) (set 1)", + "m4quidin__a", "Quids In (Bwb) (MPU4) (set 2)", + "m4quidin__b", "Quids In (Bwb) (MPU4) (set 3)", + "m4quidis", "Quids In Showcase (Bwb) (MPU4) (set 1)", + "m4quidis__a", "Quids In Showcase (Bwb) (MPU4) (set 2)", + "m4quidis__b", "Quids In Showcase (Bwb) (MPU4) (set 3)", + "m4quidis__c", "Quids In Showcase (Bwb) (MPU4) (set 4)", + "m4quidis__d", "Quids In Showcase (Bwb) (MPU4) (set 5)", + "m4r2r", "Reel 2 Reel (Barcrest) (MPU4)", + "m4ra", "Red Alert (Barcrest) (MPU4) (set 1)", + "m4ra__a", "Red Alert (Barcrest) (MPU4) (set 2)", + "m4ra__b", "Red Alert (Barcrest) (MPU4) (set 3)", + "m4ra__c", "Red Alert (Barcrest) (MPU4) (set 4)", + "m4ra__d", "Red Alert (Barcrest) (MPU4) (set 5)", + "m4ra__e", "Red Alert (Barcrest) (MPU4) (set 6)", + "m4ra__f", "Red Alert (Barcrest) (MPU4) (set 7)", + "m4ra__g", "Red Alert (Barcrest) (MPU4) (set 8)", + "m4ra__h", "Red Alert (Barcrest) (MPU4) (set 9)", + "m4ra__i", "Red Alert (Barcrest) (MPU4) (set 10)", + "m4ra__j", "Red Alert (Barcrest) (MPU4) (set 11)", + "m4ra__k", "Red Alert (Barcrest) (MPU4) (set 12)", + "m4ra__l", "Red Alert (Barcrest) (MPU4) (set 13)", + "m4ra__m", "Red Alert (Barcrest) (MPU4) (set 14)", + "m4ra__n", "Red Alert (Barcrest) (MPU4) (set 15)", + "m4ra__o", "Red Alert (Barcrest) (MPU4) (set 16)", + "m4ra__p", "Red Alert (Barcrest) (MPU4) (set 17)", + "m4ra__q", "Red Alert (Barcrest) (MPU4) (set 18)", + "m4ra__r", "Red Alert (Barcrest) (MPU4) (set 19)", + "m4rackem", "Rack Em Up (Bwb) (MPU4) (set 1)", + "m4rackem__a", "Rack Em Up (Bwb) (MPU4) (set 2)", + "m4rackem__b", "Rack Em Up (Bwb) (MPU4) (set 3)", + "m4rackem__c", "Rack Em Up (Bwb) (MPU4) (set 4)", + "m4rackem__d", "Rack Em Up (Bwb) (MPU4) (set 5)", + "m4rags", "Rags To Riches Club (Crystal) (MPU4) (set 1)", + "m4ragsa", "Rags To Riches Club (Crystal) (MPU4) (set 2)", + "m4ragsb", "Rags To Riches Club (Crystal) (MPU4) (set 3)", + "m4ragsc", "Rags To Riches Club (Crystal) (MPU4) (set 4)", + "m4randr", "Random Roulette (Barcrest) (Dutch) (MPU4)", + "m4rbgold", "Rainbow Gold (Bwb) (MPU4) (set 1)", + "m4rbgold__a", "Rainbow Gold (Bwb) (MPU4) (set 2)", + "m4rbgold__b", "Rainbow Gold (Bwb) (MPU4) (set 3)", + "m4rbgold__c", "Rainbow Gold (Bwb) (MPU4) (set 4)", + "m4rbgold__d", "Rainbow Gold (Bwb) (MPU4) (set 5)", + "m4rbgold__e", "Rainbow Gold (Bwb) (MPU4) (set 6)", + "m4rbgold__f", "Rainbow Gold (Bwb) (MPU4) (set 7)", + "m4rbgold__g", "Rainbow Gold (Bwb) (MPU4) (set 8)", + "m4rbgold__h", "Rainbow Gold (Bwb) (MPU4) (set 9)", + "m4rbgold__i", "Rainbow Gold (Bwb) (MPU4) (set 10)", + "m4rbgold__j", "Rainbow Gold (Bwb) (MPU4) (set 11)", + "m4rbgold__k", "Rainbow Gold (Bwb) (MPU4) (set 12)", + "m4rbgold__l", "Rainbow Gold (Bwb) (MPU4) (set 13)", + "m4rbgold__m", "Rainbow Gold (Bwb) (MPU4) (set 14)", + "m4rbgold__n", "Rainbow Gold (Bwb) (MPU4) (set 15)", + "m4rbgold__o", "Rainbow Gold (Bwb) (MPU4) (set 16)", + "m4rbgold__p", "Rainbow Gold (Bwb) (MPU4) (set 17)", + "m4rbgold__q", "Rainbow Gold (Bwb) (MPU4) (set 18)", + "m4rckrol", "Rock 'n' Roll (Union - Empire) (MPU4, set 1)", + "m4rckrola", "Rock 'n' Roll (Union - Empire) (MPU4, set 2)", + "m4rckrolb", "Rock 'n' Roll (Union - Empire) (MPU4, set 3)", + "m4rdeal", "Reel Deal (Qps) (MPU4) (set 1)", + "m4rdeal__a", "Reel Deal (Qps) (MPU4) (set 2)", + "m4rdeal__b", "Reel Deal (Qps) (MPU4) (set 3)", + "m4rdeal__c", "Reel Deal (Qps) (MPU4) (set 4)", + "m4rdeal__d", "Reel Deal (Qps) (MPU4) (set 5)", + "m4rdeal__e", "Reel Deal (Qps) (MPU4) (set 6)", + "m4rdeal__f", "Reel Deal (Qps) (MPU4) (set 7)", + "m4rdeal__g", "Reel Deal (Qps) (MPU4) (set 8)", + "m4rdeal__h", "Reel Deal (Qps) (MPU4) (set 9)", + "m4rdeal__i", "Reel Deal (Qps) (MPU4) (set 10)", + "m4rdht", "Red Heat (Golden Nugget?) (Barcrest) (MPU4) (DRH 1.2)", + "m4ready", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 1)", + "m4ready__0", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 28)", + "m4ready__1", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 29)", + "m4ready__2", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 30)", + "m4ready__3", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 31)", + "m4ready__4", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 32)", + "m4ready__5", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 33)", + "m4ready__6", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 34)", + "m4ready__7", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 35)", + "m4ready__8", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 36)", + "m4ready__9", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 37)", + "m4ready__a", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 2)", + "m4ready__a0", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 64)", + "m4ready__a1", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 65)", + "m4ready__a2", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 66)", + "m4ready__a3", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 67)", + "m4ready__a4", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 68)", + "m4ready__a5", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 69)", + "m4ready__aa", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 38)", + "m4ready__ab", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 39)", + "m4ready__ac", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 40)", + "m4ready__ad", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 41)", + "m4ready__ae", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 42)", + "m4ready__af", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 43)", + "m4ready__ag", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 44)", + "m4ready__ah", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 45)", + "m4ready__ai", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 46)", + "m4ready__aj", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 47)", + "m4ready__ak", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 48)", + "m4ready__al", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 49)", + "m4ready__am", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 50)", + "m4ready__an", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 51)", + "m4ready__ao", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 52)", + "m4ready__ap", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 53)", + "m4ready__aq", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 54)", + "m4ready__ar", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 55)", + "m4ready__as", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 56)", + "m4ready__at", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 57)", + "m4ready__au", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 58)", + "m4ready__av", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 59)", + "m4ready__aw", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 60)", + "m4ready__ax", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 61)", + "m4ready__ay", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 62)", + "m4ready__az", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 63)", + "m4ready__b", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 3)", + "m4ready__c", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 4)", + "m4ready__d", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 5)", + "m4ready__e", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 6)", + "m4ready__f", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 7)", + "m4ready__g", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 8)", + "m4ready__h", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 9)", + "m4ready__i", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 10)", + "m4ready__j", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 11)", + "m4ready__k", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 12)", + "m4ready__l", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 13)", + "m4ready__m", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 14)", + "m4ready__n", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 15)", + "m4ready__o", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 16)", + "m4ready__p", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 17)", + "m4ready__q", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 18)", + "m4ready__r", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 19)", + "m4ready__s", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 20)", + "m4ready__t", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 21)", + "m4ready__u", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 22)", + "m4ready__v", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 23)", + "m4ready__w", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 24)", + "m4ready__x", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 25)", + "m4ready__y", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 26)", + "m4ready__z", "Ready Steady Go (Barcrest) (type 2) (MPU4) (set 27)", + "m4reelpk", "Reel Poker (Barcrest) (MPU4)", + "m4reeltm", "Reel Timer (Barcrest) (MPU4) (DWT)", + "m4remag", "unknown MPU4 'ZTP 0.7' (MPU4?)", + "m4revolv", "Revolva (Union) (MPU4)", + "m4rfym", "Run For Your Money (Barcrest) (MPU4) (set 1)", + "m4rfym__0", "Run For Your Money (Barcrest) (MPU4) (set 28)", + "m4rfym__1", "Run For Your Money (Barcrest) (MPU4) (set 29)", + "m4rfym__2", "Run For Your Money (Barcrest) (MPU4) (set 30)", + "m4rfym__3", "Run For Your Money (Barcrest) (MPU4) (set 31)", + "m4rfym__4", "Run For Your Money (Barcrest) (MPU4) (set 32)", + "m4rfym__5", "Run For Your Money (Barcrest) (MPU4) (set 33)", + "m4rfym__6", "Run For Your Money (Barcrest) (MPU4) (set 34)", + "m4rfym__7", "Run For Your Money (Barcrest) (MPU4) (set 35)", + "m4rfym__8", "Run For Your Money (Barcrest) (MPU4) (set 36)", + "m4rfym__9", "Run For Your Money (Barcrest) (MPU4) (set 37)", + "m4rfym__a", "Run For Your Money (Barcrest) (MPU4) (set 2)", + "m4rfym__a0", "Run For Your Money (Barcrest) (MPU4) (set 64)", + "m4rfym__a1", "Run For Your Money (Barcrest) (MPU4) (set 65)", + "m4rfym__a2", "Run For Your Money (Barcrest) (MPU4) (set 66)", + "m4rfym__a3", "Run For Your Money (Barcrest) (MPU4) (set 67)", + "m4rfym__a4", "Run For Your Money (Barcrest) (MPU4) (set 68)", + "m4rfym__a5", "Run For Your Money (Barcrest) (MPU4) (set 69)", + "m4rfym__aa", "Run For Your Money (Barcrest) (MPU4) (set 38)", + "m4rfym__ab", "Run For Your Money (Barcrest) (MPU4) (set 39)", + "m4rfym__ac", "Run For Your Money (Barcrest) (MPU4) (set 40)", + "m4rfym__ad", "Run For Your Money (Barcrest) (MPU4) (set 41)", + "m4rfym__ae", "Run For Your Money (Barcrest) (MPU4) (set 42)", + "m4rfym__af", "Run For Your Money (Barcrest) (MPU4) (set 43)", + "m4rfym__ag", "Run For Your Money (Barcrest) (MPU4) (set 44)", + "m4rfym__ah", "Run For Your Money (Barcrest) (MPU4) (set 45)", + "m4rfym__ai", "Run For Your Money (Barcrest) (MPU4) (set 46)", + "m4rfym__aj", "Run For Your Money (Barcrest) (MPU4) (set 47)", + "m4rfym__ak", "Run For Your Money (Barcrest) (MPU4) (set 48)", + "m4rfym__al", "Run For Your Money (Barcrest) (MPU4) (set 49)", + "m4rfym__am", "Run For Your Money (Barcrest) (MPU4) (set 50)", + "m4rfym__an", "Run For Your Money (Barcrest) (MPU4) (set 51)", + "m4rfym__ao", "Run For Your Money (Barcrest) (MPU4) (set 52)", + "m4rfym__ap", "Run For Your Money (Barcrest) (MPU4) (set 53)", + "m4rfym__aq", "Run For Your Money (Barcrest) (MPU4) (set 54)", + "m4rfym__ar", "Run For Your Money (Barcrest) (MPU4) (set 55)", + "m4rfym__as", "Run For Your Money (Barcrest) (MPU4) (set 56)", + "m4rfym__at", "Run For Your Money (Barcrest) (MPU4) (set 57)", + "m4rfym__au", "Run For Your Money (Barcrest) (MPU4) (set 58)", + "m4rfym__av", "Run For Your Money (Barcrest) (MPU4) (set 59)", + "m4rfym__aw", "Run For Your Money (Barcrest) (MPU4) (set 60)", + "m4rfym__ax", "Run For Your Money (Barcrest) (MPU4) (set 61)", + "m4rfym__ay", "Run For Your Money (Barcrest) (MPU4) (set 62)", + "m4rfym__az", "Run For Your Money (Barcrest) (MPU4) (set 63)", + "m4rfym__b", "Run For Your Money (Barcrest) (MPU4) (set 3)", + "m4rfym__c", "Run For Your Money (Barcrest) (MPU4) (set 4)", + "m4rfym__d", "Run For Your Money (Barcrest) (MPU4) (set 5)", + "m4rfym__e", "Run For Your Money (Barcrest) (MPU4) (set 6)", + "m4rfym__f", "Run For Your Money (Barcrest) (MPU4) (set 7)", + "m4rfym__g", "Run For Your Money (Barcrest) (MPU4) (set 8)", + "m4rfym__h", "Run For Your Money (Barcrest) (MPU4) (set 9)", + "m4rfym__i", "Run For Your Money (Barcrest) (MPU4) (set 10)", + "m4rfym__j", "Run For Your Money (Barcrest) (MPU4) (set 11)", + "m4rfym__k", "Run For Your Money (Barcrest) (MPU4) (set 12)", + "m4rfym__l", "Run For Your Money (Barcrest) (MPU4) (set 13)", + "m4rfym__m", "Run For Your Money (Barcrest) (MPU4) (set 14)", + "m4rfym__n", "Run For Your Money (Barcrest) (MPU4) (set 15)", + "m4rfym__o", "Run For Your Money (Barcrest) (MPU4) (set 16)", + "m4rfym__p", "Run For Your Money (Barcrest) (MPU4) (set 17)", + "m4rfym__q", "Run For Your Money (Barcrest) (MPU4) (set 18)", + "m4rfym__r", "Run For Your Money (Barcrest) (MPU4) (set 19)", + "m4rfym__s", "Run For Your Money (Barcrest) (MPU4) (set 20)", + "m4rfym__t", "Run For Your Money (Barcrest) (MPU4) (set 21)", + "m4rfym__u", "Run For Your Money (Barcrest) (MPU4) (set 22)", + "m4rfym__v", "Run For Your Money (Barcrest) (MPU4) (set 23)", + "m4rfym__w", "Run For Your Money (Barcrest) (MPU4) (set 24)", + "m4rfym__x", "Run For Your Money (Barcrest) (MPU4) (set 25)", + "m4rfym__y", "Run For Your Money (Barcrest) (MPU4) (set 26)", + "m4rfym__z", "Run For Your Money (Barcrest) (MPU4) (set 27)", + "m4rhfev", "Red Hot Fever (Bwb) (MPU4) (set 1)", + "m4rhfev__a", "Red Hot Fever (Bwb) (MPU4) (set 2)", + "m4rhfev__b", "Red Hot Fever (Bwb) (MPU4) (set 3)", + "m4rhfev__c", "Red Hot Fever (Bwb) (MPU4) (set 4)", + "m4rhfev__d", "Red Hot Fever (Bwb) (MPU4) (set 5)", + "m4rhfevc", "Red Hot Fever (Concept Games Ltd) (MPU4) (set 1)", + "m4rhfevc__a", "Red Hot Fever (Concept Games Ltd) (MPU4) (set 2)", + "m4rhfevc__b", "Red Hot Fever (Concept Games Ltd) (MPU4) (set 3)", + "m4rhfevc__c", "Red Hot Fever (Concept Games Ltd) (MPU4) (set 4)", + "m4rhfevc__d", "Red Hot Fever (Concept Games Ltd) (MPU4) (set 5)", + "m4rhfevc__e", "Red Hot Fever (Concept Games Ltd) (MPU4) (set 6)", + "m4rhfevc__f", "Red Hot Fever (Concept Games Ltd) (MPU4) (set 7)", + "m4rhfevc__g", "Red Hot Fever (Concept Games Ltd) (MPU4) (set 8)", + "m4rhfevc__h", "Red Hot Fever (Concept Games Ltd) (MPU4) (set 9)", + "m4rhfevc__i", "Red Hot Fever (Concept Games Ltd) (MPU4) (set 10)", + "m4rhfevc__j", "Red Hot Fever (Concept Games Ltd) (MPU4) (set 11)", + "m4rhfevc__k", "Red Hot Fever (Concept Games Ltd) (MPU4) (set 12)", + "m4rhfevc__l", "Red Hot Fever (Concept Games Ltd) (MPU4) (set 13)", + "m4rhfevc__m", "Red Hot Fever (Concept Games Ltd) (MPU4) (set 14)", + "m4rhfevc__n", "Red Hot Fever (Concept Games Ltd) (MPU4) (set 15)", + "m4rhfevc__o", "Red Hot Fever (Concept Games Ltd) (MPU4) (set 16)", + "m4rhfevc__p", "Red Hot Fever (Concept Games Ltd) (MPU4) (set 17)", + "m4rhfevc__q", "Red Hot Fever (Concept Games Ltd) (MPU4) (set 18)", + "m4rhfevc__r", "Red Hot Fever (Concept Games Ltd) (MPU4) (set 19)", + "m4rhfevc__s", "Red Hot Fever (Concept Games Ltd) (MPU4) (set 20)", + "m4rhfevc__t", "Red Hot Fever (Concept Games Ltd) (MPU4) (set 21)", + "m4rhfevc__u", "Red Hot Fever (Concept Games Ltd) (MPU4) (set 22)", + "m4rhfevc__v", "Red Hot Fever (Concept Games Ltd) (MPU4) (set 23)", + "m4rhfevc__w", "Red Hot Fever (Concept Games Ltd) (MPU4) (set 24)", + "m4rhfevc__x", "Red Hot Fever (Concept Games Ltd) (MPU4) (set 25)", + "m4rhfevc__y", "Red Hot Fever (Concept Games Ltd) (MPU4) (set 26)", + "m4rhnote", "Red Hot Notes (Qps) (MPU4) (set 1)", + "m4rhnote__a", "Red Hot Notes (Qps) (MPU4) (set 2)", + "m4rhnote__b", "Red Hot Notes (Qps) (MPU4) (set 3)", + "m4rhnote__c", "Red Hot Notes (Qps) (MPU4) (set 4)", + "m4rhnote__d", "Red Hot Notes (Qps) (MPU4) (set 5)", + "m4rhnote__e", "Red Hot Notes (Qps) (MPU4) (set 6)", + "m4rhnote__f", "Red Hot Notes (Qps) (MPU4) (set 7)", + "m4rhnote__g", "Red Hot Notes (Qps) (MPU4) (set 8)", + "m4rhnote__h", "Red Hot Notes (Qps) (MPU4) (set 9)", + "m4rhnote__i", "Red Hot Notes (Qps) (MPU4) (set 10)", + "m4rhnote__j", "Red Hot Notes (Qps) (MPU4) (set 11)", + "m4rhnote__k", "Red Hot Notes (Qps) (MPU4) (set 12)", + "m4rhnote__l", "Red Hot Notes (Qps) (MPU4) (set 13)", + "m4rhnote__m", "Red Hot Notes (Qps) (MPU4) (set 14)", + "m4rhnote__n", "Red Hot Notes (Qps) (MPU4) (set 15)", + "m4rhnote__o", "Red Hot Notes (Qps) (MPU4) (set 16)", + "m4rhnote__p", "Red Hot Notes (Qps) (MPU4) (set 17)", + "m4rhnote__q", "Red Hot Notes (Qps) (MPU4) (set 18)", + "m4rhnote__r", "Red Hot Notes (Qps) (MPU4) (set 19)", + "m4rhnote__s", "Red Hot Notes (Qps) (MPU4) (set 20)", + "m4rhnote__t", "Red Hot Notes (Qps) (MPU4) (set 21)", + "m4rhnote__u", "Red Hot Notes (Qps) (MPU4) (set 22)", + "m4rhnote__v", "Red Hot Notes (Qps) (MPU4) (set 23)", + "m4rhnote__w", "Red Hot Notes (Qps) (MPU4) (set 24)", + "m4rhnote__x", "Red Hot Notes (Qps) (MPU4) (set 25)", + "m4rhnote__y", "Red Hot Notes (Qps) (MPU4) (set 26)", + "m4rhog", "Road Hog (Barcrest) (MPU4) (RR6 1.2)", + "m4rhog2", "Road Hog 2 - I'm Back (Barcrest) (MPU4) (set 1)", + "m4rhog2__a", "Road Hog 2 - I'm Back (Barcrest) (MPU4) (set 2)", + "m4rhog2__b", "Road Hog 2 - I'm Back (Barcrest) (MPU4) (set 3)", + "m4rhog2__c", "Road Hog 2 - I'm Back (Barcrest) (MPU4) (set 4)", + "m4rhog2__d", "Road Hog 2 - I'm Back (Barcrest) (MPU4) (set 5)", + "m4rhog2__e", "Road Hog 2 - I'm Back (Barcrest) (MPU4) (set 6)", + "m4rhog2__f", "Road Hog 2 - I'm Back (Barcrest) (MPU4) (set 7)", + "m4rhog2__g", "Road Hog 2 - I'm Back (Barcrest) (MPU4) (set 8)", + "m4rhog2__h", "Road Hog 2 - I'm Back (Barcrest) (MPU4) (set 9)", + "m4rhog2__i", "Road Hog 2 - I'm Back (Barcrest) (MPU4) (set 10)", + "m4rhog2__j", "Road Hog 2 - I'm Back (Barcrest) (MPU4) (set 11)", + "m4rhog2__k", "Road Hog 2 - I'm Back (Barcrest) (MPU4) (set 12)", + "m4rhog2__l", "Road Hog 2 - I'm Back (Barcrest) (MPU4) (set 13)", + "m4rhog2__m", "Road Hog 2 - I'm Back (Barcrest) (MPU4) (set 14)", + "m4rhog_h1", "Road Hog (Bwb / Barcrest) (MPU4) (RO_ 2.0, hack?, set 1)", + "m4rhog_h10", "Road Hog (Bwb / Barcrest) (MPU4) (RO_ 1.0, hack?, set 3)", + "m4rhog_h11", "Road Hog (Bwb / Barcrest) (MPU4) (RO_ 1.0, hack?, set 4)", + "m4rhog_h12", "Road Hog (Barcrest) (MPU4) (RR6 1.2?, hack?)", + "m4rhog_h13", "Road Hog (Barcrest) (MPU4) (RR6 1.2, hack?)", + "m4rhog_h14", "Road Hog (Barcrest) (MPU4) (RR6 1.2C, hack?, set 1)", + "m4rhog_h15", "Road Hog (Barcrest) (MPU4) (RR6 1.2C, hack?, set 2)", + "m4rhog_h2", "Road Hog (Bwb / Barcrest) (MPU4) (RO_ 2.0, hack?, set 2)", + "m4rhog_h3", "Road Hog (Bwb / Barcrest) (MPU4) (RO_ 2.0, hack?, set 3)", + "m4rhog_h4", "Road Hog (Bwb / Barcrest) (MPU4) (RO_ 2.0, hack?, set 4)", + "m4rhog_h5", "Road Hog (Bwb / Barcrest) (MPU4) (RO_ 2.0, hack?, set 5)", + "m4rhog_h6", "Road Hog (Bwb / Barcrest) (MPU4) (RO_ 2.0, hack?, set 6)", + "m4rhog_h7", "Road Hog (Bwb / Barcrest) (MPU4) (RO_ 2.0, hack?, set 7)", + "m4rhog_h8", "Road Hog (Bwb / Barcrest) (MPU4) (RO_ 1.0, hack?, set 1)", + "m4rhog_h9", "Road Hog (Bwb / Barcrest) (MPU4) (RO_ 1.0, hack?, set 2)", + "m4rhog_roc", "Road Hog (Bwb / Barcrest) (MPU4) (ROC 2.0, bad)", + "m4rhogc", "Road Hog Club (Barcrest) (MPU4) (set 1)", + "m4rhogc__a", "Road Hog Club (Barcrest) (MPU4) (set 2)", + "m4rhogc__b", "Road Hog Club (Barcrest) (MPU4) (set 3)", + "m4rhogr1", "Road Hog (Bwb / Barcrest) (MPU4) (RO_ 1.0)", + "m4rhogr1c", "Road Hog (Bwb / Barcrest) (MPU4) (RO_ 1.0C)", + "m4rhogr1d", "Road Hog (Bwb / Barcrest) (MPU4) (RO_ 1.0D)", + "m4rhogr1k", "Road Hog (Bwb / Barcrest) (MPU4) (RO_ 1.0K, set 1)", + "m4rhogr1k_a", "Road Hog (Bwb / Barcrest) (MPU4) (RO_ 1.0K, set 2, wrong version number?)", + "m4rhogr1y", "Road Hog (Bwb / Barcrest) (MPU4) (RO_ 1.0Y)", + "m4rhogr1yd", "Road Hog (Bwb / Barcrest) (MPU4) (RO_ 1.0YD)", + "m4rhogr2", "Road Hog (Bwb / Barcrest) (MPU4) (RO_ 2.0)", + "m4rhogr2c", "Road Hog (Bwb / Barcrest) (MPU4) (RO_ 2.0C)", + "m4rhogr2d", "Road Hog (Bwb / Barcrest) (MPU4) (RO_ 2.0D)", + "m4rhogr2k", "Road Hog (Bwb / Barcrest) (MPU4) (RO_ 2.0K)", + "m4rhogr2y", "Road Hog (Bwb / Barcrest) (MPU4) (RO_ 2.0Y)", + "m4rhogr2yd", "Road Hog (Bwb / Barcrest) (MPU4) (RO_ 2.0YD)", + "m4rhogr3", "Road Hog (Bwb / Barcrest) (MPU4) (RO_ 3.0)", + "m4rhogr6ad", "Road Hog (Barcrest) (MPU4) (RR6 1.2AD)", + "m4rhogr6b", "Road Hog (Barcrest) (MPU4) (RR6 1.2B)", + "m4rhogr6c", "Road Hog (Barcrest) (MPU4) (RR6 1.2C)", + "m4rhogr6d", "Road Hog (Barcrest) (MPU4) (RR6 1.2D)", + "m4rhogr6k", "Road Hog (Barcrest) (MPU4) (RR6 1.2K)", + "m4rhogr6y", "Road Hog (Barcrest) (MPU4) (RR6 1.2Y)", + "m4rhogr6y_a", "Road Hog (Barcrest) (MPU4) (RR6 1.1Y)", + "m4rhogr6yd", "Road Hog (Barcrest) (MPU4) (RR6 1.2YD)", + "m4rhr", "Red Hot Roll (Barcrest) (MPU4) (set 1)", + "m4rhr__0", "Red Hot Roll (Barcrest) (MPU4) (set 28)", + "m4rhr__1", "Red Hot Roll (Barcrest) (MPU4) (set 29)", + "m4rhr__2", "Red Hot Roll (Barcrest) (MPU4) (set 30)", + "m4rhr__3", "Red Hot Roll (Barcrest) (MPU4) (set 31)", + "m4rhr__4", "Red Hot Roll (Barcrest) (MPU4) (set 32)", + "m4rhr__5", "Red Hot Roll (Barcrest) (MPU4) (set 33)", + "m4rhr__6", "Red Hot Roll (Barcrest) (MPU4) (set 34)", + "m4rhr__7", "Red Hot Roll (Barcrest) (MPU4) (set 35)", + "m4rhr__8", "Red Hot Roll (Barcrest) (MPU4) (set 36)", + "m4rhr__9", "Red Hot Roll (Barcrest) (MPU4) (set 37)", + "m4rhr__a", "Red Hot Roll (Barcrest) (MPU4) (set 2)", + "m4rhr__a0", "Red Hot Roll (Barcrest) (MPU4) (set 64)", + "m4rhr__a1", "Red Hot Roll (Barcrest) (MPU4) (set 65)", + "m4rhr__a2", "Red Hot Roll (Barcrest) (MPU4) (set 66)", + "m4rhr__a3", "Red Hot Roll (Barcrest) (MPU4) (set 67)", + "m4rhr__a4", "Red Hot Roll (Barcrest) (MPU4) (RH8 0.1C)", + "m4rhr__aa", "Red Hot Roll (Barcrest) (MPU4) (set 38)", + "m4rhr__ab", "Red Hot Roll (Barcrest) (MPU4) (set 39)", + "m4rhr__ac", "Red Hot Roll (Barcrest) (MPU4) (set 40)", + "m4rhr__ad", "Red Hot Roll (Barcrest) (MPU4) (set 41)", + "m4rhr__ae", "Red Hot Roll (Barcrest) (MPU4) (set 42)", + "m4rhr__af", "Red Hot Roll (Barcrest) (MPU4) (set 43)", + "m4rhr__ag", "Red Hot Roll (Barcrest) (MPU4) (set 44)", + "m4rhr__ah", "Red Hot Roll (Barcrest) (MPU4) (set 45)", + "m4rhr__ai", "Red Hot Roll (Barcrest) (MPU4) (set 46)", + "m4rhr__aj", "Red Hot Roll (Barcrest) (MPU4) (set 47)", + "m4rhr__ak", "Red Hot Roll (Barcrest) (MPU4) (set 48)", + "m4rhr__al", "Red Hot Roll (Barcrest) (MPU4) (set 49)", + "m4rhr__am", "Red Hot Roll (Barcrest) (MPU4) (set 50)", + "m4rhr__an", "Red Hot Roll (Barcrest) (MPU4) (set 51)", + "m4rhr__ao", "Red Hot Roll (Barcrest) (MPU4) (set 52)", + "m4rhr__ap", "Red Hot Roll (Barcrest) (MPU4) (set 53)", + "m4rhr__aq", "Red Hot Roll (Barcrest) (MPU4) (set 54)", + "m4rhr__ar", "Red Hot Roll (Barcrest) (MPU4) (set 55)", + "m4rhr__as", "Red Hot Roll (Barcrest) (MPU4) (set 56)", + "m4rhr__at", "Red Hot Roll (Barcrest) (MPU4) (set 57)", + "m4rhr__au", "Red Hot Roll (Barcrest) (MPU4) (set 58)", + "m4rhr__av", "Red Hot Roll (Barcrest) (MPU4) (set 59)", + "m4rhr__aw", "Red Hot Roll (Barcrest) (MPU4) (set 60)", + "m4rhr__ax", "Red Hot Roll (Barcrest) (MPU4) (set 61)", + "m4rhr__ay", "Red Hot Roll (Barcrest) (MPU4) (set 62)", + "m4rhr__az", "Red Hot Roll (Barcrest) (MPU4) (set 63)", + "m4rhr__b", "Red Hot Roll (Barcrest) (MPU4) (set 3)", + "m4rhr__c", "Red Hot Roll (Barcrest) (MPU4) (set 4)", + "m4rhr__d", "Red Hot Roll (Barcrest) (MPU4) (set 5)", + "m4rhr__e", "Red Hot Roll (Barcrest) (MPU4) (set 6)", + "m4rhr__f", "Red Hot Roll (Barcrest) (MPU4) (set 7)", + "m4rhr__g", "Red Hot Roll (Barcrest) (MPU4) (set 8)", + "m4rhr__h", "Red Hot Roll (Barcrest) (MPU4) (set 9)", + "m4rhr__i", "Red Hot Roll (Barcrest) (MPU4) (set 10)", + "m4rhr__j", "Red Hot Roll (Barcrest) (MPU4) (set 11)", + "m4rhr__k", "Red Hot Roll (Barcrest) (MPU4) (set 12)", + "m4rhr__l", "Red Hot Roll (Barcrest) (MPU4) (set 13)", + "m4rhr__m", "Red Hot Roll (Barcrest) (MPU4) (set 14)", + "m4rhr__n", "Red Hot Roll (Barcrest) (MPU4) (set 15)", + "m4rhr__o", "Red Hot Roll (Barcrest) (MPU4) (set 16)", + "m4rhr__p", "Red Hot Roll (Barcrest) (MPU4) (set 17)", + "m4rhr__q", "Red Hot Roll (Barcrest) (MPU4) (set 18)", + "m4rhr__r", "Red Hot Roll (Barcrest) (MPU4) (set 19)", + "m4rhr__s", "Red Hot Roll (Barcrest) (MPU4) (set 20)", + "m4rhr__t", "Red Hot Roll (Barcrest) (MPU4) (set 21)", + "m4rhr__u", "Red Hot Roll (Barcrest) (MPU4) (set 22)", + "m4rhr__v", "Red Hot Roll (Barcrest) (MPU4) (set 23)", + "m4rhr__w", "Red Hot Roll (Barcrest) (MPU4) (set 24)", + "m4rhr__x", "Red Hot Roll (Barcrest) (MPU4) (set 25)", + "m4rhr__y", "Red Hot Roll (Barcrest) (MPU4) (set 26)", + "m4rhr__z", "Red Hot Roll (Barcrest) (MPU4) (set 27)", + "m4rhrc", "Red Hot Roll Classic (Barcrest) (MPU4) (set 1)", + "m4rhrc__0", "Red Hot Roll Classic (Barcrest) (MPU4) (set 28)", + "m4rhrc__1", "Red Hot Roll Classic (Barcrest) (MPU4) (set 29)", + "m4rhrc__2", "Red Hot Roll Classic (Barcrest) (MPU4) (set 30)", + "m4rhrc__3", "Red Hot Roll Classic (Barcrest) (MPU4) (set 31)", + "m4rhrc__4", "Red Hot Roll Classic (Barcrest) (MPU4) (set 32)", + "m4rhrc__5", "Red Hot Roll Classic (Barcrest) (MPU4) (set 33)", + "m4rhrc__6", "Red Hot Roll Classic (Barcrest) (MPU4) (set 34)", + "m4rhrc__7", "Red Hot Roll Classic (Barcrest) (MPU4) (set 35)", + "m4rhrc__8", "Red Hot Roll Classic (Barcrest) (MPU4) (set 36)", + "m4rhrc__a", "Red Hot Roll Classic (Barcrest) (MPU4) (set 2)", + "m4rhrc__aa", "Red Hot Roll Classic (Barcrest) (MPU4) (set 38)", + "m4rhrc__b", "Red Hot Roll Classic (Barcrest) (MPU4) (set 3)", + "m4rhrc__c", "Red Hot Roll Classic (Barcrest) (MPU4) (set 4)", + "m4rhrc__d", "Red Hot Roll Classic (Barcrest) (MPU4) (set 5)", + "m4rhrc__e", "Red Hot Roll Classic (Barcrest) (MPU4) (set 6)", + "m4rhrc__f", "Red Hot Roll Classic (Barcrest) (MPU4) (set 7)", + "m4rhrc__g", "Red Hot Roll Classic (Barcrest) (MPU4) (set 8)", + "m4rhrc__h", "Red Hot Roll Classic (Barcrest) (MPU4) (set 9)", + "m4rhrc__i", "Red Hot Roll Classic (Barcrest) (MPU4) (set 10)", + "m4rhrc__j", "Red Hot Roll Classic (Barcrest) (MPU4) (set 11)", + "m4rhrc__k", "Red Hot Roll Classic (Barcrest) (MPU4) (set 12)", + "m4rhrc__l", "Red Hot Roll Classic (Barcrest) (MPU4) (set 13)", + "m4rhrc__m", "Red Hot Roll Classic (Barcrest) (MPU4) (set 14)", + "m4rhrc__n", "Red Hot Roll Classic (Barcrest) (MPU4) (set 15)", + "m4rhrc__o", "Red Hot Roll Classic (Barcrest) (MPU4) (set 16)", + "m4rhrc__p", "Red Hot Roll Classic (Barcrest) (MPU4) (set 17)", + "m4rhrc__q", "Red Hot Roll Classic (Barcrest) (MPU4) (set 18)", + "m4rhrc__r", "Red Hot Roll Classic (Barcrest) (MPU4) (set 19)", + "m4rhrc__s", "Red Hot Roll Classic (Barcrest) (MPU4) (set 20)", + "m4rhrc__t", "Red Hot Roll Classic (Barcrest) (MPU4) (set 21)", + "m4rhrc__u", "Red Hot Roll Classic (Barcrest) (MPU4) (set 22)", + "m4rhrc__v", "Red Hot Roll Classic (Barcrest) (MPU4) (set 23)", + "m4rhrc__w", "Red Hot Roll Classic (Barcrest) (MPU4) (set 24)", + "m4rhrc__x", "Red Hot Roll Classic (Barcrest) (MPU4) (set 25)", + "m4rhrc__y", "Red Hot Roll Classic (Barcrest) (MPU4) (set 26)", + "m4rhrc__z", "Red Hot Roll Classic (Barcrest) (MPU4) (set 27)", + "m4rhrcl", "Red Hot Roll Club (Barcrest) (MPU4) (set 1)", + "m4rhrcl__a", "Red Hot Roll Club (Barcrest) (MPU4) (set 2)", + "m4rhrcl__b", "Red Hot Roll Club (Barcrest) (MPU4) (set 3)", + "m4rhrcl__c", "Red Hot Roll Club (Barcrest) (MPU4) (set 4)", + "m4rhrock", "Red Hot Rocks (Qps) (MPU4) (set 1)", + "m4rhrock__a", "Red Hot Rocks (Qps) (MPU4) (set 2)", + "m4rhs", "Rocky Horror Show (Barcrest) (MPU4) (set 1)", + "m4rhs__a", "Rocky Horror Show (Barcrest) (MPU4) (set 2)", + "m4rhs__b", "Rocky Horror Show (Barcrest) (MPU4) (set 3)", + "m4rhs__c", "Rocky Horror Show (Barcrest) (MPU4) (set 4)", + "m4rhs__d", "Rocky Horror Show (Barcrest) (MPU4) (set 5)", + "m4rhs__e", "Rocky Horror Show (Barcrest) (MPU4) (set 6)", + "m4rhs__f", "Rocky Horror Show (Barcrest) (MPU4) (set 7)", + "m4rhs__g", "Rocky Horror Show (Barcrest) (MPU4) (set 8)", + "m4rhs__h", "Rocky Horror Show (Barcrest) (MPU4) (set 9)", + "m4rhs__i", "Rocky Horror Show (Barcrest) (MPU4) (set 10)", + "m4rhs__j", "Rocky Horror Show (Barcrest) (MPU4) (set 11)", + "m4rhs__k", "Rocky Horror Show (Barcrest) (MPU4) (set 12)", + "m4rhs__l", "Rocky Horror Show (Barcrest) (MPU4) (set 13)", + "m4rhwhl", "Red Hot Wheels (Qps) (MPU4) (set 1)", + "m4rhwhl__a", "Red Hot Wheels (Qps) (MPU4) (set 2)", + "m4rhwhl__b", "Red Hot Wheels (Qps) (MPU4) (set 3)", + "m4rhwhl__c", "Red Hot Wheels (Qps) (MPU4) (set 4)", + "m4richfm", "Rich & Famous (Barcrest) (MPU4) (set 1)", + "m4richfm__0", "Rich & Famous (Barcrest) (MPU4) (set 28)", + "m4richfm__1", "Rich & Famous (Barcrest) (MPU4) (set 29)", + "m4richfm__2", "Rich & Famous (Barcrest) (MPU4) (set 30)", + "m4richfm__3", "Rich & Famous (Barcrest) (MPU4) (set 31)", + "m4richfm__a", "Rich & Famous (Barcrest) (MPU4) (set 2)", + "m4richfm__b", "Rich & Famous (Barcrest) (MPU4) (set 3)", + "m4richfm__c", "Rich & Famous (Barcrest) (MPU4) (set 4)", + "m4richfm__d", "Rich & Famous (Barcrest) (MPU4) (set 5)", + "m4richfm__e", "Rich & Famous (Barcrest) (MPU4) (set 6)", + "m4richfm__f", "Rich & Famous (Barcrest) (MPU4) (set 7)", + "m4richfm__g", "Rich & Famous (Barcrest) (MPU4) (set 8)", + "m4richfm__h", "Rich & Famous (Barcrest) (MPU4) (set 9)", + "m4richfm__i", "Rich & Famous (Barcrest) (MPU4) (set 10)", + "m4richfm__j", "Rich & Famous (Barcrest) (MPU4) (set 11)", + "m4richfm__k", "Rich & Famous (Barcrest) (MPU4) (set 12)", + "m4richfm__l", "Rich & Famous (Barcrest) (MPU4) (set 13)", + "m4richfm__m", "Rich & Famous (Barcrest) (MPU4) (set 14)", + "m4richfm__n", "Rich & Famous (Barcrest) (MPU4) (set 15)", + "m4richfm__o", "Rich & Famous (Barcrest) (MPU4) (set 16)", + "m4richfm__p", "Rich & Famous (Barcrest) (MPU4) (set 17)", + "m4richfm__q", "Rich & Famous (Barcrest) (MPU4) (set 18)", + "m4richfm__r", "Rich & Famous (Barcrest) (MPU4) (set 19)", + "m4richfm__s", "Rich & Famous (Barcrest) (MPU4) (set 20)", + "m4richfm__t", "Rich & Famous (Barcrest) (MPU4) (set 21)", + "m4richfm__u", "Rich & Famous (Barcrest) (MPU4) (set 22)", + "m4richfm__v", "Rich & Famous (Barcrest) (MPU4) (set 23)", + "m4richfm__w", "Rich & Famous (Barcrest) (MPU4) (set 24)", + "m4richfm__x", "Rich & Famous (Barcrest) (MPU4) (set 25)", + "m4richfm__y", "Rich & Famous (Barcrest) (MPU4) (set 26)", + "m4richfm__z", "Rich & Famous (Barcrest) (MPU4) (set 27)", + "m4ringfr", "Ring Of Fire (Barcrest) (MPU4)", + "m4riocr", "Rio Grande (Crystal) (MPU4) (set 1)", + "m4riocra", "Rio Grande (Crystal) (MPU4) (set 2)", + "m4riotrp", "Rio Tropico (unknown) (MPU4)", + "m4rlpick", "Reel Picks (Crystal) (MPU4) (set 1)", + "m4rlpicka", "Reel Picks (Crystal) (MPU4) (set 2)", + "m4rlpickb", "Reel Picks (Crystal) (MPU4) (set 3)", + "m4rlpickc", "Reel Picks (Crystal) (MPU4) (set 4)", + "m4rltst", "MPU4 Reel Test (3.0)", + "m4rmg", "unknown MPU4 'CTP 0.4' (MPU4?)", + "m4rmtp", "Reel Magic Turbo Play (Avantime?) (MPU4) (set 1)", + "m4rmtp__a", "Reel Magic Turbo Play (Avantime?) (MPU4) (set 2)", + "m4rmtp__b", "Reel Magic Turbo Play (Avantime?) (MPU4) (set 3)", + "m4rmtp__c", "Reel Magic Turbo Play (Avantime?) (MPU4) (set 4)", + "m4rmtp__d", "Reel Magic Turbo Play (Avantime?) (MPU4) (set 5)", + "m4rmtp__e", "Reel Magic Turbo Play (Avantime?) (MPU4) (set 6)", + "m4rmtp__f", "Reel Magic Turbo Play (Avantime?) (MPU4) (set 7)", + "m4rmtp__g", "Reel Magic Turbo Play (Avantime?) (MPU4) (set 8)", + "m4rmtpd", "Reel Magic Turbo Play Deluxe (Avantime?) (MPU4) (set 1)", + "m4rmtpd__0", "Reel Magic Turbo Play Deluxe (Avantime?) (MPU4) (set 28)", + "m4rmtpd__1", "Reel Magic Turbo Play Deluxe (Avantime?) (MPU4) (set 29)", + "m4rmtpd__2", "Reel Magic Turbo Play Deluxe (Avantime?) (MPU4) (set 30)", + "m4rmtpd__3", "Reel Magic Turbo Play Deluxe (Avantime?) (MPU4) (set 31)", + "m4rmtpd__4", "Reel Magic Turbo Play Deluxe (Avantime?) (MPU4) (set 32)", + "m4rmtpd__5", "Reel Magic Turbo Play Deluxe (Avantime?) (MPU4) (set 33)", + "m4rmtpd__6", "Reel Magic Turbo Play Deluxe (Avantime?) (MPU4) (set 34)", + "m4rmtpd__7", "Reel Magic Turbo Play Deluxe (Avantime?) (MPU4) (set 35)", + "m4rmtpd__8", "Reel Magic Turbo Play Deluxe (Avantime?) (MPU4) (set 36)", + "m4rmtpd__9", "Reel Magic Turbo Play Deluxe (Avantime?) (MPU4) (set 37)", + "m4rmtpd__a", "Reel Magic Turbo Play Deluxe (Avantime?) (MPU4) (set 2)", + "m4rmtpd__aa", "Reel Magic Turbo Play Deluxe (Avantime?) (MPU4) (set 38)", + "m4rmtpd__ab", "Reel Magic Turbo Play Deluxe (Avantime?) (MPU4) (set 39)", + "m4rmtpd__ac", "Reel Magic Turbo Play Deluxe (Avantime?) (MPU4) (set 40)", + "m4rmtpd__ad", "Reel Magic Turbo Play Deluxe (Avantime?) (MPU4) (set 41)", + "m4rmtpd__ae", "Reel Magic Turbo Play Deluxe (Avantime?) (MPU4) (set 42)", + "m4rmtpd__af", "Reel Magic Turbo Play Deluxe (Avantime?) (MPU4) (set 43)", + "m4rmtpd__ag", "Reel Magic Turbo Play Deluxe (Avantime?) (MPU4) (set 44)", + "m4rmtpd__ah", "Reel Magic Turbo Play Deluxe (Avantime?) (MPU4) (set 45)", + "m4rmtpd__ai", "Reel Magic Turbo Play Deluxe (Avantime?) (MPU4) (set 46)", + "m4rmtpd__aj", "Reel Magic Turbo Play Deluxe (Avantime?) (MPU4) (set 47)", + "m4rmtpd__ak", "Reel Magic Turbo Play Deluxe (Avantime?) (MPU4) (set 48)", + "m4rmtpd__al", "Reel Magic Turbo Play Deluxe (Avantime?) (MPU4) (set 49)", + "m4rmtpd__am", "Reel Magic Turbo Play Deluxe (Avantime?) (MPU4) (set 50)", + "m4rmtpd__b", "Reel Magic Turbo Play Deluxe (Avantime?) (MPU4) (set 3)", + "m4rmtpd__c", "Reel Magic Turbo Play Deluxe (Avantime?) (MPU4) (set 4)", + "m4rmtpd__d", "Reel Magic Turbo Play Deluxe (Avantime?) (MPU4) (set 5)", + "m4rmtpd__e", "Reel Magic Turbo Play Deluxe (Avantime?) (MPU4) (set 6)", + "m4rmtpd__f", "Reel Magic Turbo Play Deluxe (Avantime?) (MPU4) (set 7)", + "m4rmtpd__g", "Reel Magic Turbo Play Deluxe (Avantime?) (MPU4) (set 8)", + "m4rmtpd__h", "Reel Magic Turbo Play Deluxe (Avantime?) (MPU4) (set 9)", + "m4rmtpd__i", "Reel Magic Turbo Play Deluxe (Avantime?) (MPU4) (set 10)", + "m4rmtpd__j", "Reel Magic Turbo Play Deluxe (Avantime?) (MPU4) (set 11)", + "m4rmtpd__k", "Reel Magic Turbo Play Deluxe (Avantime?) (MPU4) (set 12)", + "m4rmtpd__l", "Reel Magic Turbo Play Deluxe (Avantime?) (MPU4) (set 13)", + "m4rmtpd__m", "Reel Magic Turbo Play Deluxe (Avantime?) (MPU4) (set 14)", + "m4rmtpd__n", "Reel Magic Turbo Play Deluxe (Avantime?) (MPU4) (set 15)", + "m4rmtpd__o", "Reel Magic Turbo Play Deluxe (Avantime?) (MPU4) (set 16)", + "m4rmtpd__p", "Reel Magic Turbo Play Deluxe (Avantime?) (MPU4) (set 17)", + "m4rmtpd__q", "Reel Magic Turbo Play Deluxe (Avantime?) (MPU4) (set 18)", + "m4rmtpd__r", "Reel Magic Turbo Play Deluxe (Avantime?) (MPU4) (set 19)", + "m4rmtpd__s", "Reel Magic Turbo Play Deluxe (Avantime?) (MPU4) (set 20)", + "m4rmtpd__t", "Reel Magic Turbo Play Deluxe (Avantime?) (MPU4) (set 21)", + "m4rmtpd__u", "Reel Magic Turbo Play Deluxe (Avantime?) (MPU4) (set 22)", + "m4rmtpd__v", "Reel Magic Turbo Play Deluxe (Avantime?) (MPU4) (set 23)", + "m4rmtpd__w", "Reel Magic Turbo Play Deluxe (Avantime?) (MPU4) (set 24)", + "m4rmtpd__x", "Reel Magic Turbo Play Deluxe (Avantime?) (MPU4) (set 25)", + "m4rmtpd__y", "Reel Magic Turbo Play Deluxe (Avantime?) (MPU4) (set 26)", + "m4rmtpd__z", "Reel Magic Turbo Play Deluxe (Avantime?) (MPU4) (set 27)", + "m4roadrn", "Road Runner (Barcrest) (Dutch) (MPU4) (DRO1.9)", + "m4robo", "Robotica / Dream Machine (Avantime?) (MPU4) (Latvia, set 1)", + "m4robo__0", "Robotica / Dream Machine (Avantime?) (MPU4) (Ukraine, set 14)", + "m4robo__1", "Robotica / Dream Machine (Avantime?) (MPU4) (Latvia, set 2)", + "m4robo__2", "Robotica / Dream Machine (Avantime?) (MPU4) (Latvia, set 3)", + "m4robo__3", "Robotica / Dream Machine (Avantime?) (MPU4) (Latvia, set 4)", + "m4robo__4", "Robotica / Dream Machine (Avantime?) (MPU4) (Latvia, set 5)", + "m4robo__5", "Robotica / Dream Machine (Avantime?) (MPU4) (Latvia, set 6)", + "m4robo__6", "Robotica / Dream Machine (Avantime?) (MPU4) (Russia, set 1)", + "m4robo__7", "Robotica / Dream Machine (Avantime?) (MPU4) (Russia, set 2)", + "m4robo__8", "Robotica / Dream Machine (Avantime?) (MPU4) (Russia, set 3)", + "m4robo__9", "Robotica / Dream Machine (Avantime?) (MPU4) (Russia, set 4)", + "m4robo__a", "Robotica / Dream Machine (Avantime?) (MPU4) (Latvia, set 7)", + "m4robo__aa", "Robotica / Dream Machine (Avantime?) (MPU4) (Russia, set 5)", + "m4robo__ab", "Robotica / Dream Machine (Avantime?) (MPU4) (Russia, set 6)", + "m4robo__b", "Robotica / Dream Machine (Avantime?) (MPU4) (Latvia, set 8)", + "m4robo__c", "Robotica / Dream Machine (Avantime?) (MPU4) (Latvia, set 9)", + "m4robo__d", "Robotica / Dream Machine (Avantime?) (MPU4) (Latvia, set 10)", + "m4robo__e", "Robotica / Dream Machine (Avantime?) (MPU4) (Latvia, set 11)", + "m4robo__f", "Robotica / Dream Machine (Avantime?) (MPU4) (Latvia, set 12)", + "m4robo__g", "Robotica / Dream Machine (Avantime?) (MPU4) (Latvia, set 13)", + "m4robo__h", "Robotica / Dream Machine (Avantime?) (MPU4) (Latvia, set 14)", + "m4robo__i", "Robotica / Dream Machine (Avantime?) (MPU4) (Latvia, set 15)", + "m4robo__j", "Robotica / Dream Machine (Avantime?) (MPU4) (Russia, set 7)", + "m4robo__k", "Robotica / Dream Machine (Avantime?) (MPU4) (Russia, set 8)", + "m4robo__l", "Robotica / Dream Machine (Avantime?) (MPU4) (Russia, set 9)", + "m4robo__m", "Robotica / Dream Machine (Avantime?) (MPU4) (Russia, set 10)", + "m4robo__n", "Robotica / Dream Machine (Avantime?) (MPU4) (Ukraine, set 1)", + "m4robo__o", "Robotica / Dream Machine (Avantime?) (MPU4) (Ukraine, set 2)", + "m4robo__p", "Robotica / Dream Machine (Avantime?) (MPU4) (Ukraine, set 3)", + "m4robo__q", "Robotica / Dream Machine (Avantime?) (MPU4) (Ukraine, set 4)", + "m4robo__r", "Robotica / Dream Machine (Avantime?) (MPU4) (Ukraine, set 5)", + "m4robo__s", "Robotica / Dream Machine (Avantime?) (MPU4) (Ukraine, set 6)", + "m4robo__t", "Robotica / Dream Machine (Avantime?) (MPU4) (Ukraine, set 7)", + "m4robo__u", "Robotica / Dream Machine (Avantime?) (MPU4) (Ukraine, set 8)", + "m4robo__v", "Robotica / Dream Machine (Avantime?) (MPU4) (Ukraine, set 9)", + "m4robo__w", "Robotica / Dream Machine (Avantime?) (MPU4) (Ukraine, set 10)", + "m4robo__x", "Robotica / Dream Machine (Avantime?) (MPU4) (Ukraine, set 11)", + "m4robo__y", "Robotica / Dream Machine (Avantime?) (MPU4) (Ukraine, set 12)", + "m4robo__z", "Robotica / Dream Machine (Avantime?) (MPU4) (Ukraine, set 13)", + "m4rockmn", "Rocket Money (Barcrest) (MPU4) (set 1)", + "m4rockmn__a", "Rocket Money (Barcrest) (MPU4) (set 2)", + "m4rockmn__b", "Rocket Money (Barcrest) (MPU4) (set 3)", + "m4rockmn__c", "Rocket Money (Barcrest) (MPU4) (set 4)", + "m4rockmn__d", "Rocket Money (Barcrest) (MPU4) (set 5)", + "m4rockmn__e", "Rocket Money (Barcrest) (MPU4) (set 6)", + "m4rockmn__f", "Rocket Money (Barcrest) (MPU4) (set 7)", + "m4rockmn__g", "Rocket Money (Barcrest) (MPU4) (set 8)", + "m4rockmn__h", "Rocket Money (Barcrest) (MPU4) (set 9)", + "m4rockmn__i", "Rocket Money (Barcrest) (MPU4) (set 10)", + "m4rockmn__j", "Rocket Money (Barcrest) (MPU4) (set 11)", + "m4rockmn__k", "Rocket Money (Barcrest) (MPU4) (set 12)", + "m4rotex", "Rotex (Union) (MPU4)", + "m4royjwl", "Royal Jewels (Barcrest) (MPU4)", + "m4rsg", "Ready Steady Go (Barcrest) (MPU4, Mod 2 type, V1.2)", + "m4rsga", "Ready Steady Go (Barcrest) (MPU4, Mod 2 type, V1.0)", + "m4runawy", "Runaway Trail (Barcrest) (MPU4)", + "m4runawyb", "Runaway Trail (Barcrest) (v1.2?) (MPU4)", + "m4rwb", "Red White & Blue (Barcrest) (MPU4) (DRW)", + "m4safar", "Safari Club (Mdm) (MPU4)", + "m4salsa", "Salsa (Barcrest) (MPU4) (DSA)", + "m4samu", "Samurai (Barcrest) (Dutch) (MPU4)", + "m4sayno", "Say No More (Barcrest) (MPU4) (set 1)", + "m4sayno__a", "Say No More (Barcrest) (MPU4) (set 2)", + "m4sayno__b", "Say No More (Barcrest) (MPU4) (set 3)", + "m4sayno__c", "Say No More (Barcrest) (MPU4) (set 4)", + "m4sayno__d", "Say No More (Barcrest) (MPU4) (set 5)", + "m4sb5", "Sunset Boulevard (Barcrest) (MPU4) (BSB 0.3)", + "m4sbx", "Super Bear X (MPU4?) (set 1)", + "m4sbxa", "Super Bear X (MPU4?) (set 2)", + "m4sbxb", "Super Bear X (MPU4?) (set 3)", + "m4sbxc", "Super Bear X (MPU4?) (set 4)", + "m4sbxd", "Super Bear X (MPU4?) (set 5)", + "m4sbxe", "Super Bear X (MPU4?) (set 6)", + "m4screw", "Screwin' Around (Global) (MPU4, v0.8)", + "m4screwa", "Screwin' Around (Global) (MPU4, v0.7)", + "m4screwb", "Screwin' Around (Global) (MPU4, v0.5)", + "m4screwp", "Screwin' Around (Global) (MPU4, v0.8) (Protocol)", + "m4sctagt", "Secret Agent (Nova) (MPU4)", + "m4sdquid", "Sundance Quid (Qps) (MPU4) (set 1)", + "m4sdquid__a", "Sundance Quid (Qps) (MPU4) (set 2)", + "m4sdquid__b", "Sundance Quid (Qps) (MPU4) (set 3)", + "m4sdquid__c", "Sundance Quid (Qps) (MPU4) (set 4)", + "m4sdquid__d", "Sundance Quid (Qps) (MPU4) (set 5)", + "m4sdquid__e", "Sundance Quid (Qps) (MPU4) (set 6)", + "m4sdquid__f", "Sundance Quid (Qps) (MPU4) (set 7)", + "m4sdquid__g", "Sundance Quid (Qps) (MPU4) (set 8)", + "m4sdquid__h", "Sundance Quid (Qps) (MPU4) (set 9)", + "m4sdquid__i", "Sundance Quid (Qps) (MPU4) (set 10)", + "m4sdquid__j", "Sundance Quid (Qps) (MPU4) (set 11)", + "m4sdquid__k", "Sundance Quid (Qps) (MPU4) (set 12)", + "m4select", "Select (Union) (MPU4)", + "m4sgrab", "Smash 'n' Grab (Barcrest) (MPU4) (SAG 1.0, set 1)", + "m4sgraba", "Smash 'n' Grab (Barcrest) (MPU4) (set 1.0, set 2)", + "m4sgrabb", "Smash 'n' Grab (Barcrest) (MPU4) (SAG 3.4)", + "m4shkwav", "Shockwave (Qps) (MPU4) (set 1)", + "m4shkwav__a", "Shockwave (Qps) (MPU4) (set 2)", + "m4shkwav__b", "Shockwave (Qps) (MPU4) (set 3)", + "m4shkwav__c", "Shockwave (Qps) (MPU4) (set 4)", + "m4shkwav__d", "Shockwave (Qps) (MPU4) (set 5)", + "m4shkwav__e", "Shockwave (Qps) (MPU4) (set 6)", + "m4shkwav__f", "Shockwave (Qps) (MPU4) (set 7)", + "m4shkwav__g", "Shockwave (Qps) (MPU4) (set 8)", + "m4shocm", "Showcase Crystal Maze (Barcrest) (MPU4) (set 1)", + "m4shocm__a", "Showcase Crystal Maze (Barcrest) (MPU4) (set 2)", + "m4shocm__b", "Showcase Crystal Maze (Barcrest) (MPU4) (set 3)", + "m4shocm__c", "Showcase Crystal Maze (Barcrest) (MPU4) (set 4)", + "m4shocm__d", "Showcase Crystal Maze (Barcrest) (MPU4) (set 5)", + "m4shocm__e", "Showcase Crystal Maze (Barcrest) (MPU4) (set 6)", + "m4shocm__f", "Showcase Crystal Maze (Barcrest) (MPU4) (set 7)", + "m4shocm__g", "Showcase Crystal Maze (Barcrest) (MPU4) (set 8)", + "m4shocm__h", "Showcase Crystal Maze (Barcrest) (MPU4) (set 9)", + "m4shocm__i", "Showcase Crystal Maze (Barcrest) (MPU4) (set 10)", + "m4shocm__j", "Showcase Crystal Maze (Barcrest) (MPU4) (set 11)", + "m4shodf", "Showcase Duty Free (Barcrest) (MPU4) (set 1)", + "m4shodf__a", "Showcase Duty Free (Barcrest) (MPU4) (set 2)", + "m4shodf__b", "Showcase Duty Free (Barcrest) (MPU4) (set 3)", + "m4shodf__c", "Showcase Duty Free (Barcrest) (MPU4) (set 4)", + "m4shodf__d", "Showcase Duty Free (Barcrest) (MPU4) (set 5)", + "m4shodf__e", "Showcase Duty Free (Barcrest) (MPU4) (set 6)", + "m4shodf__f", "Showcase Duty Free (Barcrest) (MPU4) (set 7)", + "m4shodf__g", "Showcase Duty Free (Barcrest) (MPU4) (set 8)", + "m4shodf__h", "Showcase Duty Free (Barcrest) (MPU4) (set 9)", + "m4shodf__i", "Showcase Duty Free (Barcrest) (MPU4) (set 10)", + "m4shodf__j", "Showcase Duty Free (Barcrest) (MPU4) (set 11)", + "m4shodf__k", "Showcase Duty Free (Barcrest) (MPU4) (set 12)", + "m4shodf__l", "Showcase Duty Free (Barcrest) (MPU4) (set 13)", + "m4shoknr", "Shock 'n' Roll (Qps) (MPU4) (set 1)", + "m4shoknr__a", "Shock 'n' Roll (Qps) (MPU4) (set 2)", + "m4shoknr__b", "Shock 'n' Roll (Qps) (MPU4) (set 3)", + "m4shoknr__c", "Shock 'n' Roll (Qps) (MPU4) (set 4)", + "m4showtm", "Show Timer (Barcrest) (Dutch) (MPU4) (DSH1.3)", + "m4silnud", "Silver Nudger (Mdm?) (MPU4)", + "m4silshd", "Silver Shadow (Barcrest) (MPU4)", + "m4silshda", "Silver Shadow (Barcrest) (MPU4) (SH 2.0, set 1)", + "m4silshdb", "Silver Shadow (Barcrest) (MPU4) (SH 2.0, set 2)", + "m4sinbd", "Sinbad (Bwb) (MPU4) (set 1)", + "m4sinbd__a", "Sinbad (Bwb) (MPU4) (set 2)", + "m4sinbd__b", "Sinbad (Bwb) (MPU4) (set 3)", + "m4sinbd__c", "Sinbad (Bwb) (MPU4) (set 4)", + "m4sinbd__d", "Sinbad (Bwb) (MPU4) (set 5)", + "m4sinbd__e", "Sinbad (Bwb) (MPU4) (set 6)", + "m4sinbd__f", "Sinbad (Bwb) (MPU4) (set 7)", + "m4sinbd__g", "Sinbad (Bwb) (MPU4) (set 8)", + "m4sinbd__h", "Sinbad (Bwb) (MPU4) (set 9)", + "m4sinbd__i", "Sinbad (Bwb) (MPU4) (set 10)", + "m4sinbd__j", "Sinbad (Bwb) (MPU4) (set 11)", + "m4sinbd__k", "Sinbad (Bwb) (MPU4) (set 12)", + "m4sinbd__l", "Sinbad (Bwb) (MPU4) (set 13)", + "m4sinbd__m", "Sinbad (Bwb) (MPU4) (set 14)", + "m4sinbd__n", "Sinbad (Bwb) (MPU4) (set 15)", + "m4sinbd__o", "Sinbad (Bwb) (MPU4) (set 16)", + "m4sinbd__p", "Sinbad (Bwb) (MPU4) (set 17)", + "m4sinbd__q", "Sinbad (Bwb) (MPU4) (set 18)", + "m4sinbd__r", "Sinbad (Bwb) (MPU4) (set 19)", + "m4sinbd__s", "Sinbad (Bwb) (MPU4) (set 20)", + "m4sinbd__t", "Sinbad (Bwb) (MPU4) (set 21)", + "m4sinbd__u", "Sinbad (Bwb) (MPU4) (set 22)", + "m4sinbd__v", "Sinbad (Bwb) (MPU4) (set 23)", + "m4sinbd__w", "Sinbad (Bwb) (MPU4) (set 24)", + "m4sinbd__x", "Sinbad (Bwb) (MPU4) (set 25)", + "m4sinbdn", "Sinbad (Nova) (MPU4) (set 1)", + "m4sinbdn__a", "Sinbad (Nova) (MPU4) (set 2)", + "m4sinbdn__b", "Sinbad (Nova) (MPU4) (set 3)", + "m4sinbdn__c", "Sinbad (Nova) (MPU4) (set 4)", + "m4sinbdn__d", "Sinbad (Nova) (MPU4) (set 5)", + "m4sinbdn__e", "Sinbad (Nova) (MPU4) (set 6)", + "m4sinbdn__f", "Sinbad (Nova) (MPU4) (set 7)", + "m4sky", "Sky Sports (Bwb) (MPU4) (set 1)", + "m4sky__a", "Sky Sports (Bwb) (MPU4) (set 2)", + "m4sky__b", "Sky Sports (Bwb) (MPU4) (set 3)", + "m4sky__c", "Sky Sports (Bwb) (MPU4) (set 4)", + "m4sky__d", "Sky Sports (Bwb) (MPU4) (set 5)", + "m4smshgb", "Smash 'n' Grab (Mdm) (MPU4, set 1)", + "m4smshgba", "Smash 'n' Grab (Mdm) (MPU4, set 2)", + "m4smshgbb", "Smash 'n' Grab (Mdm) (MPU4, set 3)", + "m4smshgbc", "Smash 'n' Grab (Mdm) (MPU4, set 4)", + "m4snklad", "Snakes & Ladders (Mdm) (MPU4)", + "m4snookr", "Snooker (Eurocoin) (MPU4)", + "m4snowbl", "Snowball Bingo (Mdm) (MPU4)", + "m4solsil", "Solid Silver Club (Barcrest) (MPU4) (SOS 2.2)", + "m4solsila", "Solid Silver Club (Barcrest) (MPU4) (SOS 2.1)", + "m4souls", "Soul Sister (Bwb) (MPU4) (set 1)", + "m4souls__a", "Soul Sister (Bwb) (MPU4) (set 2)", + "m4souls__b", "Soul Sister (Bwb) (MPU4) (set 3)", + "m4souls__c", "Soul Sister (Bwb) (MPU4) (set 4)", + "m4souls__d", "Soul Sister (Bwb) (MPU4) (set 5)", + "m4souls__e", "Soul Sister (Bwb) (MPU4) (set 6)", + "m4souls__f", "Soul Sister (Bwb) (MPU4) (set 7)", + "m4specu", "Speculator Club (Bwb) (MPU4)", + "m4spinbt", "Spin The Bottle (Bwb) (MPU4) (set 1)", + "m4spinbt__a", "Spin The Bottle (Bwb) (MPU4) (set 2)", + "m4spinbt__b", "Spin The Bottle (Bwb) (MPU4) (set 3)", + "m4spinbt__c", "Spin The Bottle (Bwb) (MPU4) (set 4)", + "m4spinbt__d", "Spin The Bottle (Bwb) (MPU4) (set 5)", + "m4spinbt__e", "Spin The Bottle (Bwb) (MPU4) (set 6)", + "m4spinbt__f", "Spin The Bottle (Bwb) (MPU4) (set 7)", + "m4spinbt__g", "Spin The Bottle (Bwb) (MPU4) (set 8)", + "m4spnwin", "Spin A Win (Cotswold Microsystems) (MPU4) (set 1)", + "m4spnwina", "Spin A Win (Cotswold Microsystems) (MPU4) (set 2)", + "m4spnwnc", "Spin-A-Win (Concept Games Ltd) (MPU4) (set 1)", + "m4spnwnc__a", "Spin-A-Win (Concept Games Ltd) (MPU4) (set 2)", + "m4spnwnc__b", "Spin-A-Win (Concept Games Ltd) (MPU4) (set 3)", + "m4spotln", "Spotlight (Nova) (MPU4)", + "m4spton", "Spot On (Pcp) (MPU4)", + "m4squid", "Squids In (Barcrest) (MPU4) (set 1)", + "m4squid__a", "Squids In (Barcrest) (MPU4) (set 2)", + "m4squid__b", "Squids In (Barcrest) (MPU4) (set 3)", + "m4squid__c", "Squids In (Barcrest) (MPU4) (set 4)", + "m4ssclas", "Super Streak Classic (Barcrest) (MPU4) (set 1)", + "m4ssclas__a", "Super Streak Classic (Barcrest) (MPU4) (set 2)", + "m4ssclas__b", "Super Streak Classic (Barcrest) (MPU4) (set 3)", + "m4ssclas__c", "Super Streak Classic (Barcrest) (MPU4) (set 4)", + "m4ssclas__d", "Super Streak Classic (Barcrest) (MPU4) (set 5)", + "m4ssclas__e", "Super Streak Classic (Barcrest) (MPU4) (set 6)", + "m4ssclas__f", "Super Streak Classic (Barcrest) (MPU4) (hack)", + "m4sss", "Spend Spend Spend (Barcrest) (MPU4) (set 1)", + "m4sss__a", "Spend Spend Spend (Barcrest) (MPU4) (set 2)", + "m4sss__b", "Spend Spend Spend (Barcrest) (MPU4) (set 3)", + "m4sss__c", "Spend Spend Spend (Barcrest) (MPU4) (set 4)", + "m4sss__d", "Spend Spend Spend (Barcrest) (MPU4) (set 5)", + "m4sss__e", "Spend Spend Spend (Barcrest) (MPU4) (set 6)", + "m4sss__f", "Spend Spend Spend (Barcrest) (MPU4) (set 7)", + "m4sss__g", "Spend Spend Spend (Barcrest) (MPU4) (set 8)", + "m4sss__h", "Spend Spend Spend (Barcrest) (MPU4) (set 9)", + "m4sss__i", "Spend Spend Spend (Barcrest) (MPU4) (set 10)", + "m4sss__j", "Spend Spend Spend (Barcrest) (MPU4) (set 11)", + "m4sss__k", "Spend Spend Spend (Barcrest) (MPU4) (set 12)", + "m4sss__l", "Spend Spend Spend (Barcrest) (MPU4) (set 13)", + "m4sstrek", "Super Streak (bootleg) (MPU4)", + "m4stakeu", "Stake Up Club (Barcrest) (MPU4) (SU 4.4)", + "m4stakeua", "Stake Up Club (Barcrest) (MPU4) (SU 4.8)", + "m4stakex", "Stake X (Leisurama) (MPU4, set 1)", + "m4stakexa", "Stake X (Leisurama) (MPU4, set 2)", + "m4stand2", "Stand To Deliver (DJE) (MPU4)", + "m4starbr", "Stars And Bars (Barcrest) (Dutch) (MPU4)", + "m4stards", "Stardust (Barcrest) (Dutch) (MPU4)", + "m4starst", "Stars & Stripes (Bwb) (MPU4) (set 1)", + "m4starst__a", "Stars & Stripes (Bwb) (MPU4) (set 2)", + "m4starst__b", "Stars & Stripes (Bwb) (MPU4) (set 3)", + "m4starst__c", "Stars & Stripes (Bwb) (MPU4) (set 4)", + "m4starst__d", "Stars & Stripes (Bwb) (MPU4) (set 5)", + "m4starst__e", "Stars & Stripes (Bwb) (MPU4) (set 6)", + "m4starst__f", "Stars & Stripes (Bwb) (MPU4) (set 7)", + "m4starst__g", "Stars & Stripes (Bwb) (MPU4) (set 8)", + "m4starst__h", "Stars & Stripes (Bwb) (MPU4) (set 9)", + "m4starst__i", "Stars & Stripes (Bwb) (MPU4) (set 10)", + "m4starst__j", "Stars & Stripes (Bwb) (MPU4) (set 11)", + "m4stc", "unknown MPU4 'STC 0.1' (Barcrest) (MPU4)", + "m4steptm", "Step Timer (Barcrest) (Dutch) (MPU4) (DST 1.1)", + "m4stopcl", "Stop the Clock (Barcrest) (MPU4) (SC2.5)", + "m4sunclb", "Sun Club (Bwb) (MPU4) (set 1)", + "m4sunclba", "Sun Club (Bwb) (MPU4) (set 2)", + "m4sunday", "Sunday Sport (Pcp) (MPU4)", + "m4sunscl", "Sunset Club (Bwb) (MPU4) (set 1)", + "m4sunscla", "Sunset Club (Bwb) (MPU4) (set 2)", + "m4sunsclb", "Sunset Club (Bwb) (MPU4) (set 3)", + "m4sunset", "Sunset Boulevard (Barcrest) (MPU4) (BSB 0.4)", + "m4sunseta", "Sunset Boulevard (Barcrest) (MPU4) (B25 1.2, set 1)", + "m4sunsetb", "Sunset Boulevard (Barcrest) (MPU4) (B25 1.2, set 2)", + "m4sunsetc", "Sunset Boulevard (Barcrest) (MPU4) (OSB 0.2)", + "m4sunsetd", "Sunset Boulevard (Barcrest) (MPU4) (SBU 2.0)", + "m4sunsete", "Sunset Boulevard (Barcrest) (MPU4) (BS__ 1.1)", + "m4sunsetf", "Sunset Boulevard (Barcrest) (MPU4) (BS__ 1.0, set 1)", + "m4sunsetg", "Sunset Boulevard (Barcrest) (MPU4) (BS__ 1.0, set 2)", + "m4sunseth", "Sunset Boulevard (Barcrest) (MPU4) (BS__ 1.0, set 3, bad)", + "m4sunseti", "Sunset Boulevard (Barcrest) (MPU4) (BS__ 1.0, set 4)", + "m4sunsetj", "Sunset Boulevard (Barcrest) (MPU4) (BS__ 1.0, set 5)", + "m4sunsetk", "Sunset Boulevard (Barcrest) (MPU4) (SB__ 1.1)", + "m4sunsetl", "Sunset Boulevard (Barcrest) (MPU4) (SB__ 1.0, set 1)", + "m4sunsetm", "Sunset Boulevard (Barcrest) (MPU4) (SB__ 1.0, set 2)", + "m4sunsetn", "Sunset Boulevard (Barcrest) (MPU4) (SB__ 1.0, set 3)", + "m4sunseto", "Sunset Boulevard (Barcrest) (MPU4) (SB__ 1.0, set 4)", + "m4sunsetp", "Sunset Boulevard (Barcrest) (MPU4) (SB__ 1.0, set 5)", + "m4sunsetq", "Sunset Boulevard (Barcrest) (MPU4) (SB__ 1.0, set 6)", + "m4sunsetr", "Sunset Boulevard (Barcrest) (MPU4) (SB__ 1.0, set 7)", + "m4sunsets", "Sunset Boulevard (Barcrest) (MPU4) (SB__ 1.0, set 8)", + "m4sunsett", "Sunset Boulevard (Barcrest) (MPU4) (SB__ 1.0, set 9)", + "m4supbf", "Super Bucks Fizz Club (Barcrest) (MPU4) (set 1)", + "m4supbfa", "Super Bucks Fizz Club (Barcrest) (MPU4) (set 2)", + "m4supbjc", "Super Blackjack Club (Barcrest) (MPU4) (set 1)", + "m4supbjca", "Super Blackjack Club (Barcrest) (MPU4) (set 2)", + "m4supbjcb", "Super Blackjack Club (Barcrest) (MPU4) (set 3)", + "m4supbjcc", "Super Blackjack Club (Barcrest) (MPU4) (set 4)", + "m4supbjcd", "Super Blackjack Club (Barcrest) (MPU4) (set 5)", + "m4supfru", "Supafruits (Union) (MPU4, set 1)", + "m4supfrua", "Supafruits (Union) (MPU4, set 2)", + "m4suphv", "Super Hyper Viper (Barcrest) (MPU4) (set 1)", + "m4suphv__a", "Super Hyper Viper (Barcrest) (MPU4) (set 2)", + "m4suphv__b", "Super Hyper Viper (Barcrest) (MPU4) (set 3)", + "m4suphv__c", "Super Hyper Viper (Barcrest) (MPU4) (set 4)", + "m4suphv__d", "Super Hyper Viper (Barcrest) (MPU4) (set 5)", + "m4suphv__e", "Super Hyper Viper (Barcrest) (MPU4) (set 6)", + "m4suphv__f", "Super Hyper Viper (Barcrest) (MPU4) (set 7)", + "m4suphv__g", "Super Hyper Viper (Barcrest) (MPU4) (set 8)", + "m4suphv__h", "Super Hyper Viper (Barcrest) (MPU4) (set 9)", + "m4suphv__i", "Super Hyper Viper (Barcrest) (MPU4) (set 10)", + "m4suphv__j", "Super Hyper Viper (Barcrest) (MPU4) (set 11)", + "m4suphv__k", "Super Hyper Viper (Barcrest) (MPU4) (set 12)", + "m4suphv__l", "Super Hyper Viper (Barcrest) (MPU4) (set 13)", + "m4suphv__m", "Super Hyper Viper (Barcrest) (MPU4) (set 14)", + "m4suphv__n", "Super Hyper Viper (Barcrest) (MPU4) (set 15)", + "m4suphv__o", "Super Hyper Viper (Barcrest) (MPU4) (set 16)", + "m4suphv__p", "Super Hyper Viper (Barcrest) (MPU4) (set 17)", + "m4supjst", "Super Jester (Pcp) (MPU4) (set 1)", + "m4supjsta", "Super Jester (Pcp) (MPU4) (set 2)", + "m4supjstb", "Super Jester (Pcp) (MPU4) (set 3)", + "m4supjstc", "Super Jester (Pcp) (MPU4) (set 4)", + "m4supjstd", "Super Jester (Pcp) (MPU4) (set 5)", + "m4supjste", "Super Jester (Pcp) (MPU4) (set 6)", + "m4supleg", "Super League (Bwb) (MPU4) (set 1)", + "m4supleg__a", "Super League (Bwb) (MPU4) (set 2)", + "m4supleg__b", "Super League (Bwb) (MPU4) (set 3)", + "m4supleg__c", "Super League (Bwb) (MPU4) (set 4)", + "m4supleg__d", "Super League (Bwb) (MPU4) (set 5)", + "m4suplegw", "Super League (Whitbread / Bwb) (MPU4)", + "m4supscr", "Super Soccer (Bwb) (MPU4) (set 1)", + "m4supscr__a", "Super Soccer (Bwb) (MPU4) (set 2)", + "m4supscr__b", "Super Soccer (Bwb) (MPU4) (set 3)", + "m4supscr__c", "Super Soccer (Bwb) (MPU4) (set 4)", + "m4supscr__d", "Super Soccer (Bwb) (MPU4) (set 5)", + "m4supscr__e", "Super Soccer (Bwb) (MPU4) (set 6)", + "m4supscr__f", "Super Soccer (Bwb) (MPU4) (set 7)", + "m4supscr__g", "Super Soccer (Bwb) (MPU4) (set 8)", + "m4supscr__h", "Super Soccer (Bwb) (MPU4) (set 9)", + "m4supscr__i", "Super Soccer (Bwb) (MPU4) (set 10)", + "m4supscr__j", "Super Soccer (Bwb) (MPU4) (set 11)", + "m4supscr__k", "Super Soccer (Bwb) (MPU4) (set 12)", + "m4supscr__l", "Super Soccer (Bwb) (MPU4) (set 13)", + "m4supscr__m", "Super Soccer (Bwb) (MPU4) (set 14)", + "m4supscr__n", "Super Soccer (Bwb) (MPU4) (set 15)", + "m4supsl", "Supa Silva (Barcrest) (MPU4)", + "m4supslt", "Supa Slot (Barcrest) (MPU4)", + "m4supst", "Super Streak (Barcrest) (MPU4) (set 1)", + "m4supst__0", "Super Streak (Barcrest) (MPU4) (set 28)", + "m4supst__1", "Super Streak (Barcrest) (MPU4) (set 29)", + "m4supst__2", "Super Streak (Barcrest) (MPU4) (set 30)", + "m4supst__3", "Super Streak (Barcrest) (MPU4) (set 31)", + "m4supst__4", "Super Streak (Barcrest) (MPU4) (set 32)", + "m4supst__5", "Super Streak (Barcrest) (MPU4) (set 33)", + "m4supst__6", "Super Streak (Barcrest) (MPU4) (set 34)", + "m4supst__7", "Super Streak (Barcrest) (MPU4) (set 35)", + "m4supst__8", "Super Streak (Barcrest) (MPU4) (set 36)", + "m4supst__9", "Super Streak (Barcrest) (MPU4) (set 37)", + "m4supst__a", "Super Streak (Barcrest) (MPU4) (set 2)", + "m4supst__a0", "Super Streak (Barcrest) (MPU4) (set 64)", + "m4supst__a1", "Super Streak (Barcrest) (MPU4) (set 65)", + "m4supst__a2", "Super Streak (Barcrest) (MPU4) (set 66)", + "m4supst__a3", "Super Streak (Barcrest) (MPU4) (set 67)", + "m4supst__a4", "Super Streak (Barcrest) (MPU4) (set 68)", + "m4supst__a5", "Super Streak (Barcrest) (MPU4) (set 69)", + "m4supst__a6", "Super Streak (Barcrest) (MPU4) (set 70)", + "m4supst__a7", "Super Streak (Barcrest) (MPU4) (set 71)", + "m4supst__a8", "Super Streak (Barcrest) (MPU4) (set 72)", + "m4supst__a9", "Super Streak (Barcrest) (MPU4) (set 73)", + "m4supst__aa", "Super Streak (Barcrest) (MPU4) (set 38)", + "m4supst__ab", "Super Streak (Barcrest) (MPU4) (set 39)", + "m4supst__ac", "Super Streak (Barcrest) (MPU4) (set 40)", + "m4supst__ad", "Super Streak (Barcrest) (MPU4) (set 41)", + "m4supst__ae", "Super Streak (Barcrest) (MPU4) (set 42)", + "m4supst__af", "Super Streak (Barcrest) (MPU4) (set 43)", + "m4supst__ag", "Super Streak (Barcrest) (MPU4) (set 44)", + "m4supst__ah", "Super Streak (Barcrest) (MPU4) (set 45)", + "m4supst__ai", "Super Streak (Barcrest) (MPU4) (set 46)", + "m4supst__aj", "Super Streak (Barcrest) (MPU4) (set 47)", + "m4supst__ak", "Super Streak (Barcrest) (MPU4) (set 48)", + "m4supst__al", "Super Streak (Barcrest) (MPU4) (set 49)", + "m4supst__am", "Super Streak (Barcrest) (MPU4) (set 50)", + "m4supst__an", "Super Streak (Barcrest) (MPU4) (set 51)", + "m4supst__ao", "Super Streak (Barcrest) (MPU4) (set 52)", + "m4supst__ap", "Super Streak (Barcrest) (MPU4) (set 53)", + "m4supst__aq", "Super Streak (Barcrest) (MPU4) (set 54)", + "m4supst__ar", "Super Streak (Barcrest) (MPU4) (set 55)", + "m4supst__as", "Super Streak (Barcrest) (MPU4) (set 56)", + "m4supst__at", "Super Streak (Barcrest) (MPU4) (set 57)", + "m4supst__au", "Super Streak (Barcrest) (MPU4) (set 58)", + "m4supst__av", "Super Streak (Barcrest) (MPU4) (set 59)", + "m4supst__aw", "Super Streak (Barcrest) (MPU4) (set 60)", + "m4supst__ax", "Super Streak (Barcrest) (MPU4) (set 61)", + "m4supst__ay", "Super Streak (Barcrest) (MPU4) (set 62)", + "m4supst__az", "Super Streak (Barcrest) (MPU4) (set 63)", + "m4supst__b", "Super Streak (Barcrest) (MPU4) (set 3)", + "m4supst__b0", "Super Streak (Barcrest) (MPU4) (set 100)", + "m4supst__b1", "Super Streak (Barcrest) (MPU4) (set 101)", + "m4supst__b2", "Super Streak (Barcrest) (MPU4) (set 102)", + "m4supst__b3", "Super Streak (Barcrest) (MPU4) (set 103)", + "m4supst__b4", "Super Streak (Barcrest) (MPU4) (set 104)", + "m4supst__b5", "Super Streak (Barcrest) (MPU4) (set 105)", + "m4supst__ba", "Super Streak (Barcrest) (MPU4) (set 74)", + "m4supst__bb", "Super Streak (Barcrest) (MPU4) (set 75)", + "m4supst__bc", "Super Streak (Barcrest) (MPU4) (set 76)", + "m4supst__bd", "Super Streak (Barcrest) (MPU4) (set 77)", + "m4supst__be", "Super Streak (Barcrest) (MPU4) (set 78)", + "m4supst__bf", "Super Streak (Barcrest) (MPU4) (set 79)", + "m4supst__bg", "Super Streak (Barcrest) (MPU4) (set 80)", + "m4supst__bh", "Super Streak (Barcrest) (MPU4) (set 81)", + "m4supst__bi", "Super Streak (Barcrest) (MPU4) (set 82)", + "m4supst__bj", "Super Streak (Barcrest) (MPU4) (set 83)", + "m4supst__bk", "Super Streak (Barcrest) (MPU4) (set 84)", + "m4supst__bl", "Super Streak (Barcrest) (MPU4) (set 85)", + "m4supst__bm", "Super Streak (Barcrest) (MPU4) (set 86)", + "m4supst__bn", "Super Streak (Barcrest) (MPU4) (set 87)", + "m4supst__bo", "Super Streak (Barcrest) (MPU4) (set 88)", + "m4supst__bp", "Super Streak (Barcrest) (MPU4) (set 89)", + "m4supst__bq", "Super Streak (Barcrest) (MPU4) (set 90)", + "m4supst__br", "Super Streak (Barcrest) (MPU4) (set 91)", + "m4supst__bs", "Super Streak (Barcrest) (MPU4) (set 92)", + "m4supst__bt", "Super Streak (Barcrest) (MPU4) (set 93)", + "m4supst__bu", "Super Streak (Barcrest) (MPU4) (set 94)", + "m4supst__bv", "Super Streak (Barcrest) (MPU4) (set 95)", + "m4supst__bw", "Super Streak (Barcrest) (MPU4) (set 96)", + "m4supst__bx", "Super Streak (Barcrest) (MPU4) (set 97)", + "m4supst__by", "Super Streak (Barcrest) (MPU4) (set 98)", + "m4supst__bz", "Super Streak (Barcrest) (MPU4) (set 99)", + "m4supst__c", "Super Streak (Barcrest) (MPU4) (set 4)", + "m4supst__d", "Super Streak (Barcrest) (MPU4) (set 5)", + "m4supst__e", "Super Streak (Barcrest) (MPU4) (set 6)", + "m4supst__f", "Super Streak (Barcrest) (MPU4) (set 7)", + "m4supst__g", "Super Streak (Barcrest) (MPU4) (set 8)", + "m4supst__h", "Super Streak (Barcrest) (MPU4) (set 9)", + "m4supst__i", "Super Streak (Barcrest) (MPU4) (set 10)", + "m4supst__j", "Super Streak (Barcrest) (MPU4) (set 11)", + "m4supst__k", "Super Streak (Barcrest) (MPU4) (set 12)", + "m4supst__l", "Super Streak (Barcrest) (MPU4) (set 13)", + "m4supst__m", "Super Streak (Barcrest) (MPU4) (set 14)", + "m4supst__n", "Super Streak (Barcrest) (MPU4) (set 15)", + "m4supst__o", "Super Streak (Barcrest) (MPU4) (set 16)", + "m4supst__p", "Super Streak (Barcrest) (MPU4) (set 17)", + "m4supst__q", "Super Streak (Barcrest) (MPU4) (set 18)", + "m4supst__r", "Super Streak (Barcrest) (MPU4) (set 19)", + "m4supst__s", "Super Streak (Barcrest) (MPU4) (set 20)", + "m4supst__t", "Super Streak (Barcrest) (MPU4) (set 21)", + "m4supst__u", "Super Streak (Barcrest) (MPU4) (set 22)", + "m4supst__v", "Super Streak (Barcrest) (MPU4) (set 23)", + "m4supst__w", "Super Streak (Barcrest) (MPU4) (set 24)", + "m4supst__x", "Super Streak (Barcrest) (MPU4) (set 25)", + "m4supst__y", "Super Streak (Barcrest) (MPU4) (set 26)", + "m4supst__z", "Super Streak (Barcrest) (MPU4) (set 27)", + "m4suptrn", "Supatron (Barcrest) (MPU4)", + "m4suptub", "Super Tubes (Barcrest) (MPU4) (S4T 1.0, set 1))", + "m4suptuba", "Super Tubes (Barcrest) (MPU4) (S4T 1.0, set 2)", + "m4suptwo", "Super Two (Barcrest) (MPU4)", + "m4sure", "Sure Thing (Bwb) (MPU4) (set 1)", + "m4sure__a", "Sure Thing (Bwb) (MPU4) (set 2)", + "m4sure__b", "Sure Thing (Bwb) (MPU4) (set 3)", + "m4sure__c", "Sure Thing (Bwb) (MPU4) (set 4)", + "m4surf", "Super Surfin' (Gemini) (MPU4) (set 1)", + "m4surfa", "Super Surfin' (Gemini) (MPU4) (set 2)", + "m4surfb", "Super Surfin' (Gemini) (MPU4) (set 3)", + "m4swpnot", "Swap-A-Note (Barcrest) (v3.3) (MPU4)", + "m4swpnota", "Swap-A-Note (Barcrest) (v3.2D) (MPU4)", + "m4t266", "unknown MPU4 'TTO 1.1' (MPU4?)", + "m4taj", "Taj Mahal (Barcrest) (Dutch) (MPU4)", + "m4take2", "Take Two (Barcrest) (MPU4) (TTO 1.2)", + "m4take2a", "Take Two (Barcrest) (MPU4) (TTO 1.1)", + "m4take5", "Take 5 (Barcrest) (MPU4)", + "m4takepk", "Take Your Pick (Barcrest) (MPU4) (set 1)", + "m4takepk__0", "Take Your Pick (Barcrest) (MPU4) (set 28)", + "m4takepk__1", "Take Your Pick (Barcrest) (MPU4) (set 29)", + "m4takepk__a", "Take Your Pick (Barcrest) (MPU4) (set 2)", + "m4takepk__b", "Take Your Pick (Barcrest) (MPU4) (set 3)", + "m4takepk__c", "Take Your Pick (Barcrest) (MPU4) (set 4)", + "m4takepk__d", "Take Your Pick (Barcrest) (MPU4) (set 5)", + "m4takepk__e", "Take Your Pick (Barcrest) (MPU4) (set 6)", + "m4takepk__f", "Take Your Pick (Barcrest) (MPU4) (set 7)", + "m4takepk__g", "Take Your Pick (Barcrest) (MPU4) (set 8)", + "m4takepk__h", "Take Your Pick (Barcrest) (MPU4) (set 9)", + "m4takepk__i", "Take Your Pick (Barcrest) (MPU4) (set 10)", + "m4takepk__j", "Take Your Pick (Barcrest) (MPU4) (set 11)", + "m4takepk__k", "Take Your Pick (Barcrest) (MPU4) (set 12)", + "m4takepk__l", "Take Your Pick (Barcrest) (MPU4) (set 13)", + "m4takepk__m", "Take Your Pick (Barcrest) (MPU4) (set 14)", + "m4takepk__n", "Take Your Pick (Barcrest) (MPU4) (set 15)", + "m4takepk__o", "Take Your Pick (Barcrest) (MPU4) (set 16)", + "m4takepk__p", "Take Your Pick (Barcrest) (MPU4) (set 17)", + "m4takepk__q", "Take Your Pick (Barcrest) (MPU4) (set 18)", + "m4takepk__r", "Take Your Pick (Barcrest) (MPU4) (set 19)", + "m4takepk__s", "Take Your Pick (Barcrest) (MPU4) (set 20)", + "m4takepk__t", "Take Your Pick (Barcrest) (MPU4) (set 21)", + "m4takepk__u", "Take Your Pick (Barcrest) (MPU4) (set 22)", + "m4takepk__v", "Take Your Pick (Barcrest) (MPU4) (set 23)", + "m4takepk__w", "Take Your Pick (Barcrest) (MPU4) (set 24)", + "m4takepk__x", "Take Your Pick (Barcrest) (MPU4) (set 25)", + "m4takepk__y", "Take Your Pick (Barcrest) (MPU4) (set 26)", + "m4takepk__z", "Take Your Pick (Barcrest) (MPU4) (set 27)", + "m4tbplay", "Turbo Play (Barcrest) (Dutch) (MPU4) (DTP) (set 1)", + "m4tbplaya", "Turbo Play (Barcrest) (Dutch) (MPU4) (DTP) (set 2)", + "m4tbplayb", "Turbo Play (Barcrest) (Dutch) (MPU4) (DTP) (set 3)", + "m4tbreel", "Turbo Reel (Barcrest) (Dutch) (MPU4) (set 1)", + "m4tbrldx", "Turbo Reel (Barcrest) (Dutch) (MPU4) (set 3, Deluxe?)", + "m4techno", "Techno Reel (Barcrest) (MPU4) (DTE) (set 1)", + "m4technoa", "Techno Reel (Barcrest) (MPU4) (DTE) (set 2)", + "m4tenten", "10 X 10 (Barcrest) (MPU4) (set 1)", + "m4tenten__0", "10 X 10 (Barcrest) (MPU4) (set 28)", + "m4tenten__1", "10 X 10 (Barcrest) (MPU4) (set 29)", + "m4tenten__2", "10 X 10 (Barcrest) (MPU4) (set 30)", + "m4tenten__3", "10 X 10 (Barcrest) (MPU4) (set 31)", + "m4tenten__4", "10 X 10 (Barcrest) (MPU4) (set 32)", + "m4tenten__5", "10 X 10 (Barcrest) (MPU4) (set 33)", + "m4tenten__6", "10 X 10 (Barcrest) (MPU4) (set 34)", + "m4tenten__7", "10 X 10 (Barcrest) (MPU4) (set 35)", + "m4tenten__8", "10 X 10 (Barcrest) (MPU4) (set 36)", + "m4tenten__9", "10 X 10 (Barcrest) (MPU4) (set 37)", + "m4tenten__a", "10 X 10 (Barcrest) (MPU4) (set 2)", + "m4tenten__a0", "10 X 10 (Barcrest) (MPU4) (set 64)", + "m4tenten__a1", "10 X 10 (Barcrest) (MPU4) (set 65)", + "m4tenten__a2", "10 X 10 (Barcrest) (MPU4) (set 66)", + "m4tenten__aa", "10 X 10 (Barcrest) (MPU4) (set 38)", + "m4tenten__ab", "10 X 10 (Barcrest) (MPU4) (set 39)", + "m4tenten__ac", "10 X 10 (Barcrest) (MPU4) (set 40)", + "m4tenten__ad", "10 X 10 (Barcrest) (MPU4) (set 41)", + "m4tenten__ae", "10 X 10 (Barcrest) (MPU4) (set 42)", + "m4tenten__af", "10 X 10 (Barcrest) (MPU4) (set 43)", + "m4tenten__ag", "10 X 10 (Barcrest) (MPU4) (set 44)", + "m4tenten__ah", "10 X 10 (Barcrest) (MPU4) (set 45)", + "m4tenten__ai", "10 X 10 (Barcrest) (MPU4) (set 46)", + "m4tenten__aj", "10 X 10 (Barcrest) (MPU4) (set 47)", + "m4tenten__ak", "10 X 10 (Barcrest) (MPU4) (set 48)", + "m4tenten__al", "10 X 10 (Barcrest) (MPU4) (set 49)", + "m4tenten__am", "10 X 10 (Barcrest) (MPU4) (set 50)", + "m4tenten__an", "10 X 10 (Barcrest) (MPU4) (set 51)", + "m4tenten__ao", "10 X 10 (Barcrest) (MPU4) (set 52)", + "m4tenten__ap", "10 X 10 (Barcrest) (MPU4) (set 53)", + "m4tenten__aq", "10 X 10 (Barcrest) (MPU4) (set 54)", + "m4tenten__ar", "10 X 10 (Barcrest) (MPU4) (set 55)", + "m4tenten__as", "10 X 10 (Barcrest) (MPU4) (set 56)", + "m4tenten__at", "10 X 10 (Barcrest) (MPU4) (set 57)", + "m4tenten__au", "10 X 10 (Barcrest) (MPU4) (set 58)", + "m4tenten__av", "10 X 10 (Barcrest) (MPU4) (set 59)", + "m4tenten__aw", "10 X 10 (Barcrest) (MPU4) (set 60)", + "m4tenten__ax", "10 X 10 (Barcrest) (MPU4) (set 61)", + "m4tenten__ay", "10 X 10 (Barcrest) (MPU4) (set 62)", + "m4tenten__az", "10 X 10 (Barcrest) (MPU4) (set 63)", + "m4tenten__b", "10 X 10 (Barcrest) (MPU4) (set 3)", + "m4tenten__c", "10 X 10 (Barcrest) (MPU4) (set 4)", + "m4tenten__d", "10 X 10 (Barcrest) (MPU4) (set 5)", + "m4tenten__e", "10 X 10 (Barcrest) (MPU4) (set 6)", + "m4tenten__f", "10 X 10 (Barcrest) (MPU4) (set 7)", + "m4tenten__g", "10 X 10 (Barcrest) (MPU4) (set 8)", + "m4tenten__h", "10 X 10 (Barcrest) (MPU4) (set 9)", + "m4tenten__i", "10 X 10 (Barcrest) (MPU4) (set 10)", + "m4tenten__j", "10 X 10 (Barcrest) (MPU4) (set 11)", + "m4tenten__k", "10 X 10 (Barcrest) (MPU4) (set 12)", + "m4tenten__l", "10 X 10 (Barcrest) (MPU4) (set 13)", + "m4tenten__m", "10 X 10 (Barcrest) (MPU4) (set 14)", + "m4tenten__n", "10 X 10 (Barcrest) (MPU4) (set 15)", + "m4tenten__o", "10 X 10 (Barcrest) (MPU4) (set 16)", + "m4tenten__p", "10 X 10 (Barcrest) (MPU4) (set 17)", + "m4tenten__q", "10 X 10 (Barcrest) (MPU4) (set 18)", + "m4tenten__r", "10 X 10 (Barcrest) (MPU4) (set 19)", + "m4tenten__s", "10 X 10 (Barcrest) (MPU4) (set 20)", + "m4tenten__t", "10 X 10 (Barcrest) (MPU4) (set 21)", + "m4tenten__u", "10 X 10 (Barcrest) (MPU4) (set 22)", + "m4tenten__v", "10 X 10 (Barcrest) (MPU4) (set 23)", + "m4tenten__w", "10 X 10 (Barcrest) (MPU4) (set 24)", + "m4tenten__x", "10 X 10 (Barcrest) (MPU4) (set 25)", + "m4tenten__y", "10 X 10 (Barcrest) (MPU4) (set 26)", + "m4tenten__z", "10 X 10 (Barcrest) (MPU4) (set 27)", + "m4thehit", "The Hit (Barcrest) (MPU4)", + "m4themob", "The Mob (Mdm) (MPU4, set 1)", + "m4themoba", "The Mob (Mdm) (MPU4, set 2)", + "m4themobb", "The Mob (Mdm) (MPU4, set 3)", + "m4thestr", "The Streak (Barcrest) (MPU4) (set 1)", + "m4thestr__a", "The Streak (Barcrest) (MPU4) (set 2)", + "m4thestr__b", "The Streak (Barcrest) (MPU4) (set 3)", + "m4thestr__c", "The Streak (Barcrest) (MPU4) (set 4)", + "m4thestr__d", "The Streak (Barcrest) (MPU4) (set 5)", + "m4thestr__e", "The Streak (Barcrest) (MPU4) (set 6)", + "m4thestr__f", "The Streak (Barcrest) (MPU4) (set 7)", + "m4thestr__g", "The Streak (Barcrest) (MPU4) (set 8)", + "m4thestr__h", "The Streak (Barcrest) (MPU4) (set 9)", + "m4thestr__i", "The Streak (Barcrest) (MPU4) (set 10)", + "m4thestr__j", "The Streak (Barcrest) (MPU4) (set 11)", + "m4thestr__k", "The Streak (Barcrest) (MPU4) (set 12)", + "m4thestr__l", "The Streak (Barcrest) (MPU4) (set 13)", + "m4thestr__m", "The Streak (Barcrest) (MPU4) (set 14)", + "m4thestr__n", "The Streak (Barcrest) (MPU4) (set 15)", + "m4thestr__o", "The Streak (Barcrest) (MPU4) (set 16)", + "m4thestr__p", "The Streak (Barcrest) (MPU4) (set 17)", + "m4thestr__q", "The Streak (Barcrest) (MPU4) (set 18)", + "m4thestr__r", "The Streak (Barcrest) (MPU4) (set 19)", + "m4thestr__s", "The Streak (Barcrest) (MPU4) (set 20)", + "m4thestr__t", "The Streak (Barcrest) (MPU4) (set 21)", + "m4thestr__u", "The Streak (Barcrest) (MPU4) (set 22)", + "m4thestr__v", "The Streak (Barcrest) (MPU4) (set 23)", + "m4thestr__w", "The Streak (Barcrest) (MPU4) (set 24)", + "m4thestr__x", "The Streak (Barcrest) (MPU4) (set 25)", + "m4thestr__y", "The Streak (Barcrest) (MPU4) (set 26)", + "m4tic", "Tic Tac Toe (Barcrest) (MPU4) (set 1)", + "m4tic__a", "Tic Tac Toe (Barcrest) (MPU4) (set 2)", + "m4tic__b", "Tic Tac Toe (Barcrest) (MPU4) (set 3)", + "m4tic__c", "Tic Tac Toe (Barcrest) (MPU4) (set 4)", + "m4tic__d", "Tic Tac Toe (Barcrest) (MPU4) (set 5)", + "m4tic__e", "Tic Tac Toe (Barcrest) (MPU4) (set 6)", + "m4tic__f", "Tic Tac Toe (Barcrest) (MPU4) (set 7)", + "m4tic__g", "Tic Tac Toe (Barcrest) (MPU4) (set 8)", + "m4tic__h", "Tic Tac Toe (Barcrest) (MPU4) (set 9)", + "m4tic__i", "Tic Tac Toe (Barcrest) (MPU4) (set 10)", + "m4tic__j", "Tic Tac Toe (Barcrest) (MPU4) (set 11)", + "m4tic__k", "Tic Tac Toe (Barcrest) (MPU4) (set 12)", + "m4tic__l", "Tic Tac Toe (Barcrest) (MPU4) (set 13)", + "m4tic__m", "Tic Tac Toe (Barcrest) (MPU4) (set 14)", + "m4tic__n", "Tic Tac Toe (Barcrest) (MPU4) (set 15)", + "m4tic__o", "Tic Tac Toe (Barcrest) (MPU4) (set 16)", + "m4tic__p", "Tic Tac Toe (Barcrest) (MPU4) (set 17)", + "m4tic__r", "Tic Tac Toe (Barcrest) (MPU4) (set 18)", + "m4tic__s", "Tic Tac Toe (Barcrest) (MPU4) (set 19)", + "m4ticcla", "Tic Tac Toe Classic (Barcrest) (MPU4) (set 1)", + "m4ticcla__0", "Tic Tac Toe Classic (Barcrest) (MPU4) (set 28)", + "m4ticcla__a", "Tic Tac Toe Classic (Barcrest) (MPU4) (set 2)", + "m4ticcla__b", "Tic Tac Toe Classic (Barcrest) (MPU4) (set 3)", + "m4ticcla__c", "Tic Tac Toe Classic (Barcrest) (MPU4) (set 4)", + "m4ticcla__d", "Tic Tac Toe Classic (Barcrest) (MPU4) (set 5)", + "m4ticcla__e", "Tic Tac Toe Classic (Barcrest) (MPU4) (set 6)", + "m4ticcla__f", "Tic Tac Toe Classic (Barcrest) (MPU4) (set 7)", + "m4ticcla__g", "Tic Tac Toe Classic (Barcrest) (MPU4) (set 8)", + "m4ticcla__h", "Tic Tac Toe Classic (Barcrest) (MPU4) (set 9)", + "m4ticcla__i", "Tic Tac Toe Classic (Barcrest) (MPU4) (set 10)", + "m4ticcla__j", "Tic Tac Toe Classic (Barcrest) (MPU4) (set 11)", + "m4ticcla__k", "Tic Tac Toe Classic (Barcrest) (MPU4) (set 12)", + "m4ticcla__l", "Tic Tac Toe Classic (Barcrest) (MPU4) (set 13)", + "m4ticcla__m", "Tic Tac Toe Classic (Barcrest) (MPU4) (set 14)", + "m4ticcla__n", "Tic Tac Toe Classic (Barcrest) (MPU4) (set 15)", + "m4ticcla__o", "Tic Tac Toe Classic (Barcrest) (MPU4) (set 16)", + "m4ticcla__p", "Tic Tac Toe Classic (Barcrest) (MPU4) (set 17)", + "m4ticcla__q", "Tic Tac Toe Classic (Barcrest) (MPU4) (set 18)", + "m4ticcla__r", "Tic Tac Toe Classic (Barcrest) (MPU4) (set 19)", + "m4ticcla__s", "Tic Tac Toe Classic (Barcrest) (MPU4) (set 20)", + "m4ticcla__t", "Tic Tac Toe Classic (Barcrest) (MPU4) (set 21)", + "m4ticcla__u", "Tic Tac Toe Classic (Barcrest) (MPU4) (set 22)", + "m4ticcla__v", "Tic Tac Toe Classic (Barcrest) (MPU4) (set 23)", + "m4ticcla__w", "Tic Tac Toe Classic (Barcrest) (MPU4) (set 24)", + "m4ticcla__x", "Tic Tac Toe Classic (Barcrest) (MPU4) (set 25)", + "m4ticcla__y", "Tic Tac Toe Classic (Barcrest) (MPU4) (set 26)", + "m4ticcla__z", "Tic Tac Toe Classic (Barcrest) (MPU4) (set 27)", + "m4ticglc", "Tic Tac Toe Gold (Barcrest) (MPU4) (set 1)", + "m4ticglc__a", "Tic Tac Toe Gold (Barcrest) (MPU4) (set 2)", + "m4ticglc__b", "Tic Tac Toe Gold (Barcrest) (MPU4) (set 3)", + "m4ticglc__c", "Tic Tac Toe Gold (Barcrest) (MPU4) (set 4)", + "m4ticglc__d", "Tic Tac Toe Gold (Barcrest) (MPU4) (set 5)", + "m4tiktak", "Tic Tak Cash (Barcrest) (MPU4)", + "m4toma", "Tomahawk (Barcrest) (MPU4)", + "m4toot", "Ten Out Of Ten (Barcrest) (MPU4) (set 1)", + "m4toot__0", "Ten Out Of Ten (Barcrest) (MPU4) (set 28)", + "m4toot__1", "Ten Out Of Ten (Barcrest) (MPU4) (set 29)", + "m4toot__2", "Ten Out Of Ten (Barcrest) (MPU4) (set 30)", + "m4toot__3", "Ten Out Of Ten (Barcrest) (MPU4) (set 31)", + "m4toot__4", "Ten Out Of Ten (Barcrest) (MPU4) (set 32)", + "m4toot__5", "Ten Out Of Ten (Barcrest) (MPU4) (set 33)", + "m4toot__6", "Ten Out Of Ten (Barcrest) (MPU4) (set 34)", + "m4toot__7", "Ten Out Of Ten (Barcrest) (MPU4) (set 35)", + "m4toot__8", "Ten Out Of Ten (Barcrest) (MPU4) (set 36)", + "m4toot__9", "Ten Out Of Ten (Barcrest) (MPU4) (set 37)", + "m4toot__a", "Ten Out Of Ten (Barcrest) (MPU4) (set 2)", + "m4toot__aa", "Ten Out Of Ten (Barcrest) (MPU4) (set 38)", + "m4toot__ab", "Ten Out Of Ten (Barcrest) (MPU4) (set 39)", + "m4toot__ac", "Ten Out Of Ten (Barcrest) (MPU4) (set 40)", + "m4toot__ad", "Ten Out Of Ten (Barcrest) (MPU4) (set 41)", + "m4toot__ae", "Ten Out Of Ten (Barcrest) (MPU4) (set 42)", + "m4toot__af", "Ten Out Of Ten (Barcrest) (MPU4) (set 43)", + "m4toot__ag", "Ten Out Of Ten (Barcrest) (MPU4) (set 44)", + "m4toot__ah", "Ten Out Of Ten (Barcrest) (MPU4) (set 45)", + "m4toot__ai", "Ten Out Of Ten (Barcrest) (MPU4) (set 46)", + "m4toot__aj", "Ten Out Of Ten (Barcrest) (MPU4) (set 47)", + "m4toot__ak", "Ten Out Of Ten (Barcrest) (MPU4) (set 48)", + "m4toot__al", "Ten Out Of Ten (Barcrest) (MPU4) (set 49)", + "m4toot__b", "Ten Out Of Ten (Barcrest) (MPU4) (set 3)", + "m4toot__c", "Ten Out Of Ten (Barcrest) (MPU4) (set 4)", + "m4toot__d", "Ten Out Of Ten (Barcrest) (MPU4) (set 5)", + "m4toot__e", "Ten Out Of Ten (Barcrest) (MPU4) (set 6)", + "m4toot__f", "Ten Out Of Ten (Barcrest) (MPU4) (set 7)", + "m4toot__g", "Ten Out Of Ten (Barcrest) (MPU4) (set 8)", + "m4toot__h", "Ten Out Of Ten (Barcrest) (MPU4) (set 9)", + "m4toot__i", "Ten Out Of Ten (Barcrest) (MPU4) (set 10)", + "m4toot__j", "Ten Out Of Ten (Barcrest) (MPU4) (set 11)", + "m4toot__k", "Ten Out Of Ten (Barcrest) (MPU4) (set 12)", + "m4toot__l", "Ten Out Of Ten (Barcrest) (MPU4) (set 13)", + "m4toot__m", "Ten Out Of Ten (Barcrest) (MPU4) (set 14)", + "m4toot__n", "Ten Out Of Ten (Barcrest) (MPU4) (set 15)", + "m4toot__o", "Ten Out Of Ten (Barcrest) (MPU4) (set 16)", + "m4toot__p", "Ten Out Of Ten (Barcrest) (MPU4) (set 17)", + "m4toot__q", "Ten Out Of Ten (Barcrest) (MPU4) (set 18)", + "m4toot__r", "Ten Out Of Ten (Barcrest) (MPU4) (set 19)", + "m4toot__s", "Ten Out Of Ten (Barcrest) (MPU4) (set 20)", + "m4toot__t", "Ten Out Of Ten (Barcrest) (MPU4) (set 21)", + "m4toot__u", "Ten Out Of Ten (Barcrest) (MPU4) (set 22)", + "m4toot__v", "Ten Out Of Ten (Barcrest) (MPU4) (set 23)", + "m4toot__w", "Ten Out Of Ten (Barcrest) (MPU4) (set 24)", + "m4toot__x", "Ten Out Of Ten (Barcrest) (MPU4) (set 25)", + "m4toot__y", "Ten Out Of Ten (Barcrest) (MPU4) (set 26)", + "m4toot__z", "Ten Out Of Ten (Barcrest) (MPU4) (set 27)", + "m4toot__za", "Ten Out Of Ten (Barcrest) (MPU4) (TOC 0.3, hack?)", + "m4toot__zb", "Ten Out Of Ten (Barcrest) (MPU4) (TOT 0.4, hack?)", + "m4topact", "Top Action (Barcrest) (Dutch) (MPU4) (set 1)", + "m4topacta", "Top Action (Barcrest) (Dutch) (MPU4) (set 2)", + "m4topdk", "Top Deck (Barcrest) (Dutch) (MPU4)", + "m4topdog", "Top Dog (Barcrest) (MPU4) (set 1)", + "m4topdog__a", "Top Dog (Barcrest) (MPU4) (set 2)", + "m4topdog__b", "Top Dog (Barcrest) (MPU4) (set 3)", + "m4topdog__c", "Top Dog (Barcrest) (MPU4) (set 4)", + "m4topdog__d", "Top Dog (Barcrest) (MPU4) (set 5)", + "m4topdog__e", "Top Dog (Barcrest) (MPU4) (set 6)", + "m4topdog__f", "Top Dog (Barcrest) (MPU4) (set 7)", + "m4topdog__g", "Top Dog (Barcrest) (MPU4) (set 8)", + "m4topdog__h", "Top Dog (Barcrest) (MPU4) (set 9)", + "m4topdog__i", "Top Dog (Barcrest) (MPU4) (set 10)", + "m4topdog__j", "Top Dog (Barcrest) (MPU4) (set 11)", + "m4topdog__k", "Top Dog (Barcrest) (MPU4) (set 12)", + "m4topdog__l", "Top Dog (Barcrest) (MPU4) (set 13)", + "m4topdog__m", "Top Dog (Barcrest) (MPU4) (set 14)", + "m4topdog__n", "Top Dog (Barcrest) (MPU4) (set 15)", + "m4topdog__o", "Top Dog (Barcrest) (MPU4) (set 16)", + "m4topdog__p", "Top Dog (Barcrest) (MPU4) (set 17)", + "m4topdog__q", "Top Dog (Barcrest) (MPU4) (set 18)", + "m4topdog__r", "Top Dog (Barcrest) (MPU4) (set 19)", + "m4topdog__s", "Top Dog (Barcrest) (MPU4) (set 20)", + "m4topdog__t", "Top Dog (Barcrest) (MPU4) (set 21)", + "m4topdog__u", "Top Dog (Barcrest) (MPU4) (set 22)", + "m4topdog__v", "Top Dog (Barcrest) (MPU4) (set 23)", + "m4topdog__w", "Top Dog (Barcrest) (MPU4) (set 24)", + "m4topdog__x", "Top Dog (Barcrest) (MPU4) (set 25)", + "m4topdog__y", "Top Dog (Barcrest) (MPU4) (set 26)", + "m4topdog__z", "Top Dog (Barcrest) (MPU4) (set 27)", + "m4topgr", "Top Gear (Barcrest) (MPU4)", + "m4toplot", "Top The Lot (Barcrest) (MPU4, T4L 1.0)", + "m4toprn", "Top Run (Barcrest) (Dutch) (MPU4)", + "m4topst", "Top Stop (Barcrest) (MPU4)", + "m4toptak", "Top Take (Barcrest) (MPU4)", + "m4topten", "Top Tenner (Barcrest) (type 1) (MPU4) (TTS 0.4)", + "m4topten__0", "Top Tenner (Barcrest) (type 1) (MPU4) (TTH 1.2YD)", + "m4topten__1", "Top Tenner (Barcrest) (type 1) (MPU4) (TTH 1.2H)", + "m4topten__2", "Top Tenner (Barcrest) (type 1) (MPU4) (TTH 1.2K)", + "m4topten__3", "Top Tenner (Barcrest) (type 1) (MPU4) (TTH 1.2R)", + "m4topten__4", "Top Tenner (Barcrest) (type 1) (MPU4) (TTH 1.2)", + "m4topten__5", "Top Tenner (Barcrest) (type 1) (MPU4) (TTH 1.2Y)", + "m4topten__6", "Top Tenner (Barcrest) (type 1) (MPU4) (TTS 0.2AD)", + "m4topten__7", "Top Tenner (Barcrest) (type 1) (MPU4) (TTS 0.2B)", + "m4topten__8", "Top Tenner (Barcrest) (type 1) (MPU4) (TTS 0.2BD)", + "m4topten__9", "Top Tenner (Barcrest) (type 1) (MPU4) (TTS 0.2C)", + "m4topten__a", "Top Tenner (Barcrest) (type 1) (MPU4) (TTH 1.0, hack?)", + "m4topten__aa", "Top Tenner (Barcrest) (type 1) (MPU4) (TTS 0.2D)", + "m4topten__ab", "Top Tenner (Barcrest) (type 1) (MPU4) (TTS 0.2DH)", + "m4topten__ac", "Top Tenner (Barcrest) (type 1) (MPU4) (TTS 0.2KD)", + "m4topten__ad", "Top Tenner (Barcrest) (type 1) (MPU4) (TTS 0.2RD)", + "m4topten__ae", "Top Tenner (Barcrest) (type 1) (MPU4) (TTS 0.2YD)", + "m4topten__af", "Top Tenner (Barcrest) (type 1) (MPU4) (TTS 0.2H)", + "m4topten__ag", "Top Tenner (Barcrest) (type 1) (MPU4) (TTS 0.2K)", + "m4topten__ah", "Top Tenner (Barcrest) (type 1) (MPU4) (TTS 0.2R)", + "m4topten__ai", "Top Tenner (Barcrest) (type 1) (MPU4) (TTS 0.2)", + "m4topten__aj", "Top Tenner (Barcrest) (type 1) (MPU4) (TTS 0.2Y)", + "m4topten__ak", "Top Tenner (Barcrest) (type 1) (MPU4) (TTS 0.4AD)", + "m4topten__al", "Top Tenner (Barcrest) (type 1) (MPU4) (TTS 0.4B)", + "m4topten__am", "Top Tenner (Barcrest) (type 1) (MPU4) (TTS 0.4BD)", + "m4topten__an", "Top Tenner (Barcrest) (type 1) (MPU4) (TTS 0.4C)", + "m4topten__ao", "Top Tenner (Barcrest) (type 1) (MPU4) (TTS 0.4D)", + "m4topten__ap", "Top Tenner (Barcrest) (type 1) (MPU4) (TTS 0.4DH)", + "m4topten__aq", "Top Tenner (Barcrest) (type 1) (MPU4) (TTS 0.4KD)", + "m4topten__ar", "Top Tenner (Barcrest) (type 1) (MPU4) (TTS 0.4RD)", + "m4topten__as", "Top Tenner (Barcrest) (type 1) (MPU4) (TTS 0.4YD)", + "m4topten__at", "Top Tenner (Barcrest) (type 1) (MPU4) (TTS 0.4H)", + "m4topten__au", "Top Tenner (Barcrest) (type 1) (MPU4) (TTS 0.4K)", + "m4topten__av", "Top Tenner (Barcrest) (type 1) (MPU4) (TTS 0.4R)", + "m4topten__aw", "Top Tenner (Barcrest) (type 1) (MPU4) (TTS 0.4Y)", + "m4topten__ax", "Top Tenner (Barcrest) (type 1) (MPU4) (TTH 1.1)", + "m4topten__b", "Top Tenner (Barcrest) (type 1) (MPU4) (TTS 0.2, hack?)", + "m4topten__e", "Top Tenner (Barcrest) (type 1) (MPU4) (TTH 1.0AD)", + "m4topten__f", "Top Tenner (Barcrest) (type 1) (MPU4) (TTH 1.0B)", + "m4topten__g", "Top Tenner (Barcrest) (type 1) (MPU4) (TTH 1.0BD)", + "m4topten__h", "Top Tenner (Barcrest) (type 1) (MPU4) (TTH 1.0C)", + "m4topten__i", "Top Tenner (Barcrest) (type 1) (MPU4) (TTH 1.0D)", + "m4topten__j", "Top Tenner (Barcrest) (type 1) (MPU4) (TTH 1.0DH)", + "m4topten__k", "Top Tenner (Barcrest) (type 1) (MPU4) (TTH 1.0KD)", + "m4topten__l", "Top Tenner (Barcrest) (type 1) (MPU4) (TTH 1.0RD)", + "m4topten__m", "Top Tenner (Barcrest) (type 1) (MPU4) (TTH 1.0YD)", + "m4topten__n", "Top Tenner (Barcrest) (type 1) (MPU4) (TTH 1.0H)", + "m4topten__o", "Top Tenner (Barcrest) (type 1) (MPU4) (TTH 1.0K)", + "m4topten__p", "Top Tenner (Barcrest) (type 1) (MPU4) (TTH 1.0R)", + "m4topten__q", "Top Tenner (Barcrest) (type 1) (MPU4) (TTH 1.0)", + "m4topten__r", "Top Tenner (Barcrest) (type 1) (MPU4) (TTH 1.0Y)", + "m4topten__s", "Top Tenner (Barcrest) (type 1) (MPU4) (TTH 1.2AD)", + "m4topten__t", "Top Tenner (Barcrest) (type 1) (MPU4) (TTH 1.2B)", + "m4topten__u", "Top Tenner (Barcrest) (type 1) (MPU4) (TTH 1.2BD)", + "m4topten__v", "Top Tenner (Barcrest) (type 1) (MPU4) (TTH 1.2C)", + "m4topten__w", "Top Tenner (Barcrest) (type 1) (MPU4) (TTH 1.2D)", + "m4topten__x", "Top Tenner (Barcrest) (type 1) (MPU4) (TTH 1.2DH)", + "m4topten__y", "Top Tenner (Barcrest) (type 1) (MPU4) (TTH 1.2KD)", + "m4topten__z", "Top Tenner (Barcrest) (type 1) (MPU4) (TTH 1.2RD)", + "m4toptena", "Top Tenner (Barcrest) (MPU4, Mod 2 type, TP 2.7)", + "m4toptim", "Top Timer (Barcrest) (Dutch) (MPU4) (DTT) (set 1)", + "m4toptima", "Top Timer (Barcrest) (Dutch) (MPU4) (DTT) (set 2)", + "m4tornad", "Tornado (Qps) (MPU4) (set 1)", + "m4tornad__a", "Tornado (Qps) (MPU4) (set 2)", + "m4tornad__b", "Tornado (Qps) (MPU4) (set 3)", + "m4tornad__c", "Tornado (Qps) (MPU4) (set 4)", + "m4tornad__d", "Tornado (Qps) (MPU4) (set 5)", + "m4tornad__e", "Tornado (Qps) (MPU4) (set 6)", + "m4tornad__f", "Tornado (Qps) (MPU4) (set 7)", + "m4tornad__g", "Tornado (Qps) (MPU4) (set 8)", + "m4treel", "Turbo Reels (unknown) (MPU4?) (set 1)", + "m4treela", "Turbo Reels (unknown) (MPU4?) (set 2)", + "m4trex", "Trex (Bwb) (MPU4) (set 1)", + "m4trex__a", "Trex (Bwb) (MPU4) (set 2)", + "m4trex__b", "Trex (Bwb) (MPU4) (set 3)", + "m4trex__c", "Trex (Bwb) (MPU4) (set 4)", + "m4trex__d", "Trex (Bwb) (MPU4) (set 5)", + "m4trex__e", "Trex (Bwb) (MPU4) (set 6)", + "m4trex__f", "Trex (Bwb) (MPU4) (set 7)", + "m4trex__g", "Trex (Bwb) (MPU4) (set 8)", + "m4trex__h", "Trex (Bwb) (MPU4) (set 9)", + "m4trex__i", "Trex (Bwb) (MPU4) (set 10)", + "m4trex__j", "Trex (Bwb) (MPU4) (set 11)", + "m4trex__k", "Trex (Bwb) (MPU4) (set 12)", + "m4trex__l", "Trex (Bwb) (MPU4) (set 13)", + "m4trg", "Turbo Reel Gambler (Avantime?) (MPU4) (set 1)", + "m4trg__0", "Turbo Reel Gambler (Avantime?) (MPU4) (set 28)", + "m4trg__1", "Turbo Reel Gambler (Avantime?) (MPU4) (set 29)", + "m4trg__2", "Turbo Reel Gambler (Avantime?) (MPU4) (set 30)", + "m4trg__3", "Turbo Reel Gambler (Avantime?) (MPU4) (set 31)", + "m4trg__4", "Turbo Reel Gambler (Avantime?) (MPU4) (set 32)", + "m4trg__a", "Turbo Reel Gambler (Avantime?) (MPU4) (set 2)", + "m4trg__b", "Turbo Reel Gambler (Avantime?) (MPU4) (set 3)", + "m4trg__c", "Turbo Reel Gambler (Avantime?) (MPU4) (set 4)", + "m4trg__d", "Turbo Reel Gambler (Avantime?) (MPU4) (set 5)", + "m4trg__e", "Turbo Reel Gambler (Avantime?) (MPU4) (set 6)", + "m4trg__f", "Turbo Reel Gambler (Avantime?) (MPU4) (set 7)", + "m4trg__g", "Turbo Reel Gambler (Avantime?) (MPU4) (set 8)", + "m4trg__h", "Turbo Reel Gambler (Avantime?) (MPU4) (set 9)", + "m4trg__i", "Turbo Reel Gambler (Avantime?) (MPU4) (set 10)", + "m4trg__j", "Turbo Reel Gambler (Avantime?) (MPU4) (set 11)", + "m4trg__k", "Turbo Reel Gambler (Avantime?) (MPU4) (set 12)", + "m4trg__l", "Turbo Reel Gambler (Avantime?) (MPU4) (set 13)", + "m4trg__m", "Turbo Reel Gambler (Avantime?) (MPU4) (set 14)", + "m4trg__n", "Turbo Reel Gambler (Avantime?) (MPU4) (set 15)", + "m4trg__o", "Turbo Reel Gambler (Avantime?) (MPU4) (set 16)", + "m4trg__p", "Turbo Reel Gambler (Avantime?) (MPU4) (set 17)", + "m4trg__q", "Turbo Reel Gambler (Avantime?) (MPU4) (set 18)", + "m4trg__r", "Turbo Reel Gambler (Avantime?) (MPU4) (set 19)", + "m4trg__s", "Turbo Reel Gambler (Avantime?) (MPU4) (set 20)", + "m4trg__t", "Turbo Reel Gambler (Avantime?) (MPU4) (set 21)", + "m4trg__u", "Turbo Reel Gambler (Avantime?) (MPU4) (set 22)", + "m4trg__v", "Turbo Reel Gambler (Avantime?) (MPU4) (set 23)", + "m4trg__w", "Turbo Reel Gambler (Avantime?) (MPU4) (set 24)", + "m4trg__x", "Turbo Reel Gambler (Avantime?) (MPU4) (set 25)", + "m4trg__y", "Turbo Reel Gambler (Avantime?) (MPU4) (set 26)", + "m4trg__z", "Turbo Reel Gambler (Avantime?) (MPU4) (set 27)", + "m4tribnk", "Triple Bank (Barcrest) (Dutch) (MPU4)", + "m4tricol", "Tricolor (Barcrest) (Dutch) (MPU4)", + "m4tridic", "Triple Dice (Barcrest) (Dutch) (MPU4)", + "m4trimad", "Triple Madness (Union) (MPU4)", + "m4tropcl", "Tropicana Club (Barcrest) (MPU4) (set 1)", + "m4tropcla", "Tropicana Club (Barcrest) (MPU4) (set 2)", + "m4tropclb", "Tropicana Club (Barcrest) (MPU4) (set 3)", + "m4tropclc", "Tropicana Club (Barcrest) (MPU4) (set 4)", + "m4tropcld", "Tropicana Club (Barcrest) (MPU4) (set 5)", + "m4tst", "MPU4 Unit Test (Program 4)", + "m4tst2", "MPU4 Unit Test (Program 2)", + "m4ttak", "Tic Tac Take (unknown) (MPU4)", + "m4ttdia", "Ten Ten Do It Again (Barcrest) (MPU4) (set 1)", + "m4ttdia__a", "Ten Ten Do It Again (Barcrest) (MPU4) (set 2)", + "m4ttdia__b", "Ten Ten Do It Again (Barcrest) (MPU4) (set 3)", + "m4ttdia__c", "Ten Ten Do It Again (Barcrest) (MPU4) (set 4)", + "m4ttdia__d", "Ten Ten Do It Again (Barcrest) (MPU4) (set 5)", + "m4ttdia__e", "Ten Ten Do It Again (Barcrest) (MPU4) (set 6)", + "m4ttdia__f", "Ten Ten Do It Again (Barcrest) (MPU4) (set 7)", + "m4ttdia__g", "Ten Ten Do It Again (Barcrest) (MPU4) (set 8)", + "m4ttdia__h", "Ten Ten Do It Again (Barcrest) (MPU4) (set 9)", + "m4ttdia__i", "Ten Ten Do It Again (Barcrest) (MPU4) (set 10)", + "m4ttdia__j", "Ten Ten Do It Again (Barcrest) (MPU4) (set 11)", + "m4ttdia__k", "Ten Ten Do It Again (Barcrest) (MPU4) (set 12)", + "m4ttdia__l", "Ten Ten Do It Again (Barcrest) (MPU4) (set 13)", + "m4ttdia__m", "Ten Ten Do It Again (Barcrest) (MPU4) (set 14)", + "m4ttrail", "Treasure Trail (Empire) (MPU4, set 1)", + "m4ttraila", "Treasure Trail (Empire) (MPU4, set 2)", + "m4ttrailb", "Treasure Trail (Empire) (MPU4, set 3)", + "m4tupen", "Tuppenny Cracker (Barcrest - Bootleg) (MPU4)", + "m4tutcl", "Tutti Fruity Classic (Barcrest) (MPU4) (set 1)", + "m4tutcl__a", "Tutti Fruity Classic (Barcrest) (MPU4) (set 2)", + "m4tutcl__b", "Tutti Fruity Classic (Barcrest) (MPU4) (set 3)", + "m4tutcl__c", "Tutti Fruity Classic (Barcrest) (MPU4) (set 4)", + "m4tutcl__d", "Tutti Fruity Classic (Barcrest) (MPU4) (set 5)", + "m4tutcl__e", "Tutti Fruity Classic (Barcrest) (MPU4) (set 6)", + "m4tutcl__f", "Tutti Fruity Classic (Barcrest) (MPU4) (set 7)", + "m4tutcl__g", "Tutti Fruity Classic (Barcrest) (MPU4) (set 8)", + "m4tutcl__h", "Tutti Fruity Classic (Barcrest) (MPU4) (set 9)", + "m4tutcl__i", "Tutti Fruity Classic (Barcrest) (MPU4) (set 10)", + "m4tutcl__j", "Tutti Fruity Classic (Barcrest) (MPU4) (set 11)", + "m4tutcl__k", "Tutti Fruity Classic (Barcrest) (MPU4) (set 12)", + "m4tutfrt", "Tutti Fruity (Barcrest) (MPU4) (set 1)", + "m4tutfrt__0", "Tutti Fruity (Barcrest) (MPU4) (set 28)", + "m4tutfrt__1", "Tutti Fruity (Barcrest) (MPU4) (set 29)", + "m4tutfrt__2", "Tutti Fruity (Barcrest) (MPU4) (set 30)", + "m4tutfrt__3", "Tutti Fruity (Barcrest) (MPU4) (set 31)", + "m4tutfrt__4", "Tutti Fruity (Barcrest) (MPU4) (set 32)", + "m4tutfrt__5", "Tutti Fruity (Barcrest) (MPU4) (set 33)", + "m4tutfrt__6", "Tutti Fruity (Barcrest) (MPU4) (set 34)", + "m4tutfrt__7", "Tutti Fruity (Barcrest) (MPU4) (set 35)", + "m4tutfrt__8", "Tutti Fruity (Barcrest) (MPU4) (set 36)", + "m4tutfrt__9", "Tutti Fruity (Barcrest) (MPU4) (set 37)", + "m4tutfrt__a", "Tutti Fruity (Barcrest) (MPU4) (set 2)", + "m4tutfrt__a0", "Tutti Fruity (Barcrest) (MPU4) (set 64)", + "m4tutfrt__a1", "Tutti Fruity (Barcrest) (MPU4) (set 65)", + "m4tutfrt__a2", "Tutti Fruity (Barcrest) (MPU4) (set 66)", + "m4tutfrt__a3", "Tutti Fruity (Barcrest) (MPU4) (set 67)", + "m4tutfrt__a4", "Tutti Fruity (Barcrest) (MPU4) (set 68)", + "m4tutfrt__a5", "Tutti Fruity (Barcrest) (MPU4) (set 69)", + "m4tutfrt__aa", "Tutti Fruity (Barcrest) (MPU4) (set 38)", + "m4tutfrt__ab", "Tutti Fruity (Barcrest) (MPU4) (set 39)", + "m4tutfrt__ac", "Tutti Fruity (Barcrest) (MPU4) (set 40)", + "m4tutfrt__ad", "Tutti Fruity (Barcrest) (MPU4) (set 41)", + "m4tutfrt__ae", "Tutti Fruity (Barcrest) (MPU4) (set 42)", + "m4tutfrt__af", "Tutti Fruity (Barcrest) (MPU4) (set 43)", + "m4tutfrt__ag", "Tutti Fruity (Barcrest) (MPU4) (set 44)", + "m4tutfrt__ai", "Tutti Fruity (Barcrest) (MPU4) (set 46)", + "m4tutfrt__aj", "Tutti Fruity (Barcrest) (MPU4) (set 47)", + "m4tutfrt__ak", "Tutti Fruity (Barcrest) (MPU4) (set 48)", + "m4tutfrt__al", "Tutti Fruity (Barcrest) (MPU4) (set 49)", + "m4tutfrt__am", "Tutti Fruity (Barcrest) (MPU4) (set 50)", + "m4tutfrt__an", "Tutti Fruity (Barcrest) (MPU4) (set 51)", + "m4tutfrt__ao", "Tutti Fruity (Barcrest) (MPU4) (set 52)", + "m4tutfrt__ap", "Tutti Fruity (Barcrest) (MPU4) (set 53)", + "m4tutfrt__aq", "Tutti Fruity (Barcrest) (MPU4) (set 54)", + "m4tutfrt__ar", "Tutti Fruity (Barcrest) (MPU4) (set 55)", + "m4tutfrt__as", "Tutti Fruity (Barcrest) (MPU4) (set 56)", + "m4tutfrt__at", "Tutti Fruity (Barcrest) (MPU4) (set 57)", + "m4tutfrt__au", "Tutti Fruity (Barcrest) (MPU4) (set 58)", + "m4tutfrt__av", "Tutti Fruity (Barcrest) (MPU4) (set 59)", + "m4tutfrt__aw", "Tutti Fruity (Barcrest) (MPU4) (set 60)", + "m4tutfrt__ax", "Tutti Fruity (Barcrest) (MPU4) (set 61)", + "m4tutfrt__ay", "Tutti Fruity (Barcrest) (MPU4) (set 62)", + "m4tutfrt__az", "Tutti Fruity (Barcrest) (MPU4) (set 63)", + "m4tutfrt__b", "Tutti Fruity (Barcrest) (MPU4) (set 3)", + "m4tutfrt__c", "Tutti Fruity (Barcrest) (MPU4) (set 4)", + "m4tutfrt__d", "Tutti Fruity (Barcrest) (MPU4) (set 5)", + "m4tutfrt__e", "Tutti Fruity (Barcrest) (MPU4) (set 6)", + "m4tutfrt__f", "Tutti Fruity (Barcrest) (MPU4) (set 7)", + "m4tutfrt__g", "Tutti Fruity (Barcrest) (MPU4) (set 8)", + "m4tutfrt__h", "Tutti Fruity (Barcrest) (MPU4) (set 9)", + "m4tutfrt__i", "Tutti Fruity (Barcrest) (MPU4) (set 10)", + "m4tutfrt__j", "Tutti Fruity (Barcrest) (MPU4) (set 11)", + "m4tutfrt__k", "Tutti Fruity (Barcrest) (MPU4) (set 12)", + "m4tutfrt__l", "Tutti Fruity (Barcrest) (MPU4) (set 13)", + "m4tutfrt__m", "Tutti Fruity (Barcrest) (MPU4) (set 14)", + "m4tutfrt__n", "Tutti Fruity (Barcrest) (MPU4) (set 15)", + "m4tutfrt__o", "Tutti Fruity (Barcrest) (MPU4) (set 16)", + "m4tutfrt__p", "Tutti Fruity (Barcrest) (MPU4) (set 17)", + "m4tutfrt__q", "Tutti Fruity (Barcrest) (MPU4) (set 18)", + "m4tutfrt__r", "Tutti Fruity (Barcrest) (MPU4) (set 19)", + "m4tutfrt__s", "Tutti Fruity (Barcrest) (MPU4) (set 20)", + "m4tutfrt__t", "Tutti Fruity (Barcrest) (MPU4) (set 21)", + "m4tutfrt__u", "Tutti Fruity (Barcrest) (MPU4) (set 22)", + "m4tutfrt__v", "Tutti Fruity (Barcrest) (MPU4) (set 23)", + "m4tutfrt__w", "Tutti Fruity (Barcrest) (MPU4) (set 24)", + "m4tutfrt__x", "Tutti Fruity (Barcrest) (MPU4) (set 25)", + "m4tutfrt__y", "Tutti Fruity (Barcrest) (MPU4) (set 26)", + "m4tutfrt__z", "Tutti Fruity (Barcrest) (MPU4) (set 27)", + "m4twilgt", "Twilight (Barcrest) (Dutch) (MPU4)", + "m4twintm", "Twin Timer (Barcrest) (MPU4) (D2T 1.1)", + "m4twist", "Twist Again (Barcrest) (MPU4) (set 1)", + "m4twista", "Twist Again (Barcrest) (MPU4) (set 2)", + "m4twistb", "Twist Again (Barcrest) (MPU4) (set 3)", + "m4twstcl", "Twister Club (Crystal) (MPU4) (set 1)", + "m4twstcla", "Twister Club (Crystal) (MPU4) (set 2)", + "m4twstclb", "Twister Club (Crystal) (MPU4) (set 3)", + "m4twstr", "Twister (Crystal) (MPU4) (set 1)", + "m4twstra", "Twister (Crystal) (MPU4) (set 2)", + "m4twstrb", "Twister (Crystal) (MPU4) (set 3)", + "m4twstrc", "Twister (Crystal) (MPU4) (set 4)", + "m4twstrd", "Twister (Crystal) (MPU4) (set 5)", + "m4tylb", "Thank Your Lucky Bars (Crystal) (MPU4) (set 1)", + "m4tylba", "Thank Your Lucky Bars (Crystal) (MPU4) (set 2)", + "m4typcl", "Take Your Pick Club (Barcrest) (MPU4) (set 1)", + "m4typcl__a", "Take Your Pick Club (Barcrest) (MPU4) (set 2)", + "m4typcl__b", "Take Your Pick Club (Barcrest) (MPU4) (set 3)", + "m4typcl__c", "Take Your Pick Club (Barcrest) (MPU4) (set 4)", + "m4typcl__d", "Take Your Pick Club (Barcrest) (MPU4) (set 5)", + "m4unibox", "Unibox (Union) (MPU4, set 1)", + "m4uniboxa", "Unibox (Union) (MPU4, set 2)", + "m4unique", "Unique (Union) (MPU4, set 1)", + "m4uniquep", "Unique (Union) (MPU4, set 2)", + "m4univ", "Universe (Barcrest) (Dutch) (MPU4) (DUN)", + "m4unkjok", "unknown MPU4 'Joker' (MPU4?) (set 1)", + "m4unkjoka", "unknown MPU4 'Joker' (MPU4?) (set 2)", + "m4unkjokb", "unknown MPU4 'Joker' (MPU4?) (set 3)", + "m4unkjokc", "unknown MPU4 'Joker' (MPU4?) (set 4)", + "m4uuaw", "Up Up and Away (Barcrest) (MPU4) (set 1)", + "m4uuaw__0", "Up Up and Away (Barcrest) (MPU4) (set 28)", + "m4uuaw__1", "Up Up and Away (Barcrest) (MPU4) (set 29)", + "m4uuaw__2", "Up Up and Away (Barcrest) (MPU4) (set 30)", + "m4uuaw__3", "Up Up and Away (Barcrest) (MPU4) (set 31)", + "m4uuaw__4", "Up Up and Away (Barcrest) (MPU4) (set 32)", + "m4uuaw__5", "Up Up and Away (Barcrest) (MPU4) (set 33)", + "m4uuaw__6", "Up Up and Away (Barcrest) (MPU4) (set 34)", + "m4uuaw__7", "Up Up and Away (Barcrest) (MPU4) (set 35)", + "m4uuaw__8", "Up Up and Away (Barcrest) (MPU4) (set 36)", + "m4uuaw__9", "Up Up and Away (Barcrest) (MPU4) (set 37)", + "m4uuaw__a", "Up Up and Away (Barcrest) (MPU4) (set 2)", + "m4uuaw__aa", "Up Up and Away (Barcrest) (MPU4) (set 38)", + "m4uuaw__ab", "Up Up and Away (Barcrest) (MPU4) (set 39)", + "m4uuaw__ac", "Up Up and Away (Barcrest) (MPU4) (set 40)", + "m4uuaw__ad", "Up Up and Away (Barcrest) (MPU4) (set 41)", + "m4uuaw__ae", "Up Up and Away (Barcrest) (MPU4) (set 42)", + "m4uuaw__af", "Up Up and Away (Barcrest) (MPU4) (set 43)", + "m4uuaw__ag", "Up Up and Away (Barcrest) (MPU4) (set 44)", + "m4uuaw__ah", "Up Up and Away (Barcrest) (MPU4) (set 45)", + "m4uuaw__ai", "Up Up and Away (Barcrest) (MPU4) (set 46)", + "m4uuaw__aj", "Up Up and Away (Barcrest) (MPU4) (set 47)", + "m4uuaw__ak", "Up Up and Away (Barcrest) (MPU4) (set 48)", + "m4uuaw__al", "Up Up and Away (Barcrest) (MPU4) (set 49)", + "m4uuaw__am", "Up Up and Away (Barcrest) (MPU4) (set 50)", + "m4uuaw__an", "Up Up and Away (Barcrest) (MPU4) (set 51)", + "m4uuaw__ao", "Up Up and Away (Barcrest) (MPU4) (set 52)", + "m4uuaw__ap", "Up Up and Away (Barcrest) (MPU4) (set 53)", + "m4uuaw__aq", "Up Up and Away (Barcrest) (MPU4) (set 54)", + "m4uuaw__b", "Up Up and Away (Barcrest) (MPU4) (set 3)", + "m4uuaw__c", "Up Up and Away (Barcrest) (MPU4) (set 4)", + "m4uuaw__d", "Up Up and Away (Barcrest) (MPU4) (set 5)", + "m4uuaw__e", "Up Up and Away (Barcrest) (MPU4) (set 6)", + "m4uuaw__f", "Up Up and Away (Barcrest) (MPU4) (set 7)", + "m4uuaw__g", "Up Up and Away (Barcrest) (MPU4) (set 8)", + "m4uuaw__h", "Up Up and Away (Barcrest) (MPU4) (set 9)", + "m4uuaw__i", "Up Up and Away (Barcrest) (MPU4) (set 10)", + "m4uuaw__j", "Up Up and Away (Barcrest) (MPU4) (set 11)", + "m4uuaw__k", "Up Up and Away (Barcrest) (MPU4) (set 12)", + "m4uuaw__l", "Up Up and Away (Barcrest) (MPU4) (set 13)", + "m4uuaw__m", "Up Up and Away (Barcrest) (MPU4) (set 14)", + "m4uuaw__n", "Up Up and Away (Barcrest) (MPU4) (set 15)", + "m4uuaw__o", "Up Up and Away (Barcrest) (MPU4) (set 16)", + "m4uuaw__p", "Up Up and Away (Barcrest) (MPU4) (set 17)", + "m4uuaw__q", "Up Up and Away (Barcrest) (MPU4) (set 18)", + "m4uuaw__r", "Up Up and Away (Barcrest) (MPU4) (set 19)", + "m4uuaw__s", "Up Up and Away (Barcrest) (MPU4) (set 20)", + "m4uuaw__t", "Up Up and Away (Barcrest) (MPU4) (set 21)", + "m4uuaw__u", "Up Up and Away (Barcrest) (MPU4) (set 22)", + "m4uuaw__v", "Up Up and Away (Barcrest) (MPU4) (set 23)", + "m4uuaw__w", "Up Up and Away (Barcrest) (MPU4) (set 24)", + "m4uuaw__x", "Up Up and Away (Barcrest) (MPU4) (set 25)", + "m4uuaw__y", "Up Up and Away (Barcrest) (MPU4) (set 26)", + "m4uuaw__z", "Up Up and Away (Barcrest) (MPU4) (set 27)", + "m4vdexpr", "Voodoo Express (Bwb) (MPU4) (set 1)", + "m4vdexpr__a", "Voodoo Express (Bwb) (MPU4) (set 2)", + "m4vdexpr__b", "Voodoo Express (Bwb) (MPU4) (set 3)", + "m4vdexpr__c", "Voodoo Express (Bwb) (MPU4) (set 4)", + "m4vdexpr__d", "Voodoo Express (Bwb) (MPU4) (set 5)", + "m4vegast", "Vegas Strip (Barcrest) (MPU4) (set 1)", + "m4vegast__a", "Vegas Strip (Barcrest) (MPU4) (set 2)", + "m4vegast__b", "Vegas Strip (Barcrest) (MPU4) (set 3)", + "m4vegast__c", "Vegas Strip (Barcrest) (MPU4) (set 4)", + "m4vegast__d", "Vegas Strip (Barcrest) (MPU4) (set 5)", + "m4vegast__e", "Vegas Strip (Barcrest) (MPU4) (set 6)", + "m4vegast__f", "Vegas Strip (Barcrest) (MPU4) (set 7)", + "m4vegast__g", "Vegas Strip (Barcrest) (MPU4) (set 8)", + "m4vegast__h", "Vegas Strip (Barcrest) (MPU4) (set 9)", + "m4vegast__i", "Vegas Strip (Barcrest) (MPU4) (set 10)", + "m4vegast__j", "Vegas Strip (Barcrest) (MPU4) (set 11)", + "m4vegast__k", "Vegas Strip (Barcrest) (MPU4) (set 12)", + "m4vegast__l", "Vegas Strip (Barcrest) (MPU4) (set 13)", + "m4vegast__m", "Vegas Strip (Barcrest) (MPU4) (set 14)", + "m4vegast__n", "Vegas Strip (Barcrest) (MPU4) (set 15)", + "m4vegast__o", "Vegas Strip (Barcrest) (MPU4) (set 16)", + "m4vegast__p", "Vegas Strip (Barcrest) (MPU4) (set 17)", + "m4vegast__q", "Vegas Strip (Barcrest) (MPU4) (set 18)", + "m4vegast__r", "Vegas Strip (Barcrest) (MPU4) (set 19)", + "m4vegast__s", "Vegas Strip (Barcrest) (MPU4) (set 20)", + "m4vegast__t", "Vegas Strip (Barcrest) (MPU4) (set 21)", + "m4vegast__u", "Vegas Strip (Barcrest) (MPU4) (set 22)", + "m4vegast__v", "Vegas Strip (Barcrest) (MPU4) (set 23)", + "m4vegast__w", "Vegas Strip (Barcrest) (MPU4) (set 24)", + "m4vegast__x", "Vegas Strip (Barcrest) (MPU4) (set 25)", + "m4vegastg", "Vegas Strip (Barcrest) [German] (MPU4)", + "m4vfm", "Value For Money (Global) (MPU4)", + "m4vivaes", "Viva Espana (Barcrest) (MPU4) (set 1)", + "m4vivaes__0", "Viva Espana (Barcrest) (MPU4) (set 28)", + "m4vivaes__1", "Viva Espana (Barcrest) (MPU4) (set 29)", + "m4vivaes__2", "Viva Espana (Barcrest) (MPU4) (set 30)", + "m4vivaes__3", "Viva Espana (Barcrest) (MPU4) (set 31)", + "m4vivaes__4", "Viva Espana (Barcrest) (MPU4) (set 32)", + "m4vivaes__5", "Viva Espana (Barcrest) (MPU4) (set 33)", + "m4vivaes__6", "Viva Espana (Barcrest) (MPU4) (set 34)", + "m4vivaes__7", "Viva Espana (Barcrest) (MPU4) (set 35)", + "m4vivaes__8", "Viva Espana (Barcrest) (MPU4) (set 36)", + "m4vivaes__9", "Viva Espana (Barcrest) (MPU4) (set 37)", + "m4vivaes__a", "Viva Espana (Barcrest) (MPU4) (set 2)", + "m4vivaes__aa", "Viva Espana (Barcrest) (MPU4) (set 38)", + "m4vivaes__ab", "Viva Espana (Barcrest) (MPU4) (set 39)", + "m4vivaes__ac", "Viva Espana (Barcrest) (MPU4) (set 40)", + "m4vivaes__ad", "Viva Espana (Barcrest) (MPU4) (set 41)", + "m4vivaes__ae", "Viva Espana (Barcrest) (MPU4) (set 42)", + "m4vivaes__af", "Viva Espana (Barcrest) (MPU4) (set 43)", + "m4vivaes__ag", "Viva Espana (Barcrest) (MPU4) (set 44)", + "m4vivaes__ah", "Viva Espana (Barcrest) (MPU4) (set 45)", + "m4vivaes__ai", "Viva Espana (Barcrest) (MPU4) (set 46)", + "m4vivaes__aj", "Viva Espana (Barcrest) (MPU4) (set 47)", + "m4vivaes__ak", "Viva Espana (Barcrest) (MPU4) (set 48)", + "m4vivaes__al", "Viva Espana (Barcrest) (MPU4) (set 49)", + "m4vivaes__am", "Viva Espana (Barcrest) (MPU4) (set 50)", + "m4vivaes__an", "Viva Espana (Barcrest) (MPU4) (set 51)", + "m4vivaes__ao", "Viva Espana (Barcrest) (MPU4) (set 52)", + "m4vivaes__ap", "Viva Espana (Barcrest) (MPU4) (set 53)", + "m4vivaes__b", "Viva Espana (Barcrest) (MPU4) (set 3)", + "m4vivaes__c", "Viva Espana (Barcrest) (MPU4) (set 4)", + "m4vivaes__d", "Viva Espana (Barcrest) (MPU4) (set 5)", + "m4vivaes__e", "Viva Espana (Barcrest) (MPU4) (set 6)", + "m4vivaes__f", "Viva Espana (Barcrest) (MPU4) (set 7)", + "m4vivaes__g", "Viva Espana (Barcrest) (MPU4) (set 8)", + "m4vivaes__h", "Viva Espana (Barcrest) (MPU4) (set 9)", + "m4vivaes__i", "Viva Espana (Barcrest) (MPU4) (set 10)", + "m4vivaes__j", "Viva Espana (Barcrest) (MPU4) (set 11)", + "m4vivaes__k", "Viva Espana (Barcrest) (MPU4) (set 12)", + "m4vivaes__l", "Viva Espana (Barcrest) (MPU4) (set 13)", + "m4vivaes__m", "Viva Espana (Barcrest) (MPU4) (set 14)", + "m4vivaes__n", "Viva Espana (Barcrest) (MPU4) (set 15)", + "m4vivaes__o", "Viva Espana (Barcrest) (MPU4) (set 16)", + "m4vivaes__p", "Viva Espana (Barcrest) (MPU4) (set 17)", + "m4vivaes__q", "Viva Espana (Barcrest) (MPU4) (set 18)", + "m4vivaes__r", "Viva Espana (Barcrest) (MPU4) (set 19)", + "m4vivaes__s", "Viva Espana (Barcrest) (MPU4) (set 20)", + "m4vivaes__t", "Viva Espana (Barcrest) (MPU4) (set 21)", + "m4vivaes__u", "Viva Espana (Barcrest) (MPU4) (set 22)", + "m4vivaes__v", "Viva Espana (Barcrest) (MPU4) (set 23)", + "m4vivaes__w", "Viva Espana (Barcrest) (MPU4) (set 24)", + "m4vivaes__x", "Viva Espana (Barcrest) (MPU4) (set 25)", + "m4vivaes__y", "Viva Espana (Barcrest) (MPU4) (set 26)", + "m4vivaes__z", "Viva Espana (Barcrest) (MPU4) (set 27)", + "m4vivalv", "Viva Las Vegas (Barcrest) (MPU4) (set 1)", + "m4vivalv__0", "Viva Las Vegas (Barcrest) (MPU4) (set 28)", + "m4vivalv__1", "Viva Las Vegas (Barcrest) (MPU4) (set 29)", + "m4vivalv__2", "Viva Las Vegas (Barcrest) (MPU4) (set 30)", + "m4vivalv__3", "Viva Las Vegas (Barcrest) (MPU4) (set 31)", + "m4vivalv__4", "Viva Las Vegas (Barcrest) (MPU4) (set 32)", + "m4vivalv__5", "Viva Las Vegas (Barcrest) (MPU4) (set 33)", + "m4vivalv__6", "Viva Las Vegas (Barcrest) (MPU4) (set 34)", + "m4vivalv__7", "Viva Las Vegas (Barcrest) (MPU4) (set 35)", + "m4vivalv__8", "Viva Las Vegas (Barcrest) (MPU4) (set 36)", + "m4vivalv__a", "Viva Las Vegas (Barcrest) (MPU4) (set 2)", + "m4vivalv__b", "Viva Las Vegas (Barcrest) (MPU4) (set 3)", + "m4vivalv__c", "Viva Las Vegas (Barcrest) (MPU4) (set 4)", + "m4vivalv__e", "Viva Las Vegas (Barcrest) (MPU4) (set 6)", + "m4vivalv__f", "Viva Las Vegas (Barcrest) (MPU4) (set 7)", + "m4vivalv__g", "Viva Las Vegas (Barcrest) (MPU4) (set 8)", + "m4vivalv__h", "Viva Las Vegas (Barcrest) (MPU4) (set 9)", + "m4vivalv__i", "Viva Las Vegas (Barcrest) (MPU4) (set 10)", + "m4vivalv__j", "Viva Las Vegas (Barcrest) (MPU4) (set 11)", + "m4vivalv__k", "Viva Las Vegas (Barcrest) (MPU4) (set 12)", + "m4vivalv__l", "Viva Las Vegas (Barcrest) (MPU4) (set 13)", + "m4vivalv__m", "Viva Las Vegas (Barcrest) (MPU4) (set 14)", + "m4vivalv__n", "Viva Las Vegas (Barcrest) (MPU4) (set 15)", + "m4vivalv__o", "Viva Las Vegas (Barcrest) (MPU4) (set 16)", + "m4vivalv__p", "Viva Las Vegas (Barcrest) (MPU4) (set 17)", + "m4vivalv__q", "Viva Las Vegas (Barcrest) (MPU4) (set 18)", + "m4vivalv__r", "Viva Las Vegas (Barcrest) (MPU4) (set 19)", + "m4vivalv__s", "Viva Las Vegas (Barcrest) (MPU4) (set 20)", + "m4vivalv__t", "Viva Las Vegas (Barcrest) (MPU4) (set 21)", + "m4vivalv__u", "Viva Las Vegas (Barcrest) (MPU4) (set 22)", + "m4vivalv__v", "Viva Las Vegas (Barcrest) (MPU4) (set 23)", + "m4vivalv__w", "Viva Las Vegas (Barcrest) (MPU4) (set 24)", + "m4vivalv__x", "Viva Las Vegas (Barcrest) (MPU4) (set 25)", + "m4vivalv__y", "Viva Las Vegas (Barcrest) (MPU4) (set 26)", + "m4vivalv__z", "Viva Las Vegas (Barcrest) (MPU4) (set 27)", + "m4vivalvd", "Viva Las Vegas (Barcrest) [Dutch] (MPU4) (DLV)", + "m4vivan", "Viva Las Vegas (Nova) (MPU4)", + "m4vivess", "Viva Espana Showcase (Barcrest) (MPU4) (set 1)", + "m4vivess__a", "Viva Espana Showcase (Barcrest) (MPU4) (set 2)", + "m4vivess__b", "Viva Espana Showcase (Barcrest) (MPU4) (set 3)", + "m4vivess__c", "Viva Espana Showcase (Barcrest) (MPU4) (set 4)", + "m4vivess__d", "Viva Espana Showcase (Barcrest) (MPU4) (set 5)", + "m4vivess__f", "Viva Espana Showcase (Barcrest) (MPU4) (set 6)", + "m4vivess__g", "Viva Espana Showcase (Barcrest) (MPU4) (set 7)", + "m4vivess__i", "Viva Espana Showcase (Barcrest) (MPU4) (set 8)", + "m4vivess__j", "Viva Espana Showcase (Barcrest) (MPU4) (set 9)", + "m4vivess__k", "Viva Espana Showcase (Barcrest) (MPU4) (set 10)", + "m4vivess__l", "Viva Espana Showcase (Barcrest) (MPU4) (set 11)", + "m4vivess__m", "Viva Espana Showcase (Barcrest) (MPU4) (set 12)", + "m4vivess__n", "Viva Espana Showcase (Barcrest) (MPU4) (set 13)", + "m4vivess__o", "Viva Espana Showcase (Barcrest) (MPU4) (set 14)", + "m4vivess__p", "Viva Espana Showcase (Barcrest) (MPU4) (set 15)", + "m4viz", "Viz (Barcrest) (MPU4) (set 1)", + "m4viz__a", "Viz (Barcrest) (MPU4) (set 2)", + "m4viz__b", "Viz (Barcrest) (MPU4) (set 3)", + "m4viz__c", "Viz (Barcrest) (MPU4) (set 4)", + "m4viz__d", "Viz (Barcrest) (MPU4) (set 5)", + "m4viz__e", "Viz (Barcrest) (MPU4) (set 6)", + "m4viz__f", "Viz (Barcrest) (MPU4) (set 7)", + "m4viz__g", "Viz (Barcrest) (MPU4) (set 8)", + "m4viz__h", "Viz (Barcrest) (MPU4) (set 9)", + "m4viz__i", "Viz (Barcrest) (MPU4) (set 10)", + "m4viz__j", "Viz (Barcrest) (MPU4) (set 11)", + "m4viz__k", "Viz (Barcrest) (MPU4) (set 12)", + "m4viz__l", "Viz (Barcrest) (MPU4) (set 13)", + "m4viz__m", "Viz (Barcrest) (MPU4) (set 14)", + "m4viz__n", "Viz (Barcrest) (MPU4) (set 15)", + "m4viz__o", "Viz (Barcrest) (MPU4) (set 16)", + "m4viz__p", "Viz (Barcrest) (MPU4) (set 17)", + "m4viz__q", "Viz (Barcrest) (MPU4) (set 18)", + "m4viz__r", "Viz (Barcrest) (MPU4) (set 19)", + "m4viz__s", "Viz (Barcrest) (MPU4) (set 20)", + "m4viz__t", "Viz (Barcrest) (MPU4) (set 21)", + "m4viz__u", "Viz (Barcrest) (MPU4) (set 22)", + "m4viz__v", "Viz (Barcrest) (MPU4) (set 23)", + "m4viz__w", "Viz (Barcrest) (MPU4) (set 24)", + "m4volcan", "Volcano (Bwb) (MPU4) (set 1)", + "m4volcan__a", "Volcano (Bwb) (MPU4) (set 2)", + "m4volcan__b", "Volcano (Bwb) (MPU4) (set 3)", + "m4volcan__c", "Volcano (Bwb) (MPU4) (set 4)", + "m4volcan__d", "Volcano (Bwb) (MPU4) (set 5)", + "m4volcan__e", "Volcano (Bwb) (MPU4) (set 6)", + "m4volcan__f", "Volcano (Bwb) (MPU4) (set 7)", + "m4volcan__g", "Volcano (Bwb) (MPU4) (set 8)", + "m4voodoo", "Voodoo 1000 (Barcrest) (Dutch) (MPU4) (DDO 3.2)", + "m4wayin", "Way In (Barcrest) (MPU4) (set 1)", + "m4wayina", "Way In (Barcrest) (MPU4) (set 2)", + "m4wcnov", "World Cup (Nova) (MPU4)", + "m4wife", "Money Or Yer Wife (Gemini) (MPU4)", + "m4wildms", "Wild Mystery (Barcrest) (Dutch) (MPU4)", + "m4wildtm", "Wild Timer (Barcrest) (Dutch) (MPU4) (DWT 1.3)", + "m4wnud", "unknown MPU4 'W Nudge' (MPU4?)", + "m4wta", "Winner Takes All (Barcrest) (MPU4) (set 1)", + "m4wta__0", "Winner Takes All (Barcrest) (MPU4) (set 28)", + "m4wta__1", "Winner Takes All (Barcrest) (MPU4) (set 29)", + "m4wta__2", "Winner Takes All (Barcrest) (MPU4) (set 30)", + "m4wta__3", "Winner Takes All (Barcrest) (MPU4) (set 31)", + "m4wta__4", "Winner Takes All (Barcrest) (MPU4) (set 32)", + "m4wta__5", "Winner Takes All (Barcrest) (MPU4) (set 33)", + "m4wta__6", "Winner Takes All (Barcrest) (MPU4) (set 34)", + "m4wta__7", "Winner Takes All (Barcrest) (MPU4) (set 35)", + "m4wta__8", "Winner Takes All (Barcrest) (MPU4) (set 36)", + "m4wta__9", "Winner Takes All (Barcrest) (MPU4) (set 37)", + "m4wta__aa", "Winner Takes All (Barcrest) (MPU4) (set 38)", + "m4wta__ab", "Winner Takes All (Barcrest) (MPU4) (set 39)", + "m4wta__ac", "Winner Takes All (Barcrest) (MPU4) (set 40)", + "m4wta__ad", "Winner Takes All (Barcrest) (MPU4) (set 41)", + "m4wta__ae", "Winner Takes All (Barcrest) (MPU4) (set 42)", + "m4wta__af", "Winner Takes All (Barcrest) (MPU4) (set 43)", + "m4wta__ag", "Winner Takes All (Barcrest) (MPU4) (set 44)", + "m4wta__b", "Winner Takes All (Barcrest) (MPU4) (set 3)", + "m4wta__d", "Winner Takes All (Barcrest) (MPU4) (set 5)", + "m4wta__e", "Winner Takes All (Barcrest) (MPU4) (set 6)", + "m4wta__f", "Winner Takes All (Barcrest) (MPU4) (set 7)", + "m4wta__g", "Winner Takes All (Barcrest) (MPU4) (set 8)", + "m4wta__h", "Winner Takes All (Barcrest) (MPU4) (set 9)", + "m4wta__i", "Winner Takes All (Barcrest) (MPU4) (set 10)", + "m4wta__j", "Winner Takes All (Barcrest) (MPU4) (set 11)", + "m4wta__k", "Winner Takes All (Barcrest) (MPU4) (set 12)", + "m4wta__l", "Winner Takes All (Barcrest) (MPU4) (set 13)", + "m4wta__m", "Winner Takes All (Barcrest) (MPU4) (set 14)", + "m4wta__n", "Winner Takes All (Barcrest) (MPU4) (set 15)", + "m4wta__o", "Winner Takes All (Barcrest) (MPU4) (set 16)", + "m4wta__p", "Winner Takes All (Barcrest) (MPU4) (set 17)", + "m4wta__q", "Winner Takes All (Barcrest) (MPU4) (set 18)", + "m4wta__r", "Winner Takes All (Barcrest) (MPU4) (set 19)", + "m4wta__s", "Winner Takes All (Barcrest) (MPU4) (set 20)", + "m4wta__t", "Winner Takes All (Barcrest) (MPU4) (set 21)", + "m4wta__u", "Winner Takes All (Barcrest) (MPU4) (set 22)", + "m4wta__v", "Winner Takes All (Barcrest) (MPU4) (set 23)", + "m4wta__w", "Winner Takes All (Barcrest) (MPU4) (set 24)", + "m4wta__x", "Winner Takes All (Barcrest) (MPU4) (set 25)", + "m4wta__y", "Winner Takes All (Barcrest) (MPU4) (set 26)", + "m4wta__z", "Winner Takes All (Barcrest) (MPU4) (set 27)", + "m4wwc", "Wacky Weekend Club (Global) (MPU4) (set 1)", + "m4wwca", "Wacky Weekend Club (Global) (MPU4) (set 2)", + "m4wwcb", "Wacky Weekend Club (Global) (MPU4) (set 3)", + "m4xch", "X-change (Bwb) (MPU4) (set 1)", + "m4xch__a", "X-change (Bwb) (MPU4) (set 2)", + "m4xch__b", "X-change (Bwb) (MPU4) (set 3)", + "m4xch__c", "X-change (Bwb) (MPU4) (set 4)", + "m4xch__d", "X-change (Bwb) (MPU4) (set 5)", + "m4xch__e", "X-change (Bwb) (MPU4) (set 6)", + "m4xch__f", "X-change (Bwb) (MPU4) (set 7)", + "m4xch__g", "X-change (Bwb) (MPU4) (set 8)", + "m4xch__h", "X-change (Bwb) (MPU4) (set 9)", + "m4xch__i", "X-change (Bwb) (MPU4) (set 10)", + "m4xch__j", "X-change (Bwb) (MPU4) (set 11)", + "m4xch__k", "X-change (Bwb) (MPU4) (set 12)", + "m4xs", "X-s (Bwb) (MPU4) (set 1)", + "m4xs__a", "X-s (Bwb) (MPU4) (set 2)", + "m4xs__b", "X-s (Bwb) (MPU4) (set 3)", + "m4xs__c", "X-s (Bwb) (MPU4) (set 4)", + "m4xs__d", "X-s (Bwb) (MPU4) (set 5)", + "m4xs__e", "X-s (Bwb) (MPU4) (set 6)", + "m4xs__f", "X-s (Bwb) (MPU4) (set 7)", + "m4xtrm", "X-treme (Bwb) (MPU4) (set 1)", + "m4xtrm__a", "X-treme (Bwb) (MPU4) (set 2)", + "m4xtrm__b", "X-treme (Bwb) (MPU4) (set 3)", + "m4zill", "Zillionare's Challenge (Pure Leisure) (MPU4) (set 1)", + "m4zilla", "Zillionare's Challenge (Pure Leisure) (MPU4) (set 2)", + "m55050", "Fifty Fifty (Bwb) (MPU5)", + "m5aceclb", "Ace Of Clubs (Empire) (MPU5, set 1)", + "m5aceclba", "Ace Of Clubs (Empire) (MPU5, set 2)", + "m5aceclbb", "Ace Of Clubs (Empire) (MPU5, set 3)", + "m5addams", "Addams Family (Barcrest) (MPU5) (v0.5, set 1)", + "m5addamsa", "Addams Family (Barcrest) (MPU5) (v0.5, set 2)", + "m5addamsb", "Addams Family (Barcrest) (MPU5) (v0.5, set 3)", + "m5addamsc", "Addams Family (Barcrest) (MPU5) (v0.5, set 4)", + "m5addamsd", "Addams Family (Barcrest) (MPU5) (v0.5, set 5)", + "m5addamse", "Addams Family (Barcrest) (MPU5) (v0.5, set 6)", + "m5addamsf", "Addams Family (Barcrest) (MPU5) (v0.5, set 7)", + "m5addamsg", "Addams Family (Barcrest) (MPU5) (v0.5, set 8)", + "m5addamsh", "Addams Family (Barcrest) (MPU5) (v0.2, set 1)", + "m5addamsi", "Addams Family (Barcrest) (MPU5) (v0.2, set 2)", + "m5addamsj", "Addams Family (Barcrest) (MPU5) (v0.2, set 3)", + "m5addamsk", "Addams Family (Barcrest) (MPU5) (v0.3, set 1)", + "m5addamsl", "Addams Family (Barcrest) (MPU5) (v0.3, set 2)", + "m5addamsm", "Addams Family (Barcrest) (MPU5) (v0.3, set 3)", + "m5addamsn", "Addams Family (Barcrest) (MPU5) (v0.3, set 4)", + "m5addamso", "Addams Family (Barcrest) (MPU5) (v0.3, set 5)", + "m5addamsp", "Addams Family (Barcrest) (MPU5) (v0.3, set 6)", + "m5addamsq", "Addams Family (Barcrest) (MPU5) (v0.3, set 7)", + "m5addamsr", "Addams Family (Barcrest) (MPU5) (v0.3, set 8)", + "m5addamss", "Addams Family (Barcrest) (MPU5) (v0.3, set 9)", + "m5addlad", "Adders & Ladders (Barcrest) (MPU5, v0.6, set 1)", + "m5addlada", "Adders & Ladders (Barcrest) (MPU5, v0.6, set 2)", + "m5addladb", "Adders & Ladders (Barcrest) (MPU5, v0.6, set 3)", + "m5addladc", "Adders & Ladders (Barcrest) (MPU5, v0.6, set 4)", + "m5addladd", "Adders & Ladders (Barcrest) (MPU5, v0.6, set 5)", + "m5addlade", "Adders & Ladders (Barcrest) (MPU5, v0.6, set 6)", + "m5addladf", "Adders & Ladders (Barcrest) (MPU5, v0.6, set 7)", + "m5addladg", "Adders & Ladders (Barcrest) (MPU5, v0.6, set 8)", + "m5addladh", "Adders & Ladders (Barcrest) (MPU5, v0.6, set 9)", + "m5addladi", "Adders & Ladders (Barcrest) (MPU5, v0.6, set 10)", + "m5addladj", "Adders & Ladders (Barcrest) (MPU5, v0.1, set 1)", + "m5addladk", "Adders & Ladders (Barcrest) (MPU5, v0.1, set 2)", + "m5addladl", "Adders & Ladders (Barcrest) (MPU5, v0.1, set 3)", + "m5addladm", "Adders & Ladders (Barcrest) (MPU5, v0.1, set 4)", + "m5addladn", "Adders & Ladders (Barcrest) (MPU5, v0.1, set 5)", + "m5addlado", "Adders & Ladders (Barcrest) (MPU5, v0.1, set 6)", + "m5addladp", "Adders & Ladders (Barcrest) (MPU5, v0.1, set 7)", + "m5addladq", "Adders & Ladders (Barcrest) (MPU5, v0.4, set 1)", + "m5addladr", "Adders & Ladders (Barcrest) (MPU5, v0.4, set 2)", + "m5addlads", "Adders & Ladders (Barcrest) (MPU5, v?.?)", + "m5all41", "All 4 One (Vivid) (MPU5, set 1)", + "m5all41a", "All 4 One (Vivid) (MPU5, set 2)", + "m5all41b", "All 4 One (Vivid) (MPU5, set 3)", + "m5all41c", "All 4 One (Vivid) (MPU5, set 4)", + "m5all41d", "All 4 One (Vivid) (MPU5, set 5)", + "m5all41e", "All 4 One (Vivid) (MPU5, set 6)", + "m5all41f", "All 4 One (Vivid) (MPU5, set 7)", + "m5all41g", "All 4 One (Vivid) (MPU5, set 8)", + "m5all41h", "All 4 One (Vivid) (MPU5, set 9)", + "m5all41i", "All 4 One (Vivid) (MPU5, set 10)", + "m5all41j", "All 4 One (Vivid) (MPU5, set 11)", + "m5all41k", "All 4 One (Vivid) (MPU5, set 12)", + "m5all41l", "All 4 One (Vivid) (MPU5, set 13)", + "m5all41low", "All 4 One (Lowen) (MPU5)", + "m5all41m", "All 4 One (Vivid) (MPU5, set 14)", + "m5arab", "Arabian Nights (Barcrest) (MPU5) (set 1)", + "m5arab03", "Arabian Nights (Barcrest) (MPU5) (set 2)", + "m5ashock", "Aftershock (Barcrest - Red Gaming) (MPU5, v1.2)", + "m5ashocka", "Aftershock (Barcrest - Red Gaming) (MPU5, v1.3)", + "m5atlan", "Atlantic (Vivid) (MPU5, v1.4)", + "m5atlana", "Atlantic (Vivid) (MPU5, v1.2)", + "m5austin", "Austin Powers (Barcrest) (MPU5) (set 1)", + "m5austin10", "Austin Powers (Barcrest) (MPU5) (set 2)", + "m5austin11", "Austin Powers (Barcrest) (MPU5) (set 3)", + "m5bankrl", "The Bank Roll (Barcrest) (MPU5)", + "m5barkng", "Barking Mad (Barcrest) (MPU5)", + "m5barmy", "Barmy Army (Barcrest) (MPU5)", + "m5barxdx", "Bar X Deluxe (Empire) (MPU5)", + "m5baxe", "Battle Axe (Barcrest) (MPU5) (set 1)", + "m5baxe04", "Battle Axe (Barcrest) (MPU5) (set 2)", + "m5bbank", "Break The Bank (Barcrest - Red Gaming) (MPU5) (set 1)", + "m5bbank13", "Break The Bank (Barcrest - Red Gaming) (MPU5) (set 2)", + "m5bbro", "Big Brother (Barcrest) (MPU5) (set 1)", + "m5bbro02", "Big Brother (Barcrest) (MPU5) (set 2)", + "m5bbrocl", "Big Brother Club (Barcrest) (MPU5)", + "m5beans", "Full Of Beans (Barcrest) (MPU5) (set 1)", + "m5beansa", "Full Of Beans (Barcrest) (MPU5) (set 2)", + "m5bigchs", "The Big Cheese (Barcrest) (MPU5) (set 1)", + "m5bigchs05", "The Big Cheese (Barcrest) (MPU5) (set 2)", + "m5biggam", "The Big Game (Barcrest) (MPU5) (set 1)", + "m5biggam11", "The Big Game (Barcrest) (MPU5) (set 2)", + "m5bigsht", "Big Shot (Barcrest - Red Gaming) (MPU5) (set 1)", + "m5bigsht04", "Big Shot (Barcrest - Red Gaming) (MPU5) (set 2)", + "m5bigsht11", "Big Shot (Barcrest - Red Gaming) (MPU5) (set 3)", + "m5bigsht13", "Big Shot (Barcrest - Red Gaming) (MPU5) (set 4)", + "m5bigshta", "Big Shot (Barcrest - Red Gaming) (MPU5) (set 5)", + "m5bling", "Bling King Crazy (Barcrest) (MPU5)", + "m5blkwht", "Black & White (Barcrest) (MPU5) (set 1)", + "m5blkwht01", "Black & White (Barcrest) (MPU5) (set 3)", + "m5blkwht11", "Black & White (Barcrest) (MPU5) (set 2)", + "m5bnkrs", "Bonkers (Barcrest - Red Gaming) (MPU5)", + "m5bnzclb", "Bonanza Club (Empire) (MPU5) (set 1)", + "m5bnzclb11", "Bonanza Club (Empire) (MPU5) (set 2)", + "m5btlbnk", "Bottle Bank (Vivid) (MPU5)", + "m5bttf", "Back To The Features (Vivid) (MPU5) (set 1)", + "m5bttfa", "Back To The Features (Vivid) (MPU5) (set 2)", + "m5bukroo", "Buckaroo (Empire) (MPU5)", + "m5bwaves", "Brain Waves (Barcrest) (MPU5) (set 1)", + "m5bwaves07", "Brain Waves (Barcrest) (MPU5) (set 2)", + "m5caesc", "Caesar's Cash (Vivid) (MPU5)", + "m5carclb", "Caribbean Club (Barcrest) (MPU5)", + "m5card", "Card Shark (Vivid) (MPU5)", + "m5carou", "Carousel (Empire) (MPU5)", + "m5carpet", "Magic Carpet (Bwb) (MPU5) (set 1)", + "m5carpet12", "Magic Carpet (Bwb) (MPU5) (set 2)", + "m5carwsh", "Car Wash (Bwb) (MPU5) (set 1)", + "m5carwsh10", "Car Wash (Bwb) (MPU5) (set 2)", + "m5casfev", "Casino Fever (Red Gaming) (MPU5) (set 1)", + "m5casfev12", "Casino Fever (Red Gaming) (MPU5) (set 2)", + "m5cashar", "Cash Arena (Barcrest) (MPU5) (set 1)", + "m5cashar04", "Cash Arena (Barcrest) (MPU5) (set 2)", + "m5cashat", "Cash Attack (Barcrest) (MPU5)", + "m5cashln", "Cash Lines (Barcrest) (MPU5)", + "m5cashrn", "Cash Run (Barcrest) (MPU5) (set 1)", + "m5cashrn01", "Cash Run (Barcrest) (MPU5) (set 2)", + "m5cashrn02", "Cash Run (Barcrest) (MPU5) (set 3)", + "m5cashrn04", "Cash Run (Barcrest) (MPU5) (set 4)", + "m5casroc", "Casino Royale Club (Empire) (MPU5)", + "m5cbrun", "Cannonball Run (Empire) (MPU5)", + "m5cbw", "Ca$h Bang Wallop (Barcrest) (MPU5) (set 1)", + "m5cbwa", "Ca$h Bang Wallop (Barcrest) (MPU5) (set 2)", + "m5centcl", "Centurion Club (Empire) (MPU5) (set 1)", + "m5centcl20", "Centurion Club (Empire) (MPU5) (set 2)", + "m5centcl21", "Centurion Club (Empire) (MPU5) (set 3)", + "m5centcl21a", "Centurion Club (Empire) (MPU5) (set 4)", + "m5centcla", "Centurion Club (Empire) (MPU5) (set 5)", + "m5circlb", "Circus Club (Bwb) (MPU5) (set 1)", + "m5circlb00", "Circus Club (Bwb) (MPU5) (set 2)", + "m5circlb15", "Circus Club (Bwb) (MPU5) (set 3)", + "m5circlb33", "Circus Club (Bwb) (MPU5) (set 4)", + "m5circus", "Circus (Bwb) (MPU5) (set 1)", + "m5circus0a", "Circus (Bwb) (MPU5) (set 2)", + "m5circus0b", "Circus (Bwb) (MPU5) (set 3)", + "m5circus11", "Circus (Bwb) (MPU5) (set 6)", + "m5circus20", "Circus (Bwb) (MPU5) (set 4)", + "m5circus21", "Circus (Bwb) (MPU5) (set 5)", + "m5clbtro", "Club Tropicana (Empire) (MPU5) (set 1)", + "m5clbtro24", "Club Tropicana (Empire) (MPU5) (set 2)", + "m5clbtro25", "Club Tropicana (Empire) (MPU5) (set 3)", + "m5clifhn", "Cliffhanger (Vivid) (MPU5)", + "m5clown", "Clown In Around (Bwb) (MPU5) (set 1)", + "m5clown11", "Clown In Around (Bwb) (MPU5) (set 2)", + "m5clown13", "Clown In Around (Bwb) (MPU5) (set 3)", + "m5clr", "MPU 5 Ram & Meter Clear (Barcrest) (MPU5)", + "m5clubsn", "Club Sandwich (Bwb) (MPU5) (set 1)", + "m5clubsn11", "Club Sandwich (Bwb) (MPU5) (set 2)", + "m5clubsn14", "Club Sandwich (Bwb) (MPU5) (set 3)", + "m5clubsn16", "Club Sandwich (Bwb) (MPU5) (set 4)", + "m5cmass", "Critical Mass (Barcrest - Red Gaming) (MPU5)", + "m5cnct4", "Connect 4 (Vivid) (MPU5) (set 1)", + "m5cnct415", "Connect 4 (Vivid) (MPU5) (set 2)", + "m5cnct420", "Connect 4 (Vivid) (MPU5) (set 3)", + "m5cockdd", "Cock A Doodle Dough! (Empire) (MPU5) (set 1)", + "m5cockdd05", "Cock A Doodle Dough! (Empire) (MPU5) (set 2)", + "m5codft", "The Codfather (Barcrest) (MPU5) (set 1)", + "m5codft02", "The Codfather (Barcrest) (MPU5) (set 2)", + "m5coloss", "Colossus Club (Empire) (MPU5)", + "m5cos", "Costa Del Cash Casino (Barcrest) (MPU5)", + "m5cosclb", "Costa Del Cash Club (Barcrest) (MPU5)", + "m5costa", "Costa Del Cash (Barcrest) (MPU5)", + "m5cpcash", "Captain Cash (Barcrest) (MPU5)", + "m5croclb", "Crocodile Rock Club (Empire) (MPU5)", + "m5crocrk", "Crocodile Rock (Empire) (MPU5) (set 1)", + "m5crocrk10", "Crocodile Rock (Empire) (MPU5) (set 2)", + "m5crsfir", "Crossfire (Empire) (MPU5)", + "m5crzkni", "Crazy Crazy Knights (Barcrest) (MPU5) (set 1)", + "m5crzkni03", "Crazy Crazy Knights (Barcrest) (MPU5) (set 2)", + "m5cshkcb", "Card Shark Club (Vivid) (MPU5) (set 1)", + "m5cshkcb12", "Card Shark Club (Vivid) (MPU5) (set 2)", + "m5cshkcb13", "Card Shark Club (Vivid) (MPU5) (set 3)", + "m5cshstx", "Cash Stax (Bwb) (MPU5)", + "m5cworan", "Clockwork Oranges (Empire) (MPU5) (set 1)", + "m5cworan12", "Clockwork Oranges (Empire) (MPU5) (set 2)", + "m5dblfun", "Double Fun (Lowen) (MPU5)", + "m5dblqts", "Double Or Quits (Bwb) (MPU5) (set 1)", + "m5dblqts1b", "Double Or Quits (Bwb) (MPU5) (set 4)", + "m5dblqtsa", "Double Or Quits (Bwb) (MPU5) (set 2)", + "m5dblqtsb", "Double Or Quits (Bwb) (MPU5) (set 3)", + "m5dbubl", "Double Bubble (Barcrest - Red Gaming) (MPU5)", + "m5devil", "Devil Of A Deal (Vivid) (MPU5)", + "m5dick", "Dick Turnip (Bwb) (MPU5) (set 1)", + "m5dick10", "Dick Turnip (Bwb) (MPU5) (set 2)", + "m5dmnf", "Diamonds Are Forever (Empire) (MPU5) (set 1)", + "m5dmnf10", "Diamonds Are Forever (Empire) (MPU5) (set 2)", + "m5dmnfcl", "Diamonds Are Forever Club (Empire) (MPU5) (set 1)", + "m5dmnfcl04", "Diamonds Are Forever Club (Empire) (MPU5) (set 2)", + "m5dmnstr", "Demon Streak (Barcrest - Red Gaming) (MPU5, set 1)", + "m5dmnstra", "Demon Streak (Barcrest - Red Gaming) (MPU5, set 2)", + "m5donna", "Donna Kebab (Bwb) (MPU5, set 1)", + "m5donnaa", "Donna Kebab (Bwb) (MPU5, set 3)", + "m5donnad", "Donna Kebab (Bwb) (MPU5, set 1, Datapak)", + "m5doshpk", "Do$h 'n' Pecks (Barcrest) (MPU5) (set 1)", + "m5doshpk05", "Do$h 'n' Pecks (Barcrest) (MPU5) (set 2)", + "m5draclb", "Ooh Aah Dracula Club (Barcrest) (MPU5) (set 1)", + "m5draclb01", "Ooh Aah Dracula Club (Barcrest) (MPU5) (set 3)", + "m5draclb07", "Ooh Aah Dracula Club (Barcrest) (MPU5) (set 2)", + "m5dragnd", "Dragon Drop (Barcrest - Red Gaming) (MPU5, set 1)", + "m5dragnda", "Dragon Drop (Barcrest - Red Gaming) (MPU5, set 2)", + "m5eggold", "Egyptian Gold (Bwb) (MPU5)", + "m5egr", "Elvis Gold Rush (Barcrest) (MPU5, set 1)", + "m5egra", "Elvis Gold Rush (Barcrest) (MPU5, set 2)", + "m5egss", "Elvis Gold Super Streak (Barcrest) (MPU5, set 1)", + "m5egssa", "Elvis Gold Super Streak (Barcrest) (MPU5, set 2)", + "m5elband", "El Bandido Club (Vivid) (MPU5)", + "m5elim", "Eliminator (Barcrest) (MPU5) (set 1)", + "m5elim03", "Eliminator (Barcrest) (MPU5) (set 2)", + "m5elim04", "Eliminator (Barcrest) (MPU5) (set 3)", + "m5evgrhr", "Elvis Gold Red Hot Roll (Barcrest) (MPU5, set 1)", + "m5evgrhra", "Elvis Gold Red Hot Roll (Barcrest) (MPU5, set 2)", + "m5ewn", "Each Way Nudge (Barcrest) (MPU5) (set 1)", + "m5ewn08", "Each Way Nudge (Barcrest) (MPU5) (set 2)", + "m5extrm", "Extreme (Empire) (MPU5)", + "m5extrmm", "Extreme Madness (Empire) (MPU5) (set 1)", + "m5extrmm04a", "Extreme Madness (Empire) (MPU5) (set 2)", + "m5extrmm04b", "Extreme Madness (Empire) (MPU5) (set 3)", + "m5extrmm10", "Extreme Madness (Empire) (MPU5) (set 4)", + "m5fair", "Fairground Attraction (Vivid) (MPU5)", + "m5fatcat", "Fat Cat (Empire) (MPU5)", + "m5fewmor", "A Few Dollars More (Empire) (MPU5) (v0.2, set 1)", + "m5fewmora", "A Few Dollars More (Empire) (MPU5) (v0.2, set 2)", + "m5fewmorb", "A Few Dollars More (Empire) (MPU5) (v0.3, set 1)", + "m5fewmorc", "A Few Dollars More (Empire) (MPU5) (v0.3, set 2)", + "m5fiddle", "On The Fiddle (Barcrest) (MPU5) (set 1)", + "m5fiddle03", "On The Fiddle (Barcrest) (MPU5) (set 2)", + "m5fire", "All Fired Up (Barcrest) (MPU5)", + "m5firebl", "Fireball (Barcrest) (MPU5)", + "m5fishcl", "Fish Full Of Dollars Club (Empire) (MPU5)", + "m5fishdl", "Fish Full Of Dollars (Empire) (MPU5) (set 1)", + "m5fishdl10", "Fish Full Of Dollars (Empire) (MPU5) (set 2)", + "m5flipcr", "Flippin Crazy (Barcrest) (MPU5)", + "m5fmonty", "The Full Monty (Empire) (MPU5) (set 1)", + "m5fmonty04a", "The Full Monty (Empire) (MPU5) (set 2)", + "m5fmonty04b", "The Full Monty (Empire) (MPU5) (set 3)", + "m5fmonty04c", "The Full Monty (Empire) (MPU5) (set 4)", + "m5fmount", "Full Mountie (Empire) (MPU5)", + "m5fnfair", "Funfair (Barcrest - Red Gaming) (MPU5)", + "m5fnfaird", "Funfair (Barcrest - Red Gaming) (MPU5) (Datapak)", + "m5fortby", "Fort Boyard (Barcrest) (MPU5) (set 1)", + "m5fortby01", "Fort Boyard (Barcrest) (MPU5) (set 2)", + "m5frnzy", "Frenzy (Barcrest) (MPU5) (set 1)", + "m5frnzya", "Frenzy (Barcrest) (MPU5) (set 2)", + "m5funsun", "Fun In The Sun (Barcrest) (MPU5) (set 1)", + "m5funsun03", "Fun In The Sun (Barcrest) (MPU5) (set 2)", + "m5fusir", "Fruits U Sir (Barcrest - Red Gaming) (MPU5) (set 1)", + "m5fusir11", "Fruits U Sir (Barcrest - Red Gaming) (MPU5) (set 2)", + "m5fusir12", "Fruits U Sir (Barcrest - Red Gaming) (MPU5) (set 3)", + "m5gdrag", "Golden Dragon (Barcrest) (MPU5)", + "m5gdrgcl", "Golden Dragon Club (Barcrest) (MPU5) (set 1)", + "m5gdrgcl05", "Golden Dragon Club (Barcrest) (MPU5) (set 2)", + "m5ggems", "Giant Gems (Vivid) (MPU5) (set 1)", + "m5ggems20", "Giant Gems (Vivid) (MPU5) (set 2)", + "m5gimmie", "Gimmie Gimmie Gimmie (Barcrest) (MPU5)", + "m5gkeys", "Golden Keys (Barcrest) (MPU5)", + "m5goape", "Going Ape (Bwb) (MPU5)", + "m5gophcl", "Gopher Gold Club (Empire) (MPU5)", + "m5gophr", "Gopher Gold (Empire) (MPU5)", + "m5gpclub", "Get Plastered Club (Bwb) (MPU5)", + "m5groll", "Golden Roll (Vivid) (MPU5)", + "m5grush", "Gold Rush (Barcrest) (MPU5) (set 1)", + "m5grush01", "Gold Rush (Barcrest) (MPU5) (set 6)", + "m5grush02", "Gold Rush (Barcrest) (MPU5) (set 5)", + "m5grush03", "Gold Rush (Barcrest) (MPU5) (set 4)", + "m5grush04", "Gold Rush (Barcrest) (MPU5) (set 3)", + "m5grush10", "Gold Rush (Barcrest) (MPU5) (set 2)", + "m5grush5", "Gold Rush Five Liner (Barcrest) (MPU5) (set 1)", + "m5grush504", "Gold Rush Five Liner (Barcrest) (MPU5) (set 2)", + "m5gruss", "Gold Rush Sit Down (Barcrest) (MPU5)", + "m5grusst", "Gold Rush Stampede (Barcrest) (MPU5) (set 1)", + "m5grusst03", "Gold Rush Stampede (Barcrest) (MPU5) (set 3)", + "m5grusst04", "Gold Rush Stampede (Barcrest) (MPU5) (set 2)", + "m5gsstrk", "Gold Super Streak (Barcrest) (MPU5) (set 1)", + "m5gsstrk07", "Gold Super Streak (Barcrest) (MPU5) (set 2)", + "m5gstrik", "Gold Strike (Barcrest) (MPU5) (set 1)", + "m5gstrik01", "Gold Strike (Barcrest) (MPU5) (set 4)", + "m5gstrik01a", "Gold Strike (Barcrest) (MPU5) (set 5)", + "m5gstrik02", "Gold Strike (Barcrest) (MPU5) (set 3)", + "m5gstrik11", "Gold Strike (Barcrest) (MPU5) (set 2)", + "m5gstrika", "Gold Strike (Barcrest) (MPU5) (set 6)", + "m5hellrz", "Hellraiser (Barcrest) (MPU5)", + "m5hgl", "Happy Go Lucky (Bwb) (MPU5) (set 1)", + "m5hgl14", "Happy Go Lucky (Bwb) (MPU5) (set 3)", + "m5hgl16", "Happy Go Lucky (Bwb) (MPU5) (set 2)", + "m5hiclau", "High Claudius (Vivid) (MPU5)", + "m5hifly", "High Flyer (Barcrest) (MPU5) (set 1)", + "m5hifly03", "High Flyer (Barcrest) (MPU5) (set 2)", + "m5hifly04", "High Flyer (Barcrest) (MPU5) (set 3)", + "m5hilok", "Hi Lo Karate (Vivid) (MPU5)", + "m5hisprt", "High Spirits (Empire) (MPU5)", + "m5hlsumo", "Hi Lo Sumo (Barcrest) (MPU5)", + "m5hocscl", "Hocus Pocus Club (Empire) (MPU5)", + "m5hocus", "Hocus Pocus (Empire) (MPU5) (set 1)", + "m5hocus10", "Hocus Pocus (Empire) (MPU5) (set 2)", + "m5holy", "The Holy Grail (Barcrest) (MPU5) (set 1)", + "m5holy10", "The Holy Grail (Barcrest) (MPU5) (set 2)", + "m5honmon", "Honey Money (Vivid) (MPU5) (set 1)", + "m5honmona", "Honey Money (Vivid) (MPU5) (set 2)", + "m5hopidl", "Hop Idol (Vivid) (MPU5)", + "m5horn", "Horn Of Plenty (Barcrest / Whitbread) (MPU5)", + "m5hotrk", "Hot Rocks (Barcrest) (MPU5)", + "m5hotsht", "Hot Shots (Empire) (MPU5) (set 1)", + "m5hotsht07a", "Hot Shots (Empire) (MPU5) (set 2)", + "m5hotsht08", "Hot Shots (Empire) (MPU5) (set 3)", + "m5hotsht08a", "Hot Shots (Empire) (MPU5) (set 4)", + "m5hotsht10", "Hot Shots (Empire) (MPU5) (set 5)", + "m5hotsht10a", "Hot Shots (Empire) (MPU5) (set 6)", + "m5hotslt", "Hot Slot (Barcrest) (MPU5)", + "m5hotstf", "Hot Stuff (Barcrest) (MPU5)", + "m5hula", "Hula Moolah (Empire) (MPU5) (set 1)", + "m5hula10", "Hula Moolah (Empire) (MPU5) (set 2)", + "m5hulacl", "Hula Moolah Club (Empire) (MPU5)", + "m5hypalx", "Hypalinx (Barcrest - Red Gaming) (MPU5)", + "m5hypno", "Hypnotic (Vivid) (MPU5)", + "m5hypvip", "Hyper Viper (Barcrest) (MPU5)", + "m5invad", "Invaders (Barcrest - Red Gaming) (MPU5)", + "m5jackbx", "Jack In The Box (Empire) (MPU5) (set 1)", + "m5jackbx03", "Jack In The Box (Empire) (MPU5) (set 2)", + "m5jackp2", "Jackpoteers 2 (Barcrest) (MPU5) (set 1)", + "m5jackp2a", "Jackpoteers 2 (Barcrest) (MPU5) (set 2)", + "m5jackpt", "Jackpoteers (Barcrest) (MPU5) (set 1)", + "m5jackpt07", "Jackpoteers (Barcrest) (MPU5) (set 2)", + "m5jakjok", "Jackpot Jokers (Lowen) (MPU5)", + "m5jcptgn", "Jackpot Genie (Barcrest - Red Gaming) (MPU5)", + "m5jcy", "Juicy Fruits (Empire) (MPU5)", + "m5jlstrk", "Jewel Strike (Barcrest - Red Gaming) (MPU5)", + "m5jlyjwl", "Jolly Jewels (Barcrest) (MPU5) (set 1)", + "m5jlyjwl01", "Jolly Jewels (Barcrest) (MPU5) (set 2)", + "m5jlyjwl02", "Jolly Jewels (Barcrest) (MPU5) (set 3)", + "m5jlyrog", "Jolly Roger (Barcrest) (MPU5) (set 1)", + "m5jlyroga", "Jolly Roger (Barcrest) (MPU5) (set 2)", + "m5jmpgem", "Jumping Gems (Empire) (MPU5) (set 1)", + "m5jmpgem01", "Jumping Gems (Empire) (MPU5) (set 2)", + "m5jmpgem03", "Jumping Gems (Empire) (MPU5) (set 3)", + "m5jmpgmc", "Jumping Gems Club (Empire) (MPU5)", + "m5jmpjok", "Jumpin Jokers (Vivid) (MPU5) (set 1)", + "m5jmpjok11", "Jumpin Jokers (Vivid) (MPU5) (set 2)", + "m5jmpjoka", "Jumpin Jokers (Vivid) (MPU5) (set 3)", + "m5jmpjokb", "Jumpin Jokers (Vivid) (MPU5) (set 4)", + "m5jokpak", "Joker In The Pack (Bwb) (MPU5)", + "m5kaleid", "Kaleidoscope Club (Empire) (MPU5)", + "m5kcclb", "King Cobra Club (Empire) (MPU5) (set 1)", + "m5kcclb24", "King Cobra Club (Empire) (MPU5) (set 2)", + "m5kingko", "King KO (Barcrest) (MPU5) (set 1)", + "m5kingko04", "King KO (Barcrest) (MPU5) (set 2)", + "m5kingko05", "King KO (Barcrest) (MPU5) (set 3)", + "m5kingqc", "Kings & Queens Club (Empire) (MPU5) (set 1)", + "m5kingqc06", "Kings & Queens Club (Empire) (MPU5) (set 2)", + "m5kingqc07", "Kings & Queens Club (Empire) (MPU5) (set 3)", + "m5kingqc08", "Kings & Queens Club (Empire) (MPU5) (set 4)", + "m5kkebab", "King Kebab (Barcrest) (MPU5) (set 1)", + "m5kkebab10", "King Kebab (Barcrest) (MPU5) (set 2)", + "m5kkebaba", "King Kebab (Barcrest) (MPU5) (set 3)", + "m5korma", "Korma Chameleon (Empire) (MPU5) (set 1)", + "m5korma12", "Korma Chameleon (Empire) (MPU5) (set 2)", + "m5kormcl", "Korma Chameleon Club (Empire) (MPU5)", + "m5lock", "Lock 'n' Load (Barcrest - Red Gaming) (MPU5) (set 1)", + "m5lock12", "Lock 'n' Load (Barcrest - Red Gaming) (MPU5) (set 3)", + "m5lock13", "Lock 'n' Load (Barcrest - Red Gaming) (MPU5) (set 2)", + "m5lockcl", "Lock 'n' Load Club (Barcrest - Red Gaming) (MPU5) (set 1)", + "m5lockcl14", "Lock 'n' Load Club (Barcrest - Red Gaming) (MPU5) (set 3)", + "m5lockcl15", "Lock 'n' Load Club (Barcrest - Red Gaming) (MPU5) (set 2)", + "m5loony", "Loony Juice (Vivid) (MPU5)", + "m5loot", "Loot 'n' Khamun (Vivid) (MPU5, set 1)", + "m5loota", "Loot 'n' Khamun (Vivid) (MPU5, set 2)", + "m5lotta", "Lotta Luck (Barcrest) (MPU5)", + "m5lvwire", "Live Wire (Bwb) (MPU5) (set 1)", + "m5lvwirea", "Live Wire (Bwb) (MPU5) (set 2)", + "m5mag7s", "Magnificent 7s (Vivid) (MPU5, set 1)", + "m5mag7sa", "Magnificent 7s (Vivid) (MPU5, set 2)", + "m5mag7sb", "Magnificent 7s (Vivid) (MPU5, set 3)", + "m5mag7sc", "Magnificent 7s (Vivid) (MPU5, set 4)", + "m5mag7sd", "Magnificent 7s (Vivid) (MPU5, set 5)", + "m5mag7se", "Magnificent 7s (Vivid) (MPU5, set 6)", + "m5martns", "Money Mad Martians (Barcrest) (MPU5) (set 1)", + "m5martns07", "Money Mad Martians (Barcrest) (MPU5) (set 2)", + "m5mega", "Mega Zone (Barcrest) (MPU5)", + "m5minesw", "Minesweeper (Bwb) (MPU5)", + "m5mmak", "Money Maker (Barcrest) (MPU5) (set 1)", + "m5mmak06", "Money Maker (Barcrest) (MPU5) (set 2)", + "m5monjok", "Monedin Joker (Spanish) (Barcrest) (MPU5) (set 1)", + "m5monjoka", "Monedin Joker (Spanish) (Barcrest) (MPU5) (set 2)", + "m5monmst", "Money Monster (Empire) (MPU5) (set 1)", + "m5monmsta", "Money Monster (Empire) (MPU5) (set 2)", + "m5monty", "Monty Python (Barcrest) (MPU5)", + "m5mpfc", "Monty Python's Flying Circus (Barcrest) (MPU5)", + "m5mpfccl", "Monty Python's Flying Circus Club (Barcrest) (MPU5)", + "m5mprio", "Monty Python Rio (Barcrest) (MPU5)", + "m5msf", "Manic Streak Features (Vivid) (MPU5, set 1)", + "m5msfa", "Manic Streak Features (Vivid) (MPU5, set 2)", + "m5neptun", "Neptunes Treasure (Barcrest) (MPU5)", + "m5nitro", "Nitro (Barcrest - Red Gaming) (MPU5)", + "m5nnww", "Nudge Nudge Wink Wink (Barcrest) (MPU5)", + "m5nnwwgl", "Nudge Nudge Wink Wink Gold (Barcrest) (MPU5)", + "m5oohaah", "Ooh Aah Dracula (Barcrest) (MPU5) (set 1)", + "m5oohaah01", "Ooh Aah Dracula (Barcrest) (MPU5) (set 2)", + "m5oohrio", "Ooh Ahh Dracula Rio (Barcrest) (MPU5)", + "m5openbx", "Open The Box (Barcrest) (MPU5) (set 1)", + "m5openbx01", "Open The Box (Barcrest) (MPU5) (set 4)", + "m5openbx05", "Open The Box (Barcrest) (MPU5) (set 3)", + "m5openbx06", "Open The Box (Barcrest) (MPU5) (set 2)", + "m5overld", "Overload (Barcrest) (MPU5) (set 1)", + "m5overld02", "Overload (Barcrest) (MPU5) (set 2)", + "m5overld10", "Overload (Barcrest) (MPU5) (set 3)", + "m5overld11", "Overload (Barcrest) (MPU5) (set 4)", + "m5paint", "Paint The Town Red (Barcrest - Red Gaming) (MPU5)", + "m5peepsh", "Peep Show (Barcrest) (MPU5)", + "m5piefac", "Pie Factory (Vivid) (MPU5) (set 1)", + "m5piefac12", "Pie Factory (Vivid) (MPU5) (set 3)", + "m5piefac23", "Pie Factory (Vivid) (MPU5) (set 2)", + "m5piefaca", "Pie Factory (Vivid) (MPU5) (set 4)", + "m5piefc2", "Pie Factory 2 (Vivid) (MPU5) (set 1)", + "m5piefc2a", "Pie Factory 2 (Vivid) (MPU5) (set 2)", + "m5piefc2b", "Pie Factory 2 (Vivid) (MPU5) (set 3)", + "m5piefcr", "Pie Factory Rio (Vivid) (MPU5)", + "m5ppussy", "Pink Pussy (Mdm) (MPU5)", + "m5psy2", "Psycho Cash Beast 2 (Barcrest) (MPU5)", + "m5psyccl", "Psycho Cash Beast Club (Barcrest) (MPU5) (set 1)", + "m5psyccl01", "Psycho Cash Beast Club (Barcrest) (MPU5) (set 2)", + "m5psyccla", "Psycho Cash Beast Club (Bwb) (MPU5) (set 1)", + "m5psyccla02", "Psycho Cash Beast Club (Bwb) (MPU5) (set 3)", + "m5psyccla24", "Psycho Cash Beast Club (Bwb) (MPU5) (set 2)", + "m5psycho", "Psycho Cash Beast (Barcrest) (MPU5) (set 1)", + "m5psycho06", "Psycho Cash Beast (Barcrest) (MPU5) (set 2)", + "m5psychoa", "Psycho Cash Beast (Bwb) (MPU5) (set 1)", + "m5psychoa21", "Psycho Cash Beast (Bwb) (MPU5) (set 2)", + "m5ptyani", "Party Animal (Barcrest) (MPU5) (set 1)", + "m5ptyani01", "Party Animal (Barcrest) (MPU5) (set 2)", + "m5qdraw", "Quick On The Draw (Vivid) (MPU5) (set 1)", + "m5qdraw12", "Quick On The Draw (Vivid) (MPU5) (set 2)", + "m5qdraw14", "Quick On The Draw (Vivid) (MPU5) (set 3)", + "m5qdraw15", "Quick On The Draw (Vivid) (MPU5) (set 4)", + "m5qdrawa", "Quick On The Draw (Vivid) (MPU5) (set 5)", + "m5qdrawb", "Quick On The Draw (Vivid) (MPU5) (set 6)", + "m5qshot", "Quack Shot (Barcrest) (MPU5) (set 1)", + "m5qshot04", "Quack Shot (Barcrest) (MPU5) (set 2)", + "m5quake", "Quake (Barcrest - Red Gaming) (MPU5)", + "m5rainrn", "Rainbow Runner (Barcrest - Red Gaming) (MPU5, set 1)", + "m5rainrna", "Rainbow Runner (Barcrest - Red Gaming) (MPU5, set 2)", + "m5rampg", "Rampage (Barcrest - Red Gaming) (MPU5) (set 1)", + "m5rampg11", "Rampage (Barcrest - Red Gaming) (MPU5) (set 2)", + "m5rampg12", "Rampage (Barcrest - Red Gaming) (MPU5) (set 3)", + "m5ramrcl", "Ram Raid Club (Empire) (MPU5)", + "m5ramrd", "Ram Raid (Empire) (MPU5)", + "m5ratpk", "Rat Pack (Vivid) (MPU5) (set 1)", + "m5ratpka", "Rat Pack (Vivid) (MPU5) (set 2)", + "m5rawin", "Reel A Win (Vivid / Whitbread) (MPU5)", + "m5razdz", "Razzle Dazzle Club (Barcrest) (MPU5) (set 1)", + "m5razdz10", "Razzle Dazzle Club (Barcrest) (MPU5) (set 2)", + "m5razdz11", "Razzle Dazzle Club (Barcrest) (MPU5) (set 3)", + "m5rcx", "Royal Exchange Club (Barcrest) (MPU5) (set 1)", + "m5rcxa", "Royal Exchange Club (Barcrest) (MPU5) (set 2)", + "m5rdwarf", "Red Dwarf (Barcrest - Red Gaming) (MPU5)", + "m5redbal", "Random Red Ball (Vivid) (MPU5)", + "m5redrck", "Ready To Rock (Barcrest) (MPU5) (set 1)", + "m5redrck10", "Ready To Rock (Barcrest) (MPU5) (set 2)", + "m5redrcka", "Ready To Rock (Barcrest) (MPU5) (set 3)", + "m5redx", "Red X (Barcrest - Red Gaming) (MPU5) (set 1)", + "m5redx12", "Red X (Barcrest - Red Gaming) (MPU5) (set 2)", + "m5reelth", "Reel Thunder (Bwb) (MPU5)", + "m5reelwn", "Reel A Win (Bwb) (MPU5) (set 1)", + "m5reelwn24", "Reel A Win (Bwb) (MPU5) (set 2)", + "m5resfrg", "Reservoir Frogs (Empire) (MPU5)", + "m5revo", "Revolution (Barcrest) (MPU5) (set 1)", + "m5revo13", "Revolution (Barcrest) (MPU5) (set 2)", + "m5revoa", "Revolution (Barcrest) (MPU5) (set 3)", + "m5rfymc", "Run For Your Money Club (Barcrest) (MPU5) (set 1)", + "m5rfymc06", "Run For Your Money Club (Barcrest) (MPU5) (Set 2)", + "m5rgclb", "Rio Grande Club (Barcrest) (MPU5) (set 1)", + "m5rgclb01", "Rio Grande Club (Barcrest) (MPU5) (set 7)", + "m5rgclb01a", "Rio Grande Club (Barcrest) (MPU5) (set 8)", + "m5rgclb03", "Rio Grande Club (Barcrest) (MPU5) (set 6)", + "m5rgclb11", "Rio Grande Club (Barcrest) (MPU5) (set 2)", + "m5rgclb12", "Rio Grande Club (Barcrest) (MPU5) (set 3)", + "m5rgclb20", "Rio Grande Club (Barcrest) (MPU5) (set 4)", + "m5rgclb21", "Rio Grande Club (Barcrest) (MPU5) (set 5)", + "m5rhkni", "Red Hot Knights (Barcrest) (MPU5)", + "m5rhrg", "Red Hot Roll Gold (Barcrest) (MPU5) (set 1)", + "m5rhrga", "Red Hot Roll Gold (Barcrest) (MPU5) (set 2)", + "m5rhrgt", "Red Hot Roll Triple (Barcrest) (MPU5) (set 1)", + "m5rhrgt02", "Red Hot Roll Triple (Barcrest) (MPU5) (set 3)", + "m5rhrgt12", "Red Hot Roll Triple (Barcrest) (MPU5) (set 2)", + "m5ritj", "Rumble In The Jungle (Barcrest) (MPU5)", + "m5rlup", "Roll Up (Bwb) (MPU5)", + "m5rollup", "Roll Up Roll Up (Vivid) (MPU5)", + "m5rollx", "Roll X (Empire) (MPU5) (set 1)", + "m5rollx12", "Roll X (Empire) (MPU5) (set 2)", + "m5ronr", "Reel Or No Reel (Empire) (MPU5) (set 1)", + "m5ronr05", "Reel Or No Reel (Empire) (MPU5) (set 2)", + "m5ronr07", "Reel Or No Reel (Empire) (MPU5) (set 3)", + "m5roof", "Raise The Roof (Barcrest) (MPU5) (set 1)", + "m5roofa", "Raise The Roof (Barcrest) (MPU5) (set 2)", + "m5round", "Round & Round (Bwb) (MPU5)", + "m5roundl", "Round & Round (Lowen) (MPU5)", + "m5rthh", "Return To The Haunted House (Empire) (MPU5)", + "m5rub", "Rubies & Diamonds (Barcrest) (MPU5)", + "m5rwb", "Red White & Blue (Barcrest) (MPU5)", + "m5rwbbwb", "Red White & Blue (Bwb) (MPU5) (set 1)", + "m5rwbbwb15", "Red White & Blue (Bwb) (MPU5) (set 4)", + "m5rwbbwb24", "Red White & Blue (Bwb) (MPU5) (set 2)", + "m5rwbbwb25", "Red White & Blue (Bwb) (MPU5) (set 3)", + "m5sblz", "Snail Blazer (Barcrest - Red Gaming) (MPU5)", + "m5scfinl", "Super Cup Final (Lowen) (MPU5)", + "m5scharg", "Super Charged (Barcrest) (MPU5) (set 1)", + "m5scharg05", "Super Charged (Barcrest) (MPU5) (set 2)", + "m5scharg06", "Super Charged (Barcrest) (MPU5) (set 3)", + "m5scharga", "Super Charged (Barcrest) (MPU5) (set 4)", + "m5sec7", "Secret 7s (Bwb) (MPU5) (set 1)", + "m5sec7a", "Secret 7s (Bwb) (MPU5) (set 2)", + "m5seven", "Seven Deadly Spins (Barcrest) (MPU5)", + "m5shark", "Shark Raving Mad (Vivid) (MPU5) (set 1)", + "m5sharka", "Shark Raving Mad (Vivid) (MPU5) (set 2)", + "m5sheik", "Sheik Yer Money (Barcrest) (MPU5)", + "m5showtm", "Showtime (Barcrest) (MPU5)", + "m5sil7", "Silver 7s (Bwb) (MPU5) (set 1)", + "m5sil7a", "Silver 7s (Bwb) (MPU5) (set 2)", + "m5silver", "Silver Screen (Barcrest) (MPU5) (set 1)", + "m5silver03", "Silver Screen (Barcrest) (MPU5) (set 3)", + "m5silver06", "Silver Screen (Barcrest) (MPU5) (set 2)", + "m5sixsht", "Six Shooter (Vivid) (MPU5) (v1.1, set 1)", + "m5sixshta", "Six Shooter (Vivid) (MPU5) (v1.1, set 2)", + "m5sixshtb", "Six Shooter (Vivid) (MPU5) (v2.0, set 1)", + "m5sixshtc", "Six Shooter (Vivid) (MPU5) (v2.0, set 2)", + "m5sixshtd", "Six Shooter (Vivid) (MPU5) (v2.0, set 3)", + "m5sixshte", "Six Shooter (Vivid) (MPU5) (v2.0, set 4)", + "m5sixshtf", "Six Shooter (Vivid) (MPU5) (v2.0, set 5)", + "m5sixshtg", "Six Shooter (Vivid) (MPU5) (v2.0, set 6)", + "m5sixshth", "Six Shooter (Vivid) (MPU5) (v2.0, set 7)", + "m5sixshti", "Six Shooter (Vivid) (MPU5) (v2.1, set 1)", + "m5sixshtj", "Six Shooter (Vivid) (MPU5) (v2.1, set 2)", + "m5sixshtk", "Six Shooter (Vivid) (MPU5) (v2.1, set 3)", + "m5sixshtl", "Six Shooter (Vivid) (MPU5) (v2.1, set 4)", + "m5sixshtm", "Six Shooter (Vivid) (MPU5) (v2.1, set 5)", + "m5sixshtn", "Six Shooter (Vivid) (MPU5) (v2.1, set 6)", + "m5skulcl", "Skullduggery Club (Empire) (MPU5) (set 1)", + "m5skulcl20", "Skullduggery Club (Empire) (MPU5) (set 2)", + "m5skulcl23", "Skullduggery Club (Empire) (MPU5) (set 3)", + "m5slide", "Slider (Barcrest - Red Gaming) (MPU5)", + "m5smobik", "Smokey Bikin (Bwb) (MPU5) (set 1)", + "m5smobik12", "Smokey Bikin (Bwb) (MPU5) (set 2)", + "m5sondr", "Son Of Dracula (Barcrest) (MPU5) (set 1)", + "m5sondr05", "Son Of Dracula (Barcrest) (MPU5) (set 2)", + "m5sondra", "Son Of Dracula (Barcrest) (MPU5) (15GBP Jackpot)", + "m5spddmn", "Speed Demon (Vivid) (MPU5)", + "m5speccl", "Spectrum Club (Vivid) (MPU5)", + "m5spicer", "The Spice Is Right (Barcrest) (MPU5) (set 1)", + "m5spicer06", "The Spice Is Right (Barcrest) (MPU5) (set 2)", + "m5spiker", "Spiker The Biker (Barcrest) (MPU5) (set 1)", + "m5spiker02", "Spiker The Biker (Barcrest) (MPU5) (set 2)", + "m5spikera", "Spiker The Biker (Barcrest) (MPU5) (set 3)", + "m5spins", "Spinsation (Barcrest) (MPU5)", + "m5squids", "Squids In (Barcrest) (MPU5) (set 1)", + "m5squids04a", "Squids In (Barcrest) (MPU5) (set 2)", + "m5squids05", "Squids In (Barcrest) (MPU5) (set 3)", + "m5squids06", "Squids In (Barcrest) (MPU5) (set 4)", + "m5sstrk", "Super Streak (Barcrest) (MPU5) (set 1)", + "m5sstrk02a", "Super Streak (Barcrest) (MPU5) (set 2)", + "m5starcl", "Stars & Stripes Club (Vivid) (MPU5)", + "m5stars", "Stars & Stripes (Vivid) (MPU5) (set 1)", + "m5stars10", "Stars & Stripes (Vivid) (MPU5) (set 8)", + "m5stars10a", "Stars & Stripes (Vivid) (MPU5) (set 9)", + "m5stars13a", "Stars & Stripes (Vivid) (MPU5) (set 2)", + "m5stars20", "Stars & Stripes (Vivid) (MPU5) (set 7)", + "m5stars22", "Stars & Stripes (Vivid) (MPU5) (set 6)", + "m5stars25", "Stars & Stripes (Vivid) (MPU5) (set 5)", + "m5stars25a", "Stars & Stripes (Vivid) (MPU5) (set 4)", + "m5stars26", "Stars & Stripes (Vivid) (MPU5) (set 3)", + "m5startr", "Stars & Stripes Triple (Vivid) (MPU5)", + "m5stax", "Stax Of Cash (Barcrest) (MPU5)", + "m5supnov", "Supernova (Barcrest) (MPU5) (set 1)", + "m5supnova", "Supernova (Barcrest) (MPU5) (set 2)", + "m5supro", "Super Roulette (Vivid) (MPU5) (set 1)", + "m5suproa", "Super Roulette (Vivid) (MPU5) (set 2)", + "m5supstr", "Super Star (Barcrest) (MPU5) (set 1)", + "m5supstra", "Super Star (Barcrest) (MPU5) (set 2)", + "m5tball", "Thunderball (Empire) (MPU5)", + "m5tbird", "Thunderbird (Barcrest) (MPU5)", + "m5tempcl", "Temple Of Treasure Club (Barcrest) (MPU5)", + "m5tempp", "Temple Of Pleasure (Vivid) (MPU5)", + "m5tempt", "Temple Of Treasure (Barcrest) (MPU5) (set 1)", + "m5tempt05", "Temple Of Treasure (Barcrest) (MPU5) (set 2)", + "m5tempt2", "Temple Of Treasure 2 (Barcrest) (MPU5) (set 1)", + "m5tempt203", "Temple Of Treasure 2 (Barcrest) (MPU5) (set 2)", + "m5tempt2a", "Temple Of Treasure 2 (Barcrest) (MPU5) (set 3)", + "m5tempta", "Temple Of Treasure (Barcrest) (MPU5) (set 3)", + "m5temptb", "Temple Of Treasure (Barcrest) (MPU5) (set 4)", + "m5thtsmg", "That's Magic (Barcrest - Red Gaming) (MPU5)", + "m5tictac", "Tic Tac Tut (Vivid) (MPU5)", + "m5tictacbwb", "Tic Tac Tut (Bwb) (MPU5) (set 1)", + "m5tictacbwb16", "Tic Tac Tut (Bwb) (MPU5) (set 2)", + "m5tomb", "Tomb Raiders (Empire) (MPU5)", + "m5topdog", "Top Dog (Barcrest) (MPU5) (set 1)", + "m5topdog04", "Top Dog (Barcrest) (MPU5) (set 2)", + "m5topdoga", "Top Dog (Barcrest) (MPU5) (set 3)", + "m5topdol", "Top Dollar (Barcrest - Red Gaming) (MPU5) (set 1)", + "m5topdola", "Top Dollar (Barcrest - Red Gaming) (MPU5) (set 2)", + "m5trail", "Trailblazer Club (Barcrest) (MPU5)", + "m5trclb", "Tomb Raiders Club (Empire) (MPU5)", + "m5tsar", "Tsar Wars (Empire) (MPU5)", + "m5tst", "MPU 5 Test Rom (Barcrest) (MPU5)", + "m5ttop", "Treble Top (Empire) (MPU5) (set 1)", + "m5ttop04", "Treble Top (Empire) (MPU5) (set 2)", + "m5ttop10", "Treble Top (Empire) (MPU5) (set 3)", + "m5ttopcl", "Treble Top Club (Empire) (MPU5)", + "m5ttwo", "Take Two (Barcrest) (MPU5)", + "m5ultimo", "Ultimo (Barcrest) (MPU5) (set 1)", + "m5ultimo03a", "Ultimo (Barcrest) (MPU5) (set 2)", + "m5ultimo04", "Ultimo (Barcrest) (MPU5) (set 3)", + "m5upover", "Up & Over (Barcrest) (MPU5) (set 1)", + "m5upover15", "Up & Over (Barcrest) (MPU5) (set 2)", + "m5vampup", "Vamp It Up (Barcrest) (MPU5)", + "m5vertcl", "Vertigo Club (Empire) (MPU5)", + "m5vertgo", "Vertigo (Empire) (MPU5)", + "m5whdres", "Who Dares Spins (MPU5)", + "m5winway", "Winning Ways (MPU5)", + "m5wking", "Wild King (Barcrest) (MPU5) (set 1)", + "m5wking05", "Wild King (Barcrest) (MPU5) (set 2)", + "m5wonga", "A Fish Called Wonga (Empire) (MPU5)", + "m5wthing", "Wild Thing Club (Empire) (MPU5) (set 1)", + "m5wthing11", "Wild Thing Club (Empire) (MPU5) (set 2)", + "m5wthing20", "Wild Thing Club (Empire) (MPU5) (set 3)", + "m5xchn", "Exchanges Unlimited (Barcrest) (MPU5)", + "m5xena", "Xena Warrior Princess (Bwb) (MPU5)", + "m5xfact", "X Factor (Empire) (MPU5) (set 1)", + "m5xfact02", "X Factor (Empire) (MPU5) (set 2)", + "m5xfact04", "X Factor (Empire) (MPU5) (set 3)", + "m5xfact11", "X Factor (Empire) (MPU5) (set 4)", + "m5zigzag", "Zig Zag (Barcrest - Red Gaming) (MPU5)", + "m660", "Mission 660 (US)", + "m660b", "Mission 660 (bootleg)", + "m660j", "Mission 660 (Japan)", + "m79amb", "M-79 Ambush", + "m_mpac", "Mr. and Mrs. PacMan", + "m_tppokr", "Top Poker (Dutch, Game Card 95-750-899)", + "mac2bios", "Multi Amenity Cassette System 2 BIOS", + "macattck", "Mac Attack", + "mace", "Mace: The Dark Age (boot ROM 1.0ce, HDD 1.0b)", + "macea", "Mace: The Dark Age (HDD 1.0a)", + "mach2", "Mach 2", + "mach3", "M.A.C.H. 3", + "macha", "Monoshiri Quiz Osyaberi Macha (Japan)", + "machbrkr", "Mach Breakers - Numan Athletics 2 (Japan)", + "machomou", "Macho Mouse", + "machridr", "Vs. Mach Rider (Endurance Course Version)", + "machridra", "Vs. Mach Rider (Fighting Course Version, set MR4-1 A)", + "macross", "Super Spacefortress Macross / Chou-Jikuu Yousai Macross", + "macross2", "Super Spacefortress Macross II / Chou-Jikuu Yousai Macross II", + "macrossp", "Macross Plus", + "macsbios", "Multi Amenity Cassette System BIOS", + "madalien", "Mad Alien", + "madaliena", "Mad Alien (Highway Chase)", + "madball", "Mad Ball V2.0", + "madballn", "Mad Ball V2.0 (With Nudity)", + "madcrash", "Mad Crasher", + "madcrush", "Mad Crusher (Japan)", + "maddog", "Mad Dog McCree v2.03 board rev.B", + "maddog2", "Mad Dog II: The Lost Gold v2.04", + "maddog21", "Mad Dog II: The Lost Gold v1.0", + "maddog22", "Mad Dog II: The Lost Gold v2.02", + "maddoga", "Mad Dog McCree v1C board rev.A", + "maddonna", "Mad Donna (set 1)", + "maddonnb", "Mad Donna (set 2)", + "madgear", "Mad Gear (US)", + "madgearj", "Mad Gear (Japan)", + "madmotor", "Mad Motor", + "madrace", "Mad Race", + "madshark", "Mad Shark", + "madzoo", "Mad Zoo (version U450C)", + "magdrop", "Magical Drop (Japan, Version 1.1, 1995.06.21)", + "magdrop2", "Magical Drop II", + "magdrop3", "Magical Drop III", + "magdropp", "Magical Drop Plus 1 (Japan, Version 2.1, 1995.09.12)", + "magerror", "Magical Error wo Sagase", + "magic", "Magic", + "magic10", "Magic's 10 (ver. 16.55)", + "magic102", "Magic's 10 2 (ver 1.1)", + "magic10a", "Magic's 10 (ver. 16.54)", + "magic10b", "Magic's 10 (ver. 16.45)", + "magic10c", "Magic's 10 (ver. 16.15)", + "magicard", "Magic Card (set 1)", + "magicarda", "Magic Card (set 2)", + "magicardb", "Magic Card (set 3)", + "magicarde", "Magic Card Export 94", + "magicardj", "Magic Card Jackpot (4.01)", + "magicbal", "Magicball Fighting (Korea)", + "magicbom", "Magic Bomb (Version 1)", + "magicbub", "Magic Bubble", + "magicbuba", "Magic Bubble (Adult version)", + "magicfly", "Magic Fly", + "magicle", "Magic Lotto Export (5.03)", + "magicmsk", "Magic Mask (MV4115, Export)", + "magicrd2", "Magic Card II (Bulgarian)", + "magicrd2a", "Magic Card II (Nov, Yugoslavian)", + "magicrd2b", "Magic Card II (green TAB or Impera board)", + "magicrd2c", "Magic Card II (blue TAB board, encrypted)", + "magicstk", "Magic Sticks", + "magictg", "Magic the Gathering: Armageddon (set 1)", + "magictga", "Magic the Gathering: Armageddon (set 2)", + "magix", "Magix / Rock", + "magixb", "Magix / Rock (no copyright message)", + "magjoker", "Magic Joker (v1.25.10.2000)", + "maglord", "Magician Lord (NGM-005)", + "maglordh", "Magician Lord (NGH-005)", + "magmax", "Mag Max", + "magodds", "Magical Odds (set 1)", + "magoddsa", "Magical Odds (set 2)", + "magoddsb", "Magical Odds (set 3)", + "magoddsc", "Magical Odds (set 4, custom encrypted CPU block)", + "magoddsd", "Magical Odds (set 5, custom encrypted CPU block)", + "magspeed", "Magical Speed", + "magspot", "Magical Spot", + "magspot2", "Magical Spot II", + "magtouch", "Magical Touch", + "magtruck", "Magical Truck Adventure", + "magworm", "Magic Worm (bootleg of Centipede, set 1)", + "magworma", "Magic Worm (bootleg of Centipede, set 2)", + "magzun", "Magical Zunou Power (J 961031 V1.000)", + "mahjngoh", "Mahjong Oh (V2.06J)", + "mahmajn", "Tokoro San no MahMahjan (Japan, ROM Based)", + "mahmajn2", "Tokoro San no MahMahjan 2 (Japan, ROM Based)", + "mahoudai", "Mahou Daisakusen (Japan)", + "mahretsu", "Mahjong Kyo Retsuden (NGM-004)(NGH-004)", + "maiko", "Maikobana (Japan 900802)", + "mainevt", "The Main Event (4 Players ver. Y)", + "mainevt2p", "The Main Event (2 Players ver. X)", + "mainevto", "The Main Event (4 Players ver. F)", + "mainline", "Mainline Double Joker Poker", + "mainsnk", "Main Event (1984)", + "majest12", "Majestic Twelve - The Space Invaders Part IV (Japan)", + "majorpkr", "Major Poker (v2.0)", + "majrjhdx", "Mahjong Raijinhai DX", + "majs101b", "Mahjong Studio 101 [BET] (Japan)", + "majtitl2", "Major Title 2 (World)", + "majtitl2j", "Major Title 2 (Japan)", + "majtitle", "Major Title (World)", + "majtitlej", "Major Title (Japan)", + "majuu", "Majuu no Ohkoku", + "majxtal7", "Mahjong X-Tal 7 - Crystal Mahjong / Mahjong Diamond 7 (Japan)", + "makaiden", "Makai Densetsu (Japan)", + "makaijan", "Makaijan [BET] (Japan)", + "makaimur", "Makai-Mura (Japan)", + "makaimurc", "Makai-Mura (Japan Revision C)", + "makaimurg", "Makai-Mura (Japan Revision G)", + "maketrax", "Make Trax (US set 1)", + "maketrxb", "Make Trax (US set 2)", + "makyosen", "Makyou Senshi (Japan)", + "maletmad", "Mallet Madness v2.1", + "malzak", "Malzak", + "malzak2", "Malzak II", + "mamboagg", "Mambo A Go-Go (GQA40 VER. JAB)", + "mamboagga", "Mambo A Go-Go e-Amusement (GQA40 VER. JRB)", + "mamonoro", "Mamoru-kun wa Norowarete Shimatta!", + "mangchi", "Mang-Chi", + "manhatan", "Manhattan 24 Bunsyo (Japan)", + "maniach", "Mania Challenge (set 1)", + "maniach2", "Mania Challenge (set 2)", + "maniacsp", "Maniac Square (prototype)", + "maniacsq", "Maniac Square (unprotected)", + "manicpnc", "Manic Panic Ghosts!", + "manohman", "Mann, oh-Mann", + "manxtt", "Manx TT Superbike - DX (Revision D)", + "manxttc", "Manx TT Superbike - Twin (Revision C)", + "manybloc", "Many Block", + "mappy", "Mappy (US)", + "mappyj", "Mappy (Japan)", + "marble", "Marble Madness (set 1)", + "marble2", "Marble Madness (set 2)", + "marble3", "Marble Madness (set 3)", + "marble4", "Marble Madness (set 4)", + "marble5", "Marble Madness (set 5 - LSI Cartridge)", + "margmgc", "Margarita Magic (01J00101, NSW/ACT)", + "marineb", "Marine Boy", + "marinedt", "Marine Date", + "mariner", "Mariner", + "mario", "Mario Bros. (US, Revision F)", + "marioe", "Mario Bros. (US, Revision E)", + "marioj", "Mario Bros. (Japan)", + "marioo", "Mario Bros. (US, Unknown Rev)", + "markham", "Markham", + "mars", "Mars", + "marsp", "Mars - God of War", + "marstv", "Mars TV (JPN)", + "martmast", "Martial Masters (ver. 104, 102, 102US)", + "martmastc", "Martial Masters (ver. 104, 102, 101CN)", + "martmastc102", "Martial Masters (ver. 102, 101, 101CN)", + "maruchan", "Maru-Chan de Goo! (J 971216 V1.000)", + "marukin", "Super Marukin-Ban (Japan 901017)", + "marukodq", "Chibi Marukochan Deluxe Quiz", + "marvins", "Marvin's Maze", + "marvland", "Marvel Land (US)", + "marvlandj", "Marvel Land (Japan)", + "masao", "Masao", + "maski", "Maski Show (Russia) (Extrema)", + "mastboy", "Master Boy (Spanish, PCB Rev A)", + "mastboyi", "Master Boy (Italian, PCB Rev A)", + "masterw", "Master of Weapon (World)", + "masterwj", "Master of Weapon (Japan)", + "masterwu", "Master of Weapon (US)", + "mastkin", "The Masters of Kin", + "mastninj", "Master Ninja (bootleg of Shadow Warriors / Ninja Gaiden)", + "matahari", "Mata Hari", + "match98", "Match '98 (ver. 1.33)", + "matchit", "Match It", + "matchit2", "Match It II", + "matmania", "Mat Mania", + "matrim", "Matrimelee / Shin Gouketsuji Ichizoku Toukon (NGM-2660) (NGH-2660)", + "matrimbl", "Matrimelee / Shin Gouketsuji Ichizoku Toukon (bootleg)", + "mausuke", "Mausuke no Ojama the World (J 960314 V1.000)", + "mav_100", "Maverick (1.00)", + "mav_400", "Maverick (Display Rev. 4.00)", + "mav_401", "Maverick (Display Rev. 4.01)", + "mav_402", "Maverick (Display Rev. 4.02)", + "maverik", "Maverik", + "maxaflex", "Max-A-Flex", + "maxf_102", "Maximum Force v1.02", + "maxf_ng", "Maximum Force (No Gore version)", + "maxforce", "Maximum Force v1.05", + "maxidbl", "Maxi Double Poker (Ver. 1.10)", + "maxideal", "Maxi-Dealer", + "maxrpm", "Max RPM (ver 2)", + "maxspeed", "Maximum Speed", + "maya", "Maya (set 1)", + "mayaa", "Maya (set 2)", + "mayday", "Mayday (set 1)", + "maydaya", "Mayday (set 2)", + "maydayb", "Mayday (set 3)", + "mayhem", "Mayhem 2002", + "mayjin3", "Mayjinsen 3", + "mayjinsn", "Mayjinsen", + "mayjisn2", "Mayjinsen 2", + "mayumi", "Kikiippatsu Mayumi-chan (Japan)", + "mazan", "Mazan: Flash of the Blade (MAZ2 Ver. A)", + "mazana", "Mazan: Flash of the Blade (MAZ3 Ver. A)", + "maze", "Amazing Maze", + "mazeinv", "Maze Invaders (prototype)", + "mazerbla", "Mazer Blazer (set 1)", + "mazerblaa", "Mazer Blazer (set 2)", + "mazinger", "Mazinger Z (World)", + "mazingerj", "Mazinger Z (Japan)", + "mb_10", "Monster Bash (1.0)", + "mb_106", "Monster Bash (1.06)", + "mb_106b", "Monster Bash (1.06b)", + "mbaa", "Melty Blood Actress Again", + "mbaaa", "Melty Blood Actress Again (Ver. A)", + "mbomberj", "Muscle Bomber: The Body Explosion (Japan 930713)", + "mbombrd", "Muscle Bomber Duo: Ultimate Team Battle (World 931206)", + "mbombrdj", "Muscle Bomber Duo: Heat Up Warriors (Japan 931206)", + "mbossy", "Mike Bossy", + "mbrush", "Magic Brush (bootleg of Crush Roller)", + "mcastle", "Magic Castle", + "mcastlef", "Magic Castle (French speech)", + "mcastleg", "Magic Castle (German speech)", + "mcastlei", "Magic Castle (Italian speech)", + "mcatadv", "Magical Cat Adventure", + "mcatadvj", "Magical Cat Adventure (Japan)", + "mchampdx", "Multi Champ Deluxe (ver. 0106, 06/01/2000)", + "mchampdxa", "Multi Champ Deluxe (ver. 1126, 26/11/1999)", + "mchampdxb", "Multi Champ Deluxe (ver. 1114, 14/11/1999)", + "mcitylov", "City Love [BET] (Japan 860904)", + "mclass", "Magic Class (Ver 2.2)", + "mcnpshnt", "Mahjong Campus Hunting (Japan)", + "mcolors", "Magic Colors (ver. 1.7a)", + "mcombat", "Missile Combat (Videotron bootleg, set 1)", + "mcombata", "Missile Combat (Videotron bootleg, set 2)", + "mcombats", "Missile Combat (Sidam bootleg)", + "mcontest", "Miss Mahjong Contest (Japan)", + "mdhorse", "Derby Quiz My Dream Horse (Japan, MDH1/VER.A2)", + "mdntmrdr", "Midnight Marauders (Gun game)", + "mdrawpkr", "Draw Poker - Joker's Wild (Standard)", + "mdrawpkra", "Draw Poker - Joker's Wild (02-11)", + "mdrink", "Magic Drink (Ver 1.2)", + "mechatt", "Mechanized Attack (World)", + "mechattj", "Mechanized Attack (Japan)", + "mechattu", "Mechanized Attack (US)", + "mechattu1", "Mechanized Attack (US, Version 1, Single Player)", + "medlanes", "Meadows Lanes", + "medusa", "Medusa", + "megaaton", "Meg Aaton", + "megablst", "Mega Blast (World)", + "megablstj", "Mega Blast (Japan)", + "megablstu", "Mega Blast (US)", + "megadble", "Mega Double Poker (Ver. 1.63 Espagnol)", + "megadblj", "Mega Double Poker Jackpot (Ver. 1.26)", + "megadon", "Megadon", + "megadpkr", "Mega Double Poker (conversion kit, set 1)", + "megadpkrb", "Mega Double Poker (conversion kit, set 2)", + "megaforc", "Mega Force", + "megakat", "Mega Katok 2", + "megaline", "Mega Lines", + "megaman", "Mega Man: The Power Battle (CPS1, USA 951006)", + "megaman2", "Mega Man 2: The Power Fighters (USA 960708)", + "megaman2a", "Mega Man 2: The Power Fighters (Asia 960708)", + "megaman2h", "Mega Man 2: The Power Fighters (Hispanic 960712)", + "megamana", "Mega Man: The Power Battle (CPS1, Asia 951006)", + "megamn2d", "Mega Man 2: The Power Fighters (USA 960708 Phoenix Edition) (bootleg)", + "megaphx", "Mega Phoenix", + "megaplay", "Mega Play BIOS", + "megat2", "Pit Boss Megatouch II (9255-10-01 ROG, Standard version)", + "megat2a", "Pit Boss Megatouch II (9255-10-01 ROE, Standard version)", + "megat2b", "Pit Boss Megatouch II (9255-10-01 ROD, Standard version)", + "megat2ca", "Pit Boss Megatouch II (9255-10-06 ROG, California version)", + "megat2caa", "Pit Boss Megatouch II (9255-10-06 ROE, California version)", + "megat2mn", "Pit Boss Megatouch II (9255-10-02 ROG, Minnesota version)", + "megat3", "Megatouch III (9255-20-01 RON, Standard version)", + "megat3a", "Megatouch III (9255-20-01 ROK, Standard version)", + "megat3b", "Megatouch III (9255-20-01 ROF, Standard version)", + "megat3c", "Megatouch III (9255-20-01 ROB, Standard version)", + "megat3ca", "Megatouch III (9255-20-06 RON, California version)", + "megat3caa", "Megatouch III (9255-20-06 ROD, California version)", + "megat3d", "Megatouch III (9255-20-01 ROA, Standard version)", + "megat3nj", "Megatouch III (9255-20-07 ROG, New Jersey version)", + "megat3te", "Megatouch III Tournament Edition (9255-30-01 ROE, Standard version)", + "megat4", "Megatouch IV (9255-40-01 ROE, Standard version)", + "megat4a", "Megatouch IV (9255-40-01 ROD, Standard version)", + "megat4b", "Megatouch IV (9255-40-01 ROB, Standard version)", + "megat4c", "Megatouch IV (9255-40-01 ROA, Standard version)", + "megat4d", "Megatouch IV (9255-40-01 RO, Standard version)", + "megat4s", "Super Megatouch IV (9255-41-01 ROG, Standard version)", + "megat4sa", "Super Megatouch IV (9255-41-01 ROE, Standard version)", + "megat4sb", "Super Megatouch IV (9255-41-01 ROC, Standard version)", + "megat4smn", "Super Megatouch IV (9255-41-02 ROC, Minnesota version)", + "megat4snj", "Super Megatouch IV (9255-41-07 ROG, New Jersey version)", + "megat4st", "Super Megatouch IV Tournament Edition (9255-51-01 ROB, Standard version)", + "megat4stg", "Super Megatouch IV Turnier Version (9255-51-50 ROA, Bi-Lingual GER/ENG version)", + "megat4te", "Megatouch IV Tournament Edition (9255-50-01 ROD, Standard version)", + "megat4tea", "Megatouch IV Tournament Edition (9255-50-01 ROA, Standard version)", + "megat5", "Megatouch 5 (9255-60-01 ROI, Standard version)", + "megat5a", "Megatouch 5 (9255-60-01 ROC, Standard version)", + "megat5nj", "Megatouch 5 (9255-60-07 RON, New Jersey version)", + "megat5t", "Megatouch 5 Tournament Edition (9255-70-01 ROC, Standard version)", + "megat5tg", "Megatouch 5 Turnier Version (9255-70-50 ROD, Bi-Lingual GER/ENG version)", + "megat6", "Megatouch 6 (9255-80-01 ROA, Standard version)", + "megatack", "Megatack", + "megatech", "Mega-Tech", + "megazone", "Mega Zone (Konami set 1)", + "megazonea", "Mega Zone (Konami set 2)", + "megazoneb", "Mega Zone (Kosuka set 1)", + "megazonec", "Mega Zone (Kosuka set 2)", + "megazonei", "Mega Zone (Interlogic)", + "meijinsn", "Meijinsen", + "meikyuh", "Meikyuu Hunter G (Japan, set 1)", + "meikyuha", "Meikyuu Hunter G (Japan, set 2)", + "meltyb", "Melty Blood Act Cadenza Ver B (GDL-0039)", + "meltyba", "Melty Blood Act Cadenza Ver B (Rev A) (GDL-0039A)", + "meltybld", "Melty Blood Act Cadenza (Rev C) (GDL-0028C)", + "memlane", "Memory Lane", + "meosism", "Meosis Magic (Japan)", + "mephistp", "Mephisto (rev. 1.2)", + "mephistp1", "Mephisto (rev. 1.1)", + "mercs", "Mercs (World 900302)", + "mercsj", "Senjou no Ookami II (Japan 900302)", + "mercsu", "Mercs (USA 900608)", + "mercsur1", "Mercs (USA 900302)", + "merlinmm", "Merlins Money Maze", + "mermaid", "Mermaid", + "merryjn", "Merry Joiner", + "metafox", "Meta Fox", + "metalb", "Metal Black (World)", + "metalbj", "Metal Black (Japan)", + "metalman", "Metal Man", + "metalmx", "Metal Maniax (prototype)", + "metamrph", "Metamorphic Force (ver EAA)", + "metamrphj", "Metamorphic Force (ver JAA)", + "metamrphu", "Metamorphic Force (ver UAA)", + "meteor", "Meteoroids", + "meteorho", "Meteor (bootleg of Asteroids)", + "meteorp", "Meteor (Stern)", + "meteort", "Meteor (Taito)", + "meteorts", "Meteorites (bootleg of Asteroids)", + "metlclsh", "Metal Clash (Japan)", + "metlhawk", "Metal Hawk (Rev C)", + "metlhawkj", "Metal Hawk (Japan, Rev F)", + "metlsavr", "Metal Saver", + "metmqstr", "Metamoqester (International)", + "metrocrs", "Metro-Cross (set 1)", + "metrocrsa", "Metro-Cross (set 2)", + "mexico", "Mexico 86 (German speech)", + "mexico86", "Mexico 86 (bootleg of Kick and Run)", + "mf_achas", "Astro Chase (Max-A-Flex)", + "mf_bdash", "Boulder Dash (Max-A-Flex)", + "mf_brist", "Bristles (Max-A-Flex)", + "mf_flip", "Flip & Flop (Max-A-Flex)", + "mfightc", "Mahjong Fight Club (ver JAD)", + "mfightcc", "Mahjong Fight Club (ver JAC)", + "mfish_11", "Multi Fish (031124)", + "mfish_12", "Multi Fish (040308)", + "mfish_12a", "Multi Fish (bootleg, 040308, banking address hack)", + "mfish_13", "Multi Fish (040316)", + "mfish_3", "Multi Fish (021124)", + "mfish_3a", "Multi Fish (bootleg, 021124, banking address hack)", + "mfish_6", "Multi Fish (030124)", + "mfish_8", "Multi Fish (030522)", + "mfjump", "Monster Farm Jump (Japan)", + "mfunclub", "Mahjong Fun Club - Idol Saizensen (Japan)", + "mg_alad", "Aladdin's Cave (Maygay M2)", + "mg_bb", "Big Break (Maygay M2)", + "mg_ewg", "Each Way Gambler (Maygay M2)", + "mg_gbr", "Guinness Book Of Records (Maygay M2)", + "mg_jv", "Jack & Vera (Maygay M2)", + "mg_kf", "Krypton Factor (Maygay M2)", + "mg_lug", "London Underground (Maygay M2)", + "mg_pbw", "Pinball Wizard (Maygay M2)", + "mg_risk", "Risk (Maygay M2)", + "mg_scl", "Super Clue (Maygay M2)", + "mgakuen", "Mahjong Gakuen", + "mgakuen2", "Mahjong Gakuen 2 Gakuen-chou no Fukushuu", + "mgcldate", "Magical Date / Magical Date - dokidoki kokuhaku daisakusen (Ver 2.02J)", + "mgcldtex", "Magical Date EX / Magical Date - sotsugyou kokuhaku daisakusen (Ver 2.01J)", + "mgcrystl", "Magical Crystals (World, 92/01/10)", + "mgcrystlj", "Magical Crystals (Japan, 92/01/13)", + "mgcrystlo", "Magical Crystals (World, 91/12/10)", + "mgcs", "Mahjong Man Guan Cai Shen (V103CS)", + "mgdh", "Mahjong Man Guan Da Heng (Taiwan, V125T1)", + "mgdha", "Mahjong Man Guan Da Heng (Taiwan, V123T1)", + "mgfx", "Man Guan Fu Xing", + "mgion", "Gionbana [BET] (Japan 890207)", + "mgmen89", "Mahjong G-MEN'89 (Japan 890425)", + "mgnumber", "Magic Number", + "mgolf", "Atari Mini Golf (prototype)", + "mgprem11", "Magic Premium (v1.1)", + "mhavoc", "Major Havoc (rev 3)", + "mhavoc2", "Major Havoc (rev 2)", + "mhavocp", "Major Havoc (prototype)", + "mhavocrv", "Major Havoc (Return to Vax)", + "mhgaiden", "Mahjong Hourouki Gaiden (Japan)", + "mhhonban", "Mahjong Housoukyoku Honbanchuu (Japan)", + "mia", "M.I.A. - Missing in Action (version T)", + "mia2", "M.I.A. - Missing in Action (version S)", + "miaj", "M.I.A. - Missing in Action (Japan)", + "michigan", "Michigan (Bingo)", + "michkit1", "Michigan Bingo Kit 1 Generation (Bingo)", + "michkitb", "Michigan Kit Bingo Stake 6/10 (Bingo)", + "michnew", "Michigan Bingo New (Bingo)", + "michstake", "Michigan Bingo Stake 6/10 (Bingo)", + "micrombc", "Microman Battle Charge (J 990326 V1.000)", + "midearth", "Middle Earth", + "midnrun", "Midnight Run (Euro v1.11)", + "midres", "Midnight Resistance (World)", + "midresb", "Midnight Resistance (bootleg with 68705)", + "midresj", "Midnight Resistance (Japan)", + "midresu", "Midnight Resistance (US)", + "miexchng", "Money Puzzle Exchanger / Money Idol Exchanger", + "mightguy", "Mighty Guy", + "mightybj", "Vs. Mighty Bomb Jack (Japan)", + "mikie", "Mikie", + "mikiehs", "Mikie (High School Graffiti)", + "mikiej", "Shinnyuushain Tooru-kun", + "mil4000", "Millennium Nuovo 4000 (Version 2.0)", + "mil4000a", "Millennium Nuovo 4000 (Version 1.8)", + "mil4000b", "Millennium Nuovo 4000 (Version 1.5)", + "mil4000c", "Millennium Nuovo 4000 (Version 1.6)", + "millipdd", "Millipede Dux (hack)", + "milliped", "Millipede", + "milln_l3", "Millionaire (L-3)", + "millpac", "Millpac (bootleg of Centipede)", + "millsun", "Millennium Sun", + "mimonkey", "Mighty Monkey", + "mimonsco", "Mighty Monkey (bootleg on Super Cobra hardware)", + "mimonscr", "Mighty Monkey (bootleg on Scramble hardware)", + "minasan", "Minasanno Okagesamadesu! Daisugorokutaikai (MOM-001)(MOH-001)", + "minefld", "Minefield", + "mineswpr", "Minesweeper", + "mineswpr4", "Minesweeper (4-Player)", + "minferno", "Inferno (Meadows)", + "miniboy7", "Mini Boy 7 (set 1)", + "miniboy7a", "Mini Boy 7 (set 2)", + "miniboy7b", "Mini Boy 7 (set 3)", + "minigolf", "Mini Golf (11/25/85)", + "minigolf2", "Mini Golf (10/8/85)", + "minivadr", "Mini Vaders", + "mirage", "Mirage Youjuu Mahjongden (Japan)", + "mirax", "Mirax (set 1)", + "miraxa", "Mirax (set 2)", + "mirderby", "Miracle Derby - Ascot", + "mirninja", "Mirai Ninja (Japan)", + "misncrft", "Mission Craft (version 2.7)", + "misncrfta", "Mission Craft (version 2.4)", + "missb2", "Miss Bubble II", + "missile", "Missile Command (rev 3)", + "missile1", "Missile Command (rev 1)", + "missile2", "Missile Command (rev 2)", + "missilem", "Missile Command Multigame", + "missmw96", "Miss Mister World '96 (Nude)", + "missw96", "Miss World '96 (Nude) (set 1)", + "missw96a", "Miss World '96 (Nude) (set 2)", + "missw96b", "Miss World '96 (Nude) (set 3)", + "mizubaku", "Mizubaku Daibouken (Japan)", + "mj2", "Sega Network Taisen Mahjong MJ 2 (Rev C) (GDX-0006C)", + "mj3", "Sega Network Taisen Mahjong MJ 3 (Rev D) (GDX-0017D)", + "mj3f", "Sega Network Taisen Mahjong MJ 3 (Rev F) (GDX-0017F)", + "mj4simai", "Wakakusamonogatari Mahjong Yonshimai (Japan)", + "mjanbari", "Medal Mahjong Janjan Baribari [BET] (Japan)", + "mjangels", "Mahjong Angels - Comic Theater Vol.2 (Japan)", + "mjapinky", "Almond Pinky [BET] (Japan)", + "mjcamera", "Mahjong Camera Kozou (set 1) (Japan 881109)", + "mjcamerb", "Mahjong Camera Kozou (set 2) (Japan 881109)", + "mjchuuka", "Mahjong Chuukanejyo (China)", + "mjclinic", "Mahjong Clinic (Japan)", + "mjclub", "Mahjong Club [BET] (Japan)", + "mjcomv1", "Mahjong Comic Gekijou Vol.1 (Japan)", + "mjdchuka", "Mahjong The Dai Chuuka Ken (China, v. D111)", + "mjdejav2", "Mahjong Shinkirou Deja Vu 2 (Japan)", + "mjdejavu", "Mahjong Shinkirou Deja Vu (Japan)", + "mjderngr", "Mahjong Derringer (Japan)", + "mjdialq2", "Mahjong Dial Q2 (Japan)", + "mjdiplob", "Mahjong Diplomat [BET] (Japan)", + "mjegolf", "Mahjong Erotica Golf (Japan)", + "mjelct3", "Mahjong Electron Base (parts 2 & 3, Japan)", + "mjelct3a", "Mahjong Electron Base (parts 2 & 3, alt., Japan)", + "mjelctrb", "Mahjong Electron Base (parts 2 & 4, Japan, bootleg)", + "mjelctrn", "Mahjong Electron Base (parts 2 & 4, Japan)", + "mjflove", "Mahjong Fantasic Love (Japan)", + "mjfocus", "Mahjong Focus (Japan 890313)", + "mjfocusm", "Mahjong Focus [BET] (Japan 890510)", + "mjfriday", "Mahjong Friday (Japan)", + "mjgaiden", "Mahjong Gaiden [BET] (Japan 870803)", + "mjgottsu", "Mahjong Gottsu ee-kanji (Japan)", + "mjgottub", "Medal Mahjong Gottsu ee-kanji [BET] (Japan)", + "mjgtaste", "Mahjong G-Taste", + "mjhokite", "Mahjong Hourouki Okite (Japan)", + "mjifb", "Mahjong If...? [BET]", + "mjifb2", "Mahjong If...? [BET](2921)", + "mjifb3", "Mahjong If...? [BET](2931)", + "mjikaga", "Mahjong Ikaga Desu ka (Japan)", + "mjkinjas", "Mahjong Kinjirareta Asobi (Japan)", + "mjkjidai", "Mahjong Kyou Jidai (Japan)", + "mjkoiura", "Mahjong Koi Uranai (Japan set 1)", + "mjkojink", "Mahjong Kojinkyouju (Private Teacher) (Japan)", + "mjlaman", "Mahjong La Man (Japan)", + "mjleague", "Major League", + "mjlstory", "Mahjong Jikken Love Story (Japan)", + "mjmania", "Mahjong Mania - Kairakukan e Youkoso (Japan)", + "mjmyornt", "Mahjong The Mysterious Orient", + "mjmyster", "Mahjong The Mysterious World (set 1)", + "mjmyuniv", "Mahjong The Mysterious Universe", + "mjmywrld", "Mahjong The Mysterious World (set 2)", + "mjnanpaa", "Mahjong Nanpa Story (Japan 890712)", + "mjnanpas", "Mahjong Nanpa Story (Japan 890713)", + "mjnanpau", "Mahjong Nanpa Story (Ura) (Japan 890805)", + "mjnatsu", "Mahjong Natsu Monogatari (Japan)", + "mjnquest", "Mahjong Quest (Japan)", + "mjnquestb", "Mahjong Quest (No Nudity)", + "mjprivat", "Mahjong Private (Japan)", + "mjreach", "Mahjong Reach (bootleg)", + "mjreach1", "Mahjong Reach Ippatsu (Japan)", + "mjsenka", "Mahjong Senka (Japan)", + "mjsikakb", "Mahjong Shikaku (Japan 880722)", + "mjsikakc", "Mahjong Shikaku (Japan 880806)", + "mjsikakd", "Mahjong Shikaku (Japan 880802)", + "mjsikaku", "Mahjong Shikaku (Japan 880908)", + "mjsister", "Mahjong Sisters (Japan)", + "mjsiyoub", "Mahjong Shiyou (Japan)", + "mjtensin", "Mahjong Tensinhai (Japan)", + "mjuraden", "Mahjong Uranai Densetsu (Japan)", + "mjvegas", "Mahjong Vegas (Japan)", + "mjvegasa", "Mahjong Vegas (Japan, unprotected)", + "mjyarou", "Mahjong Yarou [BET] (Japan)", + "mjyougo", "Mahjong-yougo no Kisotairyoku (Japan)", + "mjyuugi", "Mahjong Yuugi (Japan set 1)", + "mjyuugia", "Mahjong Yuugi (Japan set 2)", + "mjzoomin", "Mahjong Channel Zoom In (Japan)", + "mk", "Mortal Kombat (rev 5.0 T-Unit 03/19/93)", + "mk2", "Mortal Kombat II (rev L3.1)", + "mk2chal", "Mortal Kombat II Challenger (hack)", + "mk2r11", "Mortal Kombat II (rev L1.1)", + "mk2r14", "Mortal Kombat II (rev L1.4)", + "mk2r20", "Mortal Kombat II (rev L2.0)", + "mk2r21", "Mortal Kombat II (rev L2.1)", + "mk2r30", "Mortal Kombat II (rev L3.0)", + "mk2r31e", "Mortal Kombat II (rev L3.1 (European))", + "mk2r32e", "Mortal Kombat II (rev L3.2 (European))", + "mk2r42", "Mortal Kombat II (rev L4.2, hack)", + "mk2r91", "Mortal Kombat II (rev L9.1, hack)", + "mk3", "Mortal Kombat 3 (rev 2.1)", + "mk3mdb", "Mortal Kombat 3 (bootleg of Megadrive version)", + "mk3p40", "Mortal Kombat 3 (rev 1 chip label p4.0)", + "mk3r10", "Mortal Kombat 3 (rev 1.0)", + "mk3r20", "Mortal Kombat 3 (rev 2.0)", + "mk4", "Mortal Kombat 4 (version 3.0)", + "mk4a", "Mortal Kombat 4 (version 2.1)", + "mk4b", "Mortal Kombat 4 (version 1.0)", + "mk6nsw11", "Aristocrat MK6 Base (11011901, NSW/ACT)", + "mkartagp", "Mario Kart Arcade GP (MKA2 Ver.B)", + "mkeibaou", "Mahjong Keibaou (Japan)", + "mkla1", "Mortal Kombat (rev 1.0 08/09/92)", + "mkla2", "Mortal Kombat (rev 2.0 08/18/92)", + "mkla3", "Mortal Kombat (rev 3.0 08/31/92)", + "mkla4", "Mortal Kombat (rev 4.0 09/28/92)", + "mknifty", "Mortal Kombat (Nifty Kombo, hack)", + "mknifty666", "Mortal Kombat (Nifty Kombo 666, hack)", + "mkoiuraa", "Mahjong Koi Uranai (Japan set 2)", + "mkprot4", "Mortal Kombat (prototype, rev 4.0 07/14/92)", + "mkprot8", "Mortal Kombat (prototype, rev 8.0 07/21/92)", + "mkprot9", "Mortal Kombat (prototype, rev 9.0 07/28/92)", + "mkr4", "Mortal Kombat (rev 4.0 T-Unit 02/11/93)", + "mktturbo", "Mortal Kombat (Turbo Ninja T-Unit 03/19/93, hack)", + "mkyawdim", "Mortal Kombat (Yawdim bootleg, set 1)", + "mkyawdim2", "Mortal Kombat (Yawdim bootleg, set 2)", + "mkyturbo", "Mortal Kombat (Turbo 3.1 09/09/93, hack)", + "mkyturboe", "Mortal Kombat (Turbo 3.0 08/31/92, hack)", + "mladyhtr", "Mahjong The Lady Hunter (Japan 900509)", + "mlander", "Moon Lander (bootleg of Lunar Rescue)", + "mlanding", "Midnight Landing (Germany)", + "mm_05", "Medieval Madness (0.50)", + "mm_10", "Medieval Madness (1.0)", + "mm_109", "Medieval Madness (1.09)", + "mm_109b", "Medieval Madness (1.09B)", + "mm_109c", "Medieval Madness (1.09C Profanity)", + "mm_10u", "Medieval Madness (1.0 Ultrapin)", + "mmaiko", "Maikobana [BET] (Japan 900911)", + "mmancp2u", "Mega Man: The Power Battle (CPS2, USA 951006, SAMPLE Version)", + "mmatrix", "Mars Matrix: Hyper Solid Shooting (USA 000412)", + "mmatrixd", "Mars Matrix: Hyper Solid Shooting (USA 000412 Phoenix Edition) (bootleg)", + "mmatrixj", "Mars Matrix: Hyper Solid Shooting (Japan 000412)", + "mmaulers", "Monster Maulers (ver EAA)", + "mmaze", "Marchen Maze (Japan)", + "mmcamera", "Mahjong Camera Kozou [BET] (Japan 890509)", + "mmehyou", "Medal Mahjong Circuit no Mehyou [BET] (Japan)", + "mmm_ldip", "Lucky Dip (Maygay)", + "mmmbanc", "Medal Mahjong Moukari Bancho (2007/06/05 MASTER VER.)", + "mmonkey", "Minky Monkey", + "mmpanic", "Monkey Mole Panic (USA)", + "mmpork", "Muchi Muchi Pork! (2007/ 4/17 MASTER VER.)", + "mmsikaku", "Mahjong Shikaku [BET] (Japan 880929)", + "mnchmobl", "Munch Mobile (US)", + "mnfb_c27", "Monday Night Football (2.7, 50cts)", + "mnight", "Mutant Night", + "mntecrlo", "Monte Carlo (Pinball)", + "mnumber", "Mystery Number", + "mnumitg", "Magic Number (Italian Gambling Game, Ver 1.5)", + "mocapb", "Mocap Boxing (ver AAA)", + "mocapbj", "Mocap Boxing (ver JAA)", + "mocapglf", "Mocap Golf (ver UAA)", + "moegonta", "Moeyo Gonta!! (Japan)", + "moeru", "Moeru Casinyo (GDL-0013)", + "mofflott", "Maze of Flott (Japan)", + "moguchan", "Mogu Chan (bootleg?)", + "mogura", "Mogura Desse (Japan)", + "mohicans", "Mohican Sun (Konami Endeavour)", + "mok", "The Maze of the Kings (GDS-0022)", + "mole", "Mole Attack", + "momoko", "Momoko 120%", + "momotaro", "Mahjong Momotarou (Japan)", + "monacogp", "Monaco GP (Set 1) [TTL]", + "monacogpa", "Monaco GP (Set 2) [TTL]", + "moneybnk", "Money In The Bank (NSW, Australia)", + "moneymac", "Money Machine (Version 1.7E Dual)", + "moneymacd1", "Money Machine (Version 1.7R)", + "moneymacd2", "Money Machine (Version 1.7LT)", + "moneymacv1", "Money Machine (Version 1.7R Dual)", + "moneymacv2", "Money Machine (Version 1.7LT Dual)", + "mongolnw", "Mongolfier New (Italian)", + "monkelf", "Monky Elf (Korean bootleg of Avenging Spirit)", + "monkeyba", "Monkey Ball (GDS-0008)", + "monkeyd", "Monkey Donkey", + "mononew", "Monopoly (ARM7 Sound Board)", + "monop233", "Monopoly (2.33)", + "monop251", "Monopoly (2.51)", + "monop301", "Monopoly (3.01)", + "monop303", "Monopoly (3.03)", + "monoplcl", "Monopoly Classic (JPM) (SYSTEM5 VIDEO)", + "monopldx", "Monopoly Deluxe (JPM) (SYSTEM5 VIDEO)", + "monopolf", "Monopoly (France)", + "monopolg", "Monopoly (Germany)", + "monopoli", "Monopoly (Italy)", + "monopoll", "Monopoly (Spain)", + "monopolp", "Monopoly (3.20)", + "monopoly", "Monopoly (JPM) (SYSTEM5 VIDEO, set 1)", + "monopolya", "Monopoly (JPM) (SYSTEM5 VIDEO, set 2)", + "monopred", "Monopoly (Coin dropper)", + "monrobwl", "Stars & Strikes (Bowler)", + "monshow", "The Monster Show (Konami Endeavour)", + "monspdr", "Money Spider (Ace)", + "monsterb", "Monster Bash", + "monsterb2", "Monster Bash (2 board version)", + "monsterz", "Monster Zero", + "montana", "Montana Bingo Stake 6/10 (Bingo)", + "montecar", "Monte Carlo", + "monymony", "Money Money", + "monzagp", "Monza GP", + "monzagpb", "Monza GP (bootleg)", + "moomesa", "Wild West C.O.W.-Boys of Moo Mesa (ver EAB)", + "moomesaaab", "Wild West C.O.W.-Boys of Moo Mesa (ver AAB)", + "moomesabl", "Wild West C.O.W.-Boys of Moo Mesa (bootleg)", + "moomesauab", "Wild West C.O.W.-Boys of Moo Mesa (ver UAB)", + "moomesauac", "Wild West C.O.W.-Boys of Moo Mesa (ver UAC)", + "moonal2", "Moon Alien Part 2", + "moonal2b", "Moon Alien Part 2 (older version)", + "moonaln", "Moon Alien", + "moonbase", "Moon Base (set 1)", + "moonbasea", "Moon Base (set 2)", + "mooncmw", "Moon War (Moon Cresta bootleg)", + "mooncptc", "Moon Cresta (Petaco S.A. Spanish bootleg)", + "mooncreg", "Moon Cresta (Electrogame S.A. Spanish bootleg)", + "mooncrgx", "Moon Cresta (Galaxian hardware)", + "mooncrs2", "Moon Cresta (bootleg set 2)", + "mooncrs3", "Moon Cresta (bootleg set 3)", + "mooncrs4", "Moon Crest (Moon Cresta bootleg)", + "mooncrsb", "Moon Cresta (bootleg set 1)", + "mooncrsl", "Cresta Mundo (Laguna S.A. Spanish Moon Cresta bootleg)", + "mooncrst", "Moon Cresta (Nichibutsu)", + "mooncrstg", "Moon Cresta (Gremlin)", + "mooncrsto", "Moon Cresta (Nichibutsu, old rev)", + "mooncrstu", "Moon Cresta (Nichibutsu USA, unencrypted)", + "mooncrstuk", "Moon Cresta (Nichibutsu UK)", + "mooncrstuku", "Moon Cresta (Nichibutsu UK, unencrypted)", + "moonlght", "Moon Light (bootleg of Golden Star)", + "moonqsr", "Moon Quasar", + "moonwar", "Moonwar", + "moonwara", "Moonwar (older)", + "moonwarp", "Moon War (prototype on Frenzy hardware)", + "moremore", "More More", + "moremorp", "More More Plus", + "mosaic", "Mosaic", + "mosaica", "Mosaic (Fuuki)", + "mosaicf2", "Mosaic (F2 System)", + "mosyougi", "Syougi No Tatsujin - Master of Syougi", + "motofren", "Moto Frenzy", + "motofrenft", "Moto Frenzy (Field Test Version)", + "motofrenmd", "Moto Frenzy (Mini Deluxe)", + "motofrenmf", "Moto Frenzy (Mini Deluxe Field Test Version)", + "motorace", "MotoRace USA", + "motoraid", "Motor Raid - Twin", + "motos", "Motos", + "mototour", "MotoTour / Zippy Race (Tecfri license)", + "motoxgo", "Motocross Go! (MG3 Ver. A)", + "motoxgov1a", "Motocross Go! (MG1 Ver. A, set 1)", + "motoxgov1a2", "Motocross Go! (MG1 Ver. A, set 2)", + "motoxgov2a", "Motocross Go! (MG2 Ver. A)", + "motrdome", "MotorDome", + "motrshow", "Motor Show (set 1)", + "motrshowa", "Motor Show (set 2)", + "mouja", "Mouja (Japan)", + "mouseatk", "Mouse Attack", + "mouser", "Mouser", + "mouserc", "Mouser (Cosmos)", + "mousn_l1", "Mousin' Around! (LA-1)", + "mousn_l4", "Mousin' Around! (LA-4)", + "mousn_lu", "Mousin' Around! (LU-1)", + "mousn_lx", "Mousin' Around! (LX-1)", + "moviecrd", "Movie Card", + "movmastr", "Movie Masters", + "mp_bio", "Bio-hazard Battle (Mega Play)", + "mp_col3", "Columns III (Mega Play)", + "mp_gaxe2", "Golden Axe II (Mega Play)", + "mp_gslam", "Grand Slam (Mega Play)", + "mp_mazin", "Mazin Wars / Mazin Saga (Mega Play)", + "mp_shnb3", "Shinobi III (Mega Play)", + "mp_soni2", "Sonic The Hedgehog 2 (Mega Play)", + "mp_sonic", "Sonic The Hedgehog (Mega Play)", + "mp_sor2", "Streets of Rage II (Mega Play)", + "mp_twc", "Tecmo World Cup (Mega Play)", + "mpang", "Mighty! Pang (Euro 001010)", + "mpangj", "Mighty! Pang (Japan 001011)", + "mpangr1", "Mighty! Pang (Euro 000925)", + "mpangu", "Mighty! Pang (USA 001010)", + "mpatrol", "Moon Patrol", + "mpatrolw", "Moon Patrol (Williams)", + "mplanets", "Mad Planets", + "mplanetsuk", "Mad Planets (UK)", + "mpoker", "Multi-Poker", + "mquake", "Moonquake", + "mranger", "Moon Ranger (bootleg of Moon Patrol)", + "mrblack", "Mr. Black", + "mrblack1", "Mr. Black (alternate set)", + "mrblkz80", "Mr. Black (Z-80 CPU)", + "mrdig", "Mr. Dig", + "mrdo", "Mr. Do!", + "mrdofix", "Mr. Do! (bugfixed)", + "mrdot", "Mr. Do! (Taito)", + "mrdoy", "Mr. Do! (prototype)", + "mrdrillr", "Mr. Driller (US, DRI3/VER.A2)", + "mrdrillrj", "Mr. Driller (Japan, DRI1/VER.A2)", + "mrdrilr2", "Mr. Driller 2 (Japan, DR21 Ver.A)", + "mrdrilrg", "Mr. Driller G (Japan, DRG1 Ver.A)", + "mrdrilrga", "Mr. Driller G ALT (Japan, DRG1 Ver.A)", + "mrdrlr2a", "Mr. Driller 2 (Asia, DR22 Ver.A)", + "mrdu", "Mr. Du!", + "mrflea", "The Amazing Adventures of Mr. F. Lea", + "mrgoemon", "Mr. Goemon (Japan)", + "mrheli", "Mr. HELI no Daibouken", + "mrjong", "Mr. Jong (Japan)", + "mrkicker", "Mr. Kicker", + "mrkougar", "Mr. Kougar", + "mrkougar2", "Mr. Kougar (earlier)", + "mrkougb", "Mr. Kougar (bootleg set 1)", + "mrkougb2", "Mr. Kougar (bootleg set 2)", + "mrlo", "Mr. Lo!", + "mrokumei", "Mahjong Rokumeikan (Japan)", + "mrtlbeat", "Martial Beat (G*B47 VER. JBA)", + "mrtnt", "Mr. TNT", + "mrviking", "Mister Viking (315-5041)", + "mrvikingj", "Mister Viking (315-5041, Japan)", + "ms4plus", "Metal Slug 4 Plus (bootleg)", + "ms5pcb", "Metal Slug 5 (JAMMA PCB)", + "ms5plus", "Metal Slug 5 Plus (bootleg)", + "msbingo", "Miss Bingo", + "mschamp", "Ms. Pacman Champion Edition / Zola-Puc Gal", + "mschamps", "Ms. Pacman Champion Edition / Super Zola-Puc Gal", + "mscoutm", "Mahjong Scout Man (Japan)", + "msgogo", "Mouse Shooter GoGo", + "msgundam", "Mobile Suit Gundam", + "msgundam1", "Mobile Suit Gundam (Japan)", + "msh", "Marvel Super Heroes (Euro 951024)", + "msha", "Marvel Super Heroes (Asia 951024)", + "mshb", "Marvel Super Heroes (Brazil 951117)", + "msheartb", "Ms. Pac-Man Heart Burn", + "mshh", "Marvel Super Heroes (Hispanic 951117)", + "mshj", "Marvel Super Heroes (Japan 951117)", + "mshjr1", "Marvel Super Heroes (Japan 951024)", + "mshu", "Marvel Super Heroes (USA 951024)", + "mshud", "Marvel Super Heroes (US 951024 Phoenix Edition) (bootleg)", + "mshuttle", "Moon Shuttle (US? set 1)", + "mshuttle2", "Moon Shuttle (US? set 2)", + "mshuttlej", "Moon Shuttle (Japan set 1)", + "mshuttlej2", "Moon Shuttle (Japan set 2)", + "mshvsf", "Marvel Super Heroes Vs. Street Fighter (Euro 970625)", + "mshvsfa", "Marvel Super Heroes Vs. Street Fighter (Asia 970625)", + "mshvsfa1", "Marvel Super Heroes Vs. Street Fighter (Asia 970620)", + "mshvsfb", "Marvel Super Heroes Vs. Street Fighter (Brazil 970827)", + "mshvsfb1", "Marvel Super Heroes Vs. Street Fighter (Brazil 970625)", + "mshvsfh", "Marvel Super Heroes Vs. Street Fighter (Hispanic 970625)", + "mshvsfj", "Marvel Super Heroes Vs. Street Fighter (Japan 970707)", + "mshvsfj1", "Marvel Super Heroes Vs. Street Fighter (Japan 970702)", + "mshvsfj2", "Marvel Super Heroes Vs. Street Fighter (Japan 970625)", + "mshvsfu", "Marvel Super Heroes Vs. Street Fighter (USA 970827)", + "mshvsfu1", "Marvel Super Heroes Vs. Street Fighter (USA 970625)", + "mshvsfu1d", "Marvel Super Heroes Vs. Street Fighter (USA 970625 Phoenix Edition) (bootleg)", + "msisaac", "Metal Soldier Isaac II", + "msjiken", "Mahjong Satsujin Jiken (Japan 881017)", + "mslider", "Monster Slider (Japan)", + "mslug", "Metal Slug - Super Vehicle-001", + "mslug2", "Metal Slug 2 - Super Vehicle-001/II (NGM-2410)(NGH-2410)", + "mslug3", "Metal Slug 3 (NGM-2560)", + "mslug3b6", "Metal Slug 6 (Metal Slug 3 bootleg)", + "mslug3h", "Metal Slug 3 (NGH-2560)", + "mslug4", "Metal Slug 4 (NGM-2630)", + "mslug4h", "Metal Slug 4 (NGH-2630)", + "mslug5", "Metal Slug 5 (NGM-2680)", + "mslug5h", "Metal Slug 5 (NGH-2680)", + "mslug6", "Metal Slug 6", + "mslugx", "Metal Slug X - Super Vehicle-001 (NGM-2500)(NGH-2500)", + "mspacii", "Ms. Pac-Man II (Orca bootleg set 1)", + "mspacii2", "Ms. Pac-Man II (Orca bootleg set 2)", + "mspacmab", "Ms. Pac-Man (bootleg)", + "mspacman", "Ms. Pac-Man", + "mspacmanbg", "Ms. Pac-Man ('Made in Greece' bootleg)", + "mspacmancr", "Ms. Pac-Man (bootleg on Crush Roller Hardware)", + "mspacmat", "Ms. Pac Attack", + "mspacmbe", "Ms. Pac-Man (bootleg, encrypted)", + "mspacmnf", "Ms. Pac-Man (speedup hack)", + "mspacpls", "Ms. Pac-Man Plus", + "mspuzzle", "Miss Puzzle", + "mspuzzleg", "Miss Puzzle (Clone of Gumbo)", + "mspuzzlen", "Miss Puzzle (Nudes)", + "mstadium", "Main Stadium (Japan)", + "mstworld", "Monsters World (bootleg of Super Pang)", + "msword", "Magic Sword: Heroic Fantasy (World 900725)", + "mswordj", "Magic Sword: Heroic Fantasy (Japan 900623)", + "mswordr1", "Magic Sword: Heroic Fantasy (World 900623)", + "mswordu", "Magic Sword: Heroic Fantasy (USA 900725)", + "mt_aftrb", "After Burner (Mega-Tech, SMS based)", + "mt_arrow", "Arrow Flash (Mega-Tech)", + "mt_astrm", "Alien Storm (Mega-Tech)", + "mt_astro", "Astro Warrior (Mega-Tech, SMS based)", + "mt_asyn", "Alien Syndrome (Mega-Tech, SMS based)", + "mt_bbros", "Bonanza Bros. (Mega-Tech)", + "mt_beast", "Altered Beast (Mega-Tech)", + "mt_calga", "California Games (Mega-Tech)", + "mt_cols", "Columns (Mega-Tech)", + "mt_crack", "Crack Down (Mega-Tech)", + "mt_eswat", "Cyber Police ESWAT: Enhanced Special Weapons and Tactics (Mega-Tech)", + "mt_fshrk", "Fire Shark (Mega-Tech)", + "mt_fwrld", "Forgotten Worlds (Mega-Tech)", + "mt_fz", "Fantasy Zone (Mega-Tech, SMS based)", + "mt_gaxe", "Golden Axe (Mega-Tech)", + "mt_gaxe2", "Golden Axe II (Mega-Tech)", + "mt_gfoot", "Great Football (Mega-Tech, SMS based)", + "mt_ggolf", "Great Golf (Mega-Tech, SMS based)", + "mt_gng", "Ghouls'n Ghosts (Mega-Tech)", + "mt_gsocr", "Great Soccer (Mega-Tech, SMS based)", + "mt_kcham", "Kid Chameleon (Mega-Tech)", + "mt_lastb", "Last Battle (Mega-Tech)", + "mt_mlh", "Mario Lemieux Hockey (Mega-Tech)", + "mt_mwalk", "Michael Jackson's Moonwalker (Mega-Tech)", + "mt_mystd", "Mystic Defender (Mega-Tech)", + "mt_orun", "Out Run (Mega-Tech, SMS based)", + "mt_parlg", "Parlour Games (Mega-Tech, SMS based)", + "mt_revsh", "The Revenge of Shinobi (Mega-Tech)", + "mt_shado", "Shadow Dancer (Mega-Tech)", + "mt_shang", "Super Hang-On (Mega-Tech)", + "mt_shar2", "Space Harrier II (Mega-Tech)", + "mt_shnbi", "Shinobi (Mega-Tech, SMS based)", + "mt_smgp", "Super Monaco GP (Mega-Tech)", + "mt_soni2", "Sonic The Hedgehog 2 (Mega-Tech)", + "mt_sonia", "Sonic The Hedgehog (Mega-Tech, set 2)", + "mt_sonic", "Sonic The Hedgehog (Mega-Tech, set 1)", + "mt_spman", "Spider-Man vs The Kingpin (Mega-Tech)", + "mt_srage", "Streets of Rage (Mega-Tech)", + "mt_srbb", "Super Real Basketball (Mega-Tech)", + "mt_stbld", "Super Thunder Blade (Mega-Tech)", + "mt_stf", "Joe Montana II: Sports Talk Football (Mega-Tech)", + "mt_tetri", "Tetris (Mega-Tech)", + "mt_tfor2", "Thunder Force II MD (Mega-Tech)", + "mt_tgolf", "Arnold Palmer Tournament Golf (Mega-Tech)", + "mt_tlbba", "Tommy Lasorda Baseball (Mega-Tech)", + "mt_tout", "Turbo Outrun (Mega-Tech)", + "mt_wcsoc", "World Championship Soccer (Mega-Tech)", + "mt_wwar", "Wrestle War (Mega-Tech)", + "mtburn", "Money To Burn (Russia)", + "mtetrisc", "Magical Tetris Challenge (981009 Japan)", + "mtkob2", "Mushiking The King Of Beetle 2K3 2nd", + "mtlchamp", "Martial Champion (ver EAB)", + "mtlchamp1", "Martial Champion (ver EAA)", + "mtlchampa", "Martial Champion (ver AAA)", + "mtlchampj", "Martial Champion (ver JAA)", + "mtlchampu", "Martial Champion (ver UAE)", + "mtlchampu1", "Martial Champion (ver UAD)", + "mtrain", "Magic Train (Ver. 1.31)", + "mtrainnv", "Magic Train (Clear NVRAM ROM?)", + "mtrap", "Mouse Trap (version 5)", + "mtrap3", "Mouse Trap (version 3)", + "mtrap4", "Mouse Trap (version 4)", + "mtrapb", "Mouse Trap (bootleg)", + "mtwins", "Mega Twins (World 900619)", + "mugsmash", "Mug Smashers", + "multchmp", "Multi Champ (World, ver. 2.5)", + "multchmpk", "Multi Champ (Korea)", + "multigam", "Multi Game (set 1)", + "multigm2", "Multi Game 2", + "multigm3", "Multi Game III", + "multigmb", "Multi Game (set 2)", + "multigmt", "Multi Game (Tung Sheng Electronics)", + "multiped", "Multipede (Centipede/Millipede multigame kit)", + "multiwin", "Multi Win (Ver.0167, encrypted)", + "mundial", "Mundial 90", + "murogem", "Muroge Monaco (set 1)", + "murogema", "Muroge Monaco (set 2)", + "murogemb", "Muroge Monaco (set 3)", + "murogmbl", "Muroge Monaco (bootleg?)", + "mushi2ea", "MushiKing II - The King Of Beetle II ENG (Ver. 2.001)", + "mushik2e", "MushiKing II - The King Of Beetle II ENG (Ver. 1.001)", + "mushisam", "Mushihime-Sama (2004/10/12.MASTER VER.)", + "mushisama", "Mushihime-Sama (2004/10/12 MASTER VER.)", + "mushisamb", "Mushihime-Sama (2004/10/12 MASTER VER)", + "mushitam", "Puzzle! Mushihime-Tama (2005/09/09.MASTER VER)", + "mushitama", "Puzzle! Mushihime-Tama (2005/09/09 MASTER VER)", + "mushmagi", "Mushroom Magic (Russia) (Atronic)", + "musicbal", "Music Ball", + "musicsrt", "Music Sort (ver 2.02, English)", + "musobana", "Musoubana (Japan)", + "mustache", "Mustache Boy", + "mustang", "US AAF Mustang (25th May. 1990)", + "mustangb", "US AAF Mustang (bootleg)", + "mustangb2", "US AAF Mustang (TAB Austria bootleg)", + "mustangs", "US AAF Mustang (25th May. 1990 / Seoul Trading)", + "mutantf", "Mutant Fighter (World ver EM-5)", + "mutantf3", "Mutant Fighter (World ver EM-3)", + "mutantf4", "Mutant Fighter (World ver EM-4)", + "mutnat", "Mutation Nation (NGM-014)(NGH-014)", + "mv1bon", "Believe It Or Not (Maygay, MV1 Video)", + "mv1cpc", "Caesar's Palace Club (Maygay, MV1 Video, set 1)", + "mv1cpca", "Caesar's Palace Club (Maygay, MV1 Video, set 2)", + "mv1cpcb", "Caesar's Palace Club (Maygay, MV1 Video, set 3)", + "mv1cwq", "Crossword Quiz (Maygay, MV1 Video, set 1)", + "mv1cwqa", "Crossword Quiz (Maygay, MV1 Video, set 2)", + "mv1guac", "Give Us A Clue (Maygay, MV1 Video, set 1)", + "mv1guaca", "Give Us A Clue (Maygay, MV1 Video, set 2)", + "mv1sfx", "Special Effects (Maygay, MV1 Video, set 1)", + "mv1sfx2", "Special Effects V2 (Maygay, MV1 Video)", + "mv1sfxa", "Special Effects (Maygay, MV1 Video, set 2)", + "mv1wc", "World Cup (Maygay, MV1 Video)", + "mv4in1", "Mini Vegas 4in1", + "mvp", "MVP (set 2, US, FD1094 317-0143)", + "mvpj", "MVP (set 1, Japan, FD1094 317-0142)", + "mvsc", "Marvel Vs. Capcom: Clash of Super Heroes (Euro 980123)", + "mvsc2", "Marvel Vs. Capcom 2 New Age of Heroes (JPN, USA, EUR, ASI, AUS) (Rev A)", + "mvsca", "Marvel Vs. Capcom: Clash of Super Heroes (Asia 980123)", + "mvscar1", "Marvel Vs. Capcom: Clash of Super Heroes (Asia 980112)", + "mvscb", "Marvel Vs. Capcom: Clash of Super Heroes (Brazil 980123)", + "mvsch", "Marvel Vs. Capcom: Clash of Super Heroes (Hispanic 980123)", + "mvscj", "Marvel Vs. Capcom: Clash of Super Heroes (Japan 980123)", + "mvscjr1", "Marvel Vs. Capcom: Clash of Super Heroes (Japan 980112)", + "mvscjsing", "Marvel Vs. Capcom: Clash of Super Heroes (Japan 980123) (Single PCB)", + "mvscr1", "Marvel Vs. Capcom: Clash of Super Heroes (Euro 980112)", + "mvscu", "Marvel Vs. Capcom: Clash of Super Heroes (USA 980123)", + "mvscud", "Marvel Vs. Capcom: Clash of Super Heroes (USA 980123 Phoenix Edition) (bootleg)", + "mvscur1", "Marvel Vs. Capcom: Clash of Super Heroes (USA 971222)", + "mwalk", "Michael Jackson's Moonwalker (World, FD1094/8751 317-0159)", + "mwalkbl", "Michael Jackson's Moonwalker (bootleg)", + "mwalkj", "Michael Jackson's Moonwalker (Japan, FD1094/8751 317-0157)", + "mwalku", "Michael Jackson's Moonwalker (US, FD1094/8751 317-0158)", + "mwarr", "Mighty Warriors", + "mwskins", "Skins Game (1.06)", + "mwskinsa", "Skins Game (1.06, alt)", + "mwskinso", "Skins Game (1.04)", + "mx5000", "MX5000", + "myangel", "Kosodate Quiz My Angel (Japan)", + "myangel2", "Kosodate Quiz My Angel 2 (Japan)", + "myangel3", "Kosodate Quiz My Angel 3 (Japan, KQT1/VER.A)", + "myfairld", "Virtual Mahjong 2 - My Fair Lady (J 980608 V1.000)", + "myhero", "My Hero (US, not encrypted)", + "myherok", "My Hero (Korea)", + "myqbert", "Mello Yello Q*bert", + "mystcast", "Mystery Castle", + "mystic", "Mystic", + "mysticm", "Mystic Marathon", + "mysticmp", "Mystic Marathon (prototype)", + "mysticri", "Mystic Riders (World)", + "mysticrib", "Mystic Riders (bootleg?)", + "myststar", "Mystic Star", + "mystston", "Mysterious Stones - Dr. John's Adventure", + "myststono", "Mysterious Stones - Dr. Kick in Adventure", + "myststonoi", "Mysterious Stones - Dr. Kick in Adventure (Itisa PCB)", + "mystwarr", "Mystic Warriors (ver EAA)", + "mystwarra", "Mystic Warriors (ver AAA)", + "mystwarrj", "Mystic Warriors (ver JAA)", + "mystwarru", "Mystic Warriors (ver UAA)", + "nagano98", "Nagano Winter Olympics '98 (GX720 EAA)", + "naganoj", "Hyper Olympic in Nagano (GX720 JAA)", + "nam1975", "NAM-1975 (NGM-001)(NGH-001)", + "namcostr", "Namco Stars", + "nametune", "Name That Tune (set 1)", + "nametune2", "Name That Tune (3/23/86)", + "naname", "Naname de Magic! (Japan)", + "naomi", "Naomi Bios", + "naomi2", "Naomi 2 Bios", + "naomigd", "Naomi GD-ROM Bios", + "narc", "Narc (rev 7.00)", + "narc2", "Narc (rev 2.00)", + "narc3", "Narc (rev 3.20)", + "nascar", "Nascar (4.50)", + "nascar_301", "Nascar (3.01)", + "nascar_340", "Nascar (3.40)", + "nascar_350", "Nascar (3.50)", + "nascar_352", "Nascar (3.52)", + "nascar_400", "Nascar (4.00)", + "nascarl", "Nascar (4.50 Spain)", + "nascarl_301", "Nascar (3.01 Spain)", + "nascarl_340", "Nascar (3.40 Spain)", + "nascarl_350", "Nascar (3.50 Spain)", + "nascarl_352", "Nascar (3.52 Spain)", + "nascarl_400", "Nascar (4.00 Spain)", + "nastar", "Nastar (World)", + "nastarw", "Nastar Warrior (US)", + "natodef", "NATO Defense", + "natodefa", "NATO Defense (alternate mazes)", + "natsuiro", "Natsuiro Mahjong (Japan)", + "naughtyb", "Naughty Boy", + "naughtyba", "Naughty Boy (bootleg)", + "naughtybc", "Naughty Boy (Cinematronics)", + "navarone", "Navarone", + "nbaf_11", "NBA Fastbreak (1.1)", + "nbaf_115", "NBA Fastbreak (1.15)", + "nbaf_11a", "NBA Fastbreak (1.1 - S2.0)", + "nbaf_11s", "NBA Fastbreak (1.1 - S0.4)", + "nbaf_21", "NBA Fastbreak (2.1)", + "nbaf_22", "NBA Fastbreak (2.2)", + "nbaf_23", "NBA Fastbreak (2.3)", + "nbaf_31", "NBA Fastbreak (3.1 - S3.0)", + "nbaf_31a", "NBA Fastbreak (3.1 - S1.0)", + "nbahangt", "NBA Hangtime (rev L1.1 04/16/96)", + "nbajam", "NBA Jam (rev 3.01 04/07/93)", + "nbajamex", "NBA Jam Extreme", + "nbajamr2", "NBA Jam (rev 2.00 02/10/93)", + "nbajamte", "NBA Jam TE (rev 4.0 03/23/94)", + "nbajamte1", "NBA Jam TE (rev 1.0 01/17/94)", + "nbajamte2", "NBA Jam TE (rev 2.0 01/28/94)", + "nbajamte3", "NBA Jam TE (rev 3.0 03/04/94)", + "nbajamten", "NBA Jam T.E. Nani Edition (rev 5.2 8/11/95, prototype)", + "nbamht", "NBA Maximum Hangtime (rev 1.03 06/09/97)", + "nbamht1", "NBA Maximum Hangtime (rev 1.0 11/08/96)", + "nbanfl", "NBA Showtime / NFL Blitz 2000", + "nbapbp", "NBA Play By Play", + "nbashowt", "NBA Showtime: NBA on NBC", + "nbbatman", "Ninja Baseball Bat Man (World)", + "nbbatman2bl", "Ninja Baseball Bat Man II (bootleg)", + "nbbatmanu", "Ninja Baseball Bat Man (US)", + "nc96", "New Cherry '96 Special Edition (v3.63, C1 PCB)", + "nc96a", "New Cherry '96 Special Edition (v3.62, C1 PCB)", + "nc96b", "New Cherry '96 Special Edition (v3.54, D PCB)", + "nc96c", "New Cherry '96 Special Edition (v3.62, DK PCB)", + "nc96txt", "New Cherry '96 Special Edition (v1.32 Texas XT, C2 PCB)", + "ncb3", "Cherry Bonus III (ver.1.40, set 1)", + "nclubv3", "Name Club Ver.3 (J 970723 V1.000)", + "ncombat", "Ninja Combat (NGM-009)", + "ncombath", "Ninja Combat (NGH-009)", + "ncommand", "Ninja Commando", + "ncv1", "Namco Classic Collection Vol.1", + "ncv1j", "Namco Classic Collection Vol.1 (Japan, v1.00)", + "ncv1j2", "Namco Classic Collection Vol.1 (Japan, v1.03)", + "ncv2", "Namco Classic Collection Vol.2", + "ncv2j", "Namco Classic Collection Vol.2 (Japan)", + "ndcfboxa", "Naomi DIMM Firmware Update for CF-BOX (Rev A) (GDS-0042A)", + "ndxron10", "Royal on Ten (Noraut Deluxe hack)", + "nebulray", "Nebulas Ray (World, NR2)", + "nebulrayj", "Nebulas Ray (Japan, NR1)", + "neckneck", "Neck-n-Neck (v1.2)", + "nekkyoku", "Rettou Juudan Nekkyoku Janshi - Higashi Nippon Hen (Japan)", + "nemesis", "Nemesis (ROM version)", + "nemesisp", "Nemesis", + "nemesisuk", "Nemesis (World?, ROM version)", + "nemo", "Nemo (World 901130)", + "nemoj", "Nemo (Japan 901120)", + "neobattl", "SD Gundam Neo Battling (Japan)", + "neobombe", "Neo Bomberman", + "neocup98", "Neo-Geo Cup '98 - The Road to the Victory", + "neodrift", "Neo Drift Out - New Technology", + "neogeo", "Neo-Geo", + "neomrdo", "Neo Mr. Do!", + "neptunp2", "Neptune's Pearls 2", + "neruton", "Mahjong Neruton Haikujiradan (Japan, Rev. B?)", + "nerutona", "Mahjong Neruton Haikujiradan (Japan, Rev. A?)", + "netchu02", "Netchuu Pro Yakyuu 2002 (NPY1 Ver. A)", + "netmerc", "NetMerc?", + "nettoqc", "Nettoh Quiz Champion (Japan)", + "netwars", "Net Wars", + "nevada", "VLC Nevada", + "newapunk", "New Atomic Punk - Global Quest (US)", + "newdixie", "New Dixieland (Bingo)", + "newfant", "New Fantasia (1995 copyright)", + "newfanta", "New Fantasia (1994 copyright)", + "newhilop", "New Hi-Low Poker", + "newmcard", "New Magic Card", + "newpuc2", "Newpuc2 (set 1)", + "newpuc2b", "Newpuc2 (set 2)", + "newpuckx", "New Puck-X", + "news", "News (set 1)", + "newsa", "News (set 2)", + "newsin7", "New Sinbad 7", + "newtangl", "New Tropical Angel", + "newwave", "New Wave", + "nextfase", "Next Fase (bootleg of Phoenix)", + "nf_20", "No Fear: Dangerous Sports (2.0)", + "nf_22", "No Fear: Dangerous Sports (2.2)", + "nf_23", "No Fear: Dangerous Sports (2.3)", + "nf_23f", "No Fear: Dangerous Sports (2.3F)", + "nf_23x", "No Fear: Dangerous Sports (2.3X)", + "nfb96", "New Fruit Bonus '96 Special Edition (v3.63, C1 PCB)", + "nfb96a", "New Fruit Bonus '96 Special Edition (v3.62, C1 PCB)", + "nfb96b", "New Fruit Bonus '96 Special Edition (v3.54, D PCB)", + "nfb96c", "New Fruit Bonus '96 Special Edition (v3.62, DK PCB)", + "nfb96se", "New Fruit Bonus '96 Special Edition (bootleg, set 1)", + "nfb96sea", "New Fruit Bonus '96 Special Edition (bootleg, set 2)", + "nfb96seb", "New Fruit Bonus '96 Special Edition (bootleg, set 3)", + "nfb96txt", "New Fruit Bonus '96 Special Edition (v1.22 Texas XT, C2 PCB)", + "nfl", "NFL", + "nflclsfb", "NFL Classic Football (US, NCF3 Ver.A.)", + "nflfoot", "NFL Football", + "nfm", "New Fruit Machine (Ming-Yang Electronic)", + "nfsug", "Need For Speed: Underground Install (2 Discs) (v1.1)", + "ngalsumr", "Night Gal Summer", + "ngbc", "Neo-Geo Battle Coliseum", + "ngdup23a", "Naomi DIMM Firmware Updater (Rev A) (GDS-0023A)", + "ngdup23c", "Naomi DIMM Firmware Updater (Rev C) (GDS-0023C)", + "ngdup23e", "Naomi DIMM Firmware Updater (Rev E) (GDS-0023E)", + "ngg_10", "No Good Gofers (1.0)", + "ngg_13", "No Good Gofers (1.3)", + "ngg_p06", "No Good Gofers (p0.6)", + "ngndshkr", "Nitro Ground Shaker", + "ngold", "Jack Potten's Poker (NGold, set 1)", + "ngolda", "Jack Potten's Poker (NGold, set 2)", + "ngoldb", "Jack Potten's Poker (NGold, set 3)", + "ngpgal", "Nekketsu Grand-Prix Gal (Japan)", + "ngtbunny", "Night Bunny (Japan 840601 MRN 2-10)", + "nhidctch", "New Hidden Catch (World) / New Tul Lin Gu Lim Chat Ki '98 (Korea) (pcb ver 3.02)", + "nibbler", "Nibbler (rev 9)", + "nibbler6", "Nibbler (rev 6)", + "nibbler8", "Nibbler (rev 8)", + "nibblero", "Nibbler (Olympia - rev 8)", + "nibblerp", "Nibbler (Pioneer Balloon conversion)", + "nightgal", "Night Gal (Japan 840920 AG 1-00)", + "nightlov", "Night Love (Japan 860705)", + "nightr20", "Night Rider (rev. 20)", + "nightrai", "Night Raid (V2.03J)", + "nightrdr", "Night Rider (rev. 21)", + "nightstr", "Night Striker (World)", + "nightstrj", "Night Striker (Japan)", + "nightstru", "Night Striker (US)", + "ninclown", "Ninja Clowns (08/27/91)", + "nineball", "Nine Ball", + "ninja", "Ninja (315-5102)", + "ninjak", "The Ninja Kids (World)", + "ninjakd2", "Ninja-Kid II / NinjaKun Ashura no Shou (set 1)", + "ninjakd2a", "Ninja-Kid II / NinjaKun Ashura no Shou (set 2, bootleg?)", + "ninjakd2b", "Ninja-Kid II / NinjaKun Ashura no Shou (set 3, bootleg?)", + "ninjakj", "The Ninja Kids (Japan)", + "ninjaku", "The Ninja Kids (US)", + "ninjakun", "Ninjakun Majou no Bouken", + "ninjamas", "Ninja Master's - haoh-ninpo-cho", + "ninjaslt", "Ninja Assault (NJA3 Ver. A)", + "ninjaslt1", "Ninja Assault (NJA1 Ver. A)", + "ninjaslt2", "Ninja Assault (NJA2 Ver. A)", + "ninjaslt4", "Ninja Assault (NJA4 Ver. A)", + "ninjaw", "The Ninja Warriors (World)", + "ninjawj", "The Ninja Warriors (Japan)", + "ninjawu", "The Ninja Warriors (US)", + "ninjemak", "Ninja Emaki (US)", + "nitd", "Nightmare in the Dark", + "nitdbl", "Nightmare in the Dark (bootleg)", + "nitedrvr", "Night Driver", + "nitrobal", "Nitro Ball (US)", + "niyanpai", "Niyanpai (Japan)", + "nkdodge", "Nekketsu Koukou Dodgeball Bu (Japan)", + "nkdodgeb", "Nekketsu Koukou Dodgeball Bu (Japan, bootleg)", + "nkishusp", "Mahjong Nenrikishu SP (Japan, V250J)", + "nmaster", "Oni - The Ninja Master (Japan)", + "nmg5", "Multi 5 / New Multi Game 5 (set 1)", + "nmg5a", "Multi 5 / New Multi Game 5 (set 2)", + "nmg5e", "Multi 5 / New Multi Game 5 (set 3, earlier)", + "nmouse", "Naughty Mouse (set 1)", + "nmouseb", "Naughty Mouse (set 2)", + "nmoves", "Night Moves", + "nmsengen", "Nekketsu Mahjong Sengen! AFTER 5 (Japan)", + "nndmseal", "Nandemo Seal Iinkai", + "nndmseala", "Nandemo Seal Iinkai (Astro Boy ver.)", + "noahsark", "Noah's Ark", + "nob", "Noboranka (Japan)", + "nobb", "Noboranka (Japan, bootleg)", + "nomnlnd", "No Man's Land", + "nomnlndg", "No Man's Land (Gottlieb)", + "noraut3a", "Noraut Joker Poker (V3.010a)", + "noraut3b", "Noraut Joker Poker (V3.011a)", + "norautdx", "Noraut Deluxe Poker (console)", + "norautjo", "Noraut Joker Poker (original)", + "norautjp", "Noraut Joker Poker (alt)", + "norautp", "Noraut Poker", + "norautpl", "Noraut Joker Poker (Prologic HW)", + "norautpn", "Noraut Deluxe Poker (bootleg)", + "norautra", "Noraut Red Hot Joker Poker (alt HW)", + "norautrh", "Noraut Red Hot Joker Poker", + "norautu", "Noraut Poker (NTX10A)", + "norautua", "Noraut unknown set 1 (console)", + "norautub", "Noraut unknown set 2 (console)", + "nost", "Nostradamus", + "nostj", "Nostradamus (Japan)", + "nostk", "Nostradamus (Korea)", + "nouryoku", "Nouryoku Koujou Iinkai", + "nouryokup", "Nouryoku Koujou Iinkai (prototype)", + "nova2001", "Nova 2001 (Japan)", + "nova2001u", "Nova 2001 (US)", + "novoplay", "Novo Play Multi Card / Club Card", + "npcartv1", "Neo Print V1 (World)", + "nprinces", "Ninja Princess (315-5051, 64k Ver. bootleg?)", + "nprincesb", "Ninja Princess (315-5051?, 128k Ver. bootleg?)", + "nprinceso", "Ninja Princess (315-5098, 128k Ver.)", + "nprincesu", "Ninja Princess (64k Ver. not encrypted)", + "nprsp", "NeopriSP Retro Collection (Japan)", + "nrallyx", "New Rally X", + "nrallyxb", "New Rally X (bootleg?)", + "nratechu", "Neratte Chu", + "ns8lines", "New Lucky 8 Lines / New Super 8 Lines (W-4)", + "ns8linew", "New Lucky 8 Lines / New Super 8 Lines (F-5, Witch Bonus)", + "nslasher", "Night Slashers (Korea Rev 1.3)", + "nslasherj", "Night Slashers (Japan Rev 1.2)", + "nslashers", "Night Slashers (Over Sea Rev 1.2)", + "nslasheru", "Night Slashers (US Rev 1.2, HuC6280 Sound CPU)", + "nsmpoker", "NSM Poker (TMS9995)", + "nspirit", "Ninja Spirit", + "nspiritj", "Saigo no Nindou (Japan)", + "nss", "Nintendo Super System BIOS", + "nss_actr", "Act Raiser (Nintendo Super System)", + "nss_adam", "The Addams Family (Nintendo Super System)", + "nss_aten", "David Crane's Amazing Tennis (Nintendo Super System)", + "nss_con3", "Contra 3: The Alien Wars (Nintendo Super System)", + "nss_fzer", "F-Zero (Nintendo Super System)", + "nss_lwep", "Lethal Weapon (Nintendo Super System)", + "nss_ncaa", "NCAA Basketball (Nintendo Super System)", + "nss_rob3", "Robocop 3 (Nintendo Super System)", + "nss_skin", "Skins Game (Nintendo Super System)", + "nss_smw", "Super Mario World (Nintendo Super System)", + "nss_ssoc", "Super Soccer (Nintendo Super System)", + "nss_sten", "Super Tennis (Nintendo Super System)", + "nstocker", "Night Stocker (10/6/86)", + "nstocker2", "Night Stocker (8/27/86)", + "nstrphnx", "New Star's Phoenix (Italian speech)", + "nsub", "N-Sub (upright)", + "ntcash", "NtCash", + "ntopstar", "Mahjong Nerae! Top Star (Japan)", + "nudgeit", "Nudge-It", + "nugent", "Nugent", + "numanath", "Numan Athletics (World)", + "numanathj", "Numan Athletics (Japan)", + "number1", "Number One", + "number10", "Number Dieci (Poker)", + "numbr10l", "Number Dieci (Lattine)", + "nunchaku", "Nunchackun", + "nwarr", "Night Warriors: Darkstalkers' Revenge (Euro 950316)", + "nwarra", "Night Warriors: Darkstalkers' Revenge (Asia 950302)", + "nwarrb", "Night Warriors: Darkstalkers' Revenge (Brazil 950403)", + "nwarrh", "Night Warriors: Darkstalkers' Revenge (Hispanic 950403)", + "nwarru", "Night Warriors: Darkstalkers' Revenge (USA 950406)", + "nwarrud", "Night Warriors: Darkstalkers' Revenge (USA 950406 Phoenix Edition) (bootleg)", + "nyanpani", "Nyan Nyan Panic (Japan)", + "nycaptor", "N.Y. Captor", + "nyjoker", "New York Joker", + "nyny", "New York! New York!", + "nynyg", "New York! New York! (Gottlieb)", + "nzeroteam", "New Zero Team", + "obaoba", "Oba-Oba", + "obaoba1", "Oba-Oba (alternate set)", + "oceanhun", "The Ocean Hunter", + "odeontw2", "Odeon Twister 2 (v202.19)", + "odin", "Odin", + "odin_dlx", "Odin De Luxe", + "odisea", "Odisea Paris-Dakar", + "oedfight", "Oedo Fight (Japan Bloodshed Ver.)", + "officeye", "Office Yeo In Cheon Ha (version 1.2)", + "offroad", "Ironman Ivan Stewart's Super Off-Road", + "offroadc", "Off Road Challenge (v1.63)", + "offroadc1", "Off Road Challenge (v1.10)", + "offroadc3", "Off Road Challenge (v1.30)", + "offroadc4", "Off Road Challenge (v1.40)", + "offroadc5", "Off Road Challenge (v1.50)", + "offroadt", "Ironman Ivan Stewart's Super Off-Road Track-Pak", + "offroadt2p", "Ironman Ivan Stewart's Super Off-Road Track-Pak (2 Players)", + "offrthnd", "Offroad Thunder", + "offtwall", "Off the Wall (2/3-player upright)", + "offtwallc", "Off the Wall (2-player cocktail)", + "ogonsiro", "Ougon no Shiro (Japan)", + "ohbakyuun", "Oh! Bakyuuun (Japan, OB1/VER.A)", + "ohmygod", "Oh My God! (Japan)", + "ohpaipee", "Oh! Paipee (Japan 890227)", + "oigas", "Oigas (bootleg)", + "oinori", "Oinori-daimyoujin Matsuri", + "oisipuzl", "Oishii Puzzle Ha Irimasenka", + "ojanko2", "Ojanko Yakata 2bankan (Japan)", + "ojankoc", "Ojanko Club (Japan)", + "ojankohs", "Ojanko High School (Japan)", + "ojankoy", "Ojanko Yakata (Japan)", + "ojousan", "Ojousan (Japan 871204)", + "ojousanm", "Ojousan [BET] (Japan 870108)", + "olds", "Oriental Legend Special / Xi You Shi E Zhuan Super (ver. 101, Korean Board)", + "olds100", "Oriental Legend Special / Xi You Shi E Zhuan Super (ver. 100, set 1)", + "olds100a", "Oriental Legend Special / Xi You Shi E Zhuan Super (ver. 100, set 2)", + "olds103t", "Oriental Legend Special / Xi You Shi E Zhuan Super (ver. 103, China, Tencent) (unprotected)", + "oldsplus", "Oriental Legend Special Plus / Xi You Shi E Zhuan Super Plus", + "olibochu", "Oli-Boo-Chu", + "oligam", "Olympian Games (Russia)", + "ollie", "Ollie King (GDX-0007)", + "olympic", "Olympic Games", + "olympus", "Olympus", + "olysoc92", "Olympic Soccer '92 (set 1)", + "olysoc92a", "Olympic Soccer '92 (set 2)", + "omega", "Omega", + "omegaf", "Omega Fighter", + "omegafs", "Omega Fighter Special", + "omegrace", "Omega Race (set 1)", + "omegrace2", "Omega Race (set 2)", + "omni", "Omni", + "omni_l1", "Omni (Shuffle) (L-1)", + "omotesnd", "Omotesandou (Japan 890215)", + "oneshot", "One Shot One Kill", + "onetwo", "One + Two", + "onetwoe", "One + Two (earlier)", + "onna34ro", "Onna Sansirou - Typhoon Gal (set 1)", + "onna34roa", "Onna Sansirou - Typhoon Gal (set 2)", + "opaopa", "Opa Opa (MC-8123, 317-0042)", + "opengolf", "Konami's Open Golf Championship (ver EAE)", + "opengolf2", "Konami's Open Golf Championship (ver EAD)", + "openice", "2 On 2 Open Ice Challenge (rev 1.21)", + "openmj", "Open Mahjong [BET] (Japan)", + "opthund", "Operation: Thunder", + "optiger", "Operation Tiger", + "opwolf", "Operation Wolf (World, set 1)", + "opwolf3", "Operation Wolf 3 (World)", + "opwolf3u", "Operation Wolf 3 (US)", + "opwolfa", "Operation Wolf (World, set 2)", + "opwolfb", "Operation Bear (bootleg of Operation Wolf)", + "opwolfj", "Operation Wolf (Japan)", + "opwolfu", "Operation Wolf (US)", + "orangec", "Orange Club - Maruhi Kagai Jugyou (Japan 880213)", + "orangeci", "Orange Club - Maru-hi Ippatsu Kaihou [BET] (Japan 880221)", + "orbatak", "Orbatak (prototype)", + "orbit", "Orbit", + "orbit1", "Orbit 1", + "orbitor1", "Orbitor 1", + "orbitron", "Orbitron", + "orbs", "Orbs (10/7/94 prototype?)", + "ordyne", "Ordyne (Japan, English Version)", + "ordynej", "Ordyne (Japan)", + "orleg2", "Oriental Legend 2 (V104, China)", + "orleg2o", "Oriental Legend 2 (V103, China)", + "orlegend", "Oriental Legend / Xi You Shi E Zhuan (ver. 126)", + "orlegend105k", "Oriental Legend / Xi You Shi E Zhuan (ver. 105, Korean Board)", + "orlegend111c", "Oriental Legend / Xi You Shi E Zhuan (ver. 111, Chinese Board)", + "orlegendc", "Oriental Legend / Xi You Shi E Zhuan (ver. 112, Chinese Board)", + "orlegendca", "Oriental Legend / Xi You Shi E Zhuan (ver. ???, Chinese Board)", + "orlegende", "Oriental Legend / Xi You Shi E Zhuan (ver. 112)", + "orunners", "OutRunners (World)", + "orunnersj", "OutRunners (Japan)", + "orunnersu", "OutRunners (US)", + "oscar", "Psycho-Nics Oscar (World revision 0)", + "oscarj1", "Psycho-Nics Oscar (Japan revision 1)", + "oscarj2", "Psycho-Nics Oscar (Japan revision 2)", + "oscaru", "Psycho-Nics Oscar (US)", + "osman", "Osman (World)", + "otatidai", "Disco Mahjong Otachidai no Okite (Japan)", + "otchart", "Off The Charts (Russia)", + "otenamhf", "Otenami Haiken Final (V2.07JC)", + "otenamih", "Otenami Haiken (V2.04J)", + "otenki", "Otenki Kororin (V2.01J)", + "othello", "Othello (version 3.0)", + "othellos", "Othello Shiyouyo (J 980423 V1.002)", + "othldrby", "Othello Derby (Japan)", + "othunder", "Operation Thunderbolt (World)", + "othunderj", "Operation Thunderbolt (Japan)", + "othunderu", "Operation Thunderbolt (US)", + "othunderuo", "Operation Thunderbolt (US, older)", + "otonano", "Otona no Mahjong (Japan 880628)", + "otrigger", "OutTrigger (JPN, USA, EXP, KOR, AUS)", + "otwalls", "Off the Wall (Sente)", + "outfxies", "The Outfoxies (World, OU2)", + "outfxiesj", "The Outfoxies (Japan, OU1)", + "outlaw", "Outlaw [TTL]", + "outline", "Outline", + "outr2", "Out Run 2 (Rev A) (GDX-0004A)", + "outr2st", "Out Run 2 Special Tours (Rev A) (GDX-0014A)", + "outrun", "Out Run (sitdown/upright, Rev B)", + "outrunb", "Out Run (bootleg)", + "outrundx", "Out Run (deluxe sitdown)", + "outrundxa", "Out Run (deluxe sitdown earlier version)", + "outrundxj", "Out Run (Japan, deluxe sitdown, FD1089A 317-0019)", + "outrunra", "Out Run (sitdown/upright, Rev A)", + "outzone", "Out Zone", + "outzonea", "Out Zone (old set)", + "outzoneb", "Out Zone (older set)", + "outzonec", "Out Zone (oldest set)", + "outzoneh", "Out Zone (harder)", + "overdriv", "Over Drive", + "overrev", "Over Rev (Model 2C, Revision A)", + "overrevb", "Over Rev (Model 2B, Revision B)", + "overtop", "Over Top", + "ozmawars", "Ozma Wars (set 1)", + "ozmawars2", "Ozma Wars (set 2)", + "ozon1", "Ozon I", + "p47", "P-47 - The Phantom Fighter (World)", + "p47aces", "P-47 Aces", + "p47j", "P-47 - The Freedom Fighter (Japan)", + "p47je", "P-47 - The Freedom Fighter (Japan, Export)", + "p911", "Police 911 (ver UAD)", + "p9112", "Police 911 2 (ver A)", + "p911e", "Police 24/7 (ver EAA)", + "p911j", "Keisatsukan Shinjuku 24ji (ver JAC)", + "p911kc", "Police 911 (ver KAC)", + "p911uc", "Police 911 (ver UAC)", + "pacapp", "Paca Paca Passion (Japan, PPP1/VER.A2)", + "pacapp2", "Paca Paca Passion 2 (Japan, PKS1/VER.A)", + "pacappsp", "Paca Paca Passion Special (Japan, PSP1/VER.A)", + "pacgal", "Pac-Gal", + "pacheart", "Pac-Man (Hearts)", + "pachifev", "Pachifever", + "pachiten", "Medal Mahjong Pachi-Slot Tengoku [BET] (Japan)", + "pacland", "Pac-Land (World)", + "paclandj", "Pac-Land (Japan new)", + "paclandjo", "Pac-Land (Japan old)", + "paclandjo2", "Pac-Land (Japan older)", + "paclandm", "Pac-Land (Midway)", + "paclandp", "Pac-Land (United Amusements PC Engine)", + "pacman", "Pac-Man (Midway)", + "pacmanbl", "Pac-Man (Galaxian hardware, set 1)", + "pacmanbla", "Pac-Man (Galaxian hardware, set 2)", + "pacmanf", "Pac-Man (Midway, speedup hack)", + "pacmania", "Pac-Mania", + "pacmaniaj", "Pac-Mania (Japan)", + "pacmansp", "Puck Man (Spanish, 'Made in Greece' bootleg)", + "pacmod", "Pac-Man (Midway, harder)", + "pacnchmp", "Pac-Man & Chomp Chomp", + "pacnpal", "Pac & Pal", + "pacnpal2", "Pac & Pal (older)", + "pacominv", "Pacom Invader", + "pacplus", "Pac-Man Plus", + "pacslot", "Pac-Slot", + "pacuman", "Pacu-Man (Spanish bootleg of Puck Man)", + "paddle2", "Paddle 2 (bootleg on Block hardware)", + "paddlema", "Paddle Mania", + "paintlad", "Painted Lady (Splash) (Ver. 1.3 US)", + "paintrlr", "Paint Roller (bootleg of Crush Roller)", + "pairlove", "Pairs Love", + "pairs", "Pairs (V1.2, 09/30/94)", + "pairsa", "Pairs (09/07/94)", + "pairsnb", "Pairs (Nichibutsu) (Japan 890822)", + "pairsred", "Pairs Redemption (V1.0, 10/25/94)", + "pairsten", "Pairs (System Ten) (Japan 890826)", + "pajaroes", "Pajaro del Espacio (Spanish bootleg of UniWar S)", + "palamed", "Palamedes (Japan)", + "pandoras", "Pandora's Palace", + "pang", "Pang (World)", + "pang3", "Pang! 3 (Euro 950601)", + "pang3b", "Pang! 3 (bootleg)", + "pang3j", "Pang! 3: Kaitou Tachi no Karei na Gogo (Japan 950511)", + "pang3r1", "Pang! 3 (Euro 950511)", + "pangb", "Pang (bootleg, set 1)", + "pangb2", "Pang (bootleg, set 4)", + "pangba", "Pang (bootleg, set 3)", + "pangbold", "Pang (bootleg, set 2)", + "pangofun", "Pango Fun (Italy)", + "pangpang", "Pang Pang", + "pangpoms", "Pang Pom's", + "pangpomsm", "Pang Pom's (Mitchell)", + "panic", "Space Panic (version E)", + "panic2", "Space Panic (set 2)", + "panic3", "Space Panic (set 3)", + "panicbom", "Panic Bomber", + "panicger", "Space Panic (German)", + "panich", "Space Panic (harder)", + "panicprk", "Panic Park (PNP2 Ver. A)", + "panicprkj", "Panic Park (PNP1 Ver. B)", + "panicr", "Panic Road (Japan)", + "panicrg", "Panic Road (Germany)", + "panicstr", "Panic Street (Japan)", + "panikuru", "Panicuru Panekuru (Japan, PPA1 Ver.A)", + "panther", "Panther", + "panthera", "Panthera", + "panzer", "Panzer (bootleg of Spectar)", + "paperboy", "Paperboy (rev 3)", + "paperboyr1", "Paperboy (rev 1)", + "paperboyr2", "Paperboy (rev 2)", + "papillon", "Papillon", + "paprazzi", "Paparazzi", + "para2dx", "Paradise 2 Deluxe", + "paradice", "Paradice (Dutch, Game Card 95-750-615)", + "paradise", "Paradise", + "paradlx", "Paradise Deluxe", + "paragon", "Paragon", + "paranoia", "Paranoia", + "parentj", "Parent Jack", + "parodius", "Parodius DA! (World, set 1)", + "parodiusa", "Parodius DA! (Asia)", + "parodiuse", "Parodius DA! (World, set 2)", + "parodiusj", "Parodius DA! (Japan)", + "parrot3", "Parrot Poker III (Version 2.6E Dual)", + "parrot3b1", "Parrot Poker III (Version 2.6R, set 1)", + "parrot3d1", "Parrot Poker III (Version 2.6R, set 2)", + "parrot3o", "Parrot Poker III (Version 2.4)", + "parrot3v1", "Parrot Poker III (Version 2.6R Dual)", + "party", "Party", + "pasha2", "Pasha Pasha 2", + "pass", "Pass", + "passht4b", "Passing Shot (4 Players) (bootleg)", + "passsht", "Passing Shot (World, 2 Players, FD1094 317-0080)", + "passsht16a", "Passing Shot (Japan, 4 Players, System 16A, FD1094 317-0071)", + "passshta", "Passing Shot (World, 4 Players, FD1094 317-0074)", + "passshtb", "Passing Shot (2 Players) (bootleg)", + "passshtj", "Passing Shot (Japan, 4 Players, FD1094 317-0070)", + "pastelg", "Pastel Gal (Japan 851224)", + "patimono", "Mahjong Pachinko Monogatari (Japan)", + "pb_l2", "Pin-Bot (L-2)", + "pb_l3", "Pin-Bot (L-3)", + "pb_l5", "Pin-Bot (L-5)", + "pbaction", "Pinball Action (set 1)", + "pbaction2", "Pinball Action (set 2)", + "pbaction3", "Pinball Action (set 3, encrypted)", + "pbaction4", "Pinball Action (set 4, encrypted)", + "pbaction5", "Pinball Action (set 5, encrypted)", + "pballoon", "Pioneer Balloon", + "pballoonr", "Pioneer Balloon (Rock-Ola license)", + "pbancho", "Gyakuten!! Puzzle Bancho (Japan)", + "pbchmp95", "Pinball Champ '95", + "pbillian", "Prebillian", + "pbillrd", "Perfect Billiard", + "pbillrds", "Perfect Billiard (MC-8123, 317-0030)", + "pblbeach", "Pebble Beach - The Great Shot (JUE 950913 V0.990)", + "pbobbl2n", "Puzzle Bobble 2 / Bust-A-Move Again (Neo-Geo)", + "pbobble", "Puzzle Bobble (Japan, B-System)", + "pbobble2", "Puzzle Bobble 2 (Ver 2.3O 1995/07/31)", + "pbobble2j", "Puzzle Bobble 2 (Ver 2.2J 1995/07/20)", + "pbobble2o", "Puzzle Bobble 2 (Ver 2.2O 1995/07/20)", + "pbobble2u", "Bust-A-Move Again (Ver 2.3A 1995/07/31)", + "pbobble2x", "Puzzle Bobble 2X (Ver 2.2J 1995/11/11)", + "pbobble3", "Puzzle Bobble 3 (Ver 2.1O 1996/09/27)", + "pbobble3j", "Puzzle Bobble 3 (Ver 2.1J 1996/09/27)", + "pbobble3u", "Puzzle Bobble 3 (Ver 2.1A 1996/09/27)", + "pbobble4", "Puzzle Bobble 4 (Ver 2.04O 1997/12/19)", + "pbobble4j", "Puzzle Bobble 4 (Ver 2.04J 1997/12/19)", + "pbobble4u", "Puzzle Bobble 4 (Ver 2.04A 1997/12/19)", + "pbobblen", "Puzzle Bobble / Bust-A-Move (Neo-Geo) (NGM-083)", + "pbobblenb", "Puzzle Bobble / Bust-A-Move (Neo-Geo) (bootleg)", + "pbss330", "Pit Boss Superstar III 30 (9233-00-01)", + "pbst30", "Pit Boss Supertouch 30 (9234-10-01)", + "pbst30b", "Pit Boss Supertouch 30 (9234-00-01)", + "pc_1942", "1942 (PlayChoice-10)", + "pc_bball", "Baseball (PlayChoice-10)", + "pc_bfght", "Balloon Fight (PlayChoice-10)", + "pc_bload", "Bases Loaded (Prototype, PlayChoice-10)", + "pc_bstar", "Baseball Stars: Be a Champ! (PlayChoice-10)", + "pc_cntra", "Contra (PlayChoice-10)", + "pc_cshwk", "Captain Sky Hawk (PlayChoice-10)", + "pc_cvnia", "Castlevania (PlayChoice-10)", + "pc_dbldr", "Double Dribble (PlayChoice-10)", + "pc_ddrgn", "Double Dragon (PlayChoice-10)", + "pc_drmro", "Dr. Mario (PlayChoice-10)", + "pc_duckh", "Duck Hunt (PlayChoice-10)", + "pc_ebike", "Excite Bike (PlayChoice-10)", + "pc_ftqst", "Uncle Fester's Quest: The Addams Family (PlayChoice-10)", + "pc_gntlt", "Gauntlet (PlayChoice-10)", + "pc_golf", "Golf (PlayChoice-10)", + "pc_goons", "The Goonies (PlayChoice-10)", + "pc_grdue", "Gradius (PlayChoice-10, older)", + "pc_grdus", "Gradius (PlayChoice-10)", + "pc_hgaly", "Hogan's Alley (PlayChoice-10)", + "pc_kngfu", "Kung Fu (PlayChoice-10)", + "pc_mario", "Mario Bros. (PlayChoice-10)", + "pc_miket", "Mike Tyson's Punch-Out!! (PlayChoice-10)", + "pc_mman3", "Mega Man III (PlayChoice-10)", + "pc_moglf", "Mario's Open Golf (PlayChoice-10)", + "pc_mtoid", "Metroid (PlayChoice-10)", + "pc_ngai2", "Ninja Gaiden Episode II: The Dark Sword of Chaos (PlayChoice-10)", + "pc_ngai3", "Ninja Gaiden Episode III: The Ancient Ship of Doom (PlayChoice-10)", + "pc_ngaid", "Ninja Gaiden (PlayChoice-10)", + "pc_pinbt", "PinBot (PlayChoice-10)", + "pc_pwbld", "Power Blade (PlayChoice-10)", + "pc_pwrst", "Pro Wrestling (PlayChoice-10)", + "pc_radr2", "Rad Racer II (PlayChoice-10)", + "pc_radrc", "Rad Racer (PlayChoice-10)", + "pc_rcpam", "R.C. Pro-Am (PlayChoice-10)", + "pc_rkats", "Rockin' Kats (PlayChoice-10)", + "pc_rnatk", "Rush'n Attack (PlayChoice-10)", + "pc_rrngr", "Chip'n Dale: Rescue Rangers (PlayChoice-10)", + "pc_rygar", "Rygar (PlayChoice-10)", + "pc_sjetm", "Solar Jetman (PlayChoice-10)", + "pc_smb", "Super Mario Bros. (PlayChoice-10)", + "pc_smb2", "Super Mario Bros. 2 (PlayChoice-10)", + "pc_smb3", "Super Mario Bros. 3 (PlayChoice-10)", + "pc_suprc", "Super C (PlayChoice-10)", + "pc_tbowl", "Tecmo Bowl (PlayChoice-10)", + "pc_tenis", "Tennis (PlayChoice-10)", + "pc_tkfld", "Track & Field (PlayChoice-10)", + "pc_tmnt", "Teenage Mutant Ninja Turtles (PlayChoice-10)", + "pc_tmnt2", "Teenage Mutant Ninja Turtles II: The Arcade Game (PlayChoice-10)", + "pc_trjan", "Trojan (PlayChoice-10)", + "pc_vball", "Volley Ball (PlayChoice-10)", + "pc_virus", "Virus (Dr. Mario prototype, PlayChoice-10)", + "pc_wcup", "Nintendo World Cup (PlayChoice-10)", + "pc_wgnmn", "Wild Gunman (PlayChoice-10)", + "pc_ynoid", "Yo! Noid (PlayChoice-10)", + "pcktgal", "Pocket Gal (Japan)", + "pcktgal2", "Pocket Gal 2 (English)", + "pcktgal2j", "Pocket Gal 2 (Japanese)", + "pcktgalb", "Pocket Gal (bootleg)", + "pclb297w", "Print Club 2 '97 Winter Ver (J 971017 V1.100)", + "pclb298a", "Print Club 2 '98 Autumn Ver (J 980827 V1.000)", + "pclb2elk", "Print Club 2 Earth Limited Kobe (Print Club Custom) (J 970808 V1.000)", + "pclub2", "Print Club 2 (U 970921 V1.000)", + "pclub298", "Print Club 2 '98 Spring Ver (J 971017 V1.100)", + "pclub2fc", "Print Club 2 Felix The Cat (Rev. A) (J 970415 V1.100)", + "pclub2kc", "Print Club Kome Kome Club (J 970203 V1.000)", + "pclub2v3", "Print Club 2 Vol. 3 (U 990310 V1.000)", + "pclubj", "Print Club (Japan Vol.1)", + "pclubjv2", "Print Club (Japan Vol.2)", + "pclubjv4", "Print Club (Japan Vol.4)", + "pclubjv5", "Print Club (Japan Vol.5)", + "pclubol", "Print Club Olive (J 980717 V1.000)", + "pclubor", "Print Club Goukakenran (J 991104 V1.000)", + "pclubpok", "Print Club Pokemon B (U 991126 V1.000)", + "pclubys", "Puzzle Club (Yun Sung, set 1)", + "pclubysa", "Puzzle Club (Yun Sung, set 2)", + "pcnfrk3m", "Percussion Freaks 3rd Mix (G*A23 VER. KAA)", + "pdrift", "Power Drift (World, Rev A)", + "pdrifta", "Power Drift (World)", + "pdrifte", "Power Drift (World, Earlier)", + "pdriftj", "Power Drift (Japan)", + "pebe0014", "Player's Edge Plus (BE0014) Blackjack", + "pecmen", "Mr. & Mrs. Pec-Men", + "peekaboo", "Peek-a-Boo!", + "peepshow", "Nozokimeguri Mahjong Peep Show (Japan 890404)", + "peggle", "Peggle (Joystick, v1.0)", + "pegglet", "Peggle (Trackball, v1.0)", + "peip0041", "Player's Edge Plus (IP0041) Double Deuces Wild Poker - French", + "peip0074", "Player's Edge Plus (IP0074) Joker Poker - French", + "peip0079", "Player's Edge Plus (IP0079) Standard Draw Poker - French", + "peke1012", "Player's Edge Plus (KE1012) Keno", + "peke1013", "Player's Edge Plus (KE1013) Keno", + "penalty", "Penalty (Bingo)", + "penbros", "Penguin Brothers (Japan)", + "penfan", "Penfan Girls - Step1. Mild Mind (set 1)", + "penfana", "Penfan Girls - Step1. Mild Mind (set 2)", + "pengadvb", "Penguin Adventure (bootleg of MSX version)", + "pengo", "Pengo (set 1 rev c)", + "pengo2", "Pengo (set 2)", + "pengo2u", "Pengo (set 2 not encrypted)", + "pengo3u", "Pengo (set 3 not encrypted)", + "pengo4", "Pengo (set 4)", + "pengob", "Pengo (bootleg)", + "penky", "Penky", + "penta", "Penta", + "pentacup", "Pentacup (rev. 1)", + "pentacup2", "Pentacup (rev. 2)", + "pepp0002", "Player's Edge Plus (PP0002) Standard Draw Poker", + "pepp0002a", "Player's Edge Plus (PP0002) Standard Draw Poker (International)", + "pepp0008", "Player's Edge Plus (PP0008) Standard Draw Poker", + "pepp0010", "Player's Edge Plus (PP0010) Standard Draw Poker", + "pepp0014", "Player's Edge Plus (PP0014) Standard Draw Poker (International)", + "pepp0014a", "Player's Edge Plus (PP0014) Standard Draw Poker", + "pepp0023", "Player's Edge Plus (PP0023) 10's or Better", + "pepp0040", "Player's Edge Plus (PP0040) Standard Draw Poker", + "pepp0041", "Player's Edge Plus (PP0041) Standard Draw Poker", + "pepp0043", "Player's Edge Plus (PP0043) 10's or Better", + "pepp0045", "Player's Edge Plus (PP0045) 10's or Better", + "pepp0046", "Player's Edge Plus (PP0046) 10's or Better", + "pepp0051", "Player's Edge Plus (PP0051) Joker Poker", + "pepp0053", "Player's Edge Plus (PP0053) Joker Poker (Aces or Better)", + "pepp0055", "Player's Edge Plus (PP0055) Deuces Wild Poker (set 1)", + "pepp0055a", "Player's Edge Plus (PP0055) Deuces Wild Poker (set 2)", + "pepp0055b", "Player's Edge Plus (PP0055) Deuces Wild Poker (set 3)", + "pepp0057", "Player's Edge Plus (PP0057) Deuces Wild Poker (set 1)", + "pepp0057a", "Player's Edge Plus (PP0057) Deuces Wild Poker (set 2)", + "pepp0059", "Player's Edge Plus (PP0059) Two Pair or Better (set 1)", + "pepp0059a", "Player's Edge Plus (PP0059) Two Pair or Better (set 2)", + "pepp0060", "Player's Edge Plus (PP0060) Standard Draw Poker (set 1)", + "pepp0060a", "Player's Edge Plus (PP0060) Standard Draw Poker (set 2)", + "pepp0064", "Player's Edge Plus (PP0064) Joker Poker", + "pepp0065", "Player's Edge Plus (PP0065) Joker Poker (Aces or Better)", + "pepp0083", "Player's Edge Plus (PP0083) 10's or Better", + "pepp0103", "Player's Edge Plus (PP0103) Deuces Wild Poker", + "pepp0116", "Player's Edge Plus (PP0116) Standard Draw Poker", + "pepp0118", "Player's Edge Plus (PP0118) Standard Draw Poker", + "pepp0120", "Player's Edge Plus (PP0120) Wild Sevens Poker", + "pepp0125", "Player's Edge Plus (PP0125) Deuces Wild Poker", + "pepp0126", "Player's Edge Plus (PP0126) Deuces Wild Poker", + "pepp0127", "Player's Edge Plus (PP0127) Deuces Joker Wild Poker", + "pepp0158", "Player's Edge Plus (PP0158) 4 of a Kind Bonus Poker (set 1)", + "pepp0158a", "Player's Edge Plus (PP0158) 4 of a Kind Bonus Poker (set 2)", + "pepp0158b", "Player's Edge Plus (PP0158) 4 of a Kind Bonus Poker (set 3)", + "pepp0159", "Player's Edge Plus (PP0159) Standard Draw Poker (International)", + "pepp0171", "Player's Edge Plus (PP0171) Joker Poker", + "pepp0178", "Player's Edge Plus (PP0178) 4 of a Kind Bonus Poker (Operator selectable special 4 of a Kind)", + "pepp0188", "Player's Edge Plus (PP0188) Standard Draw Poker (set 1)", + "pepp0188a", "Player's Edge Plus (PP0188) Standard Draw Poker (set 2)", + "pepp0190", "Player's Edge Plus (PP0190) Deuces Wild Poker", + "pepp0197", "Player's Edge Plus (PP0197) Standard Draw Poker (set 1)", + "pepp0197a", "Player's Edge Plus (PP0197) Standard Draw Poker (set 2)", + "pepp0203", "Player's Edge Plus (PP0203) 4 of a Kind Bonus Poker (set 1)", + "pepp0203a", "Player's Edge Plus (PP0203) 4 of a Kind Bonus Poker (set 2)", + "pepp0203b", "Player's Edge Plus (PP0203) 4 of a Kind Bonus Poker (set 3)", + "pepp0219", "Player's Edge Plus (PP0219) Standard Draw Poker", + "pepp0221", "Player's Edge Plus (PP0221) Standard Draw Poker (set 1)", + "pepp0221a", "Player's Edge Plus (PP0221) Standard Draw Poker (set 2)", + "pepp0224", "Player's Edge Plus (PP0224) Deuces Wild Poker (set 1)", + "pepp0224a", "Player's Edge Plus (PP0224) Deuces Wild Poker (set 2)", + "pepp0230", "Player's Edge Plus (PP0230) Standard Draw Poker", + "pepp0249", "Player's Edge Plus (PP0249) Deuces Wild Poker", + "pepp0250", "Player's Edge Plus (PP0250) Double Down Stud Poker", + "pepp0265", "Player's Edge Plus (PP0265) 4 of a Kind Bonus Poker (set 1)", + "pepp0265a", "Player's Edge Plus (PP0265) 4 of a Kind Bonus Poker (set 2)", + "pepp0274", "Player's Edge Plus (PP0274) Standard Draw Poker", + "pepp0290", "Player's Edge Plus (PP0290) Deuces Wild Poker", + "pepp0291", "Player's Edge Plus (PP0291) Deuces Wild Poker", + "pepp0409", "Player's Edge Plus (PP0409) 4 of a Kind Bonus Poker", + "pepp0410", "Player's Edge Plus (PP0410) 4 of a Kind Bonus Poker", + "pepp0417", "Player's Edge Plus (PP0417) Deuces Wild Poker (set 1)", + "pepp0417a", "Player's Edge Plus (PP0417) Deuces Wild Poker (set 2)", + "pepp0419", "Player's Edge Plus (PP0419) Standard Draw Poker", + "pepp0420", "Player's Edge Plus (PP0420) Standard Draw Poker", + "pepp0423", "Player's Edge Plus (PP0423) Standard Draw Poker", + "pepp0426", "Player's Edge Plus (PP0426) Joker Poker", + "pepp0428", "Player's Edge Plus (PP0428) Joker Poker", + "pepp0429", "Player's Edge Plus (PP0429) Joker Poker (Aces or Better)", + "pepp0434", "Player's Edge Plus (PP0434) Bonus Poker Deluxe", + "pepp0447", "Player's Edge Plus (PP0447) Standard Draw Poker (set 1)", + "pepp0447a", "Player's Edge Plus (PP0447) Standard Draw Poker (set 2)", + "pepp0449", "Player's Edge Plus (PP0449) Standard Draw Poker", + "pepp0452", "Player's Edge Plus (PP0452) Double Deuces Wild Poker", + "pepp0454", "Player's Edge Plus (PP0454) Bonus Poker Deluxe", + "pepp0455", "Player's Edge Plus (PP0455) Joker Poker", + "pepp0458", "Player's Edge Plus (PP0458) Joker Poker (Aces or Better)", + "pepp0488", "Player's Edge Plus (PP0488) Standard Draw Poker (Arizona Charlie's)", + "pepp0508", "Player's Edge Plus (PP0508) Loose Deuce Deuces Wild! Poker", + "pepp0509", "Player's Edge Plus (PP0509) Standard Draw Poker", + "pepp0510", "Player's Edge Plus (PP0510) Standard Draw Poker", + "pepp0514", "Player's Edge Plus (PP0514) Double Bonus Poker (set 1)", + "pepp0514a", "Player's Edge Plus (PP0514) Double Bonus Poker (set 2)", + "pepp0514b", "Player's Edge Plus (PP0514) Double Bonus Poker (set 3)", + "pepp0515", "Player's Edge Plus (PP0515) Double Bonus Poker (set 1)", + "pepp0515a", "Player's Edge Plus (PP0515) Double Bonus Poker (set 2)", + "pepp0516", "Player's Edge Plus (PP0516) Double Bonus Poker (set 1)", + "pepp0516a", "Player's Edge Plus (PP0516) Double Bonus Poker (set 2)", + "pepp0531", "Player's Edge Plus (PP0531) Joker Poker", + "pepp0536", "Player's Edge Plus (PP0536) Joker Poker", + "pepp0538", "Player's Edge Plus (PP0538) Double Bonus Poker", + "pepp0540", "Player's Edge Plus (PP0540) Double Bonus Poker", + "pepp0542", "Player's Edge Plus (PP0542) One Eyed Jacks Wild Poker", + "pepp0568", "Player's Edge Plus (PP0568) Joker Poker", + "pepp0585", "Player's Edge Plus (PP0585) Standard Draw Poker", + "pepp0713", "Player's Edge Plus (PP0713) Bonus Poker Deluxe", + "pepp0725", "Player's Edge Plus (PP0725) Double Bonus Poker (set 1)", + "pepp0725a", "Player's Edge Plus (PP0725) Double Bonus Poker (set 2)", + "pepp0726", "Player's Edge Plus (PP0726) Double Bonus Poker", + "pepp0728", "Player's Edge Plus (PP0728) Double Bonus Poker", + "pepp0760", "Player's Edge Plus (PP0760) Double Down Stud Poker", + "pepp0763", "Player's Edge Plus (PP0763) 4 of a Kind Bonus Poker", + "pepp0775", "Player's Edge Plus (PP0775) Royal Deuces Poker??", + "pepper2", "Pepper II (version 8)", + "pepper27", "Pepper II (version 7)", + "peps0014", "Player's Edge Plus (PS0014) Super Joker Slots", + "peps0021", "Player's Edge Plus (PS0021) Red White & Blue Slots", + "peps0022", "Player's Edge Plus (PS0022) Red White & Blue Slots", + "peps0042", "Player's Edge Plus (PS0042) Double Diamond Slots", + "peps0043", "Player's Edge Plus (PS0043) Double Diamond Slots", + "peps0045", "Player's Edge Plus (PS0045) Red White & Blue Slots", + "peps0047", "Player's Edge Plus (PS0047) Wild Cherry Slots", + "peps0092", "Player's Edge Plus (PS0092) Wild Cherry Slots", + "peps0206", "Player's Edge Plus (PS0206) Red White & Blue Slots", + "peps0207", "Player's Edge Plus (PS0207) Red White & Blue Slots", + "peps0296", "Player's Edge Plus (PS0296) Haywire Slots", + "peps0298", "Player's Edge Plus (PS0298) Double Diamond Slots", + "peps0308", "Player's Edge Plus (PS0308) Double Jackpot Slots", + "peps0364", "Player's Edge Plus (PS0364) Red White & Blue Slots", + "peps0426", "Player's Edge Plus (PS0426) Sizzling Sevens Slots", + "peps0581", "Player's Edge Plus (PS0581) Red White & Blue Slots", + "peps0615", "Player's Edge Plus (PS0615) Chaos Slots", + "peps0631", "Player's Edge Plus (PS0631) Red White & Blue Slots", + "peps0716", "Player's Edge Plus (PS0716) River Gambler Slots", + "pepsiman", "PEPSI Man", + "percuss", "The Percussor", + "perestro", "Perestroika Girls", + "perestrof", "Perestroika Girls (Fuuki license)", + "perfect", "Perfect Game (Russia)", + "perfrman", "Performan (Japan)", + "perfrmanu", "Performan (US)", + "pesadelo", "Pesadelo (bootleg of Knightmare on MSX)", + "peset001", "Player's Edge Plus (Set001) Set Chip", + "peset038", "Player's Edge Plus (Set038) Set Chip", + "pestplce", "Pest Place", + "petaco", "Petaco", + "petaco2", "Petaco 2", + "peterpak", "Peter Pack-Rat", + "pettanp", "Pettan Pyuu (Japan)", + "pex0002p", "Player's Edge Plus (X000002P+XP000038) Standard Draw Poker", + "pex0002pa", "Player's Edge Plus (X000002P+XP000109) Standard Draw Poker", + "pex0040p", "Player's Edge Plus (X000040P+XP000038) Standard Draw Poker", + "pex0045p", "Player's Edge Plus (X000045P+XP000038) 10's or Better", + "pex0046p", "Player's Edge Plus (X000046P+XP000038) 10's or Better", + "pex0053p", "Player's Edge Plus (X000053P+XP000038) Joker Poker (Aces or Better)", + "pex0054p", "Player's Edge Plus (X000054P+XP000038) Deuces Wild Poker", + "pex0055p", "Player's Edge Plus (X000055P+XP000019) Deuces Wild Poker", + "pex0055pa", "Player's Edge Plus (X000055P+XP000022) Deuces Wild Poker (The Orleans)", + "pex0055pb", "Player's Edge Plus (X000055P+XP000023) Deuces Wild Poker", + "pex0055pc", "Player's Edge Plus (X000055P+XP000028) Deuces Wild Poker", + "pex0055pd", "Player's Edge Plus (X000055P+XP000035) Deuces Wild Poker", + "pex0055pe", "Player's Edge Plus (X000055P+XP000038) Deuces Wild Poker", + "pex0055pf", "Player's Edge Plus (X000055P+XP000040) Deuces Wild Poker", + "pex0055pg", "Player's Edge Plus (X000055P+XP000053) Deuces Wild Poker", + "pex0055ph", "Player's Edge Plus (X000055P+XP000055) Deuces Wild Poker", + "pex0055pi", "Player's Edge Plus (X000055P+XP000063) Deuces Wild Poker", + "pex0055pj", "Player's Edge Plus (X000055P+XP000075) Deuces Wild Poker", + "pex0055pk", "Player's Edge Plus (X000055P+XP000079) Deuces Wild Poker", + "pex0055pl", "Player's Edge Plus (X000055P+XP000094) Deuces Wild Poker", + "pex0055pm", "Player's Edge Plus (X000055P+XP000095) Deuces Wild Poker", + "pex0055pn", "Player's Edge Plus (X000055P+XP000098) Deuces Wild Poker", + "pex0055po", "Player's Edge Plus (X000055P+XP000102) Deuces Wild Poker", + "pex0055pp", "Player's Edge Plus (X000055P+XP000104) Deuces Wild Poker", + "pex0055pq", "Player's Edge Plus (X000055P+XP000112) Deuces Wild Poker", + "pex0055pr", "Player's Edge Plus (X000055P+XP000126) Deuces Wild Poker", + "pex0060p", "Player's Edge Plus (X000060P+XP000038) Standard Draw Poker", + "pex0158p", "Player's Edge Plus (X000158P+XP000038) 4 of a Kind Bonus Poker", + "pex0171p", "Player's Edge Plus (X000171P+XP000038) Joker Poker", + "pex0188p", "Player's Edge Plus (X000188P+XP000038) Standard Draw Poker", + "pex0190p", "Player's Edge Plus (X000190P+XP000053) Deuces Wild Poker", + "pex0197p", "Player's Edge Plus (X000197P+XP000038) Standard Draw Poker", + "pex0203p", "Player's Edge Plus (X000203P+XP000038) 4 of a Kind Bonus Poker", + "pex0224p", "Player's Edge Plus (X000224P+XP000053) Deuces Wild Poker", + "pex0225p", "Player's Edge Plus (X000225P+XP000079) Dueces Joker Wild Poker", + "pex0265p", "Player's Edge Plus (X000265P+XP000038) 4 of a Kind Bonus Poker", + "pex0291p", "Player's Edge Plus (X000291P+XP000053) Deuces Wild Poker", + "pex0417p", "Player's Edge Plus (X000417P+XP000053) Deuces Wild Poker", + "pex0430p", "Player's Edge Plus (X000430P+XP000079) Dueces Joker Wild Poker", + "pex0434p", "Player's Edge Plus (X000434P+XP000038) Bonus Poker Deluxe", + "pex0447p", "Player's Edge Plus (X000447P+XP000038) Standard Draw Poker", + "pex0449p", "Player's Edge Plus (X000449P+XP000038) Standard Draw Poker", + "pex0451p", "Player's Edge Plus (X000451P+XP000038) Bonus Poker Deluxe", + "pex0452p", "Player's Edge Plus (X000452P+XP000038) Double Deuces Wild Poker", + "pex0454p", "Player's Edge Plus (X000454P+XP000038) Bonus Poker Deluxe", + "pex0458p", "Player's Edge Plus (X000458P+XP000038) Joker Poker (Aces or Better)", + "pex0459p", "Player's Edge Plus (X000459P+XP000038) Joker Poker", + "pex0459pa", "Player's Edge Plus (X000459P+XP000155) Joker Poker", + "pex0508p", "Player's Edge Plus (X000508P+XP000038) Loose Deuce Deuces Wild! Poker", + "pex0514p", "Player's Edge Plus (X000514P+XP000038) Double Bonus Poker", + "pex0515p", "Player's Edge Plus (X000515P+XP000038) Double Bonus Poker", + "pex0536p", "Player's Edge Plus (X000536P+XP000038) Joker Poker", + "pex0537p", "Player's Edge Plus (X000537P+XP000038) Standard Draw Poker", + "pex0568p", "Player's Edge Plus (X000568P+XP000038) Joker Poker", + "pex0581p", "Player's Edge Plus (X000581P+XP000038) 4 of a Kind Bonus Poker", + "pex0588p", "Player's Edge Plus (X000588P+XP000038) Joker Poker", + "pex0725p", "Player's Edge Plus (X000725P+XP000038) Double Bonus Poker", + "pex0726p", "Player's Edge Plus (X000726P+XP000038) Double Bonus Poker", + "pex0727p", "Player's Edge Plus (X000727P+XP000038) Double Bonus Poker", + "pex0763p", "Player's Edge Plus (X000763P+XP000038) 4 of a Kind Bonus Poker", + "pex0838s", "Player's Edge Plus (X000838S+XS000002) Five Times Pay Slots", + "pex0841s", "Player's Edge Plus (X000841S+XS000002) Five Times Pay Slots", + "pex0998s", "Player's Edge Plus (X000998S+XS000006) Triple Triple Diamond Slots", + "pex1087s", "Player's Edge Plus (X001087S+XS000006) Double Double Diamond Slots", + "pex2018p", "Player's Edge Plus (X002018P+XP000038) Full House Bonus Poker", + "pex2025p", "Player's Edge Plus (X002025P+XP000019) Deuces Wild Bonus Poker", + "pex2026p", "Player's Edge Plus (X002026P+XP000019) Deuces Wild Bonus Poker", + "pex2027p", "Player's Edge Plus (X002027P+XP000019) Deuces Wild Bonus Poker", + "pex2031p", "Player's Edge Plus (X002031P+XP000112) Lucky Deal Poker", + "pex2035p", "Player's Edge Plus (X002035P+XP000112) White Hot Aces Poker", + "pex2036p", "Player's Edge Plus (X002036P+XP000112) White Hot Aces Poker", + "pex2040p", "Player's Edge Plus (X002040P+XP000038) Nevada Bonus Poker", + "pex2042p", "Player's Edge Plus (X002042P+XP000038) Triple Bonus Poker", + "pex2043p", "Player's Edge Plus (X002043P+XP000038) Triple Bonus Poker", + "pex2045p", "Player's Edge Plus (X002045P+XP000038) Triple Bonus Poker", + "pex2066p", "Player's Edge Plus (X002066P+XP000038) Double Double Bonus Poker", + "pex2067p", "Player's Edge Plus (X002067P+XP000038) Double Double Bonus Poker", + "pex2068p", "Player's Edge Plus (X002068P+XP000038) Double Double Bonus Poker", + "pex2069p", "Player's Edge Plus (X002069P+XP000038) Double Double Bonus Poker", + "pex2070p", "Player's Edge Plus (X002070P+XP000038) Double Double Bonus Poker", + "pex2121p", "Player's Edge Plus (X002121P+XP000038) Standard Draw Poker", + "pex2121pa", "Player's Edge Plus (X002121P+XP000037) Standard Draw Poker", + "pex2150p", "Player's Edge Plus (X002150P+XP000038) 4 of a Kind Bonus Poker", + "pex2172p", "Player's Edge Plus (X002172P+XP000112) Ace$ Bonus Poker", + "pex2180p", "Player's Edge Plus (X002180P+XP000038) Double Bonus Poker", + "pex2241p", "Player's Edge Plus (X002241P+XP000079) 4 of a Kind Bonus Poker", + "pex2244p", "Player's Edge Plus (X002244P+XP000079) Double Bonus Poker", + "pex2245p", "Player's Edge Plus (X002245P+XP000055) Standard Draw Poker", + "pex2245pa", "Player's Edge Plus (X002245P+XP000079) Standard Draw Poker", + "pex2250p", "Player's Edge Plus (X002250P+XP000050) Shockwave Poker", + "pex2251p", "Player's Edge Plus (X002251P+XP000050) Shockwave Poker", + "pex2283p", "Player's Edge Plus (X002283P+XP000057) Dealt Deuces Wild Bonus Poker", + "pex2284p", "Player's Edge Plus (X002284P+XP000057) Barbaric Decues Wild Bonus Poker", + "pex2302p", "Player's Edge Plus (X002302P+XP000038) Bonus Poker Deluxe", + "pex2303p", "Player's Edge Plus (X002303P+XP000112) White Hot Aces Poker", + "pex2307p", "Player's Edge Plus (X002307P+XP000112) Triple Double Bonus Poker", + "pex2314p", "Player's Edge Plus (X002314P+XP000112) Triple Bonus Poker Plus", + "pex2374p", "Player's Edge Plus (X002374P+XP000112) Super Aces Poker (Horseshoe)", + "pex2377p", "Player's Edge Plus (X002377P+XP000112) Super Double Bonus Poker", + "pex2420p", "Player's Edge Plus (X002420P+XP000064) Deuces Wild Bonus Poker - French", + "pex2440p", "Player's Edge Plus (X002440P+XP000053) Deuces Wild Poker", + "pex2461p", "Player's Edge Plus (X002461P+XP000055) Joker Poker (Two Pair or Better)", + "pexm001p", "Player's Edge Plus (XM00001P+XMP00003) Multi-Poker", + "pexm002p", "Player's Edge Plus (XM00002P+XMP00006) Multi-Poker", + "pexm003p", "Player's Edge Plus (XM00003P+XMP00024) Multi-Poker", + "pexm004p", "Player's Edge Plus (XM00004P+XMP00002) Multi-Poker", + "pexm005p", "Player's Edge Plus (XM00005P+XMP00004) Multi-Poker", + "pexm006p", "Player's Edge Plus (XM00006P+XMP00006) Multi-Poker", + "pexm007p", "Player's Edge Plus (XM00007P+XMP00006) Multi-Poker", + "pexm008p", "Player's Edge Plus (XM00008P+XMP00006) Multi-Poker", + "pexmp017", "Player's Edge Plus (XMP00017) 5-in-1 Wingboard (CG2298)", + "pexmp017a", "Player's Edge Plus (XMP00017) 5-in-1 Wingboard (CG2352)", + "pexmp017b", "Player's Edge Plus (XMP00017) 5-in-1 Wingboard (CG2426)", + "pexmp030", "Player's Edge Plus (XMP00030) 5-in-1 Wingboard (CG2426)", + "pf2012", "Psychic Force 2012", + "pfevr_l2", "Pennant Fever (L-2)", + "pfevr_p3", "Pennant Fever (P-3)", + "pfghtj", "Pocket Fighter (Japan 970904)", + "pgalvip", "Pocket Gals V.I.P (set 1)", + "pgalvipa", "Pocket Gals V.I.P (set 2)", + "pgear", "Powered Gear: Strategic Variant Armor Equipment (Japan 941024)", + "pgearr1", "Powered Gear: Strategic Variant Armor Equipment (Japan 940916)", + "pgm", "PGM (Polygame Master) System BIOS", + "pgm3in1", "Photo Y2K 2 (Flash 3-in-1)", + "pgoal", "Pleasure Goal / Futsal - 5 on 5 Mini Soccer (NGM-219)", + "phantasm", "Phantasm (Japan)", + "phantom", "Phantom (bootleg of Spectar)", + "phantom2", "Phantom II", + "phantoma", "Phantomas (bootleg of Spectar)", + "phantomp", "Phantom Pays (4VXFC5431, New Zealand)", + "pharo_l2", "Pharaoh (L-2)", + "pharrier", "Planet Harriers", + "phelios", "Phelios (Japan)", + "phklad", "Klad / Labyrinth (Photon System)", + "phnix_l1", "Phoenix (L-1)", + "phoenix", "Phoenix (Amstar)", + "phoenix3", "Phoenix (T.P.N.)", + "phoenixa", "Phoenix (Centuri, set 1)", + "phoenixb", "Phoenix (Centuri, set 2)", + "phoenixc", "Phoenix (Irecsa / G.G.I Corp, set 1)", + "phoenixc2", "Phoenix (Irecsa / G.G.I Corp, set 2)", + "phoenixc3", "Phoenix (Irecsa / G.G.I Corp, set 3)", + "phoenixc4", "Phoenix (Irecsa / G.G.I Corp, set 4)", + "phoenixj", "Phoenix (Taito Japan)", + "phoenixs", "Phoenix (Spanish bootleg)", + "phoenixt", "Phoenix (Taito)", + "phoenxp2", "Phoenix Part 2", + "photof", "Photo Finish (bootleg?)", + "photoply", "Photo Play 2000 (v2.01)", + "photoy2k", "Photo Y2K (ver. 105)", + "photoy2k102", "Photo Y2K (ver. 102, Japanese Board)", + "photoy2k104", "Photo Y2K (ver. 104)", + "phozon", "Phozon (Japan)", + "phozons", "Phozon (Sidam)", + "phpython", "Python (Photon System)", + "phrcraze", "Phraze Craze (6221-40, U5-0A)", + "phrcrazea", "Phraze Craze (6221-40, U5-0)", + "phrcrazeb", "Phraze Craze (6221-40, U5-3A Expanded Questions)", + "phrcrazec", "Phraze Craze (6221-40, U5-3 Expanded Questions)", + "phrcrazev", "Phraze Craze (6221-45, U5-2 Vertical)", + "phtetris", "Tetris (Photon System)", + "piccolop", "Piccolo Poker 100", + "pickin", "Pickin'", + "pickwin", "Pick 'n Win (Version 2.9E Dual)", + "pickwinb1", "Pick 'n Win (Version 2.9R, set 1)", + "pickwinbt", "Pick 'n Win (Version 2.8T, set 1)", + "pickwind1", "Pick 'n Win (Version 2.9R, set 2)", + "pickwindt", "Pick 'n Win (Version 2.8T, set 2)", + "pickwino", "Pick 'n Win (Version 2.6)", + "pickwino2", "Pick 'n Win (Version 2.5T)", + "pickwinv1", "Pick 'n Win (Version 2.9R Dual)", + "pickwinvt", "Pick 'n Win (Version 2.8T, Dual)", + "pignewt", "Pig Newton (version C)", + "pignewta", "Pig Newton (version A)", + "pigout", "Pig Out: Dine Like a Swine! (set 1)", + "pigouta", "Pig Out: Dine Like a Swine! (set 2)", + "pigskin", "Pigskin 621AD (rev 1.1K 8/01/90)", + "pigskina", "Pigskin 621AD (rev 2.0 7/06/90)", + "pigskinb", "Pigskin 621AD (rev 1.1 6/05/90)", + "pimbal", "Pimbal (Pinball 3000)", + "pinball", "Pinball", + "pinbo", "Pinbo (set 1)", + "pinboa", "Pinbo (set 2)", + "pinbos", "Pinbo (bootleg)", + "pinchamp", "Pinball Champ", + "pinchamp7", "Pinball Champ (7 digits)", + "pinchamp7g", "Pinball Champ (7 digits German speech)", + "pinchamp7i", "Pinball Champ (7 digits Italian speech)", + "pinchampg", "Pinball Champ (German speech)", + "pinchampi", "Pinball Champ (Italian speech)", + "pinclown", "Clown (Inder)", + "pingpong", "Konami's Ping-Pong", + "pinkiri8", "Pinkiri 8", + "pinkswts", "Pink Sweets: Ibara Sorekara (2006/04/06 MASTER VER....)", + "pinkswtsa", "Pink Sweets: Ibara Sorekara (2006/04/06 MASTER VER...)", + "pinkswtsb", "Pink Sweets: Ibara Sorekara (2006/04/06 MASTER VER.)", + "pinkswtsx", "Pink Sweets: Ibara Sorekara (2006/xx/xx MASTER VER.)", + "pinpool", "Pinball Pool", + "pipedrm", "Pipe Dream (World)", + "pipedrmj", "Pipe Dream (Japan)", + "pipedrmt", "Pipe Dream (Taiwan)", + "pipedrmu", "Pipe Dream (US)", + "pipeline", "Pipeline", + "pipibibs", "Pipi & Bibis / Whoopee!! (Z80 sound cpu, set 1)", + "pipibibsa", "Pipi & Bibis / Whoopee!! (Z80 sound cpu, set 2)", + "pipibibsbl", "Pipi & Bibis / Whoopee!! (bootleg)", + "pipibibsp", "Pipi & Bibis / Whoopee!! (prototype)", + "pir2001", "Pirate 2001 (Version 2.5E Dual)", + "pir2001b1", "Pirate 2001 (Version 2.5R, set 1)", + "pir2001bx", "Pirate 2001 (Version 2.40XT, set 1)", + "pir2001d1", "Pirate 2001 (Version 2.5R, set 2)", + "pir2001dx", "Pirate 2001 (Version 2.40XT, set 2)", + "pir2001o", "Pirate 2001 (Version 2.3N)", + "pir2001o2", "Pirate 2001 (Version 2.3)", + "pir2001o3", "Pirate 2001 (Version 2.20XT)", + "pir2001v1", "Pirate 2001 (Version 2.5R Dual)", + "pir2001vx", "Pirate 2001 (Version 2.40XT Dual)", + "pir2002", "Pirate 2002 (Version 2.0E Dual)", + "pir2002b1", "Pirate 2002 (Version 2.0R, set 1)", + "pir2002bx", "Pirate 2002 (Version 1.90XT, set 1)", + "pir2002d1", "Pirate 2002 (Version 2.0R, set 2)", + "pir2002dx", "Pirate 2002 (Version 1.90XT, set 2)", + "pir2002o", "Pirate 2002 (Version 1.8N)", + "pir2002o2", "Pirate 2002 (Version 1.8)", + "pir2002o3", "Pirate 2002 (Version 1.70XT)", + "pir2002v1", "Pirate 2002 (Version 2.0R Dual)", + "pir2002vx", "Pirate 2002 (Version 1.90XT Dual)", + "piranha", "Piranha", + "piranhah", "Piranha (hack)", + "piranhao", "Piranha (older)", + "pirate2", "Pirate 2 (061005 World)", + "pirate2_2", "Pirate 2 (070126 Russia)", + "pirate2_2a", "Pirate 2 (bootleg, 070126, banking address hack)", + "pirate2_3", "Pirate 2 (090528 Lottery)", + "pirate2_4", "Pirate 2 (090730 Entertainment)", + "pirate2a", "Pirate 2 (bootleg, 061005, banking address hack set 1)", + "pirate2b", "Pirate 2 (bootleg, 061005, banking address hack set 2)", + "pirate2c", "Pirate 2 (bootleg, 061005, banking address hack, changed version text set 1)", + "pirate2d", "Pirate 2 (bootleg, 061005, banking address hack, changed version text set 2)", + "pirate2e", "Pirate 2 (bootleg, 061005, banking address hack, changed version text set 3)", + "pirate2f", "Pirate 2 (bootleg, 061005, VIDEO GAME-1 PR01)", + "pirate2g", "Pirate 2 (bootleg, 061005, LOTTOGAME (I))", + "pirate2h", "Pirate 2 (bootleg, 061005, LOTOS PR01)", + "pirate_2", "Pirate (060210 World)", + "pirate_3", "Pirate (060803 World)", + "pirate_4", "Pirate (070412 Russia)", + "pirates", "Pirates", + "piratetr", "Pirate Treasure", + "pirati", "Pirati", + "piratpet", "Pirate Pete", + "pirpok2", "Pirate Poker II (Version 2.4E Dual)", + "pirpok2b1", "Pirate Poker II (Version 2.2R, set 1)", + "pirpok2d1", "Pirate Poker II (Version 2.2R, set 2)", + "pirpok2o", "Pirate Poker II (Version 2.0)", + "pirpok2v1", "Pirate Poker II (Version 2.2R Dual)", + "pisces", "Pisces", + "piscesb", "Pisces (bootleg)", + "pistoldm", "Pistol Daimyo no Bouken (Japan)", + "pitboss", "The Pit Boss (2214-04)", + "pitboss2", "Pit Boss II (9221-01C)", + "pitbossa", "The Pit Boss (2214-03, U5-0C)", + "pitbossa1", "The Pit Boss (2214-03, U5-1C)", + "pitbossb", "The Pit Boss (2214-02?)", + "pitbossc", "The Pit Boss (2214-?)", + "pitbossm", "Pit Boss Megastar (9244-00-01)", + "pitbossma", "Pit Boss Megastar (9243-00-01)", + "pitbosss", "Pit Boss Superstar (9221-10-00B)", + "pitbosssa", "Pit Boss Superstar (9221-10-00A)", + "pitbosssc", "Pit Boss Superstar (9221-12-01)", + "pitfall2", "Pitfall II (315-5093)", + "pitfall2a", "Pitfall II (315-5093, Flicky Conversion)", + "pitfall2u", "Pitfall II (not encrypted)", + "pitfight", "Pit Fighter (rev 9)", + "pitfight3", "Pit Fighter (rev 3)", + "pitfight4", "Pit Fighter (rev 4)", + "pitfight5", "Pit Fighter (rev 5)", + "pitfight6", "Pit Fighter (rev 6)", + "pitfight7", "Pit Fighter (rev 7)", + "pitfightb", "Pit Fighter (bootleg)", + "pitfightj", "Pit Fighter (Japan, 2 players)", + "pitnrun", "Pit & Run - F-1 Race (set 1)", + "pitnruna", "Pit & Run - F-1 Race (set 2)", + "pjustic", "Moero Justice Gakuen (JPN) / Project Justice (USA, EXP, KOR, AUS) (Rev A)", + "pkgnsh", "Pachinko Gindama Shoubu (Japan)", + "pkgnshdx", "Pachinko Gindama Shoubu DX (Japan)", + "pkladies", "Poker Ladies", + "pkladiesbl", "Poker Ladies (Censored bootleg)", + "pkladiesl", "Poker Ladies (Leprechaun ver. 510)", + "pkladiesla", "Poker Ladies (Leprechaun ver. 401)", + "pkrdewin", "Poker De Win", + "pkrmast", "Poker Master (set 1)", + "pkrmasta", "Poker Master (set 2)", + "pkrno_l1", "Pokerino (L-1)", + "pkscram", "PK Scramble", + "pktet346", "PK Tetris (v346I)", + "pktgaldx", "Pocket Gal Deluxe (Euro v3.00)", + "pktgaldxb", "Pocket Gal Deluxe (Euro v3.00, bootleg)", + "pktgaldxj", "Pocket Gal Deluxe (Japan v3.00)", + "pkunwar", "Penguin-Kun Wars (US)", + "pkunwarj", "Penguin-Kun Wars (Japan)", + "platoon", "Vs. Platoon", + "play_a24", "Playboy 35th Anniversary (2.4)", + "playball", "PlayBall! (prototype)", + "playboy", "Playboy", + "playboyf", "Playboy (5.00 France)", + "playboyf_203", "Playboy (2.03 France)", + "playboyf_300", "Playboy (3.00 France)", + "playboyf_303", "Playboy (3.03 France)", + "playboyf_401", "Playboy (4.01 France)", + "playboyg", "Playboy (5.00 Germany)", + "playboyg_203", "Playboy (2.03 Germany)", + "playboyg_300", "Playboy (3.00 Germany)", + "playboyg_303", "Playboy (3.03 Germany)", + "playboyg_401", "Playboy (4.01 Germany)", + "playboyi", "Playboy (5.00 Italy)", + "playboyi_203", "Playboy (2.03 Italy)", + "playboyi_300", "Playboy (3.00 Italy)", + "playboyi_303", "Playboy (3.03 Italy)", + "playboyi_401", "Playboy (4.01 Italy)", + "playboyl", "Playboy (5.00 Spain)", + "playboyl_203", "Playboy (2.03 Spain)", + "playboyl_300", "Playboy (3.00 Spain)", + "playboyl_303", "Playboy (3.03 Spain)", + "playboyl_401", "Playboy (4.01 Spain)", + "playboys", "Playboy (5.00)", + "playboys_203", "Playboy (2.03)", + "playboys_300", "Playboy (3.00)", + "playboys_303", "Playboy (3.03)", + "playboys_401", "Playboy (4.01)", + "playch10", "PlayChoice-10 BIOS", + "playnew", "Playboy (ARM7 Sound Board)", + "plegends", "Gogetsuji Legends (US, Ver. 95/06/20)", + "plegendsj", "Gouketsuji Gaiden - Saikyou Densetsu (Japan, Ver. 95/06/20)", + "pleiadbl", "Pleiads (bootleg set 1)", + "pleiadce", "Pleiads (Centuri)", + "pleiads", "Pleiads (Tehkan)", + "pleiadsb2", "Pleiads (bootleg set 2)", + "plgirls", "Play Girls", + "plgirls2", "Play Girls 2", + "plotting", "Plotting (World set 1)", + "plottinga", "Plotting (World set 2, protected)", + "plottingb", "Plotting (World set 3, earliest version)", + "plottingu", "Plotting (US)", + "plsmaswd", "Plasma Sword: Nightmare of Bilstein (USA 980316)", + "plsmaswda", "Plasma Sword: Nightmare of Bilstein (Asia 980316)", + "pltkids", "Pilot Kids (Model 2B, Revision A)", + "pltkidsa", "Pilot Kids (Model 2A)", + "plumppop", "Plump Pop (Japan)", + "plusalph", "Plus Alpha", + "plygonet", "Polygonet Commanders (ver UAA)", + "pma", "PMA Poker", + "pmpoker", "PlayMan Poker (German)", + "pmv112", "Pinball Magic", + "pmv112r", "Pinball Magic (Redemption)", + "pnchmn", "Punch Mania: Hokuto No Ken (GQ918 VER. JAB)", + "pnchmn2", "Punch Mania 2: Hokuto No Ken (GQA09 JAA)", + "pnchmna", "Punch Mania: Hokuto No Ken (GQ918 VER. JAB ALT CD)", + "pnickj", "Pnickies (Japan 940608)", + "pnkpnthr", "Pink Panther", + "pntnpuzl", "Paint & Puzzle", + "pnyaa", "Pochi and Nyaa", + "pocketrc", "Pocket Racer (Japan, PKR1/VER.B)", + "podrace", "Star Wars Pod Racer", + "poitto", "Poitto!", + "poizone", "Poizone", + "pokasuka", "Pokasuka Ghost", + "pokechmp", "Poke Champ", + "poker41", "Four in One Poker", + "poker52", "Poker 52 (Ver. 1.2)", + "poker72", "Poker Monarch (v2.50)", + "poker91", "Poker 91", + "pokerdub", "unknown French poker game", + "pokerduc", "unknown encrypted poker game", + "pokermon", "Mundial/Mondial (Italian/French)", + "pokeroul", "Poker Roulette (Version 8.22)", + "pokersis", "unknown Sisteme France Poker", + "pokio", "Pokio (Dutch, Game Card 95-750-278)", + "pokonl97", "Poker Only '97 (ver. 3.3)", + "pokrdice", "Poker Dice", + "polar", "Polar Explorer", + "polaris", "Polaris (Latest version)", + "polarisa", "Polaris (First revision)", + "polarisbr", "Polaris (Brazil)", + "polariso", "Polaris (Original version)", + "polepos", "Pole Position (World)", + "polepos2", "Pole Position II (Japan)", + "polepos2a", "Pole Position II (Atari)", + "polepos2b", "Pole Position II (bootleg)", + "polepos2bi", "Gran Premio F1 (Italian bootleg of Pole Position II)", + "poleposa1", "Pole Position (Atari version 1)", + "poleposa2", "Pole Position (Atari version 2)", + "poleposj", "Pole Position (Japan)", + "poleposn", "Pole Position (Sonic)", + "polic_l2", "Police Force (LA-2)", + "polic_l3", "Police Force (LA-3)", + "polic_l4", "Police Force (LA-4)", + "policetr", "Police Trainer (Rev 1.3)", + "policetr10", "Police Trainer (Rev 1.0)", + "policetr11", "Police Trainer (Rev 1.1)", + "policetr13a", "Police Trainer (Rev 1.3B Newer)", + "policetr13b", "Police Trainer (Rev 1.3B)", + "pollux", "Pollux (set 1)", + "polluxa", "Pollux (set 2)", + "polluxa2", "Pollux (set 3)", + "polynetw", "Poly-Net Warriors (ver JAA)", + "polyplay", "Poly-Play", + "polystar", "Tobe! Polystars (ver JAA)", + "pomp_l1", "Pompeii (Shuffle) (L-1)", + "pompingw", "Pomping World (Japan)", + "ponchin", "Mahjong Pon Chin Kan (Japan set 1)", + "ponchina", "Mahjong Pon Chin Kan (Japan set 2)", + "pong", "Pong (Rev E) external", + "pongf", "Pong (Rev E)", + "ponpoko", "Ponpoko", + "ponpokov", "Ponpoko (Venture Line)", + "pontoon", "Pontoon (FD1094 317-0153)", + "ponttehk", "Pontoon (Tehkan)", + "pool10", "Pool 10 (Italian, set 1)", + "pool10b", "Pool 10 (Italian, set 2)", + "pool10c", "Pool 10 (Italian, set 3)", + "pool10d", "Pool 10 (Italian, set 4)", + "pool10e", "Pool 10 (Italian, Dino 4 hardware, encrypted)", + "pool10f", "Pool 10 (Italian, set 5)", + "pool10g", "Pool 10 (Italian, set 6)", + "pool10h", "Pool 10 (Italian, set 7)", + "pool10i", "Pool 10 (Italian, set 8)", + "pool_l6", "Pool Sharks (LA-6)", + "pool_l7", "Pool Sharks (LA-7)", + "pool_le2", "Pool Sharks (LE-2)", + "pool_p7", "Pool Sharks (PA-7)", + "poolcham", "Pool Champion", + "poolchama", "Pool Champion (alternate sound)", + "poolchami", "Pool Champion (Italian speech)", + "poolshrk", "Poolshark", + "pootan", "Pootan", + "pooyan", "Pooyan", + "pooyans", "Pooyan (Stern Electronics)", + "pop_hh", "Popper (Hard Head bootleg)", + "pop_lx5", "Popeye Saves The Earth (LX-5)", + "pop_pa3", "Popeye Saves The Earth (PA-3)", + "popbingo", "Pop Bingo", + "popbounc", "Pop 'n Bounce / Gapporin", + "popeye", "Popeye (revision D)", + "popeyebl", "Popeye (bootleg)", + "popeyef", "Popeye (revision F)", + "popeyeman", "Popeye-Man", + "popeyeu", "Popeye (revision D not protected)", + "popflame", "Pop Flamer (protected)", + "popflamea", "Pop Flamer (not protected)", + "popflameb", "Pop Flamer (hack?)", + "popflamen", "Pop Flamer (bootleg on Naughty Boy PCB)", + "popn2", "Pop'n Music 2 (ver JA-A)", + "popn4", "Pop'n Music 4", + "popn5", "Pop'n Music 5", + "popn6", "Pop'n Music 6", + "popn7", "Pop'n Music 7", + "popn8", "Pop'n Music 8", + "popn9", "Pop'n Music 9 (ver JAB)", + "popnanm2", "Pop'n Music Animelo 2", + "popnpop", "Pop'n Pop (Ver 2.07O 1998/02/09)", + "popnpopj", "Pop'n Pop (Ver 2.07J 1998/02/09)", + "popnpopu", "Pop'n Pop (Ver 2.07A 1998/02/09)", + "popobear", "PoPo Bear", + "popper", "Popper", + "popshot", "Pop Shot (prototype)", + "popspops", "Pop's Pop's", + "porky", "Porky", + "porter", "Port Man (bootleg on Moon Cresta hardware)", + "portman", "Port Man", + "portrait", "Portraits (set 1)", + "portraita", "Portraits (set 2)", + "potgame", "Pot Game (Italian)", + "potgoldu", "Pot O' Gold (U.S. Games, v400x?)", + "potnpkra", "Jack Potten's Poker (set 2)", + "potnpkrb", "Jack Potten's Poker (set 3)", + "potnpkrc", "Jack Potten's Poker (set 4)", + "potnpkrd", "Jack Potten's Poker (set 5)", + "potnpkre", "Jack Potten's Poker (set 6)", + "potnpkrf", "Jack Potten's Poker (set 7, Royale GFX)", + "poto_a32", "The Phantom of the Opera (3.2)", + "potogold", "Pot of Gold", + "potopoto", "Poto Poto (Japan)", + "pottnpkr", "Jack Potten's Poker (set 1)", + "poundfor", "Pound for Pound (World)", + "poundforj", "Pound for Pound (Japan)", + "poundforu", "Pound for Pound (US)", + "pow", "P.O.W. - Prisoners of War (US version 1)", + "powerbal", "Power Balls", + "powerbals", "Power Balls (Super Slam conversion)", + "powercrd", "Power Card (Ver 0263, encrypted)", + "powerdrv", "Power Drive", + "powerins", "Power Instinct (USA)", + "powerinsa", "Power Instinct (USA, bootleg set 1)", + "powerinsb", "Power Instinct (USA, bootleg set 2)", + "powerinsj", "Gouketsuji Ichizoku (Japan)", + "powj", "Datsugoku - Prisoners of War (Japan)", + "powrplay", "Power Play", + "powyak96", "Jikkyou Powerful Pro Yakyuu '96 (GV017 Japan 1.03)", + "powyakex", "Jikkyou Powerful Pro Yakyuu EX (GX802 VER. JAB)", + "ppan", "Peter Pan (bootleg of Hook)", + "ppcar", "Pang Pang Car", + "ppchamp", "Pasha Pasha Champ Mini Game Festival (Korea)", + "ppd", "ParaParaDancing", + "ppking", "Ping-Pong King", + "ppmast93", "Ping Pong Masters '93", + "ppp", "ParaParaParadise", + "ppp11", "ParaParaParadise v1.1", + "ppp1mp", "ParaParaParadise 1st Mix Plus", + "ppp2nd", "ParaParaParadise 2nd Mix", + "pprobe", "Planet Probe (prototype?)", + "ppsatan", "Poka Poka Satan (Japan)", + "ppspeed", "Speed Up (Spanish bootleg of Pole Position)", + "pr_5xcsh", "5x Cash (Project) (PROCONN)", + "pr_7hvn", "777 Heaven (Project) (PROCONN)", + "pr_7hvna", "777 Heaven (Project) (10GBP Jackpot) (PROCONN)", + "pr_7hvnb", "777 Heaven (Project) (20p 6GBP Jackpot Version 114) (PROCONN)", + "pr_7hvnc", "777 Heaven (Project) (10p 3GBP Jackpot Version 380) (PROCONN)", + "pr_7hvnd", "777 Heaven (Project) (5p 3GBP Jackpot Version 105) (PROCONN)", + "pr_7hvne", "777 Heaven (Project) (set 6) (PROCONN)", + "pr_7hvnf", "777 Heaven (Project) (set 7) (PROCONN)", + "pr_7hvng", "777 Heaven (Project) (set 8) (PROCONN)", + "pr_7hvnh", "777 Heaven (Project) (set 9) (PROCONN)", + "pr_7hvni", "777 Heaven (Project) (set 10) (PROCONN)", + "pr_7hvnj", "777 Heaven (Project) (set 11) (PROCONN)", + "pr_7hvnk", "777 Heaven (Project) (set 12) (PROCONN)", + "pr_7hvnl", "777 Heaven (Project) (set 13) (PROCONN)", + "pr_7hvnm", "777 Heaven (Project) (set 14) (PROCONN)", + "pr_7hvnn", "777 Heaven (Project) (set 15) (PROCONN)", + "pr_7hvno", "777 Heaven (Project) (set 16) (PROCONN)", + "pr_7hvnp", "777 Heaven (Project) (set 17) (PROCONN)", + "pr_7hvnq", "777 Heaven (Project) (set 18) (PROCONN)", + "pr_7hvnr", "777 Heaven (Project) (set 19) (PROCONN)", + "pr_7hvns", "777 Heaven (Project) (set 20) (PROCONN)", + "pr_7hvnt", "777 Heaven (Project) (set 21) (PROCONN)", + "pr_7hvnu", "777 Heaven (Project) (set 22) (PROCONN)", + "pr_alwy9", "Always Nine (Pcp) (set 1) (PROCONN)", + "pr_alwy9a", "Always Nine (Pcp) (set 2) (PROCONN)", + "pr_barbl", "Bars & Bells (Project) (PROCONN)", + "pr_batls", "Battleships (Project) (set 1) (PROCONN)", + "pr_batlsa", "Battleships (Project) (set 2) (PROCONN)", + "pr_batlsb", "Battleships (Project) (set 3) (PROCONN)", + "pr_bears", "Bear Streak (set 1) (Coinworld)", + "pr_bearsa", "Bear Streak (set 2) (Coinworld)", + "pr_bearsb", "Bear Streak (set 3) (Coinworld)", + "pr_bearx", "Bear X (Version 2.3) (Coinworld)", + "pr_bearxa", "Bear X (Version 2.2) (Coinworld)", + "pr_bearxb", "Bear X (Version 1.3) (Coinworld)", + "pr_bearxc", "Bear X (20p set 1) (Coinworld)", + "pr_bearxd", "Bear X (20p set 2) (Coinworld)", + "pr_bearxe", "Bear X (10p set 1) (Coinworld)", + "pr_bearxf", "Bear X (10p set 2) (Coinworld)", + "pr_bearxg", "Bear X (10p set 3) (Coinworld)", + "pr_bearxh", "Bear X (10p set 4?) (Coinworld)", + "pr_bearxi", "Bear X (10p set 5) (Coinworld)", + "pr_bearxj", "Bear X (code 813) (Coinworld)", + "pr_bearxk", "Bear X (8GBP Token?) (Coinworld)", + "pr_bearxl", "Bear X (Version 41) (Coinworld)", + "pr_bearxlp", "Bear X (Version 41, Protocol) (Coinworld)", + "pr_bearxm", "Bear X (Version 31) (Coinworld)", + "pr_bigdp", "Big Dipper (Project) (set 1) (PROCONN)", + "pr_bigdpa", "Big Dipper (Project) (set 2) (PROCONN)", + "pr_btwar", "Beat The Warden (Project) (set 1) (PROCONN)", + "pr_btwara", "Beat The Warden (Project) (set 2) (PROCONN)", + "pr_btwarb", "Beat The Warden (Project) (set 3) (PROCONN)", + "pr_bulbn", "Bully's Big Night (Project) (PROCONN)", + "pr_bulbna", "Bully's Big Night (Project) (set 1) (PROCONN)", + "pr_bulbnb", "Bully's Big Night (Project) (set 2) (PROCONN)", + "pr_buljp", "Bully's Jackpot (Project) (set 1) (PROCONN)", + "pr_buljpa", "Bully's Jackpot (Project) (set 2) (PROCONN)", + "pr_bulls", "Bullseye (Project) (set 1) (PROCONN)", + "pr_bullsa", "Bullseye (Project) (set 2) (PROCONN)", + "pr_bullsb", "Bullseye (Project) (set 3) (PROCONN)", + "pr_cas7", "Casino Jackpot 7s (Project) (PROCONN)", + "pr_cashb", "Cash Back (Project) (PROCONN)", + "pr_chico", "Chico the Bandit (Project) (set 1) (PROCONN)", + "pr_chicoa", "Chico the Bandit (Project) (set 2) (PROCONN)", + "pr_chicob", "Chico the Bandit (Project) (set 3) (PROCONN)", + "pr_coolm", "Cool Million (Project) (set 1) (PROCONN)", + "pr_coolma", "Cool Million (Project) (set 2) (PROCONN)", + "pr_coolmb", "Cool Million (Project) (set 3) (PROCONN)", + "pr_coyot", "Crazy Coyote (Pcp) (10p) (PROCONN)", + "pr_coyota", "Crazy Coyote (Pcp) (20p) (PROCONN)", + "pr_crz77", "Crazy 777s (Project) (PROCONN)", + "pr_crzbr", "Crazy Bars (Project) (PROCONN)", + "pr_crzpy", "Crazy Pays (Project) (PROCONN)", + "pr_dblup", "Double Up (Project) (PROCONN)", + "pr_fire", "Fircecracker (Project) (PROCONN)", + "pr_flshc", "Flash The Cash (Project) (PROCONN)", + "pr_fspot", "Fun Spot (Version 4.1) (Coinworld)", + "pr_fspota", "Fun Spot (Version 3.1) (Coinworld)", + "pr_fspotb", "Fun Spot (Version 2.1, set 1) (Coinworld)", + "pr_fspotc", "Fun Spot (Version 2.1, 20p stake, 82%) (Coinworld)", + "pr_fspotd", "Fun Spot (Version 2.1, 7 button) (Coinworld)", + "pr_fspote", "Fun Spot (Version 1.1, set 1) (Coinworld)", + "pr_fspotf", "Fun Spot (Version 1.1, 20p stake, 82%) (Coinworld)", + "pr_fspotg", "Fun Spot (Version 1.1, 6 button) (Coinworld)", + "pr_ftwhl", "Fortune Wheel (Project) (PROCONN)", + "pr_funrn", "Fun On The Run (Project) (PROCONN)", + "pr_gdft", "Good Fortune (Project) (PROCONN)", + "pr_gldng", "Golden Nugget (Project) (PROCONN)", + "pr_gldnl", "Golden Nile (Project) (PROCONN)", + "pr_gnuc", "Golden Nugget (Version 2.2) (Coinworld)", + "pr_gnuca", "Golden Nugget (Version 1.2) (Coinworld)", + "pr_gogld", "Go For Gold (Project) (PROCONN)", + "pr_happy", "Happy Days (Project) (PROCONN)", + "pr_heato", "The Heat Is On (Project) (PROCONN)", + "pr_hiclm", "Hi Climber (Project) (PROCONN)", + "pr_hit6", "Hit The Six (Project) (set 1) (PROCONN)", + "pr_hit6a", "Hit The Six (Project) (set 2) (PROCONN)", + "pr_hit6b", "Hit The Six (Project) (set 3) (PROCONN)", + "pr_hotcs", "Hot Cash (Project) (PROCONN)", + "pr_hotsp", "Hot Spots (Project) (PROCONN)", + "pr_jkpt7", "Jackpot 7's (Project) (PROCONN)", + "pr_jkrwd", "Jokers Wild (Project) (PROCONN)", + "pr_jumpj", "Jumping Jacks (Project) (set 1) (PROCONN)", + "pr_jumpja", "Jumping Jacks (Project) (set 2) (PROCONN)", + "pr_lday", "'L' Of A Day (Project) (Cash set) (PROCONN)", + "pr_ldaya", "'L' Of A Day (Project) (Token set) (PROCONN)", + "pr_magln", "Magic Lines (Version 2.1) (Coinworld)", + "pr_maglna", "Magic Lines (Version 1.1) (Coinworld)", + "pr_medl", "Medalist (Project) (PROCONN)", + "pr_megmn", "Mega Money (Project) (PROCONN)", + "pr_nifty", "Nifty Fifty (Project) (PROCONN)", + "pr_nudxs", "Nudge XS (Project) (PROCONN)", + "pr_qksht", "Quickshot (Maygay) (PROCONN)", + "pr_rags", "Rags To Riches (Project) (PROCONN)", + "pr_reflx", "Reflex (Project) (PROCONN)", + "pr_roadr", "Road Riot (Project) (PROCONN)", + "pr_roll", "The Roll (Project) (PROCONN)", + "pr_sevab", "Seven's Above (Project) (PROCONN)", + "pr_sevml", "Sevens & Melons (Project) (PROCONN)", + "pr_sptb", "Simply the Best (Pcp) (PROCONN?)", + "pr_supbr", "Super Bars (PCP) (PROCONN)", + "pr_swop", "Swop It (Ace)", + "pr_theme", "Theme Park (Project) (PROCONN)", + "pr_trktp", "Trick or Treat (Protocol?) (Project) (PROCONN)", + "pr_trktr", "Trick or Treat (Project) (PROCONN)", + "pr_trpx", "Triple X (Project) (PROCONN)", + "pr_ttrai", "Treasure Trail (Project) (PROCONN)", + "pr_upnun", "Up & Under (Project) (PROCONN)", + "pr_walls", "Wall Street (Project) (PROCONN)", + "pr_whlft", "Wheel Of Fortune (Project) (PROCONN)", + "pr_wldkn", "Wild Kings (Project) (PROCONN)", + "pr_wnstk", "Winning Streak (Version 1.1) (Coinworld)", + "prehisle", "Prehistoric Isle in 1930 (World)", + "prehislek", "Prehistoric Isle in 1930 (Korea)", + "prehisleu", "Prehistoric Isle in 1930 (US)", + "preisle2", "Prehistoric Isle 2", + "prikura", "Princess Clara Daisakusen (J 960910 V1.000)", + "primella", "Primella", + "primglex", "Prime Goal EX (Japan, PG1/VER.A)", + "primrag2", "Primal Rage 2 (Ver 0.36a)", + "primrage", "Primal Rage (version 2.3)", + "primrage20", "Primal Rage (version 2.0)", + "princess", "Cosmic Princess", + "prmrsocr", "Premier Soccer (ver EAB)", + "prmrsocrj", "Premier Soccer (ver JAB)", + "prmtmfgt", "Prime Time Fighter (Ver 2.1A 1993/05/21) (New Version)", + "prmtmfgto", "Prime Time Fighter (Ver 2.1A 1993/05/21) (Old Version)", + "profpac", "Professor Pac-Man", + "progear", "Progear (USA 010117)", + "progeara", "Progear (Asia 010117)", + "progearj", "Progear no Arashi (Japan 010117)", + "progearjbl", "Progear no Arashi (Japan 010117) (decrypted bootleg)", + "progearjd", "Progear no Arashi (Japan 010117 Phoenix Edition) (bootleg)", + "progearud", "Progear (USA 010117 Phoenix Edition) (bootleg)", + "progolf", "18 Holes Pro Golf (set 1)", + "progolfa", "18 Holes Pro Golf (set 2)", + "progress", "Progress", + "promutrv", "Progressive Music Trivia (Question set 1)", + "promutrva", "Progressive Music Trivia (Question set 2)", + "promutrvb", "Progressive Music Trivia (Question set 3)", + "promutrvc", "Progressive Music Trivia (Question set 4)", + "propcycl", "Prop Cycle (Rev. PR2 Ver.A)", + "prosoccr", "Pro Soccer", + "prosport", "Pro Sports - Bowling, Tennis, and Golf (set 1)", + "prosporta", "Pro Sports - Bowling, Tennis, and Golf (set 2)", + "protennb", "Tennis (bootleg of Pro Tennis)", + "prtyanim", "Party Animal", + "prtytime", "Party Time: Gonta the Diver II / Ganbare! Gonta!! 2 (World Release)", + "psailor1", "Bishoujo Janshi Pretty Sailor 18-kin (Japan)", + "psailor2", "Bishoujo Janshi Pretty Sailor 2 (Japan)", + "psarc95", "PS Arcade 95", + "psattack", "P's Attack", + "psoldier", "Perfect Soldiers (Japan)", + "pspikes", "Power Spikes (World)", + "pspikes2", "Power Spikes II (NGM-068)", + "pspikesb", "Power Spikes (bootleg)", + "pspikesc", "Power Spikes (China)", + "pspikesk", "Power Spikes (Korea)", + "pspikesu", "Power Spikes (US)", + "pss61", "Super Mario Kart / Super Mario Collection / Star Fox (Super Famicom Box)", + "pss62", "New Super 3D Golf Simulation - Waialae No Kiseki / Super Mahjong 2 (Super Famicom Box)", + "pss63", "Super Donkey Kong / Super Tetris 2 + Bombliss (Super Famicom Box)", + "pss64", "Super Donkey Kong / Super Bomberman 2 (Super Famicom Box)", + "pstadium", "Mahjong Panic Stadium (Japan)", + "pstlpkr", "Pistol Poker", + "pstone", "Power Stone (JPN, USA, EUR, ASI, AUS)", + "pstone2", "Power Stone 2 (JPN, USA, EUR, ASI, AUS)", + "psurge", "Power Surge", + "psychic5", "Psychic 5 (set 1)", + "psychic5a", "Psychic 5 (set 2)", + "psychos", "Psycho Soldier (US)", + "psychosj", "Psycho Soldier (Japan)", + "psyforce", "Psychic Force (Ver 2.4O)", + "psyforcej", "Psychic Force (Ver 2.4J)", + "psyforcex", "Psychic Force EX (Ver 2.0J)", + "psyvar2", "Psyvariar 2 - The Will To Fabricate (GDL-0024)", + "psyvaria", "Psyvariar -Medium Unit- (V2.04J)", + "psyvarrv", "Psyvariar -Revision- (V2.04J)", + "ptblank", "Point Blank (World, GN2 Rev B)", + "ptblank2", "Point Blank 2 (GNB5/VER.A)", + "ptblank2ua", "Point Blank 2 (US, GNB3/VER.A)", + "ptblank3", "Point Blank 3 (Asia, GNN2 Ver.A)", + "ptrmj", "PT Reach Mahjong (Japan)", + "pturn", "Parallel Turn", + "puchicar", "Puchi Carat (Ver 2.02O 1997/10/29)", + "puchicarj", "Puchi Carat (Ver 2.02J 1997/10/29)", + "puckman", "Puck Man (Japan set 1)", + "puckmanb", "Puck Man (bootleg set 1)", + "puckmanf", "Puck Man (speedup hack)", + "puckmanh", "Puck Man (bootleg set 2)", + "puckmod", "Puck Man (Japan set 2)", + "puckpepl", "Puck People", + "puckpkmn", "Puckman Pockimon (set 1)", + "puckpkmna", "Puckman Pockimon (set 2)", + "puckpkmnb", "Puckman Pockimon (set 3)", + "pulirula", "PuLiRuLa (World)", + "pulirulaj", "PuLiRuLa (Japan)", + "pulltabs", "Pull Tabs", + "pulsar", "Pulsar", + "pulstar", "Pulstar", + "punchita", "Punch-Out!! (Italian bootleg)", + "punchout", "Punch-Out!!", + "punchoutj", "Punch-Out!! (Japan)", + "punchy", "Punchy The Clown", + "punipic", "The Punisher (bootleg with PIC16c57, set 1)", + "punipic2", "The Punisher (bootleg with PIC16c57, set 2)", + "punipic3", "The Punisher (bootleg with PIC16c57, set 3)", + "punisher", "The Punisher (World 930422)", + "punisherbz", "Biaofeng Zhanjing (Chinese bootleg of The Punisher)", + "punisherh", "The Punisher (Hispanic 930422)", + "punisherj", "The Punisher (Japan 930422)", + "punisheru", "The Punisher (USA 930422)", + "punk", "Punk!", + "punkshot", "Punk Shot (US 4 Players)", + "punkshot2", "Punk Shot (US 2 Players)", + "punkshotj", "Punk Shot (Japan 2 Players)", + "pururun", "Pururun", + "pushman", "Pushman (Korea, set 1)", + "pushmana", "Pushman (Korea, set 2)", + "pushmans", "Pushman (American Sammy license)", + "pushmant", "Pushman (Top Tronic license)", + "pushover", "Push Over (Summit Coin)", + "puyo", "Puyo Puyo (World)", + "puyobl", "Puyo Puyo (World, bootleg)", + "puyoda", "Puyo Puyo Da!", + "puyofev", "Puyo Puyo Fever (GDS-0031)", + "puyofevp", "Puyo Puyo Fever (prototype ver 0.01)", + "puyoj", "Puyo Puyo (Japan, Rev B)", + "puyoja", "Puyo Puyo (Japan, Rev A)", + "puyopuy2", "Puyo Puyo 2 (Japan)", + "puyosun", "Puyo Puyo Sun (J 961115 V0.001)", + "puzlbang", "Puzzle Bang Bang (Korea, version 2.9 / 990108)", + "puzlbanga", "Puzzle Bang Bang (Korea, version 2.8 / 990106)", + "puzlclub", "Puzzle Club (Japan prototype)", + "puzldama", "Taisen Puzzle-dama (ver JAA)", + "puzlstar", "Puzzle Star (ver. 100MG)", + "puzzldpr", "Puzzle De Pon! R!", + "puzzledp", "Puzzle De Pon!", + "puzzlekg", "Puzzle King (Dance & Puzzle)", + "puzzlet", "Puzzlet (Japan)", + "puzzli", "Puzzli", + "puzzli2", "Puzzli 2 (ver. 100)", + "puzzli2s", "Puzzli 2 Super (ver. 200)", + "puzzloop", "Puzz Loop (Europe, v0.94)", + "puzzloopa", "Puzz Loop (Asia)", + "puzzloope", "Puzz Loop (Europe, v0.93)", + "puzzloopj", "Puzz Loop (Japan)", + "puzzloopk", "Puzz Loop (Korea)", + "puzzloopu", "Puzz Loop (USA)", + "puzznic", "Puzznic (World)", + "puzznici", "Puzznic (Italian bootleg)", + "puzznicj", "Puzznic (Japan)", + "pwerplay", "Power Play (Pinball)", + "pwheelsj", "Power Wheels (Japan)", + "pwrgoal", "Taito Power Goal (Ver 2.5O 1994/11/03)", + "pwrinst2", "Power Instinct 2 (US, Ver. 94/04/08)", + "pwrinst2j", "Gouketsuji Ichizoku 2 (Japan, Ver. 94/04/08)", + "pwrkick", "Power Kick (Japan)", + "pwrshovl", "Power Shovel ni Norou!! - Power Shovel Simulator", + "py2k2", "Photo Y2K 2", + "pyenaget", "Pye-nage Taikai", + "pyramid", "Pyramid (Dutch, Game Card 95-750-898)", + "pyros", "Pyros (US)", + "pyson", "Konami Pyson BIOS", + "pz_f4", "The Party Zone (F-4)", + "pz_l1", "The Party Zone (L-1)", + "pz_l2", "The Party Zone (L-2)", + "pz_l3", "The Party Zone (L-3)", + "pzlbowl", "Puzzle De Bowling (Japan)", + "pzlbreak", "Puzzle Break", + "pzlestar", "Puzzle Star (Sang Ho Soft)", + "pzletime", "Puzzle Time (prototype)", + "pzloop2", "Puzz Loop 2 (Euro 010302)", + "pzloop2j", "Puzz Loop 2 (Japan 010226)", + "pzloop2jr1", "Puzz Loop 2 (Japan 010205)", + "qad", "Quiz & Dragons: Capcom Quiz Game (USA 920701)", + "qadjr", "Quiz & Dragons: Capcom Quiz Game (Japan Resale Ver. 940921)", + "qb3", "QB-3 (prototype)", + "qbert", "Q*bert (US set 1)", + "qberta", "Q*bert (US set 2)", + "qbertj", "Q*bert (Japan)", + "qbertqub", "Q*bert's Qubes", + "qberttst", "Q*bert (early test version)", + "qbquest", "Q*Bert's Quest", + "qbtrktst", "Q*bert Board Input Test Rom", + "qc", "Quarter Horse Classic", + "qcrayon", "Quiz Crayon Shinchan (Japan)", + "qcrayon2", "Crayon Shinchan Orato Asobo (Japan)", + "qdrmfgp", "Quiz Do Re Mi Fa Grand Prix (Japan)", + "qdrmfgp2", "Quiz Do Re Mi Fa Grand Prix 2 - Shin-Kyoku Nyuukadayo (Japan)", + "qgakumon", "Quiz Gakumon no Susume (Japan ver. JA2 Type L)", + "qgh", "Quiz Ghost Hunter (Japan, ROM Based)", + "qix", "Qix (Rev 2)", + "qix2", "Qix II (Tournament)", + "qixa", "Qix (set 2, smaller roms)", + "qixb", "Qix (set 2, larger roms)", + "qixo", "Qix (set 3, earlier)", + "qjinsei", "Quiz Jinsei Gekijoh (Japan)", + "qmegamis", "Quiz Ah Megamisama (JPN, USA, EXP, KOR, AUS)", + "qmhayaku", "Quiz-Mahjong Hayaku Yatteyo! (Japan)", + "qndream", "Quiz Nanairo Dreams: Nijiirochou no Kiseki (Japan 960826)", + "qntoond", "Quintoon (Dutch, Game Card 95-750-243)", + "qntoondo", "Quintoon (Dutch, Game Card 95-750-136)", + "qos", "A Question of Sport (set 1, 39-960-107)", + "qosa", "A Question of Sport (set 2, 39-960-099)", + "qosb", "A Question of Sport (set 3, 39-960-089)", + "qotn", "Queen of the Nile (0200439V, NSW/ACT)", + "qrouka", "Quiz Rouka Ni Tattenasai (Japan, ROM Based)", + "qsangoku", "Quiz Sangokushi (Japan)", + "qsww", "Quiz Syukudai wo Wasuremashita (Japan, Floppy Based, FD1094 317-0058-08b)", + "qtheater", "Quiz Theater - 3tsu no Monogatari (Ver 2.3J 1994/11/10)", + "qtono1", "Quiz Tonosama no Yabou (Japan)", + "qtono2j", "Quiz Tonosama no Yabou 2: Zenkoku-ban (Japan 950123)", + "qtorimon", "Quiz Torimonochou (Japan)", + "quake", "Quake Arcade Tournament (Release Beta 2)", + "quantum", "Quantum (rev 2)", + "quantum1", "Quantum (rev 1)", + "quantump", "Quantum (prototype)", + "quaquiz2", "Quadro Quiz II", + "quarterb", "Quarterback (set 1)", + "quarterba", "Quarterback (set 2)", + "quarterh", "Quarter Horse (set 1, Pioneer PR-8210)", + "quarterha", "Quarter Horse (set 2, Pioneer PR-8210)", + "quarterhb", "Quarter Horse (set 3, Pioneer LD-V2000)", + "quartet", "Quartet (Rev A, 8751 315-5194)", + "quartet2", "Quartet 2 (8751 317-0010)", + "quartet2a", "Quartet 2 (unprotected)", + "quarteta", "Quartet (8751 315-5194)", + "quarth", "Quarth (Japan)", + "quasar", "Quasar (set 1)", + "quasara", "Quasar (set 2)", + "queen", "Queen?", + "queenotg", "Queen of the Games", + "quester", "Quester (Japan)", + "questers", "Quester Special Edition (Japan)", + "quickjac", "Quick Jack", + "quicksil", "Quicksilver", + "quintond", "Quintoon (UK, Game Card 95-751-206, Datapak)", + "quintono", "Quintoon (UK, Game Card 95-750-203)", + "quintoon", "Quintoon (UK, Game Card 95-750-206)", + "quiz", "Quiz (Revision 2)", + "quiz18k", "Miyasu Nonki no Quiz 18-Kin", + "quiz211", "Quiz (Revision 2.11)", + "quiz365", "Quiz 365 (Japan)", + "quiz365t", "Quiz 365 (Hong Kong & Taiwan)", + "quizard", "Quizard 3.2", + "quizchq", "Quiz Channel Question (Ver 1.00) (Japan)", + "quizchql", "Quiz Channel Question (Ver 1.23) (Taiwan?)", + "quizdai2", "Quiz Meitantei Neo & Geo - Quiz Daisousa Sen part 2 (NGM-042)(NGH-042)", + "quizdais", "Quiz Daisousa Sen - The Last Count Down (NGM-023)(NGH-023)", + "quizdaisk", "Quiz Daisousa Sen - The Last Count Down (Korean release)", + "quizdna", "Quiz DNA no Hanran (Japan)", + "quizf1", "Quiz F1 1-2 Finish (Japan)", + "quizhq", "Quiz H.Q. (Japan)", + "quizhuhu", "Moriguchi Hiroko no Quiz de Hyuu!Hyuu! (Ver 2.2J 1995/05/25)", + "quizkof", "Quiz King of Fighters (SAM-080)(SAH-080)", + "quizkofk", "Quiz King of Fighters (Korean release)", + "quizmeku", "Quiz Mekurumeku Story (Japan, ROM Based)", + "quizmoon", "Quiz Bisyoujo Senshi Sailor Moon - Chiryoku Tairyoku Toki no Un", + "quizmstr", "Quizmaster (German)", + "quizo", "Quiz Olympic (set 1)", + "quizoa", "Quiz Olympic (set 2)", + "quizpani", "Quiz Panicuru Fantasy", + "quizpun", "Quiz Punch", + "quizpun2", "Quiz Punch 2", + "quizqgd", "Quiz Keitai Q mode (GDL-0017)", + "quizrd12", "Quizard 1.2", + "quizrd17", "Quizard 1.7", + "quizrd18", "Quizard 1.8", + "quizrd22", "Quizard 2.2", + "quizrd23", "Quizard 2.3", + "quizrd34", "Quizard 3.4", + "quizrr40", "Quizard Rainbow 4.0", + "quizrr41", "Quizard Rainbow 4.1", + "quizrr42", "Quizard Rainbow 4.2", + "quizshow", "Quiz Show", + "quiztou", "Nettou! Gekitou! Quiztou!! (Japan)", + "quiztvqq", "Quiz TV Gassyuukoku Q&Q (Japan)", + "quizvadr", "Quizvaders (39-360-078)", + "quizvid", "Video Quiz", + "qwak", "Qwak (prototype)", + "qzchikyu", "Quiz Chikyu Bouei Gun (Japan)", + "qzkklgy2", "Quiz Kokology 2", + "qzkklogy", "Quiz Kokology", + "qzquest", "Quiz Quest - Hime to Yuusha no Monogatari (Japan)", + "qzshowby", "Quiz Sekai wa SHOW by shobai (Japan)", + "r2dtank", "R2D Tank", + "r2dx_v33", "Raiden II / DX (newer V33 PCB)", + "raaspec", "Spectrum I+", + "rab_103", "Adventures of Rocky and Bullwinkle and Friends (1.03 Spain)", + "rab_130", "Adventures of Rocky and Bullwinkle and Friends (1.30)", + "rab_320", "Adventures of Rocky and Bullwinkle and Friends (3.20)", + "rabbit", "Rabbit (Japan)", + "rabbitpk", "Rabbit Poker (Arizona Poker v1.1?)", + "rabiolep", "Rabio Lepus (Japan)", + "raccoon", "Raccoon World", + "racedriv", "Race Drivin' (cockpit, rev 5)", + "racedriv1", "Race Drivin' (cockpit, rev 1)", + "racedriv2", "Race Drivin' (cockpit, rev 2)", + "racedriv3", "Race Drivin' (cockpit, rev 3)", + "racedriv4", "Race Drivin' (cockpit, rev 4)", + "racedrivb", "Race Drivin' (cockpit, British, rev 5)", + "racedrivb1", "Race Drivin' (cockpit, British, rev 1)", + "racedrivb4", "Race Drivin' (cockpit, British, rev 4)", + "racedrivc", "Race Drivin' (compact, rev 5)", + "racedrivc1", "Race Drivin' (compact, rev 1)", + "racedrivc2", "Race Drivin' (compact, rev 2)", + "racedrivc4", "Race Drivin' (compact, rev 4)", + "racedrivcb", "Race Drivin' (compact, British, rev 5)", + "racedrivcb4", "Race Drivin' (compact, British, rev 4)", + "racedrivcg", "Race Drivin' (compact, German, rev 5)", + "racedrivcg4", "Race Drivin' (compact, German, rev 4)", + "racedrivg", "Race Drivin' (cockpit, German, rev 5)", + "racedrivg1", "Race Drivin' (cockpit, German, rev 2)", + "racedrivg4", "Race Drivin' (cockpit, German, rev 4)", + "racedrivpan", "Race Drivin' Panorama (prototype, rev 2.1)", + "raceon", "Race On! (RO2 Ver. A)", + "rachero", "Racing Hero (FD1094 317-0144)", + "racinfrc", "Racin' Force (ver EAC)", + "racinfrcu", "Racin' Force (ver UAB)", + "racingb", "Racing Beat (World)", + "racingbj", "Racing Beat (Japan)", + "racingj", "Racing Jam (JAC)", + "racingj2", "Racing Jam: Chapter 2 (EAE)", + "racingj2j", "Racing Jam: Chapter 2 (JAE)", + "racjamdx", "Racing Jam DX", + "rackempp", "Rack 'em Up! (Pinball)", + "rackemup", "Rack 'em Up (program code L)", + "racknrol", "Rack + Roll", + "radarscp", "Radar Scope", + "radarscp1", "Radar Scope (TRS01)", + "radarzon", "Radar Zone", + "radarzon1", "Radar Zone (Rev.1)", + "radarzont", "Radar Zone (Tuni)", + "radcl_g1", "Radical! (G-1)", + "radcl_l1", "Radical! (L-1)", + "radcl_p3", "Radical! (P-3)", + "radikalb", "Radikal Bikers (Version 2.02)", + "radirgy", "Radirgy (GDL-0032)", + "radirgya", "Radirgy (Rev A) (GDL-0032A)", + "radirgyn", "Radirgy Noa", + "radm", "Rad Mobile (World)", + "radmu", "Rad Mobile (US)", + "radr", "Rad Rally (World)", + "radrad", "Radical Radial", + "radrj", "Rad Rally (Japan)", + "radru", "Rad Rally (US)", + "raflesia", "Rafflesia (315-5162)", + "ragnagrd", "Ragnagard / Shin-Oh-Ken", + "ragtime", "The Great Ragtime Show (Japan v1.5, 92.12.07)", + "ragtimea", "The Great Ragtime Show (Japan v1.3, 92.11.26)", + "raiden", "Raiden (set 1)", + "raiden2", "Raiden II (set 1, US Fabtek)", + "raiden2a", "Raiden II (set 2, Hong Kong, Metrotainment)", + "raiden2b", "Raiden II (set 3, Japan)", + "raiden2c", "Raiden II (set 4, Italy)", + "raiden2d", "Raiden II (set 5, Easy Version)", + "raiden2e", "Raiden II (set 6, Easy Version)", + "raiden2f", "Raiden II (set 7, US Fabtek, Easy Version)", + "raiden2g", "Raiden II (set 8, US Fabtek, Easy Version)", + "raiden2nl", "Raiden II (set 9, The Netherlands)", + "raiden3", "Raiden III (v2.01J)", + "raiden4", "Raiden IV (v1.00J)", + "raidena", "Raiden (set 2)", + "raidenb", "Raiden (set 3)", + "raidendx", "Raiden DX (UK)", + "raidendxa1", "Raiden DX (Hong Kong, set 1)", + "raidendxa2", "Raiden DX (Hong Kong, set 2)", + "raidendxg", "Raiden DX (Germany)", + "raidendxj", "Raiden DX (Japan)", + "raidendxnl", "Raiden DX (The Netherlands)", + "raidendxu", "Raiden DX (US)", + "raidenk", "Raiden (Korea)", + "raident", "Raiden (Taiwan)", + "raidenu", "Raiden (US set 1)", + "raidenua", "Raiden (US set 2)", + "raiders", "Raiders", + "raiders5", "Raiders5", + "raiders5t", "Raiders5 (Japan)", + "raidersr3", "Raiders (Rev.3)", + "raiga", "Raiga - Strato Fighter (Japan)", + "raimais", "Raimais (World)", + "raimaisj", "Raimais (Japan)", + "raimaisjo", "Raimais (Japan, first revision)", + "raimfire", "Ready...Aim...Fire!", + "raizpin", "Raizin Ping Pong", + "rally", "Rally", + "rallybik", "Rally Bike / Dash Yarou", + "rallys", "Rallys (bootleg of Spectar, set 1)", + "rallysa", "Rallys (bootleg of Spectar, set 2)", + "rallyx", "Rally X (32k Ver.?)", + "rallyxa", "Rally X", + "rallyxm", "Rally X (Midway)", + "rallyxmr", "Rally X (Model Racing bootleg)", + "rambo3", "Rambo III (Europe)", + "rambo3p", "Rambo III (Europe, Proto?)", + "rambo3u", "Rambo III (US)", + "rampage", "Rampage (Rev 3, 8/27/86)", + "rampage2", "Rampage (Rev 2, 8/4/86)", + "rampart", "Rampart (Trackball)", + "rampart2p", "Rampart (Joystick)", + "rampartj", "Rampart (Japan, Joystick)", + "ramtek3", "unknown Ramtek Game (Maybe Hockey?) [TTL]", + "rangrmsn", "Ranger Mission", + "raphero", "Rapid Hero", + "rapidfip", "Rapid Fire", + "rapidfir", "Rapid Fire v1.1 (Build 239)", + "rapidfira", "Rapid Fire v1.1 (Build 238)", + "rapidfire", "Rapid Fire v1.0 (Build 236)", + "rapidrvr", "Rapid River (RD3 Ver. C)", + "rapidrvrp", "Rapid River (prototype)", + "rapidrvrv2c", "Rapid River (RD2 Ver. C)", + "rasce", "Ra Sceptor (Russia)", + "rascot", "Royal Ascot (Japan, terminal?)", + "rastan", "Rastan (World Rev 1)", + "rastana", "Rastan (World)", + "rastanu", "Rastan (US Rev 1)", + "rastanua", "Rastan (US)", + "rastanub", "Rastan (US, Earlier code base)", + "rastsag2", "Rastan Saga 2 (Japan)", + "rastsaga", "Rastan Saga (Japan Rev 1)", + "rastsagaa", "Rastan Saga (Japan)", + "ratrc_l1", "Rat Race (L-1)", + "raven", "Raven", + "raveracj", "Rave Racer (Rev. RV1 Ver.B, Japan)", + "raveracja", "Rave Racer (Rev. RV1, Japan)", + "raveracw", "Rave Racer (Rev. RV2, World)", + "raycris", "Ray Crisis (V2.03J)", + "rayforce", "Ray Force (Ver 2.3A 1994/01/20)", + "rayforcej", "Ray Force (Ver 2.3J 1994/01/20)", + "raystorm", "Ray Storm (Ver 2.06A)", + "raystormj", "Ray Storm (Ver 2.05J)", + "raystormo", "Ray Storm (Ver 2.05O)", + "raystormu", "Ray Storm (Ver 2.05A)", + "razmataz", "Razzmatazz", + "rbff1", "Real Bout Fatal Fury / Real Bout Garou Densetsu (NGM-095)(NGH-095)", + "rbff1a", "Real Bout Fatal Fury / Real Bout Garou Densetsu (bug fix revision)", + "rbff2", "Real Bout Fatal Fury 2 - The Newcomers / Real Bout Garou Densetsu 2 - the newcomers (NGM-2400)", + "rbff2h", "Real Bout Fatal Fury 2 - The Newcomers / Real Bout Garou Densetsu 2 - the newcomers (NGH-2400)", + "rbff2k", "Real Bout Fatal Fury 2 - The Newcomers (Korean release)", + "rbffspec", "Real Bout Fatal Fury Special / Real Bout Garou Densetsu Special", + "rbffspeck", "Real Bout Fatal Fury Special / Real Bout Garou Densetsu Special (Korean release)", + "rbibb", "Vs. Atari R.B.I. Baseball (set 1)", + "rbibba", "Vs. Atari R.B.I. Baseball (set 2)", + "rbisland", "Rainbow Islands (new version)", + "rbislande", "Rainbow Islands (Extra)", + "rbislando", "Rainbow Islands (old version)", + "rblaster", "Road Blaster (Data East LD)", + "rbmk", "Real Battle Mahjong King", + "rbtapper", "Tapper (Root Beer)", + "rcasino", "Royal Casino (D-2608208A1-2)", + "rcasino1", "Royal Casino (D-2608208A1-1, Larger Board)", + "rcasinoo", "Royal Casino (D-2608208A1-1, Smaller Board)", + "rcdego", "RC De Go (V2.03J)", + "rcdino4", "unknown encrypted Royal Card (Dino4 HW)", + "rchase", "Rail Chase (World)", + "rchase2", "Rail Chase 2 (Revision A)", + "rchasej", "Rail Chase (Japan)", + "rcirulet", "Ruleta RCI (6-players, Spanish)", + "rclimb", "Rock Climber (040815 World)", + "rclimb_3", "Rock Climber (040827 World)", + "rclimb_3a", "Rock Climber (bootleg, 040827, backdoor)", + "rclimb_3b", "Rock Climber (bootleg, 040827, new service menu)", + "rclimb_3c", "Rock Climber (bootleg, 040827, VIDEO GAME-1 SK01)", + "rclimb_3d", "Rock Climber (bootleg, 040827, LOTTOGAME (I))", + "rclimb_3e", "Rock Climber (bootleg, 040827, LOTOS SK01)", + "rclimb_4", "Rock Climber (070322 Russia)", + "rclimb_5", "Rock Climber (070621 Russia)", + "rclimb_7", "Rock Climber (090716 Entertainment)", + "rcorsair", "Red Corsair", + "rctnew", "Roller Coaster Tycoon (ARM7 Sound Board)", + "rctycn", "Roller Coaster Tycoon (7.02)", + "rctycn_400", "Roller Coaster Tycoon (4.00)", + "rctycn_600", "Roller Coaster Tycoon (6.00)", + "rctycn_701", "Roller Coaster Tycoon (7.01)", + "rctycnf", "Roller Coaster Tycoon (7.02 France)", + "rctycnf_400", "Roller Coaster Tycoon (4.00 France)", + "rctycnf_600", "Roller Coaster Tycoon (6.00 France)", + "rctycnf_701", "Roller Coaster Tycoon (7.01 France)", + "rctycng", "Roller Coaster Tycoon (7.02 Germany)", + "rctycng_400", "Roller Coaster Tycoon (4.00 Germany)", + "rctycng_701", "Roller Coaster Tycoon (7.01 Germany)", + "rctycni", "Roller Coaster Tycoon (7.02 Italy)", + "rctycni_400", "Roller Coaster Tycoon (4.00 Italy)", + "rctycni_600", "Roller Coaster Tycoon (6.00 Italy)", + "rctycni_701", "Roller Coaster Tycoon (7.01 Italy)", + "rctycnl", "Roller Coaster Tycoon (7.02 Spain)", + "rctycnl_400", "Roller Coaster Tycoon (4.00 Spain)", + "rctycnl_600", "Roller Coaster Tycoon (6.00 Spain)", + "rctycnl_701", "Roller Coaster Tycoon (7.01 Spain)", + "rdaction", "Rad Action / NinjaKun Ashura no Shou", + "rdft", "Raiden Fighters (Japan set 1)", + "rdft2", "Raiden Fighters 2 - Operation Hell Dive (Germany)", + "rdft22kc", "Raiden Fighters 2 - Operation Hell Dive 2000 (China, SYS386I)", + "rdft2a", "Raiden Fighters 2 - Operation Hell Dive (Hong Kong)", + "rdft2a2", "Raiden Fighters 2 - Operation Hell Dive (Korea)", + "rdft2j", "Raiden Fighters 2 - Operation Hell Dive (Japan set 1)", + "rdft2j2", "Raiden Fighters 2 - Operation Hell Dive (Japan set 2)", + "rdft2t", "Raiden Fighters 2 - Operation Hell Dive (Taiwan)", + "rdft2u", "Raiden Fighters 2 - Operation Hell Dive (US)", + "rdft2us", "Raiden Fighters 2 - Operation Hell Dive (US, single board)", + "rdfta", "Raiden Fighters (Austria)", + "rdftadi", "Raiden Fighters (Korea)", + "rdftam", "Raiden Fighters (Hong Kong)", + "rdftau", "Raiden Fighters (Australia)", + "rdftit", "Raiden Fighters (Italy)", + "rdftj", "Raiden Fighters (Japan set 2)", + "rdfts", "Raiden Fighters (Taiwan, single board)", + "rdftu", "Raiden Fighters (US)", + "rdkng_l1", "Road Kings (L-1)", + "rdkng_l2", "Road Kings (L-2)", + "rdkng_l3", "Road Kings (L-3)", + "rdkng_l4", "Road Kings (L-4)", + "re800ea", "Ruleta RE-800 (earlier, no attract)", + "re800v1", "Ruleta RE-800 (v1.0)", + "re800v3", "Ruleta RE-800 (v3.0)", + "re900", "Ruleta RE-900", + "reactor", "Reactor", + "reaktor", "Reaktor (Track & Field conversion)", + "real", "Real", + "realbrk", "Billiard Academy Real Break (Europe)", + "realbrkj", "Billiard Academy Real Break (Japan)", + "realbrkk", "Billiard Academy Real Break (Korea)", + "realbrod", "The Real Broadway (9131-20-00 R0A)", + "realpunc", "Real Puncher", + "rebus", "Rebus", + "recalh", "Recalhorn (Ver 1.42J 1994/5/11) (Prototype)", + "record", "Record (Version 1)", + "recordbr", "Recordbreaker (World)", + "redalert", "Red Alert", + "redbaron", "Red Baron (Revised Hardware)", + "redbarona", "Red Baron", + "redclash", "Red Clash (set 1)", + "redclasha", "Red Clash (set 2)", + "redclashk", "Red Clash (Kaneko)", + "redearth", "Red Earth (Euro 961121)", + "redearthr1", "Red Earth (Euro 961023)", + "redfoxwp2", "Red Fox War Planes II (China, set 1)", + "redfoxwp2a", "Red Fox War Planes II (China, set 2)", + "redhawk", "Red Hawk (US)", + "redhawkb", "Red Hawk (bootleg)", + "redhawke", "Red Hawk (Excellent Co., Ltd)", + "redhawki", "Red Hawk (Italy)", + "redlin2p", "Redline Racer (2 players)", + "redrobin", "Red Robin", + "redufo", "Defend the Terra Attack on the Red UFO", + "redufob", "Defend the Terra Attack on the Red UFO (bootleg)", + "reelemin", "Reel 'Em In (Russia)", + "reelfun", "Reel Fun (Version 7.03)", + "reelfun1", "Reel Fun (Version 7.01)", + "reelquak", "Reel'N Quake! (Ver. 1.05)", + "reelrock", "Reelin-n-Rockin (0100779V, Local)", + "regulus", "Regulus (315-5033, Rev A.)", + "reguluso", "Regulus (315-5033)", + "regulusu", "Regulus (not encrypted)", + "reikaids", "Reikai Doushi (Japan)", + "relief", "Relief Pitcher (set 1, 07 Jun 1992 / 28 May 1992)", + "relief2", "Relief Pitcher (set 2, 26 Apr 1992 / 08 Apr 1992)", + "relief3", "Relief Pitcher (set 3, 10 Apr 1992 / 08 Apr 1992)", + "renaiclb", "Mahjong Ren-ai Club (Japan)", + "renegade", "Renegade (US)", + "renju", "Renju Kizoku", + "repulse", "Repulse", + "rescraid", "Rescue Raider (5/11/87) (non-cartridge)", + "rescraida", "Rescue Raider (stand-alone)", + "rescu911", "Rescue 911 (rev.1)", + "rescue", "Rescue", + "rescueb", "Rescue (bootleg)", + "resdnt", "Resident (040415 World)", + "resdnt_2", "Resident (040513 World)", + "resdnt_2a", "Resident (bootleg, 040513, backdoor)", + "resdnt_2b", "Resident (bootleg, 040513, VIDEO GAME-1 SE01 set 1)", + "resdnt_2c", "Resident (bootleg, 040513, VIDEO GAME-1 SE01 set 2)", + "resdnt_2d", "Resident (bootleg, 040513, VIDEO GAME-1 SE01 set 3)", + "resdnt_2e", "Resident (bootleg, 040513, LOTTOGAME (I))", + "resdnt_2f", "Resident (bootleg, 040513, LOTO PROGRAM V-RS2)", + "resdnt_2g", "Resident (bootleg, 040513, LOTOS SE01)", + "resdnt_3", "Resident (070222 Russia)", + "resdnt_6", "Resident (100311 World)", + "resdnt_8", "Resident (100311 Entertainment)", + "resdnt_9", "Resident (100316 Russia)", + "retofinv", "Return of the Invaders", + "retofinv1", "Return of the Invaders (bootleg set 1)", + "retofinv2", "Return of the Invaders (bootleg set 2)", + "revenger", "Revenger", + "revx", "Revolution X (Rev. 1.0 6/16/94)", + "rezon", "Rezon", + "rezont", "Rezon (Taito)", + "rf2", "Konami RF2 - Red Fighter", + "rfjet", "Raiden Fighters Jet (Germany)", + "rfjet2kc", "Raiden Fighters Jet 2000 (China, SYS386I)", + "rfjeta", "Raiden Fighters Jet (Korea)", + "rfjetj", "Raiden Fighters Jet (Japan)", + "rfjets", "Raiden Fighters Jet (US, single board)", + "rfjetsa", "Raiden Fighters Jet (US, single board, test version?)", + "rfjett", "Raiden Fighters Jet (Taiwan)", + "rfjetu", "Raiden Fighters Jet (US)", + "rflshdlx", "Royal Flush Deluxe", + "rfmpb", "Pinball 2000: Revenge From Mars (rev. 1)", + "rfmpbr2", "Pinball 2000: Revenge From Mars (rev. 2)", + "rgum", "Royal Gum (Italy)", + "ribbit", "Ribbit!", + "ridgera2", "Ridge Racer 2 (Rev. RRS2, World)", + "ridgera2j", "Ridge Racer 2 (Rev. RRS1 Ver.B, Japan)", + "ridgera2ja", "Ridge Racer 2 (Rev. RRS1, Japan)", + "ridgerac", "Ridge Racer (Rev. RR3, World)", + "ridgerac3", "Ridge Racer (Rev. RR2 Ver.B, World, 3-screen?)", + "ridgeracb", "Ridge Racer (Rev. RR2, World)", + "ridgeracf", "Ridge Racer Full Scale (World)", + "ridgeracj", "Ridge Racer (Rev. RR1, Japan)", + "ridhero", "Riding Hero (NGM-006)(NGH-006)", + "ridheroh", "Riding Hero (set 2)", + "ridingf", "Riding Fight (Ver 1.0O)", + "ridingfj", "Riding Fight (Ver 1.0J)", + "ridingfu", "Riding Fight (Ver 1.0A)", + "ridleofp", "Riddle of Pythagoras (Japan)", + "rimrockn", "Rim Rockin' Basketball (V2.2)", + "rimrockn12", "Rim Rockin' Basketball (V1.2)", + "rimrockn16", "Rim Rockin' Basketball (V1.6)", + "rimrockn20", "Rim Rockin' Basketball (V2.0)", + "ringdest", "Ring of Destruction: Slammasters II (Euro 940902)", + "ringdesta", "Ring of Destruction: Slammasters II (Asia 940831)", + "ringdstd", "Ring of Destruction: Slammasters II (Euro 940902 Phoenix Edition) (bootleg)", + "ringfgt", "Ring Fighter (set 1)", + "ringfgt2", "Ring Fighter (set 2)", + "ringking", "Ring King (US set 1)", + "ringking2", "Ring King (US set 2)", + "ringking3", "Ring King (US set 3)", + "ringkingw", "Ring King (US, Wood Place Inc.)", + "ringohja", "Ring no Ohja (Japan 2 Players ver. N)", + "ringout", "Ring Out 4x4", + "ringrage", "Ring Rage (Ver 2.3O 1992/08/09)", + "ringragej", "Ring Rage (Ver 2.3J 1992/08/09)", + "ringrageu", "Ring Rage (Ver 2.3A 1992/08/09)", + "rio", "Rio", + "riot", "Riot", + "riotcity", "Riot City (Japan)", + "rip300", "Ripley's Believe It or Not! (3.00)", + "rip301", "Ripley's Believe It or Not! (3.01)", + "rip302", "Ripley's Believe It or Not! (3.02)", + "rip310", "Ripley's Believe It or Not! (3.10)", + "ripcord", "Rip Cord", + "ripf300", "Ripley's Believe It or Not! (3.00 France)", + "ripf301", "Ripley's Believe It or Not! (3.01 France)", + "ripf302", "Ripley's Believe It or Not! (3.02 France)", + "ripf310", "Ripley's Believe It or Not! (3.10 France)", + "ripg300", "Ripley's Believe It or Not! (3.00 Germany)", + "ripg301", "Ripley's Believe It or Not! (3.01 Germany)", + "ripg302", "Ripley's Believe It or Not! (3.02 Germany)", + "ripg310", "Ripley's Believe It or Not! (3.10 Germany)", + "ripi300", "Ripley's Believe It or Not! (3.00 Italy)", + "ripi301", "Ripley's Believe It or Not! (3.01 Italy)", + "ripi302", "Ripley's Believe It or Not! (3.02 Italy)", + "ripi310", "Ripley's Believe It or Not! (3.10 Italy)", + "ripl300", "Ripley's Believe It or Not! (3.00 Spain)", + "ripl301", "Ripley's Believe It or Not! (3.01 Spain)", + "ripl302", "Ripley's Believe It or Not! (3.02 Spain)", + "ripl310", "Ripley's Believe It or Not! (3.10 Spain)", + "ripleys", "Ripley's Believe It or Not! (3.20)", + "ripleysf", "Ripley's Believe It or Not! (3.20 France)", + "ripleysg", "Ripley's Believe It or Not! (3.20 Germany)", + "ripleysi", "Ripley's Believe It or Not! (3.20 Italy)", + "ripleysl", "Ripley's Believe It or Not! (3.20 Spain)", + "ripoff", "Rip Off", + "ripribit", "Ripper Ribbit (Version 2.8.4)", + "riskchal", "Risky Challenge", + "riviera", "Riviera Hi-Score (2131-08, U5-4A)", + "rivieraa", "Riviera Hi-Score (2131-08, U5-4)", + "rivierab", "Riviera Hi-Score (2131-08, U5-2D)", + "rjammer", "Roller Jammer", + "rltennis", "Reality Tennis", + "rmancp2j", "Rockman: The Power Battle (CPS2, Japan 950922)", + "rmgoldyh", "Real Mahjong Gold Yumehai / Super Real Mahjong GOLD part.2 [BET] (Japan)", + "rmhaihai", "Real Mahjong Haihai (Japan)", + "rmhaihib", "Real Mahjong Haihai [BET] (Japan)", + "rmhaijin", "Real Mahjong Haihai Jinji Idou Hen (Japan)", + "rmhaisei", "Real Mahjong Haihai Seichouhen (Japan)", + "rmpgwt", "Rampage: World Tour (rev 1.3)", + "rmpgwt11", "Rampage: World Tour (rev 1.1)", + "roadblst", "Road Blasters (upright, rev 4)", + "roadblst1", "Road Blasters (upright, rev 1)", + "roadblst2", "Road Blasters (upright, rev 2)", + "roadblst3", "Road Blasters (upright, rev 3)", + "roadblstc", "Road Blasters (cockpit, rev 2)", + "roadblstc1", "Road Blasters (cockpit, rev 1)", + "roadblstcg", "Road Blasters (cockpit, German, rev 1)", + "roadblstg", "Road Blasters (upright, German, rev 3)", + "roadblstg1", "Road Blasters (upright, German, rev 1)", + "roadblstg2", "Road Blasters (upright, German, rev 2)", + "roadburn", "Road Burners", + "roadedge", "Roads Edge / Round Trip (rev.B)", + "roadf", "Road Fighter (set 1)", + "roadf2", "Road Fighter (set 2)", + "roadriot", "Road Riot 4WD (set 1, 13 Nov 1991)", + "roadrioto", "Road Riot 4WD (set 2, 04 Jun 1991)", + "roadrunm", "Road Runner (Midway)", + "roadrunn", "Road Runner (rev 2)", + "roadrunn1", "Road Runner (rev 1)", + "roadrunn2", "Road Runner (rev 1+)", + "roadrunr", "Road Runner", + "robadv", "Robin's Adventure (Version 1.7E Dual)", + "robadv2", "Robin's Adventure 2 (Version 1.7E Dual)", + "robadv2c1", "Robin's Adventure 2 (Version 1.7R, set 1)", + "robadv2c2", "Robin's Adventure 2 (Version 1.7LT, set 1)", + "robadv2c3", "Robin's Adventure 2 (Version 1.7SH, set 1)", + "robadv2d1", "Robin's Adventure 2 (Version 1.7R, set 2)", + "robadv2d2", "Robin's Adventure 2 (Version 1.7LT, set 2)", + "robadv2d3", "Robin's Adventure 2 (Version 1.7SH, set 2)", + "robadv2o", "Robin's Adventure 2 (Version 1.5SH)", + "robadv2o2", "Robin's Adventure 2 (Version 1.5)", + "robadv2v1", "Robin's Adventure 2 (Version 1.7R Dual)", + "robadv2v2", "Robin's Adventure 2 (Version 1.7LT Dual)", + "robadv2v3", "Robin's Adventure 2 (Version 1.7SH Dual)", + "robadvc1", "Robin's Adventure (Version 1.7R, set 1)", + "robadvd1", "Robin's Adventure (Version 1.7R, set 2)", + "robadvo", "Robin's Adventure (Version 1.5)", + "robadvv1", "Robin's Adventure (Version 1.7R Dual)", + "robby", "The Adventures of Robby Roto!", + "robo_a34", "Robocop (3.4)", + "roboarmy", "Robo Army", + "robocop", "Robocop (World revision 4)", + "robocop2", "Robocop 2 (Euro/Asia v0.10)", + "robocop2j", "Robocop 2 (Japan v0.11)", + "robocop2u", "Robocop 2 (US v0.05)", + "robocopb", "Robocop (World bootleg)", + "robocopj", "Robocop (Japan)", + "robocopu", "Robocop (US revision 1)", + "robocopu0", "Robocop (US revision 0)", + "robocopw", "Robocop (World revision 3)", + "robokid", "Atomic Robo-kid", + "robokidj", "Atomic Robo-kid (Japan, set 1)", + "robokidj2", "Atomic Robo-kid (Japan, set 2)", + "robot", "Robot (Zaccaria)", + "robotbwl", "Robot Bowl", + "robotf", "Robot (Zaccaria, French speech)", + "robotg", "Robot (Zaccaria, German speech)", + "roboti", "Robot (Zaccaria, Italian speech)", + "robotron", "Robotron: 2084 (Solid Blue label)", + "robotronyo", "Robotron: 2084 (Yellow/Orange label)", + "robowars", "Robo-War", + "robowres", "Robo Wres 2001", + "robowresb", "Robo Wres 2001 (bootleg)", + "rock", "Rock", + "rock2500", "Rock 2500", + "rock_enc", "Rock Encore", + "rockclim", "Rock Climber", + "rockduck", "Rock Duck (prototype?)", + "rockman2j", "Rockman 2: The Power Fighters (Japan 960708)", + "rockmanj", "Rockman: The Power Battle (CPS1, Japan 950922)", + "rockn", "Rock'n Tread (Japan)", + "rockn2", "Rock'n Tread 2 (Japan)", + "rockn3", "Rock'n 3 (Japan)", + "rockn4", "Rock'n 4 (Japan, prototype)", + "rockna", "Rock'n Tread (Japan, alternate)", + "rocknms", "Rock'n MegaSession (Japan)", + "rockrage", "Rock'n Rage (World)", + "rockragea", "Rock'n Rage (prototype?)", + "rockragej", "Koi no Hotrock (Japan)", + "rocktris", "Rock Tris", + "rocktrv2", "MTV Rock-N-Roll Trivia (Part 2)", + "rocky", "Rocky", + "rocnrope", "Roc'n Rope", + "rocnropek", "Roc'n Rope (Kosuka)", + "rodland", "Rod-Land (World)", + "rodlandj", "Rod-Land (Japan)", + "rodlandjb", "Rod-Land (Japan bootleg)", + "rohga", "Rohga Armor Force (Asia/Europe v5.0)", + "rohga1", "Rohga Armor Force (Asia/Europe v3.0 set 1)", + "rohga2", "Rohga Armor Force (Asia/Europe v3.0 set 2)", + "rohgah", "Rohga Armor Force (Hong Kong v3.0)", + "rohgau", "Rohga Armor Force (US v1.0)", + "roishtar", "The Return of Ishtar", + "roldfrog", "The Return of Lady Frog (set 1)", + "roldfroga", "The Return of Lady Frog (set 2)", + "roldisco", "Roller Disco", + "rollace", "Roller Aces (set 1)", + "rollace2", "Roller Aces (set 2)", + "rollerg", "Rollergames (US)", + "rollergj", "Rollergames (Japan)", + "rollfr_2", "Roll Fruit (040318)", + "rollfr_3", "Roll Fruit (080327)", + "rollfr_4", "Roll Fruit (080331)", + "rollingc", "Rolling Crash / Moon Base", + "rollr_e1", "Rollergames (PU-1)", + "rollr_ex", "Rollergames (EXPERIMENTAL)", + "rollr_g3", "Rollergames (LG-3) Germany", + "rollr_l2", "Rollergames (L-2)", + "rollr_l3", "Rollergames (LU-3) Europe", + "rollr_p2", "Rollergames (PA-2 / PA-1 Sound)", + "rollston", "Rolling Stones", + "romanl", "Roman Legions (Konami Endeavour)", + "rompers", "Rompers (Japan, new version (Rev B))", + "romperso", "Rompers (Japan, old version)", + "rongrong", "Puzzle Game Rong Rong (Europe)", + "rongrongg", "Puzzle Game Rong Rong (Germany)", + "rongrongj", "Puzzle Game Rong Rong (Japan)", + "ronjan", "Ron Jan (Super)", + "ropeman", "Ropeman (bootleg of Roc'n Rope)", + "rotaryf", "Rotary Fighter", + "rotation", "Rotation VIII", + "rotd", "Rage of the Dragons (NGM-264?)", + "rotr", "Rise of the Robots (prototype)", + "roughrac", "Rough Racer (Japan, Floppy Based, FD1094 317-0058-06b)", + "rougien", "Rougien", + "roul", "Super Lucky Roulette", + "roundup", "Round-Up", + "roundup5", "Round Up 5 - Super Delta Force", + "route16", "Route 16 (set 1)", + "route16a", "Route 16 (set 2)", + "route16b", "Route 16 (bootleg)", + "routex", "Route X (bootleg)", + "royal", "Royal (Pool 10 hack)", + "royalcdfr", "Royal Card (French)", + "royalcrd", "Royal Card (Austrian, set 1)", + "royalcrda", "Royal Card (Austrian, set 2)", + "royalcrdb", "Royal Card (Austrian/Polish, set 3)", + "royalcrdc", "Royal Card (Austrian, set 4)", + "royalcrdd", "Royal Card (Austrian, set 5)", + "royalcrde", "Royal Card (Austrian, set 6)", + "royalcrdf", "Royal Card (Slovak, encrypted)", + "royalcrdg", "Royal Card (Austrian, set 7, CMC C1030 HW)", + "royalcrdp", "Royal Card v2.0 Professional", + "royalcrdt", "Royal Card (TAB original)", + "royale", "Royale (set 1)", + "royalea", "Royale (set 2)", + "royalmah", "Royal Mahjong (Falcon bootleg, v1.01)", + "royalmj", "Royal Mahjong (Japan, v1.13)", + "royalngt", "Royal Night [BET] (Japan 840220 RN 2-00)", + "royalqn", "Royal Queen [BET] (Japan 841010 RQ 0-07)", + "royclark", "Roy Clark - The Entertainer", + "roylcrdn", "Royal Card (Nichibutsu)", + "roypok96", "Royal Poker '96 (set 1)", + "roypok96a", "Royal Poker '96 (set 2)", + "roypok96b", "Royal Poker '96 (set 3)", + "rpatrol", "River Patrol (Orca)", + "rpatrolb", "River Patrol (bootleg)", + "rpunch", "Rabbit Punch (US)", + "rranger", "Rough Ranger (v2.0)", + "rrangerb", "Rough Ranger (v2.0, bootleg)", + "rrreveng", "Road Riot's Revenge (prototype, Sep 06, 1994)", + "rrrevenga", "Road Riot's Revenge (prototype, Jan 27, 1994, set 1)", + "rrrevengb", "Road Riot's Revenge (prototype, Jan 27, 1994, set 2)", + "rrvac", "Ridge Racer V Arcade Battle (RRV3 Ver. A)", + "rs_l6", "Red and Ted's Road Show (L-6)", + "rs_la4", "Red and Ted's Road Show (La-4)", + "rs_la5", "Red and Ted's Road Show (La-5)", + "rs_lx2", "Red and Ted's Road Show (Lx-2)", + "rs_lx3", "Red and Ted's Road Show (Lx-3)", + "rs_lx4", "Red and Ted's Road Show (Lx-4)", + "rs_lx5", "Red and Ted's Road Show (Lx-5)", + "rsgun", "Radiant Silvergun (JUET 980523 V1.000)", + "rshark", "R-Shark", + "rthun2", "Rolling Thunder 2", + "rthun2j", "Rolling Thunder 2 (Japan)", + "rthunder", "Rolling Thunder (rev 3)", + "rthunder1", "Rolling Thunder (rev 1)", + "rthunder2", "Rolling Thunder (rev 2)", + "rtriv", "Romar Triv", + "rtype", "R-Type (World)", + "rtype2", "R-Type II", + "rtype2j", "R-Type II (Japan)", + "rtype2jc", "R-Type II (Japan, revision C)", + "rtypeb", "R-Type (World bootleg)", + "rtypej", "R-Type (Japan)", + "rtypejp", "R-Type (Japan prototype)", + "rtypeleo", "R-Type Leo (World)", + "rtypeleoj", "R-Type Leo (Japan)", + "rtypeu", "R-Type (US)", + "rugby", "Rugby? (four roses hardware)", + "rugrats", "Rug Rats", + "rumba", "Rumba Lumber", + "rumblef", "The Rumble Fish", + "rumblef2", "The Rumble Fish 2", + "runark", "Runark (Japan)", + "runaway", "Runaway (prototype)", + "rundeep", "Run Deep", + "rungun", "Run and Gun (ver EAA 1993 10.8)", + "rungun2", "Run and Gun 2 (ver UAA)", + "runguna", "Run and Gun (ver EAA 1993 10.4)", + "rungunu", "Run and Gun (ver UAB 1993 10.12)", + "rungunua", "Run and Gun (ver UBA 1993 10.8)", + "rushatck", "Rush'n Attack (US)", + "rushcrsh", "Rush & Crash (Japan)", + "rushhero", "Rushing Heroes (ver UAB)", + "rvrbt_l3", "Riverboat Gambler (L-3)", + "rvschool", "Rival Schools: United By Fate (Euro 971117)", + "rvschoola", "Rival Schools: United By Fate (Asia 971117)", + "rvschoolu", "Rival Schools: United By Fate (USA 971117)", + "rygar", "Rygar (US set 1)", + "rygar2", "Rygar (US set 2)", + "rygar3", "Rygar (US set 3 Old Version)", + "rygarj", "Argus no Senshi (Japan)", + "ryorioh", "Gourmet Battle Quiz Ryohrioh CooKing (Japan)", + "ryouran", "VS Mahjong Otome Ryouran", + "ryujin", "Ryu Jin (Japan)", + "ryukendn", "Ninja Ryukenden (Japan, set 1)", + "ryukendna", "Ninja Ryukenden (Japan, set 2)", + "ryukobou", "Mahjong Ryukobou (Japan, V030J)", + "ryukyu", "RyuKyu (Japan, FD1094 317-5023)", + "ryuuha", "Ryuuha [BET] (Japan 871027)", + "s1945", "Strikers 1945 (World)", + "s1945a", "Strikers 1945 (Japan / World)", + "s1945bl", "Strikers 1945 (Hong Kong, bootleg)", + "s1945ii", "Strikers 1945 II", + "s1945iii", "Strikers 1945 III (World) / Strikers 1999 (Japan)", + "s1945j", "Strikers 1945 (Japan)", + "s1945jn", "Strikers 1945 (Japan, unprotected)", + "s1945k", "Strikers 1945 (Korea)", + "s1945p", "Strikers 1945 Plus", + "s80tst", "System 80 Test", + "sabotenb", "Saboten Bombers (set 1)", + "sabotenba", "Saboten Bombers (set 2)", + "sadari", "Sadari", + "safari", "Safari (set 1)", + "safaria", "Safari (set 2, bootleg?)", + "safarir", "Safari Rally (World)", + "safarirj", "Safari Rally (Japan)", + "safemon", "Safe Money (Konami Endeavour)", + "sagaia", "Sagaia (dual screen) (World)", + "sailormn", "Pretty Soldier Sailor Moon (Ver. 95/03/22B, Europe)", + "sailormnh", "Pretty Soldier Sailor Moon (Ver. 95/03/22B, Hong Kong)", + "sailormnj", "Pretty Soldier Sailor Moon (Ver. 95/03/22B, Japan)", + "sailormnk", "Pretty Soldier Sailor Moon (Ver. 95/03/22B, Korea)", + "sailormno", "Pretty Soldier Sailor Moon (Ver. 95/03/22, Europe)", + "sailormnoh", "Pretty Soldier Sailor Moon (Ver. 95/03/22, Hong Kong)", + "sailormnoj", "Pretty Soldier Sailor Moon (Ver. 95/03/22, Japan)", + "sailormnok", "Pretty Soldier Sailor Moon (Ver. 95/03/22, Korea)", + "sailormnot", "Pretty Soldier Sailor Moon (Ver. 95/03/22, Taiwan)", + "sailormnou", "Pretty Soldier Sailor Moon (Ver. 95/03/22, USA)", + "sailormnt", "Pretty Soldier Sailor Moon (Ver. 95/03/22B, Taiwan)", + "sailormnu", "Pretty Soldier Sailor Moon (Ver. 95/03/22B, USA)", + "sailorwa", "Mahjong Sailor Wars (Japan set 2)", + "sailorwr", "Mahjong Sailor Wars-R [BET] (Japan)", + "sailorws", "Mahjong Sailor Wars (Japan set 1)", + "saiyugou", "Sai Yu Gou Ma Roku (Japan)", + "saiyugoub1", "Sai Yu Gou Ma Roku (Japan bootleg 1)", + "saiyugoub2", "Sai Yu Gou Ma Roku (Japan bootleg 2)", + "saiyukip", "Slot Poker Saiyuki (Japan)", + "saklove", "Ying Hua Lian 2.0 (China, Ver. 1.02)", + "salamand", "Salamander (version D)", + "salamandj", "Salamander (version J)", + "salarymc", "Salary Man Champ (GCA18 VER. JAA)", + "salmankt", "Salary Man Kintarou", + "salmndr2", "Salamander 2 (ver JAA)", + "salmndr2a", "Salamander 2 (ver AAB)", + "saloon", "Saloon (French, encrypted)", + "samba", "Samba De Amigo (JPN) (Rev B)", + "samba2k", "Samba de Amigo ver. 2000", + "sambap", "Samba De Amigo (prototype)", + "samesame", "Same! Same! Same! (1P set)", + "samesame2", "Same! Same! Same! (2P set)", + "sammymdl", "Sammy Medal Game System Bios", + "sams64", "Samurai Shodown 64 / Samurai Spirits 64", + "sams64_2", "Samurai Shodown: Warrior's Rage / Samurai Spirits 2: Asura Zanmaden", + "samsh5sp", "Samurai Shodown V Special / Samurai Spirits Zero Special (NGM-2720)", + "samsh5sph", "Samurai Shodown V Special / Samurai Spirits Zero Special (NGH-2720) (2nd release, less censored)", + "samsh5spho", "Samurai Shodown V Special / Samurai Spirits Zero Special (NGH-2720) (1st release, censored)", + "samsho", "Samurai Shodown / Samurai Spirits (NGM-045)", + "samsho2", "Samurai Shodown II / Shin Samurai Spirits - Haohmaru jigokuhen (NGM-063)(NGH-063)", + "samsho2k", "Saulabi Spirits / Jin Saulabi Tu Hon (Korean release of Samurai Shodown II)", + "samsho3", "Samurai Shodown III / Samurai Spirits - Zankurou Musouken (NGM-087)", + "samsho3h", "Samurai Shodown III / Samurai Spirits - Zankurou Musouken (NGH-087)", + "samsho4", "Samurai Shodown IV - Amakusa's Revenge / Samurai Spirits - Amakusa Kourin (NGM-222)(NGH-222)", + "samsho4k", "Pae Wang Jeon Seol / Legend of a Warrior (Korean censored Samurai Shodown IV)", + "samsho5", "Samurai Shodown V / Samurai Spirits Zero (NGM-2700)", + "samsho5b", "Samurai Shodown V / Samurai Spirits Zero (bootleg)", + "samsho5h", "Samurai Shodown V / Samurai Spirits Zero (NGH-2700)", + "samshoh", "Samurai Shodown / Samurai Spirits (NGH-045)", + "samspsen", "Samurai Spirits Sen (v1.00)", + "samsptk", "Samurai Spirits Tenkaichi Kenkakuden", + "samurai", "Samurai", + "samuraia", "Samurai Aces (World)", + "sandor", "Puzzle & Action: Sando-R (J 951114 V1.000)", + "sandscrp", "Sand Scorpion", + "sandscrpa", "Sand Scorpion (Earlier)", + "sandscrpb", "Sand Scorpion (Chinese Title Screen, Revised Hardware)", + "sanjeon", "DaeJeon! SanJeon SuJeon (AJTUE 990412 V1.000)", + "santam", "Santa Maria (Russia) (Atronic)", + "sarge", "Sarge", + "sarukani", "Saru-Kani-Hamu-Zou (Japan)", + "sasissu", "Taisen Tanto-R Sashissu!! (J 980216 V1.000)", + "sasuke", "Sasuke vs. Commander", + "satansat", "Satan of Saturn (set 1)", + "satansata", "Satan of Saturn (set 2)", + "satansatind", "Satan of Saturn (Inder S.A., bootleg)", + "saturn2", "Saturn 2", + "saturnzi", "Saturn", + "sauro", "Sauro", + "saurop", "Sauro (Philko license)", + "savagere", "Savage Reign / Fu'un Mokushiroku - kakutou sousei", + "savanna", "Savanna (Jungler bootleg)", + "savgbees", "Savage Bees", + "savquest", "Savage Quest", + "sb2003", "Super Bubble 2003 (World, Ver 1.0)", + "sb2003a", "Super Bubble 2003 (Asia, Ver 1.0)", + "sbagman", "Super Bagman", + "sbagmans", "Super Bagman (Stern Electronics)", + "sbasebal", "Super Champion Baseball (US)", + "sbasketb", "Super Basketball (version I, encrypted)", + "sbaskete", "Super Basketball (version E, encrypted)", + "sbasketg", "Super Basketball (version G, encrypted)", + "sbasketh", "Super Basketball (version H, unprotected)", + "sbbros", "Super Buster Bros. (USA 901001)", + "sbdk", "Super Bike (DK conversion)", + "sbishi", "Super Bishi Bashi Championship (ver JAA, 2 Players)", + "sbishik", "Super Bishi Bashi Championship (ver KAA, 3 Players)", + "sblast2b", "Sonic Blast Man 2 Special Turbo (SNES bootleg)", + "sblazerp", "Star Blazer (Pioneer LDV1000)", + "sbm", "Sonic Blast Man (Japan)", + "sboblboa", "Super Bobble Bobble (set 1)", + "sboblbob", "Super Bobble Bobble (set 2)", + "sbomber", "Space Bomber (ver. B)", + "sbombera", "Space Bomber", + "sbowling", "Strike Bowling", + "sbp", "Super Bubble Pop", + "sbrkout", "Super Breakout (rev 04)", + "sbrkout3", "Super Breakout (rev 03)", + "sbsgomo", "Space Battle Ship Gomorrah", + "sbugger", "Space Bugger (set 1)", + "sbuggera", "Space Bugger (set 2)", + "sburners", "Street Burners [TTL]", + "sc1actv8", "Active 8 (Dutch) (Bellfruit) (Scorpion 1)", + "sc1armad", "Armada (Dutch) (Bellfruit) (Scorpion 1)", + "sc1barcd", "Barcode (Bellfruit) (set 1) (Scorpion 1)", + "sc1barcda", "Barcode (Bellfruit) (set 2) (Scorpion 1)", + "sc1bartk", "Bar Trek (Bellfruit) (Scorpion 1)", + "sc1bigmt", "The Big Match (Dutch) (Bellfruit) (Scorpion 1)", + "sc1boncl", "Bonanza Club (unknown) (Scorpion 1)", + "sc1btbc", "Beat The Bank Club (unknown) (Scorpion 1?)", + "sc1btclk", "Beat The Clock (Mdm) (set 1) (Scorpion 2/3?)", + "sc1btclka", "Beat The Clock (Mdm) (set 2) (Scorpion 2/3?)", + "sc1btclkb", "Beat The Clock (Mdm) (set 3) (Scorpion 2/3?)", + "sc1calyp", "Calypso (Dutch) (Bellfruit) (Scorpion 1)", + "sc1carro", "Carrousel (Dutch) (Bellfruit) (Scorpion 1)", + "sc1ccoin", "Cash Coin (Dutch) (Bellfruit) (Scorpion 1)", + "sc1ccroc", "Crazy Crocs (Mdm) (set 1) (Scorpion 2/3?)", + "sc1ccroca", "Crazy Crocs (Mdm) (set 2) (Scorpion 2/3?)", + "sc1ccrocb", "Crazy Crocs (Mdm) (set 3) (Scorpion 2/3?)", + "sc1ccrocc", "Crazy Crocs (Mdm) (set 4) (Scorpion 2/3?)", + "sc1cdm", "Club Diamond (Crystal) (set 1) (Scorpion 1)", + "sc1cdmp", "Club Diamond (Crystal) (set 1, Protocol) (Scorpion 1)", + "sc1cexpd", "Cash Explosion (Dutch) (Bellfruit) (Scorpion 1)", + "sc1cexpl", "Cash Explosion (Bellfruit) (set 1) (Scorpion 1)", + "sc1cexpla", "Cash Explosion (Bellfruit) (set 2) (Scorpion 1)", + "sc1cexplb", "Cash Explosion (Bellfruit) (set 3) (Scorpion 1)", + "sc1chain", "Chain Reaction (Bellfruit) (set 1) (Scorpion 1)", + "sc1chainp", "Chain Reaction (Bellfruit) (set 1, Protocol) (Scorpion 1)", + "sc1china", "China Town Club (Bellfruit) (set 2) (Scorpion 1)", + "sc1chinaa", "China Town Club (Bellfruit) (set 1) (Scorpion 1)", + "sc1chinaap", "China Town Club (Bellfruit) (set 1, Protocol) (Scorpion 1)", + "sc1chinab", "China Town Club (Bellfruit) (set 3) (Scorpion 1)", + "sc1chinabp", "China Town Club (Bellfruit) (set 3, Protocol) (Scorpion 1)", + "sc1chinap", "China Town Club (Bellfruit) (set 2, Protocol) (Scorpion 1)", + "sc1chqfl", "Chequered Flag (Global)", + "sc1cl2k", "Club 2000 (Dutch) (Bellfruit) (Scorpion 1)", + "sc1cl2k1", "Club 2001 (Dutch (Bellfruit) (Scorpion 1)", + "sc1cl65", "Club 65 Special (Bellfruit) (set 1) (Scorpion 1)", + "sc1cl65a", "Club 65 Special (Bellfruit) (set 5) (Scorpion 1)", + "sc1cl65ap", "Club 65 Special (Bellfruit) (set 5, Protocol) (Scorpion 1)", + "sc1cl65b", "Club 65 Special (Bellfruit) (set 4) (Scorpion 1)", + "sc1cl65bp", "Club 65 Special (Bellfruit) (set 4, Protocol) (Scorpion 1)", + "sc1cl65c", "Club 65 Special (Bellfruit) (set 3) (Scorpion 1)", + "sc1cl65cp", "Club 65 Special (Bellfruit) (set 3, Protocol) (Scorpion 1)", + "sc1cl65d", "Club 65 Special (Bellfruit) (set 2) (Scorpion 1)", + "sc1cl65dp", "Club 65 Special (Bellfruit) (set 2, Protocol) (Scorpion 1)", + "sc1class", "Classic (Dutch) (Bellfruit) (Scorpion 1)", + "sc1clatt", "Club Attraction (UK, Game Card 39-370-196)", + "sc1clatta", "Club Attraction (set 2)", + "sc1clb3", "Club 3000 (Dutch) (Bellfruit) (Scorpion 1)", + "sc1clbdm", "Club Diamond (Dutch) (Bellfruit) (Scorpion 1)", + "sc1clbdy", "Club Dynamite (Global) (set 1)", + "sc1clbdya", "Club Dynamite (Global) (set 2)", + "sc1clbrn", "Club Runner (Dutch) (unknown) (Scorpion 1)", + "sc1clbsp", "Club Spinner (Dutch) (unknown) (Scorpion 1)", + "sc1clbtm", "Club Temptation (Bellfruit) (set 1) (Scorpion 1)", + "sc1clbtma", "Club Temptation (Bellfruit) (set 2) (Scorpion 1)", + "sc1clbw", "Club Wise (Bellfruit) (set 2) (Scorpion 1)", + "sc1clbwa", "Club Wise (Bellfruit) (set 1) (Scorpion 1)", + "sc1clbxp", "Club Explosion (Bellfruit) (Scorpion 1) (set 1)", + "sc1clbxpa", "Club Explosion (Bellfruit) (Scorpion 1) (set 2)", + "sc1clins", "Cash Lines (Bellfruit) (Scorpion 1) (set 1)", + "sc1clinsa", "Cash Lines (Bellfruit) (Scorpion 1) (set 2)", + "sc1clinsb", "Cash Lines (Bellfruit) (Scorpion 1) (set 3)", + "sc1clinsc", "Cash Lines (Bellfruit) (Scorpion 1) (set 4)", + "sc1clinsd", "Cash Lines (Bellfruit) (Scorpion 1) (set 5)", + "sc1clinse", "Cash Lines (Bellfruit) (Scorpion 1) (set 6)", + "sc1clown", "Clown Around (Dutch) (Bellfruit) (Scorpion 1)", + "sc1copdd", "Cops 'n' Robbers Deluxe (Dutch) (Bellfruit) (Scorpion 1)", + "sc1copdx", "Cops 'n' Robbers (Bellfruit) (set 3) (Scorpion 1)", + "sc1cops", "Cops 'n' Robbers (Bellfruit) (set 1) (Scorpion 1)", + "sc1copsa", "Cops 'n' Robbers (Bellfruit) (set 2) (Scorpion 1)", + "sc1count", "Count Cash Club (Bellfruit) (set 2) (Scorpion 1)", + "sc1counta", "Count Cash Club (Bellfruit) (set 1) (Scorpion 1)", + "sc1countap", "Count Cash Club (Bellfruit) (set 1, Protocol) (Scorpion 1)", + "sc1countp", "Count Cash Club (Bellfruit) (set 2, Protocol) (Scorpion 1)", + "sc1crocr", "Croc And Roll (Mdm) (Scorpion 2/3?)", + "sc1crzyc", "Crazy Cash (Global) (set 1)", + "sc1crzyca", "Crazy Cash (Global) (set 2)", + "sc1cscl", "Cash Classic (Global) (set 1)", + "sc1cscla", "Cash Classic (Global) (set 2)", + "sc1cshat", "Cash Attraction (Bellfruit) (set 5, Protocol) (Scorpion 1)", + "sc1cshata", "Cash Attraction (Bellfruit) (set 1) (Scorpion 1)", + "sc1cshatb", "Cash Attraction (Bellfruit) (set 5) (Scorpion 1)", + "sc1cshatc", "Cash Attraction (Bellfruit) (set 2) (Scorpion 1)", + "sc1cshatf", "Cash Attraction (Bellfruit) (set 2, Protocol) (Scorpion 1)", + "sc1cshatg", "Cash Attraction (Bellfruit) (set 4, Protocol) (Scorpion 1)", + "sc1cshath", "Cash Attraction (Bellfruit) (set 3, Protocol) (Scorpion 1)", + "sc1cshati", "Cash Attraction (Bellfruit) (set 1, Protocol) (Scorpion 1)", + "sc1cshcd", "Cash Card (Dutch) (Bellfruit) (Scorpion 1)", + "sc1cshcda", "Cash Card (Bellfruit) (set 1) (Scorpion 1)", + "sc1cshcdb", "Cash Card (Bellfruit) (set 2) (Scorpion 1)", + "sc1cshin", "Cashino (Dutch) (Bellfruit) (Scorpion 1)", + "sc1cshwz", "Cash Wise (Bellfruit) (set 2) (Scorpion 1)", + "sc1cshwza", "Cash Wise (Bellfruit) (set 1) (Scorpion 1)", + "sc1cshwzb", "Cash Wise (Bellfruit) (set 3) (Scorpion 1)", + "sc1cshwzc", "Cash Wise (Bellfruit) (set 2, Protocol) (Scorpion 1)", + "sc1cshwzd", "Cash Wise (Bellfruit) (set 4, Protocol) (Scorpion 1)", + "sc1cshwze", "Cash Wise (Bellfruit) (set 1, Protocol) (Scorpion 1)", + "sc1cshwzf", "Cash Wise (Bellfruit) (set 3, Protocol) (Scorpion 1)", + "sc1cshwzg", "Cash Wise (Bellfruit) (set 4) (Scorpion 1)", + "sc1cwcl", "Clockwise (Bellfruit) (Scorpion 1)", + "sc1czbrk", "Crazy Break (Dutch) (unknown) (Scorpion 1)", + "sc1dago", "Dagobert's Vault (Dutch) (Elam) (Scorpion 1)", + "sc1days", "All In A Days Work (Global) (set 1)", + "sc1daysa", "All In A Days Work (Global) (set 2)", + "sc1dblch", "Double Chance (Bellfruit) (set 1) (Scorpion 1)", + "sc1dblcha", "Double Chance (Bellfruit) (set 2, bad) (Scorpion 1)", + "sc1dblchb", "Double Chance (Bellfruit) (set 3) (Scorpion 1)", + "sc1dip", "Diplomat (Eurocoin) (Scorpion 1)", + "sc1disc", "Discovey (Dutch) (Bellfruit) (Scorpion 1)", + "sc1dream", "Dream Machine (Dutch) (Bellfruit) (Scorpion 1)", + "sc1driv", "Driving School (Global) (set 1)", + "sc1driva", "Driving School (Global) (set 2)", + "sc1drivb", "Driving School (Global) (set 3)", + "sc1drivc", "Driving School (Global) (set 4)", + "sc1druby", "Diamonds & Rubys (Bellfruit) (Scorpion ?) (set 1)", + "sc1drubya", "Diamonds & Rubys (Bellfruit) (Scorpion ?) (set 2)", + "sc1energ", "Energy (Dutch) (unknown) (Scorpion 1)", + "sc1final", "Final Touch (Dutch) (unknown) (Scorpion 1)", + "sc1flash", "Flash (Dutch) (Bellfruit) (Scorpion 1)", + "sc1frpus", "Fruit Pursuit (Bellfruit) (set 1) (Scorpion 1?)", + "sc1frpusa", "Fruit Pursuit (Bellfruit) (set 2) (Scorpion 1?)", + "sc1frtln", "Fruit Lines (Dutch) (Bellfruit) (set 2) (Scorpion 1)", + "sc1fruit", "Fruit Lines (Dutch) (Bellfruit) (set 1) (Scorpion 1)", + "sc1funh", "Fun House Club (Bellfruit) (set 1) (Scorpion 1)", + "sc1funha", "Fun House Club (Bellfruit) (set 2) (Scorpion 1)", + "sc1funhp", "Fun House Club (Bellfruit) (set 1, Protocol, bad) (Scorpion 1)", + "sc1goldw", "Golden Winner (Bellfruit) (Scorpion ?)", + "sc1gprix", "Grand Prix (Dutch) (Dutch) (Bellfruit) (Scorpion 1)", + "sc1gslam", "Grand Slam (Dutch) (Bellfruit) (Scorpion 1)", + "sc1gtime", "Good Times (Dutch) (Bellfruit) (Scorpion 1)", + "sc1happy", "Happy Hour (Dutch) (Bellfruit) (Scorpion 1)", + "sc1hfcc", "Hi Flyer Club (Crystal) (set 1) (Scorpion 1)", + "sc1hfccp", "Hi Flyer Club (Crystal) (set 1, Protocol) (Scorpion 1)", + "sc1hipt", "High Point (Bellfruit) (Scorpion 1) (set 1)", + "sc1hipta", "High Point (Bellfruit) (Scorpion 1) (set 2)", + "sc1impc", "Impact (Dutch) (Bellfruit) (Scorpion 1)", + "sc1kings", "Kings Club (Dutch) (Bellfruit) (Scorpion 1)", + "sc1lamb", "Lambada (Eurocoin) (Scorpion 1)", + "sc1linx", "Linx (Bellfruit) (set 1) (Scorpion 1)", + "sc1linxa", "Linx (Bellfruit) (set 2) (Scorpion 1)", + "sc1linxp", "Linx (Bellfruit) (set 3, Protocol) (Scorpion 1)", + "sc1lotus", "Lotus SE (Dutch) (set 1)", + "sc1lotusa", "Lotus SE (Dutch) (set 2)", + "sc1ltdv", "Little Devil (Pcp)", + "sc1magc", "Magic Circle (Dutch) (Bellfruit) (Scorpion 1)", + "sc1manha", "Manhattan (Dutch) (Bellfruit) (Scorpion 1)", + "sc1mast", "Master Club (Dutch) (Bellfruit) (Scorpion 1)", + "sc1mist", "Mistral (Dutch) (Bellfruit) (Scorpion 1)", + "sc1moonl", "Moon Lite (Bwb)", + "sc1ofs56", "Only Fools and Horses (Bellfruit) (Scorpion 1?)", + "sc1olym", "Olympia (Dutch) (Bellfruit) (Scorpion 1)", + "sc1orac", "Oracle (Dutch) (Bellfruit) (Scorpion 1)", + "sc1pwrl", "Power Lines (Bellfruit) (set 1) (Scorpion 1)", + "sc1quat", "Quatro (Dutch) (Bellfruit) (Scorpion 1)", + "sc1rain", "Rainbow (Dutch) (Bellfruit) (Scorpion 1)", + "sc1re", "Reel Cash (Dutch) (Bellfruit) (Scorpion 1)", + "sc1reply", "Replay (Eurocoin) (Scorpion 1)", + "sc1rese", "Reel Cash SE (Dutch) (Bellfruit) (Scorpion 1)", + "sc1revo", "Revolution (Dutch) (Bellfruit) (Scorpion 1)", + "sc1rose", "Rose 'n' Crown (Dutch) (Bellfruit) (Scorpion 1)", + "sc1roul", "Roulette (Dutch, Game Card 39-360-129?)", + "sc1s1000", "Super 1000 (Deltasoft)", + "sc1sant", "Santana (Dutch) (Bellfruit) (Scorpion 1)", + "sc1sat", "Satellite (Dutch) (Bellfruit) (Scorpion 1)", + "sc1satse", "Satellite SE (Dutch) (Bellfruit) (Scorpion 1)", + "sc1scunk", "unknown Scorpion 1 'Super ?' (Bellfruit) (Scorpion 1)", + "sc1shan", "Shanghai (Dutch) (Bellfruit) (Scorpion 1)", + "sc1sir", "Strike It Rich (Bellfruit) (set 1) (Scorpion 1)", + "sc1sira", "Strike It Rich (Bellfruit) (set 3, bad) (Scorpion 1)", + "sc1sirb", "Strike It Rich (Bellfruit) (set 2) (Scorpion 1)", + "sc1sirc", "Strike It Rich (Bellfruit) (set 4, bad) (Scorpion 1)", + "sc1smoke", "Smokey Vs The Bandit (Mdm) (set 1) (Scorpion 2/3?)", + "sc1smokea", "Smokey Vs The Bandit (Mdm) (set 2) (Scorpion 2/3?)", + "sc1spct", "Spectre (Bellfruit) (set 1) (Scorpion 1)", + "sc1spcta", "Spectre (Bellfruit) (set 2) (Scorpion 1)", + "sc1spit", "Spitfire (Dutch) (Elam) (Scorpion 1)", + "sc1ster", "Sterling (Dutch) (Bellfruit) (Scorpion 1)", + "sc1str4", "Strike 4 (Dutch) (Bellfruit) (Scorpion 1) (set 1)", + "sc1str4a", "Strike 4 (Dutch) (Bellfruit) (Scorpion 1) (set 2)", + "sc1strk", "Strike (Dutch) (Bellfruit) (Scorpion 1)", + "sc1supfl", "Super Flush (Dutch) (Bellfruit) (Scorpion 1)", + "sc1sups", "Superstar (Dutch) (unknown) (Scorpion 1)", + "sc1t1k", "Top 1000 (Dutch) (Eurocoin) (Scorpion 1)", + "sc1tiara", "Tiara (Dutch) (Bellfruit) (Scorpion 1)", + "sc1torn", "Tornado (Dutch) (Bellfruit) (set 1) (Scorpion 1)", + "sc1torna", "Tornado (Dutch) (Bellfruit) (set 2) (Scorpion 1)", + "sc1tri", "Tri Star (Bellfruit) (set 1) (Scorpion 1)", + "sc1tria", "Tri Star (Bellfruit) (set 2) (Scorpion 1)", + "sc1triap", "Tri Star (Bellfruit) (set 2, Protocol) (Scorpion 1)", + "sc1trib", "Tri Star (Bellfruit) (set 3) (Scorpion 1)", + "sc1tribp", "Tri Star (Bellfruit) (set 3, Protocol) (Scorpion 1)", + "sc1twice", "Twice As Nice (Associated Leisure) (Scorpion 1)", + "sc1typ", "Typhoon Club (Bellfruit) (set 1) (Scorpion 1)", + "sc1typp", "Typhoon Club (Bellfruit) (set 1, Protocol) (Scorpion 1)", + "sc1ult", "Ultimate (Dutch) (Bellfruit) (Scorpion 1)", + "sc1vent", "Ventura (Dutch) (Bellfruit) (Scorpion 1)", + "sc1vict", "Victory (Dutch) (Bellfruit) (Scorpion 1)", + "sc1voy", "Voyager (Dutch) (Elam) (set 1) (Scorpion 1)", + "sc1voya", "Voyager (Dutch) (Elam) (set 2) (Scorpion 1)", + "sc1vsd", "Vegas Super Deal (Global)", + "sc1winfl", "Winfalls (Dutch) (Bellfruit) (Scorpion 1)", + "sc1winst", "Winning Streak (Bellfruit) (set 1) (Scorpion 1)", + "sc1winsta", "Winning Streak (Bellfruit) (set 2) (Scorpion 1)", + "sc1winstp", "Winning Streak (Bellfruit) (set 1, Protocol) (Scorpion 1)", + "sc1wof", "Wheel Of Fortune (Global) (set 1)", + "sc1wofa", "Wheel Of Fortune (Global) (set 2)", + "sc1wofb", "Wheel Of Fortune (Global) (set 3)", + "sc1wthn", "Wild Thing (Eurocoin) (Scorpion 1)", + "sc1wud", "What's Up Dr (Scorpion 1?)", + "sc1zep", "Zeppelin (Dutch) (Elam) (Scorpion 1)", + "sc2bar7", "Bar 7 (Concept) (set 1)", + "sc2bar7a", "Bar 7 (Concept) (set 2)", + "sc2bar7b", "Bar 7 (Concept) (set 3)", + "sc2bar7c", "Bar 7 (Concept) (set 4)", + "sc2bar7d", "Bar 7 (Concept) (set 5)", + "sc2bar7e", "Bar 7 (Concept) (set 6)", + "sc2bar7f", "Bar 7 (Concept) (set 7)", + "sc2bar7g", "Bar 7 (Concept) (set 8)", + "sc2bar7h", "Bar 7 (Concept) (set 9)", + "sc2bar7i", "Bar 7 (Concept) (set 10)", + "sc2bar7j", "Bar 7 (Concept) (set 11)", + "sc2bar7k", "Bar 7 (Concept) (set 12)", + "sc2bbar7", "Big Bar 7 (Concept) (set 1)", + "sc2bbar7a", "Big Bar 7 (Concept) (set 2)", + "sc2bbar7b", "Big Bar 7 (Concept) (set 3)", + "sc2bbar7c", "Big Bar 7 (Concept) (set 4)", + "sc2bbar7d", "Big Bar 7 (Concept) (set 5)", + "sc2bbar7e", "Big Bar 7 (Concept) (set 6)", + "sc2bbar7f", "Big Bar 7 (Concept) (set 7)", + "sc2bbar7g", "Big Bar 7 (Concept) (set 8)", + "sc2bbar7h", "Big Bar 7 (Concept) (set 9)", + "sc2bbar7i", "Big Bar 7 (Concept) (set 10)", + "sc2bbar7j", "Big Bar 7 (Concept) (set 11)", + "sc2bbar7k", "Big Bar 7 (Concept) (set 12)", + "sc2bbar7l", "Big Bar 7 (Concept) (set 13)", + "sc2bbar7m", "Big Bar 7 (Concept) (set 14)", + "sc2bbar7n", "Big Bar 7 (Concept) (set 15)", + "sc2bbar7o", "Big Bar 7 (Concept) (set 16)", + "sc2bbar7p", "Big Bar 7 (Concept) (set 17)", + "sc2brkfs", "The Big Breakfast (set 2) (Scorpion 2/3)", + "sc2brkfs1", "The Big Breakfast (set 1 UK, Single Site) (Scorpion 2/3)", + "sc2brkfs1p", "The Big Breakfast (set 1 UK, Single Site, Protocol) (Scorpion 2/3)", + "sc2brkfs2", "The Big Breakfast (set 4 UK, Arcade, 8GBP Jackpot) (Scorpion 2/3)", + "sc2brkfs3", "The Big Breakfast (set 3) (Scorpion 2/3)", + "sc2brkfs3p", "The Big Breakfast (set 4 UK, Arcade, 8GBP Jackpot, Protocol) (Scorpion 2/3)", + "sc2brkfs4", "The Big Breakfast (set 5 UK, Arcade, 10GBP Jackpot) (Scorpion 2/3)", + "sc2brkfs4p", "The Big Breakfast (set 5 UK, Arcade, 10GBP Jackpot, Protocol) (Scorpion 2/3)", + "sc2brkfs5", "The Big Breakfast (set 6 UK, Arcade, 10GBP Jackpot) (Scorpion 2/3)", + "sc2brkfs5p", "The Big Breakfast (set 6 UK, Arcade, 10GBP Jackpot, Protocol) (Scorpion 2/3)", + "sc2brkfs6", "The Big Breakfast (set 3, Protocol) (Scorpion 2/3)", + "sc2brkfsm", "The Big Breakfast Casino (Scorpion 2/3)", + "sc2brkfsm1", "The Big Breakfast Casino (Mazooma, set 1) (Scorpion 2/3)", + "sc2brkfsm2", "The Big Breakfast Casino (Mazooma, set 2) (Scorpion 2/3)", + "sc2brkfsp", "The Big Breakfast (set 2, Protocol) (Scorpion 2/3)", + "sc2call", "It's Your Call (Global) (v2.7) (Scorpion 2/3)", + "sc2callc", "It's Your Call (Club?) (Global) (v1.6) (Scorpion 2/3)", + "sc2callcp", "It's Your Call (Club?) (Global) (v1.6 Protocol) (Scorpion 2/3)", + "sc2callp", "It's Your Call (Global) (v2.7 Protocol) (Scorpion 2/3)", + "sc2casr", "Casino Royale (Bellfruit) (set 5, UK, 10GBP Jackpot, 3rd Triennial) (Scorpion 2/3)", + "sc2casr1", "Casino Royale (Bellfruit) (set 4, UK, 3rd Triennial) (Scorpion 2/3)", + "sc2casr1p", "Casino Royale (Bellfruit) (set 4, UK, 3rd Triennial, Protocol) (Scorpion 2/3)", + "sc2casr2", "Casino Royale (Bellfruit) (set 3, UK) (Scorpion 2/3)", + "sc2casr2p", "Casino Royale (Bellfruit) (set 3, UK, Protocol) (Scorpion 2/3)", + "sc2casr3", "Casino Royale (Bellfruit) (set 1, UK, 8GBP Jackpot) (Scorpion 2/3)", + "sc2casr3p", "Casino Royale (Bellfruit) (set 1, UK, 8GBP Jackpot, Protocol) (Scorpion 2/3)", + "sc2casr4", "Casino Royale (Bellfruit) (set 2, UK) (Scorpion 2/3)", + "sc2casr4p", "Casino Royale (Bellfruit) (set 2, UK, Protocol) (Scorpion 2/3)", + "sc2casrp", "Casino Royale (Bellfruit) (set 5, UK, 10GBP Jackpot, 3rd Triennial, Protocol) (Scorpion 2/3)", + "sc2catms", "Cat & Mouse (Bellfruit) (set 4, Deluxe) (Scorpion 2/3)", + "sc2catms1", "Cat & Mouse (Bellfruit) (set 10) (Scorpion 2/3)", + "sc2catms1p", "Cat & Mouse (Bellfruit) (set 10, Protocol) (Scorpion 2/3)", + "sc2catms2", "Cat & Mouse (Bellfruit) (set 9) (Scorpion 2/3)", + "sc2catms2p", "Cat & Mouse (Bellfruit) (set 9, Protocol) (Scorpion 2/3)", + "sc2catms3", "Cat & Mouse (Bellfruit) (set 1) (Scorpion 2/3)", + "sc2cb7", "Super Bar 7 Casino (Bellfruit) (set 3, UK) (Scorpion 2/3)", + "sc2cb71", "Super Bar 7 Casino (Bellfruit) (set 1, UK, All Cash) (Scorpion 2/3)", + "sc2cb72", "Super Bar 7 Casino (Bellfruit) (set 2, UK, 10GBP Jackpot) (Scorpion 2/3)", + "sc2cb72p", "Super Bar 7 Casino (Bellfruit) (set 2, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)", + "sc2cb7p", "Super Bar 7 Casino (Bellfruit) (set 3, UK, Protocol) (Scorpion 2/3)", + "sc2cexpl", "Cash Explosion (Bellfruit) (set 2, Protocol) (Scorpion 2)", + "sc2cexpla", "Cash Explosion (Bellfruit) (set 1, Protocol) (Scorpion 2)", + "sc2cexplb", "Cash Explosion (Bellfruit) (set 3, Protocol) (Scorpion 2)", + "sc2cexplc", "Cash Explosion (Bellfruit) (set 2) (Scorpion 2)", + "sc2cexpld", "Cash Explosion (Bellfruit) (set 1) (Scorpion 2)", + "sc2cexple", "Cash Explosion (Bellfruit) (set 3) (Scorpion 2)", + "sc2cgc", "Carrot Gold Club (Bellfruit) (Protocol) (Scorpion 2/3)", + "sc2cgcas", "Club Grand Casino (Bellfruit) (set 1) (Scorpion 2/3)", + "sc2cgcas1", "Club Grand Casino (Bellfruit) (set 2, UK, 250GBP Jackpot) (Scorpion 2/3)", + "sc2cgcas1p", "Club Grand Casino (Bellfruit) (set 2, UK, 250GBP Jackpot, Protocol) (Scorpion 2/3)", + "sc2cgcasp", "Club Grand Casino (Bellfruit) (set 1, Protocol) (Scorpion 2/3)", + "sc2cmbt", "Cat & Mouse & Bonzo Too (Bellfruit) (set 1, UK) (Scorpion 2/3)", + "sc2cmbtp", "Cat & Mouse & Bonzo Too (Bellfruit) (set 1, UK, Protocol) (Scorpion 2/3)", + "sc2cnile", "Cash On The Nile Club (Bellfruit) (set 2 UK, 150GBP Jackpot) (Scorpion 2/3)", + "sc2cnile1", "Cash On The Nile Club (Bellfruit) (set 1 UK, 150GBP Jackpot) (Scorpion 2/3)", + "sc2cnile2", "Cash On The Nile Club (Bellfruit) (set 3 UK, 200GBP Jackpot) (Scorpion 2/3)", + "sc2cnile2p", "Cash On The Nile Club (Bellfruit) (set 3 UK, 200GBP Jackpot, Protocol) (Scorpion 2/3)", + "sc2cnilep", "Cash On The Nile Club (Bellfruit) (set 2 UK, 150GBP Jackpot, Protocol) (Scorpion 2/3)", + "sc2copcl", "Cops 'n' Robbers Club (Bellfruit) (set 9, UK, 250GBP Jackpot) (Scorpion 2/3)", + "sc2copcl1", "Cops 'n' Robbers Club (Bellfruit) (set 2, UK, 250GBP Jackpot) (Scorpion 2/3)", + "sc2copcl10", "Cops 'n' Robbers Club (Bellfruit) (set 6, UK) (Scorpion 2/3)", + "sc2copcl11", "Cops 'n' Robbers Club (Bellfruit) (set 1, UK) (Scorpion 2/3)", + "sc2copcl11p", "Cops 'n' Robbers Club (Bellfruit) (set 11, UK, Protocol) (Scorpion 2/3)", + "sc2copcl12", "Cops 'n' Robbers Club (Bellfruit) (set 10, UK, Protocol) (Scorpion 2/3)", + "sc2copcl1p", "Cops 'n' Robbers Club (Bellfruit) (set 2, UK, 250GBP Jackpot, Protocol) (Scorpion 2/3)", + "sc2copcl2", "Cops 'n' Robbers Club (Bellfruit) (set 10, UK) (Scorpion 2/3)", + "sc2copcl3", "Cops 'n' Robbers Club (Bellfruit) (set 12, UK) (Scorpion 2/3)", + "sc2copcl3p", "Cops 'n' Robbers Club (Bellfruit) (set 12, UK, Protocol) (Scorpion 2/3)", + "sc2copcl4", "Cops 'n' Robbers Club (Bellfruit) (set 3, UK) (Scorpion 2/3)", + "sc2copcl5", "Cops 'n' Robbers Club (Bellfruit) (set 11, UK) (Scorpion 2/3)", + "sc2copcl6", "Cops 'n' Robbers Club (Bellfruit) (set 4, UK) (Scorpion 2/3)", + "sc2copcl6p", "Cops 'n' Robbers Club (Bellfruit) (set 4, UK, Protocol) (Scorpion 2/3)", + "sc2copcl7", "Cops 'n' Robbers Club (Bellfruit) (set 5, UK) (Scorpion 2/3)", + "sc2copcl8", "Cops 'n' Robbers Club (Bellfruit) (set 8, UK) (Scorpion 2/3)", + "sc2copcl8p", "Cops 'n' Robbers Club (Bellfruit) (set 8, UK, Protocol) (Scorpion 2/3)", + "sc2copcl9", "Cops 'n' Robbers Club (Bellfruit) (set 7, UK) (Scorpion 2/3)", + "sc2copcl9p", "Cops 'n' Robbers Club (Bellfruit) (set 7, UK, Protocol) (Scorpion 2/3)", + "sc2copclp", "Cops 'n' Robbers Club (Bellfruit) (set 9, UK, 250GBP Jackpot, Protocol) (Scorpion 2/3)", + "sc2copdc", "Cops 'n' Robbers Club Deluxe (Bellfruit) (set 7, UK, 250GBP Jackpot) (Scorpion 2/3)", + "sc2copdc1", "Cops 'n' Robbers Club Deluxe (Bellfruit) (set 3, UK, 250GBP Jackpot) (Scorpion 2/3)", + "sc2copdc1p", "Cops 'n' Robbers Club Deluxe (Bellfruit) (set 3, UK, 250GBP Jackpot, Protocol) (Scorpion 2/3)", + "sc2copdc2", "Cops 'n' Robbers Club Deluxe (Bellfruit) (set 4, UK, 250GBP Jackpot) (Scorpion 2/3)", + "sc2copdc2p", "Cops 'n' Robbers Club Deluxe (Bellfruit) (set 4, UK, 250GBP Jackpot, Protocol) (Scorpion 2/3)", + "sc2copdc3", "Cops 'n' Robbers Club Deluxe (Bellfruit) (set 5, UK, 250GBP Jackpot) (Scorpion 2/3)", + "sc2copdc3p", "Cops 'n' Robbers Club Deluxe (Bellfruit) (set 5, UK, 250GBP Jackpot, Protocol) (Scorpion 2/3)", + "sc2copdc4", "Cops 'n' Robbers Club Deluxe (Bellfruit) (set 6, UK, 250GBP Jackpot) (Scorpion 2/3)", + "sc2copdc4p", "Cops 'n' Robbers Club Deluxe (Bellfruit) (set 6, UK, 250GBP Jackpot, Protocol) (Scorpion 2/3)", + "sc2copdc5", "Cops 'n' Robbers Club Deluxe (Bellfruit) (set 1, UK, 200GBP Jackpot) (Scorpion 2/3)", + "sc2copdc5p", "Cops 'n' Robbers Club Deluxe (Bellfruit) (set 1, UK, 200GBP Jackpot, Protocol) (Scorpion 2/3)", + "sc2copdc6", "Cops 'n' Robbers Club Deluxe (Bellfruit) (set 2, UK, 250GBP Jackpot) (Scorpion 2/3)", + "sc2copdcp", "Cops 'n' Robbers Club Deluxe (Bellfruit) (set 7, UK, 250GBP Jackpot, Protocol) (Scorpion 2/3)", + "sc2cops", "Cops 'n' Robbers (Bellfruit) (set 6) (Scorpion 2/3)", + "sc2cops1p", "Cops 'n' Robbers (Bellfruit) (set 6, Protocol) (Scorpion 2/3)", + "sc2cops2", "Cops 'n' Robbers (Bellfruit) (set 2) (Scorpion 2/3)", + "sc2cops3", "Cops 'n' Robbers (Bellfruit) (set 3) (Scorpion 2/3)", + "sc2cops3p", "Cops 'n' Robbers (Bellfruit) (set 3, Protocol) (Scorpion 2/3)", + "sc2cops4", "Cops 'n' Robbers (Bellfruit) (set 5) (Scorpion 2/3)", + "sc2cops5", "Cops 'n' Robbers (Bellfruit) (set 1) (Scorpion 2/3)", + "sc2copsc", "Casino Cops 'n' Robbers (Bellfruit) (set 1) (Scorpion 2/3)", + "sc2copsc1", "Casino Cops 'n' Robbers (Bellfruit) (set 2) (Scorpion 2/3)", + "sc2copsc1p", "Casino Cops 'n' Robbers (Bellfruit) (set 2, Protocol) (Scorpion 2/3)", + "sc2copsc1pa", "Casino Cops 'n' Robbers (Bellfruit) (set 2, Protocol) (Scorpion 2/3) (alt matrix rom)", + "sc2copscp", "Casino Cops 'n' Robbers (Bellfruit) (set 1, Protocol) (Scorpion 2/3)", + "sc2copsp", "Cops 'n' Robbers (Bellfruit) (set 4, Protocol) (Scorpion 2/3)", + "sc2cpe", "Club Public Enemy No.1 (set 5, UK) (Scorpion 2/3)", + "sc2cpe1", "Club Public Enemy No.1 (set 4, UK) (Scorpion 2/3)", + "sc2cpe1p", "Club Public Enemy No.1 (set 4, UK, Protocol) (Scorpion 2/3)", + "sc2cpe2", "Club Public Enemy No.1 (set 3, UK) (Scorpion 2/3)", + "sc2cpe2p", "Club Public Enemy No.1 (set 3, UK, Protocol) (Scorpion 2/3)", + "sc2cpe3", "Club Public Enemy No.1 (set 1, UK) (Scorpion 2/3)", + "sc2cpe3p", "Club Public Enemy No.1 (set 1, UK, Protocol) (Scorpion 2/3)", + "sc2cpe4", "Club Public Enemy No.1 (set 2, UK) (Scorpion 2/3)", + "sc2cpe4p", "Club Public Enemy No.1 (set 2, UK, Protocol) (Scorpion 2/3)", + "sc2cpep", "Club Public Enemy No.1 (set 5, UK, Protocol) (Scorpion 2/3)", + "sc2cpg", "Pharaoh's Gold Club (Bellfruit) (set 2, UK, 250GBP Jackpot) (Scorpion 2/3)", + "sc2cpg1", "Pharaoh's Gold Club (Bellfruit) (set 3, UK, p65) (Scorpion 2/3)", + "sc2cpg1p", "Pharaoh's Gold Club (Bellfruit) (set 3, UK, p65, Protocol) (Scorpion 2/3)", + "sc2cpg2", "Pharaoh's Gold Club (Bellfruit) (set 1, UK) (Scorpion 2/3)", + "sc2cpg2p", "Pharaoh's Gold Club (Bellfruit) (set 1, UK, Protocol) (Scorpion 2/3)", + "sc2cpgp", "Pharaoh's Gold Club (Bellfruit) (set 2, UK, 250GBP Jackpot, Protocol) (Scorpion 2/3)", + "sc2cshcl", "Cashino Club (Bellfruit) (set 2) (Scorpion 2/3)", + "sc2cshcl1", "Cashino Club (Bellfruit) (set 1) (Scorpion 2/3)", + "sc2cshcl1p", "Cashino Club (Bellfruit) (set 1, Protocol) (Scorpion 2/3)", + "sc2cshclp", "Cashino Club (Bellfruit) (set 2, Protocol) (Scorpion 2/3)", + "sc2ctms2", "Cat & Mouse (Bellfruit) (set 2) (Scorpion 2/3)", + "sc2ctms21", "Cat & Mouse (Bellfruit) (set 7) (Scorpion 2/3)", + "sc2ctms21p", "Cat & Mouse (Bellfruit) (set 7, Protocol) (Scorpion 2/3)", + "sc2ctms22", "Cat & Mouse (Bellfruit) (set 6) (Scorpion 2/3)", + "sc2ctms22p", "Cat & Mouse (Bellfruit) (set 6, Protocol) (Scorpion 2/3)", + "sc2ctms23", "Cat & Mouse (Bellfruit) (set 5) (Scorpion 2/3)", + "sc2ctms23p", "Cat & Mouse (Bellfruit) (set 5, Protocol) (Scorpion 2/3)", + "sc2ctms24p", "Cat & Mouse (Bellfruit) (set 8, Protocol) (Scorpion 2/3)", + "sc2ctms25", "Cat & Mouse (Bellfruit) (set 3) (Scorpion 2/3)", + "sc2cvega", "Cash Vegas (Bellfruit) (set 1, UK) (Scorpion 2/3)", + "sc2cvega1", "Cash Vegas (Bellfruit) (set 4, UK, 10GBP Jackpot, 3rd Triennial) (Scorpion 2/3)", + "sc2cvega1p", "Cash Vegas (Bellfruit) (set 4, UK, 10GBP Jackpot, 3rd Triennial, Protocol) (Scorpion 2/3)", + "sc2cvega2", "Cash Vegas (Bellfruit) (set 3, UK, 8GBP Jackpot) (Scorpion 2/3)", + "sc2cvega2p", "Cash Vegas (Bellfruit) (set 3, UK, 8GBP Jackpot, Protocol) (Scorpion 2/3)", + "sc2cvega3", "Cash Vegas (Bellfruit) (set 2, UK, 10GBP Jackpot) (Scorpion 2/3)", + "sc2cvega3p", "Cash Vegas (Bellfruit) (set 2, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)", + "sc2cvega4p", "Cash Vegas (Bellfruit) (set 1, UK, Protocol) (Scorpion 2/3)", + "sc2dbl", "Double Diamond (Bellfruit) (set 2, UK) (Scorpion 2/3)", + "sc2dbl1", "Double Diamond (Bellfruit) (set 1, UK) (Scorpion 2/3)", + "sc2dbl1p", "Double Diamond (Bellfruit) (set 1, UK, Protocol) (Scorpion 2/3)", + "sc2dblp", "Double Diamond (Bellfruit) (set 2, UK, Protocol) (Scorpion 2/3)", + "sc2dels", "Del's Millions (Bellfruit) (set 9, UK, 10GBP Jackpot) (Scorpion 2/3)", + "sc2dels1", "Del's Millions (Bellfruit) (set 10, UK, 10GBP Jackpot) (Scorpion 2/3)", + "sc2dels1p", "Del's Millions (Bellfruit) (set 10, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)", + "sc2dels2", "Del's Millions (Bellfruit) (set 7, UK, 8GBP Jackpot) (Scorpion 2/3)", + "sc2dels2p", "Del's Millions (Bellfruit) (set 7, UK, 8GBP Jackpot, Protocol) (Scorpion 2/3)", + "sc2dels3", "Del's Millions (Bellfruit) (set 3, UK, 8GBP Jackpot) (Scorpion 2/3)", + "sc2dels3p", "Del's Millions (Bellfruit) (set 3, UK, 8GBP Jackpot, Protocol) (Scorpion 2/3)", + "sc2dels4", "Del's Millions (Bellfruit) (set 6, UK) (Scorpion 2/3)", + "sc2dels4p", "Del's Millions (Bellfruit) (set 6, UK, Protocol) (Scorpion 2/3)", + "sc2dels5", "Del's Millions (Bellfruit) (set 5, UK) (Scorpion 2/3)", + "sc2dels6", "Del's Millions (Bellfruit) (set 1, UK) (Scorpion 2/3)", + "sc2dels7", "Del's Millions (Bellfruit) (set 2, UK) (Scorpion 2/3)", + "sc2dels8", "Del's Millions (Bellfruit) (set 8, UK) (Scorpion 2/3)", + "sc2dels9", "Del's Millions (Bellfruit) (set 5, UK, Protocol) (Scorpion 2/3)", + "sc2delsd", "Del's Millions (Bellfruit) (set 4, Deluxe) (Scorpion 2/3)", + "sc2delsm", "Del's Millions (Bellfruit/Mazooma) (DMVMAZ11_N) (Scorpion 2/3)", + "sc2delsm1", "Del's Millions (Bellfruit/Mazooma) (DMVMAZ13_N) (Scorpion 2/3)", + "sc2delsm1p", "Del's Millions (Bellfruit/Mazooma) (DMVMAZ14_N) (Scorpion 2/3)", + "sc2delsm2", "Del's Millions (Bellfruit/Mazooma) (DMVMAZ11_P) (Scorpion 2/3)", + "sc2delsm2p", "Del's Millions (Bellfruit/Mazooma) (DMVMAZ12_P) (Scorpion 2/3)", + "sc2delsm3", "Del's Millions (Bellfruit/Mazooma) (DMVMAZ13_P) (Scorpion 2/3)", + "sc2delsm3p", "Del's Millions (Bellfruit/Mazooma) (DMVMAZ14_P) (Scorpion 2/3)", + "sc2delsmp", "Del's Millions (Bellfruit/Mazooma) (DMVMAZ12_N) (Scorpion 2/3)", + "sc2delsp", "Del's Millions (Bellfruit) (set 9, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)", + "sc2dick", "Spotted Dick (Global) (v3.1) (Scorpion 2/3)", + "sc2dick1", "Spotted Dick (Global) (v2.2) (Scorpion 2/3)", + "sc2dick2", "Spotted Dick (Global) (v1.5) (Scorpion 2/3)", + "sc2dick2e", "Spotted Dick (Global) (v?.? Euro) (Scorpion 2/3)", + "sc2dick2eu", "Spotted Dick (Global) (v?.? Euro unencrypted) (Scorpion 2/3)", + "sc2dick2p", "Spotted Dick (Global) (v1.5 Protocol ) (Scorpion 2/3)", + "sc2dickp", "Spotted Dick (Global) (v3.1 Protocol) (Scorpion 2/3)", + "sc2downt", "Down Town (Bellfruit) (set 7, UK) (Scorpion 2/3)", + "sc2downt1", "Down Town (Bellfruit) (set 4, UK, 16RM motor) (Scorpion 2/3)", + "sc2downt1p", "Down Town (Bellfruit) (set 4, UK, 16RM motor, Protocol) (Scorpion 2/3)", + "sc2downt2", "Down Town (Bellfruit) (set 6, UK) (Scorpion 2/3)", + "sc2downt2p", "Down Town (Bellfruit) (set 7, UK, Protocol) (Scorpion 2/3)", + "sc2downt3", "Down Town (Bellfruit) (set 11, UK, 15RM motor) (Scorpion 2/3)", + "sc2downt3a", "Down Town (Bellfruit) (set 8, UK) (Scorpion 2/3)", + "sc2downt3ap", "Down Town (Bellfruit) (set 8, UK, Protocol) (Scorpion 2/3)", + "sc2downt3p", "Down Town (Bellfruit) (set 11, UK, 15RM motor, Protocol) (Scorpion 2/3)", + "sc2downt4", "Down Town (Bellfruit) (set 10, UK, 15RM motor) (Scorpion 2/3)", + "sc2downt4a", "Down Town (Bellfruit) (set 9, UK) (Scorpion 2/3)", + "sc2downt4ap", "Down Town (Bellfruit) (set 9, UK, Protocol) (Scorpion 2/3)", + "sc2downt4p", "Down Town (Bellfruit) (set 10, UK, 15RM motor, Protocol) (Scorpion 2/3)", + "sc2downt5", "Down Town (Bellfruit) (set 5, UK) (Scorpion 2/3)", + "sc2downt6", "Down Town (Bellfruit) (set 1, UK, 16RM motor) (Scorpion 2/3)", + "sc2downt7", "Down Town (Bellfruit) (set 2, Irish, 16RM motor) (Scorpion 2/3)", + "sc2downt8a", "Down Town (Bellfruit) (set 3, UK, 16RM motor) (Scorpion 2/3)", + "sc2downt8ap", "Down Town (Bellfruit) (set 3, UK, 16RM motor, Protocol) (Scorpion 2/3)", + "sc2downtp", "Down Town (Bellfruit) (set 6, UK, Protocol) (Scorpion 2/3)", + "sc2drwho", "Dr.Who The Timelord (set 1, UK, Single Site) (Scorpion 2/3)", + "sc2drwho1", "Dr.Who The Timelord (set 2, UK, Arcade) (Scorpion 2/3)", + "sc2drwho1p", "Dr.Who The Timelord (set 2, UK, Arcade, Protocol) (Scorpion 2/3)", + "sc2drwho2", "Dr.Who The Timelord (set 3, UK, no Jackpot spin) (Scorpion 2/3)", + "sc2drwho2p", "Dr.Who The Timelord (set 3, UK, no Jackpot spin, Protocol) (Scorpion 2/3)", + "sc2drwho3", "Dr.Who The Timelord (set 4, UK, Arcade) (Scorpion 2/3)", + "sc2drwho3p", "Dr.Who The Timelord (set 4, UK, Arcade, Protocol) (Scorpion 2/3)", + "sc2drwho4", "Dr.Who The Timelord (set 5, UK) (Scorpion 2/3)", + "sc2drwho4p", "Dr.Who The Timelord (set 5, UK, Protocol) (Scorpion 2/3)", + "sc2drwho5", "Dr.Who The Timelord (set 6, UK, Arcade, 8GBP Jackpot) (Scorpion 2/3)", + "sc2drwho5p", "Dr.Who The Timelord (set 6, UK, Arcade, 8GBP Jackpot, Protocol) (Scorpion 2/3)", + "sc2drwho6", "Dr.Who The Timelord (set 7, UK, Arcade) (Scorpion 2/3)", + "sc2drwho6p", "Dr.Who The Timelord (set 7, UK, Arcade, Protocol) (Scorpion 2/3)", + "sc2drwho7", "Dr.Who The Timelord (set 8, UK, Arcade, 10GBP Jackpot) (Scorpion 2/3)", + "sc2drwho7p", "Dr.Who The Timelord (set 8, UK, Arcade, 10GBP Jackpot, Protocol) (Scorpion 2/3)", + "sc2drwhodx", "Dr.Who The Timelord Deluxe (set 1) (Scorpion 2/3)", + "sc2drwhodx1", "Dr.Who The Timelord Deluxe (set 2) (Scorpion 2/3)", + "sc2drwhomz", "Dr.Who The Timelord (Mazooma) (Scorpion 2/3)", + "sc2drwhomzp", "Dr.Who The Timelord (Mazooma, Protocol) (Scorpion 2/3)", + "sc2drwhop", "Dr.Who The Timelord (set 1, UK, Single Site Protocol) (Scorpion 2/3)", + "sc2drwhou", "Dr.Who The Timelord (set 1, UK, Single Site) (Scorpion 2/3) (not encrypted)", + "sc2easy", "Easy Money (Bellfruit) (set 1) (Scorpion 2/3)", + "sc2easy1", "Easy Money (Bellfruit) (set 3) (Scorpion 2/3)", + "sc2easy1p", "Easy Money (Bellfruit) (set 3, Protocol) (Scorpion 2/3)", + "sc2easy2", "Easy Money (Bellfruit) (set 2) (Scorpion 2/3)", + "sc2easy2p", "Easy Money (Bellfruit) (set 2, Protocol) (Scorpion 2/3)", + "sc2easyp", "Easy Money (Bellfruit) (set 1, Protocol) (Scorpion 2/3)", + "sc2eggs", "Eggs On Legs Tour (Bellfruit) (set 2, UK, Arcade, 10GBP Jackpot) (Scorpion 2/3)", + "sc2eggs1", "Eggs On Legs Tour (Bellfruit) (set 1, UK, Arcade, 10GBP Jackpot?) (Scorpion 2/3)", + "sc2eggs1p", "Eggs On Legs Tour (Bellfruit) (set 1, UK, Arcade, 10GBP Jackpot, Protocol) (Scorpion 2/3)", + "sc2eggsp", "Eggs On Legs Tour (Bellfruit) (set 2, UK, Arcade, 10GBP Jackpot, Protocol) (Scorpion 2/3)", + "sc2flaca", "Flash Cash (Bellfruit) (set 3, UK, 10GBP Jackpot, 3rd Triennial) (Scorpion 2/3)", + "sc2flaca1", "Flash Cash (Bellfruit) (set 1, UK, 10GBP Jackpot, 2nd Triennial) (Scorpion 2/3)", + "sc2flaca1p", "Flash Cash (Bellfruit) (set 1, UK, 10GBP Jackpot, 2nd Triennial, Protocol) (Scorpion 2/3)", + "sc2flaca2", "Flash Cash (Bellfruit) (set 2, UK, 10GBP Jackpot, 2nd Triennial) (Scorpion 2/3)", + "sc2flaca2p", "Flash Cash (Bellfruit) (set 2, UK, 10GBP Jackpot, 2nd Triennial, Protocol) (Scorpion 2/3)", + "sc2flacap", "Flash Cash (Bellfruit) (set 3, UK, 10GBP Jackpot, 3rd Triennial, Protocol) (Scorpion 2/3)", + "sc2flutr", "Flutter (Concept)", + "sc2focus", "Focus (Dutch, Game Card 95-750-347) (Scorpion 2/3)", + "sc2foot", "Football Club (Bellfruit) (set 2, UK, 250GBP Jackpot) (Scorpion 2/3)", + "sc2foot1", "Football Club (Bellfruit) (set 3, UK, 100GBP Jackpot) (Scorpion 2/3)", + "sc2foot1p", "Football Club (Bellfruit) (set 3, UK, 100GBP Jackpot, Protocol) (Scorpion 2/3)", + "sc2foot2", "Football Club (Bellfruit) (set 1, UK) (Scorpion 2/3)", + "sc2foot2p", "Football Club (Bellfruit) (set 1, UK, Protocol) (Scorpion 2/3)", + "sc2footp", "Football Club (Bellfruit) (set 2, UK, 250GBP Jackpot, Protocol) (Scorpion 2/3)", + "sc2gcclb", "Golden Casino Club (Bellfruit) (set 2, UK, 250GBP Jackpot) (Scorpion 2/3)", + "sc2gcclb1", "Golden Casino Club (Bellfruit) (set 3, UK, 100GBP Jackpot) (Scorpion 2/3)", + "sc2gcclb1p", "Golden Casino Club (Bellfruit) (set 3, UK, 100GBP Jackpot, Protocol) (Scorpion 2/3)", + "sc2gcclb2", "Golden Casino Club (Bellfruit) (set 1, UK) (Scorpion 2/3)", + "sc2gcclb2p", "Golden Casino Club (Bellfruit) (set 1, UK, Protocol) (Scorpion 2/3)", + "sc2gcclbp", "Golden Casino Club (Bellfruit) (set 2, UK, 250GBP Jackpot, Protocol) (Scorpion 2/3)", + "sc2goldr", "Gold Reserve (Mdm) (v1.3) (Scorpion 2/3)", + "sc2goldr1", "Gold Reserve (Mdm) (set 2) (Scorpion 2/3)", + "sc2goldrp", "Gold Reserve (Mdm) (v1.3 Protocol) (Scorpion 2/3)", + "sc2groul", "Golden Roulette (Bellfruit) (set 1, UK) (Scorpion 2/3)", + "sc2groulp", "Golden Roulette (Bellfruit) (set 2, UK, Protocol) (Scorpion 2/3)", + "sc2gsclb", "The Game Show Club (Bellfruit) (set 4, UK, Arcade, p65) (Scorpion 2/3)", + "sc2gsclb1", "The Game Show Club (Bellfruit) (set 7, UK, Arcade, 250GBP Jackpot, p65) (Scorpion 2/3)", + "sc2gsclb1p", "The Game Show Club (Bellfruit) (set 7, UK, Arcade, 250GBP Jackpot, p65, Protocol) (Scorpion 2/3)", + "sc2gsclb2", "The Game Show Club (Bellfruit) (set 3, UK, Arcade) (Scorpion 2/3)", + "sc2gsclb2p", "The Game Show Club (Bellfruit) (set 3, UK, Arcade, Protocol) (Scorpion 2/3)", + "sc2gsclb3", "The Game Show Club (Bellfruit) (set 5, UK, Arcade) (Scorpion 2/3)", + "sc2gsclb3p", "The Game Show Club (Bellfruit) (set 5, UK, Arcade, Protocol) (Scorpion 2/3)", + "sc2gsclb4", "The Game Show Club (Bellfruit) (set 6, UK, Arcade) (Scorpion 2/3)", + "sc2gsclb4p", "The Game Show Club (Bellfruit) (set 6, UK, Arcade, Protocol) (Scorpion 2/3)", + "sc2gsclb5", "The Game Show Club (Bellfruit) (set 1, UK) (Scorpion 2/3)", + "sc2gsclb6", "The Game Show Club (Bellfruit) (set 8, UK) (Scorpion 2/3)", + "sc2gsclb6p", "The Game Show Club (Bellfruit) (set 8, UK, Protocol) (Scorpion 2/3)", + "sc2gsclb7", "The Game Show Club (Bellfruit) (set 2, UK) (Scorpion 2/3)", + "sc2gsclbp", "The Game Show Club (Bellfruit) (set 4, UK, Arcade, p65, Protocol) (Scorpion 2/3)", + "sc2gslam", "Club Grand Slam (UK, set 2) (Scorpion 2/3)", + "sc2gslam1", "Club Grand Slam (UK, set 1) (Scorpion 2/3)", + "sc2gslam1p", "Club Grand Slam (UK, set 1, Protocol) (Scorpion 2/3)", + "sc2gslamp", "Club Grand Slam (UK, set 2, Protocol) (Scorpion 2/3)", + "sc2gtr", "The Great Train Robbery (Bellfruit) (Scorpion 2/3)", + "sc2heypr", "Hey Presto (Bellfruit) (set 1, UK) (Scorpion 2/3)", + "sc2heyprp", "Hey Presto (Bellfruit) (set 1, UK, Protocol) (Scorpion 2/3)", + "sc2hifly", "High Flyer (Mdm) (v4.1) (Scorpion 2/3)", + "sc2hifly2", "High Flyer (Mdm) (v3.1) (Scorpion 2/3)", + "sc2hifly3", "High Flyer (Mdm) (v2.1) (Scorpion 2/3)", + "sc2hifly4", "High Flyer (Mdm) (v?.?) (Scorpion 2/3)", + "sc2hypr", "Hyperactive (Bellfruit) (set 1, UK, 10GBP Jackpot) (Scorpion 2/3)", + "sc2hypr1", "Hyperactive (Bellfruit) (set 2, UK, 10GBP Jackpot) (Scorpion 2/3)", + "sc2hypr1p", "Hyperactive (Bellfruit) (set 2, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)", + "sc2hyprp", "Hyperactive (Bellfruit) (set 1, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)", + "sc2inst", "Instant Jackpot (Bellfruit) (set 6, UK, 10GBP Jackpot) (Scorpion 2/3)", + "sc2inst1", "Instant Jackpot (Bellfruit) (set 7, UK, 10GBP Jackpot) (Scorpion 2/3)", + "sc2inst1p", "Instant Jackpot (Bellfruit) (set 7, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)", + "sc2inst2", "Instant Jackpot (Bellfruit) (set 4, UK) (Scorpion 2/3)", + "sc2inst2p", "Instant Jackpot (Bellfruit) (set 4, UK, Protocol) (Scorpion 2/3)", + "sc2inst3", "Instant Jackpot (Bellfruit) (set 5, UK, 8GBP Jackpot) (Scorpion 2/3)", + "sc2inst3p", "Instant Jackpot (Bellfruit) (set 5, UK, 8GBP Jackpot, Protocol) (Scorpion 2/3)", + "sc2inst4", "Instant Jackpot (Bellfruit) (set 3, UK) (Scorpion 2/3)", + "sc2inst4p", "Instant Jackpot (Bellfruit) (set 3, UK, Protocol) (Scorpion 2/3)", + "sc2inst5", "Instant Jackpot (Bellfruit) (set 1, UK) (Scorpion 2/3)", + "sc2inst6", "Instant Jackpot (Bellfruit) (set 2, UK) (Scorpion 2/3)", + "sc2instp", "Instant Jackpot (Bellfruit) (set 6, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)", + "sc2kcclb", "King Cash Club (Bellfruit) (set 1, UK) (Scorpion 2/3)", + "sc2kcclb1", "King Cash Club (Bellfruit) (set 2, UK) (Scorpion 2/3)", + "sc2kcclb1p", "King Cash Club (Bellfruit) (set 2, UK, Protocol) (Scorpion 2/3)", + "sc2kcclbp", "King Cash Club (Bellfruit) (set 1, UK, Protocol) (Scorpion 2/3)", + "sc2luvv", "Luvvly Jubbly (set 3, UK, Multisite 10GBP/25p) (Scorpion 2/3)", + "sc2luvv1", "Luvvly Jubbly (set 3, UK, Multisite 10GBP/20p) (Scorpion 2/3)", + "sc2luvv1p", "Luvvly Jubbly (set 3, UK, Multisite 10GBP/20p, Protocol) (Scorpion 2/3)", + "sc2luvv2", "Luvvly Jubbly (set 2, UK, Multisite) (Scorpion 2/3)", + "sc2luvv2p", "Luvvly Jubbly (set 2, UK, Multisite, Protocol) (Scorpion 2/3)", + "sc2luvv4", "Luvvly Jubbly (set 4, UK, Multisite 4GBP/5p) (Scorpion 2/3)", + "sc2luvv4p", "Luvvly Jubbly (set 4, UK, Multisite 4GBP/5p, Protocol) (Scorpion 2/3)", + "sc2luvv6p", "Luvvly Jubbly (set 1, UK, Protocol) (Scorpion 2/3)", + "sc2luvvp", "Luvvly Jubbly (set 3, UK, Multisite 10GBP/25p, Protocol) (Scorpion 2/3)", + "sc2maina", "Main Attraction (Bellfruit) (Scorpion 2/3)", + "sc2majes", "Majestic Bells (Bellfruit) (set 1) (set 1)", + "sc2majesp", "Majestic Bells (Bellfruit) (set 1, Protocol) (set 2)", + "sc2mam", "Make A Million (Bellfruit) (set 4, UK, 10GBP Jackpot) (Scorpion 2/3)", + "sc2mam1", "Make A Million (Bellfruit) (set 5, UK, 10GBP Jackpot) (Scorpion 2/3)", + "sc2mam1p", "Make A Million (Bellfruit) (set 5, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)", + "sc2mam2", "Make A Million (Bellfruit) (set 3, UK, 8GBP Jackpot) (Scorpion 2/3)", + "sc2mam2p", "Make A Million (Bellfruit) (set 3, UK, 8GBP Jackpot, Protocol) (Scorpion 2/3)", + "sc2mam3", "Make A Million (Bellfruit) (set 2, UK) (Scorpion 2/3)", + "sc2mam3a", "Make A Million (Bellfruit) (set 2, UK, alt) (Scorpion 2/3)", + "sc2mam3p", "Make A Million (Bellfruit) (set 2, UK, Protocol) (Scorpion 2/3)", + "sc2mam4", "Make A Million (Bellfruit) (set 1, UK) (Scorpion 2/3)", + "sc2mam4p", "Make A Million (Bellfruit) (set 1, UK, Protocol) (Scorpion 2/3)", + "sc2mamcl", "Make A Million Club (Bellfruit) (set 3, UK, 250GBP Jackpot) (Scorpion 2/3)", + "sc2mamcl1", "Make A Million Club (Bellfruit) (set 4, UK) (Scorpion 2/3)", + "sc2mamcl1p", "Make A Million Club (Bellfruit) (set 4, UK, Protocol) (Scorpion 2/3)", + "sc2mamcl2", "Make A Million Club (Bellfruit) (set 2, UK) (Scorpion 2/3)", + "sc2mamcl2p", "Make A Million Club (Bellfruit) (set 2, UK, Protocol) (Scorpion 2/3)", + "sc2mamcl3", "Make A Million Club (Bellfruit) (set 1, UK) (Scorpion 2/3)", + "sc2mamclp", "Make A Million Club (Bellfruit) (set 3, UK, 250GBP Jackpot, Protocol) (Scorpion 2/3)", + "sc2mamp", "Make A Million (Bellfruit) (set 4, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)", + "sc2motd", "Match Of The Day (Bellfruit) (set 9, UK, 10GBP Jackpot) (Scorpion 2/3)", + "sc2motd1", "Match Of The Day (Bellfruit) (set 7, UK, 10GBP Jackpot, 1st Triennial) (Scorpion 2/3)", + "sc2motd1p", "Match Of The Day (Bellfruit) (set 7, UK, 10GBP Jackpot, 1st Triennial, Protocol) (Scorpion 2/3)", + "sc2motd2", "Match Of The Day (Bellfruit) (set 8, UK, 10GBP Jackpot) (Scorpion 2/3)", + "sc2motd2p", "Match Of The Day (Bellfruit) (set 8, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)", + "sc2motd3", "Match Of The Day (Bellfruit) (set 6, UK) (Scorpion 2/3)", + "sc2motd3p", "Match Of The Day (Bellfruit) (set 6, UK, Protocol) (Scorpion 2/3)", + "sc2motd4", "Match Of The Day (Bellfruit) (set 3, UK, Arcade) (Scorpion 2/3)", + "sc2motd4p", "Match Of The Day (Bellfruit) (set 3, UK, Arcade, Protocol) (Scorpion 2/3)", + "sc2motd5", "Match Of The Day (Bellfruit) (set 2, UK, Single Site) (Scorpion 2/3)", + "sc2motd5p", "Match Of The Day (Bellfruit) (set 2, UK, Single Site, Protocol) (Scorpion 2/3)", + "sc2motd6", "Match Of The Day (Bellfruit) (set 4, Irish, 8GBP Jackpot) (Scorpion 2/3)", + "sc2motd6p", "Match Of The Day (Bellfruit) (set 4, Irish, 8GBP Jackpot, Protocol) (Scorpion 2/3)", + "sc2motd7", "Match Of The Day (Bellfruit) (set 5, UK) (Scorpion 2/3)", + "sc2motd8p", "Match Of The Day (Bellfruit) (set 5, UK, Protocol) (Scorpion 2/3)", + "sc2motd9", "Match Of The Day (Bellfruit) (set 1, Irish) (Scorpion 2/3)", + "sc2motdp", "Match Of The Day (Bellfruit) (set 9, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)", + "sc2ofool", "Only Fools & Horses (Bellfruit) (set 3) (Scorpion 2/3)", + "sc2ofool1", "Only Fools & Horses (Bellfruit) (set 1) (Scorpion 2/3)", + "sc2ofool2", "Only Fools & Horses (Bellfruit) (set 4) (Scorpion 2/3)", + "sc2ofool3", "Only Fools & Horses (Bellfruit) (set 2) (Scorpion 2/3)", + "sc2ofool4", "Only Fools & Horses (Bellfruit) (set 5) (Scorpion 2/3)", + "sc2olgld", "Olympic Gold (Bellfruit) (set 1, UK) (Scorpion 2/3)", + "sc2olgld1", "Olympic Gold (Bellfruit) (set 2, UK, 10GBP Jackpot) (Scorpion 2/3)", + "sc2olgld1p", "Olympic Gold (Bellfruit) (set 2, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)", + "sc2olgldp", "Olympic Gold (Bellfruit) (set 1, UK, Protocol) (Scorpion 2/3)", + "sc2payr", "Pay Roll Casino (Bellfruit/Mazooma) (Scorpion 2/3)", + "sc2pe1g", "Public Enemy No.1 (Bellfruit) [German] (Scorpion 2/3)", + "sc2pick", "Pick Of The Bunch (Global) (v2.3) (Scorpion 2/3)", + "sc2pickc", "Pick Of The Bunch (Club?) (Global) (v1.9) (Scorpion 2/3)", + "sc2pickcp", "Pick Of The Bunch (Club?) (Global) (v1.9 Protocol) (Scorpion 2/3)", + "sc2pickp", "Pick Of The Bunch (Global) (v2.3 Protocol) (Scorpion 2/3)", + "sc2prem", "Premier Club Manager (Bellfruit) (set 2, UK, 250GBP Jackpot) (Scorpion 2/3)", + "sc2prem1", "Premier Club Manager (Bellfruit) (set 3, UK) (Scorpion 2/3)", + "sc2prem1p", "Premier Club Manager (Bellfruit) (set 3, UK, Protocol) (Scorpion 2/3)", + "sc2prem2", "Premier Club Manager (Bellfruit) (set 1, UK) (Scorpion 2/3)", + "sc2prom", "Along The Prom (Bellfruit) (Scorpion 2/3)", + "sc2ptytm", "Party Time (Bellfruit) (set 2) (Scorpion 2/3)", + "sc2ptytm1", "Party Time (Bellfruit) (set 1) (Scorpion 2/3)", + "sc2ptytmp", "Party Time (Bellfruit) (set 2, Protocol) (Scorpion 2/3)", + "sc2relgm", "Reel Gems (Bellfruit) (set 1, UK) (Scorpion 2/3)", + "sc2relgm1p", "Reel Gems (Bellfruit) (set 2, UK, Protocol) (Scorpion 2/3)", + "sc2relgmp", "Reel Gems (Bellfruit) (set 1, UK, Protocol) (Scorpion 2/3)", + "sc2rock", "How Big's Your Rock? (Global) (v1.5) (Scorpion 2/3)", + "sc2rock1", "How Big's Your Rock? (Global) (v1.4) (Scorpion 2/3)", + "sc2rock1p", "How Big's Your Rock? (Global) (v1.4 Protocol) (Scorpion 2/3)", + "sc2rocke", "How Big's Your Rock? (Global) (v?.? Euro) (Scorpion 2/3)", + "sc2rockp", "How Big's Your Rock? (Global) (v1.5 Protocol) (Scorpion 2/3)", + "sc2scc", "Safe Cracker Club (Mdm) (v4.4) (Scorpion 2/3)", + "sc2scshx", "Super Cash X (Concept)", + "sc2scshxcas", "Super Casino Cash X (Concept)", + "sc2scshxgman", "Super Cash X (Concept) (Gamesman Hardware)", + "sc2scshxstar", "Super Cash X (Concept) (Starpoint Hardware)", + "sc2sghst", "Super Ghost (Concept)", + "sc2showt", "Showtime Spectacular (Bellfruit) (set 4, UK) (Scorpion 2/3)", + "sc2showt1", "Showtime Spectacular (Bellfruit) (set 5, UK) (Scorpion 2/3)", + "sc2showt1p", "Showtime Spectacular (Bellfruit) (set 5, UK, Protocol) (Scorpion 2/3)", + "sc2showt2", "Showtime Spectacular (Bellfruit) (set 3, UK) (Scorpion 2/3)", + "sc2showt2p", "Showtime Spectacular (Bellfruit) (set 3, UK, Protocol) (Scorpion 2/3)", + "sc2showt3", "Showtime Spectacular (Bellfruit) (set 2, UK) (Scorpion 2/3)", + "sc2showt3p", "Showtime Spectacular (Bellfruit) (set 2, UK, Protocol) (Scorpion 2/3)", + "sc2showt4", "Showtime Spectacular (Bellfruit) (set 1, UK) (Scorpion 2/3)", + "sc2showt4p", "Showtime Spectacular (Bellfruit) (set 1, UK, Protocol) (Scorpion 2/3)", + "sc2showtp", "Showtime Spectacular (Bellfruit) (set 4, UK, Protocol) (Scorpion 2/3)", + "sc2smnud", "Super Multi Nudger (Concept)", + "sc2sstar", "Super Star (Bellfruit) (set 2, UK, 3rd Triennial) (Scorpion 2/3)", + "sc2sstar1", "Super Star (Bellfruit) (set 1, UK, 2nd Triennial) (Scorpion 2/3)", + "sc2sstar1p", "Super Star (Bellfruit) (set 1, UK, 2nd Triennial, Protocol) (Scorpion 2/3)", + "sc2sstar2", "Super Star (Bellfruit) (set 4, UK, 2nd Triennial) (Scorpion 2/3)", + "sc2sstar2p", "Super Star (Bellfruit) (set 4, UK, 2nd Triennial, Protocol) (Scorpion 2/3)", + "sc2sstar3", "Super Star (Bellfruit) (set 3, UK, 2nd Triennial) (Scorpion 2/3)", + "sc2sstar3p", "Super Star (Bellfruit) (set 3, UK, 2nd Triennial, Protocol) (Scorpion 2/3)", + "sc2sstarp", "Super Star (Bellfruit) (set 2, UK, 3rd Triennial, Protocol) (Scorpion 2/3)", + "sc2suprz", "Surprise Surprize (Bellfruit) (set 1, UK) (Scorpion 2/3)", + "sc2suprz1", "Surprise Surprize (Bellfruit) (set 2, UK) (Scorpion 2/3)", + "sc2suprz1p", "Surprise Surprize (Bellfruit) (set 2, UK, Protocol) (Scorpion 2/3)", + "sc2suprz2", "Surprise Surprize (Bellfruit) (set 4, UK) (Scorpion 2/3)", + "sc2suprz2p", "Surprise Surprize (Bellfruit) (set 4, UK, Protocol) (Scorpion 2/3)", + "sc2suprz3", "Surprise Surprize (Bellfruit) (set 3, UK) (Scorpion 2/3)", + "sc2suprzp", "Surprise Surprize (Bellfruit) (set 1, UK, Protocol)(Scorpion 2/3)", + "sc2topwk", "Top Wack (Bellfruit) (set 1, UK, 10GBP Jackpot, 1st Triennial) (Scorpion 2/3)", + "sc2topwkp", "Top Wack (Bellfruit) (set 1, UK, 10GBP Jackpot, 1st Triennial, Protocol) (Scorpion 2/3)", + "sc2town", "Round The Town (Bellfruit) (set 6) (Scorpion 2/3)", + "sc2town1", "Round The Town (Bellfruit) (set 4) (Scorpion 2/3)", + "sc2town1a", "Round The Town (Bellfruit) (set 4, alt) (Scorpion 2/3)", + "sc2town1p", "Round The Town (Bellfruit) (set 4, Protocol) (Scorpion 2/3)", + "sc2town2", "Round The Town (Bellfruit) (set 2) (Scorpion 2/3)", + "sc2town3", "Round The Town (Bellfruit) (set 3) (Scorpion 2/3)", + "sc2town3p", "Round The Town (Bellfruit) (set 3, Protocol) (Scorpion 2/3)", + "sc2town4", "Round The Town (Bellfruit) (set 1) (Scorpion 2/3)", + "sc2town5", "Round The Town (Bellfruit) (set 5) (Scorpion 2/3)", + "sc2townp", "Round The Town (Bellfruit) (set 6, Protocol) (Scorpion 2/3)", + "sc2wembl", "Match Of The Day - Road To Wembley (Bellfruit) (set 8, UK, 10GBP Jackpot, 15RM motor) (Scorpion 2/3)", + "sc2wembl1", "Match Of The Day - Road To Wembley (Bellfruit) (set 6, UK, 15RM motor) (Scorpion 2/3)", + "sc2wembl10", "Match Of The Day - Road To Wembley (Bellfruit) (set 5, Irish, 8GBP Jackpot, 16RM motor) (Scorpion 2/3)", + "sc2wembl1p", "Match Of The Day - Road To Wembley (Bellfruit) (set 6, UK, 15RM motor, Protocol) (Scorpion 2/3)", + "sc2wembl2", "Match Of The Day - Road To Wembley (Bellfruit) (set 7, UK) (Scorpion 2/3)", + "sc2wembl2p", "Match Of The Day - Road To Wembley (Bellfruit) (set 7, UK, Protocol) (Scorpion 2/3)", + "sc2wembl4p", "Match Of The Day - Road To Wembley (Bellfruit) (set 3, UK, Protocol) (Scorpion 2/3)", + "sc2wembl5a", "Match Of The Day - Road To Wembley (Bellfruit) (set 2, UK, 16RM motor) (Scorpion 2/3)", + "sc2wembl5ap", "Match Of The Day - Road To Wembley (Bellfruit) (set 2, UK, 16RM motor, Protocol) (Scorpion 2/3)", + "sc2wembl6ap", "Match Of The Day - Road To Wembley (Bellfruit) (set 4, Arcade, 16RM motor, Protocol) (Scorpion 2/3)", + "sc2wembl7a", "Match Of The Day - Road To Wembley (Bellfruit) (set 1, UK, 8GBP Jackpot, 16RM motor) (Scorpion 2/3)", + "sc2wembl7ap", "Match Of The Day - Road To Wembley (Bellfruit) (set 5, Irish, 8GBP Jackpot, 16RM motor, Protocol) (Scorpion 2/3)", + "sc2wembl8", "Match Of The Day - Road To Wembley (Bellfruit) (set 3, UK) (Scorpion 2/3)", + "sc2wembl9", "Match Of The Day - Road To Wembley (Bellfruit) (set 4, Arcade, 16RM motor) (Scorpion 2/3)", + "sc2wemblm", "Match Of The Day - Road To Wembley (Bellfruit/Mazooma) (Scorpion 2/3)", + "sc2wemblp", "Match Of The Day - Road To Wembley (Bellfruit) (set 8, UK, 10GBP Jackpot, 15RM motor, Protocol) (Scorpion 2/3)", + "sc2winst", "Winning Streak (Bellfruit) (set 1) (Scorpion 2)", + "sc2winstb", "Winning Streak (Bellfruit) (set 3) (Scorpion 2)", + "sc2winstbp", "Winning Streak (Bellfruit) (set 3, Protocol) (Scorpion 2)", + "sc2winstd", "Winning Streak (Bellfruit) (set 2) (Scorpion 2)", + "sc2winstdp", "Winning Streak (Bellfruit) (set 2, Protocol) (Scorpion 2)", + "sc2winste", "Winning Streak (Bellfruit) (set 4) (Scorpion 2)", + "sc2winstep", "Winning Streak (Bellfruit) (set 4, Protocol) (Scorpion 2)", + "sc2winstf", "Winning Streak (Bellfruit) (set 6) (Scorpion 2)", + "sc2winstfp", "Winning Streak (Bellfruit) (set 6, Protocol) (Scorpion 2)", + "sc2winstg", "Winning Streak (Bellfruit) (set 5) (Scorpion 2)", + "sc2winstp", "Winning Streak (Bellfruit) (set 1, Protocol) (Scorpion 2)", + "sc2wwcl", "Wild West Club (Bellfruit) (set 2, UK, 250GBP Jackpot) (Scorpion 2/3)", + "sc2wwcl1", "Wild West Club (Bellfruit) (set 1, UK) (Scorpion 2/3)", + "sc2wwcl1p", "Wild West Club (Bellfruit) (set 1, UK, Protocol) (Scorpion 2/3)", + "sc2wwclp", "Wild West Club (Bellfruit) (set 2, UK, 250GBP Jackpot, Protocol) (Scorpion 2/3)", + "sc4a40", "Around The Board In 40 Days (Mazooma) (Scorpion 4) (set 1)", + "sc4a40a", "Around The Board In 40 Days (Mazooma) (Scorpion 4) (set 2)", + "sc4a40b", "Around The Board In 40 Days (Mazooma) (Scorpion 4) (set 3)", + "sc4a40c", "Around The Board In 40 Days (Mazooma) (Scorpion 4) (set 4)", + "sc4a40cl", "Around The Board In 40 Days Club (Mazooma) (Scorpion 4) (set 1)", + "sc4a40cla", "Around The Board In 40 Days Club (Mazooma) (Scorpion 4) (set 2)", + "sc4a40clb", "Around The Board In 40 Days Club (Mazooma) (Scorpion 4) (set 3)", + "sc4a40clc", "Around The Board In 40 Days Club (Mazooma) (Scorpion 4) (set 4)", + "sc4abra", "Abracadabra (Qps) (Scorpion 4) (set 1, 041)", + "sc4abraa", "Abracadabra (Qps) (Scorpion 4) (set 2, 041)", + "sc4abrab", "Abracadabra (Qps) (Scorpion 4) (set 3, 044)", + "sc4abrac", "Abracadabra (Qps) (Scorpion 4) (set 4, 044)", + "sc4abrad", "Abracadabra (Qps) (Scorpion 4) (set 5, 014)", + "sc4abrae", "Abracadabra (Qps) (Scorpion 4) (set 6, 014)", + "sc4acesh", "Aces High (Mazooma) (Scorpion 4) (set 1)", + "sc4acesha", "Aces High (Mazooma) (Scorpion 4) (set 2)", + "sc4aceshb", "Aces High (Mazooma) (Scorpion 4) (set 3)", + "sc4aceshc", "Aces High (Mazooma) (Scorpion 4) (set 4)", + "sc4adjb", "Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 4) (set 1)", + "sc4adjba", "Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 4) (Set 2)", + "sc4adjbb", "Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 4) (Set 3)", + "sc4adjbc", "Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 4) (Set 4)", + "sc4adjbd", "Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 4) (Set 5)", + "sc4adjbe", "Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 4) (Set 6)", + "sc4adjbf", "Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 4) (Set 7)", + "sc4adjbg", "Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 4) (Set 8)", + "sc4adjbh", "Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 4) (Set 9)", + "sc4adjbi", "Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 4) (Set 10)", + "sc4adren", "Adrenalin (Mazooma) (Scorpion 4) (set 1)", + "sc4adrena", "Adrenalin (Mazooma) (Scorpion 4) (set 2)", + "sc4adrenb", "Adrenalin (Mazooma) (Scorpion 4) (set 3)", + "sc4adrenc", "Adrenalin (Mazooma) (Scorpion 4) (set 4)", + "sc4adsnt", "Ant & Dec's Saturday Night Takeaway (Bellfruit) (Scorpion 4) (set 1)", + "sc4adsnta", "Ant & Dec's Saturday Night Takeaway (Bellfruit) (Scorpion 4) (set 2)", + "sc4adwta", "Ant & Dec's Saturday Night Takeaway Win The Ads (Bellfruit) (Scorpion 4) (set 1)", + "sc4adwtaa", "Ant & Dec's Saturday Night Takeaway Win The Ads (Bellfruit) (Scorpion 4) (set 2)", + "sc4alad", "Aladdin's Cave (Mazooma) (Scorpion 4) (set 1)", + "sc4alada", "Aladdin's Cave (Mazooma) (Scorpion 4) (set 2)", + "sc4aztec", "Aztec Casino (Dutch) (Bellfruit) (Scorpion 4)", + "sc4azteca", "Aztec (Dutch) (Bellfruit) (Scorpion 4)", + "sc4bankb", "Bankety Bank (Qps) (Scorpion 4) (set 1)", + "sc4bankba", "Bankety Bank (Qps) (Scorpion 4) (set 2)", + "sc4bantm", "Bantam Of The Opera (Mazooma) (Scorpion 4) (set 1)", + "sc4bantma", "Bantam Of The Opera (Mazooma) (Scorpion 4) (set 2)", + "sc4bantmb", "Bantam Of The Opera (Mazooma) (Scorpion 4) (set 3)", + "sc4bantmc", "Bantam Of The Opera (Mazooma) (Scorpion 4) (set 4)", + "sc4bar7", "Bar 7's (PR1433) (Bellfruit) (Scorpion 4) (set 1)", + "sc4bar7a", "Bar 7's (PR1433) (Bellfruit) (Scorpion 4) (set 2)", + "sc4bar7b", "Bar 7's (PR1438) (Bellfruit) (Scorpion 4) (Top Box?, set 1)", + "sc4bar7c", "Bar 7's (PR1438) (Bellfruit) (Scorpion 4) (Top Box?, set 2)", + "sc4bar7d", "Bar 7's (PR1438) (Bellfruit) (Scorpion 4) (Top Box?, set 3)", + "sc4bar7e", "Bar 7's (PR1438) (Bellfruit) (Scorpion 4) (Top Box?, set 4)", + "sc4batl", "Battleships & Cruisers (Bellfruit) (Scorpion 4) (set 1)", + "sc4batla", "Battleships & Cruisers (Bellfruit) (Scorpion 4) (set 2)", + "sc4bb", "Bankety Bank (Qps) (Scorpion 4) (set 3)", + "sc4bba", "Bankety Bank (Qps) (Scorpion 4) (set 4)", + "sc4bbclb", "Bankety Bank Club (V1.0) (Qps) (Scorpion 4)", + "sc4bbclba", "Bankety Bank Club (V1.1) (Qps) (Scorpion 4)", + "sc4bbclbb", "Bankety Bank Club (V411) (Qps) (Scorpion 4) (set 1)", + "sc4bbclbc", "Bankety Bank Club (V411) (Qps) (Scorpion 4) (set 2)", + "sc4bblas", "Big Blaster (Mazooma) (Scorpion 4) (set 1)", + "sc4bblasa", "Big Blaster (Mazooma) (Scorpion 4) (set 2)", + "sc4bblasb", "Big Blaster (Mazooma) (Scorpion 4) (set 3)", + "sc4bblasc", "Big Blaster (Mazooma) (Scorpion 4) (set 4)", + "sc4bblasd", "Big Blaster (Mazooma) (Scorpion 4) (set 5)", + "sc4bblase", "Big Blaster (Mazooma) (Scorpion 4) (set 6)", + "sc4bblasf", "Big Blaster (Mazooma) (Scorpion 4) (set 7)", + "sc4bbust", "Blockbuster (Mazooma) (Scorpion 4)", + "sc4bed", "Bedazzled (Mazooma) (Scorpion 4) (set 1)", + "sc4beda", "Bedazzled (Mazooma) (Scorpion 4) (set 2)", + "sc4bedb", "Bedazzled (Mazooma) (Scorpion 4) (set 3)", + "sc4bedc", "Bedazzled (Mazooma) (Scorpion 4) (set 4)", + "sc4bedcl", "Bedazzled Club (Mazooma) (Scorpion 4) (set 1)", + "sc4bedcla", "Bedazzled Club (Mazooma) (Scorpion 4) (set 2)", + "sc4bedclb", "Bedazzled Club (Mazooma) (Scorpion 4) (set 3)", + "sc4bedclc", "Bedazzled Club (Mazooma) (Scorpion 4) (set 4)", + "sc4bedcld", "Bedazzled Club (Mazooma) (Scorpion 4) (set 5)", + "sc4bedd", "Bedazzled (Mazooma) (Scorpion 4) (set 5)", + "sc4bede", "Bedazzled (Mazooma) (Scorpion 4) (set 6)", + "sc4bgold", "Black Gold (Nova) (Scorpion 4) (set 1)", + "sc4bgolda", "Black Gold (Nova) (Scorpion 4) (set 2)", + "sc4bigdl", "Big Deal (Qps) (Scorpion 4) (set 1)", + "sc4bigdla", "Big Deal (Qps) (Scorpion 4) (set 2)", + "sc4bingb", "Bingo Belle (Mazooma) (Scorpion 4) (set 1)", + "sc4bingba", "Bingo Belle (Mazooma) (Scorpion 4) (set 2)", + "sc4blast", "Blast Off (011) (Qps) (Scorpion 4) (set 1)", + "sc4blasta", "Blast Off (041) (Qps) (Scorpion 4) (set 1)", + "sc4blastb", "Blast Off (011) (Qps) (Scorpion 4) (set 2)", + "sc4blastc", "Blast Off (041) (Qps) (Scorpion 4) (set 2)", + "sc4blastd", "Blast Off (042) (Qps) (Scorpion 4) (set 1)", + "sc4blaste", "Blast Off (042) (Qps) (Scorpion 4) (set 2)", + "sc4blokq", "Blockbuster (Qps) (Scorpion 4) (set 1)", + "sc4blokqa", "Blockbuster (Qps) (Scorpion 4) (set 2)", + "sc4blokqb", "Blockbuster (Qps) (Scorpion 4) (set 3)", + "sc4blokqc", "Blockbuster (Qps) (Scorpion 4) (set 4)", + "sc4blokqd", "Blockbuster (Qps) (Scorpion 4) (set 5)", + "sc4blokqe", "Blockbuster (Qps) (Scorpion 4) (set 6)", + "sc4blue", "Blue Rinse (Mazooma) (Scorpion 4) (set 1)", + "sc4bluea", "Blue Rinse (Mazooma) (Scorpion 4) (set 2)", + "sc4blueb", "Blue Rinse (Mazooma) (Scorpion 4) (set 3)", + "sc4bluec", "Blue Rinse (Mazooma) (Scorpion 4) (set 4)", + "sc4blued", "Blue Rinse (Mazooma) (Scorpion 4) (set 5)", + "sc4bluee", "Blue Rinse (Mazooma) (Scorpion 4) (set 6)", + "sc4bob", "Bobby Dazzler (Mazooma) (Scorpion 4) (set 1)", + "sc4boba", "Bobby Dazzler (Mazooma) (Scorpion 4) (set 2)", + "sc4bobb", "Bobby Dazzler (Mazooma) (Scorpion 4) (set 3)", + "sc4bobc", "Bobby Dazzler (Mazooma) (Scorpion 4) (set 4)", + "sc4bobcl", "Bobby Dazzler Club (Mazooma) (Scorpion 4) (set 1)", + "sc4bobcla", "Bobby Dazzler Club (Mazooma) (Scorpion 4) (set 2)", + "sc4bobd", "Bobby Dazzler (Mazooma) (Scorpion 4) (set 5)", + "sc4bobe", "Bobby Dazzler (Mazooma) (Scorpion 4) (set 6)", + "sc4bobf", "Bobby Dazzler (Mazooma) (Scorpion 4) (set 7)", + "sc4bobg", "Bobby Dazzler (Mazooma) (Scorpion 4) (set 8)", + "sc4bobh", "Bobby Dazzler (Mazooma) (Scorpion 4) (set 9)", + "sc4bobi", "Bobby Dazzler (Mazooma) (Scorpion 4) (set 10)", + "sc4bonbx", "Bar X (Mazooma) (Scorpion 4) (set 1)", + "sc4bonbxa", "Bar X (Mazooma) (Scorpion 4) (set 6)", + "sc4bonbxb", "Bar X (Mazooma) (Scorpion 4) (set 7)", + "sc4bonbxc", "Bar X (Mazooma) (Scorpion 4) (set 2)", + "sc4bonbxd", "Bar X (Mazooma) (Scorpion 4) (set 3)", + "sc4bonbxe", "Bar X (Mazooma) (Scorpion 4) (set 4)", + "sc4bonbxf", "Bar X (Mazooma) (Scorpion 4) (set 5)", + "sc4bonbxg", "Bar X (Mazooma) (Scorpion 4) (set 8)", + "sc4bonbxh", "Bar X (Mazooma) (Scorpion 4) (set 9)", + "sc4bonbxi", "Bar X (Mazooma) (Scorpion 4) (set 10)", + "sc4bonbxj", "Bar X (Mazooma) (Scorpion 4) (set 11)", + "sc4bonbxk", "Bar X (Mazooma) (Scorpion 4) (set 12)", + "sc4bonbxl", "Bar X (Mazooma) (Scorpion 4) (set 13)", + "sc4boomb", "Monopoly Boom Or Bust (Bellfruit) (Scorpion 4) (set 1)", + "sc4boomba", "Monopoly Boom Or Bust (Bellfruit) (Scorpion 4) (set 2)", + "sc4botn", "Back Of The Net (Qps) (Scorpion 4) (set 1, 011)", + "sc4botna", "Back Of The Net (Qps) (Scorpion 4) (set 2, 011)", + "sc4bpb", "Bully's Prize Board (Bellfruit) (Scorpion 4) (set 1)", + "sc4bpba", "Bully's Prize Board (Bellfruit) (Scorpion 4) (set 3)", + "sc4bpbb", "Bully's Prize Board (Bellfruit) (Scorpion 4) (set 4)", + "sc4bpbc", "Bully's Prize Board (Bellfruit) (Scorpion 4) (set 2)", + "sc4bpbd", "Bully's Prize Board (Bellfruit) (Scorpion 4) (set 5)", + "sc4bpbe", "Bully's Prize Board (Bellfruit) (Scorpion 4) (set 6)", + "sc4brix", "Brix (German) (Nova) (Scorpion 4) (set 1)", + "sc4brixa", "Brix (German) (Nova) (Scorpion 4) (set 2)", + "sc4brixb", "Brix (German) (Nova) (Scorpion 4) (set 3)", + "sc4brkfs", "The Big Breakfast (BFM) (Scorpion 4) (set 1)", + "sc4brkfsa", "The Big Breakfast (BFM) (Scorpion 4) (set 2)", + "sc4brkfsb", "The Big Breakfast (BFM) (Scorpion 4) (set 3)", + "sc4brkfsc", "The Big Breakfast (BFM) (Scorpion 4) (set 4)", + "sc4brksp", "Break The Spell (Mazooma) (Scorpion 4) (set 1)", + "sc4brkspa", "Break The Spell (Mazooma) (Scorpion 4) (set 2)", + "sc4broll", "Bank Roll (Mazooma) (Scorpion 4) (set 1)", + "sc4brolla", "Bank Roll (Mazooma) (Scorpion 4) (set 2)", + "sc4brollb", "Bank Roll (Mazooma) (Scorpion 4) (set 3)", + "sc4brollc", "Bank Roll (Mazooma) (Scorpion 4) (set 4)", + "sc4bsp", "Bully's Star Prize (PR3040) (Bellfruit) (Scorpion 4) (set 1)", + "sc4bspa", "Bully's Star Prize (PR3040) (Bellfruit) (Scorpion 4) (set 2)", + "sc4bspb", "Bully's Star Prize (PR3040) (Bellfruit) (Scorpion 4) (set 3)", + "sc4bspc", "Bully's Star Prize (PR3040) (Bellfruit) (Scorpion 4) (set 4)", + "sc4bspd", "Bully's Star Prize (PR3040) (Bellfruit) (Scorpion 4) (set 5)", + "sc4bspe", "Bully's Star Prize (PR3042) (Bellfruit) (Scorpion 4) (set 1)", + "sc4bspf", "Bully's Star Prize (PR3042) (Bellfruit) (Scorpion 4) (set 2)", + "sc4bspg", "Bully's Star Prize (PR3040) (Bellfruit) (Scorpion 4) (set 6)", + "sc4bugs", "Bugs Money (Bellfruit) (Scorpion 4) (set 1)", + "sc4bugsa", "Bugs Money (Bellfruit) (Scorpion 4) (set 2)", + "sc4bugsb", "Bugs Money (Bellfruit) (Scorpion 4) (set 3)", + "sc4bugsc", "Bugs Money (Bellfruit) (Scorpion 4) (set 4)", + "sc4bulcl", "Bullseye Club (Bellfruit) (Scorpion 4) (set 1)", + "sc4bulcla", "Bullseye Club (Bellfruit) (Scorpion 4) (set 2)", + "sc4bulclb", "Bullseye Club (Bellfruit) (Scorpion 4) (set 3)", + "sc4bulclc", "Bullseye Club (Bellfruit) (Scorpion 4) (set 4)", + "sc4bulcld", "Bullseye Club (Bellfruit) (Scorpion 4) (set 5)", + "sc4bulcle", "Bullseye Club (Bellfruit) (Scorpion 4) (set 6)", + "sc4bulclf", "Bullseye Club (Bellfruit) (Scorpion 4) (set 7)", + "sc4bulclg", "Bullseye Club (Bellfruit) (Scorpion 4) (set 8)", + "sc4bulclh", "Bullseye Club (Bellfruit) (Scorpion 4) (set 9)", + "sc4bulcli", "Bullseye Club (Bellfruit) (Scorpion 4) (set 10)", + "sc4bulcs", "Bullseye Classic (Bellfruit) (Scorpion 4) (set 1)", + "sc4bulcsa", "Bullseye Classic (Bellfruit) (Scorpion 4) (set 2)", + "sc4bulcsb", "Bullseye Classic (Bellfruit) (Scorpion 4) (set 3)", + "sc4bulcsc", "Bullseye Classic (Bellfruit) (Scorpion 4) (set 4)", + "sc4bull", "Bullseye (Bellfruit) (Scorpion 4) (set 1)", + "sc4bulla", "Bullseye (Bellfruit) (Scorpion 4) (set 2)", + "sc4bullb", "Bullseye (Bellfruit) (Scorpion 4) (set 3)", + "sc4bullc", "Bullseye (Bellfruit) (Scorpion 4) (set 4)", + "sc4butch", "Butch Cashidy & The Sundance Quid (Bellfruit) (Scorpion 4) (set 1)", + "sc4butcha", "Butch Cashidy & The Sundance Quid (Bellfruit) (Scorpion 4) (set 2)", + "sc4butchb", "Butch Cashidy & The Sundance Quid (Bellfruit) (Scorpion 4) (set 3)", + "sc4butchc", "Butch Cashidy & The Sundance Quid (Bellfruit) (Scorpion 4) (set 4)", + "sc4butchd", "Butch Cashidy & The Sundance Quid (Bellfruit) (Scorpion 4) (set 5)", + "sc4butche", "Butch Cashidy & The Sundance Quid (Bellfruit) (Scorpion 4) (set 6)", + "sc4butchf", "Butch Cashidy & The Sundance Quid (Bellfruit) (Scorpion 4) (set 7)", + "sc4butchg", "Butch Cashidy & The Sundance Quid (Bellfruit) (Scorpion 4) (set 8)", + "sc4bwow", "Wheel Of Wealth (Bellfruit) (PR1726) (Scorpion 4) (WHEL013, set 1)", + "sc4bwowa", "Wheel Of Wealth (Bellfruit) (PR1726) (Scorpion 4) (WHEL013, set 2)", + "sc4cabin", "Cabin Fever (Mazooma) (Scorpion 4) (set 1)", + "sc4cabina", "Cabin Fever (Mazooma) (Scorpion 4) (set 2)", + "sc4cabinb", "Cabin Fever (Mazooma) (Scorpion 4) (set 3)", + "sc4cabinc", "Cabin Fever (Mazooma) (Scorpion 4) (set 4)", + "sc4cabind", "Cabin Fever (Mazooma) (Scorpion 4) (set 5)", + "sc4cabine", "Cabin Fever (Mazooma) (Scorpion 4) (set 6)", + "sc4cabinf", "Cabin Fever (Mazooma) (Scorpion 4) (set 7)", + "sc4cabing", "Cabin Fever (Mazooma) (Scorpion 4) (set 8)", + "sc4cabinh", "Cabin Fever (Mazooma) (Scorpion 4) (set 9)", + "sc4cabini", "Cabin Fever (Mazooma) (Scorpion 4) (set 10)", + "sc4cabinj", "Cabin Fever (Mazooma) (Scorpion 4) (set 11)", + "sc4cabink", "Cabin Fever (Mazooma) (Scorpion 4) (set 12)", + "sc4cabinl", "Cabin Fever (Mazooma) (Scorpion 4) (set 13)", + "sc4cabinm", "Cabin Fever (Mazooma) (Scorpion 4) (set 14)", + "sc4cad", "Cash Adder (V1.0) (Qps) (Scorpion 4) (set 1)", + "sc4cada", "Cash Adder (V1.0) (Qps) (Scorpion 4) (set 2)", + "sc4cadb", "Cash Adder (V011) (Qps) (Scorpion 4) (set 1)", + "sc4cadc", "Cash Adder (V041) (Qps) (Scorpion 4) (set 1)", + "sc4cadcl", "Cash Adder Club (411) (Qps) (Scorpion 4) (set 1)", + "sc4cadcla", "Cash Adder Club (411) (Qps) (Scorpion 4) (set 2)", + "sc4cadd", "Cash Adder (V012) (Qps) (Scorpion 4) (set 1)", + "sc4cade", "Cash Adder (V042) (Qps) (Scorpion 4) (set 1)", + "sc4cadf", "Cash Adder (V1.0) (Qps) (Scorpion 4) (set 3)", + "sc4cadg", "Cash Adder (V1.0) (Qps) (Scorpion 4) (set 4)", + "sc4cadh", "Cash Adder (V011) (Qps) (Scorpion 4) (set 2)", + "sc4cadi", "Cash Adder (V041) (Qps) (Scorpion 4) (set 2)", + "sc4cadj", "Cash Adder (V012) (Qps) (Scorpion 4) (set 2)", + "sc4cadk", "Cash Adder (V042) (Qps) (Scorpion 4) (set 2)", + "sc4cadl", "Cash Adder (V013) (Qps) (Scorpion 4) (set 1)", + "sc4cadm", "Cash Adder (V013) (Qps) (Scorpion 4) (set 2)", + "sc4cadn", "Cash Adder (V014) (Qps) (Scorpion 4) (set 1)", + "sc4cado", "Cash Adder (V043) (Qps) (Scorpion 4) (set 1)", + "sc4cadp", "Cash Adder (V014) (Qps) (Scorpion 4) (set 2)", + "sc4cadq", "Cash Adder (V043) (Qps) (Scorpion 4) (set 2)", + "sc4canca", "Can Can Cash Casino (Mazooma) (Scorpion 4) (set 1)", + "sc4cancaa", "Can Can Cash Casino (Mazooma) (Scorpion 4) (set 2)", + "sc4cancab", "Can Can Cash Casino (Mazooma) (Scorpion 4) (set 3)", + "sc4cancac", "Can Can Cash Casino (Mazooma) (Scorpion 4) (set 4)", + "sc4captn", "Captain Cash (Qps) (Scorpion 4) (set 1)", + "sc4captna", "Captain Cash (Qps) (Scorpion 4) (set 4)", + "sc4captnb", "Captain Cash (Qps) (Scorpion 4) (set 2)", + "sc4captnc", "Captain Cash (Qps) (Scorpion 4) (set 3)", + "sc4captnd", "Captain Cash (Qps) (Scorpion 4) (set 5)", + "sc4captne", "Captain Cash (Qps) (Scorpion 4) (set 6)", + "sc4captnf", "Captain Cash (Qps) (Scorpion 4) (set 7)", + "sc4cari", "Caribbean Cash (PR2326) (Mazooma) (Scorpion 4) (set 1)", + "sc4caria", "Caribbean Cash (PR2326) (Mazooma) (Scorpion 4) (set 2)", + "sc4carib", "Caribbean Cash (PR2326) (Mazooma) (Scorpion 4) (set 3)", + "sc4caric", "Caribbean Cash (PR2326) (Mazooma) (Scorpion 4) (set 4)", + "sc4carid", "Caribbean Cash (PR2326) (Mazooma) (Scorpion 4) (set 5)", + "sc4carie", "Caribbean Cash (PR2326) (Mazooma) (Scorpion 4) (set 6)", + "sc4cariq", "Caribbean Cash (Qps) (Scorpion 4) (set 1)", + "sc4cariqa", "Caribbean Cash (Qps) (Scorpion 4) (set 2)", + "sc4cariqb", "Caribbean Cash (Qps) (Scorpion 4) (set 3)", + "sc4cariqc", "Caribbean Cash (Qps) (Scorpion 4) (set 4)", + "sc4cariqd", "Caribbean Cash (Qps) (Scorpion 4) (set 5)", + "sc4cariqe", "Caribbean Cash (Qps) (Scorpion 4) (set 6)", + "sc4cariqf", "Caribbean Cash (Qps) (Scorpion 4) (set 7)", + "sc4cariqg", "Caribbean Cash (Qps) (Scorpion 4) (set 8)", + "sc4carry", "Carry On Winning (Bellfruit) (Scorpion 4) (set 1)", + "sc4carrya", "Carry On Winning (Bellfruit) (Scorpion 4) (set 2)", + "sc4cashg", "Cashanova (German) (Mazooma / Nova) (Scorpion 4)", + "sc4cashm", "Cashanova (Mazooma) (Scorpion 4) (set 1)", + "sc4cashma", "Cashanova (Mazooma) (Scorpion 4) (set 2)", + "sc4cashmb", "Cashanova (Mazooma) (Scorpion 4) (set 3)", + "sc4cashmc", "Cashanova (Mazooma) (Scorpion 4) (set 4)", + "sc4cashmd", "Cashanova (Mazooma) (Scorpion 4) (set 5)", + "sc4cashme", "Cashanova (Mazooma) (Scorpion 4) (set 6)", + "sc4cashn", "Cashanova (Dutch) (Mazooma / Eurocoin) (Scorpion 4)", + "sc4casry", "Casino Royale (PR2062) (Mazooma) (Scorpion 4) (set 1)", + "sc4casrya", "Casino Royale (PR2073) (Czech) (Mazooma) (Scorpion 4) (set 1)", + "sc4casryb", "Casino Royale (PR2073) (Czech) (Mazooma) (Scorpion 4) (set 2)", + "sc4casryc", "Casino Royale (PR2062) (Mazooma) (Scorpion 4) (set 2)", + "sc4casryd", "Casino Royale (PR2075) (Mazooma) (Scorpion 4) (set 1)", + "sc4casrye", "Casino Royale (PR2075) (Mazooma) (Scorpion 4) (set 2)", + "sc4casxt", "Casino Xtravaganza (Mazooma) (Scorpion 4) (set 1)", + "sc4casxta", "Casino Xtravaganza (Mazooma) (Scorpion 4) (set 2)", + "sc4casxtb", "Casino Xtravaganza (Mazooma) (Scorpion 4) (set 3)", + "sc4casxtc", "Casino Xtravaganza (Mazooma) (Scorpion 4) (set 4)", + "sc4casxtd", "Casino Xtravaganza (Mazooma) (Scorpion 4) (set 5)", + "sc4casxte", "Casino Xtravaganza (Mazooma) (Scorpion 4) (set 6)", + "sc4cbaz", "Cash Bazaar Club (Bellfruit) (Scorpion 4) (set 1)", + "sc4cbaza", "Cash Bazaar Club (Bellfruit) (Scorpion 4) (set 2)", + "sc4cbazb", "Cash Bazaar Club (Bellfruit) (Scorpion 4) (set 3)", + "sc4cbazc", "Cash Bazaar Club (Bellfruit) (Scorpion 4) (set 4)", + "sc4cbazd", "Cash Bazaar Club (Bellfruit) (Scorpion 4) (set 5)", + "sc4cbaze", "Cash Bazaar Club (Bellfruit) (Scorpion 4) (set 6)", + "sc4cbazf", "Cash Bazaar Club (Bellfruit) (Scorpion 4) (set 7)", + "sc4cbazg", "Cash Bazaar Club (Bellfruit) (Scorpion 4) (set 8)", + "sc4cbazh", "Cash Bazaar Club (Bellfruit) (Scorpion 4) (set 9)", + "sc4cbazi", "Cash Bazaar Club (Bellfruit) (Scorpion 4) (set 10)", + "sc4cbazj", "Cash Bazaar Club (Bellfruit) (Scorpion 4) (set 11)", + "sc4cbazk", "Cash Bazaar Club (Bellfruit) (Scorpion 4) (set 12)", + "sc4cblas", "Cash Blast (Voodoo Games) (Scorpion 4) (set 1)", + "sc4cblasa", "Cash Blast (Voodoo Games) (Scorpion 4) (set 2)", + "sc4cburn", "Cash 'n' Burn (Qps) (Scorpion 4) (set 1)", + "sc4cburna", "Cash 'n' Burn (Qps) (Scorpion 4) (set 2)", + "sc4ccc", "Criss Cross Crazy (Dutch) (Bellfruit) (Scorpion 4)", + "sc4cccsh", "Criss Cross Cash (Mazooma) (Scorpion 4) (set 1)", + "sc4cccsha", "Criss Cross Cash (Mazooma) (Scorpion 4) (set 2)", + "sc4cccshb", "Criss Cross Cash (Mazooma) (Scorpion 4) (set 3)", + "sc4cccshc", "Criss Cross Cash (Mazooma) (Scorpion 4) (set 4)", + "sc4cccshd", "Criss Cross Cash (Mazooma) (Scorpion 4) (set 5)", + "sc4cccshe", "Criss Cross Cash (Mazooma) (Scorpion 4) (set 6)", + "sc4cckey", "Casino Crazy Fruits Gold (Bellfruit) (Scorpion 4) (set 1)", + "sc4cckeya", "Casino Crazy Fruits Gold (Bellfruit) (Scorpion 4) (set 2)", + "sc4cckeyb", "Casino Crazy Fruits Gold (Bellfruit) (Scorpion 4) (set 3)", + "sc4cckeyc", "Casino Crazy Fruits Gold (Bellfruit) (Scorpion 4) (set 4)", + "sc4cckeyd", "Casino Crazy Fruits Gold (Bellfruit) (Scorpion 4) (set 5)", + "sc4cckeye", "Casino Crazy Fruits Gold (Bellfruit) (Scorpion 4) (set 6)", + "sc4cckeyf", "Casino Crazy Fruits Gold (Bellfruit) (Scorpion 4) (set 7)", + "sc4cckeyg", "Casino Crazy Fruits Gold (Bellfruit) (Scorpion 4) (set 8)", + "sc4cckeyh", "Casino Crazy Fruits Gold (Bellfruit) (Scorpion 4) (set 9)", + "sc4cckeyi", "Casino Crazy Fruits Gold (Bellfruit) (Scorpion 4) (set 11)", + "sc4cckeyj", "Casino Crazy Fruits Gold (Bellfruit) (Scorpion 4) (set 10)", + "sc4cckeyk", "Casino Crazy Fruits Gold (Bellfruit) (Scorpion 4) (set 12)", + "sc4cckeyl", "Casino Crazy Fruits Gold (Bellfruit) (Scorpion 4) (set 13)", + "sc4cckeym", "Casino Crazy Fruits Gold (Bellfruit) (Scorpion 4) (set 14)", + "sc4cckeyn", "Casino Crazy Fruits Gold (Bellfruit) (Scorpion 4) (set 15)", + "sc4cckeyo", "Casino Crazy Fruits Gold (Bellfruit) (Scorpion 4) (set 16)", + "sc4cclas", "Club Class (Bellfruit) (Scorpion 4) (set 1)", + "sc4cclas0", "Club Class (Bellfruit) (Scorpion 4) (set 24)", + "sc4cclas1", "Club Class (Bellfruit) (Scorpion 4) (set 25)", + "sc4cclas2", "Club Class (Bellfruit) (Scorpion 4) (set 26)", + "sc4cclas3", "Club Class (Bellfruit) (Scorpion 4) (set 27)", + "sc4cclas4", "Club Class (Bellfruit) (Scorpion 4) (set 28)", + "sc4cclasa", "Club Class (Bellfruit) (Scorpion 4) (set 2)", + "sc4cclasb", "Club Class (Bellfruit) (Scorpion 4) (set 3)", + "sc4cclasc", "Club Class (Bellfruit) (Scorpion 4) (set 4)", + "sc4cclasd", "Club Class (Bellfruit) (Scorpion 4) (set 5)", + "sc4cclase", "Club Class (65% Ferry) (Bellfruit) (Scorpion 4) (set 1)", + "sc4cclasf", "Club Class (Bellfruit) (Scorpion 4) (set 6)", + "sc4cclasg", "Club Class (65% Ferry) (Bellfruit) (Scorpion 4) (set 2)", + "sc4cclash", "Club Class (65% Ferry) (Bellfruit) (Scorpion 4) (set 3)", + "sc4cclasi", "Club Class (Bellfruit) (Scorpion 4) (set 7)", + "sc4cclasj", "Club Class (Bellfruit) (Scorpion 4) (set 8)", + "sc4cclask", "Club Class (Bellfruit) (Scorpion 4) (set 9)", + "sc4cclasl", "Club Class (Bellfruit) (Scorpion 4) (set 10)", + "sc4cclasm", "Club Class (Bellfruit) (Scorpion 4) (set 11)", + "sc4cclasn", "Club Class (Bellfruit) (Scorpion 4) (set 12)", + "sc4cclaso", "Club Class (Bellfruit) (Scorpion 4) (set 13)", + "sc4cclasp", "Club Class (65% Ferry) (Bellfruit) (Scorpion 4) (set 4)", + "sc4cclasq", "Club Class (Bellfruit) (Scorpion 4) (set 14)", + "sc4cclasr", "Club Class (Bellfruit) (Scorpion 4) (set 15)", + "sc4cclass", "Club Class (Bellfruit) (Scorpion 4) (set 16)", + "sc4cclast", "Club Class (Bellfruit) (Scorpion 4) (set 17)", + "sc4cclasu", "Club Class (Bellfruit) (Scorpion 4) (set 18)", + "sc4cclasv", "Club Class (Bellfruit) (Scorpion 4) (set 19)", + "sc4cclasw", "Club Class (Bellfruit) (Scorpion 4) (set 20)", + "sc4cclasx", "Club Class (Bellfruit) (Scorpion 4) (set 21)", + "sc4cclasy", "Club Class (Bellfruit) (Scorpion 4) (set 22)", + "sc4cclasz", "Club Class (Bellfruit) (Scorpion 4) (set 23)", + "sc4cclim", "Casino Crazy Climber (Bellfruit) (Scorpion 4) (set 1)", + "sc4cclima", "Casino Crazy Climber (Bellfruit) (Scorpion 4) (set 2)", + "sc4cclimb", "Casino Crazy Climber (Bellfruit) (Scorpion 4) (set 3)", + "sc4cclimc", "Casino Crazy Climber (Bellfruit) (Scorpion 4) (set 4)", + "sc4cclimd", "Casino Crazy Climber (Bellfruit) (Scorpion 4) (set 5)", + "sc4cclime", "Casino Crazy Climber (Bellfruit) (Scorpion 4) (set 13)", + "sc4cclimf", "Casino Crazy Climber (Bellfruit) (Scorpion 4) (set 14)", + "sc4cclimg", "Casino Crazy Climber (Bellfruit) (Scorpion 4) (set 15)", + "sc4cclimh", "Casino Crazy Climber (Bellfruit) (Scorpion 4) (set 6)", + "sc4cclimi", "Casino Crazy Climber (Bellfruit) (Scorpion 4) (set 7)", + "sc4cclimj", "Casino Crazy Climber (Bellfruit) (Scorpion 4) (set 16)", + "sc4cclimk", "Casino Crazy Climber (Bellfruit) (Scorpion 4) (set 17)", + "sc4ccliml", "Casino Crazy Climber (Bellfruit) (Scorpion 4) (set 18)", + "sc4cclimm", "Casino Crazy Climber (Bellfruit) (Scorpion 4) (set 8)", + "sc4cclimn", "Casino Crazy Climber (Bellfruit) (Scorpion 4) (set 9)", + "sc4cclimo", "Casino Crazy Climber (Bellfruit) (Scorpion 4) (set 10)", + "sc4cclimp", "Casino Crazy Climber (Bellfruit) (Scorpion 4) (set 11)", + "sc4cclimq", "Casino Crazy Climber (Bellfruit) (Scorpion 4) (set 19)", + "sc4cclimr", "Casino Crazy Climber (Bellfruit) (Scorpion 4) (set 20)", + "sc4cclims", "Casino Crazy Climber (Bellfruit) (Scorpion 4) (set 12)", + "sc4cclimt", "Casino Crazy Climber (Bellfruit) (Scorpion 4) (set 21)", + "sc4cclimu", "Casino Crazy Climber (Bellfruit) (Scorpion 4) (set 22)", + "sc4ccogs", "Clever Cogs (Qps) (Scorpion 4)", + "sc4cconx", "Cash Connexion (Mazooma) (Scorpion 4) (set 1)", + "sc4cconxa", "Cash Connexion (Mazooma) (Scorpion 4) (set 2)", + "sc4cconxb", "Cash Connexion (Mazooma) (Scorpion 4) (set 3)", + "sc4cconxc", "Cash Connexion (Mazooma) (Scorpion 4) (set 4)", + "sc4cconxd", "Cash Connexion (Mazooma) (Scorpion 4) (set 5)", + "sc4ccrus", "Cash Crusaders (Mazooma) (Scorpion 4) (set 1)", + "sc4ccrusa", "Cash Crusaders (Mazooma) (Scorpion 4) (set 2)", + "sc4ccrusb", "Cash Crusaders (Mazooma) (Scorpion 4) (set 3)", + "sc4celeb", "I'm A Celebrity (Bellfruit) (Scorpion 4) (set 1)", + "sc4celeba", "I'm A Celebrity (Bellfruit) (Scorpion 4) (set 2)", + "sc4celebb", "I'm A Celebrity (Bellfruit) (Scorpion 4) (set 3)", + "sc4celebc", "I'm A Celebrity (Bellfruit) (Scorpion 4) (set 4)", + "sc4celebd", "I'm A Celebrity (Bellfruit) (Scorpion 4) (set 5)", + "sc4cerup", "Cash Eruption (Mazooma) (Scorpion 4)", + "sc4cexpl", "Cash Explosion (PR2076) (Mazooma) (Scorpion 4) (set 1)", + "sc4cexpla", "Cash Explosion (PR2076) (Mazooma) (Scorpion 4) (set 2)", + "sc4cexplb", "Cash Explosion (PR2076) (Mazooma) (Scorpion 4) (set 3)", + "sc4cexplc", "Cash Explosion (PR2076) (Mazooma) (Scorpion 4) (set 4)", + "sc4cexpld", "Cash Explosion (PR2120) (Mazooma) (Scorpion 4) (set 1)", + "sc4cexple", "Cash Explosion (PR2120) (Mazooma) (Scorpion 4) (set 2)", + "sc4cexplf", "Cash Explosion (PR2076) (Mazooma) (Scorpion 4) (set 5)", + "sc4cexplg", "Cash Explosion (PR2076) (Mazooma) (Scorpion 4) (set 6)", + "sc4cfcas", "Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 1)", + "sc4cfcas0", "Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 18)", + "sc4cfcas1", "Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 19)", + "sc4cfcas2", "Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 20)", + "sc4cfcas3", "Casino Crazy Fruits (ZYFR) (Bellfruit) (Scorpion 4) (set 9)", + "sc4cfcas4", "Casino Crazy Fruits (CCFR) (Bellfruit) (Scorpion 4) (set 1)", + "sc4cfcas5", "Casino Crazy Fruits (CCFR) (Bellfruit) (Scorpion 4) (set 2)", + "sc4cfcas6", "Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 21)", + "sc4cfcas7", "Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 22)", + "sc4cfcas8", "Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 23)", + "sc4cfcas9", "Casino Crazy Fruits (ZYFR) (Bellfruit) (Scorpion 4) (set 10)", + "sc4cfcasa", "Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 2)", + "sc4cfcasaa", "Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 24)", + "sc4cfcasab", "Casino Crazy Fruits (ZYFR) (Bellfruit) (Scorpion 4) (set 11)", + "sc4cfcasac", "Casino Crazy Fruits (ZYFR) (Bellfruit) (Scorpion 4) (set 12)", + "sc4cfcasad", "Casino Crazy Fruits (CCFR) (Bellfruit) (Scorpion 4) (set 3)", + "sc4cfcasae", "Casino Crazy Fruits (CCFR) (Bellfruit) (Scorpion 4) (set 4)", + "sc4cfcasaf", "Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 25)", + "sc4cfcasag", "Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 26)", + "sc4cfcasah", "Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 27)", + "sc4cfcasai", "Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 28)", + "sc4cfcasaj", "Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 29)", + "sc4cfcasak", "Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 30)", + "sc4cfcasal", "Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 31)", + "sc4cfcasam", "Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 32)", + "sc4cfcasb", "Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 3)", + "sc4cfcasc", "Casino Crazy Fruits (ZYFR) (Bellfruit) (Scorpion 4) (set 5)", + "sc4cfcasd", "Casino Crazy Fruits (ZYFR) (Bellfruit) (Scorpion 4) (set 6)", + "sc4cfcase", "Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 4)", + "sc4cfcasf", "Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 5)", + "sc4cfcasg", "Casino Crazy Fruits (ZYFR) (Bellfruit) (Scorpion 4) (set 7)", + "sc4cfcash", "Casino Crazy Fruits (ZYFR) (Bellfruit) (Scorpion 4) (set 8)", + "sc4cfcasi", "Casino Crazy Fruits (ZYFR) (Bellfruit) (Scorpion 4) (set 1)", + "sc4cfcasj", "Casino Crazy Fruits (ZYFR) (Bellfruit) (Scorpion 4) (set 2)", + "sc4cfcask", "Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 6)", + "sc4cfcasl", "Casino Crazy Fruits (ZYPF) (Bellfruit) (Scorpion 4) (set 2)", + "sc4cfcasm", "Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 7)", + "sc4cfcasn", "Casino Crazy Fruits (ZYFR) (Bellfruit) (Scorpion 4) (set 3)", + "sc4cfcaso", "Casino Crazy Fruits (ZYFR) (Bellfruit) (Scorpion 4) (set 4)", + "sc4cfcasp", "Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 8)", + "sc4cfcasq", "Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 9)", + "sc4cfcasr", "Casino Crazy Fruits (ZYPF) (Bellfruit) (Scorpion 4) (set 1)", + "sc4cfcass", "Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 10)", + "sc4cfcast", "Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 11)", + "sc4cfcasu", "Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 12)", + "sc4cfcasv", "Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 13)", + "sc4cfcasw", "Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 14)", + "sc4cfcasx", "Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 15)", + "sc4cfcasy", "Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 16)", + "sc4cfcasz", "Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 17)", + "sc4cfcla", "Crazy Fruits Classic (Bellfruit) (Scorpion 4) (set 1)", + "sc4cfclab", "Crazy Fruits Classic (Bellfruit) (Scorpion 4) (set 2)", + "sc4cfclac", "Crazy Fruits Classic (Bellfruit) (Scorpion 4) (set 3)", + "sc4cfclad", "Crazy Fruits Classic (Bellfruit) (Scorpion 4) (set 4)", + "sc4cfclae", "Crazy Fruits Classic (Bellfruit) (Scorpion 4) (set 5)", + "sc4cfclaf", "Crazy Fruits Classic (Bellfruit) (Scorpion 4) (set 6)", + "sc4cfclb", "Crazy Fruits Club (Bellfruit) (Scorpion 4) (set 1)", + "sc4cfclba", "Crazy Fruits Club (Bellfruit) (Scorpion 4) (set 2)", + "sc4cfclbb", "Crazy Fruits Club (Bellfruit) (Scorpion 4) (set 3)", + "sc4cfdu", "Crazy Fruits Down Under (Bellfruit) (Scorpion 4) (set 1)", + "sc4cfdua", "Crazy Fruits Down Under (Bellfruit) (Scorpion 4) (set 2)", + "sc4cfdub", "Crazy Fruits Down Under (Bellfruit) (Scorpion 4) (set 3)", + "sc4cfduc", "Crazy Fruits Down Under (Bellfruit) (Scorpion 4) (set 4)", + "sc4cfgcl", "Crazy Fruits Gold Club (Bellfruit) (Scorpion 4) (set 1)", + "sc4cfgcla", "Crazy Fruits Gold Club (Bellfruit) (Scorpion 4) (set 2)", + "sc4cfgclb", "Crazy Fruits Gold Club (Bellfruit) (Scorpion 4) (set 3)", + "sc4cfgclc", "Crazy Fruits Gold Club (Bellfruit) (Scorpion 4) (set 4)", + "sc4cfqps", "Crazy Fruits (PR6813, CRFR) (Qps) (Scorpion 4) (set 1)", + "sc4cfqpsa", "Crazy Fruits (PR6813, CRFR) (Qps) (Scorpion 4) (set 4)", + "sc4cfqpsb", "Crazy Fruits (PR6813, CRFR) (Qps) (Scorpion 4) (set 2)", + "sc4cfqpsc", "Crazy Fruits V1.0 (PR2521, ECRZ) (Qps) (Scorpion 4) (set 1)", + "sc4cfqpsd", "Crazy Fruits (PR6813, CRFR) (Qps) (Scorpion 4) (set 3)", + "sc4cfqpse", "Crazy Fruits V1.0 (PR2521, ECRZ) (Qps) (Scorpion 4) (set 2)", + "sc4cfqpsf", "Crazy Fruits V1.0 (PR2521, ECRZ) (Qps) (Scorpion 4) (set 3)", + "sc4cfqpsg", "Crazy Fruits V1.0 (PR2521, ECRZ) (Qps) (Scorpion 4) (set 4)", + "sc4cfqpsh", "Crazy Fruits V1.0 (PR2521, ECRZ) (Qps) (Scorpion 4) (set 5)", + "sc4cfqpsi", "Crazy Fruits V1.0 (PR2521, ECRZ) (Qps) (Scorpion 4) (set 6)", + "sc4cfqpsj", "Crazy Fruits SP98 (PR4613) (Qps) (Scorpion 4)", + "sc4cfqpsk", "Crazy Fruits (PR6813, CCAS) (Qps) (Scorpion 4) (set 1)", + "sc4cfqpsl", "Crazy Fruits SP98 (PR4613) (BFM) (Scorpion 4) (set 1)", + "sc4cfqpsm", "Crazy Fruits SP98 (PR4613) (BFM / Whitbread) (Scorpion 4) (set 1)", + "sc4cfqpsn", "Crazy Fruits SP98 (PR4613) (BFM) (Scorpion 4) (set 2)", + "sc4cfqpso", "Crazy Fruits SP98 (PR4613) (BFM / Whitbread) (Scorpion 4) (set 2)", + "sc4cfqpsp", "Crazy Fruits SP98 (PR4613) (BFM) (Scorpion 4) (set 3)", + "sc4chain", "Chain Reaction (Bellfruit) (Scorpion 4) (set 1)", + "sc4chaina", "Chain Reaction (Bellfruit) (Scorpion 4) (set 2)", + "sc4chainb", "Chain Reaction (Bellfruit) (Scorpion 4) (set 3)", + "sc4chainc", "Chain Reaction (Bellfruit) (Scorpion 4) (set 4)", + "sc4chand", "Cash In Hand (Bellfruit) (Scorpion 4) (set 1)", + "sc4chanda", "Cash In Hand (Bellfruit) (Scorpion 4) (set 2)", + "sc4chandb", "Cash In Hand (Bellfruit) (Scorpion 4) (set 3)", + "sc4chandc", "Cash In Hand (Bellfruit) (Scorpion 4) (set 4)", + "sc4chavi", "Chav It (Bellfruit) (Scorpion 4) (set 1)", + "sc4chavia", "Chav It (Bellfruit) (Scorpion 4) (set 2)", + "sc4chavib", "Chav It (Bellfruit) (Scorpion 4) (set 3)", + "sc4chavic", "Chav It (Bellfruit) (Scorpion 4) (set 4)", + "sc4chavid", "Chav It (Bellfruit) (Scorpion 4) (set 5)", + "sc4chavie", "Chav It (Bellfruit) (Scorpion 4) (set 6)", + "sc4chavif", "Chav It (Bellfruit) (Scorpion 4) (set 7)", + "sc4chavig", "Chav It (Bellfruit) (Scorpion 4) (set 8)", + "sc4chavy", "Chavy Chase (Mazooma) (Scorpion 4) (set 1)", + "sc4chavya", "Chavy Chase (Mazooma) (Scorpion 4) (set 2)", + "sc4chavyb", "Chavy Chase (Mazooma) (Scorpion 4) (set 3)", + "sc4chavyc", "Chavy Chase (Mazooma) (Scorpion 4) (set 4)", + "sc4chavyd", "Chavy Chase (Mazooma) (Scorpion 4) (set 5)", + "sc4chavye", "Chavy Chase (Mazooma) (Scorpion 4) (set 6)", + "sc4chavyf", "Chavy Chase (Mazooma) (Scorpion 4) (set 7)", + "sc4chavyg", "Chavy Chase (Mazooma) (Scorpion 4) (set 8)", + "sc4chick", "Chickendales (Mazooma) (Scorpion 4)", + "sc4chub", "Chubby Does Vegas (Mazooma) (Scorpion 4) (set 1)", + "sc4chuba", "Chubby Does Vegas (Mazooma) (Scorpion 4) (set 2)", + "sc4chubb", "Chubby Does Vegas (Mazooma) (Scorpion 4) (set 3)", + "sc4cinv", "Cash Invaders (Bellfruit) (Scorpion 4) (set 1)", + "sc4cinva", "Cash Invaders (Bellfruit) (Scorpion 4) (set 2)", + "sc4cinvb", "Cash Invaders (Bellfruit) (Scorpion 4) (set 3)", + "sc4cinvc", "Cash Invaders (Bellfruit) (Scorpion 4) (set 4)", + "sc4cinvd", "Cash Invaders (Bellfruit) (Scorpion 4) (set 5)", + "sc4cinve", "Cash Invaders (Bellfruit) (Scorpion 4) (set 6)", + "sc4cinvf", "Cash Invaders (Bellfruit) (Scorpion 4) (set 7)", + "sc4cinvg", "Cash Invaders (Bellfruit) (Scorpion 4) (set 8)", + "sc4cinvh", "Cash Invaders (Bellfruit) (Scorpion 4) (set 9)", + "sc4cinvi", "Cash Invaders (Bellfruit) (Scorpion 4) (set 10)", + "sc4cj", "Cool Jewels (Bellfruit) (Scorpion 4) (set 1)", + "sc4cja", "Cool Jewels (Bellfruit) (Scorpion 4) (set 2)", + "sc4cjb", "Cool Jewels (Bellfruit) (Scorpion 4) (set 3)", + "sc4cjc", "Cool Jewels (Bellfruit) (Scorpion 4) (set 4)", + "sc4cjcl", "Cool Jewels Club (Bellfruit) (Scorpion 4) (set 1)", + "sc4cjcla", "Cool Jewels Club (Bellfruit) (Scorpion 4) (set 2)", + "sc4cjclb", "Cool Jewels Club (Bellfruit) (Scorpion 4) (set 3)", + "sc4cjclc", "Cool Jewels Club (Bellfruit) (Scorpion 4) (set 4)", + "sc4cjcld", "Cool Jewels Club (Bellfruit) (Scorpion 4) (set 5)", + "sc4cjcle", "Cool Jewels Club (Bellfruit) (Scorpion 4) (set 6)", + "sc4cjclf", "Cool Jewels Club (Bellfruit) (Scorpion 4) (set 7)", + "sc4cjd", "Cool Jewels (Bellfruit) (Scorpion 4) (set 5)", + "sc4ckx", "Casino King X (Mazooma) (Scorpion 4) (Top Box, set 1)", + "sc4ckxa", "Casino King X (Mazooma) (Scorpion 4) (Base, set 1)", + "sc4ckxb", "Casino King X (Mazooma) (Scorpion 4) (Base, set 2)", + "sc4ckxc", "Casino King X (Mazooma) (Scorpion 4) (Base, set 3)", + "sc4ckxd", "Casino King X (Mazooma) (Scorpion 4) (Top Box, set 2)", + "sc4ckxe", "Casino King X (Mazooma) (Scorpion 4) (Base, set 4)", + "sc4ckxf", "Casino King X (Mazooma) (Scorpion 4) (Base, set 5)", + "sc4ckxg", "Casino King X (Mazooma) (Scorpion 4) (Base, set 6)", + "sc4cla7", "Classic 7s (Mazooma) (Scorpion 4) (set 1)", + "sc4cla7a", "Classic 7s (Mazooma) (Scorpion 4) (set 2)", + "sc4cla7b", "Classic 7s (Mazooma) (Scorpion 4) (set 3)", + "sc4cla7c", "Classic 7s (Mazooma) (Scorpion 4) (set 4)", + "sc4clash", "Cash On The Lash (Mazooma) (Scorpion 4) (set 1)", + "sc4clasha", "Cash On The Lash (Mazooma) (Scorpion 4) (set 2)", + "sc4clashb", "Cash On The Lash (Mazooma) (Scorpion 4) (set 3)", + "sc4clashc", "Cash On The Lash (Mazooma) (Scorpion 4) (set 4)", + "sc4clashd", "Cash On The Lash (Mazooma) (Scorpion 4) (set 5)", + "sc4clashe", "Cash On The Lash (Mazooma) (Scorpion 4) (set 6)", + "sc4clashf", "Cash On The Lash (Mazooma) (Scorpion 4) (set 7)", + "sc4clashg", "Cash On The Lash (Mazooma) (Scorpion 4) (set 8)", + "sc4clbmn", "Club Moneybags (Bellfruit) (Scorpion 4) (set 1)", + "sc4clbmna", "Club Moneybags (Bellfruit) (Scorpion 4) (set 2)", + "sc4clbmnb", "Club Moneybags (Bellfruit) (Scorpion 4) (set 3)", + "sc4clbmnc", "Club Moneybags (Bellfruit) (Scorpion 4) (set 4)", + "sc4clbtm", "Club Temptation (Bellfruit) (Scorpion 4) (set 1)", + "sc4clbtma", "Club Temptation (Bellfruit) (Scorpion 4) (set 2)", + "sc4clbtmb", "Club Temptation (Bellfruit) (Scorpion 4) (set 3)", + "sc4clbtmc", "Club Temptation (Bellfruit) (Scorpion 4) (set 4)", + "sc4clbtmd", "Club Temptation (Bellfruit) (Scorpion 4) (set 5)", + "sc4clbtme", "Club Temptation (Bellfruit) (Scorpion 4) (set 6)", + "sc4clclo", "Club Clouseau (QPS) (Scorpion 4)", + "sc4clown", "Clown Around (Bellfruit) (Scorpion 4) (set 1)", + "sc4clowna", "Clown Around (Bellfruit) (Scorpion 4) (set 2)", + "sc4clownb", "Clown Around (Bellfruit) (Scorpion 4) (set 3)", + "sc4clownc", "Clown Around (Bellfruit) (Scorpion 4) (set 4)", + "sc4clownd", "Clown Around (Bellfruit) (Scorpion 4) (set 5)", + "sc4clowne", "Clown Around (Bellfruit) (Scorpion 4) (set 6)", + "sc4clownf", "Clown Around (Bellfruit) (Scorpion 4) (set 7)", + "sc4clowng", "Clown Around (Bellfruit) (Scorpion 4) (set 8)", + "sc4clucl", "Cluedo Club (Mazooma) (Scorpion 4) (set 1)", + "sc4clucla", "Cluedo Club (Mazooma) (Scorpion 4) (set 2)", + "sc4clue", "Cluedo (Mazooma) (Scorpion 4) (set 1)", + "sc4cluea", "Cluedo (Mazooma) (Scorpion 4) (set 2)", + "sc4clueb", "Cluedo (Mazooma) (Scorpion 4) (set 3)", + "sc4cluec", "Cluedo (Mazooma) (Scorpion 4) (set 4)", + "sc4clued", "Cluedo (Mazooma) (Scorpion 4) (set 5)", + "sc4cluee", "Cluedo (Mazooma) (Scorpion 4) (set 6)", + "sc4cluef", "Cluedo (Mazooma) (Scorpion 4) (set 7)", + "sc4clueg", "Cluedo (Mazooma) (Scorpion 4) (set 8)", + "sc4cmani", "Colour Mania (Bellfruit) (Scorpion 4) (set 1)", + "sc4cmania", "Colour Mania (Bellfruit) (Scorpion 4) (set 2)", + "sc4cmon", "Casino Monopoly (PR2133) (Mazooma) (Scorpion 4) (set 1)", + "sc4cmona", "Casino Monopoly (PR2133) (Mazooma) (Scorpion 4) (set 2)", + "sc4cmonb", "Casino Monopoly (PR2133) (Mazooma) (Scorpion 4) (set 3)", + "sc4cmonc", "Casino Monopoly (PR2133) (Mazooma) (Scorpion 4) (set 4)", + "sc4cmond", "Casino Monopoly (PR2133) (Mazooma) (Scorpion 4) (set 5)", + "sc4cmone", "Casino Monopoly (PR2133) (Mazooma) (Scorpion 4) (set 6)", + "sc4cmonf", "Casino Monopoly (PR2133) (Mazooma) (Scorpion 4) (set 7)", + "sc4cmong", "Casino Monopoly (PR2133) (Mazooma) (Scorpion 4) (set 8)", + "sc4cmonh", "Casino Monopoly (PR2133) (Mazooma) (Scorpion 4) (set 9)", + "sc4cmoni", "Casino Monopoly (PR2133) (Mazooma) (Scorpion 4) (set 10)", + "sc4cmous", "Cash & Mouse (V041) (Qps) (Scorpion 4) (set 1)", + "sc4cmousa", "Cash & Mouse (V011) (Qps) (Scorpion 4) (set 1)", + "sc4cmousb", "Cash & Mouse (V041) (Qps) (Scorpion 4) (set 2)", + "sc4cmousc", "Cash & Mouse (V011) (Qps) (Scorpion 4) (set 2)", + "sc4cnfr", "Cash 'n' Fruit (Bellfruit) (Scorpion 4) (set 1)", + "sc4cnfra", "Cash 'n' Fruit (Bellfruit) (Scorpion 4) (set 2)", + "sc4cnfrb", "Cash 'n' Fruit (Bellfruit) (Scorpion 4) (set 3)", + "sc4cnfrc", "Cash 'n' Fruit S+P98 (Bellfruit) (Scorpion 4) (set 1)", + "sc4cnfrd", "Cash 'n' Fruit S+P98 (Bellfruit) (Scorpion 4) (set 2)", + "sc4cnfre", "Cash 'n' Fruit (Bellfruit) (Scorpion 4) (set 4)", + "sc4cnfrf", "Cash 'n' Fruit (Bellfruit) (Scorpion 4) (set 5)", + "sc4cnfrg", "Cash 'n' Fruit (Bellfruit) (Scorpion 4) (set 6)", + "sc4cnfrh", "Cash 'n' Fruit S+P98 (Bellfruit) (Scorpion 4) (set 3)", + "sc4cnfri", "Cash 'n' Fruit S+P98 (Bellfruit) (Scorpion 4) (set 4)", + "sc4colos", "Colossus (Dutch) (Bellfruit) (Scorpion 4)", + "sc4copsr", "Cops 'n' Robbers (Bellfruit) (Scorpion 4) (set 1)", + "sc4copsra", "Cops 'n' Robbers (Bellfruit) (Scorpion 4) (set 2)", + "sc4copsrb", "Cops 'n' Robbers (Bellfruit) (Scorpion 4) (set 3)", + "sc4copsrc", "Cops 'n' Robbers (Bellfruit) (Scorpion 4) (set 4)", + "sc4copsrd", "Cops 'n' Robbers (Bellfruit) (Scorpion 4) (set 5)", + "sc4copsre", "Cops 'n' Robbers (Bellfruit) (Scorpion 4) (set 6)", + "sc4copsrf", "Cops 'n' Robbers (Bellfruit) (Scorpion 4) (set 7)", + "sc4copsrg", "Cops 'n' Robbers (Bellfruit) (Scorpion 4) (set 8)", + "sc4copsrh", "Cops 'n' Robbers (Bellfruit) (Scorpion 4) (set 9)", + "sc4copsri", "Cops 'n' Robbers (Bellfruit) (Scorpion 4) (set 10)", + "sc4corcl", "Coronation Street Club (Mazooma) (Scorpion 4) (set 1)", + "sc4corcla", "Coronation Street Club (Mazooma) (Scorpion 4) (set 2)", + "sc4coro", "Coronation Street (PR2252) (Mazooma) (Scorpion 4) (set 1)", + "sc4coroa", "Coronation Street (PR2252) (Mazooma) (Scorpion 4) (set 2)", + "sc4coroc", "Coronation Street Triple (Arcade Version 012) (PR2249) (Mazooma) (Scorpion 4) (set 1)", + "sc4corod", "Coronation Street Triple (PR2249) (Mazooma) (Scorpion 4) (set 1)", + "sc4corof", "Coronation Street (PR2252) (Mazooma) (Scorpion 4) (set 3)", + "sc4corog", "Coronation Street (PR2252) (Mazooma) (Scorpion 4) (set 4)", + "sc4coroh", "Coronation Street Triple (Arcade Version 012) (PR2249) (Mazooma) (Scorpion 4) (set 2)", + "sc4coroi", "Coronation Street Triple (PR2249) (Mazooma) (Scorpion 4) (set 2)", + "sc4coroj", "Coronation Street (PR2252) (Mazooma) (Scorpion 4) (set 5)", + "sc4corok", "Coronation Street (PR2252) (Mazooma) (Scorpion 4) (set 6)", + "sc4corol", "Coronation Street (PR2252) (Mazooma) (Scorpion 4) (set 7)", + "sc4corom", "Coronation Street (PR2252) (Mazooma) (Scorpion 4) (set 8)", + "sc4coron", "Coronation Street Triple (Bingo Version ?1) (PR2?4?) (Mazooma) (Scorpion 4)", + "sc4corotb", "Coronation Street Triple Top Box (PR2526, CSTB) (Mazooma) (Scorpion 4) (Top Box, set 1)", + "sc4corotba", "Coronation Street Triple Top Box (PR2526, CSTB) (Mazooma) (Scorpion 4) (Top Box, set 2)", + "sc4count", "Countdown (Bellfruit) (Scorpion 4) (set 1)", + "sc4counta", "Countdown (Bellfruit) (Scorpion 4) (set 2)", + "sc4cr", "Cash Raker (Qps) (Scorpion 4) (set 1)", + "sc4cra", "Cash Raker (Qps) (Scorpion 4) (set 2)", + "sc4crb", "Cash Raker (Qps) (Scorpion 4) (set 3)", + "sc4crc", "Cash Raker (V2.1) (Qps) (Scorpion 4) (set 1)", + "sc4crcc", "Cops 'n' Robbers Club Classic (Bellfruit) (Scorpion 4) (set 1)", + "sc4crcca", "Cops 'n' Robbers Club Classic (Bellfruit) (Scorpion 4) (set 2)", + "sc4crccb", "Cops 'n' Robbers Club Classic (65%) (Bellfruit) (Scorpion 4) (set 1)", + "sc4crccc", "Cops 'n' Robbers Club Classic (65%) (Bellfruit) (Scorpion 4) (set 2)", + "sc4crcl", "Cash Raker Club (V1.0) (Qps) (Scorpion 4) (set 1)", + "sc4crcla", "Cash Raker Club (V1.1) (Qps) (Scorpion 4) (set 1)", + "sc4crclb", "Cash Raker Club (V1.0) (Qps) (Scorpion 4) (set 2)", + "sc4crclc", "Cash Raker Club (V1.1) (Qps) (Scorpion 4) (set 2)", + "sc4crcld", "Cash Raker Club (V1.3) (Qps) (Scorpion 4)", + "sc4crcle", "Cash Raker Club (411) (Qps) (Scorpion 4) (set 1)", + "sc4crclf", "Cash Raker Club (411) (Qps) (Scorpion 4) (set 2)", + "sc4crcp", "Cops 'n' Robbers Club Platinum (Bellfruit) (Scorpion 4) (set 1)", + "sc4crcpa", "Cops 'n' Robbers Club Platinum (Bellfruit) (Scorpion 4) (set 2)", + "sc4crcpc", "Cops 'n' Robbers Club Platinum (Bellfruit) (Scorpion 4) (set 3)", + "sc4crcpd", "Cops 'n' Robbers Club Platinum (Bellfruit) (Scorpion 4) (set 4)", + "sc4crcpe", "Cops 'n' Robbers Club Platinum (Bellfruit) (Scorpion 4) (set 5)", + "sc4crcpf", "Cops 'n' Robbers Club Platinum (Bellfruit) (Scorpion 4) (set 6)", + "sc4crcpg", "Cops 'n' Robbers Club Platinum (Bellfruit) (Scorpion 4) (set 7)", + "sc4crcph", "Cops 'n' Robbers Club Platinum (Bellfruit) (Scorpion 4) (set 8)", + "sc4crcpi", "Cops 'n' Robbers Club Platinum (Bellfruit) (Scorpion 4) (set 9)", + "sc4crcpj", "Cops 'n' Robbers Club Platinum (Bellfruit) (Scorpion 4) (set 10)", + "sc4crd", "Cash Raker (V2.2) (Qps) (Scorpion 4) (set 1)", + "sc4cre", "Cash Raker (V2.1) (Qps) (Scorpion 4) (set 2)", + "sc4crf", "Cash Raker (V2.2) (Qps) (Scorpion 4) (set 2)", + "sc4crgc", "Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 1)", + "sc4crgca", "Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 2)", + "sc4crgcb", "Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 3)", + "sc4crgcc", "Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 4)", + "sc4crgcd", "Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 5)", + "sc4crgce", "Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 6)", + "sc4crgcf", "Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 7)", + "sc4crgcg", "Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 8)", + "sc4crgch", "Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 9)", + "sc4crgci", "Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 10)", + "sc4crgcj", "Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 11)", + "sc4crgck", "Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 12)", + "sc4crgcl", "Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 13)", + "sc4crgcm", "Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 14)", + "sc4crgcn", "Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 19)", + "sc4crgco", "Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 15)", + "sc4crgcp", "Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 20)", + "sc4crgcq", "Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 16)", + "sc4crgcr", "Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 21)", + "sc4crgcs", "Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 23)", + "sc4crgct", "Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 17)", + "sc4crgcu", "Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 22)", + "sc4crgcv", "Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 24)", + "sc4crgcw", "Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 18)", + "sc4crnjw", "Crown Jewels (Bellfruit) (Scorpion 4) (set 1)", + "sc4crnjwa", "Crown Jewels (Bellfruit) (Scorpion 4) (set 2)", + "sc4crsc", "Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 4) (set 1)", + "sc4crsca", "Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 4) (set 2)", + "sc4crscb", "Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 4) (set 3)", + "sc4crscc", "Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 4) (set 4)", + "sc4crscd", "Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 4) (set 5)", + "sc4crsce", "Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 4) (set 6)", + "sc4crscf", "Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 4) (set 7)", + "sc4crscg", "Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 4) (set 8)", + "sc4crzcs", "Crazy Casino SP98 (Bellfruit) (Scorpion 4) (set 1)", + "sc4crzcsa", "Crazy Casino SP98 (Bellfruit) (Scorpion 4) (set 2)", + "sc4crzcsb", "Crazy Casino SP98 (Bellfruit) (Scorpion 4) (set 3)", + "sc4crzcsc", "Crazy Casino SP98 (Bellfruit) (Scorpion 4) (set 4)", + "sc4crzgn", "Crazy Gang (Bellfruit) (Scorpion 4) (set 1, Top Box)", + "sc4crzgn0", "Crazy Gang (Bellfruit) (Scorpion 4) (set 18)", + "sc4crzgn1", "Crazy Gang (Bellfruit) (Scorpion 4) (set 19)", + "sc4crzgn2", "Crazy Gang (Bellfruit) (Scorpion 4) (set 20)", + "sc4crzgn3", "Crazy Gang Arcade (Bellfruit) (Scorpion 4) (set 7)", + "sc4crzgn4", "Crazy Gang Arcade (Bellfruit) (Scorpion 4) (set 8)", + "sc4crzgn5", "Crazy Gang Arcade (Bellfruit) (Scorpion 4) (set 9)", + "sc4crzgn6", "Crazy Gang Arcade (Bellfruit) (Scorpion 4) (set 10)", + "sc4crzgn7", "Crazy Gang Arcade (Bellfruit) (Scorpion 4) (set 11)", + "sc4crzgn8", "Crazy Gang Arcade (Bellfruit) (Scorpion 4) (set 12)", + "sc4crzgna", "Crazy Gang (Bellfruit) (Scorpion 4) (set 1)", + "sc4crzgnb", "Crazy Gang (Bellfruit) (Scorpion 4) (set 2, Top Box)", + "sc4crzgnc", "Crazy Gang (Bellfruit) (Scorpion 4) (set 2)", + "sc4crzgnd", "Crazy Gang (Bellfruit) (Scorpion 4) (set 3)", + "sc4crzgne", "Crazy Gang (Bellfruit) (Scorpion 4) (set 4)", + "sc4crzgnf", "Crazy Gang (Bellfruit) (Scorpion 4) (set 5)", + "sc4crzgng", "Crazy Gang (Bellfruit) (Scorpion 4) (set 3, Top Box)", + "sc4crzgnh", "Crazy Gang (Bellfruit) (Scorpion 4) (set 6)", + "sc4crzgni", "Crazy Gang (Bellfruit) (Scorpion 4) (set 7)", + "sc4crzgnj", "Crazy Gang (Bellfruit) (Scorpion 4) (set 4, Top Box)", + "sc4crzgnk", "Crazy Gang (Bellfruit) (Scorpion 4) (set 8)", + "sc4crzgnl", "Crazy Gang (Bellfruit) (Scorpion 4) (set 9)", + "sc4crzgnm", "Crazy Gang (Bellfruit) (Scorpion 4) (set 10)", + "sc4crzgnn", "Crazy Gang (Bellfruit) (Scorpion 4) (set 11)", + "sc4crzgno", "Crazy Gang (Bellfruit) (Scorpion 4) (set 12)", + "sc4crzgnp", "Crazy Gang (Bellfruit) (Scorpion 4) (set 13)", + "sc4crzgnq", "Crazy Gang (Bellfruit) (Scorpion 4) (set 14)", + "sc4crzgnr", "Crazy Gang Arcade (Bellfruit) (Scorpion 4) (set 1)", + "sc4crzgns", "Crazy Gang Arcade (Bellfruit) (Scorpion 4) (set 2)", + "sc4crzgnt", "Crazy Gang Arcade (Bellfruit) (Scorpion 4) (set 3)", + "sc4crzgnu", "Crazy Gang Arcade (Bellfruit) (Scorpion 4) (set 4)", + "sc4crzgnv", "Crazy Gang Arcade (Bellfruit) (Scorpion 4) (set 5)", + "sc4crzgnw", "Crazy Gang Arcade (Bellfruit) (Scorpion 4) (set 6)", + "sc4crzgnx", "Crazy Gang (Bellfruit) (Scorpion 4) (set 15)", + "sc4crzgny", "Crazy Gang (Bellfruit) (Scorpion 4) (set 16)", + "sc4crzgnz", "Crazy Gang (Bellfruit) (Scorpion 4) (set 17)", + "sc4crzky", "Casino Crazy Keys (Bellfruit) (Scorpion 4) (set 1)", + "sc4crzkya", "Casino Crazy Keys (Bellfruit) (Scorpion 4) (set 2)", + "sc4crzkyb", "Casino Crazy Keys (Bellfruit) (Scorpion 4) (set 3)", + "sc4crzkyc", "Casino Crazy Keys (Bellfruit) (Scorpion 4) (set 4)", + "sc4crzkyd", "Casino Crazy Keys (Bellfruit) (Scorpion 4) (set 5)", + "sc4crzkye", "Casino Crazy Keys (Bellfruit) (Scorpion 4) (set 6)", + "sc4crzkyf", "Casino Crazy Keys (Bellfruit) (Scorpion 4) (set 7)", + "sc4crzkyg", "Casino Crazy Keys (Bellfruit) (Scorpion 4) (set 8)", + "sc4crzkyh", "Casino Crazy Keys (Bellfruit) (Scorpion 4) (set 9)", + "sc4crzkyi", "Casino Crazy Keys Arcade (Bellfruit) (Scorpion 4) (set 1)", + "sc4crzkyj", "Casino Crazy Keys Arcade (Bellfruit) (Scorpion 4) (set 2)", + "sc4crzkyk", "Casino Crazy Keys Arcade (Bellfruit) (Scorpion 4) (set 3)", + "sc4crzkyl", "Casino Crazy Keys (Bellfruit) (Scorpion 4) (set 10)", + "sc4crzkym", "Casino Crazy Keys (Bellfruit) (Scorpion 4) (set 11)", + "sc4crzkyn", "Casino Crazy Keys (Bellfruit) (Scorpion 4) (set 12)", + "sc4crzkyo", "Casino Crazy Keys Arcade (Bellfruit) (Scorpion 4) (set 4)", + "sc4crzkyp", "Casino Crazy Keys Arcade (Bellfruit) (Scorpion 4) (set 5)", + "sc4crzkyq", "Casino Crazy Keys Arcade (Bellfruit) (Scorpion 4) (set 6)", + "sc4crzkyr", "Casino Crazy Keys Arcade (Bellfruit) (Scorpion 4) (set 7)", + "sc4crzkys", "Casino Crazy Keys Arcade (Bellfruit) (Scorpion 4) (set 8)", + "sc4crzkyt", "Casino Crazy Keys (Bellfruit) (Scorpion 4) (set 13)", + "sc4crzkyu", "Casino Crazy Keys (Bellfruit) (Scorpion 4) (set 14)", + "sc4crzkyv", "Casino Crazy Keys Arcade (Bellfruit) (Scorpion 4) (set 9)", + "sc4crzkyw", "Casino Crazy Keys Arcade (Bellfruit) (Scorpion 4) (set 10)", + "sc4crzwl", "Crazy World (Mazooma) (Scorpion 4) (set 1)", + "sc4crzwla", "Crazy World (Mazooma) (Scorpion 4) (set 2)", + "sc4crzwlb", "Crazy World (Mazooma) (Scorpion 4) (set 3)", + "sc4crzwlc", "Crazy World (Mazooma) (Scorpion 4) (set 4)", + "sc4crzwld", "Crazy World (Mazooma) (Scorpion 4) (set 5)", + "sc4crzwle", "Crazy World (Mazooma) (Scorpion 4) (set 6)", + "sc4crzwlf", "Crazy World (Mazooma) (Scorpion 4) (set 7)", + "sc4crzwlg", "Crazy World (Mazooma) (Scorpion 4) (set 8)", + "sc4ctl", "Cop The Lot (Bellfruit) (Scorpion 4) (set 1)", + "sc4ctla", "Cop The Lot (Bellfruit) (Scorpion 4) (set 2)", + "sc4ctlb", "Cop The Lot (Bellfruit) (Scorpion 4) (set 3)", + "sc4ctlc", "Cop The Lot (Bellfruit) (Scorpion 4) (set 4)", + "sc4ctlcl", "Cop The Lot Club (Bellfruit) (Scorpion 4) (set 1)", + "sc4ctlcla", "Cop The Lot Club (Bellfruit) (Scorpion 4) (set 2)", + "sc4ctlclb", "Cop The Lot Club (Bellfruit) (Scorpion 4) (set 3)", + "sc4ctlclc", "Cop The Lot Club (Bellfruit) (Scorpion 4) (set 4)", + "sc4ctld", "Cop The Lot (Bellfruit) (Scorpion 4) (set 5)", + "sc4ctle", "Cop The Lot (Bellfruit) (Scorpion 4) (set 6)", + "sc4cvani", "Cashvania (Qps) (Scorpion 4) (set 1)", + "sc4cvania", "Cashvania (Qps) (Scorpion 4) (set 2)", + "sc4cvanib", "Cashvania (Qps) (Scorpion 4) (set 3)", + "sc4cvanic", "Cashvania (Qps) (Scorpion 4) (set 4)", + "sc4cvanid", "Cashvania (Qps) (Scorpion 4) (set 5)", + "sc4cvanie", "Cashvania (Qps) (Scorpion 4) (set 6)", + "sc4cvanif", "Cashvania (Qps) (Scorpion 4) (set 7)", + "sc4cvanig", "Cashvania (Qps) (Scorpion 4) (set 8)", + "sc4cvanih", "Cashvania (Qps) (Scorpion 4) (set 9)", + "sc4cvanii", "Cashvania (Qps) (Scorpion 4) (set 10)", + "sc4cvclb", "Cashvania Club (V1.0) (Qps) (Scorpion 4) (set 1)", + "sc4cvclba", "Cashvania Club (V1.0) (Qps) (Scorpion 4) (set 2)", + "sc4cvclbb", "Cashvania Club (V2.0) (Qps) (Scorpion 4) (set 1)", + "sc4cvclbc", "Cashvania Club (V1.0) (Qps) (Scorpion 4) (set 3)", + "sc4cvclbd", "Cashvania Club (V1.0) (Qps) (Scorpion 4) (set 4)", + "sc4cvclbe", "Cashvania Club (V2.0) (Qps) (Scorpion 4) (set 2)", + "sc4cvclbf", "Cashvania Club (V411) (Qps) (Scorpion 4) (set 1)", + "sc4cvclbg", "Cashvania Club (V411) (Qps) (Scorpion 4) (set 2)", + "sc4cyc", "Count Yer Cash (Mazooma) (Scorpion 4) (set 1)", + "sc4cyca", "Count Yer Cash (Mazooma) (Scorpion 4) (set 2)", + "sc4cycb", "Count Yer Cash (Mazooma) (Scorpion 4) (set 3)", + "sc4cycc", "Count Yer Cash (Mazooma) (Scorpion 4) (set 4)", + "sc4cyccl", "Count Yer Cash Club (Mazooma) (Scorpion 4) (set 1)", + "sc4cyccla", "Count Yer Cash Club (Mazooma) (Scorpion 4) (set 2)", + "sc4cycclb", "Count Yer Cash Club (Mazooma) (Scorpion 4) (set 3)", + "sc4cycclc", "Count Yer Cash Club (Mazooma) (Scorpion 4) (set 4)", + "sc4cycd", "Count Yer Cash (Mazooma) (Scorpion 4) (set 5)", + "sc4czfr", "Crazy Fruits (Germany?) (PR6982, GCRF, 1.02) (Bellfruit) (Scorpion 4)", + "sc4czfra", "Crazy Fruits (Dutch) (PR1212, CRAZ) (Bellfruit) (Scorpion 4)", + "sc4czfrb", "Crazy Fruits (PR6813, CRFR) (BFM) (Scorpion 4) (set 1)", + "sc4czfrc", "Crazy Fruits (PR6813, CCAS) (Qps) (Scorpion 4) (set 2)", + "sc4czfrd", "Crazy Fruits (Germany?) (PR6982, GCRF) (Bellfruit) (Scorpion 4)", + "sc4czfre", "Crazy Fruits (PR6813, CRFR) (BFM) (Scorpion 4) (set 2)", + "sc4czfrf", "Crazy Fruits (PR6813, CRFR) (BFM + Whitbread) (Scorpion 4) (set 1)", + "sc4czfrg", "Crazy Fruits (PR6813, CRFR) (BFM) (Scorpion 4) (set 3)", + "sc4czfrh", "Crazy Fruits (PR6813, CRFR) (BFM) (Scorpion 4) (set 4)", + "sc4czfri", "Crazy Fruits (PR6813, CRFR) (BFM + Whitbread) (Scorpion 4) (set 2)", + "sc4czfrj", "Crazy Fruits (PR6813, CRFR) (BFM) (Scorpion 4) (set 5)", + "sc4czfrk", "Crazy Fruits (PR6813, CRFR) (BFM) (Scorpion 4) (set 6)", + "sc4darw", "Dough & Arrow (Qps) (Scorpion 4) (set 1)", + "sc4darwa", "Dough & Arrow (Qps) (Scorpion 4) (set 2)", + "sc4darwb", "Dough & Arrow (Qps) (Scorpion 4) (set 3)", + "sc4darwc", "Dough & Arrow (Qps) (Scorpion 4) (set 4)", + "sc4daylt", "Daylight Robbery (Bellfruit) (Scorpion 4) (set 1)", + "sc4daylta", "Daylight Robbery (Bellfruit) (Scorpion 4) (set 2)", + "sc4dayltb", "Daylight Robbery (Bellfruit) (Scorpion 4) (set 3)", + "sc4dayltc", "Daylight Robbery (Bellfruit) (Scorpion 4) (set 4)", + "sc4dayltd", "Daylight Robbery SP98 (Bellfruit) (Scorpion 4) (set 1)", + "sc4daylte", "Daylight Robbery SP98 (Bellfruit) (Scorpion 4) (set 2)", + "sc4dayltf", "Daylight Robbery SP98 (Bellfruit) (Scorpion 4) (set 3)", + "sc4dayltg", "Daylight Robbery (Bellfruit) (Scorpion 4) (set 5)", + "sc4daylth", "Daylight Robbery (Bellfruit) (Scorpion 4) (set 6)", + "sc4daylti", "Daylight Robbery (Bellfruit) (Scorpion 4) (set 7)", + "sc4dayltj", "Daylight Robbery (Bellfruit) (Scorpion 4) (set 8)", + "sc4dayltk", "Daylight Robbery SP98 (Bellfruit) (Scorpion 4) (set 4)", + "sc4dayltl", "Daylight Robbery SP98 (Bellfruit) (Scorpion 4) (set 5)", + "sc4dayltm", "Daylight Robbery SP98 (Bellfruit) (Scorpion 4) (set 6)", + "sc4db", "Gold Fever (Mazooma) (Scorpion 4) (set 4)", + "sc4dbldm", "Double Diamond (Qps) (Scorpion 4)", + "sc4dblfr", "Double Frenzy (PR7060) (Qps) (Scorpion 4) (set 1)", + "sc4dblfra", "Double Frenzy (PR7060) (Qps) (Scorpion 4) (set 2)", + "sc4dblfrb", "Double Frenzy (PR7060) (Qps) (Scorpion 4) (set 3)", + "sc4dblfrc", "Double Frenzy (PR7060) (Qps) (Scorpion 4) (set 4)", + "sc4dblfrd", "Double Frenzy (PR2276) (212) (Qps) (Scorpion 4) (set 1)", + "sc4dblfre", "Double Frenzy (PR2276) (212) (Qps) (Scorpion 4) (set 2)", + "sc4dcrls", "Double Crazy Reels (021) (Mazooma) (Scorpion 4) (set 1)", + "sc4dcrlsa", "Double Crazy Reels (031) (Mazooma) (Scorpion 4) (set 1)", + "sc4dcrlsb", "Double Crazy Reels (022) (Mazooma) (Scorpion 4) (set 1)", + "sc4dcrlsc", "Double Crazy Reels (032) (Mazooma) (Scorpion 4) (set 1)", + "sc4dcrlsd", "Double Crazy Reels (023) (Mazooma) (Scorpion 4) (set 1)", + "sc4dcrlse", "Double Crazy Reels (033) (Mazooma) (Scorpion 4) (set 1)", + "sc4dcrlsf", "Double Crazy Reels (021) (Mazooma) (Scorpion 4) (set 2)", + "sc4dcrlsg", "Double Crazy Reels (031) (Mazooma) (Scorpion 4) (set 2)", + "sc4dcrlsh", "Double Crazy Reels (022) (Mazooma) (Scorpion 4) (set 2)", + "sc4dcrlsi", "Double Crazy Reels (032) (Mazooma) (Scorpion 4) (set 2)", + "sc4dcrlsj", "Double Crazy Reels (023) (Mazooma) (Scorpion 4) (set 2)", + "sc4dcrlsk", "Double Crazy Reels (033) (Mazooma) (Scorpion 4) (set 2)", + "sc4ddosh", "Doctor Dosh (Bellfruit) (Scorpion 4) (set 1)", + "sc4ddosha", "Doctor Dosh (Bellfruit) (Scorpion 4) (set 2)", + "sc4ddoshb", "Doctor Dosh (Bellfruit) (Scorpion 4) (set 3)", + "sc4ddoshc", "Doctor Dosh (Bellfruit) (Scorpion 4) (set 4)", + "sc4ddoshd", "Doctor Dosh (Bellfruit) (Scorpion 4) (set 5)", + "sc4ddoshe", "Doctor Dosh (Bellfruit) (Scorpion 4) (set 6)", + "sc4ddoshf", "Doctor Dosh (Bellfruit) (Scorpion 4) (set 11)", + "sc4ddoshg", "Doctor Dosh (Bellfruit) (Scorpion 4) (set 12)", + "sc4ddoshh", "Doctor Dosh (Bellfruit) (Scorpion 4) (set 13)", + "sc4ddoshi", "Doctor Dosh (Bellfruit) (Scorpion 4) (set 14)", + "sc4ddoshj", "Doctor Dosh (Bellfruit) (Scorpion 4) (set 15)", + "sc4ddoshk", "Doctor Dosh (Bellfruit) (Scorpion 4) (set 16)", + "sc4ddoshl", "Doctor Dosh (Bellfruit) (Scorpion 4) (set 7)", + "sc4ddoshm", "Doctor Dosh (Bellfruit) (Scorpion 4) (set 8)", + "sc4ddoshn", "Doctor Dosh (Bellfruit) (Scorpion 4) (set 9)", + "sc4ddosho", "Doctor Dosh (Bellfruit) (Scorpion 4) (set 10)", + "sc4deepi", "Deep Impact (Mazooma) (Scorpion 4) (set 1)", + "sc4deepia", "Deep Impact (Mazooma) (Scorpion 4) (set 2)", + "sc4deepib", "Deep Impact (Mazooma) (Scorpion 4) (set 3)", + "sc4deepid", "Deep Impact (Mazooma) (Scorpion 4) (set 4)", + "sc4derby", "Demolition Derby (Bellfruit) (Scorpion 4) (set 1)", + "sc4derbya", "Demolition Derby (Bellfruit) (Scorpion 4) (set 2)", + "sc4derbyb", "Demolition Derby (Bellfruit) (Scorpion 4) (set 3)", + "sc4derbyc", "Demolition Derby (Bellfruit) (Scorpion 4) (set 4)", + "sc4derbyd", "Demolition Derby (Bellfruit) (Scorpion 4) (set 5)", + "sc4derbye", "Demolition Derby (Bellfruit) (Scorpion 4) (set 6)", + "sc4dhh", "Dough Ho Ho (Bellfruit) (Scorpion 4) (set 1)", + "sc4dhha", "Dough Ho Ho (Bellfruit) (Scorpion 4) (set 2)", + "sc4dhhb", "Dough Ho Ho (Bellfruit) (Scorpion 4) (set 3)", + "sc4dhhc", "Dough Ho Ho (Bellfruit) (Scorpion 4) (set 4)", + "sc4dhhd", "Dough Ho Ho (Bellfruit) (Scorpion 4) (set 5)", + "sc4dhhe", "Dough Ho Ho (Bellfruit) (Scorpion 4) (set 6)", + "sc4disco", "Disco Inferno (Mazooma) (Scorpion 4) (set 1)", + "sc4discoa", "Disco Inferno (Mazooma) (Scorpion 4) (set 3)", + "sc4discob", "Disco Inferno (Mazooma) (Scorpion 4) (set 2)", + "sc4discoc", "Disco Inferno (Mazooma) (Scorpion 4) (set 4)", + "sc4discod", "Disco Inferno (Mazooma) (Scorpion 4) (set 5)", + "sc4dmine", "Diamond Mine (Bellfruit) (Scorpion 4) (set 1)", + "sc4dminea", "Diamond Mine (Bellfruit) (Scorpion 4) (set 2)", + "sc4dmineb", "Diamond Mine (Bellfruit) (Scorpion 4) (set 3)", + "sc4dminec", "Diamond Mine (Bellfruit) (Scorpion 4) (set 4)", + "sc4dmined", "Diamond Mine (Bellfruit) (Scorpion 4) (set 5)", + "sc4dminee", "Diamond Mine (Bellfruit) (Scorpion 4) (set 6)", + "sc4dnd", "Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL016, set 1)", + "sc4dnda", "Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL422, set 2)", + "sc4dndb", "Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL016, set 2)", + "sc4dndbb", "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (CRBE471, set 1)", + "sc4dndbba", "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (CRBE472, set 1)", + "sc4dndbbb", "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (CRBE471, set 2)", + "sc4dndbbc", "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (CRBE472, set 2)", + "sc4dndbbd", "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (CRBE473, set 1)", + "sc4dndbbe", "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (CRBE571, set 1)", + "sc4dndbbf", "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (CRBE572, set 1)", + "sc4dndbbg", "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (CRBE473, set 2)", + "sc4dndbbh", "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (CRBE571, set 2)", + "sc4dndbbi", "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (CRBE572, set 2)", + "sc4dndbc", "Deal Or No Deal Box Clever (Bellfruit) (Scorpion 4) (BOXR571, set 1)", + "sc4dndbca", "Deal Or No Deal Box Clever (Bellfruit) (Scorpion 4) (BOXR571, set 2)", + "sc4dndbd", "Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 4) (BGDA471, set 1)", + "sc4dndbda", "Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 4) (BGDA471, set 2)", + "sc4dndbdb", "Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 4) (BGDA472, set 1)", + "sc4dndbdc", "Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 4) (BGDA571, set 1)", + "sc4dndbdd", "Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 4) (BGDA472, set 2)", + "sc4dndbde", "Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 4) (BGDA571, set 2)", + "sc4dndbe", "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK012, set 1)", + "sc4dndbeb", "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK422, set 1)", + "sc4dndbec", "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK012, set 2)", + "sc4dndbed", "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK422, set 2)", + "sc4dndbee", "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK423, set 1)", + "sc4dndbef", "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK425, set 1)", + "sc4dndbeg", "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK013, set 1)", + "sc4dndbeh", "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK014, set 1)", + "sc4dndbei", "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK423, set 2)", + "sc4dndbej", "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK425, set 2)", + "sc4dndbek", "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK013, set 2)", + "sc4dndbel", "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK014, set 2)", + "sc4dndbem", "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK426, set 1)", + "sc4dndben", "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK426, set 2)", + "sc4dndbr", "Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (BIGD471, set 1)", + "sc4dndbra", "Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (BIGD472, set 1)", + "sc4dndbrb", "Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (BIGD471, set 2)", + "sc4dndbrc", "Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (BIGD472, set 2)", + "sc4dndbrd", "Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (BIGD475, set 1)", + "sc4dndbre", "Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (BIGD571, set 1)", + "sc4dndbrf", "Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (BIGD475, set 2)", + "sc4dndbrg", "Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (BIGD571, set 2)", + "sc4dndc", "Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL422, set 1)", + "sc4dndcc", "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 4) (CRZR471, set 1)", + "sc4dndcca", "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 4) (CRZR474)", + "sc4dndccb", "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 4) (CRZR471, set 2)", + "sc4dndccc", "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 4) (CRZR475, set 1)", + "sc4dndccd", "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 4) (CRZR571, set 1)", + "sc4dndcce", "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 4) (CRZR475, set 2)", + "sc4dndccf", "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 4) (CRZR571, set 2)", + "sc4dndcl", "Deal Or No Deal Club (Bellfruit) (Scorpion 4) (DNDL313, set 1)", + "sc4dndcla", "Deal Or No Deal Club (Bellfruit) (Scorpion 4) (DNDL212, set 1)", + "sc4dndclb", "Deal Or No Deal Club (Bellfruit) (Scorpion 4) (DNDL391, set 1)", + "sc4dndclc", "Deal Or No Deal Club (Bellfruit) (Scorpion 4) (DNDL181, set 1)", + "sc4dndcld", "Deal Or No Deal Club (Bellfruit) (Scorpion 4) (DNDL313, set 2)", + "sc4dndcle", "Deal Or No Deal Club (Bellfruit) (Scorpion 4) (DNDL212, set 2)", + "sc4dndclf", "Deal Or No Deal Club (Bellfruit) (Scorpion 4) (DNDL391, set 2)", + "sc4dndclg", "Deal Or No Deal Club (Bellfruit) (Scorpion 4) (DNDL181, set 2)", + "sc4dndcs", "Deal Or No Deal Classic (Bellfruit) (Scorpion 4) (CLDD211, set 1)", + "sc4dndcsa", "Deal Or No Deal Classic (Bellfruit) (Scorpion 4) (CLDD212, set 1)", + "sc4dndcsb", "Deal Or No Deal Classic (Bellfruit) (Scorpion 4) (CLDD211, set 2)", + "sc4dndcsc", "Deal Or No Deal Classic (Bellfruit) (Scorpion 4) (CLDD212, set 2)", + "sc4dndcsd", "Deal Or No Deal Classic (Bellfruit) (Scorpion 4) (CLDD215, set 1)", + "sc4dndcse", "Deal Or No Deal Classic (Bellfruit) (Scorpion 4) (CLDD215, set 2)", + "sc4dndcw", "Deal Or No Deal The Walk Of Wealth Classic (Bellfruit) (Scorpion 4) (CWOH271, set 1)", + "sc4dndcwa", "Deal Or No Deal The Walk Of Wealth Classic (Bellfruit) (Scorpion 4) (CWOH272, set 1)", + "sc4dndcwb", "Deal Or No Deal The Walk Of Wealth Classic (Bellfruit) (Scorpion 4) (CWOH271, set 2)", + "sc4dndcwc", "Deal Or No Deal The Walk Of Wealth Classic (Bellfruit) (Scorpion 4) (CWOH272, set 2)", + "sc4dndd", "Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL402, set 1)", + "sc4dnddd", "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (DDNO471, set 1)", + "sc4dnddda", "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (DDNO571, set 1)", + "sc4dndddb", "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (DDNO572, set 1)", + "sc4dndddc", "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (DDNO573, set 1)", + "sc4dndddd", "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (DDNO471, set 2)", + "sc4dnddde", "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (DDNO571, set 2)", + "sc4dndddf", "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (DDNO572, set 2)", + "sc4dndddg", "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (DDNO573, set 2)", + "sc4dnddf", "Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 4) (TDFC471, set 1)", + "sc4dnddfa", "Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 4) (TDFC471, set 2)", + "sc4dnddfb", "Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 4) (TDFC475, set 1)", + "sc4dnddfc", "Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 4) (TDFC571, set 1)", + "sc4dnddfd", "Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 4) (TDFC475, set 2)", + "sc4dnddfe", "Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 4) (TDFC571, set 2)", + "sc4dnddw", "Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (DOFN471, set 1)", + "sc4dnddwa", "Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (DOFN473, set 1)", + "sc4dnddwb", "Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (DOFN471, set 2)", + "sc4dnddwc", "Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (DOFN473, set 2)", + "sc4dnddwd", "Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (DOFN475, set 1)", + "sc4dnddwe", "Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (DOFN572, set 1)", + "sc4dnddwf", "Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (DOFN475, set 2)", + "sc4dnddwg", "Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (DOFN572, set 2)", + "sc4dnde", "Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL017, set 1)", + "sc4dndf", "Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL018, set 1)", + "sc4dndg", "Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL402, set 2)", + "sc4dndh", "Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL017, set 2)", + "sc4dndhf", "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA473, set 1)", + "sc4dndhfa", "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA473, set 2)", + "sc4dndhfb", "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA477, set 1)", + "sc4dndhfc", "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA571, set 1)", + "sc4dndhfd", "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA477, set 2)", + "sc4dndhfe", "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA571, set 2)", + "sc4dndhff", "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA471, set 1)", + "sc4dndhfg", "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA472, set 1)", + "sc4dndhfh", "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA471, set 2)", + "sc4dndhfi", "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA472, set 2)", + "sc4dndhfj", "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA476)", + "sc4dndhfk", "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA572, set 1, bad?)", + "sc4dndhfl", "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA572, set 2, bad?)", + "sc4dndi", "Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL018, set 2)", + "sc4dndj", "Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL406, set 1)", + "sc4dndk", "Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL428, set 1)", + "sc4dndl", "Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL406, set 2)", + "sc4dndlp", "Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 4) (LPDN571, set 1)", + "sc4dndlpa", "Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 4) (LPDN572, set 1)", + "sc4dndlpb", "Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 4) (LPDN573, set 1)", + "sc4dndlpc", "Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 4) (LPDN571, set 2)", + "sc4dndlpd", "Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 4) (LPDN572, set 2)", + "sc4dndlpe", "Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 4) (LPDN573, set 2)", + "sc4dndm", "Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL428, set 2)", + "sc4dndn", "Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL424, set 1)", + "sc4dndo", "Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL424, set 2)", + "sc4dndpg", "Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 4) (TPBG471, set 1)", + "sc4dndpga", "Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 4) (TPBG571, set 1)", + "sc4dndpgb", "Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 4) (TPBG572, set 1)", + "sc4dndpgc", "Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 4) (TPBG471, set 2)", + "sc4dndpgd", "Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 4) (TPGB571, set 2)", + "sc4dndpge", "Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 4) (TPGB572, set 2)", + "sc4dndra", "Deal Or No Deal Red Alert (Bellfruit) (Scorpion 4) (REDT471, set 1)", + "sc4dndraa", "Deal Or No Deal Red Alert (Bellfruit) (Scorpion 4) (REDT471, set 2)", + "sc4dndrab", "Deal Or No Deal Red Alert (Bellfruit) (Scorpion 4) (REDT474, set 1)", + "sc4dndrac", "Deal Or No Deal Red Alert (Bellfruit) (Scorpion 4) (REDT572, set 1)", + "sc4dndrad", "Deal Or No Deal Red Alert (Bellfruit) (Scorpion 4) (REDT474, set 2)", + "sc4dndrae", "Deal Or No Deal Red Alert (Bellfruit) (Scorpion 4) (REDT572, set 2)", + "sc4dndtp", "Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV411, set 1)", + "sc4dndtpa", "Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV412, set 1)", + "sc4dndtpb", "Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV413, set 1)", + "sc4dndtpc", "Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV414, set 1, bad)", + "sc4dndtpd", "Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV415, set 1)", + "sc4dndtpe", "Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV411, set 2)", + "sc4dndtpf", "Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV412, set 2)", + "sc4dndtpg", "Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV413, set 2)", + "sc4dndtph", "Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV414, set 2, bad)", + "sc4dndtpi", "Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV415, set 2)", + "sc4dndtpj", "Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV41A, set 1)", + "sc4dndtpk", "Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV41A, set 2)", + "sc4dndtpl", "Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV416, set 1)", + "sc4dndtpm", "Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV416, set 2)", + "sc4dndtr", "Deal Or No Deal Think Red (Bellfruit) (Scorpion 4) (THRE571, set 1)", + "sc4dndtra", "Deal Or No Deal Think Red (Bellfruit) (Scorpion 4) (THRE571, set 2)", + "sc4dndwb", "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (WIYX412, set 1)", + "sc4dndwba", "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (WIYX414, set 1)", + "sc4dndwbb", "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (WIYX412, set 2)", + "sc4dndwbc", "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (WIYX414, set 2)", + "sc4dndwbd", "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (WIYX415, set 1)", + "sc4dndwbe", "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (WIYX415, set 2)", + "sc4dndwbf", "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (WIYX419, set 1)", + "sc4dndwbg", "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (WIYX419, set 2)", + "sc4dndww", "Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 4) (TWOH411, set 1)", + "sc4dndwwa", "Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 4) (TWOH412, set 1)", + "sc4dndwwb", "Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 4) (TWOH411, set 2)", + "sc4dndwwc", "Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 4) (TWOH415, set 1)", + "sc4dndwwd", "Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 4) (TWOH415, set 2)", + "sc4dndwwe", "Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 4) (TWOH412, set 2)", + "sc4dndys", "Deal Or No Deal It's Your Show (Bellfruit) (Scorpion 4) (DOBO571, set 1)", + "sc4dndysa", "Deal Or No Deal It's Your Show (Bellfruit) (Scorpion 4) (DOBO474, set 1)", + "sc4dndysb", "Deal Or No Deal It's Your Show (Bellfruit) (Scorpion 4) (DOBO571, set 2)", + "sc4dndysc", "Deal Or No Deal It's Your Show (Bellfruit) (Scorpion 4) (DOBO474, set 2)", + "sc4dough", "Dough Selecta (Bellfruit) (Scorpion 4) (set 1)", + "sc4dougha", "Dough Selecta (Bellfruit) (Scorpion 4) (set 2)", + "sc4druby", "Diamonds & Rubies (Bellfruit) (Scorpion 4) (Top Box?, set 1)", + "sc4drubya", "Diamonds & Rubies (Bellfruit) (Scorpion 4) (Top Box?, set 2)", + "sc4drubyb", "Diamonds & Rubies (Bellfruit) (Scorpion 4) (Top Box?, set 3)", + "sc4drubyc", "Diamonds & Rubies (Bellfruit) (Scorpion 4) (Top Box?, set 4)", + "sc4drubyd", "Diamonds & Rubies (Bellfruit) (Scorpion 4) (Top Box?, set 5)", + "sc4duckq", "Ducks Of Hazzard (Qps) (Scorpion 4) (set 1)", + "sc4duckqa", "Ducks Of Hazzard (Qps) (Scorpion 4) (set 2)", + "sc4ducks", "Ducks Of Hazzard (Mazooma) (Scorpion 4) (set 1)", + "sc4ducksa", "Ducks Of Hazzard (Mazooma) (Scorpion 4) (set 2)", + "sc4ducksb", "Ducks Of Hazzard (Mazooma) (Scorpion 4) (set 3)", + "sc4ducksc", "Ducks Of Hazzard (Mazooma) (Scorpion 4) (set 4)", + "sc4dyna", "Dynamite (Bellfruit) (Scorpion 4) (set 1)", + "sc4dynaa", "Dynamite (Bellfruit) (Scorpion 4) (set 2)", + "sc4eascs", "Casino Easy Streak (Bellfruit) (Scorpion 4) (set 1)", + "sc4eascsa", "Casino Easy Streak (Bellfruit) (Scorpion 4) (set 2)", + "sc4eascsb", "Casino Easy Streak (Bellfruit) (Scorpion 4) (set 3)", + "sc4eascsc", "Casino Easy Streak (Bellfruit) (Scorpion 4) (set 4)", + "sc4eascsd", "Casino Easy Streak (Bellfruit) (Scorpion 4) (set 5)", + "sc4eascse", "Casino Easy Streak (Bellfruit) (Scorpion 4) (set 6)", + "sc4eascsf", "Casino Easy Streak (Bellfruit) (Scorpion 4) (set 7)", + "sc4eascsg", "Casino Easy Streak (Bellfruit) (Scorpion 4) (set 8)", + "sc4eascsh", "Casino Easy Streak (Bellfruit) (Scorpion 4) (set 9)", + "sc4eascsi", "Casino Easy Streak (Bellfruit) (Scorpion 4) (set 10)", + "sc4eascsj", "Casino Easy Streak (Bellfruit) (Scorpion 4) (set 11)", + "sc4eascsk", "Casino Easy Streak (Bellfruit) (Scorpion 4) (set 12)", + "sc4easy", "Easy Streak (Bellfruit) (Scorpion 4) (set 1)", + "sc4easya", "Easy Streak (Bellfruit) (Scorpion 4) (set 2)", + "sc4easyb", "Easy Streak (Bellfruit) (Scorpion 4) (set 3)", + "sc4easyc", "Easy Streak (Bellfruit) (Scorpion 4) (set 4)", + "sc4easyd", "Easy Streak (Bellfruit) (Scorpion 4) (set 5)", + "sc4easye", "Easy Streak (Bellfruit) (Scorpion 4) (set 6)", + "sc4easyf", "Easy Streak (Bellfruit) (Scorpion 4) (set 11)", + "sc4emmer", "Emmerdale (Mazooma) (Scorpion 4) (set 1)", + "sc4emmera", "Emmerdale (Mazooma) (Scorpion 4) (set 2)", + "sc4emmerb", "Emmerdale (Mazooma) (Scorpion 4) (set 3)", + "sc4emmerc", "Emmerdale (Mazooma) (Scorpion 4) (set 4)", + "sc4evol", "Evolution (Qps) (Scorpion 4) (set 1)", + "sc4evola", "Evolution (Qps) (Scorpion 4) (set 2)", + "sc4evolb", "Evolution (Qps) (Scorpion 4) (set 3)", + "sc4evolc", "Evolution (Qps) (Scorpion 4) (set 4)", + "sc4evold", "Evolution (Qps) (Scorpion 4) (set 5)", + "sc4evole", "Evolution (Qps) (Scorpion 4) (set 6)", + "sc4evolf", "Evolution (Qps) (Scorpion 4) (set 7)", + "sc4evolg", "Evolution (Qps) (Scorpion 4) (set 8)", + "sc4fastf", "Fast 'n' Furious (Mazooma) (Scorpion 4) (set 1)", + "sc4fastfa", "Fast 'n' Furious (Mazooma) (Scorpion 4) (set 2)", + "sc4fastfb", "Fast 'n' Furious (Mazooma) (Scorpion 4) (set 3)", + "sc4fastfc", "Fast 'n' Furious (Mazooma) (Scorpion 4) (set 4)", + "sc4fbcrz", "Football Crazy (Bellfruit) (Scorpion 4) (set 1)", + "sc4fbcrza", "Football Crazy (Bellfruit) (Scorpion 4) (set 2)", + "sc4fbcrzb", "Football Crazy (Bellfruit) (Scorpion 4) (set 3)", + "sc4fbcrzc", "Football Crazy (Bellfruit) (Scorpion 4) (set 4)", + "sc4fbcrzd", "Football Crazy (Bellfruit) (Scorpion 4) (set 5)", + "sc4fbcrze", "Football Crazy (Bellfruit) (Scorpion 4) (set 6)", + "sc4fbcrzf", "Football Crazy (Bellfruit) (Scorpion 4) (set 7)", + "sc4fbcrzg", "Football Crazy (Bellfruit) (Scorpion 4) (set 8)", + "sc4fbcrzh", "Football Crazy (Bellfruit) (Scorpion 4) (set 9)", + "sc4fbcrzi", "Football Crazy (Bellfruit) (Scorpion 4) (set 10)", + "sc4fbspn", "Fat Boy Spin (Bellfruit) (Scorpion 4) (set 1)", + "sc4fbspna", "Fat Boy Spin (Bellfruit) (Scorpion 4) (set 2)", + "sc4fbspnb", "Fat Boy Spin (Bellfruit) (Scorpion 4) (set 3)", + "sc4fbspnc", "Fat Boy Spin (Bellfruit) (Scorpion 4) (set 4)", + "sc4fcc", "Firecracker Club (Bellfruit) (Scorpion 4) (set 1)", + "sc4fcca", "Firecracker Club (Bellfruit) (Scorpion 4) (set 2)", + "sc4fccb", "Firecracker Club (Bellfruit) (Scorpion 4) (set 3)", + "sc4fccc", "Firecracker Club (Bellfruit) (Scorpion 4) (set 4)", + "sc4fd7th", "Frankie Dettori's 7th Heaven (Bellfruit) (Scorpion 4) (set 1)", + "sc4fd7tha", "Frankie Dettori's 7th Heaven (Bellfruit) (Scorpion 4) (set 2)", + "sc4fd7thb", "Frankie Dettori's 7th Heaven (Bellfruit) (Scorpion 4) (set 3)", + "sc4fd7thc", "Frankie Dettori's 7th Heaven SP98 (Bellfruit) (Scorpion 4) (set 1)", + "sc4fd7thd", "Frankie Dettori's 7th Heaven SP98 (Bellfruit) (Scorpion 4) (set 2)", + "sc4fd7the", "Frankie Dettori's 7th Heaven (Bellfruit) (Scorpion 4) (set 4)", + "sc4fd7thf", "Frankie Dettori's 7th Heaven (Bellfruit) (Scorpion 4) (set 5)", + "sc4fd7thg", "Frankie Dettori's 7th Heaven (Bellfruit) (Scorpion 4) (set 6)", + "sc4fd7thh", "Frankie Dettori's 7th Heaven SP98 (Bellfruit) (Scorpion 4) (set 3)", + "sc4fd7thi", "Frankie Dettori's 7th Heaven SP98 (Bellfruit) (Scorpion 4) (set 4)", + "sc4fevdt", "Fever (PR1202) (Dutch) (Bellfruit) (Scorpion 4) (set 1)", + "sc4fevdta", "Fever (PR1202) (Dutch) (Bellfruit) (Scorpion 4) (set 2)", + "sc4fevdtb", "Fever (PR1202) (Dutch) (Bellfruit) (Scorpion 4) (set 3)", + "sc4fever", "Fever (PR1007) (Bellfruit) (Scorpion 4) (set 1)", + "sc4fevera", "Fever (PR1007) (Bellfruit) (Scorpion 4) (set 2)", + "sc4feverb", "Fever (PR1007) (Bellfruit) (Scorpion 4) (set 3)", + "sc4feverc", "Fever (PR1007) (Bellfruit) (Scorpion 4) (set 4)", + "sc4feverd", "Fever (PR1007) (Bellfruit) (Scorpion 4) (set 5)", + "sc4fevere", "Fever (PR1007) (Bellfruit) (Scorpion 4) (set 6)", + "sc4feverf", "Fever (PR1007) (Bellfruit) (Scorpion 4) (set 7)", + "sc4feverg", "Fever (PR1007) (Bellfruit) (Scorpion 4) (set 8)", + "sc4feverh", "Fever (PR1007) (Bellfruit) (Scorpion 4) (set 9)", + "sc4feverk", "Fever (PR1007) (Bellfruit) (Scorpion 4) (set 10)", + "sc4fevnx", "Fever The Next (Dutch) (Bellfruit) (Scorpion 4) (set 1)", + "sc4fevnxa", "Fever The Next (Dutch) (Bellfruit) (Scorpion 4) (set 2)", + "sc4ffru", "Fast Fruit (Qps / Mazooma) (Scorpion 4) (set 1)", + "sc4ffrua", "Fast Fruit (Qps) (Scorpion 4) (set 1)", + "sc4ffrub", "Fast Fruit (Qps / Mazooma) (Scorpion 4) (set 2)", + "sc4ffruc", "Fast Fruit (Qps) (Scorpion 4) (set 2)", + "sc4ffrud", "Fast Fruit (Qps) (Scorpion 4) (set 3)", + "sc4ffrue", "Fast Fruit (Qps) (Scorpion 4) (set 4)", + "sc4fguy", "Family Guy (Bellfruit) (Scorpion 4) (set 1)", + "sc4fguya", "Family Guy (Bellfruit) (Scorpion 4) (set 2)", + "sc4fguyb", "Family Guy (Bellfruit) (Scorpion 4) (set 3)", + "sc4fguyc", "Family Guy (Bellfruit) (Scorpion 4) (set 4)", + "sc4fguyd", "Family Guy (Bellfruit) (Scorpion 4) (set 5)", + "sc4fguye", "Family Guy (Bellfruit) (Scorpion 4) (set 6)", + "sc4fire", "Firepower (Mazooma) (Scorpion 4) (set 1)", + "sc4firea", "Firepower (Mazooma) (Scorpion 4) (set 2)", + "sc4fmj", "Full Metal Jackpot (Mazooma) (Scorpion 4) (set 1)", + "sc4fmja", "Full Metal Jackpot (Mazooma) (Scorpion 4) (set 2)", + "sc4fmjb", "Full Metal Jackpot (Mazooma) (Scorpion 4) (set 3)", + "sc4fmjc", "Full Metal Jackpot (Mazooma) (Scorpion 4) (set 4)", + "sc4fpitc", "Fever Pitch (Bellfruit) (Scorpion 4) (set 1)", + "sc4fpitca", "Fever Pitch (Bellfruit) (Scorpion 4) (set 2)", + "sc4fpitcb", "Fever Pitch (Bellfruit) (Scorpion 4) (set 3)", + "sc4fpitcc", "Fever Pitch (Bellfruit) (Scorpion 4) (set 11)", + "sc4fpitcd", "Fever Pitch (Bellfruit) (Scorpion 4) (set 4)", + "sc4fpitce", "Fever Pitch (Bellfruit) (Scorpion 4) (set 5)", + "sc4fpitcf", "Fever Pitch (Bellfruit) (Scorpion 4) (set 6)", + "sc4fpitcg", "Fever Pitch (Bellfruit) (Scorpion 4) (set 12)", + "sc4fpitch", "Fever Pitch (Bellfruit) (Scorpion 4) (set 7)", + "sc4fpitci", "Fever Pitch (Bellfruit) (Scorpion 4) (set 8)", + "sc4fpitcj", "Fever Pitch (Bellfruit) (Scorpion 4) (set 9)", + "sc4fpitck", "Fever Pitch (Bellfruit) (Scorpion 4) (set 10)", + "sc4frboo", "Frooty Booty (Bellfruit) (Scorpion 4) (set 1)", + "sc4frbooa", "Frooty Booty (Bellfruit) (Scorpion 4) (set 2)", + "sc4frboob", "Frooty Booty (Bellfruit) (Scorpion 4) (set 3)", + "sc4frbooc", "Frooty Booty (Bellfruit) (Scorpion 4) (set 4)", + "sc4frenz", "Fruit Frenzy (Bellfruit) (Scorpion 4) (set 1)", + "sc4frenza", "Fruit Frenzy (Bellfruit) (Scorpion 4) (set 2)", + "sc4frenzb", "Fruit Frenzy (Bellfruit) (Scorpion 4) (set 3)", + "sc4frenzc", "Fruit Frenzy (Bellfruit) (Scorpion 4) (set 4)", + "sc4frenzd", "Fruit Frenzy (Bellfruit) (Scorpion 4) (set 5)", + "sc4frenze", "Fruit Frenzy (Bellfruit) (Scorpion 4) (set 6)", + "sc4frsu", "Casino Fruits 'n' Suits (Bellfruit) (Scorpion 4) (set 1)", + "sc4frsua", "Casino Fruits 'n' Suits (Bellfruit) (Scorpion 4) (set 2)", + "sc4frsub", "Casino Fruits 'n' Suits (Bellfruit) (Scorpion 4) (set 3)", + "sc4frsuc", "Casino Fruits 'n' Suits (Bellfruit) (Scorpion 4) (set 4)", + "sc4frsud", "Casino Fruits 'n' Suits (Bellfruit) (Scorpion 4) (set 5)", + "sc4frsue", "Casino Fruits 'n' Suits (Bellfruit) (Scorpion 4) (set 6)", + "sc4frsuf", "Casino Fruits 'n' Suits (Bellfruit) (Scorpion 4) (set 7)", + "sc4frsug", "Casino Fruits 'n' Suits (Bellfruit) (Scorpion 4) (set 8)", + "sc4ftopi", "Fruitopia (Qps) (Scorpion 4) (set 1)", + "sc4ftopia", "Fruitopia (Qps) (Scorpion 4) (set 2)", + "sc4ftopib", "Fruitopia (Qps) (Scorpion 4) (set 3)", + "sc4ftopic", "Fruitopia (Qps) (Scorpion 4) (set 4)", + "sc4ftopid", "Fruitopia (V2.1) (Qps) (Scorpion 4) (set 1)", + "sc4ftopie", "Fruitopia (V2.2) (Qps) (Scorpion 4) (set 1)", + "sc4ftopif", "Fruitopia (V1.1) (Qps) (Scorpion 4) (set 1)", + "sc4ftopig", "Fruitopia (V2.1) (Qps) (Scorpion 4) (set 2)", + "sc4ftopih", "Fruitopia (V2.2) (Qps) (Scorpion 4) (set 2)", + "sc4ftopii", "Fruitopia (V1.1) (Qps) (Scorpion 4) (set 2)", + "sc4fullt", "Full Throttle (011) (Qps) (Scorpion 4) (set 1)", + "sc4fullta", "Full Throttle (041) (Qps) (Scorpion 4) (set 1)", + "sc4fulltb", "Full Throttle (011) (Qps) (Scorpion 4) (set 2)", + "sc4fulltc", "Full Throttle (041) (Qps) (Scorpion 4) (set 2)", + "sc4fulltd", "Full Throttle (012) (Qps) (Scorpion 4) (set 1)", + "sc4fullte", "Full Throttle (042) (Qps) (Scorpion 4) (set 1)", + "sc4fulltf", "Full Throttle (013) (Qps) (Scorpion 4) (set 1)", + "sc4fulltg", "Full Throttle (012) (Qps) (Scorpion 4) (set 2)", + "sc4fullth", "Full Throttle (042) (Qps) (Scorpion 4) (set 2)", + "sc4fullti", "Full Throttle (013) (Qps) (Scorpion 4) (set 2)", + "sc4fwp", "Five Ways Pays (Mazooma) (Scorpion 4) (set 1)", + "sc4fwpa", "Five Ways Pays (Mazooma) (Scorpion 4) (set 2)", + "sc4fwpb", "Five Ways Pays (Mazooma) (Scorpion 4) (set 3)", + "sc4fwpc", "Five Ways Pays (Mazooma) (Scorpion 4) (set 4)", + "sc4fwpcs", "Five Ways Pays (Mazooma) (Scorpion 4) (set 5)", + "sc4fwpcsa", "Five Ways Pays (Mazooma) (Scorpion 4) (set 6)", + "sc4fwpcsb", "Five Ways Pays (Mazooma) (Scorpion 4) (set 7)", + "sc4gag", "Grab A Granny (PR7019, GRAB) (Mazooma) (Scorpion 4) (set 1)", + "sc4gaga", "Grab A Granny (PR7019, GRAN) (Mazooma) (Scorpion 4) (set 1)", + "sc4gagb", "Grab A Granny (PR7019, GRAB) (Mazooma) (Scorpion 4) (set 2)", + "sc4gagc", "Grab A Granny (PR7019, GRAN) (Mazooma) (Scorpion 4) (set 2)", + "sc4gamcs", "The Game Casino (Dutch) (Bellfruit) (Scorpion 4)", + "sc4game", "The Game (Dutch) (Bellfruit) (Scorpion 4)", + "sc4gball", "Golden Balls (Bellfruit) (Scorpion 4) (set 1)", + "sc4gballa", "Golden Balls (Bellfruit) (Scorpion 4) (set 2)", + "sc4gballb", "Golden Balls (Bellfruit) (Scorpion 4) (set 3)", + "sc4gballc", "Golden Balls (Bellfruit) (Scorpion 4) (set 4)", + "sc4gbcas", "Casino Golden Balls (Bellfruit) (Scorpion 4) (set 1)", + "sc4gbcasa", "Casino Golden Balls (Bellfruit) (Scorpion 4) (set 2)", + "sc4gbcasb", "Casino Golden Balls (Bellfruit) (Scorpion 4) (set 3)", + "sc4gbcasc", "Casino Golden Balls (Bellfruit) (Scorpion 4) (set 4)", + "sc4gcb", "Grand Blaster Cash (Mazooma) (Scorpion 4) (set 1)", + "sc4gcba", "Grand Blaster Cash (Mazooma) (Scorpion 4) (set 2)", + "sc4gcbb", "Grand Blaster Cash (Mazooma) (Scorpion 4) (set 3)", + "sc4gcbc", "Grand Blaster Cash (Mazooma) (Scorpion 4) (set 4)", + "sc4gcbd", "Grand Blaster Cash (Mazooma) (Scorpion 4) (set 5)", + "sc4gcbe", "Grand Blaster Cash (Mazooma) (Scorpion 4) (set 6)", + "sc4gcbf", "Grand Blaster Cash (Mazooma) (Scorpion 4) (set 7)", + "sc4gcbg", "Grand Blaster Cash (Mazooma) (Scorpion 4) (set 8)", + "sc4gcbh", "Grand Blaster Cash (Mazooma) (Scorpion 4) (set 9)", + "sc4gcbi", "Grand Blaster Cash (Mazooma) (Scorpion 4) (set 10)", + "sc4gcbj", "Grand Blaster Cash (Mazooma) (Scorpion 4) (set 11)", + "sc4gcclb", "Grandslam Casino (Bellfruit) (Scorpion 4) (set 1)", + "sc4gcclba", "Grandslam Casino (Bellfruit) (Scorpion 4) (set 2)", + "sc4gcclbb", "Grandslam Casino (Bellfruit) (Scorpion 4) (set 3)", + "sc4gcclbc", "Grandslam Casino (Bellfruit) (Scorpion 4) (set 4)", + "sc4gcclbd", "Grandslam Casino (Bellfruit) (Scorpion 4) (set 5)", + "sc4gcclbe", "Grandslam Casino (Bellfruit) (Scorpion 4) (set 6)", + "sc4gcclbf", "Grandslam Casino (Bellfruit) (Scorpion 4) (set 7)", + "sc4gcclbg", "Grandslam Casino (Bellfruit) (Scorpion 4) (set 8)", + "sc4gcclbh", "Grandslam Casino (Bellfruit) (Scorpion 4) (set 9)", + "sc4gcclbi", "Grandslam Casino (Bellfruit) (Scorpion 4) (set 10)", + "sc4gcclbj", "Grandslam Casino (Bellfruit) (Scorpion 4) (set 11)", + "sc4gcclbk", "Grandslam Casino (Bellfruit) (Scorpion 4) (set 12)", + "sc4gcclbl", "Grandslam Casino (Bellfruit) (Scorpion 4) (set 13)", + "sc4gcclbm", "Grandslam Casino (Bellfruit) (Scorpion 4) (set 14)", + "sc4gcclbn", "Grandslam Casino (Bellfruit) (Scorpion 4) (set 15)", + "sc4gcclbo", "Grandslam Casino (Bellfruit) (Scorpion 4) (set 17)", + "sc4gcclbp", "Grandslam Casino (Bellfruit) (Scorpion 4) (set 16)", + "sc4gcclbq", "Grandslam Casino (Bellfruit) (Scorpion 4) (set 18)", + "sc4gd", "Gold Digger (Bellfruit) (Scorpion 4) (set 1)", + "sc4gda", "Gold Digger (Bellfruit) (Scorpion 4) (set 2)", + "sc4gdb", "Gold Digger (Bellfruit) (Scorpion 4) (set 3)", + "sc4gdc", "Gold Digger (Bellfruit) (Scorpion 4) (set 4)", + "sc4gdclb", "Gold Digger Club (Bellfruit) (Scorpion 4) (set 1)", + "sc4gdclba", "Gold Digger Club (Bellfruit) (Scorpion 4) (set 2)", + "sc4gdclbb", "Gold Digger Club (Bellfruit) (Scorpion 4) (set 3)", + "sc4gdclbc", "Gold Digger Club (Bellfruit) (Scorpion 4) (set 4)", + "sc4gdclbd", "Gold Digger Club (Bellfruit) (Scorpion 4) (set 5)", + "sc4gdclbe", "Gold Digger Club (Bellfruit) (Scorpion 4) (set 6)", + "sc4gdclbf", "Gold Digger Club (Bellfruit) (Scorpion 4) (set 7)", + "sc4gdclbg", "Gold Digger Club (Bellfruit) (Scorpion 4) (set 8)", + "sc4gdclbh", "Gold Digger Club (Bellfruit) (Scorpion 4) (set 9)", + "sc4gdclbi", "Gold Digger Club (Bellfruit) (Scorpion 4) (set 10)", + "sc4gdclbj", "Gold Digger Club (Bellfruit) (Scorpion 4) (set 11)", + "sc4gdclbk", "Gold Digger Club (Bellfruit) (Scorpion 4) (set 12)", + "sc4gdd", "Gold Digger (Bellfruit) (Scorpion 4) (set 5)", + "sc4gde", "Gold Digger (Bellfruit) (Scorpion 4) (set 6)", + "sc4gdf", "Gold Digger (Bellfruit) (Scorpion 4) (set 7)", + "sc4gdg", "Gold Digger (Bellfruit) (Scorpion 4) (set 8)", + "sc4gdmz", "Golden X (Mazooma) (PR2056) (Scorpion 4) (set 3)", + "sc4gdmza", "Golden X (Mazooma) (PR2056) (Scorpion 4) (set 4)", + "sc4gfev", "Gold Fever (Mazooma) (Scorpion 4) (set 1)", + "sc4gfeva", "Gold Fever (Mazooma) (Scorpion 4) (set 2)", + "sc4gfevb", "Gold Fever (Mazooma) (Scorpion 4) (set 3)", + "sc4ggame", "Golden X (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 25GBP, set 1)", + "sc4ggame0", "Golden X (Mazooma) (PR2056) (Scorpion 4) (set 2)", + "sc4ggame1", "Golden X (Mazooma) (PR2056, newer?) (Scorpion 4) (set 7)", + "sc4ggame2", "Golden X (Mazooma) (PR2056, newer?) (Scorpion 4) (set 8)", + "sc4ggame3", "Golden X (Mazooma) (PR2056) (Scorpion 4) (GLDX, 30GBP, set 6)", + "sc4ggame4", "Golden X (Mazooma) (PR2056) (Scorpion 4) (GLDX, 30GBP, set 7)", + "sc4ggame5", "Golden X (Mazooma) (PR2056) (Scorpion 4) (GLDX, 30GBP, set 8)", + "sc4ggame6", "Golden X (Mazooma) (PR2056) (Scorpion 4) (GLDX, 30GBP, set 9)", + "sc4ggame7", "Golden X (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 35GBP, set 1)", + "sc4ggame8", "Golden X (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 35GBP, set 2)", + "sc4ggame9", "Golden X (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 35GBP, set 3)", + "sc4ggamea", "Golden X (Mazooma) (PR2056) (Scorpion 4) (GLDX, 25GBP, set 1)", + "sc4ggameaa", "Golden X (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 35GBP, set 4)", + "sc4ggameab", "Golden X (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 35GBP, set 5)", + "sc4ggameac", "Golden X (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 35GBP, set 6)", + "sc4ggamead", "Golden X (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 35GBP, set 7)", + "sc4ggameae", "Golden X (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 35GBP, set 8)", + "sc4ggameb", "Golden X (Mazooma) (PR2056) (Scorpion 4) (GLDX, 25GBP, set 2)", + "sc4ggamec", "Golden X (Mazooma) (PR2056) (Scorpion 4) (GLDX, 25GBP, set 3)", + "sc4ggamed", "Golden X (Mazooma) (PR2056) (Scorpion 4) (GLDX, 25GBP, set 4)", + "sc4ggamef", "Golden X (Mazooma) (PR2056) (Scorpion 4) (GLDX, 30GBP, set 1)", + "sc4ggameg", "Golden X (Mazooma) (PR2056) (Scorpion 4) (GLDX, 30GBP, set 2)", + "sc4ggamei", "Golden X (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 25GBP, set 2)", + "sc4ggamej", "Golden X (Mazooma) (PR2056) (Scorpion 4) (GLDX, 30GBP, set 3)", + "sc4ggamek", "Golden X (Mazooma) (PR2056) (Scorpion 4) (GLDX, 30GBP, set 4)", + "sc4ggamel", "Golden X (Mazooma) (PR2056, newer?) (Scorpion 4) (set 1)", + "sc4ggamem", "Golden X (Mazooma) (PR2056, newer?) (Scorpion 4) (set 2)", + "sc4ggamen", "Golden X (Mazooma) (PR2056) (Scorpion 4) (set 1)", + "sc4ggamep", "Golden X (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 25GBP, set 3)", + "sc4ggameq", "Golden X (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 25GBP, set 4)", + "sc4ggamer", "Golden X (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 25GBP, set 5)", + "sc4ggames", "Golden X (Mazooma) (PR2056) (Scorpion 4) (GLDX, 25GBP, set 5)", + "sc4ggamet", "Golden X (Mazooma) (PR2056) (Scorpion 4) (GLDX, 25GBP, set 6)", + "sc4ggameu", "Golden X (Mazooma) (PR2056) (Scorpion 4) (GLDX, 25GBP, set 7)", + "sc4ggamev", "Golden X (Mazooma) (PR2056) (Scorpion 4) (GLDX, 30GBP, set 5)", + "sc4ggamew", "Golden X (Mazooma) (PR2056, newer?) (Scorpion 4) (set 3)", + "sc4ggamex", "Golden X (Mazooma) (PR2056, newer?) (Scorpion 4) (set 4)", + "sc4ggamey", "Golden X (Mazooma) (PR2056, newer?) (Scorpion 4) (set 5)", + "sc4ggamez", "Golden X (Mazooma) (PR2056, newer?) (Scorpion 4) (set 6)", + "sc4ggcas", "Golden X (Mazooma) (Scorpion 4) (GLDX, set 9)", + "sc4ggcasa", "Golden X (Mazooma) (Scorpion 4) (GLDX, set 10)", + "sc4ggcasb", "Golden X (Mazooma) (Scorpion 4) (GLDX, set 11)", + "sc4ggcasc", "Golden X (Mazooma) (Scorpion 4) (GLDX, set 12)", + "sc4ggcl", "Golden Grid Club (V1.0) (Qps) (Scorpion 4)", + "sc4ggcla", "Golden Grid Club (V411) (Qps) (Scorpion 4) (set 1)", + "sc4ggclb", "Golden Grid Club (V411) (Qps) (Scorpion 4) (set 2)", + "sc4ggclc", "Golden Grid Club (V412) (Qps) (Scorpion 4) (set 1)", + "sc4ggcld", "Golden Grid Club (V412) (Qps) (Scorpion 4) (set 2)", + "sc4ggdlx", "Golden Game Deluxe (Mazooma) (PR2201) (Scorpion 4) (GGDX, set 1)", + "sc4ggdlxa", "Golden Game Deluxe (Mazooma) (PR2201) (Scorpion 4) (GGDX, set 3)", + "sc4ggdlxb", "Golden Game Deluxe (Mazooma) (PR2201) (Scorpion 4) (GGDX, set 4)", + "sc4ggdlxc", "Golden Game Deluxe (Mazooma) (PR2201) (Scorpion 4) (GGDX, set 2)", + "sc4ggdlxd", "Golden Game Deluxe (Mazooma) (PR2201) (Scorpion 4) (GGDX, set 5)", + "sc4ggdlxe", "Golden Game Deluxe (Mazooma) (PR2201) (Scorpion 4) (GGDX, set 6)", + "sc4ggdlxf", "Golden Game Deluxe (Mazooma) (PR2201) (Scorpion 4) (GGDX, set 7)", + "sc4ggdlxg", "Golden Game Deluxe (Mazooma) (PR2201) (Scorpion 4) (GGDX, set 8)", + "sc4ggg", "Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 1)", + "sc4gggb", "Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 2)", + "sc4gggc", "Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 3)", + "sc4gggd", "Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 4)", + "sc4ggge", "Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 5)", + "sc4gggf", "Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 6)", + "sc4gggg", "Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 13)", + "sc4gggh", "Grand Golden Game (Mazooma) (PR2353) (Scorpion 4) (GGGB, 35GBP, set 1)", + "sc4gggi", "Grand Golden Game (Mazooma) (PR2353) (Scorpion 4) (GGGB, 35GBP, set 2)", + "sc4gggk", "Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 7)", + "sc4gggl", "Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 8)", + "sc4gggm", "Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 9)", + "sc4gggn", "Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 10)", + "sc4gggo", "Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 11)", + "sc4gggp", "Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 12)", + "sc4gggq", "Grand Golden Game (Mazooma) (PR2353) (Scorpion 4) (GGGB, 35GBP, set 3)", + "sc4gggr", "Grand Golden Game (Mazooma) (PR2353) (Scorpion 4) (GGGB, 35GBP, set 4)", + "sc4gggs", "Grand Golden Game (Mazooma) (PR2353) (Scorpion 4) (GGGB, 35GBP, set 5)", + "sc4gggtb", "Grand Golden Game (Mazooma) (PR2056, GGGT) (Scorpion 4) (Top Box, set 1)", + "sc4gggtba", "Grand Golden Game (Mazooma) (PR2056, GGGT) (Scorpion 4) (Top Box, set 2)", + "sc4ggrid", "Golden Grid (V1.0) (Qps) (Scorpion 4) (set 1)", + "sc4ggrida", "Golden Grid (V1.0) (Qps) (Scorpion 4) (set 2)", + "sc4ggridb", "Golden Grid (V1.1) (Qps) (Scorpion 4) (set 1)", + "sc4ggridc", "Golden Grid (V1.1) (Qps) (Scorpion 4) (set 2)", + "sc4ggridd", "Golden Grid (V1.3) (Qps) (Scorpion 4)", + "sc4ggride", "Golden Grid (V1.0) (Qps) (Scorpion 4) (set 3)", + "sc4ggridf", "Golden Grid (V1.0) (Qps) (Scorpion 4) (set 4)", + "sc4ggridg", "Golden Grid (V1.1) (Qps) (Scorpion 4) (set 3)", + "sc4ggridh", "Golden Grid (V1.1) (Qps) (Scorpion 4) (set 4)", + "sc4ggridi", "Golden Grid (V011) (Scorpion 4) (set 1)", + "sc4ggridj", "Golden Grid (V041) (Qps) (Scorpion 4) (set 1)", + "sc4ggridk", "Golden Grid (V011) (Scorpion 4) (set 2)", + "sc4ggridl", "Golden Grid (V041) (Qps) (Scorpion 4) (set 2)", + "sc4ggridm", "Golden Grid (V012) (Qps) (Scorpion 4) (set 1)", + "sc4ggridn", "Golden Grid (V012) (Qps) (Scorpion 4) (set 2)", + "sc4ggtb", "Golden X (Mazooma) (PR2056, TBOX) (Scorpion 4) (Top Box, set 1)", + "sc4ggtba", "Golden X (Mazooma) (PR2056, TBOX) (Scorpion 4) (Top Box, set 2)", + "sc4ggtbb", "Golden X (Mazooma) (PR2056, TBOX) (Scorpion 4) (Top Box, set 3)", + "sc4ghost", "Golden Ghost (Mazooma) (Scorpion 4) (set 1)", + "sc4ghosta", "Golden Ghost (Mazooma) (Scorpion 4) (Top Box, set 1)", + "sc4ghostb", "Golden Ghost (Mazooma) (Scorpion 4) (set 2)", + "sc4ghostc", "Golden Ghost (Mazooma) (Scorpion 4) (set 3)", + "sc4ghostd", "Golden Ghost (Mazooma) (Scorpion 4) (Top Box, set 2)", + "sc4ghoste", "Golden Ghost (Mazooma) (Scorpion 4) (set 4)", + "sc4ghostf", "Golden Ghost (Mazooma) (Scorpion 4) (set 5)", + "sc4ghostg", "Golden Ghost (Mazooma) (Scorpion 4) (set 6)", + "sc4ghosth", "Golden Ghost (Mazooma) (Scorpion 4) (Top Box, set 3)", + "sc4glad", "Gladiator (Mazooma) (Scorpion 4) (set 1)", + "sc4glada", "Gladiator (Mazooma) (Scorpion 4) (set 2)", + "sc4gladb", "Gladiator (Mazooma) (Scorpion 4) (set 3)", + "sc4gladc", "Gladiator (Mazooma) (Scorpion 4) (set 4)", + "sc4gladd", "Gladiator (Mazooma) (Scorpion 4) (set 5)", + "sc4glade", "Gladiator (Mazooma) (Scorpion 4) (set 6)", + "sc4gladf", "Gladiator (Mazooma) (Scorpion 4) (set 7)", + "sc4gladg", "Gladiator (Mazooma) (Scorpion 4) (set 8)", + "sc4gldcl", "Gladiator Club (Mazooma) (Scorpion 4) (set 1)", + "sc4gldcla", "Gladiator Club (Mazooma) (Scorpion 4) (set 2)", + "sc4gnc", "Golden Game Club (Mazooma) (Scorpion 4) (GLDC, set 1)", + "sc4gnca", "Golden Game Club (Mazooma) (Scorpion 4) (GLDC, set 2)", + "sc4gncb", "Golden Game Club (Mazooma) (Scorpion 4) (GLDC, set 3)", + "sc4gncc", "Golden Game Club (Mazooma) (Scorpion 4) (GLDC, set 4)", + "sc4gncd", "Golden Game Club (Mazooma) (Scorpion 4) (GLDC, set 5)", + "sc4gnce", "Golden Game Club (Mazooma) (Scorpion 4) (GLDC, set 6)", + "sc4gocas", "Casino Golden Oldie (Mazooma) (Scorpion 4) (set 5)", + "sc4gocasa", "Casino Golden Oldie (Mazooma) (Scorpion 4) (set 6)", + "sc4goldo", "Casino Golden Oldie (Mazooma) (Scorpion 4) (set 1)", + "sc4goldoa", "Casino Golden Oldie (Mazooma) (Scorpion 4) (set 2)", + "sc4goldob", "Casino Golden Oldie (Mazooma) (Scorpion 4) (set 3)", + "sc4goldoc", "Casino Golden Oldie (Mazooma) (Scorpion 4) (set 4)", + "sc4goldw", "Golden Winner (Bellfruit) (Scorpion 4) (set 1)", + "sc4goldwa", "Golden Winner (Bellfruit) (Scorpion 4) (set 2)", + "sc4goldwb", "Golden Winner (Bellfruit) (Scorpion 4) (set 3)", + "sc4goldwc", "Golden Winner (Bellfruit) (Scorpion 4) (set 4)", + "sc4goldwd", "Golden Winner (Bellfruit) (Scorpion 4) (set 5)", + "sc4goldwe", "Golden Winner (Bellfruit) (Scorpion 4) (set 6)", + "sc4goldwf", "Golden Winner (Bellfruit) (Scorpion 4) (set 7)", + "sc4goldwg", "Golden Winner (Bellfruit) (Scorpion 4) (set 8)", + "sc4goud", "Goudkoorts (Dutch) (Bellfruit) (Scorpion 4)", + "sc4greed", "Greedy Gonzalez (Bellfruit) (Scorpion 4) (set 1)", + "sc4greeda", "Greedy Gonzalez (Bellfruit) (Scorpion 4) (set 2)", + "sc4gshot", "Golden Shot (Qps) (Scorpion 4) (set 1)", + "sc4gshota", "Golden Shot Arcade (Qps) (Scorpion 4) (set 1)", + "sc4gshotb", "Golden Shot (Qps) (Scorpion 4) (set 2)", + "sc4gshotc", "Golden Shot Arcade (Qps) (Scorpion 4) (set 2)", + "sc4gslam", "Grandslam Club (BFM) (Scorpion 4) (set 1)", + "sc4gslama", "Grandslam Club (BFM) (Scorpion 4) (set 2)", + "sc4gslamb", "Grandslam Club (BFM) (Scorpion 4) (set 3)", + "sc4gslamc", "Grandslam Club (BFM) (Scorpion 4) (set 4)", + "sc4gslamd", "Grandslam Club (BFM) (Scorpion 4) (set 5)", + "sc4gslame", "Grandslam Club (BFM) (Scorpion 4) (set 6)", + "sc4gslamf", "Grandslam Club (BFM) (Scorpion 4) (set 7)", + "sc4gunp", "Gunpowder Slot (Bellfruit) (Scorpion 4) (set 1)", + "sc4gunpa", "Gunpowder Slot (Bellfruit) (Scorpion 4) (set 2)", + "sc4gunpb", "Gunpowder Slot (Bellfruit) (Scorpion 4) (set 3)", + "sc4gunpc", "Gunpowder Slot (Bellfruit) (Scorpion 4) (set 4)", + "sc4gunpd", "Gunpowder Slot (Bellfruit) (Scorpion 4) (set 5)", + "sc4gunpe", "Gunpowder Slot (Bellfruit) (Scorpion 4) (set 6)", + "sc4gunpf", "Gunpowder Slot (Bellfruit) (Scorpion 4) (set 7)", + "sc4gunpg", "Gunpowder Slot (Bellfruit) (Scorpion 4) (set 8)", + "sc4gx", "Bar X (Mazooma) (Scorpion 4) (BARX, set 1)", + "sc4gx3", "Golden X (Mazooma) (Scorpion 4) (GLDX, set 1)", + "sc4gx3a", "Golden X (Mazooma) (Scorpion 4) (GLDX, set 2)", + "sc4gx3b", "Golden X (Mazooma) (Scorpion 4) (GLDX, set 3)", + "sc4gx3c", "Golden X (Mazooma) (Scorpion 4) (GLDX, set 4)", + "sc4gx3d", "Golden X (Mazooma) (Scorpion 4) (GLDX, set 5)", + "sc4gx3e", "Golden X (Mazooma) (Scorpion 4) (GLDX, set 6)", + "sc4gx3f", "Golden X (Mazooma) (Scorpion 4) (GLDX, set 7)", + "sc4gx3g", "Golden X (Mazooma) (Scorpion 4) (GLDX, set 8)", + "sc4gxa", "Bar X (Mazooma) (Scorpion 4) (BARX, set 8)", + "sc4gxb", "Bar X (Mazooma) (Scorpion 4) (BARX, set 9)", + "sc4gxcasa", "Bar X (Mazooma) (Scorpion 4) (BARX, set 2)", + "sc4gxcasb", "Bar X (Mazooma) (Scorpion 4) (BARX, set 3)", + "sc4gxcasc", "Bar X (Mazooma) (Scorpion 4) (BARX, set 4)", + "sc4gxcasd", "Bar X (Mazooma) (Scorpion 4) (BARX, set 5)", + "sc4gxcase", "Bar X (Mazooma) (Scorpion 4) (BARX, set 6)", + "sc4gxcasf", "Bar X (Mazooma) (Scorpion 4) (BARX, set 7)", + "sc4h6cl", "Hot Six Club (Bellfruit) (Scorpion 4) (set 1)", + "sc4h6cla", "Hot Six Club (Bellfruit) (Scorpion 4) (set 2)", + "sc4h6clb", "Hot Six Club (Bellfruit) (Scorpion 4) (set 3)", + "sc4h6clc", "Hot Six Club (Bellfruit) (Scorpion 4) (set 4)", + "sc4hapnt", "Happy Notes (Bellfruit) (Scorpion 4) (set 1)", + "sc4hapnta", "Happy Notes (Bellfruit) (Scorpion 4) (set 2)", + "sc4hapntb", "Happy Notes (Bellfruit) (Scorpion 4) (set 3)", + "sc4hapntc", "Happy Notes (Bellfruit) (Scorpion 4) (set 4)", + "sc4hapntd", "Happy Notes (Bellfruit) (Scorpion 4) (set 5)", + "sc4hapnte", "Happy Notes (Bellfruit) (Scorpion 4) (set 6)", + "sc4hdd", "Hickory Dickory Dosh (PR7016) (Mazooma) (Scorpion 4) (set 1)", + "sc4hdda", "Hickory Dickory Dosh (PR7045) (Mazooma) (Scorpion 4) (set 1)", + "sc4hddb", "Hickory Dickory Dosh (PR7045) (Mazooma) (Scorpion 4) (set 2)", + "sc4hddc", "Hickory Dickory Dosh (PR7016) (Mazooma) (Scorpion 4) (set 2)", + "sc4hddd", "Hickory Dickory Dosh (PR7016) (Mazooma) (Scorpion 4) (set 3)", + "sc4hdde", "Hickory Dickory Dosh (PR7045) (Mazooma) (Scorpion 4) (set 3)", + "sc4hddf", "Hickory Dickory Dosh (PR7045) (Mazooma) (Scorpion 4) (set 4)", + "sc4heatw", "Heatwave (Dutch) (Bellfruit) (Scorpion 4)", + "sc4hellb", "Hells Bells (PR1419) (Bellfruit) (Scorpion 4) (set 1)", + "sc4hellbb", "Hells Bells (PR1419) (Bellfruit) (Scorpion 4) (set 2)", + "sc4hellbc", "Hells Bells (PR1419) (Bellfruit) (Scorpion 4) (set 3)", + "sc4hellbd", "Hells Bells (PR1419) (Bellfruit) (Scorpion 4) (set 4)", + "sc4hellbe", "Hells Bells (PR1419) (Bellfruit) (Scorpion 4) (set 5)", + "sc4hellbf", "Hells Bells (PR1419) (Bellfruit) (Scorpion 4) (set 6)", + "sc4hellbg", "Hells Bells (PR1419) (Bellfruit) (Scorpion 4) (set 7)", + "sc4hellbh", "Hells Bells (PR1419) (Bellfruit) (Scorpion 4) (set 8)", + "sc4hellbi", "Hells Bells (PR1419) (Bellfruit) (Scorpion 4) (set 9)", + "sc4hellbj", "Hells Bells (PR1419) (Bellfruit) (Scorpion 4) (set 10)", + "sc4helld", "Hells Bells (PR1201) (Dutch) (Bellfruit) (Scorpion 4)", + "sc4helrd", "Hellraiser (Dutch) (Bellfruit) (Scorpion 4) (set 1)", + "sc4helrs", "Hellraiser (Dutch) (Bellfruit) (Scorpion 4) (set 2)", + "sc4hf", "Happy Fruits (Bellfruit) (Scorpion 4) (set 1)", + "sc4hfa", "Happy Fruits (Bellfruit) (Scorpion 4) (set 2)", + "sc4hfb", "Happy Fruits (Bellfruit) (Scorpion 4) (set 3)", + "sc4hfc", "Happy Fruits (Bellfruit) (Scorpion 4) (set 4)", + "sc4hfcl", "Happy Fruits Club (Bellfruit) (Scorpion 4) (set 1)", + "sc4hfcla", "Happy Fruits Club (Bellfruit) (Scorpion 4) (set 2)", + "sc4hfd", "Happy Fruits (Bellfruit) (Scorpion 4) (set 5)", + "sc4hfe", "Happy Fruits (Bellfruit) (Scorpion 4) (set 6)", + "sc4hff", "Happy Fruits (Bellfruit) (Scorpion 4) (set 7)", + "sc4hfg", "Happy Fruits (Bellfruit) (Scorpion 4) (set 8)", + "sc4hi5", "High 5 (Bellfruit) (Scorpion 4) (set 1)", + "sc4hi5a", "High 5 (Bellfruit / Whitbread) (Scorpion 4) (set 1)", + "sc4hi5b", "High 5 (Bellfruit) (Scorpion 4) (set 2)", + "sc4hi5c", "High 5 (Bellfruit / Whitbread) (Scorpion 4) (set 2)", + "sc4hi5d", "High 5 (Bellfruit) (Scorpion 4) (set 3)", + "sc4hi5e", "High 5 (Bellfruit / Whitbread) (Scorpion 4) (set 3)", + "sc4hi5f", "High 5 (Bellfruit) (Scorpion 4) (set 4)", + "sc4hi5g", "High 5 (Bellfruit / Whitbread) (Scorpion 4) (set 4)", + "sc4hill", "Hill Billionaire (Bellfruit) (Scorpion 4) (set 1)", + "sc4hilla", "Hill Billionaire (Bellfruit) (Scorpion 4) (set 2)", + "sc4hilo", "Hilowatha (Bellfruit) (Scorpion 4) (set 1)", + "sc4hiloa", "Hilowatha (Bellfruit) (Scorpion 4) (set 2)", + "sc4hilob", "Hilowatha (Bellfruit) (Scorpion 4) (set 3)", + "sc4hiloc", "Hilowatha (Bellfruit) (Scorpion 4) (set 4)", + "sc4hilod", "Hilowatha (Bellfruit) (Scorpion 4) (set 5)", + "sc4hiloe", "Hilowatha (Bellfruit) (Scorpion 4) (set 6)", + "sc4hilof", "Hilowatha (Bellfruit) (Scorpion 4) (set 7)", + "sc4hilog", "Hilowatha (Bellfruit) (Scorpion 4) (set 8)", + "sc4hiloh", "Hilowatha (Bellfruit) (Scorpion 4) (set 9)", + "sc4hiloi", "Hilowatha (Bellfruit) (Scorpion 4) (set 10)", + "sc4hiloj", "Hilowatha (Bellfruit) (Scorpion 4) (set 11)", + "sc4hilok", "Hilowatha (Bellfruit) (Scorpion 4) (set 12)", + "sc4himi", "High 'n' Mighty (PR2999) (Mazooma) (Scorpion 4) (set 1)", + "sc4himia", "High 'n' Mighty (PR2119) (Mazooma) (Scorpion 4) (set 1)", + "sc4himib", "High 'n' Mighty (PR2067) (Mazooma) (Scorpion 4) (set 1)", + "sc4himic", "High 'n' Mighty (PR2999) (Mazooma) (Scorpion 4) (set 2)", + "sc4himid", "High 'n' Mighty (PR2067) (Mazooma) (Scorpion 4) (set 2)", + "sc4himie", "High 'n' Mighty (PR2119) (Mazooma) (Scorpion 4) (set 2)", + "sc4himif", "High 'n' Mighty (PR2999) (Mazooma) (Scorpion 4) (set 3)", + "sc4himig", "High 'n' Mighty (PR2999) (Mazooma) (Scorpion 4) (set 4)", + "sc4himih", "High 'n' Mighty (PR2999) (Mazooma) (Scorpion 4) (set 5)", + "sc4himii", "High 'n' Mighty (PR2999) (Mazooma) (Scorpion 4) (set 6)", + "sc4hiss", "Hissing Quid (Qps) (Scorpion 4) (set 1)", + "sc4hissa", "Hissing Quid (Qps) (Scorpion 4) (set 2)", + "sc4hissb", "Hissing Quid (Qps) (Scorpion 4) (set 3)", + "sc4hissc", "Hissing Quid (Qps) (Scorpion 4) (set 4)", + "sc4hissd", "Hissing Quid (Qps) (Scorpion 4) (set 5)", + "sc4hisse", "Hissing Quid (Qps) (Scorpion 4) (set 6)", + "sc4hissf", "Hissing Quid (Qps) (Scorpion 4) (set 7)", + "sc4hissg", "Hissing Quid (Qps) (Scorpion 4) (set 8)", + "sc4hitsh", "Hit Shot (Bellfruit) (Scorpion 4) (set 1)", + "sc4hitsha", "Hit Shot (Bellfruit) (Scorpion 4) (set 2)", + "sc4hitshb", "Hit Shot (Bellfruit) (Scorpion 4) (set 3)", + "sc4hitshc", "Hit Shot (Bellfruit) (Scorpion 4) (set 4)", + "sc4hitshd", "Hit Shot (Bellfruit) (Scorpion 4) (set 5)", + "sc4hitshe", "Hit Shot (Bellfruit) (Scorpion 4) (set 6)", + "sc4hntcs", "Happy Notes Casino (Bellfruit) (Scorpion 4) (set 1)", + "sc4hntcsa", "Happy Notes Casino (Bellfruit) (Scorpion 4) (set 2)", + "sc4hntcsb", "Happy Notes Casino (Bellfruit) (Scorpion 4) (set 3)", + "sc4hntcsc", "Happy Notes Casino (Bellfruit) (Scorpion 4) (set 4)", + "sc4hntcsd", "Happy Notes Casino (Bellfruit) (Scorpion 4) (set 5)", + "sc4hntcse", "Happy Notes Casino (Bellfruit) (Scorpion 4) (set 6)", + "sc4hntcsf", "Happy Notes Casino (Bellfruit) (Scorpion 4) (set 7)", + "sc4hntcsg", "Happy Notes Casino (Bellfruit) (Scorpion 4) (set 8)", + "sc4hntcsh", "Happy Notes Casino (Bellfruit) (Scorpion 4) (set 9)", + "sc4hntcsi", "Happy Notes Casino (Bellfruit) (Scorpion 4) (set 10)", + "sc4hntcsj", "Happy Notes Casino (Bellfruit) (Scorpion 4) (set 11)", + "sc4hntcsk", "Happy Notes Casino (Bellfruit) (Scorpion 4) (set 12)", + "sc4hntcsl", "Happy Notes Casino (Bellfruit) (Scorpion 4) (set 13)", + "sc4hntcsm", "Happy Notes Casino (Bellfruit) (Scorpion 4) (set 14)", + "sc4hntcsn", "Happy Notes Casino (Bellfruit) (Scorpion 4) (set 15)", + "sc4hntcso", "Happy Notes Casino (Bellfruit) (Scorpion 4) (set 16)", + "sc4hntcsp", "Happy Notes Casino (Bellfruit) (Scorpion 4) (set 17)", + "sc4hntcsq", "Happy Notes Casino (Bellfruit) (Scorpion 4) (set 18)", + "sc4hntcsr", "Happy Notes Casino (Bellfruit) (Scorpion 4) (set 19)", + "sc4hntcss", "Happy Notes Casino (Bellfruit) (Scorpion 4) (set 20)", + "sc4holyw", "Hollywood (Bellfruit) (Scorpion 4) (set 1)", + "sc4holywa", "Hollywood (Bellfruit / Whitbread) (Scorpion 4) (set 1)", + "sc4holywb", "Hollywood (Bellfruit) (Scorpion 4) (set 2)", + "sc4holywc", "Hollywood (Bellfruit / Whitbread) (Scorpion 4) (set 2)", + "sc4hotdg", "Hot Dog (Bellfruit) (Scorpion 4) (set 1)", + "sc4hotdga", "Hot Dog (Bellfruit) (Scorpion 4) (set 2)", + "sc4hotdgb", "Hot Dog (Bellfruit) (Scorpion 4) (set 3)", + "sc4hotdgc", "Hot Dog (Bellfruit) (Scorpion 4) (set 4)", + "sc4hotpr", "Hot Property (Bellfruit) (Scorpion 4) (set 1)", + "sc4hotpra", "Hot Property (Bellfruit) (Scorpion 4) (Whitbread, set 1)", + "sc4hotprb", "Hot Property (Bellfruit) (Scorpion 4) (set 2)", + "sc4hotprc", "Hot Property (Bellfruit) (Scorpion 4) (Whitbread, set 2)", + "sc4hotprd", "Hot Property (Bellfruit) (Scorpion 4) (set 3)", + "sc4hotpre", "Hot Property (Bellfruit) (Scorpion 4) (set 4)", + "sc4hotrd", "Hot Rod (Bellfruit) (Scorpion 4) (set 1)", + "sc4hotrda", "Hot Rod (Bellfruit) (Scorpion 4) (set 2)", + "sc4hotsh", "Hot Shot (Bellfruit) (Scorpion 4) (set 1)", + "sc4hotsha", "Hot Shot (Bellfruit) (Scorpion 4) (set 2)", + "sc4hotwd", "Hot Wad (Bellfruit) (Scorpion 4) (set 1)", + "sc4hotwda", "Hot Wad (Bellfruit) (Scorpion 4) (set 2)", + "sc4hotwdb", "Hot Wad (Bellfruit) (Scorpion 4) (set 3)", + "sc4hotwdc", "Hot Wad (Bellfruit) (Scorpion 4) (set 4)", + "sc4hotwdd", "Hot Wad (Bellfruit) (Scorpion 4) (set 5)", + "sc4hotwde", "Hot Wad (Bellfruit) (Scorpion 4) (set 6)", + "sc4hyde", "Hyde & Streak (Mazooma) (Scorpion 4) (set 1)", + "sc4hydea", "Hyde & Streak (Mazooma) (Scorpion 4) (set 2)", + "sc4hydeb", "Hyde & Streak (Mazooma) (Scorpion 4) (set 3)", + "sc4hydec", "Hyde & Streak (Mazooma) (Scorpion 4) (set 4)", + "sc4hyper", "Hyperactive (Mazooma) (Scorpion 4) (set 1)", + "sc4hypera", "Hyperactive (Mazooma) (Scorpion 4) (set 2)", + "sc4ibiza", "Red Hot Ibiza (Bellfruit) (Scorpion 4) (set 1)", + "sc4ibizaa", "Red Hot Ibiza (Bellfruit) (Scorpion 4) (set 2)", + "sc4ibizab", "Red Hot Ibiza (Bellfruit) (Scorpion 4) (set 3)", + "sc4ibizac", "Red Hot Ibiza (Bellfruit) (Scorpion 4) (set 4)", + "sc4ibizad", "Red Hot Ibiza (Bellfruit) (Scorpion 4) (set 5)", + "sc4ibizae", "Red Hot Ibiza (Bellfruit) (Scorpion 4) (set 6)", + "sc4ibizaf", "Red Hot Ibiza (Bellfruit) (Scorpion 4) (set 7)", + "sc4ibizag", "Red Hot Ibiza (Bellfruit) (Scorpion 4) (set 8)", + "sc4ibizah", "Red Hot Ibiza (Bellfruit) (Scorpion 4) (set 9)", + "sc4ibizai", "Red Hot Ibiza (Bellfruit) (Scorpion 4) (set 10)", + "sc4ijclb", "Italian Job Club (Mazooma) (Scorpion 4)", + "sc4ijob", "Italian Job (Mazooma) (Scorpion 4) (set 1)", + "sc4ijoba", "Italian Job (Mazooma) (Scorpion 4) (set 2)", + "sc4ijobb", "Italian Job (Mazooma) (Scorpion 4) (set 3)", + "sc4ijobc", "Italian Job (Mazooma) (Scorpion 4) (set 4)", + "sc4ijobd", "Italian Job (Mazooma) (Scorpion 4) (set 5)", + "sc4ijobe", "Italian Job (Mazooma) (Scorpion 4) (set 6)", + "sc4ijobf", "Italian Job (Mazooma) (Scorpion 4) (set 7)", + "sc4ijobg", "Italian Job (Mazooma) (Scorpion 4) (set 8)", + "sc4ijobh", "Italian Job (Mazooma) (Scorpion 4) (set 9)", + "sc4ijobi", "Italian Job (Mazooma) (Scorpion 4) (set 10)", + "sc4ijobj", "Italian Job (Mazooma) (Scorpion 4) (set 11)", + "sc4ijobk", "Italian Job (Mazooma) (Scorpion 4) (set 12)", + "sc4ijobl", "Italian Job (Mazooma) (Scorpion 4) (set 13)", + "sc4ijobm", "Italian Job (Mazooma) (Scorpion 4) (set 14)", + "sc4inspn", "Inner Spin (Mazooma) (Scorpion 4) (set 1)", + "sc4inspna", "Inner Spin (Mazooma) (Scorpion 4) (set 2)", + "sc4ivply", "4 Play (Dutch) (Bellfruit) (Scorpion 4)", + "sc4jack", "Jack The Kipper (Mazooma) (Scorpion 4) (set 1)", + "sc4jacka", "Jack The Kipper (Mazooma) (Scorpion 4) (set 2)", + "sc4jackb", "Jack The Kipper (Mazooma) (Scorpion 4) (set 3)", + "sc4jackc", "Jack The Kipper (Mazooma) (Scorpion 4) (set 4)", + "sc4jackd", "Jack The Kipper (Mazooma) (Scorpion 4) (set 5)", + "sc4jacke", "Jack The Kipper (Mazooma) (Scorpion 4) (set 6)", + "sc4jackf", "Jack The Kipper (Mazooma) (Scorpion 4) (set 7)", + "sc4jackg", "Jack The Kipper (Mazooma) (Scorpion 4) (set 8)", + "sc4jbuck", "Jungle Bucks (Bellfruit) (Scorpion 4) (set 1)", + "sc4jbucka", "Jungle Bucks (Bellfruit) (Scorpion 4) (set 2)", + "sc4jbuckb", "Jungle Bucks (Bellfruit) (Scorpion 4) (set 3)", + "sc4jbuckc", "Jungle Bucks (Bellfruit) (Scorpion 4) (set 4)", + "sc4jbuckd", "Jungle Bucks (Bellfruit) (Scorpion 4) (set 5)", + "sc4jiggn", "Jiggery Pockery (German) (Nova) (Scorpion 4)", + "sc4jiggr", "Jiggery Pokery (Mazooma) (Scorpion 4) (set 1)", + "sc4jiggra", "Jiggery Pokery (Mazooma) (Scorpion 4) (set 2)", + "sc4jiggrb", "Jiggery Pokery (Mazooma) (Scorpion 4) (set 3)", + "sc4jiggrc", "Jiggery Pokery (Mazooma) (Scorpion 4) (set 4)", + "sc4jive", "Jive Money (PR2096) (Mazooma) (Scorpion 4)", + "sc4jivea", "Jive Money (PR2160) (Mazooma) (Scorpion 4) (set 1)", + "sc4jiveb", "Jive Money (PR2160) (Mazooma) (Scorpion 4) (set 2)", + "sc4jivec", "Jive Money (PR2160) (Mazooma) (Scorpion 4) (set 3)", + "sc4jived", "Jive Money (PR2160) (Mazooma) (Scorpion 4) (set 4)", + "sc4jjc", "Jumping Jack Cash (Mazooma) (Scorpion 4) (set 1)", + "sc4jjca", "Jumping Jack Cash (Mazooma) (Scorpion 4) (set 2)", + "sc4jjcb", "Jumping Jack Cash (Mazooma) (Scorpion 4) (set 3)", + "sc4jjcc", "Jumping Jack Cash (Mazooma) (Scorpion 4) (set 4)", + "sc4jjcd", "Jumping Jack Cash (Mazooma) (Scorpion 4) (set 5)", + "sc4jjce", "Jumping Jack Cash (Mazooma) (Scorpion 4) (set 6)", + "sc4jjcf", "Jumping Jack Cash (Mazooma) (Scorpion 4) (set 7)", + "sc4jjcg", "Jumping Jack Cash (Mazooma) (Scorpion 4) (set 8)", + "sc4jjch", "Jumping Jack Cash (Mazooma) (Scorpion 4) (set 9)", + "sc4jjci", "Jumping Jack Cash (Mazooma) (Scorpion 4) (set 10)", + "sc4jjf", "Jumping Jack Flash (PR6807) (Bellfruit) (Scorpion 4) (set 1)", + "sc4jjfa", "Jumping Jack Flash (PR6807) (Bellfruit) (Scorpion 4) (set 2)", + "sc4jjfb", "Jumping Jack Flash (PR6807) (Bellfruit) (Scorpion 4) (set 3)", + "sc4jjfc", "Jumping Jack Flash SP98 (PR4607) (Bellfruit) (Scorpion 4) (set 1)", + "sc4jjfd", "Jumping Jack Flash SP98 (PR4607) (Bellfruit) (Scorpion 4) (set 2)", + "sc4jjfe", "Jumping Jack Flash SP98 (PR4607) (Bellfruit) (Scorpion 4) (set 3)", + "sc4jjff", "Jumping Jack Flash SP98 (PR4607) (Bellfruit) (Scorpion 4) (set 4)", + "sc4jjfg", "Jumping Jack Flash (PR6807) (Bellfruit) (Scorpion 4) (set 4)", + "sc4jjfh", "Jumping Jack Flash (PR6807) (Bellfruit) (Scorpion 4) (set 5)", + "sc4jjfi", "Jumping Jack Flash (PR6807) (Bellfruit) (Scorpion 4) (set 6)", + "sc4jjfj", "Jumping Jack Flash SP98 (PR4607) (Bellfruit) (Scorpion 4) (set 5)", + "sc4jjfk", "Jumping Jack Flash SP98 (PR4607) (Bellfruit) (Scorpion 4) (set 6)", + "sc4jjfl", "Jumping Jack Flash SP98 (PR4607) (Bellfruit) (Scorpion 4) (set 7)", + "sc4jjfm", "Jumping Jack Flash SP98 (PR4607) (Bellfruit) (Scorpion 4) (set 8)", + "sc4jjok", "Jackpot Jokers (Bellfruit) (Scorpion 4) (set 1)", + "sc4jjoka", "Jackpot Jokers (Bellfruit) (Scorpion 4) (set 2)", + "sc4jjucl", "Jackpot Junction Club (Bellfruit) (Scorpion 4) (set 1)", + "sc4jjucla", "Jackpot Junction Club (Ferry) (Bellfruit) (Scorpion 4) (set 1)", + "sc4jjuclb", "Jackpot Junction Club (Bellfruit) (Scorpion 4) (set 2)", + "sc4jjuclc", "Jackpot Junction Club (Ferry) (Bellfruit) (Scorpion 4) (set 2)", + "sc4jjucld", "Jackpot Junction Club (Bellfruit) (Scorpion 4) (set 3)", + "sc4jjucle", "Jackpot Junction Club (Bellfruit) (Scorpion 4) (set 4)", + "sc4jjunc", "Jackpot Junction (Bellfruit) (Scorpion 4) (set 1)", + "sc4jjunca", "Jackpot Junction (Bellfruit) (Scorpion 4) (set 2)", + "sc4jjuncb", "Jackpot Junction (Bellfruit) (Scorpion 4) (set 3)", + "sc4jjuncc", "Jackpot Junction (Bellfruit) (Scorpion 4) (set 4)", + "sc4jjuncd", "Jackpot Junction (Bellfruit) (Scorpion 4) (set 5)", + "sc4jjunce", "Jackpot Junction (Bellfruit) (Scorpion 4) (set 6)", + "sc4jjuncf", "Jackpot Junction (Bellfruit) (Scorpion 4) (set 7)", + "sc4jjuncg", "Jackpot Junction (Bellfruit) (Scorpion 4) (set 8)", + "sc4jjunch", "Jackpot Junction (Bellfruit) (Scorpion 4) (set 9)", + "sc4jjunci", "Jackpot Junction (Bellfruit) (Scorpion 4) (set 10)", + "sc4jolly", "Jolly Jousting (Qps) (Scorpion 4) (set 1)", + "sc4jollya", "Jolly Jousting (Qps) (Scorpion 4) (set 2)", + "sc4juicy", "Juicy Jackpots Club (PR1136) (65% Ferry) (Bellfruit) (Scorpion 4) (set 1)", + "sc4juicya", "Juicy Jackpots Club (PR1123) (Bellfruit) (Scorpion 4) (set 1)", + "sc4juicyb", "Juicy Jackpots Club (PR1136) (65% Ferry) (Bellfruit) (Scorpion 4) (set 2)", + "sc4juicyc", "Juicy Jackpots Club (PR1123) (Bellfruit) (Scorpion 4) (set 2)", + "sc4juicyd", "Juicy Jackpots Club (PR1136) (Bellfruit) (Scorpion 4) (set 1)", + "sc4juicye", "Juicy Jackpots Club (PR1136) (Bellfruit) (Scorpion 4) (set 2)", + "sc4juicyf", "Juicy Jackpots Club (PR1136) (Bellfruit) (Scorpion 4) (set 3)", + "sc4juicyg", "Juicy Jackpots Club (PR1136) (Bellfruit) (Scorpion 4) (set 4)", + "sc4juicyi", "Juicy Jackpots Club (PR1136) (Bellfruit) (Scorpion 4) (311 Club, set 1)", + "sc4juicyj", "Juicy Jackpots Club (PR1136) (Bellfruit) (Scorpion 4) (311 Club, set 2)", + "sc4kalei", "Kaleidoscope (011) (Qps) (Scorpion 4) (set 1)", + "sc4kaleia", "Kaleidoscope (041) (Qps) (Scorpion 4) (set 2)", + "sc4kaleib", "Kaleidoscope (011) (Qps) (Scorpion 4) (set 3)", + "sc4kaleic", "Kaleidoscope (041) (Qps) (Scorpion 4) (set 4)", + "sc4kaleid", "Kaleidoscope (051) (Qps) (Scorpion 4) (set 1)", + "sc4kaleie", "Kaleidoscope (051) (Qps) (Scorpion 4) (set 2)", + "sc4kkong", "King Kong Cash (Mazooma) (Scorpion 4) (set 1)", + "sc4kkonga", "King Kong Cash (Mazooma) (Scorpion 4) (set 2)", + "sc4kkongb", "King Kong Cash (Mazooma) (Scorpion 4) (set 3)", + "sc4kkongc", "King Kong Cash (Mazooma) (Scorpion 4) (set 4)", + "sc4kkongd", "King Kong Cash (Mazooma) (Scorpion 4) (set 5)", + "sc4kkonge", "King Kong Cash (Mazooma) (Scorpion 4) (set 6)", + "sc4kkongf", "King Kong Cash (Mazooma) (Scorpion 4) (set 7)", + "sc4kkongg", "King Kong Cash (Mazooma) (Scorpion 4) (set 8)", + "sc4kkongh", "King Kong Cash (Mazooma) (Scorpion 4) (set 9)", + "sc4kkongi", "King Kong Cash (Mazooma) (Scorpion 4) (set 10)", + "sc4kkongj", "King Kong Cash (Mazooma) (Scorpion 4) (set 11)", + "sc4knok", "Knockout (PR7061, KOUT) (Mazooma) (Scorpion 4) (set 1)", + "sc4knoka", "Knockout (PR7061, KOUT) (Mazooma) (Scorpion 4) (set 2)", + "sc4knokb", "Knockout (PR2057, PKOT) (Mazooma) (Scorpion 4) (set 1)", + "sc4knokc", "Knockout (PR2057, PKOT) (Mazooma) (Scorpion 4) (set 2)", + "sc4lasv", "Las Vegas (Dutch) (Bellfruit) (Scorpion 4) (set 1)", + "sc4lasva", "Las Vegas (Dutch) (Bellfruit) (Scorpion 4) (set 2)", + "sc4ldcas", "Line Dancer Casino (Mazooma) (Scorpion 4) (set 1)", + "sc4ldcasa", "Line Dancer Casino (Mazooma) (Scorpion 4) (set 2)", + "sc4ldcasb", "Line Dancer Casino (Mazooma) (Scorpion 4) (set 3)", + "sc4ldcasc", "Line Dancer Casino (Mazooma) (Scorpion 4) (set 4)", + "sc4ldcasd", "Line Dancer Casino (Mazooma) (Scorpion 4) (set 5)", + "sc4ldcase", "Line Dancer Casino (Mazooma) (Scorpion 4) (set 6)", + "sc4ldvcl", "Little Devil Club (Mazooma) (Scorpion 4)", + "sc4ldvl", "Little Devil (Mazooma) (Scorpion 4) (set 1)", + "sc4ldvla", "Little Devil (Mazooma) (Scorpion 4) (set 2)", + "sc4ldvlb", "Little Devil (Mazooma) (Scorpion 4) (set 3)", + "sc4ldvlc", "Little Devil (Mazooma) (Scorpion 4) (set 4)", + "sc4leg", "Who Wants To Be A Legionnaire (Bellfruit) (Scorpion 4) (set 1)", + "sc4lega", "Who Wants To Be A Legionnaire (Bellfruit) (Scorpion 4) (set 2)", + "sc4legb", "Who Wants To Be A Legionnaire (Bellfruit) (Scorpion 4) (set 3)", + "sc4legc", "Who Wants To Be A Legionnaire (Bellfruit) (Scorpion 4) (set 4)", + "sc4legcb", "Who Wants To Be A Legionnaire Club (Bellfruit) (Scorpion 4) (set 1)", + "sc4legcba", "Who Wants To Be A Legionnaire Club (Bellfruit) (Scorpion 4) (set 2)", + "sc4legcbb", "Who Wants To Be A Legionnaire Club (Bellfruit) (Scorpion 4) (set 3)", + "sc4legcbc", "Who Wants To Be A Legionnaire Club (Bellfruit) (Scorpion 4) (set 4)", + "sc4legcbd", "Who Wants To Be A Legionnaire Club (Bellfruit) (Scorpion 4) (set 5)", + "sc4legcbe", "Who Wants To Be A Legionnaire Club (Bellfruit) (Scorpion 4) (set 6)", + "sc4legd", "Who Wants To Be A Legionnaire (Bellfruit) (Scorpion 4) (set 5)", + "sc4lege", "Who Wants To Be A Legionnaire (Bellfruit) (Scorpion 4) (set 6)", + "sc4legf", "Who Wants To Be A Legionnaire (Bellfruit) (Scorpion 4) (set 7)", + "sc4legg", "Who Wants To Be A Legionnaire (Bellfruit) (Scorpion 4) (set 8)", + "sc4lined", "Line Dancer (Mazooma) (Scorpion 4) (set 1)", + "sc4lineda", "Line Dancer (Mazooma) (Scorpion 4) (set 2)", + "sc4linedb", "Line Dancer (Mazooma) (Scorpion 4) (set 3)", + "sc4linedc", "Line Dancer (Mazooma) (Scorpion 4) (set 4)", + "sc4linedd", "Line Dancer Arcade (Mazooma) (Scorpion 4) (set 1)", + "sc4linede", "Line Dancer Arcade (Mazooma) (Scorpion 4) (set 2)", + "sc4linedf", "Line Dancer Arcade (Mazooma) (Scorpion 4) (set 3)", + "sc4linedg", "Line Dancer Arcade (Mazooma) (Scorpion 4) (set 4)", + "sc4linedh", "Line Dancer Arcade (Mazooma) (Scorpion 4) (set 5)", + "sc4linedi", "Line Dancer Arcade (Mazooma) (Scorpion 4) (set 6)", + "sc4lions", "Three Lions (Mazooma) (Scorpion 4) (set 1)", + "sc4lionsa", "Three Lions (Mazooma) (Scorpion 4) (set 2)", + "sc4lionsb", "Three Lions (Mazooma) (Scorpion 4) (set 3)", + "sc4lionsc", "Three Lions (Mazooma) (Scorpion 4) (set 4)", + "sc4lionsd", "Three Lions (Mazooma) (Scorpion 4) (set 5)", + "sc4lionse", "Three Lions (Mazooma) (Scorpion 4) (set 6)", + "sc4lionsf", "Three Lions (Mazooma) (Scorpion 4) (set 7)", + "sc4lir", "Let It Roll (Bellfruit) (Scorpion 4) (set 1)", + "sc4lira", "Let It Roll (Bellfruit) (Scorpion 4) (set 2)", + "sc4lirb", "Let It Roll (Bellfruit) (Scorpion 4) (set 3)", + "sc4lirc", "Let It Roll (Bellfruit) (Scorpion 4) (set 4)", + "sc4lird", "Let It Roll (Bellfruit) (Scorpion 4) (set 5)", + "sc4lire", "Let It Roll (Bellfruit) (Scorpion 4) (set 6)", + "sc4lirf", "Let It Roll (Bellfruit) (Scorpion 4) (set 7)", + "sc4lirg", "Let It Roll (Bellfruit) (Scorpion 4) (set 8)", + "sc4lirh", "Let It Roll (Bellfruit) (Scorpion 4) (set 9)", + "sc4liri", "Let It Roll (Bellfruit) (Scorpion 4) (set 10)", + "sc4lkbcl", "Lock Buster Club (Bellfruit) (Scorpion 4) (set 1)", + "sc4lkbcla", "Lock Buster Club (Euro) (Bellfruit) (Scorpion 4) (set 1)", + "sc4lkbclb", "Lock Buster Club (Bellfruit) (Scorpion 4) (set 2)", + "sc4lkbclc", "Lock Buster Club (Euro) (Bellfruit) (Scorpion 4) (set 2)", + "sc4lkbcld", "Lock Buster Club (Ferry) (Bellfruit) (Scorpion 4) (set 1)", + "sc4lkbcle", "Lock Buster Club (Bellfruit) (Scorpion 4) (set 3)", + "sc4lkbclf", "Lock Buster Club (Ferry) (Bellfruit) (Scorpion 4) (set 2)", + "sc4lkbclg", "Lock Buster Club (Bellfruit) (Scorpion 4) (set 4)", + "sc4lkbclh", "Lock Buster Club (Bellfruit) (Scorpion 4) (311 Club, set 1)", + "sc4lkbcli", "Lock Buster Club (Bellfruit) (Scorpion 4) (311 Club, set 2)", + "sc4lockb", "Lock Buster (Bellfruit) (Scorpion 4) (set 1)", + "sc4lockba", "Lock Buster (Bellfruit) (Scorpion 4) (set 2)", + "sc4lockbb", "Lock Buster (Bellfruit) (Scorpion 4) (set 3)", + "sc4lockbc", "Lock Buster (Bellfruit) (Scorpion 4) (set 4)", + "sc4lockbd", "Lock Buster (Bellfruit) (Scorpion 4) (set 5)", + "sc4lockbe", "Lock Buster (Bellfruit) (Scorpion 4) (set 6)", + "sc4lockbf", "Lock Buster (Bellfruit) (Scorpion 4) (set 7)", + "sc4lockbg", "Lock Buster (Bellfruit) (Scorpion 4) (set 8)", + "sc4lotr2", "Lord Of The Rings - The Two Towers (Bellfruit) (Scorpion 4) (set 1)", + "sc4lotr2a", "Lord Of The Rings - The Two Towers (Bellfruit) (Scorpion 4) (set 2)", + "sc4lotr2b", "Lord Of The Rings - The Two Towers (Bellfruit) (Scorpion 4) (set 3)", + "sc4lotr2c", "Lord Of The Rings - The Two Towers (Bellfruit) (Scorpion 4) (set 4)", + "sc4lotr2d", "Lord Of The Rings - The Two Towers (Bellfruit) (Scorpion 4) (set 5)", + "sc4lotr2e", "Lord Of The Rings - The Two Towers (Bellfruit) (Scorpion 4) (set 6)", + "sc4lotr2f", "Lord Of The Rings - The Two Towers (Bellfruit) (Scorpion 4) (set 11)", + "sc4lotr2g", "Lord Of The Rings - The Two Towers (Bellfruit) (Scorpion 4) (set 12)", + "sc4lotr2h", "Lord Of The Rings - The Two Towers (Bellfruit) (Scorpion 4) (set 13)", + "sc4lotr2i", "Lord Of The Rings - The Two Towers (Bellfruit) (Scorpion 4) (set 14)", + "sc4lotr2j", "Lord Of The Rings - The Two Towers (Bellfruit) (Scorpion 4) (set 7)", + "sc4lotr2k", "Lord Of The Rings - The Two Towers (Bellfruit) (Scorpion 4) (set 8)", + "sc4lotr2l", "Lord Of The Rings - The Two Towers (Bellfruit) (Scorpion 4) (set 9)", + "sc4lotr2m", "Lord Of The Rings - The Two Towers (Bellfruit) (Scorpion 4) (set 10)", + "sc4lotrf", "Lord Of The Rings - The Fellowship Of The Ring (Bellfruit) (Scorpion 4) (set 1)", + "sc4lotrfa", "Lord Of The Rings - The Fellowship Of The Ring (Bellfruit) (Scorpion 4) (set 2)", + "sc4lotrfb", "Lord Of The Rings - The Fellowship Of The Ring (Bellfruit) (Scorpion 4) (set 3)", + "sc4lotrfc", "Lord Of The Rings - The Fellowship Of The Ring (Bellfruit) (Scorpion 4) (set 4)", + "sc4lotrfd", "Lord Of The Rings - The Fellowship Of The Ring (Bellfruit) (Scorpion 4) (set 5)", + "sc4lotrfe", "Lord Of The Rings - The Fellowship Of The Ring (Bellfruit) (Scorpion 4) (set 6)", + "sc4lotrff", "Lord Of The Rings - The Fellowship Of The Ring (Bellfruit) (Scorpion 4) (set 7)", + "sc4lotrfg", "Lord Of The Rings - The Fellowship Of The Ring (Bellfruit) (Scorpion 4) (set 8)", + "sc4lotrr", "Lord Of The Rings - Return Of The King (Bellfruit) (Scorpion 4) (set 1)", + "sc4lotrra", "Lord Of The Rings - Return Of The King (Bellfruit) (Scorpion 4) (set 2)", + "sc4lotrrb", "Lord Of The Rings - Return Of The King (Bellfruit) (Scorpion 4) (set 3)", + "sc4lotrrc", "Lord Of The Rings - Return Of The King (Bellfruit) (Scorpion 4) (set 4)", + "sc4lotrrd", "Lord Of The Rings - Return Of The King (Bellfruit) (Scorpion 4) (set 5)", + "sc4lotrre", "Lord Of The Rings - Return Of The King (Bellfruit) (Scorpion 4) (set 6)", + "sc4lotrt", "Lord Of The Rings - The Fellowship Of The Ring (Bellfruit) (Scorpion 4) (set 9)", + "sc4lotrta", "Lord Of The Rings - The Fellowship Of The Ring (Bellfruit) (Scorpion 4) (set 10)", + "sc4ltr2c", "Lord Of The Rings - The Two Towers Club (Bellfruit) (Scorpion 4) (set 1)", + "sc4ltr2ca", "Lord Of The Rings - The Two Towers Club (Bellfruit) (Scorpion 4) (set 2)", + "sc4ltr2cb", "Lord Of The Rings - The Two Towers Club (Bellfruit) (Scorpion 4) (set 3)", + "sc4ltr2cc", "Lord Of The Rings - The Two Towers Club (Bellfruit) (Scorpion 4) (set 4)", + "sc4ltr2cd", "Lord Of The Rings - The Two Towers Club (Bellfruit) (Scorpion 4) (set 5)", + "sc4ltr2ce", "Lord Of The Rings - The Two Towers Club (Bellfruit) (Scorpion 4) (set 6)", + "sc4ltr2cf", "Lord Of The Rings - The Two Towers Club (Bellfruit) (Scorpion 4) (set 7)", + "sc4ltr2cg", "Lord Of The Rings - The Two Towers Club (Bellfruit) (Scorpion 4) (set 8)", + "sc4ltr2ch", "Lord Of The Rings - The Two Towers Club (Bellfruit) (Scorpion 4) (set 9)", + "sc4ltr2ci", "Lord Of The Rings - The Two Towers Club (Bellfruit) (Scorpion 4) (set 10)", + "sc4ltr2cj", "Lord Of The Rings - The Two Towers Club (Bellfruit) (Scorpion 4) (set 11)", + "sc4ltr2ck", "Lord Of The Rings - The Two Towers Club (Bellfruit) (Scorpion 4) (set 12)", + "sc4luck7", "Lucky 7s (Mazooma) (Scorpion 4) (Top Box)", + "sc4luck7a", "Lucky 7s (Mazooma) (Scorpion 4) (set 1)", + "sc4luck7b", "Lucky 7s (Mazooma) (Scorpion 4) (set 2)", + "sc4luck7c", "Lucky 7s (Mazooma) (Scorpion 4) (set 3)", + "sc4luck7d", "Lucky 7s (Mazooma) (Scorpion 4) (set 4)", + "sc4luckb", "Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 1)", + "sc4luckb0", "Lucky Balls Casino Arcade (Bellfruit) (Scorpion 4) (set 6)", + "sc4luckb1", "Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 23)", + "sc4luckb2", "Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 24)", + "sc4luckb3", "Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 25)", + "sc4luckb4", "Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 26)", + "sc4luckba", "Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 2)", + "sc4luckbb", "Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 3)", + "sc4luckbc", "Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 4)", + "sc4luckbd", "Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 5)", + "sc4luckbe", "Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 6)", + "sc4luckbf", "Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 7)", + "sc4luckbg", "Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 8)", + "sc4luckbh", "Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 9)", + "sc4luckbi", "Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 10)", + "sc4luckbj", "Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 11)", + "sc4luckbk", "Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 12)", + "sc4luckbl", "Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 13)", + "sc4luckbm", "Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 14)", + "sc4luckbn", "Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 15)", + "sc4luckbo", "Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 16)", + "sc4luckbp", "Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 17)", + "sc4luckbq", "Lucky Balls Casino Arcade (Bellfruit) (Scorpion 4) (set 1)", + "sc4luckbr", "Lucky Balls Casino Arcade (Bellfruit) (Scorpion 4) (set 2)", + "sc4luckbs", "Lucky Balls Casino Arcade (Bellfruit) (Scorpion 4) (set 3)", + "sc4luckbt", "Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 18)", + "sc4luckbu", "Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 19)", + "sc4luckbv", "Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 20)", + "sc4luckbw", "Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 21)", + "sc4luckbx", "Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 22)", + "sc4luckby", "Lucky Balls Casino Arcade (Bellfruit) (Scorpion 4) (set 4)", + "sc4luckbz", "Lucky Balls Casino Arcade (Bellfruit) (Scorpion 4) (set 5)", + "sc4m2m", "Money To Money (Mazooma) (Scorpion 4) (set 1)", + "sc4m2ma", "Money To Money (Mazooma) (Scorpion 4) (set 2)", + "sc4magci", "Magic Circle (011) (Qps) (Scorpion 4) (set 1)", + "sc4magcia", "Magic Circle (021) (Qps) (Scorpion 4) (set 1)", + "sc4magcib", "Magic Circle (031) (Qps) (Scorpion 4) (set 1)", + "sc4magcic", "Magic Circle (012) (Qps) (Scorpion 4) (set 1)", + "sc4magcid", "Magic Circle (012) (Qps) (Scorpion 4) (set 3)", + "sc4magcie", "Magic Circle (022) (Qps) (Scorpion 4) (set 1)", + "sc4magcif", "Magic Circle (032) (Qps) (Scorpion 4) (set 1)", + "sc4magcig", "Magic Circle (013) (Qps) (Scorpion 4) (set 1)", + "sc4magcih", "Magic Circle (014) (Qps) (Scorpion 4) (set 1)", + "sc4magcii", "Magic Circle (024) (Qps) (Scorpion 4) (set 1)", + "sc4magcij", "Magic Circle (034) (Qps) (Scorpion 4) (set 1)", + "sc4magcik", "Magic Circle (011) (Qps) (Scorpion 4) (set 2)", + "sc4magcil", "Magic Circle (021) (Qps) (Scorpion 4) (set 2)", + "sc4magcim", "Magic Circle (031) (Qps) (Scorpion 4) (set 2)", + "sc4magcin", "Magic Circle (012) (Qps) (Scorpion 4) (set 2)", + "sc4magcio", "Magic Circle (012) (Qps) (Scorpion 4) (set 4)", + "sc4magcip", "Magic Circle (022) (Qps) (Scorpion 4) (set 2)", + "sc4magciq", "Magic Circle (032) (Qps) (Scorpion 4) (set 2)", + "sc4magcir", "Magic Circle (013) (Qps) (Scorpion 4) (set 2)", + "sc4magcis", "Magic Circle (014) (Qps) (Scorpion 4) (set 2)", + "sc4magcit", "Magic Circle (024) (Qps) (Scorpion 4) (set 2)", + "sc4magciu", "Magic Circle (034) (Qps) (Scorpion 4) (set 2)", + "sc4magic", "Magic Poundabout (Qps) (Scorpion 4) (set 1)", + "sc4magica", "Magic Poundabout (Qps) (Scorpion 4) (set 2)", + "sc4magicb", "Magic Poundabout (Qps) (Scorpion 4) (set 3)", + "sc4magicc", "Magic Poundabout (Qps) (Scorpion 4) (set 4)", + "sc4manic", "Manic Miner (Bellfruit) (Scorpion 4) (set 1)", + "sc4manica", "Manic Miner (Bellfruit) (Scorpion 4) (set 2)", + "sc4manicb", "Manic Miner (Bellfruit) (Scorpion 4) (set 5)", + "sc4manicc", "Manic Miner (Bellfruit) (Scorpion 4) (set 6)", + "sc4manicd", "Manic Miner (Bellfruit) (Scorpion 4) (set 7)", + "sc4manice", "Manic Miner (Bellfruit) (Scorpion 4) (set 8)", + "sc4manicf", "Manic Miner (Bellfruit) (Scorpion 4) (set 9)", + "sc4manicg", "Manic Miner (Bellfruit) (Scorpion 4) (set 10)", + "sc4maxcc", "Maximus Cash Club (Mazooma) (Scorpion 4) (set 1)", + "sc4maxcca", "Maximus Cash Club (Mazooma) (Scorpion 4) (set 2)", + "sc4maxccb", "Maximus Cash Club (Mazooma) (Scorpion 4) (set 3)", + "sc4maxccc", "Maximus Cash Club (Mazooma) (Scorpion 4) (set 4)", + "sc4maxim", "Maximus Cash (Mazooma) (Scorpion 4) (set 1)", + "sc4maxima", "Maximus Cash (Mazooma) (Scorpion 4) (set 2)", + "sc4maximb", "Maximus Cash (Mazooma) (Scorpion 4) (set 3)", + "sc4maximc", "Maximus Cash (Mazooma) (Scorpion 4) (set 4)", + "sc4maximd", "Maximus Cash (Mazooma) (Scorpion 4) (set 5)", + "sc4maxime", "Maximus Cash (Mazooma) (Scorpion 4) (set 6)", + "sc4maximf", "Maximus Cash (Mazooma) (Scorpion 4) (set 7)", + "sc4maximg", "Maximus Cash (Mazooma) (Scorpion 4) (set 8)", + "sc4mbags", "Money Bags (Bellfruit) (Scorpion 4) (set 1)", + "sc4mbagsa", "Money Bags (Bellfruit) (Scorpion 4) (set 2)", + "sc4mbagsb", "Money Bags (Bellfruit) (Scorpion 4) (set 3)", + "sc4mbagsc", "Money Bags (Bellfruit) (Scorpion 4) (set 4)", + "sc4mcas", "Monopoly Casino (PR2354) (Mazooma) (Scorpion 4) (GMBU, set 1)", + "sc4mcas0", "Monopoly Casino (PR2354) (Mazooma) (Scorpion 4) (GMBU, set 15)", + "sc4mcas1", "Monopoly Casino (PR2354) (Mazooma) (Scorpion 4) (GMBU, set 16)", + "sc4mcas2", "Monopoly Casino (PR2354) (Mazooma) (Scorpion 4) (GMBU, set 17)", + "sc4mcas3", "Monopoly Casino (PR2354) (Mazooma) (Scorpion 4) (GMBU, set 18)", + "sc4mcas4", "Monopoly Casino (PR2056) (Mazooma) (Scorpion 4) (GMTB, Top Box, set 3)", + "sc4mcask", "Monopoly Casino (PR2056) (Mazooma) (Scorpion 4) (GMTB, Top Box, set 1)", + "sc4mcasm", "Monopoly Casino (PR2354) (Mazooma) (Scorpion 4) (GMBU, set 2)", + "sc4mcasn", "Monopoly Casino (PR2354) (Mazooma) (Scorpion 4) (GMBU, set 3)", + "sc4mcaso", "Monopoly Casino (PR2354) (Mazooma) (Scorpion 4) (GMBU, set 4)", + "sc4mcasp", "Monopoly Casino (PR2354) (Mazooma) (Scorpion 4) (GMBU, set 5)", + "sc4mcasq", "Monopoly Casino (PR2354) (Mazooma) (Scorpion 4) (GMBU, set 6)", + "sc4mcasr", "Monopoly Casino (PR2354) (Mazooma) (Scorpion 4) (GMBU, set 7)", + "sc4mcass", "Monopoly Casino (PR2354) (Mazooma) (Scorpion 4) (GMBU, set 8)", + "sc4mcast", "Monopoly Casino (PR2354) (Mazooma) (Scorpion 4) (GMBU, set 9)", + "sc4mcasu", "Monopoly Casino (PR2056) (Mazooma) (Scorpion 4) (GMTB, Top Box, set 2)", + "sc4mcasv", "Monopoly Casino (PR2354) (Mazooma) (Scorpion 4) (GMBU, set 10)", + "sc4mcasw", "Monopoly Casino (PR2354) (Mazooma) (Scorpion 4) (GMBU, set 11)", + "sc4mcasx", "Monopoly Casino (PR2354) (Mazooma) (Scorpion 4) (GMBU, set 12)", + "sc4mcasy", "Monopoly Casino (PR2354) (Mazooma) (Scorpion 4) (GMBU, set 13)", + "sc4mcasz", "Monopoly Casino (PR2354) (Mazooma) (Scorpion 4) (GMBU, set 14)", + "sc4mclb", "Monopoly Club (Mazooma) (Scorpion 4) (set 1)", + "sc4mclba", "Monopoly Club (Mazooma) (Scorpion 4) (set 2)", + "sc4mclbb", "Monopoly Club (Mazooma) (Scorpion 4) (set 3)", + "sc4mclbc", "Monopoly Club (Mazooma) (Scorpion 4) (set 4)", + "sc4mclbd", "Monopoly Club (Mazooma) (Scorpion 4) (set 5)", + "sc4mclbe", "Monopoly Club (Mazooma) (Scorpion 4) (set 6)", + "sc4mdm", "Monopoly Double Money (Bellfruit) (Scorpion 4) (set 1)", + "sc4mdma", "Monopoly Double Money (Bellfruit) (Scorpion 4) (set 2)", + "sc4mgr", "Money Go Round Casino (Bellfruit) (Scorpion 4) (set 1)", + "sc4mgra", "Money Go Round Casino (Bellfruit) (Scorpion 4) (set 2)", + "sc4mgrb", "Money Go Round Casino (Bellfruit) (Scorpion 4) (set 5)", + "sc4mgrc", "Money Go Round Casino (Bellfruit) (Scorpion 4) (set 6)", + "sc4mgrd", "Money Go Round Casino (Bellfruit) (Scorpion 4) (set 7)", + "sc4mgre", "Money Go Round Casino (Bellfruit) (Scorpion 4) (set 8)", + "sc4mgrf", "Money Go Round Casino (Bellfruit) (Scorpion 4) (set 9)", + "sc4mgrg", "Money Go Round Casino (Bellfruit) (Scorpion 4) (set 10)", + "sc4mgrh", "Money Go Round Casino (Bellfruit) (Scorpion 4) (set 3)", + "sc4mgri", "Money Go Round Casino (Bellfruit) (Scorpion 4) (set 4)", + "sc4mgrj", "Money Go Round Casino (Bellfruit) (Scorpion 4) (set 11)", + "sc4mgrk", "Money Go Round Casino (Bellfruit) (Scorpion 4) (set 12)", + "sc4mgrl", "Money Go Round Casino (Bellfruit) (Scorpion 4) (set 13)", + "sc4mgrm", "Money Go Round Casino (Bellfruit) (Scorpion 4) (set 14)", + "sc4mhn", "Monopoly Here & Now (Mazooma) (Scorpion 4) (set 1)", + "sc4mhna", "Monopoly Here & Now (Mazooma) (Scorpion 4) (set 2)", + "sc4mhp", "Monopoly Hot Property (Bellfruit) (Scorpion 4) (set 1)", + "sc4mhpa", "Monopoly Hot Property (Bellfruit) (Scorpion 4) (set 2)", + "sc4mhpb", "Monopoly Hot Property (Bellfruit) (Scorpion 4) (set 3)", + "sc4mhpc", "Monopoly Hot Property (Bellfruit) (Scorpion 4) (set 4)", + "sc4mhpd", "Monopoly Hot Property (Bellfruit) (Scorpion 4) (set 5)", + "sc4mhpe", "Monopoly Hot Property (Bellfruit) (Scorpion 4) (set 6)", + "sc4mhpf", "Monopoly Hot Property (Bellfruit) (Scorpion 4) (set 7)", + "sc4mhpg", "Monopoly Hot Property (Bellfruit) (Scorpion 4) (set 8)", + "sc4mhph", "Monopoly Hot Property (Bellfruit) (Scorpion 4) (set 9)", + "sc4mhpi", "Monopoly Hot Property (Bellfruit) (Scorpion 4) (set 10)", + "sc4mhpj", "Monopoly Hot Property (Bellfruit) (Scorpion 4) (set 11)", + "sc4mhpk", "Monopoly Hot Property (Bellfruit) (Scorpion 4) (set 12)", + "sc4mhpl", "Monopoly Hot Property (Bellfruit) (Scorpion 4) (set 13)", + "sc4mhpm", "Monopoly Hot Property (Bellfruit) (Scorpion 4) (set 14)", + "sc4mhpn", "Monopoly Hot Property (Bellfruit) (Scorpion 4) (set 15)", + "sc4mhpo", "Monopoly Hot Property (Bellfruit) (Scorpion 4) (set 16)", + "sc4milja", "Miljonairs Arcade (Dutch) (Bellfruit) (Scorpion 4)", + "sc4miljo", "Miljonairs (Dutch) (Bellfruit) (Scorpion 4) (set 1)", + "sc4milro", "Millionaires Row (Scorpion 4?)", + "sc4mmad", "Money Madness (PR2533) (Mazooma) (Scorpion 4) (set 1)", + "sc4mmada", "Money Madness (PR2533) (Mazooma) (Scorpion 4) (set 2)", + "sc4mmadb", "Money Madness (PR2533) (Mazooma) (Scorpion 4) (set 3)", + "sc4mmadc", "Money Madness (PR2533) (Mazooma) (Scorpion 4) (set 4)", + "sc4mmadd", "Money Madness (PR0000) (Mazooma) (Scorpion 4) (set 5)", + "sc4mmade", "Money Madness (PR0000) (Mazooma) (Scorpion 4) (set 6)", + "sc4mmadf", "Money Madness (PR0000) (Mazooma) (Scorpion 4) (set 7)", + "sc4mmadg", "Money Madness (PR0000) (Mazooma) (Scorpion 4) (set 8)", + "sc4mmb", "Monopoly Money Bags (Bellfruit) (Scorpion 4) (set 1)", + "sc4mmba", "Monopoly Money Bags (Bellfruit) (Scorpion 4) (set 2)", + "sc4mmm", "Mental Money Monsters (Mazooma) (Scorpion 4) (set 1)", + "sc4mmma", "Mental Money Monsters (Mazooma) (Scorpion 4) (set 2)", + "sc4mmmb", "Mental Money Monsters (Mazooma) (Scorpion 4) (set 3)", + "sc4mmmc", "Mental Money Monsters (Mazooma) (Scorpion 4) (set 4)", + "sc4mmmd", "Mental Money Monsters (Mazooma) (Scorpion 4) (set 5)", + "sc4mmme", "Mental Money Monsters (Mazooma) (Scorpion 4) (set 6)", + "sc4mmmf", "Mental Money Monsters (Mazooma) (Scorpion 4) (set 7)", + "sc4mmmg", "Mental Money Monsters (Mazooma) (Scorpion 4) (set 8)", + "sc4mondx", "Monopoly Deluxe (PR2202, MPDX 1.0) (Mazooma) (Scorpion 4) (set 1)", + "sc4mondxa", "Monopoly Deluxe (PR2202, MPDX 1.0) (Mazooma) (Scorpion 4) (set 2)", + "sc4mondxb", "Monopoly Deluxe (PR2202, MPDX 1.0) (Mazooma) (Scorpion 4) (set 3)", + "sc4mondxc", "Monopoly Deluxe (PR2202, MPDX 1.0) (Mazooma) (Scorpion 4) (set 4)", + "sc4mondxd", "Monopoly Deluxe (PR2202, MPDX 1.1) (Mazooma) (Scorpion 4) (set 1)", + "sc4mondxe", "Monopoly Deluxe (PR2202, MPDX 1.1) (Mazooma) (Scorpion 4) (set 3)", + "sc4mondxf", "Monopoly Deluxe (PR2202, MPDX 1.1) (Mazooma) (Scorpion 4) (set 4)", + "sc4mondxg", "Monopoly Deluxe (PR2202, MPDX 1.1) (Mazooma) (Scorpion 4) (set 2)", + "sc4mono5", "Monopoly 5 (PR7089, MONF) (Mazooma) (Scorpion 4) (set 1)", + "sc4mono5a", "Monopoly 5 (PR7089, MONF) (Mazooma) (Scorpion 4) (set 2)", + "sc4monoa", "Monopoly Triple (PR2122, MOTR) (Mazooma) (Scorpion 4) (set 1)", + "sc4monoaa", "Monopoly Triple (PR2122, MOTR) (Mazooma) (Scorpion 4) (set 2)", + "sc4monoab", "Monopoly Triple (PR2122, MOTR) (Mazooma) (Scorpion 4) (set 3)", + "sc4monoac", "Monopoly Triple (PR2122, MOTR) (Mazooma) (Scorpion 4) (set 4)", + "sc4monoad", "Monopoly Triple (PR2122, MOTR) (Mazooma) (Scorpion 4) (set 5)", + "sc4monoae", "Monopoly Triple (PR2122, MOTR) (Mazooma) (Scorpion 4) (set 6)", + "sc4monoaf", "Monopoly Triple (PR2122, MOTR) (Mazooma) (Scorpion 4) (set 7)", + "sc4monoag", "Monopoly Triple (PR2122, MOTR) (Mazooma) (Scorpion 4) (set 8)", + "sc4monoah", "Monopoly Triple (PR2122, MOTR) (Mazooma) (Scorpion 4) (set 9)", + "sc4monoai", "Monopoly Triple (PR2122, MOTR) (Mazooma) (Scorpion 4) (set 10)", + "sc4monoaj", "Monopoly Triple (PR2122, MOTR) (Mazooma) (Scorpion 4) (set 11)", + "sc4monoak", "Monopoly Triple (PR2122, MOTR) (Mazooma) (Scorpion 4) (set 12)", + "sc4monoal", "Monopoly Triple (PR2122, MOTR) (Mazooma) (Scorpion 4) (set 13)", + "sc4monoam", "Monopoly Triple (PR2122, MOTR) (Mazooma) (Scorpion 4) (set 14)", + "sc4monoan", "Monopoly Triple (PR2122, MOTR) (Mazooma) (Scorpion 4) (set 15)", + "sc4monoao", "Monopoly Triple (PR2122, MOTR) (Mazooma) (Scorpion 4) (set 16)", + "sc4monoap", "Monopoly Triple (PR2122, MOTR) (Mazooma) (Scorpion 4) (set 17)", + "sc4monoaq", "Monopoly Triple (PR2122, MOTR) (Mazooma) (Scorpion 4) (set 18)", + "sc4monob", "Monopoly (Bellfruit) (Scorpion 4) (set 1)", + "sc4monoba", "Monopoly (Bellfruit) (Scorpion 4) (set 2)", + "sc4monobb", "Monopoly (Bellfruit) (Scorpion 4) (set 3)", + "sc4monobc", "Monopoly (Bellfruit) (Scorpion 4) (set 4)", + "sc4monobd", "Monopoly (Bellfruit) (Scorpion 4) (set 5)", + "sc4monobe", "Monopoly (Bellfruit) (Scorpion 4) (set 6)", + "sc4monobf", "Monopoly (Bellfruit) (Scorpion 4) (set 7)", + "sc4monobg", "Monopoly (Bellfruit) (Scorpion 4) (set 8)", + "sc4monobh", "Monopoly (Bellfruit) (Scorpion 4) (set 9)", + "sc4monobi", "Monopoly (Bellfruit) (Scorpion 4) (set 10)", + "sc4monobj", "Monopoly (Bellfruit) (Scorpion 4) (set 11)", + "sc4monobk", "Monopoly (Bellfruit) (Scorpion 4) (set 12)", + "sc4monobl", "Monopoly (Bellfruit) (Scorpion 4) (set 13)", + "sc4monobm", "Monopoly (Bellfruit) (Scorpion 4) (set 14)", + "sc4monod", "Monopoly (Mazooma) [German] (Scorpion 4) (set 1)", + "sc4monoda", "Monopoly (Mazooma) [German] (Scorpion 4) (set 2)", + "sc4monodb", "Monopoly (Mazooma) [German] (Scorpion 4) (set 3)", + "sc4monog", "Golden X (Mazooma) (PR2056, TBOX) (Scorpion 4) (Top Box, set 5)", + "sc4monoga", "Golden X (Mazooma) (PR2056, TBOX) (Scorpion 4) (Top Box, set 6)", + "sc4monop", "Monopoly Triple (PR2056, TBOX) (Mazooma) (Scorpion 4) (Top Box, set 1)", + "sc4monopa", "Monopoly Triple (PR2056, TBOX) (Mazooma) (Scorpion 4) (Top Box, set 2)", + "sc4monot", "Monopoly TTT (PR2133) (Mazooma) (Scorpion 4) (set 1)", + "sc4monota", "Monopoly TTT (PR2133) (Mazooma) (Scorpion 4) (set 2)", + "sc4monotb", "Monopoly TTT (PR2133) (Mazooma) (Scorpion 4) (set 3)", + "sc4monotc", "Monopoly TTT (PR2133) (Mazooma) (Scorpion 4) (set 4)", + "sc4monsp", "Money Spinner (Dutch) (Bellfruit) (Scorpion 4)", + "sc4mont", "Montego Pay (Qps) (Scorpion 4) (set 1)", + "sc4monta", "Montego Pay (Qps) (Scorpion 4) (set 2)", + "sc4montb", "Montego Pay (Qps) (Scorpion 4) (set 3)", + "sc4montc", "Montego Pay (Qps) (Scorpion 4) (set 4)", + "sc4montd", "Montego Pay (Qps) (Scorpion 4) (set 5)", + "sc4monte", "Montego Pay (Qps) (Scorpion 4) (set 6)", + "sc4montf", "Montego Pay (Qps) (Scorpion 4) (set 7)", + "sc4montg", "Montego Pay (Qps) (Scorpion 4) (set 8)", + "sc4month", "Montego Pay (Qps) (Scorpion 4) (set 9)", + "sc4monti", "Montego Pay (Qps) (Scorpion 4) (set 10)", + "sc4motor", "Motorway Mania (Bellfruit) (Scorpion 4) (set 1)", + "sc4motora", "Motorway Mania (Bellfruit) (Scorpion 4) (set 2)", + "sc4motorb", "Motorway Mania (Bellfruit) (Scorpion 4) (set 3)", + "sc4motorc", "Motorway Mania (Bellfruit) (Scorpion 4) (set 4)", + "sc4motord", "Motorway Mania (Bellfruit) (Scorpion 4) (set 5)", + "sc4motore", "Motorway Mania (Bellfruit) (Scorpion 4) (set 6)", + "sc4motorf", "Motorway Mania (Bellfruit) (Scorpion 4) (set 7)", + "sc4motorg", "Motorway Mania (Bellfruit) (Scorpion 4) (set 8)", + "sc4motorh", "Motorway Mania (Bellfruit) (Scorpion 4) (set 9)", + "sc4mou", "Move On Up (Qps) (Scorpion 4) (set 1)", + "sc4moua", "Move On Up (Qps) (Scorpion 4) (set 2)", + "sc4moub", "Move On Up (Qps) (Scorpion 4) (set 3)", + "sc4mowow", "Monopoly Wheel Of Wealth (Mazooma) (PR2118) (Scorpion 4) (set 1)", + "sc4mowowa", "Monopoly Wheel Of Wealth (Mazooma) (PR2118) (Scorpion 4) (set 2)", + "sc4mowowb", "Monopoly Wheel Of Wealth (Mazooma) (PR2118) (Scorpion 4) (set 3)", + "sc4mowowc", "Monopoly Wheel Of Wealth (Mazooma) (PR2118) (Scorpion 4) (set 4)", + "sc4mr2r", "Monopoly Road To Riches (Mazooma) (Scorpion 4) (set 1)", + "sc4mr2ra", "Monopoly Road To Riches (Mazooma) (Scorpion 4) (set 2)", + "sc4mr2rb", "Monopoly Road To Riches (Mazooma) (Scorpion 4) (set 3)", + "sc4mr2rc", "Monopoly Road To Riches (Mazooma) (Scorpion 4) (set 4)", + "sc4mr2rd", "Monopoly Road To Riches (Mazooma) (Scorpion 4) (set 5)", + "sc4mr2re", "Monopoly Road To Riches (Mazooma) (Scorpion 4) (set 6)", + "sc4mrh", "Monopoly Red Hot (Mazooma) (Scorpion 4) (set 1)", + "sc4mrha", "Monopoly Red Hot (Mazooma) (Scorpion 4) (set 2)", + "sc4mrhb", "Monopoly Red Hot (Mazooma) (Scorpion 4) (set 3)", + "sc4mrhc", "Monopoly Red Hot (Mazooma) (Scorpion 4) (set 4)", + "sc4mrhd", "Monopoly Red Hot (Mazooma) (Scorpion 4) (set 5)", + "sc4mrhe", "Monopoly Red Hot (Mazooma) (Scorpion 4) (set 6)", + "sc4msclb", "Money Spinner Club (Bellfruit) (Scorpion 4) (set 1)", + "sc4msclba", "Money Spinner Club (Bellfruit) (Scorpion 4) (set 2)", + "sc4msclbb", "Money Spinner Club (Bellfruit) (Scorpion 4) (set 3)", + "sc4msclbc", "Money Spinner Club (Bellfruit) (Scorpion 4) (set 4)", + "sc4msclbd", "Money Spinner Club (Bellfruit) (Scorpion 4) (set 5)", + "sc4msclbe", "Money Spinner Club (Bellfruit) (Scorpion 4) (set 6)", + "sc4msclbf", "Money Spinner Club (Bellfruit) (Scorpion 4) (set 7)", + "sc4msclbg", "Money Spinner Club (Bellfruit) (Scorpion 4) (set 8)", + "sc4mspid", "Casino Money Spider (Bellfruit) (Scorpion 4) (set 1)", + "sc4mspida", "Casino Money Spider (Bellfruit) (Scorpion 4) (set 2)", + "sc4mspidb", "Casino Money Spider (Bellfruit) (Scorpion 4) (set 3)", + "sc4mspidc", "Casino Money Spider (Bellfruit) (Scorpion 4) (set 4)", + "sc4mspidd", "Casino Money Spider (Bellfruit) (Scorpion 4) (set 5)", + "sc4mspide", "Casino Money Spider (Bellfruit) (Scorpion 4) (set 6)", + "sc4mspidf", "Casino Money Spider (Bellfruit) (Scorpion 4) (set 7)", + "sc4mspidg", "Casino Money Spider (Bellfruit) (Scorpion 4) (set 8)", + "sc4mspidh", "Casino Money Spider (Bellfruit) (Scorpion 4) (set 13)", + "sc4mspidi", "Casino Money Spider (Bellfruit) (Scorpion 4) (set 14)", + "sc4mspidj", "Casino Money Spider (Bellfruit) (Scorpion 4) (set 9)", + "sc4mspidk", "Casino Money Spider (Bellfruit) (Scorpion 4) (set 10)", + "sc4mspidl", "Casino Money Spider (Bellfruit) (Scorpion 4) (set 11)", + "sc4mspidm", "Casino Money Spider (Bellfruit) (Scorpion 4) (set 12)", + "sc4mtb", "Money To Burn (Bellfruit) (Scorpion 4) (set 1)", + "sc4mtba", "Money To Burn (Bellfruit) (Scorpion 4) (set 2)", + "sc4mtbb", "Money To Burn (Bellfruit) (Scorpion 4) (set 3)", + "sc4mtbc", "Money To Burn SP98 (Bellfruit) (Scorpion 4) (set 1)", + "sc4mtbcl", "Money To Burn Club (Bellfruit) (Scorpion 4) (set 1)", + "sc4mtbcla", "Money To Burn Club (Bellfruit) (Scorpion 4) (set 2)", + "sc4mtbclb", "Money To Burn Club (Bellfruit) (Scorpion 4) (set 3)", + "sc4mtbclc", "Money To Burn Club (Bellfruit) (Scorpion 4) (set 4)", + "sc4mtbcld", "Money To Burn Club (Bellfruit) (Scorpion 4) (set 5)", + "sc4mtbcle", "Money To Burn Club (Bellfruit) (Scorpion 4) (set 6)", + "sc4mtbclf", "Money To Burn Club (Bellfruit) (Scorpion 4) (set 7)", + "sc4mtbclg", "Money To Burn Club (Bellfruit) (Scorpion 4) (set 8)", + "sc4mtbclh", "Money To Burn Club (Bellfruit) (Scorpion 4) (set 9)", + "sc4mtbcli", "Money To Burn Club (Bellfruit) (Scorpion 4) (set 10)", + "sc4mtbclj", "Money To Burn Club (Bellfruit) (Scorpion 4) (set 11)", + "sc4mtbclk", "Money To Burn Club (Bellfruit) (Scorpion 4) (set 12)", + "sc4mtbcll", "Money To Burn Club (Bellfruit) (Scorpion 4) (set 13)", + "sc4mtbclm", "Money To Burn Club (Bellfruit) (Scorpion 4) (set 14)", + "sc4mtbcln", "Money To Burn Club (Bellfruit) (Scorpion 4) (set 15)", + "sc4mtbclo", "Money To Burn Club (Bellfruit) (Scorpion 4) (set 16)", + "sc4mtbd", "Money To Burn SP98 (Bellfruit) (Scorpion 4) (set 2)", + "sc4mtbe", "Money To Burn (Bellfruit) (Scorpion 4) (set 4)", + "sc4mtbf", "Money To Burn (Bellfruit) (Scorpion 4) (set 5)", + "sc4mtbg", "Money To Burn (Bellfruit) (Scorpion 4) (set 6)", + "sc4mtbh", "Money To Burn SP98 (Bellfruit) (Scorpion 4) (set 3)", + "sc4mtbi", "Money To Burn SP98 (Bellfruit) (Scorpion 4) (set 4)", + "sc4mtbj", "Money To Burn (Bellfruit) (Scorpion 4) (set 7)", + "sc4mwwtb", "Monopoly Wheel Of Wealth (Mazooma) (PR2389, Top Box) (Scorpion 4) (set 1)", + "sc4mwwtba", "Monopoly Wheel Of Wealth (Mazooma) (PR2389, Top Box) (Scorpion 4) (set 2)", + "sc4mwwtbb", "Monopoly Wheel Of Wealth (Mazooma) (PR2389, Top Box) (Scorpion 4) (set 3)", + "sc4mwwtbc", "Monopoly Wheel Of Wealth (Mazooma) (PR2389, Top Box) (Scorpion 4) (set 4)", + "sc4mwwtbd", "Monopoly Wheel Of Wealth (Mazooma) (PR2389, Top Box) (Scorpion 4) (set 5)", + "sc4nmare", "A Nightmare On Elm Street (Bellfruit) (Scorpion 4) (set 1)", + "sc4nmarea", "A Nightmare On Elm Street (Bellfruit) (Scorpion 4) (set 2)", + "sc4nmareb", "A Nightmare On Elm Street (Bellfruit) (Scorpion 4) (set 3)", + "sc4nmarec", "A Nightmare On Elm Street (Bellfruit) (Scorpion 4) (set 4)", + "sc4nmtj", "Never Mind The Jackpots (Mazooma) (Scorpion 4) (011)", + "sc4nmtja", "Never Mind The Jackpots (Mazooma) (Scorpion 4) (014, set 1)", + "sc4nmtjb", "Never Mind The Jackpots (Mazooma) (Scorpion 4) (044, set 1)", + "sc4nmtjc", "Never Mind The Jackpots (Mazooma) (Scorpion 4) (014, set 2)", + "sc4nmtjd", "Never Mind The Jackpots (Mazooma) (Scorpion 4) (044, set 2)", + "sc4nudit", "Nudge It (Mazooma) (Scorpion 4) (set 1)", + "sc4nudita", "Nudge It (Mazooma) (Scorpion 4) (set 2)", + "sc4nuditb", "Nudge It (Mazooma) (Scorpion 4) (set 3)", + "sc4nunsm", "Nuns 'n' Roses (Mazooma) (Scorpion 4) (set 1)", + "sc4nunsmb", "Nuns 'n' Roses (Mazooma) (Scorpion 4) (set 2)", + "sc4nunsmc", "Nuns 'n' Roses (Mazooma) (Scorpion 4) (set 3)", + "sc4nunsmd", "Nuns 'n' Roses (Mazooma) (Scorpion 4) (set 4)", + "sc4nunsme", "Nuns 'n' Roses (Mazooma) (Scorpion 4) (set 5)", + "sc4nunsmf", "Nuns 'n' Roses (Mazooma) (Scorpion 4) (set 6)", + "sc4nunsmg", "Nuns 'n' Roses (Mazooma) (Scorpion 4) (set 7)", + "sc4nunsmh", "Nuns 'n' Roses (Mazooma) (Scorpion 4) (set 8)", + "sc4nunsmi", "Nuns 'n' Roses (Mazooma) (Scorpion 4) (set 9)", + "sc4nunsmj", "Nuns 'n' Roses (Mazooma) (Scorpion 4) (set 10)", + "sc4onup", "On The Up (Mazooma) (Scorpion 4) (set 1)", + "sc4onupa", "On The Up (Mazooma) (Scorpion 4) (set 2)", + "sc4opses", "Open Sesame (Bellfruit) (Scorpion 4) (set 1)", + "sc4opsesa", "Open Sesame (Bellfruit) (Scorpion 4) (set 2)", + "sc4outlw", "Outlaw (Bellfruit) (Scorpion 4) (set 1)", + "sc4outlwa", "Outlaw (Bellfruit) (Scorpion 4) (set 2)", + "sc4outlwb", "Outlaw (Bellfruit) (Scorpion 4) (set 3)", + "sc4outlwc", "Outlaw (Bellfruit) (Scorpion 4) (set 4)", + "sc4oyf", "Off Your Face (Bellfruit) (Scorpion 4) (set 1)", + "sc4oyfa", "Off Your Face (Bellfruit) (Scorpion 4) (set 2)", + "sc4paccl", "Pac Man Club (PR2018, CPAC) (Mazooma) (Scorpion 4) (set 1)", + "sc4paccla", "Pac Man Club (PR2018, CPAC) (Mazooma) (Scorpion 4) (set 2)", + "sc4pacclb", "Pac Man Club (PR2018, CPAC) (Mazooma) (Scorpion 4) (set 3)", + "sc4pacclc", "Pac Man Club (PR2018, CPAC) (Mazooma) (Scorpion 4) (set 4)", + "sc4paccs", "Pac Man Casino (PR7049, PACL) (Mazooma) (Scorpion 4) (set 1)", + "sc4paccsa", "Pac Man Casino (PR7049, PACL) (Mazooma) (Scorpion 4) (set 2)", + "sc4paccsb", "Pac Man Casino (PR7049, PACL) (Mazooma) (Scorpion 4) (set 3)", + "sc4paccsc", "Pac Man Casino (PR7049, PACL) (Mazooma) (Scorpion 4) (set 4)", + "sc4paccsd", "Pac Man Casino (PR7049, PACL) (Mazooma) (Scorpion 4) (set 5)", + "sc4paccse", "Pac Man Casino (PR7049, PACL) (Mazooma) (Scorpion 4) (set 6)", + "sc4paccsf", "Pac Man Casino (PR7049, PACL) (Mazooma) (Scorpion 4) (set 7)", + "sc4paccsg", "Pac Man Casino (PR7049, PACL) (Mazooma) (Scorpion 4) (set 8)", + "sc4paccsh", "Pac Man Casino (PR7049, PACL) (Mazooma) (Scorpion 4) (set 12)", + "sc4paccsi", "Pac Man Casino (PR7049, PACL) (Mazooma) (Scorpion 4) (set 13)", + "sc4paccsj", "Pac Man Casino (PR7049, PACL) (Mazooma) (Scorpion 4) (set 9)", + "sc4paccsk", "Pac Man Casino (PR7049, PACL) (Mazooma) (Scorpion 4) (set 10)", + "sc4paccsl", "Pac Man Casino (PR7049, PACL) (Mazooma) (Scorpion 4) (set 11)", + "sc4pacmn", "Pac Man (PR7026, PMAN) (Mazooma) (Scorpion 4) (set 1)", + "sc4pacmna", "Pac Man (PR7026, PMAN) (Mazooma) (Scorpion 4) (set 2)", + "sc4pacmnb", "Pac Man (PR7026, PMAN) (Mazooma) (Scorpion 4) (set 3)", + "sc4pacpl", "Pac Man Plus (PR7058, PACP) (Mazooma) (Scorpion 4) (set 1)", + "sc4pacpla", "Pac Man Plus (PR7058, PACP) (Mazooma) (Scorpion 4) (set 2)", + "sc4pacplb", "Pac Man Plus (PR7058, PACP) (Mazooma) (Scorpion 4) (set 3)", + "sc4pacplc", "Pac Man Plus (PR7058, PACP) (Mazooma) (Scorpion 4) (set 4)", + "sc4pacpld", "Pac Man Plus (PR7058, PACP) (Mazooma) (Scorpion 4) (set 5)", + "sc4pacple", "Pac Man Plus (PR7058, PACP) (Mazooma) (Scorpion 4) (set 6)", + "sc4pacplf", "Pac Man Plus (PR7058, PACP) (Mazooma) (Scorpion 4) (set 7)", + "sc4pacplg", "Pac Man Plus (PR7058, PACP) (Mazooma) (Scorpion 4) (set 8)", + "sc4pacplh", "Pac Man Plus (PR7058, PACP) (Mazooma) (Scorpion 4) (set 9)", + "sc4pacqp", "Pac Man (PR7072, QPAC) (QPS) (Scorpion 4) (set 1)", + "sc4pacqpa", "Pac Man (PR7072, QPAC) (QPS) (Scorpion 4) (set 2)", + "sc4pacqpb", "Pac Man (PR7072, QPAC) (QPS) (Scorpion 4) (set 3)", + "sc4party", "Party Time (German) (PR7151, GPTM) (Nova) (Scorpion 4)", + "sc4paytm", "Pay Time (Dutch) (Bellfruit) (Scorpion 4)", + "sc4pen1", "Public Enemy No1 (Bellfruit) (Scorpion 4) (set 1)", + "sc4pen1a", "Public Enemy No1 (Bellfruit) (Scorpion 4) (set 2)", + "sc4pen1b", "Public Enemy No1 (Bellfruit) (Scorpion 4) (set 3)", + "sc4pen1c", "Public Enemy No1 (Bellfruit) (Scorpion 4) (set 4)", + "sc4pen1d", "Public Enemy No1 (Bellfruit) (Scorpion 4) (set 5)", + "sc4pglcl", "Pharaoh's Gold Club (Bellfruit) (Scorpion 4) (set 1)", + "sc4pglcla", "Pharaoh's Gold Club (Bellfruit) (Scorpion 4) (set 2)", + "sc4pglclb", "Pharaoh's Gold Club (Bellfruit) (Scorpion 4) (set 3)", + "sc4pglclc", "Pharaoh's Gold Club (Bellfruit) (Scorpion 4) (set 4)", + "sc4pglcld", "Pharaoh's Gold Club (Bellfruit) (Scorpion 4) (set 5)", + "sc4pglcle", "Pharaoh's Gold Club (Bellfruit) (Scorpion 4) (set 6)", + "sc4pglclf", "Pharaoh's Gold Club (Bellfruit) (Scorpion 4) (set 7)", + "sc4pglclg", "Pharaoh's Gold Club (Bellfruit) (Scorpion 4) (set 8)", + "sc4pglclh", "Pharaoh's Gold Club (Bellfruit) (Scorpion 4) (set 9)", + "sc4pglcs", "Pharaoh's Gold Casino (Dutch) (Bellfruit) (Scorpion 4) (set 1)", + "sc4pglcsa", "Pharaoh's Gold Casino (Dutch) (Bellfruit) (Scorpion 4) (set 2)", + "sc4pglcsb", "Pharaoh's Gold Casino (Dutch) (Bellfruit) (Scorpion 4) (set 3)", + "sc4pgold", "Pharaoh's Gold (Bellfruit) (Scorpion 4) (set 1)", + "sc4pgolda", "Pharaoh's Gold (Bellfruit) (Scorpion 4) (set 2)", + "sc4pgoldb", "Pharaoh's Gold (Bellfruit) (Scorpion 4) (set 3)", + "sc4pgoldc", "Pharaoh's Gold (Bellfruit) (Scorpion 4) (set 4)", + "sc4pgoldd", "Pharaoh's Gold (Bellfruit) (Scorpion 4) (set 5)", + "sc4pgoldf", "Pharaoh's Gold (Bellfruit) (Scorpion 4) (set 6)", + "sc4pipe", "Piping Hot (Mazooma) (Scorpion 4) (set 1)", + "sc4pipea", "Piping Hot (Mazooma) (Scorpion 4) (set 2)", + "sc4pir", "The Prize Is Right (Bellfruit) (Scorpion 4) (set 1)", + "sc4pira", "The Prize Is Right (Bellfruit) (Scorpion 4) (set 2)", + "sc4pirb", "The Prize Is Right (Bellfruit) (Scorpion 4) (set 3)", + "sc4pirc", "The Prize Is Right (Bellfruit) (Scorpion 4) (set 4)", + "sc4pird", "The Prize Is Right (Bellfruit) (Scorpion 4) (set 5)", + "sc4pire", "The Prize Is Right (Bellfruit) (Scorpion 4) (set 6)", + "sc4pirf", "The Prize Is Right (Bellfruit) (Scorpion 4) (set 7)", + "sc4pirg", "The Prize Is Right (Bellfruit) (Scorpion 4) (set 8)", + "sc4plumb", "Plumb Crazy Club (413) (Qps) (Scorpion 4) (set 1)", + "sc4plumba", "Plumb Crazy Club (413) (Qps) (Scorpion 4) (set 2)", + "sc4plumbb", "Plumb Crazy Club (411) (Qps) (Scorpion 4) (set 1)", + "sc4plumbc", "Plumb Crazy Club (411) (Qps) (Scorpion 4) (set 2)", + "sc4plumbd", "Plumb Crazy Club (412) (Qps) (Scorpion 4) (set 1)", + "sc4plumbe", "Plumb Crazy Club (412) (Qps) (Scorpion 4) (set 2)", + "sc4pmani", "Pac Mania (PR2031, ANIA) (Mazooma) (Scorpion 4) (set 1)", + "sc4pmania", "Pac Mania (PR2031, ANIA) (Mazooma) (Scorpion 4) (set 2)", + "sc4po8", "Pieces Of Eight (V1.0) (Qps) (Scorpion 4) (set 1)", + "sc4po8a", "Pieces Of Eight (V1.1) (Qps) (Scorpion 4) (set 1)", + "sc4po8b", "Pieces Of Eight (V1.1) (Qps) (Scorpion 4) (set 2)", + "sc4po8c", "Pieces Of Eight (011) (Qps) (Scorpion 4) (set 1)", + "sc4po8d", "Pieces Of Eight (041) (Qps) (Scorpion 4) (set 1)", + "sc4po8e", "Pieces Of Eight (V1.0) (Qps) (Scorpion 4) (set 2)", + "sc4po8f", "Pieces Of Eight (V1.0) (Qps) (Scorpion 4) (set 3)", + "sc4po8g", "Pieces Of Eight (V1.1) (Qps) (Scorpion 4) (set 3)", + "sc4po8h", "Pieces Of Eight (V1.1) (Qps) (Scorpion 4) (set 4)", + "sc4po8i", "Pieces Of Eight (012) (Qps) (Scorpion 4) (set 1)", + "sc4po8j", "Pieces Of Eight (042) (Qps) (Scorpion 4) (set 1)", + "sc4po8k", "Pieces Of Eight (012) (Qps) (Scorpion 4) (set 2)", + "sc4po8l", "Pieces Of Eight (042) (Qps) (Scorpion 4) (set 2)", + "sc4po8m", "Pieces Of Eight (011) (Qps) (Scorpion 4) (set 2)", + "sc4po8n", "Pieces Of Eight (041) (Qps) (Scorpion 4) (set 2)", + "sc4pog", "Pots Of Gold (Bellfruit) (Scorpion 4) (set 1)", + "sc4poga", "Pots Of Gold (Bellfruit) (Scorpion 4) (set 2)", + "sc4pogb", "Pots Of Gold (Bellfruit) (Scorpion 4) (set 3)", + "sc4pogbl", "Pots Of Gold Club (Bellfruit) (Scorpion 4) (set 1)", + "sc4pogbla", "Pots Of Gold Club (Bellfruit) (Scorpion 4) (set 2)", + "sc4pogblb", "Pots Of Gold Club (Bellfruit) (Scorpion 4) (set 3)", + "sc4pogblc", "Pots Of Gold Club (Bellfruit) (Scorpion 4) (set 4)", + "sc4pogbld", "Pots Of Gold Club (Bellfruit) (Scorpion 4) (set 5)", + "sc4pogble", "Pots Of Gold Club (Bellfruit) (Scorpion 4) (set 6)", + "sc4pogc", "Pots Of Gold (Bellfruit) (Scorpion 4) (set 4)", + "sc4pogd", "Pots Of Gold (Bellfruit) (Scorpion 4) (set 5)", + "sc4poge", "Pots Of Gold (Bellfruit) (Scorpion 4) (set 6)", + "sc4pogf", "Pots Of Gold (Bellfruit) (Scorpion 4) (set 7)", + "sc4pogg", "Pots Of Gold (Bellfruit) (Scorpion 4) (set 8)", + "sc4pogh", "Pots Of Gold (Bellfruit) (Scorpion 4) (set 9)", + "sc4pogi", "Pots Of Gold (Bellfruit) (Scorpion 4) (set 10)", + "sc4polem", "Pole Position (Mazooma) (Scorpion 4) (set 1)", + "sc4polema", "Pole Position (Mazooma) (Scorpion 4) (set 2)", + "sc4polemb", "Pole Position (Mazooma) (Scorpion 4) (set 3)", + "sc4polemc", "Pole Position (Mazooma) (Scorpion 4) (set 4)", + "sc4polemd", "Pole Position (Mazooma) (Scorpion 4) (set 5)", + "sc4polen", "Pole Position (German) (PR7012, GPOS) (Nova) (Scorpion 4)", + "sc4polic", "Police Squid (V1.0) (Qps) (Scorpion 4) (set 1)", + "sc4polica", "Police Squid (V2.0) (Qps) (Scorpion 4) (set 1)", + "sc4policb", "Police Squid (V1.0) (Qps) (Scorpion 4) (set 2)", + "sc4policc", "Police Squid (V2.0) (Qps) (Scorpion 4) (set 2)", + "sc4pony", "Pony Express (Bellfruit) (Scorpion 4) (set 1)", + "sc4ponya", "Pony Express (Bellfruit) (Scorpion 4) (set 2)", + "sc4ponyb", "Pony Express (Bellfruit) (Scorpion 4) (set 3)", + "sc4ponyc", "Pony Express (Bellfruit) (Scorpion 4) (set 4)", + "sc4ponyd", "Pony Express (Bellfruit) (Scorpion 4) (set 5)", + "sc4ponye", "Pony Express (Bellfruit) (Scorpion 4) (set 6)", + "sc4popey", "Popeye (Mazooma) (Scorpion 4) (set 1)", + "sc4popeya", "Popeye (Mazooma) (Scorpion 4) (set 2)", + "sc4popeyb", "Popeye (Mazooma) (Scorpion 4) (set 3)", + "sc4popeyc", "Popeye (Mazooma) (Scorpion 4) (set 4)", + "sc4popeyd", "Popeye (Mazooma) (Scorpion 4) (set 5)", + "sc4popeye", "Popeye (Mazooma) (Scorpion 4) (set 6)", + "sc4potp", "Pick Of The Pack (Bellfruit) (Scorpion 4) (set 1)", + "sc4potpa", "Pick Of The Pack (Bellfruit) (Scorpion 4) (set 2)", + "sc4potsh", "Pot Shot (Qps) (Scorpion 4) (set 1)", + "sc4potsha", "Pot Shot (Qps) (Scorpion 4) (set 2)", + "sc4pp", "Pink Panther (Mazooma) (Scorpion 4) (set 1)", + "sc4ppa", "Pink Panther (Mazooma) (Scorpion 4) (set 2)", + "sc4ppb", "Pink Panther (Mazooma) (Scorpion 4) (set 3)", + "sc4ppc", "Pink Panther (Mazooma) (Scorpion 4) (set 4)", + "sc4ppclb", "Pink Panther Club (411) (Qps) (Scorpion 4) (set 1)", + "sc4ppclba", "Pink Panther Club (412) (Qps) (Scorpion 4) (set 1)", + "sc4ppclbb", "Pink Panther Club (411) (Qps) (Scorpion 4) (set 2)", + "sc4ppclbc", "Pink Panther Club (412) (Qps) (Scorpion 4) (set 2)", + "sc4ppcr", "Pink Panther Clouseau's Revenge (Mazooma) (Scorpion 4) (set 1)", + "sc4ppcra", "Pink Panther Clouseau's Revenge (Mazooma) (Scorpion 4) (set 2)", + "sc4ppcrb", "Pink Panther Clouseau's Revenge (Mazooma) (Scorpion 4) (set 3)", + "sc4ppcrd", "Pink Panther Clouseau's Revenge (Mazooma) (Scorpion 4) (set 4)", + "sc4ppcre", "Pink Panther Clouseau's Revenge (Mazooma) (Scorpion 4) (set 5)", + "sc4ppcrf", "Pink Panther Clouseau's Revenge (Mazooma) (Scorpion 4) (set 6)", + "sc4ppcrg", "Pink Panther Clouseau's Revenge (Mazooma) (Scorpion 4) (set 7)", + "sc4ppcrh", "Pink Panther Clouseau's Revenge (Mazooma) (Scorpion 4) (set 8)", + "sc4ppcri", "Pink Panther Clouseau's Revenge (Mazooma) (Scorpion 4) (set 9)", + "sc4ppcrj", "Pink Panther Clouseau's Revenge (Mazooma) (Scorpion 4) (set 10)", + "sc4ppcrtb", "Pink Panther Clouseau's Revenge Top Box (Mazooma) (Scorpion 4)", + "sc4ppctc", "Pink Panther Crack The Code (Bellfruit) (Scorpion 4) (set 1)", + "sc4ppctca", "Pink Panther Crack The Code (Bellfruit) (Scorpion 4) (set 2)", + "sc4ppctcb", "Pink Panther Crack The Code (Bellfruit) (Scorpion 4) (set 3)", + "sc4ppctcc", "Pink Panther Crack The Code (Bellfruit) (Scorpion 4) (set 4)", + "sc4ppctcd", "Pink Panther Crack The Code (Bellfruit) (Scorpion 4) (set 5)", + "sc4ppctce", "Pink Panther Crack The Code (Bellfruit) (Scorpion 4) (set 6)", + "sc4ppctcf", "Pink Panther Crack The Code (Bellfruit) (Scorpion 4) (set 7)", + "sc4ppctcg", "Pink Panther Crack The Code (Bellfruit) (Scorpion 4) (set 8)", + "sc4ppd", "Pink Panther (Mazooma) (Scorpion 4) (set 5)", + "sc4ppdym", "Pink Panther Double Your Money (Mazooma) (Scorpion 4) (set 1)", + "sc4ppdymb", "Pink Panther Double Your Money (Mazooma) (Scorpion 4) (set 2)", + "sc4ppdymc", "Pink Panther Double Your Money (Mazooma) (Scorpion 4) (set 3)", + "sc4ppdymd", "Pink Panther Double Your Money (Mazooma) (Scorpion 4) (set 4)", + "sc4ppdymf", "Pink Panther Double Your Money (Mazooma) (Scorpion 4) (set 5)", + "sc4ppdymg", "Pink Panther Double Your Money (Mazooma) (Scorpion 4) (set 6)", + "sc4ppdymh", "Pink Panther Double Your Money (Mazooma) (Scorpion 4) (set 7)", + "sc4ppdymi", "Pink Panther Double Your Money (Mazooma) (Scorpion 4) (set 8)", + "sc4ppdymtb", "Pink Panther Double Your Money Top Box (Mazooma) (Scorpion 4) (set 1)", + "sc4ppdymtba", "Pink Panther Double Your Money Top Box (Mazooma) (Scorpion 4) (set 2)", + "sc4ppsag", "Pink Panther Strikes Again (Mazooma) (Scorpion 4) (set 1)", + "sc4ppsaga", "Pink Panther Strikes Again (Mazooma) (Scorpion 4) (set 2)", + "sc4ppsagb", "Pink Panther Strikes Again (Mazooma) (Scorpion 4) (set 3)", + "sc4ppsagc", "Pink Panther Strikes Again (Mazooma) (Scorpion 4) (set 4)", + "sc4ppsagd", "Pink Panther Strikes Again (Mazooma) (Scorpion 4) (set 5)", + "sc4ppsage", "Pink Panther Strikes Again (Mazooma) (Scorpion 4) (set 6)", + "sc4ppsagf", "Pink Panther Strikes Again (Mazooma) (Scorpion 4) (set 7)", + "sc4ppsagg", "Pink Panther Strikes Again (Mazooma) (Scorpion 4) (set 8)", + "sc4ppsagh", "Pink Panther Strikes Again (Mazooma) (Scorpion 4) (set 9)", + "sc4ppsagi", "Pink Panther Strikes Again (Mazooma) (Scorpion 4) (set 10)", + "sc4pstat", "Paystation (V2.0) (Qps) (Scorpion 4) (set 1)", + "sc4pstata", "Paystation (V2.1) (Qps) (Scorpion 4) (set 1)", + "sc4pstatb", "Paystation (V2.0) (Qps) (Scorpion 4) (set 2)", + "sc4pstatc", "Paystation (V2.1) (Qps) (Scorpion 4) (set 2)", + "sc4pstatd", "Paystation (V2.2) (Qps) (Scorpion 4)", + "sc4pstate", "Paystation (V2.3) (Qps) (Scorpion 4)", + "sc4pstatf", "Paystation (V011) (Qps) (Scorpion 4) (set 1)", + "sc4pstatg", "Paystation (V041) (Qps) (Scorpion 4) (set 1)", + "sc4pstath", "Paystation (V4.0) (Qps) (Scorpion 4) (set 1)", + "sc4pstati", "Paystation (V011) (Qps) (Scorpion 4) (set 2)", + "sc4pstatj", "Paystation (V041) (Qps) (Scorpion 4) (set 2)", + "sc4pstatm", "Paystation (V4.0) (Qps) (Scorpion 4) (set 2)", + "sc4pstatn", "Paystation (V012) (Qps) (Scorpion 4) (set 1)", + "sc4pstato", "Paystation (V042) (Qps) (Scorpion 4) (set 1)", + "sc4pstatp", "Paystation (V012) (Qps) (Scorpion 4) (set 2)", + "sc4pstatq", "Paystation (V042) (Qps) (Scorpion 4) (set 2)", + "sc4pwcrz", "Power Crazy (Bellfruit) (Scorpion 4) (set 1)", + "sc4pwcrza", "Power Crazy (Bellfruit) (Scorpion 4) (set 2)", + "sc4pwcrzb", "Power Crazy (Bellfruit) (Scorpion 4) (set 3)", + "sc4pwcrzc", "Power Crazy SP98 (Bellfruit) (Scorpion 4) (set 1)", + "sc4pwcrzd", "Power Crazy SP98 (Bellfruit) (Scorpion 4) (set 2)", + "sc4pwcrze", "Power Crazy (Bellfruit) (Scorpion 4) (set 4)", + "sc4pwcrzf", "Power Crazy (Bellfruit) (Scorpion 4) (set 5)", + "sc4pwcrzg", "Power Crazy (Bellfruit) (Scorpion 4) (set 6)", + "sc4pwcrzh", "Power Crazy SP98 (Bellfruit) (Scorpion 4) (set 3)", + "sc4pwcrzi", "Power Crazy SP98 (Bellfruit) (Scorpion 4) (set 4)", + "sc4pwrbl", "Powerball (Bellfruit) (Scorpion 4) (set 1)", + "sc4pwrbla", "Powerball (Bellfruit) (Scorpion 4) (set 2)", + "sc4pwrbq", "Power Ball (Qps) (Scorpion 4) (set 1)", + "sc4pwrbqa", "Power Ball (Qps) (Scorpion 4) (set 2)", + "sc4pwrpl", "Power Play (Mazooma) (Scorpion 4) (set 1)", + "sc4pwrpla", "Power Play (Mazooma) (Scorpion 4) (set 2)", + "sc4pwrplb", "Power Play (Mazooma) (Scorpion 4) (set 3)", + "sc4pwrplc", "Power Play (Mazooma) (Scorpion 4) (set 4)", + "sc4pwrsg", "Power Surge (Qps) (Scorpion 4) (set 1)", + "sc4pwrsga", "Power Surge (Qps) (Scorpion 4) (set 2)", + "sc4pwrsgb", "Power Surge (Qps) (Scorpion 4) (set 3)", + "sc4pwrsgc", "Power Surge (Qps) (Scorpion 4) (set 4)", + "sc4qmodo", "Quazzi Mo' Dough (Qps) (Scorpion 4) (set 1)", + "sc4qmodoa", "Quazzi Mo' Dough (Qps) (Scorpion 4) (set 2)", + "sc4qmodob", "Quazzi Mo' Dough (Qps) (Scorpion 4) (set 3)", + "sc4qmodoc", "Quazzi Mo' Dough (Qps) (Scorpion 4) (set 4)", + "sc4qmodod", "Quazzi Mo' Dough (Qps) (Scorpion 4) (set 5)", + "sc4quart", "Quaterback (Mazooma) (Scorpion 4) (set 1)", + "sc4quarta", "Quaterback (Mazooma) (Scorpion 4) (set 2)", + "sc4quartb", "Quaterback (PR2072) (Italian) (Mazooma) (Scorpion 4) (set 1)", + "sc4quartc", "Quaterback (PR2064) (German) (Mazooma) (Scorpion 4) (set 1)", + "sc4quartd", "Quaterback (PR2064) (German) (Mazooma) (Scorpion 4) (set 2)", + "sc4quarte", "Quaterback (PR2072) (Italian) (Mazooma) (Scorpion 4) (set 2)", + "sc4quartf", "Quaterback (PR2064) (German) (Mazooma) (Scorpion 4) (set 3)", + "sc4quartg", "Quaterback (PR2064) (German) (Mazooma) (Scorpion 4) (set 4)", + "sc4quarth", "Quaterback (PR2064) (German) (Mazooma) (Scorpion 4) (set 5)", + "sc4quarti", "Quaterback (PR2072) (Italian) (Mazooma) (Scorpion 4) (set 3)", + "sc4quartj", "Quaterback (PR2064) (German) (Mazooma) (Scorpion 4) (set 6)", + "sc4quartk", "Quaterback (PR2072) (Italian) (Mazooma) (Scorpion 4) (set 4)", + "sc4quartl", "Quaterback (PR2064) (German) (Mazooma) (Scorpion 4) (set 7)", + "sc4quartm", "Quaterback (PR2064) (German) (Mazooma) (Scorpion 4) (set 8)", + "sc4quidr", "Quid Rock (Qps) (Scorpion 4) (set 1)", + "sc4quidra", "Quid Rock (Qps) (Scorpion 4) (set 2)", + "sc4quidrb", "Quid Rock (Qps) (Scorpion 4) (set 3)", + "sc4quidrc", "Quid Rock (Qps) (Scorpion 4) (set 4)", + "sc4quidv", "Quid Vicious (Mazooma) (Scorpion 4) (set 1)", + "sc4quidva", "Quid Vicious (Mazooma) (Scorpion 4) (set 2)", + "sc4quidvb", "Quid Vicious (Mazooma) (Scorpion 4) (set 3)", + "sc4quidvc", "Quid Vicious (Mazooma) (Scorpion 4) (set 4)", + "sc4r2r", "Reel To Reel (Mazooma) (Scorpion 4) (set 1)", + "sc4r2ra", "Reel To Reel (Mazooma) (Scorpion 4) (set 2)", + "sc4r2rb", "Reel To Reel (Mazooma) (Scorpion 4) (set 3)", + "sc4r2rc", "Reel To Reel (Mazooma) (Scorpion 4) (set 4)", + "sc4r66", "Route 66 (Mazooma) (Scorpion 4)", + "sc4rbank", "Royle Banker (Bellfruit) (Scorpion 4) (set 1)", + "sc4rbanka", "Royle Banker (Bellfruit) (Scorpion 4) (set 2)", + "sc4rbankb", "Royle Banker (Bellfruit) (Scorpion 4) (set 3)", + "sc4rbankc", "Royle Banker (Bellfruit) (Scorpion 4) (set 4)", + "sc4rdrag", "Red Dragon (011) (Qps) (Scorpion 4) (set 1)", + "sc4rdraga", "Red Dragon (011) (Qps) (Scorpion 4) (set 2)", + "sc4rdragc", "Red Dragon (021) (Qps) (Scorpion 4) (set 1)", + "sc4rdragf", "Red Dragon (021) (Qps) (Scorpion 4) (set 2)", + "sc4rdrcl", "Red Dragon Club (411) (Qps) (Scorpion 4) (set 1)", + "sc4rdrcla", "Red Dragon Club (412) (Qps) (Scorpion 4)", + "sc4rdrclb", "Red Dragon Club (411) (Qps) (Scorpion 4) (set 2)", + "sc4redad", "Red Alert (Dutch) (Bellfruit) (Scorpion 4) (set 1)", + "sc4redada", "Red Alert (Dutch) (Bellfruit) (Scorpion 4) (set 2)", + "sc4redsq", "Red Square (Mazooma) (Scorpion 4) (set 1)", + "sc4redsqa", "Red Square (Mazooma) (Scorpion 4) (set 2)", + "sc4redsqb", "Red Square (Mazooma) (Scorpion 4) (set 3)", + "sc4redsqc", "Red Square (Mazooma) (Scorpion 4) (set 4)", + "sc4relcz", "Reely Crazy (Bellfruit) (Scorpion 4) (set 1)", + "sc4relcza", "Reely Crazy (Bellfruit) (Scorpion 4) (set 2)", + "sc4relczb", "Reely Crazy (Bellfruit) (Scorpion 4) (set 3)", + "sc4relczc", "Reely Crazy (Bellfruit) (Scorpion 4) (set 4)", + "sc4revo", "Revolver (Mazooma) (Scorpion 4) (set 1)", + "sc4revoa", "Revolver (Mazooma) (Scorpion 4) (set 2)", + "sc4revob", "Revolver (Mazooma) (Scorpion 4) (set 3)", + "sc4revoc", "Revolver (Mazooma) (Scorpion 4) (set 4)", + "sc4revod", "Revolver (Mazooma) (Scorpion 4) (set 5)", + "sc4revoe", "Revolver (Mazooma) (Scorpion 4) (set 6)", + "sc4rhx", "Red Hot X (Mazooma) (Scorpion 4) (set 1)", + "sc4rhxa", "Red Hot X (Mazooma) (Scorpion 4) (set 2)", + "sc4rhxb", "Red Hot X (Mazooma) (Scorpion 4) (set 9)", + "sc4rhxc", "Red Hot X (Mazooma) (Scorpion 4) (set 10)", + "sc4rhxcl", "Red Hot X Club (Mazooma) (Scorpion 4) (set 1)", + "sc4rhxcla", "Red Hot X Club (Mazooma) (Scorpion 4) (set 2)", + "sc4rhxclb", "Red Hot X Club (Mazooma) (Scorpion 4) (set 3)", + "sc4rhxclc", "Red Hot X Club (Mazooma) (Scorpion 4) (set 4)", + "sc4rhxcs", "Red Hot X Casino (Mazooma) (Scorpion 4) (set 1)", + "sc4rhxcsa", "Red Hot X Casino (Mazooma) (Scorpion 4) (set 2)", + "sc4rhxcsb", "Red Hot X Casino (Mazooma) (Scorpion 4) (set 3)", + "sc4rhxcsc", "Red Hot X Casino (Mazooma) (Scorpion 4) (set 4)", + "sc4rhxcsd", "Red Hot X Casino (Mazooma) (Scorpion 4) (set 5)", + "sc4rhxcse", "Red Hot X Casino (Mazooma) (Scorpion 4) (set 6)", + "sc4rhxd", "Red Hot X (Mazooma) (Scorpion 4) (set 3)", + "sc4rhxe", "Red Hot X (Mazooma) (Scorpion 4) (set 4)", + "sc4rhxf", "Red Hot X (Mazooma) (Scorpion 4) (set 11)", + "sc4rhxg", "Red Hot X (Mazooma) (Scorpion 4) (set 12)", + "sc4rhxh", "Red Hot X (Mazooma) (Scorpion 4) (set 13)", + "sc4rhxi", "Red Hot X (Mazooma) (Scorpion 4) (set 14)", + "sc4rhxj", "Red Hot X (Mazooma) (Scorpion 4) (set 5)", + "sc4rhxk", "Red Hot X (Mazooma) (Scorpion 4) (set 6)", + "sc4rhxl", "Red Hot X (Mazooma) (Scorpion 4) (set 7)", + "sc4rhxm", "Red Hot X (Mazooma) (Scorpion 4) (set 8)", + "sc4rhxn", "Red Hot X (Mazooma) (Scorpion 4) (set 15)", + "sc4rhxo", "Red Hot X (Mazooma) (Scorpion 4) (set 16)", + "sc4rhxp", "Red Hot X (Mazooma) (Scorpion 4) (set 17)", + "sc4rhxq", "Red Hot X (Mazooma) (Scorpion 4) (set 18)", + "sc4rhxr", "Red Hot X (Mazooma) (Scorpion 4) (set 19)", + "sc4rhxs", "Red Hot X (Mazooma) (Scorpion 4) (set 20)", + "sc4rhxt", "Red Hot X (Mazooma) (Scorpion 4) (set 21)", + "sc4rhxu", "Red Hot X (Mazooma) (Scorpion 4) (set 22)", + "sc4rhxv", "Red Hot X (Mazooma) (Scorpion 4) (set 23)", + "sc4rhxw", "Red Hot X (Mazooma) (Scorpion 4) (set 24)", + "sc4rich", "Rich Geezer (Bellfruit) (Scorpion 4) (set 1)", + "sc4richa", "Rich Geezer (Bellfruit) (Scorpion 4) (set 2)", + "sc4richb", "Rich Geezer (Bellfruit) (Scorpion 4) (set 3)", + "sc4richc", "Rich Geezer (Bellfruit) (Scorpion 4) (set 4)", + "sc4richd", "Rich Geezer (Bellfruit) (Scorpion 4) (set 5)", + "sc4riche", "Rich Geezer (Bellfruit) (Scorpion 4) (set 6)", + "sc4richf", "Rich Geezer (Bellfruit) (Scorpion 4) (set 7)", + "sc4richg", "Rich Geezer (Bellfruit) (Scorpion 4) (set 8)", + "sc4richh", "Rich Geezer (Bellfruit) (Scorpion 4) (set 9)", + "sc4richi", "Rich Geezer (Bellfruit) (Scorpion 4) (set 10)", + "sc4richj", "Rich Geezer (Bellfruit) (Scorpion 4) (set 11)", + "sc4richk", "Rich Geezer (Bellfruit) (Scorpion 4) (set 12)", + "sc4richl", "Rich Geezer (Bellfruit) (Scorpion 4) (set 13)", + "sc4rio", "Rio Grande (Dutch) (Bellfruit) (Scorpion 4)", + "sc4rmo", "Roll Me Over Casino (Bellfruit) (Scorpion 4) (set 1)", + "sc4rmoa", "Roll Me Over Casino (Bellfruit) (Scorpion 4) (set 2)", + "sc4rogds", "Rogan Dosh (Qps) (Scorpion 4) (set 1)", + "sc4rogdsa", "Rogan Dosh (Qps) (Scorpion 4) (set 2)", + "sc4rogdsb", "Rogan Dosh (Qps) (Scorpion 4) (set 3)", + "sc4rogdsc", "Rogan Dosh (Qps) (Scorpion 4) (set 4)", + "sc4rogdsd", "Rogan Dosh (v2.0) (Qps) (Scorpion 4) (set 1)", + "sc4rogdse", "Rogan Dosh (v1.6) (Qps) (Scorpion 4)", + "sc4rogdsf", "Rogan Dosh (v2.0) (Qps) (Scorpion 4) (set 2)", + "sc4rogdsg", "Rogan Dosh (v2.1) (Qps) (Scorpion 4)", + "sc4roksc", "Rocket Science (V1.1) (Qps) (Scorpion 4) (set 1)", + "sc4roksca", "Rocket Science (011) (Qps) (Scorpion 4) (set 1)", + "sc4rokscb", "Rocket Science (V1.1) (Qps) (Scorpion 4) (set 2)", + "sc4rokscc", "Rocket Science (011) (Qps) (Scorpion 4) (set 2)", + "sc4rollo", "Rollover Jackpot (PR7002) (Mazooma) (Scorpion 4) (set 1)", + "sc4rolloa", "Rollover Jackpot (PR7002) (Mazooma) (Scorpion 4) (set 2)", + "sc4rollob", "Rollover Jackpot (PR7032) (Mazooma) (Scorpion 4) (set 1)", + "sc4rolloc", "Rollover Jackpot (PR7002) (Mazooma) (Scorpion 4) (set 3)", + "sc4rollod", "Rollover Jackpot (PR7002) (Mazooma) (Scorpion 4) (set 4)", + "sc4rolloe", "Rollover Jackpot (PR7032) (Mazooma) (Scorpion 4) (set 2)", + "sc4rollof", "Rollover Jackpot (PR7032) (Mazooma) (Scorpion 4) (set 3)", + "sc4rosts", "Ronnie O'Sullivan's Tournament Snooker (Bellfruit) (Scorpion 4) (set 1)", + "sc4rostsa", "Ronnie O'Sullivan's Tournament Snooker (Bellfruit) (Scorpion 4) (set 2)", + "sc4rostsb", "Ronnie O'Sullivan's Tournament Snooker (Bellfruit) (Scorpion 4) (set 3)", + "sc4rostsc", "Ronnie O'Sullivan's Tournament Snooker (Bellfruit) (Scorpion 4) (set 4)", + "sc4rostsd", "Ronnie O'Sullivan's Tournament Snooker (Bellfruit) (Scorpion 4) (set 5)", + "sc4rostse", "Ronnie O'Sullivan's Tournament Snooker (Bellfruit) (Scorpion 4) (set 6)", + "sc4rostsf", "Ronnie O'Sullivan's Tournament Snooker (Bellfruit) (Scorpion 4) (set 7)", + "sc4rostsg", "Ronnie O'Sullivan's Tournament Snooker (Bellfruit) (Scorpion 4) (set 8)", + "sc4rotc", "Return Of The Count (Mazooma) (Scorpion 4) (set 1)", + "sc4rotca", "Return Of The Count (Mazooma) (Scorpion 4) (set 2)", + "sc4rotcb", "Return Of The Count (Mazooma) (Scorpion 4) (set 3)", + "sc4rotcc", "Return Of The Count (Mazooma) (Scorpion 4) (set 4)", + "sc4rotcd", "Return Of The Count (Mazooma) (Scorpion 4) (set 5)", + "sc4rovrt", "Rovers Return (Mazooma) (Scorpion 4) (set 1)", + "sc4rovrta", "Rovers Return (Mazooma) (Scorpion 4) (set 2)", + "sc4rovrtb", "Rovers Return (Mazooma) (Scorpion 4) (set 3)", + "sc4rovrtc", "Rovers Return (Mazooma) (Scorpion 4) (set 4)", + "sc4rovrtd", "Rovers Return (Mazooma) (Scorpion 4) (set 5)", + "sc4rovrte", "Rovers Return (Mazooma) (Scorpion 4) (set 6)", + "sc4royle", "Royle Family (Bellfruit) (Scorpion 4) (set 1)", + "sc4roylea", "Royle Family (Bellfruit) (Scorpion 4) (set 2)", + "sc4royleb", "Royle Family (Bellfruit) (Scorpion 4) (set 3)", + "sc4roylec", "Royle Family (Bellfruit) (Scorpion 4) (set 4)", + "sc4royled", "Royle Family (Bellfruit) (Scorpion 4) (set 5)", + "sc4roylee", "Royle Family (Bellfruit) (Scorpion 4) (set 6)", + "sc4roylef", "Royle Family (REV 2) (Bellfruit) (Scorpion 4) (set 1)", + "sc4royleg", "Royle Family (REV 2) (Bellfruit) (Scorpion 4) (set 2)", + "sc4royleh", "Royle Family (Bellfruit) (Scorpion 4) (set 7)", + "sc4roylei", "Royle Family (Bellfruit) (Scorpion 4) (set 8)", + "sc4roylej", "Royle Family (REV 2) (Bellfruit) (Scorpion 4) (set 3)", + "sc4roylek", "Royle Family (REV 2) (Bellfruit) (Scorpion 4) (set 4)", + "sc4roylel", "Royle Family (REV 2) (Bellfruit) (Scorpion 4) (set 5)", + "sc4roylem", "Royle Family (REV 2) (Bellfruit) (Scorpion 4) (set 6)", + "sc4rt", "Rolling Thunder (Mazooma) (Scorpion 4) (set 1)", + "sc4rta", "Rolling Thunder (Mazooma) (Scorpion 4) (set 2)", + "sc4rtb", "Rolling Thunder (Mazooma) (Scorpion 4) (set 3)", + "sc4rtc", "Rolling Thunder (Mazooma) (Scorpion 4) (set 4)", + "sc4rtclb", "Rolling Thunder Club (Mazooma) (Scorpion 4) (set 1)", + "sc4rtclba", "Rolling Thunder Club (Mazooma) (Scorpion 4) (set 2)", + "sc4rtd", "Rolling Thunder (Mazooma) (Scorpion 4) (set 5)", + "sc4rttt", "Rise To The Top (Mazooma) (Scorpion 4) (set 1)", + "sc4rttta", "Rise To The Top (Mazooma) (Scorpion 4) (set 2)", + "sc4rtttb", "Rise To The Top (Mazooma) (Scorpion 4) (set 3)", + "sc4rtttc", "Rise To The Top (Mazooma) (Scorpion 4) (set 4)", + "sc4rtttd", "Rise To The Top (Mazooma) (Scorpion 4) (set 5)", + "sc4rttte", "Rise To The Top (Mazooma) (Scorpion 4) (set 6)", + "sc4rvl", "Revolution (Dutch) (Bellfruit) (Scorpion 4)", + "sc4rvlnx", "Revolution The Next (Dutch) (Bellfruit) (Scorpion 4)", + "sc4s16", "Section 16 (Mazooma) (Scorpion 4) (set 1)", + "sc4s16a", "Section 16 (Mazooma) (Scorpion 4) (set 2)", + "sc4s2k", "Sinbad 2000 (German) (Nova) (Scorpion 4)", + "sc4s6c", "Super 6 Club (65% Fixed) (Bellfruit) (Scorpion 4) (set 1)", + "sc4s6ca", "Super 6 Club (Bellfruit) (Scorpion 4) (set 1)", + "sc4s6cb", "Super 6 Club (65% Fixed) (Bellfruit) (Scorpion 4) (set 2)", + "sc4s6cc", "Super 6 Club (Bellfruit) (Scorpion 4) (set 2)", + "sc4s6cd", "Super 6 Club (Bellfruit) (Scorpion 4) (set 3)", + "sc4s6ce", "Super 6 Club (Bellfruit) (Scorpion 4) (set 4)", + "sc4sace", "Space Ace (Qps) (Scorpion 4) (set 1)", + "sc4sacea", "Space Ace (Qps) (Scorpion 4) (set 2)", + "sc4sahed", "Streaks Ahead (Qps) (Scorpion 4) (set 1)", + "sc4saheda", "Streaks Ahead (Qps) (Scorpion 4) (set 2)", + "sc4sahedb", "Streaks Ahead (Qps) (Scorpion 4) (set 3)", + "sc4sbust", "Space Buster (Qps) (Scorpion 4) (set 1)", + "sc4sbusta", "Space Buster (Qps) (Scorpion 4) (set 2)", + "sc4sdr", "Super Diamonds & Rubies (PR6921) (Bellfruit) (Scorpion 4) (set 1)", + "sc4sdra", "Super Diamonds & Rubies SP98 (PR6921) (Bellfruit) (Scorpion 4) (set 1)", + "sc4sdrb", "Super Diamonds & Rubies (PR6921) (Bellfruit) (Scorpion 4) (set 2)", + "sc4sdrc", "Super Diamonds & Rubies SP98 (PR6921) (Bellfruit) (Scorpion 4) (set 2)", + "sc4sf", "Street Fighter (Mazooma) (Scorpion 4) (set 1)", + "sc4sfa", "Street Fighter (Mazooma) (Scorpion 4) (set 2)", + "sc4sfb", "Street Fighter (Mazooma) (Scorpion 4) (set 3)", + "sc4sfc", "Street Fighter (Mazooma) (Scorpion 4) (set 4)", + "sc4sfd", "Street Fighter (Mazooma) (Scorpion 4) (set 5)", + "sc4showt", "Showtime (Bellfruit) (Scorpion 4) (set 1)", + "sc4showta", "Showtime (Bellfruit) (Scorpion 4) (set 2)", + "sc4showtb", "Showtime (Bellfruit) (Scorpion 4) (set 3)", + "sc4showtc", "Showtime (Bellfruit) (Scorpion 4) (set 4)", + "sc4showtd", "Showtime (Bellfruit) (Scorpion 4) (set 5)", + "sc4showte", "Showtime (Bellfruit) (Scorpion 4) (set 6)", + "sc4showtf", "Showtime (Bellfruit) (Scorpion 4) (set 7)", + "sc4sidsp", "Side Splitter (Mazooma) (Scorpion 4) (set 1)", + "sc4sidspa", "Side Splitter (Mazooma) (Scorpion 4) (set 2)", + "sc4sidspb", "Side Splitter (Mazooma) (Scorpion 4) (set 3)", + "sc4sidspc", "Side Splitter (Mazooma) (Scorpion 4) (set 4)", + "sc4sirpz", "Sir Prize (PR2004, SIRV) (Mazooma) (Scorpion 4)", + "sc4sirpza", "Sir Prize (PR7079, SIRP) (Mazooma) (Scorpion 4) (set 1)", + "sc4sirpzb", "Sir Prize (PR7079, SIRP) (Mazooma) (Scorpion 4) (set 2)", + "sc4slad", "Snakes & Ladders (Bellfruit) (Scorpion 4) (set 1)", + "sc4slada", "Snakes & Ladders (Bellfruit) (Scorpion 4) (set 2)", + "sc4sladb", "Snakes & Ladders (Bellfruit) (Scorpion 4) (set 3)", + "sc4sladc", "Snakes & Ladders (Bellfruit) (Scorpion 4) (set 4)", + "sc4sladd", "Snakes & Ladders (Bellfruit) (Scorpion 4) (set 5)", + "sc4slade", "Snakes & Ladders (Bellfruit) (Scorpion 4) (set 6)", + "sc4sladf", "Snakes & Ladders (Bellfruit) (Scorpion 4) (set 7)", + "sc4sladg", "Snakes & Ladders (Bellfruit) (Scorpion 4) (set 8)", + "sc4sladh", "Snakes & Ladders (Bellfruit) (Scorpion 4) (set 9)", + "sc4slc", "Snakes & Ladders Club (Bellfruit) (Scorpion 4) (set 1)", + "sc4slca", "Snakes & Ladders Club (Bellfruit) (Scorpion 4) (set 8)", + "sc4slcb", "Snakes & Ladders Club (Bellfruit) (Scorpion 4) (set 2)", + "sc4slcc", "Snakes & Ladders Club (Bellfruit) (Scorpion 4) (set 3)", + "sc4slcd", "Snakes & Ladders Club (Bellfruit) (Scorpion 4) (set 9)", + "sc4slce", "Snakes & Ladders Club (Bellfruit) (Scorpion 4) (set 4)", + "sc4slcf", "Snakes & Ladders Club (Bellfruit) (Scorpion 4) (set 10)", + "sc4slcg", "Snakes & Ladders Club (Bellfruit) (Scorpion 4) (set 11)", + "sc4slch", "Snakes & Ladders Club (Bellfruit) (Scorpion 4) (set 12)", + "sc4slci", "Snakes & Ladders Club (Bellfruit) (Scorpion 4) (set 5)", + "sc4slcj", "Snakes & Ladders Club (Bellfruit) (Scorpion 4) (set 13)", + "sc4slck", "Snakes & Ladders Club (Bellfruit) (Scorpion 4) (set 14)", + "sc4slcl", "Snakes & Ladders Club (Bellfruit) (Scorpion 4) (set 15)", + "sc4slcm", "Snakes & Ladders Club (Bellfruit) (Scorpion 4) (set 6)", + "sc4slcn", "Snakes & Ladders Club (Bellfruit) (Scorpion 4) (set 7)", + "sc4slih", "Some Like It Hot (Mazooma) (Scorpion 4) (set 1)", + "sc4sliha", "Some Like It Hot (Mazooma) (Scorpion 4) (set 2)", + "sc4slihb", "Some Like It Hot (Mazooma) (Scorpion 4) (set 3)", + "sc4slihc", "Some Like It Hot (Mazooma) (Scorpion 4) (set 4)", + "sc4slihd", "Some Like It Hot (Mazooma) (Scorpion 4) (set 5)", + "sc4slihe", "Some Like It Hot (Mazooma) (Scorpion 4) (set 6)", + "sc4smk7", "Smoking 7's (Bellfruit) (Scorpion 4)", + "sc4solgl", "Solid Gold (Bellfruit) (Scorpion 4) (set 1)", + "sc4solgla", "Solid Gold (Bellfruit) (Scorpion 4) (set 2)", + "sc4solglb", "Solid Gold (Bellfruit) (Scorpion 4) (set 3)", + "sc4solglc", "Solid Gold (Bellfruit) (Scorpion 4) (set 4)", + "sc4spark", "South Park (BFM) (Scorpion 4) (set 1)", + "sc4sparka", "South Park (BFM) (Scorpion 4) (set 2)", + "sc4sparkb", "South Park (BFM) (Scorpion 4) (set 3)", + "sc4sparkc", "South Park (BFM) (Scorpion 4) (set 4)", + "sc4sparkd", "South Park (BFM) (Scorpion 4) (set 5)", + "sc4sparke", "South Park (BFM) (Scorpion 4) (set 6)", + "sc4spice", "Spice It Up (Bellfruit) (Scorpion 4) (set 1)", + "sc4spicea", "Spice It Up (Bellfruit) (Scorpion 4) (set 2)", + "sc4spiceb", "Spice It Up (Bellfruit) (Scorpion 4) (set 3)", + "sc4spicec", "Spice It Up (Bellfruit) (Scorpion 4) (set 4)", + "sc4splgb", "Splash & Grab (Mazooma) (Scorpion 4) (set 1)", + "sc4splgba", "Splash & Grab (Mazooma) (Scorpion 4) (set 2)", + "sc4spred", "Spread Your Bet (Mazooma) (Scorpion 4)", + "sc4sprng", "Highly Sprung (Mazooma) (Scorpion 4)", + "sc4srr", "Snake Rattle 'n' Roll (Bellfruit) (Scorpion 4) (set 1)", + "sc4srra", "Snake Rattle 'n' Roll (Bellfruit) (Scorpion 4) (set 2)", + "sc4srrb", "Snake Rattle 'n' Roll (Bellfruit) (Scorpion 4) (set 3)", + "sc4srrc", "Snake Rattle 'n' Roll (Bellfruit) (Scorpion 4) (set 4)", + "sc4srrca", "Shake Rattle Roll Casino (Mazooma) (Scorpion 4) (set 5)", + "sc4srrcaa", "Shake Rattle Roll Casino (Mazooma) (Scorpion 4) (set 6)", + "sc4srrcab", "Shake Rattle Roll Casino (Mazooma) (Scorpion 4) (set 7)", + "sc4srrcac", "Shake Rattle Roll Casino (Mazooma) (Scorpion 4) (set 8)", + "sc4srrcad", "Shake Rattle Roll Casino (Mazooma) (Scorpion 4) (set 9)", + "sc4srrcae", "Shake Rattle Roll Casino (Mazooma) (Scorpion 4) (set 10)", + "sc4srrmz", "Shake Rattle Roll (Mazooma) (Scorpion 4) (Top Box)", + "sc4srrmza", "Shake Rattle Roll Casino (Mazooma) (Scorpion 4) (set 1)", + "sc4srrmzb", "Shake Rattle Roll Casino (Mazooma) (Scorpion 4) (set 2)", + "sc4srrmzc", "Shake Rattle Roll Casino (Mazooma) (Scorpion 4) (set 3)", + "sc4srrmzd", "Shake Rattle Roll Arcade (Mazooma) (Scorpion 4) (set 1)", + "sc4srrmze", "Shake Rattle Roll Casino (Mazooma) (Scorpion 4) (set 4)", + "sc4srrmzf", "Shake Rattle Roll Arcade (Mazooma) (Scorpion 4) (set 2)", + "sc4srrmzg", "Shake Rattle Roll Arcade (Mazooma) (Scorpion 4) (set 3)", + "sc4srrmzh", "Shake Rattle Roll Arcade (Mazooma) (Scorpion 4) (set 4)", + "sc4srrmzi", "Shake Rattle Roll Arcade (Mazooma) (Scorpion 4) (set 5)", + "sc4srrmzj", "Shake Rattle Roll Arcade (Mazooma) (Scorpion 4) (set 6)", + "sc4srrmzk", "Shake Rattle Roll Arcade (Mazooma) (Scorpion 4) (set 7)", + "sc4srrmzl", "Shake Rattle Roll Arcade (Mazooma) (Scorpion 4) (set 8)", + "sc4srrmzm", "Shake Rattle Roll Arcade (Mazooma) (Scorpion 4) (set 9)", + "sc4sslam", "Super Slam (Bellfruit) (Scorpion 4) (set 1)", + "sc4sslama", "Super Slam (Bellfruit) (Scorpion 4) (set 2)", + "sc4sstep", "Super Step (Qps) (Scorpion 4) (set 1)", + "sc4sstepa", "Super Step (Qps) (Scorpion 4) (set 2)", + "sc4sstepb", "Super Step (Qps / 21 Casino) (Scorpion 4)", + "sc4stag", "Stag Night (Bellfruit) (Scorpion 4) (set 1)", + "sc4staga", "Stag Night (Bellfruit) (Scorpion 4) (set 2)", + "sc4starp", "Starprize (Bellfruit) (Scorpion 4) (set 1)", + "sc4starpa", "Starprize (Bellfruit) (Scorpion 4) (set 2)", + "sc4starpb", "Starprize (Bellfruit) (Scorpion 4) (set 3)", + "sc4starpc", "Starprize (Bellfruit) (Scorpion 4) (set 4)", + "sc4starpd", "Starprize (Bellfruit) (Scorpion 4) (set 5)", + "sc4starpe", "Starprize (Bellfruit) (Scorpion 4) (set 6)", + "sc4starpf", "Starprize (Bellfruit) (Scorpion 4) (set 7)", + "sc4starpg", "Starprize (Bellfruit) (Scorpion 4) (set 8)", + "sc4starph", "Starprize (Bellfruit) (Scorpion 4) (set 9)", + "sc4starpi", "Starprize (Bellfruit) (Scorpion 4) (set 10)", + "sc4starpj", "Starprize (Bellfruit) (Scorpion 4) (set 11)", + "sc4starpk", "Starprize (Bellfruit) (Scorpion 4) (set 12)", + "sc4stirc", "Stir Crazy (Mazooma) (Scorpion 4) (set 1)", + "sc4stirca", "Stir Crazy (Mazooma) (Scorpion 4) (set 2)", + "sc4stircb", "Stir Crazy (Mazooma) (Scorpion 4) (set 3)", + "sc4stircc", "Stir Crazy (Mazooma) (Scorpion 4) (set 4)", + "sc4stircd", "Stir Crazy (Mazooma) (Scorpion 4) (set 5)", + "sc4stirce", "Stir Crazy (Mazooma) (Scorpion 4) (set 6)", + "sc4stircf", "Stir Crazy (Mazooma) (Scorpion 4) (set 7)", + "sc4stircg", "Stir Crazy (Mazooma) (Scorpion 4) (set 8)", + "sc4stirch", "Stir Crazy (Mazooma) (Scorpion 4) (set 9)", + "sc4stirci", "Stir Crazy (Mazooma) (Scorpion 4) (set 10)", + "sc4stircj", "Stir Crazy (Mazooma) (Scorpion 4) (set 11)", + "sc4stl", "Sky's The Limit, The (Bellfruit) (Scorpion 4) (set 1)", + "sc4stla", "Sky's The Limit, The (Bellfruit) (Scorpion 4) (set 2)", + "sc4stlb", "Sky's The Limit, The (Bellfruit) (Scorpion 4) (set 3)", + "sc4stlc", "Sky's The Limit, The (Bellfruit) (Scorpion 4) (set 4)", + "sc4stld", "Sky's The Limit, The (Bellfruit) (Scorpion 4) (set 5)", + "sc4stle", "Sky's The Limit, The (Bellfruit) (Scorpion 4) (set 6)", + "sc4stlf", "Sky's The Limit, The (Bellfruit) (Scorpion 4) (set 7)", + "sc4stlg", "Sky's The Limit, The (Bellfruit) (Scorpion 4) (set 8)", + "sc4strbr", "Stars 'n' Bars (PR1219) (Dutch) (Bellfruit) (Scorpion 4) (set 1)", + "sc4strbra", "Stars 'n' Bars Arcade (PR1263) (Dutch) (Bellfruit) (Scorpion 4) (set 1)", + "sc4strbrb", "Stars 'n' Bars (PR1219) (Dutch) (Bellfruit) (Scorpion 4) (set 2)", + "sc4strbrc", "Stars 'n' Bars Arcade (PR1263) (Dutch) (Bellfruit) (Scorpion 4) (set 2)", + "sc4strbrd", "Stars 'n' Bars Arcade (PR1263) (Dutch) (Bellfruit) (Scorpion 4) (set 3)", + "sc4strk", "The Streak (Mazooma) (Scorpion 4) (set 1)", + "sc4strka", "The Streak (Mazooma) (Scorpion 4) (set 2)", + "sc4strkb", "The Streak (Mazooma) (Scorpion 4) (set 3)", + "sc4strkc", "The Streak (Mazooma) (Scorpion 4) (set 4)", + "sc4strkd", "The Streak (Mazooma) (Scorpion 4) (set 5)", + "sc4strke", "The Streak (Mazooma) (Scorpion 4) (set 6)", + "sc4strkf", "The Streak (Mazooma) (Scorpion 4) (set 7)", + "sc4strkg", "The Streak (Mazooma) (Scorpion 4) (set 8)", + "sc4strkh", "The Streak (Mazooma) (Scorpion 4) (set 9)", + "sc4strki", "The Streak (Mazooma) (Scorpion 4) (set 10)", + "sc4strkj", "The Streak (Mazooma) (Scorpion 4) (set 11)", + "sc4strkk", "The Streak (Mazooma) (Scorpion 4) (set 12)", + "sc4strx", "Strike X (Bellfruit) (Scorpion 4) (set 1)", + "sc4strxa", "Strike X (Bellfruit) (Scorpion 4) (set 2)", + "sc4strxb", "Strike X (Bellfruit) (Scorpion 4) (set 3)", + "sc4strxc", "Strike X (Bellfruit) (Scorpion 4) (set 4)", + "sc4sumit", "Summit Up (Mazooma) (Scorpion 4) (set 1)", + "sc4sumita", "Summit Up (Mazooma) (Scorpion 4) (set 2)", + "sc4sumitb", "Summit Up (Mazooma) (Scorpion 4) (set 3)", + "sc4sumitc", "Summit Up (Mazooma) (Scorpion 4) (set 4)", + "sc4supst", "Super Streax (Mazooma) (Scorpion 4) (set 1)", + "sc4supsta", "Super Streax (Mazooma) (Scorpion 4) (set 2)", + "sc4sus", "Suits U Sir (Qps) (Scorpion 4) (set 1)", + "sc4susc", "Suits U Sir (Qps) (Scorpion 4) (set 2)", + "sc4suscl", "Suits U Sir Club (Qps) (Scorpion 4) (set 1)", + "sc4suscla", "Suits U Sir Club (Qps) (Scorpion 4) (set 4)", + "sc4susclb", "Suits U Sir Club (Qps) (Scorpion 4) (set 2)", + "sc4susclc", "Suits U Sir Club (Qps) (Scorpion 4) (set 3)", + "sc4susf", "Suits U Sir (Qps) (Scorpion 4) (set 3)", + "sc4susg", "Suits U Sir (Qps) (Scorpion 4) (set 4)", + "sc4sush", "Suits U Sir (Qps) (Scorpion 4) (set 5)", + "sc4susi", "Suits U Sir (Qps) (Scorpion 4) (set 6)", + "sc4susj", "Suits U Sir (Qps) (Scorpion 4) (set 7)", + "sc4susk", "Suits U Sir (Qps) (Scorpion 4) (set 8)", + "sc4swbak", "Switch Back (Mazooma) (Scorpion 4) (set 1)", + "sc4swbaka", "Switch Back (Mazooma) (Scorpion 4) (set 2)", + "sc4swbakb", "Switch Back (Mazooma) (Scorpion 4) (set 3)", + "sc4swbakc", "Switch Back (Mazooma) (Scorpion 4) (set 4)", + "sc4swywm", "Spin When Your Winning (Mazooma) (Scorpion 4) (set 1)", + "sc4swywma", "Spin When Your Winning (Mazooma) (Scorpion 4) (set 2)", + "sc4swywmb", "Spin When Your Winning (Mazooma) (Scorpion 4) (set 3)", + "sc4swywmc", "Spin When Your Winning (Mazooma) (Scorpion 4) (set 4)", + "sc4swywmd", "Spin When Your Winning (Mazooma) (Scorpion 4) (set 5)", + "sc4swywme", "Spin When Your Winning (Mazooma) (Scorpion 4) (set 6)", + "sc4swywmf", "Spin When Your Winning (Mazooma) (Scorpion 4) (set 7)", + "sc4swywmg", "Spin When Your Winning (Mazooma) (Scorpion 4) (set 8)", + "sc4taekw", "Tae Kwon Dough (Qps) (Scorpion 4) (set 1)", + "sc4taekwa", "Tae Kwon Dough (Qps) (Scorpion 4) (set 2)", + "sc4taekwb", "Tae Kwon Dough (Qps) (Scorpion 4) (set 3)", + "sc4taekwc", "Tae Kwon Dough (Qps) (Scorpion 4) (set 8)", + "sc4taekwd", "Tae Kwon Dough (Qps) (Scorpion 4) (set 9)", + "sc4taekwe", "Tae Kwon Dough (Qps) (Scorpion 4) (set 10)", + "sc4taekwf", "Tae Kwon Dough (Qps) (Scorpion 4) (set 11)", + "sc4taekwg", "Tae Kwon Dough (Qps) (Scorpion 4) (set 4)", + "sc4taekwh", "Tae Kwon Dough (Qps) (Scorpion 4) (set 5)", + "sc4taekwi", "Tae Kwon Dough (Qps) (Scorpion 4) (set 6)", + "sc4taekwj", "Tae Kwon Dough (Qps) (Scorpion 4) (set 7)", + "sc4takcl", "Take Note Club (Bellfruit) (Scorpion 4) (set 1)", + "sc4takcla", "Take Note Club 500 (Bellfruit) (Scorpion 4)", + "sc4takclb", "Take Note Club (Ferry) (Bellfruit) (Scorpion 4) (set 1)", + "sc4takclc", "Take Note Club (Ferry) (Bellfruit) (Scorpion 4) (set 2)", + "sc4takcld", "Take Note Club (Bellfruit) (Scorpion 4) (set 2)", + "sc4takcle", "Take Note Club (Ferry) (Bellfruit) (Scorpion 4) (set 3)", + "sc4takclf", "Take Note Club (Ferry) (Bellfruit) (Scorpion 4) (set 4)", + "sc4takclg", "Take Note Club (Bellfruit) (Scorpion 4) (set 5)", + "sc4takclh", "Take Note Club (Bellfruit) (Scorpion 4) (set 6)", + "sc4takcli", "Take Note Club (Bellfruit) (Scorpion 4) (set 3)", + "sc4takclj", "Take Note Club (Bellfruit) (Scorpion 4) (set 4)", + "sc4taknt", "Take Note (Bellfruit) (Scorpion 4) (set 1)", + "sc4taknta", "Take Note (Bellfruit) (Scorpion 4) (set 2)", + "sc4tbana", "Top Banana (Bellfruit) (Scorpion 4) (set 1)", + "sc4tbanaa", "Top Banana (Bellfruit) (Scorpion 4) (set 2)", + "sc4tbox", "Golden X (Mazooma) (PR2056, TBOX) (Scorpion 4) (Top Box, set 4)", + "sc4tempt", "Temptation (Bellfruit) (Scorpion 4) (set 1)", + "sc4tempta", "Temptation (Bellfruit) (Scorpion 4) (set 2)", + "sc4temptb", "Temptation (Bellfruit) (Scorpion 4) (set 3)", + "sc4temptc", "Temptation (Bellfruit) (Scorpion 4) (set 4)", + "sc4temptd", "Temptation (Bellfruit) (Scorpion 4) (set 5)", + "sc4tempte", "Temptation (Bellfruit) (Scorpion 4) (set 6)", + "sc4temptf", "Temptation (Bellfruit) (Scorpion 4) (set 7)", + "sc4temptg", "Temptation (Bellfruit) (Scorpion 4) (set 8)", + "sc4tetri", "Tetris (Mazooma) (Scorpion 4) (set 1)", + "sc4tetria", "Tetris (Mazooma) (Scorpion 4) (set 2)", + "sc4tetrib", "Tetris (Mazooma) (Scorpion 4) (set 3)", + "sc4tetric", "Tetris (Mazooma) (Scorpion 4) (set 4)", + "sc4tetrid", "Tetris (Mazooma) (Scorpion 4) (set 5)", + "sc4tetrie", "Tetris (Mazooma) (Scorpion 4) (set 6)", + "sc4tetrif", "Tetris (Mazooma) (Scorpion 4) (set 7)", + "sc4tetrig", "Tetris (Mazooma) (Scorpion 4) (set 8)", + "sc4tetrih", "Tetris (Mazooma) (Scorpion 4) (set 9)", + "sc4tetrii", "Tetris (Mazooma) (Scorpion 4) (set 10)", + "sc4tetrij", "Tetris (Mazooma) (Scorpion 4) (set 11)", + "sc4tetrik", "Tetris (Mazooma) (Scorpion 4) (set 12)", + "sc4tfclb", "Tutti Frutti Club (Bellfruit) (Scorpion 4) (set 1)", + "sc4tfclba", "Tutti Frutti Club (Bellfruit) (Scorpion 4) (set 2)", + "sc4tgear", "Top Gear (Mazooma) (Scorpion 4) (set 1)", + "sc4tgeara", "Top Gear (Mazooma) (Scorpion 4) (set 2)", + "sc4tgearb", "Top Gear (Mazooma) (Scorpion 4) (set 3)", + "sc4tgearc", "Top Gear (Mazooma) (Scorpion 4) (set 4)", + "sc4tgeard", "Top Gear (Mazooma) (Scorpion 4) (set 5)", + "sc4tgeare", "Top Gear (Mazooma) (Scorpion 4) (set 6)", + "sc4tgearf", "Top Gear (Mazooma) (Scorpion 4) (set 7)", + "sc4tgearg", "Top Gear (Mazooma) (Scorpion 4) (set 8)", + "sc4tic2", "Tic Tac Two Casino (Mazooma) (Scorpion 4) (set 1)", + "sc4tic2a", "Tic Tac Two Casino (Mazooma) (Scorpion 4) (set 2)", + "sc4tic2b", "Tic Tac Two Casino (Mazooma) (Scorpion 4) (set 3)", + "sc4tic2c", "Tic Tac Two Casino (Mazooma) (Scorpion 4) (set 4)", + "sc4tic2d", "Tic Tac Two Casino (Mazooma) (Scorpion 4) (set 5)", + "sc4tic2e", "Tic Tac Two Casino (Mazooma) (Scorpion 4) (set 6)", + "sc4tic2f", "Tic Tac Two Casino (Mazooma) (Scorpion 4) (set 7)", + "sc4tic2g", "Tic Tac Two Casino (Mazooma) (Scorpion 4) (set 8)", + "sc4tic2h", "Tic Tac Two Casino Arcade (Mazooma) (Scorpion 4) (set 4)", + "sc4tic2i", "Tic Tac Two Casino Arcade (Mazooma) (Scorpion 4) (set 1)", + "sc4tic2j", "Tic Tac Two Casino Arcade (Mazooma) (Scorpion 4) (set 2)", + "sc4tic2k", "Tic Tac Two Casino Arcade (Mazooma) (Scorpion 4) (set 3)", + "sc4tic2l", "Tic Tac Two Casino Arcade (Mazooma) (Scorpion 4) (set 5)", + "sc4tic2m", "Tic Tac Two Casino Arcade (Mazooma) (Scorpion 4) (set 6)", + "sc4tic2n", "Tic Tac Two Casino (Mazooma) (Scorpion 4) (set 9)", + "sc4tic2o", "Tic Tac Two Casino (Mazooma) (Scorpion 4) (set 10)", + "sc4ticlb", "Treasure Island Club (Fixed 65%) (Bellfruit) (Scorpion 4) (set 1)", + "sc4ticlba", "Treasure Island Club (Bellfruit) (Scorpion 4) (set 1)", + "sc4ticlbb", "Treasure Island Club (Fixed 65%) (Bellfruit) (Scorpion 4) (set 2)", + "sc4ticlbc", "Treasure Island Club (Bellfruit) (Scorpion 4) (set 2)", + "sc4tload", "Top Loader (Mazooma) (Scorpion 4)", + "sc4tpsht", "Top Of The Shots (Mazooma) (Scorpion 4) (set 1)", + "sc4tpshta", "Top Of The Shots (Mazooma) (Scorpion 4) (set 2)", + "sc4tpshtb", "Top Of The Shots (Mazooma) (Scorpion 4) (set 3)", + "sc4tpshtc", "Top Of The Shots (Mazooma) (Scorpion 4) (set 4)", + "sc4tpshtd", "Top Of The Shots (Mazooma) (Scorpion 4) (set 5)", + "sc4tpshte", "Top Of The Shots (Mazooma) (Scorpion 4) (set 6)", + "sc4tpshtf", "Top Of The Shots (Mazooma) (Scorpion 4) (set 7)", + "sc4tpshtg", "Top Of The Shots (Mazooma) (Scorpion 4) (set 8)", + "sc4trail", "Trailblazer (Mazooma) (Scorpion 4) (set 1)", + "sc4traila", "Trailblazer (Mazooma) (Scorpion 4) (set 2)", + "sc4trailb", "Trailblazer (Mazooma) (Scorpion 4) (set 3)", + "sc4trailc", "Trailblazer (Mazooma) (Scorpion 4) (set 4)", + "sc4tri7", "Triple 7's (Bellfruit) (Scorpion 4) (Top Box, set 1)", + "sc4tri7a", "Triple 7's (Bellfruit) (Scorpion 4) (Top Box, set 2)", + "sc4tri7b", "Triple 7's Arcade (Bellfruit) (Scorpion 4) (set 1)", + "sc4tri7c", "Triple 7's Arcade (Bellfruit) (Scorpion 4) (set 2)", + "sc4tri7d", "Triple 7's Arcade (Bellfruit) (Scorpion 4) (set 3)", + "sc4tri7e", "Triple 7's Arcade (Bellfruit) (Scorpion 4) (set 4)", + "sc4tri7f", "Triple 7's (Bellfruit) (Scorpion 4) (set 1)", + "sc4tri7g", "Triple 7's (Bellfruit) (Scorpion 4) (set 2)", + "sc4tri7h", "Triple 7's (Bellfruit) (Scorpion 4) (set 3)", + "sc4tri7i", "Triple 7's (Bellfruit) (Scorpion 4) (set 4)", + "sc4tri7j", "Triple 7's (Bellfruit) (Scorpion 4) (set 5)", + "sc4tri7k", "Triple 7's (Bellfruit) (Scorpion 4) (set 6)", + "sc4tri7l", "Triple 7's (Bellfruit) (Scorpion 4) (set 7)", + "sc4tri7m", "Triple 7's (Bellfruit) (Scorpion 4) (Top Box, set 3)", + "sc4tri7n", "Triple 7's (Bellfruit) (Scorpion 4) (Top Box, set 4)", + "sc4tri7o", "Triple 7's (Bellfruit) (Scorpion 4) (set 8)", + "sc4tri7p", "Triple 7's (Bellfruit) (Scorpion 4) (set 9)", + "sc4tri7q", "Triple 7's (Bellfruit) (Scorpion 4) (set 10)", + "sc4tri7r", "Triple 7's (Bellfruit) (Scorpion 4) (set 11)", + "sc4tri7s", "Triple 7's (Bellfruit) (Scorpion 4) (set 12)", + "sc4tri7t", "Triple 7's (Bellfruit) (Scorpion 4) (set 13)", + "sc4tri7u", "Triple 7's (Bellfruit) (Scorpion 4) (set 14)", + "sc4tri7v", "Triple 7's (Bellfruit) (Scorpion 4) (Top Box, set 5)", + "sc4tri7w", "Triple 7's (Bellfruit) (Scorpion 4) (Top Box, set 6)", + "sc4tridn", "Trident, The (Mazooma) (Scorpion 4) (set 1)", + "sc4tridna", "Trident, The (Mazooma) (Scorpion 4) (set 2)", + "sc4trist", "Triple Streak (PR2188) (Mazooma) (Scorpion 4) (Top Box, set 1)", + "sc4trista", "Triple Streak (PR2188) (Mazooma) (Scorpion 4) (Top Box, set 2)", + "sc4tristb", "Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 1)", + "sc4tristc", "Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 2)", + "sc4tristd", "Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 3)", + "sc4triste", "Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 4)", + "sc4tristf", "Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 5)", + "sc4tristg", "Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 6)", + "sc4tristh", "Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 7)", + "sc4tristi", "Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 8)", + "sc4tristj", "Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 9)", + "sc4tristk", "Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 10)", + "sc4tristl", "Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 11)", + "sc4tristm", "Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 12)", + "sc4tristn", "Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 13)", + "sc4tristo", "Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 14)", + "sc4tristp", "Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 15)", + "sc4tristq", "Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 16)", + "sc4tristr", "Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 17)", + "sc4trists", "Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 18)", + "sc4tristt", "Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 19)", + "sc4tristu", "Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 20)", + "sc4tristv", "Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 21)", + "sc4tristw", "Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 22)", + "sc4tristx", "Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 23)", + "sc4tristy", "Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 24)", + "sc4tst", "Scorpion 4 Test Rig (Bellfruit) (Scorpion ?)", + "sc4ttomb", "Treasure Tomb (Bellfruit) (Scorpion 4) (set 1)", + "sc4ttomba", "Treasure Tomb (Bellfruit) (Scorpion 4) (set 2)", + "sc4ttombb", "Treasure Tomb (Bellfruit) (Scorpion 4) (set 3)", + "sc4ttombc", "Treasure Tomb (Bellfruit) (Scorpion 4) (set 4)", + "sc4ttp", "Take The Piste (Mazooma) (Scorpion 4) (set 1)", + "sc4ttpa", "Take The Piste (Mazooma) (Scorpion 4) (set 2)", + "sc4ttpb", "Take The Piste (Mazooma) (Scorpion 4) (set 3)", + "sc4ttpc", "Take The Piste (Mazooma) (Scorpion 4) (set 4)", + "sc4ttpd", "Take The Piste (Mazooma) (Scorpion 4) (set 5)", + "sc4ttpe", "Take The Piste (Mazooma) (Scorpion 4) (set 6)", + "sc4ttpf", "Take The Piste (Mazooma) (Scorpion 4) (set 7)", + "sc4ttpie", "Take The Piece (Bellfruit) (PR1714) (Scorpion 4) (set 1)", + "sc4ttpiea", "Take The Piece (Bellfruit) (PR1734) (Scorpion 4) (set 1)", + "sc4ttpieb", "Take The Piece (Bellfruit) (PR1734) (Scorpion 4) (set 2)", + "sc4ttpiec", "Take The Piece (Bellfruit) (PR1714) (Scorpion 4) (set 2)", + "sc4ttpied", "Take The Piece (Bellfruit) (PR1734) (Scorpion 4) (set 3)", + "sc4ttpiee", "Take The Piece (Bellfruit) (PR1734) (Scorpion 4) (set 4)", + "sc4ttpief", "Take The Piece (Bellfruit) (PR1734) (Scorpion 4) (set 5)", + "sc4ttpieg", "Take The Piece (Bellfruit) (PR1734) (Scorpion 4) (set 6)", + "sc4tub", "Tubular Bells (Bellfruit) (Scorpion 4) (set 1)", + "sc4tuba", "Tubular Bells (Bellfruit) (Scorpion 4) (set 2)", + "sc4tubb", "Tubular Bells (Bellfruit) (Scorpion 4) (set 3)", + "sc4tubc", "Tubular Bells (Bellfruit) (Scorpion 4) (set 4)", + "sc4twilt", "Twilight (Dutch) (Bellfruit) (Scorpion 4)", + "sc4typ", "Take Your Pick (Bellfruit) (Scorpion 4) (set 1)", + "sc4typa", "Take Your Pick (Bellfruit) (Scorpion 4) (set 2)", + "sc4typb", "Take Your Pick (Bellfruit) (Scorpion 4) (set 3)", + "sc4typc", "Take Your Pick (Bellfruit) (Scorpion 4) (set 4)", + "sc4ufg", "Up For Grabs (Mazooma) (Scorpion 4) (set 1)", + "sc4ufga", "Up For Grabs (Mazooma) (Scorpion 4) (set 2)", + "sc4ufi", "Up For It (Bellfruit) (Scorpion 4) (set 1)", + "sc4ufia", "Up For It (Bellfruit) (Scorpion 4) (set 2)", + "sc4ufib", "Up For It (Bellfruit) (Scorpion 4) (set 3)", + "sc4ufic", "Up For It (Bellfruit) (Scorpion 4) (set 4)", + "sc4ufid", "Up For It (Bellfruit) (Scorpion 4) (set 5)", + "sc4ufie", "Up For It (Bellfruit) (Scorpion 4) (set 6)", + "sc4valnv", "Valhalla (German) (PR7025, GVAL) (Nova) (Scorpion 4)", + "sc4valqp", "Valhalla (Dutch) (Qps) (Scorpion 4)", + "sc4vivam", "Viva Mexico (Bellfruit) (Scorpion 4) (set 1)", + "sc4vivama", "Viva Mexico (Bellfruit) (Scorpion 4) (set 2)", + "sc4vivamb", "Viva Mexico (Bellfruit) (Scorpion 4) (set 3)", + "sc4vivamc", "Viva Mexico (Bellfruit) (Scorpion 4) (set 4)", + "sc4vivcs", "Casino Viva Mexico (Bellfruit) (Scorpion 4) (set 1)", + "sc4vivcsa", "Casino Viva Mexico (Bellfruit) (Scorpion 4) (set 2)", + "sc4vivcsb", "Casino Viva Mexico (Bellfruit) (Scorpion 4) (set 3)", + "sc4vivcsc", "Casino Viva Mexico (Bellfruit) (Scorpion 4) (set 4)", + "sc4vivcsd", "Casino Viva Mexico (Bellfruit) (Scorpion 4) (set 5)", + "sc4vivcse", "Casino Viva Mexico (Bellfruit) (Scorpion 4) (set 6)", + "sc4vivcsf", "Casino Viva Mexico (Bellfruit) (Scorpion 4) (set 7)", + "sc4vivcsg", "Casino Viva Mexico (Bellfruit) (Scorpion 4) (set 8)", + "sc4vmclb", "Viva Mexico Club (Bellfruit) (Scorpion 4) (set 1)", + "sc4vmclba", "Viva Mexico Club (Bellfruit) (Scorpion 4) (set 2)", + "sc4vmclbb", "Viva Mexico Club (Bellfruit) (Scorpion 4) (set 3)", + "sc4vmnv", "Viva Mexico (Nova) (Scorpion 4) (set 1)", + "sc4vmnva", "Viva Mexico (Nova) (Scorpion 4) (set 2)", + "sc4vrgcl", "Very Rich Geezer Club (Bellfruit) (Scorpion 4) (set 1)", + "sc4vrgcla", "Very Rich Geezer Club (Bellfruit) (Scorpion 4) (set 2)", + "sc4vrgclb", "Very Rich Geezer Club (Bellfruit) (Scorpion 4) (set 3)", + "sc4vrgclc", "Very Rich Geezer Club (Bellfruit) (Scorpion 4) (set 4)", + "sc4vrgcld", "Very Rich Geezer Club (Bellfruit) (Scorpion 4) (set 5)", + "sc4vrgcle", "Very Rich Geezer Club (Bellfruit) (Scorpion 4) (set 6)", + "sc4vrgclf", "Very Rich Geezer Club (Bellfruit) (Scorpion 4) (set 7)", + "sc4vrgclg", "Very Rich Geezer Club (Bellfruit) (Scorpion 4) (set 8)", + "sc4vrgclh", "Very Rich Geezer Club (Bellfruit) (Scorpion 4) (set 9)", + "sc4vrgcli", "Very Rich Geezer Club (Bellfruit) (Scorpion 4) (set 10)", + "sc4wadzl", "Wadzilla (Mazooma) (Scorpion 4) (set 1)", + "sc4wadzla", "Wadzilla (Mazooma) (Scorpion 4) (set 2)", + "sc4wag", "Win-A-Gain (German) (Nova) (Scorpion 4)", + "sc4waw", "Wet & Wild (Mazooma) (Scorpion 4) (set 1)", + "sc4wawa", "Wet & Wild (Mazooma) (Scorpion 4) (set 2)", + "sc4wawb", "Wet & Wild (Mazooma) (Scorpion 4) (set 3)", + "sc4wawc", "Wet & Wild (Mazooma) (Scorpion 4) (set 4)", + "sc4wawd", "Wet & Wild (Mazooma) (Scorpion 4) (set 5)", + "sc4wawe", "Wet & Wild (Mazooma) (Scorpion 4) (set 6)", + "sc4wawf", "Wet & Wild (Mazooma) (Scorpion 4) (set 7)", + "sc4wdw", "Who Dares Wins (Bellfruit) (Scorpion 4) (set 1)", + "sc4wdwa", "Who Dares Wins (Bellfruit) (Scorpion 4) (set 2)", + "sc4wdwb", "Who Dares Wins (Bellfruit) (Scorpion 4) (set 3)", + "sc4wdwc", "Who Dares Wins (Bellfruit) (Scorpion 4) (set 4)", + "sc4wdwd", "Who Dares Wins (Bellfruit) (Scorpion 4) (set 5)", + "sc4wdwe", "Who Dares Wins (Bellfruit) (Scorpion 4) (set 6)", + "sc4wdwf", "Who Dares Wins (Bellfruit) (Scorpion 4) (set 7)", + "sc4wdwg", "Who Dares Wins (Bellfruit) (Scorpion 4) (set 8)", + "sc4wdwh", "Who Dares Wins (Bellfruit) (Scorpion 4) (set 9)", + "sc4wdwi", "Who Dares Wins (Bellfruit) (Scorpion 4) (set 10)", + "sc4wdwj", "Who Dares Wins (Bellfruit) (Scorpion 4) (set 11)", + "sc4wernr", "Werner (German) (PR7027, GWER) (Nova) (Scorpion 4) (set 1)", + "sc4winsp", "Winning Spin Top Box (PR2526, WSPT) (Qps) (Scorpion 4) (set 1)", + "sc4winsp0", "Winning Spin Top Box (PR2526, WSPT) (Qps) (Scorpion 4) (set 2)", + "sc4winspa", "Winning Spin (Bingo V011) (Qps) (Scorpion 4) (set 1)", + "sc4winspb", "Winning Spin (V021) (Qps) (Scorpion 4) (set 1)", + "sc4winspc", "Winning Spin (V031) (Qps) (Scorpion 4) (set 1)", + "sc4winspd", "Winning Spin (Arcade V011) (Qps) (Scorpion 4) (set 1)", + "sc4winspe", "Winning Spin (Bingo V012) (Qps) (Scorpion 4) (set 1)", + "sc4winspf", "Winning Spin (V022) (Qps) (Scorpion 4) (set 1)", + "sc4winspg", "Winning Spin (V032) (Qps) (Scorpion 4) (set 1)", + "sc4winsph", "Winning Spin (Bingo V011) (Qps) (Scorpion 4) (set 2)", + "sc4winspi", "Winning Spin (V021) (Qps) (Scorpion 4) (set 2)", + "sc4winspj", "Winning Spin (V031) (Qps) (Scorpion 4) (set 2)", + "sc4winspk", "Winning Spin (Arcade V011) (Qps) (Scorpion 4) (set 2)", + "sc4winspl", "Winning Spin (Bingo V012) (Qps) (Scorpion 4) (set 2)", + "sc4winspm", "Winning Spin (V022) (Qps) (Scorpion 4) (set 2)", + "sc4winspn", "Winning Spin (V032) (Qps) (Scorpion 4) (set 2)", + "sc4winspo", "Winning Spin (Arcade V061) (Qps) (Scorpion 4) (set 1)", + "sc4winspp", "Winning Spin (Arcade V062) (Qps) (Scorpion 4) (set 1)", + "sc4winspq", "Winning Spin (Bingo V012) (Qps) (Scorpion 4) (set 3)", + "sc4winspr", "Winning Spin (V022) (Qps) (Scorpion 4) (set 3)", + "sc4winsps", "Winning Spin (V032) (Qps) (Scorpion 4) (set 3)", + "sc4winspt", "Winning Spin (Arcade V012) (Qps) (Scorpion 4) (set 1)", + "sc4winspu", "Winning Spin (Arcade V061) (Qps) (Scorpion 4) (set 2)", + "sc4winspv", "Winning Spin (Arcade V062) (Qps) (Scorpion 4) (set 2)", + "sc4winspw", "Winning Spin (Bingo V012) (Qps) (Scorpion 4) (set 4)", + "sc4winspx", "Winning Spin (V022) (Qps) (Scorpion 4) (set 4)", + "sc4winspy", "Winning Spin (V032) (Qps) (Scorpion 4) (set 4)", + "sc4winspz", "Winning Spin (Arcade V012) (Qps) (Scorpion 4) (set 2)", + "sc4winxp", "Win X-plosion (Dutch) (Bellfruit) (Scorpion 4)", + "sc4wldbn", "Wild Bunch (Bellfruit) (Scorpion 4) (set 1)", + "sc4wldbna", "Wild Bunch (Bellfruit) (Scorpion 4) (set 2)", + "sc4wldbnb", "Wild Bunch (Bellfruit) (Scorpion 4) (set 3)", + "sc4wldbnc", "Wild Bunch (Bellfruit) (Scorpion 4) (set 4)", + "sc4wldbnd", "Wild Bunch (Bellfruit) (Scorpion 4) (set 5)", + "sc4wldbne", "Wild Bunch (Bellfruit) (Scorpion 4) (set 6)", + "sc4wldbnf", "Wild Bunch (Bellfruit) (Scorpion 4) (set 7)", + "sc4wldbng", "Wild Bunch Casino (Bellfruit) (Scorpion 4) (set 1)", + "sc4wldbnh", "Wild Bunch Casino (Bellfruit) (Scorpion 4) (set 2)", + "sc4wldbni", "Wild Bunch (Bellfruit) (Scorpion 4) (set 8)", + "sc4wldbnj", "Wild Bunch (Bellfruit) (Scorpion 4) (set 9)", + "sc4wldbnk", "Wild Bunch (Bellfruit) (Scorpion 4) (set 10)", + "sc4wldbnl", "Wild Bunch Casino (Bellfruit) (Scorpion 4) (set 3)", + "sc4wldbnm", "Wild Bunch Casino (Bellfruit) (Scorpion 4) (set 4)", + "sc4wldbnn", "Wild Bunch (Bellfruit) (Scorpion 4) (set 11)", + "sc4wldbno", "Wild Bunch (Bellfruit) (Scorpion 4) (set 12)", + "sc4wldbnp", "Wild Bunch (Bellfruit) (Scorpion 4) (set 13)", + "sc4wldbnq", "Wild Bunch (Bellfruit) (Scorpion 4) (set 14)", + "sc4wldjk", "Wild Jackpots (Mazooma) (Scorpion 4) (set 1)", + "sc4wldjka", "Wild Jackpots (Mazooma) (Scorpion 4) (set 2)", + "sc4wldjkb", "Wild Jackpots (Mazooma) (Scorpion 4) (set 3)", + "sc4wldjkc", "Wild Jackpots (Mazooma) (Scorpion 4) (set 4)", + "sc4wldjkd", "Wild Jackpots (Mazooma) (Scorpion 4) (set 5)", + "sc4wldjke", "Wild Jackpots (Mazooma) (Scorpion 4) (set 6)", + "sc4wldjkf", "Wild Jackpots (Mazooma) (Scorpion 4) (set 7)", + "sc4wldjkg", "Wild Jackpots (Mazooma) (Scorpion 4) (set 8)", + "sc4wondw", "Wonder Wheel (Bellfruit) (Scorpion 4) (set 1)", + "sc4wondwa", "Wonder Wheel (Bellfruit) (Scorpion 4) (set 2)", + "sc4wrnlt", "Werner (German) (PR7027, GWER) (Nova) (Scorpion 4) (set 2)", + "sc4wspin", "Win Spinner Arcade (011) (Qps) (Scorpion 4) (set 1)", + "sc4wspinb", "Win Spinner SP Arcade (011) (Qps) (Scorpion 4) (set 1)", + "sc4wspinc", "Win Spinner Arcade (011) (Qps) (Scorpion 4) (set 2)", + "sc4wspind", "Win Spinner SP Arcade (011) (Qps) (Scorpion 4) (set 2)", + "sc4wtc", "Wild Thing Casino (Mazooma) (Scorpion 4) (set 1)", + "sc4wtca", "Wild Thing Casino (Mazooma) (Scorpion 4) (set 2)", + "sc4wtcb", "Wild Thing Casino (Mazooma) (Scorpion 4) (set 3)", + "sc4wtcc", "Wild Thing Casino (Mazooma) (Scorpion 4) (set 4)", + "sc4wtcd", "Wild Thing Casino (Mazooma) (Scorpion 4) (set 5)", + "sc4wtce", "Wild Thing Casino (Mazooma) (Scorpion 4) (set 6)", + "sc4wtcf", "Wild Thing Casino (Mazooma) (Scorpion 4) (set 7)", + "sc4wthng", "Wild Thing (Bellfruit) (Scorpion 4) (set 1)", + "sc4wthnga", "Wild Thing (Bellfruit) (Scorpion 4) (set 2)", + "sc4wthngb", "Wild Thing (Bellfruit) (Scorpion 4) (set 3)", + "sc4wthngc", "Wild Thing (Bellfruit) (Scorpion 4) (set 4)", + "sc4wthnm", "Wild Thing Casino Arcade (Mazooma) (Scorpion 4) (set 1)", + "sc4wthnma", "Wild Thing Casino Arcade (Mazooma) (Scorpion 4) (set 2)", + "sc4wthnmb", "Wild Thing Casino Arcade (Mazooma) (Scorpion 4) (set 3)", + "sc4wthnmc", "Wild Thing Casino Arcade (Mazooma) (Scorpion 4) (set 4)", + "sc4wthnmd", "Wild Thing Casino Arcade (Mazooma) (Scorpion 4) (set 5)", + "sc4wthnme", "Wild Thing Casino Arcade (Mazooma) (Scorpion 4) (set 6)", + "sc4wthnmf", "Wild Thing Casino Arcade (Mazooma) (Scorpion 4) (set 7)", + "sc4wwys", "Win When Your Spinning (Bellfruit) (Scorpion 4) (set 1)", + "sc4wwysa", "Win When Your Spinning (Bellfruit) (Scorpion 4) (set 2)", + "sc4xcash", "Xtra Cash Casino (Dutch) (Bellfruit) (Scorpion 4)", + "sc4xmark", "X Marks The Spot (Bellfruit) (Scorpion 4) (set 1)", + "sc4xmarka", "X Marks The Spot (Bellfruit) (Scorpion 4) (set 2)", + "sc4ziggy", "Gettin Ziggy With It (Mazooma) (Scorpion 4) (set 1)", + "sc4ziggya", "Gettin Ziggy With It (Mazooma) (Scorpion 4) (set 2)", + "sc4ziggyb", "Gettin Ziggy With It (Mazooma) (Scorpion 4) (set 3)", + "sc4ziggyc", "Gettin Ziggy With It (Mazooma) (Scorpion 4) (set 4)", + "sc4ziggyd", "Gettin Ziggy With It (Mazooma) (Scorpion 4) (set 5)", + "sc4ziggye", "Gettin Ziggy With It (Mazooma) (Scorpion 4) (set 6)", + "sc4ziggyf", "Gettin Ziggy With It (Mazooma) (Scorpion 4) (set 7)", + "sc4ziggyg", "Gettin Ziggy With It (Mazooma) (Scorpion 4) (set 8)", + "sc5a40", "Around The Board In 40 Days (Mazooma) (Scorpion 5) (set 1)", + "sc5a40a", "Around The Board In 40 Days (Mazooma) (Scorpion 5) (set 2)", + "sc5adga", "Ant & Dec's Grab The Ads (Bellfruit) (Scorpion 5) (set 1)", + "sc5adgaa", "Ant & Dec's Grab The Ads (Bellfruit) (Scorpion 5) (set 2)", + "sc5adgab", "Ant & Dec's Grab The Ads (Bellfruit) (Scorpion 5) (set 3)", + "sc5adgac", "Ant & Dec's Grab The Ads (Bellfruit) (Scorpion 5) (set 4)", + "sc5adgad", "Ant & Dec's Grab The Ads (Bellfruit) (Scorpion 5) (set 5)", + "sc5adgae", "Ant & Dec's Grab The Ads (Bellfruit) (Scorpion 5) (set 6)", + "sc5adgtc", "Ant & Dec's Grab The Cash (Bellfruit) (Scorpion 5) (set 1)", + "sc5adgtca", "Ant & Dec's Grab The Cash (Bellfruit) (Scorpion 5) (set 2)", + "sc5adjb", "Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 5) (set 1)", + "sc5adjba", "Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 5) (set 2)", + "sc5adjbb", "Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 5) (set 3)", + "sc5adjbc", "Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 5) (set 4)", + "sc5adjbd", "Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 5) (set 5)", + "sc5adjbe", "Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 5) (set 6)", + "sc5adjbf", "Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 5) (set 7)", + "sc5adjbg", "Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 5) (set 8)", + "sc5adjbh", "Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 5) (set 9)", + "sc5adjbi", "Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 5) (set 10)", + "sc5adjbj", "Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 5) (set 11)", + "sc5adjbk", "Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 5) (set 12)", + "sc5adjbl", "Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 5) (set 13)", + "sc5adjbm", "Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 5) (set 14)", + "sc5adjbn", "Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 5) (set 15)", + "sc5adjbo", "Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 5) (set 16)", + "sc5adjbp", "Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 5) (set 17)", + "sc5adjbq", "Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 5) (set 18)", + "sc5adjbr", "Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 5) (set 19)", + "sc5adjbs", "Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 5) (set 20)", + "sc5adjbt", "Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 5) (set 21)", + "sc5adsnt", "Ant & Dec's Saturday Night Takeaway (Bellfruit) (Scorpion 5) (set 1)", + "sc5adsnta", "Ant & Dec's Saturday Night Takeaway (Bellfruit) (Scorpion 5) (set 2)", + "sc5adwta", "Ant & Dec's Saturday Night Takeaway Win The Ads (Bellfruit) (Scorpion 5) (set 1)", + "sc5adwtaa", "Ant & Dec's Saturday Night Takeaway Win The Ads (Bellfruit) (Scorpion 5) (set 2)", + "sc5bantm", "Bantam Of The Opera (Mazooma) (Scorpion 5) (set 1)", + "sc5bantma", "Bantam Of The Opera (Mazooma) (Scorpion 5) (set 2)", + "sc5bar7", "Bar 7's (Bellfruit) (Scorpion 5) (set 1)", + "sc5bar7a", "Bar 7's (Bellfruit) (Scorpion 5) (set 2)", + "sc5bar7b", "Bar 7's Bingo (Bellfruit) (Scorpion 5) (set 1)", + "sc5bar7c", "Bar 7's Bingo (Bellfruit) (Scorpion 5) (set 2)", + "sc5bar7d", "Bar 7's Bingo (Bellfruit) (Scorpion 5) (set 3)", + "sc5bar7e", "Bar 7's Bingo (Bellfruit) (Scorpion 5) (set 4)", + "sc5bar7f", "Bar 7's Bingo (Bellfruit) (Scorpion 5) (set 5)", + "sc5bar7g", "Bar 7's Bingo (Bellfruit) (Scorpion 5) (set 6)", + "sc5batl", "Battleships & Cruisers (Bellfruit) (Scorpion 5) (set 1)", + "sc5batla", "Battleships & Cruisers (Bellfruit) (Scorpion 5) (set 2)", + "sc5bjob", "Bank Job (Bellfruit) (Scorpion 5) (set 1)", + "sc5bjoba", "Bank Job (Bellfruit) (Scorpion 5) (set 2)", + "sc5bjobb", "Bank Job (Bellfruit) (Scorpion 5) (set 3)", + "sc5bjobc", "Bank Job (Bellfruit) (Scorpion 5) (set 4)", + "sc5bjobd", "Bank Job (Bellfruit) (Scorpion 5) (set 5)", + "sc5bjobe", "Bank Job (Bellfruit) (Scorpion 5) (set 6)", + "sc5bjobf", "Bank Job (Bellfruit) (Scorpion 5) (set 7)", + "sc5bjobg", "Bank Job (Bellfruit) (Scorpion 5) (set 8)", + "sc5bjobh", "Bank Job (Bellfruit) (Scorpion 5) (set 9)", + "sc5bjobi", "Bank Job (Bellfruit) (Scorpion 5) (set 10)", + "sc5bkngx", "Bar King X (Mazooma) (Scorpion 5) (set 1)", + "sc5bkngxa", "Bar King X (Mazooma) (Scorpion 5) (set 2)", + "sc5bob", "Bobby Dazzler (Mazooma) (Scorpion 5) (set 1)", + "sc5boba", "Bobby Dazzler (Mazooma) (Scorpion 5) (set 2)", + "sc5bobb", "Bobby Dazzler (Mazooma) (Scorpion 5) (set 3)", + "sc5bobc", "Bobby Dazzler (Mazooma) (Scorpion 5) (set 4)", + "sc5bpb", "Bully's Prize Board (Bellfruit) (Scorpion 5) (set 1)", + "sc5bpba", "Bully's Prize Board (Bellfruit) (Scorpion 5) (set 5)", + "sc5bpbb", "Bully's Prize Board (Bellfruit) (Scorpion 5) (set 2)", + "sc5bpbc", "Bully's Prize Board (Bellfruit) (Scorpion 5) (set 6)", + "sc5bpbd", "Bully's Prize Board (Bellfruit) (Scorpion 5) (set 3)", + "sc5bpbe", "Bully's Prize Board (Bellfruit) (Scorpion 5) (set 4)", + "sc5bpbf", "Bully's Prize Board (Bellfruit) (Scorpion 5) (set 7)", + "sc5bpbg", "Bully's Prize Board (Bellfruit) (Scorpion 5) (set 8)", + "sc5bpfpb", "Bullseye Pounds For Points (Bellfruit) (Scorpion 5) (set 1)", + "sc5bpfpba", "Bullseye Pounds For Points (Bellfruit) (Scorpion 5) (set 2)", + "sc5bsp", "Bully's Star Prize (PR3010) (Bellfruit) (Scorpion 5) (set 1)", + "sc5bspa", "Bully's Star Prize (PR3010) (Bellfruit) (Scorpion 5) (set 2)", + "sc5bspb", "Bully's Star Prize (PR3010) (Bellfruit) (Scorpion 5) (set 3)", + "sc5bspc", "Bully's Star Prize (PR3010) (Bellfruit) (Scorpion 5) (set 4)", + "sc5bspd", "Bully's Star Prize (PR3010) (Bellfruit) (Scorpion 5) (set 5)", + "sc5bspe", "Bully's Star Prize (PR3010) (Bellfruit) (Scorpion 5) (set 6)", + "sc5bspf", "Bully's Star Prize (PR3010) (Bellfruit) (Scorpion 5) (set 7)", + "sc5bspg", "Bully's Star Prize (PR3010) (Bellfruit) (Scorpion 5) (set 8)", + "sc5bsph", "Bully's Star Prize (PR3010) (Bellfruit) (Scorpion 5) (set 9)", + "sc5bspi", "Bully's Star Prize (PR3010) (Bellfruit) (Scorpion 5) (set 10)", + "sc5bspj", "Bully's Star Prize (PR3012) (Bellfruit) (Scorpion 5) (set 1)", + "sc5bspk", "Bully's Star Prize (PR3012) (Bellfruit) (Scorpion 5) (set 2)", + "sc5bspl", "Bully's Star Prize (PR3010) (Bellfruit) (Scorpion 5) (set 13)", + "sc5bspm", "Bully's Star Prize (PR3010) (Bellfruit) (Scorpion 5) (set 14)", + "sc5bspn", "Bully's Star Prize (PR3010) (Bellfruit) (Scorpion 5) (set 15)", + "sc5bspo", "Bully's Star Prize (PR3010) (Bellfruit) (Scorpion 5) (set 16)", + "sc5bspp", "Bully's Star Prize (PR3010) (Bellfruit) (Scorpion 5) (set 17)", + "sc5bspq", "Bully's Star Prize (PR3010) (Bellfruit) (Scorpion 5) (set 18)", + "sc5btiab", "Bullseye Three In A Bed (Bellfruit) (Scorpion 5)", + "sc5btrip", "Bullseye Triple (Bellfruit) (Scorpion 5) (set 1)", + "sc5btripa", "Bullseye Triple (Bellfruit) (Scorpion 5) (set 2)", + "sc5btripb", "Bullseye Triple (Bellfruit) (Scorpion 5) (set 3)", + "sc5btripc", "Bullseye Triple (Bellfruit) (Scorpion 5) (set 4)", + "sc5bucc", "Buccaneers (Bellfruit) (Scorpion 5) (set 1)", + "sc5bucca", "Buccaneers (Bellfruit) (Scorpion 5) (set 2)", + "sc5buccb", "Buccaneers (Bellfruit) (Scorpion 5) (set 3)", + "sc5buccc", "Buccaneers (Bellfruit) (Scorpion 5) (set 4)", + "sc5buccd", "Buccaneers (Bellfruit) (Scorpion 5) (set 5)", + "sc5bucce", "Buccaneers (Bellfruit) (Scorpion 5) (set 6)", + "sc5bull", "Bullseye (Bellfruit) (Scorpion 5) (set 1)", + "sc5bull5", "Bullseye 5 Reels (Bellfruit) (Scorpion 5) (set 1)", + "sc5bull5a", "Bullseye 5 Reels (Bellfruit) (Scorpion 5) (set 2)", + "sc5bull5b", "Bullseye 5 Reels (Bellfruit) (Scorpion 5) (set 3)", + "sc5bull5c", "Bullseye 5 Reels (Bellfruit) (Scorpion 5) (set 4)", + "sc5bulla", "Bullseye (Bellfruit) (Scorpion 5) (set 2)", + "sc5bullb", "Bullseye (Bellfruit) (Scorpion 5) (set 3)", + "sc5bullc", "Bullseye (Bellfruit) (Scorpion 5) (set 4)", + "sc5bunny", "Bunny Money (Mazooma) (Scorpion 5) (set 1)", + "sc5bunnya", "Bunny Money (Mazooma) (Scorpion 5) (set 2)", + "sc5butch", "Butch Cashidy & The Sundance Quid (Bellfruit) (Scorpion 5) (set 1)", + "sc5butcha", "Butch Cashidy & The Sundance Quid (Bellfruit) (Scorpion 5) (set 2)", + "sc5butchb", "Butch Cashidy & The Sundance Quid (Bellfruit) (Scorpion 5) (set 3)", + "sc5butchc", "Butch Cashidy & The Sundance Quid (Bellfruit) (Scorpion 5) (set 4)", + "sc5butchd", "Butch Cashidy & The Sundance Quid (Bellfruit) (Scorpion 5) (set 5)", + "sc5butche", "Butch Cashidy & The Sundance Quid (Bellfruit) (Scorpion 5) (set 6)", + "sc5cabin", "Cabin Fever (Mazooma) (Scorpion 5) (set 1)", + "sc5cabina", "Cabin Fever (Mazooma) (Scorpion 5) (set 2)", + "sc5cabinb", "Cabin Fever (Mazooma) (Scorpion 5) (set 3)", + "sc5cabinc", "Cabin Fever (Mazooma) (Scorpion 5) (set 4)", + "sc5cari", "Caribbean Cash (Qps) (Scorpion 5) (set 1)", + "sc5caria", "Caribbean Cash (Qps) (Scorpion 5) (set 2)", + "sc5carib", "Caribbean Cash (Qps) (Scorpion 5) (set 3)", + "sc5caric", "Caribbean Cash (Qps) (Scorpion 5) (set 4)", + "sc5carid", "Caribbean Cash (Qps) (Scorpion 5) (set 5)", + "sc5carie", "Caribbean Cash (Qps) (Scorpion 5) (set 6)", + "sc5carif", "Caribbean Cash (Qps) (Scorpion 5) (set 7)", + "sc5carig", "Caribbean Cash (Qps) (Scorpion 5) (set 8)", + "sc5casxt", "Casino Xtravaganza (Mazooma) (Scorpion 5) (set 1)", + "sc5casxta", "Casino Xtravaganza (Mazooma) (Scorpion 5) (set 2)", + "sc5cbar7", "Classic Bar 7 (Mazooma) (Scorpion 5) (set 1)", + "sc5cbar7a", "Classic Bar 7 (Mazooma) (Scorpion 5) (set 2)", + "sc5cblas", "Cash Blast (Bellfruit) (Scorpion 5) (set 1)", + "sc5cblasa", "Cash Blast (Bellfruit) (Scorpion 5) (set 2)", + "sc5cbrun", "Cannonball Run (Bellfruit) (Scorpion 5) (set 1)", + "sc5cbruna", "Cannonball Run (Bellfruit) (Scorpion 5) (set 2)", + "sc5celeb", "I'm A Celebrity (Bellfruit) (Scorpion 5) (set 1)", + "sc5celeba", "I'm A Celebrity (Bellfruit) (Scorpion 5) (set 2)", + "sc5celebb", "I'm A Celebrity (Bellfruit) (Scorpion 5) (set 3)", + "sc5celebc", "I'm A Celebrity (Bellfruit) (Scorpion 5) (set 4)", + "sc5celebd", "I'm A Celebrity (Bellfruit) (Scorpion 5) (set 5)", + "sc5cfact", "Cash Factor (Bellfruit) (Scorpion 5) (set 1)", + "sc5cfacta", "Cash Factor (Bellfruit) (Scorpion 5) (set 2)", + "sc5cfcp", "Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 1)", + "sc5cfcpa", "Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 2)", + "sc5cfcpb", "Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 3)", + "sc5cfcpc", "Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 4)", + "sc5cfcpd", "Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 5)", + "sc5cfcpe", "Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 6)", + "sc5cfcpf", "Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 7)", + "sc5cfcpg", "Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 8)", + "sc5cfcph", "Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 9)", + "sc5cfcpi", "Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 10)", + "sc5cfcpj", "Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 11)", + "sc5cfcpk", "Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 12)", + "sc5cfcpl", "Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 13)", + "sc5cfcpm", "Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 14)", + "sc5cfcpn", "Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 15)", + "sc5cfcpo", "Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 16)", + "sc5cfcpp", "Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 17)", + "sc5cfcpq", "Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 18)", + "sc5cfcpr", "Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 19)", + "sc5cfcps", "Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 20)", + "sc5cfcpt", "Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 21)", + "sc5cfcpu", "Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 22)", + "sc5cfcpv", "Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 23)", + "sc5cfcpw", "Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 24)", + "sc5cfnc", "Crazy Fruit & Nutcase (Bellfruit) (Scorpion 5) (set 1)", + "sc5cfnca", "Crazy Fruit & Nutcase (Bellfruit) (Scorpion 5) (set 2)", + "sc5cfpt", "Crazy Fruits Casino Party Time (Bellfruit) (Scorpion 5) (set 1)", + "sc5cfpta", "Crazy Fruits Casino Party Time (Bellfruit) (Scorpion 5) (set 2)", + "sc5cfptb", "Crazy Fruits Casino Party Time (Bellfruit) (Scorpion 5) (set 3)", + "sc5cfptc", "Crazy Fruits Casino Party Time (Bellfruit) (Scorpion 5) (set 4)", + "sc5cfptd", "Crazy Fruits Casino Party Time (Bellfruit) (Scorpion 5) (set 5)", + "sc5cfpte", "Crazy Fruits Casino Party Time (Bellfruit) (Scorpion 5) (set 6)", + "sc5cfptf", "Crazy Fruits Casino Party Time (Bellfruit) (Scorpion 5) (set 7)", + "sc5cfptg", "Crazy Fruits Casino Party Time (Bellfruit) (Scorpion 5) (set 8)", + "sc5cfpth", "Crazy Fruits Casino Party Time (Bellfruit) (Scorpion 5) (set 9)", + "sc5cfpti", "Crazy Fruits Casino Party Time (Bellfruit) (Scorpion 5) (set 10)", + "sc5cfptj", "Crazy Fruits Casino Party Time (Bellfruit) (Scorpion 5) (set 11)", + "sc5cfptk", "Crazy Fruits Casino Party Time (Bellfruit) (Scorpion 5) (set 12)", + "sc5cfptl", "Crazy Fruits Casino Party Time (Bellfruit) (Scorpion 5) (set 13)", + "sc5cfptm", "Crazy Fruits Casino Party Time (Bellfruit) (Scorpion 5) (set 14)", + "sc5cfptn", "Crazy Fruits Casino Party Time (Bellfruit) (Scorpion 5) (set 15)", + "sc5cfpto", "Crazy Fruits Casino Party Time (Bellfruit) (Scorpion 5) (set 16)", + "sc5cfptp", "Crazy Fruits Casino Party Time (Bellfruit) (Scorpion 5) (set 17)", + "sc5cfptq", "Crazy Fruits Casino Party Time (Bellfruit) (Scorpion 5) (set 18)", + "sc5cfptr", "Crazy Fruits Casino Party Time (Bellfruit) (Scorpion 5) (set 19)", + "sc5cfpts", "Crazy Fruits Casino Party Time (Bellfruit) (Scorpion 5) (set 20)", + "sc5chain", "Chain Reaction (Bellfruit) (Scorpion 5) (set 1)", + "sc5chaina", "Chain Reaction (Bellfruit) (Scorpion 5) (set 2)", + "sc5chainb", "Chain Reaction (Bellfruit) (Scorpion 5) (set 3)", + "sc5chainc", "Chain Reaction (Bellfruit) (Scorpion 5) (set 4)", + "sc5chaind", "Chain Reaction (Bellfruit) (Scorpion 5) (set 5)", + "sc5chaine", "Chain Reaction (Bellfruit) (Scorpion 5) (set 6)", + "sc5chavi", "Chav It (Bellfruit) (Scorpion 5) (set 1)", + "sc5chavia", "Chav It (Bellfruit) (Scorpion 5) (set 2)", + "sc5chavib", "Chav It (Bellfruit) (Scorpion 5) (set 3)", + "sc5chavic", "Chav It (Bellfruit) (Scorpion 5) (set 4)", + "sc5chavid", "Chav It (Bellfruit) (Scorpion 5) (set 5)", + "sc5chavie", "Chav It (Bellfruit) (Scorpion 5) (set 6)", + "sc5chavy", "Chavy Chase (Mazooma) (Scorpion 5) (set 1)", + "sc5chavya", "Chavy Chase (Mazooma) (Scorpion 5) (set 2)", + "sc5chavyb", "Chavy Chase (Mazooma) (Scorpion 5) (set 3)", + "sc5chavyc", "Chavy Chase (Mazooma) (Scorpion 5) (set 4)", + "sc5chopc", "Chop 'n' Change (Mazooma) (Scorpion 5) (set 1)", + "sc5chopca", "Chop 'n' Change (Mazooma) (Scorpion 5) (set 2)", + "sc5cj", "Cool Jewels (Bellfruit) (Scorpion 5) (set 1)", + "sc5cja", "Cool Jewels (Bellfruit) (Scorpion 5) (set 2)", + "sc5cjb", "Cool Jewels (Bellfruit) (Scorpion 5) (set 3)", + "sc5cjc", "Cool Jewels (Bellfruit) (Scorpion 5) (set 4)", + "sc5cjd", "Cool Jewels (Bellfruit) (Scorpion 5) (set 5)", + "sc5cje", "Cool Jewels (Bellfruit) (Scorpion 5) (set 6)", + "sc5cjqps", "Crown Jewels (Z055) (QPS) (Scorpion 5) (set 1)", + "sc5cjqpsa", "Crown Jewels (Z055) (QPS) (Scorpion 5) (set 2)", + "sc5cjqpsb", "Crown Jewels (Z055) (QPS) (Scorpion 5) (set 3)", + "sc5cjqpsc", "Crown Jewels (Z055) (QPS) (Scorpion 5) (set 4)", + "sc5cknig", "Crazy Knights (Bellfruit) (Scorpion 5) (set 1)", + "sc5ckniga", "Crazy Knights (Bellfruit) (Scorpion 5) (set 2)", + "sc5cknigb", "Crazy Knights (Bellfruit) (Scorpion 5) (set 3)", + "sc5cknigc", "Crazy Knights (Bellfruit) (Scorpion 5) (set 4)", + "sc5clcas", "Cluedo Casino (Mazooma) (Scorpion 5) (set 1)", + "sc5clcasa", "Cluedo Casino (Mazooma) (Scorpion 5) (set 2)", + "sc5clnot", "Cluedo Notorious (Bellfruit) (Scorpion 5) (set 1)", + "sc5clnota", "Cluedo Notorious (Bellfruit) (Scorpion 5) (set 2)", + "sc5clnotb", "Cluedo Notorious (Bellfruit) (Scorpion 5) (set 3)", + "sc5clnotc", "Cluedo Notorious (Bellfruit) (Scorpion 5) (set 4)", + "sc5clnotd", "Cluedo Notorious (Bellfruit) (Scorpion 5) (set 5)", + "sc5clnote", "Cluedo Notorious (Bellfruit) (Scorpion 5) (set 6)", + "sc5clnotf", "Cluedo Notorious (Bellfruit) (Scorpion 5) (set 7)", + "sc5clnotg", "Cluedo Notorious (Bellfruit) (Scorpion 5) (set 8)", + "sc5clown", "Clown Around (Bellfruit) (Scorpion 5) (set 1)", + "sc5clowna", "Clown Around (Bellfruit) (Scorpion 5) (set 2)", + "sc5clownb", "Clown Around (Bellfruit) (Scorpion 5) (set 3)", + "sc5clownc", "Clown Around (Bellfruit) (Scorpion 5) (set 4)", + "sc5clownd", "Clown Around (Bellfruit) (Scorpion 5) (set 5)", + "sc5clowne", "Clown Around (Bellfruit) (Scorpion 5) (set 6)", + "sc5clu70", "Cluedo 70 (Qps) (Scorpion 5) (set 1)", + "sc5clu70a", "Cluedo 70 (Qps) (Scorpion 5) (set 2)", + "sc5clue", "Cluedo (Mazooma) (Scorpion 5) (set 1)", + "sc5cluea", "Cluedo (Mazooma) (Scorpion 5) (set 2)", + "sc5clueb", "Cluedo (Mazooma) (Scorpion 5) (set 3)", + "sc5cluec", "Cluedo (Mazooma) (Scorpion 5) (set 4)", + "sc5clus", "Cluedo The Usual Suspects (Mazooma) (Scorpion 5) (set 1)", + "sc5clusa", "Cluedo The Usual Suspects (Mazooma) (Scorpion 5) (set 2)", + "sc5clusb", "Cluedo The Usual Suspects (Mazooma) (Scorpion 5) (set 3)", + "sc5clusc", "Cluedo The Usual Suspects (Mazooma) (Scorpion 5) (set 4)", + "sc5clusd", "Cluedo The Usual Suspects (Mazooma) (Scorpion 5) (set 5)", + "sc5cluse", "Cluedo The Usual Suspects (Mazooma) (Scorpion 5) (set 6)", + "sc5clusf", "Cluedo The Usual Suspects (Mazooma) (Scorpion 5) (set 7)", + "sc5clusg", "Cluedo The Usual Suspects (Mazooma) (Scorpion 5) (set 8)", + "sc5clush", "Cluedo The Usual Suspects (Mazooma) (Scorpion 5) (set 9)", + "sc5clusi", "Cluedo The Usual Suspects (Mazooma) (Scorpion 5) (set 10)", + "sc5clusj", "Cluedo The Usual Suspects (Mazooma) (Scorpion 5) (set 11)", + "sc5clusk", "Cluedo The Usual Suspects (Mazooma) (Scorpion 5) (set 12)", + "sc5cmani", "Colour Mania (Bellfruit) (Scorpion 5) (set 1)", + "sc5cmania", "Colour Mania (Bellfruit) (Scorpion 5) (set 2)", + "sc5cmanib", "Colour Mania (Bellfruit) (Scorpion 5) (set 3)", + "sc5cmanic", "Colour Mania (Bellfruit) (Scorpion 5) (set 4)", + "sc5cmcob", "Monte Carlo Or Bust Club (Qps) (Scorpion 5) (set 1)", + "sc5cmcoba", "Monte Carlo Or Bust Club (Qps) (Scorpion 5) (set 2)", + "sc5cmcobb", "Monte Carlo Or Bust Club (Qps) (Scorpion 5) (set 3)", + "sc5cmcobc", "Monte Carlo Or Bust Club (Qps) (Scorpion 5) (set 4)", + "sc5colmo", "Colour Of Money (Bellfruit) (Scorpion 5) (set 1)", + "sc5colmoa", "Colour Of Money (Bellfruit) (Scorpion 5) (set 2)", + "sc5colmob", "Colour Of Money (Bellfruit) (Scorpion 5) (set 3)", + "sc5colmoc", "Colour Of Money (Bellfruit) (Scorpion 5) (set 4)", + "sc5copsr", "Cops 'n' Robbers (Bellfruit) (Scorpion 5) (set 1)", + "sc5copsra", "Cops 'n' Robbers (Bellfruit) (Scorpion 5) (set 2)", + "sc5copsrb", "Cops 'n' Robbers (Bellfruit) (Scorpion 5) (set 3)", + "sc5copsrc", "Cops 'n' Robbers (Bellfruit) (Scorpion 5) (set 4)", + "sc5copsrd", "Cops 'n' Robbers (Bellfruit) (Scorpion 5) (set 5)", + "sc5copsre", "Cops 'n' Robbers (Bellfruit) (Scorpion 5) (set 6)", + "sc5copsrf", "Cops 'n' Robbers (Bellfruit) (Scorpion 5) (set 7)", + "sc5copsrg", "Cops 'n' Robbers (Bellfruit) (Scorpion 5) (set 8)", + "sc5copsrh", "Cops 'n' Robbers (Bellfruit) (Scorpion 5) (set 9)", + "sc5copsri", "Cops 'n' Robbers (Bellfruit) (Scorpion 5) (set 10)", + "sc5coro", "Coronation Street (PR2252) (Mazooma) (Scorpion 5) (set 1)", + "sc5coro0", "Coronation Street (PR2252) (Mazooma) (Scorpion 5) (set 4)", + "sc5coro1", "Coronation Street Triple Bingo (V013) (Mazooma) (Scorpion 5) (set 2)", + "sc5coroa", "Coronation Street Triple (PR2249) (Mazooma) (Scorpion 5) (set 1)", + "sc5corob", "Coronation Street Triple Arcade (V061) (Mazooma) (Scorpion 5) (set 1)", + "sc5coroc", "Coronation Street Triple Bingo (V012) (Mazooma) (Scorpion 5) (set 1)", + "sc5corod", "Coronation Street Triple Bingo (V012) (Mazooma) (Scorpion 5) (set 2)", + "sc5coroe", "Coronation Street Single (PR2252) (Mazooma) (Scorpion 5) (set 1)", + "sc5corof", "Coronation Street Single (PR2252) (Mazooma) (Scorpion 5) (set 2)", + "sc5corog", "Coronation Street Single (PR2252) (Mazooma) (Scorpion 5) (set 3)", + "sc5coroh", "Coronation Street Single (PR2252) (Mazooma) (Scorpion 5) (set 4)", + "sc5coroi", "Coronation Street Triple Bingo (V012) (Mazooma) (Scorpion 5) (set 3)", + "sc5coroj", "Coronation Street Triple Arcade (V063) (Mazooma) (Scorpion 5) (set 1)", + "sc5corok", "Coronation Street Triple (PR2249) (Mazooma) (Scorpion 5) (set 2)", + "sc5corol", "Coronation Street Triple (PR2249) (Mazooma) (Scorpion 5) (set 3)", + "sc5corom", "Coronation Street (PR2252) (Mazooma) (Scorpion 5) (set 2)", + "sc5coron", "Coronation Street Triple Arcade (V061) (Mazooma) (Scorpion 5) (set 2)", + "sc5coroo", "Coronation Street Triple Bingo (V012) (Mazooma) (Scorpion 5) (set 4)", + "sc5corop", "Coronation Street Triple Bingo (V012) (Mazooma) (Scorpion 5) (set 5)", + "sc5coroq", "Coronation Street Single (PR2252) (Mazooma) (Scorpion 5) (set 5)", + "sc5coror", "Coronation Street Single (PR2252) (Mazooma) (Scorpion 5) (set 6)", + "sc5coros", "Coronation Street Single (PR2252) (Mazooma) (Scorpion 5) (set 7)", + "sc5corot", "Coronation Street Single (PR2252) (Mazooma) (Scorpion 5) (set 8)", + "sc5corou", "Coronation Street Triple Bingo (V012) (Mazooma) (Scorpion 5) (set 6)", + "sc5corov", "Coronation Street Triple Arcade (V063) (Mazooma) (Scorpion 5) (set 2)", + "sc5corow", "Coronation Street Triple (PR2249) (Mazooma) (Scorpion 5) (set 4)", + "sc5corox", "Coronation Street Triple (PR2249) (Mazooma) (Scorpion 5) (set 5)", + "sc5coroy", "Coronation Street (PR2252) (Mazooma) (Scorpion 5) (set 3)", + "sc5coroz", "Coronation Street Triple Bingo (V013) (Mazooma) (Scorpion 5) (set 1)", + "sc5corst", "Coronation Street (Bellfruit) (Scorpion 5) (set 1)", + "sc5corsta", "Coronation Street (Bellfruit) (Scorpion 5) (set 2)", + "sc5corstb", "Coronation Street (Bellfruit) (Scorpion 5) (set 3)", + "sc5corstc", "Coronation Street (Bellfruit) (Scorpion 5) (set 4)", + "sc5count", "Countdown (Bellfruit) (Scorpion 5) (set 1)", + "sc5counta", "Countdown (Bellfruit) (Scorpion 5) (set 2)", + "sc5cpays", "Crazy Pays (Bellfruit) (Scorpion 5) (set 1)", + "sc5cpaysa", "Crazy Pays (Bellfruit) (Scorpion 5) (set 2)", + "sc5cpen1", "Public Enemy No1 Club (Bellfruit) (Scorpion 5) (set 1)", + "sc5cpen1a", "Public Enemy No1 Club (Bellfruit) (Scorpion 5) (set 2)", + "sc5cpen1b", "Public Enemy No1 Club (Bellfruit) (Scorpion 5) (set 3)", + "sc5cpen1c", "Public Enemy No1 Club (Bellfruit) (Scorpion 5) (set 4)", + "sc5craid", "Cash Raider (Mazooma) (Scorpion 5) (set 1)", + "sc5craida", "Cash Raider (Mazooma) (Scorpion 5) (set 2)", + "sc5crcpt", "Cops 'n' Robbers Community Party (Bellfruit) (Scorpion 5) (set 1)", + "sc5crcpta", "Cops 'n' Robbers Community Party (Bellfruit) (Scorpion 5) (set 2)", + "sc5crcptb", "Cops 'n' Robbers Community Party (Bellfruit) (Scorpion 5) (set 3)", + "sc5crnjw", "Crown Jewels (PR1608) (Bellfruit) (Scorpion 5) (set 1)", + "sc5crnjwa", "Crown Jewels (PR1608) (Bellfruit) (Scorpion 5) (set 2)", + "sc5crnjwb", "Crown Jewels (PR1608) (Bellfruit) (Scorpion 5) (set 3)", + "sc5crotr", "Cops 'n' Robbers On The Run (Bellfruit) (Scorpion 5) (set 1)", + "sc5crotra", "Cops 'n' Robbers On The Run (Bellfruit) (Scorpion 5) (set 2)", + "sc5crsc", "Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 5) (set 1)", + "sc5crsca", "Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 5) (set 2)", + "sc5crscb", "Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 5) (set 3)", + "sc5crscc", "Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 5) (set 4)", + "sc5crscd", "Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 5) (set 5)", + "sc5crsce", "Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 5) (set 6)", + "sc5crscf", "Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 5) (set 7)", + "sc5crscg", "Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 5) (set 8)", + "sc5crsch", "Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 5) (set 9)", + "sc5crsci", "Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 5) (set 10)", + "sc5crscj", "Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 5) (set 11)", + "sc5crsck", "Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 5) (set 12)", + "sc5crscl", "Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 5) (set 13)", + "sc5crscm", "Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 5) (set 14)", + "sc5crscn", "Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 5) (set 15)", + "sc5crsco", "Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 5) (set 16)", + "sc5crscp", "Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 5) (set 17)", + "sc5crscq", "Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 5) (set 18)", + "sc5crscr", "Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 5) (set 19)", + "sc5crscs", "Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 5) (set 20)", + "sc5crsct", "Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 5) (set 21)", + "sc5crscu", "Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 5) (set 22)", + "sc5crsgc", "Cops 'n' Robbers Smash 'n' Grab Club (Bellfruit) (Scorpion 5) (set 1)", + "sc5crsgca", "Cops 'n' Robbers Smash 'n' Grab Club (Bellfruit) (Scorpion 5) (set 2)", + "sc5crsgcb", "Cops 'n' Robbers Smash 'n' Grab Club (Bellfruit) (Scorpion 5) (set 3)", + "sc5crsgcc", "Cops 'n' Robbers Smash 'n' Grab Club (Bellfruit) (Scorpion 5) (set 4)", + "sc5crsgr", "Cops 'n' Robbers Smash 'n' Grab (Bellfruit) (Scorpion 5) (set 1)", + "sc5crsgra", "Cops 'n' Robbers Smash 'n' Grab (Bellfruit) (Scorpion 5) (set 2)", + "sc5crsgrb", "Cops 'n' Robbers Smash 'n' Grab (Bellfruit) (Scorpion 5) (set 3)", + "sc5crsgrc", "Cops 'n' Robbers Smash 'n' Grab (Bellfruit) (Scorpion 5) (set 4)", + "sc5crsgrd", "Cops 'n' Robbers Smash 'n' Grab (Bellfruit) (Scorpion 5) (set 5)", + "sc5crsgre", "Cops 'n' Robbers Smash 'n' Grab (Bellfruit) (Scorpion 5) (set 6)", + "sc5crsgrf", "Cops 'n' Robbers Smash 'n' Grab (Bellfruit) (Scorpion 5) (set 7)", + "sc5crsgrg", "Cops 'n' Robbers Smash 'n' Grab (Bellfruit) (Scorpion 5) (set 8)", + "sc5ctit", "Cash Of The Titans (Bellfruit) (Scorpion 5) (set 1)", + "sc5ctita", "Cash Of The Titans (Bellfruit) (Scorpion 5) (set 2)", + "sc5ctl", "Cop The Lot (Bellfruit) (Scorpion 5) (set 1)", + "sc5ctla", "Cop The Lot (Bellfruit) (Scorpion 5) (set 2)", + "sc5ctlb", "Cop The Lot (Bellfruit) (Scorpion 5) (set 3)", + "sc5ctlc", "Cop The Lot (Bellfruit) (Scorpion 5) (set 4)", + "sc5cvega", "Cash Vegas (Bellfruit) (Scorpion 5) (set 1)", + "sc5cvegaa", "Cash Vegas (Bellfruit) (Scorpion 5) (set 2)", + "sc5czfr", "Fruit Crazy Triple / Crazy Keys (QPS) (Scorpion 5)", + "sc5ddbbc", "Deal Or No Deal Beat The Banker Casino (Bellfruit) (Scorpion 5) (set 1)", + "sc5ddbbca", "Deal Or No Deal Beat The Banker Casino (Bellfruit) (Scorpion 5) (set 2)", + "sc5ddbbcb", "Deal Or No Deal Beat The Banker Casino (Bellfruit) (Scorpion 5) (set 3)", + "sc5ddbbcc", "Deal Or No Deal Beat The Banker Casino (Bellfruit) (Scorpion 5) (set 4)", + "sc5ddbbcd", "Deal Or No Deal Beat The Banker Casino (Bellfruit) (Scorpion 5) (set 5)", + "sc5ddbbce", "Deal Or No Deal Beat The Banker Casino (Bellfruit) (Scorpion 5) (set 6)", + "sc5ddbbcf", "Deal Or No Deal Beat The Banker Casino (Bellfruit) (Scorpion 5) (set 7)", + "sc5ddbbcg", "Deal Or No Deal Beat The Banker Casino (Bellfruit) (Scorpion 5) (set 8)", + "sc5ddosh", "Doctor Dosh (Bellfruit) (Scorpion 5) (set 1)", + "sc5ddosha", "Doctor Dosh (Bellfruit) (Scorpion 5) (set 2)", + "sc5ddply", "Deal Or No Deal Player's Choice (Bellfruit) (Scorpion 5) (set 1)", + "sc5ddplya", "Deal Or No Deal Player's Choice (Bellfruit) (Scorpion 5) (set 2)", + "sc5ddptg", "Deal Or No Deal Play The Game (Bellfruit) (Scorpion 5) (set 1)", + "sc5ddptga", "Deal Or No Deal Play The Game (Bellfruit) (Scorpion 5) (set 2)", + "sc5ddptgb", "Deal Or No Deal Play The Game (Bellfruit) (Scorpion 5) (set 3)", + "sc5ddptgc", "Deal Or No Deal Play The Game (Bellfruit) (Scorpion 5) (set 4)", + "sc5devil", "Devil Of A Deal (Mazooma) (Scorpion 5) (set 1)", + "sc5devila", "Devil Of A Deal (Mazooma) (Scorpion 5) (set 2)", + "sc5devilb", "Devil Of A Deal (Mazooma) (Scorpion 5) (set 3)", + "sc5devilc", "Devil Of A Deal (Mazooma) (Scorpion 5) (set 4)", + "sc5dhh", "Dough Ho Ho (Bellfruit) (Scorpion 5) (set 1)", + "sc5dhha", "Dough Ho Ho (Bellfruit) (Scorpion 5) (set 2)", + "sc5dhhb", "Dough Ho Ho (Bellfruit) (Scorpion 5) (set 3)", + "sc5dhhc", "Dough Ho Ho (Bellfruit) (Scorpion 5) (set 4)", + "sc5dhhd", "Dough Ho Ho (Bellfruit) (Scorpion 5) (set 5)", + "sc5dhhe", "Dough Ho Ho (Bellfruit) (Scorpion 5) (set 6)", + "sc5dhhf", "Dough Ho Ho (Bellfruit) (Scorpion 5) (set 7)", + "sc5dhhg", "Dough Ho Ho (Bellfruit) (Scorpion 5) (set 8)", + "sc5dmine", "Diamond Mine (Bellfruit) (Scorpion 5) (set 1)", + "sc5dminea", "Diamond Mine (Bellfruit) (Scorpion 5) (set 2)", + "sc5dmineb", "Diamond Mine (Bellfruit) (Scorpion 5) (set 3)", + "sc5dminec", "Diamond Mine (Bellfruit) (Scorpion 5) (set 4)", + "sc5dmined", "Diamond Mine (Bellfruit) (Scorpion 5) (set 5)", + "sc5dminee", "Diamond Mine (Bellfruit) (Scorpion 5) (set 6)", + "sc5dminef", "Diamond Mine (Bellfruit) (Scorpion 5) (set 7)", + "sc5dmineg", "Diamond Mine (Bellfruit) (Scorpion 5) (set 8)", + "sc5dmineh", "Diamond Mine (Bellfruit) (Scorpion 5) (set 9)", + "sc5dminei", "Diamond Mine (Bellfruit) (Scorpion 5) (set 10)", + "sc5dminej", "Diamond Mine (Bellfruit) (Scorpion 5) (set 11)", + "sc5dminek", "Diamond Mine (Bellfruit) (Scorpion 5) (set 12)", + "sc5dminel", "Diamond Mine (Bellfruit) (Scorpion 5) (set 13)", + "sc5dnd", "Deal Or No Deal (Bellfruit) (Scorpion 5) (set 1)", + "sc5dnda", "Deal Or No Deal (Bellfruit) (Scorpion 5) (set 2)", + "sc5dndb", "Deal Or No Deal (Bellfruit) (Scorpion 5) (set 3)", + "sc5dndbb", "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 5) (set 1)", + "sc5dndbba", "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 5) (set 2)", + "sc5dndbbb", "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 5) (set 3)", + "sc5dndbbc", "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 5) (set 4)", + "sc5dndbbd", "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 5) (set 5)", + "sc5dndbbe", "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 5) (set 6)", + "sc5dndbbf", "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 5) (set 7)", + "sc5dndbbg", "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 5) (set 8)", + "sc5dndbc", "Deal Or No Deal Box Clever (Bellfruit) (Scorpion 5) (set 1)", + "sc5dndbca", "Deal Or No Deal Box Clever (Bellfruit) (Scorpion 5) (set 2)", + "sc5dndbcb", "Deal Or No Deal Box Clever (Bellfruit) (Scorpion 5) (set 3)", + "sc5dndbcc", "Deal Or No Deal Box Clever (Bellfruit) (Scorpion 5) (set 4)", + "sc5dndbcd", "Deal Or No Deal Box Clever (Bellfruit) (Scorpion 5) (set 5)", + "sc5dndbce", "Deal Or No Deal Box Clever (Bellfruit) (Scorpion 5) (set 6)", + "sc5dndbcf", "Deal Or No Deal Box Clever (Bellfruit) (Scorpion 5) (set 7)", + "sc5dndbcg", "Deal Or No Deal Box Clever (Bellfruit) (Scorpion 5) (set 8)", + "sc5dndbch", "Deal Or No Deal Box Clever (Bellfruit) (Scorpion 5) (set 9)", + "sc5dndbci", "Deal Or No Deal Box Clever (Bellfruit) (Scorpion 5) (set 10)", + "sc5dndbcj", "Deal Or No Deal Box Clever (Bellfruit) (Scorpion 5) (set 11)", + "sc5dndbck", "Deal Or No Deal Box Clever (Bellfruit) (Scorpion 5) (set 12)", + "sc5dndbd", "Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 5) (set 1)", + "sc5dndbda", "Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 5) (set 2)", + "sc5dndbdb", "Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 5) (set 3)", + "sc5dndbdc", "Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 5) (set 4)", + "sc5dndbdd", "Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 5) (set 5)", + "sc5dndbde", "Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 5) (set 6)", + "sc5dndbdf", "Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 5) (set 7)", + "sc5dndbdg", "Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 5) (set 8)", + "sc5dndbdh", "Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 5) (set 9)", + "sc5dndbdi", "Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 5) (set 10)", + "sc5dndbe", "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 5) (set 1)", + "sc5dndbea", "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 5) (set 2)", + "sc5dndbeb", "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 5) (set 3)", + "sc5dndbec", "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 5) (set 4)", + "sc5dndbed", "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 5) (set 5)", + "sc5dndbee", "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 5) (set 6)", + "sc5dndbef", "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 5) (set 7)", + "sc5dndbeg", "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 5) (set 8)", + "sc5dndbeh", "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 5) (set 9)", + "sc5dndbei", "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 5) (set 10)", + "sc5dndbej", "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 5) (set 11)", + "sc5dndbek", "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 5) (set 12)", + "sc5dndbel", "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 5) (set 13)", + "sc5dndbem", "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 5) (set 14)", + "sc5dndben", "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 5) (set 15)", + "sc5dndbl", "Deal Or No Deal Beat The Banker Club (Bellfruit) (Scorpion 5) (set 1)", + "sc5dndbla", "Deal Or No Deal Beat The Banker Club (Bellfruit) (Scorpion 5) (set 2)", + "sc5dndblb", "Deal Or No Deal Beat The Banker Club (Bellfruit) (Scorpion 5) (set 3)", + "sc5dndblc", "Deal Or No Deal Beat The Banker Club (Bellfruit) (Scorpion 5) (set 4)", + "sc5dndbld", "Deal Or No Deal Beat The Banker Club (Bellfruit) (Scorpion 5) (set 5)", + "sc5dndble", "Deal Or No Deal Beat The Banker Club (Bellfruit) (Scorpion 5) (set 6)", + "sc5dndblf", "Deal Or No Deal Beat The Banker Club (Bellfruit) (Scorpion 5) (set 7)", + "sc5dndblg", "Deal Or No Deal Beat The Banker Club (Bellfruit) (Scorpion 5) (set 8)", + "sc5dndblh", "Deal Or No Deal Beat The Banker Club (Bellfruit) (Scorpion 5) (set 9)", + "sc5dndbli", "Deal Or No Deal Beat The Banker Club (Bellfruit) (Scorpion 5) (set 10)", + "sc5dndblj", "Deal Or No Deal Beat The Banker Club (Bellfruit) (Scorpion 5) (set 11)", + "sc5dndblk", "Deal Or No Deal Beat The Banker Club (Bellfruit) (Scorpion 5) (set 12)", + "sc5dndbll", "Deal Or No Deal Beat The Banker Club (Bellfruit) (Scorpion 5) (set 13)", + "sc5dndblm", "Deal Or No Deal Beat The Banker Club (Bellfruit) (Scorpion 5) (set 14)", + "sc5dndbln", "Deal Or No Deal Beat The Banker Club (Bellfruit) (Scorpion 5) (set 15)", + "sc5dndblo", "Deal Or No Deal Beat The Banker Club (Bellfruit) (Scorpion 5) (set 16)", + "sc5dndblp", "Deal Or No Deal Beat The Banker Club (Bellfruit) (Scorpion 5) (set 17)", + "sc5dndblq", "Deal Or No Deal Beat The Banker Club (Bellfruit) (Scorpion 5) (set 18)", + "sc5dndblr", "Deal Or No Deal Beat The Banker Club (Bellfruit) (Scorpion 5) (set 19)", + "sc5dndbls", "Deal Or No Deal Beat The Banker Club (Bellfruit) (Scorpion 5) (set 20)", + "sc5dndbo", "Deal Or No Deal Banker's Bonus (Bellfruit) (Scorpion 5) (set 1)", + "sc5dndboa", "Deal Or No Deal Banker's Bonus (Bellfruit) (Scorpion 5) (set 2)", + "sc5dndbob", "Deal Or No Deal Banker's Bonus (Bellfruit) (Scorpion 5) (set 3)", + "sc5dndboc", "Deal Or No Deal Banker's Bonus (Bellfruit) (Scorpion 5) (set 4)", + "sc5dndbod", "Deal Or No Deal Banker's Bonus (Bellfruit) (Scorpion 5) (set 5)", + "sc5dndboe", "Deal Or No Deal Banker's Bonus (Bellfruit) (Scorpion 5) (set 6)", + "sc5dndbof", "Deal Or No Deal Banker's Bonus (Bellfruit) (Scorpion 5) (set 7)", + "sc5dndbog", "Deal Or No Deal Banker's Bonus (Bellfruit) (Scorpion 5) (set 8)", + "sc5dndboh", "Deal Or No Deal Banker's Bonus (Bellfruit) (Scorpion 5) (set 9)", + "sc5dndboi", "Deal Or No Deal Banker's Bonus (Bellfruit) (Scorpion 5) (set 10)", + "sc5dndboj", "Deal Or No Deal Banker's Bonus (Bellfruit) (Scorpion 5) (set 11)", + "sc5dndbok", "Deal Or No Deal Banker's Bonus (Bellfruit) (Scorpion 5) (set 12)", + "sc5dndbq", "Deal Or No Deal Beat The Banker (Qps) (Scorpion 5) (set 1)", + "sc5dndbqa", "Deal Or No Deal Beat The Banker (Qps) (Scorpion 5) (set 2)", + "sc5dndbqb", "Deal Or No Deal Beat The Banker (Qps) (Scorpion 5) (set 3)", + "sc5dndbqc", "Deal Or No Deal Beat The Banker (Qps) (Scorpion 5) (set 4)", + "sc5dndbqd", "Deal Or No Deal Beat The Banker (Qps) (Scorpion 5) (set 5)", + "sc5dndbqe", "Deal Or No Deal Beat The Banker (Qps) (Scorpion 5) (set 6)", + "sc5dndbr", "Deal Or No Deal The Big Reds (PR3011) (Bellfruit) (Scorpion 5) (set 1)", + "sc5dndbra", "Deal Or No Deal The Big Reds (PR3011) (Bellfruit) (Scorpion 5) (set 2)", + "sc5dndbrb", "Deal Or No Deal The Big Reds (PR3018) (Bellfruit) (Scorpion 5) (set 1)", + "sc5dndbrc", "Deal Or No Deal The Big Reds (PR3018) (Bellfruit) (Scorpion 5) (set 2)", + "sc5dndbrd", "Deal Or No Deal The Big Reds (PR3011) (Bellfruit) (Scorpion 5) (set 3)", + "sc5dndbre", "Deal Or No Deal The Big Reds (PR3018) (Bellfruit) (Scorpion 5) (set 3)", + "sc5dndbrf", "Deal Or No Deal The Big Reds (PR3011) (Bellfruit) (Scorpion 5) (set 4)", + "sc5dndbrg", "Deal Or No Deal The Big Reds (PR3011) (Bellfruit) (Scorpion 5) (set 5)", + "sc5dndbrh", "Deal Or No Deal The Big Reds (PR3018) (Bellfruit) (Scorpion 5) (set 4)", + "sc5dndbri", "Deal Or No Deal The Big Reds (PR3018) (Bellfruit) (Scorpion 5) (set 5)", + "sc5dndbrj", "Deal Or No Deal The Big Reds (PR3011) (Bellfruit) (Scorpion 5) (set 6)", + "sc5dndbrk", "Deal Or No Deal The Big Reds (PR3018) (Bellfruit) (Scorpion 5) (set 6)", + "sc5dndbrl", "Deal Or No Deal The Big Reds (PR3011) (Bellfruit) (Scorpion 5) (set 7)", + "sc5dndbrm", "Deal Or No Deal The Big Reds (PR3011) (Bellfruit) (Scorpion 5) (set 8)", + "sc5dndbrn", "Deal Or No Deal The Big Reds (PR3011) (Bellfruit) (Scorpion 5) (set 9)", + "sc5dndbro", "Deal Or No Deal The Big Reds (PR3011) (Bellfruit) (Scorpion 5) (set 10)", + "sc5dndbrp", "Deal Or No Deal The Big Reds (PR3011) (Bellfruit) (Scorpion 5) (set 11)", + "sc5dndbrq", "Deal Or No Deal The Big Reds (PR3011) (Bellfruit) (Scorpion 5) (set 12)", + "sc5dndbrr", "Deal Or No Deal The Big Reds (PR3011) (Bellfruit) (Scorpion 5) (set 13)", + "sc5dndbrs", "Deal Or No Deal The Big Reds (PR3011) (Bellfruit) (Scorpion 5) (set 14)", + "sc5dndbrt", "Deal Or No Deal The Big Reds (PR3011) (Bellfruit) (Scorpion 5) (set 15)", + "sc5dndbru", "Deal Or No Deal The Big Reds (PR3011) (Bellfruit) (Scorpion 5) (set 16)", + "sc5dndbrv", "Deal Or No Deal The Big Reds (PR3011) (Bellfruit) (Scorpion 5) (set 17)", + "sc5dndbrw", "Deal Or No Deal The Big Reds (PR3011) (Bellfruit) (Scorpion 5) (set 18)", + "sc5dndc", "Deal Or No Deal (Bellfruit) (Scorpion 5) (set 4)", + "sc5dndc2", "Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 1)", + "sc5dndc2a", "Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 2)", + "sc5dndc2b", "Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 3)", + "sc5dndc2c", "Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 4)", + "sc5dndc2d", "Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 5)", + "sc5dndc2e", "Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 6)", + "sc5dndc2f", "Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 7)", + "sc5dndc2g", "Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 8)", + "sc5dndc2h", "Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 9)", + "sc5dndc2i", "Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 10)", + "sc5dndc2j", "Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 11)", + "sc5dndc2k", "Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 12)", + "sc5dndc2l", "Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 13)", + "sc5dndc2m", "Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 14)", + "sc5dndc2n", "Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 15)", + "sc5dndc2o", "Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 16)", + "sc5dndc2p", "Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 17)", + "sc5dndc2q", "Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 18)", + "sc5dndc2r", "Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 19)", + "sc5dndc2s", "Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 20)", + "sc5dndc2t", "Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 21)", + "sc5dndc2u", "Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 22)", + "sc5dndc2v", "Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 23)", + "sc5dndc2w", "Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 24)", + "sc5dndc3", "Deal Or No Deal Casino (PR1965) (Bellfruit) (Scorpion 5) (set 1)", + "sc5dndc3a", "Deal Or No Deal Casino (PR1965) (Bellfruit) (Scorpion 5) (set 2)", + "sc5dndc3b", "Deal Or No Deal Casino (PR1965) (Bellfruit) (Scorpion 5) (set 3)", + "sc5dndc3c", "Deal Or No Deal Casino (PR1965) (Bellfruit) (Scorpion 5) (set 4)", + "sc5dndca", "Deal Or No Deal The Crazy Chair Arcade (PR3250) (Bellfruit) (Scorpion 5) (set 1)", + "sc5dndcaa", "Deal Or No Deal The Crazy Chair Arcade (PR3250) (Bellfruit) (Scorpion 5) (set 2)", + "sc5dndcab", "Deal Or No Deal The Crazy Chair Arcade (PR3250) (Bellfruit) (Scorpion 5) (set 3)", + "sc5dndcac", "Deal Or No Deal The Crazy Chair Arcade (PR3250) (Bellfruit) (Scorpion 5) (set 4)", + "sc5dndcad", "Deal Or No Deal The Crazy Chair Arcade (PR3362) (Bellfruit) (Scorpion 5) (set 1)", + "sc5dndcae", "Deal Or No Deal The Crazy Chair Arcade (PR3362) (Bellfruit) (Scorpion 5) (set 2)", + "sc5dndcb", "Deal Or No Deal Club Beat The Banker (Bellfruit) (Scorpion 5) (set 1)", + "sc5dndcba", "Deal Or No Deal Club Beat The Banker (Bellfruit) (Scorpion 5) (set 2)", + "sc5dndcc", "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 5) (set 1)", + "sc5dndcca", "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 5) (set 2)", + "sc5dndccb", "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 5) (set 3)", + "sc5dndccc", "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 5) (set 4)", + "sc5dndccd", "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 5) (set 5)", + "sc5dndcce", "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 5) (set 6)", + "sc5dndccf", "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 5) (set 7)", + "sc5dndccg", "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 5) (set 8)", + "sc5dndcch", "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 5) (set 9)", + "sc5dndcci", "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 5) (set 10)", + "sc5dndccj", "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 5) (set 11)", + "sc5dndcck", "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 5) (set 12)", + "sc5dndccl", "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 5) (set 13)", + "sc5dndccm", "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 5) (set 14)", + "sc5dndccn", "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 5) (set 15)", + "sc5dndcco", "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 5) (set 16)", + "sc5dndccp", "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 5) (set 17)", + "sc5dndccq", "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 5) (set 18)", + "sc5dndccr", "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 5) (set 19)", + "sc5dndcl", "Deal Or No Deal Club (Bellfruit) (Scorpion 5) (set 1)", + "sc5dndcla", "Deal Or No Deal Club (Bellfruit) (Scorpion 5) (set 2)", + "sc5dndcr", "Deal Or No Deal Cops 'n' Robbers (Bellfruit) (Scorpion 5) (set 1)", + "sc5dndcra", "Deal Or No Deal Cops 'n' Robbers (Bellfruit) (Scorpion 5) (set 2)", + "sc5dndcrb", "Deal Or No Deal Cops 'n' Robbers (Bellfruit) (Scorpion 5) (set 3)", + "sc5dndcrc", "Deal Or No Deal Cops 'n' Robbers (Bellfruit) (Scorpion 5) (set 4)", + "sc5dndcrd", "Deal Or No Deal Cops 'n' Robbers (Bellfruit) (Scorpion 5) (set 5)", + "sc5dndcre", "Deal Or No Deal Cops 'n' Robbers (Bellfruit) (Scorpion 5) (set 6)", + "sc5dndcs", "Deal Or No Deal Casino (PR1954) (Bellfruit) (Scorpion 5) (set 1)", + "sc5dndcsa", "Deal Or No Deal Casino (PR1954) (Bellfruit) (Scorpion 5) (set 2)", + "sc5dndcsb", "Deal Or No Deal Casino (PR1954) (Bellfruit) (Scorpion 5) (set 3)", + "sc5dndcsc", "Deal Or No Deal Casino (PR1954) (Bellfruit) (Scorpion 5) (set 4)", + "sc5dndcsd", "Deal Or No Deal Casino (PR1954) (Bellfruit) (Scorpion 5) (set 5)", + "sc5dndcse", "Deal Or No Deal Casino (PR1954) (Bellfruit) (Scorpion 5) (set 6)", + "sc5dndcsf", "Deal Or No Deal Casino (PR1954) (Bellfruit) (Scorpion 5) (set 7)", + "sc5dndcsg", "Deal Or No Deal Casino (PR1954) (Bellfruit) (Scorpion 5) (set 8)", + "sc5dndcsh", "Deal Or No Deal Casino (PR1954) (Bellfruit) (Scorpion 5) (set 9)", + "sc5dndcsi", "Deal Or No Deal Casino (PR1954) (Bellfruit) (Scorpion 5) (set 10)", + "sc5dndcsj", "Deal Or No Deal Casino (PR1954) (Bellfruit) (Scorpion 5) (set 11)", + "sc5dndcsk", "Deal Or No Deal Casino (PR1954) (Bellfruit) (Scorpion 5) (set 12)", + "sc5dndcsl", "Deal Or No Deal Casino (PR1954) (Bellfruit) (Scorpion 5) (set 13)", + "sc5dndcsm", "Deal Or No Deal Casino (PR1954) (Bellfruit) (Scorpion 5) (set 14)", + "sc5dndd", "Deal Or No Deal (Bellfruit) (Scorpion 5) (set 5)", + "sc5dnddd", "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 5) (set 1)", + "sc5dnddda", "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 5) (set 2)", + "sc5dndddb", "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 5) (set 3)", + "sc5dndddc", "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 5) (set 4)", + "sc5dndddd", "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 5) (set 5)", + "sc5dnddde", "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 5) (set 6)", + "sc5dndddf", "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 5) (set 7)", + "sc5dndddg", "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 5) (set 8)", + "sc5dndddh", "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 5) (set 9)", + "sc5dndddi", "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 5) (set 10)", + "sc5dndde", "Deal Or No Deal Desert Island Deal (Bellfruit) (Scorpion 5) (set 1)", + "sc5dnddea", "Deal Or No Deal Desert Island Deal (Bellfruit) (Scorpion 5) (set 2)", + "sc5dnddeb", "Deal Or No Deal Desert Island Deal (Bellfruit) (Scorpion 5) (set 3)", + "sc5dnddec", "Deal Or No Deal Desert Island Deal (Bellfruit) (Scorpion 5) (set 4)", + "sc5dndded", "Deal Or No Deal Desert Island Deal (Bellfruit) (Scorpion 5) (set 5)", + "sc5dnddee", "Deal Or No Deal Desert Island Deal (Bellfruit) (Scorpion 5) (set 6)", + "sc5dnddef", "Deal Or No Deal Desert Island Deal (Bellfruit) (Scorpion 5) (set 7)", + "sc5dnddeg", "Deal Or No Deal Desert Island Deal (Bellfruit) (Scorpion 5) (set 8)", + "sc5dnddf", "Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 5) (set 1)", + "sc5dnddfa", "Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 5) (set 2)", + "sc5dnddfb", "Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 5) (set 3)", + "sc5dnddfc", "Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 5) (set 4)", + "sc5dnddfd", "Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 5) (set 5)", + "sc5dnddfe", "Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 5) (set 6)", + "sc5dnddff", "Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 5) (set 7)", + "sc5dnddfg", "Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 5) (set 8)", + "sc5dnddfh", "Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 5) (set 9)", + "sc5dnddfi", "Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 5) (set 10)", + "sc5dnddfj", "Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 5) (set 11)", + "sc5dnddfk", "Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 5) (set 12)", + "sc5dnddfl", "Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 5) (set 13)", + "sc5dnddfm", "Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 5) (set 14)", + "sc5dnddfn", "Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 5) (set 15)", + "sc5dnddi", "Deal Or No Deal Diamond (Bellfruit) (Scorpion 5) (set 1)", + "sc5dnddia", "Deal Or No Deal Diamond (Bellfruit) (Scorpion 5) (set 2)", + "sc5dnddib", "Deal Or No Deal Diamond (Bellfruit) (Scorpion 5) (set 3)", + "sc5dnddic", "Deal Or No Deal Diamond (Bellfruit) (Scorpion 5) (set 4)", + "sc5dnddo", "Deal Or No Deal Dream Offer (Bellfruit) (Scorpion 5) (set 1)", + "sc5dnddoa", "Deal Or No Deal Dream Offer (Bellfruit) (Scorpion 5) (set 2)", + "sc5dnddob", "Deal Or No Deal Dream Offer (Bellfruit) (Scorpion 5) (set 3)", + "sc5dnddoc", "Deal Or No Deal Dream Offer (Bellfruit) (Scorpion 5) (set 4)", + "sc5dnddt", "Deal Or No Deal Double Take (Bellfruit) (Scorpion 5) (set 1)", + "sc5dnddta", "Deal Or No Deal Double Take (Bellfruit) (Scorpion 5) (set 2)", + "sc5dnddtb", "Deal Or No Deal Double Take (Bellfruit) (Scorpion 5) (set 3)", + "sc5dnddtc", "Deal Or No Deal Double Take (Bellfruit) (Scorpion 5) (set 4)", + "sc5dnddtd", "Deal Or No Deal Double Take (Bellfruit) (Scorpion 5) (set 5)", + "sc5dnddte", "Deal Or No Deal Double Take (Bellfruit) (Scorpion 5) (set 6)", + "sc5dnddtf", "Deal Or No Deal Double Take (Bellfruit) (Scorpion 5) (set 7)", + "sc5dnddw", "Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 5) (set 1)", + "sc5dnddwa", "Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 5) (set 2)", + "sc5dnddwb", "Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 5) (set 3)", + "sc5dnddwc", "Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 5) (set 4)", + "sc5dnddwd", "Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 5) (set 5)", + "sc5dnddwe", "Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 5) (set 6)", + "sc5dnddwf", "Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 5) (set 7)", + "sc5dnddwg", "Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 5) (set 8)", + "sc5dnddwh", "Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 5) (set 9)", + "sc5dnddwi", "Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 5) (set 10)", + "sc5dnddwj", "Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 5) (set 11)", + "sc5dnde", "Deal Or No Deal (Bellfruit) (Scorpion 5) (set 6)", + "sc5dndf", "Deal Or No Deal (Bellfruit) (Scorpion 5) (set 7)", + "sc5dndfl", "Deal Or No Deal Feeling Lucky (PR3432) (Bellfruit) (Scorpion 5) (set 1)", + "sc5dndfla", "Deal Or No Deal Feeling Lucky (PR3432) (Bellfruit) (Scorpion 5) (set 2)", + "sc5dndflb", "Deal Or No Deal Feeling Lucky (PR3309) (Bellfruit) (Scorpion 5) (set 1)", + "sc5dndflc", "Deal Or No Deal Feeling Lucky (PR3309) (Bellfruit) (Scorpion 5) (set 2)", + "sc5dndfld", "Deal Or No Deal Feeling Lucky (PR3309) (Bellfruit) (Scorpion 5) (set 3)", + "sc5dndfle", "Deal Or No Deal Feeling Lucky (PR3309) (Bellfruit) (Scorpion 5) (set 4)", + "sc5dndg", "Deal Or No Deal (Bellfruit) (Scorpion 5) (set 8)", + "sc5dndgl", "Deal Or No Deal Gold (Bellfruit) (Scorpion 5) (set 1)", + "sc5dndgla", "Deal Or No Deal Gold (Bellfruit) (Scorpion 5) (set 2)", + "sc5dndglb", "Deal Or No Deal Gold (Bellfruit) (Scorpion 5) (set 3)", + "sc5dndglc", "Deal Or No Deal Gold (Bellfruit) (Scorpion 5) (set 4)", + "sc5dndgld", "Deal Or No Deal Gold (Bellfruit) (Scorpion 5) (set 5)", + "sc5dndgle", "Deal Or No Deal Gold (Bellfruit) (Scorpion 5) (set 6)", + "sc5dndglf", "Deal Or No Deal Gold (Bellfruit) (Scorpion 5) (set 7)", + "sc5dndglg", "Deal Or No Deal Gold (Bellfruit) (Scorpion 5) (set 8)", + "sc5dndglh", "Deal Or No Deal Gold (Bellfruit) (Scorpion 5) (set 9)", + "sc5dndgli", "Deal Or No Deal Gold (Bellfruit) (Scorpion 5) (set 10)", + "sc5dndglj", "Deal Or No Deal Gold (Bellfruit) (Scorpion 5) (set 11)", + "sc5dndglk", "Deal Or No Deal Gold (Bellfruit) (Scorpion 5) (set 12)", + "sc5dndgo", "Deal Or No Deal Game On (Bellfruit) (Scorpion 5) (set 1)", + "sc5dndgoa", "Deal Or No Deal Game On (Bellfruit) (Scorpion 5) (set 2)", + "sc5dndh", "Deal Or No Deal (Bellfruit) (Scorpion 5) (set 9)", + "sc5dndhf", "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 5) (set 1)", + "sc5dndhfa", "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 5) (set 2)", + "sc5dndhfb", "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 5) (set 3)", + "sc5dndhfc", "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 5) (set 4)", + "sc5dndhfd", "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 5) (set 5)", + "sc5dndhfe", "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 5) (set 6)", + "sc5dndhff", "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 5) (set 7)", + "sc5dndhfg", "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 5) (set 8)", + "sc5dndhfh", "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 5) (set 9)", + "sc5dndhfi", "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 5) (set 10)", + "sc5dndhfj", "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 5) (set 11)", + "sc5dndhfk", "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 5) (set 12)", + "sc5dndhfl", "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 5) (set 13)", + "sc5dndhfm", "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 5) (set 14)", + "sc5dndhfn", "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 5) (set 15)", + "sc5dndhfo", "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 5) (set 16)", + "sc5dndhfp", "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 5) (set 17)", + "sc5dndhfq", "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 5) (set 18)", + "sc5dndhfr", "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 5) (set 19)", + "sc5dndhfs", "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 5) (set 20)", + "sc5dndhft", "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 5) (set 21)", + "sc5dndhfu", "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 5) (set 22)", + "sc5dndi", "Deal Or No Deal (Bellfruit) (Scorpion 5) (set 10)", + "sc5dndj", "Deal Or No Deal (Bellfruit) (Scorpion 5) (set 11)", + "sc5dndk", "Deal Or No Deal (Bellfruit) (Scorpion 5) (set 12)", + "sc5dndl", "Deal Or No Deal (Bellfruit) (Scorpion 5) (set 13)", + "sc5dndld", "Deal Or No Deal Live The Dream (Bellfruit) (Scorpion 5) (set 1)", + "sc5dndlda", "Deal Or No Deal Live The Dream (Bellfruit) (Scorpion 5) (set 2)", + "sc5dndldb", "Deal Or No Deal Live The Dream (Bellfruit) (Scorpion 5) (set 3)", + "sc5dndldc", "Deal Or No Deal Live The Dream (Bellfruit) (Scorpion 5) (set 4)", + "sc5dndlp", "Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 5) (set 1)", + "sc5dndlpa", "Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 5) (set 2)", + "sc5dndlpb", "Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 5) (set 3)", + "sc5dndlpc", "Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 5) (set 4)", + "sc5dndlpd", "Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 5) (set 5)", + "sc5dndlpe", "Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 5) (set 6)", + "sc5dndlpf", "Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 5) (set 7)", + "sc5dndlpg", "Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 5) (set 8)", + "sc5dndlph", "Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 5) (set 9)", + "sc5dndlpi", "Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 5) (set 10)", + "sc5dndlpj", "Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 5) (set 11)", + "sc5dndlpk", "Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 5) (set 12)", + "sc5dndlpl", "Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 5) (set 13)", + "sc5dndlpm", "Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 5) (set 14)", + "sc5dndlpn", "Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 5) (set 15)", + "sc5dndlpo", "Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 5) (set 16)", + "sc5dndlpp", "Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 5) (set 17)", + "sc5dndlpq", "Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 5) (set 18)", + "sc5dndlpr", "Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 5) (set 19)", + "sc5dndlps", "Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 5) (set 20)", + "sc5dndlpt", "Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 5) (set 21)", + "sc5dndlpu", "Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 5) (set 22)", + "sc5dndm", "Deal Or No Deal (Bellfruit) (Scorpion 5) (set 14)", + "sc5dndmb", "Deal Or No Deal Make Or Break (Bellfruit) (Scorpion 5) (set 1)", + "sc5dndmba", "Deal Or No Deal Make Or Break (Bellfruit) (Scorpion 5) (set 2)", + "sc5dndmbb", "Deal Or No Deal Make Or Break (Bellfruit) (Scorpion 5) (set 3)", + "sc5dndmbc", "Deal Or No Deal Make Or Break (Bellfruit) (Scorpion 5) (set 4)", + "sc5dndmbd", "Deal Or No Deal Make Or Break (Bellfruit) (Scorpion 5) (set 5)", + "sc5dndmbe", "Deal Or No Deal Make Or Break (Bellfruit) (Scorpion 5) (set 6)", + "sc5dndmbf", "Deal Or No Deal Make Or Break (Bellfruit) (Scorpion 5) (set 7)", + "sc5dndmbg", "Deal Or No Deal Make Or Break (Bellfruit) (Scorpion 5) (set 8)", + "sc5dndmbh", "Deal Or No Deal Make Or Break (Bellfruit) (Scorpion 5) (set 9)", + "sc5dndmbi", "Deal Or No Deal Make Or Break (Bellfruit) (Scorpion 5) (set 10)", + "sc5dndmbj", "Deal Or No Deal Make Or Break (Bellfruit) (Scorpion 5) (set 11)", + "sc5dndmbk", "Deal Or No Deal Make Or Break (Bellfruit) (Scorpion 5) (set 12)", + "sc5dndmd", "Deal Or No Deal Mega Deal Or No Deal (PR3411) (Bellfruit) (Scorpion 5) (set 1)", + "sc5dndmda", "Deal Or No Deal Mega Deal Or No Deal (PR3411) (Bellfruit) (Scorpion 5) (set 2)", + "sc5dndmdb", "Deal Or No Deal Mega Deal Or No Deal (PR3496) (Bellfruit) (Scorpion 5) (set 1)", + "sc5dndmdc", "Deal Or No Deal Mega Deal Or No Deal (PR3496) (Bellfruit) (Scorpion 5) (set 2)", + "sc5dndmdd", "Deal Or No Deal Mega Deal Or No Deal (PR3411) (Bellfruit) (Scorpion 5) (set 3)", + "sc5dndmde", "Deal Or No Deal Mega Deal Or No Deal (PR3411) (Bellfruit) (Scorpion 5) (set 4)", + "sc5dndmdf", "Deal Or No Deal Mega Deal Or No Deal (PR3411) (Bellfruit) (Scorpion 5) (set 5)", + "sc5dndmdg", "Deal Or No Deal Mega Deal Or No Deal (PR3496) (Bellfruit) (Scorpion 5) (set 3)", + "sc5dndmdh", "Deal Or No Deal Mega Deal Or No Deal (PR3496) (Bellfruit) (Scorpion 5) (set 4)", + "sc5dndmdi", "Deal Or No Deal Mega Deal Or No Deal (PR3411) (Bellfruit) (Scorpion 5) (set 6)", + "sc5dndmdj", "Deal Or No Deal Mega Deal Or No Deal (PR3411) (Bellfruit) (Scorpion 5) (set 7)", + "sc5dndmdk", "Deal Or No Deal Mega Deal Or No Deal (PR3411) (Bellfruit) (Scorpion 5) (set 8)", + "sc5dndn", "Deal Or No Deal (Bellfruit) (Scorpion 5) (set 15)", + "sc5dndo", "Deal Or No Deal (Bellfruit) (Scorpion 5) (set 16)", + "sc5dndp", "Deal Or No Deal (Bellfruit) (Scorpion 5) (set 17)", + "sc5dndpa", "Deal Or No Deal Play It Again (Bellfruit) (Scorpion 5) (set 1)", + "sc5dndpaa", "Deal Or No Deal Play It Again (Bellfruit) (Scorpion 5) (set 2)", + "sc5dndpab", "Deal Or No Deal Play It Again (Bellfruit) (Scorpion 5) (set 3)", + "sc5dndpac", "Deal Or No Deal Play It Again (Bellfruit) (Scorpion 5) (set 4)", + "sc5dndpc", "Deal Or No Deal The Players Choice (Bellfruit) (Scorpion 5) (set 1)", + "sc5dndpca", "Deal Or No Deal The Players Choice (Bellfruit) (Scorpion 5) (set 2)", + "sc5dndpd", "Deal Or No Deal The Perfect Deal (Bellfruit) (Scorpion 5) (set 1)", + "sc5dndpda", "Deal Or No Deal The Perfect Deal (Bellfruit) (Scorpion 5) (set 2)", + "sc5dndpdb", "Deal Or No Deal The Perfect Deal (Bellfruit) (Scorpion 5) (set 3)", + "sc5dndpdc", "Deal Or No Deal The Perfect Deal (Bellfruit) (Scorpion 5) (set 4)", + "sc5dndpdd", "Deal Or No Deal The Perfect Deal (Bellfruit) (Scorpion 5) (set 5)", + "sc5dndpde", "Deal Or No Deal The Perfect Deal (Bellfruit) (Scorpion 5) (set 6)", + "sc5dndpg", "Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 1)", + "sc5dndpga", "Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 2)", + "sc5dndpgb", "Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 3)", + "sc5dndpgc", "Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 4)", + "sc5dndpgd", "Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 5)", + "sc5dndpge", "Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 6)", + "sc5dndpgf", "Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 7)", + "sc5dndpgg", "Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 8)", + "sc5dndpgh", "Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 9)", + "sc5dndpgi", "Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 10)", + "sc5dndpgj", "Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 11)", + "sc5dndpgk", "Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 12)", + "sc5dndpgl", "Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 13)", + "sc5dndpgm", "Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 14)", + "sc5dndpgn", "Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 15)", + "sc5dndpgo", "Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 16)", + "sc5dndpgp", "Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 17)", + "sc5dndpgq", "Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 18)", + "sc5dndpgr", "Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 19)", + "sc5dndpgs", "Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 20)", + "sc5dndpgt", "Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 21)", + "sc5dndpgu", "Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 22)", + "sc5dndpgv", "Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 23)", + "sc5dndpgw", "Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 24)", + "sc5dndpl", "Deal Or No Deal The Perfect Game Classic (Bellfruit) (Scorpion 5) (set 1)", + "sc5dndpla", "Deal Or No Deal The Perfect Game Classic (Bellfruit) (Scorpion 5) (set 2)", + "sc5dndplb", "Deal Or No Deal The Perfect Game Classic (Bellfruit) (Scorpion 5) (set 3)", + "sc5dndplc", "Deal Or No Deal The Perfect Game Classic (Bellfruit) (Scorpion 5) (set 4)", + "sc5dndq", "Deal Or No Deal (Bellfruit) (Scorpion 5) (set 18)", + "sc5dndr", "Deal Or No Deal (Bellfruit) (Scorpion 5) (set 19)", + "sc5dndra", "Deal Or No Deal Red Alert (Bellfruit) (Scorpion 5) (set 1)", + "sc5dndraa", "Deal Or No Deal Red Alert (Bellfruit) (Scorpion 5) (set 2)", + "sc5dndrab", "Deal Or No Deal Red Alert (Bellfruit) (Scorpion 5) (set 3)", + "sc5dndrac", "Deal Or No Deal Red Alert (Bellfruit) (Scorpion 5) (set 4)", + "sc5dndrad", "Deal Or No Deal Red Alert (Bellfruit) (Scorpion 5) (set 5)", + "sc5dndrae", "Deal Or No Deal Red Alert (Bellfruit) (Scorpion 5) (set 6)", + "sc5dndraf", "Deal Or No Deal Red Alert (Bellfruit) (Scorpion 5) (set 7)", + "sc5dndrag", "Deal Or No Deal Red Alert (Bellfruit) (Scorpion 5) (set 8)", + "sc5dndrah", "Deal Or No Deal Red Alert (Bellfruit) (Scorpion 5) (set 9)", + "sc5dndrai", "Deal Or No Deal Red Alert (Bellfruit) (Scorpion 5) (set 10)", + "sc5dndraj", "Deal Or No Deal Red Alert (Bellfruit) (Scorpion 5) (set 11)", + "sc5dndrak", "Deal Or No Deal Red Alert (Bellfruit) (Scorpion 5) (set 12)", + "sc5dndrr", "Deal Or No Deal Road To Riches (Bellfruit) (Scorpion 5) (set 1)", + "sc5dndrra", "Deal Or No Deal Road To Riches (Bellfruit) (Scorpion 5) (set 2)", + "sc5dndrrb", "Deal Or No Deal Road To Riches (Bellfruit) (Scorpion 5) (set 3)", + "sc5dndrrc", "Deal Or No Deal Road To Riches (Bellfruit) (Scorpion 5) (set 4)", + "sc5dndrrd", "Deal Or No Deal Road To Riches (Bellfruit) (Scorpion 5) (set 5)", + "sc5dndrre", "Deal Or No Deal Road To Riches (Bellfruit) (Scorpion 5) (set 6)", + "sc5dndrt", "Deal Or No Deal The Banker Rings Twice (Bellfruit) (Scorpion 5) (set 1)", + "sc5dndrta", "Deal Or No Deal The Banker Rings Twice (Bellfruit) (Scorpion 5) (set 2)", + "sc5dndrtb", "Deal Or No Deal The Banker Rings Twice (Bellfruit) (Scorpion 5) (set 3)", + "sc5dndrtc", "Deal Or No Deal The Banker Rings Twice (Bellfruit) (Scorpion 5) (set 4)", + "sc5dndrtd", "Deal Or No Deal The Banker Rings Twice (Bellfruit) (Scorpion 5) (set 5)", + "sc5dndrte", "Deal Or No Deal The Banker Rings Twice (Bellfruit) (Scorpion 5) (set 6)", + "sc5dnds", "Deal Or No Deal (Bellfruit) (Scorpion 5) (set 20)", + "sc5dndsi", "Deal Or No Deal Simply Deal Or No Deal (Bellfruit) (Scorpion 5) (set 1)", + "sc5dndsia", "Deal Or No Deal Simply Deal Or No Deal (Bellfruit) (Scorpion 5) (set 2)", + "sc5dndsib", "Deal Or No Deal Simply Deal Or No Deal (Bellfruit) (Scorpion 5) (set 3)", + "sc5dndsic", "Deal Or No Deal Simply Deal Or No Deal (Bellfruit) (Scorpion 5) (set 4)", + "sc5dndsid", "Deal Or No Deal Simply Deal Or No Deal (Bellfruit) (Scorpion 5) (set 5)", + "sc5dndt", "Deal Or No Deal (Bellfruit) (Scorpion 5) (set 21)", + "sc5dndtb", "Deal Or No Deal Think Big (Bellfruit) (Scorpion 5) (set 1)", + "sc5dndtba", "Deal Or No Deal Think Big (Bellfruit) (Scorpion 5) (set 2)", + "sc5dndtp", "Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 1)", + "sc5dndtpa", "Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 2)", + "sc5dndtpb", "Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 3)", + "sc5dndtpc", "Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 4)", + "sc5dndtpd", "Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 5)", + "sc5dndtpe", "Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 6)", + "sc5dndtpf", "Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 7)", + "sc5dndtpg", "Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 8)", + "sc5dndtph", "Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 9)", + "sc5dndtpi", "Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 10)", + "sc5dndtpj", "Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 11)", + "sc5dndtpk", "Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 12)", + "sc5dndtpl", "Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 13)", + "sc5dndtpm", "Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 14)", + "sc5dndtpn", "Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 15)", + "sc5dndtpo", "Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 16)", + "sc5dndtpp", "Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 17)", + "sc5dndtpq", "Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 18)", + "sc5dndtpr", "Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 19)", + "sc5dndtps", "Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 20)", + "sc5dndtpt", "Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 21)", + "sc5dndtpu", "Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 22)", + "sc5dndtpv", "Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 23)", + "sc5dndtr", "Deal Or No Deal Think Red (Bellfruit) (Scorpion 5) (set 1)", + "sc5dndtra", "Deal Or No Deal Think Red (Bellfruit) (Scorpion 5) (set 2)", + "sc5dndtrb", "Deal Or No Deal Think Red (Bellfruit) (Scorpion 5) (set 3)", + "sc5dndtrc", "Deal Or No Deal Think Red (Bellfruit) (Scorpion 5) (set 4)", + "sc5dndtrd", "Deal Or No Deal Think Red (Bellfruit) (Scorpion 5) (set 5)", + "sc5dndtre", "Deal Or No Deal Think Red (Bellfruit) (Scorpion 5) (set 6)", + "sc5dndtrf", "Deal Or No Deal Think Red (Bellfruit) (Scorpion 5) (set 7)", + "sc5dndtrg", "Deal Or No Deal Think Red (Bellfruit) (Scorpion 5) (set 8)", + "sc5dndtrh", "Deal Or No Deal Think Red (Bellfruit) (Scorpion 5) (set 9)", + "sc5dndtri", "Deal Or No Deal Think Red (Bellfruit) (Scorpion 5) (set 10)", + "sc5dndtrj", "Deal Or No Deal Think Red (Bellfruit) (Scorpion 5) (set 11)", + "sc5dndtrk", "Deal Or No Deal Think Red (Bellfruit) (Scorpion 5) (set 12)", + "sc5dndwb", "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 5) (set 1)", + "sc5dndwba", "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 5) (set 2)", + "sc5dndwbb", "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 5) (set 3)", + "sc5dndwbc", "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 5) (set 4)", + "sc5dndwbd", "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 5) (set 5)", + "sc5dndwbe", "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 5) (set 6)", + "sc5dndwbf", "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 5) (set 7)", + "sc5dndwbg", "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 5) (set 8)", + "sc5dndwbh", "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 5) (set 9)", + "sc5dndwbi", "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 5) (set 10)", + "sc5dndwbj", "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 5) (set 11)", + "sc5dndwbk", "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 5) (set 12)", + "sc5dndwbl", "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 5) (set 13)", + "sc5dndwbm", "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 5) (set 14)", + "sc5dndwbn", "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 5) (set 15)", + "sc5dndwbo", "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 5) (set 16)", + "sc5dndwbp", "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 5) (set 17)", + "sc5dndwbq", "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 5) (set 18)", + "sc5dndwbr", "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 5) (set 19)", + "sc5dndwbs", "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 5) (set 20)", + "sc5dndwc", "Deal Or No Deal The Walk Of Wealth Classic (Bellfruit) (Scorpion 5) (set 1)", + "sc5dndwca", "Deal Or No Deal The Walk Of Wealth Classic (Bellfruit) (Scorpion 5) (set 2)", + "sc5dndwcb", "Deal Or No Deal The Walk Of Wealth Classic (Bellfruit) (Scorpion 5) (set 3)", + "sc5dndwcc", "Deal Or No Deal The Walk Of Wealth Classic (Bellfruit) (Scorpion 5) (set 4)", + "sc5dndwcd", "Deal Or No Deal The Walk Of Wealth Classic (Bellfruit) (Scorpion 5) (set 5)", + "sc5dndwce", "Deal Or No Deal The Walk Of Wealth Classic (Bellfruit) (Scorpion 5) (set 6)", + "sc5dndwcf", "Deal Or No Deal The Walk Of Wealth Classic (Bellfruit) (Scorpion 5) (set 7)", + "sc5dndwcg", "Deal Or No Deal The Walk Of Wealth Classic (Bellfruit) (Scorpion 5) (set 8)", + "sc5dndwi", "Deal Or No Deal What's In Your Box Casino (Bellfruit) (Scorpion 5) (set 1)", + "sc5dndwia", "Deal Or No Deal What's In Your Box Casino (Bellfruit) (Scorpion 5) (set 2)", + "sc5dndwib", "Deal Or No Deal What's In Your Box Casino (Bellfruit) (Scorpion 5) (set 3)", + "sc5dndwic", "Deal Or No Deal What's In Your Box Casino (Bellfruit) (Scorpion 5) (set 4)", + "sc5dndwid", "Deal Or No Deal What's In Your Box Casino (Bellfruit) (Scorpion 5) (set 5)", + "sc5dndwie", "Deal Or No Deal What's In Your Box Casino (Bellfruit) (Scorpion 5) (set 6)", + "sc5dndwif", "Deal Or No Deal What's In Your Box Casino (Bellfruit) (Scorpion 5) (set 7)", + "sc5dndwig", "Deal Or No Deal What's In Your Box Casino (Bellfruit) (Scorpion 5) (set 8)", + "sc5dndww", "Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 5) (set 1)", + "sc5dndwwa", "Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 5) (set 2)", + "sc5dndwwb", "Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 5) (set 3)", + "sc5dndwwc", "Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 5) (set 4)", + "sc5dndwwd", "Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 5) (set 5)", + "sc5dndwwe", "Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 5) (set 6)", + "sc5dndwwf", "Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 5) (set 7)", + "sc5dndwwg", "Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 5) (set 8)", + "sc5dndwwh", "Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 5) (set 9)", + "sc5dndwwi", "Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 5) (set 10)", + "sc5dndwwj", "Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 5) (set 11)", + "sc5dndwwk", "Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 5) (set 12)", + "sc5dndwwl", "Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 5) (set 13)", + "sc5dndwwm", "Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 5) (set 14)", + "sc5dndwwn", "Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 5) (set 15)", + "sc5dndwwo", "Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 5) (set 16)", + "sc5dndwwp", "Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 5) (set 17)", + "sc5dndwwq", "Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 5) (set 18)", + "sc5dndwwr", "Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 5) (set 19)", + "sc5dndwws", "Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 5) (set 20)", + "sc5dndys", "Deal Or No Deal It's Your Show (Bellfruit) (Scorpion 5) (set 1)", + "sc5dndysa", "Deal Or No Deal It's Your Show (Bellfruit) (Scorpion 5) (set 2)", + "sc5dndysb", "Deal Or No Deal It's Your Show (Bellfruit) (Scorpion 5) (set 3)", + "sc5dndysc", "Deal Or No Deal It's Your Show (Bellfruit) (Scorpion 5) (set 4)", + "sc5dndysd", "Deal Or No Deal It's Your Show (Bellfruit) (Scorpion 5) (set 5)", + "sc5dndyse", "Deal Or No Deal It's Your Show (Bellfruit) (Scorpion 5) (set 6)", + "sc5dndysf", "Deal Or No Deal It's Your Show (Bellfruit) (Scorpion 5) (set 7)", + "sc5dndysg", "Deal Or No Deal It's Your Show (Bellfruit) (Scorpion 5) (set 8)", + "sc5dndysh", "Deal Or No Deal It's Your Show (Bellfruit) (Scorpion 5) (set 9)", + "sc5dough", "Dough Selecta (Bellfruit) (Scorpion 5) (set 1)", + "sc5dougha", "Dough Selecta (Bellfruit) (Scorpion 5) (set 2)", + "sc5dracp", "Drac Pack (Bellfruit) (Scorpion 5) (set 1)", + "sc5dracpa", "Drac Pack (Bellfruit) (Scorpion 5) (set 2)", + "sc5ducks", "Ducks Of Hazzard (Mazooma) (Scorpion 5)", + "sc5emmer", "Emmerdale (Mazooma) (Scorpion 5) (set 1)", + "sc5emmera", "Emmerdale (Mazooma) (Scorpion 5) (set 2)", + "sc5fast", "Fast Cash (Qps) (Scorpion 5)", + "sc5fbspn", "Fat Boy Spin (Bellfruit) (Scorpion 5) (set 1)", + "sc5fbspna", "Fat Boy Spin (Bellfruit) (Scorpion 5) (set 2)", + "sc5fdice", "Fire 'n' Dice (Bellfruit) (Scorpion 5) (set 1)", + "sc5fdicea", "Fire 'n' Dice (Bellfruit) (Scorpion 5) (set 2)", + "sc5fgbh", "Family Guy Booze Hound (Bellfruit) (Scorpion 5) (set 1)", + "sc5fgbha", "Family Guy Booze Hound (Bellfruit) (Scorpion 5) (set 2)", + "sc5fgbhb", "Family Guy Booze Hound (Bellfruit) (Scorpion 5) (set 3)", + "sc5fgbhc", "Family Guy Booze Hound (Bellfruit) (Scorpion 5) (set 4)", + "sc5fggp", "Family Guy Griffin Plumbing (Bellfruit) (Scorpion 5) (set 1)", + "sc5fggpa", "Family Guy Griffin Plumbing (Bellfruit) (Scorpion 5) (set 2)", + "sc5fggpb", "Family Guy Griffin Plumbing (Bellfruit) (Scorpion 5) (set 3)", + "sc5fggpc", "Family Guy Griffin Plumbing (Bellfruit) (Scorpion 5) (set 4)", + "sc5fggpd", "Family Guy Griffin Plumbing (Bellfruit) (Scorpion 5) (set 5)", + "sc5fggpe", "Family Guy Griffin Plumbing (Bellfruit) (Scorpion 5) (set 6)", + "sc5fggpf", "Family Guy Griffin Plumbing (Bellfruit) (Scorpion 5) (set 7)", + "sc5fggpg", "Family Guy Griffin Plumbing (Bellfruit) (Scorpion 5) (set 8)", + "sc5fguy", "Family Guy (Bellfruit) (Scorpion 5) (set 1)", + "sc5fguya", "Family Guy (Bellfruit) (Scorpion 5) (set 2)", + "sc5fguyb", "Family Guy (Bellfruit) (Scorpion 5) (set 3)", + "sc5fguyc", "Family Guy (Bellfruit) (Scorpion 5) (set 4)", + "sc5fguyd", "Family Guy (Bellfruit) (Scorpion 5) (set 5)", + "sc5fguye", "Family Guy (Bellfruit) (Scorpion 5) (set 6)", + "sc5fguyf", "Family Guy (Bellfruit) (Scorpion 5) (set 7)", + "sc5fguyg", "Family Guy (Bellfruit) (Scorpion 5) (set 8)", + "sc5fires", "Firestarter (Bellfruit) (Scorpion 5) (set 1)", + "sc5firesa", "Firestarter (Bellfruit) (Scorpion 5) (set 2)", + "sc5firesb", "Firestarter (Bellfruit) (Scorpion 5) (set 3)", + "sc5firesc", "Firestarter (Bellfruit) (Scorpion 5) (set 4)", + "sc5floop", "Fruit Loops (Mazooma) (Scorpion 5) (set 1)", + "sc5floopa", "Fruit Loops (Mazooma) (Scorpion 5) (set 2)", + "sc5fmj", "Full Metal Jackpot (Mazooma) (Scorpion 5) (set 1)", + "sc5fmja", "Full Metal Jackpot (Mazooma) (Scorpion 5) (set 2)", + "sc5fnclb", "Fight Night Club (Bellfruit) (Scorpion 5) (set 1)", + "sc5fnclba", "Fight Night Club (Bellfruit) (Scorpion 5) (set 2)", + "sc5fnclbb", "Fight Night Club (Bellfruit) (Scorpion 5) (set 3)", + "sc5fnclbc", "Fight Night Club (Bellfruit) (Scorpion 5) (set 4)", + "sc5fnclbd", "Fight Night Club (Bellfruit) (Scorpion 5) (set 5)", + "sc5fnclbe", "Fight Night Club (Bellfruit) (Scorpion 5) (set 6)", + "sc5frcrz", "Fruit Crazy (Mazooma) (Scorpion 5) (set 1)", + "sc5frcrza", "Fruit Crazy (Mazooma) (Scorpion 5) (set 2)", + "sc5ftcas", "Flash The Cash (Mazooma) (Scorpion 5) (set 1)", + "sc5ftcasa", "Flash The Cash (Mazooma) (Scorpion 5) (set 2)", + "sc5gball", "Golden Balls (Bellfruit) (Scorpion 5) (set 1)", + "sc5gballa", "Golden Balls (Bellfruit) (Scorpion 5) (set 2)", + "sc5gballb", "Golden Balls (Bellfruit) (Scorpion 5) (set 3)", + "sc5gballc", "Golden Balls (Bellfruit) (Scorpion 5) (set 4)", + "sc5gd", "Gold Digger (Bellfruit) (Scorpion 5) (set 1)", + "sc5gda", "Gold Digger (Bellfruit) (Scorpion 5) (set 2)", + "sc5gdclb", "Gold Digger Club (Bellfruit) (Scorpion 5) (set 1)", + "sc5gdclba", "Gold Digger Club (Bellfruit) (Scorpion 5) (set 2)", + "sc5gdclbb", "Gold Digger Club (Bellfruit) (Scorpion 5) (set 3)", + "sc5gdclbc", "Gold Digger Club (Bellfruit) (Scorpion 5) (set 4)", + "sc5gdclbd", "Gold Digger Club (Bellfruit) (Scorpion 5) (set 5)", + "sc5gdclbe", "Gold Digger Club (Bellfruit) (Scorpion 5) (set 6)", + "sc5gdclbf", "Gold Digger Club (Bellfruit) (Scorpion 5) (set 7)", + "sc5gdclbg", "Gold Digger Club (Bellfruit) (Scorpion 5) (set 8)", + "sc5gdclbh", "Gold Digger (PR3509) (Bellfruit) (Scorpion 5) (set 1)", + "sc5gdclbi", "Gold Digger (PR3509) (Bellfruit) (Scorpion 5) (set 2)", + "sc5gdclbj", "Gold Digger Club (PR3429) (Bellfruit) (Scorpion 5) (set 1)", + "sc5gdclbk", "Gold Digger Club (PR3429) (Bellfruit) (Scorpion 5) (set 2)", + "sc5gdmz", "Gold Diggers (Mazooma) (Scorpion 5) (set 1)", + "sc5gdmza", "Gold Diggers (Mazooma) (Scorpion 5) (set 2)", + "sc5ggame", "Golden Game (Mazooma) (Scorpion 5) (set 1)", + "sc5ggamea", "Golden Game (Mazooma) (Scorpion 5) (set 2)", + "sc5ggameb", "Golden Game (Mazooma) (Scorpion 5) (set 3)", + "sc5ggamec", "Golden Game (Mazooma) (Scorpion 5) (set 4)", + "sc5ggamed", "Golden Game (Mazooma) (Scorpion 5) (set 5)", + "sc5ggg", "Grand Golden Game (Mazooma) (Scorpion 5) (set 1)", + "sc5ggga", "Grand Golden Game (Mazooma) (Scorpion 5) (set 3)", + "sc5gggb", "Grand Golden Game (Mazooma) (Scorpion 5) (set 2)", + "sc5gggc", "Grand Golden Game (Mazooma) (Scorpion 5) (set 4)", + "sc5glad", "Gladiator (Mazooma) (Scorpion 5) (set 1)", + "sc5glada", "Gladiator (Mazooma) (Scorpion 5) (set 2)", + "sc5gladb", "Gladiator (Mazooma) (Scorpion 5) (set 3)", + "sc5gladc", "Gladiator (Mazooma) (Scorpion 5) (set 4)", + "sc5gldfv", "Gold Fever (Bellfruit) (Scorpion 5) (set 1)", + "sc5gldfva", "Gold Fever (Bellfruit) (Scorpion 5) (set 2)", + "sc5gldfvb", "Gold Fever (Bellfruit) (Scorpion 5) (set 3)", + "sc5gldfvc", "Gold Fever (Bellfruit) (Scorpion 5) (set 4)", + "sc5gldfvd", "Gold Fever (Bellfruit) (Scorpion 5) (set 5)", + "sc5gldfve", "Gold Fever (Bellfruit) (Scorpion 5) (set 6)", + "sc5gldfvf", "Gold Fever (Bellfruit) (Scorpion 5) (set 7)", + "sc5gldfvg", "Gold Fever (Bellfruit) (Scorpion 5) (set 8)", + "sc5gldgo", "Golden Goals (Bellfruit) (Scorpion 5) (set 1)", + "sc5gldgoa", "Golden Goals (Bellfruit) (Scorpion 5) (set 2)", + "sc5gldsp", "Golden Spinner (PR2203) (Mazooma) (Scorpion 5)", + "sc5gldspa", "Golden Spinner Bingo (011) (PR2546) (Mazooma) (Scorpion 5) (set 1)", + "sc5gldspb", "Golden Spinner Bingo (011) (PR2546) (Mazooma) (Scorpion 5) (set 2)", + "sc5gldspc", "Golden Spinner Bingo (011) (PR2546) (Mazooma) (Scorpion 5) (set 3)", + "sc5gldspd", "Golden Spinner Arcade (061) (PR2546) (Mazooma) (Scorpion 5) (set 1)", + "sc5gldspe", "Golden Spinner Bingo (011) (PR2546) (Mazooma) (Scorpion 5) (set 4)", + "sc5gldspf", "Golden Spinner Arcade (061) (PR2546) (Mazooma) (Scorpion 5) (set 2)", + "sc5gldspg", "Golden Spinner Bingo (011) (PR2546) (Mazooma) (Scorpion 5) (set 5)", + "sc5gldsph", "Golden Spinner Arcade (061) (PR2546) (Mazooma) (Scorpion 5) (set 3)", + "sc5gldspi", "Golden Spinner Bingo (011) (PR2546) (Mazooma) (Scorpion 5) (set 6)", + "sc5gldspj", "Golden Spinner Bingo (011) (PR2546) (Mazooma) (Scorpion 5) (set 7)", + "sc5gldspk", "Golden Spinner Bingo (011) (PR2546) (Mazooma) (Scorpion 5) (set 8)", + "sc5gldspl", "Golden Spinner Bingo (011) (PR2546) (Mazooma) (Scorpion 5) (set 9)", + "sc5gldspm", "Golden Spinner Bingo (011) (PR2546) (Mazooma) (Scorpion 5) (set 10)", + "sc5gldspn", "Golden Spinner Arcade (061) (PR2546) (Mazooma) (Scorpion 5) (set 4)", + "sc5gldspo", "Golden Spinner Bingo (011) (PR2546) (Mazooma) (Scorpion 5) (set 11)", + "sc5gldspp", "Golden Spinner Arcade (061) (PR2546) (Mazooma) (Scorpion 5) (set 5)", + "sc5gmclb", "Grand Master Cash (Bellfruit) (Scorpion 5) (set 1)", + "sc5gmclba", "Grand Master Cash (Bellfruit) (Scorpion 5) (set 2)", + "sc5gmclbb", "Grand Master Cash (Bellfruit) (Scorpion 5) (set 3)", + "sc5gmclbc", "Grand Master Cash (Bellfruit) (Scorpion 5) (set 4)", + "sc5grq", "Get Rich Quick (Bellfruit) (Scorpion 5) (set 1)", + "sc5grqa", "Get Rich Quick (Bellfruit) (Scorpion 5) (set 2)", + "sc5grqb", "Get Rich Quick (Bellfruit) (Scorpion 5) (set 3)", + "sc5grqc", "Get Rich Quick (Bellfruit) (Scorpion 5) (set 4)", + "sc5gunp", "Gunpowder Slot (Bellfruit) (Scorpion 5) (set 1)", + "sc5gunpa", "Gunpowder Slot (Bellfruit) (Scorpion 5) (set 2)", + "sc5gunpb", "Gunpowder Slot (Bellfruit) (Scorpion 5) (set 3)", + "sc5gunpc", "Gunpowder Slot (Bellfruit) (Scorpion 5) (set 4)", + "sc5gunpd", "Gunpowder Slot (Bellfruit) (Scorpion 5) (set 5)", + "sc5gunpe", "Gunpowder Slot (Bellfruit) (Scorpion 5) (set 6)", + "sc5gunpf", "Gunpowder Slot (Bellfruit) (Scorpion 5) (set 7)", + "sc5gunpg", "Gunpowder Slot (Bellfruit) (Scorpion 5) (set 8)", + "sc5gunph", "Gunpowder Slot (Bellfruit) (Scorpion 5) (set 9)", + "sc5gunpi", "Gunpowder Slot (Bellfruit) (Scorpion 5) (set 10)", + "sc5gunpj", "Gunpowder Slot (Bellfruit) (Scorpion 5) (set 11)", + "sc5gunpk", "Gunpowder Slot (Bellfruit) (Scorpion 5) (set 12)", + "sc5gunpl", "Gunpowder Slot (Bellfruit) (Scorpion 5) (set 13)", + "sc5hapnt", "Happy Notes (Bellfruit) (Scorpion 5) (set 1)", + "sc5hapnta", "Happy Notes (Bellfruit) (Scorpion 5) (set 2)", + "sc5hapntb", "Happy Notes (Bellfruit) (Scorpion 5) (set 3)", + "sc5hapntc", "Happy Notes (Bellfruit) (Scorpion 5) (set 4)", + "sc5hapntd", "Happy Notes (Bellfruit) (Scorpion 5) (set 5)", + "sc5hapnte", "Happy Notes (Bellfruit) (Scorpion 5) (set 6)", + "sc5hapntf", "Happy Notes (Bellfruit) (Scorpion 5) (set 7)", + "sc5hapntg", "Happy Notes (Bellfruit) (Scorpion 5) (set 8)", + "sc5hellb", "Hells Bells (Bellfruit) (Scorpion 5) (set 1)", + "sc5hellba", "Hells Bells (Bellfruit) (Scorpion 5) (set 2)", + "sc5hill", "Hill Billionaire (Bellfruit) (Scorpion 5) (set 1)", + "sc5hilla", "Hill Billionaire (Bellfruit) (Scorpion 5) (set 2)", + "sc5hillb", "Hill Billionaire (Bellfruit) (Scorpion 5) (set 3)", + "sc5hirol", "High Roller (Mazooma) (Scorpion 5) (set 1)", + "sc5hirola", "High Roller (Mazooma) (Scorpion 5) (set 2)", + "sc5hirolb", "High Roller (Mazooma) (Scorpion 5) (set 3)", + "sc5hirolc", "High Roller (Mazooma) (Scorpion 5) (set 4)", + "sc5hirold", "High Roller (Mazooma) (Scorpion 5) (set 5)", + "sc5hirole", "High Roller (Mazooma) (Scorpion 5) (set 6)", + "sc5hiss", "Hissing Quid (Qps) (Scorpion 5) (set 1)", + "sc5hissa", "Hissing Quid (Qps) (Scorpion 5) (set 2)", + "sc5hissb", "Hissing Quid (Qps) (Scorpion 5) (set 3)", + "sc5hissc", "Hissing Quid (Qps) (Scorpion 5) (set 4)", + "sc5hog", "Road Hog (PR3208) (Bellfruit) (Scorpion 5) (set 3)", + "sc5hoga", "Road Hog (PR3208) (Bellfruit) (Scorpion 5) (set 4)", + "sc5hotdg", "Hot Dog (Bellfruit) (Scorpion 5) (set 1)", + "sc5hotdga", "Hot Dog (Bellfruit) (Scorpion 5) (set 2)", + "sc5hotdgb", "Hot Dog (Bellfruit) (Scorpion 5) (set 3)", + "sc5hotdgc", "Hot Dog (Bellfruit) (Scorpion 5) (set 4)", + "sc5hotdgd", "Hot Dog (Bellfruit) (Scorpion 5) (set 5)", + "sc5hotdge", "Hot Dog (Bellfruit) (Scorpion 5) (set 6)", + "sc5hotrd", "Hot Rod (Bellfruit) (Scorpion 5) (set 1)", + "sc5hotrda", "Hot Rod (Bellfruit) (Scorpion 5) (set 2)", + "sc5hotsh", "Hot Shot (Bellfruit) (Scorpion 5) (set 1)", + "sc5hotsha", "Hot Shot (Bellfruit) (Scorpion 5) (set 2)", + "sc5hotshb", "Hot Shot (Bellfruit) (Scorpion 5) (set 3)", + "sc5hotshc", "Hot Shot (Bellfruit) (Scorpion 5) (set 4)", + "sc5hotshd", "Hot Shot (Bellfruit) (Scorpion 5) (set 5)", + "sc5hotshe", "Hot Shot (Bellfruit) (Scorpion 5) (set 6)", + "sc5hotshf", "Hot Shot (Bellfruit) (Scorpion 5) (set 7)", + "sc5hotshg", "Hot Shot (Bellfruit) (Scorpion 5) (set 8)", + "sc5hotshh", "Hot Shot (Bellfruit) (Scorpion 5) (set 9)", + "sc5hotshi", "Hot Shot (Bellfruit) (Scorpion 5) (set 10)", + "sc5hotshj", "Hot Shot (Bellfruit) (Scorpion 5) (set 11)", + "sc5hotshk", "Hot Shot (Bellfruit) (Scorpion 5) (set 12)", + "sc5hotshl", "Hot Shot (Bellfruit) (Scorpion 5) (set 13)", + "sc5hotshm", "Hot Shot (Bellfruit) (Scorpion 5) (set 14)", + "sc5hotshn", "Hot Shot (Bellfruit) (Scorpion 5) (set 15)", + "sc5hotsho", "Hot Shot (Bellfruit) (Scorpion 5) (set 16)", + "sc5hotshp", "Hot Shot (Bellfruit) (Scorpion 5) (set 17)", + "sc5hotshq", "Hot Shot (Bellfruit) (Scorpion 5) (set 18)", + "sc5hotwd", "Hot Wad (Bellfruit) (Scorpion 5) (set 1)", + "sc5hotwda", "Hot Wad (Bellfruit) (Scorpion 5) (set 2)", + "sc5hotwdb", "Hot Wad (Bellfruit) (Scorpion 5) (set 3)", + "sc5hotwdc", "Hot Wad (Bellfruit) (Scorpion 5) (set 4)", + "sc5hotwdd", "Hot Wad (Bellfruit) (Scorpion 5) (set 5)", + "sc5hotwde", "Hot Wad (Bellfruit) (Scorpion 5) (set 6)", + "sc5hotwdf", "Hot Wad (Bellfruit) (Scorpion 5) (set 7)", + "sc5hotwdg", "Hot Wad (Bellfruit) (Scorpion 5) (set 8)", + "sc5hulk", "Hulk, The (Bellfruit) (Scorpion 5) (set 1)", + "sc5hulka", "Hulk, The (Bellfruit) (Scorpion 5) (set 2)", + "sc5hulkb", "Hulk, The (Bellfruit) (Scorpion 5) (set 3)", + "sc5hulkc", "Hulk, The (Bellfruit) (Scorpion 5) (set 4)", + "sc5hulkd", "Hulk, The (Bellfruit) (Scorpion 5) (set 5)", + "sc5hulke", "Hulk, The (Bellfruit) (Scorpion 5) (set 6)", + "sc5hulkf", "Hulk, The (Bellfruit) (Scorpion 5) (set 7)", + "sc5hulkg", "Hulk, The (Bellfruit) (Scorpion 5) (set 8)", + "sc5hulkh", "Hulk, The (Bellfruit) (Scorpion 5) (set 9)", + "sc5hulki", "Hulk, The (Bellfruit) (Scorpion 5) (set 10)", + "sc5iab", "It's A Bullseye (Mazooma) (Scorpion 5) (set 1)", + "sc5iaba", "It's A Bullseye (Mazooma) (Scorpion 5) (set 2)", + "sc5ijbdo", "Italian Job - Blow The Doors Off (Qps) (Scorpion 5) (set 1)", + "sc5ijbdoa", "Italian Job - Blow The Doors Off (Qps) (Scorpion 5) (set 2)", + "sc5ijbdob", "Italian Job - Blow The Doors Off (Qps) (Scorpion 5) (set 3)", + "sc5ijbdoc", "Italian Job - Blow The Doors Off (Qps) (Scorpion 5) (set 4)", + "sc5ijob", "Italian Job (Mazooma) (Scorpion 5) (set 1)", + "sc5ijoba", "Italian Job (Mazooma) (Scorpion 5) (set 2)", + "sc5ijobb", "Italian Job (Mazooma) (Scorpion 5) (set 3)", + "sc5ijobc", "Italian Job (Mazooma) (Scorpion 5) (set 4)", + "sc5ijobd", "Italian Job (Mazooma) (Scorpion 5) (set 5)", + "sc5ijobe", "Italian Job (Mazooma) (Scorpion 5) (set 6)", + "sc5ijobf", "Italian Job (Mazooma) (Scorpion 5) (set 7)", + "sc5ijobg", "Italian Job (Mazooma) (Scorpion 5) (set 8)", + "sc5ijobh", "Italian Job (Mazooma) (Scorpion 5) (set 9)", + "sc5ijobi", "Italian Job (Mazooma) (Scorpion 5) (set 10)", + "sc5inspn", "Inner Spin (Mazooma) (Scorpion 5) (set 1)", + "sc5inspna", "Inner Spin (Mazooma) (Scorpion 5) (set 2)", + "sc5jjok", "Jackpot Jokers (Bellfruit) (Scorpion 5) (set 1)", + "sc5jjoka", "Jackpot Jokers (Bellfruit) (Scorpion 5) (set 2)", + "sc5kingx", "King X (PR2077) (Mazooma) (Scorpion 5) (set 1)", + "sc5kingxa", "King X (PR2077) (Mazooma) (Scorpion 5) (set 2)", + "sc5kingxb", "King X Triple (PR2279) (Mazooma) (Scorpion 5) (set 1)", + "sc5kingxc", "King X 3P (PR2336) (Mazooma) (Scorpion 5) (set 1)", + "sc5kingxd", "King X Triple (PR2279) (Mazooma) (Scorpion 5) (set 2)", + "sc5kingxe", "King X 3P (PR2336) (Mazooma) (Scorpion 5) (set 2)", + "sc5ldvl", "Little Devil (Mazooma) (Scorpion 5) (set 1)", + "sc5ldvla", "Little Devil (Mazooma) (Scorpion 5) (set 2)", + "sc5ldvlb", "Little Devil (Mazooma) (Scorpion 5) (set 3)", + "sc5ldvlc", "Little Devil (Mazooma) (Scorpion 5) (set 4)", + "sc5ldvld", "Little Devil (Mazooma) (Scorpion 5) (set 5)", + "sc5ldvle", "Little Devil (Mazooma) (Scorpion 5) (set 6)", + "sc5lotrr", "Lord Of The Rings - Return Of The King (Bellfruit) (Scorpion 5) (set 1)", + "sc5lotrra", "Lord Of The Rings - Return Of The King (Bellfruit) (Scorpion 5) (set 2)", + "sc5lotrrb", "Lord Of The Rings - Return Of The King (Bellfruit) (Scorpion 5) (set 3)", + "sc5lotrrc", "Lord Of The Rings - Return Of The King (Bellfruit) (Scorpion 5) (set 4)", + "sc5lotrrd", "Lord Of The Rings - Return Of The King (Bellfruit) (Scorpion 5) (set 5)", + "sc5lotrre", "Lord Of The Rings - Return Of The King (Bellfruit) (Scorpion 5) (set 6)", + "sc5lotrrf", "Lord Of The Rings - Return Of The King (Bellfruit) (Scorpion 5) (set 7)", + "sc5lotrrg", "Lord Of The Rings - Return Of The King (Bellfruit) (Scorpion 5) (set 8)", + "sc5lotrrh", "Lord Of The Rings - Return Of The King (Bellfruit) (Scorpion 5) (set 9)", + "sc5lotrri", "Lord Of The Rings - Return Of The King (Bellfruit) (Scorpion 5) (set 10)", + "sc5manic", "Manic Miner (Bellfruit) (Scorpion 5) (set 1)", + "sc5manica", "Manic Miner (Bellfruit) (Scorpion 5) (set 2)", + "sc5manicb", "Manic Miner (Bellfruit) (Scorpion 5) (set 3)", + "sc5manicc", "Manic Miner (Bellfruit) (Scorpion 5) (set 4)", + "sc5manicd", "Manic Miner (Bellfruit) (Scorpion 5) (set 5)", + "sc5manice", "Manic Miner (Bellfruit) (Scorpion 5) (set 6)", + "sc5manicf", "Manic Miner (Bellfruit) (Scorpion 5) (set 7)", + "sc5manicg", "Manic Miner (Bellfruit) (Scorpion 5) (set 8)", + "sc5manich", "Manic Miner (Bellfruit) (Scorpion 5) (set 9)", + "sc5manici", "Manic Miner (Bellfruit) (Scorpion 5) (set 10)", + "sc5manicj", "Manic Miner (Bellfruit) (Scorpion 5) (set 11)", + "sc5manick", "Manic Miner (Bellfruit) (Scorpion 5) (set 12)", + "sc5manicl", "Manic Miner (Bellfruit) (Scorpion 5) (set 13)", + "sc5manicm", "Manic Miner (Bellfruit) (Scorpion 5) (set 14)", + "sc5manicn", "Manic Miner (Bellfruit) (Scorpion 5) (set 15)", + "sc5manico", "Manic Miner (Bellfruit) (Scorpion 5) (set 16)", + "sc5manicp", "Manic Miner (Bellfruit) (Scorpion 5) (set 17)", + "sc5manicq", "Manic Miner (Bellfruit) (Scorpion 5) (set 18)", + "sc5manicr", "Manic Miner (Bellfruit) (Scorpion 5) (set 19)", + "sc5manics", "Manic Miner (Bellfruit) (Scorpion 5) (set 20)", + "sc5manict", "Manic Miner (Bellfruit) (Scorpion 5) (set 21)", + "sc5manicu", "Manic Miner (Bellfruit) (Scorpion 5) (set 22)", + "sc5manicv", "Manic Miner (Bellfruit) (Scorpion 5) (set 23)", + "sc5manicw", "Manic Miner (Bellfruit) (Scorpion 5) (set 24)", + "sc5manicx", "Manic Miner (Bellfruit) (Scorpion 5) (set 25)", + "sc5manicy", "Manic Miner (Bellfruit) (Scorpion 5) (set 26)", + "sc5mcas", "Monopoly Casino (Mazooma) (Scorpion 5) (set 1)", + "sc5mcasa", "Monopoly Casino (Mazooma) (Scorpion 5) (set 3)", + "sc5mcasb", "Monopoly Casino (Mazooma) (Scorpion 5) (set 2)", + "sc5mcasc", "Monopoly Casino (Mazooma) (Scorpion 5) (set 4)", + "sc5mdm", "Monopoly Double Money (Bellfruit) (Scorpion 5) (set 1)", + "sc5mdma", "Monopoly Double Money (Bellfruit) (Scorpion 5) (set 2)", + "sc5mdmb", "Monopoly Double Money (Bellfruit) (Scorpion 5) (set 3)", + "sc5mdmc", "Monopoly Double Money (Bellfruit) (Scorpion 5) (set 4)", + "sc5mhn", "Monopoly Here & Now (Mazooma) (Scorpion 5) (set 1)", + "sc5mhna", "Monopoly Here & Now (Mazooma) (Scorpion 5) (set 2)", + "sc5mhnb", "Monopoly Here & Now (Mazooma) (Scorpion 5) (set 3)", + "sc5mhnc", "Monopoly Here & Now (Mazooma) (Scorpion 5) (set 4)", + "sc5mhnd", "Monopoly Here & Now (Mazooma) (Scorpion 5) (set 5)", + "sc5mhne", "Monopoly Here & Now (Mazooma) (Scorpion 5) (set 6)", + "sc5mhp", "Monopoly Hot Property (Bellfruit) (Scorpion 5) (set 1)", + "sc5mhpa", "Monopoly Hot Property (Bellfruit) (Scorpion 5) (set 2)", + "sc5mhpb", "Monopoly Hot Property (Bellfruit) (Scorpion 5) (set 3)", + "sc5mhpc", "Monopoly Hot Property (Bellfruit) (Scorpion 5) (set 4)", + "sc5mhpd", "Monopoly Hot Property (Bellfruit) (Scorpion 5) (set 5)", + "sc5mhpe", "Monopoly Hot Property (Bellfruit) (Scorpion 5) (set 6)", + "sc5mhpf", "Monopoly Hot Property (Bellfruit) (Scorpion 5) (set 7)", + "sc5mhpg", "Monopoly Hot Property (Bellfruit) (Scorpion 5) (set 8)", + "sc5mhph", "Monopoly Hot Property (Bellfruit) (Scorpion 5) (set 9)", + "sc5mhpi", "Monopoly Hot Property (Bellfruit) (Scorpion 5) (set 10)", + "sc5mhpj", "Monopoly Hot Property (Bellfruit) (Scorpion 5) (set 11)", + "sc5mhpk", "Monopoly Hot Property (Bellfruit) (Scorpion 5) (set 12)", + "sc5mhpl", "Monopoly Hot Property (Bellfruit) (Scorpion 5) (set 13)", + "sc5mmad", "Money Madness (Mazooma) (Scorpion 5) (set 1)", + "sc5mmada", "Money Madness (Mazooma) (Scorpion 5) (set 2)", + "sc5mmadb", "Money Madness (Mazooma) (Scorpion 5) (set 3)", + "sc5mmadc", "Money Madness (Mazooma) (Scorpion 5) (set 4)", + "sc5mmb", "Monopoly Money Bags (PR3413) (Bellfruit) (Scorpion 5) (set 1)", + "sc5mmba", "Monopoly Money Bags (PR3413) (Bellfruit) (Scorpion 5) (set 2)", + "sc5mmbb", "Monopoly Money Bags (PR3413) (Bellfruit) (Scorpion 5) (set 3)", + "sc5mmbc", "Monopoly Money Bags (PR3413) (Bellfruit) (Scorpion 5) (set 4)", + "sc5mmbd", "Monopoly Money Bags (PR1911) (Bellfruit) (Scorpion 5) (set 1)", + "sc5mmbe", "Monopoly Money Bags (PR1911) (Bellfruit) (Scorpion 5) (set 2)", + "sc5mmm", "Mental Money Monsters (Mazooma) (Scorpion 5) (set 1)", + "sc5mmma", "Mental Money Monsters (Mazooma) (Scorpion 5) (set 2)", + "sc5mmmb", "Mental Money Monsters (Mazooma) (Scorpion 5) (set 3)", + "sc5mmmc", "Mental Money Monsters (Mazooma) (Scorpion 5) (set 4)", + "sc5mobob", "Monopoly Boom Or Bust Classic (Bellfruit) (Scorpion 5) (set 1)", + "sc5moboba", "Monopoly Boom Or Bust Classic (Bellfruit) (Scorpion 5) (set 2)", + "sc5mobobb", "Monopoly Boom Or Bust (Bellfruit) (Scorpion 5) (set 1)", + "sc5mobobc", "Monopoly Boom Or Bust (Bellfruit) (Scorpion 5) (set 2)", + "sc5mobobd", "Monopoly Boom Or Bust Classic (Bellfruit) (Scorpion 5) (set 3)", + "sc5mobobe", "Monopoly Boom Or Bust Classic (Bellfruit) (Scorpion 5) (set 4)", + "sc5mobobf", "Monopoly Boom Or Bust (Bellfruit) (Scorpion 5) (set 3)", + "sc5mobobg", "Monopoly Boom Or Bust (Bellfruit) (Scorpion 5) (set 4)", + "sc5mobobh", "Monopoly Boom Or Bust (Bellfruit) (Scorpion 5) (set 5)", + "sc5mobobi", "Monopoly Boom Or Bust (Bellfruit) (Scorpion 5) (set 6)", + "sc5mogta", "Monopoly Go To Auction (Bellfruit) (Scorpion 5) (set 1)", + "sc5mogtaa", "Monopoly Go To Auction (Bellfruit) (Scorpion 5) (set 2)", + "sc5mogtab", "Monopoly Go To Auction (Bellfruit) (Scorpion 5) (set 3)", + "sc5mogtac", "Monopoly Go To Auction (Bellfruit) (Scorpion 5) (set 4)", + "sc5mogtad", "Monopoly Go To Auction (Bellfruit) (Scorpion 5) (set 5)", + "sc5mogtae", "Monopoly Go To Auction (Bellfruit) (Scorpion 5) (set 6)", + "sc5mombc", "Monopoly Money Bags Club (PR1945) (BFM) (Scorpion 5) (set 1)", + "sc5mombca", "Monopoly Money Bags Club (PR1945) (BFM) (Scorpion 5) (set 2)", + "sc5mombcb", "Monopoly Money Bags Club (PR1945) (BFM) (Scorpion 5) (set 3)", + "sc5mombcc", "Monopoly Money Bags Club (PR1945) (BFM) (Scorpion 5) (set 4)", + "sc5momil", "Monopoly Millionaire (Bellfruit) (Scorpion 5) (set 1)", + "sc5momila", "Monopoly Millionaire (Bellfruit) (Scorpion 5) (set 2)", + "sc5momilb", "Monopoly Millionaire (Bellfruit) (Scorpion 5) (set 3)", + "sc5momilc", "Monopoly Millionaire (Bellfruit) (Scorpion 5) (set 4)", + "sc5momild", "Monopoly Millionaire (Bellfruit) (Scorpion 5) (set 5)", + "sc5momile", "Monopoly Millionaire (Bellfruit) (Scorpion 5) (set 6)", + "sc5moms", "Monopoly Money Spinner (PR2496) (Qps) (Scorpion 5) (set 1)", + "sc5momsa", "Monopoly Money Spinner (PR2496) (Qps) (Scorpion 5) (set 2)", + "sc5momsb", "Money Spinner (PR2395) (Qps) (Scorpion 5) (set 1)", + "sc5momsc", "Monopoly Money Spinner (PR2496) (Qps) (Scorpion 5) (set 3)", + "sc5momsd", "Monopoly Money Spinner (PR2496) (Qps) (Scorpion 5) (set 4)", + "sc5momse", "Money Spinner (PR2395) (Qps) (Scorpion 5) (set 2)", + "sc5monky", "Monkey Business / Toss The Monkey (Mazooma) (Scorpion 5) (set 1)", + "sc5monkya", "Monkey Business / Toss The Monkey (Mazooma) (Scorpion 5) (set 2)", + "sc5monop", "Monopoly (Mazooma) (Scorpion 5)", + "sc5monsp", "Money Spinner (Bellfruit) (Scorpion 5) (set 1)", + "sc5monspa", "Money Spinner (Bellfruit) (Scorpion 5) (set 2)", + "sc5monwa", "Monopoly Win Again (Qps) (Scorpion 5) (set 1)", + "sc5monwaa", "Monopoly Win Again (Qps) (Scorpion 5) (set 2)", + "sc5mopl", "Monopoly Property Ladder (Bellfruit) (Scorpion 5) (set 1)", + "sc5mopla", "Monopoly Property Ladder (Bellfruit) (Scorpion 5) (set 2)", + "sc5moplb", "Monopoly Property Ladder (Bellfruit) (Scorpion 5) (set 3)", + "sc5moplc", "Monopoly Property Ladder (Bellfruit) (Scorpion 5) (set 4)", + "sc5mopld", "Monopoly Property Ladder (Bellfruit) (Scorpion 5) (set 5)", + "sc5mople", "Monopoly Property Ladder (Bellfruit) (Scorpion 5) (set 6)", + "sc5moplf", "Monopoly Property Ladder (Bellfruit) (Scorpion 5) (set 7)", + "sc5moplg", "Monopoly Property Ladder (Bellfruit) (Scorpion 5) (set 8)", + "sc5mor2r", "Monopoly Road To Riches (Qps) (Scorpion 5) (set 1)", + "sc5mor2ra", "Monopoly Road To Riches (Qps) (Scorpion 5) (set 2)", + "sc5mowow", "Monopoly Wheel Of Wealth (Mazooma) (Scorpion 5) (set 1)", + "sc5mowowb", "Monopoly Wheel Of Wealth (Mazooma) (Scorpion 5) (set 2)", + "sc5mr2r", "Monopoly Road To Riches (PR2329) (Mazooma) (Scorpion 5) (set 1)", + "sc5mr2ra", "Monopoly Road To Riches (PR2329) (Mazooma) (Scorpion 5) (set 2)", + "sc5mr2rb", "Monopoly Road To Riches Club (PR2457) (Mazooma) (Scorpion 5)", + "sc5mrh", "Monopoly Red Hot (Mazooma) (Scorpion 5) (set 1)", + "sc5mrha", "Monopoly Red Hot (Mazooma) (Scorpion 5) (set 2)", + "sc5mrrcl", "Monopoly Road To Riches Club (Mazooma) (Scorpion 5) (set 1)", + "sc5mrrcla", "Monopoly Road To Riches Club (Mazooma) (Scorpion 5) (set 2)", + "sc5mrrclb", "Monopoly Road To Riches Club (Mazooma) (Scorpion 5) (set 3)", + "sc5mrrclc", "Monopoly Road To Riches Club (Mazooma) (Scorpion 5) (set 4)", + "sc5mww", "Monopoly Wonders Of The World (Mazooma) (Scorpion 5) (set 1)", + "sc5mwwa", "Monopoly Wonders Of The World (Mazooma) (Scorpion 5) (set 2)", + "sc5mwwb", "Monopoly Wonders Of The World (Mazooma) (Scorpion 5) (set 3)", + "sc5mwwc", "Monopoly Wonders Of The World (Mazooma) (Scorpion 5) (set 4)", + "sc5newcm", "Colour Of Money New, The (Bellfruit) (Scorpion 5) (set 1)", + "sc5newcma", "Colour Of Money New, The (Bellfruit) (Scorpion 5) (set 2)", + "sc5newcmb", "Colour Of Money New, The (Bellfruit) (Scorpion 5) (set 3)", + "sc5newcmc", "Colour Of Money New, The (Bellfruit) (Scorpion 5) (set 4)", + "sc5newcmd", "Colour Of Money New, The (Bellfruit) (Scorpion 5) (set 5)", + "sc5newcme", "Colour Of Money New, The (Bellfruit) (Scorpion 5) (set 6)", + "sc5nmare", "A Nightmare On Elm Street (Bellfruit) (Scorpion 5) (set 1)", + "sc5nmarea", "A Nightmare On Elm Street (Bellfruit) (Scorpion 5) (set 2)", + "sc5nmareb", "A Nightmare On Elm Street (Bellfruit) (Scorpion 5) (set 3)", + "sc5nmarec", "A Nightmare On Elm Street (Bellfruit) (Scorpion 5) (set 4)", + "sc5nunsb", "Nuns 'n' Roses (Bellfruit) (Scorpion 5)", + "sc5nunsm", "Nuns 'n' Roses (Mazooma) (Scorpion 5) (set 1)", + "sc5nunsma", "Nuns 'n' Roses (Mazooma) (Scorpion 5) (set 2)", + "sc5nunsmb", "Nuns 'n' Roses (Mazooma) (Scorpion 5) (set 3)", + "sc5nunsmc", "Nuns 'n' Roses (Mazooma) (Scorpion 5) (set 4)", + "sc5nunsmd", "Nuns 'n' Roses (Mazooma) (Scorpion 5) (set 5)", + "sc5nunsme", "Nuns 'n' Roses (Mazooma) (Scorpion 5) (set 6)", + "sc5parot", "Parrots Of The Caribbean (Bellfruit) (Scorpion 5) (set 1)", + "sc5parota", "Parrots Of The Caribbean (Bellfruit) (Scorpion 5) (set 2)", + "sc5parotb", "Parrots Of The Caribbean (Bellfruit) (Scorpion 5) (set 3)", + "sc5parotc", "Parrots Of The Caribbean (Bellfruit) (Scorpion 5) (set 4)", + "sc5parotd", "Parrots Of The Caribbean (Bellfruit) (Scorpion 5) (set 5)", + "sc5parote", "Parrots Of The Caribbean (Bellfruit) (Scorpion 5) (set 6)", + "sc5parotf", "Parrots Of The Caribbean (Bellfruit) (Scorpion 5) (set 7)", + "sc5parotg", "Parrots Of The Caribbean (Bellfruit) (Scorpion 5) (set 8)", + "sc5pilep", "Pile On The Pounds (Qps) (Scorpion 5) (set 1)", + "sc5pilepa", "Pile On The Pounds (Qps) (Scorpion 5) (set 2)", + "sc5pilepb", "Pile On The Pounds (Qps) (Scorpion 5) (set 3)", + "sc5pilepc", "Pile On The Pounds (Qps) (Scorpion 5) (set 4)", + "sc5pircl", "The Prize Is Right Club (Bellfruit) (Scorpion 5) (set 1)", + "sc5pircla", "The Prize Is Right Club (Bellfruit) (Scorpion 5) (set 2)", + "sc5pirclb", "The Prize Is Right Club (Bellfruit) (Scorpion 5) (set 3)", + "sc5pirclc", "The Prize Is Right Club (Bellfruit) (Scorpion 5) (set 4)", + "sc5pircld", "The Prize Is Right Club (Bellfruit) (Scorpion 5) (set 5)", + "sc5pircle", "The Prize Is Right Club (Bellfruit) (Scorpion 5) (set 6)", + "sc5pirclf", "The Prize Is Right Club (Bellfruit) (Scorpion 5) (set 7)", + "sc5pirclg", "The Prize Is Right Club (Bellfruit) (Scorpion 5) (set 8)", + "sc5plays", "28 Plays Later (Qps) (Scorpion 5) (set 1)", + "sc5playsa", "28 Plays Later (Qps) (Scorpion 5) (set 2)", + "sc5pog", "Pots Of Gold (Bellfruit) (Scorpion 5) (set 1)", + "sc5poga", "Pots Of Gold (Bellfruit) (Scorpion 5) (set 2)", + "sc5pogb", "Pots Of Gold (Bellfruit) (Scorpion 5) (set 3)", + "sc5pogc", "Pots Of Gold (Bellfruit) (Scorpion 5) (set 4)", + "sc5pogd", "Pots Of Gold (Bellfruit) (Scorpion 5) (set 5)", + "sc5poge", "Pots Of Gold (Bellfruit) (Scorpion 5) (set 6)", + "sc5pogf", "Pots Of Gold (Bellfruit) (Scorpion 5) (set 7)", + "sc5pogg", "Pots Of Gold (Bellfruit) (Scorpion 5) (set 8)", + "sc5pompa", "Up Pompay (Bellfruit) (Scorpion 5) (set 1)", + "sc5pompaa", "Up Pompay (Bellfruit) (Scorpion 5) (set 2)", + "sc5pompab", "Up Pompay (Bellfruit) (Scorpion 5) (set 3)", + "sc5pony", "Pony Express (Bellfruit) (Scorpion 5) (set 1)", + "sc5ponya", "Pony Express (Bellfruit) (Scorpion 5) (set 2)", + "sc5ponyb", "Pony Express (Bellfruit) (Scorpion 5) (set 3)", + "sc5ponyc", "Pony Express (Bellfruit) (Scorpion 5) (set 4)", + "sc5ponyd", "Pony Express (Bellfruit) (Scorpion 5) (set 5)", + "sc5ponye", "Pony Express (Bellfruit) (Scorpion 5) (set 6)", + "sc5popey", "Popeye (Mazooma) (Scorpion 5) (set 1)", + "sc5popeya", "Popeye (Mazooma) (Scorpion 5) (set 2)", + "sc5popeyb", "Popeye (Mazooma) (Scorpion 5) (set 3)", + "sc5popeyc", "Popeye (Mazooma) (Scorpion 5) (set 4)", + "sc5popeyd", "Popeye (Mazooma) (Scorpion 5) (set 5)", + "sc5popeye", "Popeye (Mazooma) (Scorpion 5) (set 6)", + "sc5popeyf", "Popeye (Mazooma) (Scorpion 5) (set 7)", + "sc5popeyg", "Popeye (Mazooma) (Scorpion 5) (set 8)", + "sc5potog", "Pot Of Gold (QPS) (Scorpion 5) (set 1)", + "sc5potoga", "Pot Of Gold (QPS) (Scorpion 5) (set 2)", + "sc5potogb", "Pot Of Gold (QPS) (Scorpion 5) (set 3)", + "sc5potogc", "Pot Of Gold (QPS) (Scorpion 5) (set 4)", + "sc5potogd", "Pot Of Gold (QPS) (Scorpion 5) (set 5)", + "sc5potoge", "Pot Of Gold (QPS) (Scorpion 5) (set 6)", + "sc5potogf", "Pot Of Gold (QPS) (Scorpion 5) (set 7)", + "sc5potogg", "Pot Of Gold (QPS) (Scorpion 5) (set 8)", + "sc5potogh", "Pot Of Gold (QPS) (Scorpion 5) (set 9)", + "sc5potogi", "Pot Of Gold (QPS) (Scorpion 5) (set 10)", + "sc5potp", "Pick Of The Pack (Bellfruit) (Scorpion 5) (set 1)", + "sc5potpa", "Pick Of The Pack (Bellfruit) (Scorpion 5) (set 2)", + "sc5potsm", "Pots Of Luck (Mazooma) (Scorpion 5) (set 1)", + "sc5potsma", "Pots Of Luck (Mazooma) (Scorpion 5) (set 2)", + "sc5pp", "Pink Panther (Mazooma) (Scorpion 5) (set 1)", + "sc5ppa", "Pink Panther (Mazooma) (Scorpion 5) (set 2)", + "sc5ppb", "Pink Panther (Mazooma) (Scorpion 5) (set 3)", + "sc5ppc", "Pink Panther (Mazooma) (Scorpion 5) (set 4)", + "sc5ppcr", "Pink Panther Clouseau's Revenge (Mazooma / QPS) (Scorpion 5) (set 1)", + "sc5ppcra", "Pink Panther Clouseau's Revenge (Mazooma) (Scorpion 5)", + "sc5ppcrb", "Pink Panther Clouseau's Revenge (Mazooma / QPS) (Scorpion 5) (set 2)", + "sc5ppcrc", "Pink Panther Clouseau's Revenge (Mazooma / QPS) (Scorpion 5) (set 3)", + "sc5ppcrd", "Pink Panther Clouseau's Revenge (Mazooma / QPS) (Scorpion 5) (set 4)", + "sc5ppctc", "Pink Panther Crack The Code (Bellfruit) (Scorpion 5) (set 1)", + "sc5ppctca", "Pink Panther Crack The Code (Bellfruit) (Scorpion 5) (set 2)", + "sc5ppctcb", "Pink Panther Crack The Code (Bellfruit) (Scorpion 5) (set 3)", + "sc5ppctcc", "Pink Panther Crack The Code (Bellfruit) (Scorpion 5) (set 4)", + "sc5ppctcd", "Pink Panther Crack The Code (Bellfruit) (Scorpion 5) (set 5)", + "sc5ppctce", "Pink Panther Crack The Code (Bellfruit) (Scorpion 5) (set 6)", + "sc5ppctcf", "Pink Panther Crack The Code (Bellfruit) (Scorpion 5) (set 7)", + "sc5ppctcg", "Pink Panther Crack The Code (Bellfruit) (Scorpion 5) (set 8)", + "sc5ppctch", "Pink Panther Crack The Code (Bellfruit) (Scorpion 5) (set 9)", + "sc5ppctci", "Pink Panther Crack The Code (Bellfruit) (Scorpion 5) (set 10)", + "sc5ppd", "Pink Panther (Mazooma) (Scorpion 5) (set 5)", + "sc5ppdym", "Pink Panther Double Your Money (Mazooma / QPS) (Scorpion 5) (set 1)", + "sc5ppdyma", "Pink Panther Double Your Money (Mazooma / QPS) (Scorpion 5) (set 2)", + "sc5ppe", "Pink Panther (Mazooma) (Scorpion 5) (set 6)", + "sc5ppf", "Pink Panther (Mazooma) (Scorpion 5) (set 7)", + "sc5ppg", "Pink Panther (Mazooma) (Scorpion 5) (set 8)", + "sc5ppsag", "Pink Panther Strikes Again (Mazooma) (Scorpion 5) (set 1)", + "sc5ppsaga", "Pink Panther Strikes Again (Mazooma) (Scorpion 5) (set 2)", + "sc5ppsagb", "Pink Panther Strikes Again (Mazooma) (Scorpion 5) (set 3)", + "sc5ppsagc", "Pink Panther Strikes Again (Mazooma) (Scorpion 5) (set 4)", + "sc5ppsagd", "Pink Panther Strikes Again (Mazooma) (Scorpion 5) (set 5)", + "sc5ppsage", "Pink Panther Strikes Again (Mazooma) (Scorpion 5) (set 6)", + "sc5pwrbl", "Powerball (Bellfruit) (Scorpion 5) (set 1)", + "sc5pwrbla", "Powerball (Bellfruit) (Scorpion 5) (set 2)", + "sc5pwrpl", "Power Play (Mazooma) (Scorpion 5) (set 1)", + "sc5pwrpla", "Power Play (Mazooma) (Scorpion 5) (set 2)", + "sc5qual", "Quality Streak (Bellfruit) (Scorpion 5) (set 1)", + "sc5quala", "Quality Streak (Bellfruit) (Scorpion 5) (set 2)", + "sc5qualb", "Quality Streak (Bellfruit) (Scorpion 5) (set 3)", + "sc5qualc", "Quality Streak (Bellfruit) (Scorpion 5) (set 4)", + "sc5quald", "Quality Streak (Bellfruit) (Scorpion 5) (set 5)", + "sc5quale", "Quality Streak (Bellfruit) (Scorpion 5) (set 6)", + "sc5qualf", "Quality Streak (Bellfruit) (Scorpion 5) (set 7)", + "sc5qualg", "Quality Streak (Bellfruit) (Scorpion 5) (set 8)", + "sc5qualh", "Quality Streak (Bellfruit) (Scorpion 5) (set 9)", + "sc5quali", "Quality Streak (Bellfruit) (Scorpion 5) (set 10)", + "sc5qualj", "Quality Streak (Bellfruit) (Scorpion 5) (set 11)", + "sc5qualk", "Quality Streak (Bellfruit) (Scorpion 5) (set 12)", + "sc5quall", "Quality Streak (Bellfruit) (Scorpion 5) (set 13)", + "sc5qualm", "Quality Streak (Bellfruit) (Scorpion 5) (set 14)", + "sc5quidv", "Quid Vicious (Mazooma) (Scorpion 5) (set 1)", + "sc5quidva", "Quid Vicious (Mazooma) (Scorpion 5) (set 2)", + "sc5quidvb", "Quid Vicious (Mazooma) (Scorpion 5) (set 3)", + "sc5quidvc", "Quid Vicious (Mazooma) (Scorpion 5) (set 4)", + "sc5quidvd", "Quid Vicious (Mazooma) (Scorpion 5) (set 5)", + "sc5quidve", "Quid Vicious (Mazooma) (Scorpion 5) (set 6)", + "sc5quidvf", "Quid Vicious (Mazooma) (Scorpion 5) (set 7)", + "sc5quidvg", "Quid Vicious (Mazooma) (Scorpion 5) (set 8)", + "sc5rainb", "Over The Rainbow (Bellfruit) (Scorpion 5) (set 1)", + "sc5rainba", "Over The Rainbow (Bellfruit) (Scorpion 5) (set 2)", + "sc5rainbb", "Over The Rainbow (Bellfruit) (Scorpion 5) (set 3)", + "sc5rainbc", "Over The Rainbow (Bellfruit) (Scorpion 5) (set 4)", + "sc5rainbd", "Over The Rainbow (Bellfruit) (Scorpion 5) (set 5)", + "sc5rainbe", "Over The Rainbow (Bellfruit) (Scorpion 5) (set 6)", + "sc5redsq", "Red Square (Mazooma) (Scorpion 5) (set 1)", + "sc5redsqa", "Red Square (Mazooma) (Scorpion 5) (set 2)", + "sc5rhclb", "Road Hog Club (PR3248) (Bellfruit) (Scorpion 5) (set 1)", + "sc5rhclba", "Road Hog Club (PR3248) (Bellfruit) (Scorpion 5) (set 2)", + "sc5rhclbb", "Road Hog Club (PR3248) (Bellfruit) (Scorpion 5) (set 3)", + "sc5rhclbc", "Road Hog Club (PR3248) (Bellfruit) (Scorpion 5) (set 4)", + "sc5rhclbd", "Road Hog Club (PR3248) (Bellfruit) (Scorpion 5) (set 5)", + "sc5rhclbe", "Road Hog Club (PR3248) (Bellfruit) (Scorpion 5) (set 6)", + "sc5rhclbf", "Road Hog Club (PR3248) (Bellfruit) (Scorpion 5) (set 7)", + "sc5rhclbg", "Road Hog Club (PR3248) (Bellfruit) (Scorpion 5) (set 8)", + "sc5rhr", "Red Hot Reels (Qps) (Scorpion 5) (set 1)", + "sc5rhra", "Red Hot Reels (Qps) (Scorpion 5) (set 2)", + "sc5rhrb", "Red Hot Reels (Qps) (Scorpion 5) (set 3)", + "sc5rhrc", "Red Hot Reels (Qps) (Scorpion 5) (set 4)", + "sc5rhrd", "Red Hot Reels (Qps) (Scorpion 5) (set 5)", + "sc5rhre", "Red Hot Reels (Qps) (Scorpion 5) (set 6)", + "sc5rhx", "Red Hot X (Mazooma) (Scorpion 5) (set 1)", + "sc5rhxa", "Red Hot X (Mazooma) (Scorpion 5) (set 2)", + "sc5rhxb", "Red Hot X (Mazooma) (Scorpion 5) (set 3)", + "sc5rhxc", "Red Hot X (Mazooma) (Scorpion 5) (set 4)", + "sc5rhxcs", "Red Hot X Casino (Mazooma) (Scorpion 5) (set 1)", + "sc5rhxcsa", "Red Hot X Casino (Mazooma) (Scorpion 5) (set 2)", + "sc5rhxd", "Red Hot X (Mazooma) (Scorpion 5) (set 5)", + "sc5rhxe", "Red Hot X (Mazooma) (Scorpion 5) (set 6)", + "sc5rhxf", "Red Hot X (Mazooma) (Scorpion 5) (set 7)", + "sc5rosts", "Ronnie O'Sullivan's Tournament Snooker (Bellfruit) (Scorpion 5) (set 1)", + "sc5rostsa", "Ronnie O'Sullivan's Tournament Snooker (Bellfruit) (Scorpion 5) (set 2)", + "sc5rostsb", "Ronnie O'Sullivan's Tournament Snooker (Bellfruit) (Scorpion 5) (set 3)", + "sc5rostsc", "Ronnie O'Sullivan's Tournament Snooker (Bellfruit) (Scorpion 5) (set 4)", + "sc5rostsd", "Ronnie O'Sullivan's Tournament Snooker (Bellfruit) (Scorpion 5) (set 5)", + "sc5rostse", "Ronnie O'Sullivan's Tournament Snooker (Bellfruit) (Scorpion 5) (set 6)", + "sc5rovrt", "Rovers Return (Mazooma) (Scorpion 5) (set 1)", + "sc5rovrta", "Rovers Return (Mazooma) (Scorpion 5) (set 2)", + "sc5rovrtb", "Rovers Return (Mazooma) (Scorpion 5) (set 3)", + "sc5rovrtc", "Rovers Return (Mazooma) (Scorpion 5) (set 4)", + "sc5rssh", "Reel Spin Shady (Mazooma) (Scorpion 5) (set 1)", + "sc5rssha", "Reel Spin Shady (Mazooma) (Scorpion 5) (set 2)", + "sc5sbull", "Super Bullseye (Bellfruit) (Scorpion 5) (set 1)", + "sc5sbulla", "Super Bullseye (Bellfruit) (Scorpion 5) (set 2)", + "sc5sfts", "Shoot For The Stars (Bellfruit) (Scorpion 5) (set 1)", + "sc5sftsa", "Shoot For The Stars (Bellfruit) (Scorpion 5) (set 2)", + "sc5sftsb", "Shoot For The Stars (Bellfruit) (Scorpion 5) (set 3)", + "sc5sftsc", "Shoot For The Stars (Bellfruit) (Scorpion 5) (set 4)", + "sc5sharp", "Sharp Shooter (Voodoo) (Scorpion 5) (set 1)", + "sc5sharpa", "Sharp Shooter (Voodoo) (Scorpion 5) (set 2)", + "sc5showt", "Showtime (Bellfruit) (Scorpion 5) (set 1)", + "sc5showta", "Showtime (Bellfruit) (Scorpion 5) (set 2)", + "sc5showtb", "Showtime (Bellfruit) (Scorpion 5) (set 3)", + "sc5showtc", "Showtime (Bellfruit) (Scorpion 5) (set 4)", + "sc5showtd", "Showtime (Bellfruit) (Scorpion 5) (set 5)", + "sc5showte", "Showtime (Bellfruit) (Scorpion 5) (set 6)", + "sc5showtf", "Showtime (Bellfruit) (Scorpion 5) (set 7)", + "sc5showtg", "Showtime (Bellfruit) (Scorpion 5) (set 8)", + "sc5showth", "Showtime (Bellfruit) (Scorpion 5) (set 9)", + "sc5showti", "Showtime (Bellfruit) (Scorpion 5) (set 10)", + "sc5showtj", "Showtime (Bellfruit) (Scorpion 5) (set 11)", + "sc5showtk", "Showtime (Bellfruit) (Scorpion 5) (set 12)", + "sc5showtl", "Showtime (Bellfruit) (Scorpion 5) (set 13)", + "sc5showtm", "Showtime (Bellfruit) (Scorpion 5) (set 14)", + "sc5showtn", "Showtime (Bellfruit) (Scorpion 5) (set 15)", + "sc5showto", "Showtime (Bellfruit) (Scorpion 5) (set 16)", + "sc5showtp", "Showtime (Bellfruit) (Scorpion 5) (set 17)", + "sc5showtq", "Showtime (Bellfruit) (Scorpion 5) (set 18)", + "sc5showtr", "Showtime (Bellfruit) (Scorpion 5) (set 19)", + "sc5showts", "Showtime (Bellfruit) (Scorpion 5) (set 20)", + "sc5sitwi", "Spin It To Win It (Bellfruit) (Scorpion 5) (set 1)", + "sc5sitwia", "Spin It To Win It (Bellfruit) (Scorpion 5) (set 2)", + "sc5slad", "Snakes & Ladders (Bellfruit) (Scorpion 5) (set 1)", + "sc5slada", "Snakes & Ladders (Bellfruit) (Scorpion 5) (set 2)", + "sc5sladb", "Snakes & Ladders (Bellfruit) (Scorpion 5) (set 3)", + "sc5sladc", "Snakes & Ladders (Bellfruit) (Scorpion 5) (set 4)", + "sc5sladd", "Snakes & Ladders (Bellfruit) (Scorpion 5) (set 5)", + "sc5slade", "Snakes & Ladders (Bellfruit) (Scorpion 5) (set 6)", + "sc5sladf", "Snakes & Ladders (Bellfruit) (Scorpion 5) (set 7)", + "sc5sladg", "Snakes & Ladders (Bellfruit) (Scorpion 5) (set 8)", + "sc5sleut", "Super Sleuth (Mazooma) (Scorpion 5) (set 1)", + "sc5sleuta", "Super Sleuth (Mazooma) (Scorpion 5) (set 2)", + "sc5smtm", "Show Me The Money (Mazooma) (Scorpion 5) (set 1)", + "sc5smtma", "Show Me The Money (Mazooma) (Scorpion 5) (set 2)", + "sc5spice", "Spice It Up (Bellfruit) (Scorpion 5) (set 1)", + "sc5spicea", "Spice It Up (Bellfruit) (Scorpion 5) (set 3)", + "sc5spiceb", "Spice It Up (Bellfruit) (Scorpion 5) (set 2)", + "sc5spicec", "Spice It Up (Bellfruit) (Scorpion 5) (set 4)", + "sc5spiced", "Spice It Up (Bellfruit) (Scorpion 5) (set 5)", + "sc5spicee", "Spice It Up (Bellfruit) (Scorpion 5) (set 6)", + "sc5spnrn", "Spinning Around (Mazooma) (Scorpion 5) (set 1)", + "sc5spnrna", "Spinning Around (Mazooma) (Scorpion 5) (set 2)", + "sc5srace", "Streak Racer (Bellfruit) (Scorpion 5) (set 1)", + "sc5sracea", "Streak Racer (Bellfruit) (Scorpion 5) (set 2)", + "sc5srrcl", "Snake Rattle 'n' Roll Club (Bellfruit) (Scorpion 5) (set 1)", + "sc5srrcla", "Snake Rattle 'n' Roll Club (Bellfruit) (Scorpion 5) (set 2)", + "sc5srrclb", "Snake Rattle 'n' Roll Club (Bellfruit) (Scorpion 5) (set 3)", + "sc5srrclc", "Snake Rattle 'n' Roll Club (Bellfruit) (Scorpion 5) (set 4)", + "sc5srrqp", "Snake Rattle & Roll (Qps) (Scorpion 5) (set 1)", + "sc5srrqpa", "Snake Rattle & Roll (Qps) (Scorpion 5) (set 2)", + "sc5sumit", "Summit Up (Qps) (Scorpion 5) (set 1)", + "sc5sumita", "Summit Up (Qps) (Scorpion 5) (set 2)", + "sc5sus", "Suits U Sir (Qps) (Scorpion 5) (set 1)", + "sc5susa", "Suits U Sir (Qps) (Scorpion 5) (set 2)", + "sc5susb", "Suits U Sir (Qps) (Scorpion 5) (set 3)", + "sc5susc", "Suits U Sir (Qps) (Scorpion 5) (set 4)", + "sc5swbak", "Switch Back (Mazooma) (Scorpion 5) (set 1)", + "sc5swbaka", "Switch Back (Mazooma) (Scorpion 5) (set 2)", + "sc5swywm", "Spin When Your Winning (Mazooma) (Scorpion 5) (set 1)", + "sc5swywma", "Spin When Your Winning (Mazooma) (Scorpion 5) (set 2)", + "sc5swywmb", "Spin When Your Winning (Mazooma) (Scorpion 5) (set 3)", + "sc5swywmc", "Spin When Your Winning (Mazooma) (Scorpion 5) (set 4)", + "sc5tbox", "Top Box (Mazooma) (Scorpion 5) (set 1)", + "sc5tboxa", "Top Box (Mazooma) (Scorpion 5) (set 2)", + "sc5tboxb", "Top Box (Mazooma) (Scorpion 5) (set 3)", + "sc5tboxc", "Top Box (Mazooma) (Scorpion 5) (set 4)", + "sc5tboxd", "Top Box (Mazooma) (Scorpion 5) (set 5)", + "sc5tboxe", "Top Box (Mazooma) (Scorpion 5) (set 6)", + "sc5tboxf", "Top Box (Mazooma) (Scorpion 5) (set 7)", + "sc5tboxg", "Top Box (Mazooma) (Scorpion 5) (set 8)", + "sc5tboxh", "Top Box (Mazooma) (Scorpion 5) (set 9)", + "sc5tboxi", "Top Box (Mazooma) (Scorpion 5) (set 10)", + "sc5tboxj", "Top Box (Mazooma) (Scorpion 5) (set 11)", + "sc5tboxk", "Top Box (Mazooma) (Scorpion 5) (set 12)", + "sc5tboxl", "Top Box (Mazooma) (Scorpion 5) (set 13)", + "sc5tboxm", "Top Box (Mazooma) (Scorpion 5) (set 14)", + "sc5tboxn", "Top Box (Mazooma) (Scorpion 5) (set 15)", + "sc5tboxo", "Top Box (Mazooma) (Scorpion 5) (set 16)", + "sc5tboxp", "Top Box (Mazooma) (Scorpion 5) (set 17)", + "sc5tboxq", "Top Box (Mazooma) (Scorpion 5) (set 18)", + "sc5tpsht", "Top Of The Shots (Mazooma) (Scorpion 5) (set 1)", + "sc5tpshta", "Top Of The Shots (Mazooma) (Scorpion 5) (set 2)", + "sc5tpshtb", "Top Of The Shots (Mazooma) (Scorpion 5) (set 3)", + "sc5tpshtc", "Top Of The Shots (Mazooma) (Scorpion 5) (set 4)", + "sc5tpshtd", "Top Of The Shots (Mazooma) (Scorpion 5) (set 5)", + "sc5trail", "Trailblazer (Mazooma) (Scorpion 5) (set 1)", + "sc5traila", "Trailblazer (Mazooma) (Scorpion 5) (set 2)", + "sc5tsmp", "Trick Shot Multi Player (Bellfruit) (Scorpion 5) (set 1)", + "sc5tsmpa", "Trick Shot Multi Player (Bellfruit) (Scorpion 5) (set 2)", + "sc5ttpie", "Take The Piece (Bellfruit) (PR1714) (Scorpion 5) (set 1)", + "sc5ttpiea", "Take The Piece (Bellfruit) (PR1714) (Scorpion 5) (set 2)", + "sc5ttpieb", "Take The Piece (Bellfruit) (PR1714) (Scorpion 5) (set 3)", + "sc5ttpiec", "Take The Piece (Bellfruit) (PR1714) (Scorpion 5) (set 4)", + "sc5ttpied", "Take The Piece (Bellfruit) (PR1714) (Scorpion 5) (set 5)", + "sc5ttpiee", "Take The Piece (Bellfruit) (PR1714) (Scorpion 5) (set 6)", + "sc5ttpief", "Take The Piece (Bellfruit) (PR1714) (Scorpion 5) (set 7)", + "sc5ttpieg", "Take The Piece (Bellfruit) (PR1714) (Scorpion 5) (set 8)", + "sc5ttpieh", "Take The Piece (Bellfruit) (PR1714) (Scorpion 5) (set 9)", + "sc5ttpiei", "Take The Piece (Bellfruit) (PR1714) (Scorpion 5) (set 10)", + "sc5typ", "Take Your Pick (Bellfruit) (Scorpion 5) (set 1)", + "sc5typa", "Take Your Pick (Bellfruit) (Scorpion 5) (set 2)", + "sc5typb", "Take Your Pick (Bellfruit) (Scorpion 5) (set 3)", + "sc5typc", "Take Your Pick (Bellfruit) (Scorpion 5) (set 4)", + "sc5vamp", "Vampire Payer (Qps) (Scorpion 5) (set 1)", + "sc5vampa", "Vampire Payer (Qps) (Scorpion 5) (set 2)", + "sc5viper", "Viper Active (Bellfruit) (Scorpion 5) (set 1)", + "sc5vipera", "Viper Active (Bellfruit) (Scorpion 5) (set 2)", + "sc5vivam", "Viva Mexico (Bellfruit) (Scorpion 5) (set 1)", + "sc5vivama", "Viva Mexico (Bellfruit) (Scorpion 5) (set 2)", + "sc5viz", "Viz (Qps) (Scorpion 5) (set 1)", + "sc5viza", "Viz (Qps) (Scorpion 5) (set 2)", + "sc5vizb", "Viz (Qps) (Scorpion 5) (set 3)", + "sc5vizc", "Viz (Qps) (Scorpion 5) (set 4)", + "sc5wacky", "Wacky Racers (Bellfruit) (Scorpion 5) (set 1)", + "sc5wackya", "Wacky Racers (Bellfruit) (Scorpion 5) (set 2)", + "sc5wackyb", "Wacky Racers (Bellfruit) (Scorpion 5) (set 3)", + "sc5wackyc", "Wacky Racers (Bellfruit) (Scorpion 5) (set 4)", + "sc5wca", "Win Can Alley (Qps) (Scorpion 5) (set 1)", + "sc5wcaa", "Win Can Alley (Qps) (Scorpion 5) (set 2)", + "sc5wcab", "Win Can Alley (5 pound 10p version) (Qps) (Scorpion 5) (set 1)", + "sc5wcac", "Win Can Alley (5 pound 10p Arcade version) (Qps) (Scorpion 5) (set 1)", + "sc5wcad", "Win Can Alley (Qps) (Scorpion 5) (set 3)", + "sc5wcae", "Win Can Alley (5 pound 10p version) (Qps) (Scorpion 5) (set 2)", + "sc5wcaf", "Win Can Alley (Qps) (Scorpion 5) (set 4)", + "sc5wcag", "Win Can Alley (5 pound 10p Arcade version) (Qps) (Scorpion 5) (set 2)", + "sc5wcah", "Win Can Alley (Qps) (Scorpion 5) (set 5)", + "sc5wcai", "Win Can Alley (Qps) (Scorpion 5) (set 6)", + "sc5wcaj", "Win Can Alley (5 pound 10p version) (Qps) (Scorpion 5) (set 3)", + "sc5wcak", "Win Can Alley (5 pound 10p Arcade version) (Qps) (Scorpion 5) (set 3)", + "sc5wcal", "Win Can Alley (Qps) (Scorpion 5) (set 7)", + "sc5wcam", "Win Can Alley (5 pound 10p version) (Qps) (Scorpion 5) (set 4)", + "sc5wcan", "Win Can Alley (Qps) (Scorpion 5) (set 8)", + "sc5wcao", "Win Can Alley (5 pound 10p Arcade version) (Qps) (Scorpion 5) (set 4)", + "sc5wild", "Wild Reels (Mazooma) (Scorpion 5) (set 1)", + "sc5wilda", "Wild Reels (Mazooma) (Scorpion 5) (set 2)", + "sc5wldjk", "Wild Jackpots (Mazooma) (Scorpion 5) (set 1)", + "sc5wldjka", "Wild Jackpots (Mazooma) (Scorpion 5) (set 2)", + "sc5wok", "Wok n' Roll (Bellfruit) (Scorpion 5) (set 1)", + "sc5woka", "Wok n' Roll (Bellfruit) (Scorpion 5) (set 2)", + "sc5wotw", "War Of The Wads (Mazooma) (Scorpion 5) (set 1)", + "sc5wotwa", "War Of The Wads (Mazooma) (Scorpion 5) (set 2)", + "sc_14", "Safe Cracker (1.4)", + "sc_17", "Safe Cracker (1.7)", + "sc_17n", "Safe Cracker (1.7N)", + "sc_18", "Safe Cracker (1.8)", + "sc_18n", "Safe Cracker (1.8N)", + "sc_18s2", "Safe Cracker (1.8 alternate sound)", + "scandal", "Scandal Mahjong (Japan 890213)", + "scandalm", "Scandal Mahjong [BET] (Japan 890217)", + "scessjoe", "Success Joe (World)", + "scfinals", "Super Cup Finals (Ver 2.2O 1994/01/13)", + "scfinalso", "Super Cup Finals (Ver 2.1O 1993/11/19)", + "scg06nt", "Sega Club Golf 2006 Next Tours (Rev A) (GDX-0018A)", + "schamp", "Sonic Championship (USA)", + "schaser", "Space Chaser (set 1)", + "schasera", "Space Chaser (set 2)", + "schaserb", "Space Chaser (set 3)", + "schaserc", "Space Chaser (set 4)", + "schasercv", "Space Chaser (CV version - set 1)", + "scherrym", "Super Cherry Master", + "schery97", "Skill Cherry '97 (ver. sc3.52)", + "schery97a", "Skill Cherry '97 (ver. sc3.52c4)", + "schmeisr", "Schmeiser Robo (Japan)", + "sci", "Special Criminal Investigation (World set 1)", + "scia", "Special Criminal Investigation (World set 2)", + "scij", "Special Criminal Investigation (Japan)", + "scin", "Super Special Criminal Investigation (Negro Torino hack)", + "scion", "Scion", + "scionc", "Scion (Cinematronics)", + "sciu", "Special Criminal Investigation (US)", + "scobra", "Super Cobra", + "scobrab", "Super Cobra (bootleg)", + "scobras", "Super Cobra (Stern Electronics)", + "scobrase", "Super Cobra (Sega)", + "scontra", "Super Contra", + "scontraj", "Super Contra (Japan)", + "scorpion", "Scorpion (set 1)", + "scorpiona", "Scorpion (set 2)", + "scorpionb", "Scorpion (set 3)", + "scorpionmc", "Scorpion (Moon Cresta hardware)", + "scotrsht", "Scooter Shooter", + "scptour", "Smash Court Pro Tournament (SCP1)", + "scrabble", "Scrabble (rev. F)", + "scrabbled", "Scrabble (rev. F) (Protocol)", + "scram_tp", "Scramble (Pinball)", + "scramb2", "Scramble (bootleg)", + "scramblb", "Scramble (bootleg on Galaxian hardware)", + "scramble", "Scramble", + "scramblebb", "Scramble (bootleg?)", + "scramblebf", "Scramble (Karateko, French bootleg)", + "scrambler", "Scramble (Reben S.A. Spanish bootleg)", + "scrambles", "Scramble (Stern Electronics set 1)", + "scrambles2", "Scramble (Stern Electronics set 2)", + "scrambp", "Impacto (Billport S.A., Spanish bootleg of Scramble)", + "scrampt", "Scramble (Petaco S.A., Spanish bootleg)", + "scramrf", "Scramble (Recreativos Franco, Spanish bootleg)", + "screenp1", "Screen Play (Maygay, MV1 Video, ver. 1.9, set 1)", + "screenp1a", "Screen Play (Maygay, MV1 Video, ver. 1.9, set 2)", + "screenp2", "Screen Play (Maygay, MV1 Video, ver. 1.9, Isle of Man, set 1)", + "screenp2a", "Screen Play (Maygay, MV1 Video, ver. 1.9, Isle of Man, set 2)", + "screenp3", "Screen Play (Maygay, MV1 Video, SA5-082)", + "screenp3a", "Screen Play (Maygay, MV1 Video, SA5-083)", + "screenp4", "Screen Play (Maygay, MV1 Video, ver. ?.?)", + "screenpl", "Screen Play (Maygay, MV1 Video, ver. 4.0)", + "scregg", "Scrambled Egg", + "screwloo", "Screw Loose (prototype)", + "scross", "Stadium Cross (World)", + "scrossu", "Stadium Cross (US)", + "scrpn_l1", "Scorpion (L-1)", + "scrpn_t1", "Scorpion (T-1)", + "scud", "Scud Race Twin (Australia)", + "scuda", "Scud Race Twin (Export)", + "scudhamm", "Scud Hammer", + "scudj", "Scud Race Deluxe (Japan)", + "scudplus", "Scud Race Plus (Revision A)", + "scudplusa", "Scud Race Plus", + "sddz", "Super Dou Di Zhu", + "sderby", "Super Derby (v.07.03)", + "sderbya", "Super Derby (v.10.04)", + "sdfight", "SD Fighters (Korea)", + "sdgndmps", "SD Gundam Psycho Salamander no Kyoui", + "sdi", "SDI - Strategic Defense Initiative (Japan, old, System 16A, FD1089B 317-0027)", + "sdib", "SDI - Strategic Defense Initiative (System 16B, FD1089A 317-0028)", + "sdibl", "SDI - Strategic Defense Initiative (bootleg)", + "sdmg2", "Mahjong Super Da Man Guan II (China, V754C)", + "sdodgeb", "Super Dodge Ball / Kunio no Nekketsu Toukyuu Densetsu", + "sdtennis", "Super Doubles Tennis", + "sdungeon", "Space Dungeon", + "sdwx", "Sheng Dan Wu Xian", + "seabass", "Sea Bass Fishing (JUET 971110 V0.001)", + "seabattl", "Sea Battle (set 1)", + "seabattla", "Sea Battle (set 2)", + "searchar", "SAR - Search And Rescue (World)", + "searcharj", "SAR - Search And Rescue (Japan)", + "searcharu", "SAR - Search And Rescue (US)", + "searchey", "Search Eye", + "searchp2", "Search Eye Plus V2.0", + "searthie", "Super Earth Invasion (set 3)", + "searthin", "Super Earth Invasion (set 1)", + "searthina", "Super Earth Invasion (set 2)", + "seawitch", "Seawitch", + "seawld", "Sea World (Version 1.6E Dual)", + "seawldd1", "Sea World (Version 1.6R CGA)", + "seawolf", "Sea Wolf (set 1)", + "seawolf2", "Sea Wolf II", + "seawolfo", "Sea Wolf (set 2)", + "secolove", "Second Love (Japan 861201)", + "secondch", "Second Chance", + "secretab", "Secret Agent (bootleg)", + "secretag", "Secret Agent (World)", + "sectionz", "Section Z (set 1)", + "sectionza", "Section Z (set 2)", + "sectrzon", "Sector Zone", + "segajw", "Golden Poker Series "Joker's Wild" (Rev. B)", + "seganinj", "Sega Ninja (315-5102)", + "seganinju", "Sega Ninja (not encrypted)", + "segawski", "Sega Water Ski (Japan, Revision A)", + "seicross", "Seicross", + "seiha", "Seiha (Japan 870725)", + "seiham", "Seiha [BET] (Japan 870723)", + "selfeena", "Sel Feena", + "seljan2", "Return Of Sel Jan II (Japan, NM557)", + "semibase", "MuHanSeungBu (SemiCom Baseball) (Korea)", + "sengekis", "Sengeki Striker (Asia)", + "sengekisj", "Sengeki Striker (Japan)", + "sengokmj", "Sengoku Mahjong [BET] (Japan)", + "sengoku", "Sengoku / Sengoku Denshou (NGM-017)(NGH-017)", + "sengoku2", "Sengoku 2 / Sengoku Denshou 2", + "sengoku3", "Sengoku 3 / Sengoku Densho 2001", + "sengokuh", "Sengoku / Sengoku Denshou (NGH-017)(US)", + "senjyo", "Senjyo", + "senknow", "Sen-Know (Japan)", + "senko", "Senko No Ronde (Rev A) (GDL-0030A)", + "senkoo", "Senko No Ronde (GDL-0030)", + "senkosp", "Senko No Ronde Special (GDL-0038)", + "senkyu", "Senkyu (Japan set 1)", + "senkyua", "Senkyu (Japan set 2)", + "sentetst", "Sente Diagnostic Cartridge", + "setaroul", "Visco Roulette", + "sexappl", "Sex Appeal (Version 6.02)", + "sextriv", "Sex Triv", + "sextriv1", "Sexual Trivia (Version 1.02SB, set 1)", + "sextriv2", "Sexual Trivia (Version 1.02SB, set 2)", + "sexyboom", "Sexy Boom", + "sexygal", "Sexy Gal (Japan 850501 SXG 1-00)", + "sexyparo", "Sexy Parodius (ver JAA)", + "sexyparoa", "Sexy Parodius (ver AAA)", + "sf", "Street Fighter (World, Analog buttons)", + "sf2", "Street Fighter II: The World Warrior (World 910522)", + "sf2049", "San Francisco Rush 2049", + "sf2049se", "San Francisco Rush 2049: Special Edition", + "sf2049te", "San Francisco Rush 2049: Tournament Edition", + "sf2acc", "Street Fighter II': Champion Edition (Accelerator!, bootleg, set 1)", + "sf2acca", "Street Fighter II': Champion Edition (Accelerator!, bootleg, set 2)", + "sf2accp2", "Street Fighter II': Champion Edition (Accelerator Pt.II, bootleg)", + "sf2amf", "Street Fighter II': Champion Edition (Alpha Magic-F, bootleg)", + "sf2amf2", "Street Fighter II': Champion Edition (L735 Test Rom, bootleg)", + "sf2bhh", "Street Fighter II': Champion Edition (Hung Hsi, bootleg)", + "sf2ce", "Street Fighter II': Champion Edition (World 920513)", + "sf2ceblp", "Street Fighter II': Champion Edition (protected bootleg on non-dash board)", + "sf2ceea", "Street Fighter II': Champion Edition (World 920313)", + "sf2ceja", "Street Fighter II': Champion Edition (Japan 920322)", + "sf2cejb", "Street Fighter II': Champion Edition (Japan 920513)", + "sf2cejc", "Street Fighter II': Champion Edition (Japan 920803)", + "sf2ceua", "Street Fighter II': Champion Edition (USA 920313)", + "sf2ceub", "Street Fighter II': Champion Edition (USA 920513)", + "sf2ceuc", "Street Fighter II': Champion Edition (USA 920803)", + "sf2dkot2", "Street Fighter II': Champion Edition (Double K.O. Turbo II, bootleg)", + "sf2dongb", "Street Fighter II': Champion Edition (Dongfang Bubai protection, bootleg)", + "sf2eb", "Street Fighter II: The World Warrior (World 910214)", + "sf2ebbl", "Street Fighter II: The World Warrior (TAB Austria, bootleg, set 1)", + "sf2ed", "Street Fighter II: The World Warrior (World 910318)", + "sf2ee", "Street Fighter II: The World Warrior (World 910228)", + "sf2hf", "Street Fighter II': Hyper Fighting (World 921209)", + "sf2hfj", "Street Fighter II' Turbo: Hyper Fighting (Japan 921209)", + "sf2hfu", "Street Fighter II': Hyper Fighting (USA 921209)", + "sf2j", "Street Fighter II: The World Warrior (Japan 911210)", + "sf2ja", "Street Fighter II: The World Warrior (Japan 910214)", + "sf2jc", "Street Fighter II: The World Warrior (Japan 910306)", + "sf2jf", "Street Fighter II: The World Warrior (Japan 910411)", + "sf2jh", "Street Fighter II: The World Warrior (Japan 910522)", + "sf2jl", "Street Fighter II: The World Warrior (Japan 920312)", + "sf2koryu", "Street Fighter II': Champion Edition (Xiang Long, Chinese bootleg)", + "sf2m1", "Street Fighter II': Champion Edition (M1, bootleg)", + "sf2m2", "Street Fighter II': Champion Edition (M2, bootleg)", + "sf2m3", "Street Fighter II': Champion Edition (M3, bootleg)", + "sf2m4", "Street Fighter II': Champion Edition (M4, bootleg)", + "sf2m5", "Street Fighter II': Champion Edition (M5, bootleg)", + "sf2m6", "Street Fighter II': Champion Edition (M6, bootleg)", + "sf2m7", "Street Fighter II': Champion Edition (M7, bootleg)", + "sf2m8", "Street Fighter II': Champion Edition (M8, bootleg)", + "sf2mdt", "Street Fighter II': Magic Delta Turbo (bootleg, set 1)", + "sf2mdta", "Street Fighter II': Magic Delta Turbo (bootleg, set 2)", + "sf2mdtb", "Street Fighter II': Magic Delta Turbo (bootleg, set 3)", + "sf2qp1", "Street Fighter II: The World Warrior (Quicken Pt-I, bootleg)", + "sf2rb", "Street Fighter II': Champion Edition (Rainbow, bootleg, set 1)", + "sf2rb2", "Street Fighter II': Champion Edition (Rainbow, bootleg, set 2)", + "sf2rb3", "Street Fighter II': Champion Edition (Rainbow, bootleg, set 3)", + "sf2red", "Street Fighter II': Champion Edition (Red Wave, bootleg)", + "sf2rk", "Street Fighter II: The World Warrior (RK, bootleg)", + "sf2stt", "Street Fighter II: The World Warrior (TAB Austria, bootleg, set 2)", + "sf2thndr", "Street Fighter II: The World Warrior (Thunder Edition, bootleg)", + "sf2ua", "Street Fighter II: The World Warrior (USA 910206)", + "sf2ub", "Street Fighter II: The World Warrior (USA 910214)", + "sf2uc", "Street Fighter II: The World Warrior (USA 910306)", + "sf2ud", "Street Fighter II: The World Warrior (USA 910318)", + "sf2ue", "Street Fighter II: The World Warrior (USA 910228)", + "sf2uf", "Street Fighter II: The World Warrior (USA 910411)", + "sf2ug", "Street Fighter II: The World Warrior (USA 910522, Rev. G)", + "sf2ui", "Street Fighter II: The World Warrior (USA 910522, Rev. I)", + "sf2uk", "Street Fighter II: The World Warrior (USA 911101)", + "sf2v004", "Street Fighter II': Champion Edition (V004, bootleg)", + "sf2yyc", "Street Fighter II': Champion Edition (YYC, bootleg)", + "sf_l1", "Slugfest (L-1)", + "sfa", "Street Fighter Alpha: Warriors' Dreams (Euro 950727)", + "sfa2", "Street Fighter Alpha 2 (Euro 960229)", + "sfa2u", "Street Fighter Alpha 2 (USA 960430)", + "sfa2ur1", "Street Fighter Alpha 2 (USA 960306)", + "sfa3", "Street Fighter Alpha 3 (Euro 980904)", + "sfa3b", "Street Fighter Alpha 3 (Brazil 980629)", + "sfa3h", "Street Fighter Alpha 3 (Hispanic 980904)", + "sfa3hr1", "Street Fighter Alpha 3 (Hispanic 980629)", + "sfa3u", "Street Fighter Alpha 3 (USA 980904)", + "sfa3ud", "Street Fighter Alpha 3 (USA 980904 Phoenix Edition) (bootleg)", + "sfa3ur1", "Street Fighter Alpha 3 (USA 980629)", + "sfad", "Street Fighter Alpha: Warriors' Dreams (Euro 950727 Phoenix Edition) (bootleg)", + "sfar1", "Street Fighter Alpha: Warriors' Dreams (Euro 950718)", + "sfar2", "Street Fighter Alpha: Warriors' Dreams (Euro 950627)", + "sfar3", "Street Fighter Alpha: Warriors' Dreams (Euro 950605)", + "sfau", "Street Fighter Alpha: Warriors' Dreams (USA 950627)", + "sfbonus", "Skill Fruit Bonus (Version 1.9R, set 1)", + "sfbonusd1", "Skill Fruit Bonus (Version 1.9R, set 2)", + "sfbonuso", "Skill Fruit Bonus (Version 1.7)", + "sfbonuso2", "Skill Fruit Bonus (Version 1.6)", + "sfbonusv1", "Skill Fruit Bonus (Version 1.9R Dual)", + "sfcbox", "Super Famicom Box BIOS", + "sfchamp", "Super Football Champ (Ver 2.5O)", + "sfchampj", "Super Football Champ (Ver 2.4J)", + "sfchampo", "Super Football Champ (Ver 2.4O)", + "sfchampu", "Super Football Champ (Ver 2.4A)", + "sfex", "Street Fighter EX (Euro 961219)", + "sfex2", "Street Fighter EX2 (USA 980526)", + "sfex2a", "Street Fighter EX2 (Asia 980312)", + "sfex2h", "Street Fighter EX2 (Hispanic 980312)", + "sfex2j", "Street Fighter EX2 (Japan 980312)", + "sfex2p", "Street Fighter EX2 Plus (USA 990611)", + "sfex2pa", "Street Fighter EX2 Plus (Asia 990611)", + "sfex2ph", "Street Fighter EX2 Plus (Hispanic 990611)", + "sfex2pj", "Street Fighter EX2 Plus (Japan 990611)", + "sfexa", "Street Fighter EX (Asia 961219)", + "sfexj", "Street Fighter EX (Japan 961130)", + "sfexp", "Street Fighter EX Plus (USA 970407)", + "sfexpj", "Street Fighter EX Plus (Japan 970407)", + "sfexpj1", "Street Fighter EX Plus (Japan 970311)", + "sfexpu1", "Street Fighter EX Plus (USA 970311)", + "sfexu", "Street Fighter EX (USA 961219)", + "sfight", "Sonic the Fighters (Japan)", + "sfight2", "Street Fighter II", + "sfight2a", "Street Fighter II (rev.1)", + "sfight2b", "Street Fighter II (rev.2)", + "sfiii", "Street Fighter III: New Generation (Euro 970204)", + "sfiii2", "Street Fighter III 2nd Impact: Giant Attack (USA 970930)", + "sfiii2j", "Street Fighter III 2nd Impact: Giant Attack (Japan 970930)", + "sfiii2n", "Street Fighter III 2nd Impact: Giant Attack (Asia 970930, NO CD)", + "sfiii3", "Street Fighter III 3rd Strike: Fight for the Future (Euro 990608)", + "sfiii3n", "Street Fighter III 3rd Strike: Fight for the Future (Japan 990608, NO CD)", + "sfiii3nr1", "Street Fighter III 3rd Strike: Fight for the Future (Japan 990512, NO CD)", + "sfiii3r1", "Street Fighter III 3rd Strike: Fight for the Future (Euro 990512)", + "sfiii3u", "Street Fighter III 3rd Strike: Fight for the Future (USA 990608)", + "sfiii3ur1", "Street Fighter III 3rd Strike: Fight for the Future (USA 990512)", + "sfiiia", "Street Fighter III: New Generation (Asia 970204)", + "sfiiih", "Street Fighter III: New Generation (Hispanic 970204)", + "sfiiij", "Street Fighter III: New Generation (Japan 970204)", + "sfiiin", "Street Fighter III: New Generation (Asia 970204, NO CD, bios set 1)", + "sfiiina", "Street Fighter III: New Generation (Asia 970204, NO CD, bios set 2)", + "sfiiiu", "Street Fighter III: New Generation (USA 970204)", + "sfish2", "Sport Fishing 2 (UET 951106 V1.10e)", + "sfish2j", "Sport Fishing 2 (J 951201 V1.100)", + "sfj", "Street Fighter (Japan) (protected)", + "sfkick", "Super Free Kick (set 1)", + "sfkicka", "Super Free Kick (set 2)", + "sflush", "Straight Flush", + "sfootbal", "Street Football (11/12/86)", + "sformula", "Super Formula (Japan)", + "sfp", "Street Fighter (prototype)", + "sfposeid", "Sea Fighter Poseidon", + "sfruitb", "Super Fruit Bonus (Version 2.5E Dual)", + "sfruitbb1", "Super Fruit Bonus (Version 2.5R, set 1)", + "sfruitbb2", "Super Fruit Bonus (Version 2.0LT, set 1)", + "sfruitbbh", "Super Fruit Bonus (Version 2.2B, set 1)", + "sfruitbd1", "Super Fruit Bonus (Version 2.5R, set 2)", + "sfruitbd2", "Super Fruit Bonus (Version 2.0LT, set 2)", + "sfruitbdh", "Super Fruit Bonus (Version 2.2B, set 2)", + "sfruitbh", "Super Fruit Bonus (Version 2.2EB Dual)", + "sfruitbo", "Super Fruit Bonus (Version 2.0)", + "sfruitbo2", "Super Fruit Bonus (Version 1.80XT)", + "sfruitboh", "Super Fruit Bonus (Version 2.0B)", + "sfruitbv1", "Super Fruit Bonus (Version 2.5R Dual)", + "sfruitbv2", "Super Fruit Bonus (Version 2.0LT Dual)", + "sfruitbvh", "Super Fruit Bonus (Version 2.2B Dual)", + "sfrush", "San Francisco Rush", + "sfrushrk", "San Francisco Rush: The Rock", + "sftm", "Street Fighter: The Movie (v1.12)", + "sftm110", "Street Fighter: The Movie (v1.10)", + "sftm111", "Street Fighter: The Movie (v1.11)", + "sftmj", "Street Fighter: The Movie (v1.12N, Japan)", + "sfu", "Street Fighter (US, set 1)", + "sfua", "Street Fighter (US, set 2) (protected)", + "sfx", "SF-X", + "sfz2a", "Street Fighter Zero 2 (Asia 960227)", + "sfz2ad", "Street Fighter Zero 2 (Asia 960227 Phoenix Edition) (bootleg)", + "sfz2al", "Street Fighter Zero 2 Alpha (Asia 960826)", + "sfz2alb", "Street Fighter Zero 2 Alpha (Brazil 960813)", + "sfz2ald", "Street Fighter Zero 2 Alpha (Asia 960826 Phoenix Edition) (bootleg)", + "sfz2alh", "Street Fighter Zero 2 Alpha (Hispanic 960813)", + "sfz2alj", "Street Fighter Zero 2 Alpha (Japan 960805)", + "sfz2b", "Street Fighter Zero 2 (Brazil 960531)", + "sfz2br1", "Street Fighter Zero 2 (Brazil 960304)", + "sfz2h", "Street Fighter Zero 2 (Hispanic 960304)", + "sfz2j", "Street Fighter Zero 2 (Japan 960430)", + "sfz2jd", "Street Fighter Zero 2 (Japan 960227 Phoenix Edition) (bootleg)", + "sfz2jr1", "Street Fighter Zero 2 (Japan 960227)", + "sfz2n", "Street Fighter Zero 2 (Oceania 960229)", + "sfz3a", "Street Fighter Zero 3 (Asia 980904)", + "sfz3ar1", "Street Fighter Zero 3 (Asia 980701)", + "sfz3j", "Street Fighter Zero 3 (Japan 980904)", + "sfz3jr1", "Street Fighter Zero 3 (Japan 980727)", + "sfz3jr2", "Street Fighter Zero 3 (Japan 980629)", + "sfz3jr2d", "Street Fighter Zero 3 (Japan 980629 Phoenix Edition) (bootleg)", + "sfz3ugd", "Street Fighter Zero 3 Upper (GDL-0002)", + "sfza", "Street Fighter Zero (Asia 950627)", + "sfzar1", "Street Fighter Zero (Asia 950605)", + "sfzb", "Street Fighter Zero (Brazil 951109)", + "sfzbr1", "Street Fighter Zero (Brazil 950727)", + "sfzh", "Street Fighter Zero (Hispanic 950718)", + "sfzhr1", "Street Fighter Zero (Hispanic 950627)", + "sfzj", "Street Fighter Zero (Japan 950727)", + "sfzjr1", "Street Fighter Zero (Japan 950627)", + "sfzjr2", "Street Fighter Zero (Japan 950605)", + "sgemf", "Super Gem Fighter Mini Mix (USA 970904)", + "sgemfa", "Super Gem Fighter: Mini Mix (Asia 970904)", + "sgemfd", "Super Gem Fighter Mini Mix (USA 970904 Phoenix Edition) (bootleg)", + "sgemfh", "Super Gem Fighter: Mini Mix (Hispanic 970904)", + "sgladiat", "Gladiator 1984", + "sgmast", "Super Masters Golf (World?, Floppy Based, FD1094 317-0058-05d?)", + "sgmastc", "Jumbo Ozaki Super Masters Golf (World, Floppy Based, FD1094 317-0058-05c)", + "sgmastj", "Jumbo Ozaki Super Masters Golf (Japan, Floppy Based, FD1094 317-0058-05b)", + "sgmt1", "Super Game Mega Type 1", + "sgnascar", "NASCAR Racing", + "sgsafari", "Super Gran Safari (ver 3.11)", + "sgt24h", "Super GT 24h", + "sgtetris", "Sega Tetris", + "sgunner", "Steel Gunner (Rev B)", + "sgunner2", "Steel Gunner 2 (US)", + "sgunner2j", "Steel Gunner 2 (Japan, Rev A)", + "sgunnerj", "Steel Gunner (Japan)", + "sgyxz", "Warriors of Fate ('sgyxz' bootleg)", + "shabdama", "LD Mahjong #4 Shabon-Dama", + "shackled", "Shackled (US)", + "shadfgtr", "Shadow Fighters", + "shadfrce", "Shadow Force (US Version 2)", + "shadfrcej", "Shadow Force (Japan Version 3)", + "shadfrcejv2", "Shadow Force (Japan Version 2)", + "shadowld", "Shadowland (YD3)", + "shadoww", "Shadow Warriors (World, set 1)", + "shadowwa", "Shadow Warriors (World, set 2)", + "shaktamb", "Shakatto Tambourine Cho Powerup Chu 2K1 AUT (GDS-0016)", + "shaktmsp", "Shakatto Tambourine 2K1 SPR (GDS-0013)", + "shangha2", "Shanghai II (Japan, set 1)", + "shangha2a", "Shanghai II (Japan, set 2)", + "shangha3", "Shanghai III (World)", + "shangha3j", "Shanghai III (Japan)", + "shangha3u", "Shanghai III (US)", + "shanghai", "Shanghai (World)", + "shanghaij", "Shanghai (Japan)", + "shanghss", "Shanghai Shoryu Sairin (V2.03J)", + "shangkid", "Shanghai Kid", + "shangon", "Super Hang-On (sitdown/upright, unprotected)", + "shangon1", "Super Hang-On (mini ride-on?, FD1089B 317-0034)", + "shangon2", "Super Hang-On (mini ride-on, Rev A, FD1089B 317-0034)", + "shangon3", "Super Hang-On (sitdown/upright, FD1089B 317-0034)", + "shangonle", "Limited Edition Hang-On", + "shangonrb", "Super Hang-On (bootleg)", + "shangonro", "Super Hang-On (ride-on, Japan, FD1094 317-0038)", + "shangril", "Dengen Tenshi Taisen Janshi Shangri-la (JPN, USA, EXP, KOR, AUS)", + "shangtou", "Shanghai Sangokuhai Tougi (Ver 2.01J)", + "shanhigw", "Shanghai - The Great Wall / Shanghai Triple Threat (JUE 950623 V1.005)", + "shaolinb", "Shao-lin's Road (set 2)", + "shaolins", "Shao-lin's Road (set 1)", + "shaqattq", "Shaq Attaq (rev.5)", + "shaqattq2", "Shaq Attaq (rev.2)", + "shark", "Shark", + "sharkatt", "Shark Attack", + "sharkjaw", "Shark JAWS [TTL]", + "sharkpy", "Shark Party (Italy, v1.3)", + "sharkpya", "Shark Party (Italy, v1.6)", + "sharkpye", "Shark Party (English, Alpha license)", + "sharkt", "Shark (Taito)", + "sharrier", "Space Harrier (Rev A, 8751 315-5163A)", + "sharrier1", "Space Harrier (8751 315-5163)", + "shdancbl", "Shadow Dancer (bootleg)", + "shdancer", "Shadow Dancer (World)", + "shdancer1", "Shadow Dancer (US)", + "shdancerj", "Shadow Dancer (Japan)", + "sheriff", "Sheriff", + "shfin_l1", "Shuffle Inn (Shuffle) (L-1)", + "shienryu", "Shienryu (JUET 961226 V1.000)", + "shikgam2", "Shikigami No Shiro II / The Castle of Shikigami II (GDL-0021)", + "shikiga3", "Shikigami no Shiro III (v2.06J)", + "shikigam", "Shikigami no Shiro (V2.03J)", + "shimpact", "Super High Impact (rev LA1 09/30/91)", + "shimpactp4", "Super High Impact (prototype, rev 4.0 09/10/91)", + "shimpactp5", "Super High Impact (prototype, rev 5.0 09/15/91)", + "shimpactp6", "Super High Impact (prototype, rev 6.0 09/23/91)", + "shinfz", "Shinobi / FZ-2006 (Korean System 16 bootleg) (ISG Selection Master Type 2006)", + "shinobi", "Shinobi (set 6, System 16A, unprotected)", + "shinobi1", "Shinobi (set 1, System 16A, FD1094 317-0050)", + "shinobi2", "Shinobi (set 2, System 16B, FD1094 317-0049)", + "shinobi3", "Shinobi (set 3, System 16B, MC-8123B 317-0054)", + "shinobi4", "Shinobi (set 4, System 16B, MC-8123B 317-0054)", + "shinobi5", "Shinobi (set 5, System 16B, unprotected)", + "shinoblb", "Shinobi (Beta bootleg)", + "shinobld", "Shinobi (Datsu bootleg)", + "shinobls", "Shinobi (Star bootleg, System 16A)", + "shippumd", "Shippu Mahou Daisakusen (Japan)", + "shiryu2", "Strider Hiryu 2 (Japan 991213)", + "shisen", "Shisensho - Joshiryo-Hen (Japan)", + "shisen2", "Shisensho II", + "shngmtkb", "Shanghai Matekibuyuu", + "shock", "Shock", + "shocking", "Shocking", + "shockingk", "Shocking (Korea)", + "shocktr2", "Shock Troopers - 2nd Squad", + "shocktro", "Shock Troopers (set 1)", + "shocktroa", "Shock Troopers (set 2)", + "shogwarr", "Shogun Warriors (World)", + "shogwarru", "Shogun Warriors (US)", + "shollow", "Satan's Hollow (set 1)", + "shollow2", "Satan's Hollow (set 2)", + "shootbul", "Shoot the Bull", + "shootgal", "Shooting Gallery", + "shootopl", "Shootout Pool", + "shootout", "Shoot Out (US)", + "shootoutb", "Shoot Out (Korean Bootleg)", + "shootoutj", "Shoot Out (Japan)", + "shootpl", "Shootout Pool (JPN, USA, KOR, AUS) / Shootout Pool Prize (EXP)", + "shootplm", "Shootout Pool Medal", + "shougi", "Shougi", + "shougi2", "Shougi 2", + "showdown", "Showdown (version 5.0)", + "showhanc", "Wang Pai Dui Jue (China)", + "showhand", "Show Hand (Italy)", + "showqn", "Show Queen (Konami Endeavour)", + "shpeng", "Sea Hunter Penguin", + "shpinxii", "Sphinx II (Russia) (Atronic)", + "shrike", "Shrike Avenger (prototype)", + "shrknew", "Sharkey's Shootout (ARM7 Sound Board)", + "shrky_207", "Sharkey's Shootout (2.07)", + "shrkyfr", "Sharkey's Shootout (2.11 France)", + "shrkyfr_207", "Sharkey's Shootout (2.07 France)", + "shrkygr", "Sharkey's Shootout (2.11 Germany)", + "shrkygr_207", "Sharkey's Shootout (2.07 Germany)", + "shrkyit", "Sharkey's Shootout (2.11 Italy)", + "shrkyit_207", "Sharkey's Shootout (2.07 Italy)", + "shrkysht", "Sharkey's Shootout (2.11)", + "shtngmst", "Shooting Master (8751 315-5159)", + "shtngmste", "Shooting Master (EVG, 8751 315-5159a)", + "shtrider", "Shot Rider", + "shtridera", "Shot Rider (Sigma license)", + "shtstar", "Shooting Star", + "shtzone", "Shooting Zone System BIOS", + "shuffle", "Shuffleboard", + "shufshot", "Shuffleshot (v1.40)", + "shufshot137", "Shuffleshot (v1.37)", + "shufshot139", "Shuffleshot (v1.39)", + "shuttlei", "Shuttle Invader", + "shuuz", "Shuuz (version 8.0)", + "shuuz2", "Shuuz (version 7.1)", + "sia2650", "Super Invader Attack (bootleg of The Invaders)", + "sianniv", "Space Invaders Anniversary (V2.02J)", + "sichuan2", "Sichuan II (hack, set 1)", + "sichuan2a", "Sichuan II (hack, set 2)", + "sicv", "Space Invaders (CV Version)", + "sidampkr", "unknown Sidam Poker", + "sidearms", "Side Arms - Hyper Dyne (World)", + "sidearmsj", "Side Arms - Hyper Dyne (Japan)", + "sidearmsr", "Side Arms - Hyper Dyne (US)", + "sidebs", "Side by Side (Ver 2.7 J)", + "sidebs2", "Side by Side 2 (Ver 2.6 A)", + "sidebs2j", "Side by Side 2 Evoluzione (Ver 2.4 J)", + "sidebsja", "Side by Side (Ver 2.5 J)", + "sidepckt", "Side Pocket (World)", + "sidepcktb", "Side Pocket (bootleg)", + "sidepcktj", "Side Pocket (Japan)", + "sidetrac", "Side Trak", + "sidewndr", "Sidewinder", + "sigma2k", "Sigma Poker 2000", + "sigmapkr", "Sigma Poker", + "silentd", "Silent Dragon (World)", + "silentdj", "Silent Dragon (Japan)", + "silentdu", "Silent Dragon (US)", + "silkroad", "The Legend of Silkroad", + "silkroada", "The Legend of Silkroad (larger ROMs)", + "silkworm", "Silk Worm (World)", + "silkwormj", "Silk Worm (Japan)", + "silverga", "Silver Game", + "silvland", "Silver Land", + "silvmil", "Silver Millennium", + "silvslug", "Silver Slugger", + "simp_a20", "The Simpsons (2.0)", + "simp_a27", "The Simpsons (2.7)", + "simpbowl", "Simpsons Bowling (GQ829 UAA)", + "simpnew", "Simpsons Pinball Party, The (ARM7 Sound Board)", + "simpprtf", "Simpsons Pinball Party, The (5.00 France)", + "simpprtf_204", "Simpsons Pinball Party, The (2.04 France)", + "simpprtf_400", "Simpsons Pinball Party, The (4.00 France)", + "simpprtg", "Simpsons Pinball Party, The (5.00 Germany)", + "simpprtg_400", "Simpsons Pinball Party, The (4.00 Germany)", + "simpprti", "Simpsons Pinball Party, The (5.00 Italy)", + "simpprti_204", "Simpsons Pinball Party, The (2.04 Italy)", + "simpprti_400", "Simpsons Pinball Party, The (4.00 Italy)", + "simpprtl", "Simpsons Pinball Party, The (5.00 Spain)", + "simpprtl_204", "Simpsons Pinball Party, The (2.04 Spain)", + "simpprtl_400", "Simpsons Pinball Party, The (4.00 Spain)", + "simpprty", "Simpsons Pinball Party, The (5.00)", + "simpprty_204", "Simpsons Pinball Party, The (2.04)", + "simpprty_400", "Simpsons Pinball Party, The (4.00)", + "simpsons", "The Simpsons (4 Players World, set 1)", + "simpsons2p", "The Simpsons (2 Players World, set 1)", + "simpsons2p2", "The Simpsons (2 Players World, set 2)", + "simpsons2pa", "The Simpsons (2 Players Asia)", + "simpsons2pj", "The Simpsons (2 Players Japan)", + "simpsons4pa", "The Simpsons (4 Players World, set 2)", + "sinbad", "Sinbad", + "sinbadn", "Sinbad (Norway)", + "sindbadm", "Sindbad Mystery", + "sinistar", "Sinistar (revision 3)", + "sinistar1", "Sinistar (prototype version)", + "sinistar2", "Sinistar (revision 2)", + "sinvasn", "Space Invasion (Europe)", + "sinvasnb", "Space Invasion (bootleg)", + "sinvemag", "Super Invaders (bootleg set 2)", + "sinvzen", "Super Invaders (Zenitone-Microsec)", + "sisv", "Space Invaders (SV Version rev 4)", + "sisv1", "Space Invaders (SV Version rev 1)", + "sisv2", "Space Invaders (SV Version rev 2)", + "sisv3", "Space Invaders (SV Version rev 3)", + "sitv", "Space Invaders (TV Version rev 2)", + "sitv1", "Space Invaders (TV Version rev 1)", + "sjcd2kx3", "Super Joly 2000 - 3x", + "sjryuko", "Sukeban Jansi Ryuko (set 2, System 16B, FD1089B 317-5021)", + "sjryuko1", "Sukeban Jansi Ryuko (set 1, System 16A, FD1089B 317-5021)", + "skatebll", "Skateball", + "skatekds", "Vs. Skate Kids. (Graphic hack of Super Mario Bros.)", + "skattv", "Skat TV", + "skattva", "Skat TV (version TS3)", + "skeetsht", "Skeet Shot", + "skelagon", "Skelagon", + "skflight", "Skill Flight", + "skichamp", "Ski Champ", + "skijump", "Ski Jump", + "skill98", "Skill '98 (ver. s98-1.33)", + "skilldrp", "Skill Drop Georgia (Ver. G1.0S)", + "skimaxx", "Skimaxx", + "skingame", "The Irem Skins Game (US set 1)", + "skingame2", "The Irem Skins Game (US set 2)", + "skisuprg", "Sega Ski Super G", + "skns", "Super Kaneko Nova System BIOS", + "skullfng", "Skull Fang (World)", + "skullfngj", "Skull Fang (Japan)", + "skullxbo", "Skull & Crossbones (rev 5)", + "skullxbo1", "Skull & Crossbones (rev 1)", + "skullxbo2", "Skull & Crossbones (rev 2)", + "skullxbo3", "Skull & Crossbones (rev 3)", + "skullxbo4", "Skull & Crossbones (rev 4)", + "skyadvnt", "Sky Adventure (World)", + "skyadvntj", "Sky Adventure (Japan)", + "skyadvntu", "Sky Adventure (US)", + "skyalert", "Sky Alert", + "skyarmy", "Sky Army", + "skybase", "Sky Base", + "skybump", "Sky Bumper", + "skychut", "Sky Chuter", + "skydest", "Sky Destroyer (Japan)", + "skydiver", "Sky Diver", + "skyfox", "Sky Fox", + "skykid", "Sky Kid (new version)", + "skykidd", "Sky Kid (CUS60 version)", + "skykiddx", "Sky Kid Deluxe (set 1)", + "skykiddxo", "Sky Kid Deluxe (set 2)", + "skykido", "Sky Kid (old version)", + "skykids", "Sky Kid (Sipem)", + "skylancr", "Sky Lancer", + "skylancre", "Sky Lancer (Esco Trading Co license)", + "skylncr", "Sky Lancer (Bordun, version U450C)", + "skylove", "Sky Love", + "skyraid", "Sky Raider", + "skyraidr", "Sky Raider (Uniwars bootleg)", + "skyrobo", "Sky Robo", + "skyshark", "Sky Shark (US)", + "skyskipr", "Sky Skipper", + "skysmash", "Sky Smasher", + "skysoldr", "Sky Soldiers (US)", + "skysoldrbl", "Sky Soldiers (bootleg)", + "skytargt", "Sky Target", + "skywolf", "Sky Wolf (set 1)", + "skywolf2", "Sky Wolf (set 2)", + "skywolf3", "Sky Wolf (set 3)", + "sl2007", "Shooting Love 2007", + "slamdnk2", "Slam Dunk 2 (ver JAA)", + "slammast", "Saturday Night Slam Masters (World 930713)", + "slammastu", "Saturday Night Slam Masters (USA 930713)", + "slampic", "Saturday Night Slam Masters (bootleg with PIC16c57)", + "slapfigh", "Slap Fight (Japan set 1)", + "slapfigha", "Slap Fight (Japan set 2)", + "slapfighb1", "Slap Fight (bootleg set 1)", + "slapfighb2", "Slap Fight (bootleg set 2)", + "slapfighb3", "Slap Fight (bootleg set 3)", + "slapshot", "Slap Shot (Japan)", + "slasho", "Slashout (JPN, USA, EXP, KOR, AUS)", + "slashout", "Slashout (GDS-0004)", + "slbmania", "Silverball Mania", + "sleicpin", "Sleic Pin Ball", + "slikshot", "Slick Shot (V2.2)", + "slikshot16", "Slick Shot (V1.6)", + "slikshot17", "Slick Shot (V1.7)", + "slipstrm", "Slip Stream (Brazil 950515)", + "slipstrmh", "Slip Stream (Hispanic 950515)", + "slither", "Slither (set 1)", + "slithera", "Slither (set 2)", + "sliver", "Sliver", + "slmdunkj", "Slam Dunk (ver JAA 1993 10.8)", + "sloco93", "Super Loco 93 (Spanish, set 1)", + "sloco93a", "Super Loco 93 (Spanish, set 2)", + "slotcarn", "Slot Carnival", + "slotsnl", "Slots (Dutch, Game Card 95-750-368)", + "slqz2", "Mahjong Shuang Long Qiang Zhu 2 (VS203J)", + "slrasslt", "Solar Assault (ver UAA)", + "sltblgp1", "Slots (Belgian Cash, Game Card 95-752-008)", + "sltblgpo", "Slots (Belgian Cash, Game Card 95-750-938)", + "sltblgtk", "Slots (Belgian Token, Game Card 95-750-943)", + "slyspy", "Sly Spy (US revision 3)", + "slyspy2", "Sly Spy (US revision 2)", + "sm_ngacc", "Nudge Accumulator (Summit Coin)", + "sm_ultng", "Ultimate Nudge (Summit Coin)", + "smarinef", "Sega Marine Fishing", + "smash", "Smash (Crash bootleg)", + "smashtv", "Smash T.V. (rev 8.00)", + "smashtv3", "Smash T.V. (rev 3.01)", + "smashtv4", "Smash T.V. (rev 4.00)", + "smashtv5", "Smash T.V. (rev 5.00)", + "smashtv6", "Smash T.V. (rev 6.00)", + "smb", "Super Mario Brothers", + "smb1", "Super Mario Brothers (rev.1)", + "smb2", "Super Mario Brothers (rev.2)", + "smb3", "Super Mario Brothers (rev.3)", + "smbmush", "Super Mario Brothers Mushroom World", + "smbomb", "Super Muscle Bomber: The International Blowout (Japan 940831)", + "smbombr1", "Super Muscle Bomber: The International Blowout (Japan 940808)", + "smgolf", "Vs. Stroke & Match Golf (Men Version, set GF4-2 F)", + "smgolfb", "Vs. Stroke & Match Golf (Men Version, set GF4-2 ?)", + "smgolfj", "Vs. Stroke & Match Golf (Men Version) (Japan, set GF3 B)", + "smgp", "Super Monaco GP (World, Rev B, FD1094 317-0126a)", + "smgp5", "Super Monaco GP (World, FD1094 317-0126)", + "smgp6", "Super Monaco GP (World, Rev A, FD1094 317-0126a)", + "smgpj", "Super Monaco GP (Japan, Rev B, FD1094 317-0124a)", + "smgpja", "Super Monaco GP (Japan, Rev A, FD1094 317-0124a)", + "smgpu", "Super Monaco GP (US, Rev C, FD1094 317-0125a)", + "smgpu1", "Super Monaco GP (US, Rev B, FD1094 317-0125a)", + "smgpu2", "Super Monaco GP (US, Rev A, FD1094 317-0125a)", + "smleague", "Super Major League (U 960108 V1.000)", + "smlg99", "Super Major League '99", + "smman", "Six Million Dollar Man", + "smooncrs", "Super Moon Cresta", + "smoto16", "Super Moto (Italy, v1.6)", + "smoto20", "Super Rider (Italy, v2.0)", + "smshilo", "HI-LO Double Up Joker Poker", + "snake", "Snake Machine", + "snakepit", "Snake Pit", + "snakjack", "Snacks'n Jaxson", + "snapjack", "Snap Jack", + "snapper", "Snapper (Korea)", + "sncwgltd", "Sonic Wings Limited (Japan)", + "sngkace", "Sengoku Ace (Japan)", + "snlad", "Snake & Ladders", + "snookr10", "Snooker 10 (Ver 1.11)", + "snowboar", "Snow Board Championship (Version 2.1)", + "snowboara", "Snow Board Championship (Version 2.0)", + "snowbro2", "Snow Bros. 2 - With New Elves / Otenki Paradise", + "snowbro2b", "Snow Bros. 2 - With New Elves / Otenki Paradise (bootleg)", + "snowbro3", "Snow Brothers 3 - Magical Adventure", + "snowbros", "Snow Bros. - Nick & Tom (set 1)", + "snowbrosa", "Snow Bros. - Nick & Tom (set 2)", + "snowbrosb", "Snow Bros. - Nick & Tom (set 3)", + "snowbrosc", "Snow Bros. - Nick & Tom (set 4)", + "snowbrosd", "Snow Bros. - Nick & Tom (Dooyong license)", + "snowbrosj", "Snow Bros. - Nick & Tom (Japan)", + "snowbroswb", "Snow Bros. - Nick & Tom (The Winter Bobble hardware bootleg)", + "snspares", "Strikes n' Spares (rev.6)", + "snspares1", "Strikes n' Spares (rev.1)", + "socbrawl", "Soccer Brawl (NGM-031)", + "socbrawlh", "Soccer Brawl (NGH-031)", + "soccer", "Atari Soccer", + "soccernw", "Soccer New (Italian)", + "soccerss", "Soccer Superstars (ver EAA)", + "soccerssa", "Soccer Superstars (ver AAA)", + "soccerssj", "Soccer Superstars (ver JAC)", + "soccerssja", "Soccer Superstars (ver JAA)", + "socrking", "Soccer Kings", + "socrkingg", "Soccer Kings (German speech)", + "socrkingi", "Soccer Kings (Italian speech)", + "sogeki", "Sogeki (ver JAA)", + "sokonuke", "Sokonuke Taisen Game (Japan)", + "sokyugrt", "Soukyugurentai / Terra Diver (JUET 960821 V1.000)", + "solar_l2", "Solar Fire (L-2)", + "solarfox", "Solar Fox (upright)", + "solaride", "Solar Ride", + "solarq", "Solar Quest", + "solarwap", "Solar Wars (Sonic)", + "solarwar", "Solar-Warrior (US)", + "soldam", "Soldam", + "soldamj", "Soldam (Japan)", + "soldivid", "Sol Divide - The Sword Of Darkness", + "solfight", "Solar Fight (bootleg of Ozma Wars)", + "solfigtr", "Solitary Fighter (World)", + "solomon", "Solomon's Key (US)", + "solomonj", "Solomon no Kagi (Japan)", + "solvalou", "Solvalou (Japan)", + "sonic", "SegaSonic The Hedgehog (Japan, rev. C)", + "sonicbom", "Sonic Boom (FD1094 317-0053)", + "sonicp", "SegaSonic The Hedgehog (Japan, prototype)", + "sonicwi", "Sonic Wings (Japan)", + "sonicwi2", "Aero Fighters 2 / Sonic Wings 2", + "sonicwi3", "Aero Fighters 3 / Sonic Wings 3", + "sonofphx", "Son of Phoenix (bootleg of Repulse)", + "sonoth", "Something For Nothing (Russia)", + "sonson", "Son Son", + "sonsonj", "Son Son (Japan)", + "sonstwar", "Star Wars (Sonic)", + "sonstwr2", "Star Wars (Sonic, alternate set)", + "sopranof", "Sopranos, The (5.00 France)", + "sopranof_107", "Sopranos, The (1.07 France)", + "sopranof_300", "Sopranos, The (3.00 France)", + "sopranof_400", "Sopranos, The (4.00 France)", + "sopranog", "Sopranos, The (5.00 Germany)", + "sopranog_107", "Sopranos, The (1.07 Germany)", + "sopranog_300", "Sopranos, The (3.00 Germany)", + "sopranog_400", "Sopranos, The (4.00 Germany)", + "sopranoi", "Sopranos, The (5.00 Italy)", + "sopranoi_107", "Sopranos, The (1.07 Italy)", + "sopranoi_300", "Sopranos, The (3.00 Italy)", + "sopranoi_400", "Sopranos, The (4.00 Italy)", + "sopranol", "Sopranos, The (5.00 Spain)", + "sopranol_107", "Sopranos, The (1.07 Spain)", + "sopranol_300", "Sopranos, The (3.00 Spain)", + "sopranol_400", "Sopranos, The (4.00 Spain)", + "sopranos", "Sopranos, The (5.00)", + "sopranos_204", "Sopranos, The (2.04)", + "sopranos_300", "Sopranos, The (3.00)", + "sopranos_400", "Sopranos, The (4.00)", + "sorbit", "Super Orbit", + "sorcr_l1", "Sorcerer (L-1)", + "sorcr_l2", "Sorcerer (L-2)", + "sos", "SOS", + "sosterm", "S.O.S.", + "sothello", "Super Othello", + "sotsugyo", "Sotsugyo Shousho", + "soukobdx", "Souko Ban Deluxe (Japan, SB1)", + "soulcl2a", "Soul Calibur II (SC22 Ver. A)", + "soulcl2b", "Soul Calibur II (SC21 Ver. A)", + "soulcl2w", "Soul Calibur II (SC2? world version)", + "soulclb2", "Soul Calibur II (SC23 Ver. A)", + "soulclb3", "Soul Calibur III (SC31001-NA-A)", + "soulclb3a", "Soul Calibur III (SC31002-NA-A)", + "soulclbr", "Soul Calibur (World, SOC14/VER.C)", + "soulclbrja", "Soul Calibur (Japan, SOC11/VER.A2)", + "soulclbrjb", "Soul Calibur (Japan, SOC11/VER.B)", + "soulclbrjc", "Soul Calibur (Japan, SOC11/VER.C)", + "soulclbrub", "Soul Calibur (US, SOC13/VER.B)", + "soulclbruc", "Soul Calibur (US, SOC13/VER.C)", + "soulclbrwb", "Soul Calibur (World, SOC14/VER.B)", + "souledge", "Soul Edge Ver. II (World, SO4/VER.C)", + "souledgeaa", "Soul Edge (Asia, SO2/VER.A)", + "souledgeja", "Soul Edge (Japan, SO1/VER.A)", + "souledgeua", "Soul Edge (US, SO3/VER.A)", + "souledgeuc", "Soul Edge Ver. II (US, SO3/VER.C)", + "soulsurf", "Soul Surfer (Rev A)", + "soutenry", "Soutenryu (V2.07J)", + "sp_atw", "Around The World In Eighty Days (Crystal) (sp.ACE?)", + "sp_beau", "Beau Peep (Ace) (sp.ACE) (set 1)", + "sp_beau2", "Further Adventures Of Beau Peep (Ace) (sp.ACE) (set 1)", + "sp_beau2a", "Further Adventures Of Beau Peep (Ace) (sp.ACE) (set 2)", + "sp_beau2b", "Further Adventures Of Beau Peep (Ace) (sp.ACE) (set 3)", + "sp_beau2c", "Further Adventures Of Beau Peep (Ace) (sp.ACE) (set 4)", + "sp_beau2d", "Further Adventures Of Beau Peep (Ace) (sp.ACE) (set 5)", + "sp_beau2e", "Further Adventures Of Beau Peep (Ace) (sp.ACE) (set 6)", + "sp_beau2f", "Further Adventures Of Beau Peep (Ace) (sp.ACE) (set 7)", + "sp_beaua", "Beau Peep (Ace) (sp.ACE) (set 2)", + "sp_beaub", "Beau Peep (Ace) (sp.ACE) (set 3)", + "sp_beauc", "Beau Peep (Ace) (sp.ACE) (set 4)", + "sp_beaud", "Beau Peep (Ace) (sp.ACE) (set 5)", + "sp_beaue", "Beau Peep (Ace) (sp.ACE) (set 6)", + "sp_beauf", "Beau Peep (Ace) (sp.ACE) (set 7)", + "sp_beaug", "Beau Peep (Ace) (sp.ACE) (set 8)", + "sp_beauh", "Beau Peep (Ace) (sp.ACE) (set 9)", + "sp_bigbd", "Big Break Deluxe Club (Ace) (sp.ACE) (set 1)", + "sp_bigbda", "Big Break Deluxe Club (Ace) (sp.ACE) (set 2)", + "sp_brkbk", "Break The Bank (Ace) (sp.ACE) (set 1)", + "sp_brkbka", "Break The Bank (Ace) (sp.ACE) (set 2)", + "sp_brkbkb", "Break The Bank (Ace) (sp.ACE) (set 3)", + "sp_brkbkc", "Break The Bank (Ace) (sp.ACE) (set 4)", + "sp_brkbkd", "Break The Bank (Ace) (sp.ACE) (set 5)", + "sp_camel", "Camelot (Ace) (sp.ACE) (set 1)", + "sp_camela", "Camelot (Ace) (sp.ACE) (set 2)", + "sp_camelb", "Camelot (Ace) (sp.ACE) (set 3)", + "sp_camelc", "Camelot (Ace) (sp.ACE) (set 4)", + "sp_cameld", "Camelot (Ace) (sp.ACE) (set 5)", + "sp_camele", "Camelot (Ace) (sp.ACE) (set 6)", + "sp_camelf", "Camelot (Ace) (sp.ACE) (set 7)", + "sp_camelg", "Camelot (Ace) (sp.ACE) (set 8)", + "sp_camelh", "Camelot (Ace) (sp.ACE) (set 9)", + "sp_cameli", "Camelot (Ace) (sp.ACE) (set 10)", + "sp_camelj", "Camelot (Ace) (sp.ACE) (set 11)", + "sp_camelk", "Camelot (Ace) (sp.ACE) (set 12)", + "sp_camell", "Camelot (Ace) (sp.ACE) (set 13)", + "sp_camelm", "Camelot (Ace) (sp.ACE) (set 14)", + "sp_cameln", "Camelot (Ace) (sp.ACE) (set 15)", + "sp_camelo", "Camelot (Ace) (sp.ACE) (set 16)", + "sp_carry", "Carry On (Pcp) (sp.ACE?) (set 1)", + "sp_carrya", "Carry On (Pcp) (sp.ACE?) (set 2)", + "sp_cbowl", "Cash Bowl (Ace) (sp.ACE) (set 1)", + "sp_cbowla", "Cash Bowl (Ace) (sp.ACE) (set 2)", + "sp_cbowlb", "Cash Bowl (Ace) (sp.ACE) (set 3)", + "sp_cbowlc", "Cash Bowl (Ace) (sp.ACE) (set 4)", + "sp_cbowld", "Cash Bowl (Ace) (sp.ACE) (set 5)", + "sp_cbowle", "Cash Bowl (Ace) (sp.ACE) (set 6)", + "sp_cbowlf", "Cash Bowl (Ace) (sp.ACE) (set 7)", + "sp_cbowlg", "Cash Bowl (Ace) (sp.ACE) (set 8)", + "sp_cbowlh", "Cash Bowl (Ace) (sp.ACE) (set 9)", + "sp_cbowli", "Cash Bowl (Ace) (sp.ACE) (set 10)", + "sp_cbowlj", "Cash Bowl (Ace) (sp.ACE) (set 11)", + "sp_cbowlk", "Cash Bowl (Ace) (sp.ACE) (set 12)", + "sp_cbowll", "Cash Bowl (Ace) (sp.ACE) (set 13)", + "sp_cbowlm", "Cash Bowl (Ace) (sp.ACE) (set 14)", + "sp_cbowln", "Cash Bowl (Ace) (sp.ACE) (set 15)", + "sp_cbowlo", "Cash Bowl (Ace) (sp.ACE) (set 16)", + "sp_cbowlp", "Cash Bowl (Ace) (sp.ACE) (set 17)", + "sp_cbowlq", "Cash Bowl (Ace) (sp.ACE) (set 18)", + "sp_cbowlr", "Cash Bowl (Ace) (sp.ACE) (set 19)", + "sp_cbowls", "Cash Bowl (Ace) (sp.ACE) (set 20)", + "sp_cbowlt", "Cash Bowl (Ace) (sp.ACE) (set 21)", + "sp_cbowlu", "Cash Bowl (Ace) (sp.ACE) (set 22)", + "sp_clbna", "Club National (Ace) (sp.ACE) (set 1)", + "sp_clbnaa", "Club National (Ace) (sp.ACE) (set 2)", + "sp_coder", "Code Red (Ace) (sp.ACE) (set 1)", + "sp_codera", "Code Red (Ace) (sp.ACE) (set 2)", + "sp_coderb", "Code Red (Ace) (sp.ACE) (set 3)", + "sp_coderc", "Code Red (Ace) (sp.ACE) (set 4)", + "sp_coderd", "Code Red (Ace) (sp.ACE) (set 5)", + "sp_codere", "Code Red (Ace) (sp.ACE) (set 6)", + "sp_coderf", "Code Red (Ace) (sp.ACE) (set 7)", + "sp_coderg", "Code Red (Ace) (sp.ACE) (set 8)", + "sp_cpal", "Caesars Palace (Ace) (sp.ACE?)", + "sp_crime", "Crime Watch (Ace) (sp.ACE) (set 1)", + "sp_crimea", "Crime Watch (Ace) (sp.ACE) (set 2)", + "sp_crimeb", "Crime Watch (Ace) (sp.ACE) (set 3)", + "sp_crimec", "Crime Watch (Ace) (sp.ACE) (set 4)", + "sp_crimed", "Crime Watch (Ace) (sp.ACE) (set 5)", + "sp_crimee", "Crime Watch (Ace) (sp.ACE) (set 6)", + "sp_crimef", "Crime Watch (Ace) (sp.ACE) (set 7)", + "sp_crimeg", "Crime Watch (Ace) (sp.ACE) (set 8)", + "sp_crimeh", "Crime Watch (Ace) (sp.ACE) (set 9)", + "sp_criss", "Criss Cross Cash (Ace) (sp.ACE) (set 1)", + "sp_crissa", "Criss Cross Cash (Ace) (sp.ACE) (set 2)", + "sp_crissb", "Criss Cross Cash (Ace) (sp.ACE) (set 3)", + "sp_crissc", "Criss Cross Cash (Ace) (sp.ACE) (set 4)", + "sp_crissd", "Criss Cross Cash (Ace) (sp.ACE) (set 5)", + "sp_crisse", "Criss Cross Cash (Ace) (sp.ACE) (set 6)", + "sp_crissf", "Criss Cross Cash (Ace) (sp.ACE) (set 7)", + "sp_crissg", "Criss Cross Cash (Ace) (sp.ACE) (set 8)", + "sp_crun", "Cash Run (Crystal) (sp.ACE?) (set 1)", + "sp_cruna", "Cash Run (Crystal) (sp.ACE?) (set 2)", + "sp_crunb", "Cash Run (Crystal) (sp.ACE?) (set 3)", + "sp_daytr", "Daytripper (Ace) (sp.ACE) (set 1)", + "sp_daytra", "Daytripper (Ace) (sp.ACE) (set 2)", + "sp_daytrb", "Daytripper (Ace) (sp.ACE) (set 3)", + "sp_daytrc", "Daytripper (Ace) (sp.ACE) (set 4)", + "sp_donky", "Donkey Derby (Ace) (sp.ACE) (set 1)", + "sp_donkya", "Donkey Derby (Ace) (sp.ACE) (set 2)", + "sp_donkyb", "Donkey Derby (Ace) (sp.ACE) (set 3)", + "sp_donkyc", "Donkey Derby (Ace) (sp.ACE) (set 4)", + "sp_donkyd", "Donkey Derby (Ace) (sp.ACE) (set 5)", + "sp_donkye", "Donkey Derby (Ace) (sp.ACE) (set 6)", + "sp_donkyf", "Donkey Derby (Ace) (sp.ACE) (set 7)", + "sp_donkyg", "Donkey Derby (Ace) (sp.ACE) (set 8)", + "sp_dyour", "Double Your Money (Ace) (sp.ACE)", + "sp_emmrd", "Emmerdale (Ace) (sp.ACE) (set 1)", + "sp_emmrda", "Emmerdale (Ace) (sp.ACE) (set 2)", + "sp_emmrdb", "Emmerdale (Ace) (sp.ACE) (set 3)", + "sp_emmrdc", "Emmerdale (Ace) (sp.ACE) (set 4)", + "sp_emmrdd", "Emmerdale (Ace) (sp.ACE) (set 5)", + "sp_emmrde", "Emmerdale (Ace) (sp.ACE) (set 6)", + "sp_emmrdf", "Emmerdale (Ace) (sp.ACE) (set 7)", + "sp_emmrdg", "Emmerdale (Ace) (sp.ACE) (set 8)", + "sp_emmrdh", "Emmerdale (Ace) (sp.ACE) (set 9)", + "sp_emmrdi", "Emmerdale (Ace) (sp.ACE) (set 10)", + "sp_emmrdj", "Emmerdale (Ace) (sp.ACE) (set 11)", + "sp_emmrdk", "Emmerdale (Ace) (sp.ACE) (set 12)", + "sp_emmrdn", "Emmerdale (Ace) (sp.ACE) (set 15)", + "sp_emmrdo", "Emmerdale (Ace) (sp.ACE) (set 16)", + "sp_festi", "Festival (Spanish) (Ace) (sp.ACE)", + "sp_five", "Fiver Fever (Crystal) (sp.ACE?) (set 1)", + "sp_fivea", "Fiver Fever (Crystal) (sp.ACE?) (set 2)", + "sp_front", "Final Frontier (Bwb) (sp.ACE?)", + "sp_ghost", "Ghost Trapper (Ace) (sp.ACE) (set 1)", + "sp_ghosta", "Ghost Trapper (Ace) (sp.ACE) (set 2)", + "sp_ghostb", "Ghost Trapper (Ace) (sp.ACE) (set 3)", + "sp_ghostc", "Ghost Trapper (Ace) (sp.ACE) (set 4)", + "sp_ghostd", "Ghost Trapper (Ace) (sp.ACE) (set 5)", + "sp_ghoste", "Ghost Trapper (Ace) (sp.ACE) (set 6)", + "sp_ghostf", "Ghost Trapper (Ace) (sp.ACE) (set 7)", + "sp_ghostg", "Ghost Trapper (Ace) (sp.ACE) (set 8)", + "sp_ghosth", "Ghost Trapper (Ace) (sp.ACE) (set 9)", + "sp_ghosti", "Ghost Trapper (Ace) (sp.ACE) (set 10)", + "sp_ghostj", "Ghost Trapper (Ace) (sp.ACE) (set 11)", + "sp_ghostk", "Ghost Trapper (Ace) (sp.ACE) (set 12)", + "sp_ghostl", "Ghost Trapper (Ace) (sp.ACE) (set 13)", + "sp_ghostm", "Ghost Trapper (Ace) (sp.ACE) (set 14)", + "sp_ghostn", "Ghost Trapper (Ace) (sp.ACE) (set 15)", + "sp_ghosto", "Ghost Trapper (Ace) (sp.ACE) (set 16)", + "sp_ghostp", "Ghost Trapper (Ace) (sp.ACE) (set 17)", + "sp_ghostq", "Ghost Trapper (Ace) (sp.ACE) (set 18)", + "sp_ghostr", "Ghost Trapper (Ace) (sp.ACE) (set 19)", + "sp_ghosts", "Ghost Trapper (Ace) (sp.ACE) (set 20)", + "sp_globe", "Globe Trotter (Ace) (sp.ACE) (set 1)", + "sp_globea", "Globe Trotter (Ace) (sp.ACE) (set 2)", + "sp_globeb", "Globe Trotter (Ace) (sp.ACE) (set 3)", + "sp_globec", "Globe Trotter (Ace) (sp.ACE) (set 4)", + "sp_globed", "Globe Trotter (Ace) (sp.ACE) (set 5)", + "sp_globee", "Globe Trotter (Ace) (sp.ACE) (set 6)", + "sp_globef", "Globe Trotter (Ace) (sp.ACE) (set 7)", + "sp_globeg", "Globe Trotter (Ace) (sp.ACE) (set 8)", + "sp_gnat", "Grand National (Ace) (sp.ACE) (set 1)", + "sp_gnata", "Grand National (Ace) (sp.ACE) (set 2)", + "sp_gnatb", "Grand National (Ace) (sp.ACE) (set 3)", + "sp_gnatc", "Grand National (Ace) (sp.ACE) (set 4)", + "sp_gnatd", "Grand National (Ace) (sp.ACE) (set 5)", + "sp_gnate", "Grand National (Ace) (sp.ACE) (set 6)", + "sp_gnatf", "Grand National (Ace) (sp.ACE) (set 7)", + "sp_gnatg", "Grand National (Ace) (sp.ACE) (set 8)", + "sp_gnath", "Grand National (Ace) (sp.ACE) (set 9)", + "sp_gnati", "Grand National (Ace) (sp.ACE) (set 10)", + "sp_gnatj", "Grand National (Ace) (sp.ACE) (set 11)", + "sp_gnatk", "Grand National (Ace) (sp.ACE) (set 12)", + "sp_gnatl", "Grand National (Ace) (sp.ACE) (set 13)", + "sp_gnatm", "Grand National (Ace) (sp.ACE) (set 14)", + "sp_gnatn", "Grand National (Ace) (sp.ACE) (set 15)", + "sp_gnato", "Grand National (Ace) (sp.ACE) (set 16)", + "sp_gol", "Gol (Spanish) (Ace) (sp.ACE)", + "sp_golda", "Golden Arrow Club (Ace) (sp.ACE) (set 1)", + "sp_goldaa", "Golden Arrow Club (Ace) (sp.ACE) (set 2)", + "sp_goldm", "Golden Mile (Ace) (sp.ACE) (set 1)", + "sp_goldm0", "Golden Mile (Ace) (sp.ACE) (set 28)", + "sp_goldm1", "Golden Mile (Ace) (sp.ACE) (set 29)", + "sp_goldm2", "Golden Mile (Ace) (sp.ACE) (set 30)", + "sp_goldm3", "Golden Mile (Ace) (sp.ACE) (set 31)", + "sp_goldma", "Golden Mile (Ace) (sp.ACE) (set 2)", + "sp_goldmb", "Golden Mile (Ace) (sp.ACE) (set 3)", + "sp_goldmc", "Golden Mile (Ace) (sp.ACE) (set 4)", + "sp_goldmd", "Golden Mile (Ace) (sp.ACE) (set 5)", + "sp_goldme", "Golden Mile (Ace) (sp.ACE) (set 6)", + "sp_goldmf", "Golden Mile (Ace) (sp.ACE) (set 7)", + "sp_goldmg", "Golden Mile (Ace) (sp.ACE) (set 8)", + "sp_goldmh", "Golden Mile (Ace) (sp.ACE) (set 9)", + "sp_goldmi", "Golden Mile (Ace) (sp.ACE) (set 10)", + "sp_goldmj", "Golden Mile (Ace) (sp.ACE) (set 11)", + "sp_goldmk", "Golden Mile (Ace) (sp.ACE) (set 12)", + "sp_goldml", "Golden Mile (Ace) (sp.ACE) (set 13)", + "sp_goldmm", "Golden Mile (Ace) (sp.ACE) (set 14)", + "sp_goldmn", "Golden Mile (Ace) (sp.ACE) (set 15)", + "sp_goldmo", "Golden Mile (Ace) (sp.ACE) (set 16)", + "sp_goldmp", "Golden Mile (Ace) (sp.ACE) (set 17)", + "sp_goldmq", "Golden Mile (Ace) (sp.ACE) (set 18)", + "sp_goldmr", "Golden Mile (Ace) (sp.ACE) (set 19)", + "sp_goldms", "Golden Mile (Ace) (sp.ACE) (set 20)", + "sp_goldmt", "Golden Mile (Ace) (sp.ACE) (set 21)", + "sp_goldmu", "Golden Mile (Ace) (sp.ACE) (set 22)", + "sp_goldmv", "Golden Mile (Ace) (sp.ACE) (set 23)", + "sp_goldmw", "Golden Mile (Ace) (sp.ACE) (set 24)", + "sp_goldmx", "Golden Mile (Ace) (sp.ACE) (set 25)", + "sp_goldmy", "Golden Mile (Ace) (sp.ACE) (set 26)", + "sp_goldmz", "Golden Mile (Ace) (sp.ACE) (set 27)", + "sp_golds", "Golden Streak (Ace) (sp.ACE) (set 1)", + "sp_goldsa", "Golden Streak (Ace) (sp.ACE) (set 2)", + "sp_goldsb", "Golden Streak (Ace) (sp.ACE) (set 3)", + "sp_goldsc", "Golden Streak (Ace) (sp.ACE) (set 4)", + "sp_goldsd", "Golden Streak (Ace) (sp.ACE) (set 5)", + "sp_goldse", "Golden Streak (Ace) (sp.ACE) (set 6)", + "sp_goldsf", "Golden Streak (Ace) (sp.ACE) (set 7)", + "sp_goldsg", "Golden Streak (Ace) (sp.ACE) (set 8)", + "sp_goldsh", "Golden Streak (Ace) (sp.ACE) (set 9)", + "sp_goldt", "Golden Streak (Golden Touch) (Ace) (sp.ACE)", + "sp_gprix", "Grand Prix (Ace) (sp.ACE) (set 1)", + "sp_gprixa", "Grand Prix (Ace) (sp.ACE) (set 2)", + "sp_gprixb", "Grand Prix (Ace) (sp.ACE) (set 3)", + "sp_gprixc", "Grand Prix (Ace) (sp.ACE) (set 4)", + "sp_gprixd", "Grand Prix (Ace) (sp.ACE) (set 5)", + "sp_gprixe", "Grand Prix (Ace) (sp.ACE) (set 6)", + "sp_gprixf", "Grand Prix (Ace) (sp.ACE) (set 7)", + "sp_gprixg", "Grand Prix (Ace) (sp.ACE) (set 8)", + "sp_gprixh", "Grand Prix (Ace) (sp.ACE) (set 9)", + "sp_here", "Here We Go (Ace) (sp.ACE) (set 1)", + "sp_herea", "Here We Go (Ace) (sp.ACE) (set 2)", + "sp_hereb", "Here We Go (Ace) (sp.ACE) (set 3)", + "sp_herec", "Here We Go (Ace) (sp.ACE) (set 4)", + "sp_hered", "Here We Go (Ace) (sp.ACE) (set 5)", + "sp_heree", "Here We Go (Ace) (sp.ACE) (set 6)", + "sp_heref", "Here We Go (Ace) (sp.ACE) (set 7)", + "sp_hereg", "Here We Go (Ace) (sp.ACE) (set 8)", + "sp_hideh", "Hi De Hi (Ace) (sp.ACE) (set 1)", + "sp_hideha", "Hi De Hi (Ace) (sp.ACE) (set 2)", + "sp_hidehb", "Hi De Hi (Ace) (sp.ACE) (set 3)", + "sp_hidehc", "Hi De Hi (Ace) (sp.ACE) (set 4)", + "sp_hidehd", "Hi De Hi (Ace) (sp.ACE) (set 5)", + "sp_hidehe", "Hi De Hi (Ace) (sp.ACE) (set 6)", + "sp_hidehf", "Hi De Hi (Ace) (sp.ACE) (set 7)", + "sp_hidehg", "Hi De Hi (Ace) (sp.ACE) (set 8)", + "sp_hidehh", "Hi De Hi (Ace) (sp.ACE) (set 9)", + "sp_hidehi", "Hi De Hi (Ace) (sp.ACE) (set 10)", + "sp_hidehj", "Hi De Hi (Ace) (sp.ACE) (set 11)", + "sp_hidehk", "Hi De Hi (Ace) (sp.ACE) (set 12)", + "sp_hidehl", "Hi De Hi (Ace) (sp.ACE) (set 13)", + "sp_hidehm", "Hi De Hi (Ace) (sp.ACE) (set 14)", + "sp_hidehn", "Hi De Hi (Ace) (sp.ACE) (set 15)", + "sp_hideho", "Hi De Hi (Ace) (sp.ACE) (set 16)", + "sp_hidehp", "Hi De Hi (Ace) (sp.ACE) (set 17)", + "sp_hifly", "Hi Flyer (Ace) (sp.ACE) (set 1)", + "sp_hiflya", "Hi Flyer (Ace) (sp.ACE) (set 2)", + "sp_hiflyb", "Hi Flyer (Ace) (sp.ACE) (set 3)", + "sp_hiflyc", "Hi Flyer (Ace) (sp.ACE) (set 4)", + "sp_hiflyd", "Hi Flyer (Ace) (sp.ACE) (set 5)", + "sp_hiflye", "Hi Flyer (Ace) (sp.ACE) (set 6)", + "sp_hiflyf", "Hi Flyer (Ace) (sp.ACE) (set 7)", + "sp_hiflyg", "Hi Flyer (Ace) (sp.ACE) (set 8)", + "sp_hiflyh", "Hi Flyer (Ace) (sp.ACE) (set 9)", + "sp_hiflyi", "Hi Flyer (Ace) (sp.ACE) (set 10)", + "sp_hiflyj", "Hi Flyer (Ace) (sp.ACE) (set 11)", + "sp_hiflyk", "Hi Flyer (Ace) (sp.ACE) (set 12)", + "sp_hiflyl", "Hi Flyer (Ace) (sp.ACE) (set 13)", + "sp_hiflym", "Hi Flyer (Ace) (sp.ACE) (set 14)", + "sp_hiflyn", "Hi Flyer (Ace) (sp.ACE) (set 15)", + "sp_hiflyo", "Hi Flyer (Ace) (sp.ACE) (set 16)", + "sp_hiflyp", "Hi Flyer (Ace) (sp.ACE) (set 17)", + "sp_holid", "Holiday Club (Ace) (sp.ACE) (set 1)", + "sp_holida", "Holiday Club (Ace) (sp.ACE) (set 2)", + "sp_juras", "Jurassic Trail (Ace) (sp.ACE)", + "sp_lotto", "Lotto (Spanish) (Ace) (sp.ACE)", + "sp_magmo", "Magic Money (Ace) (sp.ACE) (set 1)", + "sp_magmoa", "Magic Money (Ace) (sp.ACE) (set 2)", + "sp_magmob", "Magic Money (Ace) (sp.ACE) (set 3)", + "sp_magmoc", "Magic Money (Ace) (sp.ACE) (set 4)", + "sp_magmod", "Magic Money (Ace) (sp.ACE) (set 5)", + "sp_megmo", "Mega Money (Ace) (sp.ACE) (set 1)", + "sp_megmoa", "Mega Money (Ace) (sp.ACE) (set 2)", + "sp_megmob", "Mega Money (Ace) (sp.ACE) (set 3)", + "sp_megmoc", "Mega Money (Ace) (sp.ACE) (set 4)", + "sp_megmod", "Mega Money (Ace) (sp.ACE) (set 5)", + "sp_megmoe", "Mega Money (Ace) (sp.ACE) (set 6)", + "sp_megmof", "Mega Money (Ace) (sp.ACE) (set 7)", + "sp_megmog", "Mega Money (Ace) (sp.ACE) (set 8)", + "sp_monma", "Money Magic (Ace) (sp.ACE) (set 1)", + "sp_monmaa", "Money Magic (Ace) (sp.ACE) (set 2)", + "sp_monmab", "Money Magic (Ace) (sp.ACE) (set 3)", + "sp_monmac", "Money Magic (Ace) (sp.ACE) (set 4)", + "sp_monmad", "Money Magic (Ace) (sp.ACE) (set 5)", + "sp_monmo", "Money Mountain (Ace) (sp.ACE) (set 1)", + "sp_monmoa", "Money Mountain (Ace) (sp.ACE) (set 2)", + "sp_monmob", "Money Mountain (Ace) (sp.ACE) (set 3)", + "sp_monmoc", "Money Mountain (Ace) (sp.ACE) (set 4)", + "sp_monmod", "Money Mountain (Ace) (sp.ACE) (set 5)", + "sp_monmoe", "Money Mountain (Ace) (sp.ACE) (set 6)", + "sp_monmof", "Money Mountain (Ace) (sp.ACE) (set 7)", + "sp_monmog", "Money Mountain (Ace) (sp.ACE) (set 8)", + "sp_nudex", "Nudge Explosion (Ace) (sp.ACE) (set 1)", + "sp_nudexa", "Nudge Explosion (Ace) (sp.ACE) (set 2)", + "sp_onbox", "On The Box (Ace) (sp.ACE) (set 1)", + "sp_onboxa", "On The Box (Ace) (sp.ACE) (set 2)", + "sp_onboxb", "On The Box (Ace) (sp.ACE) (set 3)", + "sp_onboxc", "On The Box (Ace) (sp.ACE) (set 4)", + "sp_onboxd", "On The Box (Ace) (sp.ACE) (set 5)", + "sp_onboxe", "On The Box (Ace) (sp.ACE) (set 6)", + "sp_onboxf", "On The Box (Ace) (sp.ACE) (set 7)", + "sp_onboxg", "On The Box (Ace) (sp.ACE) (set 8)", + "sp_onboxh", "On The Box (Ace) (sp.ACE) (set 9)", + "sp_onboxi", "On The Box (Ace) (sp.ACE) (set 10)", + "sp_onboxj", "On The Box (Ace) (sp.ACE) (set 11)", + "sp_onboxk", "On The Box (Ace) (sp.ACE) (set 12)", + "sp_onboxl", "On The Box (Ace) (sp.ACE) (set 13)", + "sp_onboxm", "On The Box (Ace) (sp.ACE) (set 14)", + "sp_onboxn", "On The Box (Ace) (sp.ACE) (set 15)", + "sp_openb", "Open The Box (Ace) (sp.ACE) (set 1)", + "sp_openba", "Open The Box (Ace) (sp.ACE) (set 2)", + "sp_openbb", "Open The Box (Ace) (sp.ACE) (set 3)", + "sp_openbc", "Open The Box (Ace) (sp.ACE) (set 4)", + "sp_openbd", "Open The Box (Ace) (sp.ACE) (set 5)", + "sp_openbe", "Open The Box (Ace) (sp.ACE) (set 6)", + "sp_openbf", "Open The Box (Ace) (sp.ACE) (set 7)", + "sp_openbg", "Open The Box (Ace) (sp.ACE) (set 8)", + "sp_openbh", "Open The Box (Ace) (sp.ACE) (set 9)", + "sp_openbi", "Open The Box (Ace) (sp.ACE) (set 10)", + "sp_payrs", "Payrise (Ace) (sp.ACE) (set 1)", + "sp_payrsa", "Payrise (Ace) (sp.ACE) (set 2)", + "sp_payrsb", "Payrise (Ace) (sp.ACE) (set 3)", + "sp_payrsc", "Payrise (Ace) (sp.ACE) (set 4)", + "sp_payrsd", "Payrise (Ace) (sp.ACE) (set 5)", + "sp_payrse", "Payrise (Ace) (sp.ACE) (set 6)", + "sp_payrsf", "Payrise (Ace) (sp.ACE) (set 7)", + "sp_payrsg", "Payrise (Ace) (sp.ACE) (set 8)", + "sp_payrsh", "Payrise (Ace) (sp.ACE) (set 9)", + "sp_piste", "On The Piste (Ace) (sp.ACE) (set 1)", + "sp_pistea", "On The Piste (Ace) (sp.ACE) (set 2)", + "sp_pisteb", "On The Piste (Ace) (sp.ACE) (set 3)", + "sp_pistec", "On The Piste (Ace) (sp.ACE) (set 4)", + "sp_pisted", "On The Piste (Ace) (sp.ACE) (set 5)", + "sp_pistee", "On The Piste (Ace) (sp.ACE) (set 6)", + "sp_pistef", "On The Piste (Ace) (sp.ACE) (set 7)", + "sp_pisteg", "On The Piste (Ace) (sp.ACE) (set 8)", + "sp_pisteh", "On The Piste (Ace) (sp.ACE) (set 9)", + "sp_pistei", "On The Piste (Ace) (sp.ACE) (set 10)", + "sp_pistej", "On The Piste (Ace) (sp.ACE) (set 11)", + "sp_pistek", "On The Piste (Ace) (sp.ACE) (set 12)", + "sp_pistel", "On The Piste (Ace) (sp.ACE) (set 13)", + "sp_pistem", "On The Piste (Ace) (sp.ACE) (set 14)", + "sp_pisten", "On The Piste (Ace) (sp.ACE) (set 15)", + "sp_pisteo", "On The Piste (Ace) (sp.ACE) (set 16)", + "sp_pistep", "On The Piste (Ace) (sp.ACE) (set 17)", + "sp_playa", "Play It Again (Ace) (sp.ACE) (set 1)", + "sp_playaa", "Play It Again (Ace) (sp.ACE) (set 2)", + "sp_playab", "Play It Again (Ace) (sp.ACE) (set 3)", + "sp_playac", "Play It Again (Ace) (sp.ACE) (set 4)", + "sp_playad", "Play It Again (Ace) (sp.ACE) (set 5)", + "sp_playae", "Play It Again (Ace) (sp.ACE) (set 6)", + "sp_playaf", "Play It Again (Ace) (sp.ACE) (set 7)", + "sp_playag", "Play It Again (Ace) (sp.ACE) (set 8)", + "sp_playah", "Play It Again (Ace) (sp.ACE) (set 9)", + "sp_playai", "Play It Again (Ace) (sp.ACE) (set 10)", + "sp_pound", "Pound For Pound (Ace) (sp.ACE) (set 1)", + "sp_pounda", "Pound For Pound (Ace) (sp.ACE) (set 2)", + "sp_poundb", "Pound For Pound (Ace) (sp.ACE) (set 3)", + "sp_poundbwb", "Pound For Pound (Ace/Bwb) (sp.ACE) (set 1)", + "sp_poundbwba", "Pound For Pound (Ace/Bwb) (sp.ACE) (set 2)", + "sp_poundbwbb", "Pound For Pound (Ace/Bwb) (sp.ACE) (set 3)", + "sp_poundbwbc", "Pound For Pound (Ace/Bwb) (sp.ACE) (set 4)", + "sp_poundbwbd", "Pound For Pound (Ace/Bwb) (sp.ACE) (set 5)", + "sp_poundbwbe", "Pound For Pound (Ace/Bwb) (sp.ACE) (set 6)", + "sp_poundbwbf", "Pound For Pound (Ace/Bwb) (sp.ACE) (set 7)", + "sp_poundbwbg", "Pound For Pound (Ace/Bwb) (sp.ACE) (set 8)", + "sp_poundc", "Pound For Pound (Ace) (sp.ACE) (set 4)", + "sp_poundd", "Pound For Pound (Ace) (sp.ACE) (set 5)", + "sp_pounde", "Pound For Pound (Ace) (sp.ACE) (set 6)", + "sp_poundf", "Pound For Pound (Ace) (sp.ACE) (set 7)", + "sp_poundg", "Pound For Pound (Ace) (sp.ACE) (set 8)", + "sp_poundh", "Pound For Pound (Ace) (sp.ACE) (set 9)", + "sp_poundi", "Pound For Pound (Ace) (sp.ACE) (set 10)", + "sp_poundj", "Pound For Pound (Ace) (sp.ACE) (set 11)", + "sp_poundk", "Pound For Pound (Ace) (sp.ACE) (set 12)", + "sp_poundl", "Pound For Pound (Ace) (sp.ACE) (set 13)", + "sp_poundm", "Pound For Pound (Ace) (sp.ACE) (set 14)", + "sp_poundn", "Pound For Pound (Ace) (sp.ACE) (set 15)", + "sp_poundo", "Pound For Pound (Ace) (sp.ACE) (set 16)", + "sp_poundp", "Pound For Pound (Ace) (sp.ACE) (set 17)", + "sp_przna", "Prize National (Ace) (sp.ACE) (set 1)", + "sp_prznaa", "Prize National (Ace) (sp.ACE) (set 2)", + "sp_prznab", "Prize National (Ace) (sp.ACE) (set 3)", + "sp_prznac", "Prize National (Ace) (sp.ACE) (set 4)", + "sp_prznad", "Prize National (Ace) (sp.ACE) (set 5)", + "sp_prznae", "Prize National (Ace) (sp.ACE) (set 6)", + "sp_prznaf", "Prize National (Ace) (sp.ACE) (set 7)", + "sp_prznag", "Prize National (Ace) (sp.ACE) (set 8)", + "sp_road", "Road To Hell (Ace) (sp.ACE)", + "sp_roof", "Thru' The Roof (Ace) (sp.ACE) (set 1)", + "sp_roofa", "Thru' The Roof (Ace) (sp.ACE) (set 2)", + "sp_skylm", "Sky's The Limit Club, The (Ace) (sp.ACE) (set 1)", + "sp_skylma", "Sky's The Limit Club, The (Ace) (sp.ACE) (set 2)", + "sp_spell", "Spellbound (Ace) (sp.ACE) (set 1)", + "sp_spella", "Spellbound (Ace) (sp.ACE) (set 2)", + "sp_spellb", "Spellbound (Ace) (sp.ACE) (set 3)", + "sp_spellc", "Spellbound (Ace) (sp.ACE) (set 4)", + "sp_spelld", "Spellbound (Ace) (sp.ACE) (set 5)", + "sp_spelle", "Spellbound (Ace) (sp.ACE) (set 6)", + "sp_spellf", "Spellbound (Ace) (sp.ACE) (set 7)", + "sp_spellg", "Spellbound (Ace) (sp.ACE) (set 8)", + "sp_spelli", "Spellbound (Ace) (sp.ACE) (set 10)", + "sp_spellj", "Spellbound (Ace) (sp.ACE) (set 11)", + "sp_swop", "Swop Shop (Ace) (sp.ACE) (set 1)", + "sp_swopa", "Swop Shop (Ace) (sp.ACE) (set 2)", + "sp_swopb", "Swop Shop (Ace) (sp.ACE) (set 3)", + "sp_swopc", "Swop Shop (Ace) (sp.ACE) (set 4)", + "sp_swopd", "Swop Shop (Ace) (sp.ACE) (set 5)", + "sp_swope", "Swop Shop (Ace) (sp.ACE) (set 6)", + "sp_swopf", "Swop Shop (Ace) (sp.ACE) (set 7)", + "sp_swopg", "Swop Shop (Ace) (sp.ACE) (set 8)", + "sp_timem", "Time Machine (Ace) (sp.ACE) (set 1)", + "sp_timema", "Time Machine (Ace) (sp.ACE) (set 2)", + "sp_timemb", "Time Machine (Ace) (sp.ACE) (set 3)", + "sp_timemc", "Time Machine (Ace) (sp.ACE) (set 4)", + "sp_timemd", "Time Machine (Ace) (sp.ACE) (set 5)", + "sp_timeme", "Time Machine (Ace) (sp.ACE) (set 6)", + "sp_timemf", "Time Machine (Ace) (sp.ACE) (set 7)", + "sp_timemg", "Time Machine (Ace) (sp.ACE) (set 8)", + "sp_timemh", "Time Machine (Ace) (sp.ACE) (set 9)", + "sp_timemi", "Time Machine (Ace) (sp.ACE) (set 10)", + "sp_timemj", "Time Machine (Ace) (sp.ACE) (set 11)", + "sp_timemk", "Time Machine (Ace) (sp.ACE) (set 12)", + "sp_tkpik", "Take Your Pick (Ace) (sp.ACE) (set 1)", + "sp_tkpika", "Take Your Pick (Ace) (sp.ACE) (set 2)", + "sp_tkpikb", "Take Your Pick (Ace) (sp.ACE) (set 3)", + "sp_tkpikc", "Take Your Pick (Ace) (sp.ACE) (set 4)", + "sp_tkpikd", "Take Your Pick (Ace) (sp.ACE) (set 5)", + "sp_tkpike", "Take Your Pick (Ace) (sp.ACE) (set 6)", + "sp_tkpikf", "Take Your Pick (Ace) (sp.ACE) (set 7)", + "sp_tz", "Twilight Zone (Ace) (sp.ACE) (set 1)", + "sp_tza", "Twilight Zone (Ace) (sp.ACE) (set 2)", + "sp_tzb", "Twilight Zone (Ace) (sp.ACE) (set 3)", + "sp_tzbwb", "Twilight Zone (Ace/Bwb) (sp.ACE)", + "sp_tzc", "Twilight Zone (Ace) (sp.ACE) (set 4)", + "sp_tzd", "Twilight Zone (Ace) (sp.ACE) (set 5)", + "sp_tze", "Twilight Zone (Ace) (sp.ACE) (set 6)", + "sp_tzf", "Twilight Zone (Ace) (sp.ACE) (set 7)", + "sp_tzfe", "Twilight Zone - Further Encounters (Ace) (sp.ACE) (set 1)", + "sp_tzfea", "Twilight Zone - Further Encounters (Ace) (sp.ACE) (set 2)", + "sp_tzfeb", "Twilight Zone - Further Encounters (Ace) (sp.ACE) (set 3)", + "sp_tzfec", "Twilight Zone - Further Encounters (Ace) (sp.ACE) (set 4)", + "sp_tzfed", "Twilight Zone - Further Encounters (Ace) (sp.ACE) (set 5)", + "sp_tzfee", "Twilight Zone - Further Encounters (Ace) (sp.ACE) (set 6)", + "sp_tzfef", "Twilight Zone - Further Encounters (Ace) (sp.ACE) (set 7)", + "sp_tzfeg", "Twilight Zone - Further Encounters (Ace) (sp.ACE) (set 8)", + "sp_tzfeh", "Twilight Zone - Further Encounters (Ace) (sp.ACE) (set 9)", + "sp_tzfei", "Twilight Zone - Further Encounters (Ace) (sp.ACE) (set 10)", + "sp_tzfej", "Twilight Zone - Further Encounters (Ace) (sp.ACE) (set 11)", + "sp_tzfek", "Twilight Zone - Further Encounters (Ace) (sp.ACE) (set 12)", + "sp_tzfel", "Twilight Zone - Further Encounters (Ace) (sp.ACE) (set 13)", + "sp_tzfem", "Twilight Zone - Further Encounters (Ace) (sp.ACE) (set 14)", + "sp_tzfen", "Twilight Zone - Further Encounters (Ace) (sp.ACE) (set 15)", + "sp_tzfeo", "Twilight Zone - Further Encounters (Ace) (sp.ACE) (set 16)", + "sp_tzfep", "Twilight Zone - Further Encounters (Ace) (sp.ACE) (set 17)", + "sp_tzfeq", "Twilight Zone - Further Encounters (Ace) (sp.ACE) (set 18)", + "sp_tzfer", "Twilight Zone - Further Encounters (Ace) (sp.ACE) (set 19)", + "sp_tzfes", "Twilight Zone - Further Encounters (Ace) (sp.ACE) (set 20)", + "sp_tzfet", "Twilight Zone - Further Encounters (Ace) (sp.ACE) (set 21)", + "sp_tzfeu", "Twilight Zone - Further Encounters (Ace) (sp.ACE) (set 22)", + "sp_tzg", "Twilight Zone (Ace) (sp.ACE) (set 8)", + "sp_tzh", "Twilight Zone (Ace) (sp.ACE) (set 9)", + "sp_woolp", "Woolpack (Ace) (sp.ACE) (set 1)", + "sp_woolpa", "Woolpack (Ace) (sp.ACE) (set 2)", + "sp_woolpb", "Woolpack (Ace) (sp.ACE) (set 3)", + "sp_woolpc", "Woolpack (Ace) (sp.ACE) (set 4)", + "sp_woolpd", "Woolpack (Ace) (sp.ACE) (set 5)", + "sp_woolpe", "Woolpack (Ace) (sp.ACE) (set 6)", + "sp_woolpf", "Woolpack (Ace) (sp.ACE) (set 7)", + "sp_woolpg", "Woolpack (Ace) (sp.ACE) (set 8)", + "sp_woolph", "Woolpack (Ace) (sp.ACE) (set 9)", + "sp_woolpi", "Woolpack (Ace) (sp.ACE) (set 10)", + "sp_woolpj", "Woolpack (Ace) (sp.ACE) (set 11)", + "sp_woolpk", "Woolpack (Ace) (sp.ACE) (set 12)", + "sp_woolpl", "Woolpack (Ace) (sp.ACE) (set 13)", + "sp_woolpm", "Woolpack (Ace) (sp.ACE) (set 14)", + "sp_woolpn", "Woolpack (Ace) (sp.ACE) (set 15)", + "sp_woolpo", "Woolpack (Ace) (sp.ACE) (set 16)", + "sp_zigzg", "Zig Zag (Ace) (sp.ACE) (set 1)", + "sp_zigzga", "Zig Zag (Ace) (sp.ACE) (set 2)", + "sp_zigzgb", "Zig Zag (Ace) (sp.ACE) (set 3)", + "sp_zigzgc", "Zig Zag (Ace) (sp.ACE) (set 4)", + "sp_zigzgd", "Zig Zag (Ace) (sp.ACE) (set 5)", + "sp_zigzge", "Zig Zag (Ace) (sp.ACE) (set 6)", + "sp_zigzgf", "Zig Zag (Ace) (sp.ACE) (set 7)", + "sp_zigzgg", "Zig Zag (Ace) (sp.ACE) (set 8)", + "sp_zigzgh", "Zig Zag (Ace) (sp.ACE) (set 9)", + "sp_zigzgi", "Zig Zag (Ace) (sp.ACE) (set 10)", + "sp_zigzgj", "Zig Zag (Ace) (sp.ACE) (set 11)", + "sp_zigzgk", "Zig Zag (Ace) (sp.ACE) (set 12)", + "sp_zigzgl", "Zig Zag (Ace) (sp.ACE) (set 13)", + "sp_zigzgm", "Zig Zag (Ace) (sp.ACE) (set 14)", + "spacbat2", "Space Battle (bootleg set 2)", + "spacbatt", "Space Battle (bootleg set 1)", + "spacbeam", "Space Beam", + "spacduel", "Space Duel", + "spacea91", "Space Ace (DL2 Conversion) (US v1.3)", + "spacea91_13e", "Space Ace (DL2 Conversion) (Euro v1.3)", + "spaceace", "Space Ace (US Rev. A3)", + "spaceacea", "Space Ace (US Rev. A)", + "spaceacea2", "Space Ace (US Rev. A2)", + "spaceaceeuro", "Space Ace (European)", + "spaceat2", "Space Attack II (bootleg of Super Invaders)", + "spaceatt", "Space Attack (bootleg of Space Invaders)", + "spacebrd", "Space Bird (bootleg)", + "spacecho", "Space Echo (set 1)", + "spacecho2", "Space Echo (set 2)", + "spacecom", "Space Combat (bootleg of Space Invaders)", + "spacecr", "Space Cruiser", + "spacecty", "Space City", + "spacedem", "Space Demon", + "spacedx", "Space Invaders DX (US, v2.1)", + "spacedxj", "Space Invaders DX (Japan, v2.1)", + "spacedxo", "Space Invaders DX (Japan, v2.0)", + "spacefb", "Space Firebird (rev. 04-u)", + "spacefba", "Space Firebird (rev. 02-a)", + "spacefbb", "Space Firebird (bootleg)", + "spacefbe", "Space Firebird (rev. 03-e set 1)", + "spacefbe2", "Space Firebird (rev. 03-e set 2)", + "spacefbg", "Space Firebird (Gremlin)", + "spacefev", "Space Fever (New Ver.)", + "spacefevo", "Space Fever (Old Ver.)", + "spacefevo2", "Space Fever (Older Ver.)", + "spacefrt", "Space Fortress (CVS)", + "spaceftr", "Space Fortress (Zaccaria)", + "spaceg", "Space Guerrilla", + "spacegun", "Space Gun (World)", + "spacegunj", "Space Gun (Japan)", + "spacegunu", "Space Gun (US)", + "spacehaw", "Space Hawks", + "spaceint", "Space Intruder", + "spaceintj", "Space Intruder (Japan)", + "spaceinv", "Space Invaders", + "spacejam", "Space Jam", + "spacejmf", "Space Jam (France)", + "spacejmg", "Space Jam (Germany)", + "spacejmi", "Space Jam (Italy)", + "spacelnc", "Space Launcher", + "spacempr", "Space Empire (bootleg)", + "spaceod", "Space Odyssey (version 2)", + "spaceod2", "Space Odyssey (version 1)", + "spaceph", "Space Phantoms (bootleg of Ozma Wars)", + "spacepir", "Space Pirates v2.2", + "spaceplt", "Space Pilot", + "spacerng", "Space Ranger (bootleg of Space Invaders)", + "spaceshp", "Space Ship", + "spaceskr", "Space Seeker", + "spacetrk", "Space Trek (upright)", + "spacetrkc", "Space Trek (cocktail)", + "spacewar", "Space Wars", + "spacewin", "Scacco Matto / Space Win", + "spacewr3", "Space War Part 3", + "spacezap", "Space Zap", + "spacfury", "Space Fury (revision C)", + "spacfurya", "Space Fury (revision A)", + "spacfuryb", "Space Fury (revision B)", + "spacmiss", "Space Missile - Space Fighting Game", + "spacwalk", "Space Walk", + "spain82", "Spain '82", + "spang", "Super Pang (World 900914)", + "spangbl", "Super Pang (World 900914, bootleg)", + "spangj", "Super Pang (Japan 901023)", + "sparkman", "Spark Man (v2.0, set 1)", + "sparkmana", "Spark Man (v2.0, set 2)", + "sparkz", "Sparkz (prototype)", + "spartanx", "Spartan X (Japan)", + "spatter", "Spatter", + "spawn", "Spawn In the Demon's Hand (JPN, USA, EUR, ASI, AUS) (Rev B)", + "spbactn", "Super Pinball Action (US)", + "spbactnj", "Super Pinball Action (Japan)", + "spbactnp", "Super Pinball Action (prototype)", + "spcdrag", "Space Dragon (Moon Cresta bootleg, set 1)", + "spcdraga", "Space Dragon (Moon Cresta bootleg, set 2)", + "spceking", "Space King", + "spcenctr", "Space Encounters", + "spcewarl", "Space War (Leijac Corporation)", + "spcewars", "Space War (Sanritsu)", + "spcforc2", "Space Force (set 2)", + "spcforce", "Space Force (set 1)", + "spcfrcii", "Special Forces II", + "spcgambl", "Space Gambler", + "spcinv95", "Space Invaders '95: The Attack Of Lunar Loonies (Ver 2.5O 1995/06/14)", + "spcinv95u", "Space Invaders '95: The Attack Of Lunar Loonies (Ver 2.5A 1995/06/14)", + "spcinvdj", "Space Invaders DX (Ver 2.6J 1994/09/14) (F3 Version)", + "spcking2", "Space King 2", + "spclaser", "Space Laser", + "spclforc", "Special Forces", + "spclords", "Space Lords (rev C)", + "spclordsa", "Space Lords (rev A)", + "spclordsb", "Space Lords (rev B)", + "spclordsg", "Space Lords (rev A, German)", + "spcpostn", "Space Position (Japan)", + "spcrider", "Space Riders", + "spctbird", "Space Thunderbird", + "spdball", "Speed Ball - Contest at Neonworld (prototype)", + "spdcoin", "Speed Coin (prototype)", + "spdodgeb", "Super Dodge Ball (US)", + "speakesy", "Speakeasy", + "speakesy4p", "Speakeasy 4 Player", + "speakres", "Speak & Rescue", + "speakresb", "Speak & Rescue (bootleg)", + "spec2k", "Spectrum 2000 (Euro)", + "spec2kv", "Spectrum 2000 (vertical)", + "specforc", "Special Force", + "specfrce", "Special Forces Elite Training", + "spectar", "Spectar (revision 3)", + "spectar1", "Spectar (revision 1?)", + "spectra", "Spectra IV", + "spectrm", "Spectrum", + "spectrm4", "Spectrum (ver 4)", + "speedatk", "Speed Attack! (Japan)", + "speedbal", "Speed Ball", + "speeddrp", "Speed Drop (Ver. 1.06)", + "speeddrv", "Speed Driver", + "speedfrk", "Speed Freak", + "speedrcr", "Speed Racer", + "speedspn", "Speed Spin", + "speedup", "Speed Up (Version 1.20)", + "speglsht", "Super Eagle Shot", + "spellbnd", "Spellbound", + "spelunk2", "Spelunker II", + "spelunkr", "Spelunker", + "spelunkrj", "Spelunker (Japan)", + "spf2t", "Super Puzzle Fighter II Turbo (USA 960620)", + "spf2ta", "Super Puzzle Fighter II Turbo (Asia 960529)", + "spf2td", "Super Puzzle Fighter II Turbo (USA 960620 Phoenix Edition) (bootleg)", + "spf2th", "Super Puzzle Fighter II Turbo (Hispanic 960531)", + "spf2xj", "Super Puzzle Fighter II X (Japan 960531)", + "spf2xjd", "Super Puzzle Fighter II X (Japan 960531 Phoenix Edition) (bootleg)", + "spfghmk2", "Space Fighter Mark II (set 1)", + "spfghmk22", "Space Fighter Mark II (set 2)", + "spicaadv", "Spica Adventure (v2.03J)", + "spiceup", "Spice It Up (Konami Endeavour)", + "spidermn", "The Amazing Spider-Man", + "spiders", "Spiders (set 1)", + "spiders2", "Spiders (set 2)", + "spiders3", "Spiders (set 3)", + "spidman", "Spider-Man: The Videogame (World)", + "spidmanj", "Spider-Man: The Videogame (Japan)", + "spidmanu", "Spider-Man: The Videogame (US)", + "spielbud", "Spiel Bude (German)", + "spiero", "Super Pierrot (Japan)", + "spikeofe", "Spikeout Final Edition", + "spikeout", "Spikeout (Revision C)", + "spiker", "Spiker", + "spiker2", "Spiker (5/5/86)", + "spiker3", "Spiker (6/9/86)", + "spikes91", "1991 Spikes (Italian bootleg, set 1)", + "spikes91b", "1991 Spikes (Italian bootleg, set 2)", + "spinkick", "Hec's Spinkick", + "spinlbrk", "Spinal Breakers (World)", + "spinlbrkj", "Spinal Breakers (Japan)", + "spinlbrku", "Spinal Breakers (US)", + "spinmast", "Spin Master / Miracle Adventure", + "spinner", "Spinner", + "spirit", "Spirit", + "spitboss", "Super Pit Boss (9221-02A)", + "spk115it", "Super Poker (v115IT)", + "spk116it", "Super Poker (v116IT)", + "spkrbtl", "Spikers Battle (GDS-0005)", + "spkrform", "Super Poker (v100xD03) / Formosa", + "splash", "Splash! (Ver. 1.2 World)", + "splash10", "Splash! (Ver. 1.0 World)", + "splat", "Splat!", + "splatter", "Splatter House (World, new version (SH3))", + "splatter2", "Splatter House (World, old version (SH2))", + "splatterj", "Splatter House (Japan, SH1)", + "splitsec", "Split Second", + "splmastr", "Spell Master (Russia) (Atronic)", + "splndrbt", "Splendor Blast", + "spnchout", "Super Punch-Out!!", + "spnchoutj", "Super Punch-Out!! (Japan)", + "spooky", "Spooky Night 2nd Edition (Version 2.0.4)", + "spookyi", "Spooky (Italian speech)", + "spookyo", "Spooky Night (Version 1.0.1)", + "spookyp", "Spooky", + "spool3", "Super Pool III (English)", + "spool3i", "Super Pool III (I-Vics)", + "spool99", "Super Pool 99 (Version 0.36)", + "spool99a", "Super Pool 99 (Version 0.33)", + "spool99b", "Super Pool 99 (Version 0.31)", + "spool99c", "Super Pool 99 (Version 0.26)", + "spotty", "Spotty (Ver. 2.0.2)", + "sprbreak", "Spring Break", + "sprbreaks", "Spring Break (single ball game)", + "sprcros2", "Super Cross II (Japan, set 1)", + "sprcros2a", "Super Cross II (Japan, set 2)", + "sprglbpg", "Super Glob (Pac-Man hardware) (German bootleg)", + "sprglobp", "Super Glob (Pac-Man hardware)", + "springbd", "Springboard (bootleg of Circus)", + "springer", "Springer", + "sprint1", "Sprint 1", + "sprint2", "Sprint 2 (set 1)", + "sprint2a", "Sprint 2 (set 2)", + "sprint2h", "Sprint 2 (color kit, Italy)", + "sprint4", "Sprint 4 (set 1)", + "sprint4a", "Sprint 4 (set 2)", + "sprint8", "Sprint 8", + "sprint8a", "Sprint 8 (play tag & chase)", + "sprk_090", "South Park (0.90)", + "sprk_096", "South Park (0.96)", + "sprk_103", "South Park (1.03)", + "sprtauth", "Sports Authority", + "sprtjam", "Sports Jam (GDS-0003)", + "sprtmtch", "Sports Match", + "sprtshot", "Sports Shooting USA", + "spss4240", "S-Plus (SS4240) Coral Reef", + "spstn_l5", "Space Station (L-5)", + "spuzbobl", "Super Puzzle Bobble (V2.05O)", + "spuzboblj", "Super Puzzle Bobble (V2.04J)", + "spy", "S.P.Y. - Special Project Y (World ver. N)", + "spyhunt", "Spy Hunter", + "spyhunt2", "Spy Hunter II (rev 2)", + "spyhunt2a", "Spy Hunter II (rev 1)", + "spyhuntp", "Spy Hunter (Playtronic license)", + "spyhuntpr", "Spy Hunter (Spain, Recreativos Franco S.A. PCB)", + "spyhuntr", "Spy Hunter (Pinball)", + "spyu", "S.P.Y. - Special Project Y (US ver. M)", + "sqbert", "Faster, Harder, More Challenging Q*bert (prototype)", + "sqix", "Super Qix (World, Rev 2)", + "sqixb1", "Super Qix (bootleg set 1)", + "sqixb2", "Super Qix (bootleg set 2)", + "sqixr1", "Super Qix (World, Rev 1)", + "sqixu", "Super Qix (US)", + "squaitsa", "Squash (Itisa)", + "squash", "Squash (Ver. 1.0)", + "sraider", "Space Raider", + "srally2", "Sega Rally 2", + "srally2x", "Sega Rally 2 DX", + "srallyc", "Sega Rally Championship - TWIN (Revision C)", + "srallyca", "Sega Rally Championship - DX (Revision A)", + "srallycb", "Sega Rally Championship - TWIN (Revision B)", + "sranger", "Super Ranger (v2.0)", + "srangerb", "Super Ranger (older, bootleg)", + "srangern", "Super Ranger (older, NOVA license)", + "srangero", "Super Ranger (older)", + "srangerw", "Super Ranger (older, WDK license)", + "srdarwin", "Super Real Darwin (World)", + "srdarwinj", "Super Real Darwin (Japan)", + "srdmissn", "S.R.D. Mission", + "srmdb", "Sunset Riders (bootleg of Megadrive version)", + "srmp1", "Super Real Mahjong Part 1 (Japan)", + "srmp2", "Super Real Mahjong Part 2 (Japan)", + "srmp3", "Super Real Mahjong Part 3 (Japan)", + "srmp4", "Super Real Mahjong PIV (Japan)", + "srmp4o", "Super Real Mahjong PIV (Japan, older set)", + "srmp5", "Super Real Mahjong P5", + "srmp6", "Super Real Mahjong P6 (Japan)", + "srmp7", "Super Real Mahjong P7 (Japan)", + "srmvs", "Super Real Mahjong VS", + "srumbler", "The Speed Rumbler (set 1)", + "srumbler2", "The Speed Rumbler (set 2)", + "srumbler3", "The Speed Rumbler (set 3)", + "sryudens", "Mahjong Seiryu Densetsu (Japan, NM502)", + "ss2005", "Super Shanghai 2005 (GDL-0031)", + "ss2005a", "Super Shanghai 2005 (Rev A) (GDL-0031A)", + "ss_01", "Scared Stiff (D0.1R with sound rev.25)", + "ss_03", "Scared Stiff (0.3)", + "ss_12", "Scared Stiff (1.2)", + "ss_14", "Scared Stiff (1.4)", + "ss_15", "Scared Stiff (1.5)", + "ssanchan", "Sanrin San Chan (Japan)", + "sscandal", "Seishun Scandal (315-5132, Japan)", + "sscope", "Silent Scope (ver xxD, Ver 1.33)", + "sscope2", "Silent Scope 2", + "sscopea", "Silent Scope (ver xxA, Ver 1.00)", + "sscopeb", "Silent Scope (ver xxB, Ver 1.20)", + "sscopec", "Silent Scope (ver xxC, Ver 1.30)", + "sscopex", "Silent Scope EX (ver UAA)", + "ssf2", "Super Street Fighter II: The New Challengers (World 930911)", + "ssf2a", "Super Street Fighter II: The New Challengers (Asia 931005)", + "ssf2ar1", "Super Street Fighter II: The New Challengers (Asia 930914)", + "ssf2h", "Super Street Fighter II: The New Challengers (Hispanic 930911)", + "ssf2j", "Super Street Fighter II: The New Challengers (Japan 931005)", + "ssf2jr1", "Super Street Fighter II: The New Challengers (Japan 930911)", + "ssf2jr2", "Super Street Fighter II: The New Challengers (Japan 930910)", + "ssf2mdb", "Super Street Fighter II - The New Challengers (bootleg of Japanese MegaDrive version)", + "ssf2t", "Super Street Fighter II Turbo (World 940223)", + "ssf2ta", "Super Street Fighter II Turbo (Asia 940223)", + "ssf2tb", "Super Street Fighter II: The Tournament Battle (World 931119)", + "ssf2tbd", "Super Street Fighter II: The Tournament Battle (World 931119 Phoenix Edition) (bootleg)", + "ssf2tbh", "Super Street Fighter II: The Tournament Battle (Hispanic 931005)", + "ssf2tbj", "Super Street Fighter II: The Tournament Battle (Japan 930911)", + "ssf2tbr1", "Super Street Fighter II: The Tournament Battle (World 930911)", + "ssf2tu", "Super Street Fighter II Turbo (USA 940323)", + "ssf2tur1", "Super Street Fighter II Turbo (USA 940223)", + "ssf2u", "Super Street Fighter II: The New Challengers (USA 930911)", + "ssf2ud", "Super Street Fighter II: The New Challengers (USA 930911 Phoenix Edition) (bootleg)", + "ssf2xj", "Super Street Fighter II X: Grand Master Challenge (Japan 940223)", + "ssf2xjd", "Super Street Fighter II X: Grand Master Challenge (Japan 940223 Phoenix Edition) (bootleg)", + "ssf2xjr", "Super Street Fighter II X: Grand Master Challenge (Japan 940223 rent version)", + "ssfindo", "See See Find Out", + "sshangha", "Super Shanghai Dragon's Eye (Japan)", + "sshanghab", "Super Shanghai Dragon's Eye (World, bootleg)", + "sshootep", "Sharpshooter", + "sshooter", "Sharpshooter (Rev 1.9)", + "sshooter11", "Sharpshooter (Rev 1.1)", + "sshooter12", "Sharpshooter (Rev 1.2)", + "sshooter17", "Sharpshooter (Rev 1.7)", + "sshootr2", "Sharp Shooter II", + "sshot", "Super Shot", + "sshtl_l7", "Space Shuttle (L-7)", + "sshtlzac", "Space Shuttle (Zaccaria)", + "sshuttle", "Space Shuttle (Taito)", + "sshuttle1", "Space Shuttle (Taito) (alternate set)", + "ssi", "Super Space Invaders '91 (World, Rev 1)", + "ssia", "Super Space Invaders '91 (World)", + "ssideki", "Super Sidekicks / Tokuten Ou", + "ssideki2", "Super Sidekicks 2 - The World Championship / Tokuten Ou 2 - real fight football (NGM-061)(NGH-061)", + "ssideki3", "Super Sidekicks 3 - The Next Glory / Tokuten Ou 3 - eikou e no michi", + "ssideki4", "The Ultimate 11 - The SNK Football Championship / Tokuten Ou - Honoo no Libero", + "ssingles", "Swinging Singles", + "ssipkr24", "SSI Poker (v2.4)", + "ssipkr30", "SSI Poker (v3.0)", + "ssipkr40", "SSI Poker (v4.0)", + "ssjkrpkr", "Southern Systems Joker Poker", + "sslam", "Super Slam (set 1)", + "sslama", "Super Slam (set 2)", + "ssmissin", "S.S. Mission", + "ssoldier", "Superior Soldiers (US)", + "ssozumo", "Syusse Oozumou (Japan)", + "sspac2k1", "Super Space 2001", + "sspacaho", "Space Attack / Head On", + "sspaceat", "Space Attack (upright set 1)", + "sspaceat2", "Space Attack (upright set 2)", + "sspaceat3", "Space Attack (upright set 3)", + "sspaceatc", "Space Attack (cocktail)", + "sspeedr", "Super Speed Race", + "sspiritj", "Scramble Spirits (Japan, Floppy DS3-5000-02-REV-A Based)", + "sspirits", "Scramble Spirits (World, Floppy Based)", + "sspirtfc", "Scramble Spirits (World, Floppy Based, FD1094 317-0058-02c)", + "ssprint", "Super Sprint (rev 4)", + "ssprint1", "Super Sprint (rev 1)", + "ssprint3", "Super Sprint (rev 3)", + "ssprintf", "Super Sprint (French)", + "ssprintg", "Super Sprint (German, rev 2)", + "ssprintg1", "Super Sprint (German, rev 1)", + "ssprints", "Super Sprint (Spanish)", + "ssriders", "Sunset Riders (4 Players ver EAC)", + "ssriders2", "Sunset Riders 2 (bootleg 4 Players ver ADD)", + "ssridersabd", "Sunset Riders (2 Players ver ABD)", + "ssridersadd", "Sunset Riders (4 Players ver ADD)", + "ssridersb", "Sunset Riders (bootleg 4 Players ver ADD)", + "ssriderseaa", "Sunset Riders (4 Players ver EAA)", + "ssridersebc", "Sunset Riders (2 Players ver EBC)", + "ssridersebd", "Sunset Riders (2 Players ver EBD)", + "ssridersjac", "Sunset Riders (4 Players ver JAC)", + "ssridersjbd", "Sunset Riders (2 Players ver JBD)", + "ssridersuab", "Sunset Riders (4 Players ver UAB)", + "ssridersuac", "Sunset Riders (4 Players ver UAC)", + "ssridersubc", "Sunset Riders (2 Players ver UBC)", + "ssridersuda", "Sunset Riders (4 Players ver UDA)", + "ssrj", "Super Speed Race Junior (Japan)", + "sss", "Steep Slope Sliders (JUET 981110 V1.000)", + "sst", "Supersonic", + "sstar", "Super Star", + "sstar97", "Super Star '97 (version V153B)", + "sstarbtl", "Super Star Battle", + "sstarcrs", "Super Star Crest", + "sstingry", "Super Stingray (Japan)", + "sstrangr", "Space Stranger", + "sstrangr2", "Space Stranger 2", + "sstrike", "Super Strike Bowling", + "sstriker", "Sorcer Striker (set 1)", + "sstrikera", "Sorcer Striker (set 2)", + "sstrkfgt", "Sega Strike Fighter (Rev A)", + "ssvc_a26", "Secret Service (2.6)", + "ssvc_b26", "Secret Service (2.6 alternate sound)", + "st_game", "unknown pinball game", + "st_ohla", "Oh La La (Stella)", + "st_vulkn", "Vulkan (Stella)", + "stactics", "Space Tactics", + "stadhero", "Stadium Hero (Japan)", + "stadhr96", "Stadium Hero '96 (World, EAJ)", + "stadhr96j", "Stadium Hero '96 (Japan, EAD)", + "stagger1", "Stagger I (Japan)", + "stakwin", "Stakes Winner / Stakes Winner - GI kinzen seiha e no michi", + "stakwin2", "Stakes Winner 2", + "starblad", "Starblade (World)", + "starbladj", "Starblade (Japan)", + "starcas", "Star Castle (version 3)", + "starcas1", "Star Castle (older)", + "starcase", "Star Castle (Mottoeis)", + "starcasp", "Star Castle (prototype)", + "starcrus", "Star Cruiser", + "starfght", "Star Fighter", + "starfgmc", "Starfighter (Moon Cresta bootleg)", + "starfigh", "Star Fighter (v1)", + "starfir2", "Star Fire 2", + "starfire", "Star Fire (set 1)", + "starfirea", "Star Fire (set 2)", + "starfirp", "Star Fire", + "starforc", "Star Force", + "starforca", "Star Force (encrypted, set 2)", + "starforcb", "Star Force (encrypted, bootleg)", + "starforce", "Star Force (encrypted, set 1)", + "stargate", "Stargate", + "stargatp", "Stargate (Pinball)", + "stargatp1", "Stargate (rev.1)", + "stargatp2", "Stargate (rev.2)", + "stargatp3", "Stargate (rev.3)", + "stargatp4", "Stargate (rev.4)", + "starglad", "Star Gladiator Episode I: Final Crusade (USA 960627)", + "stargladj", "Star Gladiator Episode I: Final Crusade (Japan 960627)", + "stargld2", "Star Gladiator 2: Nightmare of Bilstein (Japan 980316)", + "stargod", "Star God", + "stargoda", "Star God (alternate sound)", + "stargrds", "Star Guards", + "stargzr", "Stargazer", + "starhawk", "Star Hawk", + "starhrcl", "Star Horse (client)", + "starhrct", "Star Horse (server)", + "starhrse", "Star Horse (big screens)", + "starhrsp", "Star Horse Progress (Rev A)", + "starjack", "Star Jacker (Sega)", + "starjacks", "Star Jacker (Stern Electronics)", + "starlstr", "Vs. Star Luster", + "starrace", "Star Race", + "starrkr", "Star Raker", + "stars", "Stars", + "starseek", "Doki Doki Idol Star Seeker (GDL-0005)", + "starshot", "Star Shooter", + "starshp1", "Starship 1", + "starshpp", "Starship 1 (prototype?)", + "starsldr", "Star Soldier: Vanishing Earth", + "starspnr", "Starspinner (Dutch/Nederlands)", + "starswep", "Star Sweep (Japan, STP1/VER.A)", + "startrek", "Star Trek", + "startrep", "Star Trek (Pinball)", + "startrgn", "Star Trigon (Japan, STT1 Ver.A)", + "startrip", "Star Trip", + "startrkd", "Star Trek (Defender bootleg)", + "startrp", "Starship Troopers", + "starw", "Star Wars (bootleg of Galaxy Wars, set 1)", + "starw1", "Star Wars (bootleg of Galaxy Wars, set 2)", + "starwarr", "Star Warrior", + "starwars", "Star Wars (rev 2)", + "starwars1", "Star Wars (rev 1)", + "starzan", "Super Tarzan (Italy, V100I)", + "statriv2", "Triv Two", + "statriv2v", "Triv Two (Vertical)", + "statriv4", "Triv Four", + "statusbj", "Status Black Jack (V1.0c)", + "stcc", "Sega Touring Car Championship", + "stcca", "Sega Touring Car Championship (Revision A)", + "stccb", "Sega Touring Car Championship (Revision B)", + "stdragon", "Saint Dragon (set 1)", + "stdragona", "Saint Dragon (set 2)", + "stealsee", "Steal See", + "steaser", "Strip Teaser (Italy, Ver. 1.22)", + "steeltal", "Steel Talons (rev 2)", + "steeltal1", "Steel Talons (rev 1)", + "steeltalg", "Steel Talons (German, rev 2)", + "steeltalp", "Steel Talons (prototype)", + "steelwkr", "Steel Worker", + "steeplec", "Steeplechase [TTL]", + "stellcas", "Stellar Castle (Elettronolo)", + "stellecu", "Stelle e Cubi (Italy)", + "step3", "Stepping 3 Superior", + "stepstag", "Stepping Stage Special", + "stera", "Steraranger (Moon Cresta bootleg)", + "stest", "Speed Test", + "stfight", "Street Fight (Germany)", + "stfighta", "Street Fight (bootleg?)", + "stg", "Strike Gunner S.T.G", + "stillcra", "Still Crazy", + "stinger", "Stinger", + "stinger2", "Stinger (prototype?)", + "stingray", "Stingray", + "stisub", "Treasure Bonus (Subsino, v1.6)", + "stk_sprs", "Strikes and Spares", + "stkclmns", "Stack Columns (World)", + "stkclmnsj", "Stack Columns (Japan)", + "stlforce", "Steel Force", + "stlwr_l2", "Stellar Wars (L-2)", + "stmblade", "Storm Blade (US)", + "stntcycl", "Stunt Cycle [TTL]", + "stocker", "Stocker (3/19/85)", + "stoffy", "Super Toffy", + "stoffyu", "Super Toffy (Unico license)", + "stompin", "Stompin' (4/4/86)", + "stoneage", "Stoneage (bootleg of Caveman Ninja)", + "stonebal", "Stone Ball (4 Players)", + "stonebal2", "Stone Ball (2 Players)", + "storming", "Storming Party / Riku Kai Kuu Saizensen", + "strahl", "Koutetsu Yousai Strahl (Japan set 1)", + "strahla", "Koutetsu Yousai Strahl (Japan set 2)", + "strapids", "Shooting the Rapids", + "stratab", "Strata Bowling (V3)", + "stratab1", "Strata Bowling (V1)", + "stratgys", "Strategy X (Stern Electronics)", + "stratgyx", "Strategy X", + "stratof", "Raiga - Strato Fighter (US)", + "stratvox", "Stratovox", + "stratvoxb", "Stratovox (bootleg)", + "strax_p7", "Star Trax (domestic prototype)", + "streakng", "Streaking (set 1)", + "streaknga", "Streaking (set 2)", + "streetg", "Street Games (Revision 4)", + "streetg2", "Street Games II (Revision 7C)", + "streetg2r5", "Street Games II (Revision 5)", + "streetgr3", "Street Games (Revision 3)", + "streetsm", "Street Smart (US version 2)", + "streetsm1", "Street Smart (US version 1)", + "streetsmj", "Street Smart (Japan version 1)", + "streetsmw", "Street Smart (World version 1)", + "stress", "Stress Busters (J 981020 V1.000)", + "strfbomb", "Strafe Bomb (bootleg of Scramble)", + "strhoop", "Street Hoop / Street Slam / Dunk Dream (DEM-004)(DEH-004)", + "strider", "Strider (USA, B-Board 89624B-2)", + "strider2", "Strider 2 (USA 991213)", + "strider2a", "Strider 2 (Asia 991213)", + "striderj", "Strider Hiryu (Japan)", + "striderjr", "Strider Hiryu (Japan Resale Ver.)", + "striderua", "Strider (USA, B-Board 89624B-3)", + "strik_l4", "Strike Master (L-4)", + "strike", "Strike", + "striker", "Striker", + "strikext", "Striker Xtreme (1.02)", + "striv", "Super Triv", + "strkfgtr", "Strike Fighter (World)", + "strkfgtrj", "Strike Fighter (Japan)", + "strkforc", "Strike Force (rev 1 02/25/91)", + "strknew", "Striker Xtreme (ARM7 Sound Board)", + "strkzone", "Strike Zone Baseball", + "strlink", "Strong Link (Russia) (Extrema)", + "strlt_l1", "Star Light (L-1)", + "strngsci", "Strange Science", + "strnskil", "Strength & Skill", + "strongx", "Strong X", + "strsphnx", "Star's Phoenix (Italian speech)", + "strtdriv", "Street Drivin' (prototype)", + "strtheat", "Street Heat", + "strvmstr", "Super Trivia Master", + "strxt_fr", "Striker Xtreme (France)", + "strxt_gr", "Striker Xtreme (Germany)", + "strxt_it", "Striker Xtreme (Italy)", + "strxt_sp", "Striker Xtreme (Spain)", + "strxt_uk", "Striker Xtreme (UK)", + "sttng_g7", "Star Trek: The Next Generation (LG-7)", + "sttng_l1", "Star Trek: The Next Generation (LX-1)", + "sttng_l2", "Star Trek: The Next Generation (LX-2)", + "sttng_l7", "Star Trek: The Next Generation (LX-7)", + "sttng_p5", "Star Trek: The Next Generation (P-5)", + "sttng_s7", "Star Trek: The Next Generation (LX-7) SP1", + "sttng_x7", "Star Trek: The Next Generation (LX-7 Special)", + "stunrun", "S.T.U.N. Runner (rev 6)", + "stunrun0", "S.T.U.N. Runner (rev 0)", + "stunrun2", "S.T.U.N. Runner (rev 2)", + "stunrun2e", "S.T.U.N. Runner (rev 2, Europe)", + "stunrun3", "S.T.U.N. Runner (rev 3)", + "stunrun3e", "S.T.U.N. Runner (rev 3, Europe)", + "stunrun4", "S.T.U.N. Runner (rev 4)", + "stunrun5", "S.T.U.N. Runner (rev 5)", + "stunrune", "S.T.U.N. Runner (rev 5, Europe)", + "stunrunj", "S.T.U.N. Runner (rev 7, Japan)", + "stunrunp", "S.T.U.N. Runner (upright prototype)", + "stuntair", "Stunt Air", + "stvbios", "ST-V Bios", + "stwr_102", "Star Wars (1.02)", + "stwr_103", "Star Wars (1.03)", + "stwr_a14", "Star Wars (Display Rev.1.04)", + "stwr_e12", "Star Wars (1.02 England)", + "stwr_g11", "Star Wars (1.01 Germany)", + "styphp", "Stunt Typhoon Plus", + "su2000", "SU2000", + "sub", "Submarine (Sigma)", + "subhunt", "Sub Hunter", + "submar", "Submarine (Midway)", + "subroc3d", "Subroc-3D", + "subs", "Subs", + "sucasino", "Super Casino", + "suchie3", "Idol Janshi Suchie-Pai 3 (JPN)", + "suchipi", "Idol Janshi Suchie-Pai Special (Japan)", + "suikoenb", "Suiko Enbu / Outlaws of the Lost Dynasty (JUETL 950314 V2.001)", + "sukuinuf", "Quiz and Variety Suku Suku Inufuku 2 (IN2 Ver. A)", + "sultanw", "Sultan's Wish (Konami Endeavour)", + "sunaq", "SunA Quiz 6000 Academy (940620-6)", + "sundance", "Sundance", + "supbtime", "Super Burger Time (World, set 1)", + "supbtimea", "Super Burger Time (World, set 2)", + "supbtimej", "Super Burger Time (Japan)", + "supcrash", "Super Crash (bootleg of Head On)", + "supdrapo", "Super Draw Poker (set 1)", + "supdrapoa", "Super Draw Poker (set 2)", + "supdrapob", "Super Draw Poker (bootleg)", + "super21", "Super Twenty One", + "super9", "Super Nove (Playmark)", + "superabc", "Super ABC (Pac-Man multigame kit, Sep. 03 1999)", + "superabco", "Super ABC (Pac-Man multigame kit, Mar. 08 1999)", + "superbar", "Super Bar", + "superbik", "Superbike", + "superbon", "Agent Super Bond (Super Cobra conversion)", + "superbug", "Super Bug", + "superbwl", "Super Bowl (Version 16.03B)", + "superchs", "Super Chase - Criminal Termination (World)", + "superchsj", "Super Chase - Criminal Termination (Japan)", + "superchsp", "Super Chase - Criminal Termination (1992/10/26 20:24:29 CHASE 3 VER 1.1, prototype)", + "superchsu", "Super Chase - Criminal Termination (US)", + "supercrd", "Super Card (encrypted)", + "superdbl", "Super Double (French)", + "superdbz", "Super Dragon Ball Z (DB1 Ver. B)", + "superdix", "Super Dixieland (Bingo)", + "superdq", "Super Don Quix-ote (Long Scenes)", + "superdqa", "Super Don Quix-ote (Short Scenes, Alt)", + "superdqs", "Super Don Quix-ote (Short Scenes)", + "superg", "Super Galaxians (galaxiana hack)", + "supergm3", "Super Game III", + "supergx", "Super GX", + "superinv", "Super Invaders (bootleg set 1)", + "superman", "Superman (World)", + "supermanj", "Superman (Japan)", + "supermanu", "Superman (US)", + "supermap", "Superman (Pinball)", + "superpac", "Super Pac-Man", + "superpacm", "Super Pac-Man (Midway)", + "superspy", "The Super Spy (NGM-011)(NGH-011)", + "superten", "Super Ten V8.3", + "supertnk", "Super Tank", + "supertr2", "Super Triv II", + "supertr3", "Super Triv III", + "superwng", "Super Wing", + "superx", "Super-X (NTC)", + "superxm", "Super-X (Mitchell)", + "supjolly", "Super Jolly", + "suplup", "Super Lup Lup Puzzle / Zhuan Zhuan Puzzle (version 4.0 / 990518)", + "supmodel", "Super Model", + "supnudg2", "Super Nudger II - P173 (Version 5.21)", + "suprball", "Super Ball (Version 1.3)", + "suprbowl", "Super Bowl", + "suprglob", "Super Glob", + "suprgolf", "Super Crowns Golf (Japan)", + "suprheli", "Super Heli (Super Cobra bootleg)", + "suprleag", "Super League (FD1094 317-0045)", + "suprloco", "Super Locomotive (Rev.A)", + "suprlocoo", "Super Locomotive", + "suprmatk", "Super Missile Attack (for rev 1)", + "suprmatkd", "Super Missile Attack (not encrypted)", + "suprmous", "Super Mouse", + "suprmrio", "Vs. Super Mario Bros. (set SM4-4 E)", + "suprmrioa", "Vs. Super Mario Bros. (set ?, harder)", + "suprmriobl", "Vs. Super Mario Bros. (bootleg with Z80, set 1)", + "suprmriobl2", "Vs. Super Mario Bros. (bootleg with Z80, set 2)", + "suprnova", "Super Nova", + "suprpick", "Super Picker", + "suprpokr", "Super Poker (Version 10.19S)", + "suprpokra", "Super Poker (Version 10.15S)", + "suprpokrb", "Super Poker (Version 10.10)", + "suprpool", "Super Pool (9743 rev.01)", + "suprridr", "Super Rider", + "suprslam", "From TV Animation Slam Dunk - Super Slams", + "suprstar", "Super Stars", + "suprtrio", "Super Trio", + "supxevs", "Vs. Super Xevious", + "suratk", "Surprise Attack (World ver. K)", + "suratka", "Surprise Attack (Asia ver. L)", + "suratkj", "Surprise Attack (Japan ver. M)", + "sureshop", "Sure Shot (Pinball)", + "sureshot", "Sure Shot", + "surfnsaf", "Surf'n Safari", + "surfplnt", "Surf Planet (Version 4.1)", + "surfplnt40", "Surf Planet (Version 4.0)", + "survarts", "Survival Arts (World)", + "survartsj", "Survival Arts (Japan)", + "survartsu", "Survival Arts (USA)", + "survival", "Survival", + "susume", "Susume! Taisen Puzzle-Dama (GV027 Japan 1.20)", + "sutapper", "Tapper (Suntory)", + "suzuk8h2", "Suzuka 8 Hours 2 (World, Rev B)", + "suzuk8h2j", "Suzuka 8 Hours 2 (Japan, Rev B)", + "suzuka8h", "Suzuka 8 Hours (World, Rev C)", + "suzuka8hj", "Suzuka 8 Hours (Japan, Rev B)", + "suzume", "Watashiha Suzumechan (Japan)", + "svc", "SNK vs. Capcom - SVC Chaos (NGM-2690)(NGH-2690)", + "svcboot", "SNK vs. Capcom - SVC Chaos (bootleg)", + "svcpcb", "SNK vs. Capcom - SVC Chaos (JAMMA PCB, set 1)", + "svcpcba", "SNK vs. Capcom - SVC Chaos (JAMMA PCB, set 2)", + "svcplus", "SNK vs. Capcom - SVC Chaos Plus (bootleg set 1)", + "svcplusa", "SNK vs. Capcom - SVC Chaos Plus (bootleg set 2)", + "svcsplus", "SNK vs. Capcom - SVC Chaos Super Plus (bootleg)", + "svf", "Super Visual Football: European Sega Cup", + "svg", "S.V.G. - Spectral vs Generation (M68k label V200) (ARM label V200, ROM 10/11/05 S.V.G V201)", + "svgpcb", "S.V.G. - Spectral vs Generation (M68k label V100JP) (ARM label V100JP ROM 05/12/05 S.V.G V100) (Japan, JAMMA PCB)", + "svolley", "Super Volleyball (Japan)", + "svolleybl", "Super Volleyball (bootleg)", + "svolleyk", "Super Volleyball (Korea)", + "svolleyu", "Super Volleyball (US)", + "svolly91", "Super Volley '91 (Japan)", + "svs", "Super Visual Soccer: Sega Cup (US)", + "swa", "Star Wars Arcade", + "swarm", "Swarm (bootleg?)", + "swat", "SWAT (315-5048)", + "swatpolc", "SWAT Police", + "swcourt", "Super World Court (World)", + "swcourtj", "Super World Court (Japan)", + "swe1pb", "Pinball 2000: Star Wars Episode 1", + "sweetgal", "Sweet Gal (Japan 850510 SWG 1-02)", + "sweetl", "Sweet Life (041220 World)", + "sweetl2", "Sweet Life 2 (071217 Russia)", + "sweetl2_2", "Sweet Life 2 (080320 World)", + "sweetl2_2a", "Sweet Life 2 (bootleg, 080320, banking address hack set 1)", + "sweetl2_2b", "Sweet Life 2 (bootleg, 080320, banking address hack set 2)", + "sweetl2_2c", "Sweet Life 2 (bootleg, 080320, VIDEO GAME-1 MD01)", + "sweetl2_2d", "Sweet Life 2 (bootleg, 080320, LOTTOGAME (I))", + "sweetl2_3", "Sweet Life 2 (090525 Lottery)", + "sweetl2_4", "Sweet Life 2 (090812 Entertainment)", + "sweetl_2", "Sweet Life (070412 Russia)", + "sweetla", "Sweet Life (bootleg, 041220, backdoor)", + "sweetlb", "Sweet Life (bootleg, 041220, banking address hack, changed version text)", + "swimmer", "Swimmer (set 1)", + "swimmera", "Swimmer (set 2)", + "swimmerb", "Swimmer (set 3)", + "swingin", "Swingin In The Green (Russia)", + "swisspkr", "Swiss Poker ('50 SG-.10', V2.5)", + "swrds_l2", "Swords of Fury (L-2)", + "sws", "Super World Stadium (Japan)", + "sws2000", "Super World Stadium 2000 (Japan, SS01/VER.A)", + "sws2001", "Super World Stadium 2001 (Japan, SS11/VER.A)", + "sws92", "Super World Stadium '92 (Japan)", + "sws92g", "Super World Stadium '92 Gekitouban (Japan)", + "sws93", "Super World Stadium '93 (Japan)", + "sws95", "Super World Stadium '95 (Japan)", + "sws96", "Super World Stadium '96 (Japan)", + "sws97", "Super World Stadium '97 (Japan)", + "sws98", "Super World Stadium '98 (Japan, SS81/VER.A)", + "sws99", "Super World Stadium '99 (Japan, SS91/VER.A3)", + "swthrt2v", "Sweet Hearts II (01J01986, Venezuela)", + "swtht2nz", "Sweet Hearts II (1VXFC5461, New Zealand)", + "swtril41", "Star Wars Trilogy (4.01)", + "swtril43", "Star Wars Trilogy (4.03)", + "swtrilgy", "Star Wars Trilogy (Revision A)", + "swtrilgya", "Star Wars Trilogy", + "sxevious", "Super Xevious", + "sxeviousj", "Super Xevious (Japan)", + "sxyreac2", "Pachinko Sexy Reaction 2 (Japan)", + "sxyreact", "Pachinko Sexy Reaction (Japan)", + "sys1test", "System 1 Test prom", + "sys246", "System 246 BIOS", + "sys256", "System 256 BIOS", + "sys573", "System 573 BIOS", + "syvalion", "Syvalion (Japan)", + "syvalionp", "Syvalion (World, prototype)", + "szaxxon", "Super Zaxxon (315-5013)", + "szone_l2", "Strike Zone (Shuffle) (L-2)", + "szone_l5", "Strike Zone (Shuffle) (L-5)", + "t2_l2", "Terminator 2: Judgment Day (L-2)", + "t2_l3", "Terminator 2: Judgment Day (L-3)", + "t2_l4", "Terminator 2: Judgment Day (L-4)", + "t2_l6", "Terminator 2: Judgment Day (L-6)", + "t2_l8", "Terminator 2: Judgment Day (L-8)", + "t2_p2f", "Terminator 2: Judgment Day (P-2F) Profanity", + "t3new", "Terminator 3: Rise of the Machines (ARM7 Sound Board)", + "tacscan", "Tac/Scan", + "tactcian", "Tactician (set 1)", + "tactcian2", "Tactician (set 2)", + "taf_h4", "The Addams Family (H-4)", + "taf_l1", "The Addams Family (L-1)", + "taf_l2", "The Addams Family (L-2)", + "taf_l3", "The Addams Family (L-3)", + "taf_l4", "The Addams Family (L-4)", + "taf_l5", "The Addams Family (L-5)", + "taf_l6", "The Addams Family (L-6)", + "taf_l7", "The Addams Family (Prototype L-5) (L-7)", + "taf_p2", "The Addams Family (Prototype) (P-2)", + "tafg_h3", "The Addams Family Special Collectors Edition (H-3)", + "tafg_la2", "The Addams Family Special Collectors Edition (LA-2)", + "tafg_la3", "The Addams Family Special Collectors Edition (LA-3)", + "tafg_lx3", "The Addams Family Special Collectors Edition Gold (LX-3)", + "tagteam", "Tag Team Wrestling", + "tagteamp", "Tag-Team Wrestling", + "tagteamp2", "Tag-Team Wrestling (rev.2)", + "taiko10", "Taiko No Tatsujin 10 (T101001-NA-A)", + "taiko9", "Taiko No Tatsujin 9 (TK91001-NA-A)", + "tail2nos", "Tail to Nose - Great Championship", + "tailg", "Tailgunner", + "taitest", "Taito Test Fixture", + "taitofx1", "Taito FX1", + "taitogn", "Taito GNET", + "taitotz", "Type Zero BIOS", + "taiwanmb", "Taiwan Mahjong [BET] (Japan 881208)", + "tajmah", "Tajmahal (Russia) (Atronic)", + "take5", "Take 5 [TTL]", + "takefive", "Take Five", + "takoron", "Noukone Puzzle Takoron (GDL-0042)", + "talbot", "Talbot", + "tangtang", "Tang Tang (ver. 0526, 26/05/2000)", + "tank", "Tank/Tank II [TTL]", + "tank8", "Tank 8 (set 1)", + "tank8a", "Tank 8 (set 2)", + "tank8b", "Tank 8 (set 3)", + "tank8c", "Tank 8 (set 4)", + "tank8d", "Tank 8 (set 5)", + "tankbatl", "Tank Battle (prototype rev. 4/21/92)", + "tankbatt", "Tank Battalion", + "tankbattb", "Tank Battalion (bootleg)", + "tankbust", "Tank Busters", + "tankfrce", "Tank Force (US, 2 Player)", + "tankfrce4", "Tank Force (US, 4 Player)", + "tankfrcej", "Tank Force (Japan)", + "tantr", "Puzzle & Action: Tant-R (Japan)", + "tantrbl", "Puzzle & Action: Tant-R (Japan) (bootleg set 1)", + "tantrbl2", "Puzzle & Action: Tant-R (Japan) (bootleg set 2)", + "tantrbl3", "Puzzle & Action: Tant-R (Japan) (bootleg set 3)", + "tantrkor", "Puzzle & Action: Tant-R (Korea)", + "taotaido", "Tao Taido (set 1)", + "taotaidoa", "Tao Taido (set 2)", + "tapatune", "Tap a Tune", + "tapper", "Tapper (Budweiser, set 1)", + "tappera", "Tapper (Budweiser, set 2)", + "targ", "Targ", + "targc", "Targ (cocktail?)", + "targeth", "Target Hits (ver 1.1)", + "targetha", "Target Hits (ver 1.0)", + "tarzan", "Tarzan (V109C)", + "tarzana", "Tarzan (V107)", + "tattack", "Time Attacker", + "tattass", "Tattoo Assassins (US prototype)", + "tattassa", "Tattoo Assassins (Asia prototype)", + "taurs_l1", "Taurus (Shuffle) (L-1)", + "taxi_l3", "Taxi (Marilyn) (L-3)", + "taxi_l4", "Taxi (Lola) (L-4)", + "taxi_lg1", "Taxi (Marilyn) (L-1) Germany", + "taxidriv", "Taxi Driver", + "tazmani2", "Tazz-Mania (set 2, alt hardware)", + "tazmania", "Tazz-Mania (set 1)", + "tazzmang", "Tazz-Mania (bootleg on Galaxian hardware)", + "tblkkuzu", "The Block Kuzushi (Japan)", + "tbowl", "Tecmo Bowl (World)", + "tbowlj", "Tecmo Bowl (Japan)", + "tbowlp", "Tecmo Bowl (World, prototype?)", + "tbyahhoo", "Twin Bee Yahhoo! (ver JAA)", + "tceptor", "Thunder Ceptor", + "tceptor2", "Thunder Ceptor II", + "tcl", "Taiwan Chess Legend", + "tcobra2", "Twin Cobra II (Ver 2.1O 1995/11/30)", + "tcobra2u", "Twin Cobra II (Ver 2.1A 1995/11/30)", + "tdawg_l1", "Top Dawg (Shuffle) (L-1)", + "tdfever", "TouchDown Fever (US)", + "tdfever2", "TouchDown Fever 2", + "tdfeverj", "TouchDown Fever (Japan)", + "tdoboon", "Taihou de Doboon", + "tdpgal", "Triple Draw Poker", + "tdragon", "Thunder Dragon (9th Jan. 1992)", + "tdragon1", "Thunder Dragon (4th Jun. 1991)", + "tdragon2", "Thunder Dragon 2 (9th Nov. 1993)", + "tdragon2a", "Thunder Dragon 2 (1st Oct. 1993)", + "tdragonb", "Thunder Dragon (bootleg)", + "tduno", "Touch de Uno! / Unou Nouryoku Check Machine", + "tduno2", "Touch de Uno! 2", + "te0144", "Puzzle Bobble (Italian Gambling Game)", + "teamqb", "John Elway's Team Quarterback (set 1)", + "teamqb2", "John Elway's Team Quarterback (set 2)", + "techbowl", "Technical Bowling (J 971212 V1.000)", + "techromn", "Tech Romancer (Euro 980914)", + "techromnu", "Tech Romancer (USA 980914)", + "tecmowcm", "Tecmo World Cup Millennium (Japan)", + "teddybb", "TeddyBoy Blues (315-5115, New Ver.)", + "teddybbo", "TeddyBoy Blues (315-5115, Old Ver.)", + "teddybbobl", "TeddyBoy Blues (Old Ver. bootleg)", + "teedoff", "Tee'd Off (Japan)", + "teedoffp", "Tee'd Off", + "teedoffp1", "Tee'd Off (rev.1)", + "teedoffp3", "Tee'd Off (rev.3)", + "teetert", "Teeter Torture (prototype)", + "tehkanwc", "Tehkan World Cup (set 1)", + "tehkanwcb", "Tehkan World Cup (set 2, bootleg?)", + "tehkanwcc", "Tehkan World Cup (set 3, bootleg)", + "tekipaki", "Teki Paki", + "tekken", "Tekken (World, TE4/VER.C)", + "tekken2", "Tekken 2 Ver.B (US, TES3/VER.D)", + "tekken2aa", "Tekken 2 (Asia, TES2/VER.A)", + "tekken2ab", "Tekken 2 Ver.B (Asia, TES2/VER.B)", + "tekken2jb", "Tekken 2 Ver.B (Japan, TES1/VER.B)", + "tekken2jc", "Tekken 2 Ver.B (Japan, TES1/VER.C)", + "tekken2ub", "Tekken 2 Ver.B (US, TES3/VER.B)", + "tekken3", "Tekken 3 (Japan, TET1/VER.E1)", + "tekken3aa", "Tekken 3 (Asia, TET2/VER.A)", + "tekken3ab", "Tekken 3 (Asia, TET2/VER.B)", + "tekken3ae", "Tekken 3 (Asia, TET2/VER.E1)", + "tekken3ja", "Tekken 3 (Japan, TET1/VER.A)", + "tekken3ua", "Tekken 3 (US, TET3/VER.A)", + "tekken3ud", "Tekken 3 (US, TET3/VER.D)", + "tekken4", "Tekken 4 (TEF3 Ver. C)", + "tekken4a", "Tekken 4 (TEF2 Ver. A)", + "tekken4b", "Tekken 4 (TEF1 Ver. A)", + "tekken4c", "Tekken 4 (TEF1 Ver. C)", + "tekken51", "Tekken 5.1 (TE51 Ver. B)", + "tekkenab", "Tekken (Asia, TE2/VER.B)", + "tekkenac", "Tekken (Asia, TE2/VER.C)", + "tekkenjb", "Tekken (Japan, TE1/VER.B)", + "tektagt", "Tekken Tag Tournament (US, TEG3/VER.C1)", + "tektagtac", "Tekken Tag Tournament (Asia, TEG2/VER.C1, set 1)", + "tektagtac1", "Tekken Tag Tournament (Asia, TEG2/VER.C1, set 2)", + "tektagtja", "Tekken Tag Tournament (Japan, TEG1/VER.A3)", + "tektagtjb", "Tekken Tag Tournament (Japan, TEG1/VER.B)", + "tektagtjc1", "Tekken Tag Tournament (Japan, TEG1/VER.C1)", + "tektagtub", "Tekken Tag Tournament (US, TEG3/VER.B)", + "teljan", "Tel Jan", + "telmahjn", "Telephone Mahjong (Japan 890111)", + "tempest", "Tempest (rev 3, Revised Hardware)", + "tempest1", "Tempest (rev 1)", + "tempest1r", "Tempest (rev 1, Revised Hardware)", + "tempest2", "Tempest (rev 2)", + "tempest3", "Tempest (rev 3)", + "temptube", "Tempest Tubes", + "tenballs", "Ten Balls (Ver 1.05)", + "tengai", "Tengai (World)", + "tengaij", "Sengoku Blade: Sengoku Ace Episode II / Tengai", + "tenkai", "Mahjong Tenkaigen", + "tenkai2b", "Mahjong Tenkaigen Part 2 (bootleg)", + "tenkaibb", "Mahjong Tenkaigen (bootleg b)", + "tenkaicb", "Mahjong Tenkaigen (bootleg c)", + "tenkaid", "Mahjong Tenkaigen (set 1)", + "tenkaie", "Mahjong Tenkaigen (set 2)", + "tenkomor", "Tenkomori Shooting (Asia, TKM2/VER.A1)", + "tenkomorja", "Tenkomori Shooting (Japan, TKM1/VER.A1)", + "tenpindx", "Ten Pin Deluxe", + "tenspot", "Ten Spot", + "tenthdeg", "Tenth Degree (prototype)", + "tenup", "Ten Up (compendium 17)", + "tenup3", "Ten Up (compendium 3)", + "terabrst", "Teraburst (1998/07/17 ver UEL)", + "terabrsta", "Teraburst (1998/02/25 ver AAA)", + "term2", "Terminator 2 - Judgment Day (rev LA4 08/03/92)", + "term2la1", "Terminator 2 - Judgment Day (rev LA1 11/01/91)", + "term2la2", "Terminator 2 - Judgment Day (rev LA2 12/09/91)", + "term2la3", "Terminator 2 - Judgment Day (rev LA3 03/27/92)", + "term3", "Terminator 3: Rise of the Machines (4.00)", + "term3_205", "Terminator 3: Rise of the Machines (2.05)", + "term3f", "Terminator 3: Rise of the Machines (4.00 France)", + "term3f_205", "Terminator 3: Rise of the Machines (2.05 France)", + "term3g", "Terminator 3: Rise of the Machines (4.00 Germany)", + "term3i", "Terminator 3: Rise of the Machines (4.00 Italy)", + "term3i_205", "Terminator 3: Rise of the Machines (2.05 Italy)", + "term3l", "Terminator 3: Rise of the Machines (4.00 Spain)", + "term3l_205", "Terminator 3: Rise of the Machines (2.05 Spain)", + "terracre", "Terra Cresta (YM3526 set 1)", + "terracrea", "Terra Cresta (YM3526 set 3)", + "terracren", "Terra Cresta (YM2203)", + "terracreo", "Terra Cresta (YM3526 set 2)", + "terraf", "Terra Force", + "terrafb", "Terra Force (Japan bootleg set 2)", + "terrafj", "Terra Force (Japan)", + "terrafjb", "Terra Force (Japan bootleg with additional Z80)", + "terrafu", "Terra Force (US)", + "tesorone", "Tesorone Dell'Isola (Italy, v2.41)", + "tesorone230", "Tesorone Dell'Isola (Italy, v2.30)", + "tesorone240", "Tesorone Dell'Isola (Italy, v2.40)", + "tetfight", "Tetris Fighters", + "tetkiwam", "Tetris Kiwamemichi (GDL-0020)", + "tetrbx", "Tetris / Bloxeed (Korean System 16 bootleg) (ISG Selection Master Type 2006)", + "tetris", "Tetris (set 4, Japan, System 16A, FD1094 317-0093)", + "tetris1", "Tetris (set 1, Japan, System 16B, FD1094 317-0091)", + "tetris2", "Tetris (set 2, Japan, System 16B, FD1094 317-0092)", + "tetris3", "Tetris (set 3, Japan, System 16A, FD1094 317-0093a)", + "tetrisbl", "Tetris (bootleg)", + "tetriskr", "Tetris (bootleg of Mirrorsoft PC-XT Tetris version)", + "tetrisp", "Tetris Plus", + "tetrisp2", "Tetris Plus 2 (World)", + "tetrisp2j", "Tetris Plus 2 (Japan, V2.2)", + "tetrisp2ja", "Tetris Plus 2 (Japan, V2.1)", + "tetrisse", "Tetris (Japan, System E)", + "tetrist", "Tetris (Japan, Taito B-System, Nastar Conversion Kit)", + "tetrista", "Tetris (Japan, Taito B-System, Master of Weapon Conversion Kit)", + "tetristh", "Tetris (Japan, Taito H-System)", + "tetrsark", "Tetris (D.R. Korea)", + "tf95_12", "WPC 95 Test Fixture (1.2)", + "tfa_13", "WPC Test Fixture: Alphanumeric (1.3)", + "tfdmd_l3", "WPC Test Fixture: DMD (L-3)", + "tfight", "Title Fight", + "tfrceac", "Thunder Force AC", + "tfrceacb", "Thunder Force AC (bootleg)", + "tfrceacj", "Thunder Force AC (Japan)", + "tfs_12", "WPC Test Fixture: Security (1.2)", + "tftc_104", "Tales From the Crypt (1.04 Spain)", + "tftc_200", "Tales From the Crypt (2.00)", + "tftc_300", "Tales From the Crypt (3.00)", + "tftc_302", "Tales From the Crypt (3.02 Dutch)", + "tftc_303", "Tales From the Crypt (3.03)", + "tfupdate", "Triforce DIMM Updater (GDT-0011)", + "tgm2", "Tetris the Absolute The Grand Master 2", + "tgm2p", "Tetris the Absolute The Grand Master 2 Plus", + "tgmj", "Tetris The Grand Master (Japan 980710)", + "tgtball", "Target Ball (Nude)", + "tgtballa", "Target Ball", + "tgtpanic", "Target Panic", + "thaiprin", "Thai Princess (30127721, Malaysia)", + "tharrier", "Task Force Harrier", + "tharrieru", "Task Force Harrier (US?)", + "thayers", "Thayer's Quest (set 1)", + "thayersa", "Thayer's Quest (set 2)", + "thedeep", "The Deep (Japan)", + "thedrink", "The Drink", + "theend", "The End", + "theendb", "The End (bootleg?)", + "theends", "The End (Stern Electronics)", + "thegames", "The Games", + "theglad", "The Gladiator / Road of the Sword / Shen Jian (M68k label V101) (ARM label V107, ROM 06/06/03 SHEN JIAN V107)", + "theglad100", "The Gladiator / Road of the Sword / Shen Jian (M68k label V100) (ARM label V100, ROM 01/16/03 SHEN JIAN)", + "theglad101", "The Gladiator / Road of the Sword / Shen Jian (M68k label V100) (ARM label V101, ROM 03/13/03 SHEN JIAN)", + "thegladpcb", "The Gladiator / Road of the Sword / Shen Jian (M68k label V100) (ARM label V100, ROM 02/25/03 SHEN JIAN) (Japan, JAMMA PCB)", + "theglob", "The Glob", + "theglob2", "The Glob (earlier)", + "theglob3", "The Glob (set 3)", + "theglobp", "The Glob (Pac-Man hardware)", + "thegrid", "The Grid (version 1.2)", + "thegrida", "The Grid (version 1.1)", + "thehand", "The Hand", + "thehustl", "The Hustler (Japan, program code M)", + "thehustlj", "The Hustler (Japan, program code J)", + "themj", "The Mah-jong (Japan)", + "thenanpa", "The Nanpa (Japan)", + "thepit", "The Pit", + "thepitj", "The Pit (Japan)", + "thepitm", "The Pit (bootleg on Moon Quasar hardware)", + "thepitu1", "The Pit (US set 1)", + "thepitu2", "The Pit (US set 2)", + "theroes", "Thunder Heroes", + "thetogyu", "The Togyu (315-5065, Japan)", + "thief", "Thief", + "thndblst", "Thunder Blaster (Japan)", + "thndbolt", "Thunderbolt", + "thndrbld", "Thunder Blade (upright, FD1094 317-0056)", + "thndrbld1", "Thunder Blade (deluxe/standing, unprotected)", + "thndrx2", "Thunder Cross II (World)", + "thndrx2a", "Thunder Cross II (Asia)", + "thndrx2j", "Thunder Cross II (Japan)", + "thndzone", "Thunder Zone (World, Rev 1)", + "thndzone4", "Thunder Zone (World 4 Players)", + "thndzonea", "Thunder Zone (World)", + "thndzonej", "Thunder Zone (Japan)", + "thoop", "Thunder Hoop (Ver. 1)", + "thoop2", "TH Strikes Back", + "thrild2", "Thrill Drive 2 (ver EBB)", + "thrild2a", "Thrill Drive 2 (ver AAA)", + "thrild2c", "Thrill Drive 2 (ver EAA)", + "thrilld", "Thrill Drive (JAE)", + "thrilldae", "Thrill Drive (EAA)", + "thrilldb", "Thrill Drive (JAB)", + "thund_p1", "Thunderball (P-1)", + "thunderh", "Operation Thunder Hurricane (ver EAA)", + "thunderhu", "Operation Thunder Hurricane (ver UAA)", + "thunderj", "ThunderJaws (rev 3)", + "thunderja", "ThunderJaws (rev 2)", + "thunderl", "Thunder & Lightning", + "thunderlbl", "Thunder & Lightning (bootleg with Tetris sound)", + "thunderx", "Thunder Cross (set 1)", + "thunderxa", "Thunder Cross (set 2)", + "thunderxb", "Thunder Cross (set 3)", + "thunderxj", "Thunder Cross (Japan)", + "thundfox", "Thunder Fox (World)", + "thundfoxj", "Thunder Fox (Japan)", + "thundfoxu", "Thunder Fox (US)", + "thunt", "Puzzle & Action: Treasure Hunt (JUET 970901 V2.00E)", + "thuntk", "Puzzle & Action: BoMulEul Chajara (JUET 970125 V2.00K)", + "tickee", "Tickee Tickats", + "tictac", "Tic Tac Trivia (6221-23, U5-0C Horizontal)", + "tictacv", "Tic Tac Trivia (6221-22, U5-0 Vertical)", + "tigerh", "Tiger Heli (US)", + "tigerhb1", "Tiger Heli (bootleg set 1)", + "tigerhb2", "Tiger Heli (bootleg set 2)", + "tigerhb3", "Tiger Heli (bootleg set 3)", + "tigerhj", "Tiger Heli (Japan)", + "tigeroad", "Tiger Road (US)", + "tigeroadb", "Tiger Road (US bootleg)", + "tigerrag", "Tiger Rag", + "tighook", "Tiger Hook (Version 2.1E Dual)", + "tighookc1", "Tiger Hook (Version 2.1R, set 1)", + "tighookc2", "Tiger Hook (Version 2.0LT, set 1)", + "tighookd1", "Tiger Hook (Version 2.1R, set 2)", + "tighookd2", "Tiger Hook (Version 2.0LT, set 2)", + "tighooko", "Tiger Hook (Version 1.7XT)", + "tighooko2", "Tiger Hook (Version 1.7)", + "tighookv1", "Tiger Hook (Version 2.1R Dual)", + "tighookv2", "Tiger Hook (Version 2.0LT Dual)", + "timber", "Timber", + "time2000", "Time 2000", + "timecris", "Time Crisis (Rev. TS2 Ver.B)", + "timecrisa", "Time Crisis (Rev. TS2 Ver.A)", + "timecrs2", "Time Crisis II (TSS3 Ver. B)", + "timecrs2v2b", "Time Crisis II (TSS2 Ver. B)", + "timecrs2v4a", "Time Crisis II (TSS4 Ver. A)", + "timecrs3", "Time Crisis 3 (TST1)", + "timecrs3e", "Time Crisis 3 (TST2 Ver. A)", + "timefgtr", "Time Fighter (Time Pilot conversion on Galaxian hardware)", + "timekill", "Time Killers (v1.32)", + "timekill121", "Time Killers (v1.21)", + "timekill131", "Time Killers (v1.31)", + "timelimt", "Time Limit", + "timeline", "Time Line", + "timeplt", "Time Pilot", + "timeplta", "Time Pilot (Atari)", + "timepltc", "Time Pilot (Centuri)", + "timescan", "Time Scanner (set 2, System 16B)", + "timescan1", "Time Scanner (set 1, System 16A, FD1089B 317-0024)", + "timesold", "Time Soldiers (US Rev 3)", + "timesold1", "Time Soldiers (US Rev 1)", + "timetrv", "Time Traveler", + "timetunl", "Time Tunnel", + "tinklpit", "Tinkle Pit (Japan)", + "tinstar", "The Tin Star (set 1)", + "tinstar2", "The Tin Star (set 2)", + "tinv2650", "The Invaders", + "tiptop", "Tip Top (3 board stack)", + "tisland", "Treasure Island", + "tisub", "Treasure Island (Subsino, set 1)", + "tisuba", "Treasure Island (Subsino, set 2)", + "titan", "Titan", + "titan1", "Titan (alternate set)", + "titanic", "Titanic (Coin dropper)", + "titlef", "Title Fight (World)", + "titlefj", "Title Fight (Japan)", + "titlefu", "Title Fight (US)", + "tjsb", "Mahjong Tian Jiang Shen Bing (V137C)", + "tjumpman", "Tobikose! Jumpman", + "tkdensho", "Toukidenshou - Angel Eyes (VER. 960614)", + "tkdenshoa", "Toukidenshou - Angel Eyes (VER. 960427)", + "tkmmpzdm", "Tokimeki Memorial Taisen Puzzle-dama (ver JAB)", + "tknight", "Tecmo Knight", + "tkoboxng", "Vs. T.K.O. Boxing", + "tm", "Touchmaster (v3.00 Euro)", + "tm2k", "Touchmaster 2000 Plus (v4.63 Standard)", + "tm2ka", "Touchmaster 2000 (v4.02 Standard)", + "tm2kb", "Touchmaster 2000 (v4.00 Standard)", + "tm3k", "Touchmaster 3000 (v5.02 Standard)", + "tm3ka", "Touchmaster 3000 (v5.01 Standard)", + "tm4k", "Touchmaster 4000 (v6.03 Standard)", + "tm4ka", "Touchmaster 4000 (v6.02 Standard)", + "tm4kb", "Touchmaster 4000 (v6.01 Standard)", + "tm4kca", "Touchmaster 4000 (v6.02 California)", + "tm4kmn", "Touchmaster 4000 (v6.01 Minnesota)", + "tm4knj", "Touchmaster 4000 (v6.03 New Jersey)", + "tm5k", "Touchmaster 5000 (v7.10 Standard)", + "tm5ka", "Touchmaster 5000 (v7.01 Standard)", + "tm5kca", "Touchmaster 5000 (v7.10 California)", + "tm5kmn", "Touchmaster 5000 (v7.10 Minnesota)", + "tm7k", "Touchmaster 7000 (v8.04 Standard)", + "tm7ka", "Touchmaster 7000 (v8.00 Standard)", + "tm7keval", "Touchmaster 7000 (v8.1X Evaluation)", + "tm7kmn", "Touchmaster 7000 (v8.04 Minnesota)", + "tm7kmna", "Touchmaster 7000 (v8.00 Minnesota)", + "tm7knj", "Touchmaster 7000 (v8.05 New Jersey)", + "tm8k", "Touchmaster 8000 (v9.04 Standard)", + "tm8k902", "Touchmaster 8000 (v9.02 Standard)", + "tmac_a18", "Time Machine (1.8)", + "tmac_a24", "Time Machine (2.4)", + "tmachzac", "Time Machine (Zaccaria)", + "tmachzacf", "Time Machine (Zaccaria, French speech)", + "tmachzacg", "Time Machine (Zaccaria, German speech)", + "tmdo", "Touchmaster (v2.2-01 Standard)", + "tmek", "T-MEK (v5.1, The Warlords)", + "tmek20", "T-MEK (v2.0, prototype)", + "tmek44", "T-MEK (v4.4)", + "tmek45", "T-MEK (v4.5)", + "tmek51p", "T-MEK (v5.1, prototype)", + "tmfnt_l5", "Time Fantasy (L-5)", + "tmht", "Teenage Mutant Hero Turtles (UK 4 Players, set 1)", + "tmht22pe", "Teenage Mutant Hero Turtles - Turtles in Time (2 Players ver EBA)", + "tmht2p", "Teenage Mutant Hero Turtles (UK 2 Players, set 1)", + "tmht2pa", "Teenage Mutant Hero Turtles (UK 2 Players, set 2)", + "tmhta", "Teenage Mutant Hero Turtles (UK 4 Players, set 2)", + "tmmjprd", "Tokimeki Mahjong Paradise - Dear My Love", + "tmnt", "Teenage Mutant Ninja Turtles (World 4 Players)", + "tmnt2", "Teenage Mutant Ninja Turtles - Turtles in Time (4 Players ver UAA)", + "tmnt22pu", "Teenage Mutant Ninja Turtles - Turtles in Time (2 Players ver UDA)", + "tmnt2a", "Teenage Mutant Ninja Turtles - Turtles in Time (4 Players ver ADA)", + "tmnt2pj", "Teenage Mutant Ninja Turtles (Japan 2 Players)", + "tmnt2po", "Teenage Mutant Ninja Turtles (Oceania 2 Players)", + "tmnt_103", "Teenage Mutant Ninja Turtles (1.03)", + "tmnt_104", "Teenage Mutant Ninja Turtles (1.04)", + "tmntj", "Teenage Mutant Ninja Turtles (Japan 4 Players)", + "tmntu", "Teenage Mutant Ninja Turtles (US 4 Players, set 1)", + "tmntua", "Teenage Mutant Ninja Turtles (US 4 Players, set 2)", + "tmosh", "Tokimeki Memorial Oshiete Your Heart (GQ673 JAA)", + "tmoshs", "Tokimeki Memorial Oshiete Your Heart Seal Version (GE755 JAA)", + "tmoshsp", "Tokimeki Memorial Oshiete Your Heart Seal Version Plus (GE756 JAB)", + "tmoshspa", "Tokimeki Memorial Oshiete Your Heart Seal Version Plus (GE756 JAA)", + "tmpdoki", "Tokimeki Mahjong Paradise - Doki Doki Hen", + "tmspoker", "unknown TMS9980 Poker Game", + "tmwrp_l2", "Time Warp (L-2)", + "tmwrp_t2", "Time Warp (T-2)", + "tndrcade", "Thundercade / Twin Formation", + "tndrcadej", "Tokusyu Butai U.A.G. (Japan)", + "tnextspc", "The Next Space (set 1)", + "tnextspc2", "The Next Space (set 2)", + "tnextspcj", "The Next Space (Japan)", + "tnk3", "T.N.K III (US)", + "tnk3j", "T.A.N.K (Japan)", + "tnzs", "The NewZealand Story (World, new version) (newer PCB)", + "tnzsj", "The NewZealand Story (Japan, new version) (newer PCB)", + "tnzsjo", "The NewZealand Story (Japan, old version) (older PCB)", + "tnzso", "The NewZealand Story (World, old version) (older PCB)", + "tnzsop", "The NewZealand Story (World, prototype?) (older PCB)", + "todruaga", "The Tower of Druaga (New Ver.)", + "todruagao", "The Tower of Druaga (Old Ver.)", + "todruagas", "The Tower of Druaga (Sidam)", + "toffy", "Toffy", + "togenkyo", "Tougenkyou (Japan 890418)", + "toggle", "Toggle (prototype)", + "toki", "Toki (World, set 1)", + "tokia", "Toki (World, set 2)", + "tokib", "Toki (Datsu bootleg)", + "tokimbsj", "Tokimeki Bishoujo [BET] (Japan)", + "tokio", "Tokio / Scramble Formation (newer)", + "tokiob", "Tokio / Scramble Formation (bootleg)", + "tokioo", "Tokio / Scramble Formation (older)", + "tokiou", "Tokio / Scramble Formation (US)", + "tokisens", "Toki no Senshi - Chrono Soldier", + "tokiu", "Toki (US, set 1)", + "tokiua", "Toki (US, set 2)", + "tokkae", "Taisen Tokkae-dama (ver JAA)", + "tokyocop", "Tokyo Cop (Italy)", + "tokyogal", "Tokyo Gal Zukan (Japan)", + "tokyowar", "Tokyo Wars (Rev. TW2 Ver.A)", + "tom_06", "Theatre Of Magic (0.6a)", + "tom_10f", "Theatre Of Magic (1.0 French)", + "tom_12", "Theatre Of Magic (1.2X)", + "tom_13", "Theatre Of Magic (1.3X)", + "tom_14h", "Theatre Of Magic (1.4H)", + "tomahawk", "Tomahawk 777 (rev 5)", + "tomahawk1", "Tomahawk 777 (rev 1)", + "tomcat", "TomCat (prototype)", + "tomcatsw", "TomCat (Star Wars hardware, prototype)", + "tomy_400", "The Who's Tommy Pinball Wizard (4.00)", + "tomy_h30", "The Who's Tommy Pinball Wizard (3.00, The Netherlands)", + "tondemo", "Tondemo Crisis (Japan)", + "tonton", "Waku Waku Doubutsu Land TonTon (Japan)", + "tontonb", "Tonton [BET] (Japan set 1)", + "tonypok", "Poker Master (Tony-Poker V3.A, hack?)", + "toobin", "Toobin' (rev 3)", + "toobin1", "Toobin' (rev 1)", + "toobin2", "Toobin' (rev 2)", + "toobin2e", "Toobin' (Europe, rev 2)", + "toobine", "Toobin' (Europe, rev 3)", + "toobing", "Toobin' (German, rev 3)", + "top21", "Top XXI (Version 1.2)", + "topaz_l1", "Topaz (Shuffle) (L-1)", + "topbladv", "Top Blade V", + "topgame", "Top Game Laser L10 (Bingo)", + "topgamet", "Top Game Turbo (Bingo)", + "topgear", "Top Gear (4VXFC969, New Zealand)", + "topgun", "Vs. Top Gun", + "topgunbl", "Top Gunner (bootleg, Rotary Joystick)", + "topgunnr", "Top Gunner (Exidy)", + "topgunr", "Top Gunner (US, 8-way Joystick)", + "tophuntr", "Top Hunter - Roddy & Cathy (NGM-046)", + "tophuntrh", "Top Hunter - Roddy & Cathy (NGH-046)", + "topland", "Top Landing (World)", + "toppin", "Top Pin", + "toppyrap", "Toppy & Rappy", + "topracer", "Top Racer (with MB8841 + MB8842, 1984)", + "topracera", "Top Racer (with MB8841 + MB8842, 1983)", + "topracern", "Top Racer (no MB8841 + MB8842)", + "toprollr", "Top Roller", + "topsecex", "Top Secret (Exidy) (version 1.0)", + "topsecrt", "Top Secret (Japan, old revision)", + "topshoot", "Top Shooter", + "topskatr", "Top Skater (Export, Revision A)", + "topskatrj", "Top Skater (Japan)", + "topskatru", "Top Skater (USA, Revision A)", + "topspeed", "Top Speed (World)", + "topspeedu", "Top Speed (US)", + "toramich", "Tora e no Michi (Japan)", + "toratora", "Tora Tora (prototype?)", + "torch", "Torch", + "toride2g", "Toride II Adauchi Gaiden", + "toride2gg", "Toride II Adauchi Gaiden (German)", + "toride2gk", "Toride II Bok Su Oi Jeon Adauchi Gaiden (Korea)", + "toride2j", "Toride II (Japan)", + "tornado1", "Tornado (set 1, Defender bootleg)", + "tornado2", "Tornado (set 2, Defender bootleg)", + "tornbase", "Tornado Baseball / Ball Park", + "torp_e21", "Torpedo Alley (2.1, Europe)", + "tortufam", "Tortuga Family (Italian)", + "torus", "Torus", + "toryumon", "Toryumon", + "totan_04", "Tales Of The Arabian Nights (0.4)", + "totan_12", "Tales Of The Arabian Nights (1.2)", + "totan_13", "Tales Of The Arabian Nights (1.3)", + "totan_14", "Tales Of The Arabian Nights (1.4)", + "totcarn", "Total Carnage (rev LA1 03/10/92)", + "totcarnp", "Total Carnage (prototype, rev 1.0 01/25/92)", + "totd", "The Typing of the Dead (JPN, USA, EXP, KOR, AUS) (Rev A)", + "totem", "Totem", + "totlvica", "Total Vice (ver AAB)", + "totlvice", "Total Vice (ver UAC)", + "totlvicj", "Total Vice (ver JAD)", + "totmejan", "Tottemo E Jong", + "touchdn", "Touchdown", + "toucheme", "Touche Me", + "touchgo", "Touch & Go (World)", + "touchgoe", "Touch & Go (earlier revision)", + "touchgon", "Touch & Go (Non North America)", + "toukon3", "Shin Nihon Pro Wrestling Toukon Retsuden 3 Arcade Edition (Japan, TR1/VER.A)", + "toukon4", "Shin Nihon Pro Wrestling Toukon Retsuden 4 Arcade Edition (TRF1 Ver. A)", + "tour4000", "Tour 4000", + "tour4010", "Tour 4010", + "toursol", "Tournament Solitaire (V1.06, 08/03/95)", + "toursol1", "Tournament Solitaire (V1.04, 06/22/95)", + "tourtab2", "Tournament Table (set 2)", + "tourtabl", "Tournament Table (set 1)", + "tourvis", "Tourvision PCE bootleg", + "touryuu", "Touryuumon (V1.1)?", + "toutrun", "Turbo Out Run (Out Run upgrade, FD1094 317-0118)", + "toutrun1", "Turbo Out Run (deluxe cockpit, FD1094 317-0109)", + "toutrun2", "Turbo Out Run (cockpit, FD1094 317-0106)", + "toutrun3", "Turbo Out Run (cockpit, FD1094 317-0107)", + "toutrunj", "Turbo Out Run (Japan, Out Run upgrade, FD1094 317-0117)", + "toyfight", "Toy Fighter", + "toyland", "Toy Land Adventure", + "toypop", "Toypop", + "tp2m32", "Tetris Plus 2 (MegaSystem 32 Version)", + "tp84", "Time Pilot '84 (set 1)", + "tp84a", "Time Pilot '84 (set 2)", + "tp84b", "Time Pilot '84 (set 3)", + "tpgolf", "Top Player's Golf (NGM-003)(NGH-003)", + "tpoker2", "Turbo Poker 2", + "tps", "TPS", + "tqst", "Treasure Quest", + "trackfld", "Track & Field", + "trackfldc", "Track & Field (Centuri)", + "trackfldnz", "Track & Field (NZ bootleg?)", + "trailblz", "Trail Blazer", + "trailer", "Trailer", + "trally", "Thrash Rally (ALM-003)(ALH-003)", + "tranqgun", "Tranquilizer Gun", + "transfrm", "Transformer", + "travrusa", "Traverse USA / Zippy Race", + "travrusab", "Traverse USA (bootleg)", + "trbwtchs", "Trouble Witches AC (v1.00J)", + "trckydoc", "Tricky Doc (set 1)", + "trckydoca", "Tricky Doc (set 2)", + "treahunt", "Treasure Hunt", + "trebltop", "Treble Top (39-360-070)", + "trek_110", "Star Trek 25th Anniversary (1.10)", + "trek_11a", "Star Trek 25th Anniversary (1.10 Alpha Display)", + "trek_120", "Star Trek 25th Anniversary (1.20)", + "trek_200", "Star Trek 25th Anniversary (2.00)", + "trek_201", "Star Trek 25th Anniversary (2.01)", + "trgheart", "Trigger Heart Exelica (Rev A) (GDL-0036A)", + "tricktrp", "Trick Trap (World?)", + "trident", "Trident", + "triforce", "Triforce Bios", + "trigon", "Trigon (Japan)", + "triothep", "Trio The Punch - Never Forget Me... (World)", + "triothepj", "Trio The Punch - Never Forget Me... (Japan)", + "tripdraw", "Tripple Draw (V3.1 s)", + "tripjok", "Triple Joker (Bingo)", + "triplay", "Triple Play", + "triplep", "Triple Punch (set 1)", + "triplepa", "Triple Punch (set 2)", + "triplew1", "Mahjong Triple Wars (Japan)", + "triplew2", "Mahjong Triple Wars 2 (Japan)", + "triplfun", "Triple Fun", + "triplhnt", "Triple Hunt", + "tripool", "Tri-Pool (Casino Tech)", + "tripoola", "Tri-Pool (Costal Games)", + "trisport", "Tri-Sports", + "trivia12", "Trivial Pursuit (Think Tank - Genus Edition) (12/14/84)", + "triviabb", "Trivial Pursuit (Baby Boomer Edition) (3/20/85)", + "triviaes", "Trivial Pursuit (Spanish)", + "triviag1", "Trivial Pursuit (Think Tank - Genus Edition) (set 1)", + "triviag2", "Trivial Pursuit (Genus II Edition)", + "trivialp", "Trivial Pursuit (New Edition) (prod. 1D)", + "trivialpd", "Trivial Pursuit (New Edition) (prod. 1D) (Protocol)", + "trivialpo", "Trivial Pursuit", + "triviasp", "Trivial Pursuit (All Star Sports Edition)", + "triviayp", "Trivial Pursuit (Young Players Edition)", + "trivquiz", "Triv Quiz", + "trizeal", "Trizeal (GDL-0026)", + "trizn_l1", "Tri Zone (L-1)", + "trizn_t1", "Tri Zone (T-1)", + "troangel", "Tropical Angel", + "trog", "Trog (rev LA5 03/29/91)", + "trog3", "Trog (rev LA3 02/14/91)", + "trog4", "Trog (rev LA4 03/11/91)", + "trogpa4", "Trog (prototype, rev 4.00 07/27/90)", + "trogpa6", "Trog (prototype, rev PA6-PAC 09/09/90)", + "trojan", "Trojan (US set 1)", + "trojana", "Trojan (US set 2)", + "trojanb", "Trojan (bootleg)", + "trojanj", "Tatakai no Banka (Japan)", + "trojanr", "Trojan (Romstar)", + "tron", "Tron (8/9)", + "tron2", "Tron (6/25)", + "tron3", "Tron (6/17)", + "tron4", "Tron (6/15)", + "trophyh", "Trophy Hunting - Bear & Moose V1.0", + "trstar", "Top Ranking Stars (Ver 2.1O 1993/05/21) (New Version)", + "trstar2k", "Triple Star 2000", + "trstarj", "Top Ranking Stars (Ver 2.1J 1993/05/21) (New Version)", + "trstaro", "Top Ranking Stars (Ver 2.1O 1993/05/21) (Old Version)", + "trstaroj", "Top Ranking Stars (Ver 2.1J 1993/05/21) (Old Version)", + "truckk", "Truck Kyosokyoku (Japan, TKK2/VER.A)", + "trucksp2", "Truck Stop (P-2)", + "trucksp3", "Truck Stop (P-3)", + "truco", "Truco-Tron", + "trucocl", "Truco Clemente", + "truxton", "Truxton / Tatsujin", + "truxton2", "Truxton II / Tatsujin Oh", + "trvchlng", "Trivia Challenge", + "trvgns", "Trivia Genius", + "trvhang", "Trivia Hangup (question set 1)", + "trvhanga", "Trivia Hangup (question set 2)", + "trvmadns", "Trivia Madness - Series A Question set", + "trvmadnsa", "Trivia Madness - Series B Question set", + "trvmstr", "Trivia Master (set 1)", + "trvmstra", "Trivia Master (set 2)", + "trvmstrb", "Trivia Master (set 3)", + "trvmstrc", "Trivia Master (set 4)", + "trvquest", "Trivia Quest", + "trvwz2", "Trivia ? Whiz (6221-05, Edition 2)", + "trvwz2a", "Trivia ? Whiz (6221-05, Edition 2 Alt Sex trivia)", + "trvwz3h", "Trivia ? Whiz (6221-05, Edition 3)", + "trvwz3ha", "Trivia ? Whiz (6221-05, Edition 3 Sex trivia III)", + "trvwz3v", "Trivia ? Whiz (6221-04, Edition 3 Vertical)", + "trvwz4", "Trivia ? Whiz (6221-13, U5-0B Edition 4)", + "trvwz4a", "Trivia ? Whiz (6221-13, U5-0B Edition 4 Alt Sex trivia)", + "trvwzh", "Trivia ? Whiz (6221-00)", + "trvwzha", "Trivia ? Whiz (6221-00, with Sex trivia)", + "trvwzhb", "Trivia ? Whiz (6221-00, Alt Gen trivia)", + "trvwzv", "Trivia ? Whiz (6221-02, Vertical)", + "tryout", "Pro Baseball Skill Tryout (Japan)", + "ts2", "Battle Arena Toshinden 2 (USA 951124)", + "ts2a", "Battle Arena Toshinden 2 (USA 951124) Older", + "ts2j", "Battle Arena Toshinden 2 (Japan 951124)", + "ts_la2", "The Shadow (LA-2)", + "ts_la4", "The Shadow (LA-4)", + "ts_lf6", "The Shadow (LF-6) French", + "ts_lh6", "The Shadow (LH-6)", + "ts_lm6", "The Shadow (LM-6) Mild", + "ts_lx4", "The Shadow (LX-4)", + "ts_lx5", "The Shadow (LX-5)", + "ts_pa1", "The Shadow (PA-1)", + "tsamurai", "Samurai Nihon-Ichi (set 1)", + "tsamurai2", "Samurai Nihon-Ichi (set 2)", + "tsamuraih", "Samurai Nihon-Ichi (bootleg, harder)", + "tsarevna", "Tsarevna (v1.29)", + "tsarevnaa", "Tsarevna (v1.31)", + "tsclass", "Trap Shoot Classic (v1.0 21-mar-1997)", + "tshingen", "Shingen Samurai-Fighter (Japan, English)", + "tshingena", "Takeda Shingen (Japan, Japanese)", + "tshoot", "Turkey Shoot", + "tsptr_l3", "Transporter the Rescue (L-3)", + "tst_galx", "Galaxian Test ROM", + "tst_invd", "Space Invaders Test ROM", + "tstrike", "Thunder Strike (set 1)", + "tstrikea", "Thunder Strike (set 2, older)", + "tstrk_l1", "Triple Strike (Shuffle) (L-1)", + "tsurugi", "Tsurugi (ver EAB)", + "tsurugij", "Tsurugi (ver JAC)", + "tt_game", "unknown Toptronic pinball game", + "ttblock", "T. T. Block [TTL]", + "ttchamp", "Table Tennis Champions (set 1)", + "ttchampa", "Table Tennis Champions (set 2)", + "ttfitter", "T.T. Fitter (Japan)", + "ttmahjng", "T.T Mahjong", + "tts_l1", "Tic-Tac-Strike (Shuffle) (L-1)", + "tts_l2", "Tic-Tac-Strike (Shuffle) (L-2)", + "ttt_10", "Ticket Tac Toe (1.0)", + "tturf", "Tough Turf (set 2, Japan, 8751 317-0104)", + "tturfbl", "Tough Turf (Datsu bootleg)", + "tturfu", "Tough Turf (set 1, US, 8751 317-0099)", + "tubeit", "Tube-It", + "tubep", "Tube Panic", + "tubepb", "Tube Panic (bootleg)", + "tugboat", "Tugboat", + "tumbleb", "Tumble Pop (bootleg)", + "tumbleb2", "Tumble Pop (bootleg with PIC)", + "tumblep", "Tumble Pop (World)", + "tumblepba", "Tumble Pop (Playmark bootleg)", + "tumblepj", "Tumble Pop (Japan)", + "tunhunt", "Tunnel Hunt", + "tunhuntc", "Tunnel Hunt (Centuri)", + "turbo", "Turbo", + "turboa", "Turbo (encrypted set 1)", + "turbob", "Turbo (encrypted set 2)", + "turbofrc", "Turbo Force (old revision)", + "turbosub", "Turbo Sub (prototype rev. TSCA)", + "turbosub6", "Turbo Sub (prototype rev. TSC6)", + "turbosub7", "Turbo Sub (prototype rev. TSC7)", + "turbotag", "Turbo Tag (prototype)", + "turfmast", "Neo Turf Masters / Big Tournament Golf", + "turkhunt", "Turkey Hunting USA V1.0", + "turpin", "Turpin", + "turpins", "Turpin (bootleg on Scramble hardware)", + "turrett", "Turret Tower", + "turtles", "Turtles", + "turtship", "Turtle Ship (North America)", + "turtshipj", "Turtle Ship (Japan)", + "turtshipk", "Turtle Ship (Korea)", + "tutankhm", "Tutankham", + "tutankhms", "Tutankham (Stern Electronics)", + "tutstomb", "Tut's Tomb", + "tv21", "T.V. 21", + "tv21_3", "T.V. 21 III", + "tvablast", "Aero Blasters (Tourvision PCE bootleg)", + "tvcolumn", "Columns (Tourvision PCE bootleg)", + "tvdunexp", "Dungeon Explorer (Tourvision PCE bootleg)", + "tvflaptw", "Final Lap Twin (Tourvision PCE bootleg)", + "tvfsoc90", "Formation Soccer - Human Cup '90 (Tourvision PCE bootleg)", + "tvgomola", "Gomola Speed (Tourvision PCE bootleg)", + "tvjchan", "Jackie Chan (Tourvision PCE bootleg)", + "tvlegaxe", "Makyo Densetsu - The Legenary Axe (Tourvision PCE bootleg)", + "tvpcgen2", "PC Genjin 2 - Pithecanthropus Computerurus (Tourvision PCE bootleg)", + "tvpoker", "T.V. Poker", + "tvpow11", "Power Eleven (Tourvision PCE bootleg)", + "tvpwlg4", "Power League IV (Tourvision PCE bootleg)", + "tvrs2", "Rastan Saga II (Tourvision PCE bootleg)", + "tvsci", "Special Criminal Investigation (Tourvision PCE bootleg)", + "tvsssold", "Super Star Soldier (Tourvision PCE bootleg)", + "tvsvball", "Super Volley ball (Tourvision PCE bootleg)", + "tvthbld", "Thunder Blade (Tourvision PCE bootleg)", + "tvusapb", "USA Pro Basketball (Tourvision PCE bootleg)", + "tvvolfd", "Volfied (Tourvision PCE bootleg)", + "twcup98", "Tecmo World Cup '98 (JUET 980410 V1.000)", + "twinactn", "Twin Action", + "twinadv", "Twin Adventure (World)", + "twinadvk", "Twin Adventure (Korea)", + "twinbee", "TwinBee (ROM version)", + "twinbrat", "Twin Brats (set 1)", + "twinbrata", "Twin Brats (set 2)", + "twincobr", "Twin Cobra (World)", + "twincobru", "Twin Cobra (US)", + "twineag2", "Twin Eagle II - The Rescue Mission", + "twineagl", "Twin Eagle - Revenge Joe's Brother", + "twinfalc", "Twin Falcons", + "twinhawk", "Twin Hawk (World)", + "twinhawku", "Twin Hawk (US)", + "twinkle", "Twinkle", + "twinqix", "Twin Qix (Ver 1.0A 1995/01/17) (Prototype)", + "twins", "Twins (set 1)", + "twinsa", "Twins (set 2)", + "twinspri", "Twinkle Star Sprites", + "twinsqua", "Twin Squash", + "twocrude", "Two Crude (US)", + "twotiger", "Two Tigers (dedicated)", + "twotigerc", "Two Tigers (Tron conversion)", + "twrldc94", "Tecmo World Cup '94 (set 1)", + "twrldc94a", "Tecmo World Cup '94 (set 2)", + "twrshaft", "Tower & Shaft", + "tws96", "Tecmo World Soccer '96", + "twst_300", "Twister (3.00)", + "twst_404", "Twister (4.04)", + "twst_405", "Twister (4.05)", + "tx1", "TX-1 (World)", + "tx1jb", "TX-1 (Japan rev. B)", + "tx1jc", "TX-1 (Japan rev. C)", + "txsector", "TX-Sector", + "tylz", "Tylz (prototype)", + "typhoon", "Typhoon", + "tz_92", "Twilight Zone (9.2)", + "tz_94ch", "Twilight Zone (9.4CH)", + "tz_94h", "Twilight Zone (9.4H)", + "tz_h7", "Twilight Zone (H-7)", + "tz_h8", "Twilight Zone (H-8)", + "tz_ifpa", "Twilight Zone (IFPA rules)", + "tz_l1", "Twilight Zone (L-1)", + "tz_l2", "Twilight Zone (L-2)", + "tz_l3", "Twilight Zone (L-3)", + "tz_l4", "Twilight Zone (L-4)", + "tz_p3", "Twilight Zone (P-3)", + "tz_p4", "Twilight Zone (P-4)", + "tz_pa1", "Twilight Zone (PA-1)", + "uballoon", "Ultra Balloon", + "uboat65", "U-boat 65", + "uccops", "Undercover Cops (World)", + "uccopsar", "Undercover Cops - Alpha Renewal Version", + "uccopsj", "Undercover Cops (Japan)", + "uccopsu", "Undercover Cops (US)", + "uchuuai", "Mahjong Uchuu yori Ai wo komete (Japan)", + "ucytokyu", "Uchuu Tokkyuu Medalian", + "uecology", "Ultimate Ecology (Japan 931203)", + "ufo_x", "UFO-X", + "ufosensi", "Ufo Senshi Yohko Chan (MC-8123, 317-0064)", + "ufosensib", "Ufo Senshi Yohko Chan (bootleg, not encrypted)", + "ultennis", "Ultimate Tennis", + "ultennisj", "Ultimate Tennis (v 1.4, Japan)", + "ultrainv", "Ultra Invaders", + "ultraman", "Ultraman (Japan)", + "ultramhm", "Ultra Maru-hi Mahjong (Japan)", + "ultratnk", "Ultra Tank", + "ultrax", "Ultra X Weapons / Ultra Keibitai", + "ultrchmp", "Se Gye Hweng Dan Ultra Champion (Korea)", + "ultrchmph", "Cheng Ba Shi Jie - Chao Shi Kong Guan Jun (Taiwan)", + "umanclub", "Ultraman Club - Tatakae! Ultraman Kyoudai!!", + "umipoker", "Umi de Poker / Marine Paradise (Japan)", + "umk3", "Ultimate Mortal Kombat 3 (rev 1.2)", + "umk3r10", "Ultimate Mortal Kombat 3 (rev 1.0)", + "umk3r11", "Ultimate Mortal Kombat 3 (rev 1.1)", + "unclepoo", "Uncle Poo", + "undefeat", "Under Defeat (GDL-0035)", + "undoukai", "The Undoukai (Japan)", + "undrfire", "Under Fire (World)", + "undrfirej", "Under Fire (Japan)", + "undrfireu", "Under Fire (US)", + "uniwars", "UniWar S", + "unkch1", "New Cherry Gold '99 (bootleg of Super Cherry Master) (set 1)", + "unkch2", "Super Cherry Gold (bootleg of Super Cherry Master)", + "unkch3", "New Cherry Gold '99 (bootleg of Super Cherry Master) (set 2)", + "unkch4", "Grand Cherry Master (bootleg of Super Cherry Master)", + "unkh8gam", "unknown H8 Italian Gambling game", + "unkhorse", "unknown Japanese horse gambling game", + "unkpacg", "unknown Pac-Man gambling game", + "unsquad", "U.N. Squadron (USA)", + "untoucha", "Untouchable (Japan)", + "uopoko", "Puzzle Uo Poko (International)", + "uopokoj", "Puzzle Uo Poko (Japan)", + "upndown", "Up'n Down (315-5030)", + "upndownu", "Up'n Down (not encrypted)", + "upscope", "Up Scope", + "upyoural", "Up Your Alley", + "urashima", "Otogizoushi Urashima Mahjong (Japan)", + "usafootb", "U.S.A. Football", + "usagi", "Usagi (V2.02J)", + "usagiol", "Usagi Online (v2.04J)", + "usagiym", "Usagi - Yamashiro Mahjong Hen (GDL-0022)", + "usclssic", "U.S. Classic", + "usg182", "Games V18.2", + "usg185", "Games V18.5", + "usg187c", "Games V18.7C", + "usg32", "Super Duper Casino (California V3.2)", + "usg82", "Super Ten V8.2", + "usg83x", "Super Ten V8.3X", + "usgames", "Games V25.4X", + "usvsthem", "Us vs. Them", + "utoukond", "Ultra Toukon Densetsu (Japan)", + "v4addlad", "Adders and Ladders (v2.1) (MPU4 Video)", + "v4addlad20", "Adders and Ladders (v2.0) (MPU4 Video)", + "v4barqs2", "Barquest 2 (v0.3) (MPU4 Video)", + "v4barqst", "Barquest (v2.6d) (MPU4 Video)", + "v4big40", "Big 40 Poker (Bwb) (MPU4 Video)", + "v4bigfrt", "Big Fruits (v2.0?) (MPU4 Video)", + "v4bios", "MPU4 Video Firmware", + "v4blox", "Blox (v2.0) (MPU4 Video)", + "v4bloxd", "Blox (v2.0, Datapak) (MPU4 Video)", + "v4bubbnk", "Bubbly Bonk (v4.0?) (MPU4 Video)", + "v4bulblx", "Bullion Blox (Bwb) (MPU4 Video)", + "v4cmaze", "The Crystal Maze (v1.3) (MPU4 Video)", + "v4cmaze2", "The New Crystal Maze Featuring Ocean Zone (v2.2) (MPU4 Video)", + "v4cmaze2a", "The New Crystal Maze Featuring Ocean Zone (v0.1, AMLD) (MPU4 Video)", + "v4cmaze2b", "The New Crystal Maze Featuring Ocean Zone (v2.0) (MPU4 Video)", + "v4cmaze2c", "The New Crystal Maze Featuring Ocean Zone (v?.?) (MPU4 Video)", + "v4cmaze2d", "The New Crystal Maze Featuring Ocean Zone (v2.2, Datapak) (MPU4 Video)", + "v4cmaze3", "The Crystal Maze Team Challenge (v0.9) (MPU4 Video)", + "v4cmaze3a", "The Crystal Maze Team Challenge (v1.2, AMLD) (MPU4 Video)", + "v4cmaze3b", "The Crystal Maze Team Challenge (v0.8) (MPU4 Video)", + "v4cmaze3c", "The Crystal Maze Team Challenge (v?.?) (MPU4 Video)", + "v4cmaze3d", "The Crystal Maze Team Challenge (v0.9, Datapak) (MPU4 Video)", + "v4cmazea", "The Crystal Maze (v0.1, AMLD) (MPU4 Video)", + "v4cmazeb", "The Crystal Maze (v1.2) (MPU4 Video)", + "v4cmazec", "The Crystal Maze (v1.3 alt) (MPU4 Video)", + "v4cmazed", "The Crystal Maze (v1.1) (MPU4 Video)", + "v4cmazedat", "The Crystal Maze (v1.3, Datapak) (MPU4 Video)", + "v4cshinf", "Cash Inferno (Bwb) (MPU4 Video)", + "v4cybcas", "Cyber Casino (Nova) (MPU4 Video)", + "v4dbltak", "Double Take (Bwb) (MPU4 Video)", + "v4dealem", "Deal 'Em (MPU4 Conversion Kit, v7.0)", + "v4eyedwn", "Eyes Down (v1.3) (MPU4 Video)", + "v4eyedwnd", "Eyes Down (v1.3, Datapak) (MPU4 Video)", + "v4frfact", "Fruit Factory (Bwb) (MPU4 Video)", + "v4gldrsh", "Gold Rush (Bwb) (MPU4 Video)", + "v4mate", "The Mating Game (v0.4) (MPU4 Video)", + "v4mated", "The Mating Game (v0.4, Datapak) (MPU4 Video)", + "v4mazbel", "Mazooma Belle (v2.5) (MPU4 Video)", + "v4mazbla", "Mazooma Belle (v1.5) (MPU4 Video)", + "v4mdice", "Miami Dice (Bwb) (MPU4 Video)", + "v4megbuk", "Megabucks Poker (Bwb) (MPU4 Video)", + "v4miami", "Miami Dice (Nova) (MPU4 Video)", + "v4missis", "Mississippi Lady (Nova) (MPU4 Video)", + "v4monte", "Monte Carlo Or Bust (Bwb) (MPU4 Video)", + "v4opt3", "Option 3 (v1.0) (MPU4 Video)", + "v4opt3d", "Option 3 (v1.0) (Datapak) (MPU4 Video)", + "v4ovrmn3", "Over Moon Pt3 (Bwb) (MPU4 Video)", + "v4picdil", "Piccadilly Nights (Nova) (MPU4 Video)", + "v4psi", "Prize Space Invaders (v1.1) (MPU4 Video)", + "v4psia", "Prize Space Invaders (v1.2) (MPU4 Video)", + "v4psib", "Prize Space Invaders (v2.0?) (MPU4 Video)", + "v4pztet", "Prize Tetris (Bwb) (MPU4 Video, set 1)", + "v4pzteta", "Prize Tetris (Bwb) (MPU4 Video, set 2)", + "v4quidgr", "Ten Quid Grid (v1.2) (MPU4 Video)", + "v4quidgr2", "Ten Quid Grid (v2.4) (MPU4 Video)", + "v4quidgr2d", "Ten Quid Grid (v2.4, Datapak) (MPU4 Video)", + "v4quidgrd", "Ten Quid Grid (v1.2, Datapak) (MPU4 Video)", + "v4redhtp", "Red Hot Poker (20p/10GBP Cash, release 3) (MPU4 Video)", + "v4rencas", "Reno Casino (Bwb) (MPU4 Video)", + "v4reno", "Reno Reels (20p/10GBP Cash, release A) (MPU4 Video)", + "v4rhmaz", "Red Hot Mazooma Belle (Bwb) (MPU4 Video)", + "v4shpwnd", "Shop Window (v2.0) (MPU4 Video)", + "v4sixx", "6-X (Bwb) (MPU4 Video)", + "v4sklcsh", "Skill Cash (v1.1) (MPU4 Video)", + "v4skltrk", "Skill Trek (v1.1) (MPU4 Video, set 1)", + "v4skltrka", "Skill Trek (v1.1) (MPU4 Video, set 2)", + "v4strike", "Strike it Lucky (v0.5) (MPU4 Video)", + "v4strike2", "Strike it Lucky (v0.53) (MPU4 Video)", + "v4strike2d", "Strike it Lucky (v0.53, Datapak) (MPU4 Video)", + "v4striked", "Strike it Lucky (v0.5, Datapak) (MPU4 Video)", + "v4sunbst", "Sunburst (Bwb) (MPU4 Video)", + "v4tetrs", "BwB Tetris v 2.2 (MPU4 Video)", + "v4time", "Time Machine (v2.0) (MPU4 Video)", + "v4timebn", "Time Bandit (Bwb) (MPU4 Video)", + "v4turnov", "Turnover (v2.3) (MPU4 Video)", + "v4vgpok", "Vegas Poker (prototype, release 2) (MPU4 Video)", + "v4wize", "Wize Move (v1.3d) (MPU4 Video)", + "v4wizea", "Wize Move (v1.2) (MPU4 Video)", + "valkyrie", "Valkyrie No Densetsu (Japan)", + "valtric", "Valtric", + "vamphalf", "Vamf x1/2 (Europe)", + "vamphalfk", "Vamp x1/2 (Korea)", + "vampj", "Vampire: The Night Warriors (Japan 940705)", + "vampja", "Vampire: The Night Warriors (Japan 940705 alt)", + "vampjr1", "Vampire: The Night Warriors (Japan 940630)", + "vandyke", "Vandyke (Japan)", + "vandykeb", "Vandyke (bootleg with PIC16c57)", + "vandykejal", "Vandyke (Jaleco, set 1)", + "vandykejal2", "Vandyke (Jaleco, set 2)", + "vangrd2", "Vanguard II", + "vanguard", "Vanguard (SNK)", + "vanguardc", "Vanguard (Centuri)", + "vanguardj", "Vanguard (Japan)", + "vanilla", "Mahjong Vanilla Syndrome (Japan)", + "vanvan", "Van-Van Car", + "vanvanb", "Van-Van Car (Karateco set 2)", + "vanvank", "Van-Van Car (Karateco set 1)", + "vaportra", "Vapor Trail - Hyper Offence Formation (World revision 1)", + "vaportra3", "Vapor Trail - Hyper Offence Formation (World revision 3?)", + "vaportrau", "Vapor Trail - Hyper Offence Formation (US)", + "vaportrx", "Vapor TRX", + "vaportrxp", "Vapor TRX (prototype)", + "varth", "Varth: Operation Thunderstorm (World 920714)", + "varthj", "Varth: Operation Thunderstorm (Japan 920714)", + "varthr1", "Varth: Operation Thunderstorm (World 920612)", + "varthu", "Varth: Operation Thunderstorm (USA 920612)", + "vasara", "Vasara", + "vasara2", "Vasara 2 (set 1)", + "vasara2a", "Vasara 2 (set 2)", + "vastar", "Vastar (set 1)", + "vastar2", "Vastar (set 2)", + "vastar3", "Vastar (set 3)", + "vastar4", "Vastar (set 4)", + "vathlete", "Virtua Athletics / Virtua Athlete (GDS-0019)", + "vautour", "Vautour (bootleg of Phoenix) (8085A CPU)", + "vautourz", "Vautour (bootleg of Phoenix) (Z80 CPU)", + "vball", "U.S. Championship V'ball (US)", + "vball2pj", "U.S. Championship V'ball (Japan)", + "vball2pjb", "U.S. Championship V'ball (bootleg of Japan set)", + "vballb", "U.S. Championship V'ball (bootleg of US set)", + "vblokbrk", "VS Block Breaker (Asia)", + "vbowl", "Virtua Bowling (World, V101XCM)", + "vbowlj", "Virtua Bowling (Japan, V100JCM)", + "vcarn", "Video Carnival 1999 / Super Royal Card (Version 0.11)", + "vcircle", "Vicious Circle (prototype)", + "vcombat", "Virtual Combat", + "vcop", "Virtua Cop (Revision B)", + "vcop2", "Virtua Cop 2", + "vcop3", "Virtua Cop 3 (Rev A) (GDX-0003A)", + "vcopa", "Virtua Cop (Revision A)", + "vector", "Vector", + "vega", "Vega", + "vegas", "Vegas", + "vegasfst", "Royal Vegas Joker Card (fast deal)", + "vegasfte", "Royal Vegas Joker Card (fast deal, English gfx)", + "vegasgp", "Vegas (Game Plan)", + "vegasmil", "Royal Vegas Joker Card (fast deal, Mile)", + "vegasslw", "Royal Vegas Joker Card (slow deal)", + "vegast", "Vegas (Taito)", + "vendetta", "Vendetta (World 4 Players ver. T)", + "vendetta2p", "Vendetta (World 2 Players ver. W)", + "vendetta2pd", "Vendetta (Asia 2 Players ver. D)", + "vendetta2pu", "Vendetta (Asia 2 Players ver. U)", + "vendettaj", "Crime Fighters 2 (Japan 2 Players ver. P)", + "vendettar", "Vendetta (World 4 Players ver. R)", + "venture", "Venture (version 5 set 1)", + "venture2", "Venture (version 5 set 2)", + "venture4", "Venture (version 4)", + "venus", "Venus (bootleg of Gyruss)", + "version4", "Version 4 (Version 4.3R CGA)", + "version4d2", "Version 4 (Version 4.3E CGA)", + "version4d3", "Version 4 (Version 4.3LT CGA)", + "version4o", "Version 4 (Version 4.2R CGA)", + "version4v", "Version 4 (Version 4.3R Dual)", + "version4v2", "Version 4 (Version 4.3E Dual)", + "version4v3", "Version 4 (Version 4.3LT Dual)", + "vf", "Virtua Fighter", + "vf2", "Virtua Fighter 2 (Version 2.1)", + "vf2a", "Virtua Fighter 2 (Revision A)", + "vf2b", "Virtua Fighter 2 (Revision B)", + "vf2o", "Virtua Fighter 2", + "vf3", "Virtua Fighter 3 (Revision C)", + "vf3a", "Virtua Fighter 3 (Revision A)", + "vf3tb", "Virtua Fighter 3 Team Battle", + "vf4", "Virtua Fighter 4 (GDS-0012)", + "vf4b", "Virtua Fighter 4 (Rev B) (GDS-0012B)", + "vf4c", "Virtua Fighter 4 (Rev C) (GDS-0012C)", + "vf4cart", "Virtua Fighter 4 (Cartridge)", + "vf4evo", "Virtua Fighter 4 Evolution (Rev B) (GDS-0024B)", + "vf4evoa", "Virtua Fighter 4 Evolution (Rev A) (GDS-0024A)", + "vf4evoct", "Virtua Fighter 4 Evolution (Cartridge)", + "vf4tuned", "Virtua Fighter 4 Final Tuned (Rev F) (GDS-0036F)", + "vf4tuneda", "Virtua Fighter 4 Final Tuned (Rev A) (GDS-0036A)", + "vf4tunedd", "Virtua Fighter 4 Final Tuned (Rev D) (GDS-0036D)", + "vfive", "V-Five (Japan)", + "vfkids", "Virtua Fighter Kids (JUET 960319 V0.000)", + "vformula", "Virtua Formula", + "vfremix", "Virtua Fighter Remix (JUETBKAL 950428 V1.000)", + "vfurlong", "Net Select Keiba Victory Furlong", + "vgoalsca", "V Goal Soccer (set 2)", + "vgoalsoc", "V Goal Soccer (set 1)", + "vhunt2", "Vampire Hunter 2: Darkstalkers Revenge (Japan 970929)", + "vhunt2d", "Vampire Hunter 2: Darkstalkers Revenge (Japan 970913 Phoenix Edition) (bootleg)", + "vhunt2r1", "Vampire Hunter 2: Darkstalkers Revenge (Japan 970913)", + "vhuntj", "Vampire Hunter: Darkstalkers' Revenge (Japan 950316)", + "vhuntjr1", "Vampire Hunter: Darkstalkers' Revenge (Japan 950307)", + "vhuntjr1s", "Vampire Hunter: Darkstalkers' Revenge (Japan 950307 stop version)", + "vhuntjr2", "Vampire Hunter: Darkstalkers' Revenge (Japan 950302)", + "victlapw", "Ace Driver: Victory Lap (Rev. ADV2)", + "victnine", "Victorious Nine", + "victor21", "Victor 21", + "victor5", "G.E.A.", + "victor6", "Victor 6 (v2.3N)", + "victor6a", "Victor 6 (v2.3)", + "victor6b", "Victor 6 (v1.2)", + "victorba", "Victor Banana", + "victory", "Victory", + "victoryp", "Victory (Pinball)", + "victroad", "Victory Road", + "videocba", "Video Cordoba", + "videodad", "Video Dado", + "videomat", "Videomat (Polish bootleg)", + "videopin", "Video Pinball", + "videopkr", "Video Poker", + "videtrna", "Videotron Poker (normal controls)", + "videtron", "Videotron Poker (cards selector, set 1)", + "videtron2", "Videotron Poker (cards selector, set 2)", + "vidvince", "Video Vince and the Game Factory (prototype)", + "viewpoin", "Viewpoint", + "vigilant", "Vigilante (World, set 1)", + "vigilant1", "Vigilante (World, set 2)", + "vigilantj", "Vigilante (Japan)", + "vigilantu", "Vigilante (US)", + "vigilantu2", "Vigilante (US) - Rev. G", + "viking", "Viking", + "vikingt", "Viking Treasure", + "vimana", "Vimana (World, set 1)", + "vimanaj", "Vimana (Japan)", + "vimanan", "Vimana (World, set 2)", + "vindctr2", "Vindicators Part II (rev 3)", + "vindctr2r1", "Vindicators Part II (rev 1)", + "vindctr2r2", "Vindicators Part II (rev 2)", + "vindictr", "Vindicators (rev 5)", + "vindictr1", "Vindicators (rev 1)", + "vindictr2", "Vindicators (rev 2)", + "vindictr4", "Vindicators (rev 4)", + "vindictre", "Vindicators (Europe, rev 5)", + "vindictre3", "Vindicators (Europe, rev 3)", + "vindictre4", "Vindicators (Europe, rev 4)", + "vindictrg", "Vindicators (German, rev 1)", + "viofight", "Violence Fight (World)", + "viofightj", "Violence Fight (Japan)", + "viofightu", "Violence Fight (US)", + "viostorm", "Violent Storm (ver EAC)", + "viostorma", "Violent Storm (ver AAC)", + "viostormab", "Violent Storm (ver AAB)", + "viostormeb", "Violent Storm (ver EAB)", + "viostormj", "Violent Storm (ver JAC)", + "viostormu", "Violent Storm (ver UAC)", + "viostormub", "Violent Storm (ver UAB)", + "vipclub", "Vip Club - Maru-hi Ippatsu Kaihou [BET] (Japan 880310)", + "viper", "Viper", + "viperp", "Viper (Pinball)", + "viprp1", "Viper Phase 1 (New Version, World)", + "viprp1hk", "Viper Phase 1 (Hong Kong)", + "viprp1j", "Viper Phase 1 (New Version, Japan)", + "viprp1k", "Viper Phase 1 (New Version, Korea)", + "viprp1oj", "Viper Phase 1 (Japan)", + "viprp1ot", "Viper Phase 1 (Germany)", + "viprp1s", "Viper Phase 1 (New Version, Switzerland)", + "viprp1u", "Viper Phase 1 (New Version, US set 1)", + "viprp1ua", "Viper Phase 1 (New Version, US set 2)", + "viprsega", "Viper Night Drivin'", + "virnba", "Virtua NBA (JPN, USA, EXP, KOR, AUS)", + "virnbao", "Virtua NBA (JPN, USA, EXP, KOR, AUS) (original)", + "virnbap", "Virtua NBA (prototype)", + "vitaminc", "Mahjong Vitamin C (Japan)", + "vivdolls", "Vivid Dolls", + "vlcno_1a", "Volcano (Sound Only, alternate version)", + "vlcno_1b", "Volcano (Sound Only)", + "vlcno_ax", "Volcano", + "vliner", "V-Liner (set 1)", + "vlinero", "V-Liner (set 2)", + "vmahjong", "Virtual Mahjong (J 961214 V1.000)", + "vmetal", "Varia Metal", + "vmetaln", "Varia Metal (New Ways Trading Co.)", + "voleybal", "Voley Ball", + "volfied", "Volfied (World, revision 1)", + "volfiedj", "Volfied (Japan, revision 1)", + "volfiedjo", "Volfied (Japan)", + "volfiedo", "Volfied (World)", + "volfiedu", "Volfied (US, revision 1)", + "volfieduo", "Volfied (US)", + "vollyrmt", "Volly (Ramtek) [TTL]", + "voltan", "Voltan Escapes Cosmic Doom", + "von", "Cyber Troopers Virtual-On (USA, Revision B)", + "von2", "Virtual On 2: Oratorio Tangram (Revision B)", + "von254g", "Virtual On 2: Oratorio Tangram (ver 5.4g)", + "vonj", "Cyber Troopers Virtual-On (Japan, Revision B)", + "vonot", "Virtual On Oratorio Tangram M.S.B.S. ver5.66 2000 Edition", + "vortex", "Vortex", + "vortexp", "Vortex (Pinball)", + "voyager", "Star Trek: Voyager", + "vpoker", "Videotronics Poker", + "vpool", "Video Pool (bootleg on Moon Cresta hardware)", + "vr", "Virtua Racing", + "vrkon_l1", "Varkon (L-1)", + "vrnwrld", "Verne's World", + "vroulet", "Vegas Roulette", + "vs10yard", "Vs 10-Yard Fight (World, 11/05/84)", + "vs10yardj", "Vs 10-Yard Fight (Japan)", + "vs10yardu", "Vs 10-Yard Fight (US, Taito license)", + "vs2", "Virtua Striker 2 (Step 2.0)", + "vs2002ex", "Virtua Striker 2002 (GDT-0002)", + "vs2002j", "Virtua Striker 2002 (GDT-0001)", + "vs215", "Virtua Striker 2 (Step 1.5)", + "vs215o", "Virtua Striker 2 (Step 1.5, older)", + "vs298", "Virtua Striker 2 '98 (Step 2.0)", + "vs29815", "Virtua Striker 2 '98 (Step 1.5)", + "vs299", "Virtua Striker 2 '99", + "vs299a", "Virtua Striker 2 '99 (Revision A)", + "vs299b", "Virtua Striker 2 '99 (Revision B)", + "vs2_2k", "Virtua Striker 2 Ver. 2000 (JPN, USA, EXP, KOR, AUS) (Rev C)", + "vs2v991", "Virtua Striker 2 '99.1 (Revision B)", + "vs4", "Virtua Striker 4 (Export) (GDT-0015)", + "vs42006", "Virtua Striker 4 Ver.2006 (Japan) (Rev D) (GDT-0020D)", + "vs4j", "Virtua Striker 4 (Japan) (Rev E) (GDT-0013E)", + "vsav", "Vampire Savior: The Lord of Vampire (Euro 970519)", + "vsav2", "Vampire Savior 2: The Lord of Vampire (Japan 970913)", + "vsav2d", "Vampire Savior 2: The Lord of Vampire (Japan 970913 Phoenix Edition) (bootleg)", + "vsava", "Vampire Savior: The Lord of Vampire (Asia 970519)", + "vsavd", "Vampire Savior: The Lord of Vampire (Euro 970519 Phoenix Edition) (bootleg)", + "vsavh", "Vampire Savior: The Lord of Vampire (Hispanic 970519)", + "vsavj", "Vampire Savior: The Lord of Vampire (Japan 970519)", + "vsavu", "Vampire Savior: The Lord of Vampire (USA 970519)", + "vsbball", "Vs. BaseBall (US, set BA E-1)", + "vsbballj", "Vs. BaseBall (Japan, set BA A-3)", + "vsbballja", "Vs. BaseBall (Japan, set BA A-2)", + "vsbballjb", "Vs. BaseBall (Japan, set BA A-1)", + "vsfdf", "Vs. Freedom Force", + "vsgongf", "VS Gong Fight", + "vsgradus", "Vs. Gradius (US, set GR E)", + "vsgshoe", "Vs. Gumshoe (set GM5)", + "vshoot", "J-League Soccer V-Shoot (Japan)", + "vsmahjng", "Vs. Mahjong (Japan)", + "vsnetscr", "Versus Net Soccer (ver EAD)", + "vsnetscra", "Versus Net Soccer (ver AAA)", + "vsnetscreb", "Versus Net Soccer (ver EAB)", + "vsnetscrj", "Versus Net Soccer (ver JAB)", + "vsnetscru", "Versus Net Soccer (ver UAB)", + "vspinbal", "Vs. Pinball (US, set PN4 E-1)", + "vspinbalj", "Vs. Pinball (Japan, set PN3 B)", + "vspsx", "Video System PSX", + "vsskykid", "Vs. Super SkyKid", + "vsslalom", "Vs. Slalom", + "vssoccer", "Vs. Soccer (set SC4-2 A)", + "vssoccera", "Vs. Soccer (set SC4-3 ?)", + "vstennis", "Vs. Tennis (Japan/USA, set TE A-3)", + "vstennisa", "Vs. Tennis (Japan/USA, set 2)", + "vstennisb", "Vs. Tennis (Japan/USA, set 3)", + "vstetris", "Vs. Tetris", + "vstrik3", "Virtua Striker 3 Ver. 2002 (GDS-0006)", + "vstrik3c", "Virtua Striker 3 (USA, EXP, KOR, AUS) (Cart, Rev C)", + "vstrik3cb", "Virtua Striker 3 (USA, EXP, KOR, AUS) (Cart, Rev B)", + "vstriker", "Virtua Striker (Revision A)", + "vstrikero", "Virtua Striker", + "vtenis2c", "Virtua Tennis 2 / Power Smash 2 (JPN) (USA, EXP, KOR, AUS) (Cart, Rev A)", + "vtennis", "Virtua Tennis (USA, EXP, KOR, AUS) / Power Smash (JPN)", + "vtennis2", "Virtua Tennis 2 / Power Smash 2 (Rev A) (GDS-0015A)", + "vtennisg", "Virtua Tennis / Power Smash (GDS-0011)", + "vulcan", "Vulcan Venture (New)", + "vulcana", "Vulcan Venture (Old)", + "vulcanb", "Vulcan Venture (Oldest)", + "vulgus", "Vulgus (set 1)", + "vulgusa", "Vulgus (set 2)", + "vulgusj", "Vulgus (Japan?)", + "wackadoo", "Wack-A-Doodle-Doo (Redemption)", + "wacko", "Wacko", + "wakuwak7", "Waku Waku 7", + "wallc", "Wall Crash (set 1)", + "wallca", "Wall Crash (set 2)", + "wallst", "Wall Street", + "wanganmd", "Wangan Midnight (WMN1 Ver. A)", + "wangmd2b", "Wangan Midnight Maximum Tune 2 (Japan) (Rev A) (GDX-0016A)", + "wangmid", "Wangan Midnight Maximum Tune (Export) (Rev B) (GDX-0009B)", + "wangmid2", "Wangan Midnight Maximum Tune 2 (Export) (GDX-0015)", + "wanted", "Wanted", + "warcadia", "Waga Seishun no Arcadia", + "wardner", "Wardner (World)", + "wardnerj", "Wardner no Mori (Japan)", + "warfa", "War: The Final Assault", + "wargods", "War Gods (HD 10/09/1996 - Dual Resolution)", + "wargodsa", "War Gods (HD 08/15/1996)", + "wargodsb", "War Gods (HD 12/11/1995)", + "warlords", "Warlords", + "warofbug", "War of the Bugs or Monsterous Manouvers in a Mushroom Maze", + "warofbugg", "War of the Bugs or Monsterous Manouvers in a Mushroom Maze (German)", + "warofbugu", "War of the Bugs or Monsterous Manouvers in a Mushroom Maze (US)", + "warpsped", "Warp Speed (prototype)", + "warpwarp", "Warp & Warp", + "warpwarpr", "Warp Warp (Rock-Ola set 1)", + "warpwarpr2", "Warp Warp (Rock-Ola set 2)", + "warrior", "Warrior", + "warriorb", "Warrior Blade - Rastan Saga Episode III (Japan)", + "warzard", "Warzard (Japan 961121)", + "warzardr1", "Warzard (Japan 961023)", + "waterski", "Water Ski", + "waterwld", "Waterworld (rev.3)", + "waterwld2", "Waterworld (rev.2)", + "watrball", "Water Balls", + "waverunr", "Wave Runner (Japan, Revision A)", + "waveshrk", "Wave Shark (UAB, USA v1.04)", + "wb3", "Wonder Boy III - Monster Lair (set 6, World, System 16B, 8751 317-0098)", + "wb31", "Wonder Boy III - Monster Lair (set 1, Japan, System 16A, FD1094 317-0084)", + "wb32", "Wonder Boy III - Monster Lair (set 2, Japan, System 16B, FD1094 317-0085)", + "wb33", "Wonder Boy III - Monster Lair (set 3, World, System 16B, FD1094 317-0089)", + "wb34", "Wonder Boy III - Monster Lair (set 4, Japan, System 16B, FD1094 317-0087)", + "wb35", "Wonder Boy III - Monster Lair (set 5, Japan, System 16A, FD1089A 317-0086)", + "wb3bbl", "Wonder Boy III - Monster Lair (bootleg)", + "wbbc97", "Beach Festival World Championship 1997", + "wbdeluxe", "Wonder Boy Deluxe", + "wbeachvl", "World Beach Volley (set 1)", + "wbeachvl2", "World Beach Volley (set 2)", + "wbeachvl3", "World Beach Volley (set 3)", + "wbml", "Wonder Boy in Monster Land (Japan New Ver., MC-8123, 317-0043)", + "wbmlb", "Wonder Boy in Monster Land (English bootleg set 1)", + "wbmlbg", "Wonder Boy in Monster Land (English bootleg set 2)", + "wbmlbge", "Wonder Boy in Monster Land (English bootleg set 3)", + "wbmljb", "Wonder Boy in Monster Land (Japan bootleg)", + "wbmljo", "Wonder Boy in Monster Land (Japan Old Ver., MC-8123, 317-0043)", + "wbmlvc", "Wonder Boy in Monster Land (English, Virtual Console)", + "wboy", "Wonder Boy (set 1, 315-5177)", + "wboy2", "Wonder Boy (set 2, 315-5178)", + "wboy2u", "Wonder Boy (set 2, not encrypted)", + "wboy3", "Wonder Boy (set 3, 315-5135)", + "wboy4", "Wonder Boy (315-5162, 4-D Warriors Conversion)", + "wboy5", "Wonder Boy (set 5, bootleg)", + "wboyo", "Wonder Boy (set 1, 315-5135)", + "wboysys2", "Wonder Boy (system 2)", + "wboyu", "Wonder Boy (prototype?)", + "wboyub", "Wonder Boy (US bootleg)", + "wc90", "Tecmo World Cup '90 (World)", + "wc90a", "Tecmo World Cup '90 (Euro set 1)", + "wc90b", "Tecmo World Cup '90 (Euro set 2)", + "wc90b1", "Euro League (Italian hack of Tecmo World Cup '90)", + "wc90b2", "Worldcup '90", + "wc90t", "Tecmo World Cup '90 (trackball set 1)", + "wcat3", "Wild Cat 3", + "wcatcher", "Mahjong Wakuwaku Catcher (Japan)", + "wcbowl", "World Class Bowling (v1.66)", + "wcbowl11", "World Class Bowling (v1.1)", + "wcbowl12", "World Class Bowling (v1.2)", + "wcbowl13", "World Class Bowling (v1.3)", + "wcbowl13j", "World Class Bowling (v1.3J, Japan)", + "wcbowl14", "World Class Bowling (v1.4)", + "wcbowl140", "World Class Bowling Tournament (v1.40)", + "wcbowl15", "World Class Bowling (v1.5)", + "wcbowl16", "World Class Bowling (v1.6)", + "wcbowl161", "World Class Bowling (v1.61)", + "wcbowl165", "World Class Bowling (v1.65)", + "wcbowldx", "World Class Bowling Deluxe (v2.00)", + "wcherry", "Win Cherry (ver 0.16 - 19990219)", + "wcombat", "World Combat (ver UAA?)", + "wcombatj", "World Combat (ver JAA)", + "wcombatk", "World Combat (ver KBC)", + "wcs_l2", "World Cup Soccer (Lx-2)", + "wcs_p2", "World Cup Soccer (Pa-2)", + "wcs_p3", "World Cup Soccer (Px-3)", + "wcsoccer", "World Challenge Soccer (rev.1)", + "wcsoccerd2", "World Challenge Soccer (disp.rev.2)", + "wcup90", "World Cup 90", + "wcvol95", "World Cup Volley '95 (Japan v1.0)", + "wd_03r", "Who Dunnit (0.3 R)", + "wd_048r", "Who Dunnit (0.48 R)", + "wd_10f", "Who Dunnit (1.0 French)", + "wd_10g", "Who Dunnit (1.0 Germany)", + "wd_10r", "Who Dunnit (1.0 R)", + "wd_11", "Who Dunnit (1.1)", + "wd_12", "Who Dunnit (1.2)", + "wd_12g", "Who Dunnit (1.2 Germany)", + "wdun", "Who Dunnit (Russia)", + "wecleman", "WEC Le Mans 24 (set 1)", + "wecleman2", "WEC Le Mans 24 (set 2)", + "weddingr", "Wedding Rhapsody (GX624 JAA)", + "welltris", "Welltris (World?, 2 players)", + "welltrisj", "Welltris (Japan, 2 players)", + "westgun2", "Western Gun Part II", + "weststry", "West Story (bootleg of Blood Bros.)", + "westvent", "Western Venture (Ver. AA.02.D)", + "wexpress", "Western Express (Japan, rev 4)", + "wexpressb1", "Western Express (bootleg set 1)", + "wexpressb2", "Western Express (bootleg set 2)", + "wexpressb3", "Western Express (bootleg set 3)", + "wfortune", "Wheel Of Fortune (set 1)", + "wfortunea", "Wheel Of Fortune (set 2)", + "wg3dh", "Wayne Gretzky's 3D Hockey", + "wgp", "World Grand Prix (US)", + "wgp2", "World Grand Prix 2 (Japan)", + "wgpj", "World Grand Prix (Japan)", + "wgpjoy", "World Grand Prix (joystick version) (Japan, set 1)", + "wgpjoya", "World Grand Prix (joystick version) (Japan, set 2)", + "wh1", "World Heroes (ALM-005)", + "wh1h", "World Heroes (ALH-005)", + "wh1ha", "World Heroes (set 3)", + "wh2", "World Heroes 2 (ALM-006)(ALH-006)", + "wh2j", "World Heroes 2 Jet (ADM-007)(ADH-007)", + "whalecsh", "Whales of Cash (20155711, Malaysia)", + "wheelfir", "Wheels & Fire", + "wheelrun", "Wheels Runner", + "wheregld", "Where's the Gold (20177111, Malaysia)", + "whirl_l2", "Whirlwind (L-2)", + "whirl_l3", "Whirlwind (L-3)", + "whirl_lg3", "Whirlwind (LG-3)", + "whiterus", "White Russia (Konami Endeavour)", + "whizz", "Whizz", + "whodunit", "Who Dunit (version 9.0)", + "whodunit8", "Who Dunit (version 8.0)", + "whoopee", "Pipi & Bibis / Whoopee!! (Teki Paki hardware)", + "whp", "World Heroes Perfect", + "wiggie", "Wiggie Waggie", + "wildfang", "Wild Fang / Tecmo Knight", + "wildfangs", "Wild Fang", + "wildfyre", "Wildfyre", + "wildone", "Wild One (4VXEC5357, New Zealand)", + "wildpkr", "Wild Poker (ver. D 1.01)", + "wildplt", "Wild Pilot", + "wildways", "Wild Ways (10130111, Malaysia)", + "willow", "Willow (USA)", + "willowj", "Willow (Japan)", + "willowo", "Willow (USA Old Ver.)", + "wilytowr", "Wily Tower", + "winbid", "Winning Bid (Russia)", + "winbingo", "Win Win Bingo (set 1)", + "winbingoa", "Win Win Bingo (set 2)", + "windheat", "Winding Heat (EAA, Euro v2.11)", + "windheata", "Winding Heat (AAA, Asia v2.11)", + "windheatj", "Winding Heat (JAA, Japan v2.11)", + "windheatu", "Winding Heat (UBC, USA v2.22)", + "wingwar", "Wing War (World)", + "wingwarj", "Wing War (Japan)", + "wingwaru", "Wing War (US)", + "wink", "Wink (set 1)", + "winka", "Wink (set 2)", + "winner81", "Winners Circle (81, 28*28 PCB)", + "winner81b", "Winners Circle (81, 18*22 PCB)", + "winner82", "Winners Circle (82)", + "winrun", "Winning Run", + "winrun91", "Winning Run '91 (Japan)", + "winrungp", "Winning Run Suzuka Grand Prix (Japan)", + "winspike", "Winning Spike (ver EAA)", + "winspikej", "Winning Spike (ver JAA)", + "wintbob", "The Winter Bobble (bootleg of Snow Bros.)", + "winterht", "Winter Heat (JUET 971012 V1.000)", + "wipeormt", "Wipeout (Ramtek) [TTL]", + "wipeout", "Wipeout (rev.2)", + "wiping", "Wiping", + "wiseguy", "Wise Guy", + "witch", "Witch", + "witchb", "Witch (With ranking)", + "witchcda", "Witch Card (Spanish, witch game, set 1)", + "witchcdb", "Witch Card (Spanish, witch game, set 2)", + "witchcdc", "Witch Card (English, no witch game)", + "witchcdd", "Witch Card (German, WC3050, set 1 )", + "witchcde", "Witch Card (Video Klein CPU box, set 2)", + "witchcdf", "Witch Card (English, witch game, lamps)", + "witchcdg", "Witch Card (Falcon, enhanced sound)", + "witchcdh", "Witch Card (German, WC3050, set 2 )", + "witchcdi", "Witch Card (German, WC3050, 27-4-94)", + "witchcdk", "Witch Game (Video Klein, set 2)", + "witchcrd", "Witch Card (Video Klein CPU box, set 1)", + "witchgme", "Witch Game (Video Klein, set 1)", + "witchjol", "Jolli Witch (Export, 6T/12T ver 1.57D)", + "witchryl", "Witch Royal (Export version 2.1)", + "witchs", "Witch (Sega License)", + "wits", "Wit's (Japan)", + "wivernwg", "Wivern Wings", + "wiz", "Wiz", + "wizard", "Wizard (Ver 1.0)", + "wizdfire", "Wizard Fire (Over Sea v2.1)", + "wizdfireu", "Wizard Fire (US v1.1)", + "wizt", "Wiz (Taito, set 1)", + "wizta", "Wiz (Taito, set 2)", + "wizwarz", "Wiz Warz (prototype)", + "wizzquiz", "Wizz Quiz (Konami version)", + "wizzquiza", "Wizz Quiz (version 4)", + "wjammers", "Windjammers / Flying Power Disc", + "wlcc", "Wan Li Chang Cheng (China, V638C)", + "wldarrow", "Wild Arrow (color, Standard V4.8)", + "wldcourt", "World Court (Japan)", + "wldcp_l1", "World Cup Soccer (L-1)", + "wldkicks", "World Kicks (WK2 Ver. A)", + "wldkicksa", "World Kicks (WK3 Ver. A)", + "wldkicksb", "World Kicks PCB (WKC1 Ver. A)", + "wldrider", "Wild Riders (JPN, USA, EXP, KOR, AUS)", + "wldstrek", "Wild Streak (Russia)", + "wldwitch", "Wild Witch (Export, 6T/12T ver 1.84A)", + "wldwitcha", "Wild Witch (Export, 6T/12T ver 1.57-SP)", + "wldwitchb", "Wild Witch (Export, 6T/12T ver 1.57-TE)", + "wldwitchc", "Wild Witch (Export, 6T/12T ver 1.62A)", + "wldwitchd", "Wild Witch (Export, 6T/12T ver 1.62B)", + "wldwitche", "Wild Witch (Export, 6T/12T ver 1.62A-F)", + "wldwitchf", "Wild Witch (Export, 6T/12T ver 1.62A alt)", + "wldwitchg", "Wild Witch (Export, 6T/12T ver 1.62B alt)", + "wldwitchh", "Wild Witch (Export, 6T/12T ver 1.65A)", + "wldwitchi", "Wild Witch (Export, 6T/12T ver 1.65A-S)", + "wldwitchj", "Wild Witch (Export, 6T/12T ver 1.65A-S alt)", + "wldwitchk", "Wild Witch (Export, 6T/12T ver 1.65A-N)", + "wldwitchl", "Wild Witch (Export, 6T/12T ver 1.70A beta)", + "wldwitchm", "Wild Witch (Export, 6T/12T ver 1.70A)", + "wldwitchn", "Wild Witch (Export, 6T/12T ver 1.70A alt)", + "wldwitcho", "Wild Witch (Export, 6T/12T ver 1.74A-SP-BELG)", + "wldwitchp", "Wild Witch (Export, 6T/12T ver 1.74A)", + "wldwitchq", "Wild Witch (Export, 6T/12T ver 1.74A alt)", + "wldwitchr", "Wild Witch (Export, 6B/12B ver 1.75A-E English)", + "wldwitchs", "Wild Witch (Export, 6T/12T ver 1.76A)", + "wldwitcht", "Wild Witch (Export, 6T/12T ver 1.77A)", + "wldwitchu", "Wild Witch (Export, 6T/12T ver 1.79A)", + "wldwitchv", "Wild Witch (Export, 6T/12T ver 1.83A)", + "wlstar", "Wonder League Star - Sok-Magicball Fighting (Korea)", + "wmatch", "Water Match (315-5064)", + "wmg", "Williams Multigame", + "wms", "WMS SetUp/Clear Chips (set 1)", + "wmsa", "WMS SetUp/Clear Chips (set 2)", + "wmsb", "WMS SetUp/Clear Chips (set 3)", + "wmsboom", "Boom (Russia)", + "wmstopb", "Top Banana (Russia)", + "wndrmomo", "Wonder Momo", + "wndrplnt", "Wonder Planet (Japan)", + "wof", "Warriors of Fate (World 921031)", + "wofa", "Sangokushi II (Asia 921005)", + "wofhfh", "Huo Feng Huang (Chinese bootleg of Sangokushi II)", + "wofj", "Tenchi wo Kurau II: Sekiheki no Tatakai (Japan 921031)", + "wofr1", "Warriors of Fate (World 921002)", + "wofu", "Warriors of Fate (USA 921031)", + "wolffang", "Wolf Fang -Kuhga 2001- (Japan)", + "wolfman", "Wolf Man", + "wolfpack", "Wolf Pack (prototype)", + "wonder3", "Wonder 3 (Japan 910520)", + "wondl96", "Wonder League '96 (Korea)", + "wondstck", "Wonder Stick", + "woodpeca", "Woodpecker (set 2)", + "woodpeck", "Woodpecker (set 1)", + "worlddef", "World Defender", + "worldwar", "World Wars (World?)", + "wotw", "War of the Worlds", + "wotwc", "War of the Worlds (color)", + "wow", "Wizard of Wor", + "wowg", "Wizard of Wor (with German Language ROM)", + "wownfant", "WOW New Fantasia", + "wpksoc", "World PK Soccer", + "wpksocv2", "World PK Soccer V2 (ver 1.1)", + "wrally", "World Rally (set 1)", + "wrally2", "World Rally 2: Twin Racing", + "wrallya", "World Rally (set 2)", + "wrallyb", "World Rally (US, 930217)", + "wrecking", "Vs. Wrecking Crew", + "wrestwar", "Wrestle War (set 3, World, 8751 317-0103)", + "wrestwar1", "Wrestle War (set 1, Japan, FD1094 317-0090)", + "wrestwar2", "Wrestle War (set 2, World, FD1094 317-0102)", + "wrldtour", "Al's Garage Band Goes On A World Tour", + "wrldtour2", "Al's Garage Band Goes On A World Tour R02b", + "wrlok_l3", "Warlok (L-3)", + "wrofaero", "War of Aero - Project MEIOU", + "wrungp", "Wave Runner GP", + "ws", "World Stadium (Japan)", + "ws89", "World Stadium '89 (Japan)", + "ws90", "World Stadium '90 (Japan)", + "wsbbgd", "Super Major League / World Series Baseball (GDS-0010)", + "wschamp", "Wing Shooting Championship V2.00", + "wschampa", "Wing Shooting Championship V1.01", + "wschampb", "Wing Shooting Championship V1.00", + "wseries", "World Series: The Season", + "wsf", "World Soccer Finals", + "wsjr", "Who Shot Johnny Rock? v1.6", + "wsjr15", "Who Shot Johnny Rock? v1.5", + "wsports", "Winter Sports", + "wstrike", "Witch Strike (Export, 6T/12T ver 1.01A)", + "wstrikea", "Witch Strike (Export, 6T/12T ver 1.01B)", + "wswe", "World Soccer Winning Eleven Arcade Game Style", + "wswe2k3", "World Soccer Winning Eleven Arcade Game 2003", + "wtchjack", "Witch Jack (Export, 6T/12T ver 0.87-89)", + "wtchjacka", "Witch Jackpot (Export, 6T/12T ver 0.25)", + "wtchjackb", "Witch Jack (Export, 6T/12T ver 0.40)", + "wtchjackc", "Witch Jack (Export, 6T/12T ver 0.40T)", + "wtchjackd", "Witch Jack (Export, 6T/12T ver 0.62)", + "wtchjacke", "Witch Jack (Export, 6T/12T ver 0.64)", + "wtchjackf", "Witch Jack (Export, 6T/12T ver 0.65)", + "wtchjackg", "Witch Jack (Export, 6T/12T ver 0.70S)", + "wtchjackh", "Witch Jack (Export, 6T/12T ver 0.70P)", + "wtchjacki", "Witch Jack (Export, 6T/12T ver 0.87)", + "wtchjackj", "Witch Jack (Export, 6T/12T ver 0.87-88)", + "wtennis", "World Tennis", + "wtiger", "White Tiger Classic (0200954V, NSW/ACT)", + "wtigernz", "White Tiger (3VXFC5342, New Zealand)", + "wtrnymph", "Water-Nymph (Ver. 1.4)", + "wupndown", "Witch Up & Down (Export, 6T/12T ver 1.02)", + "wupndowna", "Witch Up & Down (Export, 6T/12T ver 0.99, set 1)", + "wupndownb", "Witch Up & Down (Export, 6T/12T ver 0.99, set 2)", + "wupndownc", "Witch Up & Down (Export, 6T/12T ver 0.99, set 3)", + "wupndownd", "Witch Up & Down (Export, 6T/12T ver 0.99T)", + "ww3", "WW III", + "ww_l2", "White Water (L-2)", + "ww_l3", "White Water (L-3)", + "ww_l4", "White Water (L-4)", + "ww_l5", "White Water (L-5)", + "ww_lh5", "White Water (LH-5)", + "ww_lh6", "White Water (LH-6)", + "ww_p1", "White Water (P-8 P-1 sound)", + "ww_p8", "White Water (P-8 P-2 sound)", + "wwallyj", "Wally wo Sagase! (rev B, Japan, FD1094 317-0197B)", + "wwallyja", "Wally wo Sagase! (rev A, Japan, FD1094 317-0197A)", + "wwestern", "Wild Western (set 1)", + "wwestern1", "Wild Western (set 2)", + "wwfmania", "WWF: Wrestlemania (rev 1.30 08/10/95)", + "wwfmaniab", "WWF: Wrestlemania (rev 1.20 08/02/95)", + "wwfmaniac", "WWF: Wrestlemania (rev 1.1 07/11/95)", + "wwfr_103", "WWF Royal Rumble (1.03)", + "wwfr_106", "WWF Royal Rumble (1.06)", + "wwfroyal", "WWF Royal Rumble (JPN, USA, EXP, KOR, AUS)", + "wwfsstar", "WWF Superstars (Europe)", + "wwfsstarb", "WWF Superstars (bootleg)", + "wwfsstarj", "WWF Superstars (Japan)", + "wwfsstaru", "WWF Superstars (US, Newer)", + "wwfsstarua", "WWF Superstars (US)", + "wwfwfest", "WWF WrestleFest (US set 1)", + "wwfwfesta", "WWF WrestleFest (US Tecmo)", + "wwfwfestb", "WWF WrestleFest (US bootleg)", + "wwfwfestj", "WWF WrestleFest (Japan)", + "wwfwfestk", "WWF WrestleFest (Korea)", + "wwjgtin", "Wai Wai Jockey Gate-In!", + "wyvernwg", "Wyvern Wings (set 1)", + "wyvernwga", "Wyvern Wings (set 2)", + "x2222", "X2222 (final debug?)", + "x2222o", "X2222 (5-level prototype)", + "x5jokers", "X Five Jokers (Version 1.12)", + "xday2", "X-Day 2 (Japan)", + "xenon", "Xenon", + "xenonf", "Xenon (French)", + "xenophob", "Xenophobe", + "xevi3dg", "Xevious 3D/G (Japan, XV31/VER.A)", + "xevios", "Xevios", + "xevious", "Xevious (Namco)", + "xeviousa", "Xevious (Atari, harder)", + "xeviousb", "Xevious (Atari)", + "xeviousc", "Xevious (Atari, Namco PCB)", + "xexex", "Xexex (ver EAA)", + "xexexa", "Xexex (ver AAA)", + "xexexj", "Xexex (ver JAA)", + "xfiles", "X-Files", + "xfiles2", "X-Files (2.04)", + "xfilesp", "X-Files (3.03)", + "xforce", "X Force", + "xiistag", "XII Stag (V2.01J)", + "xmcota", "X-Men: Children of the Atom (Euro 950331)", + "xmcotaa", "X-Men: Children of the Atom (Asia 950105)", + "xmcotaar1", "X-Men: Children of the Atom (Asia 941217)", + "xmcotah", "X-Men: Children of the Atom (Hispanic 950331)", + "xmcotahr1", "X-Men: Children of the Atom (Hispanic 950105)", + "xmcotaj", "X-Men: Children of the Atom (Japan 950105)", + "xmcotaj1", "X-Men: Children of the Atom (Japan 941222)", + "xmcotaj2", "X-Men: Children of the Atom (Japan 941219)", + "xmcotaj3", "X-Men: Children of the Atom (Japan 941217)", + "xmcotajr", "X-Men: Children of the Atom (Japan 941208 rent version)", + "xmcotar1", "X-Men: Children of the Atom (Euro 950105)", + "xmcotar1d", "X-Men: Children of the Atom (Euro 950105 Phoenix Edition) (bootleg)", + "xmcotau", "X-Men: Children of the Atom (USA 950105)", + "xmen", "X-Men (4 Players ver UBB)", + "xmen2pa", "X-Men (2 Players ver AAA)", + "xmen2pe", "X-Men (2 Players ver EAA)", + "xmen2pj", "X-Men (2 Players ver JAA)", + "xmen6p", "X-Men (6 Players ver ECB)", + "xmen6pu", "X-Men (6 Players ver UCB)", + "xmena", "X-Men (4 Players ver AEA)", + "xmenaa", "X-Men (4 Players ver ADA)", + "xmene", "X-Men (4 Players ver EBA)", + "xmenj", "X-Men (4 Players ver JBA)", + "xmultipl", "X Multiply (World, M81)", + "xmultiplm72", "X Multiply (Japan, M72)", + "xmvsf", "X-Men Vs. Street Fighter (Euro 961004)", + "xmvsfa", "X-Men Vs. Street Fighter (Asia 961023)", + "xmvsfar1", "X-Men Vs. Street Fighter (Asia 961004)", + "xmvsfar2", "X-Men Vs. Street Fighter (Asia 960919)", + "xmvsfar3", "X-Men Vs. Street Fighter (Asia 960910)", + "xmvsfb", "X-Men Vs. Street Fighter (Brazil 961023)", + "xmvsfh", "X-Men Vs. Street Fighter (Hispanic 961004)", + "xmvsfj", "X-Men Vs. Street Fighter (Japan 961004)", + "xmvsfjr1", "X-Men Vs. Street Fighter (Japan 960910)", + "xmvsfjr2", "X-Men Vs. Street Fighter (Japan 960909)", + "xmvsfr1", "X-Men Vs. Street Fighter (Euro 960910)", + "xmvsfu", "X-Men Vs. Street Fighter (USA 961023)", + "xmvsfu1d", "X-Men Vs. Street Fighter (USA 961004 Phoenix Edition) (bootleg)", + "xmvsfur1", "X-Men Vs. Street Fighter (USA 961004)", + "xorworld", "Xor World (prototype)", + "xplan", "X-Plan (Ver. 1.01)", + "xrally", "Xtreme Rally / Off Beat Racer!", + "xsandos", "X's & O's", + "xsedae", "X Se Dae Quiz (Korea)", + "xsleena", "Xain'd Sleena (World)", + "xsleenab", "Xain'd Sleena (bootleg)", + "xsleenaj", "Xain'd Sleena (Japan)", + "xtheball", "X the Ball", + "xtom3d", "X Tom 3D", + "xtrain", "X-Train (Ver. 1.3)", + "xtrial", "Xtrial Racing (ver JAB)", + "xtrmhnt2", "Extreme Hunting 2", + "xtrmhunt", "Extreme Hunting", + "xxmissio", "XX Mission", + "xybots", "Xybots (rev 2)", + "xybots0", "Xybots (rev 0)", + "xybots1", "Xybots (rev 1)", + "xybotsf", "Xybots (French, rev 3)", + "xybotsg", "Xybots (German, rev 3)", + "xymg", "Xing Yun Man Guan (China, V651C)", + "xyonix", "Xyonix", + "yachtmn", "Yachtsman", + "yamagchi", "Go Go Mr. Yamaguchi / Yuke Yuke Yamaguchi-kun", + "yamato", "Yamato (US)", + "yamato2", "Yamato (World?)", + "yamyam", "Yam! Yam!?", + "yanchamr", "Kaiketsu Yanchamaru (Japan)", + "yankeedo", "Yankee DO!", + "yarunara", "Mahjong Yarunara (Japan)", + "yellowcbb", "Yellow Cab (bootleg)", + "yellowcbj", "Yellow Cab (Japan)", + "yesnoj", "Yes/No Sinri Tokimeki Chart", + "yiear", "Yie Ar Kung-Fu (program code I)", + "yiear2", "Yie Ar Kung-Fu (program code G)", + "yieartf", "Yie Ar Kung-Fu (GX361 conversion)", + "yosakdon", "Yosaku To Donbei (set 1)", + "yosakdona", "Yosaku To Donbei (set 2)", + "yosimotm", "Mahjong Yoshimoto Gekijou [BET] (Japan)", + "yosimoto", "Mahjong Yoshimoto Gekijou (Japan)", + "youjyudn", "Youjyuden (Japan)", + "youkaidk1", "Yokai Douchuuki (Japan, old version (YD1))", + "youkaidk2", "Yokai Douchuuki (Japan, new version (YD2, Rev B))", + "youma", "Youma Ninpou Chou (Japan)", + "youma2", "Youma Ninpou Chou (Japan, alt)", + "youmab", "Youma Ninpou Chou (Game Electronics bootleg, set 1)", + "youmab2", "Youma Ninpou Chou (Game Electronics bootleg, set 2)", + "yujan", "Yu-Jan", + "yuka", "Yu-Ka", + "yukiwo", "Yukiwo (World, prototype)", + "yukon", "Yukon (version 2.0)", + "yukon1", "Yukon (version 1.0)", + "yukongld", "Yukon Gold (Russia)", + "yumefuda", "Yumefuda [BET]", + "yuyugogo", "Yuuyu no Quiz de GO!GO! (Japan)", + "yuyuhaku", "The Battle of Yu Yu Hakusho: Shitou! Ankoku Bujutsukai!", + "zankor", "Zankor (Italian speech)", + "zaryavos", "Zarya Vostoka", + "zarza", "Zarza", + "zarza1", "Zarza (alternate set)", + "zarzon", "Zarzon", + "zaviga", "Zaviga", + "zavigaj", "Zaviga (Japan)", + "zaxxon", "Zaxxon (set 1)", + "zaxxon2", "Zaxxon (set 2)", + "zaxxon3", "Zaxxon (set 3)", + "zaxxonb", "Jackson", + "zaxxonj", "Zaxxon (Japan)", + "zedblade", "Zed Blade / Operation Ragnarok", + "zekepeak", "Zeke's Peak", + "zektor", "Zektor (revision B)", + "zephy", "Zephy", + "zero", "Zero (set 1, Defender bootleg)", + "zero2", "Zero (set 2, Defender bootleg)", + "zerogu2", "Zero Gunner 2", + "zerogun", "Zero Gunner (Export, Model 2B)", + "zeroguna", "Zero Gunner (Export, Model 2A)", + "zerogunaj", "Zero Gunner (Japan, Model 2A)", + "zerogunj", "Zero Gunner (Japan, Model 2B)", + "zerohour", "Zero Hour (set 1)", + "zerohoura", "Zero Hour (set 2)", + "zeropnt", "Zero Point (set 1)", + "zeropnt2", "Zero Point 2", + "zeropnta", "Zero Point (set 2)", + "zeropntj", "Zero Point (Japan)", + "zeroteam", "Zero Team USA (set 1, US, Fabtek license)", + "zeroteama", "Zero Team (set 2, Japan? (earlier?))", + "zeroteamb", "Zero Team (set 3, Japan? (later batteryless))", + "zeroteamc", "Zero Team (set 4, Taiwan, Liang Hwa license)", + "zeroteamd", "Zero Team (set 5, Korea, Dream Soft license)", + "zeroteams", "Zero Team Selection", + "zeroteamsr", "Zero Team Suicide Revival Kit", + "zerotime", "Zero Time", + "zerotm2k", "Zero Team 2000", + "zerotrgt", "Zero Target (World, CW)", + "zerotrgta", "Zero Target (World, CT)", + "zerowing", "Zero Wing (2P set)", + "zerowing1", "Zero Wing (1P set)", + "zerowingw", "Zero Wing (2P set, Williams license)", + "zerozone", "Zero Zone", + "zgundm", "Mobile Suit Z-Gundam: A.E.U.G. vs Titans (ZGA1 Ver. A)", + "zgundmdx", "Mobile Suit Z-Gundam: A.E.U.G. vs Titans DX (ZDX1 Ver. A)", + "zigzag", "Zig Zag (Galaxian hardware, set 1)", + "zigzag2", "Zig Zag (Galaxian hardware, set 2)", + "zingzip", "Zing Zing Zip", + "zingzipbl", "Zing Zing Zip (bootleg)", + "zintrckb", "Zintrick / Oshidashi Zentrix (hack)", + "zipzap", "Zip & Zap", + "znpwfv", "Zen Nippon Pro-Wrestling Featuring Virtua (J 971123 V1.000)", + "zoar", "Zoar", + "zodiack", "Zodiack", + "zokumahj", "Zoku Mahjong Housoukyoku (Japan)", + "zokuoten", "Zoku Otenamihaiken (V2.03J)", + "zombraid", "Zombie Raid (9/28/95, US)", + "zombraidp", "Zombie Raid (9/28/95, US, prototype PCB)", + "zombraidpj", "Zombie Raid (9/28/95, Japan, prototype PCB)", + "zombrvn", "Zombie Revenge (JPN, USA, EXP, KOR, AUS)", + "zoo", "Zoo (Ver. ZO.02.D)", + "zookeep", "Zoo Keeper (set 1)", + "zookeep2", "Zoo Keeper (set 2)", + "zookeep3", "Zoo Keeper (set 3)", + "zoom909", "Zoom 909", + "zooo", "Zooo (V2.01J)", + "zortonbr", "Zorton Brothers (Los Justicieros)", + "zunkyou", "Zunzunkyou No Yabou (Japan)", + "zunou", "Touch De Zunou (Rev A)", + "zupapa", "Zupapa!", + "zwackery", "Zwackery", + "zzblock", "Zun Zun Block [TTL]", + "zzyzzyxx", "Zzyzzyxx (set 1)", + "zzyzzyxx2", "Zzyzzyxx (set 2)", + "z80", "Z80", + "gfxdecode", "gfxdecode", + "palette", "palette", + "screen", "Video Screen", + "speaker", "Speaker", + "i8255", "8255 PPI", + "samples", "Samples", + "sega005_sound", "005 Custom", + "m6803", "M6803", + "irem_audio", "Irem Audio", + "ay8910", "AY-3-8910A", + "msm5205", "MSM5205", + "vr4300be_drc", "VR4300 (big) DRC", + "rsp_drc", "RSP DRC", + "dmadac", "DMA-driven DAC", + "n64_periphs", "N64 Periphal Chips", + "sh4", "SH-4 (little)", + "timer", "Timer", + "arm7", "ARM7", + "maple_dc", "MAPLE_DC", + "93c46_16", "Serial EEPROM 93C46 (64x16)", + "powervr2", "PowerVR 2", + "aica", "AICA", + "aicartc", "AICA RTC", + "mie", "MIE", + "mie_jvs", "MIE-JVS", + "sega_837_13551", "SEGA-837-13551", + "93c46_8", "Serial EEPROM 93C46 (128x8)", + "x76f100", "X76F100 Flash", + "naomi_m2_board", "NAOMI-M2-BOARD", + "m68000", "M68000", + "ym2151", "YM2151", + "okim6295", "OKI6295", + "netlist_sound", "Netlist sound device", + "netlist_analog_input", "netlist analog input", + "ym2203", "YM2203", + "qsound", "Q-Sound", + "dsp16", "DSP16", + "pxa255", "PXA255", + "93c66_16", "Serial EEPROM 93C66 (256x16)", + "cxd8530cq", "CXD8530CQ", + "psxirq", "PSX IRQ", + "psxdma", "PSX DMA", + "psxmdec", "PSX MDEC", + "psxrcnt", "PSX RCNT", + "psxsio0", "PSX SIO-0", + "znsec", "ZNSEC", + "zndip", "ZNDIP", + "psxsio1", "PSX SIO-1", + "ram", "RAM", + "cxd8561q", "CXD8561Q", + "spu", "SPU", + "at28c16", "AT28C16", + "ym2610", "YM2610", + "upd4990a", "uPD4990A", + "nvram", "NVRAM", + "z180", "Z180", + "namco", "Namco", + "dac", "DAC", + "amd_29lv200t", "AMD 29LV200T Flash", + "i8080", "8080", + "mb14241", "MB14241", + "ym2610b", "YM2610B", + "mc68hc11", "MC68HC11", + "m6809", "M6809", + "via6522", "6522 VIA", + "pia6821", "6821 PIA", + "c6545_1", "C6545-1 CRTC", + "mc146818", "MC146818", + "arm7_be", "ARM7 (big endian)", + "cdrom_image", "CD-ROM Image", + "nb1413m3", "Nichibutsu NB1413M3", + "kaneko_pandora", "Kaneko Pandora - PX79C480FP-3", + "upd7810", "uPD7810", + "ym2413", "YM2413", + "vsystem_spr", "vsystem_spr_device", + "i8088", "I8088", + "gotsndr2", "Gottlieb Sound rev. 2", + "m6502", "M6502", + "ay8913", "AY-3-8913A", + "sp0250", "SP0250", + "m68705", "M68705", + "buggychl_mcu", "BuggyChl MCU", + "msm5232", "MSM5232", + "v70", "V70", + "ymf271", "YMF271", + "sn76489a", "SN76489A", + "z80pio", "Z8420 PIO", + "isa8", "ISA8", + "isa8_slot", "ISA8_SLOT", + "4enlinea_cga", "ISA8_CGA_4ENLINEA", + "mc6845", "MC6845 CRTC", + "7474", "7474 TTL", + "galaxian_sound", "Galaxian Custom", + "discrete", "DISCRETE", + "tmp68301", "TMP68301", + "z80ctc", "Z80 CTC", + "ym3812", "YM3812", + "mc65c02", "M65C02", + "r4650be_drc", "IDT R4650 (big) DRC", + "h83002", "H8/3002", + "h8h_intc", "H8H INTC", + "h8_adc_3337", "H8 ADC 3337", + "h8_digital_port", "H8 digital port", + "h8_timer16", "H8 16-bits timer", + "h8h_16bits_timer_channel", "H8H 16-bits timer channel", + "h8_sci", "H8 Serial Communications Interface", + "namco_settings", "Namco settings device", + "rtc4543", "Epson R4543", + "devcb2_line_dispatch", "Line dispatcher (2 slots)", + "c352", "C352", + "ptm6840", "6840 PTM", + "t11", "T11", + "2804", "Parallel EEPROM 2804 (512x8)", + "tilemap", "Tilemap", + "atarimo", "Atari Motion Objects", + "atarscom", "Atari Sound Communications", + "pokey", "POKEY", + "tms5220c", "TMS5220C", + "decospr", "decospr_device", + "h46505", "H46505 CRTC", + "konami_cpu", "KONAMI", + "k052109", "Konami 052109", + "k051960", "Konami 051960", + "k051316", "Konami 051316", + "upd7759", "uPD7759", + "s2650", "S2650", + "s2636", "Signetics 2636", + "tms5100", "TMS5100", + "i8257", "DMA8257", + "latch8", "8 bit latch", + "mb8884", "MB8884", + "sn76496", "SN76496", + "pentium", "PENTIUM", + "pit8259", "8259 PIC", + "am9517a", "AM9517A", + "pit8254", "8254 PIT", + "kbdc8042", "Keyboard Controller 8042", + "at_keyb", "AT Keyboard", + "pci_bus_legacy", "PCI Bus Legacy", + "vga", "VGA", + "tms34010", "TMS34010", + "tms32026", "TMS32026", + "tlc34076", "TLC34076", + "r3041", "R3041", + "jaguargpu", "Jaguar GPU", + "jaguardsp", "Jaguar DSP", + "vt83c461", "VIA VT83C461", + "ata_slot", "ATA Connector", + "cojag_hdd", "cojag HDD", + "harddisk_image", "Harddisk", + "mediagx", "MEDIAGX", + "ide_controller", "IDE Controller (32 bit)", + "hdd", "IDE Hard Disk", + "ramdac", "ramdac", + "cdrom", "ATAPI CDROM", + "ppc403gcx", "PowerPC 403GCX", + "ymz280b", "YMZ280B", + "i80186", "I80186", + "leland_80186_sound", "Leland 80186 DAC", + "decocpu3", "Data East Pinball CPU Board Type 3", + "m6808", "M6808", + "decobsmt", "Data East/Sega/Stern BSMT2000 Sound Board", + "bsmt2000", "BSMT2000", + "tms32015", "TMS32015", + "decodmd2", "Data East Pinball Dot Matrix Display Type 2", + "m6809e", "M6809E", + "m6800", "M6800", + "h83048", "H8/3048", + "fd1094", "FD1094", + "sega_315_5248", "Sega 315-5248 Multiplier", + "sega_315_5249", "Sega 315-5249 Divider", + "sega_315_5250", "Sega 315-5250 Compare/Timer", + "sega_xboard_sprite", "Sega X-Board Sprites", + "segaic16_video", "Sega 16-bit Video", + "segaic16_road", "Sega 16-bit Road Generator", + "segapcm", "Sega PCM", + "sega_315_5195", "Sega 315-5195 Memory Mapper", + "sega_16bit_sprite", "Sega System 16B Sprites", + "n7751", "N7751", + "i8243", "I8243", + "sega_sys16a_sprite", "Sega System 16A Sprites", + "m68020", "M68020", + "tms32025", "TMS32025", + "m37702", "M37702", + "2864", "Parallel EEPROM 2864 (8192x8)", + "arm920t", "ARM920T", + "serflash", "SERFLASH", + "nmk004", "NMK004", + "h6280", "H6280", + "deco_bac06", "decbac06_device", + "deco_mxc06", "decmxc06_device", + "pic16c57", "PIC16C57", + "tmsprom", "TMSPROM", + "tms5110a", "TMS5110A", + "mc68307", "MC68307", + "mc68681", "MC68681", + "mc68681_channel", "DUART 68681 channel", + "bfm_bda", "BFM BDA VFD controller", + "mc68340", "MC68340", + "mcf5206e", "MCF5206E", + "mcf5206e_peripheral", "MCF5206E Peripheral", + "m68ec020", "M68EC020", + "m37710", "M37710", + "arm", "ARM", + "aakart", "AAKART", + "vsystem_spr2", "vsystem_spr2_device", + "vector_device", "VECTOR", + "dvg", "DVG", + "fd1089a", "FD1089A", + "sn76494", "SN76494", + "wpc", "Williams WPC ASIC", + "adsp2105", "ADSP-2105", + "tc0220ioc", "Taito TC0220IOC", + "tc0080vco", "Taito TC0080VCO", + "tc0140syt", "Taito TC0140SYT", + "v33", "V33", + "v35", "V35", + "iremga20", "Irem GA20", + "hd63705", "HD63705", + "c140", "C140", + "v30", "V30", + "m72_audio", "M72 Custom", + "naomi_rom_board", "NAOMI-ROM-BOARD", + "tms32010", "TMS32010", + "seibu_sound", "Seibu Sound System", + "k007232", "K007232", + "msm6242", "msm6242", + "taito_en", "Taito Ensoniq Sound System", + "mb87078", "Fujitsu MB87078", + "es5505", "ES5505", + "buffered_spriteram", "Buffered Sprite RAM", + "k007121", "Konami 007121", + "k051649", "K051649", + "sega315_5313", "Sega 315-5313 (Genesis VDP)", + "ym2612", "YM2612", + "segapsg", "SEGA VDP PSG", + "hc55516", "HC-55516", + "ldp1450", "Sony LDP-1450", + "amiga_paula", "Amiga Paula", + "legacy_mos8520", "LEGACY_MOS8520", + "amiga_fdc", "Amiga FDC", + "m6802", "M6802", + "v60", "V60", + "ym3438", "YM3438", + "rf5c68", "RF5C68", + "ymf278b", "YMF278B", + "huc6260", "HuC6260 VCE", + "huc6270", "HuC6270 VDC", + "c6280", "HuC6280", + "sn76477", "SN76477", + "address_map_bank", "Address Map Bank", + "hd63701", "HD63701", + "fd1089b", "FD1089B", + "gaelco_gae1", "Gaelco GAE1", + "m6504", "M6504", + "ym3526", "YM3526", + "avg_mhavoc", "AVG_MHAVOC", + "cdp1802", "CDP1802", + "cdp1852", "CDP1852", + "cdp1869", "RCA CDP1869", + "i8751", "I8751", + "ay8912", "AY-3-8912A", + "i8086", "I8086", + "r6545_1", "R6545-1 CRTC", + "sn76489", "SN76489", + "ticket_dispenser", "Ticket Dispenser", + "gamtor_vga", "GAMTOR_VGA", + "ttl74123", "TTL 74123", + "okim9810", "OKI9810", + "macronix_29l001mc", "Macronix 29L001MC Flash", + "aw_rom_board", "AW-ROM-BOARD", + "dcctrl", "DC_CONTROLLER", + "netlist_cpu", "Netlist cpu device", + "fixfreq", "FIXFREQ", + "e132xn", "E1-32XN", + "v20", "V20", + "m65sc02", "M65SC02", + "tc0100scn", "Taito TC0100SCN", + "tc0150rod", "Taito TC0150ROD", + "tc0110pcr", "Taito TC0110PCR", + "filter_volume", "Volume Filter", + "cxd8661r", "CXD8661R", + "cxd8654q", "CXD8654Q", + "mb8841", "MB8841", + "tms9118", "TMS9118 VDP", + "speaker_sound", "Filtered 1-bit DAC", + "seta001", "seta001_device", + "x1_010", "X1-010", + "atari2804", "Atari EEPROM Interface (2804)", + "tmp90841", "TMP90841", + "nmk112", "NMK 112", + "wmscvsd", "Williams CVSD Sound Board", + "gotsndr1", "Gottlieb Sound rev. 1", + "riot6532", "6532 RIOT", + "ym2149", "YM2149", + "tms34061", "TMS34061 VSC", + "ccpu", "Cinematronics CPU", + "n2a03", "N2A03", + "nesapu", "N2A03 APU", + "vlm5030", "VLM5030", + "tc0180vcu", "Taito TC0180VCU", + "naomi_m4_board", "NAOMI-M4-BOARD", + "pps4", "PPS4", + "atari_vg_earom", "ATARI VG EAROM", + "er5911_8", "Serial EEPROM ER5911 (128x8)", + "k056832", "Konami 056832", + "k05324x", "Konami 053244 & 053245", + "k053251", "Konami 053251", + "k053260", "K053260", + "sh2_drc", "SH-2 DRC", + "scudsp", "SCUDSP", + "scsp", "SCSP", + "cdda", "CD/DA", + "i8035", "I8035", + "sega_speech_sound", "Sega Speech Sound Board", + "sega315_5124", "Sega 315-5124", + "ldv1000", "Pioneer LD-V1000", + "pc090oj", "Taito PC090OJ", + "ymf262", "YMF262", + "93c56_16", "Serial EEPROM 93C56 (128x16)", + "wsf_80186_sound", "WSF 80186 DAC", + "m68010", "M68010", + "ataxx_80186_sound", "Ataxx 80186 DAC", + "trackfld_audio", "Track And Field Audio", + "hyprolyb_adpcm", "Hyper Olympics Audio", + "i8039", "I8039", + "mos656x_attack_ufo", "MOS656X", + "ppc603", "PowerPC 603", + "naomi_gdrom_board", "NAOMI-GDROM-BOARD", + "i8085a", "8085A", + "tms36xx", "TMS36XX", + "phoenix_sound", "Phoenix Custom", + "roc10937", "Rockwell 10937 VFD controller and compatible", + "acia6850", "6850 ACIA", + "clock", "Clock", + "i8031", "I8031", + "tms9928a", "TMS9928A VDP", + "deco16ic", "Data East IC 55 / 56 / 74 / 141", + "microtouch_serial", "Microtouch Serial Touchscreen", + "h63484", "H63484", + "atari2816", "Atari EEPROM Interface (2816)", + "2816", "Parallel EEPROM 2816 (2048x8)", + "cclimber_audio", "cclimber Sound Board", + "kaneko_view2_tilemap", "kaneko_view2_tilemap_device", + "kaneko16_sprite", "kaneko16_sprite_device", + "ppu2c04", "2C04 PPU", + "gaelco_cg1v", "Gaelco CG1V", + "ppc603e", "PowerPC 603e", + "scsibus", "SCSI bus", + "lsi53c810", "53C810 SCSI", + "k573cassslotserial", "KONAMI 573 CASSETTE SLOT (SERIAL)", + "mb89371", "MB89371", + "ata_interface", "ATA Interface", + "cr589", "Matsushita CR589", + "k573cassslot", "KONAMI 573 CASSETTE SLOT", + "k573cassx", "KONAMI 573 CASSETTE X", + "x76f041", "X76F041 Flash", + "fujitsu_29f016a", "Fujitsu 29F016A Flash", + "pccard", "PCCARD SLOT", + "m48t58", "M48T58", + "adc0834", "ADC0834", + "upd4701", "NEC uPD4701 Encoder", + "i386", "I386", + "ds2404", "DS2404", + "intel_e28f008sa", "Intel E28F008SA Flash", + "fifo7200", "IDT7200 FIFO", + "tmp95c063", "TMP95C063", + "atarivad", "Atari VAD", + "atjsa3", "Atari JSA III Sound Board", + "decocpu3b", "Data East Pinball CPU Board Type 3B", + "decodmd3", "Data East Pinball Dot Matrix Display Type 3", + "adsp2181", "ADSP-2181", + "gp9001vdp", "GP9001_VDP", + "v25", "V25", + "upd7807", "uPD7807", + "namco51", "Namco 51xx", + "mb8843", "MB8843", + "namco06xx", "Namco 06xx", + "hd6309", "HD6309", + "k007342", "Konami 007342", + "k007420", "Konami 007420", + "93c66_8", "Serial EEPROM 93C66 (512x8)", + "arm9", "ARM9", + "s3c2410", "Samsung S3C2410", + "qs1000", "QS1000", + "i8052", "I8052", + "i2cmem", "I2CMEM", + "s11c_bg", "Williams System 11C background music", + "asap", "ASAP", + "beezer_sound", "beezer SFX", + "i960kb", "i960kb", + "segas24_tile", "S24TILE", + "y8950", "Y8950", + "ttl74181", "TTL 74181", + "s14001a", "S14001A", + "exidy_sfx", "Exidy SFX", + "v9938", "V9938", + "r65c02", "R65C02", + "hd61830", "HD61830 LCDC", + "timeplt_audio", "Time Pilot Audio", + "filter_rc", "RC Filter", + "tiamc1_sound", "TIA-MC1 Custom", + "saa1099", "SAA1099", + "r5000le_drc", "R5000 (little) DRC", + "bus_master_ide_controller", "Bus Master IDE Controller", + "voodoo_1", "3dfx Voodoo Graphics", + "adsp2115", "ADSP-2115", + "k054338", "Konami 054338", + "k055555", "Konami 055555", + "h83044", "H8/3044", + "i486", "I486", + "k051733", "Konami 051733", + "midsg", "Midway Sounds Good Sound Board", + "seibu_crtc", "Seibu CRT Controller", + "es5506", "ES5506", + "kaneko_toybox", "kaneko_toybox_device", + "kaneko_hit", "kaneko_hit_device", + "atjsa1", "Atari JSA I Sound Board", + "k054000", "Konami 054000", + "k053936", "Konami 053936", + "k054539", "K054539", + "rtc65271", "RTC65271", + "pc16552d", "National Semiconductor PC16552D", + "ns16550", "National Semiconductor NS16550", + "scsicd", "SCSICD", + "am53cf96", "53CF96 SCSI", + "rf5c400", "RF5C400", + "decoc10707", "DECO C10707", + "segas24_sprite", "S24SPRITE", + "segas24_mixer", "S24MIXER", + "warpwarp_sound", "Warp Warp Custom", + "cirrus_vga", "Cirrus Logic VGA", + "ns16450", "National Semiconductor NS16450", + "decocomn", "Data East Common Video Functions", + "deco104", "DECO104PROT", + "deco16", "DECO16", + "deco222", "DECO 222", + "e116t", "E1-16T", + "wpcsnd", "Williams WPC Sound", + "namco50", "Namco 50xx", + "mb8842", "MB8842", + "namco52", "Namco 52xx", + "namco54", "Namco 54xx", + "mb8844", "MB8844", + "am29000", "AMD Am29000", + "i8051", "I8051", + "mc68901", "Motorola MC68901", + "micro3d_sound", "Microprose Custom", + "h83008", "H8/3008", + "h8_adc_3006", "H8 ADC 3006", + "mpc8240", "PowerPC MPC8240", + "voodoo_3", "3dfx Voodoo 3", + "avg_bzone", "AVG_BZONE", + "mathbox", "MATHBOX", + "kaneko_calc3", "kaneko_calc3_device", + "okim6376", "OKI6376", + "deco_karnovsprites", "karnovsprites_device", + "tms9128", "TMS9128 VDP", + "cxd8530bq", "CXD8530BQ", + "cxd8514q", "CXD8514Q", + "sharp_lh28f400", "Sharp LH28F400 Flash", + "decocpu7", "DECO CPU-7", + "ppc602", "PowerPC 602", + "decodmd1", "Data East Pinball Dot Matrix Display Type 1", + "tms34020", "TMS34020", + "m6801", "M6801", + "k005289", "K005289", + "i8279", "8279 KDC", + "k053252", "Konami 053252", + "k053247", "Konami 053246 & 053247", + "buggyboy_sound", "Buggy Boy Custom", + "ppc403ga", "PowerPC 403GA", + "ppc604", "PowerPC 604", + "k001604", "Konami 001604", + "cobra_jvs_host", "COBRA_JVS_HOST", + "cobra_jvs", "COBRA_JVS", + "alpha8301", "ALPHA-8301", + "avg", "AVG", + "seibu_adpcm", "Seibu ADPCM", + "i8041", "I8041", + "decocass_tape", "DECO Cassette Tape", + "trident_vga", "Trident VGA", + "smc91c94", "SMC91C94", + "tc0280grd", "Taito TC0280GRD & TC0430GRW", + "tc0360pri", "Taito TC0360PRI", + "e132n", "E1-32N", + "i8032", "I8032", + "deco146", "DECO146PROT", + "i80c32", "I80C32", + "vr4310le_drc", "VR4310 (little) DRC", + "voodoo_banshee", "3dfx Voodoo Banshee", + "74148", "TTL 74148", + "74153", "TTL 74153", + "rm7000le_drc", "RM7000 (little) DRC", + "m48t37", "M48T37", + "hd6303y", "HD6303Y", + "exidy440_sound", "Exidy 440 CVSD", + "tc0480scp", "Taito TC0480SCP", + "x2212", "X2212 NVRAM", + "akiko", "CBM AKIKO", + "microtouch", "Microtouch Touchscreen", + "scc68070", "SCC68070", + "mcd212", "MCD212", + "cdi68070", "CDI68070", + "cdicdic", "CDICDIC", + "cdislave", "CDISLAVE", + "m48t08", "MK48T08", + "alpha8201", "ALPHA-8201", + "pentium3", "Pentium III", + "ataflash", "ATA Flash PCCARD", + "mb3773", "MB3773", + "intel_te28f160", "Intel TE28F160 Flash", + "intel_e28f400b", "Intel E28F400B Flash", + "taito_zoom", "Taito Zoom Sound System", + "mn1020012a", "MN1020012A", + "zsg2", "ZSG-2", + "ide_baseboard", "IDE Baseboard", + "tc8830f", "TC8830F", + "cxd8606bq", "CXD8606BQ", + "cxd8561cq", "CXD8561CQ", + "i8742", "I8742", + "pr8210", "Pioneer PR-8210", + "i8049", "I8049", + "wiping_sound", "Wiping Custom", + "naomi_m1_board", "NAOMI-M1-BOARD", + "h83337", "H8/3337", + "h8_intc", "H8 INTC", + "h8_8bits_timer_channel", "H8 8-bits timer channel", + "h8_16bits_timer_channel", "H8 16-bits timer channel", + "h83007", "H8/3007", + "sh1_drc", "SH-1 DRC", + "tms9980a", "TMS9980A", + "wd33c93", "33C93 SCSI", + "cps3_custom", "CPS3 Custom", + "midssio", "Midway SSIO Sound Board", + "gms30c2132", "GMS30C2132", + "h83334", "H8/3334", + "tms32032", "TMS32032", + "adsp2104", "ADSP-2104", + "m48t35", "M48T35", + "tms32031", "TMS32031", + "tms57002", "TMS57002", + "scsihd", "SCSIHD", + "cxd8538q", "CXD8538Q", + "k056800", "Konami 056800 MIRAC", + "se3208", "SE3208", + "vr0video", "VRender0 Video", + "ds1302", "DS1302", + "vrender0", "VRender0", + "cem3394", "CEM3394", + "tms9927", "TMS9927 VTC", + "cquestrot", "Cube Quest Rotate CPU", + "cquestlin", "Cube Quest Line CPU", + "cquestsnd", "Cube Quest Sound CPU", + "simutrek", "Simutrek Modified PR-8210", + "i8748", "I8748", + "st0016", "ST0016", + "seibu_cop_legacy", "Seibu COP Legacy", + "atjsa2", "Atari JSA II Sound Board", + "sknsspr", "sknsspr_device", + "k055673", "Konami 055673", + "keycus_c431", "KEYCUS C431", + "m68040", "M68040", + "tms32051", "TMS32051", + "tc0640fio", "Taito TC0640FIO", + "93c56_8", "Serial EEPROM 93C56 (256x8)", + "pc080sn", "Taito PC080SN", + "toshiba_t5182", "T5182", + "ppc603r", "PowerPC 603R", + "mb86233", "MB86233", + "segam1audio", "Sega Model 1 Sound Board", + "multipcm", "Sega/Yamaha 315-5560", + "tc0510nio", "Taito TC0510NIO", + "v3021", "v3021", + "ics2115", "ICS2115", + "rtc9701", "rtc9701", + "ymz770", "Yamaha YMZ770", + "epic12", "epic12_device", + "sh3be", "SH-3 (big)", + "linearflash16mb", "Linear Flash PCCARD (16MB)", + "k573mcr", "Konami Memory Card Reader", + "k573cassyi", "KONAMI 573 CASSETTE YI", + "ds2401", "DS2401", + "linearflash32mb", "Linear Flash PCCARD (32MB)", + "k573dio", "Konami 573 digital I/O board", + "mas3507d", "MAS3507D", + "k573casszi", "KONAMI 573 CASSETTE ZI", + "zs01", "ZS01", + "k573cassxi", "KONAMI 573 CASSETTE XI", + "m68301", "M68301", + "midtcs", "Midway Turbo Chip Squeak Sound Board", + "5a22", "5A22", + "spc700", "SPC700", + "snes_sound", "SNES Custom DSP (SPC700)", + "beep", "Beep", + "tc0091lvc", "TC0091LVC", + "namco53", "Namco 53xx", + "58xx", "Namco 58xx", + "56xx", "Namco 56xx", + "i80c51", "I80C51", + "z80dma", "Z8410 DMA", + "pr7820", "Pioneer PR-7820", + "z80sio", "Z80 SIO", + "22vp932", "Phillips 22VP932", + "adsp21062", "ADSP21062", + "ds1204", "DS1204", + "midsnt", "Midway Squawk 'n' Talk Sound Board", + "tms5200", "TMS5200", + "cop402", "COP402", + "pic16c55", "PIC16C55", + "igs_025_022", "IGS025", + "igs022", "IGS022", + "upd96050", "uPD96050", + "k573msu", "Konami Multi Session Unit", + "adc0838", "ADC0838", + "keycus_c410", "KEYCUS C410", + "astrocade", "Astrocade", + "i8251", "I8251", + "sega_sharrier_sprite", "Sega Space Harrier Sprites", + "avg_starwars", "AVG_STARWARS", + "tms5220", "TMS5220", + "i80188", "I80188", + "snk6502_sound", "snk6502 Custom", + "venture_sound", "Exidy SFX+PSG", + "nscsi_bus", "NSCSI Bus", + "nscsi_connector", "NSCSI device connector abstraction", + "scsi_harddisk", "SCSI HARDDISK", + "ncr537xx", "53C7xx SCSI", + "pit8253", "8253 PIT", + "filetto_cga", "ISA8_CGA_FILETTO", + "tetriskr_cga", "ISA8_CGA_TETRISKR", + "namco_c45_road", "Namco C45 Road", + "e132t", "E1-32T", + "tms9995", "TMS9995", + "22vp931", "Phillips 22VP931", + "i4004", "Intel I4004", + "hd6845", "HD6845 CRTC", + "flower_sound", "Flower Custom Sound", + "e132xt", "E1-32XT", + "toaplan_scu", "toaplan_scu_device", + "nsc8105", "NSC8105", + "i8741", "I8741", + "funcube_touchscrene", "Funcube Touchscreen", + "namco62", "Namco 62xx", + "93c76_8", "Serial EEPROM 93C76 (1024x8)", + "kaneko_grap2", "kaneko_grap2_device", + "upd7756", "uPD7756", + "voodoo_2", "3dfx Voodoo 2", + "taito8741_4pack", "Taito 8741 MCU 4 pack", + "msm6585", "MSM6585", + "st0020", "st0020_device", + "geebee_sound", "Gee Bee Custom", + "namco_63701x", "Namco 63701X", + "sega_yboard_sprite", "Sega Y-Board Sprites", + "huc6202", "HuC6202 VPC", + "i8155", "8155 RIOT", + "bfm_bd1", "BFM BD1 VFD controller", + "bfm_adder2", "BFM ADDER2", + "gomoku_sound", "Gomoku Custom", + "k033906", "Konami 033906", + "k037122", "Konami 0371222", + "adc12138", "ADC12138", + "mb_vcu", "Mazer Blazer custom VCU", + "gridlee_sound", "Gridlee Custom", + "ym2608", "YM2608", + "m48t02", "M48T02", + "k573npu", "Konami Network PCB Unit", + "adc1038", "ADC1038", + "k056230", "Konami 056230", + "atari_rle", "Atari RLE Motion Objects", + "asic65", "ASIC65", + "ins8050", "INS 8050 SC/MP", + "sega_hangon_sprite", "Sega Hang On Sprites", + "adsp2100", "ADSP-2100", + "adsp2101", "ADSP-2101", + "dsp32c", "DSP32C", + "i8080a", "8080A", + "k573cassy", "KONAMI 573 CASSETTE Y", + "h8s2394", "H8S/2394", + "h8s_intc", "H8S INTC", + "h8_adc_2357", "H8 ADC 2357", + "h8s_16bits_timer_channel", "H8S 16-bits timer channel", + "segausbrom", "Sega Universal Sound Board with ROM", + "tms9902", "TMS9902 ACC", + "ppu2c05_01", "2C05_01 PPU", + "janshi_vdp", "JANSHIVDP", + "wmsadpcm", "Williams ADPCM Sound Board", + "josvolly8741_4pack", "joshi Vollyball 8741 MCU 4 pack", + "v810", "V810", + "midi_kbd", "Generic MIDI Keyboard", + "r4600le_drc", "R4600 (little) DRC", + "hd63484", "HD63484 CRTC", + "renegade_adpcm", "Renegade Custom ADPCM", + "tms3615", "TMS3615", + "er2055", "ER2055", + "pentium4", "Pentium 4", + "indervd", "Inder / Dinamic TMS Video", + "cop420", "COP420", + "decocpu1", "Data East Pinball CPU Board Type 1", + "snkwave", "SNK Wave", + "r5000be_drc", "R5000 (big) DRC", + "tmp91640", "TMP91640", + "saa5050", "SAA5050", + "m58715", "M58715", + "indersb", "Inder 4xDAC Sound Board", + "sega315_5246", "Sega 315-5246", + "cartslot_image", "Cartslot", + "software_list", "Software list", + "k053250", "K053250", + "ppu2c05_02", "2C05_02 PPU", + "gms30c2116", "GMS30C2116", + "mjkjidai_adpcm", "Custom ADPCM", + "decocpu2", "Data East Pinball CPU Board Type 2", + "atjsa3s", "Atari JSA IIIs Sound Board", + "es5503", "Ensoniq ES5503", + "u8106", "U8106", + "mc3417", "MC3417", + "keycus_c443", "KEYCUS C443", + "wmsnarc", "Williams NARC Sound Board", + "naughtyb_sound", "Naughty Boy Custom", + "ygv608", "YGV608", + "m50458", "m50458", + "s3520cf", "s3520cf", + "rp5h01", "RP5H01", + "m6m80011ap", "M6M80011AP EEPROM", + "igs028", "IGS028", + "upd4992", "uPD4992", + "sega_outrun_sprite", "Sega Out Run Sprites", + "er5911_16", "Serial EEPROM ER5911 (64x16)", + "y2404", "Y2404", + "59xx", "Namco 59xx", + "e116xt", "E1-16XT", + "bootleg_sys16a_sprite", "Bootleg System 16A Sprites", + "es8712", "ES8712", + "ppu2c03b", "2C03B PPU", + "segausb", "Sega Universal Sound Board", + "pleiads_sound", "Pleiads Custom", + "dsp56156", "DSP56156", + "linearflash64mb", "Linear Flash PCCARD (64MB)", + "keycus_c432", "KEYCUS C432", + "z8002", "Z8002", + "polepos_sound", "Pole Position Custom", + "netlist_analog_output", "netlist analog output", + "popflame_sound", "Pop Flamer Custom", + "keycus_c411", "KEYCUS C411", + "decocpu6", "DECO CPU-6", + "mb90082", "mb90082", + "puzzlet_io", "Puzzlet Coin/Start I/O", + "pentium2", "Pentium II", + "avg_quantum", "AVG_QUANTUM", + "i5000snd", "I5000", + "m58819", "M58819", + "m58817", "M58817", + "gaelco_serial", "gaelco_serial", + "at89c4051", "AT89C4051", + "redbaron_custom", "Red Baron Custom", + "redline_80186_sound", "Redline Racer 80186 DAC", + "sp0256", "SP0256", + "s3_vga", "S3 Graphics VGA", + "ibm8514a", "IBM8514A", + "bfm_dm01", "Bellfruit Dotmatrix 01", + "digitalker", "Digitalker", + "dsbz80", "Sega Z80-based Digital Sound Board", + "dm9368", "DM9368", + "m3745x", "Mitsubishi M37450", + "i860xr", "i860XR", + "i80c31", "I80C31", + "m68ec030", "M68EC030", + "keycus_c409", "KEYCUS C409", + "r3051", "R3051", + "gms30c2232", "GMS30C2232", + "midcsd", "Midway Chip Squeak Deluxe Sound Board", + "nile", "NiLe", + "keycus_c442", "KEYCUS C442", + "cxd8530aq", "CXD8530AQ", + "keycus_c406", "KEYCUS C406", + "avg_tempest", "AVG_TEMPEST", + "cop421", "COP421", + "avg_tomcat", "AVG_TOMCAT", + "ppu2c05_04", "2C05_04 PPU", + "tia_ntsc_video", "TIA Video (NTSC)", + "tia_sound", "TIA", + "esrip", "ESRIP", + "turrett_hdd", "Turrett Tower HDD", + "ttsnd", "Turret Tower Sound", + "tx1_sound", "TX-1 Custom", + "scn2674_device", "scn2674_device", + "ins8154", "INS8154", + "victory_sound", "Exidy SFX+PSG+Speech", + "ppu2c05_03", "2C05_03 PPU", + "r4700le_drc", "R4700 (little) DRC", + "ds5002fp", "DS5002FP", + "keycus_c430", "KEYCUS C430", + NULL +}; diff --git a/es-app/src/MetaData.cpp b/es-app/src/MetaData.cpp new file mode 100644 index 000000000..2d5340bd2 --- /dev/null +++ b/es-app/src/MetaData.cpp @@ -0,0 +1,135 @@ +#include "MetaData.h" +#include "components/TextComponent.h" +#include "Log.h" +#include "Util.h" + +namespace fs = boost::filesystem; + +MetaDataDecl gameDecls[] = { + // key, type, default, statistic, name in GuiMetaDataEd, prompt in GuiMetaDataEd + {"name", MD_STRING, "", false, "name", "enter game name"}, + {"desc", MD_MULTILINE_STRING, "", false, "description", "enter description"}, + {"image", MD_IMAGE_PATH, "", false, "image", "enter path to image"}, + {"thumbnail", MD_IMAGE_PATH, "", false, "thumbnail", "enter path to thumbnail"}, + {"rating", MD_RATING, "0.000000", false, "rating", "enter rating"}, + {"releasedate", MD_DATE, "not-a-date-time", false, "release date", "enter release date"}, + {"developer", MD_STRING, "unknown", false, "developer", "enter game developer"}, + {"publisher", MD_STRING, "unknown", false, "publisher", "enter game publisher"}, + {"genre", MD_STRING, "unknown", false, "genre", "enter game genre"}, + {"players", MD_INT, "1", false, "players", "enter number of players"}, + {"playcount", MD_INT, "0", true, "play count", "enter number of times played"}, + {"lastplayed", MD_TIME, "0", true, "last played", "enter last played date"} +}; +const std::vector gameMDD(gameDecls, gameDecls + sizeof(gameDecls) / sizeof(gameDecls[0])); + +MetaDataDecl folderDecls[] = { + {"name", MD_STRING, "", false}, + {"desc", MD_MULTILINE_STRING, "", false}, + {"image", MD_IMAGE_PATH, "", false}, + {"thumbnail", MD_IMAGE_PATH, "", false}, +}; +const std::vector folderMDD(folderDecls, folderDecls + sizeof(folderDecls) / sizeof(folderDecls[0])); + +const std::vector& getMDDByType(MetaDataListType type) +{ + switch(type) + { + case GAME_METADATA: + return gameMDD; + case FOLDER_METADATA: + return folderMDD; + } + + LOG(LogError) << "Invalid MDD type"; + return gameMDD; +} + + + +MetaDataList::MetaDataList(MetaDataListType type) + : mType(type) +{ + const std::vector& mdd = getMDD(); + for(auto iter = mdd.begin(); iter != mdd.end(); iter++) + set(iter->key, iter->defaultValue); +} + + +MetaDataList MetaDataList::createFromXML(MetaDataListType type, pugi::xml_node node, const fs::path& relativeTo) +{ + MetaDataList mdl(type); + + const std::vector& mdd = mdl.getMDD(); + + for(auto iter = mdd.begin(); iter != mdd.end(); iter++) + { + pugi::xml_node md = node.child(iter->key.c_str()); + if(md) + { + // if it's a path, resolve relative paths + std::string value = md.text().get(); + if(iter->type == MD_IMAGE_PATH) + value = resolvePath(value, relativeTo, true).generic_string(); + + mdl.set(iter->key, value); + }else{ + mdl.set(iter->key, iter->defaultValue); + } + } + + return mdl; +} + +void MetaDataList::appendToXML(pugi::xml_node parent, bool ignoreDefaults, const fs::path& relativeTo) const +{ + const std::vector& mdd = getMDD(); + + for(auto mddIter = mdd.begin(); mddIter != mdd.end(); mddIter++) + { + auto mapIter = mMap.find(mddIter->key); + if(mapIter != mMap.end()) + { + // we have this value! + // if it's just the default (and we ignore defaults), don't write it + if(ignoreDefaults && mapIter->second == mddIter->defaultValue) + continue; + + // try and make paths relative if we can + std::string value = mapIter->second; + if(mddIter->type == MD_IMAGE_PATH) + value = makeRelativePath(value, relativeTo, true).generic_string(); + + parent.append_child(mapIter->first.c_str()).text().set(value.c_str()); + } + } +} + +void MetaDataList::set(const std::string& key, const std::string& value) +{ + mMap[key] = value; +} + +void MetaDataList::setTime(const std::string& key, const boost::posix_time::ptime& time) +{ + mMap[key] = boost::posix_time::to_iso_string(time); +} + +const std::string& MetaDataList::get(const std::string& key) const +{ + return mMap.at(key); +} + +int MetaDataList::getInt(const std::string& key) const +{ + return atoi(get(key).c_str()); +} + +float MetaDataList::getFloat(const std::string& key) const +{ + return (float)atof(get(key).c_str()); +} + +boost::posix_time::ptime MetaDataList::getTime(const std::string& key) const +{ + return string_to_ptime(get(key), "%Y%m%dT%H%M%S%F%q"); +} diff --git a/es-app/src/MetaData.h b/es-app/src/MetaData.h new file mode 100644 index 000000000..1143d9204 --- /dev/null +++ b/es-app/src/MetaData.h @@ -0,0 +1,65 @@ +#pragma once + +#include "pugixml/pugixml.hpp" +#include +#include +#include "GuiComponent.h" +#include +#include + +enum MetaDataType +{ + //generic types + MD_STRING, + MD_INT, + MD_FLOAT, + + //specialized types + MD_MULTILINE_STRING, + MD_IMAGE_PATH, + MD_RATING, + MD_DATE, + MD_TIME //used for lastplayed +}; + +struct MetaDataDecl +{ + std::string key; + MetaDataType type; + std::string defaultValue; + bool isStatistic; //if true, ignore scraper values for this metadata + std::string displayName; // displayed as this in editors + std::string displayPrompt; // phrase displayed in editors when prompted to enter value (currently only for strings) +}; + +enum MetaDataListType +{ + GAME_METADATA, + FOLDER_METADATA +}; + +const std::vector& getMDDByType(MetaDataListType type); + +class MetaDataList +{ +public: + static MetaDataList createFromXML(MetaDataListType type, pugi::xml_node node, const boost::filesystem::path& relativeTo); + void appendToXML(pugi::xml_node parent, bool ignoreDefaults, const boost::filesystem::path& relativeTo) const; + + MetaDataList(MetaDataListType type); + + void set(const std::string& key, const std::string& value); + void setTime(const std::string& key, const boost::posix_time::ptime& time); //times are internally stored as ISO strings (e.g. boost::posix_time::to_iso_string(ptime)) + + const std::string& get(const std::string& key) const; + int getInt(const std::string& key) const; + float getFloat(const std::string& key) const; + boost::posix_time::ptime getTime(const std::string& key) const; + + inline MetaDataListType getType() const { return mType; } + inline const std::vector& getMDD() const { return getMDDByType(getType()); } + +private: + MetaDataListType mType; + std::map mMap; +}; diff --git a/es-app/src/PlatformId.cpp b/es-app/src/PlatformId.cpp new file mode 100644 index 000000000..61eb8e3c4 --- /dev/null +++ b/es-app/src/PlatformId.cpp @@ -0,0 +1,100 @@ +#include "PlatformId.h" +#include + +extern const char* mameNameToRealName[]; + +namespace PlatformIds +{ + const char* PlatformNames[PLATFORM_COUNT + 1] = { + "unknown", // nothing set + + "3do", + "amiga", + "amstradcpc", + "apple2", + "arcade", + "atari800", + "atari2600", + "atari5200", + "atari7800", + "atarilynx", + "atarist", + "atarijaguar", + "atarijaguarcd", + "atarixe", + "colecovision", + "c64", // commodore 64 + "intellivision", + "macintosh", + "xbox", + "xbox360", + "neogeo", + "ngp", // neo geo pocket + "ngpc", // neo geo pocket color + "n3ds", // nintendo 3DS + "n64", // nintendo 64 + "nds", // nintendo DS + "nes", // nintendo entertainment system + "gb", // game boy + "gba", // game boy advance + "gbc", // game boy color + "gc", // gamecube + "wii", + "wiiu", + "pc", + "sega32x", + "segacd", + "dreamcast", + "gamegear", + "genesis", // sega genesis + "mastersystem", // sega master system + "megadrive", // sega megadrive + "saturn", // sega saturn + "psx", + "ps2", + "ps3", + "ps4", + "psvita", + "psp", // playstation portable + "snes", // super nintendo entertainment system + "pcengine", // turbografx-16/pcengine + "wonderswan", + "wonderswancolor", + "zxspectrum", + + "ignore", // do not allow scraping for this system + "invalid" + }; + + PlatformId getPlatformId(const char* str) + { + if(str == NULL) + return PLATFORM_UNKNOWN; + + for(unsigned int i = 1; i < PLATFORM_COUNT; i++) + { + if(strcmp(PlatformNames[i], str) == 0) + return (PlatformId)i; + } + + return PLATFORM_UNKNOWN; + } + + const char* getPlatformName(PlatformId id) + { + return PlatformNames[id]; + } + + const char* getCleanMameName(const char* from) + { + const char** mameNames = mameNameToRealName; + + while(*mameNames != NULL && strcmp(from, *mameNames) != 0) + mameNames += 2; + + if(*mameNames) + return *(mameNames + 1); + + return from; + } +} diff --git a/es-app/src/PlatformId.h b/es-app/src/PlatformId.h new file mode 100644 index 000000000..f9572ab9d --- /dev/null +++ b/es-app/src/PlatformId.h @@ -0,0 +1,73 @@ +#pragma once + +#include + +namespace PlatformIds +{ + enum PlatformId : unsigned int + { + PLATFORM_UNKNOWN = 0, + + THREEDO, // name can't start with a constant + AMIGA, + AMSTRAD_CPC, + APPLE_II, + ARCADE, + ATARI_800, + ATARI_2600, + ATARI_5200, + ATARI_7800, + ATARI_LYNX, + ATARI_ST, // Atari ST/STE/Falcon + ATARI_JAGUAR, + ATARI_JAGUAR_CD, + ATARI_XE, + COLECOVISION, + COMMODORE_64, + INTELLIVISION, + MAC_OS, + XBOX, + XBOX_360, + NEOGEO, + NEOGEO_POCKET, + NEOGEO_POCKET_COLOR, + NINTENDO_3DS, + NINTENDO_64, + NINTENDO_DS, + NINTENDO_ENTERTAINMENT_SYSTEM, + GAME_BOY, + GAME_BOY_ADVANCE, + GAME_BOY_COLOR, + NINTENDO_GAMECUBE, + NINTENDO_WII, + NINTENDO_WII_U, + PC, + SEGA_32X, + SEGA_CD, + SEGA_DREAMCAST, + SEGA_GAME_GEAR, + SEGA_GENESIS, + SEGA_MASTER_SYSTEM, + SEGA_MEGA_DRIVE, + SEGA_SATURN, + PLAYSTATION, + PLAYSTATION_2, + PLAYSTATION_3, + PLAYSTATION_4, + PLAYSTATION_VITA, + PLAYSTATION_PORTABLE, + SUPER_NINTENDO, + TURBOGRAFX_16, // (also PC Engine) + WONDERSWAN, + WONDERSWAN_COLOR, + ZX_SPECTRUM, + + PLATFORM_IGNORE, // do not allow scraping for this system + PLATFORM_COUNT + }; + + PlatformId getPlatformId(const char* str); + const char* getPlatformName(PlatformId id); + + const char* getCleanMameName(const char* from); +} diff --git a/es-app/src/ScraperCmdLine.cpp b/es-app/src/ScraperCmdLine.cpp new file mode 100644 index 000000000..f6f695252 --- /dev/null +++ b/es-app/src/ScraperCmdLine.cpp @@ -0,0 +1,285 @@ +#include "ScraperCmdLine.h" +#include +#include +#include "SystemData.h" +#include "Settings.h" +#include +#include "Log.h" + +std::ostream& out = std::cout; + +void handle_interrupt_signal(int p) +{ + sleep(50); + + LOG(LogInfo) << "Interrupt received during scrape..."; + + SystemData::deleteSystems(); + + exit(1); +} + +int run_scraper_cmdline() +{ + out << "EmulationStation scraper\n"; + out << "========================\n"; + out << "\n"; + + signal(SIGINT, handle_interrupt_signal); + + //================================================================================== + //filter + //================================================================================== + enum FilterChoice + { + FILTER_MISSING_IMAGES, + FILTER_ALL + }; + + int filter_choice; + do { + out << "Select filter for games to be scraped:\n"; + out << FILTER_MISSING_IMAGES << " - games missing images\n"; + out << FILTER_ALL << " - all games period, can overwrite existing metadata\n"; + + std::cin >> filter_choice; + std::cin.ignore(1, '\n'); //skip the unconsumed newline + } while(filter_choice < FILTER_MISSING_IMAGES || filter_choice > FILTER_ALL); + + out << "\n"; + + //================================================================================== + //platforms + //================================================================================== + + std::vector systems; + + out << "You can scrape only specific platforms, or scrape all of them.\n"; + out << "Would you like to scrape all platforms? (y/n)\n"; + + std::string system_choice; + std::getline(std::cin, system_choice); + + if(system_choice == "y" || system_choice == "Y") + { + out << "Will scrape all platforms.\n"; + for(auto i = SystemData::sSystemVector.begin(); i != SystemData::sSystemVector.end(); i++) + { + out << " " << (*i)->getName() << " (" << (*i)->getGameCount() << " games)\n"; + systems.push_back(*i); + } + + }else{ + std::string sys_name; + + out << "Enter the names of the platforms you would like to scrape, one at a time.\n"; + out << "Type nothing and press enter when you are ready to continue.\n"; + + do { + for(auto i = SystemData::sSystemVector.begin(); i != SystemData::sSystemVector.end(); i++) + { + if(std::find(systems.begin(), systems.end(), (*i)) != systems.end()) + out << " C "; + else + out << " "; + + out << "\"" << (*i)->getName() << "\" (" << (*i)->getGameCount() << " games)\n"; + } + + std::getline(std::cin, sys_name); + + if(sys_name.empty()) + break; + + bool found = false; + for(auto i = SystemData::sSystemVector.begin(); i != SystemData::sSystemVector.end(); i++) + { + if((*i)->getName() == sys_name) + { + systems.push_back(*i); + found = true; + break; + } + } + + if(!found) + out << "System not found.\n"; + + } while(true); + } + + //================================================================================== + //manual mode + //================================================================================== + + out << "\n"; + out << "You can let the scraper try to automatically choose the best result, or\n"; + out << "you can manually approve each result. This \"manual mode\" is much more accurate.\n"; + out << "It is highly recommended you use manual mode unless you have a very large collection.\n"; + out << "Scrape in manual mode? (y/n)\n"; + + std::string manual_mode_str; + std::getline(std::cin, manual_mode_str); + + bool manual_mode = false; + + if(manual_mode_str == "y" || manual_mode_str == "Y") + { + manual_mode = true; + out << "Scraping in manual mode!\n"; + }else{ + out << "Scraping in automatic mode!\n"; + } + + //================================================================================== + //scraping + //================================================================================== + out << "\n"; + out << "Alright, let's do this thing!\n"; + out << "=============================\n"; + + /* + std::shared_ptr scraper = Settings::getInstance()->getScraper(); + for(auto sysIt = systems.begin(); sysIt != systems.end(); sysIt++) + { + std::vector files = (*sysIt)->getRootFolder()->getFilesRecursive(GAME); + + ScraperSearchParams params; + params.system = (*sysIt); + + for(auto gameIt = files.begin(); gameIt != files.end(); gameIt++) + { + params.nameOverride = ""; + params.game = *gameIt; + + //print original search term + out << getCleanFileName(params.game->getPath()) << "...\n"; + + //need to take into account filter_choice + if(filter_choice == FILTER_MISSING_IMAGES) + { + if(!params.game->metadata.get("image").empty()) //maybe should also check if the image file exists/is a URL + { + out << " Skipping, metadata \"image\" entry is not empty.\n"; + continue; + } + } + + //actually get some results + do { + std::vector mdls = scraper->getResults(params); + + //no results + if(mdls.size() == 0) + { + if(manual_mode) + { + //in manual mode let the user enter a custom search + out << " NO RESULTS FOUND! Enter a new name to search for, or nothing to skip.\n"; + + std::getline(std::cin, params.nameOverride); + + if(params.nameOverride.empty()) + { + out << " Skipping...\n"; + break; + } + + continue; + + }else{ + out << " NO RESULTS FOUND! Skipping...\n"; + break; + } + } + + //some results + if(manual_mode) + { + //print list of choices + for(unsigned int i = 0; i < mdls.size(); i++) + { + out << " " << i << " - " << mdls.at(i).get("name") << "\n"; + } + + int choice = -1; + std::string choice_str; + + out << "Your choice: "; + + std::getline(std::cin, choice_str); + std::stringstream choice_buff(choice_str); //convert to int + choice_buff >> choice; + + if(choice >= 0 && choice < (int)mdls.size()) + { + params.game->metadata = mdls.at(choice); + break; + }else{ + out << "Invalid choice.\n"; + continue; + } + + }else{ + //automatic mode + //always choose the first choice + out << " name -> " << mdls.at(0).get("name") << "\n"; + params.game->metadata = mdls.at(0); + break; + } + + } while(true); + + out << "===================\n"; + } + } + + out << "\n\n"; + out << "Downloading boxart...\n"; + + for(auto sysIt = systems.begin(); sysIt != systems.end(); sysIt++) + { + std::vector files = (*sysIt)->getRootFolder()->getFilesRecursive(GAME); + + for(auto gameIt = files.begin(); gameIt != files.end(); gameIt++) + { + FileData* game = *gameIt; + const std::vector& mdd = game->metadata.getMDD(); + for(auto i = mdd.begin(); i != mdd.end(); i++) + { + std::string key = i->key; + std::string url = game->metadata.get(key); + + if(i->type == MD_IMAGE_PATH && HttpReq::isUrl(url)) + { + std::string urlShort = url.substr(0, url.length() > 35 ? 35 : url.length()); + if(url.length() != urlShort.length()) urlShort += "..."; + + out << " " << game->metadata.get("name") << " [from: " << urlShort << "]...\n"; + + ScraperSearchParams p; + p.game = game; + p.system = *sysIt; + game->metadata.set(key, downloadImage(url, getSaveAsPath(p, key, url))); + if(game->metadata.get(key).empty()) + { + out << " FAILED! Skipping.\n"; + game->metadata.set(key, url); //result URL to what it was if download failed, retry some other time + } + } + } + } + } + + + out << "\n\n"; + out << "==============================\n"; + out << "SCRAPE COMPLETE!\n"; + out << "==============================\n"; + */ + + out << "\n\n"; + out << "ACTUALLY THIS IS STILL TODO\n"; + + return 0; +} diff --git a/es-app/src/ScraperCmdLine.h b/es-app/src/ScraperCmdLine.h new file mode 100644 index 000000000..657c0186e --- /dev/null +++ b/es-app/src/ScraperCmdLine.h @@ -0,0 +1,3 @@ +#pragma once + +int run_scraper_cmdline(); diff --git a/es-app/src/SystemData.cpp b/es-app/src/SystemData.cpp new file mode 100644 index 000000000..50889da91 --- /dev/null +++ b/es-app/src/SystemData.cpp @@ -0,0 +1,444 @@ +#include "SystemData.h" +#include "Gamelist.h" +#include +#include +#include +#include +#include "Renderer.h" +#include "AudioManager.h" +#include "VolumeControl.h" +#include "Log.h" +#include "InputManager.h" +#include +#include "Settings.h" +#include "FileSorts.h" + +std::vector SystemData::sSystemVector; + +namespace fs = boost::filesystem; + +SystemData::SystemData(const std::string& name, const std::string& fullName, const std::string& startPath, const std::vector& extensions, + const std::string& command, const std::vector& platformIds, const std::string& themeFolder) +{ + mName = name; + mFullName = fullName; + mStartPath = startPath; + + //expand home symbol if the startpath contains ~ + if(mStartPath[0] == '~') + { + mStartPath.erase(0, 1); + mStartPath.insert(0, getHomePath()); + } + + mSearchExtensions = extensions; + mLaunchCommand = command; + mPlatformIds = platformIds; + mThemeFolder = themeFolder; + + mRootFolder = new FileData(FOLDER, mStartPath, this); + mRootFolder->metadata.set("name", mFullName); + + if(!Settings::getInstance()->getBool("ParseGamelistOnly")) + populateFolder(mRootFolder); + + if(!Settings::getInstance()->getBool("IgnoreGamelist")) + parseGamelist(this); + + mRootFolder->sort(FileSorts::SortTypes.at(0)); + + loadTheme(); +} + +SystemData::~SystemData() +{ + //save changed game data back to xml + if(!Settings::getInstance()->getBool("IgnoreGamelist")) + { + updateGamelist(this); + } + + delete mRootFolder; +} + +std::string strreplace(std::string& str, std::string replace, std::string with) +{ + size_t pos = str.find(replace); + + if(pos != std::string::npos) + return str.replace(pos, replace.length(), with.c_str(), with.length()); + else + return str; +} + +std::string escapePath(const boost::filesystem::path& path) +{ + // a quick and dirty way to insert a backslash before most characters that would mess up a bash path; + // someone with regex knowledge should make this into a one-liner + std::string pathStr = path.generic_string(); + + const char* invalidChars = " '\"\\!$^&*(){}[]?;<>"; + for(unsigned int i = 0; i < pathStr.length(); i++) + { + char c; + unsigned int charNum = 0; + do { + c = invalidChars[charNum]; + if(pathStr[i] == c) + { + pathStr.insert(i, "\\"); + i++; + break; + } + charNum++; + } while(c != '\0'); + } + + return pathStr; +} + +void SystemData::launchGame(Window* window, FileData* game) +{ + LOG(LogInfo) << "Attempting to launch game..."; + + AudioManager::getInstance()->deinit(); + VolumeControl::getInstance()->deinit(); + window->deinit(); + + std::string command = mLaunchCommand; + + const std::string rom = escapePath(game->getPath()); + const std::string basename = game->getPath().stem().string(); + const std::string rom_raw = game->getPath().string(); + + command = strreplace(command, "%ROM%", rom); + command = strreplace(command, "%BASENAME%", basename); + command = strreplace(command, "%ROM_RAW%", rom_raw); + + LOG(LogInfo) << " " << command; + std::cout << "==============================================\n"; + int exitCode = system(command.c_str()); + std::cout << "==============================================\n"; + + if(exitCode != 0) + { + LOG(LogWarning) << "...launch terminated with nonzero exit code " << exitCode << "!"; + } + + window->init(); + VolumeControl::getInstance()->init(); + AudioManager::getInstance()->init(); + window->normalizeNextUpdate(); + + //update number of times the game has been launched + int timesPlayed = game->metadata.getInt("playcount") + 1; + game->metadata.set("playcount", std::to_string(static_cast(timesPlayed))); + + //update last played time + boost::posix_time::ptime time = boost::posix_time::second_clock::universal_time(); + game->metadata.setTime("lastplayed", time); +} + +void SystemData::populateFolder(FileData* folder) +{ + const fs::path& folderPath = folder->getPath(); + if(!fs::is_directory(folderPath)) + { + LOG(LogWarning) << "Error - folder with path \"" << folderPath << "\" is not a directory!"; + return; + } + + const std::string folderStr = folderPath.generic_string(); + + //make sure that this isn't a symlink to a thing we already have + if(fs::is_symlink(folderPath)) + { + //if this symlink resolves to somewhere that's at the beginning of our path, it's gonna recurse + if(folderStr.find(fs::canonical(folderPath).generic_string()) == 0) + { + LOG(LogWarning) << "Skipping infinitely recursive symlink \"" << folderPath << "\""; + return; + } + } + + fs::path filePath; + std::string extension; + bool isGame; + for(fs::directory_iterator end, dir(folderPath); dir != end; ++dir) + { + filePath = (*dir).path(); + + if(filePath.stem().empty()) + continue; + + //this is a little complicated because we allow a list of extensions to be defined (delimited with a space) + //we first get the extension of the file itself: + extension = filePath.extension().string(); + + //fyi, folders *can* also match the extension and be added as games - this is mostly just to support higan + //see issue #75: https://github.com/Aloshi/EmulationStation/issues/75 + + isGame = false; + if(std::find(mSearchExtensions.begin(), mSearchExtensions.end(), extension) != mSearchExtensions.end()) + { + FileData* newGame = new FileData(GAME, filePath.generic_string(), this); + folder->addChild(newGame); + isGame = true; + } + + //add directories that also do not match an extension as folders + if(!isGame && fs::is_directory(filePath)) + { + FileData* newFolder = new FileData(FOLDER, filePath.generic_string(), this); + populateFolder(newFolder); + + //ignore folders that do not contain games + if(newFolder->getChildren().size() == 0) + delete newFolder; + else + folder->addChild(newFolder); + } + } +} + +std::vector readList(const std::string& str, const char* delims = " \t\r\n,") +{ + std::vector ret; + + size_t prevOff = str.find_first_not_of(delims, 0); + size_t off = str.find_first_of(delims, prevOff); + while(off != std::string::npos || prevOff != std::string::npos) + { + ret.push_back(str.substr(prevOff, off - prevOff)); + + prevOff = str.find_first_not_of(delims, off); + off = str.find_first_of(delims, prevOff); + } + + return ret; +} + +//creates systems from information located in a config file +bool SystemData::loadConfig() +{ + deleteSystems(); + + std::string path = getConfigPath(false); + + LOG(LogInfo) << "Loading system config file " << path << "..."; + + if(!fs::exists(path)) + { + LOG(LogError) << "es_systems.cfg file does not exist!"; + writeExampleConfig(getConfigPath(true)); + return false; + } + + pugi::xml_document doc; + pugi::xml_parse_result res = doc.load_file(path.c_str()); + + if(!res) + { + LOG(LogError) << "Could not parse es_systems.cfg file!"; + LOG(LogError) << res.description(); + return false; + } + + //actually read the file + pugi::xml_node systemList = doc.child("systemList"); + + if(!systemList) + { + LOG(LogError) << "es_systems.cfg is missing the tag!"; + return false; + } + + for(pugi::xml_node system = systemList.child("system"); system; system = system.next_sibling("system")) + { + std::string name, fullname, path, cmd, themeFolder; + PlatformIds::PlatformId platformId = PlatformIds::PLATFORM_UNKNOWN; + + name = system.child("name").text().get(); + fullname = system.child("fullname").text().get(); + path = system.child("path").text().get(); + + // convert extensions list from a string into a vector of strings + std::vector extensions = readList(system.child("extension").text().get()); + + cmd = system.child("command").text().get(); + + // platform id list + const char* platformList = system.child("platform").text().get(); + std::vector platformStrs = readList(platformList); + std::vector platformIds; + for(auto it = platformStrs.begin(); it != platformStrs.end(); it++) + { + const char* str = it->c_str(); + PlatformIds::PlatformId platformId = PlatformIds::getPlatformId(str); + + if(platformId == PlatformIds::PLATFORM_IGNORE) + { + // when platform is ignore, do not allow other platforms + platformIds.clear(); + platformIds.push_back(platformId); + break; + } + + // if there appears to be an actual platform ID supplied but it didn't match the list, warn + if(str != NULL && str[0] != '\0' && platformId == PlatformIds::PLATFORM_UNKNOWN) + LOG(LogWarning) << " Unknown platform for system \"" << name << "\" (platform \"" << str << "\" from list \"" << platformList << "\")"; + else if(platformId != PlatformIds::PLATFORM_UNKNOWN) + platformIds.push_back(platformId); + } + + // theme folder + themeFolder = system.child("theme").text().as_string(name.c_str()); + + //validate + if(name.empty() || path.empty() || extensions.empty() || cmd.empty()) + { + LOG(LogError) << "System \"" << name << "\" is missing name, path, extension, or command!"; + continue; + } + + //convert path to generic directory seperators + boost::filesystem::path genericPath(path); + path = genericPath.generic_string(); + + SystemData* newSys = new SystemData(name, fullname, path, extensions, cmd, platformIds, themeFolder); + if(newSys->getRootFolder()->getChildren().size() == 0) + { + LOG(LogWarning) << "System \"" << name << "\" has no games! Ignoring it."; + delete newSys; + }else{ + sSystemVector.push_back(newSys); + } + } + + return true; +} + +void SystemData::writeExampleConfig(const std::string& path) +{ + std::ofstream file(path.c_str()); + + file << "\n" + "\n" + "\n" + " \n" + " \n" + "\n" + " \n" + " nes\n" + "\n" + " \n" + " Nintendo Entertainment System\n" + "\n" + " \n" + " ~/roms/nes\n" + "\n" + " \n" + " .nes .NES\n" + "\n" + " \n" + " retroarch -L ~/cores/libretro-fceumm.so %ROM%\n" + "\n" + " \n" + " nes\n" + "\n" + " \n" + " nes\n" + " \n" + "\n"; + + file.close(); + + LOG(LogError) << "Example config written! Go read it at \"" << path << "\"!"; +} + +void SystemData::deleteSystems() +{ + for(unsigned int i = 0; i < sSystemVector.size(); i++) + { + delete sSystemVector.at(i); + } + sSystemVector.clear(); +} + +std::string SystemData::getConfigPath(bool forWrite) +{ + fs::path path = getHomePath() + "/.emulationstation/es_systems.cfg"; + if(forWrite || fs::exists(path)) + return path.generic_string(); + + return "/etc/emulationstation/es_systems.cfg"; +} + +std::string SystemData::getGamelistPath(bool forWrite) const +{ + fs::path filePath; + + filePath = mRootFolder->getPath() / "gamelist.xml"; + if(fs::exists(filePath)) + return filePath.generic_string(); + + filePath = getHomePath() + "/.emulationstation/gamelists/" + mName + "/gamelist.xml"; + if(forWrite) // make sure the directory exists if we're going to write to it, or crashes will happen + fs::create_directories(filePath.parent_path()); + if(forWrite || fs::exists(filePath)) + return filePath.generic_string(); + + return "/etc/emulationstation/gamelists/" + mName + "/gamelist.xml"; +} + +std::string SystemData::getThemePath() const +{ + // where we check for themes, in order: + // 1. [SYSTEM_PATH]/theme.xml + // 2. currently selected theme set + + // first, check game folder + fs::path localThemePath = mRootFolder->getPath() / "theme.xml"; + if(fs::exists(localThemePath)) + return localThemePath.generic_string(); + + // not in game folder, try theme sets + return ThemeData::getThemeFromCurrentSet(mThemeFolder).generic_string(); +} + +bool SystemData::hasGamelist() const +{ + return (fs::exists(getGamelistPath(false))); +} + +unsigned int SystemData::getGameCount() const +{ + return mRootFolder->getFilesRecursive(GAME).size(); +} + +void SystemData::loadTheme() +{ + mTheme = std::make_shared(); + + std::string path = getThemePath(); + + if(!fs::exists(path)) // no theme available for this platform + return; + + try + { + mTheme->loadFile(path); + } catch(ThemeException& e) + { + LOG(LogError) << e.what(); + mTheme = std::make_shared(); // reset to empty + } +} diff --git a/es-app/src/SystemData.h b/es-app/src/SystemData.h new file mode 100644 index 000000000..2a0ac8188 --- /dev/null +++ b/es-app/src/SystemData.h @@ -0,0 +1,80 @@ +#pragma once + +#include +#include +#include "FileData.h" +#include "Window.h" +#include "MetaData.h" +#include "PlatformId.h" +#include "ThemeData.h" + +class SystemData +{ +public: + SystemData(const std::string& name, const std::string& fullName, const std::string& startPath, const std::vector& extensions, + const std::string& command, const std::vector& platformIds, const std::string& themeFolder); + ~SystemData(); + + inline FileData* getRootFolder() const { return mRootFolder; }; + inline const std::string& getName() const { return mName; } + inline const std::string& getFullName() const { return mFullName; } + inline const std::string& getStartPath() const { return mStartPath; } + inline const std::vector& getExtensions() const { return mSearchExtensions; } + inline const std::string& getThemeFolder() const { return mThemeFolder; } + + inline const std::vector& getPlatformIds() const { return mPlatformIds; } + inline bool hasPlatformId(PlatformIds::PlatformId id) { return std::find(mPlatformIds.begin(), mPlatformIds.end(), id) != mPlatformIds.end(); } + + inline const std::shared_ptr& getTheme() const { return mTheme; } + + std::string getGamelistPath(bool forWrite) const; + bool hasGamelist() const; + std::string getThemePath() const; + + unsigned int getGameCount() const; + + void launchGame(Window* window, FileData* game); + + static void deleteSystems(); + static bool loadConfig(); //Load the system config file at getConfigPath(). Returns true if no errors were encountered. An example will be written if the file doesn't exist. + static void writeExampleConfig(const std::string& path); + static std::string getConfigPath(bool forWrite); // if forWrite, will only return ~/.emulationstation/es_systems.cfg, never /etc/emulationstation/es_systems.cfg + + static std::vector sSystemVector; + + inline std::vector::const_iterator getIterator() const { return std::find(sSystemVector.begin(), sSystemVector.end(), this); }; + inline std::vector::const_reverse_iterator getRevIterator() const { return std::find(sSystemVector.rbegin(), sSystemVector.rend(), this); }; + + inline SystemData* getNext() const + { + auto it = getIterator(); + it++; + if(it == sSystemVector.end()) it = sSystemVector.begin(); + return *it; + } + + inline SystemData* getPrev() const + { + auto it = getRevIterator(); + it++; + if(it == sSystemVector.rend()) it = sSystemVector.rbegin(); + return *it; + } + + // Load or re-load theme. + void loadTheme(); + +private: + std::string mName; + std::string mFullName; + std::string mStartPath; + std::vector mSearchExtensions; + std::string mLaunchCommand; + std::vector mPlatformIds; + std::string mThemeFolder; + std::shared_ptr mTheme; + + void populateFolder(FileData* folder); + + FileData* mRootFolder; +}; diff --git a/src/VolumeControl.cpp b/es-app/src/VolumeControl.cpp similarity index 98% rename from src/VolumeControl.cpp rename to es-app/src/VolumeControl.cpp index 1097ae2e1..394bab6be 100644 --- a/src/VolumeControl.cpp +++ b/es-app/src/VolumeControl.cpp @@ -284,7 +284,7 @@ int VolumeControl::getVolume() const mixerControlDetails.cbDetails = sizeof(MIXERCONTROLDETAILS_UNSIGNED); if (mixerGetControlDetails((HMIXEROBJ)mixerHandle, &mixerControlDetails, MIXER_GETCONTROLDETAILSF_VALUE) == MMSYSERR_NOERROR) { - volume = (uint8_t)((value.dwValue * 100) / 65535); + volume = (uint8_t)round((value.dwValue * 100) / 65535); } else { @@ -297,7 +297,8 @@ int VolumeControl::getVolume() const float floatVolume = 0.0f; //0-1 if (endpointVolume->GetMasterVolumeLevelScalar(&floatVolume) == S_OK) { - volume = (uint8_t)(floatVolume * 100.0f); + volume = (uint8_t)round(floatVolume * 100.0f); + LOG(LogInfo) << " getting volume as " << volume << " ( from float " << floatVolume << ")"; } else { diff --git a/src/VolumeControl.h b/es-app/src/VolumeControl.h similarity index 100% rename from src/VolumeControl.h rename to es-app/src/VolumeControl.h diff --git a/es-app/src/animations/LaunchAnimation.h b/es-app/src/animations/LaunchAnimation.h new file mode 100644 index 000000000..cfd9f06d0 --- /dev/null +++ b/es-app/src/animations/LaunchAnimation.h @@ -0,0 +1,64 @@ +#pragma once + +#include "animations/Animation.h" +#include "Log.h" + +// let's look at the game launch effect: +// -move camera to center on point P (interpolation method: linear) +// -zoom camera to factor Z via matrix scale (interpolation method: exponential) +// -fade screen to black at rate F (interpolation method: exponential) + +// How the animation gets constructed from the example of implementing the game launch effect: +// 1. Current parameters are retrieved through a get() call +// ugliness: +// -have to have a way to get a reference to the animation +// -requires additional implementation in some parent object, potentially AnimationController +// 2. ViewController is passed in LaunchAnimation constructor, applies state through setters +// ugliness: +// -effect only works for ViewController +// 3. Pass references to ViewController variables - LaunchAnimation(mCameraPos, mFadePerc, target) +// ugliness: +// -what if ViewController is deleted? --> AnimationController class handles that +// -no callbacks for changes...but that works well with this style of update, so I think it's okay +// 4. Use callbacks to set variables +// ugliness: +// -boilerplate as hell every time + +// #3 wins +// can't wait to see how this one bites me in the ass + +class LaunchAnimation : public Animation +{ +public: + //Target is a centerpoint + LaunchAnimation(Eigen::Affine3f& camera, float& fade, const Eigen::Vector3f& target, int duration) : + mCameraStart(camera), mTarget(target), mDuration(duration), cameraOut(camera), fadeOut(fade) {} + + int getDuration() const override { return mDuration; } + + void apply(float t) override + { + cameraOut = Eigen::Affine3f::Identity(); + + float zoom = lerp(1.0, 4.25f, t*t); + cameraOut.scale(Eigen::Vector3f(zoom, zoom, 1)); + + const float sw = (float)Renderer::getScreenWidth() / zoom; + const float sh = (float)Renderer::getScreenHeight() / zoom; + + Eigen::Vector3f centerPoint = lerp(-mCameraStart.translation() + Eigen::Vector3f(Renderer::getScreenWidth() / 2.0f, Renderer::getScreenHeight() / 2.0f, 0), + mTarget, smoothStep(0.0, 1.0, t)); + + cameraOut.translate(Eigen::Vector3f((sw / 2) - centerPoint.x(), (sh / 2) - centerPoint.y(), 0)); + + fadeOut = lerp(0.0, 1.0, t*t); + } + +private: + Eigen::Affine3f mCameraStart; + Eigen::Vector3f mTarget; + int mDuration; + + Eigen::Affine3f& cameraOut; + float& fadeOut; +}; diff --git a/es-app/src/animations/MoveCameraAnimation.h b/es-app/src/animations/MoveCameraAnimation.h new file mode 100644 index 000000000..1f1689bb2 --- /dev/null +++ b/es-app/src/animations/MoveCameraAnimation.h @@ -0,0 +1,24 @@ +#pragma once + +#include "animations/Animation.h" + +class MoveCameraAnimation : public Animation +{ +public: + MoveCameraAnimation(Eigen::Affine3f& camera, const Eigen::Vector3f& target) : mCameraStart(camera), mTarget(target), cameraOut(camera) {} + + int getDuration() const override { return 400; } + + void apply(float t) override + { + // cubic ease out + t -= 1; + cameraOut.translation() = -lerp(-mCameraStart.translation(), mTarget, t*t*t + 1); + } + +private: + Eigen::Affine3f mCameraStart; + Eigen::Vector3f mTarget; + + Eigen::Affine3f& cameraOut; +}; diff --git a/es-app/src/components/AsyncReqComponent.cpp b/es-app/src/components/AsyncReqComponent.cpp new file mode 100644 index 000000000..a38b58880 --- /dev/null +++ b/es-app/src/components/AsyncReqComponent.cpp @@ -0,0 +1,51 @@ +#include "components/AsyncReqComponent.h" +#include "Renderer.h" + +AsyncReqComponent::AsyncReqComponent(Window* window, std::shared_ptr req, std::function)> onSuccess, std::function onCancel) + : GuiComponent(window), + mSuccessFunc(onSuccess), mCancelFunc(onCancel), mTime(0), mRequest(req) +{ + +} + +bool AsyncReqComponent::input(InputConfig* config, Input input) +{ + if(input.value != 0 && config->isMappedTo("b", input)) + { + if(mCancelFunc) + mCancelFunc(); + + delete this; + } + + return true; +} + +void AsyncReqComponent::update(int deltaTime) +{ + if(mRequest->status() != HttpReq::REQ_IN_PROGRESS) + { + mSuccessFunc(mRequest); + delete this; + return; + } + + mTime += deltaTime; +} + +void AsyncReqComponent::render(const Eigen::Affine3f& parentTrans) +{ + Eigen::Affine3f trans = Eigen::Affine3f::Identity(); + trans = trans.translate(Eigen::Vector3f(Renderer::getScreenWidth() / 2.0f, Renderer::getScreenHeight() / 2.0f, 0)); + Renderer::setMatrix(trans); + + Eigen::Vector3f point(cos(mTime * 0.01f) * 12, sin(mTime * 0.01f) * 12, 0); + Renderer::drawRect((int)point.x(), (int)point.y(), 8, 8, 0x0000FFFF); +} + +std::vector AsyncReqComponent::getHelpPrompts() +{ + std::vector prompts; + prompts.push_back(HelpPrompt("b", "cancel")); + return prompts; +} diff --git a/es-app/src/components/AsyncReqComponent.h b/es-app/src/components/AsyncReqComponent.h new file mode 100644 index 000000000..11478fe09 --- /dev/null +++ b/es-app/src/components/AsyncReqComponent.h @@ -0,0 +1,45 @@ +#pragma once + +#include "GuiComponent.h" +#include "HttpReq.h" +#include +#include + +/* + Used to asynchronously run an HTTP request. + Displays a simple animation on the UI to show the application hasn't frozen. Can be canceled by the user pressing B. + + Usage example: + std::shared_ptr httpreq = std::make_shared("cdn.garcya.us", "/wp-content/uploads/2010/04/TD250.jpg"); + AsyncReqComponent* req = new AsyncReqComponent(mWindow, httpreq, + [] (std::shared_ptr r) + { + LOG(LogInfo) << "Request completed"; + LOG(LogInfo) << " error, if any: " << r->getErrorMsg(); + }, [] () + { + LOG(LogInfo) << "Request canceled"; + }); + + mWindow->pushGui(req); + //we can forget about req, since it will always delete itself +*/ + +class AsyncReqComponent : public GuiComponent +{ +public: + + AsyncReqComponent(Window* window, std::shared_ptr req, std::function)> onSuccess, std::function onCancel = nullptr); + + bool input(InputConfig* config, Input input) override; + void update(int deltaTime) override; + void render(const Eigen::Affine3f& parentTrans) override; + + virtual std::vector getHelpPrompts() override; +private: + std::function)> mSuccessFunc; + std::function mCancelFunc; + + unsigned int mTime; + std::shared_ptr mRequest; +}; diff --git a/es-app/src/components/RatingComponent.cpp b/es-app/src/components/RatingComponent.cpp new file mode 100644 index 000000000..aa09e7044 --- /dev/null +++ b/es-app/src/components/RatingComponent.cpp @@ -0,0 +1,169 @@ +#include "components/RatingComponent.h" +#include "Renderer.h" +#include "Window.h" +#include "Util.h" +#include "resources/SVGResource.h" + +RatingComponent::RatingComponent(Window* window) : GuiComponent(window) +{ + mFilledTexture = TextureResource::get(":/star_filled.svg", true); + mUnfilledTexture = TextureResource::get(":/star_unfilled.svg", true); + mValue = 0.5f; + mSize << 64 * NUM_RATING_STARS, 64; + updateVertices(); +} + +void RatingComponent::setValue(const std::string& value) +{ + if(value.empty()) + { + mValue = 0.0f; + }else{ + mValue = stof(value); + if(mValue > 1.0f) + mValue = 1.0f; + else if(mValue < 0.0f) + mValue = 0.0f; + } + + updateVertices(); +} + +std::string RatingComponent::getValue() const +{ + return std::to_string((long double)mValue); +} + +void RatingComponent::onSizeChanged() +{ + if(mSize.y() == 0) + mSize[1] = mSize.x() / NUM_RATING_STARS; + else if(mSize.x() == 0) + mSize[0] = mSize.y() * NUM_RATING_STARS; + + auto filledSVG = dynamic_cast(mFilledTexture.get()); + auto unfilledSVG = dynamic_cast(mUnfilledTexture.get()); + + if(mSize.y() > 0) + { + size_t heightPx = (size_t)round(mSize.y()); + if(filledSVG) + filledSVG->rasterizeAt(heightPx, heightPx); + if(unfilledSVG) + unfilledSVG->rasterizeAt(heightPx, heightPx); + } + + updateVertices(); +} + +void RatingComponent::updateVertices() +{ + const float numStars = NUM_RATING_STARS; + + const float h = round(getSize().y()); // is the same as a single star's width + const float w = round(h * mValue * numStars); + const float fw = round(h * numStars); + + mVertices[0].pos << 0.0f, 0.0f; + mVertices[0].tex << 0.0f, 1.0f; + mVertices[1].pos << w, h; + mVertices[1].tex << mValue * numStars, 0.0f; + mVertices[2].pos << 0.0f, h; + mVertices[2].tex << 0.0f, 0.0f; + + mVertices[3] = mVertices[0]; + mVertices[4].pos << w, 0.0f; + mVertices[4].tex << mValue * numStars, 1.0f; + mVertices[5] = mVertices[1]; + + mVertices[6] = mVertices[4]; + mVertices[7].pos << fw, h; + mVertices[7].tex << numStars, 0.0f; + mVertices[8] = mVertices[1]; + + mVertices[9] = mVertices[6]; + mVertices[10].pos << fw, 0.0f; + mVertices[10].tex << numStars, 1.0f; + mVertices[11] = mVertices[7]; +} + +void RatingComponent::render(const Eigen::Affine3f& parentTrans) +{ + Eigen::Affine3f trans = roundMatrix(parentTrans * getTransform()); + Renderer::setMatrix(trans); + + glEnable(GL_TEXTURE_2D); + glEnable(GL_BLEND); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + + glColor4ub(255, 255, 255, getOpacity()); + + glEnableClientState(GL_VERTEX_ARRAY); + glEnableClientState(GL_TEXTURE_COORD_ARRAY); + + glVertexPointer(2, GL_FLOAT, sizeof(Vertex), &mVertices[0].pos); + glTexCoordPointer(2, GL_FLOAT, sizeof(Vertex), &mVertices[0].tex); + + mFilledTexture->bind(); + glDrawArrays(GL_TRIANGLES, 0, 6); + + mUnfilledTexture->bind(); + glDrawArrays(GL_TRIANGLES, 6, 6); + + glDisableClientState(GL_VERTEX_ARRAY); + glDisableClientState(GL_TEXTURE_COORD_ARRAY); + + glDisable(GL_TEXTURE_2D); + glDisable(GL_BLEND); + + glColor4ub(255, 255, 255, 255); + + renderChildren(trans); +} + +bool RatingComponent::input(InputConfig* config, Input input) +{ + if(config->isMappedTo("a", input) && input.value != 0) + { + mValue += 1.f / NUM_RATING_STARS; + if(mValue > 1.0f) + mValue = 0.0f; + + updateVertices(); + } + + return GuiComponent::input(config, input); +} + +void RatingComponent::applyTheme(const std::shared_ptr& theme, const std::string& view, const std::string& element, unsigned int properties) +{ + GuiComponent::applyTheme(theme, view, element, properties); + + using namespace ThemeFlags; + + const ThemeData::ThemeElement* elem = theme->getElement(view, element, "rating"); + if(!elem) + return; + + bool imgChanged = false; + if(properties & PATH && elem->has("filledPath")) + { + mFilledTexture = TextureResource::get(elem->get("filledPath"), true); + imgChanged = true; + } + if(properties & PATH && elem->has("unfilledPath")) + { + mUnfilledTexture = TextureResource::get(elem->get("unfilledPath"), true); + imgChanged = true; + } + + if(imgChanged) + onSizeChanged(); +} + +std::vector RatingComponent::getHelpPrompts() +{ + std::vector prompts; + prompts.push_back(HelpPrompt("a", "add star")); + return prompts; +} diff --git a/es-app/src/components/RatingComponent.h b/es-app/src/components/RatingComponent.h new file mode 100644 index 000000000..a275c2701 --- /dev/null +++ b/es-app/src/components/RatingComponent.h @@ -0,0 +1,44 @@ +#pragma once + +#include "GuiComponent.h" +#include "resources/TextureResource.h" + +#define NUM_RATING_STARS 5 + +// Used to visually display/edit some sort of "score" - e.g. 5/10, 3/5, etc. +// setSize(x, y) works a little differently than you might expect: +// * (0, y != 0) - x will be automatically calculated (5*y). +// * (x != 0, 0) - y will be automatically calculated (x/5). +// * (x != 0, y != 0) - you better be sure x = y*5 +class RatingComponent : public GuiComponent +{ +public: + RatingComponent(Window* window); + + std::string getValue() const override; + void setValue(const std::string& value) override; // Should be a normalized float (in the range [0..1]) - if it's not, it will be clamped. + + bool input(InputConfig* config, Input input) override; + void render(const Eigen::Affine3f& parentTrans); + + void onSizeChanged() override; + + virtual void applyTheme(const std::shared_ptr& theme, const std::string& view, const std::string& element, unsigned int properties) override; + + virtual std::vector getHelpPrompts() override; + +private: + void updateVertices(); + + float mValue; + + struct Vertex + { + Eigen::Vector2f pos; + Eigen::Vector2f tex; + } mVertices[12]; + + std::shared_ptr mFilledTexture; + std::shared_ptr mUnfilledTexture; +}; + diff --git a/es-app/src/components/ScraperSearchComponent.cpp b/es-app/src/components/ScraperSearchComponent.cpp new file mode 100644 index 000000000..9cfda3de6 --- /dev/null +++ b/es-app/src/components/ScraperSearchComponent.cpp @@ -0,0 +1,476 @@ +#include "components/ScraperSearchComponent.h" + +#include "guis/GuiMsgBox.h" +#include "components/TextComponent.h" +#include "components/ScrollableContainer.h" +#include "components/ImageComponent.h" +#include "components/RatingComponent.h" +#include "components/DateTimeComponent.h" +#include "components/AnimatedImageComponent.h" +#include "components/ComponentList.h" +#include "HttpReq.h" +#include "Settings.h" +#include "Log.h" +#include "Util.h" +#include "guis/GuiTextEditPopup.h" + +ScraperSearchComponent::ScraperSearchComponent(Window* window, SearchType type) : GuiComponent(window), + mGrid(window, Eigen::Vector2i(4, 3)), mBusyAnim(window), + mSearchType(type) +{ + addChild(&mGrid); + + mBlockAccept = false; + + using namespace Eigen; + + // left spacer (empty component, needed for borders) + mGrid.setEntry(std::make_shared(mWindow), Vector2i(0, 0), false, false, Vector2i(1, 3), GridFlags::BORDER_TOP | GridFlags::BORDER_BOTTOM); + + // selected result name + mResultName = std::make_shared(mWindow, "Result name", Font::get(FONT_SIZE_MEDIUM), 0x777777FF); + + // selected result thumbnail + mResultThumbnail = std::make_shared(mWindow); + mGrid.setEntry(mResultThumbnail, Vector2i(1, 1), false, false, Vector2i(1, 1)); + + // selected result desc + container + mDescContainer = std::make_shared(mWindow); + mResultDesc = std::make_shared(mWindow, "Result desc", Font::get(FONT_SIZE_SMALL), 0x777777FF); + mDescContainer->addChild(mResultDesc.get()); + mDescContainer->setAutoScroll(true); + + // metadata + auto font = Font::get(FONT_SIZE_SMALL); // this gets replaced in onSizeChanged() so its just a placeholder + const unsigned int mdColor = 0x777777FF; + const unsigned int mdLblColor = 0x666666FF; + mMD_Rating = std::make_shared(mWindow); + mMD_ReleaseDate = std::make_shared(mWindow); + mMD_ReleaseDate->setColor(mdColor); + mMD_Developer = std::make_shared(mWindow, "", font, mdColor); + mMD_Publisher = std::make_shared(mWindow, "", font, mdColor); + mMD_Genre = std::make_shared(mWindow, "", font, mdColor); + mMD_Players = std::make_shared(mWindow, "", font, mdColor); + + mMD_Pairs.push_back(MetaDataPair(std::make_shared(mWindow, "RATING:", font, mdLblColor), mMD_Rating, false)); + mMD_Pairs.push_back(MetaDataPair(std::make_shared(mWindow, "RELEASED:", font, mdLblColor), mMD_ReleaseDate)); + mMD_Pairs.push_back(MetaDataPair(std::make_shared(mWindow, "DEVELOPER:", font, mdLblColor), mMD_Developer)); + mMD_Pairs.push_back(MetaDataPair(std::make_shared(mWindow, "PUBLISHER:", font, mdLblColor), mMD_Publisher)); + mMD_Pairs.push_back(MetaDataPair(std::make_shared(mWindow, "GENRE:", font, mdLblColor), mMD_Genre)); + mMD_Pairs.push_back(MetaDataPair(std::make_shared(mWindow, "PLAYERS:", font, mdLblColor), mMD_Players)); + + mMD_Grid = std::make_shared(mWindow, Vector2i(2, mMD_Pairs.size()*2 - 1)); + unsigned int i = 0; + for(auto it = mMD_Pairs.begin(); it != mMD_Pairs.end(); it++) + { + mMD_Grid->setEntry(it->first, Vector2i(0, i), false, true); + mMD_Grid->setEntry(it->second, Vector2i(1, i), false, it->resize); + i += 2; + } + + mGrid.setEntry(mMD_Grid, Vector2i(2, 1), false, false); + + // result list + mResultList = std::make_shared(mWindow); + mResultList->setCursorChangedCallback([this](CursorState state) { if(state == CURSOR_STOPPED) updateInfoPane(); }); + + updateViewStyle(); +} + +void ScraperSearchComponent::onSizeChanged() +{ + mGrid.setSize(mSize); + + if(mSize.x() == 0 || mSize.y() == 0) + return; + + // column widths + if(mSearchType == ALWAYS_ACCEPT_FIRST_RESULT) + mGrid.setColWidthPerc(0, 0.02f); // looks better when this is higher in auto mode + else + mGrid.setColWidthPerc(0, 0.01f); + + mGrid.setColWidthPerc(1, 0.25f); + mGrid.setColWidthPerc(2, 0.25f); + + // row heights + if(mSearchType == ALWAYS_ACCEPT_FIRST_RESULT) // show name + mGrid.setRowHeightPerc(0, (mResultName->getFont()->getHeight() * 1.6f) / mGrid.getSize().y()); // result name + else + mGrid.setRowHeightPerc(0, 0.0825f); // hide name but do padding + + if(mSearchType == ALWAYS_ACCEPT_FIRST_RESULT) + { + mGrid.setRowHeightPerc(2, 0.2f); + }else{ + mGrid.setRowHeightPerc(1, 0.505f); + } + + const float boxartCellScale = 0.9f; + + // limit thumbnail size using setMaxHeight - we do this instead of letting mGrid call setSize because it maintains the aspect ratio + // we also pad a little so it doesn't rub up against the metadata labels + mResultThumbnail->setMaxSize(mGrid.getColWidth(1) * boxartCellScale, mGrid.getRowHeight(1)); + + // metadata + resizeMetadata(); + + if(mSearchType != ALWAYS_ACCEPT_FIRST_RESULT) + mDescContainer->setSize(mGrid.getColWidth(1)*boxartCellScale + mGrid.getColWidth(2), mResultDesc->getFont()->getHeight() * 3); + else + mDescContainer->setSize(mGrid.getColWidth(3)*boxartCellScale, mResultDesc->getFont()->getHeight() * 8); + + mResultDesc->setSize(mDescContainer->getSize().x(), 0); // make desc text wrap at edge of container + + mGrid.onSizeChanged(); + + mBusyAnim.setSize(mSize); +} + +void ScraperSearchComponent::resizeMetadata() +{ + mMD_Grid->setSize(mGrid.getColWidth(2), mGrid.getRowHeight(1)); + if(mMD_Grid->getSize().y() > mMD_Pairs.size()) + { + const int fontHeight = (int)(mMD_Grid->getSize().y() / mMD_Pairs.size() * 0.8f); + auto fontLbl = Font::get(fontHeight, FONT_PATH_REGULAR); + auto fontComp = Font::get(fontHeight, FONT_PATH_LIGHT); + + // update label fonts + float maxLblWidth = 0; + for(auto it = mMD_Pairs.begin(); it != mMD_Pairs.end(); it++) + { + it->first->setFont(fontLbl); + it->first->setSize(0, 0); + if(it->first->getSize().x() > maxLblWidth) + maxLblWidth = it->first->getSize().x() + 6; + } + + for(unsigned int i = 0; i < mMD_Pairs.size(); i++) + { + mMD_Grid->setRowHeightPerc(i*2, (fontLbl->getLetterHeight() + 2) / mMD_Grid->getSize().y()); + } + + // update component fonts + mMD_ReleaseDate->setFont(fontComp); + mMD_Developer->setFont(fontComp); + mMD_Publisher->setFont(fontComp); + mMD_Genre->setFont(fontComp); + mMD_Players->setFont(fontComp); + + mMD_Grid->setColWidthPerc(0, maxLblWidth / mMD_Grid->getSize().x()); + + // rating is manually sized + mMD_Rating->setSize(mMD_Grid->getColWidth(1), fontLbl->getHeight() * 0.65f); + mMD_Grid->onSizeChanged(); + + // make result font follow label font + mResultDesc->setFont(Font::get(fontHeight, FONT_PATH_REGULAR)); + } +} + +void ScraperSearchComponent::updateViewStyle() +{ + using namespace Eigen; + + // unlink description and result list and result name + mGrid.removeEntry(mResultName); + mGrid.removeEntry(mResultDesc); + mGrid.removeEntry(mResultList); + + // add them back depending on search type + if(mSearchType == ALWAYS_ACCEPT_FIRST_RESULT) + { + // show name + mGrid.setEntry(mResultName, Vector2i(1, 0), false, true, Vector2i(2, 1), GridFlags::BORDER_TOP); + + // need a border on the bottom left + mGrid.setEntry(std::make_shared(mWindow), Vector2i(0, 2), false, false, Vector2i(3, 1), GridFlags::BORDER_BOTTOM); + + // show description on the right + mGrid.setEntry(mDescContainer, Vector2i(3, 0), false, false, Vector2i(1, 3), GridFlags::BORDER_TOP | GridFlags::BORDER_BOTTOM); + mResultDesc->setSize(mDescContainer->getSize().x(), 0); // make desc text wrap at edge of container + }else{ + // fake row where name would be + mGrid.setEntry(std::make_shared(mWindow), Vector2i(1, 0), false, true, Vector2i(2, 1), GridFlags::BORDER_TOP); + + // show result list on the right + mGrid.setEntry(mResultList, Vector2i(3, 0), true, true, Vector2i(1, 3), GridFlags::BORDER_LEFT | GridFlags::BORDER_TOP | GridFlags::BORDER_BOTTOM); + + // show description under image/info + mGrid.setEntry(mDescContainer, Vector2i(1, 2), false, false, Vector2i(2, 1), GridFlags::BORDER_BOTTOM); + mResultDesc->setSize(mDescContainer->getSize().x(), 0); // make desc text wrap at edge of container + } +} + +void ScraperSearchComponent::search(const ScraperSearchParams& params) +{ + mResultList->clear(); + mScraperResults.clear(); + mThumbnailReq.reset(); + mMDResolveHandle.reset(); + updateInfoPane(); + + mLastSearch = params; + mSearchHandle = startScraperSearch(params); +} + +void ScraperSearchComponent::stop() +{ + mThumbnailReq.reset(); + mSearchHandle.reset(); + mMDResolveHandle.reset(); + mBlockAccept = false; +} + +void ScraperSearchComponent::onSearchDone(const std::vector& results) +{ + mResultList->clear(); + + mScraperResults = results; + + const int end = results.size() > MAX_SCRAPER_RESULTS ? MAX_SCRAPER_RESULTS : results.size(); // at max display 5 + + auto font = Font::get(FONT_SIZE_MEDIUM); + unsigned int color = 0x777777FF; + if(end == 0) + { + ComponentListRow row; + row.addElement(std::make_shared(mWindow, "NO GAMES FOUND - SKIP", font, color), true); + + if(mSkipCallback) + row.makeAcceptInputHandler(mSkipCallback); + + mResultList->addRow(row); + mGrid.resetCursor(); + }else{ + ComponentListRow row; + for(int i = 0; i < end; i++) + { + row.elements.clear(); + row.addElement(std::make_shared(mWindow, strToUpper(results.at(i).mdl.get("name")), font, color), true); + row.makeAcceptInputHandler([this, i] { returnResult(mScraperResults.at(i)); }); + mResultList->addRow(row); + } + mGrid.resetCursor(); + } + + mBlockAccept = false; + updateInfoPane(); + + if(mSearchType == ALWAYS_ACCEPT_FIRST_RESULT) + { + if(mScraperResults.size() == 0) + mSkipCallback(); + else + returnResult(mScraperResults.front()); + }else if(mSearchType == ALWAYS_ACCEPT_MATCHING_CRC) + { + // TODO + } +} + +void ScraperSearchComponent::onSearchError(const std::string& error) +{ + LOG(LogInfo) << "ScraperSearchComponent search error: " << error; + mWindow->pushGui(new GuiMsgBox(mWindow, strToUpper(error), + "RETRY", std::bind(&ScraperSearchComponent::search, this, mLastSearch), + "SKIP", mSkipCallback, + "CANCEL", mCancelCallback)); +} + +int ScraperSearchComponent::getSelectedIndex() +{ + if(!mScraperResults.size() || mGrid.getSelectedComponent() != mResultList) + return -1; + + return mResultList->getCursorId(); +} + +void ScraperSearchComponent::updateInfoPane() +{ + int i = getSelectedIndex(); + if(mSearchType == ALWAYS_ACCEPT_FIRST_RESULT && mScraperResults.size()) + { + i = 0; + } + + if(i != -1 && (int)mScraperResults.size() > i) + { + ScraperSearchResult& res = mScraperResults.at(i); + mResultName->setText(strToUpper(res.mdl.get("name"))); + mResultDesc->setText(strToUpper(res.mdl.get("desc"))); + mDescContainer->reset(); + + mResultThumbnail->setImage(""); + const std::string& thumb = res.thumbnailUrl.empty() ? res.imageUrl : res.thumbnailUrl; + if(!thumb.empty()) + { + mThumbnailReq = std::unique_ptr(new HttpReq(thumb)); + }else{ + mThumbnailReq.reset(); + } + + // metadata + mMD_Rating->setValue(strToUpper(res.mdl.get("rating"))); + mMD_ReleaseDate->setValue(strToUpper(res.mdl.get("releasedate"))); + mMD_Developer->setText(strToUpper(res.mdl.get("developer"))); + mMD_Publisher->setText(strToUpper(res.mdl.get("publisher"))); + mMD_Genre->setText(strToUpper(res.mdl.get("genre"))); + mMD_Players->setText(strToUpper(res.mdl.get("players"))); + mGrid.onSizeChanged(); + }else{ + mResultName->setText(""); + mResultDesc->setText(""); + mResultThumbnail->setImage(""); + + // metadata + mMD_Rating->setValue(""); + mMD_ReleaseDate->setValue(""); + mMD_Developer->setText(""); + mMD_Publisher->setText(""); + mMD_Genre->setText(""); + mMD_Players->setText(""); + } +} + +bool ScraperSearchComponent::input(InputConfig* config, Input input) +{ + if(config->isMappedTo("a", input) && input.value != 0) + { + if(mBlockAccept) + return true; + } + + return GuiComponent::input(config, input); +} + +void ScraperSearchComponent::render(const Eigen::Affine3f& parentTrans) +{ + Eigen::Affine3f trans = parentTrans * getTransform(); + + renderChildren(trans); + + if(mBlockAccept) + { + Renderer::setMatrix(trans); + Renderer::drawRect(0.f, 0.f, mSize.x(), mSize.y(), 0x00000011); + //Renderer::drawRect((int)mResultList->getPosition().x(), (int)mResultList->getPosition().y(), + // (int)mResultList->getSize().x(), (int)mResultList->getSize().y(), 0x00000011); + + mBusyAnim.render(trans); + } +} + +void ScraperSearchComponent::returnResult(ScraperSearchResult result) +{ + mBlockAccept = true; + + // resolve metadata image before returning + if(!result.imageUrl.empty()) + { + mMDResolveHandle = resolveMetaDataAssets(result, mLastSearch); + return; + } + + mAcceptCallback(result); +} + +void ScraperSearchComponent::update(int deltaTime) +{ + GuiComponent::update(deltaTime); + + if(mBlockAccept) + { + mBusyAnim.update(deltaTime); + } + + if(mThumbnailReq && mThumbnailReq->status() != HttpReq::REQ_IN_PROGRESS) + { + updateThumbnail(); + } + + if(mSearchHandle && mSearchHandle->status() != ASYNC_IN_PROGRESS) + { + auto status = mSearchHandle->status(); + auto results = mSearchHandle->getResults(); + auto statusString = mSearchHandle->getStatusString(); + + // we reset here because onSearchDone in auto mode can call mSkipCallback() which can call + // another search() which will set our mSearchHandle to something important + mSearchHandle.reset(); + + if(status == ASYNC_DONE) + { + onSearchDone(results); + }else if(status == ASYNC_ERROR) + { + onSearchError(statusString); + } + } + + if(mMDResolveHandle && mMDResolveHandle->status() != ASYNC_IN_PROGRESS) + { + if(mMDResolveHandle->status() == ASYNC_DONE) + { + ScraperSearchResult result = mMDResolveHandle->getResult(); + mMDResolveHandle.reset(); + + // this might end in us being deleted, depending on mAcceptCallback - so make sure this is the last thing we do in update() + returnResult(result); + }else if(mMDResolveHandle->status() == ASYNC_ERROR) + { + onSearchError(mMDResolveHandle->getStatusString()); + mMDResolveHandle.reset(); + } + } +} + +void ScraperSearchComponent::updateThumbnail() +{ + if(mThumbnailReq && mThumbnailReq->status() == HttpReq::REQ_SUCCESS) + { + std::string content = mThumbnailReq->getContent(); + mResultThumbnail->setImage(content.data(), content.length()); + mGrid.onSizeChanged(); // a hack to fix the thumbnail position since its size changed + }else{ + LOG(LogWarning) << "thumbnail req failed: " << mThumbnailReq->getErrorMsg(); + mResultThumbnail->setImage(""); + } + + mThumbnailReq.reset(); +} + +void ScraperSearchComponent::openInputScreen(ScraperSearchParams& params) +{ + auto searchForFunc = [&](const std::string& name) + { + params.nameOverride = name; + search(params); + }; + + stop(); + mWindow->pushGui(new GuiTextEditPopup(mWindow, "SEARCH FOR", + // initial value is last search if there was one, otherwise the clean path name + params.nameOverride.empty() ? params.game->getCleanName() : params.nameOverride, + searchForFunc, false, "SEARCH")); +} + +std::vector ScraperSearchComponent::getHelpPrompts() +{ + std::vector prompts = mGrid.getHelpPrompts(); + if(getSelectedIndex() != -1) + prompts.push_back(HelpPrompt("a", "accept result")); + + return prompts; +} + +void ScraperSearchComponent::onFocusGained() +{ + mGrid.onFocusGained(); +} + +void ScraperSearchComponent::onFocusLost() +{ + mGrid.onFocusLost(); +} diff --git a/es-app/src/components/ScraperSearchComponent.h b/es-app/src/components/ScraperSearchComponent.h new file mode 100644 index 000000000..f4fb43f51 --- /dev/null +++ b/es-app/src/components/ScraperSearchComponent.h @@ -0,0 +1,104 @@ +#pragma once + +#include "GuiComponent.h" +#include "scrapers/Scraper.h" +#include "components/ComponentGrid.h" +#include "components/BusyComponent.h" +#include + +class ComponentList; +class ImageComponent; +class RatingComponent; +class TextComponent; +class DateTimeComponent; +class ScrollableContainer; +class HttpReq; +class AnimatedImageComponent; + +class ScraperSearchComponent : public GuiComponent +{ +public: + enum SearchType + { + ALWAYS_ACCEPT_FIRST_RESULT, + ALWAYS_ACCEPT_MATCHING_CRC, + NEVER_AUTO_ACCEPT + }; + + ScraperSearchComponent(Window* window, SearchType searchType = NEVER_AUTO_ACCEPT); + + void search(const ScraperSearchParams& params); + void openInputScreen(ScraperSearchParams& from); + void stop(); + inline SearchType getSearchType() const { return mSearchType; } + + // Metadata assets will be resolved before calling the accept callback (e.g. result.mdl's "image" is automatically downloaded and properly set). + inline void setAcceptCallback(const std::function& acceptCallback) { mAcceptCallback = acceptCallback; } + inline void setSkipCallback(const std::function& skipCallback) { mSkipCallback = skipCallback; }; + inline void setCancelCallback(const std::function& cancelCallback) { mCancelCallback = cancelCallback; } + + bool input(InputConfig* config, Input input) override; + void update(int deltaTime) override; + void render(const Eigen::Affine3f& parentTrans) override; + std::vector getHelpPrompts() override; + void onSizeChanged() override; + void onFocusGained() override; + void onFocusLost() override; + +private: + void updateViewStyle(); + void updateThumbnail(); + void updateInfoPane(); + + void resizeMetadata(); + + void onSearchError(const std::string& error); + void onSearchDone(const std::vector& results); + + int getSelectedIndex(); + + // resolve any metadata assets that need to be downloaded and return + void returnResult(ScraperSearchResult result); + + ComponentGrid mGrid; + + std::shared_ptr mResultName; + std::shared_ptr mDescContainer; + std::shared_ptr mResultDesc; + std::shared_ptr mResultThumbnail; + std::shared_ptr mResultList; + + std::shared_ptr mMD_Grid; + std::shared_ptr mMD_Rating; + std::shared_ptr mMD_ReleaseDate; + std::shared_ptr mMD_Developer; + std::shared_ptr mMD_Publisher; + std::shared_ptr mMD_Genre; + std::shared_ptr mMD_Players; + + // label-component pair + struct MetaDataPair + { + std::shared_ptr first; + std::shared_ptr second; + bool resize; + + MetaDataPair(const std::shared_ptr& f, const std::shared_ptr& s, bool r = true) : first(f), second(s), resize(r) {}; + }; + + std::vector mMD_Pairs; + + SearchType mSearchType; + ScraperSearchParams mLastSearch; + std::function mAcceptCallback; + std::function mSkipCallback; + std::function mCancelCallback; + bool mBlockAccept; + + std::unique_ptr mSearchHandle; + std::unique_ptr mMDResolveHandle; + std::vector mScraperResults; + std::unique_ptr mThumbnailReq; + + BusyComponent mBusyAnim; +}; diff --git a/es-app/src/components/TextListComponent.h b/es-app/src/components/TextListComponent.h new file mode 100644 index 000000000..8067cd739 --- /dev/null +++ b/es-app/src/components/TextListComponent.h @@ -0,0 +1,369 @@ +#pragma once + +#include "components/IList.h" +#include "Renderer.h" +#include "resources/Font.h" +#include "InputManager.h" +#include "Sound.h" +#include "Log.h" +#include "ThemeData.h" +#include "Util.h" +#include +#include +#include +#include + +struct TextListData +{ + unsigned int colorId; + std::shared_ptr textCache; +}; + +//A graphical list. Supports multiple colors for rows and scrolling. +template +class TextListComponent : public IList +{ +protected: + using IList::mEntries; + using IList::listUpdate; + using IList::listInput; + using IList::listRenderTitleOverlay; + using IList::getTransform; + using IList::mSize; + using IList::mCursor; + using IList::Entry; + +public: + using IList::size; + using IList::isScrolling; + using IList::stopScrolling; + + TextListComponent(Window* window); + + bool input(InputConfig* config, Input input) override; + void update(int deltaTime) override; + void render(const Eigen::Affine3f& parentTrans) override; + void applyTheme(const std::shared_ptr& theme, const std::string& view, const std::string& element, unsigned int properties) override; + + void add(const std::string& name, const T& obj, unsigned int colorId); + + enum Alignment + { + ALIGN_LEFT, + ALIGN_CENTER, + ALIGN_RIGHT + }; + + inline void setAlignment(Alignment align) { mAlignment = align; } + + inline void setCursorChangedCallback(const std::function& func) { mCursorChangedCallback = func; } + + inline void setFont(const std::shared_ptr& font) + { + mFont = font; + for(auto it = mEntries.begin(); it != mEntries.end(); it++) + it->data.textCache.reset(); + } + + inline void setUppercase(bool uppercase) + { + mUppercase = true; + for(auto it = mEntries.begin(); it != mEntries.end(); it++) + it->data.textCache.reset(); + } + + inline void setSelectorColor(unsigned int color) { mSelectorColor = color; } + inline void setSelectedColor(unsigned int color) { mSelectedColor = color; } + inline void setScrollSound(const std::shared_ptr& sound) { mScrollSound = sound; } + inline void setColor(unsigned int id, unsigned int color) { mColors[id] = color; } + inline void setSound(const std::shared_ptr& sound) { mScrollSound = sound; } + inline void setLineSpacing(float lineSpacing) { mLineSpacing = lineSpacing; } + +protected: + virtual void onScroll(int amt) { if(mScrollSound) mScrollSound->play(); } + virtual void onCursorChanged(const CursorState& state); + +private: + static const int MARQUEE_DELAY = 2000; + static const int MARQUEE_SPEED = 8; + static const int MARQUEE_RATE = 1; + + int mMarqueeOffset; + int mMarqueeTime; + + Alignment mAlignment; + float mHorizontalMargin; + + std::function mCursorChangedCallback; + + std::shared_ptr mFont; + bool mUppercase; + float mLineSpacing; + unsigned int mSelectorColor; + unsigned int mSelectedColor; + std::shared_ptr mScrollSound; + static const unsigned int COLOR_ID_COUNT = 2; + unsigned int mColors[COLOR_ID_COUNT]; +}; + +template +TextListComponent::TextListComponent(Window* window) : + IList(window) +{ + mMarqueeOffset = 0; + mMarqueeTime = -MARQUEE_DELAY; + + mHorizontalMargin = 0; + mAlignment = ALIGN_CENTER; + + mFont = Font::get(FONT_SIZE_MEDIUM); + mUppercase = false; + mLineSpacing = 1.5f; + mSelectorColor = 0x000000FF; + mSelectedColor = 0; + mColors[0] = 0x0000FFFF; + mColors[1] = 0x00FF00FF; +} + +template +void TextListComponent::render(const Eigen::Affine3f& parentTrans) +{ + Eigen::Affine3f trans = parentTrans * getTransform(); + + std::shared_ptr& font = mFont; + + if(size() == 0) + return; + + const float entrySize = round(font->getHeight(mLineSpacing)); + + int startEntry = 0; + + //number of entries that can fit on the screen simultaniously + int screenCount = (int)(mSize.y() / entrySize + 0.5f); + + if(size() >= screenCount) + { + startEntry = mCursor - screenCount/2; + if(startEntry < 0) + startEntry = 0; + if(startEntry >= size() - screenCount) + startEntry = size() - screenCount; + } + + float y = 0; + + int listCutoff = startEntry + screenCount; + if(listCutoff > size()) + listCutoff = size(); + + // draw selector bar + if(startEntry < listCutoff) + { + Renderer::setMatrix(trans); + Renderer::drawRect(0.f, (mCursor - startEntry)*entrySize + (entrySize - font->getHeight())/2, mSize.x(), font->getHeight(), mSelectorColor); + } + + // clip to inside margins + Eigen::Vector3f dim(mSize.x(), mSize.y(), 0); + dim = trans * dim - trans.translation(); + Renderer::pushClipRect(Eigen::Vector2i((int)(trans.translation().x() + mHorizontalMargin), (int)trans.translation().y()), + Eigen::Vector2i((int)(dim.x() - mHorizontalMargin*2), (int)dim.y())); + + for(int i = startEntry; i < listCutoff; i++) + { + typename IList::Entry& entry = mEntries.at((unsigned int)i); + + unsigned int color; + if(mCursor == i && mSelectedColor) + color = mSelectedColor; + else + color = mColors[entry.data.colorId]; + + if(!entry.data.textCache) + entry.data.textCache = std::unique_ptr(font->buildTextCache(mUppercase ? strToUpper(entry.name) : entry.name, 0, 0, 0x000000FF)); + + entry.data.textCache->setColor(color); + + Eigen::Vector3f offset(0, y, 0); + + switch(mAlignment) + { + case ALIGN_LEFT: + offset[0] = mHorizontalMargin; + break; + case ALIGN_CENTER: + offset[0] = (mSize.x() - entry.data.textCache->metrics.size.x()) / 2; + if(offset[0] < 0) + offset[0] = 0; + break; + case ALIGN_RIGHT: + offset[0] = (mSize.x() - entry.data.textCache->metrics.size.x()); + offset[0] -= mHorizontalMargin; + if(offset[0] < 0) + offset[0] = 0; + break; + } + + if(mCursor == i) + offset[0] -= mMarqueeOffset; + + Eigen::Affine3f drawTrans = trans; + drawTrans.translate(offset); + Renderer::setMatrix(drawTrans); + + font->renderTextCache(entry.data.textCache.get()); + + y += entrySize; + } + + Renderer::popClipRect(); + + listRenderTitleOverlay(trans); + + GuiComponent::renderChildren(trans); +} + +template +bool TextListComponent::input(InputConfig* config, Input input) +{ + if(size() > 0) + { + if(input.value != 0) + { + if(config->isMappedTo("down", input)) + { + listInput(1); + return true; + } + + if(config->isMappedTo("up", input)) + { + listInput(-1); + return true; + } + if(config->isMappedTo("pagedown", input)) + { + listInput(10); + return true; + } + + if(config->isMappedTo("pageup", input)) + { + listInput(-10); + return true; + } + }else{ + if(config->isMappedTo("down", input) || config->isMappedTo("up", input) || + config->isMappedTo("pagedown", input) || config->isMappedTo("pageup", input)) + { + stopScrolling(); + } + } + } + + return GuiComponent::input(config, input); +} + +template +void TextListComponent::update(int deltaTime) +{ + listUpdate(deltaTime); + if(!isScrolling() && size() > 0) + { + //if we're not scrolling and this object's text goes outside our size, marquee it! + const std::string& text = mEntries.at((unsigned int)mCursor).name; + + Eigen::Vector2f textSize = mFont->sizeText(text); + + //it's long enough to marquee + if(textSize.x() - mMarqueeOffset > mSize.x() - 12 - (mAlignment != ALIGN_CENTER ? mHorizontalMargin : 0)) + { + mMarqueeTime += deltaTime; + while(mMarqueeTime > MARQUEE_SPEED) + { + mMarqueeOffset += MARQUEE_RATE; + mMarqueeTime -= MARQUEE_SPEED; + } + } + } + + GuiComponent::update(deltaTime); +} + +//list management stuff +template +void TextListComponent::add(const std::string& name, const T& obj, unsigned int color) +{ + assert(color < COLOR_ID_COUNT); + + typename IList::Entry entry; + entry.name = name; + entry.object = obj; + entry.data.colorId = color; + static_cast*>(this)->add(entry); +} + +template +void TextListComponent::onCursorChanged(const CursorState& state) +{ + mMarqueeOffset = 0; + mMarqueeTime = -MARQUEE_DELAY; + + if(mCursorChangedCallback) + mCursorChangedCallback(state); +} + +template +void TextListComponent::applyTheme(const std::shared_ptr& theme, const std::string& view, const std::string& element, unsigned int properties) +{ + GuiComponent::applyTheme(theme, view, element, properties); + + const ThemeData::ThemeElement* elem = theme->getElement(view, element, "textlist"); + if(!elem) + return; + + using namespace ThemeFlags; + if(properties & COLOR) + { + if(elem->has("selectorColor")) + setSelectorColor(elem->get("selectorColor")); + if(elem->has("selectedColor")) + setSelectedColor(elem->get("selectedColor")); + if(elem->has("primaryColor")) + setColor(0, elem->get("primaryColor")); + if(elem->has("secondaryColor")) + setColor(1, elem->get("secondaryColor")); + } + + setFont(Font::getFromTheme(elem, properties, mFont)); + + if(properties & SOUND && elem->has("scrollSound")) + setSound(Sound::get(elem->get("scrollSound"))); + + if(properties & ALIGNMENT) + { + if(elem->has("alignment")) + { + const std::string& str = elem->get("alignment"); + if(str == "left") + setAlignment(ALIGN_LEFT); + else if(str == "center") + setAlignment(ALIGN_CENTER); + else if(str == "right") + setAlignment(ALIGN_RIGHT); + else + LOG(LogError) << "Unknown TextListComponent alignment \"" << str << "\"!"; + } + if(elem->has("horizontalMargin")) + { + mHorizontalMargin = elem->get("horizontalMargin") * (this->mParent ? this->mParent->getSize().x() : (float)Renderer::getScreenWidth()); + } + } + + if(properties & FORCE_UPPERCASE && elem->has("forceUppercase")) + setUppercase(elem->get("forceUppercase")); + + if(properties & LINE_SPACING && elem->has("lineSpacing")) + setLineSpacing(elem->get("lineSpacing")); +} diff --git a/es-app/src/guis/GuiFastSelect.cpp b/es-app/src/guis/GuiFastSelect.cpp new file mode 100644 index 000000000..31db35041 --- /dev/null +++ b/es-app/src/guis/GuiFastSelect.cpp @@ -0,0 +1,163 @@ +#include "guis/GuiFastSelect.h" +#include "ThemeData.h" +#include "FileSorts.h" +#include "SystemData.h" + +static const std::string LETTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; + +GuiFastSelect::GuiFastSelect(Window* window, IGameListView* gamelist) : GuiComponent(window), + mBackground(window), mSortText(window), mLetterText(window), mGameList(gamelist) +{ + setPosition(Renderer::getScreenWidth() * 0.2f, Renderer::getScreenHeight() * 0.2f); + setSize(Renderer::getScreenWidth() * 0.6f, Renderer::getScreenHeight() * 0.6f); + + const std::shared_ptr& theme = mGameList->getTheme(); + using namespace ThemeFlags; + + mBackground.applyTheme(theme, "fastSelect", "windowBackground", PATH); + mBackground.fitTo(mSize); + addChild(&mBackground); + + mLetterText.setSize(mSize.x(), mSize.y() * 0.75f); + mLetterText.setAlignment(ALIGN_CENTER); + mLetterText.applyTheme(theme, "fastSelect", "letter", FONT_PATH | COLOR); + // TODO - set font size + addChild(&mLetterText); + + mSortText.setPosition(0, mSize.y() * 0.75f); + mSortText.setSize(mSize.x(), mSize.y() * 0.25f); + mSortText.setAlignment(ALIGN_CENTER); + mSortText.applyTheme(theme, "fastSelect", "subtext", FONT_PATH | COLOR); + // TODO - set font size + addChild(&mSortText); + + mSortId = 0; // TODO + updateSortText(); + + mLetterId = LETTERS.find(mGameList->getCursor()->getName()[0]); + if(mLetterId == std::string::npos) + mLetterId = 0; + + mScrollDir = 0; + mScrollAccumulator = 0; + scroll(); // initialize the letter value +} + +bool GuiFastSelect::input(InputConfig* config, Input input) +{ + if(input.value == 0 && config->isMappedTo("select", input)) + { + // the user let go of select; make our changes to the gamelist and close this gui + updateGameListSort(); + updateGameListCursor(); + delete this; + return true; + } + + if(config->isMappedTo("up", input)) + { + if(input.value != 0) + setScrollDir(-1); + else + setScrollDir(0); + + return true; + }else if(config->isMappedTo("down", input)) + { + if(input.value != 0) + setScrollDir(1); + else + setScrollDir(0); + + return true; + }else if(config->isMappedTo("left", input) && input.value != 0) + { + mSortId = (mSortId + 1) % FileSorts::SortTypes.size(); + updateSortText(); + return true; + }else if(config->isMappedTo("right", input) && input.value != 0) + { + mSortId--; + if(mSortId < 0) + mSortId += FileSorts::SortTypes.size(); + + updateSortText(); + return true; + } + + return GuiComponent::input(config, input); +} + +void GuiFastSelect::setScrollDir(int dir) +{ + mScrollDir = dir; + scroll(); + mScrollAccumulator = -500; +} + +void GuiFastSelect::update(int deltaTime) +{ + if(mScrollDir != 0) + { + mScrollAccumulator += deltaTime; + while(mScrollAccumulator >= 150) + { + scroll(); + mScrollAccumulator -= 150; + } + } + + GuiComponent::update(deltaTime); +} + +void GuiFastSelect::scroll() +{ + mLetterId += mScrollDir; + if(mLetterId < 0) + mLetterId += LETTERS.length(); + else if(mLetterId >= (int)LETTERS.length()) + mLetterId -= LETTERS.length(); + + mLetterText.setText(LETTERS.substr(mLetterId, 1)); +} + +void GuiFastSelect::updateSortText() +{ + std::stringstream ss; + ss << "<- " << FileSorts::SortTypes.at(mSortId).description << " ->"; + mSortText.setText(ss.str()); +} + +void GuiFastSelect::updateGameListSort() +{ + const FileData::SortType& sort = FileSorts::SortTypes.at(mSortId); + + FileData* root = mGameList->getCursor()->getSystem()->getRootFolder(); + root->sort(sort); // will also recursively sort children + + // notify that the root folder was sorted + mGameList->onFileChanged(root, FILE_SORTED); +} + +void GuiFastSelect::updateGameListCursor() +{ + const std::vector& list = mGameList->getCursor()->getParent()->getChildren(); + + // only skip by letter when the sort mode is alphabetical + const FileData::SortType& sort = FileSorts::SortTypes.at(mSortId); + if(sort.comparisonFunction != &FileSorts::compareFileName) + return; + + // find the first entry in the list that either exactly matches our target letter or is beyond our target letter + for(auto it = list.cbegin(); it != list.cend(); it++) + { + char check = (*it)->getName().empty() ? 'A' : (*it)->getName()[0]; + + // if there's an exact match or we've passed it, set the cursor to this one + if(check == LETTERS[mLetterId] || (sort.ascending && check > LETTERS[mLetterId]) || (!sort.ascending && check < LETTERS[mLetterId])) + { + mGameList->setCursor(*it); + break; + } + } +} diff --git a/es-app/src/guis/GuiFastSelect.h b/es-app/src/guis/GuiFastSelect.h new file mode 100644 index 000000000..012c06de6 --- /dev/null +++ b/es-app/src/guis/GuiFastSelect.h @@ -0,0 +1,35 @@ +#pragma once + +#include "GuiComponent.h" +#include "views/gamelist/IGameListView.h" + +#include "components/NinePatchComponent.h" +#include "components/TextComponent.h" + +class GuiFastSelect : public GuiComponent +{ +public: + GuiFastSelect(Window* window, IGameListView* gamelist); + + bool input(InputConfig* config, Input input); + void update(int deltaTime); + +private: + void setScrollDir(int dir); + void scroll(); + void updateGameListCursor(); + void updateGameListSort(); + void updateSortText(); + + int mSortId; + int mLetterId; + + int mScrollDir; + int mScrollAccumulator; + + NinePatchComponent mBackground; + TextComponent mSortText; + TextComponent mLetterText; + + IGameListView* mGameList; +}; diff --git a/es-app/src/guis/GuiGameScraper.cpp b/es-app/src/guis/GuiGameScraper.cpp new file mode 100644 index 000000000..a54304c77 --- /dev/null +++ b/es-app/src/guis/GuiGameScraper.cpp @@ -0,0 +1,122 @@ +#include "guis/GuiGameScraper.h" +#include "guis/GuiTextEditPopup.h" +#include "components/TextComponent.h" +#include "components/ButtonComponent.h" +#include "components/MenuComponent.h" +#include "scrapers/Scraper.h" +#include "Renderer.h" +#include "Log.h" +#include "Settings.h" + +GuiGameScraper::GuiGameScraper(Window* window, ScraperSearchParams params, std::function doneFunc) : GuiComponent(window), + mGrid(window, Eigen::Vector2i(1, 7)), + mBox(window, ":/frame.png"), + mSearchParams(params), + mClose(false) +{ + addChild(&mBox); + addChild(&mGrid); + + // row 0 is a spacer + + mGameName = std::make_shared(mWindow, strToUpper(mSearchParams.game->getPath().filename().generic_string()), + Font::get(FONT_SIZE_MEDIUM), 0x777777FF, ALIGN_CENTER); + mGrid.setEntry(mGameName, Eigen::Vector2i(0, 1), false, true); + + // row 2 is a spacer + + mSystemName = std::make_shared(mWindow, strToUpper(mSearchParams.system->getFullName()), Font::get(FONT_SIZE_SMALL), + 0x888888FF, ALIGN_CENTER); + mGrid.setEntry(mSystemName, Eigen::Vector2i(0, 3), false, true); + + // row 4 is a spacer + + // ScraperSearchComponent + mSearch = std::make_shared(window, ScraperSearchComponent::NEVER_AUTO_ACCEPT); + mGrid.setEntry(mSearch, Eigen::Vector2i(0, 5), true); + + // buttons + std::vector< std::shared_ptr > buttons; + + buttons.push_back(std::make_shared(mWindow, "INPUT", "search", [&] { + mSearch->openInputScreen(mSearchParams); + mGrid.resetCursor(); + })); + buttons.push_back(std::make_shared(mWindow, "CANCEL", "cancel", [&] { delete this; })); + mButtonGrid = makeButtonGrid(mWindow, buttons); + + mGrid.setEntry(mButtonGrid, Eigen::Vector2i(0, 6), true, false); + + // we call this->close() instead of just delete this; in the accept callback: + // this is because of how GuiComponent::update works. if it was just delete this, this would happen when the metadata resolver is done: + // GuiGameScraper::update() + // GuiComponent::update() + // it = mChildren.begin(); + // mBox::update() + // it++; + // mSearchComponent::update() + // acceptCallback -> delete this + // it++; // error, mChildren has been deleted because it was part of this + + // so instead we do this: + // GuiGameScraper::update() + // GuiComponent::update() + // it = mChildren.begin(); + // mBox::update() + // it++; + // mSearchComponent::update() + // acceptCallback -> close() -> mClose = true + // it++; // ok + // if(mClose) + // delete this; + mSearch->setAcceptCallback([this, doneFunc](const ScraperSearchResult& result) { doneFunc(result); close(); }); + mSearch->setCancelCallback([&] { delete this; }); + + setSize(Renderer::getScreenWidth() * 0.95f, Renderer::getScreenHeight() * 0.747f); + setPosition((Renderer::getScreenWidth() - mSize.x()) / 2, (Renderer::getScreenHeight() - mSize.y()) / 2); + + mGrid.resetCursor(); + mSearch->search(params); // start the search +} + +void GuiGameScraper::onSizeChanged() +{ + mBox.fitTo(mSize, Eigen::Vector3f::Zero(), Eigen::Vector2f(-32, -32)); + + mGrid.setRowHeightPerc(0, 0.04f, false); + mGrid.setRowHeightPerc(1, mGameName->getFont()->getLetterHeight() / mSize.y(), false); // game name + mGrid.setRowHeightPerc(2, 0.04f, false); + mGrid.setRowHeightPerc(3, mSystemName->getFont()->getLetterHeight() / mSize.y(), false); // system name + mGrid.setRowHeightPerc(4, 0.04f, false); + mGrid.setRowHeightPerc(6, mButtonGrid->getSize().y() / mSize.y(), false); // buttons + mGrid.setSize(mSize); +} + +bool GuiGameScraper::input(InputConfig* config, Input input) +{ + if(config->isMappedTo("b", input) && input.value) + { + delete this; + return true; + } + + return GuiComponent::input(config, input); +} + +void GuiGameScraper::update(int deltaTime) +{ + GuiComponent::update(deltaTime); + + if(mClose) + delete this; +} + +std::vector GuiGameScraper::getHelpPrompts() +{ + return mGrid.getHelpPrompts(); +} + +void GuiGameScraper::close() +{ + mClose = true; +} \ No newline at end of file diff --git a/es-app/src/guis/GuiGameScraper.h b/es-app/src/guis/GuiGameScraper.h new file mode 100644 index 000000000..354aba7e1 --- /dev/null +++ b/es-app/src/guis/GuiGameScraper.h @@ -0,0 +1,33 @@ +#pragma once + +#include "GuiComponent.h" +#include "components/ScraperSearchComponent.h" +#include "components/NinePatchComponent.h" + +class GuiGameScraper : public GuiComponent +{ +public: + GuiGameScraper(Window* window, ScraperSearchParams params, std::function doneFunc); + + void onSizeChanged() override; + + bool input(InputConfig* config, Input input) override; + void update(int deltaTime); + virtual std::vector getHelpPrompts() override; + +private: + bool mClose; + void close(); + + ComponentGrid mGrid; + NinePatchComponent mBox; + + std::shared_ptr mGameName; + std::shared_ptr mSystemName; + std::shared_ptr mSearch; + std::shared_ptr mButtonGrid; + + ScraperSearchParams mSearchParams; + + std::function mCancelFunc; +}; diff --git a/es-app/src/guis/GuiGamelistOptions.cpp b/es-app/src/guis/GuiGamelistOptions.cpp new file mode 100644 index 000000000..635f97e19 --- /dev/null +++ b/es-app/src/guis/GuiGamelistOptions.cpp @@ -0,0 +1,141 @@ +#include "GuiGamelistOptions.h" +#include "GuiMetaDataEd.h" +#include "views/gamelist/IGameListView.h" +#include "views/ViewController.h" + +GuiGamelistOptions::GuiGamelistOptions(Window* window, SystemData* system) : GuiComponent(window), + mSystem(system), + mMenu(window, "OPTIONS") +{ + addChild(&mMenu); + + // jump to letter + char curChar = getGamelist()->getCursor()->getName()[0]; + mJumpToLetterList = std::make_shared(mWindow, "JUMP TO LETTER", false); + for(char c = 'A'; c <= 'Z'; c++) + { + mJumpToLetterList->add(std::string(1, c), c, c == curChar); + } + + ComponentListRow row; + row.addElement(std::make_shared(mWindow, "JUMP TO LETTER", Font::get(FONT_SIZE_MEDIUM), 0x777777FF), true); + row.addElement(mJumpToLetterList, false); + row.input_handler = [&](InputConfig* config, Input input) { + if(config->isMappedTo("a", input) && input.value) + { + jumpToLetter(); + return true; + } + else if(mJumpToLetterList->input(config, input)) + { + return true; + } + return false; + }; + mMenu.addRow(row); + + // sort list by + mListSort = std::make_shared(mWindow, "SORT GAMES BY", false); + for(unsigned int i = 0; i < FileSorts::SortTypes.size(); i++) + { + const FileData::SortType& sort = FileSorts::SortTypes.at(i); + mListSort->add(sort.description, &sort, i == 0); // TODO - actually make the sort type persistent + } + + mMenu.addWithLabel("SORT GAMES BY", mListSort); + + // edit game metadata + row.elements.clear(); + row.addElement(std::make_shared(mWindow, "EDIT THIS GAME'S METADATA", Font::get(FONT_SIZE_MEDIUM), 0x777777FF), true); + row.addElement(makeArrow(mWindow), false); + row.makeAcceptInputHandler(std::bind(&GuiGamelistOptions::openMetaDataEd, this)); + mMenu.addRow(row); + + // center the menu + setSize((float)Renderer::getScreenWidth(), (float)Renderer::getScreenHeight()); + mMenu.setPosition((mSize.x() - mMenu.getSize().x()) / 2, (mSize.y() - mMenu.getSize().y()) / 2); +} + +GuiGamelistOptions::~GuiGamelistOptions() +{ + // apply sort + FileData* root = getGamelist()->getCursor()->getSystem()->getRootFolder(); + root->sort(*mListSort->getSelected()); // will also recursively sort children + + // notify that the root folder was sorted + getGamelist()->onFileChanged(root, FILE_SORTED); +} + +void GuiGamelistOptions::openMetaDataEd() +{ + // open metadata editor + FileData* file = getGamelist()->getCursor(); + ScraperSearchParams p; + p.game = file; + p.system = file->getSystem(); + mWindow->pushGui(new GuiMetaDataEd(mWindow, &file->metadata, file->metadata.getMDD(), p, file->getPath().filename().string(), + std::bind(&IGameListView::onFileChanged, getGamelist(), file, FILE_METADATA_CHANGED), [this, file] { + boost::filesystem::remove(file->getPath()); //actually delete the file on the filesystem + file->getParent()->removeChild(file); //unlink it so list repopulations triggered from onFileChanged won't see it + getGamelist()->onFileChanged(file, FILE_REMOVED); //tell the view + delete file; //free it + })); +} + +void GuiGamelistOptions::jumpToLetter() +{ + char letter = mJumpToLetterList->getSelected(); + IGameListView* gamelist = getGamelist(); + + // this is a really shitty way to get a list of files + const std::vector& files = gamelist->getCursor()->getParent()->getChildren(); + + long min = 0; + long max = files.size() - 1; + long mid = 0; + + while(max >= min) + { + mid = ((max - min) / 2) + min; + + // game somehow has no first character to check + if(files.at(mid)->getName().empty()) + continue; + + char checkLetter = toupper(files.at(mid)->getName()[0]); + + if(checkLetter < letter) + min = mid + 1; + else if(checkLetter > letter) + max = mid - 1; + else + break; //exact match found + } + + gamelist->setCursor(files.at(mid)); + + delete this; +} + +bool GuiGamelistOptions::input(InputConfig* config, Input input) +{ + if((config->isMappedTo("b", input) || config->isMappedTo("select", input)) && input.value) + { + delete this; + return true; + } + + return mMenu.input(config, input); +} + +std::vector GuiGamelistOptions::getHelpPrompts() +{ + auto prompts = mMenu.getHelpPrompts(); + prompts.push_back(HelpPrompt("b", "close")); + return prompts; +} + +IGameListView* GuiGamelistOptions::getGamelist() +{ + return ViewController::get()->getGameListView(mSystem).get(); +} diff --git a/es-app/src/guis/GuiGamelistOptions.h b/es-app/src/guis/GuiGamelistOptions.h new file mode 100644 index 000000000..2ce685c9e --- /dev/null +++ b/es-app/src/guis/GuiGamelistOptions.h @@ -0,0 +1,31 @@ +#include "GuiComponent.h" +#include "components/MenuComponent.h" +#include "components/OptionListComponent.h" +#include "FileSorts.h" + +class IGameListView; + +class GuiGamelistOptions : public GuiComponent +{ +public: + GuiGamelistOptions(Window* window, SystemData* system); + virtual ~GuiGamelistOptions(); + + virtual bool input(InputConfig* config, Input input) override; + virtual std::vector getHelpPrompts() override; + +private: + void openMetaDataEd(); + void jumpToLetter(); + + MenuComponent mMenu; + + typedef OptionListComponent LetterList; + std::shared_ptr mJumpToLetterList; + + typedef OptionListComponent SortList; + std::shared_ptr mListSort; + + SystemData* mSystem; + IGameListView* getGamelist(); +}; diff --git a/es-app/src/guis/GuiMenu.cpp b/es-app/src/guis/GuiMenu.cpp new file mode 100644 index 000000000..417d38224 --- /dev/null +++ b/es-app/src/guis/GuiMenu.cpp @@ -0,0 +1,277 @@ +#include "EmulationStation.h" +#include "guis/GuiMenu.h" +#include "Window.h" +#include "Sound.h" +#include "Log.h" +#include "Settings.h" +#include "guis/GuiMsgBox.h" +#include "guis/GuiSettings.h" +#include "guis/GuiScraperStart.h" +#include "guis/GuiDetectDevice.h" +#include "views/ViewController.h" + +#include "components/ButtonComponent.h" +#include "components/SwitchComponent.h" +#include "components/SliderComponent.h" +#include "components/TextComponent.h" +#include "components/OptionListComponent.h" +#include "components/MenuComponent.h" +#include "VolumeControl.h" +#include "scrapers/GamesDBScraper.h" +#include "scrapers/TheArchiveScraper.h" + +GuiMenu::GuiMenu(Window* window) : GuiComponent(window), mMenu(window, "MAIN MENU"), mVersion(window) +{ + // MAIN MENU + + // SCRAPER > + // SOUND SETTINGS > + // UI SETTINGS > + // CONFIGURE INPUT > + // QUIT > + + // [version] + + auto openScrapeNow = [this] { mWindow->pushGui(new GuiScraperStart(mWindow)); }; + addEntry("SCRAPER", 0x777777FF, true, + [this, openScrapeNow] { + auto s = new GuiSettings(mWindow, "SCRAPER"); + + // scrape from + auto scraper_list = std::make_shared< OptionListComponent< std::string > >(mWindow, "SCRAPE FROM", false); + std::vector scrapers = getScraperList(); + for(auto it = scrapers.begin(); it != scrapers.end(); it++) + scraper_list->add(*it, *it, *it == Settings::getInstance()->getString("Scraper")); + + s->addWithLabel("SCRAPE FROM", scraper_list); + s->addSaveFunc([scraper_list] { Settings::getInstance()->setString("Scraper", scraper_list->getSelected()); }); + + // scrape ratings + auto scrape_ratings = std::make_shared(mWindow); + scrape_ratings->setState(Settings::getInstance()->getBool("ScrapeRatings")); + s->addWithLabel("SCRAPE RATINGS", scrape_ratings); + s->addSaveFunc([scrape_ratings] { Settings::getInstance()->setBool("ScrapeRatings", scrape_ratings->getState()); }); + + // scrape now + ComponentListRow row; + std::function openAndSave = openScrapeNow; + openAndSave = [s, openAndSave] { s->save(); openAndSave(); }; + row.makeAcceptInputHandler(openAndSave); + + auto scrape_now = std::make_shared(mWindow, "SCRAPE NOW", Font::get(FONT_SIZE_MEDIUM), 0x777777FF); + auto bracket = makeArrow(mWindow); + row.addElement(scrape_now, true); + row.addElement(bracket, false); + s->addRow(row); + + mWindow->pushGui(s); + }); + + addEntry("SOUND SETTINGS", 0x777777FF, true, + [this] { + auto s = new GuiSettings(mWindow, "SOUND SETTINGS"); + + // volume + auto volume = std::make_shared(mWindow, 0.f, 100.f, 1.f, "%"); + volume->setValue((float)VolumeControl::getInstance()->getVolume()); + s->addWithLabel("SYSTEM VOLUME", volume); + s->addSaveFunc([volume] { VolumeControl::getInstance()->setVolume((int)round(volume->getValue())); }); + + // disable sounds + auto sounds_enabled = std::make_shared(mWindow); + sounds_enabled->setState(Settings::getInstance()->getBool("EnableSounds")); + s->addWithLabel("ENABLE SOUNDS", sounds_enabled); + s->addSaveFunc([sounds_enabled] { Settings::getInstance()->setBool("EnableSounds", sounds_enabled->getState()); }); + + mWindow->pushGui(s); + }); + + addEntry("UI SETTINGS", 0x777777FF, true, + [this] { + auto s = new GuiSettings(mWindow, "UI SETTINGS"); + + // screensaver time + auto screensaver_time = std::make_shared(mWindow, 0.f, 30.f, 1.f, "m"); + screensaver_time->setValue((float)(Settings::getInstance()->getInt("ScreenSaverTime") / (1000 * 60))); + s->addWithLabel("SCREENSAVER AFTER", screensaver_time); + s->addSaveFunc([screensaver_time] { Settings::getInstance()->setInt("ScreenSaverTime", (int)round(screensaver_time->getValue()) * (1000 * 60)); }); + + // screensaver behavior + auto screensaver_behavior = std::make_shared< OptionListComponent >(mWindow, "TRANSITION STYLE", false); + std::vector screensavers; + screensavers.push_back("dim"); + screensavers.push_back("black"); + for(auto it = screensavers.begin(); it != screensavers.end(); it++) + screensaver_behavior->add(*it, *it, Settings::getInstance()->getString("ScreenSaverBehavior") == *it); + s->addWithLabel("SCREENSAVER BEHAVIOR", screensaver_behavior); + s->addSaveFunc([screensaver_behavior] { Settings::getInstance()->setString("ScreenSaverBehavior", screensaver_behavior->getSelected()); }); + + // framerate + auto framerate = std::make_shared(mWindow); + framerate->setState(Settings::getInstance()->getBool("DrawFramerate")); + s->addWithLabel("SHOW FRAMERATE", framerate); + s->addSaveFunc([framerate] { Settings::getInstance()->setBool("DrawFramerate", framerate->getState()); }); + + // show help + auto show_help = std::make_shared(mWindow); + show_help->setState(Settings::getInstance()->getBool("ShowHelpPrompts")); + s->addWithLabel("ON-SCREEN HELP", show_help); + s->addSaveFunc([show_help] { Settings::getInstance()->setBool("ShowHelpPrompts", show_help->getState()); }); + + // quick system select (left/right in game list view) + auto quick_sys_select = std::make_shared(mWindow); + quick_sys_select->setState(Settings::getInstance()->getBool("QuickSystemSelect")); + s->addWithLabel("QUICK SYSTEM SELECT", quick_sys_select); + s->addSaveFunc([quick_sys_select] { Settings::getInstance()->setBool("QuickSystemSelect", quick_sys_select->getState()); }); + + // transition style + auto transition_style = std::make_shared< OptionListComponent >(mWindow, "TRANSITION STYLE", false); + std::vector transitions; + transitions.push_back("fade"); + transitions.push_back("slide"); + for(auto it = transitions.begin(); it != transitions.end(); it++) + transition_style->add(*it, *it, Settings::getInstance()->getString("TransitionStyle") == *it); + s->addWithLabel("TRANSITION STYLE", transition_style); + s->addSaveFunc([transition_style] { Settings::getInstance()->setString("TransitionStyle", transition_style->getSelected()); }); + + // theme set + auto themeSets = ThemeData::getThemeSets(); + + if(!themeSets.empty()) + { + auto selectedSet = themeSets.find(Settings::getInstance()->getString("ThemeSet")); + if(selectedSet == themeSets.end()) + selectedSet = themeSets.begin(); + + auto theme_set = std::make_shared< OptionListComponent >(mWindow, "THEME SET", false); + for(auto it = themeSets.begin(); it != themeSets.end(); it++) + theme_set->add(it->first, it->first, it == selectedSet); + s->addWithLabel("THEME SET", theme_set); + + Window* window = mWindow; + s->addSaveFunc([window, theme_set] + { + bool needReload = false; + if(Settings::getInstance()->getString("ThemeSet") != theme_set->getSelected()) + needReload = true; + + Settings::getInstance()->setString("ThemeSet", theme_set->getSelected()); + + if(needReload) + ViewController::get()->reloadAll(); // TODO - replace this with some sort of signal-based implementation + }); + } + + mWindow->pushGui(s); + }); + + addEntry("CONFIGURE INPUT", 0x777777FF, true, + [this] { + mWindow->pushGui(new GuiDetectDevice(mWindow, false, nullptr)); + }); + + addEntry("QUIT", 0x777777FF, true, + [this] { + auto s = new GuiSettings(mWindow, "QUIT"); + + Window* window = mWindow; + + ComponentListRow row; + row.makeAcceptInputHandler([window] { + window->pushGui(new GuiMsgBox(window, "REALLY RESTART?", "YES", + [] { + if(runRestartCommand() != 0) + LOG(LogWarning) << "Restart terminated with non-zero result!"; + }, "NO", nullptr)); + }); + row.addElement(std::make_shared(window, "RESTART SYSTEM", Font::get(FONT_SIZE_MEDIUM), 0x777777FF), true); + s->addRow(row); + + row.elements.clear(); + row.makeAcceptInputHandler([window] { + window->pushGui(new GuiMsgBox(window, "REALLY SHUTDOWN?", "YES", + [] { + if(runShutdownCommand() != 0) + LOG(LogWarning) << "Shutdown terminated with non-zero result!"; + }, "NO", nullptr)); + }); + row.addElement(std::make_shared(window, "SHUTDOWN SYSTEM", Font::get(FONT_SIZE_MEDIUM), 0x777777FF), true); + s->addRow(row); + + if(Settings::getInstance()->getBool("ShowExit")) + { + row.elements.clear(); + row.makeAcceptInputHandler([window] { + window->pushGui(new GuiMsgBox(window, "REALLY QUIT?", "YES", + [] { + SDL_Event ev; + ev.type = SDL_QUIT; + SDL_PushEvent(&ev); + }, "NO", nullptr)); + }); + row.addElement(std::make_shared(window, "QUIT EMULATIONSTATION", Font::get(FONT_SIZE_MEDIUM), 0x777777FF), true); + s->addRow(row); + } + + mWindow->pushGui(s); + }); + + mVersion.setFont(Font::get(FONT_SIZE_SMALL)); + mVersion.setColor(0xC6C6C6FF); + mVersion.setText("EMULATIONSTATION V" + strToUpper(PROGRAM_VERSION_STRING)); + mVersion.setAlignment(ALIGN_CENTER); + + addChild(&mMenu); + addChild(&mVersion); + + setSize(mMenu.getSize()); + setPosition((Renderer::getScreenWidth() - mSize.x()) / 2, Renderer::getScreenHeight() * 0.15f); +} + +void GuiMenu::onSizeChanged() +{ + mVersion.setSize(mSize.x(), 0); + mVersion.setPosition(0, mSize.y() - mVersion.getSize().y()); +} + +void GuiMenu::addEntry(const char* name, unsigned int color, bool add_arrow, const std::function& func) +{ + std::shared_ptr font = Font::get(FONT_SIZE_MEDIUM); + + // populate the list + ComponentListRow row; + row.addElement(std::make_shared(mWindow, name, font, color), true); + + if(add_arrow) + { + std::shared_ptr bracket = makeArrow(mWindow); + row.addElement(bracket, false); + } + + row.makeAcceptInputHandler(func); + + mMenu.addRow(row); +} + +bool GuiMenu::input(InputConfig* config, Input input) +{ + if(GuiComponent::input(config, input)) + return true; + + if((config->isMappedTo("b", input) || config->isMappedTo("start", input)) && input.value != 0) + { + delete this; + return true; + } + + return false; +} + +std::vector GuiMenu::getHelpPrompts() +{ + std::vector prompts; + prompts.push_back(HelpPrompt("up/down", "choose")); + prompts.push_back(HelpPrompt("a", "select")); + prompts.push_back(HelpPrompt("start", "close")); + return prompts; +} diff --git a/es-app/src/guis/GuiMenu.h b/es-app/src/guis/GuiMenu.h new file mode 100644 index 000000000..eff9ebd3f --- /dev/null +++ b/es-app/src/guis/GuiMenu.h @@ -0,0 +1,21 @@ +#pragma once + +#include "GuiComponent.h" +#include "components/MenuComponent.h" +#include + +class GuiMenu : public GuiComponent +{ +public: + GuiMenu(Window* window); + + bool input(InputConfig* config, Input input) override; + void onSizeChanged() override; + std::vector getHelpPrompts() override; + +private: + void addEntry(const char* name, unsigned int color, bool add_arrow, const std::function& func); + + MenuComponent mMenu; + TextComponent mVersion; +}; diff --git a/es-app/src/guis/GuiMetaDataEd.cpp b/es-app/src/guis/GuiMetaDataEd.cpp new file mode 100644 index 000000000..11367c2ad --- /dev/null +++ b/es-app/src/guis/GuiMetaDataEd.cpp @@ -0,0 +1,264 @@ +#include "guis/GuiMetaDataEd.h" +#include "Renderer.h" +#include "Log.h" +#include "components/AsyncReqComponent.h" +#include "Settings.h" +#include "views/ViewController.h" +#include "guis/GuiGameScraper.h" +#include "guis/GuiMsgBox.h" +#include + +#include "components/TextEditComponent.h" +#include "components/DateTimeComponent.h" +#include "components/RatingComponent.h" +#include "guis/GuiTextEditPopup.h" + +using namespace Eigen; + +GuiMetaDataEd::GuiMetaDataEd(Window* window, MetaDataList* md, const std::vector& mdd, ScraperSearchParams scraperParams, + const std::string& header, std::function saveCallback, std::function deleteFunc) : GuiComponent(window), + mScraperParams(scraperParams), + + mBackground(window, ":/frame.png"), + mGrid(window, Vector2i(1, 3)), + + mMetaDataDecl(mdd), + mMetaData(md), + mSavedCallback(saveCallback), mDeleteFunc(deleteFunc) +{ + addChild(&mBackground); + addChild(&mGrid); + + mHeaderGrid = std::make_shared(mWindow, Vector2i(1, 5)); + + mTitle = std::make_shared(mWindow, "EDIT METADATA", Font::get(FONT_SIZE_LARGE), 0x555555FF, ALIGN_CENTER); + mSubtitle = std::make_shared(mWindow, strToUpper(scraperParams.game->getPath().filename().generic_string()), + Font::get(FONT_SIZE_SMALL), 0x777777FF, ALIGN_CENTER); + mHeaderGrid->setEntry(mTitle, Vector2i(0, 1), false, true); + mHeaderGrid->setEntry(mSubtitle, Vector2i(0, 3), false, true); + + mGrid.setEntry(mHeaderGrid, Vector2i(0, 0), false, true); + + mList = std::make_shared(mWindow); + mGrid.setEntry(mList, Vector2i(0, 1), true, true); + + // populate list + for(auto iter = mdd.begin(); iter != mdd.end(); iter++) + { + std::shared_ptr ed; + + // don't add statistics + if(iter->isStatistic) + continue; + + // create ed and add it (and any related components) to mMenu + // ed's value will be set below + ComponentListRow row; + auto lbl = std::make_shared(mWindow, strToUpper(iter->displayName), Font::get(FONT_SIZE_SMALL), 0x777777FF); + row.addElement(lbl, true); // label + + switch(iter->type) + { + case MD_RATING: + { + ed = std::make_shared(window); + const float height = lbl->getSize().y() * 0.71f; + ed->setSize(0, height); + row.addElement(ed, false, true); + + auto spacer = std::make_shared(mWindow); + spacer->setSize(Renderer::getScreenWidth() * 0.0025f, 0); + row.addElement(spacer, false); + + // pass input to the actual RatingComponent instead of the spacer + row.input_handler = std::bind(&GuiComponent::input, ed.get(), std::placeholders::_1, std::placeholders::_2); + + break; + } + case MD_DATE: + { + ed = std::make_shared(window); + row.addElement(ed, false); + + auto spacer = std::make_shared(mWindow); + spacer->setSize(Renderer::getScreenWidth() * 0.0025f, 0); + row.addElement(spacer, false); + + // pass input to the actual DateTimeComponent instead of the spacer + row.input_handler = std::bind(&GuiComponent::input, ed.get(), std::placeholders::_1, std::placeholders::_2); + + break; + } + case MD_TIME: + { + ed = std::make_shared(window, DateTimeComponent::DISP_RELATIVE_TO_NOW); + row.addElement(ed, false); + break; + } + case MD_MULTILINE_STRING: + default: + { + // MD_STRING + ed = std::make_shared(window, "", Font::get(FONT_SIZE_SMALL, FONT_PATH_LIGHT), 0x777777FF, ALIGN_RIGHT); + row.addElement(ed, true); + + auto spacer = std::make_shared(mWindow); + spacer->setSize(Renderer::getScreenWidth() * 0.005f, 0); + row.addElement(spacer, false); + + auto bracket = std::make_shared(mWindow); + bracket->setImage(":/arrow.svg"); + bracket->setResize(Eigen::Vector2f(0, lbl->getFont()->getLetterHeight())); + row.addElement(bracket, false); + + bool multiLine = iter->type == MD_MULTILINE_STRING; + const std::string title = iter->displayPrompt; + auto updateVal = [ed](const std::string& newVal) { ed->setValue(newVal); }; // ok callback (apply new value to ed) + row.makeAcceptInputHandler([this, title, ed, updateVal, multiLine] { + mWindow->pushGui(new GuiTextEditPopup(mWindow, title, ed->getValue(), updateVal, multiLine)); + }); + break; + } + } + + assert(ed); + mList->addRow(row); + ed->setValue(mMetaData->get(iter->key)); + mEditors.push_back(ed); + } + + std::vector< std::shared_ptr > buttons; + + if(!scraperParams.system->hasPlatformId(PlatformIds::PLATFORM_IGNORE)) + buttons.push_back(std::make_shared(mWindow, "SCRAPE", "scrape", std::bind(&GuiMetaDataEd::fetch, this))); + + buttons.push_back(std::make_shared(mWindow, "SAVE", "save", [&] { save(); delete this; })); + buttons.push_back(std::make_shared(mWindow, "CANCEL", "cancel", [&] { delete this; })); + + if(mDeleteFunc) + { + auto deleteFileAndSelf = [&] { mDeleteFunc(); delete this; }; + auto deleteBtnFunc = [this, deleteFileAndSelf] { mWindow->pushGui(new GuiMsgBox(mWindow, "THIS WILL DELETE A FILE!\nARE YOU SURE?", "YES", deleteFileAndSelf, "NO", nullptr)); }; + buttons.push_back(std::make_shared(mWindow, "DELETE", "delete", deleteBtnFunc)); + } + + mButtons = makeButtonGrid(mWindow, buttons); + mGrid.setEntry(mButtons, Vector2i(0, 2), true, false); + + // resize + center + setSize(Renderer::getScreenWidth() * 0.5f, Renderer::getScreenHeight() * 0.82f); + setPosition((Renderer::getScreenWidth() - mSize.x()) / 2, (Renderer::getScreenHeight() - mSize.y()) / 2); +} + +void GuiMetaDataEd::onSizeChanged() +{ + mBackground.fitTo(mSize, Vector3f::Zero(), Vector2f(-32, -32)); + + mGrid.setSize(mSize); + + const float titleHeight = mTitle->getFont()->getLetterHeight(); + const float subtitleHeight = mSubtitle->getFont()->getLetterHeight(); + const float titleSubtitleSpacing = mSize.y() * 0.03f; + + mGrid.setRowHeightPerc(0, (titleHeight + titleSubtitleSpacing + subtitleHeight + TITLE_VERT_PADDING) / mSize.y()); + mGrid.setRowHeightPerc(2, mButtons->getSize().y() / mSize.y()); + + mHeaderGrid->setRowHeightPerc(1, titleHeight / mHeaderGrid->getSize().y()); + mHeaderGrid->setRowHeightPerc(2, titleSubtitleSpacing / mHeaderGrid->getSize().y()); + mHeaderGrid->setRowHeightPerc(3, subtitleHeight / mHeaderGrid->getSize().y()); +} + +void GuiMetaDataEd::save() +{ + for(unsigned int i = 0; i < mEditors.size(); i++) + { + if(mMetaDataDecl.at(i).isStatistic) + continue; + + mMetaData->set(mMetaDataDecl.at(i).key, mEditors.at(i)->getValue()); + } + + if(mSavedCallback) + mSavedCallback(); +} + +void GuiMetaDataEd::fetch() +{ + GuiGameScraper* scr = new GuiGameScraper(mWindow, mScraperParams, std::bind(&GuiMetaDataEd::fetchDone, this, std::placeholders::_1)); + mWindow->pushGui(scr); +} + +void GuiMetaDataEd::fetchDone(const ScraperSearchResult& result) +{ + for(unsigned int i = 0; i < mEditors.size(); i++) + { + if(mMetaDataDecl.at(i).isStatistic) + continue; + + const std::string& key = mMetaDataDecl.at(i).key; + mEditors.at(i)->setValue(result.mdl.get(key)); + } +} + +void GuiMetaDataEd::close(bool closeAllWindows) +{ + // find out if the user made any changes + bool dirty = false; + for(unsigned int i = 0; i < mEditors.size(); i++) + { + const std::string& key = mMetaDataDecl.at(i).key; + if(mMetaData->get(key) != mEditors.at(i)->getValue()) + { + dirty = true; + break; + } + } + + std::function closeFunc; + if(!closeAllWindows) + { + closeFunc = [this] { delete this; }; + }else{ + Window* window = mWindow; + closeFunc = [window, this] { + while(window->peekGui() != ViewController::get()) + delete window->peekGui(); + }; + } + + + if(dirty) + { + // changes were made, ask if the user wants to save them + mWindow->pushGui(new GuiMsgBox(mWindow, + "SAVE CHANGES?", + "YES", [this, closeFunc] { save(); closeFunc(); }, + "NO", closeFunc + )); + }else{ + closeFunc(); + } +} + +bool GuiMetaDataEd::input(InputConfig* config, Input input) +{ + if(GuiComponent::input(config, input)) + return true; + + const bool isStart = config->isMappedTo("start", input); + if(input.value != 0 && (config->isMappedTo("b", input) || isStart)) + { + close(isStart); + return true; + } + + return false; +} + +std::vector GuiMetaDataEd::getHelpPrompts() +{ + std::vector prompts = mGrid.getHelpPrompts(); + prompts.push_back(HelpPrompt("b", "back")); + prompts.push_back(HelpPrompt("start", "close")); + return prompts; +} diff --git a/es-app/src/guis/GuiMetaDataEd.h b/es-app/src/guis/GuiMetaDataEd.h new file mode 100644 index 000000000..923696428 --- /dev/null +++ b/es-app/src/guis/GuiMetaDataEd.h @@ -0,0 +1,43 @@ +#pragma once + +#include "GuiComponent.h" +#include "components/MenuComponent.h" +#include "MetaData.h" +#include "scrapers/Scraper.h" + +#include + +class GuiMetaDataEd : public GuiComponent +{ +public: + GuiMetaDataEd(Window* window, MetaDataList* md, const std::vector& mdd, ScraperSearchParams params, + const std::string& header, std::function savedCallback, std::function deleteFunc); + + bool input(InputConfig* config, Input input) override; + void onSizeChanged() override; + virtual std::vector getHelpPrompts() override; + +private: + void save(); + void fetch(); + void fetchDone(const ScraperSearchResult& result); + void close(bool closeAllWindows); + + NinePatchComponent mBackground; + ComponentGrid mGrid; + + std::shared_ptr mTitle; + std::shared_ptr mSubtitle; + std::shared_ptr mHeaderGrid; + std::shared_ptr mList; + std::shared_ptr mButtons; + + ScraperSearchParams mScraperParams; + + std::vector< std::shared_ptr > mEditors; + + std::vector mMetaDataDecl; + MetaDataList* mMetaData; + std::function mSavedCallback; + std::function mDeleteFunc; +}; diff --git a/es-app/src/guis/GuiScraperMulti.cpp b/es-app/src/guis/GuiScraperMulti.cpp new file mode 100644 index 000000000..afbfe0a3d --- /dev/null +++ b/es-app/src/guis/GuiScraperMulti.cpp @@ -0,0 +1,151 @@ +#include "guis/GuiScraperMulti.h" +#include "Renderer.h" +#include "Log.h" +#include "views/ViewController.h" +#include "Gamelist.h" + +#include "components/TextComponent.h" +#include "components/ButtonComponent.h" +#include "components/ScraperSearchComponent.h" +#include "components/MenuComponent.h" // for makeButtonGrid +#include "guis/GuiMsgBox.h" + +using namespace Eigen; + +GuiScraperMulti::GuiScraperMulti(Window* window, const std::queue& searches, bool approveResults) : + GuiComponent(window), mBackground(window, ":/frame.png"), mGrid(window, Vector2i(1, 5)), + mSearchQueue(searches) +{ + assert(mSearchQueue.size()); + + addChild(&mBackground); + addChild(&mGrid); + + mTotalGames = mSearchQueue.size(); + mCurrentGame = 0; + mTotalSuccessful = 0; + mTotalSkipped = 0; + + // set up grid + mTitle = std::make_shared(mWindow, "SCRAPING IN PROGRESS", Font::get(FONT_SIZE_LARGE), 0x555555FF, ALIGN_CENTER); + mGrid.setEntry(mTitle, Vector2i(0, 0), false, true); + + mSystem = std::make_shared(mWindow, "SYSTEM", Font::get(FONT_SIZE_MEDIUM), 0x777777FF, ALIGN_CENTER); + mGrid.setEntry(mSystem, Vector2i(0, 1), false, true); + + mSubtitle = std::make_shared(mWindow, "subtitle text", Font::get(FONT_SIZE_SMALL), 0x888888FF, ALIGN_CENTER); + mGrid.setEntry(mSubtitle, Vector2i(0, 2), false, true); + + mSearchComp = std::make_shared(mWindow, + approveResults ? ScraperSearchComponent::ALWAYS_ACCEPT_MATCHING_CRC : ScraperSearchComponent::ALWAYS_ACCEPT_FIRST_RESULT); + mSearchComp->setAcceptCallback(std::bind(&GuiScraperMulti::acceptResult, this, std::placeholders::_1)); + mSearchComp->setSkipCallback(std::bind(&GuiScraperMulti::skip, this)); + mSearchComp->setCancelCallback(std::bind(&GuiScraperMulti::finish, this)); + mGrid.setEntry(mSearchComp, Vector2i(0, 3), mSearchComp->getSearchType() != ScraperSearchComponent::ALWAYS_ACCEPT_FIRST_RESULT, true); + + std::vector< std::shared_ptr > buttons; + + if(approveResults) + { + buttons.push_back(std::make_shared(mWindow, "INPUT", "search", [&] { + mSearchComp->openInputScreen(mSearchQueue.front()); + mGrid.resetCursor(); + })); + + buttons.push_back(std::make_shared(mWindow, "SKIP", "skip", [&] { + skip(); + mGrid.resetCursor(); + })); + } + + buttons.push_back(std::make_shared(mWindow, "STOP", "stop (progress saved)", std::bind(&GuiScraperMulti::finish, this))); + + mButtonGrid = makeButtonGrid(mWindow, buttons); + mGrid.setEntry(mButtonGrid, Vector2i(0, 4), true, false); + + setSize(Renderer::getScreenWidth() * 0.95f, Renderer::getScreenHeight() * 0.849f); + setPosition((Renderer::getScreenWidth() - mSize.x()) / 2, (Renderer::getScreenHeight() - mSize.y()) / 2); + + doNextSearch(); +} + +GuiScraperMulti::~GuiScraperMulti() +{ + // view type probably changed (basic -> detailed) + for(auto it = SystemData::sSystemVector.begin(); it != SystemData::sSystemVector.end(); it++) + ViewController::get()->reloadGameListView(*it, false); +} + +void GuiScraperMulti::onSizeChanged() +{ + mBackground.fitTo(mSize, Vector3f::Zero(), Vector2f(-32, -32)); + + mGrid.setRowHeightPerc(0, mTitle->getFont()->getLetterHeight() * 1.9725f / mSize.y(), false); + mGrid.setRowHeightPerc(1, (mSystem->getFont()->getLetterHeight() + 2) / mSize.y(), false); + mGrid.setRowHeightPerc(2, mSubtitle->getFont()->getHeight() * 1.75f / mSize.y(), false); + mGrid.setRowHeightPerc(4, mButtonGrid->getSize().y() / mSize.y(), false); + mGrid.setSize(mSize); +} + +void GuiScraperMulti::doNextSearch() +{ + if(mSearchQueue.empty()) + { + finish(); + return; + } + + // update title + std::stringstream ss; + mSystem->setText(strToUpper(mSearchQueue.front().system->getFullName())); + + // update subtitle + ss.str(""); // clear + ss << "GAME " << (mCurrentGame + 1) << " OF " << mTotalGames << " - " << strToUpper(mSearchQueue.front().game->getPath().filename().string()); + mSubtitle->setText(ss.str()); + + mSearchComp->search(mSearchQueue.front()); +} + +void GuiScraperMulti::acceptResult(const ScraperSearchResult& result) +{ + ScraperSearchParams& search = mSearchQueue.front(); + + search.game->metadata = result.mdl; + updateGamelist(search.system); + + mSearchQueue.pop(); + mCurrentGame++; + mTotalSuccessful++; + doNextSearch(); +} + +void GuiScraperMulti::skip() +{ + mSearchQueue.pop(); + mCurrentGame++; + mTotalSkipped++; + doNextSearch(); +} + +void GuiScraperMulti::finish() +{ + std::stringstream ss; + if(mTotalSuccessful == 0) + { + ss << "NO GAMES WERE SCRAPED."; + }else{ + ss << mTotalSuccessful << " GAME" << ((mTotalSuccessful > 1) ? "S" : "") << " SUCCESSFULLY SCRAPED!"; + + if(mTotalSkipped > 0) + ss << "\n" << mTotalSkipped << " GAME" << ((mTotalSkipped > 1) ? "S" : "") << " SKIPPED."; + } + + mWindow->pushGui(new GuiMsgBox(mWindow, ss.str(), + "OK", [&] { delete this; })); +} + +std::vector GuiScraperMulti::getHelpPrompts() +{ + return mGrid.getHelpPrompts(); +} diff --git a/es-app/src/guis/GuiScraperMulti.h b/es-app/src/guis/GuiScraperMulti.h new file mode 100644 index 000000000..ff18c12c0 --- /dev/null +++ b/es-app/src/guis/GuiScraperMulti.h @@ -0,0 +1,43 @@ +#pragma once + +#include "GuiComponent.h" +#include "components/NinePatchComponent.h" +#include "components/ComponentGrid.h" +#include "scrapers/Scraper.h" + +#include + +class ScraperSearchComponent; +class TextComponent; + +class GuiScraperMulti : public GuiComponent +{ +public: + GuiScraperMulti(Window* window, const std::queue& searches, bool approveResults); + virtual ~GuiScraperMulti(); + + void onSizeChanged() override; + std::vector getHelpPrompts() override; + +private: + void acceptResult(const ScraperSearchResult& result); + void skip(); + void doNextSearch(); + + void finish(); + + unsigned int mTotalGames; + unsigned int mCurrentGame; + unsigned int mTotalSuccessful; + unsigned int mTotalSkipped; + std::queue mSearchQueue; + + NinePatchComponent mBackground; + ComponentGrid mGrid; + + std::shared_ptr mTitle; + std::shared_ptr mSystem; + std::shared_ptr mSubtitle; + std::shared_ptr mSearchComp; + std::shared_ptr mButtonGrid; +}; diff --git a/es-app/src/guis/GuiScraperStart.cpp b/es-app/src/guis/GuiScraperStart.cpp new file mode 100644 index 000000000..7d1ebab43 --- /dev/null +++ b/es-app/src/guis/GuiScraperStart.cpp @@ -0,0 +1,127 @@ +#include "guis/GuiScraperStart.h" +#include "guis/GuiScraperMulti.h" +#include "guis/GuiMsgBox.h" +#include "views/ViewController.h" + +#include "components/TextComponent.h" +#include "components/OptionListComponent.h" +#include "components/SwitchComponent.h" + +GuiScraperStart::GuiScraperStart(Window* window) : GuiComponent(window), + mMenu(window, "SCRAPE NOW") +{ + addChild(&mMenu); + + // add filters (with first one selected) + mFilters = std::make_shared< OptionListComponent >(mWindow, "SCRAPE THESE GAMES", false); + mFilters->add("All Games", + [](SystemData*, FileData*) -> bool { return true; }, false); + mFilters->add("Only missing image", + [](SystemData*, FileData* g) -> bool { return g->metadata.get("image").empty(); }, true); + mMenu.addWithLabel("Filter", mFilters); + + //add systems (all with a platformid specified selected) + mSystems = std::make_shared< OptionListComponent >(mWindow, "SCRAPE THESE SYSTEMS", true); + for(auto it = SystemData::sSystemVector.begin(); it != SystemData::sSystemVector.end(); it++) + { + if(!(*it)->hasPlatformId(PlatformIds::PLATFORM_IGNORE)) + mSystems->add((*it)->getFullName(), *it, !(*it)->getPlatformIds().empty()); + } + mMenu.addWithLabel("Systems", mSystems); + + mApproveResults = std::make_shared(mWindow); + mApproveResults->setState(true); + mMenu.addWithLabel("User decides on conflicts", mApproveResults); + + mMenu.addButton("START", "start", std::bind(&GuiScraperStart::pressedStart, this)); + mMenu.addButton("BACK", "back", [&] { delete this; }); + + mMenu.setPosition((Renderer::getScreenWidth() - mMenu.getSize().x()) / 2, Renderer::getScreenHeight() * 0.15f); +} + +void GuiScraperStart::pressedStart() +{ + std::vector sys = mSystems->getSelectedObjects(); + for(auto it = sys.begin(); it != sys.end(); it++) + { + if((*it)->getPlatformIds().empty()) + { + mWindow->pushGui(new GuiMsgBox(mWindow, + strToUpper("Warning: some of your selected systems do not have a platform set. Results may be even more inaccurate than usual!\nContinue anyway?"), + "YES", std::bind(&GuiScraperStart::start, this), + "NO", nullptr)); + return; + } + } + + start(); +} + +void GuiScraperStart::start() +{ + std::queue searches = getSearches(mSystems->getSelectedObjects(), mFilters->getSelected()); + + if(searches.empty()) + { + mWindow->pushGui(new GuiMsgBox(mWindow, + "NO GAMES FIT THAT CRITERIA.")); + }else{ + GuiScraperMulti* gsm = new GuiScraperMulti(mWindow, searches, mApproveResults->getState()); + mWindow->pushGui(gsm); + delete this; + } +} + +std::queue GuiScraperStart::getSearches(std::vector systems, GameFilterFunc selector) +{ + std::queue queue; + for(auto sys = systems.begin(); sys != systems.end(); sys++) + { + std::vector games = (*sys)->getRootFolder()->getFilesRecursive(GAME); + for(auto game = games.begin(); game != games.end(); game++) + { + if(selector((*sys), (*game))) + { + ScraperSearchParams search; + search.game = *game; + search.system = *sys; + + queue.push(search); + } + } + } + + return queue; +} + +bool GuiScraperStart::input(InputConfig* config, Input input) +{ + bool consumed = GuiComponent::input(config, input); + if(consumed) + return true; + + if(input.value != 0 && config->isMappedTo("b", input)) + { + delete this; + return true; + } + + if(config->isMappedTo("start", input) && input.value != 0) + { + // close everything + Window* window = mWindow; + while(window->peekGui() && window->peekGui() != ViewController::get()) + delete window->peekGui(); + } + + + return false; +} + +std::vector GuiScraperStart::getHelpPrompts() +{ + std::vector prompts = mMenu.getHelpPrompts(); + prompts.push_back(HelpPrompt("b", "back")); + prompts.push_back(HelpPrompt("start", "close")); + return prompts; +} diff --git a/es-app/src/guis/GuiScraperStart.h b/es-app/src/guis/GuiScraperStart.h new file mode 100644 index 000000000..0d453ca0f --- /dev/null +++ b/es-app/src/guis/GuiScraperStart.h @@ -0,0 +1,38 @@ +#pragma once + +#include "GuiComponent.h" +#include "SystemData.h" +#include "scrapers/Scraper.h" +#include "components/MenuComponent.h" +#include + +typedef std::function GameFilterFunc; + +template +class OptionListComponent; + +class SwitchComponent; + +//The starting point for a multi-game scrape. +//Allows the user to set various parameters (to set filters, to set which systems to scrape, to enable manual mode). +//Generates a list of "searches" that will be carried out by GuiScraperLog. +class GuiScraperStart : public GuiComponent +{ +public: + GuiScraperStart(Window* window); + + bool input(InputConfig* config, Input input) override; + + virtual std::vector getHelpPrompts() override; + +private: + void pressedStart(); + void start(); + std::queue getSearches(std::vector systems, GameFilterFunc selector); + + std::shared_ptr< OptionListComponent > mFilters; + std::shared_ptr< OptionListComponent > mSystems; + std::shared_ptr mApproveResults; + + MenuComponent mMenu; +}; diff --git a/es-app/src/guis/GuiSettings.cpp b/es-app/src/guis/GuiSettings.cpp new file mode 100644 index 000000000..806dae2c9 --- /dev/null +++ b/es-app/src/guis/GuiSettings.cpp @@ -0,0 +1,60 @@ +#include "guis/GuiSettings.h" +#include "Window.h" +#include "Settings.h" +#include "views/ViewController.h" + +GuiSettings::GuiSettings(Window* window, const char* title) : GuiComponent(window), mMenu(window, title) +{ + addChild(&mMenu); + + mMenu.addButton("BACK", "go back", [this] { delete this; }); + + setSize((float)Renderer::getScreenWidth(), (float)Renderer::getScreenHeight()); + mMenu.setPosition((mSize.x() - mMenu.getSize().x()) / 2, Renderer::getScreenHeight() * 0.15f); +} + +GuiSettings::~GuiSettings() +{ + save(); +} + +void GuiSettings::save() +{ + if(!mSaveFuncs.size()) + return; + + for(auto it = mSaveFuncs.begin(); it != mSaveFuncs.end(); it++) + (*it)(); + + Settings::getInstance()->saveFile(); +} + +bool GuiSettings::input(InputConfig* config, Input input) +{ + if(config->isMappedTo("b", input) && input.value != 0) + { + delete this; + return true; + } + + if(config->isMappedTo("start", input) && input.value != 0) + { + // close everything + Window* window = mWindow; + while(window->peekGui() && window->peekGui() != ViewController::get()) + delete window->peekGui(); + return true; + } + + return GuiComponent::input(config, input); +} + +std::vector GuiSettings::getHelpPrompts() +{ + std::vector prompts = mMenu.getHelpPrompts(); + + prompts.push_back(HelpPrompt("b", "back")); + prompts.push_back(HelpPrompt("start", "close")); + + return prompts; +} diff --git a/es-app/src/guis/GuiSettings.h b/es-app/src/guis/GuiSettings.h new file mode 100644 index 000000000..06e88d322 --- /dev/null +++ b/es-app/src/guis/GuiSettings.h @@ -0,0 +1,22 @@ +#include "GuiComponent.h" +#include "components/MenuComponent.h" + +// This is just a really simple template for a GUI that calls some save functions when closed. +class GuiSettings : public GuiComponent +{ +public: + GuiSettings(Window* window, const char* title); + virtual ~GuiSettings(); // just calls save(); + + void save(); + inline void addRow(const ComponentListRow& row) { mMenu.addRow(row); }; + inline void addWithLabel(const std::string& label, const std::shared_ptr& comp) { mMenu.addWithLabel(label, comp); }; + inline void addSaveFunc(const std::function& func) { mSaveFuncs.push_back(func); }; + + bool input(InputConfig* config, Input input) override; + std::vector getHelpPrompts() override; + +private: + MenuComponent mMenu; + std::vector< std::function > mSaveFuncs; +}; \ No newline at end of file diff --git a/es-app/src/main.cpp b/es-app/src/main.cpp new file mode 100644 index 000000000..c631264d7 --- /dev/null +++ b/es-app/src/main.cpp @@ -0,0 +1,284 @@ +//EmulationStation, a graphical front-end for ROM browsing. Created by Alec "Aloshi" Lofquist. +//http://www.aloshi.com + +#include +#include +#include +#include "Renderer.h" +#include "views/ViewController.h" +#include "SystemData.h" +#include +#include "guis/GuiDetectDevice.h" +#include "guis/GuiMsgBox.h" +#include "AudioManager.h" +#include "platform.h" +#include "Log.h" +#include "Window.h" +#include "EmulationStation.h" +#include "Settings.h" +#include "ScraperCmdLine.h" +#include + +namespace fs = boost::filesystem; + +bool scrape_cmdline = false; + +bool parseArgs(int argc, char* argv[], unsigned int* width, unsigned int* height) +{ + for(int i = 1; i < argc; i++) + { + if(strcmp(argv[i], "--resolution") == 0) + { + if(i >= argc - 2) + { + std::cerr << "Invalid resolution supplied."; + return false; + } + + *width = atoi(argv[i + 1]); + *height = atoi(argv[i + 2]); + i += 2; // skip the argument value + }else if(strcmp(argv[i], "--gamelist-only") == 0) + { + Settings::getInstance()->setBool("ParseGamelistOnly", true); + }else if(strcmp(argv[i], "--ignore-gamelist") == 0) + { + Settings::getInstance()->setBool("IgnoreGamelist", true); + }else if(strcmp(argv[i], "--draw-framerate") == 0) + { + Settings::getInstance()->setBool("DrawFramerate", true); + }else if(strcmp(argv[i], "--no-exit") == 0) + { + Settings::getInstance()->setBool("ShowExit", false); + }else if(strcmp(argv[i], "--debug") == 0) + { + Settings::getInstance()->setBool("Debug", true); + Log::setReportingLevel(LogDebug); + }else if(strcmp(argv[i], "--windowed") == 0) + { + Settings::getInstance()->setBool("Windowed", true); + }else if(strcmp(argv[i], "--scrape") == 0) + { + scrape_cmdline = true; + }else if(strcmp(argv[i], "--help") == 0 || strcmp(argv[i], "-h") == 0) + { + std::cout << + "EmulationStation, a graphical front-end for ROM browsing.\n" + "Written by Alec \"Aloshi\" Lofquist.\n" + "Version " << PROGRAM_VERSION_STRING << ", built " << PROGRAM_BUILT_STRING << "\n\n" + "Command line arguments:\n" + "--resolution [width] [height] try and force a particular resolution\n" + "--gamelist-only skip automatic game search, only read from gamelist.xml\n" + "--ignore-gamelist ignore the gamelist (useful for troubleshooting)\n" + "--draw-framerate display the framerate\n" + "--no-exit don't show the exit option in the menu\n" + "--debug even more logging\n" + "--scrape scrape using command line interface\n" + "--windowed not fullscreen, should be used with --resolution\n" + "--help, -h summon a sentient, angry tuba\n\n" + "More information available in README.md.\n"; + return false; //exit after printing help + } + } + + return true; +} + +bool verifyHomeFolderExists() +{ + //make sure the config directory exists + std::string home = getHomePath(); + std::string configDir = home + "/.emulationstation"; + if(!fs::exists(configDir)) + { + std::cout << "Creating config directory \"" << configDir << "\"\n"; + fs::create_directory(configDir); + if(!fs::exists(configDir)) + { + std::cerr << "Config directory could not be created!\n"; + return false; + } + } + + return true; +} + +// Returns true if everything is OK, +bool loadSystemConfigFile(const char** errorString) +{ + *errorString = NULL; + + if(!SystemData::loadConfig()) + { + LOG(LogError) << "Error while parsing systems configuration file!"; + *errorString = "IT LOOKS LIKE YOUR SYSTEMS CONFIGURATION FILE HAS NOT BEEN SET UP OR IS INVALID. YOU'LL NEED TO DO THIS BY HAND, UNFORTUNATELY.\n\n" + "VISIT EMULATIONSTATION.ORG FOR MORE INFORMATION."; + return false; + } + + if(SystemData::sSystemVector.size() == 0) + { + LOG(LogError) << "No systems found! Does at least one system have a game present? (check that extensions match!)\n(Also, make sure you've updated your es_systems.cfg for XML!)"; + *errorString = "WE CAN'T FIND ANY SYSTEMS!\n" + "CHECK THAT YOUR PATHS ARE CORRECT IN THE SYSTEMS CONFIGURATION FILE, " + "AND YOUR GAME DIRECTORY HAS AT LEAST ONE GAME WITH THE CORRECT EXTENSION.\n\n" + "VISIT EMULATIONSTATION.ORG FOR MORE INFORMATION."; + return false; + } + + return true; +} + +//called on exit, assuming we get far enough to have the log initialized +void onExit() +{ + Log::close(); +} + +int main(int argc, char* argv[]) +{ + unsigned int width = 0; + unsigned int height = 0; + + if(!parseArgs(argc, argv, &width, &height)) + return 0; + + //if ~/.emulationstation doesn't exist and cannot be created, bail + if(!verifyHomeFolderExists()) + return 1; + + //start the logger + Log::open(); + LOG(LogInfo) << "EmulationStation - v" << PROGRAM_VERSION_STRING << ", built " << PROGRAM_BUILT_STRING; + + //always close the log on exit + atexit(&onExit); + + Window window; + ViewController::init(&window); + window.pushGui(ViewController::get()); + + if(!scrape_cmdline) + { + if(!window.init(width, height)) + { + LOG(LogError) << "Window failed to initialize!"; + return 1; + } + + std::string glExts = (const char*)glGetString(GL_EXTENSIONS); + LOG(LogInfo) << "Checking available OpenGL extensions..."; + LOG(LogInfo) << " ARB_texture_non_power_of_two: " << (glExts.find("ARB_texture_non_power_of_two") != std::string::npos ? "ok" : "MISSING"); + + window.renderLoadingScreen(); + } + + const char* errorMsg = NULL; + if(!loadSystemConfigFile(&errorMsg)) + { + // something went terribly wrong + if(errorMsg == NULL) + { + LOG(LogError) << "Unknown error occured while parsing system config file."; + if(!scrape_cmdline) + Renderer::deinit(); + return 1; + } + + // we can't handle es_systems.cfg file problems inside ES itself, so display the error message then quit + window.pushGui(new GuiMsgBox(&window, + errorMsg, + "QUIT", [] { + SDL_Event* quit = new SDL_Event(); + quit->type = SDL_QUIT; + SDL_PushEvent(quit); + })); + } + + //run the command line scraper then quit + if(scrape_cmdline) + { + return run_scraper_cmdline(); + } + + //dont generate joystick events while we're loading (hopefully fixes "automatically started emulator" bug) + SDL_JoystickEventState(SDL_DISABLE); + + // preload what we can right away instead of waiting for the user to select it + // this makes for no delays when accessing content, but a longer startup time + ViewController::get()->preload(); + + //choose which GUI to open depending on if an input configuration already exists + if(errorMsg == NULL) + { + if(fs::exists(InputManager::getConfigPath()) && InputManager::getInstance()->getNumConfiguredDevices() > 0) + { + ViewController::get()->goToStart(); + }else{ + window.pushGui(new GuiDetectDevice(&window, true, [] { ViewController::get()->goToStart(); })); + } + } + + //generate joystick events since we're done loading + SDL_JoystickEventState(SDL_ENABLE); + + int lastTime = SDL_GetTicks(); + bool running = true; + + while(running) + { + SDL_Event event; + while(SDL_PollEvent(&event)) + { + switch(event.type) + { + case SDL_JOYHATMOTION: + case SDL_JOYBUTTONDOWN: + case SDL_JOYBUTTONUP: + case SDL_KEYDOWN: + case SDL_KEYUP: + case SDL_JOYAXISMOTION: + case SDL_TEXTINPUT: + case SDL_TEXTEDITING: + case SDL_JOYDEVICEADDED: + case SDL_JOYDEVICEREMOVED: + InputManager::getInstance()->parseEvent(event, &window); + break; + case SDL_QUIT: + running = false; + break; + } + } + + if(window.isSleeping()) + { + lastTime = SDL_GetTicks(); + SDL_Delay(1); // this doesn't need to be accurate, we're just giving up our CPU time until something wakes us up + continue; + } + + int curTime = SDL_GetTicks(); + int deltaTime = curTime - lastTime; + lastTime = curTime; + + // cap deltaTime at 1000 + if(deltaTime > 1000 || deltaTime < 0) + deltaTime = 1000; + + window.update(deltaTime); + window.render(); + Renderer::swapBuffers(); + + Log::flush(); + } + + while(window.peekGui() != ViewController::get()) + delete window.peekGui(); + window.deinit(); + + SystemData::deleteSystems(); + + LOG(LogInfo) << "EmulationStation cleanly shutting down."; + + return 0; +} diff --git a/es-app/src/scrapers/GamesDBScraper.cpp b/es-app/src/scrapers/GamesDBScraper.cpp new file mode 100644 index 000000000..7a597512c --- /dev/null +++ b/es-app/src/scrapers/GamesDBScraper.cpp @@ -0,0 +1,163 @@ +#include "scrapers/GamesDBScraper.h" +#include "Log.h" +#include "pugixml/pugixml.hpp" +#include "MetaData.h" +#include "Settings.h" +#include "Util.h" +#include + +using namespace PlatformIds; +const std::map gamesdb_platformid_map = boost::assign::map_list_of + (THREEDO, "3DO") + (AMIGA, "Amiga") + (AMSTRAD_CPC, "Amstrad CPC") + // missing apple2 + (ARCADE, "Arcade") + // missing atari 800 + (ATARI_2600, "Atari 2600") + (ATARI_5200, "Atari 5200") + (ATARI_7800, "Atari 7800") + (ATARI_JAGUAR, "Atari Jaguar") + (ATARI_JAGUAR_CD, "Atari Jaguar CD") + (ATARI_LYNX, "Atari Lynx") + // missing atari ST/STE/Falcon + (ATARI_XE, "Atari XE") + (COLECOVISION, "Colecovision") + (COMMODORE_64, "Commodore 64") + (INTELLIVISION, "Intellivision") + (MAC_OS, "Mac OS") + (XBOX, "Microsoft Xbox") + (XBOX_360, "Microsoft Xbox 360") + (NEOGEO, "NeoGeo") + (NEOGEO_POCKET, "Neo Geo Pocket") + (NEOGEO_POCKET_COLOR, "Neo Geo Pocket Color") + (NINTENDO_3DS, "Nintendo 3DS") + (NINTENDO_64, "Nintendo 64") + (NINTENDO_DS, "Nintendo DS") + (NINTENDO_ENTERTAINMENT_SYSTEM, "Nintendo Entertainment System (NES)") + (GAME_BOY, "Nintendo Game Boy") + (GAME_BOY_ADVANCE, "Nintendo Game Boy Advance") + (GAME_BOY_COLOR, "Nintendo Game Boy Color") + (NINTENDO_GAMECUBE, "Nintendo GameCube") + (NINTENDO_WII, "Nintendo Wii") + (NINTENDO_WII_U, "Nintendo Wii U") + (PC, "PC") + (SEGA_32X, "Sega 32X") + (SEGA_CD, "Sega CD") + (SEGA_DREAMCAST, "Sega Dreamcast") + (SEGA_GAME_GEAR, "Sega Game Gear") + (SEGA_GENESIS, "Sega Genesis") + (SEGA_MASTER_SYSTEM, "Sega Master System") + (SEGA_MEGA_DRIVE, "Sega Mega Drive") + (SEGA_SATURN, "Sega Saturn") + (PLAYSTATION, "Sony Playstation") + (PLAYSTATION_2, "Sony Playstation 2") + (PLAYSTATION_3, "Sony Playstation 3") + (PLAYSTATION_4, "Sony Playstation 4") + (PLAYSTATION_VITA, "Sony Playstation Vita") + (PLAYSTATION_PORTABLE, "Sony PSP") + (SUPER_NINTENDO, "Super Nintendo (SNES)") + (TURBOGRAFX_16, "TurboGrafx 16") + (WONDERSWAN, "WonderSwan") + (WONDERSWAN_COLOR, "WonderSwan Color") + (ZX_SPECTRUM, "Sinclair ZX Spectrum"); + + +void thegamesdb_generate_scraper_requests(const ScraperSearchParams& params, std::queue< std::unique_ptr >& requests, + std::vector& results) +{ + std::string path = "thegamesdb.net/api/GetGame.php?"; + + std::string cleanName = params.nameOverride; + if(cleanName.empty()) + cleanName = params.game->getCleanName(); + + path += "name=" + HttpReq::urlEncode(cleanName); + + if(params.system->getPlatformIds().empty()) + { + // no platform specified, we're done + requests.push(std::unique_ptr(new TheGamesDBRequest(results, path))); + }else{ + // go through the list, we need to split this into multiple requests + // because TheGamesDB API either sucks or I don't know how to use it properly... + std::string urlBase = path; + auto& platforms = params.system->getPlatformIds(); + for(auto platformIt = platforms.begin(); platformIt != platforms.end(); platformIt++) + { + path = urlBase; + auto mapIt = gamesdb_platformid_map.find(*platformIt); + if(mapIt != gamesdb_platformid_map.end()) + { + path += "&platform="; + path += HttpReq::urlEncode(mapIt->second); + }else{ + LOG(LogWarning) << "TheGamesDB scraper warning - no support for platform " << getPlatformName(*platformIt); + } + + requests.push(std::unique_ptr(new TheGamesDBRequest(results, path))); + } + } +} + +void TheGamesDBRequest::process(const std::unique_ptr& req, std::vector& results) +{ + assert(req->status() == HttpReq::REQ_SUCCESS); + + pugi::xml_document doc; + pugi::xml_parse_result parseResult = doc.load(req->getContent().c_str()); + if(!parseResult) + { + std::stringstream ss; + ss << "GamesDBRequest - Error parsing XML. \n\t" << parseResult.description() << ""; + std::string err = ss.str(); + setError(err); + LOG(LogError) << err; + return; + } + + pugi::xml_node data = doc.child("Data"); + + std::string baseImageUrl = data.child("baseImgUrl").text().get(); + + pugi::xml_node game = data.child("Game"); + while(game && results.size() < MAX_SCRAPER_RESULTS) + { + ScraperSearchResult result; + + result.mdl.set("name", game.child("GameTitle").text().get()); + result.mdl.set("desc", game.child("Overview").text().get()); + + boost::posix_time::ptime rd = string_to_ptime(game.child("ReleaseDate").text().get(), "%m/%d/%Y"); + result.mdl.setTime("releasedate", rd); + + result.mdl.set("developer", game.child("Developer").text().get()); + result.mdl.set("publisher", game.child("Publisher").text().get()); + result.mdl.set("genre", game.child("Genres").first_child().text().get()); + result.mdl.set("players", game.child("Players").text().get()); + + if(Settings::getInstance()->getBool("ScrapeRatings") && game.child("Rating")) + { + float ratingVal = (game.child("Rating").text().as_int() / 10.0f); + std::stringstream ss; + ss << ratingVal; + result.mdl.set("rating", ss.str()); + } + + pugi::xml_node images = game.child("Images"); + + if(images) + { + pugi::xml_node art = images.find_child_by_attribute("boxart", "side", "front"); + + if(art) + { + result.thumbnailUrl = baseImageUrl + art.attribute("thumb").as_string(); + result.imageUrl = baseImageUrl + art.text().get(); + } + } + + results.push_back(result); + game = game.next_sibling("Game"); + } +} diff --git a/es-app/src/scrapers/GamesDBScraper.h b/es-app/src/scrapers/GamesDBScraper.h new file mode 100644 index 000000000..cf5f69ede --- /dev/null +++ b/es-app/src/scrapers/GamesDBScraper.h @@ -0,0 +1,14 @@ +#pragma once + +#include "scrapers/Scraper.h" + +void thegamesdb_generate_scraper_requests(const ScraperSearchParams& params, std::queue< std::unique_ptr >& requests, + std::vector& results); + +class TheGamesDBRequest : public ScraperHttpRequest +{ +public: + TheGamesDBRequest(std::vector& resultsWrite, const std::string& url) : ScraperHttpRequest(resultsWrite, url) {} +protected: + void process(const std::unique_ptr& req, std::vector& results) override; +}; diff --git a/es-app/src/scrapers/Scraper.cpp b/es-app/src/scrapers/Scraper.cpp new file mode 100644 index 000000000..c827a4755 --- /dev/null +++ b/es-app/src/scrapers/Scraper.cpp @@ -0,0 +1,293 @@ +#include "scrapers/Scraper.h" +#include "Log.h" +#include "Settings.h" +#include +#include +#include + +#include "GamesDBScraper.h" +#include "TheArchiveScraper.h" + +const std::map scraper_request_funcs = boost::assign::map_list_of + ("TheGamesDB", &thegamesdb_generate_scraper_requests) + ("TheArchive", &thearchive_generate_scraper_requests); + +std::unique_ptr startScraperSearch(const ScraperSearchParams& params) +{ + const std::string& name = Settings::getInstance()->getString("Scraper"); + + std::unique_ptr handle(new ScraperSearchHandle()); + scraper_request_funcs.at(name)(params, handle->mRequestQueue, handle->mResults); + return handle; +} + +std::vector getScraperList() +{ + std::vector list; + for(auto it = scraper_request_funcs.begin(); it != scraper_request_funcs.end(); it++) + { + list.push_back(it->first); + } + + return list; +} + +// ScraperSearchHandle +ScraperSearchHandle::ScraperSearchHandle() +{ + setStatus(ASYNC_IN_PROGRESS); +} + +void ScraperSearchHandle::update() +{ + if(mStatus == ASYNC_DONE) + return; + + while(!mRequestQueue.empty()) + { + auto& req = mRequestQueue.front(); + AsyncHandleStatus status = req->status(); + + if(status == ASYNC_ERROR) + { + // propegate error + setError(req->getStatusString()); + + // empty our queue + while(!mRequestQueue.empty()) + mRequestQueue.pop(); + + return; + } + + // finished this one, see if we have any more + if(status == ASYNC_DONE) + { + mRequestQueue.pop(); + continue; + } + + // status == ASYNC_IN_PROGRESS + } + + // we finished without any errors! + if(mRequestQueue.empty()) + { + setStatus(ASYNC_DONE); + return; + } +} + + + +// ScraperRequest +ScraperRequest::ScraperRequest(std::vector& resultsWrite) : mResults(resultsWrite) +{ +} + + +// ScraperHttpRequest +ScraperHttpRequest::ScraperHttpRequest(std::vector& resultsWrite, const std::string& url) + : ScraperRequest(resultsWrite) +{ + setStatus(ASYNC_IN_PROGRESS); + mReq = std::unique_ptr(new HttpReq(url)); +} + +void ScraperHttpRequest::update() +{ + HttpReq::Status status = mReq->status(); + if(status == HttpReq::REQ_SUCCESS) + { + setStatus(ASYNC_DONE); // if process() has an error, status will be changed to ASYNC_ERROR + process(mReq, mResults); + return; + } + + // not ready yet + if(status == HttpReq::REQ_IN_PROGRESS) + return; + + // everything else is some sort of error + LOG(LogError) << "ScraperHttpRequest network error (status: " << status << ") - " << mReq->getErrorMsg(); + setError(mReq->getErrorMsg()); +} + + +// metadata resolving stuff + +std::unique_ptr resolveMetaDataAssets(const ScraperSearchResult& result, const ScraperSearchParams& search) +{ + return std::unique_ptr(new MDResolveHandle(result, search)); +} + +MDResolveHandle::MDResolveHandle(const ScraperSearchResult& result, const ScraperSearchParams& search) : mResult(result) +{ + if(!result.imageUrl.empty()) + { + std::string imgPath = getSaveAsPath(search, "image", result.imageUrl); + mFuncs.push_back(ResolvePair(downloadImageAsync(result.imageUrl, imgPath), [this, imgPath] + { + mResult.mdl.set("image", imgPath); + mResult.imageUrl = ""; + })); + } +} + +void MDResolveHandle::update() +{ + if(mStatus == ASYNC_DONE || mStatus == ASYNC_ERROR) + return; + + auto it = mFuncs.begin(); + while(it != mFuncs.end()) + { + if(it->first->status() == ASYNC_ERROR) + { + setError(it->first->getStatusString()); + return; + }else if(it->first->status() == ASYNC_DONE) + { + it->second(); + it = mFuncs.erase(it); + continue; + } + it++; + } + + if(mFuncs.empty()) + setStatus(ASYNC_DONE); +} + +std::unique_ptr downloadImageAsync(const std::string& url, const std::string& saveAs) +{ + return std::unique_ptr(new ImageDownloadHandle(url, saveAs, + Settings::getInstance()->getInt("ScraperResizeWidth"), Settings::getInstance()->getInt("ScraperResizeHeight"))); +} + +ImageDownloadHandle::ImageDownloadHandle(const std::string& url, const std::string& path, int maxWidth, int maxHeight) : + mSavePath(path), mMaxWidth(maxWidth), mMaxHeight(maxHeight), mReq(new HttpReq(url)) +{ +} + +void ImageDownloadHandle::update() +{ + if(mReq->status() == HttpReq::REQ_IN_PROGRESS) + return; + + if(mReq->status() != HttpReq::REQ_SUCCESS) + { + std::stringstream ss; + ss << "Network error: " << mReq->getErrorMsg(); + setError(ss.str()); + return; + } + + // download is done, save it to disk + std::ofstream stream(mSavePath, std::ios_base::out | std::ios_base::binary); + if(stream.bad()) + { + setError("Failed to open image path to write. Permission error? Disk full?"); + return; + } + + const std::string& content = mReq->getContent(); + stream.write(content.data(), content.length()); + stream.close(); + if(stream.bad()) + { + setError("Failed to save image. Disk full?"); + return; + } + + // resize it + if(!resizeImage(mSavePath, mMaxWidth, mMaxHeight)) + { + setError("Error saving resized image. Out of memory? Disk full?"); + return; + } + + setStatus(ASYNC_DONE); +} + +//you can pass 0 for width or height to keep aspect ratio +bool resizeImage(const std::string& path, int maxWidth, int maxHeight) +{ + // nothing to do + if(maxWidth == 0 && maxHeight == 0) + return true; + + FREE_IMAGE_FORMAT format = FIF_UNKNOWN; + FIBITMAP* image = NULL; + + //detect the filetype + format = FreeImage_GetFileType(path.c_str(), 0); + if(format == FIF_UNKNOWN) + format = FreeImage_GetFIFFromFilename(path.c_str()); + if(format == FIF_UNKNOWN) + { + LOG(LogError) << "Error - could not detect filetype for image \"" << path << "\"!"; + return false; + } + + //make sure we can read this filetype first, then load it + if(FreeImage_FIFSupportsReading(format)) + { + image = FreeImage_Load(format, path.c_str()); + }else{ + LOG(LogError) << "Error - file format reading not supported for image \"" << path << "\"!"; + return false; + } + + float width = (float)FreeImage_GetWidth(image); + float height = (float)FreeImage_GetHeight(image); + + if(maxWidth == 0) + { + maxWidth = (int)((maxHeight / height) * width); + }else if(maxHeight == 0) + { + maxHeight = (int)((maxWidth / width) * height); + } + + FIBITMAP* imageRescaled = FreeImage_Rescale(image, maxWidth, maxHeight, FILTER_BILINEAR); + FreeImage_Unload(image); + + if(imageRescaled == NULL) + { + LOG(LogError) << "Could not resize image! (not enough memory? invalid bitdepth?)"; + return false; + } + + bool saved = FreeImage_Save(format, imageRescaled, path.c_str()); + FreeImage_Unload(imageRescaled); + + if(!saved) + LOG(LogError) << "Failed to save resized image!"; + + return saved; +} + +std::string getSaveAsPath(const ScraperSearchParams& params, const std::string& suffix, const std::string& url) +{ + const std::string subdirectory = params.system->getName(); + const std::string name = params.game->getPath().stem().generic_string() + "-" + suffix; + + std::string path = getHomePath() + "/.emulationstation/downloaded_images/"; + + if(!boost::filesystem::exists(path)) + boost::filesystem::create_directory(path); + + path += subdirectory + "/"; + + if(!boost::filesystem::exists(path)) + boost::filesystem::create_directory(path); + + size_t dot = url.find_last_of('.'); + std::string ext; + if(dot != std::string::npos) + ext = url.substr(dot, std::string::npos); + + path += name + ext; + return path; +} diff --git a/es-app/src/scrapers/Scraper.h b/es-app/src/scrapers/Scraper.h new file mode 100644 index 000000000..87ab2502a --- /dev/null +++ b/es-app/src/scrapers/Scraper.h @@ -0,0 +1,156 @@ +#pragma once + +#include "MetaData.h" +#include "SystemData.h" +#include "HttpReq.h" +#include "AsyncHandle.h" +#include +#include +#include + +#define MAX_SCRAPER_RESULTS 7 + +struct ScraperSearchParams +{ + SystemData* system; + FileData* game; + + std::string nameOverride; +}; + +struct ScraperSearchResult +{ + ScraperSearchResult() : mdl(GAME_METADATA) {}; + + MetaDataList mdl; + std::string imageUrl; + std::string thumbnailUrl; +}; + +// So let me explain why I've abstracted this so heavily. +// There are two ways I can think of that you'd want to write a scraper. + +// 1. Do some HTTP request(s) -> process it -> return the results +// 2. Do some local filesystem queries (an offline scraper) -> return the results + +// The first way needs to be asynchronous while it's waiting for the HTTP request to return. +// The second doesn't. + +// It would be nice if we could write it like this: +// search = generate_http_request(searchparams); +// wait_until_done(search); +// ... process search ... +// return results; + +// We could do this if we used threads. Right now ES doesn't because I'm pretty sure I'll fuck it up, +// and I'm not sure of the performance of threads on the Pi (single-core ARM). +// We could also do this if we used coroutines. +// I can't find a really good cross-platform coroutine library (x86/64/ARM Linux + Windows), +// and I don't want to spend more time chasing libraries than just writing it the long way once. + +// So, I did it the "long" way. +// ScraperSearchHandle - one logical search, e.g. "search for mario" +// ScraperRequest - encapsulates some sort of asynchronous request that will ultimately return some results +// ScraperHttpRequest - implementation of ScraperRequest that waits on an HttpReq, then processes it with some processing function. + + +// a scraper search gathers results from (potentially multiple) ScraperRequests +class ScraperRequest : public AsyncHandle +{ +public: + ScraperRequest(std::vector& resultsWrite); + + // returns "true" once we're done + virtual void update() = 0; + +protected: + std::vector& mResults; +}; + + +// a single HTTP request that needs to be processed to get the results +class ScraperHttpRequest : public ScraperRequest +{ +public: + ScraperHttpRequest(std::vector& resultsWrite, const std::string& url); + virtual void update() override; + +protected: + virtual void process(const std::unique_ptr& req, std::vector& results) = 0; + +private: + std::unique_ptr mReq; +}; + +// a request to get a list of results +class ScraperSearchHandle : public AsyncHandle +{ +public: + ScraperSearchHandle(); + + void update(); + inline const std::vector& getResults() const { assert(mStatus != ASYNC_IN_PROGRESS); return mResults; } + +protected: + friend std::unique_ptr startScraperSearch(const ScraperSearchParams& params); + + std::queue< std::unique_ptr > mRequestQueue; + std::vector mResults; +}; + +// will use the current scraper settings to pick the result source +std::unique_ptr startScraperSearch(const ScraperSearchParams& params); + +// returns a list of valid scraper names +std::vector getScraperList(); + +typedef void (*generate_scraper_requests_func)(const ScraperSearchParams& params, std::queue< std::unique_ptr >& requests, std::vector& results); + +// ------------------------------------------------------------------------- + + + +// Meta data asset downloading stuff. +class MDResolveHandle : public AsyncHandle +{ +public: + MDResolveHandle(const ScraperSearchResult& result, const ScraperSearchParams& search); + + void update() override; + inline const ScraperSearchResult& getResult() const { assert(mStatus == ASYNC_DONE); return mResult; } + +private: + ScraperSearchResult mResult; + + typedef std::pair< std::unique_ptr, std::function > ResolvePair; + std::vector mFuncs; +}; + +class ImageDownloadHandle : public AsyncHandle +{ +public: + ImageDownloadHandle(const std::string& url, const std::string& path, int maxWidth, int maxHeight); + + void update() override; + +private: + std::unique_ptr mReq; + std::string mSavePath; + int mMaxWidth; + int mMaxHeight; +}; + +//About the same as "~/.emulationstation/downloaded_images/[system_name]/[game_name].[url's extension]". +//Will create the "downloaded_images" and "subdirectory" directories if they do not exist. +std::string getSaveAsPath(const ScraperSearchParams& params, const std::string& suffix, const std::string& url); + +//Will resize according to Settings::getInt("ScraperResizeWidth") and Settings::getInt("ScraperResizeHeight"). +std::unique_ptr downloadImageAsync(const std::string& url, const std::string& saveAs); + +// Resolves all metadata assets that need to be downloaded. +std::unique_ptr resolveMetaDataAssets(const ScraperSearchResult& result, const ScraperSearchParams& search); + +//You can pass 0 for maxWidth or maxHeight to automatically keep the aspect ratio. +//Will overwrite the image at [path] with the new resized one. +//Returns true if successful, false otherwise. +bool resizeImage(const std::string& path, int maxWidth, int maxHeight); diff --git a/es-app/src/scrapers/TheArchiveScraper.cpp b/es-app/src/scrapers/TheArchiveScraper.cpp new file mode 100644 index 000000000..fe490ca55 --- /dev/null +++ b/es-app/src/scrapers/TheArchiveScraper.cpp @@ -0,0 +1,66 @@ +#include "TheArchiveScraper.h" +#include "Log.h" +#include "pugixml/pugixml.hpp" + +void thearchive_generate_scraper_requests(const ScraperSearchParams& params, std::queue< std::unique_ptr >& requests, + std::vector& results) +{ + std::string path = "api.archive.vg/2.0/Archive.search/xml/7TTRM4MNTIKR2NNAGASURHJOZJ3QXQC5/"; + + std::string cleanName = params.nameOverride; + if(cleanName.empty()) + cleanName = params.game->getCleanName(); + + path += HttpReq::urlEncode(cleanName); + //platform TODO, should use some params.system get method + + requests.push(std::unique_ptr(new TheArchiveRequest(results, path))); +} + +void TheArchiveRequest::process(const std::unique_ptr& req, std::vector& results) +{ + assert(req->status() == HttpReq::REQ_SUCCESS); + + pugi::xml_document doc; + pugi::xml_parse_result parseResult = doc.load(req->getContent().c_str()); + if(!parseResult) + { + std::stringstream ss; + ss << "TheArchiveRequest - error parsing XML.\n\t" << parseResult.description(); + std::string err = ss.str(); + setError(err); + LOG(LogError) << err; + return; + } + + pugi::xml_node data = doc.child("OpenSearchDescription").child("games"); + + pugi::xml_node game = data.child("game"); + while(game && results.size() < MAX_SCRAPER_RESULTS) + { + ScraperSearchResult result; + + result.mdl.set("name", game.child("title").text().get()); + result.mdl.set("desc", game.child("description").text().get()); + + //Archive.search does not return ratings + + result.mdl.set("developer", game.child("developer").text().get()); + + std::string genre = game.child("genre").text().get(); + size_t search = genre.find_last_of(" > "); + genre = genre.substr(search == std::string::npos ? 0 : search, std::string::npos); + result.mdl.set("genre", genre); + + pugi::xml_node image = game.child("box_front"); + pugi::xml_node thumbnail = game.child("box_front_small"); + + if(image) + result.imageUrl = image.text().get(); + if(thumbnail) + result.thumbnailUrl = thumbnail.text().get(); + + results.push_back(result); + game = game.next_sibling("game"); + } +} diff --git a/es-app/src/scrapers/TheArchiveScraper.h b/es-app/src/scrapers/TheArchiveScraper.h new file mode 100644 index 000000000..9837539a4 --- /dev/null +++ b/es-app/src/scrapers/TheArchiveScraper.h @@ -0,0 +1,16 @@ +#pragma once + +#include "scrapers/Scraper.h" + +void thearchive_generate_scraper_requests(const ScraperSearchParams& params, std::queue< std::unique_ptr >& requests, + std::vector& results); + +void thearchive_process_httpreq(const std::unique_ptr& req, std::vector& results); + +class TheArchiveRequest : public ScraperHttpRequest +{ +public: + TheArchiveRequest(std::vector& resultsWrite, const std::string& url) : ScraperHttpRequest(resultsWrite, url) {} +protected: + void process(const std::unique_ptr& req, std::vector& results) override; +}; \ No newline at end of file diff --git a/es-app/src/views/SystemView.cpp b/es-app/src/views/SystemView.cpp new file mode 100644 index 000000000..54987fdf8 --- /dev/null +++ b/es-app/src/views/SystemView.cpp @@ -0,0 +1,345 @@ +#include "views/SystemView.h" +#include "SystemData.h" +#include "Renderer.h" +#include "Log.h" +#include "Window.h" +#include "views/ViewController.h" +#include "animations/LambdaAnimation.h" +#include "SystemData.h" +#include "Settings.h" +#include "Util.h" + +#define SELECTED_SCALE 1.5f +#define LOGO_PADDING ((logoSize().x() * (SELECTED_SCALE - 1)/2) + (mSize.x() * 0.06f)) +#define BAND_HEIGHT (logoSize().y() * SELECTED_SCALE) + +SystemView::SystemView(Window* window) : IList(window, LIST_SCROLL_STYLE_SLOW, LIST_ALWAYS_LOOP), + mSystemInfo(window, "SYSTEM INFO", Font::get(FONT_SIZE_SMALL), 0x33333300, ALIGN_CENTER) +{ + mCamOffset = 0; + mExtrasCamOffset = 0; + mExtrasFadeOpacity = 0.0f; + + setSize((float)Renderer::getScreenWidth(), (float)Renderer::getScreenHeight()); + + mSystemInfo.setSize(mSize.x(), mSystemInfo.getSize().y() * 1.333f); + mSystemInfo.setPosition(0, (mSize.y() + BAND_HEIGHT) / 2); + + populate(); +} + +void SystemView::populate() +{ + mEntries.clear(); + + for(auto it = SystemData::sSystemVector.begin(); it != SystemData::sSystemVector.end(); it++) + { + const std::shared_ptr& theme = (*it)->getTheme(); + + Entry e; + e.name = (*it)->getName(); + e.object = *it; + + // make logo + if(theme->getElement("system", "logo", "image")) + { + ImageComponent* logo = new ImageComponent(mWindow); + logo->setMaxSize(Eigen::Vector2f(logoSize().x(), logoSize().y())); + logo->applyTheme((*it)->getTheme(), "system", "logo", ThemeFlags::PATH); + logo->setPosition((logoSize().x() - logo->getSize().x()) / 2, (logoSize().y() - logo->getSize().y()) / 2); // center + e.data.logo = std::shared_ptr(logo); + + ImageComponent* logoSelected = new ImageComponent(mWindow); + logoSelected->setMaxSize(Eigen::Vector2f(logoSize().x() * SELECTED_SCALE, logoSize().y() * SELECTED_SCALE * 0.70f)); + logoSelected->applyTheme((*it)->getTheme(), "system", "logo", ThemeFlags::PATH); + logoSelected->setPosition((logoSize().x() - logoSelected->getSize().x()) / 2, + (logoSize().y() - logoSelected->getSize().y()) / 2); // center + e.data.logoSelected = std::shared_ptr(logoSelected); + }else{ + // no logo in theme; use text + TextComponent* text = new TextComponent(mWindow, + (*it)->getName(), + Font::get(FONT_SIZE_LARGE), + 0x000000FF, + ALIGN_CENTER); + text->setSize(logoSize()); + e.data.logo = std::shared_ptr(text); + + TextComponent* textSelected = new TextComponent(mWindow, + (*it)->getName(), + Font::get((int)(FONT_SIZE_LARGE * SELECTED_SCALE)), + 0x000000FF, + ALIGN_CENTER); + textSelected->setSize(logoSize()); + e.data.logoSelected = std::shared_ptr(textSelected); + } + + // make background extras + e.data.backgroundExtras = std::shared_ptr(new ThemeExtras(mWindow)); + e.data.backgroundExtras->setExtras(ThemeData::makeExtras((*it)->getTheme(), "system", mWindow)); + + this->add(e); + } +} + +void SystemView::goToSystem(SystemData* system, bool animate) +{ + setCursor(system); + + if(!animate) + finishAnimation(0); +} + +bool SystemView::input(InputConfig* config, Input input) +{ + if(input.value != 0) + { + if(config->getDeviceId() == DEVICE_KEYBOARD && input.value && input.id == SDLK_r && SDL_GetModState() & KMOD_LCTRL && Settings::getInstance()->getBool("Debug")) + { + LOG(LogInfo) << " Reloading SystemList view"; + + // reload themes + for(auto it = mEntries.begin(); it != mEntries.end(); it++) + it->object->loadTheme(); + + populate(); + updateHelpPrompts(); + return true; + } + if(config->isMappedTo("left", input)) + { + listInput(-1); + return true; + } + if(config->isMappedTo("right", input)) + { + listInput(1); + return true; + } + if(config->isMappedTo("a", input)) + { + stopScrolling(); + ViewController::get()->goToGameList(getSelected()); + return true; + } + }else{ + if(config->isMappedTo("left", input) || config->isMappedTo("right", input)) + listInput(0); + } + + return GuiComponent::input(config, input); +} + +void SystemView::update(int deltaTime) +{ + listUpdate(deltaTime); + GuiComponent::update(deltaTime); +} + +void SystemView::onCursorChanged(const CursorState& state) +{ + // update help style + updateHelpPrompts(); + + float startPos = mCamOffset; + + float posMax = (float)mEntries.size(); + float target = (float)mCursor; + + // what's the shortest way to get to our target? + // it's one of these... + + float endPos = target; // directly + float dist = abs(endPos - startPos); + + if(abs(target + posMax - startPos) < dist) + endPos = target + posMax; // loop around the end (0 -> max) + if(abs(target - posMax - startPos) < dist) + endPos = target - posMax; // loop around the start (max - 1 -> -1) + + + // animate mSystemInfo's opacity (fade out, wait, fade back in) + + cancelAnimation(1); + cancelAnimation(2); + + const float infoStartOpacity = mSystemInfo.getOpacity() / 255.f; + + Animation* infoFadeOut = new LambdaAnimation( + [infoStartOpacity, this] (float t) + { + mSystemInfo.setOpacity((unsigned char)(lerp(infoStartOpacity, 0.f, t) * 255)); + }, (int)(infoStartOpacity * 150)); + + unsigned int gameCount = getSelected()->getGameCount(); + + // also change the text after we've fully faded out + setAnimation(infoFadeOut, 0, [this, gameCount] { + std::stringstream ss; + + // only display a game count if there are at least 2 games + if(gameCount > 1) + ss << gameCount << " GAMES AVAILABLE"; + + mSystemInfo.setText(ss.str()); + }, false, 1); + + // only display a game count if there are at least 2 games + if(gameCount > 1) + { + Animation* infoFadeIn = new LambdaAnimation( + [this](float t) + { + mSystemInfo.setOpacity((unsigned char)(lerp(0.f, 1.f, t) * 255)); + }, 300); + + // wait 600ms to fade in + setAnimation(infoFadeIn, 2000, nullptr, false, 2); + } + + // no need to animate transition, we're not going anywhere (probably mEntries.size() == 1) + if(endPos == mCamOffset && endPos == mExtrasCamOffset) + return; + + Animation* anim; + if(Settings::getInstance()->getString("TransitionStyle") == "fade") + { + float startExtrasFade = mExtrasFadeOpacity; + anim = new LambdaAnimation( + [startExtrasFade, startPos, endPos, posMax, this](float t) + { + t -= 1; + float f = lerp(startPos, endPos, t*t*t + 1); + if(f < 0) + f += posMax; + if(f >= posMax) + f -= posMax; + + this->mCamOffset = f; + + t += 1; + if(t < 0.3f) + this->mExtrasFadeOpacity = lerp(0.0f, 1.0f, t / 0.3f + startExtrasFade); + else if(t < 0.7f) + this->mExtrasFadeOpacity = 1.0f; + else + this->mExtrasFadeOpacity = lerp(1.0f, 0.0f, (t - 0.7f) / 0.3f); + + if(t > 0.5f) + this->mExtrasCamOffset = endPos; + + }, 500); + } + else{ // slide + anim = new LambdaAnimation( + [startPos, endPos, posMax, this](float t) + { + t -= 1; + float f = lerp(startPos, endPos, t*t*t + 1); + if(f < 0) + f += posMax; + if(f >= posMax) + f -= posMax; + + this->mCamOffset = f; + this->mExtrasCamOffset = f; + }, 500); + } + + setAnimation(anim, 0, nullptr, false, 0); +} + +void SystemView::render(const Eigen::Affine3f& parentTrans) +{ + if(size() == 0) + return; + + Eigen::Affine3f trans = getTransform() * parentTrans; + + // draw the list elements (titles, backgrounds, logos) + const float logoSizeX = logoSize().x() + LOGO_PADDING; + + int logoCount = (int)(mSize.x() / logoSizeX) + 2; // how many logos we need to draw + int center = (int)(mCamOffset); + + if(mEntries.size() == 1) + logoCount = 1; + + // draw background extras + Eigen::Affine3f extrasTrans = trans; + int extrasCenter = (int)mExtrasCamOffset; + for(int i = extrasCenter - 1; i < extrasCenter + 2; i++) + { + int index = i; + while(index < 0) + index += mEntries.size(); + while(index >= (int)mEntries.size()) + index -= mEntries.size(); + + extrasTrans.translation() = trans.translation() + Eigen::Vector3f((i - mExtrasCamOffset) * mSize.x(), 0, 0); + + Eigen::Vector2i clipRect = Eigen::Vector2i((int)((i - mExtrasCamOffset) * mSize.x()), 0); + Renderer::pushClipRect(clipRect, mSize.cast()); + mEntries.at(index).data.backgroundExtras->render(extrasTrans); + Renderer::popClipRect(); + } + + // fade extras if necessary + if(mExtrasFadeOpacity) + { + Renderer::setMatrix(trans); + Renderer::drawRect(0.0f, 0.0f, mSize.x(), mSize.y(), 0x00000000 | (unsigned char)(mExtrasFadeOpacity * 255)); + } + + // draw logos + float xOff = (mSize.x() - logoSize().x())/2 - (mCamOffset * logoSizeX); + float yOff = (mSize.y() - logoSize().y())/2; + + // background behind the logos + Renderer::setMatrix(trans); + Renderer::drawRect(0.f, (mSize.y() - BAND_HEIGHT) / 2, mSize.x(), BAND_HEIGHT, 0xFFFFFFD8); + + Eigen::Affine3f logoTrans = trans; + for(int i = center - logoCount/2; i < center + logoCount/2 + 1; i++) + { + int index = i; + while(index < 0) + index += mEntries.size(); + while(index >= (int)mEntries.size()) + index -= mEntries.size(); + + logoTrans.translation() = trans.translation() + Eigen::Vector3f(i * logoSizeX + xOff, yOff, 0); + + if(index == mCursor) //scale our selection up + { + // selected + const std::shared_ptr& comp = mEntries.at(index).data.logoSelected; + comp->setOpacity(0xFF); + comp->render(logoTrans); + }else{ + // not selected + const std::shared_ptr& comp = mEntries.at(index).data.logo; + comp->setOpacity(0x80); + comp->render(logoTrans); + } + } + + Renderer::setMatrix(trans); + Renderer::drawRect(mSystemInfo.getPosition().x(), mSystemInfo.getPosition().y() - 1, mSize.x(), mSystemInfo.getSize().y(), 0xDDDDDD00 | (unsigned char)(mSystemInfo.getOpacity() / 255.f * 0xD8)); + mSystemInfo.render(trans); +} + +std::vector SystemView::getHelpPrompts() +{ + std::vector prompts; + prompts.push_back(HelpPrompt("left/right", "choose")); + prompts.push_back(HelpPrompt("a", "select")); + return prompts; +} + +HelpStyle SystemView::getHelpStyle() +{ + HelpStyle style; + style.applyTheme(mEntries.at(mCursor).object->getTheme(), "system"); + return style; +} diff --git a/es-app/src/views/SystemView.h b/es-app/src/views/SystemView.h new file mode 100644 index 000000000..15200b903 --- /dev/null +++ b/es-app/src/views/SystemView.h @@ -0,0 +1,48 @@ +#pragma once + +#include "GuiComponent.h" +#include "components/ImageComponent.h" +#include "components/TextComponent.h" +#include "components/ScrollableContainer.h" +#include "components/IList.h" +#include "resources/TextureResource.h" + +class SystemData; +class AnimatedImageComponent; + +struct SystemViewData +{ + std::shared_ptr logo; + std::shared_ptr logoSelected; + std::shared_ptr backgroundExtras; +}; + +class SystemView : public IList +{ +public: + SystemView(Window* window); + + void goToSystem(SystemData* system, bool animate); + + bool input(InputConfig* config, Input input) override; + void update(int deltaTime) override; + void render(const Eigen::Affine3f& parentTrans) override; + + std::vector getHelpPrompts() override; + virtual HelpStyle getHelpStyle() override; + +protected: + void onCursorChanged(const CursorState& state) override; + +private: + inline Eigen::Vector2f logoSize() const { return Eigen::Vector2f(mSize.x() * 0.25f, mSize.y() * 0.155f); } + + void populate(); + + TextComponent mSystemInfo; + + // unit is list index + float mCamOffset; + float mExtrasCamOffset; + float mExtrasFadeOpacity; +}; diff --git a/es-app/src/views/ViewController.cpp b/es-app/src/views/ViewController.cpp new file mode 100644 index 000000000..5a94d97c2 --- /dev/null +++ b/es-app/src/views/ViewController.cpp @@ -0,0 +1,403 @@ +#include "views/ViewController.h" +#include "Log.h" +#include "SystemData.h" +#include "Settings.h" + +#include "views/gamelist/BasicGameListView.h" +#include "views/gamelist/DetailedGameListView.h" +#include "views/gamelist/GridGameListView.h" +#include "guis/GuiMenu.h" +#include "guis/GuiMsgBox.h" +#include "animations/LaunchAnimation.h" +#include "animations/MoveCameraAnimation.h" +#include "animations/LambdaAnimation.h" + +ViewController* ViewController::sInstance = NULL; + +ViewController* ViewController::get() +{ + assert(sInstance); + return sInstance; +} + +void ViewController::init(Window* window) +{ + assert(!sInstance); + sInstance = new ViewController(window); +} + +ViewController::ViewController(Window* window) + : GuiComponent(window), mCurrentView(nullptr), mCamera(Eigen::Affine3f::Identity()), mFadeOpacity(0), mLockInput(false) +{ + mState.viewing = NOTHING; +} + +ViewController::~ViewController() +{ + assert(sInstance == this); + sInstance = NULL; +} + +void ViewController::goToStart() +{ + // TODO + /* mState.viewing = START_SCREEN; + mCurrentView.reset(); + playViewTransition(); */ + goToSystemView(SystemData::sSystemVector.at(0)); +} + +int ViewController::getSystemId(SystemData* system) +{ + std::vector& sysVec = SystemData::sSystemVector; + return std::find(sysVec.begin(), sysVec.end(), system) - sysVec.begin(); +} + +void ViewController::goToSystemView(SystemData* system) +{ + mState.viewing = SYSTEM_SELECT; + mState.system = system; + + auto systemList = getSystemListView(); + systemList->setPosition(getSystemId(system) * (float)Renderer::getScreenWidth(), systemList->getPosition().y()); + + systemList->goToSystem(system, false); + mCurrentView = systemList; + + playViewTransition(); +} + +void ViewController::goToNextGameList() +{ + assert(mState.viewing == GAME_LIST); + SystemData* system = getState().getSystem(); + assert(system); + goToGameList(system->getNext()); +} + +void ViewController::goToPrevGameList() +{ + assert(mState.viewing == GAME_LIST); + SystemData* system = getState().getSystem(); + assert(system); + goToGameList(system->getPrev()); +} + +void ViewController::goToGameList(SystemData* system) +{ + if(mState.viewing == SYSTEM_SELECT) + { + // move system list + auto sysList = getSystemListView(); + float offX = sysList->getPosition().x(); + int sysId = getSystemId(system); + sysList->setPosition(sysId * (float)Renderer::getScreenWidth(), sysList->getPosition().y()); + offX = sysList->getPosition().x() - offX; + mCamera.translation().x() -= offX; + } + + mState.viewing = GAME_LIST; + mState.system = system; + + mCurrentView = getGameListView(system); + playViewTransition(); +} + +void ViewController::playViewTransition() +{ + Eigen::Vector3f target(Eigen::Vector3f::Identity()); + if(mCurrentView) + target = mCurrentView->getPosition(); + + // no need to animate, we're not going anywhere (probably goToNextGamelist() or goToPrevGamelist() when there's only 1 system) + if(target == -mCamera.translation() && !isAnimationPlaying(0)) + return; + + if(Settings::getInstance()->getString("TransitionStyle") == "fade") + { + // fade + // stop whatever's currently playing, leaving mFadeOpacity wherever it is + cancelAnimation(0); + + auto fadeFunc = [this](float t) { + mFadeOpacity = lerp(0, 1, t); + }; + + const static int FADE_DURATION = 240; // fade in/out time + const static int FADE_WAIT = 320; // time to wait between in/out + setAnimation(new LambdaAnimation(fadeFunc, FADE_DURATION), 0, [this, fadeFunc, target] { + this->mCamera.translation() = -target; + updateHelpPrompts(); + setAnimation(new LambdaAnimation(fadeFunc, FADE_DURATION), FADE_WAIT, nullptr, true); + }); + + // fast-forward animation if we're partway faded + if(target == -mCamera.translation()) + { + // not changing screens, so cancel the first half entirely + advanceAnimation(0, FADE_DURATION); + advanceAnimation(0, FADE_WAIT); + advanceAnimation(0, FADE_DURATION - (int)(mFadeOpacity * FADE_DURATION)); + }else{ + advanceAnimation(0, (int)(mFadeOpacity * FADE_DURATION)); + } + }else{ + // slide + setAnimation(new MoveCameraAnimation(mCamera, target)); + updateHelpPrompts(); // update help prompts immediately + } +} + +void ViewController::onFileChanged(FileData* file, FileChangeType change) +{ + auto it = mGameListViews.find(file->getSystem()); + if(it != mGameListViews.end()) + it->second->onFileChanged(file, change); +} + +void ViewController::launch(FileData* game, Eigen::Vector3f center) +{ + if(game->getType() != GAME) + { + LOG(LogError) << "tried to launch something that isn't a game"; + return; + } + + Eigen::Affine3f origCamera = mCamera; + origCamera.translation() = -mCurrentView->getPosition(); + + center += mCurrentView->getPosition(); + stopAnimation(1); // make sure the fade in isn't still playing + mLockInput = true; + + if(Settings::getInstance()->getString("TransitionStyle") == "fade") + { + // fade out, launch game, fade back in + auto fadeFunc = [this](float t) { + //t -= 1; + //mFadeOpacity = lerp(0.0f, 1.0f, t*t*t + 1); + mFadeOpacity = lerp(0.0f, 1.0f, t); + }; + setAnimation(new LambdaAnimation(fadeFunc, 800), 0, [this, game, fadeFunc] + { + game->getSystem()->launchGame(mWindow, game); + mLockInput = false; + setAnimation(new LambdaAnimation(fadeFunc, 800), 0, nullptr, true); + this->onFileChanged(game, FILE_METADATA_CHANGED); + }); + }else{ + // move camera to zoom in on center + fade out, launch game, come back in + setAnimation(new LaunchAnimation(mCamera, mFadeOpacity, center, 1500), 0, [this, origCamera, center, game] + { + game->getSystem()->launchGame(mWindow, game); + mCamera = origCamera; + mLockInput = false; + setAnimation(new LaunchAnimation(mCamera, mFadeOpacity, center, 600), 0, nullptr, true); + this->onFileChanged(game, FILE_METADATA_CHANGED); + }); + } +} + +std::shared_ptr ViewController::getGameListView(SystemData* system) +{ + //if we already made one, return that one + auto exists = mGameListViews.find(system); + if(exists != mGameListViews.end()) + return exists->second; + + //if we didn't, make it, remember it, and return it + std::shared_ptr view; + + //decide type + bool detailed = false; + std::vector files = system->getRootFolder()->getFilesRecursive(GAME | FOLDER); + for(auto it = files.begin(); it != files.end(); it++) + { + if(!(*it)->getThumbnailPath().empty()) + { + detailed = true; + break; + } + } + + if(detailed) + view = std::shared_ptr(new DetailedGameListView(mWindow, system->getRootFolder())); + else + view = std::shared_ptr(new BasicGameListView(mWindow, system->getRootFolder())); + + // uncomment for experimental "image grid" view + //view = std::shared_ptr(new GridGameListView(mWindow, system->getRootFolder())); + + view->setTheme(system->getTheme()); + + std::vector& sysVec = SystemData::sSystemVector; + int id = std::find(sysVec.begin(), sysVec.end(), system) - sysVec.begin(); + view->setPosition(id * (float)Renderer::getScreenWidth(), (float)Renderer::getScreenHeight() * 2); + + addChild(view.get()); + + mGameListViews[system] = view; + return view; +} + +std::shared_ptr ViewController::getSystemListView() +{ + //if we already made one, return that one + if(mSystemListView) + return mSystemListView; + + mSystemListView = std::shared_ptr(new SystemView(mWindow)); + addChild(mSystemListView.get()); + mSystemListView->setPosition(0, (float)Renderer::getScreenHeight()); + return mSystemListView; +} + + +bool ViewController::input(InputConfig* config, Input input) +{ + if(mLockInput) + return true; + + // open menu + if(config->isMappedTo("start", input) && input.value != 0) + { + // open menu + mWindow->pushGui(new GuiMenu(mWindow)); + return true; + } + + if(mCurrentView) + return mCurrentView->input(config, input); + + return false; +} + +void ViewController::update(int deltaTime) +{ + if(mCurrentView) + { + mCurrentView->update(deltaTime); + } + + updateSelf(deltaTime); +} + +void ViewController::render(const Eigen::Affine3f& parentTrans) +{ + Eigen::Affine3f trans = mCamera * parentTrans; + + // camera position, position + size + Eigen::Vector3f viewStart = trans.inverse().translation(); + Eigen::Vector3f viewEnd = trans.inverse() * Eigen::Vector3f((float)Renderer::getScreenWidth(), (float)Renderer::getScreenHeight(), 0); + + // draw systemview + getSystemListView()->render(trans); + + // draw gamelists + for(auto it = mGameListViews.begin(); it != mGameListViews.end(); it++) + { + // clipping + Eigen::Vector3f guiStart = it->second->getPosition(); + Eigen::Vector3f guiEnd = it->second->getPosition() + Eigen::Vector3f(it->second->getSize().x(), it->second->getSize().y(), 0); + + if(guiEnd.x() >= viewStart.x() && guiEnd.y() >= viewStart.y() && + guiStart.x() <= viewEnd.x() && guiStart.y() <= viewEnd.y()) + it->second->render(trans); + } + + if(mWindow->peekGui() == this) + mWindow->renderHelpPromptsEarly(); + + // fade out + if(mFadeOpacity) + { + Renderer::setMatrix(parentTrans); + Renderer::drawRect(0, 0, Renderer::getScreenWidth(), Renderer::getScreenHeight(), 0x00000000 | (unsigned char)(mFadeOpacity * 255)); + } +} + +void ViewController::preload() +{ + for(auto it = SystemData::sSystemVector.begin(); it != SystemData::sSystemVector.end(); it++) + { + getGameListView(*it); + } +} + +void ViewController::reloadGameListView(IGameListView* view, bool reloadTheme) +{ + for(auto it = mGameListViews.begin(); it != mGameListViews.end(); it++) + { + if(it->second.get() == view) + { + bool isCurrent = (mCurrentView == it->second); + SystemData* system = it->first; + FileData* cursor = view->getCursor(); + mGameListViews.erase(it); + + if(reloadTheme) + system->loadTheme(); + + std::shared_ptr newView = getGameListView(system); + newView->setCursor(cursor); + + if(isCurrent) + mCurrentView = newView; + + break; + } + } +} + +void ViewController::reloadAll() +{ + std::map cursorMap; + for(auto it = mGameListViews.begin(); it != mGameListViews.end(); it++) + { + cursorMap[it->first] = it->second->getCursor(); + } + mGameListViews.clear(); + + for(auto it = cursorMap.begin(); it != cursorMap.end(); it++) + { + it->first->loadTheme(); + getGameListView(it->first)->setCursor(it->second); + } + + mSystemListView.reset(); + getSystemListView(); + + // update mCurrentView since the pointers changed + if(mState.viewing == GAME_LIST) + { + mCurrentView = getGameListView(mState.getSystem()); + }else if(mState.viewing == SYSTEM_SELECT) + { + mSystemListView->goToSystem(mState.getSystem(), false); + mCurrentView = mSystemListView; + }else{ + goToSystemView(SystemData::sSystemVector.front()); + } + + updateHelpPrompts(); +} + +std::vector ViewController::getHelpPrompts() +{ + std::vector prompts; + if(!mCurrentView) + return prompts; + + prompts = mCurrentView->getHelpPrompts(); + prompts.push_back(HelpPrompt("start", "menu")); + + return prompts; +} + +HelpStyle ViewController::getHelpStyle() +{ + if(!mCurrentView) + return GuiComponent::getHelpStyle(); + + return mCurrentView->getHelpStyle(); +} diff --git a/es-app/src/views/ViewController.h b/es-app/src/views/ViewController.h new file mode 100644 index 000000000..2658f44a9 --- /dev/null +++ b/es-app/src/views/ViewController.h @@ -0,0 +1,87 @@ +#pragma once + +#include "views/gamelist/IGameListView.h" +#include "views/SystemView.h" + +class SystemData; + +// Used to smoothly transition the camera between multiple views (e.g. from system to system, from gamelist to gamelist). +class ViewController : public GuiComponent +{ +public: + static void init(Window* window); + static ViewController* get(); + + virtual ~ViewController(); + + // Try to completely populate the GameListView map. + // Caches things so there's no pauses during transitions. + void preload(); + + // If a basic view detected a metadata change, it can request to recreate + // the current gamelist view (as it may change to be detailed). + void reloadGameListView(IGameListView* gamelist, bool reloadTheme = false); + inline void reloadGameListView(SystemData* system, bool reloadTheme = false) { reloadGameListView(getGameListView(system).get(), reloadTheme); } + void reloadAll(); // Reload everything with a theme. Used when the "ThemeSet" setting changes. + + // Navigation. + void goToNextGameList(); + void goToPrevGameList(); + void goToGameList(SystemData* system); + void goToSystemView(SystemData* system); + void goToStart(); + + void onFileChanged(FileData* file, FileChangeType change); + + // Plays a nice launch effect and launches the game at the end of it. + // Once the game terminates, plays a return effect. + void launch(FileData* game, Eigen::Vector3f centerCameraOn = Eigen::Vector3f(Renderer::getScreenWidth() / 2.0f, Renderer::getScreenHeight() / 2.0f, 0)); + + bool input(InputConfig* config, Input input) override; + void update(int deltaTime) override; + void render(const Eigen::Affine3f& parentTrans) override; + + enum ViewMode + { + NOTHING, + START_SCREEN, + SYSTEM_SELECT, + GAME_LIST + }; + + struct State + { + ViewMode viewing; + + inline SystemData* getSystem() const { assert(viewing == GAME_LIST || viewing == SYSTEM_SELECT); return system; } + + private: + friend ViewController; + SystemData* system; + }; + + inline const State& getState() const { return mState; } + + virtual std::vector getHelpPrompts() override; + virtual HelpStyle getHelpStyle() override; + + std::shared_ptr getGameListView(SystemData* system); + std::shared_ptr getSystemListView(); + +private: + ViewController(Window* window); + static ViewController* sInstance; + + void playViewTransition(); + int getSystemId(SystemData* system); + + std::shared_ptr mCurrentView; + std::map< SystemData*, std::shared_ptr > mGameListViews; + std::shared_ptr mSystemListView; + + Eigen::Affine3f mCamera; + float mFadeOpacity; + bool mLockInput; + + State mState; +}; diff --git a/es-app/src/views/gamelist/BasicGameListView.cpp b/es-app/src/views/gamelist/BasicGameListView.cpp new file mode 100644 index 000000000..af4ccbfe4 --- /dev/null +++ b/es-app/src/views/gamelist/BasicGameListView.cpp @@ -0,0 +1,100 @@ +#include "views/gamelist/BasicGameListView.h" +#include "views/ViewController.h" +#include "Renderer.h" +#include "Window.h" +#include "ThemeData.h" +#include "SystemData.h" +#include "Settings.h" + +BasicGameListView::BasicGameListView(Window* window, FileData* root) + : ISimpleGameListView(window, root), mList(window) +{ + mList.setSize(mSize.x(), mSize.y() * 0.8f); + mList.setPosition(0, mSize.y() * 0.2f); + addChild(&mList); + + populateList(root->getChildren()); +} + +void BasicGameListView::onThemeChanged(const std::shared_ptr& theme) +{ + ISimpleGameListView::onThemeChanged(theme); + using namespace ThemeFlags; + mList.applyTheme(theme, getName(), "gamelist", ALL); +} + +void BasicGameListView::onFileChanged(FileData* file, FileChangeType change) +{ + if(change == FILE_METADATA_CHANGED) + { + // might switch to a detailed view + ViewController::get()->reloadGameListView(this); + return; + } + + ISimpleGameListView::onFileChanged(file, change); +} + +void BasicGameListView::populateList(const std::vector& files) +{ + mList.clear(); + + mHeaderText.setText(files.at(0)->getSystem()->getFullName()); + + for(auto it = files.begin(); it != files.end(); it++) + { + mList.add((*it)->getName(), *it, ((*it)->getType() == FOLDER)); + } +} + +FileData* BasicGameListView::getCursor() +{ + return mList.getSelected(); +} + +void BasicGameListView::setCursor(FileData* cursor) +{ + if(!mList.setCursor(cursor)) + { + populateList(cursor->getParent()->getChildren()); + mList.setCursor(cursor); + + // update our cursor stack in case our cursor just got set to some folder we weren't in before + if(mCursorStack.empty() || mCursorStack.top() != cursor->getParent()) + { + std::stack tmp; + FileData* ptr = cursor->getParent(); + while(ptr && ptr != mRoot) + { + tmp.push(ptr); + ptr = ptr->getParent(); + } + + // flip the stack and put it in mCursorStack + mCursorStack = std::stack(); + while(!tmp.empty()) + { + mCursorStack.push(tmp.top()); + tmp.pop(); + } + } + } +} + +void BasicGameListView::launch(FileData* game) +{ + ViewController::get()->launch(game); +} + +std::vector BasicGameListView::getHelpPrompts() +{ + std::vector prompts; + + if(Settings::getInstance()->getBool("QuickSystemSelect")) + prompts.push_back(HelpPrompt("left/right", "system")); + prompts.push_back(HelpPrompt("up/down", "choose")); + prompts.push_back(HelpPrompt("a", "launch")); + prompts.push_back(HelpPrompt("b", "back")); + prompts.push_back(HelpPrompt("select", "options")); + return prompts; +} diff --git a/es-app/src/views/gamelist/BasicGameListView.h b/es-app/src/views/gamelist/BasicGameListView.h new file mode 100644 index 000000000..23145f5cb --- /dev/null +++ b/es-app/src/views/gamelist/BasicGameListView.h @@ -0,0 +1,28 @@ +#pragma once + +#include "views/gamelist/ISimpleGameListView.h" +#include "components/TextListComponent.h" + +class BasicGameListView : public ISimpleGameListView +{ +public: + BasicGameListView(Window* window, FileData* root); + + // Called when a FileData* is added, has its metadata changed, or is removed + virtual void onFileChanged(FileData* file, FileChangeType change); + + virtual void onThemeChanged(const std::shared_ptr& theme); + + virtual FileData* getCursor() override; + virtual void setCursor(FileData* file) override; + + virtual const char* getName() const override { return "basic"; } + + virtual std::vector getHelpPrompts() override; + +protected: + virtual void populateList(const std::vector& files) override; + virtual void launch(FileData* game) override; + + TextListComponent mList; +}; diff --git a/es-app/src/views/gamelist/DetailedGameListView.cpp b/es-app/src/views/gamelist/DetailedGameListView.cpp new file mode 100644 index 000000000..de1611014 --- /dev/null +++ b/es-app/src/views/gamelist/DetailedGameListView.cpp @@ -0,0 +1,270 @@ +#include "views/gamelist/DetailedGameListView.h" +#include "views/ViewController.h" +#include "Window.h" +#include "animations/LambdaAnimation.h" + +DetailedGameListView::DetailedGameListView(Window* window, FileData* root) : + BasicGameListView(window, root), + mDescContainer(window), mDescription(window), + mImage(window), + + mLblRating(window), mLblReleaseDate(window), mLblDeveloper(window), mLblPublisher(window), + mLblGenre(window), mLblPlayers(window), mLblLastPlayed(window), mLblPlayCount(window), + + mRating(window), mReleaseDate(window), mDeveloper(window), mPublisher(window), + mGenre(window), mPlayers(window), mLastPlayed(window), mPlayCount(window) +{ + //mHeaderImage.setPosition(mSize.x() * 0.25f, 0); + + const float padding = 0.01f; + + mList.setPosition(mSize.x() * (0.50f + padding), mList.getPosition().y()); + mList.setSize(mSize.x() * (0.50f - padding), mList.getSize().y()); + mList.setAlignment(TextListComponent::ALIGN_LEFT); + mList.setCursorChangedCallback([&](const CursorState& state) { updateInfoPanel(); }); + + // image + mImage.setOrigin(0.5f, 0.5f); + mImage.setPosition(mSize.x() * 0.25f, mList.getPosition().y() + mSize.y() * 0.2125f); + mImage.setMaxSize(mSize.x() * (0.50f - 2*padding), mSize.y() * 0.4f); + addChild(&mImage); + + // metadata labels + values + mLblRating.setText("Rating: "); + addChild(&mLblRating); + addChild(&mRating); + mLblReleaseDate.setText("Released: "); + addChild(&mLblReleaseDate); + addChild(&mReleaseDate); + mLblDeveloper.setText("Developer: "); + addChild(&mLblDeveloper); + addChild(&mDeveloper); + mLblPublisher.setText("Publisher: "); + addChild(&mLblPublisher); + addChild(&mPublisher); + mLblGenre.setText("Genre: "); + addChild(&mLblGenre); + addChild(&mGenre); + mLblPlayers.setText("Players: "); + addChild(&mLblPlayers); + addChild(&mPlayers); + mLblLastPlayed.setText("Last played: "); + addChild(&mLblLastPlayed); + mLastPlayed.setDisplayMode(DateTimeComponent::DISP_RELATIVE_TO_NOW); + addChild(&mLastPlayed); + mLblPlayCount.setText("Times played: "); + addChild(&mLblPlayCount); + addChild(&mPlayCount); + + mDescContainer.setPosition(mSize.x() * padding, mSize.y() * 0.65f); + mDescContainer.setSize(mSize.x() * (0.50f - 2*padding), mSize.y() - mDescContainer.getPosition().y()); + mDescContainer.setAutoScroll(true); + addChild(&mDescContainer); + + mDescription.setFont(Font::get(FONT_SIZE_SMALL)); + mDescription.setSize(mDescContainer.getSize().x(), 0); + mDescContainer.addChild(&mDescription); + + + initMDLabels(); + initMDValues(); + updateInfoPanel(); +} + +void DetailedGameListView::onThemeChanged(const std::shared_ptr& theme) +{ + BasicGameListView::onThemeChanged(theme); + + using namespace ThemeFlags; + mImage.applyTheme(theme, getName(), "md_image", POSITION | ThemeFlags::SIZE); + + initMDLabels(); + std::vector labels = getMDLabels(); + assert(labels.size() == 8); + const char* lblElements[8] = { + "md_lbl_rating", "md_lbl_releasedate", "md_lbl_developer", "md_lbl_publisher", + "md_lbl_genre", "md_lbl_players", "md_lbl_lastplayed", "md_lbl_playcount" + }; + + for(unsigned int i = 0; i < labels.size(); i++) + { + labels[i]->applyTheme(theme, getName(), lblElements[i], ALL); + } + + + initMDValues(); + std::vector values = getMDValues(); + assert(values.size() == 8); + const char* valElements[8] = { + "md_rating", "md_releasedate", "md_developer", "md_publisher", + "md_genre", "md_players", "md_lastplayed", "md_playcount" + }; + + for(unsigned int i = 0; i < values.size(); i++) + { + values[i]->applyTheme(theme, getName(), valElements[i], ALL ^ ThemeFlags::TEXT); + } + + mDescContainer.applyTheme(theme, getName(), "md_description", POSITION | ThemeFlags::SIZE); + mDescription.setSize(mDescContainer.getSize().x(), 0); + mDescription.applyTheme(theme, getName(), "md_description", ALL ^ (POSITION | ThemeFlags::SIZE | TEXT)); +} + +void DetailedGameListView::initMDLabels() +{ + using namespace Eigen; + + std::vector components = getMDLabels(); + + const unsigned int colCount = 2; + const unsigned int rowCount = components.size() / 2; + + Vector3f start(mSize.x() * 0.01f, mSize.y() * 0.625f, 0.0f); + + const float colSize = (mSize.x() * 0.48f) / colCount; + const float rowPadding = 0.01f * mSize.y(); + + for(unsigned int i = 0; i < components.size(); i++) + { + const unsigned int row = i % rowCount; + Vector3f pos(0.0f, 0.0f, 0.0f); + if(row == 0) + { + pos = start + Vector3f(colSize * (i / rowCount), 0, 0); + }else{ + // work from the last component + GuiComponent* lc = components[i-1]; + pos = lc->getPosition() + Vector3f(0, lc->getSize().y() + rowPadding, 0); + } + + components[i]->setFont(Font::get(FONT_SIZE_SMALL)); + components[i]->setPosition(pos); + } +} + +void DetailedGameListView::initMDValues() +{ + using namespace Eigen; + + std::vector labels = getMDLabels(); + std::vector values = getMDValues(); + + std::shared_ptr defaultFont = Font::get(FONT_SIZE_SMALL); + mRating.setSize(defaultFont->getHeight() * 5.0f, (float)defaultFont->getHeight()); + mReleaseDate.setFont(defaultFont); + mDeveloper.setFont(defaultFont); + mPublisher.setFont(defaultFont); + mGenre.setFont(defaultFont); + mPlayers.setFont(defaultFont); + mLastPlayed.setFont(defaultFont); + mPlayCount.setFont(defaultFont); + + float bottom = 0.0f; + + const float colSize = (mSize.x() * 0.48f) / 2; + for(unsigned int i = 0; i < labels.size(); i++) + { + const float heightDiff = (labels[i]->getSize().y() - values[i]->getSize().y()) / 2; + values[i]->setPosition(labels[i]->getPosition() + Vector3f(labels[i]->getSize().x(), heightDiff, 0)); + values[i]->setSize(colSize - labels[i]->getSize().x(), values[i]->getSize().y()); + + float testBot = values[i]->getPosition().y() + values[i]->getSize().y(); + if(testBot > bottom) + bottom = testBot; + } + + mDescContainer.setPosition(mDescContainer.getPosition().x(), bottom + mSize.y() * 0.01f); + mDescContainer.setSize(mDescContainer.getSize().x(), mSize.y() - mDescContainer.getPosition().y()); +} + +void DetailedGameListView::updateInfoPanel() +{ + FileData* file = (mList.size() == 0 || mList.isScrolling()) ? NULL : mList.getSelected(); + + bool fadingOut; + if(file == NULL) + { + //mImage.setImage(""); + //mDescription.setText(""); + fadingOut = true; + }else{ + mImage.setImage(file->metadata.get("image")); + mDescription.setText(file->metadata.get("desc")); + mDescContainer.reset(); + + if(file->getType() == GAME) + { + mRating.setValue(file->metadata.get("rating")); + mReleaseDate.setValue(file->metadata.get("releasedate")); + mDeveloper.setValue(file->metadata.get("developer")); + mPublisher.setValue(file->metadata.get("publisher")); + mGenre.setValue(file->metadata.get("genre")); + mPlayers.setValue(file->metadata.get("players")); + mLastPlayed.setValue(file->metadata.get("lastplayed")); + mPlayCount.setValue(file->metadata.get("playcount")); + } + + fadingOut = false; + } + + std::vector comps = getMDValues(); + comps.push_back(&mImage); + comps.push_back(&mDescription); + std::vector labels = getMDLabels(); + comps.insert(comps.end(), labels.begin(), labels.end()); + + for(auto it = comps.begin(); it != comps.end(); it++) + { + GuiComponent* comp = *it; + // an animation is playing + // then animate if reverse != fadingOut + // an animation is not playing + // then animate if opacity != our target opacity + if((comp->isAnimationPlaying(0) && comp->isAnimationReversed(0) != fadingOut) || + (!comp->isAnimationPlaying(0) && comp->getOpacity() != (fadingOut ? 0 : 255))) + { + auto func = [comp](float t) + { + comp->setOpacity((unsigned char)(lerp(0.0f, 1.0f, t)*255)); + }; + comp->setAnimation(new LambdaAnimation(func, 150), 0, nullptr, fadingOut); + } + } +} + +void DetailedGameListView::launch(FileData* game) +{ + Eigen::Vector3f target(Renderer::getScreenWidth() / 2.0f, Renderer::getScreenHeight() / 2.0f, 0); + if(mImage.hasImage()) + target << mImage.getCenter().x(), mImage.getCenter().y(), 0; + + ViewController::get()->launch(game, target); +} + +std::vector DetailedGameListView::getMDLabels() +{ + std::vector ret; + ret.push_back(&mLblRating); + ret.push_back(&mLblReleaseDate); + ret.push_back(&mLblDeveloper); + ret.push_back(&mLblPublisher); + ret.push_back(&mLblGenre); + ret.push_back(&mLblPlayers); + ret.push_back(&mLblLastPlayed); + ret.push_back(&mLblPlayCount); + return ret; +} + +std::vector DetailedGameListView::getMDValues() +{ + std::vector ret; + ret.push_back(&mRating); + ret.push_back(&mReleaseDate); + ret.push_back(&mDeveloper); + ret.push_back(&mPublisher); + ret.push_back(&mGenre); + ret.push_back(&mPlayers); + ret.push_back(&mLastPlayed); + ret.push_back(&mPlayCount); + return ret; +} diff --git a/es-app/src/views/gamelist/DetailedGameListView.h b/es-app/src/views/gamelist/DetailedGameListView.h new file mode 100644 index 000000000..30396e04c --- /dev/null +++ b/es-app/src/views/gamelist/DetailedGameListView.h @@ -0,0 +1,44 @@ +#pragma once + +#include "views/gamelist/BasicGameListView.h" +#include "components/ScrollableContainer.h" +#include "components/RatingComponent.h" +#include "components/DateTimeComponent.h" + +class DetailedGameListView : public BasicGameListView +{ +public: + DetailedGameListView(Window* window, FileData* root); + + virtual void onThemeChanged(const std::shared_ptr& theme) override; + + virtual const char* getName() const override { return "detailed"; } + +protected: + virtual void launch(FileData* game) override; + +private: + void updateInfoPanel(); + + void initMDLabels(); + void initMDValues(); + + ImageComponent mImage; + + TextComponent mLblRating, mLblReleaseDate, mLblDeveloper, mLblPublisher, mLblGenre, mLblPlayers, mLblLastPlayed, mLblPlayCount; + + RatingComponent mRating; + DateTimeComponent mReleaseDate; + TextComponent mDeveloper; + TextComponent mPublisher; + TextComponent mGenre; + TextComponent mPlayers; + DateTimeComponent mLastPlayed; + TextComponent mPlayCount; + + std::vector getMDLabels(); + std::vector getMDValues(); + + ScrollableContainer mDescContainer; + TextComponent mDescription; +}; diff --git a/es-app/src/views/gamelist/GridGameListView.cpp b/es-app/src/views/gamelist/GridGameListView.cpp new file mode 100644 index 000000000..c34b4b8ba --- /dev/null +++ b/es-app/src/views/gamelist/GridGameListView.cpp @@ -0,0 +1,59 @@ +#include "views/gamelist/GridGameListView.h" +#include "ThemeData.h" +#include "Window.h" +#include "views/ViewController.h" + +GridGameListView::GridGameListView(Window* window, FileData* root) : ISimpleGameListView(window, root), + mGrid(window) +{ + mGrid.setPosition(0, mSize.y() * 0.2f); + mGrid.setSize(mSize.x(), mSize.y() * 0.8f); + addChild(&mGrid); + + populateList(root->getChildren()); +} + +FileData* GridGameListView::getCursor() +{ + return mGrid.getSelected(); +} + +void GridGameListView::setCursor(FileData* file) +{ + if(!mGrid.setCursor(file)) + { + populateList(file->getParent()->getChildren()); + mGrid.setCursor(file); + } +} + +bool GridGameListView::input(InputConfig* config, Input input) +{ + if(config->isMappedTo("left", input) || config->isMappedTo("right", input)) + return GuiComponent::input(config, input); + + return ISimpleGameListView::input(config, input); +} + +void GridGameListView::populateList(const std::vector& files) +{ + mGrid.clear(); + for(auto it = files.begin(); it != files.end(); it++) + { + mGrid.add((*it)->getName(), (*it)->getThumbnailPath(), *it); + } +} + +void GridGameListView::launch(FileData* game) +{ + ViewController::get()->launch(game); +} + +std::vector GridGameListView::getHelpPrompts() +{ + std::vector prompts; + prompts.push_back(HelpPrompt("up/down/left/right", "scroll")); + prompts.push_back(HelpPrompt("a", "launch")); + prompts.push_back(HelpPrompt("b", "back")); + return prompts; +} diff --git a/es-app/src/views/gamelist/GridGameListView.h b/es-app/src/views/gamelist/GridGameListView.h new file mode 100644 index 000000000..81bf45585 --- /dev/null +++ b/es-app/src/views/gamelist/GridGameListView.h @@ -0,0 +1,29 @@ +#pragma once + +#include "views/gamelist/ISimpleGameListView.h" +#include "components/ImageGridComponent.h" +#include "components/ImageComponent.h" +#include + +class GridGameListView : public ISimpleGameListView +{ +public: + GridGameListView(Window* window, FileData* root); + + //virtual void onThemeChanged(const std::shared_ptr& theme) override; + + virtual FileData* getCursor() override; + virtual void setCursor(FileData*) override; + + virtual bool input(InputConfig* config, Input input) override; + + virtual const char* getName() const override { return "grid"; } + + virtual std::vector getHelpPrompts() override; + +protected: + virtual void populateList(const std::vector& files) override; + virtual void launch(FileData* game) override; + + ImageGridComponent mGrid; +}; diff --git a/es-app/src/views/gamelist/IGameListView.cpp b/es-app/src/views/gamelist/IGameListView.cpp new file mode 100644 index 000000000..69799cdd9 --- /dev/null +++ b/es-app/src/views/gamelist/IGameListView.cpp @@ -0,0 +1,43 @@ +#include "views/gamelist/IGameListView.h" +#include "Window.h" +#include "guis/GuiMetaDataEd.h" +#include "guis/GuiMenu.h" +#include "guis/GuiGamelistOptions.h" +#include "views/ViewController.h" +#include "Settings.h" +#include "Log.h" +#include "Sound.h" + +bool IGameListView::input(InputConfig* config, Input input) +{ + // select to open GuiGamelistOptions + if(config->isMappedTo("select", input) && input.value) + { + Sound::getFromTheme(mTheme, getName(), "menuOpen")->play(); + mWindow->pushGui(new GuiGamelistOptions(mWindow, this->mRoot->getSystem())); + return true; + + // Ctrl-R to reload a view when debugging + }else if(Settings::getInstance()->getBool("Debug") && config->getDeviceId() == DEVICE_KEYBOARD && + (SDL_GetModState() & (KMOD_LCTRL | KMOD_RCTRL)) && input.id == SDLK_r && input.value != 0) + { + LOG(LogDebug) << "reloading view"; + ViewController::get()->reloadGameListView(this, true); + return true; + } + + return GuiComponent::input(config, input); +} + +void IGameListView::setTheme(const std::shared_ptr& theme) +{ + mTheme = theme; + onThemeChanged(theme); +} + +HelpStyle IGameListView::getHelpStyle() +{ + HelpStyle style; + style.applyTheme(mTheme, getName()); + return style; +} diff --git a/es-app/src/views/gamelist/IGameListView.h b/es-app/src/views/gamelist/IGameListView.h new file mode 100644 index 000000000..6f9ef054d --- /dev/null +++ b/es-app/src/views/gamelist/IGameListView.h @@ -0,0 +1,42 @@ +#pragma once + +#include "FileData.h" +#include "Renderer.h" + +class Window; +class GuiComponent; +class FileData; +class ThemeData; + +// This is an interface that defines the minimum for a GameListView. +class IGameListView : public GuiComponent +{ +public: + IGameListView(Window* window, FileData* root) : GuiComponent(window), mRoot(root) + { setSize((float)Renderer::getScreenWidth(), (float)Renderer::getScreenHeight()); } + + virtual ~IGameListView() {} + + // Called when a new file is added, a file is removed, a file's metadata changes, or a file's children are sorted. + // NOTE: FILE_SORTED is only reported for the topmost FileData, where the sort started. + // Since sorts are recursive, that FileData's children probably changed too. + virtual void onFileChanged(FileData* file, FileChangeType change) = 0; + + // Called whenever the theme changes. + virtual void onThemeChanged(const std::shared_ptr& theme) = 0; + + void setTheme(const std::shared_ptr& theme); + inline const std::shared_ptr& getTheme() const { return mTheme; } + + virtual FileData* getCursor() = 0; + virtual void setCursor(FileData*) = 0; + + virtual bool input(InputConfig* config, Input input) override; + + virtual const char* getName() const = 0; + + virtual HelpStyle getHelpStyle() override; +protected: + FileData* mRoot; + std::shared_ptr mTheme; +}; diff --git a/es-app/src/views/gamelist/ISimpleGameListView.cpp b/es-app/src/views/gamelist/ISimpleGameListView.cpp new file mode 100644 index 000000000..dd6df5b63 --- /dev/null +++ b/es-app/src/views/gamelist/ISimpleGameListView.cpp @@ -0,0 +1,109 @@ +#include "views/gamelist/ISimpleGameListView.h" +#include "ThemeData.h" +#include "Window.h" +#include "views/ViewController.h" +#include "Sound.h" +#include "Settings.h" + +ISimpleGameListView::ISimpleGameListView(Window* window, FileData* root) : IGameListView(window, root), + mHeaderText(window), mHeaderImage(window), mBackground(window), mThemeExtras(window) +{ + mHeaderText.setText("Logo Text"); + mHeaderText.setSize(mSize.x(), 0); + mHeaderText.setPosition(0, 0); + mHeaderText.setAlignment(ALIGN_CENTER); + + mHeaderImage.setResize(0, mSize.y() * 0.185f); + mHeaderImage.setOrigin(0.5f, 0.0f); + mHeaderImage.setPosition(mSize.x() / 2, 0); + + mBackground.setResize(mSize.x(), mSize.y()); + + addChild(&mHeaderText); + addChild(&mBackground); + addChild(&mThemeExtras); +} + +void ISimpleGameListView::onThemeChanged(const std::shared_ptr& theme) +{ + using namespace ThemeFlags; + mBackground.applyTheme(theme, getName(), "background", ALL); + mHeaderImage.applyTheme(theme, getName(), "logo", ALL); + mHeaderText.applyTheme(theme, getName(), "logoText", ALL); + mThemeExtras.setExtras(ThemeData::makeExtras(theme, getName(), mWindow)); + + if(mHeaderImage.hasImage()) + { + removeChild(&mHeaderText); + addChild(&mHeaderImage); + }else{ + addChild(&mHeaderText); + removeChild(&mHeaderImage); + } +} + +void ISimpleGameListView::onFileChanged(FileData* file, FileChangeType change) +{ + // we could be tricky here to be efficient; + // but this shouldn't happen very often so we'll just always repopulate + FileData* cursor = getCursor(); + populateList(cursor->getParent()->getChildren()); + setCursor(cursor); +} + +bool ISimpleGameListView::input(InputConfig* config, Input input) +{ + if(input.value != 0) + { + if(config->isMappedTo("a", input)) + { + FileData* cursor = getCursor(); + if(cursor->getType() == GAME) + { + Sound::getFromTheme(getTheme(), getName(), "launch")->play(); + launch(cursor); + }else{ + // it's a folder + if(cursor->getChildren().size() > 0) + { + mCursorStack.push(cursor); + populateList(cursor->getChildren()); + } + } + + return true; + }else if(config->isMappedTo("b", input)) + { + if(mCursorStack.size()) + { + populateList(mCursorStack.top()->getParent()->getChildren()); + setCursor(mCursorStack.top()); + mCursorStack.pop(); + Sound::getFromTheme(getTheme(), getName(), "back")->play(); + }else{ + onFocusLost(); + ViewController::get()->goToSystemView(getCursor()->getSystem()); + } + + return true; + }else if(config->isMappedTo("right", input)) + { + if(Settings::getInstance()->getBool("QuickSystemSelect")) + { + onFocusLost(); + ViewController::get()->goToNextGameList(); + return true; + } + }else if(config->isMappedTo("left", input)) + { + if(Settings::getInstance()->getBool("QuickSystemSelect")) + { + onFocusLost(); + ViewController::get()->goToPrevGameList(); + return true; + } + } + } + + return IGameListView::input(config, input); +} diff --git a/es-app/src/views/gamelist/ISimpleGameListView.h b/es-app/src/views/gamelist/ISimpleGameListView.h new file mode 100644 index 000000000..9022cde73 --- /dev/null +++ b/es-app/src/views/gamelist/ISimpleGameListView.h @@ -0,0 +1,38 @@ +#pragma once + +#include "views/gamelist/IGameListView.h" + +#include "components/TextComponent.h" +#include "components/ImageComponent.h" + +class ISimpleGameListView : public IGameListView +{ +public: + ISimpleGameListView(Window* window, FileData* root); + virtual ~ISimpleGameListView() {} + + // Called when a new file is added, a file is removed, a file's metadata changes, or a file's children are sorted. + // NOTE: FILE_SORTED is only reported for the topmost FileData, where the sort started. + // Since sorts are recursive, that FileData's children probably changed too. + virtual void onFileChanged(FileData* file, FileChangeType change); + + // Called whenever the theme changes. + virtual void onThemeChanged(const std::shared_ptr& theme); + + virtual FileData* getCursor() = 0; + virtual void setCursor(FileData*) = 0; + + virtual bool input(InputConfig* config, Input input) override; + +protected: + virtual void populateList(const std::vector& files) = 0; + virtual void launch(FileData* game) = 0; + + TextComponent mHeaderText; + ImageComponent mHeaderImage; + ImageComponent mBackground; + + ThemeExtras mThemeExtras; + + std::stack mCursorStack; +}; diff --git a/es-core/CMakeLists.txt b/es-core/CMakeLists.txt new file mode 100644 index 000000000..89e241f03 --- /dev/null +++ b/es-core/CMakeLists.txt @@ -0,0 +1,165 @@ +project("core") + +set(CORE_HEADERS + ${CMAKE_CURRENT_SOURCE_DIR}/src/AsyncHandle.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/AudioManager.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/GuiComponent.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/HelpStyle.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/HttpReq.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/ImageIO.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/InputConfig.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/InputManager.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/Log.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/platform.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/Renderer.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/Settings.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/Sound.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/ThemeData.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/Util.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/Window.h + + # Animations + ${CMAKE_CURRENT_SOURCE_DIR}/src/animations/Animation.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/animations/AnimationController.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/animations/LambdaAnimation.h + + # GuiComponents + ${CMAKE_CURRENT_SOURCE_DIR}/src/components/AnimatedImageComponent.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/components/BusyComponent.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/components/ButtonComponent.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/components/ComponentGrid.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/components/ComponentList.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/components/DateTimeComponent.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/components/HelpComponent.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/components/IList.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/components/ImageComponent.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/components/ImageGridComponent.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/components/MenuComponent.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/components/NinePatchComponent.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/components/OptionListComponent.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/components/ScrollableContainer.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/components/SliderComponent.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/components/SwitchComponent.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/components/TextComponent.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/components/TextEditComponent.h + + # Guis + ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiDetectDevice.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiInputConfig.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiMsgBox.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiTextEditPopup.h + + # Resources + ${CMAKE_CURRENT_SOURCE_DIR}/src/resources/Font.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/resources/ResourceManager.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/resources/SVGResource.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/resources/TextureResource.h + + # Embedded assets (needed by ResourceManager) + ${emulationstation-all_SOURCE_DIR}/data/Resources.h +) + +set(CORE_SOURCES + ${CMAKE_CURRENT_SOURCE_DIR}/src/AudioManager.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/GuiComponent.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/HelpStyle.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/HttpReq.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/ImageIO.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/InputConfig.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/InputManager.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/Log.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/platform.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/Renderer_draw_gl.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/Renderer_init.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/Renderer_init_sdlgl.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/Settings.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/Sound.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/ThemeData.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/Util.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/Window.cpp + + # Animations + ${CMAKE_CURRENT_SOURCE_DIR}/src/animations/AnimationController.cpp + + # GuiComponents + ${CMAKE_CURRENT_SOURCE_DIR}/src/components/AnimatedImageComponent.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/components/BusyComponent.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/components/ButtonComponent.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/components/ComponentGrid.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/components/ComponentList.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/components/DateTimeComponent.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/components/HelpComponent.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/components/ImageComponent.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/components/MenuComponent.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/components/NinePatchComponent.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/components/ScrollableContainer.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/components/SliderComponent.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/components/SwitchComponent.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/components/TextComponent.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/components/TextEditComponent.cpp + + # Guis + ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiDetectDevice.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiInputConfig.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiMsgBox.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/guis/GuiTextEditPopup.cpp + + # Resources + ${CMAKE_CURRENT_SOURCE_DIR}/src/resources/Font.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/resources/ResourceManager.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/resources/SVGResource.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/resources/TextureResource.cpp +) + +set(EMBEDDED_ASSET_SOURCES + ${emulationstation-all_SOURCE_DIR}/data/ResourceUtil.cpp + ${emulationstation-all_SOURCE_DIR}/data/converted/splash_svg.cpp + ${emulationstation-all_SOURCE_DIR}/data/converted/window_icon_256_png.cpp + ${emulationstation-all_SOURCE_DIR}/data/converted/button_png.cpp + ${emulationstation-all_SOURCE_DIR}/data/converted/button_filled_png.cpp + ${emulationstation-all_SOURCE_DIR}/data/converted/textinput_ninepatch_png.cpp + ${emulationstation-all_SOURCE_DIR}/data/converted/textinput_ninepatch_active_png.cpp + ${emulationstation-all_SOURCE_DIR}/data/converted/frame_png.cpp + ${emulationstation-all_SOURCE_DIR}/data/converted/scroll_gradient_png.cpp + + ${emulationstation-all_SOURCE_DIR}/data/converted/help_button_a_svg.cpp + ${emulationstation-all_SOURCE_DIR}/data/converted/help_button_b_svg.cpp + ${emulationstation-all_SOURCE_DIR}/data/converted/help_button_x_svg.cpp + ${emulationstation-all_SOURCE_DIR}/data/converted/help_button_y_svg.cpp + ${emulationstation-all_SOURCE_DIR}/data/converted/help_button_l_svg.cpp + ${emulationstation-all_SOURCE_DIR}/data/converted/help_button_r_svg.cpp + ${emulationstation-all_SOURCE_DIR}/data/converted/help_button_start_svg.cpp + ${emulationstation-all_SOURCE_DIR}/data/converted/help_button_select_svg.cpp + ${emulationstation-all_SOURCE_DIR}/data/converted/help_dpad_up_svg.cpp + ${emulationstation-all_SOURCE_DIR}/data/converted/help_dpad_down_svg.cpp + ${emulationstation-all_SOURCE_DIR}/data/converted/help_dpad_left_svg.cpp + ${emulationstation-all_SOURCE_DIR}/data/converted/help_dpad_right_svg.cpp + ${emulationstation-all_SOURCE_DIR}/data/converted/help_dpad_updown_svg.cpp + ${emulationstation-all_SOURCE_DIR}/data/converted/help_dpad_leftright_svg.cpp + ${emulationstation-all_SOURCE_DIR}/data/converted/help_dpad_all_svg.cpp + + ${emulationstation-all_SOURCE_DIR}/data/converted/opensans_hebrew_condensed_regular_ttf.cpp + ${emulationstation-all_SOURCE_DIR}/data/converted/opensans_hebrew_condensed_light_ttf.cpp + ${emulationstation-all_SOURCE_DIR}/data/converted/arrow_svg.cpp + ${emulationstation-all_SOURCE_DIR}/data/converted/option_arrow_svg.cpp + ${emulationstation-all_SOURCE_DIR}/data/converted/checkbox_checked_svg.cpp + ${emulationstation-all_SOURCE_DIR}/data/converted/checkbox_unchecked_svg.cpp + ${emulationstation-all_SOURCE_DIR}/data/converted/star_filled_svg.cpp + ${emulationstation-all_SOURCE_DIR}/data/converted/star_unfilled_svg.cpp + ${emulationstation-all_SOURCE_DIR}/data/converted/on_svg.cpp + ${emulationstation-all_SOURCE_DIR}/data/converted/off_svg.cpp + ${emulationstation-all_SOURCE_DIR}/data/converted/fav_add_svg.cpp + ${emulationstation-all_SOURCE_DIR}/data/converted/fav_remove_svg.cpp + ${emulationstation-all_SOURCE_DIR}/data/converted/slider_knob_svg.cpp + + ${emulationstation-all_SOURCE_DIR}/data/converted/busy_0_svg.cpp + ${emulationstation-all_SOURCE_DIR}/data/converted/busy_1_svg.cpp + ${emulationstation-all_SOURCE_DIR}/data/converted/busy_2_svg.cpp + ${emulationstation-all_SOURCE_DIR}/data/converted/busy_3_svg.cpp +) + +list(APPEND CORE_SOURCES ${EMBEDDED_ASSET_SOURCES}) + +include_directories(${COMMON_INCLUDE_DIRS}) +add_library(es-core STATIC ${CORE_SOURCES} ${CORE_HEADERS}) +target_link_libraries(es-core ${COMMON_LIBRARIES}) diff --git a/es-core/src/AsyncHandle.h b/es-core/src/AsyncHandle.h new file mode 100644 index 000000000..4d07de5be --- /dev/null +++ b/es-core/src/AsyncHandle.h @@ -0,0 +1,43 @@ +#pragma once + +enum AsyncHandleStatus +{ + ASYNC_IN_PROGRESS, + ASYNC_ERROR, + ASYNC_DONE +}; + +// Handle for some asynchronous operation. +class AsyncHandle +{ +public: + AsyncHandle() : mStatus(ASYNC_IN_PROGRESS) {}; + + virtual void update() = 0; + + // Update and return the latest status. + inline AsyncHandleStatus status() { update(); return mStatus; } + + // User-friendly string of our current status. Will return error message if status() == SEARCH_ERROR. + inline std::string getStatusString() + { + switch(mStatus) + { + case ASYNC_IN_PROGRESS: + return "in progress"; + case ASYNC_ERROR: + return mError; + case ASYNC_DONE: + return "done"; + default: + return "something impossible has occured; row, row, fight the power"; + } + } + +protected: + inline void setStatus(AsyncHandleStatus status) { mStatus = status; } + inline void setError(const std::string& error) { setStatus(ASYNC_ERROR); mError = error; } + + std::string mError; + AsyncHandleStatus mStatus; +}; diff --git a/src/AudioManager.cpp b/es-core/src/AudioManager.cpp similarity index 94% rename from src/AudioManager.cpp rename to es-core/src/AudioManager.cpp index 47887ede7..c75d3c4ca 100644 --- a/src/AudioManager.cpp +++ b/es-core/src/AudioManager.cpp @@ -2,8 +2,6 @@ #include #include "Log.h" -#include "VolumeControl.h" - std::vector> AudioManager::sSoundVector; SDL_AudioSpec AudioManager::sAudioFormat; @@ -14,6 +12,9 @@ void AudioManager::mixAudio(void *unused, Uint8 *stream, int len) { bool stillPlaying = false; + //initialize the buffer to "silence" + SDL_memset(stream, 0, len); + //iterate through all our samples std::vector>::const_iterator soundIt = sSoundVector.cbegin(); while (soundIt != sSoundVector.cend()) @@ -40,6 +41,7 @@ void AudioManager::mixAudio(void *unused, Uint8 *stream, int len) //advance to next sound ++soundIt; } + //we have processed all samples. check if some will still be playing if (!stillPlaying) { //no. pause audio till a Sound::play() wakes us up @@ -50,9 +52,6 @@ void AudioManager::mixAudio(void *unused, Uint8 *stream, int len) AudioManager::AudioManager() { init(); - - //set internal volume - //VolumeControl::getInstance()->setVolume(50); } AudioManager::~AudioManager() @@ -134,9 +133,6 @@ void AudioManager::play() { getInstance(); - //set internal audio volume. important after launching a game and returning here - //VolumeControl::getInstance()->setVolume(50); - //unpause audio, the mixer will figure out if samples need to be played... SDL_PauseAudio(0); } diff --git a/src/AudioManager.h b/es-core/src/AudioManager.h similarity index 100% rename from src/AudioManager.h rename to es-core/src/AudioManager.h diff --git a/es-core/src/GuiComponent.cpp b/es-core/src/GuiComponent.cpp new file mode 100644 index 000000000..2b4fbe3c1 --- /dev/null +++ b/es-core/src/GuiComponent.cpp @@ -0,0 +1,341 @@ +#include "GuiComponent.h" +#include "Window.h" +#include "Log.h" +#include "Renderer.h" +#include "animations/AnimationController.h" +#include "ThemeData.h" + +GuiComponent::GuiComponent(Window* window) : mWindow(window), mParent(NULL), mOpacity(255), + mPosition(Eigen::Vector3f::Zero()), mSize(Eigen::Vector2f::Zero()), mTransform(Eigen::Affine3f::Identity()) +{ + for(unsigned char i = 0; i < MAX_ANIMATIONS; i++) + mAnimationMap[i] = NULL; +} + +GuiComponent::~GuiComponent() +{ + mWindow->removeGui(this); + + cancelAllAnimations(); + + if(mParent) + mParent->removeChild(this); + + for(unsigned int i = 0; i < getChildCount(); i++) + getChild(i)->setParent(NULL); +} + +bool GuiComponent::input(InputConfig* config, Input input) +{ + for(unsigned int i = 0; i < getChildCount(); i++) + { + if(getChild(i)->input(config, input)) + return true; + } + + return false; +} + +void GuiComponent::updateSelf(int deltaTime) +{ + for(unsigned char i = 0; i < MAX_ANIMATIONS; i++) + advanceAnimation(i, deltaTime); +} + +void GuiComponent::updateChildren(int deltaTime) +{ + for(unsigned int i = 0; i < getChildCount(); i++) + { + getChild(i)->update(deltaTime); + } +} + +void GuiComponent::update(int deltaTime) +{ + updateSelf(deltaTime); + updateChildren(deltaTime); +} + +void GuiComponent::render(const Eigen::Affine3f& parentTrans) +{ + Eigen::Affine3f trans = parentTrans * getTransform(); + renderChildren(trans); +} + +void GuiComponent::renderChildren(const Eigen::Affine3f& transform) const +{ + for(unsigned int i = 0; i < getChildCount(); i++) + { + getChild(i)->render(transform); + } +} + +Eigen::Vector3f GuiComponent::getPosition() const +{ + return mPosition; +} + +void GuiComponent::setPosition(const Eigen::Vector3f& offset) +{ + mPosition = offset; + onPositionChanged(); +} + +void GuiComponent::setPosition(float x, float y, float z) +{ + mPosition << x, y, z; + onPositionChanged(); +} + +Eigen::Vector2f GuiComponent::getSize() const +{ + return mSize; +} + +void GuiComponent::setSize(const Eigen::Vector2f& size) +{ + mSize = size; + onSizeChanged(); +} + +void GuiComponent::setSize(float w, float h) +{ + mSize << w, h; + onSizeChanged(); +} + +//Children stuff. +void GuiComponent::addChild(GuiComponent* cmp) +{ + mChildren.push_back(cmp); + + if(cmp->getParent()) + cmp->getParent()->removeChild(cmp); + + cmp->setParent(this); +} + +void GuiComponent::removeChild(GuiComponent* cmp) +{ + if(!cmp->getParent()) + return; + + if(cmp->getParent() != this) + { + LOG(LogError) << "Tried to remove child from incorrect parent!"; + } + + cmp->setParent(NULL); + + for(auto i = mChildren.begin(); i != mChildren.end(); i++) + { + if(*i == cmp) + { + mChildren.erase(i); + return; + } + } +} + +void GuiComponent::clearChildren() +{ + mChildren.clear(); +} + +unsigned int GuiComponent::getChildCount() const +{ + return mChildren.size(); +} + +GuiComponent* GuiComponent::getChild(unsigned int i) const +{ + return mChildren.at(i); +} + +void GuiComponent::setParent(GuiComponent* parent) +{ + mParent = parent; +} + +GuiComponent* GuiComponent::getParent() const +{ + return mParent; +} + +unsigned char GuiComponent::getOpacity() const +{ + return mOpacity; +} + +void GuiComponent::setOpacity(unsigned char opacity) +{ + mOpacity = opacity; + for(auto it = mChildren.begin(); it != mChildren.end(); it++) + { + (*it)->setOpacity(opacity); + } +} + +const Eigen::Affine3f& GuiComponent::getTransform() +{ + mTransform.setIdentity(); + mTransform.translate(mPosition); + return mTransform; +} + +void GuiComponent::setValue(const std::string& value) +{ +} + +std::string GuiComponent::getValue() const +{ + return ""; +} + +void GuiComponent::textInput(const char* text) +{ + for(auto iter = mChildren.begin(); iter != mChildren.end(); iter++) + { + (*iter)->textInput(text); + } +} + +void GuiComponent::setAnimation(Animation* anim, int delay, std::function finishedCallback, bool reverse, unsigned char slot) +{ + assert(slot < MAX_ANIMATIONS); + + AnimationController* oldAnim = mAnimationMap[slot]; + mAnimationMap[slot] = new AnimationController(anim, delay, finishedCallback, reverse); + + if(oldAnim) + delete oldAnim; +} + +bool GuiComponent::stopAnimation(unsigned char slot) +{ + assert(slot < MAX_ANIMATIONS); + if(mAnimationMap[slot]) + { + delete mAnimationMap[slot]; + mAnimationMap[slot] = NULL; + return true; + }else{ + return false; + } +} + +bool GuiComponent::cancelAnimation(unsigned char slot) +{ + assert(slot < MAX_ANIMATIONS); + if(mAnimationMap[slot]) + { + mAnimationMap[slot]->removeFinishedCallback(); + delete mAnimationMap[slot]; + mAnimationMap[slot] = NULL; + return true; + }else{ + return false; + } +} + +bool GuiComponent::finishAnimation(unsigned char slot) +{ + assert(slot < MAX_ANIMATIONS); + if(mAnimationMap[slot]) + { + // skip to animation's end + const bool done = mAnimationMap[slot]->update(mAnimationMap[slot]->getAnimation()->getDuration() - mAnimationMap[slot]->getTime()); + assert(done); + + delete mAnimationMap[slot]; // will also call finishedCallback + mAnimationMap[slot] = NULL; + return true; + }else{ + return false; + } +} + +bool GuiComponent::advanceAnimation(unsigned char slot, unsigned int time) +{ + assert(slot < MAX_ANIMATIONS); + AnimationController* anim = mAnimationMap[slot]; + if(anim) + { + bool done = anim->update(time); + if(done) + { + mAnimationMap[slot] = NULL; + delete anim; + } + return true; + }else{ + return false; + } +} + +void GuiComponent::stopAllAnimations() +{ + for(unsigned char i = 0; i < MAX_ANIMATIONS; i++) + stopAnimation(i); +} + +void GuiComponent::cancelAllAnimations() +{ + for(unsigned char i = 0; i < MAX_ANIMATIONS; i++) + cancelAnimation(i); +} + +bool GuiComponent::isAnimationPlaying(unsigned char slot) const +{ + return mAnimationMap[slot] != NULL; +} + +bool GuiComponent::isAnimationReversed(unsigned char slot) const +{ + assert(mAnimationMap[slot] != NULL); + return mAnimationMap[slot]->isReversed(); +} + +int GuiComponent::getAnimationTime(unsigned char slot) const +{ + assert(mAnimationMap[slot] != NULL); + return mAnimationMap[slot]->getTime(); +} + +void GuiComponent::applyTheme(const std::shared_ptr& theme, const std::string& view, const std::string& element, unsigned int properties) +{ + Eigen::Vector2f scale = getParent() ? getParent()->getSize() : Eigen::Vector2f((float)Renderer::getScreenWidth(), (float)Renderer::getScreenHeight()); + + const ThemeData::ThemeElement* elem = theme->getElement(view, element, ""); + if(!elem) + return; + + using namespace ThemeFlags; + if(properties & POSITION && elem->has("pos")) + { + Eigen::Vector2f denormalized = elem->get("pos").cwiseProduct(scale); + setPosition(Eigen::Vector3f(denormalized.x(), denormalized.y(), 0)); + } + + if(properties & ThemeFlags::SIZE && elem->has("size")) + setSize(elem->get("size").cwiseProduct(scale)); +} + +void GuiComponent::updateHelpPrompts() +{ + if(getParent()) + { + getParent()->updateHelpPrompts(); + return; + } + + std::vector prompts = getHelpPrompts(); + + if(mWindow->peekGui() == this) + mWindow->setHelpPrompts(prompts, getHelpStyle()); +} + +HelpStyle GuiComponent::getHelpStyle() +{ + return HelpStyle(); +} diff --git a/es-core/src/GuiComponent.h b/es-core/src/GuiComponent.h new file mode 100644 index 000000000..0b8734a2f --- /dev/null +++ b/es-core/src/GuiComponent.h @@ -0,0 +1,113 @@ +#pragma once + +#include "InputConfig.h" +#include +#include +#include "HelpStyle.h" + +class Window; +class Animation; +class AnimationController; +class ThemeData; +class Font; + +typedef std::pair HelpPrompt; + +class GuiComponent +{ +public: + GuiComponent(Window* window); + virtual ~GuiComponent(); + + virtual void textInput(const char* text); + + //Called when input is received. + //Return true if the input is consumed, false if it should continue to be passed to other children. + virtual bool input(InputConfig* config, Input input); + + //Called when time passes. Default implementation calls updateSelf(deltaTime) and updateChildren(deltaTime) - so you should probably call GuiComponent::update(deltaTime) at some point (or at least updateSelf so animations work). + virtual void update(int deltaTime); + + //Called when it's time to render. By default, just calls renderChildren(parentTrans * getTransform()). + //You probably want to override this like so: + //1. Calculate the new transform that your control will draw at with Eigen::Affine3f t = parentTrans * getTransform(). + //2. Set the renderer to use that new transform as the model matrix - Renderer::setMatrix(t); + //3. Draw your component. + //4. Tell your children to render, based on your component's transform - renderChildren(t). + virtual void render(const Eigen::Affine3f& parentTrans); + + Eigen::Vector3f getPosition() const; + void setPosition(const Eigen::Vector3f& offset); + void setPosition(float x, float y, float z = 0.0f); + virtual void onPositionChanged() {}; + + Eigen::Vector2f getSize() const; + void setSize(const Eigen::Vector2f& size); + void setSize(float w, float h); + virtual void onSizeChanged() {}; + + void setParent(GuiComponent* parent); + GuiComponent* getParent() const; + + void addChild(GuiComponent* cmp); + void removeChild(GuiComponent* cmp); + void clearChildren(); + unsigned int getChildCount() const; + GuiComponent* getChild(unsigned int i) const; + + // animation will be automatically deleted when it completes or is stopped. + bool isAnimationPlaying(unsigned char slot) const; + bool isAnimationReversed(unsigned char slot) const; + int getAnimationTime(unsigned char slot) const; + void setAnimation(Animation* animation, int delay = 0, std::function finishedCallback = nullptr, bool reverse = false, unsigned char slot = 0); + bool stopAnimation(unsigned char slot); + bool cancelAnimation(unsigned char slot); // Like stopAnimation, but doesn't call finishedCallback - only removes the animation, leaving things in their current state. Returns true if successful (an animation was in this slot). + bool finishAnimation(unsigned char slot); // Calls update(1.f) and finishedCallback, then deletes the animation - basically skips to the end. Returns true if successful (an animation was in this slot). + bool advanceAnimation(unsigned char slot, unsigned int time); // Returns true if successful (an animation was in this slot). + void stopAllAnimations(); + void cancelAllAnimations(); + + virtual unsigned char getOpacity() const; + virtual void setOpacity(unsigned char opacity); + + const Eigen::Affine3f& getTransform(); + + virtual std::string getValue() const; + virtual void setValue(const std::string& value); + + virtual void onFocusGained() {}; + virtual void onFocusLost() {}; + + // Default implementation just handles and tags as normalized float pairs. + // You probably want to keep this behavior for any derived classes as well as add your own. + virtual void applyTheme(const std::shared_ptr& theme, const std::string& view, const std::string& element, unsigned int properties); + + // Returns a list of help prompts. + virtual std::vector getHelpPrompts() { return std::vector(); }; + + // Called whenever help prompts change. + void updateHelpPrompts(); + + virtual HelpStyle getHelpStyle(); + +protected: + void renderChildren(const Eigen::Affine3f& transform) const; + void updateSelf(int deltaTime); // updates animations + void updateChildren(int deltaTime); // updates animations + + unsigned char mOpacity; + Window* mWindow; + + GuiComponent* mParent; + std::vector mChildren; + + Eigen::Vector3f mPosition; + Eigen::Vector2f mSize; + +public: + const static unsigned char MAX_ANIMATIONS = 4; + +private: + Eigen::Affine3f mTransform; //Don't access this directly! Use getTransform()! + AnimationController* mAnimationMap[MAX_ANIMATIONS]; +}; diff --git a/es-core/src/HelpStyle.cpp b/es-core/src/HelpStyle.cpp new file mode 100644 index 000000000..59a329d7c --- /dev/null +++ b/es-core/src/HelpStyle.cpp @@ -0,0 +1,35 @@ +#include "HelpStyle.h" +#include "ThemeData.h" +#include "Renderer.h" +#include "resources/Font.h" + +HelpStyle::HelpStyle() +{ + position = Eigen::Vector2f(Renderer::getScreenWidth() * 0.012f, Renderer::getScreenHeight() * 0.9515f); + iconColor = 0x777777FF; + textColor = 0x777777FF; + + if(FONT_SIZE_SMALL != 0) + font = Font::get(FONT_SIZE_SMALL); + else + font = nullptr; +} + +void HelpStyle::applyTheme(const std::shared_ptr& theme, const std::string& view) +{ + auto elem = theme->getElement(view, "help", "helpsystem"); + if(!elem) + return; + + if(elem->has("pos")) + position = elem->get("pos").cwiseProduct(Eigen::Vector2f((float)Renderer::getScreenWidth(), (float)Renderer::getScreenHeight())); + + if(elem->has("textColor")) + textColor = elem->get("textColor"); + + if(elem->has("iconColor")) + iconColor = elem->get("iconColor"); + + if(elem->has("fontPath") || elem->has("fontSize")) + font = Font::getFromTheme(elem, ThemeFlags::ALL, font); +} diff --git a/es-core/src/HelpStyle.h b/es-core/src/HelpStyle.h new file mode 100644 index 000000000..204c44423 --- /dev/null +++ b/es-core/src/HelpStyle.h @@ -0,0 +1,19 @@ +#pragma once + +#include +#include +#include + +class ThemeData; +class Font; + +struct HelpStyle +{ + Eigen::Vector2f position; + unsigned int iconColor; + unsigned int textColor; + std::shared_ptr font; + + HelpStyle(); // default values + void applyTheme(const std::shared_ptr& theme, const std::string& view); +}; \ No newline at end of file diff --git a/es-core/src/HttpReq.cpp b/es-core/src/HttpReq.cpp new file mode 100644 index 000000000..5171da636 --- /dev/null +++ b/es-core/src/HttpReq.cpp @@ -0,0 +1,177 @@ +#include +#include "HttpReq.h" +#include "Log.h" +#include + +CURLM* HttpReq::s_multi_handle = curl_multi_init(); + +std::map HttpReq::s_requests; + +std::string HttpReq::urlEncode(const std::string &s) +{ + const std::string unreserved = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_.~"; + + std::string escaped=""; + for(size_t i=0; imsg == CURLMSG_DONE) + { + HttpReq* req = s_requests[msg->easy_handle]; + + if(req == NULL) + { + LOG(LogError) << "Cannot find easy handle!"; + continue; + } + + if(msg->data.result == CURLE_OK) + { + req->mStatus = REQ_SUCCESS; + }else{ + req->mStatus = REQ_IO_ERROR; + req->onError(curl_easy_strerror(msg->data.result)); + } + } + } + } + + return mStatus; +} + +std::string HttpReq::getContent() const +{ + assert(mStatus == REQ_SUCCESS); + return mContent.str(); +} + +void HttpReq::onError(const char* msg) +{ + mErrorMsg = msg; +} + +std::string HttpReq::getErrorMsg() +{ + return mErrorMsg; +} + +//used as a curl callback +//size = size of an element, nmemb = number of elements +//return value is number of elements successfully read +size_t HttpReq::write_content(void* buff, size_t size, size_t nmemb, void* req_ptr) +{ + std::stringstream& ss = ((HttpReq*)req_ptr)->mContent; + ss.write((char*)buff, size * nmemb); + + return nmemb; +} + +//used as a curl callback +/*int HttpReq::update_progress(void* req_ptr, double dlTotal, double dlNow, double ulTotal, double ulNow) +{ + +}*/ diff --git a/es-core/src/HttpReq.h b/es-core/src/HttpReq.h new file mode 100644 index 000000000..9c4f22034 --- /dev/null +++ b/es-core/src/HttpReq.h @@ -0,0 +1,68 @@ +#pragma once + +#include +#include +#include + +/* Usage: + * HttpReq myRequest("www.google.com", "/index.html"); + * //for blocking behavior: while(myRequest.status() == HttpReq::REQ_IN_PROGRESS); + * //for non-blocking behavior: check if(myRequest.status() != HttpReq::REQ_IN_PROGRESS) in some sort of update method + * + * //once one of those completes, the request is ready + * if(myRequest.status() != REQ_SUCCESS) + * { + * //an error occured + * LOG(LogError) << "HTTP request error - " << myRequest.getErrorMessage(); + * return; + * } + * + * std::string content = myRequest.getContent(); + * //process contents... +*/ + +class HttpReq +{ +public: + HttpReq(const std::string& url); + + ~HttpReq(); + + enum Status + { + REQ_IN_PROGRESS, //request is in progress + REQ_SUCCESS, //request completed successfully, get it with getContent() + + REQ_IO_ERROR, //some boost::asio error happened, get it with getErrorMsg() + REQ_BAD_STATUS_CODE, //some invalid HTTP response status code happened (non-200) + REQ_INVALID_RESPONSE //the HTTP response was invalid + }; + + Status status(); //process any received data and return the status afterwards + + std::string getErrorMsg(); + + std::string getContent() const; // mStatus must be REQ_SUCCESS + + static std::string urlEncode(const std::string &s); + static bool isUrl(const std::string& s); + +private: + static size_t write_content(void* buff, size_t size, size_t nmemb, void* req_ptr); + //static int update_progress(void* req_ptr, double dlTotal, double dlNow, double ulTotal, double ulNow); + + //god dammit libcurl why can't you have some way to check the status of an individual handle + //why do I have to handle ALL messages at once + static std::map s_requests; + + static CURLM* s_multi_handle; + + void onError(const char* msg); + + CURL* mHandle; + + Status mStatus; + + std::stringstream mContent; + std::string mErrorMsg; +}; diff --git a/src/ImageIO.cpp b/es-core/src/ImageIO.cpp similarity index 81% rename from src/ImageIO.cpp rename to es-core/src/ImageIO.cpp index c5106debb..b6b5c8067 100644 --- a/src/ImageIO.cpp +++ b/es-core/src/ImageIO.cpp @@ -69,10 +69,25 @@ std::vector ImageIO::loadFromMemoryRGBA32(const unsigned char * d } else { - LOG(LogError) << "Error - File type unknown/unsupported!"; + LOG(LogError) << "Error - File type " << (format == FIF_UNKNOWN ? "unknown" : "unsupported") << "!"; } //free FIMEMORY again FreeImage_CloseMemory(fiMemory); } return rawData; } + +void ImageIO::flipPixelsVert(unsigned char* imagePx, const size_t& width, const size_t& height) +{ + unsigned int temp; + unsigned int* arr = (unsigned int*)imagePx; + for(size_t y = 0; y < height / 2; y++) + { + for(size_t x = 0; x < width; x++) + { + temp = arr[x + (y * width)]; + arr[x + (y * width)] = arr[x + (height * width) - ((y + 1) * width)]; + arr[x + (height * width) - ((y + 1) * width)] = temp; + } + } +} diff --git a/src/ImageIO.h b/es-core/src/ImageIO.h similarity index 69% rename from src/ImageIO.h rename to es-core/src/ImageIO.h index a965a5fba..ca48d70ab 100644 --- a/src/ImageIO.h +++ b/es-core/src/ImageIO.h @@ -3,9 +3,9 @@ #include #include - class ImageIO { public: static std::vector loadFromMemoryRGBA32(const unsigned char * data, const size_t size, size_t & width, size_t & height); + static void flipPixelsVert(unsigned char* imagePx, const size_t& width, const size_t& height); }; \ No newline at end of file diff --git a/src/InputConfig.cpp b/es-core/src/InputConfig.cpp similarity index 79% rename from src/InputConfig.cpp rename to es-core/src/InputConfig.cpp index 0036e3d11..90b272939 100644 --- a/src/InputConfig.cpp +++ b/es-core/src/InputConfig.cpp @@ -4,6 +4,7 @@ #include #include #include "Log.h" +#include "InputManager.h" //some util functions std::string inputTypeToString(InputType type) @@ -48,9 +49,8 @@ std::string toLower(std::string str) } //end util functions -InputConfig::InputConfig(int deviceId) : mDeviceId(deviceId) +InputConfig::InputConfig(int deviceId, const std::string& deviceName, const std::string& deviceGUID) : mDeviceId(deviceId), mDeviceName(deviceName), mDeviceGUID(deviceGUID) { - mPlayerNum = -1; } void InputConfig::clear() @@ -58,20 +58,41 @@ void InputConfig::clear() mNameMap.clear(); } +bool InputConfig::isConfigured() +{ + return mNameMap.size() > 0; +} + void InputConfig::mapInput(const std::string& name, Input input) { mNameMap[toLower(name)] = input; } -Input InputConfig::getInputByName(const std::string& name) +void InputConfig::unmapInput(const std::string& name) { - return mNameMap[toLower(name)]; + auto it = mNameMap.find(toLower(name)); + if(it != mNameMap.end()) + mNameMap.erase(it); +} + +bool InputConfig::getInputByName(const std::string& name, Input* result) +{ + auto it = mNameMap.find(toLower(name)); + if(it != mNameMap.end()) + { + *result = it->second; + return true; + } + + return false; } bool InputConfig::isMappedTo(const std::string& name, Input input) { - Input comp = getInputByName(name); - + Input comp; + if(!getInputByName(name, &comp)) + return false; + if(comp.configured && comp.type == input.type && comp.id == input.id) { if(comp.type == TYPE_HAT) @@ -125,11 +146,9 @@ std::vector InputConfig::getMappedTo(Input input) return maps; } -void InputConfig::loadFromXML(pugi::xml_node node, int playerNum) +void InputConfig::loadFromXML(pugi::xml_node node) { - this->clear(); - - setPlayerNum(playerNum); + clear(); for(pugi::xml_node input = node.child("input"); input; input = input.next_sibling("input")) { @@ -160,11 +179,14 @@ void InputConfig::writeToXML(pugi::xml_node parent) if(mDeviceId == DEVICE_KEYBOARD) { cfg.append_attribute("type") = "keyboard"; + cfg.append_attribute("deviceName") = "Keyboard"; }else{ cfg.append_attribute("type") = "joystick"; - cfg.append_attribute("deviceName") = SDL_JoystickName(mDeviceId); + cfg.append_attribute("deviceName") = mDeviceName.c_str(); } + cfg.append_attribute("deviceGUID") = mDeviceGUID.c_str(); + typedef std::map::iterator it_type; for(it_type iterator = mNameMap.begin(); iterator != mNameMap.end(); iterator++) { @@ -178,7 +200,3 @@ void InputConfig::writeToXML(pugi::xml_node parent) input.append_attribute("value").set_value(iterator->second.value); } } - -void InputConfig::setPlayerNum(int num) { mPlayerNum = num; } -int InputConfig::getPlayerNum() { return mPlayerNum; } -int InputConfig::getDeviceId() { return mDeviceId; } diff --git a/src/InputConfig.h b/es-core/src/InputConfig.h similarity index 68% rename from src/InputConfig.h rename to es-core/src/InputConfig.h index 99d13e84b..4fa3980ac 100644 --- a/src/InputConfig.h +++ b/es-core/src/InputConfig.h @@ -6,7 +6,7 @@ #include #include #include -#include "pugiXML/pugixml.hpp" +#include "pugixml/pugixml.hpp" #define DEVICE_KEYBOARD -1 @@ -56,9 +56,6 @@ public: std::string string() { - if(!configured) - return ""; - std::stringstream stream; switch(type) { @@ -72,7 +69,7 @@ public: stream << "Hat " << id << " " << getHatDir(value); break; case TYPE_KEY: - stream << "Key " << SDL_GetKeyName((SDLKey)id); + stream << "Key " << SDL_GetKeyName((SDL_Keycode)id); break; default: stream << "Input to string error"; @@ -86,17 +83,15 @@ public: class InputConfig { public: - InputConfig(int deviceId); + InputConfig(int deviceId, const std::string& deviceName, const std::string& deviceGUID); void clear(); void mapInput(const std::string& name, Input input); - void setPlayerNum(int num); + void unmapInput(const std::string& name); // unmap all Inputs mapped to this name - int getPlayerNum(); - int getDeviceId(); - - //Returns the input mapped to this name. - Input getInputByName(const std::string& name); + inline int getDeviceId() const { return mDeviceId; }; + inline const std::string& getDeviceName() { return mDeviceName; } + inline const std::string& getDeviceGUIDString() { return mDeviceGUID; } //Returns true if Input is mapped to this name, false otherwise. bool isMappedTo(const std::string& name, Input input); @@ -104,12 +99,20 @@ public: //Returns a list of names this input is mapped to. std::vector getMappedTo(Input input); - void loadFromXML(pugi::xml_node root, int playerNum); + void loadFromXML(pugi::xml_node root); void writeToXML(pugi::xml_node parent); + + bool isConfigured(); + private: + // Returns true if there is an Input mapped to this name, false otherwise. + // Writes Input mapped to this name to result if true. + bool getInputByName(const std::string& name, Input* result); + std::map mNameMap; const int mDeviceId; - int mPlayerNum; + const std::string mDeviceName; + const std::string mDeviceGUID; }; #endif diff --git a/es-core/src/InputManager.cpp b/es-core/src/InputManager.cpp new file mode 100644 index 000000000..5795f762d --- /dev/null +++ b/es-core/src/InputManager.cpp @@ -0,0 +1,371 @@ +#include "InputManager.h" +#include "InputConfig.h" +#include "Window.h" +#include "Log.h" +#include "pugixml/pugixml.hpp" +#include +#include "platform.h" + +#define KEYBOARD_GUID_STRING "-1" + +// SO HEY POTENTIAL POOR SAP WHO IS TRYING TO MAKE SENSE OF ALL THIS (by which I mean my future self) +// There are like four distinct IDs used for joysticks (crazy, right?) +// 1. Device index - this is the "lowest level" identifier, and is just the Nth joystick plugged in to the system (like /dev/js#). +// It can change even if the device is the same, and is only used to open joysticks (required to receive SDL events). +// 2. SDL_JoystickID - this is an ID for each joystick that is supposed to remain consistent between plugging and unplugging. +// ES doesn't care if it does, though. +// 3. "Device ID" - this is something I made up and is what InputConfig's getDeviceID() returns. +// This is actually just an SDL_JoystickID (also called instance ID), but -1 means "keyboard" instead of "error." +// 4. Joystick GUID - this is some squashed version of joystick vendor, version, and a bunch of other device-specific things. +// It should remain the same across runs of the program/system restarts/device reordering and is what I use to identify which joystick to load. + +namespace fs = boost::filesystem; + +InputManager* InputManager::mInstance = NULL; + +InputManager::InputManager() : mKeyboardInputConfig(NULL) +{ +} + +InputManager::~InputManager() +{ + deinit(); +} + +InputManager* InputManager::getInstance() +{ + if(!mInstance) + mInstance = new InputManager(); + + return mInstance; +} + +void InputManager::init() +{ + if(initialized()) + deinit(); + + SDL_InitSubSystem(SDL_INIT_JOYSTICK); + SDL_JoystickEventState(SDL_ENABLE); + + // first, open all currently present joysticks + int numJoysticks = SDL_NumJoysticks(); + for(int i = 0; i < numJoysticks; i++) + { + addJoystickByDeviceIndex(i); + } + + mKeyboardInputConfig = new InputConfig(DEVICE_KEYBOARD, "Keyboard", KEYBOARD_GUID_STRING); + loadInputConfig(mKeyboardInputConfig); +} + +void InputManager::addJoystickByDeviceIndex(int id) +{ + assert(id >= 0 && id < SDL_NumJoysticks()); + + // open joystick & add to our list + SDL_Joystick* joy = SDL_JoystickOpen(id); + assert(joy); + + // add it to our list so we can close it again later + SDL_JoystickID joyId = SDL_JoystickInstanceID(joy); + mJoysticks[joyId] = joy; + + char guid[65]; + SDL_JoystickGetGUIDString(SDL_JoystickGetGUID(joy), guid, 65); + + // create the InputConfig + mInputConfigs[joyId] = new InputConfig(joyId, SDL_JoystickName(joy), guid); + if(!loadInputConfig(mInputConfigs[joyId])) + { + LOG(LogInfo) << "Added unconfigured joystick " << SDL_JoystickName(joy) << " (GUID: " << guid << ", instance ID: " << joyId << ", device index: " << id << ")."; + }else{ + LOG(LogInfo) << "Added known joystick " << SDL_JoystickName(joy) << " (instance ID: " << joyId << ", device index: " << id << ")"; + } + + // set up the prevAxisValues + int numAxes = SDL_JoystickNumAxes(joy); + mPrevAxisValues[joyId] = new int[numAxes]; + std::fill(mPrevAxisValues[joyId], mPrevAxisValues[joyId] + numAxes, 0); //initialize array to 0 +} + +void InputManager::removeJoystickByJoystickID(SDL_JoystickID joyId) +{ + assert(joyId != -1); + + // delete old prevAxisValues + auto axisIt = mPrevAxisValues.find(joyId); + delete[] axisIt->second; + mPrevAxisValues.erase(axisIt); + + // delete old InputConfig + auto it = mInputConfigs.find(joyId); + delete it->second; + mInputConfigs.erase(it); + + // close the joystick + auto joyIt = mJoysticks.find(joyId); + if(joyIt != mJoysticks.end()) + { + SDL_JoystickClose(joyIt->second); + mJoysticks.erase(joyIt); + }else{ + LOG(LogError) << "Could not find joystick to close (instance ID: " << joyId << ")"; + } +} + +void InputManager::deinit() +{ + if(!initialized()) + return; + + for(auto iter = mJoysticks.begin(); iter != mJoysticks.end(); iter++) + { + SDL_JoystickClose(iter->second); + } + mJoysticks.clear(); + + for(auto iter = mInputConfigs.begin(); iter != mInputConfigs.end(); iter++) + { + delete iter->second; + } + mInputConfigs.clear(); + + for(auto iter = mPrevAxisValues.begin(); iter != mPrevAxisValues.end(); iter++) + { + delete[] iter->second; + } + mPrevAxisValues.clear(); + + if(mKeyboardInputConfig != NULL) + { + delete mKeyboardInputConfig; + mKeyboardInputConfig = NULL; + } + + SDL_JoystickEventState(SDL_DISABLE); + SDL_QuitSubSystem(SDL_INIT_JOYSTICK); +} + +int InputManager::getNumJoysticks() { return mJoysticks.size(); } +int InputManager::getButtonCountByDevice(SDL_JoystickID id) +{ + if(id == DEVICE_KEYBOARD) + return 120; //it's a lot, okay. + else + return SDL_JoystickNumButtons(mJoysticks[id]); +} + +InputConfig* InputManager::getInputConfigByDevice(int device) +{ + if(device == DEVICE_KEYBOARD) + return mKeyboardInputConfig; + else + return mInputConfigs[device]; +} + +bool InputManager::parseEvent(const SDL_Event& ev, Window* window) +{ + bool causedEvent = false; + switch(ev.type) + { + case SDL_JOYAXISMOTION: + //if it switched boundaries + if((abs(ev.jaxis.value) > DEADZONE) != (abs(mPrevAxisValues[ev.jaxis.which][ev.jaxis.axis]) > DEADZONE)) + { + int normValue; + if(abs(ev.jaxis.value) <= DEADZONE) + normValue = 0; + else + if(ev.jaxis.value > 0) + normValue = 1; + else + normValue = -1; + + window->input(getInputConfigByDevice(ev.jaxis.which), Input(ev.jaxis.which, TYPE_AXIS, ev.jaxis.axis, normValue, false)); + causedEvent = true; + } + + mPrevAxisValues[ev.jaxis.which][ev.jaxis.axis] = ev.jaxis.value; + return causedEvent; + + case SDL_JOYBUTTONDOWN: + case SDL_JOYBUTTONUP: + window->input(getInputConfigByDevice(ev.jbutton.which), Input(ev.jbutton.which, TYPE_BUTTON, ev.jbutton.button, ev.jbutton.state == SDL_PRESSED, false)); + return true; + + case SDL_JOYHATMOTION: + window->input(getInputConfigByDevice(ev.jhat.which), Input(ev.jhat.which, TYPE_HAT, ev.jhat.hat, ev.jhat.value, false)); + return true; + + case SDL_KEYDOWN: + if(ev.key.keysym.sym == SDLK_BACKSPACE && SDL_IsTextInputActive()) + { + window->textInput("\b"); + } + + if(ev.key.repeat) + return false; + + if(ev.key.keysym.sym == SDLK_F4) + { + SDL_Event* quit = new SDL_Event(); + quit->type = SDL_QUIT; + SDL_PushEvent(quit); + return false; + } + + window->input(getInputConfigByDevice(DEVICE_KEYBOARD), Input(DEVICE_KEYBOARD, TYPE_KEY, ev.key.keysym.sym, 1, false)); + return true; + + case SDL_KEYUP: + window->input(getInputConfigByDevice(DEVICE_KEYBOARD), Input(DEVICE_KEYBOARD, TYPE_KEY, ev.key.keysym.sym, 0, false)); + return true; + + case SDL_TEXTINPUT: + window->textInput(ev.text.text); + break; + + case SDL_JOYDEVICEADDED: + addJoystickByDeviceIndex(ev.jdevice.which); // ev.jdevice.which is a device index + return true; + + case SDL_JOYDEVICEREMOVED: + removeJoystickByJoystickID(ev.jdevice.which); // ev.jdevice.which is an SDL_JoystickID (instance ID) + return false; + } + + return false; +} + +bool InputManager::loadInputConfig(InputConfig* config) +{ + std::string path = getConfigPath(); + if(!fs::exists(path)) + return false; + + pugi::xml_document doc; + pugi::xml_parse_result res = doc.load_file(path.c_str()); + + if(!res) + { + LOG(LogError) << "Error parsing input config: " << res.description(); + return false; + } + + pugi::xml_node root = doc.child("inputList"); + if(!root) + return false; + + pugi::xml_node configNode = root.find_child_by_attribute("inputConfig", "deviceGUID", config->getDeviceGUIDString().c_str()); + if(!configNode) + configNode = root.find_child_by_attribute("inputConfig", "deviceName", config->getDeviceName().c_str()); + if(!configNode) + return false; + + config->loadFromXML(configNode); + return true; +} + +//used in an "emergency" where no keyboard config could be loaded from the inputmanager config file +//allows the user to select to reconfigure in menus if this happens without having to delete es_input.cfg manually +void InputManager::loadDefaultKBConfig() +{ + InputConfig* cfg = getInputConfigByDevice(DEVICE_KEYBOARD); + + cfg->clear(); + cfg->mapInput("up", Input(DEVICE_KEYBOARD, TYPE_KEY, SDLK_UP, 1, true)); + cfg->mapInput("down", Input(DEVICE_KEYBOARD, TYPE_KEY, SDLK_DOWN, 1, true)); + cfg->mapInput("left", Input(DEVICE_KEYBOARD, TYPE_KEY, SDLK_LEFT, 1, true)); + cfg->mapInput("right", Input(DEVICE_KEYBOARD, TYPE_KEY, SDLK_RIGHT, 1, true)); + + cfg->mapInput("a", Input(DEVICE_KEYBOARD, TYPE_KEY, SDLK_RETURN, 1, true)); + cfg->mapInput("b", Input(DEVICE_KEYBOARD, TYPE_KEY, SDLK_ESCAPE, 1, true)); + cfg->mapInput("start", Input(DEVICE_KEYBOARD, TYPE_KEY, SDLK_F1, 1, true)); + cfg->mapInput("select", Input(DEVICE_KEYBOARD, TYPE_KEY, SDLK_F2, 1, true)); + + cfg->mapInput("pageup", Input(DEVICE_KEYBOARD, TYPE_KEY, SDLK_RIGHTBRACKET, 1, true)); + cfg->mapInput("pagedown", Input(DEVICE_KEYBOARD, TYPE_KEY, SDLK_LEFTBRACKET, 1, true)); +} + +void InputManager::writeDeviceConfig(InputConfig* config) +{ + assert(initialized()); + + std::string path = getConfigPath(); + + pugi::xml_document doc; + + if(fs::exists(path)) + { + // merge files + pugi::xml_parse_result result = doc.load_file(path.c_str()); + if(!result) + { + LOG(LogError) << "Error parsing input config: " << result.description(); + }else{ + // successfully loaded, delete the old entry if it exists + pugi::xml_node root = doc.child("inputList"); + if(root) + { + pugi::xml_node oldEntry = root.find_child_by_attribute("inputConfig", "deviceGUID", config->getDeviceGUIDString().c_str()); + if(oldEntry) + root.remove_child(oldEntry); + oldEntry = root.find_child_by_attribute("inputConfig", "deviceName", config->getDeviceName().c_str()); + if(oldEntry) + root.remove_child(oldEntry); + } + } + } + + pugi::xml_node root = doc.child("inputList"); + if(!root) + root = doc.append_child("inputList"); + + config->writeToXML(root); + doc.save_file(path.c_str()); +} + +std::string InputManager::getConfigPath() +{ + std::string path = getHomePath(); + path += "/.emulationstation/es_input.cfg"; + return path; +} + +bool InputManager::initialized() const +{ + return mKeyboardInputConfig != NULL; +} + +int InputManager::getNumConfiguredDevices() +{ + int num = 0; + for(auto it = mInputConfigs.begin(); it != mInputConfigs.end(); it++) + { + if(it->second->isConfigured()) + num++; + } + + if(mKeyboardInputConfig->isConfigured()) + num++; + + return num; +} + +std::string InputManager::getDeviceGUIDString(int deviceId) +{ + if(deviceId == DEVICE_KEYBOARD) + return KEYBOARD_GUID_STRING; + + auto it = mJoysticks.find(deviceId); + if(it == mJoysticks.end()) + { + LOG(LogError) << "getDeviceGUIDString - deviceId " << deviceId << " not found!"; + return "something went horribly wrong"; + } + + char guid[65]; + SDL_JoystickGetGUIDString(SDL_JoystickGetGUID(it->second), guid, 65); + return std::string(guid); +} diff --git a/es-core/src/InputManager.h b/es-core/src/InputManager.h new file mode 100644 index 000000000..5ec8d8848 --- /dev/null +++ b/es-core/src/InputManager.h @@ -0,0 +1,58 @@ +#ifndef _INPUTMANAGER_H_ +#define _INPUTMANAGER_H_ + +#include +#include +#include +#include + +class InputConfig; +class Window; + +//you should only ever instantiate one of these, by the way +class InputManager +{ +private: + InputManager(); + + static InputManager* mInstance; + + static const int DEADZONE = 23000; + + void loadDefaultKBConfig(); + + std::map mJoysticks; + std::map mInputConfigs; + InputConfig* mKeyboardInputConfig; + + std::map mPrevAxisValues; + + bool initialized() const; + + void addJoystickByDeviceIndex(int id); + void removeJoystickByJoystickID(SDL_JoystickID id); + bool loadInputConfig(InputConfig* config); // returns true if successfully loaded, false if not (or didn't exist) + +public: + virtual ~InputManager(); + + static InputManager* getInstance(); + + void writeDeviceConfig(InputConfig* config); + static std::string getConfigPath(); + + void init(); + void deinit(); + + int getNumJoysticks(); + int getButtonCountByDevice(int deviceId); + int getNumConfiguredDevices(); + + std::string getDeviceGUIDString(int deviceId); + + InputConfig* getInputConfigByDevice(int deviceId); + + bool parseEvent(const SDL_Event& ev, Window* window); +}; + +#endif diff --git a/src/Log.cpp b/es-core/src/Log.cpp similarity index 91% rename from src/Log.cpp rename to es-core/src/Log.cpp index 0e8522601..643aef16a 100644 --- a/src/Log.cpp +++ b/es-core/src/Log.cpp @@ -58,7 +58,9 @@ Log::~Log() if(getOutput() == NULL) { - std::cerr << "ERROR - tried to write to log file before it was open!\n"; + // not open yet, print to stdout + std::cerr << "ERROR - tried to write to log file before it was open! The following won't be logged:\n"; + std::cerr << os.str(); return; } diff --git a/src/Log.h b/es-core/src/Log.h similarity index 100% rename from src/Log.h rename to es-core/src/Log.h diff --git a/src/Renderer.h b/es-core/src/Renderer.h similarity index 60% rename from src/Renderer.h rename to es-core/src/Renderer.h index fc5b64dd6..c286974ee 100644 --- a/src/Renderer.h +++ b/es-core/src/Renderer.h @@ -12,7 +12,8 @@ class GuiComponent; class Font; //The Renderer provides several higher-level functions for drawing (rectangles, text, etc.). -//Defined in multiple files - Renderer.cpp has the GuiComponent stuff, Renderer_draw_* includes renderer-specific drawing implementations, and Renderer_init_* includes renderer-specific init/deinit. +//Renderer_draw_gl.cpp has most of the higher-level functions and wrappers. +//Renderer_init_*.cpp has platform-specific renderer initialziation/deinitialziation code. (e.g. the Raspberry Pi sets up dispmanx/OpenGL ES) namespace Renderer { bool init(int w, int h); @@ -36,7 +37,8 @@ namespace Renderer void setMatrix(float* mat); void setMatrix(const Eigen::Affine3f& transform); - void drawRect(int x, int y, int w, int h, unsigned int color); + void drawRect(int x, int y, int w, int h, unsigned int color, GLenum blend_sfactor = GL_SRC_ALPHA, GLenum blend_dfactor = GL_ONE_MINUS_SRC_ALPHA); + void drawRect(float x, float y, float w, float h, unsigned int color, GLenum blend_sfactor = GL_SRC_ALPHA, GLenum blend_dfactor = GL_ONE_MINUS_SRC_ALPHA); } #endif diff --git a/src/Renderer_draw_gl.cpp b/es-core/src/Renderer_draw_gl.cpp similarity index 73% rename from src/Renderer_draw_gl.cpp rename to es-core/src/Renderer_draw_gl.cpp index c12a4a82c..2ca93a2e4 100644 --- a/src/Renderer_draw_gl.cpp +++ b/es-core/src/Renderer_draw_gl.cpp @@ -2,10 +2,11 @@ #include "Renderer.h" #include GLHEADER #include -#include "Font.h" +#include "resources/Font.h" #include #include "Log.h" #include +#include "Util.h" namespace Renderer { std::stack clipStack; @@ -39,14 +40,31 @@ namespace Renderer { if(box[3] == 0) box[3] = Renderer::getScreenHeight() - box.y(); - //TODO - make sure the box fits within clipStack.top(), and clip further accordingly! - //glScissor starts at the bottom left of the window //so (0, 0, 1, 1) is the bottom left pixel //everything else uses y+ = down, so flip it to be consistent //rect.pos.y = Renderer::getScreenHeight() - rect.pos.y - rect.size.y; box[1] = Renderer::getScreenHeight() - box.y() - box[3]; + //make sure the box fits within clipStack.top(), and clip further accordingly + if(clipStack.size()) + { + Eigen::Vector4i& top = clipStack.top(); + if(top[0] > box[0]) + box[0] = top[0]; + if(top[1] > box[1]) + box[1] = top[1]; + if(top[0] + top[2] < box[0] + box[2]) + box[2] = (top[0] + top[2]) - box[0]; + if(top[1] + top[3] < box[1] + box[3]) + box[3] = (top[1] + top[3]) - box[1]; + } + + if(box[2] < 0) + box[2] = 0; + if(box[3] < 0) + box[3] = 0; + clipStack.push(box); glScissor(box[0], box[1], box[2], box[3]); glEnable(GL_SCISSOR_TEST); @@ -70,7 +88,12 @@ namespace Renderer { } } - void drawRect(int x, int y, int w, int h, unsigned int color) + void drawRect(float x, float y, float w, float h, unsigned int color, GLenum blend_sfactor, GLenum blend_dfactor) + { + drawRect((int)round(x), (int)round(y), (int)round(w), (int)round(h), color, blend_sfactor, blend_dfactor); + } + + void drawRect(int x, int y, int w, int h, unsigned int color, GLenum blend_sfactor, GLenum blend_dfactor) { #ifdef USE_OPENGL_ES GLshort points[12]; @@ -90,7 +113,7 @@ namespace Renderer { buildGLColorArray(colors, color, 6); glEnable(GL_BLEND); - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glBlendFunc(blend_sfactor, blend_dfactor); glEnableClientState(GL_VERTEX_ARRAY); glEnableClientState(GL_COLOR_ARRAY); @@ -103,9 +126,9 @@ namespace Renderer { glDrawArrays(GL_TRIANGLES, 0, 6); - glDisableClientState(GL_BLEND); + glDisable(GL_BLEND); glDisableClientState(GL_VERTEX_ARRAY); - glDisable(GL_COLOR_ARRAY); + glDisableClientState(GL_COLOR_ARRAY); } void setMatrix(float* matrix) diff --git a/src/Renderer_init.cpp b/es-core/src/Renderer_init.cpp similarity index 82% rename from src/Renderer_init.cpp rename to es-core/src/Renderer_init.cpp index 4158ba6cc..3b098baee 100644 --- a/src/Renderer_init.cpp +++ b/es-core/src/Renderer_init.cpp @@ -1,7 +1,7 @@ #include "Renderer.h" #include "platform.h" #include GLHEADER -#include "Font.h" +#include "resources/Font.h" namespace Renderer { diff --git a/src/Renderer_init_sdlgl.cpp b/es-core/src/Renderer_init_sdlgl.cpp similarity index 50% rename from src/Renderer_init_sdlgl.cpp rename to es-core/src/Renderer_init_sdlgl.cpp index 254d890c0..dcc13ebfd 100644 --- a/src/Renderer_init_sdlgl.cpp +++ b/es-core/src/Renderer_init_sdlgl.cpp @@ -1,22 +1,18 @@ #include "Renderer.h" #include #include "platform.h" - -#ifdef _WINDOWS_ - #include -#endif - #include GLHEADER - -#include "Font.h" +#include "resources/Font.h" #include -#include "InputManager.h" #include "Log.h" #include "ImageIO.h" #include "../data/Resources.h" -#include "EmulationStation.h" #include "Settings.h" +#ifdef USE_OPENGL_ES + #define glOrtho glOrthof +#endif + namespace Renderer { static bool initialCursorState; @@ -27,9 +23,10 @@ namespace Renderer unsigned int getScreenWidth() { return display_width; } unsigned int getScreenHeight() { return display_height; } - SDL_Surface* sdlScreen = NULL; + SDL_Window* sdlWindow = NULL; + SDL_GLContext sdlContext = NULL; - bool createSurface() //unsigned int display_width, unsigned int display_height) + bool createSurface() { LOG(LogInfo) << "Creating surface..."; @@ -39,53 +36,65 @@ namespace Renderer return false; } - //ATM it is best to just leave the window icon alone on windows. - //When compiled as a Windows application, ES at least has an icon in the taskbar - //The method below looks pretty shite as alpha isn't taken into account... -#ifndef WIN32 - //try loading PNG from memory - size_t width = 0; - size_t height = 0; - std::vector rawData = ImageIO::loadFromMemoryRGBA32(ES_logo_32_png_data, ES_logo_32_png_size, width, height); - if (!rawData.empty()) { - //SDL interprets each pixel as a 32-bit number, so our masks must depend on the endianness (byte order) of the machine -#if SDL_BYTEORDER == SDL_BIG_ENDIAN - Uint32 rmask = 0xff000000; Uint32 gmask = 0x0000ff00; Uint32 bmask = 0x00ff0000; Uint32 amask = 0x000000ff; -#else - Uint32 rmask = 0x000000ff; Uint32 gmask = 0x00ff0000; Uint32 bmask = 0x0000ff00; Uint32 amask = 0xff000000; -#endif - //try creating SDL surface from logo data - SDL_Surface * logoSurface = SDL_CreateRGBSurfaceFrom((void *)rawData.data(), width, height, 32, width*4, rmask, gmask, bmask, amask); - if (logoSurface != nullptr) { - //change window icon. this sucks atm, but there's nothing better we can do. SDL 1.3 or 2.0 should sort this out... - SDL_WM_SetIcon(logoSurface, nullptr); - } - } -#endif - - SDL_WM_SetCaption("EmulationStation", "EmulationStation"); - SDL_GL_SetAttribute(SDL_GL_RED_SIZE, 8); SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, 8); SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, 8); SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 16); SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1); - //SDL_GL_SetAttribute(SDL_GL_SWAP_CONTROL, 1); //vsync - sdlScreen = SDL_SetVideoMode(display_width, display_height, 16, SDL_OPENGL | (Settings::getInstance()->getBool("WINDOWED") ? 0 : SDL_FULLSCREEN)); - if(sdlScreen == NULL) + // multisample anti-aliasing + //SDL_GL_SetAttribute(SDL_GL_MULTISAMPLEBUFFERS, 1); + //SDL_GL_SetAttribute(SDL_GL_MULTISAMPLESAMPLES, 2); + +#ifdef USE_OPENGL_ES + SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 1); +#endif + //SDL_GL_SetSwapInterval(1); //0 for immediate updates, 1 for updates synchronized with the vertical retrace, -1 for late swap tearing + + SDL_DisplayMode dispMode; + SDL_GetDesktopDisplayMode(0, &dispMode); + if(display_width == 0) + display_width = dispMode.w; + if(display_height == 0) + display_height = dispMode.h; + + sdlWindow = SDL_CreateWindow("EmulationStation", + SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, + display_width, display_height, + SDL_WINDOW_OPENGL | (Settings::getInstance()->getBool("Windowed") ? 0 : SDL_WINDOW_FULLSCREEN)); + + if(sdlWindow == NULL) { - LOG(LogError) << "Error creating SDL video surface!"; + LOG(LogError) << "Error creating SDL window!\n\t" << SDL_GetError(); return false; } - //usually display width/height are not specified, i.e. zero, which SDL automatically takes as "native resolution" - //so, since other things rely on the size of the screen (damn currently unnormalized coordinate system), we set it here - //even though the system was already initialized - display_width = sdlScreen->w; - display_height = sdlScreen->h; + LOG(LogInfo) << "Created window successfully."; - LOG(LogInfo) << "Created surface successfully."; + //set an icon for the window + size_t width = 0; + size_t height = 0; + std::vector rawData = ImageIO::loadFromMemoryRGBA32(window_icon_256_png_data, window_icon_256_png_size, width, height); + if (!rawData.empty()) + { + ImageIO::flipPixelsVert(rawData.data(), width, height); + + //SDL interprets each pixel as a 32-bit number, so our masks must depend on the endianness (byte order) of the machine + #if SDL_BYTEORDER == SDL_BIG_ENDIAN + Uint32 rmask = 0xff000000; Uint32 gmask = 0x00ff0000; Uint32 bmask = 0x0000ff00; Uint32 amask = 0x000000ff; + #else + Uint32 rmask = 0x000000ff; Uint32 gmask = 0x0000ff00; Uint32 bmask = 0x00ff0000; Uint32 amask = 0xff000000; + #endif + //try creating SDL surface from logo data + SDL_Surface * logoSurface = SDL_CreateRGBSurfaceFrom((void *)rawData.data(), width, height, 32, width * 4, rmask, gmask, bmask, amask); + if (logoSurface != NULL) + { + SDL_SetWindowIcon(sdlWindow, logoSurface); + SDL_FreeSurface(logoSurface); + } + } + + sdlContext = SDL_GL_CreateContext(sdlWindow); //hide mouse cursor initialCursorState = SDL_ShowCursor(0) == 1; @@ -95,14 +104,17 @@ namespace Renderer void swapBuffers() { - SDL_GL_SwapBuffers(); + SDL_GL_SwapWindow(sdlWindow); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); } void destroySurface() { - SDL_FreeSurface(sdlScreen); - sdlScreen = NULL; + SDL_GL_DeleteContext(sdlContext); + sdlContext = NULL; + + SDL_DestroyWindow(sdlWindow); + sdlWindow = NULL; //show mouse cursor SDL_ShowCursor(initialCursorState); diff --git a/src/Settings.cpp b/es-core/src/Settings.cpp similarity index 56% rename from src/Settings.cpp rename to es-core/src/Settings.cpp index 847733103..34c82773c 100644 --- a/src/Settings.cpp +++ b/es-core/src/Settings.cpp @@ -1,11 +1,23 @@ #include "Settings.h" #include "Log.h" -#include "pugiXML/pugixml.hpp" +#include "pugixml/pugixml.hpp" #include "platform.h" #include +#include Settings* Settings::sInstance = NULL; +// these values are NOT saved to es_settings.xml +// since they're set through command-line arguments, and not the in-program settings menu +std::vector settings_dont_save = boost::assign::list_of + ("Debug") + ("DebugGrid") + ("DebugText") + ("ParseGamelistOnly") + ("ShowExit") + ("Windowed") + ("IgnoreGamelist"); + Settings::Settings() { setDefaults(); @@ -25,17 +37,28 @@ void Settings::setDefaults() mBoolMap.clear(); mIntMap.clear(); - mBoolMap["PARSEGAMELISTONLY"] = false; - mBoolMap["IGNOREGAMELIST"] = false; - mBoolMap["DRAWFRAMERATE"] = false; - mBoolMap["DONTSHOWEXIT"] = false; - mBoolMap["DEBUG"] = false; - mBoolMap["WINDOWED"] = false; - mBoolMap["DISABLESOUNDS"] = false; + mBoolMap["ParseGamelistOnly"] = false; + mBoolMap["DrawFramerate"] = false; + mBoolMap["ShowExit"] = true; + mBoolMap["Windowed"] = false; + mBoolMap["EnableSounds"] = true; + mBoolMap["ShowHelpPrompts"] = true; + mBoolMap["ScrapeRatings"] = true; + mBoolMap["IgnoreGamelist"] = false; + mBoolMap["QuickSystemSelect"] = true; - mIntMap["DIMTIME"] = 30*1000; + mBoolMap["Debug"] = false; + mBoolMap["DebugGrid"] = false; + mBoolMap["DebugText"] = false; - mIntMap["GameListSortIndex"] = 0; + mIntMap["ScreenSaverTime"] = 5*60*1000; // 5 minutes + mIntMap["ScraperResizeWidth"] = 400; + mIntMap["ScraperResizeHeight"] = 0; + + mStringMap["TransitionStyle"] = "fade"; + mStringMap["ThemeSet"] = ""; + mStringMap["ScreenSaverBehavior"] = "dim"; + mStringMap["Scraper"] = "TheGamesDB"; } template @@ -43,6 +66,10 @@ void saveMap(pugi::xml_document& doc, std::map& map, const char* type) { for(auto iter = map.begin(); iter != map.end(); iter++) { + // key is on the "don't save" list, so don't save it + if(std::find(settings_dont_save.begin(), settings_dont_save.end(), iter->first) != settings_dont_save.end()) + continue; + pugi::xml_node node = doc.append_child(type); node.append_attribute("name").set_value(iter->first.c_str()); node.append_attribute("value").set_value(iter->second); @@ -59,6 +86,14 @@ void Settings::saveFile() saveMap(doc, mIntMap, "int"); saveMap(doc, mFloatMap, "float"); + //saveMap(doc, mStringMap, "string"); + for(auto iter = mStringMap.begin(); iter != mStringMap.end(); iter++) + { + pugi::xml_node node = doc.append_child("string"); + node.append_attribute("name").set_value(iter->first.c_str()); + node.append_attribute("value").set_value(iter->second.c_str()); + } + doc.save_file(path.c_str()); } @@ -77,12 +112,14 @@ void Settings::loadFile() return; } - for(pugi::xml_node node = doc.child("bool"); node; node = node.next_sibling()) + for(pugi::xml_node node = doc.child("bool"); node; node = node.next_sibling("bool")) setBool(node.attribute("name").as_string(), node.attribute("value").as_bool()); - for(pugi::xml_node node = doc.child("int"); node; node = node.next_sibling()) + for(pugi::xml_node node = doc.child("int"); node; node = node.next_sibling("int")) setInt(node.attribute("name").as_string(), node.attribute("value").as_int()); - for(pugi::xml_node node = doc.child("float"); node; node = node.next_sibling()) + for(pugi::xml_node node = doc.child("float"); node; node = node.next_sibling("float")) setFloat(node.attribute("name").as_string(), node.attribute("value").as_float()); + for(pugi::xml_node node = doc.child("string"); node; node = node.next_sibling("string")) + setString(node.attribute("name").as_string(), node.attribute("value").as_string()); } //Print a warning message if the setting we're trying to get doesn't already exist in the map, then return the value in the map. @@ -102,3 +139,4 @@ void Settings::setMethodName(const std::string& name, type value) \ SETTINGS_GETSET(bool, mBoolMap, getBool, setBool); SETTINGS_GETSET(int, mIntMap, getInt, setInt); SETTINGS_GETSET(float, mFloatMap, getFloat, setFloat); +SETTINGS_GETSET(const std::string&, mStringMap, getString, setString); \ No newline at end of file diff --git a/src/Settings.h b/es-core/src/Settings.h similarity index 80% rename from src/Settings.h rename to es-core/src/Settings.h index 099a0afa7..6b56400fe 100644 --- a/src/Settings.h +++ b/es-core/src/Settings.h @@ -1,6 +1,4 @@ -#ifndef _SETTINGS_H_ -#define _SETTINGS_H_ - +#pragma once #include #include @@ -17,10 +15,12 @@ public: bool getBool(const std::string& name); int getInt(const std::string& name); float getFloat(const std::string& name); + const std::string& getString(const std::string& name); void setBool(const std::string& name, bool value); void setInt(const std::string& name, int value); void setFloat(const std::string& name, float value); + void setString(const std::string& name, const std::string& value); private: static Settings* sInstance; @@ -33,6 +33,5 @@ private: std::map mBoolMap; std::map mIntMap; std::map mFloatMap; + std::map mStringMap; }; - -#endif diff --git a/src/Sound.cpp b/es-core/src/Sound.cpp similarity index 76% rename from src/Sound.cpp rename to es-core/src/Sound.cpp index 64bf9c86b..adbfa9cf3 100644 --- a/src/Sound.cpp +++ b/es-core/src/Sound.cpp @@ -2,6 +2,35 @@ #include "AudioManager.h" #include "Log.h" #include "Settings.h" +#include "ThemeData.h" + +std::map< std::string, std::shared_ptr > Sound::sMap; + +std::shared_ptr Sound::get(const std::string& path) +{ + auto it = sMap.find(path); + if(it != sMap.end()) + return it->second; + + std::shared_ptr sound = std::shared_ptr(new Sound(path)); + AudioManager::getInstance()->registerSound(sound); + sMap[path] = sound; + return sound; +} + +std::shared_ptr Sound::getFromTheme(const std::shared_ptr& theme, const std::string& view, const std::string& element) +{ + LOG(LogInfo) << " req sound [" << view << "." << element << "]"; + + const ThemeData::ThemeElement* elem = theme->getElement(view, element, "sound"); + if(!elem || !elem->has("path")) + { + LOG(LogInfo) << " (missing)"; + return get(""); + } + + return get(elem->get("path")); +} Sound::Sound(const std::string & path) : mSampleData(NULL), mSamplePos(0), mSampleLength(0), playing(false) { @@ -82,7 +111,7 @@ void Sound::play() if(mSampleData == NULL) return; - if(Settings::getInstance()->getBool("DISABLESOUNDS")) + if(Settings::getInstance()->getBool("EnableSounds")) return; SDL_LockAudio(); diff --git a/src/Sound.h b/es-core/src/Sound.h similarity index 64% rename from src/Sound.h rename to es-core/src/Sound.h index 51cac2f9f..2eb430ce0 100644 --- a/src/Sound.h +++ b/es-core/src/Sound.h @@ -2,8 +2,11 @@ #define _SOUND_H_ #include +#include +#include #include "SDL_audio.h" +class ThemeData; class Sound { @@ -15,7 +18,9 @@ class Sound bool playing; public: - Sound(const std::string & path = ""); + static std::shared_ptr get(const std::string& path); + static std::shared_ptr getFromTheme(const std::shared_ptr& theme, const std::string& view, const std::string& elem); + ~Sound(); void init(); @@ -32,6 +37,10 @@ public: void setPosition(Uint32 newPosition); Uint32 getLength() const; Uint32 getLengthMS() const; + +private: + Sound(const std::string & path = ""); + static std::map< std::string, std::shared_ptr > sMap; }; #endif diff --git a/es-core/src/ThemeData.cpp b/es-core/src/ThemeData.cpp new file mode 100644 index 000000000..fce86628f --- /dev/null +++ b/es-core/src/ThemeData.cpp @@ -0,0 +1,476 @@ +#include "ThemeData.h" +#include "Renderer.h" +#include "resources/Font.h" +#include "Sound.h" +#include "resources/TextureResource.h" +#include "Log.h" +#include "Settings.h" +#include "pugixml/pugixml.hpp" +#include + +#include "components/ImageComponent.h" +#include "components/TextComponent.h" + + +// This is a work around for some ambiguity that is introduced in C++11 that boost::assign::map_list_of leave open. +// We use makeMap(actualmap) to implicitly convert the boost::assign::map_list_of's return type to ElementMapType. +// Problem exists with gcc 4.7 and Boost 1.51. Works fine with MSVC2010 without this hack. +typedef std::map ElementMapType; +template +ElementMapType makeMap(const T& mapInit) +{ + ElementMapType m = mapInit; + return m; +} + +std::map< std::string, ElementMapType > ThemeData::sElementMap = boost::assign::map_list_of + ("image", makeMap(boost::assign::map_list_of + ("pos", NORMALIZED_PAIR) + ("size", NORMALIZED_PAIR) + ("maxSize", NORMALIZED_PAIR) + ("origin", NORMALIZED_PAIR) + ("path", PATH) + ("tile", BOOLEAN) + ("color", COLOR))) + ("text", makeMap(boost::assign::map_list_of + ("pos", NORMALIZED_PAIR) + ("size", NORMALIZED_PAIR) + ("text", STRING) + ("color", COLOR) + ("fontPath", PATH) + ("fontSize", FLOAT) + ("alignment", STRING) + ("forceUppercase", BOOLEAN) + ("lineSpacing", FLOAT))) + ("textlist", makeMap(boost::assign::map_list_of + ("pos", NORMALIZED_PAIR) + ("size", NORMALIZED_PAIR) + ("selectorColor", COLOR) + ("selectedColor", COLOR) + ("primaryColor", COLOR) + ("secondaryColor", COLOR) + ("fontPath", PATH) + ("fontSize", FLOAT) + ("scrollSound", PATH) + ("alignment", STRING) + ("horizontalMargin", FLOAT) + ("forceUppercase", BOOLEAN) + ("lineSpacing", FLOAT))) + ("container", makeMap(boost::assign::map_list_of + ("pos", NORMALIZED_PAIR) + ("size", NORMALIZED_PAIR))) + ("ninepatch", makeMap(boost::assign::map_list_of + ("pos", NORMALIZED_PAIR) + ("size", NORMALIZED_PAIR) + ("path", PATH))) + ("datetime", makeMap(boost::assign::map_list_of + ("pos", NORMALIZED_PAIR) + ("size", NORMALIZED_PAIR) + ("color", COLOR) + ("fontPath", PATH) + ("fontSize", FLOAT) + ("forceUppercase", BOOLEAN))) + ("rating", makeMap(boost::assign::map_list_of + ("pos", NORMALIZED_PAIR) + ("size", NORMALIZED_PAIR) + ("filledPath", PATH) + ("unfilledPath", PATH))) + ("sound", makeMap(boost::assign::map_list_of + ("path", PATH))) + ("helpsystem", makeMap(boost::assign::map_list_of + ("pos", NORMALIZED_PAIR) + ("textColor", COLOR) + ("iconColor", COLOR) + ("fontPath", PATH) + ("fontSize", FLOAT))); + +namespace fs = boost::filesystem; + +#define MINIMUM_THEME_FORMAT_VERSION 3 +#define CURRENT_THEME_FORMAT_VERSION 3 + +// helper +unsigned int getHexColor(const char* str) +{ + ThemeException error; + if(!str) + throw error << "Empty color"; + + size_t len = strlen(str); + if(len != 6 && len != 8) + throw error << "Invalid color (bad length, \"" << str << "\" - must be 6 or 8)"; + + unsigned int val; + std::stringstream ss; + ss << str; + ss >> std::hex >> val; + + if(len == 6) + val = (val << 8) | 0xFF; + + return val; +} + +// helper +std::string resolvePath(const char* in, const fs::path& relative) +{ + if(!in || in[0] == '\0') + return in; + + fs::path relPath = relative.parent_path(); + + boost::filesystem::path path(in); + + // we use boost filesystem here instead of just string checks because + // some directories could theoretically start with ~ or . + if(*path.begin() == "~") + { + path = getHomePath() + (in + 1); + }else if(*path.begin() == ".") + { + path = relPath / (in + 1); + } + + return path.generic_string(); +} + + + +ThemeData::ThemeData() +{ + mVersion = 0; +} + +void ThemeData::loadFile(const std::string& path) +{ + mPaths.push_back(path); + + ThemeException error; + error.setFiles(mPaths); + + if(!fs::exists(path)) + throw error << "File does not exist!"; + + mVersion = 0; + mViews.clear(); + + pugi::xml_document doc; + pugi::xml_parse_result res = doc.load_file(path.c_str()); + if(!res) + throw error << "XML parsing error: \n " << res.description(); + + pugi::xml_node root = doc.child("theme"); + if(!root) + throw error << "Missing tag!"; + + // parse version + mVersion = root.child("formatVersion").text().as_float(-404); + if(mVersion == -404) + throw error << " tag missing!\n It's either out of date or you need to add " << CURRENT_THEME_FORMAT_VERSION << " inside your tag."; + + if(mVersion < MINIMUM_THEME_FORMAT_VERSION) + throw error << "Theme uses format version " << mVersion << ". Minimum supported version is " << MINIMUM_THEME_FORMAT_VERSION << "."; + + parseIncludes(root); + parseViews(root); +} + + +void ThemeData::parseIncludes(const pugi::xml_node& root) +{ + ThemeException error; + error.setFiles(mPaths); + + for(pugi::xml_node node = root.child("include"); node; node = node.next_sibling("include")) + { + const char* relPath = node.text().get(); + std::string path = resolvePath(relPath, mPaths.back()); + if(!ResourceManager::getInstance()->fileExists(path)) + throw error << "Included file \"" << relPath << "\" not found! (resolved to \"" << path << "\")"; + + error << " from included file \"" << relPath << "\":\n "; + + mPaths.push_back(path); + + pugi::xml_document includeDoc; + pugi::xml_parse_result result = includeDoc.load_file(path.c_str()); + if(!result) + throw error << "Error parsing file: \n " << result.description(); + + pugi::xml_node root = includeDoc.child("theme"); + if(!root) + throw error << "Missing tag!"; + + parseIncludes(root); + parseViews(root); + + mPaths.pop_back(); + } +} + +void ThemeData::parseViews(const pugi::xml_node& root) +{ + ThemeException error; + error.setFiles(mPaths); + + // parse views + for(pugi::xml_node node = root.child("view"); node; node = node.next_sibling("view")) + { + if(!node.attribute("name")) + throw error << "View missing \"name\" attribute!"; + + const char* delim = " \t\r\n,"; + const std::string nameAttr = node.attribute("name").as_string(); + size_t prevOff = nameAttr.find_first_not_of(delim, 0); + size_t off = nameAttr.find_first_of(delim, prevOff); + std::string viewKey; + while(off != std::string::npos || prevOff != std::string::npos) + { + viewKey = nameAttr.substr(prevOff, off - prevOff); + prevOff = nameAttr.find_first_not_of(delim, off); + off = nameAttr.find_first_of(delim, prevOff); + + ThemeView& view = mViews.insert(std::pair(viewKey, ThemeView())).first->second; + parseView(node, view); + } + } +} + +void ThemeData::parseView(const pugi::xml_node& root, ThemeView& view) +{ + ThemeException error; + error.setFiles(mPaths); + + for(pugi::xml_node node = root.first_child(); node; node = node.next_sibling()) + { + if(!node.attribute("name")) + throw error << "Element of type \"" << node.name() << "\" missing \"name\" attribute!"; + + auto elemTypeIt = sElementMap.find(node.name()); + if(elemTypeIt == sElementMap.end()) + throw error << "Unknown element of type \"" << node.name() << "\"!"; + + const char* delim = " \t\r\n,"; + const std::string nameAttr = node.attribute("name").as_string(); + size_t prevOff = nameAttr.find_first_not_of(delim, 0); + size_t off = nameAttr.find_first_of(delim, prevOff); + while(off != std::string::npos || prevOff != std::string::npos) + { + std::string elemKey = nameAttr.substr(prevOff, off - prevOff); + prevOff = nameAttr.find_first_not_of(delim, off); + off = nameAttr.find_first_of(delim, prevOff); + + parseElement(node, elemTypeIt->second, + view.elements.insert(std::pair(elemKey, ThemeElement())).first->second); + + if(std::find(view.orderedKeys.begin(), view.orderedKeys.end(), elemKey) == view.orderedKeys.end()) + view.orderedKeys.push_back(elemKey); + } + } +} + + +void ThemeData::parseElement(const pugi::xml_node& root, const std::map& typeMap, ThemeElement& element) +{ + ThemeException error; + error.setFiles(mPaths); + + element.type = root.name(); + element.extra = root.attribute("extra").as_bool(false); + + for(pugi::xml_node node = root.first_child(); node; node = node.next_sibling()) + { + auto typeIt = typeMap.find(node.name()); + if(typeIt == typeMap.end()) + throw error << "Unknown property type \"" << node.name() << "\" (for element of type " << root.name() << ")."; + + switch(typeIt->second) + { + case NORMALIZED_PAIR: + { + std::string str = std::string(node.text().as_string()); + + size_t divider = str.find(' '); + if(divider == std::string::npos) + throw error << "invalid normalized pair (property \"" << node.name() << "\", value \"" << str.c_str() << "\")"; + + std::string first = str.substr(0, divider); + std::string second = str.substr(divider, std::string::npos); + + Eigen::Vector2f val(atof(first.c_str()), atof(second.c_str())); + + element.properties[node.name()] = val; + break; + } + case STRING: + element.properties[node.name()] = std::string(node.text().as_string()); + break; + case PATH: + { + std::string path = resolvePath(node.text().as_string(), mPaths.back().string()); + if(!ResourceManager::getInstance()->fileExists(path)) + { + std::stringstream ss; + ss << " Warning " << error.msg; // "from theme yadda yadda, included file yadda yadda + ss << "could not find file \"" << node.text().get() << "\" "; + if(node.text().get() != path) + ss << "(which resolved to \"" << path << "\") "; + LOG(LogWarning) << ss.str(); + } + element.properties[node.name()] = path; + break; + } + case COLOR: + element.properties[node.name()] = getHexColor(node.text().as_string()); + break; + case FLOAT: + element.properties[node.name()] = node.text().as_float(); + break; + case BOOLEAN: + element.properties[node.name()] = node.text().as_bool(); + break; + default: + throw error << "Unknown ElementPropertyType for \"" << root.attribute("name").as_string() << "\", property " << node.name(); + } + } +} + + +const ThemeData::ThemeElement* ThemeData::getElement(const std::string& view, const std::string& element, const std::string& expectedType) const +{ + auto viewIt = mViews.find(view); + if(viewIt == mViews.end()) + return NULL; // not found + + auto elemIt = viewIt->second.elements.find(element); + if(elemIt == viewIt->second.elements.end()) return NULL; + + if(elemIt->second.type != expectedType && !expectedType.empty()) + { + LOG(LogWarning) << " requested mismatched theme type for [" << view << "." << element << "] - expected \"" + << expectedType << "\", got \"" << elemIt->second.type << "\""; + return NULL; + } + + return &elemIt->second; +} + +const std::shared_ptr& ThemeData::getDefault() +{ + static std::shared_ptr theme = nullptr; + if(theme == nullptr) + { + theme = std::shared_ptr(new ThemeData()); + + const std::string path = getHomePath() + "/.emulationstation/es_theme_default.xml"; + if(fs::exists(path)) + { + try + { + theme->loadFile(path); + } catch(ThemeException& e) + { + LOG(LogError) << e.what(); + theme = std::shared_ptr(new ThemeData()); //reset to empty + } + } + } + + return theme; +} + +std::vector ThemeData::makeExtras(const std::shared_ptr& theme, const std::string& view, Window* window) +{ + std::vector comps; + + auto viewIt = theme->mViews.find(view); + if(viewIt == theme->mViews.end()) + return comps; + + for(auto it = viewIt->second.orderedKeys.begin(); it != viewIt->second.orderedKeys.end(); it++) + { + ThemeElement& elem = viewIt->second.elements.at(*it); + if(elem.extra) + { + GuiComponent* comp = NULL; + const std::string& t = elem.type; + if(t == "image") + comp = new ImageComponent(window); + else if(t == "text") + comp = new TextComponent(window); + + comp->applyTheme(theme, view, *it, ThemeFlags::ALL); + comps.push_back(comp); + } + } + + return comps; +} + +void ThemeExtras::setExtras(const std::vector& extras) +{ + // delete old extras (if any) + for(auto it = mExtras.begin(); it != mExtras.end(); it++) + delete *it; + + mExtras = extras; + for(auto it = mExtras.begin(); it != mExtras.end(); it++) + addChild(*it); +} + +ThemeExtras::~ThemeExtras() +{ + for(auto it = mExtras.begin(); it != mExtras.end(); it++) + delete *it; +} + + +std::map ThemeData::getThemeSets() +{ + std::map sets; + + static const size_t pathCount = 2; + fs::path paths[pathCount] = { + "/etc/emulationstation/themes", + getHomePath() + "/.emulationstation/themes" + }; + + fs::directory_iterator end; + + for(size_t i = 0; i < pathCount; i++) + { + if(!fs::is_directory(paths[i])) + continue; + + for(fs::directory_iterator it(paths[i]); it != end; ++it) + { + if(fs::is_directory(*it)) + { + ThemeSet set = {*it}; + sets[set.getName()] = set; + } + } + } + + return sets; +} + +fs::path ThemeData::getThemeFromCurrentSet(const std::string& system) +{ + auto themeSets = ThemeData::getThemeSets(); + if(themeSets.empty()) + { + // no theme sets available + return ""; + } + + auto set = themeSets.find(Settings::getInstance()->getString("ThemeSet")); + if(set == themeSets.end()) + { + // currently selected theme set is missing, so just pick the first available set + set = themeSets.begin(); + Settings::getInstance()->setString("ThemeSet", set->first); + } + + return set->second.getThemePath(system); +} diff --git a/es-core/src/ThemeData.h b/es-core/src/ThemeData.h new file mode 100644 index 000000000..268f0753f --- /dev/null +++ b/es-core/src/ThemeData.h @@ -0,0 +1,159 @@ +#pragma once + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "pugixml/pugixml.hpp" +#include "GuiComponent.h" + +template +class TextListComponent; + +class Sound; +class ImageComponent; +class NinePatchComponent; +class TextComponent; +class Window; + +namespace ThemeFlags +{ + enum PropertyFlags : unsigned int + { + PATH = 1, + POSITION = 2, + SIZE = 4, + ORIGIN = 8, + COLOR = 16, + FONT_PATH = 32, + FONT_SIZE = 64, + SOUND = 128, + ALIGNMENT = 256, + TEXT = 512, + FORCE_UPPERCASE = 1024, + LINE_SPACING = 2048, + + ALL = 0xFFFFFFFF + }; +} + +class ThemeException : public std::exception +{ +public: + std::string msg; + + virtual const char* what() const throw() { return msg.c_str(); } + + template + friend ThemeException& operator<<(ThemeException& e, T msg); + + inline void setFiles(const std::deque& deque) + { + *this << "from theme \"" << deque.front().string() << "\"\n"; + for(auto it = deque.begin() + 1; it != deque.end(); it++) + *this << " (from included file \"" << (*it).string() << "\")\n"; + *this << " "; + } +}; + +template +ThemeException& operator<<(ThemeException& e, T appendMsg) +{ + std::stringstream ss; + ss << e.msg << appendMsg; + e.msg = ss.str(); + return e; +} + +class ThemeExtras : public GuiComponent +{ +public: + ThemeExtras(Window* window) : GuiComponent(window) {}; + virtual ~ThemeExtras(); + + // will take ownership of the components within extras (delete them in destructor or when setExtras is called again) + void setExtras(const std::vector& extras); + +private: + std::vector mExtras; +}; + +struct ThemeSet +{ + boost::filesystem::path path; + + inline std::string getName() const { return path.stem().string(); } + inline boost::filesystem::path getThemePath(const std::string& system) const { return path/system/"theme.xml"; } +}; + +class ThemeData +{ +public: + + class ThemeElement + { + public: + bool extra; + std::string type; + + std::map< std::string, boost::variant > properties; + + template + T get(const std::string& prop) const { return boost::get(properties.at(prop)); } + + inline bool has(const std::string& prop) const { return (properties.find(prop) != properties.end()); } + }; + +private: + class ThemeView + { + public: + std::map elements; + std::vector orderedKeys; + }; + +public: + + ThemeData(); + + // throws ThemeException + void loadFile(const std::string& path); + + enum ElementPropertyType + { + NORMALIZED_PAIR, + PATH, + STRING, + COLOR, + FLOAT, + BOOLEAN + }; + + // If expectedType is an empty string, will do no type checking. + const ThemeElement* getElement(const std::string& view, const std::string& element, const std::string& expectedType) const; + + static std::vector makeExtras(const std::shared_ptr& theme, const std::string& view, Window* window); + + static const std::shared_ptr& getDefault(); + + static std::map getThemeSets(); + static boost::filesystem::path getThemeFromCurrentSet(const std::string& system); + +private: + static std::map< std::string, std::map > sElementMap; + + std::deque mPaths; + float mVersion; + + void parseIncludes(const pugi::xml_node& themeRoot); + void parseViews(const pugi::xml_node& themeRoot); + void parseView(const pugi::xml_node& viewNode, ThemeView& view); + void parseElement(const pugi::xml_node& elementNode, const std::map& typeMap, ThemeElement& element); + + std::map mViews; +}; diff --git a/es-core/src/Util.cpp b/es-core/src/Util.cpp new file mode 100644 index 000000000..198e10a82 --- /dev/null +++ b/es-core/src/Util.cpp @@ -0,0 +1,190 @@ +#include "Util.h" +#include "resources/ResourceManager.h" +#include "platform.h" + +namespace fs = boost::filesystem; + +std::string strToUpper(const char* from) +{ + std::string str(from); + for(unsigned int i = 0; i < str.size(); i++) + str[i] = toupper(from[i]); + return str; +} + +std::string& strToUpper(std::string& str) +{ + for(unsigned int i = 0; i < str.size(); i++) + str[i] = toupper(str[i]); + + return str; +} + +std::string strToUpper(const std::string& str) +{ + return strToUpper(str.c_str()); +} + + +#if _MSC_VER < 1800 +float round(float num) +{ + return (float)((int)(num + 0.5f)); +} +#endif + +Eigen::Affine3f& roundMatrix(Eigen::Affine3f& mat) +{ + mat.translation()[0] = round(mat.translation()[0]); + mat.translation()[1] = round(mat.translation()[1]); + return mat; +} + +Eigen::Affine3f roundMatrix(const Eigen::Affine3f& mat) +{ + Eigen::Affine3f ret = mat; + roundMatrix(ret); + return ret; +} + +Eigen::Vector3f roundVector(const Eigen::Vector3f& vec) +{ + Eigen::Vector3f ret = vec; + ret[0] = round(ret[0]); + ret[1] = round(ret[1]); + ret[2] = round(ret[2]); + return ret; +} + +Eigen::Vector2f roundVector(const Eigen::Vector2f& vec) +{ + Eigen::Vector2f ret = vec; + ret[0] = round(ret[0]); + ret[1] = round(ret[1]); + return ret; +} + +// embedded resources, e.g. ":/font.ttf", need to be properly handled too +std::string getCanonicalPath(const std::string& path) +{ + if(path.empty() || !boost::filesystem::exists(path)) + return path; + + return boost::filesystem::canonical(path).generic_string(); +} + +// expands "./my/path.sfc" to "[relativeTo]/my/path.sfc" +// if allowHome is true, also expands "~/my/path.sfc" to "/home/pi/my/path.sfc" +fs::path resolvePath(const fs::path& path, const fs::path& relativeTo, bool allowHome) +{ + // nothing here + if(path.begin() == path.end()) + return path; + + if(*path.begin() == ".") + { + fs::path ret = relativeTo; + for(auto it = ++path.begin(); it != path.end(); ++it) + ret /= *it; + return ret; + } + + if(allowHome && *path.begin() == "~") + { + fs::path ret = getHomePath(); + for(auto it = ++path.begin(); it != path.end(); ++it) + ret /= *it; + return ret; + } + + return path; +} + +// example: removeCommonPath("/home/pi/roms/nes/foo/bar.nes", "/home/pi/roms/nes/") returns "foo/bar.nes" +fs::path removeCommonPath(const fs::path& path, const fs::path& relativeTo, bool& contains) +{ + // if either of these doesn't exist, fs::canonical() is going to throw an error + if(!fs::exists(path) || !fs::exists(relativeTo)) + { + contains = false; + return path; + } + + fs::path p = fs::canonical(path); + fs::path r = fs::canonical(relativeTo); + + if(p.root_path() != r.root_path()) + { + contains = false; + return p; + } + + fs::path result; + + // find point of divergence + auto itr_path = p.begin(); + auto itr_relative_to = r.begin(); + while(*itr_path == *itr_relative_to && itr_path != p.end() && itr_relative_to != r.end()) + { + ++itr_path; + ++itr_relative_to; + } + + if(itr_relative_to != r.end()) + { + contains = false; + return p; + } + + while(itr_path != p.end()) + { + if(*itr_path != fs::path(".")) + result = result / *itr_path; + + ++itr_path; + } + + contains = true; + return result; +} + +// usage: makeRelativePath("/path/to/my/thing.sfc", "/path/to") -> "./my/thing.sfc" +// usage: makeRelativePath("/home/pi/my/thing.sfc", "/path/to", true) -> "~/my/thing.sfc" +fs::path makeRelativePath(const fs::path& path, const fs::path& relativeTo, bool allowHome) +{ + bool contains = false; + + fs::path ret = removeCommonPath(path, relativeTo, contains); + if(contains) + { + // success + ret = "." / ret; + return ret; + } + + if(allowHome) + { + contains = false; + std::string homePath = getHomePath(); + ret = removeCommonPath(path, homePath, contains); + if(contains) + { + // success + ret = "~" / ret; + return ret; + } + } + + // nothing could be resolved + return path; +} + +boost::posix_time::ptime string_to_ptime(const std::string& str, const std::string& fmt) +{ + std::istringstream ss(str); + ss.imbue(std::locale(std::locale::classic(), new boost::posix_time::time_input_facet(fmt))); //std::locale handles deleting the facet + boost::posix_time::ptime time; + ss >> time; + + return time; +} diff --git a/es-core/src/Util.h b/es-core/src/Util.h new file mode 100644 index 000000000..5bf2a1275 --- /dev/null +++ b/es-core/src/Util.h @@ -0,0 +1,33 @@ +#pragma once + +#include +#include +#include +#include + +std::string strToUpper(const char* from); +std::string& strToUpper(std::string& str); +std::string strToUpper(const std::string& str); + +Eigen::Affine3f& roundMatrix(Eigen::Affine3f& mat); +Eigen::Affine3f roundMatrix(const Eigen::Affine3f& mat); + +Eigen::Vector3f roundVector(const Eigen::Vector3f& vec); +Eigen::Vector2f roundVector(const Eigen::Vector2f& vec); + +float round(float num); + +std::string getCanonicalPath(const std::string& str); + +// example: removeCommonPath("/home/pi/roms/nes/foo/bar.nes", "/home/pi/roms/nes/") returns "foo/bar.nes" +boost::filesystem::path removeCommonPath(const boost::filesystem::path& path, const boost::filesystem::path& relativeTo, bool& contains); + +// usage: makeRelativePath("/path/to/my/thing.sfc", "/path/to") -> "./my/thing.sfc" +// usage: makeRelativePath("/home/pi/my/thing.sfc", "/path/to", true) -> "~/my/thing.sfc" +boost::filesystem::path makeRelativePath(const boost::filesystem::path& path, const boost::filesystem::path& relativeTo, bool allowHome); + +// expands "./my/path.sfc" to "[relativeTo]/my/path.sfc" +// if allowHome is true, also expands "~/my/path.sfc" to "/home/pi/my/path.sfc" +boost::filesystem::path resolvePath(const boost::filesystem::path& path, const boost::filesystem::path& relativeTo, bool allowHome); + +boost::posix_time::ptime string_to_ptime(const std::string& str, const std::string& fmt = "%Y%m%dT%H%M%S%F%q"); diff --git a/es-core/src/Window.cpp b/es-core/src/Window.cpp new file mode 100644 index 000000000..76bb1754e --- /dev/null +++ b/es-core/src/Window.cpp @@ -0,0 +1,336 @@ +#include "Window.h" +#include +#include "Renderer.h" +#include "AudioManager.h" +#include "Log.h" +#include "Settings.h" +#include +#include "components/HelpComponent.h" +#include "components/ImageComponent.h" + +Window::Window() : mNormalizeNextUpdate(false), mFrameTimeElapsed(0), mFrameCountElapsed(0), mAverageDeltaTime(10), + mAllowSleep(true), mSleeping(false), mTimeSinceLastInput(0) +{ + mHelp = new HelpComponent(this); + mBackgroundOverlay = new ImageComponent(this); + mBackgroundOverlay->setImage(":/scroll_gradient.png"); +} + +Window::~Window() +{ + delete mBackgroundOverlay; + + // delete all our GUIs + while(peekGui()) + delete peekGui(); + + delete mHelp; +} + +void Window::pushGui(GuiComponent* gui) +{ + mGuiStack.push_back(gui); + gui->updateHelpPrompts(); +} + +void Window::removeGui(GuiComponent* gui) +{ + for(auto i = mGuiStack.begin(); i != mGuiStack.end(); i++) + { + if(*i == gui) + { + i = mGuiStack.erase(i); + + if(i == mGuiStack.end() && mGuiStack.size()) // we just popped the stack and the stack is not empty + mGuiStack.back()->updateHelpPrompts(); + + return; + } + } +} + +GuiComponent* Window::peekGui() +{ + if(mGuiStack.size() == 0) + return NULL; + + return mGuiStack.back(); +} + +bool Window::init(unsigned int width, unsigned int height) +{ + if(!Renderer::init(width, height)) + { + LOG(LogError) << "Renderer failed to initialize!"; + return false; + } + + InputManager::getInstance()->init(); + + ResourceManager::getInstance()->reloadAll(); + + //keep a reference to the default fonts, so they don't keep getting destroyed/recreated + if(mDefaultFonts.empty()) + { + mDefaultFonts.push_back(Font::get(FONT_SIZE_SMALL)); + mDefaultFonts.push_back(Font::get(FONT_SIZE_MEDIUM)); + mDefaultFonts.push_back(Font::get(FONT_SIZE_LARGE)); + } + + mBackgroundOverlay->setResize((float)Renderer::getScreenWidth(), (float)Renderer::getScreenHeight()); + + // update our help because font sizes probably changed + if(peekGui()) + peekGui()->updateHelpPrompts(); + + return true; +} + +void Window::deinit() +{ + InputManager::getInstance()->deinit(); + ResourceManager::getInstance()->unloadAll(); + Renderer::deinit(); +} + +void Window::textInput(const char* text) +{ + if(peekGui()) + peekGui()->textInput(text); +} + +void Window::input(InputConfig* config, Input input) +{ + if(mSleeping) + { + // wake up + mTimeSinceLastInput = 0; + mSleeping = false; + onWake(); + return; + } + + mTimeSinceLastInput = 0; + + if(config->getDeviceId() == DEVICE_KEYBOARD && input.value && input.id == SDLK_g && SDL_GetModState() & KMOD_LCTRL && Settings::getInstance()->getBool("Debug")) + { + // toggle debug grid with Ctrl-G + Settings::getInstance()->setBool("DebugGrid", !Settings::getInstance()->getBool("DebugGrid")); + } + else if(config->getDeviceId() == DEVICE_KEYBOARD && input.value && input.id == SDLK_t && SDL_GetModState() & KMOD_LCTRL && Settings::getInstance()->getBool("Debug")) + { + // toggle TextComponent debug view with Ctrl-T + Settings::getInstance()->setBool("DebugText", !Settings::getInstance()->getBool("DebugText")); + } + else + { + if(peekGui()) + this->peekGui()->input(config, input); + } +} + +void Window::update(int deltaTime) +{ + if(mNormalizeNextUpdate) + { + mNormalizeNextUpdate = false; + if(deltaTime > mAverageDeltaTime) + deltaTime = mAverageDeltaTime; + } + + mFrameTimeElapsed += deltaTime; + mFrameCountElapsed++; + if(mFrameTimeElapsed > 500) + { + mAverageDeltaTime = mFrameTimeElapsed / mFrameCountElapsed; + + if(Settings::getInstance()->getBool("DrawFramerate")) + { + std::stringstream ss; + + // fps + ss << std::fixed << std::setprecision(1) << (1000.0f * (float)mFrameCountElapsed / (float)mFrameTimeElapsed) << "fps, "; + ss << std::fixed << std::setprecision(2) << ((float)mFrameTimeElapsed / (float)mFrameCountElapsed) << "ms"; + + // vram + float textureVramUsageMb = TextureResource::getTotalMemUsage() / 1000.0f / 1000.0f;; + float fontVramUsageMb = Font::getTotalMemUsage() / 1000.0f / 1000.0f;; + float totalVramUsageMb = textureVramUsageMb + fontVramUsageMb; + ss << "\nVRAM: " << totalVramUsageMb << "mb (texs: " << textureVramUsageMb << "mb, fonts: " << fontVramUsageMb << "mb)"; + + mFrameDataText = std::unique_ptr(mDefaultFonts.at(1)->buildTextCache(ss.str(), 50.f, 50.f, 0xFF00FFFF)); + } + + mFrameTimeElapsed = 0; + mFrameCountElapsed = 0; + } + + mTimeSinceLastInput += deltaTime; + + if(peekGui()) + peekGui()->update(deltaTime); +} + +void Window::render() +{ + Eigen::Affine3f transform = Eigen::Affine3f::Identity(); + + mRenderedHelpPrompts = false; + + // draw only bottom and top of GuiStack (if they are different) + if(mGuiStack.size()) + { + auto& bottom = mGuiStack.front(); + auto& top = mGuiStack.back(); + + bottom->render(transform); + if(bottom != top) + { + mBackgroundOverlay->render(transform); + top->render(transform); + } + } + + if(!mRenderedHelpPrompts) + mHelp->render(transform); + + if(Settings::getInstance()->getBool("DrawFramerate") && mFrameDataText) + { + Renderer::setMatrix(Eigen::Affine3f::Identity()); + mDefaultFonts.at(1)->renderTextCache(mFrameDataText.get()); + } + + unsigned int screensaverTime = (unsigned int)Settings::getInstance()->getInt("ScreenSaverTime"); + if(mTimeSinceLastInput >= screensaverTime && screensaverTime != 0 && mAllowSleep) + { + // go to sleep + mSleeping = true; + onSleep(); + } +} + +void Window::normalizeNextUpdate() +{ + mNormalizeNextUpdate = true; +} + +bool Window::getAllowSleep() +{ + return mAllowSleep; +} + +void Window::setAllowSleep(bool sleep) +{ + mAllowSleep = sleep; +} + +void Window::renderLoadingScreen() +{ + Eigen::Affine3f trans = Eigen::Affine3f::Identity(); + Renderer::setMatrix(trans); + Renderer::drawRect(0, 0, Renderer::getScreenWidth(), Renderer::getScreenHeight(), 0xFFFFFFFF); + + ImageComponent splash(this); + splash.setResize(Renderer::getScreenWidth() * 0.6f, 0.0f); + splash.setImage(":/splash.svg"); + splash.setPosition((Renderer::getScreenWidth() - splash.getSize().x()) / 2, (Renderer::getScreenHeight() - splash.getSize().y()) / 2 * 0.6f); + splash.render(trans); + + auto& font = mDefaultFonts.at(1); + TextCache* cache = font->buildTextCache("LOADING...", 0, 0, 0x656565FF); + trans = trans.translate(Eigen::Vector3f(round((Renderer::getScreenWidth() - cache->metrics.size.x()) / 2.0f), + round(Renderer::getScreenHeight() * 0.835f), 0.0f)); + Renderer::setMatrix(trans); + font->renderTextCache(cache); + delete cache; + + Renderer::swapBuffers(); +} + +void Window::renderHelpPromptsEarly() +{ + mHelp->render(Eigen::Affine3f::Identity()); + mRenderedHelpPrompts = true; +} + +void Window::setHelpPrompts(const std::vector& prompts, const HelpStyle& style) +{ + mHelp->clearPrompts(); + mHelp->setStyle(style); + + std::vector addPrompts; + + std::map inputSeenMap; + std::map mappedToSeenMap; + for(auto it = prompts.begin(); it != prompts.end(); it++) + { + // only add it if the same icon hasn't already been added + if(inputSeenMap.insert(std::make_pair(it->first, true)).second) + { + // this symbol hasn't been seen yet, what about the action name? + auto mappedTo = mappedToSeenMap.find(it->second); + if(mappedTo != mappedToSeenMap.end()) + { + // yes, it has! + + // can we combine? (dpad only) + if((it->first == "up/down" && addPrompts.at(mappedTo->second).first == "left/right") || + (it->first == "left/right" && addPrompts.at(mappedTo->second).first == "up/down")) + { + // yes! + addPrompts.at(mappedTo->second).first = "up/down/left/right"; + // don't need to add this to addPrompts since we just merged + }else{ + // no, we can't combine! + addPrompts.push_back(*it); + } + }else{ + // no, it hasn't! + mappedToSeenMap.insert(std::pair(it->second, addPrompts.size())); + addPrompts.push_back(*it); + } + } + } + + // sort prompts so it goes [dpad_all] [dpad_u/d] [dpad_l/r] [a/b/x/y/l/r] [start/select] + std::sort(addPrompts.begin(), addPrompts.end(), [](const HelpPrompt& a, const HelpPrompt& b) -> bool { + + static const char* map[] = { + "up/down/left/right", + "up/down", + "left/right", + "a", "b", "x", "y", "l", "r", + "start", "select", + NULL + }; + + int i = 0; + int aVal = 0; + int bVal = 0; + while(map[i] != NULL) + { + if(a.first == map[i]) + aVal = i; + if(b.first == map[i]) + bVal = i; + i++; + } + + return aVal > bVal; + }); + + mHelp->setPrompts(addPrompts); +} + + +void Window::onSleep() +{ + Renderer::setMatrix(Eigen::Affine3f::Identity()); + unsigned char opacity = Settings::getInstance()->getString("ScreenSaverBehavior") == "dim" ? 0xA0 : 0xFF; + Renderer::drawRect(0, 0, Renderer::getScreenWidth(), Renderer::getScreenHeight(), 0x00000000 | opacity); +} + +void Window::onWake() +{ + +} diff --git a/es-core/src/Window.h b/es-core/src/Window.h new file mode 100644 index 000000000..6576cb04a --- /dev/null +++ b/es-core/src/Window.h @@ -0,0 +1,64 @@ +#pragma once + +#include "GuiComponent.h" +#include +#include "resources/Font.h" +#include "InputManager.h" + +class HelpComponent; +class ImageComponent; + +class Window +{ +public: + Window(); + ~Window(); + + void pushGui(GuiComponent* gui); + void removeGui(GuiComponent* gui); + GuiComponent* peekGui(); + + void textInput(const char* text); + void input(InputConfig* config, Input input); + void update(int deltaTime); + void render(); + + bool init(unsigned int width = 0, unsigned int height = 0); + void deinit(); + + void normalizeNextUpdate(); + + inline bool isSleeping() const { return mSleeping; } + bool getAllowSleep(); + void setAllowSleep(bool sleep); + + void renderLoadingScreen(); + + void renderHelpPromptsEarly(); // used to render HelpPrompts before a fade + void setHelpPrompts(const std::vector& prompts, const HelpStyle& style); + +private: + void onSleep(); + void onWake(); + + HelpComponent* mHelp; + ImageComponent* mBackgroundOverlay; + + std::vector mGuiStack; + + std::vector< std::shared_ptr > mDefaultFonts; + + int mFrameTimeElapsed; + int mFrameCountElapsed; + int mAverageDeltaTime; + + std::unique_ptr mFrameDataText; + + bool mNormalizeNextUpdate; + + bool mAllowSleep; + bool mSleeping; + unsigned int mTimeSinceLastInput; + + bool mRenderedHelpPrompts; +}; diff --git a/es-core/src/animations/Animation.h b/es-core/src/animations/Animation.h new file mode 100644 index 000000000..e34dfb438 --- /dev/null +++ b/es-core/src/animations/Animation.h @@ -0,0 +1,43 @@ +#pragma once + +#include + +class Animation +{ +public: + virtual int getDuration() const = 0; + virtual void apply(float t) = 0; +}; + + +// useful helper/interpolation functions +inline float clamp(float min, float max, float val) +{ + if(val < min) + val = min; + else if(val > max) + val = max; + + return val; +} + +//http://en.wikipedia.org/wiki/Smoothstep +inline float smoothStep(float edge0, float edge1, float x) +{ + // Scale, and clamp x to 0..1 range + x = clamp(0, 1, (x - edge0)/(edge1 - edge0)); + + // Evaluate polynomial + return x*x*x*(x*(x*6 - 15) + 10); +} + +template +T lerp(const T& start, const T& end, float t) +{ + if(t <= 0.0f) + return start; + if(t >= 1.0f) + return end; + + return (start * (1 - t) + end * t); +} diff --git a/es-core/src/animations/AnimationController.cpp b/es-core/src/animations/AnimationController.cpp new file mode 100644 index 000000000..245aeb926 --- /dev/null +++ b/es-core/src/animations/AnimationController.cpp @@ -0,0 +1,36 @@ +#include "animations/AnimationController.h" + +AnimationController::AnimationController(Animation* anim, int delay, std::function finishedCallback, bool reverse) + : mAnimation(anim), mFinishedCallback(finishedCallback), mReverse(reverse), mTime(-delay), mDelay(delay) +{ +} + +AnimationController::~AnimationController() +{ + if(mFinishedCallback) + mFinishedCallback(); + + delete mAnimation; +} + +bool AnimationController::update(int deltaTime) +{ + mTime += deltaTime; + + if(mTime < 0) // are we still in delay? + return false; + + float t = (float)mTime / mAnimation->getDuration(); + + if(t > 1.0f) + t = 1.0f; + else if(t < 0.0f) + t = 0.0f; + + mAnimation->apply(mReverse ? 1.0f - t : t); + + if(t == 1.0f) + return true; + + return false; +} diff --git a/es-core/src/animations/AnimationController.h b/es-core/src/animations/AnimationController.h new file mode 100644 index 000000000..2d14f3d8e --- /dev/null +++ b/es-core/src/animations/AnimationController.h @@ -0,0 +1,31 @@ +#pragma once + +#include +#include +#include "animations/Animation.h" + +class AnimationController +{ +public: + // Takes ownership of anim (will delete in destructor). + AnimationController(Animation* anim, int delay = 0, std::function finishedCallback = nullptr, bool reverse = false); + virtual ~AnimationController(); + + // Returns true if the animation is complete. + bool update(int deltaTime); + + inline bool isReversed() const { return mReverse; } + inline int getTime() const { return mTime; } + inline int getDelay() const { return mDelay; } + inline const std::function& getFinishedCallback() const { return mFinishedCallback; } + inline Animation* getAnimation() const { return mAnimation; } + + inline void removeFinishedCallback() { mFinishedCallback = nullptr; } + +private: + Animation* mAnimation; + std::function mFinishedCallback; + bool mReverse; + int mTime; + int mDelay; +}; diff --git a/es-core/src/animations/LambdaAnimation.h b/es-core/src/animations/LambdaAnimation.h new file mode 100644 index 000000000..35e1f958a --- /dev/null +++ b/es-core/src/animations/LambdaAnimation.h @@ -0,0 +1,21 @@ +#pragma once + +#include "animations/Animation.h" + +// Useful for simple one-off animations, you can supply the animation's apply(t) method right in the constructor as a lambda. +class LambdaAnimation : public Animation +{ +public: + LambdaAnimation(const std::function& func, int duration) : mFunction(func), mDuration(duration) {} + + int getDuration() const override { return mDuration; } + + void apply(float t) override + { + mFunction(t); + } + +private: + std::function mFunction; + int mDuration; +}; diff --git a/es-core/src/components/AnimatedImageComponent.cpp b/es-core/src/components/AnimatedImageComponent.cpp new file mode 100644 index 000000000..b13415309 --- /dev/null +++ b/es-core/src/components/AnimatedImageComponent.cpp @@ -0,0 +1,83 @@ +#include "components/AnimatedImageComponent.h" +#include "Log.h" + +AnimatedImageComponent::AnimatedImageComponent(Window* window) : GuiComponent(window), mEnabled(false) +{ +} + +void AnimatedImageComponent::load(const AnimationDef* def) +{ + mFrames.clear(); + + assert(def->frameCount >= 1); + + for(size_t i = 0; i < def->frameCount; i++) + { + if(def->frames[i].path != NULL && !ResourceManager::getInstance()->fileExists(def->frames[i].path)) + { + LOG(LogError) << "Missing animation frame " << i << " (\"" << def->frames[i].path << "\")"; + continue; + } + + auto img = std::unique_ptr(new ImageComponent(mWindow)); + img->setResize(mSize.x(), mSize.y()); + img->setImage(std::string(def->frames[i].path), false); + + mFrames.push_back(ImageFrame(std::move(img), def->frames[i].time)); + } + + mLoop = def->loop; + + mCurrentFrame = 0; + mFrameAccumulator = 0; + mEnabled = true; +} + +void AnimatedImageComponent::reset() +{ + mCurrentFrame = 0; + mFrameAccumulator = 0; +} + +void AnimatedImageComponent::onSizeChanged() +{ + for(auto it = mFrames.begin(); it != mFrames.end(); it++) + { + it->first->setResize(mSize.x(), mSize.y()); + } +} + +void AnimatedImageComponent::update(int deltaTime) +{ + if(!mEnabled || mFrames.size() == 0) + return; + + mFrameAccumulator += deltaTime; + + while(mFrames.at(mCurrentFrame).second <= mFrameAccumulator) + { + mCurrentFrame++; + + if(mCurrentFrame == mFrames.size()) + { + if(mLoop) + { + // restart + mCurrentFrame = 0; + }else{ + // done, stop at last frame + mCurrentFrame--; + mEnabled = false; + break; + } + } + + mFrameAccumulator -= mFrames.at(mCurrentFrame).second; + } +} + +void AnimatedImageComponent::render(const Eigen::Affine3f& trans) +{ + if(mFrames.size()) + mFrames.at(mCurrentFrame).first->render(getTransform() * trans); +} diff --git a/es-core/src/components/AnimatedImageComponent.h b/es-core/src/components/AnimatedImageComponent.h new file mode 100644 index 000000000..da5918879 --- /dev/null +++ b/es-core/src/components/AnimatedImageComponent.h @@ -0,0 +1,40 @@ +#include "GuiComponent.h" +#include "ImageComponent.h" + +struct AnimationFrame +{ + const char* path; + int time; +}; + +struct AnimationDef +{ + AnimationFrame* frames; + size_t frameCount; + bool loop; +}; + +class AnimatedImageComponent : public GuiComponent +{ +public: + AnimatedImageComponent(Window* window); + + void load(const AnimationDef* def); // no reference to def is kept after loading is complete + + void reset(); // set to frame 0 + + void update(int deltaTime) override; + void render(const Eigen::Affine3f& trans) override; + + void onSizeChanged() override; + +private: + typedef std::pair, int> ImageFrame; + + std::vector mFrames; + + bool mLoop; + bool mEnabled; + int mFrameAccumulator; + int mCurrentFrame; +}; diff --git a/es-core/src/components/BusyComponent.cpp b/es-core/src/components/BusyComponent.cpp new file mode 100644 index 000000000..184adcbc0 --- /dev/null +++ b/es-core/src/components/BusyComponent.cpp @@ -0,0 +1,58 @@ +#include "BusyComponent.h" + +#include "components/AnimatedImageComponent.h" +#include "components/TextComponent.h" +#include "Renderer.h" + +// animation definition +AnimationFrame BUSY_ANIMATION_FRAMES[] = { + {":/busy_0.svg", 300}, + {":/busy_1.svg", 300}, + {":/busy_2.svg", 300}, + {":/busy_3.svg", 300}, +}; +const AnimationDef BUSY_ANIMATION_DEF = { BUSY_ANIMATION_FRAMES, 4, true }; + +using namespace Eigen; + +BusyComponent::BusyComponent(Window* window) : GuiComponent(window), + mBackground(window, ":/frame.png"), mGrid(window, Vector2i(5, 3)) +{ + mAnimation = std::make_shared(mWindow); + mAnimation->load(&BUSY_ANIMATION_DEF); + mText = std::make_shared(mWindow, "WORKING...", Font::get(FONT_SIZE_MEDIUM), 0x777777FF); + + // col 0 = animation, col 1 = spacer, col 2 = text + mGrid.setEntry(mAnimation, Vector2i(1, 1), false, true); + mGrid.setEntry(mText, Vector2i(3, 1), false, true); + + addChild(&mBackground); + addChild(&mGrid); +} + +void BusyComponent::onSizeChanged() +{ + mGrid.setSize(mSize); + + if(mSize.x() == 0 || mSize.y() == 0) + return; + + const float middleSpacerWidth = 0.01f * Renderer::getScreenWidth(); + const float textHeight = mText->getFont()->getLetterHeight(); + mText->setSize(0, textHeight); + const float textWidth = mText->getSize().x() + 4; + + mGrid.setColWidthPerc(1, textHeight / mSize.x()); // animation is square + mGrid.setColWidthPerc(2, middleSpacerWidth / mSize.x()); + mGrid.setColWidthPerc(3, textWidth / mSize.x()); + + mGrid.setRowHeightPerc(1, textHeight / mSize.y()); + + mBackground.fitTo(Vector2f(mGrid.getColWidth(1) + mGrid.getColWidth(2) + mGrid.getColWidth(3), textHeight + 2), + mAnimation->getPosition(), Vector2f(0, 0)); +} + +void BusyComponent::reset() +{ + //mAnimation->reset(); +} diff --git a/es-core/src/components/BusyComponent.h b/es-core/src/components/BusyComponent.h new file mode 100644 index 000000000..88f35dacb --- /dev/null +++ b/es-core/src/components/BusyComponent.h @@ -0,0 +1,23 @@ +#include "GuiComponent.h" +#include "components/ComponentGrid.h" +#include "components/NinePatchComponent.h" + +class AnimatedImageComponent; +class TextComponent; + +class BusyComponent : public GuiComponent +{ +public: + BusyComponent(Window* window); + + void onSizeChanged() override; + + void reset(); // reset to frame 0 + +private: + NinePatchComponent mBackground; + ComponentGrid mGrid; + + std::shared_ptr mAnimation; + std::shared_ptr mText; +}; diff --git a/es-core/src/components/ButtonComponent.cpp b/es-core/src/components/ButtonComponent.cpp new file mode 100644 index 000000000..33f662589 --- /dev/null +++ b/es-core/src/components/ButtonComponent.cpp @@ -0,0 +1,121 @@ +#include "components/ButtonComponent.h" +#include "Renderer.h" +#include "Window.h" +#include "Util.h" +#include "Log.h" + +ButtonComponent::ButtonComponent(Window* window, const std::string& text, const std::string& helpText, const std::function& func) : GuiComponent(window), + mBox(window, ":/button.png"), + mFont(Font::get(FONT_SIZE_MEDIUM)), + mFocused(false), + mEnabled(true), + mTextColorFocused(0xFFFFFFFF), mTextColorUnfocused(0x777777FF) +{ + setPressedFunc(func); + setText(text, helpText); + updateImage(); +} + +void ButtonComponent::onSizeChanged() +{ + mBox.fitTo(mSize, Eigen::Vector3f::Zero(), Eigen::Vector2f(-32, -32)); +} + +void ButtonComponent::setPressedFunc(std::function f) +{ + mPressedFunc = f; +} + +bool ButtonComponent::input(InputConfig* config, Input input) +{ + if(config->isMappedTo("a", input) && input.value != 0) + { + if(mPressedFunc && mEnabled) + mPressedFunc(); + return true; + } + + return GuiComponent::input(config, input); +} + +void ButtonComponent::setText(const std::string& text, const std::string& helpText) +{ + mText = strToUpper(text); + mHelpText = helpText; + + mTextCache = std::unique_ptr(mFont->buildTextCache(mText, 0, 0, getCurTextColor())); + + float minWidth = mFont->sizeText("DELETE").x() + 12; + setSize(std::max(mTextCache->metrics.size.x() + 12, minWidth), mTextCache->metrics.size.y()); + + updateHelpPrompts(); +} + +void ButtonComponent::onFocusGained() +{ + mFocused = true; + updateImage(); +} + +void ButtonComponent::onFocusLost() +{ + mFocused = false; + updateImage(); +} + +void ButtonComponent::setEnabled(bool enabled) +{ + mEnabled = enabled; + updateImage(); +} + +void ButtonComponent::updateImage() +{ + if(!mEnabled || !mPressedFunc) + { + mBox.setImagePath(":/button_filled.png"); + mBox.setCenterColor(0x770000FF); + mBox.setEdgeColor(0x770000FF); + return; + } + + mBox.setCenterColor(0xFFFFFFFF); + mBox.setEdgeColor(0xFFFFFFFF); + mBox.setImagePath(mFocused ? ":/button_filled.png" : ":/button.png"); +} + +void ButtonComponent::render(const Eigen::Affine3f& parentTrans) +{ + Eigen::Affine3f trans = roundMatrix(parentTrans * getTransform()); + + mBox.render(trans); + + if(mTextCache) + { + Eigen::Vector3f centerOffset((mSize.x() - mTextCache->metrics.size.x()) / 2, (mSize.y() - mTextCache->metrics.size.y()) / 2, 0); + centerOffset = roundVector(centerOffset); + trans = trans.translate(centerOffset); + + Renderer::setMatrix(trans); + mTextCache->setColor(getCurTextColor()); + mFont->renderTextCache(mTextCache.get()); + trans = trans.translate(-centerOffset); + } + + renderChildren(trans); +} + +unsigned int ButtonComponent::getCurTextColor() const +{ + if(!mFocused) + return mTextColorUnfocused; + else + return mTextColorFocused; +} + +std::vector ButtonComponent::getHelpPrompts() +{ + std::vector prompts; + prompts.push_back(HelpPrompt("a", mHelpText.empty() ? mText.c_str() : mHelpText.c_str())); + return prompts; +} diff --git a/es-core/src/components/ButtonComponent.h b/es-core/src/components/ButtonComponent.h new file mode 100644 index 000000000..25cb76e4c --- /dev/null +++ b/es-core/src/components/ButtonComponent.h @@ -0,0 +1,47 @@ +#pragma once + +#include "GuiComponent.h" +#include +#include "resources/Font.h" +#include "components/NinePatchComponent.h" + +class ButtonComponent : public GuiComponent +{ +public: + ButtonComponent(Window* window, const std::string& text = "", const std::string& helpText = "", const std::function& func = nullptr); + + void setPressedFunc(std::function f); + + void setEnabled(bool enable); + + bool input(InputConfig* config, Input input) override; + void render(const Eigen::Affine3f& parentTrans) override; + + void setText(const std::string& text, const std::string& helpText); + + inline const std::string& getText() const { return mText; }; + inline const std::function& getPressedFunc() const { return mPressedFunc; }; + + void onSizeChanged() override; + void onFocusGained() override; + void onFocusLost() override; + + virtual std::vector getHelpPrompts() override; + +private: + std::shared_ptr mFont; + std::function mPressedFunc; + + bool mFocused; + bool mEnabled; + unsigned int mTextColorFocused; + unsigned int mTextColorUnfocused; + + unsigned int getCurTextColor() const; + void updateImage(); + + std::string mText; + std::string mHelpText; + std::unique_ptr mTextCache; + NinePatchComponent mBox; +}; diff --git a/es-core/src/components/ComponentGrid.cpp b/es-core/src/components/ComponentGrid.cpp new file mode 100644 index 000000000..89dd157cc --- /dev/null +++ b/es-core/src/components/ComponentGrid.cpp @@ -0,0 +1,455 @@ +#include "components/ComponentGrid.h" +#include "Log.h" +#include "Renderer.h" +#include "Settings.h" + +using namespace GridFlags; + +ComponentGrid::ComponentGrid(Window* window, const Eigen::Vector2i& gridDimensions) : GuiComponent(window), + mGridSize(gridDimensions), mCursor(0, 0) +{ + assert(gridDimensions.x() > 0 && gridDimensions.y() > 0); + + mCells.reserve(gridDimensions.x() * gridDimensions.y()); + + mColWidths = new float[gridDimensions.x()]; + mRowHeights = new float[gridDimensions.y()]; + for(int x = 0; x < gridDimensions.x(); x++) + mColWidths[x] = 0; + for(int y = 0; y < gridDimensions.y(); y++) + mRowHeights[y] = 0; +} + +ComponentGrid::~ComponentGrid() +{ + delete[] mRowHeights; + delete[] mColWidths; +} + +float ComponentGrid::getColWidth(int col) +{ + if(mColWidths[col] != 0) + return mColWidths[col] * mSize.x(); + + // calculate automatic width + float freeWidthPerc = 1; + int between = 0; + for(int x = 0; x < mGridSize.x(); x++) + { + freeWidthPerc -= mColWidths[x]; // if it's 0 it won't do anything + if(mColWidths[x] == 0) + between++; + } + + return (freeWidthPerc * mSize.x()) / between; +} + +float ComponentGrid::getRowHeight(int row) +{ + if(mRowHeights[row] != 0) + return mRowHeights[row] * mSize.y(); + + // calculate automatic height + float freeHeightPerc = 1; + int between = 0; + for(int y = 0; y < mGridSize.y(); y++) + { + freeHeightPerc -= mRowHeights[y]; // if it's 0 it won't do anything + if(mRowHeights[y] == 0) + between++; + } + + return (freeHeightPerc * mSize.y()) / between; +} + +void ComponentGrid::setColWidthPerc(int col, float width, bool update) +{ + assert(width >= 0 && width <= 1); + assert(col >= 0 && col < mGridSize.x()); + mColWidths[col] = width; + + if(update) + onSizeChanged(); +} + +void ComponentGrid::setRowHeightPerc(int row, float height, bool update) +{ + assert(height >= 0 && height <= 1); + assert(row >= 0 && row < mGridSize.y()); + mRowHeights[row] = height; + + if(update) + onSizeChanged(); +} + +void ComponentGrid::setEntry(const std::shared_ptr& comp, const Eigen::Vector2i& pos, bool canFocus, bool resize, const Eigen::Vector2i& size, + unsigned int border, GridFlags::UpdateType updateType) +{ + assert(pos.x() >= 0 && pos.x() < mGridSize.x() && pos.y() >= 0 && pos.y() < mGridSize.y()); + assert(comp != nullptr); + assert(comp->getParent() == NULL); + + GridEntry entry(pos, size, comp, canFocus, resize, updateType, border); + mCells.push_back(entry); + + addChild(comp.get()); + + if(!cursorValid() && canFocus) + { + auto origCursor = mCursor; + mCursor = pos; + onCursorMoved(origCursor, mCursor); + } + + updateCellComponent(mCells.back()); + updateSeparators(); +} + +bool ComponentGrid::removeEntry(const std::shared_ptr& comp) +{ + for(auto it = mCells.begin(); it != mCells.end(); it++) + { + if(it->component == comp) + { + removeChild(comp.get()); + mCells.erase(it); + return true; + } + } + + return false; +} + +void ComponentGrid::updateCellComponent(const GridEntry& cell) +{ + // size + Eigen::Vector2f size(0, 0); + for(int x = cell.pos.x(); x < cell.pos.x() + cell.dim.x(); x++) + size[0] += getColWidth(x); + for(int y = cell.pos.y(); y < cell.pos.y() + cell.dim.y(); y++) + size[1] += getRowHeight(y); + + if(cell.resize) + cell.component->setSize(size); + + // position + // find top left corner + Eigen::Vector3f pos(0, 0, 0); + for(int x = 0; x < cell.pos.x(); x++) + pos[0] += getColWidth(x); + for(int y = 0; y < cell.pos.y(); y++) + pos[1] += getRowHeight(y); + + // center component + pos[0] = pos.x() + (size.x() - cell.component->getSize().x()) / 2; + pos[1] = pos.y() + (size.y() - cell.component->getSize().y()) / 2; + + cell.component->setPosition(pos); +} + +void ComponentGrid::updateSeparators() +{ + mLines.clear(); + + bool drawAll = Settings::getInstance()->getBool("DebugGrid"); + + Eigen::Vector2f pos; + Eigen::Vector2f size; + for(auto it = mCells.begin(); it != mCells.end(); it++) + { + if(!it->border && !drawAll) + continue; + + // find component position + size + pos << 0, 0; + size << 0, 0; + for(int x = 0; x < it->pos.x(); x++) + pos[0] += getColWidth(x); + for(int y = 0; y < it->pos.y(); y++) + pos[1] += getRowHeight(y); + for(int x = it->pos.x(); x < it->pos.x() + it->dim.x(); x++) + size[0] += getColWidth(x); + for(int y = it->pos.y(); y < it->pos.y() + it->dim.y(); y++) + size[1] += getRowHeight(y); + + if(it->border & BORDER_TOP || drawAll) + { + mLines.push_back(Vert(pos.x(), pos.y())); + mLines.push_back(Vert(pos.x() + size.x(), pos.y())); + } + if(it->border & BORDER_BOTTOM || drawAll) + { + mLines.push_back(Vert(pos.x(), pos.y() + size.y())); + mLines.push_back(Vert(pos.x() + size.x(), mLines.back().y)); + } + if(it->border & BORDER_LEFT || drawAll) + { + mLines.push_back(Vert(pos.x(), pos.y())); + mLines.push_back(Vert(pos.x(), pos.y() + size.y())); + } + if(it->border & BORDER_RIGHT || drawAll) + { + mLines.push_back(Vert(pos.x() + size.x(), pos.y())); + mLines.push_back(Vert(mLines.back().x, pos.y() + size.y())); + } + } + + mLineColors.reserve(mLines.size()); + Renderer::buildGLColorArray((GLubyte*)mLineColors.data(), 0xC6C7C6FF, mLines.size()); +} + +void ComponentGrid::onSizeChanged() +{ + for(auto it = mCells.begin(); it != mCells.end(); it++) + updateCellComponent(*it); + + updateSeparators(); +} + +ComponentGrid::GridEntry* ComponentGrid::getCellAt(int x, int y) +{ + assert(x >= 0 && x < mGridSize.x() && y >= 0 && y < mGridSize.y()); + + for(auto it = mCells.begin(); it != mCells.end(); it++) + { + int xmin = it->pos.x(); + int xmax = xmin + it->dim.x(); + int ymin = it->pos.y(); + int ymax = ymin + it->dim.y(); + + if(x >= xmin && y >= ymin && x < xmax && y < ymax) + return &(*it); + } + + return NULL; +} + +bool ComponentGrid::input(InputConfig* config, Input input) +{ + GridEntry* cursorEntry = getCellAt(mCursor); + if(cursorEntry && cursorEntry->component->input(config, input)) + return true; + + if(!input.value) + return false; + + if(config->isMappedTo("down", input)) + { + return moveCursor(Eigen::Vector2i(0, 1)); + } + if(config->isMappedTo("up", input)) + { + return moveCursor(Eigen::Vector2i(0, -1)); + } + if(config->isMappedTo("left", input)) + { + return moveCursor(Eigen::Vector2i(-1, 0)); + } + if(config->isMappedTo("right", input)) + { + return moveCursor(Eigen::Vector2i(1, 0)); + } + + return false; +} + +void ComponentGrid::resetCursor() +{ + if(!mCells.size()) + return; + + for(auto it = mCells.begin(); it != mCells.end(); it++) + { + if(it->canFocus) + { + Eigen::Vector2i origCursor = mCursor; + mCursor = it->pos; + onCursorMoved(origCursor, mCursor); + break; + } + } +} + +bool ComponentGrid::moveCursor(Eigen::Vector2i dir) +{ + assert(dir.x() || dir.y()); + + const Eigen::Vector2i origCursor = mCursor; + + GridEntry* currentCursorEntry = getCellAt(mCursor); + + Eigen::Vector2i searchAxis(dir.x() == 0, dir.y() == 0); + + while(mCursor.x() >= 0 && mCursor.y() >= 0 && mCursor.x() < mGridSize.x() && mCursor.y() < mGridSize.y()) + { + mCursor = mCursor + dir; + + Eigen::Vector2i curDirPos = mCursor; + + GridEntry* cursorEntry; + //spread out on search axis+ + while(mCursor.x() < mGridSize.x() && mCursor.y() < mGridSize.y() + && mCursor.x() >= 0 && mCursor.y() >= 0) + { + cursorEntry = getCellAt(mCursor); + if(cursorEntry && cursorEntry->canFocus && cursorEntry != currentCursorEntry) + { + onCursorMoved(origCursor, mCursor); + return true; + } + + mCursor += searchAxis; + } + + //now again on search axis- + mCursor = curDirPos; + while(mCursor.x() >= 0 && mCursor.y() >= 0 + && mCursor.x() < mGridSize.x() && mCursor.y() < mGridSize.y()) + { + cursorEntry = getCellAt(mCursor); + if(cursorEntry && cursorEntry->canFocus && cursorEntry != currentCursorEntry) + { + onCursorMoved(origCursor, mCursor); + return true; + } + + mCursor -= searchAxis; + } + + mCursor = curDirPos; + } + + //failed to find another focusable element in this direction + mCursor = origCursor; + return false; +} + +void ComponentGrid::onFocusLost() +{ + GridEntry* cursorEntry = getCellAt(mCursor); + if(cursorEntry) + cursorEntry->component->onFocusLost(); +} + +void ComponentGrid::onFocusGained() +{ + GridEntry* cursorEntry = getCellAt(mCursor); + if(cursorEntry) + cursorEntry->component->onFocusGained(); +} + +bool ComponentGrid::cursorValid() +{ + GridEntry* e = getCellAt(mCursor); + return (e != NULL && e->canFocus); +} + +void ComponentGrid::update(int deltaTime) +{ + // update ALL THE THINGS + GridEntry* cursorEntry = getCellAt(mCursor); + for(auto it = mCells.begin(); it != mCells.end(); it++) + { + if(it->updateType == UPDATE_ALWAYS || (it->updateType == UPDATE_WHEN_SELECTED && cursorEntry == &(*it))) + it->component->update(deltaTime); + } +} + +void ComponentGrid::render(const Eigen::Affine3f& parentTrans) +{ + Eigen::Affine3f trans = parentTrans * getTransform(); + + renderChildren(trans); + + // draw cell separators + if(mLines.size()) + { + Renderer::setMatrix(trans); + + glEnable(GL_BLEND); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glEnableClientState(GL_VERTEX_ARRAY); + glEnableClientState(GL_COLOR_ARRAY); + + glVertexPointer(2, GL_FLOAT, 0, &mLines[0].x); + glColorPointer(4, GL_UNSIGNED_BYTE, 0, mLineColors.data()); + + glDrawArrays(GL_LINES, 0, mLines.size()); + + glDisable(GL_BLEND); + glDisableClientState(GL_VERTEX_ARRAY); + glDisableClientState(GL_COLOR_ARRAY); + } +} + +void ComponentGrid::textInput(const char* text) +{ + GridEntry* selectedEntry = getCellAt(mCursor); + if(selectedEntry != NULL && selectedEntry->canFocus) + selectedEntry->component->textInput(text); +} + +void ComponentGrid::onCursorMoved(Eigen::Vector2i from, Eigen::Vector2i to) +{ + GridEntry* cell = getCellAt(from); + if(cell) + cell->component->onFocusLost(); + + cell = getCellAt(to); + if(cell) + cell->component->onFocusGained(); + + updateHelpPrompts(); +} + +void ComponentGrid::setCursorTo(const std::shared_ptr& comp) +{ + for(auto it = mCells.begin(); it != mCells.end(); it++) + { + if(it->component == comp) + { + Eigen::Vector2i oldCursor = mCursor; + mCursor = it->pos; + onCursorMoved(oldCursor, mCursor); + return; + } + } + + // component not found!! + assert(false); +} + +std::vector ComponentGrid::getHelpPrompts() +{ + std::vector prompts; + GridEntry* e = getCellAt(mCursor); + if(e) + prompts = e->component->getHelpPrompts(); + + bool canScrollVert = mGridSize.y() > 1; + bool canScrollHoriz = mGridSize.x() > 1; + for(auto it = prompts.begin(); it != prompts.end(); it++) + { + if(it->first == "up/down/left/right") + { + canScrollHoriz = false; + canScrollVert = false; + break; + }else if(it->first == "up/down") + { + canScrollVert = false; + }else if(it->first == "left/right") + { + canScrollHoriz = false; + } + } + + if(canScrollHoriz && canScrollVert) + prompts.push_back(HelpPrompt("up/down/left/right", "choose")); + else if(canScrollHoriz) + prompts.push_back(HelpPrompt("left/right", "choose")); + else if(canScrollVert) + prompts.push_back(HelpPrompt("up/down", "choose")); + + return prompts; +} diff --git a/es-core/src/components/ComponentGrid.h b/es-core/src/components/ComponentGrid.h new file mode 100644 index 000000000..ee1547c1c --- /dev/null +++ b/es-core/src/components/ComponentGrid.h @@ -0,0 +1,119 @@ +#pragma once + +#include "GuiComponent.h" + +namespace GridFlags +{ + enum UpdateType + { + UPDATE_ALWAYS, + UPDATE_WHEN_SELECTED, + UPDATE_NEVER + }; + + enum Border : unsigned int + { + BORDER_NONE = 0, + + BORDER_TOP = 1, + BORDER_BOTTOM = 2, + BORDER_LEFT = 4, + BORDER_RIGHT = 8 + }; +}; + +// Used to arrange a bunch of components in a spreadsheet-esque grid. +class ComponentGrid : public GuiComponent +{ +public: + ComponentGrid(Window* window, const Eigen::Vector2i& gridDimensions); + virtual ~ComponentGrid(); + + bool removeEntry(const std::shared_ptr& comp); + + void setEntry(const std::shared_ptr& comp, const Eigen::Vector2i& pos, bool canFocus, bool resize = true, + const Eigen::Vector2i& size = Eigen::Vector2i(1, 1), unsigned int border = GridFlags::BORDER_NONE, GridFlags::UpdateType updateType = GridFlags::UPDATE_ALWAYS); + + void textInput(const char* text) override; + bool input(InputConfig* config, Input input) override; + void update(int deltaTime) override; + void render(const Eigen::Affine3f& parentTrans) override; + void onSizeChanged() override; + + void resetCursor(); + bool cursorValid(); + + float getColWidth(int col); + float getRowHeight(int row); + + void setColWidthPerc(int col, float width, bool update = true); // if update is false, will not call an onSizeChanged() which triggers a (potentially costly) repositioning + resizing of every element + void setRowHeightPerc(int row, float height, bool update = true); // if update is false, will not call an onSizeChanged() which triggers a (potentially costly) repositioning + resizing of every element + + bool moveCursor(Eigen::Vector2i dir); + void setCursorTo(const std::shared_ptr& comp); + + inline std::shared_ptr getSelectedComponent() + { + GridEntry* e = getCellAt(mCursor); + if(e) + return e->component; + else + return nullptr; + } + + void onFocusLost() override; + void onFocusGained() override; + + virtual std::vector getHelpPrompts() override; + +private: + class GridEntry + { + public: + Eigen::Vector2i pos; + Eigen::Vector2i dim; + std::shared_ptr component; + bool canFocus; + bool resize; + GridFlags::UpdateType updateType; + unsigned int border; + + GridEntry(const Eigen::Vector2i& p = Eigen::Vector2i::Zero(), const Eigen::Vector2i& d = Eigen::Vector2i::Zero(), + const std::shared_ptr& cmp = nullptr, bool f = false, bool r = true, + GridFlags::UpdateType u = GridFlags::UPDATE_ALWAYS, unsigned int b = GridFlags::BORDER_NONE) : + pos(p), dim(d), component(cmp), canFocus(f), resize(r), updateType(u), border(b) + {}; + + operator bool() const + { + return component != NULL; + } + }; + + float* mRowHeights; + float* mColWidths; + + struct Vert + { + Vert(float xi = 0, float yi = 0) : x(xi), y(yi) {}; + float x; + float y; + }; + + std::vector mLines; + std::vector mLineColors; + + // Update position & size + void updateCellComponent(const GridEntry& cell); + void updateSeparators(); + + GridEntry* getCellAt(int x, int y); + inline GridEntry* getCellAt(const Eigen::Vector2i& pos) { return getCellAt(pos.x(), pos.y()); } + + Eigen::Vector2i mGridSize; + + std::vector mCells; + + void onCursorMoved(Eigen::Vector2i from, Eigen::Vector2i to); + Eigen::Vector2i mCursor; +}; diff --git a/es-core/src/components/ComponentList.cpp b/es-core/src/components/ComponentList.cpp new file mode 100644 index 000000000..a16bcb097 --- /dev/null +++ b/es-core/src/components/ComponentList.cpp @@ -0,0 +1,340 @@ +#include "components/ComponentList.h" +#include "Util.h" +#include "Log.h" + +#define TOTAL_HORIZONTAL_PADDING_PX 20 + +ComponentList::ComponentList(Window* window) : IList(window, LIST_SCROLL_STYLE_SLOW, LIST_NEVER_LOOP) +{ + mSelectorBarOffset = 0; + mCameraOffset = 0; + mFocused = false; +} + +void ComponentList::addRow(const ComponentListRow& row, bool setCursorHere) +{ + IList::Entry e; + e.name = ""; + e.object = NULL; + e.data = row; + + this->add(e); + + for(auto it = mEntries.back().data.elements.begin(); it != mEntries.back().data.elements.end(); it++) + addChild(it->component.get()); + + updateElementSize(mEntries.back().data); + updateElementPosition(mEntries.back().data); + + if(setCursorHere) + { + mCursor = mEntries.size() - 1; + onCursorChanged(CURSOR_STOPPED); + } +} + +void ComponentList::onSizeChanged() +{ + for(auto it = mEntries.begin(); it != mEntries.end(); it++) + { + updateElementSize(it->data); + updateElementPosition(it->data); + } + + updateCameraOffset(); +} + +void ComponentList::onFocusLost() +{ + mFocused = false; +} + +void ComponentList::onFocusGained() +{ + mFocused = true; +} + +bool ComponentList::input(InputConfig* config, Input input) +{ + if(size() == 0) + return false; + + // give it to the current row's input handler + if(mEntries.at(mCursor).data.input_handler) + { + if(mEntries.at(mCursor).data.input_handler(config, input)) + return true; + }else{ + // no input handler assigned, do the default, which is to give it to the rightmost element in the row + auto& row = mEntries.at(mCursor).data; + if(row.elements.size()) + { + if(row.elements.back().component->input(config, input)) + return true; + } + } + + // input handler didn't consume the input - try to scroll + if(config->isMappedTo("up", input)) + { + return listInput(input.value != 0 ? -1 : 0); + }else if(config->isMappedTo("down", input)) + { + return listInput(input.value != 0 ? 1 : 0); + }else if(config->isMappedTo("pageup", input)) + { + return listInput(input.value != 0 ? -7 : 0); + }else if(config->isMappedTo("pagedown", input)){ + return listInput(input.value != 0 ? 7 : 0); + } + + return false; +} + +void ComponentList::update(int deltaTime) +{ + listUpdate(deltaTime); + + if(size()) + { + // update our currently selected row + for(auto it = mEntries.at(mCursor).data.elements.begin(); it != mEntries.at(mCursor).data.elements.end(); it++) + it->component->update(deltaTime); + } +} + +void ComponentList::onCursorChanged(const CursorState& state) +{ + // update the selector bar position + // in the future this might be animated + mSelectorBarOffset = 0; + for(int i = 0; i < mCursor; i++) + { + mSelectorBarOffset += getRowHeight(mEntries.at(i).data); + } + + updateCameraOffset(); + + // this is terribly inefficient but we don't know what we came from so... + if(size()) + { + for(auto it = mEntries.begin(); it != mEntries.end(); it++) + it->data.elements.back().component->onFocusLost(); + + mEntries.at(mCursor).data.elements.back().component->onFocusGained(); + } + + if(mCursorChangedCallback) + mCursorChangedCallback(state); + + updateHelpPrompts(); +} + +void ComponentList::updateCameraOffset() +{ + // move the camera to scroll + const float totalHeight = getTotalRowHeight(); + if(totalHeight > mSize.y()) + { + float target = mSelectorBarOffset + getRowHeight(mEntries.at(mCursor).data)/2 - (mSize.y() / 2); + + // clamp it + mCameraOffset = 0; + unsigned int i = 0; + while(mCameraOffset < target && i < mEntries.size()) + { + mCameraOffset += getRowHeight(mEntries.at(i).data); + i++; + } + + if(mCameraOffset < 0) + mCameraOffset = 0; + else if(mCameraOffset + mSize.y() > totalHeight) + mCameraOffset = totalHeight - mSize.y(); + }else{ + mCameraOffset = 0; + } +} + +void ComponentList::render(const Eigen::Affine3f& parentTrans) +{ + if(!size()) + return; + + Eigen::Affine3f trans = roundMatrix(parentTrans * getTransform()); + + // clip everything to be inside our bounds + Eigen::Vector3f dim(mSize.x(), mSize.y(), 0); + dim = trans * dim - trans.translation(); + Renderer::pushClipRect(Eigen::Vector2i((int)trans.translation().x(), (int)trans.translation().y()), + Eigen::Vector2i((int)round(dim.x()), (int)round(dim.y() + 1))); + + // scroll the camera + trans.translate(Eigen::Vector3f(0, -round(mCameraOffset), 0)); + + // draw our entries + std::vector drawAfterCursor; + bool drawAll; + for(unsigned int i = 0; i < mEntries.size(); i++) + { + auto& entry = mEntries.at(i); + drawAll = !mFocused || i != mCursor; + for(auto it = entry.data.elements.begin(); it != entry.data.elements.end(); it++) + { + if(drawAll || it->invert_when_selected) + { + it->component->render(trans); + }else{ + drawAfterCursor.push_back(it->component.get()); + } + } + } + + // custom rendering + Renderer::setMatrix(trans); + + // draw selector bar + if(mFocused) + { + // inversion: src * (1 - dst) + dst * 0 = where src = 1 + // need a function that goes roughly 0x777777 -> 0xFFFFFF + // and 0xFFFFFF -> 0x777777 + // (1 - dst) + 0x77 + + const float selectedRowHeight = getRowHeight(mEntries.at(mCursor).data); + Renderer::drawRect(0.0f, mSelectorBarOffset, mSize.x(), selectedRowHeight, 0xFFFFFFFF, + GL_ONE_MINUS_DST_COLOR, GL_ZERO); + Renderer::drawRect(0.0f, mSelectorBarOffset, mSize.x(), selectedRowHeight, 0x777777FF, + GL_ONE, GL_ONE); + + // hack to draw 2px dark on left/right of the bar + Renderer::drawRect(0.0f, mSelectorBarOffset, 2.0f, selectedRowHeight, 0x878787FF); + Renderer::drawRect(mSize.x() - 2.0f, mSelectorBarOffset, 2.0f, selectedRowHeight, 0x878787FF); + + for(auto it = drawAfterCursor.begin(); it != drawAfterCursor.end(); it++) + (*it)->render(trans); + + // reset matrix if one of these components changed it + if(drawAfterCursor.size()) + Renderer::setMatrix(trans); + } + + // draw separators + float y = 0; + for(unsigned int i = 0; i < mEntries.size(); i++) + { + Renderer::drawRect(0.0f, y, mSize.x(), 1.0f, 0xC6C7C6FF); + y += getRowHeight(mEntries.at(i).data); + } + Renderer::drawRect(0.0f, y, mSize.x(), 1.0f, 0xC6C7C6FF); + + Renderer::popClipRect(); +} + +float ComponentList::getRowHeight(const ComponentListRow& row) const +{ + // returns the highest component height found in the row + float height = 0; + for(unsigned int i = 0; i < row.elements.size(); i++) + { + if(row.elements.at(i).component->getSize().y() > height) + height = row.elements.at(i).component->getSize().y(); + } + + return height; +} + +float ComponentList::getTotalRowHeight() const +{ + float height = 0; + for(auto it = mEntries.begin(); it != mEntries.end(); it++) + { + height += getRowHeight(it->data); + } + + return height; +} + +void ComponentList::updateElementPosition(const ComponentListRow& row) +{ + float yOffset = 0; + for(auto it = mEntries.begin(); it != mEntries.end() && &it->data != &row; it++) + { + yOffset += getRowHeight(it->data); + } + + // assumes updateElementSize has already been called + float rowHeight = getRowHeight(row); + + float x = TOTAL_HORIZONTAL_PADDING_PX / 2; + for(unsigned int i = 0; i < row.elements.size(); i++) + { + const auto comp = row.elements.at(i).component; + + // center vertically + comp->setPosition(x, (rowHeight - comp->getSize().y()) / 2 + yOffset); + x += comp->getSize().x(); + } +} + +void ComponentList::updateElementSize(const ComponentListRow& row) +{ + float width = mSize.x() - TOTAL_HORIZONTAL_PADDING_PX; + std::vector< std::shared_ptr > resizeVec; + + for(auto it = row.elements.begin(); it != row.elements.end(); it++) + { + if(it->resize_width) + resizeVec.push_back(it->component); + else + width -= it->component->getSize().x(); + } + + // redistribute the "unused" width equally among the components with resize_width set to true + width = width / resizeVec.size(); + for(auto it = resizeVec.begin(); it != resizeVec.end(); it++) + { + (*it)->setSize(width, (*it)->getSize().y()); + } +} + +void ComponentList::textInput(const char* text) +{ + if(!size()) + return; + + mEntries.at(mCursor).data.elements.back().component->textInput(text); +} + +std::vector ComponentList::getHelpPrompts() +{ + if(!size()) + return std::vector(); + + std::vector prompts = mEntries.at(mCursor).data.elements.back().component->getHelpPrompts(); + + if(size() > 1) + { + bool addMovePrompt = true; + for(auto it = prompts.begin(); it != prompts.end(); it++) + { + if(it->first == "up/down" || it->first == "up/down/left/right") + { + addMovePrompt = false; + break; + } + } + + if(addMovePrompt) + prompts.push_back(HelpPrompt("up/down", "choose")); + } + + return prompts; +} + +bool ComponentList::moveCursor(int amt) +{ + bool ret = listInput(amt); + listInput(0); + return ret; +} diff --git a/es-core/src/components/ComponentList.h b/es-core/src/components/ComponentList.h new file mode 100644 index 000000000..99f06a4ec --- /dev/null +++ b/es-core/src/components/ComponentList.h @@ -0,0 +1,87 @@ +#pragma once + +#include "IList.h" +#include + +struct ComponentListElement +{ + ComponentListElement(const std::shared_ptr& cmp = nullptr, bool resize_w = true, bool inv = true) + : component(cmp), resize_width(resize_w), invert_when_selected(inv) { }; + + std::shared_ptr component; + bool resize_width; + bool invert_when_selected; +}; + +struct ComponentListRow +{ + std::vector elements; + + // The input handler is called when the user enters any input while this row is highlighted (including up/down). + // Return false to let the list try to use it or true if the input has been consumed. + // If no input handler is supplied (input_handler == nullptr), the default behavior is to forward the input to + // the rightmost element in the currently selected row. + std::function input_handler; + + inline void addElement(const std::shared_ptr& component, bool resize_width, bool invert_when_selected = true) + { + elements.push_back(ComponentListElement(component, resize_width, invert_when_selected)); + } + + // Utility method for making an input handler for "when the users presses A on this, do func." + inline void makeAcceptInputHandler(const std::function& func) + { + input_handler = [func](InputConfig* config, Input input) -> bool { + if(config->isMappedTo("a", input) && input.value != 0) + { + func(); + return true; + } + return false; + }; + } +}; + +class ComponentList : public IList +{ +public: + ComponentList(Window* window); + + void addRow(const ComponentListRow& row, bool setCursorHere = false); + + void textInput(const char* text) override; + bool input(InputConfig* config, Input input) override; + void update(int deltaTime) override; + void render(const Eigen::Affine3f& parentTrans) override; + virtual std::vector getHelpPrompts() override; + + void onSizeChanged() override; + void onFocusGained() override; + void onFocusLost() override; + + bool moveCursor(int amt); + inline int getCursorId() const { return mCursor; } + + float getTotalRowHeight() const; + inline float getRowHeight(int row) const { return getRowHeight(mEntries.at(row).data); } + + inline void setCursorChangedCallback(const std::function& callback) { mCursorChangedCallback = callback; }; + inline const std::function& getCursorChangedCallback() const { return mCursorChangedCallback; }; + +protected: + void onCursorChanged(const CursorState& state) override; + +private: + bool mFocused; + + void updateCameraOffset(); + void updateElementPosition(const ComponentListRow& row); + void updateElementSize(const ComponentListRow& row); + + float getRowHeight(const ComponentListRow& row) const; + + float mSelectorBarOffset; + float mCameraOffset; + + std::function mCursorChangedCallback; +}; diff --git a/es-core/src/components/DateTimeComponent.cpp b/es-core/src/components/DateTimeComponent.cpp new file mode 100644 index 000000000..6015be506 --- /dev/null +++ b/es-core/src/components/DateTimeComponent.cpp @@ -0,0 +1,328 @@ +#include "components/DateTimeComponent.h" +#include "Renderer.h" +#include "Window.h" +#include "Log.h" +#include "Util.h" + +DateTimeComponent::DateTimeComponent(Window* window, DisplayMode dispMode) : GuiComponent(window), + mEditing(false), mEditIndex(0), mDisplayMode(dispMode), mRelativeUpdateAccumulator(0), + mColor(0x777777FF), mFont(Font::get(FONT_SIZE_SMALL, FONT_PATH_LIGHT)), mUppercase(false), mSizeSet(false) +{ + updateTextCache(); +} + +void DateTimeComponent::setDisplayMode(DisplayMode mode) +{ + mDisplayMode = mode; + updateTextCache(); +} + +bool DateTimeComponent::input(InputConfig* config, Input input) +{ + if(input.value == 0) + return false; + + if(config->isMappedTo("a", input)) + { + if(mDisplayMode != DISP_RELATIVE_TO_NOW) //don't allow editing for relative times + mEditing = !mEditing; + + if(mEditing) + { + //started editing + mTimeBeforeEdit = mTime; + + //initialize to now if unset + if(mTime == boost::posix_time::not_a_date_time) + { + mTime = boost::posix_time::ptime(boost::gregorian::day_clock::local_day()); + updateTextCache(); + } + } + + return true; + } + + if(mEditing) + { + if(config->isMappedTo("b", input)) + { + mEditing = false; + mTime = mTimeBeforeEdit; + updateTextCache(); + return true; + } + + int incDir = 0; + if(config->isMappedTo("up", input)) + incDir = 1; + else if(config->isMappedTo("down", input)) + incDir = -1; + + if(incDir != 0) + { + tm new_tm = boost::posix_time::to_tm(mTime); + + if(mEditIndex == 0) + { + new_tm.tm_mon += incDir; + + if(new_tm.tm_mon > 11) + new_tm.tm_mon = 11; + else if(new_tm.tm_mon < 0) + new_tm.tm_mon = 0; + + }else if(mEditIndex == 1) + { + new_tm.tm_mday += incDir; + int days_in_month = mTime.date().end_of_month().day().as_number(); + if(new_tm.tm_mday > days_in_month) + new_tm.tm_mday = days_in_month; + else if(new_tm.tm_mday < 1) + new_tm.tm_mday = 1; + + }else if(mEditIndex == 2) + { + new_tm.tm_year += incDir; + if(new_tm.tm_year < 0) + new_tm.tm_year = 0; + } + + //validate day + int days_in_month = boost::gregorian::date(new_tm.tm_year + 1900, new_tm.tm_mon + 1, 1).end_of_month().day().as_number(); + if(new_tm.tm_mday > days_in_month) + new_tm.tm_mday = days_in_month; + + mTime = boost::posix_time::ptime_from_tm(new_tm); + + updateTextCache(); + return true; + } + + if(config->isMappedTo("right", input)) + { + mEditIndex++; + if(mEditIndex >= (int)mCursorBoxes.size()) + mEditIndex--; + return true; + } + + if(config->isMappedTo("left", input)) + { + mEditIndex--; + if(mEditIndex < 0) + mEditIndex++; + return true; + } + } + + return GuiComponent::input(config, input); +} + +void DateTimeComponent::update(int deltaTime) +{ + if(mDisplayMode == DISP_RELATIVE_TO_NOW) + { + mRelativeUpdateAccumulator += deltaTime; + if(mRelativeUpdateAccumulator > 1000) + { + mRelativeUpdateAccumulator = 0; + updateTextCache(); + } + } + + GuiComponent::update(deltaTime); +} + +void DateTimeComponent::render(const Eigen::Affine3f& parentTrans) +{ + Eigen::Affine3f trans = parentTrans * getTransform(); + + if(mTextCache) + { + // vertically center + Eigen::Vector3f off(0, (mSize.y() - mTextCache->metrics.size.y()) / 2, 0); + trans.translate(off); + trans = roundMatrix(trans); + + Renderer::setMatrix(trans); + + std::shared_ptr font = getFont(); + + mTextCache->setColor((mColor & 0xFFFFFF00) | getOpacity()); + font->renderTextCache(mTextCache.get()); + + if(mEditing) + { + if(mEditIndex >= 0 && (unsigned int)mEditIndex < mCursorBoxes.size()) + { + Renderer::drawRect((int)mCursorBoxes[mEditIndex][0], (int)mCursorBoxes[mEditIndex][1], + (int)mCursorBoxes[mEditIndex][2], (int)mCursorBoxes[mEditIndex][3], 0x00000022); + } + } + } +} + +void DateTimeComponent::setValue(const std::string& val) +{ + mTime = string_to_ptime(val); + updateTextCache(); +} + +std::string DateTimeComponent::getValue() const +{ + return boost::posix_time::to_iso_string(mTime); +} + +DateTimeComponent::DisplayMode DateTimeComponent::getCurrentDisplayMode() const +{ + /*if(mEditing) + { + if(mDisplayMode == DISP_RELATIVE_TO_NOW) + { + //TODO: if time component == 00:00:00, return DISP_DATE, else return DISP_DATE_TIME + return DISP_DATE; + } + }*/ + + return mDisplayMode; +} + +std::string DateTimeComponent::getDisplayString(DisplayMode mode) const +{ + std::string fmt; + switch(mode) + { + case DISP_DATE: + fmt = "%m/%d/%Y"; + break; + case DISP_DATE_TIME: + fmt = "%m/%d/%Y %H:%M:%S"; + break; + case DISP_RELATIVE_TO_NOW: + { + //relative time + using namespace boost::posix_time; + + if(mTime == not_a_date_time) + return "never"; + + ptime now = second_clock::universal_time(); + time_duration dur = now - mTime; + + if(dur < seconds(2)) + return "just now"; + if(dur < seconds(60)) + return std::to_string((long long)dur.seconds()) + " secs ago"; + if(dur < minutes(60)) + return std::to_string((long long)dur.minutes()) + " min" + (dur < minutes(2) ? "" : "s") + " ago"; + if(dur < hours(24)) + return std::to_string((long long)dur.hours()) + " hour" + (dur < hours(2) ? "" : "s") + " ago"; + + long long days = (long long)(dur.hours() / 24); + return std::to_string(days) + " day" + (days < 2 ? "" : "s") + " ago"; + } + break; + } + + if(mTime == boost::posix_time::not_a_date_time) + return "unknown"; + + boost::posix_time::time_facet* facet = new boost::posix_time::time_facet(); + facet->format(fmt.c_str()); + std::locale loc(std::locale::classic(), facet); + + std::stringstream ss; + ss.imbue(loc); + ss << mTime; + return ss.str(); +} + +std::shared_ptr DateTimeComponent::getFont() const +{ + if(mFont) + return mFont; + + return Font::get(FONT_SIZE_MEDIUM); +} + +void DateTimeComponent::updateTextCache() +{ + DisplayMode mode = getCurrentDisplayMode(); + const std::string dispString = mUppercase ? strToUpper(getDisplayString(mode)) : getDisplayString(mode); + std::shared_ptr font = getFont(); + mTextCache = std::unique_ptr(font->buildTextCache(dispString, 0, 0, mColor)); + + if(!mSizeSet) + mSize = mTextCache->metrics.size; + + //set up cursor positions + mCursorBoxes.clear(); + + if(dispString.empty() || mode == DISP_RELATIVE_TO_NOW) + return; + + //month + Eigen::Vector2f start(0, 0); + Eigen::Vector2f end = font->sizeText(dispString.substr(0, 2)); + Eigen::Vector2f diff = end - start; + mCursorBoxes.push_back(Eigen::Vector4f(start[0], start[1], diff[0], diff[1])); + + //day + start[0] = font->sizeText(dispString.substr(0, 3)).x(); + end = font->sizeText(dispString.substr(0, 5)); + diff = end - start; + mCursorBoxes.push_back(Eigen::Vector4f(start[0], start[1], diff[0], diff[1])); + + //year + start[0] = font->sizeText(dispString.substr(0, 6)).x(); + end = font->sizeText(dispString.substr(0, 10)); + diff = end - start; + mCursorBoxes.push_back(Eigen::Vector4f(start[0], start[1], diff[0], diff[1])); + + //if mode == DISP_DATE_TIME do times too but I don't wanna do the logic for editing times because no one will ever use it so screw it +} + +void DateTimeComponent::setColor(unsigned int color) +{ + mColor = color; + if(mTextCache) + mTextCache->setColor(color); +} + +void DateTimeComponent::setFont(std::shared_ptr font) +{ + mFont = font; + updateTextCache(); +} + +void DateTimeComponent::onSizeChanged() +{ + mSizeSet = true; + updateTextCache(); +} + +void DateTimeComponent::setUppercase(bool uppercase) +{ + mUppercase = uppercase; + updateTextCache(); +} + +void DateTimeComponent::applyTheme(const std::shared_ptr& theme, const std::string& view, const std::string& element, unsigned int properties) +{ + GuiComponent::applyTheme(theme, view, element, properties); + + using namespace ThemeFlags; + + const ThemeData::ThemeElement* elem = theme->getElement(view, element, "datetime"); + if(!elem) + return; + + if(properties & COLOR && elem->has("color")) + setColor(elem->get("color")); + + if(properties & FORCE_UPPERCASE && elem->has("forceUppercase")) + setUppercase(elem->get("forceUppercase")); + + setFont(Font::getFromTheme(elem, properties, mFont)); +} diff --git a/es-core/src/components/DateTimeComponent.h b/es-core/src/components/DateTimeComponent.h new file mode 100644 index 000000000..82cf38577 --- /dev/null +++ b/es-core/src/components/DateTimeComponent.h @@ -0,0 +1,66 @@ +#pragma once + +#include "GuiComponent.h" +#include +#include "resources/Font.h" + +// Used to enter or display a specific point in time. +class DateTimeComponent : public GuiComponent +{ +public: + enum DisplayMode + { + DISP_DATE, + DISP_DATE_TIME, + DISP_RELATIVE_TO_NOW + }; + + DateTimeComponent(Window* window, DisplayMode dispMode = DISP_DATE); + + void setValue(const std::string& val) override; + std::string getValue() const override; + + bool input(InputConfig* config, Input input) override; + void update(int deltaTime) override; + void render(const Eigen::Affine3f& parentTrans) override; + void onSizeChanged() override; + + // Set how the point in time will be displayed: + // * DISP_DATE - only display the date. + // * DISP_DATE_TIME - display both the date and the time on that date. + // * DISP_RELATIVE_TO_NOW - intelligently display the point in time relative to right now (e.g. "5 secs ago", "3 minutes ago", "1 day ago". Automatically updates as time marches on. + // The initial value is DISP_DATE. + void setDisplayMode(DisplayMode mode); + + void setColor(unsigned int color); // Text color. + void setFont(std::shared_ptr font); // Font to display with. Default is Font::get(FONT_SIZE_MEDIUM). + void setUppercase(bool uppercase); // Force text to be uppercase when in DISP_RELATIVE_TO_NOW mode. + + virtual void applyTheme(const std::shared_ptr& theme, const std::string& view, const std::string& element, unsigned int properties) override; + +private: + std::shared_ptr getFont() const; + + std::string getDisplayString(DisplayMode mode) const; + DisplayMode getCurrentDisplayMode() const; + + void updateTextCache(); + + boost::posix_time::ptime mTime; + boost::posix_time::ptime mTimeBeforeEdit; + + bool mEditing; + int mEditIndex; + DisplayMode mDisplayMode; + + int mRelativeUpdateAccumulator; + + std::unique_ptr mTextCache; + std::vector mCursorBoxes; + + unsigned int mColor; + std::shared_ptr mFont; + bool mUppercase; + + bool mSizeSet; +}; diff --git a/es-core/src/components/HelpComponent.cpp b/es-core/src/components/HelpComponent.cpp new file mode 100644 index 000000000..fdaecd360 --- /dev/null +++ b/es-core/src/components/HelpComponent.cpp @@ -0,0 +1,141 @@ +#include "components/HelpComponent.h" +#include "Renderer.h" +#include "Settings.h" +#include "Log.h" +#include "Util.h" +#include "components/ImageComponent.h" +#include "components/TextComponent.h" +#include "components/ComponentGrid.h" +#include + +#define OFFSET_X 12 // move the entire thing right by this amount (px) +#define OFFSET_Y 12 // move the entire thing up by this amount (px) + +#define ICON_TEXT_SPACING 8 // space between [icon] and [text] (px) +#define ENTRY_SPACING 16 // space between [text] and next [icon] (px) + +using namespace Eigen; + +static const std::map ICON_PATH_MAP = boost::assign::map_list_of + ("up/down", ":/help/dpad_updown.svg") + ("left/right", ":/help/dpad_leftright.svg") + ("up/down/left/right", ":/help/dpad_all.svg") + ("a", ":/help/button_a.svg") + ("b", ":/help/button_b.svg") + ("x", ":/help/button_x.svg") + ("y", ":/help/button_y.svg") + ("l", ":/help/button_l.svg") + ("r", ":/help/button_r.svg") + ("start", ":/help/button_start.svg") + ("select", ":/help/button_select.svg"); + +HelpComponent::HelpComponent(Window* window) : GuiComponent(window) +{ +} + +void HelpComponent::clearPrompts() +{ + mPrompts.clear(); + updateGrid(); +} + +void HelpComponent::setPrompts(const std::vector& prompts) +{ + mPrompts = prompts; + updateGrid(); +} + +void HelpComponent::setStyle(const HelpStyle& style) +{ + mStyle = style; + updateGrid(); +} + +void HelpComponent::updateGrid() +{ + if(!Settings::getInstance()->getBool("ShowHelpPrompts") || mPrompts.empty()) + { + mGrid.reset(); + return; + } + + std::shared_ptr& font = mStyle.font; + + mGrid = std::make_shared(mWindow, Vector2i(mPrompts.size() * 4, 1)); + // [icon] [spacer1] [text] [spacer2] + + std::vector< std::shared_ptr > icons; + std::vector< std::shared_ptr > labels; + + float width = 0; + const float height = round(font->getLetterHeight() * 1.25f); + for(auto it = mPrompts.begin(); it != mPrompts.end(); it++) + { + auto icon = std::make_shared(mWindow); + icon->setImage(getIconTexture(it->first)); + icon->setColorShift(mStyle.iconColor); + icon->setResize(0, height); + icons.push_back(icon); + + auto lbl = std::make_shared(mWindow, strToUpper(it->second), font, mStyle.textColor); + labels.push_back(lbl); + + width += icon->getSize().x() + lbl->getSize().x() + ICON_TEXT_SPACING + ENTRY_SPACING; + } + + mGrid->setSize(width, height); + for(unsigned int i = 0; i < icons.size(); i++) + { + const int col = i*4; + mGrid->setColWidthPerc(col, icons.at(i)->getSize().x() / width); + mGrid->setColWidthPerc(col + 1, ICON_TEXT_SPACING / width); + mGrid->setColWidthPerc(col + 2, labels.at(i)->getSize().x() / width); + + mGrid->setEntry(icons.at(i), Vector2i(col, 0), false, false); + mGrid->setEntry(labels.at(i), Vector2i(col + 2, 0), false, false); + } + + mGrid->setPosition(Eigen::Vector3f(mStyle.position.x(), mStyle.position.y(), 0.0f)); + //mGrid->setPosition(OFFSET_X, Renderer::getScreenHeight() - mGrid->getSize().y() - OFFSET_Y); +} + +std::shared_ptr HelpComponent::getIconTexture(const char* name) +{ + auto it = mIconCache.find(name); + if(it != mIconCache.end()) + return it->second; + + auto pathLookup = ICON_PATH_MAP.find(name); + if(pathLookup == ICON_PATH_MAP.end()) + { + LOG(LogError) << "Unknown help icon \"" << name << "\"!"; + return nullptr; + } + if(!ResourceManager::getInstance()->fileExists(pathLookup->second)) + { + LOG(LogError) << "Help icon \"" << name << "\" - corresponding image file \"" << pathLookup->second << "\" misisng!"; + return nullptr; + } + + std::shared_ptr tex = TextureResource::get(pathLookup->second); + mIconCache[std::string(name)] = tex; + return tex; +} + +void HelpComponent::setOpacity(unsigned char opacity) +{ + GuiComponent::setOpacity(opacity); + + for(unsigned int i = 0; i < mGrid->getChildCount(); i++) + { + mGrid->getChild(i)->setOpacity(opacity); + } +} + +void HelpComponent::render(const Eigen::Affine3f& parentTrans) +{ + Eigen::Affine3f trans = parentTrans * getTransform(); + + if(mGrid) + mGrid->render(trans); +} diff --git a/es-core/src/components/HelpComponent.h b/es-core/src/components/HelpComponent.h new file mode 100644 index 000000000..464e353dc --- /dev/null +++ b/es-core/src/components/HelpComponent.h @@ -0,0 +1,32 @@ +#pragma once + +#include "GuiComponent.h" +#include "HelpStyle.h" + +class ImageComponent; +class TextureResource; +class ComponentGrid; + +class HelpComponent : public GuiComponent +{ +public: + HelpComponent(Window* window); + + void clearPrompts(); + void setPrompts(const std::vector& prompts); + + void render(const Eigen::Affine3f& parent) override; + void setOpacity(unsigned char opacity) override; + + void setStyle(const HelpStyle& style); + +private: + std::shared_ptr getIconTexture(const char* name); + std::map< std::string, std::shared_ptr > mIconCache; + + std::shared_ptr mGrid; + void updateGrid(); + + std::vector mPrompts; + HelpStyle mStyle; +}; diff --git a/es-core/src/components/IList.h b/es-core/src/components/IList.h new file mode 100644 index 000000000..85d806496 --- /dev/null +++ b/es-core/src/components/IList.h @@ -0,0 +1,304 @@ +#pragma once + +#include +#include +#include +#include "GuiComponent.h" +#include "components/ImageComponent.h" +#include "resources/Font.h" +#include "Renderer.h" + +enum CursorState +{ + CURSOR_STOPPED, + CURSOR_SCROLLING +}; + +enum ListLoopType +{ + LIST_ALWAYS_LOOP, + LIST_PAUSE_AT_END, + LIST_NEVER_LOOP +}; + +struct ScrollTier +{ + int length; // how long we stay on this level before going to the next + int scrollDelay; // how long between scrolls +}; + +struct ScrollTierList +{ + const int count; + const ScrollTier* tiers; +}; + +// default scroll tiers +const ScrollTier QUICK_SCROLL_TIERS[] = { + {500, 500}, + {5000, 114}, + {0, 8} +}; +const ScrollTierList LIST_SCROLL_STYLE_QUICK = { 3, QUICK_SCROLL_TIERS }; + +const ScrollTier SLOW_SCROLL_TIERS[] = { + {500, 500}, + {0, 150} +}; +const ScrollTierList LIST_SCROLL_STYLE_SLOW = { 2, SLOW_SCROLL_TIERS }; + +template +class IList : public GuiComponent +{ +public: + struct Entry + { + std::string name; + UserData object; + EntryData data; + }; + +protected: + int mCursor; + + int mScrollTier; + int mScrollVelocity; + + int mScrollTierAccumulator; + int mScrollCursorAccumulator; + + unsigned char mTitleOverlayOpacity; + unsigned int mTitleOverlayColor; + ImageComponent mGradient; + std::shared_ptr mTitleOverlayFont; + + const ScrollTierList& mTierList; + const ListLoopType mLoopType; + + std::vector mEntries; + +public: + IList(Window* window, const ScrollTierList& tierList = LIST_SCROLL_STYLE_QUICK, const ListLoopType& loopType = LIST_PAUSE_AT_END) : GuiComponent(window), + mGradient(window), mTierList(tierList), mLoopType(loopType) + { + mCursor = 0; + mScrollTier = 0; + mScrollVelocity = 0; + mScrollTierAccumulator = 0; + mScrollCursorAccumulator = 0; + + mTitleOverlayOpacity = 0x00; + mTitleOverlayColor = 0xFFFFFF00; + mGradient.setResize((float)Renderer::getScreenWidth(), (float)Renderer::getScreenHeight()); + mGradient.setImage(":/scroll_gradient.png"); + mTitleOverlayFont = Font::get(FONT_SIZE_LARGE); + } + + bool isScrolling() const + { + return (mScrollVelocity != 0 && mScrollTier > 0); + } + + void stopScrolling() + { + listInput(0); + onCursorChanged(CURSOR_STOPPED); + } + + void clear() + { + mEntries.clear(); + mCursor = 0; + listInput(0); + onCursorChanged(CURSOR_STOPPED); + } + + inline const std::string& getSelectedName() + { + assert(size() > 0); + return mEntries.at(mCursor).name; + } + + inline const UserData& getSelected() const + { + assert(size() > 0); + return mEntries.at(mCursor).object; + } + + void setCursor(typename std::vector::iterator& it) + { + assert(it != mEntries.end()); + mCursor = it - mEntries.begin(); + onCursorChanged(CURSOR_STOPPED); + } + + // returns true if successful (select is in our list), false if not + bool setCursor(const UserData& obj) + { + for(auto it = mEntries.begin(); it != mEntries.end(); it++) + { + if((*it).object == obj) + { + mCursor = it - mEntries.begin(); + onCursorChanged(CURSOR_STOPPED); + return true; + } + } + + return false; + } + + // entry management + void add(const Entry& e) + { + mEntries.push_back(e); + } + + bool remove(const UserData& obj) + { + for(auto it = mEntries.begin(); it != mEntries.end(); it++) + { + if((*it).object == obj) + { + remove(it); + return true; + } + } + + return false; + } + + inline int size() const { return mEntries.size(); } + +protected: + void remove(typename std::vector::iterator& it) + { + if(mCursor > 0 && it - mEntries.begin() <= mCursor) + { + mCursor--; + onCursorChanged(CURSOR_STOPPED); + } + + mEntries.erase(it); + } + + + bool listInput(int velocity) // a velocity of 0 = stop scrolling + { + // generate an onCursorChanged event in the stopped state when the user lets go of the key + if(velocity == 0 && mScrollVelocity != 0) + onCursorChanged(CURSOR_STOPPED); + + mScrollVelocity = velocity; + mScrollTier = 0; + mScrollTierAccumulator = 0; + mScrollCursorAccumulator = 0; + + int prevCursor = mCursor; + scroll(mScrollVelocity); + return (prevCursor != mCursor); + } + + void listUpdate(int deltaTime) + { + // update the title overlay opacity + const int dir = (mScrollTier >= mTierList.count - 1) ? 1 : -1; // fade in if scroll tier is >= 1, otherwise fade out + int op = mTitleOverlayOpacity + deltaTime*dir; // we just do a 1-to-1 time -> opacity, no scaling + if(op >= 255) + mTitleOverlayOpacity = 255; + else if(op <= 0) + mTitleOverlayOpacity = 0; + else + mTitleOverlayOpacity = (unsigned char)op; + + if(mScrollVelocity == 0 || size() < 2) + return; + + mScrollCursorAccumulator += deltaTime; + mScrollTierAccumulator += deltaTime; + + // we delay scrolling until after scroll tier has updated so isScrolling() returns accurately during onCursorChanged callbacks + // we don't just do scroll tier first because it would not catch the scrollDelay == tier length case + int scrollCount = 0; + while(mScrollCursorAccumulator >= mTierList.tiers[mScrollTier].scrollDelay) + { + mScrollCursorAccumulator -= mTierList.tiers[mScrollTier].scrollDelay; + scrollCount++; + } + + // are we ready to go even FASTER? + while(mScrollTier < mTierList.count - 1 && mScrollTierAccumulator >= mTierList.tiers[mScrollTier].length) + { + mScrollTierAccumulator -= mTierList.tiers[mScrollTier].length; + mScrollTier++; + } + + // actually perform the scrolling + for(int i = 0; i < scrollCount; i++) + scroll(mScrollVelocity); + } + + void listRenderTitleOverlay(const Eigen::Affine3f& trans) + { + if(size() == 0 || !mTitleOverlayFont || mTitleOverlayOpacity == 0) + return; + + // we don't bother caching this because it's only two letters and will change pretty much every frame if we're scrolling + const std::string text = getSelectedName().size() >= 2 ? getSelectedName().substr(0, 2) : "??"; + + Eigen::Vector2f off = mTitleOverlayFont->sizeText(text); + off[0] = (Renderer::getScreenWidth() - off.x()) * 0.5f; + off[1] = (Renderer::getScreenHeight() - off.y()) * 0.5f; + + Eigen::Affine3f identTrans = Eigen::Affine3f::Identity(); + + mGradient.setOpacity(mTitleOverlayOpacity); + mGradient.render(identTrans); + + TextCache* cache = mTitleOverlayFont->buildTextCache(text, off.x(), off.y(), 0xFFFFFF00 | mTitleOverlayOpacity); + mTitleOverlayFont->renderTextCache(cache); // relies on mGradient's render for Renderer::setMatrix() + delete cache; + } + + void scroll(int amt) + { + if(mScrollVelocity == 0 || size() < 2) + return; + + int cursor = mCursor + amt; + int absAmt = amt < 0 ? -amt : amt; + + // stop at the end if we've been holding down the button for a long time or + // we're scrolling faster than one item at a time (e.g. page up/down) + // otherwise, loop around + if((mLoopType == LIST_PAUSE_AT_END && (mScrollTier > 0 || absAmt > 1)) || + mLoopType == LIST_NEVER_LOOP) + { + if(cursor < 0) + { + cursor = 0; + mScrollVelocity = 0; + mScrollTier = 0; + }else if(cursor >= size()) + { + cursor = size() - 1; + mScrollVelocity = 0; + mScrollTier = 0; + } + }else{ + while(cursor < 0) + cursor += size(); + while(cursor >= size()) + cursor -= size(); + } + + if(cursor != mCursor) + onScroll(absAmt); + + mCursor = cursor; + onCursorChanged((mScrollTier > 0) ? CURSOR_SCROLLING : CURSOR_STOPPED); + } + + virtual void onCursorChanged(const CursorState& state) {} + virtual void onScroll(int amt) {} +}; diff --git a/es-core/src/components/ImageComponent.cpp b/es-core/src/components/ImageComponent.cpp new file mode 100644 index 000000000..2898c6f73 --- /dev/null +++ b/es-core/src/components/ImageComponent.cpp @@ -0,0 +1,331 @@ +#include "components/ImageComponent.h" +#include +#include +#include +#include "Log.h" +#include "Renderer.h" +#include "ThemeData.h" +#include "Util.h" +#include "resources/SVGResource.h" + +Eigen::Vector2i ImageComponent::getTextureSize() const +{ + if(mTexture) + return mTexture->getSize(); + else + return Eigen::Vector2i(0, 0); +} + +Eigen::Vector2f ImageComponent::getCenter() const +{ + return Eigen::Vector2f(mPosition.x() - (getSize().x() * mOrigin.x()) + getSize().x() / 2, + mPosition.y() - (getSize().y() * mOrigin.y()) + getSize().y() / 2); +} + +ImageComponent::ImageComponent(Window* window) : GuiComponent(window), + mTargetIsMax(false), mFlipX(false), mFlipY(false), mOrigin(0.0, 0.0), mTargetSize(0, 0), mColorShift(0xFFFFFFFF) +{ + updateColors(); +} + +ImageComponent::~ImageComponent() +{ +} + +void ImageComponent::resize() +{ + if(!mTexture) + return; + + SVGResource* svg = dynamic_cast(mTexture.get()); + + const Eigen::Vector2f textureSize = svg ? svg->getSourceImageSize() : Eigen::Vector2f((float)mTexture->getSize().x(), (float)mTexture->getSize().y()); + if(textureSize.isZero()) + return; + + if(mTexture->isTiled()) + { + mSize = mTargetSize; + }else{ + // SVG rasterization is determined by height (see SVGResource.cpp), and rasterization is done in terms of pixels + // if rounding is off enough in the rasterization step (for images with extreme aspect ratios), it can cause cutoff when the aspect ratio breaks + // so, we always make sure the resultant height is an integer to make sure cutoff doesn't happen, and scale width from that + // (you'll see this scattered throughout the function) + // this is probably not the best way, so if you're familiar with this problem and have a better solution, please make a pull request! + + if(mTargetIsMax) + { + mSize = textureSize; + + Eigen::Vector2f resizeScale((mTargetSize.x() / mSize.x()), (mTargetSize.y() / mSize.y())); + + if(resizeScale.x() < resizeScale.y()) + { + mSize[0] *= resizeScale.x(); + mSize[1] *= resizeScale.x(); + }else{ + mSize[0] *= resizeScale.y(); + mSize[1] *= resizeScale.y(); + } + + // for SVG rasterization, always calculate width from rounded height (see comment above) + mSize[1] = round(mSize[1]); + mSize[0] = (mSize[1] / textureSize.y()) * textureSize.x(); + + }else{ + // if both components are set, we just stretch + // if no components are set, we don't resize at all + mSize = mTargetSize.isZero() ? textureSize : mTargetSize; + + // if only one component is set, we resize in a way that maintains aspect ratio + // for SVG rasterization, we always calculate width from rounded height (see comment above) + if(!mTargetSize.x() && mTargetSize.y()) + { + mSize[1] = round(mTargetSize.y()); + mSize[0] = (mSize.y() / textureSize.y()) * textureSize.x(); + }else if(mTargetSize.x() && !mTargetSize.y()) + { + mSize[1] = round((mTargetSize.x() / textureSize.x()) * textureSize.y()); + mSize[0] = (mSize.y() / textureSize.y()) * textureSize.x(); + } + } + } + + if(svg) + { + // mSize.y() should already be rounded + svg->rasterizeAt((int)round(mSize.x()), (int)round(mSize.y())); + } + + onSizeChanged(); +} + +void ImageComponent::onSizeChanged() +{ + updateVertices(); +} + +void ImageComponent::setImage(std::string path, bool tile) +{ + if(path.empty() || !ResourceManager::getInstance()->fileExists(path)) + mTexture.reset(); + else + mTexture = TextureResource::get(path, tile); + + resize(); +} + +void ImageComponent::setImage(const char* path, size_t length, bool tile) +{ + mTexture.reset(); + + mTexture = TextureResource::get("", tile); + mTexture->initFromMemory(path, length); + + resize(); +} + +void ImageComponent::setImage(const std::shared_ptr& texture) +{ + mTexture = texture; + resize(); +} + +void ImageComponent::setOrigin(float originX, float originY) +{ + mOrigin << originX, originY; + updateVertices(); +} + +void ImageComponent::setResize(float width, float height) +{ + mTargetSize << width, height; + mTargetIsMax = false; + resize(); +} + +void ImageComponent::setMaxSize(float width, float height) +{ + mTargetSize << width, height; + mTargetIsMax = true; + resize(); +} + +void ImageComponent::setFlipX(bool flip) +{ + mFlipX = flip; + updateVertices(); +} + +void ImageComponent::setFlipY(bool flip) +{ + mFlipY = flip; + updateVertices(); +} + +void ImageComponent::setColorShift(unsigned int color) +{ + mColorShift = color; + updateColors(); +} + +void ImageComponent::setOpacity(unsigned char opacity) +{ + mOpacity = opacity; + mColorShift = (mColorShift >> 8 << 8) | mOpacity; + updateColors(); +} + +void ImageComponent::updateVertices() +{ + if(!mTexture || !mTexture->isInitialized()) + return; + + // we go through this mess to make sure everything is properly rounded + // if we just round vertices at the end, edge cases occur near sizes of 0.5 + Eigen::Vector2f topLeft(-mSize.x() * mOrigin.x(), -mSize.y() * mOrigin.y()); + Eigen::Vector2f bottomRight(mSize.x() * (1 -mOrigin.x()), mSize.y() * (1 - mOrigin.y())); + + const float width = round(bottomRight.x() - topLeft.x()); + const float height = round(bottomRight.y() - topLeft.y()); + + topLeft[0] = floor(topLeft[0]); + topLeft[1] = floor(topLeft[1]); + bottomRight[0] = topLeft[0] + width; + bottomRight[1] = topLeft[1] + height; + + mVertices[0].pos << topLeft.x(), topLeft.y(); + mVertices[1].pos << topLeft.x(), bottomRight.y(); + mVertices[2].pos << bottomRight.x(), topLeft.y(); + + mVertices[3].pos << bottomRight.x(), topLeft.y(); + mVertices[4].pos << topLeft.x(), bottomRight.y(); + mVertices[5].pos << bottomRight.x(), bottomRight.y(); + + float px, py; + if(mTexture->isTiled()) + { + px = mSize.x() / getTextureSize().x(); + py = mSize.y() / getTextureSize().y(); + }else{ + px = 1; + py = 1; + } + + mVertices[0].tex << 0, py; + mVertices[1].tex << 0, 0; + mVertices[2].tex << px, py; + + mVertices[3].tex << px, py; + mVertices[4].tex << 0, 0; + mVertices[5].tex << px, 0; + + if(mFlipX) + { + for(int i = 0; i < 6; i++) + mVertices[i].tex[0] = mVertices[i].tex[0] == px ? 0 : px; + } + if(mFlipY) + { + for(int i = 1; i < 6; i++) + mVertices[i].tex[1] = mVertices[i].tex[1] == py ? 0 : py; + } +} + +void ImageComponent::updateColors() +{ + Renderer::buildGLColorArray(mColors, mColorShift, 6); +} + +void ImageComponent::render(const Eigen::Affine3f& parentTrans) +{ + Eigen::Affine3f trans = roundMatrix(parentTrans * getTransform()); + Renderer::setMatrix(trans); + + if(mTexture && mOpacity > 0) + { + if(mTexture->isInitialized()) + { + // actually draw the image + mTexture->bind(); + + glEnable(GL_TEXTURE_2D); + glEnable(GL_BLEND); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + + glEnableClientState(GL_VERTEX_ARRAY); + glEnableClientState(GL_TEXTURE_COORD_ARRAY); + glEnableClientState(GL_COLOR_ARRAY); + + glVertexPointer(2, GL_FLOAT, sizeof(Vertex), &mVertices[0].pos); + glTexCoordPointer(2, GL_FLOAT, sizeof(Vertex), &mVertices[0].tex); + glColorPointer(4, GL_UNSIGNED_BYTE, 0, mColors); + + glDrawArrays(GL_TRIANGLES, 0, 6); + + glDisableClientState(GL_VERTEX_ARRAY); + glDisableClientState(GL_TEXTURE_COORD_ARRAY); + glDisableClientState(GL_COLOR_ARRAY); + + glDisable(GL_TEXTURE_2D); + glDisable(GL_BLEND); + }else{ + LOG(LogError) << "Image texture is not initialized!"; + mTexture.reset(); + } + } + + GuiComponent::renderChildren(trans); +} + +bool ImageComponent::hasImage() +{ + return (bool)mTexture; +} + +void ImageComponent::applyTheme(const std::shared_ptr& theme, const std::string& view, const std::string& element, unsigned int properties) +{ + using namespace ThemeFlags; + + const ThemeData::ThemeElement* elem = theme->getElement(view, element, "image"); + if(!elem) + { + return; + } + + Eigen::Vector2f scale = getParent() ? getParent()->getSize() : Eigen::Vector2f((float)Renderer::getScreenWidth(), (float)Renderer::getScreenHeight()); + + if(properties & POSITION && elem->has("pos")) + { + Eigen::Vector2f denormalized = elem->get("pos").cwiseProduct(scale); + setPosition(Eigen::Vector3f(denormalized.x(), denormalized.y(), 0)); + } + + if(properties & ThemeFlags::SIZE) + { + if(elem->has("size")) + setResize(elem->get("size").cwiseProduct(scale)); + else if(elem->has("maxSize")) + setMaxSize(elem->get("maxSize").cwiseProduct(scale)); + } + + // position + size also implies origin + if((properties & ORIGIN || (properties & POSITION && properties & ThemeFlags::SIZE)) && elem->has("origin")) + setOrigin(elem->get("origin")); + + if(properties & PATH && elem->has("path")) + { + bool tile = (elem->has("tile") && elem->get("tile")); + setImage(elem->get("path"), tile); + } + + if(properties & COLOR && elem->has("color")) + setColorShift(elem->get("color")); +} + +std::vector ImageComponent::getHelpPrompts() +{ + std::vector ret; + ret.push_back(HelpPrompt("a", "select")); + return ret; +} diff --git a/es-core/src/components/ImageComponent.h b/es-core/src/components/ImageComponent.h new file mode 100644 index 000000000..939c6c7cd --- /dev/null +++ b/es-core/src/components/ImageComponent.h @@ -0,0 +1,90 @@ +#ifndef _IMAGECOMPONENT_H_ +#define _IMAGECOMPONENT_H_ + +#include "platform.h" +#include GLHEADER + +#include "GuiComponent.h" +#include +#include +#include "resources/TextureResource.h" + +class ImageComponent : public GuiComponent +{ +public: + ImageComponent(Window* window); + virtual ~ImageComponent(); + + //Loads the image at the given filepath. Will tile if tile is true (retrieves texture as tiling, creates vertices accordingly). + void setImage(std::string path, bool tile = false); + //Loads an image from memory. + void setImage(const char* image, size_t length, bool tile = false); + //Use an already existing texture. + void setImage(const std::shared_ptr& texture); + + void onSizeChanged() override; + void setOpacity(unsigned char opacity) override; + + //Sets the origin as a percentage of this image (e.g. (0, 0) is top left, (0.5, 0.5) is the center) + void setOrigin(float originX, float originY); + inline void setOrigin(Eigen::Vector2f origin) { setOrigin(origin.x(), origin.y()); } + + // Resize the image to fit this size. If one axis is zero, scale that axis to maintain aspect ratio. + // If both are non-zero, potentially break the aspect ratio. If both are zero, no resizing. + // Can be set before or after an image is loaded. + // setMaxSize() and setResize() are mutually exclusive. + void setResize(float width, float height); + inline void setResize(const Eigen::Vector2f& size) { setResize(size.x(), size.y()); } + + // Resize the image to be as large as possible but fit within a box of this size. + // Can be set before or after an image is loaded. + // Never breaks the aspect ratio. setMaxSize() and setResize() are mutually exclusive. + void setMaxSize(float width, float height); + inline void setMaxSize(const Eigen::Vector2f& size) { setMaxSize(size.x(), size.y()); } + + // Multiply all pixels in the image by this color when rendering. + void setColorShift(unsigned int color); + + void setFlipX(bool flip); // Mirror on the X axis. + void setFlipY(bool flip); // Mirror on the Y axis. + + // Returns the size of the current texture, or (0, 0) if none is loaded. May be different than drawn size (use getSize() for that). + Eigen::Vector2i getTextureSize() const; + + // Returns the center point of the image (takes origin into account). + Eigen::Vector2f getCenter() const; + + bool hasImage(); + + void render(const Eigen::Affine3f& parentTrans) override; + + virtual void applyTheme(const std::shared_ptr& theme, const std::string& view, const std::string& element, unsigned int properties) override; + + virtual std::vector getHelpPrompts() override; +private: + Eigen::Vector2f mTargetSize; + Eigen::Vector2f mOrigin; + + bool mFlipX, mFlipY, mTargetIsMax; + + // Calculates the correct mSize from our resizing information (set by setResize/setMaxSize). + // Used internally whenever the resizing parameters or texture change. + void resize(); + + struct Vertex + { + Eigen::Vector2f pos; + Eigen::Vector2f tex; + } mVertices[6]; + + GLubyte mColors[6*4]; + + void updateVertices(); + void updateColors(); + + unsigned int mColorShift; + + std::shared_ptr mTexture; +}; + +#endif diff --git a/es-core/src/components/ImageGridComponent.h b/es-core/src/components/ImageGridComponent.h new file mode 100644 index 000000000..b00a6c624 --- /dev/null +++ b/es-core/src/components/ImageGridComponent.h @@ -0,0 +1,255 @@ +#pragma once + +#include "GuiComponent.h" +#include "components/IList.h" +#include "components/ImageComponent.h" +#include "Log.h" + +struct ImageGridData +{ + std::shared_ptr texture; +}; + +template +class ImageGridComponent : public IList +{ +protected: + using IList::mEntries; + using IList::listUpdate; + using IList::listInput; + using IList::listRenderTitleOverlay; + using IList::getTransform; + using IList::mSize; + using IList::mCursor; + using IList::Entry; + using IList::mWindow; + +public: + using IList::size; + using IList::isScrolling; + using IList::stopScrolling; + + ImageGridComponent(Window* window); + + void add(const std::string& name, const std::string& imagePath, const T& obj); + + void onSizeChanged() override; + + bool input(InputConfig* config, Input input) override; + void update(int deltaTime) override; + void render(const Eigen::Affine3f& parentTrans) override; + +private: + Eigen::Vector2f getSquareSize(std::shared_ptr tex = nullptr) const + { + Eigen::Vector2f aspect(1, 1); + + if(tex) + { + const Eigen::Vector2i& texSize = tex->getSize(); + + if(texSize.x() > texSize.y()) + aspect[0] = (float)texSize.x() / texSize.y(); + else + aspect[1] = (float)texSize.y() / texSize.x(); + } + + return Eigen::Vector2f(156 * aspect.x(), 156 * aspect.y()); + }; + + Eigen::Vector2f getMaxSquareSize() const + { + Eigen::Vector2f squareSize(32, 32); + + // calc biggest square size + for(auto it = mEntries.begin(); it != mEntries.end(); it++) + { + Eigen::Vector2f chkSize = getSquareSize(it->data.texture); + if(chkSize.x() > squareSize.x()) + squareSize[0] = chkSize[0]; + if(chkSize.y() > squareSize.y()) + squareSize[1] = chkSize[1]; + } + + return squareSize; + }; + + Eigen::Vector2i getGridSize() const + { + Eigen::Vector2f squareSize = getMaxSquareSize(); + Eigen::Vector2i gridSize(mSize.x() / (squareSize.x() + getPadding().x()), mSize.y() / (squareSize.y() + getPadding().y())); + return gridSize; + }; + + Eigen::Vector2f getPadding() const { return Eigen::Vector2f(24, 24); } + + void buildImages(); + void updateImages(); + + virtual void onCursorChanged(const CursorState& state); + + bool mEntriesDirty; + + std::vector mImages; +}; + +template +ImageGridComponent::ImageGridComponent(Window* window) : IList(window) +{ + mEntriesDirty = true; +} + +template +void ImageGridComponent::add(const std::string& name, const std::string& imagePath, const T& obj) +{ + typename IList::Entry entry; + entry.name = name; + entry.object = obj; + entry.data.texture = ResourceManager::getInstance()->fileExists(imagePath) ? TextureResource::get(imagePath) : TextureResource::get(":/button.png"); + static_cast*>(this)->add(entry); + mEntriesDirty = true; +} + +template +bool ImageGridComponent::input(InputConfig* config, Input input) +{ + if(input.value != 0) + { + Eigen::Vector2i dir = Eigen::Vector2i::Zero(); + if(config->isMappedTo("up", input)) + dir[1] = -1; + else if(config->isMappedTo("down", input)) + dir[1] = 1; + else if(config->isMappedTo("left", input)) + dir[0] = -1; + else if(config->isMappedTo("right", input)) + dir[0] = 1; + + if(dir != Eigen::Vector2i::Zero()) + { + listInput(dir.x() + dir.y() * getGridSize().x()); + return true; + } + }else{ + if(config->isMappedTo("up", input) || config->isMappedTo("down", input) || config->isMappedTo("left", input) || config->isMappedTo("right", input)) + { + stopScrolling(); + } + } + + return GuiComponent::input(config, input); +} + +template +void ImageGridComponent::update(int deltaTime) +{ + listUpdate(deltaTime); +} + +template +void ImageGridComponent::render(const Eigen::Affine3f& parentTrans) +{ + Eigen::Affine3f trans = getTransform() * parentTrans; + + if(mEntriesDirty) + { + buildImages(); + updateImages(); + mEntriesDirty = false; + } + + for(auto it = mImages.begin(); it != mImages.end(); it++) + { + it->render(trans); + } + + GuiComponent::renderChildren(trans); +} + +template +void ImageGridComponent::onCursorChanged(const CursorState& state) +{ + updateImages(); +} + +template +void ImageGridComponent::onSizeChanged() +{ + buildImages(); + updateImages(); +} + +// create and position imagecomponents (mImages) +template +void ImageGridComponent::buildImages() +{ + mImages.clear(); + + Eigen::Vector2i gridSize = getGridSize(); + Eigen::Vector2f squareSize = getMaxSquareSize(); + Eigen::Vector2f padding = getPadding(); + + // attempt to center within our size + Eigen::Vector2f totalSize(gridSize.x() * (squareSize.x() + padding.x()), gridSize.y() * (squareSize.y() + padding.y())); + Eigen::Vector2f offset(mSize.x() - totalSize.x(), mSize.y() - totalSize.y()); + offset /= 2; + + for(int y = 0; y < gridSize.y(); y++) + { + for(int x = 0; x < gridSize.x(); x++) + { + mImages.push_back(ImageComponent(mWindow)); + ImageComponent& image = mImages.at(y * gridSize.x() + x); + + image.setPosition((squareSize.x() + padding.x()) * (x + 0.5f) + offset.x(), (squareSize.y() + padding.y()) * (y + 0.5f) + offset.y()); + image.setOrigin(0.5f, 0.5f); + image.setResize(squareSize.x(), squareSize.y()); + image.setImage(""); + } + } +} + +template +void ImageGridComponent::updateImages() +{ + if(mImages.empty()) + buildImages(); + + Eigen::Vector2i gridSize = getGridSize(); + + int cursorRow = mCursor / gridSize.x(); + int cursorCol = mCursor % gridSize.x(); + + int start = (cursorRow - (gridSize.y() / 2)) * gridSize.x(); + + //if we're at the end put the row as close as we can and no higher + if(start + (gridSize.x() * gridSize.y()) >= (int)mEntries.size()) + start = gridSize.x() * ((int)mEntries.size()/gridSize.x() - gridSize.y() + 1); + + if(start < 0) + start = 0; + + unsigned int i = (unsigned int)start; + for(unsigned int img = 0; img < mImages.size(); img++) + { + ImageComponent& image = mImages.at(img); + if(i >= (unsigned int)size()) + { + image.setImage(""); + continue; + } + + Eigen::Vector2f squareSize = getSquareSize(mEntries.at(i).data.texture); + if(i == mCursor) + { + image.setColorShift(0xFFFFFFFF); + image.setResize(squareSize.x() + getPadding().x() * 0.95f, squareSize.y() + getPadding().y() * 0.95f); + }else{ + image.setColorShift(0xAAAAAABB); + image.setResize(squareSize.x(), squareSize.y()); + } + + image.setImage(mEntries.at(i).data.texture); + i++; + } +} diff --git a/es-core/src/components/MenuComponent.cpp b/es-core/src/components/MenuComponent.cpp new file mode 100644 index 000000000..589bc6fab --- /dev/null +++ b/es-core/src/components/MenuComponent.cpp @@ -0,0 +1,133 @@ +#include "components/MenuComponent.h" +#include "components/ButtonComponent.h" + +#define BUTTON_GRID_VERT_PADDING 32 +#define BUTTON_GRID_HORIZ_PADDING 10 + +#define TITLE_HEIGHT (mTitle->getFont()->getLetterHeight() + TITLE_VERT_PADDING) + +using namespace Eigen; + +MenuComponent::MenuComponent(Window* window, const char* title, const std::shared_ptr& titleFont) : GuiComponent(window), + mBackground(window), mGrid(window, Vector2i(1, 3)) +{ + addChild(&mBackground); + addChild(&mGrid); + + mBackground.setImagePath(":/frame.png"); + + // set up title + mTitle = std::make_shared(mWindow); + mTitle->setAlignment(ALIGN_CENTER); + mTitle->setColor(0x555555FF); + setTitle(title, titleFont); + mGrid.setEntry(mTitle, Vector2i(0, 0), false); + + // set up list which will never change (externally, anyway) + mList = std::make_shared(mWindow); + mGrid.setEntry(mList, Vector2i(0, 1), true); + + updateGrid(); + updateSize(); + + mGrid.resetCursor(); +} + +void MenuComponent::setTitle(const char* title, const std::shared_ptr& font) +{ + mTitle->setText(strToUpper(title)); + mTitle->setFont(font); +} + +float MenuComponent::getButtonGridHeight() const +{ + return (mButtonGrid ? mButtonGrid->getSize().y() : Font::get(FONT_SIZE_MEDIUM)->getHeight() + BUTTON_GRID_VERT_PADDING); +} + +void MenuComponent::updateSize() +{ + const float maxHeight = Renderer::getScreenHeight() * 0.7f; + float height = TITLE_HEIGHT + mList->getTotalRowHeight() + getButtonGridHeight() + 2; + if(height > maxHeight) + { + height = TITLE_HEIGHT + getButtonGridHeight(); + int i = 0; + while(i < mList->size()) + { + float rowHeight = mList->getRowHeight(i); + if(height + rowHeight < maxHeight) + height += rowHeight; + else + break; + i++; + } + } + + setSize(Renderer::getScreenWidth() * 0.5f, height); +} + +void MenuComponent::onSizeChanged() +{ + mBackground.fitTo(mSize, Eigen::Vector3f::Zero(), Eigen::Vector2f(-32, -32)); + + // update grid row/col sizes + mGrid.setRowHeightPerc(0, TITLE_HEIGHT / mSize.y()); + mGrid.setRowHeightPerc(2, getButtonGridHeight() / mSize.y()); + + mGrid.setSize(mSize); +} + +void MenuComponent::addButton(const std::string& name, const std::string& helpText, const std::function& callback) +{ + mButtons.push_back(std::make_shared(mWindow, strToUpper(name), helpText, callback)); + updateGrid(); + updateSize(); +} + +void MenuComponent::updateGrid() +{ + if(mButtonGrid) + mGrid.removeEntry(mButtonGrid); + + mButtonGrid.reset(); + + if(mButtons.size()) + { + mButtonGrid = makeButtonGrid(mWindow, mButtons); + mGrid.setEntry(mButtonGrid, Vector2i(0, 2), true, false); + } +} + +std::vector MenuComponent::getHelpPrompts() +{ + return mGrid.getHelpPrompts(); +} + +std::shared_ptr makeButtonGrid(Window* window, const std::vector< std::shared_ptr >& buttons) +{ + std::shared_ptr buttonGrid = std::make_shared(window, Vector2i(buttons.size(), 2)); + + float buttonGridWidth = (float)BUTTON_GRID_HORIZ_PADDING * buttons.size(); // initialize to padding + for(int i = 0; i < (int)buttons.size(); i++) + { + buttonGrid->setEntry(buttons.at(i), Vector2i(i, 0), true, false); + buttonGridWidth += buttons.at(i)->getSize().x(); + } + for(unsigned int i = 0; i < buttons.size(); i++) + { + buttonGrid->setColWidthPerc(i, (buttons.at(i)->getSize().x() + BUTTON_GRID_HORIZ_PADDING) / buttonGridWidth); + } + + buttonGrid->setSize(buttonGridWidth, buttons.at(0)->getSize().y() + BUTTON_GRID_VERT_PADDING + 2); + buttonGrid->setRowHeightPerc(1, 2 / buttonGrid->getSize().y()); // spacer row to deal with dropshadow to make buttons look centered + + return buttonGrid; +} + +std::shared_ptr makeArrow(Window* window) +{ + auto bracket = std::make_shared(window); + bracket->setImage(":/arrow.svg"); + bracket->setResize(0, round(Font::get(FONT_SIZE_MEDIUM)->getLetterHeight())); + return bracket; +} diff --git a/es-core/src/components/MenuComponent.h b/es-core/src/components/MenuComponent.h new file mode 100644 index 000000000..f81852127 --- /dev/null +++ b/es-core/src/components/MenuComponent.h @@ -0,0 +1,55 @@ +#pragma once + +#include "components/NinePatchComponent.h" +#include "components/ComponentList.h" +#include "components/TextComponent.h" +#include "components/ComponentGrid.h" +#include "Util.h" + +class ButtonComponent; +class ImageComponent; + +std::shared_ptr makeButtonGrid(Window* window, const std::vector< std::shared_ptr >& buttons); +std::shared_ptr makeArrow(Window* window); + +#define TITLE_VERT_PADDING (Renderer::getScreenHeight()*0.0637f) + +class MenuComponent : public GuiComponent +{ +public: + MenuComponent(Window* window, const char* title, const std::shared_ptr& titleFont = Font::get(FONT_SIZE_LARGE)); + + void onSizeChanged() override; + + inline void addRow(const ComponentListRow& row, bool setCursorHere = false) { mList->addRow(row, setCursorHere); updateSize(); } + + inline void addWithLabel(const std::string& label, const std::shared_ptr& comp, bool setCursorHere = false, bool invert_when_selected = true) + { + ComponentListRow row; + row.addElement(std::make_shared(mWindow, strToUpper(label), Font::get(FONT_SIZE_MEDIUM), 0x777777FF), true); + row.addElement(comp, false, invert_when_selected); + addRow(row, setCursorHere); + } + + void addButton(const std::string& label, const std::string& helpText, const std::function& callback); + + void setTitle(const char* title, const std::shared_ptr& font); + + inline void setCursorToList() { mGrid.setCursorTo(mList); } + inline void setCursorToButtons() { assert(mButtonGrid); mGrid.setCursorTo(mButtonGrid); } + + virtual std::vector getHelpPrompts() override; + +private: + void updateSize(); + void updateGrid(); + float getButtonGridHeight() const; + + NinePatchComponent mBackground; + ComponentGrid mGrid; + + std::shared_ptr mTitle; + std::shared_ptr mList; + std::shared_ptr mButtonGrid; + std::vector< std::shared_ptr > mButtons; +}; diff --git a/es-core/src/components/NinePatchComponent.cpp b/es-core/src/components/NinePatchComponent.cpp new file mode 100644 index 000000000..9d10be123 --- /dev/null +++ b/es-core/src/components/NinePatchComponent.cpp @@ -0,0 +1,218 @@ +#include "components/NinePatchComponent.h" +#include "Window.h" +#include "Log.h" +#include "Renderer.h" +#include "ThemeData.h" +#include "Util.h" + +NinePatchComponent::NinePatchComponent(Window* window, const std::string& path, unsigned int edgeColor, unsigned int centerColor) : GuiComponent(window), + mEdgeColor(edgeColor), mCenterColor(centerColor), + mPath(path), + mVertices(NULL), mColors(NULL) +{ + if(!mPath.empty()) + buildVertices(); +} + +void NinePatchComponent::updateColors() +{ + Renderer::buildGLColorArray(mColors, mEdgeColor, 6 * 9); + Renderer::buildGLColorArray(&mColors[4 * 6 * 4], mCenterColor, 6); +} + +void NinePatchComponent::buildVertices() +{ + if(mVertices != NULL) + delete[] mVertices; + + if(mColors != NULL) + delete[] mColors; + + mTexture = TextureResource::get(mPath); + + if(mTexture->getSize() == Eigen::Vector2i::Zero()) + { + mVertices = NULL; + mColors = NULL; + LOG(LogWarning) << "NinePatchComponent missing texture!"; + return; + } + + mVertices = new Vertex[6 * 9]; + mColors = new GLubyte[6 * 9 * 4]; + updateColors(); + + const Eigen::Vector2f ts = mTexture->getSize().cast(); + + //coordinates on the image in pixels, top left origin + const Eigen::Vector2f pieceCoords[9] = { + Eigen::Vector2f(0, 0), + Eigen::Vector2f(16, 0), + Eigen::Vector2f(32, 0), + Eigen::Vector2f(0, 16), + Eigen::Vector2f(16, 16), + Eigen::Vector2f(32, 16), + Eigen::Vector2f(0, 32), + Eigen::Vector2f(16, 32), + Eigen::Vector2f(32, 32), + }; + + const Eigen::Vector2f pieceSizes = getCornerSize(); + + //corners never stretch, so we calculate a width and height for slices 1, 3, 5, and 7 + float borderWidth = mSize.x() - (pieceSizes.x() * 2); //should be pieceSizes[0] and pieceSizes[2] + //if(borderWidth < pieceSizes.x()) + // borderWidth = pieceSizes.x(); + + float borderHeight = mSize.y() - (pieceSizes.y() * 2); //should be pieceSizes[0] and pieceSizes[6] + //if(borderHeight < pieceSizes.y()) + // borderHeight = pieceSizes.y(); + + mVertices[0 * 6].pos = pieceCoords[0]; //top left + mVertices[1 * 6].pos = pieceCoords[1]; //top middle + mVertices[2 * 6].pos = pieceCoords[1] + Eigen::Vector2f(borderWidth, 0); //top right + + mVertices[3 * 6].pos = mVertices[0 * 6].pos + Eigen::Vector2f(0, pieceSizes.y()); //mid left + mVertices[4 * 6].pos = mVertices[3 * 6].pos + Eigen::Vector2f(pieceSizes.x(), 0); //mid middle + mVertices[5 * 6].pos = mVertices[4 * 6].pos + Eigen::Vector2f(borderWidth, 0); //mid right + + mVertices[6 * 6].pos = mVertices[3 * 6].pos + Eigen::Vector2f(0, borderHeight); //bot left + mVertices[7 * 6].pos = mVertices[6 * 6].pos + Eigen::Vector2f(pieceSizes.x(), 0); //bot middle + mVertices[8 * 6].pos = mVertices[7 * 6].pos + Eigen::Vector2f(borderWidth, 0); //bot right + + int v = 0; + for(int slice = 0; slice < 9; slice++) + { + Eigen::Vector2f size; + + //corners + if(slice == 0 || slice == 2 || slice == 6 || slice == 8) + size = pieceSizes; + + //vertical borders + if(slice == 1 || slice == 7) + size << borderWidth, pieceSizes.y(); + + //horizontal borders + if(slice == 3 || slice == 5) + size << pieceSizes.x(), borderHeight; + + //center + if(slice == 4) + size << borderWidth, borderHeight; + + //no resizing will be necessary + //mVertices[v + 0] is already correct + mVertices[v + 1].pos = mVertices[v + 0].pos + size; + mVertices[v + 2].pos << mVertices[v + 0].pos.x(), mVertices[v + 1].pos.y(); + + mVertices[v + 3].pos << mVertices[v + 1].pos.x(), mVertices[v + 0].pos.y(); + mVertices[v + 4].pos = mVertices[v + 1].pos; + mVertices[v + 5].pos = mVertices[v + 0].pos; + + //texture coordinates + //the y = (1 - y) is to deal with texture coordinates having a bottom left corner origin vs. verticies having a top left origin + mVertices[v + 0].tex << pieceCoords[slice].x() / ts.x(), 1 - (pieceCoords[slice].y() / ts.y()); + mVertices[v + 1].tex << (pieceCoords[slice].x() + pieceSizes.x()) / ts.x(), 1 - ((pieceCoords[slice].y() + pieceSizes.y()) / ts.y()); + mVertices[v + 2].tex << mVertices[v + 0].tex.x(), mVertices[v + 1].tex.y(); + + mVertices[v + 3].tex << mVertices[v + 1].tex.x(), mVertices[v + 0].tex.y(); + mVertices[v + 4].tex = mVertices[v + 1].tex; + mVertices[v + 5].tex = mVertices[v + 0].tex; + + v += 6; + } + + // round vertices + for(int i = 0; i < 6*9; i++) + { + mVertices[i].pos = roundVector(mVertices[i].pos); + } +} + +void NinePatchComponent::render(const Eigen::Affine3f& parentTrans) +{ + Eigen::Affine3f trans = roundMatrix(parentTrans * getTransform()); + + if(mTexture && mVertices != NULL) + { + Renderer::setMatrix(trans); + + mTexture->bind(); + + glEnable(GL_TEXTURE_2D); + glEnable(GL_BLEND); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + + glEnableClientState(GL_VERTEX_ARRAY); + glEnableClientState(GL_TEXTURE_COORD_ARRAY); + glEnableClientState(GL_COLOR_ARRAY); + + glVertexPointer(2, GL_FLOAT, sizeof(Vertex), &mVertices[0].pos); + glTexCoordPointer(2, GL_FLOAT, sizeof(Vertex), &mVertices[0].tex); + glColorPointer(4, GL_UNSIGNED_BYTE, 0, mColors); + + glDrawArrays(GL_TRIANGLES, 0, 6 * 9); + + glDisableClientState(GL_VERTEX_ARRAY); + glDisableClientState(GL_TEXTURE_COORD_ARRAY); + glDisableClientState(GL_COLOR_ARRAY); + + glDisable(GL_TEXTURE_2D); + glDisable(GL_BLEND); + } + + renderChildren(trans); +} + +void NinePatchComponent::onSizeChanged() +{ + buildVertices(); +} + +Eigen::Vector2f NinePatchComponent::getCornerSize() const +{ + return Eigen::Vector2f(16, 16); +} + +void NinePatchComponent::fitTo(Eigen::Vector2f size, Eigen::Vector3f position, Eigen::Vector2f padding) +{ + size += padding; + position[0] -= padding.x() / 2; + position[1] -= padding.y() / 2; + + setSize(size + Eigen::Vector2f(getCornerSize().x() * 2, getCornerSize().y() * 2)); + setPosition(-getCornerSize().x() + position.x(), -getCornerSize().y() + position.y()); +} + +void NinePatchComponent::setImagePath(const std::string& path) +{ + mPath = path; + buildVertices(); +} + +void NinePatchComponent::setEdgeColor(unsigned int edgeColor) +{ + mEdgeColor = edgeColor; + updateColors(); +} + +void NinePatchComponent::setCenterColor(unsigned int centerColor) +{ + mCenterColor = centerColor; + updateColors(); +} + +void NinePatchComponent::applyTheme(const std::shared_ptr& theme, const std::string& view, const std::string& element, unsigned int properties) +{ + GuiComponent::applyTheme(theme, view, element, properties); + + using namespace ThemeFlags; + + const ThemeData::ThemeElement* elem = theme->getElement(view, element, "ninepatch"); + if(!elem) + return; + + if(properties & PATH && elem->has("path")) + setImagePath(elem->get("path")); +} diff --git a/es-core/src/components/NinePatchComponent.h b/es-core/src/components/NinePatchComponent.h new file mode 100644 index 000000000..ca99c859e --- /dev/null +++ b/es-core/src/components/NinePatchComponent.h @@ -0,0 +1,53 @@ +#pragma once + +#include "GuiComponent.h" +#include "resources/TextureResource.h" + +// Display an image in a way so that edges don't get too distorted no matter the final size. Useful for UI elements like backgrounds, buttons, etc. +// This is accomplished by splitting an image into 9 pieces: +// ___________ +// |_1_|_2_|_3_| +// |_4_|_5_|_6_| +// |_7_|_8_|_9_| + +// Corners (1, 3, 7, 9) will not be stretched at all. +// Borders (2, 4, 6, 8) will be stretched along one axis (2 and 8 horizontally, 4 and 6 vertically). +// The center (5) will be stretched. + +class NinePatchComponent : public GuiComponent +{ +public: + NinePatchComponent(Window* window, const std::string& path = "", unsigned int edgeColor = 0xFFFFFFFF, unsigned int centerColor = 0xFFFFFFFF); + + void render(const Eigen::Affine3f& parentTrans) override; + + void onSizeChanged() override; + + void fitTo(Eigen::Vector2f size, Eigen::Vector3f position = Eigen::Vector3f::Zero(), Eigen::Vector2f padding = Eigen::Vector2f::Zero()); + + void setImagePath(const std::string& path); + void setEdgeColor(unsigned int edgeColor); // Apply a color shift to the "edge" parts of the ninepatch. + void setCenterColor(unsigned int centerColor); // Apply a color shift to the "center" part of the ninepatch. + + virtual void applyTheme(const std::shared_ptr& theme, const std::string& view, const std::string& element, unsigned int properties) override; + +private: + Eigen::Vector2f getCornerSize() const; + + void buildVertices(); + void updateColors(); + + struct Vertex + { + Eigen::Vector2f pos; + Eigen::Vector2f tex; + }; + + Vertex* mVertices; + GLubyte* mColors; + + std::string mPath; + unsigned int mEdgeColor; + unsigned int mCenterColor; + std::shared_ptr mTexture; +}; diff --git a/es-core/src/components/OptionListComponent.h b/es-core/src/components/OptionListComponent.h new file mode 100644 index 000000000..40ff34fff --- /dev/null +++ b/es-core/src/components/OptionListComponent.h @@ -0,0 +1,320 @@ +#pragma once + +#include "GuiComponent.h" +#include "resources/Font.h" +#include "Renderer.h" +#include "Window.h" +#include "components/TextComponent.h" +#include "components/ImageComponent.h" +#include "components/MenuComponent.h" +#include +#include "Log.h" + +//Used to display a list of options. +//Can select one or multiple options. + +// if !multiSelect +// * <- curEntry -> + +// always +// * press a -> open full list + +#define CHECKED_PATH ":/checkbox_checked.svg" +#define UNCHECKED_PATH ":/checkbox_unchecked.svg" + +template +class OptionListComponent : public GuiComponent +{ +private: + struct OptionListData + { + std::string name; + T object; + bool selected; + }; + + class OptionListPopup : public GuiComponent + { + private: + MenuComponent mMenu; + OptionListComponent* mParent; + + public: + OptionListPopup(Window* window, OptionListComponent* parent, const std::string& title) : GuiComponent(window), + mMenu(window, title.c_str()), mParent(parent) + { + auto font = Font::get(FONT_SIZE_MEDIUM); + ComponentListRow row; + + // for select all/none + std::vector checkboxes; + + for(auto it = mParent->mEntries.begin(); it != mParent->mEntries.end(); it++) + { + row.elements.clear(); + row.addElement(std::make_shared(mWindow, strToUpper(it->name), font, 0x777777FF), true); + + OptionListData& e = *it; + + if(mParent->mMultiSelect) + { + // add checkbox + auto checkbox = std::make_shared(mWindow); + checkbox->setImage(it->selected ? CHECKED_PATH : UNCHECKED_PATH); + checkbox->setResize(0, font->getLetterHeight()); + row.addElement(checkbox, false); + + // input handler + // update checkbox state & selected value + row.makeAcceptInputHandler([this, &e, checkbox] + { + e.selected = !e.selected; + checkbox->setImage(e.selected ? CHECKED_PATH : UNCHECKED_PATH); + mParent->onSelectedChanged(); + }); + + // for select all/none + checkboxes.push_back(checkbox.get()); + }else{ + // input handler for non-multiselect + // update selected value and close + row.makeAcceptInputHandler([this, &e] + { + mParent->mEntries.at(mParent->getSelectedId()).selected = false; + e.selected = true; + mParent->onSelectedChanged(); + delete this; + }); + } + + // also set cursor to this row if we're not multi-select and this row is selected + mMenu.addRow(row, (!mParent->mMultiSelect && it->selected)); + } + + mMenu.addButton("BACK", "accept", [this] { delete this; }); + + if(mParent->mMultiSelect) + { + mMenu.addButton("SELECT ALL", "select all", [this, checkboxes] { + for(unsigned int i = 0; i < mParent->mEntries.size(); i++) + { + mParent->mEntries.at(i).selected = true; + checkboxes.at(i)->setImage(CHECKED_PATH); + } + mParent->onSelectedChanged(); + }); + + mMenu.addButton("SELECT NONE", "select none", [this, checkboxes] { + for(unsigned int i = 0; i < mParent->mEntries.size(); i++) + { + mParent->mEntries.at(i).selected = false; + checkboxes.at(i)->setImage(UNCHECKED_PATH); + } + mParent->onSelectedChanged(); + }); + } + + mMenu.setPosition((Renderer::getScreenWidth() - mMenu.getSize().x()) / 2, Renderer::getScreenHeight() * 0.15f); + addChild(&mMenu); + } + + bool input(InputConfig* config, Input input) override + { + if(config->isMappedTo("b", input) && input.value != 0) + { + delete this; + return true; + } + + return GuiComponent::input(config, input); + } + + std::vector getHelpPrompts() override + { + auto prompts = mMenu.getHelpPrompts(); + prompts.push_back(HelpPrompt("b", "back")); + return prompts; + } + }; + +public: + OptionListComponent(Window* window, const std::string& name, bool multiSelect = false) : GuiComponent(window), mMultiSelect(multiSelect), mName(name), + mText(window), mLeftArrow(window), mRightArrow(window) + { + auto font = Font::get(FONT_SIZE_MEDIUM, FONT_PATH_LIGHT); + mText.setFont(font); + mText.setColor(0x777777FF); + mText.setAlignment(ALIGN_CENTER); + addChild(&mText); + + if(mMultiSelect) + { + mRightArrow.setImage(":/arrow.svg"); + addChild(&mRightArrow); + }else{ + mLeftArrow.setImage(":/option_arrow.svg"); + mLeftArrow.setFlipX(true); + addChild(&mLeftArrow); + + mRightArrow.setImage(":/option_arrow.svg"); + addChild(&mRightArrow); + } + + setSize(mLeftArrow.getSize().x() + mRightArrow.getSize().x(), font->getHeight()); + } + + // handles positioning/resizing of text and arrows + void onSizeChanged() override + { + mLeftArrow.setResize(0, mText.getFont()->getLetterHeight()); + mRightArrow.setResize(0, mText.getFont()->getLetterHeight()); + + if(mSize.x() < (mLeftArrow.getSize().x() + mRightArrow.getSize().x())) + LOG(LogWarning) << "OptionListComponent too narrow!"; + + mText.setSize(mSize.x() - mLeftArrow.getSize().x() - mRightArrow.getSize().x(), mText.getFont()->getHeight()); + + // position + mLeftArrow.setPosition(0, (mSize.y() - mLeftArrow.getSize().y()) / 2); + mText.setPosition(mLeftArrow.getPosition().x() + mLeftArrow.getSize().x(), (mSize.y() - mText.getSize().y()) / 2); + mRightArrow.setPosition(mText.getPosition().x() + mText.getSize().x(), (mSize.y() - mRightArrow.getSize().y()) / 2); + } + + bool input(InputConfig* config, Input input) override + { + if(input.value != 0) + { + if(config->isMappedTo("a", input)) + { + open(); + return true; + } + if(!mMultiSelect) + { + if(config->isMappedTo("left", input)) + { + // move selection to previous + unsigned int i = getSelectedId(); + int next = (int)i - 1; + if(next < 0) + next += mEntries.size(); + + mEntries.at(i).selected = false; + mEntries.at(next).selected = true; + onSelectedChanged(); + return true; + + }else if(config->isMappedTo("right", input)) + { + // move selection to next + unsigned int i = getSelectedId(); + int next = (i + 1) % mEntries.size(); + mEntries.at(i).selected = false; + mEntries.at(next).selected = true; + onSelectedChanged(); + return true; + + } + } + } + return GuiComponent::input(config, input); + } + + std::vector getSelectedObjects() + { + std::vector ret; + for(auto it = mEntries.begin(); it != mEntries.end(); it++) + { + if(it->selected) + ret.push_back(it->object); + } + + return ret; + } + + T getSelected() + { + assert(mMultiSelect == false); + auto selected = getSelectedObjects(); + assert(selected.size() == 1); + return selected.at(0); + } + + void add(const std::string& name, const T& obj, bool selected) + { + OptionListData e; + e.name = name; + e.object = obj; + e.selected = selected; + + mEntries.push_back(e); + onSelectedChanged(); + } + +private: + unsigned int getSelectedId() + { + assert(mMultiSelect == false); + for(unsigned int i = 0; i < mEntries.size(); i++) + { + if(mEntries.at(i).selected) + return i; + } + + LOG(LogWarning) << "OptionListComponent::getSelectedId() - no selected element found, defaulting to 0"; + return 0; + } + + void open() + { + mWindow->pushGui(new OptionListPopup(mWindow, this, mName)); + } + + void onSelectedChanged() + { + if(mMultiSelect) + { + // display # selected + std::stringstream ss; + ss << getSelectedObjects().size() << " SELECTED"; + mText.setText(ss.str()); + mText.setSize(0, mText.getSize().y()); + setSize(mText.getSize().x() + mRightArrow.getSize().x() + 24, mText.getSize().y()); + if(mParent) // hack since theres no "on child size changed" callback atm... + mParent->onSizeChanged(); + }else{ + // display currently selected + l/r cursors + for(auto it = mEntries.begin(); it != mEntries.end(); it++) + { + if(it->selected) + { + mText.setText(strToUpper(it->name)); + mText.setSize(0, mText.getSize().y()); + setSize(mText.getSize().x() + mLeftArrow.getSize().x() + mRightArrow.getSize().x() + 24, mText.getSize().y()); + if(mParent) // hack since theres no "on child size changed" callback atm... + mParent->onSizeChanged(); + break; + } + } + } + } + + std::vector getHelpPrompts() override + { + std::vector prompts; + if(!mMultiSelect) + prompts.push_back(HelpPrompt("left/right", "change")); + + prompts.push_back(HelpPrompt("a", "select")); + return prompts; + } + + bool mMultiSelect; + + std::string mName; + TextComponent mText; + ImageComponent mLeftArrow; + ImageComponent mRightArrow; + + std::vector mEntries; +}; diff --git a/es-core/src/components/ScrollableContainer.cpp b/es-core/src/components/ScrollableContainer.cpp new file mode 100644 index 000000000..f709c062f --- /dev/null +++ b/es-core/src/components/ScrollableContainer.cpp @@ -0,0 +1,129 @@ +#include "components/ScrollableContainer.h" +#include "Renderer.h" +#include "Log.h" + +#define AUTO_SCROLL_RESET_DELAY 10000 // ms to reset to top after we reach the bottom +#define AUTO_SCROLL_DELAY 8000 // ms to wait before we start to scroll +#define AUTO_SCROLL_SPEED 50 // ms between scrolls + +ScrollableContainer::ScrollableContainer(Window* window) : GuiComponent(window), + mAutoScrollDelay(0), mAutoScrollSpeed(0), mAutoScrollAccumulator(0), mScrollPos(0, 0), mScrollDir(0, 0), mAutoScrollResetAccumulator(0) +{ +} + +void ScrollableContainer::render(const Eigen::Affine3f& parentTrans) +{ + Eigen::Affine3f trans = parentTrans * getTransform(); + + Eigen::Vector2i clipPos((int)trans.translation().x(), (int)trans.translation().y()); + + Eigen::Vector3f dimScaled = trans * Eigen::Vector3f(mSize.x(), mSize.y(), 0); + Eigen::Vector2i clipDim((int)dimScaled.x() - trans.translation().x(), (int)dimScaled.y() - trans.translation().y()); + + Renderer::pushClipRect(clipPos, clipDim); + + trans.translate(-Eigen::Vector3f(mScrollPos.x(), mScrollPos.y(), 0)); + Renderer::setMatrix(trans); + + GuiComponent::renderChildren(trans); + + Renderer::popClipRect(); +} + +void ScrollableContainer::setAutoScroll(bool autoScroll) +{ + if(autoScroll) + { + mScrollDir << 0, 1; + mAutoScrollDelay = AUTO_SCROLL_DELAY; + mAutoScrollSpeed = AUTO_SCROLL_SPEED; + reset(); + }else{ + mScrollDir << 0, 0; + mAutoScrollDelay = 0; + mAutoScrollSpeed = 0; + mAutoScrollAccumulator = 0; + } +} + +Eigen::Vector2f ScrollableContainer::getScrollPos() const +{ + return mScrollPos; +} + +void ScrollableContainer::setScrollPos(const Eigen::Vector2f& pos) +{ + mScrollPos = pos; +} + +void ScrollableContainer::update(int deltaTime) +{ + if(mAutoScrollSpeed != 0) + { + mAutoScrollAccumulator += deltaTime; + + //scale speed by our width! more text per line = slower scrolling + const float widthMod = (680.0f / getSize().x()); + while(mAutoScrollAccumulator >= mAutoScrollSpeed) + { + mScrollPos += mScrollDir; + mAutoScrollAccumulator -= mAutoScrollSpeed; + } + } + + //clip scrolling within bounds + if(mScrollPos.x() < 0) + mScrollPos[0] = 0; + if(mScrollPos.y() < 0) + mScrollPos[1] = 0; + + const Eigen::Vector2f contentSize = getContentSize(); + if(mScrollPos.x() + getSize().x() > contentSize.x()) + { + mScrollPos[0] = contentSize.x() - getSize().x(); + mAtEnd = true; + } + + if(contentSize.y() < getSize().y()) + { + mScrollPos[1] = 0; + }else if(mScrollPos.y() + getSize().y() > contentSize.y()) + { + mScrollPos[1] = contentSize.y() - getSize().y(); + mAtEnd = true; + } + + if(mAtEnd) + { + mAutoScrollResetAccumulator += deltaTime; + if(mAutoScrollResetAccumulator >= AUTO_SCROLL_RESET_DELAY) + reset(); + } + + GuiComponent::update(deltaTime); +} + +//this should probably return a box to allow for when controls don't start at 0,0 +Eigen::Vector2f ScrollableContainer::getContentSize() +{ + Eigen::Vector2f max(0, 0); + for(unsigned int i = 0; i < mChildren.size(); i++) + { + Eigen::Vector2f pos(mChildren.at(i)->getPosition()[0], mChildren.at(i)->getPosition()[1]); + Eigen::Vector2f bottomRight = mChildren.at(i)->getSize() + pos; + if(bottomRight.x() > max.x()) + max.x() = bottomRight.x(); + if(bottomRight.y() > max.y()) + max.y() = bottomRight.y(); + } + + return max; +} + +void ScrollableContainer::reset() +{ + mScrollPos << 0, 0; + mAutoScrollResetAccumulator = 0; + mAutoScrollAccumulator = -mAutoScrollDelay + mAutoScrollSpeed; + mAtEnd = false; +} diff --git a/es-core/src/components/ScrollableContainer.h b/es-core/src/components/ScrollableContainer.h new file mode 100644 index 000000000..79ae94359 --- /dev/null +++ b/es-core/src/components/ScrollableContainer.h @@ -0,0 +1,28 @@ +#pragma once + +#include "GuiComponent.h" + +class ScrollableContainer : public GuiComponent +{ +public: + ScrollableContainer(Window* window); + + Eigen::Vector2f getScrollPos() const; + void setScrollPos(const Eigen::Vector2f& pos); + void setAutoScroll(bool autoScroll); + void reset(); + + void update(int deltaTime) override; + void render(const Eigen::Affine3f& parentTrans) override; + +private: + Eigen::Vector2f getContentSize(); + + Eigen::Vector2f mScrollPos; + Eigen::Vector2f mScrollDir; + int mAutoScrollDelay; // ms to wait before starting to autoscroll + int mAutoScrollSpeed; // ms to wait before scrolling down by mScrollDir + int mAutoScrollAccumulator; + bool mAtEnd; + int mAutoScrollResetAccumulator; +}; diff --git a/es-core/src/components/SliderComponent.cpp b/es-core/src/components/SliderComponent.cpp new file mode 100644 index 000000000..71a7fe8fa --- /dev/null +++ b/es-core/src/components/SliderComponent.cpp @@ -0,0 +1,145 @@ +#include "components/SliderComponent.h" +#include +#include "Renderer.h" +#include "resources/Font.h" +#include "Log.h" +#include "Util.h" + +#define MOVE_REPEAT_DELAY 500 +#define MOVE_REPEAT_RATE 40 + +SliderComponent::SliderComponent(Window* window, float min, float max, float increment, const std::string& suffix) : GuiComponent(window), + mMin(min), mMax(max), mSingleIncrement(increment), mMoveRate(0), mKnob(window), mSuffix(suffix) +{ + assert((min - max) != 0); + + // some sane default value + mValue = (max + min) / 2; + + mKnob.setOrigin(0.5f, 0.5f); + mKnob.setImage(":/slider_knob.svg"); + + setSize(Renderer::getScreenWidth() * 0.15f, Font::get(FONT_SIZE_MEDIUM)->getLetterHeight()); +} + +bool SliderComponent::input(InputConfig* config, Input input) +{ + if(config->isMappedTo("left", input)) + { + if(input.value) + setValue(mValue - mSingleIncrement); + + mMoveRate = input.value ? -mSingleIncrement : 0; + mMoveAccumulator = -MOVE_REPEAT_DELAY; + return true; + } + if(config->isMappedTo("right", input)) + { + if(input.value) + setValue(mValue + mSingleIncrement); + + mMoveRate = input.value ? mSingleIncrement : 0; + mMoveAccumulator = -MOVE_REPEAT_DELAY; + return true; + } + + return GuiComponent::input(config, input); +} + +void SliderComponent::update(int deltaTime) +{ + if(mMoveRate != 0) + { + mMoveAccumulator += deltaTime; + while(mMoveAccumulator >= MOVE_REPEAT_RATE) + { + setValue(mValue + mMoveRate); + mMoveAccumulator -= MOVE_REPEAT_RATE; + } + } + + GuiComponent::update(deltaTime); +} + +void SliderComponent::render(const Eigen::Affine3f& parentTrans) +{ + Eigen::Affine3f trans = roundMatrix(parentTrans * getTransform()); + Renderer::setMatrix(trans); + + // render suffix + if(mValueCache) + mFont->renderTextCache(mValueCache.get()); + + float width = mSize.x() - mKnob.getSize().x() - (mValueCache ? mValueCache->metrics.size.x() + 4 : 0); + + //render line + const float lineWidth = 2; + Renderer::drawRect(mKnob.getSize().x() / 2, mSize.y() / 2 - lineWidth / 2, width, lineWidth, 0x777777FF); + + //render knob + mKnob.render(trans); + + GuiComponent::renderChildren(trans); +} + +void SliderComponent::setValue(float value) +{ + mValue = value; + if(mValue < mMin) + mValue = mMin; + else if(mValue > mMax) + mValue = mMax; + + onValueChanged(); +} + +float SliderComponent::getValue() +{ + return mValue; +} + +void SliderComponent::onSizeChanged() +{ + if(!mSuffix.empty()) + mFont = Font::get((int)(mSize.y()), FONT_PATH_LIGHT); + + onValueChanged(); +} + +void SliderComponent::onValueChanged() +{ + // update suffix textcache + if(mFont) + { + std::stringstream ss; + ss << std::fixed; + ss.precision(0); + ss << mValue; + ss << mSuffix; + const std::string val = ss.str(); + + ss.str(""); + ss.clear(); + ss << std::fixed; + ss.precision(0); + ss << mMax; + ss << mSuffix; + const std::string max = ss.str(); + + Eigen::Vector2f textSize = mFont->sizeText(max); + mValueCache = std::shared_ptr(mFont->buildTextCache(val, mSize.x() - textSize.x(), (mSize.y() - textSize.y()) / 2, 0x777777FF)); + mValueCache->metrics.size[0] = textSize.x(); // fudge the width + } + + // update knob position/size + mKnob.setResize(0, mSize.y() * 0.7f); + float lineLength = mSize.x() - mKnob.getSize().x() - (mValueCache ? mValueCache->metrics.size.x() + 4 : 0); + mKnob.setPosition(((mValue + mMin) / mMax) * lineLength + mKnob.getSize().x()/2, mSize.y() / 2); +} + +std::vector SliderComponent::getHelpPrompts() +{ + std::vector prompts; + prompts.push_back(HelpPrompt("left/right", "change")); + return prompts; +} diff --git a/src/components/SliderComponent.h b/es-core/src/components/SliderComponent.h similarity index 50% rename from src/components/SliderComponent.h rename to es-core/src/components/SliderComponent.h index 2cfb55e42..900178c7e 100644 --- a/src/components/SliderComponent.h +++ b/es-core/src/components/SliderComponent.h @@ -1,12 +1,17 @@ #pragma once -#include "../GuiComponent.h" +#include "GuiComponent.h" +#include "components/ImageComponent.h" +class TextCache; +class Font; + +// Used to display/edit a value between some min and max values. class SliderComponent : public GuiComponent { public: - //Minimum value (far left of the slider), maximum value (far right of the slider), increment size (how much just pressing L/R moves by). - SliderComponent(Window* window, float min, float max, float increment); + //Minimum value (far left of the slider), maximum value (far right of the slider), increment size (how much just pressing L/R moves by), unit to display (optional). + SliderComponent(Window* window, float min, float max, float increment, const std::string& suffix = ""); void setValue(float val); float getValue(); @@ -15,12 +20,22 @@ public: void update(int deltaTime) override; void render(const Eigen::Affine3f& parentTrans) override; + void onSizeChanged() override; + + virtual std::vector getHelpPrompts() override; + private: + void onValueChanged(); + float mMin, mMax; float mValue; - float mIncrement; - float mMoveScale; - int mRepeatWaitTimer; - + float mSingleIncrement; float mMoveRate; + int mMoveAccumulator; + + ImageComponent mKnob; + + std::string mSuffix; + std::shared_ptr mFont; + std::shared_ptr mValueCache; }; diff --git a/es-core/src/components/SwitchComponent.cpp b/es-core/src/components/SwitchComponent.cpp new file mode 100644 index 000000000..07b425b25 --- /dev/null +++ b/es-core/src/components/SwitchComponent.cpp @@ -0,0 +1,60 @@ +#include "SwitchComponent.h" +#include "Renderer.h" +#include "resources/Font.h" +#include "Window.h" + +SwitchComponent::SwitchComponent(Window* window, bool state) : GuiComponent(window), mImage(window), mState(state) +{ + mImage.setImage(":/off.svg"); + mImage.setResize(0, Font::get(FONT_SIZE_MEDIUM)->getLetterHeight()); + mSize = mImage.getSize(); +} + +void SwitchComponent::onSizeChanged() +{ + mImage.setSize(mSize); +} + +bool SwitchComponent::input(InputConfig* config, Input input) +{ + if(config->isMappedTo("a", input) && input.value) + { + mState = !mState; + onStateChanged(); + return true; + } + + return false; +} + +void SwitchComponent::render(const Eigen::Affine3f& parentTrans) +{ + Eigen::Affine3f trans = parentTrans * getTransform(); + + mImage.render(trans); + + renderChildren(trans); +} + +bool SwitchComponent::getState() const +{ + return mState; +} + +void SwitchComponent::setState(bool state) +{ + mState = state; + onStateChanged(); +} + +void SwitchComponent::onStateChanged() +{ + mImage.setImage(mState ? ":/on.svg" : ":/off.svg"); +} + +std::vector SwitchComponent::getHelpPrompts() +{ + std::vector prompts; + prompts.push_back(HelpPrompt("a", "change")); + return prompts; +} diff --git a/es-core/src/components/SwitchComponent.h b/es-core/src/components/SwitchComponent.h new file mode 100644 index 000000000..e173762a7 --- /dev/null +++ b/es-core/src/components/SwitchComponent.h @@ -0,0 +1,27 @@ +#pragma once + +#include "GuiComponent.h" +#include "components/ImageComponent.h" + +// A very simple "on/off" switch. +// Should hopefully be switched to use images instead of text in the future. +class SwitchComponent : public GuiComponent +{ +public: + SwitchComponent(Window* window, bool state = false); + + bool input(InputConfig* config, Input input) override; + void render(const Eigen::Affine3f& parentTrans) override; + void onSizeChanged() override; + + bool getState() const; + void setState(bool state); + + virtual std::vector getHelpPrompts() override; + +private: + void onStateChanged(); + + ImageComponent mImage; + bool mState; +}; diff --git a/es-core/src/components/TextComponent.cpp b/es-core/src/components/TextComponent.cpp new file mode 100644 index 000000000..06948df60 --- /dev/null +++ b/es-core/src/components/TextComponent.cpp @@ -0,0 +1,244 @@ +#include "components/TextComponent.h" +#include "Renderer.h" +#include "Log.h" +#include "Window.h" +#include "ThemeData.h" +#include "Util.h" +#include "Settings.h" + +TextComponent::TextComponent(Window* window) : GuiComponent(window), + mFont(Font::get(FONT_SIZE_MEDIUM)), mUppercase(false), mColor(0x000000FF), mAutoCalcExtent(true, true), mAlignment(ALIGN_LEFT), mLineSpacing(1.5f) +{ +} + +TextComponent::TextComponent(Window* window, const std::string& text, const std::shared_ptr& font, unsigned int color, Alignment align, + Eigen::Vector3f pos, Eigen::Vector2f size) : GuiComponent(window), + mFont(NULL), mUppercase(false), mColor(0x000000FF), mAutoCalcExtent(true, true), mAlignment(align), mLineSpacing(1.5f) +{ + setFont(font); + setColor(color); + setText(text); + setPosition(pos); + setSize(size); +} + +void TextComponent::onSizeChanged() +{ + mAutoCalcExtent << (getSize().x() == 0), (getSize().y() == 0); + onTextChanged(); +} + +void TextComponent::setFont(const std::shared_ptr& font) +{ + mFont = font; + onTextChanged(); +} + +void TextComponent::setColor(unsigned int color) +{ + mColor = color; + + unsigned char opacity = mColor & 0x000000FF; + GuiComponent::setOpacity(opacity); + + onColorChanged(); +} + +void TextComponent::setOpacity(unsigned char opacity) +{ + mColor = (mColor & 0xFFFFFF00) | opacity; + onColorChanged(); + + GuiComponent::setOpacity(opacity); +} + +unsigned char TextComponent::getOpacity() const +{ + return mColor & 0x000000FF; +} + +void TextComponent::setText(const std::string& text) +{ + mText = text; + onTextChanged(); +} + +void TextComponent::setUppercase(bool uppercase) +{ + mUppercase = uppercase; + onTextChanged(); +} + +void TextComponent::render(const Eigen::Affine3f& parentTrans) +{ + Eigen::Affine3f trans = parentTrans * getTransform(); + + /*Eigen::Vector3f dim(mSize.x(), mSize.y(), 0); + dim = trans * dim - trans.translation(); + Renderer::pushClipRect(Eigen::Vector2i((int)trans.translation().x(), (int)trans.translation().y()), + Eigen::Vector2i((int)(dim.x() + 0.5f), (int)(dim.y() + 0.5f))); + */ + + if(mTextCache) + { + const Eigen::Vector2f& textSize = mTextCache->metrics.size; + Eigen::Vector3f off(0, (getSize().y() - textSize.y()) / 2.0f, 0); + + if(Settings::getInstance()->getBool("DebugText")) + { + // draw the "textbox" area, what we are aligned within + Renderer::setMatrix(trans); + Renderer::drawRect(0.f, 0.f, mSize.x(), mSize.y(), 0xFF000033); + } + + trans.translate(off); + trans = roundMatrix(trans); + Renderer::setMatrix(trans); + + // draw the text area, where the text actually is going + if(Settings::getInstance()->getBool("DebugText")) + { + switch(mAlignment) + { + case ALIGN_LEFT: + Renderer::drawRect(0.0f, 0.0f, mTextCache->metrics.size.x(), mTextCache->metrics.size.y(), 0x00000033); + break; + case ALIGN_CENTER: + Renderer::drawRect((mSize.x() - mTextCache->metrics.size.x()) / 2.0f, 0.0f, mTextCache->metrics.size.x(), mTextCache->metrics.size.y(), 0x00000033); + break; + case ALIGN_RIGHT: + Renderer::drawRect(mSize.x() - mTextCache->metrics.size.x(), 0.0f, mTextCache->metrics.size.x(), mTextCache->metrics.size.y(), 0x00000033); + break; + } + } + + mFont->renderTextCache(mTextCache.get()); + } + + //Renderer::popClipRect(); +} + +void TextComponent::calculateExtent() +{ + if(mAutoCalcExtent.x()) + { + mSize = mFont->sizeText(mUppercase ? strToUpper(mText) : mText, mLineSpacing); + }else{ + if(mAutoCalcExtent.y()) + { + mSize[1] = mFont->sizeWrappedText(mUppercase ? strToUpper(mText) : mText, getSize().x(), mLineSpacing).y(); + } + } +} + +void TextComponent::onTextChanged() +{ + calculateExtent(); + + if(!mFont || mText.empty()) + { + mTextCache.reset(); + return; + } + + std::string text = mUppercase ? strToUpper(mText) : mText; + + std::shared_ptr f = mFont; + const bool isMultiline = (mSize.y() == 0 || mSize.y() > f->getHeight()*1.2f); + + bool addAbbrev = false; + if(!isMultiline) + { + size_t newline = text.find('\n'); + text = text.substr(0, newline); // single line of text - stop at the first newline since it'll mess everything up + addAbbrev = newline != std::string::npos; + } + + Eigen::Vector2f size = f->sizeText(text); + if(!isMultiline && mSize.x() && text.size() && (size.x() > mSize.x() || addAbbrev)) + { + // abbreviate text + const std::string abbrev = "..."; + Eigen::Vector2f abbrevSize = f->sizeText(abbrev); + + while(text.size() && size.x() + abbrevSize.x() > mSize.x()) + { + text.erase(text.size() - 1, 1); + size = f->sizeText(text); + } + + text.append(abbrev); + + mTextCache = std::shared_ptr(f->buildTextCache(text, Eigen::Vector2f(0, 0), (mColor >> 8 << 8) | mOpacity, mSize.x(), mAlignment, mLineSpacing)); + }else{ + mTextCache = std::shared_ptr(f->buildTextCache(f->wrapText(text, mSize.x()), Eigen::Vector2f(0, 0), (mColor >> 8 << 8) | mOpacity, mSize.x(), mAlignment, mLineSpacing)); + } +} + +void TextComponent::onColorChanged() +{ + if(mTextCache) + { + mTextCache->setColor(mColor); + } +} + +void TextComponent::setAlignment(Alignment align) +{ + mAlignment = align; + onTextChanged(); +} + +void TextComponent::setLineSpacing(float spacing) +{ + mLineSpacing = spacing; + onTextChanged(); +} + +void TextComponent::setValue(const std::string& value) +{ + setText(value); +} + +std::string TextComponent::getValue() const +{ + return mText; +} + +void TextComponent::applyTheme(const std::shared_ptr& theme, const std::string& view, const std::string& element, unsigned int properties) +{ + GuiComponent::applyTheme(theme, view, element, properties); + + using namespace ThemeFlags; + + const ThemeData::ThemeElement* elem = theme->getElement(view, element, "text"); + if(!elem) + return; + + if(properties & COLOR && elem->has("color")) + setColor(elem->get("color")); + + if(properties & ALIGNMENT && elem->has("alignment")) + { + std::string str = elem->get("alignment"); + if(str == "left") + setAlignment(ALIGN_LEFT); + else if(str == "center") + setAlignment(ALIGN_CENTER); + else if(str == "right") + setAlignment(ALIGN_RIGHT); + else + LOG(LogError) << "Unknown text alignment string: " << str; + } + + if(properties & TEXT && elem->has("text")) + setText(elem->get("text")); + + if(properties & FORCE_UPPERCASE && elem->has("forceUppercase")) + setUppercase(elem->get("forceUppercase")); + + if(properties & LINE_SPACING && elem->has("lineSpacing")) + setLineSpacing(elem->get("lineSpacing")); + + setFont(Font::getFromTheme(elem, properties, mFont)); +} diff --git a/es-core/src/components/TextComponent.h b/es-core/src/components/TextComponent.h new file mode 100644 index 000000000..4a4a33fcd --- /dev/null +++ b/es-core/src/components/TextComponent.h @@ -0,0 +1,57 @@ +#ifndef _TEXTCOMPONENT_H_ +#define _TEXTCOMPONENT_H_ + +#include "GuiComponent.h" +#include "resources/Font.h" + +class ThemeData; + +// Used to display text. +// TextComponent::setSize(x, y) works a little differently than most components: +// * (0, 0) - will automatically calculate a size that fits the text on one line (expand horizontally) +// * (x != 0, 0) - wrap text so that it does not reach beyond x. Will automatically calculate a vertical size (expand vertically). +// * (x != 0, y <= fontHeight) - will truncate text so it fits within this box. +class TextComponent : public GuiComponent +{ +public: + TextComponent(Window* window); + TextComponent(Window* window, const std::string& text, const std::shared_ptr& font, unsigned int color = 0x000000FF, Alignment align = ALIGN_LEFT, + Eigen::Vector3f pos = Eigen::Vector3f::Zero(), Eigen::Vector2f size = Eigen::Vector2f::Zero()); + + void setFont(const std::shared_ptr& font); + void setUppercase(bool uppercase); + void onSizeChanged() override; + void setText(const std::string& text); + void setColor(unsigned int color); + void setAlignment(Alignment align); + void setLineSpacing(float spacing); + + void render(const Eigen::Affine3f& parentTrans) override; + + std::string getValue() const override; + void setValue(const std::string& value) override; + + unsigned char getOpacity() const override; + void setOpacity(unsigned char opacity) override; + + inline std::shared_ptr getFont() const { return mFont; } + + virtual void applyTheme(const std::shared_ptr& theme, const std::string& view, const std::string& element, unsigned int properties) override; + +private: + void calculateExtent(); + + void onTextChanged(); + void onColorChanged(); + + unsigned int mColor; + std::shared_ptr mFont; + bool mUppercase; + Eigen::Matrix mAutoCalcExtent; + std::string mText; + std::shared_ptr mTextCache; + Alignment mAlignment; + float mLineSpacing; +}; + +#endif diff --git a/es-core/src/components/TextEditComponent.cpp b/es-core/src/components/TextEditComponent.cpp new file mode 100644 index 000000000..b5ceada83 --- /dev/null +++ b/es-core/src/components/TextEditComponent.cpp @@ -0,0 +1,292 @@ +#include "components/TextEditComponent.h" +#include "Log.h" +#include "resources/Font.h" +#include "Window.h" +#include "Renderer.h" +#include "Util.h" + +#define TEXT_PADDING_HORIZ 10 +#define TEXT_PADDING_VERT 2 + +#define CURSOR_REPEAT_START_DELAY 500 +#define CURSOR_REPEAT_SPEED 28 // lower is faster + +TextEditComponent::TextEditComponent(Window* window) : GuiComponent(window), + mBox(window, ":/textinput_ninepatch.png"), mFocused(false), + mScrollOffset(0.0f, 0.0f), mCursor(0), mEditing(false), mFont(Font::get(FONT_SIZE_MEDIUM, FONT_PATH_LIGHT)) +{ + addChild(&mBox); + + onFocusLost(); + + setSize(256, mFont->getHeight() + TEXT_PADDING_VERT); +} + +void TextEditComponent::onFocusGained() +{ + mFocused = true; + mBox.setImagePath(":/textinput_ninepatch_active.png"); +} + +void TextEditComponent::onFocusLost() +{ + mFocused = false; + mBox.setImagePath(":/textinput_ninepatch.png"); +} + +void TextEditComponent::onSizeChanged() +{ + mBox.fitTo(mSize, Eigen::Vector3f::Zero(), Eigen::Vector2f(-34, -32 - TEXT_PADDING_VERT)); + onTextChanged(); // wrap point probably changed +} + +void TextEditComponent::setValue(const std::string& val) +{ + mText = val; + onTextChanged(); +} + +std::string TextEditComponent::getValue() const +{ + return mText; +} + +void TextEditComponent::textInput(const char* text) +{ + if(mEditing) + { + mCursorRepeatDir = 0; + if(text[0] == '\b') + { + if(mCursor > 0) + { + mText.erase(mText.begin() + mCursor - 1, mText.begin() + mCursor); + mCursor--; + } + }else{ + mText.insert(mCursor, text); + mCursor++; + } + } + + onTextChanged(); + onCursorChanged(); +} + +void TextEditComponent::startEditing() +{ + SDL_StartTextInput(); + mEditing = true; + updateHelpPrompts(); +} + +void TextEditComponent::stopEditing() +{ + SDL_StopTextInput(); + mEditing = false; + updateHelpPrompts(); +} + +bool TextEditComponent::input(InputConfig* config, Input input) +{ + if(input.value == 0) + { + if(config->isMappedTo("left", input) || config->isMappedTo("right", input)) + mCursorRepeatDir = 0; + + return false; + } + + if(config->isMappedTo("a", input) && mFocused && !mEditing) + { + startEditing(); + return true; + } + + if(mEditing) + { + if(config->getDeviceId() == DEVICE_KEYBOARD && input.id == SDLK_RETURN) + { + if(isMultiline()) + { + textInput("\n"); + }else{ + stopEditing(); + } + + return true; + } + + if((config->getDeviceId() == DEVICE_KEYBOARD && input.id == SDLK_ESCAPE) || (config->getDeviceId() != DEVICE_KEYBOARD && config->isMappedTo("b", input))) + { + stopEditing(); + return true; + } + + if(config->isMappedTo("up", input)) + { + // TODO + }else if(config->isMappedTo("down", input)) + { + // TODO + }else if(config->isMappedTo("left", input) || config->isMappedTo("right", input)) + { + mCursorRepeatDir = config->isMappedTo("left", input) ? -1 : 1; + mCursorRepeatTimer = -(CURSOR_REPEAT_START_DELAY - CURSOR_REPEAT_SPEED); + moveCursor(mCursorRepeatDir); + } + + //consume all input when editing text + return true; + } + + return false; +} + +void TextEditComponent::update(int deltaTime) +{ + updateCursorRepeat(deltaTime); + GuiComponent::update(deltaTime); +} + +void TextEditComponent::updateCursorRepeat(int deltaTime) +{ + if(mCursorRepeatDir == 0) + return; + + mCursorRepeatTimer += deltaTime; + while(mCursorRepeatTimer >= CURSOR_REPEAT_SPEED) + { + moveCursor(mCursorRepeatDir); + mCursorRepeatTimer -= CURSOR_REPEAT_SPEED; + } +} + +void TextEditComponent::moveCursor(int amt) +{ + mCursor += amt; + + if(mCursor < 0) + mCursor = 0; + if(mCursor >= (int)mText.length()) + mCursor = mText.length(); + + onCursorChanged(); +} + +void TextEditComponent::setCursor(size_t pos) +{ + if(pos == std::string::npos) + mCursor = mText.length(); + else + mCursor = (int)pos; + + moveCursor(0); +} + +void TextEditComponent::onTextChanged() +{ + std::string wrappedText = (isMultiline() ? mFont->wrapText(mText, getTextAreaSize().x()) : mText); + mTextCache = std::unique_ptr(mFont->buildTextCache(wrappedText, 0, 0, 0x77777700 | getOpacity())); + + if(mCursor > (int)mText.length()) + mCursor = mText.length(); +} + +void TextEditComponent::onCursorChanged() +{ + if(isMultiline()) + { + Eigen::Vector2f textSize = mFont->getWrappedTextCursorOffset(mText, getTextAreaSize().x(), mCursor); + + if(mScrollOffset.y() + getTextAreaSize().y() < textSize.y() + mFont->getHeight()) //need to scroll down? + { + mScrollOffset[1] = textSize.y() - getTextAreaSize().y() + mFont->getHeight(); + }else if(mScrollOffset.y() > textSize.y()) //need to scroll up? + { + mScrollOffset[1] = textSize.y(); + } + }else{ + Eigen::Vector2f cursorPos = mFont->sizeText(mText.substr(0, mCursor)); + + if(mScrollOffset.x() + getTextAreaSize().x() < cursorPos.x()) + { + mScrollOffset[0] = cursorPos.x() - getTextAreaSize().x(); + }else if(mScrollOffset.x() > cursorPos.x()) + { + mScrollOffset[0] = cursorPos.x(); + } + } +} + +void TextEditComponent::render(const Eigen::Affine3f& parentTrans) +{ + Eigen::Affine3f trans = getTransform() * parentTrans; + renderChildren(trans); + + // text + cursor rendering + // offset into our "text area" (padding) + trans.translation() += Eigen::Vector3f(getTextAreaPos().x(), getTextAreaPos().y(), 0); + + Eigen::Vector2i clipPos((int)trans.translation().x(), (int)trans.translation().y()); + Eigen::Vector3f dimScaled = trans * Eigen::Vector3f(getTextAreaSize().x(), getTextAreaSize().y(), 0); // use "text area" size for clipping + Eigen::Vector2i clipDim((int)dimScaled.x() - trans.translation().x(), (int)dimScaled.y() - trans.translation().y()); + Renderer::pushClipRect(clipPos, clipDim); + + trans.translate(Eigen::Vector3f(-mScrollOffset.x(), -mScrollOffset.y(), 0)); + trans = roundMatrix(trans); + + Renderer::setMatrix(trans); + + if(mTextCache) + { + mFont->renderTextCache(mTextCache.get()); + } + + // pop the clip early to allow the cursor to be drawn outside of the "text area" + Renderer::popClipRect(); + + // draw cursor + if(mEditing) + { + Eigen::Vector2f cursorPos; + if(isMultiline()) + { + cursorPos = mFont->getWrappedTextCursorOffset(mText, getTextAreaSize().x(), mCursor); + }else{ + cursorPos = mFont->sizeText(mText.substr(0, mCursor)); + cursorPos[1] = 0; + } + + float cursorHeight = mFont->getHeight() * 0.8f; + Renderer::drawRect(cursorPos.x(), cursorPos.y() + (mFont->getHeight() - cursorHeight) / 2, 2.0f, cursorHeight, 0x000000FF); + } +} + +bool TextEditComponent::isMultiline() +{ + return (getSize().y() > mFont->getHeight() * 1.25f); +} + +Eigen::Vector2f TextEditComponent::getTextAreaPos() const +{ + return Eigen::Vector2f(TEXT_PADDING_HORIZ / 2.0f, TEXT_PADDING_VERT / 2.0f); +} + +Eigen::Vector2f TextEditComponent::getTextAreaSize() const +{ + return Eigen::Vector2f(mSize.x() - TEXT_PADDING_HORIZ, mSize.y() - TEXT_PADDING_VERT); +} + +std::vector TextEditComponent::getHelpPrompts() +{ + std::vector prompts; + if(mEditing) + { + prompts.push_back(HelpPrompt("up/down/left/right", "move cursor")); + prompts.push_back(HelpPrompt("b", "stop editing")); + }else{ + prompts.push_back(HelpPrompt("a", "edit")); + } + return prompts; +} diff --git a/es-core/src/components/TextEditComponent.h b/es-core/src/components/TextEditComponent.h new file mode 100644 index 000000000..56179af1a --- /dev/null +++ b/es-core/src/components/TextEditComponent.h @@ -0,0 +1,63 @@ +#pragma once + +#include "GuiComponent.h" +#include "components/NinePatchComponent.h" + +class Font; +class TextCache; + +// Used to enter text. +class TextEditComponent : public GuiComponent +{ +public: + TextEditComponent(Window* window); + + void textInput(const char* text) override; + bool input(InputConfig* config, Input input) override; + void update(int deltaTime) override; + void render(const Eigen::Affine3f& parentTrans) override; + + void onFocusGained() override; + void onFocusLost() override; + + void onSizeChanged() override; + + void setValue(const std::string& val) override; + std::string getValue() const override; + + inline bool isEditing() const { return mEditing; }; + inline const std::shared_ptr& getFont() const { return mFont; } + + void setCursor(size_t pos); + + virtual std::vector getHelpPrompts() override; + +private: + void startEditing(); + void stopEditing(); + + void onTextChanged(); + void onCursorChanged(); + + void updateCursorRepeat(int deltaTime); + void moveCursor(int amt); + + bool isMultiline(); + Eigen::Vector2f getTextAreaPos() const; + Eigen::Vector2f getTextAreaSize() const; + + std::string mText; + bool mFocused; + bool mEditing; + int mCursor; // cursor position in characters + + int mCursorRepeatTimer; + int mCursorRepeatDir; + + Eigen::Vector2f mScrollOffset; + + NinePatchComponent mBox; + + std::shared_ptr mFont; + std::unique_ptr mTextCache; +}; diff --git a/es-core/src/guis/GuiDetectDevice.cpp b/es-core/src/guis/GuiDetectDevice.cpp new file mode 100644 index 000000000..95deea1ea --- /dev/null +++ b/es-core/src/guis/GuiDetectDevice.cpp @@ -0,0 +1,114 @@ +#include "guis/GuiDetectDevice.h" +#include "Window.h" +#include "Renderer.h" +#include "resources/Font.h" +#include "guis/GuiInputConfig.h" +#include "components/TextComponent.h" +#include +#include +#include +#include "Util.h" + +#define HOLD_TIME 1000 + +using namespace Eigen; + +GuiDetectDevice::GuiDetectDevice(Window* window, bool firstRun, const std::function& doneCallback) : GuiComponent(window), mFirstRun(firstRun), + mBackground(window, ":/frame.png"), mGrid(window, Vector2i(1, 5)) +{ + mHoldingConfig = NULL; + mHoldTime = 0; + mDoneCallback = doneCallback; + + addChild(&mBackground); + addChild(&mGrid); + + // title + mTitle = std::make_shared(mWindow, firstRun ? "WELCOME" : "CONFIGURE INPUT", + Font::get(FONT_SIZE_LARGE), 0x555555FF, ALIGN_CENTER); + mGrid.setEntry(mTitle, Vector2i(0, 0), false, true, Vector2i(1, 1), GridFlags::BORDER_BOTTOM); + + // device info + std::stringstream deviceInfo; + int numDevices = InputManager::getInstance()->getNumJoysticks(); + + if(numDevices > 0) + deviceInfo << numDevices << " GAMEPAD" << (numDevices > 1 ? "S" : "") << " DETECTED"; + else + deviceInfo << "NO GAMEPADS DETECTED"; + mDeviceInfo = std::make_shared(mWindow, deviceInfo.str(), Font::get(FONT_SIZE_SMALL), 0x999999FF, ALIGN_CENTER); + mGrid.setEntry(mDeviceInfo, Vector2i(0, 1), false, true); + + // message + mMsg1 = std::make_shared(mWindow, "HOLD A BUTTON ON YOUR DEVICE TO CONFIGURE IT.", Font::get(FONT_SIZE_SMALL), 0x777777FF, ALIGN_CENTER); + mGrid.setEntry(mMsg1, Vector2i(0, 2), false, true); + + const char* msg2str = firstRun ? "PRESS F4 TO QUIT AT ANY TIME." : "PRESS ESC TO CANCEL."; + mMsg2 = std::make_shared(mWindow, msg2str, Font::get(FONT_SIZE_SMALL), 0x777777FF, ALIGN_CENTER); + mGrid.setEntry(mMsg2, Vector2i(0, 3), false, true); + + // currently held device + mDeviceHeld = std::make_shared(mWindow, "", Font::get(FONT_SIZE_MEDIUM), 0xFFFFFFFF, ALIGN_CENTER); + mGrid.setEntry(mDeviceHeld, Vector2i(0, 4), false, true); + + setSize(Renderer::getScreenWidth() * 0.6f, Renderer::getScreenHeight() * 0.5f); + setPosition((Renderer::getScreenWidth() - mSize.x()) / 2, (Renderer::getScreenHeight() - mSize.y()) / 2); +} + +void GuiDetectDevice::onSizeChanged() +{ + mBackground.fitTo(mSize, Vector3f::Zero(), Vector2f(-32, -32)); + + // grid + mGrid.setSize(mSize); + mGrid.setRowHeightPerc(0, mTitle->getFont()->getHeight() / mSize.y()); + //mGrid.setRowHeightPerc(1, mDeviceInfo->getFont()->getHeight() / mSize.y()); + mGrid.setRowHeightPerc(2, mMsg1->getFont()->getHeight() / mSize.y()); + mGrid.setRowHeightPerc(3, mMsg2->getFont()->getHeight() / mSize.y()); + //mGrid.setRowHeightPerc(4, mDeviceHeld->getFont()->getHeight() / mSize.y()); +} + +bool GuiDetectDevice::input(InputConfig* config, Input input) +{ + if(!mFirstRun && input.device == DEVICE_KEYBOARD && input.type == TYPE_KEY && input.value && input.id == SDLK_ESCAPE) + { + // cancel configuring + delete this; + return true; + } + + if(input.type == TYPE_BUTTON || input.type == TYPE_KEY) + { + if(input.value && mHoldingConfig == NULL) + { + // started holding + mHoldingConfig = config; + mHoldTime = HOLD_TIME; + mDeviceHeld->setText(strToUpper(config->getDeviceName())); + }else if(!input.value && mHoldingConfig == config) + { + // cancel + mHoldingConfig = NULL; + mDeviceHeld->setText(""); + } + } + + return true; +} + +void GuiDetectDevice::update(int deltaTime) +{ + if(mHoldingConfig) + { + mHoldTime -= deltaTime; + const float t = (float)mHoldTime / HOLD_TIME; + unsigned int c = (unsigned char)(t * 255); + mDeviceHeld->setColor((c << 24) | (c << 16) | (c << 8) | 0xFF); + if(mHoldTime <= 0) + { + // picked one! + mWindow->pushGui(new GuiInputConfig(mWindow, mHoldingConfig, true, mDoneCallback)); + delete this; + } + } +} diff --git a/es-core/src/guis/GuiDetectDevice.h b/es-core/src/guis/GuiDetectDevice.h new file mode 100644 index 000000000..f03f940ac --- /dev/null +++ b/es-core/src/guis/GuiDetectDevice.h @@ -0,0 +1,33 @@ +#pragma once + +#include "GuiComponent.h" +#include "components/NinePatchComponent.h" +#include "components/ComponentGrid.h" + +class TextComponent; + +class GuiDetectDevice : public GuiComponent +{ +public: + GuiDetectDevice(Window* window, bool firstRun, const std::function& doneCallback); + + bool input(InputConfig* config, Input input) override; + void update(int deltaTime) override; + void onSizeChanged() override; + +private: + bool mFirstRun; + InputConfig* mHoldingConfig; + int mHoldTime; + + NinePatchComponent mBackground; + ComponentGrid mGrid; + + std::shared_ptr mTitle; + std::shared_ptr mMsg1; + std::shared_ptr mMsg2; + std::shared_ptr mDeviceInfo; + std::shared_ptr mDeviceHeld; + + std::function mDoneCallback; +}; diff --git a/es-core/src/guis/GuiInputConfig.cpp b/es-core/src/guis/GuiInputConfig.cpp new file mode 100644 index 000000000..b4522709f --- /dev/null +++ b/es-core/src/guis/GuiInputConfig.cpp @@ -0,0 +1,278 @@ +#include "guis/GuiInputConfig.h" +#include "Window.h" +#include "Log.h" +#include "components/TextComponent.h" +#include "components/ImageComponent.h" +#include "components/MenuComponent.h" +#include "components/ButtonComponent.h" +#include "Util.h" + +static const int inputCount = 10; +static const char* inputName[inputCount] = { "Up", "Down", "Left", "Right", "A", "B", "Start", "Select", "PageUp", "PageDown" }; +static const bool inputSkippable[inputCount] = { false, false, false, false, false, false, false, false, true, true }; +static const char* inputDispName[inputCount] = { "UP", "DOWN", "LEFT", "RIGHT", "A", "B", "START", "SELECT", "PAGE UP", "PAGE DOWN" }; +static const char* inputIcon[inputCount] = { ":/help/dpad_up.svg", ":/help/dpad_down.svg", ":/help/dpad_left.svg", ":/help/dpad_right.svg", + ":/help/button_a.svg", ":/help/button_b.svg", ":/help/button_start.svg", ":/help/button_select.svg", + ":/help/button_l.svg", ":/help/button_r.svg" }; + +//MasterVolUp and MasterVolDown are also hooked up, but do not appear on this screen. +//If you want, you can manually add them to es_input.cfg. + +using namespace Eigen; + +#define HOLD_TO_SKIP_MS 5000 + +GuiInputConfig::GuiInputConfig(Window* window, InputConfig* target, bool reconfigureAll, const std::function& okCallback) : GuiComponent(window), + mBackground(window, ":/frame.png"), mGrid(window, Vector2i(1, 7)), + mTargetConfig(target), mHoldingInput(false) +{ + LOG(LogInfo) << "Configuring device " << target->getDeviceId() << " (" << target->getDeviceName() << ")."; + + if(reconfigureAll) + target->clear(); + + mConfiguringAll = reconfigureAll; + mConfiguringRow = mConfiguringAll; + + addChild(&mBackground); + addChild(&mGrid); + + // 0 is a spacer row + mGrid.setEntry(std::make_shared(mWindow), Vector2i(0, 0), false); + + mTitle = std::make_shared(mWindow, "CONFIGURING", Font::get(FONT_SIZE_LARGE), 0x555555FF, ALIGN_CENTER); + mGrid.setEntry(mTitle, Vector2i(0, 1), false, true); + + std::stringstream ss; + if(target->getDeviceId() == DEVICE_KEYBOARD) + ss << "KEYBOARD"; + else + ss << "GAMEPAD " << (target->getDeviceId() + 1); + mSubtitle1 = std::make_shared(mWindow, strToUpper(ss.str()), Font::get(FONT_SIZE_MEDIUM), 0x555555FF, ALIGN_CENTER); + mGrid.setEntry(mSubtitle1, Vector2i(0, 2), false, true); + + mSubtitle2 = std::make_shared(mWindow, "HOLD ANY BUTTON TO SKIP", Font::get(FONT_SIZE_SMALL), 0x99999900, ALIGN_CENTER); + mGrid.setEntry(mSubtitle2, Vector2i(0, 3), false, true); + + // 4 is a spacer row + + mList = std::make_shared(mWindow); + mGrid.setEntry(mList, Vector2i(0, 5), true, true); + for(int i = 0; i < inputCount; i++) + { + ComponentListRow row; + + // icon + auto icon = std::make_shared(mWindow); + icon->setImage(inputIcon[i]); + icon->setColorShift(0x777777FF); + icon->setResize(0, Font::get(FONT_SIZE_MEDIUM)->getLetterHeight() * 1.25f); + row.addElement(icon, false); + + // spacer between icon and text + auto spacer = std::make_shared(mWindow); + spacer->setSize(16, 0); + row.addElement(spacer, false); + + auto text = std::make_shared(mWindow, inputDispName[i], Font::get(FONT_SIZE_MEDIUM), 0x777777FF); + row.addElement(text, true); + + auto mapping = std::make_shared(mWindow, "-NOT DEFINED-", Font::get(FONT_SIZE_MEDIUM, FONT_PATH_LIGHT), 0x999999FF, ALIGN_RIGHT); + setNotDefined(mapping); // overrides text and color set above + row.addElement(mapping, true); + mMappings.push_back(mapping); + + row.input_handler = [this, i, mapping](InputConfig* config, Input input) -> bool + { + // ignore input not from our target device + if(config != mTargetConfig) + return false; + + // if we're not configuring, start configuring when A is pressed + if(!mConfiguringRow) + { + if(config->isMappedTo("a", input) && input.value) + { + mList->stopScrolling(); + mConfiguringRow = true; + setPress(mapping); + return true; + } + + // we're not configuring and they didn't press A to start, so ignore this + return false; + } + + // we are configuring + if(input.value != 0) + { + // input down + // if we're already holding something, ignore this, otherwise plan to map this input + if(mHoldingInput) + return true; + + mHoldingInput = true; + mHeldInput = input; + mHeldTime = 0; + mHeldInputId = i; + + return true; + }else{ + // input up + // make sure we were holding something and we let go of what we were previously holding + if(!mHoldingInput || mHeldInput.device != input.device || mHeldInput.id != input.id || mHeldInput.type != input.type) + return true; + + mHoldingInput = false; + + if(assign(mHeldInput, i)) + rowDone(); // if successful, move cursor/stop configuring - if not, we'll just try again + + return true; + } + }; + + mList->addRow(row); + } + + // only show "HOLD TO SKIP" if this input is skippable + mList->setCursorChangedCallback([this](CursorState state) { + bool skippable = inputSkippable[mList->getCursorId()]; + mSubtitle2->setOpacity(skippable * 255); + }); + + // make the first one say "PRESS ANYTHING" if we're re-configuring everything + if(mConfiguringAll) + setPress(mMappings.front()); + + // buttons + std::vector< std::shared_ptr > buttons; + buttons.push_back(std::make_shared(mWindow, "OK", "ok", [this, okCallback] { + InputManager::getInstance()->writeDeviceConfig(mTargetConfig); // save + if(okCallback) + okCallback(); + delete this; + })); + mButtonGrid = makeButtonGrid(mWindow, buttons); + mGrid.setEntry(mButtonGrid, Vector2i(0, 6), true, false); + + setSize(Renderer::getScreenWidth() * 0.6f, Renderer::getScreenHeight() * 0.75f); + setPosition((Renderer::getScreenWidth() - mSize.x()) / 2, (Renderer::getScreenHeight() - mSize.y()) / 2); +} + +void GuiInputConfig::onSizeChanged() +{ + mBackground.fitTo(mSize, Vector3f::Zero(), Vector2f(-32, -32)); + + // update grid + mGrid.setSize(mSize); + + //mGrid.setRowHeightPerc(0, 0.025f); + mGrid.setRowHeightPerc(1, mTitle->getFont()->getHeight()*0.75f / mSize.y()); + mGrid.setRowHeightPerc(2, mSubtitle1->getFont()->getHeight() / mSize.y()); + mGrid.setRowHeightPerc(3, mSubtitle2->getFont()->getHeight() / mSize.y()); + //mGrid.setRowHeightPerc(4, 0.03f); + mGrid.setRowHeightPerc(5, (mList->getRowHeight(0) * 5 + 2) / mSize.y()); + mGrid.setRowHeightPerc(6, mButtonGrid->getSize().y() / mSize.y()); +} + +void GuiInputConfig::update(int deltaTime) +{ + if(mConfiguringRow && mHoldingInput && inputSkippable[mHeldInputId]) + { + int prevSec = mHeldTime / 1000; + mHeldTime += deltaTime; + int curSec = mHeldTime / 1000; + + if(mHeldTime >= HOLD_TO_SKIP_MS) + { + setNotDefined(mMappings.at(mHeldInputId)); + clearAssignment(mHeldInputId); + mHoldingInput = false; + rowDone(); + }else{ + if(prevSec != curSec) + { + // crossed the second boundary, update text + const auto& text = mMappings.at(mHeldInputId); + std::stringstream ss; + ss << "HOLD FOR " << HOLD_TO_SKIP_MS/1000 - curSec << "S TO SKIP"; + text->setText(ss.str()); + text->setColor(0x777777FF); + } + } + } +} + +// move cursor to the next thing if we're configuring all, +// or come out of "configure mode" if we were only configuring one row +void GuiInputConfig::rowDone() +{ + if(mConfiguringAll) + { + if(!mList->moveCursor(1)) // try to move to the next one + { + // at bottom of list, done + mConfiguringAll = false; + mConfiguringRow = false; + mGrid.moveCursor(Vector2i(0, 1)); + }else{ + // on another one + setPress(mMappings.at(mList->getCursorId())); + } + }else{ + // only configuring one row, so stop + mConfiguringRow = false; + } +} + +void GuiInputConfig::setPress(const std::shared_ptr& text) +{ + text->setText("PRESS ANYTHING"); + text->setColor(0x656565FF); +} + +void GuiInputConfig::setNotDefined(const std::shared_ptr& text) +{ + text->setText("-NOT DEFINED-"); + text->setColor(0x999999FF); +} + +void GuiInputConfig::setAssignedTo(const std::shared_ptr& text, Input input) +{ + text->setText(strToUpper(input.string())); + text->setColor(0x777777FF); +} + +void GuiInputConfig::error(const std::shared_ptr& text, const std::string& msg) +{ + text->setText("ALREADY TAKEN"); + text->setColor(0x656565FF); +} + +bool GuiInputConfig::assign(Input input, int inputId) +{ + // input is from InputConfig* mTargetConfig + + // if this input is mapped to something other than "nothing" or the current row, error + // (if it's the same as what it was before, allow it) + if(mTargetConfig->getMappedTo(input).size() > 0 && !mTargetConfig->isMappedTo(inputName[inputId], input)) + { + error(mMappings.at(inputId), "Already mapped!"); + return false; + } + + setAssignedTo(mMappings.at(inputId), input); + + input.configured = true; + mTargetConfig->mapInput(inputName[inputId], input); + + LOG(LogInfo) << " Mapping [" << input.string() << "] -> " << inputName[inputId]; + + return true; +} + +void GuiInputConfig::clearAssignment(int inputId) +{ + mTargetConfig->unmapInput(inputName[inputId]); +} \ No newline at end of file diff --git a/es-core/src/guis/GuiInputConfig.h b/es-core/src/guis/GuiInputConfig.h new file mode 100644 index 000000000..20af11df8 --- /dev/null +++ b/es-core/src/guis/GuiInputConfig.h @@ -0,0 +1,49 @@ +#pragma once + +#include "GuiComponent.h" +#include "components/NinePatchComponent.h" +#include "components/ComponentGrid.h" +#include "components/ComponentList.h" + +class TextComponent; + +class GuiInputConfig : public GuiComponent +{ +public: + GuiInputConfig(Window* window, InputConfig* target, bool reconfigureAll, const std::function& okCallback); + + void update(int deltaTime) override; + + void onSizeChanged() override; + +private: + void error(const std::shared_ptr& text, const std::string& msg); // set text to "msg" + not greyed out + + void setPress(const std::shared_ptr& text); // set text to "PRESS ANYTHING" + not greyed out + void setNotDefined(const std::shared_ptr& text); // set text to -NOT DEFINED- + greyed out + void setAssignedTo(const std::shared_ptr& text, Input input); // set text to "BUTTON 2"/"AXIS 2+", etc. + + bool assign(Input input, int inputId); + void clearAssignment(int inputId); + + void rowDone(); + + NinePatchComponent mBackground; + ComponentGrid mGrid; + + std::shared_ptr mTitle; + std::shared_ptr mSubtitle1; + std::shared_ptr mSubtitle2; + std::shared_ptr mList; + std::vector< std::shared_ptr > mMappings; + std::shared_ptr mButtonGrid; + + InputConfig* mTargetConfig; + bool mConfiguringRow; // next input captured by mList will be interpretted as a remap + bool mConfiguringAll; // move the cursor down after configuring a row and start configuring the next row until we reach the bottom + + bool mHoldingInput; + Input mHeldInput; + int mHeldTime; + int mHeldInputId; +}; diff --git a/es-core/src/guis/GuiMsgBox.cpp b/es-core/src/guis/GuiMsgBox.cpp new file mode 100644 index 000000000..73f4e07a6 --- /dev/null +++ b/es-core/src/guis/GuiMsgBox.cpp @@ -0,0 +1,113 @@ +#include "guis/GuiMsgBox.h" +#include "Renderer.h" +#include "components/TextComponent.h" +#include "components/ButtonComponent.h" +#include "components/MenuComponent.h" // for makeButtonGrid +#include "Util.h" +#include "Log.h" + +#define HORIZONTAL_PADDING_PX 20 + +GuiMsgBox::GuiMsgBox(Window* window, const std::string& text, + const std::string& name1, const std::function& func1, + const std::string& name2, const std::function& func2, + const std::string& name3, const std::function& func3) : GuiComponent(window), + mBackground(window, ":/frame.png"), mGrid(window, Eigen::Vector2i(1, 2)) +{ + float width = Renderer::getScreenWidth() * 0.6f; // max width + float minWidth = Renderer::getScreenWidth() * 0.3f; // minimum width + + mMsg = std::make_shared(mWindow, text, Font::get(FONT_SIZE_MEDIUM), 0x777777FF, ALIGN_CENTER); + mGrid.setEntry(mMsg, Eigen::Vector2i(0, 0), false, false); + + // create the buttons + mButtons.push_back(std::make_shared(mWindow, name1, name1, std::bind(&GuiMsgBox::deleteMeAndCall, this, func1))); + if(!name2.empty()) + mButtons.push_back(std::make_shared(mWindow, name2, name3, std::bind(&GuiMsgBox::deleteMeAndCall, this, func2))); + if(!name3.empty()) + mButtons.push_back(std::make_shared(mWindow, name3, name3, std::bind(&GuiMsgBox::deleteMeAndCall, this, func3))); + + // set accelerator automatically (button to press when "b" is pressed) + if(mButtons.size() == 1) + { + mAcceleratorFunc = mButtons.front()->getPressedFunc(); + }else{ + for(auto it = mButtons.begin(); it != mButtons.end(); it++) + { + if(strToUpper((*it)->getText()) == "OK" || strToUpper((*it)->getText()) == "NO") + { + mAcceleratorFunc = (*it)->getPressedFunc(); + break; + } + } + } + + // put the buttons into a ComponentGrid + mButtonGrid = makeButtonGrid(mWindow, mButtons); + mGrid.setEntry(mButtonGrid, Eigen::Vector2i(0, 1), true, false, Eigen::Vector2i(1, 1), GridFlags::BORDER_TOP); + + // decide final width + if(mMsg->getSize().x() < width && mButtonGrid->getSize().x() < width) + { + // mMsg and buttons are narrower than width + width = std::max(mButtonGrid->getSize().x(), mMsg->getSize().x()); + width = std::max(width, minWidth); + } + + // now that we know width, we can find height + mMsg->setSize(width, 0); // mMsg->getSize.y() now returns the proper length + const float msgHeight = std::max(Font::get(FONT_SIZE_LARGE)->getHeight(), mMsg->getSize().y()*1.225f); + setSize(width + HORIZONTAL_PADDING_PX*2, msgHeight + mButtonGrid->getSize().y()); + + // center for good measure + setPosition((Renderer::getScreenWidth() - mSize.x()) / 2.0f, (Renderer::getScreenHeight() - mSize.y()) / 2.0f); + + addChild(&mBackground); + addChild(&mGrid); +} + +bool GuiMsgBox::input(InputConfig* config, Input input) +{ + // special case for when GuiMsgBox comes up to report errors before anything has been configured + if(config->getDeviceId() == DEVICE_KEYBOARD && !config->isConfigured() && input.value && + (input.id == SDLK_RETURN || input.id == SDLK_ESCAPE || input.id == SDLK_SPACE)) + { + mAcceleratorFunc(); + return true; + } + + if(mAcceleratorFunc && config->isMappedTo("b", input) && input.value != 0) + { + mAcceleratorFunc(); + return true; + } + + return GuiComponent::input(config, input); +} + +void GuiMsgBox::onSizeChanged() +{ + mGrid.setSize(mSize); + mGrid.setRowHeightPerc(1, mButtonGrid->getSize().y() / mSize.y()); + + // update messagebox size + mMsg->setSize(mSize.x() - HORIZONTAL_PADDING_PX*2, mGrid.getRowHeight(0)); + mGrid.onSizeChanged(); + + mBackground.fitTo(mSize, Eigen::Vector3f::Zero(), Eigen::Vector2f(-32, -32)); +} + +void GuiMsgBox::deleteMeAndCall(const std::function& func) +{ + auto funcCopy = func; + delete this; + + if(funcCopy) + funcCopy(); + +} + +std::vector GuiMsgBox::getHelpPrompts() +{ + return mGrid.getHelpPrompts(); +} diff --git a/es-core/src/guis/GuiMsgBox.h b/es-core/src/guis/GuiMsgBox.h new file mode 100644 index 000000000..6da246916 --- /dev/null +++ b/es-core/src/guis/GuiMsgBox.h @@ -0,0 +1,33 @@ +#pragma once + +#include "GuiComponent.h" +#include "components/NinePatchComponent.h" +#include "components/ComponentGrid.h" + +class TextComponent; +class ButtonComponent; + +class GuiMsgBox : public GuiComponent +{ +public: + GuiMsgBox(Window* window, const std::string& text, + const std::string& name1 = "OK", const std::function& func1 = nullptr, + const std::string& name2 = "", const std::function& func2 = nullptr, + const std::string& name3 = "", const std::function& func3 = nullptr); + + bool input(InputConfig* config, Input input) override; + void onSizeChanged() override; + std::vector getHelpPrompts() override; + +private: + void deleteMeAndCall(const std::function& func); + + NinePatchComponent mBackground; + ComponentGrid mGrid; + + + std::shared_ptr mMsg; + std::vector< std::shared_ptr > mButtons; + std::shared_ptr mButtonGrid; + std::function mAcceleratorFunc; +}; diff --git a/es-core/src/guis/GuiTextEditPopup.cpp b/es-core/src/guis/GuiTextEditPopup.cpp new file mode 100644 index 000000000..dcb4a47f7 --- /dev/null +++ b/es-core/src/guis/GuiTextEditPopup.cpp @@ -0,0 +1,72 @@ +#include "guis/GuiTextEditPopup.h" +#include "components/MenuComponent.h" + +using namespace Eigen; + +GuiTextEditPopup::GuiTextEditPopup(Window* window, const std::string& title, const std::string& initValue, + const std::function& okCallback, bool multiLine, const char* acceptBtnText) + : GuiComponent(window), mBackground(window, ":/frame.png"), mGrid(window, Vector2i(1, 3)), mMultiLine(multiLine) +{ + addChild(&mBackground); + addChild(&mGrid); + + mTitle = std::make_shared(mWindow, strToUpper(title), Font::get(FONT_SIZE_LARGE), 0x555555FF, ALIGN_CENTER); + + mText = std::make_shared(mWindow); + mText->setValue(initValue); + + if(!multiLine) + mText->setCursor(initValue.size()); + + std::vector< std::shared_ptr > buttons; + buttons.push_back(std::make_shared(mWindow, acceptBtnText, acceptBtnText, [this, okCallback] { okCallback(mText->getValue()); delete this; })); + buttons.push_back(std::make_shared(mWindow, "CANCEL", "discard changes", [this] { delete this; })); + + mButtonGrid = makeButtonGrid(mWindow, buttons); + + mGrid.setEntry(mTitle, Vector2i(0, 0), false, true); + mGrid.setEntry(mText, Vector2i(0, 1), true, false, Vector2i(1, 1), GridFlags::BORDER_TOP | GridFlags::BORDER_BOTTOM); + mGrid.setEntry(mButtonGrid, Vector2i(0, 2), true, false); + + float textHeight = mText->getFont()->getHeight(); + if(multiLine) + textHeight *= 6; + mText->setSize(0, textHeight); + + setSize(Renderer::getScreenWidth() * 0.5f, mTitle->getFont()->getHeight() + textHeight + mButtonGrid->getSize().y() + 40); + setPosition((Renderer::getScreenWidth() - mSize.x()) / 2, (Renderer::getScreenHeight() - mSize.y()) / 2); +} + +void GuiTextEditPopup::onSizeChanged() +{ + mBackground.fitTo(mSize, Eigen::Vector3f::Zero(), Eigen::Vector2f(-32, -32)); + + mText->setSize(mSize.x() - 40, mText->getSize().y()); + + // update grid + mGrid.setRowHeightPerc(0, mTitle->getFont()->getHeight() / mSize.y()); + mGrid.setRowHeightPerc(2, mButtonGrid->getSize().y() / mSize.y()); + mGrid.setSize(mSize); +} + +bool GuiTextEditPopup::input(InputConfig* config, Input input) +{ + if(GuiComponent::input(config, input)) + return true; + + // pressing back when not text editing closes us + if(config->isMappedTo("b", input) && input.value) + { + delete this; + return true; + } + + return false; +} + +std::vector GuiTextEditPopup::getHelpPrompts() +{ + std::vector prompts = mGrid.getHelpPrompts(); + prompts.push_back(HelpPrompt("b", "back")); + return prompts; +} diff --git a/es-core/src/guis/GuiTextEditPopup.h b/es-core/src/guis/GuiTextEditPopup.h new file mode 100644 index 000000000..9cba8df3d --- /dev/null +++ b/es-core/src/guis/GuiTextEditPopup.h @@ -0,0 +1,28 @@ +#include "GuiComponent.h" + +#include "components/NinePatchComponent.h" +#include "components/ButtonComponent.h" +#include "components/ComponentGrid.h" +#include "components/TextEditComponent.h" +#include "components/TextComponent.h" + +class GuiTextEditPopup : public GuiComponent +{ +public: + GuiTextEditPopup(Window* window, const std::string& title, const std::string& initValue, + const std::function& okCallback, bool multiLine, const char* acceptBtnText = "OK"); + + bool input(InputConfig* config, Input input); + void onSizeChanged(); + std::vector getHelpPrompts() override; + +private: + NinePatchComponent mBackground; + ComponentGrid mGrid; + + std::shared_ptr mTitle; + std::shared_ptr mText; + std::shared_ptr mButtonGrid; + + bool mMultiLine; +}; diff --git a/src/platform.cpp b/es-core/src/platform.cpp similarity index 51% rename from src/platform.cpp rename to es-core/src/platform.cpp index 856161302..a29bba42d 100644 --- a/src/platform.cpp +++ b/es-core/src/platform.cpp @@ -1,19 +1,21 @@ #include "platform.h" #include #include - +#include std::string getHomePath() { std::string homePath; - //this should give you something like "/home/YOUR_USERNAME" on Linux and "C:\Users\YOUR_USERNAME\" on Windows + // this should give you something like "/home/YOUR_USERNAME" on Linux and "C:\Users\YOUR_USERNAME\" on Windows const char * envHome = getenv("HOME"); - if(envHome != nullptr) { + if(envHome != nullptr) + { homePath = envHome; } + #ifdef WIN32 - //but does not seem to work for Windwos XP or Vista, so try something else + // but does not seem to work for Windows XP or Vista, so try something else if (homePath.empty()) { const char * envDir = getenv("HOMEDRIVE"); const char * envPath = getenv("HOMEPATH"); @@ -26,13 +28,27 @@ std::string getHomePath() homePath[i] = '/'; } } -#else - if (homePath.empty()) { - homePath = "~"; - } #endif - //convert path to generic directory seperators + // convert path to generic directory seperators boost::filesystem::path genericPath(homePath); return genericPath.generic_string(); } + +int runShutdownCommand() +{ +#ifdef WIN32 // windows + return system("shutdown -s -t 0"); +#else // osx / linux + return system("sudo shutdown -h now"); +#endif +} + +int runRestartCommand() +{ +#ifdef WIN32 // windows + return system("shutdown -r -t 0"); +#else // osx / linux + return system("sudo shutdown -r now"); +#endif +} \ No newline at end of file diff --git a/src/platform.h b/es-core/src/platform.h similarity index 59% rename from src/platform.h rename to es-core/src/platform.h index 011d7b81a..b205d5f68 100644 --- a/src/platform.h +++ b/es-core/src/platform.h @@ -1,4 +1,4 @@ -//the Makefiles define these via command line +//the Makefile defines one of these: //#define USE_OPENGL_ES //#define USE_OPENGL_DESKTOP @@ -17,4 +17,7 @@ #include -std::string getHomePath(); \ No newline at end of file +std::string getHomePath(); + +int runShutdownCommand(); // shut down the system (returns 0 if successful) +int runRestartCommand(); // restart the system (returns 0 if successful) diff --git a/es-core/src/resources/Font.cpp b/es-core/src/resources/Font.cpp new file mode 100644 index 000000000..170701dd1 --- /dev/null +++ b/es-core/src/resources/Font.cpp @@ -0,0 +1,510 @@ +#include "resources/Font.h" +#include +#include +#include +#include +#include "Renderer.h" +#include "Log.h" +#include "Util.h" + +FT_Library Font::sLibrary = NULL; + +int Font::getSize() const { return mSize; } + +std::map< std::pair, std::weak_ptr > Font::sFontMap; + +void Font::initLibrary() +{ + assert(sLibrary == NULL); + if(FT_Init_FreeType(&sLibrary)) + { + sLibrary = NULL; + LOG(LogError) << "Error initializing FreeType!"; + } +} + +size_t Font::getMemUsage() const +{ + if(!mTextureID) + return 0; + + return mTextureWidth * mTextureHeight * 4; +} + +size_t Font::getTotalMemUsage() +{ + size_t total = 0; + + auto it = sFontMap.begin(); + while(it != sFontMap.end()) + { + if(it->second.expired()) + { + it = sFontMap.erase(it); + continue; + } + + total += it->second.lock()->getMemUsage(); + it++; + } + + return total; +} + +Font::Font(int size, const std::string& path) : mFontScale(1.0f), mSize(size), mPath(path), mTextureID(0) +{ + reload(ResourceManager::getInstance()); +} + +Font::~Font() +{ + deinit(); +} + +void Font::reload(std::shared_ptr& rm) +{ + init(rm->getFileData(mPath)); +} + +void Font::unload(std::shared_ptr& rm) +{ + deinit(); +} + +std::shared_ptr Font::get(int size, const std::string& path) +{ + const std::string canonicalPath = getCanonicalPath(path); + + std::pair def(canonicalPath.empty() ? getDefaultPath() : canonicalPath, size); + auto foundFont = sFontMap.find(def); + if(foundFont != sFontMap.end()) + { + if(!foundFont->second.expired()) + return foundFont->second.lock(); + } + + std::shared_ptr font = std::shared_ptr(new Font(def.second, def.first)); + sFontMap[def] = std::weak_ptr(font); + ResourceManager::getInstance()->addReloadable(font); + return font; +} + +void Font::init(ResourceData data) +{ + if(sLibrary == NULL) + initLibrary(); + + deinit(); + + mMaxGlyphHeight = 0; + + buildAtlas(data); +} + +void Font::deinit() +{ + if(mTextureID) + { + glDeleteTextures(1, &mTextureID); + mTextureID = 0; + } +} + +void Font::buildAtlas(ResourceData data) +{ + assert(mSize > 0); + + FT_Face face; + if(FT_New_Memory_Face(sLibrary, data.ptr.get(), data.length, 0, &face)) + { + LOG(LogError) << "Error creating font face! (mPath: " << mPath << ", data.length: " << data.length << ")"; + return; + } + + FT_Set_Pixel_Sizes(face, 0, mSize); + + // hardcoded texture size right now + mTextureWidth = 2048; + mTextureHeight = 512; + + // create the texture + glGenTextures(1, &mTextureID); + glBindTexture(GL_TEXTURE_2D, mTextureID); + + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); + + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + + glPixelStorei(GL_PACK_ALIGNMENT, 1); + glPixelStorei(GL_UNPACK_ALIGNMENT, 1); + + glTexImage2D(GL_TEXTURE_2D, 0, GL_ALPHA, mTextureWidth, mTextureHeight, 0, GL_ALPHA, GL_UNSIGNED_BYTE, NULL); + + //copy the glyphs into the texture + int x = 0; + int y = 0; + int maxHeight = 0; + FT_GlyphSlot g = face->glyph; + for(int i = 32; i < 128; i++) + { + if(FT_Load_Char(face, i, FT_LOAD_RENDER)) + continue; + + if(x + g->bitmap.width >= mTextureWidth) + { + x = 0; + y += maxHeight + 1; //leave one pixel of space between glyphs + maxHeight = 0; + } + + if(g->bitmap.rows > maxHeight) + maxHeight = g->bitmap.rows; + + glTexSubImage2D(GL_TEXTURE_2D, 0, x, y, g->bitmap.width, g->bitmap.rows, GL_ALPHA, GL_UNSIGNED_BYTE, g->bitmap.buffer); + + + mCharData[i].texX = x; + mCharData[i].texY = y; + mCharData[i].texW = g->bitmap.width; + mCharData[i].texH = g->bitmap.rows; + mCharData[i].advX = (float)g->metrics.horiAdvance / 64.0f; + mCharData[i].advY = (float)g->metrics.vertAdvance / 64.0f; + mCharData[i].bearingX = (float)g->metrics.horiBearingX / 64.0f; + mCharData[i].bearingY = (float)g->metrics.horiBearingY / 64.0f; + + if(mCharData[i].texH > mMaxGlyphHeight) + mMaxGlyphHeight = mCharData[i].texH; + + x += g->bitmap.width + 1; //leave one pixel of space between glyphs + } + + glBindTexture(GL_TEXTURE_2D, 0); + + FT_Done_Face(face); + + if((y + maxHeight) >= mTextureHeight) + { + //failed to create a proper font texture + LOG(LogWarning) << "Font \"" << mPath << "\" with size " << mSize << " exceeded max texture size! Trying again..."; + //try a 3/4th smaller size and redo initialization + mFontScale *= 1.25f; + mSize = (int)(mSize * (1.0f / mFontScale)); + deinit(); + init(data); + } +} + +void Font::renderTextCache(TextCache* cache) +{ + if(!mTextureID) + { + LOG(LogError) << "Error - tried to draw with Font that has no texture loaded!"; + return; + } + + if(cache == NULL) + { + LOG(LogError) << "Attempted to draw NULL TextCache!"; + return; + } + + glBindTexture(GL_TEXTURE_2D, mTextureID); + glEnable(GL_TEXTURE_2D); + glEnable(GL_BLEND); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + + glEnableClientState(GL_VERTEX_ARRAY); + glEnableClientState(GL_TEXTURE_COORD_ARRAY); + glEnableClientState(GL_COLOR_ARRAY); + + glVertexPointer(2, GL_FLOAT, sizeof(TextCache::Vertex), &cache->verts[0].pos); + glTexCoordPointer(2, GL_FLOAT, sizeof(TextCache::Vertex), &cache->verts[0].tex); + glColorPointer(4, GL_UNSIGNED_BYTE, 0, cache->colors); + + glDrawArrays(GL_TRIANGLES, 0, cache->vertCount); + + glDisableClientState(GL_VERTEX_ARRAY); + glDisableClientState(GL_TEXTURE_COORD_ARRAY); + glDisableClientState(GL_COLOR_ARRAY); + + glDisable(GL_TEXTURE_2D); + glDisable(GL_BLEND); +} + +Eigen::Vector2f Font::sizeText(std::string text, float lineSpacing) const +{ + float lineWidth = 0.0f; + float highestWidth = 0.0f; + + float y = getHeight(lineSpacing); + + for(unsigned int i = 0; i < text.length(); i++) + { + unsigned char letter = text[i]; + + if(letter == '\n') + { + if(lineWidth > highestWidth) + highestWidth = lineWidth; + + lineWidth = 0.0f; + y += getHeight(lineSpacing); + } + + if(letter < 32 || letter >= 128) + letter = 127; + + lineWidth += mCharData[letter].advX * mFontScale; + } + + if(lineWidth > highestWidth) + highestWidth = lineWidth; + + return Eigen::Vector2f(highestWidth, y); +} + +float Font::getHeight(float lineSpacing) const +{ + return mMaxGlyphHeight * lineSpacing * mFontScale; +} + +float Font::getLetterHeight() const +{ + return mCharData['S'].texH * mFontScale; +} + +//the worst algorithm ever written +//breaks up a normal string with newlines to make it fit xLen +std::string Font::wrapText(std::string text, float xLen) const +{ + std::string out; + + std::string line, word, temp; + size_t space; + + Eigen::Vector2f textSize; + + while(text.length() > 0) //while there's text or we still have text to render + { + space = text.find_first_of(" \t\n"); + if(space == std::string::npos) + space = text.length() - 1; + + word = text.substr(0, space + 1); + text.erase(0, space + 1); + + temp = line + word; + + textSize = sizeText(temp); + + // if the word will fit on the line, add it to our line, and continue + if(textSize.x() <= xLen) + { + line = temp; + continue; + }else{ + // the next word won't fit, so break here + out += line + '\n'; + line = word; + } + } + + // whatever's left should fit + out += line; + + return out; +} + +Eigen::Vector2f Font::sizeWrappedText(std::string text, float xLen, float lineSpacing) const +{ + text = wrapText(text, xLen); + return sizeText(text, lineSpacing); +} + +Eigen::Vector2f Font::getWrappedTextCursorOffset(std::string text, float xLen, int cursor, float lineSpacing) const +{ + std::string wrappedText = wrapText(text, xLen); + + float lineWidth = 0.0f; + float y = 0.0f; + + unsigned int stop = (unsigned int)cursor; + unsigned int wrapOffset = 0; + for(unsigned int i = 0; i < stop; i++) + { + unsigned char wrappedLetter = wrappedText[i + wrapOffset]; + unsigned char letter = text[i]; + + if(wrappedLetter == '\n' && letter != '\n') + { + //this is where the wordwrap inserted a newline + //reset lineWidth and increment y, but don't consume a cursor character + lineWidth = 0.0f; + y += getHeight(lineSpacing); + + wrapOffset++; + i--; + continue; + } + + if(letter == '\n') + { + lineWidth = 0.0f; + y += getHeight(lineSpacing); + continue; + } + + if(letter < 32 || letter >= 128) + letter = 127; + + lineWidth += mCharData[letter].advX * mFontScale; + } + + return Eigen::Vector2f(lineWidth, y); +} + +//============================================================================================================= +//TextCache +//============================================================================================================= + +float Font::getNewlineStartOffset(const std::string& text, const unsigned int& charStart, const float& xLen, const Alignment& alignment) +{ + switch(alignment) + { + case ALIGN_LEFT: + return 0; + case ALIGN_CENTER: + { + unsigned int endChar = text.find('\n', charStart); + return (xLen - sizeText(text.substr(charStart, endChar != std::string::npos ? endChar - charStart : endChar)).x()) / 2.0f; + } + case ALIGN_RIGHT: + { + unsigned int endChar = text.find('\n', charStart); + return xLen - (sizeText(text.substr(charStart, endChar != std::string::npos ? endChar - charStart : endChar)).x()); + } + default: + return 0; + } +} + +TextCache* Font::buildTextCache(const std::string& text, Eigen::Vector2f offset, unsigned int color, float xLen, Alignment alignment, float lineSpacing) +{ + if(!mTextureID) + { + LOG(LogError) << "Error - tried to build TextCache with Font that has no texture loaded!"; + return NULL; + } + + const unsigned int vertCount = text.length() * 2 * 3; // 2 triangles of 3 vertices per character + TextCache::Vertex* vert = new TextCache::Vertex[vertCount]; + GLubyte* colors = new GLubyte[vertCount * 4]; + + //texture atlas width/height + float tw = (float)mTextureWidth; + float th = (float)mTextureHeight; + + float x = offset[0] + (xLen != 0 ? getNewlineStartOffset(text, 0, xLen, alignment) : 0); + + float yTop = mCharData['S'].bearingY * mFontScale; + float yBot = getHeight(lineSpacing); + float y = offset[1] + (yBot + yTop)/2.0f; + + for(unsigned int i = 0, charNum = 0; i < vertCount; i += 6, charNum++) + { + unsigned char letter = text[charNum]; + + if(letter == '\n') + { + y += getHeight(lineSpacing); + x = offset[0] + (xLen != 0 ? getNewlineStartOffset(text, charNum+1, xLen, alignment) : 0); + memset(&vert[i], 0, 6 * sizeof(TextCache::Vertex)); + continue; + } + + if(letter < 32 || letter >= 128) + letter = 127; //print [X] if character is not standard ASCII + + //the glyph might not start at the cursor position, but needs to be shifted a bit + const float glyphStartX = x + mCharData[letter].bearingX * mFontScale; + //order is bottom left, top right, top left + vert[i + 0].pos << glyphStartX, y + (mCharData[letter].texH - mCharData[letter].bearingY) * mFontScale; + vert[i + 1].pos << glyphStartX + mCharData[letter].texW * mFontScale, y - mCharData[letter].bearingY * mFontScale; + vert[i + 2].pos << glyphStartX, vert[i + 1].pos.y(); + + Eigen::Vector2i charTexCoord(mCharData[letter].texX, mCharData[letter].texY); + Eigen::Vector2i charTexSize(mCharData[letter].texW, mCharData[letter].texH); + + vert[i + 0].tex << charTexCoord.x() / tw, (charTexCoord.y() + charTexSize.y()) / th; + vert[i + 1].tex << (charTexCoord.x() + charTexSize.x()) / tw, charTexCoord.y() / th; + vert[i + 2].tex << vert[i + 0].tex.x(), vert[i + 1].tex.y(); + + //next triangle (second half of the quad) + vert[i + 3].pos = vert[i + 0].pos; + vert[i + 4].pos = vert[i + 1].pos; + vert[i + 5].pos[0] = vert[i + 1].pos.x(); + vert[i + 5].pos[1] = vert[i + 0].pos.y(); + + vert[i + 3].tex = vert[i + 0].tex; + vert[i + 4].tex = vert[i + 1].tex; + vert[i + 5].tex[0] = vert[i + 1].tex.x(); + vert[i + 5].tex[1] = vert[i + 0].tex.y(); + + // round to fix some weird "cut off" text bugs + for(unsigned int j = i; j < i + 6; j++) + { + vert[j].pos[0] = round(vert[j].pos[0]); + vert[j].pos[1] = round(vert[j].pos[1]); + } + + x += mCharData[letter].advX * mFontScale; + } + + TextCache::CacheMetrics metrics = { sizeText(text, lineSpacing) }; + TextCache* cache = new TextCache(vertCount, vert, colors, metrics); + if(color != 0x00000000) + cache->setColor(color); + + return cache; +} + +TextCache* Font::buildTextCache(const std::string& text, float offsetX, float offsetY, unsigned int color) +{ + return buildTextCache(text, Eigen::Vector2f(offsetX, offsetY), color, 0.0f); +} + +TextCache::TextCache(int verts, Vertex* v, GLubyte* c, const CacheMetrics& m) : vertCount(verts), verts(v), colors(c), metrics(m) +{ +} + +TextCache::~TextCache() +{ + delete[] verts; + delete[] colors; +} + +void TextCache::setColor(unsigned int color) +{ + Renderer::buildGLColorArray(const_cast(colors), color, vertCount); +} + +std::shared_ptr Font::getFromTheme(const ThemeData::ThemeElement* elem, unsigned int properties, const std::shared_ptr& orig) +{ + using namespace ThemeFlags; + if(!(properties & FONT_PATH) && !(properties & FONT_SIZE)) + return orig; + + std::shared_ptr font; + int size = (orig ? orig->mSize : FONT_SIZE_MEDIUM); + std::string path = (orig ? orig->mPath : getDefaultPath()); + + float sh = (float)Renderer::getScreenHeight(); + if(properties & FONT_SIZE && elem->has("fontSize")) + size = (int)(sh * elem->get("fontSize")); + if(properties & FONT_PATH && elem->has("fontPath")) + path = elem->get("fontPath"); + + return get(size, path); +} diff --git a/es-core/src/resources/Font.h b/es-core/src/resources/Font.h new file mode 100644 index 000000000..70c889c96 --- /dev/null +++ b/es-core/src/resources/Font.h @@ -0,0 +1,133 @@ +#pragma once + +#include +#include "platform.h" +#include GLHEADER +#include +#include FT_FREETYPE_H +#include +#include "resources/ResourceManager.h" +#include "ThemeData.h" + +class TextCache; + +#define FONT_SIZE_SMALL ((unsigned int)(0.035f * Renderer::getScreenHeight())) +#define FONT_SIZE_MEDIUM ((unsigned int)(0.045f * Renderer::getScreenHeight())) +#define FONT_SIZE_LARGE ((unsigned int)(0.085f * Renderer::getScreenHeight())) + +#define FONT_PATH_LIGHT ":/opensans_hebrew_condensed_light.ttf" +#define FONT_PATH_REGULAR ":/opensans_hebrew_condensed_regular.ttf" + +enum Alignment +{ + ALIGN_LEFT, + ALIGN_CENTER, // centers both horizontally and vertically + ALIGN_RIGHT +}; + +//A TrueType Font renderer that uses FreeType and OpenGL. +//The library is automatically initialized when it's needed. +class Font : public IReloadable +{ +public: + static void initLibrary(); + + static std::shared_ptr get(int size, const std::string& path = getDefaultPath()); + + virtual ~Font(); + + Eigen::Vector2f sizeText(std::string text, float lineSpacing = 1.5f) const; // Returns the expected size of a string when rendered. Extra spacing is applied to the Y axis. + TextCache* buildTextCache(const std::string& text, float offsetX, float offsetY, unsigned int color); + TextCache* buildTextCache(const std::string& text, Eigen::Vector2f offset, unsigned int color, float xLen, Alignment alignment = ALIGN_LEFT, float lineSpacing = 1.5f); + void renderTextCache(TextCache* cache); + + std::string wrapText(std::string text, float xLen) const; // Inserts newlines into text to make it wrap properly. + Eigen::Vector2f sizeWrappedText(std::string text, float xLen, float lineSpacing = 1.5f) const; // Returns the expected size of a string after wrapping is applied. + Eigen::Vector2f getWrappedTextCursorOffset(std::string text, float xLen, int cursor, float lineSpacing = 1.5f) const; // Returns the position of of the cursor after moving "cursor" characters. + + float getHeight(float lineSpacing = 1.5f) const; + float getLetterHeight() const; + + void unload(std::shared_ptr& rm) override; + void reload(std::shared_ptr& rm) override; + + int getSize() const; + inline const std::string& getPath() const { return mPath; } + + inline static const char* getDefaultPath() { return FONT_PATH_REGULAR; } + + static std::shared_ptr getFromTheme(const ThemeData::ThemeElement* elem, unsigned int properties, const std::shared_ptr& orig); + + size_t getMemUsage() const; // returns an approximation of VRAM used by this font's texture (in bytes) + static size_t getTotalMemUsage(); // returns an approximation of total VRAM used by font textures (in bytes) + +private: + static FT_Library sLibrary; + static std::map< std::pair, std::weak_ptr > sFontMap; + + Font(int size, const std::string& path); + + void init(ResourceData data); + void deinit(); + + void buildAtlas(ResourceData data); //Builds a "texture atlas," one big OpenGL texture with glyphs 32 to 128. + + //contains sizing information for every glyph. + struct CharData + { + int texX; + int texY; + int texW; + int texH; + + float advX; //! 1.0 if the font would be to big for the texture + + int mSize; + const std::string mPath; + + float getNewlineStartOffset(const std::string& text, const unsigned int& charStart, const float& xLen, const Alignment& alignment); + + friend TextCache; +}; + +// Used to store a sort of "pre-rendered" string. +// When a TextCache is constructed (Font::buildTextCache()), the vertices and texture coordinates of the string are calculated and stored in the TextCache object. +// Rendering a previously constructed TextCache (Font::renderTextCache) every frame is MUCH faster than rebuilding one every frame. +// Keep in mind you still need the Font object to render a TextCache (as the Font holds the OpenGL texture), and if a Font changes your TextCache may become invalid. +class TextCache +{ +public: + struct Vertex + { + Eigen::Vector2f pos; + Eigen::Vector2f tex; + }; + + struct CacheMetrics + { + Eigen::Vector2f size; + } metrics; + + void setColor(unsigned int color); + + TextCache(int verts, Vertex* v, GLubyte* c, const CacheMetrics& m); + ~TextCache(); + + int vertCount; + Vertex* verts; + GLubyte* colors; +}; diff --git a/src/resources/ResourceManager.cpp b/es-core/src/resources/ResourceManager.cpp similarity index 80% rename from src/resources/ResourceManager.cpp rename to es-core/src/resources/ResourceManager.cpp index 37ba8a8cd..b495c860f 100644 --- a/src/resources/ResourceManager.cpp +++ b/es-core/src/resources/ResourceManager.cpp @@ -1,6 +1,6 @@ #include "ResourceManager.h" -#include "../Log.h" -#include "../../data/Resources.h" +#include "Log.h" +#include "../data/Resources.h" #include #include @@ -9,6 +9,20 @@ namespace fs = boost::filesystem; auto array_deleter = [](unsigned char* p) { delete[] p; }; auto nop_deleter = [](unsigned char* p) { }; +std::shared_ptr ResourceManager::sInstance = nullptr; + +ResourceManager::ResourceManager() +{ +} + +std::shared_ptr& ResourceManager::getInstance() +{ + if(!sInstance) + sInstance = std::shared_ptr(new ResourceManager()); + + return sInstance; +} + const ResourceData ResourceManager::getFileData(const std::string& path) const { //check if its embedded @@ -69,10 +83,10 @@ void ResourceManager::unloadAll() { if(!iter->expired()) { - iter->lock()->unload(*this); + iter->lock()->unload(sInstance); iter++; }else{ - mReloadables.erase(iter++); + iter = mReloadables.erase(iter); } } } @@ -84,10 +98,10 @@ void ResourceManager::reloadAll() { if(!iter->expired()) { - iter->lock()->reload(*this); + iter->lock()->reload(sInstance); iter++; }else{ - mReloadables.erase(iter++); + iter = mReloadables.erase(iter); } } } diff --git a/src/resources/ResourceManager.h b/es-core/src/resources/ResourceManager.h similarity index 75% rename from src/resources/ResourceManager.h rename to es-core/src/resources/ResourceManager.h index ed1d04998..d9d4aa3b8 100644 --- a/src/resources/ResourceManager.h +++ b/es-core/src/resources/ResourceManager.h @@ -20,13 +20,15 @@ class ResourceManager; class IReloadable { public: - virtual void unload(const ResourceManager& rm) = 0; - virtual void reload(const ResourceManager& rm) = 0; + virtual void unload(std::shared_ptr& rm) = 0; + virtual void reload(std::shared_ptr& rm) = 0; }; class ResourceManager { public: + static std::shared_ptr& getInstance(); + void addReloadable(std::weak_ptr reloadable); void unloadAll(); @@ -36,6 +38,10 @@ public: bool fileExists(const std::string& path) const; private: + ResourceManager(); + + static std::shared_ptr sInstance; + ResourceData loadFile(const std::string& path) const; std::list< std::weak_ptr > mReloadables; diff --git a/es-core/src/resources/SVGResource.cpp b/es-core/src/resources/SVGResource.cpp new file mode 100644 index 000000000..1a4ea16fc --- /dev/null +++ b/es-core/src/resources/SVGResource.cpp @@ -0,0 +1,101 @@ +#include "SVGResource.h" +#include "nanosvg/nanosvg.h" +#include "nanosvg/nanosvgrast.h" +#include "Log.h" +#include "Util.h" +#include "ImageIO.h" + +#define DPI 96 + +SVGResource::SVGResource(const std::string& path, bool tile) : TextureResource(path, tile), mSVGImage(NULL) +{ + mLastWidth = 0; + mLastHeight = 0; +} + +SVGResource::~SVGResource() +{ + deinitSVG(); +} + +void SVGResource::unload(std::shared_ptr& rm) +{ + deinitSVG(); + TextureResource::unload(rm); +} + +void SVGResource::initFromMemory(const char* file, size_t length) +{ + deinit(); + deinitSVG(); + + // nsvgParse excepts a modifiable, null-terminated string + char* copy = (char*)malloc(length + 1); + assert(copy != NULL); + memcpy(copy, file, length); + copy[length] = '\0'; + + mSVGImage = nsvgParse(copy, "px", DPI); + free(copy); + + if(!mSVGImage) + { + LOG(LogError) << "Error parsing SVG image."; + return; + } + + if(mLastWidth && mLastHeight) + rasterizeAt(mLastWidth, mLastHeight); + else + rasterizeAt((size_t)round(mSVGImage->width), (size_t)round(mSVGImage->height)); +} + +void SVGResource::rasterizeAt(size_t width, size_t height) +{ + if(!mSVGImage || (width == 0 && height == 0)) + return; + + if(width == 0) + { + // auto scale width to keep aspect + width = (size_t)round((height / mSVGImage->height) * mSVGImage->width); + }else if(height == 0) + { + // auto scale height to keep aspect + height = (size_t)round((width / mSVGImage->width) * mSVGImage->height); + } + + if(width != (size_t)round(mSVGImage->width) && height != (size_t)round(mSVGImage->height)) + { + mLastWidth = width; + mLastHeight = height; + } + + unsigned char* imagePx = (unsigned char*)malloc(width * height * 4); + assert(imagePx != NULL); + + NSVGrasterizer* rast = nsvgCreateRasterizer(); + nsvgRasterize(rast, mSVGImage, 0, 0, height / mSVGImage->height, imagePx, width, height, width * 4); + nsvgDeleteRasterizer(rast); + + ImageIO::flipPixelsVert(imagePx, width, height); + + initFromPixels(imagePx, width, height); + free(imagePx); +} + +Eigen::Vector2f SVGResource::getSourceImageSize() const +{ + if(mSVGImage) + return Eigen::Vector2f(mSVGImage->width, mSVGImage->height); + + return Eigen::Vector2f::Zero(); +} + +void SVGResource::deinitSVG() +{ + if(mSVGImage) + nsvgDelete(mSVGImage); + + mSVGImage = NULL; +} diff --git a/es-core/src/resources/SVGResource.h b/es-core/src/resources/SVGResource.h new file mode 100644 index 000000000..87479c0cf --- /dev/null +++ b/es-core/src/resources/SVGResource.h @@ -0,0 +1,27 @@ +#pragma once + +#include "resources/TextureResource.h" + +struct NSVGimage; + +class SVGResource : public TextureResource +{ +public: + virtual ~SVGResource(); + + virtual void unload(std::shared_ptr& rm) override; + + virtual void initFromMemory(const char* image, size_t length) override; + + void rasterizeAt(size_t width, size_t height); + Eigen::Vector2f getSourceImageSize() const; + +protected: + friend TextureResource; + SVGResource(const std::string& path, bool tile); + void deinitSVG(); + + NSVGimage* mSVGImage; + size_t mLastWidth; + size_t mLastHeight; +}; diff --git a/es-core/src/resources/TextureResource.cpp b/es-core/src/resources/TextureResource.cpp new file mode 100644 index 000000000..e6657dcc2 --- /dev/null +++ b/es-core/src/resources/TextureResource.cpp @@ -0,0 +1,178 @@ +#include "resources/TextureResource.h" +#include "Log.h" +#include "platform.h" +#include GLHEADER +#include "ImageIO.h" +#include "Renderer.h" +#include "Util.h" +#include "resources/SVGResource.h" + +std::map< TextureResource::TextureKeyType, std::weak_ptr > TextureResource::sTextureMap; +std::list< std::weak_ptr > TextureResource::sTextureList; + +TextureResource::TextureResource(const std::string& path, bool tile) : + mTextureID(0), mPath(path), mTextureSize(Eigen::Vector2i::Zero()), mTile(tile) +{ +} + +TextureResource::~TextureResource() +{ + deinit(); +} + +void TextureResource::unload(std::shared_ptr& rm) +{ + deinit(); +} + +void TextureResource::reload(std::shared_ptr& rm) +{ + if(!mPath.empty()) + { + const ResourceData& data = rm->getFileData(mPath); + initFromMemory((const char*)data.ptr.get(), data.length); + } +} + +void TextureResource::initFromPixels(const unsigned char* dataRGBA, size_t width, size_t height) +{ + deinit(); + + assert(width > 0 && height > 0); + + //now for the openGL texture stuff + glGenTextures(1, &mTextureID); + glBindTexture(GL_TEXTURE_2D, mTextureID); + + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, dataRGBA); + + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + + const GLint wrapMode = mTile ? GL_REPEAT : GL_CLAMP_TO_EDGE; + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, wrapMode); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, wrapMode); + + mTextureSize << width, height; +} + +void TextureResource::initFromMemory(const char* data, size_t length) +{ + size_t width, height; + std::vector imageRGBA = ImageIO::loadFromMemoryRGBA32((const unsigned char*)(data), length, width, height); + + if(imageRGBA.size() == 0) + { + LOG(LogError) << "Could not initialize texture from memory, invalid data! (file path: " << mPath << ", data ptr: " << (size_t)data << ", reported size: " << length << ")"; + return; + } + + initFromPixels(imageRGBA.data(), width, height); +} + +void TextureResource::deinit() +{ + if(mTextureID != 0) + { + glDeleteTextures(1, &mTextureID); + mTextureID = 0; + } +} + +const Eigen::Vector2i& TextureResource::getSize() const +{ + return mTextureSize; +} + +bool TextureResource::isTiled() const +{ + return mTile; +} + +void TextureResource::bind() const +{ + if(mTextureID != 0) + glBindTexture(GL_TEXTURE_2D, mTextureID); + else + LOG(LogError) << "Tried to bind uninitialized texture!"; +} + + +std::shared_ptr TextureResource::get(const std::string& path, bool tile) +{ + std::shared_ptr& rm = ResourceManager::getInstance(); + + const std::string canonicalPath = getCanonicalPath(path); + + if(canonicalPath.empty()) + { + std::shared_ptr tex(new TextureResource("", tile)); + rm->addReloadable(tex); //make sure we get properly deinitialized even though we do nothing on reinitialization + return tex; + } + + TextureKeyType key(canonicalPath, tile); + auto foundTexture = sTextureMap.find(key); + if(foundTexture != sTextureMap.end()) + { + if(!foundTexture->second.expired()) + return foundTexture->second.lock(); + } + + // need to create it + std::shared_ptr tex; + + // is it an SVG? + if(key.first.substr(key.first.size() - 4, std::string::npos) == ".svg") + { + // probably + // don't add it to our map because 2 svgs might be rasterized at different sizes + tex = std::shared_ptr(new SVGResource(key.first, tile)); + sTextureList.push_back(tex); // add it to our list though + rm->addReloadable(tex); + tex->reload(rm); + return tex; + }else{ + // normal texture + tex = std::shared_ptr(new TextureResource(key.first, tile)); + sTextureMap[key] = std::weak_ptr(tex); + sTextureList.push_back(tex); + rm->addReloadable(tex); + tex->reload(ResourceManager::getInstance()); + return tex; + } +} + +bool TextureResource::isInitialized() const +{ + return mTextureID != 0; +} + +size_t TextureResource::getMemUsage() const +{ + if(!mTextureID || mTextureSize.x() == 0 || mTextureSize.y() == 0) + return 0; + + return mTextureSize.x() * mTextureSize.y() * 4; +} + +size_t TextureResource::getTotalMemUsage() +{ + size_t total = 0; + + auto it = sTextureList.begin(); + while(it != sTextureList.end()) + { + if((*it).expired()) + { + // remove expired textures from the list + it = sTextureList.erase(it); + continue; + } + + total += (*it).lock()->getMemUsage(); + it++; + } + + return total; +} diff --git a/es-core/src/resources/TextureResource.h b/es-core/src/resources/TextureResource.h new file mode 100644 index 000000000..811e71de3 --- /dev/null +++ b/es-core/src/resources/TextureResource.h @@ -0,0 +1,51 @@ +#pragma once + +#include "resources/ResourceManager.h" + +#include +#include +#include "platform.h" +#include GLHEADER + +// An OpenGL texture. +// Automatically recreates the texture with renderer deinit/reinit. +class TextureResource : public IReloadable +{ +public: + static std::shared_ptr get(const std::string& path, bool tile = false); + + virtual ~TextureResource(); + + virtual void unload(std::shared_ptr& rm) override; + virtual void reload(std::shared_ptr& rm) override; + + bool isInitialized() const; + bool isTiled() const; + const Eigen::Vector2i& getSize() const; + void bind() const; + + // Warning: will NOT correctly reinitialize when this texture is reloaded (e.g. ES starts/stops playing a game). + virtual void initFromMemory(const char* file, size_t length); + + // Warning: will NOT correctly reinitialize when this texture is reloaded (e.g. ES starts/stops playing a game). + void initFromPixels(const unsigned char* dataRGBA, size_t width, size_t height); + + size_t getMemUsage() const; // returns an approximation of the VRAM used by this texture (in bytes) + static size_t getTotalMemUsage(); // returns an approximation of total VRAM used by textures (in bytes) + +protected: + TextureResource(const std::string& path, bool tile); + void deinit(); + + Eigen::Vector2i mTextureSize; + const std::string mPath; + const bool mTile; + +private: + GLuint mTextureID; + + typedef std::pair TextureKeyType; + static std::map< TextureKeyType, std::weak_ptr > sTextureMap; // map of textures, used to prevent duplicate textures + + static std::list< std::weak_ptr > sTextureList; // list of all textures, used for memory approximations +}; diff --git a/external/CMakeLists.txt b/external/CMakeLists.txt new file mode 100644 index 000000000..9b09143ad --- /dev/null +++ b/external/CMakeLists.txt @@ -0,0 +1,5 @@ +# set up the external libraries that aren't popular enough to be found on most +# package managers are included with the project (in the 'external' folder) + +add_subdirectory("nanosvg") +add_subdirectory("pugixml") diff --git a/external/nanosvg/CMakeLists.txt b/external/nanosvg/CMakeLists.txt new file mode 100644 index 000000000..1a2538726 --- /dev/null +++ b/external/nanosvg/CMakeLists.txt @@ -0,0 +1,13 @@ +project("nanosvg") + +set(NSVG_HEADERS + ${CMAKE_CURRENT_SOURCE_DIR}/nanosvg.h + ${CMAKE_CURRENT_SOURCE_DIR}/nanosvgrast.h +) + +set(NSVG_SOURCES + ${CMAKE_CURRENT_SOURCE_DIR}/src/nanosvg_impl.cpp +) + +include_directories(${CMAKE_CURRENT_SOURCE_DIR}) +add_library(nanosvg STATIC ${NSVG_SOURCES} ${NSVG_HEADERS}) diff --git a/external/nanosvg/nanosvg.h b/external/nanosvg/nanosvg.h new file mode 100644 index 000000000..ad2ee5260 --- /dev/null +++ b/external/nanosvg/nanosvg.h @@ -0,0 +1,2538 @@ +/* + * Copyright (c) 2013-14 Mikko Mononen memon@inside.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, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + * The SVG parser is based on Anti-Graim Geometry 2.4 SVG example + * Copyright (C) 2002-2004 Maxim Shemanarev (McSeem) (http://www.antigrain.com/) + * + * Arc calculation code based on canvg (https://code.google.com/p/canvg/) + * + * Bounding box calculation based on http://blog.hackers-cafe.net/2009/06/how-to-calculate-bezier-curves-bounding.html + * + */ + +#ifndef NANOSVG_H +#define NANOSVG_H + +#ifdef __cplusplus +extern "C" { +#endif + +// NanoSVG is a simple stupid single-header-file SVG parse. The output of the parser is a list of cubic bezier shapes. +// +// The library suits well for anything from rendering scalable icons in your editor application to prototyping a game. +// +// NanoSVG supports a wide range of SVG features, but something may be missing, feel free to create a pull request! +// +// The shapes in the SVG images are transformed by the viewBox and converted to specified units. +// That is, you should get the same looking data as your designed in your favorite app. +// +// NanoSVG can return the paths in few different units. For example if you want to render an image, you may choose +// to get the paths in pixels, or if you are feeding the data into a CNC-cutter, you may want to use millimeters. +// +// The units passed to NanoVG should be one of: 'px', 'pt', 'pc' 'mm', 'cm', or 'in'. +// DPI (dots-per-inch) controls how the unit conversion is done. +// +// If you don't know or care about the units stuff, "px" and 96 should get you going. + + +/* Example Usage: + // Load + struct SNVGImage* image; + image = nsvgParseFromFile("test.svg", "px", 96); + printf("size: %f x %f\n", image->width, image->height); + // Use... + for (shape = image->shapes; shape != NULL; shape = shape->next) { + for (path = shape->paths; path != NULL; path = path->next) { + for (i = 0; i < path->npts-1; i += 3) { + float* p = &path->pts[i*2]; + drawCubicBez(p[0],p[1], p[2],p[3], p[4],p[5], p[6],p[7]); + } + } + } + // Delete + nsvgDelete(image); +*/ + +#define NSVG_PAINT_NONE 0 +#define NSVG_PAINT_COLOR 1 +#define NSVG_PAINT_LINEAR_GRADIENT 2 +#define NSVG_PAINT_RADIAL_GRADIENT 3 + +#define NSVG_SPREAD_PAD 0 +#define NSVG_SPREAD_REFLECT 1 +#define NSVG_SPREAD_REPEAT 2 + +struct NSVGgradientStop { + unsigned int color; + float offset; +}; + +struct NSVGgradient { + float xform[6]; + char spread; + float fx, fy; + int nstops; + struct NSVGgradientStop stops[1]; +}; + +struct NSVGpaint { + char type; + union { + unsigned int color; + struct NSVGgradient* gradient; + }; +}; + +struct NSVGpath +{ + float* pts; // Cubic bezier points: x0,y0, [cpx1,cpx1,cpx2,cpy2,x1,y1], ... + int npts; // Total number of bezier points. + char closed; // Flag indicating if shapes should be treated as closed. + float bounds[4]; // Tight bounding box of the shape [minx,miny,maxx,maxy]. + struct NSVGpath* next; // Pointer to next path, or NULL if last element. +}; + +struct NSVGshape +{ + struct NSVGpaint fill; // Fill paint + struct NSVGpaint stroke; // Stroke paint + float opacity; // Opacity of the shape. + float strokeWidth; // Stroke width (scaled) + float bounds[4]; // Tight bounding box of the shape [minx,miny,maxx,maxy]. + struct NSVGpath* paths; // Linked list of paths in the image. + struct NSVGshape* next; // Pointer to next shape, or NULL if last element. +}; + +struct NSVGimage +{ + float width; // Width of the image. + float height; // Height of the image. + struct NSVGshape* shapes; // Linked list of shapes in the image. +}; + +// Parses SVG file from a file, returns SVG image as paths. +struct NSVGimage* nsvgParseFromFile(const char* filename, const char* units, float dpi); + +// Parses SVG file from a null terminated string, returns SVG image as paths. +struct NSVGimage* nsvgParse(char* input, const char* units, float dpi); + +// Deletes list of paths. +void nsvgDelete(struct NSVGimage* image); + +#ifdef __cplusplus +}; +#endif + +#endif // NANOSVG_H + +#ifdef NANOSVG_IMPLEMENTATION + +#include +#include +#include + +#define NSVG_PI (3.14159265358979323846264338327f) +#define NSVG_KAPPA90 (0.5522847493f) // Lenght proportional to radius of a cubic bezier handle for 90deg arcs. + +#define NSVG_ALIGN_MIN 0 +#define NSVG_ALIGN_MID 1 +#define NSVG_ALIGN_MAX 2 +#define NSVG_ALIGN_NONE 0 +#define NSVG_ALIGN_MEET 1 +#define NSVG_ALIGN_SLICE 2 + +#define NSVG_RGB(r, g, b) (((unsigned int)r) | ((unsigned int)g << 8) | ((unsigned int)b << 16)) + +#ifdef _MSC_VER + #pragma warning (disable: 4996) // Switch off security warnings + #pragma warning (disable: 4100) // Switch off unreferenced formal parameter warnings + #ifdef __cplusplus + #define NSVG_INLINE inline + #else + #define NSVG_INLINE + #endif +#else + #define NSVG_INLINE inline +#endif + + +static int nsvg__isspace(char c) +{ + return strchr(" \t\n\v\f\r", c) != 0; +} + +static int nsvg__isdigit(char c) +{ + return strchr("0123456789", c) != 0; +} + +static int nsvg__isnum(char c) +{ + return strchr("0123456789+-.eE", c) != 0; +} + +static NSVG_INLINE float nsvg__minf(float a, float b) { return a < b ? a : b; } +static NSVG_INLINE float nsvg__maxf(float a, float b) { return a > b ? a : b; } + + +// Simple XML parser + +#define NSVG_XML_TAG 1 +#define NSVG_XML_CONTENT 2 +#define NSVG_XML_MAX_ATTRIBS 256 + +static void nsvg__parseContent(char* s, + void (*contentCb)(void* ud, const char* s), + void* ud) +{ + // Trim start white spaces + while (*s && nsvg__isspace(*s)) s++; + if (!*s) return; + + if (contentCb) + (*contentCb)(ud, s); +} + +static void nsvg__parseElement(char* s, + void (*startelCb)(void* ud, const char* el, const char** attr), + void (*endelCb)(void* ud, const char* el), + void* ud) +{ + const char* attr[NSVG_XML_MAX_ATTRIBS]; + int nattr = 0; + char* name; + int start = 0; + int end = 0; + + // Skip white space after the '<' + while (*s && nsvg__isspace(*s)) s++; + + // Check if the tag is end tag + if (*s == '/') { + s++; + end = 1; + } else { + start = 1; + } + + // Skip comments, data and preprocessor stuff. + if (!*s || *s == '?' || *s == '!') + return; + + // Get tag name + name = s; + while (*s && !nsvg__isspace(*s)) s++; + if (*s) { *s++ = '\0'; } + + // Get attribs + while (!end && *s && nattr < NSVG_XML_MAX_ATTRIBS-3) { + // Skip white space before the attrib name + while (*s && nsvg__isspace(*s)) s++; + if (!*s) break; + if (*s == '/') { + end = 1; + break; + } + attr[nattr++] = s; + // Find end of the attrib name. + while (*s && !nsvg__isspace(*s) && *s != '=') s++; + if (*s) { *s++ = '\0'; } + // Skip until the beginning of the value. + while (*s && *s != '\"') s++; + if (!*s) break; + s++; + // Store value and find the end of it. + attr[nattr++] = s; + while (*s && *s != '\"') s++; + if (*s) { *s++ = '\0'; } + } + + // List terminator + attr[nattr++] = 0; + attr[nattr++] = 0; + + // Call callbacks. + if (start && startelCb) + (*startelCb)(ud, name, attr); + if (end && endelCb) + (*endelCb)(ud, name); +} + +int nsvg__parseXML(char* input, + void (*startelCb)(void* ud, const char* el, const char** attr), + void (*endelCb)(void* ud, const char* el), + void (*contentCb)(void* ud, const char* s), + void* ud) +{ + char* s = input; + char* mark = s; + int state = NSVG_XML_CONTENT; + while (*s) { + if (*s == '<' && state == NSVG_XML_CONTENT) { + // Start of a tag + *s++ = '\0'; + nsvg__parseContent(mark, contentCb, ud); + mark = s; + state = NSVG_XML_TAG; + } else if (*s == '>' && state == NSVG_XML_TAG) { + // Start of a content or new tag. + *s++ = '\0'; + nsvg__parseElement(mark, startelCb, endelCb, ud); + mark = s; + state = NSVG_XML_CONTENT; + } else { + s++; + } + } + + return 1; +} + + +/* Simple SVG parser. */ + +#define NSVG_MAX_ATTR 128 + +#define NSVG_USER_SPACE 0 +#define NSVG_OBJECT_SPACE 1 + +struct NSVGgradientData +{ + char id[64]; + char ref[64]; + char type; + union { + struct { + float x1, y1, x2, y2; + } linear; + struct { + float cx, cy, r, fx, fy; + } radial; + }; + char spread; + char units; + float xform[6]; + int nstops; + struct NSVGgradientStop* stops; + struct NSVGgradientData* next; +}; + +struct NSVGattrib +{ + float xform[6]; + unsigned int fillColor; + unsigned int strokeColor; + float opacity; + float fillOpacity; + float strokeOpacity; + char fillGradient[64]; + char strokeGradient[64]; + float strokeWidth; + float fontSize; + unsigned int stopColor; + float stopOpacity; + float stopOffset; + char hasFill; + char hasStroke; + char visible; +}; + +struct NSVGparser +{ + struct NSVGattrib attr[NSVG_MAX_ATTR]; + int attrHead; + float* pts; + int npts; + int cpts; + struct NSVGpath* plist; + struct NSVGimage* image; + struct NSVGgradientData* gradients; + float viewMinx, viewMiny, viewWidth, viewHeight; + int alignX, alignY, alignType; + float dpi; + char pathFlag; + char defsFlag; +}; + +static void nsvg__xformIdentity(float* t) +{ + t[0] = 1.0f; t[1] = 0.0f; + t[2] = 0.0f; t[3] = 1.0f; + t[4] = 0.0f; t[5] = 0.0f; +} + +static void nsvg__xformSetTranslation(float* t, float tx, float ty) +{ + t[0] = 1.0f; t[1] = 0.0f; + t[2] = 0.0f; t[3] = 1.0f; + t[4] = tx; t[5] = ty; +} + +static void nsvg__xformSetScale(float* t, float sx, float sy) +{ + t[0] = sx; t[1] = 0.0f; + t[2] = 0.0f; t[3] = sy; + t[4] = 0.0f; t[5] = 0.0f; +} + +static void nsvg__xformSetSkewX(float* t, float a) +{ + t[0] = 1.0f; t[1] = 0.0f; + t[2] = tanf(a); t[3] = 1.0f; + t[4] = 0.0f; t[5] = 0.0f; +} + +static void nsvg__xformSetSkewY(float* t, float a) +{ + t[0] = 1.0f; t[1] = tanf(a); + t[2] = 0.0f; t[3] = 1.0f; + t[4] = 0.0f; t[5] = 0.0f; +} + +static void nsvg__xformSetRotation(float* t, float a) +{ + float cs = cosf(a), sn = sinf(a); + t[0] = cs; t[1] = sn; + t[2] = -sn; t[3] = cs; + t[4] = 0.0f; t[5] = 0.0f; +} + +static void nsvg__xformMultiply(float* t, float* s) +{ + float t0 = t[0] * s[0] + t[1] * s[2]; + float t2 = t[2] * s[0] + t[3] * s[2]; + float t4 = t[4] * s[0] + t[5] * s[2] + s[4]; + t[1] = t[0] * s[1] + t[1] * s[3]; + t[3] = t[2] * s[1] + t[3] * s[3]; + t[5] = t[4] * s[1] + t[5] * s[3] + s[5]; + t[0] = t0; + t[2] = t2; + t[4] = t4; +} + +static void nsvg__xformInverse(float* inv, float* t) +{ + double det = (double)t[0] * t[3] - (double)t[2] * t[1]; + if (det > -1e-6 && det < -1e-6) { + nsvg__xformIdentity(t); + return; + } + double invdet = 1.0 / det; + inv[0] = (float)(t[3] * invdet); + inv[2] = (float)(-t[2] * invdet); + inv[4] = (float)(((double)t[2] * t[5] - (double)t[3] * t[4]) * invdet); + inv[1] = (float)(-t[1] * invdet); + inv[3] = (float)(t[0] * invdet); + inv[5] = (float)(((double)t[1] * t[4] - (double)t[0] * t[5]) * invdet); +} + +static void nsvg__xformPremultiply(float* t, float* s) +{ + float s2[6]; + memcpy(s2, s, sizeof(float)*6); + nsvg__xformMultiply(s2, t); + memcpy(t, s2, sizeof(float)*6); +} + +static void nsvg__xformPoint(float* dx, float* dy, float x, float y, float* t) +{ + *dx = x*t[0] + y*t[2] + t[4]; + *dy = x*t[1] + y*t[3] + t[5]; +} + +static void nsvg__xformVec(float* dx, float* dy, float x, float y, float* t) +{ + *dx = x*t[0] + y*t[2]; + *dy = x*t[1] + y*t[3]; +} + +#define NSVG_EPSILON (1e-12) + +static int nsvg__ptInBounds(float* pt, float* bounds) +{ + return pt[0] >= bounds[0] && pt[0] <= bounds[2] && pt[1] >= bounds[1] && pt[1] <= bounds[3]; +} + + +static double nsvg__evalBezier(double t, double p0, double p1, double p2, double p3) +{ + float it = 1.0-t; + return it*it*it*p0 + 3.0*it*it*t*p1 + 3.0*it*t*t*p2 + t*t*t*p3; +} + +static void nsvg__curveBounds(float* bounds, float* curve) +{ + int i, j, count; + double roots[2], a, b, c, b2ac, t, v; + float* v0 = &curve[0]; + float* v1 = &curve[2]; + float* v2 = &curve[4]; + float* v3 = &curve[6]; + + // Start the bounding box by end points + bounds[0] = nsvg__minf(v0[0], v3[0]); + bounds[1] = nsvg__minf(v0[1], v3[1]); + bounds[2] = nsvg__maxf(v0[0], v3[0]); + bounds[3] = nsvg__maxf(v0[1], v3[1]); + + // Bezier curve fits inside the convex hull of it's control points. + // If control points are inside the bounds, we're done. + if (nsvg__ptInBounds(v1, bounds) && nsvg__ptInBounds(v2, bounds)) + return; + + // Add bezier curve inflection points in X and Y. + for (i = 0; i < 2; i++) { + a = -3.0 * v0[i] + 9.0 * v1[i] - 9.0 * v2[i] + 3.0 * v3[i]; + b = 6.0 * v0[i] - 12.0 * v1[i] + 6.0 * v2[i]; + c = 3.0 * v1[i] - 3.0 * v0[i]; + count = 0; + if (fabs(a) < NSVG_EPSILON) { + if (fabs(b) > NSVG_EPSILON) { + t = -c / b; + if (t > NSVG_EPSILON && t < 1.0-NSVG_EPSILON) + roots[count++] = t; + } + } else { + b2ac = b*b - 4.0*c*a; + if (b2ac > NSVG_EPSILON) { + t = (-b + sqrt(b2ac)) / (2.0 * a); + if (t > NSVG_EPSILON && t < 1.0-NSVG_EPSILON) + roots[count++] = t; + t = (-b - sqrt(b2ac)) / (2.0 * a); + if (t > NSVG_EPSILON && t < 1.0-NSVG_EPSILON) + roots[count++] = t; + } + } + for (j = 0; j < count; j++) { + v = nsvg__evalBezier(roots[j], v0[i], v1[i], v2[i], v3[i]); + bounds[0+i] = nsvg__minf(bounds[0+i], (float)v); + bounds[2+i] = nsvg__maxf(bounds[2+i], (float)v); + } + } +} + +static struct NSVGparser* nsvg__createParser() +{ + struct NSVGparser* p; + p = (struct NSVGparser*)malloc(sizeof(struct NSVGparser)); + if (p == NULL) goto error; + memset(p, 0, sizeof(struct NSVGparser)); + + p->image = (struct NSVGimage*)malloc(sizeof(struct NSVGimage)); + if (p->image == NULL) goto error; + memset(p->image, 0, sizeof(struct NSVGimage)); + + // Init style + nsvg__xformIdentity(p->attr[0].xform); + p->attr[0].fillColor = NSVG_RGB(0,0,0); + p->attr[0].strokeColor = NSVG_RGB(0,0,0); + p->attr[0].opacity = 1; + p->attr[0].fillOpacity = 1; + p->attr[0].strokeOpacity = 1; + p->attr[0].stopOpacity = 1; + p->attr[0].strokeWidth = 1; + p->attr[0].hasFill = 1; + p->attr[0].hasStroke = 0; + p->attr[0].visible = 1; + + return p; + +error: + if (p) { + if (p->image) free(p->image); + free(p); + } + return NULL; +} + +static void nsvg__deletePaths(struct NSVGpath* path) +{ + while (path) { + struct NSVGpath *next = path->next; + if (path->pts != NULL) + free(path->pts); + free(path); + path = next; + } +} + +static void nsvg__deletePaint(struct NSVGpaint* paint) +{ + if (paint->type == NSVG_PAINT_LINEAR_GRADIENT || paint->type == NSVG_PAINT_LINEAR_GRADIENT) + free(paint->gradient); +} + +static void nsvg__deleteGradientData(struct NSVGgradientData* grad) +{ + struct NSVGgradientData* next; + while (grad != NULL) { + next = grad->next; + free(grad->stops); + free(grad); + grad = next; + } +} + +static void nsvg__deleteParser(struct NSVGparser* p) +{ + if (p != NULL) { + nsvg__deletePaths(p->plist); + nsvg__deleteGradientData(p->gradients); + nsvgDelete(p->image); + free(p->pts); + free(p); + } +} + +static void nsvg__resetPath(struct NSVGparser* p) +{ + p->npts = 0; +} + +static void nsvg__addPoint(struct NSVGparser* p, float x, float y) +{ + if (p->npts+1 > p->cpts) { + p->cpts = p->cpts ? p->cpts*2 : 8; + p->pts = (float*)realloc(p->pts, p->cpts*2*sizeof(float)); + if (!p->pts) return; + } + p->pts[p->npts*2+0] = x; + p->pts[p->npts*2+1] = y; + p->npts++; +} + +static void nsvg__moveTo(struct NSVGparser* p, float x, float y) +{ + nsvg__addPoint(p, x, y); +} + +static void nsvg__lineTo(struct NSVGparser* p, float x, float y) +{ + float px,py, dx,dy; + if (p->npts > 0) { + px = p->pts[(p->npts-1)*2+0]; + py = p->pts[(p->npts-1)*2+1]; + dx = x - px; + dy = y - py; + nsvg__addPoint(p, px + dx/3.0f, py + dy/3.0f); + nsvg__addPoint(p, x - dx/3.0f, y - dy/3.0f); + nsvg__addPoint(p, x, y); + } +} + +static void nsvg__cubicBezTo(struct NSVGparser* p, float cpx1, float cpy1, float cpx2, float cpy2, float x, float y) +{ + nsvg__addPoint(p, cpx1, cpy1); + nsvg__addPoint(p, cpx2, cpy2); + nsvg__addPoint(p, x, y); +} + +static struct NSVGattrib* nsvg__getAttr(struct NSVGparser* p) +{ + return &p->attr[p->attrHead]; +} + +static void nsvg__pushAttr(struct NSVGparser* p) +{ + if (p->attrHead < NSVG_MAX_ATTR-1) { + p->attrHead++; + memcpy(&p->attr[p->attrHead], &p->attr[p->attrHead-1], sizeof(struct NSVGattrib)); + } +} + +static void nsvg__popAttr(struct NSVGparser* p) +{ + if (p->attrHead > 0) + p->attrHead--; +} + +static struct NSVGgradientData* nsvg__findGradientData(struct NSVGparser* p, const char* id) +{ + struct NSVGgradientData* grad = p->gradients; + while (grad) { + if (strcmp(grad->id, id) == 0) + return grad; + grad = grad->next; + } + return NULL; +} + +static struct NSVGgradient* nsvg__createGradient(struct NSVGparser* p, const char* id, const float* bounds, char* paintType) +{ + struct NSVGattrib* attr = nsvg__getAttr(p); + struct NSVGgradientData* data = NULL; + struct NSVGgradientData* ref = NULL; + struct NSVGgradientStop* stops = NULL; + struct NSVGgradient* grad; + float dx, dy, d; + int nstops = 0; + + data = nsvg__findGradientData(p, id); + if (data == NULL) return NULL; + + // TODO: use ref to fill in all unset values too. + ref = data; + while (ref != NULL) { + if (ref->stops != NULL) { + stops = ref->stops; + nstops = ref->nstops; + break; + } + ref = nsvg__findGradientData(p, ref->ref); + } + if (stops == NULL) return NULL; + + grad = (struct NSVGgradient*)malloc(sizeof(struct NSVGgradient) + sizeof(struct NSVGgradientStop)*(nstops-1)); + if (grad == NULL) return NULL; + + // TODO: handle data->units == NSVG_OBJECT_SPACE. + + if (data->type == NSVG_PAINT_LINEAR_GRADIENT) { + // Calculate transform aligned to the line + dx = data->linear.x2 - data->linear.x1; + dy = data->linear.y2 - data->linear.y1; + d = sqrtf(dx*dx + dy*dy); + grad->xform[0] = dy; grad->xform[1] = -dx; + grad->xform[2] = dx; grad->xform[3] = dy; + grad->xform[4] = data->linear.x1; grad->xform[5] = data->linear.y1; + } else { + // Calculate transform aligned to the circle + grad->xform[0] = data->radial.r; grad->xform[1] = 0; + grad->xform[2] = 0; grad->xform[3] = data->radial.r; + grad->xform[4] = data->radial.cx; grad->xform[5] = data->radial.cy; + grad->fx = data->radial.fx / data->radial.r; + grad->fy = data->radial.fy / data->radial.r; + } + + nsvg__xformMultiply(grad->xform, attr->xform); + nsvg__xformMultiply(grad->xform, data->xform); + + grad->spread = data->spread; + memcpy(grad->stops, stops, nstops*sizeof(struct NSVGgradientStop)); + grad->nstops = nstops; + + *paintType = data->type; + + return grad; +} + +static void nsvg__addShape(struct NSVGparser* p) +{ + struct NSVGattrib* attr = nsvg__getAttr(p); + float scale = 1.0f; + struct NSVGshape *shape, *cur, *prev; + struct NSVGpath* path; + + if (p->plist == NULL) + return; + + shape = (struct NSVGshape*)malloc(sizeof(struct NSVGshape)); + if (shape == NULL) goto error; + memset(shape, 0, sizeof(struct NSVGshape)); + + scale = nsvg__maxf(fabsf(attr->xform[0]), fabsf(attr->xform[3])); + shape->strokeWidth = attr->strokeWidth * scale; + shape->opacity = attr->opacity; + + shape->paths = p->plist; + p->plist = NULL; + + // Calculate shape bounds + shape->bounds[0] = shape->paths->bounds[0]; + shape->bounds[1] = shape->paths->bounds[1]; + shape->bounds[2] = shape->paths->bounds[2]; + shape->bounds[3] = shape->paths->bounds[3]; + for (path = shape->paths->next; path != NULL; path = path->next) { + shape->bounds[0] = nsvg__minf(shape->bounds[0], path->bounds[0]); + shape->bounds[1] = nsvg__minf(shape->bounds[1], path->bounds[1]); + shape->bounds[2] = nsvg__maxf(shape->bounds[2], path->bounds[2]); + shape->bounds[3] = nsvg__maxf(shape->bounds[3], path->bounds[3]); + } + + // Set fill + if (attr->hasFill == 0) { + shape->fill.type = NSVG_PAINT_NONE; + } else if (attr->hasFill == 1) { + shape->fill.type = NSVG_PAINT_COLOR; + shape->fill.color = attr->fillColor; + shape->fill.color |= (unsigned int)(attr->fillOpacity*255) << 24; + } else if (attr->hasFill == 2) { + shape->fill.gradient = nsvg__createGradient(p, attr->fillGradient, shape->bounds, &shape->fill.type); + if (shape->fill.gradient == NULL) { + shape->fill.type = NSVG_PAINT_NONE; + } + } + + // Set stroke + if (attr->hasStroke == 0) { + shape->stroke.type = NSVG_PAINT_NONE; + } else if (attr->hasStroke == 1) { + shape->stroke.type = NSVG_PAINT_COLOR; + shape->stroke.color = attr->strokeColor; + shape->stroke.color |= (unsigned int)(attr->strokeOpacity*255) << 24; + } else if (attr->hasStroke == 2) { + shape->stroke.gradient = nsvg__createGradient(p, attr->strokeGradient, shape->bounds, &shape->stroke.type); + if (shape->stroke.gradient == NULL) + shape->stroke.type = NSVG_PAINT_NONE; + } + + // Add to tail + prev = NULL; + cur = p->image->shapes; + while (cur != NULL) { + prev = cur; + cur = cur->next; + } + if (prev == NULL) + p->image->shapes = shape; + else + prev->next = shape; + + return; + +error: + if (shape) free(shape); +} + +static void nsvg__addPath(struct NSVGparser* p, char closed) +{ + struct NSVGattrib* attr = nsvg__getAttr(p); + struct NSVGpath* path = NULL; + float bounds[4]; + float* curve; + int i; + + if (p->npts == 0) + return; + + if (closed) + nsvg__lineTo(p, p->pts[0], p->pts[1]); + + path = (struct NSVGpath*)malloc(sizeof(struct NSVGpath)); + if (path == NULL) goto error; + memset(path, 0, sizeof(struct NSVGpath)); + + path->pts = (float*)malloc(p->npts*2*sizeof(float)); + if (path->pts == NULL) goto error; + path->closed = closed; + path->npts = p->npts; + + // Transform path. + for (i = 0; i < p->npts; ++i) + nsvg__xformPoint(&path->pts[i*2], &path->pts[i*2+1], p->pts[i*2], p->pts[i*2+1], attr->xform); + + // Find bounds + for (i = 0; i < path->npts-1; i += 3) { + curve = &path->pts[i*2]; + nsvg__curveBounds(bounds, curve); + if (i == 0) { + path->bounds[0] = bounds[0]; + path->bounds[1] = bounds[1]; + path->bounds[2] = bounds[2]; + path->bounds[3] = bounds[3]; + } else { + path->bounds[0] = nsvg__minf(path->bounds[0], bounds[0]); + path->bounds[1] = nsvg__minf(path->bounds[1], bounds[1]); + path->bounds[2] = nsvg__maxf(path->bounds[2], bounds[2]); + path->bounds[3] = nsvg__maxf(path->bounds[3], bounds[3]); + } + } + + path->next = p->plist; + p->plist = path; + + return; + +error: + if (path != NULL) { + if (path->pts != NULL) free(path->pts); + free(path); + } +} + +static const char* nsvg__getNextPathItem(const char* s, char* it) +{ + int i = 0; + it[0] = '\0'; + // Skip white spaces and commas + while (*s && (nsvg__isspace(*s) || *s == ',')) s++; + if (!*s) return s; + if (*s == '-' || *s == '+' || nsvg__isdigit(*s)) { + // sign + if (*s == '-' || *s == '+') { + if (i < 63) it[i++] = *s; + s++; + } + // integer part + while (*s && nsvg__isdigit(*s)) { + if (i < 63) it[i++] = *s; + s++; + } + if (*s == '.') { + // decimal point + if (i < 63) it[i++] = *s; + s++; + // fraction part + while (*s && nsvg__isdigit(*s)) { + if (i < 63) it[i++] = *s; + s++; + } + } + // exponent + if (*s == 'e' || *s == 'E') { + if (i < 63) it[i++] = *s; + s++; + if (*s == '-' || *s == '+') { + if (i < 63) it[i++] = *s; + s++; + } + while (*s && nsvg__isdigit(*s)) { + if (i < 63) it[i++] = *s; + s++; + } + } + it[i] = '\0'; + } else { + // Parse command + it[0] = *s++; + it[1] = '\0'; + return s; + } + + return s; +} + +static float nsvg__actualWidth(struct NSVGparser* p) +{ + return p->viewWidth; +} + +static float nsvg__actualHeight(struct NSVGparser* p) +{ + return p->viewHeight; +} + +static float nsvg__actualLength(struct NSVGparser* p) +{ + float w = nsvg__actualWidth(p), h = nsvg__actualHeight(p); + return sqrtf(w*w + h*h) / sqrtf(2.0f); +} + + +static unsigned int nsvg__parseColorHex(const char* str) +{ + unsigned int c = 0, r = 0, g = 0, b = 0; + int n = 0; + str++; // skip # + // Calculate number of characters. + while(str[n] && !nsvg__isspace(str[n])) + n++; + if (n == 6) { + sscanf(str, "%x", &c); + } else if (n == 3) { + sscanf(str, "%x", &c); + c = (c&0xf) | ((c&0xf0) << 4) | ((c&0xf00) << 8); + c |= c<<4; + } + r = (c >> 16) & 0xff; + g = (c >> 8) & 0xff; + b = c & 0xff; + return NSVG_RGB(r,g,b); +} + +static unsigned int nsvg__parseColorRGB(const char* str) +{ + int r = -1, g = -1, b = -1; + char s1[32]="", s2[32]=""; + sscanf(str + 4, "%d%[%%, \t]%d%[%%, \t]%d", &r, s1, &g, s2, &b); + if (strchr(s1, '%')) { + return NSVG_RGB((r*255)/100,(g*255)/100,(b*255)/100); + } else { + return NSVG_RGB(r,g,b); + } +} + +struct NSVGNamedColor { + const char* name; + unsigned int color; +}; + +struct NSVGNamedColor nsvg__colors[] = { + + { "red", NSVG_RGB(255, 0, 0) }, + { "green", NSVG_RGB( 0, 128, 0) }, + { "blue", NSVG_RGB( 0, 0, 255) }, + { "yellow", NSVG_RGB(255, 255, 0) }, + { "cyan", NSVG_RGB( 0, 255, 255) }, + { "magenta", NSVG_RGB(255, 0, 255) }, + { "black", NSVG_RGB( 0, 0, 0) }, + { "grey", NSVG_RGB(128, 128, 128) }, + { "gray", NSVG_RGB(128, 128, 128) }, + { "white", NSVG_RGB(255, 255, 255) }, + +#ifdef NANOSVG_ALL_COLOR_KEYWORDS + { "aliceblue", NSVG_RGB(240, 248, 255) }, + { "antiquewhite", NSVG_RGB(250, 235, 215) }, + { "aqua", NSVG_RGB( 0, 255, 255) }, + { "aquamarine", NSVG_RGB(127, 255, 212) }, + { "azure", NSVG_RGB(240, 255, 255) }, + { "beige", NSVG_RGB(245, 245, 220) }, + { "bisque", NSVG_RGB(255, 228, 196) }, + { "blanchedalmond", NSVG_RGB(255, 235, 205) }, + { "blueviolet", NSVG_RGB(138, 43, 226) }, + { "brown", NSVG_RGB(165, 42, 42) }, + { "burlywood", NSVG_RGB(222, 184, 135) }, + { "cadetblue", NSVG_RGB( 95, 158, 160) }, + { "chartreuse", NSVG_RGB(127, 255, 0) }, + { "chocolate", NSVG_RGB(210, 105, 30) }, + { "coral", NSVG_RGB(255, 127, 80) }, + { "cornflowerblue", NSVG_RGB(100, 149, 237) }, + { "cornsilk", NSVG_RGB(255, 248, 220) }, + { "crimson", NSVG_RGB(220, 20, 60) }, + { "darkblue", NSVG_RGB( 0, 0, 139) }, + { "darkcyan", NSVG_RGB( 0, 139, 139) }, + { "darkgoldenrod", NSVG_RGB(184, 134, 11) }, + { "darkgray", NSVG_RGB(169, 169, 169) }, + { "darkgreen", NSVG_RGB( 0, 100, 0) }, + { "darkgrey", NSVG_RGB(169, 169, 169) }, + { "darkkhaki", NSVG_RGB(189, 183, 107) }, + { "darkmagenta", NSVG_RGB(139, 0, 139) }, + { "darkolivegreen", NSVG_RGB( 85, 107, 47) }, + { "darkorange", NSVG_RGB(255, 140, 0) }, + { "darkorchid", NSVG_RGB(153, 50, 204) }, + { "darkred", NSVG_RGB(139, 0, 0) }, + { "darksalmon", NSVG_RGB(233, 150, 122) }, + { "darkseagreen", NSVG_RGB(143, 188, 143) }, + { "darkslateblue", NSVG_RGB( 72, 61, 139) }, + { "darkslategray", NSVG_RGB( 47, 79, 79) }, + { "darkslategrey", NSVG_RGB( 47, 79, 79) }, + { "darkturquoise", NSVG_RGB( 0, 206, 209) }, + { "darkviolet", NSVG_RGB(148, 0, 211) }, + { "deeppink", NSVG_RGB(255, 20, 147) }, + { "deepskyblue", NSVG_RGB( 0, 191, 255) }, + { "dimgray", NSVG_RGB(105, 105, 105) }, + { "dimgrey", NSVG_RGB(105, 105, 105) }, + { "dodgerblue", NSVG_RGB( 30, 144, 255) }, + { "firebrick", NSVG_RGB(178, 34, 34) }, + { "floralwhite", NSVG_RGB(255, 250, 240) }, + { "forestgreen", NSVG_RGB( 34, 139, 34) }, + { "fuchsia", NSVG_RGB(255, 0, 255) }, + { "gainsboro", NSVG_RGB(220, 220, 220) }, + { "ghostwhite", NSVG_RGB(248, 248, 255) }, + { "gold", NSVG_RGB(255, 215, 0) }, + { "goldenrod", NSVG_RGB(218, 165, 32) }, + { "greenyellow", NSVG_RGB(173, 255, 47) }, + { "honeydew", NSVG_RGB(240, 255, 240) }, + { "hotpink", NSVG_RGB(255, 105, 180) }, + { "indianred", NSVG_RGB(205, 92, 92) }, + { "indigo", NSVG_RGB( 75, 0, 130) }, + { "ivory", NSVG_RGB(255, 255, 240) }, + { "khaki", NSVG_RGB(240, 230, 140) }, + { "lavender", NSVG_RGB(230, 230, 250) }, + { "lavenderblush", NSVG_RGB(255, 240, 245) }, + { "lawngreen", NSVG_RGB(124, 252, 0) }, + { "lemonchiffon", NSVG_RGB(255, 250, 205) }, + { "lightblue", NSVG_RGB(173, 216, 230) }, + { "lightcoral", NSVG_RGB(240, 128, 128) }, + { "lightcyan", NSVG_RGB(224, 255, 255) }, + { "lightgoldenrodyellow", NSVG_RGB(250, 250, 210) }, + { "lightgray", NSVG_RGB(211, 211, 211) }, + { "lightgreen", NSVG_RGB(144, 238, 144) }, + { "lightgrey", NSVG_RGB(211, 211, 211) }, + { "lightpink", NSVG_RGB(255, 182, 193) }, + { "lightsalmon", NSVG_RGB(255, 160, 122) }, + { "lightseagreen", NSVG_RGB( 32, 178, 170) }, + { "lightskyblue", NSVG_RGB(135, 206, 250) }, + { "lightslategray", NSVG_RGB(119, 136, 153) }, + { "lightslategrey", NSVG_RGB(119, 136, 153) }, + { "lightsteelblue", NSVG_RGB(176, 196, 222) }, + { "lightyellow", NSVG_RGB(255, 255, 224) }, + { "lime", NSVG_RGB( 0, 255, 0) }, + { "limegreen", NSVG_RGB( 50, 205, 50) }, + { "linen", NSVG_RGB(250, 240, 230) }, + { "maroon", NSVG_RGB(128, 0, 0) }, + { "mediumaquamarine", NSVG_RGB(102, 205, 170) }, + { "mediumblue", NSVG_RGB( 0, 0, 205) }, + { "mediumorchid", NSVG_RGB(186, 85, 211) }, + { "mediumpurple", NSVG_RGB(147, 112, 219) }, + { "mediumseagreen", NSVG_RGB( 60, 179, 113) }, + { "mediumslateblue", NSVG_RGB(123, 104, 238) }, + { "mediumspringgreen", NSVG_RGB( 0, 250, 154) }, + { "mediumturquoise", NSVG_RGB( 72, 209, 204) }, + { "mediumvioletred", NSVG_RGB(199, 21, 133) }, + { "midnightblue", NSVG_RGB( 25, 25, 112) }, + { "mintcream", NSVG_RGB(245, 255, 250) }, + { "mistyrose", NSVG_RGB(255, 228, 225) }, + { "moccasin", NSVG_RGB(255, 228, 181) }, + { "navajowhite", NSVG_RGB(255, 222, 173) }, + { "navy", NSVG_RGB( 0, 0, 128) }, + { "oldlace", NSVG_RGB(253, 245, 230) }, + { "olive", NSVG_RGB(128, 128, 0) }, + { "olivedrab", NSVG_RGB(107, 142, 35) }, + { "orange", NSVG_RGB(255, 165, 0) }, + { "orangered", NSVG_RGB(255, 69, 0) }, + { "orchid", NSVG_RGB(218, 112, 214) }, + { "palegoldenrod", NSVG_RGB(238, 232, 170) }, + { "palegreen", NSVG_RGB(152, 251, 152) }, + { "paleturquoise", NSVG_RGB(175, 238, 238) }, + { "palevioletred", NSVG_RGB(219, 112, 147) }, + { "papayawhip", NSVG_RGB(255, 239, 213) }, + { "peachpuff", NSVG_RGB(255, 218, 185) }, + { "peru", NSVG_RGB(205, 133, 63) }, + { "pink", NSVG_RGB(255, 192, 203) }, + { "plum", NSVG_RGB(221, 160, 221) }, + { "powderblue", NSVG_RGB(176, 224, 230) }, + { "purple", NSVG_RGB(128, 0, 128) }, + { "rosybrown", NSVG_RGB(188, 143, 143) }, + { "royalblue", NSVG_RGB( 65, 105, 225) }, + { "saddlebrown", NSVG_RGB(139, 69, 19) }, + { "salmon", NSVG_RGB(250, 128, 114) }, + { "sandybrown", NSVG_RGB(244, 164, 96) }, + { "seagreen", NSVG_RGB( 46, 139, 87) }, + { "seashell", NSVG_RGB(255, 245, 238) }, + { "sienna", NSVG_RGB(160, 82, 45) }, + { "silver", NSVG_RGB(192, 192, 192) }, + { "skyblue", NSVG_RGB(135, 206, 235) }, + { "slateblue", NSVG_RGB(106, 90, 205) }, + { "slategray", NSVG_RGB(112, 128, 144) }, + { "slategrey", NSVG_RGB(112, 128, 144) }, + { "snow", NSVG_RGB(255, 250, 250) }, + { "springgreen", NSVG_RGB( 0, 255, 127) }, + { "steelblue", NSVG_RGB( 70, 130, 180) }, + { "tan", NSVG_RGB(210, 180, 140) }, + { "teal", NSVG_RGB( 0, 128, 128) }, + { "thistle", NSVG_RGB(216, 191, 216) }, + { "tomato", NSVG_RGB(255, 99, 71) }, + { "turquoise", NSVG_RGB( 64, 224, 208) }, + { "violet", NSVG_RGB(238, 130, 238) }, + { "wheat", NSVG_RGB(245, 222, 179) }, + { "whitesmoke", NSVG_RGB(245, 245, 245) }, + { "yellowgreen", NSVG_RGB(154, 205, 50) }, +#endif +}; + +static unsigned int nsvg__parseColorName(const char* str) +{ + int i, ncolors = sizeof(nsvg__colors) / sizeof(struct NSVGNamedColor); + + for (i = 0; i < ncolors; i++) { + if (strcmp(nsvg__colors[i].name, str) == 0) { + return nsvg__colors[i].color; + } + } + + return NSVG_RGB(128, 128, 128); +} + +static unsigned int nsvg__parseColor(const char* str) +{ + int len = 0; + while(*str == ' ') ++str; + len = strlen(str); + if (len >= 1 && *str == '#') + return nsvg__parseColorHex(str); + else if (len >= 4 && str[0] == 'r' && str[1] == 'g' && str[2] == 'b' && str[3] == '(') + return nsvg__parseColorRGB(str); + return nsvg__parseColorName(str); +} + +static float nsvg__convertToPixels(struct NSVGparser* p, float val, const char* units, int dir) +{ + struct NSVGattrib* attr; + + if (p != NULL) { + // Convert units to pixels. + if (units[0] == '\0') { + return val; + } else if (units[0] == 'p' && units[1] == 'x') { + return val; + } else if (units[0] == 'p' && units[1] == 't') { + return val / 72.0f * p->dpi; + } else if (units[0] == 'p' && units[1] == 'c') { + return val / 6.0f * p->dpi; + } else if (units[0] == 'm' && units[1] == 'm') { + return val / 25.4f * p->dpi; + } else if (units[0] == 'c' && units[1] == 'm') { + return val / 2.54f * p->dpi; + } else if (units[0] == 'i' && units[1] == 'n') { + return val * p->dpi; + } else if (units[0] == '%') { + if (p != NULL) { + attr = nsvg__getAttr(p); + if (dir == 0) + return (val/100.0f) * nsvg__actualWidth(p); + else if (dir == 1) + return (val/100.0f) * nsvg__actualHeight(p); + else if (dir == 2) + return (val/100.0f) * nsvg__actualLength(p); + } else { + return (val/100.0f); + } + } else if (units[0] == 'e' && units[1] == 'm') { + if (p != NULL) { + attr = nsvg__getAttr(p); + return val * attr->fontSize; + } + } else if (units[0] == 'e' && units[1] == 'x') { + if (p != NULL) { + attr = nsvg__getAttr(p); + return val * attr->fontSize * 0.52f; // x-height of Helvetica. + } + } + } else { + // Convert units to pixels. + if (units[0] == '\0') { + return val; + } else if (units[0] == 'p' && units[1] == 'x') { + return val; + } else if (units[0] == '%') { + return (val/100.0f); + } + } + return val; +} + +static float nsvg__parseFloat(struct NSVGparser* p, const char* str, int dir) +{ + float val = 0; + char units[32]=""; + sscanf(str, "%f%s", &val, units); + return nsvg__convertToPixels(p, val, units, dir); +} + +static int nsvg__parseTransformArgs(const char* str, float* args, int maxNa, int* na) +{ + const char* end; + const char* ptr; + + *na = 0; + ptr = str; + while (*ptr && *ptr != '(') ++ptr; + if (*ptr == 0) + return 1; + end = ptr; + while (*end && *end != ')') ++end; + if (*end == 0) + return 1; + + while (ptr < end) { + if (nsvg__isnum(*ptr)) { + if (*na >= maxNa) return 0; + args[(*na)++] = (float)atof(ptr); + while (ptr < end && nsvg__isnum(*ptr)) ++ptr; + } else { + ++ptr; + } + } + return (int)(end - str); +} + +static int nsvg__parseMatrix(float* xform, const char* str) +{ + float t[6]; + int na = 0; + int len = nsvg__parseTransformArgs(str, t, 6, &na); + if (na != 6) return len; + memcpy(xform, t, sizeof(float)*6); + return len; +} + +static int nsvg__parseTranslate(float* xform, const char* str) +{ + float args[2]; + float t[6]; + int na = 0; + int len = nsvg__parseTransformArgs(str, args, 2, &na); + if (na == 1) args[1] = 0.0; + nsvg__xformSetTranslation(t, args[0], args[1]); + memcpy(xform, t, sizeof(float)*6); + return len; +} + +static int nsvg__parseScale(float* xform, const char* str) +{ + float args[2]; + int na = 0; + float t[6]; + int len = nsvg__parseTransformArgs(str, args, 2, &na); + if (na == 1) args[1] = args[0]; + nsvg__xformSetScale(t, args[0], args[1]); + memcpy(xform, t, sizeof(float)*6); + return len; +} + +static int nsvg__parseSkewX(float* xform, const char* str) +{ + float args[1]; + int na = 0; + float t[6]; + int len = nsvg__parseTransformArgs(str, args, 1, &na); + nsvg__xformSetSkewX(t, args[0]/180.0f*NSVG_PI); + memcpy(xform, t, sizeof(float)*6); + return len; +} + +static int nsvg__parseSkewY(float* xform, const char* str) +{ + float args[1]; + int na = 0; + float t[6]; + int len = nsvg__parseTransformArgs(str, args, 1, &na); + nsvg__xformSetSkewY(t, args[0]/180.0f*NSVG_PI); + memcpy(xform, t, sizeof(float)*6); + return len; +} + +static int nsvg__parseRotate(float* xform, const char* str) +{ + float args[3]; + int na = 0; + float m[6]; + float t[6]; + int len = nsvg__parseTransformArgs(str, args, 3, &na); + if (na == 1) + args[1] = args[2] = 0.0f; + nsvg__xformIdentity(m); + + if (na > 1) { + nsvg__xformSetTranslation(t, -args[1], -args[2]); + nsvg__xformPremultiply(m, t); + } + + nsvg__xformSetRotation(t, args[0]/180.0f*NSVG_PI); + nsvg__xformPremultiply(m, t); + + if (na > 1) { + nsvg__xformSetTranslation(t, args[1], args[2]); + nsvg__xformPremultiply(m, t); + } + + memcpy(xform, m, sizeof(float)*6); + + return len; +} + +static void nsvg__parseTransform(float* xform, const char* str) +{ + float t[6]; + nsvg__xformIdentity(xform); + while (*str) + { + if (strncmp(str, "matrix", 6) == 0) + str += nsvg__parseMatrix(t, str); + else if (strncmp(str, "translate", 9) == 0) + str += nsvg__parseTranslate(t, str); + else if (strncmp(str, "scale", 5) == 0) + str += nsvg__parseScale(t, str); + else if (strncmp(str, "rotate", 6) == 0) + str += nsvg__parseRotate(t, str); + else if (strncmp(str, "skewX", 5) == 0) + str += nsvg__parseSkewX(t, str); + else if (strncmp(str, "skewY", 5) == 0) + str += nsvg__parseSkewY(t, str); + else{ + ++str; + continue; + } + + nsvg__xformPremultiply(xform, t); + } +} + +static void nsvg__parseUrl(char* id, const char* str) +{ + int i = 0; + str += 4; // "url("; + if (*str == '#') + str++; + while (i < 63 && *str != ')') { + id[i] = *str++; + i++; + } + id[i] = '\0'; +} + +static void nsvg__parseStyle(struct NSVGparser* p, const char* str); + +static int nsvg__parseAttr(struct NSVGparser* p, const char* name, const char* value) +{ + float xform[6]; + struct NSVGattrib* attr = nsvg__getAttr(p); + if (!attr) return 0; + + if (strcmp(name, "style") == 0) { + nsvg__parseStyle(p, value); + } else if (strcmp(name, "display") == 0) { + if (strcmp(value, "none") == 0) + attr->visible = 0; + else + attr->visible = 1; + } else if (strcmp(name, "fill") == 0) { + if (strcmp(value, "none") == 0) { + attr->hasFill = 0; + } else if (strncmp(value, "url(", 4) == 0) { + attr->hasFill = 2; + nsvg__parseUrl(attr->fillGradient, value); + } else { + attr->hasFill = 1; + attr->fillColor = nsvg__parseColor(value); + } + } else if (strcmp(name, "opacity") == 0) { + attr->opacity = nsvg__parseFloat(p, value, 2); + } else if (strcmp(name, "fill-opacity") == 0) { + attr->fillOpacity = nsvg__parseFloat(p, value, 2); + } else if (strcmp(name, "stroke") == 0) { + if (strcmp(value, "none") == 0) { + attr->hasStroke = 0; + } else if (strncmp(value, "url(", 4) == 0) { + attr->hasStroke = 2; + nsvg__parseUrl(attr->strokeGradient, value); + } else { + attr->hasStroke = 1; + attr->strokeColor = nsvg__parseColor(value); + } + } else if (strcmp(name, "stroke-width") == 0) { + attr->strokeWidth = nsvg__parseFloat(p, value, 2); + } else if (strcmp(name, "stroke-opacity") == 0) { + attr->strokeOpacity = nsvg__parseFloat(NULL, value, 2); + } else if (strcmp(name, "font-size") == 0) { + attr->fontSize = nsvg__parseFloat(p, value, 2); + } else if (strcmp(name, "transform") == 0) { + nsvg__parseTransform(xform, value); + nsvg__xformPremultiply(attr->xform, xform); + } else if (strcmp(name, "stop-color") == 0) { + attr->stopColor = nsvg__parseColor(value); + } else if (strcmp(name, "stop-opacity") == 0) { + attr->stopOpacity = nsvg__parseFloat(NULL, value, 2); + } else if (strcmp(name, "offset") == 0) { + attr->stopOffset = nsvg__parseFloat(NULL, value, 2); + } else { + return 0; + } + return 1; +} + +static int nsvg__parseNameValue(struct NSVGparser* p, const char* start, const char* end) +{ + const char* str; + const char* val; + char name[512]; + char value[512]; + int n; + + str = start; + while (str < end && *str != ':') ++str; + + val = str; + + // Right Trim + while (str > start && (*str == ':' || nsvg__isspace(*str))) --str; + ++str; + + n = (int)(str - start); + if (n > 511) n = 511; + if (n) memcpy(name, start, n); + name[n] = 0; + + while (val < end && (*val == ':' || nsvg__isspace(*val))) ++val; + + n = (int)(end - val); + if (n > 511) n = 511; + if (n) memcpy(value, val, n); + value[n] = 0; + + return nsvg__parseAttr(p, name, value); +} + +static void nsvg__parseStyle(struct NSVGparser* p, const char* str) +{ + const char* start; + const char* end; + + while (*str) { + // Left Trim + while(*str && nsvg__isspace(*str)) ++str; + start = str; + while(*str && *str != ';') ++str; + end = str; + + // Right Trim + while (end > start && (*end == ';' || nsvg__isspace(*end))) --end; + ++end; + + nsvg__parseNameValue(p, start, end); + if (*str) ++str; + } +} + +static void nsvg__parseAttribs(struct NSVGparser* p, const char** attr) +{ + int i; + for (i = 0; attr[i]; i += 2) + { + if (strcmp(attr[i], "style") == 0) + nsvg__parseStyle(p, attr[i + 1]); + else + nsvg__parseAttr(p, attr[i], attr[i + 1]); + } +} + +static int nsvg__getArgsPerElement(char cmd) +{ + switch (cmd) { + case 'v': + case 'V': + case 'h': + case 'H': + return 1; + case 'm': + case 'M': + case 'l': + case 'L': + case 't': + case 'T': + return 2; + case 'q': + case 'Q': + case 's': + case 'S': + return 4; + case 'c': + case 'C': + return 6; + case 'a': + case 'A': + return 7; + } + return 0; +} + +static void nsvg__pathMoveTo(struct NSVGparser* p, float* cpx, float* cpy, float* args, int rel) +{ + if (rel) { + *cpx += args[0]; + *cpy += args[1]; + } else { + *cpx = args[0]; + *cpy = args[1]; + } + nsvg__moveTo(p, *cpx, *cpy); +} + +static void nsvg__pathLineTo(struct NSVGparser* p, float* cpx, float* cpy, float* args, int rel) +{ + if (rel) { + *cpx += args[0]; + *cpy += args[1]; + } else { + *cpx = args[0]; + *cpy = args[1]; + } + nsvg__lineTo(p, *cpx, *cpy); +} + +static void nsvg__pathHLineTo(struct NSVGparser* p, float* cpx, float* cpy, float* args, int rel) +{ + if (rel) + *cpx += args[0]; + else + *cpx = args[0]; + nsvg__lineTo(p, *cpx, *cpy); +} + +static void nsvg__pathVLineTo(struct NSVGparser* p, float* cpx, float* cpy, float* args, int rel) +{ + if (rel) + *cpy += args[0]; + else + *cpy = args[0]; + nsvg__lineTo(p, *cpx, *cpy); +} + +static void nsvg__pathCubicBezTo(struct NSVGparser* p, float* cpx, float* cpy, + float* cpx2, float* cpy2, float* args, int rel) +{ + float x1, y1, x2, y2, cx1, cy1, cx2, cy2; + + x1 = *cpx; + y1 = *cpy; + if (rel) { + cx1 = *cpx + args[0]; + cy1 = *cpy + args[1]; + cx2 = *cpx + args[2]; + cy2 = *cpy + args[3]; + x2 = *cpx + args[4]; + y2 = *cpy + args[5]; + } else { + cx1 = args[0]; + cy1 = args[1]; + cx2 = args[2]; + cy2 = args[3]; + x2 = args[4]; + y2 = args[5]; + } + + nsvg__cubicBezTo(p, cx1,cy1, cx2,cy2, x2,y2); + + *cpx2 = cx2; + *cpy2 = cy2; + *cpx = x2; + *cpy = y2; +} + +static void nsvg__pathCubicBezShortTo(struct NSVGparser* p, float* cpx, float* cpy, + float* cpx2, float* cpy2, float* args, int rel) +{ + float x1, y1, x2, y2, cx1, cy1, cx2, cy2; + + x1 = *cpx; + y1 = *cpy; + if (rel) { + cx2 = *cpx + args[0]; + cy2 = *cpy + args[1]; + x2 = *cpx + args[2]; + y2 = *cpy + args[3]; + } else { + cx2 = args[0]; + cy2 = args[1]; + x2 = args[2]; + y2 = args[3]; + } + + cx1 = 2*x1 - *cpx2; + cy1 = 2*y1 - *cpy2; + + nsvg__cubicBezTo(p, cx1,cy1, cx2,cy2, x2,y2); + + *cpx2 = cx2; + *cpy2 = cy2; + *cpx = x2; + *cpy = y2; +} + +static void nsvg__pathQuadBezTo(struct NSVGparser* p, float* cpx, float* cpy, + float* cpx2, float* cpy2, float* args, int rel) +{ + float x1, y1, x2, y2, cx, cy; + float cx1, cy1, cx2, cy2; + + x1 = *cpx; + y1 = *cpy; + if (rel) { + cx = *cpx + args[0]; + cy = *cpy + args[1]; + x2 = *cpx + args[2]; + y2 = *cpy + args[3]; + } else { + cx = args[0]; + cy = args[1]; + x2 = args[2]; + y2 = args[3]; + } + + // Convert to cubix bezier + cx1 = x1 + 2.0f/3.0f*(cx - x1); + cy1 = y1 + 2.0f/3.0f*(cy - y1); + cx2 = x2 + 2.0f/3.0f*(cx - x2); + cy2 = y2 + 2.0f/3.0f*(cy - y2); + nsvg__cubicBezTo(p, cx1,cy1, cx2,cy2, x2,y2); + + *cpx2 = cx; + *cpy2 = cy; + *cpx = x2; + *cpy = y2; +} + +static void nsvg__pathQuadBezShortTo(struct NSVGparser* p, float* cpx, float* cpy, + float* cpx2, float* cpy2, float* args, int rel) +{ + float x1, y1, x2, y2, cx, cy; + float cx1, cy1, cx2, cy2; + + x1 = *cpx; + y1 = *cpy; + if (rel) { + x2 = *cpx + args[0]; + y2 = *cpy + args[1]; + } else { + x2 = args[0]; + y2 = args[1]; + } + + cx = 2*x1 - *cpx2; + cy = 2*y1 - *cpy2; + + // Convert to cubix bezier + cx1 = x1 + 2.0f/3.0f*(cx - x1); + cy1 = y1 + 2.0f/3.0f*(cy - y1); + cx2 = x2 + 2.0f/3.0f*(cx - x2); + cy2 = y2 + 2.0f/3.0f*(cy - y2); + nsvg__cubicBezTo(p, cx1,cy1, cx2,cy2, x2,y2); + + *cpx2 = cx; + *cpy2 = cy; + *cpx = x2; + *cpy = y2; +} + +static float nsvg__sqr(float x) { return x*x; } +static float nsvg__vmag(float x, float y) { return sqrtf(x*x + y*y); } + +static float nsvg__vecrat(float ux, float uy, float vx, float vy) +{ + return (ux*vx + uy*vy) / (nsvg__vmag(ux,uy) * nsvg__vmag(vx,vy)); +} + +static float nsvg__vecang(float ux, float uy, float vx, float vy) +{ + float r = nsvg__vecrat(ux,uy, vx,vy); + if (r < -1.0f) r = -1.0f; + if (r > 1.0f) r = 1.0f; + return ((ux*vy < uy*vx) ? -1.0f : 1.0f) * acosf(r); +} + +static void nsvg__pathArcTo(struct NSVGparser* p, float* cpx, float* cpy, float* args, int rel) +{ + // Ported from canvg (https://code.google.com/p/canvg/) + float rx, ry, rotx; + float x1, y1, x2, y2, cx, cy, dx, dy, d; + float x1p, y1p, cxp, cyp, s, sa, sb; + float ux, uy, vx, vy, a1, da; + float x, y, tanx, tany, a, px, py, ptanx, ptany, t[6]; + float sinrx, cosrx; + int fa, fs; + int i, ndivs; + float hda, kappa; + + rx = fabsf(args[0]); // y radius + ry = fabsf(args[1]); // x radius + rotx = args[2] / 180.0f * NSVG_PI; // x rotation engle + fa = fabsf(args[3]) > 1e-6 ? 1 : 0; // Large arc + fs = fabsf(args[4]) > 1e-6 ? 1 : 0; // Sweep direction + x1 = *cpx; // start point + y1 = *cpy; + if (rel) { // end point + x2 = *cpx + args[5]; + y2 = *cpy + args[6]; + } else { + x2 = args[5]; + y2 = args[6]; + } + + dx = x1 - x2; + dy = y1 - y2; + d = sqrtf(dx*dx + dy*dy); + if (d < 1e-6f || rx < 1e-6f || ry < 1e-6f) { + // The arc degenerates to a line + nsvg__lineTo(p, x2, y2); + *cpx = x2; + *cpy = y2; + return; + } + + sinrx = sinf(rotx); + cosrx = cosf(rotx); + + // Convert to center point parameterization. + // http://www.w3.org/TR/SVG11/implnote.html#ArcImplementationNotes + // 1) Compute x1', y1' + x1p = cosrx * dx / 2.0f + sinrx * dy / 2.0f; + y1p = -sinrx * dx / 2.0f + cosrx * dy / 2.0f; + d = nsvg__sqr(x1p)/nsvg__sqr(rx) + nsvg__sqr(y1p)/nsvg__sqr(ry); + if (d > 1) { + d = sqrtf(d); + rx *= d; + ry *= d; + } + // 2) Compute cx', cy' + s = 0.0f; + sa = nsvg__sqr(rx)*nsvg__sqr(ry) - nsvg__sqr(rx)*nsvg__sqr(y1p) - nsvg__sqr(ry)*nsvg__sqr(x1p); + sb = nsvg__sqr(rx)*nsvg__sqr(y1p) + nsvg__sqr(ry)*nsvg__sqr(x1p); + if (sa < 0.0f) sa = 0.0f; + if (sb > 0.0f) + s = sqrtf(sa / sb); + if (fa == fs) + s = -s; + cxp = s * rx * y1p / ry; + cyp = s * -ry * x1p / rx; + + // 3) Compute cx,cy from cx',cy' + cx = (x1 + x2)/2.0f + cosrx*cxp - sinrx*cyp; + cy = (y1 + y2)/2.0f + sinrx*cxp + cosrx*cyp; + + // 4) Calculate theta1, and delta theta. + ux = (x1p - cxp) / rx; + uy = (y1p - cyp) / ry; + vx = (-x1p - cxp) / rx; + vy = (-y1p - cyp) / ry; + a1 = nsvg__vecang(1.0f,0.0f, ux,uy); // Initial angle + da = nsvg__vecang(ux,uy, vx,vy); // Delta angle + +// if (vecrat(ux,uy,vx,vy) <= -1.0f) da = NSVG_PI; +// if (vecrat(ux,uy,vx,vy) >= 1.0f) da = 0; + + if (fa) { + // Choose large arc + if (da > 0.0f) + da = da - 2*NSVG_PI; + else + da = 2*NSVG_PI + da; + } + + // Approximate the arc using cubic spline segments. + t[0] = cosrx; t[1] = sinrx; + t[2] = -sinrx; t[3] = cosrx; + t[4] = cx; t[5] = cy; + + // Split arc into max 90 degree segments. + ndivs = (int)(fabsf(da) / (NSVG_PI*0.5f) + 0.5f); + hda = (da / (float)ndivs) / 2.0f; + kappa = fabsf(4.0f / 3.0f * (1.0f - cosf(hda)) / sinf(hda)); + if (da < 0.0f) + kappa = -kappa; + + for (i = 0; i <= ndivs; i++) { + a = a1 + da * (i/(float)ndivs); + dx = cosf(a); + dy = sinf(a); + nsvg__xformPoint(&x, &y, dx*rx, dy*ry, t); // position + nsvg__xformVec(&tanx, &tany, -dy*rx * kappa, dx*ry * kappa, t); // tangent + if (i > 0) + nsvg__cubicBezTo(p, px+ptanx,py+ptany, x-tanx, y-tany, x, y); + px = x; + py = y; + ptanx = tanx; + ptany = tany; + } + + *cpx = x2; + *cpy = y2; +} + +static void nsvg__parsePath(struct NSVGparser* p, const char** attr) +{ + const char* s = NULL; + char cmd; + float args[10]; + int nargs; + int rargs; + float cpx, cpy, cpx2, cpy2; + const char* tmp[4]; + char closedFlag; + int i; + char item[64]; + + for (i = 0; attr[i]; i += 2) { + if (strcmp(attr[i], "d") == 0) { + s = attr[i + 1]; + } else { + tmp[0] = attr[i]; + tmp[1] = attr[i + 1]; + tmp[2] = 0; + tmp[3] = 0; + nsvg__parseAttribs(p, tmp); + } + } + + if(s) + { + nsvg__resetPath(p); + cpx = 0; cpy = 0; + closedFlag = 0; + nargs = 0; + + while (*s) { + s = nsvg__getNextPathItem(s, item); + if (!*item) break; + if (nsvg__isnum(item[0])) { + if (nargs < 10) + args[nargs++] = (float)atof(item); + if (nargs >= rargs) { + switch (cmd) { + case 'm': + case 'M': + nsvg__pathMoveTo(p, &cpx, &cpy, args, cmd == 'm' ? 1 : 0); + // Moveto can be followed by multiple coordinate pairs, + // which should be treated as linetos. + cmd = (cmd =='m') ? 'l' : 'L'; + rargs = nsvg__getArgsPerElement(cmd); + break; + case 'l': + case 'L': + nsvg__pathLineTo(p, &cpx, &cpy, args, cmd == 'l' ? 1 : 0); + break; + case 'H': + case 'h': + nsvg__pathHLineTo(p, &cpx, &cpy, args, cmd == 'h' ? 1 : 0); + break; + case 'V': + case 'v': + nsvg__pathVLineTo(p, &cpx, &cpy, args, cmd == 'v' ? 1 : 0); + break; + case 'C': + case 'c': + nsvg__pathCubicBezTo(p, &cpx, &cpy, &cpx2, &cpy2, args, cmd == 'c' ? 1 : 0); + break; + case 'S': + case 's': + nsvg__pathCubicBezShortTo(p, &cpx, &cpy, &cpx2, &cpy2, args, cmd == 's' ? 1 : 0); + break; + case 'Q': + case 'q': + nsvg__pathQuadBezTo(p, &cpx, &cpy, &cpx2, &cpy2, args, cmd == 'q' ? 1 : 0); + break; + case 'T': + case 't': + nsvg__pathQuadBezShortTo(p, &cpx, &cpy, &cpx2, &cpy2, args, cmd == 's' ? 1 : 0); + break; + case 'A': + case 'a': + nsvg__pathArcTo(p, &cpx, &cpy, args, cmd == 'a' ? 1 : 0); + break; + default: + if (nargs >= 2) { + cpx = args[nargs-2]; + cpy = args[nargs-1]; + } + break; + } + nargs = 0; + } + } else { + cmd = item[0]; + rargs = nsvg__getArgsPerElement(cmd); + if (cmd == 'M' || cmd == 'm') { + // Commit path. + if (p->npts > 0) + nsvg__addPath(p, closedFlag); + // Start new subpath. + nsvg__resetPath(p); + closedFlag = 0; + nargs = 0; + } else if (cmd == 'Z' || cmd == 'z') { + closedFlag = 1; + // Commit path. + if (p->npts > 0) + nsvg__addPath(p, closedFlag); + // Start new subpath. + nsvg__resetPath(p); + closedFlag = 0; + nargs = 0; + } + } + } + // Commit path. + if (p->npts) + nsvg__addPath(p, closedFlag); + } + + nsvg__addShape(p); +} + +static void nsvg__parseRect(struct NSVGparser* p, const char** attr) +{ + float x = 0.0f; + float y = 0.0f; + float w = 0.0f; + float h = 0.0f; + float rx = -1.0f; // marks not set + float ry = -1.0f; + int i; + + for (i = 0; attr[i]; i += 2) { + if (!nsvg__parseAttr(p, attr[i], attr[i + 1])) { + if (strcmp(attr[i], "x") == 0) x = nsvg__parseFloat(p, attr[i+1], 0); + if (strcmp(attr[i], "y") == 0) y = nsvg__parseFloat(p, attr[i+1], 1); + if (strcmp(attr[i], "width") == 0) w = nsvg__parseFloat(p, attr[i+1], 0); + if (strcmp(attr[i], "height") == 0) h = nsvg__parseFloat(p, attr[i+1], 1); + if (strcmp(attr[i], "rx") == 0) rx = fabsf(nsvg__parseFloat(p, attr[i+1], 0)); + if (strcmp(attr[i], "ry") == 0) ry = fabsf(nsvg__parseFloat(p, attr[i+1], 1)); + } + } + + if (rx < 0.0f && ry > 0.0f) rx = ry; + if (ry < 0.0f && rx > 0.0f) ry = rx; + if (rx < 0.0f) rx = 0.0f; + if (ry < 0.0f) ry = 0.0f; + if (rx > w/2.0f) rx = w/2.0f; + if (ry > h/2.0f) ry = h/2.0f; + + if (w != 0.0f && h != 0.0f) { + nsvg__resetPath(p); + + if (rx < 0.00001f || ry < 0.0001f) { + nsvg__moveTo(p, x, y); + nsvg__lineTo(p, x+w, y); + nsvg__lineTo(p, x+w, y+h); + nsvg__lineTo(p, x, y+h); + } else { + // Rounded rectangle + nsvg__moveTo(p, x+rx, y); + nsvg__lineTo(p, x+w-rx, y); + nsvg__cubicBezTo(p, x+w-rx*(1-NSVG_KAPPA90), y, x+w, y+ry*(1-NSVG_KAPPA90), x+w, y+ry); + nsvg__lineTo(p, x+w, y+h-ry); + nsvg__cubicBezTo(p, x+w, y+h-ry*(1-NSVG_KAPPA90), x+w-rx*(1-NSVG_KAPPA90), y+h, x+w-rx, y+h); + nsvg__lineTo(p, x+rx, y+h); + nsvg__cubicBezTo(p, x+rx*(1-NSVG_KAPPA90), y+h, x, y+h-ry*(1-NSVG_KAPPA90), x, y+h-ry); + nsvg__lineTo(p, x, y+ry); + nsvg__cubicBezTo(p, x, y+ry*(1-NSVG_KAPPA90), x+rx*(1-NSVG_KAPPA90), y, x+rx, y); + } + + nsvg__addPath(p, 1); + + nsvg__addShape(p); + } +} + +static void nsvg__parseCircle(struct NSVGparser* p, const char** attr) +{ + float cx = 0.0f; + float cy = 0.0f; + float r = 0.0f; + int i; + + for (i = 0; attr[i]; i += 2) { + if (!nsvg__parseAttr(p, attr[i], attr[i + 1])) { + if (strcmp(attr[i], "cx") == 0) cx = nsvg__parseFloat(p, attr[i+1], 0); + if (strcmp(attr[i], "cy") == 0) cy = nsvg__parseFloat(p, attr[i+1], 1); + if (strcmp(attr[i], "r") == 0) r = fabsf(nsvg__parseFloat(p, attr[i+1], 2)); + } + } + + if (r > 0.0f) { + nsvg__resetPath(p); + + nsvg__moveTo(p, cx+r, cy); + nsvg__cubicBezTo(p, cx+r, cy+r*NSVG_KAPPA90, cx+r*NSVG_KAPPA90, cy+r, cx, cy+r); + nsvg__cubicBezTo(p, cx-r*NSVG_KAPPA90, cy+r, cx-r, cy+r*NSVG_KAPPA90, cx-r, cy); + nsvg__cubicBezTo(p, cx-r, cy-r*NSVG_KAPPA90, cx-r*NSVG_KAPPA90, cy-r, cx, cy-r); + nsvg__cubicBezTo(p, cx+r*NSVG_KAPPA90, cy-r, cx+r, cy-r*NSVG_KAPPA90, cx+r, cy); + + nsvg__addPath(p, 1); + + nsvg__addShape(p); + } +} + +static void nsvg__parseEllipse(struct NSVGparser* p, const char** attr) +{ + float cx = 0.0f; + float cy = 0.0f; + float rx = 0.0f; + float ry = 0.0f; + int i; + + for (i = 0; attr[i]; i += 2) { + if (!nsvg__parseAttr(p, attr[i], attr[i + 1])) { + if (strcmp(attr[i], "cx") == 0) cx = nsvg__parseFloat(p, attr[i+1], 0); + if (strcmp(attr[i], "cy") == 0) cy = nsvg__parseFloat(p, attr[i+1], 1); + if (strcmp(attr[i], "rx") == 0) rx = fabsf(nsvg__parseFloat(p, attr[i+1], 0)); + if (strcmp(attr[i], "ry") == 0) ry = fabsf(nsvg__parseFloat(p, attr[i+1], 1)); + } + } + + if (rx > 0.0f && ry > 0.0f) { + + nsvg__resetPath(p); + + nsvg__moveTo(p, cx+rx, cy); + nsvg__cubicBezTo(p, cx+rx, cy+ry*NSVG_KAPPA90, cx+rx*NSVG_KAPPA90, cy+ry, cx, cy+ry); + nsvg__cubicBezTo(p, cx-rx*NSVG_KAPPA90, cy+ry, cx-rx, cy+ry*NSVG_KAPPA90, cx-rx, cy); + nsvg__cubicBezTo(p, cx-rx, cy-ry*NSVG_KAPPA90, cx-rx*NSVG_KAPPA90, cy-ry, cx, cy-ry); + nsvg__cubicBezTo(p, cx+rx*NSVG_KAPPA90, cy-ry, cx+rx, cy-ry*NSVG_KAPPA90, cx+rx, cy); + + nsvg__addPath(p, 1); + + nsvg__addShape(p); + } +} + +static void nsvg__parseLine(struct NSVGparser* p, const char** attr) +{ + float x1 = 0.0; + float y1 = 0.0; + float x2 = 0.0; + float y2 = 0.0; + int i; + + for (i = 0; attr[i]; i += 2) { + if (!nsvg__parseAttr(p, attr[i], attr[i + 1])) { + if (strcmp(attr[i], "x1") == 0) x1 = nsvg__parseFloat(p, attr[i + 1], 0); + if (strcmp(attr[i], "y1") == 0) y1 = nsvg__parseFloat(p, attr[i + 1], 1); + if (strcmp(attr[i], "x2") == 0) x2 = nsvg__parseFloat(p, attr[i + 1], 0); + if (strcmp(attr[i], "y2") == 0) y2 = nsvg__parseFloat(p, attr[i + 1], 1); + } + } + + nsvg__resetPath(p); + + nsvg__moveTo(p, x1, y1); + nsvg__lineTo(p, x2, y2); + + nsvg__addPath(p, 0); + + nsvg__addShape(p); +} + +static void nsvg__parsePoly(struct NSVGparser* p, const char** attr, int closeFlag) +{ + int i; + const char* s; + float args[2]; + int nargs, npts = 0; + char item[64]; + + nsvg__resetPath(p); + + for (i = 0; attr[i]; i += 2) { + if (!nsvg__parseAttr(p, attr[i], attr[i + 1])) { + if (strcmp(attr[i], "points") == 0) { + s = attr[i + 1]; + nargs = 0; + while (*s) { + s = nsvg__getNextPathItem(s, item); + args[nargs++] = (float)atof(item); + if (nargs >= 2) { + if (npts == 0) + nsvg__moveTo(p, args[0], args[1]); + else + nsvg__lineTo(p, args[0], args[1]); + nargs = 0; + npts++; + } + } + } + } + } + + nsvg__addPath(p, (char)closeFlag); + + nsvg__addShape(p); +} + +static void nsvg__parseSVG(struct NSVGparser* p, const char** attr) +{ + int i; + for (i = 0; attr[i]; i += 2) { + if (!nsvg__parseAttr(p, attr[i], attr[i + 1])) { + if (strcmp(attr[i], "width") == 0) { + p->image->width = nsvg__parseFloat(p, attr[i + 1], 0); + } else if (strcmp(attr[i], "height") == 0) { + p->image->height = nsvg__parseFloat(p, attr[i + 1], 1); + } else if (strcmp(attr[i], "viewBox") == 0) { + sscanf(attr[i + 1], "%f%*[%%, \t]%f%*[%%, \t]%f%*[%%, \t]%f", &p->viewMinx, &p->viewMiny, &p->viewWidth, &p->viewHeight); + } else if (strcmp(attr[i], "preserveAspectRatio") == 0) { + if (strstr(attr[i + 1], "none") != 0) { + // No uniform scaling + p->alignType = NSVG_ALIGN_NONE; + } else { + // Parse X align + if (strstr(attr[i + 1], "xMin") != 0) + p->alignX = NSVG_ALIGN_MIN; + else if (strstr(attr[i + 1], "xMid") != 0) + p->alignX = NSVG_ALIGN_MID; + else if (strstr(attr[i + 1], "xMax") != 0) + p->alignX = NSVG_ALIGN_MAX; + // Parse X align + if (strstr(attr[i + 1], "yMin") != 0) + p->alignY = NSVG_ALIGN_MIN; + else if (strstr(attr[i + 1], "yMid") != 0) + p->alignY = NSVG_ALIGN_MID; + else if (strstr(attr[i + 1], "yMax") != 0) + p->alignY = NSVG_ALIGN_MAX; + // Parse meet/slice + p->alignType = NSVG_ALIGN_MEET; + if (strstr(attr[i + 1], "slice") != 0) + p->alignType = NSVG_ALIGN_SLICE; + } + } + } + } +} + +static void nsvg__parseGradient(struct NSVGparser* p, const char** attr, char type) +{ + int i; + struct NSVGgradientData* grad = (struct NSVGgradientData*)malloc(sizeof(struct NSVGgradientData)); + if (grad == NULL) return; + memset(grad, 0, sizeof(struct NSVGgradientData)); + + grad->type = type; + nsvg__xformIdentity(grad->xform); + + // TODO: does not handle percent and objectBoundingBox correctly yet. + for (i = 0; attr[i]; i += 2) { + if (!nsvg__parseAttr(p, attr[i], attr[i + 1])) { + if (strcmp(attr[i], "gradientUnits") == 0) { + if (strcmp(attr[i+1], "objectBoundingBox") == 0) + grad->units = NSVG_OBJECT_SPACE; + else + grad->units = NSVG_USER_SPACE; + } else if (strcmp(attr[i], "gradientTransform") == 0) { + nsvg__parseTransform(grad->xform, attr[i + 1]); + } else if (strcmp(attr[i], "cx") == 0) { + grad->radial.cx = nsvg__parseFloat(p, attr[i + 1], 0); + } else if (strcmp(attr[i], "cy") == 0) { + grad->radial.cy = nsvg__parseFloat(p, attr[i + 1], 1); + } else if (strcmp(attr[i], "r") == 0) { + grad->radial.r = nsvg__parseFloat(p, attr[i + 1], 2); + } else if (strcmp(attr[i], "fx") == 0) { + grad->radial.fx = nsvg__parseFloat(p, attr[i + 1], 0); + } else if (strcmp(attr[i], "fy") == 0) { + grad->radial.fy = nsvg__parseFloat(p, attr[i + 1], 1); + } else if (strcmp(attr[i], "x1") == 0) { + grad->linear.x1 = nsvg__parseFloat(p, attr[i + 1], 0); + } else if (strcmp(attr[i], "y1") == 0) { + grad->linear.y1 = nsvg__parseFloat(p, attr[i + 1], 1); + } else if (strcmp(attr[i], "x2") == 0) { + grad->linear.x2 = nsvg__parseFloat(p, attr[i + 1], 0); + } else if (strcmp(attr[i], "y2") == 0) { + grad->linear.y2 = nsvg__parseFloat(p, attr[i + 1], 1); + } else if (strcmp(attr[i], "spreadMethod") == 0) { + if (strcmp(attr[i+1], "pad") == 0) + grad->spread = NSVG_SPREAD_PAD; + else if (strcmp(attr[i+1], "reflect") == 0) + grad->spread = NSVG_SPREAD_REFLECT; + else if (strcmp(attr[i+1], "repeat") == 0) + grad->spread = NSVG_SPREAD_REPEAT; + } else if (strcmp(attr[i], "xlink:href") == 0) { + strncpy(grad->ref, attr[i+1], 63); + grad->ref[63] = '\0'; + } else if (strcmp(attr[i], "id") == 0) { + strncpy(grad->id, attr[i+1], 63); + grad->id[63] = '\0'; + } + } + } + + grad->next = p->gradients; + p->gradients = grad; +} + +static void nsvg__parseGradientStop(struct NSVGparser* p, const char** attr) +{ + struct NSVGattrib* curAttr = nsvg__getAttr(p); + struct NSVGgradientData* grad; + struct NSVGgradientStop* stop; + int i, idx; + + curAttr->stopOffset = 0; + curAttr->stopColor = 0; + curAttr->stopOpacity = 1.0f; + + for (i = 0; attr[i]; i += 2) { + nsvg__parseAttr(p, attr[i], attr[i + 1]); + } + + // Add stop to the last gradient. + grad = p->gradients; + if (grad == NULL) return; + + grad->nstops++; + grad->stops = (struct NSVGgradientStop*)realloc(grad->stops, sizeof(struct NSVGgradientStop)*grad->nstops); + if (grad->stops == NULL) return; + + // Insert + idx = grad->nstops-1; + for (i = 0; i < grad->nstops-1; i++) { + if (curAttr->stopOffset < grad->stops[i].offset) { + idx = i; + break; + } + } + if (idx != grad->nstops-1) { + for (i = grad->nstops-1; i > idx; i--) + grad->stops[i] = grad->stops[i-1]; + } + + stop = &grad->stops[idx]; + stop->color = curAttr->stopColor; + stop->color |= (unsigned int)(curAttr->stopOpacity*255) << 24; + stop->offset = curAttr->stopOffset; +} + +static void nsvg__startElement(void* ud, const char* el, const char** attr) +{ + struct NSVGparser* p = (struct NSVGparser*)ud; + + if (p->defsFlag) { + // Skip everything but gradients in defs + if (strcmp(el, "linearGradient") == 0) { + nsvg__parseGradient(p, attr, NSVG_PAINT_LINEAR_GRADIENT); + } else if (strcmp(el, "radialGradient") == 0) { + nsvg__parseGradient(p, attr, NSVG_PAINT_RADIAL_GRADIENT); + } else if (strcmp(el, "stop") == 0) { + nsvg__parseGradientStop(p, attr); + } + return; + } + + if (strcmp(el, "g") == 0) { + nsvg__pushAttr(p); + nsvg__parseAttribs(p, attr); + } else if (strcmp(el, "path") == 0) { + if (p->pathFlag) // Do not allow nested paths. + return; + nsvg__pushAttr(p); + nsvg__parsePath(p, attr); + nsvg__popAttr(p); + } else if (strcmp(el, "rect") == 0) { + nsvg__pushAttr(p); + nsvg__parseRect(p, attr); + nsvg__popAttr(p); + } else if (strcmp(el, "circle") == 0) { + nsvg__pushAttr(p); + nsvg__parseCircle(p, attr); + nsvg__popAttr(p); + } else if (strcmp(el, "ellipse") == 0) { + nsvg__pushAttr(p); + nsvg__parseEllipse(p, attr); + nsvg__popAttr(p); + } else if (strcmp(el, "line") == 0) { + nsvg__pushAttr(p); + nsvg__parseLine(p, attr); + nsvg__popAttr(p); + } else if (strcmp(el, "polyline") == 0) { + nsvg__pushAttr(p); + nsvg__parsePoly(p, attr, 0); + nsvg__popAttr(p); + } else if (strcmp(el, "polygon") == 0) { + nsvg__pushAttr(p); + nsvg__parsePoly(p, attr, 1); + nsvg__popAttr(p); + } else if (strcmp(el, "linearGradient") == 0) { + nsvg__parseGradient(p, attr, NSVG_PAINT_LINEAR_GRADIENT); + } else if (strcmp(el, "radialGradient") == 0) { + nsvg__parseGradient(p, attr, NSVG_PAINT_RADIAL_GRADIENT); + } else if (strcmp(el, "stop") == 0) { + nsvg__parseGradientStop(p, attr); + } else if (strcmp(el, "defs") == 0) { + p->defsFlag = 1; + } else if (strcmp(el, "svg") == 0) { + nsvg__parseSVG(p, attr); + } +} + +static void nsvg__endElement(void* ud, const char* el) +{ + struct NSVGparser* p = (struct NSVGparser*)ud; + + if (strcmp(el, "g") == 0) { + nsvg__popAttr(p); + } else if (strcmp(el, "path") == 0) { + p->pathFlag = 0; + } else if (strcmp(el, "defs") == 0) { + p->defsFlag = 0; + } +} + +static void nsvg__content(void* ud, const char* s) +{ + // empty +} + +static void nsvg__imageBounds(struct NSVGparser* p, float* bounds) +{ + struct NSVGshape* shape; + shape = p->image->shapes; + bounds[0] = shape->bounds[0]; + bounds[1] = shape->bounds[1]; + bounds[2] = shape->bounds[2]; + bounds[3] = shape->bounds[3]; + for (shape = shape->next; shape != NULL; shape = shape->next) { + bounds[0] = nsvg__minf(bounds[0], shape->bounds[0]); + bounds[1] = nsvg__minf(bounds[1], shape->bounds[1]); + bounds[2] = nsvg__maxf(bounds[2], shape->bounds[2]); + bounds[3] = nsvg__maxf(bounds[3], shape->bounds[3]); + } +} + +static float nsvg__viewAlign(float content, float container, int type) +{ + if (type == NSVG_ALIGN_MIN) + return 0; + else if (type == NSVG_ALIGN_MAX) + return container - content; + // mid + return (container - content) * 0.5f; +} + +static void nsvg__scaleGradient(struct NSVGgradient* grad, float tx, float ty, float sx, float sy) +{ + grad->xform[0] *= sx; + grad->xform[1] *= sx; + grad->xform[2] *= sy; + grad->xform[3] *= sy; + grad->xform[4] += tx*sx; + grad->xform[5] += ty*sx; +} + +static void nsvg__scaleToViewbox(struct NSVGparser* p, const char* units) +{ + struct NSVGshape* shape; + struct NSVGpath* path; + float tx, ty, sx, sy, us, bounds[4], t[6]; + int i; + float* pt; + + // Guess image size if not set completely. + nsvg__imageBounds(p, bounds); + if (p->viewWidth == 0) { + if (p->image->width > 0) + p->viewWidth = p->image->width; + else + p->viewWidth = bounds[2]; + } + if (p->viewHeight == 0) { + if (p->image->height > 0) + p->viewHeight = p->image->height; + else + p->viewHeight = bounds[3]; + } + if (p->image->width == 0) + p->image->width = p->viewWidth; + if (p->image->height == 0) + p->image->height = p->viewHeight; + + tx = -p->viewMinx; + ty = -p->viewMiny; + sx = p->viewWidth > 0 ? p->image->width / p->viewWidth : 0; + sy = p->viewHeight > 0 ? p->image->height / p->viewHeight : 0; + us = 1.0f / nsvg__convertToPixels(p, 1.0f, units, 0); + + // Fix aspect ratio + if (p->alignType == NSVG_ALIGN_MEET) { + // fit whole image into viewbox + sx = sy = nsvg__minf(sx, sy); + tx += nsvg__viewAlign(p->viewWidth*sx, p->image->width, p->alignX) / sx; + ty += nsvg__viewAlign(p->viewHeight*sy, p->image->height, p->alignY) / sy; + } else if (p->alignType == NSVG_ALIGN_SLICE) { + // fill whole viewbox with image + sx = sy = nsvg__maxf(sx, sy); + tx += nsvg__viewAlign(p->viewWidth*sx, p->image->width, p->alignX) / sx; + ty += nsvg__viewAlign(p->viewHeight*sy, p->image->height, p->alignY) / sy; + } + + // Transform + sx *= us; + sy *= us; + for (shape = p->image->shapes; shape != NULL; shape = shape->next) { + shape->bounds[0] = (shape->bounds[0] + tx) * sx; + shape->bounds[1] = (shape->bounds[1] + ty) * sy; + shape->bounds[2] = (shape->bounds[2] + tx) * sx; + shape->bounds[3] = (shape->bounds[3] + ty) * sy; + for (path = shape->paths; path != NULL; path = path->next) { + path->bounds[0] = (path->bounds[0] + tx) * sx; + path->bounds[1] = (path->bounds[1] + ty) * sy; + path->bounds[2] = (path->bounds[2] + tx) * sx; + path->bounds[3] = (path->bounds[3] + ty) * sy; + for (i =0; i < path->npts; i++) { + pt = &path->pts[i*2]; + pt[0] = (pt[0] + tx) * sx; + pt[1] = (pt[1] + ty) * sy; + } + } + + if (shape->fill.type == NSVG_PAINT_LINEAR_GRADIENT || shape->fill.type == NSVG_PAINT_RADIAL_GRADIENT) { + nsvg__scaleGradient(shape->fill.gradient, tx,ty, sx,sy); + memcpy(t, shape->fill.gradient->xform, sizeof(float)*6); + nsvg__xformInverse(shape->fill.gradient->xform, t); + } + if (shape->stroke.type == NSVG_PAINT_LINEAR_GRADIENT || shape->stroke.type == NSVG_PAINT_RADIAL_GRADIENT) { + nsvg__scaleGradient(shape->stroke.gradient, tx,ty, sx,sy); + memcpy(t, shape->stroke.gradient->xform, sizeof(float)*6); + nsvg__xformInverse(shape->stroke.gradient->xform, t); + } + + } + + sx *= us; + sy *= us; +} + +struct NSVGimage* nsvgParse(char* input, const char* units, float dpi) +{ + struct NSVGparser* p; + struct NSVGimage* ret = 0; + + p = nsvg__createParser(); + if (p == NULL) { + return NULL; + } + p->dpi = dpi; + + nsvg__parseXML(input, nsvg__startElement, nsvg__endElement, nsvg__content, p); + + // Scale to viewBox + nsvg__scaleToViewbox(p, units); + + ret = p->image; + p->image = NULL; + + nsvg__deleteParser(p); + + return ret; +} + +struct NSVGimage* nsvgParseFromFile(const char* filename, const char* units, float dpi) +{ + FILE* fp = NULL; + int size; + char* data = NULL; + struct NSVGimage* image = NULL; + + fp = fopen(filename, "rb"); + if (!fp) goto error; + fseek(fp, 0, SEEK_END); + size = ftell(fp); + fseek(fp, 0, SEEK_SET); + data = (char*)malloc(size+1); + if (data == NULL) goto error; + fread(data, size, 1, fp); + data[size] = '\0'; // Must be null terminated. + fclose(fp); + image = nsvgParse(data, units, dpi); + free(data); + + return image; + +error: + if (fp) fclose(fp); + if (data) free(data); + if (image) nsvgDelete(image); + return NULL; +} + +void nsvgDelete(struct NSVGimage* image) +{ + struct NSVGshape *snext, *shape; + if (image == NULL) return; + shape = image->shapes; + while (shape != NULL) { + snext = shape->next; + nsvg__deletePaths(shape->paths); + nsvg__deletePaint(&shape->fill); + nsvg__deletePaint(&shape->stroke); + free(shape); + shape = snext; + } + free(image); +} + +#endif diff --git a/external/nanosvg/nanosvg_license.txt b/external/nanosvg/nanosvg_license.txt new file mode 100644 index 000000000..f896f2eb0 --- /dev/null +++ b/external/nanosvg/nanosvg_license.txt @@ -0,0 +1,18 @@ +Copyright (c) 2013-14 Mikko Mononen memon@inside.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, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not +claim that you wrote the original software. If you use this software +in a product, an acknowledgment in the product documentation would be +appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be +misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. + diff --git a/external/nanosvg/nanosvgrast.h b/external/nanosvg/nanosvgrast.h new file mode 100644 index 000000000..60eac66ea --- /dev/null +++ b/external/nanosvg/nanosvgrast.h @@ -0,0 +1,803 @@ +/* + * Copyright (c) 2013-14 Mikko Mononen memon@inside.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, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + * The polygon rasterization is heavily based on stb_truetype rasterizer + * by Sean Barrett - http://nothings.org/ + * + */ + +#ifndef NANOSVGRAST_H +#define NANOSVGRAST_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Example Usage: + // Load SVG + struct SNVGImage* image = nsvgParseFromFile("test.svg."); + + // Create rasterizer (can be used to render multiple images). + struct NSVGrasterizer* rast = nsvgCreateRasterizer(); + // Allocate memory for image + unsigned char* img = malloc(w*h*4); + // Rasterize + nsvgRasterize(rast, image, 0,0,1, img, w, h, w*4); +*/ + +// Allocated rasterizer context. +struct NSVGrasterizer* nsvgCreateRasterizer(); + +// Rasterizes SVG image, returns RGBA image (non-premultiplied alpha) +// r - pointer to rasterizer context +// image - pointer to image to rasterize +// tx,ty - image offset (applied after scaling) +// scale - image scale +// dst - pointer to destination image data, 4 bytes per pixel (RGBA) +// w - width of the image to render +// h - height of the image to render +// stride - number of bytes per scaleline in the destination buffer +void nsvgRasterize(struct NSVGrasterizer* r, + struct NSVGimage* image, float tx, float ty, float scale, + unsigned char* dst, int w, int h, int stride); + +// Deletes rasterizer context. +void nsvgDeleteRasterizer(struct NSVGrasterizer*); + + +#ifdef __cplusplus +}; +#endif + +#endif // NANOSVGRAST_H + +#ifdef NANOSVGRAST_IMPLEMENTATION + +#include + +#define NSVG__SUBSAMPLES 5 +#define NSVG__FIXSHIFT 10 +#define NSVG__FIX (1 << NSVG__FIXSHIFT) +#define NSVG__FIXMASK (NSVG__FIX-1) +#define NSVG__MEMPAGE_SIZE 1024 + +struct NSVGedge { + float x0,y0, x1,y1; + int dir; + struct NSVGedge* next; +}; + +struct NSVGactiveEdge { + int x,dx; + float ey; + int dir; + struct NSVGactiveEdge *next; +}; + +struct NSVGmemPage { + unsigned char mem[NSVG__MEMPAGE_SIZE]; + int size; + struct NSVGmemPage* next; +}; + +struct NSVGcachedPaint { + char type; + char spread; + float xform[6]; + unsigned int colors[256]; +}; + +struct NSVGrasterizer +{ + float px, py; + + struct NSVGedge* edges; + int nedges; + int cedges; + + struct NSVGactiveEdge* freelist; + struct NSVGmemPage* pages; + struct NSVGmemPage* curpage; + + unsigned char* scanline; + int cscanline; + + unsigned char* bitmap; + int width, height, stride; +}; + +struct NSVGrasterizer* nsvgCreateRasterizer() +{ + struct NSVGrasterizer* r = (struct NSVGrasterizer*)malloc(sizeof(struct NSVGrasterizer)); + if (r == NULL) goto error; + memset(r, 0, sizeof(struct NSVGrasterizer)); + + return r; + +error: + nsvgDeleteRasterizer(r); + return NULL; +} + +void nsvgDeleteRasterizer(struct NSVGrasterizer* r) +{ + struct NSVGmemPage* p; + + if (r == NULL) return; + + p = r->pages; + while (p != NULL) { + struct NSVGmemPage* next = p->next; + free(p); + p = next; + } + + if (r->edges) free(r->edges); + if (r->scanline) free(r->scanline); + + free(r); +} + +static struct NSVGmemPage* nsvg__nextPage(struct NSVGrasterizer* r, struct NSVGmemPage* cur) +{ + struct NSVGmemPage *newp; + + // If using existing chain, return the next page in chain + if (cur != NULL && cur->next != NULL) { + return cur->next; + } + + // Alloc new page + newp = (struct NSVGmemPage*)malloc(sizeof(struct NSVGmemPage)); + if (newp == NULL) return NULL; + memset(newp, 0, sizeof(struct NSVGmemPage)); + + // Add to linked list + if (cur != NULL) + cur->next = newp; + else + r->pages = newp; + + return newp; +} + +static void nsvg__resetPool(struct NSVGrasterizer* r) +{ + struct NSVGmemPage* p = r->pages; + while (p != NULL) { + p->size = 0; + p = p->next; + } + r->curpage = r->pages; +} + +static unsigned char* nsvg__alloc(struct NSVGrasterizer* r, int size) +{ + unsigned char* buf; + if (size > NSVG__MEMPAGE_SIZE) return NULL; + if (r->curpage == NULL || r->curpage->size+size > NSVG__MEMPAGE_SIZE) { + r->curpage = nsvg__nextPage(r, r->curpage); + } + buf = &r->curpage->mem[r->curpage->size]; + r->curpage->size += size; + return buf; +} + +static void nsvg__addEdge(struct NSVGrasterizer* r, float x0, float y0, float x1, float y1) +{ + struct NSVGedge* e; + + // Skip horizontal edges + if (y0 == y1) + return; + + if (r->nedges+1 > r->cedges) { + r->cedges = r->cedges > 0 ? r->cedges * 2 : 64; + r->edges = (struct NSVGedge*)realloc(r->edges, sizeof(struct NSVGedge) * r->cedges); + if (r->edges == NULL) return; + } + + e = &r->edges[r->nedges]; + r->nedges++; + + if (y0 < y1) { + e->x0 = x0; + e->y0 = y0; + e->x1 = x1; + e->y1 = y1; + e->dir = 1; + } else { + e->x0 = x1; + e->y0 = y1; + e->x1 = x0; + e->y1 = y0; + e->dir = -1; + } +} + +static float nsvg__absf(float x) { return x < 0 ? -x : x; } + +static void nsvg__flattenCubicBez(struct NSVGrasterizer* r, + float x1, float y1, float x2, float y2, + float x3, float y3, float x4, float y4, + float tol, int level) +{ + float x12,y12,x23,y23,x34,y34,x123,y123,x234,y234,x1234,y1234; + + if (level > 10) return; + + if (nsvg__absf(x1+x3-x2-x2) + nsvg__absf(y1+y3-y2-y2) + nsvg__absf(x2+x4-x3-x3) + nsvg__absf(y2+y4-y3-y3) < tol) { + nsvg__addEdge(r, r->px, r->py, x4, y4); + r->px = x4; + r->py = y4; + return; + } + + x12 = (x1+x2)*0.5f; + y12 = (y1+y2)*0.5f; + x23 = (x2+x3)*0.5f; + y23 = (y2+y3)*0.5f; + x34 = (x3+x4)*0.5f; + y34 = (y3+y4)*0.5f; + x123 = (x12+x23)*0.5f; + y123 = (y12+y23)*0.5f; + x234 = (x23+x34)*0.5f; + y234 = (y23+y34)*0.5f; + x1234 = (x123+x234)*0.5f; + y1234 = (y123+y234)*0.5f; + + nsvg__flattenCubicBez(r, x1,y1, x12,y12, x123,y123, x1234,y1234, tol, level+1); + nsvg__flattenCubicBez(r, x1234,y1234, x234,y234, x34,y34, x4,y4, tol, level+1); +} + +static void nsvg__flattenShape(struct NSVGrasterizer* r, struct NSVGshape* shape, float scale) +{ + struct NSVGpath* path; + float tol = 0.25f * 4.0f / scale; + int i; + + for (path = shape->paths; path != NULL; path = path->next) { + // Flatten path + r->px = path->pts[0]; + r->py = path->pts[1]; + for (i = 0; i < path->npts-1; i += 3) { + float* p = &path->pts[i*2]; + nsvg__flattenCubicBez(r, p[0],p[1], p[2],p[3], p[4],p[5], p[6],p[7], tol, 0); + } + // Close path + nsvg__addEdge(r, r->px,r->py, path->pts[0],path->pts[1]); + } +} + +static int nsvg__cmpEdge(const void *p, const void *q) +{ + struct NSVGedge* a = (struct NSVGedge*)p; + struct NSVGedge* b = (struct NSVGedge*)q; + + if (a->y0 < b->y0) return -1; + if (a->y0 > b->y0) return 1; + return 0; +} + + +static struct NSVGactiveEdge* nsvg__addActive(struct NSVGrasterizer* r, struct NSVGedge* e, float startPoint) +{ + struct NSVGactiveEdge* z; + + if (r->freelist != NULL) { + // Restore from freelist. + z = r->freelist; + r->freelist = z->next; + } else { + // Alloc new edge. + z = (struct NSVGactiveEdge*)nsvg__alloc(r, sizeof(struct NSVGactiveEdge)); + if (z == NULL) return NULL; + } + + float dxdy = (e->x1 - e->x0) / (e->y1 - e->y0); +// STBTT_assert(e->y0 <= start_point); + // round dx down to avoid going too far + if (dxdy < 0) + z->dx = -floorf(NSVG__FIX * -dxdy); + else + z->dx = floorf(NSVG__FIX * dxdy); + z->x = floorf(NSVG__FIX * (e->x0 + dxdy * (startPoint - e->y0))); +// z->x -= off_x * FIX; + z->ey = e->y1; + z->next = 0; + z->dir = e->dir; + + return z; +} + +static void nsvg__freeActive(struct NSVGrasterizer* r, struct NSVGactiveEdge* z) +{ + z->next = r->freelist; + r->freelist = z; +} + +// note: this routine clips fills that extend off the edges... ideally this +// wouldn't happen, but it could happen if the truetype glyph bounding boxes +// are wrong, or if the user supplies a too-small bitmap +static void nsvg__fillActiveEdges(unsigned char* scanline, int len, struct NSVGactiveEdge* e, int maxWeight, int* xmin, int* xmax) +{ + // non-zero winding fill + int x0 = 0, w = 0; + + while (e != NULL) { + if (w == 0) { + // if we're currently at zero, we need to record the edge start point + x0 = e->x; w += e->dir; + } else { + int x1 = e->x; w += e->dir; + // if we went to zero, we need to draw + if (w == 0) { + int i = x0 >> NSVG__FIXSHIFT; + int j = x1 >> NSVG__FIXSHIFT; + if (i < *xmin) *xmin = i; + if (j > *xmax) *xmax = j; + if (i < len && j >= 0) { + if (i == j) { + // x0,x1 are the same pixel, so compute combined coverage + scanline[i] += (unsigned char)((x1 - x0) * maxWeight >> NSVG__FIXSHIFT); + } else { + if (i >= 0) // add antialiasing for x0 + scanline[i] += (unsigned char)(((NSVG__FIX - (x0 & NSVG__FIXMASK)) * maxWeight) >> NSVG__FIXSHIFT); + else + i = -1; // clip + + if (j < len) // add antialiasing for x1 + scanline[j] += (unsigned char)(((x1 & NSVG__FIXMASK) * maxWeight) >> NSVG__FIXSHIFT); + else + j = len; // clip + + for (++i; i < j; ++i) // fill pixels between x0 and x1 + scanline[i] += (unsigned char)maxWeight; + } + } + } + } + e = e->next; + } +} + +static float nsvg__clampf(float a, float mn, float mx) { return a < mn ? mn : (a > mx ? mx : a); } + +static unsigned int nsvg__RGBA(unsigned char r, unsigned char g, unsigned char b, unsigned char a) +{ + return (r) | (g << 8) | (b << 16) | (a << 24); +} + +static unsigned int nsvg__lerpRGBA(unsigned int c0, unsigned int c1, float u) +{ + int iu = (float)(nsvg__clampf(u, 0.0f, 1.0f) * 256.0f); + int r = (((c0) & 0xff)*(256-iu) + (((c1) & 0xff)*iu)) >> 8; + int g = (((c0>>8) & 0xff)*(256-iu) + (((c1>>8) & 0xff)*iu)) >> 8; + int b = (((c0>>16) & 0xff)*(256-iu) + (((c1>>16) & 0xff)*iu)) >> 8; + int a = (((c0>>24) & 0xff)*(256-iu) + (((c1>>24) & 0xff)*iu)) >> 8; + return nsvg__RGBA(r,g,b,a); +} + +static unsigned int nsvg__applyOpacity(unsigned int c, float u) +{ + int iu = (float)(nsvg__clampf(u, 0.0f, 1.0f) * 256.0f); + int r = (c) & 0xff; + int g = (c>>8) & 0xff; + int b = (c>>16) & 0xff; + int a = (((c>>24) & 0xff)*iu) >> 8; + return nsvg__RGBA(r,g,b,a); +} + +static void nsvg__scanlineSolid(unsigned char* dst, int count, unsigned char* cover, int x, int y, + float tx, float ty, float scale, struct NSVGcachedPaint* cache) +{ + + if (cache->type == NSVG_PAINT_COLOR) { + int i, cr, cg, cb, ca; + cr = cache->colors[0] & 0xff; + cg = (cache->colors[0] >> 8) & 0xff; + cb = (cache->colors[0] >> 16) & 0xff; + ca = (cache->colors[0] >> 24) & 0xff; + + for (i = 0; i < count; i++) { + int r,g,b; + int a = ((int)cover[0] * ca) >> 8; + int ia = 255 - a; + // Premultiply + r = (cr * a) >> 8; + g = (cg * a) >> 8; + b = (cb * a) >> 8; + + // Blend over + r += ((ia * (int)dst[0]) >> 8); + g += ((ia * (int)dst[1]) >> 8); + b += ((ia * (int)dst[2]) >> 8); + a += ((ia * (int)dst[3]) >> 8); + + dst[0] = (unsigned char)r; + dst[1] = (unsigned char)g; + dst[2] = (unsigned char)b; + dst[3] = (unsigned char)a; + + cover++; + dst += 4; + } + } else if (cache->type == NSVG_PAINT_LINEAR_GRADIENT) { + // TODO: spread modes. + // TODO: plenty of opportunities to optimize. + float fx, fy, dx, gy; + float* t = cache->xform; + int i, cr, cg, cb, ca; + unsigned int c; + + fx = (x - tx) / scale; + fy = (y - ty) / scale; + dx = 1.0f / scale; + + for (i = 0; i < count; i++) { + int r,g,b,a,ia; + gy = fx*t[1] + fy*t[3] + t[5]; + c = cache->colors[(int)nsvg__clampf(gy*255.0f, 0, 255.0f)]; + cr = (c) & 0xff; + cg = (c >> 8) & 0xff; + cb = (c >> 16) & 0xff; + ca = (c >> 24) & 0xff; + + a = ((int)cover[0] * ca) >> 8; + ia = 255 - a; + + // Premultiply + r = (cr * a) >> 8; + g = (cg * a) >> 8; + b = (cb * a) >> 8; + + // Blend over + r += ((ia * (int)dst[0]) >> 8); + g += ((ia * (int)dst[1]) >> 8); + b += ((ia * (int)dst[2]) >> 8); + a += ((ia * (int)dst[3]) >> 8); + + dst[0] = (unsigned char)r; + dst[1] = (unsigned char)g; + dst[2] = (unsigned char)b; + dst[3] = (unsigned char)a; + + cover++; + dst += 4; + fx += dx; + } + } else if (cache->type == NSVG_PAINT_RADIAL_GRADIENT) { + // TODO: spread modes. + // TODO: plenty of opportunities to optimize. + // TODO: focus (fx,fy) + float fx, fy, dx, gx, gy, gd; + float* t = cache->xform; + int i, cr, cg, cb, ca; + unsigned int c; + + fx = (x - tx) / scale; + fy = (y - ty) / scale; + dx = 1.0f / scale; + + for (i = 0; i < count; i++) { + int r,g,b,a,ia; + gx = fx*t[0] + fy*t[2] + t[4]; + gy = fx*t[1] + fy*t[3] + t[5]; + gd = sqrtf(gx*gx + gy*gy); + c = cache->colors[(int)nsvg__clampf(gd*255.0f, 0, 255.0f)]; + cr = (c) & 0xff; + cg = (c >> 8) & 0xff; + cb = (c >> 16) & 0xff; + ca = (c >> 24) & 0xff; + + a = ((int)cover[0] * ca) >> 8; + ia = 255 - a; + + // Premultiply + r = (cr * a) >> 8; + g = (cg * a) >> 8; + b = (cb * a) >> 8; + + // Blend over + r += ((ia * (int)dst[0]) >> 8); + g += ((ia * (int)dst[1]) >> 8); + b += ((ia * (int)dst[2]) >> 8); + a += ((ia * (int)dst[3]) >> 8); + + dst[0] = (unsigned char)r; + dst[1] = (unsigned char)g; + dst[2] = (unsigned char)b; + dst[3] = (unsigned char)a; + + cover++; + dst += 4; + fx += dx; + } + } +} + +static void nsvg__rasterizeSortedEdges(struct NSVGrasterizer *r, float tx, float ty, float scale, struct NSVGcachedPaint* cache) +{ + struct NSVGactiveEdge *active = NULL; + int y, s; + int e = 0; + int maxWeight = (255 / NSVG__SUBSAMPLES); // weight per vertical scanline + int xmin, xmax; + + for (y = 0; y < r->height; y++) { + memset(r->scanline, 0, r->width); + xmin = r->width; + xmax = 0; + for (s = 0; s < NSVG__SUBSAMPLES; ++s) { + // find center of pixel for this scanline + float scany = y*NSVG__SUBSAMPLES + s + 0.5f; + struct NSVGactiveEdge **step = &active; + + // update all active edges; + // remove all active edges that terminate before the center of this scanline + while (*step) { + struct NSVGactiveEdge *z = *step; + if (z->ey <= scany) { + *step = z->next; // delete from list +// NSVG__assert(z->valid); + nsvg__freeActive(r, z); + } else { + z->x += z->dx; // advance to position for current scanline + step = &((*step)->next); // advance through list + } + } + + // resort the list if needed + for (;;) { + int changed = 0; + step = &active; + while (*step && (*step)->next) { + if ((*step)->x > (*step)->next->x) { + struct NSVGactiveEdge* t = *step; + struct NSVGactiveEdge* q = t->next; + t->next = q->next; + q->next = t; + *step = q; + changed = 1; + } + step = &(*step)->next; + } + if (!changed) break; + } + + // insert all edges that start before the center of this scanline -- omit ones that also end on this scanline + while (e < r->nedges && r->edges[e].y0 <= scany) { + if (r->edges[e].y1 > scany) { + struct NSVGactiveEdge* z = nsvg__addActive(r, &r->edges[e], scany); + if (z == NULL) break; + // find insertion point + if (active == NULL) { + active = z; + } else if (z->x < active->x) { + // insert at front + z->next = active; + active = z; + } else { + // find thing to insert AFTER + struct NSVGactiveEdge* p = active; + while (p->next && p->next->x < z->x) + p = p->next; + // at this point, p->next->x is NOT < z->x + z->next = p->next; + p->next = z; + } + } + e++; + } + + // now process all active edges in non-zero fashion + if (active != NULL) + nsvg__fillActiveEdges(r->scanline, r->width, active, maxWeight, &xmin, &xmax); + } + // Blit + if (xmin < 0) xmin = 0; + if (xmax > r->width-1) xmax = r->width-1; + if (xmin <= xmax) { + nsvg__scanlineSolid(&r->bitmap[y * r->stride] + xmin*4, xmax-xmin+1, &r->scanline[xmin], xmin, y, tx,ty,scale,cache); + } + } + +} + +static void nsvg__unpremultiplyAlpha(unsigned char* image, int w, int h, int stride) +{ + int x,y; + + // Unpremultiply + for (y = 0; y < h; y++) { + unsigned char *row = &image[y*stride]; + for (x = 0; x < w; x++) { + int r = row[0], g = row[1], b = row[2], a = row[3]; + if (a != 0) { + row[0] = (int)(r*255/a); + row[1] = (int)(g*255/a); + row[2] = (int)(b*255/a); + } + row += 4; + } + } + + // Defringe + for (y = 0; y < h; y++) { + unsigned char *row = &image[y*stride]; + for (x = 0; x < w; x++) { + int r = 0, g = 0, b = 0, a = row[3], n = 0; + if (a == 0) { + if (x-1 > 0 && row[-1] != 0) { + r += row[-4]; + g += row[-3]; + b += row[-2]; + n++; + } + if (x+1 < w && row[7] != 0) { + r += row[4]; + g += row[5]; + b += row[6]; + n++; + } + if (y-1 > 0 && row[-stride+3] != 0) { + r += row[-stride]; + g += row[-stride+1]; + b += row[-stride+2]; + n++; + } + if (y+1 < h && row[stride+3] != 0) { + r += row[stride]; + g += row[stride+1]; + b += row[stride+2]; + n++; + } + if (n > 0) { + row[0] = r/n; + row[1] = g/n; + row[2] = b/n; + } + } + row += 4; + } + } +} + + +static void nsvg__initPaint(struct NSVGcachedPaint* cache, struct NSVGpaint* paint, float opacity) +{ + int i, j; + struct NSVGgradient* grad; + + cache->type = paint->type; + + if (paint->type == NSVG_PAINT_COLOR) { + cache->colors[0] = nsvg__applyOpacity(paint->color, opacity); + return; + } + + grad = paint->gradient; + + cache->spread = grad->spread; + memcpy(cache->xform, grad->xform, sizeof(float)*6); + + if (grad->nstops == 0) { + for (i = 0; i < 256; i++) + cache->colors[i] = 0; + } if (grad->nstops == 1) { + for (i = 0; i < 256; i++) + cache->colors[i] = nsvg__applyOpacity(grad->stops[i].color, opacity); + } else { + unsigned int ca, cb; + float ua, ub, du, u; + int ia, ib, count; + + ca = nsvg__applyOpacity(grad->stops[0].color, opacity); + ua = nsvg__clampf(grad->stops[0].offset, 0, 1); + ub = nsvg__clampf(grad->stops[grad->nstops-1].offset, ua, 1); + ia = ua * 255.0f; + ib = ub * 255.0f; + for (i = 0; i < ia; i++) { + cache->colors[i] = ca; + } + + for (i = 0; i < grad->nstops-1; i++) { + ca = nsvg__applyOpacity(grad->stops[i].color, opacity); + cb = nsvg__applyOpacity(grad->stops[i+1].color, opacity); + ua = nsvg__clampf(grad->stops[i].offset, 0, 1); + ub = nsvg__clampf(grad->stops[i+1].offset, 0, 1); + ia = ua * 255.0f; + ib = ub * 255.0f; + count = ib - ia; + if (count <= 0) continue; + u = 0; + du = 1.0f / (float)count; + for (j = 0; j < count; j++) { + cache->colors[ia+j] = nsvg__lerpRGBA(ca,cb,u); + u += du; + } + } + + for (i = ib; i < 256; i++) + cache->colors[i] = cb; + } + +} + +void nsvgRasterize(struct NSVGrasterizer* r, + struct NSVGimage* image, float tx, float ty, float scale, + unsigned char* dst, int w, int h, int stride) +{ + struct NSVGshape *shape = NULL; + struct NSVGedge *e = NULL; + struct NSVGcachedPaint cache; + int i; + + r->bitmap = dst; + r->width = w; + r->height = h; + r->stride = stride; + + if (w > r->cscanline) { + r->cscanline = w; + r->scanline = (unsigned char*)realloc(r->scanline, w); + if (r->scanline == NULL) return; + } + + for (i = 0; i < h; i++) + memset(&dst[i*stride], 0, w*4); + + for (shape = image->shapes; shape != NULL; shape = shape->next) { + + if (shape->fill.type == NSVG_PAINT_NONE) + continue; + + nsvg__resetPool(r); + r->freelist = NULL; + r->nedges = 0; + + nsvg__flattenShape(r, shape, scale); + + // Scale and translate edges + for (i = 0; i < r->nedges; i++) { + e = &r->edges[i]; + e->x0 = tx + e->x0 * scale; + e->y0 = (ty + e->y0 * scale) * NSVG__SUBSAMPLES; + e->x1 = tx + e->x1 * scale; + e->y1 = (ty + e->y1 * scale) * NSVG__SUBSAMPLES; + } + + // Rasterize edges + qsort(r->edges, r->nedges, sizeof(struct NSVGedge), nsvg__cmpEdge); + + // now, traverse the scanlines and find the intersections on each scanline, use non-zero rule + nsvg__initPaint(&cache, &shape->fill, shape->opacity); + + nsvg__rasterizeSortedEdges(r, tx,ty,scale, &cache); + } + + nsvg__unpremultiplyAlpha(dst, w, h, stride); + + r->bitmap = NULL; + r->width = 0; + r->height = 0; + r->stride = 0; +} + +#endif diff --git a/external/nanosvg/src/nanosvg_impl.cpp b/external/nanosvg/src/nanosvg_impl.cpp new file mode 100644 index 000000000..995d3372c --- /dev/null +++ b/external/nanosvg/src/nanosvg_impl.cpp @@ -0,0 +1,6 @@ +#define NANOSVG_IMPLEMENTATION +#define NANOSVGRAST_IMPLEMENTATION + +#include +#include "nanosvg.h" +#include "nanosvgrast.h" diff --git a/external/pugixml/CMakeLists.txt b/external/pugixml/CMakeLists.txt new file mode 100644 index 000000000..fb01783b1 --- /dev/null +++ b/external/pugixml/CMakeLists.txt @@ -0,0 +1,13 @@ +project("pugixml") + +set(PUGI_HEADERS + ${CMAKE_CURRENT_SOURCE_DIR}/pugiconfig.hpp + ${CMAKE_CURRENT_SOURCE_DIR}/pugixml.hpp +) + +set(PUGI_SOURCES + ${CMAKE_CURRENT_SOURCE_DIR}/src/pugixml.cpp +) + +include_directories(${CMAKE_CURRENT_SOURCE_DIR}) +add_library(pugixml STATIC ${PUGI_SOURCES} ${PUG_HEADERS}) diff --git a/src/pugiXML/pugiconfig.hpp b/external/pugixml/pugiconfig.hpp similarity index 100% rename from src/pugiXML/pugiconfig.hpp rename to external/pugixml/pugiconfig.hpp diff --git a/src/pugiXML/pugixml.hpp b/external/pugixml/pugixml.hpp similarity index 100% rename from src/pugiXML/pugixml.hpp rename to external/pugixml/pugixml.hpp diff --git a/src/pugiXML/pugiXML_license.txt b/external/pugixml/pugixml_license.txt similarity index 100% rename from src/pugiXML/pugiXML_license.txt rename to external/pugixml/pugixml_license.txt diff --git a/src/pugiXML/pugixml.cpp b/external/pugixml/src/pugixml.cpp similarity index 100% rename from src/pugiXML/pugixml.cpp rename to external/pugixml/src/pugixml.cpp diff --git a/opensans_license.txt b/opensans_license.txt new file mode 100644 index 000000000..bcfe5b1de --- /dev/null +++ b/opensans_license.txt @@ -0,0 +1,15 @@ +Regarding the Open Sans font (located in data/resources/ and data/converted): + +Copyright 2010 Steve Matteson + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. \ No newline at end of file diff --git a/src/EmulationStation.h b/src/EmulationStation.h deleted file mode 100644 index 0543d3d54..000000000 --- a/src/EmulationStation.h +++ /dev/null @@ -1,12 +0,0 @@ -#pragma once - -// These numbers and strings need to be manually updated for a new version. -// Do this version number update as the very last commit for the new release version. -#define PROGRAM_VERSION_MAJOR 1 -#define PROGRAM_VERSION_MINOR 0 -#define PROGRAM_VERSION_MAINTENANCE 2 -#define PROGRAM_VERSION_REVISION 0 -#define PROGRAM_VERSION_STRING "1.0.2.0 - built " __DATE__ " - " __TIME__ -#define RESOURCE_VERSION_STRING "1,0,2,0\0" - -#define RESOURCE_VERSION PROGRAM_VERSION_MAJOR,PROGRAM_VERSION_MINOR,PROGRAM_VERSION_MAINTENANCE,PROGRAM_VERSION_REVISION diff --git a/src/FileData.h b/src/FileData.h deleted file mode 100644 index ebb44b9b9..000000000 --- a/src/FileData.h +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef _FILEDATA_H_ -#define _FILEDATA_H_ - -#include - -//This is a really basic class that the GameData and FolderData subclass from. -//This lets us keep everything in one vector and not have to differentiate between files and folders when we just want to check the name, etc. -class FileData -{ -public: - virtual ~FileData() { }; - virtual bool isFolder() const = 0; - virtual const std::string & getName() const = 0; - virtual const std::string & getPath() const = 0; -}; - -#endif diff --git a/src/FolderData.cpp b/src/FolderData.cpp deleted file mode 100644 index ac9e08477..000000000 --- a/src/FolderData.cpp +++ /dev/null @@ -1,186 +0,0 @@ -#include "FolderData.h" -#include "SystemData.h" -#include "GameData.h" -#include -#include - - -std::map FolderData::sortStateNameMap; - -bool FolderData::isFolder() const { return true; } -const std::string & FolderData::getName() const { return mName; } -const std::string & FolderData::getPath() const { return mPath; } -unsigned int FolderData::getFileCount() { return mFileVector.size(); } - - -FolderData::FolderData(SystemData* system, std::string path, std::string name) - : mSystem(system), mPath(path), mName(name) -{ - //first created folder data initializes the list - if (sortStateNameMap.empty()) { - sortStateNameMap[compareFileName] = "file name"; - sortStateNameMap[compareRating] = "rating"; - sortStateNameMap[compareUserRating] = "user rating"; - sortStateNameMap[compareTimesPlayed] = "times played"; - sortStateNameMap[compareLastPlayed] = "last time played"; - } -} - -FolderData::~FolderData() -{ - for(unsigned int i = 0; i < mFileVector.size(); i++) - { - delete mFileVector.at(i); - } - - mFileVector.clear(); -} - -void FolderData::pushFileData(FileData* file) -{ - mFileVector.push_back(file); -} - -//sort this folder and any subfolders -void FolderData::sort(ComparisonFunction & comparisonFunction, bool ascending) -{ - std::sort(mFileVector.begin(), mFileVector.end(), comparisonFunction); - - for(unsigned int i = 0; i < mFileVector.size(); i++) - { - if(mFileVector.at(i)->isFolder()) - ((FolderData*)mFileVector.at(i))->sort(comparisonFunction, ascending); - } - - if (!ascending) { - std::reverse(mFileVector.begin(), mFileVector.end()); - } -} - -//returns if file1 should come before file2 -bool FolderData::compareFileName(const FileData* file1, const FileData* file2) -{ - std::string name1 = file1->getName(); - std::string name2 = file2->getName(); - - //min of name1/name2 .length()s - unsigned int count = name1.length() > name2.length() ? name2.length() : name1.length(); - for(unsigned int i = 0; i < count; i++) - { - if(toupper(name1[i]) != toupper(name2[i])) - { - return toupper(name1[i]) < toupper(name2[i]); - } - } - - return name1.length() < name2.length(); -} - -bool FolderData::compareRating(const FileData* file1, const FileData* file2) -{ - //we need game data. try to cast - const GameData * game1 = dynamic_cast(file1); - const GameData * game2 = dynamic_cast(file2); - if (game1 != nullptr && game2 != nullptr) { - return game1->getRating() < game2->getRating(); - } - return false; -} - -bool FolderData::compareUserRating(const FileData* file1, const FileData* file2) -{ - //we need game data. try to cast - const GameData * game1 = dynamic_cast(file1); - const GameData * game2 = dynamic_cast(file2); - if (game1 != nullptr && game2 != nullptr) { - return game1->getUserRating() < game2->getUserRating(); - } - return false; -} - -bool FolderData::compareTimesPlayed(const FileData* file1, const FileData* file2) -{ - //we need game data. try to cast - const GameData * game1 = dynamic_cast(file1); - const GameData * game2 = dynamic_cast(file2); - if (game1 != nullptr && game2 != nullptr) { - return game1->getTimesPlayed() < game2->getTimesPlayed(); - } - return false; -} - -bool FolderData::compareLastPlayed(const FileData* file1, const FileData* file2) -{ - //we need game data. try to cast - const GameData * game1 = dynamic_cast(file1); - const GameData * game2 = dynamic_cast(file2); - if (game1 != nullptr && game2 != nullptr) { - return game1->getLastPlayed() < game2->getLastPlayed(); - } - return false; -} - -std::string FolderData::getSortStateName(ComparisonFunction & comparisonFunction, bool ascending) -{ - std::string temp = sortStateNameMap[comparisonFunction]; - if (ascending) { - temp.append(" (ascending)"); - } - else { - temp.append(" (descending)"); - } - return temp; -} - -FileData* FolderData::getFile(unsigned int i) const -{ - return mFileVector.at(i); -} - -std::vector FolderData::getFiles(bool onlyFiles) const -{ - std::vector temp; - //now check if a child is a folder and get those children in turn - std::vector::const_iterator fdit = mFileVector.cbegin(); - while(fdit != mFileVector.cend()) { - //dynamically try to cast to FolderData type - FolderData * folder = dynamic_cast(*fdit); - if (folder != nullptr) { - //add this only when user wanted it - if (!onlyFiles) { - temp.push_back(*fdit); - } - } - else { - temp.push_back(*fdit); - } - ++fdit; - } - return temp; -} - -std::vector FolderData::getFilesRecursive(bool onlyFiles) const -{ - std::vector temp; - //now check if a child is a folder and get those children in turn - std::vector::const_iterator fdit = mFileVector.cbegin(); - while(fdit != mFileVector.cend()) { - //dynamically try to cast to FolderData type - FolderData * folder = dynamic_cast(*fdit); - if (folder != nullptr) { - //add this onyl when user wanted it - if (!onlyFiles) { - temp.push_back(*fdit); - } - //worked. Is actual folder data. recurse - std::vector children = folder->getFilesRecursive(onlyFiles); - //insert children into return vector - temp.insert(temp.end(), children.cbegin(), children.cend()); - } - else { - temp.push_back(*fdit); - } - ++fdit; - } - return temp; -} \ No newline at end of file diff --git a/src/FolderData.h b/src/FolderData.h deleted file mode 100644 index ecbd844fb..000000000 --- a/src/FolderData.h +++ /dev/null @@ -1,59 +0,0 @@ -#ifndef _FOLDER_H_ -#define _FOLDER_H_ - -#include -#include - -#include "FileData.h" - - -class SystemData; - -//This class lets us hold a vector of FileDatas within under a common name. -class FolderData : public FileData -{ -public: - typedef bool ComparisonFunction(const FileData* a, const FileData* b); - struct SortState - { - ComparisonFunction & comparisonFunction; - bool ascending; - std::string description; - - SortState(ComparisonFunction & sortFunction, bool sortAscending, const std::string & sortDescription) : comparisonFunction(sortFunction), ascending(sortAscending), description(sortDescription) {} - }; - -private: - static std::map sortStateNameMap; - -public: - FolderData(SystemData* system, std::string path, std::string name); - ~FolderData(); - - bool isFolder() const; - const std::string & getName() const; - const std::string & getPath() const; - - unsigned int getFileCount(); - FileData* getFile(unsigned int i) const; - std::vector getFiles(bool onlyFiles = false) const; - std::vector getFilesRecursive(bool onlyFiles = false) const; - - void pushFileData(FileData* file); - - void sort(ComparisonFunction & comparisonFunction = compareFileName, bool ascending = true); - static bool compareFileName(const FileData* file1, const FileData* file2); - static bool compareRating(const FileData* file1, const FileData* file2); - static bool compareUserRating(const FileData* file1, const FileData* file2); - static bool compareTimesPlayed(const FileData* file1, const FileData* file2); - static bool compareLastPlayed(const FileData* file1, const FileData* file2); - static std::string getSortStateName(ComparisonFunction & comparisonFunction = compareFileName, bool ascending = true); - -private: - SystemData* mSystem; - std::string mPath; - std::string mName; - std::vector mFileVector; -}; - -#endif diff --git a/src/Font.cpp b/src/Font.cpp deleted file mode 100644 index a8d6c7dd7..000000000 --- a/src/Font.cpp +++ /dev/null @@ -1,548 +0,0 @@ -#include "Font.h" -#include -#include -#include -#include "Renderer.h" -#include -#include "Log.h" - -FT_Library Font::sLibrary; -bool Font::libraryInitialized = false; - -int Font::getDpiX() { return 96; } -int Font::getDpiY() { return 96; } - -int Font::getSize() const { return mSize; } - -std::map< std::pair, std::weak_ptr > Font::sFontMap; - -std::string Font::getDefaultPath() -{ - const int fontCount = 4; - -#ifdef WIN32 - std::string fonts[] = {"DejaVuSerif.ttf", - "Arial.ttf", - "Verdana.ttf", - "Tahoma.ttf" }; - - //build full font path - TCHAR winDir[MAX_PATH]; - GetWindowsDirectory(winDir, MAX_PATH); -#ifdef UNICODE - char winDirChar[MAX_PATH*2]; - char DefChar = ' '; - WideCharToMultiByte(CP_ACP, 0, winDir, -1, winDirChar, MAX_PATH, &DefChar, NULL); - std::string fontPath(winDirChar); -#else - std::string fontPath(winDir); -#endif - fontPath += "\\Fonts\\"; - //prepend to font file names - for(int i = 0; i < fontCount; i++) - { - fonts[i] = fontPath + fonts[i]; - } -#else - std::string fonts[] = {"/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif.ttf", - "/usr/share/fonts/TTF/DejaVuSerif.ttf", - "/usr/share/fonts/dejavu/DejaVuSerif.ttf", - "font.ttf" }; -#endif - - for(int i = 0; i < fontCount; i++) - { - if(boost::filesystem::exists(fonts[i])) - return fonts[i]; - } - - LOG(LogError) << "Error - could not find a font!"; - - return ""; -} - -void Font::initLibrary() -{ - if(FT_Init_FreeType(&sLibrary)) - { - LOG(LogError) << "Error initializing FreeType!"; - }else{ - libraryInitialized = true; - } -} - -Font::Font(const ResourceManager& rm, const std::string& path, int size) : fontScale(1.0f), mSize(size), mPath(path) -{ - reload(rm); -} - -Font::~Font() -{ - LOG(LogInfo) << "Destroying font \"" << mPath << "\" with size " << mSize << "."; - deinit(); -} - -void Font::reload(const ResourceManager& rm) -{ - init(rm.getFileData(mPath)); -} - -void Font::unload(const ResourceManager& rm) -{ - deinit(); -} - -std::shared_ptr Font::get(ResourceManager& rm, const std::string& path, int size) -{ - if(path.empty()) - { - LOG(LogError) << "Tried to get font with no path!"; - return std::shared_ptr(); - } - - std::pair def(path, size); - auto foundFont = sFontMap.find(def); - if(foundFont != sFontMap.end()) - { - if(!foundFont->second.expired()) - return foundFont->second.lock(); - } - - std::shared_ptr font = std::shared_ptr(new Font(rm, path, size)); - sFontMap[def] = std::weak_ptr(font); - rm.addReloadable(font); - return font; -} - -void Font::init(ResourceData data) -{ - if(!libraryInitialized) - initLibrary(); - - mMaxGlyphHeight = 0; - - buildAtlas(data); -} - -void Font::deinit() -{ - if(textureID) - { - glDeleteTextures(1, &textureID); - textureID = 0; - } -} - -void Font::buildAtlas(ResourceData data) -{ - if(FT_New_Memory_Face(sLibrary, data.ptr.get(), data.length, 0, &face)) - { - LOG(LogError) << "Error creating font face!"; - return; - } - - //FT_Set_Char_Size(face, 0, size * 64, getDpiX(), getDpiY()); - FT_Set_Pixel_Sizes(face, 0, mSize); - - //find the size we should use - FT_GlyphSlot g = face->glyph; - int w = 0; - int h = 0; - - /*for(int i = 32; i < 128; i++) - { - if(FT_Load_Char(face, i, FT_LOAD_RENDER)) - { - fprintf(stderr, "Loading character %c failed!\n", i); - continue; - } - - w += g->bitmap.width; - h = std::max(h, g->bitmap.rows); - }*/ - - //the max size (GL_MAX_TEXTURE_SIZE) is like 3300 - w = 2048; - h = 512; - - textureWidth = w; - textureHeight = h; - - //create the texture - glGenTextures(1, &textureID); - glBindTexture(GL_TEXTURE_2D, textureID); - - glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); - glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); - - glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); - glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); - - glPixelStorei(GL_PACK_ALIGNMENT, 1); - glPixelStorei(GL_UNPACK_ALIGNMENT, 1); - - glTexImage2D(GL_TEXTURE_2D, 0, GL_ALPHA, w, h, 0, GL_ALPHA, GL_UNSIGNED_BYTE, NULL); - - //copy the glyphs into the texture - int x = 0; - int y = 0; - int maxHeight = 0; - for(int i = 32; i < 128; i++) - { - if(FT_Load_Char(face, i, FT_LOAD_RENDER)) - continue; - - //prints rendered texture to the console - /*std::cout << "uploading at x: " << x << ", w: " << g->bitmap.width << " h: " << g->bitmap.rows << "\n"; - - for(int k = 0; k < g->bitmap.rows; k++) - { - for(int j = 0; j < g->bitmap.width; j++) - { - if(g->bitmap.buffer[g->bitmap.width * k + j]) - std::cout << "."; - else - std::cout << " "; - } - std::cout << "\n"; - }*/ - - if(x + g->bitmap.width >= textureWidth) - { - x = 0; - y += maxHeight + 1; //leave one pixel of space between glyphs - maxHeight = 0; - } - - if(g->bitmap.rows > maxHeight) - maxHeight = g->bitmap.rows; - - glTexSubImage2D(GL_TEXTURE_2D, 0, x, y, g->bitmap.width, g->bitmap.rows, GL_ALPHA, GL_UNSIGNED_BYTE, g->bitmap.buffer); - - - charData[i].texX = x; - charData[i].texY = y; - charData[i].texW = g->bitmap.width; - charData[i].texH = g->bitmap.rows; - charData[i].advX = (float)g->metrics.horiAdvance / 64.0f; - charData[i].advY = (float)g->metrics.vertAdvance / 64.0f; - charData[i].bearingX = (float)g->metrics.horiBearingX / 64.0f; - charData[i].bearingY = (float)g->metrics.horiBearingY / 64.0f; - - if(charData[i].texH > mMaxGlyphHeight) - mMaxGlyphHeight = charData[i].texH; - - x += g->bitmap.width + 1; //leave one pixel of space between glyphs - } - - glBindTexture(GL_TEXTURE_2D, 0); - - FT_Done_Face(face); - - if((y + maxHeight) >= textureHeight) - { - //failed to create a proper font texture - LOG(LogWarning) << "Font \"" << mPath << "\" with size " << mSize << " exceeded max texture size! Trying again..."; - //try a 3/4th smaller size and redo initialization - fontScale *= 1.25f; - mSize = (int)(mSize * (1.0f / fontScale)); - deinit(); - init(data); - }else{ - LOG(LogInfo) << "Created font \"" << mPath << "\" with size " << mSize << ". textureID: " << textureID; - } -} - - -void Font::drawText(std::string text, const Eigen::Vector2f& offset, unsigned int color) -{ - TextCache* cache = buildTextCache(text, offset[0], offset[1], color); - renderTextCache(cache); - delete cache; -} - -void Font::renderTextCache(TextCache* cache) -{ - if(!textureID) - { - LOG(LogError) << "Error - tried to draw with Font that has no texture loaded!"; - return; - } - - if(cache == NULL) - { - LOG(LogError) << "Attempted to draw NULL TextCache!"; - return; - } - - if(cache->sourceFont != this) - { - LOG(LogError) << "Attempted to draw TextCache with font other than its source!"; - return; - } - - glBindTexture(GL_TEXTURE_2D, textureID); - glEnable(GL_TEXTURE_2D); - glEnable(GL_BLEND); - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - - glEnableClientState(GL_VERTEX_ARRAY); - glEnableClientState(GL_TEXTURE_COORD_ARRAY); - glEnableClientState(GL_COLOR_ARRAY); - - glVertexPointer(2, GL_FLOAT, sizeof(TextCache::Vertex), &cache->verts[0].pos); - glTexCoordPointer(2, GL_FLOAT, sizeof(TextCache::Vertex), &cache->verts[0].tex); - glColorPointer(4, GL_UNSIGNED_BYTE, 0, cache->colors); - - glDrawArrays(GL_TRIANGLES, 0, cache->vertCount); - - glDisableClientState(GL_VERTEX_ARRAY); - glDisableClientState(GL_TEXTURE_COORD_ARRAY); - glDisableClientState(GL_COLOR_ARRAY); - - glDisable(GL_TEXTURE_2D); - glDisable(GL_BLEND); -} - -Eigen::Vector2f Font::sizeText(std::string text) const -{ - float cwidth = 0.0f; - for(unsigned int i = 0; i < text.length(); i++) - { - unsigned char letter = text[i]; - if(letter < 32 || letter >= 128) - letter = 127; - - cwidth += charData[letter].advX * fontScale; - } - - return Eigen::Vector2f(cwidth, getHeight()); -} - -int Font::getHeight() const -{ - return (int)(mMaxGlyphHeight * 1.5f * fontScale); -} - - - - -void Font::drawCenteredText(std::string text, float xOffset, float y, unsigned int color) -{ - Eigen::Vector2f pos = sizeText(text); - - pos[0] = (Renderer::getScreenWidth() - pos.x()); - pos[0] = (pos.x() / 2) + (xOffset / 2); - pos[1] = y; - - drawText(text, pos, color); -} - -//this could probably be optimized -//draws text and ensures it's never longer than xLen -void Font::drawWrappedText(std::string text, const Eigen::Vector2f& offset, float xLen, unsigned int color) -{ - float y = offset.y(); - - std::string line, word, temp; - Eigen::Vector2f textSize; - size_t space, newline; - - while(text.length() > 0 || !line.empty()) //while there's text or we still have text to render - { - space = text.find(' ', 0); - if(space == std::string::npos) - space = text.length() - 1; - - - word = text.substr(0, space + 1); - - //check if the next word contains a newline - newline = word.find('\n', 0); - if(newline != std::string::npos) - { - word = word.substr(0, newline); - text.erase(0, newline + 1); - }else{ - text.erase(0, space + 1); - } - - temp = line + word; - - textSize = sizeText(temp); - - //if we're on the last word and it'll fit on the line, just add it to the line - if((textSize.x() <= xLen && text.length() == 0) || newline != std::string::npos) - { - line = temp; - word = ""; - } - - - //if the next line will be too long or we're on the last of the text, render it - if(textSize.x() > xLen || text.length() == 0 || newline != std::string::npos) - { - //render line now - if(textSize.x() > 0) //make sure it's not blank - drawText(line, Eigen::Vector2f(offset.x(), y), color); - - //increment y by height and some extra padding for the next line - y += textSize.y() + 4; - - //move the word we skipped to the next line - line = word; - }else{ - //there's still space, continue building the line - line = temp; - } - - } -} - -Eigen::Vector2f Font::sizeWrappedText(std::string text, float xLen) const -{ - Eigen::Vector2f out(0, 0); - - float y = 0; - - std::string line, word, temp; - Eigen::Vector2f textSize; - size_t space, newline; - - while(text.length() > 0 || !line.empty()) //while there's text or we still have text to render - { - space = text.find(' ', 0); - if(space == std::string::npos) - space = text.length() - 1; - - word = text.substr(0, space + 1); - - //check if the next word contains a newline - newline = word.find('\n', 0); - if(newline != std::string::npos) - { - word = word.substr(0, newline); - text.erase(0, newline + 1); - }else{ - text.erase(0, space + 1); - } - - temp = line + word; - - textSize = sizeText(temp); - - //if we're on the last word and it'll fit on the line, just add it to the line - if((textSize.x() <= xLen && text.length() == 0) || newline != std::string::npos) - { - line = temp; - word = ""; - } - - //if the next line will be too long or we're on the last of the text, render it - if(textSize.x() > xLen || text.length() == 0 || newline != std::string::npos) - { - //increment y by height and some extra padding for the next line - y += textSize.y() + 4; - - //move the word we skipped to the next line - line = word; - - //update our maximum known line width - if(textSize.x() > out.x()) - out[0] = textSize.x(); - }else{ - //there's still space, continue building the line - line = temp; - } - - } - - out[1] = y; - - return out; -} - - - - -//============================================================================================================= -//TextCache -//============================================================================================================= - -TextCache* Font::buildTextCache(const std::string& text, float offsetX, float offsetY, unsigned int color) -{ - if(!textureID) - { - LOG(LogError) << "Error - tried to build TextCache with Font that has no texture loaded!"; - return NULL; - } - - const int triCount = text.length() * 2; - const int vertCount = triCount * 3; - TextCache::Vertex* vert = new TextCache::Vertex[vertCount]; - GLubyte* colors = new GLubyte[vertCount * 4]; - - //texture atlas width/height - float tw = (float)textureWidth; - float th = (float)textureHeight; - - float x = offsetX; - float y = offsetY + mMaxGlyphHeight * 1.1f * fontScale; //padding (another 0.5% is added to the bottom through the sizeText function) - - int charNum = 0; - for(int i = 0; i < vertCount; i += 6, charNum++) - { - unsigned char letter = text[charNum]; - - if(letter < 32 || letter >= 128) - letter = 127; //print [X] if character is not standard ASCII - - //the glyph might not start at the cursor position, but needs to be shifted a bit - const float glyphStartX = x + charData[letter].bearingX * fontScale; - //order is bottom left, top right, top left - vert[i + 0].pos << glyphStartX, y + (charData[letter].texH - charData[letter].bearingY) * fontScale; - vert[i + 1].pos << glyphStartX + charData[letter].texW * fontScale, y - charData[letter].bearingY * fontScale; - vert[i + 2].pos << glyphStartX, vert[i + 1].pos.y(); - - Eigen::Vector2i charTexCoord(charData[letter].texX, charData[letter].texY); - Eigen::Vector2i charTexSize(charData[letter].texW, charData[letter].texH); - - vert[i + 0].tex << charTexCoord.x() / tw, (charTexCoord.y() + charTexSize.y()) / th; - vert[i + 1].tex << (charTexCoord.x() + charTexSize.x()) / tw, charTexCoord.y() / th; - vert[i + 2].tex << vert[i + 0].tex.x(), vert[i + 1].tex.y(); - - //next triangle (second half of the quad) - vert[i + 3].pos = vert[i + 0].pos; - vert[i + 4].pos = vert[i + 1].pos; - vert[i + 5].pos[0] = vert[i + 1].pos.x(); - vert[i + 5].pos[1] = vert[i + 0].pos.y(); - - vert[i + 3].tex = vert[i + 0].tex; - vert[i + 4].tex = vert[i + 1].tex; - vert[i + 5].tex[0] = vert[i + 1].tex.x(); - vert[i + 5].tex[1] = vert[i + 0].tex.y(); - - x += charData[letter].advX * fontScale; - } - - TextCache* cache = new TextCache(vertCount, vert, colors, this); - if(color != 0x00000000) - cache->setColor(color); - - return cache; -} - -TextCache::TextCache(int verts, Vertex* v, GLubyte* c, Font* f) : vertCount(verts), verts(v), colors(c), sourceFont(f) -{ -} - -TextCache::~TextCache() -{ - delete[] verts; - delete[] colors; -} - -void TextCache::setColor(unsigned int color) -{ - Renderer::buildGLColorArray(const_cast(colors), color, vertCount); -} diff --git a/src/Font.h b/src/Font.h deleted file mode 100644 index fedc4e9e3..000000000 --- a/src/Font.h +++ /dev/null @@ -1,114 +0,0 @@ -#ifndef _FONT_H_ -#define _FONT_H_ - -#include -#include "platform.h" -#include GLHEADER -#include -#include FT_FREETYPE_H -#include -#include "resources/ResourceManager.h" - -class TextCache; - -#define FONT_SIZE_SMALL ((unsigned int)(0.035f * Renderer::getScreenHeight())) -#define FONT_SIZE_MEDIUM ((unsigned int)(0.045f * Renderer::getScreenHeight())) -#define FONT_SIZE_LARGE ((unsigned int)(0.1f * Renderer::getScreenHeight())) - -//A TrueType Font renderer that uses FreeType and OpenGL. -//The library is automatically initialized when it's needed. -class Font : public IReloadable -{ -public: - static void initLibrary(); - - static std::shared_ptr get(ResourceManager& rm, const std::string& path, int size); - - ~Font(); - - FT_Face face; - - //contains sizing information for every glyph. - struct charPosData { - int texX; - int texY; - int texW; - int texH; - - float advX; //!, std::weak_ptr > sFontMap; - - Font(const ResourceManager& rm, const std::string& path, int size); - - void init(ResourceData data); - void deinit(); - - void buildAtlas(ResourceData data); //Builds a "texture atlas," one big OpenGL texture with glyphs 32 to 128. - - int textureWidth; //OpenGL texture width - int textureHeight; //OpenGL texture height - int mMaxGlyphHeight; - float fontScale; //! 1.0 if the font would be to big for the texture - - int mSize; - const std::string mPath; -}; - -class TextCache -{ -public: - struct Vertex - { - Eigen::Vector2f pos; - Eigen::Vector2f tex; - }; - - void setColor(unsigned int color); - - TextCache(int verts, Vertex* v, GLubyte* c, Font* f); - ~TextCache(); - - const int vertCount; - const Vertex* verts; - const GLubyte* colors; - const Font* sourceFont; -}; - -#endif diff --git a/src/GameData.cpp b/src/GameData.cpp deleted file mode 100644 index ef8384dfd..000000000 --- a/src/GameData.cpp +++ /dev/null @@ -1,138 +0,0 @@ -#include "GameData.h" -#include -#include - - -const std::string GameData::xmlTagGameList = "gameList"; -const std::string GameData::xmlTagGame = "game"; -const std::string GameData::xmlTagName = "name"; -const std::string GameData::xmlTagPath = "path"; -const std::string GameData::xmlTagDescription = "desc"; -const std::string GameData::xmlTagImagePath = "image"; -const std::string GameData::xmlTagRating = "rating"; -const std::string GameData::xmlTagUserRating = "userrating"; -const std::string GameData::xmlTagTimesPlayed = "timesplayed"; -const std::string GameData::xmlTagLastPlayed = "lastplayed"; - - -GameData::GameData(SystemData* system, std::string path, std::string name) - : mSystem(system), mPath(path), mName(name), mRating(0.0f), mUserRating(0.0f), mTimesPlayed(0), mLastPlayed(0) -{ -} - -bool GameData::isFolder() const -{ - return false; -} - -const std::string & GameData::getName() const -{ - return mName; -} - -void GameData::setName(const std::string & name) -{ - mName = name; -} - -const std::string & GameData::getPath() const -{ - return mPath; -} - -void GameData::setPath(const std::string & path) -{ - mPath = path; -} - -const std::string & GameData::getDescription() const -{ - return mDescription; -} - -void GameData::setDescription(const std::string & description) -{ - mDescription = description; -} - -const std::string & GameData::getImagePath() const -{ - return mImagePath; -} - -void GameData::setImagePath(const std::string & imagePath) -{ - mImagePath = imagePath; -} - -float GameData::getRating() const -{ - return mRating; -} - -void GameData::setRating(float rating) -{ - mRating = rating; -} - -float GameData::getUserRating() const -{ - return mUserRating; -} - -void GameData::setUserRating(float rating) -{ - mUserRating = rating; -} - -size_t GameData::getTimesPlayed() const -{ - return mTimesPlayed; -} - -void GameData::setTimesPlayed(size_t timesPlayed) -{ - mTimesPlayed = timesPlayed; -} - -std::time_t GameData::getLastPlayed() const -{ - return mLastPlayed; -} - -void GameData::setLastPlayed(std::time_t lastPlayed) -{ - mLastPlayed = lastPlayed; -} - -std::string GameData::getBashPath() const -{ - //a quick and dirty way to insert a backslash before most characters that would mess up a bash path - std::string path = mPath; - - const char* invalidChars = " '\"\\!$^&*(){}[]?;<>"; - for(unsigned int i = 0; i < path.length(); i++) - { - char c; - unsigned int charNum = 0; - do { - c = invalidChars[charNum]; - if(path[i] == c) - { - path.insert(i, "\\"); - i++; - break; - } - charNum++; - } while(c != '\0'); - } - - return path; -} - -//returns the boost::filesystem stem of our path - e.g. for "/foo/bar.rom" returns "bar" -std::string GameData::getBaseName() const -{ - boost::filesystem::path path(mPath); - return path.stem().string(); -} diff --git a/src/GameData.h b/src/GameData.h deleted file mode 100644 index ebfca5e69..000000000 --- a/src/GameData.h +++ /dev/null @@ -1,71 +0,0 @@ -#ifndef _GAMEDATA_H_ -#define _GAMEDATA_H_ - -#include -#include - -#include "FileData.h" -#include "SystemData.h" - -//This class holds information about a game: at the least, its name, system, and path. Additional information is optional and read by other classes. -class GameData : public FileData -{ -public: - //static tag names for reading/writing XML documents. This might fail in PUGIXML_WCHAR_MODE - //TODO: The class should have member to read fromXML() and write toXML() probably... - static const std::string xmlTagGameList; - static const std::string xmlTagGame; - static const std::string xmlTagName; - static const std::string xmlTagPath; - static const std::string xmlTagDescription; - static const std::string xmlTagImagePath; - static const std::string xmlTagRating; - static const std::string xmlTagUserRating; - static const std::string xmlTagTimesPlayed; - static const std::string xmlTagLastPlayed; - - GameData(SystemData* system, std::string path, std::string name); - - const std::string & getName() const; - void setName(const std::string & name); - - const std::string & getPath() const; - void setPath(const std::string & path); - - const std::string & getDescription() const; - void setDescription(const std::string & description); - - const std::string & getImagePath() const; - void setImagePath(const std::string & imagePath); - - float getRating() const; - void setRating(float rating); - - float getUserRating() const; - void setUserRating(float rating); - - size_t getTimesPlayed() const; - void setTimesPlayed(size_t timesPlayed); - - std::time_t getLastPlayed() const; - void setLastPlayed(std::time_t lastPlayed); - - std::string getBashPath() const; - std::string getBaseName() const; - - bool isFolder() const; -private: - SystemData* mSystem; - std::string mPath; - std::string mName; - - //extra data - std::string mDescription; - std::string mImagePath; - float mRating; - float mUserRating; - size_t mTimesPlayed; - std::time_t mLastPlayed; -}; - -#endif diff --git a/src/GuiComponent.cpp b/src/GuiComponent.cpp deleted file mode 100644 index 4eb5d69f5..000000000 --- a/src/GuiComponent.cpp +++ /dev/null @@ -1,159 +0,0 @@ -#include "GuiComponent.h" -#include "Window.h" -#include "Log.h" -#include "Renderer.h" - -GuiComponent::GuiComponent(Window* window) : mWindow(window), mParent(NULL), mOpacity(255), - mPosition(Eigen::Vector3f::Zero()), mSize(Eigen::Vector2f::Zero()), mTransform(Eigen::Affine3f::Identity()) -{ -} - -GuiComponent::~GuiComponent() -{ - mWindow->removeGui(this); - - if(mParent) - mParent->removeChild(this); - - for(unsigned int i = 0; i < getChildCount(); i++) - getChild(i)->setParent(NULL); -} - -bool GuiComponent::input(InputConfig* config, Input input) -{ - for(unsigned int i = 0; i < getChildCount(); i++) - { - if(getChild(i)->input(config, input)) - return true; - } - - return false; -} - -void GuiComponent::update(int deltaTime) -{ - for(unsigned int i = 0; i < getChildCount(); i++) - { - getChild(i)->update(deltaTime); - } -} - -void GuiComponent::render(const Eigen::Affine3f& parentTrans) -{ - Eigen::Affine3f trans = parentTrans * getTransform(); - renderChildren(trans); -} - -void GuiComponent::renderChildren(const Eigen::Affine3f& transform) const -{ - for(unsigned int i = 0; i < getChildCount(); i++) - { - getChild(i)->render(transform); - } -} - -Eigen::Vector3f GuiComponent::getPosition() const -{ - return mPosition; -} - -void GuiComponent::setPosition(const Eigen::Vector3f& offset) -{ - mPosition = offset; - onPositionChanged(); -} - -void GuiComponent::setPosition(float x, float y, float z) -{ - mPosition << x, y, z; - onPositionChanged(); -} - -Eigen::Vector2f GuiComponent::getSize() const -{ - return mSize; -} - -void GuiComponent::setSize(const Eigen::Vector2f& size) -{ - mSize = size; - onSizeChanged(); -} - -void GuiComponent::setSize(float w, float h) -{ - mSize << w, h; - onSizeChanged(); -} - -//Children stuff. -void GuiComponent::addChild(GuiComponent* cmp) -{ - mChildren.push_back(cmp); - - if(cmp->getParent()) - cmp->getParent()->removeChild(cmp); - - cmp->setParent(this); -} - -void GuiComponent::removeChild(GuiComponent* cmp) -{ - if(cmp->getParent() != this) - { - LOG(LogError) << "Tried to remove child from incorrect parent!"; - } - - cmp->setParent(NULL); - - for(auto i = mChildren.begin(); i != mChildren.end(); i++) - { - if(*i == cmp) - { - mChildren.erase(i); - return; - } - } -} - -void GuiComponent::clearChildren() -{ - mChildren.clear(); -} - -unsigned int GuiComponent::getChildCount() const -{ - return mChildren.size(); -} - -GuiComponent* GuiComponent::getChild(unsigned int i) const -{ - return mChildren.at(i); -} - -void GuiComponent::setParent(GuiComponent* parent) -{ - mParent = parent; -} - -GuiComponent* GuiComponent::getParent() const -{ - return mParent; -} - -unsigned char GuiComponent::getOpacity() const -{ - return mOpacity; -} - -void GuiComponent::setOpacity(unsigned char opacity) -{ - mOpacity = opacity; -} - -const Eigen::Affine3f GuiComponent::getTransform() -{ - mTransform.setIdentity(); - mTransform.translate(mPosition); - return mTransform; -} diff --git a/src/GuiComponent.h b/src/GuiComponent.h deleted file mode 100644 index 23c371ac8..000000000 --- a/src/GuiComponent.h +++ /dev/null @@ -1,70 +0,0 @@ -#ifndef _GUICOMPONENT_H_ -#define _GUICOMPONENT_H_ - -#include "InputConfig.h" -#include - -class Window; - -class GuiComponent -{ -public: - GuiComponent(Window* window); - virtual ~GuiComponent(); - - //Called when input is received. - //Return true if the input is consumed, false if it should continue to be passed to other children. - virtual bool input(InputConfig* config, Input input); - - //Called when time passes. Default implementation also calls update(deltaTime) on children - so you should probably call GuiComponent::update(deltaTime) at some point. - virtual void update(int deltaTime); - - //Called when it's time to render. By default, just calls renderChildren(transform). - //You probably want to override this like so: - //1. Calculate the new transform that your control will draw at with Eigen::Affine3f t = parentTrans * getTransform(). - //2. Set the renderer to use that new transform as the model matrix - Renderer::setModelMatrix(t.data()); - //3. Draw your component. - //4. Tell your children to render, based on your component's transform - renderChildren(t). - virtual void render(const Eigen::Affine3f& parentTrans); - - Eigen::Vector3f getPosition() const; - void setPosition(const Eigen::Vector3f& offset); - void setPosition(float x, float y, float z = 0.0f); - virtual void onPositionChanged() {}; - - Eigen::Vector2f getSize() const; - void setSize(const Eigen::Vector2f& size); - void setSize(float w, float h); - virtual void onSizeChanged() {}; - - void setParent(GuiComponent* parent); - GuiComponent* getParent() const; - - void addChild(GuiComponent* cmp); - void removeChild(GuiComponent* cmp); - void clearChildren(); - unsigned int getChildCount() const; - GuiComponent* getChild(unsigned int i) const; - - unsigned char getOpacity() const; - void setOpacity(unsigned char opacity); - - const Eigen::Affine3f getTransform(); - -protected: - void renderChildren(const Eigen::Affine3f& transform) const; - - unsigned char mOpacity; - Window* mWindow; - - GuiComponent* mParent; - std::vector mChildren; - - Eigen::Vector3f mPosition; - Eigen::Vector2f mSize; - -private: - Eigen::Affine3f mTransform; //Don't access this directly! Use getTransform()! -}; - -#endif diff --git a/src/InputManager.cpp b/src/InputManager.cpp deleted file mode 100644 index fb76e48b1..000000000 --- a/src/InputManager.cpp +++ /dev/null @@ -1,459 +0,0 @@ -#include "InputManager.h" -#include "InputConfig.h" -#include "Window.h" -#include "Log.h" -#include "pugiXML/pugixml.hpp" -#include -#include "platform.h" - -#if defined(WIN32) || defined(_WIN32) - #include -#endif - -namespace fs = boost::filesystem; - -//----- InputDevice ---------------------------------------------------------------------------- - -InputDevice::InputDevice(const std::string & deviceName, unsigned long vendorId, unsigned long productId) - : name(deviceName), vendor(vendorId), product(productId) -{ -} - -bool InputDevice::operator==(const InputDevice & b) const -{ - return (name == b.name && vendor == b.vendor && product == b.product); -} - -//----- InputManager --------------------------------------------------------------------------- - -InputManager::InputManager(Window* window) : mWindow(window), - mJoysticks(NULL), mInputConfigs(NULL), mKeyboardInputConfig(NULL), mPrevAxisValues(NULL), - mNumJoysticks(0), mNumPlayers(0), devicePollingTimer(NULL) -{ -} - -InputManager::~InputManager() -{ - deinit(); -} - -std::vector InputManager::getInputDevices() const -{ - std::vector currentDevices; - - //retrieve all input devices from system -#if defined (__APPLE__) - #error TODO: Not implemented for MacOS yet!!! -#elif defined(__linux__) - //open linux input devices file system - const std::string inputPath("/dev/input"); - fs::directory_iterator dirIt(inputPath); - while (dirIt != fs::directory_iterator()) { - //get directory entry - std::string deviceName = (*dirIt).path().string(); - //remove parent path - deviceName.erase(0, inputPath.length() + 1); - //check if it start with "js" - if (deviceName.length() >= 3 && deviceName.find("js") == 0) { - //looks like a joystick. add to devices. - currentDevices.push_back(InputDevice(deviceName, 0, 0)); - } - ++dirIt; - } - //or dump /proc/bus/input/devices anbd search for a Handler=..."js"... entry -#elif defined(WIN32) || defined(_WIN32) - RAWINPUTDEVICELIST * deviceList = nullptr; - UINT nrOfDevices = 0; - //get number of input devices - if (GetRawInputDeviceList(deviceList, &nrOfDevices, sizeof(RAWINPUTDEVICELIST)) != -1 && nrOfDevices > 0) - { - //get list of input devices - deviceList = new RAWINPUTDEVICELIST[nrOfDevices]; - if (GetRawInputDeviceList(deviceList, &nrOfDevices, sizeof(RAWINPUTDEVICELIST)) != -1) - { - //loop through input devices - for (unsigned int i = 0; i < nrOfDevices; i++) - { - //get device name - char * rawName = new char[2048]; - UINT rawNameSize = 2047; - GetRawInputDeviceInfo(deviceList[i].hDevice, RIDI_DEVICENAME, (void *)rawName, &rawNameSize); - //null-terminate string - rawName[rawNameSize] = '\0'; - //convert to string - std::string deviceName = rawName; - delete [] rawName; - //get deviceType - RID_DEVICE_INFO deviceInfo; - UINT deviceInfoSize = sizeof(RID_DEVICE_INFO); - GetRawInputDeviceInfo(deviceList[i].hDevice, RIDI_DEVICEINFO, (void *)&deviceInfo, &deviceInfoSize); - //check if it is a HID. we ignore keyboards and mice... - if (deviceInfo.dwType == RIM_TYPEHID) - { - //check if the vendor/product already exists in list. yes. could be more elegant... - std::vector::const_iterator cdIt = currentDevices.cbegin(); - while (cdIt != currentDevices.cend()) - { - if (cdIt->name == deviceName && cdIt->product == deviceInfo.hid.dwProductId && cdIt->vendor == deviceInfo.hid.dwVendorId) - { - //device already there - break; - } - ++cdIt; - } - //was the device found? - if (cdIt == currentDevices.cend()) - { - //no. add it. - currentDevices.push_back(InputDevice(deviceName, deviceInfo.hid.dwProductId, deviceInfo.hid.dwVendorId)); - } - } - } - } - delete [] deviceList; - } -#endif - - return currentDevices; -} - -Uint32 InputManager::devicePollingCallback(Uint32 interval, void* param) -{ - //this thing my be running in a different thread, so we're not allowed to call - //any functions or change/allocate/delete stuff, but can send a user event - SDL_Event event; - event.user.type = SDL_USEREVENT; - event.user.code = SDL_USEREVENT_POLLDEVICES; - event.user.data1 = nullptr; - event.user.data2 = nullptr; - if (SDL_PushEvent(&event) != 0) { - LOG(LogError) << "InputManager::devicePollingCallback - SDL event queue is full!"; - } - - return interval; -} - -void InputManager::init() -{ - if(mJoysticks != NULL) - deinit(); - - //get current input devices from system - inputDevices = getInputDevices(); - - SDL_InitSubSystem(SDL_INIT_JOYSTICK | SDL_INIT_TIMER); - - mNumJoysticks = SDL_NumJoysticks(); - mJoysticks = new SDL_Joystick*[mNumJoysticks]; - mInputConfigs = new InputConfig*[mNumJoysticks]; - mPrevAxisValues = new std::map[mNumJoysticks]; - - for(int i = 0; i < mNumJoysticks; i++) - { - mJoysticks[i] = SDL_JoystickOpen(i); - mInputConfigs[i] = new InputConfig(i); - - for(int k = 0; k < SDL_JoystickNumAxes(mJoysticks[i]); k++) - { - mPrevAxisValues[i][k] = 0; - } - } - - mKeyboardInputConfig = new InputConfig(DEVICE_KEYBOARD); - - SDL_JoystickEventState(SDL_ENABLE); - - //start timer for input device polling - startPolling(); - - loadConfig(); -} - -void InputManager::startPolling() -{ - if(devicePollingTimer != NULL) - return; - - devicePollingTimer = SDL_AddTimer(POLLING_INTERVAL, devicePollingCallback, (void *)this); -} - -void InputManager::stopPolling() -{ - if(devicePollingTimer == NULL) - return; - - SDL_RemoveTimer(devicePollingTimer); - devicePollingTimer = NULL; -} - -void InputManager::deinit() -{ - stopPolling(); - - SDL_JoystickEventState(SDL_DISABLE); - - if(!SDL_WasInit(SDL_INIT_JOYSTICK)) - return; - - if(mJoysticks != NULL) - { - for(int i = 0; i < mNumJoysticks; i++) - { - SDL_JoystickClose(mJoysticks[i]); - delete mInputConfigs[i]; - } - - delete[] mInputConfigs; - mInputConfigs = NULL; - - delete[] mJoysticks; - mJoysticks = NULL; - - delete mKeyboardInputConfig; - mKeyboardInputConfig = NULL; - - delete[] mPrevAxisValues; - mPrevAxisValues = NULL; - } - - SDL_QuitSubSystem(SDL_INIT_JOYSTICK | SDL_INIT_TIMER); - - inputDevices.clear(); -} - -int InputManager::getNumJoysticks() { return mNumJoysticks; } -int InputManager::getButtonCountByDevice(int id) -{ - if(id == DEVICE_KEYBOARD) - return 120; //it's a lot, okay. - else - return SDL_JoystickNumButtons(mJoysticks[id]); -} - -int InputManager::getNumPlayers() { return mNumPlayers; } -void InputManager::setNumPlayers(int num) { mNumPlayers = num; } - -InputConfig* InputManager::getInputConfigByDevice(int device) -{ - if(device == DEVICE_KEYBOARD) - return mKeyboardInputConfig; - else - return mInputConfigs[device]; -} - -InputConfig* InputManager::getInputConfigByPlayer(int player) -{ - if(mKeyboardInputConfig->getPlayerNum() == player) - return mKeyboardInputConfig; - - for(int i = 0; i < mNumJoysticks; i++) - { - if(mInputConfigs[i]->getPlayerNum() == player) - return mInputConfigs[i]; - } - - LOG(LogError) << "Could not find input config for player number " << player << "!"; - return NULL; -} - -bool InputManager::parseEvent(const SDL_Event& ev) -{ - bool causedEvent = false; - switch(ev.type) - { - case SDL_JOYAXISMOTION: - //if it switched boundaries - if((abs(ev.jaxis.value) > DEADZONE) != (abs(mPrevAxisValues[ev.jaxis.which][ev.jaxis.axis]) > DEADZONE)) - { - int normValue; - if(abs(ev.jaxis.value) <= DEADZONE) - normValue = 0; - else - if(ev.jaxis.value > 0) - normValue = 1; - else - normValue = -1; - - mWindow->input(getInputConfigByDevice(ev.jaxis.which), Input(ev.jaxis.which, TYPE_AXIS, ev.jaxis.axis, normValue, false)); - causedEvent = true; - } - - mPrevAxisValues[ev.jaxis.which][ev.jaxis.axis] = ev.jaxis.value; - return causedEvent; - - case SDL_JOYBUTTONDOWN: - case SDL_JOYBUTTONUP: - mWindow->input(getInputConfigByDevice(ev.jbutton.which), Input(ev.jbutton.which, TYPE_BUTTON, ev.jbutton.button, ev.jbutton.state == SDL_PRESSED, false)); - return true; - - case SDL_JOYHATMOTION: - mWindow->input(getInputConfigByDevice(ev.jhat.which), Input(ev.jhat.which, TYPE_HAT, ev.jhat.hat, ev.jhat.value, false)); - return true; - - case SDL_KEYDOWN: - if(ev.key.keysym.sym == SDLK_F4) - { - SDL_Event* quit = new SDL_Event(); - quit->type = SDL_QUIT; - SDL_PushEvent(quit); - return false; - } - - mWindow->input(getInputConfigByDevice(DEVICE_KEYBOARD), Input(DEVICE_KEYBOARD, TYPE_KEY, ev.key.keysym.sym, 1, false)); - return true; - - case SDL_KEYUP: - mWindow->input(getInputConfigByDevice(DEVICE_KEYBOARD), Input(DEVICE_KEYBOARD, TYPE_KEY, ev.key.keysym.sym, 0, false)); - return true; - - case SDL_USEREVENT: - if (ev.user.code == SDL_USEREVENT_POLLDEVICES) { - //poll joystick / HID again - std::vector currentDevices = getInputDevices(); - //compare device lists to see if devices were added/deleted - if (currentDevices != inputDevices) { - LOG(LogInfo) << "Device configuration changed!"; - inputDevices = currentDevices; - //deinit and reinit InputManager - deinit(); - init(); - } - return true; - } - } - - return false; -} - -void InputManager::loadConfig() -{ - if(!mJoysticks) - { - LOG(LogError) << "ERROR - cannot load InputManager config without being initialized!"; - } - - std::string path = getConfigPath(); - if(!fs::exists(path)) - return; - - pugi::xml_document doc; - pugi::xml_parse_result res = doc.load_file(path.c_str()); - - if(!res) - { - LOG(LogError) << "Error loading input config: " << res.description(); - return; - } - - mNumPlayers = 0; - - bool* configuredDevice = new bool[mNumJoysticks]; - for(int i = 0; i < mNumJoysticks; i++) - { - mInputConfigs[i]->setPlayerNum(-1); - configuredDevice[i] = false; - } - - pugi::xml_node root = doc.child("inputList"); - - for(pugi::xml_node node = root.child("inputConfig"); node; node = node.next_sibling("inputConfig")) - { - std::string type = node.attribute("type").as_string(); - - if(type == "keyboard") - { - getInputConfigByDevice(DEVICE_KEYBOARD)->loadFromXML(node, mNumPlayers); - mNumPlayers++; - }else if(type == "joystick") - { - bool found = false; - std::string devName = node.attribute("deviceName").as_string(); - for(int i = 0; i < mNumJoysticks; i++) - { - if(!configuredDevice[i] && SDL_JoystickName(i) == devName) - { - mInputConfigs[i]->loadFromXML(node, mNumPlayers); - mNumPlayers++; - found = true; - configuredDevice[i] = true; - break; - } - } - - if(!found) - { - LOG(LogWarning) << "Could not find unconfigured joystick named \"" << devName << "\"! Skipping it.\n"; - continue; - } - }else{ - LOG(LogWarning) << "Device type \"" << type << "\" unknown!\n"; - } - } - - delete[] configuredDevice; - - if(mNumPlayers == 0) - { - LOG(LogInfo) << "No input configs loaded. Loading default keyboard config."; - loadDefaultConfig(); - } - - LOG(LogInfo) << "Loaded InputConfig data for " << getNumPlayers() << " devices."; -} - -//used in an "emergency" where no configs could be loaded from the inputmanager config file -//allows the user to select to reconfigure in menus if this happens without having to delete es_input.cfg manually -void InputManager::loadDefaultConfig() -{ - InputConfig* cfg = getInputConfigByDevice(DEVICE_KEYBOARD); - - mNumPlayers++; - cfg->setPlayerNum(0); - cfg->mapInput("up", Input(DEVICE_KEYBOARD, TYPE_KEY, SDLK_UP, 1, true)); - cfg->mapInput("down", Input(DEVICE_KEYBOARD, TYPE_KEY, SDLK_DOWN, 1, true)); - cfg->mapInput("left", Input(DEVICE_KEYBOARD, TYPE_KEY, SDLK_LEFT, 1, true)); - cfg->mapInput("right", Input(DEVICE_KEYBOARD, TYPE_KEY, SDLK_RIGHT, 1, true)); - - cfg->mapInput("a", Input(DEVICE_KEYBOARD, TYPE_KEY, SDLK_RETURN, 1, true)); - cfg->mapInput("b", Input(DEVICE_KEYBOARD, TYPE_KEY, SDLK_ESCAPE, 1, true)); - cfg->mapInput("menu", Input(DEVICE_KEYBOARD, TYPE_KEY, SDLK_F1, 1, true)); - cfg->mapInput("select", Input(DEVICE_KEYBOARD, TYPE_KEY, SDLK_F2, 1, true)); - cfg->mapInput("pageup", Input(DEVICE_KEYBOARD, TYPE_KEY, SDLK_RIGHTBRACKET, 1, true)); - cfg->mapInput("pagedown", Input(DEVICE_KEYBOARD, TYPE_KEY, SDLK_LEFTBRACKET, 1, true)); - - cfg->mapInput("mastervolup", Input(DEVICE_KEYBOARD, TYPE_KEY, SDLK_PLUS, 1, true)); - cfg->mapInput("mastervoldown", Input(DEVICE_KEYBOARD, TYPE_KEY, SDLK_MINUS, 1, true)); - - cfg->mapInput("sortordernext", Input(DEVICE_KEYBOARD, TYPE_KEY, SDLK_F7, 1, true)); - cfg->mapInput("sortorderprevious", Input(DEVICE_KEYBOARD, TYPE_KEY, SDLK_F8, 1, true)); -} - -void InputManager::writeConfig() -{ - if(!mJoysticks) - { - LOG(LogError) << "ERROR - cannot write config without being initialized!"; - return; - } - - std::string path = getConfigPath(); - - pugi::xml_document doc; - - pugi::xml_node root = doc.append_child("inputList"); - - mKeyboardInputConfig->writeToXML(root); - for(int i = 0; i < mNumJoysticks; i++) - { - mInputConfigs[i]->writeToXML(root); - } - - doc.save_file(path.c_str()); -} - -std::string InputManager::getConfigPath() -{ - std::string path = getHomePath(); - path += "/.emulationstation/es_input.cfg"; - return path; -} diff --git a/src/InputManager.h b/src/InputManager.h deleted file mode 100644 index e0cef8b61..000000000 --- a/src/InputManager.h +++ /dev/null @@ -1,85 +0,0 @@ -#ifndef _INPUTMANAGER_H_ -#define _INPUTMANAGER_H_ - -#include -#include -#include -#include - -class InputConfig; -class Window; - -struct InputDevice -{ - std::string name; - unsigned long vendor; - unsigned long product; - - InputDevice(const std::string & deviceName, unsigned long vendorId, unsigned long productId); - bool operator==(const InputDevice & b) const; -}; - -//you should only ever instantiate one of these, by the way -class InputManager -{ - static const int DEADZONE = 23000; - - Window* mWindow; - - //non-InputManager classes shouldn't use this, as you can easily miss the keyboard - InputConfig* getInputConfigByDevice(int device); - - void loadDefaultConfig(); - - int mNumJoysticks; - int mNumPlayers; - SDL_Joystick** mJoysticks; - InputConfig** mInputConfigs; - InputConfig* mKeyboardInputConfig; - std::map* mPrevAxisValues; - - std::vector inputDevices; - - /*! - Retrieve joysticks/ HID devices from system. - \return Returns a list of InputDevices that can be compared to the current /inputDevices to check if the configuration has changed. - \note This currently reads the content of the /dev/input on linux, searches for "js**" names and stores those. On Windows it uses GetRawInputDeviceInfo to find devices of type RIM_TYPEHID and stores those. - */ - std::vector getInputDevices() const; - - static const int POLLING_INTERVAL = 5000; - SDL_TimerID devicePollingTimer; - - /*! - Called when devicePollingTimer runs out. Sends a SDL_UserEvent with type SDL_USEREVENT_POLLDEVICES to the event queue. - */ - static Uint32 devicePollingCallback(Uint32 interval, void * param); - -public: - static const int SDL_USEREVENT_POLLDEVICES = SDL_USEREVENT + 100; //This event is issued when the input devices should be rescanned. - - InputManager(Window* window); - ~InputManager(); - - void loadConfig(); - void writeConfig(); - static std::string getConfigPath(); - - void init(); - void deinit(); - - void setNumPlayers(int num); - int getNumPlayers(); - - int getNumJoysticks(); - int getButtonCountByDevice(int id); - - bool parseEvent(const SDL_Event& ev); - - InputConfig* getInputConfigByPlayer(int player); - - void startPolling(); - void stopPolling(); -}; - -#endif diff --git a/src/MathExp.cpp b/src/MathExp.cpp deleted file mode 100644 index be5d42d6f..000000000 --- a/src/MathExp.cpp +++ /dev/null @@ -1,163 +0,0 @@ -#include "MathExp.h" -#include -#include - -bool MathExp::isOperator(const char c) -{ - if(c == *"+" || c == *"-" || c == *"*" || c == *"/" || c == *"(") - return true; - else - return false; -} - -bool MathExp::isRParen(const char c) -{ - if(c == *")") - return true; - else - return false; -} - -int MathExp::getPrecedence(const char c) -{ - if(c == *"(") - return -5; - - if(c == *"+" || c == *"-") - return 0; - - if(c == *"*" || c == *"/") - return 1; - - std::cout << "Error - getPrecedence(): unknown character '" << c << "'\n"; - return -1; -} - -float MathExp::eval() -{ - unsigned int start = 0; - for(unsigned int i = 0; i < mExpression.length(); i++) - { - if(isOperator(mExpression.at(i))) - { - //the string from start to i is an operand, and i is an operator - if(start != i) //if we actually do have an operand - mOperands.push(strToVal(mExpression.substr(start, i - start))); - else - std::cout << "skipping operand, start == i\n"; - - //now we must decide what to do with the operator - const char op = mExpression.at(i); - - if(op != *"(") - { - while(mOperators.size() && getPrecedence(mOperators.top()) >= getPrecedence(op)) - { - doNextOperation(); - } - } - - mOperators.push(op); - - start = i + 1; - }else{ - if(isRParen(mExpression.at(i))) - { - while(mOperators.top() != *"(") - { - doNextOperation(); - } - - mOperators.pop(); - } - } - } - - mOperands.push(strToVal(mExpression.substr(start, mExpression.length() - start))); - - - while(mOperators.size() > 0) - doNextOperation(); - - - if(mOperands.size() != 1) - { - std::cout << "Error - mOperands.size() = " << mOperands.size() << " at the end of evaluation!\n"; - return 0; - } - - float final = mOperands.top(); - mOperands.pop(); - - return final; -} - -void MathExp::doNextOperation() -{ - //pop operator off and apply it, then push the value onto the operand stack - const char top = mOperators.top(); - float val = 0; - - if(top == *"+") - { - val = mOperands.top(); - mOperands.pop(); - val += mOperands.top(); - mOperands.pop(); - } - if(top == *"-") - { - val = mOperands.top(); - mOperands.pop(); - val = mOperands.top() - val; - mOperands.pop(); - } - if(top == *"*") - { - val = mOperands.top(); - mOperands.pop(); - val *= mOperands.top(); - mOperands.pop(); - } - if(top == *"/") - { - val = mOperands.top(); - mOperands.pop(); - val = mOperands.top() / val; - mOperands.pop(); - } - - mOperands.push(val); - - mOperators.pop(); -} - -void MathExp::setExpression(std::string str) -{ - mExpression = str; -} - -void MathExp::setVariable(std::string name, float val) -{ - mVariables[name] = val; -} - -float MathExp::getVariable(std::string name) -{ - return mVariables[name]; -} - -float MathExp::strToVal(std::string str) -{ - if(str[0] == *"$") - return getVariable(str.substr(1, str.length() - 1)); //it's a variable! - - //it's a value! - std::stringstream stream; - stream << str; - - float value; - stream >> value; - - return value; -} diff --git a/src/MathExp.h b/src/MathExp.h deleted file mode 100644 index a8d76f461..000000000 --- a/src/MathExp.h +++ /dev/null @@ -1,37 +0,0 @@ -#ifndef _MATHEXP_H_ -#define _MATHEXP_H_ - -#include -#include -#include - -//A reusable class that evaluates simple mathematical expressions. -//Includes variable support - just use setVariable(name, value), and any instance of $name will be replaced with value. -class MathExp { -public: - - void setExpression(std::string str); - void setVariable(std::string name, float val); - float getVariable(std::string name); - - float eval(); - -private: - //float apply(const char operatorChar, std::string operand); - void doNextOperation(); - - bool isOperator(const char c); - bool isRParen(const char c); - int getPrecedence(const char c); - - float strToVal(std::string str); - - std::string mExpression; - - std::stack mOperands; - std::stack mOperators; - std::map mVariables; - -}; - -#endif diff --git a/src/Renderer_init_rpi.cpp b/src/Renderer_init_rpi.cpp deleted file mode 100644 index 97462a44b..000000000 --- a/src/Renderer_init_rpi.cpp +++ /dev/null @@ -1,234 +0,0 @@ -#include "Renderer.h" -#include -#include "platform.h" -#include -#include -#include -#include "Font.h" -#include -#include "InputManager.h" -#include "Log.h" - -#ifdef _RPI_ - #include -#endif - -namespace Renderer -{ - SDL_Surface* sdlScreen; - - EGLDisplay display; - EGLSurface surface; - EGLContext context; - EGLConfig config; - -#ifdef _RPI_ - static EGL_DISPMANX_WINDOW_T nativewindow; -#else - NativeWindowType nativewindow; -#endif - - unsigned int display_width = 0; - unsigned int display_height = 0; - - unsigned int getScreenWidth() { return display_width; } - unsigned int getScreenHeight() { return display_height; } - - bool createSurface() //unsigned int display_width, unsigned int display_height) - { - LOG(LogInfo) << "Starting SDL..."; - - if(SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO) != 0) - { - LOG(LogError) << "Error initializing SDL!\n " << SDL_GetError() << "\n" << "Are you in the 'video', 'audio', and 'input' groups? Is X closed? Is your firmware up to date? Are you using at least the 192/64 memory split?"; - return false; - } - - sdlScreen = SDL_SetVideoMode(1, 1, 0, SDL_SWSURFACE); - if(sdlScreen == NULL) - { - LOG(LogError) << "Error creating SDL window for input!"; - return false; - } - - - LOG(LogInfo) << "Creating surface..."; - -#ifdef _RPI_ - DISPMANX_ELEMENT_HANDLE_T dispman_element; - DISPMANX_DISPLAY_HANDLE_T dispman_display; - DISPMANX_UPDATE_HANDLE_T dispman_update; - VC_RECT_T dst_rect; - VC_RECT_T src_rect; -#endif - - display = eglGetDisplay(EGL_DEFAULT_DISPLAY); - if(display == EGL_NO_DISPLAY) - { - LOG(LogError) << "Error getting display!"; - return false; - } - - bool result = eglInitialize(display, NULL, NULL); - if(result == EGL_FALSE) - { - LOG(LogError) << "Error initializing display!"; - return false; - } - - result = eglBindAPI(EGL_OPENGL_ES_API); - if(result == EGL_FALSE) - { - LOG(LogError) << "Error binding API!"; - return false; - } - - - static const EGLint config_attributes[] = - { - EGL_RED_SIZE, 8, - EGL_GREEN_SIZE, 8, - EGL_BLUE_SIZE, 8, - EGL_ALPHA_SIZE, 8, - EGL_SURFACE_TYPE, EGL_WINDOW_BIT, - EGL_NONE - }; - - GLint numConfigs; - result = eglChooseConfig(display, config_attributes, &config, 1, &numConfigs); - - if(result == EGL_FALSE) - { - LOG(LogError) << "Error choosing config!"; - return false; - } - - - context = eglCreateContext(display, config, EGL_NO_CONTEXT, NULL); - if(context == EGL_NO_CONTEXT) - { - LOG(LogError) << "Error getting context!\n " << eglGetError(); - return false; - } - -#ifdef _RPI_ - //get hardware info for screen/desktop from BCM interface - if(!display_width || !display_height) - { - bool success = graphics_get_display_size(0, &display_width, &display_height); //0 = LCD - - if(success < 0) - { - LOG(LogError) << "Error getting display size!"; - return false; - } - } -#else - //get hardware info for screen/desktop from SDL - if(!display_width || !display_height) - { - const SDL_VideoInfo* videoInfo = SDL_GetVideoInfo(); - if(videoInfo == NULL) - { - LOG(LogError) << "Error getting display size!"; - return false; - } - else - { - display_width = current_w; - display_height = current_h; - } - } -#endif - - LOG(LogInfo) << "Resolution: " << display_width << "x" << display_height << "..."; - -#ifdef _RPI_ - dst_rect.x = 0; dst_rect.y = 0; - dst_rect.width = display_width; dst_rect.height = display_height; - - src_rect.x = 0; src_rect.y = 0; - src_rect.width = display_width << 16; src_rect.height = display_height << 16; - - dispman_display = vc_dispmanx_display_open(0); //0 = LCD - dispman_update = vc_dispmanx_update_start(0); - - dispman_element = vc_dispmanx_element_add(dispman_update, dispman_display, 0 /*layer*/, &dst_rect, 0 /*src*/, &src_rect, DISPMANX_PROTECTION_NONE, 0 /*alpha*/, 0 /*clamp*/, DISPMANX_NO_ROTATE /*transform*/); - - nativewindow.element = dispman_element; - nativewindow.width = display_width; nativewindow.height = display_height; - vc_dispmanx_update_submit_sync(dispman_update); -#endif - - surface = eglCreateWindowSurface(display, config, &nativewindow, NULL); - if(surface == EGL_NO_SURFACE) - { - LOG(LogError) << "Error creating window surface!"; - return false; - } - - result = eglMakeCurrent(display, surface, surface, context); - if(result == EGL_FALSE) - { - LOG(LogError) << "Error with eglMakeCurrent!"; - return false; - } - - - LOG(LogInfo) << "Created surface successfully!"; - - return true; - } - - void swapBuffers() - { - eglSwapBuffers(display, surface); - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - } - - void destroySurface() - { - eglSwapBuffers(display, surface); - eglMakeCurrent(display, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); - eglDestroySurface(display, surface); - eglDestroyContext(display, context); - eglTerminate(display); - - display = EGL_NO_DISPLAY; - surface = EGL_NO_SURFACE; - context = EGL_NO_CONTEXT; - - SDL_FreeSurface(sdlScreen); - sdlScreen = NULL; - SDL_Quit(); - } - - bool init(int w, int h) - { - if(w) - display_width = w; - if(h) - display_height = h; - - bool createdSurface = createSurface(); - - if(!createdSurface) - return false; - - glViewport(0, 0, display_width, display_height); - glMatrixMode(GL_PROJECTION); - glOrthof(0, display_width, display_height, 0, -1.0, 1.0); - glMatrixMode(GL_MODELVIEW); - glClearColor(1.0f, 1.0f, 1.0f, 1.0f); - - onInit(); - - return true; - } - - void deinit() - { - onDeinit(); - destroySurface(); - } -}; diff --git a/src/SystemData.cpp b/src/SystemData.cpp deleted file mode 100644 index e891197ba..000000000 --- a/src/SystemData.cpp +++ /dev/null @@ -1,367 +0,0 @@ -#include "SystemData.h" -#include "GameData.h" -#include "XMLReader.h" -#include -#include -#include -#include -#include "Renderer.h" -#include "AudioManager.h" -#include "VolumeControl.h" -#include "Log.h" -#include "InputManager.h" -#include -#include "Settings.h" - -std::vector SystemData::sSystemVector; - -namespace fs = boost::filesystem; - -std::string SystemData::getStartPath() { return mStartPath; } -std::string SystemData::getExtension() { return mSearchExtension; } - -SystemData::SystemData(std::string name, std::string descName, std::string startPath, std::string extension, std::string command) -{ - mName = name; - mDescName = descName; - - //expand home symbol if the startpath contains ~ - if(startPath[0] == '~') - { - startPath.erase(0, 1); - std::string home = getHomePath(); - startPath.insert(0, home); - } - - mStartPath = startPath; - mSearchExtension = extension; - mLaunchCommand = command; - - mRootFolder = new FolderData(this, mStartPath, "Search Root"); - - if(!Settings::getInstance()->getBool("PARSEGAMELISTONLY")) - populateFolder(mRootFolder); - - if(!Settings::getInstance()->getBool("IGNOREGAMELIST")) - parseGamelist(this); - - mRootFolder->sort(); -} - -SystemData::~SystemData() -{ - //save changed game data back to xml - if(!Settings::getInstance()->getBool("IGNOREGAMELIST")) { - updateGamelist(this); - } - delete mRootFolder; -} - -std::string strreplace(std::string& str, std::string replace, std::string with) -{ - size_t pos = str.find(replace); - - if(pos != std::string::npos) - return str.replace(pos, replace.length(), with.c_str(), with.length()); - else - return str; -} - -void SystemData::launchGame(Window* window, GameData* game) -{ - LOG(LogInfo) << "Attempting to launch game..."; - - AudioManager::getInstance()->deinit(); - VolumeControl::getInstance()->deinit(); - window->deinit(); - - std::string command = mLaunchCommand; - - command = strreplace(command, "%ROM%", game->getBashPath()); - command = strreplace(command, "%BASENAME%", game->getBaseName()); - command = strreplace(command, "%ROM_RAW%", game->getPath()); - - LOG(LogInfo) << " " << command; - std::cout << "==============================================\n"; - int exitCode = system(command.c_str()); - std::cout << "==============================================\n"; - - if(exitCode != 0) - { - LOG(LogWarning) << "...launch terminated with nonzero exit code " << exitCode << "!"; - } - - window->init(); - VolumeControl::getInstance()->init(); - AudioManager::getInstance()->init(); - window->normalizeNextUpdate(); - - //update number of times the game has been launched and the time - game->setTimesPlayed(game->getTimesPlayed() + 1); - game->setLastPlayed(std::time(nullptr)); -} - -void SystemData::populateFolder(FolderData* folder) -{ - std::string folderPath = folder->getPath(); - if(!fs::is_directory(folderPath)) - { - LOG(LogWarning) << "Error - folder with path \"" << folderPath << "\" is not a directory!"; - return; - } - - //make sure that this isn't a symlink to a thing we already have - if(fs::is_symlink(folderPath)) - { - //if this symlink resolves to somewhere that's at the beginning of our path, it's gonna recurse - if(folderPath.find(fs::canonical(folderPath).string()) == 0) - { - LOG(LogWarning) << "Skipping infinitely recursive symlink \"" << folderPath << "\""; - return; - } - } - - for(fs::directory_iterator end, dir(folderPath); dir != end; ++dir) - { - fs::path filePath = (*dir).path(); - - if(filePath.stem().string().empty()) - continue; - - //this is a little complicated because we allow a list of extensions to be defined (delimited with a space) - //we first get the extension of the file itself: - std::string extension = filePath.extension().string(); - std::string chkExt; - size_t extPos = 0; - - //folders *can* also match the extension and be added as games - this is mostly just to support higan - //see issue #75: https://github.com/Aloshi/EmulationStation/issues/75 - bool isGame = false; - do { - //now we loop through every extension in the list - size_t cpos = extPos; - extPos = mSearchExtension.find(" ", extPos); - chkExt = mSearchExtension.substr(cpos, ((extPos == std::string::npos) ? mSearchExtension.length() - cpos: extPos - cpos)); - - //if it matches, add it - if(chkExt == extension) - { - GameData* newGame = new GameData(this, filePath.generic_string(), filePath.stem().string()); - folder->pushFileData(newGame); - isGame = true; - break; - }else if(extPos != std::string::npos) //if not, add one to the "next position" marker to skip the space when reading the next extension - { - extPos++; - } - - } while(extPos != std::string::npos && chkExt != "" && chkExt.find(".") != std::string::npos); - - //add directories that also do not match an extension as folders - if(!isGame && fs::is_directory(filePath)) - { - FolderData* newFolder = new FolderData(this, filePath.generic_string(), filePath.stem().string()); - populateFolder(newFolder); - - //ignore folders that do not contain games - if(newFolder->getFileCount() == 0) - delete newFolder; - else - folder->pushFileData(newFolder); - } - } -} - -std::string SystemData::getName() -{ - return mName; -} - -std::string SystemData::getDescName() -{ - return mDescName; -} - -//creates systems from information located in a config file -bool SystemData::loadConfig(const std::string& path, bool writeExample) -{ - deleteSystems(); - - LOG(LogInfo) << "Loading system config file..."; - - if(!fs::exists(path)) - { - LOG(LogInfo) << "System config file \"" << path << "\" doesn't exist!"; - if(writeExample) - writeExampleConfig(path); - - return false; - } - - std::ifstream file(path.c_str()); - if(file.is_open()) - { - size_t lineNr = 0; - std::string line; - std::string sysName, sysDescName, sysPath, sysExtension, sysCommand; - while(file.good()) - { - lineNr++; - std::getline(file, line); - - //remove whitespace from line through STL and lambda magic - line.erase(std::remove_if(line.begin(), line.end(), [&](char c){ return std::string("\t\r\n\v\f").find(c) != std::string::npos; }), line.end()); - - //skip blank lines and comments - if(line.empty() || line.at(0) == '#') - continue; - - //find the name (left of the equals sign) and the value (right of the equals sign) - bool lineValid = false; - std::string varName; - std::string varValue; - const std::string::size_type equalsPos = line.find('=', 1); - if(equalsPos != std::string::npos) - { - lineValid = true; - varName = line.substr(0, equalsPos); - varValue = line.substr(equalsPos + 1, line.length() - 1); - } - - if(lineValid) - { - //map the value to the appropriate variable - if(varName == "NAME") - sysName = varValue; - else if(varName == "DESCNAME") - sysDescName = varValue; - else if(varName == "PATH") - { - if(varValue[varValue.length() - 1] == '/') - sysPath = varValue.substr(0, varValue.length() - 1); - else - sysPath = varValue; - //convert path to generic directory seperators - boost::filesystem::path genericPath(sysPath); - sysPath = genericPath.generic_string(); - } - else if(varName == "EXTENSION") - sysExtension = varValue; - else if(varName == "COMMAND") - sysCommand = varValue; - - //we have all our variables - create the system object - if(!sysName.empty() && !sysPath.empty() &&!sysExtension.empty() && !sysCommand.empty()) - { - if(sysDescName.empty()) - sysDescName = sysName; - - SystemData* newSystem = new SystemData(sysName, sysDescName, sysPath, sysExtension, sysCommand); - if(newSystem->getRootFolder()->getFileCount() == 0) - { - LOG(LogWarning) << "System \"" << sysName << "\" has no games! Ignoring it."; - delete newSystem; - }else{ - sSystemVector.push_back(newSystem); - } - - //reset the variables for the next block (should there be one) - sysName = ""; sysDescName = ""; sysPath = ""; sysExtension = ""; sysCommand = "" ; - } - }else{ - LOG(LogError) << "Error reading config file \"" << path << "\" - no equals sign found on line " << lineNr << ": \"" << line << "\"!"; - return false; - } - } - }else{ - LOG(LogError) << "Error - could not load config file \"" << path << "\"!"; - return false; - } - - LOG(LogInfo) << "Finished loading config file - created " << sSystemVector.size() << " systems."; - return true; -} - -void SystemData::writeExampleConfig(const std::string& path) -{ - std::cerr << "Writing example config to \"" << path << "\"..."; - - std::ofstream file(path.c_str()); - - file << "# This is the EmulationStation Systems configuration file." << std::endl; - file << "# Lines that begin with a hash (#) are ignored, as are empty lines." << std::endl; - file << "# A sample system might look like this:" << std::endl; - file << "#NAME=nes" << std::endl; - file << "#DESCNAME=Nintendo Entertainment System" << std::endl; - file << "#PATH=~/ROMs/nes/" << std::endl; - file << "#EXTENSION=.nes .NES" << std::endl; - file << "#COMMAND=retroarch -L ~/cores/libretro-fceumm.so %ROM%" << std::endl << std::endl; - - file << "#NAME is a short name used internally (and in alternative paths)." << std::endl; - file << "#DESCNAME is a descriptive name to identify the system. It may be displayed in a header." << std::endl; - file << "#PATH is the path to start the recursive search for ROMs in. ~ will be expanded into the $HOME variable." << std::endl; - file << "#EXTENSION is a list of extensions to search for, separated by spaces. You MUST include the period, and it must be exact - it's case sensitive, and no wildcards." << std::endl; - file << "#COMMAND is the shell command to execute when a game is selected. %ROM% will be replaced with the (bash special-character escaped) path to the ROM." << std::endl << std::endl; - - file << "#Now try your own!" << std::endl; - file << "NAME=" << std::endl; - file << "DESCNAME=" << std::endl; - file << "PATH=" << std::endl; - file << "EXTENSION=" << std::endl; - file << "COMMAND=" << std::endl; - - file.close(); - - std::cerr << "done. Go read it!\n"; -} - -void SystemData::deleteSystems() -{ - for(unsigned int i = 0; i < sSystemVector.size(); i++) - { - delete sSystemVector.at(i); - } - sSystemVector.clear(); -} - -std::string SystemData::getConfigPath() -{ - std::string home = getHomePath(); - if(home.empty()) - { - LOG(LogError) << "$HOME environment variable empty or nonexistant!"; - exit(1); - return ""; - } - - return(home + "/.emulationstation/es_systems.cfg"); -} - -FolderData* SystemData::getRootFolder() -{ - return mRootFolder; -} - -std::string SystemData::getGamelistPath() -{ - std::string filePath; - - filePath = mRootFolder->getPath() + "/gamelist.xml"; - if(fs::exists(filePath)) - return filePath; - - filePath = getHomePath(); - filePath += "/.emulationstation/"+ getName() + "/gamelist.xml"; - if(fs::exists(filePath)) - return filePath; - - return ""; -} - -bool SystemData::hasGamelist() -{ - if(getGamelistPath().empty()) - return false; - else - return true; -} diff --git a/src/SystemData.h b/src/SystemData.h deleted file mode 100644 index eaa31e4d0..000000000 --- a/src/SystemData.h +++ /dev/null @@ -1,45 +0,0 @@ -#ifndef _SYSTEMDATA_H_ -#define _SYSTEMDATA_H_ - -#include -#include -#include "FolderData.h" -#include "Window.h" - -class GameData; - -class SystemData -{ -public: - SystemData(std::string name, std::string descName, std::string startPath, std::string extension, std::string command); - ~SystemData(); - - FolderData* getRootFolder(); - std::string getName(); - std::string getDescName(); - std::string getStartPath(); - std::string getExtension(); - std::string getGamelistPath(); - bool hasGamelist(); - - void launchGame(Window* window, GameData* game); - - static void deleteSystems(); - static bool loadConfig(const std::string& path, bool writeExampleIfNonexistant = true); //Load the system config file at getConfigPath(). Returns true if no errors were encountered. An example can be written if the file doesn't exist. - static void writeExampleConfig(const std::string& path); - static std::string getConfigPath(); - - static std::vector sSystemVector; -private: - std::string mName; - std::string mDescName; - std::string mStartPath; - std::string mSearchExtension; - std::string mLaunchCommand; - - void populateFolder(FolderData* folder); - - FolderData* mRootFolder; -}; - -#endif diff --git a/src/Window.cpp b/src/Window.cpp deleted file mode 100644 index 8c4ce6dfb..000000000 --- a/src/Window.cpp +++ /dev/null @@ -1,195 +0,0 @@ -#include "Window.h" -#include -#include "Renderer.h" -#include "AudioManager.h" -#include "VolumeControl.h" -#include "Log.h" -#include "Settings.h" -#include - -Window::Window() : mNormalizeNextUpdate(false), mFrameTimeElapsed(0), mFrameCountElapsed(0), mAverageDeltaTime(10), - mZoomFactor(1.0f), mCenterPoint(0, 0), mMatrix(Eigen::Affine3f::Identity()), mFadePercent(0.0f) -{ - mInputManager = new InputManager(this); - setCenterPoint(Eigen::Vector2f(Renderer::getScreenWidth() / 2, Renderer::getScreenHeight() / 2)); -} - -Window::~Window() -{ - //delete all our GUIs - while(peekGui()) - delete peekGui(); - - delete mInputManager; -} - -void Window::pushGui(GuiComponent* gui) -{ - mGuiStack.push_back(gui); -} - -void Window::removeGui(GuiComponent* gui) -{ - for(auto i = mGuiStack.begin(); i != mGuiStack.end(); i++) - { - if(*i == gui) - { - mGuiStack.erase(i); - return; - } - } -} - -GuiComponent* Window::peekGui() -{ - if(mGuiStack.size() == 0) - return NULL; - - return mGuiStack.at(mGuiStack.size() - 1); -} - -bool Window::init(unsigned int width, unsigned int height) -{ - if(!Renderer::init(width, height)) - { - LOG(LogError) << "Renderer failed to initialize!"; - return false; - } - - mInputManager->init(); - - mResourceManager.reloadAll(); - - //keep a reference to the default fonts, so they don't keep getting destroyed/recreated - if(mDefaultFonts.empty()) - { - mDefaultFonts.push_back(Font::get(mResourceManager, Font::getDefaultPath(), FONT_SIZE_SMALL)); - mDefaultFonts.push_back(Font::get(mResourceManager, Font::getDefaultPath(), FONT_SIZE_MEDIUM)); - mDefaultFonts.push_back(Font::get(mResourceManager, Font::getDefaultPath(), FONT_SIZE_LARGE)); - } - - return true; -} - -void Window::deinit() -{ - mInputManager->deinit(); - mResourceManager.unloadAll(); - Renderer::deinit(); -} - -void Window::input(InputConfig* config, Input input) -{ - if(config->isMappedTo("mastervolup", input)) - { - VolumeControl::getInstance()->setVolume(VolumeControl::getInstance()->getVolume() + 5); - } - else if(config->isMappedTo("mastervoldown", input)) - { - VolumeControl::getInstance()->setVolume(VolumeControl::getInstance()->getVolume() - 5); - } - else if(peekGui()) - this->peekGui()->input(config, input); -} - -void Window::update(int deltaTime) -{ - if(mNormalizeNextUpdate) - { - mNormalizeNextUpdate = false; - if(deltaTime > mAverageDeltaTime) - deltaTime = mAverageDeltaTime; - } - - mFrameTimeElapsed += deltaTime; - mFrameCountElapsed++; - if(mFrameTimeElapsed > 500) - { - mAverageDeltaTime = mFrameTimeElapsed / mFrameCountElapsed; - - if(Settings::getInstance()->getBool("DRAWFRAMERATE")) - { - std::stringstream ss; - ss << std::fixed << std::setprecision(1) << (1000.0f * (float)mFrameCountElapsed / (float)mFrameTimeElapsed) << "fps, "; - ss << std::fixed << std::setprecision(2) << ((float)mFrameTimeElapsed / (float)mFrameCountElapsed) << "ms"; - mFrameDataString = ss.str(); - } - - mFrameTimeElapsed = 0; - mFrameCountElapsed = 0; - } - - if(peekGui()) - peekGui()->update(deltaTime); -} - -void Window::render() -{ - //there's nothing to render, which should pretty much never happen - if(mGuiStack.size() == 0) - std::cout << "guistack empty\n"; - - for(unsigned int i = 0; i < mGuiStack.size(); i++) - { - mGuiStack.at(i)->render(mMatrix); - } - - postProcess(); - - if(Settings::getInstance()->getBool("DRAWFRAMERATE")) - { - Renderer::setMatrix(Eigen::Affine3f::Identity()); - mDefaultFonts.at(1)->drawText(mFrameDataString, Eigen::Vector2f(50, 50), 0xFF00FFFF); - } -} - -void Window::normalizeNextUpdate() -{ - mNormalizeNextUpdate = true; -} - -InputManager* Window::getInputManager() -{ - return mInputManager; -} - -ResourceManager* Window::getResourceManager() -{ - return &mResourceManager; -} - -void Window::setZoomFactor(const float& zoom) -{ - mZoomFactor = zoom; - updateMatrix(); -} - -void Window::setCenterPoint(const Eigen::Vector2f& point) -{ - mCenterPoint = point; - updateMatrix(); -} - -void Window::updateMatrix() -{ - const float sw = Renderer::getScreenWidth() / mZoomFactor; - const float sh = Renderer::getScreenHeight() / mZoomFactor; - - mMatrix = Eigen::Affine3f::Identity(); - mMatrix = mMatrix.scale(Eigen::Vector3f(mZoomFactor, mZoomFactor, 1)); - mMatrix = mMatrix.translate(Eigen::Vector3f(sw / 2 - mCenterPoint.x(), sh / 2 - mCenterPoint.y(), 0)); -} - -void Window::setFadePercent(const float& perc) -{ - mFadePercent = perc; -} - -void Window::postProcess() -{ - if(mFadePercent > 0.0f) - { - Renderer::setMatrix(Eigen::Affine3f::Identity()); - Renderer::drawRect(0, 0, Renderer::getScreenWidth(), Renderer::getScreenHeight(), 0x00000000 | ((unsigned char)(mFadePercent * 255))); - } -} diff --git a/src/Window.h b/src/Window.h deleted file mode 100644 index 9cb694d85..000000000 --- a/src/Window.h +++ /dev/null @@ -1,61 +0,0 @@ -#ifndef _WINDOW_H_ -#define _WINDOW_H_ - -#include "GuiComponent.h" -#include "InputManager.h" -#include "resources/ResourceManager.h" -#include -#include "Font.h" - -class Window -{ -public: - Window(); - ~Window(); - - void pushGui(GuiComponent* gui); - void removeGui(GuiComponent* gui); - GuiComponent* peekGui(); - - void input(InputConfig* config, Input input); - void update(int deltaTime); - void render(); - - bool init(unsigned int width = 0, unsigned int height = 0); - void deinit(); - - InputManager* getInputManager(); - ResourceManager* getResourceManager(); - - void normalizeNextUpdate(); - - void setZoomFactor(const float& zoom); - void setCenterPoint(const Eigen::Vector2f& point); - - void setFadePercent(const float& perc); - -private: - InputManager* mInputManager; - ResourceManager mResourceManager; - std::vector mGuiStack; - - std::vector< std::shared_ptr > mDefaultFonts; - - int mFrameTimeElapsed; - int mFrameCountElapsed; - int mAverageDeltaTime; - std::string mFrameDataString; - - bool mNormalizeNextUpdate; - - float mZoomFactor; - Eigen::Vector2f mCenterPoint; - - void updateMatrix(); - Eigen::Affine3f mMatrix; - - void postProcess(); - float mFadePercent; -}; - -#endif diff --git a/src/XMLReader.cpp b/src/XMLReader.cpp deleted file mode 100644 index 517ae8509..000000000 --- a/src/XMLReader.cpp +++ /dev/null @@ -1,325 +0,0 @@ -#include "XMLReader.h" -#include "SystemData.h" -#include "GameData.h" -#include "pugiXML/pugixml.hpp" -#include -#include "Log.h" - -//this is obviously an incredibly inefficient way to go about searching -//but I don't think it'll matter too much with the size of most collections -GameData* searchFolderByPath(FolderData* folder, std::string const& path) -{ - for(unsigned int i = 0; i < folder->getFileCount(); i++) - { - FileData* file = folder->getFile(i); - - if(file->isFolder()) - { - GameData* result = searchFolderByPath((FolderData*)file, path); - if(result) - return (GameData*)result; - }else{ - if(file->getPath() == path) - return (GameData*)file; - } - } - - return NULL; -} - -GameData* createGameFromPath(std::string gameAbsPath, SystemData* system) -{ - std::string gamePath = gameAbsPath; - std::string sysPath = system->getStartPath(); - - //strip out the system path stuff so it's relative to the system root folder - unsigned int i = 0; - while(i < gamePath.length() && i < sysPath.length() && gamePath[i] == sysPath[i]) - i++; - - gamePath = gamePath.substr(i, gamePath.length() - i); - - - if(gamePath[0] != '/') - gamePath.insert(0, "/"); - - - //make our way through the directory tree finding each folder in our path or creating it if it doesn't exist - FolderData* folder = system->getRootFolder(); - - size_t separator = 0; - size_t nextSeparator = 0; - unsigned int loops = 0; - while(nextSeparator != std::string::npos) - { - //determine which chunk of the path we're testing right now - nextSeparator = gamePath.find('/', separator + 1); - if(nextSeparator == std::string::npos) - break; - - std::string checkName = gamePath.substr(separator + 1, nextSeparator - separator - 1); - separator = nextSeparator; - - //see if the folder already exists - bool foundFolder = false; - for(unsigned int i = 0; i < folder->getFileCount(); i++) - { - FileData* checkFolder = folder->getFile(i); - if(checkFolder->isFolder() && checkFolder->getName() == checkName) - { - folder = (FolderData*)checkFolder; - foundFolder = true; - break; - } - } - - //the folder didn't already exist, so create it - if(!foundFolder) - { - FolderData* newFolder = new FolderData(system, folder->getPath() + "/" + checkName, checkName); - folder->pushFileData(newFolder); - folder = newFolder; - } - - //if for some reason this function is broken, break out of this while instead of freezing - if(loops > gamePath.length() * 2) - { - LOG(LogError) << "createGameFromPath breaking out of loop for path \"" << gamePath << "\" to prevent infinite loop (please report this)"; - break; - } - loops++; - } - - - //find gameName - std::string gameName = gamePath.substr(separator + 1, gamePath.find(".", separator) - separator - 1); - - GameData* game = new GameData(system, gameAbsPath, gameName); - folder->pushFileData(game); - return game; -} - -void parseGamelist(SystemData* system) -{ - std::string xmlpath = system->getGamelistPath(); - - if(xmlpath.empty()) - return; - - LOG(LogInfo) << "Parsing XML file \"" << xmlpath << "\"..."; - - pugi::xml_document doc; - pugi::xml_parse_result result = doc.load_file(xmlpath.c_str()); - - if(!result) - { - LOG(LogError) << "Error parsing XML file \"" << xmlpath << "\"!\n " << result.description(); - return; - } - - pugi::xml_node root = doc.child(GameData::xmlTagGameList.c_str()); - if(!root) - { - LOG(LogError) << "Could not find <" << GameData::xmlTagGameList << "> node in gamelist \"" << xmlpath << "\"!"; - return; - } - - for(pugi::xml_node gameNode = root.child(GameData::xmlTagGame.c_str()); gameNode; gameNode = gameNode.next_sibling(GameData::xmlTagGame.c_str())) - { - pugi::xml_node pathNode = gameNode.child(GameData::xmlTagPath.c_str()); - if(!pathNode) - { - LOG(LogError) << "<" << GameData::xmlTagGame << "> node contains no <" << GameData::xmlTagPath << "> child!"; - continue; - } - - //convert path to generic directory seperators - boost::filesystem::path gamePath(pathNode.text().get()); - std::string path = gamePath.generic_string(); - - //expand "." - if(path[0] == '.') - { - path.erase(0, 1); - path.insert(0, system->getRootFolder()->getPath()); - } - - if(boost::filesystem::exists(path)) - { - GameData* game = searchFolderByPath(system->getRootFolder(), path); - - if(game == NULL) - game = createGameFromPath(path, system); - - //actually gather the information in the XML doc, then pass it to the game's set method - std::string newName, newDesc, newImage; - - if(gameNode.child(GameData::xmlTagName.c_str())) - { - game->setName(gameNode.child(GameData::xmlTagName.c_str()).text().get()); - } - if(gameNode.child(GameData::xmlTagDescription.c_str())) - { - game->setDescription(gameNode.child(GameData::xmlTagDescription.c_str()).text().get()); - } - if(gameNode.child(GameData::xmlTagImagePath.c_str())) - { - newImage = gameNode.child(GameData::xmlTagImagePath.c_str()).text().get(); - - //expand "." - if(newImage[0] == '.') - { - newImage.erase(0, 1); - boost::filesystem::path pathname(xmlpath); - newImage.insert(0, pathname.parent_path().generic_string() ); - } - - //if the image exist, set it - if(boost::filesystem::exists(newImage)) - { - game->setImagePath(newImage); - } - } - - //get rating and the times played from the XML doc - if(gameNode.child(GameData::xmlTagRating.c_str())) - { - float rating; - std::istringstream(gameNode.child(GameData::xmlTagRating.c_str()).text().get()) >> rating; - game->setRating(rating); - } - if(gameNode.child(GameData::xmlTagUserRating.c_str())) - { - float userRating; - std::istringstream(gameNode.child(GameData::xmlTagUserRating.c_str()).text().get()) >> userRating; - game->setUserRating(userRating); - } - if(gameNode.child(GameData::xmlTagTimesPlayed.c_str())) - { - size_t timesPlayed; - std::istringstream(gameNode.child(GameData::xmlTagTimesPlayed.c_str()).text().get()) >> timesPlayed; - game->setTimesPlayed(timesPlayed); - } - if(gameNode.child(GameData::xmlTagLastPlayed.c_str())) - { - std::time_t lastPlayed; - std::istringstream(gameNode.child(GameData::xmlTagLastPlayed.c_str()).text().get()) >> lastPlayed; - game->setLastPlayed(lastPlayed); - } - } - else{ - LOG(LogWarning) << "Game at \"" << path << "\" does not exist!"; - } - } -} - -void addGameDataNode(pugi::xml_node & parent, const GameData * game) -{ - //create game and add to parent node - pugi::xml_node newGame = parent.append_child(GameData::xmlTagGame.c_str()); - //add values - if (!game->getPath().empty()) { - pugi::xml_node pathNode = newGame.append_child(GameData::xmlTagPath.c_str()); - //store path with generic directory seperators - boost::filesystem::path gamePath(game->getPath()); - pathNode.text().set(gamePath.generic_string().c_str()); - } - if (!game->getName().empty()) { - pugi::xml_node nameNode = newGame.append_child(GameData::xmlTagName.c_str()); - nameNode.text().set(game->getName().c_str()); - } - if (!game->getDescription().empty()) { - pugi::xml_node descriptionNode = newGame.append_child(GameData::xmlTagDescription.c_str()); - descriptionNode.text().set(game->getDescription().c_str()); - } - if (!game->getImagePath().empty()) { - pugi::xml_node imagePathNode = newGame.append_child(GameData::xmlTagImagePath.c_str()); - imagePathNode.text().set(game->getImagePath().c_str()); - } - //all other values are added regardless of their value - pugi::xml_node ratingNode = newGame.append_child(GameData::xmlTagRating.c_str()); - ratingNode.text().set(std::to_string((long double)game->getRating()).c_str()); - - pugi::xml_node userRatingNode = newGame.append_child(GameData::xmlTagUserRating.c_str()); - userRatingNode.text().set(std::to_string((long double)game->getUserRating()).c_str()); - - pugi::xml_node timesPlayedNode = newGame.append_child(GameData::xmlTagTimesPlayed.c_str()); - timesPlayedNode.text().set(std::to_string((unsigned long long)game->getTimesPlayed()).c_str()); - - pugi::xml_node lastPlayedNode = newGame.append_child(GameData::xmlTagLastPlayed.c_str()); - lastPlayedNode.text().set(std::to_string((unsigned long long)game->getLastPlayed()).c_str()); -} - -void updateGamelist(SystemData* system) -{ - //We do this by reading the XML again, adding changes and then writing it back, - //because there might be information missing in our systemdata which would then miss in the new XML. - //We have the complete information for every game though, so we can simply remove a game - //we already have in the system from the XML, and then add it back from its GameData information... - - std::string xmlpath = system->getGamelistPath(); - if(xmlpath.empty()) { - return; - } - - LOG(LogInfo) << "Parsing XML file \"" << xmlpath << "\" before writing..."; - - pugi::xml_document doc; - pugi::xml_parse_result result = doc.load_file(xmlpath.c_str()); - - if(!result) { - LOG(LogError) << "Error parsing XML file \"" << xmlpath << "\"!\n " << result.description(); - return; - } - - pugi::xml_node root = doc.child(GameData::xmlTagGameList.c_str()); - if(!root) { - LOG(LogError) << "Could not find <" << GameData::xmlTagGameList << "> node in gamelist \"" << xmlpath << "\"!"; - return; - } - - //now we have all the information from the XML. now iterate through all our games and add information from there - FolderData * rootFolder = system->getRootFolder(); - if (rootFolder != nullptr) { - //get only files, no folders - std::vector files = rootFolder->getFilesRecursive(true); - //iterate through all files, checking if they're already in the XML - std::vector::const_iterator fit = files.cbegin(); - while(fit != files.cend()) { - //try to cast to gamedata - const GameData * game = dynamic_cast(*fit); - if (game != nullptr) { - //worked. check if this games' path can be found somewhere in the XML - for(pugi::xml_node gameNode = root.child(GameData::xmlTagGame.c_str()); gameNode; gameNode = gameNode.next_sibling(GameData::xmlTagGame.c_str())) { - //get path from game node - pugi::xml_node pathNode = gameNode.child(GameData::xmlTagPath.c_str()); - if(!pathNode) - { - LOG(LogError) << "<" << GameData::xmlTagGame << "> node contains no <" << GameData::xmlTagPath << "> child!"; - continue; - } - //check paths. use the same directory separators - boost::filesystem::path nodePath(pathNode.text().get()); - boost::filesystem::path gamePath(game->getPath()); - if (nodePath.generic_string() == gamePath.generic_string()) { - //found the game. remove it. it will be added again later with updated values - root.remove_child(gameNode); - //break node search loop - break; - } - } - //either the game content was removed, because it needs to be updated, - //or didn't exist in the first place, so just add it - addGameDataNode(root, game); - } - ++fit; - } - //now write the file - if (!doc.save_file(xmlpath.c_str())) { - LOG(LogError) << "Error saving XML file \"" << xmlpath << "\"!"; - } - } - else { - LOG(LogError) << "Found no root folder for system \"" << system->getName() << "\"!"; - } -} diff --git a/src/XMLReader.h b/src/XMLReader.h deleted file mode 100644 index ea3b4399b..000000000 --- a/src/XMLReader.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef _XMLREADER_H_ -#define _XMLREADER_H_ - -#include -class SystemData; - -//Loads gamelist.xml data into a SystemData. -void parseGamelist(SystemData* system); - -//Writes changes to SystemData back to a previously loaded gamelist.xml. -void updateGamelist(SystemData* system); - -#endif diff --git a/src/components/AnimationComponent.cpp b/src/components/AnimationComponent.cpp deleted file mode 100644 index c07be41f3..000000000 --- a/src/components/AnimationComponent.cpp +++ /dev/null @@ -1,100 +0,0 @@ -#include "AnimationComponent.h" - -AnimationComponent::AnimationComponent() -{ - mMoveX = 0; - mMoveY = 0; - mMoveSpeed = 0; - mFadeRate = 0; - mOpacity = 0; - mAccumulator = 0; -} - -void AnimationComponent::move(int x, int y, int speed) -{ - mMoveX = x; - mMoveY = y; - mMoveSpeed = speed; -} - -void AnimationComponent::fadeIn(int time) -{ - mOpacity = 0; - setChildrenOpacity(0); - - mFadeRate = time; -} - -void AnimationComponent::fadeOut(int time) -{ - mOpacity = 255; - setChildrenOpacity(255); - - mFadeRate = -time; -} - -//this should really be fixed at the system loop level... -void AnimationComponent::update(int deltaTime) -{ - mAccumulator += deltaTime; - while(mAccumulator >= ANIMATION_TICK_SPEED) - { - mAccumulator -= ANIMATION_TICK_SPEED; - - if(mMoveX != 0 || mMoveY != 0) - { - Eigen::Vector2i offset(mMoveX, mMoveY); - if(abs(offset.x()) > mMoveSpeed) - offset.x() = mMoveSpeed * (offset.x() > 0 ? 1 : -1); - if(abs(offset.y()) > mMoveSpeed) - offset.y() = mMoveSpeed * (offset.y() > 0 ? 1 : -1); - - moveChildren(offset.x(), offset.y()); - - mMoveX -= offset.x(); - mMoveY -= offset.y(); - } - - if(mFadeRate != 0) - { - int opacity = (int)mOpacity + mFadeRate; - if(opacity > 255) - { - mFadeRate = 0; - opacity = 255; - } - - if(opacity < 0) - { - mFadeRate = 0; - opacity = 0; - } - - mOpacity = (unsigned char)opacity; - setChildrenOpacity((unsigned char)opacity); - } - } -} - -void AnimationComponent::addChild(GuiComponent* gui) -{ - mChildren.push_back(gui); -} - -void AnimationComponent::moveChildren(int offsetx, int offsety) -{ - Eigen::Vector3f move((float)offsetx, (float)offsety, 0); - for(unsigned int i = 0; i < mChildren.size(); i++) - { - GuiComponent* comp = mChildren.at(i); - comp->setPosition(comp->getPosition() + move); - } -} - -void AnimationComponent::setChildrenOpacity(unsigned char opacity) -{ - for(unsigned int i = 0; i < mChildren.size(); i++) - { - mChildren.at(i)->setOpacity(opacity); - } -} diff --git a/src/components/AnimationComponent.h b/src/components/AnimationComponent.h deleted file mode 100644 index ce37beb8b..000000000 --- a/src/components/AnimationComponent.h +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef _ANIMATIONCOMPONENT_H_ -#define _ANIMATIONCOMPONENT_H_ - -#include "../GuiComponent.h" -#include - -#define ANIMATION_TICK_SPEED 16 - -//just fyi, this is easily the worst animation system i've ever written. -//it was mostly written during a single lecture and it really shows in how un-thought-out it is -//it also hasn't been converted to use floats or vectors yet -class AnimationComponent -{ -public: - AnimationComponent(); - - void move(int x, int y, int speed); - void fadeIn(int time); - void fadeOut(int time); - - void update(int deltaTime); - - void addChild(GuiComponent* gui); - -private: - unsigned char mOpacity; - - std::vector mChildren; - - void moveChildren(int offsetx, int offsety); - void setChildrenOpacity(unsigned char opacity); - - int mFadeRate; - int mMoveX, mMoveY, mMoveSpeed; - - int mAccumulator; -}; - -#endif diff --git a/src/components/ComponentListComponent.cpp b/src/components/ComponentListComponent.cpp deleted file mode 100644 index 6afc01209..000000000 --- a/src/components/ComponentListComponent.cpp +++ /dev/null @@ -1,329 +0,0 @@ -#include "ComponentListComponent.h" -#include "../Log.h" -#include "../Renderer.h" - -#define INITIAL_CELL_SIZE 12 - -ComponentListComponent::ComponentListComponent(Window* window, Eigen::Vector2i gridDimensions) : GuiComponent(window), mGrid(NULL), mColumnWidths(NULL), mRowHeights(NULL) -{ - mEntries.reserve(gridDimensions.x() * gridDimensions.y()); - makeCells(gridDimensions); -} - -void ComponentListComponent::makeCells(Eigen::Vector2i size) -{ - if(mGrid) - delete[] mGrid; - if(mColumnWidths) - delete[] mColumnWidths; - if(mRowHeights) - delete[] mRowHeights; - - mGridSize = size; - mGrid = new ComponentEntry*[size.x() * size.y()]; - std::fill(mGrid, mGrid + (size.x() * size.y()), (ComponentEntry*)NULL); - - mColumnWidths = new unsigned int[size.x()]; - std::fill(mColumnWidths, mColumnWidths + size.x(), INITIAL_CELL_SIZE); - - mRowHeights = new unsigned int[size.y()]; - std::fill(mRowHeights, mRowHeights + size.y(), INITIAL_CELL_SIZE); - - updateSize(); - resetCursor(); -} - -void ComponentListComponent::setEntry(Eigen::Vector2i pos, Eigen::Vector2i size, GuiComponent* component, bool canFocus, AlignmentType align, - Eigen::Matrix autoFit, UpdateBehavior updateType) -{ - if(pos.x() > mGridSize.x() || pos.y() > mGridSize.y() || pos.x() < 0 || pos.y() < 0) - { - LOG(LogError) << "Tried to set entry beyond grid size!"; - return; - } - - if(component == NULL) - { - LOG(LogError) << "Tried to add NULL component to ComponentList!"; - return; - } - - ComponentEntry entry(Eigen::Vector2i(pos.x(), pos.y()), Eigen::Vector2i(size.x(), size.y()), component, updateType, canFocus, align); - - mEntries.push_back(entry); - - for(int y = pos.y(); y < pos.y() + size.y(); y++) - { - for(int x = pos.x(); x < pos.x() + size.x(); x++) - { - setCell(x, y, &mEntries.back()); - } - } - - if(component->getParent() != NULL) - LOG(LogError) << "ComponentListComponent ruining an existing parent-child relationship! Call a social worker!"; - component->setParent(this); - - if(!cursorValid() && canFocus) - mCursor = pos; - - //update the column width and row height - if(autoFit.x() && (int)getColumnWidth(pos.x()) < component->getSize().x()) - setColumnWidth(pos.x(), (unsigned int)component->getSize().x()); - if(autoFit.y() && (int)getRowHeight(pos.y()) < component->getSize().y()) - setRowHeight(pos.y(), (unsigned int)component->getSize().y()); - - component->setPosition(getCellOffset(pos)); -} - -void ComponentListComponent::setRowHeight(int row, unsigned int size) -{ - mRowHeights[row] = size; - updateSize(); -} - -void ComponentListComponent::setColumnWidth(int col, unsigned int size) -{ - mColumnWidths[col] = size; - updateSize(); -} - -unsigned int ComponentListComponent::getRowHeight(int row) { return mRowHeights[row]; } -unsigned int ComponentListComponent::getColumnWidth(int col) { return mColumnWidths[col]; } - -Eigen::Vector3f ComponentListComponent::getCellOffset(Eigen::Vector2i pos) -{ - Eigen::Vector3f offset(0, 0, 0); - - for(int y = 0; y < pos.y(); y++) - offset[1] += getRowHeight(y); - - for(int x = 0; x < pos.x(); x++) - offset[0] += getColumnWidth(x); - - ComponentEntry* entry = getCell(pos.x(), pos.y()); - - Eigen::Vector2i gridSize(0, 0); - for(int x = pos.x(); x < pos.x() + entry->dim[0]; x++) - gridSize[0] += getColumnWidth(x); - for(int y = pos.y(); y < pos.y() + entry->dim[1]; y++) - gridSize[1] += getRowHeight(y); - - //if AlignCenter, add half of cell width - half of control width - if(entry->alignment == AlignCenter) - offset[0] += gridSize.x() / 2 - entry->component->getSize().x() / 2; - - //if AlignRight, add cell width - control width - if(entry->alignment == AlignRight) - offset[0] += gridSize.x() - entry->component->getSize().x(); - - //always center on the Y axis - offset[1] += gridSize.y() / 2 - entry->component->getSize().y() / 2; - - return offset; -} - -void ComponentListComponent::setCell(unsigned int x, unsigned int y, ComponentEntry* entry) -{ - if(x >= (unsigned int)mGridSize.x() || y >= (unsigned int)mGridSize.y()) - { - LOG(LogError) << "Invalid setCell - position " << x << ", " << y << " out of bounds!"; - return; - } - - mGrid[y * mGridSize.x() + x] = entry; -} - -ComponentListComponent::ComponentEntry* ComponentListComponent::getCell(unsigned int x, unsigned int y) -{ - if(x >= (unsigned int)mGridSize.x() || y >= (unsigned int)mGridSize.y()) - { - LOG(LogError) << "Invalid getCell - position " << x << ", " << y << " out of bounds!"; - return NULL; - } - - return mGrid[y * mGridSize.x() + x]; -} - -void ComponentListComponent::updateSize() -{ - mSize = Eigen::Vector2f(0, 0); - for(int x = 0; x < mGridSize.x(); x++) - mSize.x() += getColumnWidth(x); - for(int y = 0; y < mGridSize.y(); y++) - mSize.y() += getRowHeight(y); -} - -void ComponentListComponent::updateComponentOffsets() -{ - for(auto iter = mEntries.begin(); iter != mEntries.end(); iter++) - { - iter->component->setPosition(getCellOffset(iter->pos)); - } -} - -bool ComponentListComponent::input(InputConfig* config, Input input) -{ - if(cursorValid() && getCell(mCursor.x(), mCursor.y())->component->input(config, input)) - return true; - - if(!input.value) - return false; - - if(config->isMappedTo("down", input)) - { - moveCursor(Eigen::Vector2i(0, 1)); - return true; - } - if(config->isMappedTo("up", input)) - { - moveCursor(Eigen::Vector2i(0, -1)); - return true; - } - - return false; -} - -void ComponentListComponent::resetCursor() -{ - if(mEntries.size() == 0) - { - mCursor = Eigen::Vector2i(-1, -1); - return; - } - - mCursor << mEntries.at(0).pos[0], mEntries.at(0).pos[1]; -} - -void ComponentListComponent::moveCursor(Eigen::Vector2i dir) -{ - if(dir.x() != 0 && dir.y() != 0) - { - LOG(LogError) << "Invalid cursor move dir!"; - return; - } - - if(!cursorValid()) - { - resetCursor(); - if(!cursorValid()) - return; - } - - Eigen::Vector2i origCursor = mCursor; - - Eigen::Vector2i searchAxis(dir.x() == 0, dir.y() == 0); - - while(mCursor.x() >= 0 && mCursor.y() >= 0 && mCursor.x() < mGridSize.x() && mCursor.y() < mGridSize.y()) - { - mCursor = mCursor + dir; - - Eigen::Vector2i curDirPos = mCursor; - - //spread out on search axis+ - while(mCursor.x() < mGridSize.x() && mCursor.y() < mGridSize.y()) - { - if(cursorValid() && getCell(mCursor.x(), mCursor.y())->canFocus) - return; - - mCursor += searchAxis; - } - - //now again on search axis- - mCursor = curDirPos; - while(mCursor.x() >= 0 && mCursor.y() >= 0) - { - if(cursorValid() && getCell(mCursor.x(), mCursor.y())->canFocus) - return; - - mCursor -= searchAxis; - } - - mCursor = curDirPos; - } - - //failed to find another focusable element in this direction - mCursor = origCursor; -} - -bool ComponentListComponent::cursorValid() -{ - if(mCursor.x() < 0 || mCursor.y() < 0 || mCursor.x() >= mGridSize.x() || mCursor.y() >= mGridSize.y()) - return false; - - return getCell(mCursor.x(), mCursor.y()) != NULL; -} - -void ComponentListComponent::update(int deltaTime) -{ - for(auto iter = mEntries.begin(); iter != mEntries.end(); iter++) - { - if(iter->updateType == UpdateAlways) - { - iter->component->update(deltaTime); - continue; - } - - if(iter->updateType == UpdateFocused && cursorValid() && getCell(mCursor.x(), mCursor.y())->component == iter->component) - { - iter->component->update(deltaTime); - continue; - } - } -} - -void ComponentListComponent::render(const Eigen::Affine3f& parentTrans) -{ - Eigen::Affine3f trans = parentTrans * getTransform(); - Renderer::setMatrix(trans); - - Renderer::drawRect(0, 0, (int)getSize().x(), (int)getSize().y(), 0xFFFFFFAA); - - for(auto iter = mEntries.begin(); iter != mEntries.end(); iter++) - { - iter->component->render(trans); - } - - - //draw cell outlines - /*Renderer::setMatrix(trans); - Eigen::Vector2i pos(0, 0); - for(int x = 0; x < mGridSize.x(); x++) - { - for(int y = 0; y < mGridSize.y(); y++) - { - Renderer::drawRect(pos.x(), pos.y(), getColumnWidth(x), 2, 0x000000AA); - Renderer::drawRect(pos.x(), pos.y(), 2, getRowHeight(y), 0x000000AA); - Renderer::drawRect(pos.x() + getColumnWidth(x), pos.y(), 2, getRowHeight(y), 0x000000AA); - Renderer::drawRect(pos.x(), pos.y() + getRowHeight(y) - 2, getColumnWidth(x), 2, 0x000000AA); - - pos[1] += getRowHeight(y); - } - - pos[1] = 0; - pos[0] += getColumnWidth(x); - }*/ - - //draw cursor - if(cursorValid()) - { - ComponentEntry* entry = getCell(mCursor.x(), mCursor.y()); - Eigen::Affine3f entryTrans = trans * entry->component->getTransform(); - Renderer::setMatrix(entryTrans); - - Renderer::drawRect(0, 0, 4, 4, 0xFF0000FF); - Renderer::drawRect(0, 0, (int)entry->component->getSize().x(), (int)entry->component->getSize().y(), 0x0000AA88); - } -} - -void ComponentListComponent::onPositionChanged() -{ - updateComponentOffsets(); -} - -GuiComponent* ComponentListComponent::getSelectedComponent() -{ - if(!cursorValid()) - return NULL; - return getCell(mCursor.x(), mCursor.y())->component; -} diff --git a/src/components/ComponentListComponent.h b/src/components/ComponentListComponent.h deleted file mode 100644 index 3cb05139e..000000000 --- a/src/components/ComponentListComponent.h +++ /dev/null @@ -1,134 +0,0 @@ -#pragma once - -#include "../GuiComponent.h" - -class ComponentListComponent : public GuiComponent -{ -public: - ComponentListComponent(Window* window, Eigen::Vector2i gridDimensions); - - enum UpdateBehavior - { - UpdateAlways, UpdateFocused - }; - - enum AlignmentType - { - AlignLeft, AlignRight, AlignCenter - }; - - //DO NOT USE NEGATIVE NUMBERS FOR POSITION OR SIZE. - void setEntry(Eigen::Vector2i pos, Eigen::Vector2i size, GuiComponent* component, bool canFocus, AlignmentType align, Eigen::Matrix autoFit, UpdateBehavior updateType = UpdateAlways); - - void onPositionChanged() override; - - bool input(InputConfig* config, Input input) override; - void update(int deltaTime) override; - void render(const Eigen::Affine3f& parentTrans) override; - - void setColumnWidth(int col, unsigned int size); - void setRowHeight(int row, unsigned int size); - - void resetCursor(); - bool cursorValid(); - - GuiComponent* getSelectedComponent(); - -private: - class ComponentEntry - { - public: - Eigen::Vector2i pos; - Eigen::Vector2i dim; - GuiComponent* component; - UpdateBehavior updateType; - AlignmentType alignment; - bool canFocus; - - ComponentEntry() : component(NULL), updateType(UpdateAlways), canFocus(true), alignment(AlignCenter) {}; - ComponentEntry(Eigen::Vector2i p, Eigen::Vector2i d, GuiComponent* comp, UpdateBehavior update, bool focus, AlignmentType align) : pos(p), dim(d), component(comp), updateType(update), canFocus(focus), alignment(align) {}; - - operator bool() const - { - return component != NULL; - } - }; - - //Offset we render components by (for scrolling). - Eigen::Vector2f mComponentOffset; - - Eigen::Vector2i mGridSize; - ComponentEntry** mGrid; - std::vector mEntries; - void makeCells(Eigen::Vector2i size); - void setCell(unsigned int x, unsigned int y, ComponentEntry* entry); - ComponentEntry* getCell(unsigned int x, unsigned int y); - - Eigen::Vector2i mSelectedCellIndex; - - unsigned int getColumnWidth(int col); - unsigned int getRowHeight(int row); - - unsigned int* mColumnWidths; - unsigned int* mRowHeights; - - Eigen::Vector3f getCellOffset(Eigen::Vector2i gridPos); - void updateSize(); - - void moveCursor(Eigen::Vector2i dir); - Eigen::Vector2i mCursor; - - void updateComponentOffsets(); -}; - -//ability to define a list of components in terms of a grid -//these comments are kinda old - -//input -//pass to selected component -// if returns true, stop -// else, process: -// if input == up/down -// scroll to prev/next selectable component in grid Y -// if input == left/right -// scroll to prev/next selectable component in grid X -// if input == accept -// call registered function? - -//entry struct/class -// GuiComponent* component - component to work with -// bool canFocus - can we pass input to this? (necessary for labels to not be selectable) -// Function* selectFunc? -// UpdateBehavior update - how to handle updates (all the time or only when focused) - -//update -//animate component offset to display selected component within the bounds -//pass update to all entries with appropriate update behavior - -//render -//clip rect to our size -//render a "selected" effect behind component with focus somehow -// an edge filter would be cool, but we can't really do that without shader support -// a transparent rect will work for now, but it's kind of ugly...maybe a GuiBox -//glTranslatef by our render offset -// doesn't handle getGlobalOffset for our components...would need parenting for that - -//methods -//List::setEntry(Vector2i gridPos, GuiComponent* component, bool canFocus, AlignmentType align, -// Function* selectFunc = NULL, UpdateBehavior updateType = UpdateAlways); - -//example of setting up the SettingsMenu list: -//ComponentListComponent list; -//int row = 0; -//TextComponent* label = new TextComponent(Vector2i(0, 0), "Debug:", font, lblColor, etc); -// -//list.setEntry(Vector2i(-1, row), label, false, AlignRight); -//list.setEntry(Vector2i(0, row++), &mDebugSwitch, true, AlignLeft); -//... -//list.setEntry(Rect(-1, row, 2, 1), &mSaveButton, true, AlignCenter); - -//example of setting up GameGrid list: -//ComponentListComponent list; -//for(int y = 0; y < yMax; y++) -// for(int x = 0; x < xMax; x++) -// list.setEntry(Vector2i(x, y), getGameImage(x, y), true, AlignCenter, &this->onSelectGame); diff --git a/src/components/GuiBox.cpp b/src/components/GuiBox.cpp deleted file mode 100644 index 1d9dd5165..000000000 --- a/src/components/GuiBox.cpp +++ /dev/null @@ -1,130 +0,0 @@ -#include "GuiBox.h" - -GuiBox::GuiBox(Window* window, float offsetX, float offsetY, float width, float height) : GuiComponent(window), mBackgroundImage(window), - mHorizontalImage(window), mVerticalImage(window), mCornerImage(window) -{ - setPosition(offsetX, offsetY); - setSize(width, height); -} - -void GuiBox::setData(GuiBoxData data) -{ - setBackgroundImage(data.backgroundPath, data.backgroundTiled); - setHorizontalImage(data.horizontalPath, data.horizontalTiled); - setVerticalImage(data.verticalPath, data.verticalTiled); - setCornerImage(data.cornerPath); -} - -void GuiBox::setHorizontalImage(std::string path, bool tiled) -{ - mHorizontalImage.setTiling(tiled); - mHorizontalImage.setOrigin(0, 0); - - mHorizontalImage.setImage(path); - mHorizontalImage.setResize(mSize.x(), getHorizontalBorderWidth(), true); -} - -void GuiBox::setVerticalImage(std::string path, bool tiled) -{ - mVerticalImage.setTiling(tiled); - mVerticalImage.setOrigin(0, 0); - - mVerticalImage.setImage(path); - mVerticalImage.setResize(getVerticalBorderWidth(), mSize.y(), true); -} - -void GuiBox::setBackgroundImage(std::string path, bool tiled) -{ - mBackgroundImage.setOrigin(0, 0); - mBackgroundImage.setResize(mSize.x(), mSize.y(), true); - mBackgroundImage.setTiling(tiled); - mBackgroundImage.setPosition(0, 0); - - mBackgroundImage.setImage(path); -} - -void GuiBox::setCornerImage(std::string path) -{ - mCornerImage.setOrigin(0, 0); - mCornerImage.setResize(getHorizontalBorderWidth(), getVerticalBorderWidth(), true); - - mCornerImage.setImage(path); -} - -void GuiBox::setBackgroundColor(unsigned int color) -{ - mBackgroundImage.setColorShift(color); -} - -void GuiBox::setBorderColor(unsigned int color) -{ - mHorizontalImage.setColorShift(color); - mVerticalImage.setColorShift(color); - mCornerImage.setColorShift(color); -} - -void GuiBox::render(const Eigen::Affine3f& parentTrans) -{ - Eigen::Affine3f trans = parentTrans * getTransform(); - - mBackgroundImage.render(trans); - - //left border - mVerticalImage.setPosition(-getVerticalBorderWidth(), 0); - mVerticalImage.setFlipX(false); - mVerticalImage.render(trans); - - //right border - mVerticalImage.setPosition(mSize.x(), 0); - mVerticalImage.setFlipX(true); - mVerticalImage.render(trans); - - //top border - mHorizontalImage.setPosition(0, -getHorizontalBorderWidth()); - mHorizontalImage.setFlipY(false); - mHorizontalImage.render(trans); - - //bottom border - mHorizontalImage.setPosition(0, mSize.y()); - mHorizontalImage.setFlipY(true); - mHorizontalImage.render(trans); - - - //corner top left - mCornerImage.setPosition(-getHorizontalBorderWidth(), -getVerticalBorderWidth()); - mCornerImage.setFlipX(false); - mCornerImage.setFlipY(false); - mCornerImage.render(trans); - - //top right - mCornerImage.setPosition(mSize.x(), mCornerImage.getPosition().y()); - mCornerImage.setFlipX(true); - mCornerImage.render(trans); - - //bottom right - mCornerImage.setPosition(mCornerImage.getPosition().x(), mSize.y()); - mCornerImage.setFlipY(true); - mCornerImage.render(trans); - - //bottom left - mCornerImage.setPosition(-getHorizontalBorderWidth(), mCornerImage.getPosition().y()); - mCornerImage.setFlipX(false); - mCornerImage.render(trans); - - GuiComponent::renderChildren(trans); -} - -float GuiBox::getHorizontalBorderWidth() -{ - return (float)mHorizontalImage.getTextureSize().y(); -} - -float GuiBox::getVerticalBorderWidth() -{ - return (float)mVerticalImage.getTextureSize().x(); -} - -bool GuiBox::hasBackground() -{ - return mBackgroundImage.hasImage(); -} diff --git a/src/components/GuiBox.h b/src/components/GuiBox.h deleted file mode 100644 index d0b31334b..000000000 --- a/src/components/GuiBox.h +++ /dev/null @@ -1,45 +0,0 @@ -#ifndef _GUIBOX_H_ -#define _GUIBOX_H_ - -#include "../GuiComponent.h" -#include "ImageComponent.h" -#include - -struct GuiBoxData -{ - std::string backgroundPath; - bool backgroundTiled; - std::string horizontalPath; - bool horizontalTiled; - std::string verticalPath; - bool verticalTiled; - std::string cornerPath; -}; - -class GuiBox : public GuiComponent -{ -public: - GuiBox(Window* window, float offsetX, float offsetY, float width, float height); - - void setData(GuiBoxData data); - - void setBackgroundImage(std::string path, bool tiled = true); - void setHorizontalImage(std::string path, bool tiled = false); - void setVerticalImage(std::string path, bool tiled = false); - void setCornerImage(std::string path); - - bool hasBackground(); - - void setBackgroundColor(unsigned int color); - void setBorderColor(unsigned int color); - - void render(const Eigen::Affine3f& parentTrans) override; - -private: - ImageComponent mBackgroundImage, mHorizontalImage, mVerticalImage, mCornerImage; - - float getHorizontalBorderWidth(); - float getVerticalBorderWidth(); -}; - -#endif diff --git a/src/components/GuiDetectDevice.cpp b/src/components/GuiDetectDevice.cpp deleted file mode 100644 index f31beca8d..000000000 --- a/src/components/GuiDetectDevice.cpp +++ /dev/null @@ -1,110 +0,0 @@ -#include "GuiDetectDevice.h" -#include "../Window.h" -#include "../Renderer.h" -#include "../Font.h" -#include "GuiInputConfig.h" -#include -#include -#include - -GuiDetectDevice::GuiDetectDevice(Window* window) : GuiComponent(window) -{ - //clear any player information from the InputManager - for(int i = 0; i < mWindow->getInputManager()->getNumPlayers(); i++) - { - InputConfig* cfg = mWindow->getInputManager()->getInputConfigByPlayer(i); - cfg->setPlayerNum(-1); - cfg->clear(); - } - mWindow->getInputManager()->setNumPlayers(0); - - mCurrentPlayer = 0; - mHoldingFinish = false; -} - -bool GuiDetectDevice::input(InputConfig* config, Input input) -{ - if((input.type == TYPE_BUTTON || input.type == TYPE_KEY)) - { - if(config->getPlayerNum() != -1) - { - if(config->getPlayerNum() == 0) - { - if(input.value) - { - mFinishTimer = 0; - mHoldingFinish = true; - }else{ - mHoldingFinish = false; - } - } - return true; - } - - if(!input.value) - return false; - - //don't allow device list to change once the first player has registered - if(mCurrentPlayer == 0) - mWindow->getInputManager()->stopPolling(); - - config->setPlayerNum(mCurrentPlayer); - mWindow->getInputManager()->setNumPlayers(mWindow->getInputManager()->getNumPlayers() + 1); //inc total number of players - mCurrentPlayer++; - - //mapped everything we possibly can? - if(mCurrentPlayer >= mWindow->getInputManager()->getNumJoysticks() + 1) //+1 for keyboard - { - done(); - } - - return true; - } - - return false; -} - -void GuiDetectDevice::done() -{ - mWindow->pushGui(new GuiInputConfig(mWindow, mWindow->getInputManager()->getInputConfigByPlayer(0))); - delete this; -} - -void GuiDetectDevice::update(int deltaTime) -{ - if(mHoldingFinish) - { - mFinishTimer += deltaTime; - - if(mFinishTimer > 1000) - done(); - } -} - -void GuiDetectDevice::render(const Eigen::Affine3f& parentTrans) -{ - Eigen::Affine3f trans = parentTrans * getTransform(); - Renderer::setMatrix(trans); - - std::shared_ptr font = Font::get(*mWindow->getResourceManager(), Font::getDefaultPath(), FONT_SIZE_MEDIUM); - - std::string playerString; - std::stringstream stream; - stream << (mCurrentPlayer + 1); - stream >> playerString; - - font->drawCenteredText("Press a button on the device for", 0, Renderer::getScreenHeight() / 3.0f, 0x000000FF); - font->drawCenteredText("PLAYER " + playerString, 0, (Renderer::getScreenHeight()*1.5f) / 3.0f, 0x333333FF); - - if(mWindow->getInputManager()->getNumPlayers() > 0) - { - font->drawCenteredText("(P1 - hold a button to finish)", 0, (Renderer::getScreenHeight()*2) / 3.0f, (mHoldingFinish ? 0x0000FFFF : 0x000066FF)); - } - - if(mWindow->getInputManager()->getNumJoysticks() == 0) - { - font->drawCenteredText("No joysticks detected!", 0, Renderer::getScreenHeight() - (font->getHeight()*2.0f)-10, 0xFF0000FF); - } - - font->drawCenteredText("Press F4 to quit.", 0, Renderer::getScreenHeight() - font->getHeight() - 2.0f , 0x000000FF); -} diff --git a/src/components/GuiDetectDevice.h b/src/components/GuiDetectDevice.h deleted file mode 100644 index c8041ff4d..000000000 --- a/src/components/GuiDetectDevice.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef _GUIDETECTDEVICE_H_ -#define _GUIDETECTDEVICE_H_ - -#include "../GuiComponent.h" - -class GuiDetectDevice : public GuiComponent -{ -public: - GuiDetectDevice(Window* window); - - bool input(InputConfig* config, Input input); - void update(int deltaTime); - void render(const Eigen::Affine3f& parentTrans) override; - -private: - void done(); - - bool mHoldingFinish; - int mFinishTimer; - int mCurrentPlayer; -}; - -#endif diff --git a/src/components/GuiFastSelect.cpp b/src/components/GuiFastSelect.cpp deleted file mode 100644 index ed6d7e9bd..000000000 --- a/src/components/GuiFastSelect.cpp +++ /dev/null @@ -1,169 +0,0 @@ -#include "GuiFastSelect.h" -#include "../Renderer.h" -#include -#include "GuiGameList.h" - -const std::string GuiFastSelect::LETTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; -const int GuiFastSelect::SCROLLSPEED = 100; -const int GuiFastSelect::SCROLLDELAY = 507; - -GuiFastSelect::GuiFastSelect(Window* window, GuiGameList* parent, TextListComponent* list, char startLetter, ThemeComponent * theme) - : GuiComponent(window), mParent(parent), mList(list), mTheme(theme) -{ - mLetterID = LETTERS.find(toupper(startLetter)); - if(mLetterID == std::string::npos) - mLetterID = 0; - - mScrollSound = mTheme->getSound("menuScroll"); - mTextColor = mTheme->getColor("fastSelect"); - - mScrolling = false; - mScrollTimer = 0; - mScrollOffset = 0; - - unsigned int sw = Renderer::getScreenWidth(), sh = Renderer::getScreenHeight(); - mBox = new GuiBox(window, sw * 0.2f, sh * 0.2f, sw * 0.6f, sh * 0.6f); - mBox->setData(mTheme->getBoxData()); -} - -GuiFastSelect::~GuiFastSelect() -{ - mParent->updateDetailData(); - delete mBox; -} - -void GuiFastSelect::render(const Eigen::Affine3f& parentTrans) -{ - Eigen::Affine3f trans = parentTrans * getTransform(); - Renderer::setMatrix(trans); - - unsigned int sw = Renderer::getScreenWidth(), sh = Renderer::getScreenHeight(); - - if(!mBox->hasBackground()) - Renderer::drawRect((int)(sw * 0.3f), (int)(sh * 0.3f), (int)(sw * 0.4f), (int)(sh * 0.4f), 0x000FF0AA); - - mBox->render(trans); - - Renderer::setMatrix(trans); - std::shared_ptr letterFont = mTheme->getFastSelectFont(); - std::shared_ptr subtextFont = mTheme->getDescriptionFont(); - - letterFont->drawCenteredText(LETTERS.substr(mLetterID, 1), 0, sh * 0.5f - (letterFont->getHeight() * 0.5f), mTextColor); - subtextFont->drawCenteredText("Sort order:", 0, sh * 0.6f - (subtextFont->getHeight() * 0.5f), mTextColor); - - std::string sortString = "<- " + mParent->getSortState().description + " ->"; - subtextFont->drawCenteredText(sortString, 0, sh * 0.6f + (subtextFont->getHeight() * 0.5f), mTextColor); -} - -bool GuiFastSelect::input(InputConfig* config, Input input) -{ - if(config->isMappedTo("up", input) && input.value != 0) - { - mScrollOffset = -1; - scroll(); - return true; - } - - if(config->isMappedTo("down", input) && input.value != 0) - { - mScrollOffset = 1; - scroll(); - return true; - } - - if(config->isMappedTo("left", input) && input.value != 0) - { - mParent->setPreviousSortIndex(); - mScrollSound->play(); - return true; - } - else if(config->isMappedTo("right", input) && input.value != 0) - { - mParent->setNextSortIndex(); - mScrollSound->play(); - return true; - } - - if((config->isMappedTo("up", input) || config->isMappedTo("down", input)) && input.value == 0) - { - mScrolling = false; - mScrollTimer = 0; - mScrollOffset = 0; - return true; - } - - if(config->isMappedTo("select", input) && input.value == 0) - { - setListPos(); - delete this; - return true; - } - - return false; -} - -void GuiFastSelect::update(int deltaTime) -{ - if(mScrollOffset != 0) - { - mScrollTimer += deltaTime; - - if(!mScrolling && mScrollTimer >= SCROLLDELAY) - { - mScrolling = true; - mScrollTimer = SCROLLSPEED; - } - - if(mScrolling && mScrollTimer >= SCROLLSPEED) - { - mScrollTimer = 0; - scroll(); - } - } -} - -void GuiFastSelect::scroll() -{ - setLetterID(mLetterID + mScrollOffset); - mScrollSound->play(); -} - -void GuiFastSelect::setLetterID(int id) -{ - while(id < 0) - id += LETTERS.length(); - while(id >= (int)LETTERS.length()) - id -= LETTERS.length(); - - mLetterID = (size_t)id; -} - -void GuiFastSelect::setListPos() -{ - char letter = LETTERS[mLetterID]; - - int min = 0; - int max = mList->getObjectCount() - 1; - - int mid = 0; - - while(max >= min) - { - mid = ((max - min) / 2) + min; - - char checkLetter = toupper(mList->getObject(mid)->getName()[0]); - - if(checkLetter < letter) - { - min = mid + 1; - }else if(checkLetter > letter) - { - max = mid - 1; - }else{ - //exact match found - break; - } - } - - mList->setSelection(mid); -} diff --git a/src/components/GuiFastSelect.h b/src/components/GuiFastSelect.h deleted file mode 100644 index a7bbd609f..000000000 --- a/src/components/GuiFastSelect.h +++ /dev/null @@ -1,48 +0,0 @@ -#ifndef _GUIFASTSELECT_H_ -#define _GUIFASTSELECT_H_ - -#include "../GuiComponent.h" -#include "../SystemData.h" -#include "../FolderData.h" -#include "../Sound.h" -#include "ThemeComponent.h" -#include "TextListComponent.h" -#include "GuiBox.h" - -class GuiGameList; - -class GuiFastSelect : public GuiComponent -{ -public: - GuiFastSelect(Window* window, GuiGameList* parent, TextListComponent* list, char startLetter, ThemeComponent * theme); - ~GuiFastSelect(); - - bool input(InputConfig* config, Input input) override; - void update(int deltaTime) override; - void render(const Eigen::Affine3f& parentTrans) override; - -private: - static const std::string LETTERS; - static const int SCROLLSPEED; - static const int SCROLLDELAY; - - void setListPos(); - void scroll(); - void setLetterID(int id); - - TextListComponent* mList; - - size_t mLetterID; - GuiGameList* mParent; - - GuiBox* mBox; - int mTextColor; - - int mScrollTimer, mScrollOffset; - bool mScrolling; - - std::shared_ptr mScrollSound; - ThemeComponent * mTheme; -}; - -#endif diff --git a/src/components/GuiGameList.cpp b/src/components/GuiGameList.cpp deleted file mode 100644 index acd647f27..000000000 --- a/src/components/GuiGameList.cpp +++ /dev/null @@ -1,510 +0,0 @@ -#include "GuiGameList.h" -#include "../InputManager.h" -#include -#include "GuiMenu.h" -#include "GuiFastSelect.h" -#include -#include "../Log.h" -#include "../Settings.h" - - -std::vector GuiGameList::sortStates; - -Eigen::Vector3f GuiGameList::getImagePos() -{ - return Eigen::Vector3f(Renderer::getScreenWidth() * mTheme->getFloat("gameImageOffsetX"), Renderer::getScreenHeight() * mTheme->getFloat("gameImageOffsetY"), 0.0f); -} - -bool GuiGameList::isDetailed() const -{ - if(mSystem == NULL) - return false; - - return mSystem->hasGamelist(); -} - -GuiGameList::GuiGameList(Window* window) : GuiComponent(window), - mTheme(new ThemeComponent(mWindow)), - mList(window, 0.0f, 0.0f, Font::get(*window->getResourceManager(), Font::getDefaultPath(), FONT_SIZE_MEDIUM)), - mScreenshot(window), - mDescription(window), - mDescContainer(window), - mTransitionImage(window, 0.0f, 0.0f, "", (float)Renderer::getScreenWidth(), (float)Renderer::getScreenHeight(), true), - mHeaderText(mWindow), - sortStateIndex(Settings::getInstance()->getInt("GameListSortIndex")), - mLockInput(false), - mEffectFunc(NULL), mEffectTime(0), mGameLaunchEffectLength(700) -{ - //first object initializes the vector - if (sortStates.empty()) { - sortStates.push_back(FolderData::SortState(FolderData::compareFileName, true, "file name, ascending")); - sortStates.push_back(FolderData::SortState(FolderData::compareFileName, false, "file name, descending")); - sortStates.push_back(FolderData::SortState(FolderData::compareRating, true, "database rating, ascending")); - sortStates.push_back(FolderData::SortState(FolderData::compareRating, false, "database rating, descending")); - sortStates.push_back(FolderData::SortState(FolderData::compareUserRating, true, "your rating, ascending")); - sortStates.push_back(FolderData::SortState(FolderData::compareUserRating, false, "your rating, descending")); - sortStates.push_back(FolderData::SortState(FolderData::compareTimesPlayed, true, "played least often")); - sortStates.push_back(FolderData::SortState(FolderData::compareTimesPlayed, false, "played most often")); - sortStates.push_back(FolderData::SortState(FolderData::compareLastPlayed, true, "played least recently")); - sortStates.push_back(FolderData::SortState(FolderData::compareLastPlayed, false, "played most recently")); - } - - mImageAnimation.addChild(&mScreenshot); - mDescContainer.addChild(&mDescription); - - //scale delay with screen width (higher width = more text per line) - //the scroll speed is automatically scaled by component size - mDescContainer.setAutoScroll((int)(1500 + (Renderer::getScreenWidth() * 0.5)), 0.025f); - - mTransitionImage.setPosition((float)Renderer::getScreenWidth(), 0); - mTransitionImage.setOrigin(0, 0); - - mHeaderText.setColor(0xFF0000FF); - mHeaderText.setFont(Font::get(*mWindow->getResourceManager(), Font::getDefaultPath(), FONT_SIZE_LARGE)); - mHeaderText.setPosition(0, 1); - mHeaderText.setSize((float)Renderer::getScreenWidth(), 0); - mHeaderText.setCentered(true); - - addChild(mTheme); - addChild(&mHeaderText); - addChild(&mScreenshot); - addChild(&mDescContainer); - addChild(&mList); - addChild(&mTransitionImage); - - mTransitionAnimation.addChild(this); - - setSystemId(0); -} - -GuiGameList::~GuiGameList() -{ - delete mTheme; -} - -void GuiGameList::setSystemId(int id) -{ - if(SystemData::sSystemVector.size() == 0) - { - LOG(LogError) << "Error - no systems found!"; - return; - } - - //make sure the id is within range - if(id >= (int)SystemData::sSystemVector.size()) - id -= SystemData::sSystemVector.size(); - if(id < 0) - id += SystemData::sSystemVector.size(); - - mSystemId = id; - mSystem = SystemData::sSystemVector.at(mSystemId); - - //clear the folder stack - while(mFolderStack.size()){ mFolderStack.pop(); } - - mFolder = mSystem->getRootFolder(); - - updateTheme(); - updateList(); - updateDetailData(); - mWindow->normalizeNextUpdate(); //image loading can be slow -} - -void GuiGameList::render(const Eigen::Affine3f& parentTrans) -{ - Eigen::Affine3f trans = parentTrans * getTransform(); - renderChildren(trans); -} - -bool GuiGameList::input(InputConfig* config, Input input) -{ - if(mLockInput) - return false; - - mList.input(config, input); - - if(config->isMappedTo("a", input) && mFolder->getFileCount() > 0 && input.value != 0) - { - //play select sound - mTheme->getSound("menuSelect")->play(); - - FileData* file = mList.getSelectedObject(); - if(file->isFolder()) //if you selected a folder, add this directory to the stack, and use the selected one - { - mFolderStack.push(mFolder); - mFolder = (FolderData*)file; - updateList(); - updateDetailData(); - return true; - }else{ - mList.stopScrolling(); - - mEffectFunc = &GuiGameList::updateGameLaunchEffect; - mEffectTime = 0; - mGameLaunchEffectLength = (int)mTheme->getSound("menuSelect")->getLengthMS(); - if(mGameLaunchEffectLength < 800) - mGameLaunchEffectLength = 800; - - mLockInput = true; - - return true; - } - } - - //if there's something on the directory stack, return to it - if(config->isMappedTo("b", input) && input.value != 0 && mFolderStack.size()) - { - mFolder = mFolderStack.top(); - mFolderStack.pop(); - updateList(); - updateDetailData(); - - //play the back sound - mTheme->getSound("menuBack")->play(); - - return true; - } - - //only allow switching systems if more than one exists (otherwise it'll reset your position when you switch and it's annoying) - if(SystemData::sSystemVector.size() > 1 && input.value != 0) - { - if(config->isMappedTo("right", input)) - { - setSystemId(mSystemId + 1); - doTransition(-1); - return true; - } - if(config->isMappedTo("left", input)) - { - setSystemId(mSystemId - 1); - doTransition(1); - return true; - } - } - - //change sort order - if(config->isMappedTo("sortordernext", input) && input.value != 0) { - setNextSortIndex(); - //std::cout << "Sort order is " << FolderData::getSortStateName(sortStates.at(sortStateIndex).comparisonFunction, sortStates.at(sortStateIndex).ascending) << std::endl; - } - else if(config->isMappedTo("sortorderprevious", input) && input.value != 0) { - setPreviousSortIndex(); - //std::cout << "Sort order is " << FolderData::getSortStateName(sortStates.at(sortStateIndex).comparisonFunction, sortStates.at(sortStateIndex).ascending) << std::endl; - } - - //open the "start menu" - if(config->isMappedTo("menu", input) && input.value != 0) - { - mWindow->pushGui(new GuiMenu(mWindow, this)); - return true; - } - - //open the fast select menu - if(config->isMappedTo("select", input) && input.value != 0) - { - mWindow->pushGui(new GuiFastSelect(mWindow, this, &mList, mList.getSelectedObject()->getName()[0], mTheme)); - return true; - } - - if(isDetailed()) - { - if(config->isMappedTo("up", input) || config->isMappedTo("down", input) || config->isMappedTo("pageup", input) || config->isMappedTo("pagedown", input)) - { - if(input.value == 0) - updateDetailData(); - else - clearDetailData(); - } - return true; - } - - return false; -} - -const FolderData::SortState & GuiGameList::getSortState() const -{ - return sortStates.at(sortStateIndex); -} - -void GuiGameList::setSortIndex(size_t index) -{ - //make the index valid - if (index >= sortStates.size()) { - index = 0; - } - if (index != sortStateIndex) { - //get sort state from vector and sort list - sortStateIndex = index; - sort(sortStates.at(sortStateIndex).comparisonFunction, sortStates.at(sortStateIndex).ascending); - } - //save new index to settings - Settings::getInstance()->setInt("GameListSortIndex", sortStateIndex); -} - -void GuiGameList::setNextSortIndex() -{ - //make the index wrap around - if ((sortStateIndex - 1) >= sortStates.size()) { - setSortIndex(0); - } - setSortIndex(sortStateIndex + 1); -} - -void GuiGameList::setPreviousSortIndex() -{ - //make the index wrap around - if (((int)sortStateIndex - 1) < 0) { - setSortIndex(sortStates.size() - 1); - } - setSortIndex(sortStateIndex - 1); -} - -void GuiGameList::sort(FolderData::ComparisonFunction & comparisonFunction, bool ascending) -{ - //resort list and update it - mFolder->sort(comparisonFunction, ascending); - updateList(); - updateDetailData(); -} - -void GuiGameList::updateList() -{ - mList.clear(); - - for(unsigned int i = 0; i < mFolder->getFileCount(); i++) - { - FileData* file = mFolder->getFile(i); - - if(file->isFolder()) - mList.addObject(file->getName(), file, mTheme->getColor("secondary")); - else - mList.addObject(file->getName(), file, mTheme->getColor("primary")); - } -} - -std::string GuiGameList::getThemeFile() -{ - std::string themePath; - - themePath = getHomePath(); - themePath += "/.emulationstation/" + mSystem->getName() + "/theme.xml"; - if(boost::filesystem::exists(themePath)) - return themePath; - - themePath = mSystem->getStartPath() + "/theme.xml"; - if(boost::filesystem::exists(themePath)) - return themePath; - - themePath = getHomePath(); - themePath += "/.emulationstation/es_theme.xml"; - if(boost::filesystem::exists(themePath)) - return themePath; - - return ""; -} - -void GuiGameList::updateTheme() -{ - mTheme->readXML(getThemeFile(), isDetailed()); - - mList.setSelectorColor(mTheme->getColor("selector")); - mList.setSelectedTextColor(mTheme->getColor("selected")); - mList.setScrollSound(mTheme->getSound("menuScroll")); - - mList.setFont(mTheme->getListFont()); - mList.setPosition(0.0f, Font::get(*mWindow->getResourceManager(), Font::getDefaultPath(), FONT_SIZE_LARGE)->getHeight() + 2.0f); - - if(!mTheme->getBool("hideHeader")) - { - mHeaderText.setText(mSystem->getDescName()); - }else{ - mHeaderText.setText(""); - } - - if(isDetailed()) - { - mList.setCentered(mTheme->getBool("listCentered")); - - mList.setPosition(mTheme->getFloat("listOffsetX") * Renderer::getScreenWidth(), mList.getPosition().y()); - mList.setTextOffsetX((int)(mTheme->getFloat("listTextOffsetX") * Renderer::getScreenWidth())); - - mScreenshot.setPosition(mTheme->getFloat("gameImageOffsetX") * Renderer::getScreenWidth(), mTheme->getFloat("gameImageOffsetY") * Renderer::getScreenHeight()); - mScreenshot.setOrigin(mTheme->getFloat("gameImageOriginX"), mTheme->getFloat("gameImageOriginY")); - mScreenshot.setResize(mTheme->getFloat("gameImageWidth") * Renderer::getScreenWidth(), mTheme->getFloat("gameImageHeight") * Renderer::getScreenHeight(), false); - - mDescription.setColor(mTheme->getColor("description")); - mDescription.setFont(mTheme->getDescriptionFont()); - }else{ - mList.setCentered(true); - mList.setPosition(0, mList.getPosition().y()); - mList.setTextOffsetX(0); - - //mDescription.setFont(nullptr); - } -} - -void GuiGameList::updateDetailData() -{ - if(!isDetailed()) - { - mScreenshot.setImage(""); - mDescription.setText(""); - }else{ - //if we've selected a game - if(mList.getSelectedObject() && !mList.getSelectedObject()->isFolder()) - { - //set image to either "not found" image or metadata image - if(((GameData*)mList.getSelectedObject())->getImagePath().empty()) - mScreenshot.setImage(mTheme->getString("imageNotFoundPath")); - else - mScreenshot.setImage(((GameData*)mList.getSelectedObject())->getImagePath()); - - Eigen::Vector3f imgOffset = Eigen::Vector3f(Renderer::getScreenWidth() * 0.10f, 0, 0); - mScreenshot.setPosition(getImagePos() - imgOffset); - - mImageAnimation.fadeIn(35); - mImageAnimation.move(imgOffset.x(), imgOffset.y(), 20); - - mDescContainer.setPosition(Eigen::Vector3f(Renderer::getScreenWidth() * 0.03f, getImagePos().y() + mScreenshot.getSize().y() + 12, 0)); - mDescContainer.setSize(Eigen::Vector2f(Renderer::getScreenWidth() * (mTheme->getFloat("listOffsetX") - 0.03f), Renderer::getScreenHeight() - mDescContainer.getPosition().y())); - mDescContainer.setScrollPos(Eigen::Vector2d(0, 0)); - mDescContainer.resetAutoScrollTimer(); - - mDescription.setPosition(0, 0); - mDescription.setSize(Eigen::Vector2f(Renderer::getScreenWidth() * (mTheme->getFloat("listOffsetX") - 0.03f), 0)); - mDescription.setText(((GameData*)mList.getSelectedObject())->getDescription()); - }else{ - mScreenshot.setImage(""); - mDescription.setText(""); - } - } -} - -void GuiGameList::clearDetailData() -{ - if(isDetailed()) - { - mImageAnimation.fadeOut(35); - mDescription.setText(""); - } -} - -GuiGameList* GuiGameList::create(Window* window) -{ - GuiGameList* list = new GuiGameList(window); - window->pushGui(list); - return list; -} - -void GuiGameList::update(int deltaTime) -{ - mTransitionAnimation.update(deltaTime); - mImageAnimation.update(deltaTime); - - if(mEffectFunc != NULL) - { - mEffectTime += deltaTime; - (this->*mEffectFunc)(mEffectTime); - } - - GuiComponent::update(deltaTime); -} - -void GuiGameList::doTransition(int dir) -{ - mTransitionImage.copyScreen(); - mTransitionImage.setOpacity(255); - - //put the image of what's currently onscreen at what will be (in screen coords) 0, 0 - mTransitionImage.setPosition((float)Renderer::getScreenWidth() * dir, 0); - - //move the entire thing offscreen so we'll move into place - setPosition((float)Renderer::getScreenWidth() * -dir, mPosition[1]); - - mTransitionAnimation.move(Renderer::getScreenWidth() * dir, 0, 50); -} - -float lerpFloat(const float& start, const float& end, float t) -{ - if(t <= 0) - return start; - if(t >= 1) - return end; - - return (start * (1 - t) + end * t); -} - -Eigen::Vector2f lerpVector2f(const Eigen::Vector2f& start, const Eigen::Vector2f& end, float t) -{ - if(t <= 0) - return start; - if(t >= 1) - return end; - - return (start * (1 - t) + end * t); -} - -float clamp(float min, float max, float val) -{ - if(val < min) - val = min; - else if(val > max) - val = max; - - return val; -} - -//http://en.wikipedia.org/wiki/Smoothstep -float smoothStep(float edge0, float edge1, float x) -{ - // Scale, and clamp x to 0..1 range - x = clamp(0, 1, (x - edge0)/(edge1 - edge0)); - - // Evaluate polynomial - return x*x*x*(x*(x*6 - 15) + 10); -} - -void GuiGameList::updateGameLaunchEffect(int t) -{ - const int endTime = mGameLaunchEffectLength; - - const int zoomTime = endTime; - const int centerTime = endTime - 50; - - const int fadeDelay = endTime - 600; - const int fadeTime = endTime - fadeDelay - 100; - - Eigen::Vector2f imageCenter(mScreenshot.getCenter()); - if(!isDetailed()) - { - imageCenter << mList.getPosition().x() + mList.getSize().x() / 2, mList.getPosition().y() + mList.getSize().y() / 2; - } - - const Eigen::Vector2f centerStart(Renderer::getScreenWidth() / 2, Renderer::getScreenHeight() / 2); - - //remember to clamp or zoom factor will be incorrect with a negative t because squared - const float tNormalized = clamp(0, 1, (float)t / endTime); - - mWindow->setCenterPoint(lerpVector2f(centerStart, imageCenter, smoothStep(0.0, 1.0, tNormalized))); - mWindow->setZoomFactor(lerpFloat(1.0f, 3.0f, tNormalized*tNormalized)); - mWindow->setFadePercent(lerpFloat(0.0f, 1.0f, (float)(t - fadeDelay) / fadeTime)); - - if(t > endTime) - { - //effect done - mTransitionImage.setImage(""); //fixes "tried to bind uninitialized texture!" since copyScreen()'d textures don't reinit - mSystem->launchGame(mWindow, (GameData*)mList.getSelectedObject()); - mEffectFunc = &GuiGameList::updateGameReturnEffect; - mEffectTime = 0; - mGameLaunchEffectLength = 700; - mLockInput = false; - } -} - -void GuiGameList::updateGameReturnEffect(int t) -{ - updateGameLaunchEffect(mGameLaunchEffectLength - t); - - if(t >= mGameLaunchEffectLength) - mEffectFunc = NULL; -} diff --git a/src/components/GuiGameList.h b/src/components/GuiGameList.h deleted file mode 100644 index dda1e8088..000000000 --- a/src/components/GuiGameList.h +++ /dev/null @@ -1,83 +0,0 @@ -#ifndef _GUIGAMELIST_H_ -#define _GUIGAMELIST_H_ - -#include "../GuiComponent.h" -#include "TextListComponent.h" -#include "ImageComponent.h" -#include "ThemeComponent.h" -#include "AnimationComponent.h" -#include "TextComponent.h" -#include -#include -#include "../SystemData.h" -#include "../GameData.h" -#include "../FolderData.h" -#include "ScrollableContainer.h" - -//This is where the magic happens - GuiGameList is the parent of almost every graphical element in ES at the moment. -//It has a TextListComponent child that handles the game list, a ThemeComponent that handles the theming system, and an ImageComponent for game images. -class GuiGameList : public GuiComponent -{ - static std::vector sortStates; - size_t sortStateIndex; - -public: - GuiGameList(Window* window); - virtual ~GuiGameList(); - - void setSystemId(int id); - - bool input(InputConfig* config, Input input) override; - void update(int deltaTime) override; - void render(const Eigen::Affine3f& parentTrans) override; - - void updateDetailData(); - - const FolderData::SortState & getSortState() const; - void setSortIndex(size_t index); - void setNextSortIndex(); - void setPreviousSortIndex(); - void sort(FolderData::ComparisonFunction & comparisonFunction = FolderData::compareFileName, bool ascending = true); - - static GuiGameList* create(Window* window); - - bool isDetailed() const; - - static const float sInfoWidth; -private: - void updateList(); - void updateTheme(); - void clearDetailData(); - void doTransition(int dir); - - std::string getThemeFile(); - - SystemData* mSystem; - FolderData* mFolder; - std::stack mFolderStack; - int mSystemId; - - TextListComponent mList; - ImageComponent mScreenshot; - TextComponent mDescription; - ScrollableContainer mDescContainer; - AnimationComponent mImageAnimation; - ThemeComponent* mTheme; - TextComponent mHeaderText; - - ImageComponent mTransitionImage; - AnimationComponent mTransitionAnimation; - - Eigen::Vector3f getImagePos(); - - bool mLockInput; - - void (GuiGameList::*mEffectFunc)(int); - int mEffectTime; - int mGameLaunchEffectLength; - - void updateGameLaunchEffect(int t); - void updateGameReturnEffect(int t); -}; - -#endif diff --git a/src/components/GuiInputConfig.cpp b/src/components/GuiInputConfig.cpp deleted file mode 100644 index 202238fbc..000000000 --- a/src/components/GuiInputConfig.cpp +++ /dev/null @@ -1,116 +0,0 @@ -#include "GuiInputConfig.h" -#include "../Window.h" -#include "../Renderer.h" -#include "../Font.h" -#include "GuiGameList.h" -#include "../Log.h" - -static const int inputCount = 10; -static std::string inputName[inputCount] = { "Up", "Down", "Left", "Right", "A", "B", "Menu", "Select", "PageUp", "PageDown"}; -static std::string inputDispName[inputCount] = { "Up", "Down", "Left", "Right", "Accept", "Back", "Menu", "Jump to Letter", "Page Up", "Page Down"}; - -//MasterVolUp and MasterVolDown are also hooked up, but do not appear on this screen. -//If you want, you can manually add them to es_input.cfg. - -GuiInputConfig::GuiInputConfig(Window* window, InputConfig* target) : GuiComponent(window), mTargetConfig(target), mCanSkip(false) -{ - mCurInputId = 0; - LOG(LogInfo) << "Configuring device " << target->getDeviceId(); -} - -void GuiInputConfig::update(int deltaTime) -{ - -} - -bool GuiInputConfig::input(InputConfig* config, Input input) -{ - if(config != mTargetConfig || input.value == 0) - return false; - - if(mCurInputId >= inputCount) - { - //done - if(input.type == TYPE_BUTTON || input.type == TYPE_KEY) - { - if(mTargetConfig->getPlayerNum() < mWindow->getInputManager()->getNumPlayers() - 1) - { - mWindow->pushGui(new GuiInputConfig(mWindow, mWindow->getInputManager()->getInputConfigByPlayer(mTargetConfig->getPlayerNum() + 1))); - }else{ - mWindow->getInputManager()->writeConfig(); - mWindow->getInputManager()->startPolling(); //enable polling again since we're done - GuiGameList::create(mWindow); - } - delete this; - return true; - } - }else{ - if(mCanSkip && config->isMappedTo("a", input)) - { - mCurInputId++; - return true; - } - - if(config->getMappedTo(input).size() > 0) - { - mErrorMsg = "Already mapped!"; - return true; - } - - input.configured = true; - LOG(LogInfo) << " [" << input.string() << "] -> " << inputName[mCurInputId]; - - config->mapInput(inputName[mCurInputId], input); - mCurInputId++; - mErrorMsg = ""; - - //for buttons with not enough buttons, press A to skip - if(mCurInputId >= 7) - { - mCanSkip = true; - } - return true; - } - - return false; -} - -void GuiInputConfig::render(const Eigen::Affine3f& parentTrans) -{ - Eigen::Affine3f trans = parentTrans * getTransform(); - Renderer::setMatrix(trans); - - std::shared_ptr font = Font::get(*mWindow->getResourceManager(), Font::getDefaultPath(), FONT_SIZE_MEDIUM); - - std::stringstream stream; - stream << "PLAYER " << mTargetConfig->getPlayerNum() + 1 << ", press..."; - font->drawText(stream.str(), Eigen::Vector2f(10, 10), 0x000000FF); - - int y = 14 + font->getHeight(); - for(int i = 0; i < mCurInputId; i++) - { - font->drawText(inputDispName[i], Eigen::Vector2f(10, y), 0x00CC00FF); - y += font->getHeight() + 5; - } - - if(mCurInputId >= inputCount) - { - font->drawCenteredText("Basic config done!", 0, Renderer::getScreenHeight() * 0.4f, 0x00CC00FF); - font->drawCenteredText("Press any button to continue.", 0, Renderer::getScreenHeight() * 0.4f + font->getHeight() + 4, 0x000000FF); - }else{ - font->drawText(inputDispName[mCurInputId], Eigen::Vector2f(10, y), 0x000000FF); - if(mCanSkip) - { - Eigen::Vector2f textSize = font->sizeText(inputDispName[mCurInputId]); - textSize[0] += 14; - - if(Renderer::getScreenWidth() / 2.5f > textSize.x()) - textSize[0] = Renderer::getScreenWidth() / 2.5f; - - font->drawText("press Accept to skip", Eigen::Vector2f(textSize.x(), y), 0x0000AAFF); - } - } - - if(!mErrorMsg.empty()) - font->drawCenteredText(mErrorMsg, 0, (float)Renderer::getScreenHeight() - font->getHeight() - 10, 0xFF0000FF); -} diff --git a/src/components/GuiInputConfig.h b/src/components/GuiInputConfig.h deleted file mode 100644 index 05c23c157..000000000 --- a/src/components/GuiInputConfig.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef _GUIINPUTCONFIG_H_ -#define _GUIINPUTCONFIG_H_ - -#include "../GuiComponent.h" -#include - -class GuiInputConfig : public GuiComponent -{ -public: - GuiInputConfig(Window* window, InputConfig* target); - - bool input(InputConfig* config, Input input); - void update(int deltaTime); - void render(const Eigen::Affine3f& parentTrans) override; - -private: - std::string mErrorMsg; - InputConfig* mTargetConfig; - int mCurInputId; - bool mCanSkip; -}; - -#endif diff --git a/src/components/GuiMenu.cpp b/src/components/GuiMenu.cpp deleted file mode 100644 index b5963790b..000000000 --- a/src/components/GuiMenu.cpp +++ /dev/null @@ -1,102 +0,0 @@ -#include "GuiMenu.h" -#include -#include -#include "../Log.h" -#include "../SystemData.h" -#include "GuiGameList.h" -#include "../Settings.h" -#include "GuiSettingsMenu.h" - -GuiMenu::GuiMenu(Window* window, GuiGameList* parent) : GuiComponent(window) -{ - mParent = parent; - - std::shared_ptr font = Font::get(*mWindow->getResourceManager(), Font::getDefaultPath(), FONT_SIZE_LARGE); - mList = new TextListComponent(mWindow, 0.0f, font->getHeight() + 2.0f, font); - mList->setSelectedTextColor(0x0000FFFF); - populateList(); -} - -GuiMenu::~GuiMenu() -{ - delete mList; -} - -bool GuiMenu::input(InputConfig* config, Input input) -{ - mList->input(config, input); - - if(config->isMappedTo("menu", input) && input.value != 0) - { - delete this; - return true; - } - - if(config->isMappedTo("a", input) && input.value != 0) - { - executeCommand(mList->getSelectedObject()); - return true; - } - - return false; -} - -void GuiMenu::executeCommand(std::string command) -{ - if(command == "exit") - { - //push SDL quit event - SDL_Event* event = new SDL_Event(); - event->type = SDL_QUIT; - SDL_PushEvent(event); - }else if(command == "es_reload") - { - //reload the game list - SystemData::loadConfig(SystemData::getConfigPath(), false); - mParent->setSystemId(0); - }else if(command == "es_settings") - { - mWindow->pushGui(new GuiSettingsMenu(mWindow)); - delete this; - }else{ - if(system(command.c_str()) != 0) - { - LOG(LogWarning) << "(warning: command terminated with nonzero result!)"; - } - } -} - -void GuiMenu::populateList() -{ - mList->clear(); - - //if you want to add your own commands to the menu, here is where you need to change! - //commands added here are called with system() when selected (so are executed as shell commands) - //the method is GuiList::addObject(std::string displayString, std::string commandString, unsigned int displayHexColor); - //the list will automatically adjust as items are added to it, this should be the only area you need to change - //if you want to do something special within ES, override your command in the executeComand() method - - mList->addObject("Settings", "es_settings", 0x0000FFFF); - - mList->addObject("Restart", "sudo shutdown -r now", 0x0000FFFF); - mList->addObject("Shutdown", "sudo shutdown -h now", 0x0000FFFF); - - mList->addObject("Reload", "es_reload", 0x0000FFFF); - - if(!Settings::getInstance()->getBool("DONTSHOWEXIT")) - mList->addObject("Exit", "exit", 0xFF0000FF); //a special case; pushes an SDL quit event to the event stack instead of being called by system() -} - -void GuiMenu::update(int deltaTime) -{ - mList->update(deltaTime); -} - -void GuiMenu::render(const Eigen::Affine3f& parentTrans) -{ - Eigen::Affine3f trans = parentTrans; - Renderer::setMatrix(trans); - - Renderer::drawRect(Renderer::getScreenWidth() / 4, 0, Renderer::getScreenWidth() / 2, Renderer::getScreenHeight(), 0x999999); - mList->render(trans); -} diff --git a/src/components/GuiMenu.h b/src/components/GuiMenu.h deleted file mode 100644 index 4f533a717..000000000 --- a/src/components/GuiMenu.h +++ /dev/null @@ -1,27 +0,0 @@ -#ifndef _GUIMENU_H_ -#define _GUIMENU_H_ - -#include "../GuiComponent.h" -#include "TextListComponent.h" - -class GuiGameList; - -class GuiMenu : public GuiComponent -{ -public: - GuiMenu(Window* window, GuiGameList* parent); - virtual ~GuiMenu(); - - bool input(InputConfig* config, Input input) override; - void update(int deltaTime) override; - void render(const Eigen::Affine3f& parentTrans) override; - -private: - GuiGameList* mParent; - TextListComponent* mList; - - void populateList(); - void executeCommand(std::string command); -}; - -#endif diff --git a/src/components/GuiSettingsMenu.cpp b/src/components/GuiSettingsMenu.cpp deleted file mode 100644 index 6766bfb7a..000000000 --- a/src/components/GuiSettingsMenu.cpp +++ /dev/null @@ -1,118 +0,0 @@ -#include "GuiSettingsMenu.h" -#include "../Renderer.h" -#include "../Settings.h" -#include "../VolumeControl.h" - -GuiSettingsMenu::GuiSettingsMenu(Window* window) : GuiComponent(window), - mList(window, Eigen::Vector2i(2, 4)), - mBox(mWindow, 0, 0, 0, 0), - mDrawFramerateSwitch(window), - mVolumeSlider(window, 0, 100, 1), - mDisableSoundsSwitch(window, false), - mSaveLabel(window) -{ - loadStates(); - - addChild(&mBox); - addChild(&mList); - - mList.setPosition(Renderer::getScreenWidth() / 4.0f, 0); - - using namespace Eigen; - - TextComponent* label = new TextComponent(mWindow); - label->setText("Draw Framerate: "); - label->setColor(0x0000FFFF); - mList.setEntry(Vector2i(0, 0), Vector2i(1, 1), label, false, ComponentListComponent::AlignRight, Matrix(true, true)); - mLabels.push_back(label); - - //drawFramerate switch - mList.setEntry(Vector2i(1, 0), Vector2i(1, 1), &mDrawFramerateSwitch, true, ComponentListComponent::AlignCenter, Matrix(true, true)); - - //volume label - label = new TextComponent(mWindow); - label->setText("System volume: "); - label->setColor(0x0000FFFF); - mLabels.push_back(label); - mList.setEntry(Vector2i(0, 1), Vector2i(1, 1), label, false, ComponentListComponent::AlignRight, Matrix(true, true)); - - //volume slider - mList.setEntry(Vector2i(1, 1), Vector2i(1, 1), &mVolumeSlider, true, ComponentListComponent::AlignCenter, Matrix(true, true)); - - //disable sounds - label = new TextComponent(mWindow); - label->setText("Disable sounds: "); - label->setColor(0x0000FFFF); - mLabels.push_back(label); - mList.setEntry(Vector2i(0, 2), Vector2i(1, 1), label, false, ComponentListComponent::AlignRight, Matrix(true, true)); - - mList.setEntry(Vector2i(1, 2), Vector2i(1, 1), &mDisableSoundsSwitch, true, ComponentListComponent::AlignCenter, Matrix(true, true)); - - - //save label - mSaveLabel.setText("SAVE"); - mSaveLabel.setColor(0x000000FF); - mList.setEntry(Vector2i(0, 3), Vector2i(2, 1), &mSaveLabel, true, ComponentListComponent::AlignCenter, Matrix(false, true)); - - //center list - mList.setPosition(Renderer::getScreenWidth() / 2 - mList.getSize().x() / 2, Renderer::getScreenHeight() / 2 - mList.getSize().y() / 2); - mBox.setPosition(mList.getPosition()); - mBox.setSize(mList.getSize()); - - mBox.setCornerImage(":/corner.png"); - mBox.setVerticalImage(":/bar.png"); - mBox.setHorizontalImage(":/bar.png"); - mBox.setBorderColor(0x333333FF); -} - -GuiSettingsMenu::~GuiSettingsMenu() -{ - for(auto iter = mLabels.begin(); iter != mLabels.end(); iter++) - { - delete *iter; - } -} - -bool GuiSettingsMenu::input(InputConfig* config, Input input) -{ - //let our children (read: list) go first - if(GuiComponent::input(config, input)) - return true; - - if(config->isMappedTo("b", input) && input.value) - { - delete this; - return true; - } - - if(config->isMappedTo("a", input) && mList.getSelectedComponent() == &mSaveLabel && input.value) - { - applyStates(); - delete this; - return true; - } - - return false; -} - -void GuiSettingsMenu::loadStates() -{ - Settings* s = Settings::getInstance(); - mDrawFramerateSwitch.setState(s->getBool("DRAWFRAMERATE")); - - mVolumeSlider.setValue((float)VolumeControl::getInstance()->getVolume()); - - mDisableSoundsSwitch.setState(s->getBool("DISABLESOUNDS")); -} - -void GuiSettingsMenu::applyStates() -{ - Settings* s = Settings::getInstance(); - s->setBool("DRAWFRAMERATE", mDrawFramerateSwitch.getState()); - - VolumeControl::getInstance()->setVolume((int)mVolumeSlider.getValue()); - - s->setBool("DISABLESOUNDS", mDisableSoundsSwitch.getState()); - - s->saveFile(); -} diff --git a/src/components/GuiSettingsMenu.h b/src/components/GuiSettingsMenu.h deleted file mode 100644 index 48ab6be11..000000000 --- a/src/components/GuiSettingsMenu.h +++ /dev/null @@ -1,36 +0,0 @@ -#ifndef _SETTINGSMENU_H_ -#define _SETTINGSMENU_H_ - -#include "../GuiComponent.h" -#include "ComponentListComponent.h" -#include -#include "SwitchComponent.h" -#include "SliderComponent.h" -#include "TextComponent.h" -#include "GuiBox.h" - -class GuiSettingsMenu : public GuiComponent -{ -public: - GuiSettingsMenu(Window* window); - ~GuiSettingsMenu(); - - bool input(InputConfig* config, Input input) override; - -private: - void loadStates(); - void applyStates(); - - ComponentListComponent mList; - - GuiBox mBox; - - SwitchComponent mDrawFramerateSwitch; - SliderComponent mVolumeSlider; - SwitchComponent mDisableSoundsSwitch; - TextComponent mSaveLabel; - - std::vector mLabels; -}; - -#endif diff --git a/src/components/ImageComponent.cpp b/src/components/ImageComponent.cpp deleted file mode 100644 index 6ed1f7cd1..000000000 --- a/src/components/ImageComponent.cpp +++ /dev/null @@ -1,233 +0,0 @@ -#include "ImageComponent.h" -#include -#include -#include -#include "../Log.h" -#include "../Renderer.h" -#include "../Window.h" - -Eigen::Vector2i ImageComponent::getTextureSize() const -{ - if(mTexture) - return mTexture->getSize(); - else - return Eigen::Vector2i(0, 0); -} - -Eigen::Vector2f ImageComponent::getCenter() const -{ - return Eigen::Vector2f(mPosition.x() - (getSize().x() * mOrigin.x()) + getSize().x() / 2, - mPosition.y() - (getSize().y() * mOrigin.y()) + getSize().y() / 2); -} - -ImageComponent::ImageComponent(Window* window, float offsetX, float offsetY, std::string path, float targetWidth, float targetHeight, bool allowUpscale) : GuiComponent(window), - mTiled(false), mAllowUpscale(allowUpscale), mFlipX(false), mFlipY(false), mOrigin(0.5, 0.5), mTargetSize(targetWidth, targetHeight), mColorShift(0xFFFFFFFF) -{ - setPosition(offsetX, offsetY); - - if(!path.empty()) - setImage(path); -} - -ImageComponent::~ImageComponent() -{ -} - -void ImageComponent::resize() -{ - if(!mTexture) - return; - - mSize << (float)getTextureSize().x(), (float)getTextureSize().y(); - - //(we don't resize tiled images) - if(!mTiled && (mTargetSize.x() || mTargetSize.y())) - { - Eigen::Vector2f resizeScale(Eigen::Vector2f::Zero()); - - if(mTargetSize.x() && (mAllowUpscale || mSize.x() > mTargetSize.x())) - { - resizeScale[0] = mTargetSize.x() / mSize.x(); - } - if(mTargetSize.y() && (mAllowUpscale || mSize.y() > mTargetSize.y())) - { - resizeScale[1] = mTargetSize.y() / mSize.y(); - } - - if(resizeScale.x() && !resizeScale.y()) - resizeScale[1] = resizeScale.x(); - if(resizeScale[1] && !resizeScale.x()) - resizeScale[0] = resizeScale.y(); - - if(resizeScale.x()) - mSize[0] = (mSize.x() * resizeScale.x()); - if(resizeScale.y()) - mSize[1] = (mSize.y() * resizeScale.y()); - } - - if(mTiled) - mSize = mTargetSize; -} - -void ImageComponent::setImage(std::string path) -{ - mPath = path; - - if(mPath.empty() || !mWindow->getResourceManager()->fileExists(mPath)) - mTexture.reset(); - else - mTexture = TextureResource::get(*mWindow->getResourceManager(), mPath); - - resize(); -} - -void ImageComponent::setOrigin(float originX, float originY) -{ - mOrigin << originX, originY; -} - -void ImageComponent::setTiling(bool tile) -{ - mTiled = tile; - - if(mTiled) - mAllowUpscale = false; - - resize(); -} - -void ImageComponent::setResize(float width, float height, bool allowUpscale) -{ - mTargetSize << width, height; - mAllowUpscale = allowUpscale; - resize(); -} - -void ImageComponent::setFlipX(bool flip) -{ - mFlipX = flip; -} - -void ImageComponent::setFlipY(bool flip) -{ - mFlipY = flip; -} - -void ImageComponent::setColorShift(unsigned int color) -{ - mColorShift = color; -} - -void ImageComponent::render(const Eigen::Affine3f& parentTrans) -{ - Eigen::Affine3f trans = parentTrans * getTransform(); - Renderer::setMatrix(trans); - - if(mTexture && getOpacity() > 0) - { - GLfloat points[12], texs[12]; - GLubyte colors[6*4]; - - if(mTiled) - { - float xCount = mSize.x() / getTextureSize().x(); - float yCount = mSize.y() / getTextureSize().y(); - - Renderer::buildGLColorArray(colors, (mColorShift >> 8 << 8)| (getOpacity()), 6); - buildImageArray(0, 0, points, texs, xCount, yCount); - }else{ - Renderer::buildGLColorArray(colors, (mColorShift >> 8 << 8) | (getOpacity()), 6); - buildImageArray(0, 0, points, texs); - } - - drawImageArray(points, texs, colors, 6); - } - - GuiComponent::renderChildren(trans); -} - -void ImageComponent::buildImageArray(int posX, int posY, GLfloat* points, GLfloat* texs, float px, float py) -{ - points[0] = posX - (mSize.x() * mOrigin.x()); points[1] = posY - (mSize.y() * mOrigin.y()); - points[2] = posX - (mSize.x() * mOrigin.x()); points[3] = posY + (mSize.y() * (1 - mOrigin.y())); - points[4] = posX + (mSize.x() * (1 - mOrigin.x())); points[5] = posY - (mSize.y() * mOrigin.y()); - - points[6] = posX + (mSize.x() * (1 - mOrigin.x())); points[7] = posY - (mSize.y() * mOrigin.y()); - points[8] = posX - (mSize.x() * mOrigin.x()); points[9] = posY + (mSize.y() * (1 - mOrigin.y())); - points[10] = posX + (mSize.x() * (1 -mOrigin.x())); points[11] = posY + (mSize.y() * (1 - mOrigin.y())); - - - - texs[0] = 0; texs[1] = py; - texs[2] = 0; texs[3] = 0; - texs[4] = px; texs[5] = py; - - texs[6] = px; texs[7] = py; - texs[8] = 0; texs[9] = 0; - texs[10] = px; texs[11] = 0; - - if(mFlipX) - { - for(int i = 0; i < 11; i += 2) - if(texs[i] == px) - texs[i] = 0; - else - texs[i] = px; - } - if(mFlipY) - { - for(int i = 1; i < 12; i += 2) - if(texs[i] == py) - texs[i] = 0; - else - texs[i] = py; - } -} - -void ImageComponent::drawImageArray(GLfloat* points, GLfloat* texs, GLubyte* colors, unsigned int numArrays) -{ - mTexture->bind(); - - glEnable(GL_TEXTURE_2D); - glEnable(GL_BLEND); - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - - glEnableClientState(GL_VERTEX_ARRAY); - glEnableClientState(GL_TEXTURE_COORD_ARRAY); - - if(colors != NULL) - { - glEnableClientState(GL_COLOR_ARRAY); - glColorPointer(4, GL_UNSIGNED_BYTE, 0, colors); - } - - glVertexPointer(2, GL_FLOAT, 0, points); - glTexCoordPointer(2, GL_FLOAT, 0, texs); - - glDrawArrays(GL_TRIANGLES, 0, numArrays); - - glDisableClientState(GL_VERTEX_ARRAY); - glDisableClientState(GL_TEXTURE_COORD_ARRAY); - - if(colors != NULL) - glDisableClientState(GL_COLOR_ARRAY); - - glDisable(GL_TEXTURE_2D); - glDisable(GL_BLEND); -} - -bool ImageComponent::hasImage() -{ - return !mPath.empty(); -} - - -void ImageComponent::copyScreen() -{ - mTexture.reset(); - - mTexture = TextureResource::get(*mWindow->getResourceManager(), ""); - mTexture->initFromScreen(); - - resize(); -} diff --git a/src/components/ImageComponent.h b/src/components/ImageComponent.h deleted file mode 100644 index 92509492a..000000000 --- a/src/components/ImageComponent.h +++ /dev/null @@ -1,57 +0,0 @@ -#ifndef _IMAGECOMPONENT_H_ -#define _IMAGECOMPONENT_H_ - -#include "../platform.h" -#include GLHEADER - -#include "../GuiComponent.h" -#include -#include -#include "../resources/TextureResource.h" - -class ImageComponent : public GuiComponent -{ -public: - //Creates a new GuiImage at the given location. If given an image, it will be loaded. If maxWidth and/or maxHeight are nonzero, the image will be - //resized to fit. If only one axis is specified, the other will be set in accordance with the image's aspect ratio. If allowUpscale is false, - //the image will only be downscaled, never upscaled (the image's size must surpass at least one nonzero bound). - ImageComponent(Window* window, float offsetX = 0.0f, float offsetY = 0.0f, std::string path = "", float maxWidth = 0, float maxHeight = 0, bool allowUpscale = false); - virtual ~ImageComponent(); - - void copyScreen(); //Copy the entire screen into a texture for us to use. - void setImage(std::string path); //Loads the image at the given filepath. - void setOrigin(float originX, float originY); //Sets the origin as a percentage of this image (e.g. (0, 0) is top left, (0.5, 0.5) is the center) - void setTiling(bool tile); //Enables or disables tiling. Must be called before loading an image or resizing will be weird. - void setResize(float width, float height, bool allowUpscale); - void setColorShift(unsigned int color); - - void setFlipX(bool flip); - void setFlipY(bool flip); - - //You can get the rendered size of the ImageComponent with getSize(). - Eigen::Vector2i getTextureSize() const; - - Eigen::Vector2f getCenter() const; - - bool hasImage(); - - void render(const Eigen::Affine3f& parentTrans) override; - -private: - Eigen::Vector2f mTargetSize; - Eigen::Vector2f mOrigin; - - bool mAllowUpscale, mTiled, mFlipX, mFlipY; - - void resize(); - void buildImageArray(int x, int y, GLfloat* points, GLfloat* texs, float percentageX = 1, float percentageY = 1); //writes 12 GLfloat points and 12 GLfloat texture coordinates to a given array at a given position - void drawImageArray(GLfloat* points, GLfloat* texs, GLubyte* colors, unsigned int count = 6); //draws the given set of points and texture coordinates, number of coordinate pairs may be specified (default 6) - - std::string mPath; - - unsigned int mColorShift; - - std::shared_ptr mTexture; -}; - -#endif diff --git a/src/components/ScrollableContainer.cpp b/src/components/ScrollableContainer.cpp deleted file mode 100644 index 73a4a6ab2..000000000 --- a/src/components/ScrollableContainer.cpp +++ /dev/null @@ -1,109 +0,0 @@ -#include "ScrollableContainer.h" -#include "../Renderer.h" -#include "../Log.h" - -ScrollableContainer::ScrollableContainer(Window* window) : GuiComponent(window), - mAutoScrollDelay(0), mAutoScrollSpeed(0), mAutoScrollTimer(0), mScrollPos(0, 0), mScrollDir(0, 0) -{ -} - -void ScrollableContainer::render(const Eigen::Affine3f& parentTrans) -{ - Eigen::Affine3f trans = parentTrans * getTransform(); - - Eigen::Vector2i clipPos((int)trans.translation().x(), (int)trans.translation().y()); - - Eigen::Vector3f dimScaled = trans * Eigen::Vector3f(mSize.x(), mSize.y(), 0); - Eigen::Vector2i clipDim((int)dimScaled.x() - trans.translation().x(), (int)dimScaled.y() - trans.translation().y()); - - Renderer::pushClipRect(clipPos, clipDim); - - trans.translate(Eigen::Vector3f((float)-mScrollPos.x(), (float)-mScrollPos.y(), 0)); - Renderer::setMatrix(trans); - - GuiComponent::renderChildren(trans); - - Renderer::popClipRect(); -} - -void ScrollableContainer::setAutoScroll(int delay, double speed) -{ - mAutoScrollDelay = delay; - mAutoScrollSpeed = speed; - mAutoScrollTimer = 0; -} - -Eigen::Vector2d ScrollableContainer::getScrollPos() const -{ - return mScrollPos; -} - -void ScrollableContainer::setScrollPos(const Eigen::Vector2d& pos) -{ - mScrollPos = pos; -} - -void ScrollableContainer::update(int deltaTime) -{ - double scrollAmt = (double)deltaTime; - - if(mAutoScrollSpeed != 0) - { - mAutoScrollTimer += deltaTime; - - scrollAmt = (float)(mAutoScrollTimer - mAutoScrollDelay); - - if(scrollAmt > 0) - { - //scroll the amount of time left over from the delay - mAutoScrollTimer = mAutoScrollDelay; - - //scale speed by our width! more text per line = slower scrolling - const double widthMod = (680.0 / getSize().x()); - mScrollDir = Eigen::Vector2d(0, mAutoScrollSpeed * widthMod); - }else{ - //not enough to pass the delay, do nothing - scrollAmt = 0; - } - } - - Eigen::Vector2d scroll = mScrollDir * scrollAmt; - mScrollPos += scroll; - - //clip scrolling within bounds - if(mScrollPos.x() < 0) - mScrollPos[0] = 0; - if(mScrollPos.y() < 0) - mScrollPos[1] = 0; - - - Eigen::Vector2f contentSize = getContentSize(); - if(mScrollPos.x() + getSize().x() > contentSize.x()) - mScrollPos[0] = (double)contentSize.x() - getSize().x(); - if(mScrollPos.y() + getSize().y() > contentSize.y()) - mScrollPos[1] = (double)contentSize.y() - getSize().y(); - - GuiComponent::update(deltaTime); -} - -//this should probably return a box to allow for when controls don't start at 0,0 -Eigen::Vector2f ScrollableContainer::getContentSize() -{ - Eigen::Vector2f max(0, 0); - for(unsigned int i = 0; i < mChildren.size(); i++) - { - Eigen::Vector2f pos(mChildren.at(i)->getPosition()[0], mChildren.at(i)->getPosition()[1]); - Eigen::Vector2f bottomRight = mChildren.at(i)->getSize() + pos; - if(bottomRight.x() > max.x()) - max.x() = bottomRight.x(); - if(bottomRight.y() > max.y()) - max.y() = bottomRight.y(); - } - - return max; -} - -void ScrollableContainer::resetAutoScrollTimer() -{ - mAutoScrollTimer = 0; -} diff --git a/src/components/ScrollableContainer.h b/src/components/ScrollableContainer.h deleted file mode 100644 index eea48888e..000000000 --- a/src/components/ScrollableContainer.h +++ /dev/null @@ -1,26 +0,0 @@ -#pragma once - -#include "../GuiComponent.h" - -class ScrollableContainer : public GuiComponent -{ -public: - ScrollableContainer(Window* window); - - Eigen::Vector2d getScrollPos() const; - void setScrollPos(const Eigen::Vector2d& pos); - void setAutoScroll(int delay, double speed); //Use 0 for speed to disable. - void resetAutoScrollTimer(); - - void update(int deltaTime) override; - void render(const Eigen::Affine3f& parentTrans) override; - -private: - Eigen::Vector2f getContentSize(); - - Eigen::Vector2d mScrollPos; - Eigen::Vector2d mScrollDir; - int mAutoScrollDelay; - double mAutoScrollSpeed; - int mAutoScrollTimer; -}; diff --git a/src/components/SliderComponent.cpp b/src/components/SliderComponent.cpp deleted file mode 100644 index 68a1e17b1..000000000 --- a/src/components/SliderComponent.cpp +++ /dev/null @@ -1,99 +0,0 @@ -#include "SliderComponent.h" -#include -#include "../Renderer.h" - -SliderComponent::SliderComponent(Window* window, float min, float max, float increment) : GuiComponent(window), - mMin(min), mMax(max), mIncrement(increment), mMoveRate(0), mRepeatWaitTimer(0) -{ - assert((min - max) != 0); - - mValue = (max + min) / 2; - - //calculate move scale - mMoveScale = ((max - min) * 0.0007f) / increment; - - setSize(128, 32); -} - -bool SliderComponent::input(InputConfig* config, Input input) -{ - if(config->isMappedTo("left", input)) - { - if(input.value) - mMoveRate = -mIncrement; - else - mMoveRate = 0; - - //setting mRepeatWaitTimer to 0 will trigger an initial move in our update method - mRepeatWaitTimer = 0; - - return true; - } - if(config->isMappedTo("right", input)) - { - if(input.value) - mMoveRate = mIncrement; - else - mMoveRate = 0; - - mRepeatWaitTimer = 0; - - return true; - } - - return GuiComponent::input(config, input); -} - -void SliderComponent::update(int deltaTime) -{ - if(mMoveRate != 0) - { - if(mRepeatWaitTimer == 0) - mValue += mMoveRate; - else if(mRepeatWaitTimer >= 450) - mValue += mMoveRate * deltaTime * mMoveScale; - - if(mValue < mMin) - mValue = mMin; - if(mValue > mMax) - mValue = mMax; - - if(mRepeatWaitTimer < 450) - mRepeatWaitTimer += deltaTime; - } - - GuiComponent::update(deltaTime); -} - -void SliderComponent::render(const Eigen::Affine3f& parentTrans) -{ - Eigen::Affine3f trans = parentTrans * getTransform(); - Renderer::setMatrix(trans); - - //render line - const int lineWidth = 2; - Renderer::drawRect(0, (int)mSize.y() / 2 - lineWidth / 2, (int)mSize.x(), lineWidth, 0x000000CC); - - //render left end - const int capWidth = (int)(mSize.x() * 0.03f); - Renderer::drawRect(0, 0, capWidth, (int)mSize.y(), 0x000000CC); - - //render right end - Renderer::drawRect((int)mSize.x() - capWidth, 0, capWidth, (int)mSize.y(), 0x000000CC); - - //render our value - const int lineLength = (int)mSize.x() - capWidth; - Renderer::drawRect((int)(((mValue + mMin) / mMax) * lineLength), 0, capWidth, (int)mSize.y(), 0x0000FFFF); - - GuiComponent::renderChildren(trans); -} - -void SliderComponent::setValue(float value) -{ - mValue = value; -} - -float SliderComponent::getValue() -{ - return mValue; -} diff --git a/src/components/SwitchComponent.cpp b/src/components/SwitchComponent.cpp deleted file mode 100644 index ef7156522..000000000 --- a/src/components/SwitchComponent.cpp +++ /dev/null @@ -1,47 +0,0 @@ -#include "SwitchComponent.h" -#include "../Renderer.h" -#include "../Font.h" -#include "../Window.h" - -SwitchComponent::SwitchComponent(Window* window, bool state) : GuiComponent(window), mState(state) -{ - //mSize = Vector2u((unsigned int)(Renderer::getScreenWidth() * 0.05), - // (unsigned int)(Renderer::getScreenHeight() * 0.05)); - - mSize = Font::get(*mWindow->getResourceManager(), Font::getDefaultPath(), FONT_SIZE_MEDIUM)->sizeText("OFF"); -} - -bool SwitchComponent::input(InputConfig* config, Input input) -{ - if(config->isMappedTo("a", input) && input.value) - { - mState = !mState; - return true; - } - - return false; -} - -void SwitchComponent::render(const Eigen::Affine3f& parentTrans) -{ - //Renderer::pushClipRect(getGlobalOffset(), getSize()); - - Eigen::Affine3f trans = parentTrans * getTransform(); - Renderer::setMatrix(trans); - - Font::get(*mWindow->getResourceManager(), Font::getDefaultPath(), FONT_SIZE_MEDIUM)->drawText(mState ? "ON" : "OFF", Eigen::Vector2f(0, 0), mState ? 0x00FF00FF : 0xFF0000FF); - - //Renderer::popClipRect(); - - GuiComponent::renderChildren(trans); -} - -bool SwitchComponent::getState() -{ - return mState; -} - -void SwitchComponent::setState(bool state) -{ - mState = state; -} diff --git a/src/components/SwitchComponent.h b/src/components/SwitchComponent.h deleted file mode 100644 index 13ab441fb..000000000 --- a/src/components/SwitchComponent.h +++ /dev/null @@ -1,18 +0,0 @@ -#pragma once - -#include "../GuiComponent.h" - -class SwitchComponent : public GuiComponent -{ -public: - SwitchComponent(Window* window, bool state = false); - - bool input(InputConfig* config, Input input) override; - void render(const Eigen::Affine3f& parentTrans) override; - - bool getState(); - void setState(bool state); - -private: - bool mState; -}; diff --git a/src/components/TextComponent.cpp b/src/components/TextComponent.cpp deleted file mode 100644 index 8219caab6..000000000 --- a/src/components/TextComponent.cpp +++ /dev/null @@ -1,95 +0,0 @@ -#include "TextComponent.h" -#include "../Renderer.h" -#include "../Log.h" -#include "../Window.h" - -TextComponent::TextComponent(Window* window) : GuiComponent(window), - mFont(NULL), mColor(0x000000FF), mAutoCalcExtent(true, true), mCentered(false) -{ -} - -TextComponent::TextComponent(Window* window, const std::string& text, std::shared_ptr font, Eigen::Vector3f pos, Eigen::Vector2f size) : GuiComponent(window), - mFont(NULL), mColor(0x000000FF), mAutoCalcExtent(true, true), mCentered(false) -{ - setText(text); - setFont(font); - setPosition(pos); - setSize(size); -} - -void TextComponent::onSizeChanged() -{ - mAutoCalcExtent << (getSize().x() == 0), (getSize().y() == 0); - calculateExtent(); -} - -void TextComponent::setFont(std::shared_ptr font) -{ - mFont = font; - - calculateExtent(); -} - -void TextComponent::setColor(unsigned int color) -{ - mColor = color; - mOpacity = mColor & 0x000000FF; -} - -void TextComponent::setText(const std::string& text) -{ - mText = text; - - calculateExtent(); -} - -void TextComponent::setCentered(bool center) -{ - mCentered = center; -} - -std::shared_ptr TextComponent::getFont() const -{ - if(mFont) - return mFont; - else - return Font::get(*mWindow->getResourceManager(), Font::getDefaultPath(), FONT_SIZE_MEDIUM); -} - -void TextComponent::render(const Eigen::Affine3f& parentTrans) -{ - std::shared_ptr font = getFont(); - - Eigen::Affine3f trans = parentTrans * getTransform(); - - if(font && !mText.empty()) - { - Renderer::setMatrix(trans); - - if(mCentered) - { - Eigen::Vector2f textSize = font->sizeWrappedText(mText, getSize().x()); - Eigen::Vector2f pos((getSize().x() - textSize.x()) / 2, 0); - font->drawWrappedText(mText, pos, getSize().x(), (mColor >> 8 << 8) | getOpacity()); - }else{ - font->drawWrappedText(mText, Eigen::Vector2f(0, 0), getSize().x(), mColor >> 8 << 8 | getOpacity()); - } - } - - GuiComponent::renderChildren(trans); -} - -void TextComponent::calculateExtent() -{ - std::shared_ptr font = getFont(); - - if(mAutoCalcExtent.x()) - { - mSize = font->sizeText(mText); - }else{ - if(mAutoCalcExtent.y()) - { - mSize[1] = font->sizeWrappedText(mText, getSize().x()).y(); - } - } -} diff --git a/src/components/TextComponent.h b/src/components/TextComponent.h deleted file mode 100644 index 8df7749b1..000000000 --- a/src/components/TextComponent.h +++ /dev/null @@ -1,33 +0,0 @@ -#ifndef _TEXTCOMPONENT_H_ -#define _TEXTCOMPONENT_H_ - -#include "../GuiComponent.h" -#include "../Font.h" - -class TextComponent : public GuiComponent -{ -public: - TextComponent(Window* window); - TextComponent(Window* window, const std::string& text, std::shared_ptr font, Eigen::Vector3f pos, Eigen::Vector2f size); - - void setFont(std::shared_ptr font); - void onSizeChanged() override; - void setText(const std::string& text); - void setColor(unsigned int color); - void setCentered(bool center); //Default is uncentered. - - void render(const Eigen::Affine3f& parentTrans) override; - -private: - std::shared_ptr getFont() const; - - void calculateExtent(); - - unsigned int mColor; - std::shared_ptr mFont; - Eigen::Matrix mAutoCalcExtent; - std::string mText; - bool mCentered; -}; - -#endif diff --git a/src/components/TextListComponent.h b/src/components/TextListComponent.h deleted file mode 100644 index 1c1f13f52..000000000 --- a/src/components/TextListComponent.h +++ /dev/null @@ -1,418 +0,0 @@ -#ifndef _TEXTLISTCOMPONENT_H_ -#define _TEXTLISTCOMPONENT_H_ - -#include "../Renderer.h" -#include "../Font.h" -#include "../GuiComponent.h" -#include "../InputManager.h" -#include -#include -#include -#include "../Sound.h" -#include "../Log.h" - -#define MARQUEE_DELAY 900 -#define MARQUEE_SPEED 16 -#define MARQUEE_RATE 3 - -//A graphical list. Supports multiple colors for rows and scrolling. -template -class TextListComponent : public GuiComponent -{ -public: - TextListComponent(Window* window, float offsetX, float offsetY, std::shared_ptr font); - virtual ~TextListComponent(); - - bool input(InputConfig* config, Input input) override; - void update(int deltaTime) override; - void render(const Eigen::Affine3f& parentTrans) override; - - void onPositionChanged() override; - - void addObject(std::string name, T obj, unsigned int color = 0xFF0000); - void clear(); - - std::string getSelectedName(); - T getSelectedObject(); - int getSelection(); - void stopScrolling(); - bool isScrolling(); - - void setSelectorColor(unsigned int selectorColor); - void setSelectedTextColor(unsigned int selectedColor); - void setCentered(bool centered); - void setScrollSound(std::shared_ptr & sound); - void setTextOffsetX(int textoffsetx); - - int getObjectCount(); - T getObject(int i); - void setSelection(int i); - - void setFont(std::shared_ptr f); - -private: - static const int SCROLLDELAY = 507; - static const int SCROLLTIME = 200; - - void scroll(); //helper method, scrolls in whatever direction scrollDir is - void setScrollDir(int val); //helper method, set mScrollDir as well as reset marquee stuff - - int mScrollDir, mScrollAccumulator; - bool mScrolling; - - int mMarqueeOffset; - int mMarqueeTime; - - std::shared_ptr mFont; - unsigned int mSelectorColor, mSelectedTextColorOverride; - bool mDrawCentered; - - int mTextOffsetX; - - struct ListRow - { - std::string name; - T object; - unsigned int color; - }; - - std::vector mRowVector; - int mSelection; - std::shared_ptr mScrollSound; -}; - -template -TextListComponent::TextListComponent(Window* window, float offsetX, float offsetY, std::shared_ptr font) : GuiComponent(window) -{ - mSelection = 0; - mScrollDir = 0; - mScrolling = 0; - mScrollAccumulator = 0; - - setPosition(offsetX, offsetY); - - mMarqueeOffset = 0; - mMarqueeTime = -MARQUEE_DELAY; - mTextOffsetX = 0; - - mFont = font; - mSelectorColor = 0x000000FF; - mSelectedTextColorOverride = 0; - mScrollSound = NULL; - mDrawCentered = true; -} - -template -void TextListComponent::onPositionChanged() -{ - setSize(Renderer::getScreenWidth() - getPosition().x(), Renderer::getScreenHeight() - getPosition().y()); -} - -template -TextListComponent::~TextListComponent() -{ -} - -template -void TextListComponent::render(const Eigen::Affine3f& parentTrans) -{ - Eigen::Affine3f trans = parentTrans * getTransform(); - Renderer::setMatrix(trans); - - const int cutoff = 0; - const int entrySize = mFont->getHeight() + 5; - - int startEntry = 0; - - //number of entries that can fit on the screen simultaniously - int screenCount = (int)mSize.y() / entrySize; - - if((int)mRowVector.size() >= screenCount) - { - startEntry = mSelection - (int)(screenCount * 0.5); - if(startEntry < 0) - startEntry = 0; - if(startEntry >= (int)mRowVector.size() - screenCount) - startEntry = mRowVector.size() - screenCount; - } - - float y = (float)cutoff; - - if(mRowVector.size() == 0) - { - mFont->drawCenteredText("The list is empty.", 0, y, 0xFF0000FF); - return; - } - - int listCutoff = startEntry + screenCount; - if(listCutoff > (int)mRowVector.size()) - listCutoff = mRowVector.size(); - - Eigen::Vector3f dim(getSize().x(), getSize().y(), 0); - dim = trans * dim - trans.translation(); - Renderer::pushClipRect(Eigen::Vector2i((int)trans.translation().x(), (int)trans.translation().y()), Eigen::Vector2i((int)dim.x(), (int)dim.y())); - - //Renderer::pushClipRect(pos, dim); - //Renderer::pushClipRect(Eigen::Vector2i((int)trans.translation().x(), (int)trans.translation().y()), Eigen::Vector2i((int)getSize().x() * trans., (int)getSize().y() * trans.scale().y())); - //Renderer::pushClipRect(getGlobalOffset(), getSize()); - - for(int i = startEntry; i < listCutoff; i++) - { - //draw selector bar - if(mSelection == i) - { - Renderer::drawRect(0, (int)y, (int)getSize().x(), mFont->getHeight(), mSelectorColor); - } - - ListRow row = mRowVector.at((unsigned int)i); - - float x = (float)mTextOffsetX - (mSelection == i ? mMarqueeOffset : 0); - unsigned int color = (mSelection == i && mSelectedTextColorOverride != 0) ? mSelectedTextColorOverride : row.color; - - if(mDrawCentered) - mFont->drawCenteredText(row.name, x, y, color); - else - mFont->drawText(row.name, Eigen::Vector2f(x, y), color); - - y += entrySize; - } - - Renderer::popClipRect(); - - GuiComponent::renderChildren(trans); -} - -template -bool TextListComponent::input(InputConfig* config, Input input) -{ - if(mRowVector.size() > 0) - { - if(input.value != 0) - { - if(config->isMappedTo("down", input)) - { - setScrollDir(1); - scroll(); - return true; - } - - if(config->isMappedTo("up", input)) - { - setScrollDir(-1); - scroll(); - return true; - } - if(config->isMappedTo("pagedown", input)) - { - setScrollDir(10); - scroll(); - return true; - } - - if(config->isMappedTo("pageup", input)) - { - setScrollDir(-10); - scroll(); - return true; - } - }else{ - if(config->isMappedTo("down", input) || config->isMappedTo("up", input) || config->isMappedTo("pagedown", input) || config->isMappedTo("pageup", input)) - { - stopScrolling(); - } - } - } - - return GuiComponent::input(config, input); -} - -template -void TextListComponent::setScrollDir(int val) -{ - mScrollDir = val; - mMarqueeOffset = 0; - mMarqueeTime = -MARQUEE_DELAY; -} - -template -void TextListComponent::stopScrolling() -{ - mScrollAccumulator = 0; - mScrolling = false; - mScrollDir = 0; -} - -template -void TextListComponent::update(int deltaTime) -{ - if(mScrollDir != 0) - { - mScrollAccumulator += deltaTime; - - if(!mScrolling) - { - if(mScrollAccumulator >= SCROLLDELAY) - { - mScrollAccumulator = SCROLLTIME; - mScrolling = true; - } - } - - if(mScrolling) - { - mScrollAccumulator += deltaTime; - - while(mScrollAccumulator >= SCROLLTIME) - { - mScrollAccumulator -= SCROLLTIME; - - scroll(); - } - } - }else{ - //if we're not scrolling and this object's text goes outside our size, marquee it! - std::string text = getSelectedName(); - - Eigen::Vector2f textSize = mFont->sizeText(text); - - //it's long enough to marquee - if(textSize.x() - mMarqueeOffset > getSize().x() - 12) - { - mMarqueeTime += deltaTime; - while(mMarqueeTime > MARQUEE_SPEED) - { - mMarqueeOffset += MARQUEE_RATE; - mMarqueeTime -= MARQUEE_SPEED; - } - } - } - - GuiComponent::update(deltaTime); -} - -template -void TextListComponent::scroll() -{ - mSelection += mScrollDir; - - if(mSelection < 0) - { - if(mScrollDir < -1) - mSelection = 0; - else - mSelection += mRowVector.size(); - } - if(mSelection >= (int)mRowVector.size()) - { - if(mScrollDir > 1) - mSelection = (int)mRowVector.size() - 1; - else - mSelection -= mRowVector.size(); - } - - if(mScrollSound) - mScrollSound->play(); -} - -//list management stuff -template -void TextListComponent::addObject(std::string name, T obj, unsigned int color) -{ - ListRow row = {name, obj, color}; - mRowVector.push_back(row); -} - -template -void TextListComponent::clear() -{ - mRowVector.clear(); - mSelection = 0; - mMarqueeOffset = 0; - mMarqueeTime = -MARQUEE_DELAY; -} - -template -std::string TextListComponent::getSelectedName() -{ - if((int)mRowVector.size() > mSelection) - return mRowVector.at(mSelection).name; - else - return ""; -} - -template -T TextListComponent::getSelectedObject() -{ - if((int)mRowVector.size() > mSelection) - return mRowVector.at(mSelection).object; - else - return NULL; -} - -template -int TextListComponent::getSelection() -{ - return mSelection; -} - -template -bool TextListComponent::isScrolling() -{ - return mScrollDir != 0; -} - -template -void TextListComponent::setSelectorColor(unsigned int selectorColor) -{ - mSelectorColor = selectorColor; -} - -template -void TextListComponent::setSelectedTextColor(unsigned int selectedColor) -{ - mSelectedTextColorOverride = selectedColor; -} - -template -void TextListComponent::setCentered(bool centered) -{ - mDrawCentered = centered; -} - -template -void TextListComponent::setTextOffsetX(int textoffsetx) -{ - mTextOffsetX = textoffsetx; -} - -template -int TextListComponent::getObjectCount() -{ - return mRowVector.size(); -} - -template -T TextListComponent::getObject(int i) -{ - return mRowVector.at(i).object; -} - -template -void TextListComponent::setSelection(int i) -{ - mSelection = i; -} - -template -void TextListComponent::setScrollSound(std::shared_ptr & sound) -{ - mScrollSound = sound; -} - -template -void TextListComponent::setFont(std::shared_ptr font) -{ - mFont = font; -} - -#endif diff --git a/src/components/ThemeComponent.cpp b/src/components/ThemeComponent.cpp deleted file mode 100644 index 3130a2549..000000000 --- a/src/components/ThemeComponent.cpp +++ /dev/null @@ -1,410 +0,0 @@ -#include "ThemeComponent.h" -#include "../MathExp.h" -#include -#include "GuiGameList.h" -#include "ImageComponent.h" -#include -#include -#include "../Renderer.h" -#include "../Log.h" - -unsigned int ThemeComponent::getColor(std::string name) -{ - return mColorMap[name]; -} - -bool ThemeComponent::getBool(std::string name) -{ - return mBoolMap[name]; -} - -float ThemeComponent::getFloat(std::string name) -{ - return mFloatMap[name]; -} - -std::shared_ptr & ThemeComponent::getSound(std::string name) -{ - return mSoundMap[name]; -} - -std::string ThemeComponent::getString(std::string name) -{ - return mStringMap[name]; -} - -GuiBoxData ThemeComponent::getBoxData() { return mBoxData; } - -std::shared_ptr ThemeComponent::getListFont() -{ - if(mListFont) - return mListFont; - else - return Font::get(*mWindow->getResourceManager(), Font::getDefaultPath(), FONT_SIZE_MEDIUM); -} - -std::shared_ptr ThemeComponent::getDescriptionFont() -{ - if(mDescFont) - return mDescFont; - else - return Font::get(*mWindow->getResourceManager(), Font::getDefaultPath(), FONT_SIZE_SMALL); -} - -std::shared_ptr ThemeComponent::getFastSelectFont() -{ - if(mFastSelectFont) - return mFastSelectFont; - else - return Font::get(*mWindow->getResourceManager(), Font::getDefaultPath(), FONT_SIZE_LARGE); -} - -ThemeComponent::ThemeComponent(Window* window) : GuiComponent(window) -{ - mSoundMap["menuScroll"] = std::shared_ptr(new Sound); - mSoundMap["menuSelect"] = std::shared_ptr(new Sound); - mSoundMap["menuBack"] = std::shared_ptr(new Sound); - mSoundMap["menuOpen"] = std::shared_ptr(new Sound); - - //register all sound with the audiomanager - AudioManager::getInstance()->registerSound(mSoundMap["menuScroll"]); - AudioManager::getInstance()->registerSound(mSoundMap["menuSelect"]); - AudioManager::getInstance()->registerSound(mSoundMap["menuBack"]); - AudioManager::getInstance()->registerSound(mSoundMap["menuOpen"]); - - setDefaults(); -} - -ThemeComponent::~ThemeComponent() -{ - deleteComponents(); -} - -void ThemeComponent::setDefaults() -{ - mColorMap["primary"] = 0x0000FFFF; - mColorMap["secondary"] = 0x00FF00FF; - mColorMap["selector"] = 0x000000FF; - mColorMap["selected"] = 0x00000000; - mColorMap["description"] = 0x0000FFFF; - mColorMap["fastSelect"] = 0xFF0000FF; - - mBoolMap["hideHeader"] = false; - mBoolMap["hideDividers"] = false; - mBoolMap["listCentered"] = false; - - mFloatMap["listOffsetX"] = 0.5; - mFloatMap["listTextOffsetX"] = 0.005f; - mFloatMap["gameImageOriginX"] = 0.5; - mFloatMap["gameImageOriginY"] = 0; - mFloatMap["gameImageOffsetX"] = mFloatMap["listOffsetX"] / 2; - mFloatMap["gameImageOffsetY"] = (float)FONT_SIZE_LARGE / (float)Renderer::getScreenHeight(); - mFloatMap["gameImageWidth"] = mFloatMap["listOffsetX"]; - mFloatMap["gameImageHeight"] = 0; - - mSoundMap["menuScroll"]->loadFile(""); - mSoundMap["menuSelect"]->loadFile(""); - mSoundMap["menuBack"]->loadFile(""); - mSoundMap["menuOpen"]->loadFile(""); - - mStringMap["imageNotFoundPath"] = ""; - - mBoxData.backgroundPath = ""; - mBoxData.backgroundTiled = false; - mBoxData.horizontalPath = ""; - mBoxData.horizontalTiled = false; - mBoxData.verticalPath = ""; - mBoxData.verticalTiled = false; - mBoxData.cornerPath = ""; - - mListFont.reset(); - mDescFont.reset(); - mFastSelectFont.reset(); -} - -void ThemeComponent::deleteComponents() -{ - for(unsigned int i = 0; i < getChildCount(); i++) - { - delete getChild(i); - } - - clearChildren(); - - setDefaults(); -} - - -void ThemeComponent::readXML(std::string path, bool detailed) -{ - if(mPath == path) - return; - - setDefaults(); - deleteComponents(); - - mPath = path; - - if(path.empty()) - return; - - LOG(LogInfo) << "Loading theme \"" << path << "\"..."; - - pugi::xml_document doc; - pugi::xml_parse_result result = doc.load_file(path.c_str()); - - if(!result) - { - LOG(LogError) << "Error parsing theme \"" << path << "\"!\n" << " " << result.description(); - return; - } - - pugi::xml_node root; - - if(!detailed) - { - //if we're using the basic view, check if there's a basic version of the theme - root = doc.child("basicTheme"); - } - - if(!root) - { - root = doc.child("theme"); - } - - if(!root) - { - LOG(LogError) << "No theme tag found in theme \"" << path << "\"!"; - return; - } - - //load non-component theme stuff - mColorMap["primary"] = resolveColor(root.child("listPrimaryColor").text().get(), mColorMap["primary"]); - mColorMap["secondary"] = resolveColor(root.child("listSecondaryColor").text().get(), mColorMap["secondary"]); - mColorMap["selector"] = resolveColor(root.child("listSelectorColor").text().get(), mColorMap["selector"]); - mColorMap["selected"] = resolveColor(root.child("listSelectedColor").text().get(), mColorMap["selected"]); - mColorMap["description"] = resolveColor(root.child("descColor").text().get(), mColorMap["description"]); - mColorMap["fastSelect"] = resolveColor(root.child("fastSelectColor").text().get(), mColorMap["fastSelect"]); - - mBoolMap["hideHeader"] = root.child("hideHeader") != 0; - mBoolMap["hideDividers"] = root.child("hideDividers") != 0; - - //GuiBox theming data - mBoxData.backgroundPath = expandPath(root.child("boxBackground").text().get()); - mBoxData.backgroundTiled = root.child("boxBackgroundTiled") != 0; - mBoxData.horizontalPath = expandPath(root.child("boxHorizontal").text().get()); - mBoxData.horizontalTiled = root.child("boxHorizontalTiled") != 0; - mBoxData.verticalPath = expandPath(root.child("boxVertical").text().get()); - mBoxData.verticalTiled = root.child("boxVerticalTiled") != 0; - mBoxData.cornerPath = expandPath(root.child("boxCorner").text().get()); - - //list stuff - mBoolMap["listCentered"] = !root.child("listLeftAlign"); - mFloatMap["listOffsetX"] = strToFloat(root.child("listOffsetX").text().get(), mFloatMap["listOffsetX"]); - mFloatMap["listTextOffsetX"] = strToFloat(root.child("listTextOffsetX").text().get(), mFloatMap["listTextOffsetX"]); - - //game image stuff - std::string artPos = root.child("gameImagePos").text().get(); - std::string artDim = root.child("gameImageDim").text().get(); - std::string artOrigin = root.child("gameImageOrigin").text().get(); - - std::string artPosX, artPosY, artWidth, artHeight, artOriginX, artOriginY; - splitString(artPos, ' ', &artPosX, &artPosY); - splitString(artDim, ' ', &artWidth, &artHeight); - splitString(artOrigin, ' ', &artOriginX, &artOriginY); - - mFloatMap["gameImageOffsetX"] = resolveExp(artPosX, mFloatMap["gameImageOffsetX"]); - mFloatMap["gameImageOffsetY"] = resolveExp(artPosY, mFloatMap["gameImageOffsetY"]); - mFloatMap["gameImageWidth"] = resolveExp(artWidth, mFloatMap["gameImageWidth"]); - mFloatMap["gameImageHeight"] = resolveExp(artHeight, mFloatMap["gameImageHeight"]); - mFloatMap["gameImageOriginX"] = resolveExp(artOriginX, mFloatMap["gameImageOriginX"]); - mFloatMap["gameImageOriginY"] = resolveExp(artOriginY, mFloatMap["gameImageOriginY"]); - - mStringMap["imageNotFoundPath"] = expandPath(root.child("gameImageNotFound").text().get()); - - //sounds - mSoundMap["menuScroll"]->loadFile(expandPath(root.child("menuScrollSound").text().get())); - mSoundMap["menuSelect"]->loadFile(expandPath(root.child("menuSelectSound").text().get())); - mSoundMap["menuBack"]->loadFile(expandPath(root.child("menuBackSound").text().get())); - mSoundMap["menuOpen"]->loadFile(expandPath(root.child("menuOpenSound").text().get())); - - //fonts - mListFont = resolveFont(root.child("listFont"), Font::getDefaultPath(), FONT_SIZE_MEDIUM); - mDescFont = resolveFont(root.child("descriptionFont"), Font::getDefaultPath(), FONT_SIZE_SMALL); - mFastSelectFont = resolveFont(root.child("fastSelectFont"), Font::getDefaultPath(), FONT_SIZE_LARGE); - - //actually read the components - createComponentChildren(root, this); - - LOG(LogInfo) << "Theme loading complete."; -} - -//recursively creates components -void ThemeComponent::createComponentChildren(pugi::xml_node node, GuiComponent* parent) -{ - for(pugi::xml_node data = node.child("component"); data; data = data.next_sibling("component")) - { - GuiComponent* nextComp = createElement(data, parent); - - if(nextComp) - createComponentChildren(data, nextComp); - } -} - -//takes an XML element definition and creates an object from it -GuiComponent* ThemeComponent::createElement(pugi::xml_node data, GuiComponent* parent) -{ - std::string type = data.child("type").text().get(); - - if(type == "image") - { - std::string path = expandPath(data.child("path").text().get()); - - if(!boost::filesystem::exists(path)) - { - LOG(LogError) << "Error - theme image \"" << path << "\" does not exist."; - return NULL; - } - - std::string pos = data.child("pos").text().get(); - std::string dim = data.child("dim").text().get(); - std::string origin = data.child("origin").text().get(); - - bool tiled = data.child("tiled") != 0; - - //split position and dimension information - std::string posX, posY; - splitString(pos, ' ', &posX, &posY); - - std::string dimW, dimH; - splitString(dim, ' ', &dimW, &dimH); - - std::string originX, originY; - splitString(origin, ' ', &originX, &originY); - - //resolve to pixels from percentages/variables - float x = resolveExp(posX) * Renderer::getScreenWidth(); - float y = resolveExp(posY) * Renderer::getScreenHeight(); - float w = resolveExp(dimW) * Renderer::getScreenWidth(); - float h = resolveExp(dimH) * Renderer::getScreenHeight(); - - float ox = strToFloat(originX); - float oy = strToFloat(originY); - - ImageComponent* comp = new ImageComponent(mWindow, x, y, "", w, h, true); - comp->setOrigin(ox, oy); - comp->setTiling(tiled); - comp->setImage(path); - - addChild(comp); - return comp; - } - - - LOG(LogError) << "Theme component type \"" << type << "\" unknown!"; - return NULL; -} - -//expands a file path (./ becomes the directory of this theme file, ~/ becomes $HOME/) -std::string ThemeComponent::expandPath(std::string path) -{ - if(path.empty()) - return ""; - - if(path[0] == '~') - path = getHomePath() + path.substr(1, path.length() - 1); - else if(path[0] == '.') - path = boost::filesystem::path(mPath).parent_path().string() + path.substr(1, path.length() - 1); - - return path; -} - -//takes a string containing a mathematical expression (possibly including variables) and resolves it to a float value -float ThemeComponent::resolveExp(std::string str, float defaultVal) -{ - if(str.empty()) - return defaultVal; - - MathExp exp; - exp.setExpression(str); - - //set variables - exp.setVariable("headerHeight", (float)(FONT_SIZE_LARGE / Renderer::getScreenHeight())); - exp.setVariable("infoWidth", mFloatMap["listOffsetX"]); - - return exp.eval(); -} - -//takes a string of hex and resolves it to an integer -unsigned int ThemeComponent::resolveColor(std::string str, unsigned int defaultColor) -{ - if(str.empty()) - return defaultColor; - - if(str.length() != 6 && str.length() != 8) - { - LOG(LogError) << "Color \"" << str << "\" is not a valid hex color! Must be 6 or 8 characters."; - return defaultColor; - } - - //if there's no alpha specified, assume FF - if(str.length() == 6) - str += "FF"; - - unsigned int ret; - std::stringstream ss; - ss << std::hex << str; - ss >> ret; - - return ret; -} - -//splits a string in two at the first instance of the delimiter -void ThemeComponent::splitString(std::string str, char delim, std::string* before, std::string* after) -{ - if(str.empty()) - return; - - size_t split = str.find(delim); - if(split != std::string::npos) - { - *before = str.substr(0, split); - *after = str.substr(split + 1, str.length() - split - 1); - }else{ - LOG(LogError) << "Tried to splt string \"" << str << "\" with delimiter '" << delim << "', but delimiter was not found!"; - } -} - -//converts a string to a float -float ThemeComponent::strToFloat(std::string str, float defaultVal) -{ - if(str.empty()) - return defaultVal; - - float ret; - std::stringstream ss; - ss << str; - ss >> ret; - return ret; -} - -std::shared_ptr ThemeComponent::resolveFont(pugi::xml_node node, std::string defaultPath, unsigned int defaultSize) -{ - if(!node) - return NULL; - - std::string path = expandPath(node.child("path").text().get()); - unsigned int size = (unsigned int)(strToFloat(node.child("size").text().get()) * Renderer::getScreenHeight()); - - if(!boost::filesystem::exists(path)) - { - path = defaultPath; - } - - if(size == 0) - { - size = defaultSize; - } - - return Font::get(*mWindow->getResourceManager(), path, size); -} diff --git a/src/components/ThemeComponent.h b/src/components/ThemeComponent.h deleted file mode 100644 index e5e9c8ab6..000000000 --- a/src/components/ThemeComponent.h +++ /dev/null @@ -1,62 +0,0 @@ -#ifndef _THEMECOMPONENT_H_ -#define _THEMECOMPONENT_H_ - -#include - -#include "../GuiComponent.h" -#include "../pugiXML/pugixml.hpp" -#include "GuiBox.h" -#include "../AudioManager.h" -#include "../Font.h" - -//This class loads an XML-defined list of GuiComponents. -class ThemeComponent : public GuiComponent -{ -public: - ThemeComponent(Window* window); - virtual ~ThemeComponent(); - - void readXML(std::string path, bool detailed); - - GuiBoxData getBoxData(); - - unsigned int getColor(std::string name); - bool getBool(std::string name); - float getFloat(std::string name); - std::shared_ptr & getSound(std::string name); - std::string getString(std::string name); - - std::shared_ptr getListFont(); - std::shared_ptr getDescriptionFont(); - std::shared_ptr getFastSelectFont(); - -private: - void setDefaults(); - void deleteComponents(); - void createComponentChildren(pugi::xml_node node, GuiComponent* parent); - GuiComponent* createElement(pugi::xml_node data, GuiComponent* parent); - - //utility functions - std::string expandPath(std::string path); - float resolveExp(std::string str, float defaultVal = 0.0); - unsigned int resolveColor(std::string str, unsigned int defaultColor = 0x000000FF); - void splitString(std::string str, char delim, std::string* before, std::string* after); - float strToFloat(std::string str, float defaultVal = 0.0f); - std::shared_ptr resolveFont(pugi::xml_node node, std::string defaultPath, unsigned int defaultSize); - - std::string mPath; - - std::map mColorMap; - std::map mBoolMap; - std::map mFloatMap; - std::map> mSoundMap; - std::map mStringMap; - - GuiBoxData mBoxData; - - std::shared_ptr mListFont; - std::shared_ptr mDescFont; - std::shared_ptr mFastSelectFont; -}; - -#endif diff --git a/src/main.cpp b/src/main.cpp deleted file mode 100644 index 67a9779c4..000000000 --- a/src/main.cpp +++ /dev/null @@ -1,252 +0,0 @@ -//EmulationStation, a graphical front-end for ROM browsing. Created by Alec "Aloshi" Lofquist. -//http://www.aloshi.com - -#include -#include -#include -#include "Renderer.h" -#include "components/GuiGameList.h" -#include "SystemData.h" -#include -#include "components/GuiDetectDevice.h" -#include "AudioManager.h" -#include "platform.h" -#include "Log.h" -#include "Window.h" -#include "EmulationStation.h" -#include "Settings.h" - -#ifdef _RPI_ - #include -#endif - -#include - -namespace fs = boost::filesystem; - -bool parseArgs(int argc, char* argv[], unsigned int* width, unsigned int* height) -{ - if(argc > 1) - { - for(int i = 1; i < argc; i++) - { - if(strcmp(argv[i], "-w") == 0) - { - *width = atoi(argv[i + 1]); - i++; //skip the argument value - }else if(strcmp(argv[i], "-h") == 0) - { - *height = atoi(argv[i + 1]); - i++; //skip the argument value - }else if(strcmp(argv[i], "--gamelist-only") == 0) - { - Settings::getInstance()->setBool("PARSEGAMELISTONLY", true); - }else if(strcmp(argv[i], "--ignore-gamelist") == 0) - { - Settings::getInstance()->setBool("IGNOREGAMELIST", true); - }else if(strcmp(argv[i], "--draw-framerate") == 0) - { - Settings::getInstance()->setBool("DRAWFRAMERATE", true); - }else if(strcmp(argv[i], "--no-exit") == 0) - { - Settings::getInstance()->setBool("DONTSHOWEXIT", true); - }else if(strcmp(argv[i], "--debug") == 0) - { - Settings::getInstance()->setBool("DEBUG", true); - Log::setReportingLevel(LogDebug); - }else if(strcmp(argv[i], "--dimtime") == 0) - { - Settings::getInstance()->setInt("DIMTIME", atoi(argv[i + 1]) * 1000); - i++; //skip the argument value - }else if(strcmp(argv[i], "--windowed") == 0) - { - Settings::getInstance()->setBool("WINDOWED", true); - }else if(strcmp(argv[i], "--help") == 0) - { - std::cout << "EmulationStation, a graphical front-end for ROM browsing.\n"; - std::cout << "Command line arguments:\n"; - std::cout << "-w [width in pixels] set screen width\n"; - std::cout << "-h [height in pixels] set screen height\n"; - std::cout << "--gamelist-only skip automatic game detection, only read from gamelist.xml\n"; - std::cout << "--ignore-gamelist ignore the gamelist (useful for troubleshooting)\n"; - std::cout << "--draw-framerate display the framerate\n"; - std::cout << "--no-exit don't show the exit option in the menu\n"; - std::cout << "--debug even more logging\n"; - std::cout << "--dimtime [seconds] time to wait before dimming the screen (default 30, use 0 for never)\n"; - - #ifdef USE_OPENGL_DESKTOP - std::cout << "--windowed not fullscreen\n"; - #endif - - std::cout << "--help summon a sentient, angry tuba\n\n"; - std::cout << "More information available in README.md.\n"; - return false; //exit after printing help - } - } - } - - return true; -} - -bool verifyHomeFolderExists() -{ - //make sure the config directory exists - std::string home = getHomePath(); - std::string configDir = home + "/.emulationstation"; - if(!fs::exists(configDir)) - { - std::cout << "Creating config directory \"" << configDir << "\"\n"; - fs::create_directory(configDir); - if(!fs::exists(configDir)) - { - std::cerr << "Config directory could not be created!\n"; - return false; - } - } - - return true; -} - -//called on exit, assuming we get far enough to have the log initialized -void onExit() -{ - Log::close(); - - #ifdef _RPI_ - bcm_host_deinit(); - #endif -} - -int main(int argc, char* argv[]) -{ - unsigned int width = 0; - unsigned int height = 0; - - if(!parseArgs(argc, argv, &width, &height)) - return 0; - - //if ~/.emulationstation doesn't exist and cannot be created, bail - if(!verifyHomeFolderExists()) - return 1; - - #ifdef _RPI_ - bcm_host_init(); - #endif - - //start the logger - Log::open(); - LOG(LogInfo) << "EmulationStation - " << PROGRAM_VERSION_STRING; - - //always close the log and deinit the BCM library on exit - atexit(&onExit); - - Window window; - if(!window.init(width, height)) - { - LOG(LogError) << "Window failed to initialize!"; - return 1; - } - - //dont generate joystick events while we're loading (hopefully fixes "automatically started emulator" bug) - SDL_JoystickEventState(SDL_DISABLE); - - //try loading the system config file - if(!SystemData::loadConfig(SystemData::getConfigPath(), true)) - { - LOG(LogError) << "Error parsing system config file!"; - return 1; - } - - //make sure it wasn't empty - if(SystemData::sSystemVector.size() == 0) - { - LOG(LogError) << "No systems found! Does at least one system have a game present? (check that extensions match!)"; - return 1; - } - - //choose which GUI to open depending on if an input configuration already exists - if(fs::exists(InputManager::getConfigPath())) - { - GuiGameList::create(&window); - }else{ - window.pushGui(new GuiDetectDevice(&window)); - } - - //generate joystick events since we're done loading - SDL_JoystickEventState(SDL_ENABLE); - - bool sleeping = false; - unsigned int timeSinceLastEvent = 0; - int lastTime = 0; - bool running = true; - - while(running) - { - SDL_Event event; - while(SDL_PollEvent(&event)) - { - switch(event.type) - { - case SDL_JOYHATMOTION: - case SDL_JOYBUTTONDOWN: - case SDL_JOYBUTTONUP: - case SDL_KEYDOWN: - case SDL_KEYUP: - case SDL_JOYAXISMOTION: - if(window.getInputManager()->parseEvent(event)) - { - sleeping = false; - timeSinceLastEvent = 0; - } - break; - case SDL_USEREVENT: - //try to poll input devices, but do not necessarily wake up... - window.getInputManager()->parseEvent(event); - break; - case SDL_QUIT: - running = false; - break; - } - } - - if(sleeping) - { - lastTime = SDL_GetTicks(); - SDL_Delay(1); //this doesn't need to be accurate - continue; - } - - int curTime = SDL_GetTicks(); - int deltaTime = curTime - lastTime; - lastTime = curTime; - - //cap deltaTime at 1000 - if(deltaTime > 1000 || deltaTime < 0) - deltaTime = 1000; - - window.update(deltaTime); - Renderer::swapBuffers(); //swap here so we can read the last screen state during updates (see ImageComponent::copyScreen()) - window.render(); - - //sleep if we're past our threshold - //sleeping entails setting a flag to start skipping frames - //and initially drawing a black semi-transparent rect to dim the screen - timeSinceLastEvent += deltaTime; - if(timeSinceLastEvent >= (unsigned int)Settings::getInstance()->getInt("DIMTIME") && Settings::getInstance()->getInt("DIMTIME") != 0) - { - sleeping = true; - timeSinceLastEvent = 0; - Renderer::drawRect(0, 0, Renderer::getScreenWidth(), Renderer::getScreenHeight(), 0x000000A0); - Renderer::swapBuffers(); - } - - Log::flush(); - } - - Renderer::deinit(); - SystemData::deleteSystems(); - - std::cout << "EmulationStation cleanly shutting down...\n"; - - return 0; -} diff --git a/src/resources/TextureResource.cpp b/src/resources/TextureResource.cpp deleted file mode 100644 index e46992cb2..000000000 --- a/src/resources/TextureResource.cpp +++ /dev/null @@ -1,127 +0,0 @@ -#include "TextureResource.h" -#include "../Log.h" -#include "../platform.h" -#include GLHEADER -#include "../ImageIO.h" -#include "../Renderer.h" - -std::map< std::string, std::weak_ptr > TextureResource::sTextureMap; - -TextureResource::TextureResource(const ResourceManager& rm, const std::string& path) : mTextureID(0), mPath(path), mTextureSize(Eigen::Vector2i::Zero()) -{ - reload(rm); -} - -TextureResource::~TextureResource() -{ - deinit(); -} - -void TextureResource::unload(const ResourceManager& rm) -{ - deinit(); -} - -void TextureResource::reload(const ResourceManager& rm) -{ - if(!mPath.empty()) - initFromResource(rm.getFileData(mPath)); -} - -void TextureResource::initFromResource(const ResourceData data) -{ - //make sure we aren't going to leak an old texture - deinit(); - - size_t width, height; - std::vector imageRGBA = ImageIO::loadFromMemoryRGBA32(const_cast(data.ptr.get()), data.length, width, height); - - if(imageRGBA.size() == 0) - { - LOG(LogError) << "Could not initialize texture (invalid resource data)!"; - return; - } - - //now for the openGL texture stuff - glGenTextures(1, &mTextureID); - glBindTexture(GL_TEXTURE_2D, mTextureID); - - glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, imageRGBA.data()); - - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); - - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); - - mTextureSize << width, height; -} - -void TextureResource::initFromScreen() -{ - deinit(); - - int width = Renderer::getScreenWidth(); - int height = Renderer::getScreenHeight(); - - glGenTextures(1, &mTextureID); - glBindTexture(GL_TEXTURE_2D, mTextureID); - - glCopyTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 0, 0, width, height, 0); - - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); - - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); - - mTextureSize[0] = height; - mTextureSize[1] = height; -} - -void TextureResource::deinit() -{ - if(mTextureID != 0) - { - glDeleteTextures(1, &mTextureID); - mTextureID = 0; - } -} - -Eigen::Vector2i TextureResource::getSize() const -{ - return mTextureSize; -} - -void TextureResource::bind() const -{ - if(mTextureID != 0) - glBindTexture(GL_TEXTURE_2D, mTextureID); - else - LOG(LogError) << "Tried to bind uninitialized texture!"; -} - - -std::shared_ptr TextureResource::get(ResourceManager& rm, const std::string& path) -{ - if(path.empty()) - { - std::shared_ptr tex(new TextureResource(rm, "")); - rm.addReloadable(tex); //make sure we're deinitialized even though we do nothing on reinitialization - return tex; - } - - auto foundTexture = sTextureMap.find(path); - if(foundTexture != sTextureMap.end()) - { - if(!foundTexture->second.expired()) - { - return foundTexture->second.lock(); - } - } - - std::shared_ptr tex = std::shared_ptr(new TextureResource(rm, path)); - sTextureMap[path] = std::weak_ptr(tex); - rm.addReloadable(tex); - return tex; -} diff --git a/src/resources/TextureResource.h b/src/resources/TextureResource.h deleted file mode 100644 index fb72eeb82..000000000 --- a/src/resources/TextureResource.h +++ /dev/null @@ -1,37 +0,0 @@ -#pragma once - -#include "ResourceManager.h" - -#include -#include -#include "../platform.h" -#include GLHEADER - -class TextureResource : public IReloadable -{ -public: - static std::shared_ptr get(ResourceManager& rm, const std::string& path); - - virtual ~TextureResource(); - - void unload(const ResourceManager& rm) override; - void reload(const ResourceManager& rm) override; - - Eigen::Vector2i getSize() const; - void bind() const; - - void initFromScreen(); - -private: - TextureResource(const ResourceManager& rm, const std::string& path); - - void initFromPath(); - void initFromResource(const ResourceData data); - void deinit(); - - Eigen::Vector2i mTextureSize; - GLuint mTextureID; - const std::string mPath; - - static std::map< std::string, std::weak_ptr > sTextureMap; -};