├── LICENSE ├── README.md ├── codehandler ├── Makefile ├── codehandler310.ld ├── codehandler400.ld ├── codehandler410.ld ├── codehandler500.ld ├── codehandler532.ld ├── codehandler550.ld ├── main.c └── main.h ├── colors.py ├── common.py ├── installer ├── Makefile └── src │ ├── asm.s │ ├── codehandler310.h │ ├── codehandler400.h │ ├── codehandler410.h │ ├── codehandler500.h │ ├── codehandler532.h │ ├── codehandler550.h │ ├── link.ld │ ├── loader.c │ └── loader.h ├── kern.py ├── octoling.py ├── purge.py ├── syshax.py └── tcpgecko.py /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 wiiudev 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | # pyGecko 3 | Python library for use with TCPGecko. Requires kernel exploit to use. 4 | 5 | **Files:** 6 | 7 | tcpgecko.py is the actual library, can use just it in IDLE (only tested on python 2) 8 | 9 | octoling.py is a sample script to use it, to swap Inkling model with Octolings in Splatoon and edit money. 10 | 11 | common.py is another library to make things easier to work with. 12 | 13 | codehandler is in /codehandler, just run make 14 | 15 | **Credits:** 16 | 17 | Python library: NWPlayer123 18 | 19 | TCPGecko codehandler: Chadderz, Marionumber1 20 | -------------------------------------------------------------------------------- /codehandler/Makefile: -------------------------------------------------------------------------------- 1 | 2 | PATH := $(DEVKITPPC)/bin:$(PATH) 3 | 4 | PREFIX ?= powerpc-eabi- 5 | LD := $(PREFIX)ld 6 | AS := $(PREFIX)as 7 | CC := $(PREFIX)gcc 8 | OBJDUMP ?= $(PREFIX)objdump 9 | OBJCOPY ?= $(PREFIX)objcopy 10 | 11 | SFLAGS := -mgekko -mregnames 12 | 13 | # -O2: optimise lots 14 | # -Wall: generate lots of warnings 15 | # -x c: compile as C code 16 | # -std=gnu99: use the C99 standard with GNU extensions 17 | # -ffreestanding: we don't have libc; don't expect we do 18 | # -mrvl: enable wii/gamecube compilation 19 | # -mcpu=750: enable processor specific compilation 20 | # -meabi: enable eabi specific compilation 21 | # -mhard-float: enable hardware floating point instructions 22 | # -fshort-wchar: use 16 bit whcar_t type in keeping with Wii executables 23 | # -msdata-none: do not use r2 or r13 as small data areas 24 | # -memb: enable embedded application specific compilation 25 | # -ffunction-sections: split up functions so linker can garbage collect 26 | # -fdata-sections: split up data so linker can garbage collect 27 | CFLAGS := -O2 -Wall -x c -std=gnu99 \ 28 | -ffreestanding \ 29 | -mrvl -mcpu=750 -meabi -mhard-float -fshort-wchar \ 30 | -msdata=none -memb -ffunction-sections -fdata-sections \ 31 | -Wno-unknown-pragmas -Wno-strict-aliasing 32 | 33 | SRC := $(wildcard *.S) $(wildcard *.c) 34 | OBJ := $(patsubst %.S,build/%.o,$(patsubst %.c,build/%.o,$(SRC))) 35 | 36 | # Simulate an order only dependency 37 | BUILD_REQ := $(filter-out $(wildcard build),build) 38 | BIN_REQ := $(filter-out $(wildcard bin),bin) 39 | 40 | all: bin/codehandler310.h bin/codehandler400.h bin/codehandler410.h bin/codehandler500.h bin/codehandler532.h bin/codehandler550.h 41 | 42 | bin/codehandler%.h: build/codehandler%.text.bin $(BIN_REQ) 43 | xxd -i $< | sed "s/unsigned/static const unsigned/g;s/ler$*/ler/g;s/build_//g" > $@ 44 | 45 | build/codehandler%.text.bin: build/codehandler%.elf $(BUILD_REQ) 46 | $(OBJCOPY) -j .text -O binary $< $@ 47 | 48 | build/codehandler%.elf: codehandler%.ld $(OBJ) $(BUILD_REQ) 49 | $(LD) -T $< $(OBJ) 50 | 51 | build/%.o: %.c $(BUILD_REQ) 52 | $(CC) -c $(CFLAGS) -o $@ $< 53 | build/%.o: %.S $(BUILD_REQ) 54 | $(AS) $(SFLAGS) -o $@ $< 55 | 56 | bin: 57 | mkdir $@ 58 | build: 59 | mkdir $@ 60 | 61 | clean: 62 | rm -rf $(wildcard build) $(wildcard bin) 63 | -------------------------------------------------------------------------------- /codehandler/codehandler310.ld: -------------------------------------------------------------------------------- 1 | OUTPUT(build/codehandler310.elf); 2 | 3 | SECTIONS { 4 | .text 0x011D3000 : { 5 | *(.text._start); 6 | *(.text*); 7 | } 8 | /DISCARD/ : { 9 | *(*); 10 | } 11 | } 12 | 13 | PROVIDE(ver = 310); 14 | 15 | PROVIDE(DCFlushRange = 0x0101DA3C); 16 | PROVIDE(memset = 0x0102B5B0); 17 | PROVIDE(memcpy = 0x0102B5C4); 18 | PROVIDE(__gh_errno_ptr = 0x010349DC); 19 | PROVIDE(OSCreateThread = 0x010358B8); 20 | PROVIDE(OSResumeThread = 0x01035D88); 21 | PROVIDE(socket_lib_init = 0x010A7EE0); 22 | PROVIDE(accept = 0x010A80D0); 23 | PROVIDE(bind = 0x010A8250); 24 | PROVIDE(listen = 0x010A8550); 25 | PROVIDE(recv = 0x010A8670); 26 | PROVIDE(send = 0x010A8B98); 27 | PROVIDE(socket = 0x010A93EC); 28 | PROVIDE(socketclose = 0x010A9534); 29 | PROVIDE(GX2WaitForVsync = 0x01142148); 30 | PROVIDE(entry_point = 0x1005BBC0); 31 | PROVIDE(MEMAllocFromDefaultHeapEx = 0x100479AC); 32 | PROVIDE(MEMAllocFromDefaultHeap = 0x100A88A0); 33 | PROVIDE(MEMFreeToDefaultHeap = 0x100A88A4); 34 | PROVIDE(OSDynLoad_FindExport = 0x01023D88); 35 | PROVIDE(OSDynLoad_Acquire = 0x01022CBC); 36 | -------------------------------------------------------------------------------- /codehandler/codehandler400.ld: -------------------------------------------------------------------------------- 1 | OUTPUT(build/codehandler400.elf); 2 | 3 | SECTIONS { 4 | .text 0x011DD000 : { 5 | *(.text._start); 6 | *(.text*); 7 | } 8 | /DISCARD/ : { 9 | *(*); 10 | } 11 | } 12 | 13 | PROVIDE(ver = 400); 14 | 15 | PROVIDE(DCFlushRange = 0x01020EAC); 16 | PROVIDE(memset = 0x01030E84); 17 | PROVIDE(memcpy = 0x01030E98); 18 | PROVIDE(__gh_errno_ptr = 0x0103A434); 19 | PROVIDE(OSCreateThread = 0x0103B5D0); 20 | PROVIDE(OSResumeThread = 0x0103BAB4); 21 | PROVIDE(socket_lib_init = 0x010B44D4); 22 | PROVIDE(accept = 0x010B4720); 23 | PROVIDE(bind = 0x010B48A0); 24 | PROVIDE(listen = 0x010B4BA0); 25 | PROVIDE(connect = 0x010B49FC); 26 | PROVIDE(recv = 0x010B4CC0); 27 | PROVIDE(send = 0x010B5528); 28 | PROVIDE(socket = 0x010B5DA0); 29 | PROVIDE(socketclose = 0x010B5EEC); 30 | PROVIDE(GX2WaitForVsync = 0x011454BC); 31 | PROVIDE(entry_point = 0x1005A600); 32 | PROVIDE(MEMAllocFromDefaultHeapEx = 0x10049C1C); 33 | PROVIDE(MEMAllocFromDefaultHeap = 0x100AD928); 34 | PROVIDE(MEMFreeToDefaultHeap = 0x100AD92C); 35 | PROVIDE(OSDynLoad_FindExport = 0x01028460); 36 | PROVIDE(OSDynLoad_Acquire = 0x01026E60); 37 | -------------------------------------------------------------------------------- /codehandler/codehandler410.ld: -------------------------------------------------------------------------------- 1 | OUTPUT(build/codehandler410.elf); 2 | 3 | SECTIONS { 4 | .text 0x011D9800 : { 5 | *(.text._start); 6 | *(.text*); 7 | } 8 | /DISCARD/ : { 9 | *(*); 10 | } 11 | } 12 | 13 | PROVIDE(ver = 410); 14 | 15 | PROVIDE(DCFlushRange = 0x01020EAC); 16 | PROVIDE(memset = 0x01030ED0); 17 | PROVIDE(memcpy = 0x01030EE4); 18 | PROVIDE(__gh_errno_ptr = 0x0103A96C); 19 | PROVIDE(OSCreateThread = 0x0103BB08); 20 | PROVIDE(OSResumeThread = 0x0103BFEC); 21 | PROVIDE(socket_lib_init = 0x010B44D4); 22 | PROVIDE(accept = 0x010B4720); 23 | PROVIDE(bind = 0x010B48A0); 24 | PROVIDE(listen = 0x010B4BA0); 25 | PROVIDE(recv = 0x010B4CC0); 26 | PROVIDE(send = 0x010B5528); 27 | PROVIDE(socket = 0x010B5DA0); 28 | PROVIDE(socketclose = 0x010B5EEC); 29 | PROVIDE(GX2WaitForVsync = 0x011454BC); 30 | PROVIDE(entry_point = 0x1005A8C0); 31 | PROVIDE(MEMAllocFromDefaultHeapEx = 0x10049EDC); 32 | PROVIDE(MEMAllocFromDefaultHeap = 0x100ADC28); 33 | PROVIDE(MEMFreeToDefaultHeap = 0x100ADC2C); 34 | PROVIDE(OSDynLoad_FindExport = 0x01028460); 35 | PROVIDE(OSDynLoad_Acquire = 0x01026E60); 36 | -------------------------------------------------------------------------------- /codehandler/codehandler500.ld: -------------------------------------------------------------------------------- 1 | OUTPUT(build/codehandler500.elf); 2 | 3 | SECTIONS { 4 | .text 0x011DBC00 : { 5 | *(.text._start); 6 | *(.text*); 7 | } 8 | /DISCARD/ : { 9 | *(*); 10 | } 11 | } 12 | 13 | PROVIDE(ver = 500); 14 | 15 | PROVIDE(DCFlushRange = 0x01023A00); 16 | PROVIDE(memset = 0x0103544C); 17 | PROVIDE(memcpy = 0x01035460); 18 | PROVIDE(__gh_errno_ptr = 0x0103F2CC); 19 | PROVIDE(OSCreateThread = 0x01040480); 20 | PROVIDE(OSResumeThread = 0x01040968); 21 | PROVIDE(socket_lib_init = 0x010BF2F4); 22 | PROVIDE(accept = 0x010BF54C); 23 | PROVIDE(bind = 0x010BF6CC); 24 | PROVIDE(listen = 0x010BF9CC); 25 | PROVIDE(recv = 0x010BFAEC); 26 | PROVIDE(send = 0x010C06AC); 27 | PROVIDE(socket = 0x010C11C8); 28 | PROVIDE(socketclose = 0x010C1314); 29 | PROVIDE(GX2WaitForVsync = 0x01150868); 30 | PROVIDE(entry_point = 0x1005CB00); 31 | PROVIDE(MEMAllocFromDefaultHeapEx = 0x1004E2D0); 32 | PROVIDE(MEMAllocFromDefaultHeap = 0x100B41F8); 33 | PROVIDE(MEMFreeToDefaultHeap = 0x100B41FC); 34 | PROVIDE(OSDynLoad_FindExport = 0x0102B3E4); 35 | PROVIDE(OSDynLoad_Acquire = 0x01029CD8); 36 | -------------------------------------------------------------------------------- /codehandler/codehandler532.ld: -------------------------------------------------------------------------------- 1 | OUTPUT(build/codehandler532.elf); 2 | 3 | SECTIONS { 4 | .text 0x011DD000 : { 5 | *(.text._start); 6 | *(.text*); 7 | } 8 | /DISCARD/ : { 9 | *(*); 10 | } 11 | } 12 | 13 | PROVIDE(ver = 532); 14 | 15 | PROVIDE(DCFlushRange = 0x01023EE8); 16 | PROVIDE(memset = 0x01035A54); 17 | PROVIDE(memcpy = 0x01035A68); 18 | PROVIDE(__gh_errno_ptr = 0x01040308); 19 | PROVIDE(OSCreateThread = 0x010414C8); 20 | PROVIDE(OSResumeThread = 0x010419B0); 21 | PROVIDE(socket_lib_init = 0x010C02F4); 22 | PROVIDE(accept = 0x010C054C); 23 | PROVIDE(bind = 0x010C06CC); 24 | PROVIDE(listen = 0x010C09CC); 25 | PROVIDE(recv = 0x010C0AEC); 26 | PROVIDE(send = 0x010C16AC); 27 | PROVIDE(socket = 0x010C21C8); 28 | PROVIDE(socketclose = 0x010C2314); 29 | PROVIDE(GX2WaitForVsync = 0x01151964); 30 | PROVIDE(entry_point = 0x1005D180); 31 | PROVIDE(MEMAllocFromDefaultHeapEx = 0x1004E9C0); 32 | PROVIDE(MEMAllocFromDefaultHeap = 0x100B4878); 33 | PROVIDE(MEMFreeToDefaultHeap = 0x100B487C); 34 | PROVIDE(OSDynLoad_FindExport = 0x0102B790); 35 | PROVIDE(OSDynLoad_Acquire = 0x0102A31C); 36 | -------------------------------------------------------------------------------- /codehandler/codehandler550.ld: -------------------------------------------------------------------------------- 1 | OUTPUT(build/codehandler550.elf); 2 | 3 | SECTIONS { 4 | .text 0x011DD000 : { 5 | *(.text._start); 6 | *(.text*); 7 | } 8 | /DISCARD/ : { 9 | *(*); 10 | } 11 | } 12 | 13 | PROVIDE(ver = 550); 14 | 15 | PROVIDE(DCFlushRange = 0x01023F88); 16 | PROVIDE(memset = 0x01035FB4); 17 | PROVIDE(memcpy = 0x01035FC8); 18 | PROVIDE(__gh_errno_ptr = 0x01040900); 19 | PROVIDE(OSCreateThread = 0x01041B64); 20 | PROVIDE(OSResumeThread = 0x01042108); 21 | PROVIDE(socket_lib_init = 0x010C02F4); 22 | PROVIDE(accept = 0x010C054C); 23 | PROVIDE(bind = 0x010C06CC); 24 | PROVIDE(listen = 0x010C09CC); 25 | PROVIDE(recv = 0x010C0AEC); 26 | PROVIDE(send = 0x010C16AC); 27 | PROVIDE(socket = 0x010C21C8); 28 | PROVIDE(socketclose = 0x010C2314); 29 | PROVIDE(GX2WaitForVsync = 0x01151964); 30 | PROVIDE(entry_point = 0x1005E040); 31 | PROVIDE(MEMAllocFromDefaultHeapEx = 0x1004F870); 32 | PROVIDE(MEMAllocFromDefaultHeap = 0x100B5738); 33 | PROVIDE(MEMFreeToDefaultHeap = 0x100B573C); 34 | PROVIDE(OSDynLoad_FindExport = 0x0102B828); 35 | PROVIDE(OSDynLoad_Acquire = 0x0102A3B4); 36 | -------------------------------------------------------------------------------- /codehandler/main.c: -------------------------------------------------------------------------------- 1 | #include "main.h" 2 | 3 | static void start(int argc, void *argv); 4 | static int rungecko(struct bss_t *bss, int clientfd); 5 | static int recvwait(struct bss_t *bss, int sock, void *buffer, int len); 6 | static int recvbyte(struct bss_t *bss, int sock); 7 | static int checkbyte(struct bss_t *bss, int sock); 8 | static int sendwait(struct bss_t *bss, int sock, const void *buffer, int len); 9 | static int sendbyte(struct bss_t *bss, int sock, unsigned char byte); 10 | static void *kern_read(const void *addr); 11 | static void kern_write(void *addr, void *value); 12 | 13 | int _start(int argc, char *argv[]) { 14 | struct bss_t *bss; 15 | 16 | bss = memalign(sizeof(struct bss_t), 0x40); 17 | if (bss == 0) 18 | goto error; 19 | memset(bss, 0, sizeof(struct bss_t)); 20 | OSCreateThread( 21 | &bss->thread, 22 | start, 23 | 0, 24 | bss, 25 | bss->stack + sizeof(bss->stack), 26 | sizeof(bss->stack), 27 | 0, 28 | 0xc 29 | ); 30 | OSResumeThread(&bss->thread); 31 | 32 | error: 33 | return main(argc, argv); 34 | } 35 | 36 | #define CHECK_ERROR(cond) if (cond) { bss->line = __LINE__; goto error; } 37 | 38 | static void start(int argc, void *argv) { 39 | int sockfd = -1, clientfd = -1, ret, len; 40 | struct sockaddr_in addr; 41 | struct bss_t *bss = argv; 42 | 43 | socket_lib_init(); 44 | 45 | while (1) { 46 | addr.sin_family = AF_INET; 47 | addr.sin_port = 7331; 48 | addr.sin_addr.s_addr = 0; 49 | 50 | sockfd = ret = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); 51 | CHECK_ERROR(ret == -1); 52 | ret = bind(sockfd, (void *)&addr, 16); 53 | CHECK_ERROR(ret < 0); 54 | ret = listen(sockfd, 1); 55 | CHECK_ERROR(ret < 0); 56 | len = 16; 57 | clientfd = ret = accept(sockfd, (void *)&addr, &len); 58 | CHECK_ERROR(ret == -1); 59 | socketclose(sockfd); 60 | sockfd = -1; 61 | ret = rungecko(bss, clientfd); 62 | CHECK_ERROR(ret < 0); 63 | socketclose(clientfd); 64 | clientfd = -1; 65 | 66 | continue; 67 | error: 68 | if (clientfd != -1) 69 | socketclose(clientfd); 70 | if (sockfd != -1) 71 | socketclose(sockfd); 72 | bss->error = ret; 73 | } 74 | } 75 | 76 | static int rungecko(struct bss_t *bss, int clientfd) { 77 | int ret; 78 | unsigned char buffer[0x401]; 79 | 80 | while (1) { 81 | ret = checkbyte(bss, clientfd); 82 | 83 | if (ret < 0) { 84 | CHECK_ERROR(errno != EWOULDBLOCK); 85 | GX2WaitForVsync(); 86 | continue; 87 | } 88 | 89 | switch (ret) { 90 | case 0x01: { /* cmd_poke08 */ 91 | char *ptr; 92 | ret = recvwait(bss, clientfd, buffer, 8); 93 | CHECK_ERROR(ret < 0); 94 | 95 | ptr = ((char **)buffer)[0]; 96 | *ptr = buffer[7]; 97 | DCFlushRange(ptr, 1); 98 | break; 99 | } 100 | case 0x02: { /* cmd_poke16 */ 101 | short *ptr; 102 | ret = recvwait(bss, clientfd, buffer, 8); 103 | CHECK_ERROR(ret < 0); 104 | 105 | ptr = ((short **)buffer)[0]; 106 | *ptr = ((short *)buffer)[3]; 107 | DCFlushRange(ptr, 2); 108 | break; 109 | } 110 | case 0x03: { /* cmd_pokemem */ 111 | int *ptr; 112 | ret = recvwait(bss, clientfd, buffer, 8); 113 | CHECK_ERROR(ret < 0); 114 | 115 | ptr = ((int **)buffer)[0]; 116 | *ptr = ((int *)buffer)[1]; 117 | DCFlushRange(ptr, 4); 118 | break; 119 | } 120 | case 0x04: { /* cmd_readmem */ 121 | const unsigned char *ptr, *end; 122 | ret = recvwait(bss, clientfd, buffer, 8); 123 | CHECK_ERROR(ret < 0); 124 | ptr = ((const unsigned char **)buffer)[0]; 125 | end = ((const unsigned char **)buffer)[1]; 126 | 127 | while (ptr != end) { 128 | int len, i; 129 | 130 | len = end - ptr; 131 | if (len > 0x400) 132 | len = 0x400; 133 | for (i = 0; i < len; i++) 134 | if (ptr[i] != 0) break; 135 | 136 | if (i == len) { // all zero! 137 | ret = sendbyte(bss, clientfd, 0xb0); 138 | CHECK_ERROR(ret < 0); 139 | } else { 140 | memcpy(buffer + 1, ptr, len); 141 | buffer[0] = 0xbd; 142 | ret = sendwait(bss, clientfd, buffer, len + 1); 143 | CHECK_ERROR(ret < 0); 144 | } 145 | 146 | ret = checkbyte(bss, clientfd); 147 | if (ret == 0xcc) /* GCFAIL */ 148 | goto next_cmd; 149 | ptr += len; 150 | } 151 | break; 152 | } 153 | case 0x0b: { /* cmd_writekern */ 154 | void *ptr, * value; 155 | ret = recvwait(bss, clientfd, buffer, 8); 156 | CHECK_ERROR(ret < 0); 157 | 158 | ptr = ((void **)buffer)[0]; 159 | value = ((void **)buffer)[1]; 160 | 161 | kern_write(ptr, value); 162 | break; 163 | } 164 | case 0x0c: { /* cmd_readkern */ 165 | void *ptr, *value; 166 | ret = recvwait(bss, clientfd, buffer, 4); 167 | CHECK_ERROR(ret < 0); 168 | 169 | ptr = ((void **)buffer)[0]; 170 | 171 | value = kern_read(ptr); 172 | 173 | *(void **)buffer = value; 174 | sendwait(bss, clientfd, buffer, 4); 175 | break; 176 | } 177 | case 0x41: { /* cmd_upload */ 178 | unsigned char *ptr, *end, *dst; 179 | ret = recvwait(bss, clientfd, buffer, 8); 180 | CHECK_ERROR(ret < 0); 181 | ptr = ((unsigned char **)buffer)[0]; 182 | end = ((unsigned char **)buffer)[1]; 183 | 184 | while (ptr != end) { 185 | int len; 186 | 187 | len = end - ptr; 188 | if (len > 0x400) 189 | len = 0x400; 190 | if ((int)ptr >= 0x10000000 && (int)ptr <= 0x50000000) { 191 | dst = ptr; 192 | } else { 193 | dst = buffer; 194 | } 195 | ret = recvwait(bss, clientfd, dst, len); 196 | CHECK_ERROR(ret < 0); 197 | if (dst == buffer) { 198 | memcpy(ptr, buffer, len); 199 | } 200 | 201 | ptr += len; 202 | } 203 | 204 | sendbyte(bss, clientfd, 0xaa); /* GCACK */ 205 | break; 206 | } 207 | case 0x50: { /* cmd_status */ 208 | ret = sendbyte(bss, clientfd, 1); /* running */ 209 | CHECK_ERROR(ret < 0); 210 | break; 211 | } 212 | case 0x70: { /* cmd_rpc */ 213 | long long (*fun)(int, int, int, int, int, int, int, int); 214 | int r3, r4, r5, r6, r7, r8, r9, r10; 215 | long long result; 216 | 217 | ret = recvwait(bss, clientfd, buffer, 4 + 8 * 4); 218 | CHECK_ERROR(ret < 0); 219 | 220 | fun = ((void **)buffer)[0]; 221 | r3 = ((int *)buffer)[1]; 222 | r4 = ((int *)buffer)[2]; 223 | r5 = ((int *)buffer)[3]; 224 | r6 = ((int *)buffer)[4]; 225 | r7 = ((int *)buffer)[5]; 226 | r8 = ((int *)buffer)[6]; 227 | r9 = ((int *)buffer)[7]; 228 | r10 = ((int *)buffer)[8]; 229 | 230 | result = fun(r3, r4, r5, r6, r7, r8, r9, r10); 231 | 232 | ((long long *)buffer)[0] = result; 233 | ret = sendwait(bss, clientfd, buffer, 8); 234 | CHECK_ERROR(ret < 0); 235 | break; 236 | } 237 | case 0x71: { /* cmd_getsymbol */ 238 | char size = recvbyte(bss, clientfd); 239 | CHECK_ERROR(size < 0); 240 | ret = recvwait(bss, clientfd, buffer, size); 241 | CHECK_ERROR(ret < 0); 242 | 243 | /* Identify the RPL name and symbol name */ 244 | char *rplname = (char*) &((int*)buffer)[2]; 245 | char *symname = (char*) (&buffer[0] + ((int*)buffer)[1]); 246 | 247 | /* Get the symbol and store it in the buffer */ 248 | unsigned int module_handle, function_address; 249 | OSDynLoad_Acquire(rplname, &module_handle); 250 | 251 | char data = recvbyte(bss, clientfd); 252 | OSDynLoad_FindExport(module_handle, data, symname, &function_address); 253 | 254 | ((int*)buffer)[0] = (int)function_address; 255 | ret = sendwait(bss, clientfd, buffer, 4); 256 | CHECK_ERROR(ret < 0); 257 | break; 258 | } 259 | case 0x72: { /* cmd_search32 */ 260 | ret = recvwait(bss, clientfd, buffer, 12); 261 | CHECK_ERROR(ret < 0); 262 | int addr = ((int *) buffer)[0]; 263 | int val = ((int *) buffer)[1]; 264 | int size = ((int *) buffer)[2]; 265 | int i; 266 | int resaddr = 0; 267 | for(i = addr; i < (addr+size); i+=4) 268 | { 269 | if(*(int*)i == val) 270 | { 271 | resaddr = i; 272 | break; 273 | } 274 | } 275 | ((int *)buffer)[0] = resaddr; 276 | ret = sendwait(bss, clientfd, buffer, 4); 277 | CHECK_ERROR(ret < 0); 278 | break; 279 | } 280 | case 0x80: { /* cmd_rpc_big */ 281 | long long (*fun)(int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int); 282 | int r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18; 283 | long long result; 284 | 285 | ret = recvwait(bss, clientfd, buffer, 4 + 16 * 4); 286 | CHECK_ERROR(ret < 0); 287 | 288 | fun = ((void **)buffer)[0]; 289 | r3 = ((int *)buffer)[1]; 290 | r4 = ((int *)buffer)[2]; 291 | r5 = ((int *)buffer)[3]; 292 | r6 = ((int *)buffer)[4]; 293 | r7 = ((int *)buffer)[5]; 294 | r8 = ((int *)buffer)[6]; 295 | r9 = ((int *)buffer)[7]; 296 | r10 = ((int *)buffer)[8]; 297 | r11 = ((int *)buffer)[9]; 298 | r12 = ((int *)buffer)[10]; 299 | r13 = ((int *)buffer)[11]; 300 | r14 = ((int *)buffer)[12]; 301 | r15 = ((int *)buffer)[13]; 302 | r16 = ((int *)buffer)[14]; 303 | r17 = ((int *)buffer)[15]; 304 | r18 = ((int *)buffer)[16]; 305 | 306 | result = fun(r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18); 307 | 308 | ((long long *)buffer)[0] = result; 309 | ret = sendwait(bss, clientfd, buffer, 8); 310 | CHECK_ERROR(ret < 0); 311 | break; 312 | } 313 | case 0x99: { /* cmd_version */ 314 | ret = sendbyte(bss, clientfd, 0x82); /* WiiU */ 315 | CHECK_ERROR(ret < 0); 316 | break; 317 | } 318 | case 0x9A: { /* cmd_os_version */ 319 | /* Little bit of a hack here, the linker script will define the 320 | * symbol ver to have address of the version number! */ 321 | extern char ver[]; 322 | ((int *)buffer)[0] = (int)ver; 323 | ret = sendwait(bss, clientfd, buffer, 4); 324 | CHECK_ERROR(ret < 0); 325 | break; 326 | } 327 | case 0xcc: { /* GCFAIL */ 328 | break; 329 | } 330 | default: 331 | ret = -1; 332 | CHECK_ERROR(0); 333 | break; 334 | } 335 | next_cmd: 336 | continue; 337 | } 338 | return 0; 339 | error: 340 | bss->error = ret; 341 | return 0; 342 | } 343 | 344 | static int recvwait(struct bss_t *bss, int sock, void *buffer, int len) { 345 | int ret; 346 | while (len > 0) { 347 | ret = recv(sock, buffer, len, 0); 348 | CHECK_ERROR(ret < 0); 349 | len -= ret; 350 | buffer += ret; 351 | } 352 | return 0; 353 | error: 354 | bss->error = ret; 355 | return ret; 356 | } 357 | 358 | static int recvbyte(struct bss_t *bss, int sock) { 359 | unsigned char buffer[1]; 360 | int ret; 361 | 362 | ret = recvwait(bss, sock, buffer, 1); 363 | if (ret < 0) return ret; 364 | return buffer[0]; 365 | } 366 | 367 | static int checkbyte(struct bss_t *bss, int sock) { 368 | unsigned char buffer[1]; 369 | int ret; 370 | 371 | ret = recv(sock, buffer, 1, MSG_DONTWAIT); 372 | if (ret < 0) return ret; 373 | if (ret == 0) return -1; 374 | return buffer[0]; 375 | } 376 | 377 | static int sendwait(struct bss_t *bss, int sock, const void *buffer, int len) { 378 | int ret; 379 | while (len > 0) { 380 | ret = send(sock, buffer, len, 0); 381 | CHECK_ERROR(ret < 0); 382 | len -= ret; 383 | buffer += ret; 384 | } 385 | return 0; 386 | error: 387 | bss->error = ret; 388 | return ret; 389 | } 390 | 391 | static int sendbyte(struct bss_t *bss, int sock, unsigned char byte) { 392 | unsigned char buffer[1]; 393 | 394 | buffer[0] = byte; 395 | return sendwait(bss, sock, buffer, 1); 396 | } 397 | 398 | /* Naughty syscall which we installed to allow arbitrary kernel mode reading. 399 | * This syscall actually branches part way into __OSReadRegister32Ex after the 400 | * address validation has already occurred. */ 401 | static void *kern_read(const void *addr) { 402 | void *result; 403 | asm( 404 | "li 3,1\n" 405 | "li 4,0\n" 406 | "li 5,0\n" 407 | "li 6,0\n" 408 | "li 7,0\n" 409 | "lis 8,1\n" 410 | "mr 9,%1\n" 411 | "li 0,0x3400\n" 412 | "mr %0,1\n" 413 | "sc\n" 414 | "nop\n" /* sometimes on return it skips an instruction */ 415 | "mr 1,%0\n" 416 | "mr %0,3\n" 417 | : "=r"(result) 418 | : "b"(addr) 419 | : "memory", "ctr", "lr", "0", "3", "4", "5", "6", "7", "8", "9", "10", 420 | "11", "12" 421 | ); 422 | 423 | return result; 424 | } 425 | 426 | /* Naughty syscall which we installed to allow arbitrary kernel mode writing. 427 | * This syscall actually branches part way into __OSWriteRegister32Ex after the 428 | * address validation has already occurred. */ 429 | static void kern_write(void *addr, void *value) { 430 | asm( 431 | "li 3,1\n" 432 | "li 4,0\n" 433 | "mr 5,%1\n" 434 | "li 6,0\n" 435 | "li 7,0\n" 436 | "lis 8,1\n" 437 | "mr 9,%0\n" 438 | "mr %1,1\n" 439 | "li 0,0x3500\n" 440 | "sc\n" 441 | "nop\n" /* sometimes on return it skips an instruction */ 442 | "mr 1,%1\n" 443 | : 444 | : "r"(addr), "r"(value) 445 | : "memory", "ctr", "lr", "0", "3", "4", "5", "6", "7", "8", "9", "10", 446 | "11", "12" 447 | ); 448 | } 449 | -------------------------------------------------------------------------------- /codehandler/main.h: -------------------------------------------------------------------------------- 1 | /* string.h */ 2 | #define NULL ((void *)0) 3 | 4 | extern void *memcpy(void *dst, const void *src, int bytes); 5 | extern void *memset(void *dst, int val, int bytes); 6 | 7 | /* errno.h */ 8 | extern int *__gh_errno_ptr(void); 9 | #define errno (*__gh_errno_ptr()) 10 | 11 | #define EWOULDBLOCK 6 12 | 13 | /* malloc.h */ 14 | extern void *(* const MEMAllocFromDefaultHeapEx)(int size, int align); 15 | extern void *(* const MEMAllocFromDefaultHeap)(int size); 16 | extern void *(* const MEMFreeToDefaultHeap)(void *ptr); 17 | 18 | #define memalign (*MEMAllocFromDefaultHeapEx) 19 | #define malloc (*MEMAllocFromDefaultHeap) 20 | #define free (*MEMFreeToDefaultHeap) 21 | 22 | /* socket.h */ 23 | #define AF_INET 2 24 | #define SOCK_STREAM 1 25 | #define IPPROTO_TCP 6 26 | 27 | #define MSG_DONTWAIT 32 28 | 29 | extern void socket_lib_init(); 30 | extern int socket(int domain, int type, int protocol); 31 | extern int socketclose(int socket); 32 | extern int connect(int socket, void *addr, int addrlen); 33 | extern int send(int socket, const void *buffer, int size, int flags); 34 | extern int recv(int socket, void *buffer, int size, int flags); 35 | 36 | struct in_addr { 37 | unsigned int s_addr; 38 | }; 39 | struct sockaddr_in { 40 | short sin_family; 41 | unsigned short sin_port; 42 | struct in_addr sin_addr; 43 | char sin_zero[8]; 44 | }; 45 | 46 | extern int bind(int socket, void *addr, int size); 47 | extern int listen(int socket, int backlog); 48 | extern int accept(int socket, void *addr, int *size); 49 | 50 | /* coreinit.rpl */ 51 | #include 52 | #include 53 | #include 54 | 55 | typedef struct { 56 | char tag[8]; /* 0x000 "OSContxt" */ 57 | int32_t gpr[32]; /* 0x008 from OSDumpContext */ 58 | uint32_t cr; /* 0x088 from OSDumpContext */ 59 | uint32_t lr; /* 0x08c from OSDumpContext */ 60 | uint32_t ctr; /* 0x090 from context switch code */ 61 | uint32_t xer; /* 0x094 from context switch code */ 62 | uint32_t srr0; /* 0x098 from OSDumpContext */ 63 | uint32_t srr1; /* 0x09c from OSDumpContext */ 64 | char _unknowna0[0xb8 - 0xa0]; 65 | uint64_t fpr[32]; /* 0x0b8 from OSDumpContext */ 66 | int16_t spinLockCount; /* 0x1b8 from OSDumpContext */ 67 | char _unknown1ba[0x1bc - 0x1ba]; /* 0x1ba could genuinely be padding? */ 68 | uint32_t gqr[8]; /* 0x1bc from OSDumpContext */ 69 | char _unknown1dc[0x1e0 - 0x1dc]; 70 | uint64_t psf[32]; /* 0x1e0 from OSDumpContext */ 71 | int64_t coretime[3]; /* 0x2e0 from OSDumpContext */ 72 | int64_t starttime; /* 0x2f8 from OSDumpContext */ 73 | int32_t error; /* 0x300 from OSDumpContext */ 74 | char _unknown304[0x6a0 - 0x304]; 75 | } OSThread; /* 0x6a0 total length from RAM dumps */ 76 | 77 | extern bool OSCreateThread(OSThread *thread, void (*entry)(int,void*), int argc, void *args, void *stack, size_t stack_size, int32_t priority, int16_t affinity); 78 | extern void OSResumeThread(OSThread *thread); 79 | 80 | extern void DCFlushRange(const void *addr, size_t length); 81 | 82 | extern int OSDynLoad_Acquire(char* rpl, unsigned int *handle); 83 | extern int OSDynLoad_FindExport(unsigned int handle, int isdata, char *symbol, void *address); 84 | 85 | /* gx */ 86 | extern void GX2WaitForVsync(void); 87 | 88 | /* main */ 89 | extern int (* const entry_point)(int argc, char *argv[]); 90 | 91 | #define main (*entry_point) 92 | 93 | /* BSS section */ 94 | struct bss_t { 95 | int error, line; 96 | OSThread thread; 97 | char stack[0x8000]; 98 | }; -------------------------------------------------------------------------------- /colors.py: -------------------------------------------------------------------------------- 1 | #You're probably better off using the GUI version, but... 2 | #https://gbatemp.net/threads/splatoon-colorizer.406463/ 3 | 4 | from tcpgecko import TCPGecko 5 | from textwrap import wrap 6 | from struct import pack 7 | from binascii import unhexlify 8 | import sys 9 | 10 | 11 | #!!! WARNING: ColorHax has been known to get permanent bans for users !!! 12 | #!!! USE AT YOUR OWN RISK !!! 13 | tcp = TCPGecko("192.168.0.10") #Wii U IP address 14 | Colors = b"" 15 | for i in range(1, 4): #Ignores Alpha since it doesn't use it 16 | Color = wrap(sys.argv[i], 2) #Split it into 2 character chunks 17 | for j in range(3): #Create the RGB floats 18 | Colors += pack(">f", ord(unhexlify(Color[j])) / 256) 19 | Colors += pack(">f", 1.0) #Alpha 20 | tcp.writestr(0x12D53178, Colors) #Only overwrites currently loaded color 21 | #Run a command right after the lobby is "ready" 22 | tcp.s.close() 23 | print("Done!") 24 | #!!! WARNING: ColorHax has been known to get permanent bans for users !!! 25 | #!!! USE AT YOUR OWN RISK !!! 26 | -------------------------------------------------------------------------------- /common.py: -------------------------------------------------------------------------------- 1 | import struct 2 | 3 | class switch(object): #Taken from http://code.activestate.com/recipes/410692/ 4 | def __init__(self, value): 5 | self.value = value 6 | self.fall = False 7 | 8 | def __iter__(self): 9 | """Return the match method once, then stop""" 10 | yield self.match 11 | raise StopIteration 12 | 13 | def match(self, *args): 14 | """Indicate whether or not to enter a case suite""" 15 | if self.fall or not args: 16 | return True 17 | elif self.value in args: 18 | self.fall = True 19 | return True 20 | else: 21 | return False 22 | '''Example Use Case for switch: 23 | for case in switch(variable): 24 | if case(0): 25 | #dostuff 26 | elif case(1): 27 | #dostuff 28 | else: #default 29 | #dodefaultstuff''' 30 | 31 | def hexstr(data, length): #Pad hex to value for prettyprint 32 | return hex(data).lstrip("0x").rstrip("L").zfill(length).upper() 33 | def hexstr0(data): #Uppercase hex to string 34 | return "0x" + hex(data).lstrip("0x").rstrip("L").upper() 35 | def binr(byte): #Get bits as a string 36 | return bin(byte).lstrip("0b").zfill(8) 37 | def uint8(data, pos): 38 | return struct.unpack(">B", data[pos:pos + 1])[0] 39 | def uint16(data, pos): 40 | return struct.unpack(">H", data[pos:pos + 2])[0] 41 | def uint24(data, pos): 42 | return struct.unpack(">I", "\00" + data[pos:pos + 3])[0] #HAX 43 | def uint32(data, pos): 44 | return struct.unpack(">I", data[pos:pos + 4])[0] 45 | 46 | def getstr(data, pos): #Keep incrementing till you hit a stop 47 | string = "" 48 | while data[pos] != 0: 49 | if pos != len(data): 50 | string += chr(data[pos]) 51 | pos += 1 52 | else: break 53 | return string 54 | -------------------------------------------------------------------------------- /installer/Makefile: -------------------------------------------------------------------------------- 1 | root := . 2 | project := $(root)/src 3 | build := $(root)/bin 4 | libs := $(root)/../../libwiiu/bin 5 | www := $(root)/../../www 6 | framework := $(root)/../../framework 7 | AS=powerpc-eabi-as 8 | CC=powerpc-eabi-gcc 9 | CFLAGS=-nostdinc -fno-builtin -c 10 | LDFLAGS=-T $(project)/link.ld -nostartfiles -nostdlib -s 11 | all: clean setup main550 main532 main500 main410 main400 main310 main300 12 | setup: 13 | mkdir -p $(root)/bin/ 14 | main550: 15 | $(AS) $(project)/asm.s -o $(root)/asm.o 16 | $(CC) $(CFLAGS) -DVER=550 $(project)/*.c 17 | #-Wa,-a,-ad 18 | mv -f $(root)/*.o $(build) 19 | $(CC) $(LDFLAGS) -o $(build)/code550.bin $(libs)/550/draw.o $(build)/*.o 20 | main532: 21 | $(AS) $(project)/asm.s -o $(root)/asm.o 22 | $(CC) $(CFLAGS) -DVER=532 $(project)/*.c 23 | #-Wa,-a,-ad 24 | mv -f $(root)/*.o $(build) 25 | $(CC) $(LDFLAGS) -o $(build)/code532.bin $(libs)/532/draw.o $(build)/*.o 26 | main500: 27 | $(AS) $(project)/asm.s -o $(root)/asm.o 28 | $(CC) $(CFLAGS) -DVER=500 $(project)/*.c 29 | #-Wa,-a,-ad 30 | mv -f $(root)/*.o $(build) 31 | $(CC) $(LDFLAGS) -o $(build)/code500.bin $(libs)/500/draw.o $(build)/*.o 32 | main410: 33 | $(AS) $(project)/asm.s -o $(root)/asm.o 34 | $(CC) $(CFLAGS) -DVER=410 $(project)/*.c 35 | #-Wa,-a,-ad 36 | mv -f $(root)/*.o $(build) 37 | $(CC) $(LDFLAGS) -o $(build)/code410.bin $(libs)/410/draw.o $(build)/*.o 38 | main400: 39 | $(AS) $(project)/asm.s -o $(root)/asm.o 40 | $(CC) $(CFLAGS) -DVER=400 $(project)/*.c 41 | #-Wa,-a,-ad 42 | mv -f $(root)/*.o $(build) 43 | $(CC) $(LDFLAGS) -o $(build)/code400.bin $(libs)/400/draw.o $(build)/*.o 44 | main310: 45 | $(AS) $(project)/asm.s -o $(root)/asm.o 46 | $(CC) $(CFLAGS) -DVER=400 $(project)/*.c 47 | #-Wa,-a,-ad 48 | mv -f $(root)/*.o $(build) 49 | $(CC) $(LDFLAGS) -o $(build)/code310.bin $(libs)/310/draw.o $(build)/*.o 50 | main300: 51 | $(AS) $(project)/asm.s -o $(root)/asm.o 52 | $(CC) $(CFLAGS) -DVER=300 $(project)/*.c 53 | #-Wa,-a,-ad 54 | mv -f $(root)/*.o $(build) 55 | $(CC) $(LDFLAGS) -o $(build)/code300.bin $(libs)/300/draw.o $(build)/*.o 56 | clean: 57 | rm -f -r $(build)/* 58 | -------------------------------------------------------------------------------- /installer/src/asm.s: -------------------------------------------------------------------------------- 1 | 2 | .section .asmstart 3 | 4 | .extern _main 5 | .globl _start 6 | _start: 7 | # Load a good stack 8 | lis 1,0x1AB5 9 | ori 1,1,0xD138 10 | # Go! 11 | b _main 12 | -------------------------------------------------------------------------------- /installer/src/codehandler310.h: -------------------------------------------------------------------------------- 1 | static const unsigned char codehandler_text_bin[] = { 2 | 0x94, 0x21, 0xff, 0xe8, 0x7c, 0x08, 0x02, 0xa6, 0x3d, 0x20, 0x10, 0x04, 3 | 0x81, 0x29, 0x79, 0xac, 0x93, 0x81, 0x00, 0x08, 0x7c, 0x7c, 0x1b, 0x78, 4 | 0x38, 0x60, 0x00, 0x00, 0x93, 0xa1, 0x00, 0x0c, 0x93, 0xe1, 0x00, 0x14, 5 | 0x7c, 0x9d, 0x23, 0x78, 0x90, 0x01, 0x00, 0x1c, 0x60, 0x63, 0x86, 0xa8, 6 | 0x93, 0xc1, 0x00, 0x10, 0x38, 0x80, 0x00, 0x40, 0x7d, 0x29, 0x03, 0xa6, 7 | 0x4e, 0x80, 0x04, 0x21, 0x7c, 0x7f, 0x1b, 0x79, 0x41, 0x82, 0x00, 0x50, 8 | 0x38, 0xa0, 0x00, 0x00, 0x38, 0x80, 0x00, 0x00, 0x60, 0xa5, 0x86, 0xa8, 9 | 0x3b, 0xdf, 0x00, 0x08, 0x4b, 0xe5, 0x85, 0x59, 0x3c, 0xff, 0x00, 0x01, 10 | 0x3c, 0x80, 0x01, 0x1d, 0x39, 0x00, 0x00, 0x00, 0x7f, 0xc3, 0xf3, 0x78, 11 | 0x38, 0x84, 0x3b, 0x28, 0x38, 0xa0, 0x00, 0x00, 0x7f, 0xe6, 0xfb, 0x78, 12 | 0x38, 0xe7, 0x86, 0xa8, 0x61, 0x08, 0x80, 0x00, 0x39, 0x20, 0x00, 0x00, 13 | 0x39, 0x40, 0x00, 0x0c, 0x4b, 0xe6, 0x28, 0x31, 0x7f, 0xc3, 0xf3, 0x78, 14 | 0x4b, 0xe6, 0x2c, 0xf9, 0x3d, 0x20, 0x10, 0x06, 0x80, 0x01, 0x00, 0x1c, 15 | 0x81, 0x29, 0xbb, 0xc0, 0x7f, 0x83, 0xe3, 0x78, 0x83, 0xc1, 0x00, 0x10, 16 | 0x7f, 0xa4, 0xeb, 0x78, 0x83, 0x81, 0x00, 0x08, 0x7d, 0x29, 0x03, 0xa6, 17 | 0x83, 0xa1, 0x00, 0x0c, 0x83, 0xe1, 0x00, 0x14, 0x7c, 0x08, 0x03, 0xa6, 18 | 0x38, 0x21, 0x00, 0x18, 0x4e, 0x80, 0x04, 0x20, 0x94, 0x21, 0xff, 0xe8, 19 | 0x7c, 0x08, 0x02, 0xa6, 0x38, 0xa0, 0x00, 0x01, 0x38, 0xc0, 0x00, 0x20, 20 | 0x38, 0x81, 0x00, 0x08, 0x90, 0x01, 0x00, 0x1c, 0x4b, 0xed, 0x55, 0x91, 21 | 0x2c, 0x03, 0x00, 0x00, 0x41, 0x80, 0x00, 0x0c, 0x41, 0x82, 0x00, 0x18, 22 | 0x88, 0x61, 0x00, 0x08, 0x80, 0x01, 0x00, 0x1c, 0x38, 0x21, 0x00, 0x18, 23 | 0x7c, 0x08, 0x03, 0xa6, 0x4e, 0x80, 0x00, 0x20, 0x38, 0x60, 0xff, 0xff, 24 | 0x4b, 0xff, 0xff, 0xec, 0x94, 0x21, 0xff, 0xe0, 0x7c, 0x08, 0x02, 0xa6, 25 | 0x93, 0xe1, 0x00, 0x1c, 0x7c, 0xff, 0x3b, 0x79, 0x93, 0x61, 0x00, 0x0c, 26 | 0x7c, 0x9b, 0x23, 0x78, 0x93, 0x81, 0x00, 0x10, 0x7c, 0x7c, 0x1b, 0x78, 27 | 0x93, 0xa1, 0x00, 0x14, 0x7c, 0xbd, 0x2b, 0x78, 0x93, 0xc1, 0x00, 0x18, 28 | 0x7c, 0xde, 0x33, 0x78, 0x90, 0x01, 0x00, 0x24, 0x41, 0xa1, 0x00, 0x0c, 29 | 0x48, 0x00, 0x00, 0x64, 0x40, 0x9d, 0x00, 0x60, 0x7f, 0xc4, 0xf3, 0x78, 30 | 0x7f, 0xe5, 0xfb, 0x78, 0x7f, 0xa3, 0xeb, 0x78, 0x38, 0xc0, 0x00, 0x00, 31 | 0x4b, 0xed, 0x55, 0x15, 0x7c, 0x69, 0x1b, 0x79, 0x7f, 0xe9, 0xf8, 0x50, 32 | 0x7f, 0xde, 0x4a, 0x14, 0x2f, 0x9f, 0x00, 0x00, 0x40, 0x80, 0xff, 0xd8, 33 | 0x80, 0x01, 0x00, 0x24, 0x39, 0x40, 0x01, 0x5c, 0x91, 0x5b, 0x00, 0x00, 34 | 0x7d, 0x23, 0x4b, 0x78, 0x7c, 0x08, 0x03, 0xa6, 0x91, 0x3c, 0x00, 0x00, 35 | 0x83, 0x61, 0x00, 0x0c, 0x83, 0x81, 0x00, 0x10, 0x83, 0xa1, 0x00, 0x14, 36 | 0x83, 0xc1, 0x00, 0x18, 0x83, 0xe1, 0x00, 0x1c, 0x38, 0x21, 0x00, 0x20, 37 | 0x4e, 0x80, 0x00, 0x20, 0x80, 0x01, 0x00, 0x24, 0x38, 0x60, 0x00, 0x00, 38 | 0x83, 0x61, 0x00, 0x0c, 0x7c, 0x08, 0x03, 0xa6, 0x83, 0x81, 0x00, 0x10, 39 | 0x83, 0xa1, 0x00, 0x14, 0x83, 0xc1, 0x00, 0x18, 0x83, 0xe1, 0x00, 0x1c, 40 | 0x38, 0x21, 0x00, 0x20, 0x4e, 0x80, 0x00, 0x20, 0x94, 0x21, 0xff, 0xe0, 41 | 0x7c, 0x08, 0x02, 0xa6, 0x93, 0xe1, 0x00, 0x1c, 0x7c, 0xff, 0x3b, 0x79, 42 | 0x93, 0x61, 0x00, 0x0c, 0x7c, 0x9b, 0x23, 0x78, 0x93, 0x81, 0x00, 0x10, 43 | 0x7c, 0x7c, 0x1b, 0x78, 0x93, 0xa1, 0x00, 0x14, 0x7c, 0xbd, 0x2b, 0x78, 44 | 0x93, 0xc1, 0x00, 0x18, 0x7c, 0xde, 0x33, 0x78, 0x90, 0x01, 0x00, 0x24, 45 | 0x41, 0xa1, 0x00, 0x0c, 0x48, 0x00, 0x00, 0x64, 0x40, 0x9d, 0x00, 0x60, 46 | 0x7f, 0xc4, 0xf3, 0x78, 0x7f, 0xe5, 0xfb, 0x78, 0x7f, 0xa3, 0xeb, 0x78, 47 | 0x38, 0xc0, 0x00, 0x00, 0x4b, 0xed, 0x59, 0x79, 0x7c, 0x69, 0x1b, 0x79, 48 | 0x7f, 0xe9, 0xf8, 0x50, 0x7f, 0xde, 0x4a, 0x14, 0x2f, 0x9f, 0x00, 0x00, 49 | 0x40, 0x80, 0xff, 0xd8, 0x80, 0x01, 0x00, 0x24, 0x39, 0x40, 0x01, 0x7d, 50 | 0x91, 0x5b, 0x00, 0x00, 0x7d, 0x23, 0x4b, 0x78, 0x7c, 0x08, 0x03, 0xa6, 51 | 0x91, 0x3c, 0x00, 0x00, 0x83, 0x61, 0x00, 0x0c, 0x83, 0x81, 0x00, 0x10, 52 | 0x83, 0xa1, 0x00, 0x14, 0x83, 0xc1, 0x00, 0x18, 0x83, 0xe1, 0x00, 0x1c, 53 | 0x38, 0x21, 0x00, 0x20, 0x4e, 0x80, 0x00, 0x20, 0x80, 0x01, 0x00, 0x24, 54 | 0x38, 0x60, 0x00, 0x00, 0x83, 0x61, 0x00, 0x0c, 0x7c, 0x08, 0x03, 0xa6, 55 | 0x83, 0x81, 0x00, 0x10, 0x83, 0xa1, 0x00, 0x14, 0x83, 0xc1, 0x00, 0x18, 56 | 0x83, 0xe1, 0x00, 0x1c, 0x38, 0x21, 0x00, 0x20, 0x4e, 0x80, 0x00, 0x20, 57 | 0x7c, 0x08, 0x02, 0xa6, 0x94, 0x21, 0xfb, 0x90, 0x92, 0xe1, 0x04, 0x4c, 58 | 0x3e, 0xe0, 0x00, 0x00, 0x90, 0x01, 0x04, 0x74, 0x3a, 0xf7, 0x01, 0x36, 59 | 0x92, 0x41, 0x04, 0x38, 0x92, 0x61, 0x04, 0x3c, 0x92, 0x81, 0x04, 0x40, 60 | 0x93, 0x61, 0x04, 0x5c, 0x93, 0xc1, 0x04, 0x68, 0x93, 0xe1, 0x04, 0x6c, 61 | 0x92, 0xa1, 0x04, 0x44, 0x3a, 0xa0, 0xff, 0xaa, 0x92, 0xc1, 0x04, 0x48, 62 | 0x3a, 0xc0, 0xff, 0x82, 0x93, 0x01, 0x04, 0x50, 0x3f, 0x00, 0x40, 0x00, 63 | 0x93, 0x21, 0x04, 0x54, 0x3b, 0x21, 0x00, 0x28, 0x93, 0x41, 0x04, 0x58, 64 | 0x3b, 0x43, 0x00, 0x04, 0x93, 0x81, 0x04, 0x60, 0x7c, 0x7c, 0x1b, 0x78, 65 | 0x93, 0xa1, 0x04, 0x64, 0x7c, 0x9d, 0x23, 0x78, 0x7f, 0xa3, 0xeb, 0x78, 66 | 0x4b, 0xff, 0xfd, 0xc9, 0x7c, 0x7f, 0x1b, 0x79, 0x41, 0x80, 0x02, 0x68, 67 | 0x2f, 0x9f, 0x00, 0x41, 0x41, 0x9e, 0x06, 0x88, 0x40, 0x9d, 0x00, 0x58, 68 | 0x2f, 0x9f, 0x00, 0x72, 0x41, 0x9e, 0x05, 0xbc, 0x41, 0x9d, 0x01, 0x78, 69 | 0x2f, 0x9f, 0x00, 0x70, 0x41, 0x9e, 0x02, 0xfc, 0x41, 0x9d, 0x04, 0xe8, 70 | 0x2f, 0x9f, 0x00, 0x50, 0x40, 0xbe, 0xff, 0xc8, 0x39, 0x20, 0x00, 0x01, 71 | 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 72 | 0x38, 0xc1, 0x04, 0x2c, 0x38, 0xe0, 0x00, 0x01, 0x99, 0x21, 0x04, 0x2c, 73 | 0x4b, 0xff, 0xfe, 0x7d, 0x7c, 0x7f, 0x1b, 0x79, 0x40, 0x80, 0xff, 0xa0, 74 | 0x39, 0x20, 0x00, 0xd1, 0x91, 0x3c, 0x00, 0x04, 0x48, 0x00, 0x02, 0x20, 75 | 0x2f, 0x9f, 0x00, 0x03, 0x41, 0x9e, 0x05, 0xec, 0x40, 0x9d, 0x02, 0x64, 76 | 0x2f, 0x9f, 0x00, 0x0b, 0x41, 0x9e, 0x03, 0x58, 0x2f, 0x9f, 0x00, 0x0c, 77 | 0x41, 0x9e, 0x03, 0xdc, 0x2f, 0x9f, 0x00, 0x04, 0x40, 0x9e, 0xff, 0x70, 78 | 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 79 | 0x7f, 0x26, 0xcb, 0x78, 0x38, 0xe0, 0x00, 0x08, 0x4b, 0xff, 0xfd, 0x69, 80 | 0x7c, 0x7f, 0x1b, 0x79, 0x41, 0x80, 0x07, 0x64, 0x83, 0xc1, 0x00, 0x28, 81 | 0x3a, 0x40, 0xff, 0xb0, 0x82, 0x81, 0x00, 0x2c, 0x3a, 0x60, 0xff, 0xbd, 82 | 0x7f, 0x9e, 0xa0, 0x40, 0x41, 0xbe, 0xff, 0x38, 0x7f, 0x7e, 0xa0, 0x50, 83 | 0x2f, 0x9b, 0x04, 0x00, 0x40, 0x9d, 0x00, 0x7c, 0x3b, 0x60, 0x04, 0x00, 84 | 0x89, 0x3e, 0x00, 0x00, 0x2f, 0x89, 0x00, 0x00, 0x40, 0x9e, 0x00, 0x78, 85 | 0x7f, 0x69, 0x03, 0xa6, 0x48, 0x00, 0x00, 0x10, 0x7d, 0x5e, 0x48, 0xae, 86 | 0x2f, 0x8a, 0x00, 0x00, 0x40, 0x9e, 0x00, 0x64, 0x39, 0x29, 0x00, 0x01, 87 | 0x42, 0x00, 0xff, 0xf0, 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 88 | 0x7f, 0xa5, 0xeb, 0x78, 0x38, 0xc1, 0x04, 0x2c, 0x38, 0xe0, 0x00, 0x01, 89 | 0x9a, 0x41, 0x04, 0x2c, 0x4b, 0xff, 0xfd, 0xb9, 0x7c, 0x7f, 0x1b, 0x79, 90 | 0x41, 0x80, 0x06, 0xfc, 0x7f, 0xa3, 0xeb, 0x78, 0x4b, 0xff, 0xfc, 0xa1, 91 | 0x2f, 0x83, 0x00, 0xcc, 0x41, 0xbe, 0xfe, 0xcc, 0x7f, 0xde, 0xda, 0x14, 92 | 0x7f, 0x94, 0xf0, 0x40, 0x41, 0xbe, 0xfe, 0xc0, 0x7f, 0x7e, 0xa0, 0x50, 93 | 0x2f, 0x9b, 0x04, 0x00, 0x41, 0xbd, 0xff, 0x8c, 0x2f, 0x9b, 0x00, 0x00, 94 | 0x41, 0x9d, 0xff, 0x88, 0x41, 0xbe, 0xff, 0xac, 0x7f, 0xc4, 0xf3, 0x78, 95 | 0x7f, 0x65, 0xdb, 0x78, 0x38, 0x61, 0x00, 0x29, 0x4b, 0xe5, 0x81, 0x61, 96 | 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 97 | 0x7f, 0x26, 0xcb, 0x78, 0x38, 0xfb, 0x00, 0x01, 0x9a, 0x61, 0x00, 0x28, 98 | 0x4b, 0xff, 0xfd, 0x51, 0x7c, 0x7f, 0x1b, 0x79, 0x40, 0x80, 0xff, 0x9c, 99 | 0x39, 0x20, 0x00, 0x8f, 0x91, 0x3c, 0x00, 0x04, 0x48, 0x00, 0x00, 0xf4, 100 | 0x2f, 0x9f, 0x00, 0x99, 0x41, 0x9e, 0x02, 0x08, 0x2f, 0x9f, 0x00, 0x9a, 101 | 0x41, 0x9e, 0x02, 0x8c, 0x2f, 0x9f, 0x00, 0x80, 0x40, 0x9e, 0xfe, 0x50, 102 | 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 103 | 0x7f, 0x26, 0xcb, 0x78, 0x38, 0xe0, 0x00, 0x44, 0x4b, 0xff, 0xfc, 0x49, 104 | 0x7c, 0x7f, 0x1b, 0x79, 0x41, 0x80, 0x06, 0x38, 0x80, 0x81, 0x00, 0x4c, 105 | 0x81, 0x61, 0x00, 0x28, 0x90, 0x81, 0x00, 0x08, 0x80, 0x81, 0x00, 0x50, 106 | 0x7d, 0x69, 0x03, 0xa6, 0x80, 0xa1, 0x00, 0x34, 0x90, 0x81, 0x00, 0x0c, 107 | 0x80, 0x81, 0x00, 0x54, 0x80, 0xc1, 0x00, 0x38, 0x90, 0x81, 0x00, 0x10, 108 | 0x80, 0x81, 0x00, 0x58, 0x80, 0xe1, 0x00, 0x3c, 0x90, 0x81, 0x00, 0x14, 109 | 0x80, 0x81, 0x00, 0x5c, 0x81, 0x01, 0x00, 0x40, 0x90, 0x81, 0x00, 0x18, 110 | 0x80, 0x81, 0x00, 0x60, 0x81, 0x21, 0x00, 0x44, 0x90, 0x81, 0x00, 0x1c, 111 | 0x80, 0x81, 0x00, 0x64, 0x81, 0x41, 0x00, 0x48, 0x90, 0x81, 0x00, 0x20, 112 | 0x80, 0x81, 0x00, 0x68, 0x80, 0x61, 0x00, 0x2c, 0x90, 0x81, 0x00, 0x24, 113 | 0x80, 0x81, 0x00, 0x30, 0x4e, 0x80, 0x04, 0x21, 0x7f, 0xa5, 0xeb, 0x78, 114 | 0x90, 0x61, 0x00, 0x28, 0x7f, 0x26, 0xcb, 0x78, 0x90, 0x81, 0x00, 0x2c, 115 | 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 0x38, 0xe0, 0x00, 0x08, 116 | 0x4b, 0xff, 0xfc, 0x79, 0x7c, 0x7f, 0x1b, 0x79, 0x40, 0x80, 0xfd, 0x9c, 117 | 0x39, 0x20, 0x01, 0x36, 0x91, 0x3c, 0x00, 0x04, 0x48, 0x00, 0x00, 0x1c, 118 | 0x4b, 0xe6, 0x14, 0x6d, 0x81, 0x23, 0x00, 0x00, 0x2f, 0x89, 0x00, 0x06, 119 | 0x41, 0x9e, 0x04, 0xf8, 0x39, 0x20, 0x00, 0x54, 0x91, 0x3c, 0x00, 0x04, 120 | 0x80, 0x01, 0x04, 0x74, 0x38, 0x60, 0x00, 0x00, 0x93, 0xfc, 0x00, 0x00, 121 | 0x7c, 0x08, 0x03, 0xa6, 0x82, 0x41, 0x04, 0x38, 0x82, 0x61, 0x04, 0x3c, 122 | 0x82, 0x81, 0x04, 0x40, 0x82, 0xa1, 0x04, 0x44, 0x82, 0xc1, 0x04, 0x48, 123 | 0x82, 0xe1, 0x04, 0x4c, 0x83, 0x01, 0x04, 0x50, 0x83, 0x21, 0x04, 0x54, 124 | 0x83, 0x41, 0x04, 0x58, 0x83, 0x61, 0x04, 0x5c, 0x83, 0x81, 0x04, 0x60, 125 | 0x83, 0xa1, 0x04, 0x64, 0x83, 0xc1, 0x04, 0x68, 0x83, 0xe1, 0x04, 0x6c, 126 | 0x38, 0x21, 0x04, 0x70, 0x4e, 0x80, 0x00, 0x20, 0x2f, 0x9f, 0x00, 0x01, 127 | 0x41, 0x9e, 0x01, 0xfc, 0x2f, 0x9f, 0x00, 0x02, 0x40, 0xbe, 0xfd, 0x18, 128 | 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 129 | 0x7f, 0x26, 0xcb, 0x78, 0x38, 0xe0, 0x00, 0x08, 0x4b, 0xff, 0xfb, 0x11, 130 | 0x7c, 0x7f, 0x1b, 0x79, 0x41, 0x80, 0x04, 0x90, 0x81, 0x21, 0x00, 0x28, 131 | 0x38, 0x80, 0x00, 0x02, 0xa1, 0x41, 0x00, 0x2e, 0x7d, 0x23, 0x4b, 0x78, 132 | 0xb1, 0x49, 0x00, 0x00, 0x4b, 0xe4, 0xa4, 0x21, 0x4b, 0xff, 0xfc, 0xdc, 133 | 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 134 | 0x7f, 0x26, 0xcb, 0x78, 0x38, 0xe0, 0x00, 0x24, 0x4b, 0xff, 0xfa, 0xd5, 135 | 0x7c, 0x7f, 0x1b, 0x79, 0x41, 0x80, 0x04, 0xa0, 0x81, 0x61, 0x00, 0x28, 136 | 0x80, 0xa1, 0x00, 0x34, 0x80, 0xc1, 0x00, 0x38, 0x7d, 0x69, 0x03, 0xa6, 137 | 0x80, 0xe1, 0x00, 0x3c, 0x81, 0x01, 0x00, 0x40, 0x81, 0x21, 0x00, 0x44, 138 | 0x81, 0x41, 0x00, 0x48, 0x80, 0x61, 0x00, 0x2c, 0x80, 0x81, 0x00, 0x30, 139 | 0x4e, 0x80, 0x04, 0x21, 0x7f, 0xa5, 0xeb, 0x78, 0x90, 0x61, 0x00, 0x28, 140 | 0x7f, 0x26, 0xcb, 0x78, 0x90, 0x81, 0x00, 0x2c, 0x7f, 0x83, 0xe3, 0x78, 141 | 0x7f, 0x44, 0xd3, 0x78, 0x38, 0xe0, 0x00, 0x08, 0x4b, 0xff, 0xfb, 0x45, 142 | 0x7c, 0x7f, 0x1b, 0x79, 0x40, 0x80, 0xfc, 0x68, 0x39, 0x20, 0x00, 0xea, 143 | 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfe, 0xe8, 0x7f, 0x83, 0xe3, 0x78, 144 | 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 0x38, 0xc1, 0x04, 0x2c, 145 | 0x38, 0xe0, 0x00, 0x01, 0x9a, 0xc1, 0x04, 0x2c, 0x4b, 0xff, 0xfb, 0x15, 146 | 0x7c, 0x7f, 0x1b, 0x79, 0x40, 0x80, 0xfc, 0x38, 0x39, 0x20, 0x01, 0x3b, 147 | 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfe, 0xb8, 0x7f, 0x83, 0xe3, 0x78, 148 | 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 149 | 0x38, 0xe0, 0x00, 0x08, 0x4b, 0xff, 0xfa, 0x25, 0x7c, 0x7f, 0x1b, 0x79, 150 | 0x41, 0x80, 0x03, 0xd0, 0x83, 0xc1, 0x00, 0x2c, 0x83, 0xe1, 0x00, 0x28, 151 | 0x38, 0x60, 0x00, 0x01, 0x38, 0x80, 0x00, 0x00, 0x7f, 0xc5, 0xf3, 0x78, 152 | 0x38, 0xc0, 0x00, 0x00, 0x38, 0xe0, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x01, 153 | 0x7f, 0xe9, 0xfb, 0x78, 0x7c, 0x3e, 0x0b, 0x78, 0x38, 0x00, 0x35, 0x00, 154 | 0x44, 0x00, 0x00, 0x02, 0x60, 0x00, 0x00, 0x00, 0x7f, 0xc1, 0xf3, 0x78, 155 | 0x4b, 0xff, 0xfb, 0xd0, 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 156 | 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 0x38, 0xe0, 0x00, 0x04, 157 | 0x92, 0xe1, 0x00, 0x28, 0x4b, 0xff, 0xfa, 0x89, 0x7c, 0x7f, 0x1b, 0x79, 158 | 0x40, 0x80, 0xfb, 0xac, 0x39, 0x20, 0x01, 0x44, 0x91, 0x3c, 0x00, 0x04, 159 | 0x4b, 0xff, 0xfe, 0x2c, 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 160 | 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 0x38, 0xe0, 0x00, 0x04, 161 | 0x4b, 0xff, 0xf9, 0x99, 0x7c, 0x7f, 0x1b, 0x79, 0x41, 0x80, 0x03, 0x0c, 162 | 0x83, 0xe1, 0x00, 0x28, 0x38, 0x60, 0x00, 0x01, 0x38, 0x80, 0x00, 0x00, 163 | 0x38, 0xa0, 0x00, 0x00, 0x38, 0xc0, 0x00, 0x00, 0x38, 0xe0, 0x00, 0x00, 164 | 0x3d, 0x00, 0x00, 0x01, 0x7f, 0xe9, 0xfb, 0x78, 0x38, 0x00, 0x34, 0x00, 165 | 0x7c, 0x3f, 0x0b, 0x78, 0x44, 0x00, 0x00, 0x02, 0x60, 0x00, 0x00, 0x00, 166 | 0x7f, 0xe1, 0xfb, 0x78, 0x7c, 0x7f, 0x1b, 0x78, 0x7f, 0x83, 0xe3, 0x78, 167 | 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 168 | 0x38, 0xe0, 0x00, 0x04, 0x93, 0xe1, 0x00, 0x28, 0x4b, 0xff, 0xfa, 0x01, 169 | 0x4b, 0xff, 0xfb, 0x28, 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 170 | 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 0x38, 0xe0, 0x00, 0x08, 171 | 0x4b, 0xff, 0xf9, 0x21, 0x7c, 0x7f, 0x1b, 0x79, 0x41, 0x80, 0x02, 0xac, 172 | 0x81, 0x21, 0x00, 0x28, 0x38, 0x80, 0x00, 0x01, 0x89, 0x41, 0x00, 0x2f, 173 | 0x7d, 0x23, 0x4b, 0x78, 0x99, 0x49, 0x00, 0x00, 0x4b, 0xe4, 0xa2, 0x31, 174 | 0x4b, 0xff, 0xfa, 0xec, 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 175 | 0x7f, 0xa5, 0xeb, 0x78, 0x38, 0xc1, 0x04, 0x2c, 0x38, 0xe0, 0x00, 0x01, 176 | 0x4b, 0xff, 0xf8, 0xe5, 0x2c, 0x03, 0x00, 0x00, 0x41, 0x80, 0x02, 0x88, 177 | 0x88, 0xe1, 0x04, 0x2c, 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 178 | 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 0x54, 0xe7, 0x06, 0x3e, 179 | 0x4b, 0xff, 0xf8, 0xc1, 0x7c, 0x7f, 0x1b, 0x79, 0x41, 0x80, 0x02, 0x80, 180 | 0x38, 0x81, 0x04, 0x30, 0x38, 0x61, 0x00, 0x30, 0x83, 0xe1, 0x00, 0x2c, 181 | 0x4b, 0xe4, 0xf4, 0x59, 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 182 | 0x7f, 0xa5, 0xeb, 0x78, 0x38, 0xc1, 0x04, 0x2c, 0x38, 0xe0, 0x00, 0x01, 183 | 0x7f, 0xf9, 0xfa, 0x14, 0x4b, 0xff, 0xf8, 0x8d, 0x2c, 0x03, 0x00, 0x00, 184 | 0x41, 0x80, 0x02, 0x44, 0x88, 0x81, 0x04, 0x2c, 0x80, 0x61, 0x04, 0x30, 185 | 0x7f, 0xe5, 0xfb, 0x78, 0x54, 0x84, 0x06, 0x3e, 0x38, 0xc1, 0x04, 0x2c, 186 | 0x4b, 0xe5, 0x04, 0xe9, 0x81, 0x21, 0x04, 0x2c, 0x7f, 0x83, 0xe3, 0x78, 187 | 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 188 | 0x38, 0xe0, 0x00, 0x04, 0x91, 0x21, 0x00, 0x28, 0x4b, 0xff, 0xf9, 0x11, 189 | 0x7c, 0x7f, 0x1b, 0x79, 0x40, 0x80, 0xfa, 0x34, 0x39, 0x20, 0x01, 0x00, 190 | 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfc, 0xb4, 0x7f, 0x83, 0xe3, 0x78, 191 | 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 192 | 0x38, 0xe0, 0x00, 0x0c, 0x4b, 0xff, 0xf8, 0x21, 0x7c, 0x7f, 0x1b, 0x79, 193 | 0x41, 0x80, 0x02, 0x04, 0x81, 0x21, 0x00, 0x28, 0x81, 0x01, 0x00, 0x30, 194 | 0x80, 0xe1, 0x00, 0x2c, 0x7d, 0x09, 0x42, 0x14, 0x7f, 0x89, 0x40, 0x00, 195 | 0x41, 0xbc, 0x00, 0x14, 0x48, 0x00, 0x01, 0x5c, 0x39, 0x29, 0x00, 0x04, 196 | 0x7f, 0x89, 0x40, 0x00, 0x40, 0x9c, 0x01, 0x50, 0x81, 0x49, 0x00, 0x00, 197 | 0x7f, 0x8a, 0x38, 0x00, 0x40, 0x9e, 0xff, 0xec, 0x7f, 0x83, 0xe3, 0x78, 198 | 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 199 | 0x38, 0xe0, 0x00, 0x04, 0x91, 0x21, 0x00, 0x28, 0x4b, 0xff, 0xf8, 0x8d, 200 | 0x7c, 0x7f, 0x1b, 0x79, 0x40, 0x80, 0xf9, 0xb0, 0x39, 0x20, 0x01, 0x15, 201 | 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfc, 0x30, 0x7f, 0x83, 0xe3, 0x78, 202 | 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 203 | 0x38, 0xe0, 0x00, 0x08, 0x4b, 0xff, 0xf7, 0x9d, 0x7c, 0x7f, 0x1b, 0x79, 204 | 0x41, 0x80, 0x01, 0x34, 0x81, 0x21, 0x00, 0x28, 0x38, 0x80, 0x00, 0x04, 205 | 0x81, 0x41, 0x00, 0x2c, 0x7d, 0x23, 0x4b, 0x78, 0x91, 0x49, 0x00, 0x00, 206 | 0x4b, 0xe4, 0xa0, 0xad, 0x4b, 0xff, 0xf9, 0x68, 0x7f, 0x83, 0xe3, 0x78, 207 | 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 208 | 0x38, 0xe0, 0x00, 0x08, 0x4b, 0xff, 0xf7, 0x61, 0x7c, 0x7f, 0x1b, 0x79, 209 | 0x41, 0x80, 0x01, 0x38, 0x83, 0xc1, 0x00, 0x28, 0x82, 0x81, 0x00, 0x2c, 210 | 0x7f, 0x9e, 0xa0, 0x40, 0x41, 0x9e, 0x00, 0x88, 0x7f, 0x7e, 0xa0, 0x50, 211 | 0x3d, 0x3e, 0xf0, 0x00, 0x2f, 0x9b, 0x04, 0x00, 0x7f, 0xc6, 0xf3, 0x78, 212 | 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x83, 0xe3, 0x78, 213 | 0x7f, 0x09, 0xc0, 0x40, 0x40, 0x9d, 0x00, 0x08, 0x3b, 0x60, 0x04, 0x00, 214 | 0x7f, 0x67, 0xdb, 0x78, 0x40, 0x99, 0x00, 0x38, 0x7f, 0x44, 0xd3, 0x78, 215 | 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 0x7f, 0x67, 0xdb, 0x78, 216 | 0x7f, 0x83, 0xe3, 0x78, 0x4b, 0xff, 0xf7, 0x01, 0x7c, 0x7f, 0x1b, 0x79, 217 | 0x41, 0x80, 0x00, 0x68, 0x7f, 0xc3, 0xf3, 0x78, 0x7f, 0x24, 0xcb, 0x78, 218 | 0x7f, 0x65, 0xdb, 0x78, 0x4b, 0xe5, 0x7b, 0xa1, 0x48, 0x00, 0x00, 0x18, 219 | 0x4b, 0xff, 0xf6, 0xe1, 0x7f, 0x99, 0xf0, 0x00, 0x7c, 0x7f, 0x1b, 0x79, 220 | 0x41, 0x80, 0x00, 0x44, 0x41, 0xbe, 0xff, 0xdc, 0x7f, 0xde, 0xda, 0x14, 221 | 0x7f, 0x94, 0xf0, 0x40, 0x40, 0x9e, 0xff, 0x80, 0x7f, 0x83, 0xe3, 0x78, 222 | 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 0x38, 0xc1, 0x04, 0x2c, 223 | 0x38, 0xe0, 0x00, 0x01, 0x9a, 0xa1, 0x04, 0x2c, 0x4b, 0xff, 0xf7, 0x6d, 224 | 0x4b, 0xff, 0xf8, 0x94, 0x39, 0x20, 0x00, 0x00, 0x4b, 0xff, 0xfe, 0xbc, 225 | 0x4b, 0xf6, 0xe6, 0xd5, 0x4b, 0xff, 0xf8, 0x84, 0x39, 0x20, 0x00, 0xc4, 226 | 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfb, 0x04, 0x39, 0x20, 0x00, 0xa7, 227 | 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfa, 0xf8, 0x39, 0x20, 0x00, 0x67, 228 | 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfa, 0xec, 0x39, 0x20, 0x00, 0x5d, 229 | 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfa, 0xe0, 0x39, 0x20, 0x00, 0x71, 230 | 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfa, 0xd4, 0x7c, 0x67, 0x1b, 0x78, 231 | 0x4b, 0xff, 0xfd, 0x7c, 0x39, 0x20, 0x00, 0x9c, 0x91, 0x3c, 0x00, 0x04, 232 | 0x4b, 0xff, 0xfa, 0xc0, 0x7c, 0x64, 0x1b, 0x78, 0x4b, 0xff, 0xfd, 0xc0, 233 | 0x39, 0x20, 0x00, 0xf1, 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfa, 0xac, 234 | 0x39, 0x20, 0x00, 0xda, 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfa, 0xa0, 235 | 0x39, 0x20, 0x00, 0xb4, 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfa, 0x94, 236 | 0x39, 0x20, 0x01, 0x05, 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfa, 0x88, 237 | 0x39, 0x20, 0x01, 0x1e, 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfa, 0x7c, 238 | 0x39, 0x20, 0x00, 0x7b, 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfa, 0x70, 239 | 0x39, 0x20, 0x00, 0x8a, 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfa, 0x64, 240 | 0x94, 0x21, 0xff, 0xa0, 0x7c, 0x08, 0x02, 0xa6, 0x7d, 0x80, 0x00, 0x26, 241 | 0x93, 0x81, 0x00, 0x50, 0x3b, 0x80, 0xff, 0xff, 0x2d, 0x9c, 0xff, 0xff, 242 | 0x92, 0x81, 0x00, 0x30, 0x92, 0xa1, 0x00, 0x34, 0x3a, 0x80, 0x00, 0x3e, 243 | 0x92, 0xc1, 0x00, 0x38, 0x3a, 0xa0, 0x00, 0x3a, 0x92, 0xe1, 0x00, 0x3c, 244 | 0x3a, 0xc0, 0x00, 0x37, 0x93, 0x01, 0x00, 0x40, 0x3a, 0xe0, 0x00, 0x35, 245 | 0x93, 0x21, 0x00, 0x44, 0x3b, 0x00, 0x00, 0x33, 0x93, 0x41, 0x00, 0x48, 246 | 0x3b, 0x20, 0x00, 0x02, 0x93, 0x61, 0x00, 0x4c, 0x3b, 0x40, 0x1c, 0xa3, 247 | 0x93, 0xa1, 0x00, 0x54, 0x3b, 0x60, 0x00, 0x00, 0x90, 0x01, 0x00, 0x64, 248 | 0x7c, 0x9d, 0x23, 0x78, 0x93, 0xc1, 0x00, 0x58, 0x93, 0xe1, 0x00, 0x5c, 249 | 0x91, 0x81, 0x00, 0x2c, 0x4b, 0xed, 0x43, 0x49, 0x38, 0x60, 0x00, 0x02, 250 | 0x38, 0x80, 0x00, 0x01, 0x38, 0xa0, 0x00, 0x06, 0xb3, 0x21, 0x00, 0x08, 251 | 0xb3, 0x41, 0x00, 0x0a, 0x93, 0x61, 0x00, 0x0c, 0x4b, 0xed, 0x58, 0x39, 252 | 0x2e, 0x03, 0xff, 0xff, 0x7c, 0x7f, 0x1b, 0x78, 0x40, 0x92, 0x00, 0x4c, 253 | 0x93, 0x1d, 0x00, 0x04, 0x3b, 0xc0, 0xff, 0xff, 0x2f, 0x9c, 0xff, 0xff, 254 | 0x41, 0x9e, 0x00, 0x0c, 0x7f, 0x83, 0xe3, 0x78, 0x4b, 0xed, 0x59, 0x5d, 255 | 0x40, 0x92, 0x00, 0x84, 0x93, 0xdd, 0x00, 0x00, 0x38, 0x60, 0x00, 0x02, 256 | 0x38, 0x80, 0x00, 0x01, 0x38, 0xa0, 0x00, 0x06, 0xb3, 0x21, 0x00, 0x08, 257 | 0xb3, 0x41, 0x00, 0x0a, 0x93, 0x61, 0x00, 0x0c, 0x4b, 0xed, 0x57, 0xf1, 258 | 0x2e, 0x03, 0xff, 0xff, 0x7c, 0x7f, 0x1b, 0x78, 0x41, 0xb2, 0xff, 0xbc, 259 | 0x38, 0x81, 0x00, 0x08, 0x38, 0xa0, 0x00, 0x10, 0x4b, 0xed, 0x46, 0x3d, 260 | 0x7c, 0x7e, 0x1b, 0x79, 0x41, 0x80, 0x00, 0x54, 0x7f, 0xe3, 0xfb, 0x78, 261 | 0x38, 0x80, 0x00, 0x01, 0x4b, 0xed, 0x49, 0x29, 0x7c, 0x7e, 0x1b, 0x79, 262 | 0x41, 0x80, 0x00, 0x48, 0x39, 0x20, 0x00, 0x10, 0x7f, 0xe3, 0xfb, 0x78, 263 | 0x38, 0x81, 0x00, 0x08, 0x38, 0xa1, 0x00, 0x18, 0x91, 0x21, 0x00, 0x18, 264 | 0x4b, 0xed, 0x44, 0x89, 0x2f, 0x83, 0xff, 0xff, 0x7c, 0x7c, 0x1b, 0x78, 265 | 0x40, 0x9e, 0x00, 0x2c, 0x92, 0xbd, 0x00, 0x04, 0x3b, 0xc0, 0xff, 0xff, 266 | 0x7f, 0xe3, 0xfb, 0x78, 0x4b, 0xed, 0x58, 0xd1, 0x93, 0xdd, 0x00, 0x00, 267 | 0x4b, 0xff, 0xff, 0x78, 0x92, 0xfd, 0x00, 0x04, 0x4b, 0xff, 0xff, 0x58, 268 | 0x92, 0xdd, 0x00, 0x04, 0x4b, 0xff, 0xff, 0x50, 0x7f, 0xe3, 0xfb, 0x78, 269 | 0x4b, 0xed, 0x58, 0xb1, 0x7f, 0xa3, 0xeb, 0x78, 0x7f, 0x84, 0xe3, 0x78, 270 | 0x4b, 0xff, 0xf6, 0x05, 0x7c, 0x7e, 0x1b, 0x79, 0x41, 0x80, 0x00, 0x14, 271 | 0x7f, 0x83, 0xe3, 0x78, 0x3b, 0x80, 0xff, 0xff, 0x4b, 0xed, 0x58, 0x91, 272 | 0x4b, 0xff, 0xfe, 0xf4, 0x92, 0x9d, 0x00, 0x04, 0x3b, 0xe0, 0xff, 0xff, 273 | 0x4e, 0x0c, 0x00, 0x00, 0x4b, 0xff, 0xff, 0x1c 274 | }; 275 | static const unsigned int codehandler_text_bin_len = 3260; 276 | -------------------------------------------------------------------------------- /installer/src/codehandler400.h: -------------------------------------------------------------------------------- 1 | static const unsigned char codehandler_text_bin[] = { 2 | 0x94, 0x21, 0xff, 0xe8, 0x7c, 0x08, 0x02, 0xa6, 0x3d, 0x20, 0x10, 0x05, 3 | 0x81, 0x29, 0x9c, 0x1c, 0x93, 0x81, 0x00, 0x08, 0x7c, 0x7c, 0x1b, 0x78, 4 | 0x38, 0x60, 0x00, 0x00, 0x93, 0xa1, 0x00, 0x0c, 0x93, 0xe1, 0x00, 0x14, 5 | 0x7c, 0x9d, 0x23, 0x78, 0x90, 0x01, 0x00, 0x1c, 0x60, 0x63, 0x86, 0xa8, 6 | 0x93, 0xc1, 0x00, 0x10, 0x38, 0x80, 0x00, 0x40, 0x7d, 0x29, 0x03, 0xa6, 7 | 0x4e, 0x80, 0x04, 0x21, 0x7c, 0x7f, 0x1b, 0x79, 0x41, 0x82, 0x00, 0x50, 8 | 0x38, 0xa0, 0x00, 0x00, 0x38, 0x80, 0x00, 0x00, 0x60, 0xa5, 0x86, 0xa8, 9 | 0x3b, 0xdf, 0x00, 0x08, 0x4b, 0xe5, 0x3e, 0x2d, 0x3c, 0xff, 0x00, 0x01, 10 | 0x3c, 0x80, 0x01, 0x1e, 0x39, 0x00, 0x00, 0x00, 0x7f, 0xc3, 0xf3, 0x78, 11 | 0x38, 0x84, 0xdb, 0x28, 0x38, 0xa0, 0x00, 0x00, 0x7f, 0xe6, 0xfb, 0x78, 12 | 0x38, 0xe7, 0x86, 0xa8, 0x61, 0x08, 0x80, 0x00, 0x39, 0x20, 0x00, 0x00, 13 | 0x39, 0x40, 0x00, 0x0c, 0x4b, 0xe5, 0xe5, 0x49, 0x7f, 0xc3, 0xf3, 0x78, 14 | 0x4b, 0xe5, 0xea, 0x25, 0x3d, 0x20, 0x10, 0x06, 0x80, 0x01, 0x00, 0x1c, 15 | 0x81, 0x29, 0xa6, 0x00, 0x7f, 0x83, 0xe3, 0x78, 0x83, 0xc1, 0x00, 0x10, 16 | 0x7f, 0xa4, 0xeb, 0x78, 0x83, 0x81, 0x00, 0x08, 0x7d, 0x29, 0x03, 0xa6, 17 | 0x83, 0xa1, 0x00, 0x0c, 0x83, 0xe1, 0x00, 0x14, 0x7c, 0x08, 0x03, 0xa6, 18 | 0x38, 0x21, 0x00, 0x18, 0x4e, 0x80, 0x04, 0x20, 0x94, 0x21, 0xff, 0xe8, 19 | 0x7c, 0x08, 0x02, 0xa6, 0x38, 0xa0, 0x00, 0x01, 0x38, 0xc0, 0x00, 0x20, 20 | 0x38, 0x81, 0x00, 0x08, 0x90, 0x01, 0x00, 0x1c, 0x4b, 0xed, 0x7b, 0xe1, 21 | 0x2c, 0x03, 0x00, 0x00, 0x41, 0x80, 0x00, 0x0c, 0x41, 0x82, 0x00, 0x18, 22 | 0x88, 0x61, 0x00, 0x08, 0x80, 0x01, 0x00, 0x1c, 0x38, 0x21, 0x00, 0x18, 23 | 0x7c, 0x08, 0x03, 0xa6, 0x4e, 0x80, 0x00, 0x20, 0x38, 0x60, 0xff, 0xff, 24 | 0x4b, 0xff, 0xff, 0xec, 0x94, 0x21, 0xff, 0xe0, 0x7c, 0x08, 0x02, 0xa6, 25 | 0x93, 0xe1, 0x00, 0x1c, 0x7c, 0xff, 0x3b, 0x79, 0x93, 0x61, 0x00, 0x0c, 26 | 0x7c, 0x9b, 0x23, 0x78, 0x93, 0x81, 0x00, 0x10, 0x7c, 0x7c, 0x1b, 0x78, 27 | 0x93, 0xa1, 0x00, 0x14, 0x7c, 0xbd, 0x2b, 0x78, 0x93, 0xc1, 0x00, 0x18, 28 | 0x7c, 0xde, 0x33, 0x78, 0x90, 0x01, 0x00, 0x24, 0x41, 0xa1, 0x00, 0x0c, 29 | 0x48, 0x00, 0x00, 0x64, 0x40, 0x9d, 0x00, 0x60, 0x7f, 0xc4, 0xf3, 0x78, 30 | 0x7f, 0xe5, 0xfb, 0x78, 0x7f, 0xa3, 0xeb, 0x78, 0x38, 0xc0, 0x00, 0x00, 31 | 0x4b, 0xed, 0x7b, 0x65, 0x7c, 0x69, 0x1b, 0x79, 0x7f, 0xe9, 0xf8, 0x50, 32 | 0x7f, 0xde, 0x4a, 0x14, 0x2f, 0x9f, 0x00, 0x00, 0x40, 0x80, 0xff, 0xd8, 33 | 0x80, 0x01, 0x00, 0x24, 0x39, 0x40, 0x01, 0x5c, 0x91, 0x5b, 0x00, 0x00, 34 | 0x7d, 0x23, 0x4b, 0x78, 0x7c, 0x08, 0x03, 0xa6, 0x91, 0x3c, 0x00, 0x00, 35 | 0x83, 0x61, 0x00, 0x0c, 0x83, 0x81, 0x00, 0x10, 0x83, 0xa1, 0x00, 0x14, 36 | 0x83, 0xc1, 0x00, 0x18, 0x83, 0xe1, 0x00, 0x1c, 0x38, 0x21, 0x00, 0x20, 37 | 0x4e, 0x80, 0x00, 0x20, 0x80, 0x01, 0x00, 0x24, 0x38, 0x60, 0x00, 0x00, 38 | 0x83, 0x61, 0x00, 0x0c, 0x7c, 0x08, 0x03, 0xa6, 0x83, 0x81, 0x00, 0x10, 39 | 0x83, 0xa1, 0x00, 0x14, 0x83, 0xc1, 0x00, 0x18, 0x83, 0xe1, 0x00, 0x1c, 40 | 0x38, 0x21, 0x00, 0x20, 0x4e, 0x80, 0x00, 0x20, 0x94, 0x21, 0xff, 0xe0, 41 | 0x7c, 0x08, 0x02, 0xa6, 0x93, 0xe1, 0x00, 0x1c, 0x7c, 0xff, 0x3b, 0x79, 42 | 0x93, 0x61, 0x00, 0x0c, 0x7c, 0x9b, 0x23, 0x78, 0x93, 0x81, 0x00, 0x10, 43 | 0x7c, 0x7c, 0x1b, 0x78, 0x93, 0xa1, 0x00, 0x14, 0x7c, 0xbd, 0x2b, 0x78, 44 | 0x93, 0xc1, 0x00, 0x18, 0x7c, 0xde, 0x33, 0x78, 0x90, 0x01, 0x00, 0x24, 45 | 0x41, 0xa1, 0x00, 0x0c, 0x48, 0x00, 0x00, 0x64, 0x40, 0x9d, 0x00, 0x60, 46 | 0x7f, 0xc4, 0xf3, 0x78, 0x7f, 0xe5, 0xfb, 0x78, 0x7f, 0xa3, 0xeb, 0x78, 47 | 0x38, 0xc0, 0x00, 0x00, 0x4b, 0xed, 0x83, 0x09, 0x7c, 0x69, 0x1b, 0x79, 48 | 0x7f, 0xe9, 0xf8, 0x50, 0x7f, 0xde, 0x4a, 0x14, 0x2f, 0x9f, 0x00, 0x00, 49 | 0x40, 0x80, 0xff, 0xd8, 0x80, 0x01, 0x00, 0x24, 0x39, 0x40, 0x01, 0x7d, 50 | 0x91, 0x5b, 0x00, 0x00, 0x7d, 0x23, 0x4b, 0x78, 0x7c, 0x08, 0x03, 0xa6, 51 | 0x91, 0x3c, 0x00, 0x00, 0x83, 0x61, 0x00, 0x0c, 0x83, 0x81, 0x00, 0x10, 52 | 0x83, 0xa1, 0x00, 0x14, 0x83, 0xc1, 0x00, 0x18, 0x83, 0xe1, 0x00, 0x1c, 53 | 0x38, 0x21, 0x00, 0x20, 0x4e, 0x80, 0x00, 0x20, 0x80, 0x01, 0x00, 0x24, 54 | 0x38, 0x60, 0x00, 0x00, 0x83, 0x61, 0x00, 0x0c, 0x7c, 0x08, 0x03, 0xa6, 55 | 0x83, 0x81, 0x00, 0x10, 0x83, 0xa1, 0x00, 0x14, 0x83, 0xc1, 0x00, 0x18, 56 | 0x83, 0xe1, 0x00, 0x1c, 0x38, 0x21, 0x00, 0x20, 0x4e, 0x80, 0x00, 0x20, 57 | 0x7c, 0x08, 0x02, 0xa6, 0x94, 0x21, 0xfb, 0x90, 0x92, 0xe1, 0x04, 0x4c, 58 | 0x3e, 0xe0, 0x00, 0x00, 0x90, 0x01, 0x04, 0x74, 0x3a, 0xf7, 0x01, 0x90, 59 | 0x92, 0x41, 0x04, 0x38, 0x92, 0x61, 0x04, 0x3c, 0x92, 0x81, 0x04, 0x40, 60 | 0x93, 0x61, 0x04, 0x5c, 0x93, 0xc1, 0x04, 0x68, 0x93, 0xe1, 0x04, 0x6c, 61 | 0x92, 0xa1, 0x04, 0x44, 0x3a, 0xa0, 0xff, 0xaa, 0x92, 0xc1, 0x04, 0x48, 62 | 0x3a, 0xc0, 0xff, 0x82, 0x93, 0x01, 0x04, 0x50, 0x3f, 0x00, 0x40, 0x00, 63 | 0x93, 0x21, 0x04, 0x54, 0x3b, 0x21, 0x00, 0x28, 0x93, 0x41, 0x04, 0x58, 64 | 0x3b, 0x43, 0x00, 0x04, 0x93, 0x81, 0x04, 0x60, 0x7c, 0x7c, 0x1b, 0x78, 65 | 0x93, 0xa1, 0x04, 0x64, 0x7c, 0x9d, 0x23, 0x78, 0x7f, 0xa3, 0xeb, 0x78, 66 | 0x4b, 0xff, 0xfd, 0xc9, 0x7c, 0x7f, 0x1b, 0x79, 0x41, 0x80, 0x02, 0x68, 67 | 0x2f, 0x9f, 0x00, 0x41, 0x41, 0x9e, 0x06, 0x88, 0x40, 0x9d, 0x00, 0x58, 68 | 0x2f, 0x9f, 0x00, 0x72, 0x41, 0x9e, 0x05, 0xbc, 0x41, 0x9d, 0x01, 0x78, 69 | 0x2f, 0x9f, 0x00, 0x70, 0x41, 0x9e, 0x02, 0xfc, 0x41, 0x9d, 0x04, 0xe8, 70 | 0x2f, 0x9f, 0x00, 0x50, 0x40, 0xbe, 0xff, 0xc8, 0x39, 0x20, 0x00, 0x01, 71 | 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 72 | 0x38, 0xc1, 0x04, 0x2c, 0x38, 0xe0, 0x00, 0x01, 0x99, 0x21, 0x04, 0x2c, 73 | 0x4b, 0xff, 0xfe, 0x7d, 0x7c, 0x7f, 0x1b, 0x79, 0x40, 0x80, 0xff, 0xa0, 74 | 0x39, 0x20, 0x00, 0xd1, 0x91, 0x3c, 0x00, 0x04, 0x48, 0x00, 0x02, 0x20, 75 | 0x2f, 0x9f, 0x00, 0x03, 0x41, 0x9e, 0x05, 0xec, 0x40, 0x9d, 0x02, 0x64, 76 | 0x2f, 0x9f, 0x00, 0x0b, 0x41, 0x9e, 0x03, 0x58, 0x2f, 0x9f, 0x00, 0x0c, 77 | 0x41, 0x9e, 0x03, 0xdc, 0x2f, 0x9f, 0x00, 0x04, 0x40, 0x9e, 0xff, 0x70, 78 | 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 79 | 0x7f, 0x26, 0xcb, 0x78, 0x38, 0xe0, 0x00, 0x08, 0x4b, 0xff, 0xfd, 0x69, 80 | 0x7c, 0x7f, 0x1b, 0x79, 0x41, 0x80, 0x07, 0x64, 0x83, 0xc1, 0x00, 0x28, 81 | 0x3a, 0x40, 0xff, 0xb0, 0x82, 0x81, 0x00, 0x2c, 0x3a, 0x60, 0xff, 0xbd, 82 | 0x7f, 0x9e, 0xa0, 0x40, 0x41, 0xbe, 0xff, 0x38, 0x7f, 0x7e, 0xa0, 0x50, 83 | 0x2f, 0x9b, 0x04, 0x00, 0x40, 0x9d, 0x00, 0x7c, 0x3b, 0x60, 0x04, 0x00, 84 | 0x89, 0x3e, 0x00, 0x00, 0x2f, 0x89, 0x00, 0x00, 0x40, 0x9e, 0x00, 0x78, 85 | 0x7f, 0x69, 0x03, 0xa6, 0x48, 0x00, 0x00, 0x10, 0x7d, 0x5e, 0x48, 0xae, 86 | 0x2f, 0x8a, 0x00, 0x00, 0x40, 0x9e, 0x00, 0x64, 0x39, 0x29, 0x00, 0x01, 87 | 0x42, 0x00, 0xff, 0xf0, 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 88 | 0x7f, 0xa5, 0xeb, 0x78, 0x38, 0xc1, 0x04, 0x2c, 0x38, 0xe0, 0x00, 0x01, 89 | 0x9a, 0x41, 0x04, 0x2c, 0x4b, 0xff, 0xfd, 0xb9, 0x7c, 0x7f, 0x1b, 0x79, 90 | 0x41, 0x80, 0x06, 0xfc, 0x7f, 0xa3, 0xeb, 0x78, 0x4b, 0xff, 0xfc, 0xa1, 91 | 0x2f, 0x83, 0x00, 0xcc, 0x41, 0xbe, 0xfe, 0xcc, 0x7f, 0xde, 0xda, 0x14, 92 | 0x7f, 0x94, 0xf0, 0x40, 0x41, 0xbe, 0xfe, 0xc0, 0x7f, 0x7e, 0xa0, 0x50, 93 | 0x2f, 0x9b, 0x04, 0x00, 0x41, 0xbd, 0xff, 0x8c, 0x2f, 0x9b, 0x00, 0x00, 94 | 0x41, 0x9d, 0xff, 0x88, 0x41, 0xbe, 0xff, 0xac, 0x7f, 0xc4, 0xf3, 0x78, 95 | 0x7f, 0x65, 0xdb, 0x78, 0x38, 0x61, 0x00, 0x29, 0x4b, 0xe5, 0x3a, 0x35, 96 | 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 97 | 0x7f, 0x26, 0xcb, 0x78, 0x38, 0xfb, 0x00, 0x01, 0x9a, 0x61, 0x00, 0x28, 98 | 0x4b, 0xff, 0xfd, 0x51, 0x7c, 0x7f, 0x1b, 0x79, 0x40, 0x80, 0xff, 0x9c, 99 | 0x39, 0x20, 0x00, 0x8f, 0x91, 0x3c, 0x00, 0x04, 0x48, 0x00, 0x00, 0xf4, 100 | 0x2f, 0x9f, 0x00, 0x99, 0x41, 0x9e, 0x02, 0x08, 0x2f, 0x9f, 0x00, 0x9a, 101 | 0x41, 0x9e, 0x02, 0x8c, 0x2f, 0x9f, 0x00, 0x80, 0x40, 0x9e, 0xfe, 0x50, 102 | 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 103 | 0x7f, 0x26, 0xcb, 0x78, 0x38, 0xe0, 0x00, 0x44, 0x4b, 0xff, 0xfc, 0x49, 104 | 0x7c, 0x7f, 0x1b, 0x79, 0x41, 0x80, 0x06, 0x38, 0x80, 0x81, 0x00, 0x4c, 105 | 0x81, 0x61, 0x00, 0x28, 0x90, 0x81, 0x00, 0x08, 0x80, 0x81, 0x00, 0x50, 106 | 0x7d, 0x69, 0x03, 0xa6, 0x80, 0xa1, 0x00, 0x34, 0x90, 0x81, 0x00, 0x0c, 107 | 0x80, 0x81, 0x00, 0x54, 0x80, 0xc1, 0x00, 0x38, 0x90, 0x81, 0x00, 0x10, 108 | 0x80, 0x81, 0x00, 0x58, 0x80, 0xe1, 0x00, 0x3c, 0x90, 0x81, 0x00, 0x14, 109 | 0x80, 0x81, 0x00, 0x5c, 0x81, 0x01, 0x00, 0x40, 0x90, 0x81, 0x00, 0x18, 110 | 0x80, 0x81, 0x00, 0x60, 0x81, 0x21, 0x00, 0x44, 0x90, 0x81, 0x00, 0x1c, 111 | 0x80, 0x81, 0x00, 0x64, 0x81, 0x41, 0x00, 0x48, 0x90, 0x81, 0x00, 0x20, 112 | 0x80, 0x81, 0x00, 0x68, 0x80, 0x61, 0x00, 0x2c, 0x90, 0x81, 0x00, 0x24, 113 | 0x80, 0x81, 0x00, 0x30, 0x4e, 0x80, 0x04, 0x21, 0x7f, 0xa5, 0xeb, 0x78, 114 | 0x90, 0x61, 0x00, 0x28, 0x7f, 0x26, 0xcb, 0x78, 0x90, 0x81, 0x00, 0x2c, 115 | 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 0x38, 0xe0, 0x00, 0x08, 116 | 0x4b, 0xff, 0xfc, 0x79, 0x7c, 0x7f, 0x1b, 0x79, 0x40, 0x80, 0xfd, 0x9c, 117 | 0x39, 0x20, 0x01, 0x36, 0x91, 0x3c, 0x00, 0x04, 0x48, 0x00, 0x00, 0x1c, 118 | 0x4b, 0xe5, 0xce, 0xc5, 0x81, 0x23, 0x00, 0x00, 0x2f, 0x89, 0x00, 0x06, 119 | 0x41, 0x9e, 0x04, 0xf8, 0x39, 0x20, 0x00, 0x54, 0x91, 0x3c, 0x00, 0x04, 120 | 0x80, 0x01, 0x04, 0x74, 0x38, 0x60, 0x00, 0x00, 0x93, 0xfc, 0x00, 0x00, 121 | 0x7c, 0x08, 0x03, 0xa6, 0x82, 0x41, 0x04, 0x38, 0x82, 0x61, 0x04, 0x3c, 122 | 0x82, 0x81, 0x04, 0x40, 0x82, 0xa1, 0x04, 0x44, 0x82, 0xc1, 0x04, 0x48, 123 | 0x82, 0xe1, 0x04, 0x4c, 0x83, 0x01, 0x04, 0x50, 0x83, 0x21, 0x04, 0x54, 124 | 0x83, 0x41, 0x04, 0x58, 0x83, 0x61, 0x04, 0x5c, 0x83, 0x81, 0x04, 0x60, 125 | 0x83, 0xa1, 0x04, 0x64, 0x83, 0xc1, 0x04, 0x68, 0x83, 0xe1, 0x04, 0x6c, 126 | 0x38, 0x21, 0x04, 0x70, 0x4e, 0x80, 0x00, 0x20, 0x2f, 0x9f, 0x00, 0x01, 127 | 0x41, 0x9e, 0x01, 0xfc, 0x2f, 0x9f, 0x00, 0x02, 0x40, 0xbe, 0xfd, 0x18, 128 | 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 129 | 0x7f, 0x26, 0xcb, 0x78, 0x38, 0xe0, 0x00, 0x08, 0x4b, 0xff, 0xfb, 0x11, 130 | 0x7c, 0x7f, 0x1b, 0x79, 0x41, 0x80, 0x04, 0x90, 0x81, 0x21, 0x00, 0x28, 131 | 0x38, 0x80, 0x00, 0x02, 0xa1, 0x41, 0x00, 0x2e, 0x7d, 0x23, 0x4b, 0x78, 132 | 0xb1, 0x49, 0x00, 0x00, 0x4b, 0xe4, 0x38, 0x91, 0x4b, 0xff, 0xfc, 0xdc, 133 | 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 134 | 0x7f, 0x26, 0xcb, 0x78, 0x38, 0xe0, 0x00, 0x24, 0x4b, 0xff, 0xfa, 0xd5, 135 | 0x7c, 0x7f, 0x1b, 0x79, 0x41, 0x80, 0x04, 0xa0, 0x81, 0x61, 0x00, 0x28, 136 | 0x80, 0xa1, 0x00, 0x34, 0x80, 0xc1, 0x00, 0x38, 0x7d, 0x69, 0x03, 0xa6, 137 | 0x80, 0xe1, 0x00, 0x3c, 0x81, 0x01, 0x00, 0x40, 0x81, 0x21, 0x00, 0x44, 138 | 0x81, 0x41, 0x00, 0x48, 0x80, 0x61, 0x00, 0x2c, 0x80, 0x81, 0x00, 0x30, 139 | 0x4e, 0x80, 0x04, 0x21, 0x7f, 0xa5, 0xeb, 0x78, 0x90, 0x61, 0x00, 0x28, 140 | 0x7f, 0x26, 0xcb, 0x78, 0x90, 0x81, 0x00, 0x2c, 0x7f, 0x83, 0xe3, 0x78, 141 | 0x7f, 0x44, 0xd3, 0x78, 0x38, 0xe0, 0x00, 0x08, 0x4b, 0xff, 0xfb, 0x45, 142 | 0x7c, 0x7f, 0x1b, 0x79, 0x40, 0x80, 0xfc, 0x68, 0x39, 0x20, 0x00, 0xea, 143 | 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfe, 0xe8, 0x7f, 0x83, 0xe3, 0x78, 144 | 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 0x38, 0xc1, 0x04, 0x2c, 145 | 0x38, 0xe0, 0x00, 0x01, 0x9a, 0xc1, 0x04, 0x2c, 0x4b, 0xff, 0xfb, 0x15, 146 | 0x7c, 0x7f, 0x1b, 0x79, 0x40, 0x80, 0xfc, 0x38, 0x39, 0x20, 0x01, 0x3b, 147 | 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfe, 0xb8, 0x7f, 0x83, 0xe3, 0x78, 148 | 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 149 | 0x38, 0xe0, 0x00, 0x08, 0x4b, 0xff, 0xfa, 0x25, 0x7c, 0x7f, 0x1b, 0x79, 150 | 0x41, 0x80, 0x03, 0xd0, 0x83, 0xc1, 0x00, 0x2c, 0x83, 0xe1, 0x00, 0x28, 151 | 0x38, 0x60, 0x00, 0x01, 0x38, 0x80, 0x00, 0x00, 0x7f, 0xc5, 0xf3, 0x78, 152 | 0x38, 0xc0, 0x00, 0x00, 0x38, 0xe0, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x01, 153 | 0x7f, 0xe9, 0xfb, 0x78, 0x7c, 0x3e, 0x0b, 0x78, 0x38, 0x00, 0x35, 0x00, 154 | 0x44, 0x00, 0x00, 0x02, 0x60, 0x00, 0x00, 0x00, 0x7f, 0xc1, 0xf3, 0x78, 155 | 0x4b, 0xff, 0xfb, 0xd0, 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 156 | 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 0x38, 0xe0, 0x00, 0x04, 157 | 0x92, 0xe1, 0x00, 0x28, 0x4b, 0xff, 0xfa, 0x89, 0x7c, 0x7f, 0x1b, 0x79, 158 | 0x40, 0x80, 0xfb, 0xac, 0x39, 0x20, 0x01, 0x44, 0x91, 0x3c, 0x00, 0x04, 159 | 0x4b, 0xff, 0xfe, 0x2c, 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 160 | 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 0x38, 0xe0, 0x00, 0x04, 161 | 0x4b, 0xff, 0xf9, 0x99, 0x7c, 0x7f, 0x1b, 0x79, 0x41, 0x80, 0x03, 0x0c, 162 | 0x83, 0xe1, 0x00, 0x28, 0x38, 0x60, 0x00, 0x01, 0x38, 0x80, 0x00, 0x00, 163 | 0x38, 0xa0, 0x00, 0x00, 0x38, 0xc0, 0x00, 0x00, 0x38, 0xe0, 0x00, 0x00, 164 | 0x3d, 0x00, 0x00, 0x01, 0x7f, 0xe9, 0xfb, 0x78, 0x38, 0x00, 0x34, 0x00, 165 | 0x7c, 0x3f, 0x0b, 0x78, 0x44, 0x00, 0x00, 0x02, 0x60, 0x00, 0x00, 0x00, 166 | 0x7f, 0xe1, 0xfb, 0x78, 0x7c, 0x7f, 0x1b, 0x78, 0x7f, 0x83, 0xe3, 0x78, 167 | 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 168 | 0x38, 0xe0, 0x00, 0x04, 0x93, 0xe1, 0x00, 0x28, 0x4b, 0xff, 0xfa, 0x01, 169 | 0x4b, 0xff, 0xfb, 0x28, 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 170 | 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 0x38, 0xe0, 0x00, 0x08, 171 | 0x4b, 0xff, 0xf9, 0x21, 0x7c, 0x7f, 0x1b, 0x79, 0x41, 0x80, 0x02, 0xac, 172 | 0x81, 0x21, 0x00, 0x28, 0x38, 0x80, 0x00, 0x01, 0x89, 0x41, 0x00, 0x2f, 173 | 0x7d, 0x23, 0x4b, 0x78, 0x99, 0x49, 0x00, 0x00, 0x4b, 0xe4, 0x36, 0xa1, 174 | 0x4b, 0xff, 0xfa, 0xec, 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 175 | 0x7f, 0xa5, 0xeb, 0x78, 0x38, 0xc1, 0x04, 0x2c, 0x38, 0xe0, 0x00, 0x01, 176 | 0x4b, 0xff, 0xf8, 0xe5, 0x2c, 0x03, 0x00, 0x00, 0x41, 0x80, 0x02, 0x88, 177 | 0x88, 0xe1, 0x04, 0x2c, 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 178 | 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 0x54, 0xe7, 0x06, 0x3e, 179 | 0x4b, 0xff, 0xf8, 0xc1, 0x7c, 0x7f, 0x1b, 0x79, 0x41, 0x80, 0x02, 0x80, 180 | 0x38, 0x81, 0x04, 0x30, 0x38, 0x61, 0x00, 0x30, 0x83, 0xe1, 0x00, 0x2c, 181 | 0x4b, 0xe4, 0x95, 0xfd, 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 182 | 0x7f, 0xa5, 0xeb, 0x78, 0x38, 0xc1, 0x04, 0x2c, 0x38, 0xe0, 0x00, 0x01, 183 | 0x7f, 0xf9, 0xfa, 0x14, 0x4b, 0xff, 0xf8, 0x8d, 0x2c, 0x03, 0x00, 0x00, 184 | 0x41, 0x80, 0x02, 0x44, 0x88, 0x81, 0x04, 0x2c, 0x80, 0x61, 0x04, 0x30, 185 | 0x7f, 0xe5, 0xfb, 0x78, 0x54, 0x84, 0x06, 0x3e, 0x38, 0xc1, 0x04, 0x2c, 186 | 0x4b, 0xe4, 0xab, 0xc1, 0x81, 0x21, 0x04, 0x2c, 0x7f, 0x83, 0xe3, 0x78, 187 | 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 188 | 0x38, 0xe0, 0x00, 0x04, 0x91, 0x21, 0x00, 0x28, 0x4b, 0xff, 0xf9, 0x11, 189 | 0x7c, 0x7f, 0x1b, 0x79, 0x40, 0x80, 0xfa, 0x34, 0x39, 0x20, 0x01, 0x00, 190 | 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfc, 0xb4, 0x7f, 0x83, 0xe3, 0x78, 191 | 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 192 | 0x38, 0xe0, 0x00, 0x0c, 0x4b, 0xff, 0xf8, 0x21, 0x7c, 0x7f, 0x1b, 0x79, 193 | 0x41, 0x80, 0x02, 0x04, 0x81, 0x21, 0x00, 0x28, 0x81, 0x01, 0x00, 0x30, 194 | 0x80, 0xe1, 0x00, 0x2c, 0x7d, 0x09, 0x42, 0x14, 0x7f, 0x89, 0x40, 0x00, 195 | 0x41, 0xbc, 0x00, 0x14, 0x48, 0x00, 0x01, 0x5c, 0x39, 0x29, 0x00, 0x04, 196 | 0x7f, 0x89, 0x40, 0x00, 0x40, 0x9c, 0x01, 0x50, 0x81, 0x49, 0x00, 0x00, 197 | 0x7f, 0x8a, 0x38, 0x00, 0x40, 0x9e, 0xff, 0xec, 0x7f, 0x83, 0xe3, 0x78, 198 | 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 199 | 0x38, 0xe0, 0x00, 0x04, 0x91, 0x21, 0x00, 0x28, 0x4b, 0xff, 0xf8, 0x8d, 200 | 0x7c, 0x7f, 0x1b, 0x79, 0x40, 0x80, 0xf9, 0xb0, 0x39, 0x20, 0x01, 0x15, 201 | 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfc, 0x30, 0x7f, 0x83, 0xe3, 0x78, 202 | 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 203 | 0x38, 0xe0, 0x00, 0x08, 0x4b, 0xff, 0xf7, 0x9d, 0x7c, 0x7f, 0x1b, 0x79, 204 | 0x41, 0x80, 0x01, 0x34, 0x81, 0x21, 0x00, 0x28, 0x38, 0x80, 0x00, 0x04, 205 | 0x81, 0x41, 0x00, 0x2c, 0x7d, 0x23, 0x4b, 0x78, 0x91, 0x49, 0x00, 0x00, 206 | 0x4b, 0xe4, 0x35, 0x1d, 0x4b, 0xff, 0xf9, 0x68, 0x7f, 0x83, 0xe3, 0x78, 207 | 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 208 | 0x38, 0xe0, 0x00, 0x08, 0x4b, 0xff, 0xf7, 0x61, 0x7c, 0x7f, 0x1b, 0x79, 209 | 0x41, 0x80, 0x01, 0x38, 0x83, 0xc1, 0x00, 0x28, 0x82, 0x81, 0x00, 0x2c, 210 | 0x7f, 0x9e, 0xa0, 0x40, 0x41, 0x9e, 0x00, 0x88, 0x7f, 0x7e, 0xa0, 0x50, 211 | 0x3d, 0x3e, 0xf0, 0x00, 0x2f, 0x9b, 0x04, 0x00, 0x7f, 0xc6, 0xf3, 0x78, 212 | 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x83, 0xe3, 0x78, 213 | 0x7f, 0x09, 0xc0, 0x40, 0x40, 0x9d, 0x00, 0x08, 0x3b, 0x60, 0x04, 0x00, 214 | 0x7f, 0x67, 0xdb, 0x78, 0x40, 0x99, 0x00, 0x38, 0x7f, 0x44, 0xd3, 0x78, 215 | 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 0x7f, 0x67, 0xdb, 0x78, 216 | 0x7f, 0x83, 0xe3, 0x78, 0x4b, 0xff, 0xf7, 0x01, 0x7c, 0x7f, 0x1b, 0x79, 217 | 0x41, 0x80, 0x00, 0x68, 0x7f, 0xc3, 0xf3, 0x78, 0x7f, 0x24, 0xcb, 0x78, 218 | 0x7f, 0x65, 0xdb, 0x78, 0x4b, 0xe5, 0x34, 0x75, 0x48, 0x00, 0x00, 0x18, 219 | 0x4b, 0xff, 0xf6, 0xe1, 0x7f, 0x99, 0xf0, 0x00, 0x7c, 0x7f, 0x1b, 0x79, 220 | 0x41, 0x80, 0x00, 0x44, 0x41, 0xbe, 0xff, 0xdc, 0x7f, 0xde, 0xda, 0x14, 221 | 0x7f, 0x94, 0xf0, 0x40, 0x40, 0x9e, 0xff, 0x80, 0x7f, 0x83, 0xe3, 0x78, 222 | 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 0x38, 0xc1, 0x04, 0x2c, 223 | 0x38, 0xe0, 0x00, 0x01, 0x9a, 0xa1, 0x04, 0x2c, 0x4b, 0xff, 0xf7, 0x6d, 224 | 0x4b, 0xff, 0xf8, 0x94, 0x39, 0x20, 0x00, 0x00, 0x4b, 0xff, 0xfe, 0xbc, 225 | 0x4b, 0xf6, 0x7a, 0x49, 0x4b, 0xff, 0xf8, 0x84, 0x39, 0x20, 0x00, 0xc4, 226 | 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfb, 0x04, 0x39, 0x20, 0x00, 0xa7, 227 | 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfa, 0xf8, 0x39, 0x20, 0x00, 0x67, 228 | 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfa, 0xec, 0x39, 0x20, 0x00, 0x5d, 229 | 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfa, 0xe0, 0x39, 0x20, 0x00, 0x71, 230 | 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfa, 0xd4, 0x7c, 0x67, 0x1b, 0x78, 231 | 0x4b, 0xff, 0xfd, 0x7c, 0x39, 0x20, 0x00, 0x9c, 0x91, 0x3c, 0x00, 0x04, 232 | 0x4b, 0xff, 0xfa, 0xc0, 0x7c, 0x64, 0x1b, 0x78, 0x4b, 0xff, 0xfd, 0xc0, 233 | 0x39, 0x20, 0x00, 0xf1, 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfa, 0xac, 234 | 0x39, 0x20, 0x00, 0xda, 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfa, 0xa0, 235 | 0x39, 0x20, 0x00, 0xb4, 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfa, 0x94, 236 | 0x39, 0x20, 0x01, 0x05, 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfa, 0x88, 237 | 0x39, 0x20, 0x01, 0x1e, 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfa, 0x7c, 238 | 0x39, 0x20, 0x00, 0x7b, 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfa, 0x70, 239 | 0x39, 0x20, 0x00, 0x8a, 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfa, 0x64, 240 | 0x94, 0x21, 0xff, 0xa0, 0x7c, 0x08, 0x02, 0xa6, 0x7d, 0x80, 0x00, 0x26, 241 | 0x93, 0x81, 0x00, 0x50, 0x3b, 0x80, 0xff, 0xff, 0x2d, 0x9c, 0xff, 0xff, 242 | 0x92, 0x81, 0x00, 0x30, 0x92, 0xa1, 0x00, 0x34, 0x3a, 0x80, 0x00, 0x3e, 243 | 0x92, 0xc1, 0x00, 0x38, 0x3a, 0xa0, 0x00, 0x3a, 0x92, 0xe1, 0x00, 0x3c, 244 | 0x3a, 0xc0, 0x00, 0x37, 0x93, 0x01, 0x00, 0x40, 0x3a, 0xe0, 0x00, 0x35, 245 | 0x93, 0x21, 0x00, 0x44, 0x3b, 0x00, 0x00, 0x33, 0x93, 0x41, 0x00, 0x48, 246 | 0x3b, 0x20, 0x00, 0x02, 0x93, 0x61, 0x00, 0x4c, 0x3b, 0x40, 0x1c, 0xa3, 247 | 0x93, 0xa1, 0x00, 0x54, 0x3b, 0x60, 0x00, 0x00, 0x90, 0x01, 0x00, 0x64, 248 | 0x7c, 0x9d, 0x23, 0x78, 0x93, 0xc1, 0x00, 0x58, 0x93, 0xe1, 0x00, 0x5c, 249 | 0x91, 0x81, 0x00, 0x2c, 0x4b, 0xed, 0x69, 0x3d, 0x38, 0x60, 0x00, 0x02, 250 | 0x38, 0x80, 0x00, 0x01, 0x38, 0xa0, 0x00, 0x06, 0xb3, 0x21, 0x00, 0x08, 251 | 0xb3, 0x41, 0x00, 0x0a, 0x93, 0x61, 0x00, 0x0c, 0x4b, 0xed, 0x81, 0xed, 252 | 0x2e, 0x03, 0xff, 0xff, 0x7c, 0x7f, 0x1b, 0x78, 0x40, 0x92, 0x00, 0x4c, 253 | 0x93, 0x1d, 0x00, 0x04, 0x3b, 0xc0, 0xff, 0xff, 0x2f, 0x9c, 0xff, 0xff, 254 | 0x41, 0x9e, 0x00, 0x0c, 0x7f, 0x83, 0xe3, 0x78, 0x4b, 0xed, 0x83, 0x15, 255 | 0x40, 0x92, 0x00, 0x84, 0x93, 0xdd, 0x00, 0x00, 0x38, 0x60, 0x00, 0x02, 256 | 0x38, 0x80, 0x00, 0x01, 0x38, 0xa0, 0x00, 0x06, 0xb3, 0x21, 0x00, 0x08, 257 | 0xb3, 0x41, 0x00, 0x0a, 0x93, 0x61, 0x00, 0x0c, 0x4b, 0xed, 0x81, 0xa5, 258 | 0x2e, 0x03, 0xff, 0xff, 0x7c, 0x7f, 0x1b, 0x78, 0x41, 0xb2, 0xff, 0xbc, 259 | 0x38, 0x81, 0x00, 0x08, 0x38, 0xa0, 0x00, 0x10, 0x4b, 0xed, 0x6c, 0x8d, 260 | 0x7c, 0x7e, 0x1b, 0x79, 0x41, 0x80, 0x00, 0x54, 0x7f, 0xe3, 0xfb, 0x78, 261 | 0x38, 0x80, 0x00, 0x01, 0x4b, 0xed, 0x6f, 0x79, 0x7c, 0x7e, 0x1b, 0x79, 262 | 0x41, 0x80, 0x00, 0x48, 0x39, 0x20, 0x00, 0x10, 0x7f, 0xe3, 0xfb, 0x78, 263 | 0x38, 0x81, 0x00, 0x08, 0x38, 0xa1, 0x00, 0x18, 0x91, 0x21, 0x00, 0x18, 264 | 0x4b, 0xed, 0x6a, 0xd9, 0x2f, 0x83, 0xff, 0xff, 0x7c, 0x7c, 0x1b, 0x78, 265 | 0x40, 0x9e, 0x00, 0x2c, 0x92, 0xbd, 0x00, 0x04, 0x3b, 0xc0, 0xff, 0xff, 266 | 0x7f, 0xe3, 0xfb, 0x78, 0x4b, 0xed, 0x82, 0x89, 0x93, 0xdd, 0x00, 0x00, 267 | 0x4b, 0xff, 0xff, 0x78, 0x92, 0xfd, 0x00, 0x04, 0x4b, 0xff, 0xff, 0x58, 268 | 0x92, 0xdd, 0x00, 0x04, 0x4b, 0xff, 0xff, 0x50, 0x7f, 0xe3, 0xfb, 0x78, 269 | 0x4b, 0xed, 0x82, 0x69, 0x7f, 0xa3, 0xeb, 0x78, 0x7f, 0x84, 0xe3, 0x78, 270 | 0x4b, 0xff, 0xf6, 0x05, 0x7c, 0x7e, 0x1b, 0x79, 0x41, 0x80, 0x00, 0x14, 271 | 0x7f, 0x83, 0xe3, 0x78, 0x3b, 0x80, 0xff, 0xff, 0x4b, 0xed, 0x82, 0x49, 272 | 0x4b, 0xff, 0xfe, 0xf4, 0x92, 0x9d, 0x00, 0x04, 0x3b, 0xe0, 0xff, 0xff, 273 | 0x4e, 0x0c, 0x00, 0x00, 0x4b, 0xff, 0xff, 0x1c 274 | }; 275 | static const unsigned int codehandler_text_bin_len = 3260; 276 | -------------------------------------------------------------------------------- /installer/src/codehandler410.h: -------------------------------------------------------------------------------- 1 | static const unsigned char codehandler_text_bin[] = { 2 | 0x94, 0x21, 0xff, 0xe8, 0x7c, 0x08, 0x02, 0xa6, 0x3d, 0x20, 0x10, 0x05, 3 | 0x81, 0x29, 0x9e, 0xdc, 0x93, 0x81, 0x00, 0x08, 0x7c, 0x7c, 0x1b, 0x78, 4 | 0x38, 0x60, 0x00, 0x00, 0x93, 0xa1, 0x00, 0x0c, 0x93, 0xe1, 0x00, 0x14, 5 | 0x7c, 0x9d, 0x23, 0x78, 0x90, 0x01, 0x00, 0x1c, 0x60, 0x63, 0x86, 0xa8, 6 | 0x93, 0xc1, 0x00, 0x10, 0x38, 0x80, 0x00, 0x40, 0x7d, 0x29, 0x03, 0xa6, 7 | 0x4e, 0x80, 0x04, 0x21, 0x7c, 0x7f, 0x1b, 0x79, 0x41, 0x82, 0x00, 0x50, 8 | 0x38, 0xa0, 0x00, 0x00, 0x38, 0x80, 0x00, 0x00, 0x60, 0xa5, 0x86, 0xa8, 9 | 0x3b, 0xdf, 0x00, 0x08, 0x4b, 0xe5, 0x76, 0x79, 0x3c, 0xff, 0x00, 0x01, 10 | 0x3c, 0x80, 0x01, 0x1e, 0x39, 0x00, 0x00, 0x00, 0x7f, 0xc3, 0xf3, 0x78, 11 | 0x38, 0x84, 0xa3, 0x28, 0x38, 0xa0, 0x00, 0x00, 0x7f, 0xe6, 0xfb, 0x78, 12 | 0x38, 0xe7, 0x86, 0xa8, 0x61, 0x08, 0x80, 0x00, 0x39, 0x20, 0x00, 0x00, 13 | 0x39, 0x40, 0x00, 0x0c, 0x4b, 0xe6, 0x22, 0x81, 0x7f, 0xc3, 0xf3, 0x78, 14 | 0x4b, 0xe6, 0x27, 0x5d, 0x3d, 0x20, 0x10, 0x06, 0x80, 0x01, 0x00, 0x1c, 15 | 0x81, 0x29, 0xa8, 0xc0, 0x7f, 0x83, 0xe3, 0x78, 0x83, 0xc1, 0x00, 0x10, 16 | 0x7f, 0xa4, 0xeb, 0x78, 0x83, 0x81, 0x00, 0x08, 0x7d, 0x29, 0x03, 0xa6, 17 | 0x83, 0xa1, 0x00, 0x0c, 0x83, 0xe1, 0x00, 0x14, 0x7c, 0x08, 0x03, 0xa6, 18 | 0x38, 0x21, 0x00, 0x18, 0x4e, 0x80, 0x04, 0x20, 0x94, 0x21, 0xff, 0xe8, 19 | 0x7c, 0x08, 0x02, 0xa6, 0x38, 0xa0, 0x00, 0x01, 0x38, 0xc0, 0x00, 0x20, 20 | 0x38, 0x81, 0x00, 0x08, 0x90, 0x01, 0x00, 0x1c, 0x4b, 0xed, 0xb3, 0xe1, 21 | 0x2c, 0x03, 0x00, 0x00, 0x41, 0x80, 0x00, 0x0c, 0x41, 0x82, 0x00, 0x18, 22 | 0x88, 0x61, 0x00, 0x08, 0x80, 0x01, 0x00, 0x1c, 0x38, 0x21, 0x00, 0x18, 23 | 0x7c, 0x08, 0x03, 0xa6, 0x4e, 0x80, 0x00, 0x20, 0x38, 0x60, 0xff, 0xff, 24 | 0x4b, 0xff, 0xff, 0xec, 0x94, 0x21, 0xff, 0xe0, 0x7c, 0x08, 0x02, 0xa6, 25 | 0x93, 0xe1, 0x00, 0x1c, 0x7c, 0xff, 0x3b, 0x79, 0x93, 0x61, 0x00, 0x0c, 26 | 0x7c, 0x9b, 0x23, 0x78, 0x93, 0x81, 0x00, 0x10, 0x7c, 0x7c, 0x1b, 0x78, 27 | 0x93, 0xa1, 0x00, 0x14, 0x7c, 0xbd, 0x2b, 0x78, 0x93, 0xc1, 0x00, 0x18, 28 | 0x7c, 0xde, 0x33, 0x78, 0x90, 0x01, 0x00, 0x24, 0x41, 0xa1, 0x00, 0x0c, 29 | 0x48, 0x00, 0x00, 0x64, 0x40, 0x9d, 0x00, 0x60, 0x7f, 0xc4, 0xf3, 0x78, 30 | 0x7f, 0xe5, 0xfb, 0x78, 0x7f, 0xa3, 0xeb, 0x78, 0x38, 0xc0, 0x00, 0x00, 31 | 0x4b, 0xed, 0xb3, 0x65, 0x7c, 0x69, 0x1b, 0x79, 0x7f, 0xe9, 0xf8, 0x50, 32 | 0x7f, 0xde, 0x4a, 0x14, 0x2f, 0x9f, 0x00, 0x00, 0x40, 0x80, 0xff, 0xd8, 33 | 0x80, 0x01, 0x00, 0x24, 0x39, 0x40, 0x01, 0x5c, 0x91, 0x5b, 0x00, 0x00, 34 | 0x7d, 0x23, 0x4b, 0x78, 0x7c, 0x08, 0x03, 0xa6, 0x91, 0x3c, 0x00, 0x00, 35 | 0x83, 0x61, 0x00, 0x0c, 0x83, 0x81, 0x00, 0x10, 0x83, 0xa1, 0x00, 0x14, 36 | 0x83, 0xc1, 0x00, 0x18, 0x83, 0xe1, 0x00, 0x1c, 0x38, 0x21, 0x00, 0x20, 37 | 0x4e, 0x80, 0x00, 0x20, 0x80, 0x01, 0x00, 0x24, 0x38, 0x60, 0x00, 0x00, 38 | 0x83, 0x61, 0x00, 0x0c, 0x7c, 0x08, 0x03, 0xa6, 0x83, 0x81, 0x00, 0x10, 39 | 0x83, 0xa1, 0x00, 0x14, 0x83, 0xc1, 0x00, 0x18, 0x83, 0xe1, 0x00, 0x1c, 40 | 0x38, 0x21, 0x00, 0x20, 0x4e, 0x80, 0x00, 0x20, 0x94, 0x21, 0xff, 0xe0, 41 | 0x7c, 0x08, 0x02, 0xa6, 0x93, 0xe1, 0x00, 0x1c, 0x7c, 0xff, 0x3b, 0x79, 42 | 0x93, 0x61, 0x00, 0x0c, 0x7c, 0x9b, 0x23, 0x78, 0x93, 0x81, 0x00, 0x10, 43 | 0x7c, 0x7c, 0x1b, 0x78, 0x93, 0xa1, 0x00, 0x14, 0x7c, 0xbd, 0x2b, 0x78, 44 | 0x93, 0xc1, 0x00, 0x18, 0x7c, 0xde, 0x33, 0x78, 0x90, 0x01, 0x00, 0x24, 45 | 0x41, 0xa1, 0x00, 0x0c, 0x48, 0x00, 0x00, 0x64, 0x40, 0x9d, 0x00, 0x60, 46 | 0x7f, 0xc4, 0xf3, 0x78, 0x7f, 0xe5, 0xfb, 0x78, 0x7f, 0xa3, 0xeb, 0x78, 47 | 0x38, 0xc0, 0x00, 0x00, 0x4b, 0xed, 0xbb, 0x09, 0x7c, 0x69, 0x1b, 0x79, 48 | 0x7f, 0xe9, 0xf8, 0x50, 0x7f, 0xde, 0x4a, 0x14, 0x2f, 0x9f, 0x00, 0x00, 49 | 0x40, 0x80, 0xff, 0xd8, 0x80, 0x01, 0x00, 0x24, 0x39, 0x40, 0x01, 0x7d, 50 | 0x91, 0x5b, 0x00, 0x00, 0x7d, 0x23, 0x4b, 0x78, 0x7c, 0x08, 0x03, 0xa6, 51 | 0x91, 0x3c, 0x00, 0x00, 0x83, 0x61, 0x00, 0x0c, 0x83, 0x81, 0x00, 0x10, 52 | 0x83, 0xa1, 0x00, 0x14, 0x83, 0xc1, 0x00, 0x18, 0x83, 0xe1, 0x00, 0x1c, 53 | 0x38, 0x21, 0x00, 0x20, 0x4e, 0x80, 0x00, 0x20, 0x80, 0x01, 0x00, 0x24, 54 | 0x38, 0x60, 0x00, 0x00, 0x83, 0x61, 0x00, 0x0c, 0x7c, 0x08, 0x03, 0xa6, 55 | 0x83, 0x81, 0x00, 0x10, 0x83, 0xa1, 0x00, 0x14, 0x83, 0xc1, 0x00, 0x18, 56 | 0x83, 0xe1, 0x00, 0x1c, 0x38, 0x21, 0x00, 0x20, 0x4e, 0x80, 0x00, 0x20, 57 | 0x7c, 0x08, 0x02, 0xa6, 0x94, 0x21, 0xfb, 0x90, 0x92, 0xe1, 0x04, 0x4c, 58 | 0x3e, 0xe0, 0x00, 0x00, 0x90, 0x01, 0x04, 0x74, 0x3a, 0xf7, 0x01, 0x9a, 59 | 0x92, 0x41, 0x04, 0x38, 0x92, 0x61, 0x04, 0x3c, 0x92, 0x81, 0x04, 0x40, 60 | 0x93, 0x61, 0x04, 0x5c, 0x93, 0xc1, 0x04, 0x68, 0x93, 0xe1, 0x04, 0x6c, 61 | 0x92, 0xa1, 0x04, 0x44, 0x3a, 0xa0, 0xff, 0xaa, 0x92, 0xc1, 0x04, 0x48, 62 | 0x3a, 0xc0, 0xff, 0x82, 0x93, 0x01, 0x04, 0x50, 0x3f, 0x00, 0x40, 0x00, 63 | 0x93, 0x21, 0x04, 0x54, 0x3b, 0x21, 0x00, 0x28, 0x93, 0x41, 0x04, 0x58, 64 | 0x3b, 0x43, 0x00, 0x04, 0x93, 0x81, 0x04, 0x60, 0x7c, 0x7c, 0x1b, 0x78, 65 | 0x93, 0xa1, 0x04, 0x64, 0x7c, 0x9d, 0x23, 0x78, 0x7f, 0xa3, 0xeb, 0x78, 66 | 0x4b, 0xff, 0xfd, 0xc9, 0x7c, 0x7f, 0x1b, 0x79, 0x41, 0x80, 0x02, 0x68, 67 | 0x2f, 0x9f, 0x00, 0x41, 0x41, 0x9e, 0x06, 0x88, 0x40, 0x9d, 0x00, 0x58, 68 | 0x2f, 0x9f, 0x00, 0x72, 0x41, 0x9e, 0x05, 0xbc, 0x41, 0x9d, 0x01, 0x78, 69 | 0x2f, 0x9f, 0x00, 0x70, 0x41, 0x9e, 0x02, 0xfc, 0x41, 0x9d, 0x04, 0xe8, 70 | 0x2f, 0x9f, 0x00, 0x50, 0x40, 0xbe, 0xff, 0xc8, 0x39, 0x20, 0x00, 0x01, 71 | 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 72 | 0x38, 0xc1, 0x04, 0x2c, 0x38, 0xe0, 0x00, 0x01, 0x99, 0x21, 0x04, 0x2c, 73 | 0x4b, 0xff, 0xfe, 0x7d, 0x7c, 0x7f, 0x1b, 0x79, 0x40, 0x80, 0xff, 0xa0, 74 | 0x39, 0x20, 0x00, 0xd1, 0x91, 0x3c, 0x00, 0x04, 0x48, 0x00, 0x02, 0x20, 75 | 0x2f, 0x9f, 0x00, 0x03, 0x41, 0x9e, 0x05, 0xec, 0x40, 0x9d, 0x02, 0x64, 76 | 0x2f, 0x9f, 0x00, 0x0b, 0x41, 0x9e, 0x03, 0x58, 0x2f, 0x9f, 0x00, 0x0c, 77 | 0x41, 0x9e, 0x03, 0xdc, 0x2f, 0x9f, 0x00, 0x04, 0x40, 0x9e, 0xff, 0x70, 78 | 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 79 | 0x7f, 0x26, 0xcb, 0x78, 0x38, 0xe0, 0x00, 0x08, 0x4b, 0xff, 0xfd, 0x69, 80 | 0x7c, 0x7f, 0x1b, 0x79, 0x41, 0x80, 0x07, 0x64, 0x83, 0xc1, 0x00, 0x28, 81 | 0x3a, 0x40, 0xff, 0xb0, 0x82, 0x81, 0x00, 0x2c, 0x3a, 0x60, 0xff, 0xbd, 82 | 0x7f, 0x9e, 0xa0, 0x40, 0x41, 0xbe, 0xff, 0x38, 0x7f, 0x7e, 0xa0, 0x50, 83 | 0x2f, 0x9b, 0x04, 0x00, 0x40, 0x9d, 0x00, 0x7c, 0x3b, 0x60, 0x04, 0x00, 84 | 0x89, 0x3e, 0x00, 0x00, 0x2f, 0x89, 0x00, 0x00, 0x40, 0x9e, 0x00, 0x78, 85 | 0x7f, 0x69, 0x03, 0xa6, 0x48, 0x00, 0x00, 0x10, 0x7d, 0x5e, 0x48, 0xae, 86 | 0x2f, 0x8a, 0x00, 0x00, 0x40, 0x9e, 0x00, 0x64, 0x39, 0x29, 0x00, 0x01, 87 | 0x42, 0x00, 0xff, 0xf0, 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 88 | 0x7f, 0xa5, 0xeb, 0x78, 0x38, 0xc1, 0x04, 0x2c, 0x38, 0xe0, 0x00, 0x01, 89 | 0x9a, 0x41, 0x04, 0x2c, 0x4b, 0xff, 0xfd, 0xb9, 0x7c, 0x7f, 0x1b, 0x79, 90 | 0x41, 0x80, 0x06, 0xfc, 0x7f, 0xa3, 0xeb, 0x78, 0x4b, 0xff, 0xfc, 0xa1, 91 | 0x2f, 0x83, 0x00, 0xcc, 0x41, 0xbe, 0xfe, 0xcc, 0x7f, 0xde, 0xda, 0x14, 92 | 0x7f, 0x94, 0xf0, 0x40, 0x41, 0xbe, 0xfe, 0xc0, 0x7f, 0x7e, 0xa0, 0x50, 93 | 0x2f, 0x9b, 0x04, 0x00, 0x41, 0xbd, 0xff, 0x8c, 0x2f, 0x9b, 0x00, 0x00, 94 | 0x41, 0x9d, 0xff, 0x88, 0x41, 0xbe, 0xff, 0xac, 0x7f, 0xc4, 0xf3, 0x78, 95 | 0x7f, 0x65, 0xdb, 0x78, 0x38, 0x61, 0x00, 0x29, 0x4b, 0xe5, 0x72, 0x81, 96 | 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 97 | 0x7f, 0x26, 0xcb, 0x78, 0x38, 0xfb, 0x00, 0x01, 0x9a, 0x61, 0x00, 0x28, 98 | 0x4b, 0xff, 0xfd, 0x51, 0x7c, 0x7f, 0x1b, 0x79, 0x40, 0x80, 0xff, 0x9c, 99 | 0x39, 0x20, 0x00, 0x8f, 0x91, 0x3c, 0x00, 0x04, 0x48, 0x00, 0x00, 0xf4, 100 | 0x2f, 0x9f, 0x00, 0x99, 0x41, 0x9e, 0x02, 0x08, 0x2f, 0x9f, 0x00, 0x9a, 101 | 0x41, 0x9e, 0x02, 0x8c, 0x2f, 0x9f, 0x00, 0x80, 0x40, 0x9e, 0xfe, 0x50, 102 | 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 103 | 0x7f, 0x26, 0xcb, 0x78, 0x38, 0xe0, 0x00, 0x44, 0x4b, 0xff, 0xfc, 0x49, 104 | 0x7c, 0x7f, 0x1b, 0x79, 0x41, 0x80, 0x06, 0x38, 0x80, 0x81, 0x00, 0x4c, 105 | 0x81, 0x61, 0x00, 0x28, 0x90, 0x81, 0x00, 0x08, 0x80, 0x81, 0x00, 0x50, 106 | 0x7d, 0x69, 0x03, 0xa6, 0x80, 0xa1, 0x00, 0x34, 0x90, 0x81, 0x00, 0x0c, 107 | 0x80, 0x81, 0x00, 0x54, 0x80, 0xc1, 0x00, 0x38, 0x90, 0x81, 0x00, 0x10, 108 | 0x80, 0x81, 0x00, 0x58, 0x80, 0xe1, 0x00, 0x3c, 0x90, 0x81, 0x00, 0x14, 109 | 0x80, 0x81, 0x00, 0x5c, 0x81, 0x01, 0x00, 0x40, 0x90, 0x81, 0x00, 0x18, 110 | 0x80, 0x81, 0x00, 0x60, 0x81, 0x21, 0x00, 0x44, 0x90, 0x81, 0x00, 0x1c, 111 | 0x80, 0x81, 0x00, 0x64, 0x81, 0x41, 0x00, 0x48, 0x90, 0x81, 0x00, 0x20, 112 | 0x80, 0x81, 0x00, 0x68, 0x80, 0x61, 0x00, 0x2c, 0x90, 0x81, 0x00, 0x24, 113 | 0x80, 0x81, 0x00, 0x30, 0x4e, 0x80, 0x04, 0x21, 0x7f, 0xa5, 0xeb, 0x78, 114 | 0x90, 0x61, 0x00, 0x28, 0x7f, 0x26, 0xcb, 0x78, 0x90, 0x81, 0x00, 0x2c, 115 | 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 0x38, 0xe0, 0x00, 0x08, 116 | 0x4b, 0xff, 0xfc, 0x79, 0x7c, 0x7f, 0x1b, 0x79, 0x40, 0x80, 0xfd, 0x9c, 117 | 0x39, 0x20, 0x01, 0x36, 0x91, 0x3c, 0x00, 0x04, 0x48, 0x00, 0x00, 0x1c, 118 | 0x4b, 0xe6, 0x0b, 0xfd, 0x81, 0x23, 0x00, 0x00, 0x2f, 0x89, 0x00, 0x06, 119 | 0x41, 0x9e, 0x04, 0xf8, 0x39, 0x20, 0x00, 0x54, 0x91, 0x3c, 0x00, 0x04, 120 | 0x80, 0x01, 0x04, 0x74, 0x38, 0x60, 0x00, 0x00, 0x93, 0xfc, 0x00, 0x00, 121 | 0x7c, 0x08, 0x03, 0xa6, 0x82, 0x41, 0x04, 0x38, 0x82, 0x61, 0x04, 0x3c, 122 | 0x82, 0x81, 0x04, 0x40, 0x82, 0xa1, 0x04, 0x44, 0x82, 0xc1, 0x04, 0x48, 123 | 0x82, 0xe1, 0x04, 0x4c, 0x83, 0x01, 0x04, 0x50, 0x83, 0x21, 0x04, 0x54, 124 | 0x83, 0x41, 0x04, 0x58, 0x83, 0x61, 0x04, 0x5c, 0x83, 0x81, 0x04, 0x60, 125 | 0x83, 0xa1, 0x04, 0x64, 0x83, 0xc1, 0x04, 0x68, 0x83, 0xe1, 0x04, 0x6c, 126 | 0x38, 0x21, 0x04, 0x70, 0x4e, 0x80, 0x00, 0x20, 0x2f, 0x9f, 0x00, 0x01, 127 | 0x41, 0x9e, 0x01, 0xfc, 0x2f, 0x9f, 0x00, 0x02, 0x40, 0xbe, 0xfd, 0x18, 128 | 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 129 | 0x7f, 0x26, 0xcb, 0x78, 0x38, 0xe0, 0x00, 0x08, 0x4b, 0xff, 0xfb, 0x11, 130 | 0x7c, 0x7f, 0x1b, 0x79, 0x41, 0x80, 0x04, 0x90, 0x81, 0x21, 0x00, 0x28, 131 | 0x38, 0x80, 0x00, 0x02, 0xa1, 0x41, 0x00, 0x2e, 0x7d, 0x23, 0x4b, 0x78, 132 | 0xb1, 0x49, 0x00, 0x00, 0x4b, 0xe4, 0x70, 0x91, 0x4b, 0xff, 0xfc, 0xdc, 133 | 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 134 | 0x7f, 0x26, 0xcb, 0x78, 0x38, 0xe0, 0x00, 0x24, 0x4b, 0xff, 0xfa, 0xd5, 135 | 0x7c, 0x7f, 0x1b, 0x79, 0x41, 0x80, 0x04, 0xa0, 0x81, 0x61, 0x00, 0x28, 136 | 0x80, 0xa1, 0x00, 0x34, 0x80, 0xc1, 0x00, 0x38, 0x7d, 0x69, 0x03, 0xa6, 137 | 0x80, 0xe1, 0x00, 0x3c, 0x81, 0x01, 0x00, 0x40, 0x81, 0x21, 0x00, 0x44, 138 | 0x81, 0x41, 0x00, 0x48, 0x80, 0x61, 0x00, 0x2c, 0x80, 0x81, 0x00, 0x30, 139 | 0x4e, 0x80, 0x04, 0x21, 0x7f, 0xa5, 0xeb, 0x78, 0x90, 0x61, 0x00, 0x28, 140 | 0x7f, 0x26, 0xcb, 0x78, 0x90, 0x81, 0x00, 0x2c, 0x7f, 0x83, 0xe3, 0x78, 141 | 0x7f, 0x44, 0xd3, 0x78, 0x38, 0xe0, 0x00, 0x08, 0x4b, 0xff, 0xfb, 0x45, 142 | 0x7c, 0x7f, 0x1b, 0x79, 0x40, 0x80, 0xfc, 0x68, 0x39, 0x20, 0x00, 0xea, 143 | 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfe, 0xe8, 0x7f, 0x83, 0xe3, 0x78, 144 | 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 0x38, 0xc1, 0x04, 0x2c, 145 | 0x38, 0xe0, 0x00, 0x01, 0x9a, 0xc1, 0x04, 0x2c, 0x4b, 0xff, 0xfb, 0x15, 146 | 0x7c, 0x7f, 0x1b, 0x79, 0x40, 0x80, 0xfc, 0x38, 0x39, 0x20, 0x01, 0x3b, 147 | 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfe, 0xb8, 0x7f, 0x83, 0xe3, 0x78, 148 | 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 149 | 0x38, 0xe0, 0x00, 0x08, 0x4b, 0xff, 0xfa, 0x25, 0x7c, 0x7f, 0x1b, 0x79, 150 | 0x41, 0x80, 0x03, 0xd0, 0x83, 0xc1, 0x00, 0x2c, 0x83, 0xe1, 0x00, 0x28, 151 | 0x38, 0x60, 0x00, 0x01, 0x38, 0x80, 0x00, 0x00, 0x7f, 0xc5, 0xf3, 0x78, 152 | 0x38, 0xc0, 0x00, 0x00, 0x38, 0xe0, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x01, 153 | 0x7f, 0xe9, 0xfb, 0x78, 0x7c, 0x3e, 0x0b, 0x78, 0x38, 0x00, 0x35, 0x00, 154 | 0x44, 0x00, 0x00, 0x02, 0x60, 0x00, 0x00, 0x00, 0x7f, 0xc1, 0xf3, 0x78, 155 | 0x4b, 0xff, 0xfb, 0xd0, 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 156 | 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 0x38, 0xe0, 0x00, 0x04, 157 | 0x92, 0xe1, 0x00, 0x28, 0x4b, 0xff, 0xfa, 0x89, 0x7c, 0x7f, 0x1b, 0x79, 158 | 0x40, 0x80, 0xfb, 0xac, 0x39, 0x20, 0x01, 0x44, 0x91, 0x3c, 0x00, 0x04, 159 | 0x4b, 0xff, 0xfe, 0x2c, 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 160 | 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 0x38, 0xe0, 0x00, 0x04, 161 | 0x4b, 0xff, 0xf9, 0x99, 0x7c, 0x7f, 0x1b, 0x79, 0x41, 0x80, 0x03, 0x0c, 162 | 0x83, 0xe1, 0x00, 0x28, 0x38, 0x60, 0x00, 0x01, 0x38, 0x80, 0x00, 0x00, 163 | 0x38, 0xa0, 0x00, 0x00, 0x38, 0xc0, 0x00, 0x00, 0x38, 0xe0, 0x00, 0x00, 164 | 0x3d, 0x00, 0x00, 0x01, 0x7f, 0xe9, 0xfb, 0x78, 0x38, 0x00, 0x34, 0x00, 165 | 0x7c, 0x3f, 0x0b, 0x78, 0x44, 0x00, 0x00, 0x02, 0x60, 0x00, 0x00, 0x00, 166 | 0x7f, 0xe1, 0xfb, 0x78, 0x7c, 0x7f, 0x1b, 0x78, 0x7f, 0x83, 0xe3, 0x78, 167 | 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 168 | 0x38, 0xe0, 0x00, 0x04, 0x93, 0xe1, 0x00, 0x28, 0x4b, 0xff, 0xfa, 0x01, 169 | 0x4b, 0xff, 0xfb, 0x28, 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 170 | 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 0x38, 0xe0, 0x00, 0x08, 171 | 0x4b, 0xff, 0xf9, 0x21, 0x7c, 0x7f, 0x1b, 0x79, 0x41, 0x80, 0x02, 0xac, 172 | 0x81, 0x21, 0x00, 0x28, 0x38, 0x80, 0x00, 0x01, 0x89, 0x41, 0x00, 0x2f, 173 | 0x7d, 0x23, 0x4b, 0x78, 0x99, 0x49, 0x00, 0x00, 0x4b, 0xe4, 0x6e, 0xa1, 174 | 0x4b, 0xff, 0xfa, 0xec, 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 175 | 0x7f, 0xa5, 0xeb, 0x78, 0x38, 0xc1, 0x04, 0x2c, 0x38, 0xe0, 0x00, 0x01, 176 | 0x4b, 0xff, 0xf8, 0xe5, 0x2c, 0x03, 0x00, 0x00, 0x41, 0x80, 0x02, 0x88, 177 | 0x88, 0xe1, 0x04, 0x2c, 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 178 | 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 0x54, 0xe7, 0x06, 0x3e, 179 | 0x4b, 0xff, 0xf8, 0xc1, 0x7c, 0x7f, 0x1b, 0x79, 0x41, 0x80, 0x02, 0x80, 180 | 0x38, 0x81, 0x04, 0x30, 0x38, 0x61, 0x00, 0x30, 0x83, 0xe1, 0x00, 0x2c, 181 | 0x4b, 0xe4, 0xcd, 0xfd, 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 182 | 0x7f, 0xa5, 0xeb, 0x78, 0x38, 0xc1, 0x04, 0x2c, 0x38, 0xe0, 0x00, 0x01, 183 | 0x7f, 0xf9, 0xfa, 0x14, 0x4b, 0xff, 0xf8, 0x8d, 0x2c, 0x03, 0x00, 0x00, 184 | 0x41, 0x80, 0x02, 0x44, 0x88, 0x81, 0x04, 0x2c, 0x80, 0x61, 0x04, 0x30, 185 | 0x7f, 0xe5, 0xfb, 0x78, 0x54, 0x84, 0x06, 0x3e, 0x38, 0xc1, 0x04, 0x2c, 186 | 0x4b, 0xe4, 0xe3, 0xc1, 0x81, 0x21, 0x04, 0x2c, 0x7f, 0x83, 0xe3, 0x78, 187 | 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 188 | 0x38, 0xe0, 0x00, 0x04, 0x91, 0x21, 0x00, 0x28, 0x4b, 0xff, 0xf9, 0x11, 189 | 0x7c, 0x7f, 0x1b, 0x79, 0x40, 0x80, 0xfa, 0x34, 0x39, 0x20, 0x01, 0x00, 190 | 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfc, 0xb4, 0x7f, 0x83, 0xe3, 0x78, 191 | 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 192 | 0x38, 0xe0, 0x00, 0x0c, 0x4b, 0xff, 0xf8, 0x21, 0x7c, 0x7f, 0x1b, 0x79, 193 | 0x41, 0x80, 0x02, 0x04, 0x81, 0x21, 0x00, 0x28, 0x81, 0x01, 0x00, 0x30, 194 | 0x80, 0xe1, 0x00, 0x2c, 0x7d, 0x09, 0x42, 0x14, 0x7f, 0x89, 0x40, 0x00, 195 | 0x41, 0xbc, 0x00, 0x14, 0x48, 0x00, 0x01, 0x5c, 0x39, 0x29, 0x00, 0x04, 196 | 0x7f, 0x89, 0x40, 0x00, 0x40, 0x9c, 0x01, 0x50, 0x81, 0x49, 0x00, 0x00, 197 | 0x7f, 0x8a, 0x38, 0x00, 0x40, 0x9e, 0xff, 0xec, 0x7f, 0x83, 0xe3, 0x78, 198 | 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 199 | 0x38, 0xe0, 0x00, 0x04, 0x91, 0x21, 0x00, 0x28, 0x4b, 0xff, 0xf8, 0x8d, 200 | 0x7c, 0x7f, 0x1b, 0x79, 0x40, 0x80, 0xf9, 0xb0, 0x39, 0x20, 0x01, 0x15, 201 | 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfc, 0x30, 0x7f, 0x83, 0xe3, 0x78, 202 | 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 203 | 0x38, 0xe0, 0x00, 0x08, 0x4b, 0xff, 0xf7, 0x9d, 0x7c, 0x7f, 0x1b, 0x79, 204 | 0x41, 0x80, 0x01, 0x34, 0x81, 0x21, 0x00, 0x28, 0x38, 0x80, 0x00, 0x04, 205 | 0x81, 0x41, 0x00, 0x2c, 0x7d, 0x23, 0x4b, 0x78, 0x91, 0x49, 0x00, 0x00, 206 | 0x4b, 0xe4, 0x6d, 0x1d, 0x4b, 0xff, 0xf9, 0x68, 0x7f, 0x83, 0xe3, 0x78, 207 | 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 208 | 0x38, 0xe0, 0x00, 0x08, 0x4b, 0xff, 0xf7, 0x61, 0x7c, 0x7f, 0x1b, 0x79, 209 | 0x41, 0x80, 0x01, 0x38, 0x83, 0xc1, 0x00, 0x28, 0x82, 0x81, 0x00, 0x2c, 210 | 0x7f, 0x9e, 0xa0, 0x40, 0x41, 0x9e, 0x00, 0x88, 0x7f, 0x7e, 0xa0, 0x50, 211 | 0x3d, 0x3e, 0xf0, 0x00, 0x2f, 0x9b, 0x04, 0x00, 0x7f, 0xc6, 0xf3, 0x78, 212 | 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x83, 0xe3, 0x78, 213 | 0x7f, 0x09, 0xc0, 0x40, 0x40, 0x9d, 0x00, 0x08, 0x3b, 0x60, 0x04, 0x00, 214 | 0x7f, 0x67, 0xdb, 0x78, 0x40, 0x99, 0x00, 0x38, 0x7f, 0x44, 0xd3, 0x78, 215 | 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 0x7f, 0x67, 0xdb, 0x78, 216 | 0x7f, 0x83, 0xe3, 0x78, 0x4b, 0xff, 0xf7, 0x01, 0x7c, 0x7f, 0x1b, 0x79, 217 | 0x41, 0x80, 0x00, 0x68, 0x7f, 0xc3, 0xf3, 0x78, 0x7f, 0x24, 0xcb, 0x78, 218 | 0x7f, 0x65, 0xdb, 0x78, 0x4b, 0xe5, 0x6c, 0xc1, 0x48, 0x00, 0x00, 0x18, 219 | 0x4b, 0xff, 0xf6, 0xe1, 0x7f, 0x99, 0xf0, 0x00, 0x7c, 0x7f, 0x1b, 0x79, 220 | 0x41, 0x80, 0x00, 0x44, 0x41, 0xbe, 0xff, 0xdc, 0x7f, 0xde, 0xda, 0x14, 221 | 0x7f, 0x94, 0xf0, 0x40, 0x40, 0x9e, 0xff, 0x80, 0x7f, 0x83, 0xe3, 0x78, 222 | 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 0x38, 0xc1, 0x04, 0x2c, 223 | 0x38, 0xe0, 0x00, 0x01, 0x9a, 0xa1, 0x04, 0x2c, 0x4b, 0xff, 0xf7, 0x6d, 224 | 0x4b, 0xff, 0xf8, 0x94, 0x39, 0x20, 0x00, 0x00, 0x4b, 0xff, 0xfe, 0xbc, 225 | 0x4b, 0xf6, 0xb2, 0x49, 0x4b, 0xff, 0xf8, 0x84, 0x39, 0x20, 0x00, 0xc4, 226 | 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfb, 0x04, 0x39, 0x20, 0x00, 0xa7, 227 | 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfa, 0xf8, 0x39, 0x20, 0x00, 0x67, 228 | 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfa, 0xec, 0x39, 0x20, 0x00, 0x5d, 229 | 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfa, 0xe0, 0x39, 0x20, 0x00, 0x71, 230 | 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfa, 0xd4, 0x7c, 0x67, 0x1b, 0x78, 231 | 0x4b, 0xff, 0xfd, 0x7c, 0x39, 0x20, 0x00, 0x9c, 0x91, 0x3c, 0x00, 0x04, 232 | 0x4b, 0xff, 0xfa, 0xc0, 0x7c, 0x64, 0x1b, 0x78, 0x4b, 0xff, 0xfd, 0xc0, 233 | 0x39, 0x20, 0x00, 0xf1, 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfa, 0xac, 234 | 0x39, 0x20, 0x00, 0xda, 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfa, 0xa0, 235 | 0x39, 0x20, 0x00, 0xb4, 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfa, 0x94, 236 | 0x39, 0x20, 0x01, 0x05, 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfa, 0x88, 237 | 0x39, 0x20, 0x01, 0x1e, 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfa, 0x7c, 238 | 0x39, 0x20, 0x00, 0x7b, 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfa, 0x70, 239 | 0x39, 0x20, 0x00, 0x8a, 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfa, 0x64, 240 | 0x94, 0x21, 0xff, 0xa0, 0x7c, 0x08, 0x02, 0xa6, 0x7d, 0x80, 0x00, 0x26, 241 | 0x93, 0x81, 0x00, 0x50, 0x3b, 0x80, 0xff, 0xff, 0x2d, 0x9c, 0xff, 0xff, 242 | 0x92, 0x81, 0x00, 0x30, 0x92, 0xa1, 0x00, 0x34, 0x3a, 0x80, 0x00, 0x3e, 243 | 0x92, 0xc1, 0x00, 0x38, 0x3a, 0xa0, 0x00, 0x3a, 0x92, 0xe1, 0x00, 0x3c, 244 | 0x3a, 0xc0, 0x00, 0x37, 0x93, 0x01, 0x00, 0x40, 0x3a, 0xe0, 0x00, 0x35, 245 | 0x93, 0x21, 0x00, 0x44, 0x3b, 0x00, 0x00, 0x33, 0x93, 0x41, 0x00, 0x48, 246 | 0x3b, 0x20, 0x00, 0x02, 0x93, 0x61, 0x00, 0x4c, 0x3b, 0x40, 0x1c, 0xa3, 247 | 0x93, 0xa1, 0x00, 0x54, 0x3b, 0x60, 0x00, 0x00, 0x90, 0x01, 0x00, 0x64, 248 | 0x7c, 0x9d, 0x23, 0x78, 0x93, 0xc1, 0x00, 0x58, 0x93, 0xe1, 0x00, 0x5c, 249 | 0x91, 0x81, 0x00, 0x2c, 0x4b, 0xed, 0xa1, 0x3d, 0x38, 0x60, 0x00, 0x02, 250 | 0x38, 0x80, 0x00, 0x01, 0x38, 0xa0, 0x00, 0x06, 0xb3, 0x21, 0x00, 0x08, 251 | 0xb3, 0x41, 0x00, 0x0a, 0x93, 0x61, 0x00, 0x0c, 0x4b, 0xed, 0xb9, 0xed, 252 | 0x2e, 0x03, 0xff, 0xff, 0x7c, 0x7f, 0x1b, 0x78, 0x40, 0x92, 0x00, 0x4c, 253 | 0x93, 0x1d, 0x00, 0x04, 0x3b, 0xc0, 0xff, 0xff, 0x2f, 0x9c, 0xff, 0xff, 254 | 0x41, 0x9e, 0x00, 0x0c, 0x7f, 0x83, 0xe3, 0x78, 0x4b, 0xed, 0xbb, 0x15, 255 | 0x40, 0x92, 0x00, 0x84, 0x93, 0xdd, 0x00, 0x00, 0x38, 0x60, 0x00, 0x02, 256 | 0x38, 0x80, 0x00, 0x01, 0x38, 0xa0, 0x00, 0x06, 0xb3, 0x21, 0x00, 0x08, 257 | 0xb3, 0x41, 0x00, 0x0a, 0x93, 0x61, 0x00, 0x0c, 0x4b, 0xed, 0xb9, 0xa5, 258 | 0x2e, 0x03, 0xff, 0xff, 0x7c, 0x7f, 0x1b, 0x78, 0x41, 0xb2, 0xff, 0xbc, 259 | 0x38, 0x81, 0x00, 0x08, 0x38, 0xa0, 0x00, 0x10, 0x4b, 0xed, 0xa4, 0x8d, 260 | 0x7c, 0x7e, 0x1b, 0x79, 0x41, 0x80, 0x00, 0x54, 0x7f, 0xe3, 0xfb, 0x78, 261 | 0x38, 0x80, 0x00, 0x01, 0x4b, 0xed, 0xa7, 0x79, 0x7c, 0x7e, 0x1b, 0x79, 262 | 0x41, 0x80, 0x00, 0x48, 0x39, 0x20, 0x00, 0x10, 0x7f, 0xe3, 0xfb, 0x78, 263 | 0x38, 0x81, 0x00, 0x08, 0x38, 0xa1, 0x00, 0x18, 0x91, 0x21, 0x00, 0x18, 264 | 0x4b, 0xed, 0xa2, 0xd9, 0x2f, 0x83, 0xff, 0xff, 0x7c, 0x7c, 0x1b, 0x78, 265 | 0x40, 0x9e, 0x00, 0x2c, 0x92, 0xbd, 0x00, 0x04, 0x3b, 0xc0, 0xff, 0xff, 266 | 0x7f, 0xe3, 0xfb, 0x78, 0x4b, 0xed, 0xba, 0x89, 0x93, 0xdd, 0x00, 0x00, 267 | 0x4b, 0xff, 0xff, 0x78, 0x92, 0xfd, 0x00, 0x04, 0x4b, 0xff, 0xff, 0x58, 268 | 0x92, 0xdd, 0x00, 0x04, 0x4b, 0xff, 0xff, 0x50, 0x7f, 0xe3, 0xfb, 0x78, 269 | 0x4b, 0xed, 0xba, 0x69, 0x7f, 0xa3, 0xeb, 0x78, 0x7f, 0x84, 0xe3, 0x78, 270 | 0x4b, 0xff, 0xf6, 0x05, 0x7c, 0x7e, 0x1b, 0x79, 0x41, 0x80, 0x00, 0x14, 271 | 0x7f, 0x83, 0xe3, 0x78, 0x3b, 0x80, 0xff, 0xff, 0x4b, 0xed, 0xba, 0x49, 272 | 0x4b, 0xff, 0xfe, 0xf4, 0x92, 0x9d, 0x00, 0x04, 0x3b, 0xe0, 0xff, 0xff, 273 | 0x4e, 0x0c, 0x00, 0x00, 0x4b, 0xff, 0xff, 0x1c 274 | }; 275 | static const unsigned int codehandler_text_bin_len = 3260; 276 | -------------------------------------------------------------------------------- /installer/src/codehandler500.h: -------------------------------------------------------------------------------- 1 | static const unsigned char codehandler_text_bin[] = { 2 | 0x94, 0x21, 0xff, 0xe8, 0x7c, 0x08, 0x02, 0xa6, 0x3d, 0x20, 0x10, 0x05, 3 | 0x81, 0x29, 0xe2, 0xd0, 0x93, 0x81, 0x00, 0x08, 0x7c, 0x7c, 0x1b, 0x78, 4 | 0x38, 0x60, 0x00, 0x00, 0x93, 0xa1, 0x00, 0x0c, 0x93, 0xe1, 0x00, 0x14, 5 | 0x7c, 0x9d, 0x23, 0x78, 0x90, 0x01, 0x00, 0x1c, 0x60, 0x63, 0x86, 0xa8, 6 | 0x93, 0xc1, 0x00, 0x10, 0x38, 0x80, 0x00, 0x40, 0x7d, 0x29, 0x03, 0xa6, 7 | 0x4e, 0x80, 0x04, 0x21, 0x7c, 0x7f, 0x1b, 0x79, 0x41, 0x82, 0x00, 0x50, 8 | 0x38, 0xa0, 0x00, 0x00, 0x38, 0x80, 0x00, 0x00, 0x60, 0xa5, 0x86, 0xa8, 9 | 0x3b, 0xdf, 0x00, 0x08, 0x4b, 0xe5, 0x97, 0xf5, 0x3c, 0xff, 0x00, 0x01, 10 | 0x3c, 0x80, 0x01, 0x1e, 0x39, 0x00, 0x00, 0x00, 0x7f, 0xc3, 0xf3, 0x78, 11 | 0x38, 0x84, 0xc7, 0x28, 0x38, 0xa0, 0x00, 0x00, 0x7f, 0xe6, 0xfb, 0x78, 12 | 0x38, 0xe7, 0x86, 0xa8, 0x61, 0x08, 0x80, 0x00, 0x39, 0x20, 0x00, 0x00, 13 | 0x39, 0x40, 0x00, 0x0c, 0x4b, 0xe6, 0x47, 0xf9, 0x7f, 0xc3, 0xf3, 0x78, 14 | 0x4b, 0xe6, 0x4c, 0xd9, 0x3d, 0x20, 0x10, 0x06, 0x80, 0x01, 0x00, 0x1c, 15 | 0x81, 0x29, 0xcb, 0x00, 0x7f, 0x83, 0xe3, 0x78, 0x83, 0xc1, 0x00, 0x10, 16 | 0x7f, 0xa4, 0xeb, 0x78, 0x83, 0x81, 0x00, 0x08, 0x7d, 0x29, 0x03, 0xa6, 17 | 0x83, 0xa1, 0x00, 0x0c, 0x83, 0xe1, 0x00, 0x14, 0x7c, 0x08, 0x03, 0xa6, 18 | 0x38, 0x21, 0x00, 0x18, 0x4e, 0x80, 0x04, 0x20, 0x94, 0x21, 0xff, 0xe8, 19 | 0x7c, 0x08, 0x02, 0xa6, 0x38, 0xa0, 0x00, 0x01, 0x38, 0xc0, 0x00, 0x20, 20 | 0x38, 0x81, 0x00, 0x08, 0x90, 0x01, 0x00, 0x1c, 0x4b, 0xee, 0x3e, 0x0d, 21 | 0x2c, 0x03, 0x00, 0x00, 0x41, 0x80, 0x00, 0x0c, 0x41, 0x82, 0x00, 0x18, 22 | 0x88, 0x61, 0x00, 0x08, 0x80, 0x01, 0x00, 0x1c, 0x38, 0x21, 0x00, 0x18, 23 | 0x7c, 0x08, 0x03, 0xa6, 0x4e, 0x80, 0x00, 0x20, 0x38, 0x60, 0xff, 0xff, 24 | 0x4b, 0xff, 0xff, 0xec, 0x94, 0x21, 0xff, 0xe0, 0x7c, 0x08, 0x02, 0xa6, 25 | 0x93, 0xe1, 0x00, 0x1c, 0x7c, 0xff, 0x3b, 0x79, 0x93, 0x61, 0x00, 0x0c, 26 | 0x7c, 0x9b, 0x23, 0x78, 0x93, 0x81, 0x00, 0x10, 0x7c, 0x7c, 0x1b, 0x78, 27 | 0x93, 0xa1, 0x00, 0x14, 0x7c, 0xbd, 0x2b, 0x78, 0x93, 0xc1, 0x00, 0x18, 28 | 0x7c, 0xde, 0x33, 0x78, 0x90, 0x01, 0x00, 0x24, 0x41, 0xa1, 0x00, 0x0c, 29 | 0x48, 0x00, 0x00, 0x64, 0x40, 0x9d, 0x00, 0x60, 0x7f, 0xc4, 0xf3, 0x78, 30 | 0x7f, 0xe5, 0xfb, 0x78, 0x7f, 0xa3, 0xeb, 0x78, 0x38, 0xc0, 0x00, 0x00, 31 | 0x4b, 0xee, 0x3d, 0x91, 0x7c, 0x69, 0x1b, 0x79, 0x7f, 0xe9, 0xf8, 0x50, 32 | 0x7f, 0xde, 0x4a, 0x14, 0x2f, 0x9f, 0x00, 0x00, 0x40, 0x80, 0xff, 0xd8, 33 | 0x80, 0x01, 0x00, 0x24, 0x39, 0x40, 0x01, 0x5c, 0x91, 0x5b, 0x00, 0x00, 34 | 0x7d, 0x23, 0x4b, 0x78, 0x7c, 0x08, 0x03, 0xa6, 0x91, 0x3c, 0x00, 0x00, 35 | 0x83, 0x61, 0x00, 0x0c, 0x83, 0x81, 0x00, 0x10, 0x83, 0xa1, 0x00, 0x14, 36 | 0x83, 0xc1, 0x00, 0x18, 0x83, 0xe1, 0x00, 0x1c, 0x38, 0x21, 0x00, 0x20, 37 | 0x4e, 0x80, 0x00, 0x20, 0x80, 0x01, 0x00, 0x24, 0x38, 0x60, 0x00, 0x00, 38 | 0x83, 0x61, 0x00, 0x0c, 0x7c, 0x08, 0x03, 0xa6, 0x83, 0x81, 0x00, 0x10, 39 | 0x83, 0xa1, 0x00, 0x14, 0x83, 0xc1, 0x00, 0x18, 0x83, 0xe1, 0x00, 0x1c, 40 | 0x38, 0x21, 0x00, 0x20, 0x4e, 0x80, 0x00, 0x20, 0x94, 0x21, 0xff, 0xe0, 41 | 0x7c, 0x08, 0x02, 0xa6, 0x93, 0xe1, 0x00, 0x1c, 0x7c, 0xff, 0x3b, 0x79, 42 | 0x93, 0x61, 0x00, 0x0c, 0x7c, 0x9b, 0x23, 0x78, 0x93, 0x81, 0x00, 0x10, 43 | 0x7c, 0x7c, 0x1b, 0x78, 0x93, 0xa1, 0x00, 0x14, 0x7c, 0xbd, 0x2b, 0x78, 44 | 0x93, 0xc1, 0x00, 0x18, 0x7c, 0xde, 0x33, 0x78, 0x90, 0x01, 0x00, 0x24, 45 | 0x41, 0xa1, 0x00, 0x0c, 0x48, 0x00, 0x00, 0x64, 0x40, 0x9d, 0x00, 0x60, 46 | 0x7f, 0xc4, 0xf3, 0x78, 0x7f, 0xe5, 0xfb, 0x78, 0x7f, 0xa3, 0xeb, 0x78, 47 | 0x38, 0xc0, 0x00, 0x00, 0x4b, 0xee, 0x48, 0x8d, 0x7c, 0x69, 0x1b, 0x79, 48 | 0x7f, 0xe9, 0xf8, 0x50, 0x7f, 0xde, 0x4a, 0x14, 0x2f, 0x9f, 0x00, 0x00, 49 | 0x40, 0x80, 0xff, 0xd8, 0x80, 0x01, 0x00, 0x24, 0x39, 0x40, 0x01, 0x7d, 50 | 0x91, 0x5b, 0x00, 0x00, 0x7d, 0x23, 0x4b, 0x78, 0x7c, 0x08, 0x03, 0xa6, 51 | 0x91, 0x3c, 0x00, 0x00, 0x83, 0x61, 0x00, 0x0c, 0x83, 0x81, 0x00, 0x10, 52 | 0x83, 0xa1, 0x00, 0x14, 0x83, 0xc1, 0x00, 0x18, 0x83, 0xe1, 0x00, 0x1c, 53 | 0x38, 0x21, 0x00, 0x20, 0x4e, 0x80, 0x00, 0x20, 0x80, 0x01, 0x00, 0x24, 54 | 0x38, 0x60, 0x00, 0x00, 0x83, 0x61, 0x00, 0x0c, 0x7c, 0x08, 0x03, 0xa6, 55 | 0x83, 0x81, 0x00, 0x10, 0x83, 0xa1, 0x00, 0x14, 0x83, 0xc1, 0x00, 0x18, 56 | 0x83, 0xe1, 0x00, 0x1c, 0x38, 0x21, 0x00, 0x20, 0x4e, 0x80, 0x00, 0x20, 57 | 0x7c, 0x08, 0x02, 0xa6, 0x94, 0x21, 0xfb, 0x90, 0x92, 0xe1, 0x04, 0x4c, 58 | 0x3e, 0xe0, 0x00, 0x00, 0x90, 0x01, 0x04, 0x74, 0x3a, 0xf7, 0x01, 0xf4, 59 | 0x92, 0x41, 0x04, 0x38, 0x92, 0x61, 0x04, 0x3c, 0x92, 0x81, 0x04, 0x40, 60 | 0x93, 0x61, 0x04, 0x5c, 0x93, 0xc1, 0x04, 0x68, 0x93, 0xe1, 0x04, 0x6c, 61 | 0x92, 0xa1, 0x04, 0x44, 0x3a, 0xa0, 0xff, 0xaa, 0x92, 0xc1, 0x04, 0x48, 62 | 0x3a, 0xc0, 0xff, 0x82, 0x93, 0x01, 0x04, 0x50, 0x3f, 0x00, 0x40, 0x00, 63 | 0x93, 0x21, 0x04, 0x54, 0x3b, 0x21, 0x00, 0x28, 0x93, 0x41, 0x04, 0x58, 64 | 0x3b, 0x43, 0x00, 0x04, 0x93, 0x81, 0x04, 0x60, 0x7c, 0x7c, 0x1b, 0x78, 65 | 0x93, 0xa1, 0x04, 0x64, 0x7c, 0x9d, 0x23, 0x78, 0x7f, 0xa3, 0xeb, 0x78, 66 | 0x4b, 0xff, 0xfd, 0xc9, 0x7c, 0x7f, 0x1b, 0x79, 0x41, 0x80, 0x02, 0x68, 67 | 0x2f, 0x9f, 0x00, 0x41, 0x41, 0x9e, 0x06, 0x88, 0x40, 0x9d, 0x00, 0x58, 68 | 0x2f, 0x9f, 0x00, 0x72, 0x41, 0x9e, 0x05, 0xbc, 0x41, 0x9d, 0x01, 0x78, 69 | 0x2f, 0x9f, 0x00, 0x70, 0x41, 0x9e, 0x02, 0xfc, 0x41, 0x9d, 0x04, 0xe8, 70 | 0x2f, 0x9f, 0x00, 0x50, 0x40, 0xbe, 0xff, 0xc8, 0x39, 0x20, 0x00, 0x01, 71 | 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 72 | 0x38, 0xc1, 0x04, 0x2c, 0x38, 0xe0, 0x00, 0x01, 0x99, 0x21, 0x04, 0x2c, 73 | 0x4b, 0xff, 0xfe, 0x7d, 0x7c, 0x7f, 0x1b, 0x79, 0x40, 0x80, 0xff, 0xa0, 74 | 0x39, 0x20, 0x00, 0xd1, 0x91, 0x3c, 0x00, 0x04, 0x48, 0x00, 0x02, 0x20, 75 | 0x2f, 0x9f, 0x00, 0x03, 0x41, 0x9e, 0x05, 0xec, 0x40, 0x9d, 0x02, 0x64, 76 | 0x2f, 0x9f, 0x00, 0x0b, 0x41, 0x9e, 0x03, 0x58, 0x2f, 0x9f, 0x00, 0x0c, 77 | 0x41, 0x9e, 0x03, 0xdc, 0x2f, 0x9f, 0x00, 0x04, 0x40, 0x9e, 0xff, 0x70, 78 | 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 79 | 0x7f, 0x26, 0xcb, 0x78, 0x38, 0xe0, 0x00, 0x08, 0x4b, 0xff, 0xfd, 0x69, 80 | 0x7c, 0x7f, 0x1b, 0x79, 0x41, 0x80, 0x07, 0x64, 0x83, 0xc1, 0x00, 0x28, 81 | 0x3a, 0x40, 0xff, 0xb0, 0x82, 0x81, 0x00, 0x2c, 0x3a, 0x60, 0xff, 0xbd, 82 | 0x7f, 0x9e, 0xa0, 0x40, 0x41, 0xbe, 0xff, 0x38, 0x7f, 0x7e, 0xa0, 0x50, 83 | 0x2f, 0x9b, 0x04, 0x00, 0x40, 0x9d, 0x00, 0x7c, 0x3b, 0x60, 0x04, 0x00, 84 | 0x89, 0x3e, 0x00, 0x00, 0x2f, 0x89, 0x00, 0x00, 0x40, 0x9e, 0x00, 0x78, 85 | 0x7f, 0x69, 0x03, 0xa6, 0x48, 0x00, 0x00, 0x10, 0x7d, 0x5e, 0x48, 0xae, 86 | 0x2f, 0x8a, 0x00, 0x00, 0x40, 0x9e, 0x00, 0x64, 0x39, 0x29, 0x00, 0x01, 87 | 0x42, 0x00, 0xff, 0xf0, 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 88 | 0x7f, 0xa5, 0xeb, 0x78, 0x38, 0xc1, 0x04, 0x2c, 0x38, 0xe0, 0x00, 0x01, 89 | 0x9a, 0x41, 0x04, 0x2c, 0x4b, 0xff, 0xfd, 0xb9, 0x7c, 0x7f, 0x1b, 0x79, 90 | 0x41, 0x80, 0x06, 0xfc, 0x7f, 0xa3, 0xeb, 0x78, 0x4b, 0xff, 0xfc, 0xa1, 91 | 0x2f, 0x83, 0x00, 0xcc, 0x41, 0xbe, 0xfe, 0xcc, 0x7f, 0xde, 0xda, 0x14, 92 | 0x7f, 0x94, 0xf0, 0x40, 0x41, 0xbe, 0xfe, 0xc0, 0x7f, 0x7e, 0xa0, 0x50, 93 | 0x2f, 0x9b, 0x04, 0x00, 0x41, 0xbd, 0xff, 0x8c, 0x2f, 0x9b, 0x00, 0x00, 94 | 0x41, 0x9d, 0xff, 0x88, 0x41, 0xbe, 0xff, 0xac, 0x7f, 0xc4, 0xf3, 0x78, 95 | 0x7f, 0x65, 0xdb, 0x78, 0x38, 0x61, 0x00, 0x29, 0x4b, 0xe5, 0x93, 0xfd, 96 | 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 97 | 0x7f, 0x26, 0xcb, 0x78, 0x38, 0xfb, 0x00, 0x01, 0x9a, 0x61, 0x00, 0x28, 98 | 0x4b, 0xff, 0xfd, 0x51, 0x7c, 0x7f, 0x1b, 0x79, 0x40, 0x80, 0xff, 0x9c, 99 | 0x39, 0x20, 0x00, 0x8f, 0x91, 0x3c, 0x00, 0x04, 0x48, 0x00, 0x00, 0xf4, 100 | 0x2f, 0x9f, 0x00, 0x99, 0x41, 0x9e, 0x02, 0x08, 0x2f, 0x9f, 0x00, 0x9a, 101 | 0x41, 0x9e, 0x02, 0x8c, 0x2f, 0x9f, 0x00, 0x80, 0x40, 0x9e, 0xfe, 0x50, 102 | 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 103 | 0x7f, 0x26, 0xcb, 0x78, 0x38, 0xe0, 0x00, 0x44, 0x4b, 0xff, 0xfc, 0x49, 104 | 0x7c, 0x7f, 0x1b, 0x79, 0x41, 0x80, 0x06, 0x38, 0x80, 0x81, 0x00, 0x4c, 105 | 0x81, 0x61, 0x00, 0x28, 0x90, 0x81, 0x00, 0x08, 0x80, 0x81, 0x00, 0x50, 106 | 0x7d, 0x69, 0x03, 0xa6, 0x80, 0xa1, 0x00, 0x34, 0x90, 0x81, 0x00, 0x0c, 107 | 0x80, 0x81, 0x00, 0x54, 0x80, 0xc1, 0x00, 0x38, 0x90, 0x81, 0x00, 0x10, 108 | 0x80, 0x81, 0x00, 0x58, 0x80, 0xe1, 0x00, 0x3c, 0x90, 0x81, 0x00, 0x14, 109 | 0x80, 0x81, 0x00, 0x5c, 0x81, 0x01, 0x00, 0x40, 0x90, 0x81, 0x00, 0x18, 110 | 0x80, 0x81, 0x00, 0x60, 0x81, 0x21, 0x00, 0x44, 0x90, 0x81, 0x00, 0x1c, 111 | 0x80, 0x81, 0x00, 0x64, 0x81, 0x41, 0x00, 0x48, 0x90, 0x81, 0x00, 0x20, 112 | 0x80, 0x81, 0x00, 0x68, 0x80, 0x61, 0x00, 0x2c, 0x90, 0x81, 0x00, 0x24, 113 | 0x80, 0x81, 0x00, 0x30, 0x4e, 0x80, 0x04, 0x21, 0x7f, 0xa5, 0xeb, 0x78, 114 | 0x90, 0x61, 0x00, 0x28, 0x7f, 0x26, 0xcb, 0x78, 0x90, 0x81, 0x00, 0x2c, 115 | 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 0x38, 0xe0, 0x00, 0x08, 116 | 0x4b, 0xff, 0xfc, 0x79, 0x7c, 0x7f, 0x1b, 0x79, 0x40, 0x80, 0xfd, 0x9c, 117 | 0x39, 0x20, 0x01, 0x36, 0x91, 0x3c, 0x00, 0x04, 0x48, 0x00, 0x00, 0x1c, 118 | 0x4b, 0xe6, 0x31, 0x5d, 0x81, 0x23, 0x00, 0x00, 0x2f, 0x89, 0x00, 0x06, 119 | 0x41, 0x9e, 0x04, 0xf8, 0x39, 0x20, 0x00, 0x54, 0x91, 0x3c, 0x00, 0x04, 120 | 0x80, 0x01, 0x04, 0x74, 0x38, 0x60, 0x00, 0x00, 0x93, 0xfc, 0x00, 0x00, 121 | 0x7c, 0x08, 0x03, 0xa6, 0x82, 0x41, 0x04, 0x38, 0x82, 0x61, 0x04, 0x3c, 122 | 0x82, 0x81, 0x04, 0x40, 0x82, 0xa1, 0x04, 0x44, 0x82, 0xc1, 0x04, 0x48, 123 | 0x82, 0xe1, 0x04, 0x4c, 0x83, 0x01, 0x04, 0x50, 0x83, 0x21, 0x04, 0x54, 124 | 0x83, 0x41, 0x04, 0x58, 0x83, 0x61, 0x04, 0x5c, 0x83, 0x81, 0x04, 0x60, 125 | 0x83, 0xa1, 0x04, 0x64, 0x83, 0xc1, 0x04, 0x68, 0x83, 0xe1, 0x04, 0x6c, 126 | 0x38, 0x21, 0x04, 0x70, 0x4e, 0x80, 0x00, 0x20, 0x2f, 0x9f, 0x00, 0x01, 127 | 0x41, 0x9e, 0x01, 0xfc, 0x2f, 0x9f, 0x00, 0x02, 0x40, 0xbe, 0xfd, 0x18, 128 | 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 129 | 0x7f, 0x26, 0xcb, 0x78, 0x38, 0xe0, 0x00, 0x08, 0x4b, 0xff, 0xfb, 0x11, 130 | 0x7c, 0x7f, 0x1b, 0x79, 0x41, 0x80, 0x04, 0x90, 0x81, 0x21, 0x00, 0x28, 131 | 0x38, 0x80, 0x00, 0x02, 0xa1, 0x41, 0x00, 0x2e, 0x7d, 0x23, 0x4b, 0x78, 132 | 0xb1, 0x49, 0x00, 0x00, 0x4b, 0xe4, 0x77, 0xe5, 0x4b, 0xff, 0xfc, 0xdc, 133 | 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 134 | 0x7f, 0x26, 0xcb, 0x78, 0x38, 0xe0, 0x00, 0x24, 0x4b, 0xff, 0xfa, 0xd5, 135 | 0x7c, 0x7f, 0x1b, 0x79, 0x41, 0x80, 0x04, 0xa0, 0x81, 0x61, 0x00, 0x28, 136 | 0x80, 0xa1, 0x00, 0x34, 0x80, 0xc1, 0x00, 0x38, 0x7d, 0x69, 0x03, 0xa6, 137 | 0x80, 0xe1, 0x00, 0x3c, 0x81, 0x01, 0x00, 0x40, 0x81, 0x21, 0x00, 0x44, 138 | 0x81, 0x41, 0x00, 0x48, 0x80, 0x61, 0x00, 0x2c, 0x80, 0x81, 0x00, 0x30, 139 | 0x4e, 0x80, 0x04, 0x21, 0x7f, 0xa5, 0xeb, 0x78, 0x90, 0x61, 0x00, 0x28, 140 | 0x7f, 0x26, 0xcb, 0x78, 0x90, 0x81, 0x00, 0x2c, 0x7f, 0x83, 0xe3, 0x78, 141 | 0x7f, 0x44, 0xd3, 0x78, 0x38, 0xe0, 0x00, 0x08, 0x4b, 0xff, 0xfb, 0x45, 142 | 0x7c, 0x7f, 0x1b, 0x79, 0x40, 0x80, 0xfc, 0x68, 0x39, 0x20, 0x00, 0xea, 143 | 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfe, 0xe8, 0x7f, 0x83, 0xe3, 0x78, 144 | 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 0x38, 0xc1, 0x04, 0x2c, 145 | 0x38, 0xe0, 0x00, 0x01, 0x9a, 0xc1, 0x04, 0x2c, 0x4b, 0xff, 0xfb, 0x15, 146 | 0x7c, 0x7f, 0x1b, 0x79, 0x40, 0x80, 0xfc, 0x38, 0x39, 0x20, 0x01, 0x3b, 147 | 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfe, 0xb8, 0x7f, 0x83, 0xe3, 0x78, 148 | 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 149 | 0x38, 0xe0, 0x00, 0x08, 0x4b, 0xff, 0xfa, 0x25, 0x7c, 0x7f, 0x1b, 0x79, 150 | 0x41, 0x80, 0x03, 0xd0, 0x83, 0xc1, 0x00, 0x2c, 0x83, 0xe1, 0x00, 0x28, 151 | 0x38, 0x60, 0x00, 0x01, 0x38, 0x80, 0x00, 0x00, 0x7f, 0xc5, 0xf3, 0x78, 152 | 0x38, 0xc0, 0x00, 0x00, 0x38, 0xe0, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x01, 153 | 0x7f, 0xe9, 0xfb, 0x78, 0x7c, 0x3e, 0x0b, 0x78, 0x38, 0x00, 0x35, 0x00, 154 | 0x44, 0x00, 0x00, 0x02, 0x60, 0x00, 0x00, 0x00, 0x7f, 0xc1, 0xf3, 0x78, 155 | 0x4b, 0xff, 0xfb, 0xd0, 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 156 | 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 0x38, 0xe0, 0x00, 0x04, 157 | 0x92, 0xe1, 0x00, 0x28, 0x4b, 0xff, 0xfa, 0x89, 0x7c, 0x7f, 0x1b, 0x79, 158 | 0x40, 0x80, 0xfb, 0xac, 0x39, 0x20, 0x01, 0x44, 0x91, 0x3c, 0x00, 0x04, 159 | 0x4b, 0xff, 0xfe, 0x2c, 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 160 | 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 0x38, 0xe0, 0x00, 0x04, 161 | 0x4b, 0xff, 0xf9, 0x99, 0x7c, 0x7f, 0x1b, 0x79, 0x41, 0x80, 0x03, 0x0c, 162 | 0x83, 0xe1, 0x00, 0x28, 0x38, 0x60, 0x00, 0x01, 0x38, 0x80, 0x00, 0x00, 163 | 0x38, 0xa0, 0x00, 0x00, 0x38, 0xc0, 0x00, 0x00, 0x38, 0xe0, 0x00, 0x00, 164 | 0x3d, 0x00, 0x00, 0x01, 0x7f, 0xe9, 0xfb, 0x78, 0x38, 0x00, 0x34, 0x00, 165 | 0x7c, 0x3f, 0x0b, 0x78, 0x44, 0x00, 0x00, 0x02, 0x60, 0x00, 0x00, 0x00, 166 | 0x7f, 0xe1, 0xfb, 0x78, 0x7c, 0x7f, 0x1b, 0x78, 0x7f, 0x83, 0xe3, 0x78, 167 | 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 168 | 0x38, 0xe0, 0x00, 0x04, 0x93, 0xe1, 0x00, 0x28, 0x4b, 0xff, 0xfa, 0x01, 169 | 0x4b, 0xff, 0xfb, 0x28, 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 170 | 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 0x38, 0xe0, 0x00, 0x08, 171 | 0x4b, 0xff, 0xf9, 0x21, 0x7c, 0x7f, 0x1b, 0x79, 0x41, 0x80, 0x02, 0xac, 172 | 0x81, 0x21, 0x00, 0x28, 0x38, 0x80, 0x00, 0x01, 0x89, 0x41, 0x00, 0x2f, 173 | 0x7d, 0x23, 0x4b, 0x78, 0x99, 0x49, 0x00, 0x00, 0x4b, 0xe4, 0x75, 0xf5, 174 | 0x4b, 0xff, 0xfa, 0xec, 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 175 | 0x7f, 0xa5, 0xeb, 0x78, 0x38, 0xc1, 0x04, 0x2c, 0x38, 0xe0, 0x00, 0x01, 176 | 0x4b, 0xff, 0xf8, 0xe5, 0x2c, 0x03, 0x00, 0x00, 0x41, 0x80, 0x02, 0x88, 177 | 0x88, 0xe1, 0x04, 0x2c, 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 178 | 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 0x54, 0xe7, 0x06, 0x3e, 179 | 0x4b, 0xff, 0xf8, 0xc1, 0x7c, 0x7f, 0x1b, 0x79, 0x41, 0x80, 0x02, 0x80, 180 | 0x38, 0x81, 0x04, 0x30, 0x38, 0x61, 0x00, 0x30, 0x83, 0xe1, 0x00, 0x2c, 181 | 0x4b, 0xe4, 0xd8, 0x75, 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 182 | 0x7f, 0xa5, 0xeb, 0x78, 0x38, 0xc1, 0x04, 0x2c, 0x38, 0xe0, 0x00, 0x01, 183 | 0x7f, 0xf9, 0xfa, 0x14, 0x4b, 0xff, 0xf8, 0x8d, 0x2c, 0x03, 0x00, 0x00, 184 | 0x41, 0x80, 0x02, 0x44, 0x88, 0x81, 0x04, 0x2c, 0x80, 0x61, 0x04, 0x30, 185 | 0x7f, 0xe5, 0xfb, 0x78, 0x54, 0x84, 0x06, 0x3e, 0x38, 0xc1, 0x04, 0x2c, 186 | 0x4b, 0xe4, 0xef, 0x45, 0x81, 0x21, 0x04, 0x2c, 0x7f, 0x83, 0xe3, 0x78, 187 | 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 188 | 0x38, 0xe0, 0x00, 0x04, 0x91, 0x21, 0x00, 0x28, 0x4b, 0xff, 0xf9, 0x11, 189 | 0x7c, 0x7f, 0x1b, 0x79, 0x40, 0x80, 0xfa, 0x34, 0x39, 0x20, 0x01, 0x00, 190 | 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfc, 0xb4, 0x7f, 0x83, 0xe3, 0x78, 191 | 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 192 | 0x38, 0xe0, 0x00, 0x0c, 0x4b, 0xff, 0xf8, 0x21, 0x7c, 0x7f, 0x1b, 0x79, 193 | 0x41, 0x80, 0x02, 0x04, 0x81, 0x21, 0x00, 0x28, 0x81, 0x01, 0x00, 0x30, 194 | 0x80, 0xe1, 0x00, 0x2c, 0x7d, 0x09, 0x42, 0x14, 0x7f, 0x89, 0x40, 0x00, 195 | 0x41, 0xbc, 0x00, 0x14, 0x48, 0x00, 0x01, 0x5c, 0x39, 0x29, 0x00, 0x04, 196 | 0x7f, 0x89, 0x40, 0x00, 0x40, 0x9c, 0x01, 0x50, 0x81, 0x49, 0x00, 0x00, 197 | 0x7f, 0x8a, 0x38, 0x00, 0x40, 0x9e, 0xff, 0xec, 0x7f, 0x83, 0xe3, 0x78, 198 | 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 199 | 0x38, 0xe0, 0x00, 0x04, 0x91, 0x21, 0x00, 0x28, 0x4b, 0xff, 0xf8, 0x8d, 200 | 0x7c, 0x7f, 0x1b, 0x79, 0x40, 0x80, 0xf9, 0xb0, 0x39, 0x20, 0x01, 0x15, 201 | 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfc, 0x30, 0x7f, 0x83, 0xe3, 0x78, 202 | 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 203 | 0x38, 0xe0, 0x00, 0x08, 0x4b, 0xff, 0xf7, 0x9d, 0x7c, 0x7f, 0x1b, 0x79, 204 | 0x41, 0x80, 0x01, 0x34, 0x81, 0x21, 0x00, 0x28, 0x38, 0x80, 0x00, 0x04, 205 | 0x81, 0x41, 0x00, 0x2c, 0x7d, 0x23, 0x4b, 0x78, 0x91, 0x49, 0x00, 0x00, 206 | 0x4b, 0xe4, 0x74, 0x71, 0x4b, 0xff, 0xf9, 0x68, 0x7f, 0x83, 0xe3, 0x78, 207 | 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 208 | 0x38, 0xe0, 0x00, 0x08, 0x4b, 0xff, 0xf7, 0x61, 0x7c, 0x7f, 0x1b, 0x79, 209 | 0x41, 0x80, 0x01, 0x38, 0x83, 0xc1, 0x00, 0x28, 0x82, 0x81, 0x00, 0x2c, 210 | 0x7f, 0x9e, 0xa0, 0x40, 0x41, 0x9e, 0x00, 0x88, 0x7f, 0x7e, 0xa0, 0x50, 211 | 0x3d, 0x3e, 0xf0, 0x00, 0x2f, 0x9b, 0x04, 0x00, 0x7f, 0xc6, 0xf3, 0x78, 212 | 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x83, 0xe3, 0x78, 213 | 0x7f, 0x09, 0xc0, 0x40, 0x40, 0x9d, 0x00, 0x08, 0x3b, 0x60, 0x04, 0x00, 214 | 0x7f, 0x67, 0xdb, 0x78, 0x40, 0x99, 0x00, 0x38, 0x7f, 0x44, 0xd3, 0x78, 215 | 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 0x7f, 0x67, 0xdb, 0x78, 216 | 0x7f, 0x83, 0xe3, 0x78, 0x4b, 0xff, 0xf7, 0x01, 0x7c, 0x7f, 0x1b, 0x79, 217 | 0x41, 0x80, 0x00, 0x68, 0x7f, 0xc3, 0xf3, 0x78, 0x7f, 0x24, 0xcb, 0x78, 218 | 0x7f, 0x65, 0xdb, 0x78, 0x4b, 0xe5, 0x8e, 0x3d, 0x48, 0x00, 0x00, 0x18, 219 | 0x4b, 0xff, 0xf6, 0xe1, 0x7f, 0x99, 0xf0, 0x00, 0x7c, 0x7f, 0x1b, 0x79, 220 | 0x41, 0x80, 0x00, 0x44, 0x41, 0xbe, 0xff, 0xdc, 0x7f, 0xde, 0xda, 0x14, 221 | 0x7f, 0x94, 0xf0, 0x40, 0x40, 0x9e, 0xff, 0x80, 0x7f, 0x83, 0xe3, 0x78, 222 | 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 0x38, 0xc1, 0x04, 0x2c, 223 | 0x38, 0xe0, 0x00, 0x01, 0x9a, 0xa1, 0x04, 0x2c, 0x4b, 0xff, 0xf7, 0x6d, 224 | 0x4b, 0xff, 0xf8, 0x94, 0x39, 0x20, 0x00, 0x00, 0x4b, 0xff, 0xfe, 0xbc, 225 | 0x4b, 0xf7, 0x41, 0xf5, 0x4b, 0xff, 0xf8, 0x84, 0x39, 0x20, 0x00, 0xc4, 226 | 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfb, 0x04, 0x39, 0x20, 0x00, 0xa7, 227 | 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfa, 0xf8, 0x39, 0x20, 0x00, 0x67, 228 | 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfa, 0xec, 0x39, 0x20, 0x00, 0x5d, 229 | 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfa, 0xe0, 0x39, 0x20, 0x00, 0x71, 230 | 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfa, 0xd4, 0x7c, 0x67, 0x1b, 0x78, 231 | 0x4b, 0xff, 0xfd, 0x7c, 0x39, 0x20, 0x00, 0x9c, 0x91, 0x3c, 0x00, 0x04, 232 | 0x4b, 0xff, 0xfa, 0xc0, 0x7c, 0x64, 0x1b, 0x78, 0x4b, 0xff, 0xfd, 0xc0, 233 | 0x39, 0x20, 0x00, 0xf1, 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfa, 0xac, 234 | 0x39, 0x20, 0x00, 0xda, 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfa, 0xa0, 235 | 0x39, 0x20, 0x00, 0xb4, 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfa, 0x94, 236 | 0x39, 0x20, 0x01, 0x05, 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfa, 0x88, 237 | 0x39, 0x20, 0x01, 0x1e, 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfa, 0x7c, 238 | 0x39, 0x20, 0x00, 0x7b, 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfa, 0x70, 239 | 0x39, 0x20, 0x00, 0x8a, 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfa, 0x64, 240 | 0x94, 0x21, 0xff, 0xa0, 0x7c, 0x08, 0x02, 0xa6, 0x7d, 0x80, 0x00, 0x26, 241 | 0x93, 0x81, 0x00, 0x50, 0x3b, 0x80, 0xff, 0xff, 0x2d, 0x9c, 0xff, 0xff, 242 | 0x92, 0x81, 0x00, 0x30, 0x92, 0xa1, 0x00, 0x34, 0x3a, 0x80, 0x00, 0x3e, 243 | 0x92, 0xc1, 0x00, 0x38, 0x3a, 0xa0, 0x00, 0x3a, 0x92, 0xe1, 0x00, 0x3c, 244 | 0x3a, 0xc0, 0x00, 0x37, 0x93, 0x01, 0x00, 0x40, 0x3a, 0xe0, 0x00, 0x35, 245 | 0x93, 0x21, 0x00, 0x44, 0x3b, 0x00, 0x00, 0x33, 0x93, 0x41, 0x00, 0x48, 246 | 0x3b, 0x20, 0x00, 0x02, 0x93, 0x61, 0x00, 0x4c, 0x3b, 0x40, 0x1c, 0xa3, 247 | 0x93, 0xa1, 0x00, 0x54, 0x3b, 0x60, 0x00, 0x00, 0x90, 0x01, 0x00, 0x64, 248 | 0x7c, 0x9d, 0x23, 0x78, 0x93, 0xc1, 0x00, 0x58, 0x93, 0xe1, 0x00, 0x5c, 249 | 0x91, 0x81, 0x00, 0x2c, 0x4b, 0xee, 0x2b, 0x5d, 0x38, 0x60, 0x00, 0x02, 250 | 0x38, 0x80, 0x00, 0x01, 0x38, 0xa0, 0x00, 0x06, 0xb3, 0x21, 0x00, 0x08, 251 | 0xb3, 0x41, 0x00, 0x0a, 0x93, 0x61, 0x00, 0x0c, 0x4b, 0xee, 0x4a, 0x15, 252 | 0x2e, 0x03, 0xff, 0xff, 0x7c, 0x7f, 0x1b, 0x78, 0x40, 0x92, 0x00, 0x4c, 253 | 0x93, 0x1d, 0x00, 0x04, 0x3b, 0xc0, 0xff, 0xff, 0x2f, 0x9c, 0xff, 0xff, 254 | 0x41, 0x9e, 0x00, 0x0c, 0x7f, 0x83, 0xe3, 0x78, 0x4b, 0xee, 0x4b, 0x3d, 255 | 0x40, 0x92, 0x00, 0x84, 0x93, 0xdd, 0x00, 0x00, 0x38, 0x60, 0x00, 0x02, 256 | 0x38, 0x80, 0x00, 0x01, 0x38, 0xa0, 0x00, 0x06, 0xb3, 0x21, 0x00, 0x08, 257 | 0xb3, 0x41, 0x00, 0x0a, 0x93, 0x61, 0x00, 0x0c, 0x4b, 0xee, 0x49, 0xcd, 258 | 0x2e, 0x03, 0xff, 0xff, 0x7c, 0x7f, 0x1b, 0x78, 0x41, 0xb2, 0xff, 0xbc, 259 | 0x38, 0x81, 0x00, 0x08, 0x38, 0xa0, 0x00, 0x10, 0x4b, 0xee, 0x2e, 0xb9, 260 | 0x7c, 0x7e, 0x1b, 0x79, 0x41, 0x80, 0x00, 0x54, 0x7f, 0xe3, 0xfb, 0x78, 261 | 0x38, 0x80, 0x00, 0x01, 0x4b, 0xee, 0x31, 0xa5, 0x7c, 0x7e, 0x1b, 0x79, 262 | 0x41, 0x80, 0x00, 0x48, 0x39, 0x20, 0x00, 0x10, 0x7f, 0xe3, 0xfb, 0x78, 263 | 0x38, 0x81, 0x00, 0x08, 0x38, 0xa1, 0x00, 0x18, 0x91, 0x21, 0x00, 0x18, 264 | 0x4b, 0xee, 0x2d, 0x05, 0x2f, 0x83, 0xff, 0xff, 0x7c, 0x7c, 0x1b, 0x78, 265 | 0x40, 0x9e, 0x00, 0x2c, 0x92, 0xbd, 0x00, 0x04, 0x3b, 0xc0, 0xff, 0xff, 266 | 0x7f, 0xe3, 0xfb, 0x78, 0x4b, 0xee, 0x4a, 0xb1, 0x93, 0xdd, 0x00, 0x00, 267 | 0x4b, 0xff, 0xff, 0x78, 0x92, 0xfd, 0x00, 0x04, 0x4b, 0xff, 0xff, 0x58, 268 | 0x92, 0xdd, 0x00, 0x04, 0x4b, 0xff, 0xff, 0x50, 0x7f, 0xe3, 0xfb, 0x78, 269 | 0x4b, 0xee, 0x4a, 0x91, 0x7f, 0xa3, 0xeb, 0x78, 0x7f, 0x84, 0xe3, 0x78, 270 | 0x4b, 0xff, 0xf6, 0x05, 0x7c, 0x7e, 0x1b, 0x79, 0x41, 0x80, 0x00, 0x14, 271 | 0x7f, 0x83, 0xe3, 0x78, 0x3b, 0x80, 0xff, 0xff, 0x4b, 0xee, 0x4a, 0x71, 272 | 0x4b, 0xff, 0xfe, 0xf4, 0x92, 0x9d, 0x00, 0x04, 0x3b, 0xe0, 0xff, 0xff, 273 | 0x4e, 0x0c, 0x00, 0x00, 0x4b, 0xff, 0xff, 0x1c 274 | }; 275 | static const unsigned int codehandler_text_bin_len = 3260; 276 | -------------------------------------------------------------------------------- /installer/src/codehandler532.h: -------------------------------------------------------------------------------- 1 | static const unsigned char codehandler_text_bin[] = { 2 | 0x94, 0x21, 0xff, 0xe8, 0x7c, 0x08, 0x02, 0xa6, 0x3d, 0x20, 0x10, 0x05, 3 | 0x81, 0x29, 0xe9, 0xc0, 0x93, 0x81, 0x00, 0x08, 0x7c, 0x7c, 0x1b, 0x78, 4 | 0x38, 0x60, 0x00, 0x00, 0x93, 0xa1, 0x00, 0x0c, 0x93, 0xe1, 0x00, 0x14, 5 | 0x7c, 0x9d, 0x23, 0x78, 0x90, 0x01, 0x00, 0x1c, 0x60, 0x63, 0x86, 0xa8, 6 | 0x93, 0xc1, 0x00, 0x10, 0x38, 0x80, 0x00, 0x40, 0x7d, 0x29, 0x03, 0xa6, 7 | 0x4e, 0x80, 0x04, 0x21, 0x7c, 0x7f, 0x1b, 0x79, 0x41, 0x82, 0x00, 0x50, 8 | 0x38, 0xa0, 0x00, 0x00, 0x38, 0x80, 0x00, 0x00, 0x60, 0xa5, 0x86, 0xa8, 9 | 0x3b, 0xdf, 0x00, 0x08, 0x4b, 0xe5, 0x89, 0xfd, 0x3c, 0xff, 0x00, 0x01, 10 | 0x3c, 0x80, 0x01, 0x1e, 0x39, 0x00, 0x00, 0x00, 0x7f, 0xc3, 0xf3, 0x78, 11 | 0x38, 0x84, 0xdb, 0x28, 0x38, 0xa0, 0x00, 0x00, 0x7f, 0xe6, 0xfb, 0x78, 12 | 0x38, 0xe7, 0x86, 0xa8, 0x61, 0x08, 0x80, 0x00, 0x39, 0x20, 0x00, 0x00, 13 | 0x39, 0x40, 0x00, 0x0c, 0x4b, 0xe6, 0x44, 0x41, 0x7f, 0xc3, 0xf3, 0x78, 14 | 0x4b, 0xe6, 0x49, 0x21, 0x3d, 0x20, 0x10, 0x06, 0x80, 0x01, 0x00, 0x1c, 15 | 0x81, 0x29, 0xd1, 0x80, 0x7f, 0x83, 0xe3, 0x78, 0x83, 0xc1, 0x00, 0x10, 16 | 0x7f, 0xa4, 0xeb, 0x78, 0x83, 0x81, 0x00, 0x08, 0x7d, 0x29, 0x03, 0xa6, 17 | 0x83, 0xa1, 0x00, 0x0c, 0x83, 0xe1, 0x00, 0x14, 0x7c, 0x08, 0x03, 0xa6, 18 | 0x38, 0x21, 0x00, 0x18, 0x4e, 0x80, 0x04, 0x20, 0x94, 0x21, 0xff, 0xe8, 19 | 0x7c, 0x08, 0x02, 0xa6, 0x38, 0xa0, 0x00, 0x01, 0x38, 0xc0, 0x00, 0x20, 20 | 0x38, 0x81, 0x00, 0x08, 0x90, 0x01, 0x00, 0x1c, 0x4b, 0xee, 0x3a, 0x0d, 21 | 0x2c, 0x03, 0x00, 0x00, 0x41, 0x80, 0x00, 0x0c, 0x41, 0x82, 0x00, 0x18, 22 | 0x88, 0x61, 0x00, 0x08, 0x80, 0x01, 0x00, 0x1c, 0x38, 0x21, 0x00, 0x18, 23 | 0x7c, 0x08, 0x03, 0xa6, 0x4e, 0x80, 0x00, 0x20, 0x38, 0x60, 0xff, 0xff, 24 | 0x4b, 0xff, 0xff, 0xec, 0x94, 0x21, 0xff, 0xe0, 0x7c, 0x08, 0x02, 0xa6, 25 | 0x93, 0xe1, 0x00, 0x1c, 0x7c, 0xff, 0x3b, 0x79, 0x93, 0x61, 0x00, 0x0c, 26 | 0x7c, 0x9b, 0x23, 0x78, 0x93, 0x81, 0x00, 0x10, 0x7c, 0x7c, 0x1b, 0x78, 27 | 0x93, 0xa1, 0x00, 0x14, 0x7c, 0xbd, 0x2b, 0x78, 0x93, 0xc1, 0x00, 0x18, 28 | 0x7c, 0xde, 0x33, 0x78, 0x90, 0x01, 0x00, 0x24, 0x41, 0xa1, 0x00, 0x0c, 29 | 0x48, 0x00, 0x00, 0x64, 0x40, 0x9d, 0x00, 0x60, 0x7f, 0xc4, 0xf3, 0x78, 30 | 0x7f, 0xe5, 0xfb, 0x78, 0x7f, 0xa3, 0xeb, 0x78, 0x38, 0xc0, 0x00, 0x00, 31 | 0x4b, 0xee, 0x39, 0x91, 0x7c, 0x69, 0x1b, 0x79, 0x7f, 0xe9, 0xf8, 0x50, 32 | 0x7f, 0xde, 0x4a, 0x14, 0x2f, 0x9f, 0x00, 0x00, 0x40, 0x80, 0xff, 0xd8, 33 | 0x80, 0x01, 0x00, 0x24, 0x39, 0x40, 0x01, 0x5c, 0x91, 0x5b, 0x00, 0x00, 34 | 0x7d, 0x23, 0x4b, 0x78, 0x7c, 0x08, 0x03, 0xa6, 0x91, 0x3c, 0x00, 0x00, 35 | 0x83, 0x61, 0x00, 0x0c, 0x83, 0x81, 0x00, 0x10, 0x83, 0xa1, 0x00, 0x14, 36 | 0x83, 0xc1, 0x00, 0x18, 0x83, 0xe1, 0x00, 0x1c, 0x38, 0x21, 0x00, 0x20, 37 | 0x4e, 0x80, 0x00, 0x20, 0x80, 0x01, 0x00, 0x24, 0x38, 0x60, 0x00, 0x00, 38 | 0x83, 0x61, 0x00, 0x0c, 0x7c, 0x08, 0x03, 0xa6, 0x83, 0x81, 0x00, 0x10, 39 | 0x83, 0xa1, 0x00, 0x14, 0x83, 0xc1, 0x00, 0x18, 0x83, 0xe1, 0x00, 0x1c, 40 | 0x38, 0x21, 0x00, 0x20, 0x4e, 0x80, 0x00, 0x20, 0x94, 0x21, 0xff, 0xe0, 41 | 0x7c, 0x08, 0x02, 0xa6, 0x93, 0xe1, 0x00, 0x1c, 0x7c, 0xff, 0x3b, 0x79, 42 | 0x93, 0x61, 0x00, 0x0c, 0x7c, 0x9b, 0x23, 0x78, 0x93, 0x81, 0x00, 0x10, 43 | 0x7c, 0x7c, 0x1b, 0x78, 0x93, 0xa1, 0x00, 0x14, 0x7c, 0xbd, 0x2b, 0x78, 44 | 0x93, 0xc1, 0x00, 0x18, 0x7c, 0xde, 0x33, 0x78, 0x90, 0x01, 0x00, 0x24, 45 | 0x41, 0xa1, 0x00, 0x0c, 0x48, 0x00, 0x00, 0x64, 0x40, 0x9d, 0x00, 0x60, 46 | 0x7f, 0xc4, 0xf3, 0x78, 0x7f, 0xe5, 0xfb, 0x78, 0x7f, 0xa3, 0xeb, 0x78, 47 | 0x38, 0xc0, 0x00, 0x00, 0x4b, 0xee, 0x44, 0x8d, 0x7c, 0x69, 0x1b, 0x79, 48 | 0x7f, 0xe9, 0xf8, 0x50, 0x7f, 0xde, 0x4a, 0x14, 0x2f, 0x9f, 0x00, 0x00, 49 | 0x40, 0x80, 0xff, 0xd8, 0x80, 0x01, 0x00, 0x24, 0x39, 0x40, 0x01, 0x7d, 50 | 0x91, 0x5b, 0x00, 0x00, 0x7d, 0x23, 0x4b, 0x78, 0x7c, 0x08, 0x03, 0xa6, 51 | 0x91, 0x3c, 0x00, 0x00, 0x83, 0x61, 0x00, 0x0c, 0x83, 0x81, 0x00, 0x10, 52 | 0x83, 0xa1, 0x00, 0x14, 0x83, 0xc1, 0x00, 0x18, 0x83, 0xe1, 0x00, 0x1c, 53 | 0x38, 0x21, 0x00, 0x20, 0x4e, 0x80, 0x00, 0x20, 0x80, 0x01, 0x00, 0x24, 54 | 0x38, 0x60, 0x00, 0x00, 0x83, 0x61, 0x00, 0x0c, 0x7c, 0x08, 0x03, 0xa6, 55 | 0x83, 0x81, 0x00, 0x10, 0x83, 0xa1, 0x00, 0x14, 0x83, 0xc1, 0x00, 0x18, 56 | 0x83, 0xe1, 0x00, 0x1c, 0x38, 0x21, 0x00, 0x20, 0x4e, 0x80, 0x00, 0x20, 57 | 0x7c, 0x08, 0x02, 0xa6, 0x94, 0x21, 0xfb, 0x90, 0x92, 0xe1, 0x04, 0x4c, 58 | 0x3e, 0xe0, 0x00, 0x00, 0x90, 0x01, 0x04, 0x74, 0x3a, 0xf7, 0x02, 0x14, 59 | 0x92, 0x41, 0x04, 0x38, 0x92, 0x61, 0x04, 0x3c, 0x92, 0x81, 0x04, 0x40, 60 | 0x93, 0x61, 0x04, 0x5c, 0x93, 0xc1, 0x04, 0x68, 0x93, 0xe1, 0x04, 0x6c, 61 | 0x92, 0xa1, 0x04, 0x44, 0x3a, 0xa0, 0xff, 0xaa, 0x92, 0xc1, 0x04, 0x48, 62 | 0x3a, 0xc0, 0xff, 0x82, 0x93, 0x01, 0x04, 0x50, 0x3f, 0x00, 0x40, 0x00, 63 | 0x93, 0x21, 0x04, 0x54, 0x3b, 0x21, 0x00, 0x28, 0x93, 0x41, 0x04, 0x58, 64 | 0x3b, 0x43, 0x00, 0x04, 0x93, 0x81, 0x04, 0x60, 0x7c, 0x7c, 0x1b, 0x78, 65 | 0x93, 0xa1, 0x04, 0x64, 0x7c, 0x9d, 0x23, 0x78, 0x7f, 0xa3, 0xeb, 0x78, 66 | 0x4b, 0xff, 0xfd, 0xc9, 0x7c, 0x7f, 0x1b, 0x79, 0x41, 0x80, 0x02, 0x68, 67 | 0x2f, 0x9f, 0x00, 0x41, 0x41, 0x9e, 0x06, 0x88, 0x40, 0x9d, 0x00, 0x58, 68 | 0x2f, 0x9f, 0x00, 0x72, 0x41, 0x9e, 0x05, 0xbc, 0x41, 0x9d, 0x01, 0x78, 69 | 0x2f, 0x9f, 0x00, 0x70, 0x41, 0x9e, 0x02, 0xfc, 0x41, 0x9d, 0x04, 0xe8, 70 | 0x2f, 0x9f, 0x00, 0x50, 0x40, 0xbe, 0xff, 0xc8, 0x39, 0x20, 0x00, 0x01, 71 | 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 72 | 0x38, 0xc1, 0x04, 0x2c, 0x38, 0xe0, 0x00, 0x01, 0x99, 0x21, 0x04, 0x2c, 73 | 0x4b, 0xff, 0xfe, 0x7d, 0x7c, 0x7f, 0x1b, 0x79, 0x40, 0x80, 0xff, 0xa0, 74 | 0x39, 0x20, 0x00, 0xd1, 0x91, 0x3c, 0x00, 0x04, 0x48, 0x00, 0x02, 0x20, 75 | 0x2f, 0x9f, 0x00, 0x03, 0x41, 0x9e, 0x05, 0xec, 0x40, 0x9d, 0x02, 0x64, 76 | 0x2f, 0x9f, 0x00, 0x0b, 0x41, 0x9e, 0x03, 0x58, 0x2f, 0x9f, 0x00, 0x0c, 77 | 0x41, 0x9e, 0x03, 0xdc, 0x2f, 0x9f, 0x00, 0x04, 0x40, 0x9e, 0xff, 0x70, 78 | 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 79 | 0x7f, 0x26, 0xcb, 0x78, 0x38, 0xe0, 0x00, 0x08, 0x4b, 0xff, 0xfd, 0x69, 80 | 0x7c, 0x7f, 0x1b, 0x79, 0x41, 0x80, 0x07, 0x64, 0x83, 0xc1, 0x00, 0x28, 81 | 0x3a, 0x40, 0xff, 0xb0, 0x82, 0x81, 0x00, 0x2c, 0x3a, 0x60, 0xff, 0xbd, 82 | 0x7f, 0x9e, 0xa0, 0x40, 0x41, 0xbe, 0xff, 0x38, 0x7f, 0x7e, 0xa0, 0x50, 83 | 0x2f, 0x9b, 0x04, 0x00, 0x40, 0x9d, 0x00, 0x7c, 0x3b, 0x60, 0x04, 0x00, 84 | 0x89, 0x3e, 0x00, 0x00, 0x2f, 0x89, 0x00, 0x00, 0x40, 0x9e, 0x00, 0x78, 85 | 0x7f, 0x69, 0x03, 0xa6, 0x48, 0x00, 0x00, 0x10, 0x7d, 0x5e, 0x48, 0xae, 86 | 0x2f, 0x8a, 0x00, 0x00, 0x40, 0x9e, 0x00, 0x64, 0x39, 0x29, 0x00, 0x01, 87 | 0x42, 0x00, 0xff, 0xf0, 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 88 | 0x7f, 0xa5, 0xeb, 0x78, 0x38, 0xc1, 0x04, 0x2c, 0x38, 0xe0, 0x00, 0x01, 89 | 0x9a, 0x41, 0x04, 0x2c, 0x4b, 0xff, 0xfd, 0xb9, 0x7c, 0x7f, 0x1b, 0x79, 90 | 0x41, 0x80, 0x06, 0xfc, 0x7f, 0xa3, 0xeb, 0x78, 0x4b, 0xff, 0xfc, 0xa1, 91 | 0x2f, 0x83, 0x00, 0xcc, 0x41, 0xbe, 0xfe, 0xcc, 0x7f, 0xde, 0xda, 0x14, 92 | 0x7f, 0x94, 0xf0, 0x40, 0x41, 0xbe, 0xfe, 0xc0, 0x7f, 0x7e, 0xa0, 0x50, 93 | 0x2f, 0x9b, 0x04, 0x00, 0x41, 0xbd, 0xff, 0x8c, 0x2f, 0x9b, 0x00, 0x00, 94 | 0x41, 0x9d, 0xff, 0x88, 0x41, 0xbe, 0xff, 0xac, 0x7f, 0xc4, 0xf3, 0x78, 95 | 0x7f, 0x65, 0xdb, 0x78, 0x38, 0x61, 0x00, 0x29, 0x4b, 0xe5, 0x86, 0x05, 96 | 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 97 | 0x7f, 0x26, 0xcb, 0x78, 0x38, 0xfb, 0x00, 0x01, 0x9a, 0x61, 0x00, 0x28, 98 | 0x4b, 0xff, 0xfd, 0x51, 0x7c, 0x7f, 0x1b, 0x79, 0x40, 0x80, 0xff, 0x9c, 99 | 0x39, 0x20, 0x00, 0x8f, 0x91, 0x3c, 0x00, 0x04, 0x48, 0x00, 0x00, 0xf4, 100 | 0x2f, 0x9f, 0x00, 0x99, 0x41, 0x9e, 0x02, 0x08, 0x2f, 0x9f, 0x00, 0x9a, 101 | 0x41, 0x9e, 0x02, 0x8c, 0x2f, 0x9f, 0x00, 0x80, 0x40, 0x9e, 0xfe, 0x50, 102 | 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 103 | 0x7f, 0x26, 0xcb, 0x78, 0x38, 0xe0, 0x00, 0x44, 0x4b, 0xff, 0xfc, 0x49, 104 | 0x7c, 0x7f, 0x1b, 0x79, 0x41, 0x80, 0x06, 0x38, 0x80, 0x81, 0x00, 0x4c, 105 | 0x81, 0x61, 0x00, 0x28, 0x90, 0x81, 0x00, 0x08, 0x80, 0x81, 0x00, 0x50, 106 | 0x7d, 0x69, 0x03, 0xa6, 0x80, 0xa1, 0x00, 0x34, 0x90, 0x81, 0x00, 0x0c, 107 | 0x80, 0x81, 0x00, 0x54, 0x80, 0xc1, 0x00, 0x38, 0x90, 0x81, 0x00, 0x10, 108 | 0x80, 0x81, 0x00, 0x58, 0x80, 0xe1, 0x00, 0x3c, 0x90, 0x81, 0x00, 0x14, 109 | 0x80, 0x81, 0x00, 0x5c, 0x81, 0x01, 0x00, 0x40, 0x90, 0x81, 0x00, 0x18, 110 | 0x80, 0x81, 0x00, 0x60, 0x81, 0x21, 0x00, 0x44, 0x90, 0x81, 0x00, 0x1c, 111 | 0x80, 0x81, 0x00, 0x64, 0x81, 0x41, 0x00, 0x48, 0x90, 0x81, 0x00, 0x20, 112 | 0x80, 0x81, 0x00, 0x68, 0x80, 0x61, 0x00, 0x2c, 0x90, 0x81, 0x00, 0x24, 113 | 0x80, 0x81, 0x00, 0x30, 0x4e, 0x80, 0x04, 0x21, 0x7f, 0xa5, 0xeb, 0x78, 114 | 0x90, 0x61, 0x00, 0x28, 0x7f, 0x26, 0xcb, 0x78, 0x90, 0x81, 0x00, 0x2c, 115 | 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 0x38, 0xe0, 0x00, 0x08, 116 | 0x4b, 0xff, 0xfc, 0x79, 0x7c, 0x7f, 0x1b, 0x79, 0x40, 0x80, 0xfd, 0x9c, 117 | 0x39, 0x20, 0x01, 0x36, 0x91, 0x3c, 0x00, 0x04, 0x48, 0x00, 0x00, 0x1c, 118 | 0x4b, 0xe6, 0x2d, 0x99, 0x81, 0x23, 0x00, 0x00, 0x2f, 0x89, 0x00, 0x06, 119 | 0x41, 0x9e, 0x04, 0xf8, 0x39, 0x20, 0x00, 0x54, 0x91, 0x3c, 0x00, 0x04, 120 | 0x80, 0x01, 0x04, 0x74, 0x38, 0x60, 0x00, 0x00, 0x93, 0xfc, 0x00, 0x00, 121 | 0x7c, 0x08, 0x03, 0xa6, 0x82, 0x41, 0x04, 0x38, 0x82, 0x61, 0x04, 0x3c, 122 | 0x82, 0x81, 0x04, 0x40, 0x82, 0xa1, 0x04, 0x44, 0x82, 0xc1, 0x04, 0x48, 123 | 0x82, 0xe1, 0x04, 0x4c, 0x83, 0x01, 0x04, 0x50, 0x83, 0x21, 0x04, 0x54, 124 | 0x83, 0x41, 0x04, 0x58, 0x83, 0x61, 0x04, 0x5c, 0x83, 0x81, 0x04, 0x60, 125 | 0x83, 0xa1, 0x04, 0x64, 0x83, 0xc1, 0x04, 0x68, 0x83, 0xe1, 0x04, 0x6c, 126 | 0x38, 0x21, 0x04, 0x70, 0x4e, 0x80, 0x00, 0x20, 0x2f, 0x9f, 0x00, 0x01, 127 | 0x41, 0x9e, 0x01, 0xfc, 0x2f, 0x9f, 0x00, 0x02, 0x40, 0xbe, 0xfd, 0x18, 128 | 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 129 | 0x7f, 0x26, 0xcb, 0x78, 0x38, 0xe0, 0x00, 0x08, 0x4b, 0xff, 0xfb, 0x11, 130 | 0x7c, 0x7f, 0x1b, 0x79, 0x41, 0x80, 0x04, 0x90, 0x81, 0x21, 0x00, 0x28, 131 | 0x38, 0x80, 0x00, 0x02, 0xa1, 0x41, 0x00, 0x2e, 0x7d, 0x23, 0x4b, 0x78, 132 | 0xb1, 0x49, 0x00, 0x00, 0x4b, 0xe4, 0x68, 0xcd, 0x4b, 0xff, 0xfc, 0xdc, 133 | 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 134 | 0x7f, 0x26, 0xcb, 0x78, 0x38, 0xe0, 0x00, 0x24, 0x4b, 0xff, 0xfa, 0xd5, 135 | 0x7c, 0x7f, 0x1b, 0x79, 0x41, 0x80, 0x04, 0xa0, 0x81, 0x61, 0x00, 0x28, 136 | 0x80, 0xa1, 0x00, 0x34, 0x80, 0xc1, 0x00, 0x38, 0x7d, 0x69, 0x03, 0xa6, 137 | 0x80, 0xe1, 0x00, 0x3c, 0x81, 0x01, 0x00, 0x40, 0x81, 0x21, 0x00, 0x44, 138 | 0x81, 0x41, 0x00, 0x48, 0x80, 0x61, 0x00, 0x2c, 0x80, 0x81, 0x00, 0x30, 139 | 0x4e, 0x80, 0x04, 0x21, 0x7f, 0xa5, 0xeb, 0x78, 0x90, 0x61, 0x00, 0x28, 140 | 0x7f, 0x26, 0xcb, 0x78, 0x90, 0x81, 0x00, 0x2c, 0x7f, 0x83, 0xe3, 0x78, 141 | 0x7f, 0x44, 0xd3, 0x78, 0x38, 0xe0, 0x00, 0x08, 0x4b, 0xff, 0xfb, 0x45, 142 | 0x7c, 0x7f, 0x1b, 0x79, 0x40, 0x80, 0xfc, 0x68, 0x39, 0x20, 0x00, 0xea, 143 | 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfe, 0xe8, 0x7f, 0x83, 0xe3, 0x78, 144 | 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 0x38, 0xc1, 0x04, 0x2c, 145 | 0x38, 0xe0, 0x00, 0x01, 0x9a, 0xc1, 0x04, 0x2c, 0x4b, 0xff, 0xfb, 0x15, 146 | 0x7c, 0x7f, 0x1b, 0x79, 0x40, 0x80, 0xfc, 0x38, 0x39, 0x20, 0x01, 0x3b, 147 | 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfe, 0xb8, 0x7f, 0x83, 0xe3, 0x78, 148 | 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 149 | 0x38, 0xe0, 0x00, 0x08, 0x4b, 0xff, 0xfa, 0x25, 0x7c, 0x7f, 0x1b, 0x79, 150 | 0x41, 0x80, 0x03, 0xd0, 0x83, 0xc1, 0x00, 0x2c, 0x83, 0xe1, 0x00, 0x28, 151 | 0x38, 0x60, 0x00, 0x01, 0x38, 0x80, 0x00, 0x00, 0x7f, 0xc5, 0xf3, 0x78, 152 | 0x38, 0xc0, 0x00, 0x00, 0x38, 0xe0, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x01, 153 | 0x7f, 0xe9, 0xfb, 0x78, 0x7c, 0x3e, 0x0b, 0x78, 0x38, 0x00, 0x35, 0x00, 154 | 0x44, 0x00, 0x00, 0x02, 0x60, 0x00, 0x00, 0x00, 0x7f, 0xc1, 0xf3, 0x78, 155 | 0x4b, 0xff, 0xfb, 0xd0, 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 156 | 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 0x38, 0xe0, 0x00, 0x04, 157 | 0x92, 0xe1, 0x00, 0x28, 0x4b, 0xff, 0xfa, 0x89, 0x7c, 0x7f, 0x1b, 0x79, 158 | 0x40, 0x80, 0xfb, 0xac, 0x39, 0x20, 0x01, 0x44, 0x91, 0x3c, 0x00, 0x04, 159 | 0x4b, 0xff, 0xfe, 0x2c, 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 160 | 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 0x38, 0xe0, 0x00, 0x04, 161 | 0x4b, 0xff, 0xf9, 0x99, 0x7c, 0x7f, 0x1b, 0x79, 0x41, 0x80, 0x03, 0x0c, 162 | 0x83, 0xe1, 0x00, 0x28, 0x38, 0x60, 0x00, 0x01, 0x38, 0x80, 0x00, 0x00, 163 | 0x38, 0xa0, 0x00, 0x00, 0x38, 0xc0, 0x00, 0x00, 0x38, 0xe0, 0x00, 0x00, 164 | 0x3d, 0x00, 0x00, 0x01, 0x7f, 0xe9, 0xfb, 0x78, 0x38, 0x00, 0x34, 0x00, 165 | 0x7c, 0x3f, 0x0b, 0x78, 0x44, 0x00, 0x00, 0x02, 0x60, 0x00, 0x00, 0x00, 166 | 0x7f, 0xe1, 0xfb, 0x78, 0x7c, 0x7f, 0x1b, 0x78, 0x7f, 0x83, 0xe3, 0x78, 167 | 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 168 | 0x38, 0xe0, 0x00, 0x04, 0x93, 0xe1, 0x00, 0x28, 0x4b, 0xff, 0xfa, 0x01, 169 | 0x4b, 0xff, 0xfb, 0x28, 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 170 | 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 0x38, 0xe0, 0x00, 0x08, 171 | 0x4b, 0xff, 0xf9, 0x21, 0x7c, 0x7f, 0x1b, 0x79, 0x41, 0x80, 0x02, 0xac, 172 | 0x81, 0x21, 0x00, 0x28, 0x38, 0x80, 0x00, 0x01, 0x89, 0x41, 0x00, 0x2f, 173 | 0x7d, 0x23, 0x4b, 0x78, 0x99, 0x49, 0x00, 0x00, 0x4b, 0xe4, 0x66, 0xdd, 174 | 0x4b, 0xff, 0xfa, 0xec, 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 175 | 0x7f, 0xa5, 0xeb, 0x78, 0x38, 0xc1, 0x04, 0x2c, 0x38, 0xe0, 0x00, 0x01, 176 | 0x4b, 0xff, 0xf8, 0xe5, 0x2c, 0x03, 0x00, 0x00, 0x41, 0x80, 0x02, 0x88, 177 | 0x88, 0xe1, 0x04, 0x2c, 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 178 | 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 0x54, 0xe7, 0x06, 0x3e, 179 | 0x4b, 0xff, 0xf8, 0xc1, 0x7c, 0x7f, 0x1b, 0x79, 0x41, 0x80, 0x02, 0x80, 180 | 0x38, 0x81, 0x04, 0x30, 0x38, 0x61, 0x00, 0x30, 0x83, 0xe1, 0x00, 0x2c, 181 | 0x4b, 0xe4, 0xca, 0xb9, 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 182 | 0x7f, 0xa5, 0xeb, 0x78, 0x38, 0xc1, 0x04, 0x2c, 0x38, 0xe0, 0x00, 0x01, 183 | 0x7f, 0xf9, 0xfa, 0x14, 0x4b, 0xff, 0xf8, 0x8d, 0x2c, 0x03, 0x00, 0x00, 184 | 0x41, 0x80, 0x02, 0x44, 0x88, 0x81, 0x04, 0x2c, 0x80, 0x61, 0x04, 0x30, 185 | 0x7f, 0xe5, 0xfb, 0x78, 0x54, 0x84, 0x06, 0x3e, 0x38, 0xc1, 0x04, 0x2c, 186 | 0x4b, 0xe4, 0xde, 0xf1, 0x81, 0x21, 0x04, 0x2c, 0x7f, 0x83, 0xe3, 0x78, 187 | 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 188 | 0x38, 0xe0, 0x00, 0x04, 0x91, 0x21, 0x00, 0x28, 0x4b, 0xff, 0xf9, 0x11, 189 | 0x7c, 0x7f, 0x1b, 0x79, 0x40, 0x80, 0xfa, 0x34, 0x39, 0x20, 0x01, 0x00, 190 | 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfc, 0xb4, 0x7f, 0x83, 0xe3, 0x78, 191 | 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 192 | 0x38, 0xe0, 0x00, 0x0c, 0x4b, 0xff, 0xf8, 0x21, 0x7c, 0x7f, 0x1b, 0x79, 193 | 0x41, 0x80, 0x02, 0x04, 0x81, 0x21, 0x00, 0x28, 0x81, 0x01, 0x00, 0x30, 194 | 0x80, 0xe1, 0x00, 0x2c, 0x7d, 0x09, 0x42, 0x14, 0x7f, 0x89, 0x40, 0x00, 195 | 0x41, 0xbc, 0x00, 0x14, 0x48, 0x00, 0x01, 0x5c, 0x39, 0x29, 0x00, 0x04, 196 | 0x7f, 0x89, 0x40, 0x00, 0x40, 0x9c, 0x01, 0x50, 0x81, 0x49, 0x00, 0x00, 197 | 0x7f, 0x8a, 0x38, 0x00, 0x40, 0x9e, 0xff, 0xec, 0x7f, 0x83, 0xe3, 0x78, 198 | 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 199 | 0x38, 0xe0, 0x00, 0x04, 0x91, 0x21, 0x00, 0x28, 0x4b, 0xff, 0xf8, 0x8d, 200 | 0x7c, 0x7f, 0x1b, 0x79, 0x40, 0x80, 0xf9, 0xb0, 0x39, 0x20, 0x01, 0x15, 201 | 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfc, 0x30, 0x7f, 0x83, 0xe3, 0x78, 202 | 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 203 | 0x38, 0xe0, 0x00, 0x08, 0x4b, 0xff, 0xf7, 0x9d, 0x7c, 0x7f, 0x1b, 0x79, 204 | 0x41, 0x80, 0x01, 0x34, 0x81, 0x21, 0x00, 0x28, 0x38, 0x80, 0x00, 0x04, 205 | 0x81, 0x41, 0x00, 0x2c, 0x7d, 0x23, 0x4b, 0x78, 0x91, 0x49, 0x00, 0x00, 206 | 0x4b, 0xe4, 0x65, 0x59, 0x4b, 0xff, 0xf9, 0x68, 0x7f, 0x83, 0xe3, 0x78, 207 | 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 208 | 0x38, 0xe0, 0x00, 0x08, 0x4b, 0xff, 0xf7, 0x61, 0x7c, 0x7f, 0x1b, 0x79, 209 | 0x41, 0x80, 0x01, 0x38, 0x83, 0xc1, 0x00, 0x28, 0x82, 0x81, 0x00, 0x2c, 210 | 0x7f, 0x9e, 0xa0, 0x40, 0x41, 0x9e, 0x00, 0x88, 0x7f, 0x7e, 0xa0, 0x50, 211 | 0x3d, 0x3e, 0xf0, 0x00, 0x2f, 0x9b, 0x04, 0x00, 0x7f, 0xc6, 0xf3, 0x78, 212 | 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x83, 0xe3, 0x78, 213 | 0x7f, 0x09, 0xc0, 0x40, 0x40, 0x9d, 0x00, 0x08, 0x3b, 0x60, 0x04, 0x00, 214 | 0x7f, 0x67, 0xdb, 0x78, 0x40, 0x99, 0x00, 0x38, 0x7f, 0x44, 0xd3, 0x78, 215 | 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 0x7f, 0x67, 0xdb, 0x78, 216 | 0x7f, 0x83, 0xe3, 0x78, 0x4b, 0xff, 0xf7, 0x01, 0x7c, 0x7f, 0x1b, 0x79, 217 | 0x41, 0x80, 0x00, 0x68, 0x7f, 0xc3, 0xf3, 0x78, 0x7f, 0x24, 0xcb, 0x78, 218 | 0x7f, 0x65, 0xdb, 0x78, 0x4b, 0xe5, 0x80, 0x45, 0x48, 0x00, 0x00, 0x18, 219 | 0x4b, 0xff, 0xf6, 0xe1, 0x7f, 0x99, 0xf0, 0x00, 0x7c, 0x7f, 0x1b, 0x79, 220 | 0x41, 0x80, 0x00, 0x44, 0x41, 0xbe, 0xff, 0xdc, 0x7f, 0xde, 0xda, 0x14, 221 | 0x7f, 0x94, 0xf0, 0x40, 0x40, 0x9e, 0xff, 0x80, 0x7f, 0x83, 0xe3, 0x78, 222 | 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 0x38, 0xc1, 0x04, 0x2c, 223 | 0x38, 0xe0, 0x00, 0x01, 0x9a, 0xa1, 0x04, 0x2c, 0x4b, 0xff, 0xf7, 0x6d, 224 | 0x4b, 0xff, 0xf8, 0x94, 0x39, 0x20, 0x00, 0x00, 0x4b, 0xff, 0xfe, 0xbc, 225 | 0x4b, 0xf7, 0x3e, 0xf1, 0x4b, 0xff, 0xf8, 0x84, 0x39, 0x20, 0x00, 0xc4, 226 | 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfb, 0x04, 0x39, 0x20, 0x00, 0xa7, 227 | 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfa, 0xf8, 0x39, 0x20, 0x00, 0x67, 228 | 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfa, 0xec, 0x39, 0x20, 0x00, 0x5d, 229 | 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfa, 0xe0, 0x39, 0x20, 0x00, 0x71, 230 | 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfa, 0xd4, 0x7c, 0x67, 0x1b, 0x78, 231 | 0x4b, 0xff, 0xfd, 0x7c, 0x39, 0x20, 0x00, 0x9c, 0x91, 0x3c, 0x00, 0x04, 232 | 0x4b, 0xff, 0xfa, 0xc0, 0x7c, 0x64, 0x1b, 0x78, 0x4b, 0xff, 0xfd, 0xc0, 233 | 0x39, 0x20, 0x00, 0xf1, 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfa, 0xac, 234 | 0x39, 0x20, 0x00, 0xda, 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfa, 0xa0, 235 | 0x39, 0x20, 0x00, 0xb4, 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfa, 0x94, 236 | 0x39, 0x20, 0x01, 0x05, 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfa, 0x88, 237 | 0x39, 0x20, 0x01, 0x1e, 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfa, 0x7c, 238 | 0x39, 0x20, 0x00, 0x7b, 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfa, 0x70, 239 | 0x39, 0x20, 0x00, 0x8a, 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfa, 0x64, 240 | 0x94, 0x21, 0xff, 0xa0, 0x7c, 0x08, 0x02, 0xa6, 0x7d, 0x80, 0x00, 0x26, 241 | 0x93, 0x81, 0x00, 0x50, 0x3b, 0x80, 0xff, 0xff, 0x2d, 0x9c, 0xff, 0xff, 242 | 0x92, 0x81, 0x00, 0x30, 0x92, 0xa1, 0x00, 0x34, 0x3a, 0x80, 0x00, 0x3e, 243 | 0x92, 0xc1, 0x00, 0x38, 0x3a, 0xa0, 0x00, 0x3a, 0x92, 0xe1, 0x00, 0x3c, 244 | 0x3a, 0xc0, 0x00, 0x37, 0x93, 0x01, 0x00, 0x40, 0x3a, 0xe0, 0x00, 0x35, 245 | 0x93, 0x21, 0x00, 0x44, 0x3b, 0x00, 0x00, 0x33, 0x93, 0x41, 0x00, 0x48, 246 | 0x3b, 0x20, 0x00, 0x02, 0x93, 0x61, 0x00, 0x4c, 0x3b, 0x40, 0x1c, 0xa3, 247 | 0x93, 0xa1, 0x00, 0x54, 0x3b, 0x60, 0x00, 0x00, 0x90, 0x01, 0x00, 0x64, 248 | 0x7c, 0x9d, 0x23, 0x78, 0x93, 0xc1, 0x00, 0x58, 0x93, 0xe1, 0x00, 0x5c, 249 | 0x91, 0x81, 0x00, 0x2c, 0x4b, 0xee, 0x27, 0x5d, 0x38, 0x60, 0x00, 0x02, 250 | 0x38, 0x80, 0x00, 0x01, 0x38, 0xa0, 0x00, 0x06, 0xb3, 0x21, 0x00, 0x08, 251 | 0xb3, 0x41, 0x00, 0x0a, 0x93, 0x61, 0x00, 0x0c, 0x4b, 0xee, 0x46, 0x15, 252 | 0x2e, 0x03, 0xff, 0xff, 0x7c, 0x7f, 0x1b, 0x78, 0x40, 0x92, 0x00, 0x4c, 253 | 0x93, 0x1d, 0x00, 0x04, 0x3b, 0xc0, 0xff, 0xff, 0x2f, 0x9c, 0xff, 0xff, 254 | 0x41, 0x9e, 0x00, 0x0c, 0x7f, 0x83, 0xe3, 0x78, 0x4b, 0xee, 0x47, 0x3d, 255 | 0x40, 0x92, 0x00, 0x84, 0x93, 0xdd, 0x00, 0x00, 0x38, 0x60, 0x00, 0x02, 256 | 0x38, 0x80, 0x00, 0x01, 0x38, 0xa0, 0x00, 0x06, 0xb3, 0x21, 0x00, 0x08, 257 | 0xb3, 0x41, 0x00, 0x0a, 0x93, 0x61, 0x00, 0x0c, 0x4b, 0xee, 0x45, 0xcd, 258 | 0x2e, 0x03, 0xff, 0xff, 0x7c, 0x7f, 0x1b, 0x78, 0x41, 0xb2, 0xff, 0xbc, 259 | 0x38, 0x81, 0x00, 0x08, 0x38, 0xa0, 0x00, 0x10, 0x4b, 0xee, 0x2a, 0xb9, 260 | 0x7c, 0x7e, 0x1b, 0x79, 0x41, 0x80, 0x00, 0x54, 0x7f, 0xe3, 0xfb, 0x78, 261 | 0x38, 0x80, 0x00, 0x01, 0x4b, 0xee, 0x2d, 0xa5, 0x7c, 0x7e, 0x1b, 0x79, 262 | 0x41, 0x80, 0x00, 0x48, 0x39, 0x20, 0x00, 0x10, 0x7f, 0xe3, 0xfb, 0x78, 263 | 0x38, 0x81, 0x00, 0x08, 0x38, 0xa1, 0x00, 0x18, 0x91, 0x21, 0x00, 0x18, 264 | 0x4b, 0xee, 0x29, 0x05, 0x2f, 0x83, 0xff, 0xff, 0x7c, 0x7c, 0x1b, 0x78, 265 | 0x40, 0x9e, 0x00, 0x2c, 0x92, 0xbd, 0x00, 0x04, 0x3b, 0xc0, 0xff, 0xff, 266 | 0x7f, 0xe3, 0xfb, 0x78, 0x4b, 0xee, 0x46, 0xb1, 0x93, 0xdd, 0x00, 0x00, 267 | 0x4b, 0xff, 0xff, 0x78, 0x92, 0xfd, 0x00, 0x04, 0x4b, 0xff, 0xff, 0x58, 268 | 0x92, 0xdd, 0x00, 0x04, 0x4b, 0xff, 0xff, 0x50, 0x7f, 0xe3, 0xfb, 0x78, 269 | 0x4b, 0xee, 0x46, 0x91, 0x7f, 0xa3, 0xeb, 0x78, 0x7f, 0x84, 0xe3, 0x78, 270 | 0x4b, 0xff, 0xf6, 0x05, 0x7c, 0x7e, 0x1b, 0x79, 0x41, 0x80, 0x00, 0x14, 271 | 0x7f, 0x83, 0xe3, 0x78, 0x3b, 0x80, 0xff, 0xff, 0x4b, 0xee, 0x46, 0x71, 272 | 0x4b, 0xff, 0xfe, 0xf4, 0x92, 0x9d, 0x00, 0x04, 0x3b, 0xe0, 0xff, 0xff, 273 | 0x4e, 0x0c, 0x00, 0x00, 0x4b, 0xff, 0xff, 0x1c 274 | }; 275 | static const unsigned int codehandler_text_bin_len = 3260; 276 | -------------------------------------------------------------------------------- /installer/src/codehandler550.h: -------------------------------------------------------------------------------- 1 | static const unsigned char codehandler_text_bin[] = { 2 | 0x94, 0x21, 0xff, 0xe8, 0x7c, 0x08, 0x02, 0xa6, 0x3d, 0x20, 0x10, 0x05, 3 | 0x81, 0x29, 0xf8, 0x70, 0x93, 0x81, 0x00, 0x08, 0x7c, 0x7c, 0x1b, 0x78, 4 | 0x38, 0x60, 0x00, 0x00, 0x93, 0xa1, 0x00, 0x0c, 0x93, 0xe1, 0x00, 0x14, 5 | 0x7c, 0x9d, 0x23, 0x78, 0x90, 0x01, 0x00, 0x1c, 0x60, 0x63, 0x86, 0xa8, 6 | 0x93, 0xc1, 0x00, 0x10, 0x38, 0x80, 0x00, 0x40, 0x7d, 0x29, 0x03, 0xa6, 7 | 0x4e, 0x80, 0x04, 0x21, 0x7c, 0x7f, 0x1b, 0x79, 0x41, 0x82, 0x00, 0x50, 8 | 0x38, 0xa0, 0x00, 0x00, 0x38, 0x80, 0x00, 0x00, 0x60, 0xa5, 0x86, 0xa8, 9 | 0x3b, 0xdf, 0x00, 0x08, 0x4b, 0xe5, 0x8f, 0x5d, 0x3c, 0xff, 0x00, 0x01, 10 | 0x3c, 0x80, 0x01, 0x1e, 0x39, 0x00, 0x00, 0x00, 0x7f, 0xc3, 0xf3, 0x78, 11 | 0x38, 0x84, 0xdb, 0x28, 0x38, 0xa0, 0x00, 0x00, 0x7f, 0xe6, 0xfb, 0x78, 12 | 0x38, 0xe7, 0x86, 0xa8, 0x61, 0x08, 0x80, 0x00, 0x39, 0x20, 0x00, 0x00, 13 | 0x39, 0x40, 0x00, 0x0c, 0x4b, 0xe6, 0x4a, 0xdd, 0x7f, 0xc3, 0xf3, 0x78, 14 | 0x4b, 0xe6, 0x50, 0x79, 0x3d, 0x20, 0x10, 0x06, 0x80, 0x01, 0x00, 0x1c, 15 | 0x81, 0x29, 0xe0, 0x40, 0x7f, 0x83, 0xe3, 0x78, 0x83, 0xc1, 0x00, 0x10, 16 | 0x7f, 0xa4, 0xeb, 0x78, 0x83, 0x81, 0x00, 0x08, 0x7d, 0x29, 0x03, 0xa6, 17 | 0x83, 0xa1, 0x00, 0x0c, 0x83, 0xe1, 0x00, 0x14, 0x7c, 0x08, 0x03, 0xa6, 18 | 0x38, 0x21, 0x00, 0x18, 0x4e, 0x80, 0x04, 0x20, 0x94, 0x21, 0xff, 0xe8, 19 | 0x7c, 0x08, 0x02, 0xa6, 0x38, 0xa0, 0x00, 0x01, 0x38, 0xc0, 0x00, 0x20, 20 | 0x38, 0x81, 0x00, 0x08, 0x90, 0x01, 0x00, 0x1c, 0x4b, 0xee, 0x3a, 0x0d, 21 | 0x2c, 0x03, 0x00, 0x00, 0x41, 0x80, 0x00, 0x0c, 0x41, 0x82, 0x00, 0x18, 22 | 0x88, 0x61, 0x00, 0x08, 0x80, 0x01, 0x00, 0x1c, 0x38, 0x21, 0x00, 0x18, 23 | 0x7c, 0x08, 0x03, 0xa6, 0x4e, 0x80, 0x00, 0x20, 0x38, 0x60, 0xff, 0xff, 24 | 0x4b, 0xff, 0xff, 0xec, 0x94, 0x21, 0xff, 0xe0, 0x7c, 0x08, 0x02, 0xa6, 25 | 0x93, 0xe1, 0x00, 0x1c, 0x7c, 0xff, 0x3b, 0x79, 0x93, 0x61, 0x00, 0x0c, 26 | 0x7c, 0x9b, 0x23, 0x78, 0x93, 0x81, 0x00, 0x10, 0x7c, 0x7c, 0x1b, 0x78, 27 | 0x93, 0xa1, 0x00, 0x14, 0x7c, 0xbd, 0x2b, 0x78, 0x93, 0xc1, 0x00, 0x18, 28 | 0x7c, 0xde, 0x33, 0x78, 0x90, 0x01, 0x00, 0x24, 0x41, 0xa1, 0x00, 0x0c, 29 | 0x48, 0x00, 0x00, 0x64, 0x40, 0x9d, 0x00, 0x60, 0x7f, 0xc4, 0xf3, 0x78, 30 | 0x7f, 0xe5, 0xfb, 0x78, 0x7f, 0xa3, 0xeb, 0x78, 0x38, 0xc0, 0x00, 0x00, 31 | 0x4b, 0xee, 0x39, 0x91, 0x7c, 0x69, 0x1b, 0x79, 0x7f, 0xe9, 0xf8, 0x50, 32 | 0x7f, 0xde, 0x4a, 0x14, 0x2f, 0x9f, 0x00, 0x00, 0x40, 0x80, 0xff, 0xd8, 33 | 0x80, 0x01, 0x00, 0x24, 0x39, 0x40, 0x01, 0x5c, 0x91, 0x5b, 0x00, 0x00, 34 | 0x7d, 0x23, 0x4b, 0x78, 0x7c, 0x08, 0x03, 0xa6, 0x91, 0x3c, 0x00, 0x00, 35 | 0x83, 0x61, 0x00, 0x0c, 0x83, 0x81, 0x00, 0x10, 0x83, 0xa1, 0x00, 0x14, 36 | 0x83, 0xc1, 0x00, 0x18, 0x83, 0xe1, 0x00, 0x1c, 0x38, 0x21, 0x00, 0x20, 37 | 0x4e, 0x80, 0x00, 0x20, 0x80, 0x01, 0x00, 0x24, 0x38, 0x60, 0x00, 0x00, 38 | 0x83, 0x61, 0x00, 0x0c, 0x7c, 0x08, 0x03, 0xa6, 0x83, 0x81, 0x00, 0x10, 39 | 0x83, 0xa1, 0x00, 0x14, 0x83, 0xc1, 0x00, 0x18, 0x83, 0xe1, 0x00, 0x1c, 40 | 0x38, 0x21, 0x00, 0x20, 0x4e, 0x80, 0x00, 0x20, 0x94, 0x21, 0xff, 0xe0, 41 | 0x7c, 0x08, 0x02, 0xa6, 0x93, 0xe1, 0x00, 0x1c, 0x7c, 0xff, 0x3b, 0x79, 42 | 0x93, 0x61, 0x00, 0x0c, 0x7c, 0x9b, 0x23, 0x78, 0x93, 0x81, 0x00, 0x10, 43 | 0x7c, 0x7c, 0x1b, 0x78, 0x93, 0xa1, 0x00, 0x14, 0x7c, 0xbd, 0x2b, 0x78, 44 | 0x93, 0xc1, 0x00, 0x18, 0x7c, 0xde, 0x33, 0x78, 0x90, 0x01, 0x00, 0x24, 45 | 0x41, 0xa1, 0x00, 0x0c, 0x48, 0x00, 0x00, 0x64, 0x40, 0x9d, 0x00, 0x60, 46 | 0x7f, 0xc4, 0xf3, 0x78, 0x7f, 0xe5, 0xfb, 0x78, 0x7f, 0xa3, 0xeb, 0x78, 47 | 0x38, 0xc0, 0x00, 0x00, 0x4b, 0xee, 0x44, 0x8d, 0x7c, 0x69, 0x1b, 0x79, 48 | 0x7f, 0xe9, 0xf8, 0x50, 0x7f, 0xde, 0x4a, 0x14, 0x2f, 0x9f, 0x00, 0x00, 49 | 0x40, 0x80, 0xff, 0xd8, 0x80, 0x01, 0x00, 0x24, 0x39, 0x40, 0x01, 0x7d, 50 | 0x91, 0x5b, 0x00, 0x00, 0x7d, 0x23, 0x4b, 0x78, 0x7c, 0x08, 0x03, 0xa6, 51 | 0x91, 0x3c, 0x00, 0x00, 0x83, 0x61, 0x00, 0x0c, 0x83, 0x81, 0x00, 0x10, 52 | 0x83, 0xa1, 0x00, 0x14, 0x83, 0xc1, 0x00, 0x18, 0x83, 0xe1, 0x00, 0x1c, 53 | 0x38, 0x21, 0x00, 0x20, 0x4e, 0x80, 0x00, 0x20, 0x80, 0x01, 0x00, 0x24, 54 | 0x38, 0x60, 0x00, 0x00, 0x83, 0x61, 0x00, 0x0c, 0x7c, 0x08, 0x03, 0xa6, 55 | 0x83, 0x81, 0x00, 0x10, 0x83, 0xa1, 0x00, 0x14, 0x83, 0xc1, 0x00, 0x18, 56 | 0x83, 0xe1, 0x00, 0x1c, 0x38, 0x21, 0x00, 0x20, 0x4e, 0x80, 0x00, 0x20, 57 | 0x7c, 0x08, 0x02, 0xa6, 0x94, 0x21, 0xfb, 0x90, 0x92, 0xe1, 0x04, 0x4c, 58 | 0x3e, 0xe0, 0x00, 0x00, 0x90, 0x01, 0x04, 0x74, 0x3a, 0xf7, 0x02, 0x26, 59 | 0x92, 0x41, 0x04, 0x38, 0x92, 0x61, 0x04, 0x3c, 0x92, 0x81, 0x04, 0x40, 60 | 0x93, 0x61, 0x04, 0x5c, 0x93, 0xc1, 0x04, 0x68, 0x93, 0xe1, 0x04, 0x6c, 61 | 0x92, 0xa1, 0x04, 0x44, 0x3a, 0xa0, 0xff, 0xaa, 0x92, 0xc1, 0x04, 0x48, 62 | 0x3a, 0xc0, 0xff, 0x82, 0x93, 0x01, 0x04, 0x50, 0x3f, 0x00, 0x40, 0x00, 63 | 0x93, 0x21, 0x04, 0x54, 0x3b, 0x21, 0x00, 0x28, 0x93, 0x41, 0x04, 0x58, 64 | 0x3b, 0x43, 0x00, 0x04, 0x93, 0x81, 0x04, 0x60, 0x7c, 0x7c, 0x1b, 0x78, 65 | 0x93, 0xa1, 0x04, 0x64, 0x7c, 0x9d, 0x23, 0x78, 0x7f, 0xa3, 0xeb, 0x78, 66 | 0x4b, 0xff, 0xfd, 0xc9, 0x7c, 0x7f, 0x1b, 0x79, 0x41, 0x80, 0x02, 0x68, 67 | 0x2f, 0x9f, 0x00, 0x41, 0x41, 0x9e, 0x06, 0x88, 0x40, 0x9d, 0x00, 0x58, 68 | 0x2f, 0x9f, 0x00, 0x72, 0x41, 0x9e, 0x05, 0xbc, 0x41, 0x9d, 0x01, 0x78, 69 | 0x2f, 0x9f, 0x00, 0x70, 0x41, 0x9e, 0x02, 0xfc, 0x41, 0x9d, 0x04, 0xe8, 70 | 0x2f, 0x9f, 0x00, 0x50, 0x40, 0xbe, 0xff, 0xc8, 0x39, 0x20, 0x00, 0x01, 71 | 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 72 | 0x38, 0xc1, 0x04, 0x2c, 0x38, 0xe0, 0x00, 0x01, 0x99, 0x21, 0x04, 0x2c, 73 | 0x4b, 0xff, 0xfe, 0x7d, 0x7c, 0x7f, 0x1b, 0x79, 0x40, 0x80, 0xff, 0xa0, 74 | 0x39, 0x20, 0x00, 0xd1, 0x91, 0x3c, 0x00, 0x04, 0x48, 0x00, 0x02, 0x20, 75 | 0x2f, 0x9f, 0x00, 0x03, 0x41, 0x9e, 0x05, 0xec, 0x40, 0x9d, 0x02, 0x64, 76 | 0x2f, 0x9f, 0x00, 0x0b, 0x41, 0x9e, 0x03, 0x58, 0x2f, 0x9f, 0x00, 0x0c, 77 | 0x41, 0x9e, 0x03, 0xdc, 0x2f, 0x9f, 0x00, 0x04, 0x40, 0x9e, 0xff, 0x70, 78 | 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 79 | 0x7f, 0x26, 0xcb, 0x78, 0x38, 0xe0, 0x00, 0x08, 0x4b, 0xff, 0xfd, 0x69, 80 | 0x7c, 0x7f, 0x1b, 0x79, 0x41, 0x80, 0x07, 0x64, 0x83, 0xc1, 0x00, 0x28, 81 | 0x3a, 0x40, 0xff, 0xb0, 0x82, 0x81, 0x00, 0x2c, 0x3a, 0x60, 0xff, 0xbd, 82 | 0x7f, 0x9e, 0xa0, 0x40, 0x41, 0xbe, 0xff, 0x38, 0x7f, 0x7e, 0xa0, 0x50, 83 | 0x2f, 0x9b, 0x04, 0x00, 0x40, 0x9d, 0x00, 0x7c, 0x3b, 0x60, 0x04, 0x00, 84 | 0x89, 0x3e, 0x00, 0x00, 0x2f, 0x89, 0x00, 0x00, 0x40, 0x9e, 0x00, 0x78, 85 | 0x7f, 0x69, 0x03, 0xa6, 0x48, 0x00, 0x00, 0x10, 0x7d, 0x5e, 0x48, 0xae, 86 | 0x2f, 0x8a, 0x00, 0x00, 0x40, 0x9e, 0x00, 0x64, 0x39, 0x29, 0x00, 0x01, 87 | 0x42, 0x00, 0xff, 0xf0, 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 88 | 0x7f, 0xa5, 0xeb, 0x78, 0x38, 0xc1, 0x04, 0x2c, 0x38, 0xe0, 0x00, 0x01, 89 | 0x9a, 0x41, 0x04, 0x2c, 0x4b, 0xff, 0xfd, 0xb9, 0x7c, 0x7f, 0x1b, 0x79, 90 | 0x41, 0x80, 0x06, 0xfc, 0x7f, 0xa3, 0xeb, 0x78, 0x4b, 0xff, 0xfc, 0xa1, 91 | 0x2f, 0x83, 0x00, 0xcc, 0x41, 0xbe, 0xfe, 0xcc, 0x7f, 0xde, 0xda, 0x14, 92 | 0x7f, 0x94, 0xf0, 0x40, 0x41, 0xbe, 0xfe, 0xc0, 0x7f, 0x7e, 0xa0, 0x50, 93 | 0x2f, 0x9b, 0x04, 0x00, 0x41, 0xbd, 0xff, 0x8c, 0x2f, 0x9b, 0x00, 0x00, 94 | 0x41, 0x9d, 0xff, 0x88, 0x41, 0xbe, 0xff, 0xac, 0x7f, 0xc4, 0xf3, 0x78, 95 | 0x7f, 0x65, 0xdb, 0x78, 0x38, 0x61, 0x00, 0x29, 0x4b, 0xe5, 0x8b, 0x65, 96 | 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 97 | 0x7f, 0x26, 0xcb, 0x78, 0x38, 0xfb, 0x00, 0x01, 0x9a, 0x61, 0x00, 0x28, 98 | 0x4b, 0xff, 0xfd, 0x51, 0x7c, 0x7f, 0x1b, 0x79, 0x40, 0x80, 0xff, 0x9c, 99 | 0x39, 0x20, 0x00, 0x8f, 0x91, 0x3c, 0x00, 0x04, 0x48, 0x00, 0x00, 0xf4, 100 | 0x2f, 0x9f, 0x00, 0x99, 0x41, 0x9e, 0x02, 0x08, 0x2f, 0x9f, 0x00, 0x9a, 101 | 0x41, 0x9e, 0x02, 0x8c, 0x2f, 0x9f, 0x00, 0x80, 0x40, 0x9e, 0xfe, 0x50, 102 | 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 103 | 0x7f, 0x26, 0xcb, 0x78, 0x38, 0xe0, 0x00, 0x44, 0x4b, 0xff, 0xfc, 0x49, 104 | 0x7c, 0x7f, 0x1b, 0x79, 0x41, 0x80, 0x06, 0x38, 0x80, 0x81, 0x00, 0x4c, 105 | 0x81, 0x61, 0x00, 0x28, 0x90, 0x81, 0x00, 0x08, 0x80, 0x81, 0x00, 0x50, 106 | 0x7d, 0x69, 0x03, 0xa6, 0x80, 0xa1, 0x00, 0x34, 0x90, 0x81, 0x00, 0x0c, 107 | 0x80, 0x81, 0x00, 0x54, 0x80, 0xc1, 0x00, 0x38, 0x90, 0x81, 0x00, 0x10, 108 | 0x80, 0x81, 0x00, 0x58, 0x80, 0xe1, 0x00, 0x3c, 0x90, 0x81, 0x00, 0x14, 109 | 0x80, 0x81, 0x00, 0x5c, 0x81, 0x01, 0x00, 0x40, 0x90, 0x81, 0x00, 0x18, 110 | 0x80, 0x81, 0x00, 0x60, 0x81, 0x21, 0x00, 0x44, 0x90, 0x81, 0x00, 0x1c, 111 | 0x80, 0x81, 0x00, 0x64, 0x81, 0x41, 0x00, 0x48, 0x90, 0x81, 0x00, 0x20, 112 | 0x80, 0x81, 0x00, 0x68, 0x80, 0x61, 0x00, 0x2c, 0x90, 0x81, 0x00, 0x24, 113 | 0x80, 0x81, 0x00, 0x30, 0x4e, 0x80, 0x04, 0x21, 0x7f, 0xa5, 0xeb, 0x78, 114 | 0x90, 0x61, 0x00, 0x28, 0x7f, 0x26, 0xcb, 0x78, 0x90, 0x81, 0x00, 0x2c, 115 | 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 0x38, 0xe0, 0x00, 0x08, 116 | 0x4b, 0xff, 0xfc, 0x79, 0x7c, 0x7f, 0x1b, 0x79, 0x40, 0x80, 0xfd, 0x9c, 117 | 0x39, 0x20, 0x01, 0x36, 0x91, 0x3c, 0x00, 0x04, 0x48, 0x00, 0x00, 0x1c, 118 | 0x4b, 0xe6, 0x33, 0x91, 0x81, 0x23, 0x00, 0x00, 0x2f, 0x89, 0x00, 0x06, 119 | 0x41, 0x9e, 0x04, 0xf8, 0x39, 0x20, 0x00, 0x54, 0x91, 0x3c, 0x00, 0x04, 120 | 0x80, 0x01, 0x04, 0x74, 0x38, 0x60, 0x00, 0x00, 0x93, 0xfc, 0x00, 0x00, 121 | 0x7c, 0x08, 0x03, 0xa6, 0x82, 0x41, 0x04, 0x38, 0x82, 0x61, 0x04, 0x3c, 122 | 0x82, 0x81, 0x04, 0x40, 0x82, 0xa1, 0x04, 0x44, 0x82, 0xc1, 0x04, 0x48, 123 | 0x82, 0xe1, 0x04, 0x4c, 0x83, 0x01, 0x04, 0x50, 0x83, 0x21, 0x04, 0x54, 124 | 0x83, 0x41, 0x04, 0x58, 0x83, 0x61, 0x04, 0x5c, 0x83, 0x81, 0x04, 0x60, 125 | 0x83, 0xa1, 0x04, 0x64, 0x83, 0xc1, 0x04, 0x68, 0x83, 0xe1, 0x04, 0x6c, 126 | 0x38, 0x21, 0x04, 0x70, 0x4e, 0x80, 0x00, 0x20, 0x2f, 0x9f, 0x00, 0x01, 127 | 0x41, 0x9e, 0x01, 0xfc, 0x2f, 0x9f, 0x00, 0x02, 0x40, 0xbe, 0xfd, 0x18, 128 | 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 129 | 0x7f, 0x26, 0xcb, 0x78, 0x38, 0xe0, 0x00, 0x08, 0x4b, 0xff, 0xfb, 0x11, 130 | 0x7c, 0x7f, 0x1b, 0x79, 0x41, 0x80, 0x04, 0x90, 0x81, 0x21, 0x00, 0x28, 131 | 0x38, 0x80, 0x00, 0x02, 0xa1, 0x41, 0x00, 0x2e, 0x7d, 0x23, 0x4b, 0x78, 132 | 0xb1, 0x49, 0x00, 0x00, 0x4b, 0xe4, 0x69, 0x6d, 0x4b, 0xff, 0xfc, 0xdc, 133 | 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 134 | 0x7f, 0x26, 0xcb, 0x78, 0x38, 0xe0, 0x00, 0x24, 0x4b, 0xff, 0xfa, 0xd5, 135 | 0x7c, 0x7f, 0x1b, 0x79, 0x41, 0x80, 0x04, 0xa0, 0x81, 0x61, 0x00, 0x28, 136 | 0x80, 0xa1, 0x00, 0x34, 0x80, 0xc1, 0x00, 0x38, 0x7d, 0x69, 0x03, 0xa6, 137 | 0x80, 0xe1, 0x00, 0x3c, 0x81, 0x01, 0x00, 0x40, 0x81, 0x21, 0x00, 0x44, 138 | 0x81, 0x41, 0x00, 0x48, 0x80, 0x61, 0x00, 0x2c, 0x80, 0x81, 0x00, 0x30, 139 | 0x4e, 0x80, 0x04, 0x21, 0x7f, 0xa5, 0xeb, 0x78, 0x90, 0x61, 0x00, 0x28, 140 | 0x7f, 0x26, 0xcb, 0x78, 0x90, 0x81, 0x00, 0x2c, 0x7f, 0x83, 0xe3, 0x78, 141 | 0x7f, 0x44, 0xd3, 0x78, 0x38, 0xe0, 0x00, 0x08, 0x4b, 0xff, 0xfb, 0x45, 142 | 0x7c, 0x7f, 0x1b, 0x79, 0x40, 0x80, 0xfc, 0x68, 0x39, 0x20, 0x00, 0xea, 143 | 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfe, 0xe8, 0x7f, 0x83, 0xe3, 0x78, 144 | 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 0x38, 0xc1, 0x04, 0x2c, 145 | 0x38, 0xe0, 0x00, 0x01, 0x9a, 0xc1, 0x04, 0x2c, 0x4b, 0xff, 0xfb, 0x15, 146 | 0x7c, 0x7f, 0x1b, 0x79, 0x40, 0x80, 0xfc, 0x38, 0x39, 0x20, 0x01, 0x3b, 147 | 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfe, 0xb8, 0x7f, 0x83, 0xe3, 0x78, 148 | 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 149 | 0x38, 0xe0, 0x00, 0x08, 0x4b, 0xff, 0xfa, 0x25, 0x7c, 0x7f, 0x1b, 0x79, 150 | 0x41, 0x80, 0x03, 0xd0, 0x83, 0xc1, 0x00, 0x2c, 0x83, 0xe1, 0x00, 0x28, 151 | 0x38, 0x60, 0x00, 0x01, 0x38, 0x80, 0x00, 0x00, 0x7f, 0xc5, 0xf3, 0x78, 152 | 0x38, 0xc0, 0x00, 0x00, 0x38, 0xe0, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x01, 153 | 0x7f, 0xe9, 0xfb, 0x78, 0x7c, 0x3e, 0x0b, 0x78, 0x38, 0x00, 0x35, 0x00, 154 | 0x44, 0x00, 0x00, 0x02, 0x60, 0x00, 0x00, 0x00, 0x7f, 0xc1, 0xf3, 0x78, 155 | 0x4b, 0xff, 0xfb, 0xd0, 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 156 | 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 0x38, 0xe0, 0x00, 0x04, 157 | 0x92, 0xe1, 0x00, 0x28, 0x4b, 0xff, 0xfa, 0x89, 0x7c, 0x7f, 0x1b, 0x79, 158 | 0x40, 0x80, 0xfb, 0xac, 0x39, 0x20, 0x01, 0x44, 0x91, 0x3c, 0x00, 0x04, 159 | 0x4b, 0xff, 0xfe, 0x2c, 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 160 | 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 0x38, 0xe0, 0x00, 0x04, 161 | 0x4b, 0xff, 0xf9, 0x99, 0x7c, 0x7f, 0x1b, 0x79, 0x41, 0x80, 0x03, 0x0c, 162 | 0x83, 0xe1, 0x00, 0x28, 0x38, 0x60, 0x00, 0x01, 0x38, 0x80, 0x00, 0x00, 163 | 0x38, 0xa0, 0x00, 0x00, 0x38, 0xc0, 0x00, 0x00, 0x38, 0xe0, 0x00, 0x00, 164 | 0x3d, 0x00, 0x00, 0x01, 0x7f, 0xe9, 0xfb, 0x78, 0x38, 0x00, 0x34, 0x00, 165 | 0x7c, 0x3f, 0x0b, 0x78, 0x44, 0x00, 0x00, 0x02, 0x60, 0x00, 0x00, 0x00, 166 | 0x7f, 0xe1, 0xfb, 0x78, 0x7c, 0x7f, 0x1b, 0x78, 0x7f, 0x83, 0xe3, 0x78, 167 | 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 168 | 0x38, 0xe0, 0x00, 0x04, 0x93, 0xe1, 0x00, 0x28, 0x4b, 0xff, 0xfa, 0x01, 169 | 0x4b, 0xff, 0xfb, 0x28, 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 170 | 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 0x38, 0xe0, 0x00, 0x08, 171 | 0x4b, 0xff, 0xf9, 0x21, 0x7c, 0x7f, 0x1b, 0x79, 0x41, 0x80, 0x02, 0xac, 172 | 0x81, 0x21, 0x00, 0x28, 0x38, 0x80, 0x00, 0x01, 0x89, 0x41, 0x00, 0x2f, 173 | 0x7d, 0x23, 0x4b, 0x78, 0x99, 0x49, 0x00, 0x00, 0x4b, 0xe4, 0x67, 0x7d, 174 | 0x4b, 0xff, 0xfa, 0xec, 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 175 | 0x7f, 0xa5, 0xeb, 0x78, 0x38, 0xc1, 0x04, 0x2c, 0x38, 0xe0, 0x00, 0x01, 176 | 0x4b, 0xff, 0xf8, 0xe5, 0x2c, 0x03, 0x00, 0x00, 0x41, 0x80, 0x02, 0x88, 177 | 0x88, 0xe1, 0x04, 0x2c, 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 178 | 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 0x54, 0xe7, 0x06, 0x3e, 179 | 0x4b, 0xff, 0xf8, 0xc1, 0x7c, 0x7f, 0x1b, 0x79, 0x41, 0x80, 0x02, 0x80, 180 | 0x38, 0x81, 0x04, 0x30, 0x38, 0x61, 0x00, 0x30, 0x83, 0xe1, 0x00, 0x2c, 181 | 0x4b, 0xe4, 0xcb, 0x51, 0x7f, 0x83, 0xe3, 0x78, 0x7f, 0x44, 0xd3, 0x78, 182 | 0x7f, 0xa5, 0xeb, 0x78, 0x38, 0xc1, 0x04, 0x2c, 0x38, 0xe0, 0x00, 0x01, 183 | 0x7f, 0xf9, 0xfa, 0x14, 0x4b, 0xff, 0xf8, 0x8d, 0x2c, 0x03, 0x00, 0x00, 184 | 0x41, 0x80, 0x02, 0x44, 0x88, 0x81, 0x04, 0x2c, 0x80, 0x61, 0x04, 0x30, 185 | 0x7f, 0xe5, 0xfb, 0x78, 0x54, 0x84, 0x06, 0x3e, 0x38, 0xc1, 0x04, 0x2c, 186 | 0x4b, 0xe4, 0xdf, 0x89, 0x81, 0x21, 0x04, 0x2c, 0x7f, 0x83, 0xe3, 0x78, 187 | 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 188 | 0x38, 0xe0, 0x00, 0x04, 0x91, 0x21, 0x00, 0x28, 0x4b, 0xff, 0xf9, 0x11, 189 | 0x7c, 0x7f, 0x1b, 0x79, 0x40, 0x80, 0xfa, 0x34, 0x39, 0x20, 0x01, 0x00, 190 | 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfc, 0xb4, 0x7f, 0x83, 0xe3, 0x78, 191 | 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 192 | 0x38, 0xe0, 0x00, 0x0c, 0x4b, 0xff, 0xf8, 0x21, 0x7c, 0x7f, 0x1b, 0x79, 193 | 0x41, 0x80, 0x02, 0x04, 0x81, 0x21, 0x00, 0x28, 0x81, 0x01, 0x00, 0x30, 194 | 0x80, 0xe1, 0x00, 0x2c, 0x7d, 0x09, 0x42, 0x14, 0x7f, 0x89, 0x40, 0x00, 195 | 0x41, 0xbc, 0x00, 0x14, 0x48, 0x00, 0x01, 0x5c, 0x39, 0x29, 0x00, 0x04, 196 | 0x7f, 0x89, 0x40, 0x00, 0x40, 0x9c, 0x01, 0x50, 0x81, 0x49, 0x00, 0x00, 197 | 0x7f, 0x8a, 0x38, 0x00, 0x40, 0x9e, 0xff, 0xec, 0x7f, 0x83, 0xe3, 0x78, 198 | 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 199 | 0x38, 0xe0, 0x00, 0x04, 0x91, 0x21, 0x00, 0x28, 0x4b, 0xff, 0xf8, 0x8d, 200 | 0x7c, 0x7f, 0x1b, 0x79, 0x40, 0x80, 0xf9, 0xb0, 0x39, 0x20, 0x01, 0x15, 201 | 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfc, 0x30, 0x7f, 0x83, 0xe3, 0x78, 202 | 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 203 | 0x38, 0xe0, 0x00, 0x08, 0x4b, 0xff, 0xf7, 0x9d, 0x7c, 0x7f, 0x1b, 0x79, 204 | 0x41, 0x80, 0x01, 0x34, 0x81, 0x21, 0x00, 0x28, 0x38, 0x80, 0x00, 0x04, 205 | 0x81, 0x41, 0x00, 0x2c, 0x7d, 0x23, 0x4b, 0x78, 0x91, 0x49, 0x00, 0x00, 206 | 0x4b, 0xe4, 0x65, 0xf9, 0x4b, 0xff, 0xf9, 0x68, 0x7f, 0x83, 0xe3, 0x78, 207 | 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 208 | 0x38, 0xe0, 0x00, 0x08, 0x4b, 0xff, 0xf7, 0x61, 0x7c, 0x7f, 0x1b, 0x79, 209 | 0x41, 0x80, 0x01, 0x38, 0x83, 0xc1, 0x00, 0x28, 0x82, 0x81, 0x00, 0x2c, 210 | 0x7f, 0x9e, 0xa0, 0x40, 0x41, 0x9e, 0x00, 0x88, 0x7f, 0x7e, 0xa0, 0x50, 211 | 0x3d, 0x3e, 0xf0, 0x00, 0x2f, 0x9b, 0x04, 0x00, 0x7f, 0xc6, 0xf3, 0x78, 212 | 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x83, 0xe3, 0x78, 213 | 0x7f, 0x09, 0xc0, 0x40, 0x40, 0x9d, 0x00, 0x08, 0x3b, 0x60, 0x04, 0x00, 214 | 0x7f, 0x67, 0xdb, 0x78, 0x40, 0x99, 0x00, 0x38, 0x7f, 0x44, 0xd3, 0x78, 215 | 0x7f, 0xa5, 0xeb, 0x78, 0x7f, 0x26, 0xcb, 0x78, 0x7f, 0x67, 0xdb, 0x78, 216 | 0x7f, 0x83, 0xe3, 0x78, 0x4b, 0xff, 0xf7, 0x01, 0x7c, 0x7f, 0x1b, 0x79, 217 | 0x41, 0x80, 0x00, 0x68, 0x7f, 0xc3, 0xf3, 0x78, 0x7f, 0x24, 0xcb, 0x78, 218 | 0x7f, 0x65, 0xdb, 0x78, 0x4b, 0xe5, 0x85, 0xa5, 0x48, 0x00, 0x00, 0x18, 219 | 0x4b, 0xff, 0xf6, 0xe1, 0x7f, 0x99, 0xf0, 0x00, 0x7c, 0x7f, 0x1b, 0x79, 220 | 0x41, 0x80, 0x00, 0x44, 0x41, 0xbe, 0xff, 0xdc, 0x7f, 0xde, 0xda, 0x14, 221 | 0x7f, 0x94, 0xf0, 0x40, 0x40, 0x9e, 0xff, 0x80, 0x7f, 0x83, 0xe3, 0x78, 222 | 0x7f, 0x44, 0xd3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 0x38, 0xc1, 0x04, 0x2c, 223 | 0x38, 0xe0, 0x00, 0x01, 0x9a, 0xa1, 0x04, 0x2c, 0x4b, 0xff, 0xf7, 0x6d, 224 | 0x4b, 0xff, 0xf8, 0x94, 0x39, 0x20, 0x00, 0x00, 0x4b, 0xff, 0xfe, 0xbc, 225 | 0x4b, 0xf7, 0x3e, 0xf1, 0x4b, 0xff, 0xf8, 0x84, 0x39, 0x20, 0x00, 0xc4, 226 | 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfb, 0x04, 0x39, 0x20, 0x00, 0xa7, 227 | 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfa, 0xf8, 0x39, 0x20, 0x00, 0x67, 228 | 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfa, 0xec, 0x39, 0x20, 0x00, 0x5d, 229 | 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfa, 0xe0, 0x39, 0x20, 0x00, 0x71, 230 | 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfa, 0xd4, 0x7c, 0x67, 0x1b, 0x78, 231 | 0x4b, 0xff, 0xfd, 0x7c, 0x39, 0x20, 0x00, 0x9c, 0x91, 0x3c, 0x00, 0x04, 232 | 0x4b, 0xff, 0xfa, 0xc0, 0x7c, 0x64, 0x1b, 0x78, 0x4b, 0xff, 0xfd, 0xc0, 233 | 0x39, 0x20, 0x00, 0xf1, 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfa, 0xac, 234 | 0x39, 0x20, 0x00, 0xda, 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfa, 0xa0, 235 | 0x39, 0x20, 0x00, 0xb4, 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfa, 0x94, 236 | 0x39, 0x20, 0x01, 0x05, 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfa, 0x88, 237 | 0x39, 0x20, 0x01, 0x1e, 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfa, 0x7c, 238 | 0x39, 0x20, 0x00, 0x7b, 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfa, 0x70, 239 | 0x39, 0x20, 0x00, 0x8a, 0x91, 0x3c, 0x00, 0x04, 0x4b, 0xff, 0xfa, 0x64, 240 | 0x94, 0x21, 0xff, 0xa0, 0x7c, 0x08, 0x02, 0xa6, 0x7d, 0x80, 0x00, 0x26, 241 | 0x93, 0x81, 0x00, 0x50, 0x3b, 0x80, 0xff, 0xff, 0x2d, 0x9c, 0xff, 0xff, 242 | 0x92, 0x81, 0x00, 0x30, 0x92, 0xa1, 0x00, 0x34, 0x3a, 0x80, 0x00, 0x3e, 243 | 0x92, 0xc1, 0x00, 0x38, 0x3a, 0xa0, 0x00, 0x3a, 0x92, 0xe1, 0x00, 0x3c, 244 | 0x3a, 0xc0, 0x00, 0x37, 0x93, 0x01, 0x00, 0x40, 0x3a, 0xe0, 0x00, 0x35, 245 | 0x93, 0x21, 0x00, 0x44, 0x3b, 0x00, 0x00, 0x33, 0x93, 0x41, 0x00, 0x48, 246 | 0x3b, 0x20, 0x00, 0x02, 0x93, 0x61, 0x00, 0x4c, 0x3b, 0x40, 0x1c, 0xa3, 247 | 0x93, 0xa1, 0x00, 0x54, 0x3b, 0x60, 0x00, 0x00, 0x90, 0x01, 0x00, 0x64, 248 | 0x7c, 0x9d, 0x23, 0x78, 0x93, 0xc1, 0x00, 0x58, 0x93, 0xe1, 0x00, 0x5c, 249 | 0x91, 0x81, 0x00, 0x2c, 0x4b, 0xee, 0x27, 0x5d, 0x38, 0x60, 0x00, 0x02, 250 | 0x38, 0x80, 0x00, 0x01, 0x38, 0xa0, 0x00, 0x06, 0xb3, 0x21, 0x00, 0x08, 251 | 0xb3, 0x41, 0x00, 0x0a, 0x93, 0x61, 0x00, 0x0c, 0x4b, 0xee, 0x46, 0x15, 252 | 0x2e, 0x03, 0xff, 0xff, 0x7c, 0x7f, 0x1b, 0x78, 0x40, 0x92, 0x00, 0x4c, 253 | 0x93, 0x1d, 0x00, 0x04, 0x3b, 0xc0, 0xff, 0xff, 0x2f, 0x9c, 0xff, 0xff, 254 | 0x41, 0x9e, 0x00, 0x0c, 0x7f, 0x83, 0xe3, 0x78, 0x4b, 0xee, 0x47, 0x3d, 255 | 0x40, 0x92, 0x00, 0x84, 0x93, 0xdd, 0x00, 0x00, 0x38, 0x60, 0x00, 0x02, 256 | 0x38, 0x80, 0x00, 0x01, 0x38, 0xa0, 0x00, 0x06, 0xb3, 0x21, 0x00, 0x08, 257 | 0xb3, 0x41, 0x00, 0x0a, 0x93, 0x61, 0x00, 0x0c, 0x4b, 0xee, 0x45, 0xcd, 258 | 0x2e, 0x03, 0xff, 0xff, 0x7c, 0x7f, 0x1b, 0x78, 0x41, 0xb2, 0xff, 0xbc, 259 | 0x38, 0x81, 0x00, 0x08, 0x38, 0xa0, 0x00, 0x10, 0x4b, 0xee, 0x2a, 0xb9, 260 | 0x7c, 0x7e, 0x1b, 0x79, 0x41, 0x80, 0x00, 0x54, 0x7f, 0xe3, 0xfb, 0x78, 261 | 0x38, 0x80, 0x00, 0x01, 0x4b, 0xee, 0x2d, 0xa5, 0x7c, 0x7e, 0x1b, 0x79, 262 | 0x41, 0x80, 0x00, 0x48, 0x39, 0x20, 0x00, 0x10, 0x7f, 0xe3, 0xfb, 0x78, 263 | 0x38, 0x81, 0x00, 0x08, 0x38, 0xa1, 0x00, 0x18, 0x91, 0x21, 0x00, 0x18, 264 | 0x4b, 0xee, 0x29, 0x05, 0x2f, 0x83, 0xff, 0xff, 0x7c, 0x7c, 0x1b, 0x78, 265 | 0x40, 0x9e, 0x00, 0x2c, 0x92, 0xbd, 0x00, 0x04, 0x3b, 0xc0, 0xff, 0xff, 266 | 0x7f, 0xe3, 0xfb, 0x78, 0x4b, 0xee, 0x46, 0xb1, 0x93, 0xdd, 0x00, 0x00, 267 | 0x4b, 0xff, 0xff, 0x78, 0x92, 0xfd, 0x00, 0x04, 0x4b, 0xff, 0xff, 0x58, 268 | 0x92, 0xdd, 0x00, 0x04, 0x4b, 0xff, 0xff, 0x50, 0x7f, 0xe3, 0xfb, 0x78, 269 | 0x4b, 0xee, 0x46, 0x91, 0x7f, 0xa3, 0xeb, 0x78, 0x7f, 0x84, 0xe3, 0x78, 270 | 0x4b, 0xff, 0xf6, 0x05, 0x7c, 0x7e, 0x1b, 0x79, 0x41, 0x80, 0x00, 0x14, 271 | 0x7f, 0x83, 0xe3, 0x78, 0x3b, 0x80, 0xff, 0xff, 0x4b, 0xee, 0x46, 0x71, 272 | 0x4b, 0xff, 0xfe, 0xf4, 0x92, 0x9d, 0x00, 0x04, 0x3b, 0xe0, 0xff, 0xff, 273 | 0x4e, 0x0c, 0x00, 0x00, 0x4b, 0xff, 0xff, 0x1c 274 | }; 275 | static const unsigned int codehandler_text_bin_len = 3260; 276 | -------------------------------------------------------------------------------- /installer/src/link.ld: -------------------------------------------------------------------------------- 1 | OUTPUT_ARCH(powerpc:common) 2 | OUTPUT_FORMAT("binary") 3 | ENTRY(_start) 4 | 5 | SECTIONS { 6 | . = 0x01800000; 7 | 8 | .text : { *(.asmstart) *(.text) } 9 | .rodata : { *(.rodata .rodata.*) } 10 | 11 | /DISCARD/ : { 12 | *(*); 13 | } 14 | } -------------------------------------------------------------------------------- /installer/src/loader.c: -------------------------------------------------------------------------------- 1 | #include "loader.h" 2 | 3 | #define RW_MEM_MAP 0xA0000000 4 | #if VER == 300 5 | #include "codehandler310.h" //TODO ??? 6 | #define INSTALL_ADDR 0x011D3000 7 | #define MAIN_JMP_ADDR 0x0101894C 8 | #elif VER == 310 9 | #include "codehandler310.h" 10 | #define INSTALL_ADDR 0x011D3000 11 | #define MAIN_JMP_ADDR 0x0101894C 12 | #elif VER == 400 13 | #include "codehandler400.h" 14 | #define INSTALL_ADDR 0x011DD000 15 | #define MAIN_JMP_ADDR 0x0101BD4C 16 | #elif VER == 410 17 | #include "codehandler410.h" 18 | #define INSTALL_ADDR 0x011DD000 19 | #define MAIN_JMP_ADDR 0x0101C55C 20 | #elif VER == 500 21 | #include "codehandler500.h" 22 | #define INSTALL_ADDR 0x011DD000 23 | #define MAIN_JMP_ADDR 0x0101C55C 24 | #elif VER == 532 25 | #include "codehandler532.h" 26 | #define INSTALL_ADDR 0x011DD000 27 | #define MAIN_JMP_ADDR 0x0101C55C 28 | #elif VER == 550 29 | #include "codehandler550.h" 30 | #define INSTALL_ADDR 0x011DD000 31 | #define MAIN_JMP_ADDR 0x0101C56C 32 | #endif 33 | 34 | #define assert(x) \ 35 | do { \ 36 | if (!(x)) \ 37 | OSFatal("Assertion failed " #x ".\n"); \ 38 | } while (0) 39 | 40 | #define ALIGN_BACKWARD(x,align) \ 41 | ((typeof(x))(((unsigned int)(x)) & (~(align-1)))) 42 | 43 | int doBL( unsigned int dst, unsigned int src ); 44 | void doOSScreenInit(unsigned int coreinit_handle); 45 | inline void doOSScreenClear(); 46 | void doOSScreenPrintPos(char *buf, int pos); 47 | void doVPADWait(); 48 | 49 | void _main(){ 50 | /* Get a handle to coreinit.rpl. */ 51 | unsigned int coreinit_handle; 52 | OSDynLoad_Acquire("coreinit.rpl", &coreinit_handle); 53 | 54 | /* Get for later socket patch */ 55 | unsigned int nsysnet_handle; 56 | OSDynLoad_Acquire("nsysnet.rpl", &nsysnet_handle); 57 | 58 | /* Get for IP address print */ 59 | unsigned int nn_ac_handle; 60 | OSDynLoad_Acquire("nn_ac.rpl", &nn_ac_handle); 61 | 62 | /* Load a few useful symbols. */ 63 | void*(*OSEffectiveToPhysical)(const void *); 64 | void*(*OSAllocFromSystem)(uint32_t size, int align); 65 | void (*OSFreeToSystem)(void *ptr); 66 | void (*DCFlushRange)(const void *, int); 67 | void (*ICInvalidateRange)(const void *, int); 68 | void (*_Exit)(void) __attribute__ ((noreturn)); 69 | 70 | OSDynLoad_FindExport(coreinit_handle, 0, "OSEffectiveToPhysical", &OSEffectiveToPhysical); 71 | OSDynLoad_FindExport(coreinit_handle, 0, "OSAllocFromSystem", &OSAllocFromSystem); 72 | OSDynLoad_FindExport(coreinit_handle, 0, "OSFreeToSystem", &OSFreeToSystem); 73 | OSDynLoad_FindExport(coreinit_handle, 0, "DCFlushRange", &DCFlushRange); 74 | OSDynLoad_FindExport(coreinit_handle, 0, "ICInvalidateRange", &ICInvalidateRange); 75 | OSDynLoad_FindExport(coreinit_handle, 0, "_Exit", &_Exit); 76 | 77 | assert(OSEffectiveToPhysical); 78 | assert(OSAllocFromSystem); 79 | assert(OSFreeToSystem); 80 | assert(DCFlushRange); 81 | assert(ICInvalidateRange); 82 | assert(_Exit); 83 | 84 | /* Socket functions */ 85 | unsigned int *socket_lib_finish; 86 | OSDynLoad_FindExport(nsysnet_handle, 0, "socket_lib_finish", &socket_lib_finish); 87 | assert(socket_lib_finish); 88 | 89 | /* AC functions */ 90 | int(*ACGetAssignedAddress)(unsigned int *addr); 91 | OSDynLoad_FindExport(nn_ac_handle, 0, "ACGetAssignedAddress", &ACGetAssignedAddress); 92 | assert(ACGetAssignedAddress); 93 | 94 | /* IM functions */ 95 | int(*IM_SetDeviceState)(int fd, void *mem, int state, int a, int b); 96 | int(*IM_Close)(int fd); 97 | int(*IM_Open)(); 98 | 99 | OSDynLoad_FindExport(coreinit_handle, 0, "IM_SetDeviceState", &IM_SetDeviceState); 100 | OSDynLoad_FindExport(coreinit_handle, 0, "IM_Close", &IM_Close); 101 | OSDynLoad_FindExport(coreinit_handle, 0, "IM_Open", &IM_Open); 102 | 103 | assert(IM_SetDeviceState); 104 | assert(IM_Close); 105 | assert(IM_Open); 106 | 107 | /* Restart system to get lib access */ 108 | int fd = IM_Open(); 109 | void *mem = OSAllocFromSystem(0x100, 64); 110 | memset(mem, 0, 0x100); 111 | 112 | /* set restart flag to force quit browser */ 113 | IM_SetDeviceState(fd, mem, 3, 0, 0); 114 | IM_Close(fd); 115 | OSFreeToSystem(mem); 116 | 117 | /* wait a bit for browser end */ 118 | unsigned int t1 = 0x1FFFFFFF; 119 | while(t1--){}; 120 | 121 | doOSScreenInit(coreinit_handle); 122 | doOSScreenClear(); 123 | doOSScreenPrintPos("TCPGecko Installer", 0); 124 | 125 | /* Make sure the kernel exploit has been run */ 126 | if (OSEffectiveToPhysical((void *)0xA0000000) == (void *)0){ 127 | doOSScreenPrintPos("You must execute the kernel exploit before installing TCPGecko.", 1); 128 | doOSScreenPrintPos("Returning to the home menu...",2); 129 | t1 = 0x3FFFFFFF; 130 | while(t1--) ; 131 | doOSScreenClear(); 132 | _Exit(); 133 | }else{ 134 | doOSScreenPrintPos("Trying to install TCPGecko...", 1); 135 | 136 | // Make sure everything has kern I/O 137 | kern_write((void*)KERN_SYSCALL_TBL_1 + (0x34 * 4), KERN_CODE_READ); 138 | kern_write((void*)KERN_SYSCALL_TBL_2 + (0x34 * 4), KERN_CODE_READ); 139 | kern_write((void*)KERN_SYSCALL_TBL_3 + (0x34 * 4), KERN_CODE_READ); 140 | kern_write((void*)KERN_SYSCALL_TBL_4 + (0x34 * 4), KERN_CODE_READ); 141 | kern_write((void*)KERN_SYSCALL_TBL_5 + (0x34 * 4), KERN_CODE_READ); 142 | 143 | kern_write((void*)KERN_SYSCALL_TBL_1 + (0x35 * 4), KERN_CODE_WRITE); 144 | kern_write((void*)KERN_SYSCALL_TBL_2 + (0x35 * 4), KERN_CODE_WRITE); 145 | kern_write((void*)KERN_SYSCALL_TBL_3 + (0x35 * 4), KERN_CODE_WRITE); 146 | kern_write((void*)KERN_SYSCALL_TBL_4 + (0x35 * 4), KERN_CODE_WRITE); 147 | kern_write((void*)KERN_SYSCALL_TBL_5 + (0x35 * 4), KERN_CODE_WRITE); 148 | 149 | /* Our main writable area */ 150 | unsigned int physWriteLoc = (unsigned int)OSEffectiveToPhysical((void*)RW_MEM_MAP); 151 | 152 | /* Install codehandler */ 153 | unsigned int phys_codehandler_loc = (unsigned int)OSEffectiveToPhysical((void*)INSTALL_ADDR); 154 | void *codehandler_loc = (unsigned int*)(RW_MEM_MAP + (phys_codehandler_loc - physWriteLoc)); 155 | 156 | memcpy(codehandler_loc, codehandler_text_bin, codehandler_text_bin_len); 157 | DCFlushRange(codehandler_loc, codehandler_text_bin_len); 158 | ICInvalidateRange(codehandler_loc, codehandler_text_bin_len); 159 | 160 | /* Patch coreinit jump */ 161 | unsigned int phys_main_jmp_loc = (unsigned int)OSEffectiveToPhysical((void*)MAIN_JMP_ADDR); 162 | unsigned int *main_jmp_loc = (unsigned int*)(RW_MEM_MAP + (phys_main_jmp_loc - physWriteLoc)); 163 | 164 | *main_jmp_loc = doBL(INSTALL_ADDR, MAIN_JMP_ADDR); 165 | DCFlushRange(ALIGN_BACKWARD(main_jmp_loc, 32), 0x20); 166 | ICInvalidateRange(ALIGN_BACKWARD(main_jmp_loc, 32), 0x20); 167 | 168 | /* Patch Socket Function */ 169 | unsigned int phys_socket_loc = (unsigned int)OSEffectiveToPhysical(socket_lib_finish); 170 | unsigned int *socket_loc = (unsigned int*)(RW_MEM_MAP + (phys_socket_loc - physWriteLoc)); 171 | 172 | socket_loc[0] = 0x38600000; 173 | socket_loc[1] = 0x4E800020; 174 | DCFlushRange(ALIGN_BACKWARD(socket_loc, 32), 0x40); 175 | ICInvalidateRange(ALIGN_BACKWARD(socket_loc, 32), 0x40); 176 | 177 | /* The fix for Splatoon and such */ 178 | kern_write((void*)(KERN_ADDRESS_TBL + (0x12 * 4)), 0x00000000); 179 | kern_write((void*)(KERN_ADDRESS_TBL + (0x13 * 4)), 0x14000000); 180 | 181 | /* All good! */ 182 | unsigned int addr; 183 | ACGetAssignedAddress(&addr); 184 | char buf[64]; 185 | __os_snprintf(buf,64,"Success! Your Gecko IP is %i.%i.%i.%i.", (addr>>24)&0xFF,(addr>>16)&0xFF,(addr>>8)&0xFF,addr&0xFF); 186 | doOSScreenPrintPos(buf, 2); 187 | 188 | doOSScreenPrintPos("Press any button to return to the home menu.", 3); 189 | doVPADWait(); 190 | } 191 | doOSScreenClear(); 192 | _Exit(); 193 | } 194 | 195 | int doBL( unsigned int dst, unsigned int src ){ 196 | unsigned int newval = (dst - src); 197 | newval &= 0x03FFFFFC; 198 | newval |= 0x48000001; 199 | return newval; 200 | } 201 | 202 | /* for internal and gcc usage */ 203 | void* memset(void* dst, const uint8_t val, uint32_t size){ 204 | uint32_t i; 205 | for (i = 0; i < size; i++){ 206 | ((uint8_t*) dst)[i] = val; 207 | } 208 | return dst; 209 | } 210 | 211 | void* memcpy(void* dst, const void* src, uint32_t size){ 212 | uint32_t i; 213 | for (i = 0; i < size; i++){ 214 | ((uint8_t*) dst)[i] = ((const uint8_t*) src)[i]; 215 | } 216 | return dst; 217 | } 218 | 219 | /* Write a 32-bit word with kernel permissions */ 220 | void kern_write(void *addr, uint32_t value){ 221 | asm( 222 | "li 3,1\n" 223 | "li 4,0\n" 224 | "mr 5,%1\n" 225 | "li 6,0\n" 226 | "li 7,0\n" 227 | "lis 8,1\n" 228 | "mr 9,%0\n" 229 | "mr %1,1\n" 230 | "li 0,0x3500\n" 231 | "sc\n" 232 | "nop\n" 233 | "mr 1,%1\n" 234 | : 235 | : "r"(addr), "r"(value) 236 | : "memory", "ctr", "lr", "0", "3", "4", "5", "6", "7", "8", "9", "10", 237 | "11", "12" 238 | ); 239 | } 240 | 241 | /* OSScreen helper functions */ 242 | void doOSScreenInit(unsigned int coreinit_handle){ 243 | /* OSScreen functions */ 244 | void(*OSScreenInit)(); 245 | unsigned int(*OSScreenGetBufferSizeEx)(unsigned int bufferNum); 246 | unsigned int(*OSScreenSetBufferEx)(unsigned int bufferNum, void * addr); 247 | 248 | OSDynLoad_FindExport(coreinit_handle, 0, "OSScreenInit", &OSScreenInit); 249 | OSDynLoad_FindExport(coreinit_handle, 0, "OSScreenGetBufferSizeEx", &OSScreenGetBufferSizeEx); 250 | OSDynLoad_FindExport(coreinit_handle, 0, "OSScreenSetBufferEx", &OSScreenSetBufferEx); 251 | 252 | assert(OSScreenInit); 253 | assert(OSScreenGetBufferSizeEx); 254 | assert(OSScreenSetBufferEx); 255 | 256 | /* Call the Screen initilzation function */ 257 | OSScreenInit(); 258 | 259 | /* Grab the buffer size for each screen (TV and gamepad) */ 260 | int buf0_size = OSScreenGetBufferSizeEx(0); 261 | int buf1_size = OSScreenGetBufferSizeEx(1); 262 | 263 | /* Set the buffer area */ 264 | OSScreenSetBufferEx(0, (void *)0xF4000000); 265 | OSScreenSetBufferEx(1, (void *)0xF4000000 + buf0_size); 266 | } 267 | 268 | inline void doOSScreenClear(){ 269 | /* Clear both framebuffers */ 270 | int ii; 271 | for (ii = 0; ii < 2; ii++){ 272 | fillScreen(0,0,0,0); 273 | flipBuffers(); 274 | } 275 | } 276 | 277 | void doOSScreenPrintPos(char *buf, int pos){ 278 | int i; 279 | for(i=0;i<2;i++){ 280 | drawString(0,pos,buf); 281 | flipBuffers(); 282 | } 283 | } 284 | 285 | void doVPADWait(){ 286 | unsigned int vpad_handle; 287 | OSDynLoad_Acquire("vpad.rpl", &vpad_handle); 288 | 289 | /* VPAD functions */ 290 | int(*VPADRead)(int controller, VPADData *buffer, unsigned int num, int *error); 291 | OSDynLoad_FindExport(vpad_handle, 0, "VPADRead", &VPADRead); 292 | assert(VPADRead); 293 | 294 | int error; 295 | VPADData vpad_data; 296 | 297 | /* Read initial vpad status */ 298 | VPADRead(0, &vpad_data, 1, &error); 299 | while(1){ 300 | VPADRead(0, &vpad_data, 1, &error); 301 | if(vpad_data.btn_hold){ 302 | break; 303 | } 304 | } 305 | } 306 | -------------------------------------------------------------------------------- /installer/src/loader.h: -------------------------------------------------------------------------------- 1 | #ifndef LOADER_H 2 | #define LOADER_H 3 | 4 | #include "../../../libwiiu/src/coreinit.h" 5 | #include "../../../libwiiu/src/draw.h" 6 | #include "../../../libwiiu/src/socket.h" 7 | #include "../../../libwiiu/src/types.h" 8 | #include "../../../libwiiu/src/vpad.h" 9 | 10 | /* Kernel address table */ 11 | #if VER == 300 12 | #define KERN_ADDRESS_TBL 0xFFEB66E4 13 | 14 | #define KERN_SYSCALL_TBL_1 0xFFE84D50 15 | #define KERN_SYSCALL_TBL_2 0xFFE85150 16 | #define KERN_SYSCALL_TBL_3 0xFFE85D50 17 | #define KERN_SYSCALL_TBL_4 0xFFE85550 18 | #define KERN_SYSCALL_TBL_5 0xFFE85950 19 | 20 | #define KERN_CODE_READ 0xFFF02214 21 | #define KERN_CODE_WRITE 0xFFF02234 22 | #elif VER == 310 23 | #define KERN_ADDRESS_TBL 0xFFEB66E4 24 | 25 | #define KERN_SYSCALL_TBL_1 0xFFE84D50 26 | #define KERN_SYSCALL_TBL_2 0xFFE85150 27 | #define KERN_SYSCALL_TBL_3 0xFFE85D50 28 | #define KERN_SYSCALL_TBL_4 0xFFE85550 29 | #define KERN_SYSCALL_TBL_5 0xFFE85950 30 | 31 | #define KERN_CODE_READ 0xFFF02214 32 | #define KERN_CODE_WRITE 0xFFF02234 33 | #elif VER == 400 34 | #define KERN_ADDRESS_TBL 0xFFEB7E5C 35 | 36 | #define KERN_SYSCALL_TBL_1 0xFFE84C90 37 | #define KERN_SYSCALL_TBL_2 0xFFE85090 38 | #define KERN_SYSCALL_TBL_3 0xFFE85C90 39 | #define KERN_SYSCALL_TBL_4 0xFFE85490 40 | #define KERN_SYSCALL_TBL_5 0xFFE85890 41 | 42 | #define KERN_CODE_READ 0xFFF02214 43 | #define KERN_CODE_WRITE 0xFFF02234 44 | #elif VER == 410 45 | #define KERN_ADDRESS_TBL 0xFFEB902C 46 | 47 | #define KERN_SYSCALL_TBL_1 0xFFE84C90 48 | #define KERN_SYSCALL_TBL_2 0xFFE85090 49 | #define KERN_SYSCALL_TBL_3 0xFFE85C90 50 | #define KERN_SYSCALL_TBL_4 0xFFE85490 51 | #define KERN_SYSCALL_TBL_5 0xFFE85890 52 | 53 | #define KERN_CODE_READ 0xFFF02214 54 | #define KERN_CODE_WRITE 0xFFF02234 55 | #elif VER == 500 56 | #define KERN_ADDRESS_TBL 0xFFEA9E4C 57 | 58 | #define KERN_SYSCALL_TBL_1 0xFFE84C70 59 | #define KERN_SYSCALL_TBL_2 0xFFE85070 60 | #define KERN_SYSCALL_TBL_3 0xFFE85470 61 | #define KERN_SYSCALL_TBL_4 0xFFEA9120 62 | #define KERN_SYSCALL_TBL_5 0xFFEA9520 63 | 64 | #define KERN_CODE_READ 0xFFF021f4 65 | #define KERN_CODE_WRITE 0xFFF02214 66 | #elif VER == 532 67 | #define KERN_ADDRESS_TBL 0xFFEAAA10 68 | 69 | #define KERN_SYSCALL_TBL_1 0xFFE84C70 70 | #define KERN_SYSCALL_TBL_2 0xFFE85070 71 | #define KERN_SYSCALL_TBL_3 0xFFE85470 72 | #define KERN_SYSCALL_TBL_4 0xFFEA9CE0 73 | #define KERN_SYSCALL_TBL_5 0xFFEAA0E0 74 | 75 | #define KERN_CODE_READ 0xFFF02274 76 | #define KERN_CODE_WRITE 0xFFF02294 77 | #elif VER == 550 78 | #define KERN_ADDRESS_TBL 0xFFEAB7A0 79 | 80 | #define KERN_SYSCALL_TBL_1 0xFFE84C70 81 | #define KERN_SYSCALL_TBL_2 0xFFE85070 82 | #define KERN_SYSCALL_TBL_3 0xFFE85470 83 | #define KERN_SYSCALL_TBL_4 0xFFEAAA60 84 | #define KERN_SYSCALL_TBL_5 0xFFEAAE60 85 | 86 | #define KERN_CODE_READ 0xFFF023D4 87 | #define KERN_CODE_WRITE 0xFFF023F4 88 | #else 89 | #error "Unsupported Wii U software version" 90 | #endif 91 | 92 | void _main(); 93 | void kern_write(void *addr, uint32_t value); 94 | void* memset(void* dst, const uint8_t val, uint32_t size); 95 | void* memcpy(void* dst, const void* src, uint32_t size); 96 | 97 | #endif /* LOADER_H */ -------------------------------------------------------------------------------- /kern.py: -------------------------------------------------------------------------------- 1 | from tcpgecko import TCPGecko 2 | import sys 3 | 4 | tcp = TCPGecko("192.168.1.82") 5 | print(tcp.readkern(0x10000000)) 6 | tcp.s.close() 7 | print("Done.") 8 | -------------------------------------------------------------------------------- /octoling.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiiudev/pyGecko/32876524a7586296ef020cb5a4420dce1387c14f/octoling.py -------------------------------------------------------------------------------- /purge.py: -------------------------------------------------------------------------------- 1 | from tcpgecko import TCPGecko 2 | #Script to purge Miiverse save cache in Splatoon 3 | tcp = TCPGecko("192.168.137.3") 4 | tcp.writestr(0x12CE0100, b"\x00" * 0x1850) #Only for 2.0.0-2.1.0 AFAIK 5 | tcp.s.close() 6 | print("Done!") 7 | -------------------------------------------------------------------------------- /syshax.py: -------------------------------------------------------------------------------- 1 | from tcpgecko import TCPGecko 2 | from binascii import hexlify, unhexlify 3 | import sys 4 | try: import __builtin__ 5 | except: import builtins as __builtin__ 6 | 7 | def hex(value, fill): 8 | return "0x" + __builtin__.hex(value).lstrip("0x").rstrip("L").zfill(fill).upper() 9 | 10 | tcp = TCPGecko("192.168.0.10") 11 | title_id = 0x0005000010144F00 #Smash USA 12 | SYSCheckTitleExists = tcp.get_symbol("sysapp.rpl", "SYSCheckTitleExists", True) 13 | doesExist = SYSCheckTitleExists(title_id >> 32, title_id & 0xFFFFFFFF) 14 | if not doesExist: print("Title " + hex(title_id, 16) + " does not exist!") 15 | else: 16 | SYSLaunchTitle = tcp.get_symbol("sysapp.rpl", "SYSLaunchTitle", True) 17 | SYSLaunchTitle(title_id >> 32, title_id & 0xFFFFFFFF) 18 | print("Game switched!") 19 | tcp.s.close() 20 | -------------------------------------------------------------------------------- /tcpgecko.py: -------------------------------------------------------------------------------- 1 | import socket, struct 2 | from common import * 3 | from binascii import hexlify, unhexlify 4 | 5 | def enum(**enums): 6 | return type('Enum', (), enums) 7 | 8 | class TCPGecko: 9 | def __init__(self, *args): 10 | self.s = socket.socket(socket.AF_INET, socket.SOCK_STREAM, socket.IPPROTO_TCP) 11 | print("Connecting to " + str(args[0]) + ":7331") 12 | self.s.connect((str(args[0]), 7331)) #IP, 1337 reversed, Cafiine uses 7332+ 13 | print("Connected!") 14 | 15 | def readmem(self, address, length): #Number of bytes 16 | if length == 0: raise BaseException("Reading memory requires a length (# of bytes)") 17 | if not self.validrange(address, length): raise BaseException("Address range not valid") 18 | if not self.validaccess(address, length, "read"): raise BaseException("Cannot read from address") 19 | ret = b"" 20 | if length > 0x400: 21 | print("Length is greater than 0x400 bytes, need to read in chunks") 22 | print("Start address: " + hexstr0(address)) 23 | for i in range(int(length / 0x400)): #Number of blocks, ignores extra 24 | self.s.send(b"\x04") #cmd_readmem 25 | request = struct.pack(">II", address, address + 0x400) 26 | self.s.send(request) 27 | status = self.s.recv(1) 28 | if status == b"\xbd": ret += self.s.recv(0x400) 29 | elif status == b"\xb0": ret += b"\x00" * 0x400 30 | else: raise BaseException("Something went terribly wrong") 31 | address += 0x400;length -= 0x400 32 | print("Current address: " + hexstr0(address)) 33 | if length != 0: #Now read the last little bit 34 | self.s.send(b"\x04") 35 | request = struct.pack(">II", address, address + length) 36 | self.s.send(request) 37 | status = self.s.recv(1) 38 | if status == b"\xbd": ret += self.s.recv(length) 39 | elif status == b"\xb0": ret += b"\x00" * length 40 | else: raise BaseException("Something went terribly wrong") 41 | print("Finished!") 42 | else: 43 | self.s.send(b"\x04") 44 | request = struct.pack(">II", address, address + length) 45 | self.s.send(request) 46 | status = self.s.recv(1) 47 | if status == b"\xbd": ret += self.s.recv(length) 48 | elif status == b"\xb0": ret += b"\x00" * length 49 | else: raise BaseException("Something went terribly wrong") 50 | return ret 51 | 52 | def readkern(self, address): #Only takes 4 bytes, may need to run multiple times 53 | if not self.validrange(address, 4): raise BaseException("Address range not valid") 54 | if not self.validaccess(address, 4, "write"): raise BaseException("Cannot write to address") 55 | self.s.send(b"\x0C") #cmd_readkern 56 | request = struct.pack(">I", int(address)) 57 | self.s.send(request) 58 | value = struct.unpack(">I", self.s.recv(4))[0] 59 | return value 60 | 61 | def writekern(self, address, value): #Only takes 4 bytes, may need to run multiple times 62 | if not self.validrange(address, 4): raise BaseException("Address range not valid") 63 | if not self.validaccess(address, 4, "write"): raise BaseException("Cannot write to address") 64 | self.s.send(b"\x0B") #cmd_readkern 65 | print(value) 66 | request = struct.pack(">II", int(address), int(value)) 67 | self.s.send(request) 68 | return 69 | 70 | def pokemem(self, address, value): #Only takes 4 bytes, may need to run multiple times 71 | if not self.validrange(address, 4): raise BaseException("Address range not valid") 72 | if not self.validaccess(address, 4, "write"): raise BaseException("Cannot write to address") 73 | self.s.send(b"\x03") #cmd_pokemem 74 | request = struct.pack(">II", int(address), int(value)) 75 | self.s.send(request) #Done, move on 76 | return 77 | 78 | def search32(self, address, value, size): 79 | self.s.send(b"\x72") #cmd_search32 80 | request = struct.pack(">III", address, value, size) 81 | self.s.send(request) 82 | reply = self.s.recv(4) 83 | return struct.unpack(">I", reply)[0] 84 | 85 | def getversion(self): 86 | self.s.send(b"\x9A") #cmd_os_version 87 | reply = self.s.recv(4) 88 | return struct.unpack(">I", reply)[0] 89 | 90 | def writestr(self, address, string): 91 | if not self.validrange(address, len(string)): raise BaseException("Address range not valid") 92 | if not self.validaccess(address, len(string), "write"): raise BaseException("Cannot write to address") 93 | if type(string) != bytes: string = bytes(string, "UTF-8") #Sanitize 94 | if len(string) % 4: string += bytes((4 - (len(string) % 4)) * b"\x00") 95 | pos = 0 96 | for x in range(int(len(string) / 4)): 97 | self.pokemem(address, struct.unpack(">I", string[pos:pos + 4])[0]) 98 | address += 4;pos += 4 99 | return 100 | 101 | def memalign(self, size, align): 102 | symbol = self.get_symbol("coreinit.rpl", "MEMAllocFromDefaultHeapEx", True, 1) 103 | symbol = struct.unpack(">I", symbol.address)[0] 104 | address = self.readmem(symbol, 4) 105 | #print("memalign address: " + hexstr0(struct.unpack(">I", address)[0])) 106 | ret = self.call(address, size, align) 107 | return ret 108 | 109 | def freemem(self, address): 110 | symbol = self.get_symbol("coreinit.rpl", "MEMFreeToDefaultHeap", True, 1) 111 | symbol = struct.unpack(">I", symbol.address)[0] 112 | addr = self.readmem(symbol, 4) 113 | #print("freemem address: " + hexstr0(struct.unpack(">I", addr)[0])) 114 | self.call(addr, address) #void, no return 115 | 116 | def memalloc(self, size, align, noprint=False): 117 | return self.function("coreinit.rpl", "OSAllocFromSystem", noprint, 0, size, align) 118 | 119 | def freealloc(self, address): 120 | return self.function("coreinit.rpl", "OSFreeToSystem", True, 0, address) 121 | 122 | def createpath(self, path): 123 | if not hasattr(self, "pPath"): self.pPath = self.memalloc(len(path), 0x20, True) #It'll auto-pad 124 | size = len(path) + (32 - (len(path) % 32)) 125 | self.function("coreinit.rpl", "memset", True, 0, self.pPath, 0x00, size) 126 | self.writestr(self.pPath, path) 127 | #print("pPath address: " + hexstr0(self.pPath)) 128 | 129 | def createstr(self, string): 130 | address = self.memalloc(len(string), 0x20, True) #It'll auto-pad 131 | size = len(string) + (32 - (len(string) % 32)) 132 | self.function("coreinit.rpl", "memset", True, 0, address, 0x00, size) 133 | self.writestr(address, string) 134 | print("String address: " + hexstr0(address)) 135 | return address 136 | 137 | def FSInitClient(self): 138 | self.pClient = self.memalign(0x1700, 0x20) 139 | self.function("coreinit.rpl", "FSAddClient", True, 0, self.pClient) 140 | #print("pClient address: " + hexstr0(self.pClient)) 141 | 142 | def FSInitCmdBlock(self): 143 | self.pCmd = self.memalign(0xA80, 0x20) 144 | self.function("coreinit.rpl", "FSInitCmdBlock", True, 0, self.pCmd) 145 | #print("pCmd address: " + hexstr0(self.pCmd)) 146 | 147 | def FSOpenDir(self, path="/"): 148 | print("Initializing...") 149 | self.function("coreinit.rpl", "FSInit", True) 150 | if not hasattr(self, "pClient"): self.FSInitClient() 151 | if not hasattr(self, "pCmd"): self.FSInitCmdBlock() 152 | print("Getting memory ready...") 153 | self.createpath(path) 154 | self.pDh = self.memalloc(4, 4, True) 155 | #print("pDh address: " + hexstr0(self.pDh)) 156 | print("Calling function...") 157 | ret = self.function("coreinit.rpl", "FSOpenDir", False, 0, self.pClient, self.pCmd, self.pPath, self.pDh, 0xFFFFFFFF) 158 | self.pDh = int(hexlify(self.readmem(self.pDh, 4)), 16) 159 | print("Return value: " + hexstr0(ret)) 160 | 161 | def SAVEOpenDir(self, path="/", slot=255): 162 | print("Initializing...") 163 | self.function("coreinit.rpl", "FSInit", True, 0) 164 | self.function("nn_save.rpl", "SAVEInit", True, 0, slot) 165 | print("Getting memory ready...") 166 | if not hasattr(self, "pClient"): self.FSInitClient() 167 | if not hasattr(self, "pCmd"): self.FSInitCmdBlock() 168 | self.createpath(path) 169 | self.pDh = self.memalloc(4, 4, True) 170 | #print("pDh address: " + hexstr0(self.pDh)) 171 | print("Calling function...") 172 | ret = self.function("nn_save.rpl", "SAVEOpenDir", False, 0, self.pClient, self.pCmd, slot, self.pPath, self.pDh, 0xFFFFFFFF) 173 | self.pDh = int(hexlify(self.readmem(self.pDh, 4)), 16) 174 | print("Return value: " + hexstr0(ret)) 175 | 176 | def FSReadDir(self): 177 | global printe 178 | if not hasattr(self, "pBuffer"): self.pBuffer = self.memalign(0x164, 0x20) 179 | print("pBuffer address: " + hexstr0(self.pBuffer)) 180 | ret = self.function("coreinit.rpl", "FSReadDir", True, 0, self.pClient, self.pCmd, self.pDh, self.pBuffer, 0xFFFFFFFF) 181 | self.entry = self.readmem(self.pBuffer, 0x164) 182 | printe = getstr(self.entry, 100) + " " 183 | self.FileSystem().printflags(uint32(self.entry, 0), self.entry) 184 | self.FileSystem().printperms(uint32(self.entry, 4)) 185 | print(printe) 186 | return self.entry, ret 187 | 188 | def SAVEOpenFile(self, path="/", mode="r", slot=255): 189 | print("Initializing...") 190 | self.function("coreinit.rpl", "FSInit", True) 191 | self.function("nn_save.rpl", "SAVEInit", slot, True) 192 | print("Getting memory ready...") 193 | if not hasattr(self, "pClient"): self.FSInitClient() 194 | if not hasattr(self, "pCmd"): self.FSInitCmdBlock() 195 | self.createpath(path) 196 | self.pMode = self.createstr(mode) 197 | self.pFh = self.memalign(4, 4) 198 | #print("pFh address: " + hexstr0(self.pFh)) 199 | print("Calling function...") 200 | print("This function may have errors") 201 | #ret = self.function("nn_save.rpl", "SAVEOpenFile", self.pClient, self.pCmd, slot, self.pPath, self.pMode, self.pFh, 0xFFFFFFFF) 202 | #self.pFh = int(self.readmem(self.pFh, 4).encode("hex"), 16) 203 | #print(ret) 204 | 205 | def FSReadFile(self): 206 | if not hasattr(self, "pBuffer"): self.pBuffer = self.memalign(0x200, 0x20) 207 | print("pBuffer address: " + hexstr0(self.pBuffer)) 208 | ret = self.function("coreinit.rpl", "FSReadFile", False, 0, self.pClient, self.pCmd, self.pBuffer, 1, 0x200, self.pFh, 0, 0xFFFFFFFF) 209 | print(ret) 210 | return tcp.readmem(self.pBuffer, 0x200) 211 | 212 | def get_symbol(self, rplname, symname, noprint=False, data=0): 213 | self.s.send(b"\x71") #cmd_getsymbol 214 | request = struct.pack(">II", 8, 8 + len(rplname) + 1) #Pointers 215 | request += rplname.encode("UTF-8") + b"\x00" 216 | request += symname.encode("UTF-8") + b"\x00" 217 | size = struct.pack(">B", len(request)) 218 | data = struct.pack(">B", data) 219 | self.s.send(size) #Read this many bytes 220 | self.s.send(request) #Get this symbol 221 | self.s.send(data) #Is it data? 222 | address = self.s.recv(4) 223 | return ExportedSymbol(address, self, rplname, symname, noprint) 224 | 225 | def call(self, address, *args): 226 | arguments = list(args) 227 | if len(arguments)>8 and len(arguments)<=16: #Use the big call function 228 | while len(arguments) != 16: 229 | arguments.append(0) 230 | self.s.send(b"\x80") 231 | address = struct.unpack(">I", address)[0] 232 | request = struct.pack(">I16I", address, *arguments) 233 | self.s.send(request) 234 | reply = self.s.recv(8) 235 | return struct.unpack(">I", reply[:4])[0] 236 | elif len(arguments) <= 8: #Use the normal one that dNet client uses 237 | while len(arguments) != 8: 238 | arguments.append(0) 239 | self.s.send(b"\x70") 240 | address = struct.unpack(">I", address)[0] 241 | request = struct.pack(">I8I", address, *arguments) 242 | self.s.send(request) 243 | reply = self.s.recv(8) 244 | return struct.unpack(">I", reply[:4])[0] 245 | else: raise BaseException("Too many arguments!") 246 | 247 | #Data last, only a few functions need it, noprint for the big FS/SAVE ones above, acts as gateway for data arg 248 | def function(self, rplname, symname, noprint=False, data=0, *args): 249 | symbol = self.get_symbol(rplname, symname, noprint, data) 250 | ret = self.call(symbol.address, *args) 251 | return ret 252 | 253 | def validrange(self, address, length): 254 | if 0x01000000 <= address and address + length <= 0x01800000: return True 255 | elif 0x0E000000 <= address and address + length <= 0x10000000: return True #Depends on game 256 | elif 0x10000000 <= address and address + length <= 0x50000000: return True #Doesn't quite go to 5 257 | elif 0xE0000000 <= address and address + length <= 0xE4000000: return True 258 | elif 0xE8000000 <= address and address + length <= 0xEA000000: return True 259 | elif 0xF4000000 <= address and address + length <= 0xF6000000: return True 260 | elif 0xF6000000 <= address and address + length <= 0xF6800000: return True 261 | elif 0xF8000000 <= address and address + length <= 0xFB000000: return True 262 | elif 0xFB000000 <= address and address + length <= 0xFB800000: return True 263 | elif 0xFFFE0000 <= address and address + length <= 0xFFFFFFFF: return True 264 | else: return False 265 | 266 | def validaccess(self, address, length, access): 267 | if 0x01000000 <= address and address + length <= 0x01800000: 268 | if access.lower() == "read": return True 269 | if access.lower() == "write": return False 270 | elif 0x0E000000 <= address and address + length <= 0x10000000: #Depends on game, may be EG 0x0E3 271 | if access.lower() == "read": return True 272 | if access.lower() == "write": return False 273 | elif 0x10000000 <= address and address + length <= 0x50000000: 274 | if access.lower() == "read": return True 275 | if access.lower() == "write": return True 276 | elif 0xE0000000 <= address and address + length <= 0xE4000000: 277 | if access.lower() == "read": return True 278 | if access.lower() == "write": return False 279 | elif 0xE8000000 <= address and address + length <= 0xEA000000: 280 | if access.lower() == "read": return True 281 | if access.lower() == "write": return False 282 | elif 0xF4000000 <= address and address + length <= 0xF6000000: 283 | if access.lower() == "read": return True 284 | if access.lower() == "write": return False 285 | elif 0xF6000000 <= address and address + length <= 0xF6800000: 286 | if access.lower() == "read": return True 287 | if access.lower() == "write": return False 288 | elif 0xF8000000 <= address and address + length <= 0xFB000000: 289 | if access.lower() == "read": return True 290 | if access.lower() == "write": return False 291 | elif 0xFB000000 <= address and address + length <= 0xFB800000: 292 | if access.lower() == "read": return True 293 | if access.lower() == "write": return False 294 | elif 0xFFFE0000 <= address and address + length <= 0xFFFFFFFF: 295 | if access.lower() == "read": return True 296 | if access.lower() == "write": return True 297 | else: return False 298 | 299 | class FileSystem: #TODO: Try to clean this up ???? 300 | Flags = enum( 301 | IS_DIRECTORY = 0x80000000, 302 | IS_QUOTA = 0x40000000, 303 | SPRT_QUOTA_SIZE = 0x20000000, #Supports .quota_size field 304 | SPRT_ENT_ID = 0x10000000, #Supports .ent_id field 305 | SPRT_CTIME = 0x08000000, #Supports .ctime field 306 | SPRT_MTIME = 0x04000000, #Supports .mtime field 307 | SPRT_ATTRIBUTES = 0x02000000, #Supports .attributes field 308 | SPRT_ALLOC_SIZE = 0x01000000, #Supports .alloc_size field 309 | IS_RAW_FILE = 0x00800000, #Entry isn't encrypted 310 | SPRT_DIR_SIZE = 0x00100000, #Supports .size field, doesn't apply to files 311 | UNSUPPORTED_CHR = 0x00080000) #Entry name has an unsupported character 312 | 313 | Permissions = enum( #Pretty self explanitory 314 | OWNER_READ = 0x00004000, 315 | OWNER_WRITE = 0x00002000, 316 | OTHER_READ = 0x00000400, 317 | OTHER_WRITE = 0x00000200) 318 | 319 | def printflags(self, flags, data): 320 | global printe 321 | if flags & self.Flags.IS_DIRECTORY: printe += " Directory" 322 | if flags & self.Flags.IS_QUOTA: printe += " Quota" 323 | if flags & self.Flags.SPRT_QUOTA_SIZE: printe += " .quota_size: " + hexstr0(uint32(data, 24)) 324 | if flags & self.Flags.SPRT_ENT_ID: printe += " .ent_id: " + hexstr0(uint32(data, 32)) 325 | if flags & self.Flags.SPRT_CTIME: printe += " .ctime: " + hexstr0(uint32(data, 36)) 326 | if flags & self.Flags.SPRT_MTIME: printe += " .mtime: " + hexstr0(uint32(data, 44)) 327 | if flags & self.Flags.SPRT_ATTRIBUTES: pass #weh 328 | if flags & self.Flags.SPRT_ALLOC_SIZE: printe += " .alloc_size: " + hexstr0(uint32(data, 20)) 329 | if flags & self.Flags.IS_RAW_FILE: printe += " Raw (Unencrypted) file" 330 | if flags & self.Flags.SPRT_DIR_SIZE: printe += " .dir_size: " + hexstr0(uint64(data, 24)) 331 | if flags & self.Flags.UNSUPPORTED_CHR: printe += " !! UNSUPPORTED CHARACTER IN NAME" 332 | 333 | def printperms(self, perms): 334 | global printe 335 | if perms & self.Permissions.OWNER_READ: printe += " OWNER_READ" 336 | if perms & self.Permissions.OWNER_WRITE: printe += " OWNER_WRITE" 337 | if perms & self.Permissions.OTHER_READ: printe += " OTHER_READ" 338 | if perms & self.Permissions.OTHER_WRITE: printe += " OTHER_WRITE" 339 | 340 | def hexstr0(data): #0xFFFFFFFF, uppercase hex string 341 | return "0x" + hex(data).lstrip("0x").rstrip("L").zfill(8).upper() 342 | 343 | class ExportedSymbol(object): 344 | def __init__(self, address, rpc=None, rplname=None, symname=None, noprint=False): 345 | self.address = address 346 | self.rpc = rpc 347 | self.rplname = rplname 348 | self.symname = symname 349 | if not noprint: #Make command prompt not explode when using FS or SAVE functions 350 | print(symname + " address: " + hexstr0(struct.unpack(">I", address)[0])) 351 | 352 | def __call__(self, *args): 353 | return self.rpc.call(self.address, *args) #Pass in arguments, run address 354 | --------------------------------------------------------------------------------