From 01c4c01563c76e9f5a713f8ddf302ae097fb6740 Mon Sep 17 00:00:00 2001 From: WkdXeqtr <200361342+WkdXeqtr@users.noreply.github.com> Date: Sun, 24 May 2026 18:50:12 +0400 Subject: [PATCH] feat: add i18n system with 22 languages MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Implement Locale class (i18n.h + locale.cc): auto-detect system language, runtime switching, English fallback - Add locale JSON files for all 22 languages matching Millennium - Embed translations into binary at CMake configure time via generated/locale_data.h (no runtime file I/O) - Replace all hardcoded UI strings with Locale::Get() across all routes - Add language selector dropdown to the title bar (top-right) - Font atlas adapts to the active language: · Geist + CJK name subsets (~21 KB embedded) always merged in · System CJK font loaded as primary when a CJK locale is active · Vietnamese: system Arial/LiberationSans/HelveticaNeue replaces Geist as primary font entirely (no merging); dropdown keeps Geist appearance via a dedicated font slot (Fonts[3]) · VietName_Standalone (~18 KB embedded) for the Vietnamese item in the dropdown - Rebuild font atlas on language switch - Platform support: Windows (WinAPI lang detect + system font paths), Linux (fc-match + LiberationSans fallback), macOS (fc-match + PingFang/Hiragino/AppleSDGothicNeo/HelveticaNeue fallbacks) - Add tools/generate_font_headers.py to regenerate embedded subsets --- CMakeLists.txt | 35 + src/components/bottombar.cc | 9 +- src/components/titlebar.cc | 83 +- src/include/cjk_names.h | 1327 ++++++++++++++++++++++++++++++++ src/include/components.h | 1 + src/include/i18n.h | 35 + src/include/renderer.h | 1 + src/include/viet_name.h | 1185 ++++++++++++++++++++++++++++ src/locales/brazilian.json | 59 ++ src/locales/bulgarian.json | 59 ++ src/locales/danish.json | 59 ++ src/locales/dutch.json | 59 ++ src/locales/english.json | 59 ++ src/locales/french.json | 59 ++ src/locales/german.json | 59 ++ src/locales/hungarian.json | 59 ++ src/locales/indonesian.json | 59 ++ src/locales/italian.json | 59 ++ src/locales/japanese.json | 59 ++ src/locales/koreana.json | 59 ++ src/locales/latam.json | 59 ++ src/locales/polish.json | 59 ++ src/locales/russian.json | 59 ++ src/locales/schinese.json | 59 ++ src/locales/spanish.json | 59 ++ src/locales/swedish.json | 59 ++ src/locales/tchinese.json | 59 ++ src/locales/turkish.json | 59 ++ src/locales/ukrainian.json | 59 ++ src/locales/vietnamese.json | 59 ++ src/main.cc | 2 + src/routes/home.cc | 23 +- src/routes/install_prompt.cc | 23 +- src/routes/installer.cc | 21 +- src/routes/uninstall_select.cc | 30 +- src/util/locale.cc | 267 +++++++ src/window/renderer.cc | 224 +++++- tools/.gitignore | 1 + tools/generate_font_headers.py | 195 +++++ 39 files changed, 4712 insertions(+), 48 deletions(-) create mode 100644 src/include/cjk_names.h create mode 100644 src/include/i18n.h create mode 100644 src/include/viet_name.h create mode 100644 src/locales/brazilian.json create mode 100644 src/locales/bulgarian.json create mode 100644 src/locales/danish.json create mode 100644 src/locales/dutch.json create mode 100644 src/locales/english.json create mode 100644 src/locales/french.json create mode 100644 src/locales/german.json create mode 100644 src/locales/hungarian.json create mode 100644 src/locales/indonesian.json create mode 100644 src/locales/italian.json create mode 100644 src/locales/japanese.json create mode 100644 src/locales/koreana.json create mode 100644 src/locales/latam.json create mode 100644 src/locales/polish.json create mode 100644 src/locales/russian.json create mode 100644 src/locales/schinese.json create mode 100644 src/locales/spanish.json create mode 100644 src/locales/swedish.json create mode 100644 src/locales/tchinese.json create mode 100644 src/locales/turkish.json create mode 100644 src/locales/ukrainian.json create mode 100644 src/locales/vietnamese.json create mode 100644 src/util/locale.cc create mode 100644 tools/.gitignore create mode 100644 tools/generate_font_headers.py diff --git a/CMakeLists.txt b/CMakeLists.txt index 2097ca5..aa331ad 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -39,6 +39,38 @@ endif() include(${CMAKE_CURRENT_SOURCE_DIR}/resources/cmake/bootstrap_deps.cmake) +# ── Embed locale JSON files as C++ raw string literals ──────────────────────── +# Each src/locales/.json is read at configure time and appended into +# build/generated/locale_data.h as inline const char* kLocaleData_. +# Re-run cmake automatically when any JSON changes (CMAKE_CONFIGURE_DEPENDS). + +set(_LOCALE_LANGS + english russian ukrainian german french spanish italian polish turkish + swedish dutch brazilian hungarian indonesian vietnamese + schinese tchinese japanese koreana latam + bulgarian danish +) +set(_LOCALE_HEADER "${CMAKE_BINARY_DIR}/generated/locale_data.h") + +file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/generated") + +# Use file(WRITE/APPEND) directly — avoids CMake list/semicolon expansion bugs +# that occur when building large strings with string(APPEND) + file(WRITE). +file(WRITE "${_LOCALE_HEADER}" "// Auto-generated by CMake — do not edit. Re-run cmake to refresh.\n#pragma once\n\n") + +foreach(_LANG ${_LOCALE_LANGS}) + set(_JSON_PATH "${CMAKE_SOURCE_DIR}/src/locales/${_LANG}.json") + # Track for automatic re-configure when any JSON file changes + set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS "${_JSON_PATH}") + file(READ "${_JSON_PATH}" _JSON_CONTENT) + # Write open, content, close as separate appends so no CMake string + # processing can swallow the semicolon in )__LD__"; + file(APPEND "${_LOCALE_HEADER}" "inline const char* kLocaleData_${_LANG} = R\"__LD__(\n") + file(APPEND "${_LOCALE_HEADER}" "${_JSON_CONTENT}") + file(APPEND "${_LOCALE_HEADER}" "\n)__LD__\";\n\n") +endforeach() +# ────────────────────────────────────────────────────────────────────────────── + add_library(imgui_lib STATIC ${imgui_SOURCE_DIR}/imgui.cpp ${imgui_SOURCE_DIR}/imgui_draw.cpp @@ -62,6 +94,7 @@ set(SOURCES src/window/wndproc.cc src/window/renderer.cc src/util/updater.cc + src/util/locale.cc src/routes/router.cc src/routes/home.cc src/routes/install_prompt.cc @@ -98,6 +131,7 @@ include_directories(SYSTEM ${zlib_SOURCE_DIR} ${zlib_BINARY_DIR}) target_link_libraries(${PROJECT_NAME} PRIVATE imgui_lib) target_link_options(${PROJECT_NAME} PRIVATE /FORCE:MULTIPLE) +target_include_directories(${PROJECT_NAME} PRIVATE "${CMAKE_BINARY_DIR}/generated") if(UNIX AND NOT APPLE) find_package(PkgConfig REQUIRED) @@ -137,3 +171,4 @@ elseif(WIN32) bcrypt ) endif() + diff --git a/src/components/bottombar.cc b/src/components/bottombar.cc index 6d8e36b..3f69c30 100644 --- a/src/components/bottombar.cc +++ b/src/components/bottombar.cc @@ -33,6 +33,7 @@ #include #include #include +#include #ifdef _WIN32 #endif #include @@ -66,10 +67,10 @@ const void RenderBottomNavBar(const char* identifier, float xPos, std::function< const float cursorPosSave = GetCursorPosX(); SetCursorPosY(GetCursorPosY() - ScaleX(12)); - TextColored(ImVec4(0.322f, 0.325f, 0.341f, 1.0f), "Steam Homebrew & Millennium are not affiliated with"); + TextColored(ImVec4(0.322f, 0.325f, 0.341f, 1.0f), "%s", Locale::Get("installerDisclaimer1")); SetCursorPos({ cursorPosSave, GetCursorPosY() - ScaleY(20) }); - TextColored(ImVec4(0.322f, 0.325f, 0.341f, 1.0f), "Steam®, Valve, or any of their partners."); + TextColored(ImVec4(0.322f, 0.325f, 0.341f, 1.0f), "%s", Locale::Get("installerDisclaimer2")); SameLine(0); SetCursorPosY(GetCursorPosY() - ScaleY(25)); @@ -95,7 +96,7 @@ const void RenderBottomNavBar(const char* identifier, float xPos, std::function< PushStyleVar(ImGuiStyleVar_WindowRounding, 6); PushStyleVar(ImGuiStyleVar_Alpha, discordIconHoverTransparency); PushStyleColor(ImGuiCol_PopupBg, ImVec4(0.098f, 0.102f, 0.11f, 1.0f)); - SetTooltip("Join Discord Server"); + SetTooltip("%s", Locale::Get("tooltipDiscord")); if (IsItemClicked()) { OpenUrl(discordInviteLink); @@ -126,7 +127,7 @@ const void RenderBottomNavBar(const char* identifier, float xPos, std::function< PushStyleVar(ImGuiStyleVar_WindowRounding, 6); PushStyleVar(ImGuiStyleVar_Alpha, githubIconHoverTransparency); PushStyleColor(ImGuiCol_PopupBg, ImVec4(0.098f, 0.102f, 0.11f, 1.0f)); - SetTooltip("View Source Code"); + SetTooltip("%s", Locale::Get("tooltipGithub")); if (IsItemClicked()) { OpenUrl(githubRepositoryUrl); diff --git a/src/components/titlebar.cc b/src/components/titlebar.cc index 2e5fb62..ef8c053 100644 --- a/src/components/titlebar.cc +++ b/src/components/titlebar.cc @@ -33,8 +33,10 @@ #include #include #include +#include #include #include +#include using namespace ImGui; @@ -44,8 +46,7 @@ using namespace ImGui; */ bool RenderTitleBarComponent(std::shared_ptr router) { - ImGuiIO& io = GetIO(); - const std::string strTitleText = std::format("Steam Homebrew", io.Framerate); + const std::string strTitleText = Locale::Get("titlebarTitle"); ImGuiViewport* viewport = GetMainViewport(); PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(ScaleX(15), ScaleY(15))); @@ -88,13 +89,14 @@ bool RenderTitleBarComponent(std::shared_ptr router) Text("%s", strTitleText.c_str()); SameLine(); + ImVec2 closeButtonDimensions = { ceil(ScaleX(70)), ceil(ScaleY(43)) }; + static bool isCloseButtonHovered = false; if (isCloseButtonHovered) { PushStyleColor(ImGuiCol_ChildBg, ImVec4(0.769f, 0.169f, 0.11f, 1.0f)); } - ImVec2 closeButtonDimensions = { ceil(ScaleX(70)), ceil(ScaleY(43)) }; SetCursorPos({ viewport->Size.x - closeButtonDimensions.x, 0 }); PushStyleVar(ImGuiStyleVar_ChildRounding, 0); @@ -122,3 +124,78 @@ bool RenderTitleBarComponent(std::shared_ptr router) return IsItemHovered() || (IsItemHovered(ImGuiHoveredFlags_AllowWhenBlockedByActiveItem) && IsMouseDown(ImGuiMouseButton_Left)); } + +/** + * Render the language selector dropdown in the main window scope (below the + * WndProc drag zone, top-right of the content area). Must be called from + * the root Begin/End block, NOT from inside a BeginChild. + */ +void RenderLanguageSelector(float xPos) +{ + ImGuiViewport* viewport = GetMainViewport(); + + const auto& langs = Locale::GetAvailableLanguages(); + const std::string& currentLangId = Locale::GetCurrentLanguageId(); + + std::string previewValue; + for (const auto& lang : langs) { + if (lang.id == currentLangId) { previewValue = lang.displayName; break; } + } + if (previewValue.empty()) previewValue = currentLangId; + + const float langSelectorWidth = ScaleX(170); + // ScaleY(105): safely below the WndProc drag zone (ScaleY(100)), top-right of content + // Right edge aligned with bottom nav bar button edge (WindowPadding = ScaleX(30)) + SetCursorPos({ xPos + viewport->Size.x - langSelectorWidth - ScaleX(30), ScaleY(105) }); + + PushStyleColor(ImGuiCol_FrameBg, ImVec4(0.13f, 0.14f, 0.15f, 1.0f)); + PushStyleColor(ImGuiCol_FrameBgHovered, ImVec4(0.19f, 0.20f, 0.21f, 1.0f)); + PushStyleColor(ImGuiCol_FrameBgActive, ImVec4(0.16f, 0.17f, 0.18f, 1.0f)); + PushStyleColor(ImGuiCol_PopupBg, ImVec4(0.10f, 0.10f, 0.11f, 1.0f)); + PushStyleColor(ImGuiCol_Header, ImVec4(0.20f, 0.21f, 0.22f, 1.0f)); + PushStyleColor(ImGuiCol_HeaderHovered, ImVec4(0.26f, 0.27f, 0.28f, 1.0f)); + PushStyleColor(ImGuiCol_Border, ImVec4(0.22f, 0.23f, 0.25f, 1.0f)); + PushStyleVar(ImGuiStyleVar_FrameRounding, ScaleX(4)); + PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(ScaleX(8), ScaleY(7))); + PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(ScaleX(8), 0)); + + // Fonts[2] = VietName_Standalone: pushed for the Vietnamese item only. + // Fonts[3] = Geist+CJK+VietPreview: present only when Vietnamese is active; + // pushed around the entire combo so it looks the same as English mode. + ImGuiIO& io = GetIO(); + ImFont* vietItemFont = (io.Fonts->Fonts.Size > 2) ? io.Fonts->Fonts[2] : nullptr; + ImFont* dropdownFont = (io.Fonts->Fonts.Size > 3) ? io.Fonts->Fonts[3] : nullptr; + + if (dropdownFont) PushFont(dropdownFont); + + SetNextItemWidth(langSelectorWidth); + if (BeginCombo("##LangSelector", previewValue.c_str())) { + for (const auto& lang : langs) { + bool isSelected = (lang.id == currentLangId); + bool useVietFont = (lang.id == "vietnamese") && (vietItemFont != nullptr); + if (useVietFont) { + if (dropdownFont) PopFont(); + PushFont(vietItemFont); + } + if (Selectable(lang.displayName.c_str(), isSelected)) { + Locale::SetLanguage(lang.id); + RequestFontRebuild(); + } + if (isSelected) + SetItemDefaultFocus(); + if (useVietFont) { + PopFont(); + if (dropdownFont) PushFont(dropdownFont); + } + } + EndCombo(); + } + + if (dropdownFont) PopFont(); + + if (IsItemHovered()) + SetMouseCursor(ImGuiMouseCursor_Hand); + + PopStyleVar(3); + PopStyleColor(7); +} diff --git a/src/include/cjk_names.h b/src/include/cjk_names.h new file mode 100644 index 0000000..bdfe640 --- /dev/null +++ b/src/include/cjk_names.h @@ -0,0 +1,1327 @@ +// Auto-generated — do not edit. +// Minimal CJK font subsets for language-selector display names. +// Ideograph source: msyh.ttc chars: 简体中文繁體日本語 +// Korean source: malgun.ttf chars: 한국어 +// Regenerate: python tools/generate_font_headers.py +#pragma once + +static const unsigned char CJKNames_Ideographs[] = { + 0x00, 0x01, 0x00, 0x00, 0x00, 0x15, 0x01, 0x00, 0x00, 0x04, 0x00, 0x50, 0x47, 0x44, 0x45, 0x46, + 0x00, 0x10, 0x00, 0x0A, 0x00, 0x00, 0x32, 0x4C, 0x00, 0x00, 0x00, 0x16, 0x47, 0x50, 0x4F, 0x53, + 0x00, 0x19, 0x00, 0x0C, 0x00, 0x00, 0x32, 0x64, 0x00, 0x00, 0x00, 0x10, 0x47, 0x53, 0x55, 0x42, + 0x43, 0x7B, 0x4E, 0x71, 0x00, 0x00, 0x32, 0x74, 0x00, 0x00, 0x00, 0x26, 0x4F, 0x53, 0x2F, 0x32, + 0x94, 0xB9, 0x1B, 0xAF, 0x00, 0x00, 0x17, 0xBC, 0x00, 0x00, 0x00, 0x60, 0x56, 0x44, 0x4D, 0x58, + 0x73, 0xEC, 0x7B, 0x66, 0x00, 0x00, 0x18, 0x1C, 0x00, 0x00, 0x05, 0xE0, 0x63, 0x6D, 0x61, 0x70, + 0xBB, 0x90, 0x34, 0xAE, 0x00, 0x00, 0x1E, 0xD0, 0x00, 0x00, 0x00, 0x74, 0x63, 0x76, 0x74, 0x20, + 0x4C, 0x08, 0x6A, 0xDE, 0x00, 0x00, 0x2C, 0x40, 0x00, 0x00, 0x03, 0xF6, 0x66, 0x70, 0x67, 0x6D, + 0x2C, 0x98, 0xB7, 0x2C, 0x00, 0x00, 0x1F, 0x44, 0x00, 0x00, 0x0A, 0x06, 0x67, 0x61, 0x73, 0x70, + 0x00, 0x1D, 0x00, 0x23, 0x00, 0x00, 0x32, 0x3C, 0x00, 0x00, 0x00, 0x10, 0x67, 0x6C, 0x79, 0x66, + 0x7B, 0xE1, 0x68, 0x7E, 0x00, 0x00, 0x01, 0x5C, 0x00, 0x00, 0x15, 0xB2, 0x68, 0x64, 0x6D, 0x78, + 0x39, 0x38, 0xB2, 0x51, 0x00, 0x00, 0x1D, 0xFC, 0x00, 0x00, 0x00, 0xD4, 0x68, 0x65, 0x61, 0x64, + 0x1A, 0x07, 0x5A, 0xBE, 0x00, 0x00, 0x17, 0x48, 0x00, 0x00, 0x00, 0x36, 0x68, 0x68, 0x65, 0x61, + 0x11, 0x5E, 0x00, 0xEA, 0x00, 0x00, 0x17, 0x98, 0x00, 0x00, 0x00, 0x24, 0x68, 0x6D, 0x74, 0x78, + 0x0F, 0x2C, 0x02, 0x03, 0x00, 0x00, 0x17, 0x80, 0x00, 0x00, 0x00, 0x18, 0x6C, 0x6F, 0x63, 0x61, + 0x18, 0xB5, 0x12, 0x3E, 0x00, 0x00, 0x17, 0x30, 0x00, 0x00, 0x00, 0x16, 0x6D, 0x61, 0x78, 0x70, + 0x09, 0x5A, 0x0D, 0x70, 0x00, 0x00, 0x17, 0x10, 0x00, 0x00, 0x00, 0x20, 0x6E, 0x61, 0x6D, 0x65, + 0x2A, 0x20, 0x40, 0xC9, 0x00, 0x00, 0x30, 0x38, 0x00, 0x00, 0x01, 0xE2, 0x70, 0x6F, 0x73, 0x74, + 0xFF, 0x51, 0x76, 0x39, 0x00, 0x00, 0x32, 0x1C, 0x00, 0x00, 0x00, 0x20, 0x70, 0x72, 0x65, 0x70, + 0x44, 0xBD, 0x05, 0xCF, 0x00, 0x00, 0x29, 0x4C, 0x00, 0x00, 0x02, 0xF2, 0x76, 0x68, 0x65, 0x61, + 0x0E, 0xD0, 0x05, 0xF4, 0x00, 0x00, 0x32, 0xB4, 0x00, 0x00, 0x00, 0x24, 0x76, 0x6D, 0x74, 0x78, + 0x08, 0xB2, 0x02, 0x23, 0x00, 0x00, 0x32, 0x9C, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, 0xA8, + 0xFE, 0xEB, 0x07, 0x60, 0x06, 0xAB, 0x00, 0x0F, 0x00, 0x13, 0x00, 0x17, 0x00, 0xBF, 0xB1, 0x13, + 0x06, 0xB8, 0x01, 0x63, 0xB3, 0x07, 0x12, 0x04, 0x0A, 0xB8, 0x01, 0x64, 0x40, 0x0B, 0x0B, 0x15, + 0x01, 0x0B, 0x07, 0x0B, 0x07, 0x0B, 0x19, 0x14, 0x0E, 0xB8, 0x01, 0x63, 0x40, 0x0B, 0x40, 0x0F, + 0x0F, 0x0F, 0x09, 0x0D, 0x07, 0x07, 0x0D, 0x14, 0x0D, 0xB8, 0x01, 0x3C, 0x40, 0x3C, 0x59, 0x12, + 0x0B, 0x14, 0x01, 0x0B, 0x14, 0xAB, 0x0B, 0x01, 0xDF, 0x0B, 0x01, 0x02, 0x5F, 0x0B, 0x6F, 0x0B, + 0x7F, 0x0B, 0xCF, 0x0B, 0x04, 0x0B, 0x40, 0x0C, 0x0F, 0x48, 0x0B, 0x11, 0x17, 0xA0, 0x02, 0x01, + 0x70, 0x02, 0x80, 0x02, 0x02, 0x6F, 0x02, 0x01, 0x00, 0x02, 0x20, 0x02, 0x30, 0x02, 0x60, 0x02, + 0x70, 0x02, 0xA0, 0x02, 0xB0, 0x02, 0x07, 0x0E, 0x03, 0x02, 0xB8, 0xFF, 0xC0, 0xB7, 0x1B, 0x22, + 0x48, 0x02, 0x02, 0x17, 0x00, 0x17, 0xB8, 0x01, 0x3C, 0xB5, 0x59, 0x04, 0x3F, 0x00, 0x01, 0x00, + 0x00, 0x2F, 0x5D, 0x32, 0x2B, 0x11, 0x00, 0x33, 0x18, 0x2F, 0x2B, 0x5F, 0x5E, 0x5D, 0x71, 0x71, + 0x72, 0x11, 0x33, 0x2F, 0x2B, 0x5D, 0x5F, 0x5D, 0x72, 0x2F, 0x5E, 0x5D, 0x33, 0x2B, 0x11, 0x00, + 0x33, 0x18, 0x2F, 0x11, 0x33, 0x33, 0x2F, 0x01, 0x2F, 0x1A, 0xED, 0x32, 0x12, 0x39, 0x39, 0x2F, + 0x2F, 0x11, 0x33, 0x33, 0x10, 0xED, 0x32, 0x32, 0x10, 0xED, 0x33, 0x30, 0x31, 0x13, 0x21, 0x11, + 0x33, 0x11, 0x21, 0x11, 0x23, 0x35, 0x21, 0x11, 0x23, 0x11, 0x21, 0x15, 0x23, 0x01, 0x21, 0x11, + 0x29, 0x02, 0x11, 0x21, 0xA8, 0x03, 0x02, 0xAC, 0x03, 0x0A, 0xA4, 0xFD, 0x9A, 0xAC, 0xFD, 0xA2, + 0xA4, 0x06, 0x14, 0xFD, 0x9A, 0x02, 0x66, 0xFA, 0x90, 0x02, 0x5E, 0xFD, 0xA2, 0x04, 0xF7, 0x01, + 0xB4, 0xFE, 0x4C, 0xFC, 0x70, 0x6C, 0xFD, 0x18, 0x02, 0xE8, 0x6C, 0x02, 0xFC, 0xFE, 0x04, 0x01, + 0xFC, 0x00, 0x00, 0x02, 0x00, 0x12, 0xFE, 0xF9, 0x07, 0xF0, 0x06, 0xA5, 0x00, 0x20, 0x00, 0x2C, + 0x01, 0x40, 0x40, 0x0E, 0x07, 0x0C, 0x07, 0x02, 0x09, 0x0C, 0x0A, 0x12, 0x17, 0x02, 0x00, 0x00, + 0x1E, 0x23, 0xB8, 0x01, 0x60, 0xB4, 0x24, 0x24, 0x27, 0x1E, 0x1F, 0xB8, 0xFF, 0xF0, 0x40, 0x0B, + 0x16, 0x10, 0x05, 0x1C, 0x1F, 0x03, 0x16, 0x0E, 0x19, 0x03, 0x09, 0xB8, 0x01, 0x60, 0x40, 0x0C, + 0x0A, 0x0A, 0x2E, 0x28, 0x17, 0x12, 0x14, 0x14, 0x2B, 0x21, 0x21, 0x27, 0xB8, 0x01, 0x60, 0x40, + 0x1F, 0x40, 0x28, 0x29, 0x26, 0x2B, 0x24, 0x24, 0x23, 0x1A, 0x1A, 0x00, 0x23, 0x01, 0x00, 0x23, + 0x10, 0x23, 0x60, 0x23, 0xA0, 0x23, 0xB0, 0x23, 0xE0, 0x23, 0xF0, 0x23, 0x07, 0x0E, 0x03, 0x23, + 0xB8, 0xFF, 0xC0, 0xB7, 0x21, 0x28, 0x48, 0x23, 0x23, 0x18, 0x2B, 0x21, 0xB8, 0x01, 0x3F, 0x40, + 0x0B, 0x59, 0x2B, 0x2B, 0x12, 0x04, 0x10, 0x1F, 0x03, 0x17, 0x18, 0x17, 0xB8, 0x01, 0x3B, 0xB4, + 0x59, 0x08, 0x0C, 0x0D, 0x0C, 0xB8, 0x01, 0x3B, 0x40, 0x30, 0x59, 0x05, 0x0D, 0x40, 0x0B, 0x0F, + 0x48, 0x0D, 0x0D, 0x14, 0x1C, 0x0F, 0x18, 0x01, 0x0F, 0x30, 0x18, 0x40, 0x18, 0x02, 0x90, 0x18, + 0xE0, 0x18, 0x02, 0x18, 0x28, 0x28, 0x0F, 0x0A, 0x1F, 0x0A, 0x2F, 0x0A, 0x5F, 0x0A, 0x04, 0x13, + 0x03, 0x0A, 0x40, 0x0B, 0x0F, 0x48, 0x0A, 0x0A, 0x14, 0x00, 0xBB, 0xFF, 0xF0, 0x00, 0x02, 0x00, + 0x00, 0x01, 0x3C, 0xB5, 0x59, 0x02, 0x02, 0x14, 0x12, 0x14, 0xBB, 0xFF, 0xF0, 0x00, 0x12, 0x00, + 0x14, 0x01, 0x37, 0xB1, 0x59, 0x12, 0x00, 0x2F, 0x2B, 0x00, 0x38, 0x11, 0x12, 0x39, 0x18, 0x2F, + 0x2B, 0x00, 0x38, 0x11, 0x33, 0x18, 0x2F, 0x2B, 0x5F, 0x5E, 0x5D, 0x33, 0x2F, 0x2F, 0x5D, 0x71, + 0x5E, 0x5D, 0x33, 0x12, 0x39, 0x2F, 0x2B, 0x33, 0x2B, 0x11, 0x00, 0x33, 0x2B, 0x11, 0x00, 0x17, + 0x33, 0x12, 0x39, 0x18, 0x2F, 0x2B, 0x11, 0x00, 0x33, 0x18, 0x2F, 0x2B, 0x5F, 0x5E, 0x5D, 0x71, + 0x33, 0x2F, 0x11, 0x33, 0x11, 0x12, 0x39, 0x39, 0x01, 0x2F, 0x1A, 0xED, 0x33, 0x2F, 0x33, 0x32, + 0x2F, 0x33, 0x32, 0x11, 0x12, 0x39, 0x2F, 0xED, 0x17, 0x33, 0x17, 0x32, 0x38, 0x38, 0x32, 0x11, + 0x39, 0x2F, 0xED, 0x2F, 0x33, 0x2F, 0x33, 0x2F, 0x11, 0x12, 0x39, 0x11, 0x12, 0x39, 0x2F, 0x2F, + 0x30, 0x31, 0x25, 0x06, 0x07, 0x00, 0x03, 0x11, 0x21, 0x15, 0x21, 0x11, 0x23, 0x11, 0x21, 0x35, + 0x21, 0x11, 0x23, 0x02, 0x01, 0x26, 0x27, 0x00, 0x13, 0x21, 0x35, 0x21, 0x11, 0x33, 0x11, 0x21, + 0x15, 0x21, 0x12, 0x25, 0x00, 0x13, 0x17, 0x06, 0x07, 0x11, 0x23, 0x11, 0x06, 0x07, 0x26, 0x07, + 0xF0, 0x44, 0x32, 0xFE, 0x70, 0xBC, 0x01, 0x26, 0xFE, 0xDA, 0x94, 0xFE, 0xDA, 0x01, 0x26, 0x05, + 0xBA, 0xFE, 0x55, 0x2E, 0x3C, 0x01, 0x82, 0xC0, 0xFE, 0x2A, 0x02, 0x68, 0x94, 0x02, 0x7E, 0xFE, + 0x03, 0xBF, 0xF9, 0xA4, 0x01, 0x22, 0x8E, 0x98, 0x4E, 0x62, 0x94, 0x5A, 0x66, 0x1E, 0xF9, 0x52, + 0x42, 0x01, 0x34, 0x02, 0xDE, 0xFC, 0xB4, 0x90, 0xFE, 0x5E, 0x01, 0xA2, 0x90, 0x03, 0x4C, 0xFD, + 0x4D, 0xFE, 0x81, 0x3A, 0x44, 0x01, 0x61, 0x02, 0x53, 0x90, 0x01, 0x98, 0xFE, 0x68, 0x90, 0xFD, + 0x92, 0xD6, 0x01, 0xA8, 0x02, 0x1E, 0x2C, 0xFF, 0xE0, 0xFA, 0x61, 0x04, 0x72, 0xA3, 0x8F, 0x52, + 0x00, 0x02, 0x00, 0x2A, 0xFF, 0x09, 0x07, 0xCE, 0x06, 0xAD, 0x00, 0x1B, 0x00, 0x20, 0x01, 0x08, + 0xB9, 0x00, 0x04, 0x01, 0x61, 0xB3, 0x03, 0x03, 0x1A, 0x1C, 0xB8, 0x01, 0x64, 0x40, 0x13, 0x0A, + 0x0C, 0x1F, 0x1F, 0x0E, 0x1D, 0x18, 0x12, 0x12, 0x10, 0x1A, 0x10, 0x0E, 0x0E, 0x09, 0x09, 0x0A, + 0x07, 0x01, 0xB8, 0x01, 0x63, 0x40, 0x0A, 0x06, 0x10, 0x06, 0x06, 0x0A, 0x10, 0x0A, 0x0A, 0x22, + 0x1D, 0xB8, 0x01, 0x62, 0xB7, 0x1A, 0x40, 0x1B, 0x1B, 0x14, 0x16, 0x16, 0x1A, 0xB8, 0xFF, 0xF0, + 0xB6, 0x1A, 0x1F, 0x18, 0x18, 0x16, 0x1D, 0x16, 0xBB, 0xFF, 0xF0, 0x00, 0x14, 0x00, 0x16, 0x01, + 0x3D, 0x40, 0x09, 0x59, 0x12, 0x0C, 0x0C, 0x0A, 0x14, 0x14, 0x10, 0x0E, 0xBB, 0xFF, 0xF0, 0x00, + 0x10, 0x00, 0x0E, 0x01, 0x41, 0x40, 0x19, 0x59, 0x0B, 0x10, 0x01, 0x0F, 0x10, 0x01, 0x28, 0x02, + 0x10, 0x40, 0x17, 0x27, 0x48, 0x10, 0x40, 0x0E, 0x15, 0x48, 0x10, 0x1D, 0x0A, 0x1B, 0x00, 0x1B, + 0xB8, 0x01, 0x3C, 0x40, 0x26, 0x59, 0x03, 0x24, 0x04, 0x01, 0x64, 0x04, 0x01, 0x04, 0x04, 0x07, + 0x00, 0x80, 0x1D, 0x28, 0x48, 0x3B, 0x00, 0x01, 0x1F, 0x00, 0x01, 0x0B, 0x00, 0x01, 0xFB, 0x00, + 0x01, 0xEF, 0x00, 0x01, 0x02, 0x00, 0x40, 0x11, 0x16, 0x48, 0x00, 0x00, 0x2F, 0x2B, 0x5F, 0x5D, + 0x5D, 0x71, 0x71, 0x71, 0x2B, 0x32, 0x32, 0x2F, 0x5D, 0x71, 0x33, 0x2B, 0x11, 0x00, 0x33, 0x33, + 0x18, 0x2F, 0x2B, 0x2B, 0x5F, 0x5E, 0x5D, 0x71, 0x2B, 0x00, 0x38, 0x11, 0x33, 0x18, 0x2F, 0x12, + 0x39, 0x11, 0x33, 0x2B, 0x00, 0x38, 0x11, 0x12, 0x39, 0x11, 0x33, 0x01, 0x18, 0x2F, 0x38, 0x33, + 0x2F, 0x32, 0x32, 0x2F, 0x1A, 0x10, 0xED, 0x11, 0x33, 0x2F, 0x38, 0x39, 0x2F, 0x38, 0xED, 0x39, + 0x11, 0x33, 0x2F, 0x33, 0x2F, 0x33, 0x11, 0x12, 0x39, 0x11, 0x33, 0x11, 0x12, 0x39, 0x11, 0x33, + 0x10, 0xED, 0x11, 0x39, 0x2F, 0xED, 0x30, 0x31, 0x13, 0x21, 0x26, 0x27, 0x37, 0x16, 0x17, 0x07, + 0x21, 0x15, 0x21, 0x02, 0x01, 0x04, 0x05, 0x06, 0x07, 0x24, 0x25, 0x04, 0x05, 0x26, 0x27, 0x24, + 0x25, 0x00, 0x03, 0x29, 0x02, 0x12, 0x01, 0x00, 0x3E, 0x03, 0xC0, 0x65, 0x39, 0x9A, 0x38, 0x70, + 0x90, 0x03, 0xAC, 0xFE, 0x8F, 0x6B, 0xFE, 0x9F, 0x01, 0x0A, 0x02, 0x43, 0x5C, 0x30, 0xFD, 0xCC, + 0xFE, 0xF3, 0xFE, 0xF2, 0xFD, 0xAF, 0x34, 0x44, 0x02, 0x3C, 0x01, 0x21, 0xFE, 0x93, 0x63, 0xFE, + 0x87, 0x05, 0x64, 0xFC, 0xB5, 0x5A, 0x01, 0x54, 0x01, 0x45, 0x05, 0x4D, 0xC0, 0x58, 0x48, 0x56, + 0xC2, 0x48, 0x94, 0xFD, 0xC5, 0xFE, 0xA5, 0xC2, 0x9A, 0x68, 0x46, 0xC3, 0xD5, 0xD2, 0xD6, 0x46, + 0x56, 0xAC, 0xD3, 0x01, 0x86, 0x02, 0x0F, 0xFE, 0x14, 0xFE, 0xBF, 0x01, 0x2E, 0x00, 0x00, 0x03, + 0x01, 0x38, 0xFF, 0x0B, 0x06, 0xCA, 0x06, 0x23, 0x00, 0x07, 0x00, 0x0B, 0x00, 0x0F, 0x00, 0x67, + 0xB2, 0x0E, 0x0A, 0x02, 0xB8, 0x01, 0x64, 0xB5, 0x03, 0x03, 0x11, 0x0D, 0x09, 0x06, 0xB8, 0x01, + 0x64, 0xB3, 0x40, 0x07, 0x0D, 0x08, 0xB8, 0x01, 0x3C, 0x40, 0x0C, 0x59, 0x0D, 0x0D, 0x09, 0x00, + 0x07, 0x07, 0x03, 0x03, 0x05, 0x09, 0x05, 0xB8, 0x01, 0x3B, 0x40, 0x09, 0x59, 0x09, 0x40, 0x0B, + 0x0F, 0x48, 0x09, 0x00, 0x0C, 0xB8, 0x01, 0x3C, 0x40, 0x09, 0x59, 0x2F, 0x00, 0x3F, 0x00, 0x4F, + 0x00, 0x03, 0x00, 0x00, 0x2F, 0x5D, 0x2B, 0x00, 0x18, 0x2F, 0x2B, 0x2B, 0x11, 0x00, 0x33, 0x18, + 0x2F, 0x33, 0x2F, 0x11, 0x12, 0x39, 0x2F, 0x2B, 0x01, 0x18, 0x2F, 0x1A, 0xED, 0x32, 0x32, 0x12, + 0x39, 0x2F, 0xED, 0x33, 0x33, 0x30, 0x31, 0x01, 0x21, 0x11, 0x23, 0x35, 0x21, 0x15, 0x23, 0x13, + 0x11, 0x21, 0x11, 0x01, 0x11, 0x21, 0x11, 0x01, 0x38, 0x05, 0x92, 0xAA, 0xFB, 0xC2, 0xAA, 0xAA, + 0x04, 0x3E, 0xFB, 0xC2, 0x04, 0x3E, 0x06, 0x23, 0xF8, 0xE8, 0x8E, 0x8E, 0x03, 0x96, 0xFD, 0x8A, + 0x02, 0x76, 0x02, 0xEC, 0xFD, 0xAA, 0x02, 0x56, 0x00, 0x01, 0x00, 0x20, 0xFE, 0xF3, 0x07, 0xDA, + 0x06, 0xAD, 0x00, 0x1F, 0x00, 0xBE, 0x40, 0x18, 0x07, 0x07, 0x02, 0x09, 0x0C, 0x16, 0x02, 0x00, + 0x00, 0x1D, 0x0C, 0x0A, 0x11, 0x1D, 0x05, 0x1B, 0x1E, 0x1D, 0x04, 0x15, 0x0E, 0x18, 0x03, 0x09, + 0xB8, 0x01, 0x61, 0xB4, 0x0A, 0x0A, 0x21, 0x16, 0x11, 0xBA, 0xFF, 0xF0, 0x00, 0x11, 0x01, 0x5C, + 0x40, 0x19, 0x40, 0x13, 0x1E, 0x16, 0x7F, 0x19, 0x01, 0x00, 0x19, 0x10, 0x19, 0x02, 0x0F, 0x03, + 0x19, 0x19, 0x0F, 0x10, 0x0F, 0x04, 0x10, 0x04, 0x16, 0x17, 0x16, 0xB8, 0x01, 0x3C, 0xB6, 0x59, + 0x1B, 0x17, 0x13, 0x11, 0x02, 0x00, 0xBB, 0xFF, 0xF0, 0x00, 0x02, 0x00, 0x00, 0x01, 0x3A, 0xB6, + 0x59, 0x02, 0x02, 0x08, 0x0C, 0x0D, 0x0C, 0xB8, 0x01, 0x3A, 0x40, 0x12, 0x59, 0x7F, 0x0A, 0x01, + 0x40, 0x0A, 0x01, 0x0A, 0x0A, 0x05, 0x4F, 0x0D, 0x5F, 0x0D, 0x6F, 0x0D, 0x03, 0x0D, 0x00, 0x2F, + 0x5D, 0x33, 0x33, 0x2F, 0x5D, 0x5D, 0x2B, 0x11, 0x00, 0x33, 0x33, 0x18, 0x2F, 0x2B, 0x00, 0x38, + 0x18, 0x10, 0xC4, 0x32, 0x2F, 0x33, 0x2B, 0x11, 0x00, 0x33, 0x38, 0x33, 0x38, 0x33, 0x18, 0x2F, + 0x5F, 0x5E, 0x5D, 0x5D, 0x11, 0x33, 0x01, 0x2F, 0x1A, 0xEE, 0x38, 0x33, 0x12, 0x39, 0x2F, 0xED, + 0x17, 0x33, 0x17, 0x32, 0x2F, 0x11, 0x12, 0x39, 0x11, 0x33, 0x2F, 0x33, 0x2F, 0x2F, 0x11, 0x12, + 0x39, 0x2F, 0x30, 0x31, 0x01, 0x06, 0x07, 0x00, 0x01, 0x11, 0x21, 0x15, 0x21, 0x11, 0x23, 0x11, + 0x21, 0x35, 0x21, 0x11, 0x02, 0x01, 0x26, 0x27, 0x00, 0x01, 0x21, 0x35, 0x21, 0x11, 0x33, 0x11, + 0x21, 0x15, 0x21, 0x00, 0x07, 0xDA, 0x34, 0x54, 0xFE, 0x1C, 0xFE, 0xE0, 0x01, 0xCA, 0xFE, 0x36, + 0x9C, 0xFE, 0x26, 0x01, 0xDA, 0xFF, 0xFD, 0xF1, 0x4E, 0x36, 0x02, 0x39, 0x01, 0x1A, 0xFC, 0xD9, + 0x03, 0x66, 0x9C, 0x03, 0x66, 0xFC, 0xD3, 0x01, 0x3E, 0x01, 0x01, 0x34, 0x58, 0x01, 0x75, 0x02, + 0x47, 0xFC, 0xE8, 0x8C, 0xFE, 0x66, 0x01, 0x9A, 0x8C, 0x03, 0x18, 0xFE, 0x04, 0xFE, 0x28, 0x4A, + 0x2E, 0x01, 0xD3, 0x02, 0x09, 0x94, 0x01, 0x68, 0xFE, 0x98, 0x94, 0xFD, 0xAA, 0x00, 0x00, 0x0A, + 0x00, 0x1C, 0xFE, 0xF5, 0x07, 0xC8, 0x06, 0xA7, 0x00, 0x05, 0x00, 0x13, 0x00, 0x1F, 0x00, 0x2B, + 0x00, 0x2F, 0x00, 0x33, 0x00, 0x37, 0x00, 0x3D, 0x00, 0x43, 0x00, 0x49, 0x02, 0x7F, 0xB1, 0x1A, + 0x39, 0xBD, 0xFF, 0xF0, 0x00, 0x39, 0x01, 0x56, 0x00, 0x38, 0x00, 0x17, 0x01, 0x50, 0xB3, 0x14, + 0x15, 0x15, 0x47, 0xBA, 0xFF, 0xF0, 0x00, 0x47, 0x01, 0x57, 0xB5, 0x46, 0x06, 0x06, 0x36, 0x30, + 0x04, 0xB8, 0x01, 0x5E, 0xB3, 0x05, 0x19, 0x19, 0x28, 0xBD, 0xFF, 0xF0, 0x00, 0x28, 0x01, 0x5C, + 0x00, 0x2A, 0x00, 0x23, 0x01, 0x50, 0xB3, 0x20, 0x0F, 0x0F, 0x02, 0xB8, 0x01, 0x5E, 0xB5, 0x31, + 0x37, 0x31, 0x21, 0x21, 0x41, 0xBA, 0xFF, 0xF0, 0x00, 0x41, 0x01, 0x57, 0xB3, 0x40, 0x3E, 0x10, + 0x3E, 0xB8, 0x01, 0x5A, 0xB3, 0x43, 0x44, 0x10, 0x44, 0xB8, 0x01, 0x5A, 0xB3, 0x49, 0x3C, 0x10, + 0x3C, 0xB8, 0x01, 0x58, 0x40, 0x0C, 0x3B, 0x43, 0x49, 0x3B, 0x3B, 0x49, 0x43, 0x03, 0x2E, 0x25, + 0x25, 0x09, 0xBD, 0x01, 0x60, 0x00, 0x12, 0x00, 0x14, 0xFF, 0xF0, 0x00, 0x20, 0xFF, 0xF0, 0x40, + 0x15, 0x38, 0x14, 0x46, 0x05, 0x2A, 0x20, 0x31, 0x40, 0x12, 0x12, 0x40, 0x31, 0x20, 0x2A, 0x05, + 0x46, 0x14, 0x38, 0x09, 0x4B, 0x2E, 0xB8, 0x01, 0x60, 0x40, 0x0D, 0x2F, 0x40, 0x1C, 0x1E, 0x1E, + 0x2F, 0x00, 0x26, 0x01, 0x18, 0x03, 0x23, 0x26, 0xB8, 0x01, 0x37, 0x40, 0x31, 0x59, 0x23, 0x23, + 0x17, 0x43, 0x3E, 0x2A, 0x28, 0x40, 0x41, 0x0B, 0x3E, 0x01, 0x3E, 0x28, 0x41, 0x41, 0x28, 0x3E, + 0x03, 0x07, 0x1A, 0x2C, 0x2C, 0x3B, 0x3B, 0x3C, 0x3C, 0x1C, 0x46, 0x47, 0x47, 0x1E, 0x1A, 0x49, + 0x44, 0x44, 0x1C, 0x3B, 0x39, 0x01, 0x0F, 0x39, 0x01, 0x18, 0x03, 0x39, 0x1E, 0x1E, 0xBB, 0xFF, + 0xF0, 0x00, 0x1C, 0x00, 0x1E, 0x01, 0x34, 0x40, 0x0D, 0x59, 0x38, 0x1C, 0x1C, 0x1A, 0x0B, 0x00, + 0x1A, 0x01, 0x18, 0x03, 0x17, 0x1A, 0xB8, 0x01, 0x37, 0x40, 0x19, 0x59, 0x20, 0x20, 0x14, 0x14, + 0x17, 0x00, 0x05, 0x10, 0x05, 0x02, 0x0D, 0x05, 0x05, 0x03, 0x2F, 0x00, 0x03, 0x10, 0x03, 0x02, + 0x18, 0x03, 0x30, 0x03, 0xB8, 0x01, 0x36, 0x40, 0x0A, 0x59, 0x00, 0x33, 0x10, 0x33, 0x02, 0x18, + 0x03, 0x36, 0x33, 0xB8, 0x01, 0x36, 0x40, 0x0A, 0x59, 0x00, 0x35, 0x10, 0x35, 0x02, 0x18, 0x03, + 0x00, 0x35, 0xB8, 0x01, 0x36, 0xB7, 0x59, 0x00, 0x06, 0x01, 0x18, 0x03, 0x07, 0x06, 0xB8, 0x01, + 0x37, 0x40, 0x57, 0x59, 0x10, 0x30, 0x20, 0x30, 0x02, 0x00, 0x30, 0x20, 0x30, 0x30, 0x30, 0x03, + 0x1F, 0x36, 0x2F, 0x36, 0x5F, 0x36, 0xDF, 0x36, 0x04, 0x3F, 0x36, 0x9F, 0x36, 0xAF, 0x36, 0xDF, + 0x36, 0xEF, 0x36, 0x05, 0xCF, 0x36, 0x01, 0x00, 0x36, 0x20, 0x36, 0x30, 0x36, 0x03, 0x0B, 0x0F, + 0x00, 0xEF, 0x00, 0x02, 0x10, 0x00, 0x07, 0x20, 0x07, 0x02, 0x30, 0x36, 0x00, 0x07, 0x07, 0x00, + 0x36, 0x30, 0x04, 0x0F, 0x20, 0x17, 0x01, 0x17, 0x2F, 0x2F, 0x0D, 0x0B, 0x0F, 0x0B, 0x1F, 0x0B, + 0x02, 0x16, 0x03, 0x0B, 0x40, 0x23, 0x28, 0x48, 0x0F, 0x0B, 0xB8, 0x01, 0x3E, 0x40, 0x10, 0x59, + 0xFF, 0x0F, 0x01, 0x2F, 0x0F, 0x01, 0xFF, 0x0F, 0x01, 0x0F, 0x40, 0x0B, 0x0F, 0x48, 0x0F, 0x00, + 0x2F, 0x2B, 0x5D, 0x71, 0x72, 0x2B, 0x00, 0x2B, 0x5F, 0x5E, 0x5D, 0x11, 0x33, 0x33, 0x18, 0x2F, + 0x2F, 0x5D, 0x12, 0x17, 0x39, 0x2F, 0x2F, 0x2F, 0x2F, 0x5D, 0x5E, 0x5D, 0x5E, 0x5D, 0x5D, 0x71, + 0x72, 0x5D, 0x71, 0x2B, 0x00, 0x5F, 0x5E, 0x5D, 0x2B, 0x00, 0x5F, 0x5E, 0x5D, 0x2B, 0x00, 0x5F, + 0x5E, 0x5D, 0x2B, 0x00, 0x5F, 0x5E, 0x5D, 0x11, 0x12, 0x39, 0x18, 0x2F, 0x5E, 0x5D, 0x11, 0x33, + 0x2F, 0x33, 0x2F, 0x2B, 0x00, 0x5F, 0x5E, 0x5D, 0x11, 0x12, 0x39, 0x18, 0x2F, 0x33, 0x2B, 0x00, + 0x38, 0x11, 0x33, 0x5F, 0x5E, 0x5D, 0x5D, 0x12, 0x39, 0x18, 0x2F, 0x33, 0x11, 0x12, 0x39, 0x2F, + 0x33, 0x11, 0x33, 0x2F, 0x33, 0x12, 0x39, 0x2F, 0x11, 0x12, 0x17, 0x39, 0x2F, 0x2F, 0x2F, 0x5D, + 0x11, 0x33, 0x11, 0x33, 0x11, 0x33, 0x11, 0x33, 0x2F, 0x2B, 0x00, 0x5F, 0x5E, 0x5D, 0x01, 0x18, + 0x2F, 0x33, 0x2F, 0x33, 0x1A, 0x10, 0xED, 0x12, 0x17, 0x39, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, + 0x2F, 0x2F, 0x2F, 0x38, 0x38, 0x10, 0xED, 0x32, 0x2F, 0x11, 0x17, 0x39, 0x2F, 0x2F, 0x2F, 0x10, + 0xED, 0x38, 0x10, 0xED, 0x38, 0x10, 0xED, 0x38, 0x10, 0xED, 0x38, 0x39, 0x2F, 0x11, 0x33, 0x10, + 0xED, 0x39, 0x2F, 0x10, 0xED, 0x10, 0xEE, 0x38, 0x39, 0x2F, 0x10, 0xED, 0x32, 0x32, 0x39, 0x2F, + 0x10, 0xED, 0x38, 0x39, 0x2F, 0x10, 0xED, 0x10, 0xED, 0x38, 0x32, 0x30, 0x31, 0x01, 0x21, 0x11, + 0x21, 0x15, 0x23, 0x13, 0x35, 0x21, 0x11, 0x10, 0x21, 0x22, 0x27, 0x26, 0x27, 0x16, 0x32, 0x35, + 0x11, 0x01, 0x33, 0x06, 0x07, 0x21, 0x15, 0x21, 0x06, 0x07, 0x26, 0x27, 0x36, 0x01, 0x33, 0x06, + 0x07, 0x21, 0x15, 0x21, 0x06, 0x07, 0x26, 0x27, 0x36, 0x01, 0x33, 0x11, 0x23, 0x01, 0x21, 0x35, + 0x21, 0x01, 0x21, 0x15, 0x21, 0x01, 0x37, 0x16, 0x17, 0x07, 0x26, 0x25, 0x26, 0x27, 0x37, 0x16, + 0x17, 0x05, 0x26, 0x27, 0x37, 0x16, 0x17, 0x02, 0x5E, 0x03, 0x4A, 0xFD, 0x42, 0x8C, 0x82, 0x04, + 0x7A, 0xFF, 0x00, 0x76, 0x7C, 0x08, 0x16, 0x90, 0xEC, 0xFA, 0xDC, 0xA8, 0x30, 0x36, 0x02, 0x38, + 0xFD, 0x74, 0x78, 0x94, 0x28, 0x40, 0xF6, 0x03, 0xF4, 0xA8, 0x2E, 0x36, 0x02, 0x7E, 0xFD, 0x38, + 0x5A, 0x66, 0x36, 0x4C, 0xBE, 0xFC, 0x3A, 0x94, 0x94, 0x02, 0x34, 0x02, 0x32, 0xFD, 0xCE, 0x02, + 0x32, 0xFD, 0xCE, 0x02, 0x32, 0xFC, 0x0A, 0x62, 0x7C, 0x6A, 0x70, 0x5E, 0x04, 0x68, 0x26, 0x7C, + 0x68, 0x6C, 0x44, 0xFC, 0x38, 0x48, 0x56, 0x68, 0x5A, 0x52, 0x03, 0x0D, 0xFD, 0x14, 0x50, 0x03, + 0xF2, 0x7E, 0xFB, 0xBA, 0xFE, 0xFE, 0x06, 0x3A, 0x5E, 0x0C, 0x76, 0x03, 0xC2, 0x02, 0xE4, 0x62, + 0x5A, 0x7E, 0xA8, 0x86, 0x30, 0x3C, 0xD8, 0x01, 0x24, 0x62, 0x5A, 0x7E, 0x8C, 0x7E, 0x26, 0x2E, + 0xD6, 0xFD, 0xF0, 0xFB, 0x78, 0x01, 0xA4, 0xC6, 0x01, 0x36, 0xC2, 0x02, 0x88, 0x56, 0x6C, 0x74, + 0x66, 0x76, 0x6A, 0x3C, 0x90, 0x4A, 0x68, 0x54, 0x58, 0x64, 0x62, 0x4C, 0x54, 0x64, 0x00, 0x0A, + 0x00, 0x28, 0xFF, 0x07, 0x07, 0xD8, 0x06, 0xB1, 0x00, 0x3D, 0x00, 0x59, 0x00, 0x65, 0x00, 0x6C, + 0x00, 0x72, 0x00, 0x77, 0x00, 0x7D, 0x00, 0x83, 0x00, 0x89, 0x00, 0x8F, 0x04, 0x09, 0x40, 0x39, + 0x48, 0x73, 0x73, 0x4A, 0x76, 0x54, 0x4E, 0x4E, 0x4C, 0x56, 0x43, 0x76, 0x76, 0x56, 0x56, 0x75, + 0x58, 0x5F, 0x62, 0x5D, 0x64, 0x45, 0x61, 0x0A, 0x45, 0x1D, 0x4C, 0x4A, 0x4A, 0x1D, 0x6E, 0x6D, + 0x6D, 0x1E, 0x23, 0x61, 0x3E, 0x06, 0x58, 0x58, 0x3E, 0x3E, 0x75, 0x04, 0x0A, 0x50, 0x52, 0x52, + 0x1A, 0x04, 0x29, 0x66, 0x66, 0x67, 0x67, 0x3B, 0x16, 0xB8, 0xFF, 0xF0, 0x40, 0x1B, 0x16, 0x30, + 0x30, 0x31, 0x31, 0x2D, 0x3B, 0x69, 0x6B, 0x6B, 0x3B, 0x8D, 0x7A, 0x7A, 0x8C, 0x7B, 0x3C, 0x01, + 0x01, 0x02, 0x3B, 0x3D, 0x64, 0x5A, 0x5A, 0x3B, 0x0F, 0xB8, 0xFF, 0xF0, 0xB2, 0x0F, 0x37, 0x75, + 0xB8, 0x01, 0x5D, 0xB6, 0x46, 0x10, 0x46, 0x18, 0x13, 0x10, 0x13, 0xB8, 0x01, 0x59, 0xB2, 0x14, + 0x14, 0x1B, 0x41, 0x0C, 0xFF, 0xF0, 0x00, 0x1B, 0x01, 0x55, 0x00, 0x1A, 0x00, 0x40, 0x01, 0x5C, + 0x00, 0x41, 0x00, 0x23, 0x01, 0x60, 0x00, 0x2D, 0x00, 0x04, 0x01, 0x5A, 0xB3, 0x86, 0x35, 0x0C, + 0x08, 0xB8, 0x01, 0x5B, 0xB2, 0x80, 0x80, 0x3A, 0xB8, 0x01, 0x59, 0xB4, 0x0D, 0x10, 0x0D, 0x8B, + 0x8E, 0xB8, 0x01, 0x54, 0xB4, 0x84, 0x10, 0x84, 0x84, 0x7C, 0xB8, 0x01, 0x53, 0xB3, 0x7E, 0x10, + 0x7E, 0x88, 0xBA, 0x01, 0x52, 0x00, 0x8A, 0xFF, 0xF0, 0xB6, 0x8A, 0x8A, 0x78, 0x85, 0x79, 0x79, + 0x7F, 0x41, 0x09, 0xFF, 0xF0, 0x00, 0x7F, 0x00, 0x82, 0x01, 0x51, 0x00, 0x78, 0xFF, 0xF0, 0x00, + 0x78, 0x00, 0x5C, 0x01, 0x5B, 0x40, 0x0D, 0x5D, 0x78, 0x86, 0x2D, 0x1A, 0x04, 0x3B, 0x71, 0x70, + 0x70, 0x1E, 0x10, 0x1E, 0xB8, 0x01, 0x58, 0x40, 0x0B, 0x5D, 0x7E, 0x0D, 0x41, 0x46, 0x05, 0x7B, + 0x1D, 0x1D, 0x91, 0x8C, 0xB8, 0x01, 0x56, 0xB6, 0x02, 0x02, 0x3B, 0x37, 0x38, 0x38, 0x7B, 0x41, + 0x10, 0x01, 0x5F, 0x00, 0x40, 0x00, 0x3B, 0xFF, 0xF0, 0x00, 0x3B, 0x00, 0x70, 0xFF, 0xF0, 0x00, + 0x71, 0x00, 0x70, 0x01, 0x36, 0x00, 0x59, 0x00, 0x6B, 0xFF, 0xF0, 0x00, 0x69, 0x00, 0x6B, 0x01, + 0x35, 0x40, 0x0C, 0x59, 0x4E, 0x54, 0x54, 0x4C, 0x56, 0x73, 0x48, 0x48, 0x4A, 0x76, 0x52, 0xBB, + 0xFF, 0xF0, 0x00, 0x50, 0x00, 0x52, 0x01, 0x36, 0x40, 0x25, 0x59, 0x1F, 0x0D, 0x01, 0x0F, 0x0D, + 0x01, 0x0D, 0x0D, 0x14, 0x1F, 0x14, 0x2F, 0x14, 0x8F, 0x14, 0x03, 0xCF, 0x14, 0x01, 0xAB, 0x14, + 0x01, 0x14, 0x13, 0x0F, 0x13, 0x01, 0x0B, 0x03, 0x50, 0x13, 0x50, 0x13, 0x4A, 0x4C, 0x4A, 0x41, + 0x10, 0xFF, 0xF0, 0x00, 0x4C, 0x00, 0x4A, 0x01, 0x36, 0x00, 0x59, 0x00, 0x3E, 0xFF, 0xF0, 0x00, + 0x58, 0x00, 0x3E, 0x01, 0x32, 0x00, 0x59, 0x00, 0x5A, 0xFF, 0xF0, 0x00, 0x64, 0x00, 0x5A, 0x01, + 0x33, 0x40, 0x1B, 0x59, 0x2F, 0x64, 0x01, 0x02, 0x0F, 0x64, 0x1F, 0x64, 0x02, 0x0D, 0x03, 0x71, + 0x69, 0x4C, 0x58, 0x64, 0x64, 0x58, 0x4C, 0x69, 0x71, 0x05, 0x62, 0x25, 0x5F, 0x62, 0xB8, 0x01, + 0x36, 0x40, 0x0A, 0x59, 0x1D, 0x1E, 0x1E, 0x6D, 0x66, 0x6D, 0x10, 0x6E, 0x6D, 0xB8, 0x01, 0x32, + 0xB7, 0x59, 0x6E, 0x6E, 0x66, 0x67, 0x10, 0x66, 0x67, 0xB8, 0x01, 0x32, 0xB2, 0x59, 0x31, 0x2E, + 0xB8, 0xFF, 0xF0, 0xB4, 0x0B, 0x17, 0x48, 0x2E, 0x22, 0xB8, 0xFF, 0xF0, 0xB7, 0x0B, 0x17, 0x48, + 0x22, 0x20, 0x30, 0x16, 0x30, 0xB8, 0x01, 0x38, 0xB7, 0x59, 0x18, 0x16, 0x1A, 0x1B, 0x1B, 0x0F, + 0x35, 0xB8, 0xFF, 0xF0, 0x40, 0x0C, 0x0C, 0x17, 0x48, 0x00, 0x35, 0x01, 0x18, 0x04, 0x35, 0x37, + 0x0F, 0x37, 0xB8, 0x01, 0x37, 0x40, 0x0E, 0x59, 0x00, 0x11, 0x10, 0x11, 0x02, 0x0B, 0x04, 0x11, + 0x0F, 0x0B, 0x3B, 0x7B, 0x3B, 0xB8, 0x01, 0x32, 0x40, 0x0B, 0x59, 0x7F, 0x08, 0x7B, 0x07, 0x7A, + 0x82, 0x03, 0x3D, 0x00, 0x3D, 0xB8, 0x01, 0x32, 0x40, 0x0A, 0x59, 0x04, 0x85, 0x8D, 0x03, 0x00, + 0x88, 0x8C, 0x02, 0x8C, 0xB8, 0x01, 0x32, 0xB4, 0x59, 0x46, 0x76, 0x43, 0x76, 0xB8, 0x01, 0x36, + 0x40, 0x10, 0x59, 0x5D, 0x5C, 0x5C, 0x56, 0x40, 0x10, 0x40, 0x40, 0x43, 0xD0, 0x66, 0xE0, 0x66, + 0x02, 0x66, 0xB8, 0xFF, 0xC0, 0x40, 0x59, 0x10, 0x14, 0x48, 0xB8, 0x16, 0xC8, 0x16, 0xD8, 0x16, + 0x03, 0x03, 0x0B, 0x0F, 0x01, 0x0B, 0x7B, 0x4B, 0x7B, 0x02, 0x54, 0x7B, 0x01, 0x0F, 0x00, 0x01, + 0x0B, 0x02, 0x0F, 0x00, 0x1F, 0x00, 0x2F, 0x00, 0x8F, 0x00, 0x04, 0x0D, 0x03, 0x02, 0x80, 0x0C, + 0x02, 0x4D, 0x0F, 0x02, 0x2F, 0x02, 0x3F, 0x02, 0x4F, 0x02, 0xDF, 0x02, 0xEF, 0x02, 0x06, 0x0B, + 0x00, 0x02, 0x01, 0x0C, 0x66, 0x16, 0x0F, 0x7B, 0x00, 0x02, 0x43, 0x43, 0x02, 0x00, 0x7B, 0x0F, + 0x16, 0x66, 0x07, 0x2B, 0x00, 0x5F, 0x10, 0x5F, 0x02, 0x0E, 0x03, 0x5F, 0x27, 0x25, 0x2B, 0x25, + 0xB8, 0x01, 0x37, 0xB7, 0x59, 0x29, 0x2B, 0x40, 0x0B, 0x0F, 0x48, 0x2B, 0x00, 0x2F, 0x2B, 0x33, + 0x2B, 0x11, 0x00, 0x33, 0x18, 0x2F, 0x5F, 0x5E, 0x5D, 0x12, 0x17, 0x39, 0x2F, 0x2F, 0x2F, 0x2F, + 0x2F, 0x2F, 0x2F, 0x5E, 0x5D, 0x5E, 0x5D, 0x2B, 0x00, 0x5F, 0x5E, 0x5D, 0x5F, 0x5E, 0x5D, 0x5D, + 0x5D, 0x5D, 0x5F, 0x5D, 0x2B, 0x5D, 0x11, 0x33, 0x18, 0x2F, 0x38, 0x33, 0x33, 0x2F, 0x33, 0x2B, + 0x11, 0x00, 0x33, 0x2B, 0x11, 0x00, 0x33, 0x11, 0x17, 0x33, 0x2B, 0x11, 0x00, 0x17, 0x33, 0x11, + 0x33, 0x33, 0x2B, 0x11, 0x00, 0x33, 0x11, 0x33, 0x5F, 0x5E, 0x5D, 0x2B, 0x11, 0x00, 0x33, 0x5F, + 0x5E, 0x5D, 0x2B, 0x12, 0x39, 0x18, 0x2F, 0x33, 0x11, 0x33, 0x2B, 0x11, 0x00, 0x33, 0x33, 0x2B, + 0x33, 0x2B, 0x33, 0x2B, 0x00, 0x38, 0x11, 0x33, 0x18, 0x2F, 0x2B, 0x00, 0x38, 0x11, 0x12, 0x39, + 0x18, 0x2F, 0x33, 0x2B, 0x11, 0x12, 0x00, 0x17, 0x39, 0x18, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x5F, + 0x5E, 0x5D, 0x5F, 0x5D, 0x2B, 0x00, 0x38, 0x2B, 0x00, 0x38, 0x2B, 0x00, 0x38, 0x11, 0x12, 0x39, + 0x39, 0x18, 0x2F, 0x2F, 0x5F, 0x5E, 0x5D, 0x11, 0x33, 0x5D, 0x5D, 0x71, 0x12, 0x39, 0x2F, 0x5D, + 0x71, 0x2B, 0x00, 0x38, 0x11, 0x12, 0x39, 0x11, 0x33, 0x11, 0x12, 0x39, 0x11, 0x33, 0x2B, 0x00, + 0x38, 0x2B, 0x00, 0x38, 0x01, 0x18, 0x2F, 0x38, 0x1A, 0xED, 0x39, 0x2F, 0x33, 0x11, 0x39, 0x2F, + 0xED, 0x11, 0x33, 0x2F, 0x12, 0x17, 0x39, 0xED, 0x38, 0x33, 0x2F, 0x33, 0x11, 0x17, 0x39, 0x2F, + 0xED, 0x2F, 0x38, 0xED, 0x32, 0x38, 0x39, 0x11, 0x33, 0x11, 0x39, 0x2F, 0x38, 0xED, 0x2F, 0x38, + 0xED, 0x33, 0x2F, 0x38, 0xED, 0x32, 0x2F, 0x38, 0xED, 0x39, 0x2F, 0xED, 0x32, 0x32, 0x2F, 0xED, + 0x2F, 0xED, 0x2F, 0xED, 0x2F, 0xED, 0x38, 0x32, 0x2F, 0xED, 0x38, 0x39, 0x2F, 0x38, 0xED, 0x11, + 0x33, 0x38, 0x11, 0x33, 0x2F, 0x33, 0x33, 0x11, 0x12, 0x39, 0x11, 0x33, 0x11, 0x12, 0x39, 0x11, + 0x33, 0x11, 0x33, 0x2F, 0x33, 0x11, 0x12, 0x39, 0x2F, 0x33, 0x11, 0x33, 0x38, 0x11, 0x39, 0x2F, + 0x33, 0x11, 0x33, 0x11, 0x12, 0x39, 0x2F, 0x33, 0x33, 0x11, 0x12, 0x39, 0x2F, 0x33, 0x11, 0x33, + 0x12, 0x39, 0x11, 0x12, 0x39, 0x2F, 0x33, 0x11, 0x33, 0x2F, 0x33, 0x11, 0x33, 0x2F, 0x2F, 0x2F, + 0x11, 0x12, 0x39, 0x39, 0x11, 0x12, 0x39, 0x11, 0x33, 0x11, 0x33, 0x11, 0x12, 0x39, 0x11, 0x33, + 0x11, 0x12, 0x39, 0x11, 0x33, 0x30, 0x31, 0x13, 0x33, 0x37, 0x21, 0x07, 0x33, 0x15, 0x23, 0x07, + 0x33, 0x15, 0x23, 0x07, 0x23, 0x06, 0x07, 0x24, 0x25, 0x36, 0x37, 0x17, 0x04, 0x05, 0x24, 0x25, + 0x26, 0x27, 0x37, 0x16, 0x17, 0x07, 0x26, 0x27, 0x04, 0x07, 0x15, 0x14, 0x23, 0x22, 0x27, 0x26, + 0x27, 0x16, 0x33, 0x32, 0x35, 0x35, 0x04, 0x07, 0x27, 0x36, 0x37, 0x36, 0x37, 0x04, 0x07, 0x27, + 0x36, 0x25, 0x21, 0x37, 0x23, 0x01, 0x36, 0x13, 0x17, 0x06, 0x07, 0x21, 0x15, 0x23, 0x06, 0x07, + 0x16, 0x17, 0x06, 0x07, 0x26, 0x27, 0x06, 0x07, 0x26, 0x27, 0x36, 0x37, 0x26, 0x27, 0x06, 0x07, + 0x26, 0x25, 0x36, 0x37, 0x17, 0x06, 0x07, 0x21, 0x15, 0x21, 0x06, 0x07, 0x26, 0x01, 0x17, 0x04, + 0x05, 0x26, 0x27, 0x24, 0x25, 0x37, 0x16, 0x05, 0x07, 0x24, 0x03, 0x36, 0x37, 0x21, 0x16, 0x01, + 0x37, 0x23, 0x07, 0x21, 0x26, 0x37, 0x07, 0x33, 0x37, 0x21, 0x16, 0x37, 0x07, 0x33, 0x37, 0x21, + 0x16, 0x07, 0x37, 0x23, 0x07, 0x21, 0x26, 0x28, 0xC2, 0x36, 0x02, 0xC8, 0x12, 0xC8, 0xCE, 0x0A, + 0x74, 0x78, 0x06, 0x36, 0xAC, 0xA4, 0x01, 0x40, 0x01, 0x64, 0x7C, 0x78, 0x72, 0xFE, 0x24, 0xFE, + 0x0A, 0x01, 0xEE, 0x01, 0x94, 0x44, 0x3E, 0x60, 0x9C, 0xDA, 0x6C, 0x3E, 0x3C, 0xFE, 0xEE, 0xDA, + 0xDE, 0x78, 0x86, 0x08, 0x10, 0x8C, 0x5C, 0x78, 0xFE, 0x10, 0xC2, 0x3C, 0x7E, 0x8E, 0xF6, 0xE8, + 0xFE, 0x04, 0x92, 0x36, 0xC4, 0x01, 0x3A, 0xFD, 0x8A, 0x36, 0xAC, 0x03, 0xFE, 0xAA, 0x64, 0x80, + 0x20, 0x26, 0x02, 0x5C, 0x9C, 0x28, 0x9C, 0x92, 0xDC, 0x48, 0x1E, 0xDA, 0x94, 0x90, 0xD2, 0x22, + 0x34, 0xCE, 0x8A, 0x7E, 0x38, 0x30, 0x34, 0x32, 0xFB, 0xD0, 0xBE, 0x56, 0x7C, 0x16, 0x1A, 0x02, + 0xC8, 0xFC, 0xFA, 0x56, 0x74, 0x2A, 0x02, 0x10, 0x5C, 0xFE, 0xFE, 0xFE, 0xE6, 0x1C, 0x2C, 0x01, + 0x24, 0x03, 0xB2, 0x42, 0xCA, 0x01, 0x3A, 0x46, 0xFE, 0xEE, 0x1C, 0x7E, 0x24, 0xFE, 0xAC, 0x30, + 0xFC, 0x64, 0x36, 0xD0, 0x20, 0x01, 0x34, 0x2E, 0x82, 0x3C, 0xD0, 0x0C, 0xFE, 0xDE, 0x46, 0x4E, + 0x40, 0xD6, 0x0C, 0xFE, 0xE6, 0x42, 0x94, 0x3A, 0xB4, 0x20, 0x01, 0x0C, 0x3C, 0x04, 0x5B, 0xF8, + 0xF8, 0x64, 0x96, 0x64, 0x46, 0x48, 0x42, 0x10, 0x14, 0x38, 0x3E, 0x62, 0xD0, 0x98, 0x10, 0x16, + 0x42, 0x38, 0x50, 0x84, 0xCE, 0x60, 0x40, 0x3A, 0x08, 0x06, 0xBA, 0xE6, 0x04, 0x3E, 0x52, 0x10, + 0x6C, 0xAA, 0x0C, 0x20, 0x86, 0x12, 0x2C, 0x4C, 0x5E, 0x1C, 0x16, 0x78, 0x30, 0xA4, 0xFA, 0x01, + 0x00, 0xAE, 0x01, 0x04, 0x24, 0x4E, 0x48, 0x78, 0xE6, 0xAC, 0x6A, 0x40, 0x52, 0x2C, 0x52, 0x78, + 0x74, 0x54, 0x36, 0x40, 0x44, 0x68, 0x88, 0xAE, 0x46, 0x40, 0x36, 0x66, 0xAA, 0xDA, 0x22, 0x32, + 0x30, 0x6C, 0x86, 0x76, 0x36, 0xFB, 0x6C, 0x64, 0x76, 0x6A, 0x2C, 0x48, 0x60, 0x08, 0x66, 0x48, + 0x8A, 0x76, 0x84, 0x04, 0x98, 0x88, 0xB6, 0xB8, 0xFE, 0xF4, 0x44, 0x96, 0x24, 0x24, 0x48, 0x96, + 0x26, 0xCC, 0x42, 0x94, 0x2C, 0x12, 0x3E, 0x94, 0x32, 0x00, 0x00, 0x09, 0x00, 0x32, 0xFE, 0xF1, + 0x07, 0xE2, 0x06, 0xAF, 0x00, 0x11, 0x00, 0x19, 0x00, 0x21, 0x00, 0x25, 0x00, 0x29, 0x00, 0x34, + 0x00, 0x38, 0x00, 0x3C, 0x00, 0x40, 0x01, 0xDD, 0x40, 0x0A, 0x07, 0x33, 0x07, 0x33, 0x02, 0x30, + 0x03, 0x03, 0x01, 0x2B, 0xB8, 0x01, 0x60, 0xB5, 0x30, 0x10, 0x30, 0x30, 0x31, 0x2E, 0xB8, 0x01, + 0x60, 0xB6, 0x2D, 0x11, 0x11, 0x19, 0x3F, 0x3F, 0x1C, 0xB8, 0x01, 0x5E, 0xB4, 0x1D, 0x38, 0x1D, + 0x24, 0x18, 0xB8, 0x01, 0x5F, 0x40, 0x0F, 0x19, 0x3B, 0x3B, 0x01, 0x34, 0x0C, 0x27, 0x27, 0x0B, + 0x28, 0x02, 0x05, 0x05, 0x01, 0x06, 0xB8, 0x01, 0x60, 0xB4, 0x0B, 0x10, 0x0B, 0x0B, 0x28, 0xB8, + 0x01, 0x60, 0xB4, 0x01, 0x0A, 0x0A, 0x10, 0x0E, 0xB8, 0x01, 0x5E, 0xB3, 0x29, 0x10, 0x10, 0x14, + 0xB8, 0x01, 0x5F, 0xB3, 0x15, 0x25, 0x15, 0x01, 0xB8, 0xFF, 0xF0, 0x40, 0x15, 0x2D, 0x1D, 0x19, + 0x01, 0x29, 0x15, 0x15, 0x29, 0x01, 0x19, 0x1D, 0x2D, 0x06, 0x21, 0x42, 0x3C, 0x3C, 0x34, 0x34, + 0x37, 0x20, 0xB8, 0x01, 0x5E, 0x40, 0x13, 0x21, 0x40, 0x40, 0x40, 0x21, 0x1D, 0x1D, 0x1F, 0x15, + 0x21, 0x21, 0x15, 0x19, 0x19, 0x15, 0x15, 0x17, 0x24, 0x17, 0xB8, 0x01, 0x39, 0xB2, 0x59, 0x2A, + 0x34, 0xB8, 0x01, 0x38, 0xB6, 0x59, 0x31, 0x2A, 0x27, 0x03, 0x04, 0x03, 0xB8, 0x01, 0x39, 0xB4, + 0x59, 0x0C, 0x04, 0x39, 0x3C, 0xB8, 0x01, 0x38, 0xB2, 0x59, 0x3D, 0x40, 0xB8, 0x01, 0x38, 0xB4, + 0x59, 0x28, 0x00, 0x00, 0x11, 0xB8, 0x01, 0x39, 0xB4, 0x59, 0x0E, 0x00, 0x1A, 0x36, 0xB8, 0x01, + 0x37, 0xB2, 0x59, 0x12, 0x23, 0xB8, 0x01, 0x39, 0xB2, 0x59, 0x37, 0x1F, 0xB8, 0x01, 0x37, 0x40, + 0x50, 0x59, 0x7F, 0x2A, 0x8F, 0x2A, 0x9F, 0x2A, 0xDF, 0x2A, 0xEF, 0x2A, 0x05, 0xAF, 0x04, 0x01, + 0x40, 0x04, 0x50, 0x04, 0x02, 0x2F, 0x39, 0x01, 0xEF, 0x39, 0x01, 0x00, 0x3D, 0x10, 0x3D, 0x02, + 0xEF, 0x00, 0x01, 0x00, 0x1A, 0x10, 0x1A, 0xD0, 0x1A, 0x03, 0x00, 0x12, 0x10, 0x12, 0x02, 0x0B, + 0x03, 0x2A, 0x04, 0x39, 0x3D, 0x00, 0x1A, 0x12, 0x37, 0x37, 0x12, 0x1A, 0x00, 0x3D, 0x39, 0x04, + 0x2A, 0x08, 0x08, 0x24, 0x40, 0x0C, 0x10, 0x48, 0x24, 0x2D, 0x2E, 0x2E, 0x08, 0x0B, 0x07, 0x08, + 0x07, 0xB8, 0x01, 0x39, 0x40, 0x11, 0x59, 0x30, 0x08, 0x40, 0x08, 0x02, 0xB0, 0x08, 0xF0, 0x08, + 0x02, 0x3F, 0x08, 0x4F, 0x08, 0x02, 0x08, 0x00, 0x2F, 0x5D, 0x5D, 0x71, 0x2B, 0x11, 0x00, 0x33, + 0x11, 0x33, 0x18, 0x2F, 0x33, 0x2F, 0x2B, 0x12, 0x17, 0x39, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, + 0x2F, 0x2F, 0x5F, 0x5E, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x71, 0x5D, 0x5D, 0x5D, 0x2B, 0x2B, 0x2B, + 0x11, 0x00, 0x33, 0x2B, 0x11, 0x00, 0x33, 0x2B, 0x2B, 0x11, 0x00, 0x33, 0x2B, 0x11, 0x00, 0x33, + 0x11, 0x33, 0x2B, 0x2B, 0x11, 0x00, 0x33, 0x18, 0x2F, 0x33, 0x2F, 0x11, 0x33, 0x2F, 0x11, 0x12, + 0x39, 0x2F, 0x01, 0x2F, 0x33, 0x2F, 0x1A, 0x10, 0xED, 0x32, 0x33, 0x2F, 0x33, 0x2F, 0x11, 0x12, + 0x17, 0x39, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x38, 0x11, 0x33, 0x10, 0xED, 0x32, 0x2F, 0x10, + 0xED, 0x11, 0x39, 0x2F, 0x10, 0xED, 0x32, 0x2F, 0x38, 0xED, 0x11, 0x39, 0x11, 0x33, 0x11, 0x12, + 0x39, 0x11, 0x33, 0x11, 0x12, 0x39, 0x2F, 0x10, 0xED, 0x32, 0x11, 0x33, 0x10, 0xED, 0x32, 0x2F, + 0x11, 0x39, 0x2F, 0x10, 0xED, 0x32, 0x32, 0x2F, 0x38, 0xED, 0x12, 0x39, 0x2F, 0x11, 0x12, 0x39, + 0x39, 0x2F, 0x2F, 0x30, 0x31, 0x01, 0x33, 0x13, 0x23, 0x35, 0x21, 0x37, 0x21, 0x35, 0x21, 0x15, + 0x21, 0x07, 0x21, 0x11, 0x33, 0x15, 0x21, 0x17, 0x21, 0x11, 0x23, 0x35, 0x21, 0x15, 0x23, 0x01, + 0x21, 0x11, 0x23, 0x35, 0x21, 0x15, 0x23, 0x01, 0x21, 0x11, 0x21, 0x03, 0x21, 0x03, 0x21, 0x01, + 0x21, 0x26, 0x27, 0x37, 0x16, 0x17, 0x07, 0x21, 0x15, 0x21, 0x01, 0x21, 0x11, 0x21, 0x01, 0x21, + 0x15, 0x21, 0x17, 0x21, 0x15, 0x21, 0x03, 0x28, 0xF8, 0x32, 0xEC, 0x01, 0x04, 0x26, 0xFE, 0xB0, + 0x04, 0x6A, 0xFD, 0x7A, 0x26, 0x02, 0x38, 0xAC, 0xFB, 0x46, 0x74, 0x03, 0xC6, 0x90, 0xFD, 0x5A, + 0x90, 0xFC, 0xDC, 0x02, 0x62, 0x8C, 0xFE, 0xB6, 0x8C, 0x06, 0x5A, 0xFD, 0x5A, 0x02, 0xA6, 0x28, + 0xFE, 0x3E, 0x32, 0x01, 0xF4, 0xF9, 0x88, 0x01, 0x66, 0x2E, 0x4C, 0x94, 0x42, 0x3A, 0x80, 0x01, + 0x6E, 0xFD, 0x16, 0x02, 0x1C, 0xFE, 0xB6, 0x01, 0x4A, 0xFE, 0x1A, 0x02, 0x7C, 0xFD, 0x84, 0x02, + 0x02, 0x7A, 0xFD, 0x86, 0x03, 0x13, 0x01, 0x2E, 0x88, 0xE4, 0x88, 0x88, 0xE4, 0xFE, 0x4A, 0x88, + 0xBE, 0xFD, 0x24, 0x7C, 0x7C, 0x03, 0x02, 0xFD, 0x20, 0x6C, 0x78, 0x02, 0x3E, 0xFE, 0xB0, 0x04, + 0x4C, 0xFE, 0xD2, 0x02, 0x74, 0x66, 0x84, 0x3E, 0x76, 0x7C, 0x36, 0x84, 0xFC, 0x74, 0xFE, 0x84, + 0x04, 0x5C, 0x84, 0xAC, 0x84, 0x00, 0x00, 0x11, 0x00, 0x36, 0xFE, 0xF7, 0x07, 0xCE, 0x06, 0x99, + 0x00, 0x0F, 0x00, 0x20, 0x00, 0x2C, 0x00, 0x34, 0x00, 0x44, 0x00, 0x48, 0x00, 0x4E, 0x00, 0x52, + 0x00, 0x56, 0x00, 0x5A, 0x00, 0x5E, 0x00, 0x62, 0x00, 0x66, 0x00, 0x6A, 0x00, 0x6E, 0x00, 0x72, + 0x00, 0x76, 0x01, 0xCA, 0x40, 0xFF, 0x33, 0x2F, 0x2B, 0x27, 0x0E, 0x0A, 0x1A, 0x1B, 0x20, 0x2F, + 0x35, 0x32, 0x27, 0x45, 0x2A, 0x27, 0x4A, 0x37, 0x4A, 0x02, 0x16, 0x4A, 0x01, 0x4A, 0x23, 0x23, + 0x40, 0x0D, 0x10, 0x48, 0x6C, 0x66, 0x72, 0x04, 0x08, 0x47, 0x72, 0x57, 0x72, 0x02, 0x16, 0x72, + 0x26, 0x72, 0x36, 0x72, 0x03, 0x72, 0x00, 0x00, 0x40, 0x12, 0x15, 0x48, 0x37, 0x74, 0x01, 0x16, + 0x74, 0x01, 0x74, 0x4B, 0x6F, 0x4B, 0x7F, 0x4B, 0x02, 0x62, 0x6A, 0x5E, 0x63, 0x6D, 0x47, 0x5E, + 0x57, 0x5E, 0x67, 0x5E, 0x03, 0x26, 0x5E, 0x36, 0x5E, 0x02, 0x17, 0x5E, 0x01, 0x5E, 0x6F, 0xCF, + 0x6F, 0x01, 0x10, 0x6F, 0x20, 0x6F, 0x02, 0x75, 0x4D, 0x25, 0x17, 0x2A, 0x27, 0x2A, 0x02, 0x2A, + 0x21, 0x10, 0x21, 0x01, 0x67, 0x5F, 0x5B, 0x57, 0x5B, 0x01, 0x19, 0x5B, 0x29, 0x5B, 0x02, 0x5B, + 0x0D, 0x30, 0x0D, 0x40, 0x0D, 0x50, 0x0D, 0x03, 0x10, 0x0D, 0x01, 0x12, 0x45, 0x54, 0xA7, 0x45, + 0xB7, 0x45, 0x02, 0x38, 0x45, 0x48, 0x45, 0x02, 0x19, 0x45, 0x29, 0x45, 0x02, 0x45, 0x48, 0x20, + 0x48, 0x30, 0x48, 0x02, 0x37, 0x50, 0x47, 0x50, 0x02, 0x16, 0x50, 0x26, 0x50, 0x02, 0x50, 0x2D, + 0x60, 0x2D, 0x01, 0x2F, 0x2D, 0x3F, 0x2D, 0x02, 0x10, 0x2D, 0x01, 0xC8, 0x5A, 0x01, 0x27, 0x5A, + 0x37, 0x5A, 0x02, 0x16, 0x5A, 0x01, 0x5A, 0x55, 0xC0, 0x55, 0x01, 0x2F, 0x55, 0x3F, 0x55, 0x02, + 0xC8, 0x20, 0x01, 0x27, 0x20, 0x37, 0x20, 0x02, 0x16, 0x20, 0x01, 0x20, 0x57, 0xC0, 0x57, 0x01, + 0x1F, 0x57, 0x2F, 0x57, 0x02, 0xB7, 0x51, 0xC7, 0x51, 0x02, 0x38, 0x51, 0x48, 0x51, 0x02, 0x19, + 0x51, 0x29, 0x51, 0x02, 0x51, 0x32, 0x40, 0x32, 0x50, 0x32, 0x60, 0x32, 0x03, 0x41, 0x3B, 0x35, + 0x38, 0x35, 0x48, 0x35, 0x02, 0xB7, 0x19, 0x35, 0x29, 0x35, 0x02, 0x35, 0x44, 0x44, 0xB8, 0xFF, + 0xC0, 0x40, 0x2D, 0x10, 0x15, 0x48, 0xC7, 0x1B, 0x01, 0x77, 0x1B, 0x01, 0x18, 0x1B, 0x01, 0x1B, + 0x17, 0x06, 0x02, 0x23, 0x00, 0x4B, 0x6F, 0x21, 0x0D, 0x48, 0x2D, 0x55, 0x57, 0x32, 0x44, 0x17, + 0x17, 0x44, 0x32, 0x57, 0x55, 0x2D, 0x48, 0x0D, 0x21, 0x6F, 0x4B, 0x00, 0x23, 0x0D, 0x10, 0x02, + 0xBA, 0x01, 0xF5, 0x00, 0x10, 0x01, 0xF6, 0x00, 0x3F, 0x3F, 0x12, 0x17, 0x39, 0x2F, 0x2F, 0x2F, + 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x11, 0x39, 0x11, 0x33, 0x5D, 0x5D, + 0x5D, 0x2B, 0x11, 0x33, 0x5D, 0x5D, 0x11, 0x33, 0x33, 0x5D, 0x11, 0x33, 0x5D, 0x5D, 0x5D, 0x5D, + 0x5D, 0x11, 0x33, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x11, 0x33, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, + 0x11, 0x33, 0x5D, 0x5D, 0x5D, 0x11, 0x33, 0x5D, 0x5D, 0x5D, 0x33, 0x11, 0x33, 0x5D, 0x5D, 0x11, + 0x33, 0x5D, 0x5D, 0x11, 0x33, 0x33, 0x5D, 0x11, 0x33, 0x5D, 0x33, 0x33, 0x33, 0x5D, 0x5D, 0x11, + 0x33, 0x5D, 0x5D, 0x5D, 0x33, 0x33, 0x11, 0x33, 0x33, 0x5D, 0x11, 0x33, 0x5D, 0x5D, 0x2B, 0x11, + 0x33, 0x5D, 0x5D, 0x33, 0x33, 0x11, 0x33, 0x33, 0x2B, 0x11, 0x33, 0x5D, 0x5D, 0x11, 0x12, 0x39, + 0x11, 0x12, 0x39, 0x11, 0x12, 0x39, 0x11, 0x33, 0x11, 0x33, 0x11, 0x33, 0x30, 0x31, 0x01, 0x21, + 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x21, 0x11, 0x23, 0x35, 0x21, 0x15, 0x23, 0x01, 0x23, + 0x11, 0x21, 0x11, 0x14, 0x23, 0x22, 0x27, 0x26, 0x27, 0x16, 0x33, 0x32, 0x35, 0x35, 0x21, 0x03, + 0x33, 0x11, 0x21, 0x11, 0x33, 0x11, 0x23, 0x35, 0x21, 0x15, 0x23, 0x05, 0x21, 0x11, 0x23, 0x35, + 0x21, 0x15, 0x23, 0x07, 0x21, 0x26, 0x27, 0x37, 0x16, 0x17, 0x33, 0x36, 0x37, 0x17, 0x06, 0x07, + 0x21, 0x15, 0x21, 0x13, 0x21, 0x15, 0x21, 0x01, 0x21, 0x15, 0x33, 0x11, 0x33, 0x01, 0x21, 0x15, + 0x21, 0x01, 0x21, 0x15, 0x21, 0x01, 0x21, 0x35, 0x21, 0x01, 0x33, 0x35, 0x23, 0x05, 0x33, 0x35, + 0x23, 0x35, 0x33, 0x35, 0x23, 0x01, 0x33, 0x35, 0x23, 0x13, 0x23, 0x15, 0x33, 0x21, 0x33, 0x35, + 0x23, 0x05, 0x23, 0x15, 0x33, 0x03, 0xC0, 0x01, 0x1C, 0x70, 0xA8, 0x70, 0x01, 0x1C, 0x74, 0xFD, + 0x28, 0x74, 0xFD, 0x60, 0x78, 0x02, 0x66, 0xB0, 0x36, 0x36, 0x08, 0x10, 0x48, 0x38, 0x3C, 0xFE, + 0x8A, 0xEA, 0x6A, 0x02, 0x74, 0x6A, 0x6C, 0xFD, 0x90, 0x6C, 0x03, 0xAA, 0x03, 0x80, 0x78, 0xFD, + 0x70, 0x78, 0x70, 0x01, 0x4E, 0x28, 0x2C, 0x68, 0x40, 0x32, 0xB4, 0x3A, 0x32, 0x84, 0x36, 0x34, + 0x01, 0x50, 0xFB, 0xA2, 0x30, 0x04, 0x20, 0xFB, 0xE0, 0xFE, 0xFC, 0xFE, 0x7C, 0xFE, 0x86, 0x04, + 0x4C, 0xFD, 0x70, 0x02, 0x90, 0xFB, 0xAE, 0xFE, 0x8A, 0x01, 0x76, 0xFE, 0x8A, 0x01, 0x76, 0xFE, + 0x8A, 0x03, 0x14, 0xA8, 0xA8, 0x01, 0x18, 0xA8, 0xA8, 0xA8, 0xA8, 0x01, 0x18, 0xA8, 0xA8, 0xA8, + 0xA8, 0xA8, 0xFD, 0x28, 0xA8, 0xA8, 0xFD, 0x76, 0x92, 0x92, 0x05, 0xE7, 0xB2, 0xB2, 0xB0, 0xB0, + 0xFD, 0x3A, 0x3E, 0x3E, 0xFB, 0xD6, 0x03, 0xF2, 0xFC, 0xCC, 0xB4, 0x04, 0x4A, 0x52, 0x10, 0x4C, + 0x60, 0x03, 0xCA, 0x02, 0x42, 0xFD, 0xBE, 0xFE, 0xF4, 0x8A, 0x8A, 0xFC, 0xFE, 0x64, 0x34, 0x34, + 0xB2, 0x50, 0x52, 0x2C, 0x6C, 0x62, 0x62, 0x6C, 0x2E, 0x56, 0x4A, 0x74, 0x03, 0xA0, 0x74, 0x03, + 0x62, 0x9A, 0xFE, 0xD6, 0xFD, 0x8A, 0x8C, 0x01, 0x6C, 0x9E, 0xFE, 0xE8, 0x9A, 0x02, 0x72, 0xAA, + 0xAA, 0xAA, 0x64, 0xAA, 0xFE, 0x48, 0xAA, 0x01, 0x0E, 0xAA, 0xAA, 0xC6, 0xB2, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x0A, 0x01, 0x27, 0x00, 0x29, 0x00, 0x53, 0x00, 0x06, 0x00, 0x02, + 0x00, 0x10, 0x00, 0x2F, 0x00, 0x5C, 0x00, 0x00, 0x08, 0xB1, 0x0B, 0xC3, 0x00, 0x03, 0x00, 0x02, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x8B, 0x01, 0x7A, 0x02, 0x41, 0x02, 0x96, 0x03, 0x31, 0x04, 0xF1, + 0x07, 0xDF, 0x09, 0x3D, 0x0A, 0xD9, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x4F, 0x5C, + 0x52, 0x61, 0x2C, 0xA0, 0x5F, 0x0F, 0x3C, 0xF5, 0x20, 0x1B, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xAF, 0xF5, 0x3C, 0xAF, 0x00, 0x00, 0x00, 0x00, 0xE1, 0xFA, 0x83, 0x76, 0xFE, 0xBC, 0xFD, 0xF5, + 0x0A, 0x28, 0x08, 0x4A, 0x00, 0x00, 0x00, 0x09, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x05, 0x94, 0x00, 0xB3, 0x08, 0x00, 0x00, 0xA8, 0x00, 0x12, 0x00, 0x2A, 0x01, 0x38, 0x00, 0x20, + 0x00, 0x1C, 0x00, 0x28, 0x00, 0x32, 0x00, 0x36, 0x00, 0x01, 0x00, 0x00, 0x08, 0x77, 0xFD, 0xE8, + 0x00, 0x00, 0x0A, 0x80, 0xFE, 0xBC, 0xF8, 0x7F, 0x0A, 0x28, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x03, 0x03, 0xDB, + 0x01, 0x90, 0x00, 0x05, 0x00, 0x08, 0x05, 0x9A, 0x05, 0x33, 0x00, 0x00, 0x00, 0xB6, 0x05, 0x9A, + 0x05, 0x33, 0x00, 0x00, 0x02, 0x45, 0x00, 0x66, 0x02, 0x8F, 0x08, 0x05, 0x02, 0x0B, 0x05, 0x03, + 0x02, 0x02, 0x04, 0x02, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4D, 0x53, 0x20, 0x20, 0x00, 0x40, 0x4E, 0x2D, 0x9A, 0xD4, + 0x06, 0x7F, 0xFD, 0xF9, 0x00, 0x09, 0x08, 0x77, 0x02, 0x18, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x04, 0x52, 0x06, 0x0D, 0x00, 0x00, 0x00, 0x20, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, + 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x0C, 0x00, 0xF8, 0x08, 0xFF, 0x00, 0x08, 0x00, 0x09, + 0xFF, 0xFE, 0x00, 0x09, 0x00, 0x0B, 0xFF, 0xFD, 0x00, 0x0A, 0x00, 0x0C, 0xFF, 0xFC, 0x00, 0x0B, + 0x00, 0x0C, 0xFF, 0xFC, 0x00, 0x0C, 0x00, 0x0D, 0xFF, 0xFC, 0x00, 0x0D, 0x00, 0x0F, 0xFF, 0xFC, + 0x00, 0x0E, 0x00, 0x10, 0xFF, 0xFC, 0x00, 0x0F, 0x00, 0x10, 0xFF, 0xFC, 0x00, 0x10, 0x00, 0x11, + 0xFF, 0xFC, 0x00, 0x11, 0x00, 0x12, 0xFF, 0xFB, 0x00, 0x12, 0x00, 0x13, 0xFF, 0xFB, 0x00, 0x13, + 0x00, 0x14, 0xFF, 0xFB, 0x00, 0x14, 0x00, 0x15, 0xFF, 0xFA, 0x00, 0x15, 0x00, 0x16, 0xFF, 0xFA, + 0x00, 0x16, 0x00, 0x18, 0xFF, 0xFA, 0x00, 0x17, 0x00, 0x18, 0xFF, 0xFA, 0x00, 0x18, 0x00, 0x19, + 0xFF, 0xFA, 0x00, 0x19, 0x00, 0x1A, 0xFF, 0xFA, 0x00, 0x1A, 0x00, 0x1C, 0xFF, 0xF9, 0x00, 0x1B, + 0x00, 0x1C, 0xFF, 0xF9, 0x00, 0x1C, 0x00, 0x1D, 0xFF, 0xF9, 0x00, 0x1D, 0x00, 0x1E, 0xFF, 0xF8, + 0x00, 0x1E, 0x00, 0x1F, 0xFF, 0xF8, 0x00, 0x1F, 0x00, 0x20, 0xFF, 0xF8, 0x00, 0x20, 0x00, 0x21, + 0xFF, 0xF8, 0x00, 0x21, 0x00, 0x23, 0xFF, 0xF8, 0x00, 0x22, 0x00, 0x24, 0xFF, 0xF7, 0x00, 0x23, + 0x00, 0x25, 0xFF, 0xF7, 0x00, 0x24, 0x00, 0x25, 0xFF, 0xF7, 0x00, 0x25, 0x00, 0x27, 0xFF, 0xF7, + 0x00, 0x26, 0x00, 0x28, 0xFF, 0xF6, 0x00, 0x27, 0x00, 0x29, 0xFF, 0xF6, 0x00, 0x28, 0x00, 0x2A, + 0xFF, 0xF6, 0x00, 0x29, 0x00, 0x2A, 0xFF, 0xF6, 0x00, 0x2A, 0x00, 0x2C, 0xFF, 0xF5, 0x00, 0x2B, + 0x00, 0x2E, 0xFF, 0xF5, 0x00, 0x2C, 0x00, 0x2E, 0xFF, 0xF5, 0x00, 0x2D, 0x00, 0x2F, 0xFF, 0xF5, + 0x00, 0x2E, 0x00, 0x2F, 0xFF, 0xF4, 0x00, 0x2F, 0x00, 0x30, 0xFF, 0xF4, 0x00, 0x30, 0x00, 0x32, + 0xFF, 0xF4, 0x00, 0x31, 0x00, 0x33, 0xFF, 0xF3, 0x00, 0x32, 0x00, 0x34, 0xFF, 0xF3, 0x00, 0x33, + 0x00, 0x35, 0xFF, 0xF3, 0x00, 0x34, 0x00, 0x36, 0xFF, 0xF3, 0x00, 0x35, 0x00, 0x37, 0xFF, 0xF3, + 0x00, 0x36, 0x00, 0x38, 0xFF, 0xF2, 0x00, 0x37, 0x00, 0x39, 0xFF, 0xF2, 0x00, 0x38, 0x00, 0x3C, + 0xFF, 0xF1, 0x00, 0x39, 0x00, 0x3C, 0xFF, 0xF1, 0x00, 0x3A, 0x00, 0x3D, 0xFF, 0xF1, 0x00, 0x3B, + 0x00, 0x3E, 0xFF, 0xF0, 0x00, 0x3C, 0x00, 0x3E, 0xFF, 0xF0, 0x00, 0x3D, 0x00, 0x40, 0xFF, 0xF0, + 0x00, 0x3E, 0x00, 0x41, 0xFF, 0xF0, 0x00, 0x3F, 0x00, 0x41, 0xFF, 0xEF, 0x00, 0x40, 0x00, 0x42, + 0xFF, 0xEF, 0x00, 0x41, 0x00, 0x43, 0xFF, 0xEF, 0x00, 0x42, 0x00, 0x45, 0xFF, 0xEF, 0x00, 0x43, + 0x00, 0x46, 0xFF, 0xEE, 0x00, 0x44, 0x00, 0x47, 0xFF, 0xEE, 0x00, 0x45, 0x00, 0x47, 0xFF, 0xEE, + 0x00, 0x46, 0x00, 0x48, 0xFF, 0xEE, 0x00, 0x47, 0x00, 0x49, 0xFF, 0xED, 0x00, 0x48, 0x00, 0x4B, + 0xFF, 0xED, 0x00, 0x49, 0x00, 0x4C, 0xFF, 0xED, 0x00, 0x4A, 0x00, 0x4C, 0xFF, 0xED, 0x00, 0x4B, + 0x00, 0x4E, 0xFF, 0xEC, 0x00, 0x4C, 0x00, 0x4F, 0xFF, 0xEC, 0x00, 0x4D, 0x00, 0x51, 0xFF, 0xEC, + 0x00, 0x4E, 0x00, 0x51, 0xFF, 0xEC, 0x00, 0x4F, 0x00, 0x52, 0xFF, 0xEB, 0x00, 0x50, 0x00, 0x53, + 0xFF, 0xEB, 0x00, 0x51, 0x00, 0x54, 0xFF, 0xEB, 0x00, 0x52, 0x00, 0x56, 0xFF, 0xEB, 0x00, 0x53, + 0x00, 0x57, 0xFF, 0xEA, 0x00, 0x54, 0x00, 0x58, 0xFF, 0xEA, 0x00, 0x55, 0x00, 0x59, 0xFF, 0xEA, + 0x00, 0x56, 0x00, 0x59, 0xFF, 0xEA, 0x00, 0x57, 0x00, 0x5A, 0xFF, 0xE9, 0x00, 0x58, 0x00, 0x5B, + 0xFF, 0xE9, 0x00, 0x59, 0x00, 0x5D, 0xFF, 0xE9, 0x00, 0x5A, 0x00, 0x5E, 0xFF, 0xE9, 0x00, 0x5B, + 0x00, 0x5E, 0xFF, 0xE8, 0x00, 0x5C, 0x00, 0x5F, 0xFF, 0xE8, 0x00, 0x5D, 0x00, 0x61, 0xFF, 0xE8, + 0x00, 0x5E, 0x00, 0x61, 0xFF, 0xE8, 0x00, 0x5F, 0x00, 0x63, 0xFF, 0xE7, 0x00, 0x60, 0x00, 0x63, + 0xFF, 0xE7, 0x00, 0x61, 0x00, 0x64, 0xFF, 0xE7, 0x00, 0x62, 0x00, 0x66, 0xFF, 0xE7, 0x00, 0x63, + 0x00, 0x67, 0xFF, 0xE6, 0x00, 0x64, 0x00, 0x69, 0xFF, 0xE6, 0x00, 0x65, 0x00, 0x6A, 0xFF, 0xE6, + 0x00, 0x66, 0x00, 0x6A, 0xFF, 0xE6, 0x00, 0x67, 0x00, 0x6B, 0xFF, 0xE5, 0x00, 0x68, 0x00, 0x6C, + 0xFF, 0xE5, 0x00, 0x69, 0x00, 0x6D, 0xFF, 0xE5, 0x00, 0x6A, 0x00, 0x6E, 0xFF, 0xE5, 0x00, 0x6B, + 0x00, 0x70, 0xFF, 0xE4, 0x00, 0x6C, 0x00, 0x70, 0xFF, 0xE4, 0x00, 0x6D, 0x00, 0x71, 0xFF, 0xE4, + 0x00, 0x6E, 0x00, 0x72, 0xFF, 0xE4, 0x00, 0x6F, 0x00, 0x73, 0xFF, 0xE3, 0x00, 0x70, 0x00, 0x75, + 0xFF, 0xE3, 0x00, 0x71, 0x00, 0x75, 0xFF, 0xE3, 0x00, 0x72, 0x00, 0x76, 0xFF, 0xE3, 0x00, 0x73, + 0x00, 0x77, 0xFF, 0xE2, 0x00, 0x74, 0x00, 0x78, 0xFF, 0xE2, 0x00, 0x75, 0x00, 0x79, 0xFF, 0xE2, + 0x00, 0x76, 0x00, 0x7B, 0xFF, 0xE2, 0x00, 0x77, 0x00, 0x7B, 0xFF, 0xE1, 0x00, 0x78, 0x00, 0x7D, + 0xFF, 0xE1, 0x00, 0x79, 0x00, 0x7E, 0xFF, 0xE1, 0x00, 0x7A, 0x00, 0x7F, 0xFF, 0xE1, 0x00, 0x7B, + 0x00, 0x80, 0xFF, 0xE0, 0x00, 0x7C, 0x00, 0x81, 0xFF, 0xE0, 0x00, 0x7D, 0x00, 0x83, 0xFF, 0xE0, + 0x00, 0x7E, 0x00, 0x83, 0xFF, 0xDF, 0x00, 0x7F, 0x00, 0x84, 0xFF, 0xDF, 0x00, 0x80, 0x00, 0x84, + 0xFF, 0xDF, 0x00, 0x81, 0x00, 0x87, 0xFF, 0xDF, 0x00, 0x82, 0x00, 0x87, 0xFF, 0xDF, 0x00, 0x83, + 0x00, 0x88, 0xFF, 0xDE, 0x00, 0x84, 0x00, 0x89, 0xFF, 0xDE, 0x00, 0x85, 0x00, 0x8A, 0xFF, 0xDE, + 0x00, 0x86, 0x00, 0x8B, 0xFF, 0xDE, 0x00, 0x87, 0x00, 0x8C, 0xFF, 0xDE, 0x00, 0x88, 0x00, 0x8D, + 0xFF, 0xDD, 0x00, 0x89, 0x00, 0x8E, 0xFF, 0xDD, 0x00, 0x8A, 0x00, 0x8F, 0xFF, 0xDD, 0x00, 0x8B, + 0x00, 0x90, 0xFF, 0xDC, 0x00, 0x8C, 0x00, 0x91, 0xFF, 0xDC, 0x00, 0x8D, 0x00, 0x92, 0xFF, 0xDC, + 0x00, 0x8E, 0x00, 0x94, 0xFF, 0xDB, 0x00, 0x8F, 0x00, 0x95, 0xFF, 0xDB, 0x00, 0x90, 0x00, 0x96, + 0xFF, 0xDA, 0x00, 0x91, 0x00, 0x97, 0xFF, 0xDA, 0x00, 0x92, 0x00, 0x98, 0xFF, 0xDB, 0x00, 0x93, + 0x00, 0x99, 0xFF, 0xDB, 0x00, 0x94, 0x00, 0x9A, 0xFF, 0xDA, 0x00, 0x95, 0x00, 0x9A, 0xFF, 0xDA, + 0x00, 0x96, 0x00, 0x9C, 0xFF, 0xDA, 0x00, 0x97, 0x00, 0x9D, 0xFF, 0xDA, 0x00, 0x98, 0x00, 0x9E, + 0xFF, 0xD9, 0x00, 0x99, 0x00, 0x9F, 0xFF, 0xD8, 0x00, 0x9A, 0x00, 0xA0, 0xFF, 0xD8, 0x00, 0x9B, + 0x00, 0xA0, 0xFF, 0xD8, 0x00, 0x9C, 0x00, 0xA2, 0xFF, 0xD7, 0x00, 0x9D, 0x00, 0xA3, 0xFF, 0xD7, + 0x00, 0x9E, 0x00, 0xA4, 0xFF, 0xD8, 0x00, 0x9F, 0x00, 0xA5, 0xFF, 0xD8, 0x00, 0xA0, 0x00, 0xA5, + 0xFF, 0xD7, 0x00, 0xA1, 0x00, 0xA7, 0xFF, 0xD7, 0x00, 0xA2, 0x00, 0xA8, 0xFF, 0xD7, 0x00, 0xA3, + 0x00, 0xA8, 0xFF, 0xD7, 0x00, 0xA4, 0x00, 0xAB, 0xFF, 0xD6, 0x00, 0xA5, 0x00, 0xAC, 0xFF, 0xD5, + 0x00, 0xA6, 0x00, 0xAC, 0xFF, 0xD5, 0x00, 0xA7, 0x00, 0xAD, 0xFF, 0xD5, 0x00, 0xA8, 0x00, 0xAF, + 0xFF, 0xD4, 0x00, 0xA9, 0x00, 0xB0, 0xFF, 0xD4, 0x00, 0xAA, 0x00, 0xB1, 0xFF, 0xD4, 0x00, 0xAB, + 0x00, 0xB1, 0xFF, 0xD4, 0x00, 0xAC, 0x00, 0xB2, 0xFF, 0xD3, 0x00, 0xAD, 0x00, 0xB3, 0xFF, 0xD3, + 0x00, 0xAE, 0x00, 0xB4, 0xFF, 0xD3, 0x00, 0xAF, 0x00, 0xB6, 0xFF, 0xD3, 0x00, 0xB0, 0x00, 0xB7, + 0xFF, 0xD2, 0x00, 0xB1, 0x00, 0xB7, 0xFF, 0xD2, 0x00, 0xB2, 0x00, 0xB8, 0xFF, 0xD2, 0x00, 0xB3, + 0x00, 0xBA, 0xFF, 0xD2, 0x00, 0xB4, 0x00, 0xBA, 0xFF, 0xD1, 0x00, 0xB5, 0x00, 0xBC, 0xFF, 0xD1, + 0x00, 0xB6, 0x00, 0xBD, 0xFF, 0xD1, 0x00, 0xB7, 0x00, 0xBD, 0xFF, 0xD1, 0x00, 0xB8, 0x00, 0xBF, + 0xFF, 0xD0, 0x00, 0xB9, 0x00, 0xBF, 0xFF, 0xD0, 0x00, 0xBA, 0x00, 0xC1, 0xFF, 0xD0, 0x00, 0xBB, + 0x00, 0xC3, 0xFF, 0xD0, 0x00, 0xBC, 0x00, 0xC4, 0xFF, 0xCF, 0x00, 0xBD, 0x00, 0xC4, 0xFF, 0xCF, + 0x00, 0xBE, 0x00, 0xC5, 0xFF, 0xCF, 0x00, 0xBF, 0x00, 0xC6, 0xFF, 0xCF, 0x00, 0xC0, 0x00, 0xC7, + 0xFF, 0xCE, 0x00, 0xC1, 0x00, 0xC9, 0xFF, 0xCE, 0x00, 0xC2, 0x00, 0xC9, 0xFF, 0xCE, 0x00, 0xC3, + 0x00, 0xCA, 0xFF, 0xCE, 0x00, 0xC4, 0x00, 0xCB, 0xFF, 0xCD, 0x00, 0xC5, 0x00, 0xCC, 0xFF, 0xCD, + 0x00, 0xC6, 0x00, 0xCE, 0xFF, 0xCD, 0x00, 0xC7, 0x00, 0xCE, 0xFF, 0xCD, 0x00, 0xC8, 0x00, 0xCF, + 0xFF, 0xCC, 0x00, 0xC9, 0x00, 0xD0, 0xFF, 0xCC, 0x00, 0xCA, 0x00, 0xD1, 0xFF, 0xCC, 0x00, 0xCB, + 0x00, 0xD2, 0xFF, 0xCC, 0x00, 0xCC, 0x00, 0xD4, 0xFF, 0xCB, 0x00, 0xCD, 0x00, 0xD4, 0xFF, 0xCB, + 0x00, 0xCE, 0x00, 0xD6, 0xFF, 0xCB, 0x00, 0xCF, 0x00, 0xD7, 0xFF, 0xCB, 0x00, 0xD0, 0x00, 0xD8, + 0xFF, 0xCA, 0x00, 0xD1, 0x00, 0xD9, 0xFF, 0xCA, 0x00, 0xD2, 0x00, 0xDA, 0xFF, 0xCA, 0x00, 0xD3, + 0x00, 0xDB, 0xFF, 0xCA, 0x00, 0xD4, 0x00, 0xDD, 0xFF, 0xC9, 0x00, 0xD5, 0x00, 0xDD, 0xFF, 0xC9, + 0x00, 0xD6, 0x00, 0xDE, 0xFF, 0xC9, 0x00, 0xD7, 0x00, 0xE0, 0xFF, 0xC9, 0x00, 0xD8, 0x00, 0xE0, + 0xFF, 0xC8, 0x00, 0xD9, 0x00, 0xE1, 0xFF, 0xC8, 0x00, 0xDA, 0x00, 0xE2, 0xFF, 0xC8, 0x00, 0xDB, + 0x00, 0xE3, 0xFF, 0xC8, 0x00, 0xDC, 0x00, 0xE4, 0xFF, 0xC7, 0x00, 0xDD, 0x00, 0xE5, 0xFF, 0xC6, + 0x00, 0xDE, 0x00, 0xE6, 0xFF, 0xC7, 0x00, 0xDF, 0x00, 0xE7, 0xFF, 0xC7, 0x00, 0xE0, 0x00, 0xE8, + 0xFF, 0xC6, 0x00, 0xE1, 0x00, 0xE9, 0xFF, 0xC6, 0x00, 0xE2, 0x00, 0xEB, 0xFF, 0xC6, 0x00, 0xE3, + 0x00, 0xEB, 0xFF, 0xC6, 0x00, 0xE4, 0x00, 0xEC, 0xFF, 0xC5, 0x00, 0xE5, 0x00, 0xEE, 0xFF, 0xC5, + 0x00, 0xE6, 0x00, 0xEF, 0xFF, 0xC5, 0x00, 0xE7, 0x00, 0xF0, 0xFF, 0xC5, 0x00, 0xE8, 0x00, 0xF1, + 0xFF, 0xC4, 0x00, 0xE9, 0x00, 0xF2, 0xFF, 0xC3, 0x00, 0xEA, 0x00, 0xF3, 0xFF, 0xC4, 0x00, 0xEB, + 0x00, 0xF3, 0xFF, 0xC4, 0x00, 0xEC, 0x00, 0xF5, 0xFF, 0xC3, 0x00, 0xED, 0x00, 0xF6, 0xFF, 0xC3, + 0x00, 0xEE, 0x00, 0xF7, 0xFF, 0xC3, 0x00, 0xEF, 0x00, 0xF8, 0xFF, 0xC3, 0x00, 0xF0, 0x00, 0xF9, + 0xFF, 0xC2, 0x00, 0xF1, 0x00, 0xFA, 0xFF, 0xC2, 0x00, 0xF2, 0x00, 0xFB, 0xFF, 0xC2, 0x00, 0xF3, + 0x00, 0xFC, 0xFF, 0xC2, 0x00, 0xF4, 0x00, 0xFD, 0xFF, 0xC1, 0x00, 0xF5, 0x00, 0xFE, 0xFF, 0xC1, + 0x00, 0xF6, 0x00, 0xFF, 0xFF, 0xC1, 0x00, 0xF7, 0x01, 0x00, 0xFF, 0xC1, 0x00, 0xF8, 0x01, 0x01, + 0xFF, 0xC0, 0x00, 0xF9, 0x01, 0x02, 0xFF, 0xC0, 0x00, 0xFA, 0x01, 0x03, 0xFF, 0xC0, 0x00, 0xFB, + 0x01, 0x05, 0xFF, 0xC0, 0x00, 0xFC, 0x01, 0x05, 0xFF, 0xBF, 0x00, 0xFD, 0x01, 0x07, 0xFF, 0xBF, + 0x00, 0xFE, 0x01, 0x08, 0xFF, 0xBF, 0x00, 0xFF, 0x01, 0x09, 0xFF, 0xBF, 0x00, 0x00, 0x00, 0x11, + 0x00, 0x00, 0x00, 0x0C, 0x0B, 0x0B, 0x08, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, + 0x0C, 0x0C, 0x08, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0D, 0x0D, 0x09, 0x0D, + 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0F, 0x0F, 0x0A, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, + 0x0F, 0x0F, 0x0F, 0x0F, 0x10, 0x10, 0x0B, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, + 0x11, 0x11, 0x0C, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x13, 0x13, 0x0D, 0x13, + 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x15, 0x15, 0x0F, 0x15, 0x15, 0x15, 0x15, 0x15, + 0x15, 0x15, 0x15, 0x15, 0x18, 0x18, 0x11, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x1B, 0x1B, 0x13, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1D, 0x1D, 0x14, 0x1D, + 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x20, 0x20, 0x16, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x17, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, + 0x25, 0x25, 0x1A, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x2A, 0x2A, 0x1D, 0x2A, + 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2E, 0x2E, 0x20, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, + 0x2E, 0x2E, 0x2E, 0x2E, 0x32, 0x32, 0x23, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, + 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x14, 0x00, 0x03, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x14, 0x00, 0x04, 0x00, 0x60, 0x00, 0x00, 0x00, 0x14, 0x00, 0x10, 0x00, 0x03, + 0x00, 0x04, 0x4E, 0x2D, 0x4F, 0x53, 0x65, 0x87, 0x65, 0xE5, 0x67, 0x2C, 0x7B, 0x80, 0x7E, 0x41, + 0x8A, 0x9E, 0x9A, 0xD4, 0xFF, 0xFF, 0x00, 0x00, 0x4E, 0x2D, 0x4F, 0x53, 0x65, 0x87, 0x65, 0xE5, + 0x67, 0x2C, 0x7B, 0x80, 0x7E, 0x41, 0x8A, 0x9E, 0x9A, 0xD4, 0xFF, 0xFF, 0xB1, 0xD4, 0xB0, 0xAF, + 0x9A, 0x7C, 0x9A, 0x1F, 0x98, 0xD9, 0x84, 0x86, 0x81, 0xC6, 0x75, 0x6A, 0x65, 0x35, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x40, 0x51, 0x5B, 0x5A, 0x59, 0x54, 0x52, 0x4D, 0x4C, 0x4B, 0x4A, 0x49, + 0x48, 0x47, 0x46, 0x43, 0x42, 0x41, 0x40, 0x3F, 0x3E, 0x3D, 0x3C, 0x3B, 0x3A, 0x39, 0x38, 0x37, + 0x36, 0x35, 0x34, 0x33, 0x32, 0x31, 0x30, 0x2F, 0x2E, 0x2D, 0x2C, 0x2B, 0x2A, 0x29, 0x28, 0x27, + 0x26, 0x25, 0x24, 0x23, 0x22, 0x21, 0x20, 0x1F, 0x1E, 0x1D, 0x1C, 0x1B, 0x1A, 0x19, 0x18, 0x17, + 0x16, 0x15, 0x14, 0x13, 0x12, 0x11, 0x10, 0x0F, 0x0E, 0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08, 0x07, + 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x00, 0x2C, 0x01, 0x18, 0xB0, 0x18, 0x43, 0x58, 0x45, 0x6A, + 0xB0, 0x19, 0x43, 0x60, 0xB0, 0x0C, 0x23, 0x44, 0x23, 0x10, 0x20, 0xB0, 0x0C, 0x4E, 0xF0, 0x4D, + 0x2F, 0xB0, 0x00, 0x12, 0x1B, 0x21, 0x23, 0x11, 0x20, 0x33, 0x2F, 0x59, 0x2D, 0x2C, 0x01, 0x18, + 0xB0, 0x18, 0x43, 0x58, 0xB0, 0x05, 0x2B, 0xB0, 0x00, 0x13, 0x4B, 0xB0, 0x14, 0x50, 0x58, 0xB1, + 0x00, 0x40, 0x38, 0x59, 0xB0, 0x06, 0x2B, 0x1B, 0x21, 0x23, 0x11, 0x20, 0x33, 0x2F, 0x59, 0x2D, + 0x2C, 0x01, 0x18, 0xB0, 0x18, 0x43, 0x58, 0x4E, 0xB0, 0x03, 0x25, 0x10, 0xF2, 0x21, 0xB0, 0x00, + 0x12, 0x4D, 0x1B, 0x20, 0x45, 0xB0, 0x04, 0x25, 0xB0, 0x04, 0x25, 0x23, 0x4A, 0x61, 0x64, 0xB0, + 0x28, 0x52, 0x58, 0x21, 0x23, 0x10, 0xD6, 0x1B, 0xB0, 0x03, 0x25, 0x10, 0xF2, 0x21, 0xB0, 0x00, + 0x12, 0x59, 0x59, 0x2D, 0x2C, 0xB0, 0x1A, 0x43, 0x58, 0x21, 0x21, 0x1B, 0xB0, 0x02, 0x25, 0xB0, + 0x02, 0x25, 0x49, 0xB0, 0x03, 0x25, 0xB0, 0x03, 0x25, 0x4A, 0x61, 0x20, 0x64, 0xB0, 0x10, 0x50, + 0x58, 0x21, 0x21, 0x21, 0x1B, 0xB0, 0x03, 0x25, 0xB0, 0x03, 0x25, 0x49, 0xB0, 0x00, 0x50, 0x58, + 0xB0, 0x00, 0x50, 0x58, 0xB8, 0xFF, 0xE2, 0x38, 0x21, 0x1B, 0xB0, 0x00, 0x38, 0x21, 0x59, 0x1B, + 0xB0, 0x00, 0x52, 0x58, 0xB0, 0x1E, 0x38, 0x21, 0x1B, 0xB0, 0x00, 0x38, 0x21, 0x59, 0x59, 0x59, + 0x59, 0x2D, 0x2C, 0x01, 0x18, 0xB0, 0x18, 0x43, 0x58, 0xB0, 0x05, 0x2B, 0xB0, 0x00, 0x13, 0x4B, + 0xB0, 0x14, 0x50, 0x58, 0xB9, 0x00, 0x00, 0xFF, 0xC0, 0x38, 0x59, 0xB0, 0x06, 0x2B, 0x1B, 0x21, + 0x23, 0x11, 0x20, 0x33, 0x2F, 0x59, 0x2D, 0x2C, 0x4E, 0x01, 0x8A, 0x10, 0xB1, 0x0C, 0x19, 0x43, + 0x44, 0xB0, 0x00, 0x14, 0xB1, 0x00, 0x0C, 0xE2, 0xB0, 0x00, 0x15, 0xB9, 0x00, 0x00, 0xFF, 0xF0, + 0x38, 0x00, 0xB0, 0x00, 0x3C, 0xB0, 0x28, 0x2B, 0xB0, 0x02, 0x25, 0x10, 0xB0, 0x00, 0x3C, 0x2D, + 0x2C, 0x01, 0x18, 0xB0, 0x00, 0x2F, 0xB0, 0x01, 0x14, 0xF2, 0xB0, 0x01, 0x13, 0xB0, 0x01, 0x15, + 0x4D, 0xB0, 0x00, 0x12, 0x2D, 0x2C, 0x01, 0x18, 0xB0, 0x18, 0x43, 0x58, 0xB0, 0x05, 0x2B, 0xB0, + 0x00, 0x13, 0xB9, 0x00, 0x00, 0xFF, 0xE0, 0x38, 0xB0, 0x06, 0x2B, 0x1B, 0x21, 0x23, 0x11, 0x20, + 0x33, 0x2F, 0x59, 0x2D, 0x2C, 0x01, 0x18, 0xB0, 0x18, 0x43, 0x58, 0x45, 0x64, 0x6A, 0x23, 0x45, + 0x64, 0x69, 0xB0, 0x19, 0x43, 0x64, 0x60, 0x60, 0xB0, 0x0C, 0x23, 0x44, 0x23, 0x10, 0x20, 0xB0, + 0x0C, 0xF0, 0x2F, 0xB0, 0x00, 0x12, 0x1B, 0x21, 0x21, 0x20, 0x8A, 0x20, 0x8A, 0x52, 0x58, 0x11, + 0x33, 0x1B, 0x21, 0x21, 0x59, 0x59, 0x2D, 0x2C, 0x01, 0x4B, 0xB0, 0xC8, 0x51, 0x58, 0xB1, 0x0B, + 0x0A, 0x43, 0x23, 0x43, 0x65, 0x0A, 0x59, 0x2D, 0x2C, 0x00, 0x4B, 0xB0, 0xC8, 0x51, 0x58, 0x00, + 0xB1, 0x0A, 0x0B, 0x43, 0x23, 0x43, 0x0B, 0x59, 0x2D, 0x2C, 0x00, 0xB0, 0x0C, 0x23, 0x70, 0xB1, + 0x01, 0x0C, 0x3E, 0x01, 0xB0, 0x0C, 0x23, 0x70, 0xB1, 0x02, 0x0C, 0x45, 0x3A, 0xB1, 0x02, 0x00, + 0x08, 0x0D, 0x2D, 0x2C, 0xB0, 0x12, 0x2B, 0xB0, 0x02, 0x25, 0x45, 0xB0, 0x02, 0x25, 0x45, 0x6A, + 0xB0, 0x40, 0x8B, 0x60, 0xB0, 0x02, 0x25, 0x23, 0x44, 0x21, 0x21, 0x21, 0x2D, 0x2C, 0xB0, 0x13, + 0x2B, 0xB0, 0x02, 0x25, 0x45, 0xB0, 0x02, 0x25, 0x45, 0x6A, 0xB8, 0xFF, 0xC0, 0x8C, 0x60, 0xB0, + 0x02, 0x25, 0x23, 0x44, 0x21, 0x21, 0x21, 0x2D, 0x2C, 0xB0, 0x00, 0xB0, 0x12, 0x2B, 0x21, 0x21, + 0x21, 0x2D, 0x2C, 0xB0, 0x00, 0xB0, 0x13, 0x2B, 0x21, 0x21, 0x21, 0x2D, 0x2C, 0x01, 0x4B, 0xB0, + 0xC8, 0x51, 0x58, 0xB0, 0x06, 0x43, 0xB0, 0x07, 0x43, 0x65, 0x0A, 0x59, 0x2D, 0x2C, 0x20, 0x69, + 0xB0, 0x40, 0x61, 0xB0, 0x00, 0x8B, 0x20, 0xB1, 0x2C, 0xC0, 0x8A, 0x8C, 0xB8, 0x10, 0x00, 0x62, + 0x60, 0x2B, 0x0C, 0x64, 0x23, 0x64, 0x61, 0x5C, 0x58, 0xB0, 0x03, 0x61, 0x59, 0x2D, 0x2C, 0xB1, + 0x00, 0x03, 0x25, 0x45, 0x68, 0x54, 0xB0, 0x1C, 0x4B, 0x50, 0x5A, 0x58, 0xB0, 0x03, 0x25, 0x45, + 0xB0, 0x03, 0x25, 0x45, 0x60, 0x68, 0x20, 0xB0, 0x04, 0x25, 0x23, 0x44, 0xB0, 0x04, 0x25, 0x23, + 0x44, 0x1B, 0xB0, 0x03, 0x25, 0x20, 0x45, 0x68, 0x20, 0x8A, 0x23, 0x44, 0xB0, 0x03, 0x25, 0x45, + 0x68, 0x60, 0xB0, 0x03, 0x25, 0x23, 0x44, 0x59, 0x2D, 0x2C, 0xB0, 0x03, 0x25, 0x20, 0x45, 0x68, + 0x20, 0x8A, 0x23, 0x44, 0xB0, 0x03, 0x25, 0x45, 0x64, 0x68, 0x65, 0x60, 0xB0, 0x04, 0x25, 0xB0, + 0x01, 0x60, 0x23, 0x44, 0x2D, 0x2C, 0xB0, 0x09, 0x43, 0x58, 0x87, 0x21, 0xC0, 0x1B, 0xB0, 0x12, + 0x43, 0x58, 0x87, 0x45, 0xB0, 0x11, 0x2B, 0xB0, 0x0D, 0x23, 0x44, 0xB0, 0x0D, 0x7A, 0xE4, 0x1B, + 0x03, 0x8A, 0x45, 0x18, 0x69, 0x20, 0xB0, 0x0D, 0x23, 0x44, 0x8A, 0x8A, 0x87, 0x20, 0xB0, 0xA0, + 0x51, 0x58, 0xB0, 0x11, 0x2B, 0xB0, 0x0D, 0x23, 0x44, 0xB0, 0x0D, 0x7A, 0xE4, 0x1B, 0x21, 0xB0, + 0x0D, 0x7A, 0xE4, 0x59, 0x59, 0x59, 0x18, 0x2D, 0x2C, 0x20, 0x8A, 0x45, 0x23, 0x45, 0x68, 0x60, + 0x44, 0x2D, 0x2C, 0x45, 0x6A, 0x42, 0x2D, 0x2C, 0x01, 0x18, 0x2F, 0x2D, 0x2C, 0x01, 0x18, 0xB0, + 0x18, 0x43, 0x58, 0xB0, 0x04, 0x25, 0xB0, 0x04, 0x25, 0x49, 0x64, 0x23, 0x45, 0x64, 0x69, 0xB0, + 0x40, 0x8B, 0x61, 0x20, 0xB0, 0x80, 0x62, 0x6A, 0xB0, 0x02, 0x25, 0xB0, 0x02, 0x25, 0x61, 0x8C, + 0xB0, 0x19, 0x43, 0x60, 0xB0, 0x0C, 0x23, 0x44, 0x21, 0x8A, 0x10, 0xB0, 0x0C, 0xF6, 0x21, 0x1B, + 0x21, 0x21, 0x21, 0x21, 0x59, 0x2D, 0x2C, 0x01, 0xB0, 0x18, 0x43, 0x58, 0xB0, 0x02, 0x25, 0x45, + 0xB0, 0x02, 0x25, 0x45, 0x64, 0x60, 0x6A, 0xB0, 0x03, 0x25, 0x45, 0x6A, 0x61, 0x20, 0xB0, 0x04, + 0x25, 0x45, 0x6A, 0x20, 0x8A, 0x8B, 0x65, 0xB0, 0x04, 0x25, 0x23, 0x44, 0x8C, 0xB0, 0x03, 0x25, + 0x23, 0x44, 0x21, 0x21, 0x1B, 0x20, 0x45, 0x6A, 0x44, 0x20, 0x45, 0x6A, 0x44, 0x59, 0x2D, 0x2C, + 0x01, 0x20, 0x45, 0xB0, 0x00, 0x55, 0xB0, 0x18, 0x43, 0x5A, 0x58, 0x45, 0x68, 0x23, 0x45, 0x69, + 0xB0, 0x40, 0x8B, 0x61, 0x20, 0xB0, 0x80, 0x62, 0x6A, 0x20, 0x8A, 0x23, 0x61, 0x20, 0xB0, 0x03, + 0x25, 0x8B, 0x65, 0xB0, 0x04, 0x25, 0x23, 0x44, 0x8C, 0xB0, 0x03, 0x25, 0x23, 0x44, 0x21, 0x21, + 0x1B, 0x21, 0x21, 0xB0, 0x19, 0x2B, 0x59, 0x2D, 0x2C, 0x01, 0x8A, 0x8A, 0x45, 0x64, 0x23, 0x45, + 0x64, 0x61, 0x64, 0x42, 0x2D, 0x2C, 0xB0, 0x04, 0x25, 0xB0, 0x04, 0x25, 0xB0, 0x19, 0x2B, 0xB0, + 0x18, 0x43, 0x58, 0xB0, 0x04, 0x25, 0xB0, 0x04, 0x25, 0xB0, 0x03, 0x25, 0xB0, 0x1B, 0x2B, 0x01, + 0xB0, 0x02, 0x25, 0x43, 0xB0, 0x40, 0x54, 0xB0, 0x02, 0x25, 0x43, 0xB0, 0x00, 0x54, 0x5A, 0x58, + 0xB0, 0x03, 0x25, 0x20, 0x45, 0xB0, 0x40, 0x61, 0x44, 0x59, 0xB0, 0x02, 0x25, 0x43, 0xB0, 0x00, + 0x54, 0xB0, 0x02, 0x25, 0x43, 0xB0, 0x40, 0x54, 0x5A, 0x58, 0xB0, 0x04, 0x25, 0x20, 0x45, 0xB0, + 0x40, 0x60, 0x44, 0x59, 0x59, 0x21, 0x21, 0x21, 0x21, 0x2D, 0x2C, 0xB0, 0x03, 0x25, 0x20, 0xB0, + 0x07, 0x25, 0x87, 0x05, 0x2E, 0x23, 0x20, 0x8A, 0xB0, 0x04, 0x25, 0xB0, 0x07, 0x25, 0xB0, 0x14, + 0x2B, 0x10, 0x21, 0xC4, 0x21, 0x2D, 0x2C, 0xC0, 0x2D, 0x2C, 0x4B, 0x52, 0x58, 0x45, 0x44, 0x1B, + 0x21, 0x21, 0x59, 0x2D, 0x2C, 0xB0, 0x02, 0x43, 0x58, 0x3D, 0xED, 0x18, 0x1B, 0xED, 0x59, 0x2D, + 0x2C, 0x4B, 0x50, 0x58, 0x45, 0x44, 0x1B, 0x21, 0x21, 0x59, 0x2D, 0x2C, 0x01, 0x18, 0x4B, 0x52, + 0x58, 0x8A, 0x2F, 0xED, 0x1B, 0x21, 0x21, 0x21, 0x59, 0x2D, 0x2C, 0x4B, 0x53, 0x23, 0x4B, 0x51, + 0x5A, 0x58, 0xB0, 0x03, 0x25, 0x45, 0x68, 0xB0, 0x03, 0x25, 0x45, 0x68, 0xB0, 0x03, 0x25, 0x60, + 0x54, 0x58, 0x21, 0x21, 0x21, 0x1B, 0xB0, 0x02, 0x25, 0x45, 0x68, 0x60, 0xB0, 0x03, 0x25, 0x23, + 0x44, 0x21, 0x21, 0x59, 0x1B, 0x21, 0x21, 0x21, 0x59, 0x2D, 0x2C, 0xB0, 0x02, 0x43, 0x58, 0x3D, + 0xCD, 0x18, 0x1B, 0xCD, 0x59, 0x2D, 0x2C, 0x46, 0x23, 0x46, 0x60, 0x8A, 0x8A, 0x46, 0x23, 0x20, + 0x46, 0x8A, 0x60, 0x8A, 0x61, 0xB8, 0xFF, 0x80, 0x62, 0x23, 0x20, 0x10, 0x23, 0x8A, 0xB1, 0x0C, + 0x0C, 0x8A, 0x70, 0x45, 0x60, 0x20, 0xB0, 0x00, 0x50, 0x58, 0xB0, 0x01, 0x61, 0xB8, 0xFF, 0xBA, + 0x8B, 0x1B, 0xB0, 0x46, 0x8C, 0x59, 0xB0, 0x10, 0x60, 0x68, 0x01, 0x3A, 0x2D, 0x2C, 0x20, 0x45, + 0xB0, 0x03, 0x25, 0x46, 0x52, 0x4B, 0xB0, 0x13, 0x51, 0x5B, 0x58, 0xB0, 0x02, 0x25, 0x46, 0x20, + 0x68, 0x61, 0xB0, 0x03, 0x25, 0xB0, 0x03, 0x25, 0x3F, 0x23, 0x21, 0x38, 0x1B, 0x21, 0x11, 0x59, + 0x2D, 0x2C, 0x20, 0x45, 0xB0, 0x03, 0x25, 0x46, 0x50, 0x58, 0xB0, 0x02, 0x25, 0x46, 0x20, 0x68, + 0x61, 0xB0, 0x03, 0x25, 0xB0, 0x03, 0x25, 0x3F, 0x23, 0x21, 0x38, 0x1B, 0x21, 0x11, 0x59, 0x2D, + 0x2C, 0x00, 0x4B, 0xB0, 0xC8, 0x51, 0x58, 0x00, 0xB0, 0x07, 0x43, 0xB0, 0x06, 0x43, 0x0B, 0x59, + 0x2D, 0x2C, 0x8A, 0x10, 0xEC, 0x2D, 0x2C, 0xB0, 0x0C, 0x43, 0x58, 0x21, 0x1B, 0x20, 0x46, 0xB0, + 0x00, 0x52, 0x58, 0xB8, 0xFF, 0xF0, 0x38, 0x1B, 0xB0, 0x10, 0x38, 0x59, 0x59, 0x2D, 0x2C, 0x20, + 0xB0, 0x00, 0x55, 0x58, 0xB8, 0x10, 0x00, 0x63, 0xB0, 0x03, 0x25, 0x45, 0x64, 0xB0, 0x03, 0x25, + 0x45, 0x64, 0x61, 0xB0, 0x00, 0x53, 0x58, 0xB0, 0x02, 0x1B, 0xB0, 0x40, 0x61, 0xB0, 0x03, 0x59, + 0x25, 0x45, 0x69, 0x53, 0x58, 0x45, 0x44, 0x1B, 0x21, 0x21, 0x59, 0x1B, 0x21, 0xB0, 0x02, 0x25, + 0x45, 0xB0, 0x02, 0x25, 0x45, 0x61, 0x64, 0xB0, 0x28, 0x51, 0x58, 0x45, 0x44, 0x1B, 0x21, 0x21, + 0x59, 0x59, 0x2D, 0x2C, 0x21, 0x21, 0x0C, 0x64, 0x23, 0x64, 0x8B, 0xB8, 0x40, 0x00, 0x62, 0x2D, + 0x2C, 0x21, 0xB0, 0x80, 0x51, 0x58, 0x0C, 0x64, 0x23, 0x64, 0x8B, 0xB8, 0x20, 0x00, 0x62, 0x1B, + 0xB2, 0x00, 0x40, 0x2F, 0x2B, 0x59, 0xB0, 0x02, 0x60, 0x2D, 0x2C, 0x21, 0xB0, 0xC0, 0x51, 0x58, + 0x0C, 0x64, 0x23, 0x64, 0x8B, 0xB8, 0x15, 0x55, 0x62, 0x1B, 0xB2, 0x00, 0x80, 0x2F, 0x2B, 0x59, + 0xB0, 0x02, 0x60, 0x2D, 0x2C, 0x0C, 0x64, 0x23, 0x64, 0x8B, 0xB8, 0x40, 0x00, 0x62, 0x60, 0x23, + 0x21, 0x2D, 0x2C, 0x18, 0x4B, 0x53, 0x58, 0xB0, 0x04, 0x25, 0xB0, 0x04, 0x25, 0x49, 0x64, 0x23, + 0x45, 0x64, 0x69, 0xB0, 0x40, 0x8B, 0x61, 0x20, 0xB0, 0x80, 0x62, 0x6A, 0xB0, 0x02, 0x25, 0xB0, + 0x02, 0x25, 0x61, 0x8C, 0xB0, 0x0C, 0x23, 0x44, 0x21, 0x8A, 0x10, 0xB0, 0x0C, 0xF6, 0x21, 0x1B, + 0x21, 0x8A, 0x11, 0x23, 0x12, 0x20, 0x39, 0x2F, 0x59, 0x2D, 0x2C, 0xB0, 0x02, 0x25, 0xB0, 0x02, + 0x25, 0x49, 0x64, 0xB0, 0xC0, 0x54, 0x58, 0xB8, 0xFF, 0xF8, 0x38, 0xB0, 0x08, 0x38, 0x1B, 0x21, + 0x21, 0x59, 0x2D, 0x2C, 0xB0, 0x13, 0x43, 0x58, 0x03, 0x1B, 0x02, 0x59, 0x2D, 0x2C, 0xB0, 0x13, + 0x43, 0x58, 0x02, 0x1B, 0x03, 0x59, 0x2D, 0x2C, 0xB0, 0x0A, 0x2B, 0x23, 0x10, 0x20, 0x3C, 0xB0, + 0x17, 0x2B, 0x2D, 0x2C, 0xB0, 0x02, 0x25, 0xB8, 0xFF, 0xF0, 0x38, 0xB0, 0x28, 0x2B, 0x8A, 0x10, + 0x23, 0x20, 0xD0, 0x23, 0xB0, 0x10, 0x2B, 0xB0, 0x05, 0x43, 0x58, 0xC0, 0x1B, 0x3C, 0x59, 0x20, + 0x10, 0x11, 0xB0, 0x00, 0x12, 0x01, 0x2D, 0x2C, 0xB0, 0x48, 0x2B, 0x2D, 0x2C, 0x01, 0xB0, 0x02, + 0x25, 0x10, 0xD0, 0x23, 0xC9, 0x01, 0xB0, 0x01, 0x13, 0xB0, 0x00, 0x14, 0x10, 0xB0, 0x01, 0x3C, + 0xB0, 0x01, 0x16, 0x2D, 0x2C, 0x01, 0xB0, 0x00, 0x13, 0xB0, 0x01, 0xB0, 0x03, 0x25, 0x49, 0xB0, + 0x03, 0x17, 0x38, 0xB0, 0x01, 0x13, 0x2D, 0x2C, 0x4B, 0x53, 0x23, 0x4B, 0x51, 0x5A, 0x58, 0x20, + 0x45, 0x8A, 0x60, 0x44, 0x1B, 0x21, 0x21, 0x59, 0x2D, 0x2C, 0x18, 0x4B, 0x53, 0x58, 0xB0, 0x04, + 0x25, 0xB0, 0x04, 0x25, 0x49, 0x64, 0xB0, 0x03, 0x25, 0xB0, 0x03, 0x25, 0x49, 0x64, 0x68, 0xB0, + 0x40, 0x8B, 0x61, 0x20, 0xB0, 0x80, 0x62, 0x6A, 0xB0, 0x02, 0x25, 0xB0, 0x02, 0x25, 0x61, 0x8C, + 0xB0, 0x0C, 0x23, 0x44, 0x21, 0xB0, 0x04, 0x25, 0x10, 0x23, 0xB0, 0x0C, 0xF6, 0x1B, 0xB0, 0x04, + 0x25, 0xB0, 0x04, 0x25, 0x11, 0x12, 0x23, 0x20, 0x39, 0x2F, 0x59, 0xCC, 0x21, 0x21, 0x2D, 0x2C, + 0x01, 0x18, 0xB0, 0x18, 0x43, 0x58, 0xB0, 0x05, 0x25, 0x46, 0x23, 0x45, 0x64, 0x61, 0x1B, 0x21, + 0xB0, 0x04, 0x25, 0xB0, 0x04, 0x25, 0x4A, 0x59, 0xB0, 0x0E, 0x23, 0x44, 0x23, 0x10, 0xB0, 0x0E, + 0xEC, 0x23, 0x10, 0xB0, 0x0E, 0xEC, 0x2D, 0x2C, 0xB0, 0x1B, 0x43, 0x58, 0x20, 0xB0, 0x01, 0x60, + 0x45, 0xB0, 0x00, 0x51, 0x58, 0x20, 0xB0, 0x01, 0x60, 0x20, 0x45, 0x20, 0x68, 0xB0, 0x00, 0x55, + 0x58, 0xB0, 0x20, 0x60, 0x44, 0x21, 0x1B, 0x21, 0x21, 0x21, 0x59, 0x1B, 0x20, 0xB0, 0x01, 0x60, + 0x20, 0x45, 0x20, 0x68, 0xB0, 0x00, 0x55, 0x58, 0xB8, 0xFF, 0xE0, 0x60, 0x44, 0xB0, 0x1C, 0x4B, + 0x50, 0x58, 0x20, 0x45, 0xB0, 0x20, 0x60, 0x44, 0x1B, 0x21, 0x59, 0x1B, 0x21, 0x21, 0x21, 0x59, + 0x59, 0x1B, 0x21, 0x59, 0x2D, 0x2C, 0xB0, 0x02, 0x25, 0x46, 0x20, 0x68, 0x61, 0xB0, 0x03, 0x25, + 0xB0, 0x03, 0x25, 0x3F, 0x23, 0x21, 0x38, 0x2D, 0x2C, 0x46, 0x23, 0x46, 0x60, 0x8A, 0x8A, 0x46, + 0x23, 0x20, 0x46, 0x8A, 0x60, 0x8A, 0x61, 0xB8, 0xFF, 0x80, 0x62, 0x23, 0x20, 0x10, 0x23, 0x8A, + 0xB1, 0x0C, 0x0C, 0x8A, 0x70, 0x45, 0x60, 0x20, 0xB0, 0x00, 0x50, 0x58, 0xB0, 0x01, 0x61, 0xB8, + 0xFF, 0x80, 0x8B, 0x1B, 0xB0, 0x81, 0x8C, 0x59, 0x68, 0x3A, 0x2D, 0x2C, 0xB0, 0x40, 0x2A, 0x21, + 0x2D, 0x2C, 0x20, 0x35, 0xB0, 0x01, 0x60, 0x2D, 0x2C, 0xB0, 0x02, 0x43, 0x54, 0x58, 0x4B, 0x53, + 0x23, 0x4B, 0x51, 0x5A, 0x58, 0x38, 0x1B, 0x21, 0x21, 0x59, 0x1B, 0x21, 0x21, 0x21, 0x21, 0x59, + 0x2D, 0x2C, 0x49, 0xB0, 0x0E, 0x23, 0x44, 0x2D, 0x2C, 0xB0, 0x02, 0x43, 0x54, 0x58, 0x4B, 0x53, + 0x23, 0x4B, 0x51, 0x5A, 0x58, 0x20, 0x45, 0x8A, 0x60, 0x44, 0x1B, 0x21, 0x21, 0x59, 0x1B, 0x21, + 0x21, 0x21, 0x21, 0x59, 0x2D, 0x2C, 0x4B, 0x53, 0x23, 0x4B, 0x51, 0x5A, 0x58, 0x20, 0x45, 0x8A, + 0x60, 0x44, 0x1B, 0x21, 0x21, 0x59, 0x2D, 0x2C, 0x4B, 0x54, 0x58, 0x20, 0x45, 0x8A, 0x60, 0x44, + 0x1B, 0x21, 0x21, 0x59, 0x2D, 0x2C, 0x4B, 0x53, 0x23, 0x4B, 0x51, 0x5A, 0x58, 0x38, 0x1B, 0x21, + 0x21, 0x59, 0x2D, 0x2C, 0x4B, 0x54, 0x58, 0x38, 0x1B, 0x21, 0x21, 0x59, 0x2D, 0x2C, 0xB0, 0x02, + 0x43, 0x54, 0x58, 0xB0, 0x46, 0x2B, 0x1B, 0x21, 0x21, 0x21, 0x21, 0x59, 0x2D, 0x2C, 0xB0, 0x02, + 0x43, 0x54, 0x58, 0xB0, 0x47, 0x2B, 0x1B, 0x21, 0x21, 0x21, 0x59, 0x2D, 0x2C, 0xB0, 0x02, 0x43, + 0x54, 0x58, 0xB0, 0x48, 0x2B, 0x1B, 0x21, 0x21, 0x21, 0x21, 0x59, 0x2D, 0x2C, 0xB0, 0x02, 0x43, + 0x54, 0x58, 0xB0, 0x49, 0x2B, 0x1B, 0x21, 0x21, 0x21, 0x59, 0x2D, 0x2C, 0x4B, 0x52, 0x58, 0x7D, + 0x1B, 0x7A, 0x59, 0x2D, 0x2C, 0xB1, 0x02, 0x01, 0x42, 0xB1, 0x23, 0x01, 0x88, 0x51, 0xB1, 0x40, + 0x01, 0x88, 0x53, 0x5A, 0x58, 0xB1, 0x02, 0x00, 0x42, 0xB9, 0x10, 0x00, 0x00, 0x20, 0x88, 0x54, + 0x58, 0xB2, 0x02, 0x01, 0x02, 0x43, 0x60, 0x42, 0x59, 0xB1, 0x24, 0x01, 0x88, 0x51, 0x58, 0xB9, + 0x20, 0x00, 0x00, 0x40, 0x88, 0x54, 0x58, 0xB2, 0x02, 0x02, 0x02, 0x43, 0x60, 0x42, 0xB1, 0x24, + 0x01, 0x88, 0x54, 0x58, 0xB2, 0x02, 0x20, 0x02, 0x43, 0x60, 0x42, 0x00, 0x4B, 0x01, 0x4B, 0x52, + 0x58, 0xB2, 0x02, 0x08, 0x02, 0x43, 0x60, 0x42, 0x59, 0x1B, 0xB9, 0x40, 0x00, 0x00, 0x80, 0x88, + 0x54, 0x58, 0xB2, 0x02, 0x04, 0x02, 0x43, 0x60, 0x42, 0x59, 0xB9, 0x40, 0x00, 0x00, 0x80, 0x63, + 0xB8, 0x01, 0x00, 0x88, 0x54, 0x58, 0xB2, 0x02, 0x08, 0x02, 0x43, 0x60, 0x42, 0x59, 0xB9, 0x40, + 0x00, 0x01, 0x00, 0x63, 0xB8, 0x02, 0x00, 0x88, 0x54, 0x58, 0xB2, 0x02, 0x10, 0x02, 0x43, 0x60, + 0x42, 0x59, 0xB1, 0x26, 0x01, 0x88, 0x51, 0x58, 0xB9, 0x40, 0x00, 0x02, 0x00, 0x63, 0xB8, 0x04, + 0x00, 0x88, 0x54, 0x58, 0xB2, 0x02, 0x40, 0x02, 0x43, 0x60, 0x42, 0x59, 0xB9, 0x40, 0x00, 0x04, + 0x00, 0x63, 0xB8, 0x08, 0x00, 0x88, 0x54, 0x58, 0xB2, 0x02, 0x80, 0x02, 0x43, 0x60, 0x42, 0x59, + 0x59, 0x59, 0x59, 0x59, 0x59, 0xB1, 0x00, 0x02, 0x43, 0x54, 0x58, 0x40, 0x0A, 0x05, 0x40, 0x08, + 0x40, 0x09, 0x40, 0x0C, 0x02, 0x0D, 0x02, 0x1B, 0xB1, 0x01, 0x02, 0x43, 0x54, 0x58, 0xB2, 0x05, + 0x40, 0x08, 0xBA, 0x01, 0x00, 0x00, 0x09, 0x01, 0x00, 0xB3, 0x0C, 0x01, 0x0D, 0x01, 0x1B, 0xB1, + 0x80, 0x02, 0x43, 0x52, 0x58, 0xB2, 0x05, 0x40, 0x08, 0xB8, 0x01, 0x80, 0xB1, 0x09, 0x40, 0x1B, + 0xB2, 0x05, 0x40, 0x08, 0xBA, 0x01, 0x80, 0x00, 0x09, 0x01, 0x40, 0x59, 0xB9, 0x40, 0x00, 0x00, + 0x80, 0x88, 0x55, 0xB9, 0x40, 0x00, 0x02, 0x00, 0x63, 0xB8, 0x04, 0x00, 0x88, 0x55, 0x5A, 0x58, + 0xB3, 0x0C, 0x00, 0x0D, 0x01, 0x1B, 0xB3, 0x0C, 0x00, 0x0D, 0x01, 0x59, 0x59, 0x59, 0x42, 0x42, + 0x42, 0x42, 0x42, 0x2D, 0x2C, 0xB0, 0x80, 0xB0, 0x02, 0x43, 0x50, 0xB0, 0x01, 0xB0, 0x02, 0x43, + 0x54, 0x5B, 0x58, 0x21, 0x23, 0x10, 0xB0, 0x20, 0x1A, 0xC9, 0x1B, 0x8A, 0x10, 0xED, 0x59, 0x2D, + 0x2C, 0xB0, 0x59, 0x2B, 0x2D, 0x2C, 0x8A, 0x10, 0xE5, 0x2D, 0x00, 0x00, 0x40, 0x51, 0xDF, 0xE0, + 0x16, 0x17, 0x1C, 0xD4, 0xD5, 0x16, 0x17, 0x1C, 0x7B, 0x7C, 0x16, 0x1B, 0x7B, 0x7C, 0x19, 0xD1, + 0xD2, 0x16, 0x17, 0x1C, 0x76, 0x77, 0x16, 0x17, 0x1C, 0x6D, 0x70, 0x16, 0x17, 0x1C, 0x6C, 0x6F, + 0x16, 0x17, 0x1C, 0x6B, 0x6E, 0x16, 0x1B, 0x6B, 0x6E, 0x7F, 0x72, 0x1A, 0x74, 0x75, 0x14, 0x15, + 0x1C, 0x67, 0x6A, 0x14, 0x15, 0x1C, 0x66, 0x69, 0x14, 0x15, 0x1C, 0x65, 0x68, 0x14, 0x1B, 0x65, + 0x68, 0x85, 0x71, 0x1A, 0x19, 0x73, 0x16, 0x7A, 0x43, 0x19, 0x21, 0x79, 0x43, 0x19, 0x21, 0x41, + 0x36, 0x01, 0x46, 0x01, 0x3C, 0x00, 0x03, 0x00, 0x2B, 0x01, 0x45, 0x01, 0x3C, 0x00, 0x03, 0x00, + 0x2B, 0x01, 0x44, 0x01, 0x3C, 0x00, 0x03, 0x00, 0x2B, 0x01, 0x43, 0x01, 0x3C, 0x00, 0x03, 0x00, + 0x2B, 0x01, 0x42, 0x01, 0x3C, 0x00, 0x03, 0x00, 0x2B, 0x01, 0x41, 0x01, 0x3C, 0x00, 0x03, 0x00, + 0x2B, 0x01, 0x40, 0x01, 0x3C, 0x00, 0x03, 0x00, 0x2B, 0x01, 0x3F, 0x01, 0x3C, 0x00, 0x03, 0x00, + 0x2B, 0x01, 0x3E, 0x01, 0x3C, 0x00, 0x03, 0x00, 0x2B, 0x01, 0x3D, 0x01, 0x3C, 0x00, 0x03, 0x00, + 0x2B, 0x01, 0x3B, 0x01, 0x3C, 0x00, 0x03, 0x00, 0x2B, 0x01, 0x3A, 0x01, 0x3C, 0x00, 0x03, 0x00, + 0x2B, 0x01, 0x39, 0x01, 0x3C, 0x00, 0x02, 0x00, 0x2B, 0x01, 0x33, 0x01, 0x34, 0xB2, 0x03, 0x2B, + 0xC0, 0xB8, 0x01, 0x3C, 0x40, 0x11, 0x01, 0x99, 0x93, 0x02, 0x2B, 0x91, 0x93, 0x02, 0x2B, 0x93, + 0x95, 0x02, 0x2B, 0x96, 0x95, 0x02, 0x2B, 0x41, 0x2E, 0x01, 0x67, 0x01, 0x66, 0x00, 0x03, 0x00, + 0x2B, 0x01, 0x66, 0x01, 0x65, 0x00, 0x03, 0x00, 0x2B, 0x01, 0x65, 0x01, 0x64, 0x00, 0x03, 0x00, + 0x2B, 0x01, 0x64, 0x01, 0x63, 0x00, 0x03, 0x00, 0x2B, 0x01, 0x63, 0x01, 0x62, 0x00, 0x03, 0x00, + 0x2B, 0x01, 0x62, 0x01, 0x61, 0x00, 0x03, 0x00, 0x2B, 0x01, 0x61, 0x01, 0x60, 0x00, 0x03, 0x00, + 0x2B, 0x01, 0x5F, 0x01, 0x60, 0x00, 0x03, 0x00, 0x2B, 0x01, 0x5E, 0x01, 0x60, 0x00, 0x03, 0x00, + 0x2B, 0x01, 0x5D, 0x01, 0x60, 0x00, 0x03, 0x00, 0x2B, 0x01, 0x5C, 0x01, 0x60, 0x00, 0x03, 0x00, + 0x2B, 0x01, 0x5B, 0x01, 0x60, 0x40, 0xA8, 0x03, 0x2B, 0x8A, 0x89, 0x02, 0x2B, 0x89, 0x85, 0x02, + 0x2B, 0x81, 0x7F, 0x02, 0x2B, 0x7D, 0x7F, 0x02, 0x2B, 0x7F, 0x85, 0x02, 0x2B, 0x88, 0x85, 0x01, + 0x2B, 0x87, 0x85, 0x01, 0x2B, 0x84, 0x85, 0x02, 0x2B, 0x83, 0x85, 0x02, 0x2B, 0x1B, 0x37, 0x15, + 0x18, 0x36, 0x15, 0x15, 0x35, 0x15, 0x12, 0x34, 0x15, 0x0F, 0x33, 0x15, 0x0C, 0x32, 0x15, 0x09, + 0x31, 0x15, 0x06, 0x30, 0x15, 0x03, 0x2F, 0x15, 0x00, 0x2E, 0x15, 0x26, 0x27, 0x0E, 0x28, 0x27, + 0x0F, 0x2A, 0x2B, 0x0E, 0x2C, 0x2B, 0x0F, 0x22, 0x23, 0x0E, 0x24, 0x23, 0x0F, 0x1E, 0x1F, 0x0E, + 0x20, 0x1F, 0x0F, 0x0F, 0x10, 0x11, 0x0C, 0x09, 0x0A, 0x0B, 0x0C, 0x06, 0x07, 0x08, 0x0C, 0x03, + 0x04, 0x05, 0x0C, 0x00, 0x01, 0x02, 0x0C, 0x1B, 0x01, 0x1D, 0x0D, 0x18, 0x07, 0x1A, 0x0D, 0x15, + 0x10, 0x17, 0x0D, 0x12, 0x04, 0x14, 0x0D, 0x2F, 0x1B, 0x01, 0x2C, 0x3C, 0x2A, 0x3C, 0x28, 0x3C, + 0x26, 0x3C, 0x24, 0x3C, 0x22, 0x3C, 0x20, 0x3C, 0x1E, 0x3C, 0x1B, 0x3C, 0x18, 0x3C, 0x15, 0x3C, + 0x12, 0x3C, 0x0F, 0x3C, 0x09, 0x3C, 0x06, 0x3C, 0x03, 0x3C, 0x00, 0x3C, 0x50, 0x33, 0x54, 0x01, + 0xB0, 0x12, 0x4B, 0x00, 0x4B, 0x54, 0x42, 0xB0, 0x13, 0x01, 0x4B, 0x00, 0x4B, 0x53, 0x42, 0xB0, + 0x33, 0x2B, 0x4B, 0xB8, 0x03, 0x20, 0x52, 0xB0, 0x32, 0x2B, 0x4B, 0xB0, 0x09, 0x50, 0x5B, 0x58, + 0xB1, 0x01, 0x01, 0x8E, 0x59, 0xB0, 0x33, 0x2B, 0xB0, 0x02, 0x88, 0xB8, 0x01, 0x00, 0x54, 0xB0, + 0x04, 0x88, 0xB8, 0x02, 0x00, 0x54, 0xB0, 0x12, 0x43, 0x5A, 0x5B, 0x58, 0xB8, 0x01, 0x19, 0xB1, + 0x01, 0x01, 0x8E, 0x85, 0x1B, 0xB9, 0x00, 0x01, 0x01, 0x00, 0xB0, 0x4B, 0x60, 0x85, 0x8D, 0x59, + 0x2B, 0x2B, 0x1D, 0xB0, 0x64, 0x4B, 0x53, 0x58, 0xB0, 0x80, 0x1D, 0x59, 0xB0, 0x32, 0x4B, 0x53, + 0x58, 0xB0, 0x90, 0x1D, 0x59, 0x00, 0x4B, 0xB0, 0x32, 0x51, 0xB0, 0x1B, 0x23, 0x42, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x73, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0xB1, + 0x28, 0x26, 0x45, 0xB0, 0x2A, 0x45, 0x61, 0xB0, 0x2C, 0x45, 0x60, 0x44, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x01, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x00, 0x2B, + 0x2B, 0x2B, 0x2B, 0x73, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0xB0, 0x18, 0xB0, 0x3F, 0x4B, 0x53, 0x42, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0xB1, 0x09, 0x32, 0x2B, 0x4B, + 0xB0, 0x50, 0x52, 0x42, 0x4B, 0xB0, 0x08, 0x52, 0x4B, 0xB0, 0x08, 0x50, 0x5B, 0xB0, 0x1A, 0x23, + 0x42, 0x4B, 0xB0, 0xC8, 0x52, 0x4B, 0xB0, 0x36, 0x50, 0x5B, 0xB0, 0x0C, 0x23, 0x42, 0x00, 0x00, + 0x06, 0x64, 0x00, 0x12, 0x00, 0x00, 0x06, 0x0C, 0x00, 0x19, 0x00, 0x00, 0x06, 0x0C, 0x00, 0x19, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x52, + 0x00, 0x1B, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xE7, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xE5, 0x00, 0x00, + 0x00, 0x00, 0xFF, 0xE7, 0x00, 0x00, 0xFE, 0x04, 0xFF, 0xF4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xB2, 0x02, 0xEE, 0x00, 0x82, 0x06, 0x0C, 0x00, 0x19, + 0x02, 0x77, 0xFF, 0xE7, 0x03, 0x95, 0x00, 0x19, 0x00, 0x00, 0xFF, 0xE7, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0xB2, 0xFF, 0x73, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xA0, 0x00, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x96, 0x00, 0x6A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xF5, 0x00, 0xF5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD2, 0x00, 0x00, 0x00, 0xC8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC8, 0x00, 0x00, 0x00, 0xC3, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xC8, 0x00, 0x00, 0x00, 0xC3, 0x00, 0x99, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xB2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA2, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xA3, 0x00, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAA, 0x00, 0x00, + 0x03, 0xAC, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, + 0x00, 0xFF, 0x00, 0xBD, 0x02, 0x12, 0x01, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0x00, 0x98, 0x00, 0x00, + 0x00, 0xE1, 0x00, 0xE1, 0x00, 0x95, 0x00, 0x5C, 0x00, 0x5E, 0x00, 0x5E, 0x00, 0x64, 0x00, 0x64, + 0x00, 0xA7, 0x00, 0xAA, 0x00, 0xA0, 0x00, 0x7C, 0x00, 0x94, 0x00, 0xA0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEB, 0x02, 0x35, + 0x00, 0x80, 0x00, 0x00, 0x00, 0x68, 0x00, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x6E, 0x00, 0x72, 0x00, 0x8E, 0x00, 0x96, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x00, 0x8E, 0x03, 0xB6, 0x00, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x00, 0x4B, 0x00, 0x50, 0x00, 0x55, + 0x00, 0x5A, 0x00, 0x5F, 0x00, 0x64, 0x00, 0x69, 0x00, 0x6E, 0x00, 0x73, 0x00, 0x78, 0x00, 0x7D, + 0x00, 0x82, 0x00, 0x87, 0x00, 0x8C, 0x00, 0x91, 0x00, 0x96, 0x00, 0x9B, 0x00, 0xA0, 0x00, 0xA5, + 0x00, 0xAA, 0x00, 0xAF, 0x00, 0xB4, 0x00, 0xB9, 0x00, 0xBE, 0x00, 0xC3, 0x00, 0xC8, 0x00, 0xE1, + 0x00, 0xE6, 0x00, 0xEB, 0x00, 0xF0, 0x00, 0xF5, 0x00, 0xFA, 0x00, 0xFF, 0x01, 0x04, 0x01, 0x09, + 0x00, 0x46, 0x00, 0x4B, 0x00, 0x50, 0x00, 0x55, 0x00, 0x5A, 0x00, 0x5F, 0x00, 0x64, 0x00, 0x69, + 0x00, 0x6E, 0x00, 0x73, 0x00, 0x78, 0x00, 0x7D, 0x00, 0x82, 0x00, 0x87, 0x00, 0x8C, 0x00, 0x91, + 0x00, 0x96, 0x00, 0x9B, 0x00, 0xA0, 0x00, 0xA5, 0x00, 0xAA, 0x00, 0xAF, 0x00, 0xB4, 0x00, 0xB9, + 0x00, 0xBE, 0x00, 0xC3, 0x00, 0xC8, 0x00, 0xE1, 0x00, 0xE6, 0x00, 0xEB, 0x00, 0xF0, 0x00, 0xF5, + 0x00, 0xFA, 0x00, 0xFF, 0x01, 0x04, 0x01, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 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, 0x90, 0xFF, 0x0B, 0x06, 0x30, + 0xFF, 0x6B, 0x06, 0x60, 0xFF, 0x3B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x5A, 0x00, 0x03, + 0x00, 0x01, 0x04, 0x09, 0x00, 0x00, 0x00, 0xFA, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x04, 0x09, + 0x00, 0x01, 0x00, 0x1E, 0x00, 0xFA, 0x00, 0x03, 0x00, 0x01, 0x04, 0x09, 0x00, 0x02, 0x00, 0x0E, + 0x01, 0x18, 0x00, 0x03, 0x00, 0x01, 0x04, 0x09, 0x00, 0x03, 0x00, 0x2E, 0x01, 0x26, 0x00, 0x03, + 0x00, 0x01, 0x04, 0x09, 0x00, 0x04, 0x00, 0x1E, 0x00, 0xFA, 0x00, 0x03, 0x00, 0x01, 0x04, 0x09, + 0x00, 0x05, 0x00, 0x18, 0x01, 0x54, 0x00, 0x03, 0x00, 0x01, 0x04, 0x09, 0x00, 0x06, 0x00, 0x1C, + 0x01, 0x6C, 0x00, 0xA9, 0x00, 0x20, 0x00, 0x32, 0x00, 0x30, 0x00, 0x32, 0x00, 0x34, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x4D, 0x00, 0x69, 0x00, 0x63, 0x00, 0x72, 0x00, 0x6F, 0x00, 0x73, 0x00, 0x6F, + 0x00, 0x66, 0x00, 0x74, 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, 0x41, 0x00, 0x6C, 0x00, 0x6C, 0x00, 0x20, 0x00, 0x52, 0x00, 0x69, 0x00, 0x67, 0x00, 0x68, + 0x00, 0x74, 0x00, 0x73, 0x00, 0x20, 0x00, 0x52, 0x00, 0x65, 0x00, 0x73, 0x00, 0x65, 0x00, 0x72, + 0x00, 0x76, 0x00, 0x65, 0x00, 0x64, 0x00, 0x2E, 0x00, 0x20, 0x00, 0x50, 0x00, 0x6F, 0x00, 0x72, + 0x00, 0x74, 0x00, 0x69, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x73, 0x00, 0x20, 0x00, 0xA9, 0x00, 0x20, + 0x00, 0x32, 0x00, 0x30, 0x00, 0x32, 0x00, 0x34, 0x00, 0x20, 0x00, 0x42, 0x00, 0x65, 0x00, 0x69, + 0x00, 0x6A, 0x00, 0x69, 0x00, 0x6E, 0x00, 0x67, 0x00, 0x20, 0x00, 0x46, 0x00, 0x6F, 0x00, 0x75, + 0x00, 0x6E, 0x00, 0x64, 0x00, 0x65, 0x00, 0x72, 0x00, 0x20, 0x00, 0x45, 0x00, 0x6C, 0x00, 0x65, + 0x00, 0x63, 0x00, 0x74, 0x00, 0x72, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x69, 0x00, 0x63, 0x00, 0x73, + 0x00, 0x20, 0x00, 0x43, 0x00, 0x6F, 0x00, 0x2E, 0x00, 0x20, 0x00, 0x4C, 0x00, 0x74, 0x00, 0x64, + 0x00, 0x2E, 0x00, 0x20, 0x00, 0x41, 0x00, 0x6C, 0x00, 0x6C, 0x00, 0x20, 0x00, 0x52, 0x00, 0x69, + 0x00, 0x67, 0x00, 0x68, 0x00, 0x74, 0x00, 0x73, 0x00, 0x20, 0x00, 0x52, 0x00, 0x65, 0x00, 0x73, + 0x00, 0x65, 0x00, 0x72, 0x00, 0x76, 0x00, 0x65, 0x00, 0x64, 0x00, 0x2E, 0x00, 0x4D, 0x00, 0x69, + 0x00, 0x63, 0x00, 0x72, 0x00, 0x6F, 0x00, 0x73, 0x00, 0x6F, 0x00, 0x66, 0x00, 0x74, 0x00, 0x20, + 0x00, 0x59, 0x00, 0x61, 0x00, 0x48, 0x00, 0x65, 0x00, 0x69, 0x00, 0x52, 0x00, 0x65, 0x00, 0x67, + 0x00, 0x75, 0x00, 0x6C, 0x00, 0x61, 0x00, 0x72, 0x00, 0x4D, 0x00, 0x69, 0x00, 0x63, 0x00, 0x72, + 0x00, 0x6F, 0x00, 0x73, 0x00, 0x6F, 0x00, 0x66, 0x00, 0x74, 0x00, 0x20, 0x00, 0x59, 0x00, 0x61, + 0x00, 0x48, 0x00, 0x65, 0x00, 0x69, 0x00, 0x20, 0x00, 0x52, 0x00, 0x65, 0x00, 0x67, 0x00, 0x75, + 0x00, 0x6C, 0x00, 0x61, 0x00, 0x72, 0x00, 0x56, 0x00, 0x65, 0x00, 0x72, 0x00, 0x73, 0x00, 0x69, + 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x20, 0x00, 0x36, 0x00, 0x2E, 0x00, 0x33, 0x00, 0x31, 0x00, 0x4D, + 0x00, 0x69, 0x00, 0x63, 0x00, 0x72, 0x00, 0x6F, 0x00, 0x73, 0x00, 0x6F, 0x00, 0x66, 0x00, 0x74, + 0x00, 0x59, 0x00, 0x61, 0x00, 0x48, 0x00, 0x65, 0x00, 0x69, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xFF, 0x4E, 0x00, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x75, 0xB8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x03, + 0x00, 0x08, 0x00, 0x0E, 0x00, 0x15, 0x00, 0x07, 0xFF, 0xFF, 0x00, 0x0B, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x09, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x0C, 0x00, 0x0E, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x22, 0x00, 0x24, 0x00, 0x03, + 0x68, 0x61, 0x6E, 0x69, 0x00, 0x14, 0x6B, 0x61, 0x6E, 0x61, 0x00, 0x14, 0x6C, 0x61, 0x74, 0x6E, + 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x01, 0x0D, + 0x00, 0x22, 0x00, 0x28, 0x00, 0x20, 0x00, 0xAA, 0x00, 0x20, 0x00, 0x26, 0x00, 0x1C, 0x00, 0x1E, + 0x00, 0x34, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x06, 0xCC, 0xFE, 0xCC, 0x00, 0x00, 0x08, 0x00, + 0xFF, 0x27, 0xFF, 0x27, 0x08, 0xD9, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 +}; + +static const unsigned char CJKNames_Korean[] = { + 0x00, 0x01, 0x00, 0x00, 0x00, 0x14, 0x01, 0x00, 0x00, 0x04, 0x00, 0x40, 0x47, 0x44, 0x45, 0x46, + 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x1E, 0xB4, 0x00, 0x00, 0x00, 0x16, 0x47, 0x50, 0x4F, 0x53, + 0x44, 0x76, 0x4C, 0x75, 0x00, 0x00, 0x1E, 0xCC, 0x00, 0x00, 0x00, 0x20, 0x47, 0x53, 0x55, 0x42, + 0x1F, 0x79, 0x29, 0x74, 0x00, 0x00, 0x1E, 0xEC, 0x00, 0x00, 0x00, 0x30, 0x4F, 0x53, 0x2F, 0x32, + 0xF2, 0x1F, 0x4B, 0x85, 0x00, 0x00, 0x04, 0xC8, 0x00, 0x00, 0x00, 0x60, 0x56, 0x44, 0x4D, 0x58, + 0x77, 0x4E, 0x7E, 0xC9, 0x00, 0x00, 0x05, 0x28, 0x00, 0x00, 0x05, 0xE0, 0x63, 0x6D, 0x61, 0x70, + 0xC5, 0xC9, 0x83, 0x33, 0x00, 0x00, 0x0B, 0x08, 0x00, 0x00, 0x00, 0x44, 0x63, 0x76, 0x74, 0x20, + 0x6E, 0x16, 0x78, 0x64, 0x00, 0x00, 0x1A, 0x18, 0x00, 0x00, 0x03, 0x2A, 0x66, 0x70, 0x67, 0x6D, + 0x2C, 0x98, 0xB7, 0x2C, 0x00, 0x00, 0x0B, 0x4C, 0x00, 0x00, 0x0A, 0x06, 0x67, 0x61, 0x73, 0x70, + 0x00, 0x1A, 0x00, 0x27, 0x00, 0x00, 0x1E, 0xA4, 0x00, 0x00, 0x00, 0x10, 0x67, 0x6C, 0x79, 0x66, + 0xD8, 0x9F, 0xD2, 0xA4, 0x00, 0x00, 0x01, 0x4C, 0x00, 0x00, 0x02, 0xE8, 0x68, 0x65, 0x61, 0x64, + 0x1E, 0x80, 0xF5, 0xAF, 0x00, 0x00, 0x04, 0x60, 0x00, 0x00, 0x00, 0x36, 0x68, 0x68, 0x65, 0x61, + 0x0A, 0x7F, 0x06, 0x9A, 0x00, 0x00, 0x04, 0xA4, 0x00, 0x00, 0x00, 0x24, 0x68, 0x6D, 0x74, 0x78, + 0x0E, 0x36, 0x01, 0xBA, 0x00, 0x00, 0x04, 0x98, 0x00, 0x00, 0x00, 0x0C, 0x6C, 0x6F, 0x63, 0x61, + 0x01, 0xD9, 0x00, 0xD8, 0x00, 0x00, 0x04, 0x54, 0x00, 0x00, 0x00, 0x0A, 0x6D, 0x61, 0x78, 0x70, + 0x03, 0xE0, 0x06, 0x83, 0x00, 0x00, 0x04, 0x34, 0x00, 0x00, 0x00, 0x20, 0x6E, 0x61, 0x6D, 0x65, + 0x18, 0x69, 0x32, 0x7C, 0x00, 0x00, 0x1D, 0x44, 0x00, 0x00, 0x01, 0x40, 0x70, 0x6F, 0x73, 0x74, + 0xFE, 0x73, 0x00, 0x77, 0x00, 0x00, 0x1E, 0x84, 0x00, 0x00, 0x00, 0x20, 0x70, 0x72, 0x65, 0x70, + 0xD1, 0xE3, 0x1E, 0xAF, 0x00, 0x00, 0x15, 0x54, 0x00, 0x00, 0x04, 0xC4, 0x76, 0x68, 0x65, 0x61, + 0x0C, 0x42, 0x0C, 0x28, 0x00, 0x00, 0x1F, 0x28, 0x00, 0x00, 0x00, 0x24, 0x76, 0x6D, 0x74, 0x78, + 0x0E, 0xEC, 0x01, 0x69, 0x00, 0x00, 0x1F, 0x1C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x01, 0x00, 0x81, + 0xFF, 0x4C, 0x07, 0x7F, 0x06, 0x96, 0x00, 0x15, 0x00, 0x7B, 0xB2, 0x0B, 0x02, 0x13, 0xB8, 0x01, + 0x65, 0xB3, 0x04, 0x0F, 0x0D, 0x15, 0xB8, 0x01, 0x65, 0x40, 0x10, 0x00, 0x08, 0x0A, 0x00, 0x02, + 0x04, 0x00, 0x00, 0x04, 0x02, 0x03, 0x10, 0x06, 0x10, 0x13, 0x02, 0xB8, 0x01, 0x2F, 0xB2, 0x03, + 0x12, 0x06, 0xB8, 0x01, 0x2F, 0x40, 0x14, 0x07, 0x0F, 0x07, 0xDF, 0x03, 0x01, 0xB0, 0x03, 0x01, + 0x40, 0x07, 0x50, 0x07, 0x02, 0x03, 0x07, 0x03, 0x07, 0x00, 0x0B, 0xBA, 0x01, 0x2F, 0x00, 0x0C, + 0x01, 0x63, 0xB3, 0x6F, 0x00, 0x01, 0x00, 0xB8, 0x01, 0x5F, 0x00, 0x3F, 0x5D, 0x3F, 0xED, 0x12, + 0x39, 0x39, 0x2F, 0x2F, 0x71, 0x71, 0x71, 0x11, 0x33, 0x10, 0xED, 0x32, 0x10, 0xED, 0x33, 0x01, + 0x2F, 0x2F, 0x12, 0x17, 0x39, 0x2F, 0x2F, 0x2F, 0x11, 0x33, 0x33, 0x10, 0xED, 0x32, 0x32, 0x10, + 0xED, 0x11, 0x33, 0x31, 0x30, 0x05, 0x11, 0x21, 0x35, 0x21, 0x11, 0x21, 0x35, 0x21, 0x36, 0x11, + 0x21, 0x35, 0x21, 0x10, 0x03, 0x21, 0x15, 0x21, 0x11, 0x21, 0x11, 0x05, 0xC1, 0xFB, 0xCC, 0x02, + 0x17, 0xFC, 0xDD, 0x05, 0x39, 0x11, 0xFB, 0xE1, 0x04, 0xB4, 0x16, 0x01, 0x35, 0xFC, 0xBA, 0x02, + 0x1D, 0xB4, 0x02, 0x47, 0x86, 0x01, 0x68, 0x85, 0xA3, 0x01, 0x67, 0x86, 0xFE, 0xB2, 0xFE, 0xBE, + 0x85, 0xFE, 0x98, 0xFD, 0x33, 0x00, 0x00, 0x02, 0x00, 0xE9, 0xFF, 0x4C, 0x06, 0xB2, 0x06, 0xD5, + 0x00, 0x12, 0x00, 0x1E, 0x00, 0x74, 0xB1, 0x0C, 0x00, 0xB8, 0x01, 0x66, 0xB3, 0x1C, 0x1C, 0x11, + 0x16, 0xBB, 0x01, 0x65, 0x00, 0x06, 0x00, 0x10, 0x01, 0x65, 0xB2, 0x0D, 0x11, 0x03, 0xB8, 0x01, + 0x2F, 0x40, 0x0A, 0x60, 0x19, 0x01, 0x2F, 0x19, 0x01, 0x19, 0x19, 0x11, 0x00, 0xB8, 0x01, 0x2F, + 0x40, 0x12, 0x2F, 0x0C, 0x3F, 0x0C, 0x7F, 0x0C, 0xAF, 0x0C, 0xBF, 0x0C, 0x05, 0x0C, 0x0C, 0x0E, + 0x6F, 0x11, 0x01, 0x11, 0xBA, 0x01, 0x5F, 0x00, 0x13, 0x01, 0x2F, 0x40, 0x0A, 0x2F, 0x09, 0x3F, + 0x09, 0xFF, 0x09, 0x03, 0x09, 0x09, 0x0E, 0xB8, 0x01, 0x5E, 0x00, 0x3F, 0x33, 0x2F, 0x5D, 0xED, + 0x3F, 0x5D, 0x12, 0x39, 0x2F, 0x5D, 0xED, 0x11, 0x33, 0x2F, 0x5D, 0x5D, 0xED, 0x01, 0x2F, 0x33, + 0xED, 0x2F, 0xED, 0x12, 0x39, 0x2F, 0xED, 0x32, 0x31, 0x30, 0x01, 0x02, 0x00, 0x23, 0x22, 0x00, + 0x11, 0x10, 0x00, 0x33, 0x32, 0x00, 0x13, 0x21, 0x11, 0x33, 0x11, 0x23, 0x11, 0x01, 0x22, 0x02, + 0x15, 0x14, 0x12, 0x33, 0x32, 0x12, 0x35, 0x34, 0x02, 0x04, 0xBA, 0x10, 0xFE, 0xF5, 0xCC, 0xDC, + 0xFE, 0xF2, 0x01, 0x0B, 0xDF, 0xCD, 0x01, 0x08, 0x10, 0x01, 0x65, 0x95, 0x95, 0xFC, 0xB6, 0x9B, + 0xBB, 0xBE, 0x98, 0x96, 0xC0, 0xBC, 0x03, 0x87, 0xFE, 0xE1, 0xFE, 0xCD, 0x01, 0x5F, 0x01, 0x31, + 0x01, 0x34, 0x01, 0x5B, 0xFE, 0xCD, 0xFE, 0xEB, 0x02, 0xC9, 0xF8, 0x77, 0x04, 0x3B, 0x02, 0x48, + 0xFE, 0xE6, 0xF0, 0xEF, 0xFE, 0xE4, 0x01, 0x20, 0xEB, 0xF0, 0x01, 0x1A, 0x00, 0x05, 0x00, 0x8F, + 0xFF, 0x6F, 0x07, 0x8B, 0x06, 0xD5, 0x00, 0x07, 0x00, 0x0F, 0x00, 0x1B, 0x00, 0x27, 0x00, 0x2D, + 0x00, 0xA4, 0xB2, 0x08, 0x13, 0x2B, 0xBE, 0x01, 0x66, 0x00, 0x28, 0x00, 0x0D, 0x01, 0x65, 0x00, + 0x0A, 0x00, 0x19, 0x01, 0x66, 0xB2, 0x25, 0x05, 0x01, 0xB8, 0x01, 0x65, 0x40, 0x10, 0x02, 0x28, + 0x0A, 0x25, 0x0F, 0x02, 0x2D, 0x2D, 0x02, 0x0F, 0x25, 0x0A, 0x28, 0x06, 0x06, 0x1F, 0xB8, 0x01, + 0x66, 0xB5, 0x13, 0x06, 0x29, 0x29, 0x28, 0x10, 0xB8, 0x01, 0x2F, 0xB4, 0x22, 0x02, 0x02, 0x28, + 0x00, 0xBE, 0x01, 0x2F, 0x00, 0x05, 0x00, 0x1C, 0x01, 0x2F, 0x00, 0x16, 0x00, 0x08, 0x01, 0x2F, + 0x40, 0x0F, 0x09, 0x0D, 0x09, 0x4F, 0x09, 0x01, 0x22, 0x05, 0x09, 0x09, 0x05, 0x22, 0x03, 0x03, + 0x2B, 0xBA, 0x01, 0x2F, 0x00, 0x28, 0x01, 0x60, 0xB2, 0x0B, 0x0B, 0x03, 0xB8, 0x01, 0x5E, 0x00, + 0x3F, 0x33, 0x2F, 0x3F, 0xED, 0x12, 0x17, 0x39, 0x2F, 0x2F, 0x2F, 0x5D, 0x11, 0x33, 0x10, 0xFD, + 0xDE, 0xED, 0x10, 0xED, 0x11, 0x39, 0x2F, 0x10, 0xED, 0x11, 0x39, 0x2F, 0x01, 0x2F, 0x2F, 0xED, + 0x12, 0x17, 0x39, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x2F, 0x10, 0xED, 0x32, 0x10, 0xED, 0x10, 0xED, + 0x10, 0xED, 0x10, 0xC6, 0x31, 0x30, 0x01, 0x11, 0x23, 0x11, 0x33, 0x11, 0x21, 0x15, 0x01, 0x35, + 0x21, 0x35, 0x33, 0x15, 0x21, 0x15, 0x01, 0x22, 0x26, 0x35, 0x34, 0x36, 0x33, 0x32, 0x04, 0x15, + 0x14, 0x04, 0x03, 0x22, 0x06, 0x15, 0x14, 0x16, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x01, 0x11, + 0x33, 0x11, 0x21, 0x15, 0x06, 0x68, 0x95, 0x95, 0x01, 0x23, 0xF9, 0x04, 0x01, 0xF2, 0x98, 0x01, + 0xF1, 0xFD, 0xC3, 0xDA, 0xFF, 0xFF, 0xDC, 0xDB, 0x01, 0x00, 0xFE, 0xFF, 0xDA, 0x98, 0xB0, 0xB1, + 0x97, 0x97, 0xB1, 0xB0, 0xFE, 0x6C, 0x93, 0x04, 0x3E, 0x03, 0x64, 0xFD, 0xD5, 0x05, 0x9C, 0xFD, + 0x17, 0x88, 0x01, 0xEA, 0x85, 0xFA, 0xFA, 0x85, 0xFC, 0xC2, 0xD3, 0x9A, 0x98, 0xD2, 0xD1, 0x99, + 0x98, 0xD5, 0x02, 0x58, 0x84, 0x67, 0x68, 0x86, 0x86, 0x68, 0x67, 0x84, 0xFB, 0x07, 0x02, 0x16, + 0xFE, 0x6F, 0x85, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x02, 0x4C, 0x00, 0x31, 0x00, 0x86, + 0x00, 0x08, 0x00, 0x02, 0x00, 0x10, 0x00, 0x2F, 0x00, 0x5C, 0x00, 0x00, 0x03, 0x32, 0x03, 0x7F, + 0x00, 0x04, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x65, 0x00, 0xD8, 0x01, 0x74, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0xB0, 0xA4, 0x5B, 0xD7, 0x18, 0x2C, 0x5F, 0x0F, 0x3C, 0xF5, + 0x20, 0x09, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBE, 0x31, 0x48, 0xAC, 0x00, 0x00, 0x00, 0x00, + 0xDF, 0x65, 0xB1, 0xEA, 0xF8, 0x30, 0xFE, 0x04, 0x09, 0x97, 0x07, 0x73, 0x00, 0x00, 0x00, 0x09, + 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x4D, 0x00, 0xAA, 0x08, 0x00, 0x00, 0x81, + 0x00, 0xE9, 0x00, 0x8F, 0x00, 0x01, 0x00, 0x00, 0x08, 0xB5, 0xFE, 0x11, 0x00, 0x00, 0x09, 0xE8, + 0xF8, 0x30, 0xFE, 0x9E, 0x09, 0x97, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x03, 0xB5, 0x01, 0x90, 0x00, 0x05, + 0x00, 0x08, 0x05, 0x9A, 0x05, 0x33, 0x00, 0x00, 0x01, 0x1D, 0x05, 0x9A, 0x05, 0x33, 0x00, 0x00, + 0x02, 0xBC, 0x00, 0x66, 0x02, 0x73, 0x08, 0x05, 0x02, 0x0B, 0x05, 0x03, 0x02, 0x00, 0x00, 0x02, + 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x4D, 0x53, 0x20, 0x20, 0x00, 0x40, 0xAD, 0x6D, 0xD5, 0x5C, 0x06, 0x66, 0xFE, 0x66, + 0x00, 0x00, 0x08, 0xB5, 0x01, 0xEF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x04, 0x1A, + 0x05, 0xBF, 0x00, 0x00, 0x00, 0x20, 0x00, 0x03, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x00, 0x0C, 0x00, 0xF8, 0x08, 0xFF, 0x00, 0x08, 0x00, 0x09, 0xFF, 0xFE, 0x00, 0x09, + 0x00, 0x09, 0xFF, 0xFD, 0x00, 0x0A, 0x00, 0x09, 0xFF, 0xFD, 0x00, 0x0B, 0x00, 0x0A, 0xFF, 0xFD, + 0x00, 0x0C, 0x00, 0x0C, 0xFF, 0xFD, 0x00, 0x0D, 0x00, 0x0D, 0xFF, 0xFC, 0x00, 0x0E, 0x00, 0x0F, + 0xFF, 0xFC, 0x00, 0x0F, 0x00, 0x10, 0xFF, 0xFC, 0x00, 0x10, 0x00, 0x11, 0xFF, 0xFC, 0x00, 0x11, + 0x00, 0x13, 0xFF, 0xFC, 0x00, 0x12, 0x00, 0x15, 0xFF, 0xFC, 0x00, 0x13, 0x00, 0x14, 0xFF, 0xFB, + 0x00, 0x14, 0x00, 0x17, 0xFF, 0xFB, 0x00, 0x15, 0x00, 0x19, 0xFF, 0xFB, 0x00, 0x16, 0x00, 0x19, + 0xFF, 0xFB, 0x00, 0x17, 0x00, 0x1A, 0xFF, 0xFB, 0x00, 0x18, 0x00, 0x1A, 0xFF, 0xFA, 0x00, 0x19, + 0x00, 0x1D, 0xFF, 0xFA, 0x00, 0x1A, 0x00, 0x1E, 0xFF, 0xFA, 0x00, 0x1B, 0x00, 0x1F, 0xFF, 0xFA, + 0x00, 0x1C, 0x00, 0x1F, 0xFF, 0xF9, 0x00, 0x1D, 0x00, 0x21, 0xFF, 0xF9, 0x00, 0x1E, 0x00, 0x22, + 0xFF, 0xF9, 0x00, 0x1F, 0x00, 0x23, 0xFF, 0xF9, 0x00, 0x20, 0x00, 0x25, 0xFF, 0xF8, 0x00, 0x21, + 0x00, 0x25, 0xFF, 0xF8, 0x00, 0x22, 0x00, 0x26, 0xFF, 0xF8, 0x00, 0x23, 0x00, 0x27, 0xFF, 0xF8, + 0x00, 0x24, 0x00, 0x27, 0xFF, 0xF7, 0x00, 0x25, 0x00, 0x29, 0xFF, 0xF7, 0x00, 0x26, 0x00, 0x2A, + 0xFF, 0xF7, 0x00, 0x27, 0x00, 0x2B, 0xFF, 0xF7, 0x00, 0x28, 0x00, 0x2D, 0xFF, 0xF7, 0x00, 0x29, + 0x00, 0x2D, 0xFF, 0xF6, 0x00, 0x2A, 0x00, 0x2F, 0xFF, 0xF6, 0x00, 0x2B, 0x00, 0x31, 0xFF, 0xF6, + 0x00, 0x2C, 0x00, 0x32, 0xFF, 0xF6, 0x00, 0x2D, 0x00, 0x32, 0xFF, 0xF5, 0x00, 0x2E, 0x00, 0x33, + 0xFF, 0xF5, 0x00, 0x2F, 0x00, 0x33, 0xFF, 0xF5, 0x00, 0x30, 0x00, 0x36, 0xFF, 0xF5, 0x00, 0x31, + 0x00, 0x36, 0xFF, 0xF4, 0x00, 0x32, 0x00, 0x37, 0xFF, 0xF4, 0x00, 0x33, 0x00, 0x37, 0xFF, 0xF3, + 0x00, 0x34, 0x00, 0x39, 0xFF, 0xF3, 0x00, 0x35, 0x00, 0x39, 0xFF, 0xF2, 0x00, 0x36, 0x00, 0x3A, + 0xFF, 0xF2, 0x00, 0x37, 0x00, 0x3C, 0xFF, 0xF2, 0x00, 0x38, 0x00, 0x3C, 0xFF, 0xF2, 0x00, 0x39, + 0x00, 0x3E, 0xFF, 0xF2, 0x00, 0x3A, 0x00, 0x3E, 0xFF, 0xF1, 0x00, 0x3B, 0x00, 0x3F, 0xFF, 0xF1, + 0x00, 0x3C, 0x00, 0x42, 0xFF, 0xF1, 0x00, 0x3D, 0x00, 0x43, 0xFF, 0xF1, 0x00, 0x3E, 0x00, 0x44, + 0xFF, 0xF0, 0x00, 0x3F, 0x00, 0x45, 0xFF, 0xF0, 0x00, 0x40, 0x00, 0x46, 0xFF, 0xF0, 0x00, 0x41, + 0x00, 0x47, 0xFF, 0xF0, 0x00, 0x42, 0x00, 0x47, 0xFF, 0xEF, 0x00, 0x43, 0x00, 0x48, 0xFF, 0xEF, + 0x00, 0x44, 0x00, 0x4A, 0xFF, 0xEF, 0x00, 0x45, 0x00, 0x4B, 0xFF, 0xEF, 0x00, 0x46, 0x00, 0x4B, + 0xFF, 0xEE, 0x00, 0x47, 0x00, 0x4C, 0xFF, 0xEE, 0x00, 0x48, 0x00, 0x4E, 0xFF, 0xEE, 0x00, 0x49, + 0x00, 0x50, 0xFF, 0xEE, 0x00, 0x4A, 0x00, 0x51, 0xFF, 0xEE, 0x00, 0x4B, 0x00, 0x51, 0xFF, 0xED, + 0x00, 0x4C, 0x00, 0x52, 0xFF, 0xED, 0x00, 0x4D, 0x00, 0x53, 0xFF, 0xED, 0x00, 0x4E, 0x00, 0x55, + 0xFF, 0xED, 0x00, 0x4F, 0x00, 0x55, 0xFF, 0xEC, 0x00, 0x50, 0x00, 0x56, 0xFF, 0xEC, 0x00, 0x51, + 0x00, 0x58, 0xFF, 0xEC, 0x00, 0x52, 0x00, 0x59, 0xFF, 0xEC, 0x00, 0x53, 0x00, 0x59, 0xFF, 0xEB, + 0x00, 0x54, 0x00, 0x5B, 0xFF, 0xEB, 0x00, 0x55, 0x00, 0x5C, 0xFF, 0xEB, 0x00, 0x56, 0x00, 0x5D, + 0xFF, 0xEB, 0x00, 0x57, 0x00, 0x5E, 0xFF, 0xEA, 0x00, 0x58, 0x00, 0x5E, 0xFF, 0xEA, 0x00, 0x59, + 0x00, 0x60, 0xFF, 0xEA, 0x00, 0x5A, 0x00, 0x62, 0xFF, 0xEA, 0x00, 0x5B, 0x00, 0x61, 0xFF, 0xE9, + 0x00, 0x5C, 0x00, 0x64, 0xFF, 0xE9, 0x00, 0x5D, 0x00, 0x65, 0xFF, 0xE9, 0x00, 0x5E, 0x00, 0x66, + 0xFF, 0xE9, 0x00, 0x5F, 0x00, 0x68, 0xFF, 0xE9, 0x00, 0x60, 0x00, 0x68, 0xFF, 0xE8, 0x00, 0x61, + 0x00, 0x6A, 0xFF, 0xE8, 0x00, 0x62, 0x00, 0x6A, 0xFF, 0xE8, 0x00, 0x63, 0x00, 0x6B, 0xFF, 0xE8, + 0x00, 0x64, 0x00, 0x6C, 0xFF, 0xE7, 0x00, 0x65, 0x00, 0x6E, 0xFF, 0xE7, 0x00, 0x66, 0x00, 0x6F, + 0xFF, 0xE7, 0x00, 0x67, 0x00, 0x70, 0xFF, 0xE7, 0x00, 0x68, 0x00, 0x71, 0xFF, 0xE6, 0x00, 0x69, + 0x00, 0x72, 0xFF, 0xE6, 0x00, 0x6A, 0x00, 0x73, 0xFF, 0xE6, 0x00, 0x6B, 0x00, 0x74, 0xFF, 0xE6, + 0x00, 0x6C, 0x00, 0x76, 0xFF, 0xE5, 0x00, 0x6D, 0x00, 0x77, 0xFF, 0xE5, 0x00, 0x6E, 0x00, 0x77, + 0xFF, 0xE5, 0x00, 0x6F, 0x00, 0x78, 0xFF, 0xE5, 0x00, 0x70, 0x00, 0x7A, 0xFF, 0xE5, 0x00, 0x71, + 0x00, 0x7A, 0xFF, 0xE4, 0x00, 0x72, 0x00, 0x7C, 0xFF, 0xE4, 0x00, 0x73, 0x00, 0x7C, 0xFF, 0xE4, + 0x00, 0x74, 0x00, 0x7D, 0xFF, 0xE4, 0x00, 0x75, 0x00, 0x7E, 0xFF, 0xE3, 0x00, 0x76, 0x00, 0x7F, + 0xFF, 0xE3, 0x00, 0x77, 0x00, 0x81, 0xFF, 0xE3, 0x00, 0x78, 0x00, 0x82, 0xFF, 0xE3, 0x00, 0x79, + 0x00, 0x83, 0xFF, 0xE2, 0x00, 0x7A, 0x00, 0x83, 0xFF, 0xE2, 0x00, 0x7B, 0x00, 0x84, 0xFF, 0xE1, + 0x00, 0x7C, 0x00, 0x85, 0xFF, 0xE1, 0x00, 0x7D, 0x00, 0x88, 0xFF, 0xE2, 0x00, 0x7E, 0x00, 0x88, + 0xFF, 0xE1, 0x00, 0x7F, 0x00, 0x88, 0xFF, 0xE0, 0x00, 0x80, 0x00, 0x8A, 0xFF, 0xE0, 0x00, 0x81, + 0x00, 0x8B, 0xFF, 0xE0, 0x00, 0x82, 0x00, 0x8D, 0xFF, 0xE0, 0x00, 0x83, 0x00, 0x8D, 0xFF, 0xDF, + 0x00, 0x84, 0x00, 0x8F, 0xFF, 0xDF, 0x00, 0x85, 0x00, 0x8E, 0xFF, 0xDF, 0x00, 0x86, 0x00, 0x90, + 0xFF, 0xDF, 0x00, 0x87, 0x00, 0x90, 0xFF, 0xDE, 0x00, 0x88, 0x00, 0x92, 0xFF, 0xDE, 0x00, 0x89, + 0x00, 0x94, 0xFF, 0xDE, 0x00, 0x8A, 0x00, 0x95, 0xFF, 0xDE, 0x00, 0x8B, 0x00, 0x95, 0xFF, 0xDD, + 0x00, 0x8C, 0x00, 0x97, 0xFF, 0xDD, 0x00, 0x8D, 0x00, 0x98, 0xFF, 0xDD, 0x00, 0x8E, 0x00, 0x9A, + 0xFF, 0xDD, 0x00, 0x8F, 0x00, 0x9A, 0xFF, 0xDC, 0x00, 0x90, 0x00, 0x9B, 0xFF, 0xDC, 0x00, 0x91, + 0x00, 0x9C, 0xFF, 0xDC, 0x00, 0x92, 0x00, 0x9D, 0xFF, 0xDC, 0x00, 0x93, 0x00, 0x9E, 0xFF, 0xDB, + 0x00, 0x94, 0x00, 0xA0, 0xFF, 0xDB, 0x00, 0x95, 0x00, 0xA1, 0xFF, 0xDB, 0x00, 0x96, 0x00, 0xA2, + 0xFF, 0xDB, 0x00, 0x97, 0x00, 0xA2, 0xFF, 0xDA, 0x00, 0x98, 0x00, 0xA4, 0xFF, 0xDA, 0x00, 0x99, + 0x00, 0xA5, 0xFF, 0xDA, 0x00, 0x9A, 0x00, 0xA6, 0xFF, 0xDA, 0x00, 0x9B, 0x00, 0xA6, 0xFF, 0xD9, + 0x00, 0x9C, 0x00, 0xA8, 0xFF, 0xD9, 0x00, 0x9D, 0x00, 0xA9, 0xFF, 0xD9, 0x00, 0x9E, 0x00, 0xAA, + 0xFF, 0xD9, 0x00, 0x9F, 0x00, 0xAC, 0xFF, 0xD9, 0x00, 0xA0, 0x00, 0xAC, 0xFF, 0xD8, 0x00, 0xA1, + 0x00, 0xAE, 0xFF, 0xD8, 0x00, 0xA2, 0x00, 0xAF, 0xFF, 0xD8, 0x00, 0xA3, 0x00, 0xB0, 0xFF, 0xD8, + 0x00, 0xA4, 0x00, 0xB2, 0xFF, 0xD7, 0x00, 0xA5, 0x00, 0xB2, 0xFF, 0xD7, 0x00, 0xA6, 0x00, 0xB3, + 0xFF, 0xD7, 0x00, 0xA7, 0x00, 0xB4, 0xFF, 0xD7, 0x00, 0xA8, 0x00, 0xB4, 0xFF, 0xD6, 0x00, 0xA9, + 0x00, 0xB7, 0xFF, 0xD6, 0x00, 0xAA, 0x00, 0xB8, 0xFF, 0xD6, 0x00, 0xAB, 0x00, 0xB9, 0xFF, 0xD6, + 0x00, 0xAC, 0x00, 0xB9, 0xFF, 0xD5, 0x00, 0xAD, 0x00, 0xBA, 0xFF, 0xD5, 0x00, 0xAE, 0x00, 0xBB, + 0xFF, 0xD5, 0x00, 0xAF, 0x00, 0xBD, 0xFF, 0xD5, 0x00, 0xB0, 0x00, 0xBF, 0xFF, 0xD4, 0x00, 0xB1, + 0x00, 0xBF, 0xFF, 0xD4, 0x00, 0xB2, 0x00, 0xC0, 0xFF, 0xD4, 0x00, 0xB3, 0x00, 0xC1, 0xFF, 0xD4, + 0x00, 0xB4, 0x00, 0xC2, 0xFF, 0xD3, 0x00, 0xB5, 0x00, 0xC3, 0xFF, 0xD3, 0x00, 0xB6, 0x00, 0xC4, + 0xFF, 0xD3, 0x00, 0xB7, 0x00, 0xC6, 0xFF, 0xD3, 0x00, 0xB8, 0x00, 0xC7, 0xFF, 0xD3, 0x00, 0xB9, + 0x00, 0xC7, 0xFF, 0xD2, 0x00, 0xBA, 0x00, 0xC9, 0xFF, 0xD2, 0x00, 0xBB, 0x00, 0xCA, 0xFF, 0xD2, + 0x00, 0xBC, 0x00, 0xCC, 0xFF, 0xD2, 0x00, 0xBD, 0x00, 0xCC, 0xFF, 0xD1, 0x00, 0xBE, 0x00, 0xCC, + 0xFF, 0xD1, 0x00, 0xBF, 0x00, 0xCE, 0xFF, 0xD1, 0x00, 0xC0, 0x00, 0xCF, 0xFF, 0xD1, 0x00, 0xC1, + 0x00, 0xD0, 0xFF, 0xD0, 0x00, 0xC2, 0x00, 0xD1, 0xFF, 0xD0, 0x00, 0xC3, 0x00, 0xD1, 0xFF, 0xD0, + 0x00, 0xC4, 0x00, 0xD3, 0xFF, 0xD0, 0x00, 0xC5, 0x00, 0xD4, 0xFF, 0xCF, 0x00, 0xC6, 0x00, 0xD5, + 0xFF, 0xCF, 0x00, 0xC7, 0x00, 0xD6, 0xFF, 0xCF, 0x00, 0xC8, 0x00, 0xD8, 0xFF, 0xCF, 0x00, 0xC9, + 0x00, 0xD8, 0xFF, 0xCE, 0x00, 0xCA, 0x00, 0xD9, 0xFF, 0xCE, 0x00, 0xCB, 0x00, 0xDA, 0xFF, 0xCE, + 0x00, 0xCC, 0x00, 0xDC, 0xFF, 0xCE, 0x00, 0xCD, 0x00, 0xDD, 0xFF, 0xCD, 0x00, 0xCE, 0x00, 0xDE, + 0xFF, 0xCE, 0x00, 0xCF, 0x00, 0xDF, 0xFF, 0xCE, 0x00, 0xD0, 0x00, 0xE0, 0xFF, 0xCD, 0x00, 0xD1, + 0x00, 0xE1, 0xFF, 0xCC, 0x00, 0xD2, 0x00, 0xE3, 0xFF, 0xCD, 0x00, 0xD3, 0x00, 0xE4, 0xFF, 0xCD, + 0x00, 0xD4, 0x00, 0xE5, 0xFF, 0xCC, 0x00, 0xD5, 0x00, 0xE5, 0xFF, 0xCB, 0x00, 0xD6, 0x00, 0xE7, + 0xFF, 0xCC, 0x00, 0xD7, 0x00, 0xE8, 0xFF, 0xCC, 0x00, 0xD8, 0x00, 0xE9, 0xFF, 0xCB, 0x00, 0xD9, + 0x00, 0xE9, 0xFF, 0xCA, 0x00, 0xDA, 0x00, 0xEC, 0xFF, 0xCB, 0x00, 0xDB, 0x00, 0xED, 0xFF, 0xCB, + 0x00, 0xDC, 0x00, 0xED, 0xFF, 0xCA, 0x00, 0xDD, 0x00, 0xEE, 0xFF, 0xC9, 0x00, 0xDE, 0x00, 0xEF, + 0xFF, 0xC9, 0x00, 0xDF, 0x00, 0xF0, 0xFF, 0xCA, 0x00, 0xE0, 0x00, 0xF2, 0xFF, 0xC9, 0x00, 0xE1, + 0x00, 0xF2, 0xFF, 0xC8, 0x00, 0xE2, 0x00, 0xF5, 0xFF, 0xC8, 0x00, 0xE3, 0x00, 0xF6, 0xFF, 0xC9, + 0x00, 0xE4, 0x00, 0xF6, 0xFF, 0xC8, 0x00, 0xE5, 0x00, 0xF6, 0xFF, 0xC7, 0x00, 0xE6, 0x00, 0xF7, + 0xFF, 0xC7, 0x00, 0xE7, 0x00, 0xFA, 0xFF, 0xC8, 0x00, 0xE8, 0x00, 0xFA, 0xFF, 0xC7, 0x00, 0xE9, + 0x00, 0xFB, 0xFF, 0xC6, 0x00, 0xEA, 0x00, 0xFC, 0xFF, 0xC6, 0x00, 0xEB, 0x00, 0xFD, 0xFF, 0xC7, + 0x00, 0xEC, 0x00, 0xFF, 0xFF, 0xC6, 0x00, 0xED, 0x00, 0xFE, 0xFF, 0xC5, 0x00, 0xEE, 0x01, 0x00, + 0xFF, 0xC5, 0x00, 0xEF, 0x01, 0x02, 0xFF, 0xC5, 0x00, 0xF0, 0x01, 0x04, 0xFF, 0xC6, 0x00, 0xF1, + 0x01, 0x05, 0xFF, 0xC5, 0x00, 0xF2, 0x01, 0x04, 0xFF, 0xC4, 0x00, 0xF3, 0x01, 0x05, 0xFF, 0xC4, + 0x00, 0xF4, 0x01, 0x08, 0xFF, 0xC5, 0x00, 0xF5, 0x01, 0x09, 0xFF, 0xC4, 0x00, 0xF6, 0x01, 0x09, + 0xFF, 0xC3, 0x00, 0xF7, 0x01, 0x0A, 0xFF, 0xC3, 0x00, 0xF8, 0x01, 0x0D, 0xFF, 0xC4, 0x00, 0xF9, + 0x01, 0x0D, 0xFF, 0xC3, 0x00, 0xFA, 0x01, 0x0D, 0xFF, 0xC2, 0x00, 0xFB, 0x01, 0x0E, 0xFF, 0xC2, + 0x00, 0xFC, 0x01, 0x12, 0xFF, 0xC3, 0x00, 0xFD, 0x01, 0x12, 0xFF, 0xC2, 0x00, 0xFE, 0x01, 0x11, + 0xFF, 0xC1, 0x00, 0xFF, 0x01, 0x12, 0xFF, 0xC1, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, + 0x00, 0x00, 0x00, 0x14, 0x00, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, 0x14, 0x00, 0x04, 0x00, 0x30, + 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x02, 0x00, 0x00, 0xAD, 0x6D, 0xC5, 0xB4, 0xD5, 0x5C, + 0xFF, 0xFF, 0x00, 0x00, 0xAD, 0x6D, 0xC5, 0xB4, 0xD5, 0x5C, 0xFF, 0xFF, 0x52, 0x94, 0x3A, 0x4E, + 0x2A, 0xA7, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x51, 0x5B, 0x5A, + 0x59, 0x54, 0x52, 0x4D, 0x4C, 0x4B, 0x4A, 0x49, 0x48, 0x47, 0x46, 0x43, 0x42, 0x41, 0x40, 0x3F, + 0x3E, 0x3D, 0x3C, 0x3B, 0x3A, 0x39, 0x38, 0x37, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31, 0x30, 0x2F, + 0x2E, 0x2D, 0x2C, 0x2B, 0x2A, 0x29, 0x28, 0x27, 0x26, 0x25, 0x24, 0x23, 0x22, 0x21, 0x20, 0x1F, + 0x1E, 0x1D, 0x1C, 0x1B, 0x1A, 0x19, 0x18, 0x17, 0x16, 0x15, 0x14, 0x13, 0x12, 0x11, 0x10, 0x0F, + 0x0E, 0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x00, 0x2C, + 0x01, 0x18, 0xB0, 0x18, 0x43, 0x58, 0x45, 0x6A, 0xB0, 0x19, 0x43, 0x60, 0xB0, 0x0C, 0x23, 0x44, + 0x23, 0x10, 0x20, 0xB0, 0x0C, 0x4E, 0xF0, 0x4D, 0x2F, 0xB0, 0x00, 0x12, 0x1B, 0x21, 0x23, 0x11, + 0x20, 0x33, 0x2F, 0x59, 0x2D, 0x2C, 0x01, 0x18, 0xB0, 0x18, 0x43, 0x58, 0xB0, 0x05, 0x2B, 0xB0, + 0x00, 0x13, 0x4B, 0xB0, 0x14, 0x50, 0x58, 0xB1, 0x00, 0x40, 0x38, 0x59, 0xB0, 0x06, 0x2B, 0x1B, + 0x21, 0x23, 0x11, 0x20, 0x33, 0x2F, 0x59, 0x2D, 0x2C, 0x01, 0x18, 0xB0, 0x18, 0x43, 0x58, 0x4E, + 0xB0, 0x03, 0x25, 0x10, 0xF2, 0x21, 0xB0, 0x00, 0x12, 0x4D, 0x1B, 0x20, 0x45, 0xB0, 0x04, 0x25, + 0xB0, 0x04, 0x25, 0x23, 0x4A, 0x61, 0x64, 0xB0, 0x28, 0x52, 0x58, 0x21, 0x23, 0x10, 0xD6, 0x1B, + 0xB0, 0x03, 0x25, 0x10, 0xF2, 0x21, 0xB0, 0x00, 0x12, 0x59, 0x59, 0x2D, 0x2C, 0xB0, 0x1A, 0x43, + 0x58, 0x21, 0x21, 0x1B, 0xB0, 0x02, 0x25, 0xB0, 0x02, 0x25, 0x49, 0xB0, 0x03, 0x25, 0xB0, 0x03, + 0x25, 0x4A, 0x61, 0x20, 0x64, 0xB0, 0x10, 0x50, 0x58, 0x21, 0x21, 0x21, 0x1B, 0xB0, 0x03, 0x25, + 0xB0, 0x03, 0x25, 0x49, 0xB0, 0x00, 0x50, 0x58, 0xB0, 0x00, 0x50, 0x58, 0xB8, 0xFF, 0xE2, 0x38, + 0x21, 0x1B, 0xB0, 0x00, 0x38, 0x21, 0x59, 0x1B, 0xB0, 0x00, 0x52, 0x58, 0xB0, 0x1E, 0x38, 0x21, + 0x1B, 0xB0, 0x00, 0x38, 0x21, 0x59, 0x59, 0x59, 0x59, 0x2D, 0x2C, 0x01, 0x18, 0xB0, 0x18, 0x43, + 0x58, 0xB0, 0x05, 0x2B, 0xB0, 0x00, 0x13, 0x4B, 0xB0, 0x14, 0x50, 0x58, 0xB9, 0x00, 0x00, 0xFF, + 0xC0, 0x38, 0x59, 0xB0, 0x06, 0x2B, 0x1B, 0x21, 0x23, 0x11, 0x20, 0x33, 0x2F, 0x59, 0x2D, 0x2C, + 0x4E, 0x01, 0x8A, 0x10, 0xB1, 0x0C, 0x19, 0x43, 0x44, 0xB0, 0x00, 0x14, 0xB1, 0x00, 0x0C, 0xE2, + 0xB0, 0x00, 0x15, 0xB9, 0x00, 0x00, 0xFF, 0xF0, 0x38, 0x00, 0xB0, 0x00, 0x3C, 0xB0, 0x28, 0x2B, + 0xB0, 0x02, 0x25, 0x10, 0xB0, 0x00, 0x3C, 0x2D, 0x2C, 0x01, 0x18, 0xB0, 0x00, 0x2F, 0xB0, 0x01, + 0x14, 0xF2, 0xB0, 0x01, 0x13, 0xB0, 0x01, 0x15, 0x4D, 0xB0, 0x00, 0x12, 0x2D, 0x2C, 0x01, 0x18, + 0xB0, 0x18, 0x43, 0x58, 0xB0, 0x05, 0x2B, 0xB0, 0x00, 0x13, 0xB9, 0x00, 0x00, 0xFF, 0xE0, 0x38, + 0xB0, 0x06, 0x2B, 0x1B, 0x21, 0x23, 0x11, 0x20, 0x33, 0x2F, 0x59, 0x2D, 0x2C, 0x01, 0x18, 0xB0, + 0x18, 0x43, 0x58, 0x45, 0x64, 0x6A, 0x23, 0x45, 0x64, 0x69, 0xB0, 0x19, 0x43, 0x64, 0x60, 0x60, + 0xB0, 0x0C, 0x23, 0x44, 0x23, 0x10, 0x20, 0xB0, 0x0C, 0xF0, 0x2F, 0xB0, 0x00, 0x12, 0x1B, 0x21, + 0x21, 0x20, 0x8A, 0x20, 0x8A, 0x52, 0x58, 0x11, 0x33, 0x1B, 0x21, 0x21, 0x59, 0x59, 0x2D, 0x2C, + 0x01, 0x4B, 0xB0, 0xC8, 0x51, 0x58, 0xB1, 0x0B, 0x0A, 0x43, 0x23, 0x43, 0x65, 0x0A, 0x59, 0x2D, + 0x2C, 0x00, 0x4B, 0xB0, 0xC8, 0x51, 0x58, 0x00, 0xB1, 0x0A, 0x0B, 0x43, 0x23, 0x43, 0x0B, 0x59, + 0x2D, 0x2C, 0x00, 0xB0, 0x0C, 0x23, 0x70, 0xB1, 0x01, 0x0C, 0x3E, 0x01, 0xB0, 0x0C, 0x23, 0x70, + 0xB1, 0x02, 0x0C, 0x45, 0x3A, 0xB1, 0x02, 0x00, 0x08, 0x0D, 0x2D, 0x2C, 0xB0, 0x12, 0x2B, 0xB0, + 0x02, 0x25, 0x45, 0xB0, 0x02, 0x25, 0x45, 0x6A, 0xB0, 0x40, 0x8B, 0x60, 0xB0, 0x02, 0x25, 0x23, + 0x44, 0x21, 0x21, 0x21, 0x2D, 0x2C, 0xB0, 0x13, 0x2B, 0xB0, 0x02, 0x25, 0x45, 0xB0, 0x02, 0x25, + 0x45, 0x6A, 0xB8, 0xFF, 0xC0, 0x8C, 0x60, 0xB0, 0x02, 0x25, 0x23, 0x44, 0x21, 0x21, 0x21, 0x2D, + 0x2C, 0xB0, 0x00, 0xB0, 0x12, 0x2B, 0x21, 0x21, 0x21, 0x2D, 0x2C, 0xB0, 0x00, 0xB0, 0x13, 0x2B, + 0x21, 0x21, 0x21, 0x2D, 0x2C, 0x01, 0x4B, 0xB0, 0xC8, 0x51, 0x58, 0xB0, 0x06, 0x43, 0xB0, 0x07, + 0x43, 0x65, 0x0A, 0x59, 0x2D, 0x2C, 0x20, 0x69, 0xB0, 0x40, 0x61, 0xB0, 0x00, 0x8B, 0x20, 0xB1, + 0x2C, 0xC0, 0x8A, 0x8C, 0xB8, 0x10, 0x00, 0x62, 0x60, 0x2B, 0x0C, 0x64, 0x23, 0x64, 0x61, 0x5C, + 0x58, 0xB0, 0x03, 0x61, 0x59, 0x2D, 0x2C, 0xB1, 0x00, 0x03, 0x25, 0x45, 0x68, 0x54, 0xB0, 0x1C, + 0x4B, 0x50, 0x5A, 0x58, 0xB0, 0x03, 0x25, 0x45, 0xB0, 0x03, 0x25, 0x45, 0x60, 0x68, 0x20, 0xB0, + 0x04, 0x25, 0x23, 0x44, 0xB0, 0x04, 0x25, 0x23, 0x44, 0x1B, 0xB0, 0x03, 0x25, 0x20, 0x45, 0x68, + 0x20, 0x8A, 0x23, 0x44, 0xB0, 0x03, 0x25, 0x45, 0x68, 0x60, 0xB0, 0x03, 0x25, 0x23, 0x44, 0x59, + 0x2D, 0x2C, 0xB0, 0x03, 0x25, 0x20, 0x45, 0x68, 0x20, 0x8A, 0x23, 0x44, 0xB0, 0x03, 0x25, 0x45, + 0x64, 0x68, 0x65, 0x60, 0xB0, 0x04, 0x25, 0xB0, 0x01, 0x60, 0x23, 0x44, 0x2D, 0x2C, 0xB0, 0x09, + 0x43, 0x58, 0x87, 0x21, 0xC0, 0x1B, 0xB0, 0x12, 0x43, 0x58, 0x87, 0x45, 0xB0, 0x11, 0x2B, 0xB0, + 0x0D, 0x23, 0x44, 0xB0, 0x0D, 0x7A, 0xE4, 0x1B, 0x03, 0x8A, 0x45, 0x18, 0x69, 0x20, 0xB0, 0x0D, + 0x23, 0x44, 0x8A, 0x8A, 0x87, 0x20, 0xB0, 0xA0, 0x51, 0x58, 0xB0, 0x11, 0x2B, 0xB0, 0x0D, 0x23, + 0x44, 0xB0, 0x0D, 0x7A, 0xE4, 0x1B, 0x21, 0xB0, 0x0D, 0x7A, 0xE4, 0x59, 0x59, 0x59, 0x18, 0x2D, + 0x2C, 0x20, 0x8A, 0x45, 0x23, 0x45, 0x68, 0x60, 0x44, 0x2D, 0x2C, 0x45, 0x6A, 0x42, 0x2D, 0x2C, + 0x01, 0x18, 0x2F, 0x2D, 0x2C, 0x01, 0x18, 0xB0, 0x18, 0x43, 0x58, 0xB0, 0x04, 0x25, 0xB0, 0x04, + 0x25, 0x49, 0x64, 0x23, 0x45, 0x64, 0x69, 0xB0, 0x40, 0x8B, 0x61, 0x20, 0xB0, 0x80, 0x62, 0x6A, + 0xB0, 0x02, 0x25, 0xB0, 0x02, 0x25, 0x61, 0x8C, 0xB0, 0x19, 0x43, 0x60, 0xB0, 0x0C, 0x23, 0x44, + 0x21, 0x8A, 0x10, 0xB0, 0x0C, 0xF6, 0x21, 0x1B, 0x21, 0x21, 0x21, 0x21, 0x59, 0x2D, 0x2C, 0x01, + 0xB0, 0x18, 0x43, 0x58, 0xB0, 0x02, 0x25, 0x45, 0xB0, 0x02, 0x25, 0x45, 0x64, 0x60, 0x6A, 0xB0, + 0x03, 0x25, 0x45, 0x6A, 0x61, 0x20, 0xB0, 0x04, 0x25, 0x45, 0x6A, 0x20, 0x8A, 0x8B, 0x65, 0xB0, + 0x04, 0x25, 0x23, 0x44, 0x8C, 0xB0, 0x03, 0x25, 0x23, 0x44, 0x21, 0x21, 0x1B, 0x20, 0x45, 0x6A, + 0x44, 0x20, 0x45, 0x6A, 0x44, 0x59, 0x2D, 0x2C, 0x01, 0x20, 0x45, 0xB0, 0x00, 0x55, 0xB0, 0x18, + 0x43, 0x5A, 0x58, 0x45, 0x68, 0x23, 0x45, 0x69, 0xB0, 0x40, 0x8B, 0x61, 0x20, 0xB0, 0x80, 0x62, + 0x6A, 0x20, 0x8A, 0x23, 0x61, 0x20, 0xB0, 0x03, 0x25, 0x8B, 0x65, 0xB0, 0x04, 0x25, 0x23, 0x44, + 0x8C, 0xB0, 0x03, 0x25, 0x23, 0x44, 0x21, 0x21, 0x1B, 0x21, 0x21, 0xB0, 0x19, 0x2B, 0x59, 0x2D, + 0x2C, 0x01, 0x8A, 0x8A, 0x45, 0x64, 0x23, 0x45, 0x64, 0x61, 0x64, 0x42, 0x2D, 0x2C, 0xB0, 0x04, + 0x25, 0xB0, 0x04, 0x25, 0xB0, 0x19, 0x2B, 0xB0, 0x18, 0x43, 0x58, 0xB0, 0x04, 0x25, 0xB0, 0x04, + 0x25, 0xB0, 0x03, 0x25, 0xB0, 0x1B, 0x2B, 0x01, 0xB0, 0x02, 0x25, 0x43, 0xB0, 0x40, 0x54, 0xB0, + 0x02, 0x25, 0x43, 0xB0, 0x00, 0x54, 0x5A, 0x58, 0xB0, 0x03, 0x25, 0x20, 0x45, 0xB0, 0x40, 0x61, + 0x44, 0x59, 0xB0, 0x02, 0x25, 0x43, 0xB0, 0x00, 0x54, 0xB0, 0x02, 0x25, 0x43, 0xB0, 0x40, 0x54, + 0x5A, 0x58, 0xB0, 0x04, 0x25, 0x20, 0x45, 0xB0, 0x40, 0x60, 0x44, 0x59, 0x59, 0x21, 0x21, 0x21, + 0x21, 0x2D, 0x2C, 0xB0, 0x03, 0x25, 0x20, 0xB0, 0x07, 0x25, 0x87, 0x05, 0x2E, 0x23, 0x20, 0x8A, + 0xB0, 0x04, 0x25, 0xB0, 0x07, 0x25, 0xB0, 0x14, 0x2B, 0x10, 0x21, 0xC4, 0x21, 0x2D, 0x2C, 0xC0, + 0x2D, 0x2C, 0x4B, 0x52, 0x58, 0x45, 0x44, 0x1B, 0x21, 0x21, 0x59, 0x2D, 0x2C, 0xB0, 0x02, 0x43, + 0x58, 0x3D, 0xED, 0x18, 0x1B, 0xED, 0x59, 0x2D, 0x2C, 0x4B, 0x50, 0x58, 0x45, 0x44, 0x1B, 0x21, + 0x21, 0x59, 0x2D, 0x2C, 0x01, 0x18, 0x4B, 0x52, 0x58, 0x8A, 0x2F, 0xED, 0x1B, 0x21, 0x21, 0x21, + 0x59, 0x2D, 0x2C, 0x4B, 0x53, 0x23, 0x4B, 0x51, 0x5A, 0x58, 0xB0, 0x03, 0x25, 0x45, 0x68, 0xB0, + 0x03, 0x25, 0x45, 0x68, 0xB0, 0x03, 0x25, 0x60, 0x54, 0x58, 0x21, 0x21, 0x21, 0x1B, 0xB0, 0x02, + 0x25, 0x45, 0x68, 0x60, 0xB0, 0x03, 0x25, 0x23, 0x44, 0x21, 0x21, 0x59, 0x1B, 0x21, 0x21, 0x21, + 0x59, 0x2D, 0x2C, 0xB0, 0x02, 0x43, 0x58, 0x3D, 0xCD, 0x18, 0x1B, 0xCD, 0x59, 0x2D, 0x2C, 0x46, + 0x23, 0x46, 0x60, 0x8A, 0x8A, 0x46, 0x23, 0x20, 0x46, 0x8A, 0x60, 0x8A, 0x61, 0xB8, 0xFF, 0x80, + 0x62, 0x23, 0x20, 0x10, 0x23, 0x8A, 0xB1, 0x0C, 0x0C, 0x8A, 0x70, 0x45, 0x60, 0x20, 0xB0, 0x00, + 0x50, 0x58, 0xB0, 0x01, 0x61, 0xB8, 0xFF, 0xBA, 0x8B, 0x1B, 0xB0, 0x46, 0x8C, 0x59, 0xB0, 0x10, + 0x60, 0x68, 0x01, 0x3A, 0x2D, 0x2C, 0x20, 0x45, 0xB0, 0x03, 0x25, 0x46, 0x52, 0x4B, 0xB0, 0x13, + 0x51, 0x5B, 0x58, 0xB0, 0x02, 0x25, 0x46, 0x20, 0x68, 0x61, 0xB0, 0x03, 0x25, 0xB0, 0x03, 0x25, + 0x3F, 0x23, 0x21, 0x38, 0x1B, 0x21, 0x11, 0x59, 0x2D, 0x2C, 0x20, 0x45, 0xB0, 0x03, 0x25, 0x46, + 0x50, 0x58, 0xB0, 0x02, 0x25, 0x46, 0x20, 0x68, 0x61, 0xB0, 0x03, 0x25, 0xB0, 0x03, 0x25, 0x3F, + 0x23, 0x21, 0x38, 0x1B, 0x21, 0x11, 0x59, 0x2D, 0x2C, 0x00, 0x4B, 0xB0, 0xC8, 0x51, 0x58, 0x00, + 0xB0, 0x07, 0x43, 0xB0, 0x06, 0x43, 0x0B, 0x59, 0x2D, 0x2C, 0x8A, 0x10, 0xEC, 0x2D, 0x2C, 0xB0, + 0x0C, 0x43, 0x58, 0x21, 0x1B, 0x20, 0x46, 0xB0, 0x00, 0x52, 0x58, 0xB8, 0xFF, 0xF0, 0x38, 0x1B, + 0xB0, 0x10, 0x38, 0x59, 0x59, 0x2D, 0x2C, 0x20, 0xB0, 0x00, 0x55, 0x58, 0xB8, 0x10, 0x00, 0x63, + 0xB0, 0x03, 0x25, 0x45, 0x64, 0xB0, 0x03, 0x25, 0x45, 0x64, 0x61, 0xB0, 0x00, 0x53, 0x58, 0xB0, + 0x02, 0x1B, 0xB0, 0x40, 0x61, 0xB0, 0x03, 0x59, 0x25, 0x45, 0x69, 0x53, 0x58, 0x45, 0x44, 0x1B, + 0x21, 0x21, 0x59, 0x1B, 0x21, 0xB0, 0x02, 0x25, 0x45, 0xB0, 0x02, 0x25, 0x45, 0x61, 0x64, 0xB0, + 0x28, 0x51, 0x58, 0x45, 0x44, 0x1B, 0x21, 0x21, 0x59, 0x59, 0x2D, 0x2C, 0x21, 0x21, 0x0C, 0x64, + 0x23, 0x64, 0x8B, 0xB8, 0x40, 0x00, 0x62, 0x2D, 0x2C, 0x21, 0xB0, 0x80, 0x51, 0x58, 0x0C, 0x64, + 0x23, 0x64, 0x8B, 0xB8, 0x20, 0x00, 0x62, 0x1B, 0xB2, 0x00, 0x40, 0x2F, 0x2B, 0x59, 0xB0, 0x02, + 0x60, 0x2D, 0x2C, 0x21, 0xB0, 0xC0, 0x51, 0x58, 0x0C, 0x64, 0x23, 0x64, 0x8B, 0xB8, 0x15, 0x55, + 0x62, 0x1B, 0xB2, 0x00, 0x80, 0x2F, 0x2B, 0x59, 0xB0, 0x02, 0x60, 0x2D, 0x2C, 0x0C, 0x64, 0x23, + 0x64, 0x8B, 0xB8, 0x40, 0x00, 0x62, 0x60, 0x23, 0x21, 0x2D, 0x2C, 0x18, 0x4B, 0x53, 0x58, 0xB0, + 0x04, 0x25, 0xB0, 0x04, 0x25, 0x49, 0x64, 0x23, 0x45, 0x64, 0x69, 0xB0, 0x40, 0x8B, 0x61, 0x20, + 0xB0, 0x80, 0x62, 0x6A, 0xB0, 0x02, 0x25, 0xB0, 0x02, 0x25, 0x61, 0x8C, 0xB0, 0x0C, 0x23, 0x44, + 0x21, 0x8A, 0x10, 0xB0, 0x0C, 0xF6, 0x21, 0x1B, 0x21, 0x8A, 0x11, 0x23, 0x12, 0x20, 0x39, 0x2F, + 0x59, 0x2D, 0x2C, 0xB0, 0x02, 0x25, 0xB0, 0x02, 0x25, 0x49, 0x64, 0xB0, 0xC0, 0x54, 0x58, 0xB8, + 0xFF, 0xF8, 0x38, 0xB0, 0x08, 0x38, 0x1B, 0x21, 0x21, 0x59, 0x2D, 0x2C, 0xB0, 0x13, 0x43, 0x58, + 0x03, 0x1B, 0x02, 0x59, 0x2D, 0x2C, 0xB0, 0x13, 0x43, 0x58, 0x02, 0x1B, 0x03, 0x59, 0x2D, 0x2C, + 0xB0, 0x0A, 0x2B, 0x23, 0x10, 0x20, 0x3C, 0xB0, 0x17, 0x2B, 0x2D, 0x2C, 0xB0, 0x02, 0x25, 0xB8, + 0xFF, 0xF0, 0x38, 0xB0, 0x28, 0x2B, 0x8A, 0x10, 0x23, 0x20, 0xD0, 0x23, 0xB0, 0x10, 0x2B, 0xB0, + 0x05, 0x43, 0x58, 0xC0, 0x1B, 0x3C, 0x59, 0x20, 0x10, 0x11, 0xB0, 0x00, 0x12, 0x01, 0x2D, 0x2C, + 0xB0, 0x48, 0x2B, 0x2D, 0x2C, 0x01, 0xB0, 0x02, 0x25, 0x10, 0xD0, 0x23, 0xC9, 0x01, 0xB0, 0x01, + 0x13, 0xB0, 0x00, 0x14, 0x10, 0xB0, 0x01, 0x3C, 0xB0, 0x01, 0x16, 0x2D, 0x2C, 0x01, 0xB0, 0x00, + 0x13, 0xB0, 0x01, 0xB0, 0x03, 0x25, 0x49, 0xB0, 0x03, 0x17, 0x38, 0xB0, 0x01, 0x13, 0x2D, 0x2C, + 0x4B, 0x53, 0x23, 0x4B, 0x51, 0x5A, 0x58, 0x20, 0x45, 0x8A, 0x60, 0x44, 0x1B, 0x21, 0x21, 0x59, + 0x2D, 0x2C, 0x18, 0x4B, 0x53, 0x58, 0xB0, 0x04, 0x25, 0xB0, 0x04, 0x25, 0x49, 0x64, 0xB0, 0x03, + 0x25, 0xB0, 0x03, 0x25, 0x49, 0x64, 0x68, 0xB0, 0x40, 0x8B, 0x61, 0x20, 0xB0, 0x80, 0x62, 0x6A, + 0xB0, 0x02, 0x25, 0xB0, 0x02, 0x25, 0x61, 0x8C, 0xB0, 0x0C, 0x23, 0x44, 0x21, 0xB0, 0x04, 0x25, + 0x10, 0x23, 0xB0, 0x0C, 0xF6, 0x1B, 0xB0, 0x04, 0x25, 0xB0, 0x04, 0x25, 0x11, 0x12, 0x23, 0x20, + 0x39, 0x2F, 0x59, 0xCC, 0x21, 0x21, 0x2D, 0x2C, 0x01, 0x18, 0xB0, 0x18, 0x43, 0x58, 0xB0, 0x05, + 0x25, 0x46, 0x23, 0x45, 0x64, 0x61, 0x1B, 0x21, 0xB0, 0x04, 0x25, 0xB0, 0x04, 0x25, 0x4A, 0x59, + 0xB0, 0x0E, 0x23, 0x44, 0x23, 0x10, 0xB0, 0x0E, 0xEC, 0x23, 0x10, 0xB0, 0x0E, 0xEC, 0x2D, 0x2C, + 0xB0, 0x1B, 0x43, 0x58, 0x20, 0xB0, 0x01, 0x60, 0x45, 0xB0, 0x00, 0x51, 0x58, 0x20, 0xB0, 0x01, + 0x60, 0x20, 0x45, 0x20, 0x68, 0xB0, 0x00, 0x55, 0x58, 0xB0, 0x20, 0x60, 0x44, 0x21, 0x1B, 0x21, + 0x21, 0x21, 0x59, 0x1B, 0x20, 0xB0, 0x01, 0x60, 0x20, 0x45, 0x20, 0x68, 0xB0, 0x00, 0x55, 0x58, + 0xB8, 0xFF, 0xE0, 0x60, 0x44, 0xB0, 0x1C, 0x4B, 0x50, 0x58, 0x20, 0x45, 0xB0, 0x20, 0x60, 0x44, + 0x1B, 0x21, 0x59, 0x1B, 0x21, 0x21, 0x21, 0x59, 0x59, 0x1B, 0x21, 0x59, 0x2D, 0x2C, 0xB0, 0x02, + 0x25, 0x46, 0x20, 0x68, 0x61, 0xB0, 0x03, 0x25, 0xB0, 0x03, 0x25, 0x3F, 0x23, 0x21, 0x38, 0x2D, + 0x2C, 0x46, 0x23, 0x46, 0x60, 0x8A, 0x8A, 0x46, 0x23, 0x20, 0x46, 0x8A, 0x60, 0x8A, 0x61, 0xB8, + 0xFF, 0x80, 0x62, 0x23, 0x20, 0x10, 0x23, 0x8A, 0xB1, 0x0C, 0x0C, 0x8A, 0x70, 0x45, 0x60, 0x20, + 0xB0, 0x00, 0x50, 0x58, 0xB0, 0x01, 0x61, 0xB8, 0xFF, 0x80, 0x8B, 0x1B, 0xB0, 0x81, 0x8C, 0x59, + 0x68, 0x3A, 0x2D, 0x2C, 0xB0, 0x40, 0x2A, 0x21, 0x2D, 0x2C, 0x20, 0x35, 0xB0, 0x01, 0x60, 0x2D, + 0x2C, 0xB0, 0x02, 0x43, 0x54, 0x58, 0x4B, 0x53, 0x23, 0x4B, 0x51, 0x5A, 0x58, 0x38, 0x1B, 0x21, + 0x21, 0x59, 0x1B, 0x21, 0x21, 0x21, 0x21, 0x59, 0x2D, 0x2C, 0x49, 0xB0, 0x0E, 0x23, 0x44, 0x2D, + 0x2C, 0xB0, 0x02, 0x43, 0x54, 0x58, 0x4B, 0x53, 0x23, 0x4B, 0x51, 0x5A, 0x58, 0x20, 0x45, 0x8A, + 0x60, 0x44, 0x1B, 0x21, 0x21, 0x59, 0x1B, 0x21, 0x21, 0x21, 0x21, 0x59, 0x2D, 0x2C, 0x4B, 0x53, + 0x23, 0x4B, 0x51, 0x5A, 0x58, 0x20, 0x45, 0x8A, 0x60, 0x44, 0x1B, 0x21, 0x21, 0x59, 0x2D, 0x2C, + 0x4B, 0x54, 0x58, 0x20, 0x45, 0x8A, 0x60, 0x44, 0x1B, 0x21, 0x21, 0x59, 0x2D, 0x2C, 0x4B, 0x53, + 0x23, 0x4B, 0x51, 0x5A, 0x58, 0x38, 0x1B, 0x21, 0x21, 0x59, 0x2D, 0x2C, 0x4B, 0x54, 0x58, 0x38, + 0x1B, 0x21, 0x21, 0x59, 0x2D, 0x2C, 0xB0, 0x02, 0x43, 0x54, 0x58, 0xB0, 0x46, 0x2B, 0x1B, 0x21, + 0x21, 0x21, 0x21, 0x59, 0x2D, 0x2C, 0xB0, 0x02, 0x43, 0x54, 0x58, 0xB0, 0x47, 0x2B, 0x1B, 0x21, + 0x21, 0x21, 0x59, 0x2D, 0x2C, 0xB0, 0x02, 0x43, 0x54, 0x58, 0xB0, 0x48, 0x2B, 0x1B, 0x21, 0x21, + 0x21, 0x21, 0x59, 0x2D, 0x2C, 0xB0, 0x02, 0x43, 0x54, 0x58, 0xB0, 0x49, 0x2B, 0x1B, 0x21, 0x21, + 0x21, 0x59, 0x2D, 0x2C, 0x4B, 0x52, 0x58, 0x7D, 0x1B, 0x7A, 0x59, 0x2D, 0x2C, 0xB1, 0x02, 0x01, + 0x42, 0xB1, 0x23, 0x01, 0x88, 0x51, 0xB1, 0x40, 0x01, 0x88, 0x53, 0x5A, 0x58, 0xB1, 0x02, 0x00, + 0x42, 0xB9, 0x10, 0x00, 0x00, 0x20, 0x88, 0x54, 0x58, 0xB2, 0x02, 0x01, 0x02, 0x43, 0x60, 0x42, + 0x59, 0xB1, 0x24, 0x01, 0x88, 0x51, 0x58, 0xB9, 0x20, 0x00, 0x00, 0x40, 0x88, 0x54, 0x58, 0xB2, + 0x02, 0x02, 0x02, 0x43, 0x60, 0x42, 0xB1, 0x24, 0x01, 0x88, 0x54, 0x58, 0xB2, 0x02, 0x20, 0x02, + 0x43, 0x60, 0x42, 0x00, 0x4B, 0x01, 0x4B, 0x52, 0x58, 0xB2, 0x02, 0x08, 0x02, 0x43, 0x60, 0x42, + 0x59, 0x1B, 0xB9, 0x40, 0x00, 0x00, 0x80, 0x88, 0x54, 0x58, 0xB2, 0x02, 0x04, 0x02, 0x43, 0x60, + 0x42, 0x59, 0xB9, 0x40, 0x00, 0x00, 0x80, 0x63, 0xB8, 0x01, 0x00, 0x88, 0x54, 0x58, 0xB2, 0x02, + 0x08, 0x02, 0x43, 0x60, 0x42, 0x59, 0xB9, 0x40, 0x00, 0x01, 0x00, 0x63, 0xB8, 0x02, 0x00, 0x88, + 0x54, 0x58, 0xB2, 0x02, 0x10, 0x02, 0x43, 0x60, 0x42, 0x59, 0xB1, 0x26, 0x01, 0x88, 0x51, 0x58, + 0xB9, 0x40, 0x00, 0x02, 0x00, 0x63, 0xB8, 0x04, 0x00, 0x88, 0x54, 0x58, 0xB2, 0x02, 0x40, 0x02, + 0x43, 0x60, 0x42, 0x59, 0xB9, 0x40, 0x00, 0x04, 0x00, 0x63, 0xB8, 0x08, 0x00, 0x88, 0x54, 0x58, + 0xB2, 0x02, 0x80, 0x02, 0x43, 0x60, 0x42, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0xB1, 0x00, 0x02, + 0x43, 0x54, 0x58, 0x40, 0x0A, 0x05, 0x40, 0x08, 0x40, 0x09, 0x40, 0x0C, 0x02, 0x0D, 0x02, 0x1B, + 0xB1, 0x01, 0x02, 0x43, 0x54, 0x58, 0xB2, 0x05, 0x40, 0x08, 0xBA, 0x01, 0x00, 0x00, 0x09, 0x01, + 0x00, 0xB3, 0x0C, 0x01, 0x0D, 0x01, 0x1B, 0xB1, 0x80, 0x02, 0x43, 0x52, 0x58, 0xB2, 0x05, 0x40, + 0x08, 0xB8, 0x01, 0x80, 0xB1, 0x09, 0x40, 0x1B, 0xB2, 0x05, 0x40, 0x08, 0xBA, 0x01, 0x80, 0x00, + 0x09, 0x01, 0x40, 0x59, 0xB9, 0x40, 0x00, 0x00, 0x80, 0x88, 0x55, 0xB9, 0x40, 0x00, 0x02, 0x00, + 0x63, 0xB8, 0x04, 0x00, 0x88, 0x55, 0x5A, 0x58, 0xB3, 0x0C, 0x00, 0x0D, 0x01, 0x1B, 0xB3, 0x0C, + 0x00, 0x0D, 0x01, 0x59, 0x59, 0x59, 0x42, 0x42, 0x42, 0x42, 0x42, 0x2D, 0x2C, 0xB0, 0x80, 0xB0, + 0x02, 0x43, 0x50, 0xB0, 0x01, 0xB0, 0x02, 0x43, 0x54, 0x5B, 0x58, 0x21, 0x23, 0x10, 0xB0, 0x20, + 0x1A, 0xC9, 0x1B, 0x8A, 0x10, 0xED, 0x59, 0x2D, 0x2C, 0xB0, 0x59, 0x2B, 0x2D, 0x2C, 0x8A, 0x10, + 0xE5, 0x2D, 0x00, 0x00, 0x40, 0x52, 0xDF, 0xE0, 0x16, 0x17, 0x1C, 0xD4, 0xD5, 0x16, 0x17, 0x1C, + 0x7B, 0x7C, 0x16, 0x1B, 0x7B, 0x7C, 0x19, 0xD1, 0xD2, 0x16, 0x17, 0x1C, 0x76, 0x77, 0x16, 0x17, + 0x1C, 0x6D, 0x70, 0x16, 0x17, 0x1C, 0x6C, 0x6F, 0x16, 0x17, 0x1C, 0x6B, 0x6E, 0x16, 0x1B, 0x6B, + 0x6E, 0x7F, 0x72, 0x1A, 0x74, 0x75, 0x14, 0x15, 0x1C, 0x67, 0x6A, 0x14, 0x15, 0x1C, 0x66, 0x69, + 0x14, 0x15, 0x1C, 0x65, 0x68, 0x14, 0x1B, 0x65, 0x68, 0x85, 0x71, 0x1A, 0x19, 0x73, 0x16, 0x7A, + 0x43, 0x19, 0x21, 0x79, 0x43, 0x19, 0x21, 0x04, 0x41, 0x54, 0x01, 0x80, 0x00, 0x01, 0x00, 0x04, + 0x01, 0x7F, 0x00, 0x01, 0x00, 0x04, 0x01, 0x7E, 0x00, 0x01, 0x00, 0x04, 0x01, 0x7A, 0x00, 0x01, + 0x00, 0xF4, 0x01, 0x80, 0x00, 0x01, 0x00, 0xF4, 0x01, 0x7F, 0x00, 0x01, 0x00, 0xF4, 0x01, 0x7E, + 0x00, 0x01, 0x00, 0xF4, 0x01, 0x7A, 0x00, 0x01, 0x01, 0x3B, 0x01, 0x36, 0x00, 0x02, 0x00, 0x2B, + 0x01, 0x3A, 0x01, 0x36, 0x00, 0x02, 0x00, 0x2B, 0x01, 0x39, 0x01, 0x36, 0x00, 0x02, 0x00, 0x2B, + 0x01, 0x38, 0x01, 0x36, 0x00, 0x02, 0x00, 0x2B, 0x01, 0x37, 0x01, 0x36, 0x00, 0x02, 0x00, 0x2B, + 0x01, 0x35, 0x01, 0x36, 0x00, 0x02, 0x00, 0x2B, 0x01, 0x34, 0x01, 0x32, 0x00, 0x03, 0x00, 0x2B, + 0x01, 0x33, 0x01, 0x32, 0x00, 0x03, 0x00, 0x2B, 0x01, 0x31, 0x01, 0x32, 0x00, 0x03, 0x00, 0x2B, + 0x01, 0x30, 0x01, 0x2F, 0x00, 0x03, 0x00, 0x2B, 0x01, 0x2E, 0x01, 0x2F, 0x00, 0x03, 0x00, 0x2B, + 0x01, 0x2D, 0x01, 0x2F, 0x00, 0x03, 0x00, 0x2B, 0x01, 0x2C, 0x01, 0x2F, 0x00, 0x03, 0x00, 0x2B, + 0x01, 0x20, 0x01, 0x21, 0x00, 0x06, 0x00, 0x2B, 0x01, 0x1F, 0x01, 0x1E, 0x00, 0x0A, 0x00, 0x2B, + 0x01, 0x1E, 0xB2, 0x91, 0x06, 0x2B, 0xBC, 0x01, 0x1D, 0x01, 0x19, 0x00, 0x06, 0x00, 0x2B, 0x01, + 0x1C, 0xB2, 0x95, 0x03, 0x2B, 0xB8, 0x01, 0x1B, 0xB2, 0x95, 0x08, 0x2B, 0xB8, 0x01, 0x1A, 0xB2, + 0x95, 0x0C, 0x2B, 0xB8, 0x01, 0x19, 0xB2, 0x91, 0x08, 0x2B, 0xB8, 0x01, 0x18, 0x40, 0xA4, 0x91, + 0x0F, 0x2B, 0x53, 0x4C, 0x04, 0x2B, 0xF8, 0x95, 0x04, 0x2B, 0xF7, 0x95, 0x04, 0x2B, 0xF5, 0x95, + 0x04, 0x2B, 0x99, 0x95, 0x04, 0x2B, 0x91, 0x95, 0x04, 0x2B, 0x40, 0x95, 0x13, 0x16, 0x39, 0x8C, + 0x89, 0x06, 0x2B, 0x8B, 0x89, 0x06, 0x2B, 0x89, 0x85, 0x06, 0x2B, 0x81, 0x7F, 0x00, 0x2B, 0x7D, + 0x7F, 0x06, 0x2B, 0x7F, 0x85, 0x06, 0x2B, 0x88, 0x85, 0x00, 0x2B, 0x87, 0x85, 0x00, 0x2B, 0x84, + 0x85, 0x00, 0x2B, 0x83, 0x85, 0x06, 0x2B, 0x1B, 0x37, 0x15, 0x18, 0x36, 0x15, 0x15, 0x35, 0x15, + 0x12, 0x34, 0x15, 0x0F, 0x33, 0x15, 0x0C, 0x32, 0x15, 0x09, 0x31, 0x15, 0x06, 0x30, 0x15, 0x03, + 0x2F, 0x15, 0x00, 0x2E, 0x15, 0x26, 0x27, 0x0E, 0x28, 0x27, 0x0F, 0x2A, 0x2B, 0x0E, 0x2C, 0x2B, + 0x0F, 0x22, 0x23, 0x0E, 0x24, 0x23, 0x0F, 0x1E, 0x1F, 0x0E, 0x20, 0x1F, 0x0F, 0x0F, 0x10, 0x11, + 0x0C, 0x09, 0x0A, 0x0B, 0x0C, 0x06, 0x07, 0x08, 0x0C, 0x03, 0x04, 0x05, 0x0C, 0x00, 0x01, 0x02, + 0x0C, 0x0F, 0x2A, 0x1F, 0x2A, 0x02, 0x20, 0x2B, 0x01, 0x60, 0x2B, 0xDF, 0x2B, 0x02, 0x26, 0x06, + 0x64, 0x1F, 0x00, 0x41, 0x63, 0x01, 0x64, 0x00, 0x01, 0x00, 0xBF, 0x01, 0x64, 0x00, 0x01, 0x00, + 0x10, 0x01, 0x63, 0x00, 0x01, 0x00, 0x50, 0x01, 0x63, 0x00, 0xCF, 0x01, 0x63, 0x00, 0x02, 0x00, + 0x20, 0x01, 0x61, 0x00, 0x01, 0x00, 0x2F, 0x01, 0x61, 0x00, 0xBF, 0x01, 0x61, 0x00, 0x02, 0x00, + 0x20, 0x01, 0x5F, 0x00, 0x01, 0x00, 0x60, 0x01, 0x5F, 0x00, 0x70, 0x01, 0x5F, 0x00, 0x9F, 0x01, + 0x5F, 0x00, 0xAF, 0x01, 0x5F, 0x00, 0xBF, 0x01, 0x5F, 0x00, 0x05, 0x00, 0x70, 0x01, 0x5E, 0x00, + 0x80, 0x01, 0x5E, 0x00, 0x9F, 0x01, 0x5E, 0x00, 0xAF, 0x01, 0x5E, 0x00, 0x04, 0x00, 0xD0, 0x01, + 0x11, 0x00, 0xF0, 0x01, 0x11, 0x00, 0x02, 0x00, 0x40, 0x01, 0x11, 0x00, 0x60, 0x01, 0x11, 0x00, + 0x80, 0x01, 0x11, 0x00, 0x03, 0x00, 0xF0, 0x01, 0x11, 0x00, 0x01, 0x00, 0x50, 0x01, 0x10, 0x00, + 0x01, 0x00, 0x30, 0x01, 0x10, 0x00, 0x40, 0x01, 0x10, 0x00, 0x80, 0x01, 0x10, 0x00, 0x03, 0x00, + 0xDF, 0x01, 0x12, 0x00, 0x01, 0x00, 0xAF, 0x01, 0x12, 0x00, 0xBF, 0x01, 0x12, 0x00, 0xCF, 0x01, + 0x12, 0x00, 0x03, 0x00, 0x7F, 0x01, 0x12, 0x00, 0x8F, 0x01, 0x12, 0x00, 0x9F, 0x01, 0x12, 0x00, + 0x03, 0x00, 0x50, 0x01, 0x11, 0x00, 0x80, 0x01, 0x11, 0x00, 0xD0, 0x01, 0x11, 0x00, 0x03, 0x00, + 0x30, 0x01, 0x11, 0x00, 0x40, 0x01, 0x11, 0x00, 0x60, 0x01, 0x11, 0x40, 0x35, 0x03, 0x4F, 0xFC, + 0x6F, 0xFC, 0x7F, 0xFC, 0x03, 0x4F, 0xFD, 0x6F, 0xFD, 0x02, 0x8F, 0xFB, 0x01, 0x4F, 0xFB, 0x5F, + 0xFB, 0x6F, 0xFB, 0x03, 0x1F, 0xFC, 0x1F, 0xFD, 0x02, 0x0F, 0xFC, 0x2F, 0xFC, 0x5F, 0xFC, 0x03, + 0x8F, 0xFC, 0xBF, 0xFC, 0xDF, 0xFC, 0x03, 0x6F, 0xFC, 0xAF, 0xFC, 0xFF, 0xFC, 0x03, 0x3F, 0xFC, + 0x01, 0x50, 0xB8, 0x01, 0x05, 0x40, 0x1A, 0x01, 0x3F, 0xFD, 0xAF, 0xFD, 0xFF, 0xFD, 0x03, 0x5F, + 0xFB, 0x6F, 0xFB, 0x02, 0x2F, 0xFB, 0x3F, 0xFB, 0x4F, 0xFB, 0x03, 0x70, 0xFD, 0xC0, 0xFD, 0x02, + 0xE0, 0xBF, 0x01, 0x05, 0x00, 0x01, 0x00, 0x70, 0x01, 0x05, 0x00, 0x90, 0x01, 0x05, 0x00, 0xC0, + 0x01, 0x05, 0x40, 0x1D, 0x03, 0x70, 0xFE, 0x80, 0xFE, 0x02, 0x7F, 0xFB, 0xEF, 0xFB, 0x02, 0x7F, + 0xFA, 0xEF, 0xFA, 0x02, 0x20, 0xFE, 0x30, 0xFE, 0x40, 0xFE, 0x50, 0xFE, 0x04, 0x20, 0xFD, 0x01, + 0x20, 0xB8, 0x01, 0x05, 0x40, 0x51, 0x01, 0x06, 0x03, 0x64, 0x2B, 0x0F, 0x00, 0x2F, 0x00, 0x3F, + 0x00, 0x6F, 0x00, 0x7F, 0x00, 0xAF, 0x00, 0xEF, 0x00, 0x07, 0x3F, 0x0F, 0x80, 0x0F, 0x02, 0x0F, + 0x03, 0x01, 0x1B, 0x01, 0x1D, 0x0D, 0x18, 0x07, 0x1A, 0x0D, 0x15, 0x10, 0x17, 0x0D, 0x12, 0x04, + 0x14, 0x0D, 0x2C, 0x3C, 0x2A, 0x3C, 0x28, 0x3C, 0x26, 0x3C, 0x24, 0x3C, 0x22, 0x3C, 0x20, 0x3C, + 0x1E, 0x3C, 0x1B, 0x3C, 0x18, 0x3C, 0x15, 0x3C, 0x12, 0x3C, 0x0F, 0x3C, 0x09, 0x3C, 0x06, 0x3C, + 0x03, 0x3C, 0x00, 0x3C, 0x50, 0x33, 0x54, 0x01, 0xB0, 0x12, 0x4B, 0x00, 0x4B, 0x54, 0x42, 0xB0, + 0x13, 0x01, 0x4B, 0x00, 0x4B, 0x53, 0x42, 0xB0, 0x33, 0x2B, 0x4B, 0xB8, 0x03, 0x20, 0x52, 0xB0, + 0x32, 0x2B, 0x4B, 0xB0, 0x09, 0x50, 0x5B, 0x58, 0xB1, 0x01, 0x01, 0x8E, 0x59, 0xB0, 0x33, 0x2B, + 0xB0, 0x02, 0x88, 0xB8, 0x01, 0x00, 0x54, 0xB0, 0x04, 0x88, 0xB8, 0x02, 0x00, 0x54, 0xB0, 0x12, + 0x43, 0x5A, 0x5B, 0x58, 0xB8, 0x01, 0x19, 0xB1, 0x01, 0x01, 0x8E, 0x85, 0x1B, 0xB9, 0x00, 0x01, + 0x01, 0x00, 0xB0, 0x4B, 0x60, 0x85, 0x8D, 0x59, 0x2B, 0x2B, 0x1D, 0xB0, 0x64, 0x4B, 0x53, 0x58, + 0xB0, 0x80, 0x1D, 0x59, 0xB0, 0x32, 0x4B, 0x53, 0x58, 0xB0, 0x90, 0x1D, 0x59, 0x00, 0x4B, 0xB0, + 0x32, 0x51, 0xB0, 0x1B, 0x23, 0x42, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x73, 0x73, 0x73, 0x2B, 0x73, + 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x74, 0x74, 0x74, 0x74, 0x74, 0x74, 0x74, 0x75, + 0x75, 0x75, 0x75, 0x75, 0x75, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x74, 0x74, 0x73, + 0x73, 0x74, 0x73, 0x74, 0x73, 0x74, 0x73, 0x74, 0x2B, 0x74, 0x75, 0x73, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0xB1, 0x28, 0x26, 0x45, 0xB0, 0x2A, 0x45, 0x61, 0xB0, + 0x2C, 0x45, 0x60, 0x44, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x01, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x00, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x73, 0x73, 0x73, 0x73, 0x74, 0x74, 0x74, + 0x74, 0x2B, 0x2B, 0xB0, 0x18, 0xB0, 0x3F, 0x4B, 0x53, 0x42, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0xB1, 0x09, 0x32, 0x2B, 0x4B, 0xB0, + 0x50, 0x52, 0x42, 0x4B, 0xB0, 0x08, 0x52, 0x4B, 0xB0, 0x08, 0x50, 0x5B, 0xB0, 0x1A, 0x23, 0x42, + 0x4B, 0xB0, 0xC8, 0x52, 0x4B, 0xB0, 0x36, 0x50, 0x5B, 0xB0, 0x0C, 0x23, 0x42, 0xB1, 0x02, 0x02, + 0x43, 0x51, 0x58, 0xB1, 0x04, 0x03, 0x8E, 0x59, 0x06, 0x13, 0x00, 0x19, 0x00, 0x5C, 0x05, 0xC0, + 0x00, 0x19, 0x00, 0x4E, 0x05, 0xC0, 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x1B, 0x00, 0x19, 0x00, 0x8E, 0x00, 0x00, 0xFF, 0xE7, + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xE7, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xE7, 0x00, 0x00, 0xFE, 0x1C, + 0xFF, 0xED, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xCB, + 0x02, 0xCB, 0x00, 0x66, 0x05, 0xC0, 0x00, 0x15, 0x02, 0x57, 0xFF, 0xEB, 0x03, 0x68, 0x00, 0x15, + 0x00, 0x00, 0xFF, 0xEB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x06, 0xB2, 0xFF, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, + 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x00, 0x8C, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x71, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7D, + 0x00, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD2, 0x00, 0xD2, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xAA, 0x00, 0x00, 0x00, 0xA1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA2, + 0x00, 0x00, 0x00, 0x9D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x00, 0xA0, + 0x00, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0x00, 0x87, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDC, 0x00, 0xDC, 0x01, 0x14, 0x01, 0xF8, 0x01, 0xCC, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x82, 0x00, 0x82, 0x00, 0x00, 0x00, 0xC5, 0x00, 0xC5, 0x00, 0x7E, 0x00, 0x50, + 0x00, 0x55, 0x00, 0x55, 0x00, 0x58, 0x00, 0x58, 0x00, 0x82, 0x00, 0x8D, 0x00, 0x8D, 0x00, 0x71, + 0x00, 0x82, 0x00, 0x87, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDC, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xDC, 0x02, 0x17, 0x00, 0x78, 0x00, 0x00, 0x00, 0x5F, 0x00, 0x7A, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x00, 0x00, 0x62, 0x00, 0x5F, 0x00, 0x87, + 0x00, 0x87, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x6C, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x82, 0x02, 0x26, 0x00, 0x6E, 0x00, 0x00, + 0x00, 0xC2, 0x00, 0x9B, 0x00, 0x95, 0x00, 0x96, 0x00, 0x91, 0x00, 0x64, 0x00, 0x73, 0x00, 0x61, + 0x03, 0x34, 0x03, 0x46, 0x04, 0x79, 0x00, 0x41, 0x00, 0x00, 0x05, 0x8C, 0xFE, 0xD9, 0x00, 0xBE, + 0x00, 0x4B, 0x03, 0x58, 0x00, 0x8C, 0x00, 0x69, 0x00, 0x7D, 0x00, 0x73, 0x01, 0x18, 0x00, 0x78, + 0x00, 0x9B, 0x00, 0x87, 0x00, 0x91, 0x00, 0x69, 0x04, 0x79, 0x04, 0x8D, 0x00, 0x2D, 0x01, 0xE0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x99, 0x00, 0x9F, 0x00, 0x8E, 0x00, 0x99, + 0x00, 0xA5, 0x00, 0xAF, 0x00, 0x8E, 0x00, 0x87, 0x00, 0x64, 0x00, 0x6E, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x96, 0x00, 0x91, 0x00, 0x8C, 0x00, 0x87, 0x00, 0x82, 0x00, 0x7D, 0x00, 0x78, 0x00, 0x73, + 0x00, 0x6E, 0x00, 0x69, 0x00, 0x64, 0x00, 0x5A, 0x00, 0x5F, 0x00, 0x55, 0x00, 0x50, 0x00, 0x4B, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xD5, 0xFF, 0x4C, 0xFF, 0x81, 0x06, 0x21, 0x00, 0x6F, 0x06, 0x9E, + 0x06, 0x8F, 0x00, 0x96, 0x00, 0x91, 0x00, 0x8C, 0x00, 0x87, 0x00, 0x82, 0x00, 0x7D, 0x00, 0x78, + 0x00, 0x73, 0x00, 0x6E, 0x00, 0x69, 0x00, 0x64, 0x00, 0x5A, 0x00, 0x5F, 0x00, 0x55, 0x00, 0x50, + 0x00, 0x4B, 0x00, 0x52, 0x00, 0x5C, 0x00, 0x66, 0x00, 0x70, 0x00, 0x7A, 0x00, 0x84, 0x00, 0xB9, + 0x00, 0xC3, 0x00, 0xCD, 0x00, 0xD7, 0x00, 0xE1, 0x00, 0xF5, 0x00, 0xFF, 0x00, 0x56, 0x00, 0x60, + 0x00, 0x6A, 0x00, 0x74, 0x00, 0x7E, 0x00, 0x88, 0x00, 0x92, 0x00, 0x9C, 0x00, 0xA6, 0x00, 0xD5, + 0x00, 0xDF, 0x00, 0xE9, 0x00, 0xFD, 0x00, 0x00, 0x06, 0x89, 0x06, 0x33, 0xFF, 0xBC, 0xFF, 0x7F, + 0x06, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x5A, 0x00, 0x03, 0x00, 0x01, 0x04, 0x09, + 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x04, 0x09, 0x00, 0x01, 0x00, 0x1A, + 0x00, 0x64, 0x00, 0x03, 0x00, 0x01, 0x04, 0x09, 0x00, 0x02, 0x00, 0x0E, 0x00, 0x7E, 0x00, 0x03, + 0x00, 0x01, 0x04, 0x09, 0x00, 0x03, 0x00, 0x2A, 0x00, 0x8C, 0x00, 0x03, 0x00, 0x01, 0x04, 0x09, + 0x00, 0x04, 0x00, 0x1A, 0x00, 0x64, 0x00, 0x03, 0x00, 0x01, 0x04, 0x09, 0x00, 0x05, 0x00, 0x18, + 0x00, 0xB6, 0x00, 0x03, 0x00, 0x01, 0x04, 0x09, 0x00, 0x06, 0x00, 0x18, 0x00, 0xCE, 0x00, 0xA9, + 0x00, 0x20, 0x00, 0x32, 0x00, 0x30, 0x00, 0x32, 0x00, 0x32, 0x00, 0x20, 0x00, 0x4D, 0x00, 0x69, + 0x00, 0x63, 0x00, 0x72, 0x00, 0x6F, 0x00, 0x73, 0x00, 0x6F, 0x00, 0x66, 0x00, 0x74, 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, 0x41, 0x00, 0x6C, 0x00, 0x6C, + 0x00, 0x20, 0x00, 0x52, 0x00, 0x69, 0x00, 0x67, 0x00, 0x68, 0x00, 0x74, 0x00, 0x73, 0x00, 0x20, + 0x00, 0x52, 0x00, 0x65, 0x00, 0x73, 0x00, 0x65, 0x00, 0x72, 0x00, 0x76, 0x00, 0x65, 0x00, 0x64, + 0x00, 0x2E, 0x00, 0x4D, 0x00, 0x61, 0x00, 0x6C, 0x00, 0x67, 0x00, 0x75, 0x00, 0x6E, 0x00, 0x20, + 0x00, 0x47, 0x00, 0x6F, 0x00, 0x74, 0x00, 0x68, 0x00, 0x69, 0x00, 0x63, 0x00, 0x52, 0x00, 0x65, + 0x00, 0x67, 0x00, 0x75, 0x00, 0x6C, 0x00, 0x61, 0x00, 0x72, 0x00, 0x4D, 0x00, 0x61, 0x00, 0x6C, + 0x00, 0x67, 0x00, 0x75, 0x00, 0x6E, 0x00, 0x20, 0x00, 0x47, 0x00, 0x6F, 0x00, 0x74, 0x00, 0x68, + 0x00, 0x69, 0x00, 0x63, 0x00, 0x20, 0x00, 0x52, 0x00, 0x65, 0x00, 0x67, 0x00, 0x75, 0x00, 0x6C, + 0x00, 0x61, 0x00, 0x72, 0x00, 0x56, 0x00, 0x65, 0x00, 0x72, 0x00, 0x73, 0x00, 0x69, 0x00, 0x6F, + 0x00, 0x6E, 0x00, 0x20, 0x00, 0x36, 0x00, 0x2E, 0x00, 0x36, 0x00, 0x39, 0x00, 0x4D, 0x00, 0x61, + 0x00, 0x6C, 0x00, 0x67, 0x00, 0x75, 0x00, 0x6E, 0x00, 0x47, 0x00, 0x6F, 0x00, 0x74, 0x00, 0x68, + 0x00, 0x69, 0x00, 0x63, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x70, 0x00, 0x77, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x03, 0x00, 0x0A, 0x00, 0x0E, 0x00, 0x10, 0x00, 0x07, + 0xFF, 0xFF, 0x00, 0x0F, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x0A, 0x00, 0x1C, 0x00, 0x1E, 0x00, 0x01, 0x44, 0x46, 0x4C, 0x54, 0x00, 0x08, 0x00, 0x04, + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x0A, 0x00, 0x2C, 0x00, 0x2E, 0x00, 0x03, 0x44, 0x46, 0x4C, 0x54, 0x00, 0x14, 0x68, 0x61, + 0x6E, 0x67, 0x00, 0x1E, 0x6C, 0x61, 0x74, 0x6E, 0x00, 0x1E, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0xEB, 0x00, 0x28, + 0x08, 0x80, 0x00, 0xC0, 0x00, 0x81, 0x00, 0x81, 0x00, 0x01, 0x00, 0x00, 0x04, 0x40, 0x04, 0x40, + 0x00, 0x00, 0x08, 0x00, 0xFF, 0xE5, 0xFF, 0xE6, 0x08, 0x1A, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02 +}; diff --git a/src/include/components.h b/src/include/components.h index 59b3ebb..0ef8960 100644 --- a/src/include/components.h +++ b/src/include/components.h @@ -35,6 +35,7 @@ #include bool RenderTitleBarComponent(std::shared_ptr router); +void RenderLanguageSelector(float xPos); const void RenderHome(std::shared_ptr router, float xPos); const void RenderInstallPrompt(std::shared_ptr router, float xPos); const void RenderInstaller(std::shared_ptr router, float xPos); diff --git a/src/include/i18n.h b/src/include/i18n.h new file mode 100644 index 0000000..b7ff2b0 --- /dev/null +++ b/src/include/i18n.h @@ -0,0 +1,35 @@ +#pragma once +#include +#include + +class Locale { +public: + struct Language { + std::string id; + std::string displayName; + }; + + /** Detect system language, load translations, set current language. */ + static void Initialize(); + + /** Switch to a different language at runtime. */ + static void SetLanguage(const std::string& langId); + + /** Returns e.g. "russian", "english". */ + static const std::string& GetCurrentLanguageId(); + + /** Look up a translated string. Falls back to English if key/lang not found. */ + static const char* Get(const std::string& key); + + /** All available languages for the selector dropdown. */ + static const std::vector& GetAvailableLanguages(); + + /** True if current language uses Cyrillic (load extra font ranges). */ + static bool UsesCyrillic(); + + /** True if current language uses CJK (Chinese/Japanese/Korean). */ + static bool UsesCJK(); + +private: + static std::string DetectSystemLanguage(); +}; diff --git a/src/include/renderer.h b/src/include/renderer.h index dbbe8f3..775eeb7 100644 --- a/src/include/renderer.h +++ b/src/include/renderer.h @@ -41,5 +41,6 @@ void GLFWErrorCallback(int error, const char* description); void WindowRefreshCallback(GLFWwindow* window); void FrameBufferSizeCallback(GLFWwindow* window, int width, int height); void SetupImGuiScaling(GLFWwindow* window); +void RequestFontRebuild(); void SpawnRendererThread(GLFWwindow* window, const char* glsl_version, std::shared_ptr router); void RenderImGui(GLFWwindow* window, std::shared_ptr router); diff --git a/src/include/viet_name.h b/src/include/viet_name.h new file mode 100644 index 0000000..26d8435 --- /dev/null +++ b/src/include/viet_name.h @@ -0,0 +1,1185 @@ +// Auto-generated — do not edit. +// Arial subset covering all glyphs of "Tieng Viet" (U+1EBF, U+1EC7 + ASCII). +// Loaded as Fonts[2]; pushed via PushFont in the dropdown so the +// Vietnamese item renders from a single typeface with no Geist mixing. +// Regenerate: python tools/generate_font_headers.py +#pragma once + +static const unsigned char VietName_Standalone[] = { + 0x00, 0x01, 0x00, 0x00, 0x00, 0x13, 0x01, 0x00, 0x00, 0x04, 0x00, 0x30, 0x47, 0x44, 0x45, 0x46, + 0x00, 0x25, 0x00, 0x19, 0x00, 0x00, 0x48, 0x7C, 0x00, 0x00, 0x00, 0x22, 0x47, 0x50, 0x4F, 0x53, + 0xA1, 0x0C, 0xC1, 0x5D, 0x00, 0x00, 0x48, 0xA0, 0x00, 0x00, 0x00, 0xA0, 0x47, 0x53, 0x55, 0x42, + 0x0A, 0xC0, 0x07, 0x8C, 0x00, 0x00, 0x49, 0x40, 0x00, 0x00, 0x00, 0x32, 0x4F, 0x53, 0x2F, 0x32, + 0x6A, 0xE6, 0xBC, 0x50, 0x00, 0x00, 0x13, 0x10, 0x00, 0x00, 0x00, 0x60, 0x56, 0x44, 0x4D, 0x58, + 0x50, 0x92, 0x6A, 0xF5, 0x00, 0x00, 0x13, 0x70, 0x00, 0x00, 0x11, 0x94, 0x63, 0x6D, 0x61, 0x70, + 0x20, 0x26, 0x20, 0xD9, 0x00, 0x00, 0x26, 0x8C, 0x00, 0x00, 0x00, 0x74, 0x63, 0x76, 0x74, 0x20, + 0xAD, 0xBF, 0xDF, 0x8E, 0x00, 0x00, 0x3E, 0xE0, 0x00, 0x00, 0x06, 0x6E, 0x66, 0x70, 0x67, 0x6D, + 0x38, 0xA5, 0x16, 0x2B, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x0B, 0xB0, 0x67, 0x61, 0x73, 0x70, + 0x00, 0x19, 0x00, 0x21, 0x00, 0x00, 0x48, 0x6C, 0x00, 0x00, 0x00, 0x10, 0x67, 0x6C, 0x79, 0x66, + 0x70, 0xB1, 0x5F, 0x4E, 0x00, 0x00, 0x01, 0x3C, 0x00, 0x00, 0x10, 0xFE, 0x68, 0x64, 0x6D, 0x78, + 0xFF, 0x83, 0x25, 0xB2, 0x00, 0x00, 0x25, 0x04, 0x00, 0x00, 0x01, 0x88, 0x68, 0x65, 0x61, 0x64, + 0xFA, 0x1B, 0x9B, 0x10, 0x00, 0x00, 0x12, 0x7C, 0x00, 0x00, 0x00, 0x36, 0x68, 0x68, 0x65, 0x61, + 0x12, 0x33, 0x08, 0xD6, 0x00, 0x00, 0x12, 0xEC, 0x00, 0x00, 0x00, 0x24, 0x68, 0x6D, 0x74, 0x78, + 0x2B, 0x35, 0x00, 0xE3, 0x00, 0x00, 0x12, 0xB4, 0x00, 0x00, 0x00, 0x36, 0x6C, 0x6F, 0x63, 0x61, + 0x25, 0x45, 0x20, 0xF1, 0x00, 0x00, 0x12, 0x5C, 0x00, 0x00, 0x00, 0x1E, 0x6D, 0x61, 0x78, 0x70, + 0x06, 0x04, 0x0F, 0xF2, 0x00, 0x00, 0x12, 0x3C, 0x00, 0x00, 0x00, 0x20, 0x6E, 0x61, 0x6D, 0x65, + 0x49, 0xD1, 0x58, 0x83, 0x00, 0x00, 0x45, 0x50, 0x00, 0x00, 0x02, 0xFA, 0x70, 0x6F, 0x73, 0x74, + 0xFF, 0x2A, 0x00, 0x96, 0x00, 0x00, 0x48, 0x4C, 0x00, 0x00, 0x00, 0x20, 0x70, 0x72, 0x65, 0x70, + 0xA1, 0xB2, 0xE8, 0xEA, 0x00, 0x00, 0x32, 0xB0, 0x00, 0x00, 0x0C, 0x2F, 0x00, 0x01, 0x00, 0x30, + 0x00, 0x00, 0x04, 0xBA, 0x05, 0xBA, 0x00, 0x07, 0x01, 0x17, 0xB0, 0x85, 0x2B, 0x58, 0xB3, 0x06, + 0x02, 0x0C, 0x0C, 0xB8, 0x01, 0x40, 0xB4, 0x56, 0x07, 0x02, 0x0C, 0x0C, 0xB8, 0x01, 0x40, 0xB4, + 0x56, 0x06, 0x07, 0x0B, 0x0B, 0xB8, 0x01, 0x40, 0xB4, 0x56, 0x07, 0x07, 0x0B, 0x0B, 0x41, 0x0D, + 0x01, 0x40, 0x00, 0x56, 0x00, 0x01, 0xFF, 0xF9, 0x00, 0x0B, 0x00, 0x0B, 0x01, 0x40, 0x00, 0x56, + 0x00, 0x00, 0xFF, 0xF9, 0x00, 0x0B, 0x00, 0x0B, 0x01, 0x40, 0xB4, 0x56, 0x06, 0x05, 0x0C, 0x0D, + 0xB8, 0x01, 0x40, 0xB4, 0x56, 0x07, 0x05, 0x0C, 0x0D, 0x41, 0x0D, 0x01, 0x40, 0x00, 0x56, 0x00, + 0x01, 0xFF, 0xFB, 0x00, 0x0C, 0x00, 0x0D, 0x01, 0x40, 0x00, 0x56, 0x00, 0x00, 0xFF, 0xFB, 0x00, + 0x0C, 0x00, 0x0D, 0x01, 0x40, 0x40, 0x0E, 0x56, 0x05, 0x02, 0x1E, 0x04, 0x03, 0x02, 0x00, 0x08, + 0x07, 0x06, 0x05, 0x04, 0x09, 0xB8, 0x02, 0x73, 0xB3, 0x20, 0x04, 0x01, 0x04, 0xB8, 0x01, 0x01, + 0xB7, 0x06, 0x20, 0x01, 0x02, 0x2F, 0x03, 0x01, 0x03, 0xB8, 0x01, 0x01, 0xB5, 0x01, 0x01, 0x20, + 0x00, 0x01, 0x00, 0xB8, 0xFF, 0xE8, 0x40, 0x0B, 0x10, 0x10, 0x02, 0x55, 0x00, 0x08, 0x0F, 0x0F, + 0x02, 0x55, 0x00, 0xB8, 0xFF, 0xF2, 0xB4, 0x0C, 0x0C, 0x02, 0x55, 0x00, 0xB8, 0xFF, 0xE2, 0xB4, + 0x0D, 0x0D, 0x02, 0x55, 0x00, 0xB8, 0xFF, 0xFC, 0xB4, 0x0C, 0x0C, 0x06, 0x55, 0x00, 0xB8, 0xFF, + 0xFE, 0xB4, 0x0D, 0x0D, 0x06, 0x55, 0x00, 0xB8, 0x02, 0x73, 0xB3, 0x08, 0xB6, 0x99, 0x18, 0x2B, + 0x10, 0xF6, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x5D, 0x3C, 0x10, 0xF4, 0x5D, 0x3C, 0x10, 0xFD, + 0xE4, 0x5D, 0xE6, 0x10, 0x3C, 0x10, 0x3C, 0x00, 0x3F, 0x3F, 0x3C, 0xFD, 0x3C, 0x31, 0x30, 0x01, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x1B, 0xB4, 0x00, 0x08, 0x06, 0x03, + 0x02, 0xB8, 0x03, 0x33, 0xB2, 0x6C, 0x03, 0x02, 0x00, 0x18, 0x3F, 0x2B, 0x32, 0x3F, 0x30, 0x31, + 0x59, 0x21, 0x11, 0x21, 0x35, 0x21, 0x15, 0x21, 0x11, 0x02, 0x13, 0xFE, 0x1D, 0x04, 0x8A, 0xFE, + 0x1B, 0x05, 0x0D, 0xAD, 0xAD, 0xFA, 0xF3, 0x00, 0x00, 0x01, 0x00, 0x09, 0x00, 0x00, 0x05, 0x46, + 0x05, 0xBA, 0x00, 0x0A, 0x02, 0x43, 0xB0, 0x85, 0x2B, 0x58, 0xB3, 0x05, 0x2C, 0x0B, 0x0B, 0xB8, + 0x01, 0x40, 0xB4, 0x56, 0x06, 0x18, 0x0B, 0x0B, 0xB8, 0x01, 0x40, 0xB4, 0x56, 0x04, 0x18, 0x0B, + 0x0B, 0x41, 0x1F, 0x01, 0x40, 0x00, 0x56, 0x00, 0x08, 0xFF, 0xFE, 0x00, 0x0C, 0x00, 0x0C, 0x01, + 0x40, 0x00, 0x56, 0x00, 0x08, 0xFF, 0xFA, 0x00, 0x0C, 0x00, 0x0C, 0x01, 0x40, 0x00, 0x56, 0x00, + 0x00, 0xFF, 0xF4, 0x00, 0x0B, 0x00, 0x0B, 0x01, 0x40, 0x00, 0x56, 0x00, 0x07, 0xFF, 0xF2, 0x00, + 0x0B, 0x00, 0x0B, 0x01, 0x40, 0x00, 0x56, 0x00, 0x08, 0xFF, 0xF2, 0x00, 0x0B, 0x00, 0x0B, 0x01, + 0x40, 0xB4, 0x56, 0x03, 0x0E, 0x0B, 0x0B, 0xB8, 0x01, 0x40, 0xB4, 0x56, 0x02, 0x0E, 0x0B, 0x0B, + 0x41, 0x0D, 0x01, 0x40, 0x00, 0x56, 0x00, 0x09, 0xFF, 0xEA, 0x00, 0x0D, 0x00, 0x0D, 0x01, 0x40, + 0x00, 0x56, 0x00, 0x08, 0xFF, 0xEA, 0x00, 0x0D, 0x00, 0x0D, 0x01, 0x40, 0xB4, 0x56, 0x0A, 0x14, + 0x0D, 0x0D, 0xBE, 0x01, 0x40, 0x00, 0x56, 0x00, 0x00, 0xFF, 0xE6, 0x00, 0x0D, 0x00, 0x0D, 0x01, + 0x40, 0xB4, 0x56, 0x01, 0x24, 0x0D, 0x0D, 0xB8, 0x01, 0x40, 0xB4, 0x56, 0x02, 0x24, 0x0D, 0x0D, + 0xB8, 0x01, 0x40, 0xB4, 0x56, 0x0A, 0x1A, 0x0C, 0x0C, 0xBE, 0x01, 0x40, 0x00, 0x56, 0x00, 0x00, + 0xFF, 0xE6, 0x00, 0x0C, 0x00, 0x0C, 0x01, 0x40, 0xB4, 0x56, 0x01, 0x24, 0x0C, 0x0C, 0xB8, 0x01, + 0x40, 0xB4, 0x56, 0x02, 0x24, 0x0C, 0x0C, 0xB9, 0x01, 0x40, 0x00, 0x56, 0xB1, 0x02, 0x02, 0x43, + 0x54, 0x58, 0x40, 0x12, 0x05, 0x01, 0x00, 0x08, 0x02, 0x01, 0x02, 0x00, 0x08, 0x0A, 0x00, 0x05, + 0x09, 0x08, 0x05, 0x01, 0x02, 0x05, 0x2F, 0xDD, 0xCD, 0x10, 0xDD, 0xCD, 0x11, 0x33, 0x33, 0x00, + 0x3F, 0x3F, 0x3F, 0x11, 0x12, 0x39, 0x31, 0x30, 0x1B, 0x40, 0x24, 0x2F, 0x05, 0x01, 0x2A, 0x00, + 0x28, 0x03, 0x25, 0x0A, 0x2F, 0x0C, 0x30, 0x0C, 0x60, 0x0C, 0x89, 0x08, 0x89, 0x09, 0x90, 0x0C, + 0xC0, 0x0C, 0xF0, 0x0C, 0x0B, 0x20, 0x0C, 0x50, 0x0C, 0x02, 0x04, 0x02, 0x0B, 0x08, 0x02, 0xB1, + 0x06, 0x02, 0x43, 0x54, 0x58, 0xB7, 0x09, 0x01, 0x0C, 0x0B, 0x00, 0x08, 0x01, 0x02, 0x00, 0x3F, + 0x3F, 0x01, 0x11, 0x12, 0x39, 0x39, 0x1B, 0x40, 0x24, 0x0A, 0x09, 0x09, 0x20, 0x08, 0x05, 0x14, + 0x08, 0x08, 0x05, 0x00, 0x01, 0x01, 0x20, 0x02, 0x05, 0x14, 0x02, 0x02, 0x05, 0x09, 0x01, 0x02, + 0x05, 0xE9, 0x20, 0x0A, 0x00, 0x08, 0x09, 0x65, 0x08, 0x01, 0x65, 0x02, 0x08, 0xB8, 0xFF, 0xC0, + 0x40, 0x0B, 0x28, 0x39, 0x50, 0x08, 0x01, 0x80, 0x08, 0x90, 0x08, 0x02, 0x08, 0xB8, 0x01, 0x01, + 0x40, 0x0D, 0x02, 0x40, 0x28, 0x39, 0x5F, 0x02, 0x01, 0x8F, 0x02, 0x9F, 0x02, 0x02, 0x02, 0xB8, + 0x01, 0x01, 0x40, 0x11, 0x20, 0x05, 0x50, 0x05, 0x02, 0x30, 0x05, 0x60, 0x05, 0x90, 0x05, 0xC0, + 0x05, 0xF0, 0x05, 0x05, 0x05, 0xB8, 0x02, 0x88, 0xB3, 0x0B, 0x60, 0xA8, 0x18, 0x2B, 0x19, 0x10, + 0xF4, 0x5D, 0x71, 0xE4, 0x5D, 0x71, 0x2B, 0xE4, 0x5D, 0x71, 0x2B, 0x18, 0x10, 0xED, 0x10, 0xED, + 0x00, 0x3F, 0x3C, 0x1A, 0x19, 0xED, 0x18, 0x3F, 0x3C, 0x87, 0x05, 0x2E, 0x2B, 0x7D, 0x10, 0xC4, + 0x87, 0x2E, 0x18, 0x2B, 0x7D, 0x10, 0xC4, 0x01, 0x4B, 0xB0, 0x0B, 0x53, 0x4B, 0xB0, 0x14, 0x51, + 0x5A, 0xB0, 0x02, 0x43, 0xB0, 0x40, 0x50, 0x5A, 0x58, 0xB2, 0x00, 0x0F, 0x0A, 0xB8, 0xFF, 0xF1, + 0xB2, 0x09, 0x12, 0x01, 0xB8, 0xFF, 0xF1, 0xB2, 0x08, 0x14, 0x02, 0xB8, 0xFF, 0xEE, 0x38, 0x38, + 0x38, 0x38, 0x38, 0x38, 0x59, 0x01, 0x4B, 0xB0, 0x28, 0x53, 0x4B, 0xB0, 0x36, 0x51, 0x5A, 0x58, + 0xB9, 0x00, 0x00, 0xFF, 0xC0, 0x38, 0x59, 0x59, 0x31, 0x30, 0x01, 0x5D, 0x71, 0x5D, 0x00, 0x5D, + 0x59, 0x01, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x00, 0x2B, 0x2B, 0x2B, 0x1B, 0xB6, 0x05, 0x00, 0x08, 0x08, 0x02, 0x01, 0x02, + 0x00, 0x18, 0x3F, 0x3F, 0x3F, 0x33, 0x30, 0x31, 0x59, 0x21, 0x01, 0x33, 0x01, 0x16, 0x17, 0x36, + 0x37, 0x01, 0x33, 0x01, 0x02, 0x41, 0xFD, 0xC8, 0xD2, 0x01, 0x7D, 0x2E, 0x1F, 0x22, 0x2D, 0x01, + 0x8C, 0xC6, 0xFD, 0xC2, 0x05, 0xBA, 0xFB, 0xD7, 0x80, 0x70, 0x78, 0x78, 0x04, 0x29, 0xFA, 0x46, + 0x00, 0x02, 0x00, 0x4B, 0xFF, 0xE8, 0x04, 0x1E, 0x04, 0x3E, 0x00, 0x15, 0x00, 0x1D, 0x02, 0x16, + 0xB0, 0x85, 0x2B, 0x58, 0x40, 0x17, 0x1F, 0x00, 0x1C, 0x15, 0x02, 0x55, 0x03, 0x5D, 0x05, 0x5D, + 0x09, 0x55, 0x0B, 0x65, 0x03, 0x6B, 0x05, 0x6F, 0x09, 0x65, 0x0B, 0x08, 0x15, 0xB8, 0xFF, 0xE4, + 0xB4, 0x0D, 0x0D, 0x06, 0x55, 0x11, 0xB8, 0xFF, 0xE4, 0x40, 0x52, 0x0D, 0x0D, 0x06, 0x55, 0x1D, + 0x1C, 0x0D, 0x0D, 0x06, 0x55, 0x27, 0x12, 0xD9, 0x05, 0xFA, 0x14, 0xF6, 0x1A, 0x04, 0x31, 0x12, + 0x3A, 0x19, 0x31, 0x1C, 0x41, 0x12, 0x4D, 0x1A, 0x41, 0x1C, 0x51, 0x12, 0x5C, 0x19, 0x52, 0x1C, + 0x61, 0x12, 0x6D, 0x1A, 0x61, 0x1C, 0x78, 0x06, 0x78, 0x15, 0xF6, 0x02, 0xF6, 0x18, 0x10, 0x00, + 0x16, 0x01, 0x0F, 0x0D, 0x17, 0x17, 0x50, 0x16, 0x60, 0x16, 0x70, 0x16, 0x03, 0x16, 0x1C, 0x0F, + 0x90, 0x10, 0xA0, 0x10, 0x02, 0x10, 0x10, 0x04, 0x1B, 0x1C, 0x0A, 0x07, 0x00, 0xBA, 0x02, 0xAA, + 0x00, 0x01, 0xFF, 0xC0, 0xB4, 0x10, 0x10, 0x02, 0x55, 0x01, 0xB8, 0xFF, 0xC0, 0x40, 0x0E, 0x10, + 0x10, 0x06, 0x55, 0x10, 0x01, 0x01, 0x01, 0x95, 0x13, 0x1C, 0x04, 0x0B, 0x17, 0x41, 0x10, 0xFF, + 0xF0, 0x00, 0x0C, 0x00, 0x0C, 0x01, 0x40, 0x00, 0x56, 0x00, 0x17, 0xFF, 0xF2, 0x00, 0x0B, 0x00, + 0x0B, 0x01, 0x40, 0x00, 0x56, 0x00, 0x17, 0xFF, 0xF8, 0x00, 0x0D, 0x00, 0x0D, 0x01, 0x40, 0xB3, + 0x56, 0x17, 0x40, 0x0D, 0xB8, 0xFF, 0xDC, 0xB4, 0x0D, 0x0D, 0x02, 0x55, 0x0D, 0xB8, 0xFF, 0xEE, + 0xB4, 0x0D, 0x0D, 0x06, 0x55, 0x0D, 0xB8, 0xFF, 0xEA, 0xB4, 0x0C, 0x0C, 0x06, 0x55, 0x0D, 0xB8, + 0xFF, 0xC0, 0x40, 0x09, 0x27, 0x2A, 0x34, 0xB0, 0x0D, 0x01, 0x0D, 0x1A, 0x1F, 0xB8, 0xFF, 0xC0, + 0xB3, 0x25, 0x26, 0x34, 0x1F, 0xB8, 0xFF, 0xC0, 0xB7, 0x1E, 0x23, 0x34, 0x30, 0x1F, 0x01, 0x1F, + 0x16, 0xBB, 0xFF, 0xFC, 0x00, 0x0D, 0x00, 0x0D, 0x01, 0x40, 0xB6, 0x56, 0x16, 0x33, 0x10, 0x08, + 0x0C, 0x0C, 0xB8, 0x01, 0x40, 0xB4, 0x56, 0x10, 0x0E, 0x0B, 0x0B, 0xB8, 0x01, 0x40, 0xB4, 0x56, + 0x10, 0x08, 0x0D, 0x0D, 0xB8, 0x01, 0x40, 0x40, 0x13, 0x56, 0x10, 0x24, 0x07, 0x40, 0x24, 0x2A, + 0x34, 0x1F, 0x07, 0x3F, 0x07, 0x4F, 0x07, 0x03, 0x07, 0x0C, 0x0C, 0x0C, 0xB8, 0x01, 0x40, 0xB4, + 0x56, 0x07, 0x0C, 0x0D, 0x0D, 0xB8, 0x01, 0x40, 0x40, 0x2B, 0x56, 0x07, 0x20, 0x0B, 0x0B, 0x02, + 0x55, 0x07, 0x18, 0x0C, 0x0C, 0x02, 0x55, 0x07, 0x1C, 0x0D, 0x0D, 0x02, 0x55, 0x07, 0x0E, 0x0B, + 0x0B, 0x06, 0x55, 0x07, 0x1C, 0x0C, 0x0C, 0x06, 0x55, 0x07, 0x16, 0x0D, 0x0D, 0x06, 0x55, 0x07, + 0x19, 0x1E, 0x34, 0x37, 0x18, 0x2B, 0x4E, 0x10, 0xF4, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x5D, 0x2B, 0x4D, 0xFD, 0x2B, 0x2B, 0x2B, 0xE4, 0x2B, 0x4E, 0x10, 0x71, 0x2B, 0x2B, 0xF6, + 0x71, 0x2B, 0x2B, 0x2B, 0x2B, 0x4D, 0xED, 0x2B, 0x2B, 0x2B, 0x00, 0x3F, 0xED, 0xFD, 0x5D, 0x2B, + 0x2B, 0xE4, 0x3F, 0xED, 0x12, 0x39, 0x2F, 0x5D, 0x3C, 0xFD, 0x71, 0x3C, 0x01, 0x11, 0x12, 0x39, + 0x39, 0x12, 0x39, 0x31, 0x30, 0x01, 0x5D, 0x00, 0x5D, 0x2B, 0x2B, 0x2B, 0x01, 0x71, 0x72, 0x1B, + 0x40, 0x1D, 0x00, 0x00, 0x50, 0x00, 0x70, 0x00, 0x80, 0x00, 0x90, 0x00, 0x05, 0x30, 0x00, 0x70, + 0x00, 0x80, 0x00, 0x90, 0x00, 0xC0, 0x00, 0xD0, 0x00, 0x06, 0x00, 0x00, 0x04, 0x10, 0x16, 0xB8, + 0x03, 0x2F, 0x40, 0x0D, 0x6C, 0x10, 0x00, 0x10, 0x30, 0x10, 0x02, 0x13, 0x03, 0x10, 0x0A, 0x04, + 0x13, 0xB8, 0x03, 0x2F, 0xB4, 0x6C, 0x04, 0x0B, 0x0A, 0x1B, 0xB8, 0x03, 0x2F, 0xB2, 0x6C, 0x0A, + 0x07, 0x00, 0x18, 0x3F, 0x2B, 0x3F, 0x2B, 0x12, 0x39, 0x5F, 0x5E, 0x5D, 0x2F, 0x2B, 0x11, 0x33, + 0x2F, 0x5D, 0x71, 0x30, 0x31, 0x59, 0x01, 0x17, 0x06, 0x06, 0x23, 0x22, 0x00, 0x11, 0x10, 0x00, + 0x33, 0x32, 0x00, 0x11, 0x14, 0x07, 0x21, 0x16, 0x16, 0x33, 0x32, 0x36, 0x01, 0x21, 0x26, 0x27, + 0x26, 0x23, 0x22, 0x06, 0x03, 0x5E, 0xBA, 0x2C, 0xEE, 0xB9, 0xE9, 0xFE, 0xEF, 0x01, 0x14, 0xDC, + 0xD5, 0x01, 0x0E, 0x01, 0xFC, 0xE8, 0x0A, 0xB2, 0x85, 0x63, 0x8C, 0xFD, 0xDA, 0x02, 0x51, 0x0C, + 0x38, 0x56, 0x89, 0x7C, 0xA9, 0x01, 0x56, 0x17, 0xA3, 0xB4, 0x01, 0x1F, 0x01, 0x03, 0x01, 0x0C, + 0x01, 0x28, 0xFE, 0xDE, 0xFE, 0xF9, 0x10, 0x20, 0xAF, 0xBA, 0x68, 0x01, 0x95, 0x86, 0x43, 0x68, + 0xA6, 0x00, 0x00, 0x02, 0x00, 0x42, 0xFE, 0x51, 0x03, 0xEA, 0x04, 0x3E, 0x00, 0x1E, 0x00, 0x2A, + 0x02, 0x29, 0xB0, 0x85, 0x2B, 0x58, 0x40, 0x60, 0x0B, 0x0B, 0x05, 0x14, 0x2C, 0x0B, 0x25, 0x14, + 0x4C, 0x0B, 0x45, 0x14, 0x06, 0x09, 0x1D, 0x19, 0x1D, 0x2C, 0x0B, 0x26, 0x14, 0x2C, 0x23, 0x39, + 0x0B, 0x36, 0x14, 0x4A, 0x0B, 0x46, 0x14, 0x56, 0x07, 0x58, 0x0B, 0x68, 0x0B, 0xFA, 0x0A, 0xF5, + 0x15, 0x0E, 0x2E, 0x23, 0x2C, 0x27, 0x3E, 0x23, 0x3E, 0x27, 0x4C, 0x27, 0x90, 0x2C, 0xA0, 0x2C, + 0x07, 0x36, 0x21, 0x36, 0x29, 0x3F, 0x2C, 0x46, 0x0B, 0x46, 0x21, 0x45, 0x29, 0x54, 0x21, 0x54, + 0x29, 0x69, 0x07, 0x63, 0x21, 0x63, 0x29, 0x60, 0x2C, 0x80, 0x2C, 0xDA, 0x27, 0xE8, 0x21, 0xEE, + 0x23, 0xEF, 0x27, 0x11, 0x17, 0x16, 0x06, 0x15, 0xB8, 0x02, 0xB1, 0xB4, 0x28, 0x1C, 0x13, 0x07, + 0x01, 0xB8, 0x02, 0xAA, 0x40, 0x10, 0x20, 0x00, 0x30, 0x00, 0x60, 0x00, 0x70, 0x00, 0x80, 0x00, + 0xC0, 0x00, 0xD0, 0x00, 0x07, 0x00, 0xB8, 0x02, 0x7D, 0x40, 0x10, 0x05, 0x1C, 0x1C, 0x0F, 0x0A, + 0x45, 0x22, 0x1C, 0x0C, 0x0A, 0x16, 0x15, 0x33, 0x25, 0x33, 0x0A, 0x41, 0x10, 0xFF, 0xF2, 0x00, + 0x0B, 0x00, 0x0B, 0x01, 0x40, 0x00, 0x56, 0x00, 0x0A, 0xFF, 0xF2, 0x00, 0x0C, 0x00, 0x0C, 0x01, + 0x40, 0x00, 0x56, 0x00, 0x0A, 0xFF, 0xF8, 0x00, 0x0D, 0x00, 0x0D, 0x01, 0x40, 0x40, 0x24, 0x56, + 0x0A, 0x25, 0x18, 0x18, 0xD0, 0x17, 0x01, 0x10, 0x17, 0x40, 0x17, 0x60, 0x17, 0x80, 0x17, 0x04, + 0x2C, 0x40, 0x0B, 0x0C, 0x02, 0x55, 0x2C, 0x40, 0x0D, 0x0D, 0x02, 0x55, 0x17, 0x12, 0x10, 0x10, + 0x02, 0x55, 0x17, 0xB8, 0xFF, 0xF4, 0x40, 0x11, 0x0F, 0x0F, 0x02, 0x55, 0x17, 0x06, 0x0E, 0x0E, + 0x02, 0x55, 0x17, 0x16, 0x0D, 0x0D, 0x02, 0x55, 0x17, 0xB8, 0xFF, 0xEA, 0x40, 0x0B, 0x0B, 0x0B, + 0x06, 0x55, 0x17, 0x12, 0x10, 0x10, 0x06, 0x55, 0x17, 0xB8, 0xFF, 0xEE, 0xB4, 0x0C, 0x0C, 0x06, + 0x55, 0x17, 0xB8, 0xFF, 0xFC, 0xB4, 0x0D, 0x0D, 0x06, 0x55, 0x17, 0x41, 0x0A, 0xFF, 0xFA, 0x00, + 0x0C, 0x00, 0x0C, 0x01, 0x40, 0x00, 0x56, 0x00, 0x17, 0xFF, 0xFA, 0x00, 0x0D, 0x00, 0x0D, 0x01, + 0x40, 0x40, 0x0C, 0x56, 0x17, 0x74, 0x0F, 0x01, 0x25, 0x00, 0x22, 0x1F, 0x0E, 0x0B, 0x0B, 0xB8, + 0x01, 0x40, 0xB4, 0x56, 0x1F, 0x08, 0x0D, 0x0D, 0xB8, 0x01, 0x40, 0xB4, 0x56, 0x1F, 0x0C, 0x0C, + 0x0C, 0xB8, 0x01, 0x40, 0x40, 0x17, 0x56, 0x1F, 0x24, 0xBF, 0x0F, 0xCF, 0x0F, 0xDF, 0x0F, 0xFF, + 0x0F, 0x04, 0x1F, 0x0F, 0x3F, 0x0F, 0x4F, 0x0F, 0x03, 0x0F, 0x0C, 0x0C, 0x0C, 0xB8, 0x01, 0x40, + 0xB4, 0x56, 0x0F, 0x10, 0x0D, 0x0D, 0xB8, 0x01, 0x40, 0x40, 0x2E, 0x56, 0x0F, 0x20, 0x0B, 0x0B, + 0x02, 0x55, 0x0F, 0x1A, 0x0C, 0x0C, 0x02, 0x55, 0x0F, 0x22, 0x0D, 0x0D, 0x02, 0x55, 0x0F, 0x1C, + 0x0B, 0x0B, 0x06, 0x55, 0x0F, 0x0C, 0x0D, 0x0D, 0x06, 0x55, 0x0F, 0x1A, 0x0C, 0x0C, 0x06, 0x55, + 0x0F, 0x19, 0x2B, 0x2C, 0x74, 0x21, 0x34, 0x50, 0x18, 0x2B, 0x2B, 0x4E, 0xF4, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x5D, 0x71, 0x4D, 0xED, 0x2B, 0x2B, 0x2B, 0xF4, 0xED, 0x10, 0xFD, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x5D, 0x71, 0x3C, 0x10, + 0xFD, 0x2B, 0x2B, 0x2B, 0xE4, 0xF6, 0x3C, 0x00, 0x3F, 0xED, 0xE4, 0x3F, 0xED, 0xFD, 0x5D, 0xE4, + 0x3F, 0xED, 0xE4, 0x3F, 0x3C, 0x31, 0x30, 0x01, 0x5D, 0x71, 0x00, 0x5D, 0x71, 0x1B, 0x40, 0x0A, + 0x00, 0x00, 0x01, 0x16, 0x03, 0x00, 0x00, 0x13, 0x1C, 0x05, 0xB8, 0x03, 0x2F, 0xB5, 0x6C, 0x1C, + 0x0F, 0x0A, 0x0C, 0x22, 0xB8, 0x03, 0x2F, 0xB7, 0x6C, 0x0C, 0x0A, 0x16, 0x06, 0x15, 0x13, 0x28, + 0xB8, 0x03, 0x2F, 0xB2, 0x6C, 0x13, 0x07, 0x00, 0x18, 0x3F, 0x2B, 0x32, 0x3F, 0x3F, 0x2B, 0x39, + 0x3F, 0x2B, 0x12, 0x39, 0x2F, 0x5F, 0x5E, 0x5D, 0x30, 0x31, 0x59, 0x17, 0x17, 0x16, 0x17, 0x16, + 0x33, 0x32, 0x36, 0x37, 0x36, 0x27, 0x06, 0x23, 0x22, 0x02, 0x35, 0x34, 0x12, 0x36, 0x33, 0x32, + 0x17, 0x35, 0x33, 0x11, 0x14, 0x06, 0x06, 0x23, 0x22, 0x26, 0x13, 0x14, 0x16, 0x33, 0x32, 0x36, + 0x35, 0x34, 0x26, 0x23, 0x22, 0x06, 0x66, 0xAF, 0x0B, 0x32, 0x43, 0x74, 0x7D, 0x88, 0x18, 0x0E, + 0x01, 0x76, 0xB0, 0xDB, 0xF0, 0x6E, 0xD1, 0x8D, 0xBC, 0x7A, 0xA6, 0x65, 0xDB, 0xA0, 0xBE, 0xEA, + 0x99, 0xA6, 0x7D, 0x7C, 0xA8, 0xAD, 0x7A, 0x78, 0xA8, 0x58, 0x1A, 0x51, 0x25, 0x32, 0x64, 0x5A, + 0x37, 0xB0, 0x8B, 0x01, 0x3C, 0xDD, 0x98, 0x01, 0x01, 0x8C, 0x98, 0x80, 0xFC, 0x6A, 0xF8, 0xCF, + 0x78, 0xAB, 0x03, 0x2A, 0xD1, 0xC0, 0xBF, 0xCC, 0xC3, 0xC6, 0xC3, 0x00, 0x00, 0x02, 0x00, 0x88, + 0x00, 0x00, 0x01, 0x3C, 0x05, 0xBA, 0x00, 0x03, 0x00, 0x07, 0x02, 0x0A, 0xB0, 0x85, 0x2B, 0x58, + 0xB3, 0x02, 0x0A, 0x0B, 0x0B, 0xB8, 0x01, 0x40, 0xB4, 0x56, 0x03, 0x0A, 0x0B, 0x0B, 0xB8, 0x01, + 0x40, 0xB4, 0x56, 0x06, 0x0A, 0x0B, 0x0B, 0xB8, 0x01, 0x40, 0xB4, 0x56, 0x07, 0x0A, 0x0B, 0x0B, + 0x41, 0x19, 0x01, 0x40, 0x00, 0x56, 0x00, 0x01, 0xFF, 0xFC, 0x00, 0x0B, 0x00, 0x0B, 0x01, 0x40, + 0x00, 0x56, 0x00, 0x00, 0xFF, 0xFC, 0x00, 0x0B, 0x00, 0x0B, 0x01, 0x40, 0x00, 0x56, 0x00, 0x05, + 0xFF, 0xFC, 0x00, 0x0B, 0x00, 0x0B, 0x01, 0x40, 0x00, 0x56, 0x00, 0x04, 0xFF, 0xFC, 0x00, 0x0B, + 0x00, 0x0B, 0x01, 0x40, 0xB4, 0x56, 0x02, 0x0B, 0x0C, 0x0C, 0xB8, 0x01, 0x40, 0xB4, 0x56, 0x03, + 0x0B, 0x0C, 0x0C, 0xB8, 0x01, 0x40, 0xB4, 0x56, 0x06, 0x0B, 0x0C, 0x0C, 0xB8, 0x01, 0x40, 0xB4, + 0x56, 0x07, 0x0B, 0x0C, 0x0C, 0x41, 0x19, 0x01, 0x40, 0x00, 0x56, 0x00, 0x01, 0xFF, 0xFD, 0x00, + 0x0C, 0x00, 0x0C, 0x01, 0x40, 0x00, 0x56, 0x00, 0x00, 0xFF, 0xFD, 0x00, 0x0C, 0x00, 0x0C, 0x01, + 0x40, 0x00, 0x56, 0x00, 0x05, 0xFF, 0xFD, 0x00, 0x0C, 0x00, 0x0C, 0x01, 0x40, 0x00, 0x56, 0x00, + 0x04, 0xFF, 0xFD, 0x00, 0x0C, 0x00, 0x0C, 0x01, 0x40, 0xB4, 0x56, 0x02, 0x04, 0x0D, 0x0D, 0xB8, + 0x01, 0x40, 0xB4, 0x56, 0x03, 0x04, 0x0D, 0x0D, 0xB8, 0x01, 0x40, 0xB4, 0x56, 0x06, 0x04, 0x0D, + 0x0D, 0xB8, 0x01, 0x40, 0xB4, 0x56, 0x07, 0x04, 0x0D, 0x0D, 0x41, 0x19, 0x01, 0x40, 0x00, 0x56, + 0x00, 0x01, 0xFF, 0xFC, 0x00, 0x0D, 0x00, 0x0D, 0x01, 0x40, 0x00, 0x56, 0x00, 0x00, 0xFF, 0xFC, + 0x00, 0x0D, 0x00, 0x0D, 0x01, 0x40, 0x00, 0x56, 0x00, 0x05, 0xFF, 0xFC, 0x00, 0x0D, 0x00, 0x0D, + 0x01, 0x40, 0x00, 0x56, 0x00, 0x04, 0xFF, 0xFC, 0x00, 0x0D, 0x00, 0x0D, 0x01, 0x40, 0x40, 0x37, + 0x56, 0x09, 0x36, 0x0B, 0x0B, 0x02, 0x55, 0x4F, 0x09, 0x90, 0x09, 0xA0, 0x09, 0xB0, 0x09, 0xC0, + 0x09, 0xDF, 0x09, 0xF0, 0x09, 0x07, 0x00, 0x09, 0x1F, 0x09, 0x70, 0x09, 0x80, 0x09, 0x9F, 0x09, + 0xB0, 0x09, 0xC0, 0x09, 0xDF, 0x09, 0xE0, 0x09, 0xFF, 0x09, 0x0A, 0x1F, 0x09, 0x01, 0x00, 0x01, + 0x07, 0x04, 0x02, 0x03, 0x09, 0x06, 0x03, 0xBB, 0xFF, 0xC0, 0x00, 0x0D, 0x00, 0x0D, 0x01, 0x40, + 0x40, 0x2A, 0x56, 0x03, 0x7E, 0x01, 0x00, 0x06, 0x05, 0x06, 0x04, 0x0A, 0x06, 0x07, 0x25, 0x05, + 0x00, 0x04, 0x9F, 0x04, 0xA0, 0x04, 0xB0, 0x04, 0xC0, 0x04, 0xE0, 0x04, 0x06, 0xC0, 0x04, 0xF0, + 0x04, 0x02, 0x00, 0x04, 0x20, 0x04, 0xD0, 0x04, 0xE0, 0x04, 0x04, 0x04, 0xB8, 0xFF, 0xF8, 0xB4, + 0x10, 0x10, 0x02, 0x55, 0x04, 0xB8, 0xFF, 0xFA, 0x40, 0x17, 0x0E, 0x0E, 0x02, 0x55, 0x04, 0x04, + 0x0C, 0x0C, 0x02, 0x55, 0x04, 0x0A, 0x0B, 0x0B, 0x02, 0x55, 0x04, 0x14, 0x0B, 0x0B, 0x06, 0x55, + 0x04, 0xB8, 0xFF, 0xEA, 0xB4, 0x10, 0x10, 0x06, 0x55, 0x04, 0xB8, 0xFF, 0xFE, 0xB4, 0x0D, 0x0D, + 0x06, 0x55, 0x04, 0xB8, 0xFF, 0xFC, 0x40, 0x0A, 0x0C, 0x0C, 0x06, 0x55, 0x04, 0x4E, 0x08, 0x47, + 0x50, 0x18, 0x2B, 0x10, 0xF6, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x5D, 0x71, 0x72, + 0x3C, 0xFD, 0x3C, 0x00, 0x3F, 0x3F, 0x3C, 0x3F, 0xED, 0x2B, 0x01, 0x11, 0x12, 0x39, 0x39, 0x11, + 0x12, 0x39, 0x39, 0x31, 0x30, 0x01, 0x5D, 0x72, 0x71, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x1B, 0xB7, 0x04, 0x0A, 0x05, 0x06, 0x00, 0x40, 0x01, 0x00, 0x00, 0x18, 0x3F, 0x1A, + 0xCD, 0x3F, 0x3F, 0x30, 0x31, 0x59, 0x13, 0x35, 0x33, 0x15, 0x03, 0x11, 0x33, 0x11, 0x88, 0xB4, + 0xB4, 0xB4, 0x04, 0xEB, 0xCF, 0xCF, 0xFB, 0x15, 0x04, 0x26, 0xFB, 0xDA, 0x00, 0x01, 0x00, 0x87, + 0x00, 0x00, 0x03, 0xE6, 0x04, 0x3E, 0x00, 0x16, 0x01, 0xE6, 0xB0, 0x85, 0x2B, 0x58, 0x40, 0x13, + 0x05, 0x03, 0x06, 0x13, 0x02, 0xA8, 0x10, 0xB8, 0x10, 0xE3, 0x03, 0xE7, 0x13, 0xF0, 0x03, 0xF6, + 0x13, 0x06, 0x04, 0xB8, 0xFF, 0xF0, 0x40, 0x22, 0x0B, 0x0D, 0x34, 0x79, 0x10, 0x01, 0x98, 0x10, + 0xD0, 0x18, 0xE0, 0x18, 0xFF, 0x18, 0x04, 0x20, 0x08, 0x14, 0x0E, 0x14, 0x16, 0x12, 0x1C, 0x05, + 0x07, 0x01, 0x06, 0x16, 0x0D, 0x0A, 0x0D, 0x0E, 0x0C, 0x0E, 0x41, 0x10, 0xFF, 0xF8, 0x00, 0x0D, + 0x00, 0x0D, 0x01, 0x40, 0x00, 0x56, 0x00, 0x0E, 0xFF, 0xF2, 0x00, 0x0B, 0x00, 0x0B, 0x01, 0x40, + 0x00, 0x56, 0x00, 0x0E, 0xFF, 0xF4, 0x00, 0x0C, 0x00, 0x0C, 0x01, 0x40, 0x40, 0x1C, 0x56, 0x0E, + 0x24, 0x18, 0x40, 0x10, 0x10, 0x02, 0x55, 0x18, 0x40, 0x0B, 0x0B, 0x02, 0x55, 0x0B, 0x28, 0x10, + 0x10, 0x02, 0x55, 0x0B, 0x14, 0x0E, 0x0E, 0x02, 0x55, 0x0B, 0xB8, 0xFF, 0xEC, 0x40, 0x11, 0x0D, + 0x0D, 0x02, 0x55, 0x0B, 0x04, 0x0C, 0x0C, 0x02, 0x55, 0x0B, 0x22, 0x0B, 0x0B, 0x02, 0x55, 0x0B, + 0xB8, 0xFF, 0xF4, 0x40, 0x0B, 0x0B, 0x0B, 0x06, 0x55, 0x0B, 0x14, 0x10, 0x10, 0x06, 0x55, 0x0B, + 0xB8, 0xFF, 0xF9, 0x40, 0x0B, 0x0D, 0x0D, 0x06, 0x55, 0x0B, 0x0A, 0x0F, 0x0F, 0x06, 0x55, 0x0B, + 0xB8, 0xFF, 0xF6, 0x40, 0x12, 0x0C, 0x0C, 0x06, 0x55, 0x0B, 0x40, 0x33, 0x36, 0x34, 0xFF, 0x0B, + 0x01, 0xFF, 0x0B, 0x01, 0x0B, 0x4E, 0x18, 0xB8, 0xFF, 0xC0, 0x40, 0x1A, 0x34, 0x36, 0x34, 0xB0, + 0x18, 0xF0, 0x18, 0x02, 0x70, 0x18, 0xA0, 0x18, 0xB0, 0x18, 0xC0, 0x18, 0x04, 0x18, 0x03, 0x02, + 0x33, 0x15, 0x16, 0x08, 0x0D, 0x0D, 0xB8, 0x01, 0x40, 0xB4, 0x56, 0x16, 0x0E, 0x0B, 0x0B, 0xB8, + 0x01, 0x40, 0xB4, 0x56, 0x16, 0x0C, 0x0C, 0x0C, 0xB8, 0x01, 0x40, 0xB4, 0x56, 0x16, 0x25, 0x01, + 0x00, 0xB8, 0xFF, 0xF6, 0xB4, 0x11, 0x11, 0x02, 0x55, 0x00, 0xB8, 0xFF, 0xFA, 0xB4, 0x10, 0x10, + 0x02, 0x55, 0x00, 0xB8, 0xFF, 0xFA, 0x40, 0x17, 0x0E, 0x0E, 0x02, 0x55, 0x00, 0x04, 0x0C, 0x0C, + 0x02, 0x55, 0x00, 0x0A, 0x0B, 0x0B, 0x02, 0x55, 0x00, 0x04, 0x0B, 0x0B, 0x06, 0x55, 0x00, 0xB8, + 0xFF, 0xFA, 0x40, 0x11, 0x0F, 0x0F, 0x06, 0x55, 0x00, 0x02, 0x0C, 0x0C, 0x06, 0x55, 0x00, 0x04, + 0x0D, 0x0D, 0x06, 0x55, 0x00, 0xB8, 0xFF, 0xC0, 0x40, 0x12, 0x33, 0x36, 0x34, 0xF0, 0x00, 0x01, + 0x00, 0x00, 0x20, 0x00, 0xD0, 0x00, 0xE0, 0x00, 0x04, 0x00, 0x4E, 0x17, 0x10, 0xF6, 0x5D, 0x71, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x3C, 0xFD, 0x2B, 0x2B, 0x2B, 0x3C, + 0xF4, 0x3C, 0x10, 0x5D, 0x71, 0x2B, 0xF6, 0x5D, 0x71, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0xED, 0x2B, 0x2B, 0x2B, 0x3C, 0x10, 0x3C, 0x00, 0x3F, 0x3C, + 0x3F, 0x3F, 0xED, 0x11, 0x39, 0x01, 0x12, 0x39, 0x31, 0x30, 0x43, 0x79, 0x40, 0x16, 0x06, 0x11, + 0x09, 0x0A, 0x08, 0x0A, 0x07, 0x0A, 0x03, 0x06, 0x10, 0x26, 0x11, 0x06, 0x0E, 0x1B, 0x01, 0x0F, + 0x0A, 0x12, 0x1B, 0x01, 0x00, 0x2B, 0x01, 0x2B, 0x2B, 0x2A, 0x81, 0x01, 0x5D, 0x71, 0x00, 0x2B, + 0x5D, 0x71, 0x1B, 0x40, 0x09, 0x0D, 0x0A, 0x16, 0x0A, 0x01, 0x06, 0x03, 0x05, 0x12, 0xB8, 0x03, + 0x30, 0xB2, 0x6C, 0x05, 0x07, 0x00, 0x18, 0x3F, 0x2B, 0x32, 0x3F, 0x3F, 0x3F, 0x30, 0x31, 0x59, + 0x33, 0x11, 0x33, 0x15, 0x36, 0x33, 0x32, 0x16, 0x16, 0x17, 0x16, 0x15, 0x11, 0x23, 0x11, 0x34, + 0x26, 0x26, 0x23, 0x22, 0x06, 0x15, 0x11, 0x87, 0xA2, 0x75, 0xDD, 0x60, 0xA1, 0x50, 0x10, 0x0A, + 0xB4, 0x2A, 0x6B, 0x48, 0x73, 0xA7, 0x04, 0x26, 0x97, 0xAF, 0x45, 0x70, 0x4D, 0x32, 0x7D, 0xFD, + 0x73, 0x02, 0x86, 0x6E, 0x6D, 0x41, 0x92, 0xCC, 0xFD, 0xBC, 0x00, 0x01, 0x00, 0x24, 0xFF, 0xF2, + 0x02, 0x2A, 0x05, 0x99, 0x00, 0x17, 0x01, 0x6E, 0xB0, 0x85, 0x2B, 0x58, 0x41, 0x20, 0x00, 0x0C, + 0xFF, 0xFE, 0x00, 0x0C, 0x00, 0x0C, 0x01, 0x40, 0x00, 0x56, 0x00, 0x0B, 0xFF, 0xFE, 0x00, 0x0C, + 0x00, 0x0C, 0x01, 0x40, 0x00, 0x56, 0x00, 0x08, 0xFF, 0xFE, 0x00, 0x0C, 0x00, 0x0C, 0x01, 0x40, + 0x00, 0x56, 0x00, 0x07, 0xFF, 0xFE, 0x00, 0x0C, 0x00, 0x0C, 0x01, 0x40, 0x00, 0x56, 0x00, 0x06, + 0xFF, 0xFE, 0x00, 0x0C, 0x00, 0x0C, 0x01, 0x40, 0x00, 0x56, 0x00, 0x0A, 0xFF, 0xC0, 0xB3, 0x23, + 0x26, 0x34, 0x09, 0xB8, 0xFF, 0xC0, 0x40, 0x24, 0x23, 0x26, 0x34, 0x80, 0x19, 0x01, 0x00, 0x01, + 0x0C, 0x0D, 0x0A, 0x01, 0x03, 0x00, 0x16, 0x10, 0x09, 0x2B, 0x0F, 0x0A, 0x06, 0x16, 0x1C, 0x03, + 0x0B, 0x0F, 0x10, 0x22, 0x00, 0x22, 0x01, 0x0D, 0x12, 0x08, 0x0D, 0x0D, 0xB8, 0x01, 0x40, 0xB4, + 0x56, 0x12, 0x0E, 0x0B, 0x0B, 0xB8, 0x01, 0x40, 0xB4, 0x56, 0x12, 0x0A, 0x0C, 0x0C, 0xB8, 0x01, + 0x40, 0x40, 0x22, 0x56, 0x12, 0x25, 0x0C, 0x01, 0xFF, 0x07, 0x08, 0x45, 0x09, 0x45, 0x60, 0x07, + 0x70, 0x07, 0x80, 0x07, 0x90, 0x07, 0x04, 0x00, 0x07, 0x20, 0x07, 0xA0, 0x07, 0xB0, 0x07, 0xC0, + 0x07, 0xD0, 0x07, 0x06, 0x07, 0xB8, 0xFF, 0xEE, 0xB4, 0x10, 0x10, 0x02, 0x55, 0x07, 0xB8, 0xFF, + 0xF4, 0xB4, 0x0F, 0x0F, 0x02, 0x55, 0x07, 0xB8, 0xFF, 0xF2, 0xB4, 0x0E, 0x0E, 0x02, 0x55, 0x07, + 0xB8, 0xFF, 0xF8, 0xB4, 0x0D, 0x0D, 0x02, 0x55, 0x07, 0xB8, 0xFF, 0xF8, 0xB4, 0x0C, 0x0C, 0x02, + 0x55, 0x07, 0xB8, 0xFF, 0xFA, 0xB4, 0x10, 0x10, 0x06, 0x55, 0x07, 0xB8, 0xFF, 0xF0, 0x40, 0x0B, + 0x0F, 0x0F, 0x06, 0x55, 0x07, 0x06, 0x0C, 0x0C, 0x06, 0x55, 0x07, 0xB8, 0xFF, 0xE8, 0xB4, 0x0D, + 0x0D, 0x06, 0x55, 0x07, 0xBA, 0x02, 0x6A, 0x00, 0x18, 0x01, 0x36, 0xB1, 0x66, 0x18, 0x2B, 0x10, + 0xF6, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x5D, 0x71, 0xF4, 0xE4, 0x10, 0xED, + 0x3C, 0xFD, 0x2B, 0x2B, 0x2B, 0x3C, 0x10, 0xE4, 0xF4, 0x3C, 0x00, 0x3F, 0xED, 0x3F, 0x3C, 0xFD, + 0x3C, 0x11, 0x39, 0x12, 0x39, 0x11, 0x33, 0x33, 0x10, 0xC9, 0x31, 0x30, 0x01, 0x5D, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x1B, 0xB1, 0x03, 0x16, 0xB8, 0x03, 0x32, 0xB4, 0x6C, 0x03, 0x0B, + 0x01, 0x00, 0xB8, 0x03, 0x32, 0x40, 0x09, 0x6C, 0x01, 0x0A, 0x0D, 0x0D, 0x11, 0x0E, 0x0A, 0x09, + 0xB8, 0x03, 0x2D, 0xB2, 0x6C, 0x0A, 0x06, 0x00, 0x18, 0x3F, 0x2B, 0x33, 0x32, 0x32, 0x2F, 0x3F, + 0x2B, 0x3F, 0x2B, 0x30, 0x31, 0x59, 0x25, 0x17, 0x06, 0x23, 0x22, 0x26, 0x26, 0x35, 0x11, 0x23, + 0x35, 0x33, 0x11, 0x37, 0x11, 0x33, 0x15, 0x23, 0x11, 0x14, 0x16, 0x16, 0x33, 0x32, 0x02, 0x10, + 0x1A, 0x4C, 0x3C, 0x62, 0x6C, 0x2C, 0x84, 0x84, 0xB3, 0xB5, 0xB5, 0x13, 0x2B, 0x28, 0x1E, 0xA1, + 0x9F, 0x10, 0x3E, 0x65, 0xA2, 0x02, 0x63, 0x8C, 0x01, 0x07, 0x6C, 0xFE, 0x8D, 0x8C, 0xFD, 0x93, + 0x4D, 0x2C, 0x1A, 0x00, 0x00, 0x01, 0x00, 0x19, 0x04, 0xAA, 0x02, 0x92, 0x05, 0xC2, 0x00, 0x06, + 0x00, 0x69, 0xB0, 0x85, 0x2B, 0x58, 0x40, 0x14, 0x05, 0x06, 0x01, 0x00, 0x02, 0x10, 0x02, 0x02, + 0x02, 0x87, 0x00, 0x64, 0x04, 0x03, 0x00, 0x05, 0x3C, 0x06, 0x3D, 0x04, 0xB8, 0xFF, 0xC0, 0x40, + 0x11, 0x09, 0x0C, 0x34, 0x04, 0x64, 0x00, 0x64, 0x03, 0x7F, 0x01, 0x3C, 0x02, 0x19, 0x07, 0xA9, + 0x68, 0x18, 0x2B, 0x19, 0x4E, 0x10, 0xF4, 0x18, 0x4D, 0xFD, 0x19, 0xF6, 0x18, 0xFD, 0xFD, 0x2B, + 0x19, 0xF6, 0x18, 0xED, 0x00, 0x3F, 0x3C, 0xED, 0xFD, 0x5D, 0x3C, 0x3C, 0x3C, 0x31, 0x30, 0x1B, + 0x40, 0x0C, 0x02, 0x00, 0x06, 0x80, 0x0F, 0x03, 0x7F, 0x03, 0x02, 0x14, 0x03, 0x03, 0x00, 0x18, + 0x2F, 0x5F, 0x5E, 0x5D, 0x1A, 0xCC, 0x39, 0x39, 0x30, 0x31, 0x59, 0x01, 0x07, 0x23, 0x13, 0x33, + 0x13, 0x23, 0x01, 0x58, 0x71, 0xCE, 0xD8, 0xC0, 0xE1, 0xCC, 0x05, 0x54, 0xAA, 0x01, 0x18, 0xFE, + 0xE8, 0x00, 0x00, 0x01, 0xFF, 0x02, 0xFE, 0xBB, 0xFF, 0xCF, 0xFF, 0x88, 0x00, 0x03, 0x00, 0x28, + 0x40, 0x13, 0x00, 0x3C, 0x50, 0x01, 0x90, 0x01, 0xD0, 0x01, 0x03, 0x00, 0x01, 0x01, 0x01, 0x03, + 0x3C, 0x40, 0x00, 0x01, 0x00, 0xB8, 0xFF, 0xC0, 0xB3, 0x09, 0x0A, 0x34, 0x00, 0x2F, 0x2B, 0x71, + 0xED, 0x00, 0x2F, 0x71, 0x72, 0xED, 0x31, 0x30, 0x03, 0x35, 0x33, 0x15, 0xFE, 0xCD, 0xFE, 0xBB, + 0xCD, 0xCD, 0x00, 0x01, 0xFE, 0x84, 0x06, 0x0B, 0xFF, 0xFC, 0x07, 0x23, 0x00, 0x03, 0x00, 0x54, + 0xB3, 0x99, 0x01, 0x01, 0x02, 0xB8, 0xFF, 0xE0, 0xB3, 0x0E, 0x11, 0x34, 0x02, 0xB8, 0xFF, 0xC0, + 0x40, 0x1F, 0x09, 0x0A, 0x34, 0x02, 0x87, 0x1F, 0x01, 0x2F, 0x01, 0x02, 0x1F, 0x01, 0x2F, 0x01, + 0x8F, 0x01, 0x9F, 0x01, 0x04, 0xAF, 0x01, 0xBF, 0x01, 0x02, 0x01, 0x40, 0x09, 0x10, 0x34, 0x01, + 0x03, 0xB8, 0x02, 0x53, 0xB7, 0x02, 0x86, 0x4F, 0x00, 0xDF, 0x00, 0x02, 0x00, 0xB9, 0x02, 0x60, + 0x00, 0x01, 0x2F, 0xED, 0x5D, 0xFD, 0xED, 0x00, 0x2F, 0x2B, 0x5D, 0x71, 0x72, 0xED, 0x2B, 0x31, + 0x30, 0x01, 0x2B, 0x5D, 0x03, 0x33, 0x03, 0x23, 0xF5, 0xF1, 0xE7, 0x91, 0x07, 0x23, 0xFE, 0xE8, + 0xFF, 0xFF, 0x00, 0x4B, 0xFF, 0xE8, 0x04, 0x1E, 0x07, 0x23, 0x02, 0x26, 0x00, 0x04, 0x00, 0x00, + 0x00, 0x27, 0x00, 0x09, 0x00, 0xDF, 0x00, 0x00, 0x01, 0x07, 0x00, 0x0B, 0x03, 0x4C, 0x00, 0x00, + 0x00, 0x4B, 0xB4, 0x03, 0x5F, 0x28, 0x01, 0x28, 0xB8, 0xFF, 0xC0, 0x40, 0x2F, 0x17, 0x19, 0x34, + 0x28, 0x21, 0x00, 0x48, 0x2B, 0x02, 0x20, 0x40, 0x3B, 0x35, 0x20, 0x40, 0x2D, 0x32, 0x34, 0x0F, + 0x20, 0x9F, 0x20, 0x02, 0x00, 0x20, 0x23, 0x0A, 0x0A, 0x41, 0x02, 0x1F, 0x20, 0x2F, 0x20, 0x02, + 0xF0, 0x20, 0x01, 0x5F, 0x20, 0x01, 0x20, 0x40, 0x09, 0x0C, 0x34, 0x20, 0x00, 0x2F, 0x2B, 0x5D, + 0x71, 0x72, 0x35, 0x01, 0x2B, 0x72, 0x2B, 0x2B, 0x35, 0x2B, 0x2B, 0x5D, 0x35, 0x00, 0xFF, 0xFF, + 0x00, 0x4B, 0xFE, 0xBB, 0x04, 0x1E, 0x05, 0xC2, 0x02, 0x26, 0x00, 0x04, 0x00, 0x00, 0x00, 0x27, + 0x00, 0x09, 0x00, 0xDF, 0x00, 0x00, 0x01, 0x07, 0x00, 0x0A, 0x02, 0xDA, 0x00, 0x00, 0x00, 0x39, + 0xB5, 0x03, 0x50, 0x26, 0x60, 0x26, 0x02, 0xB8, 0xFF, 0xD8, 0x40, 0x1D, 0x26, 0x27, 0x04, 0x04, + 0x41, 0x02, 0x20, 0x40, 0x3B, 0x35, 0x20, 0x40, 0x2D, 0x32, 0x34, 0x0F, 0x20, 0x9F, 0x20, 0x02, + 0x00, 0x20, 0x23, 0x0A, 0x0A, 0x41, 0x02, 0x01, 0x24, 0xB9, 0x02, 0x22, 0x00, 0x29, 0x00, 0x2B, + 0x01, 0x2B, 0x72, 0x2B, 0x2B, 0x35, 0x2B, 0x5D, 0x35, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x0E, 0x02, 0xB5, 0x00, 0x3C, 0x00, 0xCA, 0x00, 0x07, 0x00, 0x02, 0x00, 0x10, 0x00, 0x40, + 0x00, 0x86, 0x00, 0x00, 0x05, 0x17, 0x0C, 0x2F, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x9E, 0x01, 0xDA, 0x03, 0x1B, 0x04, 0x70, 0x05, 0x88, 0x06, 0x9F, 0x07, 0x7C, + 0x07, 0xC3, 0x07, 0xE3, 0x08, 0x1A, 0x08, 0x51, 0x08, 0x7F, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x07, 0x0C, 0xCD, 0x17, 0xC2, 0xAB, 0x16, 0x5F, 0x0F, 0x3C, 0xF5, 0x08, 0x1B, 0x08, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xA2, 0xE3, 0x27, 0x2A, 0x00, 0x00, 0x00, 0x00, 0xE5, 0x55, 0x1C, 0x63, + 0xFA, 0xAF, 0xFD, 0x67, 0x10, 0x00, 0x08, 0x51, 0x00, 0x00, 0x00, 0x09, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x01, 0x00, 0x02, 0x39, 0x00, 0x00, 0x04, 0xE3, 0x00, 0x30, + 0x05, 0x56, 0x00, 0x09, 0x04, 0x73, 0x00, 0x4B, 0x04, 0x73, 0x00, 0x42, 0x01, 0xC7, 0x00, 0x88, + 0x04, 0x73, 0x00, 0x87, 0x02, 0x39, 0x00, 0x24, 0x02, 0xAA, 0x00, 0x19, 0x00, 0x00, 0xFF, 0x02, + 0x00, 0x00, 0xFE, 0x84, 0x04, 0x73, 0x00, 0x4B, 0x00, 0x4B, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x07, 0x3E, 0xFE, 0x4E, 0x00, 0x43, 0x10, 0x00, 0xFA, 0xAF, 0xFA, 0x7A, 0x10, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, + 0x00, 0x03, 0x03, 0x88, 0x01, 0x90, 0x00, 0x05, 0x00, 0x08, 0x05, 0x9A, 0x05, 0x33, 0x00, 0x00, + 0x01, 0x1B, 0x05, 0x9A, 0x05, 0x33, 0x00, 0x00, 0x03, 0xD1, 0x00, 0x66, 0x02, 0x12, 0x08, 0x05, + 0x02, 0x0B, 0x06, 0x04, 0x02, 0x02, 0x02, 0x02, 0x02, 0x04, 0x20, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x4D, 0x43, 0x20, 0x00, 0x40, + 0x00, 0x20, 0x1E, 0xC7, 0x05, 0xD3, 0xFE, 0x51, 0x01, 0x33, 0x07, 0x3E, 0x01, 0xB2, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x04, 0x26, 0x05, 0xBB, 0x00, 0x00, 0x00, 0x20, 0x00, 0x15, + 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x01, 0x01, 0x01, 0x01, 0x01, 0x05, 0x03, 0x03, 0x01, 0x02, + 0x01, 0x01, 0x00, 0x18, 0x05, 0xEC, 0x0B, 0xC0, 0x00, 0xF8, 0x08, 0xFF, 0x00, 0x08, 0x00, 0x08, + 0xFF, 0xFE, 0x00, 0x09, 0x00, 0x09, 0xFF, 0xFD, 0x00, 0x0A, 0x00, 0x0A, 0xFF, 0xFD, 0x00, 0x0B, + 0x00, 0x0B, 0xFF, 0xFD, 0x00, 0x0C, 0x00, 0x0C, 0xFF, 0xFD, 0x00, 0x0D, 0x00, 0x0D, 0xFF, 0xFD, + 0x00, 0x0E, 0x00, 0x0D, 0xFF, 0xFD, 0x00, 0x0F, 0x00, 0x0E, 0xFF, 0xFD, 0x00, 0x10, 0x00, 0x0F, + 0xFF, 0xFD, 0x00, 0x11, 0x00, 0x0F, 0xFF, 0xFC, 0x00, 0x12, 0x00, 0x11, 0xFF, 0xFC, 0x00, 0x13, + 0x00, 0x12, 0xFF, 0xFC, 0x00, 0x14, 0x00, 0x13, 0xFF, 0xFC, 0x00, 0x15, 0x00, 0x13, 0xFF, 0xFB, + 0x00, 0x16, 0x00, 0x14, 0xFF, 0xFB, 0x00, 0x17, 0x00, 0x15, 0xFF, 0xFB, 0x00, 0x18, 0x00, 0x15, + 0xFF, 0xFA, 0x00, 0x19, 0x00, 0x17, 0xFF, 0xFB, 0x00, 0x1A, 0x00, 0x19, 0xFF, 0xFA, 0x00, 0x1B, + 0x00, 0x1A, 0xFF, 0xFA, 0x00, 0x1C, 0x00, 0x1A, 0xFF, 0xFA, 0x00, 0x1D, 0x00, 0x1B, 0xFF, 0xFA, + 0x00, 0x1E, 0x00, 0x1C, 0xFF, 0xF9, 0x00, 0x1F, 0x00, 0x1C, 0xFF, 0xF9, 0x00, 0x20, 0x00, 0x1D, + 0xFF, 0xF9, 0x00, 0x21, 0x00, 0x1F, 0xFF, 0xF9, 0x00, 0x22, 0x00, 0x20, 0xFF, 0xF9, 0x00, 0x23, + 0x00, 0x20, 0xFF, 0xF8, 0x00, 0x24, 0x00, 0x21, 0xFF, 0xF8, 0x00, 0x25, 0x00, 0x22, 0xFF, 0xF8, + 0x00, 0x26, 0x00, 0x22, 0xFF, 0xF7, 0x00, 0x27, 0x00, 0x23, 0xFF, 0xF7, 0x00, 0x28, 0x00, 0x24, + 0xFF, 0xF7, 0x00, 0x29, 0x00, 0x26, 0xFF, 0xF7, 0x00, 0x2A, 0x00, 0x26, 0xFF, 0xF7, 0x00, 0x2B, + 0x00, 0x27, 0xFF, 0xF6, 0x00, 0x2C, 0x00, 0x28, 0xFF, 0xF6, 0x00, 0x2D, 0x00, 0x28, 0xFF, 0xF6, + 0x00, 0x2E, 0x00, 0x2A, 0xFF, 0xF6, 0x00, 0x2F, 0x00, 0x2B, 0xFF, 0xF6, 0x00, 0x30, 0x00, 0x2D, + 0xFF, 0xF6, 0x00, 0x31, 0x00, 0x2D, 0xFF, 0xF5, 0x00, 0x32, 0x00, 0x2E, 0xFF, 0xF5, 0x00, 0x33, + 0x00, 0x2F, 0xFF, 0xF5, 0x00, 0x34, 0x00, 0x30, 0xFF, 0xF4, 0x00, 0x35, 0x00, 0x30, 0xFF, 0xF4, + 0x00, 0x36, 0x00, 0x31, 0xFF, 0xF4, 0x00, 0x37, 0x00, 0x33, 0xFF, 0xF4, 0x00, 0x38, 0x00, 0x34, + 0xFF, 0xF3, 0x00, 0x39, 0x00, 0x34, 0xFF, 0xF3, 0x00, 0x3A, 0x00, 0x35, 0xFF, 0xF3, 0x00, 0x3B, + 0x00, 0x35, 0xFF, 0xF3, 0x00, 0x3C, 0x00, 0x36, 0xFF, 0xF3, 0x00, 0x3D, 0x00, 0x37, 0xFF, 0xF3, + 0x00, 0x3E, 0x00, 0x38, 0xFF, 0xF3, 0x00, 0x3F, 0x00, 0x39, 0xFF, 0xF2, 0x00, 0x40, 0x00, 0x3A, + 0xFF, 0xF2, 0x00, 0x41, 0x00, 0x3B, 0xFF, 0xF2, 0x00, 0x42, 0x00, 0x3C, 0xFF, 0xF2, 0x00, 0x43, + 0x00, 0x3C, 0xFF, 0xF1, 0x00, 0x44, 0x00, 0x3D, 0xFF, 0xF1, 0x00, 0x45, 0x00, 0x3E, 0xFF, 0xF1, + 0x00, 0x46, 0x00, 0x3F, 0xFF, 0xF0, 0x00, 0x47, 0x00, 0x40, 0xFF, 0xF0, 0x00, 0x48, 0x00, 0x41, + 0xFF, 0xF0, 0x00, 0x49, 0x00, 0x42, 0xFF, 0xF0, 0x00, 0x4A, 0x00, 0x42, 0xFF, 0xF0, 0x00, 0x4B, + 0x00, 0x43, 0xFF, 0xF0, 0x00, 0x4C, 0x00, 0x44, 0xFF, 0xF0, 0x00, 0x4D, 0x00, 0x46, 0xFF, 0xEF, + 0x00, 0x4E, 0x00, 0x46, 0xFF, 0xEF, 0x00, 0x4F, 0x00, 0x47, 0xFF, 0xEF, 0x00, 0x50, 0x00, 0x48, + 0xFF, 0xEF, 0x00, 0x51, 0x00, 0x49, 0xFF, 0xEE, 0x00, 0x52, 0x00, 0x49, 0xFF, 0xEE, 0x00, 0x53, + 0x00, 0x4A, 0xFF, 0xEE, 0x00, 0x54, 0x00, 0x4B, 0xFF, 0xED, 0x00, 0x55, 0x00, 0x4D, 0xFF, 0xED, + 0x00, 0x56, 0x00, 0x4D, 0xFF, 0xED, 0x00, 0x57, 0x00, 0x4E, 0xFF, 0xED, 0x00, 0x58, 0x00, 0x4F, + 0xFF, 0xEC, 0x00, 0x59, 0x00, 0x50, 0xFF, 0xEC, 0x00, 0x5A, 0x00, 0x50, 0xFF, 0xED, 0x00, 0x5B, + 0x00, 0x51, 0xFF, 0xEC, 0x00, 0x5C, 0x00, 0x53, 0xFF, 0xEC, 0x00, 0x5D, 0x00, 0x54, 0xFF, 0xEC, + 0x00, 0x5E, 0x00, 0x54, 0xFF, 0xEC, 0x00, 0x5F, 0x00, 0x55, 0xFF, 0xEB, 0x00, 0x60, 0x00, 0x56, + 0xFF, 0xEB, 0x00, 0x61, 0x00, 0x57, 0xFF, 0xEB, 0x00, 0x62, 0x00, 0x57, 0xFF, 0xEA, 0x00, 0x63, + 0x00, 0x59, 0xFF, 0xEA, 0x00, 0x64, 0x00, 0x5A, 0xFF, 0xEA, 0x00, 0x65, 0x00, 0x5B, 0xFF, 0xEA, + 0x00, 0x66, 0x00, 0x5C, 0xFF, 0xE9, 0x00, 0x67, 0x00, 0x5C, 0xFF, 0xE9, 0x00, 0x68, 0x00, 0x5D, + 0xFF, 0xE9, 0x00, 0x69, 0x00, 0x5E, 0xFF, 0xE8, 0x00, 0x6A, 0x00, 0x60, 0xFF, 0xE9, 0x00, 0x6B, + 0x00, 0x60, 0xFF, 0xE9, 0x00, 0x6C, 0x00, 0x61, 0xFF, 0xE9, 0x00, 0x6D, 0x00, 0x62, 0xFF, 0xE8, + 0x00, 0x6E, 0x00, 0x63, 0xFF, 0xE8, 0x00, 0x6F, 0x00, 0x63, 0xFF, 0xE8, 0x00, 0x70, 0x00, 0x64, + 0xFF, 0xE7, 0x00, 0x71, 0x00, 0x65, 0xFF, 0xE7, 0x00, 0x72, 0x00, 0x67, 0xFF, 0xE7, 0x00, 0x73, + 0x00, 0x67, 0xFF, 0xE7, 0x00, 0x74, 0x00, 0x68, 0xFF, 0xE6, 0x00, 0x75, 0x00, 0x69, 0xFF, 0xE6, + 0x00, 0x76, 0x00, 0x6A, 0xFF, 0xE6, 0x00, 0x77, 0x00, 0x6A, 0xFF, 0xE5, 0x00, 0x78, 0x00, 0x6B, + 0xFF, 0xE5, 0x00, 0x79, 0x00, 0x6D, 0xFF, 0xE5, 0x00, 0x7A, 0x00, 0x6E, 0xFF, 0xE5, 0x00, 0x7B, + 0x00, 0x6E, 0xFF, 0xE5, 0x00, 0x7C, 0x00, 0x6F, 0xFF, 0xE5, 0x00, 0x7D, 0x00, 0x70, 0xFF, 0xE5, + 0x00, 0x7E, 0x00, 0x71, 0xFF, 0xE4, 0x00, 0x7F, 0x00, 0x71, 0xFF, 0xE4, 0x00, 0x80, 0x00, 0x73, + 0xFF, 0xE4, 0x00, 0x81, 0x00, 0x74, 0xFF, 0xE4, 0x00, 0x82, 0x00, 0x75, 0xFF, 0xE3, 0x00, 0x83, + 0x00, 0x76, 0xFF, 0xE3, 0x00, 0x84, 0x00, 0x76, 0xFF, 0xE3, 0x00, 0x85, 0x00, 0x77, 0xFF, 0xE2, + 0x00, 0x86, 0x00, 0x78, 0xFF, 0xE2, 0x00, 0x87, 0x00, 0x79, 0xFF, 0xE2, 0x00, 0x88, 0x00, 0x7A, + 0xFF, 0xE2, 0x00, 0x89, 0x00, 0x7B, 0xFF, 0xE1, 0x00, 0x8A, 0x00, 0x7C, 0xFF, 0xE1, 0x00, 0x8B, + 0x00, 0x7D, 0xFF, 0xE2, 0x00, 0x8C, 0x00, 0x7D, 0xFF, 0xE1, 0x00, 0x8D, 0x00, 0x7E, 0xFF, 0xE1, + 0x00, 0x8E, 0x00, 0x7F, 0xFF, 0xE1, 0x00, 0x8F, 0x00, 0x81, 0xFF, 0xE1, 0x00, 0x90, 0x00, 0x81, + 0xFF, 0xE0, 0x00, 0x91, 0x00, 0x82, 0xFF, 0xE0, 0x00, 0x92, 0x00, 0x83, 0xFF, 0xE0, 0x00, 0x93, + 0x00, 0x84, 0xFF, 0xDF, 0x00, 0x94, 0x00, 0x84, 0xFF, 0xDF, 0x00, 0x95, 0x00, 0x85, 0xFF, 0xDF, + 0x00, 0x96, 0x00, 0x87, 0xFF, 0xDF, 0x00, 0x97, 0x00, 0x88, 0xFF, 0xE0, 0x00, 0x98, 0x00, 0x88, + 0xFF, 0xDF, 0x00, 0x99, 0x00, 0x89, 0xFF, 0xDF, 0x00, 0x9A, 0x00, 0x8A, 0xFF, 0xDE, 0x00, 0x9B, + 0x00, 0x8B, 0xFF, 0xDE, 0x00, 0x9C, 0x00, 0x8C, 0xFF, 0xDE, 0x00, 0x9D, 0x00, 0x8C, 0xFF, 0xDE, + 0x00, 0x9E, 0x00, 0x8E, 0xFF, 0xDE, 0x00, 0x9F, 0x00, 0x8F, 0xFF, 0xDE, 0x00, 0xA0, 0x00, 0x90, + 0xFF, 0xDE, 0x00, 0xA1, 0x00, 0x90, 0xFF, 0xDD, 0x00, 0xA2, 0x00, 0x91, 0xFF, 0xDD, 0x00, 0xA3, + 0x00, 0x92, 0xFF, 0xDD, 0x00, 0xA4, 0x00, 0x93, 0xFF, 0xDD, 0x00, 0xA5, 0x00, 0x94, 0xFF, 0xDC, + 0x00, 0xA6, 0x00, 0x95, 0xFF, 0xDB, 0x00, 0xA7, 0x00, 0x96, 0xFF, 0xDB, 0x00, 0xA8, 0x00, 0x97, + 0xFF, 0xDB, 0x00, 0xA9, 0x00, 0x97, 0xFF, 0xDB, 0x00, 0xAA, 0x00, 0x98, 0xFF, 0xDB, 0x00, 0xAB, + 0x00, 0x99, 0xFF, 0xDB, 0x00, 0xAC, 0x00, 0x9B, 0xFF, 0xDB, 0x00, 0xAD, 0x00, 0x9B, 0xFF, 0xDB, + 0x00, 0xAE, 0x00, 0x9C, 0xFF, 0xDB, 0x00, 0xAF, 0x00, 0x9D, 0xFF, 0xDB, 0x00, 0xB0, 0x00, 0x9E, + 0xFF, 0xDB, 0x00, 0xB1, 0x00, 0x9E, 0xFF, 0xDA, 0x00, 0xB2, 0x00, 0x9F, 0xFF, 0xDA, 0x00, 0xB3, + 0x00, 0xA0, 0xFF, 0xDA, 0x00, 0xB4, 0x00, 0xA2, 0xFF, 0xD9, 0x00, 0xB5, 0x00, 0xA3, 0xFF, 0xD8, + 0x00, 0xB6, 0x00, 0xA3, 0xFF, 0xD8, 0x00, 0xB7, 0x00, 0xA4, 0xFF, 0xD8, 0x00, 0xB8, 0x00, 0xA5, + 0xFF, 0xD8, 0x00, 0xB9, 0x00, 0xA6, 0xFF, 0xD8, 0x00, 0xBA, 0x00, 0xA6, 0xFF, 0xD8, 0x00, 0xBB, + 0x00, 0xA8, 0xFF, 0xD8, 0x00, 0xBC, 0x00, 0xA9, 0xFF, 0xD7, 0x00, 0xBD, 0x00, 0xAA, 0xFF, 0xD7, + 0x00, 0xBE, 0x00, 0xAA, 0xFF, 0xD7, 0x00, 0xBF, 0x00, 0xAB, 0xFF, 0xD7, 0x00, 0xC0, 0x00, 0xAC, + 0xFF, 0xD7, 0x00, 0xC1, 0x00, 0xAD, 0xFF, 0xD7, 0x00, 0xC2, 0x00, 0xAE, 0xFF, 0xD7, 0x00, 0xC3, + 0x00, 0xAF, 0xFF, 0xD6, 0x00, 0xC4, 0x00, 0xB0, 0xFF, 0xD6, 0x00, 0xC5, 0x00, 0xB1, 0xFF, 0xD5, + 0x00, 0xC6, 0x00, 0xB1, 0xFF, 0xD5, 0x00, 0xC7, 0x00, 0xB2, 0xFF, 0xD5, 0x00, 0xC8, 0x00, 0xB3, + 0xFF, 0xD4, 0x00, 0xC9, 0x00, 0xB4, 0xFF, 0xD4, 0x00, 0xCA, 0x00, 0xB5, 0xFF, 0xD4, 0x00, 0xCB, + 0x00, 0xB6, 0xFF, 0xD4, 0x00, 0xCC, 0x00, 0xB7, 0xFF, 0xD4, 0x00, 0xCD, 0x00, 0xB8, 0xFF, 0xD4, + 0x00, 0xCE, 0x00, 0xB9, 0xFF, 0xD4, 0x00, 0xCF, 0x00, 0xB9, 0xFF, 0xD4, 0x00, 0xD0, 0x00, 0xBA, + 0xFF, 0xD4, 0x00, 0xD1, 0x00, 0xBC, 0xFF, 0xD4, 0x00, 0xD2, 0x00, 0xBD, 0xFF, 0xD3, 0x00, 0xD3, + 0x00, 0xBD, 0xFF, 0xD2, 0x00, 0xD4, 0x00, 0xBE, 0xFF, 0xD2, 0x00, 0xD5, 0x00, 0xBF, 0xFF, 0xD2, + 0x00, 0xD6, 0x00, 0xC0, 0xFF, 0xD1, 0x00, 0xD7, 0x00, 0xC0, 0xFF, 0xD1, 0x00, 0xD8, 0x00, 0xC2, + 0xFF, 0xD1, 0x00, 0xD9, 0x00, 0xC3, 0xFF, 0xD1, 0x00, 0xDA, 0x00, 0xC4, 0xFF, 0xD1, 0x00, 0xDB, + 0x00, 0xC4, 0xFF, 0xD1, 0x00, 0xDC, 0x00, 0xC5, 0xFF, 0xD1, 0x00, 0xDD, 0x00, 0xC6, 0xFF, 0xD1, + 0x00, 0xDE, 0x00, 0xC7, 0xFF, 0xD0, 0x00, 0xDF, 0x00, 0xC7, 0xFF, 0xD0, 0x00, 0xE0, 0x00, 0xC9, + 0xFF, 0xCF, 0x00, 0xE1, 0x00, 0xCA, 0xFF, 0xCF, 0x00, 0xE2, 0x00, 0xCB, 0xFF, 0xCF, 0x00, 0xE3, + 0x00, 0xCB, 0xFF, 0xCF, 0x00, 0xE4, 0x00, 0xCC, 0xFF, 0xCF, 0x00, 0xE5, 0x00, 0xCD, 0xFF, 0xCF, + 0x00, 0xE6, 0x00, 0xCE, 0xFF, 0xCF, 0x00, 0xE7, 0x00, 0xD0, 0xFF, 0xCE, 0x00, 0xE8, 0x00, 0xD0, + 0xFF, 0xCE, 0x00, 0xE9, 0x00, 0xD1, 0xFF, 0xCE, 0x00, 0xEA, 0x00, 0xD2, 0xFF, 0xCD, 0x00, 0xEB, + 0x00, 0xD3, 0xFF, 0xCD, 0x00, 0xEC, 0x00, 0xD3, 0xFF, 0xCD, 0x00, 0xED, 0x00, 0xD4, 0xFF, 0xCD, + 0x00, 0xEE, 0x00, 0xD6, 0xFF, 0xCC, 0x00, 0xEF, 0x00, 0xD7, 0xFF, 0xCC, 0x00, 0xF0, 0x00, 0xD7, + 0xFF, 0xCC, 0x00, 0xF1, 0x00, 0xD8, 0xFF, 0xCC, 0x00, 0xF2, 0x00, 0xD9, 0xFF, 0xCC, 0x00, 0xF3, + 0x00, 0xDA, 0xFF, 0xCC, 0x00, 0xF4, 0x00, 0xDA, 0xFF, 0xCC, 0x00, 0xF5, 0x00, 0xDC, 0xFF, 0xCB, + 0x00, 0xF6, 0x00, 0xDD, 0xFF, 0xCB, 0x00, 0xF7, 0x00, 0xDE, 0xFF, 0xCB, 0x00, 0xF8, 0x00, 0xDE, + 0xFF, 0xCA, 0x00, 0xF9, 0x00, 0xDF, 0xFF, 0xCA, 0x00, 0xFA, 0x00, 0xE0, 0xFF, 0xCA, 0x00, 0xFB, + 0x00, 0xE1, 0xFF, 0xCA, 0x00, 0xFC, 0x00, 0xE1, 0xFF, 0xCA, 0x00, 0xFD, 0x00, 0xE3, 0xFF, 0xC9, + 0x00, 0xFE, 0x00, 0xE4, 0xFF, 0xC9, 0x00, 0xFF, 0x00, 0xE5, 0xFF, 0xC9, 0x00, 0xF8, 0x08, 0xFF, + 0x00, 0x08, 0x00, 0x08, 0xFF, 0xFE, 0x00, 0x09, 0x00, 0x09, 0xFF, 0xFD, 0x00, 0x0A, 0x00, 0x0A, + 0xFF, 0xFD, 0x00, 0x0B, 0x00, 0x0B, 0xFF, 0xFD, 0x00, 0x0C, 0x00, 0x0C, 0xFF, 0xFD, 0x00, 0x0D, + 0x00, 0x0D, 0xFF, 0xFD, 0x00, 0x0E, 0x00, 0x0D, 0xFF, 0xFD, 0x00, 0x0F, 0x00, 0x0E, 0xFF, 0xFD, + 0x00, 0x10, 0x00, 0x0F, 0xFF, 0xFD, 0x00, 0x11, 0x00, 0x0F, 0xFF, 0xFC, 0x00, 0x12, 0x00, 0x11, + 0xFF, 0xFC, 0x00, 0x13, 0x00, 0x12, 0xFF, 0xFC, 0x00, 0x14, 0x00, 0x13, 0xFF, 0xFC, 0x00, 0x15, + 0x00, 0x13, 0xFF, 0xFB, 0x00, 0x16, 0x00, 0x14, 0xFF, 0xFB, 0x00, 0x17, 0x00, 0x15, 0xFF, 0xFB, + 0x00, 0x18, 0x00, 0x15, 0xFF, 0xFA, 0x00, 0x19, 0x00, 0x17, 0xFF, 0xFB, 0x00, 0x1A, 0x00, 0x19, + 0xFF, 0xFA, 0x00, 0x1B, 0x00, 0x1A, 0xFF, 0xFA, 0x00, 0x1C, 0x00, 0x1A, 0xFF, 0xFA, 0x00, 0x1D, + 0x00, 0x1B, 0xFF, 0xFA, 0x00, 0x1E, 0x00, 0x1C, 0xFF, 0xF9, 0x00, 0x1F, 0x00, 0x1C, 0xFF, 0xF9, + 0x00, 0x20, 0x00, 0x1D, 0xFF, 0xF9, 0x00, 0x21, 0x00, 0x1F, 0xFF, 0xF9, 0x00, 0x22, 0x00, 0x20, + 0xFF, 0xF9, 0x00, 0x23, 0x00, 0x20, 0xFF, 0xF8, 0x00, 0x24, 0x00, 0x21, 0xFF, 0xF8, 0x00, 0x25, + 0x00, 0x22, 0xFF, 0xF8, 0x00, 0x26, 0x00, 0x22, 0xFF, 0xF7, 0x00, 0x27, 0x00, 0x23, 0xFF, 0xF7, + 0x00, 0x28, 0x00, 0x24, 0xFF, 0xF7, 0x00, 0x29, 0x00, 0x26, 0xFF, 0xF7, 0x00, 0x2A, 0x00, 0x26, + 0xFF, 0xF7, 0x00, 0x2B, 0x00, 0x27, 0xFF, 0xF6, 0x00, 0x2C, 0x00, 0x28, 0xFF, 0xF6, 0x00, 0x2D, + 0x00, 0x28, 0xFF, 0xF6, 0x00, 0x2E, 0x00, 0x2A, 0xFF, 0xF6, 0x00, 0x2F, 0x00, 0x2B, 0xFF, 0xF6, + 0x00, 0x30, 0x00, 0x2D, 0xFF, 0xF6, 0x00, 0x31, 0x00, 0x2D, 0xFF, 0xF5, 0x00, 0x32, 0x00, 0x2E, + 0xFF, 0xF5, 0x00, 0x33, 0x00, 0x2F, 0xFF, 0xF5, 0x00, 0x34, 0x00, 0x30, 0xFF, 0xF4, 0x00, 0x35, + 0x00, 0x30, 0xFF, 0xF4, 0x00, 0x36, 0x00, 0x31, 0xFF, 0xF4, 0x00, 0x37, 0x00, 0x33, 0xFF, 0xF4, + 0x00, 0x38, 0x00, 0x34, 0xFF, 0xF3, 0x00, 0x39, 0x00, 0x34, 0xFF, 0xF3, 0x00, 0x3A, 0x00, 0x35, + 0xFF, 0xF3, 0x00, 0x3B, 0x00, 0x35, 0xFF, 0xF3, 0x00, 0x3C, 0x00, 0x36, 0xFF, 0xF3, 0x00, 0x3D, + 0x00, 0x37, 0xFF, 0xF3, 0x00, 0x3E, 0x00, 0x38, 0xFF, 0xF3, 0x00, 0x3F, 0x00, 0x39, 0xFF, 0xF2, + 0x00, 0x40, 0x00, 0x3A, 0xFF, 0xF2, 0x00, 0x41, 0x00, 0x3B, 0xFF, 0xF2, 0x00, 0x42, 0x00, 0x3C, + 0xFF, 0xF1, 0x00, 0x43, 0x00, 0x3C, 0xFF, 0xF1, 0x00, 0x44, 0x00, 0x3D, 0xFF, 0xF1, 0x00, 0x45, + 0x00, 0x3E, 0xFF, 0xF1, 0x00, 0x46, 0x00, 0x3F, 0xFF, 0xF0, 0x00, 0x47, 0x00, 0x40, 0xFF, 0xF0, + 0x00, 0x48, 0x00, 0x41, 0xFF, 0xF0, 0x00, 0x49, 0x00, 0x42, 0xFF, 0xF0, 0x00, 0x4A, 0x00, 0x42, + 0xFF, 0xF0, 0x00, 0x4B, 0x00, 0x43, 0xFF, 0xF0, 0x00, 0x4C, 0x00, 0x44, 0xFF, 0xF0, 0x00, 0x4D, + 0x00, 0x46, 0xFF, 0xEF, 0x00, 0x4E, 0x00, 0x46, 0xFF, 0xEF, 0x00, 0x4F, 0x00, 0x47, 0xFF, 0xEF, + 0x00, 0x50, 0x00, 0x48, 0xFF, 0xEF, 0x00, 0x51, 0x00, 0x49, 0xFF, 0xEE, 0x00, 0x52, 0x00, 0x49, + 0xFF, 0xEE, 0x00, 0x53, 0x00, 0x4A, 0xFF, 0xEE, 0x00, 0x54, 0x00, 0x4B, 0xFF, 0xED, 0x00, 0x55, + 0x00, 0x4D, 0xFF, 0xED, 0x00, 0x56, 0x00, 0x4D, 0xFF, 0xED, 0x00, 0x57, 0x00, 0x4E, 0xFF, 0xED, + 0x00, 0x58, 0x00, 0x4F, 0xFF, 0xEC, 0x00, 0x59, 0x00, 0x50, 0xFF, 0xEC, 0x00, 0x5A, 0x00, 0x50, + 0xFF, 0xED, 0x00, 0x5B, 0x00, 0x51, 0xFF, 0xEC, 0x00, 0x5C, 0x00, 0x53, 0xFF, 0xEC, 0x00, 0x5D, + 0x00, 0x54, 0xFF, 0xEC, 0x00, 0x5E, 0x00, 0x54, 0xFF, 0xEC, 0x00, 0x5F, 0x00, 0x55, 0xFF, 0xEB, + 0x00, 0x60, 0x00, 0x56, 0xFF, 0xEB, 0x00, 0x61, 0x00, 0x57, 0xFF, 0xEB, 0x00, 0x62, 0x00, 0x57, + 0xFF, 0xEB, 0x00, 0x63, 0x00, 0x59, 0xFF, 0xEA, 0x00, 0x64, 0x00, 0x5A, 0xFF, 0xEA, 0x00, 0x65, + 0x00, 0x5B, 0xFF, 0xEA, 0x00, 0x66, 0x00, 0x5C, 0xFF, 0xE9, 0x00, 0x67, 0x00, 0x5C, 0xFF, 0xE9, + 0x00, 0x68, 0x00, 0x5D, 0xFF, 0xE9, 0x00, 0x69, 0x00, 0x5E, 0xFF, 0xE9, 0x00, 0x6A, 0x00, 0x60, + 0xFF, 0xE9, 0x00, 0x6B, 0x00, 0x60, 0xFF, 0xE9, 0x00, 0x6C, 0x00, 0x61, 0xFF, 0xE9, 0x00, 0x6D, + 0x00, 0x62, 0xFF, 0xE9, 0x00, 0x6E, 0x00, 0x63, 0xFF, 0xE8, 0x00, 0x6F, 0x00, 0x63, 0xFF, 0xE8, + 0x00, 0x70, 0x00, 0x64, 0xFF, 0xE8, 0x00, 0x71, 0x00, 0x65, 0xFF, 0xE7, 0x00, 0x72, 0x00, 0x67, + 0xFF, 0xE7, 0x00, 0x73, 0x00, 0x67, 0xFF, 0xE7, 0x00, 0x74, 0x00, 0x68, 0xFF, 0xE7, 0x00, 0x75, + 0x00, 0x69, 0xFF, 0xE6, 0x00, 0x76, 0x00, 0x6A, 0xFF, 0xE6, 0x00, 0x77, 0x00, 0x6A, 0xFF, 0xE6, + 0x00, 0x78, 0x00, 0x6B, 0xFF, 0xE5, 0x00, 0x79, 0x00, 0x6D, 0xFF, 0xE5, 0x00, 0x7A, 0x00, 0x6E, + 0xFF, 0xE5, 0x00, 0x7B, 0x00, 0x6E, 0xFF, 0xE5, 0x00, 0x7C, 0x00, 0x6F, 0xFF, 0xE5, 0x00, 0x7D, + 0x00, 0x70, 0xFF, 0xE4, 0x00, 0x7E, 0x00, 0x71, 0xFF, 0xE4, 0x00, 0x7F, 0x00, 0x72, 0xFF, 0xE4, + 0x00, 0x80, 0x00, 0x73, 0xFF, 0xE4, 0x00, 0x81, 0x00, 0x74, 0xFF, 0xE3, 0x00, 0x82, 0x00, 0x75, + 0xFF, 0xE3, 0x00, 0x83, 0x00, 0x76, 0xFF, 0xE3, 0x00, 0x84, 0x00, 0x76, 0xFF, 0xE3, 0x00, 0x85, + 0x00, 0x77, 0xFF, 0xE3, 0x00, 0x86, 0x00, 0x78, 0xFF, 0xE3, 0x00, 0x87, 0x00, 0x79, 0xFF, 0xE2, + 0x00, 0x88, 0x00, 0x7A, 0xFF, 0xE2, 0x00, 0x89, 0x00, 0x7B, 0xFF, 0xE2, 0x00, 0x8A, 0x00, 0x7C, + 0xFF, 0xE2, 0x00, 0x8B, 0x00, 0x7D, 0xFF, 0xE2, 0x00, 0x8C, 0x00, 0x7D, 0xFF, 0xE2, 0x00, 0x8D, + 0x00, 0x7E, 0xFF, 0xE2, 0x00, 0x8E, 0x00, 0x7F, 0xFF, 0xE2, 0x00, 0x8F, 0x00, 0x81, 0xFF, 0xE1, + 0x00, 0x90, 0x00, 0x81, 0xFF, 0xE1, 0x00, 0x91, 0x00, 0x82, 0xFF, 0xE0, 0x00, 0x92, 0x00, 0x83, + 0xFF, 0xE0, 0x00, 0x93, 0x00, 0x84, 0xFF, 0xE0, 0x00, 0x94, 0x00, 0x84, 0xFF, 0xE0, 0x00, 0x95, + 0x00, 0x85, 0xFF, 0xE0, 0x00, 0x96, 0x00, 0x87, 0xFF, 0xDF, 0x00, 0x97, 0x00, 0x88, 0xFF, 0xE0, + 0x00, 0x98, 0x00, 0x88, 0xFF, 0xDF, 0x00, 0x99, 0x00, 0x89, 0xFF, 0xDF, 0x00, 0x9A, 0x00, 0x8A, + 0xFF, 0xDE, 0x00, 0x9B, 0x00, 0x8B, 0xFF, 0xDE, 0x00, 0x9C, 0x00, 0x8C, 0xFF, 0xDE, 0x00, 0x9D, + 0x00, 0x8C, 0xFF, 0xDE, 0x00, 0x9E, 0x00, 0x8E, 0xFF, 0xDE, 0x00, 0x9F, 0x00, 0x8F, 0xFF, 0xDE, + 0x00, 0xA0, 0x00, 0x90, 0xFF, 0xDE, 0x00, 0xA1, 0x00, 0x90, 0xFF, 0xDD, 0x00, 0xA2, 0x00, 0x91, + 0xFF, 0xDD, 0x00, 0xA3, 0x00, 0x92, 0xFF, 0xDD, 0x00, 0xA4, 0x00, 0x93, 0xFF, 0xDD, 0x00, 0xA5, + 0x00, 0x94, 0xFF, 0xDC, 0x00, 0xA6, 0x00, 0x95, 0xFF, 0xDB, 0x00, 0xA7, 0x00, 0x96, 0xFF, 0xDB, + 0x00, 0xA8, 0x00, 0x97, 0xFF, 0xDB, 0x00, 0xA9, 0x00, 0x97, 0xFF, 0xDB, 0x00, 0xAA, 0x00, 0x98, + 0xFF, 0xDB, 0x00, 0xAB, 0x00, 0x99, 0xFF, 0xDB, 0x00, 0xAC, 0x00, 0x9B, 0xFF, 0xDB, 0x00, 0xAD, + 0x00, 0x9B, 0xFF, 0xDB, 0x00, 0xAE, 0x00, 0x9C, 0xFF, 0xDB, 0x00, 0xAF, 0x00, 0x9D, 0xFF, 0xDB, + 0x00, 0xB0, 0x00, 0x9E, 0xFF, 0xDB, 0x00, 0xB1, 0x00, 0x9E, 0xFF, 0xDA, 0x00, 0xB2, 0x00, 0x9F, + 0xFF, 0xDA, 0x00, 0xB3, 0x00, 0xA0, 0xFF, 0xD9, 0x00, 0xB4, 0x00, 0xA2, 0xFF, 0xD9, 0x00, 0xB5, + 0x00, 0xA3, 0xFF, 0xD8, 0x00, 0xB6, 0x00, 0xA3, 0xFF, 0xD8, 0x00, 0xB7, 0x00, 0xA4, 0xFF, 0xD8, + 0x00, 0xB8, 0x00, 0xA5, 0xFF, 0xD8, 0x00, 0xB9, 0x00, 0xA6, 0xFF, 0xD8, 0x00, 0xBA, 0x00, 0xA6, + 0xFF, 0xD8, 0x00, 0xBB, 0x00, 0xA8, 0xFF, 0xD8, 0x00, 0xBC, 0x00, 0xA9, 0xFF, 0xD7, 0x00, 0xBD, + 0x00, 0xAA, 0xFF, 0xD7, 0x00, 0xBE, 0x00, 0xAA, 0xFF, 0xD7, 0x00, 0xBF, 0x00, 0xAB, 0xFF, 0xD7, + 0x00, 0xC0, 0x00, 0xAC, 0xFF, 0xD7, 0x00, 0xC1, 0x00, 0xAD, 0xFF, 0xD7, 0x00, 0xC2, 0x00, 0xAE, + 0xFF, 0xD7, 0x00, 0xC3, 0x00, 0xAF, 0xFF, 0xD6, 0x00, 0xC4, 0x00, 0xB0, 0xFF, 0xD6, 0x00, 0xC5, + 0x00, 0xB1, 0xFF, 0xD5, 0x00, 0xC6, 0x00, 0xB1, 0xFF, 0xD5, 0x00, 0xC7, 0x00, 0xB2, 0xFF, 0xD4, + 0x00, 0xC8, 0x00, 0xB3, 0xFF, 0xD4, 0x00, 0xC9, 0x00, 0xB4, 0xFF, 0xD4, 0x00, 0xCA, 0x00, 0xB5, + 0xFF, 0xD4, 0x00, 0xCB, 0x00, 0xB6, 0xFF, 0xD4, 0x00, 0xCC, 0x00, 0xB7, 0xFF, 0xD4, 0x00, 0xCD, + 0x00, 0xB8, 0xFF, 0xD4, 0x00, 0xCE, 0x00, 0xB9, 0xFF, 0xD4, 0x00, 0xCF, 0x00, 0xB9, 0xFF, 0xD4, + 0x00, 0xD0, 0x00, 0xBA, 0xFF, 0xD4, 0x00, 0xD1, 0x00, 0xBC, 0xFF, 0xD4, 0x00, 0xD2, 0x00, 0xBD, + 0xFF, 0xD3, 0x00, 0xD3, 0x00, 0xBD, 0xFF, 0xD2, 0x00, 0xD4, 0x00, 0xBE, 0xFF, 0xD2, 0x00, 0xD5, + 0x00, 0xBF, 0xFF, 0xD2, 0x00, 0xD6, 0x00, 0xC0, 0xFF, 0xD1, 0x00, 0xD7, 0x00, 0xC0, 0xFF, 0xD1, + 0x00, 0xD8, 0x00, 0xC2, 0xFF, 0xD1, 0x00, 0xD9, 0x00, 0xC3, 0xFF, 0xD1, 0x00, 0xDA, 0x00, 0xC4, + 0xFF, 0xD1, 0x00, 0xDB, 0x00, 0xC4, 0xFF, 0xD1, 0x00, 0xDC, 0x00, 0xC5, 0xFF, 0xD1, 0x00, 0xDD, + 0x00, 0xC6, 0xFF, 0xD1, 0x00, 0xDE, 0x00, 0xC7, 0xFF, 0xD0, 0x00, 0xDF, 0x00, 0xC7, 0xFF, 0xD0, + 0x00, 0xE0, 0x00, 0xC9, 0xFF, 0xCF, 0x00, 0xE1, 0x00, 0xCA, 0xFF, 0xCF, 0x00, 0xE2, 0x00, 0xCB, + 0xFF, 0xCF, 0x00, 0xE3, 0x00, 0xCB, 0xFF, 0xCF, 0x00, 0xE4, 0x00, 0xCC, 0xFF, 0xCF, 0x00, 0xE5, + 0x00, 0xCD, 0xFF, 0xCF, 0x00, 0xE6, 0x00, 0xCE, 0xFF, 0xCF, 0x00, 0xE7, 0x00, 0xD0, 0xFF, 0xCE, + 0x00, 0xE8, 0x00, 0xD0, 0xFF, 0xCE, 0x00, 0xE9, 0x00, 0xD1, 0xFF, 0xCE, 0x00, 0xEA, 0x00, 0xD2, + 0xFF, 0xCD, 0x00, 0xEB, 0x00, 0xD3, 0xFF, 0xCD, 0x00, 0xEC, 0x00, 0xD3, 0xFF, 0xCD, 0x00, 0xED, + 0x00, 0xD4, 0xFF, 0xCD, 0x00, 0xEE, 0x00, 0xD6, 0xFF, 0xCC, 0x00, 0xEF, 0x00, 0xD7, 0xFF, 0xCC, + 0x00, 0xF0, 0x00, 0xD7, 0xFF, 0xCC, 0x00, 0xF1, 0x00, 0xD8, 0xFF, 0xCC, 0x00, 0xF2, 0x00, 0xD9, + 0xFF, 0xCC, 0x00, 0xF3, 0x00, 0xDA, 0xFF, 0xCC, 0x00, 0xF4, 0x00, 0xDA, 0xFF, 0xCC, 0x00, 0xF5, + 0x00, 0xDC, 0xFF, 0xCB, 0x00, 0xF6, 0x00, 0xDD, 0xFF, 0xCB, 0x00, 0xF7, 0x00, 0xDE, 0xFF, 0xCB, + 0x00, 0xF8, 0x00, 0xDE, 0xFF, 0xCA, 0x00, 0xF9, 0x00, 0xDF, 0xFF, 0xCA, 0x00, 0xFA, 0x00, 0xE0, + 0xFF, 0xCA, 0x00, 0xFB, 0x00, 0xE1, 0xFF, 0xCA, 0x00, 0xFC, 0x00, 0xE1, 0xFF, 0xCA, 0x00, 0xFD, + 0x00, 0xE3, 0xFF, 0xC9, 0x00, 0xFE, 0x00, 0xE4, 0xFF, 0xC9, 0x00, 0xFF, 0x00, 0xE5, 0xFF, 0xC9, + 0x00, 0xF8, 0x08, 0xFF, 0x00, 0x08, 0x00, 0x08, 0xFF, 0xFE, 0x00, 0x09, 0x00, 0x09, 0xFF, 0xFD, + 0x00, 0x0A, 0x00, 0x0A, 0xFF, 0xFD, 0x00, 0x0B, 0x00, 0x0B, 0xFF, 0xFD, 0x00, 0x0C, 0x00, 0x0C, + 0xFF, 0xFD, 0x00, 0x0D, 0x00, 0x0D, 0xFF, 0xFD, 0x00, 0x0E, 0x00, 0x0D, 0xFF, 0xFD, 0x00, 0x0F, + 0x00, 0x0E, 0xFF, 0xFD, 0x00, 0x10, 0x00, 0x0F, 0xFF, 0xFD, 0x00, 0x11, 0x00, 0x0F, 0xFF, 0xFC, + 0x00, 0x12, 0x00, 0x11, 0xFF, 0xFC, 0x00, 0x13, 0x00, 0x12, 0xFF, 0xFC, 0x00, 0x14, 0x00, 0x13, + 0xFF, 0xFC, 0x00, 0x15, 0x00, 0x13, 0xFF, 0xFB, 0x00, 0x16, 0x00, 0x14, 0xFF, 0xFB, 0x00, 0x17, + 0x00, 0x15, 0xFF, 0xFB, 0x00, 0x18, 0x00, 0x15, 0xFF, 0xFA, 0x00, 0x19, 0x00, 0x17, 0xFF, 0xFB, + 0x00, 0x1A, 0x00, 0x19, 0xFF, 0xFA, 0x00, 0x1B, 0x00, 0x1A, 0xFF, 0xFA, 0x00, 0x1C, 0x00, 0x1A, + 0xFF, 0xFA, 0x00, 0x1D, 0x00, 0x1B, 0xFF, 0xFA, 0x00, 0x1E, 0x00, 0x1C, 0xFF, 0xF9, 0x00, 0x1F, + 0x00, 0x1C, 0xFF, 0xF9, 0x00, 0x20, 0x00, 0x1D, 0xFF, 0xF9, 0x00, 0x21, 0x00, 0x1F, 0xFF, 0xF9, + 0x00, 0x22, 0x00, 0x20, 0xFF, 0xF9, 0x00, 0x23, 0x00, 0x20, 0xFF, 0xF8, 0x00, 0x24, 0x00, 0x21, + 0xFF, 0xF8, 0x00, 0x25, 0x00, 0x22, 0xFF, 0xF8, 0x00, 0x26, 0x00, 0x22, 0xFF, 0xF7, 0x00, 0x27, + 0x00, 0x23, 0xFF, 0xF7, 0x00, 0x28, 0x00, 0x24, 0xFF, 0xF7, 0x00, 0x29, 0x00, 0x26, 0xFF, 0xF7, + 0x00, 0x2A, 0x00, 0x26, 0xFF, 0xF7, 0x00, 0x2B, 0x00, 0x27, 0xFF, 0xF6, 0x00, 0x2C, 0x00, 0x28, + 0xFF, 0xF6, 0x00, 0x2D, 0x00, 0x28, 0xFF, 0xF6, 0x00, 0x2E, 0x00, 0x2A, 0xFF, 0xF6, 0x00, 0x2F, + 0x00, 0x2B, 0xFF, 0xF6, 0x00, 0x30, 0x00, 0x2D, 0xFF, 0xF6, 0x00, 0x31, 0x00, 0x2D, 0xFF, 0xF5, + 0x00, 0x32, 0x00, 0x2E, 0xFF, 0xF5, 0x00, 0x33, 0x00, 0x2F, 0xFF, 0xF5, 0x00, 0x34, 0x00, 0x30, + 0xFF, 0xF4, 0x00, 0x35, 0x00, 0x30, 0xFF, 0xF4, 0x00, 0x36, 0x00, 0x31, 0xFF, 0xF4, 0x00, 0x37, + 0x00, 0x33, 0xFF, 0xF4, 0x00, 0x38, 0x00, 0x34, 0xFF, 0xF3, 0x00, 0x39, 0x00, 0x34, 0xFF, 0xF3, + 0x00, 0x3A, 0x00, 0x35, 0xFF, 0xF3, 0x00, 0x3B, 0x00, 0x35, 0xFF, 0xF3, 0x00, 0x3C, 0x00, 0x36, + 0xFF, 0xF3, 0x00, 0x3D, 0x00, 0x37, 0xFF, 0xF3, 0x00, 0x3E, 0x00, 0x38, 0xFF, 0xF3, 0x00, 0x3F, + 0x00, 0x39, 0xFF, 0xF2, 0x00, 0x40, 0x00, 0x3A, 0xFF, 0xF2, 0x00, 0x41, 0x00, 0x3B, 0xFF, 0xF2, + 0x00, 0x42, 0x00, 0x3C, 0xFF, 0xF2, 0x00, 0x43, 0x00, 0x3C, 0xFF, 0xF1, 0x00, 0x44, 0x00, 0x3D, + 0xFF, 0xF1, 0x00, 0x45, 0x00, 0x3E, 0xFF, 0xF1, 0x00, 0x46, 0x00, 0x3F, 0xFF, 0xF0, 0x00, 0x47, + 0x00, 0x40, 0xFF, 0xF0, 0x00, 0x48, 0x00, 0x41, 0xFF, 0xF0, 0x00, 0x49, 0x00, 0x42, 0xFF, 0xF0, + 0x00, 0x4A, 0x00, 0x42, 0xFF, 0xF0, 0x00, 0x4B, 0x00, 0x43, 0xFF, 0xF0, 0x00, 0x4C, 0x00, 0x44, + 0xFF, 0xF0, 0x00, 0x4D, 0x00, 0x46, 0xFF, 0xEF, 0x00, 0x4E, 0x00, 0x46, 0xFF, 0xEF, 0x00, 0x4F, + 0x00, 0x47, 0xFF, 0xEF, 0x00, 0x50, 0x00, 0x48, 0xFF, 0xEF, 0x00, 0x51, 0x00, 0x49, 0xFF, 0xEE, + 0x00, 0x52, 0x00, 0x49, 0xFF, 0xEE, 0x00, 0x53, 0x00, 0x4A, 0xFF, 0xEE, 0x00, 0x54, 0x00, 0x4B, + 0xFF, 0xED, 0x00, 0x55, 0x00, 0x4D, 0xFF, 0xED, 0x00, 0x56, 0x00, 0x4D, 0xFF, 0xED, 0x00, 0x57, + 0x00, 0x4E, 0xFF, 0xED, 0x00, 0x58, 0x00, 0x4F, 0xFF, 0xEC, 0x00, 0x59, 0x00, 0x50, 0xFF, 0xEC, + 0x00, 0x5A, 0x00, 0x50, 0xFF, 0xED, 0x00, 0x5B, 0x00, 0x51, 0xFF, 0xEC, 0x00, 0x5C, 0x00, 0x53, + 0xFF, 0xEC, 0x00, 0x5D, 0x00, 0x54, 0xFF, 0xEC, 0x00, 0x5E, 0x00, 0x54, 0xFF, 0xEC, 0x00, 0x5F, + 0x00, 0x55, 0xFF, 0xEB, 0x00, 0x60, 0x00, 0x56, 0xFF, 0xEB, 0x00, 0x61, 0x00, 0x57, 0xFF, 0xEB, + 0x00, 0x62, 0x00, 0x57, 0xFF, 0xEB, 0x00, 0x63, 0x00, 0x59, 0xFF, 0xEA, 0x00, 0x64, 0x00, 0x5A, + 0xFF, 0xEA, 0x00, 0x65, 0x00, 0x5B, 0xFF, 0xEA, 0x00, 0x66, 0x00, 0x5C, 0xFF, 0xE9, 0x00, 0x67, + 0x00, 0x5C, 0xFF, 0xE9, 0x00, 0x68, 0x00, 0x5D, 0xFF, 0xE9, 0x00, 0x69, 0x00, 0x5E, 0xFF, 0xE9, + 0x00, 0x6A, 0x00, 0x60, 0xFF, 0xE9, 0x00, 0x6B, 0x00, 0x60, 0xFF, 0xE9, 0x00, 0x6C, 0x00, 0x61, + 0xFF, 0xE9, 0x00, 0x6D, 0x00, 0x62, 0xFF, 0xE9, 0x00, 0x6E, 0x00, 0x63, 0xFF, 0xE8, 0x00, 0x6F, + 0x00, 0x63, 0xFF, 0xE8, 0x00, 0x70, 0x00, 0x64, 0xFF, 0xE8, 0x00, 0x71, 0x00, 0x65, 0xFF, 0xE7, + 0x00, 0x72, 0x00, 0x67, 0xFF, 0xE7, 0x00, 0x73, 0x00, 0x67, 0xFF, 0xE7, 0x00, 0x74, 0x00, 0x68, + 0xFF, 0xE7, 0x00, 0x75, 0x00, 0x69, 0xFF, 0xE6, 0x00, 0x76, 0x00, 0x6A, 0xFF, 0xE6, 0x00, 0x77, + 0x00, 0x6A, 0xFF, 0xE6, 0x00, 0x78, 0x00, 0x6B, 0xFF, 0xE5, 0x00, 0x79, 0x00, 0x6D, 0xFF, 0xE5, + 0x00, 0x7A, 0x00, 0x6E, 0xFF, 0xE5, 0x00, 0x7B, 0x00, 0x6E, 0xFF, 0xE5, 0x00, 0x7C, 0x00, 0x6F, + 0xFF, 0xE5, 0x00, 0x7D, 0x00, 0x70, 0xFF, 0xE4, 0x00, 0x7E, 0x00, 0x71, 0xFF, 0xE4, 0x00, 0x7F, + 0x00, 0x72, 0xFF, 0xE4, 0x00, 0x80, 0x00, 0x73, 0xFF, 0xE4, 0x00, 0x81, 0x00, 0x74, 0xFF, 0xE4, + 0x00, 0x82, 0x00, 0x75, 0xFF, 0xE3, 0x00, 0x83, 0x00, 0x76, 0xFF, 0xE3, 0x00, 0x84, 0x00, 0x76, + 0xFF, 0xE3, 0x00, 0x85, 0x00, 0x77, 0xFF, 0xE3, 0x00, 0x86, 0x00, 0x78, 0xFF, 0xE3, 0x00, 0x87, + 0x00, 0x79, 0xFF, 0xE2, 0x00, 0x88, 0x00, 0x7A, 0xFF, 0xE2, 0x00, 0x89, 0x00, 0x7B, 0xFF, 0xE2, + 0x00, 0x8A, 0x00, 0x7C, 0xFF, 0xE2, 0x00, 0x8B, 0x00, 0x7D, 0xFF, 0xE2, 0x00, 0x8C, 0x00, 0x7D, + 0xFF, 0xE2, 0x00, 0x8D, 0x00, 0x7E, 0xFF, 0xE2, 0x00, 0x8E, 0x00, 0x7F, 0xFF, 0xE2, 0x00, 0x8F, + 0x00, 0x81, 0xFF, 0xE1, 0x00, 0x90, 0x00, 0x81, 0xFF, 0xE1, 0x00, 0x91, 0x00, 0x82, 0xFF, 0xE0, + 0x00, 0x92, 0x00, 0x83, 0xFF, 0xE0, 0x00, 0x93, 0x00, 0x84, 0xFF, 0xE0, 0x00, 0x94, 0x00, 0x84, + 0xFF, 0xE0, 0x00, 0x95, 0x00, 0x85, 0xFF, 0xE0, 0x00, 0x96, 0x00, 0x87, 0xFF, 0xDF, 0x00, 0x97, + 0x00, 0x88, 0xFF, 0xE0, 0x00, 0x98, 0x00, 0x88, 0xFF, 0xDF, 0x00, 0x99, 0x00, 0x89, 0xFF, 0xDF, + 0x00, 0x9A, 0x00, 0x8A, 0xFF, 0xDE, 0x00, 0x9B, 0x00, 0x8B, 0xFF, 0xDE, 0x00, 0x9C, 0x00, 0x8C, + 0xFF, 0xDE, 0x00, 0x9D, 0x00, 0x8C, 0xFF, 0xDE, 0x00, 0x9E, 0x00, 0x8E, 0xFF, 0xDE, 0x00, 0x9F, + 0x00, 0x8F, 0xFF, 0xDE, 0x00, 0xA0, 0x00, 0x90, 0xFF, 0xDE, 0x00, 0xA1, 0x00, 0x90, 0xFF, 0xDD, + 0x00, 0xA2, 0x00, 0x91, 0xFF, 0xDD, 0x00, 0xA3, 0x00, 0x92, 0xFF, 0xDD, 0x00, 0xA4, 0x00, 0x93, + 0xFF, 0xDD, 0x00, 0xA5, 0x00, 0x94, 0xFF, 0xDC, 0x00, 0xA6, 0x00, 0x95, 0xFF, 0xDB, 0x00, 0xA7, + 0x00, 0x96, 0xFF, 0xDB, 0x00, 0xA8, 0x00, 0x97, 0xFF, 0xDB, 0x00, 0xA9, 0x00, 0x97, 0xFF, 0xDB, + 0x00, 0xAA, 0x00, 0x98, 0xFF, 0xDB, 0x00, 0xAB, 0x00, 0x99, 0xFF, 0xDB, 0x00, 0xAC, 0x00, 0x9B, + 0xFF, 0xDB, 0x00, 0xAD, 0x00, 0x9B, 0xFF, 0xDB, 0x00, 0xAE, 0x00, 0x9C, 0xFF, 0xDB, 0x00, 0xAF, + 0x00, 0x9D, 0xFF, 0xDB, 0x00, 0xB0, 0x00, 0x9E, 0xFF, 0xDB, 0x00, 0xB1, 0x00, 0x9E, 0xFF, 0xDA, + 0x00, 0xB2, 0x00, 0x9F, 0xFF, 0xDA, 0x00, 0xB3, 0x00, 0xA0, 0xFF, 0xD9, 0x00, 0xB4, 0x00, 0xA2, + 0xFF, 0xD9, 0x00, 0xB5, 0x00, 0xA3, 0xFF, 0xD8, 0x00, 0xB6, 0x00, 0xA3, 0xFF, 0xD8, 0x00, 0xB7, + 0x00, 0xA4, 0xFF, 0xD8, 0x00, 0xB8, 0x00, 0xA5, 0xFF, 0xD8, 0x00, 0xB9, 0x00, 0xA6, 0xFF, 0xD8, + 0x00, 0xBA, 0x00, 0xA6, 0xFF, 0xD8, 0x00, 0xBB, 0x00, 0xA8, 0xFF, 0xD8, 0x00, 0xBC, 0x00, 0xA9, + 0xFF, 0xD7, 0x00, 0xBD, 0x00, 0xAA, 0xFF, 0xD7, 0x00, 0xBE, 0x00, 0xAA, 0xFF, 0xD7, 0x00, 0xBF, + 0x00, 0xAB, 0xFF, 0xD7, 0x00, 0xC0, 0x00, 0xAC, 0xFF, 0xD7, 0x00, 0xC1, 0x00, 0xAD, 0xFF, 0xD7, + 0x00, 0xC2, 0x00, 0xAE, 0xFF, 0xD7, 0x00, 0xC3, 0x00, 0xAF, 0xFF, 0xD6, 0x00, 0xC4, 0x00, 0xB0, + 0xFF, 0xD6, 0x00, 0xC5, 0x00, 0xB1, 0xFF, 0xD5, 0x00, 0xC6, 0x00, 0xB1, 0xFF, 0xD5, 0x00, 0xC7, + 0x00, 0xB2, 0xFF, 0xD4, 0x00, 0xC8, 0x00, 0xB3, 0xFF, 0xD4, 0x00, 0xC9, 0x00, 0xB4, 0xFF, 0xD4, + 0x00, 0xCA, 0x00, 0xB5, 0xFF, 0xD4, 0x00, 0xCB, 0x00, 0xB6, 0xFF, 0xD4, 0x00, 0xCC, 0x00, 0xB7, + 0xFF, 0xD4, 0x00, 0xCD, 0x00, 0xB8, 0xFF, 0xD4, 0x00, 0xCE, 0x00, 0xB9, 0xFF, 0xD4, 0x00, 0xCF, + 0x00, 0xB9, 0xFF, 0xD4, 0x00, 0xD0, 0x00, 0xBA, 0xFF, 0xD4, 0x00, 0xD1, 0x00, 0xBC, 0xFF, 0xD4, + 0x00, 0xD2, 0x00, 0xBD, 0xFF, 0xD3, 0x00, 0xD3, 0x00, 0xBD, 0xFF, 0xD2, 0x00, 0xD4, 0x00, 0xBE, + 0xFF, 0xD2, 0x00, 0xD5, 0x00, 0xBF, 0xFF, 0xD2, 0x00, 0xD6, 0x00, 0xC0, 0xFF, 0xD1, 0x00, 0xD7, + 0x00, 0xC0, 0xFF, 0xD1, 0x00, 0xD8, 0x00, 0xC2, 0xFF, 0xD1, 0x00, 0xD9, 0x00, 0xC3, 0xFF, 0xD1, + 0x00, 0xDA, 0x00, 0xC4, 0xFF, 0xD1, 0x00, 0xDB, 0x00, 0xC4, 0xFF, 0xD1, 0x00, 0xDC, 0x00, 0xC5, + 0xFF, 0xD1, 0x00, 0xDD, 0x00, 0xC6, 0xFF, 0xD1, 0x00, 0xDE, 0x00, 0xC7, 0xFF, 0xD0, 0x00, 0xDF, + 0x00, 0xC8, 0xFF, 0xD0, 0x00, 0xE0, 0x00, 0xC9, 0xFF, 0xCF, 0x00, 0xE1, 0x00, 0xCA, 0xFF, 0xCF, + 0x00, 0xE2, 0x00, 0xCB, 0xFF, 0xCF, 0x00, 0xE3, 0x00, 0xCB, 0xFF, 0xCF, 0x00, 0xE4, 0x00, 0xCC, + 0xFF, 0xCF, 0x00, 0xE5, 0x00, 0xCD, 0xFF, 0xCF, 0x00, 0xE6, 0x00, 0xCE, 0xFF, 0xCF, 0x00, 0xE7, + 0x00, 0xD0, 0xFF, 0xCE, 0x00, 0xE8, 0x00, 0xD0, 0xFF, 0xCE, 0x00, 0xE9, 0x00, 0xD1, 0xFF, 0xCE, + 0x00, 0xEA, 0x00, 0xD2, 0xFF, 0xCD, 0x00, 0xEB, 0x00, 0xD3, 0xFF, 0xCD, 0x00, 0xEC, 0x00, 0xD3, + 0xFF, 0xCD, 0x00, 0xED, 0x00, 0xD4, 0xFF, 0xCD, 0x00, 0xEE, 0x00, 0xD6, 0xFF, 0xCC, 0x00, 0xEF, + 0x00, 0xD7, 0xFF, 0xCC, 0x00, 0xF0, 0x00, 0xD7, 0xFF, 0xCC, 0x00, 0xF1, 0x00, 0xD8, 0xFF, 0xCC, + 0x00, 0xF2, 0x00, 0xD9, 0xFF, 0xCC, 0x00, 0xF3, 0x00, 0xDA, 0xFF, 0xCC, 0x00, 0xF4, 0x00, 0xDA, + 0xFF, 0xCC, 0x00, 0xF5, 0x00, 0xDC, 0xFF, 0xCB, 0x00, 0xF6, 0x00, 0xDD, 0xFF, 0xCB, 0x00, 0xF7, + 0x00, 0xDE, 0xFF, 0xCB, 0x00, 0xF8, 0x00, 0xDE, 0xFF, 0xCA, 0x00, 0xF9, 0x00, 0xDF, 0xFF, 0xCA, + 0x00, 0xFA, 0x00, 0xE0, 0xFF, 0xCA, 0x00, 0xFB, 0x00, 0xE1, 0xFF, 0xCA, 0x00, 0xFC, 0x00, 0xE1, + 0xFF, 0xCA, 0x00, 0xFD, 0x00, 0xE3, 0xFF, 0xC9, 0x00, 0xFE, 0x00, 0xE4, 0xFF, 0xC9, 0x00, 0xFF, + 0x00, 0xE5, 0xFF, 0xC9, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x10, 0x0B, 0x08, 0x08, 0x03, + 0x06, 0x08, 0x06, 0x06, 0x02, 0x06, 0x03, 0x04, 0x00, 0x00, 0x06, 0x06, 0x0C, 0x09, 0x09, 0x03, + 0x07, 0x07, 0x07, 0x07, 0x03, 0x07, 0x03, 0x04, 0x00, 0x00, 0x07, 0x07, 0x0D, 0x0A, 0x0A, 0x04, + 0x07, 0x09, 0x07, 0x07, 0x03, 0x07, 0x04, 0x04, 0x00, 0x00, 0x07, 0x07, 0x0F, 0x0B, 0x0B, 0x04, + 0x09, 0x09, 0x08, 0x08, 0x03, 0x08, 0x04, 0x05, 0x00, 0x00, 0x08, 0x08, 0x10, 0x0C, 0x0C, 0x04, + 0x09, 0x0B, 0x09, 0x09, 0x04, 0x08, 0x04, 0x05, 0x00, 0x00, 0x09, 0x09, 0x11, 0x0D, 0x0D, 0x05, + 0x09, 0x0B, 0x09, 0x09, 0x04, 0x09, 0x04, 0x06, 0x00, 0x00, 0x09, 0x09, 0x13, 0x0E, 0x0E, 0x05, + 0x0C, 0x0D, 0x0B, 0x0B, 0x04, 0x0A, 0x05, 0x06, 0x00, 0x00, 0x0B, 0x0B, 0x15, 0x10, 0x10, 0x06, + 0x0C, 0x0D, 0x0C, 0x0B, 0x05, 0x0B, 0x06, 0x07, 0x00, 0x00, 0x0C, 0x0C, 0x18, 0x12, 0x12, 0x07, + 0x0E, 0x0F, 0x0D, 0x0E, 0x05, 0x0E, 0x07, 0x08, 0x00, 0x00, 0x0D, 0x0D, 0x1B, 0x14, 0x14, 0x08, + 0x10, 0x11, 0x0F, 0x0F, 0x06, 0x0F, 0x08, 0x09, 0x00, 0x00, 0x0F, 0x0F, 0x1D, 0x16, 0x16, 0x08, + 0x13, 0x13, 0x10, 0x10, 0x07, 0x10, 0x08, 0x0A, 0x00, 0x00, 0x10, 0x10, 0x20, 0x18, 0x18, 0x09, + 0x13, 0x15, 0x11, 0x11, 0x07, 0x12, 0x09, 0x0B, 0x00, 0x00, 0x11, 0x11, 0x21, 0x19, 0x19, 0x09, + 0x15, 0x16, 0x11, 0x12, 0x07, 0x12, 0x09, 0x0B, 0x00, 0x00, 0x11, 0x11, 0x25, 0x1C, 0x1C, 0x0A, + 0x17, 0x19, 0x14, 0x15, 0x07, 0x15, 0x0A, 0x0C, 0x00, 0x00, 0x14, 0x14, 0x2A, 0x20, 0x20, 0x0C, + 0x1A, 0x1C, 0x17, 0x17, 0x0A, 0x17, 0x0C, 0x0E, 0x00, 0x00, 0x17, 0x17, 0x2E, 0x23, 0x23, 0x0D, + 0x1C, 0x1F, 0x1A, 0x1A, 0x0A, 0x1A, 0x0D, 0x0F, 0x00, 0x00, 0x1A, 0x1A, 0x32, 0x26, 0x26, 0x0E, + 0x1F, 0x21, 0x1C, 0x1C, 0x0C, 0x1C, 0x0E, 0x11, 0x00, 0x00, 0x1C, 0x1C, 0x36, 0x29, 0x29, 0x0F, + 0x21, 0x24, 0x1E, 0x1E, 0x0D, 0x1D, 0x0F, 0x12, 0x00, 0x00, 0x1E, 0x1E, 0x3A, 0x2C, 0x2C, 0x10, + 0x24, 0x27, 0x20, 0x20, 0x0D, 0x20, 0x10, 0x13, 0x00, 0x00, 0x20, 0x20, 0x43, 0x32, 0x32, 0x13, + 0x29, 0x2D, 0x25, 0x25, 0x0F, 0x25, 0x13, 0x16, 0x00, 0x00, 0x25, 0x25, 0x4B, 0x38, 0x38, 0x15, + 0x2D, 0x32, 0x2A, 0x2A, 0x11, 0x2A, 0x15, 0x19, 0x00, 0x00, 0x2A, 0x2A, 0x53, 0x3E, 0x3E, 0x17, + 0x34, 0x37, 0x2E, 0x2E, 0x12, 0x2E, 0x17, 0x1C, 0x00, 0x00, 0x2E, 0x2E, 0x5C, 0x45, 0x45, 0x1A, + 0x39, 0x3D, 0x33, 0x34, 0x14, 0x33, 0x1A, 0x1F, 0x00, 0x00, 0x33, 0x33, 0x64, 0x4B, 0x4B, 0x1C, + 0x3E, 0x43, 0x38, 0x37, 0x16, 0x38, 0x1C, 0x21, 0x00, 0x00, 0x38, 0x38, 0x00, 0x00, 0x00, 0x02, + 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x14, 0x00, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, 0x14, + 0x00, 0x04, 0x00, 0x60, 0x00, 0x00, 0x00, 0x14, 0x00, 0x10, 0x00, 0x03, 0x00, 0x04, 0x00, 0x20, + 0x00, 0x54, 0x00, 0x56, 0x00, 0x67, 0x00, 0x69, 0x00, 0x6E, 0x00, 0x74, 0x1E, 0xBF, 0x1E, 0xC7, + 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x20, 0x00, 0x54, 0x00, 0x56, 0x00, 0x67, 0x00, 0x69, 0x00, 0x6E, + 0x00, 0x74, 0x1E, 0xBF, 0x1E, 0xC7, 0xFF, 0xFF, 0xFF, 0xE1, 0xFF, 0xAE, 0xFF, 0xAD, 0xFF, 0x9E, + 0xFF, 0x9D, 0xFF, 0x99, 0xFF, 0x94, 0xE1, 0x4D, 0xE1, 0x46, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x40, 0x5B, 0x85, 0x74, 0x73, 0x72, 0x71, 0x70, 0x6F, 0x6E, 0x6D, 0x6C, 0x6B, 0x6A, 0x69, 0x68, + 0x67, 0x66, 0x65, 0x62, 0x5D, 0x58, 0x57, 0x56, 0x55, 0x54, 0x4F, 0x4E, 0x41, 0x40, 0x3F, 0x3E, + 0x3D, 0x3C, 0x3B, 0x3A, 0x39, 0x38, 0x37, 0x35, 0x34, 0x33, 0x32, 0x31, 0x30, 0x2F, 0x2E, 0x2D, + 0x2C, 0x2B, 0x2A, 0x29, 0x28, 0x27, 0x26, 0x25, 0x24, 0x23, 0x22, 0x21, 0x20, 0x1F, 0x1E, 0x1D, + 0x1C, 0x1B, 0x1A, 0x19, 0x18, 0x17, 0x16, 0x15, 0x14, 0x13, 0x12, 0x11, 0x10, 0x0F, 0x0E, 0x0D, + 0x0C, 0x0B, 0x0A, 0x09, 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x00, 0x2C, 0x45, 0x23, + 0x46, 0x60, 0x20, 0xB0, 0x26, 0x60, 0xB0, 0x04, 0x26, 0x23, 0x48, 0x48, 0x2D, 0x2C, 0x45, 0x23, + 0x46, 0x23, 0x61, 0x20, 0xB0, 0x26, 0x61, 0xB0, 0x04, 0x26, 0x23, 0x48, 0x48, 0x2D, 0x2C, 0x45, + 0x23, 0x46, 0x60, 0xB0, 0x20, 0x61, 0x20, 0xB0, 0x46, 0x60, 0xB0, 0x04, 0x26, 0x23, 0x48, 0x48, + 0x2D, 0x2C, 0x45, 0x23, 0x46, 0x23, 0x61, 0xB0, 0x20, 0x60, 0x20, 0xB0, 0x26, 0x61, 0xB0, 0x20, + 0x61, 0xB0, 0x04, 0x26, 0x23, 0x48, 0x48, 0x2D, 0x2C, 0x45, 0x23, 0x46, 0x60, 0xB0, 0x40, 0x61, + 0x20, 0xB0, 0x66, 0x60, 0xB0, 0x04, 0x26, 0x23, 0x48, 0x48, 0x2D, 0x2C, 0x45, 0x23, 0x46, 0x23, + 0x61, 0xB0, 0x40, 0x60, 0x20, 0xB0, 0x26, 0x61, 0xB0, 0x40, 0x61, 0xB0, 0x04, 0x26, 0x23, 0x48, + 0x48, 0x2D, 0x2C, 0x01, 0x10, 0x20, 0x3C, 0x00, 0x3C, 0x2D, 0x2C, 0x20, 0x45, 0x23, 0x20, 0xB0, + 0xCD, 0x44, 0x23, 0x20, 0xB8, 0x01, 0x5A, 0x51, 0x58, 0x23, 0x20, 0xB0, 0x8D, 0x44, 0x23, 0x59, + 0x20, 0xB0, 0xED, 0x51, 0x58, 0x23, 0x20, 0xB0, 0x4D, 0x44, 0x23, 0x59, 0x20, 0xB0, 0x90, 0x51, + 0x58, 0x23, 0x20, 0xB0, 0x0D, 0x44, 0x23, 0x59, 0x21, 0x21, 0x2D, 0x2C, 0x20, 0x20, 0x45, 0x18, + 0x68, 0x44, 0x20, 0xB0, 0x01, 0x60, 0x20, 0x45, 0xB0, 0x46, 0x76, 0x68, 0x8A, 0x45, 0x60, 0x44, + 0x2D, 0x2C, 0x01, 0xB1, 0x0B, 0x0A, 0x43, 0x23, 0x43, 0x65, 0x0A, 0x2D, 0x2C, 0x00, 0xB1, 0x0A, + 0x0B, 0x43, 0x23, 0x43, 0x0B, 0x2D, 0x2C, 0x00, 0xB0, 0x17, 0x23, 0x70, 0xB1, 0x01, 0x17, 0x3E, + 0x01, 0xB0, 0x17, 0x23, 0x70, 0xB1, 0x02, 0x17, 0x45, 0x3A, 0xB1, 0x02, 0x00, 0x08, 0x0D, 0x2D, + 0x2C, 0x45, 0xB0, 0x1A, 0x23, 0x44, 0x45, 0xB0, 0x19, 0x23, 0x44, 0x2D, 0x2C, 0x20, 0x45, 0xB0, + 0x03, 0x25, 0x45, 0x61, 0x64, 0xB0, 0x50, 0x51, 0x58, 0x45, 0x44, 0x1B, 0x21, 0x21, 0x59, 0x2D, + 0x2C, 0xB0, 0x01, 0x43, 0x63, 0x23, 0x62, 0xB0, 0x00, 0x23, 0x42, 0xB0, 0x0F, 0x2B, 0x2D, 0x2C, + 0x20, 0x45, 0xB0, 0x00, 0x43, 0x60, 0x44, 0x2D, 0x2C, 0x01, 0xB0, 0x06, 0x43, 0xB0, 0x07, 0x43, + 0x65, 0x0A, 0x2D, 0x2C, 0x20, 0x69, 0xB0, 0x40, 0x61, 0xB0, 0x00, 0x8B, 0x20, 0xB1, 0x2C, 0xC0, + 0x8A, 0x8C, 0xB8, 0x10, 0x00, 0x62, 0x60, 0x2B, 0x0C, 0x64, 0x23, 0x64, 0x61, 0x5C, 0x58, 0xB0, + 0x03, 0x61, 0x59, 0x2D, 0x2C, 0x45, 0xB0, 0x11, 0x2B, 0xB0, 0x17, 0x23, 0x44, 0xB0, 0x17, 0x7A, + 0xE4, 0x18, 0x2D, 0x2C, 0x45, 0xB0, 0x11, 0x2B, 0xB0, 0x17, 0x23, 0x44, 0x2D, 0x2C, 0xB0, 0x12, + 0x43, 0x58, 0x87, 0x45, 0xB0, 0x11, 0x2B, 0xB0, 0x17, 0x23, 0x44, 0xB0, 0x17, 0x7A, 0xE4, 0x1B, + 0x03, 0x8A, 0x45, 0x18, 0x69, 0x20, 0xB0, 0x17, 0x23, 0x44, 0x8A, 0x8A, 0x87, 0x20, 0xB0, 0xA0, + 0x51, 0x58, 0xB0, 0x11, 0x2B, 0xB0, 0x17, 0x23, 0x44, 0xB0, 0x17, 0x7A, 0xE4, 0x1B, 0x21, 0xB0, + 0x17, 0x7A, 0xE4, 0x59, 0x59, 0x18, 0x2D, 0x2C, 0x2D, 0x2C, 0xB0, 0x02, 0x25, 0x46, 0x60, 0x8A, + 0x46, 0xB0, 0x40, 0x61, 0x8C, 0x48, 0x2D, 0x2C, 0x4B, 0x53, 0x20, 0x5C, 0x58, 0xB0, 0x02, 0x85, + 0x59, 0x58, 0xB0, 0x01, 0x85, 0x59, 0x2D, 0x2C, 0x20, 0xB0, 0x03, 0x25, 0x45, 0xB0, 0x19, 0x23, + 0x44, 0x45, 0xB0, 0x1A, 0x23, 0x44, 0x45, 0x65, 0x23, 0x45, 0x20, 0xB0, 0x03, 0x25, 0x60, 0x6A, + 0x20, 0xB0, 0x09, 0x23, 0x42, 0x23, 0x68, 0x8A, 0x6A, 0x60, 0x61, 0x20, 0xB0, 0x1A, 0x8A, 0xB0, + 0x00, 0x52, 0x79, 0x21, 0xB2, 0x1A, 0x1A, 0x40, 0xB9, 0xFF, 0xE0, 0x00, 0x1A, 0x45, 0x20, 0x8A, + 0x54, 0x58, 0x23, 0x21, 0xB0, 0x3F, 0x1B, 0x23, 0x59, 0x61, 0x44, 0x1C, 0xB1, 0x14, 0x00, 0x8A, + 0x52, 0x79, 0xB3, 0x19, 0x40, 0x20, 0x19, 0x45, 0x20, 0x8A, 0x54, 0x58, 0x23, 0x21, 0xB0, 0x3F, + 0x1B, 0x23, 0x59, 0x61, 0x44, 0x2D, 0x2C, 0xB1, 0x10, 0x11, 0x43, 0x23, 0x43, 0x0B, 0x2D, 0x2C, + 0xB1, 0x0E, 0x0F, 0x43, 0x23, 0x43, 0x0B, 0x2D, 0x2C, 0xB1, 0x0C, 0x0D, 0x43, 0x23, 0x43, 0x0B, + 0x2D, 0x2C, 0xB1, 0x0C, 0x0D, 0x43, 0x23, 0x43, 0x65, 0x0B, 0x2D, 0x2C, 0xB1, 0x0E, 0x0F, 0x43, + 0x23, 0x43, 0x65, 0x0B, 0x2D, 0x2C, 0xB1, 0x10, 0x11, 0x43, 0x23, 0x43, 0x65, 0x0B, 0x2D, 0x2C, + 0x4B, 0x52, 0x58, 0x45, 0x44, 0x1B, 0x21, 0x21, 0x59, 0x2D, 0x2C, 0x01, 0x20, 0xB0, 0x03, 0x25, + 0x23, 0x49, 0xB0, 0x40, 0x60, 0xB0, 0x20, 0x63, 0x20, 0xB0, 0x00, 0x52, 0x58, 0x23, 0xB0, 0x02, + 0x25, 0x38, 0x23, 0xB0, 0x02, 0x25, 0x65, 0x38, 0x00, 0x8A, 0x63, 0x38, 0x1B, 0x21, 0x21, 0x21, + 0x21, 0x21, 0x59, 0x01, 0x2D, 0x2C, 0x4B, 0xB0, 0x64, 0x51, 0x58, 0x45, 0x69, 0xB0, 0x09, 0x43, + 0x60, 0x8A, 0x10, 0x3A, 0x1B, 0x21, 0x21, 0x21, 0x59, 0x2D, 0x2C, 0x01, 0xB0, 0x05, 0x25, 0x10, + 0x23, 0x20, 0x8A, 0xF5, 0x00, 0xB0, 0x01, 0x60, 0x23, 0xED, 0xEC, 0x2D, 0x2C, 0x01, 0xB0, 0x05, + 0x25, 0x10, 0x23, 0x20, 0x8A, 0xF5, 0x00, 0xB0, 0x01, 0x61, 0x23, 0xED, 0xEC, 0x2D, 0x2C, 0x01, + 0xB0, 0x06, 0x25, 0x10, 0xF5, 0x00, 0xED, 0xEC, 0x2D, 0x2C, 0x20, 0xB0, 0x01, 0x60, 0x01, 0x10, + 0x20, 0x3C, 0x00, 0x3C, 0x2D, 0x2C, 0x20, 0xB0, 0x01, 0x61, 0x01, 0x10, 0x20, 0x3C, 0x00, 0x3C, + 0x2D, 0x2C, 0xB0, 0x2B, 0x2B, 0xB0, 0x2A, 0x2A, 0x2D, 0x2C, 0x00, 0xB0, 0x07, 0x43, 0xB0, 0x06, + 0x43, 0x0B, 0x2D, 0x2C, 0x3E, 0xB0, 0x2A, 0x2A, 0x2D, 0x2C, 0x35, 0x2D, 0x2C, 0x76, 0xB8, 0x02, + 0x23, 0x23, 0x70, 0x10, 0x20, 0xB8, 0x02, 0x23, 0x45, 0x20, 0xB0, 0x00, 0x50, 0x58, 0xB0, 0x01, + 0x61, 0x59, 0x3A, 0x2F, 0x18, 0x2D, 0x2C, 0x21, 0x21, 0x0C, 0x64, 0x23, 0x64, 0x8B, 0xB8, 0x40, + 0x00, 0x62, 0x2D, 0x2C, 0x21, 0xB0, 0x80, 0x51, 0x58, 0x0C, 0x64, 0x23, 0x64, 0x8B, 0xB8, 0x20, + 0x00, 0x62, 0x1B, 0xB2, 0x00, 0x40, 0x2F, 0x2B, 0x59, 0xB0, 0x02, 0x60, 0x2D, 0x2C, 0x21, 0xB0, + 0xC0, 0x51, 0x58, 0x0C, 0x64, 0x23, 0x64, 0x8B, 0xB8, 0x15, 0x55, 0x62, 0x1B, 0xB2, 0x00, 0x80, + 0x2F, 0x2B, 0x59, 0xB0, 0x02, 0x60, 0x2D, 0x2C, 0x0C, 0x64, 0x23, 0x64, 0x8B, 0xB8, 0x40, 0x00, + 0x62, 0x60, 0x23, 0x21, 0x2D, 0x2C, 0xB4, 0x00, 0x01, 0x00, 0x00, 0x00, 0x15, 0xB0, 0x08, 0x26, + 0xB0, 0x08, 0x26, 0xB0, 0x08, 0x26, 0xB0, 0x08, 0x26, 0x0F, 0x10, 0x16, 0x13, 0x45, 0x68, 0x3A, + 0xB0, 0x01, 0x16, 0x2D, 0x2C, 0xB4, 0x00, 0x01, 0x00, 0x00, 0x00, 0x15, 0xB0, 0x08, 0x26, 0xB0, + 0x08, 0x26, 0xB0, 0x08, 0x26, 0xB0, 0x08, 0x26, 0x0F, 0x10, 0x16, 0x13, 0x45, 0x68, 0x65, 0x3A, + 0xB0, 0x01, 0x16, 0x2D, 0x2C, 0x4B, 0x53, 0x23, 0x4B, 0x51, 0x5A, 0x58, 0x20, 0x45, 0x8A, 0x60, + 0x44, 0x1B, 0x21, 0x21, 0x59, 0x2D, 0x2C, 0x4B, 0x54, 0x58, 0x20, 0x45, 0x8A, 0x60, 0x44, 0x1B, + 0x21, 0x21, 0x59, 0x2D, 0x2C, 0x4B, 0x53, 0x23, 0x4B, 0x51, 0x5A, 0x58, 0x38, 0x1B, 0x21, 0x21, + 0x59, 0x2D, 0x2C, 0x4B, 0x54, 0x58, 0x38, 0x1B, 0x21, 0x21, 0x59, 0x2D, 0x2C, 0xB0, 0x13, 0x43, + 0x58, 0x03, 0x1B, 0x02, 0x59, 0x2D, 0x2C, 0xB0, 0x13, 0x43, 0x58, 0x02, 0x1B, 0x03, 0x59, 0x2D, + 0x2C, 0x4B, 0x54, 0xB0, 0x12, 0x43, 0x5C, 0x5A, 0x58, 0x38, 0x1B, 0x21, 0x21, 0x59, 0x2D, 0x2C, + 0xB0, 0x12, 0x43, 0x5C, 0x58, 0x0C, 0xB0, 0x04, 0x25, 0xB0, 0x04, 0x25, 0x06, 0x0C, 0x64, 0x23, + 0x64, 0x61, 0x64, 0xB8, 0x07, 0x08, 0x51, 0x58, 0xB0, 0x04, 0x25, 0xB0, 0x04, 0x25, 0x01, 0x20, + 0x46, 0xB0, 0x10, 0x60, 0x48, 0x20, 0x46, 0xB0, 0x10, 0x60, 0x48, 0x59, 0x0A, 0x21, 0x21, 0x1B, + 0x21, 0x21, 0x59, 0x2D, 0x2C, 0xB0, 0x12, 0x43, 0x5C, 0x58, 0x0C, 0xB0, 0x04, 0x25, 0xB0, 0x04, + 0x25, 0x06, 0x0C, 0x64, 0x23, 0x64, 0x61, 0x64, 0xB8, 0x07, 0x08, 0x51, 0x58, 0xB0, 0x04, 0x25, + 0xB0, 0x04, 0x25, 0x01, 0x20, 0x46, 0xB8, 0xFF, 0xF0, 0x60, 0x48, 0x20, 0x46, 0xB8, 0xFF, 0xF0, + 0x60, 0x48, 0x59, 0x0A, 0x21, 0x21, 0x1B, 0x21, 0x21, 0x59, 0x2D, 0x2C, 0x4B, 0x53, 0x23, 0x4B, + 0x51, 0x5A, 0x58, 0xB0, 0x3A, 0x2B, 0x1B, 0x21, 0x21, 0x59, 0x2D, 0x2C, 0x4B, 0x53, 0x23, 0x4B, + 0x51, 0x5A, 0x58, 0xB0, 0x3B, 0x2B, 0x1B, 0x21, 0x21, 0x59, 0x2D, 0x2C, 0x4B, 0x53, 0x23, 0x4B, + 0x51, 0x5A, 0xB0, 0x12, 0x43, 0x5C, 0x5A, 0x58, 0x38, 0x1B, 0x21, 0x21, 0x59, 0x2D, 0x2C, 0x0C, + 0x8A, 0x03, 0x4B, 0x54, 0xB0, 0x04, 0x26, 0x02, 0x4B, 0x54, 0x5A, 0x8A, 0x8A, 0x0A, 0xB0, 0x12, + 0x43, 0x5C, 0x5A, 0x58, 0x38, 0x1B, 0x21, 0x21, 0x59, 0x2D, 0x2C, 0x4B, 0x52, 0x58, 0xB0, 0x04, + 0x25, 0xB0, 0x04, 0x25, 0x49, 0xB0, 0x04, 0x25, 0xB0, 0x04, 0x25, 0x49, 0x61, 0x20, 0xB0, 0x00, + 0x54, 0x58, 0x21, 0x20, 0x43, 0xB0, 0x00, 0x55, 0x58, 0xB0, 0x03, 0x25, 0xB0, 0x03, 0x25, 0xB8, + 0xFF, 0xC0, 0x38, 0xB8, 0xFF, 0xC0, 0x38, 0x59, 0x1B, 0xB0, 0x40, 0x54, 0x58, 0x20, 0x43, 0xB0, + 0x00, 0x54, 0x58, 0xB0, 0x02, 0x25, 0xB8, 0xFF, 0xC0, 0x38, 0x59, 0x1B, 0x20, 0x43, 0xB0, 0x00, + 0x54, 0x58, 0xB0, 0x03, 0x25, 0xB0, 0x03, 0x25, 0xB8, 0xFF, 0xC0, 0x38, 0xB8, 0xFF, 0xC0, 0x38, + 0x1B, 0xB0, 0x03, 0x25, 0xB8, 0xFF, 0xC0, 0x38, 0x59, 0x59, 0x59, 0x59, 0x21, 0x21, 0x21, 0x21, + 0x2D, 0x2C, 0x46, 0x23, 0x46, 0x60, 0x8A, 0x8A, 0x46, 0x23, 0x20, 0x46, 0x8A, 0x60, 0x8A, 0x61, + 0xB8, 0xFF, 0x80, 0x62, 0x23, 0x20, 0x10, 0x23, 0x8A, 0xB9, 0x02, 0xC2, 0x02, 0xC2, 0x8A, 0x70, + 0x45, 0x60, 0x20, 0xB0, 0x00, 0x50, 0x58, 0xB0, 0x01, 0x61, 0xB8, 0xFF, 0xBA, 0x8B, 0x1B, 0xB0, + 0x46, 0x8C, 0x59, 0xB0, 0x10, 0x60, 0x68, 0x01, 0x3A, 0x2D, 0x2C, 0x23, 0x20, 0xB0, 0x00, 0x50, + 0x8A, 0x8A, 0x64, 0xB1, 0x00, 0x03, 0x25, 0x54, 0x58, 0xB0, 0x40, 0x1B, 0xB1, 0x01, 0x03, 0x25, + 0x54, 0x58, 0xB0, 0x37, 0x43, 0x8B, 0x59, 0xB0, 0x4F, 0x2B, 0x59, 0x23, 0xB0, 0x62, 0x2B, 0x23, + 0x21, 0x23, 0x58, 0x65, 0x59, 0x2D, 0x2C, 0xB1, 0x3A, 0x00, 0x0C, 0x21, 0x54, 0x60, 0x43, 0x2D, + 0x2C, 0xB1, 0x02, 0x00, 0x42, 0xB1, 0x23, 0x01, 0x88, 0x51, 0xB1, 0x40, 0x01, 0x88, 0x53, 0x5A, + 0x58, 0xB9, 0x10, 0x00, 0x00, 0x20, 0x88, 0x54, 0x58, 0xB2, 0x02, 0x01, 0x02, 0x43, 0x60, 0x42, + 0x59, 0xB1, 0x24, 0x01, 0x88, 0x51, 0x58, 0xB9, 0x20, 0x00, 0x00, 0x40, 0x88, 0x54, 0x58, 0xB2, + 0x02, 0x02, 0x02, 0x43, 0x60, 0x42, 0xB1, 0x24, 0x01, 0x88, 0x54, 0x58, 0xB2, 0x02, 0x20, 0x02, + 0x43, 0x60, 0x42, 0x00, 0x4B, 0x01, 0x4B, 0x52, 0x58, 0xB2, 0x02, 0x08, 0x02, 0x43, 0x60, 0x42, + 0x59, 0x1B, 0xB9, 0x40, 0x00, 0x00, 0x80, 0x88, 0x54, 0x58, 0xB2, 0x02, 0x04, 0x02, 0x43, 0x60, + 0x42, 0x59, 0xB9, 0x40, 0x00, 0x00, 0x80, 0x63, 0xB8, 0x01, 0x00, 0x88, 0x54, 0x58, 0xB2, 0x02, + 0x08, 0x02, 0x43, 0x60, 0x42, 0x59, 0xB9, 0x40, 0x00, 0x01, 0x00, 0x63, 0xB8, 0x02, 0x00, 0x88, + 0x54, 0x58, 0xB2, 0x02, 0x10, 0x02, 0x43, 0x60, 0x42, 0x59, 0xB1, 0x26, 0x01, 0x88, 0x51, 0x58, + 0xB9, 0x40, 0x00, 0x02, 0x00, 0x63, 0xB8, 0x04, 0x00, 0x88, 0x54, 0x58, 0xB2, 0x02, 0x40, 0x02, + 0x43, 0x60, 0x42, 0x59, 0xB9, 0x40, 0x00, 0x04, 0x00, 0x63, 0xB8, 0x08, 0x00, 0x88, 0x54, 0x58, + 0xB2, 0x02, 0x80, 0x02, 0x43, 0x60, 0x42, 0x59, 0xB1, 0x28, 0x01, 0x88, 0x51, 0x58, 0xB9, 0x40, + 0x00, 0x08, 0x00, 0x63, 0xB8, 0x10, 0x00, 0x88, 0x54, 0x58, 0xBA, 0x00, 0x02, 0x01, 0x00, 0x00, + 0x02, 0x43, 0x60, 0x42, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0xB1, 0x00, 0x02, 0x43, 0x54, + 0x58, 0x40, 0x0A, 0x37, 0x40, 0x3A, 0x40, 0x3B, 0x40, 0x3E, 0x02, 0x3F, 0x02, 0x1B, 0xB1, 0x01, + 0x02, 0x43, 0x54, 0x58, 0xB2, 0x37, 0x40, 0x3A, 0xBA, 0x01, 0x00, 0x00, 0x3B, 0x01, 0x00, 0xB3, + 0x3E, 0x01, 0x3F, 0x01, 0x1B, 0xB1, 0x80, 0x02, 0x43, 0x52, 0x58, 0xB2, 0x37, 0x40, 0x3A, 0xB8, + 0x01, 0x80, 0xB1, 0x3B, 0x40, 0x1B, 0xB9, 0x01, 0x00, 0x00, 0x02, 0x43, 0x52, 0x58, 0xB2, 0x37, + 0x40, 0x3A, 0xBA, 0x01, 0x80, 0x00, 0x3B, 0x01, 0x40, 0x1B, 0xB9, 0x01, 0x80, 0x00, 0x02, 0x43, + 0x52, 0x58, 0xB2, 0x37, 0x40, 0x3A, 0xB8, 0x02, 0x00, 0xB1, 0x3B, 0x40, 0x1B, 0xB2, 0x37, 0x40, + 0x3A, 0xBA, 0x01, 0x00, 0x00, 0x3B, 0x01, 0x00, 0x59, 0x59, 0x59, 0xB9, 0x40, 0x00, 0x00, 0x80, + 0x88, 0x55, 0xB9, 0x40, 0x00, 0x02, 0x00, 0x63, 0xB8, 0x04, 0x00, 0x88, 0x55, 0x5A, 0x58, 0xB3, + 0x3E, 0x00, 0x3F, 0x01, 0x1B, 0xB3, 0x3E, 0x00, 0x3F, 0x01, 0x59, 0x59, 0x59, 0x42, 0x42, 0x42, + 0x42, 0x42, 0x2D, 0x2C, 0xB0, 0x02, 0x43, 0x54, 0x58, 0x4B, 0x53, 0x23, 0x4B, 0x51, 0x5A, 0x58, + 0x38, 0x1B, 0x21, 0x21, 0x59, 0x1B, 0x21, 0x21, 0x21, 0x21, 0x59, 0x2D, 0x2C, 0xB0, 0x57, 0x2B, + 0x58, 0x0C, 0x02, 0x8A, 0x4B, 0x53, 0xB0, 0x04, 0x26, 0x4B, 0x51, 0x5A, 0x58, 0x0A, 0x38, 0x1B, + 0x0A, 0x21, 0x21, 0x59, 0x1B, 0x21, 0x21, 0x21, 0x21, 0x59, 0x2D, 0x2C, 0x20, 0xB0, 0x02, 0x43, + 0x54, 0xB0, 0x01, 0x23, 0xB0, 0x5F, 0x23, 0x78, 0x21, 0xB1, 0x00, 0x02, 0x43, 0xB0, 0x56, 0x23, + 0x79, 0x21, 0xB0, 0x02, 0x43, 0x23, 0xB0, 0x20, 0x20, 0x5C, 0x58, 0x21, 0x21, 0x21, 0xB1, 0x00, + 0x47, 0x1C, 0x59, 0x8A, 0x8A, 0x20, 0x8A, 0x20, 0x8A, 0x23, 0xB8, 0x10, 0x00, 0x63, 0x56, 0x58, + 0xB8, 0x10, 0x00, 0x63, 0x56, 0x58, 0x21, 0x21, 0x21, 0xB1, 0x01, 0x2C, 0x1C, 0x59, 0x1B, 0x21, + 0x59, 0xB0, 0x80, 0x62, 0x20, 0x5C, 0x58, 0x21, 0x21, 0x21, 0xB1, 0x00, 0x1B, 0x1C, 0x59, 0x23, + 0xB0, 0x80, 0x62, 0x20, 0x5C, 0x58, 0x21, 0x21, 0x21, 0xB1, 0x00, 0x0C, 0x1C, 0x59, 0x8A, 0xB0, + 0x01, 0x61, 0xB8, 0xFF, 0xB3, 0x1C, 0x23, 0x21, 0x2D, 0x2C, 0x20, 0xB0, 0x02, 0x43, 0x54, 0xB0, + 0x01, 0x23, 0xB0, 0x7B, 0x23, 0x78, 0x21, 0xB1, 0x00, 0x02, 0x43, 0xB0, 0x72, 0x23, 0x79, 0x21, + 0xB1, 0x00, 0x02, 0x43, 0x8A, 0xB0, 0x20, 0x20, 0x5C, 0x58, 0x21, 0x21, 0x21, 0xB0, 0x63, 0x1C, + 0x59, 0x8A, 0x8A, 0x20, 0x8A, 0x20, 0x8A, 0x23, 0xB8, 0x10, 0x00, 0x63, 0x56, 0x58, 0xB8, 0x10, + 0x00, 0x63, 0x56, 0x58, 0xB0, 0x04, 0x26, 0xB0, 0x01, 0x5B, 0xB0, 0x04, 0x26, 0xB0, 0x04, 0x26, + 0xB0, 0x04, 0x26, 0x1B, 0x21, 0x21, 0x21, 0x21, 0xB1, 0x36, 0x00, 0x23, 0x1C, 0x59, 0x1B, 0x21, + 0x59, 0xB0, 0x04, 0x26, 0x23, 0xB0, 0x80, 0x62, 0x20, 0x5C, 0x58, 0x8A, 0x5C, 0x8A, 0x5A, 0x23, + 0x21, 0x23, 0x21, 0xB0, 0x1D, 0x1C, 0x59, 0x8A, 0xB0, 0x80, 0x62, 0x20, 0x5C, 0x58, 0x21, 0x21, + 0x23, 0x21, 0xB0, 0x0E, 0x1C, 0x59, 0xB0, 0x04, 0x26, 0xB0, 0x01, 0x61, 0xB8, 0xFF, 0x98, 0x1C, + 0x23, 0x21, 0x2D, 0x2C, 0x01, 0x2D, 0x2C, 0xB0, 0x02, 0x25, 0x63, 0xB0, 0x20, 0x60, 0x66, 0xB0, + 0x02, 0x25, 0xB8, 0x20, 0x00, 0x62, 0x60, 0x23, 0x62, 0x2D, 0x2C, 0x23, 0x4A, 0xB1, 0x02, 0x4E, + 0x2B, 0x2D, 0x2C, 0x23, 0x4A, 0xB1, 0x01, 0x4E, 0x2B, 0x2D, 0x2C, 0x23, 0x8A, 0x4A, 0x23, 0x45, + 0x64, 0xB0, 0x02, 0x25, 0x64, 0xB0, 0x02, 0x25, 0x61, 0x64, 0xB0, 0x35, 0x43, 0x52, 0x58, 0x21, + 0x20, 0x64, 0x59, 0xB1, 0x02, 0x4E, 0x2B, 0x23, 0xB0, 0x00, 0x50, 0x58, 0x65, 0x59, 0x2D, 0x2C, + 0x23, 0x8A, 0x4A, 0x23, 0x45, 0x64, 0xB0, 0x02, 0x25, 0x64, 0xB0, 0x02, 0x25, 0x61, 0x64, 0xB0, + 0x35, 0x43, 0x52, 0x58, 0x21, 0x20, 0x64, 0x59, 0xB1, 0x01, 0x4E, 0x2B, 0x23, 0xB0, 0x00, 0x50, + 0x58, 0x65, 0x59, 0x2D, 0x2C, 0x20, 0xB0, 0x03, 0x25, 0x4A, 0xB1, 0x02, 0x4E, 0x2B, 0x8A, 0x10, + 0x3B, 0x2D, 0x2C, 0x20, 0xB0, 0x03, 0x25, 0x4A, 0xB1, 0x01, 0x4E, 0x2B, 0x8A, 0x10, 0x3B, 0x2D, + 0x2C, 0xB0, 0x03, 0x25, 0xB0, 0x03, 0x25, 0x8A, 0xB0, 0x67, 0x2B, 0x8A, 0x10, 0x3B, 0x2D, 0x2C, + 0xB0, 0x03, 0x25, 0xB0, 0x03, 0x25, 0x8A, 0xB0, 0x68, 0x2B, 0x8A, 0x10, 0x3B, 0x2D, 0x2C, 0xB0, + 0x03, 0x25, 0x46, 0xB0, 0x03, 0x25, 0x46, 0x60, 0xB0, 0x04, 0x25, 0x2E, 0xB0, 0x04, 0x25, 0xB0, + 0x04, 0x25, 0xB0, 0x04, 0x26, 0x20, 0xB0, 0x00, 0x50, 0x58, 0x21, 0xB0, 0x6A, 0x1B, 0xB0, 0x6C, + 0x59, 0x2B, 0xB0, 0x03, 0x25, 0x46, 0xB0, 0x03, 0x25, 0x46, 0x60, 0x61, 0xB0, 0x80, 0x62, 0x20, + 0x8A, 0x20, 0x10, 0x23, 0x3A, 0x23, 0x20, 0x10, 0x23, 0x3A, 0x2D, 0x2C, 0xB0, 0x03, 0x25, 0x47, + 0xB0, 0x03, 0x25, 0x47, 0x60, 0xB0, 0x05, 0x25, 0x47, 0xB0, 0x80, 0x63, 0x61, 0xB0, 0x02, 0x25, + 0xB0, 0x06, 0x25, 0x49, 0x63, 0x23, 0xB0, 0x05, 0x25, 0x4A, 0xB0, 0x80, 0x63, 0x20, 0x58, 0x62, + 0x1B, 0x21, 0x59, 0xB0, 0x04, 0x26, 0x46, 0x60, 0x8A, 0x46, 0x8A, 0x46, 0x60, 0xB0, 0x20, 0x63, + 0x61, 0x2D, 0x2C, 0xB0, 0x04, 0x26, 0xB0, 0x04, 0x25, 0xB0, 0x04, 0x25, 0xB0, 0x04, 0x26, 0xB0, + 0x6E, 0x2B, 0x20, 0x8A, 0x20, 0x10, 0x23, 0x3A, 0x23, 0x20, 0x10, 0x23, 0x3A, 0x2D, 0x2C, 0x23, + 0x20, 0xB0, 0x01, 0x54, 0x58, 0x21, 0xB0, 0x02, 0x25, 0xB1, 0x02, 0x4E, 0x2B, 0xB0, 0x80, 0x50, + 0x20, 0x60, 0x59, 0x20, 0x60, 0x60, 0x20, 0xB0, 0x01, 0x51, 0x58, 0x21, 0x21, 0x1B, 0x20, 0xB0, + 0x05, 0x51, 0x58, 0x21, 0x20, 0x66, 0x61, 0xB0, 0x40, 0x23, 0x61, 0xB1, 0x00, 0x03, 0x25, 0x50, + 0xB0, 0x03, 0x25, 0xB0, 0x03, 0x25, 0x50, 0x5A, 0x58, 0x20, 0xB0, 0x03, 0x25, 0x61, 0x8A, 0x53, + 0x58, 0x21, 0xB0, 0x00, 0x59, 0x1B, 0x21, 0x59, 0x1B, 0xB0, 0x07, 0x54, 0x58, 0x20, 0x66, 0x61, + 0x65, 0x23, 0x21, 0x1B, 0x21, 0x21, 0xB0, 0x00, 0x59, 0x59, 0x59, 0xB1, 0x02, 0x4E, 0x2B, 0x2D, + 0x2C, 0xB0, 0x02, 0x25, 0xB0, 0x04, 0x25, 0x4A, 0xB0, 0x00, 0x53, 0x58, 0xB0, 0x00, 0x1B, 0x8A, + 0x8A, 0x23, 0x8A, 0xB0, 0x01, 0x59, 0xB0, 0x04, 0x25, 0x46, 0x20, 0x66, 0x61, 0x20, 0xB0, 0x05, + 0x26, 0xB0, 0x06, 0x26, 0x49, 0xB0, 0x05, 0x26, 0xB0, 0x05, 0x26, 0xB0, 0x70, 0x2B, 0x23, 0x61, + 0x65, 0xB0, 0x20, 0x60, 0x20, 0x66, 0x61, 0xB0, 0x20, 0x61, 0x65, 0x2D, 0x2C, 0xB0, 0x02, 0x25, + 0x46, 0x20, 0x8A, 0x20, 0xB0, 0x00, 0x50, 0x58, 0x21, 0xB1, 0x02, 0x4E, 0x2B, 0x1B, 0x45, 0x23, + 0x21, 0x59, 0x61, 0x65, 0xB0, 0x02, 0x25, 0x10, 0x3B, 0x2D, 0x2C, 0xB0, 0x04, 0x26, 0x20, 0xB8, + 0x02, 0x00, 0x62, 0x20, 0xB8, 0x02, 0x00, 0x63, 0x8A, 0x23, 0x61, 0x20, 0xB0, 0x5D, 0x60, 0x2B, + 0xB0, 0x05, 0x25, 0x11, 0x8A, 0x12, 0x8A, 0x20, 0x39, 0x8A, 0x58, 0xBA, 0x00, 0x5D, 0x10, 0x00, + 0x00, 0x04, 0x26, 0x63, 0x56, 0x60, 0x2B, 0x23, 0x21, 0x20, 0x10, 0x20, 0x46, 0x20, 0xB1, 0x02, + 0x4E, 0x2B, 0x23, 0x61, 0x1B, 0x23, 0x21, 0x20, 0x8A, 0x20, 0x10, 0x49, 0xB1, 0x02, 0x4E, 0x2B, + 0x59, 0x3B, 0x2D, 0x2C, 0xBA, 0x00, 0x5D, 0x10, 0x00, 0x00, 0x09, 0x25, 0x63, 0x56, 0x60, 0x2B, + 0xB0, 0x05, 0x25, 0xB0, 0x05, 0x25, 0xB0, 0x05, 0x26, 0xB0, 0x6D, 0x2B, 0xB1, 0x5D, 0x07, 0x25, + 0x60, 0x2B, 0xB0, 0x05, 0x25, 0xB0, 0x05, 0x25, 0xB0, 0x05, 0x25, 0xB0, 0x05, 0x25, 0xB0, 0x6F, + 0x2B, 0xBA, 0x00, 0x5D, 0x10, 0x00, 0x00, 0x08, 0x26, 0x63, 0x56, 0x60, 0x2B, 0x20, 0xB0, 0x00, + 0x52, 0x58, 0xB0, 0x50, 0x2B, 0xB0, 0x05, 0x25, 0xB0, 0x05, 0x25, 0xB0, 0x07, 0x25, 0xB0, 0x07, + 0x25, 0xB0, 0x05, 0x25, 0xB0, 0x71, 0x2B, 0xB0, 0x02, 0x17, 0x38, 0xB0, 0x00, 0x52, 0xB0, 0x02, + 0x25, 0xB0, 0x01, 0x52, 0x5A, 0x58, 0xB0, 0x04, 0x25, 0xB0, 0x06, 0x25, 0x49, 0xB0, 0x03, 0x25, + 0xB0, 0x05, 0x25, 0x49, 0x60, 0x20, 0xB0, 0x40, 0x52, 0x58, 0x21, 0x1B, 0xB0, 0x00, 0x52, 0x58, + 0x20, 0xB0, 0x02, 0x54, 0x58, 0xB0, 0x04, 0x25, 0xB0, 0x04, 0x25, 0xB0, 0x07, 0x25, 0xB0, 0x07, + 0x25, 0x49, 0xB0, 0x02, 0x17, 0x38, 0x1B, 0xB0, 0x04, 0x25, 0xB0, 0x04, 0x25, 0xB0, 0x04, 0x25, + 0xB0, 0x06, 0x25, 0x49, 0xB0, 0x02, 0x17, 0x38, 0x59, 0x59, 0x59, 0x59, 0x59, 0x21, 0x21, 0x21, + 0x21, 0x21, 0x2D, 0x2C, 0xB1, 0x25, 0x01, 0x88, 0x50, 0x58, 0xB9, 0x40, 0x00, 0x02, 0x00, 0x63, + 0xB8, 0x04, 0x00, 0x88, 0x54, 0x5C, 0xB0, 0x12, 0x4B, 0x52, 0x5B, 0x1B, 0xB0, 0x01, 0x59, 0x2D, + 0xB1, 0x54, 0x85, 0x41, 0x0B, 0x03, 0x2C, 0x03, 0x2C, 0x03, 0x2C, 0x02, 0x22, 0x00, 0x1D, 0x00, + 0x1F, 0x03, 0x2B, 0x03, 0x2A, 0x00, 0x3C, 0x00, 0x1F, 0x03, 0x2A, 0xB2, 0x06, 0x1D, 0x1F, 0xB8, + 0x03, 0x28, 0xB3, 0x26, 0x18, 0x1F, 0xD0, 0xBC, 0x03, 0x29, 0x00, 0xE0, 0x03, 0x29, 0x00, 0x02, + 0x03, 0x29, 0xB2, 0x2B, 0x1D, 0x1F, 0xB9, 0x03, 0x27, 0x03, 0x1D, 0xB2, 0x3B, 0x1F, 0x40, 0xB8, + 0x03, 0x23, 0xB3, 0x12, 0x15, 0x32, 0x0F, 0x41, 0x2D, 0x03, 0x20, 0x00, 0x01, 0x00, 0x2F, 0x03, + 0x20, 0x00, 0x01, 0x00, 0x20, 0x03, 0x20, 0x00, 0x6F, 0x03, 0x20, 0x00, 0xAF, 0x03, 0x20, 0x00, + 0xBF, 0x03, 0x20, 0x00, 0x04, 0x00, 0x5F, 0x03, 0x1E, 0x00, 0x01, 0x00, 0x10, 0x03, 0x1E, 0x00, + 0x7F, 0x03, 0x1E, 0x00, 0x80, 0x03, 0x1E, 0x00, 0xAF, 0x03, 0x1E, 0x00, 0xBF, 0x03, 0x1E, 0x00, + 0xD0, 0x03, 0x1E, 0x00, 0x06, 0x00, 0x00, 0x03, 0x1E, 0x00, 0x10, 0x03, 0x1E, 0x00, 0x20, 0x03, + 0x1E, 0x00, 0x6F, 0x03, 0x1E, 0x00, 0x9F, 0x03, 0x1E, 0x00, 0xE0, 0x03, 0x1E, 0x00, 0x06, 0x03, + 0x1D, 0x03, 0x1C, 0xB2, 0x20, 0x1F, 0x10, 0x41, 0x27, 0x03, 0x19, 0x00, 0x7F, 0x03, 0x19, 0x00, + 0x02, 0x00, 0x0F, 0x03, 0x17, 0x00, 0xEF, 0x03, 0x17, 0x00, 0xFF, 0x03, 0x17, 0x00, 0x03, 0x00, + 0x1F, 0x03, 0x17, 0x00, 0x2F, 0x03, 0x17, 0x00, 0x4F, 0x03, 0x17, 0x00, 0x5F, 0x03, 0x17, 0x00, + 0x8F, 0x03, 0x17, 0x00, 0x9F, 0x03, 0x17, 0x00, 0x06, 0x00, 0x0F, 0x03, 0x17, 0x00, 0x5F, 0x03, + 0x17, 0x00, 0x6F, 0x03, 0x17, 0x00, 0x7F, 0x03, 0x17, 0x00, 0xBF, 0x03, 0x17, 0x00, 0xF0, 0x03, + 0x17, 0x00, 0x06, 0x00, 0x40, 0x03, 0x17, 0xB2, 0x92, 0x33, 0x40, 0xB8, 0x03, 0x17, 0xB2, 0x8B, + 0x33, 0x40, 0xB8, 0x03, 0x17, 0xB3, 0x6A, 0x6C, 0x32, 0x40, 0xB8, 0x03, 0x17, 0xB2, 0x61, 0x33, + 0x40, 0xB8, 0x03, 0x17, 0xB3, 0x5C, 0x5D, 0x32, 0x40, 0xB8, 0x03, 0x17, 0xB3, 0x57, 0x59, 0x32, + 0x40, 0xB8, 0x03, 0x17, 0xB3, 0x4D, 0x51, 0x32, 0x40, 0xB8, 0x03, 0x17, 0xB3, 0x44, 0x49, 0x32, + 0x40, 0xB8, 0x03, 0x17, 0xB2, 0x3A, 0x33, 0x40, 0xB8, 0x03, 0x17, 0xB3, 0x31, 0x34, 0x32, 0x40, + 0xB8, 0x03, 0x17, 0xB3, 0x2E, 0x42, 0x32, 0x40, 0xB8, 0x03, 0x17, 0xB3, 0x27, 0x2C, 0x32, 0x40, + 0xB8, 0x03, 0x17, 0xB3, 0x12, 0x25, 0x32, 0x80, 0xB8, 0x03, 0x17, 0xB3, 0x0A, 0x0D, 0x32, 0xC0, + 0x41, 0x16, 0x03, 0x16, 0x00, 0xD0, 0x03, 0x16, 0x00, 0x02, 0x00, 0x70, 0x03, 0x16, 0x00, 0x01, + 0x02, 0xC4, 0x00, 0x0F, 0x01, 0x01, 0x00, 0x1F, 0x00, 0xA0, 0x03, 0x15, 0x00, 0xB0, 0x03, 0x15, + 0x00, 0x02, 0x03, 0x06, 0x00, 0x0F, 0x01, 0x01, 0x00, 0x1F, 0x00, 0x40, 0x03, 0x12, 0xB3, 0x24, + 0x26, 0x32, 0x9F, 0xBF, 0x03, 0x04, 0x00, 0x01, 0x03, 0x02, 0x03, 0x01, 0x00, 0x64, 0x00, 0x1F, + 0xFF, 0xC0, 0x03, 0x01, 0xB2, 0x0D, 0x11, 0x32, 0x41, 0x0A, 0x02, 0xFF, 0x02, 0xEF, 0x00, 0x12, + 0x00, 0x1F, 0x02, 0xEE, 0x02, 0xED, 0x00, 0x64, 0x00, 0x1F, 0xFF, 0xC0, 0x02, 0xED, 0xB3, 0x0E, + 0x11, 0x32, 0x9F, 0x41, 0x4A, 0x02, 0xE2, 0x00, 0xAF, 0x02, 0xE2, 0x00, 0xBF, 0x02, 0xE2, 0x00, + 0x03, 0x02, 0xE2, 0x02, 0xE2, 0x02, 0xE1, 0x02, 0xE1, 0x00, 0x7F, 0x02, 0xE0, 0x00, 0x01, 0x00, + 0x10, 0x02, 0xE0, 0x00, 0x3F, 0x02, 0xE0, 0x00, 0x9F, 0x02, 0xE0, 0x00, 0xBF, 0x02, 0xE0, 0x00, + 0xCF, 0x02, 0xE0, 0x00, 0xEF, 0x02, 0xE0, 0x00, 0x06, 0x02, 0xE0, 0x02, 0xE0, 0x02, 0xDF, 0x02, + 0xDF, 0x02, 0xDE, 0x02, 0xDE, 0x00, 0x0F, 0x02, 0xDD, 0x00, 0x2F, 0x02, 0xDD, 0x00, 0x3F, 0x02, + 0xDD, 0x00, 0x5F, 0x02, 0xDD, 0x00, 0x9F, 0x02, 0xDD, 0x00, 0xBF, 0x02, 0xDD, 0x00, 0xEF, 0x02, + 0xDD, 0x00, 0x07, 0x02, 0xDD, 0x02, 0xDD, 0x00, 0x10, 0x02, 0xDC, 0x00, 0x01, 0x00, 0x00, 0x02, + 0xDC, 0x00, 0x01, 0x00, 0x10, 0x02, 0xDC, 0x00, 0x3F, 0x02, 0xDC, 0x00, 0x02, 0x02, 0xDC, 0x02, + 0xDC, 0x00, 0x10, 0x02, 0xDB, 0x00, 0x01, 0x02, 0xDB, 0x02, 0xDB, 0x00, 0x0F, 0x02, 0xDA, 0x00, + 0x01, 0x02, 0xDA, 0x02, 0xDA, 0xFF, 0xC0, 0x02, 0xD3, 0xB2, 0x37, 0x39, 0x32, 0xB9, 0xFF, 0xC0, + 0x02, 0xD3, 0xB2, 0x2B, 0x2F, 0x32, 0xB9, 0xFF, 0xC0, 0x02, 0xD3, 0xB2, 0x1F, 0x25, 0x32, 0xB9, + 0xFF, 0xC0, 0x02, 0xD3, 0xB2, 0x17, 0x1B, 0x32, 0xB9, 0xFF, 0xC0, 0x02, 0xD3, 0xB2, 0x12, 0x16, + 0x32, 0xB8, 0x02, 0xD2, 0xB2, 0xF9, 0x29, 0x1F, 0xB9, 0x03, 0x26, 0x03, 0x1C, 0xB2, 0x3B, 0x1F, + 0x40, 0xBB, 0x03, 0x22, 0x00, 0x3E, 0x00, 0x33, 0x03, 0x22, 0xB2, 0x25, 0x31, 0x1F, 0xB8, 0x03, + 0x18, 0xB2, 0x3C, 0x69, 0x1F, 0xB8, 0x02, 0xE3, 0xB3, 0x20, 0x2B, 0x1F, 0xA0, 0x41, 0x30, 0x02, + 0xD4, 0x00, 0xB0, 0x02, 0xD4, 0x00, 0x02, 0x00, 0x00, 0x02, 0xD4, 0x00, 0x10, 0x02, 0xD4, 0x00, + 0x20, 0x02, 0xD4, 0x00, 0x50, 0x02, 0xD4, 0x00, 0x60, 0x02, 0xD4, 0x00, 0x70, 0x02, 0xD4, 0x00, + 0x06, 0x00, 0x60, 0x02, 0xD6, 0x00, 0x70, 0x02, 0xD6, 0x00, 0x80, 0x02, 0xD6, 0x00, 0x90, 0x02, + 0xD6, 0x00, 0xA0, 0x02, 0xD6, 0x00, 0xB0, 0x02, 0xD6, 0x00, 0x06, 0x00, 0x00, 0x02, 0xD6, 0x00, + 0x10, 0x02, 0xD6, 0x00, 0x20, 0x02, 0xCA, 0x00, 0x20, 0x02, 0xCC, 0x00, 0x20, 0x02, 0xD6, 0x00, + 0x30, 0x02, 0xD6, 0x00, 0x40, 0x02, 0xD6, 0x00, 0x50, 0x02, 0xD6, 0x00, 0x08, 0x02, 0xD0, 0xB2, + 0x20, 0x2B, 0x1F, 0xB8, 0x02, 0xCF, 0xB2, 0x26, 0x42, 0x1F, 0x41, 0x16, 0x02, 0xCE, 0x02, 0xC7, + 0x00, 0x17, 0x00, 0x1F, 0x02, 0xCD, 0x02, 0xC8, 0x00, 0x17, 0x00, 0x1F, 0x02, 0xCC, 0x02, 0xC6, + 0x00, 0x17, 0x00, 0x1F, 0x02, 0xCB, 0x02, 0xC5, 0x00, 0x17, 0x00, 0x1F, 0x02, 0xC9, 0x02, 0xC5, + 0x00, 0x1E, 0x00, 0x1F, 0x02, 0xCA, 0x02, 0xC6, 0xB2, 0x1E, 0x1F, 0x00, 0x41, 0x0B, 0x02, 0xC6, + 0x00, 0x00, 0x02, 0xC7, 0x00, 0x10, 0x02, 0xC6, 0x00, 0x10, 0x02, 0xC7, 0x00, 0x2F, 0x02, 0xC5, + 0x00, 0x05, 0x02, 0xC1, 0xB3, 0x24, 0x12, 0x1F, 0xFF, 0x41, 0x11, 0x02, 0xBF, 0x00, 0x01, 0x00, + 0x1F, 0x02, 0xBF, 0x00, 0x2F, 0x02, 0xBF, 0x00, 0x3F, 0x02, 0xBF, 0x00, 0x4F, 0x02, 0xBF, 0x00, + 0x5F, 0x02, 0xBF, 0x00, 0x8F, 0x02, 0xBF, 0x00, 0x06, 0x02, 0xBF, 0x02, 0x22, 0xB2, 0x64, 0x1F, + 0x12, 0x41, 0x0B, 0x02, 0xBB, 0x00, 0xCA, 0x08, 0x00, 0x00, 0x1F, 0x02, 0xB2, 0x00, 0xE9, 0x08, + 0x00, 0x00, 0x1F, 0x02, 0xA6, 0x00, 0xA2, 0x08, 0x00, 0x40, 0x6A, 0x1F, 0x40, 0x26, 0x43, 0x49, + 0x32, 0x40, 0x20, 0x43, 0x49, 0x32, 0x40, 0x26, 0x3A, 0x3D, 0x32, 0x40, 0x20, 0x3A, 0x3D, 0x32, + 0x9F, 0x20, 0x9F, 0x26, 0x02, 0x40, 0x26, 0x96, 0x99, 0x32, 0x40, 0x20, 0x96, 0x99, 0x32, 0x40, + 0x26, 0x8E, 0x92, 0x32, 0x40, 0x20, 0x8E, 0x92, 0x32, 0x40, 0x26, 0x84, 0x8C, 0x32, 0x40, 0x20, + 0x84, 0x8C, 0x32, 0x40, 0x26, 0x7A, 0x81, 0x32, 0x40, 0x20, 0x7A, 0x81, 0x32, 0x40, 0x26, 0x6C, + 0x76, 0x32, 0x40, 0x20, 0x6C, 0x76, 0x32, 0x40, 0x26, 0x64, 0x6A, 0x32, 0x40, 0x20, 0x64, 0x6A, + 0x32, 0x40, 0x26, 0x5A, 0x5F, 0x32, 0x40, 0x20, 0x5A, 0x5F, 0x32, 0x40, 0x26, 0x4F, 0x54, 0x32, + 0x40, 0x20, 0x4F, 0x54, 0x32, 0xB8, 0x02, 0x9E, 0xB7, 0x24, 0x27, 0x1F, 0x37, 0x4F, 0x6B, 0x01, + 0x20, 0x41, 0x0F, 0x02, 0x77, 0x00, 0x30, 0x02, 0x77, 0x00, 0x40, 0x02, 0x77, 0x00, 0x50, 0x02, + 0x77, 0x00, 0x04, 0x02, 0x77, 0x02, 0x77, 0x02, 0x77, 0x00, 0xF9, 0x04, 0x00, 0x00, 0x1F, 0x02, + 0x9B, 0xB2, 0x2A, 0x2A, 0x1F, 0xB8, 0x02, 0x9A, 0x40, 0x2B, 0x29, 0x2A, 0x1F, 0x80, 0xBA, 0x01, + 0x80, 0xBC, 0x01, 0x80, 0x52, 0x01, 0x80, 0xA2, 0x01, 0x80, 0x65, 0x01, 0x80, 0x7E, 0x01, 0x80, + 0x81, 0x01, 0x80, 0x3C, 0x01, 0x80, 0x5E, 0x01, 0x80, 0x2B, 0x01, 0x80, 0x1C, 0x01, 0x80, 0x1E, + 0x01, 0x80, 0x40, 0x01, 0x80, 0xBB, 0x01, 0x38, 0x00, 0x01, 0x00, 0x80, 0x01, 0x40, 0xB4, 0x01, + 0x80, 0x40, 0x01, 0x80, 0xBB, 0x01, 0x38, 0x00, 0x01, 0x00, 0x80, 0x01, 0x39, 0x40, 0x18, 0x01, + 0x80, 0xCA, 0x01, 0x80, 0xAD, 0x01, 0x80, 0x73, 0x01, 0x80, 0x26, 0x01, 0x80, 0x25, 0x01, 0x80, + 0x24, 0x01, 0x80, 0x20, 0x01, 0x37, 0x40, 0xB8, 0x02, 0x21, 0xB2, 0x49, 0x33, 0x40, 0xB8, 0x02, + 0x21, 0xB2, 0x45, 0x33, 0x40, 0xB8, 0x02, 0x21, 0xB3, 0x41, 0x42, 0x32, 0x40, 0xB8, 0x02, 0x21, + 0xB3, 0x3D, 0x3E, 0x32, 0x0F, 0x41, 0x0F, 0x02, 0x21, 0x00, 0x3F, 0x02, 0x21, 0x00, 0x7F, 0x02, + 0x21, 0x00, 0x03, 0x00, 0xBF, 0x02, 0x21, 0x00, 0xCF, 0x02, 0x21, 0x00, 0xFF, 0x02, 0x21, 0x00, + 0x03, 0x00, 0x40, 0x02, 0x21, 0xB3, 0x20, 0x22, 0x32, 0x40, 0xB8, 0x02, 0x21, 0xB3, 0x19, 0x1E, + 0x32, 0x40, 0xB8, 0x02, 0x22, 0xB3, 0x2A, 0x3F, 0x32, 0x40, 0xB8, 0x02, 0x21, 0xB3, 0x2E, 0x3A, + 0x32, 0x6F, 0x41, 0x4A, 0x02, 0xC3, 0x00, 0x7F, 0x02, 0xC3, 0x00, 0x8F, 0x02, 0xC3, 0x00, 0xDF, + 0x02, 0xC3, 0x00, 0x04, 0x00, 0x2F, 0x02, 0xC3, 0x00, 0x60, 0x02, 0xC3, 0x00, 0xCF, 0x02, 0xC3, + 0x00, 0x03, 0x00, 0x0F, 0x02, 0xC3, 0x00, 0x3F, 0x02, 0xC3, 0x00, 0x5F, 0x02, 0xC3, 0x00, 0xC0, + 0x02, 0xC3, 0x00, 0xEF, 0x02, 0xC3, 0x00, 0xFF, 0x02, 0xC3, 0x00, 0x06, 0x00, 0xDF, 0x02, 0x22, + 0x00, 0x01, 0x00, 0x8F, 0x02, 0x22, 0x00, 0x01, 0x00, 0x0F, 0x02, 0x22, 0x00, 0x2F, 0x02, 0x22, + 0x00, 0x3F, 0x02, 0x22, 0x00, 0x5F, 0x02, 0x22, 0x00, 0x7F, 0x02, 0x22, 0x00, 0xEF, 0x02, 0x22, + 0x00, 0x06, 0x00, 0xBF, 0x02, 0x21, 0x00, 0xEF, 0x02, 0x21, 0x00, 0x02, 0x00, 0x6F, 0x02, 0x21, + 0x00, 0x7F, 0x02, 0x21, 0x00, 0xAF, 0x02, 0x21, 0x00, 0x03, 0x00, 0x0F, 0x02, 0x21, 0x00, 0x2F, + 0x02, 0x21, 0x00, 0x3F, 0x02, 0x21, 0x00, 0x4F, 0x02, 0x21, 0x00, 0x04, 0x02, 0xC3, 0x02, 0xC3, + 0x02, 0x22, 0x02, 0x22, 0x02, 0x21, 0x02, 0x21, 0x40, 0x1D, 0x10, 0x1C, 0x10, 0x2B, 0x10, 0x48, + 0x03, 0x8F, 0x1C, 0x01, 0x0F, 0x1E, 0x01, 0x4F, 0x1E, 0xFF, 0x1E, 0x02, 0x37, 0x00, 0x16, 0x16, + 0x00, 0x00, 0x00, 0x12, 0x11, 0x08, 0x11, 0xB8, 0x01, 0x0D, 0xB6, 0xF7, 0x0D, 0xF8, 0xF7, 0x0D, + 0x00, 0x09, 0x41, 0x09, 0x02, 0x8E, 0x02, 0x8F, 0x00, 0x1D, 0x00, 0x1F, 0x02, 0x90, 0x02, 0x8F, + 0x00, 0x1D, 0x00, 0x1F, 0x02, 0x8F, 0xB2, 0xF9, 0x1D, 0x1F, 0xB8, 0x01, 0x98, 0xB2, 0x26, 0xBB, + 0x1F, 0x41, 0x15, 0x01, 0x97, 0x00, 0x1E, 0x04, 0x01, 0x00, 0x1F, 0x01, 0x39, 0x00, 0x26, 0x01, + 0x25, 0x00, 0x1F, 0x01, 0x38, 0x00, 0x73, 0x04, 0x01, 0x00, 0x1F, 0x01, 0x35, 0x00, 0x1C, 0x08, + 0x01, 0x00, 0x1F, 0x01, 0x34, 0x00, 0x1C, 0x02, 0xAB, 0x00, 0x1F, 0x01, 0x32, 0xB2, 0x1C, 0x56, + 0x1F, 0xB8, 0x01, 0x0F, 0xB2, 0x26, 0x2C, 0x1F, 0xBA, 0x01, 0x0E, 0x00, 0x1E, 0x04, 0x01, 0xB6, + 0x1F, 0xF9, 0x1C, 0xE4, 0x1F, 0xE9, 0x1C, 0xB8, 0x02, 0x01, 0xB6, 0x1F, 0xE8, 0x1C, 0xBB, 0x1F, + 0xD7, 0x20, 0xB8, 0x04, 0x01, 0xB2, 0x1F, 0xD5, 0x1C, 0xB8, 0x02, 0xAB, 0xB6, 0x1F, 0xD4, 0x1C, + 0x89, 0x1F, 0xC9, 0x2F, 0xB8, 0x08, 0x01, 0xB2, 0x1F, 0xBC, 0x26, 0xB8, 0x01, 0x01, 0xB2, 0x1F, + 0xBA, 0x20, 0xB8, 0x02, 0x01, 0xB6, 0x1F, 0xB9, 0x1C, 0x38, 0x1F, 0xAD, 0xCA, 0xB8, 0x04, 0x01, + 0xB2, 0x1F, 0x81, 0x26, 0xB8, 0x01, 0x9A, 0xB2, 0x1F, 0x7E, 0x26, 0xB8, 0x01, 0x9A, 0xB6, 0x1F, + 0x7D, 0x1C, 0x47, 0x1F, 0x6B, 0x1C, 0xB8, 0x04, 0x01, 0xB2, 0x1F, 0x65, 0x26, 0xB8, 0x01, 0x9A, + 0xB2, 0x1F, 0x5E, 0x73, 0xB8, 0x04, 0x01, 0x40, 0x0F, 0x1F, 0x52, 0x26, 0x5A, 0x1F, 0x48, 0x1C, + 0x89, 0x1F, 0x44, 0x1C, 0x62, 0x1F, 0x40, 0x73, 0xB8, 0x08, 0x01, 0xB6, 0x1F, 0x3F, 0x1C, 0x5E, + 0x1F, 0x3C, 0x26, 0xB8, 0x01, 0x9A, 0xB2, 0x1F, 0x35, 0x1C, 0xB8, 0x04, 0x01, 0xB6, 0x1F, 0x30, + 0x1C, 0xBB, 0x1F, 0x2B, 0x1C, 0xB8, 0x04, 0x01, 0xB6, 0x1F, 0x2A, 0x1C, 0x56, 0x1F, 0x29, 0x1C, + 0xB8, 0x01, 0x01, 0xB2, 0x1F, 0x23, 0x1E, 0xB8, 0x04, 0x01, 0xB4, 0x1F, 0x35, 0x55, 0x55, 0x37, + 0xB8, 0x01, 0x68, 0x40, 0x2C, 0x07, 0x96, 0x07, 0x58, 0x07, 0x4F, 0x07, 0x36, 0x07, 0x32, 0x07, + 0x2C, 0x07, 0x21, 0x07, 0x1F, 0x07, 0x1D, 0x07, 0x1B, 0x07, 0x14, 0x08, 0x12, 0x08, 0x10, 0x08, + 0x0E, 0x08, 0x0C, 0x08, 0x0A, 0x08, 0x08, 0x08, 0x06, 0x08, 0x04, 0x08, 0x02, 0x08, 0x00, 0x08, + 0x14, 0xB8, 0xFF, 0xE0, 0x40, 0x2B, 0x00, 0x00, 0x01, 0x00, 0x14, 0x06, 0x10, 0x00, 0x00, 0x01, + 0x00, 0x06, 0x04, 0x00, 0x00, 0x01, 0x00, 0x04, 0x10, 0x00, 0x00, 0x01, 0x00, 0x10, 0x02, 0x00, + 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x02, 0x01, 0x08, 0x02, 0x00, 0x4A, + 0x00, 0xB0, 0x13, 0x03, 0x4B, 0x02, 0x4B, 0x53, 0x42, 0x01, 0x4B, 0xB0, 0xC0, 0x63, 0x00, 0x4B, + 0x62, 0x20, 0xB0, 0xF6, 0x53, 0x23, 0xB8, 0x01, 0x0A, 0x51, 0x5A, 0xB0, 0x05, 0x23, 0x42, 0x01, + 0xB0, 0x12, 0x4B, 0x00, 0x4B, 0x54, 0x42, 0xB0, 0x38, 0x2B, 0x4B, 0xB8, 0x07, 0xFF, 0x52, 0xB0, + 0x37, 0x2B, 0x4B, 0xB0, 0x07, 0x50, 0x5B, 0x58, 0xB1, 0x01, 0x01, 0x8E, 0x59, 0xB0, 0x38, 0x2B, + 0xB0, 0x02, 0x88, 0xB8, 0x01, 0x00, 0x54, 0x58, 0xB8, 0x01, 0xFF, 0xB1, 0x01, 0x01, 0x8E, 0x85, + 0x1B, 0xB0, 0x12, 0x43, 0x58, 0xB9, 0x00, 0x01, 0x01, 0x11, 0x85, 0x8D, 0x1B, 0xB9, 0x00, 0x01, + 0x01, 0x28, 0x85, 0x8D, 0x59, 0x59, 0x00, 0x18, 0x16, 0x76, 0x3F, 0x18, 0x3F, 0x12, 0x3E, 0x11, + 0x39, 0x46, 0x44, 0x3E, 0x11, 0x39, 0x46, 0x44, 0x3E, 0x11, 0x39, 0x46, 0x44, 0x3E, 0x11, 0x39, + 0x46, 0x44, 0x3E, 0x11, 0x39, 0x46, 0x60, 0x44, 0x3E, 0x11, 0x39, 0x46, 0x60, 0x44, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x18, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x18, 0x2B, 0x1D, 0x42, 0xB0, 0x96, 0x4B, 0x53, 0x58, 0xB2, 0x35, + 0xAA, 0xAA, 0x1D, 0x42, 0x59, 0xB0, 0x32, 0x4B, 0x53, 0x58, 0xB2, 0x35, 0xFF, 0xFF, 0x1D, 0x42, + 0x59, 0x4B, 0xB0, 0x93, 0x53, 0x20, 0x5C, 0x58, 0xB9, 0x01, 0xF2, 0x01, 0xF0, 0x45, 0x44, 0xB9, + 0x01, 0xF1, 0x01, 0xF0, 0x45, 0x44, 0x59, 0x58, 0xB9, 0x03, 0x3E, 0x01, 0xF2, 0x45, 0x52, 0x58, + 0xB9, 0x01, 0xF2, 0x03, 0x3E, 0x44, 0x59, 0x59, 0x4B, 0xB8, 0x01, 0x56, 0x53, 0x20, 0x5C, 0x58, + 0xB9, 0x00, 0x20, 0x01, 0xF1, 0x45, 0x44, 0xB9, 0x00, 0x26, 0x01, 0xF1, 0x45, 0x44, 0x59, 0x58, + 0xB9, 0x08, 0x1E, 0x00, 0x20, 0x45, 0x52, 0x58, 0xB9, 0x00, 0x20, 0x08, 0x1E, 0x44, 0x59, 0x59, + 0x4B, 0xB8, 0x01, 0x9A, 0x53, 0x20, 0x5C, 0x58, 0xB9, 0x00, 0x25, 0x01, 0xF2, 0x45, 0x44, 0xB9, + 0x00, 0x24, 0x01, 0xF2, 0x45, 0x44, 0x59, 0x58, 0xB9, 0x09, 0x09, 0x00, 0x25, 0x45, 0x52, 0x58, + 0xB9, 0x00, 0x25, 0x09, 0x09, 0x44, 0x59, 0x59, 0x4B, 0xB8, 0x04, 0x01, 0x53, 0x20, 0x5C, 0x58, + 0xB1, 0x73, 0x24, 0x45, 0x44, 0xB1, 0x24, 0x24, 0x45, 0x44, 0x59, 0x58, 0xB9, 0x17, 0x20, 0x00, + 0x73, 0x45, 0x52, 0x58, 0xB9, 0x00, 0x73, 0x17, 0x20, 0x44, 0x59, 0x59, 0x4B, 0xB8, 0x04, 0x01, + 0x53, 0x20, 0x5C, 0x58, 0xB1, 0xCA, 0x25, 0x45, 0x44, 0xB1, 0x25, 0x25, 0x45, 0x44, 0x59, 0x58, + 0xB9, 0x16, 0x80, 0x00, 0xCA, 0x45, 0x52, 0x58, 0xB9, 0x00, 0xCA, 0x16, 0x80, 0x44, 0x59, 0x59, + 0x4B, 0xB0, 0x3E, 0x53, 0x20, 0x5C, 0x58, 0xB1, 0x1C, 0x1C, 0x45, 0x44, 0xB1, 0x1E, 0x1C, 0x45, + 0x44, 0x59, 0x58, 0xB9, 0x01, 0x1A, 0x00, 0x1C, 0x45, 0x52, 0x58, 0xB9, 0x00, 0x1C, 0x01, 0x1A, + 0x44, 0x59, 0x59, 0x4B, 0xB0, 0x56, 0x53, 0x20, 0x5C, 0x58, 0xB1, 0x1C, 0x1C, 0x45, 0x44, 0xB1, + 0x2F, 0x1C, 0x45, 0x44, 0x59, 0x58, 0xB9, 0x01, 0x89, 0x00, 0x1C, 0x45, 0x52, 0x58, 0xB9, 0x00, + 0x1C, 0x01, 0x89, 0x44, 0x59, 0x59, 0x4B, 0xB8, 0x03, 0x01, 0x53, 0x20, 0x5C, 0x58, 0xB1, 0x1C, + 0x1C, 0x45, 0x44, 0xB1, 0x1C, 0x1C, 0x45, 0x44, 0x59, 0x58, 0xB9, 0x0D, 0xE0, 0x00, 0x1C, 0x45, + 0x52, 0x58, 0xB9, 0x00, 0x1C, 0x0D, 0xE0, 0x44, 0x59, 0x59, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x65, 0x42, 0x2B, 0x2B, 0x01, 0xB3, 0x3B, 0x59, 0x63, 0x5C, 0x45, 0x65, 0x23, + 0x45, 0x60, 0x23, 0x45, 0x65, 0x60, 0x23, 0x45, 0x60, 0xB0, 0x8B, 0x76, 0x68, 0x18, 0xB0, 0x80, + 0x62, 0x20, 0x20, 0xB1, 0x63, 0x59, 0x45, 0x65, 0x23, 0x45, 0x20, 0xB0, 0x03, 0x26, 0x60, 0x62, + 0x63, 0x68, 0x20, 0xB0, 0x03, 0x26, 0x61, 0x65, 0xB0, 0x59, 0x23, 0x65, 0x44, 0xB0, 0x63, 0x23, + 0x44, 0x20, 0xB1, 0x3B, 0x5C, 0x45, 0x65, 0x23, 0x45, 0x20, 0xB0, 0x03, 0x26, 0x60, 0x62, 0x63, + 0x68, 0x20, 0xB0, 0x03, 0x26, 0x61, 0x65, 0xB0, 0x5C, 0x23, 0x65, 0x44, 0xB0, 0x3B, 0x23, 0x44, + 0xB1, 0x00, 0x5C, 0x45, 0x54, 0x58, 0xB1, 0x5C, 0x40, 0x65, 0x44, 0xB2, 0x3B, 0x40, 0x3B, 0x45, + 0x23, 0x61, 0x44, 0x59, 0xB3, 0x47, 0x50, 0x34, 0x37, 0x45, 0x65, 0x23, 0x45, 0x60, 0x23, 0x45, + 0x65, 0x60, 0x23, 0x45, 0x60, 0xB0, 0x89, 0x76, 0x68, 0x18, 0xB0, 0x80, 0x62, 0x20, 0x20, 0xB1, + 0x34, 0x50, 0x45, 0x65, 0x23, 0x45, 0x20, 0xB0, 0x03, 0x26, 0x60, 0x62, 0x63, 0x68, 0x20, 0xB0, + 0x03, 0x26, 0x61, 0x65, 0xB0, 0x50, 0x23, 0x65, 0x44, 0xB0, 0x34, 0x23, 0x44, 0x20, 0xB1, 0x47, + 0x37, 0x45, 0x65, 0x23, 0x45, 0x20, 0xB0, 0x03, 0x26, 0x60, 0x62, 0x63, 0x68, 0x20, 0xB0, 0x03, + 0x26, 0x61, 0x65, 0xB0, 0x37, 0x23, 0x65, 0x44, 0xB0, 0x47, 0x23, 0x44, 0xB1, 0x00, 0x37, 0x45, + 0x54, 0x58, 0xB1, 0x37, 0x40, 0x65, 0x44, 0xB2, 0x47, 0x40, 0x47, 0x45, 0x23, 0x61, 0x44, 0x59, + 0x00, 0x4B, 0x53, 0x42, 0x01, 0x4B, 0x50, 0x58, 0xB1, 0x08, 0x00, 0x42, 0x59, 0x43, 0x5C, 0x58, + 0xB1, 0x08, 0x00, 0x42, 0x59, 0xB3, 0x02, 0x0B, 0x0A, 0x12, 0x43, 0x58, 0x60, 0x1B, 0x21, 0x59, + 0x42, 0x16, 0x10, 0x70, 0x3E, 0xB0, 0x12, 0x43, 0x58, 0xB9, 0x3B, 0x21, 0x18, 0x7E, 0x1B, 0xBA, + 0x04, 0x00, 0x01, 0xA8, 0x00, 0x0B, 0x2B, 0x59, 0xB0, 0x0C, 0x23, 0x42, 0xB0, 0x0D, 0x23, 0x42, + 0xB0, 0x12, 0x43, 0x58, 0xB9, 0x2D, 0x41, 0x2D, 0x41, 0x1B, 0xBA, 0x04, 0x00, 0x04, 0x00, 0x00, + 0x0B, 0x2B, 0x59, 0xB0, 0x0E, 0x23, 0x42, 0xB0, 0x0F, 0x23, 0x42, 0xB0, 0x12, 0x43, 0x58, 0xB9, + 0x18, 0x7E, 0x3B, 0x21, 0x1B, 0xBA, 0x01, 0xA8, 0x04, 0x00, 0x00, 0x0B, 0x2B, 0x59, 0xB0, 0x10, + 0x23, 0x42, 0xB0, 0x11, 0x23, 0x42, 0x00, 0x2B, 0x74, 0x75, 0x73, 0x75, 0x00, 0x18, 0x45, 0x69, + 0x44, 0x45, 0x69, 0x44, 0x45, 0x69, 0x44, 0x73, 0x73, 0x73, 0x73, 0x74, 0x75, 0x73, 0x74, 0x75, + 0x2B, 0x2B, 0x2B, 0x2B, 0x74, 0x75, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x73, 0x73, 0x73, 0x73, 0x73, + 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, + 0x73, 0x73, 0x73, 0x73, 0x2B, 0x2B, 0x2B, 0x45, 0xB0, 0x40, 0x61, 0x44, 0x73, 0x74, 0x00, 0x00, + 0x4B, 0xB0, 0x2A, 0x53, 0x4B, 0xB0, 0x3F, 0x51, 0x5A, 0x58, 0xB1, 0x07, 0x07, 0x45, 0xB0, 0x40, + 0x60, 0x44, 0x59, 0x00, 0x4B, 0xB0, 0x3A, 0x53, 0x4B, 0xB0, 0x3F, 0x51, 0x5A, 0x58, 0xB1, 0x0B, + 0x0B, 0x45, 0xB8, 0xFF, 0xC0, 0x60, 0x44, 0x59, 0x00, 0x4B, 0xB0, 0x2E, 0x53, 0x4B, 0xB0, 0x3A, + 0x51, 0x5A, 0x58, 0xB1, 0x03, 0x03, 0x45, 0xB0, 0x40, 0x60, 0x44, 0x59, 0x00, 0x4B, 0xB0, 0x2E, + 0x53, 0x4B, 0xB0, 0x3C, 0x51, 0x5A, 0x58, 0xB1, 0x09, 0x09, 0x45, 0xB8, 0xFF, 0xC0, 0x60, 0x44, + 0x59, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x75, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x43, 0x5C, 0x58, 0xB9, 0x00, + 0x80, 0x02, 0xBB, 0xB3, 0x01, 0x40, 0x1E, 0x01, 0x74, 0x00, 0x73, 0x59, 0x03, 0xB0, 0x1E, 0x4B, + 0x54, 0x02, 0xB0, 0x12, 0x4B, 0x54, 0x5A, 0xB0, 0x12, 0x43, 0x5C, 0x5A, 0x58, 0xBA, 0x00, 0x9F, + 0x02, 0x22, 0x00, 0x01, 0x00, 0x73, 0x59, 0x00, 0x2B, 0x74, 0x73, 0x01, 0x2B, 0x01, 0x73, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x73, 0x73, 0x73, 0x73, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x00, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x00, 0x45, 0x69, 0x44, 0x73, 0x45, 0x69, 0x44, 0x73, + 0x45, 0x69, 0x44, 0x73, 0x74, 0x75, 0x45, 0x69, 0x44, 0x73, 0x45, 0x69, 0x44, 0x45, 0x69, 0x44, + 0x45, 0x69, 0x44, 0x73, 0x74, 0x45, 0x69, 0x44, 0x45, 0x69, 0x44, 0x73, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x73, 0x2B, 0x00, 0x2B, 0x73, 0x2B, 0x74, 0x75, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, + 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x73, 0x74, 0x75, 0x73, 0x2B, 0x73, 0x74, 0x75, 0x73, + 0x74, 0x75, 0x2B, 0x2B, 0x2B, 0x74, 0x2B, 0x00, 0x2B, 0x2B, 0x2B, 0x00, 0x18, 0x45, 0x69, 0x44, + 0x2B, 0x5C, 0x58, 0x41, 0x0E, 0x03, 0x36, 0x03, 0x2F, 0x00, 0x41, 0x00, 0x1F, 0x03, 0x30, 0x03, + 0x2F, 0x00, 0x2D, 0x00, 0x1F, 0x03, 0x2D, 0x03, 0x2F, 0x00, 0x32, 0x00, 0x1F, 0x03, 0x32, 0x03, + 0x2F, 0x40, 0x12, 0x26, 0x1F, 0x03, 0x02, 0x37, 0x1F, 0x09, 0x08, 0x37, 0x1F, 0x0B, 0x0A, 0x44, + 0x1F, 0x07, 0x06, 0x44, 0x1F, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x59, 0x2B, 0x00, + 0x05, 0xBA, 0x00, 0x19, 0x05, 0xBA, 0x00, 0x1A, 0x05, 0xA7, 0x00, 0x19, 0x04, 0x26, 0x00, 0x18, + 0x00, 0x00, 0xFF, 0xE7, 0x00, 0x00, 0xFF, 0xE8, 0x00, 0x00, 0xFF, 0xE7, 0xFE, 0x69, 0xFF, 0xE8, + 0x05, 0xBA, 0x00, 0x19, 0xFE, 0x69, 0xFF, 0xE8, 0x02, 0xEA, 0x00, 0x00, 0x00, 0xB8, 0x00, 0x00, + 0x00, 0xB8, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA8, 0x00, 0xAD, 0x01, 0x69, 0x00, 0xAD, 0x00, 0xBF, + 0x00, 0xC2, 0x01, 0xF0, 0x00, 0x18, 0x00, 0xAF, 0x00, 0xB9, 0x00, 0xB4, 0x00, 0xC8, 0x00, 0x17, + 0x00, 0x44, 0x00, 0x9C, 0x00, 0x7C, 0x00, 0x94, 0x00, 0x87, 0x00, 0x06, 0x00, 0x5A, 0x00, 0xC8, + 0x00, 0x89, 0x00, 0x52, 0x00, 0x52, 0x00, 0x05, 0x00, 0x44, 0x00, 0x94, 0x01, 0x19, 0xFF, 0xB4, + 0x00, 0x2F, 0x00, 0xA1, 0x00, 0x03, 0x00, 0xA1, 0x00, 0xCD, 0x00, 0x17, 0x00, 0x57, 0x00, 0x7E, + 0x00, 0xBA, 0x00, 0x16, 0x01, 0x18, 0xFF, 0xE9, 0x00, 0x7F, 0x00, 0x85, 0x03, 0xD3, 0x00, 0x87, + 0x00, 0x85, 0x00, 0x0D, 0x00, 0x22, 0x00, 0x41, 0x00, 0x50, 0x00, 0x6F, 0x00, 0x8D, 0x01, 0x4C, + 0xFF, 0x75, 0x00, 0x5C, 0x00, 0xDF, 0x04, 0x83, 0x00, 0x37, 0x00, 0x4C, 0x00, 0x6E, 0x00, 0x70, + 0x01, 0x80, 0xFF, 0x58, 0xFF, 0x8E, 0xFF, 0x92, 0xFF, 0xA4, 0x00, 0xA5, 0x00, 0xB9, 0x03, 0xC8, + 0xFF, 0xFD, 0x00, 0x0B, 0x00, 0x1A, 0x00, 0x63, 0x00, 0x63, 0x00, 0xCD, 0xFF, 0xEE, 0x05, 0xD8, + 0xFF, 0xDC, 0x00, 0x2D, 0x00, 0x5C, 0x00, 0x95, 0x00, 0x99, 0x00, 0xDF, 0x01, 0x92, 0x09, 0xB5, + 0x00, 0x40, 0x00, 0x57, 0x00, 0x80, 0x00, 0xB9, 0x03, 0x9D, 0x00, 0x72, 0x00, 0x9A, 0x03, 0x5D, + 0x04, 0x01, 0xFF, 0x67, 0xFF, 0xFA, 0x00, 0x03, 0x00, 0x21, 0x00, 0x77, 0x00, 0xCD, 0x00, 0x04, + 0x00, 0x4D, 0x00, 0xCD, 0x01, 0xC0, 0x02, 0x2B, 0x00, 0x4C, 0x00, 0x65, 0x00, 0xE7, 0x01, 0x18, + 0x01, 0x7C, 0x03, 0x43, 0x05, 0xD8, 0xFF, 0xA3, 0xFF, 0xB0, 0xFF, 0xC4, 0x00, 0x03, 0x00, 0x1C, + 0x00, 0x5D, 0x00, 0x68, 0x00, 0x9A, 0x00, 0xBA, 0x01, 0x35, 0x01, 0x47, 0x02, 0x21, 0x05, 0x5C, + 0xFF, 0x4D, 0xFF, 0xCD, 0x00, 0x16, 0x00, 0x2D, 0x00, 0x78, 0x00, 0x80, 0x00, 0x99, 0x00, 0xB2, + 0x00, 0xB6, 0x00, 0xB6, 0x00, 0xB8, 0x00, 0xBD, 0x00, 0xDA, 0x01, 0x0C, 0x05, 0xF0, 0xFF, 0xA4, + 0xFF, 0xF0, 0x00, 0x19, 0x00, 0x2C, 0x00, 0x49, 0x00, 0x7F, 0x00, 0xB4, 0x00, 0xCE, 0x01, 0xC0, + 0x03, 0xFE, 0xFD, 0x81, 0xFE, 0x3F, 0x00, 0x00, 0x00, 0x05, 0x00, 0x18, 0x00, 0x29, 0x00, 0x39, + 0x00, 0x49, 0x00, 0x6F, 0x00, 0xBE, 0x00, 0xC7, 0x00, 0xD0, 0x01, 0x23, 0x01, 0xC1, 0x02, 0x6F, + 0x05, 0x0C, 0x05, 0x32, 0x05, 0x40, 0x05, 0x7A, 0xFF, 0xD4, 0x00, 0x14, 0x00, 0x31, 0x00, 0x55, + 0x00, 0x57, 0x00, 0xA7, 0x00, 0xB4, 0x00, 0xE6, 0x01, 0xF7, 0x02, 0x7E, 0x02, 0x7E, 0x02, 0x7F, + 0x03, 0xC6, 0x04, 0x46, 0xFF, 0x42, 0x00, 0x0E, 0x00, 0x85, 0x00, 0x91, 0x00, 0xBF, 0x00, 0xC2, + 0x00, 0xC5, 0x00, 0xE1, 0x01, 0x1A, 0x01, 0x2F, 0x01, 0x4F, 0x01, 0x56, 0x02, 0x29, 0x02, 0x6F, + 0x02, 0x9E, 0x03, 0x72, 0x00, 0x08, 0x00, 0x2C, 0x00, 0x31, 0x00, 0x31, 0x00, 0x64, 0x00, 0x69, + 0x00, 0x89, 0x00, 0x98, 0x00, 0xC7, 0x00, 0xDE, 0x01, 0x2B, 0x01, 0xB6, 0x02, 0x0C, 0x02, 0xCF, + 0x03, 0xA3, 0x04, 0xAB, 0x04, 0xFB, 0x06, 0x1D, 0xFE, 0xE0, 0xFF, 0x0E, 0x00, 0x06, 0x00, 0x26, + 0x00, 0x9B, 0x00, 0x9D, 0x00, 0xC1, 0x01, 0x0D, 0x01, 0x18, 0x01, 0x20, 0x01, 0x73, 0x01, 0x82, + 0x01, 0xD6, 0x01, 0xE3, 0x02, 0x43, 0x02, 0x5F, 0x02, 0x9B, 0x02, 0xE2, 0x03, 0x94, 0x04, 0xA9, + 0x04, 0xD2, 0x07, 0x61, 0x00, 0x1C, 0x00, 0x5E, 0x00, 0x6D, 0x00, 0x8D, 0x00, 0xAB, 0x00, 0xF7, + 0x01, 0x12, 0x01, 0x38, 0x01, 0x51, 0x01, 0x5B, 0x01, 0x68, 0x01, 0x7C, 0x01, 0x87, 0x01, 0x91, + 0x01, 0x99, 0x01, 0xCD, 0x01, 0xD0, 0x01, 0xE8, 0x02, 0x41, 0x02, 0x54, 0x02, 0x6B, 0x02, 0xEF, + 0x03, 0x68, 0x03, 0x71, 0x03, 0xBD, 0x04, 0x42, 0x04, 0x42, 0x04, 0x53, 0x04, 0x73, 0x04, 0x83, + 0x05, 0x86, 0x05, 0x8B, 0x06, 0xE8, 0xFE, 0x58, 0xFE, 0xC4, 0xFE, 0xD1, 0xFE, 0xF7, 0xFF, 0x32, + 0xFF, 0x86, 0x00, 0x51, 0x00, 0x7C, 0x00, 0x81, 0x00, 0x91, 0x00, 0x95, 0x00, 0x9E, 0x00, 0xB4, + 0x00, 0xB9, 0x00, 0xCF, 0x00, 0xD9, 0x00, 0xD9, 0x00, 0xDF, 0x00, 0xE2, 0x01, 0x05, 0x01, 0x0B, + 0x01, 0x0E, 0x01, 0x0E, 0x01, 0x20, 0x01, 0x21, 0x01, 0x55, 0x01, 0x7B, 0x01, 0x7B, 0x01, 0x7E, + 0x01, 0x8D, 0x01, 0xA2, 0x01, 0xA8, 0x01, 0xA9, 0x01, 0xB4, 0x01, 0xD0, 0x01, 0xD0, 0x01, 0xE2, + 0x01, 0xE9, 0x01, 0xF2, 0x01, 0xF5, 0x01, 0xFB, 0x02, 0x00, 0x02, 0x00, 0x02, 0x06, 0x02, 0x1B, + 0x02, 0x21, 0x02, 0x22, 0x02, 0x22, 0x02, 0x23, 0x02, 0x72, 0x02, 0x77, 0x02, 0x94, 0x02, 0x9C, + 0x02, 0xCF, 0x02, 0xCF, 0x02, 0xD0, 0x02, 0xEC, 0x02, 0xF9, 0x03, 0x17, 0x03, 0x22, 0x03, 0x2B, + 0x03, 0x35, 0x03, 0x3C, 0x03, 0x59, 0x03, 0x6F, 0x03, 0x71, 0x03, 0x87, 0x03, 0x90, 0x03, 0x90, + 0x03, 0xB5, 0x03, 0xE1, 0x04, 0x1A, 0x04, 0xCF, 0x04, 0xFF, 0x05, 0x32, 0x05, 0x32, 0x05, 0x96, + 0x05, 0x9F, 0x05, 0xA8, 0x05, 0xAB, 0x05, 0xC2, 0x05, 0xF0, 0x06, 0x0C, 0x07, 0x82, 0x08, 0x00, + 0x08, 0xCC, 0xFC, 0xA3, 0xFD, 0x2A, 0xFD, 0xDE, 0xFE, 0x00, 0xFE, 0x88, 0xFE, 0x96, 0xFE, 0xB2, + 0xFE, 0xB4, 0xFF, 0xE1, 0x00, 0x15, 0x00, 0x19, 0x00, 0x1A, 0x00, 0x1C, 0x00, 0x1F, 0x00, 0x3C, + 0x00, 0x51, 0x00, 0x61, 0x00, 0x61, 0x00, 0x6A, 0x00, 0x78, 0x00, 0x96, 0x00, 0xA5, 0x00, 0xAF, + 0x00, 0xD3, 0x01, 0x0C, 0x01, 0x18, 0x01, 0x1A, 0x01, 0x2A, 0x01, 0x3E, 0x01, 0x4C, 0x01, 0x51, + 0x01, 0x5F, 0x01, 0x6A, 0x01, 0x71, 0x01, 0x78, 0x01, 0x82, 0x01, 0x84, 0x01, 0x9A, 0x01, 0xA5, + 0x01, 0xA8, 0x01, 0xA9, 0x01, 0xAE, 0x01, 0xBC, 0x01, 0xCD, 0x01, 0xD7, 0x01, 0xEF, 0x02, 0x00, + 0x02, 0x0D, 0x02, 0x1C, 0x02, 0x21, 0x02, 0x22, 0x02, 0x2E, 0x02, 0x35, 0x02, 0x42, 0x02, 0x4F, + 0x02, 0x4F, 0x02, 0x5E, 0x02, 0x65, 0x02, 0x71, 0x02, 0x90, 0x02, 0x92, 0x02, 0xB4, 0x02, 0xD6, + 0x02, 0xFA, 0x03, 0x07, 0x03, 0x0B, 0x03, 0x0F, 0x03, 0x15, 0x03, 0x2A, 0x03, 0x47, 0x03, 0x5D, + 0x03, 0x65, 0x03, 0x74, 0x03, 0x79, 0x03, 0x96, 0x03, 0xB0, 0x03, 0xCC, 0x03, 0xDD, 0x03, 0xE2, + 0x03, 0xF6, 0x03, 0xFC, 0x03, 0xFC, 0x03, 0xFF, 0x04, 0x0A, 0x04, 0x1F, 0x04, 0x22, 0x04, 0x26, + 0x04, 0x2B, 0x04, 0x47, 0x04, 0x5F, 0x04, 0x75, 0x04, 0x9E, 0x04, 0xE7, 0x04, 0xE7, 0x05, 0x5C, + 0x05, 0xCB, 0x05, 0xE5, 0x06, 0x0A, 0x06, 0x6D, 0x06, 0x86, 0x06, 0xB8, 0x06, 0xF1, 0x07, 0x36, + 0x07, 0x3E, 0x07, 0x50, 0x07, 0x51, 0x07, 0x5D, 0x07, 0x8F, 0x07, 0xB6, 0x07, 0xD4, 0x08, 0x60, + 0x00, 0xB6, 0x00, 0xC3, 0x00, 0xB5, 0x00, 0xB7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0xE0, 0x03, 0x81, 0x03, 0x45, 0x03, 0xB5, 0x00, 0x8E, 0x02, 0x33, + 0x04, 0x19, 0x02, 0xCE, 0x02, 0xCE, 0x00, 0x2D, 0x00, 0x5F, 0x00, 0x64, 0x03, 0x4D, 0x02, 0x3F, + 0x00, 0x00, 0x02, 0xA8, 0x01, 0x88, 0x02, 0x7D, 0x01, 0xB4, 0x02, 0x24, 0x05, 0x78, 0x06, 0x3B, + 0x02, 0x3B, 0x01, 0x4E, 0x00, 0xF0, 0x04, 0x26, 0x02, 0x94, 0x02, 0xC6, 0x02, 0x9F, 0x02, 0xF6, + 0x02, 0x3B, 0x03, 0x4D, 0x01, 0x4B, 0x01, 0x53, 0x00, 0x6A, 0x02, 0x31, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x06, 0x14, 0x04, 0xAA, 0x00, 0x00, 0x00, 0x3C, 0x04, 0xC3, 0x00, 0xED, 0x04, 0xBC, + 0x02, 0x65, 0x02, 0xCE, 0x03, 0xB5, 0x00, 0x78, 0x06, 0x0C, 0x01, 0x7E, 0x02, 0xEF, 0x06, 0x0C, + 0x00, 0xB2, 0x01, 0x00, 0x02, 0x39, 0x00, 0x00, 0x01, 0xC5, 0x03, 0x30, 0x04, 0x2B, 0x03, 0xCB, + 0x00, 0xDA, 0x03, 0xDF, 0x01, 0x07, 0x04, 0xA1, 0x00, 0xDB, 0x04, 0x0A, 0x01, 0x17, 0x01, 0xED, + 0x02, 0xA7, 0x03, 0x50, 0x01, 0x0B, 0x01, 0xBD, 0x04, 0x3E, 0x05, 0x58, 0x00, 0x21, 0x03, 0x9C, + 0x00, 0xAE, 0x03, 0x71, 0x01, 0x7D, 0x00, 0xB5, 0x02, 0x45, 0x00, 0x00, 0x0A, 0xFB, 0x08, 0x8C, + 0x01, 0x2B, 0x01, 0x4E, 0x01, 0xAA, 0x00, 0x87, 0x00, 0x54, 0x01, 0x32, 0x01, 0xF8, 0x03, 0xFF, + 0x00, 0x03, 0x02, 0x4E, 0x00, 0xB4, 0x00, 0x37, 0x03, 0xE3, 0x00, 0x83, 0x00, 0x6B, 0x02, 0xD8, + 0x00, 0xED, 0x00, 0x77, 0x00, 0x88, 0x00, 0x97, 0x01, 0x64, 0x04, 0x67, 0x00, 0x8E, 0x00, 0x33, + 0x01, 0x7C, 0x00, 0xE7, 0x00, 0xA6, 0x02, 0x9E, 0x03, 0x29, 0x05, 0x6E, 0x06, 0x2A, 0x06, 0x15, + 0x01, 0xC9, 0x02, 0x69, 0x04, 0x8A, 0x02, 0x13, 0x01, 0xB4, 0x00, 0x02, 0x04, 0xA9, 0x00, 0x00, + 0x02, 0x39, 0x01, 0x24, 0x01, 0x03, 0x05, 0x14, 0x00, 0x84, 0x01, 0x5D, 0x03, 0x9A, 0x06, 0xEF, + 0x02, 0xD9, 0x00, 0x75, 0x00, 0xCF, 0x04, 0x0A, 0x00, 0xDE, 0x03, 0xAC, 0x04, 0xBC, 0x02, 0xCF, + 0x02, 0xAE, 0x03, 0x4D, 0x04, 0xF0, 0x05, 0x52, 0x01, 0x68, 0x00, 0x6D, 0x00, 0x7D, 0x00, 0x86, + 0x00, 0x71, 0xFF, 0x81, 0x00, 0x79, 0x05, 0x58, 0x04, 0xD2, 0x01, 0x67, 0x00, 0x03, 0x01, 0x56, + 0x00, 0x25, 0x04, 0xE0, 0x00, 0x94, 0x00, 0x7C, 0x03, 0x32, 0x04, 0x21, 0x00, 0x94, 0x00, 0x7F, + 0x00, 0x72, 0x00, 0x5C, 0x00, 0x2F, 0x00, 0xB6, 0x00, 0x18, 0x00, 0xBA, 0x00, 0xB8, 0x00, 0x41, + 0x03, 0x4D, 0x00, 0x72, 0x00, 0x18, 0x00, 0x1F, 0x00, 0x4C, 0x01, 0x6A, 0x01, 0x55, 0x00, 0x99, + 0x00, 0x9A, 0x00, 0x9A, 0x00, 0x98, 0x00, 0xB2, 0x00, 0x04, 0x00, 0x78, 0x00, 0x69, 0x00, 0x14, + 0x00, 0x57, 0x00, 0x6E, 0x00, 0xCE, 0x00, 0xB4, 0x06, 0x54, 0x02, 0xB8, 0x00, 0x67, 0x05, 0x0E, + 0x01, 0x65, 0x00, 0xE7, 0x00, 0x00, 0x04, 0xCB, 0xFE, 0x52, 0x00, 0x5A, 0xFF, 0xA6, 0x00, 0x99, + 0xFF, 0x67, 0x00, 0x6E, 0xFF, 0x92, 0x00, 0x2D, 0xFF, 0xD4, 0x00, 0x87, 0xFF, 0x7C, 0x00, 0xB8, + 0x00, 0xA8, 0x00, 0xE5, 0x00, 0x8F, 0x00, 0xA8, 0x01, 0x85, 0xFE, 0x7B, 0x00, 0x70, 0x00, 0x1E, + 0x00, 0xD9, 0x00, 0xDE, 0x01, 0x4C, 0x05, 0x46, 0x02, 0xCF, 0x05, 0x46, 0xFF, 0x2D, 0x02, 0x8A, + 0x02, 0xD9, 0x02, 0x53, 0x02, 0x96, 0x00, 0xB7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x25, 0x01, 0x18, 0x00, 0xEA, 0x00, 0xEA, 0x00, 0xAE, + 0x00, 0x00, 0x00, 0x3E, 0x05, 0xBB, 0x00, 0x8A, 0x04, 0xD7, 0x00, 0x53, 0x00, 0x3F, 0xFF, 0x8C, + 0xFF, 0xD5, 0x00, 0x15, 0x00, 0x28, 0x00, 0x22, 0x00, 0x99, 0x00, 0x62, 0x00, 0x4A, 0x00, 0xE4, + 0x00, 0x6D, 0x00, 0xEE, 0x00, 0xE5, 0x00, 0x48, 0x03, 0xC0, 0x00, 0x33, 0xFE, 0x4E, 0x02, 0xB1, + 0xFF, 0x46, 0x03, 0x70, 0x00, 0x79, 0x05, 0xDF, 0x00, 0x51, 0xFF, 0xA7, 0xFF, 0x1F, 0x01, 0x0A, + 0x00, 0x68, 0xFF, 0x6C, 0x00, 0x4F, 0x00, 0xBC, 0x00, 0xA5, 0x07, 0x05, 0x00, 0x61, 0x07, 0x2B, + 0x00, 0xED, 0x04, 0xB0, 0x01, 0xD2, 0x00, 0xB6, 0x00, 0x7B, 0x00, 0x65, 0x02, 0x52, 0xFF, 0x74, + 0x03, 0x65, 0xFE, 0x69, 0x00, 0x94, 0x00, 0x8F, 0x00, 0x5C, 0x00, 0x40, 0x00, 0x86, 0x00, 0x75, + 0x00, 0x89, 0x00, 0x89, 0x04, 0x71, 0x04, 0x83, 0x04, 0xF9, 0x00, 0x8C, 0x00, 0x91, 0x00, 0x96, + 0x00, 0x9B, 0x00, 0xA0, 0x00, 0xA5, 0x00, 0xAA, 0x00, 0xAF, 0x00, 0xB4, 0x00, 0xB9, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x07, 0x00, 0x5A, 0x00, 0x03, 0x00, 0x01, 0x04, 0x09, 0x00, 0x00, 0x02, 0x1E, + 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x04, 0x09, 0x00, 0x01, 0x00, 0x0A, 0x02, 0x1E, 0x00, 0x03, + 0x00, 0x01, 0x04, 0x09, 0x00, 0x02, 0x00, 0x0E, 0x02, 0x28, 0x00, 0x03, 0x00, 0x01, 0x04, 0x09, + 0x00, 0x03, 0x00, 0x44, 0x02, 0x36, 0x00, 0x03, 0x00, 0x01, 0x04, 0x09, 0x00, 0x04, 0x00, 0x0A, + 0x02, 0x1E, 0x00, 0x03, 0x00, 0x01, 0x04, 0x09, 0x00, 0x05, 0x00, 0x18, 0x02, 0x7A, 0x00, 0x03, + 0x00, 0x01, 0x04, 0x09, 0x00, 0x06, 0x00, 0x0E, 0x02, 0x92, 0x00, 0xA9, 0x00, 0x20, 0x00, 0x32, + 0x00, 0x30, 0x00, 0x32, 0x00, 0x35, 0x00, 0x20, 0x00, 0x54, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, + 0x00, 0x4D, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x6F, 0x00, 0x74, 0x00, 0x79, 0x00, 0x70, 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, 0x41, 0x00, 0x6C, + 0x00, 0x6C, 0x00, 0x20, 0x00, 0x52, 0x00, 0x69, 0x00, 0x67, 0x00, 0x68, 0x00, 0x74, 0x00, 0x73, + 0x00, 0x20, 0x00, 0x52, 0x00, 0x65, 0x00, 0x73, 0x00, 0x65, 0x00, 0x72, 0x00, 0x76, 0x00, 0x65, + 0x00, 0x64, 0x00, 0x2E, 0x00, 0x20, 0x00, 0x0D, 0x00, 0x0A, 0x00, 0x0D, 0x00, 0x0A, 0x00, 0x48, + 0x00, 0x65, 0x00, 0x62, 0x00, 0x72, 0x00, 0x65, 0x00, 0x77, 0x00, 0x20, 0x00, 0x4F, 0x00, 0x70, + 0x00, 0x65, 0x00, 0x6E, 0x00, 0x54, 0x00, 0x79, 0x00, 0x70, 0x00, 0x65, 0x00, 0x20, 0x00, 0x4C, + 0x00, 0x61, 0x00, 0x79, 0x00, 0x6F, 0x00, 0x75, 0x00, 0x74, 0x00, 0x20, 0x00, 0x6C, 0x00, 0x6F, + 0x00, 0x67, 0x00, 0x69, 0x00, 0x63, 0x00, 0x20, 0x00, 0x63, 0x00, 0x6F, 0x00, 0x70, 0x00, 0x79, + 0x00, 0x72, 0x00, 0x69, 0x00, 0x67, 0x00, 0x68, 0x00, 0x74, 0x00, 0x20, 0x00, 0xA9, 0x00, 0x20, + 0x00, 0x32, 0x00, 0x30, 0x00, 0x30, 0x00, 0x33, 0x00, 0x20, 0x00, 0x26, 0x00, 0x20, 0x00, 0x32, + 0x00, 0x30, 0x00, 0x30, 0x00, 0x37, 0x00, 0x2C, 0x00, 0x20, 0x00, 0x52, 0x00, 0x61, 0x00, 0x6C, + 0x00, 0x70, 0x00, 0x68, 0x00, 0x20, 0x00, 0x48, 0x00, 0x61, 0x00, 0x6E, 0x00, 0x63, 0x00, 0x6F, + 0x00, 0x63, 0x00, 0x6B, 0x00, 0x20, 0x00, 0x26, 0x00, 0x20, 0x00, 0x4A, 0x00, 0x6F, 0x00, 0x68, + 0x00, 0x6E, 0x00, 0x20, 0x00, 0x48, 0x00, 0x75, 0x00, 0x64, 0x00, 0x73, 0x00, 0x6F, 0x00, 0x6E, + 0x00, 0x2E, 0x00, 0x20, 0x00, 0x54, 0x00, 0x68, 0x00, 0x69, 0x00, 0x73, 0x00, 0x20, 0x00, 0x6C, + 0x00, 0x61, 0x00, 0x79, 0x00, 0x6F, 0x00, 0x75, 0x00, 0x74, 0x00, 0x20, 0x00, 0x6C, 0x00, 0x6F, + 0x00, 0x67, 0x00, 0x69, 0x00, 0x63, 0x00, 0x20, 0x00, 0x66, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x20, + 0x00, 0x42, 0x00, 0x69, 0x00, 0x62, 0x00, 0x6C, 0x00, 0x69, 0x00, 0x63, 0x00, 0x61, 0x00, 0x6C, + 0x00, 0x20, 0x00, 0x48, 0x00, 0x65, 0x00, 0x62, 0x00, 0x72, 0x00, 0x65, 0x00, 0x77, 0x00, 0x20, + 0x00, 0x69, 0x00, 0x73, 0x00, 0x20, 0x00, 0x6F, 0x00, 0x70, 0x00, 0x65, 0x00, 0x6E, 0x00, 0x20, + 0x00, 0x73, 0x00, 0x6F, 0x00, 0x75, 0x00, 0x72, 0x00, 0x63, 0x00, 0x65, 0x00, 0x20, 0x00, 0x73, + 0x00, 0x6F, 0x00, 0x66, 0x00, 0x74, 0x00, 0x77, 0x00, 0x61, 0x00, 0x72, 0x00, 0x65, 0x00, 0x20, + 0x00, 0x75, 0x00, 0x6E, 0x00, 0x64, 0x00, 0x65, 0x00, 0x72, 0x00, 0x20, 0x00, 0x74, 0x00, 0x68, + 0x00, 0x65, 0x00, 0x20, 0x00, 0x4D, 0x00, 0x49, 0x00, 0x54, 0x00, 0x20, 0x00, 0x4C, 0x00, 0x69, + 0x00, 0x63, 0x00, 0x65, 0x00, 0x6E, 0x00, 0x73, 0x00, 0x65, 0x00, 0x3B, 0x00, 0x20, 0x00, 0x73, + 0x00, 0x65, 0x00, 0x65, 0x00, 0x20, 0x00, 0x65, 0x00, 0x6D, 0x00, 0x62, 0x00, 0x65, 0x00, 0x64, + 0x00, 0x64, 0x00, 0x65, 0x00, 0x64, 0x00, 0x20, 0x00, 0x6C, 0x00, 0x69, 0x00, 0x63, 0x00, 0x65, + 0x00, 0x6E, 0x00, 0x73, 0x00, 0x65, 0x00, 0x20, 0x00, 0x64, 0x00, 0x65, 0x00, 0x73, 0x00, 0x63, + 0x00, 0x72, 0x00, 0x69, 0x00, 0x70, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x20, + 0x00, 0x66, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x20, 0x00, 0x64, 0x00, 0x65, 0x00, 0x74, 0x00, 0x61, + 0x00, 0x69, 0x00, 0x6C, 0x00, 0x73, 0x00, 0x2E, 0x00, 0x41, 0x00, 0x72, 0x00, 0x69, 0x00, 0x61, + 0x00, 0x6C, 0x00, 0x52, 0x00, 0x65, 0x00, 0x67, 0x00, 0x75, 0x00, 0x6C, 0x00, 0x61, 0x00, 0x72, + 0x00, 0x4D, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x6F, 0x00, 0x74, 0x00, 0x79, 0x00, 0x70, 0x00, 0x65, + 0x00, 0x3A, 0x00, 0x41, 0x00, 0x72, 0x00, 0x69, 0x00, 0x61, 0x00, 0x6C, 0x00, 0x20, 0x00, 0x52, + 0x00, 0x65, 0x00, 0x67, 0x00, 0x75, 0x00, 0x6C, 0x00, 0x61, 0x00, 0x72, 0x00, 0x20, 0x00, 0x28, + 0x00, 0x4D, 0x00, 0x69, 0x00, 0x63, 0x00, 0x72, 0x00, 0x6F, 0x00, 0x73, 0x00, 0x6F, 0x00, 0x66, + 0x00, 0x74, 0x00, 0x29, 0x00, 0x56, 0x00, 0x65, 0x00, 0x72, 0x00, 0x73, 0x00, 0x69, 0x00, 0x6F, + 0x00, 0x6E, 0x00, 0x20, 0x00, 0x37, 0x00, 0x2E, 0x00, 0x30, 0x00, 0x35, 0x00, 0x41, 0x00, 0x72, + 0x00, 0x69, 0x00, 0x61, 0x00, 0x6C, 0x00, 0x4D, 0x00, 0x54, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xFF, 0x27, 0x00, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x03, + 0x00, 0x08, 0x00, 0x0A, 0x00, 0x11, 0x00, 0x05, 0xFF, 0xFF, 0x00, 0x0F, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, + 0x00, 0x01, 0x00, 0x05, 0x00, 0x08, 0x00, 0x01, 0x00, 0x0C, 0x00, 0x0D, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x2A, 0x00, 0x38, 0x00, 0x03, 0x63, 0x79, 0x72, 0x6C, + 0x00, 0x14, 0x67, 0x72, 0x65, 0x6B, 0x00, 0x14, 0x6C, 0x61, 0x74, 0x6E, 0x00, 0x14, 0x00, 0x04, + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x6B, 0x65, 0x72, 0x6E, + 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x04, 0x00, 0x09, 0x00, 0x08, + 0x00, 0x01, 0x00, 0x08, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x00, 0x02, 0x00, 0x2E, + 0x00, 0x04, 0x00, 0x00, 0x00, 0x38, 0x00, 0x42, 0x00, 0x03, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xDB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xDB, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xB4, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xDB, 0x00, 0x01, 0x00, 0x03, 0x00, 0x01, + 0x00, 0x02, 0x00, 0x03, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, + 0x00, 0x01, 0x00, 0x06, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x2E, 0x00, 0x30, 0x00, 0x05, 0x61, 0x72, 0x61, 0x62, + 0x00, 0x20, 0x63, 0x79, 0x72, 0x6C, 0x00, 0x20, 0x67, 0x72, 0x65, 0x6B, 0x00, 0x20, 0x68, 0x65, + 0x62, 0x72, 0x00, 0x20, 0x6C, 0x61, 0x74, 0x6E, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00 +}; diff --git a/src/locales/brazilian.json b/src/locales/brazilian.json new file mode 100644 index 0000000..f012e1d --- /dev/null +++ b/src/locales/brazilian.json @@ -0,0 +1,59 @@ +{ + "homeInstall": "Instalar", + "homeInstallDesc": "Integrar o Millennium ao seu cliente Steam®.", + "homeRemove": "Remover", + "homeRemoveDesc": "Desinstalar partes do Millennium seletivamente.", + "homeNext": "Próximo", + "homeSelectOption": "Selecione uma opção acima para continuar.", + + "installTitle": "Instalar Millennium 💫", + "installSubtitle": "Um portal de código aberto para uma experiência Steam® melhor.", + "installSteamPath": "Caminho de instalação do Steam:", + "installSelectPath": "Selecionar caminho de instalação do Steam", + "installVersion": "Instalando Millennium versão %s", + "installChangeVersion": "alterar versão ▾", + "installLatest": " (mais recente)", + "installSizeNA": "• Tamanho de instalação: N/D", + "installSizeMB": "• Tamanho de instalação: %.2f MB", + "installDownloadMB": "• Tamanho do download: %.2f MB", + "installButton": "Instalar", + + "uninstallTitle": "Desinstalar Millennium 🙁", + "uninstallSubtitle": "Selecione os componentes que deseja remover.", + "uninstallFrom": "Desinstalando de: %s", + "uninstallSpace": "Espaço em disco recuperado: %s", + "uninstallButton": "Desinstalar", + "uninstallExit": "Sair", + "uninstallExcluded": "\"%s\" foi excluído do processo de remoção.", + "uninstallFailed": "Falha ao desinstalar \"%s\".\n\nErro: %s", + + "componentMillennium": "Millennium", + "componentCustomSteam": "Componentes personalizados do Steam", + "componentDependencies": "Dependências", + "componentThemes": "Temas", + "componentPlugins": "Plugins", + + "installerDownloading": "Baixando Millennium...", + "installerInstalling": "Instalando Millennium...", + "installerFailTitle": "Falha ao instalar Millennium 😢", + "installerTroubleshoot": "Ver guia de solução de problemas ↗", + "installerSuccessTitle": "Pronto! Obrigado por usar o Millennium 💖", + "installerSuccessDesc": "Se você é novo aqui, veja mais instruções quando o Steam® iniciar.", + "installerDocs": "Ver documentação ↗", + "installerDisclaimer1": "Steam Homebrew & Millennium não são afiliados ao", + "installerDisclaimer2": "Steam®, Valve ou qualquer um de seus parceiros.", + "installerFinish": "Concluir", + + "errorWhoops": "Ops!", + "errorNetwork": "Falha ao conectar à API do GitHub!\n\n%s", + "errorReleaseNotFound": "Não foi possível encontrar a versão mais recente do Millennium!", + "errorParseFailed": "Falha ao analisar informações de versão da API do GitHub!", + "errorDownloadFailed": "Falha ao baixar arquivos de lançamento.", + "errorSignatureMismatch": "A assinatura do arquivo não corresponde à assinatura esperada.", + "errorExtractFailed": "Falha ao extrair arquivos. O download pode estar corrompido ou o disco pode estar cheio.", + + "titlebarTitle": "Steam Homebrew", + + "tooltipDiscord": "Entrar no servidor Discord", + "tooltipGithub": "Ver código-fonte" +} diff --git a/src/locales/bulgarian.json b/src/locales/bulgarian.json new file mode 100644 index 0000000..079cd5e --- /dev/null +++ b/src/locales/bulgarian.json @@ -0,0 +1,59 @@ +{ + "homeInstall": "Инсталиране", + "homeInstallDesc": "Интегрирайте Millennium в Steam® клиента си.", + "homeRemove": "Премахване", + "homeRemoveDesc": "Изберете кои части на Millennium да бъдат деинсталирани.", + "homeNext": "Напред", + "homeSelectOption": "Изберете опция по-горе, за да продължите.", + + "installTitle": "Инсталиране на Millennium 💫", + "installSubtitle": "Отворен портал към по-добро Steam® изживяване.", + "installSteamPath": "Път на инсталация на Steam:", + "installSelectPath": "Изберете пътя на инсталация на Steam", + "installVersion": "Инсталиране на Millennium версия %s", + "installChangeVersion": "промяна на версия ▾", + "installLatest": " (последна)", + "installSizeNA": "• Размер на инсталацията: Н/Д", + "installSizeMB": "• Размер на инсталацията: %.2f МБ", + "installDownloadMB": "• Размер на изтеглянето: %.2f МБ", + "installButton": "Инсталирай", + + "uninstallTitle": "Деинсталиране на Millennium 🙁", + "uninstallSubtitle": "Изберете компонентите, които искате да премахнете.", + "uninstallFrom": "Деинсталиране от: %s", + "uninstallSpace": "Освободено дисково пространство: %s", + "uninstallButton": "Деинсталирай", + "uninstallExit": "Изход", + "uninstallExcluded": "\"%s\" беше изключено от процеса на премахване.", + "uninstallFailed": "Неуспешно деинсталиране на \"%s\".\n\nГрешка: %s", + + "componentMillennium": "Millennium", + "componentCustomSteam": "Персонализирани Steam компоненти", + "componentDependencies": "Зависимости", + "componentThemes": "Теми", + "componentPlugins": "Плъгини", + + "installerDownloading": "Изтегляне на Millennium...", + "installerInstalling": "Инсталиране на Millennium...", + "installerFailTitle": "Неуспешно инсталиране на Millennium 😢", + "installerTroubleshoot": "Вижте ръководство за отстраняване на неизправности ↗", + "installerSuccessTitle": "Готово! Благодарим, че използвате Millennium 💖", + "installerSuccessDesc": "Ако сте нов потребител, вижте допълнителни инструкции при стартиране на Steam®.", + "installerDocs": "Вижте документацията ↗", + "installerDisclaimer1": "Steam Homebrew и Millennium не са свързани с", + "installerDisclaimer2": "Steam®, Valve или техните партньори.", + "installerFinish": "Готово", + + "errorWhoops": "Опа!", + "errorNetwork": "Не може да се свърже с GitHub API!\n\n%s", + "errorReleaseNotFound": "Не успяхме да намерим последния Millennium релийз!", + "errorParseFailed": "Неуспешно анализиране на информация за версия от GitHub API!", + "errorDownloadFailed": "Неуспешно изтегляне на файловете за релийз.", + "errorSignatureMismatch": "Подписът на изтегления файл не съвпада с очакваното.", + "errorExtractFailed": "Неуспешно извличане на файловете. Изтеглянето може да е повредено или дискът е пълен.", + + "titlebarTitle": "Steam Homebrew", + + "tooltipDiscord": "Присъединете се към Discord сървъра", + "tooltipGithub": "Вижте изходния код" +} diff --git a/src/locales/danish.json b/src/locales/danish.json new file mode 100644 index 0000000..365a5a8 --- /dev/null +++ b/src/locales/danish.json @@ -0,0 +1,59 @@ +{ + "homeInstall": "Installer", + "homeInstallDesc": "Integrer Millennium i din Steam®-klient.", + "homeRemove": "Fjern", + "homeRemoveDesc": "Afinstaller dele af Millennium selektivt.", + "homeNext": "Næste", + "homeSelectOption": "Vælg en mulighed ovenfor for at fortsætte.", + + "installTitle": "Installer Millennium 💫", + "installSubtitle": "En åben kildekode-portal til en bedre Steam®-oplevelse.", + "installSteamPath": "Steam-installationssti:", + "installSelectPath": "Vælg Steam-installationssti", + "installVersion": "Installerer Millennium version %s", + "installChangeVersion": "skift version ▾", + "installLatest": " (seneste)", + "installSizeNA": "• Installationsstørrelse: ikke tilgængelig", + "installSizeMB": "• Installationsstørrelse: %.2f MB", + "installDownloadMB": "• Downloadstørrelse: %.2f MB", + "installButton": "Installer", + + "uninstallTitle": "Afinstaller Millennium 🙁", + "uninstallSubtitle": "Vælg de komponenter, du vil fjerne.", + "uninstallFrom": "Afinstallerer fra: %s", + "uninstallSpace": "Genvundet diskplads: %s", + "uninstallButton": "Afinstaller", + "uninstallExit": "Afslut", + "uninstallExcluded": "\"%s\" blev udelukket fra fjernelsesprocessen.", + "uninstallFailed": "Afinstallation af \"%s\" mislykkedes.\n\nFejl: %s", + + "componentMillennium": "Millennium", + "componentCustomSteam": "Brugerdefinerede Steam-komponenter", + "componentDependencies": "Afhængigheder", + "componentThemes": "Temaer", + "componentPlugins": "Plug-ins", + + "installerDownloading": "Downloader Millennium...", + "installerInstalling": "Installerer Millennium...", + "installerFailTitle": "Millennium kunne ikke installeres 😢", + "installerTroubleshoot": "Se fejlfindingsvejledning ↗", + "installerSuccessTitle": "Du er klar! Tak fordi du bruger Millennium 💖", + "installerSuccessDesc": "Hvis du er ny her, se yderligere instruktioner, når Steam® starter.", + "installerDocs": "Se dokumentation ↗", + "installerDisclaimer1": "Steam Homebrew & Millennium er ikke tilknyttet", + "installerDisclaimer2": "Steam®, Valve eller nogen af deres partnere.", + "installerFinish": "Afslut", + + "errorWhoops": "Ups!", + "errorNetwork": "Kunne ikke oprette forbindelse til GitHub API!\n\n%s", + "errorReleaseNotFound": "Vi kunne ikke finde den seneste Millennium-version!", + "errorParseFailed": "Kunne ikke analysere versionsinformation fra GitHub API!", + "errorDownloadFailed": "Download af udgivelsesfiler mislykkedes.", + "errorSignatureMismatch": "Signaturen på den downloadede fil stemmer ikke overens med den forventede.", + "errorExtractFailed": "Udtrækning af filer mislykkedes. Downloaden kan være korrupt eller disken kan være fuld.", + + "titlebarTitle": "Steam Homebrew", + + "tooltipDiscord": "Tilmeld Discord-serveren", + "tooltipGithub": "Se kildekode" +} diff --git a/src/locales/dutch.json b/src/locales/dutch.json new file mode 100644 index 0000000..963b459 --- /dev/null +++ b/src/locales/dutch.json @@ -0,0 +1,59 @@ +{ + "homeInstall": "Installeren", + "homeInstallDesc": "Millennium integreren in je Steam®-client.", + "homeRemove": "Verwijderen", + "homeRemoveDesc": "Selectief onderdelen van Millennium verwijderen.", + "homeNext": "Volgende", + "homeSelectOption": "Selecteer hierboven een optie om door te gaan.", + + "installTitle": "Millennium installeren 💫", + "installSubtitle": "Een open-source toegangspoort naar een betere Steam®-ervaring.", + "installSteamPath": "Steam installatiepad:", + "installSelectPath": "Steam installatiepad selecteren", + "installVersion": "Millennium versie %s installeren", + "installChangeVersion": "versie wijzigen ▾", + "installLatest": " (nieuwste)", + "installSizeNA": "• Installatiegrootte: N.v.t.", + "installSizeMB": "• Installatiegrootte: %.2f MB", + "installDownloadMB": "• Downloadgrootte: %.2f MB", + "installButton": "Installeren", + + "uninstallTitle": "Millennium verwijderen 🙁", + "uninstallSubtitle": "Selecteer de onderdelen die je wilt verwijderen.", + "uninstallFrom": "Verwijderen van: %s", + "uninstallSpace": "Vrijgemaakte schijfruimte: %s", + "uninstallButton": "Verwijderen", + "uninstallExit": "Afsluiten", + "uninstallExcluded": "\"%s\" werd uitgesloten van het verwijderingsproces.", + "uninstallFailed": "Verwijderen van \"%s\" mislukt.\n\nFout: %s", + + "componentMillennium": "Millennium", + "componentCustomSteam": "Aangepaste Steam-componenten", + "componentDependencies": "Afhankelijkheden", + "componentThemes": "Thema's", + "componentPlugins": "Plug-ins", + + "installerDownloading": "Millennium downloaden...", + "installerInstalling": "Millennium installeren...", + "installerFailTitle": "Millennium kon niet worden geïnstalleerd 😢", + "installerTroubleshoot": "Probleemoplossingsgids ↗", + "installerSuccessTitle": "Je bent klaar! Bedankt voor het gebruik van Millennium 💖", + "installerSuccessDesc": "Als je hier nieuw bent, zie dan verdere instructies wanneer Steam® start.", + "installerDocs": "Documentatie bekijken ↗", + "installerDisclaimer1": "Steam Homebrew & Millennium zijn niet gelieerd aan", + "installerDisclaimer2": "Steam®, Valve of hun partners.", + "installerFinish": "Voltooien", + + "errorWhoops": "Oeps!", + "errorNetwork": "Kan geen verbinding maken met de GitHub API!\n\n%s", + "errorReleaseNotFound": "We konden de laatste Millennium-release niet vinden!", + "errorParseFailed": "Kan versie-informatie niet verwerken van de GitHub API!", + "errorDownloadFailed": "Downloaden van release-bestanden mislukt.", + "errorSignatureMismatch": "Bestandshandtekening komt niet overeen met de verwachte handtekening.", + "errorExtractFailed": "Uitpakken van release-bestanden mislukt. De download kan beschadigd zijn of de schijf kan vol zijn.", + + "titlebarTitle": "Steam Homebrew", + + "tooltipDiscord": "Discord-server joinen", + "tooltipGithub": "Broncode bekijken" +} diff --git a/src/locales/english.json b/src/locales/english.json new file mode 100644 index 0000000..470f5ae --- /dev/null +++ b/src/locales/english.json @@ -0,0 +1,59 @@ +{ + "homeInstall": "Install", + "homeInstallDesc": "Integrate Millennium into your Steam® Client.", + "homeRemove": "Remove", + "homeRemoveDesc": "Selectively uninstall portions of Millennium.", + "homeNext": "Next", + "homeSelectOption": "Select an option above to continue.", + + "installTitle": "Install Millennium 💫", + "installSubtitle": "An open source gateway to a better Steam® client experience.", + "installSteamPath": "Steam Install Path:", + "installSelectPath": "Select Steam installation path", + "installVersion": "Installing Millennium version %s", + "installChangeVersion": "change version ▾", + "installLatest": " (latest)", + "installSizeNA": "• Install size: N/A", + "installSizeMB": "• Install size: %.2f MB", + "installDownloadMB": "• Download size: %.2f MB", + "installButton": "Install", + + "uninstallTitle": "Uninstall Millennium 🙁", + "uninstallSubtitle": "Select the components you would like to remove.", + "uninstallFrom": "Uninstalling from: %s", + "uninstallSpace": "Reclaimed Disk Space: %s", + "uninstallButton": "Uninstall", + "uninstallExit": "Exit", + "uninstallExcluded": "\"%s\" was excluded from the removal process.", + "uninstallFailed": "Failed to uninstall \"%s\".\n\nError: %s", + + "componentMillennium": "Millennium", + "componentCustomSteam": "Custom Steam Components", + "componentDependencies": "Dependencies", + "componentThemes": "Themes", + "componentPlugins": "Plugins", + + "installerDownloading": "Downloading Millennium...", + "installerInstalling": "Installing Millennium...", + "installerFailTitle": "Failed to install Millennium 😢", + "installerTroubleshoot": "View Troubleshooting Guide ↗", + "installerSuccessTitle": "You're all set! Thanks for using Millennium 💖", + "installerSuccessDesc": "If you're new here, see further instructions when Steam® starts.", + "installerDocs": "View Documentation ↗", + "installerDisclaimer1": "Steam Homebrew & Millennium are not affiliated with", + "installerDisclaimer2": "Steam®, Valve, or any of their partners.", + "installerFinish": "Finish", + + "errorWhoops": "Whoops!", + "errorNetwork": "Failed to connect to the GitHub API!\n\n%s", + "errorReleaseNotFound": "We failed to find the latest Millennium release!", + "errorParseFailed": "Failed to parse version information from the GitHub API!", + "errorDownloadFailed": "Failed to download release assets.", + "errorSignatureMismatch": "Downloaded file signature does not match expected signature.", + "errorExtractFailed": "Failed to extract release assets. The download may be corrupt or the disk may be full.", + + "titlebarTitle": "Steam Homebrew", + + "tooltipDiscord": "Join Discord Server", + "tooltipGithub": "View Source Code" +} diff --git a/src/locales/french.json b/src/locales/french.json new file mode 100644 index 0000000..9d4e326 --- /dev/null +++ b/src/locales/french.json @@ -0,0 +1,59 @@ +{ + "homeInstall": "Installer", + "homeInstallDesc": "Intégrer Millennium dans votre client Steam®.", + "homeRemove": "Supprimer", + "homeRemoveDesc": "Désinstaller sélectivement des parties de Millennium.", + "homeNext": "Suivant", + "homeSelectOption": "Sélectionnez une option ci-dessus pour continuer.", + + "installTitle": "Installer Millennium 💫", + "installSubtitle": "Une passerelle open source vers une meilleure expérience Steam®.", + "installSteamPath": "Chemin d'installation de Steam :", + "installSelectPath": "Sélectionner le chemin d'installation de Steam", + "installVersion": "Installation de Millennium version %s", + "installChangeVersion": "changer de version ▾", + "installLatest": " (dernière)", + "installSizeNA": "• Taille d'installation : N/D", + "installSizeMB": "• Taille d'installation : %.2f Mo", + "installDownloadMB": "• Taille du téléchargement : %.2f Mo", + "installButton": "Installer", + + "uninstallTitle": "Désinstaller Millennium 🙁", + "uninstallSubtitle": "Sélectionnez les composants à supprimer.", + "uninstallFrom": "Désinstallation depuis : %s", + "uninstallSpace": "Espace récupéré : %s", + "uninstallButton": "Désinstaller", + "uninstallExit": "Quitter", + "uninstallExcluded": "\"%s\" a été exclu du processus de suppression.", + "uninstallFailed": "Échec de la suppression de \"%s\".\n\nErreur : %s", + + "componentMillennium": "Millennium", + "componentCustomSteam": "Composants Steam personnalisés", + "componentDependencies": "Dépendances", + "componentThemes": "Thèmes", + "componentPlugins": "Plugins", + + "installerDownloading": "Téléchargement de Millennium...", + "installerInstalling": "Installation de Millennium...", + "installerFailTitle": "Échec de l'installation de Millennium 😢", + "installerTroubleshoot": "Guide de dépannage ↗", + "installerSuccessTitle": "C'est parti ! Merci d'utiliser Millennium 💖", + "installerSuccessDesc": "Si vous êtes nouveau, consultez les instructions au démarrage de Steam®.", + "installerDocs": "Voir la documentation ↗", + "installerDisclaimer1": "Steam Homebrew & Millennium ne sont pas affiliés à", + "installerDisclaimer2": "Steam®, Valve ou leurs partenaires.", + "installerFinish": "Terminer", + + "errorWhoops": "Oups !", + "errorNetwork": "Impossible de se connecter à l'API GitHub !\n\n%s", + "errorReleaseNotFound": "Impossible de trouver la dernière version de Millennium !", + "errorParseFailed": "Impossible d'analyser les informations de version depuis l'API GitHub !", + "errorDownloadFailed": "Téléchargement des fichiers échoué.", + "errorSignatureMismatch": "La signature du fichier ne correspond pas.", + "errorExtractFailed": "Extraction échouée. Le téléchargement est peut-être corrompu ou le disque plein.", + + "titlebarTitle": "Steam Homebrew", + + "tooltipDiscord": "Rejoindre le serveur Discord", + "tooltipGithub": "Voir le code source" +} diff --git a/src/locales/german.json b/src/locales/german.json new file mode 100644 index 0000000..a7943cf --- /dev/null +++ b/src/locales/german.json @@ -0,0 +1,59 @@ +{ + "homeInstall": "Installieren", + "homeInstallDesc": "Millennium in deinen Steam®-Client integrieren.", + "homeRemove": "Entfernen", + "homeRemoveDesc": "Teile von Millennium selektiv deinstallieren.", + "homeNext": "Weiter", + "homeSelectOption": "Wähle oben eine Option, um fortzufahren.", + + "installTitle": "Millennium installieren 💫", + "installSubtitle": "Ein Open-Source-Gateway für ein besseres Steam®-Erlebnis.", + "installSteamPath": "Steam-Installationspfad:", + "installSelectPath": "Steam-Installationspfad auswählen", + "installVersion": "Millennium Version %s wird installiert", + "installChangeVersion": "Version ändern ▾", + "installLatest": " (aktuell)", + "installSizeNA": "• Installationsgröße: N/V", + "installSizeMB": "• Installationsgröße: %.2f MB", + "installDownloadMB": "• Downloadgröße: %.2f MB", + "installButton": "Installieren", + + "uninstallTitle": "Millennium deinstallieren 🙁", + "uninstallSubtitle": "Wähle die Komponenten aus, die du entfernen möchtest.", + "uninstallFrom": "Deinstallation von: %s", + "uninstallSpace": "Freigegebener Speicherplatz: %s", + "uninstallButton": "Deinstallieren", + "uninstallExit": "Beenden", + "uninstallExcluded": "\"%s\" wurde vom Entfernungsprozess ausgeschlossen.", + "uninstallFailed": "Deinstallation von \"%s\" fehlgeschlagen.\n\nFehler: %s", + + "componentMillennium": "Millennium", + "componentCustomSteam": "Benutzerdefinierte Steam-Komponenten", + "componentDependencies": "Abhängigkeiten", + "componentThemes": "Themes", + "componentPlugins": "Plugins", + + "installerDownloading": "Millennium wird heruntergeladen...", + "installerInstalling": "Millennium wird installiert...", + "installerFailTitle": "Millennium konnte nicht installiert werden 😢", + "installerTroubleshoot": "Fehlerbehebungsanleitung ↗", + "installerSuccessTitle": "Alles bereit! Danke, dass du Millennium nutzt 💖", + "installerSuccessDesc": "Falls du neu hier bist, sieh dir weitere Anweisungen beim Start von Steam® an.", + "installerDocs": "Dokumentation anzeigen ↗", + "installerDisclaimer1": "Steam Homebrew & Millennium sind nicht verbunden mit", + "installerDisclaimer2": "Steam®, Valve oder deren Partnern.", + "installerFinish": "Fertig", + + "errorWhoops": "Hoppla!", + "errorNetwork": "Verbindung zur GitHub API fehlgeschlagen!\n\n%s", + "errorReleaseNotFound": "Das neueste Millennium-Release konnte nicht gefunden werden!", + "errorParseFailed": "Versionsinformationen konnten nicht verarbeitet werden!", + "errorDownloadFailed": "Download der Release-Dateien fehlgeschlagen.", + "errorSignatureMismatch": "Dateisignatur stimmt nicht überein.", + "errorExtractFailed": "Extraktion fehlgeschlagen. Download möglicherweise beschädigt oder Datenträger voll.", + + "titlebarTitle": "Steam Homebrew", + + "tooltipDiscord": "Discord-Server beitreten", + "tooltipGithub": "Quellcode ansehen" +} diff --git a/src/locales/hungarian.json b/src/locales/hungarian.json new file mode 100644 index 0000000..d4e8800 --- /dev/null +++ b/src/locales/hungarian.json @@ -0,0 +1,59 @@ +{ + "homeInstall": "Telepítés", + "homeInstallDesc": "A Millennium integrálása a Steam®-kliensbe.", + "homeRemove": "Eltávolítás", + "homeRemoveDesc": "A Millennium egyes részeinek szelektív eltávolítása.", + "homeNext": "Tovább", + "homeSelectOption": "Válasszon fenti lehetőséget a folytatáshoz.", + + "installTitle": "Millennium telepítése 💫", + "installSubtitle": "Egy nyílt forráskódú kapu a jobb Steam®-élményhez.", + "installSteamPath": "Steam telepítési útvonal:", + "installSelectPath": "Steam telepítési útvonal kiválasztása", + "installVersion": "A Millennium %s verziójának telepítése", + "installChangeVersion": "verzió módosítása ▾", + "installLatest": " (legújabb)", + "installSizeNA": "• Telepítési méret: N/A", + "installSizeMB": "• Telepítési méret: %.2f MB", + "installDownloadMB": "• Letöltési méret: %.2f MB", + "installButton": "Telepítés", + + "uninstallTitle": "Millennium eltávolítása 🙁", + "uninstallSubtitle": "Válassza ki az eltávolítani kívánt összetevőket.", + "uninstallFrom": "Eltávolítás innen: %s", + "uninstallSpace": "Visszanyert lemezterület: %s", + "uninstallButton": "Eltávolítás", + "uninstallExit": "Kilépés", + "uninstallExcluded": "A \"%s\" ki lett zárva az eltávolítási folyamatból.", + "uninstallFailed": "A \"%s\" eltávolítása nem sikerült.\n\nHiba: %s", + + "componentMillennium": "Millennium", + "componentCustomSteam": "Egyéni Steam-összetevők", + "componentDependencies": "Függőségek", + "componentThemes": "Témák", + "componentPlugins": "Bővítmények", + + "installerDownloading": "Millennium letöltése...", + "installerInstalling": "Millennium telepítése...", + "installerFailTitle": "A Millennium telepítése nem sikerült 😢", + "installerTroubleshoot": "Hibaelhárítási útmutató megtekintése ↗", + "installerSuccessTitle": "Minden kész! Köszönjük, hogy a Millenniumot használja 💖", + "installerSuccessDesc": "Ha most jár először itt, további útmutatásokat talál, amikor a Steam® elindul.", + "installerDocs": "Dokumentáció megtekintése ↗", + "installerDisclaimer1": "A Steam Homebrew és a Millennium nem áll kapcsolatban", + "installerDisclaimer2": "a Steam®-mel, a Valve-vel vagy partnereikkel.", + "installerFinish": "Befejezés", + + "errorWhoops": "Hoppá!", + "errorNetwork": "Nem sikerült csatlakozni a GitHub API-hoz!\n\n%s", + "errorReleaseNotFound": "Nem találtuk a legújabb Millennium kiadást!", + "errorParseFailed": "Nem sikerült feldolgozni a verzióinformációt a GitHub API-ból!", + "errorDownloadFailed": "Nem sikerült letölteni a kiadási fájlokat.", + "errorSignatureMismatch": "A letöltött fájl aláírása nem egyezik a várt aláírással.", + "errorExtractFailed": "Nem sikerült kicsomagolni a fájlokat. A letöltés sérült lehet, vagy a lemez megtelt.", + + "titlebarTitle": "Steam Homebrew", + + "tooltipDiscord": "Csatlakozás a Discord-szerverhez", + "tooltipGithub": "Forráskód megtekintése" +} diff --git a/src/locales/indonesian.json b/src/locales/indonesian.json new file mode 100644 index 0000000..7d3cf64 --- /dev/null +++ b/src/locales/indonesian.json @@ -0,0 +1,59 @@ +{ + "homeInstall": "Pasang", + "homeInstallDesc": "Integrasikan Millennium ke klien Steam® Anda.", + "homeRemove": "Hapus", + "homeRemoveDesc": "Hapus sebagian komponen Millennium secara selektif.", + "homeNext": "Lanjut", + "homeSelectOption": "Pilih opsi di atas untuk melanjutkan.", + + "installTitle": "Pasang Millennium 💫", + "installSubtitle": "Portal sumber terbuka menuju pengalaman Steam® yang lebih baik.", + "installSteamPath": "Jalur Instalasi Steam:", + "installSelectPath": "Pilih jalur instalasi Steam", + "installVersion": "Memasang Millennium versi %s", + "installChangeVersion": "ganti versi ▾", + "installLatest": " (terbaru)", + "installSizeNA": "• Ukuran instalasi: N/A", + "installSizeMB": "• Ukuran instalasi: %.2f MB", + "installDownloadMB": "• Ukuran unduhan: %.2f MB", + "installButton": "Pasang", + + "uninstallTitle": "Hapus Millennium 🙁", + "uninstallSubtitle": "Pilih komponen yang ingin Anda hapus.", + "uninstallFrom": "Menghapus dari: %s", + "uninstallSpace": "Ruang disk yang dipulihkan: %s", + "uninstallButton": "Hapus", + "uninstallExit": "Keluar", + "uninstallExcluded": "\"%s\" dikecualikan dari proses penghapusan.", + "uninstallFailed": "Gagal menghapus \"%s\".\n\nKesalahan: %s", + + "componentMillennium": "Millennium", + "componentCustomSteam": "Komponen Steam Kustom", + "componentDependencies": "Dependensi", + "componentThemes": "Tema", + "componentPlugins": "Plugin", + + "installerDownloading": "Mengunduh Millennium...", + "installerInstalling": "Memasang Millennium...", + "installerFailTitle": "Gagal memasang Millennium 😢", + "installerTroubleshoot": "Lihat Panduan Pemecahan Masalah ↗", + "installerSuccessTitle": "Semuanya siap! Terima kasih telah menggunakan Millennium 💖", + "installerSuccessDesc": "Jika Anda baru di sini, lihat petunjuk lebih lanjut saat Steam® mulai.", + "installerDocs": "Lihat Dokumentasi ↗", + "installerDisclaimer1": "Steam Homebrew & Millennium tidak berafiliasi dengan", + "installerDisclaimer2": "Steam®, Valve, atau mitra mereka.", + "installerFinish": "Selesai", + + "errorWhoops": "Ups!", + "errorNetwork": "Gagal terhubung ke GitHub API!\n\n%s", + "errorReleaseNotFound": "Kami gagal menemukan rilis Millennium terbaru!", + "errorParseFailed": "Gagal mengurai informasi versi dari GitHub API!", + "errorDownloadFailed": "Gagal mengunduh aset rilis.", + "errorSignatureMismatch": "Tanda tangan file yang diunduh tidak cocok dengan yang diharapkan.", + "errorExtractFailed": "Gagal mengekstrak aset rilis. Unduhan mungkin rusak atau disk mungkin penuh.", + + "titlebarTitle": "Steam Homebrew", + + "tooltipDiscord": "Bergabung dengan Server Discord", + "tooltipGithub": "Lihat Kode Sumber" +} diff --git a/src/locales/italian.json b/src/locales/italian.json new file mode 100644 index 0000000..b2b0070 --- /dev/null +++ b/src/locales/italian.json @@ -0,0 +1,59 @@ +{ + "homeInstall": "Installa", + "homeInstallDesc": "Integra Millennium nel tuo client Steam®.", + "homeRemove": "Rimuovi", + "homeRemoveDesc": "Disinstalla selettivamente parti di Millennium.", + "homeNext": "Avanti", + "homeSelectOption": "Seleziona un'opzione sopra per continuare.", + + "installTitle": "Installa Millennium 💫", + "installSubtitle": "Un gateway open source per una migliore esperienza Steam®.", + "installSteamPath": "Percorso di installazione Steam:", + "installSelectPath": "Seleziona il percorso di installazione Steam", + "installVersion": "Installazione di Millennium versione %s", + "installChangeVersion": "cambia versione ▾", + "installLatest": " (ultima)", + "installSizeNA": "• Dimensione installazione: N/D", + "installSizeMB": "• Dimensione installazione: %.2f MB", + "installDownloadMB": "• Dimensione download: %.2f MB", + "installButton": "Installa", + + "uninstallTitle": "Disinstalla Millennium 🙁", + "uninstallSubtitle": "Seleziona i componenti da rimuovere.", + "uninstallFrom": "Disinstallazione da: %s", + "uninstallSpace": "Spazio recuperato: %s", + "uninstallButton": "Disinstalla", + "uninstallExit": "Esci", + "uninstallExcluded": "\"%s\" è stato escluso dalla rimozione.", + "uninstallFailed": "Rimozione di \"%s\" fallita.\n\nErrore: %s", + + "componentMillennium": "Millennium", + "componentCustomSteam": "Componenti Steam personalizzati", + "componentDependencies": "Dipendenze", + "componentThemes": "Temi", + "componentPlugins": "Plugin", + + "installerDownloading": "Download di Millennium...", + "installerInstalling": "Installazione di Millennium...", + "installerFailTitle": "Installazione di Millennium fallita 😢", + "installerTroubleshoot": "Guida alla risoluzione dei problemi ↗", + "installerSuccessTitle": "Tutto pronto! Grazie per usare Millennium 💖", + "installerSuccessDesc": "Se sei nuovo, troverai ulteriori istruzioni all'avvio di Steam®.", + "installerDocs": "Visualizza la documentazione ↗", + "installerDisclaimer1": "Steam Homebrew & Millennium non sono affiliati con", + "installerDisclaimer2": "Steam®, Valve o i loro partner.", + "installerFinish": "Fine", + + "errorWhoops": "Ops!", + "errorNetwork": "Connessione all'API GitHub fallita!\n\n%s", + "errorReleaseNotFound": "Impossibile trovare l'ultima versione di Millennium!", + "errorParseFailed": "Impossibile analizzare le informazioni sulla versione!", + "errorDownloadFailed": "Download dei file fallito.", + "errorSignatureMismatch": "La firma del file non corrisponde.", + "errorExtractFailed": "Estrazione fallita. Il download potrebbe essere corrotto o il disco pieno.", + + "titlebarTitle": "Steam Homebrew", + + "tooltipDiscord": "Unisciti al server Discord", + "tooltipGithub": "Vedi il codice sorgente" +} diff --git a/src/locales/japanese.json b/src/locales/japanese.json new file mode 100644 index 0000000..abcb94e --- /dev/null +++ b/src/locales/japanese.json @@ -0,0 +1,59 @@ +{ + "homeInstall": "インストール", + "homeInstallDesc": "Steam® クライアントに Millennium を統合します。", + "homeRemove": "削除", + "homeRemoveDesc": "Millennium の一部を選択的にアンインストールします。", + "homeNext": "次へ", + "homeSelectOption": "上のオプションを選択して続行します。", + + "installTitle": "Millennium をインストール 💫", + "installSubtitle": "より良い Steam® 体験へのオープンソースの入口。", + "installSteamPath": "Steam インストールパス:", + "installSelectPath": "Steam インストールパスを選択", + "installVersion": "Millennium バージョン %s をインストール中", + "installChangeVersion": "バージョンを変更 ▾", + "installLatest": "(最新)", + "installSizeNA": "• インストールサイズ: N/A", + "installSizeMB": "• インストールサイズ: %.2f MB", + "installDownloadMB": "• ダウンロードサイズ: %.2f MB", + "installButton": "インストール", + + "uninstallTitle": "Millennium をアンインストール 🙁", + "uninstallSubtitle": "削除するコンポーネントを選択してください。", + "uninstallFrom": "アンインストール元: %s", + "uninstallSpace": "回収されたディスク容量: %s", + "uninstallButton": "アンインストール", + "uninstallExit": "終了", + "uninstallExcluded": "「%s」は削除プロセスから除外されました。", + "uninstallFailed": "「%s」のアンインストールに失敗しました。\n\nエラー: %s", + + "componentMillennium": "Millennium", + "componentCustomSteam": "カスタム Steam コンポーネント", + "componentDependencies": "依存関係", + "componentThemes": "テーマ", + "componentPlugins": "プラグイン", + + "installerDownloading": "Millennium をダウンロード中...", + "installerInstalling": "Millennium をインストール中...", + "installerFailTitle": "Millennium のインストールに失敗しました 😢", + "installerTroubleshoot": "トラブルシューティングガイドを見る ↗", + "installerSuccessTitle": "準備完了!Millennium をご利用いただきありがとうございます 💖", + "installerSuccessDesc": "初めての方は、Steam® 起動時にさらなる手順をご確認ください。", + "installerDocs": "ドキュメントを見る ↗", + "installerDisclaimer1": "Steam Homebrew & Millennium は", + "installerDisclaimer2": "Steam®、Valve またはそのパートナーと提携していません。", + "installerFinish": "完了", + + "errorWhoops": "おっと!", + "errorNetwork": "GitHub API に接続できませんでした!\n\n%s", + "errorReleaseNotFound": "最新の Millennium リリースが見つかりませんでした!", + "errorParseFailed": "GitHub API からバージョン情報を解析できませんでした!", + "errorDownloadFailed": "リリースアセットのダウンロードに失敗しました。", + "errorSignatureMismatch": "ダウンロードしたファイルの署名が一致しません。", + "errorExtractFailed": "リリースアセットの解凍に失敗しました。ダウンロードが破損しているか、ディスクが満杯の可能性があります。", + + "titlebarTitle": "Steam Homebrew", + + "tooltipDiscord": "Discord サーバーに参加", + "tooltipGithub": "ソースコードを見る" +} diff --git a/src/locales/koreana.json b/src/locales/koreana.json new file mode 100644 index 0000000..5cb8e66 --- /dev/null +++ b/src/locales/koreana.json @@ -0,0 +1,59 @@ +{ + "homeInstall": "설치", + "homeInstallDesc": "Millennium을 Steam® 클라이언트에 통합합니다.", + "homeRemove": "제거", + "homeRemoveDesc": "Millennium의 일부를 선택적으로 제거합니다.", + "homeNext": "다음", + "homeSelectOption": "위에서 옵션을 선택하여 계속하세요.", + + "installTitle": "Millennium 설치 💫", + "installSubtitle": "더 나은 Steam® 환경으로 가는 오픈소스 관문.", + "installSteamPath": "Steam 설치 경로:", + "installSelectPath": "Steam 설치 경로 선택", + "installVersion": "Millennium 버전 %s 설치 중", + "installChangeVersion": "버전 변경 ▾", + "installLatest": "(최신)", + "installSizeNA": "• 설치 크기: 해당 없음", + "installSizeMB": "• 설치 크기: %.2f MB", + "installDownloadMB": "• 다운로드 크기: %.2f MB", + "installButton": "설치", + + "uninstallTitle": "Millennium 제거 🙁", + "uninstallSubtitle": "제거할 구성 요소를 선택하세요.", + "uninstallFrom": "다음에서 제거: %s", + "uninstallSpace": "회수된 디스크 공간: %s", + "uninstallButton": "제거", + "uninstallExit": "종료", + "uninstallExcluded": "\"%s\"는 제거 프로세스에서 제외되었습니다.", + "uninstallFailed": "\"%s\"를 제거하지 못했습니다.\n\n오류: %s", + + "componentMillennium": "Millennium", + "componentCustomSteam": "사용자 지정 Steam 구성 요소", + "componentDependencies": "종속성", + "componentThemes": "테마", + "componentPlugins": "플러그인", + + "installerDownloading": "Millennium 다운로드 중...", + "installerInstalling": "Millennium 설치 중...", + "installerFailTitle": "Millennium 설치 실패 😢", + "installerTroubleshoot": "문제 해결 가이드 보기 ↗", + "installerSuccessTitle": "모두 준비됐어요! Millennium을 사용해 주셔서 감사합니다 💖", + "installerSuccessDesc": "처음 오셨다면, Steam® 시작 시 추가 안내를 확인하세요.", + "installerDocs": "문서 보기 ↗", + "installerDisclaimer1": "Steam Homebrew & Millennium은", + "installerDisclaimer2": "Steam®, Valve 또는 그 파트너사와 무관합니다.", + "installerFinish": "완료", + + "errorWhoops": "이런!", + "errorNetwork": "GitHub API에 연결하지 못했습니다!\n\n%s", + "errorReleaseNotFound": "최신 Millennium 릴리스를 찾지 못했습니다!", + "errorParseFailed": "GitHub API에서 버전 정보를 파싱하지 못했습니다!", + "errorDownloadFailed": "릴리스 자산 다운로드에 실패했습니다.", + "errorSignatureMismatch": "다운로드한 파일 서명이 예상 서명과 일치하지 않습니다.", + "errorExtractFailed": "릴리스 자산 압축 해제에 실패했습니다. 다운로드가 손상되었거나 디스크가 가득 찼을 수 있습니다.", + + "titlebarTitle": "Steam Homebrew", + + "tooltipDiscord": "Discord 서버 참가", + "tooltipGithub": "소스 코드 보기" +} diff --git a/src/locales/latam.json b/src/locales/latam.json new file mode 100644 index 0000000..24bcf2f --- /dev/null +++ b/src/locales/latam.json @@ -0,0 +1,59 @@ +{ + "homeInstall": "Instalar", + "homeInstallDesc": "Integrar Millennium en tu cliente Steam®.", + "homeRemove": "Eliminar", + "homeRemoveDesc": "Desinstalar partes de Millennium de forma selectiva.", + "homeNext": "Siguiente", + "homeSelectOption": "Selecciona una opción arriba para continuar.", + + "installTitle": "Instalar Millennium 💫", + "installSubtitle": "Un portal de código abierto hacia una mejor experiencia en Steam®.", + "installSteamPath": "Ruta de instalación de Steam:", + "installSelectPath": "Seleccionar ruta de instalación de Steam", + "installVersion": "Instalando Millennium versión %s", + "installChangeVersion": "cambiar versión ▾", + "installLatest": " (más reciente)", + "installSizeNA": "• Tamaño de instalación: N/D", + "installSizeMB": "• Tamaño de instalación: %.2f MB", + "installDownloadMB": "• Tamaño de descarga: %.2f MB", + "installButton": "Instalar", + + "uninstallTitle": "Desinstalar Millennium 🙁", + "uninstallSubtitle": "Selecciona los componentes que quieres eliminar.", + "uninstallFrom": "Desinstalando desde: %s", + "uninstallSpace": "Espacio en disco recuperado: %s", + "uninstallButton": "Desinstalar", + "uninstallExit": "Salir", + "uninstallExcluded": "\"%s\" fue excluido del proceso de eliminación.", + "uninstallFailed": "No se pudo desinstalar \"%s\".\n\nError: %s", + + "componentMillennium": "Millennium", + "componentCustomSteam": "Componentes personalizados de Steam", + "componentDependencies": "Dependencias", + "componentThemes": "Temas", + "componentPlugins": "Plugins", + + "installerDownloading": "Descargando Millennium...", + "installerInstalling": "Instalando Millennium...", + "installerFailTitle": "No se pudo instalar Millennium 😢", + "installerTroubleshoot": "Ver guía de solución de problemas ↗", + "installerSuccessTitle": "¡Todo listo! Gracias por usar Millennium 💖", + "installerSuccessDesc": "Si eres nuevo aquí, revisa más instrucciones cuando Steam® arranque.", + "installerDocs": "Ver documentación ↗", + "installerDisclaimer1": "Steam Homebrew & Millennium no están afiliados a", + "installerDisclaimer2": "Steam®, Valve ni a ninguno de sus socios.", + "installerFinish": "Finalizar", + + "errorWhoops": "¡Vaya!", + "errorNetwork": "¡No se pudo conectar a la API de GitHub!\n\n%s", + "errorReleaseNotFound": "¡No encontramos la última versión de Millennium!", + "errorParseFailed": "¡No se pudo analizar la información de versión de la API de GitHub!", + "errorDownloadFailed": "No se pudieron descargar los archivos de lanzamiento.", + "errorSignatureMismatch": "La firma del archivo descargado no coincide con la firma esperada.", + "errorExtractFailed": "No se pudieron extraer los archivos. La descarga puede estar dañada o el disco puede estar lleno.", + + "titlebarTitle": "Steam Homebrew", + + "tooltipDiscord": "Unirse al servidor de Discord", + "tooltipGithub": "Ver código fuente" +} diff --git a/src/locales/polish.json b/src/locales/polish.json new file mode 100644 index 0000000..5d80c91 --- /dev/null +++ b/src/locales/polish.json @@ -0,0 +1,59 @@ +{ + "homeInstall": "Zainstaluj", + "homeInstallDesc": "Zintegruj Millennium ze swoim klientem Steam®.", + "homeRemove": "Usuń", + "homeRemoveDesc": "Selektywnie odinstaluj części Millennium.", + "homeNext": "Dalej", + "homeSelectOption": "Wybierz opcję powyżej, aby kontynuować.", + + "installTitle": "Zainstaluj Millennium 💫", + "installSubtitle": "Otwartoźródłowe narzędzie dla lepszego Steam®.", + "installSteamPath": "Ścieżka instalacji Steam:", + "installSelectPath": "Wybierz ścieżkę instalacji Steam", + "installVersion": "Instalowanie Millennium wersja %s", + "installChangeVersion": "zmień wersję ▾", + "installLatest": " (najnowsza)", + "installSizeNA": "• Rozmiar instalacji: N/D", + "installSizeMB": "• Rozmiar instalacji: %.2f MB", + "installDownloadMB": "• Rozmiar pobierania: %.2f MB", + "installButton": "Zainstaluj", + + "uninstallTitle": "Odinstaluj Millennium 🙁", + "uninstallSubtitle": "Wybierz komponenty do usunięcia.", + "uninstallFrom": "Odinstalowywanie z: %s", + "uninstallSpace": "Odzyskane miejsce: %s", + "uninstallButton": "Odinstaluj", + "uninstallExit": "Wyjdź", + "uninstallExcluded": "\"%s\" został wykluczony z procesu usuwania.", + "uninstallFailed": "Nie udało się usunąć \"%s\".\n\nBłąd: %s", + + "componentMillennium": "Millennium", + "componentCustomSteam": "Niestandardowe komponenty Steam", + "componentDependencies": "Zależności", + "componentThemes": "Motywy", + "componentPlugins": "Wtyczki", + + "installerDownloading": "Pobieranie Millennium...", + "installerInstalling": "Instalowanie Millennium...", + "installerFailTitle": "Instalacja Millennium nie powiodła się 😢", + "installerTroubleshoot": "Przewodnik rozwiązywania problemów ↗", + "installerSuccessTitle": "Gotowe! Dziękujemy za korzystanie z Millennium 💖", + "installerSuccessDesc": "Jeśli jesteś nowy, po uruchomieniu Steam® znajdziesz dalsze instrukcje.", + "installerDocs": "Zobacz dokumentację ↗", + "installerDisclaimer1": "Steam Homebrew & Millennium nie są powiązane z", + "installerDisclaimer2": "Steam®, Valve ani żadnym z ich partnerów.", + "installerFinish": "Zakończ", + + "errorWhoops": "Ups!", + "errorNetwork": "Nie udało się połączyć z API GitHub!\n\n%s", + "errorReleaseNotFound": "Nie znaleziono najnowszego wydania Millennium!", + "errorParseFailed": "Nie udało się przetworzyć informacji o wersji!", + "errorDownloadFailed": "Pobieranie plików nie powiodło się.", + "errorSignatureMismatch": "Podpis pliku nie zgadza się.", + "errorExtractFailed": "Wyodrębnianie nie powiodło się. Plik może być uszkodzony lub dysk pełny.", + + "titlebarTitle": "Steam Homebrew", + + "tooltipDiscord": "Dołącz do serwera Discord", + "tooltipGithub": "Zobacz kod źródłowy" +} diff --git a/src/locales/russian.json b/src/locales/russian.json new file mode 100644 index 0000000..53b65b1 --- /dev/null +++ b/src/locales/russian.json @@ -0,0 +1,59 @@ +{ + "homeInstall": "Установить", + "homeInstallDesc": "Интегрировать Millennium в ваш Steam® клиент.", + "homeRemove": "Удалить", + "homeRemoveDesc": "Выборочно удалить компоненты Millennium.", + "homeNext": "Далее", + "homeSelectOption": "Выберите действие выше, чтобы продолжить.", + + "installTitle": "Установка Millennium 💫", + "installSubtitle": "Открытый шлюз к улучшенному Steam® клиенту.", + "installSteamPath": "Путь установки Steam:", + "installSelectPath": "Выберите путь установки Steam", + "installVersion": "Устанавливается Millennium версии %s", + "installChangeVersion": "изменить версию ▾", + "installLatest": " (последняя)", + "installSizeNA": "• Размер установки: Н/Д", + "installSizeMB": "• Размер установки: %.2f МБ", + "installDownloadMB": "• Размер загрузки: %.2f МБ", + "installButton": "Установить", + + "uninstallTitle": "Удаление Millennium 🙁", + "uninstallSubtitle": "Выберите компоненты для удаления.", + "uninstallFrom": "Удаление из: %s", + "uninstallSpace": "Освобождаемое место: %s", + "uninstallButton": "Удалить", + "uninstallExit": "Выход", + "uninstallExcluded": "\"%s\" исключён из процесса удаления.", + "uninstallFailed": "Не удалось удалить \"%s\".\n\nОшибка: %s", + + "componentMillennium": "Millennium", + "componentCustomSteam": "Пользовательские компоненты Steam", + "componentDependencies": "Зависимости", + "componentThemes": "Темы", + "componentPlugins": "Плагины", + + "installerDownloading": "Загрузка Millennium...", + "installerInstalling": "Установка Millennium...", + "installerFailTitle": "Не удалось установить Millennium 😢", + "installerTroubleshoot": "Руководство по устранению неполадок ↗", + "installerSuccessTitle": "Всё готово! Спасибо, что пользуетесь Millennium 💖", + "installerSuccessDesc": "Если вы здесь впервые, после запуска Steam® появятся дополнительные инструкции.", + "installerDocs": "Документация ↗", + "installerDisclaimer1": "Steam Homebrew и Millennium не аффилированы с", + "installerDisclaimer2": "Steam®, Valve или их партнёрами.", + "installerFinish": "Завершить", + + "errorWhoops": "Упс!", + "errorNetwork": "Не удалось подключиться к GitHub API!\n\n%s", + "errorReleaseNotFound": "Не удалось найти последний релиз Millennium!", + "errorParseFailed": "Не удалось разобрать информацию о версии из GitHub API!", + "errorDownloadFailed": "Не удалось загрузить файлы релиза.", + "errorSignatureMismatch": "Подпись файла не совпадает с ожидаемой.", + "errorExtractFailed": "Не удалось распаковать файлы. Возможно, загрузка повреждена или диск заполнен.", + + "titlebarTitle": "Steam Homebrew", + + "tooltipDiscord": "Присоединиться к Discord", + "tooltipGithub": "Посмотреть исходный код" +} diff --git a/src/locales/schinese.json b/src/locales/schinese.json new file mode 100644 index 0000000..0d0f710 --- /dev/null +++ b/src/locales/schinese.json @@ -0,0 +1,59 @@ +{ + "homeInstall": "安装", + "homeInstallDesc": "将 Millennium 集成到您的 Steam® 客户端。", + "homeRemove": "移除", + "homeRemoveDesc": "选择性地卸载 Millennium 的部分组件。", + "homeNext": "下一步", + "homeSelectOption": "请在上方选择一个选项以继续。", + + "installTitle": "安装 Millennium 💫", + "installSubtitle": "通往更好 Steam® 体验的开源门户。", + "installSteamPath": "Steam 安装路径:", + "installSelectPath": "选择 Steam 安装路径", + "installVersion": "正在安装 Millennium 版本 %s", + "installChangeVersion": "更改版本 ▾", + "installLatest": "(最新)", + "installSizeNA": "• 安装大小:N/A", + "installSizeMB": "• 安装大小:%.2f MB", + "installDownloadMB": "• 下载大小:%.2f MB", + "installButton": "安装", + + "uninstallTitle": "卸载 Millennium 🙁", + "uninstallSubtitle": "选择要移除的组件。", + "uninstallFrom": "正在从 %s 卸载", + "uninstallSpace": "已回收磁盘空间:%s", + "uninstallButton": "卸载", + "uninstallExit": "退出", + "uninstallExcluded": "\"%s\"已从移除过程中排除。", + "uninstallFailed": "无法卸载\"%s\"。\n\n错误:%s", + + "componentMillennium": "Millennium", + "componentCustomSteam": "自定义 Steam 组件", + "componentDependencies": "依赖项", + "componentThemes": "主题", + "componentPlugins": "插件", + + "installerDownloading": "正在下载 Millennium...", + "installerInstalling": "正在安装 Millennium...", + "installerFailTitle": "安装 Millennium 失败 😢", + "installerTroubleshoot": "查看故障排除指南 ↗", + "installerSuccessTitle": "一切就绪!感谢使用 Millennium 💖", + "installerSuccessDesc": "如果您是新用户,请在 Steam® 启动时查看进一步说明。", + "installerDocs": "查看文档 ↗", + "installerDisclaimer1": "Steam Homebrew 与 Millennium 与", + "installerDisclaimer2": "Steam®、Valve 或其合作伙伴均无关联。", + "installerFinish": "完成", + + "errorWhoops": "哎呀!", + "errorNetwork": "无法连接到 GitHub API!\n\n%s", + "errorReleaseNotFound": "我们未能找到最新的 Millennium 版本!", + "errorParseFailed": "无法从 GitHub API 解析版本信息!", + "errorDownloadFailed": "下载发布资源失败。", + "errorSignatureMismatch": "下载文件的签名与预期签名不匹配。", + "errorExtractFailed": "解压发布资源失败。下载可能已损坏或磁盘可能已满。", + + "titlebarTitle": "Steam Homebrew", + + "tooltipDiscord": "加入 Discord 服务器", + "tooltipGithub": "查看源代码" +} diff --git a/src/locales/spanish.json b/src/locales/spanish.json new file mode 100644 index 0000000..e8cb0d6 --- /dev/null +++ b/src/locales/spanish.json @@ -0,0 +1,59 @@ +{ + "homeInstall": "Instalar", + "homeInstallDesc": "Integrar Millennium en tu cliente de Steam®.", + "homeRemove": "Eliminar", + "homeRemoveDesc": "Desinstalar selectivamente partes de Millennium.", + "homeNext": "Siguiente", + "homeSelectOption": "Selecciona una opción arriba para continuar.", + + "installTitle": "Instalar Millennium 💫", + "installSubtitle": "Una puerta de código abierto a una mejor experiencia Steam®.", + "installSteamPath": "Ruta de instalación de Steam:", + "installSelectPath": "Seleccionar ruta de instalación de Steam", + "installVersion": "Instalando Millennium versión %s", + "installChangeVersion": "cambiar versión ▾", + "installLatest": " (última)", + "installSizeNA": "• Tamaño de instalación: N/D", + "installSizeMB": "• Tamaño de instalación: %.2f MB", + "installDownloadMB": "• Tamaño de descarga: %.2f MB", + "installButton": "Instalar", + + "uninstallTitle": "Desinstalar Millennium 🙁", + "uninstallSubtitle": "Selecciona los componentes que deseas eliminar.", + "uninstallFrom": "Desinstalando desde: %s", + "uninstallSpace": "Espacio en disco recuperado: %s", + "uninstallButton": "Desinstalar", + "uninstallExit": "Salir", + "uninstallExcluded": "\"%s\" fue excluido del proceso de eliminación.", + "uninstallFailed": "Error al eliminar \"%s\".\n\nError: %s", + + "componentMillennium": "Millennium", + "componentCustomSteam": "Componentes Steam personalizados", + "componentDependencies": "Dependencias", + "componentThemes": "Temas", + "componentPlugins": "Plugins", + + "installerDownloading": "Descargando Millennium...", + "installerInstalling": "Instalando Millennium...", + "installerFailTitle": "Error al instalar Millennium 😢", + "installerTroubleshoot": "Guía de solución de problemas ↗", + "installerSuccessTitle": "¡Todo listo! Gracias por usar Millennium 💖", + "installerSuccessDesc": "Si eres nuevo, consulta las instrucciones adicionales al iniciar Steam®.", + "installerDocs": "Ver documentación ↗", + "installerDisclaimer1": "Steam Homebrew & Millennium no están afiliados con", + "installerDisclaimer2": "Steam®, Valve ni ninguno de sus socios.", + "installerFinish": "Finalizar", + + "errorWhoops": "¡Vaya!", + "errorNetwork": "Error al conectar con la API de GitHub!\n\n%s", + "errorReleaseNotFound": "No se encontró la última versión de Millennium!", + "errorParseFailed": "Error al analizar la información de versión!", + "errorDownloadFailed": "Error al descargar los archivos.", + "errorSignatureMismatch": "La firma del archivo no coincide.", + "errorExtractFailed": "Error al extraer. La descarga puede estar corrupta o el disco lleno.", + + "titlebarTitle": "Steam Homebrew", + + "tooltipDiscord": "Unirse al servidor de Discord", + "tooltipGithub": "Ver código fuente" +} diff --git a/src/locales/swedish.json b/src/locales/swedish.json new file mode 100644 index 0000000..5ab04b8 --- /dev/null +++ b/src/locales/swedish.json @@ -0,0 +1,59 @@ +{ + "homeInstall": "Installera", + "homeInstallDesc": "Integrera Millennium i din Steam®-klient.", + "homeRemove": "Ta bort", + "homeRemoveDesc": "Avinstallera delar av Millennium selektivt.", + "homeNext": "Nästa", + "homeSelectOption": "Välj ett alternativ ovan för att fortsätta.", + + "installTitle": "Installera Millennium 💫", + "installSubtitle": "En öppen källkods-portal till en bättre Steam®-upplevelse.", + "installSteamPath": "Steam-installationsväg:", + "installSelectPath": "Välj Steam-installationsväg", + "installVersion": "Installerar Millennium version %s", + "installChangeVersion": "ändra version ▾", + "installLatest": " (senaste)", + "installSizeNA": "• Installationsstorlek: ej tillgänglig", + "installSizeMB": "• Installationsstorlek: %.2f MB", + "installDownloadMB": "• Nedladdningsstorlek: %.2f MB", + "installButton": "Installera", + + "uninstallTitle": "Avinstallera Millennium 🙁", + "uninstallSubtitle": "Välj de komponenter du vill ta bort.", + "uninstallFrom": "Avinstallerar från: %s", + "uninstallSpace": "Återvunnet diskutrymme: %s", + "uninstallButton": "Avinstallera", + "uninstallExit": "Avsluta", + "uninstallExcluded": "\"%s\" undantogs från avinstallationen.", + "uninstallFailed": "Misslyckades med att avinstallera \"%s\".\n\nFel: %s", + + "componentMillennium": "Millennium", + "componentCustomSteam": "Anpassade Steam-komponenter", + "componentDependencies": "Beroenden", + "componentThemes": "Teman", + "componentPlugins": "Plugin-program", + + "installerDownloading": "Laddar ner Millennium...", + "installerInstalling": "Installerar Millennium...", + "installerFailTitle": "Millennium kunde inte installeras 😢", + "installerTroubleshoot": "Felsökningsguide ↗", + "installerSuccessTitle": "Klart! Tack för att du använder Millennium 💖", + "installerSuccessDesc": "Om du är ny här, se vidare instruktioner när Steam® startar.", + "installerDocs": "Visa dokumentation ↗", + "installerDisclaimer1": "Steam Homebrew & Millennium är inte kopplade till", + "installerDisclaimer2": "Steam®, Valve eller deras partners.", + "installerFinish": "Slutför", + + "errorWhoops": "Hoppsan!", + "errorNetwork": "Misslyckades med att ansluta till GitHub API!\n\n%s", + "errorReleaseNotFound": "Vi hittade inte den senaste Millennium-versionen!", + "errorParseFailed": "Misslyckades med att tolka versionsinformation från GitHub API!", + "errorDownloadFailed": "Misslyckades med att ladda ner releaseresurser.", + "errorSignatureMismatch": "Nedladdat filhash matchar inte förväntat hash.", + "errorExtractFailed": "Misslyckades med att extrahera. Nedladdningen kan vara skadad eller disken kan vara full.", + + "titlebarTitle": "Steam Homebrew", + + "tooltipDiscord": "Gå med i Discord-servern", + "tooltipGithub": "Visa källkod" +} diff --git a/src/locales/tchinese.json b/src/locales/tchinese.json new file mode 100644 index 0000000..5f8d828 --- /dev/null +++ b/src/locales/tchinese.json @@ -0,0 +1,59 @@ +{ + "homeInstall": "安裝", + "homeInstallDesc": "將 Millennium 整合到您的 Steam® 客戶端。", + "homeRemove": "移除", + "homeRemoveDesc": "選擇性地解除安裝 Millennium 的部分元件。", + "homeNext": "下一步", + "homeSelectOption": "請在上方選擇一個選項以繼續。", + + "installTitle": "安裝 Millennium 💫", + "installSubtitle": "通往更好 Steam® 體驗的開源門戶。", + "installSteamPath": "Steam 安裝路徑:", + "installSelectPath": "選擇 Steam 安裝路徑", + "installVersion": "正在安裝 Millennium 版本 %s", + "installChangeVersion": "變更版本 ▾", + "installLatest": "(最新)", + "installSizeNA": "• 安裝大小:N/A", + "installSizeMB": "• 安裝大小:%.2f MB", + "installDownloadMB": "• 下載大小:%.2f MB", + "installButton": "安裝", + + "uninstallTitle": "解除安裝 Millennium 🙁", + "uninstallSubtitle": "選擇您要移除的元件。", + "uninstallFrom": "正在從 %s 解除安裝", + "uninstallSpace": "已回收磁碟空間:%s", + "uninstallButton": "解除安裝", + "uninstallExit": "退出", + "uninstallExcluded": "「%s」已從移除流程中排除。", + "uninstallFailed": "無法解除安裝「%s」。\n\n錯誤:%s", + + "componentMillennium": "Millennium", + "componentCustomSteam": "自訂 Steam 元件", + "componentDependencies": "相依性", + "componentThemes": "佈景主題", + "componentPlugins": "外掛程式", + + "installerDownloading": "正在下載 Millennium...", + "installerInstalling": "正在安裝 Millennium...", + "installerFailTitle": "安裝 Millennium 失敗 😢", + "installerTroubleshoot": "檢視疑難排解指南 ↗", + "installerSuccessTitle": "一切就緒!感謝使用 Millennium 💖", + "installerSuccessDesc": "如果您是新用戶,請在 Steam® 啟動時查看進一步說明。", + "installerDocs": "檢視文件 ↗", + "installerDisclaimer1": "Steam Homebrew 與 Millennium 與", + "installerDisclaimer2": "Steam®、Valve 或其合作夥伴均無關聯。", + "installerFinish": "完成", + + "errorWhoops": "哎呀!", + "errorNetwork": "無法連線到 GitHub API!\n\n%s", + "errorReleaseNotFound": "我們未能找到最新的 Millennium 版本!", + "errorParseFailed": "無法從 GitHub API 解析版本資訊!", + "errorDownloadFailed": "下載發布資源失敗。", + "errorSignatureMismatch": "下載檔案的簽章與預期簽章不相符。", + "errorExtractFailed": "解壓縮發布資源失敗。下載可能已損毀或磁碟可能已滿。", + + "titlebarTitle": "Steam Homebrew", + + "tooltipDiscord": "加入 Discord 伺服器", + "tooltipGithub": "檢視原始碼" +} diff --git a/src/locales/turkish.json b/src/locales/turkish.json new file mode 100644 index 0000000..298d28c --- /dev/null +++ b/src/locales/turkish.json @@ -0,0 +1,59 @@ +{ + "homeInstall": "Kur", + "homeInstallDesc": "Millennium'u Steam® istemcinize entegre edin.", + "homeRemove": "Kaldır", + "homeRemoveDesc": "Millennium'un bazı parçalarını kaldırın.", + "homeNext": "İleri", + "homeSelectOption": "Devam etmek için yukarıdan bir seçenek belirleyin.", + + "installTitle": "Millennium'u Kur 💫", + "installSubtitle": "Daha iyi bir Steam® deneyimi için açık kaynaklı bir geçit.", + "installSteamPath": "Steam Kurulum Yolu:", + "installSelectPath": "Steam kurulum yolunu seçin", + "installVersion": "Millennium %s sürümü kuruluyor", + "installChangeVersion": "sürümü değiştir ▾", + "installLatest": " (son)", + "installSizeNA": "• Kurulum boyutu: Yok", + "installSizeMB": "• Kurulum boyutu: %.2f MB", + "installDownloadMB": "• İndirme boyutu: %.2f MB", + "installButton": "Kur", + + "uninstallTitle": "Millennium'u Kaldır 🙁", + "uninstallSubtitle": "Kaldırmak istediğiniz bileşenleri seçin.", + "uninstallFrom": "Kaldırma konumu: %s", + "uninstallSpace": "Geri kazanılan alan: %s", + "uninstallButton": "Kaldır", + "uninstallExit": "Çıkış", + "uninstallExcluded": "\"%s\" kaldırma işleminden dışlandırıldı.", + "uninstallFailed": "\"%s\" kaldırılamadı.\n\nHata: %s", + + "componentMillennium": "Millennium", + "componentCustomSteam": "Steam Bileşenleri", + "componentDependencies": "Bağımlılıklar", + "componentThemes": "Temalar", + "componentPlugins": "Eklentiler", + + "installerDownloading": "Millennium indiriliyor...", + "installerInstalling": "Millennium kuruluyor...", + "installerFailTitle": "Millennium kurulamadı 😢", + "installerTroubleshoot": "Sorun Giderme Kılavuzu ↗", + "installerSuccessTitle": "Hazırsınız! Millennium'u kullandığınız için teşekkürler 💖", + "installerSuccessDesc": "Yeniyseniz, Steam® başlatıldığında talimatlar görünecektir.", + "installerDocs": "Belgeleri Görüntüle ↗", + "installerDisclaimer1": "Steam Homebrew & Millennium ile bağlantılı değildir", + "installerDisclaimer2": "Steam®, Valve veya ortakları.", + "installerFinish": "Bitir", + + "errorWhoops": "Hay aksi!", + "errorNetwork": "GitHub API'ye bağlanılamadı!\n\n%s", + "errorReleaseNotFound": "Millennium'un son sürümü bulunamadı!", + "errorParseFailed": "Sürüm bilgisi işlenemedi!", + "errorDownloadFailed": "Dosyalar indirilemedi.", + "errorSignatureMismatch": "Dosya imzası eşleşmiyor.", + "errorExtractFailed": "Çıkarma başarısız. İndirme bozuk veya disk dolu olabilir.", + + "titlebarTitle": "Steam Homebrew", + + "tooltipDiscord": "Discord Sunucusuna Katıl", + "tooltipGithub": "Kaynak Kodunu Görüntüle" +} diff --git a/src/locales/ukrainian.json b/src/locales/ukrainian.json new file mode 100644 index 0000000..7403d49 --- /dev/null +++ b/src/locales/ukrainian.json @@ -0,0 +1,59 @@ +{ + "homeInstall": "Встановити", + "homeInstallDesc": "Інтегрувати Millennium у ваш Steam® клієнт.", + "homeRemove": "Видалити", + "homeRemoveDesc": "Вибірково видалити компоненти Millennium.", + "homeNext": "Далі", + "homeSelectOption": "Оберіть дію вище, щоб продовжити.", + + "installTitle": "Встановлення Millennium 💫", + "installSubtitle": "Відкритий шлях до покращеного Steam® клієнта.", + "installSteamPath": "Шлях встановлення Steam:", + "installSelectPath": "Оберіть шлях встановлення Steam", + "installVersion": "Встановлюється Millennium версії %s", + "installChangeVersion": "змінити версію ▾", + "installLatest": " (остання)", + "installSizeNA": "• Розмір встановлення: Н/Д", + "installSizeMB": "• Розмір встановлення: %.2f МБ", + "installDownloadMB": "• Розмір завантаження: %.2f МБ", + "installButton": "Встановити", + + "uninstallTitle": "Видалення Millennium 🙁", + "uninstallSubtitle": "Оберіть компоненти для видалення.", + "uninstallFrom": "Видалення з: %s", + "uninstallSpace": "Звільнене місце: %s", + "uninstallButton": "Видалити", + "uninstallExit": "Вихід", + "uninstallExcluded": "\"%s\" виключено з процесу видалення.", + "uninstallFailed": "Не вдалося видалити \"%s\".\n\nПомилка: %s", + + "componentMillennium": "Millennium", + "componentCustomSteam": "Користувацькі компоненти Steam", + "componentDependencies": "Залежності", + "componentThemes": "Теми", + "componentPlugins": "Плагіни", + + "installerDownloading": "Завантаження Millennium...", + "installerInstalling": "Встановлення Millennium...", + "installerFailTitle": "Не вдалося встановити Millennium 😢", + "installerTroubleshoot": "Посібник з усунення неполадок ↗", + "installerSuccessTitle": "Все готово! Дякуємо, що користуєтеся Millennium 💖", + "installerSuccessDesc": "Якщо ви тут вперше, після запуску Steam® з'являться додаткові інструкції.", + "installerDocs": "Документація ↗", + "installerDisclaimer1": "Steam Homebrew та Millennium не пов'язані з", + "installerDisclaimer2": "Steam®, Valve або їхніми партнерами.", + "installerFinish": "Завершити", + + "errorWhoops": "Ой!", + "errorNetwork": "Не вдалося підключитися до GitHub API!\n\n%s", + "errorReleaseNotFound": "Не вдалося знайти останній реліз Millennium!", + "errorParseFailed": "Не вдалося розібрати інформацію про версію з GitHub API!", + "errorDownloadFailed": "Не вдалося завантажити файли релізу.", + "errorSignatureMismatch": "Підпис файлу не збігається з очікуваним.", + "errorExtractFailed": "Не вдалося розпакувати файли. Можливо, завантаження пошкоджено або диск заповнено.", + + "titlebarTitle": "Steam Homebrew", + + "tooltipDiscord": "Приєднатися до Discord", + "tooltipGithub": "Переглянути вихідний код" +} diff --git a/src/locales/vietnamese.json b/src/locales/vietnamese.json new file mode 100644 index 0000000..dcba2a3 --- /dev/null +++ b/src/locales/vietnamese.json @@ -0,0 +1,59 @@ +{ + "homeInstall": "Cài đặt", + "homeInstallDesc": "Tích hợp Millennium vào ứng dụng Steam® của bạn.", + "homeRemove": "Gỡ cài đặt", + "homeRemoveDesc": "Gỡ cài đặt có chọn lọc các phần của Millennium.", + "homeNext": "Tiếp theo", + "homeSelectOption": "Chọn một tùy chọn ở trên để tiếp tục.", + + "installTitle": "Cài đặt Millennium 💫", + "installSubtitle": "Cổng nguồn mở đến trải nghiệm Steam® tốt hơn.", + "installSteamPath": "Đường dẫn cài đặt Steam:", + "installSelectPath": "Chọn đường dẫn cài đặt Steam", + "installVersion": "Đang cài đặt Millennium phiên bản %s", + "installChangeVersion": "thay đổi phiên bản ▾", + "installLatest": " (mới nhất)", + "installSizeNA": "• Kích thước cài đặt: N/A", + "installSizeMB": "• Kích thước cài đặt: %.2f MB", + "installDownloadMB": "• Kích thước tải xuống: %.2f MB", + "installButton": "Cài đặt", + + "uninstallTitle": "Gỡ cài đặt Millennium 🙁", + "uninstallSubtitle": "Chọn các thành phần bạn muốn xóa.", + "uninstallFrom": "Gỡ cài đặt từ: %s", + "uninstallSpace": "Dung lượng đĩa đã thu hồi: %s", + "uninstallButton": "Gỡ cài đặt", + "uninstallExit": "Thoát", + "uninstallExcluded": "\"%s\" đã bị loại khỏi quá trình gỡ cài đặt.", + "uninstallFailed": "Không thể gỡ cài đặt \"%s\".\n\nLỗi: %s", + + "componentMillennium": "Millennium", + "componentCustomSteam": "Thành phần Steam tùy chỉnh", + "componentDependencies": "Phụ thuộc", + "componentThemes": "Chủ đề", + "componentPlugins": "Plugin", + + "installerDownloading": "Đang tải xuống Millennium...", + "installerInstalling": "Đang cài đặt Millennium...", + "installerFailTitle": "Không thể cài đặt Millennium 😢", + "installerTroubleshoot": "Xem hướng dẫn khắc phục sự cố ↗", + "installerSuccessTitle": "Xong rồi! Cảm ơn bạn đã sử dụng Millennium 💖", + "installerSuccessDesc": "Nếu bạn mới ở đây, hãy xem thêm hướng dẫn khi Steam® khởi động.", + "installerDocs": "Xem tài liệu ↗", + "installerDisclaimer1": "Steam Homebrew & Millennium không liên kết với", + "installerDisclaimer2": "Steam®, Valve hoặc bất kỳ đối tác nào của họ.", + "installerFinish": "Hoàn tất", + + "errorWhoops": "Ôi!", + "errorNetwork": "Không thể kết nối với GitHub API!\n\n%s", + "errorReleaseNotFound": "Chúng tôi không tìm thấy phiên bản Millennium mới nhất!", + "errorParseFailed": "Không thể phân tích thông tin phiên bản từ GitHub API!", + "errorDownloadFailed": "Không thể tải xuống tài nguyên phát hành.", + "errorSignatureMismatch": "Chữ ký tệp tải xuống không khớp với chữ ký mong đợi.", + "errorExtractFailed": "Không thể giải nén tài nguyên phát hành. Tệp tải xuống có thể bị hỏng hoặc đĩa có thể đầy.", + + "titlebarTitle": "Steam Homebrew", + + "tooltipDiscord": "Tham gia máy chủ Discord", + "tooltipGithub": "Xem mã nguồn" +} diff --git a/src/main.cc b/src/main.cc index 5e5cc84..2b01675 100644 --- a/src/main.cc +++ b/src/main.cc @@ -37,6 +37,7 @@ #include #include #include +#include #include #include #include "updater.h" @@ -122,6 +123,7 @@ GLFWwindow* CreateWindowContext(GLFWmonitor* monitor) int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { AllocateDeveloperConsoleIfNeeded(); + Locale::Initialize(); CheckForAndDownloadUpdates(); MMRESULT result = timeBeginPeriod(1); diff --git a/src/routes/home.cc b/src/routes/home.cc index 1decbf9..7f427b7 100644 --- a/src/routes/home.cc +++ b/src/routes/home.cc @@ -38,6 +38,7 @@ #include #include #include +#include #include #include #include @@ -54,6 +55,7 @@ enum OptionType struct OptionProps { + std::string id; // stable key used for ImGui IDs and animation state std::string title; std::string description; OptionType type; @@ -74,14 +76,14 @@ const void RenderOption(OptionProps props, int ContainerWidth, int ContainerHeig ImGuiIO& io = GetIO(); const float DEFAULT_BORDER_COL = GetStyleColorVec4(ImGuiCol_Border).x; - auto& state = optionStates[props.title]; + auto& state = optionStates[props.id]; state.initPos = GetCursorPosY(); static const float hoverColor = 0.22f; static const float selectedColor = 1.0f; - float currentColor = SmoothFloat(props.title, state.initPos, state.isHovered, 5, 0.15f, std::make_tuple(DEFAULT_BORDER_COL, hoverColor)); - float currentClickedColor = EaseInOutFloat(props.title, hoverColor, selectedColor, state.isSelected, 0.3f); + float currentColor = SmoothFloat(props.id, state.initPos, state.isHovered, 5, 0.15f, std::make_tuple(DEFAULT_BORDER_COL, hoverColor)); + float currentClickedColor = EaseInOutFloat(props.id, hoverColor, selectedColor, state.isSelected, 0.3f); if (state.isHovered && currentClickedColor == hoverColor) { PushStyleColor(ImGuiCol_Border, ImVec4(currentColor, currentColor, currentColor, 1.0f)); @@ -89,7 +91,7 @@ const void RenderOption(OptionProps props, int ContainerWidth, int ContainerHeig PushStyleColor(ImGuiCol_Border, ImVec4(currentClickedColor, currentClickedColor, currentClickedColor, 1.f)); } - BeginChild(("##" + props.title + "Container").c_str(), ImVec2(ContainerWidth, ContainerHeight), true, ImGuiWindowFlags_NoScrollbar); + BeginChild(("##" + props.id + "Container").c_str(), ImVec2(ContainerWidth, ContainerHeight), true, ImGuiWindowFlags_NoScrollbar); { PushFont(io.Fonts->Fonts[1]); Text("%s", props.title.c_str()); @@ -118,7 +120,7 @@ const void RenderOption(OptionProps props, int ContainerWidth, int ContainerHeig /** Unselect other options */ if (state.isSelected) { for (auto& [key, value] : optionStates) { - if (key != props.title) { + if (key != props.id) { value.isSelected = false; } } @@ -171,12 +173,15 @@ const void RenderHome(std::shared_ptr router, float xPos) const int ContainerSpacing = ScaleX(30); const int ContainerWidth = (viewport->Size.x - ScaleX(100)) / 2; + // Language selector is part of the home screen — slides with the panel. + RenderLanguageSelector(xPos); + PushStyleColor(ImGuiCol_Border, ImVec4(0.169f, 0.173f, 0.18f, 1.0f)); SetCursorPos({ xPos + (viewport->Size.x - ((ContainerWidth * 2) + ContainerSpacing)) / 2, ((viewport->Size.y - BottomNavBarHeight) / 2.0f) - ContainerHeight / 2.0f }); - RenderOption({ "Install", "Integrate Millennium into your Steam® Client.", INSTALL }, ContainerWidth, ContainerHeight, ContainerSpacing); - RenderOption({ "Remove", "Selectively uninstall portions of Millennium.", REMOVE }, ContainerWidth, ContainerHeight, ContainerSpacing); + RenderOption({ "install", Locale::Get("homeInstall"), Locale::Get("homeInstallDesc"), INSTALL }, ContainerWidth, ContainerHeight, ContainerSpacing); + RenderOption({ "remove", Locale::Get("homeRemove"), Locale::Get("homeRemoveDesc"), REMOVE }, ContainerWidth, ContainerHeight, ContainerSpacing); PushStyleColor(ImGuiCol_ChildBg, ImVec4(0.078f, 0.082f, 0.09f, 1.0f)); @@ -226,7 +231,7 @@ const void RenderHome(std::shared_ptr router, float xPos) EndChild(); PopStyleColor(); PopStyleVar(); - } else if (Button("Next", { xPos + GetContentRegionAvail().x, GetContentRegionAvail().y })) { + } else if (Button(Locale::Get("homeNext"), { xPos + GetContentRegionAvail().x, GetContentRegionAvail().y })) { switch (currentOption) { case INSTALL: { @@ -280,7 +285,7 @@ const void RenderHome(std::shared_ptr router, float xPos) } } - const char* toolTipText = "Select an option above to continue."; + const char* toolTipText = Locale::Get("homeSelectOption"); const float tooltipWidth = CalcTextSize(toolTipText).x + ScaleX(20); float toolTipOpacity = EaseInOutFloat("##SelectAnOptionTooltip", 0.f, 1.f, buttonHovered && currentOption == UNSET, 0.4f); diff --git a/src/routes/install_prompt.cc b/src/routes/install_prompt.cc index c404f89..38f60a2 100644 --- a/src/routes/install_prompt.cc +++ b/src/routes/install_prompt.cc @@ -39,6 +39,7 @@ #include #include #include +#include #include #include #include @@ -248,7 +249,7 @@ const void RenderInstallPrompt(std::shared_ptr router, float xPos) BeginChild("##PromptContainer", ImVec2(PromptContainerWidth, PromptContainerHeight), false); { PushFont(io.Fonts->Fonts[1]); - Text("%s", std::format("Install Millennium 💫").c_str()); + Text("%s", Locale::Get("installTitle")); PopFont(); Spacing(); @@ -256,7 +257,7 @@ const void RenderInstallPrompt(std::shared_ptr router, float xPos) // TextWrapped(std::format("Released {} • ", ToTimeAgo(releaseInfo["published_at"].get())).c_str()); // SameLine(0, ScaleX(5)); // TextColored(ImVec4(0.408f, 0.525f, 0.91f, 1.0f), "view release notes"); - Text("An open source gateway to a better Steam® client experience."); + Text("%s", Locale::Get("installSubtitle")); if (IsItemHovered()) { SetMouseCursor(ImGuiMouseCursor_Hand); @@ -277,7 +278,7 @@ const void RenderInstallPrompt(std::shared_ptr router, float xPos) Spacing(); Spacing(); - Text("Steam Install Path:"); + Text("%s", Locale::Get("installSteamPath")); Spacing(); Spacing(); PopStyleColor(); @@ -317,7 +318,7 @@ const void RenderInstallPrompt(std::shared_ptr router, float xPos) PushStyleVar(ImGuiStyleVar_Alpha, currentColor); PushStyleColor(ImGuiCol_PopupBg, ImVec4(0.098f, 0.102f, 0.11f, 1.0f)); BeginTooltip(); - Text("Select Steam installation path"); + Text("%s", Locale::Get("installSelectPath")); EndTooltip(); PopStyleVar(3); PopStyleColor(); @@ -332,10 +333,10 @@ const void RenderInstallPrompt(std::shared_ptr router, float xPos) PushStyleColor(ImGuiCol_Text, ImVec4(0.422f, 0.425f, 0.441f, 1.0f)); std::string currentTag = selectedRelease.contains("tag_name") ? selectedRelease["tag_name"].get() : std::string("(none)"); - Text("Installing Millennium version %s", currentTag.c_str()); + Text(Locale::Get("installVersion"), currentTag.c_str()); SameLine(0, ScaleX(5)); - const char* changeText = "change version ▾"; + const char* changeText = Locale::Get("installChangeVersion"); ImVec2 changeSize = CalcTextSize(changeText); if (changeSize.y < GetTextLineHeight()) changeSize.y = GetTextLineHeight(); @@ -373,7 +374,7 @@ const void RenderInstallPrompt(std::shared_ptr router, float xPos) if (latestReleaseTag == tag) { PushStyleColor(ImGuiCol_Text, ImVec4(0.408f, 0.525f, 0.91f, 1.0f)); - strTag += " (latest)"; + strTag += Locale::Get("installLatest"); } if (Selectable(std::format(" {} ", strTag).c_str(), is_selected)) { @@ -405,12 +406,12 @@ const void RenderInstallPrompt(std::shared_ptr router, float xPos) PushStyleColor(ImGuiCol_Text, ImVec4(0.422f, 0.425f, 0.441f, 1.0f)); if (installSizeStr.empty()) { - Text("• Install size: N/A"); + Text("%s", Locale::Get("installSizeNA")); } else { - Text("• Install size: %.2f MB", stof(installSizeStr) / (1024.0f * 1024.0f)); + Text(Locale::Get("installSizeMB"), stof(installSizeStr) / (1024.0f * 1024.0f)); } - Text("• Download size: %.2f MB", osReleaseInfo.contains("size") ? osReleaseInfo["size"].get() / (1024.0f * 1024.0f) : 0.0f); + Text(Locale::Get("installDownloadMB"), osReleaseInfo.contains("size") ? osReleaseInfo["size"].get() / (1024.0f * 1024.0f) : 0.0f); PopStyleColor(); } @@ -425,7 +426,7 @@ const void RenderInstallPrompt(std::shared_ptr router, float xPos) PushStyleColor(ImGuiCol_Button, ImVec4(currentColor, currentColor, currentColor, 1.0f)); PushStyleColor(ImGuiCol_ButtonHovered, ImVec4(currentColor, currentColor, currentColor, 1.0f)); - if (Button("Install", ImVec2(xPos + GetContentRegionAvail().x, GetContentRegionAvail().y))) { + if (Button(Locale::Get("installButton"), ImVec2(xPos + GetContentRegionAvail().x, GetContentRegionAvail().y))) { auto path = steamPath; auto release = selectedRelease; auto osRelease = osReleaseInfo; diff --git a/src/routes/installer.cc b/src/routes/installer.cc index 931e6bf..6d09db6 100644 --- a/src/routes/installer.cc +++ b/src/routes/installer.cc @@ -39,6 +39,7 @@ #include #include #include +#include #include #include #include @@ -169,7 +170,7 @@ bool VerifyDownloadSignature(const std::string& file, const std::string& expecte TaskScheduler::TaskResult DownloadReleaseAssets(std::unique_ptr& progress, const nlohmann::json& releaseInfo, const nlohmann::json& osReleaseInfo) { /** Update the progress text */ - statusText = "Downloading Millennium..."; + statusText = Locale::Get("installerDownloading"); const auto fileSize = osReleaseInfo["size"].get(); const auto downloadUrl = osReleaseInfo["browser_download_url"].get(); @@ -194,7 +195,7 @@ TaskScheduler::TaskResult InstallReleaseAssets(std::unique_ptr& progress const std::string& steamPath) { /** Update the progress text */ - statusText = "Installing Millennium..."; + statusText = Locale::Get("installerInstalling"); const auto fileName = std::filesystem::temp_directory_path() / osReleaseInfo["name"].get(); double currentFileProgress = 0.0; @@ -241,8 +242,8 @@ void RenderFailed(float xPos, const std::string& reason) ImGuiIO& io = GetIO(); ImGuiViewport* viewport = GetMainViewport(); - const char* text = "Failed to install Millennium 😢"; - const char* subDescription = "View Troubleshooting Guide ↗"; + const char* text = Locale::Get("installerFailTitle"); + const char* subDescription = Locale::Get("installerTroubleshoot"); PushFont(io.Fonts->Fonts[1]); SetCursorPos({ xPos + (viewport->Size.x) / 2 - (CalcTextSize(text).x / 2), viewport->Size.y / 2 - ScaleY(55) }); @@ -315,9 +316,9 @@ const void RenderInstaller(std::shared_ptr router, float xPos) SetCursorPos({ xPos + (viewport->Size.x) / 2 - (CalcTextSize(statusText.c_str()).x / 2), viewport->Size.y / 2 + ScaleY(15) }); Text("%s", statusText.c_str()); } else { - const char* text = "You're all set! Thanks for using Millennium 💖"; - const char* description = "If you're new here, see further instructions when Steam® starts."; - const char* subDescription = "View Documentation ↗"; + const char* text = Locale::Get("installerSuccessTitle"); + const char* description = Locale::Get("installerSuccessDesc"); + const char* subDescription = Locale::Get("installerDocs"); PushFont(io.Fonts->Fonts[1]); SetCursorPos({ xPos + (viewport->Size.x) / 2 - (CalcTextSize(text).x / 2), viewport->Size.y / 2 - ScaleY(55) }); @@ -405,10 +406,10 @@ const void RenderInstaller(std::shared_ptr router, float xPos) const float cursorPosSave = GetCursorPosX(); SetCursorPosY(GetCursorPosY() - ScaleY(12)); - TextColored(ImVec4(0.322f, 0.325f, 0.341f, 1.0f), "Steam Homebrew & Millennium are not affiliated with"); + TextColored(ImVec4(0.322f, 0.325f, 0.341f, 1.0f), "%s", Locale::Get("installerDisclaimer1")); SetCursorPos({ cursorPosSave, GetCursorPosY() - ScaleY(20) }); - TextColored(ImVec4(0.322f, 0.325f, 0.341f, 1.0f), "Steam®, Valve, or any of their partners."); + TextColored(ImVec4(0.322f, 0.325f, 0.341f, 1.0f), "%s", Locale::Get("installerDisclaimer2")); SameLine(0); SetCursorPosY(GetCursorPosY() - ScaleY(25)); @@ -426,7 +427,7 @@ const void RenderInstaller(std::shared_ptr router, float xPos) SetCursorPosX(xPos + GetCursorPosX() + GetContentRegionAvail().x - ButtonWidth); - if (Button("Finish", { xPos + GetContentRegionAvail().x, GetContentRegionAvail().y })) { + if (Button(Locale::Get("installerFinish"), { xPos + GetContentRegionAvail().x, GetContentRegionAvail().y })) { StartSteamFromPath(g_steamPath); } diff --git a/src/routes/uninstall_select.cc b/src/routes/uninstall_select.cc index c10c418..b10178e 100644 --- a/src/routes/uninstall_select.cc +++ b/src/routes/uninstall_select.cc @@ -39,6 +39,7 @@ #include #include #include +#include #include #include #include @@ -106,6 +107,17 @@ ComponentProps MakeComponentProps(std::vector pathList) std::vector>> uninstallComponents; +/** Map stable internal IDs to locale keys */ +static const char* GetComponentLocaleName(const std::string& id) +{ + if (id == "Millennium") return Locale::Get("componentMillennium"); + if (id == "Custom Steam Components") return Locale::Get("componentCustomSteam"); + if (id == "Dependencies") return Locale::Get("componentDependencies"); + if (id == "Themes") return Locale::Get("componentThemes"); + if (id == "Plugins") return Locale::Get("componentPlugins"); + return id.c_str(); +} + // clang-format off void InitializeUninstaller() { @@ -225,7 +237,7 @@ const void RenderComponents() strPathList += path + "\n"; } - std::string formattedComponent = component + ": " + BytesToReadableFormat(props.byteSize); + std::string formattedComponent = std::string(GetComponentLocaleName(component)) + ": " + BytesToReadableFormat(props.byteSize); BeginChild(component.c_str(), { ScaleX(35), ScaleY(35) }, false, ImGuiWindowFlags_NoScrollbar | ImGuiWindowFlags_NoScrollWithMouse); { @@ -247,7 +259,7 @@ const void RenderComponents() PushStyleVar(ImGuiStyleVar_WindowRounding, 6); PushStyleVar(ImGuiStyleVar_Alpha, 1.f); PushStyleColor(ImGuiCol_PopupBg, ImVec4(0.098f, 0.102f, 0.11f, 1.0f)); - SetTooltip("%s", std::format("\"{}\" was excluded from the removal process.", component).c_str()); + SetTooltip(Locale::Get("uninstallExcluded"), GetComponentLocaleName(component)); PopStyleVar(3); PopStyleColor(); } @@ -297,7 +309,7 @@ const void RenderComponents() PushStyleVar(ImGuiStyleVar_WindowRounding, 6); PushStyleVar(ImGuiStyleVar_Alpha, 1.f); PushStyleColor(ImGuiCol_PopupBg, ImVec4(0.098f, 0.102f, 0.11f, 1.0f)); - SetTooltip("Failed to uninstall \"%s\".\n\nError: %s", component.c_str(), state.uninstallState.errorMessage.value_or("Unknown error").c_str()); + SetTooltip(Locale::Get("uninstallFailed"), GetComponentLocaleName(component), state.uninstallState.errorMessage.value_or("Unknown error").c_str()); PopStyleVar(3); PopStyleColor(); } @@ -343,12 +355,12 @@ const void RenderUninstallSelect(std::shared_ptr router, float xPos) BeginChild("##PromptContainer", ImVec2(PromptContainerWidth, PromptContainerHeight), false); { PushFont(io.Fonts->Fonts[1]); - Text("Uninstall Millennium 🙁"); + Text("%s", Locale::Get("uninstallTitle")); PopFont(); SetCursorPosY(GetCursorPosY() + ScaleY(5)); PushStyleColor(ImGuiCol_Text, ImVec4(0.422f, 0.425f, 0.441f, 1.0f)); - TextWrapped("Select the components you would like to remove."); + TextWrapped("%s", Locale::Get("uninstallSubtitle")); SetCursorPosY(GetCursorPosY() + ScaleY(30)); RenderComponents(); @@ -357,8 +369,8 @@ const void RenderUninstallSelect(std::shared_ptr router, float xPos) Separator(); SetCursorPosY(GetCursorPosY() + ScaleY(5)); - Text("Uninstalling from: %s", steamPath.string().c_str()); - Text("Reclaimed Disk Space: %s", GetReclaimedSpace().c_str()); + Text(Locale::Get("uninstallFrom"), steamPath.string().c_str()); + Text(Locale::Get("uninstallSpace"), GetReclaimedSpace().c_str()); PopStyleColor(); } @@ -376,7 +388,7 @@ const void RenderUninstallSelect(std::shared_ptr router, float xPos) PushStyleColor(ImGuiCol_ButtonHovered, ImVec4(currentColor, currentColor, currentColor, 1.0f)); PushStyleColor(ImGuiCol_ButtonActive, ImVec4(0.8f, 0.8f, 0.8f, 1.0f)); - if (Button("Exit", ImVec2(xPos + GetContentRegionAvail().x, GetContentRegionAvail().y))) { + if (Button(Locale::Get("uninstallExit"), ImVec2(xPos + GetContentRegionAvail().x, GetContentRegionAvail().y))) { std::exit(0); } @@ -415,7 +427,7 @@ const void RenderUninstallSelect(std::shared_ptr router, float xPos) PushStyleColor(ImGuiCol_ButtonHovered, ImVec4(currentColor, currentColor, currentColor, 1.0f)); PushStyleColor(ImGuiCol_ButtonActive, ImVec4(0.8f, 0.8f, 0.8f, 1.0f)); - if (Button("Uninstall", ImVec2(xPos + GetContentRegionAvail().x, GetContentRegionAvail().y))) { + if (Button(Locale::Get("uninstallButton"), ImVec2(xPos + GetContentRegionAvail().x, GetContentRegionAvail().y))) { std::cout << "Uninstalling components..." << std::endl; isUninstalling = true; diff --git a/src/util/locale.cc b/src/util/locale.cc new file mode 100644 index 0000000..a892a47 --- /dev/null +++ b/src/util/locale.cc @@ -0,0 +1,267 @@ +/** + * ================================================== + * _____ _ _ _ _ + * | |_| | |___ ___ ___|_|_ _ _____ + * | | | | | | | -_| | | | | | | + * |_|_|_|_|_|_|___|_|_|_|_|_|___|_|_|_| + * + * ================================================== + * + * Copyright (c) 2025 Project Millennium + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include +#include // generated by CMake from src/locales/*.json +#include +#include +#include +#include + +#ifdef _WIN32 +#include +#endif + +using TranslationMap = std::unordered_map; + +// ─── Embedded locale table ──────────────────────────────────────────────────── + +static const std::unordered_map kEmbeddedLocales = { + { "english", kLocaleData_english }, + { "russian", kLocaleData_russian }, + { "ukrainian", kLocaleData_ukrainian }, + { "german", kLocaleData_german }, + { "french", kLocaleData_french }, + { "spanish", kLocaleData_spanish }, + { "italian", kLocaleData_italian }, + { "polish", kLocaleData_polish }, + { "turkish", kLocaleData_turkish }, + { "swedish", kLocaleData_swedish }, + { "dutch", kLocaleData_dutch }, + { "brazilian", kLocaleData_brazilian }, + { "hungarian", kLocaleData_hungarian }, + { "indonesian", kLocaleData_indonesian }, + { "vietnamese", kLocaleData_vietnamese }, + { "schinese", kLocaleData_schinese }, + { "tchinese", kLocaleData_tchinese }, + { "japanese", kLocaleData_japanese }, + { "koreana", kLocaleData_koreana }, + { "latam", kLocaleData_latam }, + { "bulgarian", kLocaleData_bulgarian }, + { "danish", kLocaleData_danish }, +}; + +// ─── Static state ───────────────────────────────────────────────────────────── + +static std::string s_currentLang = "english"; +static TranslationMap s_currentTranslations; +static TranslationMap s_englishTranslations; + +static const std::vector s_languages = { + // Latin-script languages (sorted alphabetically for the dropdown) + { "brazilian", "Portugu\xC3\xAAs do Brasil" }, + { "danish", "Dansk" }, + { "dutch", "Nederlands" }, + { "english", "English" }, + { "french", "Fran\xC3\xA7" "ais" }, + { "german", "Deutsch" }, + { "hungarian", "Magyar" }, + { "indonesian", "Bahasa Indonesia" }, + { "italian", "Italiano" }, + { "latam", "Espa\xC3\xB1ol Latinoam." }, + { "polish", "Polski" }, + { "spanish", "Espa\xC3\xB1ol" }, + { "swedish", "Svenska" }, + { "turkish", "T\xC3\xBCrk\xC3\xA7" "e" }, + { "vietnamese", "Ti\xE1\xBA\xBFng Vi\xE1\xBB\x87t" }, + // Cyrillic-script languages + { "bulgarian", "\xD0\x91\xD1\x8A\xD0\xBB\xD0\xB3\xD0\xB0\xD1\x80\xD1\x81\xD0\xBA\xD0\xB8" }, + { "russian", "\xD0\xA0\xD1\x83\xD1\x81\xD1\x81\xD0\xBA\xD0\xB8\xD0\xB9" }, + { "ukrainian", "\xD0\xA3\xD0\xBA\xD1\x80\xD0\xB0\xD1\x97\xD0\xBD\xD1\x81\xD1\x8C\xD0\xBA\xD0\xB0" }, + // CJK languages (require CJK font support to render correctly) + { "schinese", "\xE7\xAE\x80\xE4\xBD\x93\xE4\xB8\xAD\xE6\x96\x87" }, + { "tchinese", "\xE7\xB9\x81\xE9\xAB\x94\xE4\xB8\xAD\xE6\x96\x87" }, + { "japanese", "\xE6\x97\xA5\xE6\x9C\xAC\xE8\xAA\x9E" }, + { "koreana", "\xED\x95\x9C\xEA\xB5\xAD\xEC\x96\xB4" }, +}; + +// ─── JSON parsing ───────────────────────────────────────────────────────────── + +static TranslationMap ParseLocale(const char* jsonStr) +{ + TranslationMap result; + if (!jsonStr || *jsonStr == '\0') return result; + + try { + nlohmann::json j = nlohmann::json::parse(jsonStr); + for (auto& [key, value] : j.items()) { + if (value.is_string()) + result[key] = value.get(); + } + } catch (...) {} + + return result; +} + +static TranslationMap LoadLanguage(const std::string& langId) +{ + auto it = kEmbeddedLocales.find(langId); + if (it == kEmbeddedLocales.end()) return {}; + return ParseLocale(it->second); +} + +// ─── Platform language detection ────────────────────────────────────────────── + +static std::string DetectFromLangString(const std::string& lang) +{ + if (lang.size() < 2) return "english"; + std::string code = lang.substr(0, 2); + + if (code == "ru") return "russian"; + if (code == "uk") return "ukrainian"; + if (code == "de") return "german"; + if (code == "fr") return "french"; + if (code == "it") return "italian"; + if (code == "pl") return "polish"; + if (code == "tr") return "turkish"; + if (code == "bg") return "bulgarian"; + if (code == "sv") return "swedish"; + if (code == "nl") return "dutch"; + if (code == "hu") return "hungarian"; + if (code == "id") return "indonesian"; + if (code == "vi") return "vietnamese"; + if (code == "da") return "danish"; + if (code == "ja") return "japanese"; + if (code == "ko") return "koreana"; + if (code == "pt") return "brazilian"; // pt_PT falls back to Brazilian (closest available) + if (code == "es") { + // es_MX, es_AR, etc. → latam; es_ES → spanish + if (lang.size() >= 5 && (lang.substr(3, 2) == "ES" || lang.substr(3, 2) == "es")) + return "spanish"; + return "latam"; + } + if (code == "zh") { + // zh_CN → schinese, zh_TW → tchinese + if (lang.size() >= 5 && (lang.substr(3, 2) == "TW" || lang.substr(3, 2) == "tw" + || lang.substr(3, 2) == "HK" || lang.substr(3, 2) == "hk")) + return "tchinese"; + return "schinese"; + } + return "english"; +} + +std::string Locale::DetectSystemLanguage() +{ +#ifdef _WIN32 + LANGID langId = GetUserDefaultUILanguage(); + WORD primary = PRIMARYLANGID(langId); + WORD sub = SUBLANGID(langId); + + switch (primary) { + case LANG_RUSSIAN: return "russian"; + case LANG_UKRAINIAN: return "ukrainian"; + case LANG_GERMAN: return "german"; + case LANG_FRENCH: return "french"; + case LANG_ITALIAN: return "italian"; + case LANG_POLISH: return "polish"; + case LANG_TURKISH: return "turkish"; + case LANG_BULGARIAN: return "bulgarian"; + case LANG_SWEDISH: return "swedish"; + case LANG_DUTCH: return "dutch"; + case LANG_HUNGARIAN: return "hungarian"; + case LANG_INDONESIAN: return "indonesian"; + case LANG_VIETNAMESE: return "vietnamese"; + case LANG_DANISH: return "danish"; + case LANG_JAPANESE: return "japanese"; + case LANG_KOREAN: return "koreana"; + case LANG_SPANISH: + // SUBLANG_SPANISH = 1 (Spain), anything else = Latin America + return (sub == SUBLANG_SPANISH) ? "spanish" : "latam"; + case LANG_PORTUGUESE: + // pt_PT falls back to Brazilian (closest available) + return "brazilian"; + case LANG_CHINESE: + // SUBLANG_CHINESE_SIMPLIFIED = 2, SUBLANG_CHINESE_TRADITIONAL = 1 + return (sub == SUBLANG_CHINESE_SIMPLIFIED) ? "schinese" : "tchinese"; + default: return "english"; + } +#else + const char* lang = getenv("LANG"); + if (!lang) lang = getenv("LANGUAGE"); + if (!lang) return "english"; + return DetectFromLangString(std::string(lang)); +#endif +} + +// ─── Public API ─────────────────────────────────────────────────────────────── + +void Locale::Initialize() +{ + s_englishTranslations = LoadLanguage("english"); + s_currentLang = DetectSystemLanguage(); + s_currentTranslations = (s_currentLang == "english") + ? s_englishTranslations + : LoadLanguage(s_currentLang); +} + +void Locale::SetLanguage(const std::string& langId) +{ + s_currentLang = langId; + s_currentTranslations = (langId == "english") + ? s_englishTranslations + : LoadLanguage(langId); +} + +const std::string& Locale::GetCurrentLanguageId() +{ + return s_currentLang; +} + +const char* Locale::Get(const std::string& key) +{ + { + auto it = s_currentTranslations.find(key); + if (it != s_currentTranslations.end()) + return it->second.c_str(); + } + { + auto it = s_englishTranslations.find(key); + if (it != s_englishTranslations.end()) + return it->second.c_str(); + } + return key.c_str(); +} + +const std::vector& Locale::GetAvailableLanguages() +{ + return s_languages; +} + +bool Locale::UsesCyrillic() +{ + return s_currentLang == "russian" || s_currentLang == "ukrainian" + || s_currentLang == "bulgarian"; +} + +bool Locale::UsesCJK() +{ + return s_currentLang == "japanese" || s_currentLang == "schinese" + || s_currentLang == "tchinese" || s_currentLang == "koreana"; +} diff --git a/src/window/renderer.cc b/src/window/renderer.cc index 7b33046..291b026 100644 --- a/src/window/renderer.cc +++ b/src/window/renderer.cc @@ -40,6 +40,9 @@ #include #include #include +#include +#include +#include #include #include #include @@ -87,6 +90,11 @@ void FrameBufferSizeCallback(GLFWwindow* window, int width, int height) shouldSetupScaling.store(true, std::memory_order_relaxed); } +void RequestFontRebuild() +{ + shouldSetupScaling.store(true, std::memory_order_relaxed); +} + void SetupImGuiScaling(GLFWwindow* window) { SetupDPI(window); @@ -104,15 +112,227 @@ void SetupImGuiScaling(GLFWwindow* window) ImFontConfig mem_cfg; mem_cfg.FontDataOwnedByAtlas = false; + // ── CJK embedded name-only fonts ───────────────────────────────────────── + // Always merged: tiny subsets (~21 KB total) covering only the characters + // used in language-selector display names (简体中文 繁體中文 日本語 한국어). + ImFontConfig cjk_name_cfg; + cjk_name_cfg.MergeMode = true; + cjk_name_cfg.FontDataOwnedByAtlas = false; + + static const ImWchar cjk_ideograph_ranges[] = { + 0x4E00, 0x9FFF, // CJK Unified Ideographs (covers all 9 name chars) + 0, + }; + static const ImWchar cjk_hangul_ranges[] = { + 0xAC00, 0xD7AF, // Hangul Syllables (한국어) + 0, + }; + + // ── System CJK font for full UI rendering when a CJK locale is active ──── + // Searched in platform-specific locations; gracefully skipped if absent. + static const ImWchar cjk_full_ranges[] = { + 0x3040, 0x30FF, // Hiragana + Katakana + 0x4E00, 0x9FFF, // CJK Unified Ideographs + 0xAC00, 0xD7AF, // Hangul Syllables + 0xFF00, 0xFFEF, // Halfwidth/Fullwidth Forms + 0, + }; + + // Returns the first existing path from a list. + auto findFont = [](std::initializer_list candidates) -> std::string { + for (const char* p : candidates) + if (p && std::filesystem::exists(p)) return p; + return {}; + }; + +#if !defined(_WIN32) + // Ask fontconfig for the best font for a given language tag. + // Available on all major Linux distros; on macOS requires Homebrew fontconfig. + // Returns empty string if fc-match is not installed or returns a Latin fallback. + auto fcMatch = [](const char* langTag) -> std::string { + std::string cmd = std::string("fc-match --format='%{file}' ':lang=") + langTag + "' 2>/dev/null"; + FILE* pipe = popen(cmd.c_str(), "r"); + if (!pipe) return {}; + char buf[1024] = {}; + if (!fgets(buf, sizeof(buf), pipe)) { pclose(pipe); return {}; } + pclose(pipe); + std::string path(buf); + while (!path.empty() && (path.back() == '\n' || path.back() == '\r' || path.back() == ' ')) + path.pop_back(); + // Reject results that are just the Latin fallback (e.g. DejaVuSans) — + // fontconfig always returns *something* even when no CJK font is installed. + if (path.find("DejaVu") != std::string::npos) return {}; + if (path.find("LiberationSans") != std::string::npos) return {}; + if (path.find("FreeSans") != std::string::npos) return {}; + return std::filesystem::exists(path) ? path : std::string{}; + }; +#endif + + const std::string cjkSystemFont = [&]() -> std::string { + const std::string& lang = Locale::GetCurrentLanguageId(); + if (!Locale::UsesCJK()) return {}; + +#if defined(_WIN32) + if (lang == "schinese") + return findFont({ "C:/Windows/Fonts/msyh.ttc", "C:/Windows/Fonts/simsun.ttc" }); + if (lang == "tchinese") + return findFont({ "C:/Windows/Fonts/msjh.ttc", "C:/Windows/Fonts/msyh.ttc" }); + if (lang == "japanese") + return findFont({ "C:/Windows/Fonts/YuGothL.ttc", "C:/Windows/Fonts/msgothic.ttc" }); + if (lang == "koreana") + return findFont({ "C:/Windows/Fonts/malgun.ttf" }); + return {}; + +#elif defined(__APPLE__) + // macOS: try fontconfig first (available via Homebrew), then fall back to + // known system font paths. PingFang covers both Chinese variants. + // Hiragino Sans GB covers Japanese (ASCII filename, ships with macOS). + if (lang == "schinese" || lang == "tchinese") { + auto r = fcMatch("zh"); + return r.empty() ? findFont({ + "/System/Library/Fonts/PingFang.ttc", + "/Library/Fonts/Arial Unicode MS.ttf" + }) : r; + } + if (lang == "japanese") { + auto r = fcMatch("ja"); + return r.empty() ? findFont({ + "/System/Library/Fonts/Hiragino Sans GB.ttc", + "/Library/Fonts/Arial Unicode MS.ttf" + }) : r; + } + if (lang == "koreana") { + auto r = fcMatch("ko"); + return r.empty() ? findFont({ + "/System/Library/Fonts/AppleSDGothicNeo.ttc", + "/Library/Fonts/Arial Unicode MS.ttf" + }) : r; + } + return {}; + +#else + // Linux: fontconfig is virtually always available. + if (lang == "schinese" || lang == "tchinese") return fcMatch("zh"); + if (lang == "japanese") return fcMatch("ja"); + if (lang == "koreana") return fcMatch("ko"); + return {}; +#endif + }(); + + // ── Vietnamese system fonts (Arial/Liberation – loaded as primary) ──────── + // When Vietnamese is active: + // Fonts[0] = Arial Regular (primary, full coverage — no Geist mixing) + // Fonts[1] = Arial Bold (primary) + // Fonts[3] = Geist + CJK names — pushed explicitly in the dropdown so + // it keeps looking the same as English mode. + const std::string vietSystemFont = [&]() -> std::string { + if (Locale::GetCurrentLanguageId() != "vietnamese") return {}; +#if defined(_WIN32) + return findFont({ "C:/Windows/Fonts/arial.ttf" }); +#elif defined(__APPLE__) + // fcMatch works when fontconfig is installed (e.g. via Homebrew). + // HelveticaNeue and LucidaGrande ship with every macOS and cover + // Latin Extended Additional (all Vietnamese diacritics). + { auto r = fcMatch("vi"); if (!r.empty()) return r; } + return findFont({ + "/Library/Fonts/Arial.ttf", + "/System/Library/Fonts/Supplemental/Arial.ttf", + "/System/Library/Fonts/HelveticaNeue.ttc", + "/System/Library/Fonts/LucidaGrande.ttc", + }); +#else + return findFont({ + "/usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf", + "/usr/share/fonts/truetype/msttcorefonts/Arial.ttf", + "/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf", + }); +#endif + }(); + + const std::string vietSystemFontBold = [&]() -> std::string { + if (Locale::GetCurrentLanguageId() != "vietnamese") return {}; +#if defined(_WIN32) + return findFont({ "C:/Windows/Fonts/arialbd.ttf" }); +#elif defined(__APPLE__) + return findFont({ + "/Library/Fonts/Arial Bold.ttf", + "/System/Library/Fonts/Supplemental/Arial Bold.ttf", + // HelveticaNeue.ttc Bold is at a non-zero TTC index — can't pick it + // without FontNo; falls back to vietSystemFont (Regular) below. + }); +#else + return findFont({ + "/usr/share/fonts/truetype/liberation/LiberationSans-Bold.ttf", + "/usr/share/fonts/truetype/msttcorefonts/Arial_Bold.ttf", + "/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf", + }); +#endif + }(); + + const bool isVietnamese = !vietSystemFont.empty(); + + // Ranges for the 2 glyphs missing from Geist, used in the Geist dropdown + // font (Fonts[3]) so the "Tieng Viet" preview renders without boxes. + static const ImWchar viet_preview_ranges[] = { + 0x1EBF, 0x1EBF, // ế + 0x1EC7, 0x1EC7, // ệ + 0, + }; + ImFontConfig viet_preview_cfg; + viet_preview_cfg.MergeMode = true; + viet_preview_cfg.FontDataOwnedByAtlas = false; + io.Fonts->Clear(); - io.Fonts->AddFontFromMemoryTTF((void*)GeistVariable, sizeof(GeistVariable), 16.0f * scaleFactor, &mem_cfg); + + /** Fonts[0] – UI regular: Arial when Vietnamese, Geist otherwise */ + if (isVietnamese) { + io.Fonts->AddFontFromFileTTF(vietSystemFont.c_str(), 16.0f * scaleFactor, nullptr); + } else { + io.Fonts->AddFontFromMemoryTTF((void*)GeistVariable, sizeof(GeistVariable), 16.0f * scaleFactor, &mem_cfg); + io.Fonts->AddFontFromMemoryTTF((void*)CJKNames_Ideographs, sizeof(CJKNames_Ideographs), 16.0f * scaleFactor, &cjk_name_cfg, cjk_ideograph_ranges); + io.Fonts->AddFontFromMemoryTTF((void*)CJKNames_Korean, sizeof(CJKNames_Korean), 16.0f * scaleFactor, &cjk_name_cfg, cjk_hangul_ranges); + if (!cjkSystemFont.empty()) + io.Fonts->AddFontFromFileTTF(cjkSystemFont.c_str(), 16.0f * scaleFactor, &cjk_name_cfg, cjk_full_ranges); + } if (std::filesystem::exists(fontPath)) io.Fonts->AddFontFromFileTTF(fontPath, 14.0f * scaleFactor, &cfg); - io.Fonts->AddFontFromMemoryTTF((void*)Geist_Bold, sizeof(Geist_Bold), 18.0f * scaleFactor, &mem_cfg); + /** Fonts[1] – UI bold: Arial Bold when Vietnamese, Geist Bold otherwise */ + if (isVietnamese) { + const std::string& boldSrc = vietSystemFontBold.empty() ? vietSystemFont : vietSystemFontBold; + io.Fonts->AddFontFromFileTTF(boldSrc.c_str(), 18.0f * scaleFactor, nullptr); + } else { + io.Fonts->AddFontFromMemoryTTF((void*)Geist_Bold, sizeof(Geist_Bold), 18.0f * scaleFactor, &mem_cfg); + io.Fonts->AddFontFromMemoryTTF((void*)CJKNames_Ideographs, sizeof(CJKNames_Ideographs), 18.0f * scaleFactor, &cjk_name_cfg, cjk_ideograph_ranges); + io.Fonts->AddFontFromMemoryTTF((void*)CJKNames_Korean, sizeof(CJKNames_Korean), 18.0f * scaleFactor, &cjk_name_cfg, cjk_hangul_ranges); + if (!cjkSystemFont.empty()) + io.Fonts->AddFontFromFileTTF(cjkSystemFont.c_str(), 18.0f * scaleFactor, &cjk_name_cfg, cjk_full_ranges); + } if (std::filesystem::exists(fontPath)) io.Fonts->AddFontFromFileTTF(fontPath, 14.0f * scaleFactor, &cfg); + /** Fonts[2] – VietName_Standalone: Arial covering every glyph in "Tieng Viet". + * Pushed via PushFont in the dropdown for the Vietnamese item so it renders + * from one typeface with no Geist mixing. */ + ImFontConfig viet_sa_cfg; + viet_sa_cfg.FontDataOwnedByAtlas = false; + io.Fonts->AddFontFromMemoryTTF((void*)VietName_Standalone, sizeof(VietName_Standalone), + 16.0f * scaleFactor, &viet_sa_cfg); + + /** Fonts[3] – Geist + VietName preview glyphs (ế, ệ) + CJK names. + * Added only when Vietnamese is active. The dropdown pushes this font around + * the entire combo so it looks identical to English mode. */ + if (isVietnamese) { + io.Fonts->AddFontFromMemoryTTF((void*)GeistVariable, sizeof(GeistVariable), + 16.0f * scaleFactor, &mem_cfg); + io.Fonts->AddFontFromMemoryTTF((void*)VietName_Standalone, sizeof(VietName_Standalone), + 16.0f * scaleFactor, &viet_preview_cfg, viet_preview_ranges); + io.Fonts->AddFontFromMemoryTTF((void*)CJKNames_Ideographs, sizeof(CJKNames_Ideographs), + 16.0f * scaleFactor, &cjk_name_cfg, cjk_ideograph_ranges); + io.Fonts->AddFontFromMemoryTTF((void*)CJKNames_Korean, sizeof(CJKNames_Korean), + 16.0f * scaleFactor, &cjk_name_cfg, cjk_hangul_ranges); + } + /** Explicitly set FreeType as the font loader to ensure color emoji support */ io.Fonts->SetFontLoader(ImGuiFreeType::GetFontLoader()); io.Fonts->Build(); diff --git a/tools/.gitignore b/tools/.gitignore new file mode 100644 index 0000000..c18dd8d --- /dev/null +++ b/tools/.gitignore @@ -0,0 +1 @@ +__pycache__/ diff --git a/tools/generate_font_headers.py b/tools/generate_font_headers.py new file mode 100644 index 0000000..1a5be35 --- /dev/null +++ b/tools/generate_font_headers.py @@ -0,0 +1,195 @@ +#!/usr/bin/env python3 +""" +Generate embedded font headers for the Installer. + +Produces two C++ headers in src/include/: + + viet_name.h + VietName_Standalone – ALL glyphs of "Tieng Viet" from arial.ttf, + loaded as Fonts[2] and pushed via PushFont in the + language-selector dropdown so the Vietnamese item + renders from a single typeface with no Geist mix. + When Vietnamese is the active language the full system Arial/Bold is + loaded as the PRIMARY font so every glyph in the UI comes from one + consistent typeface. + + cjk_names.h + Minimal CJK subsets covering only the characters used in the + language-selector display names: 简体中文 繁體中文 日本語 한국어 + +Original commands (Windows, session 2025-05): + pyftsubset arial.ttf --unicodes=U+0020,U+0054,U+0056,U+0067,U+0069,U+006E,U+0074,U+1EBF,U+1EC7 --no-layout-closure + pyftsubset msyh.ttc --text="简体中文繁體日本語" --font-number=0 --no-layout-closure + pyftsubset malgun.ttf --text="한국어" --no-layout-closure + +Requirements: + pip install fonttools brotli + +Usage: + python tools/generate_font_headers.py +""" + +import sys +import os +import tempfile +import shutil +import subprocess +import platform + +REPO_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) +OUT_DIR = os.path.join(REPO_ROOT, "src", "include") + +# ── Font candidates per platform ───────────────────────────────────────────── + +def find_first(*paths): + for p in paths: + if p and os.path.exists(p): + return p + return None + +def fc_match(lang_tag): + """Ask fontconfig for the best font for a language tag (Linux/macOS).""" + try: + result = subprocess.run( + ["fc-match", "--format=%{file}", f":lang={lang_tag}"], + capture_output=True, text=True, timeout=5 + ) + path = result.stdout.strip() + for fallback in ("DejaVu", "LiberationSans", "FreeSans"): + if fallback in path: + return None + return path if path and os.path.exists(path) else None + except Exception: + return None + +system = platform.system() + +if system == "Windows": + FONTS = os.environ.get("WINDIR", "C:/Windows") + "/Fonts" + LATIN_FONT_REG = find_first(f"{FONTS}/arial.ttf") + CJK_IDEO_FONT = find_first(f"{FONTS}/msyh.ttc", f"{FONTS}/simsun.ttc") + CJK_IDEO_FNUM = 0 # font-number inside the TTC collection + CJK_KOREAN_FONT = find_first(f"{FONTS}/malgun.ttf") +elif system == "Darwin": + LATIN_FONT_REG = find_first( + "/Library/Fonts/Arial.ttf", + "/System/Library/Fonts/Supplemental/Arial.ttf", + ) + CJK_IDEO_FONT = fc_match("zh") or find_first("/System/Library/Fonts/PingFang.ttc") + CJK_IDEO_FNUM = 0 + CJK_KOREAN_FONT = fc_match("ko") or find_first("/System/Library/Fonts/AppleSDGothicNeo.ttc") +else: # Linux + LATIN_FONT_REG = find_first( + "/usr/share/fonts/truetype/msttcorefonts/Arial.ttf", + "/usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf", + ) + CJK_IDEO_FONT = fc_match("zh") + CJK_IDEO_FNUM = 0 + CJK_KOREAN_FONT = fc_match("ko") + +# ── pyftsubset wrapper ──────────────────────────────────────────────────────── + +def run_pyftsubset(source, output, *, unicodes=None, text=None, font_number=None): + cmd = [sys.executable, "-m", "fontTools.subset", source, + f"--output-file={output}", "--no-layout-closure", + "--ignore-missing-unicodes"] + if unicodes: + cmd.append(f"--unicodes={unicodes}") + if text: + cmd.append(f"--text={text}") + if font_number is not None: + cmd.append(f"--font-number={font_number}") + subprocess.run(cmd, check=True) + +# ── C++ header writer ───────────────────────────────────────────────────────── + +def bytes_to_cpp_array(name, data): + lines = [f"static const unsigned char {name}[] = {{"] + for i in range(0, len(data), 16): + chunk = data[i:i + 16] + sep = "," if i + 16 < len(data) else "" + lines.append(" " + ", ".join(f"0x{b:02X}" for b in chunk) + sep) + lines.append("};") + return "\n".join(lines) + +# ── Main ────────────────────────────────────────────────────────────────────── + +def main(): + errors = [] + if not LATIN_FONT_REG: + errors.append("Arial not found (needed for viet_name.h)") + if not CJK_IDEO_FONT: + errors.append("CJK ideograph font not found (needed for cjk_names.h)") + if not CJK_KOREAN_FONT: + errors.append("Korean font not found (needed for cjk_names.h)") + if errors: + print("ERROR: missing fonts:") + for e in errors: print(f" - {e}") + sys.exit(1) + + tmp = tempfile.mkdtemp() + try: + os.makedirs(OUT_DIR, exist_ok=True) + + # ── viet_name.h ─────────────────────────────────────────────────────── + # All glyphs of "Tieng Viet" from arial.ttf. + # Loaded as Fonts[2] and pushed per-item in the dropdown so the + # Vietnamese name renders from one typeface with no Geist mixing. + # Codepoints: space T V g i n t ef(U+1EBF) e-comb(U+1EC7) + VIET_SA_UNICODES = "U+0020,U+0054,U+0056,U+0067,U+0069,U+006E,U+0074,U+1EBF,U+1EC7" + print(f"viet_name.h <-{LATIN_FONT_REG}") + tmp_viet_sa = os.path.join(tmp, "viet_name_standalone.ttf") + run_pyftsubset(LATIN_FONT_REG, tmp_viet_sa, unicodes=VIET_SA_UNICODES) + viet_sa_data = open(tmp_viet_sa, "rb").read() + + out = os.path.join(OUT_DIR, "viet_name.h") + with open(out, "w", encoding="utf-8") as f: + f.write("// Auto-generated — do not edit.\n") + f.write("// Arial subset covering all glyphs of \"Tieng Viet\" (U+1EBF, U+1EC7 + ASCII).\n") + f.write("// Loaded as Fonts[2]; pushed via PushFont in the dropdown so the\n") + f.write("// Vietnamese item renders from a single typeface with no Geist mixing.\n") + f.write("// Regenerate: python tools/generate_font_headers.py\n") + f.write("#pragma once\n\n") + f.write(bytes_to_cpp_array("VietName_Standalone", viet_sa_data)) + f.write("\n") + print(f" ->{os.path.relpath(out, REPO_ROOT)} ({len(viet_sa_data):,} bytes)") + + # ── cjk_names.h — ideographs (msyh.ttc, font 0) ────────────────────── + IDEO_CHARS = "简体中文繁體日本語" + KOREAN_CHARS = "한국어" + + print(f"cjk_names.h (ideographs) <-{CJK_IDEO_FONT}") + tmp_ideo = os.path.join(tmp, "cjk_ideographs.ttf") + run_pyftsubset(CJK_IDEO_FONT, tmp_ideo, + text=IDEO_CHARS, font_number=CJK_IDEO_FNUM) + ideo_data = open(tmp_ideo, "rb").read() + + print(f"cjk_names.h (Korean) <-{CJK_KOREAN_FONT}") + tmp_ko = os.path.join(tmp, "cjk_korean.ttf") + run_pyftsubset(CJK_KOREAN_FONT, tmp_ko, text=KOREAN_CHARS) + korean_data = open(tmp_ko, "rb").read() + + out = os.path.join(OUT_DIR, "cjk_names.h") + with open(out, "w", encoding="utf-8") as f: + f.write("// Auto-generated — do not edit.\n") + f.write("// Minimal CJK font subsets for language-selector display names.\n") + f.write(f"// Ideograph source: {os.path.basename(CJK_IDEO_FONT)}" + f" chars: {IDEO_CHARS}\n") + f.write(f"// Korean source: {os.path.basename(CJK_KOREAN_FONT)}" + f" chars: {KOREAN_CHARS}\n") + f.write("// Regenerate: python tools/generate_font_headers.py\n") + f.write("#pragma once\n\n") + f.write(bytes_to_cpp_array("CJKNames_Ideographs", ideo_data)) + f.write("\n\n") + f.write(bytes_to_cpp_array("CJKNames_Korean", korean_data)) + f.write("\n") + print(f" ->{os.path.relpath(out, REPO_ROOT)}" + f" (ideographs {len(ideo_data):,} B + Korean {len(korean_data):,} B)") + + finally: + shutil.rmtree(tmp) + + print("\nDone. Rebuild the project to pick up the new headers.") + +if __name__ == "__main__": + main()