Index: stable/3/contrib/binutils/include/elf/mips.h =================================================================== --- stable/3/contrib/binutils/include/elf/mips.h (nonexistent) +++ stable/3/contrib/binutils/include/elf/mips.h (revision 44655) @@ -0,0 +1,509 @@ +/* MIPS ELF support for BFD. + Copyright (C) 1993, 1994, 1995, 1996 Free Software Foundation, Inc. + + By Ian Lance Taylor, Cygnus Support, , from + information in the System V Application Binary Interface, MIPS + Processor Supplement. + +This file is part of BFD, the Binary File Descriptor library. + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +/* This file holds definitions specific to the MIPS ELF ABI. Note + that most of this is not actually implemented by BFD. */ + +#ifndef _ELF_MIPS_H +#define _ELF_MIPS_H + +/* Processor specific flags for the ELF header e_flags field. */ + +/* At least one .noreorder directive appears in the source. */ +#define EF_MIPS_NOREORDER 0x00000001 + +/* File contains position independent code. */ +#define EF_MIPS_PIC 0x00000002 + +/* Code in file uses the standard calling sequence for calling + position independent code. */ +#define EF_MIPS_CPIC 0x00000004 + +/* Code in file uses new ABI (-n32 on Irix 6). */ +#define EF_MIPS_ABI2 0x00000020 + +/* Four bit MIPS architecture field. */ +#define EF_MIPS_ARCH 0xf0000000 + +/* -mips1 code. */ +#define E_MIPS_ARCH_1 0x00000000 + +/* -mips2 code. */ +#define E_MIPS_ARCH_2 0x10000000 + +/* -mips3 code. */ +#define E_MIPS_ARCH_3 0x20000000 + +/* -mips4 code. */ +#define E_MIPS_ARCH_4 0x30000000 + +/* Processor specific section indices. These sections do not actually + exist. Symbols with a st_shndx field corresponding to one of these + values have a special meaning. */ + +/* Defined and allocated common symbol. Value is virtual address. If + relocated, alignment must be preserved. */ +#define SHN_MIPS_ACOMMON 0xff00 + +/* Defined and allocated text symbol. Value is virtual address. + Occur in the dynamic symbol table of Alpha OSF/1 and Irix 5 executables. */ +#define SHN_MIPS_TEXT 0xff01 + +/* Defined and allocated data symbol. Value is virtual address. + Occur in the dynamic symbol table of Alpha OSF/1 and Irix 5 executables. */ +#define SHN_MIPS_DATA 0xff02 + +/* Small common symbol. */ +#define SHN_MIPS_SCOMMON 0xff03 + +/* Small undefined symbol. */ +#define SHN_MIPS_SUNDEFINED 0xff04 + +/* Processor specific section types. */ + +/* Section contains the set of dynamic shared objects used when + statically linking. */ +#define SHT_MIPS_LIBLIST 0x70000000 + +/* I'm not sure what this is, but it's used on Irix 5. */ +#define SHT_MIPS_MSYM 0x70000001 + +/* Section contains list of symbols whose definitions conflict with + symbols defined in shared objects. */ +#define SHT_MIPS_CONFLICT 0x70000002 + +/* Section contains the global pointer table. */ +#define SHT_MIPS_GPTAB 0x70000003 + +/* Section contains microcode information. The exact format is + unspecified. */ +#define SHT_MIPS_UCODE 0x70000004 + +/* Section contains some sort of debugging information. The exact + format is unspecified. It's probably ECOFF symbols. */ +#define SHT_MIPS_DEBUG 0x70000005 + +/* Section contains register usage information. */ +#define SHT_MIPS_REGINFO 0x70000006 + +/* Section contains interface information. */ +#define SHT_MIPS_IFACE 0x7000000b + +/* Section contains description of contents of another section. */ +#define SHT_MIPS_CONTENT 0x7000000c + +/* Section contains miscellaneous options. */ +#define SHT_MIPS_OPTIONS 0x7000000d + +/* DWARF debugging section. */ +#define SHT_MIPS_DWARF 0x7000001e + +/* I'm not sure what this is, but it appears on Irix 6. */ +#define SHT_MIPS_SYMBOL_LIB 0x70000020 + +/* Events section. */ +#define SHT_MIPS_EVENTS 0x70000021 + +/* A section of type SHT_MIPS_LIBLIST contains an array of the + following structure. The sh_link field is the section index of the + string table. The sh_info field is the number of entries in the + section. */ +typedef struct +{ + /* String table index for name of shared object. */ + unsigned long l_name; + /* Time stamp. */ + unsigned long l_time_stamp; + /* Checksum of symbol names and common sizes. */ + unsigned long l_checksum; + /* String table index for version. */ + unsigned long l_version; + /* Flags. */ + unsigned long l_flags; +} Elf32_Lib; + +/* The l_flags field of an Elf32_Lib structure may contain the + following flags. */ + +/* Require an exact match at runtime. */ +#define LL_EXACT_MATCH 0x00000001 + +/* Ignore version incompatibilities at runtime. */ +#define LL_IGNORE_INT_VER 0x00000002 + +/* A section of type SHT_MIPS_CONFLICT is an array of indices into the + .dynsym section. Each element has the following type. */ +typedef unsigned long Elf32_Conflict; + +/* A section of type SHT_MIPS_GPTAB contains information about how + much GP space would be required for different -G arguments. This + information is only used so that the linker can provide informative + suggestions as to the best -G value to use. The sh_info field is + the index of the section for which this information applies. The + contents of the section are an array of the following union. The + first element uses the gt_header field. The remaining elements use + the gt_entry field. */ +typedef union +{ + struct + { + /* -G value actually used for this object file. */ + unsigned long gt_current_g_value; + /* Unused. */ + unsigned long gt_unused; + } gt_header; + struct + { + /* If this -G argument has been used... */ + unsigned long gt_g_value; + /* ...this many GP section bytes would be required. */ + unsigned long gt_bytes; + } gt_entry; +} Elf32_gptab; + +/* The external version of Elf32_gptab. */ + +typedef union +{ + struct + { + unsigned char gt_current_g_value[4]; + unsigned char gt_unused[4]; + } gt_header; + struct + { + unsigned char gt_g_value[4]; + unsigned char gt_bytes[4]; + } gt_entry; +} Elf32_External_gptab; + +/* A section of type SHT_MIPS_REGINFO contains the following + structure. */ +typedef struct +{ + /* Mask of general purpose registers used. */ + unsigned long ri_gprmask; + /* Mask of co-processor registers used. */ + unsigned long ri_cprmask[4]; + /* GP register value for this object file. */ + long ri_gp_value; +} Elf32_RegInfo; + +/* The external version of the Elf_RegInfo structure. */ +typedef struct +{ + unsigned char ri_gprmask[4]; + unsigned char ri_cprmask[4][4]; + unsigned char ri_gp_value[4]; +} Elf32_External_RegInfo; + +/* MIPS ELF .reginfo swapping routines. */ +extern void bfd_mips_elf32_swap_reginfo_in + PARAMS ((bfd *, const Elf32_External_RegInfo *, Elf32_RegInfo *)); +extern void bfd_mips_elf32_swap_reginfo_out + PARAMS ((bfd *, const Elf32_RegInfo *, Elf32_External_RegInfo *)); + +/* Processor specific section flags. */ + +/* This section must be in the global data area. */ +#define SHF_MIPS_GPREL 0x10000000 + +/* This section should be merged. */ +#define SHF_MIPS_MERGE 0x20000000 + +/* This section contains 32 bit addresses. */ +#define SHF_MIPS_ADDR32 0x40000000 + +/* This section contains 64 bit addresses. */ +#define SHF_MIPS_ADDR64 0x80000000 + +/* This section may not be stripped. */ +#define SHF_MIPS_NOSTRIP 0x08000000 + +/* This section is local to threads. */ +#define SHF_MIPS_LOCAL 0x04000000 + +/* Linker should generate implicit weak names for this section. */ +#define SHF_MIPS_NAMES 0x02000000 + +/* Processor specific program header types. */ + +/* Register usage information. Identifies one .reginfo section. */ +#define PT_MIPS_REGINFO 0x70000000 + +/* Runtime procedure table. */ +#define PT_MIPS_RTPROC 0x70000001 + +/* Processor specific dynamic array tags. */ + +/* 32 bit version number for runtime linker interface. */ +#define DT_MIPS_RLD_VERSION 0x70000001 + +/* Time stamp. */ +#define DT_MIPS_TIME_STAMP 0x70000002 + +/* Checksum of external strings and common sizes. */ +#define DT_MIPS_ICHECKSUM 0x70000003 + +/* Index of version string in string table. */ +#define DT_MIPS_IVERSION 0x70000004 + +/* 32 bits of flags. */ +#define DT_MIPS_FLAGS 0x70000005 + +/* Base address of the segment. */ +#define DT_MIPS_BASE_ADDRESS 0x70000006 + +/* Address of .conflict section. */ +#define DT_MIPS_CONFLICT 0x70000008 + +/* Address of .liblist section. */ +#define DT_MIPS_LIBLIST 0x70000009 + +/* Number of local global offset table entries. */ +#define DT_MIPS_LOCAL_GOTNO 0x7000000a + +/* Number of entries in the .conflict section. */ +#define DT_MIPS_CONFLICTNO 0x7000000b + +/* Number of entries in the .liblist section. */ +#define DT_MIPS_LIBLISTNO 0x70000010 + +/* Number of entries in the .dynsym section. */ +#define DT_MIPS_SYMTABNO 0x70000011 + +/* Index of first external dynamic symbol not referenced locally. */ +#define DT_MIPS_UNREFEXTNO 0x70000012 + +/* Index of first dynamic symbol in global offset table. */ +#define DT_MIPS_GOTSYM 0x70000013 + +/* Number of page table entries in global offset table. */ +#define DT_MIPS_HIPAGENO 0x70000014 + +/* Address of run time loader map, used for debugging. */ +#define DT_MIPS_RLD_MAP 0x70000016 + +/* Flags which may appear in a DT_MIPS_FLAGS entry. */ + +/* No flags. */ +#define RHF_NONE 0x00000000 + +/* Uses shortcut pointers. */ +#define RHF_QUICKSTART 0x00000001 + +/* Hash size is not a power of two. */ +#define RHF_NOTPOT 0x00000002 + +/* Ignore LD_LIBRARY_PATH. */ +#define RHS_NO_LIBRARY_REPLACEMENT \ + 0x00000004 + +/* Special values for the st_other field in the symbol table. These + are used in an Irix 5 dynamic symbol table. */ + +#define STO_DEFAULT 0x00 +#define STO_INTERNAL 0x01 +#define STO_HIDDEN 0x02 +#define STO_PROTECTED 0x03 + +/* This value is used for a mips16 .text symbol. */ +#define STO_MIPS16 0xf0 + +/* The 64-bit MIPS ELF ABI uses an unusual reloc format. Each + relocation entry specifies up to three actual relocations, all at + the same address. The first relocation which required a symbol + uses the symbol in the r_sym field. The second relocation which + requires a symbol uses the symbol in the r_ssym field. If all + three relocations require a symbol, the third one uses a zero + value. */ + +/* An entry in a 64 bit SHT_REL section. */ + +typedef struct +{ + /* Address of relocation. */ + unsigned char r_offset[8]; + /* Symbol index. */ + unsigned char r_sym[4]; + /* Special symbol. */ + unsigned char r_ssym[1]; + /* Third relocation. */ + unsigned char r_type3[1]; + /* Second relocation. */ + unsigned char r_type2[1]; + /* First relocation. */ + unsigned char r_type[1]; +} Elf64_Mips_External_Rel; + +typedef struct +{ + /* Address of relocation. */ + bfd_vma r_offset; + /* Symbol index. */ + unsigned long r_sym; + /* Special symbol. */ + unsigned char r_ssym; + /* Third relocation. */ + unsigned char r_type3; + /* Second relocation. */ + unsigned char r_type2; + /* First relocation. */ + unsigned char r_type; +} Elf64_Mips_Internal_Rel; + +/* An entry in a 64 bit SHT_RELA section. */ + +typedef struct +{ + /* Address of relocation. */ + unsigned char r_offset[8]; + /* Symbol index. */ + unsigned char r_sym[4]; + /* Special symbol. */ + unsigned char r_ssym[1]; + /* Third relocation. */ + unsigned char r_type3[1]; + /* Second relocation. */ + unsigned char r_type2[1]; + /* First relocation. */ + unsigned char r_type[1]; + /* Addend. */ + unsigned char r_addend[8]; +} Elf64_Mips_External_Rela; + +typedef struct +{ + /* Address of relocation. */ + bfd_vma r_offset; + /* Symbol index. */ + unsigned long r_sym; + /* Special symbol. */ + unsigned char r_ssym; + /* Third relocation. */ + unsigned char r_type3; + /* Second relocation. */ + unsigned char r_type2; + /* First relocation. */ + unsigned char r_type; + /* Addend. */ + bfd_signed_vma r_addend; +} Elf64_Mips_Internal_Rela; + +/* Values found in the r_ssym field of a relocation entry. */ + +/* No relocation. */ +#define RSS_UNDEF 0 + +/* Value of GP. */ +#define RSS_GP 1 + +/* Value of GP in object being relocated. */ +#define RSS_GP0 2 + +/* Address of location being relocated. */ +#define RSS_LOC 3 + +/* A SHT_MIPS_OPTIONS section contains a series of options, each of + which starts with this header. */ + +typedef struct +{ + /* Type of option. */ + unsigned char kind[1]; + /* Size of option descriptor, including header. */ + unsigned char size[1]; + /* Section index of affected section, or 0 for global option. */ + unsigned char section[2]; + /* Information specific to this kind of option. */ + unsigned char info[4]; +} Elf_External_Options; + +typedef struct +{ + /* Type of option. */ + unsigned char kind; + /* Size of option descriptor, including header. */ + unsigned char size; + /* Section index of affected section, or 0 for global option. */ + unsigned short section; + /* Information specific to this kind of option. */ + unsigned long info; +} Elf_Internal_Options; + +/* MIPS ELF option header swapping routines. */ +extern void bfd_mips_elf_swap_options_in + PARAMS ((bfd *, const Elf_External_Options *, Elf_Internal_Options *)); +extern void bfd_mips_elf_swap_options_out + PARAMS ((bfd *, const Elf_Internal_Options *, Elf_External_Options *)); + +/* Values which may appear in the kind field of an Elf_Options + structure. */ + +/* Undefined. */ +#define ODK_NULL 0 + +/* Register usage and GP value. */ +#define ODK_REGINFO 1 + +/* Exception processing information. */ +#define ODK_EXCEPTIONS 2 + +/* Section padding information. */ +#define ODK_PAD 3 + +/* In the 32 bit ABI, an ODK_REGINFO option is just a Elf32_Reginfo + structure. In the 64 bit ABI, it is the following structure. The + info field of the options header is not used. */ + +typedef struct +{ + /* Mask of general purpose registers used. */ + unsigned char ri_gprmask[4]; + /* Padding. */ + unsigned char ri_pad[4]; + /* Mask of co-processor registers used. */ + unsigned char ri_cprmask[4][4]; + /* GP register value for this object file. */ + unsigned char ri_gp_value[8]; +} Elf64_External_RegInfo; + +typedef struct +{ + /* Mask of general purpose registers used. */ + unsigned long ri_gprmask; + /* Padding. */ + unsigned long ri_pad; + /* Mask of co-processor registers used. */ + unsigned long ri_cprmask[4]; + /* GP register value for this object file. */ + bfd_vma ri_gp_value; +} Elf64_Internal_RegInfo; + +/* MIPS ELF reginfo swapping routines. */ +extern void bfd_mips_elf64_swap_reginfo_in + PARAMS ((bfd *, const Elf64_External_RegInfo *, Elf64_Internal_RegInfo *)); +extern void bfd_mips_elf64_swap_reginfo_out + PARAMS ((bfd *, const Elf64_Internal_RegInfo *, Elf64_External_RegInfo *)); + +#endif /* _ELF_MIPS_H */ Property changes on: stable/3/contrib/binutils/include/elf/mips.h ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: stable/3/contrib/tcpdump/print-token.c =================================================================== --- stable/3/contrib/tcpdump/print-token.c (nonexistent) +++ stable/3/contrib/tcpdump/print-token.c (revision 44655) @@ -0,0 +1,165 @@ +/* + * Copyright (c) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that: (1) source code distributions + * retain the above copyright notice and this paragraph in its entirety, (2) + * distributions including binary code include the above copyright notice and + * this paragraph in its entirety in the documentation or other materials + * provided with the distribution, and (3) all advertising materials mentioning + * features or use of this software display the following acknowledgement: + * ``This product includes software developed by the University of California, + * Lawrence Berkeley Laboratory and its contributors.'' Neither the name of + * the University nor the names of its contributors may be used to endorse + * or promote products derived from this software without specific prior + * written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + * + * Hacked version of print-ether.c Larry Lile + */ +#ifndef lint +static const char rcsid[] = + "@(#) $Header$"; +#endif + +#include +#include +#include + +#if __STDC__ +struct mbuf; +struct rtentry; +#endif +#include + +#include "token.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include "interface.h" +#include "addrtoname.h" +#include "ethertype.h" +#include "llc.h" + +const u_char *packetp; +const u_char *snapend; + +static inline void +token_print(register const u_char *bp, u_int length) +{ + register const struct token_header *tp; + register const struct llc *lp; + u_short ether_type; + + tp = (const struct token_header *)bp; + lp = (struct llc *)(bp + TOKEN_HDR_LEN); + if (IS_SOURCE_ROUTED) + lp = (struct llc *)(bp + TOKEN_HDR_LEN + RIF_LENGTH); + + /* + * Ethertype on ethernet is a short, but ethertype in an llc-snap has + * been defined as 2 u_chars. This is a stupid little hack to fix + * this for now but something better should be done using ntohs() + * XXX + */ + ether_type = ((u_short)lp->ethertype[1] << 16) | lp->ethertype[0]; + + if (qflag) + (void)printf("%s %s %d: ", + etheraddr_string(ESRC(tp)), + etheraddr_string(EDST(tp)), + length); + else + (void)printf("%s %s %s %d: ", + etheraddr_string(ESRC(tp)), + etheraddr_string(EDST(tp)), + etherproto_string(ether_type), + length); +} + +/* + * This is the top level routine of the printer. 'p' is the points + * to the ether header of the packet, 'tvp' is the timestamp, + * 'length' is the length of the packet off the wire, and 'caplen' + * is the number of bytes actually captured. + */ +void +token_if_print(u_char *user, const struct pcap_pkthdr *h, const u_char *p) +{ + u_int caplen = h->caplen; + u_int length = h->len; + struct token_header *tp; + u_short ether_type; + extern u_short extracted_ethertype; + u_int route_len = 0; + struct llc *lp; + + tp = (struct token_header *)p; + + ts_print(&h->ts); + + if (caplen < TOKEN_HDR_LEN) { + printf("[|token-ring]"); + goto out; + } + + if (eflag) + token_print(p, length); + + /* + * Some printers want to get back at the ethernet addresses, + * and/or check that they're not walking off the end of the packet. + * Rather than pass them all the way down, we set these globals. + */ + tp = (struct token_header *)p; + + /* Adjust for source routing information in the MAC header */ + if (IS_SOURCE_ROUTED) { + route_len = RIF_LENGTH; + } + + /* Set pointer to llc header, adjusted for routing information */ + lp = (struct llc *)(p + TOKEN_HDR_LEN + route_len); + + packetp = p; + snapend = p + caplen; + + /* Skip over token ring MAC header */ + length -= TOKEN_HDR_LEN + route_len; + caplen -= TOKEN_HDR_LEN + route_len; + p += TOKEN_HDR_LEN + route_len; + + ether_type = ntohs((int)lp->ethertype); + + extracted_ethertype = 0; + /* Try to print the LLC-layer header & higher layers */ + if (llc_print(p, length, caplen, ESRC(tp), EDST(tp)) == 0) { + /* ether_type not known, print raw packet */ + if (!eflag) + token_print((u_char *)tp, length); + if (extracted_ethertype) { + printf("(LLC %s) ", + etherproto_string(htons(extracted_ethertype))); + } + if (!xflag && !qflag) + default_print(p, caplen); + } + if (xflag) + default_print(p, caplen); + out: + putchar('\n'); +} Property changes on: stable/3/contrib/tcpdump/print-token.c ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: stable/3/contrib/tcpdump/token.h =================================================================== --- stable/3/contrib/tcpdump/token.h (nonexistent) +++ stable/3/contrib/tcpdump/token.h (revision 44655) @@ -0,0 +1,43 @@ +/* + * Copyright (c) 1998, Larry Lile + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice unmodified, this list of conditions, and the following + * disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + */ + +#define TOKEN_HDR_LEN 14 +#define IS_SOURCE_ROUTED (tp->ether_shost[0] & 0x80) +#define RIF_LENGTH ((ntohs(tp->rcf) & 0x1f00) >> 8) +#define TOKEN_RING_MAC_LEN 6 +#define ROUTING_SEGMENT_MAX 16 + +struct token_header { + u_char ac; + u_char fc; + u_char ether_dhost[TOKEN_RING_MAC_LEN]; + u_char ether_shost[TOKEN_RING_MAC_LEN]; + u_short rcf; + u_short rseg[ROUTING_SEGMENT_MAX]; +}; + Property changes on: stable/3/contrib/tcpdump/token.h ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: stable/3/lib/libalias/alias_proxy.c =================================================================== --- stable/3/lib/libalias/alias_proxy.c (nonexistent) +++ stable/3/lib/libalias/alias_proxy.c (revision 44655) @@ -0,0 +1,805 @@ +/* file: alias_proxy.c + + This file encapsulates special operations related to transparent + proxy redirection. This is where packets with a particular destination, + usually tcp port 80, are redirected to a proxy server. + + When packets are proxied, the destination address and port are + modified. In certain cases, it is necessary to somehow encode + the original address/port info into the packet. Two methods are + presently supported: addition of a [DEST addr port] string at the + beginning a of tcp stream, or inclusion of an optional field + in the IP header. + + There is one public API function: + + PacketAliasProxyRule() -- Adds and deletes proxy + rules. + + Rules are stored in a linear linked list, so lookup efficiency + won't be too good for large lists. + + + Initial development: April, 1998 (cjm) +*/ + + +/* System includes */ +#include +#include +#include +#include +#include + +#include +#include + +/* BSD IPV4 includes */ +#include +#include +#include +#include + +#include + +#include "alias_local.h" /* Functions used by alias*.c */ +#include "alias.h" /* Public API functions for libalias */ + + + +/* + Data structures + */ + +/* + * A linked list of arbitrary length, based on struct proxy_entry is + * used to store proxy rules. + */ +struct proxy_entry +{ +#define PROXY_TYPE_ENCODE_NONE 1 +#define PROXY_TYPE_ENCODE_TCPSTREAM 2 +#define PROXY_TYPE_ENCODE_IPHDR 3 + int rule_index; + int proxy_type; + u_char proto; + u_short proxy_port; + u_short server_port; + + struct in_addr server_addr; + + struct in_addr src_addr; + struct in_addr src_mask; + + struct in_addr dst_addr; + struct in_addr dst_mask; + + struct proxy_entry *next; + struct proxy_entry *last; +}; + + + +/* + File scope variables +*/ + +static struct proxy_entry *proxyList; + + + +/* Local (static) functions: + + IpMask() -- Utility function for creating IP + masks from integer (1-32) specification. + IpAddr() -- Utility function for converting string + to IP address + IpPort() -- Utility function for converting string + to port number + RuleAdd() -- Adds an element to the rule list. + RuleDelete() -- Removes an element from the rule list. + RuleNumberDelete() -- Removes all elements from the rule list + having a certain rule number. + ProxyEncodeTcpStream() -- Adds [DEST x.x.x.x xxxx] to the beginning + of a TCP stream. + ProxyEncodeIpHeader() -- Adds an IP option indicating the true + destination of a proxied IP packet +*/ + +static int IpMask(int, struct in_addr *); +static int IpAddr(char *, struct in_addr *); +static int IpPort(char *, int, int *); +static void RuleAdd(struct proxy_entry *); +static void RuleDelete(struct proxy_entry *); +static int RuleNumberDelete(int); +static void ProxyEncodeTcpStream(struct alias_link *, struct ip *, int); +static void ProxyEncodeIpHeader(struct ip *, int); + +static int +IpMask(int nbits, struct in_addr *mask) +{ + int i; + u_int imask; + + if (nbits < 0 || nbits > 32) + return -1; + + imask = 0; + for (i=0; i> 1) + 0x80000000; + mask->s_addr = htonl(imask); + + return 0; +} + +static int +IpAddr(char *s, struct in_addr *addr) +{ + if (inet_aton(s, addr) == 0) + return -1; + else + return 0; +} + +static int +IpPort(char *s, int proto, int *port) +{ + int n; + + n = sscanf(s, "%d", port); + if (n != 1) + { + struct servent *se; + + if (proto == IPPROTO_TCP) + se = getservbyname(s, "tcp"); + else if (proto == IPPROTO_UDP) + se = getservbyname(s, "udp"); + else + return -1; + + if (se == NULL) + return -1; + + *port = (u_int) ntohs(se->s_port); + } + + return 0; +} + +void +RuleAdd(struct proxy_entry *entry) +{ + int rule_index; + struct proxy_entry *ptr; + struct proxy_entry *ptr_last; + + if (proxyList == NULL) + { + proxyList = entry; + entry->last = NULL; + entry->next = NULL; + return; + } + + rule_index = entry->rule_index; + ptr = proxyList; + ptr_last = NULL; + while (ptr != NULL) + { + if (ptr->rule_index >= rule_index) + { + if (ptr_last == NULL) + { + entry->next = proxyList; + entry->last = NULL; + proxyList->last = entry; + proxyList = entry; + return; + } + + ptr_last->next = entry; + ptr->last = entry; + entry->last = ptr->last; + entry->next = ptr; + return; + } + ptr_last = ptr; + ptr = ptr->next; + } + + ptr_last->next = entry; + entry->last = ptr_last; + entry->next = NULL; +} + +static void +RuleDelete(struct proxy_entry *entry) +{ + if (entry->last != NULL) + entry->last->next = entry->next; + else + proxyList = entry->next; + + if (entry->next != NULL) + entry->next->last = entry->last; + + free(entry); +} + +static int +RuleNumberDelete(int rule_index) +{ + int err; + struct proxy_entry *ptr; + + err = -1; + ptr = proxyList; + while (ptr != NULL) + { + struct proxy_entry *ptr_next; + + ptr_next = ptr->next; + if (ptr->rule_index == rule_index) + { + err = 0; + RuleDelete(ptr); + } + + ptr = ptr_next; + } + + return err; +} + +static void +ProxyEncodeTcpStream(struct alias_link *link, + struct ip *pip, + int maxpacketsize) +{ + int slen; + char buffer[40]; + struct tcphdr *tc; + +/* Compute pointer to tcp header */ + tc = (struct tcphdr *) ((char *) pip + (pip->ip_hl << 2)); + +/* Don't modify if once already modified */ + + if (GetAckModified (link)) + return; + +/* Translate destination address and port to string form */ + snprintf(buffer, sizeof(buffer) - 2, "[DEST %s %d]", + inet_ntoa(GetProxyAddress (link)), (u_int) ntohs(GetProxyPort (link))); + +/* Pad string out to a multiple of two in length */ + slen = strlen(buffer); + switch (slen % 2) + { + case 0: + strcat(buffer, " \n"); + slen += 2; + break; + case 1: + strcat(buffer, "\n"); + slen += 1; + } + +/* Check for packet overflow */ + if ((ntohs(pip->ip_len) + strlen(buffer)) > maxpacketsize) + return; + +/* Shift existing TCP data and insert destination string */ + { + int dlen; + int hlen; + u_char *p; + + hlen = (pip->ip_hl + tc->th_off) << 2; + dlen = ntohs (pip->ip_len) - hlen; + +/* Modify first packet that has data in it */ + + if (dlen == 0) + return; + + p = (char *) pip; + p += hlen; + + memmove(p + slen, p, dlen); + memcpy(p, buffer, slen); + } + +/* Save information about modfied sequence number */ + { + int delta; + + SetAckModified(link); + delta = GetDeltaSeqOut(pip, link); + AddSeq(pip, link, delta+slen); + } + +/* Update IP header packet length and checksum */ + { + int accumulate; + + accumulate = pip->ip_len; + pip->ip_len = htons(ntohs(pip->ip_len) + slen); + accumulate -= pip->ip_len; + + ADJUST_CHECKSUM(accumulate, pip->ip_sum); + } + +/* Update TCP checksum, Use TcpChecksum since so many things have + already changed. */ + + tc->th_sum = 0; + tc->th_sum = TcpChecksum (pip); +} + +static void +ProxyEncodeIpHeader(struct ip *pip, + int maxpacketsize) +{ +#define OPTION_LEN_BYTES 8 +#define OPTION_LEN_INT16 4 +#define OPTION_LEN_INT32 2 + u_char option[OPTION_LEN_BYTES]; + +#ifdef DEBUG + fprintf(stdout, " ip cksum 1 = %x\n", (u_int) IpChecksum(pip)); + fprintf(stdout, "tcp cksum 1 = %x\n", (u_int) TcpChecksum(pip)); +#endif + +/* Check to see that there is room to add an IP option */ + if (pip->ip_hl > (0x0f - OPTION_LEN_INT32)) + return; + +/* Build option and copy into packet */ + { + u_char *ptr; + struct tcphdr *tc; + + ptr = (u_char *) pip; + ptr += 20; + memcpy(ptr + OPTION_LEN_BYTES, ptr, ntohs(pip->ip_len) - 20); + + option[0] = 0x64; /* class: 3 (reserved), option 4 */ + option[1] = OPTION_LEN_BYTES; + + memcpy(&option[2], (u_char *) &pip->ip_dst, 4); + + tc = (struct tcphdr *) ((char *) pip + (pip->ip_hl << 2)); + memcpy(&option[6], (u_char *) &tc->th_sport, 2); + + memcpy(ptr, option, 8); + } + +/* Update checksum, header length and packet length */ + { + int i; + int accumulate; + u_short *sptr; + + sptr = (u_short *) option; + accumulate = 0; + for (i=0; iip_hl += OPTION_LEN_INT32; + accumulate -= *sptr; + + accumulate += pip->ip_len; + pip->ip_len = htons(ntohs(pip->ip_len) + OPTION_LEN_BYTES); + accumulate -= pip->ip_len; + + ADJUST_CHECKSUM(accumulate, pip->ip_sum); + } +#undef OPTION_LEN_BYTES +#undef OPTION_LEN_INT16 +#undef OPTION_LEN_INT32 +#ifdef DEBUG + fprintf(stdout, " ip cksum 2 = %x\n", (u_int) IpChecksum(pip)); + fprintf(stdout, "tcp cksum 2 = %x\n", (u_int) TcpChecksum(pip)); +#endif +} + + +/* Functions by other packet alias source files + + ProxyCheck() -- Checks whether an outgoing packet should + be proxied. + ProxyModify() -- Encodes the original destination address/port + for a packet which is to be redirected to + a proxy server. +*/ + +int +ProxyCheck(struct ip *pip, + struct in_addr *proxy_server_addr, + u_short *proxy_server_port) +{ + u_short dst_port; + struct in_addr src_addr; + struct in_addr dst_addr; + struct proxy_entry *ptr; + + src_addr = pip->ip_src; + dst_addr = pip->ip_dst; + dst_port = ((struct tcphdr *) ((char *) pip + (pip->ip_hl << 2))) + ->th_dport; + + ptr = proxyList; + while (ptr != NULL) + { + u_short proxy_port; + + proxy_port = ptr->proxy_port; + if ((dst_port == proxy_port || proxy_port == 0) + && pip->ip_p == ptr->proto + && src_addr.s_addr != ptr->server_addr.s_addr) + { + struct in_addr src_addr_masked; + struct in_addr dst_addr_masked; + + src_addr_masked.s_addr = src_addr.s_addr & ptr->src_mask.s_addr; + dst_addr_masked.s_addr = dst_addr.s_addr & ptr->dst_mask.s_addr; + + if ((src_addr_masked.s_addr == ptr->src_addr.s_addr) + && (dst_addr_masked.s_addr == ptr->dst_addr.s_addr)) + { + if ((*proxy_server_port = ptr->server_port) == 0) + *proxy_server_port = dst_port; + *proxy_server_addr = ptr->server_addr; + return ptr->proxy_type; + } + } + ptr = ptr->next; + } + + return 0; +} + +void +ProxyModify(struct alias_link *link, + struct ip *pip, + int maxpacketsize, + int proxy_type) +{ + switch (proxy_type) + { + case PROXY_TYPE_ENCODE_IPHDR: + ProxyEncodeIpHeader(pip, maxpacketsize); + break; + + case PROXY_TYPE_ENCODE_TCPSTREAM: + ProxyEncodeTcpStream(link, pip, maxpacketsize); + break; + } +} + + +/* + Public API functions +*/ + +int +PacketAliasProxyRule(char *cmd) +{ +/* + * This function takes command strings of the form: + * + * server [:] + * [port ] + * [rule n] + * [proto tcp|udp] + * [src [/n]] + * [dst [/n]] + * [type encode_tcp_stream|encode_ip_hdr|no_encode] + * + * delete + * + * Subfields can be in arbitrary order. Port numbers and addresses + * must be in either numeric or symbolic form. An optional rule number + * is used to control the order in which rules are searched. If two + * rules have the same number, then search order cannot be guaranteed, + * and the rules should be disjoint. If no rule number is specified, + * then 0 is used, and group 0 rules are always checked before any + * others. + */ + int i, n, len; + int cmd_len; + int token_count; + int state; + char *token; + char buffer[256]; + char str_port[sizeof(buffer)]; + char str_server_port[sizeof(buffer)]; + + int rule_index; + int proto; + int proxy_type; + int proxy_port; + int server_port; + struct in_addr server_addr; + struct in_addr src_addr, src_mask; + struct in_addr dst_addr, dst_mask; + struct proxy_entry *proxy_entry; + +/* Copy command line into a buffer */ + cmd_len = strlen(cmd); + if (cmd_len > (sizeof(buffer) - 1)) + return -1; + strcpy(buffer, cmd); + +/* Convert to lower case */ + len = strlen(buffer); + for (i=0; iproxy_type = proxy_type; + proxy_entry->rule_index = rule_index; + proxy_entry->proto = proto; + proxy_entry->proxy_port = htons(proxy_port); + proxy_entry->server_port = htons(server_port); + proxy_entry->server_addr = server_addr; + proxy_entry->src_addr.s_addr = src_addr.s_addr & src_mask.s_addr; + proxy_entry->dst_addr.s_addr = dst_addr.s_addr & dst_mask.s_addr; + proxy_entry->src_mask = src_mask; + proxy_entry->dst_mask = dst_mask; + + RuleAdd(proxy_entry); + + return 0; +} Property changes on: stable/3/lib/libalias/alias_proxy.c ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: stable/3/sbin/kget/Makefile =================================================================== --- stable/3/sbin/kget/Makefile (nonexistent) +++ stable/3/sbin/kget/Makefile (revision 44655) @@ -0,0 +1,8 @@ +# $Id: Makefile,v 1.4 1999/01/08 21:09:42 abial Exp $ +# +PROG= kget +CFLAGS+= -I${.CURDIR}/../../sys/i386 +SRCS= kget.c +NOMAN= yes + +.include Property changes on: stable/3/sbin/kget/Makefile ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: stable/3/sbin/kget/kget.8 =================================================================== --- stable/3/sbin/kget/kget.8 (nonexistent) +++ stable/3/sbin/kget/kget.8 (revision 44655) @@ -0,0 +1,70 @@ +.\" Copyright (c) 1999 Andrzej Bialecki +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" $Id$ +.\" +.Dd Feb 20, 1999 +.Dt KGET 8 +.Os BSD 3 +.Sh NAME +.Nm kget +.Nd print kernel change information. +.Sh SYNOPSIS +.Nm kget +.Ar filename +.Sh DESCRIPTION +The +.Nm +utility allows one to view or save any device configuration information +which was changed in userconfig (-c) session. Most typically, it is written +to a /boot/kernel.conf file which is then loaded from /boot/loader.rc +(using "load -t userconfig_script /boot/kernel.conf"), saving the user +from having to re-enter it each time the system is booted. +.Pp +.Nm +uses the +.Xt sysctl 3 +interface to retrieve data from the kernel and requires that at least +the +.Ar machdep.uc_devlist +symbol be present. If it's not, you may need to update your kernel +before using this utility. +.Pp +Usage: +.Nm +.Ar filename +.Pp +where +.Ar filename +is either a regular file (which is overwritten) or -, indicating that +standard output should be used. +.Sh BUGS +Sure to be some. +.Sh SEE ALSO +.Xr sysctl 3 +.Sh HISTORY +The +.Nm +command appeared in FreeBSD 3.1, as part of the PicoBSD distribution by +.An Andrzej Bialecki Property changes on: stable/3/sbin/kget/kget.8 ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: stable/3/sbin/kget/kget.c =================================================================== --- stable/3/sbin/kget/kget.c (nonexistent) +++ stable/3/sbin/kget/kget.c (revision 44655) @@ -0,0 +1,164 @@ +/*- + * Copyright (c) 1999 Andrzej Bialecki + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $Id: kget.c,v 1.3 1999/02/12 20:36:09 abial Exp $ + */ + +#include +#include +#include +#include +#include +#include + +struct isa_device *id; +struct pnp_cinfo *c; +char *p; + +int +main(int argc, char *argv[]) +{ + int len,i; + char *buf; + char *mib1="machdep.uc_devlist"; + char *mib2="machdep.uc_pnplist"; + char name[9]; + FILE *fout; + + if(argc<2) { + fout=stdout; + } else { + if(strcmp(argv[1],"-")==0) { + fout=stdout; + } else { + fout=fopen(argv[1],"w"); + if(fout==NULL) { + perror("opening output file"); + exit(1); + } + } + } + + /* We use sysctlbyname, because the oid is unknown (OID_AUTO) */ + + /* First, print the changes made to ISA devices */ + /* get the buffer size */ + i=sysctlbyname(mib1,NULL,&len,NULL,NULL); + if(i) { + perror("buffer sizing"); + exit(-1); + } + buf=(char *)malloc(len*sizeof(char)); + i=sysctlbyname(mib1,buf,&len,NULL,NULL); + if(i) { + perror("retrieving data"); + exit(-1); + } + i=0; + while(iid_enabled) { + fprintf(fout,"di %s%d\n",name,id->id_unit); + } else { + fprintf(fout,"en %s%d\n",name,id->id_unit); + if(id->id_iobase>0) { + fprintf(fout,"po %s%d %#x\n",name,id->id_unit, + id->id_iobase); + } + if(id->id_irq>0) { + fprintf(fout,"ir %s%d %d\n",name,id->id_unit, + ffs(id->id_irq)-1); + } + if(id->id_drq>0) { + fprintf(fout,"dr %s%d %d\n",name,id->id_unit, + id->id_drq); + } + if(id->id_maddr>0) { + fprintf(fout,"iom %s%d %#x\n",name,id->id_unit, + id->id_maddr); + } + if(id->id_msize>0) { + fprintf(fout,"ios %s%d %d\n",name,id->id_unit, + id->id_msize); + } + fprintf(fout,"f %s%d %#x\n",name,id->id_unit, + id->id_flags); + } + i+=sizeof(struct isa_device)+8; + } + free(buf); + /* Now, print the changes to PnP override table */ + /* get the buffer size */ + i=sysctlbyname(mib2,NULL,&len,NULL,NULL); + if(i) { + perror("buffer sizing"); + exit(-1); + } + buf=(char *)malloc(len*sizeof(char)); + i=sysctlbyname(mib2,buf,&len,NULL,NULL); + if(i) { + perror("retrieving data"); + exit(-1); + } + i=0; + /* Print the PnP override table. Taken from userconfig.c */ + do { + c = (struct pnp_cinfo *)(buf+i); + if (c->csn >0 && c->csn != 255) { + int pmax, mmax; + char buf1[256]; + + if(c->enable==0) { + fprintf(fout,"pnp %d %d disable\n", + c->csn, c->ldn); + continue; + } + fprintf(fout,"pnp %d %d %s irq0 %d irq1 %d drq0 %d drq1 %d", + c->csn, c->ldn, + c->override ? "os":"bios", + c->irq[0], c->irq[1], c->drq[0], c->drq[1]); + if (c->flags) + fprintf(fout," flags 0x%lx",c->flags); + pmax=0; + while(c->port[pmax]!=0 && pmax<8) { + fprintf(fout," port%d %d",pmax,c->port[pmax]); + pmax++; + } + mmax=0; + while(c->mem[mmax].base!=0 && mmax<8) { + fprintf(fout," mem%d %d",mmax,c->mem[mmax].base); + mmax++; + } + fprintf(fout,"\n"); + } + + } while ((i+=sizeof(struct pnp_cinfo)). Property changes on: stable/3/sbin/mount_ntfs/mount_ntfs.8 ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: stable/3/sbin/natd/HISTORY =================================================================== --- stable/3/sbin/natd/HISTORY (nonexistent) +++ stable/3/sbin/natd/HISTORY (revision 44655) @@ -0,0 +1,146 @@ +* Version 0.1 + + Initial version of natd. + +* Version 0.2 + + - Alias address can now be set by giving interface name with + new (-n) command-line option. + + - New Makefile based on bsd.prog.mk. + + - Error messages are written to syslog + after natd has become a daemon. + +* Version 1.0 + + - Support for using only single socket (-p option) + +* Version 1.1 + + - -a option now understands a hostname also. + - -a option no longer dumps core. + - Packet aliasing software upgraded to v. 1.9 + - added long option names (like -address) + +* Version 1.2 + + - Fixed core dump with -port option. + - Added -Wall to CFLAGS and some headers added to natd.c + to get clean compile by Brian Somers [brian@awfulhak.org]. + +* Version 1.3 + + - Aliasing address initialization is delayed until first + packet arrives. This allows natd to start up before + interface address is set. + - SIGTERM is now catched to allow kernel to close + existing connections when system is shutting down. + - SIGHUP is now catched to allow natd to refresh aliasing + address from interface, which might be useful to tun devices. + +* Version 1.4 + + - Changed command line options to be compatible with + command names used in ppp+packetAlias package (which is the + original application using aliasing routines). + + The options which map directly to packet aliasing options are: + + -unregistered_only [yes|no] + -log [yes|no] + -deny_incoming [yes|no] + -use_sockets [yes|no] + -same_ports [yes|no] + + The short option names are the same as in previous + releases. + + - Command line parser rewritten to provide more flexible + way to support new packet aliasing options. + + - Support for natd.cf configuration file has been added. + + - SIGHUP no longer causes problems when running without + interface name option. + + - When using -interface command line option, routing socket + is optionally listened for interface address changes. This + mode is activated by -dynamic option. + + - Directory tree reorganized, alias package is now a library. + + - Manual page written by Brian Somers added. + - README file updated. + +* Version 1.5 + + - Support for sending ICMP 'need fragmentation' messages + when packet size exceeds mtu size of outgoing network interface. + + - ipfw rule example in manual page fixed. + +* Version 1.6 + + - Upgrade to new packet aliasing engine (2.1) + - redirect_port and redirect_address configuration + parameters added. + - It is no longer necessary to quote complex parameter values + in command line. + - Manual page fixed (same_port -> same_ports). + +* Version 1.7 + + - A bug in command-line parsing fixed (it appeared due + to changes made in 1.6). + +* Version 1.8 + + - Fixed problems with -dynamic option. + - Added /var/run/natd.pid + +* Version 1.9 + + - Changes to manual page by + Brian Somers integrated. + - Checksum for incoming packets is always recalculated + for FreeBSD 2.2 and never recalculated for newer + versions. This should fix the problem with wrong + checksum of fragmented packets. + - Buffer space problem found by Sergio Lenzi + fixed. Natd now waits with select(2) for buffer space + to become available if write fails. + - Packet aliasing library upgraded to 2.2. + +* Version 1.10 + + - Ignored incoming packets are now dropped when + deny_incoming option is set to yes. + - Packet aliasing library upgraded to 2.4. + +* Version 1.11 + + - Code cleanup work done in FreeBSD-current development merged. + - Port numbers are now unsigned as they should always have been. + +* Version 1.12 + + - Typos in comment fixed. Copyright message added to + source & header files that were missing it. + - A small patch to libalias to make static NAT work correctly. + +* Version 2.0 + + - Upgrade to libalias 3.0 which gives: + - Transparent proxy support. + - permanent_link is now obsolete, use redirect_port instead. + - Drop support for early FreeBSD 2.2 versions + - If separate input & output sockets are being used + use them to find out packet direction instead of + normal mechanism. This can be handy in complex environments + with multiple interfaces. + - libalias is no longer part of this distribution. + - New sample configuration file + from Ted Mittelstaedt . + - PPTP redirect support by Dru Nelson added. + - Logging enhancements from Martin Machacek added. Property changes on: stable/3/sbin/natd/HISTORY ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: stable/3/sbin/natd/Makefile =================================================================== --- stable/3/sbin/natd/Makefile (nonexistent) +++ stable/3/sbin/natd/Makefile (revision 44655) @@ -0,0 +1,8 @@ +PROG = natd +SRCS = natd.c icmp.c +CFLAGS += -Wall +LDADD = -lalias +DPADD = ${LIBALIAS} +MAN8 = natd.8 + +.include Property changes on: stable/3/sbin/natd/Makefile ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: stable/3/sbin/natd/icmp.c =================================================================== --- stable/3/sbin/natd/icmp.c (nonexistent) +++ stable/3/sbin/natd/icmp.c (revision 44655) @@ -0,0 +1,127 @@ +/* + * natd - Network Address Translation Daemon for FreeBSD. + * + * This software is provided free of charge, with no + * warranty of any kind, either expressed or implied. + * Use at your own risk. + * + * You may copy, modify and distribute this software (icmp.c) freely. + * + * Ari Suutari + * + * $Id:$ + */ + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +#include + +#include + +#include "natd.h" + +int SendNeedFragIcmp (int sock, struct ip* failedDgram, int mtu) +{ + char icmpBuf[IP_MAXPACKET]; + struct ip* ip; + struct icmp* icmp; + int icmpLen; + int failBytes; + int failHdrLen; + struct sockaddr_in addr; + int wrote; + struct in_addr swap; +/* + * Don't send error if packet is + * not the first fragment. + */ + if (ntohs (failedDgram->ip_off) & ~(IP_MF | IP_DF)) + return 0; +/* + * Dont respond if failed datagram is ICMP. + */ + if (failedDgram->ip_p == IPPROTO_ICMP) + return 0; +/* + * Start building the message. + */ + ip = (struct ip*) icmpBuf; + icmp = (struct icmp*) (icmpBuf + sizeof (struct ip)); +/* + * Complete ICMP part. + */ + icmp->icmp_type = ICMP_UNREACH; + icmp->icmp_code = ICMP_UNREACH_NEEDFRAG; + icmp->icmp_cksum = 0; + icmp->icmp_void = 0; + icmp->icmp_nextmtu = htons (mtu); +/* + * Copy header + 64 bits of original datagram. + */ + failHdrLen = (failedDgram->ip_hl << 2); + failBytes = failedDgram->ip_len - failHdrLen; + if (failBytes > 8) + failBytes = 8; + + failBytes += failHdrLen; + icmpLen = ICMP_MINLEN + failBytes; + + memcpy (&icmp->icmp_ip, failedDgram, failBytes); +/* + * Calculate checksum. + */ + icmp->icmp_cksum = PacketAliasInternetChecksum ((u_short*) icmp, + icmpLen); +/* + * Add IP header using old IP header as template. + */ + memcpy (ip, failedDgram, sizeof (struct ip)); + + ip->ip_v = 4; + ip->ip_hl = 5; + ip->ip_len = htons (sizeof (struct ip) + icmpLen); + ip->ip_p = IPPROTO_ICMP; + ip->ip_tos = 0; + + swap = ip->ip_dst; + ip->ip_dst = ip->ip_src; + ip->ip_src = swap; + + PacketAliasIn ((char*) ip, IP_MAXPACKET); + + addr.sin_family = AF_INET; + addr.sin_addr = ip->ip_dst; + addr.sin_port = 0; +/* + * Put packet into processing queue. + */ + wrote = sendto (sock, + icmp, + icmpLen, + 0, + (struct sockaddr*) &addr, + sizeof addr); + + if (wrote != icmpLen) + Warn ("Cannot send ICMP message."); + + return 1; +} + + Property changes on: stable/3/sbin/natd/icmp.c ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: stable/3/sbin/natd/natd.8 =================================================================== --- stable/3/sbin/natd/natd.8 (nonexistent) +++ stable/3/sbin/natd/natd.8 (revision 44655) @@ -0,0 +1,426 @@ +.\" manual page [] for natd 1.4 +.\" $Id:$ +.Dd 15 April 1997 +.Os FreeBSD +.Dt NATD 8 +.Sh NAME +.Nm natd +.Nd +Network Address Translation Daemon +.Sh SYNOPSIS +.Nm +.Op Fl ldsmvu +.Op Fl dynamic +.Op Fl i Ar inport +.Op Fl o Ar outport +.Op Fl p Ar port +.Op Fl a Ar address +.Op Fl n Ar interface +.Op Fl f Ar configfile + +.Nm +.Op Fl log +.Op Fl deny_incoming +.Op Fl log_denied +.Op Fl use_sockets +.Op Fl same_ports +.Op Fl verbose +.Op Fl log_facility Ar facility_name +.Op Fl unregistered_only +.Op Fl dynamic +.Op Fl inport Ar inport +.Op Fl outport Ar outport +.Op Fl port Ar port +.Op Fl alias_address Ar address +.Op Fl interface Ar interface +.Op Fl config Ar configfile +.Op Fl redirect_port Ar linkspec +.Op Fl redirect_address Ar localIP publicIP +.Op Fl reverse +.Op Fl proxy_only +.Op Fl proxy_rule Ar proxyspec +.Op Fl pptpalias Ar localIP + +.Sh DESCRIPTION +This program provides a Network Address Translation facility for use +with +.Xr divert 4 +sockets under FreeBSD. Most of the command line options are available +in a single character short form or in a long form. Use of the long +form is encouraged as it makes things clearer to the casual observer. + +.Pp +.Nm Natd +normally runs in the background as a daemon. It is passed raw IP packets +as they travel into and out of the machine, and will possibly change these +before re-injecting them back into the IP packet stream. + +.Pp +.Nm Natd +changes all packets destined for another host so that their source +IP number is that of the current machine. For each packet changed +in this manner, an internal table entry is created to record this +fact. The source port number is also changed to indicate the +table entry applying to the packet. Packets that are received with +a target IP of the current host are checked against this internal +table. If an entry is found, it is used to determine the correct +target IP number and port to place in the packet. + +.Pp +The following command line options are available. +.Bl -tag -width Fl + +.It Fl log | l +Log various aliasing statistics and information to the file +.Pa /var/log/alias.log . +This file is truncated each time natd is started. + +.It Fl deny_incoming | d +Reject packets destined for the current IP number that have no entry +in the internal translation table. + +.It Fl log_denied +Log denied incoming packets via syslog (see also log_facility) + +.It Fl log_facility Ar facility_name +Use specified log facility when logging information via syslog. +Facility names are as in +.Xr syslog.conf 5 + +.It Fl use_sockets | s +Allocate a +.Xr socket 2 +in order to establish an FTP data or IRC DCC send connection. This +option uses more system resources, but guarantees successful connections +when port numbers conflict. + +.It Fl same_ports | m +Try to keep the same port number when altering outgoing packets. +With this option, protocols such as RPC will have a better chance +of working. If it is not possible to maintain the port number, it +will be silently changed as per normal. + +.It Fl verbose | v +Don't call +.Xr fork 2 +or +.Xr daemon 3 +on startup. Instead, stay attached to the controling terminal and +display all packet alterations to the standard output. This option +should only be used for debugging purposes. + +.It Fl unregistered_only | u +Only alter outgoing packets with an unregistered source address. +According to rfc 1918, unregistered source addresses are 10.0.0.0/8, +172.16.0.0/12 and 192.168.0.0/16. + +.It Fl redirect_port Ar proto targetIP:targetPORT [aliasIP:]aliasPORT [remoteIP[:remotePORT]] +Redirect incoming connections arriving to given port to another host and port. +Proto is either tcp or udp, targetIP is the desired target IP +number, targetPORT is the desired target PORT number, aliasPORT +is the requested PORT number and aliasIP is the aliasing address. +RemoteIP and remotePORT can be used to specify the connection +more accurately if necessary. +For example, the argument + +.Ar tcp inside1:telnet 6666 + +means that tcp packets destined for port 6666 on this machine will +be sent to the telnet port on the inside1 machine. + +.It Fl redirect_address Ar localIP publicIP +Redirect traffic for public IP address to a machine on the local +network. This function is known as "static NAT". Normally static NAT +is useful if your ISP has allocated a small block of IP addresses to you, +but it can even be used in the case of single address: + + redirect_address 10.0.0.8 0.0.0.0 + +The above command would redirect all incoming traffic +to machine 10.0.0.8. + +If several address aliases specify the same public address +as follows + + redirect_address 192.168.0.2 public_addr + redirect_address 192.168.0.3 public_addr + redirect_address 192.168.0.4 public_addr + +the incoming traffic will be directed to the last +translated local address (192.168.0.4), but outgoing +traffic to the first two addresses will still be aliased +to specified public address. + +.It Fl dynamic +If the +.Fl n +or +.Fl interface +option is used, +.Nm +will monitor the routing socket for alterations to the +.Ar interface +passed. If the interfaces IP number is changed, +.Nm +will dynamically alter its concept of the alias address. + +.It Fl i | inport Ar inport +Read from and write to +.Ar inport , +treating all packets as packets coming into the machine. + +.It Fl o | outport Ar outport +Read from and write to +.Ar outport , +treating all packets as packets going out of the machine. + +.It Fl p | port Ar port +Read from and write to +.Ar port , +distinguishing packets as incoming our outgoing using the rules specified in +.Xr divert 4 . +If +.Ar port +is not numeric, it is searched for in the +.Pa /etc/services +database using the +.Xr getservbyname 3 +function. If this flag is not specified, the divert port named natd will +be used as a default. An example entry in the +.Pa /etc/services +database would be: + + natd 8668/divert # Network Address Translation socket + +Refer to +.Xr services 5 +for further details. + +.It Fl a | alias_address Ar address +Use +.Ar address +as the alias address. If this option is not specified, the +.Fl n +or +.Fl interface +option must be used. The specified address should be the address assigned +to the public network interface. +.Pp +All data passing out through this addresses interface will be rewritten +with a source address equal to +.Ar address . +All data arriving at the interface from outside will be checked to +see if it matches any already-aliased outgoing connection. If it does, +the packet is altered accordingly. If not, all +.Fl redirect_port +and +.Fl redirect_address +assignments are checked and actioned. If no other action can be made, +and if +.Fl deny_incoming +is not specified, the packet is delivered to the local machine and port +as specified in the packet. + +.It Fl n | interface Ar interface +Use +.Ar interface +to determine the alias address. If there is a possibility that the +IP number associated with +.Ar interface +may change, the +.Fl dynamic +flag should also be used. If this option is not specified, the +.Fl a +or +.Fl alias_address +flag must be used. +.Pp +The specified +.Ar interface +must be the public network interface. +.It Fl f | config Ar configfile +Read configuration from +.Ar configfile . +.Ar Configfile +contains a list of options, one per line in the same form as the +long form of the above command line flags. For example, the line + + alias_address 158.152.17.1 + +would specify an alias address of 158.152.17.1. Options that don't +take an argument are specified with an option of +.Ar yes +or +.Ar no +in the configuration file. For example, the line + + log yes + +is synonomous with +.Fl log . +Empty lines and lines beginning with '#' are ignored. + +.It Fl reverse +Reverse operation of natd. This can be useful in some +transparent proxying situations when outgoing traffic +is redirected to the local machine and natd is running on the +incoming interface (it usually runs on the outgoing interface). + +.It Fl proxy_only +Force natd to perform transparent proxying +only. Normal address translation is not performed. + +.It Fl proxy_rule Ar [type encode_ip_hdr|encode_tcp_stream] port xxxx server a.b.c.d:yyyy +Enable transparent proxying. Packets with the given port going through this +host to any other host are redirected to the given server and port. +Optionally, the original target address can be encoded into the packet. Use +.Dq encode_ip_hdr +to put this information into the IP option field or +.Dq encode_tcp_stream +to inject the data into the beginning of the TCP stream. + +.It Fl pptpalias Ar localIP +Allow PPTP packets to go to the defined localIP address. PPTP is a VPN or secure +IP tunneling technology being developed primarily by Microsoft. For its encrypted traffic, +it uses an old IP encapsulation protocol called GRE (47). This +natd option will translate any traffic of this protocol to a +single, specified IP address. This would allow either one client or one server +to be serviced with natd. If you are setting up a server, don't forget to allow the TCP traffic +for the PPTP setup. For a client or server, you must allow GRE (protocol 47) if you have firewall lists active. + +.El + +.Sh RUNNING NATD +The following steps are necessary before attempting to run +.Nm natd : + +.Bl -enum +.It +Get FreeBSD version 2.2 or higher. Versions before this do not support +.Xr divert 4 +sockets. + +.It +Build a custom kernel with the following options: + + options IPFIREWALL + options IPDIVERT + +Refer to the handbook for detailed instructions on building a custom +kernel. + +.It +Ensure that your machine is acting as a gateway. This can be done by +specifying the line + + gateway_enable=YES + +in +.Pa /etc/rc.conf , +or using the command + + sysctl -w net.inet.ip.forwarding=1 + +.It +If you wish to use the +.Fl n +or +.Fl interface +flags, make sure that your interface is already configured. If, for +example, you wish to specify tun0 as your +.Ar interface , +and you're using +.Xr ppp 8 +on that interface, you must make sure that you start +.Nm ppp +prior to starting +.Nm natd . + +.It +Create an entry in +.Pa /etc/services : + + natd 8668/divert # Network Address Translation socket + +This gives a default for the +.Fl p +or +.Fl port +flag. + +.El +.Pp +Running +.Nm +is fairly straight forward. The line + + natd -interface ed0 + +should suffice in most cases (substituting the correct interface name). Once +.Nm +is running, you must ensure that traffic is diverted to natd: + +.Bl -enum +.It +You will need to adjust the +.Pa /etc/rc.firewall +script to taste. If you're not interested in having a firewall, the +following lines will do: + + /sbin/ipfw -f flush + /sbin/ipfw add divert natd all from any to any via ed0 + /sbin/ipfw add pass all from any to any + +The second line depends on your interface (change ed0 as appropriate) +and assumes that you've updated +.Pa /etc/services +with the natd entry as above. If you specify real firewall rules, it's +best to specify line 2 at the start of the script so that +.Nm +sees all packets before they are dropped by the firewall. The firewall +rules will be run again on each packet after translation by +.Nm natd , +minus any divert rules. + +.It +Enable your firewall by setting + + firewall_enable=YES + +in +.Pa /etc/rc.conf . +This tells the system startup scripts to run the +.Pa /etc/rc.firewall +script. If you don't wish to reboot now, just run this by hand from the +console. NEVER run this from a virtual session unless you put it into +the background. If you do, you'll lock yourself out after the flush +takes place, and execution of +.Pa /etc/rc.firewall +will stop at this point - blocking all accesses permanently. Running +the script in the background should be enough to prevent this disaster. + +.El + +.Sh SEE ALSO +.Xr getservbyname 2 , +.Xr socket 2 , +.Xr divert 4 , +.Xr services 5 , +.Xr ipfw 8 + +.Sh AUTHORS +This program is the result of the efforts of many people at different +times: + +.An Archie Cobbs Aq archie@whistle.com +(divert sockets) +.An Charles Mott Aq cmott@srv.net +(packet aliasing) +.An Eivind Eklund Aq perhaps@yes.no +(IRC support & misc additions) +.An Ari Suutari Aq suutari@iki.fi +(natd) +.An Dru Nelson Aq dnelson@redwoodsoft.com +(PPTP support) +.An Brian Somers Aq brian@awfulhak.org +(glue) Property changes on: stable/3/sbin/natd/natd.8 ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: stable/3/sbin/natd/natd.c =================================================================== --- stable/3/sbin/natd/natd.c (nonexistent) +++ stable/3/sbin/natd/natd.c (revision 44655) @@ -0,0 +1,1477 @@ +/* + * natd - Network Address Translation Daemon for FreeBSD. + * + * This software is provided free of charge, with no + * warranty of any kind, either expressed or implied. + * Use at your own risk. + * + * You may copy, modify and distribute this software (natd.c) freely. + * + * Ari Suutari + * + * $Id: natd.c,v 1.10 1999/03/07 18:23:56 brian Exp $ + */ + +#define SYSLOG_NAMES + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "natd.h" + +/* + * Default values for input and output + * divert socket ports. + */ + +#define DEFAULT_SERVICE "natd" + +/* + * Function prototypes. + */ + +static void DoAliasing (int fd, int direction); +static void DaemonMode (); +static void HandleRoutingInfo (int fd); +static void Usage (); +static char* FormatPacket (struct ip*); +static void PrintPacket (struct ip*); +static void SyslogPacket (struct ip*, int priority, char *label); +static void SetAliasAddressFromIfName (char* ifName); +static void InitiateShutdown (); +static void Shutdown (); +static void RefreshAddr (); +static void ParseOption (char* option, char* parms, int cmdLine); +static void ReadConfigFile (char* fileName); +static void SetupPortRedirect (char* parms); +static void SetupAddressRedirect (char* parms); +static void SetupPptpAlias (char* parms); +static void StrToAddr (char* str, struct in_addr* addr); +static u_short StrToPort (char* str, char* proto); +static int StrToProto (char* str); +static u_short StrToAddrAndPort (char* str, struct in_addr* addr, char* proto); +static void ParseArgs (int argc, char** argv); +static void FlushPacketBuffer (int fd); + +/* + * Globals. + */ + +static int verbose; +static int background; +static int running; +static int assignAliasAddr; +static char* ifName; +static int ifIndex; +static u_short inPort; +static u_short outPort; +static u_short inOutPort; +static struct in_addr aliasAddr; +static int dynamicMode; +static int ifMTU; +static int aliasOverhead; +static int icmpSock; +static char packetBuf[IP_MAXPACKET]; +static int packetLen; +static struct sockaddr_in packetAddr; +static int packetSock; +static int packetDirection; +static int dropIgnoredIncoming; +static int logDropped; +static int logFacility; + +int main (int argc, char** argv) +{ + int divertIn; + int divertOut; + int divertInOut; + int routeSock; + struct sockaddr_in addr; + fd_set readMask; + fd_set writeMask; + int fdMax; +/* + * Initialize packet aliasing software. + * Done already here to be able to alter option bits + * during command line and configuration file processing. + */ + PacketAliasInit (); +/* + * Parse options. + */ + inPort = 0; + outPort = 0; + verbose = 0; + inOutPort = 0; + ifName = NULL; + ifMTU = -1; + background = 0; + running = 1; + assignAliasAddr = 0; + aliasAddr.s_addr = INADDR_NONE; + aliasOverhead = 12; + dynamicMode = 0; + logDropped = 0; + logFacility = LOG_DAEMON; +/* + * Mark packet buffer empty. + */ + packetSock = -1; + packetDirection = DONT_KNOW; + + ParseArgs (argc, argv); +/* + * Open syslog channel. + */ + openlog ("natd", LOG_CONS | LOG_PID, logFacility); +/* + * Check that valid aliasing address has been given. + */ + if (aliasAddr.s_addr == INADDR_NONE && ifName == NULL) + errx (1, "aliasing address not given"); + + if (aliasAddr.s_addr != INADDR_NONE && ifName != NULL) + errx (1, "both alias address and interface " + "name are not allowed"); +/* + * Check that valid port number is known. + */ + if (inPort != 0 || outPort != 0) + if (inPort == 0 || outPort == 0) + errx (1, "both input and output ports are required"); + + if (inPort == 0 && outPort == 0 && inOutPort == 0) + ParseOption ("port", DEFAULT_SERVICE, 0); + +/* + * Check if ignored packets should be dropped. + */ + dropIgnoredIncoming = PacketAliasSetMode (0, 0); + dropIgnoredIncoming &= PKT_ALIAS_DENY_INCOMING; +/* + * Create divert sockets. Use only one socket if -p was specified + * on command line. Otherwise, create separate sockets for + * outgoing and incoming connnections. + */ + if (inOutPort) { + + divertInOut = socket (PF_INET, SOCK_RAW, IPPROTO_DIVERT); + if (divertInOut == -1) + Quit ("Unable to create divert socket."); + + divertIn = -1; + divertOut = -1; +/* + * Bind socket. + */ + + addr.sin_family = AF_INET; + addr.sin_addr.s_addr = INADDR_ANY; + addr.sin_port = inOutPort; + + if (bind (divertInOut, + (struct sockaddr*) &addr, + sizeof addr) == -1) + Quit ("Unable to bind divert socket."); + } + else { + + divertIn = socket (PF_INET, SOCK_RAW, IPPROTO_DIVERT); + if (divertIn == -1) + Quit ("Unable to create incoming divert socket."); + + divertOut = socket (PF_INET, SOCK_RAW, IPPROTO_DIVERT); + if (divertOut == -1) + Quit ("Unable to create outgoing divert socket."); + + divertInOut = -1; + +/* + * Bind divert sockets. + */ + + addr.sin_family = AF_INET; + addr.sin_addr.s_addr = INADDR_ANY; + addr.sin_port = inPort; + + if (bind (divertIn, + (struct sockaddr*) &addr, + sizeof addr) == -1) + Quit ("Unable to bind incoming divert socket."); + + addr.sin_family = AF_INET; + addr.sin_addr.s_addr = INADDR_ANY; + addr.sin_port = outPort; + + if (bind (divertOut, + (struct sockaddr*) &addr, + sizeof addr) == -1) + Quit ("Unable to bind outgoing divert socket."); + } +/* + * Create routing socket if interface name specified. + */ + if (ifName && dynamicMode) { + + routeSock = socket (PF_ROUTE, SOCK_RAW, 0); + if (routeSock == -1) + Quit ("Unable to create routing info socket."); + } + else + routeSock = -1; +/* + * Create socket for sending ICMP messages. + */ + icmpSock = socket (AF_INET, SOCK_RAW, IPPROTO_ICMP); + if (icmpSock == -1) + Quit ("Unable to create ICMP socket."); +/* + * Become a daemon unless verbose mode was requested. + */ + if (!verbose) + DaemonMode (); +/* + * Catch signals to manage shutdown and + * refresh of interface address. + */ + signal (SIGTERM, InitiateShutdown); + signal (SIGHUP, RefreshAddr); +/* + * Set alias address if it has been given. + */ + if (aliasAddr.s_addr != INADDR_NONE) + PacketAliasSetAddress (aliasAddr); +/* + * We need largest descriptor number for select. + */ + + fdMax = -1; + + if (divertIn > fdMax) + fdMax = divertIn; + + if (divertOut > fdMax) + fdMax = divertOut; + + if (divertInOut > fdMax) + fdMax = divertInOut; + + if (routeSock > fdMax) + fdMax = routeSock; + + while (running) { + + if (divertInOut != -1 && !ifName && packetSock == -1) { +/* + * When using only one socket, just call + * DoAliasing repeatedly to process packets. + */ + DoAliasing (divertInOut, DONT_KNOW); + continue; + } +/* + * Build read mask from socket descriptors to select. + */ + FD_ZERO (&readMask); + FD_ZERO (&writeMask); + +/* + * If there is unsent packet in buffer, use select + * to check when socket comes writable again. + */ + if (packetSock != -1) { + + FD_SET (packetSock, &writeMask); + } + else { +/* + * No unsent packet exists - safe to check if + * new ones are available. + */ + if (divertIn != -1) + FD_SET (divertIn, &readMask); + + if (divertOut != -1) + FD_SET (divertOut, &readMask); + + if (divertInOut != -1) + FD_SET (divertInOut, &readMask); + } +/* + * Routing info is processed always. + */ + if (routeSock != -1) + FD_SET (routeSock, &readMask); + + if (select (fdMax + 1, + &readMask, + &writeMask, + NULL, + NULL) == -1) { + + if (errno == EINTR) + continue; + + Quit ("Select failed."); + } + + if (packetSock != -1) + if (FD_ISSET (packetSock, &writeMask)) + FlushPacketBuffer (packetSock); + + if (divertIn != -1) + if (FD_ISSET (divertIn, &readMask)) + DoAliasing (divertIn, INPUT); + + if (divertOut != -1) + if (FD_ISSET (divertOut, &readMask)) + DoAliasing (divertOut, OUTPUT); + + if (divertInOut != -1) + if (FD_ISSET (divertInOut, &readMask)) + DoAliasing (divertInOut, DONT_KNOW); + + if (routeSock != -1) + if (FD_ISSET (routeSock, &readMask)) + HandleRoutingInfo (routeSock); + } + + if (background) + unlink (PIDFILE); + + return 0; +} + +static void DaemonMode () +{ + FILE* pidFile; + + daemon (0, 0); + background = 1; + + pidFile = fopen (PIDFILE, "w"); + if (pidFile) { + + fprintf (pidFile, "%d\n", getpid ()); + fclose (pidFile); + } +} + +static void ParseArgs (int argc, char** argv) +{ + int arg; + char* parm; + char* opt; + char parmBuf[256]; + + for (arg = 1; arg < argc; arg++) { + + opt = argv[arg]; + if (*opt != '-') { + + warnx ("invalid option %s", opt); + Usage (); + } + + parm = NULL; + parmBuf[0] = '\0'; + + while (arg < argc - 1) { + + if (argv[arg + 1][0] == '-') + break; + + if (parm) + strcat (parmBuf, " "); + + ++arg; + parm = parmBuf; + strcat (parmBuf, argv[arg]); + } + + ParseOption (opt + 1, parm, 1); + } +} + +static void DoAliasing (int fd, int direction) +{ + int bytes; + int origBytes; + int status; + int addrSize; + struct ip* ip; + + if (assignAliasAddr) { + + SetAliasAddressFromIfName (ifName); + assignAliasAddr = 0; + } +/* + * Get packet from socket. + */ + addrSize = sizeof packetAddr; + origBytes = recvfrom (fd, + packetBuf, + sizeof packetBuf, + 0, + (struct sockaddr*) &packetAddr, + &addrSize); + + if (origBytes == -1) { + + if (errno != EINTR) + Warn ("read from divert socket failed"); + + return; + } +/* + * This is a IP packet. + */ + ip = (struct ip*) packetBuf; + if (direction == DONT_KNOW) + if (packetAddr.sin_addr.s_addr == INADDR_ANY) + direction = OUTPUT; + else + direction = INPUT; + + if (verbose) { + +/* + * Print packet direction and protocol type. + */ + printf (direction == OUTPUT ? "Out " : "In "); + + switch (ip->ip_p) { + case IPPROTO_TCP: + printf ("[TCP] "); + break; + + case IPPROTO_UDP: + printf ("[UDP] "); + break; + + case IPPROTO_ICMP: + printf ("[ICMP] "); + break; + + default: + printf ("[%d] ", ip->ip_p); + break; + } +/* + * Print addresses. + */ + PrintPacket (ip); + } + + if (direction == OUTPUT) { +/* + * Outgoing packets. Do aliasing. + */ + PacketAliasOut (packetBuf, IP_MAXPACKET); + } + else { + +/* + * Do aliasing. + */ + status = PacketAliasIn (packetBuf, IP_MAXPACKET); + if (status == PKT_ALIAS_IGNORED && + dropIgnoredIncoming) { + + if (verbose) + printf (" dropped.\n"); + + if (logDropped) + SyslogPacket (ip, LOG_WARNING, "denied"); + + return; + } + } +/* + * Length might have changed during aliasing. + */ + bytes = ntohs (ip->ip_len); +/* + * Update alias overhead size for outgoing packets. + */ + if (direction == OUTPUT && + bytes - origBytes > aliasOverhead) + aliasOverhead = bytes - origBytes; + + if (verbose) { + +/* + * Print addresses after aliasing. + */ + printf (" aliased to\n"); + printf (" "); + PrintPacket (ip); + printf ("\n"); + } + + packetLen = bytes; + packetSock = fd; + packetDirection = direction; + + FlushPacketBuffer (fd); +} + +static void FlushPacketBuffer (int fd) +{ + int wrote; + char msgBuf[80]; +/* + * Put packet back for processing. + */ + wrote = sendto (fd, + packetBuf, + packetLen, + 0, + (struct sockaddr*) &packetAddr, + sizeof packetAddr); + + if (wrote != packetLen) { +/* + * If buffer space is not available, + * just return. Main loop will take care of + * retrying send when space becomes available. + */ + if (errno == ENOBUFS) + return; + + if (errno == EMSGSIZE) { + + if (packetDirection == OUTPUT && + ifMTU != -1) + SendNeedFragIcmp (icmpSock, + (struct ip*) packetBuf, + ifMTU - aliasOverhead); + } + else { + + sprintf (msgBuf, "failed to write packet back"); + Warn (msgBuf); + } + } + + packetSock = -1; +} + +static void HandleRoutingInfo (int fd) +{ + int bytes; + struct if_msghdr ifMsg; +/* + * Get packet from socket. + */ + bytes = read (fd, &ifMsg, sizeof ifMsg); + if (bytes == -1) { + + Warn ("read from routing socket failed"); + return; + } + + if (ifMsg.ifm_version != RTM_VERSION) { + + Warn ("unexpected packet read from routing socket"); + return; + } + + if (verbose) + printf ("Routing message %X received.\n", ifMsg.ifm_type); + + if (ifMsg.ifm_type != RTM_NEWADDR) + return; + + if (verbose && ifMsg.ifm_index == ifIndex) + printf ("Interface address has changed.\n"); + + if (ifMsg.ifm_index == ifIndex) + assignAliasAddr = 1; +} + +static void PrintPacket (struct ip* ip) +{ + printf ("%s", FormatPacket (ip)); +} + +static void SyslogPacket (struct ip* ip, int priority, char *label) +{ + syslog (priority, "%s %s", label, FormatPacket (ip)); +} + +static char* FormatPacket (struct ip* ip) +{ + static char buf[256]; + struct tcphdr* tcphdr; + struct udphdr* udphdr; + struct icmp* icmphdr; + char src[20]; + char dst[20]; + + strcpy (src, inet_ntoa (ip->ip_src)); + strcpy (dst, inet_ntoa (ip->ip_dst)); + + switch (ip->ip_p) { + case IPPROTO_TCP: + tcphdr = (struct tcphdr*) ((char*) ip + (ip->ip_hl << 2)); + sprintf (buf, "[TCP] %s:%d -> %s:%d", + src, + ntohs (tcphdr->th_sport), + dst, + ntohs (tcphdr->th_dport)); + break; + + case IPPROTO_UDP: + udphdr = (struct udphdr*) ((char*) ip + (ip->ip_hl << 2)); + sprintf (buf, "[UDP] %s:%d -> %s:%d", + src, + ntohs (udphdr->uh_sport), + dst, + ntohs (udphdr->uh_dport)); + break; + + case IPPROTO_ICMP: + icmphdr = (struct icmp*) ((char*) ip + (ip->ip_hl << 2)); + sprintf (buf, "[ICMP] %s -> %s %u(%u)", + src, + dst, + icmphdr->icmp_type, + icmphdr->icmp_code); + break; + + default: + sprintf (buf, "[%d] %s -> %s ", ip->ip_p, src, dst); + break; + } + + return buf; +} + +static void SetAliasAddressFromIfName (char* ifName) +{ + struct ifconf cf; + struct ifreq buf[32]; + char msg[80]; + struct ifreq* ifPtr; + int extra; + int helperSock; + int bytes; + struct sockaddr_in* addr; + int found; + struct ifreq req; + char last[10]; +/* + * Create a dummy socket to access interface information. + */ + helperSock = socket (AF_INET, SOCK_DGRAM, 0); + if (helperSock == -1) { + + Quit ("Failed to create helper socket."); + exit (1); + } + + cf.ifc_len = sizeof (buf); + cf.ifc_req = buf; +/* + * Get interface data. + */ + if (ioctl (helperSock, SIOCGIFCONF, &cf) == -1) { + + Quit ("Ioctl SIOCGIFCONF failed."); + exit (1); + } + + ifIndex = 0; + ifPtr = buf; + bytes = cf.ifc_len; + found = 0; + last[0] = '\0'; +/* + * Loop through interfaces until one with + * given name is found. This is done to + * find correct interface index for routing + * message processing. + */ + while (bytes) { + + if (ifPtr->ifr_addr.sa_family == AF_INET && + !strcmp (ifPtr->ifr_name, ifName)) { + + found = 1; + break; + } + + if (strcmp (last, ifPtr->ifr_name)) { + + strcpy (last, ifPtr->ifr_name); + ++ifIndex; + } + + extra = ifPtr->ifr_addr.sa_len - sizeof (struct sockaddr); + + ifPtr++; + ifPtr = (struct ifreq*) ((char*) ifPtr + extra); + bytes -= sizeof (struct ifreq) + extra; + } + + if (!found) { + + close (helperSock); + sprintf (msg, "Unknown interface name %s.\n", ifName); + Quit (msg); + } +/* + * Get MTU size. + */ + strcpy (req.ifr_name, ifName); + + if (ioctl (helperSock, SIOCGIFMTU, &req) == -1) + Quit ("Cannot get interface mtu size."); + + ifMTU = req.ifr_mtu; +/* + * Get interface address. + */ + if (ioctl (helperSock, SIOCGIFADDR, &req) == -1) + Quit ("Cannot get interface address."); + + addr = (struct sockaddr_in*) &req.ifr_addr; + PacketAliasSetAddress (addr->sin_addr); + syslog (LOG_INFO, "Aliasing to %s, mtu %d bytes", + inet_ntoa (addr->sin_addr), + ifMTU); + + close (helperSock); +} + +void Quit (char* msg) +{ + Warn (msg); + exit (1); +} + +void Warn (char* msg) +{ + if (background) + syslog (LOG_ALERT, "%s (%m)", msg); + else + warn (msg); +} + +static void RefreshAddr () +{ + signal (SIGHUP, RefreshAddr); + if (ifName) + assignAliasAddr = 1; +} + +static void InitiateShutdown () +{ +/* + * Start timer to allow kernel gracefully + * shutdown existing connections when system + * is shut down. + */ + signal (SIGALRM, Shutdown); + alarm (10); +} + +static void Shutdown () +{ + running = 0; +} + +/* + * Different options recognized by this program. + */ + +enum Option { + + PacketAliasOption, + Verbose, + InPort, + OutPort, + Port, + AliasAddress, + InterfaceName, + RedirectPort, + RedirectAddress, + ConfigFile, + DynamicMode, + PptpAlias, + ProxyRule, + LogDenied, + LogFacility +}; + +enum Param { + + YesNo, + Numeric, + String, + None, + Address, + Service +}; + +/* + * Option information structure (used by ParseOption). + */ + +struct OptionInfo { + + enum Option type; + int packetAliasOpt; + enum Param parm; + char* parmDescription; + char* description; + char* name; + char* shortName; +}; + +/* + * Table of known options. + */ + +static struct OptionInfo optionTable[] = { + + { PacketAliasOption, + PKT_ALIAS_UNREGISTERED_ONLY, + YesNo, + "[yes|no]", + "alias only unregistered addresses", + "unregistered_only", + "u" }, + + { PacketAliasOption, + PKT_ALIAS_LOG, + YesNo, + "[yes|no]", + "enable logging", + "log", + "l" }, + + { PacketAliasOption, + PKT_ALIAS_PROXY_ONLY, + YesNo, + "[yes|no]", + "proxy only", + "proxy_only", + NULL }, + + { PacketAliasOption, + PKT_ALIAS_REVERSE, + YesNo, + "[yes|no]", + "operate in reverse mode", + "reverse", + NULL }, + + { PacketAliasOption, + PKT_ALIAS_DENY_INCOMING, + YesNo, + "[yes|no]", + "allow incoming connections", + "deny_incoming", + "d" }, + + { PacketAliasOption, + PKT_ALIAS_USE_SOCKETS, + YesNo, + "[yes|no]", + "use sockets to inhibit port conflict", + "use_sockets", + "s" }, + + { PacketAliasOption, + PKT_ALIAS_SAME_PORTS, + YesNo, + "[yes|no]", + "try to keep original port numbers for connections", + "same_ports", + "m" }, + + { Verbose, + 0, + YesNo, + "[yes|no]", + "verbose mode, dump packet information", + "verbose", + "v" }, + + { DynamicMode, + 0, + YesNo, + "[yes|no]", + "dynamic mode, automatically detect interface address changes", + "dynamic", + NULL }, + + { InPort, + 0, + Service, + "number|service_name", + "set port for incoming packets", + "in_port", + "i" }, + + { OutPort, + 0, + Service, + "number|service_name", + "set port for outgoing packets", + "out_port", + "o" }, + + { Port, + 0, + Service, + "number|service_name", + "set port (defaults to natd/divert)", + "port", + "p" }, + + { AliasAddress, + 0, + Address, + "x.x.x.x", + "address to use for aliasing", + "alias_address", + "a" }, + + { InterfaceName, + 0, + String, + "network_if_name", + "take aliasing address from interface", + "interface", + "n" }, + + { ProxyRule, + 0, + String, + "[type encode_ip_hdr|encode_tcp_stream] port xxxx server " + "a.b.c.d:yyyy", + "add transparent proxying / destination NAT", + "proxy_rule", + NULL }, + + { RedirectPort, + 0, + String, + "tcp|udp local_addr:local_port [public_addr:]public_port" + " [remote_addr[:remote_port]]", + "redirect a port for incoming traffic", + "redirect_port", + NULL }, + + { RedirectAddress, + 0, + String, + "local_addr public_addr", + "define mapping between local and public addresses", + "redirect_address", + NULL }, + + { PptpAlias, + 0, + String, + "src", + "define inside machine for PPTP traffic", + "pptpalias", + NULL }, + + { ConfigFile, + 0, + String, + "file_name", + "read options from configuration file", + "config", + "f" }, + + { LogDenied, + 0, + YesNo, + "[yes|no]", + "enable logging of denied incoming packets", + "log_denied", + NULL }, + + { LogFacility, + 0, + String, + "facility", + "name of syslog facility to use for logging", + "log_facility", + NULL } + +}; + +static void ParseOption (char* option, char* parms, int cmdLine) +{ + int i; + struct OptionInfo* info; + int yesNoValue; + int aliasValue; + int numValue; + u_short uNumValue; + char* strValue; + struct in_addr addrValue; + int max; + char* end; + CODE* fac_record = NULL; +/* + * Find option from table. + */ + max = sizeof (optionTable) / sizeof (struct OptionInfo); + for (i = 0, info = optionTable; i < max; i++, info++) { + + if (!strcmp (info->name, option)) + break; + + if (info->shortName) + if (!strcmp (info->shortName, option)) + break; + } + + if (i >= max) { + + warnx ("unknown option %s", option); + Usage (); + } + + uNumValue = 0; + yesNoValue = 0; + numValue = 0; + strValue = NULL; +/* + * Check parameters. + */ + switch (info->parm) { + case YesNo: + if (!parms) + parms = "yes"; + + if (!strcmp (parms, "yes")) + yesNoValue = 1; + else + if (!strcmp (parms, "no")) + yesNoValue = 0; + else + errx (1, "%s needs yes/no parameter", option); + break; + + case Service: + if (!parms) + errx (1, "%s needs service name or " + "port number parameter", + option); + + uNumValue = StrToPort (parms, "divert"); + break; + + case Numeric: + if (parms) + numValue = strtol (parms, &end, 10); + else + end = parms; + + if (end == parms) + errx (1, "%s needs numeric parameter", option); + break; + + case String: + strValue = parms; + if (!strValue) + errx (1, "%s needs parameter", option); + break; + + case None: + if (parms) + errx (1, "%s does not take parameters", option); + break; + + case Address: + if (!parms) + errx (1, "%s needs address/host parameter", option); + + StrToAddr (parms, &addrValue); + break; + } + + switch (info->type) { + case PacketAliasOption: + + aliasValue = yesNoValue ? info->packetAliasOpt : 0; + PacketAliasSetMode (aliasValue, info->packetAliasOpt); + break; + + case Verbose: + verbose = yesNoValue; + break; + + case DynamicMode: + dynamicMode = yesNoValue; + break; + + case InPort: + inPort = uNumValue; + break; + + case OutPort: + outPort = uNumValue; + break; + + case Port: + inOutPort = uNumValue; + break; + + case AliasAddress: + memcpy (&aliasAddr, &addrValue, sizeof (struct in_addr)); + break; + + case RedirectPort: + SetupPortRedirect (strValue); + break; + + case RedirectAddress: + SetupAddressRedirect (strValue); + break; + + case PptpAlias: + SetupPptpAlias (strValue); + break; + + case ProxyRule: + PacketAliasProxyRule (strValue); + break; + + case InterfaceName: + if (ifName) + free (ifName); + + ifName = strdup (strValue); + assignAliasAddr = 1; + break; + + case ConfigFile: + ReadConfigFile (strValue); + break; + + case LogDenied: + logDropped = 1; + break; + + case LogFacility: + + fac_record = facilitynames; + while (fac_record->c_name != NULL) { + + if (!strcmp (fac_record->c_name, strValue)) { + + logFacility = fac_record->c_val; + break; + + } + else + fac_record++; + } + + if(fac_record->c_name == NULL) + errx(1, "Unknown log facility name: %s", strValue); + + break; + } +} + +void ReadConfigFile (char* fileName) +{ + FILE* file; + char buf[128]; + char* ptr; + char* option; + + file = fopen (fileName, "r"); + if (!file) { + + sprintf (buf, "Cannot open config file %s.\n", fileName); + Quit (buf); + } + + while (fgets (buf, sizeof (buf), file)) { + + ptr = strchr (buf, '\n'); + if (!ptr) + errx (1, "config line too long: %s", buf); + + *ptr = '\0'; + if (buf[0] == '#') + continue; + + ptr = buf; +/* + * Skip white space at beginning of line. + */ + while (*ptr && isspace (*ptr)) + ++ptr; + + if (*ptr == '\0') + continue; +/* + * Extract option name. + */ + option = ptr; + while (*ptr && !isspace (*ptr)) + ++ptr; + + if (*ptr != '\0') { + + *ptr = '\0'; + ++ptr; + } +/* + * Skip white space between name and parms. + */ + while (*ptr && isspace (*ptr)) + ++ptr; + + ParseOption (option, *ptr ? ptr : NULL, 0); + } + + fclose (file); +} + +static void Usage () +{ + int i; + int max; + struct OptionInfo* info; + + fprintf (stderr, "Recognized options:\n\n"); + + max = sizeof (optionTable) / sizeof (struct OptionInfo); + for (i = 0, info = optionTable; i < max; i++, info++) { + + fprintf (stderr, "-%-20s %s\n", info->name, + info->parmDescription); + + if (info->shortName) + fprintf (stderr, "-%-20s %s\n", info->shortName, + info->parmDescription); + + fprintf (stderr, " %s\n\n", info->description); + } + + exit (1); +} + +void SetupPptpAlias (char* parms) +{ + char buf[128]; + char* ptr; + struct in_addr srcAddr; + + strcpy (buf, parms); + +/* + * Extract source address. + */ + ptr = strtok (buf, " \t"); + if (!ptr) + errx(1, "pptpalias: missing src address"); + + StrToAddr (ptr, &srcAddr); + PacketAliasPptp (srcAddr); +} + +void SetupPortRedirect (char* parms) +{ + char buf[128]; + char* ptr; + struct in_addr localAddr; + struct in_addr publicAddr; + struct in_addr remoteAddr; + u_short localPort; + u_short publicPort; + u_short remotePort; + int proto; + char* protoName; + char* separator; + + strcpy (buf, parms); +/* + * Extract protocol. + */ + protoName = strtok (buf, " \t"); + if (!protoName) + errx (1, "redirect_port: missing protocol"); + + proto = StrToProto (protoName); +/* + * Extract local address. + */ + ptr = strtok (NULL, " \t"); + if (!ptr) + errx (1, "redirect_port: missing local address"); + + localPort = StrToAddrAndPort (ptr, &localAddr, protoName); +/* + * Extract public port and optinally address. + */ + ptr = strtok (NULL, " \t"); + if (!ptr) + errx (1, "redirect_port: missing public port"); + + separator = strchr (ptr, ':'); + if (separator) + publicPort = StrToAddrAndPort (ptr, &publicAddr, protoName); + else { + + publicAddr.s_addr = INADDR_ANY; + publicPort = StrToPort (ptr, protoName); + } + +/* + * Extract remote address and optionally port. + */ + ptr = strtok (NULL, " \t"); + if (ptr) { + + + separator = strchr (ptr, ':'); + if (separator) + remotePort = StrToAddrAndPort (ptr, + &remoteAddr, + protoName); + else { + + remotePort = 0; + StrToAddr (ptr, &remoteAddr); + } + } + else { + + remotePort = 0; + remoteAddr.s_addr = INADDR_ANY; + } + + PacketAliasRedirectPort (localAddr, + localPort, + remoteAddr, + remotePort, + publicAddr, + publicPort, + proto); +} + +void SetupAddressRedirect (char* parms) +{ + char buf[128]; + char* ptr; + struct in_addr localAddr; + struct in_addr publicAddr; + + strcpy (buf, parms); +/* + * Extract local address. + */ + ptr = strtok (buf, " \t"); + if (!ptr) + errx (1, "redirect_address: missing local address"); + + StrToAddr (ptr, &localAddr); +/* + * Extract public address. + */ + ptr = strtok (NULL, " \t"); + if (!ptr) + errx (1, "redirect_address: missing public address"); + + StrToAddr (ptr, &publicAddr); + PacketAliasRedirectAddr (localAddr, publicAddr); +} + +void StrToAddr (char* str, struct in_addr* addr) +{ + struct hostent* hp; + + if (inet_aton (str, addr)) + return; + + hp = gethostbyname (str); + if (!hp) + errx (1, "unknown host %s", str); + + memcpy (addr, hp->h_addr, sizeof (struct in_addr)); +} + +u_short StrToPort (char* str, char* proto) +{ + u_short port; + struct servent* sp; + char* end; + + port = strtol (str, &end, 10); + if (end != str) + return htons (port); + + sp = getservbyname (str, proto); + if (!sp) + errx (1, "unknown service %s/%s", str, proto); + + return sp->s_port; +} + +int StrToProto (char* str) +{ + if (!strcmp (str, "tcp")) + return IPPROTO_TCP; + + if (!strcmp (str, "udp")) + return IPPROTO_UDP; + + errx (1, "unknown protocol %s. Expected tcp or udp", str); +} + +u_short StrToAddrAndPort (char* str, struct in_addr* addr, char* proto) +{ + char* ptr; + + ptr = strchr (str, ':'); + if (!ptr) + errx (1, "%s is missing port number", str); + + *ptr = '\0'; + ++ptr; + + StrToAddr (str, addr); + return StrToPort (ptr, proto); +} + Property changes on: stable/3/sbin/natd/natd.c ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: stable/3/sbin/natd/natd.h =================================================================== --- stable/3/sbin/natd/natd.h (nonexistent) +++ stable/3/sbin/natd/natd.h (revision 44655) @@ -0,0 +1,24 @@ +/* + * natd - Network Address Translation Daemon for FreeBSD. + * + * This software is provided free of charge, with no + * warranty of any kind, either expressed or implied. + * Use at your own risk. + * + * You may copy, modify and distribute this software (natd.h) freely. + * + * Ari Suutari + * + * $Id:$ + */ + +#define PIDFILE "/var/run/natd.pid" +#define INPUT 1 +#define OUTPUT 2 +#define DONT_KNOW 3 + +extern void Quit (char* msg); +extern void Warn (char* msg); +extern int SendNeedFragIcmp (int sock, struct ip* failedDgram, int mtu); + + Property changes on: stable/3/sbin/natd/natd.h ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: stable/3/sys/boot/forth/support.4th =================================================================== --- stable/3/sys/boot/forth/support.4th (nonexistent) +++ stable/3/sys/boot/forth/support.4th (revision 44655) @@ -0,0 +1,1071 @@ +\ Copyright (c) 1999 Daniel C. Sobral +\ All rights reserved. +\ +\ Redistribution and use in source and binary forms, with or without +\ modification, are permitted provided that the following conditions +\ are met: +\ 1. Redistributions of source code must retain the above copyright +\ notice, this list of conditions and the following disclaimer. +\ 2. Redistributions in binary form must reproduce the above copyright +\ notice, this list of conditions and the following disclaimer in the +\ documentation and/or other materials provided with the distribution. +\ +\ THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +\ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +\ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +\ ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +\ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +\ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +\ OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +\ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +\ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +\ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +\ SUCH DAMAGE. +\ +\ $Id$ + +\ Loader.rc support functions: +\ +\ initialize_support ( -- ) initialize global variables +\ initialize ( addr len -- ) as above, plus load_conf_files +\ load_conf ( addr len -- ) load conf file given +\ include_conf_files ( -- ) load all conf files in load_conf_files +\ print_syntax_error ( -- ) print line and marker of where a syntax +\ error was detected +\ print_line ( -- ) print last line processed +\ load_kernel ( -- ) load kernel +\ load_modules ( -- ) load modules flagged +\ +\ Exported structures: +\ +\ string counted string structure +\ cell .addr string address +\ cell .len string length +\ module module loading information structure +\ cell module.flag should we load it? +\ string module.name module's name +\ string module.loadname name to be used in loading the module +\ string module.type module's type +\ string module.args flags to be passed during load +\ string module.beforeload command to be executed before load +\ string module.afterload command to be executed after load +\ string module.loaderror command to be executed if load fails +\ cell module.next list chain +\ +\ Exported global variables; +\ +\ string conf_files configuration files to be loaded +\ cell modules_options pointer to first module information +\ value verbose? indicates if user wants a verbose loading +\ value any_conf_read? indicates if a conf file was succesfully read +\ +\ Other exported words: +\ +\ strdup ( addr len -- addr' len) similar to strdup(3) +\ strcat ( addr len addr' len' -- addr len+len' ) similar to strcat(3) +\ s' ( | string' -- addr len | ) similar to s" +\ rudimentary structure support + +\ Exception values + +1 constant syntax_error +2 constant out_of_memory +3 constant free_error +4 constant set_error +5 constant read_error +6 constant open_error +7 constant exec_error +8 constant before_load_error +9 constant after_load_error + +\ Crude structure support + +: structure: create here 0 , 0 does> create @ allot ; +: member: create dup , over , + does> cell+ @ + ; +: ;structure swap ! ; +: sizeof ' >body @ state @ if postpone literal then ; immediate +: offsetof ' >body cell+ @ state @ if postpone literal then ; immediate +: ptr 1 cells member: ; +: int 1 cells member: ; + +\ String structure + +structure: string + ptr .addr + int .len +;structure + +\ Module options linked list + +structure: module + int module.flag + sizeof string member: module.name + sizeof string member: module.loadname + sizeof string member: module.type + sizeof string member: module.args + sizeof string member: module.beforeload + sizeof string member: module.afterload + sizeof string member: module.loaderror + ptr module.next +;structure + +\ Global variables + +string conf_files +create module_options sizeof module.next allot +create last_module_option sizeof module.next allot +0 value verbose? + +\ Support string functions + +: strdup ( addr len -- addr' len ) + >r r@ allocate if out_of_memory throw then + tuck r@ move + r> +; + +: strcat { addr len addr' len' -- addr len+len' } + addr' addr len + len' move + addr len len' + +; + +: s' + [char] ' parse + state @ if + postpone sliteral + then +; immediate + +\ Private definitions + +vocabulary support-functions +only forth also support-functions definitions + +\ Some control characters constants + +9 constant tab +10 constant lf + +\ Read buffer size + +80 constant read_buffer_size + +\ Standard suffixes + +: load_module_suffix s" _load" ; +: module_loadname_suffix s" _name" ; +: module_type_suffix s" _type" ; +: module_args_suffix s" _flags" ; +: module_beforeload_suffix s" _before" ; +: module_afterload_suffix s" _after" ; +: module_loaderror_suffix s" _error" ; + +\ Support operators + +: >= < 0= ; +: <= > 0= ; + +\ Assorted support funcitons + +: free-memory free if free_error throw then ; + +\ Assignment data temporary storage + +string name_buffer +string value_buffer + +\ File data temporary storage + +string line_buffer +string read_buffer +0 value read_buffer_ptr + +\ File's line reading function + +0 value end_of_file? +variable fd + +: skip_newlines + begin + read_buffer .len @ read_buffer_ptr > + while + read_buffer .addr @ read_buffer_ptr + c@ lf = if + read_buffer_ptr char+ to read_buffer_ptr + else + exit + then + repeat +; + +: scan_buffer ( -- addr len ) + read_buffer_ptr >r + begin + read_buffer .len @ r@ > + while + read_buffer .addr @ r@ + c@ lf = if + read_buffer .addr @ read_buffer_ptr + ( -- addr ) + r@ read_buffer_ptr - ( -- len ) + r> to read_buffer_ptr + exit + then + r> char+ >r + repeat + read_buffer .addr @ read_buffer_ptr + ( -- addr ) + r@ read_buffer_ptr - ( -- len ) + r> to read_buffer_ptr +; + +: line_buffer_resize ( len -- len ) + >r + line_buffer .len @ if + line_buffer .addr @ + line_buffer .len @ r@ + + resize if out_of_memory throw then + else + r@ allocate if out_of_memory throw then + then + line_buffer .addr ! + r> +; + +: append_to_line_buffer ( addr len -- ) + line_buffer .addr @ line_buffer .len @ + 2swap strcat + line_buffer .len ! + drop +; + +: read_from_buffer + scan_buffer ( -- addr len ) + line_buffer_resize ( len -- len ) + append_to_line_buffer ( addr len -- ) +; + +: refill_required? + read_buffer .len @ read_buffer_ptr = + end_of_file? 0= and +; + +: refill_buffer + 0 to read_buffer_ptr + read_buffer .addr @ 0= if + read_buffer_size allocate if out_of_memory throw then + read_buffer .addr ! + then + fd @ read_buffer .addr @ read_buffer_size fread + dup -1 = if read_error throw then + dup 0= if true to end_of_file? then + read_buffer .len ! +; + +: reset_line_buffer + 0 line_buffer .addr ! + 0 line_buffer .len ! +; + +: read_line + reset_line_buffer + skip_newlines + begin + read_from_buffer + refill_required? + while + refill_buffer + repeat +; + +\ Conf file line parser: +\ ::= '='[] | +\ [] +\ ::= {||'_'} +\ ::= '"'{|'\'}'"' | +\ ::= ASCII 32 to 126, except '\' and '"' +\ ::= '#'{} + +0 value parsing_function + +0 value end_of_line +0 value line_pointer + +: end_of_line? + line_pointer end_of_line = +; + +: letter? + line_pointer c@ >r + r@ [char] A >= + r@ [char] Z <= and + r@ [char] a >= + r> [char] z <= and + or +; + +: digit? + line_pointer c@ >r + r@ [char] 0 >= + r> [char] 9 <= and +; + +: quote? + line_pointer c@ [char] " = +; + +: assignment_sign? + line_pointer c@ [char] = = +; + +: comment? + line_pointer c@ [char] # = +; + +: space? + line_pointer c@ bl = + line_pointer c@ tab = or +; + +: backslash? + line_pointer c@ [char] \ = +; + +: underscore? + line_pointer c@ [char] _ = +; + +: dot? + line_pointer c@ [char] . = +; + +: skip_character + line_pointer char+ to line_pointer +; + +: skip_to_end_of_line + end_of_line to line_pointer +; + +: eat_space + begin + space? + while + skip_character + end_of_line? if exit then + repeat +; + +: parse_name ( -- addr len ) + line_pointer + begin + letter? digit? underscore? dot? or or or + while + skip_character + end_of_line? if + line_pointer over - + strdup + exit + then + repeat + line_pointer over - + strdup +; + +: remove_backslashes { addr len | addr' len' -- addr' len' } + len allocate if out_of_memory throw then + to addr' + addr >r + begin + addr c@ [char] \ <> if + addr c@ addr' len' + c! + len' char+ to len' + then + addr char+ to addr + r@ len + addr = + until + r> drop + addr' len' +; + +: parse_quote ( -- addr len ) + line_pointer + skip_character + end_of_line? if syntax_error throw then + begin + quote? 0= + while + backslash? if + skip_character + end_of_line? if syntax_error throw then + then + skip_character + end_of_line? if syntax_error throw then + repeat + skip_character + line_pointer over - + remove_backslashes +; + +: read_name + parse_name ( -- addr len ) + name_buffer .len ! + name_buffer .addr ! +; + +: read_value + quote? if + parse_quote ( -- addr len ) + else + parse_name ( -- addr len ) + then + value_buffer .len ! + value_buffer .addr ! +; + +: comment + skip_to_end_of_line +; + +: white_space_4 + eat_space + comment? if ['] comment to parsing_function exit then + end_of_line? 0= if syntax_error throw then +; + +: variable_value + read_value + ['] white_space_4 to parsing_function +; + +: white_space_3 + eat_space + letter? digit? quote? or or if + ['] variable_value to parsing_function exit + then + syntax_error throw +; + +: assignment_sign + skip_character + ['] white_space_3 to parsing_function +; + +: white_space_2 + eat_space + assignment_sign? if ['] assignment_sign to parsing_function exit then + syntax_error throw +; + +: variable_name + read_name + ['] white_space_2 to parsing_function +; + +: white_space_1 + eat_space + letter? if ['] variable_name to parsing_function exit then + comment? if ['] comment to parsing_function exit then + end_of_line? 0= if syntax_error throw then +; + +: get_assignment + line_buffer .addr @ line_buffer .len @ + to end_of_line + line_buffer .addr @ to line_pointer + ['] white_space_1 to parsing_function + begin + end_of_line? 0= + while + parsing_function execute + repeat + parsing_function ['] comment = + parsing_function ['] white_space_1 = + parsing_function ['] white_space_4 = + or or 0= if syntax_error throw then +; + +\ Process line + +: assignment_type? ( addr len -- flag ) + name_buffer .addr @ name_buffer .len @ + compare 0= +; + +: suffix_type? ( addr len -- flag ) + name_buffer .len @ over <= if 2drop false exit then + name_buffer .len @ over - name_buffer .addr @ + + over compare 0= +; + +: loader_conf_files? + s" loader_conf_files" assignment_type? +; + +: verbose_flag? + s" verbose_loading" assignment_type? +; + +: execute? + s" exec" assignment_type? +; + +: module_load? + load_module_suffix suffix_type? +; + +: module_loadname? + module_loadname_suffix suffix_type? +; + +: module_type? + module_type_suffix suffix_type? +; + +: module_args? + module_args_suffix suffix_type? +; + +: module_beforeload? + module_beforeload_suffix suffix_type? +; + +: module_afterload? + module_afterload_suffix suffix_type? +; + +: module_loaderror? + module_loaderror_suffix suffix_type? +; + +: set_conf_files + conf_files .addr @ ?dup if + free-memory + then + value_buffer .addr @ c@ [char] " = if + value_buffer .addr @ char+ value_buffer .len @ 2 chars - + else + value_buffer .addr @ value_buffer .len @ + then + strdup + conf_files .len ! conf_files .addr ! +; + +: append_to_module_options_list ( addr -- ) + module_options @ 0= if + dup module_options ! + last_module_option ! + else + dup last_module_option @ module.next ! + last_module_option ! + then +; + +: set_module_name ( addr -- ) + name_buffer .addr @ name_buffer .len @ + strdup + >r over module.name .addr ! + r> swap module.name .len ! +; + +: yes_value? + value_buffer .addr @ value_buffer .len @ + 2dup s' "YES"' compare >r + 2dup s' "yes"' compare >r + 2dup s" YES" compare >r + s" yes" compare r> r> r> and and and 0= +; + +: find_module_option ( -- addr | 0 ) + module_options @ + begin + dup + while + dup module.name dup .addr @ swap .len @ + name_buffer .addr @ name_buffer .len @ + compare 0= if exit then + module.next @ + repeat +; + +: new_module_option ( -- addr ) + sizeof module allocate if out_of_memory throw then + dup sizeof module erase + dup append_to_module_options_list + dup set_module_name +; + +: get_module_option ( -- addr ) + find_module_option + ?dup 0= if new_module_option then +; + +: set_module_flag + name_buffer .len @ load_module_suffix nip - name_buffer .len ! + yes_value? get_module_option module.flag ! +; + +: set_module_args + name_buffer .len @ module_args_suffix nip - name_buffer .len ! + get_module_option module.args + dup .addr @ ?dup if free-memory then + value_buffer .addr @ value_buffer .len @ + over c@ [char] " = if + 2 chars - swap char+ swap + then + strdup + >r over .addr ! + r> swap .len ! +; + +: set_module_loadname + name_buffer .len @ module_loadname_suffix nip - name_buffer .len ! + get_module_option module.loadname + dup .addr @ ?dup if free-memory then + value_buffer .addr @ value_buffer .len @ + over c@ [char] " = if + 2 chars - swap char+ swap + then + strdup + >r over .addr ! + r> swap .len ! +; + +: set_module_type + name_buffer .len @ module_type_suffix nip - name_buffer .len ! + get_module_option module.type + dup .addr @ ?dup if free-memory then + value_buffer .addr @ value_buffer .len @ + over c@ [char] " = if + 2 chars - swap char+ swap + then + strdup + >r over .addr ! + r> swap .len ! +; + +: set_module_beforeload + name_buffer .len @ module_beforeload_suffix nip - name_buffer .len ! + get_module_option module.beforeload + dup .addr @ ?dup if free-memory then + value_buffer .addr @ value_buffer .len @ + over c@ [char] " = if + 2 chars - swap char+ swap + then + strdup + >r over .addr ! + r> swap .len ! +; + +: set_module_afterload + name_buffer .len @ module_afterload_suffix nip - name_buffer .len ! + get_module_option module.afterload + dup .addr @ ?dup if free-memory then + value_buffer .addr @ value_buffer .len @ + over c@ [char] " = if + 2 chars - swap char+ swap + then + strdup + >r over .addr ! + r> swap .len ! +; + +: set_module_loaderror + name_buffer .len @ module_loaderror_suffix nip - name_buffer .len ! + get_module_option module.loaderror + dup .addr @ ?dup if free-memory then + value_buffer .addr @ value_buffer .len @ + over c@ [char] " = if + 2 chars - swap char+ swap + then + strdup + >r over .addr ! + r> swap .len ! +; + +: set_environment_variable + name_buffer .len @ + value_buffer .len @ + + 5 chars + + allocate if out_of_memory throw then + dup 0 ( addr -- addr addr len ) + s" set " strcat + name_buffer .addr @ name_buffer .len @ strcat + s" =" strcat + value_buffer .addr @ value_buffer .len @ strcat + ['] evaluate catch if + 2drop free drop + set_error throw + else + free-memory + then +; + +: set_verbose + yes_value? to verbose? +; + +: execute_command + value_buffer .addr @ value_buffer .len @ + over c@ [char] " = if + 2 chars - swap char+ swap + then + ['] evaluate catch if exec_error throw then +; + +: process_assignment + name_buffer .len @ 0= if exit then + loader_conf_files? if set_conf_files exit then + verbose_flag? if set_verbose exit then + execute? if execute_command exit then + module_load? if set_module_flag exit then + module_loadname? if set_module_loadname exit then + module_type? if set_module_type exit then + module_args? if set_module_args exit then + module_beforeload? if set_module_beforeload exit then + module_afterload? if set_module_afterload exit then + module_loaderror? if set_module_loaderror exit then + set_environment_variable +; + +: free_buffers + line_buffer .addr @ dup if free then + name_buffer .addr @ dup if free then + value_buffer .addr @ dup if free then + or or if free_error throw then +; + +: reset_assignment_buffers + 0 name_buffer .addr ! + 0 name_buffer .len ! + 0 value_buffer .addr ! + 0 value_buffer .len ! +; + +\ Higher level file processing + +: process_conf + begin + end_of_file? 0= + while + reset_assignment_buffers + read_line + get_assignment + ['] process_assignment catch + ['] free_buffers catch + swap throw throw + repeat +; + +: create_null_terminated_string { addr len -- addr' len } + len char+ allocate if out_of_memory throw then + >r + addr r@ len move + 0 r@ len + c! + r> len +; + +\ Interface to loading conf files + +: load_conf ( addr len -- ) + 0 to end_of_file? + 0 to read_buffer_ptr + create_null_terminated_string + over >r + fopen fd ! + r> free-memory + fd @ -1 = if open_error throw then + ['] process_conf catch + fd @ fclose + throw +; + +: initialize_support + 0 read_buffer .addr ! + 0 conf_files .addr ! + 0 module_options ! + 0 last_module_option ! + 0 to verbose? +; + +: print_line + line_buffer .addr @ line_buffer .len @ type cr +; + +: print_syntax_error + line_buffer .addr @ line_buffer .len @ type cr + line_buffer .addr @ + begin + line_pointer over <> + while + bl emit + char+ + repeat + drop + ." ^" cr +; + +\ Depuration support functions + +only forth definitions also support-functions + +: test-file + ['] load_conf catch dup . + syntax_error = if cr print_syntax_error then +; + +: show-module-options + module_options @ + begin + ?dup + while + ." Name: " dup module.name dup .addr @ swap .len @ type cr + ." Path: " dup module.loadname dup .addr @ swap .len @ type cr + ." Type: " dup module.type dup .addr @ swap .len @ type cr + ." Flags: " dup module.args dup .addr @ swap .len @ type cr + ." Before load: " dup module.beforeload dup .addr @ swap .len @ type cr + ." After load: " dup module.afterload dup .addr @ swap .len @ type cr + ." Error: " dup module.loaderror dup .addr @ swap .len @ type cr + ." Status: " dup module.flag @ if ." Load" else ." Don't load" then cr + module.next @ + repeat +; + +only forth also support-functions definitions + +\ Variables used for processing multiple conf files + +string current_file_name +variable current_conf_files + +\ Indicates if any conf file was succesfully read + +0 value any_conf_read? + +\ loader_conf_files processing support functions + +: set_current_conf_files + conf_files .addr @ current_conf_files ! +; + +: get_conf_files + conf_files .addr @ conf_files .len @ strdup +; + +: recurse_on_conf_files? + current_conf_files @ conf_files .addr @ <> +; + +: skip_leading_spaces { addr len ptr -- addr len ptr' } + begin + ptr len = if addr len ptr exit then + addr ptr + c@ bl = + while + ptr char+ to ptr + repeat + addr len ptr +; + +: get_file_name { addr len ptr -- addr len ptr' addr' len' || 0 } + ptr len = if + addr free abort" Fatal error freeing memory" + 0 exit + then + ptr >r + begin + addr ptr + c@ bl <> + while + ptr char+ to ptr + ptr len = if + addr len ptr addr r@ + ptr r> - exit + then + repeat + addr len ptr addr r@ + ptr r> - +; + +: get_next_file ( addr len ptr -- addr len ptr' addr' len' | 0 ) + skip_leading_spaces + get_file_name +; + +: set_current_file_name + over current_file_name .addr ! + dup current_file_name .len ! +; + +: print_current_file + current_file_name .addr @ current_file_name .len @ type +; + +: process_conf_errors + dup 0= if true to any_conf_read? drop exit then + >r 2drop r> + dup syntax_error = if + ." Warning: syntax error on file " print_current_file cr + print_syntax_error drop exit + then + dup set_error = if + ." Warning: bad definition on file " print_current_file cr + print_line drop exit + then + dup read_error = if + ." Warning: error reading file " print_current_file cr drop exit + then + dup open_error = if + verbose? if ." Warning: unable to open file " print_current_file cr then + drop exit + then + dup free_error = abort" Fatal error freeing memory" + dup out_of_memory = abort" Out of memory" + throw \ Unknown error -- pass ahead +; + +\ Process loader_conf_files recursively +\ Interface to loader_conf_files processing + +: include_conf_files + set_current_conf_files + get_conf_files 0 + begin + get_next_file ?dup + while + set_current_file_name + ['] load_conf catch + process_conf_errors + recurse_on_conf_files? if recurse then + repeat +; + +\ Module loading functions + +: load_module? + module.flag @ +; + +: load_parameters ( addr -- addr addrN lenN ... addr1 len1 N ) + dup >r + r@ module.args .addr @ r@ module.args .len @ + r@ module.loadname .len @ if + r@ module.loadname .addr @ r@ module.loadname .len @ + else + r@ module.name .addr @ r@ module.name .len @ + then + r@ module.type .len @ if + r@ module.type .addr @ r@ module.type .len @ + s" -t " + 4 ( -t type name flags ) + else + 2 ( name flags ) + then + r> drop +; + +: before_load ( addr -- addr ) + dup module.beforeload .len @ if + dup module.beforeload .addr @ over module.beforeload .len @ + ['] evaluate catch if before_load_error throw then + then +; + +: after_load ( addr -- addr ) + dup module.afterload .len @ if + dup module.afterload .addr @ over module.afterload .len @ + ['] evaluate catch if after_load_error throw then + then +; + +: load_error ( addr -- addr ) + dup module.loaderror .len @ if + dup module.loaderror .addr @ over module.loaderror .len @ + evaluate \ This we do not intercept so it can throw errors + then +; + +: pre_load_message ( addr -- addr ) + verbose? if + dup module.name .addr @ over module.name .len @ type + ." ..." + then +; + +: load_error_message verbose? if ." failed!" cr then ; + +: load_succesful_message verbose? if ." ok" cr then ; + +: load_module + load_parameters load +; + +: process_module ( addr -- addr ) + pre_load_message + before_load + begin + ['] load_module catch if + dup module.loaderror .len @ if + load_error \ Command should return a flag! + else + load_error_message true \ Do not retry + then + else + after_load + load_succesful_message true \ Succesful, do not retry + then + until +; + +: process_module_errors ( addr ior -- ) + dup before_load_error = if + drop + ." Module " + dup module.name .addr @ over module.name .len @ type + dup module.loadname .len @ if + ." (" dup module.loadname .addr @ over module.loadname .len @ type ." )" + then + cr + ." Error executing " + dup module.beforeload .addr @ over module.afterload .len @ type cr + abort + then + + dup after_load_error = if + drop + ." Module " + dup module.name .addr @ over module.name .len @ type + dup module.loadname .len @ if + ." (" dup module.loadname .addr @ over module.loadname .len @ type ." )" + then + cr + ." Error executing " + dup module.afterload .addr @ over module.afterload .len @ type cr + abort + then + + throw \ Don't know what it is all about -- pass ahead +; + +\ Module loading interface + +: load_modules ( -- ) ( throws: abort & user-defined ) + module_options @ + begin + ?dup + while + dup load_module? if + ['] process_module catch + process_module_errors + then + module.next @ + repeat +; + +\ Additional functions used in "start" + +: initialize ( addr len -- ) + initialize_support + strdup conf_files .len ! conf_files .addr ! +; + +: load_kernel ( -- ) ( throws: abort ) + s" load ${kernel} ${kernel_options}" ['] evaluate catch + if s" echo Unable to load kernel: ${kernel_name}" evaluate abort then +; + +\ Go back to straight forth vocabulary + +only forth also definitions + Property changes on: stable/3/sys/boot/forth/support.4th ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: stable/3/sys/contrib/dev/oltr/COPYRIGHT =================================================================== --- stable/3/sys/contrib/dev/oltr/COPYRIGHT (nonexistent) +++ stable/3/sys/contrib/dev/oltr/COPYRIGHT (revision 44655) @@ -0,0 +1,62 @@ +The oltr driver uses objects and microcode from Olicom's +OC-3300 PowerMACH Works Kit. + +As the Linux driver says.. +================================================================== +* +* This driver uses the Token Ring Low Level Driver (TRlld, +* PowerMach Works) as the lower level driver. The PMW kit is +* (C) Olicom. The executable object may be distributed along +* with this driver for the purpose of linking this driver. +* +================================================================= +The low level driver is combined with a FreeBSD specific driver +supplied in source, which provides all OS dependent functions. + +files from olicom are: + +trlld.o - Olicom low-level driver interface + +trlldmac.o - TMS 380 Microcode for Olicom TMS380 based cards +trlldbm.o - "bullseye" Microcode for Olicom "bullseye" based cards +trlldhm.o - "hawkeye" Microcode for Olicom "hawkeye" based cards + +The file trlld.o is stored in uuencode format as trlld.o.uu +It represents a state machine of some kind that has no OS dependencies +and communicates with the firmware on the cards via a proprietary interface. +All communication with this module is achieved via functions supplied in +the FreeBSD specific driver. + +The other 3 files have been encoded using file2c(1) +and represent only microcode to be loaded into the appropriate board +when found. + +Here is the release notice from Olicom regarding these files: +------------------------------------------------------------------------------- +OC-3300 PowerMach Works and its components are wholly owned products of +Olicom A/S +Nybrovej 114 +2800 Lyngby +Denmark +(45) 45 27 00 00 +and are used and distributed with permission. (#SS022499) +------------------------------------------------------------------------------- + +A supporting email is also included. +---------- Forwarded message ---------- +Date: Wed, 24 Feb 1999 17:07:14 +0100 +From: Starla Scott +To: 'Larry Lile' +Subject: RE: FreeBSD Token-ring driver + +Larry, + +You may freely distribute the driver and/or kit. However, we do request that +you include an acknowledgement of Olicom's copyright and ownership as +related to your driver. + +Thanks, +Starla +Olicom Tech Support +------------------------------------------------------------------------------ + Property changes on: stable/3/sys/contrib/dev/oltr/COPYRIGHT ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: stable/3/sys/contrib/dev/oltr/i386-elf.trlld.o.uu =================================================================== --- stable/3/sys/contrib/dev/oltr/i386-elf.trlld.o.uu (nonexistent) +++ stable/3/sys/contrib/dev/oltr/i386-elf.trlld.o.uu (revision 44655) @@ -0,0 +1,1840 @@ +begin 644 trlld.o +M?T5,1@$!`0````````````$``P`!```````````````P00$``````#0````` +M`"@`"P`'`````````````````(/L%%>+?"0<5E-5BT0D+"7__P``@\`$B]@E +M__\``%#_5QR+\('C__\``$.!X___``!3_U<

`(@\0(9@OP@>;__P``9O?& +M`0!FB70D(`^%>`(``(M$)"PE__\``%#_5QR(1"0G@\0$BT0D+"7__P``@\`" +MB]@E__\``%#_5QR+\('C__\``$.!X___``!3_U<;__P``)?\```"#Q@10B\8E__\``%#_5P2+1"0H@>;__P``)?__``!& +MP?@(@>;__P``)?\```!05O]7!#/`@\00BD0D(U"+1"0P)?__``!0_U<$N`$` +M``"#Q`A=6UY?@\04PSO_75M>,\!?@\04PSO_._^!_P````"#[%!7BWPD6%93 +M56:+AW(+``!FJ1``=$0SP&:+1Q:#P`PE__\``%"+AUP+``#_4!R+\#/`9HM' +M%H/`#27__P``4(N'7`L``/]0','@"&8+\('F__\``(/$".LDD#/`9HM'%H/` +M#"7__P``4(N'7`L``/]0((OP@>;__P``@\0$9HN'<@L``&:I$`!FB70D7G1# +M,\!FBT<6@\`*)?__``!0BX=<"P``_U`;__P``@\0$9HN'<@L``&:I$`!FB70D7'0[:@$SP&:+1Q:#P`PE__\` +M`%"+AUP+``#_4`1J`#/`9HM'%H/`#27__P``4(N'7`L``/]0!(/$$.L?._]J +M`3/`9HM'%H/`#"7__P``4(N'7`L``/]0"(/$"&:+=S2+QH'F__\``,'F""7_ +M_P``P?@(@>8`_P``)?\````+QHOP9HN'<@L``('F__\``&:I$`!T3HO&)?\` +M``!0,\!FBT<6@\`*)?__``!0BX=<"P``_U`$@>;__P``,\#!_@B!YO\```!6 +M9HM'%H/`"R7__P``4(N'7`L``/]0!(/$$.LCD('F__\``#/`5F:+1Q:#P`HE +M__\``%"+AUP+``#_4`B#Q`AJ"HN'7`L``/]0-+Z\____@\0$O1````!FA:]R +M"P``=$4SP&:+1Q:#P`(E__\``%"+AUP+``#_4!R+V#/`9HM'%H/``R7__P`` +M4(N'7`L``/]0','@"&8+V('C__\``(/$".LE._\SP&:+1Q:#P`(E__\``%"+ +MAUP+``#_4""+V('C__\``(/$!(O#@>/__P``P>,()?__``#!^`B!XP#_```E +M_P````O#9HE$-%2#Q@(/C&'___]FBX=R"P``OD0```!FJ1``=$TSP(I$)%Y0 +M,\!FBT<6@\`,)?__``!0BX=<"P``_U`$,\!FBT0D9L'X""7_````4#/`9HM' +M%H/`#27__P``4(N'7`L``/]0!(/$$.LDD#/`9HM$)%Y0,\!FBT<6@\`,)?__ +M``!0BX=<"P``_U`(@\0(9HN'<@L``&:I$`!T5(M$)%PE_P```%`SP&:+1Q:# +MP`HE__\``%"+AUP+``#_4`2+1"1D)?__``#!^`@E_P```%`SP&:+1Q:#P`LE +M__\``%"+AUP+``#_4`2#Q!#K*(/'`(M$)%PE__\``%`SP&:+1Q:#P`HE__\` +M`%"+AUP+``#_4`B#Q`B+1"04B(?<$```BD0D%8B'W1```(I$)!:(A]X0``"* +M1"07B(??$```BT0D&(B'X!```(I$)!F(A^$0``"+1"0\9HF'XA```&:+1"0V +M9JD`0'11BD0D1HB'Y!```(I$)$>(A^40``"+1"1(B(?F$```BD0D28B'YQ`` +M`(I$)$J(A^@0``"*1"1+B(?I$```9HM$)#9FB8>."P``75M>7X/$4,.0,\F( +MC^00``"(C^40``"(C^80``"(C^<0``"(C^@0``"(C^D0``#KPX'_`````('_ +M`````(/L&%>+?"0@9HN'H`L``&:I(``/A(\```!FQT<0``G'1V@`````9B7? +M_V:)AZ`+``"+AY0+``")1Q(SP&B0````9HM'%H/`!R7__P``4(N'7`L``/]0 +M!(/$"%^#Q!C#D&;'1Q``",=':`````!F);__9HF'H`L``(N'D`L``(E'$C/` +M:)````!FBT<6@\`')?__``!0BX=<"P``_U`$@\0(7X/$&,,[_V:+AZ`+``!F +MJ4``=:MFBX>@"P``9JF``'1F9B5__V:)AZ`+``!FBX=R"P``9JD`@'0&C4=8 +MZPJ0BX=D"P``@\!84.A!9P``9L='$``*B4<2,\"Z`````(/$!(E7:&B0```` +M9HM'%H/`!R7__P``4(N'7`L``/]0!(/$"%^#Q!C#9HN'H`L``&:I`(!T;V8E +M_W]FB8>@"P``9HN'F@L``&:I`@!T"S/`9HN'F`L``.L.,\!FBX>8"P``#0`` +M`(!0Z,1F``!FQT<0``;'1V@`````B4<2,\"#Q`1HD````&:+1Q:#P`:"P``9JD$`'4.9H/)0&:I"`!T!&:#R2!FQT<0 +M``W'1V@`````B\&!X?__``#!X0@E__\``,'X"('A`/\``"7_````"\$E__\` +M`(E'$C/`:)````!FBT<6@\`')?__``!0BX=<"P``_U`$@\0(7X/$&,,[_X/L +M"%>+?"009HM'"F8]@`!T8F:+1P)F/4,`=%@SP&:+1PQ0,\!FBT<*4#/`9HM' +M"%!J!&H!:@97Z(-<``"#Q!Q?@\0(PX/&`,=';`````!HB````#/`9HM'%H/` +M!R7__P``4(N'7`L``/]0!(/$"%^#Q`C#BT=HA@"P``9H7`=-MFBT<"9CU0`'+19HM'$&:%P'6A5^CC_/__@\0$7X/$",.# +MQP`[_X'_`````(/L$%>+?"085E-59HN'<@L``&:I$`!T/&H!,\!FBT<6@\`, +M)?__``!0BX=<"P``_U`$:@`SP&:+1Q:#P`TE__\``%"+AUP+``#_4`2#Q!#K +M((/'`&H!,\!FBT<6@\`,)?__``!0BX=<"P``_U`(@\0(9HN'<@L``&:I$`!T +M/FC@````,\!FBT<6@\`*)?__``!0BX=<"P``_U`$:@4SP&:+1Q:#P`LE__\` +M`%"+AUP+``#_4`2#Q!#K(CO_:.`%```SP&:+1Q:#P`HE__\``%"+AUP+``#_ +M4`B#Q`B^^/___[T0````9H6O<@L``'1%,\!FBT<6@\`")?__``!0BX=<"P`` +M_U`7X/$$,.0@^PX5XM\)$!64U5FBX=R"P``9JD0`'0\ +M:(`````SP&:+1Q:#P`HE__\``%"+AUP+``#_4`1J$#/`9HM'%H/`"R7__P`` +M4(N'7`L``/]0!(/$$.L@:(`0```SP&:+1Q:#P`HE__\``%"+AUP+``#_4`B# +MQ`AFBX=R"P``9JD0`'0W,\!FBT<6@\`")?__``!0BX=<"P``_U`<,\!FBT<6 +M@\`#)?__``!0BX=<"P``_U`<@\0(ZQT[_S/`9HM'%H/``B7__P``4(N'7`L` +M`/]0((/$!&:+AW(+``!FJ1``=$0SP&:+1Q:#P`(E__\``%"+AUP+``#_4!R+ +M\#/`9HM'%H/``R7__P``4(N'7`L``/]0','@"&8+\('F__\``(/$".LDD#/` +M9HM'%H/``B7__P``4(N'7`L``/]0((OP@>;__P``@\0$B\:(1"1&9HN'<@L` +M`&:I$`!T1C/`9HM'%H/``B7__P``4(N'7`L``/]0'(OP,\!FBT<6@\`#)?__ +M``!0BX=<"P``_U`

`(9@OP@>;__P``@\0(ZR:#QP`SP&:+1Q:#P`(E__\` +M`%"+AUP+``#_4""+\('F__\``(/$!(O&B$0D16:+AYH+``!FJ0$`='MFBX=R +M"P``9JD0`'1%,\!FBT<6@\`")?__``!0BX=<"P``_U`Z +M"P``.\(/A%X#``"+[XV%F@L``(V]MPL``(E$)"R-A;H+``")1"0TB40D*(V% +MF`L``(E$)#"+1"0TNA\```"*""+1BD0D0XORA,!U"(7V#X6.````C02UJ!`` +M`&:+\&:+A7(+``!FJ1``=%"+QB7_````4#/`9HM%%H/`"B7__P``4(N%7`L` +M`/]0!('F__\``#/`P?X(@>;_````5F:+11:#P`LE__\``%"+A5P+``#_4`2# +MQ!#K)8/'`('F__\``#/`5F:+11:#P`HE__\``%"+A5P+``#_4`B#Q`C&1"1# +M`(M$)"C^`+H?````(A>-%%+!X@.-A!6\"P``B40D'&:+A7(+``!FJ1``=$8S +MP&:+11:#P`(E__\``%"+A5P+``#_4!R+V#/`9HM%%H/``R7__P``4(N%7`L` +M`/]0','@"&8+V('C__\``(/$".LF@\<`,\!FBT46@\`")?__``!0BX5<"P`` +M_U`@B]B!X___``"#Q`2+1"0<9HE8"F:+A7(+``!FJ1``=$0SP&:+11:#P`(E +M__\``%"+A5P+``#_4!R+V#/`9HM%%H/``R7__P``4(N%7`L``/]0','@"&8+ +MV('C__\``(/$".LDD#/`9HM%%H/``B7__P``4(N%7`L``/]0((O8@>/__P`` +M@\0$9O?#`/YU"HM$)!S&0`X`ZR"*A7T+``"H!'0*N`(```#K"(/'`+@!```` +MBU0D'(A"#HM$)!R+5"0P9HM`"F:+$B7__P``@>+__P``.\)^#HM$)!S&0`X# +M_X7$$```9O?#`!YU#6;WPP!`=`;_A<@0``!F]\,`$'0&_X7,$```N@,```"+ +M1"0<9B/3B%`/BT0D+&;W``(`=11F]\,`_G0NBT0D'&:+0`IFA(#C805O`L` +M`(E$)#B+1"0*000"PC/2 +MB`>+1"1$)?\```"*$SO"=B^^-A;X.``"-G<,.``")1"0LC446C;W##@``B40D,(H3N!\````B +MPHOPC11VP>("C805Q`X``(E$)"2*1"1#A,!U"(7V#X6*````C8:($```9HOP +M9HN%<@L``&:I$`!T38O&)?\```!0,\!FBT46@\`*)?__``!0BX5<"P``_U`$ +M@>;__P``,\#!_@B!YO\```!69HM%%H/`"R7__P``4(N%7`L``/]0!(/$$.LB +M@>;__P``,\!69HM%%H/`"B7__P``4(N%7`L``/]0"(/$",9$)$,`_@>+1"0P +M9HL`)?__``"#P`(E__\``%"+A5P+``#_4!R#Q`0EB````#V(````=`Z+1"0D +M9L=`!@(`ZSP[_XM$)#!FBP`E__\``(/``B7__P``4(N%7`L``/]0'(/$!(/@ +M1(/X1'0'N`,```#K`C/`BU0D)&:)0@:+1"0LBTPD)(H0BDD$`LHSTH@(BA.+ +M1"1$)?\````[P@^%K?[__UU;7E^#Q#C#,]*X'P```(J/PPX``(J7P`X``"+! +MC01`P>`"C9P'Q`X``#/`BD0D13O"#X0T_O__B^N-G[X.``")?"0PC8?##@`` +MB40D-(VWP`X``(''P`X``#/`BE4%_L**PHA5!3/2BE4$.\)U*&;'108``(ML +M)#"Y'P```/Z%PPX``(M4)#0B"HT,2<'A`HVL#<0.```STHM$)#"*@+X.``#^ +MP(@#BT0D,(J`P`X``/[`B`<`_P``)?\````+QXOX@>?__P`` +M9O?'``5T7VH`:@!J`('G__\``%=J`&H#5NA@40``5N@:4```9L=&`D4`:@!6 +MBX9L"P``_U`$9L=&!`,`@\0H7E_#5NCV3P``9L=&`D4`:@!6BX9L"P``_U`$ +M9L=&!`,`@\0,7E_#:@!J`&H`B\7\.!_P````"!_P````"#[!0SP%>+?"0<5E/&1QH`QT0D%`$` +M``!FBT<6@\`&)?__``!0BX=<"P``_U`<@\0$BMCVPX!U##/`6UY?@\04PX/' +M`+A_````(L,E_P```%`SP&:+1Q:#P`8E__\``%"+AUP+``#_4`1FBX=R"P`` +M@\0(9JD"``^$F@$``&:I$`!T23/`9HM'%H/`""7__P``4(N'7`L``/]0'(OP +M,\!FBT<6@\`))?__``!0BX=<"P``_U`

`(9@OP@>;__P``B70D&(/$".LF +M._\SP&:+1Q:#P`@E__\``%"+AUP+``#_4"`E__\``(E$)!2#Q`2+1"009HE$ +M)!XE__\```T`"```9HE$)!IFBX=R"P``9JD0`'1/,\"*1"0:4#/`9HM'%H/` +M""7__P``4(N'7`L``/]0!#/`9HM$)"+!^`@E_P```%`SP&:+1Q:#P`DE__\` +M`%"+AUP+``#_4`2#Q!#K)H/'`#/`9HM$)!I0,\!FBT<6@\`()?__``!0BX=< +M"P``_U`(@\0(,\!FBT0D'@T``0``9HE$)!IFBX=R"P``9JD0`'1/,\"*1"0: +M4#/`9HM'%H/`""7__P``4(N'7`L``/]0!#/`9HM$)"+!^`@E_P```%`SP&:+ +M1Q:#P`DE__\``%"+AUP+``#_4`2#Q!#K)H/'`#/`9HM$)!I0,\!FBT<6@\`( +M)?__``!0BX=<"P``_U`(@\0(N`\````BPX/X#'=V_R2%D````#O_5^BN\O__ +M@\0$ZV*05^A"]/__:@$SP&:+1Q:#P`BX=<"P``_U`T9L=$)%`` +MP&:+AW(+``"#Q!AFJ0`$="-FJ0`(=21F@4PD.``(9HM'!F8]"P!T$V:!3"0X +M``SK"H/'`&:!3"0X`!"+ZXU<)#:-0P%05?_6@\0(A]`0```.L",^V%[0^$<@(``.FE +M`P``D(M$)#!F_TPD,&:%P`^$6@(``(OKC5PD-K@!`````\-05?_6@\0(AZ6'___^0:B8SP&:+1Q:#P`@E__\``%"+AUP+``#_4`1F +MQT<"(@!FQT<$```SP(/$"%U;7E^#Q"S#D(O=ZT/A/__P``,\!39HM'%H/``B7__P``4(N' +M7`L``/]0"(/$"(M$)#"+W6;_3"0P9H7`#X5O____BW0D$.GA````D(M$)#!F +M_TPD,&:%P`^$S@```(OKC5PD-K@!`````\-05?_6@\0(A/_````4V:+1Q:# +MP`,E__\``%"+AUP+``#_4`2#Q!#K)#O_@>/__P``,\!39HM'%H/``B7__P`` +M4(N'7`L``/]0"(/$"(M$)#!F_TPD,&:%P`^%//___^DS_O__@\<`C6PD,K@! +M`````\504__6@\0(AT/A08!``"- +M;"0TN`$````#Q5!3_]:#Q`B%P'4+55/_UH/$"(7`=`F]`0```.L$._\S[87M +M#X72````C6PD,+@!`````\504__6@\0(AN`$```!? +M@\0LPX/'`#/`9HM$)"I0,\!FBT<6@\`,)?__``!0BX=<"P``_U`(@\0(BT0D +M-&:)1"0J9HN'<@L``&:I$`!T3S/`BD0D*E`SP&:+1Q:#P`HE__\``%"+AUP+ +M``#_4`0SP&:+1"0RP?@()?\```!0,\!FBT<6@\`+)?__``!0BX=<"P``_U`$ +M@\00ZR:#QP`SP&:+1"0J4#/`9HM'%H/`"B7__P``4(N'7`L``/]0"(/$"&:+ +M1"0N9H7`#X0?_?__Z3+\__\[_X/L(%>+1"0LQT0D$`````!6BW0D+%-5QD0D +M+P%FBP`S_V:%P`^$Q`,``(V&F@L``(E$)!2+1"0XC5@$9HM#"&:%P`^$C@,` +M`+@?````BHZ_#@``(L&+5"0<9HE$)"R*1"0O0H3`B50D'`^$P0```(M$)!1F +M]P`0`'0*BT,$N@@```#K!8M#!#/2B!"+1"0L)?__``"-!,4`$@``9HE$)"AF +MBX9R"P``9JD0`'13BT0D*"7_````4#/`9HM&%H/`!"7__P``4(N&7`L``/]0 +M!(M$)#`E__\``,'X""7_````4#/`9HM&%H/`!27__P``4(N&7`L``/]0!(/$ +M$.LG._^+1"0H)?__``!0,\!FBT86@\`$)?__``!0BX9<"P``_U`(@\0(QD0D +M+P#IV0```)!FBX9R"P``9JD0`'0[:@`SP&:+1A:#P`(E__\``%"+AEP+``#_ +M4`1J$#/`9HM&%H/``R7__P``4(N&7`L``/]0!(/$$.LB._]H`!```#/`9HM& +M%H/``B7__P``4(N&7`L``/]0"(/$"(M$)"QFA@0]\$0````9HE$)"AT5(M$ +M)"@E_P```%`SP&:+1A:#P`(E__\``%"+AEP+``#_4`2+1"0P)?__``#!^`@E +M_P```%`SP&:+1A:#P`,E__\``%"+AEP+``#_4`2#Q!#K*(/'`(M$)"@E__\` +M`%`SP&:+1A:#P`(E__\``%"+AEP+``#_4`B#Q`AFBX9R"P``9JD0`&:);"0H +M=%&+1"0H)?\```!0,\!FBT86@\`")?__``!0BX9<"P``_U`$@>7__P``,\#! +M_0B!Y?\```!59HM&%H/``R7__P``4(N&7`L``/]0!(/$$.LG._^+1"0H)?__ +M``!0,\!FBT86@\`")?__``!0BX9<"P``_U`(@\0(9HM#"&:)1"0H9HN&<@L` +M`&:I$`!T48M$)"@E_P```%`SP&:+1A:#P`(E__\``%"+AEP+``#_4`2+1"0P +M)?__``#!^`@E_P```%`SP&:+1A:#P`,E__\``%"+AEP+``#_4`2#Q!#K)8M$ +M)"@E__\``%`SP&:+1A:#P`(E__\``%"+AEP+``#_4`B#Q`AF_XZ\#@``BH:_ +M#@``_L"(AK\.``"#PPR+1"0X1V:+`"7__P``._@/C$W\__]FBX::"P``9JD! +M`'0)9K\`<.L'@\<`9K\`T&:+AG(+``!FJ1``=%>+QR7_````4#/`9HM&%H/` +M`B7__P``4(N&7`L``/]0!('G__\``#/`P?\(@>?_````5V:+1A:#P`,E__\` +M`%"+AEP+``#_4`2#Q!!=6UZ+1"007X/$(,.!Y___```SP%=FBT86@\`")?__ +M``!0BX9<"P``_U`(@\0(Z]"#[!2X'P```%>+?"0<5E.*E[D+``"+7"0H(L(# +MP(T$0`4H$0``9HOP9HN'<@L``&:I$`!T3XO&)?\```!0,\!FBT<6@\`$)?__ +M``!0BX=<"P``_U`$@>;__P``,\#!_@B!YO\```!69HM'%H/`!27__P``4(N' +M7`L``/]0!(/$$.LD._^!YO__```SP%9FBT<6@\`$)?__``!0BX=<"P``_U`( +M@\0(_H>Y"P``,\!FBX=R"P``B40D%*D""```=`2+,^L#BW,$B\;!Z!!FB40D +M'(M$)!2I$````'14BT0D'"7_````4#/`9HM'%H/``B7__P``4(N'7`L``/]0 +M!(M$)"0E__\``,'X""7_````4#/`9HM'%H/``R7__P``4(N'7`L``/]0!(/$ +M$.LH@\<`BT0D'"7__P``4#/`9HM'%H/``B7__P``4(N'7`L``/]0"(/$"&:+ +MAW(+``!FJ1``=$Z+QB7_````4#/`9HM'%H/``B7__P``4(N'7`L``/]0!(O& +M)?__``#!^`@E_P```%`SP&:+1Q:#P`,E__\``%"+AUP+``#_4`2#Q!#K))"+ +MQB7__P``4#/`9HM'%H/``B7__P``4(N'7`L``/]0"(/$"&:+AW(+``!FJ1`` +M9HMS"'10B\8E_P```%`SP&:+1Q:#P`(E__\``%"+AUP+``#_4`2+QB7__P`` +MP?@()?\```!0,\!FBT<6@\`#)?__``!0BX=<"P``_U`$@\00ZR:#QP"+QB7_ +M_P``4#/`9HM'%H/``B7__P``4(N'7`L``/]0"(/$"&:+1P)F/5``#X6*```` +M:@$SP&:+1Q:#P`@"P``@\0(B\9F#0"`9H7V +M9HF'H`L``'5.9HM'`F8]4`!R1,:'NPL```!FBT<09H7`="O'1VP`````:(@` +M```SP&:+1Q:#P`;_````5F:+1Q:#P`,E__\``%"+AUP+ +M``#_4`2#Q!#K)8/'`('F__\``#/`5F:+1Q:#P`(E__\``%"+AUP+``#_4`B# +MQ`AFBX=R"P``9JD0`'0Y:@4SP&:+1Q:#P`(E__\``%"+AUP+``#_4`1J!3/` +M9HM'%H/``R7__P``4(N'7`L``/]0!(/$$.L@:`4%```SP&:+1Q:#P`(E__\` +M`%"+AUP+``#_4`B#Q`@STF:+EW(+``#WP@"```!T"XUW$(U?".L/@\8`BX=D +M"P``C7`0C5@(B\;!Z!#WPA````!FB40D&'12BT0D&"7_````4#/`9HM'%H/` +M`B7__P``4(N'7`L``/]0!(M$)"`E__\``,'X""7_````4#/`9HM'%H/``R7_ +M_P``4(N'7`L``/]0!(/$$.LFD(M$)!@E__\``%`SP&:+1Q:#P`(E__\``%"+ +MAUP+``#_4`B#Q`AFBX=R"P``9JD0`'1.B\8E_P```%`SP&:+1Q:#P`(E__\` +M`%"+AUP+``#_4`2+QB7__P``P?@()?\```!0,\!FBT<6@\`#)?__``!0BX=< +M"P``_U`$@\00ZR20B\8E__\``%`SP&:+1Q:#P`(E__\``%"+AUP+``#_4`B# +MQ`B+P\'H$&:+\&:+AW(+``!FJ1``=%"+QB7_````4#/`9HM'%H/``B7__P`` +M4(N'7`L``/]0!(O&)?__``#!^`@E_P```%`SP&:+1Q:#P`,E__\``%"+AUP+ +M``#_4`2#Q!#K)H/'`(O&)?__``!0,\!FBT<6@\`")?__``!0BX=<"P``_U`( +M@\0(9HN'<@L``&:I$`!FB_-T38O&)?\```!0,\!FBT<6@\`")?__``!0BX=< +M"P``_U`$@>;__P``,\#!_@B!YO\```!69HM'%H/``R7__P``4(N'7`L``/]0 +M!(/$$.LB@>;__P``,\!69HM'%H/``B7__P``4(N'7`L``/]0"(/$"&:+AW(+ +M``!FJ1``=$5H@````#/`9HM'%H/`!B7__P``4(N'7`L``/]0!&B0````,\!F +MBT<6@\`')?__``!0BX=<"P``_U`$@\006UY?@\00PY!H@)```#/`9HM'%H/` +M!B7__P``4(N'7`L``/]0"(/$"%M>7X/$$,.0._^!_P````"#[`Q7BWPD%%93 +M9HN'<@L``&:I$`!T13/`9HM'%H/`#"7__P``4(N'7`L``/]0'(OP,\!FBT<6 +M@\`-)?__``!0BX=<"P``_U`

`(9@OP@>;__P``@\0(ZR4[_S/`9HM'%H/` +M#"7__P``4(N'7`L``/]0((OP@>;__P``@\0$9HN'<@L``&:I$`!T1#/`9HM' +M%H/`"B7__P``4(N'7`L``/]0'(O8,\!FBT<6@\`+)?__``!0BX=<"P``_U`< +MP>`(9@O8@>/__P``@\0(ZR20,\!FBT<6@\`*)?__``!0BX=<"P``_U`@B]B! +MX___``"#Q`1FBX=R"P``9JD0`&:)7"06=#MJ`3/`9HM'%H/`#"7__P``4(N' +M7`L``/]0!&H`,\!FBT<6@\`-)?__``!0BX=<"P``_U`$@\00ZQ\[_VH!,\!F +MBT<6@\`,)?__``!0BX=<"P``_U`(@\0(9HN'<@L``&:I$`!T/FCN````,\!F +MBT<6@\`*)?__``!0BX=<"P``_U`$:@4SP&:+1Q:#P`LE__\``%"+AUP+``#_ +M4`2#Q!#K(CO_:.X%```SP&:+1Q:#P`HE__\``%"+AUP+``#_4`B#Q`AJ"HN' +M7`L``/]0-&:+AW(+``"#Q`1FJ1``=#DSP&:+1Q90BX=<"P``_U``(9@O8@>/__P``@\0(ZQLSP&:+1Q90BX=< +M"P``_U`@B]B!X___``"#Q`1FBX=R"P``9JD0`'10B\8E_P```%`SP&:+1Q:# +MP`PE__\``%"+AUP+``#_4`2!YO__```SP,'^"('F_P```%9FBT<6@\`-)?__ +M``!0BX=<"P``_U`$@\00ZR6#QP"!YO__```SP%9FBT<6@\`,)?__``!0BX=< +M"P``_U`(@\0(9HN'<@L``&:I$`!T63/`BD0D%E`SP&:+1Q:#P`HE__\``%"+ +MAUP+``#_4`0SP&:+1"0>P?@()?\```!0,\!FBT<6@\`+)?__``!0BX=<"P`` +M_U`$@\00B\-;7B7__P``7X/$#,.0,\!FBT0D%E`SP&:+1Q:#P`HE__\``%"+ +MAUP+``#_4`B#Q`CKS(/'`('_`````('_`````(/L#%>+?"045E-59HN'H`L` +M`&:%P'0^9HM'$&:%P'0LQT=L`````&B(````,\!FBT<6@\`')?__``!0BX=< +M"P``_U`$@\0(ZPR#QP!7Z,[6__^#Q`1FBX>T"P``9H7`#X3/````,^VX'P`` +M`"*'M@L``(OP9HN'M`L``&:%P'XIC9^T"P``C01VP>`#C80'O`L``%!7Z(;R +M__]&@\0(@^8?10^_`SOH?-UJ`3/`9HM'%H/`!R7__P``4(N'7`L``/]0!&;' +M1P)@`&:+MZ`+``"#Q`B+QF8-`(!FA?9FB8>@"P``=55FBT<"9CU0`')+QH>[ +M"P```&:+1Q!FA09L='`E``5^A`T?__9HNWC@L``(/$!(O& +M@>;__P``P>8(:@`E__\``('F`/\``,'X""7_````"\:+\#/`@>;__P``BH>< +M"P``4&:+AW(+``!FJ0$`=`JX$````.L(@\<`N`0````E__\``%"+QB7__P`` +M4&H`:@!7Z)\T``"#Q!R*AWT+``"H`W1J5^CL^O__9HF'D!```(/$!&:+MZ`+ +M``"+QF8-``%FA?9FB8>@"P``=4%FBT<"9CU0`'(WQH>["P```&:+1Q!FA7X/$#,.#QP"!_P````"!_P````!0BU0D"(M$)`QF +MBXJ@"P``9@O!9H7)9HF"H`L``'5!9HM"`F8]4`!R-\:"NPL```!FBT(09H7` +M="O'0FP`````:(@````SP&:+0A:#P`:"P``9JD!`'0*N`"```#K!8/'`#/` +M9L='$``$QT=H``````M$)`B+R"7__P``P?@(@>'__P``P>$()?\```"!X0#_ +M```+P8E'$C/`:)````!FBT<6@\`')?__``!0BX=<"P``_U`$@\0(,\#'1VP` +M````9L='!`$`9L='`D0`:(@```!FBT<6@\`')?__``!0BX=<"P``_U`$@\0( +M6U^#Q!3#D(/L#%>+?"045E-FBX=R"P``9JD!`'0)9L='.```ZP>09L='.``0 +M9HN'F@L``&:I!`!U(F:+1SAF#0!`9HN7F@L``&;WP@@`9HE'.'0(9@T`(&:) +M1SAFB[>8"P``N0`:``!FB4](BH>("P``9HE/2KD9````B$)"P``B$<[ +MBH>*"P``B$<\BH>+"P``B$<]BH>,"P``B$<^BH>-"P``B$<_BX>0"P``B4=` +MBX>4"P``B4=$B\8E__\``('F__\``,'X"(A/4L'F""7_````@>8`_P``B$]3 +M"\8SR6:)1TR^`@```&:)3TYFB4]0H`````"(1QR@`0```(A''8J&`````(A$ +M-QR*A@$```"(1#<=BH8"````B$0W'HJ&`P```(/&!(/^$HA$-QM\T&:+AW(+ +M``!FJ0"`#X28````C7<H( +MB5]H@>(`_P``"\*+UL'B",'F&('B``#_``O""\:)1Q(SP&B0````9HM'%H/` +M!R7__P``4(N'7`L``/]0!(/$"%M>7X/$#,.#Q@"+AV0+``"^'`````/PB]:+ +MQL'J",'H&('B`/\```O"B];!X@C!YAB!X@``_P`+P@O&B4=4BX=D"P``C7`X +MZ5/___\[_XUT)@"#[!@SP%>+?"0@5E-59HM'`H/X0P^$@00```^/6`0``(/X +M)'1O#X\M`0``@_@B#X2(````#X^>````@_@A#X6=!P``,\!FBT<6@\`&)?__ +M``!0BX=<"P``_U`7X/$&,.#QP"X +M?P```"+#@_A`#X6T````9L='`C``BY=@"P``4HN'7`L``/]0/(/$!+CH`P`` +M75M>7X/$&,,[_S/`9HM'%H/`!B7__P``4(N'7`L``/]0'(/$!(K8]L,0=#)J +M`&H`:@"X#P```"+##0`!```E__\``%!J`6H"5^A4+0``@\0N&0```!?@\08PX/&`&:+1Q!FA@8B]'!Z@B!X@#_```+PHO1P>((P>$8@>(` +M`/\`"\*Z``````O!B5=HB4<2,\!HD````&:+1Q:#P`@"P``9H7`#X0_`0``BH>["P``BLC^P3P"B(^["P``#XXG +M`0``9HN'<@L``&:I$`!T2C/`9HM'%H/`""7__P``4(N'7`L``/]0'(OP,\!F +MBT<6@\`))?__``!0BX=<"P``_U`

`(9@OP@>;__P``B70D((/$".LG@\<` +M,\!FBT<6@\`()?__``!0BX=<"P``_U`@)?__``")1"0<@\0$9HN'<@L``&:I +M$`!T0S/`9HM'%H/`!B7__P``4(N'7`L``/]0'(OH,\!FBT<6@\`')?__``!0 +MBX=<"P``_U`

`(9@OH@>7__P``@\0(ZR,SP&:+1Q:#P`8E__\``%"+AUP+ +M``#_4""+Z('E__\``(/$!('E__\``(M$)!A5)?__``!0,\!FBX>@"P``4&H! +M:@%J!U?H4B@``(/$'+CH`P``75M>7X/$&,,[_XI'&X3`#X0#^?__BD<:BM#^ +MPCP"B%<:#X[Q^/__:@!J`&H`:@-J`6H'5^@1*```@\0/_````QT0D'`$```#!XPB!RX````!FA=L/A'\```"*V#/`BL-0B\8E__\``%#_5P2X`0```(/$#"+#H@````"+QB7_ +M_P``4/]7'#/2)?X```"*%0`````+PB7[````BM@SP(K#4(O&)?__``!0_U<$ +MN`$```"#Q`PBPX'F__\``*(`````,\"*1"0C4%;_5P2#Q`A=6UY?@\04PX/L +M#%>+?"045HMT)!R+QB7__P``4/]7'(O&@\0$)?__``!0_U<;__P``P>8()?__``#!^`B!Y@#_```E_P`` +M``O&B_!FBT/Z@>;__P``9@/^9@O(9HMS_(O&@>;__P``P>8()?__``#!^`B! +MY@#_```E_P````O&B_!FBT/\@>;__P``9@/^9@O(9HMS_HO&@>;__P``P>8( +M)?__``#!^`B!Y@#_```E_P````O&B_!FBT/^@>;__P``9@/^9@O(@>?__P`` +M9HLSB\:!YO__``#!Y@@E__\``,'X"('F`/\``"7_````"\:+\('F__\``#O^ +M=`DSP%M>7X/$",,STHO!9HL36R7__P``7@O"7X/$",.#QP"#["17BWPD+%93 +M58ML)$"+1"0\)?__``!0_U<`(@\0(9@OPBT0D/('F__\` +M`&:)="0P)?__``"#P`IFB40D+(O8)?__``!0_U</__P`` +M4_]7','@"(/$"&8+\&H`@>;__P``9HET)#)FBW0D+HO&)?__``!0_U<$:@"! +MYO__``!&@>;__P``5O]7!(MT)#R#Q!"+QFH`)?__``!0_U<$:@"!YO__``!& +M@>;__P``5O]7!(M$)$R#Q!`E__\``#/V@\`"C5\<9HO0BT0D/(EL)!`E__\` +M`(E\)!2+^HUH`XO')?__``!0_Q.+Q27__P``4/\3B$0T((/$"$:#_@A\WV:+ +M="0JBWPD%(M$)#"+;"00)?\```!0B\8E__\``%#_5P2+1"0X@>;__P``)?__ +M``!&P?@(@>;__P``)?\```!05O]7!(MT)#R#Q!`SP(I$)"Y0B\8E__\``%#_ +M5P0SP('F__\``&:+1"0V1L'X"('F__\``"7_````4%;_5P0SP(/$$(I$)#-0 +MBT0D0"7__P``4/]7!(U$)"!0Z`W]__^#Q`R%P'0^B\5%BU0D&(@0B\5%BE0D +M&8@0B\5%BE0D&H@0B\6*5"0;18@018M4)!R(5?^*5"0=B%4`75M>7X/$),.# +MQP"X!@```(O]O@4```"%P'3EB\9.Q@<`1X7`=?5=6UY?@\0DPY"-="8`@^P< +M,\E7BWPD+%9358M$)#1FBV@0BT0D-,9'`03&1S`!9L='$B``9HE/%H'E_/\` +M`&:);Q!FB4\4BT`4@^#PB4<8A +M(,9''P"-1"04B]U0:@1J/('C__\``(/#$8M4)#R!X___``"-=R)34NAF^?__ +MC40D*%#H#/S__X/$&(7`=#5&C5PD%$-&0T9#1D-#1HI#^XA&^XI#_(A&_(I# +M_8A&_8I#_HA&_HI#_XA&_XH#B`;K'(/'`+@&````NP4```"%P'0+B\-+Q@8` +M1H7`=?6+Q27__P``@\`0)?__``!0BT0D-/]0'(/$!*F`````=`;&1RP0ZP3& +M1RP$B@^`^0IU)<9'(01=6UXSP%^#Q!S#@\8`QD7__P``4(M$)#1J`6H&@\41@>7__P``55#HC?C__S/`@\049HM$ +M)":I``$``'0#`*(1QZ+1"0T9HM`!&:I!`!U$%U;7K@"````7X/$',.#QP!= +M6UXSP%^#Q!S#._^#[`Q7BWPD((U$)`2+5"044(M$)"!J!"7_````4(M$)"0E +M__\``%!2Z//W__^-1"084.B9^O__@\08A-3"0$04=!1T%'04%'BD'[ +MB$?[BD'\B$?\BD']B$?]BD'^B$?^BD'_B$?_B@&(!U^#Q`S#D+@&````N04` +M``"%P'3LB\%)Q@<`1X7`=?5?@\0,PSO_@?\`````@?\`````@^P(5S/_5HMT +M)!135<9&&P!J"%;HIR0``(/$"*D`"```#X2L````O1````"+QT<]Z`,``'XB +M:@!J`&H`:@%J`6H&5NA(&P``N`$```"#Q!Q=6UY?@\0(PV:%KG(+``!T0S/` +M9HM&%H/`""7__P``4(N&7`L``/]0'(O8,\!FBT86@\`))?__``!0BX9<"P`` +M_U`

`(9@O8@>/__P``@\0(ZR,SP&:+1A:#P`@E__\``%"+AEP+``#_4""+ +MV('C__\``(/$!/?#``@```^%6?___UU;7C/`7X/$",.#QP"#[`A7BWPD$%9F +MBX=R"P``9JD0`'1&,\!FBT<6@\`&)?__``!0BX=<"P``_U`?__P``@\0$]\>`````7K@`````#Y7`7X/$ +M",.0@?\`````@?\`````@^P(5XM\)!!69HN'<@L``&:I$`!T1C/`9HM'%H/` +M""7__P``4(N'7`L``/]0'(OP,\!FBT<6@\`))?__``!0BX=<"P``_U`

`( +M9@OP@>;__P``@\0(ZR:#QP`SP&:+1Q:#P`@E__\``%"+AUP+``#_4""+\('F +M__\``(/$!(O&@^#W9HOP9HN'<@L``&:I$`!T4(O&)?\```!0,\!FBT<6@\`( +M)?__``!0BX=<"P``_U`$@>;__P``,\#!_@B!YO\```!69HM'%H/`"27__P`` +M4(N'7`L``/]0!(/$$.LE@\<`@>;__P``,\!69HM'%H/`""7__P``4(N'7`L` +M`/]0"(/$"&:+AW(+``!FJ1``=$4SP&:+1Q:#P`8E__\``%"+AUP+``#_4!R+ +M\#/`9HM'%H/`!R7__P``4(N'7`L``/]0','@"&8+\(O^@>?__P``@\0(ZR,S +MP&:+1Q:#P`8E__\``%"+AUP+``#_4""+^('G__\``(/$!/?'@````%ZX```` +M``^5P%^#Q`C#D(/L"%>+?"005F:+AW(+``!FJ1``=$8SP&:+1Q:#P`@E__\` +M`%"+AUP+``#_4!R+\#/`9HM'%H/`"27__P``4(N'7`L``/]0','@"&8+\('F +M__\``(/$".LF@\<`,\!FBT<6@\`()?__``!0BX=<"P``_U`@B_"!YO__``"# +MQ`2+QH/("&:+\&:+AW(+``!FJ1``=%2+QB7_````4#/`9HM'%H/`""7__P`` +M4(N'7`L``/]0!('F__\``#/`P?X(@>;_````5F:+1Q:#P`DE__\``%"+AUP+ +M``#_4`2#Q!!>7X/$",.#QP"!YO__```SP%9FBT<6@\`()?__``!0BX=<"P`` +M_U`(@\0(7E^#Q`C#@^P,5XM\)!16BD<;A,`/A9@```!FBX=R"P``9JD0`'1' +M,\!FBT<6@\`()?__``!0BX=<"P``_U`7X/$ +M#,,[_[@!````7E^#Q`S#D&:+AW(+``!FJ1``=$?_ +M_P``@\0(ZR4[_S/`9HM'%H/`!B7__P``4(N'7`L``/]0((OX@>?__P``@\0$ +M]\>`````#X5Q____7C/`7X/$#,.0@?\`````@?\`````@^P85XM\)"!64U5F +MBX=R"P``9JD0`'1$,\!FBT<6@\`()?__``!0BX=<"P``_U`/_````4V:+1Q:#P`DE__\``%"+AUP+ +M``#_4`2#Q!#K(Y"!X___```SP%-FBT<6@\`()?__``!0BX=<"P``_U`(@\0( +M9HN'<@L``&:I$`!T13/`9HM'%H/`#B7__P``4(N'7`L``/]0'(OH,\!FBT<6 +M@\`/)?__``!0BX=<"P``_U`

`(9@OH@>7__P``@\0(ZR4[_S/`9HM'%H/` +M#B7__P``4(N'7`L``/]0((OH@>7__P``@\0$9HEL)"9FA>T/A$\!``!FBX=R +M"P``9JD0`'1&,\!FBT<6@\`&)?__``!0BX=<"P``_U`7__P``@\0$9HN'<@L``&:I$`!FB6PD)'1#,\!F +MBT<6@\`$)?__``!0BX=<"P``_U`7__P``@\0$@>7__P``BT0D)"7__P``P>`0"\5F]\8`!(E$)!AT(C/`BU0D +M&&:+1"0F4#/`4F:+1Q90BX=<"P``_U`H@\0,ZR`SP(M,)!AFBT0D)E`SP%%F +MBT<64(N'7`L``/]0$(/$#%?HGO?__X/$!(7`=`LSP%U;7E^#Q!C#D&:+AW(+ +M``!FJ1``=$,SP&:+1Q:#P`@E__\``%"+AUP+``#_4!R+\#/`9HM'%H/`"27_ +M_P``4(N'7`L``/]0','@"&8+\('F__\``(/$".LC,\!FBT<6@\`()?__``!0 +MBX=<"P``_U`@B_"!YO__``"#Q`2+QH/("&:+\&:+AW(+``!FJ1``=%"+QB7_ +M````4#/`9HM'%H/`""7__P``4(N'7`L``/]0!('F__\``#/`P?X(@>;_```` +M5F:+1Q:#P`DE__\``%"+AUP+``#_4`2#Q!#K)8/'`('F__\``#/`5F:+1Q:# +MP`@E__\``%"+AUP+``#_4`B#Q`A7Z#S!__^#Q`2#R`%=6UY?@\08PSO_@?\` +M````@?\`````@^P(5XM\)!!69HN'H`L``&:%P`^$[@(``#/`9HN'/@L``(/` +M!`T```"`4#/`9HN'<`L``(/`%"7__P``4(N'7`L``/]0#&:+AZ`+``"#Q`AF +MJ0(`=!YFQX>B"P```@!7Z<``"^`0```(/$!.DJ`@``._]FBX>@"P``9JD$ +M`'039L>'H@L```0`O@(```#I"`(``&:+AZ`+``!FJ0@`=!]FQX>B"P``"`!7 +MZ%`U``"^`P```(/$!.G?`0``@\8`9HN'H`L``&:I(`!T'V;'AZ(+```@`%?H +MU#8``+X%````@\0$Z;,!``"#Q@!FBX>@"P``9JE``'0?9L>'H@L``$``5^CX +M-@``O@8```"#Q`3IAP$``(/&`&:+AZ`+``!FJ8``=$=FQX>B"P``@`!J$C/` +M9HN'<`L``(/`&"7__P``4(N'7`L``/]0#(/$"+X'````9HN'H`L``&8-`0!F +MB8>@"P``Z3(!```[_V:+AZ`+``!FJ0`!=!]FQX>B"P````%7Z'@X``"^"``` +M`(/$!.D'`0``@\8`9HN'H`L``&:I$`!T,V;'AZ(+```0`&H(,\!FBX=P"P`` +M@\`8)?__``!0BX=<"P``_U`,@\0(O@0```#IQ````&:+AZ`+``!FJ0!`=#-F +MQX>B"P```$!J"#/`9HN'<`L``(/`&"7__P``4(N'7`L``/]0#(/$"+X.```` +MZ80```!FBX>@"P``9JD!`'0O9L>'H@L```$`:@@SP&:+AW`+``"#P!@E__\` +M`%"+AUP+``#_4`R#Q`@S]NM*._]J`VH`,\!FBX>@"P``4&H%:@!J!E?HD@\` +M`(/$'#/`9L>'H@L```$`:@AFBX=P"P``@\`8)?__``!0BX=<"P``_U`,@\0( +M,_8SP&:+ASX+``!0,\!FBX=P"P``@\`4)?__``!0BX=<"P``_U`,5C/`9HN' +M<`L``(/`&"7__P``4(N'7`L``/]0##/`,\EFBX>B"P``B(^["P``]]!F(X>@ +M"P``@\009HF'H`L``(B/3`L``%Y?@\0(PX/'`(/L"#/`BTPD#&:+00*#^$%T +M=H/X0G1]@_A##X2`````@_A$#X2#````@_A%#X2&````@_A)````@_A0 +M=`6#^&!U/F;'00(S`&:+D:`+``!F@\H09HN!H@L``&:)D:`+``!FAAP_/__@\0$@\0(PY!FQT$",0"#Q`C#._]FQT$" +M,@"#Q`C#._]FQT$",P"#Q`C#._]FQT$"-`"#Q`C#._]FQT$"-0"#Q`C#._]F +MQT$"-@"#Q`C#._^#[!@SP%>+?"0@4V:+1P*#^$0/A(P````/C]("``"#^#8/ +MA.$!```/CY\"``"#^#1T<@^/6`(``(/X(0^%LP0``&:+1P1F_T<$9CT*``^& +MH00``#/`9HN'<`L``(/`,B7__P``4(N'7`L``/]0((/(#R7__P``4%>+AVP+ +M``#_4#1FQT<"$`!J`&H`:@!H``(``&H`:@%7Z(0-``"#Q"CI4`0``#/`9HN' +M<`L``(/`,B7__P``4(N'7`L``/]0((/$!(O09O?"`@`/A?$```"*A[L+``"* +MR/[!/`.(C[L+```/C@T$``!FQT<"$`!7Z.T-``"+AV`+``!0BX=<"P``_U`\ +M@\0(,\!J!&H`9HM'`E!J!6H`:@97Z`,-```SP&:+ASX+``!0,\!FBX=P"P`` +M@\`4)?__``!0BX=<"P``_U`,,\!FBX=`"P``4#/`9HN'<`L``(/`%"7__P`` +M4(N'7`L``/]0#(/$+&H/5XN';`L``/]0-&H`,\!FBX=P"P``@\`()?__``!0 +MBX=<"P``_U`,@\005^A$#0``BY=@"P``4HN'7`L``/]0/,>'4`L```````"# +MQ`CI-@,``#O_@>+__P``@\H!@>+__P``4E>+AVP+``#_4#1F_T<",\EFB4\$ +MB8]0"P``5XN';`L``/]0+&;'1P0``&;_1P*#Q`SI[@(``#O_9HM'!&;_1P1F +M/0H`#X;:`@``,\!FBX=P"P``@\`R)?__``!0BX=<"P``_U`@@\@!)?__``!0 +M5XN';`L``/]0-,>'4`L```````!FQT<"$`!J`&H`:@!H``(``&H`:@%7Z+,+ +M``"#Q"A7Z&H,``"+CV`+``!1BX=<"P``_U`\@\0(Z68"```[_X/X-0^%6P(` +M`&:+1P1F_T<$9CT!``^&20(``%>+AVP+``#_4"QFQT<"-@!FQT<$``"#Q`3I +M*P(``(/'`(/X0G0/#X\=`@``@_A!#X44`@``9HM'!&;_1P3I!P(``(/'`(/X +M4`^$,P$``'\U@_A%#X7P`0``9HM'!&;_1P1F/04`#X;>`0``5XN';`L``/]0 +M+&;'1P)&`(/$!.G&`0``._^#^&`/A;L!``!FBX=R"P``BI=,"P``_L)FJ8`` +MB)=,"P``#X34````9HN'M`L``&:%P`^$Q````(J'3@L``*@!#X2V````:@$S +MP&:+AW`+``"#P"XE__\``%"+AUP+``#_4`0SP&:+AW`+``"#P!HE__\``%"+ +MAUP+``#_4"!J`"4`#P``B]@SP&:+AW`+``"#P"XE__\``%"+AUP+``#_4`2# +MQ!1F@_L!=E%FQT<"0P#_A]@0``!FBX>@"P``9@T0`&:)AZ`+``!FBX>B"P`` +M9H7`#X7K````9HM'`F8],``/@MT```#&A[L+````5^C\]___@\0$Z<@```!F +MBX>@"P``9H7`=$2*A[L+``"*T/["/!Z(E[L+``!^,&H`,\!FBX>B"P``4#/` +M9HN'H`L``%!J`6H!:@=7Z+()``"XZ`,``(/$'%M?@\08PS/`,]**A\$.``"* +ME\(.```[PG0&_H=-"P``BX=$"P``J0$```"-4`&)ET0+``!T2&@4`P``,\!F +MBX=P"P``@\`4)?__``!0BX=<"P``_U`,BX=$"P``P>@!4#/`9HN'<`L``(/` +M&"7__P``4(N'7`L``/]0#(/$$%NXZ`,``%^#Q!C#D(/L#%>+?"04:@]7BX=L +M"P``_U`TBT0D((/$"(7`=#EJ`#/`9HN'<`L``(/`""7__P``4(N'7`L``/]0 +M#(/$"%?HFPD``(N78`L``%*+AUP+``#_4#R#Q`C'AU`+````````7X/$#,.0 +M._^!_P````"#[#17BWPD/%9356:+1P)F/2$`=7)H``,`@#/`9HN'<`L``(/` +M%"7__P``4(N'7`L``/]0#&H%C40D(%`SP&:+AW`+``"#P!@E__\``%"+AUP+ +M``#_4#"+1"0L9HF'/`L``&:+1"0N9HF'/@L``(M$)#!FB8=`"P``BT0D.&:) +MAT(+``"#Q!0SP&:+AT`+```-````@%`SP&:+AW`+``"#P!0E__\``%"+AUP+ +M``#_4`PSP&:+AW`+``"#P!@E__\``%"+AUP+``#_4"2+\+C_````9B/&@\0, +M2(/X!G=O_R2%Q````#O_,\!FBX=P"P``@\`8)?__``!0BX=<"P``_U`D@\0$ +MB]"#^@@/A)L```!FQT<"$`!J`"7__P``P>H04('B__\``%)H``$``&H`:@%7 +MZ'@'``"#Q!SK$8/'`(/X1G4)5^@E.```@\0$,\!FBX=`"P``4#/`9HN'<`L` +M`(/`%"7__P``4(N'7`L``/]0#('F__\``#/`@;__P``5F:+AW`+ +M``"#P!@E__\``%"+AUP+``#_4`B#Q!!=6UY?@\0TPS/`9HM'`H/X(70I@_@V +M=81FQT<",`!7Z*@'``"+EV`+``!2BX=<"P``_U`\@\0(Z6[___]FQT<",`!J +M`&H`:@!J`&H`:@%7Z+@&``"#Q!SI3O___S/`9HN'<`L``(/`&"7__P``4(N' +M7`L``/]0),'H$&:)1"1$,\!FBT<"@\0$@_@R=#N#^$(/A((```"#^%!T"8/X +M8`^%,`,``(M$)$!FJ0"`#X0B`P``9JD`"`^$'`(``,:'GPL``&3I+P(``(M$ +M)$!FJ0"`=#AFBX>@"P``9@T0`&:)AZ`+``!FBX>B"P``9H7`=1IFBT<"9CTP +M`'(0QH>["P```%?H!?3__X/$!&;'1P(S`.F5_O__@\<`BT0D0&:I`(`/A"H! +M``!FJ0`(=`S&AY\+``!DZR*#QP"+1"1`9JD``70*N!````#K"(/'`+@$```` +MB(>?"P``BT0D0&:I``)T"\:'G`L```+K"3O_QH><"P```6;'1P)0`,>'1`L` +M``````"+AR@+``"-CR@+``")AS`+```STHF'+`L``(J'M@L``(B'MPL``(N? +M*`L``&:)4P2+`8M;*#O8=?-FBX>T"P``9H7`=$\SV[@?````(H>V"P``B^AF +MBX>T"P``9H7`?C2)="00C8>T"P``B_"-1&T`P>`#C80'O`L``%!7Z#@T``!% +M@\0(@^4?0P^_!CO8?-R+="005^B?)@``:@`SP(J'G`L``%`SP(J'GPL``%`S +MP&:+AXX+``!0:@!J`%?HQP0``(/$(.E=_?__@\8`9L='`D,`N`\```!F(T0D +M0(/X#74SBH>>"P``B(>?"P``BH>>"P``A,!U46H`:@!J`&@`"```:@!J`E?H +M?`0``(/$'.LW@\8`BH>="P``B(>?"P``:@!J`&H`N/\```!F(T0D3`T`!P`` +M)?__``!0:@!J`E?H0P0``(/$'&;'1P0``.G3_/__D(M$)$!FJ0`!=`JX$``` +M`.L(@\<`N`0```"(AY\+``"+1"1`9JD``G0+QH><"P```NL).__&AYP+```! +M:@`SP(J'G`L``%`SP(J'GPL``%`SP&:+AXX+``!0:@!J`%?HT0,``(/$'.EG +M_/__D#/`9HM'`H/X,W0Y@_A#="*#^%!T!8/X8'5V:@!J`&H`:``(``!J`&H# +M5^B9`P``@\0<9L='`D0`5^A*`@``@\0$ZP>09L='`C0`9HN'H`L``&8-`$!F +MB8>@"P``9HN'H@L``&:%P`^%^OO__V:+1P)F/3``#X+L^___QH>["P```%?H +M0?'__X/$!.G7^___D&H`B\8E__\``%`SP&:+1P)0:@5J`&H&5^@;`P``@\0< +MZ;'[__^#QP`SP&:+AW`+``"#P!@E__\``%"+AUP+``#_4"1J`&H`P>@0:@"+ +MV"7__P``4&H`:@-7Z-H"``!FBT<"@\0@9CU0``^"9_O__V;WPPL/=`YFQT<" +M0P#I5?O__X/&`,:'CQ````?I1OO__\:'3`L```#I.OO__X'_`````('_```` +M`(/L##/`5XM\)!164V:+ASX+```-````@%`SP&:+AW`+``"#P!0E__\``%"+ +MAUP+``#_4`PSP&:+AW`+``"#P!@E__\``%"+AUP+``#_4"2+\#/`9HN'<`L` +M`(/`&"7__P``4(N'7`L``/]0)#/2@\009HN7H@L``(O.@^%_N`$```#3X(O8 +M)?__```[PG0?:@$SP&:+PE"+PR7__P``4&H%:@!J!E?HY0$``(/$'&;'AZ(+ +M`````&:+1P)F/3$`=5-FQT<",`!7Z(,"``"+EV`+``!2BX=<"P``_U`\@\0( +M6UY?@\0,PY"+QH/@?X/X!W4)5^CH)P``@\0$@^9_@_X.=`E7Z(?O__^#Q`1; +M7E^#Q`S#D(O&P>@0J0`@``!UR&H"@>/__P``P>X0@>;__P``5E-J!6H`:@97 +MZ%$!``"#Q!Q;7E^#Q`S#@\<`C70F`(/L%#/2,\E7BWPD'%9358J7P0X``(J' +MM@L``(B/N0L``(B'MPL``#/`BH?"#@``B(^Z"P``.\(/A(D```"+[XV%8`L` +M`(VUP@X``(E$)!R-A<(.``"-O<$.``")1"08C9V\#@``BI7"#@``N1\````B +MRFH!C0Q)P>$"C80-Q`X``(E$)!B+"(M$)"!1BP!0BX5<"P``_U!$BT0D)(/$ +M#(J5P@X``/["B!`STHM$)!1F#[9`!&8#`V:)`S/`B@:*%SO"=:&+_6:+E[P. +M``"*A\(.``!F@_H@B(?##@``="0E_P```%`SP(J'P0X``%`SP&:+PE!J`FH! +M:@97Z$````"#Q!QFQX>\#@``(``SR8B/O@X``(B/OPX``(B/P`X``(B/P0X` +M`(B/PPX``(B/P@X``%U;7E^#Q!3#._^-="8`@^P05XM$)!Q6BW0D'&:)1"0( +MBT0D)#/_B$0D"F:+AI@+``!FB40D#(M$)"AFB40D$(M$)"QFB40D$HM$)#!F +MB40D%(M$)#1FB40D%HM$)"2$P'0NQH:<"P```&:+1@)FQT8",`!F/4``N``` +M```/E\!J`(OX5HN&;`L``/]0!(/$"(J&G`L``(A$)`N-1"0(4(N68`L``%*+ +MAEP+``#_4#B#Q`B%_W0)5N@2````@\0$7E^#Q!##D#O_@?\`````@^P4,\`S +MTE>+?"0<5E-5BI>X"P``BH>V"P``.\(/A(@```"+[XV%7`L``(VUM@L``(E$ +M)""-A6`+``")1"0T"P``4&H#:@%J!E?H8?[__X/$'#/)9HF/ +MM`L``(B/M@L``(B/MPL``(B/N`L``%?H_?S__X/$!%U;7E^#Q!3#._]75HMT +M)`RX'P```(M,)!`BAL$.``"-!$#!X`*-O`;$#@``BT0D%(D'BD0D&,9'!0"( +M1PB*AL$.``#^P(B&P0X``%%6BX9L"P``_U`@B$<$@\0(7E_#@\<`._^!_P`` +M``#'!?P#``````#_@^P,5[^`````5E/'1"04`````%6+]X'F@("`@#/^B];! +MZ@\#_S/Z]\:`````=`:!]P3!';>+3"08O@$```#3YKL``0``*]Z!^P`!```/ +MC:,```"+PXL,G0`````KQHO7,]%#B12%`````('[_0```'U=B\.+#)T````` +M*\:+US/1B12%`````(O7B\.#PP0KQHTLA0````"+!)WT____,]")E00```"+ +MUS,4G?C___^)E0@```"+UXL,G?S___\ST8'[_0```(F5#````'RC@?L``0`` +M?1^+PXL,G0`````KQHO7,]%#B12%`````('[``$``'SABU0D&$*)5"08@_H( +M#XP,____75M>7X/$#,,[_XUT)@!75E.+1"0858MT)!B+7"04@_X0BS@/C)(` +M``#WPP,```!T)(O',]+!Z`B*$X'G_P```$XSUT,S!)4`````]\,#````B_AU +MW(O&P?@"A<"-:/]T5X/#!#-[_(O'@>?_````P>@(,P2]`````(OXP>@(@>?_ +M````,P2]`````(OXP>@(@>?_````,P2]`````(OXP>@(@>?_````,P2]```` +M`(OXB\5-A@(BA.!Y_\```!#,]BT0D'(DX75M>7\.#QP"!_P````"!_P````!0BT0D%,<$)``` +M``!7OP$```!6C7#_4U6+;"0@A(#A?:-G!.\"P``=`@SP&:+0PCK`HO%*\=0BPL#^5?HL?[__S/`@\0, +M9HM#"#/_*^B+QDZ%P'6M75M>BT0D!#TX^R*$N``````/E\````]Y````'4I,\"*1P$E[P```#WD````=1B* +M1P(\`W41BT<#/0`$D`=T$.L%._^#Q@8SP%M>7\.#QP!;7K@!````7\.#QP"! +M_P````"!_P````!7BWPD#%:+="0,9HM'"&8]-0!S,HJ&?0L``"3\B(9]"P`` +M:``!``!6BX9L"P``_U`<:@!J`&H`:@-J`&H%5N@M^O__@\0D,\"+%XI"`27` +M````@_A`=5E75NCB_O__@\0(AV"P``BI>W"P``.\(/A!H!``")?"00C8=@"P``B40D +M((V'MPL``(E$)!R-AW(+``")1"08B\>-G[8+``"-N'T+``"-L+0+``"+5"00 +MN1\```"*@K8+```BR(M$)!B-#$G!X0-F]P"``(VL"KP+``!T4(I%#H3`=4F+ +M31`SP%%FBT4*4#/`BH*V"P``4%+HL_S__X/$$(7`=!R+1"00_X#($```BA?V +MP@1T!\9%#@+K!9#&10X!9HM5"F:#Z@1FB54*BD40B@L"P8@#9HL&9BM%$&:) +M!HH'J`-T#E6+5"044NBP_?__@\0(,\"*10Y0BTT448M%$%`SP&:+10I0BT0D +M,(L0BT0D(%*+@%P+``#_4$B+5"0P@\04,\"*$HH#@>+_````.\(/A1S___]= +M6UY?@\08PY"+1"0(BU0D!(7`C4C_=`N+P4G&`@!"A((P>$8@>(``/\`"\(+P<.#QP"-="8`5XM\)`A6 +M9HN'<@L``&:I$`!T53/`,])FBT<69HM4)!`#PB7__P``4(N'7`L``/]0'(OP +M,\!FBT<6,])FBU0D%(U$$`$E__\``%"+AUP+``#_4!S!X`AF"_"+QB7__P`` +M@\0(7E_#._\SP#/29HM'%F:+5"00`\(E__\``%"+AUP+``#_4"`E__\``(/$ +M!%Y?PX/'`('_`````('_`````%>+?"0(9HN'<@L``&:I$`!T6C/`,])FBU0D +M#(I$)!!0,\!FBT<6`\(E__\``%"+AUP+``#_4`0SP#/29HM$)!C!^`AFBU0D +M%"7_````4#/`9HM'%HU$`@$E__\``%"+AUP+``#_4`2#Q!!?PS/`,])FBT0D +M$%`SP&:+1Q9FBU0D$`/")?__``!0BX=<"P``_U`(@\0(7\.0._^!_P````!7 +MBWPD"&C_````,\!FBT<6@\`')?__``!0BX=<"P``_U`$BT0D%(/$"(7`=%XS +MP&:+1P:#^`)T6(/X`W5.:/X````SP&:+AW`+``"#P!TE__\``%"+AUP+``#_ +M4`1H@````#/`9HN'<`L``(/`'R7__P``4(N'7`L``/]0!&HRBX=<"P``_U`T +M@\047\.#QP!J!S/`9HN'<`L``(/``B7__P``4(N'7`L``/]0!&B`````,\!F +MBX=P"P``@\`#)?__``!0BX=<"P``_U`$:C*+AUP+``#_4#2#Q!1?PX/'`(M4 +M)`0SP&:+0A90BY)<"P``4NCIC?__@\0(PY"-="8`4%>+?"0,5^BTD/__,\"# +MQ`2+EY00``"*1U@#PHN7H!```(F'E!```#/`BX^<$```BD=:`\&+CZP0``") +MAYP0```SP(I'6P/"BY>H$```B8>@$```,\"*1UX#PHN7L!```(F'J!```#/` +MBD=?`\&+C[P0``")AZP0```SP(I'8`/"BY>X$```B8>P$```,\"*1V(#PHN7 +MP!```(F'N!```#/`BD=D`\&)A[P0```SP(I'90/"B8?`$```BH=^"P``A,!T +M(<:'?@L```"-AY00``!0BY=@"P``4HN'7`L``/]00(/$"%^#Q`3#._^-="8` +M9HM,)`B+5"0$B\&!X?__``#!X0@E__\``,'X"('A`/\``"7_````"\%FB4(0 +MBT0D#(E"$HM$)!")0F@SP&B0````9HM"%H/`!R7__P``4(N"7`L``/]0!(/$ +M",.-="8`BU0D!&:+0A!FA+T27__P``@>+__P``.\)T+HO'@>?__P``P?\$)?__``#!X`P+QT:+ +M^'S3O@0````SP%U;7E^#Q`3#D.L%._^#Q@1=6UZX`0```%^#Q`3#4S/`9HM$ +M)`Q0BT0D#/]0'#/2)?X```"*%0`````+PC/2BE0D%`O"BM@SP(K#4#/`9HM$ +M)!10BT0D%/]0!+@!````(L.#Q`RB`````%O#._]3,\!FBT0D#%"+1"0,_U`< +M,](E_@```(H5``````O",]**5"04]]*!XO\````CPHK8,\"*PU`SP&:+1"04 +M4(M$)!3_4`2X`0```"+#@\0,H@````!;PSO_._^!_P`````SP&:+1"0(4(M$ +M)`C_4!R#X`&#Q`3#._\[_X'_`````(/L&%=64U5H-I0``(M$)#0E__\``(M4 +M)#"#P!XE__\``%!2Z'C^__^#Q`R%P'0=75M>N`,```!?@\08P[@"````75M> +M7X/$&,.#QP!H1I(``(M$)#0E__\``(M,)#"#P`(E__\``%!1Z#/^__^#Q`R% +MP'7(BT0D,"7__P``@\`#9HE$)"`E__\``%"+1"0P_U`*V(A$)"N+ +M1"0PBW0D)(/`!(E$)!R->!@SP(K#@^"_B40D&(/$!#/`,]**5"0EBL,SPB7_ +M````4(O&)?__``!0BT0D(/\0:F'_%XO&)?__``!0_Q+Q27__P``4/\7 +MBE0D-8/$$(K8B\,RPHM4)!B*V#/`BL.#X+\[T`^%Z0```/Y,)"5UKC/`BD0D +M)U`SP&:+1"0F4(M$)#3_4`2_^/___XM$)#1FBVPD*HI<)"^(7"0NC7`<@\`$ +MB40D((/$"(I$)"8T0(A$)"8SP(K#@_!`)?\```!0B\4E__\``%"+1"0@_Q!J +M8?\6B\4E__\``%#_%HK8@\00,\`STHI$)":*TSO"=31'?+7X/$&,,[_X'_`````('_ +M`````(/L"#/`5U:+="049HM&%H/`""7__P``4(N&7`L``/]0((/$!(OX9O?' +M0`$/A18!``!H@````#/`9HM&%H/`""7__P``4(N&7`L``/]0!&@L`0``BX9< +M"P``_U`T,\!FBT86@\`()?__``!0BX9<"P``_U`7X/$",,[_XUT)@"# +M[!0SP%>+?"0<5E-59HM'%H/`%27__P``4(N'7`L``/]0'(/$!(K8]L-`#X5G +M`0``,\!FBT<6@\`0)?__``!0BX=<"P``_U`@@\0$B_!FJ0`!#X0S`0``,\!F +MBT<6@\`8)?__``!0BX=<"P``_U`D,\!FBT<6@\`8)?__``!0BX=<"P``_U`D +M,\!FBT<6@\`8)?__``!0BX=<"P``_U`D,\!FBT<6@\`8)?__``!0BX=<"P`` +M_U`D,\!FBT<6@\`8)?__``!0BX=<"P``_U`D,\!FBT<6@\`8)?__``!0BX=< +M"P``_U`D@\08B^AF]\8(`'5TON+___\SP&:+1Q:#P!`E__\``%"+AUP+``#_ +M4"2#Q`0E"`$``#T``0``=6@SP&:+1Q:#P!@E__\``%"+AUP+``#_4"2#Q`0[ +MQ75)1GRW,\"^'@```&:+1Q:#P!4E__\``%"+AUP+``#_4!R*V(/$!.LR._]F +MBX=R"P``9JD`"'4C._UW$HV'[!```#O%7X/$%,.# +MQP`SP(K#4#/`9HM'%H/`%27__P``4(N'7`L``/]0!(/$"+@!````75M>7X/$ +M%,.#QP`[_X'_`````(/L)#/`5XM\)"Q64U7&1QL`9HM'%H/`$"7__P``4(N' +M7`L``/]0'(A$)#`L``(I4)#&$T`^$$`$``(/#!(M#_(E$)"0SP(K"]]B#X`-FB40D +M*B7__P``@_@!=&J#^`(/A)4```"#^`,/A;L````SP#/29HM'%HI4)#&-1!`? +M)?__``!0BX=<"P``_U`@(,]**T<'B&`O",])0,\!FBT<6BE0D +M.8U$$!PE__\``%"+AUP+``#_4`R#Q`SK93O_BT0D)#/2P>@8)?\```!0,\!F +MBT<6BE0D-8U$$!PE__\``%"+AUP+``#_4`2#Q`CK,H/'`(M$)"0STL'H$"7_ +M_P``4#/`9HM'%HI4)#6-1!`<)?__``!0BX=<"P``_U`(@\0(,]*+QF:+5"0J +M)?__```[PGP'9BORZP4[_V8S]L9$)#$`,\"*1"0Q@\`#9@/P9O?&_/]T)H'F +M__\``#/`P?X"5E-FBT<6@\`<)?__``!0BX=<"P``_U`8@\0,75M>7X/$),.# +MQP`SP(I$)#/!^`2#X`,+V&:%]G4-9L=$)"@!`.G=````D&;'1"0H``"+TXO& +M@>+__P``)?__``#WVH/B`X/"7#O"#X^V````:F&+AUP+``#_4!QJ88N'7`L` +M`/]0'#/`9HM'%H/`#B7__P``4(N'7`L``/]0((O()?__``"#Q`R+UH'B__\` +M`#O"='*)7"00B]F]^/___V:%VW16:F&+AUP+``#_4!QJ88N'7`L``/]0'&IA +MBX=<"P``_U`<:F&+AUP+``#_4!PSP&:+1Q:#P`XE__\``%"+AUP+``#_4""# +MQ!1%B]A\K[T(````ZP:#QP"#Q0AF_T0D*(M<)!"+1"0H9H7`#X2"````,\!F +MBT<6@\`$)?__``!0BX=<"P``_U`@B^@SP&@0`0``9HM'%H/`!"7__P``4(N' +M7`L``/]0"#/`9HM'%E"+AUP+``#_4""+R(O#]]AF`\@SP('E__\``+K_```` +M58'F`/\``&:+1Q9F(]&#P`0+\B7__P``4(N'7`L``/]0"(/$&/?#`P```'1- +M,\!FBT<6@\`<)?__``!0BX=<"P``_U`DB40D*(/$!(O#N@,```"#X`.-;"0D +M9B/3`^B#^@1T%KD$````14-F3HI%_XA#_W0%0CO1=>]F]\;\_W0GB\8E__\` +M`,'X`E`SP%-FBT<6@\`<)?__``!0BX=<"P``_U`P@\0,B\8E_/\```/89O?& +M`P`/A-/]__\SP&:+1Q:#P!PE__\``%"+AUP+``#_4"2)1"0H@\0$,])F]\8# +M`(U$)"0/CJ/]__^-:`&_`P```&8C_D**`(E4)!R-=_V(`T,[UGTKN00```"* +M10!%B`-#BD4`18@#0XI%`$6(`T.*10`#T46(`T,[UGS>B50D'(M4)!P[UP^- +M4/W__XM,)!R*10!%08@#B4PD'$,[SWSL75M>7X/$),.#QP`[_X'_`````&C` +M````,\"+5"0(9HM"%H/`%"7__P``4(N"7`L``/]0!(/$",.#QP`[_X'_```` +M`%>+?"0(5HJ'?`L``(3`=1UJ`#/`9HM'%H/`%"7__P``4(N'7`L``/]0!(/$ +M"#/`,_9FBT<6@\`&)?__``!0BX=<"P``_U`@@\0$J8````!T$U?H:9+__X/( +M`8/$!(OPZR6#Q@"*1QN$P'4-5^C?^/__@\0$A +M7\.#QP`[_X'_`````&C`````,\"+5"0(9HM"%H/`%"7__P``4(N"7`L``/]0 +M!(/$",.#QP`[_X'_`````%>+?"0(:@`SP&:+AW`+``"#P"XE__\``%"+AUP+ +M``#_4`1H````@#/`9HN'<`L``(/`%"7__P``4(N'7`L``/]0##/`9HN'<`L` +M`(/`&"7__P``4(N'7`L``/]0)#/`9HN'<`L``(/`%"7__P``4(N'7`L``/]0 +M)(/$&#T$``"`N``````/E,!?PSO_C70F`%>+?"005C/V4XM<)!!5BVPD&(O' +M1U!5_].#Q`B%P'0,N`$```!=6UY?PSO_1H/^!'S@75M>,\!?PX/'`(UT)@"# +M["175E-5BT0D.(J03@L``(#BR(B03@L``&:+D'(+``!F]\*``'1`BX`4"P`` +M,]*)1"0P]]B#X`>)1"0DBT0D.(M,)"2+@!`+``")1"0LBT0D.(N`&`L``"O! +MN2P```#W\8E$)"#K+<=$)"`@````BT0D.(N`9`L``(/`"(E$)##WV(/@!XE$ +M)"2+1"0X@\`(B40D+(M4)#`S]HM\)"0#UXE4)#"+5"0@.]8/CN````"+1"0X +MBUPD,(E\)!"->O^)="04C;!R"P``BVPD)(M,)"P#Z3/2C5P3$(M,)!"+1"0L +M`\AF]P:``'099L=!!@``9L=!!`"`9L"A^>HE?((M# +M*(MO*$:)6"2->?V+6R@[]WU#B5T@BVTHBT,H@\8$._>)6"2+6RB)72"+;2B+ +M0RB)6"2+6RB)72"+;2B+0RB)6"2+6RB)72"+0RB+;2B)6"2+6RA\O8M$)"`[ +M\'T8B5T@BT,HBVTH1HE8)(M4)""+6R@[\GSHBT0D.(M4)#")D#0+``!FBX!R +M"P``9JF``'0%,__K!I"_@`4``#/VBT0D.(N(9`L``(M$)#B-3#D(`_B+V??9 +M@^$'`]F-?`\(B7PD*#/_B5PD,#/)@\."P``7X/$2,,[_S/)B(_D$```B(_E +M$```B(_F$```B(_G$```B(_H$```B(_I$```Z\57BWPD"&H<,\!FBX=P"P`` +M@\`8)?__``!0BX=<"P``_U`,BI=X"P``N`$````BPB7_````4#/`9HN'F@L` +M`%`SP(J'GPL``%"+AVP+``#_4#!0,\!FBX=P"P``@\`8)?__``!0BX=<"P`` +M_U`,BX^""P``,\!19HN'<`L``(/`&"7__P``4(N'7`L``/]0##/2,\!FBY>8 +M"P``9HN'A@L``(/"!,'B$`O"4#/`9HN'<`L``(/`&"7__P``4(N'7`L``/]0 +M#&@```\`,\!FBX=P"P``@\`8)?__``!0BX=<"P``_U`,,\!FBX=P"P``@\`H +M)?__``!0BX=<"P``_U`@)?#P``!0,\!FBX=P"P``@\`8)?__``!0BX=<"P`` +M_U`,@\1`7\,[_SO_@?\`````@^P(,\!7BWPD$%93:BIFBX=P"P``@\`8)?__ +M``!0BX=<"P``_U`,,_:#Q`AFB[>("P``BH>?"P``P>80@*"P``,\!29HN'<`L``(/`&"7__P``4(N'7`L``/]0#(N/D`L` +M`#/`46:+AW`+``"#P!@E__\``%"+AUP+``#_4`R+AY0+``!0,\!FBX=P"P`` +M@\`8)?__``!0BX=<"P``_U`,,_:#Q""+E@`````SP%)FBX=P"P``@\`8)?__ +M``!0BX=<"P``_U`,@\0(@\8$@_X2?--FQT<"0@!;7E^#Q`C#@\<`:@@SP(M4 +M)`AFBX)P"P``@\`8)?__``!0BX)<"P``_U`,@\0(PX/'`#O_@?\`````:@@S +MP(M4)`AFBX)P"P``@\`8)?__``!0BX)<"P``_U`,@\0(PX/'`#O_@?\````` +M5XM\)`AJ"C/`9HN'<`L``(/`&"7__P``4(N'7`L``/]0#(N7E`L``#/`4F:+ +MAW`+``"#P!@E__\``%"+AUP+``#_4`R#Q!!?PX/'`(UT)@!7BWPD"&H*,\!F +MBX=P"P``@\`8)?__``!0BX=<"P``_U`,BY>0"P``,\!29HN'<`L``(/`&"7_ +M_P``4(N'7`L``/]0#(/$$%_#@\<`C70F`%`SP%=6BW0D$&:+AG`+``"#P!@E +M__\``%"+AEP+``#_4"2+^"7_````BY:4$```BXZ8$````\*+EIP0``")AI00 +M``"+Q\'H""7_`````\&)AI@0``"+Q\'H$,'O&"7_`````\*+EJ`0``")AIP0 +M```SP&:+AG`+``"!Y_\````#^H/`&(F^H!```"7__P``4(N&7`L``/]0)(OX +M)?\```"+CJ00``"+EJ@0```#P8N.L!```(F&I!```(O'P>@()?\````#PHN6 +MK!```(F&J!```(O'P>@0P>\8)?\````#PH'G_P```(F&K!```#/`9HN&<`L` +M``/Y@\`8B;ZP$```)?__``!0BX9<"P``_U`DB_@E_P```,'O"(N6M!````/" +MBY:X$```@>?_````B8:T$````_J)OK@0``!6Z![Z__^#Q!"*AGX+``"$P'0A +MQH9^"P```(V&E!```%"+CF`+``!1BX9<"P``_U!`@\0(7E^#Q`3#._\[_X'_ +M`````&H2,\"+5"0(9HN"<`L``(/`&"7__P``4(N"7`L``/]0#(/$",.#QP`[ +M_X'_`````%>+?"0(:@HSP&:+AW`+``"#P!@E__\``%"+AUP+``#_4`R#Q`B* +MAY\+``"Z``$``#P$=`1F@\H0,\F*CWT+``#WP0(```!T!&:#R@3WP0$```!T +M!&:#R@*!XO__```SP%)FBX=P"P``@\`8)?__``!0BX=<"P``_U`(@\0(7\.0 +M:@@SP(M4)`AFBX)P"P``@\`8)?__``!0BX)<"P``_U`,@\0(PX/'`#O_@?\` +M````9HM$)`B+5"0$9@N"H`L``&:)@J`+``!FBX*B"P``9H7`=1IFBT("9CTP +M`'(0QH*["P```%+H%L7__X/$!,,[_U>+?"0(5^C%U___BY=@"P``4HN'7`L` +M`/]0/(/$"%_#@^P(5XM\)!!3,ML/OH=."P``J8````!T**D$````=!"*ATX+ +M```,((B'3@L``.L1BH=."P``)%^`RP2(ATX+``"*ATX+``"H0'0TJ`)T#0P0 +MB(=."P``ZR:#Q@"*ATX+```DKXB'3@L``(J'>`L``*@"=`B`RP'K!H/'`(#+ +M`H3;=",SP(K#4#/`9HN'<`L``(/`*"7__P``4(N'7`L``/]0!(/$"#/`BI=/ +M"P``BL/WT"+"B(=/"P``6U^#Q`C#@^P@5U935<=$)"P`````QT0D'`@````S +M]HM$)#2+N"0+``"+1"0XB7PD*&:+`&:%P`^$T0```(M$)#@SR8U8!&:+0PB) +M7"0@9H7`#X2;````,\!!9HM#"(M4)!R#P`8#T(M$)!2)1"00BT0D&(E$)!2) +M5"0<9HM#"(E<)!AFB0>+`XE'"&:+1P9F)0`!9HE'!HM$)"B)1Q@[^'4X9HM' +M!F8-``1FB4<&BT0D-&:+@)H+``!FJ1``=`QFBT<&9@T`0&:)1P9FBT<&9@T` +M.&:)1P;K%)!FQT<$`("+1R2#P`R+$(/B_(D0B^^+?RB#PPR+1"0X1F:+`"7_ +M_P``._`/C#S___^)3"0L,_8SP&:+=0"+30AFBT4``_&#Y@,[\'X%,_9FB_"+ +M1"0TBU0D'(N`5`L``,'@`CO0#X;"`@``@_X##XVY`@``A?8/CK$"``!F@WT` +M!'9B9HM5`(M$)!AF@^H$9HE5`(M5#(/B_(E5#(M4)!B+[V;'!P0`BT`$9HM2 +M"('B__\``(M$$/QFQT<$`(")1Q2+1"0HB4<8BU0D+&:+1P9F)0`!0F:)1P:) +M5"0LZ4("``"#QP!F@WT``G91BT0D&&:+0`AF/0,`=2^+3"08BU0D&(M)!(M2 +M!&:+$HI)`H'A_P```('B__\``,'A$`O1B544Z?T!```[_XM4)!B+4@2+$HE5 +M%.GJ`0``@\<`,_^+121FBWT`9HLPB]:!XO__```#^H/_!'YMC5;^9HD0BT0D +M&&:+50"#P@)FB54`9HM`"&8]`0!U$HM$)!B+0`2*`"7_````ZQ$[_XM$)!B+ +M0`1FBP`E__\``(M,)!2+5"04P>`09HM)"(M2!('A__\``&:+5`K^@>+__P`` +M"]")513I7P$``(/_`@^.@P```(O]BVTDBTPD+(M$)!1)BU4,@\H#B4PD+(E5 +M#&:+0`AF/0$`=2:+5"04BTPD&(M2!(M)!&:+"8H2@>+_````@>'__P``P>$( +MZR0[_XM4)!2+3"08BU($BTD$9HL2B@F!XO__``"!X?\```#!X1`+T8E5%&:+ +M#V8#30!FB4T`Z=0```"0BT0D%(M4)!B+;22+0`2+4@2*"(H2@>'_````BT0D +M+('B_P```$B)1"0LBT4DP>((B_D+^HM5#(/*`XE5#&:#.`)V/8M,)!"+5"00 +MP><0BT4D9HM)"(M2!('A__\``&:+5`K^@>+__P``"_J)?11FBQ!F@^H"9HD0 +M9L=%``0`ZU.+5"0LBVTD2HE4)"R+50R#R@-F@WT``8E5#'44P><(BTPD$(M) +M!(H)@>'_````ZQ/!YQ"+3"00BTD$9HL)@>'__P``9HM5``OY@\("B7T49HE5 +M`(M5'(/"%(E5",9%$`"+1"0T9HN`<@L``&:I@`!T5XM5#(M,)"R#XOR)50QF +MBU4&9H'*``)FB54&BVTHBU0D(&;'10`!`(L29L=%!`"`B54(9HM5!F:!X@`! +M9HE5!F:!RH!&06:)50:+5"0HB548B4PD+.L.D&:+509F@,`L``&:) +M`XM'!&;'0P0`@(E#"(M##(/(`XE##(M#)(/`#(L0@^+\B1"+0RB)AC`+``!F +MBT8"9CU0`'1M9HM&`F8]8`!U)(J&3@L```R`B(9."P``BT,@9HM`!&:I`(!U +M"5;H)_G__X/$!%M>7\-FQT,"``"+0PR#X/R)0PR+6RAFQT,&``!FQT,$`(!F +MQP,0`(M3*(L'.]!UU&;'0P(``(M##(/(`XE##(N.-`L``#/`46:+AG`+``"# +MP#PE__\``%"+AEP+``#_4`QFQT8"8`"*ADX+```,!(/$"(B&3@L``%M>7\,[ +M_X'_`````%>+?"0(,\!FBX=""P``4#/`9HN'<`L``(/`%"7__P``4(N'7`L` +M`/]0##/`9HN'<`L``(/`&"7__P``4(N'7`L``/]0)"7__P``@\0,7\.05XM\ +M)`@SR6;'1P)!`&:)CZ(+``"*AYT+``"(AY\+```SP&;'AZ`+```.`&:)3P11 +M9HN'<`L``(/`+B7__P``4(N'7`L``/]0!%?H\;S__X/$#%_#@?\`````@?\` +M````@^P@,])7BWPD*%9358E4)!@/OX>T"P``B50D$(E$)!R%P'0YBH^W"P`` +M@>'_````B\&#X!^-!$#!X`.-K`>\"P```TT0B4PD((/A'XT$2<'@`XV$![P+ +M``")1"0HB[: +M"P``9JD"`'1*BT0D*(M4)"C&10X#9HM`"&:+4@PE__\``('B__\``"O"#X3S +M````4(M$)"PSTF:+4`R+"`/1C4804E#H_/___X/$#.G2````._^+1"0\"P``B40D-&:)4`R!XO__``!2BT0D +M.(L`4%'H_/___X/$&.LS@\<`,\`STF:+!E"+1"0L9HM0#(L(`]&-1A!24.C\ +M____9HL.BT0D-&8#2`R#Q`QFB4@,9HL.9@--"F:)30J*`R3^B`-FBT8$9JF` +M&71-BT0D'(7`=!6*AWT+``"H!'0'QD4.`NL%D,9%#@%FBT8$9JF``'0&_X?, +M$```9HM&!&:I``%T!O^'R!```&:+1@1FJ0`0=`;_A\00``!FBT8$9JD``@^$ +MLP```(M,)!"+1"0<087`B4PD$`^$G@```#/29HM6!H'B`/```,'Z"(A5#V:+ +M1@9FJ0`"=`:`R@*(50]FBT8&9JD`\'0)BE4/@,H!B%4/9HM&!F:I$`!T"8I5 +M#X#*!(A5#XM5$(M$)!Q"2(E5$(E$)!R*11"*E[<+```"PHB'MPL``+@?```` +M(H>W"P``C01`P>`#C:P'O`L``(M$)"!`B40D((/@'XT$0,'@`XV$![P+``") +M1"0H9L=&!`"`9L<&$`"+1@R#R`.)1@R+1B2#P`R+$(/B_(D0BT8@9HM`!&:I +M`(!T!/]$)!B*$XMV*/;"!'0.@.+[]L(@B!-T!/]$)!AFBT8$9JD`0`^%(OW_ +M_XM$)!B)MRP+``"%P'0)5^B']/__@\0$75M>BT0D!%^#Q"##._^!_P````"# +M[`RX'P```%=64XM<)!S'1"04`````%6+LRP+```B@[<+``"-!$#!X`.-O`.\ +M"P``9HM&!&:I`$`/A$$!``"+[HVSMPL``(E<)!2!PTX+``#_1Q"*`R3^B`-F +MBT4$9JF`&714BT0D%(J`?0L``*@$=`;&1PX"ZP3&1PX!9HM%!&:I@`!T"HM$ +M)!3_@,P0``!FBT4$9JD``70*BT0D%/^`R!```&:+101FJ0`0=`J+1"04_X#$ +M$```9HM%`&8#1PIFB4<*9HM%!&:I``)TATR(MT)!`SVXM$)#2*0`2$P'0+__P``4HN'7`L``/]0#(M$)""*$(#*`H/$"(@075M>BT0D +M+%^#Q"S#._^+1"08BA#VP@)T$X#B_?;"$(@0=`E7Z/7P__^#Q`2+1"0TBE`% +M_L*(4`4SP(K"BU0D-(I2!('B_P```#O"=2O^A\,.``"X'P```"*'PPX``(T$ +M0,'@`HV$!\0.``")1"0TBT0D.$")1"0XBX<@"P``9L=`!```BX<@"P``BT`H +MB0.+KR`+``!FBT4$9JD`0'47BT4H9HM`!&:I`$"X``````^4P.L$._\SP(7` +M#X0"_O__Z3O___^0._^!_P````"#[`A7BWPD$%93QT0D$``````SVV8YGT@+ +M``!T$V:+MT@+``!FB9]("P``ZR.#QP`SP&:+AW`+``"#P!`E__\``%"+AUP+ +M``#_4""+\(/$!&;WQO]N=15;7C/`7X/$",.X`@```%M>7X/$",-FBT<"9CU@ +M`'4E9HN'<@L``&:I@`!T#5?HU_?__XO8@\0$ZPM7Z$K[__^+V(/$!&;WQ@@` +M=`E7Z`C$__^#Q`1F]\8@`'0SBH=X"P``J`)T"+@!````ZP:0N`(```"#R`2( +MAT\+``"*ATX+``"HP'0)5^AN[___@\0$9HM'`F8]4`!R#5?HB_S__XE$)!2# +MQ`1F]\8`('0)5^B'O?__@\0$9O?&`0!T?0^_A[0+```[PW889HM'`F8]8`!U +M#HJ'3@L```P!B(=."P``:@$SP&:+AW`+``"#P"XE__\``%"+AUP+``#_4`1J +M`#/`9HN'<`L``(/`&B7__P``4(N'7`L``/]0"&H`,\!FBX=P"P``@\`N)?__ +M``!0BX=<"P``_U`$@\08A=L/A+ +M?"045E.*1P2H"'0C,\"+-XI'!(/@]XA'!(K8,\"*PU`SP&:+1@10BP;_4`2# +MQ`B+%U+H%!@``(L/4>@,&```BS#Q`A0Z,@7``"+%U+H +MP!<``(L/@\0(4>BU%P``,\"+-XI?!(/$!(#C_HA?!(K#4#/`9HM&!%"+!O]0 +M!(L'@\0(4.B+%P``BQ=2Z(,7``"*1"0?@\0(J(!T"+@!````ZP.0,\!;7B7_ +M````7X/$#,,[_X/L&%>+?"0@5E/&1"0C`(M$)"R+-R7_````P?@(BM@SP(I' +M!(/@]XA'!(K0,\"*PE`SP&:+1@10BP;_4`0SP(LWBE<$@\0(@,H!B%<$BL)0 +M,\!FBT8$4(L&_U`$BQ>#Q`A2Z/D6``"+#U'H\18``(L'@\0(4.CF%@``,\"+ +M-XI'!(/$!(/("(A'!(K0,\"*PE`SP&:+1@10BP;_4`2+%X/$"%+HN!8``#/` +MBS>*5P2#Q`2`XOZ(5P2*PE`SP&:+1@10BP;_4`2+#X/$"%'HCA8``(L'4.B& +M%@``N`<```"#Q`@BPP/`B$0D(HK0,\"*P@V@````)?\```!05^@O"@``5^@) +M_O__@\0,AD```#&1"0?`(M<)"PSP(K#)8````"$P'0*,\"* +M1P2#X/?K"#/`BD<$@\@(BM"+-XA'!#/`BL)0,\!FBT8$4(L&_U`$BQ>#Q`A2 +MZ/T5```SP(LWBE<$@\0$@,H!B%<$BL)0,\!FBT8$4(L&_U`$BP^#Q`A1Z-,5 +M``"+!U#HRQ4``(L7@\0(4NC`%0``,\"+-XI7!(/$!(#B_HA7!(K"4#/`9HM& +M!%"+!O]0!(L/@\0(4>B6%0``BP=0Z(X5``"*5"0G@\0(,\#^PHK#B%0D'P/` +M@/H(BM@/@C'___]7Z!K]__^+\('F_P```(/$!(7V#X7F````,\"+-XI'!(/@ +M]XA'!(K8,\"*PU`SP&:+1@10BP;_4`0SP(LWBE\$@\0(@,L!B%\$BL-0,\!F +MBT8$4(L&_U`$BP^#Q`A1Z`T5``"+!U#H!14``(L7@\0(4NCZ%```,\"+-XI' +M!(/$!(/("(A'!(K8,\"*PU`SP&:+1@10BP;_4`2+#X/$"%'HS!0``#/`BS>* +M7P2#Q`2`X_Z(7P2*PU`SP&:+1@10BP;_4`2+!X/$"%#HHA0``(L74NB:%``` +MBEPD*H/$"#/`BL,-H0```"7_````4%?H3@@``%?H*/S__X/$#(7`=`VX_P`` +M`%M>7X/$&,.0,MLSP(I$)",#P(A$)"-7Z`#\__^*3"0G@\0$"LC^PXA,)".` +M^PARVC/`BS>*1P2#X/>(1P2*V#/`BL-0,\!FBT8$4(L&_U`$,\"+-XI?!(/$ +M"(#+`8A?!(K#4#/`9HM&!%"+!O]0!(L'@\0(4.CR$P``BQ=2Z.H3``"+#X/$ +M"%'HWQ,``#/`BS>*7P2#Q`2`X_Z(7P2*PU`SP&:+1@10BP;_4`2+!X/$"%#H +MM1,``(L74NBM$P``,\"+-XI'!(/$"(/("(A'!(K8,\"*PU`SP&:+1@10BP;_ +M4`0SP(LWBE\$@\0(@,L!B%\$BL-0,\!FBT8$4(L&_U`$BP^#Q`A1Z&`3``"+ +M!U#H6!,``(L7@\0(4NA-$P``,\"+-XI'!(/$!(/@]XA'!(K8,\"*PU`SP&:+ +M1@10BP;_4`2+#X/$"%'H'Q,``#/`BS>*7P2#Q`2`X_Z(7P2*PU`SP&:+1@10 +MBP;_4`2+!X/$"%#H]1(``(L74NCM$@``@\0(,\!;7HI$)!M?@\08PY"!_P`` +M``"!_P````"#[!`SP%>+?"085E.*1P2+-X/@]XA'!(K8,\"*PU`SP&:+1@10 +MBP;_4`0SP(LWBE\$@\0(@,L!B%\$BL-0,\!FBT8$4(L&_U`$BQ>#Q`A2Z'P2 +M``"+#U'H=!(``(L'@\0(4.AI$@``,\"+-XI'!(/$!(/("(A'!(K8,\"*PU`S +MP&:+1@10BP;_4`2+%X/$"%+H.Q(``#/`BS>*7P2#Q`2`X_Z(7P2*PU`SP&:+ +M1@10BP;_4`2+#X/$"%'H$1(``(L'4.@)$@``BU0D,(/$"+@'````(L(#P(K0 +M,\"*P@V@````)?\```!05^BR!0``5^B,^?__@\0,A(1P0SP(K"4#/`9HM&!%"+!O]0!(L/@\0(4>AY$0``,\"+-XI7!(/$ +M!(#*`8A7!(K"4#/`9HM&!%"+!O]0!(L'@\0(4.A/$0``BQ=2Z$<1``"+#X/$ +M"%'H/!$``#/`BS>*5P2#Q`2`XOZ(5P2*PE`SP&:+1@10BP;_4`2+!X/$"%#H +M$A$``(L74N@*$0``,\"#Q`C^PXI$)!L#P(#["(A$)!L/@C+___]7Z)KX__^# +MQ`0E_P```%M>7X/$$,.#QP`[_X'_`````(/L"#/`5XM\)!!64XI'!(LW@^#W +MB$<$BM@SP(K#4#/`9HM&!%"+!O]0!#/`BS>*7P2#Q`B`RP&(7P2*PU`SP&:+ +M1@10BP;_4`2+%X/$"%+H?!```(L/4>AT$```BP>#Q`A0Z&D0```SP(LWBD<$ +M@\0$@\@(B$<$BM@SP(K#4#/`9HM&!%"+!O]0!(L7@\0(4N@[$```,\"+-XI? +M!(/$!(#C_HA?!(K#4#/`9HM&!%"+!O]0!(L/@\0(4>@1$```BP=0Z`D0``"# +MQ`A;7E^#Q`C#@\<`@?\`````@?\`````@^P0,\!75E.+7"0D58ML)"2+="0P +M9HM%!%"+10#_4!R);"04@\0$)?\```#&1"04!(A$)!\SP&H$9HM%!%"+10#_ +M4`0SP(/$"(K#`\"*V(M$)"R+T/[*A,"(5"0L=$F*P_[#)?\```!0C40D%%#H +M'?C__XOXBL,E_P```/[#4(U$)!Q0Z`?X___!X`B#Q!!F"_AFB3Z+1"0L@\8" +MB\C^R83`B$PD+'6W,\"*1"0?4#/`9HM%!%"+10#_4`2#Q`A=6UY?@\00PY`[ +M_X'_`````(/L$%>+?"085E-FBW0D)(O&@>;_````)?__``#!^`@E_P```%!6 +M5^@D_/__@\0,A0%^#Q!##D+@!````6UY?@\00PXM<)"B(7"0;,MLS +MP(I$)!LE@````(3`=`LSP(I'!(/@]^L)D#/`BD<$@\@(BM"+-XA'!#/`BL)0 +M,\!FBT8$4(L&_U`$BQ>#Q`A2Z(D.```SP(LWBE<$@\0$@,H!B%<$BL)0,\!F +MBT8$4(L&_U`$BP^#Q`A1Z%\.``"+!U#H5PX``(L7@\0(4NA,#@``,\"+-XI7 +M!(/$!(#B_HA7!(K"4#/`9HM&!%"+!O]0!(L/@\0(4>@B#@``BP=0Z!H.```S +MP(/$"/[#BD0D&P/`@/L(B$0D&P^",O___U?HJO7__X/$!(7`#X4+____,\"+ +M-XI'!(/("(A'!(K8,\"*PU`SP&:+1@10BP;_4`0SP(LWBE\$@\0(@,L!B%\$ +MBL-0,\!FBT8$4(L&_U`$BQ>#Q`A2Z*4-``"+#U'HG0T``(L'@\0(4.B2#0`` +M,\"+-XI'!(/$!(/@]XA'!(K8,\"*PU`SP&:+1@10BP;_4`2+%X/$"%+H9`T` +M`#/`BS>*7P2#Q`2`X_Z(7P2*PU`SP&:+1@10BP;_4`2+#X/$"%'H.@T``(L' +M4.@R#0``BS^#Q`AJ"HL'_U`T@\0$,\!;7E^#Q!##._\[_X'_`````(/L"#/` +M5XM\)!!64XI'!(LW@\@(B$<$BM@SP(K#4#/`9HM&!%"+!O]0!#/`BS>*7P2# +MQ`B`RP&(7P2*PU`SP&:+1@10BP;_4`2+%X/$"%+HO`P``(L/4>BT#```BP># +MQ`A0Z*D,```SP(LWBD<$@\0$@^#WB$<$BM@SP(K#4#/`9HM&!%"+!O]0!(L7 +M@\0(4NA[#```,\"+-XI?!(/$!(#C_HA?!(K#4#/`9HM&!%"+!O]0!(L/@\0( +M4>A1#```BP=0Z$D,``"#Q`A;7E^#Q`C#@\<`@?\`````@?\`````@^P,5XM\ +M)!164\9$)!<`BT0D("6`````A,!T##/`BD<$@^#WZPH[_S/`BD<$@\@(BMB+ +M-XA'!#/`BL-0,\!FBT8$4(L&_U`$BQ>#Q`A2Z-T+```SP(LWBE\$@\0$@,L! +MB%\$BL-0,\!FBT8$4(L&_U`$BP^#Q`A1Z+,+``"+!U#HJPL``(L7@\0(4NB@ +M"P``,\"+-XI?!(/$!(#C_HA?!(K#4#/`9HM&!%"+!O]0!(L/@\0(4>AV"P`` +MBP=0Z&X+``"+1"0H@\0()?\````#P(I4)!?^PHA$)""(5"07@/H(#X(H____ +M6UY?@\0,PSO_4#/`5XM\)`Q64XI?!(LW@,L!B%\$BL-0,\!FBT8$4(L&_U`$ +MBQ>#Q`A2Z!$+``"+#U'H"0L``(L'@\0(4.C^"@``,\"+-XI?!(/$!(#C_HA? +M!(K#4#/`9HM&!%"+!O]0!(L7@\0(4NC4"@``BP]1Z,P*``"#Q`A;7E^#Q`3# +M._]7BWPD"%93,\"+-XI?!(#+`8A?!(K#4#/`9HM&!%"+!O]0!(L7@\0(4NB2 +M"@``BP]1Z(H*``"#Q`A;7E_#@\<`5XM\)`A64S/`BS>*7P2`X_Z(7P2*PU`S +MP&:+1@10BP;_4`2+%X/$"%+H4@H``(L/4>A*"@``@\0(6UY?PX/'`(I$)`A3 +MBTPD"(3`="7X/$ +M$,.+1"0LB\C^R83`B$PD+'6?,\"*1"0?4#/`9HM%!%"+10#_4`2#Q`@SP%U; +M7E^#Q!##@\<`C70F`(/L-#/)5XM\)$16BT0D1%-5BW0D2,9'`03&1S`#9HM` +M$&;'1Q)``&:)3Q8E_/\``&:)1Q"+1"1,9HE/%(M`%&;'1QP`0,9''J*#X/") +M1QB+1"1,BT`PB4#$"(1QYJ`#/` +M9HM'$(/`+B7__P``4/]6!,9''Q`SP&:+1Q"#P`(E__\``%#_5AR#R`8E_P`` +M`%`SP&:+1Q"#P`(E__\``%#_5@0SP&:+1Q"#P!(E__\``%#_5B!FB40D5B7_ +M_P``@\@@)?__``!0,\!FBT<0@\`2)?__``!0_U8(B70D0#/`9HM'$&H"@\`P +M9HE$)$@SP&:+1Q"#P"XE__\``%#_5@2-1"1`4(U$)$QJ!&H@4.@%^/__BT0D +M4(/$.#/2)?__``!FBU0D&@/"BU0D'('B__\```/",])FBU0D'B7__P``.\)U +M+(M$)!B(1R**1"09B$N`(` +M``!?@\0TPX/'`(/L%#/`5XM\)"A6BW0D(%.+7"0L9HM&!%"+!O]0'(ET)!"# +MQ`2*T#/`QD0D$`2*PHA$)!\SP&H$9HM&!%"+!O]0!(K#_LN#Q`B$P'0JBT0D +M*(O0)?\```!0C40D$/["B%0D+%#HM^[__X@'BL.#Q`A'_LN$P'76,\"*1"0? +M4#/`9HM&!%"+!O]0!(/$"%M>7X/$%,.!_P````"!_P````"#[!!7BWPD&%93 +M58ML)"AFBT<"9CTP`'0?75M>N`$```!?@\00PSO_N`0```!=6UY?@\00PX/& +M`(N'&`L``(7`=0UFBX=R"P``9JE``'79QH=]"P```(M$)"R)AY`+``"+1"0P +MB8>4"P``9HN'<@L``&:I`0!T#6;'AY@+``!01NL+._]FQX>8"P``E!$SP(M4 +M)#1FBX>8"P``@>+__P``.\)^"XM$)#1FB8>8"P``N`D```!F(T0D.(/X"70/ +MN`P```!F(T0D.(/X#'4/75M>N`,```!?@\00PSO_BT0D.(7M9HF'F@L``'1% +M5>A_1@``@\0$A("P``145%BD7\B(>)"P``BD7]B(>*"P`` +MBD7^B(>+"P``BD7_B(>,"P``BD4`ZT.0BH>""P``B(>("P``BH>#"P``B(>) +M"P``BH>$"P``B(>*"P``BH>%"P``B(>+"P``BH>&"P``B(>,"P``BH>'"P`` +M,_8STHB'C0L``(V?B`L``$.*2_\ZRG06B50D&.L>75M>N`(```!?@\00PX/' +M`$:#_@9\W,=$)!@!````BT0D&(7`==J*AX@+``"H@'70BX=H"P``BT@\A'O`X``"``,\F# +MQ`0SP(B/M@L``&:)C[0+``"(C[<+``"(C[@+``"(C[H+``"(C[D+``"(C[X. +M``"(C[\.``"(C\`.``"(C\$.``"(C\(.``"(C\,.``!=6UY?@\00PSO_@^P< +M5U9358ML)#"+50"!^B"!``!T6EU;7C/`7X/$',-&@_X1@+__P``4E7H]4?__X/$"(7`='@SP&:+1"0F4%7H,+[__X/$"#/V +MB\B+'+4`````A=MT&#/`B]%FBT,(@>+__P``.\)T"$:#_A%RW3/;A=MT.HM$ +M)#B+$X70=#"+5"04,\!FBT0D)E)05?]3%(M,)"B#Q`Q!BT0D/(E,)!P[R'TF +MBU0D%(/"-(E4)!2!Y___``"+3"08P?\!08E,)!B#^00/C/K^__^+1"0<75M> +M7X/$',.#QP"!_P````"!_P````"#[`A75HM$)!2+$('Z(($``'057KC_____ +M7X/$",,[_S/`7E^#Q`C#N.`/``"+3"049B-$)!PE__\``%!1Z$Y+``"#Q`B% +MP'77BT0D'"7__P``4(M$)!A0Z#.]__^#Q`B+R&:#^6-TN#/VBSRU`````(7_ +M=!@SP(O19HM'"('B__\``#O"=`A&@_X1+__P``(\*#R`*+^"7__P``4#/`9HN&<`L``(/`,B7__P``4(N&7`L` +M`/]0"('C__\``#/`@\L"9HE<)#9H4```@&:+AG`+``"#P!0E__\``%"+AEP+ +M``#_4`R[]/___X/$%#/`9HN&<`L``(/`&"7__P``4(N&7`L``/]0)(E$'""# +MQ`2#PP1\V<=$)"0`````,]*+QV:+5"0J)?__``"[#````#O"#X0B`0``B^\S +M_V:+^L'G$('/QP<``&A0``"`,\!FBX9P"P``@\`4)?__``!0BX9<"P``_U`, +M:+A`8(XSP&:+AG`+``"#P!@E__\``%"+AEP+``#_4`QHV+MR`#/`9HN&<`L` +M`(/`&"7__P``4(N&7`L``/]0#%7X/$',,[_X/L##/`5XM\)!164VH`9HN'<`L``(/` +M+B7__P``4(N'7`L``/]0!#/`9HN'<`L``(/`,B7__P``4(N'7`L``/]0((OP +M9H'F_O^+QB7__P``4#/`9HN'<`L``(/`,B7__P``4(N'7`L``/]0"&:!YOW_ +M,\"!YO__``!69HN'<`L``(/`,B7__P``4(N'7`L``/]0"(J'3@L``"3^B(=. +M"P``,\!FBX=P"P``@\`2)?__``!0BX=<"P``_U`@@\0@B_!F@;_XXJ' +M?PL``(3`="HSTHO#)?__``"*EW\+```[PGP79H'.`!AFBX>`"P``9JD0`'0% +M9H'.``2!YO__```SP%9FBX=P"P``@\`2)?__``!0BX=<"P``_U`(@\0(BH=\ +M"P``A,!U(VB<(```,\!FBX=P"P``@\`()?__``!0BX=<"P``_U`,@\0(QX=0 +M"P``G"```('C__\``#/`0XJ'?PL``&:)7"04B_,[PWX)9@^VP&:)1"04@>;_ +M_P``N/T````KQHO8)?__``")AU0+``"+1"04)?__``#!X`@+QB7__P``4#/` +M9HN'<`L``(/`(B7__P``4(N'7`L``/]0"('C__\``#/`@/__P`` +M4V:+AW`+``"#P"`E__\``%"+AUP+``#_4`AJ`#/`9HN'<`L``(/`'B7__P`` +M4(N'7`L``/]0"(/$&+Y<````9HN'<@L``&:I@`!U`X/.`E8SP&:+AW`+``"# +MP"0E__\``%"+AUP+``#_4`QJ`#/`9HN'<`L``(/`!B7__P``4(N'7`L``/]0 +M"(N''`L``(/FXXF')`L``(F'(`L``(J'3@L```P(B(=."P``,\!69HN'<`L` +M`(/`)"7__P``4(N'7`L``/]0#&;'AT@+`````(/$&%M>7X/$#,.#[`Q75E-5 +MC40D&(ML)"A058M4)"R+="0H4NCQQ/__@\0,A<`/A<8```!H````@(M$)!PE +M__\``(UX`S/`9HN&<`L``,'_`H/`%"7__P``4(N&7`L``/]0#(M,)"`SP%%F +MBX9P"P``@\`8)?__``!0BX9<"P``_U`,@\00NP$````[^WY&C40D&%"+1"0H +M55#H>\3__X/$#(7`=`>-1_\[V'5-BU0D&#/`4F:+AG`+``"#P!@E__\``%"+ +MAEP+``#_4`R#Q`A#.]]\NE:+AFP+``#_4"QFQT8"(0!FQT8$```SP(/$!%U; +M7E^#Q`S#._]=6UZX`0```%^#Q`S#@\<`4XI<)`AFBU0D#+G"````A-MU"8') +M``(``.L,D(#[$'4&@$0@:@`SP&:+1Q"#P"XE__\``%#_4P0SP&:+1Q"# +MP"DE__\``%#_4QR#Q`PE\````(/X$'4&QDC__XM$)"R#Q!PSTB7__P`` +M9HM4)!(#PHM4)!2!XO__```#PC/29HM4)!8E__\``#O"=2R+1"00B$7X/$',,[_UM> +M7[@"````@\0`4`L```````##D(/L"#/`5U:+="04 +M9HN&<`L``(/`$B7__P``4(N&7`L``/]0((OX)?__``"#R"`E__\``%`SP&:+ +MAG`+``"#P!(E__\``%"+AEP+``#_4`B+AEP+``"+5"0DB40D%&:+AG`+``!2 +M:@AJ.&:)1"0DC40D(%#H^.___X'G__\``#/`5V:+AG`+``"#P!(E__\``%"+ +MAEP+``#_4`B#Q"1>7X/$",.0@?\`````@?\`````@^P(,\!75E.+="089HN& +M<`L``(/`$B7__P``4(N&7`L``/]0((OX)?__``"#R"`E__\``%`SP&:+AG`+ +M``"#P!(E__\``%"+AEP+``#_4`B+AEP+``"+5"0HB40D&&:+AG`+``!2:@AJ +M.&:)1"0HC40D)%#HQ^O__XO8,\"!Y___``!79HN&<`L``(/`$B7__P``4(N& +M7`L``/]0"(/$)(O#6UY?@\0(PX/'`(UT)@"#[!!7,_]6BW0D'%-5BVPD*&:+ +M13!FJ0"`="2-73!J9(N&7`L``/]0-(O'1X/$!(/X9`^/D`(``&;W`P"`==]J +M9(N&7`L``/]0-&H",\!FBX9P"P``@\`N)?__``!0BX9<"P``_U`$:A8SP&:+ +MAG`+``"#P!8E__\``%"+AEP+``#_4`1J!C/`9HN&<`L``(/`%B7__P``4(N& +M7`L``/]0!&H`,\!FBX9P"P``@\`N)?__``!0BX9<"P``_U`$N0"````SP&:) +M35QFB8V(````:@%FBX9P"P``@\`H)?__``!0BX9<"P``_U`(@\0L,_]FBX6( +M````9JD`@'0GC9V(````:F2+AEP+``#_4#2+QT>#Q`2#^&0/CYL!``!F]P,` +M@'7?:F2+AEP+``#_4#1J`C/`9HN&<`L``(/`+B7__P``4(N&7`L``/]0!&H6 +M,\!FBX9P"P``@\`6)?__``!0BX9<"P``_U`$:@8SP&:+AG`+``"#P!8E__\` +M`%"+AEP+``#_4`1J`#/`9HN&<`L``(/`+B7__P``4(N&7`L``/]0!&;'A;0` +M````@#/;@\0DC;W@````9O<'`(!U"8/'+$.#^P5\\(/[!74",]N-%%N-%-K! +MX@*-A!7>````9HL09H'B``%FB1"-%%N-%-K!X@)FQX05X@``````C11;C13: +MP>("C805X````(E$)!QFQP``@#/`:@5FBX9P"P``@\`H)?__``!0BX9<"P`` +M_U`(BT0D)(/$"#/_9O<``(!T)XE<)!"+V&IDBX9<"P``_U`TB\='@\0$@_AD +M?TIF]P,`@'7CBUPD$#/`C0Q;9HN%L````#/2C0S9@\`$P>$"9HN4#=P````[ +MPG00N`0```!=6UY?@\00PX/'`%U;7C/`7X/$$,,[_UU;7K@#````7X/$$,.# +MQP!=6UZX`@```%^#Q!##@\<`75M>N`$```!?@\00PX/'`#O_@?\`````@^QH +M,\!7BWPD<%9356:+AW`+``!0BX=<"P``_U`@9HE$)'@SP&:+AW`+``"#P"0E +M__\``%"+AUP+``#_4"2)1"1@,\!FBX=P"P``@\`$)?__``!0BX=<"P``_U`D +MB40D8#/`9HN'<`L``(/`""7__P``4(N'7`L``/]0(&:)A"2"````,\!FBX=P +M"P``@\`J)?__``!0BX=<"P``_U`@9HF$)(0````SP&:+AW`+``"#P!(E__\` +M`%"+AUP+``#_4"!FB80DA@```#/`9HN'<`L``(/`#"7__P``4(N'7`L``/]0 +M)(N?%`L``(N7$`L``/?;B40D;#/`9HN'<`L``(/C!X/`$(N/%`L``(TT&B7_ +M_P``4(N'7`L```/9B9PD@````/]0(&C__P``,\!FBX=P"P``@\`0)?__``!0 +MBX=<"P``_U`(:@`SP&:+AW`+``!0BX=<"P``_U`(:!W@!P`SP&:+AW`+``"# +MP"0E__\``%"+AUP+``#_4`QJ`#/`9HN'<`L``(/`!"7__P``4(N'7`L``/]0 +M#&H`,\!FBX=P"P``@\`()?__``!0BX=<"P``_U`(:@`SP&:+AW`+``"#P"HE +M__\``%"+AUP+``#_4`@SP&:+AW`+``"#P#(E__\``%"+AUP+``#_4"`E_W\` +M`%`SP&:+AW`+``"#P#(E__\``%"+AUP+``#_4`@SP&:+AW`+``"#P!(E__\` +M`%"+AUP+``#_4"`E\.P``(/(`27__P``4#/`9HN'<`L``(/`$B7__P``4(N' +M7`L``/]0"&H",\!FBX=P"P``@\`N)?__``!0BX=<"P``_U`$,\!FBX=P"P`` +M@\`6)?__``!0BX=<"P``_U`````B40D*(V&W````(E$ +M)"R-1@R)1"0PC48(B40D-(U&!HE$)#B-1@2)1"0\C48"B_B+1"0\0V;'!A`` +MBU0D3&;'!P```_%FQP```(M$)#@#^6;'```&BT0D-(D0BT0D:`/!B40D:(M$ +M)#"+5"1H@\H!B1"+5"1(BT0D+&;'`!@`BT0D*&;'````BT0D)&;'``"`BT0D +M(&;'````BT0D'(D0BU0D9`/1BT0D/`/!B54`B40D/(M$)#B)5"1DBU0D-`/! +M`]&)1"0XBT0D,(E4)#2+5"0H`\$#T8E$)#"+1"0LB50D*(M4)!P#P0/1B40D +M+(M$)"0#P0/IB40D)(M$)"`#P8/[!8E$)"")5"0<#XP>____BT0D8(MT)!2+ +M?"00@\@!B8:\````N0"```!FBX:V````9@T``6:)AK8```"+1"1@9HE.!`7< +M````9HE.,(F&F`$``&:+AHX!``!F#0`!9HF&C@$``(M$)&`%W````%`SP&:+ +MAW`+``"#P#PE__\``%"+AUP+``#_4`R+3"1H,\!19HN'<`L``(/`."7__P`` +M4(N'7`L``/]0#%97Z&SW__^+\#/`9HN'<`L``(/`)"7__P``4(N'7`L``/]0 +M)`T````%4#/`9HN'<`L``(/`)"7__P``4(N'7`L``/]0#&IDBX=<"P``_U`T +MBX0DG````"7__P``4#/`9HN'<`L``%"+AUP+``#_4`B+A"2(````4#/`9HN' +M<`L``(/`)"7__P``4(N'7`L``/]0#(N4)(P````SP%)FBX=P"P``@\`$)?__ +M``!0BX=<"P``_U`,,\!FBX0DL@```%`SP&:+AW`+``"#P`@E__\``%"+AUP+ +M``#_4`B+A"2X````)?__``!0,\!FBX=P"P``@\`J)?__``!0BX=<"P``_U`( +M,\!FBX0DO@```%`SP&:+AW`+``"#P!(E__\``%"+AUP+``#_4`AJ`C/`9HN' +M<`L``(/`+B7__P``4(N'7`L``/]0!#/`BH0DU@```%`SP&:+AW`+``"#P!8E +M__\``%"+AUP+``#_4`1J`#/`9HN'<`L``(/`+B7__P``4(N'7`L``/]0!(N, +M),`````SP%%FBX=P"P``@\`,)?__``!0BX=<"P``_U`,:@(SP&:+AW`+``"# +MP"XE__\``%"+AUP+``#_4`0SP(J$)/<```!0,\!FBX=P"P``@\`6)?__``!0 +MBX=<"P``_U`$:@`SP&:+AW`+``"#P"XE__\``%"+AUP+``#_4`2!Q)````"% +M]G0:75N+QEY?@\1HP[@&````75M>7X/$:,.#QP`SP&:+AW`+``"#P"0E__\` +M`%"+AUP+``#_4"2#Q`2#X!2#^!1UREU;7C/`7X/$:,.-="8`,\"+5"0$9HM$ +M)`A0,\!FBX)P"P``@\`R)?__``!0BX)<"P``_U`(@\0(PY"-="8`@^P4,\!7 +MBWPD'%93:@!FBX=P"P``@\`N)?__``!0BX=<"P``_U`$,\!FBX=P"P``@\`R +M)?__``!0BX=<"P``_U`@B_!F@>;^_XO&)?__``!0,\!FBX=P"P``@\`R)?__ +M``!0BX=<"P``_U`(9H'F_?\SP('F__\``%9FBX=P"P``@\`R)?__``!0BX=< +M"P``_U`(BH=."P``)/Z(ATX+```SP&:+AW`+``"#P!(E__\``%"+AUP+``#_ +M4""#Q""+\&:#SA"[#P```&8CWH/["WX%NPL```"%VW0-C4O_NP$```#3X^L& +MD+L!````9H'F_^.*AW\+``"$P'0J,]*+PR7__P``BI=_"P``.\)\%V:!S@`8 +M9HN'@`L``&:I$`!T!6:!S@`$@>;__P``,\!69HN'<`L``(/`$B7__P``4(N' +M7`L``/]0"(/$"(J'?`L``(3`=2-H7"```#/`9HN'<`L``(/`""7__P``4(N' +M7`L``/]0#(/$",>'4`L``%P@``"+\X'C__\``('F__\``#/`1HJ'?PL``$.) +M="04.\-^!(E$)!2[``@``#/`*]Z)GU0+``!J`F:+AW`+``"#P"XE__\``%"+ +MAUP+``#_4`0SP&:+AW`+``"#P!8E__\``%"+AUP+``#_4!R(1"0K)?\```"# +MR!`E_P```%`SP&:+AW`+``"#P!8E__\``%"+AUP+``#_4`1H#Q`/`#/`9HN' +M<`L``(/`)"7__P``4(N'7`L``/]0#&@?$```,\!FBX=P"P``@\`H)?__``!0 +MBX=<"P``_U`,:@`SP&:+AW`+``"#P"XE__\``%"+AUP+``#_4`2+1"1`P>@! +M0,'@$`T``@``4#/`9HN'<`L``(/`#"7__P``4(N'7`L``/]0#,'K`C/`P>X! +MNOH#``#!XQ`KU@O:4V:+AW`+``"#P"`E__\``%"+AUP+``#_4`QJ`C/`9HN' +M<`L``(/`+B7__P``4(N'7`L``/]0!#/`BD0D8R7O````4#/`9HN'<`L``(/` +M%B7__P``4(N'7`L``/]0!&H`,\!FBX=P"P``@\`N)?__``!0BX=<"P``_U`$ +M:@`SP&:+AW`+``!0BX=<"P``_U`(@\17X/$%,.!_P````"!_P````"# +M[`Q75E-5C40D&(M4)"A04HM,)"R+="0H4>CAL/__@\0,A<`/A2X!``!H```` +M@(M$)!PE__\``(UX`S/`9HN&<`L``,'_`H/`%"7__P``4(N&7`L``/]0#(M$ +M)"!0,\!FBX9P"P``@\`8)?__``!0BX9<"P``_U`,@\00NP$````[^WY1C:YP +M"P``C40D&(M4)"A04HM,)"Q1Z&&P__^#Q`R%P'0+C4?_.]@/A:<```"+1"08 +M4#/`9HM%`(/`&"7__P``4(N&7`L``/]0#(/$"$,[WWRU:/"_`(`SP&:+AG`+ +M``"#P!0E__\``%"+AEP+``#_4`QHD.I0`#/`9HN&<`L``(/`&"7__P``4(N& +M7`L``/]0#&H`,\!FBX9P"P``@\`8)?__``!0BX9<"P``_U`,5HN&;`L``/]0 +M+&;'1@(A`&;'1@0``#/`@\0<75M>7X/$#,,[_UU;7K@!````7X/$#,.#QP`[ +M_X'_`````%.*7"0(9HM4)`RYP@```(3;=0F!R0`0``#K')"`^Q!U"X')``$` +M`.L.@\<`@/MD=0:!R0`"``#!X1"!R0!S``!F]\((`'0&@>'_[___9O?"!`!T +M!H'A_]___S/`BL.#^!!T!8/X!'4&@>'_O___BD0D$(3`=`.#R02+P5O#@\<` +M5XM\)`@SP,>'4`L```````!J`&:+AW`+``"#P"XE__\``%"+AUP+``#_4`0S +MP&:+AW`+``"#P`(E__\``%"+AUP+``#_4!R#R`8E_P```%`SP&:+AW`+``"# +MP`(E__\``%"+AUP+``#_4`2#Q!1?PX/L"#/`5U:+="049HN&<`L``(/`$B7_ +M_P``4(N&7`L``/]0((OX)?__``"#R"`E__\``%`SP&:+AG`+``"#P!(E__\` +M`%"+AEP+``#_4`B+AEP+``")1"04,\!FBX9P"P``:@*#P#!FB40D'#/`9HN& +M<`L``(/`+B7__P``4(N&7`L``/]0!(M4)"R-1"0<4FH(:CA0Z.;<__]J`#/` +M9HN&<`L``(/`+B7__P``4(N&7`L``/]0!('G__\``#/`5V:+AG`+``"#P!(E +M__\``%"+AEP+``#_4`B#Q#1>7X/$",,[_X'_`````('_`````(/L"#/`5U93 +MBW0D&&:+AG`+``"#P!(E__\``%"+AEP+``#_4""+^"7__P``@\@@)?__``!0 +M,\!FBX9P"P``@\`2)?__``!0BX9<"P``_U`(BX9<"P``B40D&#/`9HN&<`L` +M`&H"@\`P9HE$)"`SP&:+AG`+``"#P"XE__\``%"+AEP+``#_4`2+5"0PC40D +M(%)J"&HX4.AUV/__B]@SP&H`9HN&<`L``(/`+B7__P``4(N&7`L``/]0!('G +M__\``#/`5V:+AG`+``"#P!(E__\``%"+AEP+``#_4`B#Q#2+PUM>7X/$",,[ +M_X'_`````%!75HM\)!A3N0$```"+="08B$\PB`^(3P%FB7<0N00```!FB4\2 +M9H7.=`FX'````.L'._^X$````&;'1Q80`(O6,\EFB4\<@>+__P```]"+QF:) +M5Q0E__\``(/``HE/&"7__P``4(M$)!C_4!R*V(O&)?__``"#P`,E__\``%"+ +M1"0<_U` +M#!B(1QZ-1R*+5"044#/`9HM'%%!2Z&]M__^#Q`RX`0```%M>7X/$!,,SP(I$ +M)`_!^`2#X`.*@`````"(1R$\!'4+BD<>#!"(1Q[KN9"*1QX,`XA''NNN._^# +M[`RY`0```%>+?"0<5HMT)!A358A/`8A/,(M$)"2Y!````&:)1Q!FAZQ4SP(I$)!G!^`.#X`>*@`````"(1R&*1R$\!'5,BD<> +M#!"(1QYJ!HO#)?__``!0_U8$C47__P``4&H\55;H:&___S/`@>/__P`` +MBD0D+U!3_U8$@\0@N`$```!=6UY?@\0,PX/&`(I''@P#Z[*0@?\`````@?\` +M````5XM\)`@SP&:+AW`+``"#P`(E__\``%"+AUP+``#_4!PE]P```%`SP&:+ +MAW`+``"#P`(E__\``%"+AUP+``#_4`2#Q`Q?PSO_._^!_P````!7BWPD"&H% +M,\!FBX=P"P``@\`")?__``!0BX=<"P``_U`$,\!FBX=P"P``@\`#)?__``!0 +MBX=<"P``_U`<)?<```!0,\!FBX=P"P``@\`#)?__``!0BX=<"P``_U`$@\04 +M7\.0@?\`````@?\`````4#/`5XM\)`QJ`F:+AW`+``"#P`(E__\``%"+AUP+ +M``#_4`0SP&:+AW`+``"#P`,E__\``%"+AUP+``#_4!R+5"0<@\0,BLBX!P`` +M`"+!@>+_````BH``````)?\````[PG16BT0D$"7_````BH``````B$0D!SP' +M=@JX`P```%^#Q`3#,\`STHK!BE0D!R7X````"\(E_P```%`SP&:+AW`+``"# +MP`,E__\``%"+AUP+``#_4`2#Q`@SP%^#Q`3#5XM\)`AJ`C/`9HN'<`L``(/` +M`B7__P``4(N'7`L``/]0!#/`9HN'<`L``(/``R7__P``4(N'7`L``/]0'(K( +M,\"#Q`R*P<'X`S/2@^`'BE0D#(J``````"7_````.\)T/HJ2`````#/`BL&! +MXO\```#!X@,EQP````O")?\```!0,\!FBX=P"P``@\`#)?__``!0BX=<"P`` +M_U`$@\0(7\.#QP"!_P````"!_P````!7BWPD"&H`,\!FBT<6@\`>)?__``!0 +MBX=<"P``_U`$:@A7Z#F2__^#Q!`E``L``#T``P``=1*X`0```(A'&U_#N`$` +M``!?PY!J!E?H$)+__X/$"*F`````=>8SP%_#._]J!#/`BU0D"&:+0A:#P!XE +M__\``%"+@EP+``#_4`2#Q`C#._^!_P````"!_P````"#[!`SP%>+?"085E-5 +M9HN'<`L``(/`'B7__P``4(N'7`L``/]0'(K8N`$````BPR7_````4#/`9HN' +M<`L``(/`'B7__P``4(N'7`L``/]0!#/`9HM'%H/`""7__P``4(N'7`L``/]0 +M((OPN``#``!F(\:#Q!`]``,```^%@`(``(O&)?__```-``@``"7__P``4#/` +M9HM'%H/`""7__P``4(N'7`L``/]0"#/`9HM'%H/`#B7__P``4(N'7`L``/]0 +M(&:)1"0J@\0,9H7`#X0.`@``,\!FBT<6@\`&)?__``!0BX=<"P``_U`@9HE$ +M)"`SP&:+1Q:#P`0E__\``%"+AUP+``#_4""+;"0D@\0(@>7__P``)?__``#! +MY1`+Z&:+AW(+``!FJ1``=%QF]\8`!'0I,\!FBT0D'E`SP%5FBT<6@\`0)?__ +M``!0BX=<"P``_U`H@\0,Z84!```SP&:+1"0>4#/`56:+1Q:#P!`E__\``%"+ +MAUP+``#_4!"#Q`SI7`$``(/'`#/`9HM$)![!^`)FB40D&+@#````9B-$)!YF +M]\8`!&:)1"06#X2;````BT0D&&:%P'0P)?__``!0,\!59HM'%H/`$"7__P`` +M4(N'7`L``/]0,#/`9HM$)"HE_/\```/H@\0,9HM$)!9FJ0(`="(SP&:+1Q:# +MP!`E__\``%"+AUP+``#_4""#Q0*#Q`1FB47^9HM$)!9FJ0$`#X2[````,\!F +MBT<6@\`0)?__``!0BX=<"P``_U`)?__``!0BX=<"P``_U`$@\0(B\9=6UY?@\00 +MPSO_@?\`````5XM\)`AJ<3/`9HN'<`L``(/`'27__P``4(N'7`L``/]0!&H" +M,\!FBX=P"P``@\`?)?__``!0BX=<"P``_U`$:/$````SP&:+AW`+``"#P!TE +M__\``%"+AUP+``#_4`0SP&:+AW`+``"#P!\E__\``%"+AUP+``#_4!R#R`0E +M_P```%`SP&:+AW`+``"#P!\E__\``%"+AUP+``#_4`0SP&:+AW`+``"#P!XE +M__\``%"+AUP+``#_4!R#R`0E_P```%`SP&:+AW`+``"#P!XE__\``%"+AUP+ +M``#_4`2#Q#!?PSO_@?\`````@?\`````@^P@N0$```!7BWPD,%:+="0L4U6+ +M1"0XQ@<#)?__``"(3P&(3S!H-I0``(/`'6:)1"0NBT0D/"7__P``@\`>9HE$ +M)"R+1"0\)?__``"#P!]FB40D*HM$)"PE__\``%!6Z$N2__^#Q`R%P'4\75M> +M,\!?@\0@PSO_0X'[``$```^,(P$``(MT)!2+?"00,\"*1"0N4#/`9HM$)"I0 +M_U8$@\0(Z4D!``"09L='!(T09L='!@$`BT0D*"7__P``4/]6'(A$)#,E]P`` +M`%"+1"0P)?__``!0_U8$:@8SP&:+1"0Z4/]6!#/`9HM$)#I0_U8<9L='$B`` +M9HE'#(M$)%!FB4<0,\!FBT0D0C/)9HE/%F:)3Q2)3QAFB4\<:G!0_U8$,\!F +MBT0D1E#_5AR(1R!H^````#/`9HM$)%)0_U8$,\!FBT0D4E#_5AR(1"1>@\0P +MJ"#'1"0@``````^$C````,9''P(EWP```%`SP&:+1"0J4/]6!(M$)$`E__\` +M`%#_5AR-;AR)?"0#`.(1QYH_0```#/`9HM$)"Y0 +M_U8$C44/]6'(/$/*D!````=`G&1RP0ZP>#Q@#& +M1RP$,\"*1"0O4(M$)"PE__\``%#_5@2X`0```(/$"%U;7E^#Q"##C70F`%>+ +M?"0(,\!FBX=P"P``@\`>)?__``!0BX=<"P``_U`<)?<```!0,\!FBX=P"P`` +M@\`>)?__``!0BX=<"P``_U`$:/X````SP&:+AW`+``"#P!TE__\``%"+AUP+ +M``#_4`0SP&:+AW`+``"#P!\E__\``%"+AUP+``#_4!R#R$`E_P```%`SP&:+ +MAW`+``"#P!\E__\``%"+AUP+``#_4`1J%(N'7`L``/]0-(/$)%_#5XM\)`AJ +M<#/`9HN'<`L``(/`'27__P``4(N'7`L``/]0!#/`BD0D%%`SP&:+AW`+``"# +MP!\E__\``%"+AUP+``#_4`0SP(/$$%_#D(UT)@!7BWPD"%,SP&:+AW`+``"# +MP!XE__\``%"+AUP+``#_4!R*V#/`BL,E]P```%`SP&:+AW`+``"#P!XE__\` +M`%"+AUP+``#_4`1J=#/`9HN'<`L``(/`'27__P``4(N'7`L``/]0!#/`BD0D +M)%`SP&:+AW`+``"#P!\E__\``%"+AUP+``#_4`0SP(K#4#/`9HN'<`L``(/` +M'B7__P``4(N'7`L``/]0!(/$)%M?PX/'`%"+1"085XM\)"!6BW0D%%.Y!``` +M`,9'`0/&1S`!B`>+1"0@9HE'!(M$)!QFB4<,9H7.9HEW$&:)3Q)T"+@<```` +MZP:0N!````!FQT<6$`"+UC/)9HE/'('B__\```/0B\9FB5<4)?__``")3QA0 +MBT0D&/]0'(K8B\8E__\``$`E__\``%"+1"0<_U`,,9'(03K&I#&1QXBBT0D(&8]A`IU![`B#`&(1Q[&1R'_N`,` +M```BPXJ``````(A'((I$)`^H@'03,\"*PR7\````#0`!``"+\.L$D&8S]H'F +M__\``,'F"XEW*(I$)`^H"'0EQD7X/$!,,[_\9'+`3KV3O_@?\`````@?\`````@^P,5[\!````5E-5BVPD +M(,=$)!@`````C74$BU0D)#OZ=&6-1P#_PA^C6H`B_5HE@`` +M`/]6!#/;@\0(BVPD)(M\)"B+R[@!````T^"+5"08A=!U7#/`9HL$70````!0 +M5NA'C?__@\0(@_@%=4-7:@1HA`H``%4SP&:+!%T`````4%;HU?W__[@!```` +M@\0875M>7X/$#,.0:@!HE@```/\6@\0(,\!=6UY?@\0,PSO_0X/[!'R-75M> +M,\!?@\0,PX'_`````('_`````%>+?"0(BT0D#(/`!R7_````4&B6````_U<$ +MBU0D&(M,)!12:@5HA0H``%%H`@$``/]7','X!%F#X`-FBP1%`````"7__P`` +M4%?H0OW__X/$(+@!````7\,[_X'_`````%>+?"0(BT0D#(/`!R7_````4&B6 +M````_U<$BU0D&(M,)!12:@9HA@H``%%H`@$``/]7','X!%F#X`-FBP1%```` +M`"7__P``4%?HXOS__VH`:)8```#_5P2#Q"BX`0```%_#._^!_P````"!_P`` +M``"#[!17OP$```!64U6+;"0HQT0D&`````"-=02-71R-1P7X/$%,.# +MQP!J`&B6````_Q:+3"0X,\!1:@5FBT0D,E"+1"1`5R7__P``4%7HX_O__[@! +M````@\0@75M>7X/$%,.#QP"+5"08B7PD'$*)5"08Z98````[_V@"`0``_U4< +MBU0D,(/$!,'X!('B__\``(/@`V:+!$4`````)?__```[PG2$:`(!``#_51R+ +M5"0P@\0$P?@$@>+__P``@^`#9HL$10`````E__\``#O"=3QJ`&B6````_Q:+ +M1"0X4#/`:@9FBT0D,E"+1"1`5R7__P``4%7H._O__X/$(+@!````75M>7X/$ +M%,.#QP!'@_\(#XY\_O__:@"+W6B6````_U,$BT0D((/$"(7`=#>#^`$/A+[^ +M__^+5"0PBT0D+%)J!&B$"@``:@`E__\``%!3Z.#Z__^#Q!BX`0```%U;7E^# +MQ!3#75M>,\!?@\04PSO_C70F`%>+?"0(9HN'<@L``&:I`@!T5S/`BH=["P`` +M@\`')?\```!0:)8```"+AUP+``#_4`1H`@$``(N'7`L``/]0'(/(#B7_```` +M4&@"`0``BX=<"P``_U`$:@!HE@```(N'7`L``/]0!(/$'%_#D(UT)@!05U:+ +M="044XM<)""+?"0D@?L]@PD!=0C&!P?K!H/&`,8'",9'`0+&1S`!9HEW$+D$ +M````9HE/$F:%SHM$)!R)7P1FB4<,=`BX'````.L&D+@0````9L='%A``B]8S +MR6:)3QR!XO__```#T(O&9HE7%"7__P``B4\84(M$)!C_4!R(1"03B\8E__\` +M`$`E__\``%"+1"0<_U`,,9'(03K"9#&1QXBQD`,B_@E +M__\```6`#```)?__``!0BT0D$/]0)(/$!(OP@?X]@PD!=`B!_CV#"0)U(XO' +M)?__```%A`P``"7__P``4(M$)!#_4!R#Q`2I`0```'4*N`$```!>7\,[_X'G +M__\``(M$)`R!QX<,``"!Y___``!7_U`7\.#QP!7BT0D"%9353/_C5@DB\?! +MX`R+\"7__P``!8`,```E__\``%#_$X/$!(OH@?T]@PD!=`R!_3V#"0(/A8$` +M``"+QB7__P``!80,```E__\``%"+1"08_U`<@\0$J0$```!T7H'F__\``(M$ +M)!2!QH<,``"!YO__``!6_U`,\!?PX/'`('_`````('_`````%>+?"0(9HN'<@L``&:I`@!T +M/C/`9HN'<`L``$`E__\``%"+AUP+``#_4!R#R$`E_P```%`SP&:+AW`+``!` +M)?__``!0BX=<"P``_U`$@\0,7\,[_X'_`````('_`````%>+?"0(:@`SP&:+ +M1Q:#P!0E__\``%"+AUP+``#_4`0SP&:+1Q:#P`@E__\``%"+AUP+``#_4""# +MQ`PE``L``#T``P``=1*X`0```(A'&U_#N`$```!?PY`SP&:+1Q:#P`8E__\` +M`%"+AUP+``#_4""#Q`2I@````'76,\!?PSO_5XM\)`B*1QN$P'4B,\!FBT<6 +M@\`&)?__``!0BX=<"P``_U`@@\0$J8````!T'K@!````7\.#Q@#&1QL!5^AN +MC?__N`$```"#Q`1?PU?HCHO__X/$!(7`==\SP%_#@\<`:@`SP(M4)`AFBT(6 +M@\`4)?__``!0BX)<"P``_U`$,\"#Q`C#@?\`````@?\`````:,`````SP(M4 +M)`AFBT(6@\`4)?__``!0BX)<"P``_U`$@\0(PX/'`#O_@?\`````5XM\)`@S +MP&:+AW`+``"#P!(E__\``%"+AUP+``#_4!R#X#]0,\!FBX=P"P``@\`2)?__ +M``!0BX=<"P``_U`$@\0,7\.!_P````"!_P````!0BT0D"(I`&X3`=2J+1"0( +M9HM`%B7__P``@\`5)?__``!0BT0D#(N`7`L``/]0'(/$!*C`=`JX`0```(/$ +M!,.0,\"#Q`3#._\[_X'_`````%>+?"0(:@`SP&:+1Q:#P!0E__\``%"+AUP+ +M``#_4`0SP&:+1Q:#P!4E__\``%"+AUP+``#_4!R#Q`RHP+@`````7P^5P,,[ +M_SO_@?\`````5S/_4V:+7"0,BPR]`````(7)=!@SP(O39HM!"('B__\``#O" +M=`Y'@_\1+0P2+UR4`____ +M@>(`____.\)U$S/`,]**0PJ*T3O"=0:+PUM>7\-&@_X1___9L=' +M`@``9L<'4I0SR8M$)!R(CYP+``")AUP+``"+1"0DB8=D"P``BT0D*(F'8`L` +M`#/`B8\8"P``B@90Z)#^__^#Q`R%P(F':`L``'2;9@^V!F:)1P:+AV@+``"+ +M0$")AVP+``!FBT809HF'<`L``(N':`L``(M`0&:#.`)U&F:+1A1FA(AX<+``"*1B&(AWH+ +M``"*1AZ(AWD+``"*1@R(AWL+``"*1BP\!'4-9L>'<@L`````ZPL[_V;'AW(+ +M```!`(I&'J@!="AFBX=R"P``9@T``6:)AW(+``"+1"0J`AT$F:+AW(+``!F#00`9HF'<@L``(I&'J@$=!)FBX=R"P`` +M9@T`(&:)AW(+``"*1A^H$'029HN'<@L``&8-0`!FB8=R"P``9HM'!F8]`P!U +M-&:+1@QFABD8?J`AT%V:+AW(+``!F#8`` +M9HF'<@L``.@I<___BX=L"P``A7\.#QP`SP(M4)`1FBP(]4I0``'4@9HM" +M`F8](`!V%E+_DK`+``"#Q`2%P+@`````#Y7`PY`SP,.0@?\`````@?\````` +M,\"+5"0$9HL"/5*4``!U$V:+0@)F/2``=@E2Z*!U__^#Q`3#@?\`````@?\` +M````@^P0,\F+5"04BH$`````08/Y2XB$"D,0``!R[8J"@@L``(B"3!```(J" +M@@L``(B"=1```(J"W!```(B"7Q```(J"@PL``(B"31```(J"@PL``(B"=A`` +M`(J"W1```(B"8!```(J"A`L``(B"3A```(J"A`L``(B"=Q```(J"WA```(B" +M81```(J"A0L``(B"3Q```(J"A0L``(B">!```(J"WQ```(B"8A```(J"A@L` +M`(B"4!```(J"A@L``(B">1```(J"X!```(B"8Q```(J"APL``(B"41```(J" +MAPL``(B">A```(J"X1```(B"9!```(J"3!````R`B(),$```9L<$)`$`BX)D +M"P``9L=$)`Q+``5$$```B40D!(V"1!```(E$)`AFBX*\#@``9H7`=!)J`6H` +MC40D"%!2Z,UO__^#Q!"#Q!##._^-="8`4#/`5XM\)`Q69HM'`H7`#X2;```` +M@_@0#X2:````@_@P#X21````@_A0=`F#^&`/A<\```"*AWT+``"H`P^$FP`` +M`%>+AVP+``#_4"@STH/$!(OP)?__``!FBY>0$```*\)FB40D"&8]H`]V5XJ' +M?0L``"3\B(=]"P``:``!``!7BX=L"P``_U`<:@`SP&:+AY`0``"!YO__``!0 +M5FH":@!J!5?H1VW__X/$).LP._\SP%Y?@\0$PUZXZ`,``%^#Q`3#D(M$)`AF +M/;@+=A!FB;>0$```5^C5_?__@\0$BI>/$```BL+^PJ@'B)>/$```=1)H@``` +M`%>+AVP+``#_4!R#Q`A7BX=L"P``_U`0@\0$7E^#Q`3#D#O_@?\`````4XM$ +M)`AFBU`$9O](!&:%TG4*N/____];PX/'`(M4)`B+1"0,BPJ[`0````/9B1J* +M$8@06S/`PY`[_X'_`````(/L#%:+="049HM&`F8]$`!U"HN&;`L``(7`=1A> +MN`(```"#Q`S#._^X`0```%Z#Q`S#._^+1"089HL`)?__```]4I0``'7ABT0D +M&(N6;`L``&:+0`)FBQ(E__\``('B__\``#O"=<&+1"08@\`$B40D!(M$)!AF +MBT`$9HE$)`B*AGH+```\!'5?BXYH"P``BY9H"P``9HM)#('A__\``(')`(`` +M`&8+CG(+``!FB8YR"P``BU(@B9:L"P``BY9H"P``BU(8B9:P"P``BY9H"P`` +MBU(HB9:D"P``BY9H"P``BU(PZU&#QP"+CF@+``"+EF@+``!FBTD.9@N.<@L` +M`&:)CG(+``"+4B2)EJP+``"+EF@+``"+4AR)EK`+``"+EF@+``"+4BR)EJ0+ +M``"+EF@+``"+4C2)EJ@+``"-1"0$4&@`````5HN&;`L``/]0&(/$#%Z#Q`S# +M._^!_P````!0BT0D"%>*$(UX`832=29'BD__A,EU'D>*5_^$TG461XI7_X32 +M=0Y'BD__A,EU!HH'A,!T!S/`7X/$!,-?N`$```"#Q`3#._\[_X'_`````%>+ +M?"0(9HM'`F8]00!V/XM4)`Q25XN';`L``/]0"(M$)!2#Q`B%P'0E5^AQ:___ +MBX]@"P``48N'7`L``/]0/&;'1P0``&;'1P(B`(/$"%_#BU0D!(M$)`B)@I`+ +M``!FBT("9CU!`'(/:D!2BX)L"P``_U`<@\0(PSO_@?\`````BU0D!(M$)`B) +M@I0+``!FBT("9CU!`'8/:B!2BX)L"P``_U`<@\0(PSO_@?\`````5XM\)`A3 +MBD0D$(J??0L``(B'?0L``&:+1P)F/4$`=D4/OL,STHI4)!`SPJD#````=!)H +M``$``%>+AVP+``#_4!R#Q`B*1"00J`-T&?;#`W445XN';`L``/]0*&:)AY`0 +M``"#Q`1;7\,[_X'_`````%>+?"0(5F:+1P)F/4$`=BR+1"04A+AVP+``#_4!RX`0```(/$"%Y?PX/'`%>-MY00``"+1"04N18` +M``"+^#/`\Z5?7E_#._\[_X'_`````(M$)`0/OX"\#@``PXUT)@"+3"0$9HM! +M`F8]4`!S#K@!````P[@"````PSO_#[^1O`X``(M$)`A*9HL`)?__```[PGW@ +M:@"+5"004HM$)!!04>C::O__,\"#Q!##C70F`(M4)`2X(`````^_DK0+```K +MPL.0@?\`````@?\`````5U:+="0,9HN&M`L``&8](`!\$5ZX`@```%_#D+@$ +M````7E_#9HN&<@L``&:I``%T$8M$)!B+5"04`\(]`````7?:9HM&`F8]00!S +M"%ZX`0```%_#9HN&F@L``&:I`@!T&S/`BTPD&&:+AI@+```[R'T*7K@#```` +M7\,[_XJ&N`L``+D?````(LB+5"00C0Q)P>$#C;P.O`L``(D7BU0D%(E7!&:+ +M5"089HE7"(M4)!R)5Q1FBT8"9CU0`'(.5U:+AFP+``#_4"2#Q`AF_X:T"P`` +MBI:X"P``_L(SP(B6N`L``%Y?PX/'`#O_@?\`````:@&+5"0(4HN";`L``/]0 +M!(/$",.!_P````"!_P````!05E.+="00BGPD%&:+1@)F/1``=`M;N`$```!> +M@\0$PV:+AG(+``!FJ0`@=4\SP(K'A#^&1U"F:+1@9F +M/1,`=!BX`@```%M>@\0$PX/'`(J&>0L``*B`=!8SP&:+1@9(@_@2=PK_)(4D +M!P``@\<`6[@#````7H/$!,.0:@,SP&:+AG`+``"#P`(E__\``%"+AEP+``#_ +M4`0SP&:+AG`+``"#P`,E__\``%"+AEP+``#_4!R(1"07@\0,J`%T";@0```` +MZP<[_[@$````,]**USO"#X2?`0``,\"*1"0+@_`!)?\```!0,\!FBX9P"P`` +M@\`#)?__``!0BX9<"P``_U`$@\0(Z6T!``"0:/<````SP&:+AG`+``"#P!TE +M__\``%"+AEP+``#_4`0SP&:+AG`+``"#P!\E__\``%"+AEP+``#_4!R#Q`R* +MV/;#`70'N!````#K!;@$````,]**USO"#X0/`0``,\"*PX/P`27_````4#/` +M9HN&<`L``(/`'R7__P``4(N&7`L``/]0!(/$".G?````@\<`,\!FBX9P"P`` +M0"7__P``4(N&7`L``/]0'(/$!(K8]L,(=`FX$````.L'._^X!````#/2BM<[ +MP@^$GP```#/`BL.#\`@E_P```%`SP&:+AG`+``!`)?__``!0BX9<"P``_U`$ +M@\0(ZW0SP&:+AG`+``"#P!`E__\``%"+AEP+``#_4!R#Q`2*V/;#@'0'N!`` +M``#K!;@$````,]**USO"=#LSP(K#-8`````E_P```%`SP&:+AG`+``"#P!`E +M__\``%"+AEP+``#_4`2#Q`CK#(B^G0L``(B^G@L``(#_$'4/9HN6<@L``&:# +MR@'K#CO_9HN6<@L``&:!XO[_9HF6<@L``%LSP%Z#Q`3#D('_`````('_```` +M`(M4)`2*3"0(9HM"`F8]$`!T#K@!````P[@"````PSO_9HN"<@L``&:I""!U +M$H#Y#W?FBX)H"P``BT!$APV:+ +MAG(+``!FJ0`@=>LSP(K#@_@'?@L]_P````^%ZP$``#/`9HM&!DB#^`MWR_\D +MA7`'```SP(K#@_@"#X3+`0``@_@$#X2^````/?\````/A+0L``(#*`XB6>0L``(#B[XB6>0L``.DW +M`0``,\"*PX/X!'1#/?\````/A&P!``!FBX9R"P``9JD,``^%1____XN&9`L` +M`#T4[_\`#XT````[_XJ6>0L``(#B_(B6 +M>0L``.G7````,\"*PX/X!'03/?\````/A&+____I!P$``(/'`(J6>0L``(#B +M_(B6>0L``(#*$(B6>0L``.F>````@\<`,\"*PX/X!'0G/?\````/A=````"* +MEGD+``"`R@*(EGD+``"`XN^(EGD+``#K;3O_BI9Y"P``@.+]B)9Y"P``@,H0 +MB)9Y"P``ZU$[_X#[!'1*Z8X````[_S/`BL.#^`1T*SW_````=7QFBX9R"P`` +M9JD`$`^%5_[__XJ6>0L``(#*`HB6>0L``.L1._^*EGD+``"`XOV(EGD+``"+ +MAF@+``"+0$B%P'02,\"*PU!6BX9H"P``_U!(@\0(BT0D%(B>>@L``(J6>0L` +M`(@0BH9Y"P``J`%T%F:+EG(+``!F@L46[@"````7L-FBY9R"P``9H'B +M__YFB99R"P``6S/`7L-0N/\#``!75E.+7"04BW0D&&8CQB7__P``/4`"```/ +MA/,````]@`(```^$Z````#W``@``#X3=````/0`#```/A-(````](`,```^$ +MQP```#U``P``#X2\````/6`#```/A+$```"+QB7__P``4/]3'(/$!"7B```` +M@_@B#X65````B\8E__\``(/``R7__P``4/]3'(/$!"7`````@_A`=76+QB7_ +M_P``@\`$)?__``!0_U,<@\0$J2````!U6(O&)?__``"#P`DE__\``%#_4QS! +MX`B+^(O&)?__``"#P`@E__\``%#_4QR#Q`@+QV:%P'0C9JD!`'4=@>;__P`` +M@\8,@>;__P``5O]3'(/$!*D(````=`DSP%M>7X/$!,-;7E^X`0```(/$!,.- +M="8`@^P05U9358U$)!^+;"0DB40D%&CX#```_U4<,_^#Q`2*V(UU'&IA_Q9H +M^`P``/\6,]*#Q`B*TSO0=`F_`0```.L0._]'@_\R?-N+1"04,_^(&(7_#X7) +M````BD0D'Z@!#X6]````C40D'XE$)!1H^@P``/]5'#/_@\0$BMB-=1QJ8?\6 +M:/H,``#_%C/2@\0(BM,[T'0*OP$```#K$8/'`$>#_S)\VHM$)!0S_X@8A?]U +M<6CX#```_U4:@!H^`P` +M`/]5!&IA_U4<:/@,``#_51R#Q!"%P'0-,\!=6UY?@\00PX/'`%U;7K@!```` +M7X/$$,.#QP"#[`Q6BW0D%%-6Z`$&``"#Q`2%P'4C5NBD_O__@\0$AZ`0```.L",]*%TG1"@_H!=$&#^@)U+FH0 +M:/@,``#_5@2+5"0LBTPD*%)1BT0D+%!6Z.$#``!J`(O8:/@,``#_5@2#Q""+ +MPUM>@\0,PSO_,]OK\HM4)"2+3"0@4E&+1"0D4%;HCP(``(O8@\00Z]8[_X'_ +M`````%>+1"0(5HMT)!2+$(M\)!"!^B"!``!T$%ZX`P```%_#N`$```!>7\,S +MP(I&"%`SP&:+1@)0,\!FBP90Z/#J__^#Q`R+R(7)=->*1@Z$P'709HM&!&:I +M`0!TQF:+%HM$)`QFB5<$9HM6`F:)5P:*5CR(5R"+5C"#XOR)5RB*5@R(5RUF +MBU8$9HE7+HI1"(@75U90_U$4@\0,7E_#D(UT)@"#[`Q3BT0D%(L0@?H@@0`` +M=!);N/____^#Q`S#,\!;@\0,PY"+1"0

`,B]@E__\```6`#```)?__``!0 +MBT0D&/]0)%#H%NK__XE$)`R#Q`B%P'3',\!FB\,%A`P``"7__P``4(M$)!C_ +M4!R#Q`2I`0```'2FBTPD&(M$)!Q14(M4)!R+1"0,4O]03(/$#%N#Q`S#@?\` +M````@?\`````@^P,5XM\)!13BQ>!^B"!``!T%5NX_____U^#Q`S#._\SP%M? +M@\0,PXM$)""#P``(:``!``"+V/]7 +M'&H`"\.+V&B6````_U<$@>/__P``4^A4Z?__B40D*(/$'(7`=*F+3"0"2+1"18P>`+#0```(!0B40D8&CX#```_Q,S[8/$"(ET +M)!"+="1)1"P@@\0,@\4$@_U`?-V+5"1@ +MBW0D$%)6BT0D8(M,)'2#X!]0BT0D9,'X!27_````4(U$)"104>B]_O__@\08 +MA&C\#```_U`$@\00_T0D9(M$)'B+5"1D.]!]'XM,)&"#P32)3"1@BT0D6$") +M1"18/0`"```/C!____]=6UZ+1"187X/$6,,[_XUT)@"#[&`SR5=64U6+1"1X +MB4PD:(E$)&"+1"1TB4PD9(UP!(UX((M$)&0E_P```%!H^@P``/\6QT0D9``` +M``"#Q`B+1"1

`(#0#```"+Z"7__P``4/\7@\0$/8T0```/AAD_?__@\08A7__P``)?\```!05?\6@\0(_T0D:(N$)(````"+ +M5"1H.]!],HM,)&"#P32)3"1@BT0D7$")1"1<@_@0#XP`____BU0D9$*)5"1D +M@?H``0``#XS/_O__75M>BT0D7%^#Q&##5U9356:+;"08BW0D%(O%)?__``!0 +M_U8<,_^#QAR*V(/$!&IA_Q:+Q27__P``4/\6,]*#Q`B*TSO0=`VX`0```%U; +M7E_#@\<`1X/_,GS4BT0D'(@875M>,\!?PY"-="8`5XM\)`AH^`P``/]7)(/$ +M!*D```!_=4AH````@&CX#```_U<,:F'_5QQH^`P``/]7)(/$$#T```"`=21H +MIP,`@&CX#```_U<,:F'_5QQH^`P``/]7)(/$$#VD`P"`=`4SP%_#D&H`:/@, +M``#_5PR#Q`BX`0```%_#._^!_P````!7BWPD"&CX#```_U+=0B+?0R+ +M31#SI%]>7<-`*",I=')L;&0N8R`D4F5V:7-I;VXZ("`@,2XP("`D`$]L:6-O +M;2!44DQ,1"`Q+C(N,"`*)`I0"E0*,`I`"F`*<`H)`PH+0`*``L`"``,@`T`# +M8`,"```````````````````````````````````````````````````````` +M``````````````````````#\%P``:1@``&D8``!I&```8!@``&D8``!(&``` +M:1@``#P8``!I&```:1@``&D8```(&```Z%X```!@``#H8@``H&,``$Y?```( +M9```3E\```,````````````````````````````````````````````````` +M`````````````````````````$#_______\`````!``````````````````` +M````````````````````````````````````````````````````````!!`` +M9`````D#"@L%!@<$`0`````````!````$D`0``P`#``````````````````` +M```````````````````````````````````````````````````````````` +M```)"@L,#P,%!P4&!P`!`P0$"`@`!0@&"`<(``$"`P@(!`,$!P4&``$"`@`` +M`$:2```"````$D`0``P`#``````````````````````````````````````` +M```````````````````````````````````````````$````-I0```,````" +M```````````````````````````````````````````````````````````` +M``````````````````````````````@```"$"@``!`````)````````````` +M```````````````````````````````````````````````````````````` +M````````````````"````(4*```%`````D`````````````````````````` +M```````````````````````````````````````````````````````````` +M```(````A@H```8````"0``````````````````````````````````````` +M`````````````````````````````````````````````````!`````]@PD! +M!P```!)`$``,``P````````````````````````````````````````````` +M````````````````````````````````````$````#V#"0((````$D`0``P` +M#``````````````````````````````````````````````````````````` +M``````````````````````!`````C1`!``H``0`(#``````````````````` +M```````````````````````````````````````````````````````````` +M`````````$````"-$`$`"P`"`P@,*(3^__[_```````````````````````` +M````````````````````````````````````````````````````````@``` +M`(T0`0`,``,`"`P(!/[_```````````````````````````````````````` +M`````````````````````````````````````````````0``C1`$``T``@`` +M``@````````````````````````````````````````````````````````` +M```````````````````````````````"``"-$`0`#@`#````"``````````` +M```````````````````````````````````````````````````````````` +M``````````````````0``(T0!P`/``$!```(```````````````````````` +M```````````````````````````````````````````````````````````` +M````@```C1`%`!(``@````@````````````````````````````````````` +M```````````````````````````````````````````````````(``"-$`@` +M$P`!`@``"``````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````00,`````@`(```````,)P]/0#`#B$`0`*0`,`````````!L`!``$` +M!L`"@```#,`+$`!:>&M1````$D`,`#(P,C`R,#DV6#4W-@``7/\``&C_``#X +M_P``B``!`(@``0"(``$`B``!`(@``0!<_P``\``!`/```0#P``$`6`$!`%@! +M`0!8`0$`7/\``%S_``!8`0$`6`$!`!P"`0!8`@$`L`(!`!`#`0!,`P$`3`,! +M`$P#`0!,`P$`'`(!`)@#`0"D`P$`I`,!``0````,`````0```%-#3P`!``$` +M`0````@``0(``````````````````````0``````````````!`#Q_P`````` +M``````````,``0`````````````````#``(``````````````````P`#```` +M``````````````,`!``````````````````#``4``````````````````P`& +M``````````````````,`!P`````````````````#``@````````````````` +M`P`)``````````````````,`"@`,```````````````$`/'_%````-`-`0!$ +M`````@`!`",```!P#`$`7`````(``0`O````4`D!`)@````"``$`-@```/`) +M`0`<`0```@`!`$`````0"P$`8`$```(``0!*````4`T!`'@````"``$`60`` +M`-`,`0!X`````@`!`&4```"`!0$`0`$```(``0!Q````X/D``#@````"``$` +M>0```'#W``!,`0```@`!`(8```"@\@``9`````(``0"0`````@``@+D``"P````"``$`J0(` +M`/#```#X`0```@`!`+H"```$!0``4`````$``@#&`@``X/$``$@````"``$` +MT@(``)#Q``!(`````@`!`-X"``"T!```4`````$``@#H`@``$/$``"@````" +M``$`\P(``.#P```D`````@`!`/\"``"`\```8`````(``0`+`P``9`0``%`` +M```!``(`%0,``$#Q``!$`````@`!`"8#````\```@`````(``0`R`P``%`0` +M`%`````!``(`/`,``,0#``!0`````0`"`$<#```0[@``L`````(``0!4`P`` +MH.\``%0````"``$`80,``,#N``#4`````@`!`&H#``!T`P``4`````$``@!U +M`P``T.D``&0````"``$`A`,``"0#``!0`````0`"`(X#``!PZ0``6`````(` +M`0"=`P``U`(``%`````!``(`IP,``$#H```D`0```@`!`+8#``!`[```;``` +M``(``0#"`P``0.H``/P!```"``$`RP,``(0"``!0`````0`"`-4#``!0Y@`` +ML`````(``0#@`P```.8``$P````"``$`\0,``%#A``#D`````@`!```$``!0 +MY0``L`````(``0`1!```X-T``"0````"``$`'P0``(#=``!@`````@`!`"X$ +M```0W@``.`,```(``0`_!```0.(```P#```"``$`2`0``#0"``!0`````0`" +M`%($``#0W```I`````(``0!=!```$-P``,`````"``$`;@0``*#;``!D```` +M`@`!`'T$``!0VP``2`````(``0".!```,-D``!0"```"``$`EP0``.0!``!0 +M`````0`"`*$$``#<`0``"`````$``@"M!```S`$``!`````!``(`N00``,0! +M```(`````0`"`,$$``"\`0``"`````$``@#.!```T-<``&`!```"``$`UP0` +M`&P!``!0`````0`"`.$$``!H`0``!`````$``@#H!```9`$```0````!``(` +M]`0``%P!```(`````0`"`/T$``!0SP``+`````(``0`0!0```-4``(`````" +M``$`)P4``(#/```$!````@`!`#<%``"0TP``:`$```(``0!,!0``)`$``#@` +M```!``(`7@4``!@!```*`````0`"`'$%``!`N@``8`(```(``0"#!0``@,`` +M`'`````"``$`F04``*"\``#@`@```@`!`*@%``"`OP````$```(``0"\!0`` +MX````#@````!``(`S04``'"A```H`````@`!`-D%```@H0``2`````(``0#E +M!0``<)\``+`!```"``$`]@4``/"<``!X`@```@`!``@&``!0FP``E`$```(` +M`0`>!@``T)<``'@#```"``$`-`8``""7``!0`````@`!`$@&``"`D```8`4` +M``(``0!=!@``P(\``,`````"``$`;P8``*"/```@`````@`!`(4&``!@CP`` +M0`````(``0"9!@``,(\``"@````"``$`K`8``(".```H`````@`!`,4&```P +MC```*`````(``0#5!@```(P``"@````"``$`X@8``-"$``"(`P```@`!`/0& +M``"0A```/`````(``0#\!@```(0``(P````"``$`!@<``-"#```H`````@`! +M`!0'```0@P``N`````(``0`D!P``X((``"@````"``$`+@<``#!^``"H!``` +M`@`!`#<'``!@?```R`$```(``0!%!P``T'H``(P!```"``$`50<``%!V``!T +M!````@`!`%T'```P=@``&`````(``0!E!P``T'4``%@````"``$`;0<``(!U +M``!0`````@`!`','``#P=```D`````(``0![!P``X',``#@````"``$`AP<` +M`,!S```@`````@`!`)`'``!P65296%D4E!, +M145065296%D4E!,14500!%15!O71E`$5%1&5L87D`145296%D0FET`%12;&QD5%105&5M<&QA=&4` +M061A<'1E65(5T-O;F9I9TEN:70`0G5L;'-E>6500TE# +M;VYF:6<`3T,S-30P5&%B;&4`3T,S,C4P5&%B;&4`3T,S,30Q5&%B;&4`3T,S +M,30P5&%B;&4`2&%W:V5Y94A70V]N9FEG26YI=`!%;F%B;&500TDT`$AA=VME +M>6500TE#;VYF:6<`3T,S,3,Y5&%B;&4`1&ES86)L95!#23,`4')E65"87-I8U)E65297-T87)T`$)U;&QS97EE0V]D941O=VYL;V%D`$)U;&QS +M97EE26YT97)F86-E`%181')A:6Y&65);G1E653971U<%1R86YS;6ET`%-E +M;F10;VQL26UM961I871E`$AA=VME>65#;&]S94-O;7!L971E9`!(87=K97EE +M4V5T=7!#;VUM86YD`$AA=VME>65.;T]P97)A=&EO;@!(87=K97EE4F5A9$5R +M65#;&]S90!(87=K +M97EE2%=/<&5N26YI=`!'971,;VYG`$%S:6-#:&5C:P!00TE(5T]P96Y);FET +M`%!#25!)3TEN=&5R653971U<%)E8V5I +M=F4`2&%W:V5Y94U!0TEN:70`4W1A='5S26YT97)R=7!T`$AA=VME>65297-E +M=`!(87=K97EE4&]L;`!(87=K97EE57-E65296]P96X` +M2&%W:V5Y95-E=$=R;W5P`$AA=VME>653971&=6YC=&EO;F%L`$AA=VME>65/ +M<&5N`$EN:71#;VUM86YD`$AA=VME>653=&%R=$-O;6UA;F0`3VQD4$E/26YT +M97)R=7!T`%!R97-E;G1/;&1024\`16YA8FQE36%S=&5R`$1I%)X4W=E97``061A<'1E +M0!435-296%D34%#5&EM97(`5$U34V5T=7!296-E +M:79E`%1-4U-E='5P5')A;G-M:70`5$U34V5T=7!#;VUM86YD`%1-4T-O9&5$ +M;W=N;&]A9`!435--04-);FET`%1-4U!O;&P`5$U37T-H96-K`%1-4U5S97)# +M;&]S90!435-297-E=`!0;W=E0!44FQL +M9$-O<'D`5%)L;&1);G1EF4`5%)L;&1$;W=N;&]A9`!44FQL9%-E +M=%!R;VUI'0`+G)E;"YD871A`"YC;VUM96YT`'L( +M```!T@``.PH```'4``#V%P```0,``#@F```!U```@S````'4``!B,0```=0` +M`&0R```!U```[#(```'4``![-````@``+LU```!Z```Q34```'H``#/-0```>@``# +M```!`P``XF@```&F``!":0```:8``%!I```!I@``86D```&F``!N:0```:8` +M`(5I```!I@``C6D```&F``"6:0```:8``)QI```!I@``I6D```&F``"S:0`` +M`:8``,9I```!I@``U&D```&F```Y:@```:8``&=J```!I@``>6H```&F``"+ +M:@```:8``)UJ```!I@``R6H```&F``"`<``"JX```!-P`` +M+;D```$W``#-R@```78``&;8```!;P``#MD```%N``!NV@```6L``.+:```! +M:@``9MP```%K``!^W````6D``"3=```!:@``,]T```%H``#.YP```>4``/[H +M```!YP``(.D```'G``"NZ0```><```[J```!YP``8^L```'G``"/ZP```><` +M`&7M```!YP``C.T```'E``"C[@```><``%#O```!YP``//(```$W``![\@`` +M`3<``+_R```!-P``>_<```$V``!B^P```14``%7_```!`P``5`(!``$#``!8 +M`````>(``%P````!X0``8`````'@``!D`````=\``&@````!W@``;`````'= +M``!P`````=P``'0````!VP``>`````':``!\`````=D``)`````!`@``E``` +M``$"``"8`````0(``)P````!`@``H`````$"``"D`````0(``*@````!`@`` +MK`````$"``"P`````0(``+0````!`@``N`````$"``"\`````0(``,`````! +M`@``Q`````$"``#(`````0(``,P````!`@``T`````$"``#4`````0(``-@` +M```!`@``W`````$"``#D`````:\``.@````!L0``[`````&-``#P`````;`` +M`/0````!K0``^`````%Z``#\`````88````!```!@P``!`$```&L```(`0`` +M`8(```P!```!>0``$`$```%X```4`0```7<``"@!```!KP``+`$```&Q```P +M`0```8T``#0!```!L```.`$```&M```\`0```70``$`!```!A@``1`$```&# +M``!(`0```:P``$P!```!@@``4`$```%S``!4`0```7(``%@!```!<0``@`$` +M``%L``"$`0```;@``(@!```!RP``C`$```&Y``"0`0```;P``)@!```!NP`` +MH`$```&Z``"L`0```>,``/@!```!9@``_`$```&X`````@```,``'@"```!6@``?`(```%9``"8 +M`@```5<``)P"```!N```H`(```'+``"D`@```;D``*@"```!O```L`(```&[ +M``"X`@```;H``,`"```!5@``Q`(```'C``#0`@```54``.@"```!5P``[`(` +M``&X``#P`@```,``"`#```!4P``.`,```%7```\`P```;@``$`#```! +MRP``1`,```&Y``!(`P```;P``%`#```!NP``6`,```&Z``!@`P```58``&0# +M```!XP``<`,```%1``"(`P```4\``(P#```!N```D`,```'+``"4`P```;D` +M`)@#```!O```H`,```&[``"H`P```;H``+`#```!3@``M`,```'C``#``P`` +M`4T``-@#```!3P``W`,```&X``#@`P```,``!`$```!30``*`0```'` +M```L!````8\``#0$```!N0``/`0```%*``!$!````9```$P$```!20``4`0` +M``&.``!4!````>,``'@$```!P```?`0```&/``"`!````8\``(0$```!1P`` +MB`0```%'``",!````48``)`$```!1@``E`0```%%``"8!````44``)P$```! +MDP``H`0```&.``"D!````>,``,@$```!P```S`0```&/``#0!````,``!@%```!0```(`4```%^```H!0`` +M`7T``#`%```!?```.`4```$_```\!0```3X``$`%```!BP``1`4```%[``!H +M!0```4```'`%```!?@``>`4```%]``"`!0```7P``(@%```!/P``C`4```$^ +M``"0!0```8L``)0%```!>P``N`4```%```#`!0```7X``,@%```!?0``T`4` +M``%\``#8!0```3\``-P%```!/@``X`4```&+``#D!0```7L```@&```!0``` +M$`8```%^```8!@```7T``"`&```!?```*`8```$_```L!@```3X``#`&```! +MBP``-`8```%[``!8!@```3D``&`&```!?@``:`8```%]``!P!@```7P``'@& +M```!/P``?`8```$X``"`!@```8L``(0&```!=0``E`8```%M``"8!@```6<` +M`)P&```!80``H`8```%8``"D!@```50``*@&```!4@``K`8```%0``"P!@`` +M`4P``+0&```!2P``N`8```%(``"\!@```40``,`&```!00``Q`8```$]``#( +M!@```3P``,P&```!.P``T`8```$Z```D!P```0(``"@'```!`@``+`<```$" +M```P!P```0(``#0'```!`@``.`<```$"```\!P```0(``$`'```!`@``1`<` +M``$"``!(!P```0(``$P'```!`@``4`<```$"``!4!P```0(``%@'```!`@`` +M7`<```$"``!@!P```0(``&0'```!`@``:`<```$"``!L!P```0(``'`'```! +M`@``=`<```$"``!X!P```0(``'P'```!`@``@`<```$"``"$!P```0(``(@' +M```!`@``C`<```$"``"0!P```0(``)0'```!`@``F`<```$"``"!8!`*`0```&````Z@````0````0````(`````,``````````````!@G`0"= +M#0`````````````!`````````"@````#``````````````"U-`$`3P`````` +M`````````0`````````R````"0``````````````!#4!`%@#```%`````0`` +M``0````(````/`````D``````````````%PX`0`8"```!0````(````$```` +L"````$8````!``````````````!T0`$`N@```````````````0`````````` +` +end Property changes on: stable/3/sys/contrib/dev/oltr/i386-elf.trlld.o.uu ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: stable/3/sys/contrib/dev/oltr/trlld.h =================================================================== --- stable/3/sys/contrib/dev/oltr/trlld.h (nonexistent) +++ stable/3/sys/contrib/dev/oltr/trlld.h (revision 44655) @@ -0,0 +1,892 @@ +/* + ****************************** trlld.h *********************************** + * + * Copyright (c) 1997 + * OLICOM A/S + * Denmark + * + * All Rights Reserved + * + * This source file is subject to the terms and conditions of the + * OLICOM Software License Agreement which restricts the manner + * in which it may be used. + * + *--------------------------------------------------------------------------- + * + * Description: PowerMACH Works header file + * + *--------------------------------------------------------------------------- + * $Log: O:/USR/PROJECT/trlld/libsrc/include/trlld.h_v $ + * + * Rev 1.8 10 Dec 1998 12:24:52 JHM + * version 1.2.0,prominfo structure with shorts. + * + * Rev 1.7 25 Nov 1998 16:18:48 JHM + * Bullseye mac, 100MBPS, mactype in config structure, + * 3540 adapter, TRlldTransmitFree, TRlldReceiveFree, + * TRlldAdapterName + * + * Rev 1.6 23 Oct 1998 16:00:36 JHM + * hawkeye adapter types + * + * Rev 1.5 11 Aug 1998 12:22:06 JHM + * split hawkeye types into PCI4,5,6 + * + * Rev 1.4 10 Jul 1998 14:39:22 JHM + * OC_3140,OC_3250 + * + * Rev 1.3 18 Jun 1998 11:32:20 JHM + * AddMemory,OC_3250 + * + * Rev 1.2 18 Apr 1998 15:11:20 JHM + * + * Rev 1.1 09 Dec 1997 18:17:52 JHM + * rel111: TRlldDataPtr_t + * + * Rev 1.0 24 Nov 1997 11:08:58 JHM + * Initial revision. + + Rev 1.5 18 Jun 1997 11:31:36 JHM + Checks for version + + Rev 1.4 13 Jun 1997 13:47:34 JHM + + Rev 1.3 13 Jun 1997 13:27:56 JHM + DTR support, version change + + Rev 1.2 12 Jun 1997 11:43:20 JHM + TRLLD_INTERRUPT_TIMEOUT defined + + Rev 1.1 11 Apr 1997 15:24:18 JHM + replaced tabs with spaces + + Rev 1.0 11 Apr 1997 14:43:04 JHM + Initial revision. + * + **************************************************************************** +*/ + +#ifndef TRLLD_H +#define TRLLD_H + +/* Data buffer pointers are always 32 bits. + For 16:16 it is segment:offset while it for 32:32 is a linear address. */ + +#ifdef TRlldSmall +#define TRlldDataPtr_t unsigned char far * +#define TRlldWordDataPtr_t unsigned short far * +#define TRlldDWordDataPtr_t unsigned long far * +#else +#define TRlldDataPtr_t unsigned char * +#define TRlldWordDataPtr_t unsigned short * +#define TRlldDWordDataPtr_t unsigned long * +#endif + +#ifdef __WATCOMC__ +#define CDECL _cdecl +#else +#define CDECL +#endif + +/*****************************************************************************/ +/* */ +/* Firmware */ +/* */ +/*****************************************************************************/ + +extern unsigned char TRlldMacCode[]; /* 3115,17,18,29,33,36,37 */ +extern unsigned char TRlldHawkeyeMac[]; /* 3139,3140,3141,3250 */ +extern unsigned char TRlldBullseyeMac[]; /* 3540 */ + +/*****************************************************************************/ +/* */ +/* Maximal numbers of concurrent receive and transmit slots */ +/* */ +/*****************************************************************************/ + +#define TRLLD_MAX_RECEIVE 32 +#define TRLLD_MAX_TRANSMIT 32 + +/*****************************************************************************/ +/* */ +/* Maximal frame sizes */ +/* */ +/*****************************************************************************/ + +#define TRLLD_MAXFRAME_100MBPS 18000 +#define TRLLD_MAXFRAME_16MBPS 18000 +#define TRLLD_MAXFRAME_4MBPS 4500 + +/*****************************************************************************/ +/* */ +/* TRlldStatus contains the adapter status used in a DriverStatus call-back. */ +/* */ +/*****************************************************************************/ + +struct OnWireInformation { + unsigned short RingStatus; + unsigned short Speed; + unsigned short AccessProtocol; + unsigned short Reserved; +}; + +typedef struct TRlldStatus { + unsigned short Type; + unsigned char Closed; + unsigned char AccessProtocol; + unsigned short MaxFrameSize; + unsigned short Reserved; + union { + unsigned short OnWireRingStatus; /* for compability */ + unsigned short SelftestStatus; + unsigned short InitStatus; + unsigned short RingStatus; + unsigned short AdapterCheck[4]; + unsigned short InternalError[4]; + unsigned short PromRemovedCause; + unsigned short AdapterTimeout; + struct OnWireInformation OnWireInformation; + } Specification; +} TRlldStatus_t; + +/* values of TRlldStatus.Type */ + +#define TRLLD_STS_ON_WIRE 0 +#define TRLLD_STS_SELFTEST_STATUS 1 +#define TRLLD_STS_INIT_STATUS 2 +#define TRLLD_STS_RING_STATUS 3 +#define TRLLD_STS_ADAPTER_CHECK 4 +#define TRLLD_STS_PROMISCUOUS_STOPPED 5 +#define TRLLD_STS_LLD_ERROR 6 +#define TRLLD_STS_ADAPTER_TIMEOUT 7 + +/* values of TRlldStatus.Closed */ + +#define TRLLD_STS_STATUS_OK 0 +#define TRLLD_STS_STATUS_CLOSED 1 + +/* values of TRlldStatus.AccessProtocol */ + +#define TRLLD_ACCESS_UNKNOWN 0 +#define TRLLD_ACCESS_TKP 1 +#define TRLLD_ACCESS_TXI 2 + +/* values of TRlldStatus.SelftestStatus */ + +#define TRLLD_ST_OK 0 +#define TRLLD_ST_ERROR 0x0100 /* actual errors are 010x, where x is */ + /* 0: Initial Test Error */ + /* 1: Adapter Software Checksum Error */ + /* 2: Adapter RAM Error */ + /* 4: Instruction Test Error */ + /* 5: Protocol Handler/RI Hw Error */ + /* 6: System Interface Register Error */ + +#define TRLLD_ST_TIMEOUT 0x0200 /* The adapter did not complete */ + /* selftest after download */ + +/* values of TRlldStatus.Specification.InitStatus */ + +/* the most likely cause of an init error (whatever the code) is a wrong */ +/* physical or virtual address of the adapter block in TRlldAdapterInit */ + +#define TRLLD_INIT_ERROR 0x100 /* actual errors are 010x, where x is */ + /* 1: Invalid init block (LLD error) */ + /* 2: Invalid options (LLD error) */ + /* 3: Invalid rcv burst (LLD error) */ + /* 4: Invalid xmt burst (LLD error) */ + /* 5: Invalid DMA threshold (LLDerror)*/ + /* 6: Invalid scb addr */ + /* 7: Invalid ssb addr */ + /* 8: DIO parity error (HW error) */ + /* 9: DMA timeout (May be interrupt + failing if PIO mode or PCI2) */ + /* A: DMA parity error (HW error) */ + /* B: DMA bus error (HW error) */ + /* C: DMA data error */ + /* D: Adapter check */ + +#define TRLLD_INIT_TIMEOUT 0x200 /* adapter init did not complete */ +#define TRLLD_INIT_DMA_ERROR 0x300 /* adapter cannot access sys memory */ +#define TRLLD_INIT_INTR_ERROR 0x400 /* adapter cannot interrupt */ +#define TRLLD_OPEN_TIMEOUT 0x500 /* adapter open did not complete */ + /* within 30 seconds */ + +#define TRLLD_OPEN_ERROR 0x600 /* actual errors are 06xx, where the */ + /* bits in x mean: */ + /* 01: Invalid open options (LLDerror)*/ + /* 04: TxBuffer count error (LLDerror)*/ + /* 10: Buffer size error (LLD error) */ + /* 20: List size error (LLD error) */ + /* 40: Node address error */ + +#define TRLLD_OPEN_REPEAT 0x700 /* actual errors are 07xy, where */ + /* x is the open phase: */ + /* 1: Lobe media test */ + /* 2: Physical Insertion */ + /* 3: Address verification */ + /* 4: Participation in ring poll */ + /* 5: Request Initialization */ + /* 9: Request registration (TXI) */ + /* A: Lobe Media Test (TXI) */ + /* B: Address verification (TXI) */ + /* y is the type of error: */ + /* 1: Function failure (No Cable ?) */ + /* 2: Signal loss */ + /* 5: Timeout */ + /* 6: Ring failure (TKP) */ + /* 6: Protocol error (TXI) */ + /* 7: Ring beaconing */ + /* 8: Duplicate Node Address (TKP) */ + /* 8: Insert Denied (TXI) */ + /* 9: Request Initialization (TKP) */ + /* 9: Heart beat failure (TXI) */ + /* A: Remove received */ + /* B: C-port address changed (TXI) */ + /* C: Wire Fault (TKP) */ + /* D: Auto Speed, 1. on ring (TKP) */ + /* E: Speed sense failed */ + +/* When opening with FORCE_TXI and only classic token ring attachment is */ +/* possible, the error is Request Registration/Timeout or 0x795 */ + +#define TRLLD_OPEN_1ST_ON_RING 0x800 /* Speed sense is active, but no other*/ + /* station is present to set the speed*/ + + +/* values of TRlldStatus.Specification.RingStatus */ + +#define TRLLD_RS_SIGNAL_LOSS 0x8000 +#define TRLLD_RS_HARD_ERROR 0x4000 +#define TRLLD_RS_SOFT_ERROR 0x2000 +#define TRLLD_RS_TRANSMIT_BEACON 0x1000 +#define TRLLD_RS_LOBE_WIRE_FAULT 0x0800 +#define TRLLD_RS_AUTO_REMOVAL_ERROR 0x0400 +#define TRLLD_RS_REMOVE_RECEIVED 0x0100 +#define TRLLD_RS_COUNTER_OVERFLOW 0x0080 +#define TRLLD_RS_SINGLE_STATION 0x0040 +#define TRLLD_RS_RING_RECOVERY 0x0020 + +/* values of TRlldStatus.Specification.AdapterCheck */ +/* MISSING */ + +/* values of TRlldStatus.Specification.PromRemovedCause */ + +#define TRLLD_PROM_REMOVE_RECEIVED 1 +#define TRLLD_PROM_POLL_FAILURE 2 +#define TRLLD_PROM_BUFFER_SIZE 3 + +/* values of TRlldStatus.Specification.InternalError */ + +#define TRLLD_INTERNAL_PIO 1 /* A PIO transfer to or from adapter */ + /* did not complete */ +#define TRLLD_INTERNAL_TX 2 /* Trouble with clean up of tx frames */ +#define TRLLD_INTERNAL_RX 3 /* Trouble with clean up of receive */ + /* fragments */ +#define TRLLD_INTERNAL_CMD 4 /* error response from adapter */ +#define TRLLD_INTERNAL_STATE 5 /* event happened in unexpected state */ + +/* values of TRlldStatus.Specification.AdapterTimeout */ + +#define TRLLD_COMMAND_TIMEOUT 1 +#define TRLLD_TRANSMIT_TIMEOUT 2 +#define TRLLD_INTERRUPT_TIMEOUT 3 + + +/*****************************************************************************/ +/* */ +/* TRlldStatistics contains the adapter statistics returned to Driver */ +/* in TRlldStatistics calls and DriverStatistics call-backs */ +/* */ +/*****************************************************************************/ + +typedef struct TRlldStatistics { + unsigned long LineErrors; + unsigned long InternalErrors; /* Not maintained by TMS based boards */ + unsigned long BurstErrors; + unsigned long ARIFCIErrors; + unsigned long AbortDelimiters; /* Not maintained by TMS based boards */ + unsigned long LostFrames; + unsigned long CongestionErrors; + unsigned long FrameCopiedErrors; + unsigned long FrequencyErrors; /* Not maintained by TMS based boards */ + unsigned long TokenErrors; + unsigned long DMABusErrors; /* Not maintained by 3139 */ + unsigned long DMAParityErrors; /* Not maintained by 3139 */ + unsigned long ReceiveLongFrame; /* Not maintained by TMS based boards */ + unsigned long ReceiveCRCErrors; /* Not maintained by TMS based boards */ + unsigned long ReceiveOverflow; /* Not maintained by TMS based boards */ + unsigned long TransmitUnderrun; /* Not maintained by TMS based boards */ + unsigned long UnderrunLock; /* Not maintained by TMS based boards */ + unsigned long OverflowReset; + unsigned char UpstreamNeighbour[6]; + unsigned short RingNumber; + unsigned char BeaconingUpstreamNeighbour[6]; + unsigned short padding; +} TRlldStatistics_t; + + +/*****************************************************************************/ +/* */ +/* TRlldDriver contains the Driver call-backs */ +/* */ +/*****************************************************************************/ + +typedef struct TRlldDriver { + unsigned long TRlldVersion; +#ifndef TRlldInlineIO + void (CDECL * DriverOutByte)(unsigned short IOAddress, + unsigned char Value); + void (CDECL * DriverOutWord)(unsigned short IOAddress, + unsigned short Value); + void (CDECL * DriverOutDWord)(unsigned short IOAddress, + unsigned long Value); + void (CDECL * DriverRepOutByte)(unsigned short IOAddress, + TRlldDataPtr_t DataPointer, + int ByteCount); + void (CDECL * DriverRepOutWord)(unsigned short IOAddress, + TRlldWordDataPtr_t DataPointer, + int WordCount); + void (CDECL * DriverRepOutDWord)(unsigned short IOAddress, + TRlldDWordDataPtr_t DataPointer, + int DWordCount); + unsigned char (CDECL * DriverInByte)(unsigned short IOAddress); + unsigned short (CDECL * DriverInWord)(unsigned short IOAddress); + unsigned long (CDECL * DriverInDWord)(unsigned short IOAddress); + void (CDECL * DriverRepInByte)(unsigned short IOAddress, + TRlldDataPtr_t DataPointer, + int ByteCount); + void (CDECL * DriverRepInWord)(unsigned short IOAddress, + TRlldWordDataPtr_t DataPointer, + int WordCount); + void (CDECL * DriverRepInDWord)(unsigned short IOAddress, + TRlldDWordDataPtr_t DataPointer, + int DWordCount); +#endif + void (CDECL * DriverSuspend)(unsigned short MicroSeconds); + void (CDECL * DriverStatus)(void * DriverHandle, + TRlldStatus_t * Status); + void (CDECL * DriverCloseCmpltd)(void * DriverHandle); + void (CDECL * DriverStatistics)(void * DriverHandle, + TRlldStatistics_t * Statistics); + void (CDECL * DriverTxFrameCmpltd)(void * DriverHandle, + void * FrameHandle, + int TxStatus); + void (CDECL * DriverRcvFrameCmpltd)(void * DriverHandle, + int ByteCount, + int FragmentCount, + void * FragmentHandle, + int RcvStatus); +} TRlldDriver_t; + +/* Version and model control */ + +#define TRLLD_VERSION_INLINEIO 0x8000 +#define TRLLD_VERSION_SMALL 0x4000 +#ifdef TRlldInlineIO +#ifdef TRlldSmall +#define TRLLD_VERSION 0x4120 +#else +#define TRLLD_VERSION 0x0120 +#endif +#else +#ifdef TRlldSmall +#define TRLLD_VERSION 0xC120 +#else +#define TRLLD_VERSION 0x8120 +#endif +#endif + + +/*****************************************************************************/ +/* */ +/* TRlldAdapterConfig contains the properties found for an adapter */ +/* used when finding and defining adapters to use */ +/* */ +/*****************************************************************************/ + + +struct pnp_id { + unsigned short vendor; + unsigned short device; +}; + +struct pci_id { + unsigned short vendor; + unsigned short device; + unsigned char revision; + unsigned char reserved_byte; + unsigned short reserved_word; +}; + +struct pcmcia_id { + /* unknown as yet */ + unsigned char x; +}; + +struct pci_slot { + unsigned short bus_no; + unsigned short device_no; +}; + +struct pcmcia_socket { + /* unknown as yet */ + unsigned char x; +}; + +typedef struct TRlldAdapterConfig { + unsigned char type; + unsigned char bus; + unsigned short magic; + union { + struct pnp_id pnp; + unsigned long eisa; + unsigned short mca; + struct pci_id pci; + struct pcmcia_id pcmcia; + } id; + union { + unsigned short csn; + unsigned short eisa; + unsigned short mca; + struct pci_slot pci; + struct pcmcia_socket pcmcia; + } slot; + unsigned short iobase0; + unsigned short iolength0; + unsigned short iobase1; + unsigned short iolength1; + unsigned long memorybase; + unsigned short memorylength; + unsigned char mode; + unsigned char xmode; + unsigned char interruptlevel; + unsigned char dmalevel; + unsigned char macaddress[6]; + unsigned long prombase; + unsigned char speed; + unsigned char cachelinesize; + unsigned short pcicommand; + unsigned char mactype; + unsigned char reserved[3]; +} TRlldAdapterConfig_t; + +/* values of TRlldAdapterConfig.Type */ + +#define TRLLD_ADAPTER_XT 0 /* not supported */ +#define TRLLD_ADAPTER_ISA1 1 /* OC-3115 */ +#define TRLLD_ADAPTER_ISA2 2 /* OC-3117 */ +#define TRLLD_ADAPTER_ISA3 3 /* OC-3118 */ +#define TRLLD_ADAPTER_MCA1 4 /* OC-3129 id A84 */ +#define TRLLD_ADAPTER_MCA2 5 /* OC-3129 id A85 */ +#define TRLLD_ADAPTER_MCA3 6 /* OC-3129 id A86 */ +#define TRLLD_ADAPTER_EISA1 7 /* OC-3133 id 0109833D */ +#define TRLLD_ADAPTER_EISA2 8 /* OC-3133 id 0209833D */ +#define TRLLD_ADAPTER_EISA3 9 /* OC-3135 not supported */ +#define TRLLD_ADAPTER_PCI1 10 /* OC-3136 id 108d0001 rev 1 */ +#define TRLLD_ADAPTER_PCI2 11 /* OC-3136 id 108d0001 rev 2 */ +#define TRLLD_ADAPTER_PCI3 12 /* OC-3137 id 108d0001 rev 3 */ +#define TRLLD_ADAPTER_PCI4 13 /* OC-3139 id 108d0004 rev 2 */ +#define TRLLD_ADAPTER_PCI5 14 /* OC-3140 id 108d0004 rev 3 */ +#define TRLLD_ADAPTER_PCI6 15 /* OC-3141 id 108d0007 rev 1 */ +#define TRLLD_ADAPTER_PCI7 19 /* OC-3540 id 108d0008 rev 1 */ +#ifdef PCMCIA +#define TRLLD_ADAPTER_PCCARD1 16 /* OC-3220 */ +#define TRLLD_ADAPTER_PCCARD2 17 /* OC-3221,OC-3230,OC-3232 */ +#endif +#define TRLLD_ADAPTER_PCCARD3 18 /* OC-3250 id 108d0005 rev 1 */ + +/* values of TRlldAdapterConfig.Bus */ + +#define TRLLD_BUS_ISA 1 +#define TRLLD_BUS_EISA 2 +#define TRLLD_BUS_MCA 3 +#define TRLLD_BUS_PCI 4 +#define TRLLD_BUS_PCMCIA 5 + +/* values of TRlldAdapterConfig.mode */ + +#define TRLLD_MODE_16M 0x01 /* needs data buffers below 16 M */ +#define TRLLD_MODE_PHYSICAL 0x02 /* needs valid physical addresses */ +#define TRLLD_MODE_FIXED_CFG 0x04 /* cannot be reconfigured */ +#define TRLLD_MODE_SHORT_SLOT 0x08 /* in short ISA slot, cannot use DMA */ +#define TRLLD_MODE_CANNOT_DISABLE 0x10 /* can not disable interrupt */ +#define TRLLD_MODE_SHARE_INTERRUPT 0x20 /* may share interrupt */ +#define TRLLD_MODE_MEMORY 0x40 /* is configured with a memory window*/ + +/* values of TRlldAdapterConfig.dma */ + +#define TRLLD_DMA_PIO 4 /* other values signifies the DMA channel */ +#define TRLLD_DMA_MASTER 0xff /* to use */ + +/* values of TRlldAdapterConfig.mactype */ + + /* download with: */ +#define TRLLD_MAC_TMS 1 /* TRlldMACCode */ +#define TRLLD_MAC_HAWKEYE 2 /* TRlldHawkeyeMAC */ +#define TRLLD_MAC_BULLSEYE 3 /* TRlldBullseyeMAC */ + + +typedef void * TRlldAdapter_t; +typedef void * TRlldAdapterType_t; + +#ifndef MAX_FRAGMENTS +#define MAX_FRAGMENTS 32 +#endif + +typedef struct TRlldTransmit { + unsigned short FragmentCount; + unsigned short TRlldTransmitReserved; + struct TRlldTransmitFragment { + unsigned long PhysicalAddress; + TRlldDataPtr_t VirtualAddress; + unsigned short count; + unsigned short TRlldTransmitFragmentReserved; + } TransmitFragment[MAX_FRAGMENTS]; +} TRlldTransmit_t; + +int CDECL TRlldAdapterSize(void); + +int CDECL TRlldInit(int TypeCount, + TRlldAdapterType_t * AdapterTypeTable); + +extern TRlldAdapterType_t CDECL TRlld3115; /* ISA adapters */ +extern TRlldAdapterType_t CDECL TRlld3117; +extern TRlldAdapterType_t CDECL TRlld3118; +extern TRlldAdapterType_t CDECL TRlld3129; /* MCA adapters */ +extern TRlldAdapterType_t CDECL TRlld3133; /* EISA adapters */ +extern TRlldAdapterType_t CDECL TRlld3136; /* PCI adapters */ +extern TRlldAdapterType_t CDECL TRlld3137; +extern TRlldAdapterType_t CDECL TRlld3139; /* Hawkeye adapters */ +extern TRlldAdapterType_t CDECL TRlld3540; /* BUllseye adapter */ + +#define T3115 &TRlld3115 +#define T3117 &TRlld3117 +#define T3118 &TRlld3118 +#define T3129 &TRlld3129 +#define T3133 &TRlld3133 +#define T3136 &TRlld3136 +#define T3137 &TRlld3137 +#define T3139 &TRlld3139 +#define T3540 &TRlld3540 + +/* Only for Boot Prom Page Zero code */ + +extern TRlldAdapterType_t CDECL TRlld3115Boot; /* ISA adapters */ +extern TRlldAdapterType_t CDECL TRlld3117Boot; +extern TRlldAdapterType_t CDECL TRlld3118Boot; +extern TRlldAdapterType_t CDECL TRlld3129Boot; /* MCA adapters */ +extern TRlldAdapterType_t CDECL TRlld3133Boot; /* EISA adapters */ +extern TRlldAdapterType_t CDECL TRlld3136Boot; /* PCI adapters */ +extern TRlldAdapterType_t CDECL TRlld3137Boot; +extern TRlldAdapterType_t CDECL TRlld3139Boot; /* Hawkeye adapters */ +extern TRlldAdapterType_t CDECL TRlld3540Boot; /* Bullseye adapters */ + +#define B3115 &TRlld3115Boot +#define B3117 &TRlld3117Boot +#define B3118 &TRlld3118Boot +#define B3129 &TRlld3129Boot +#define B3133 &TRlld3133Boot +#define B3136 &TRlld3136Boot +#define B3137 &TRlld3137Boot +#define B3139 &TRlld3139Boot +#define B3540 &TRlld3540Boot + +#define TRLLD_INIT_OK 0 +#define TRLLD_INIT_UNKNOWN 5 + +int CDECL TRlldAdapterInit(TRlldDriver_t * DriverDefinition, + TRlldAdapter_t * TRlldAdapter, + unsigned long TRlldAdapterPhysical, + void * DriverHandle, + TRlldAdapterConfig_t * config); + +#define TRLLD_INIT_OK 0 +#define TRLLD_INIT_NOT_FOUND 1 +#define TRLLD_INIT_UNSUPPORTED 2 +#define TRLLD_INIT_PHYS16 3 +#define TRLLD_INIT_VERSION 4 + +int CDECL TRlldSetSpeed(TRlldAdapter_t * adapter, + unsigned char speed); + +#define TRLLD_SPEED_4MBPS 4 +#define TRLLD_SPEED_16MBPS 16 +#define TRLLD_SPEED_100MBPS 100 + +int CDECL TRlldSetInterrupt(TRlldAdapter_t * adapter, + unsigned char interruptlevel); + +int CDECL TRlldSetDMA(TRlldAdapter_t * adapter, + unsigned char dma, unsigned char * mode); + +#define TRLLD_CONFIG_OK 0 +#define TRLLD_CONFIG_STATE 1 +#define TRLLD_CONFIG_ILLEGAL 2 +#define TRLLD_CONFIG_FAILED 3 + +int CDECL TRlldSetSpecial(TRlldAdapter_t * adapter, + unsigned short param1, unsigned short param2, + unsigned short param3, unsigned short param4); + +int CDECL TRlldAddMemory(TRlldAdapter_t * adapter, + TRlldDataPtr_t virtual, + unsigned long physical, + long size); + +int CDECL TRlldDisable(TRlldAdapter_t * adapter); + +#define TRLLD_OK 0 +#define TRLLD_NOT_SUPPORTED 1 + +void CDECL TRlldEnable(TRlldAdapter_t * adapter); + +int CDECL TRlldInterruptPresent(TRlldAdapter_t * adapter); + +#define TRLLD_NO_INTERRUPT 0 +#define TRLLD_INTERRUPT 1 + +int CDECL TRlldInterruptService(TRlldAdapter_t * adapter); + +int CDECL TRlldInterruptPreService(TRlldAdapter_t * adapter); + +void CDECL TRlldInterruptPostService(TRlldAdapter_t * adapter); + + +int CDECL TRlldPoll(TRlldAdapter_t * adapter); + +int CDECL TRlldDownload(TRlldAdapter_t * adapter, + char * DownLoadCode); + +#define TRLLD_DOWNLOAD_OK 0 +#define TRLLD_DOWNLOAD_ERROR 1 +#define TRLLD_STATE 2 + +typedef int (CDECL * GetCode_t)(void * handle, unsigned char * maccodebyte); + +int CDECL TRlldStreamDownload(TRlldAdapter_t * adapter, + GetCode_t procedure, void * handle); + +int CDECL TRlldOpen(TRlldAdapter_t * adapter, + unsigned char * MACAddress, + unsigned long GroupAddress, + unsigned long FunctionalAddress, + unsigned short MaxFrameSize, + unsigned short OpenModes); + +#define TRLLD_OPEN_OK 0 +#define TRLLD_OPEN_STATE 1 +#define TRLLD_OPEN_ADDRESS_ERROR 2 +#define TRLLD_OPEN_MODE_ERROR 3 +#define TRLLD_OPEN_MEMORY 4 + +#define TRLLD_MODE_TX_STATUS 0x01 +#define TRLLD_MODE_RX_SINGLE 0x02 +#define TRLLD_MODE_FORCE_TKP 0x04 +#define TRLLD_MODE_FORCE_TXI 0x08 +#define TRLLD_MODE_TX_CRC 0x10 + +void CDECL TRlldClose(TRlldAdapter_t * adapter, int immediate); + +void CDECL TRlldSetGroupAddress(TRlldAdapter_t * adapter, + unsigned long GroupAddress); + +void CDECL TRlldSetFunctionalAddress(TRlldAdapter_t * adapter, + unsigned long FunctionalAddress); + +void CDECL TRlldSetPromiscuousMode(TRlldAdapter_t * adapter, + unsigned char mode); + +/* mode bits */ + +#define TRLLD_PROM_LLC 1 +#define TRLLD_PROM_MAC 2 +#define TRLLD_PROM_ERRORFRAMES 4 + +int CDECL TRlldGetStatistics(TRlldAdapter_t * adapter, + TRlldStatistics_t * statistics, + int immediate); + +#define TRLLD_IMMEDIATE_STATISTICS 1 + +#define TRLLD_STATISTICS_RETRIEVED 0 +#define TRLLD_STATISTICS_PENDING 1 + +int CDECL TRlldTransmitFrame(TRlldAdapter_t * adapter, + TRlldTransmit_t * TransmitFrame, + void * FrameHandle); + +#define TRLLD_TRANSMIT_OK 0 +#define TRLLD_TRANSMIT_NOT_OPEN 1 +#define TRLLD_TRANSMIT_TOO_MANY 2 +#define TRLLD_TRANSMIT_MAX16 3 +#define TRLLD_TRANSMIT_SIZE 4 +#define TRLLD_TRANSMIT_EMPTY 5 + +/* completion flags */ + +#define TRLLD_TX_OK 0 +#define TRLLD_TX_NOT_PROCESSED 1 +#define TRLLD_TX_NOT_RECOGNIZED 2 +#define TRLLD_TX_NOT_COPIED 3 + +/* number of free transmit fragments */ + +int CDECL TRlldTransmitFree(TRlldAdapter_t * adapter); + +int CDECL TRlldReceiveFragment(TRlldAdapter_t * adapter, + TRlldDataPtr_t FragmentStart, + unsigned long FragmentPhysical, + int count, + void * FragmentHandle); + +#define TRLLD_RECEIVE_OK 0 +#define TRLLD_RECEIVE_NOT_OPEN 1 +#define TRLLD_RECEIVE_TOO_MANY 2 +#define TRLLD_RECEIVE_SIZE 3 +#define TRLLD_RECEIVE_MAX16 4 + +/* completion flags */ + +#define TRLLD_RCV_OK 0 +#define TRLLD_RCV_NO_DATA 1 +#define TRLLD_RCV_ERROR 2 /* Only when TRLLD_PROM_ERRORFRAMES */ +#define TRLLD_RCV_LONG 3 + +/* number of free receive fragments */ + +int CDECL TRlldReceiveFree(TRlldAdapter_t * adapter); + +int CDECL TRlldFind(TRlldDriver_t * driver, + TRlldAdapterConfig_t * config_table, + unsigned long type_mask, + int max); + +/* type mask bits */ + +#define OC_3115 0x0001 +#define OC_3117 0x0002 +#define OC_3118 0x0004 +#define OC_3129 0x0008 +#define OC_3133 0x0010 +#define OC_3136 0x0040 +#define OC_3137 0x0080 +#define OC_3139 0x0100 +#define OC_3140 0x0200 +#define OC_3141 0x0400 +#define OC_3540 0x0800 + +#ifdef PCMCIA +#define OC_3220 0x0800 +#define OC_3221 0x1000 +#define OC_3230 0x2000 +#define OC_3232 0x4000 +#endif + +#define OC_3250 0x8000 + +int CDECL TRlldIOAddressConfig(TRlldDriver_t * driver, + TRlldAdapterConfig_t * config, + unsigned short address); + + +#define TRLLD_FIND_OK 1 +#define TRLLD_FIND_ERROR 0 +#define TRLLD_FIND_VERSION -1 + +int CDECL TRlldEISASlotConfig(TRlldDriver_t * driver, + TRlldAdapterConfig_t * config, + int slot); + +int CDECL TRlldMCASlotConfig(TRlldDriver_t * driver, + TRlldAdapterConfig_t * config, + int slot); + +int CDECL TRlldPCIConfig(TRlldDriver_t * driver, + TRlldAdapterConfig_t * config, + char * PCIConfigurationSpace); + +#define TRLLD_PCICONFIG_OK 0 +#define TRLLD_PCICONFIG_FAIL 1 +#define TRLLD_PCICONFIG_SET_COMMAND 2 +#define TRLLD_PCICONFIG_VERSION 3 + + +int CDECL TRlldFindPCI(TRlldDriver_t * driver, + TRlldAdapterConfig_t * config_table, + unsigned long type_mask, + int max); + +#ifdef PCMCIA +typedef void * PCCardHandle_t; + +typedef int (CDECL * GetTupleData_t)(PCCardHandle_t handle, + unsigned short TupleIdent, + char * TupleData, + int length); + +int CDECL TRlldPCCardConfig(TRlldDriver_t * driver, + TRlldAdapterConfig_t * config, + unsigned short address, + int irq, + GetTupleData_t GetTuple, + PCCardHandle_t handle); + +#define TRLLD_PCCARD_CONFIG_OK 0 +#define TRLLD_PCCARD_CONFIG_FAIL 1 +#endif + +/* Boot Prom Support */ + +typedef struct TRlldPromInfo { + unsigned short PromIdent; + short PromPages; + short PromPageSize; +} TRlldPromInfo_t; + +int CDECL TRlldMapBootProm(TRlldAdapter_t * adapter, + TRlldDataPtr_t prompointer); + +#define TRLLD_PROM_OK 0 +#define TRLLD_PROM_FAILED 3 + +int CDECL TRlldGetPromInfo(TRlldAdapter_t * adapter, TRlldPromInfo_t * info); + +#define TRLLD_PROM_OK 0 +#define TRLLD_PROM_NOT_MOUNTED 1 +#define TRLLD_PROM_NOT_MAPPED 2 + +void CDECL TRlldSetPromPage(TRlldAdapter_t * adapter, int page); + +int CDECL TRlldSetMemoryUse(TRlldAdapter_t * adapter, int use); + +#define TRLLD_PROM_TO_MEMORY 0 +#define TRLLD_REGISTERS_TO_MEMORY 1 + +#define TRLLD_MEMORY_USE_OK 0 +#define TRLLD_MEMORY_USE_NO_MEMORY 1 +#define TRLLD_MEMORY_USE_STATE 2 +#define TRLLD_MEMORY_USE_ILLEGAL 3 + +int CDECL TRlldPromErase(TRlldAdapter_t * adapter, + void (CDECL * delay)(int milliseconds)); + +#define TRLLD_PROM_OK 0 +#define TRLLD_PROM_NOT_MOUNTED 1 +#define TRLLD_PROM_NOT_MAPPED 2 +#define TRLLD_PROM_FAILED 3 + +int CDECL TRlldPromWrite(TRlldAdapter_t * adapter, char * data, + int offset, int count); + +#define TRLLD_PROM_OK 0 +#define TRLLD_PROM_NOT_MOUNTED 1 +#define TRLLD_PROM_NOT_MAPPED 2 +#define TRLLD_PROM_FAILED 3 +#define TRLLD_PROM_ILLEGAL 4 + +void CDECL TRlldEmergency(TRlldAdapter_t * adapter); + +/* Convert from TRlldAdapterConfig.type to name string */ +char * CDECL TRlldAdapterName(int type); +#endif Property changes on: stable/3/sys/contrib/dev/oltr/trlld.h ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: stable/3/sys/contrib/dev/oltr/trlldbm.c =================================================================== --- stable/3/sys/contrib/dev/oltr/trlldbm.c (nonexistent) +++ stable/3/sys/contrib/dev/oltr/trlldbm.c (revision 44655) @@ -0,0 +1,2011 @@ +/* + ****************************** trlld.h *********************************** + * + * Copyright (c) 1997 + * OLICOM A/S + * Denmark + * + * All Rights Reserved + * + * This source file is subject to the terms and conditions of the + * OLICOM Software License Agreement which restricts the manner + * in which it may be used. + * + *--------------------------------------------------------------------------- + * + * Description: Olicom Bullseye adapter micro-code + * + *--------------------------------------------------------------------------- + */ + +#include "opt_oltr.h" + +#ifndef OLTR_NO_BULLSEYE_MAC + +unsigned char TRlldBullseyeMac[] = { 0x52, 0x94, 0x03, 0x00, 0x02, 0x7c, 0x7d, 0xb7, 0x4f, 0x43, 0x53, 0x4d, 0x41, 0x43, 0x2e, 0x42, + 0x55, 0x4c, 0x4c, 0x53, 0x45, 0x59, 0x45, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xea, 0x55, 0x00, 0x00, 0x00, 0xfc, 0xfa, 0xb8, 0x00, 0x00, 0xbb, 0x00, + 0x00, 0xb9, 0x00, 0x00, 0xba, 0x00, 0x00, 0xbe, 0x00, 0x00, 0xbf, 0x00, 0x00, 0xbd, 0x00, 0x00, + 0x8c, 0xc8, 0x8e, 0xd8, 0x8e, 0xc0, 0x8e, 0xd0, 0xb8, 0x7e, 0x5e, 0x8b, 0xe0, 0x83, 0x3e, 0x4e, + 0x00, 0x00, 0x75, 0x1c, 0x2b, 0xdb, 0x8b, 0xf3, 0xad, 0x8b, 0xd8, 0x8b, 0xc8, 0xd1, 0xe9, 0x49, + 0x49, 0xad, 0x03, 0xd8, 0xe2, 0xfb, 0x0b, 0xdb, 0x74, 0x06, 0xc7, 0x06, 0x50, 0x5d, 0x01, 0x00, + 0xb8, 0x00, 0x00, 0x8e, 0xd8, 0xc7, 0x06, 0x0c, 0x00, 0x9a, 0x01, 0x8c, 0x0e, 0x0e, 0x00, 0xc7, + 0x06, 0x04, 0x00, 0x9a, 0x01, 0x8c, 0x0e, 0x06, 0x00, 0xc7, 0x06, 0x14, 0x00, 0x9a, 0x01, 0x8c, + 0x0e, 0x14, 0x00, 0xc7, 0x06, 0x08, 0x00, 0x9a, 0x01, 0x8c, 0x0e, 0x08, 0x00, 0x90, 0x90, 0x90, + 0xc7, 0x06, 0x20, 0x00, 0xf2, 0x23, 0x8c, 0x0e, 0x22, 0x00, 0x2b, 0xc0, 0xe7, 0x06, 0xc7, 0x06, + 0x30, 0x00, 0xe4, 0x0d, 0x8c, 0x0e, 0x32, 0x00, 0xc7, 0x06, 0x34, 0x00, 0xde, 0x0e, 0x8c, 0x0e, + 0x36, 0x00, 0xc7, 0x06, 0x38, 0x00, 0x10, 0x0f, 0x8c, 0x0e, 0x3a, 0x00, 0xc7, 0x06, 0x3c, 0x00, + 0x9a, 0x01, 0x8c, 0x0e, 0x3e, 0x00, 0xc7, 0x06, 0x08, 0x00, 0x9a, 0x01, 0x8c, 0x0e, 0x0a, 0x00, + 0xc7, 0x06, 0x14, 0x00, 0x9a, 0x01, 0x8c, 0x0e, 0x16, 0x00, 0xbb, 0x40, 0x60, 0x8e, 0xc3, 0x26, + 0x83, 0x0e, 0x32, 0x00, 0x08, 0x2b, 0xc0, 0x2b, 0xc0, 0x2b, 0xc0, 0x2b, 0xc0, 0x26, 0x83, 0x26, + 0x32, 0x00, 0xf7, 0x2b, 0xc0, 0x2b, 0xc0, 0x2b, 0xc0, 0x2b, 0xc0, 0x26, 0x83, 0x0e, 0x32, 0x00, + 0x08, 0x2a, 0xe4, 0xb0, 0x13, 0xe6, 0x10, 0x90, 0x90, 0x90, 0xb0, 0x08, 0xe6, 0x12, 0x90, 0x90, + 0x90, 0xb0, 0x09, 0xe6, 0x12, 0x90, 0x90, 0x90, 0xb0, 0xff, 0xe6, 0x12, 0x90, 0x90, 0x90, 0x26, + 0x83, 0x26, 0x32, 0x00, 0xf7, 0x90, 0x90, 0x90, 0x33, 0xc0, 0x26, 0xc7, 0x06, 0x44, 0x00, 0xff, + 0xff, 0x26, 0xc7, 0x06, 0x46, 0x00, 0xff, 0xff, 0x26, 0x09, 0x06, 0x48, 0x00, 0x26, 0x09, 0x06, + 0x4a, 0x00, 0xb8, 0x00, 0x00, 0xe7, 0x06, 0xb8, 0x0f, 0x27, 0xe7, 0x00, 0xb8, 0x09, 0x00, 0xe7, + 0x06, 0xb0, 0x11, 0xe8, 0x7f, 0x0a, 0xe8, 0xbd, 0x0a, 0xfb, 0xe9, 0x67, 0x0b, 0x90, 0x50, 0xb0, + 0xa0, 0xe6, 0x10, 0x58, 0xcf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0xf0, 0xf0, 0xf0, 0xf0, 0xe7, 0xe7, 0xe7, 0x31, 0x36, + 0x31, 0x32, 0x39, 0x38, 0x20, 0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x28, + 0x63, 0x29, 0x20, 0x31, 0x39, 0x39, 0x38, 0x20, 0x4f, 0x6c, 0x69, 0x63, 0x6f, 0x6d, 0x2e, 0x20, + 0x41, 0x6c, 0x6c, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x73, 0x20, 0x72, 0x65, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x64, 0x20, 0x2c, 0x21, 0x2c, 0x21, 0x6e, 0x37, 0x1f, 0x3b, 0x1b, 0x3d, 0x61, 0x3e, + 0xa3, 0x3f, 0xeb, 0x42, 0x2c, 0x21, 0x2c, 0x21, 0x2c, 0x21, 0x54, 0x41, 0xaa, 0x41, 0x3b, 0x42, + 0xb8, 0x42, 0xbd, 0x42, 0xc2, 0x42, 0x2c, 0x21, 0x2c, 0x21, 0x2c, 0x21, 0x2c, 0x21, 0x83, 0x3a, + 0x2c, 0x21, 0x2c, 0x21, 0x03, 0x39, 0x63, 0x39, 0x63, 0x39, 0x40, 0x3a, 0x63, 0x39, 0x68, 0x3a, + 0xa4, 0x3a, 0x2c, 0x21, 0x2c, 0x21, 0x54, 0x41, 0xaa, 0x41, 0x3b, 0x42, 0xb8, 0x42, 0xbd, 0x42, + 0xc2, 0x42, 0x2c, 0x21, 0x7d, 0x39, 0x2c, 0x21, 0x08, 0x3a, 0x2c, 0x21, 0xd9, 0x3a, 0xff, 0x3a, + 0xaa, 0x34, 0xaa, 0x34, 0xaa, 0x34, 0xaa, 0x34, 0x74, 0x35, 0x9f, 0x36, 0xaa, 0x34, 0x86, 0x35, + 0x32, 0x36, 0xf1, 0x36, 0xf1, 0x36, 0xf1, 0x36, 0xf1, 0x36, 0xf1, 0x36, 0xf1, 0x36, 0xf1, 0x36, + 0xf1, 0x36, 0xf1, 0x36, 0xf1, 0x36, 0xf1, 0x36, 0xf1, 0x36, 0xf1, 0x36, 0xf1, 0x36, 0xf1, 0x36, + 0xf1, 0x36, 0xf1, 0x36, 0xf1, 0x36, 0xf1, 0x36, 0xf1, 0x36, 0xf1, 0x36, 0xf1, 0x36, 0xf1, 0x36, + 0xde, 0x35, 0xaa, 0x34, 0xaa, 0x34, 0xaa, 0x34, 0xaa, 0x34, 0xaa, 0x34, 0x11, 0x36, 0xaa, 0x34, + 0xaa, 0x34, 0x23, 0x36, 0xaa, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, + 0xff, 0x04, 0x04, 0x05, 0xff, 0xff, 0xff, 0x00, 0x03, 0x00, 0x03, 0x03, 0x00, 0x03, 0x0d, 0x06, + 0xff, 0xff, 0x18, 0x06, 0x28, 0x06, 0x28, 0x06, 0x28, 0x06, 0x28, 0x06, 0x00, 0x00, 0x33, 0x06, + 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x39, 0x06, 0x58, 0x06, 0x9e, 0x06, 0x9e, 0x06, 0x9e, 0x06, + 0x6d, 0x06, 0x7d, 0x06, 0x00, 0x00, 0x83, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x2c, 0x21, 0x73, 0x43, 0x3e, 0x17, 0x5f, 0x34, 0xd5, 0x27, 0x0d, 0x4a, 0x2c, 0x21, 0xad, 0x43, + 0x86, 0x47, 0xcf, 0x45, 0xcf, 0x43, 0x42, 0x45, 0x47, 0x47, 0x0b, 0x45, 0xff, 0x46, 0x0d, 0x48, + 0x57, 0x48, 0x44, 0x48, 0x26, 0x47, 0x64, 0x48, 0x89, 0x48, 0xb4, 0x48, 0x47, 0x48, 0xd2, 0x48, + 0x16, 0x03, 0x3c, 0x03, 0x5c, 0x03, 0x88, 0x03, 0xae, 0x03, 0x26, 0x04, 0x8c, 0x04, 0xc6, 0x04, + 0x10, 0x05, 0x02, 0x06, 0xe8, 0x01, 0x10, 0x03, 0x36, 0x03, 0x64, 0x03, 0x82, 0x03, 0xa8, 0x03, + 0x86, 0x04, 0xc0, 0x04, 0x0a, 0x05, 0xfc, 0x05, 0xe4, 0x01, 0x2e, 0x04, 0x94, 0x04, 0x00, 0x03, + 0x2a, 0x03, 0x50, 0x03, 0x76, 0x03, 0x9c, 0x03, 0xc2, 0x03, 0xbc, 0x03, 0xda, 0x03, 0x98, 0x05, + 0x0e, 0x04, 0x7a, 0x04, 0xb4, 0x04, 0xda, 0x04, 0xfa, 0x04, 0xe0, 0x05, 0x24, 0x05, 0x48, 0x05, + 0x64, 0x05, 0x7c, 0x05, 0xf4, 0x03, 0xb0, 0x05, 0xc8, 0x05, 0x20, 0x5c, 0x28, 0x5c, 0x34, 0x5c, + 0x3c, 0x5c, 0x44, 0x5c, 0x6a, 0x5c, 0x7e, 0x5c, 0x86, 0x5c, 0x92, 0x5c, 0xb8, 0x5c, 0xcc, 0x5c, + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, + 0xe6, 0x1d, 0x50, 0x1e, 0x7c, 0x1e, 0xf2, 0x1e, 0x14, 0x1f, 0xa6, 0x1f, 0x04, 0x20, 0x2c, 0x21, + 0x2c, 0x21, 0x2c, 0x21, 0x2c, 0x21, 0x30, 0x20, 0x58, 0x20, 0xc4, 0x20, 0xe8, 0x20, 0x24, 0x21, + 0x2c, 0x21, 0x2c, 0x21, 0xde, 0x16, 0x0e, 0x18, 0x92, 0x18, 0x94, 0x18, 0xb0, 0x18, 0xd6, 0x18, + 0xf2, 0x18, 0x80, 0x19, 0xf8, 0x19, 0x48, 0x1b, 0x2c, 0x21, 0x2c, 0x21, 0x2c, 0x21, 0x2c, 0x21, + 0x58, 0x22, 0x2c, 0x21, 0x2c, 0x21, 0x2c, 0x21, 0x2c, 0x21, 0x2c, 0x21, 0x2c, 0x21, 0x2c, 0x21, + 0x2c, 0x21, 0x2c, 0x21, 0x2c, 0x21, 0x2c, 0x21, 0x2c, 0x21, 0x2c, 0x21, 0x2c, 0x21, 0x2c, 0x21, + 0x2c, 0x21, 0x2c, 0x21, 0x84, 0x1b, 0xf4, 0x1b, 0x9e, 0x1c, 0xea, 0x1c, 0x6c, 0x1d, 0x8c, 0x1d, + 0xba, 0x1d, 0x2c, 0x21, 0x2c, 0x21, 0x2c, 0x21, 0x2c, 0x21, 0x2c, 0x21, 0x2c, 0x21, 0x2c, 0x21, + 0xaa, 0x55, 0x00, 0xff, 0xf6, 0x46, 0x01, 0x01, 0x75, 0x48, 0xc6, 0x86, 0x0e, 0x01, 0x05, 0xe8, + 0x73, 0x01, 0xe8, 0x0d, 0x06, 0xe8, 0x02, 0x03, 0xe8, 0x5c, 0x03, 0x73, 0x19, 0xfe, 0x8e, 0x0e, + 0x01, 0x74, 0x0d, 0xe8, 0xaa, 0x03, 0x8b, 0x86, 0x0f, 0x01, 0x26, 0xa3, 0x42, 0x00, 0xeb, 0xdf, + 0xc7, 0x06, 0x50, 0x5d, 0x02, 0x00, 0x32, 0xe4, 0x8a, 0x46, 0x00, 0xe8, 0x48, 0x04, 0x83, 0x3e, + 0x4e, 0x00, 0x02, 0x72, 0x03, 0xe8, 0x61, 0x03, 0xa1, 0x50, 0x5d, 0xe8, 0xb3, 0x42, 0xc6, 0x46, + 0x01, 0x01, 0xf6, 0x06, 0x81, 0x5e, 0x01, 0x74, 0x27, 0xf6, 0x86, 0x6c, 0x01, 0x01, 0x74, 0x03, + 0xe8, 0x16, 0x55, 0xf6, 0x86, 0x6d, 0x01, 0x01, 0x74, 0x03, 0xe8, 0x64, 0x55, 0xf7, 0x86, 0x82, + 0x01, 0x01, 0x00, 0x75, 0x08, 0xf7, 0x86, 0x8a, 0x01, 0x01, 0x00, 0x74, 0x03, 0xe8, 0x40, 0x52, + 0xe8, 0x5a, 0x05, 0xe8, 0x26, 0x05, 0xe8, 0x9e, 0x04, 0xe8, 0x43, 0x04, 0xf6, 0x86, 0x95, 0x02, + 0x01, 0x74, 0x03, 0xe8, 0x78, 0x1c, 0x33, 0xdb, 0xf6, 0x86, 0xae, 0x02, 0x01, 0x74, 0x16, 0x8a, + 0x5e, 0x09, 0x8a, 0x7e, 0x08, 0x38, 0xfb, 0x75, 0x30, 0x80, 0xfb, 0x00, 0x74, 0x07, 0x80, 0xfb, + 0x1e, 0x74, 0x02, 0xeb, 0x22, 0x80, 0x7e, 0x06, 0x1e, 0x74, 0x1e, 0x33, 0xdb, 0x8a, 0x5e, 0x07, + 0x3a, 0x5e, 0x06, 0x74, 0x14, 0xfa, 0x50, 0x8b, 0x46, 0x06, 0x89, 0x46, 0x0c, 0x58, 0x88, 0x5e, + 0x06, 0x32, 0xff, 0xff, 0x97, 0x9e, 0x05, 0xeb, 0x32, 0x8a, 0x5e, 0x09, 0x3a, 0x5e, 0x08, 0x74, + 0x2a, 0x50, 0x8b, 0x46, 0x08, 0x89, 0x46, 0x0e, 0x58, 0x80, 0xfb, 0x1e, 0x74, 0x12, 0x80, 0xfb, + 0x00, 0x74, 0x0d, 0x80, 0xfb, 0x0c, 0x74, 0x08, 0x80, 0xfb, 0x16, 0x74, 0x03, 0xe8, 0x31, 0x2c, + 0x88, 0x5e, 0x08, 0x32, 0xff, 0xfa, 0xff, 0x97, 0x7c, 0x05, 0xfb, 0xfa, 0xf7, 0x86, 0xf0, 0x00, + 0xff, 0xff, 0x74, 0x0f, 0x8b, 0xb6, 0xf0, 0x00, 0x8b, 0x4c, 0x04, 0xe8, 0xce, 0x09, 0xfb, 0xff, + 0xd1, 0xeb, 0x5c, 0xfb, 0xf7, 0x46, 0x16, 0xff, 0xff, 0x74, 0x27, 0x8d, 0x7e, 0x16, 0xe8, 0x64, + 0x06, 0x56, 0x8b, 0x5c, 0x02, 0xd1, 0xe3, 0xff, 0x97, 0xcc, 0x04, 0x5e, 0xe8, 0x68, 0x06, 0xf7, + 0x86, 0xcc, 0x01, 0x01, 0x00, 0x74, 0x09, 0xe8, 0xbf, 0x25, 0xc7, 0x86, 0xcc, 0x01, 0x00, 0x00, + 0xeb, 0x2d, 0xfa, 0xf7, 0x86, 0x0a, 0x01, 0x01, 0x00, 0x75, 0x13, 0xf6, 0x86, 0xc4, 0x15, 0x80, + 0x75, 0x0c, 0xc7, 0x86, 0x0a, 0x01, 0x01, 0x00, 0xfb, 0xe8, 0x0b, 0x3c, 0xeb, 0x11, 0xfa, 0x8b, + 0x86, 0x67, 0x02, 0x38, 0xc4, 0x74, 0x07, 0x88, 0x86, 0x68, 0x02, 0xe8, 0xe5, 0x1a, 0xfb, 0xe8, + 0xcd, 0x05, 0xe9, 0xcd, 0xfe, 0x8e, 0x46, 0x02, 0x26, 0xc7, 0x06, 0x44, 0x00, 0xff, 0xcb, 0x8e, + 0x46, 0x02, 0x26, 0xc7, 0x06, 0x48, 0x00, 0xff, 0xfb, 0xe8, 0xa1, 0x02, 0x33, 0xc0, 0x88, 0x86, + 0xb8, 0x01, 0x88, 0x86, 0xb9, 0x01, 0x8e, 0x46, 0x02, 0x26, 0xa2, 0x5a, 0x00, 0x89, 0x86, 0x18, + 0x02, 0x89, 0x86, 0x0a, 0x02, 0x89, 0x86, 0x3a, 0x02, 0x8e, 0x46, 0x02, 0x26, 0xc7, 0x06, 0x4c, + 0x00, 0x30, 0x01, 0x8d, 0x86, 0xa8, 0x08, 0x89, 0x86, 0xc0, 0x01, 0x89, 0x86, 0xc2, 0x01, 0xc7, + 0x86, 0xc4, 0x01, 0x01, 0x00, 0x8c, 0xd8, 0x8e, 0xc0, 0x33, 0xc0, 0x8d, 0xbe, 0x58, 0x02, 0xb9, + 0x52, 0x00, 0xd1, 0xe9, 0xf3, 0xab, 0xd1, 0xd1, 0xf3, 0xaa, 0x8d, 0xbe, 0xec, 0x05, 0xab, 0xab, + 0xaa, 0x8d, 0xbe, 0xf4, 0x05, 0xab, 0xab, 0xaa, 0x8d, 0xbe, 0xb8, 0x02, 0xb9, 0x0b, 0x00, 0xf3, + 0xab, 0xc7, 0x86, 0xc8, 0x01, 0x14, 0x00, 0xc7, 0x86, 0xc0, 0x02, 0x04, 0x00, 0xbb, 0xfc, 0x04, + 0xb9, 0x0b, 0x00, 0x8b, 0x3f, 0x03, 0xfd, 0xab, 0xab, 0xab, 0x43, 0x43, 0xe2, 0xf5, 0xbb, 0x12, + 0x05, 0xb9, 0x0a, 0x00, 0x8b, 0x3f, 0x03, 0xfd, 0xab, 0xab, 0x43, 0x43, 0xe2, 0xf6, 0xb8, 0x02, + 0x00, 0x03, 0x06, 0x2a, 0x5d, 0xe8, 0x19, 0x05, 0x39, 0x06, 0x2a, 0x5d, 0x75, 0xf7, 0x8e, 0x46, + 0x02, 0x26, 0x83, 0x0e, 0x4c, 0x00, 0x02, 0xc7, 0x86, 0x0c, 0x02, 0xc8, 0x00, 0xc7, 0x86, 0xfc, + 0x01, 0xff, 0xff, 0xc7, 0x86, 0xfa, 0x01, 0x07, 0x00, 0xc6, 0x86, 0x8c, 0x02, 0x00, 0xe8, 0x01, + 0x00, 0xc3, 0x8e, 0x46, 0x02, 0x33, 0xc0, 0xfa, 0x89, 0x86, 0xb6, 0x01, 0x8e, 0x46, 0x02, 0x26, + 0xa3, 0x50, 0x00, 0x8b, 0x86, 0xa8, 0x15, 0x26, 0xa3, 0x70, 0x00, 0x89, 0x86, 0xb2, 0x01, 0x93, + 0xc7, 0x07, 0x00, 0x00, 0xc7, 0x47, 0x02, 0xff, 0xff, 0x93, 0xc1, 0xe8, 0x08, 0x26, 0xa3, 0x74, + 0x00, 0x8b, 0x86, 0xaa, 0x15, 0x26, 0xa3, 0x78, 0x00, 0x26, 0xa1, 0x78, 0x00, 0x93, 0xc7, 0x47, + 0xfc, 0xde, 0xad, 0xc7, 0x47, 0xfe, 0xbe, 0xaf, 0x93, 0xc1, 0xe8, 0x08, 0x26, 0xa3, 0x76, 0x00, + 0x33, 0xc0, 0xc6, 0x86, 0x87, 0x02, 0x01, 0x8d, 0xb6, 0xa8, 0x09, 0xc7, 0x86, 0xa6, 0x01, 0xb0, + 0x09, 0x01, 0xae, 0xa6, 0x01, 0x89, 0xb6, 0xa8, 0x01, 0x89, 0xb6, 0xaa, 0x01, 0xc7, 0x04, 0x30, + 0x80, 0xc7, 0x44, 0x04, 0x00, 0x00, 0xc6, 0x86, 0x8a, 0x02, 0x01, 0xfb, 0xe8, 0xa7, 0x08, 0x80, + 0xbe, 0xfe, 0x00, 0x02, 0x74, 0x33, 0xb8, 0x00, 0x40, 0x80, 0xbe, 0xfe, 0x00, 0x00, 0x74, 0x13, + 0x25, 0xff, 0x1f, 0x0d, 0x00, 0xa0, 0x83, 0xe0, 0xfd, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x0e, 0x4c, + 0x00, 0x80, 0x00, 0x8e, 0x46, 0x02, 0x26, 0xa3, 0x40, 0x00, 0xa1, 0x2a, 0x5d, 0x83, 0xc0, 0x02, + 0xe8, 0x3e, 0x04, 0x39, 0x06, 0x2a, 0x5d, 0x75, 0xf7, 0xc3, 0x8e, 0x46, 0x02, 0x26, 0xc7, 0x06, + 0x40, 0x00, 0x08, 0xbe, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, 0x42, 0x00, 0xc8, 0x8e, 0x46, 0x02, + 0x26, 0xc7, 0x06, 0x4c, 0x00, 0xa0, 0x00, 0x8e, 0x46, 0x02, 0x26, 0xc7, 0x06, 0x50, 0x00, 0x04, + 0x00, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x26, 0x40, 0x00, 0x7f, 0xff, 0x90, 0x90, 0x8e, 0x46, 0x02, + 0x26, 0x81, 0x0e, 0x40, 0x00, 0x80, 0x00, 0x90, 0x90, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x26, 0x40, + 0x00, 0x7f, 0xff, 0x8e, 0x46, 0x02, 0x26, 0xc7, 0x06, 0x68, 0x00, 0x18, 0x00, 0x8e, 0x46, 0x02, + 0x26, 0x83, 0x0e, 0x4c, 0x00, 0x01, 0xc3, 0xc6, 0x86, 0x0c, 0x01, 0x01, 0xc6, 0x86, 0x0d, 0x01, + 0x00, 0xe8, 0xcc, 0x27, 0xa1, 0x2a, 0x5d, 0x83, 0xc0, 0x02, 0x0b, 0xc0, 0x0b, 0xc0, 0x0b, 0xc0, + 0x0b, 0xc0, 0x39, 0x06, 0x2a, 0x5d, 0x72, 0xf2, 0x80, 0xbe, 0x0d, 0x01, 0x01, 0x74, 0x03, 0xf9, + 0xeb, 0x01, 0xf8, 0xc6, 0x86, 0x0c, 0x01, 0x00, 0xc3, 0xb8, 0x00, 0x00, 0x88, 0x86, 0x06, 0x01, + 0x88, 0x86, 0x07, 0x01, 0x88, 0x86, 0x08, 0x01, 0x88, 0x86, 0x09, 0x01, 0x89, 0x86, 0x0a, 0x01, + 0x88, 0x86, 0xb8, 0x01, 0x88, 0x86, 0xb9, 0x01, 0x88, 0x86, 0xd1, 0x01, 0xa2, 0x81, 0x5e, 0xc3, + 0xb8, 0x40, 0x60, 0x8e, 0xc0, 0x26, 0x83, 0x0e, 0x32, 0x00, 0x08, 0x2b, 0xc0, 0x2b, 0xc0, 0x2b, + 0xc0, 0x2b, 0xc0, 0x26, 0x83, 0x26, 0x32, 0x00, 0xf7, 0x2b, 0xc0, 0x2b, 0xc0, 0x2b, 0xc0, 0x2b, + 0xc0, 0x2b, 0xc0, 0x26, 0x83, 0x0e, 0x32, 0x00, 0x08, 0x2b, 0xc0, 0x2b, 0xc0, 0x2b, 0xc0, 0x2b, + 0xc0, 0x26, 0x83, 0x26, 0x32, 0x00, 0xf7, 0xc3, 0x50, 0x53, 0x52, 0xc6, 0x46, 0x01, 0x00, 0x32, + 0xe4, 0x8a, 0x46, 0x00, 0xbb, 0x00, 0xbd, 0x81, 0xeb, 0x00, 0x7c, 0x81, 0xe3, 0x00, 0xff, 0x89, + 0x9e, 0xac, 0x15, 0x81, 0xc3, 0x00, 0x01, 0xf7, 0xe3, 0x05, 0x00, 0x7c, 0x89, 0x86, 0xa8, 0x15, + 0x03, 0x86, 0xac, 0x15, 0x48, 0x89, 0x86, 0xaa, 0x15, 0x5a, 0x5b, 0x58, 0xc3, 0x51, 0x8e, 0x46, + 0x02, 0x26, 0x83, 0x26, 0x4c, 0x00, 0xfc, 0x8e, 0x46, 0x02, 0x26, 0xf7, 0x06, 0x54, 0x00, 0x80, + 0x00, 0x75, 0x1e, 0xb9, 0xf4, 0x01, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x0e, 0x4c, 0x00, 0x00, 0x08, + 0x8e, 0x46, 0x02, 0x26, 0xf7, 0x06, 0x54, 0x00, 0x80, 0x00, 0x75, 0x05, 0xe8, 0xe2, 0x02, 0xe2, + 0xe5, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x26, 0x4c, 0x00, 0xff, 0xf7, 0x59, 0x8e, 0x46, 0x02, 0x26, + 0x83, 0x0e, 0x4c, 0x00, 0x02, 0xc3, 0x50, 0x53, 0xc1, 0xe0, 0x05, 0x05, 0x00, 0x03, 0x8b, 0xd8, + 0x8d, 0x86, 0x00, 0x01, 0x89, 0x07, 0x8d, 0x86, 0xd4, 0x01, 0x89, 0x47, 0x02, 0x8d, 0x86, 0xe4, + 0x01, 0x89, 0x47, 0x04, 0x8d, 0x86, 0xb0, 0x15, 0x89, 0x47, 0x08, 0x8d, 0x86, 0xc4, 0x15, 0x89, + 0x47, 0x06, 0x8d, 0x86, 0xc0, 0x01, 0x89, 0x47, 0x0a, 0xc7, 0x47, 0x0c, 0x94, 0x5e, 0x8d, 0x86, + 0x40, 0x02, 0x89, 0x47, 0x0e, 0x8d, 0x06, 0x2a, 0x5d, 0x89, 0x47, 0x10, 0x5b, 0x58, 0xc3, 0x50, + 0xf7, 0x86, 0xf6, 0x00, 0x02, 0x00, 0x75, 0x02, 0xeb, 0x4b, 0xf6, 0x86, 0x64, 0x02, 0x01, 0x75, + 0x07, 0xf6, 0x86, 0x72, 0x02, 0x01, 0x74, 0x3d, 0xf6, 0x86, 0x89, 0x02, 0x01, 0x74, 0x36, 0xc6, + 0x86, 0x89, 0x02, 0x00, 0x8b, 0x86, 0x0a, 0x02, 0xf7, 0x86, 0x12, 0x01, 0x00, 0x40, 0x74, 0x03, + 0x25, 0xff, 0xaf, 0xf7, 0x86, 0x12, 0x01, 0x00, 0x20, 0x74, 0x03, 0x25, 0xff, 0xdf, 0x89, 0x86, + 0x0a, 0x02, 0x3b, 0x86, 0x3a, 0x02, 0x74, 0x0d, 0x89, 0x86, 0x3a, 0x02, 0x81, 0xa6, 0x3a, 0x02, + 0x7f, 0xdf, 0xe8, 0xe0, 0x3e, 0x58, 0xc3, 0x57, 0x56, 0x50, 0x8b, 0x86, 0xe6, 0x02, 0xa9, 0xff, + 0xff, 0x74, 0x40, 0x8d, 0xbe, 0xdc, 0x02, 0x8d, 0xb6, 0xec, 0x05, 0xb9, 0x0a, 0x00, 0x83, 0xf9, + 0x05, 0x75, 0x04, 0x8d, 0xb6, 0xf4, 0x05, 0xa9, 0x01, 0x00, 0x74, 0x1e, 0x80, 0x3d, 0xff, 0x74, + 0x12, 0xfe, 0x05, 0x80, 0x3d, 0xff, 0x75, 0x0b, 0x81, 0x8e, 0x0a, 0x02, 0x80, 0x00, 0xc6, 0x86, + 0x89, 0x02, 0x01, 0x80, 0x3c, 0xff, 0x74, 0x02, 0xfe, 0x04, 0xd1, 0xe8, 0x47, 0x46, 0xe2, 0xce, + 0xe8, 0x0a, 0x00, 0xc7, 0x86, 0xe6, 0x02, 0x00, 0x00, 0x58, 0x5e, 0x5f, 0xc3, 0xf6, 0x86, 0x5a, + 0x02, 0x01, 0x75, 0x27, 0xf6, 0x86, 0xaf, 0x02, 0x01, 0x75, 0x07, 0xf6, 0x86, 0x64, 0x02, 0x01, + 0x74, 0x19, 0xc6, 0x86, 0x5a, 0x02, 0x01, 0xf7, 0x86, 0xf6, 0x00, 0x00, 0x80, 0x75, 0x0c, 0xbe, + 0x07, 0x4c, 0xe8, 0xa1, 0x03, 0xc7, 0x86, 0xc0, 0x02, 0x04, 0x00, 0xc3, 0xf7, 0x86, 0xb0, 0x15, + 0x00, 0x80, 0x75, 0x02, 0xeb, 0x26, 0x8b, 0xb6, 0x60, 0x01, 0x3b, 0xb6, 0x5e, 0x01, 0x74, 0x1c, + 0x46, 0x83, 0xe6, 0x07, 0x89, 0xb6, 0x60, 0x01, 0x8b, 0xce, 0xd1, 0xe1, 0xd1, 0xe1, 0x8d, 0xb6, + 0x3e, 0x01, 0x03, 0xf1, 0x8b, 0x04, 0x8b, 0x54, 0x02, 0xe9, 0xd0, 0x3e, 0xc3, 0xbb, 0x00, 0x03, + 0x83, 0x7f, 0x12, 0x00, 0x74, 0x08, 0xe8, 0x4b, 0x3e, 0xc7, 0x47, 0x12, 0x00, 0x00, 0xc3, 0x53, + 0x50, 0x33, 0xc0, 0x88, 0x86, 0xcf, 0x01, 0xa3, 0x92, 0x5e, 0xbb, 0x94, 0x5e, 0x89, 0x1e, 0x8a, + 0x5e, 0x89, 0x07, 0x89, 0x47, 0x02, 0x89, 0x47, 0x04, 0xa3, 0x8c, 0x5e, 0xa3, 0x8e, 0x5e, 0xa3, + 0x90, 0x5e, 0x58, 0x5b, 0xc3, 0x50, 0x8a, 0xe0, 0xe4, 0x12, 0xf6, 0xd4, 0x22, 0xc4, 0xe6, 0x12, + 0x58, 0xc3, 0xc6, 0x46, 0x06, 0x00, 0xc6, 0x46, 0x07, 0x00, 0xc6, 0x46, 0x08, 0x00, 0xc6, 0x46, + 0x09, 0x00, 0xc6, 0x86, 0xc4, 0x15, 0x80, 0x8d, 0xbe, 0x16, 0x03, 0x8c, 0xd8, 0x8e, 0xc0, 0xab, + 0xab, 0xab, 0xc3, 0x51, 0x53, 0xb9, 0x10, 0x00, 0xd1, 0xe0, 0xd1, 0xdb, 0xe2, 0xfa, 0x8b, 0xc3, + 0x86, 0xc4, 0x5b, 0x59, 0xc3, 0x90, 0x50, 0x53, 0x51, 0x52, 0x57, 0x56, 0x8d, 0x1e, 0x6c, 0x05, + 0xb8, 0x40, 0x60, 0x8e, 0xc0, 0xff, 0x06, 0x4e, 0x00, 0xc7, 0x06, 0x46, 0x5d, 0x00, 0x00, 0xc6, + 0x06, 0x4a, 0x5d, 0x00, 0xc7, 0x06, 0x4e, 0x5d, 0x30, 0x00, 0x8d, 0x3e, 0x48, 0x5d, 0xb8, 0xa4, + 0x65, 0x89, 0x05, 0x06, 0x33, 0xc0, 0x8e, 0xc0, 0xa3, 0x2a, 0x5d, 0xa3, 0x2c, 0x5d, 0xa3, 0x2e, + 0x5d, 0x8d, 0x3e, 0x3e, 0x5d, 0xb9, 0x04, 0x00, 0xd1, 0xe9, 0xf3, 0xab, 0x8d, 0x3e, 0x42, 0x5d, + 0xb9, 0x04, 0x00, 0xd1, 0xe9, 0xf3, 0xab, 0x07, 0x8b, 0xd4, 0xb9, 0x01, 0x00, 0xbb, 0x00, 0x00, + 0xbd, 0xa4, 0x65, 0x88, 0x5e, 0x00, 0x8b, 0xc3, 0xd1, 0xe0, 0xd1, 0xe0, 0x05, 0x40, 0x60, 0x89, + 0x46, 0x02, 0x06, 0x51, 0x8c, 0xd8, 0x8e, 0xc0, 0xbe, 0x80, 0x03, 0x8d, 0xbe, 0x1a, 0x04, 0xb9, + 0x05, 0x00, 0xf3, 0xa5, 0x59, 0x07, 0xe8, 0x2f, 0xfd, 0xe8, 0xe2, 0x00, 0x8b, 0xc5, 0x05, 0xa4, + 0x08, 0x89, 0x86, 0xa6, 0x08, 0x83, 0xc0, 0x02, 0x8b, 0xe0, 0x68, 0x00, 0x06, 0x81, 0xc5, 0x44, + 0x16, 0x43, 0xe2, 0xbf, 0x8b, 0xe2, 0x33, 0xed, 0x5e, 0x5f, 0x5a, 0x59, 0x5b, 0x58, 0xc3, 0x3e, + 0x89, 0xa6, 0xa6, 0x08, 0x33, 0xed, 0xbc, 0x7e, 0x5e, 0xfa, 0x83, 0x0e, 0x42, 0x5d, 0x00, 0x74, + 0x0d, 0x8b, 0x36, 0x42, 0x5d, 0x8b, 0x4c, 0x04, 0xe8, 0xd1, 0x03, 0xfb, 0xff, 0xd1, 0xfb, 0x32, + 0xff, 0x8a, 0x1e, 0x46, 0x5d, 0x80, 0x8f, 0x4c, 0x5d, 0x00, 0x75, 0x21, 0xd1, 0xe3, 0x8b, 0xaf, + 0x48, 0x5d, 0x81, 0xbe, 0xa4, 0x06, 0xa5, 0xa5, 0x74, 0x0c, 0xd1, 0xeb, 0xc6, 0x87, 0x4c, 0x5d, + 0x01, 0xe8, 0xdb, 0x06, 0xeb, 0x07, 0x8b, 0x86, 0xa6, 0x08, 0x8b, 0xe0, 0xc3, 0xeb, 0xb5, 0xeb, + 0xae, 0x60, 0x9c, 0xe8, 0xa9, 0xff, 0x0e, 0xe8, 0x02, 0x00, 0xeb, 0x01, 0xcf, 0x61, 0xc3, 0x50, + 0xfa, 0x8b, 0x76, 0x1a, 0xf7, 0xc6, 0xff, 0xff, 0x74, 0x10, 0x8b, 0x04, 0x89, 0x46, 0x1a, 0x0b, + 0xc0, 0x75, 0x03, 0x89, 0x46, 0x1c, 0xc7, 0x04, 0x00, 0x00, 0xfb, 0x58, 0xc3, 0x53, 0xfa, 0xc7, + 0x04, 0x00, 0x00, 0x8b, 0x5d, 0x02, 0x89, 0x37, 0x89, 0x75, 0x02, 0x83, 0x3d, 0x00, 0x75, 0x02, + 0x89, 0x35, 0xfb, 0x5b, 0xc3, 0x50, 0xfa, 0x8b, 0x35, 0x8b, 0x04, 0x89, 0x05, 0x0b, 0xc0, 0x75, + 0x03, 0x89, 0x45, 0x02, 0xfb, 0x58, 0xc3, 0x50, 0xfa, 0x8b, 0x46, 0x1a, 0x89, 0x04, 0x89, 0x76, + 0x1a, 0xf7, 0x46, 0x1a, 0xff, 0xff, 0x75, 0x03, 0x89, 0x76, 0x1a, 0xfb, 0x58, 0xc3, 0x50, 0x53, + 0x51, 0x8b, 0xc5, 0x83, 0xc0, 0x1e, 0x89, 0x46, 0x1a, 0x83, 0xc0, 0x48, 0x89, 0x46, 0x1c, 0xb9, + 0x09, 0x00, 0x8b, 0xdd, 0x8b, 0xc5, 0x83, 0xc0, 0x26, 0x89, 0x47, 0x1e, 0x83, 0xc3, 0x08, 0x83, + 0xc0, 0x08, 0xe2, 0xf5, 0x59, 0x5b, 0x58, 0xc3, 0x60, 0x06, 0x1e, 0xfa, 0x33, 0xdb, 0x8e, 0xdb, + 0x83, 0x06, 0x2a, 0x5d, 0x01, 0x73, 0x04, 0x11, 0x1e, 0x2c, 0x5d, 0xb9, 0x01, 0x00, 0x8b, 0xaf, + 0x48, 0x5d, 0xf6, 0x06, 0x81, 0x5e, 0x01, 0x75, 0x03, 0xe8, 0x60, 0x46, 0xf7, 0x86, 0xa8, 0x02, + 0x01, 0x00, 0x74, 0x30, 0xfe, 0x86, 0x6b, 0x01, 0x80, 0xbe, 0x6b, 0x01, 0x02, 0x73, 0x02, 0xeb, + 0x23, 0xc6, 0x86, 0x6b, 0x01, 0x00, 0xf7, 0x86, 0x1c, 0x01, 0x01, 0x00, 0x75, 0x0a, 0x8e, 0x46, + 0x02, 0x26, 0x81, 0x26, 0x44, 0x00, 0x32, 0xfe, 0x81, 0xa6, 0x18, 0x01, 0x32, 0xfe, 0xc7, 0x86, + 0xa8, 0x02, 0x00, 0x00, 0xc6, 0x86, 0x6a, 0x01, 0x00, 0x8e, 0x46, 0x02, 0x26, 0xa1, 0x48, 0x00, + 0x25, 0x00, 0x02, 0x74, 0x03, 0xe8, 0x30, 0x17, 0xf6, 0x86, 0x58, 0x02, 0x01, 0x74, 0x03, 0xe8, + 0x2e, 0x46, 0x8b, 0x86, 0xf6, 0x00, 0x25, 0xd0, 0xe3, 0x89, 0x86, 0x30, 0x02, 0x8a, 0x46, 0x08, + 0x3c, 0x06, 0x74, 0x08, 0x3c, 0x0a, 0x74, 0x04, 0x3c, 0x18, 0x75, 0x04, 0xff, 0x86, 0x4a, 0x02, + 0x83, 0xc3, 0x02, 0x49, 0x74, 0x03, 0xe9, 0x75, 0xff, 0xf7, 0x06, 0x3e, 0x5d, 0xff, 0xff, 0x74, + 0x1f, 0xff, 0x0e, 0x2e, 0x5d, 0x75, 0x19, 0xe8, 0x14, 0x02, 0x8b, 0x1e, 0x3e, 0x5d, 0x0b, 0xdb, + 0x74, 0x0e, 0x8b, 0x47, 0x08, 0xa3, 0x2e, 0x5d, 0xf7, 0x06, 0x2e, 0x5d, 0xff, 0xff, 0x74, 0xe7, + 0x50, 0xb0, 0xa0, 0xe6, 0x10, 0x58, 0x1f, 0x07, 0x61, 0xcf, 0x60, 0x06, 0x1e, 0xfa, 0x8d, 0x36, + 0x32, 0x5d, 0x83, 0x04, 0x01, 0x83, 0x54, 0x02, 0x00, 0xe8, 0x64, 0x4a, 0xa0, 0x30, 0x5d, 0xfe, + 0xc0, 0x3c, 0x04, 0x72, 0x08, 0xc6, 0x06, 0x30, 0x5d, 0x00, 0xe9, 0x0f, 0xff, 0xa2, 0x30, 0x5d, + 0xeb, 0xce, 0x50, 0x57, 0x56, 0xfa, 0x8d, 0x36, 0x36, 0x5d, 0x83, 0x04, 0x01, 0x83, 0x54, 0x02, + 0x00, 0x80, 0x3e, 0x81, 0x5e, 0x01, 0x75, 0x0d, 0x8b, 0x36, 0x84, 0x5e, 0x83, 0xfe, 0x14, 0x77, + 0x0e, 0xff, 0x94, 0x56, 0x05, 0x50, 0xb0, 0xa0, 0xe6, 0x10, 0x58, 0x5e, 0x5f, 0x58, 0xcf, 0xe8, + 0x12, 0x4d, 0xeb, 0xf1, 0x57, 0x56, 0x50, 0xfa, 0x8d, 0x36, 0x3a, 0x5d, 0x83, 0x04, 0x01, 0x83, + 0x54, 0x02, 0x00, 0x80, 0x3e, 0x81, 0x5e, 0x01, 0x75, 0x0d, 0x8b, 0x36, 0x84, 0x5e, 0x83, 0xfe, + 0x14, 0x77, 0x0e, 0xff, 0x94, 0x56, 0x05, 0x50, 0xb0, 0xa0, 0xe6, 0x10, 0x58, 0x58, 0x5e, 0x5f, + 0xcf, 0xe8, 0xe0, 0x4c, 0xeb, 0xf1, 0x50, 0x53, 0x51, 0x57, 0xe8, 0xab, 0x00, 0xfa, 0x8b, 0x3c, + 0x03, 0xfd, 0x89, 0x6d, 0x02, 0x8b, 0x44, 0x02, 0x89, 0x45, 0x04, 0x8b, 0x44, 0x04, 0x89, 0x45, + 0x06, 0x0b, 0xc0, 0x75, 0x0e, 0x8b, 0x86, 0x0c, 0x02, 0x0b, 0xc0, 0x75, 0x03, 0xb8, 0xc8, 0x00, + 0x89, 0x45, 0x06, 0xf7, 0x06, 0x3e, 0x5d, 0xff, 0xff, 0x75, 0x14, 0x89, 0x3e, 0x3e, 0x5d, 0x89, + 0x3e, 0x40, 0x5d, 0xc7, 0x05, 0x00, 0x00, 0x89, 0x45, 0x08, 0xa3, 0x2e, 0x5d, 0xeb, 0x63, 0x8b, + 0x3e, 0x3e, 0x5d, 0x8b, 0x0e, 0x2e, 0x5d, 0x33, 0xdb, 0x3b, 0xc8, 0x72, 0x35, 0x0b, 0xdb, 0x75, + 0x17, 0x2b, 0xc8, 0x89, 0x4d, 0x08, 0x8b, 0x34, 0x03, 0xf5, 0x89, 0x44, 0x08, 0x89, 0x3c, 0x89, + 0x36, 0x3e, 0x5d, 0xa3, 0x2e, 0x5d, 0xeb, 0x3a, 0x2b, 0x4d, 0x08, 0x2b, 0xc1, 0x8b, 0x34, 0x03, + 0xf5, 0x89, 0x44, 0x08, 0x8b, 0x4d, 0x08, 0x2b, 0xc8, 0x89, 0x4d, 0x08, 0x89, 0x37, 0x89, 0x3c, + 0xeb, 0x20, 0x8b, 0xdf, 0x8b, 0x3d, 0x0b, 0xff, 0x74, 0x05, 0x03, 0x4d, 0x08, 0xeb, 0xba, 0x2b, + 0xc1, 0x8b, 0x34, 0x03, 0xf5, 0x89, 0x44, 0x08, 0x89, 0x37, 0xc7, 0x04, 0x00, 0x00, 0x89, 0x36, + 0x40, 0x5d, 0xfb, 0x5f, 0x59, 0x5b, 0x58, 0xc3, 0x57, 0x53, 0x50, 0x56, 0xfa, 0x8b, 0x1e, 0x3e, + 0x5d, 0x33, 0xff, 0x8b, 0x34, 0x03, 0xf5, 0x83, 0x7c, 0x02, 0xff, 0x74, 0x4b, 0x3b, 0xde, 0x75, + 0x49, 0x0b, 0xff, 0x74, 0x18, 0x8b, 0x07, 0x89, 0x05, 0x0b, 0xc0, 0x75, 0x06, 0x89, 0x3e, 0x40, + 0x5d, 0xeb, 0x2c, 0x8b, 0x4f, 0x08, 0x8b, 0xf8, 0x01, 0x4d, 0x08, 0xeb, 0x22, 0x8b, 0x3f, 0x89, + 0x3e, 0x3e, 0x5d, 0x0b, 0xff, 0x75, 0x0c, 0x89, 0x3e, 0x40, 0x5d, 0xc7, 0x06, 0x2e, 0x5d, 0xff, + 0xff, 0xeb, 0x0c, 0xa1, 0x2e, 0x5d, 0x01, 0x45, 0x08, 0x8b, 0x45, 0x08, 0xa3, 0x2e, 0x5d, 0xc7, + 0x47, 0x02, 0xff, 0xff, 0xc7, 0x07, 0x00, 0x00, 0xeb, 0x4e, 0x83, 0xcb, 0x00, 0x74, 0x06, 0x8b, + 0xfb, 0x8b, 0x1f, 0xeb, 0xa8, 0x83, 0xfd, 0x00, 0x75, 0x05, 0xbb, 0x42, 0x5d, 0xeb, 0x04, 0x8d, + 0x9e, 0xf0, 0x00, 0x8b, 0x1f, 0x83, 0xfb, 0x00, 0x74, 0x2e, 0x3b, 0xde, 0x75, 0x05, 0xe8, 0x6b, + 0x00, 0xeb, 0x25, 0x8b, 0xfb, 0x8b, 0x1f, 0x83, 0xcb, 0x00, 0x74, 0x1c, 0x3b, 0xde, 0x75, 0xf3, + 0x8b, 0x07, 0x89, 0x05, 0x83, 0xc8, 0x00, 0x75, 0x04, 0x89, 0xbe, 0xf2, 0x00, 0xc7, 0x07, 0x00, + 0x00, 0xc7, 0x47, 0x02, 0xff, 0xff, 0xeb, 0x00, 0xfb, 0x5e, 0x58, 0x5b, 0x5f, 0xc3, 0x50, 0x53, + 0x56, 0x55, 0x8b, 0x1e, 0x3e, 0x5d, 0x8b, 0x6f, 0x02, 0x0b, 0xed, 0x74, 0x06, 0x81, 0xc5, 0xf0, + 0x00, 0xeb, 0x03, 0xbd, 0x42, 0x5d, 0x8b, 0x76, 0x02, 0x8b, 0x07, 0xa3, 0x3e, 0x5d, 0x0b, 0xc0, + 0x75, 0x03, 0xa3, 0x40, 0x5d, 0x89, 0x5e, 0x02, 0x89, 0x1c, 0xc7, 0x07, 0x00, 0x00, 0x83, 0x4e, + 0x00, 0x00, 0x75, 0x03, 0x89, 0x5e, 0x00, 0x5d, 0x5e, 0x5b, 0x58, 0xc3, 0x55, 0x53, 0x50, 0x0b, + 0xed, 0x74, 0x06, 0x81, 0xc5, 0xf0, 0x00, 0xeb, 0x03, 0xbd, 0x42, 0x5d, 0x8b, 0x5e, 0x00, 0xc7, + 0x47, 0x02, 0xff, 0xff, 0x8b, 0x07, 0xc7, 0x07, 0x00, 0x00, 0x8b, 0xd8, 0x89, 0x5e, 0x00, 0x0b, + 0xdb, 0x75, 0x03, 0x89, 0x5e, 0x02, 0x58, 0x5b, 0x5d, 0xc3, 0x50, 0x53, 0x51, 0x57, 0x56, 0xfa, + 0x8b, 0x1e, 0x3e, 0x5d, 0x33, 0xff, 0x83, 0xcb, 0x00, 0x74, 0x54, 0x8b, 0xc3, 0x39, 0x6f, 0x02, + 0x75, 0x47, 0x0b, 0xff, 0x74, 0x18, 0x8b, 0x37, 0x89, 0x35, 0x8b, 0xc7, 0x0b, 0xf6, 0x75, 0x06, + 0x89, 0x3e, 0x40, 0x5d, 0xeb, 0x2c, 0x8b, 0x4f, 0x08, 0x01, 0x4c, 0x08, 0xeb, 0x24, 0x8b, 0x37, + 0x89, 0x36, 0x3e, 0x5d, 0x0b, 0xf6, 0x75, 0x0c, 0x89, 0x36, 0x40, 0x5d, 0xc7, 0x06, 0x2e, 0x5d, + 0xff, 0xff, 0xeb, 0x0e, 0xa1, 0x2e, 0x5d, 0x01, 0x44, 0x08, 0x8b, 0x44, 0x08, 0xa3, 0x2e, 0x5d, + 0x33, 0xc0, 0xc7, 0x47, 0x02, 0xff, 0xff, 0xeb, 0x00, 0x8b, 0xf8, 0x8b, 0x1f, 0xeb, 0xa7, 0xfb, + 0x5e, 0x5f, 0x59, 0x5b, 0x58, 0xc3, 0x50, 0x53, 0x51, 0x52, 0x8a, 0x8e, 0xad, 0x02, 0x8e, 0x46, + 0x02, 0x26, 0xa1, 0x32, 0x00, 0x8a, 0x9e, 0x7d, 0x02, 0x80, 0xbe, 0xfe, 0x00, 0x02, 0x75, 0x57, + 0xf6, 0x86, 0xb3, 0x02, 0x01, 0x75, 0x4e, 0x0d, 0x74, 0x80, 0x25, 0x7f, 0x9f, 0x26, 0xa3, 0x32, + 0x00, 0xb8, 0x01, 0x00, 0xe8, 0x16, 0x05, 0x26, 0x83, 0x0e, 0x42, 0x00, 0x04, 0xc6, 0x86, 0xb4, + 0x02, 0x00, 0x26, 0xa1, 0x32, 0x00, 0x0d, 0x00, 0x60, 0x26, 0xa3, 0x32, 0x00, 0xb8, 0x00, 0x00, + 0xe8, 0xfa, 0x04, 0x26, 0xa1, 0x32, 0x00, 0x83, 0xe0, 0xdf, 0x26, 0xa3, 0x32, 0x00, 0xb8, 0x00, + 0x00, 0xe8, 0xe9, 0x04, 0xe8, 0x6c, 0x01, 0x26, 0xa1, 0x8c, 0x00, 0x25, 0xff, 0x07, 0x0d, 0x00, + 0xd0, 0x26, 0xa3, 0x8c, 0x00, 0xeb, 0x3c, 0xf6, 0x86, 0xb4, 0x02, 0x01, 0x75, 0x35, 0x26, 0x83, + 0x26, 0x42, 0x00, 0xfb, 0x26, 0xa1, 0x32, 0x00, 0x0d, 0xb4, 0x80, 0x25, 0xbf, 0x9f, 0x26, 0xa3, + 0x32, 0x00, 0xc6, 0x86, 0xb3, 0x02, 0x00, 0xb8, 0x01, 0x00, 0xe8, 0xb0, 0x04, 0x26, 0xa1, 0x32, + 0x00, 0x83, 0xe0, 0xef, 0x26, 0xa3, 0x32, 0x00, 0xc6, 0x86, 0xb4, 0x02, 0x01, 0xb8, 0x00, 0x00, + 0xe8, 0x9a, 0x04, 0x26, 0xa1, 0x40, 0x00, 0x8b, 0xd8, 0x80, 0xbe, 0xfe, 0x00, 0x01, 0x75, 0x10, + 0x83, 0xe0, 0xfd, 0xc6, 0x86, 0x7d, 0x02, 0x01, 0x25, 0xff, 0x1f, 0x0d, 0x00, 0x80, 0xeb, 0x0e, + 0x25, 0xff, 0x1f, 0x0d, 0x00, 0x20, 0x83, 0xc8, 0x02, 0xc6, 0x86, 0x7d, 0x02, 0x00, 0xe8, 0x96, + 0x02, 0x0d, 0x00, 0x08, 0xf6, 0x86, 0xaf, 0x02, 0x01, 0x75, 0x03, 0x25, 0xff, 0xf7, 0x33, 0xd8, + 0x74, 0x04, 0x26, 0xa3, 0x40, 0x00, 0x26, 0xa1, 0x4c, 0x00, 0x8a, 0x9e, 0x7d, 0x02, 0x8b, 0xd8, + 0xf7, 0x86, 0x12, 0x01, 0x10, 0x00, 0x74, 0x05, 0x0d, 0x00, 0x10, 0xeb, 0x03, 0x25, 0xff, 0xef, + 0x8a, 0xae, 0x6d, 0x02, 0x80, 0xf9, 0x01, 0x75, 0x04, 0x8a, 0xae, 0x6e, 0x02, 0xf6, 0xc5, 0x01, + 0x74, 0x05, 0x83, 0xc8, 0x10, 0xeb, 0x03, 0x83, 0xe0, 0xef, 0xf6, 0x86, 0x6f, 0x02, 0x01, 0x74, + 0x0a, 0x83, 0xc8, 0x20, 0xc6, 0x86, 0x7e, 0x02, 0x00, 0xeb, 0x08, 0x83, 0xe0, 0xdf, 0xc6, 0x86, + 0x7e, 0x02, 0x01, 0xf6, 0x86, 0x58, 0x02, 0x01, 0x74, 0x0a, 0xc6, 0x86, 0x7e, 0x02, 0x00, 0x83, + 0xc8, 0x40, 0xeb, 0x03, 0x83, 0xe0, 0xbf, 0xf6, 0x86, 0x7d, 0x02, 0x01, 0x74, 0x05, 0x0d, 0x80, + 0x00, 0xeb, 0x03, 0x25, 0x7f, 0xff, 0xf6, 0x86, 0x7c, 0x02, 0x01, 0x74, 0x05, 0x0d, 0x00, 0x01, + 0xeb, 0x03, 0x25, 0xff, 0xfe, 0xf6, 0x86, 0x7e, 0x02, 0x01, 0x74, 0x05, 0x0d, 0x00, 0x20, 0xeb, + 0x03, 0x25, 0xff, 0xdf, 0x33, 0xd8, 0x74, 0x12, 0xf7, 0xc3, 0x20, 0x00, 0x74, 0x05, 0xc6, 0x06, + 0x4e, 0x13, 0x01, 0x25, 0xff, 0xf7, 0x26, 0xa3, 0x4c, 0x00, 0x26, 0xa1, 0x50, 0x00, 0x8b, 0xd8, + 0x33, 0xd8, 0x74, 0x04, 0x26, 0xa3, 0x50, 0x00, 0xf6, 0x06, 0x4e, 0x13, 0x01, 0x74, 0x1e, 0xc6, + 0x06, 0x4e, 0x13, 0x00, 0x26, 0x81, 0x26, 0x40, 0x00, 0x7f, 0xff, 0x90, 0x90, 0x26, 0x81, 0x0e, + 0x40, 0x00, 0x80, 0x00, 0x90, 0x90, 0x26, 0x81, 0x26, 0x40, 0x00, 0x7f, 0xff, 0x5a, 0x59, 0x5b, + 0x58, 0xc3, 0x00, 0xf6, 0x86, 0xb3, 0x02, 0x01, 0x75, 0x42, 0x50, 0xe8, 0x50, 0x03, 0xb3, 0x00, + 0x8a, 0x3e, 0x80, 0x5e, 0xb8, 0x00, 0x80, 0xe8, 0xdf, 0x02, 0x8b, 0xc0, 0x8b, 0xc0, 0x8b, 0xc0, + 0xb3, 0x00, 0x8a, 0x3e, 0x80, 0x5e, 0xb8, 0x00, 0x21, 0xf7, 0x86, 0x12, 0x01, 0x00, 0x04, 0x74, + 0x03, 0x0d, 0x00, 0x40, 0xe8, 0xc2, 0x02, 0xb3, 0x1b, 0x8a, 0x3e, 0x80, 0x5e, 0xe8, 0x12, 0x02, + 0x83, 0xc8, 0x10, 0xe8, 0xb3, 0x02, 0xc6, 0x86, 0xb3, 0x02, 0x01, 0x58, 0xc3, 0x8e, 0x46, 0x02, + 0xf7, 0x86, 0xf4, 0x00, 0x04, 0x00, 0x74, 0x0b, 0xc6, 0x06, 0x81, 0x5e, 0x01, 0x26, 0x83, 0x0e, + 0x42, 0x00, 0x02, 0xc6, 0x86, 0xb0, 0x02, 0x00, 0xc6, 0x86, 0xb1, 0x02, 0x00, 0xa8, 0x02, 0x74, + 0x26, 0x26, 0x83, 0x26, 0x42, 0x00, 0xcf, 0xf7, 0x86, 0xf4, 0x00, 0x04, 0x00, 0x75, 0x14, 0xf7, + 0x86, 0x12, 0x01, 0x00, 0x84, 0x75, 0x0c, 0x80, 0xbe, 0xfe, 0x00, 0x01, 0x77, 0x05, 0xc6, 0x86, + 0xb0, 0x02, 0x01, 0xb0, 0x02, 0xeb, 0x2a, 0xa8, 0x04, 0x74, 0x0e, 0x26, 0x83, 0x0e, 0x42, 0x00, + 0x20, 0x26, 0x83, 0x26, 0x42, 0x00, 0xef, 0xeb, 0x18, 0xa8, 0x08, 0x74, 0x08, 0x26, 0x83, 0x0e, + 0x42, 0x00, 0x30, 0xeb, 0x0c, 0xa8, 0x10, 0x74, 0x08, 0x26, 0x83, 0x0e, 0x42, 0x00, 0x30, 0xeb, + 0x00, 0xf6, 0x06, 0x81, 0x5e, 0x01, 0x74, 0x06, 0x26, 0x83, 0x26, 0x42, 0x00, 0xcf, 0xc3, 0xc3, + 0x8e, 0x46, 0x02, 0x26, 0x81, 0x0e, 0x4c, 0x00, 0x00, 0x01, 0x90, 0x90, 0x90, 0x90, 0x8e, 0x46, + 0x02, 0x26, 0x81, 0x26, 0x4c, 0x00, 0xff, 0xfe, 0xc3, 0x8e, 0x46, 0x02, 0x80, 0xbe, 0xfe, 0x00, + 0x02, 0x74, 0x1e, 0xf6, 0x06, 0x81, 0x5e, 0x01, 0x75, 0x0f, 0x80, 0xbe, 0xb0, 0x02, 0x01, 0x75, + 0x10, 0x26, 0x83, 0x0e, 0x42, 0x00, 0x02, 0xeb, 0x08, 0xc6, 0x86, 0x6c, 0x01, 0x01, 0xe8, 0x18, + 0x47, 0xc3, 0x8e, 0x46, 0x02, 0xf7, 0x86, 0xf4, 0x00, 0x02, 0x00, 0x74, 0x09, 0x26, 0x81, 0x26, + 0x42, 0x00, 0xff, 0xef, 0xeb, 0x07, 0x26, 0x81, 0x0e, 0x42, 0x00, 0x00, 0x10, 0xc3, 0x8e, 0x46, + 0x02, 0xf7, 0x86, 0xf4, 0x00, 0x02, 0x00, 0x74, 0x09, 0x26, 0x81, 0x0e, 0x42, 0x00, 0x00, 0x10, + 0xeb, 0x07, 0x26, 0x81, 0x26, 0x42, 0x00, 0xff, 0xef, 0xc3, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x0e, + 0x42, 0x00, 0x00, 0x80, 0xc3, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x26, 0x42, 0x00, 0xff, 0x7f, 0xc3, + 0xf7, 0x86, 0xf4, 0x00, 0x08, 0x00, 0x74, 0x13, 0xe8, 0xdf, 0xff, 0xeb, 0x39, 0x80, 0x7e, 0x06, + 0x0e, 0x74, 0x1d, 0x80, 0x7e, 0x06, 0x48, 0x74, 0x23, 0xeb, 0x2b, 0xe8, 0xd7, 0xff, 0x8e, 0x46, + 0x02, 0xf7, 0x86, 0xf4, 0x00, 0x10, 0x00, 0x75, 0xe4, 0x80, 0xbe, 0xfe, 0x00, 0x00, 0x75, 0x0c, + 0x8e, 0x46, 0x02, 0x26, 0x81, 0x0e, 0x42, 0x00, 0x00, 0x40, 0xeb, 0x0a, 0x8e, 0x46, 0x02, 0x26, + 0x81, 0x26, 0x42, 0x00, 0xff, 0xbf, 0xc3, 0x83, 0xe0, 0xf7, 0xf7, 0x86, 0x12, 0x01, 0x00, 0x04, + 0x74, 0x03, 0x83, 0xc8, 0x08, 0xc3, 0x80, 0xbe, 0xfe, 0x00, 0x01, 0x77, 0x0a, 0x8e, 0x46, 0x02, + 0x26, 0x83, 0x0e, 0x50, 0x00, 0x04, 0xc3, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x0e, 0x90, 0x00, 0x04, + 0xc3, 0x80, 0xbe, 0xfe, 0x00, 0x01, 0x77, 0x0a, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, 0x50, 0x00, + 0xfb, 0xc3, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, 0x90, 0x00, 0xfb, 0xc3, 0x51, 0x50, 0xfa, 0x8e, + 0x46, 0x02, 0x26, 0x83, 0x26, 0x92, 0x00, 0xfb, 0x26, 0x83, 0x26, 0x92, 0x00, 0xfe, 0x90, 0x90, + 0x90, 0x90, 0x26, 0x83, 0x0e, 0x92, 0x00, 0x01, 0x90, 0x90, 0x90, 0x90, 0x26, 0xa1, 0x92, 0x00, + 0x83, 0xc8, 0x02, 0xb9, 0x20, 0x00, 0xe8, 0x06, 0x00, 0xe2, 0xfb, 0xfb, 0x58, 0x59, 0xc3, 0x53, + 0x8e, 0x46, 0x02, 0x24, 0xfe, 0x26, 0xa3, 0x92, 0x00, 0x90, 0x90, 0x90, 0x90, 0x0c, 0x01, 0x26, + 0xa3, 0x92, 0x00, 0x90, 0x90, 0x90, 0x5b, 0xc3, 0x51, 0xb1, 0x03, 0xd2, 0xe5, 0xb1, 0x05, 0xd0, + 0xe5, 0x72, 0x04, 0x24, 0xfd, 0xeb, 0x02, 0x0c, 0x02, 0xe8, 0xd3, 0xff, 0xfe, 0xc9, 0x75, 0xef, + 0x59, 0xc3, 0x9c, 0xfa, 0x51, 0x52, 0xfa, 0x8e, 0x46, 0x02, 0xe8, 0x8f, 0xff, 0x26, 0xa1, 0x92, + 0x00, 0x83, 0xe0, 0xfd, 0x83, 0xc8, 0x01, 0x26, 0xa3, 0x92, 0x00, 0x83, 0xc8, 0x04, 0x26, 0xa3, + 0x92, 0x00, 0xe8, 0xaa, 0xff, 0x83, 0xc8, 0x02, 0xe8, 0xa4, 0xff, 0x83, 0xc8, 0x02, 0xe8, 0x9e, + 0xff, 0x83, 0xe0, 0xfd, 0xe8, 0x98, 0xff, 0x8a, 0xef, 0xe8, 0xac, 0xff, 0x8a, 0xeb, 0xe8, 0xa7, + 0xff, 0x83, 0xe0, 0xfb, 0xe8, 0x88, 0xff, 0x83, 0xe0, 0xfe, 0x26, 0xa3, 0x92, 0x00, 0x90, 0x90, + 0x26, 0x8b, 0x0e, 0x92, 0x00, 0xf7, 0xc1, 0x02, 0x00, 0x74, 0x12, 0xa8, 0x02, 0x74, 0x0e, 0xb9, + 0x12, 0x00, 0xe8, 0x6a, 0xff, 0xe2, 0xfb, 0xfb, 0x5a, 0x59, 0x9d, 0xf9, 0xc3, 0x0c, 0x01, 0x26, + 0xa3, 0x92, 0x00, 0x90, 0x90, 0x90, 0x90, 0xb1, 0x10, 0x53, 0x33, 0xdb, 0x24, 0xfe, 0x26, 0xa3, + 0x92, 0x00, 0x26, 0xa1, 0x92, 0x00, 0xd1, 0xe3, 0xa8, 0x02, 0x74, 0x03, 0x83, 0xcb, 0x01, 0x0c, + 0x01, 0x26, 0xa3, 0x92, 0x00, 0x90, 0x90, 0x90, 0x90, 0xfe, 0xc9, 0x75, 0xdf, 0xe8, 0x2f, 0xff, + 0x8b, 0xc3, 0x5b, 0xfb, 0x5a, 0x59, 0x9d, 0xf8, 0xc3, 0x9c, 0xfa, 0x51, 0x53, 0x52, 0x50, 0xfa, + 0xe8, 0xe9, 0xfe, 0x26, 0xa1, 0x92, 0x00, 0x83, 0xe0, 0xfd, 0x83, 0xc8, 0x01, 0x26, 0xa3, 0x92, + 0x00, 0x83, 0xc8, 0x04, 0x26, 0xa3, 0x92, 0x00, 0xe8, 0x04, 0xff, 0x83, 0xc8, 0x02, 0xe8, 0xfe, + 0xfe, 0x24, 0xfd, 0xe8, 0xf9, 0xfe, 0x0c, 0x02, 0xe8, 0xf4, 0xfe, 0x8a, 0xef, 0xe8, 0x08, 0xff, + 0x8a, 0xeb, 0xe8, 0x03, 0xff, 0x0c, 0x02, 0xe8, 0xe5, 0xfe, 0x24, 0xfd, 0xe8, 0xe0, 0xfe, 0x5b, + 0xb1, 0x10, 0xd1, 0xe3, 0x72, 0x04, 0x24, 0xfd, 0xeb, 0x02, 0x0c, 0x02, 0xe8, 0xd0, 0xfe, 0xfe, + 0xc9, 0x75, 0xef, 0x24, 0xfb, 0xe8, 0xc7, 0xfe, 0xfb, 0x5a, 0x5b, 0x59, 0x9d, 0xc3, 0x50, 0xe8, + 0x8a, 0xfe, 0xb7, 0x00, 0xb3, 0x02, 0xe8, 0xe9, 0xfe, 0x83, 0xf8, 0xff, 0x75, 0x09, 0xfe, 0xc7, + 0x80, 0xff, 0x20, 0x75, 0xf1, 0xb7, 0xff, 0x88, 0x3e, 0x80, 0x5e, 0x58, 0xc3, 0x53, 0x40, 0x03, + 0x06, 0x2a, 0x5d, 0x8b, 0xd8, 0xe8, 0x79, 0xf6, 0xa1, 0x2a, 0x5d, 0x3b, 0xc3, 0x75, 0xf6, 0x5b, + 0xc3, 0x90, 0xe8, 0xa0, 0xf0, 0xc6, 0x86, 0x6d, 0x02, 0x01, 0xc6, 0x86, 0x6f, 0x02, 0x01, 0x8e, + 0x46, 0x02, 0x26, 0x83, 0x26, 0x4c, 0x00, 0xfe, 0x26, 0x81, 0x0e, 0x32, 0x00, 0x00, 0x80, 0x80, + 0xbe, 0xfe, 0x00, 0x02, 0x74, 0x0b, 0xc6, 0x86, 0x7c, 0x02, 0x00, 0xe8, 0x78, 0xfa, 0xe8, 0xf5, + 0xfd, 0x33, 0xc0, 0x88, 0x86, 0x8d, 0x02, 0x88, 0x86, 0x8e, 0x02, 0xc6, 0x86, 0x63, 0x01, 0x01, + 0xc7, 0x86, 0x64, 0x01, 0xfc, 0x05, 0xc6, 0x86, 0x69, 0x01, 0x02, 0xbe, 0x67, 0x4c, 0xe8, 0x15, + 0xf8, 0xbe, 0x61, 0x4c, 0xe8, 0x0f, 0xf8, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x26, 0x44, 0x00, 0x32, + 0xfe, 0xc3, 0xc6, 0x86, 0x63, 0x01, 0x00, 0x80, 0xbe, 0x62, 0x01, 0x01, 0x75, 0x0d, 0xe8, 0x34, + 0xf0, 0xe8, 0x4b, 0x30, 0xc6, 0x46, 0x07, 0x00, 0xe9, 0xb6, 0x00, 0xbe, 0x19, 0x4c, 0xe8, 0x97, + 0xf8, 0xbe, 0x61, 0x4c, 0xe8, 0x91, 0xf8, 0xc6, 0x86, 0x8d, 0x02, 0x01, 0x80, 0x7e, 0x06, 0x02, + 0x74, 0x08, 0x80, 0x7e, 0x06, 0x44, 0x74, 0x09, 0xeb, 0x1c, 0xc6, 0x46, 0x07, 0x04, 0xe9, 0x90, + 0x00, 0xf7, 0x86, 0x12, 0x01, 0x00, 0x84, 0x74, 0x07, 0xc6, 0x46, 0x07, 0x4e, 0xe9, 0x81, 0x00, + 0xc6, 0x46, 0x07, 0x46, 0xeb, 0x7b, 0x80, 0x7e, 0x08, 0x08, 0x75, 0xf8, 0xc6, 0x86, 0x85, 0x02, + 0x01, 0xc6, 0x86, 0x6d, 0x02, 0x00, 0xc6, 0x86, 0x61, 0x02, 0x00, 0xc6, 0x86, 0x60, 0x02, 0x00, + 0xc6, 0x86, 0x63, 0x02, 0x01, 0xc6, 0x86, 0x6c, 0x02, 0x01, 0xc6, 0x86, 0x70, 0x02, 0x01, 0xf6, + 0x86, 0x5c, 0x02, 0x01, 0x74, 0x17, 0x80, 0xbe, 0xab, 0x02, 0x01, 0x74, 0x2c, 0xc6, 0x46, 0x09, + 0x0a, 0xc6, 0x86, 0x6f, 0x02, 0x00, 0xc6, 0x86, 0x5d, 0x02, 0x01, 0xeb, 0x1c, 0xf6, 0x86, 0x5d, + 0x02, 0x01, 0x74, 0x15, 0x80, 0xbe, 0xab, 0x02, 0x01, 0x74, 0x0e, 0xc6, 0x46, 0x09, 0x06, 0xc6, + 0x86, 0x5c, 0x02, 0x01, 0xc6, 0x86, 0x6f, 0x02, 0x01, 0xe8, 0x8a, 0xf9, 0xe8, 0x3a, 0xfc, 0xbe, + 0x49, 0x4c, 0xe8, 0x41, 0xf7, 0xbe, 0x0d, 0x4c, 0xe8, 0x3b, 0xf7, 0xbe, 0x4f, 0x4c, 0xe8, 0x35, + 0xf7, 0xc3, 0xc6, 0x46, 0x09, 0x00, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x26, 0x44, 0x00, 0x32, 0xfe, + 0xbe, 0x6d, 0x4c, 0xe8, 0x20, 0xf7, 0xc7, 0x86, 0xc8, 0x01, 0x14, 0x00, 0xc7, 0x86, 0xcc, 0x02, + 0x00, 0x00, 0xbe, 0x55, 0x4c, 0xe8, 0x0e, 0xf7, 0xc6, 0x86, 0x6d, 0x02, 0x00, 0xc6, 0x86, 0x6f, + 0x02, 0x00, 0xc6, 0x86, 0x6c, 0x02, 0x01, 0xc6, 0x86, 0x70, 0x02, 0x01, 0xe8, 0x37, 0xf9, 0xbe, + 0x13, 0x4c, 0xe8, 0xf1, 0xf6, 0xbe, 0x49, 0x4c, 0xe8, 0xeb, 0xf6, 0x33, 0xc0, 0x89, 0x86, 0xf2, + 0x01, 0x89, 0x86, 0xf4, 0x01, 0x89, 0x86, 0xf6, 0x01, 0xf6, 0x06, 0x81, 0x5e, 0x01, 0x74, 0x0a, + 0x8e, 0x46, 0x02, 0x26, 0x81, 0x26, 0x44, 0x00, 0xff, 0xf7, 0xf7, 0x86, 0xf6, 0x00, 0x00, 0x20, + 0x74, 0x10, 0xbe, 0x4f, 0x4c, 0xe8, 0xbe, 0xf6, 0xc6, 0x86, 0x61, 0x02, 0x00, 0xc6, 0x86, 0x60, + 0x02, 0x00, 0xe8, 0xa4, 0xfb, 0xc3, 0xc3, 0x90, 0xc6, 0x86, 0x5b, 0x02, 0x01, 0xc7, 0x86, 0xce, + 0x02, 0x00, 0x00, 0xc7, 0x86, 0xd0, 0x02, 0x00, 0x00, 0xbe, 0x13, 0x4c, 0xe8, 0x97, 0xf6, 0xe8, + 0xc7, 0x14, 0xc3, 0x90, 0xc6, 0x86, 0x5f, 0x02, 0x01, 0xf6, 0x86, 0x88, 0x02, 0x01, 0x74, 0x08, + 0xe8, 0x0a, 0x17, 0xc6, 0x86, 0x88, 0x02, 0x00, 0xbe, 0x13, 0x4c, 0xe8, 0x78, 0xf6, 0xf6, 0x86, + 0x67, 0x02, 0x01, 0x74, 0x04, 0xc6, 0x46, 0x07, 0x0c, 0xc3, 0xbe, 0x13, 0x4c, 0xe8, 0x66, 0xf6, + 0xbe, 0x31, 0x4c, 0xe8, 0x60, 0xf6, 0xc7, 0x86, 0xc2, 0x02, 0x01, 0x00, 0xc7, 0x86, 0xc4, 0x02, + 0x01, 0x00, 0xe8, 0x50, 0x15, 0xc3, 0xc7, 0x86, 0xcc, 0x02, 0x00, 0x00, 0xc7, 0x86, 0xc8, 0x01, + 0x14, 0x00, 0xc6, 0x86, 0x08, 0x01, 0x00, 0x81, 0xa6, 0x0a, 0x02, 0xdf, 0xbf, 0xc6, 0x86, 0x64, + 0x02, 0x01, 0xc7, 0x86, 0x2a, 0x02, 0xff, 0xff, 0xf7, 0x86, 0xf6, 0x00, 0x00, 0x20, 0x75, 0x18, + 0xf7, 0x86, 0x12, 0x01, 0x00, 0x84, 0x75, 0x10, 0xbe, 0x4f, 0x4c, 0xe8, 0x18, 0xf6, 0xc6, 0x86, + 0x61, 0x02, 0x00, 0xc6, 0x86, 0x60, 0x02, 0x00, 0xbe, 0x13, 0x4c, 0xe8, 0xba, 0xf6, 0x8e, 0x46, + 0x02, 0x26, 0x83, 0x0e, 0x4c, 0x00, 0x01, 0x26, 0x81, 0x26, 0x32, 0x00, 0xff, 0x7f, 0xb8, 0x00, + 0x80, 0xe8, 0xb6, 0x2f, 0xe8, 0x59, 0xfb, 0xe8, 0x08, 0xfb, 0xc6, 0x86, 0x62, 0x02, 0x01, 0xc6, + 0x86, 0xce, 0x01, 0x00, 0xf7, 0x86, 0xf6, 0x00, 0x04, 0x00, 0x74, 0x05, 0xc6, 0x86, 0xce, 0x01, + 0x01, 0xf6, 0x86, 0x58, 0x02, 0x01, 0x75, 0x06, 0xbe, 0x1f, 0x4c, 0xe8, 0xc8, 0xf5, 0xff, 0x86, + 0xfc, 0x00, 0xc3, 0x90, 0xe8, 0x9a, 0xfb, 0xc6, 0x86, 0x08, 0x01, 0x00, 0xc6, 0x46, 0x09, 0x00, + 0xc6, 0x46, 0x0b, 0x00, 0xc6, 0x86, 0x58, 0x02, 0x00, 0xc6, 0x86, 0x6c, 0x02, 0x00, 0xc6, 0x86, + 0x62, 0x02, 0x00, 0xc6, 0x86, 0x64, 0x02, 0x00, 0xc6, 0x86, 0x5f, 0x02, 0x00, 0xc6, 0x86, 0x67, + 0x02, 0x00, 0xc6, 0x86, 0x6f, 0x02, 0x00, 0xc6, 0x86, 0x6d, 0x02, 0x00, 0xc6, 0x86, 0x6e, 0x02, + 0x00, 0xe8, 0xc2, 0xf7, 0xf6, 0x86, 0x70, 0x02, 0x01, 0x74, 0x0c, 0x83, 0xbe, 0x22, 0x01, 0x0e, + 0x75, 0x28, 0xe8, 0x65, 0x08, 0xeb, 0x23, 0x8e, 0x46, 0x02, 0xf6, 0x06, 0x81, 0x5e, 0x01, 0x75, + 0x08, 0x26, 0x83, 0x26, 0x42, 0x00, 0xfd, 0xeb, 0x08, 0xc6, 0x86, 0x6d, 0x01, 0x01, 0xe8, 0xe0, + 0x41, 0xe8, 0x26, 0xf7, 0xbe, 0x2b, 0x4c, 0xe8, 0x4c, 0xf5, 0xc3, 0x90, 0xc7, 0x86, 0x32, 0x02, + 0x02, 0x00, 0xe8, 0x1c, 0xfb, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, 0x4c, 0x00, 0xfe, 0x26, 0x81, + 0x0e, 0x32, 0x00, 0x00, 0x80, 0x8e, 0x46, 0x02, 0xf6, 0x06, 0x81, 0x5e, 0x01, 0x75, 0x08, 0x26, + 0x83, 0x26, 0x42, 0x00, 0xfd, 0xeb, 0x08, 0xc6, 0x86, 0x6d, 0x01, 0x01, 0xe8, 0xa2, 0x41, 0xc6, + 0x86, 0x08, 0x01, 0x00, 0xc7, 0x86, 0x22, 0x01, 0x00, 0x00, 0xe8, 0x41, 0xfa, 0xe8, 0x65, 0xfa, + 0xf7, 0x86, 0xf4, 0x00, 0x10, 0x00, 0x74, 0x14, 0xf7, 0x86, 0xf4, 0x00, 0x02, 0x00, 0x74, 0x0c, + 0x8e, 0x46, 0x02, 0x26, 0x81, 0x0e, 0x42, 0x00, 0x00, 0x40, 0xeb, 0x0a, 0x8e, 0x46, 0x02, 0x26, + 0x81, 0x26, 0x42, 0x00, 0xff, 0xbf, 0x80, 0xbe, 0xfe, 0x00, 0x02, 0x75, 0x05, 0xc6, 0x86, 0xfe, + 0x00, 0x01, 0xf6, 0x86, 0xbd, 0x01, 0x01, 0x75, 0x02, 0xeb, 0x71, 0x26, 0xff, 0x36, 0x5e, 0x00, + 0x26, 0xff, 0x36, 0x60, 0x00, 0x26, 0xff, 0x36, 0x62, 0x00, 0x26, 0xff, 0x36, 0x64, 0x00, 0x26, + 0xff, 0x36, 0x66, 0x00, 0x26, 0xff, 0x36, 0x7a, 0x00, 0x26, 0xff, 0x36, 0x7c, 0x00, 0x26, 0xff, + 0x36, 0x7e, 0x00, 0x26, 0xff, 0x36, 0x52, 0x00, 0x26, 0xff, 0x36, 0x6a, 0x00, 0x26, 0xff, 0x36, + 0x68, 0x00, 0xe8, 0x1b, 0xef, 0x26, 0x8f, 0x06, 0x68, 0x00, 0x26, 0x8f, 0x06, 0x6a, 0x00, 0x26, + 0x8f, 0x06, 0x52, 0x00, 0x26, 0x8f, 0x06, 0x7e, 0x00, 0x26, 0x8f, 0x06, 0x7c, 0x00, 0x26, 0x8f, + 0x06, 0x7a, 0x00, 0x26, 0x8f, 0x06, 0x66, 0x00, 0x26, 0x8f, 0x06, 0x64, 0x00, 0x26, 0x8f, 0x06, + 0x62, 0x00, 0x26, 0x8f, 0x06, 0x60, 0x00, 0x26, 0x8f, 0x06, 0x5e, 0x00, 0xe8, 0x96, 0xec, 0xe8, + 0xb5, 0x2e, 0xc6, 0x86, 0xb2, 0x02, 0x00, 0x8d, 0xbe, 0x16, 0x03, 0x8c, 0xd8, 0x8e, 0xc0, 0xab, + 0xab, 0xab, 0xf6, 0x86, 0xab, 0x02, 0x01, 0x74, 0x12, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x0e, 0x42, + 0x00, 0x04, 0xc6, 0x86, 0xb4, 0x02, 0x00, 0xc6, 0x46, 0x09, 0x1e, 0x8e, 0x46, 0x02, 0x26, 0xc7, + 0x06, 0x44, 0x00, 0xff, 0xfb, 0xf7, 0x86, 0x12, 0x01, 0x00, 0x02, 0x74, 0x10, 0xf7, 0x86, 0x20, + 0x01, 0x80, 0x00, 0x75, 0x08, 0xbe, 0xd3, 0x4c, 0xe8, 0x0b, 0xf4, 0xeb, 0x0d, 0x8e, 0x46, 0x02, + 0x33, 0xc0, 0x26, 0xa3, 0x64, 0x00, 0x26, 0xa3, 0x66, 0x00, 0xc3, 0x90, 0x33, 0xc0, 0x88, 0x86, + 0x5f, 0x02, 0x88, 0x86, 0x62, 0x02, 0x88, 0x86, 0x64, 0x02, 0x88, 0x86, 0x67, 0x02, 0x88, 0x86, + 0x6c, 0x02, 0xbe, 0x5b, 0x4c, 0xe8, 0xde, 0xf3, 0xc6, 0x86, 0xb2, 0x02, 0x01, 0x8e, 0x46, 0x02, + 0xf6, 0x06, 0x81, 0x5e, 0x01, 0x75, 0x08, 0x26, 0x83, 0x26, 0x42, 0x00, 0xfd, 0xeb, 0x08, 0xc6, + 0x86, 0x6d, 0x01, 0x01, 0xe8, 0x4a, 0x40, 0xc3, 0xc7, 0x86, 0x32, 0x02, 0x03, 0x00, 0xe8, 0xf4, + 0xeb, 0xc6, 0x86, 0x6d, 0x02, 0x01, 0xc6, 0x86, 0x6f, 0x02, 0x01, 0xe8, 0xe8, 0xf5, 0x8e, 0x46, + 0x02, 0x26, 0x81, 0x0e, 0x40, 0x00, 0x00, 0x1e, 0xf7, 0x86, 0xf6, 0x00, 0x00, 0x10, 0x74, 0x15, + 0xf7, 0x86, 0xf4, 0x00, 0x00, 0x40, 0x74, 0x0d, 0xf7, 0x86, 0xf6, 0x00, 0x20, 0x00, 0x74, 0x05, + 0xc6, 0x86, 0x78, 0x02, 0x01, 0x80, 0xbe, 0xfe, 0x00, 0x02, 0x75, 0x06, 0xbe, 0xc7, 0x4c, 0xe8, + 0x74, 0xf3, 0xe8, 0x31, 0xf9, 0xf7, 0x86, 0x12, 0x01, 0x00, 0x84, 0x74, 0x06, 0xc6, 0x46, 0x07, + 0x44, 0xeb, 0x06, 0xbe, 0x79, 0x4c, 0xe8, 0x5d, 0xf3, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x26, 0x44, + 0x00, 0x32, 0xfe, 0xe8, 0x8f, 0x06, 0xc3, 0x90, 0xc7, 0x86, 0x32, 0x02, 0x04, 0x00, 0x8e, 0x46, + 0x02, 0x26, 0x83, 0x26, 0x4c, 0x00, 0xfe, 0x26, 0x81, 0x0e, 0x32, 0x00, 0x00, 0x80, 0xc6, 0x86, + 0x6f, 0x02, 0x01, 0xc6, 0x86, 0x6d, 0x02, 0x00, 0xc6, 0x86, 0x7c, 0x02, 0x00, 0xe8, 0x66, 0xf5, + 0xe8, 0xe3, 0xf8, 0xb0, 0x00, 0xe8, 0x2a, 0x17, 0x33, 0xc0, 0x88, 0x86, 0x8d, 0x02, 0x88, 0x86, + 0x8e, 0x02, 0xc6, 0x86, 0x63, 0x01, 0x01, 0xc7, 0x86, 0x64, 0x01, 0xfc, 0x05, 0xc6, 0x86, 0x69, + 0x01, 0x02, 0x80, 0xbe, 0xfe, 0x00, 0x02, 0x75, 0x2c, 0xc6, 0x86, 0x68, 0x01, 0x02, 0xc7, 0x86, + 0x66, 0x01, 0x60, 0x04, 0xc6, 0x86, 0x76, 0x02, 0x01, 0xbe, 0xc7, 0x4c, 0xe8, 0xe7, 0xf2, 0xbe, + 0x19, 0x4c, 0xe8, 0xe1, 0xf2, 0xbe, 0x73, 0x4c, 0xe8, 0xdb, 0xf2, 0xbe, 0xc1, 0x4c, 0xe8, 0xd5, + 0xf2, 0xe8, 0x80, 0x14, 0xc3, 0xc6, 0x86, 0x68, 0x01, 0x02, 0xc7, 0x86, 0x66, 0x01, 0x20, 0x03, + 0x8e, 0x46, 0x02, 0x26, 0xc7, 0x06, 0x5c, 0x00, 0x00, 0x00, 0xbe, 0x19, 0x4c, 0xe8, 0xb6, 0xf2, + 0xbe, 0x73, 0x4c, 0xe8, 0xb0, 0xf2, 0x8b, 0xb6, 0x64, 0x01, 0xb9, 0xe8, 0x03, 0xe8, 0xf2, 0x10, + 0xc3, 0x90, 0xc7, 0x86, 0x32, 0x02, 0x05, 0x00, 0x80, 0xbe, 0xfe, 0x00, 0x02, 0x74, 0x08, 0xc6, + 0x86, 0x6d, 0x02, 0x01, 0xe8, 0xcf, 0xf4, 0xf6, 0x86, 0x72, 0x02, 0x01, 0x75, 0x04, 0xc6, 0x46, + 0x09, 0x16, 0xc6, 0x86, 0x73, 0x02, 0x01, 0xbe, 0x97, 0x4c, 0xe8, 0x79, 0xf2, 0xbe, 0x9d, 0x4c, + 0xe8, 0x73, 0xf2, 0xbe, 0x85, 0x4c, 0xe8, 0x6d, 0xf2, 0xbe, 0xaf, 0x4c, 0xe8, 0x67, 0xf2, 0xc7, + 0x86, 0xd6, 0x02, 0x01, 0x00, 0xc6, 0x86, 0x7a, 0x02, 0x01, 0xe8, 0xcd, 0x13, 0xc3, 0xc7, 0x86, + 0x32, 0x02, 0x07, 0x00, 0xc6, 0x86, 0x6c, 0x02, 0x01, 0xc6, 0x86, 0x60, 0x02, 0x00, 0xc6, 0x86, + 0x61, 0x02, 0x00, 0xbe, 0x4f, 0x4c, 0xe8, 0x3d, 0xf2, 0xf6, 0x86, 0x72, 0x02, 0x01, 0x75, 0x0d, + 0xc6, 0x86, 0x72, 0x02, 0x01, 0xb8, 0x00, 0x80, 0xe8, 0xef, 0x2b, 0xeb, 0x0a, 0x83, 0xa6, 0x0a, + 0x02, 0xdf, 0xc6, 0x86, 0x89, 0x02, 0x01, 0xc6, 0x86, 0x08, 0x01, 0x00, 0xe8, 0x81, 0xf7, 0xe8, + 0x30, 0xf7, 0xf6, 0x06, 0x81, 0x5e, 0x01, 0x74, 0x0a, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x26, 0x44, + 0x00, 0xff, 0xf7, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x0e, 0x4c, 0x00, 0x01, 0x26, 0x81, 0x26, 0x32, + 0x00, 0xff, 0x7f, 0x80, 0xbe, 0xfe, 0x00, 0x02, 0x74, 0x15, 0xe8, 0xdc, 0xf6, 0xc7, 0x86, 0xc8, + 0x01, 0x14, 0x00, 0xc7, 0x86, 0xcc, 0x02, 0x00, 0x00, 0xbe, 0x55, 0x4c, 0xe8, 0xd7, 0xf1, 0xc3, + 0xbe, 0xb5, 0x4c, 0xe8, 0xd0, 0xf1, 0xc6, 0x86, 0x78, 0x02, 0x00, 0xc6, 0x86, 0x74, 0x02, 0x00, + 0xc6, 0x86, 0xfe, 0x00, 0x02, 0xe8, 0xfe, 0xf3, 0xbe, 0xc7, 0x4c, 0xe8, 0xb8, 0xf1, 0xc3, 0x90, + 0xc6, 0x86, 0x6c, 0x02, 0x00, 0xc6, 0x46, 0x09, 0x1e, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, 0x4c, + 0x00, 0xfe, 0x26, 0x81, 0x0e, 0x32, 0x00, 0x00, 0x80, 0xc7, 0x86, 0xda, 0x02, 0x05, 0x00, 0xbe, + 0xbb, 0x4c, 0xe8, 0x91, 0xf1, 0xb0, 0x00, 0xe8, 0x98, 0x15, 0xe8, 0x53, 0x13, 0xc3, 0xb8, 0x00, + 0x80, 0xe8, 0x46, 0x2b, 0xc6, 0x86, 0x08, 0x01, 0x00, 0xe8, 0xe4, 0xf6, 0xe8, 0x93, 0xf6, 0x8e, + 0x46, 0x02, 0x26, 0xc7, 0x06, 0x68, 0x00, 0x18, 0x00, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x0e, 0x4c, + 0x00, 0x01, 0x26, 0x81, 0x26, 0x32, 0x00, 0xff, 0x7f, 0xc3, 0xc7, 0x86, 0x36, 0x02, 0x01, 0x00, + 0xc7, 0x86, 0xc6, 0x01, 0xff, 0xff, 0xc7, 0x86, 0xcc, 0x02, 0x00, 0x00, 0xc7, 0x86, 0xc8, 0x01, + 0x14, 0x00, 0x80, 0x7e, 0x07, 0x10, 0x74, 0x4b, 0xb0, 0x00, 0xe8, 0x45, 0x15, 0x80, 0x7e, 0x06, + 0x0e, 0x74, 0x02, 0xeb, 0x3e, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x0e, 0x4c, 0x00, 0x01, 0x26, 0x81, + 0x26, 0x32, 0x00, 0xff, 0x7f, 0x83, 0xa6, 0x0a, 0x02, 0xdf, 0xc6, 0x86, 0x89, 0x02, 0x01, 0xf6, + 0x86, 0x5f, 0x02, 0x01, 0x74, 0x1d, 0xf6, 0x86, 0x6a, 0x02, 0x01, 0x74, 0x16, 0xf6, 0x86, 0x67, + 0x02, 0x01, 0x75, 0x0f, 0xc6, 0x86, 0x67, 0x02, 0x01, 0xf6, 0x86, 0x58, 0x02, 0x01, 0x75, 0x03, + 0xe8, 0xfb, 0x0e, 0xc3, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, 0x4c, 0x00, 0xfe, 0x26, 0x81, 0x0e, + 0x32, 0x00, 0x00, 0x80, 0xc7, 0x86, 0x36, 0x02, 0x02, 0x00, 0xc6, 0x86, 0x6d, 0x02, 0x01, 0xe8, + 0x14, 0xf3, 0xe8, 0xab, 0xf5, 0xbe, 0x37, 0x4c, 0xe8, 0xcb, 0xf0, 0xe8, 0x8b, 0x0e, 0xc3, 0x90, + 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, 0x4c, 0x00, 0xfe, 0x26, 0x81, 0x0e, 0x32, 0x00, 0x00, 0x80, + 0xc7, 0x86, 0x36, 0x02, 0x03, 0x00, 0xc7, 0x86, 0xcc, 0x02, 0x00, 0x00, 0xc7, 0x86, 0xc8, 0x01, + 0x0a, 0x00, 0xf6, 0x86, 0x58, 0x02, 0x01, 0x74, 0x0f, 0xc6, 0x86, 0x58, 0x02, 0x00, 0x8e, 0x46, + 0x02, 0x26, 0x81, 0x26, 0x64, 0x00, 0xff, 0x7f, 0xc6, 0x86, 0x5e, 0x02, 0x00, 0xc6, 0x86, 0x6d, + 0x02, 0x01, 0xc6, 0x86, 0x6f, 0x02, 0x01, 0xe8, 0xbc, 0xf2, 0x81, 0xa6, 0x0a, 0x02, 0xff, 0x2f, + 0x83, 0x8e, 0x0a, 0x02, 0x20, 0xc6, 0x86, 0x89, 0x02, 0x01, 0xbe, 0x01, 0x4c, 0xe8, 0x66, 0xf0, + 0xbe, 0x25, 0x4c, 0xe8, 0x60, 0xf0, 0xc7, 0x86, 0xbc, 0x02, 0x01, 0x00, 0xc7, 0x86, 0xbe, 0x02, + 0x01, 0x00, 0xe8, 0xc3, 0x0d, 0xc3, 0xff, 0x86, 0x48, 0x02, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, + 0x4c, 0x00, 0xfe, 0x26, 0x81, 0x0e, 0x32, 0x00, 0x00, 0x80, 0xe8, 0xf9, 0xf5, 0xf6, 0x86, 0x63, + 0x02, 0x01, 0x75, 0x03, 0xe8, 0x67, 0x0d, 0xc3, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, 0x4c, 0x00, + 0xfe, 0x26, 0x81, 0x0e, 0x32, 0x00, 0x00, 0x80, 0x80, 0xbe, 0xab, 0x02, 0x01, 0x75, 0x20, 0xc6, + 0x86, 0x6c, 0x02, 0x00, 0xc6, 0x86, 0x6d, 0x02, 0x00, 0xc6, 0x86, 0x6f, 0x02, 0x00, 0xe8, 0x45, + 0xf2, 0xe8, 0xd6, 0xf1, 0xbe, 0x2b, 0x4c, 0xe8, 0xfc, 0xef, 0xe8, 0xd4, 0xf5, 0xeb, 0x59, 0xc6, + 0x86, 0x71, 0x02, 0x01, 0xf6, 0x86, 0x70, 0x02, 0x01, 0x75, 0x4d, 0xe8, 0xbc, 0xf1, 0xe8, 0x01, + 0xe9, 0xc6, 0x86, 0x6c, 0x02, 0x00, 0xc6, 0x86, 0x71, 0x02, 0x00, 0xbe, 0x2b, 0x4c, 0xe8, 0xd5, + 0xef, 0x8e, 0x46, 0x02, 0xf6, 0x06, 0x81, 0x5e, 0x01, 0x75, 0x08, 0x26, 0x83, 0x26, 0x42, 0x00, + 0xfd, 0xeb, 0x08, 0xc6, 0x86, 0x6d, 0x01, 0x01, 0xe8, 0x46, 0x3c, 0xe8, 0x78, 0xf5, 0x33, 0xc0, + 0x88, 0x86, 0x8d, 0x02, 0x88, 0x86, 0x8e, 0x02, 0xc6, 0x86, 0x63, 0x01, 0x01, 0xc7, 0x86, 0x64, + 0x01, 0xfc, 0x05, 0xc6, 0x86, 0x69, 0x01, 0x02, 0xc3, 0x90, 0xff, 0x86, 0x48, 0x02, 0x8e, 0x46, + 0x02, 0x26, 0x83, 0x26, 0x4c, 0x00, 0xfe, 0x26, 0x81, 0x0e, 0x32, 0x00, 0x00, 0x80, 0xe8, 0x45, + 0xf5, 0xc7, 0x86, 0xb8, 0x02, 0x02, 0x00, 0xc7, 0x86, 0xba, 0x02, 0x08, 0x00, 0xc6, 0x86, 0x58, + 0x02, 0x00, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x26, 0x64, 0x00, 0xff, 0x7f, 0xc6, 0x86, 0x6d, 0x02, + 0x00, 0xc6, 0x86, 0x6f, 0x02, 0x00, 0xe8, 0x9d, 0xf1, 0xf6, 0x86, 0x85, 0x02, 0x01, 0x75, 0x06, + 0xbe, 0xf5, 0x4b, 0xe8, 0x50, 0xef, 0x81, 0xa6, 0x0a, 0x02, 0xff, 0x6f, 0x81, 0x8e, 0x0a, 0x02, + 0x00, 0x40, 0xc6, 0x86, 0x89, 0x02, 0x01, 0xc3, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, 0x4c, 0x00, + 0xfe, 0x26, 0x81, 0x0e, 0x32, 0x00, 0x00, 0x80, 0x83, 0xbe, 0xca, 0x01, 0x00, 0x74, 0x0d, 0x8b, + 0x86, 0xca, 0x01, 0xc7, 0x86, 0xca, 0x01, 0x00, 0x00, 0xe8, 0xfc, 0x0f, 0xbe, 0x01, 0x4c, 0xe8, + 0x14, 0xef, 0xc3, 0x90, 0xc7, 0x86, 0x36, 0x02, 0x01, 0x00, 0xc7, 0x86, 0x34, 0x02, 0x02, 0x00, + 0xb0, 0x00, 0xe8, 0x0d, 0x13, 0x80, 0x7e, 0x06, 0x48, 0x75, 0x10, 0x8e, 0x46, 0x02, 0x26, 0x83, + 0x0e, 0x4c, 0x00, 0x01, 0x26, 0x81, 0x26, 0x32, 0x00, 0xff, 0x7f, 0xc3, 0xc7, 0x86, 0x34, 0x02, + 0x03, 0x00, 0xff, 0x86, 0x48, 0x02, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, 0x4c, 0x00, 0xfe, 0x26, + 0x81, 0x0e, 0x32, 0x00, 0x00, 0x80, 0xc6, 0x86, 0x6c, 0x02, 0x00, 0xc6, 0x86, 0x73, 0x02, 0x00, + 0xbe, 0x7f, 0x4c, 0xe8, 0xc0, 0xee, 0xbe, 0x8b, 0x4c, 0xe8, 0xba, 0xee, 0xbe, 0xa3, 0x4c, 0xe8, + 0xb4, 0xee, 0x80, 0xbe, 0xfe, 0x00, 0x02, 0x74, 0x08, 0xc6, 0x86, 0x6f, 0x02, 0x01, 0xe8, 0xe5, + 0xf0, 0x81, 0x8e, 0x0a, 0x02, 0x04, 0x50, 0xc6, 0x86, 0x89, 0x02, 0x01, 0x80, 0xbe, 0xfe, 0x00, + 0x02, 0x74, 0x0d, 0xf6, 0x86, 0x65, 0x02, 0x01, 0x74, 0x06, 0x81, 0x8e, 0x0a, 0x02, 0x00, 0x80, + 0xe8, 0xcd, 0x2f, 0xe8, 0xb8, 0x0b, 0xc3, 0x90, 0xc7, 0x86, 0x34, 0x02, 0x04, 0x00, 0xbe, 0x7f, + 0x4c, 0xe8, 0x72, 0xee, 0xbe, 0x8b, 0x4c, 0xe8, 0x6c, 0xee, 0x81, 0xa6, 0x0a, 0x02, 0xfb, 0x6f, + 0x81, 0x8e, 0x0a, 0x02, 0x00, 0x40, 0xc6, 0x86, 0x89, 0x02, 0x01, 0xc3, 0xc7, 0x86, 0x34, 0x02, + 0x05, 0x00, 0x80, 0xbe, 0xfe, 0x00, 0x02, 0x74, 0x1a, 0x8e, 0x46, 0x02, 0xf6, 0x06, 0x81, 0x5e, + 0x01, 0x75, 0x08, 0x26, 0x83, 0x26, 0x42, 0x00, 0xfd, 0xeb, 0x08, 0xc6, 0x86, 0x6d, 0x01, 0x01, + 0xe8, 0xbe, 0x3a, 0x81, 0xa6, 0x0a, 0x02, 0xfb, 0x2f, 0x83, 0x8e, 0x0a, 0x02, 0x20, 0xc6, 0x86, + 0x89, 0x02, 0x01, 0xe8, 0x5e, 0x01, 0xc3, 0x90, 0xc7, 0x86, 0x34, 0x02, 0x01, 0x00, 0xc3, 0x90, + 0xc3, 0x53, 0x50, 0x89, 0x86, 0x22, 0x01, 0x80, 0xbe, 0x62, 0x01, 0x01, 0x75, 0x0f, 0x50, 0xe8, + 0x43, 0xe6, 0xe8, 0x67, 0x26, 0xc6, 0x46, 0x07, 0x00, 0x58, 0xe9, 0xea, 0x00, 0xf6, 0x86, 0x08, + 0x01, 0x01, 0x74, 0x05, 0xe8, 0xb3, 0x27, 0xeb, 0x6c, 0x83, 0xf8, 0x10, 0x75, 0x08, 0x81, 0x8e, + 0x1e, 0x01, 0x00, 0x80, 0xeb, 0x5f, 0x83, 0x8e, 0x1e, 0x01, 0x02, 0x8b, 0x9e, 0x0a, 0x02, 0x83, + 0xf8, 0x01, 0x75, 0x04, 0x81, 0xcb, 0x00, 0x04, 0x83, 0xf8, 0x0c, 0x75, 0x04, 0x81, 0xcb, 0x00, + 0x08, 0x83, 0xf8, 0x0b, 0x75, 0x03, 0x83, 0xcb, 0x02, 0x83, 0xf8, 0x09, 0x75, 0x03, 0x83, 0xcb, + 0x04, 0x83, 0xf8, 0x0a, 0x75, 0x09, 0x81, 0xcb, 0x00, 0x01, 0x83, 0x8e, 0x1e, 0x01, 0x04, 0x83, + 0xf8, 0x06, 0x75, 0x03, 0x83, 0xcb, 0x01, 0x83, 0xf8, 0x0f, 0x74, 0x19, 0x83, 0xf8, 0x02, 0x75, + 0x03, 0x83, 0xcb, 0x08, 0x83, 0xf8, 0x03, 0x75, 0x03, 0x83, 0xcb, 0x08, 0x89, 0x9e, 0x0a, 0x02, + 0xc6, 0x86, 0x89, 0x02, 0x01, 0x8a, 0x4e, 0x06, 0x80, 0xbe, 0xfe, 0x00, 0x02, 0x72, 0x2e, 0xf7, + 0x86, 0x0a, 0x02, 0x08, 0x00, 0x75, 0x1c, 0x80, 0xf9, 0x48, 0x74, 0x11, 0xf6, 0x86, 0x72, 0x02, + 0x01, 0x74, 0x10, 0x80, 0xf9, 0x44, 0x74, 0x05, 0x80, 0xf9, 0x46, 0x75, 0x06, 0xc6, 0x46, 0x07, + 0x4c, 0xeb, 0x44, 0xc6, 0x46, 0x07, 0x12, 0xc6, 0x46, 0x09, 0x1e, 0xeb, 0x3a, 0xc6, 0x46, 0x07, + 0x12, 0xc6, 0x46, 0x09, 0x1e, 0xf6, 0x86, 0xac, 0x02, 0x01, 0x74, 0x1a, 0x8e, 0x46, 0x02, 0xf6, + 0x06, 0x81, 0x5e, 0x01, 0x75, 0x08, 0x26, 0x83, 0x26, 0x42, 0x00, 0xfd, 0xeb, 0x08, 0xc6, 0x86, + 0x6d, 0x01, 0x01, 0xe8, 0xab, 0x39, 0xf6, 0x86, 0xaa, 0x02, 0x01, 0x75, 0x02, 0xeb, 0x08, 0xc6, + 0x46, 0x07, 0x10, 0xc6, 0x46, 0x09, 0x00, 0x58, 0x5b, 0xc3, 0x8e, 0x46, 0x02, 0x26, 0xf7, 0x06, + 0x40, 0x00, 0x02, 0x00, 0x74, 0x0b, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, 0x40, 0x00, 0xfd, 0xeb, + 0x09, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x0e, 0x40, 0x00, 0x02, 0xc3, 0x90, 0xc7, 0x86, 0x32, 0x02, + 0x01, 0x00, 0xc3, 0xb9, 0x01, 0x01, 0x38, 0xc8, 0x75, 0x19, 0x8b, 0xb6, 0xf6, 0x00, 0x81, 0xe6, + 0x00, 0xc0, 0x81, 0xfe, 0x00, 0x80, 0x75, 0x0b, 0xc6, 0x86, 0x5a, 0x02, 0x01, 0xbe, 0x07, 0x4c, + 0xe8, 0xc3, 0xec, 0xc3, 0xc3, 0x50, 0x80, 0xbe, 0xfe, 0x00, 0x02, 0x74, 0x18, 0xf7, 0x86, 0xf6, + 0x00, 0x00, 0x10, 0x74, 0x05, 0xc6, 0x86, 0xfe, 0x00, 0x01, 0xc6, 0x86, 0x95, 0x02, 0x01, 0xe8, + 0x05, 0x00, 0xe8, 0xe1, 0xee, 0x58, 0xc3, 0xc7, 0x86, 0x98, 0x02, 0x00, 0x00, 0xc7, 0x86, 0x9c, + 0x02, 0x05, 0x00, 0xc6, 0x86, 0x96, 0x02, 0x00, 0xa1, 0x2a, 0x5d, 0x89, 0x86, 0x9a, 0x02, 0x40, + 0x89, 0x86, 0x9e, 0x02, 0xc3, 0xc6, 0x86, 0x95, 0x02, 0x00, 0xc6, 0x86, 0x96, 0x02, 0x00, 0xc3, + 0x50, 0x53, 0xf6, 0x86, 0x96, 0x02, 0x01, 0x75, 0x1c, 0xa1, 0x2a, 0x5d, 0x8b, 0x9e, 0x9a, 0x02, + 0x3b, 0xc3, 0x74, 0x11, 0x43, 0x3b, 0xc3, 0x74, 0x0c, 0x83, 0xc0, 0x04, 0x89, 0x86, 0x9a, 0x02, + 0xc6, 0x86, 0x96, 0x02, 0x01, 0x5b, 0x58, 0xc3, 0xc7, 0x86, 0x98, 0x02, 0x00, 0x00, 0xa1, 0x2a, + 0x5d, 0x83, 0xc0, 0x04, 0x89, 0x86, 0x9a, 0x02, 0xc6, 0x86, 0x96, 0x02, 0x01, 0xc3, 0xa1, 0x2a, + 0x5d, 0x3b, 0x86, 0x9e, 0x02, 0x74, 0x3a, 0x40, 0x3b, 0x86, 0x9e, 0x02, 0x74, 0x33, 0x48, 0xf6, + 0x86, 0x96, 0x02, 0x01, 0x74, 0x42, 0x3b, 0x86, 0x9a, 0x02, 0x75, 0x3c, 0x81, 0xbe, 0x98, 0x02, + 0x04, 0x01, 0x75, 0x0a, 0x80, 0xbe, 0xfe, 0x00, 0x00, 0x75, 0x03, 0xe9, 0xa5, 0x00, 0x83, 0xbe, + 0x98, 0x02, 0x04, 0x75, 0x11, 0x80, 0x7e, 0x06, 0x04, 0x75, 0x09, 0xe8, 0xaa, 0xff, 0xe9, 0xa4, + 0x00, 0xe9, 0xa1, 0x00, 0xeb, 0x0c, 0x80, 0x7e, 0x06, 0x04, 0x75, 0x06, 0xe8, 0x26, 0xff, 0xe9, + 0x93, 0x00, 0xe8, 0x60, 0xff, 0xe9, 0x8d, 0x00, 0x8e, 0x46, 0x02, 0x26, 0xa1, 0x54, 0x00, 0x25, + 0x24, 0x01, 0x8b, 0xd8, 0x33, 0x86, 0x98, 0x02, 0x75, 0x02, 0xeb, 0x79, 0xa9, 0x04, 0x00, 0x74, + 0x15, 0xe8, 0x4c, 0xff, 0xf7, 0xc3, 0x04, 0x00, 0x74, 0x07, 0xc6, 0x86, 0x97, 0x02, 0x01, 0xeb, + 0x05, 0xc6, 0x86, 0x97, 0x02, 0x00, 0xa9, 0x00, 0x01, 0x74, 0x14, 0xf7, 0xc3, 0x00, 0x01, 0x74, + 0x0b, 0xf7, 0xc3, 0x20, 0x00, 0x75, 0x20, 0xe8, 0x26, 0xff, 0xeb, 0x03, 0xe8, 0x21, 0xff, 0xa9, + 0x20, 0x00, 0x74, 0x2d, 0xf7, 0xc3, 0x20, 0x00, 0x74, 0x34, 0xf6, 0x86, 0x96, 0x02, 0x01, 0x74, + 0x30, 0xf7, 0xc3, 0x00, 0x01, 0x74, 0x2a, 0xf7, 0x86, 0xf6, 0x00, 0x00, 0x10, 0x74, 0x14, 0x80, + 0xbe, 0xfe, 0x00, 0x00, 0x74, 0x0d, 0xe8, 0x1f, 0xff, 0xc6, 0x86, 0xfe, 0x00, 0x00, 0xe8, 0xa5, + 0xed, 0xeb, 0x0e, 0xe8, 0xdf, 0xfe, 0xb8, 0x0e, 0x00, 0xe8, 0x45, 0xfd, 0xeb, 0x03, 0xe8, 0xdf, + 0xfe, 0x89, 0x9e, 0x98, 0x02, 0xc3, 0x55, 0x1e, 0x06, 0x33, 0xed, 0x8e, 0xdd, 0x8b, 0x2e, 0x48, + 0x5d, 0x8e, 0x46, 0x02, 0xeb, 0x00, 0x60, 0xfa, 0x8e, 0x46, 0x02, 0x26, 0xa1, 0x44, 0x00, 0x89, + 0x86, 0x18, 0x01, 0xc7, 0x86, 0x1c, 0x01, 0x01, 0x00, 0x8e, 0x46, 0x02, 0x26, 0xa1, 0x46, 0x00, + 0x89, 0x86, 0x1a, 0x01, 0xb8, 0x07, 0x00, 0x8e, 0x46, 0x02, 0x26, 0xa3, 0x46, 0x00, 0xb8, 0xff, + 0xff, 0x8e, 0x46, 0x02, 0x26, 0xa3, 0x44, 0x00, 0xfb, 0x8e, 0x46, 0x02, 0x26, 0xa1, 0x48, 0x00, + 0x8b, 0xd8, 0x81, 0xe3, 0xff, 0xfc, 0x8e, 0x46, 0x02, 0x26, 0x89, 0x1e, 0x48, 0x00, 0x8e, 0x46, + 0x02, 0x26, 0x8b, 0x1e, 0x4a, 0x00, 0x8e, 0x46, 0x02, 0x26, 0x89, 0x1e, 0x4a, 0x00, 0x50, 0xb0, + 0xa0, 0xe6, 0x10, 0x58, 0xa9, 0x00, 0x08, 0x74, 0x0f, 0xf6, 0x06, 0x81, 0x5e, 0x01, 0x74, 0x05, + 0xe8, 0xe8, 0x35, 0xeb, 0x03, 0xe8, 0x74, 0x30, 0xa9, 0x00, 0x01, 0x75, 0x22, 0xf7, 0x86, 0xa8, + 0x02, 0x01, 0x00, 0x75, 0x21, 0xa9, 0xcd, 0x01, 0x74, 0x1c, 0x80, 0xbe, 0x6a, 0x01, 0x0a, 0x72, + 0x0e, 0xc7, 0x86, 0xa8, 0x02, 0x01, 0x00, 0x81, 0x8e, 0x18, 0x01, 0xcd, 0x00, 0xeb, 0x07, 0xfe, + 0x86, 0x6a, 0x01, 0xe8, 0x6c, 0x32, 0xa9, 0x00, 0x04, 0x74, 0x29, 0xf7, 0x86, 0x0a, 0x01, 0x01, + 0x00, 0x75, 0x21, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x0e, 0x44, 0x00, 0x00, 0x04, 0xe8, 0x9f, 0xe8, + 0xc7, 0x44, 0x02, 0x01, 0x00, 0x89, 0x44, 0x04, 0xc7, 0x86, 0x0a, 0x01, 0x01, 0x00, 0x8d, 0x7e, + 0x16, 0xe8, 0xa9, 0xe8, 0xa9, 0x00, 0x10, 0x74, 0x27, 0x80, 0xbe, 0x0c, 0x01, 0x01, 0x74, 0x20, + 0xf6, 0x86, 0xb8, 0x01, 0x01, 0x75, 0x19, 0xe8, 0x75, 0xe8, 0xf7, 0xc6, 0xff, 0xff, 0x74, 0x10, + 0xc7, 0x44, 0x02, 0x03, 0x00, 0xc6, 0x86, 0xb8, 0x01, 0x01, 0x8d, 0x7e, 0x16, 0xe8, 0x7d, 0xe8, + 0xa9, 0x00, 0x20, 0x74, 0x61, 0x80, 0xbe, 0x0c, 0x01, 0x01, 0x75, 0x07, 0xc6, 0x86, 0x0d, 0x01, + 0x01, 0xeb, 0x53, 0x50, 0x26, 0xa1, 0x78, 0x00, 0x26, 0x8b, 0x1e, 0x70, 0x00, 0x3b, 0xc3, 0x77, + 0x10, 0x2b, 0x86, 0xa8, 0x15, 0x8b, 0xc8, 0x8b, 0x86, 0xaa, 0x15, 0x2b, 0xc3, 0x03, 0xc1, 0xeb, + 0x02, 0x2b, 0xc3, 0x3d, 0x00, 0x02, 0x77, 0x0d, 0xe8, 0xe6, 0xef, 0xc6, 0x86, 0xbc, 0x01, 0x01, + 0x83, 0x8e, 0xe6, 0x02, 0x40, 0x58, 0xf6, 0x86, 0xb9, 0x01, 0x01, 0x75, 0x19, 0xe8, 0x0f, 0xe8, + 0xf7, 0xc6, 0xff, 0xff, 0x74, 0x10, 0xc7, 0x44, 0x02, 0x04, 0x00, 0xc6, 0x86, 0xb9, 0x01, 0x01, + 0x8d, 0x7e, 0x16, 0xe8, 0x17, 0xe8, 0xfa, 0x8b, 0x86, 0x18, 0x01, 0x8e, 0x46, 0x02, 0x26, 0xa3, + 0x44, 0x00, 0xc7, 0x86, 0x1c, 0x01, 0x00, 0x00, 0x8b, 0x86, 0x1a, 0x01, 0x8e, 0x46, 0x02, 0x26, + 0xa3, 0x46, 0x00, 0x61, 0x07, 0x1f, 0x5d, 0xcf, 0x50, 0x25, 0x00, 0x02, 0x8e, 0x46, 0x02, 0x26, + 0xa3, 0x48, 0x00, 0x8b, 0x86, 0xcc, 0x02, 0x40, 0x89, 0x86, 0xcc, 0x02, 0x83, 0xf8, 0x01, 0x75, + 0x08, 0x56, 0xbe, 0x55, 0x4c, 0xe8, 0x9e, 0xe9, 0x5e, 0x3b, 0x86, 0xc8, 0x01, 0x76, 0x0a, 0x80, + 0xbe, 0x65, 0x02, 0x01, 0x74, 0x03, 0xe8, 0x3e, 0x32, 0x58, 0xc3, 0x8d, 0x71, 0x18, 0x8b, 0x49, + 0x14, 0x86, 0xcd, 0x83, 0xe9, 0x04, 0x7e, 0x1b, 0x33, 0xc0, 0x03, 0xf0, 0x8a, 0x04, 0x0a, 0xc0, + 0x74, 0x11, 0x3a, 0x54, 0x01, 0x74, 0x17, 0x32, 0xe4, 0x3c, 0xff, 0x74, 0x0a, 0x2b, 0xc8, 0x72, + 0x02, 0x77, 0xe7, 0x33, 0xc0, 0xf9, 0xc3, 0x8b, 0x44, 0x02, 0x86, 0xc4, 0xeb, 0xef, 0x0a, 0xe4, + 0x75, 0xf1, 0x38, 0xf0, 0x75, 0xed, 0x8d, 0x74, 0x02, 0xf8, 0xc3, 0x8c, 0xd8, 0x8e, 0xc0, 0x8b, + 0xb6, 0xa8, 0x15, 0x8b, 0xbe, 0xaa, 0x15, 0x47, 0xa5, 0xa5, 0xa5, 0x8b, 0x4f, 0x04, 0x83, 0xc1, + 0x07, 0x80, 0xe1, 0xfe, 0x8b, 0xc7, 0x2b, 0xc3, 0x2b, 0xc8, 0x76, 0x0a, 0x81, 0xf9, 0x00, 0x01, + 0x73, 0x09, 0xd1, 0xe9, 0xf3, 0xa5, 0x8b, 0x07, 0xe9, 0xd1, 0x01, 0xb9, 0x19, 0x00, 0xf3, 0xa5, + 0x33, 0xff, 0xf6, 0x47, 0x0e, 0x80, 0x74, 0x0e, 0x8b, 0x47, 0x14, 0x83, 0xe0, 0x1f, 0x74, 0x0f, + 0xa8, 0x01, 0x75, 0x0b, 0x8b, 0xf8, 0xba, 0x80, 0x09, 0x68, 0xe9, 0x28, 0xe9, 0x65, 0x05, 0xe9, + 0x9b, 0x02, 0xc3, 0x80, 0x7f, 0x17, 0x02, 0x75, 0xf9, 0x50, 0x56, 0x8b, 0xb6, 0x1a, 0x06, 0x8b, + 0x04, 0x5e, 0x3b, 0x86, 0xc6, 0x01, 0x74, 0x07, 0x89, 0x86, 0xc6, 0x01, 0x58, 0xeb, 0x3d, 0x58, + 0xeb, 0x12, 0x8a, 0x4f, 0x07, 0x80, 0xe1, 0x3f, 0x74, 0xd8, 0x8a, 0xe9, 0x86, 0x8e, 0xfe, 0x01, + 0x38, 0xcd, 0x75, 0x18, 0x57, 0x51, 0x8d, 0xbe, 0x00, 0x02, 0x8d, 0x77, 0x0e, 0x8c, 0xd9, 0x8e, + 0xc1, 0xb9, 0x03, 0x00, 0xf3, 0xa7, 0x75, 0x06, 0x59, 0x5f, 0xeb, 0xb6, 0x57, 0x51, 0x8d, 0xbe, + 0x00, 0x02, 0x8d, 0x77, 0x0e, 0xb9, 0x03, 0x00, 0xf3, 0xa5, 0x59, 0x5f, 0xeb, 0x0d, 0x8b, 0x7e, + 0x04, 0x58, 0xc3, 0xf7, 0x86, 0xf6, 0x00, 0x01, 0x00, 0x74, 0xf7, 0x80, 0x7e, 0x06, 0x0e, 0x74, + 0x08, 0x80, 0x7e, 0x06, 0x48, 0x74, 0x02, 0xeb, 0xe9, 0x50, 0x8c, 0xd8, 0x8e, 0xc0, 0x8b, 0x07, + 0xa9, 0x00, 0x40, 0x75, 0xdc, 0x0d, 0x00, 0x40, 0x89, 0x07, 0xe8, 0x8a, 0x00, 0x8b, 0x4f, 0x04, + 0x83, 0xc1, 0x03, 0x80, 0xe1, 0xfe, 0x89, 0x7e, 0x04, 0x8b, 0xbe, 0xc2, 0x01, 0x3b, 0xfe, 0x72, + 0x11, 0x8d, 0x86, 0xa8, 0x08, 0x05, 0xff, 0x00, 0x2b, 0xc7, 0x3b, 0xc1, 0x7d, 0x0a, 0x8d, 0xbe, + 0xa8, 0x08, 0x2b, 0xf7, 0x3b, 0xf1, 0x7c, 0xa6, 0x8b, 0xd7, 0x8c, 0xd8, 0x8e, 0xc0, 0x33, 0xc0, + 0x8b, 0xf3, 0xd1, 0xe9, 0x83, 0xc7, 0x02, 0x49, 0xad, 0xf3, 0xa5, 0x8b, 0xcf, 0xc7, 0x05, 0x00, + 0x00, 0x8b, 0xfa, 0x89, 0x4d, 0x02, 0x51, 0x8b, 0x4d, 0x04, 0x83, 0xe9, 0x04, 0x89, 0x4d, 0x04, + 0x59, 0x89, 0x05, 0x8d, 0x86, 0xa8, 0x08, 0x3b, 0xf8, 0x75, 0x0e, 0x8b, 0x86, 0xc0, 0x01, 0x3b, + 0x86, 0xc2, 0x01, 0x75, 0x1c, 0x89, 0xbe, 0xc0, 0x01, 0x89, 0x8e, 0xc2, 0x01, 0x8b, 0x7e, 0x04, + 0xc7, 0x86, 0xc4, 0x01, 0x00, 0x00, 0xb9, 0x40, 0x60, 0x8e, 0xc1, 0xe8, 0xd1, 0x22, 0xe9, 0x4d, + 0xff, 0x97, 0x89, 0x45, 0x02, 0xeb, 0xe2, 0x8b, 0xb6, 0xc0, 0x01, 0xf7, 0x86, 0xc4, 0x01, 0x01, + 0x00, 0x75, 0x0f, 0x81, 0x3c, 0x00, 0x80, 0x75, 0x05, 0x8b, 0x74, 0x02, 0xeb, 0xf5, 0x89, 0xb6, + 0xc0, 0x01, 0xc3, 0xf7, 0x07, 0x01, 0x09, 0x74, 0x03, 0xe9, 0x61, 0x01, 0xf7, 0x07, 0x00, 0x10, + 0x75, 0x34, 0x68, 0xf8, 0x27, 0xe9, 0xae, 0x26, 0xa8, 0x02, 0x74, 0x22, 0x80, 0x7e, 0x08, 0x00, + 0x75, 0x1c, 0x80, 0xbe, 0x62, 0x02, 0x00, 0x74, 0x15, 0x24, 0x28, 0x3c, 0x28, 0x75, 0x0f, 0xf6, + 0x47, 0x0e, 0x80, 0x75, 0x64, 0x81, 0x8e, 0xe6, 0x02, 0x80, 0x00, 0xeb, 0x5c, 0x90, 0xeb, 0x59, + 0xe9, 0x38, 0xfe, 0x90, 0xeb, 0xd2, 0xeb, 0x34, 0x8b, 0x47, 0x14, 0x83, 0xe0, 0x1f, 0x74, 0x06, + 0xa8, 0x01, 0x8b, 0xf8, 0x74, 0x4b, 0xe9, 0x14, 0x01, 0x50, 0x8b, 0x9e, 0xb2, 0x01, 0x8b, 0x07, + 0xa9, 0x00, 0x80, 0x75, 0x02, 0x58, 0xc3, 0xa9, 0x00, 0x20, 0x74, 0x0b, 0xff, 0x86, 0x40, 0x02, + 0x8b, 0x4f, 0x04, 0x01, 0x8e, 0x42, 0x02, 0xe8, 0x92, 0x03, 0x75, 0xc4, 0xf7, 0x86, 0xb6, 0x01, + 0x00, 0x02, 0x75, 0x11, 0xa9, 0x01, 0x09, 0x75, 0x40, 0x80, 0x7e, 0x07, 0x10, 0x74, 0x3a, 0x80, + 0x7e, 0x07, 0x12, 0x74, 0x34, 0xa8, 0x28, 0x75, 0xab, 0x33, 0xff, 0xf6, 0x47, 0x0e, 0x80, 0x75, + 0xa7, 0x8b, 0x47, 0x04, 0x83, 0xf8, 0x12, 0x77, 0x05, 0x33, 0xc0, 0xe9, 0x99, 0x01, 0x83, 0xe8, + 0x12, 0x2b, 0xc7, 0x83, 0xf8, 0x04, 0x7c, 0x38, 0x8b, 0x49, 0x16, 0x88, 0xae, 0x08, 0x02, 0x51, + 0x80, 0xe1, 0xf0, 0x80, 0xf9, 0x00, 0x74, 0x04, 0x59, 0xe9, 0xa1, 0x00, 0x59, 0x0b, 0xff, 0x74, + 0x0f, 0xf6, 0xc1, 0x0f, 0x74, 0xf3, 0x80, 0xf9, 0x33, 0x74, 0xee, 0x80, 0xf9, 0x03, 0x74, 0xe9, + 0x86, 0xc4, 0x39, 0x41, 0x14, 0x86, 0xc4, 0x75, 0x03, 0xeb, 0x0d, 0x90, 0xe9, 0x53, 0x01, 0x90, + 0xe9, 0x54, 0x01, 0x90, 0xe9, 0x5c, 0x01, 0x90, 0xf6, 0x86, 0x95, 0x02, 0x01, 0x74, 0x03, 0xe8, + 0x43, 0xfa, 0x80, 0xfd, 0x17, 0x77, 0x11, 0x80, 0xfd, 0x01, 0x74, 0xe8, 0x80, 0xfd, 0x09, 0x74, + 0xe3, 0x80, 0xfd, 0x0a, 0x74, 0xde, 0xeb, 0x11, 0x80, 0xfd, 0x20, 0x72, 0xd7, 0x80, 0xfd, 0x29, + 0x77, 0xd2, 0x80, 0xfd, 0x21, 0x74, 0xcd, 0xeb, 0xa0, 0x80, 0xfd, 0x10, 0x76, 0x02, 0xeb, 0x05, + 0x80, 0xfd, 0x0e, 0x73, 0x1d, 0x53, 0x8b, 0xd9, 0xc1, 0xeb, 0x08, 0x80, 0xe1, 0x0f, 0x3a, 0x8f, + 0x72, 0x04, 0x74, 0x23, 0x83, 0xfb, 0x0b, 0x74, 0x19, 0x83, 0xfb, 0x0c, 0x74, 0x14, 0x5b, 0xe9, + 0xfa, 0x00, 0x80, 0xe1, 0x0f, 0x80, 0xf9, 0x00, 0x74, 0xf5, 0x80, 0xf9, 0x03, 0x74, 0xf0, 0xe9, + 0xa1, 0x01, 0x80, 0xf9, 0x08, 0x75, 0xe7, 0x5b, 0xe9, 0x98, 0x01, 0x5b, 0x5f, 0x8b, 0x9e, 0xb2, + 0x01, 0xf7, 0x86, 0xf6, 0x00, 0x01, 0x00, 0x74, 0x28, 0x80, 0x7e, 0x06, 0x0e, 0x74, 0x06, 0x80, + 0x7e, 0x06, 0x48, 0x75, 0x1c, 0xf7, 0x86, 0x12, 0x01, 0x00, 0x08, 0x74, 0x06, 0x68, 0x1d, 0x29, + 0xe9, 0x5f, 0xfd, 0xf7, 0x86, 0x12, 0x01, 0x80, 0x00, 0x74, 0x06, 0x68, 0x1d, 0x29, 0xe9, 0x32, + 0xfd, 0x8b, 0x5f, 0x02, 0x89, 0x9e, 0xb2, 0x01, 0x8b, 0xc3, 0x83, 0xe8, 0x02, 0x3b, 0x86, 0xa8, + 0x15, 0x77, 0x04, 0x8b, 0x86, 0xaa, 0x15, 0x8e, 0x46, 0x02, 0x53, 0x26, 0x8b, 0x1e, 0x78, 0x00, + 0x81, 0x7f, 0xfc, 0xde, 0xad, 0x75, 0x07, 0x81, 0x7f, 0xfe, 0xbe, 0xaf, 0x74, 0x05, 0xc6, 0x86, + 0xbd, 0x01, 0x01, 0x5b, 0x26, 0xa3, 0x78, 0x00, 0x26, 0xa1, 0x78, 0x00, 0x93, 0xc7, 0x47, 0xfc, + 0xde, 0xad, 0xc7, 0x47, 0xfe, 0xbe, 0xaf, 0x93, 0xfa, 0x8b, 0x07, 0xa9, 0x00, 0x80, 0x74, 0x17, + 0xfb, 0xff, 0x86, 0x3c, 0x01, 0x83, 0xbe, 0x3c, 0x01, 0x05, 0x77, 0x2b, 0x8a, 0x4e, 0x09, 0x3a, + 0x4e, 0x08, 0x75, 0x23, 0xe9, 0x60, 0xfe, 0xc6, 0x86, 0xb9, 0x01, 0x00, 0xfb, 0xf6, 0x86, 0xbc, + 0x01, 0x01, 0x74, 0x08, 0xc6, 0x86, 0xbc, 0x01, 0x00, 0xe8, 0x6a, 0xeb, 0xc7, 0x86, 0x3c, 0x01, + 0x00, 0x00, 0x58, 0xc3, 0xe9, 0x46, 0xff, 0xe8, 0xb5, 0xe3, 0xf7, 0xc6, 0xff, 0xff, 0x74, 0xd7, + 0xc7, 0x44, 0x02, 0x04, 0x00, 0xc6, 0x86, 0xb9, 0x01, 0x01, 0x8d, 0x7e, 0x16, 0xe8, 0xbd, 0xe3, + 0xeb, 0xcb, 0xba, 0x80, 0x02, 0xeb, 0x1d, 0xba, 0x80, 0x01, 0xeb, 0x18, 0xba, 0x80, 0x04, 0xeb, + 0x13, 0x5f, 0x5b, 0xf7, 0x86, 0x12, 0x01, 0x00, 0x10, 0x74, 0x06, 0x68, 0x1d, 0x29, 0xe9, 0xd2, + 0xfc, 0xba, 0x80, 0x03, 0x33, 0xc0, 0x8e, 0xc0, 0x68, 0xe9, 0x28, 0xe9, 0xc6, 0x01, 0x33, 0xd2, + 0x32, 0xed, 0x8a, 0x4d, 0xff, 0x89, 0x55, 0x02, 0x83, 0xc7, 0x05, 0xe2, 0xf8, 0xf6, 0x86, 0x63, + 0x02, 0x01, 0x74, 0x38, 0x80, 0x7e, 0x08, 0x0a, 0x75, 0x0b, 0xc6, 0x46, 0x09, 0x04, 0xc6, 0x86, + 0x63, 0x02, 0x00, 0xeb, 0x24, 0x80, 0x7e, 0x08, 0x06, 0x75, 0x21, 0xc6, 0x86, 0x63, 0x02, 0x00, + 0xc6, 0x86, 0x6d, 0x02, 0x01, 0xe8, 0x5e, 0xe7, 0xbe, 0x25, 0x4c, 0xe8, 0x18, 0xe5, 0x50, 0x53, + 0x33, 0xc0, 0x8e, 0xc0, 0xe8, 0x47, 0x02, 0x5b, 0x58, 0xbb, 0x00, 0x00, 0x8b, 0xf8, 0x8b, 0xf3, + 0x5b, 0x57, 0x53, 0x68, 0xe7, 0x28, 0xff, 0x66, 0x12, 0xeb, 0x87, 0x8b, 0xc7, 0x8b, 0xbf, 0x8a, + 0x04, 0x0b, 0xff, 0x78, 0xf4, 0x74, 0xa6, 0x03, 0xfd, 0xf6, 0x45, 0x01, 0x80, 0x75, 0x02, 0xeb, + 0x8d, 0xe9, 0x21, 0x01, 0xe9, 0x03, 0x01, 0x5f, 0x5b, 0xba, 0x80, 0x08, 0xe9, 0x75, 0xff, 0x8b, + 0x54, 0x02, 0x86, 0xd6, 0x83, 0xc6, 0x02, 0xb0, 0x04, 0xeb, 0x51, 0x5f, 0x5b, 0xba, 0x80, 0x05, + 0xe9, 0x61, 0xff, 0x53, 0x8d, 0x71, 0x18, 0x32, 0xff, 0x8a, 0xdd, 0xd1, 0xe3, 0x83, 0xe8, 0x04, + 0x0b, 0xc0, 0x74, 0xb7, 0x89, 0x46, 0x04, 0x57, 0x8b, 0xbf, 0x8a, 0x04, 0x0b, 0xff, 0x74, 0xc4, + 0x79, 0x03, 0xe9, 0x2c, 0xff, 0x03, 0xfd, 0x8e, 0xc7, 0x33, 0xc0, 0x32, 0xed, 0x8a, 0x4d, 0xff, + 0x89, 0x45, 0x02, 0x83, 0xc7, 0x05, 0xe2, 0xf8, 0x33, 0xd2, 0x03, 0xf2, 0x8a, 0x4c, 0x01, 0x8a, + 0x14, 0x0a, 0xd2, 0x74, 0xb6, 0x80, 0xfa, 0xff, 0x74, 0xa5, 0xb0, 0x02, 0x29, 0x56, 0x04, 0x72, + 0xaa, 0x0a, 0xc9, 0x78, 0x92, 0x8a, 0xe1, 0x80, 0xe1, 0x3f, 0x8c, 0xc7, 0x8a, 0x6d, 0xff, 0xeb, + 0x12, 0x80, 0x7d, 0x04, 0xff, 0x74, 0x15, 0xeb, 0x92, 0xe9, 0x7b, 0xff, 0xfe, 0xcd, 0x74, 0xf9, + 0x83, 0xc7, 0x05, 0x3a, 0x0d, 0x75, 0xf5, 0x3a, 0x55, 0x04, 0x75, 0xe5, 0x8d, 0x44, 0x02, 0x87, + 0x45, 0x02, 0x0b, 0xc0, 0x74, 0x09, 0xf6, 0x45, 0x01, 0x80, 0x75, 0xdd, 0x89, 0x45, 0x02, 0x83, + 0x7e, 0x04, 0x00, 0x75, 0xa5, 0x33, 0xc0, 0x8c, 0xc6, 0xf6, 0x44, 0x01, 0x80, 0x74, 0x0e, 0x39, + 0x44, 0x02, 0x74, 0x60, 0x83, 0xc6, 0x05, 0xf6, 0x44, 0x01, 0x80, 0x75, 0xf2, 0xf6, 0x86, 0x63, + 0x02, 0x01, 0x74, 0x36, 0x80, 0x7e, 0x08, 0x0a, 0x75, 0x0b, 0xc6, 0x86, 0x63, 0x02, 0x00, 0xc6, + 0x46, 0x09, 0x04, 0xeb, 0x22, 0x80, 0x7e, 0x08, 0x06, 0x75, 0x1f, 0xc6, 0x86, 0x63, 0x02, 0x00, + 0xc6, 0x86, 0x6d, 0x02, 0x01, 0xe8, 0x2e, 0xe6, 0xbe, 0x25, 0x4c, 0xe8, 0xe8, 0xe3, 0x33, 0xc0, + 0x8e, 0xc0, 0x53, 0xe8, 0x18, 0x01, 0x5b, 0xbb, 0x00, 0x00, 0x89, 0x5e, 0x04, 0x8b, 0xf3, 0x5f, + 0x5b, 0x33, 0xc0, 0x8e, 0xc0, 0x3b, 0xb6, 0xba, 0x01, 0x73, 0x06, 0x68, 0xe9, 0x28, 0xff, 0x66, + 0x12, 0xe9, 0x69, 0xfd, 0x5f, 0x5b, 0xba, 0x80, 0x07, 0xe9, 0x58, 0xfe, 0x56, 0x57, 0x50, 0x33, + 0xc0, 0x8e, 0xc0, 0x8b, 0xb6, 0xa8, 0x15, 0x8b, 0xbe, 0xaa, 0x15, 0x83, 0xc7, 0x01, 0xa5, 0xa5, + 0xa5, 0x8b, 0xc3, 0x03, 0x47, 0x04, 0x8b, 0xbe, 0xaa, 0x15, 0x3b, 0xc7, 0x7f, 0x02, 0x32, 0xc0, + 0x58, 0x5f, 0x5e, 0xc3, 0x8c, 0xd8, 0x8e, 0xc0, 0xf6, 0x41, 0x16, 0x0f, 0x74, 0x60, 0x89, 0x96, + 0xee, 0x02, 0x81, 0xfa, 0x80, 0x02, 0x74, 0x13, 0xba, 0x09, 0x04, 0xe8, 0xed, 0xf9, 0x72, 0x0b, + 0xad, 0x86, 0xe0, 0x89, 0x86, 0x18, 0x02, 0x86, 0xe0, 0xeb, 0x06, 0x8b, 0x86, 0x18, 0x02, 0x86, + 0xe0, 0x89, 0x86, 0xea, 0x02, 0x8c, 0xd8, 0x8e, 0xc0, 0x8d, 0x4d, 0x22, 0x57, 0x53, 0xe8, 0x2b, + 0x06, 0x5a, 0x5f, 0x72, 0x29, 0x57, 0xe8, 0x26, 0x00, 0xb8, 0x00, 0x0e, 0xab, 0x47, 0xb0, 0x00, + 0xaa, 0x8d, 0xb6, 0xe8, 0x02, 0xa5, 0xa5, 0x8d, 0xb6, 0xec, 0x02, 0xa5, 0xa5, 0x55, 0x8b, 0xea, + 0x8a, 0x47, 0x16, 0x8a, 0x66, 0x17, 0xab, 0x5d, 0xe8, 0xa1, 0x06, 0x8b, 0xda, 0x5f, 0xc3, 0x55, + 0x8b, 0xea, 0x8a, 0x43, 0x16, 0xc0, 0xe0, 0x04, 0x88, 0x41, 0x16, 0xc7, 0x47, 0x06, 0xe0, 0x00, + 0x83, 0xe9, 0x06, 0x89, 0x4f, 0x04, 0x0b, 0xff, 0x75, 0x18, 0x8d, 0x76, 0x0e, 0x8d, 0x7f, 0x08, + 0x8c, 0xd8, 0x8e, 0xc0, 0xa5, 0xa5, 0xa5, 0x8b, 0xd5, 0x5d, 0x8d, 0xb6, 0x00, 0x03, 0xa5, 0xa5, + 0xa5, 0xc3, 0x8b, 0xcf, 0xd1, 0xe9, 0x8d, 0x76, 0x0e, 0x8d, 0x7f, 0x08, 0x8c, 0xd8, 0x8e, 0xc0, + 0xad, 0x24, 0x7f, 0xab, 0xa5, 0xa5, 0x8b, 0xd5, 0x5d, 0x56, 0x8d, 0xb6, 0x00, 0x03, 0xad, 0x0c, + 0x80, 0xab, 0xa5, 0xa5, 0x5e, 0xad, 0x80, 0xcc, 0x80, 0xab, 0x49, 0xf3, 0xa5, 0xc3, 0x8b, 0x86, + 0x0c, 0x03, 0x86, 0xe0, 0x89, 0x86, 0x14, 0x02, 0x89, 0x86, 0x06, 0x02, 0x8c, 0xd8, 0x8e, 0xc0, + 0x8d, 0xbe, 0x00, 0x02, 0x8d, 0xb6, 0x00, 0x03, 0xb9, 0x03, 0x00, 0xf3, 0xa5, 0xb9, 0x2a, 0x00, + 0xe8, 0x5f, 0x05, 0x72, 0xd8, 0x8d, 0xb6, 0xf2, 0x02, 0x8b, 0xfb, 0x8c, 0xd8, 0x8e, 0xc0, 0xd1, + 0xe9, 0xf3, 0xa5, 0xe9, 0x0d, 0x06, 0xeb, 0x6a, 0xb9, 0x26, 0x00, 0xe8, 0x44, 0x05, 0x72, 0xf6, + 0x8d, 0xb6, 0x1c, 0x03, 0x8b, 0xfb, 0x8c, 0xd8, 0x8e, 0xc0, 0xd1, 0xe9, 0xf3, 0xa5, 0xe9, 0xf2, + 0x05, 0x8d, 0x7f, 0x08, 0x8b, 0x4f, 0x04, 0x83, 0xc1, 0x03, 0x80, 0xe1, 0xfe, 0x57, 0xe8, 0x21, + 0x05, 0x5f, 0x8b, 0xd7, 0x72, 0x22, 0x83, 0xe9, 0x08, 0x8d, 0x7f, 0x04, 0x8c, 0xd8, 0x8e, 0xc0, + 0x8b, 0xc1, 0xab, 0x8b, 0x86, 0x22, 0x03, 0xab, 0x8b, 0xf2, 0xd1, 0xe9, 0x49, 0xf3, 0xa5, 0xbe, + 0x01, 0x4c, 0xe8, 0x41, 0xe2, 0xe9, 0xbb, 0x05, 0xc3, 0xb9, 0x26, 0x00, 0xe8, 0xf3, 0x04, 0x72, + 0x11, 0x8c, 0xd8, 0x8e, 0xc0, 0x8d, 0xb6, 0x42, 0x03, 0x8b, 0xfb, 0xd1, 0xe9, 0xf3, 0xa5, 0xe9, + 0xa1, 0x05, 0xc3, 0xb9, 0x26, 0x00, 0xe8, 0xf3, 0x04, 0x72, 0xf7, 0x8d, 0xb6, 0x68, 0x03, 0x8b, + 0xfb, 0x8c, 0xd8, 0x8e, 0xc0, 0xd1, 0xe9, 0xf3, 0xa5, 0xc6, 0x86, 0x67, 0x02, 0x01, 0x80, 0xbe, + 0x87, 0x02, 0x01, 0x75, 0x03, 0xe9, 0x74, 0x05, 0x68, 0x6d, 0x31, 0xe9, 0x6e, 0x05, 0xb9, 0x26, + 0x00, 0xe8, 0xc8, 0x04, 0x72, 0xcc, 0x8d, 0xb6, 0x8e, 0x03, 0x8b, 0xfb, 0x8c, 0xd8, 0x8e, 0xc0, + 0xd1, 0xe9, 0xf3, 0xa5, 0xc6, 0x86, 0x67, 0x02, 0x01, 0x80, 0xbe, 0x87, 0x02, 0x01, 0x75, 0x03, + 0xe9, 0x49, 0x05, 0x68, 0x6d, 0x31, 0xe9, 0x43, 0x05, 0xb9, 0x18, 0x00, 0xe8, 0x9d, 0x04, 0x72, + 0xa1, 0x8d, 0xb6, 0xb4, 0x03, 0x8b, 0xfb, 0x8c, 0xd8, 0x8e, 0xc0, 0xd1, 0xe9, 0xf3, 0xa5, 0xe9, + 0x2a, 0x05, 0x83, 0xc1, 0x1c, 0x56, 0x57, 0x52, 0xe8, 0x81, 0x04, 0x5a, 0x5f, 0x5e, 0x72, 0x53, + 0x56, 0x8c, 0xd8, 0x8e, 0xc0, 0x83, 0xe9, 0x08, 0x8b, 0xc1, 0x8d, 0x7f, 0x04, 0xab, 0xba, 0xe0, + 0x00, 0x8b, 0xc2, 0xab, 0x8d, 0xb6, 0xd4, 0x03, 0xa5, 0xa5, 0xa5, 0x8d, 0xb6, 0x00, 0x03, 0x80, + 0xbe, 0x62, 0x01, 0x01, 0x75, 0x04, 0x8d, 0xb6, 0x00, 0x01, 0xa5, 0xa5, 0xa5, 0x83, 0xe9, 0x0e, + 0x80, 0xbe, 0x63, 0x01, 0x02, 0x75, 0x03, 0x83, 0xe9, 0x04, 0x8b, 0xc1, 0x86, 0xe0, 0xab, 0xb8, + 0x00, 0x08, 0xab, 0x83, 0xe9, 0x04, 0xb8, 0xff, 0x26, 0xab, 0x8b, 0xc1, 0x86, 0xe0, 0xab, 0x5e, + 0xe9, 0xc9, 0x04, 0xeb, 0x69, 0xf6, 0x86, 0x8b, 0x02, 0x01, 0x75, 0x03, 0xe9, 0xfb, 0x04, 0x83, + 0xc1, 0x1a, 0x57, 0x52, 0xe8, 0x15, 0x04, 0x5a, 0x5f, 0x72, 0x53, 0x8c, 0xd8, 0x8e, 0xc0, 0x83, + 0xe9, 0x08, 0x8b, 0xc1, 0x8d, 0x7f, 0x04, 0xab, 0xb9, 0x07, 0x00, 0x8d, 0xb6, 0xec, 0x03, 0xf3, + 0xa5, 0x83, 0xe8, 0x0e, 0x8b, 0xc8, 0x86, 0xe0, 0xab, 0xb8, 0x00, 0x08, 0xab, 0x83, 0xe9, 0x04, + 0x8b, 0xc1, 0xb4, 0x26, 0xab, 0xbe, 0x80, 0x03, 0xb9, 0x20, 0x00, 0xf3, 0xa5, 0xc6, 0x86, 0x8b, + 0x02, 0x00, 0xe9, 0x77, 0x04, 0xb9, 0x44, 0x00, 0xe8, 0xd1, 0x03, 0x72, 0x11, 0x8d, 0xb6, 0x00, + 0x04, 0x8b, 0xfb, 0x8c, 0xd8, 0x8e, 0xc0, 0xd1, 0xe9, 0xf3, 0xa5, 0xe8, 0x5e, 0x04, 0xc3, 0xb9, + 0x36, 0x00, 0xe8, 0xb7, 0x03, 0x72, 0xf7, 0xff, 0x86, 0x56, 0x02, 0x8d, 0xb6, 0xd2, 0x05, 0x8b, + 0xfb, 0x8c, 0xd8, 0x8e, 0xc0, 0xd1, 0xe9, 0xf3, 0xa5, 0x33, 0xc0, 0x8d, 0xbe, 0xec, 0x05, 0xab, + 0xab, 0xaa, 0x8d, 0xbe, 0xf4, 0x05, 0xab, 0xab, 0xaa, 0xe9, 0x30, 0x04, 0x8d, 0x4d, 0x3a, 0x57, + 0x53, 0xe8, 0x88, 0x03, 0x5a, 0x5f, 0x72, 0x5b, 0x57, 0xe8, 0x83, 0xfd, 0x8c, 0xd8, 0x8e, 0xc0, + 0xb8, 0x00, 0x26, 0xab, 0x47, 0xb0, 0x22, 0xaa, 0x8d, 0xb6, 0xe8, 0x02, 0xa5, 0xa5, 0x8d, 0xb6, + 0x0e, 0x03, 0xa5, 0xa5, 0xa5, 0x8d, 0xb6, 0x14, 0x03, 0xa5, 0xa5, 0xa5, 0xa5, 0x8d, 0xb6, 0x44, + 0x04, 0xa5, 0xa5, 0x8d, 0xb6, 0x48, 0x04, 0xa5, 0xa5, 0xa5, 0x8d, 0xb6, 0x4e, 0x04, 0xa5, 0x53, + 0x8c, 0xdb, 0x8e, 0x46, 0x02, 0x26, 0xa1, 0x66, 0x00, 0xe8, 0x67, 0xdd, 0x8e, 0xc3, 0xab, 0x8e, + 0x46, 0x02, 0x26, 0xa1, 0x64, 0x00, 0xe8, 0x5a, 0xdd, 0x8e, 0xc3, 0xab, 0x5b, 0xe8, 0xcc, 0x03, + 0x8b, 0xda, 0x5f, 0xc3, 0x8d, 0x4d, 0x38, 0x57, 0x53, 0xe8, 0x20, 0x03, 0x5a, 0x5f, 0x72, 0xf3, + 0x57, 0xe8, 0x1b, 0xfd, 0x8c, 0xd8, 0x8e, 0xc0, 0xb8, 0x00, 0x24, 0xab, 0x47, 0xb0, 0x23, 0xaa, + 0x8d, 0xb6, 0xe8, 0x02, 0xa5, 0xa5, 0x8d, 0xb6, 0x18, 0x04, 0xb9, 0x06, 0x00, 0xf3, 0xa5, 0x8d, + 0xb6, 0x5c, 0x04, 0xa5, 0xa5, 0xa5, 0xa5, 0x8d, 0xb6, 0x54, 0x04, 0xa5, 0xa5, 0xa5, 0xa5, 0xe8, + 0x8a, 0x03, 0x8b, 0xda, 0x5f, 0xc3, 0x8d, 0x4d, 0x3e, 0x57, 0x53, 0xe8, 0xde, 0x02, 0x5a, 0x5f, + 0x72, 0x64, 0x57, 0xe8, 0xd9, 0xfc, 0x8c, 0xd8, 0x8e, 0xc0, 0xb8, 0x00, 0x2a, 0xab, 0x47, 0xb0, + 0x24, 0xaa, 0x8d, 0xb6, 0xe8, 0x02, 0xa5, 0xa5, 0x8d, 0xb6, 0x2c, 0x04, 0xb9, 0x0a, 0x00, 0xf3, + 0xa5, 0x8d, 0xb6, 0x4e, 0x04, 0xa5, 0x53, 0x8c, 0xdb, 0x8e, 0x46, 0x02, 0x26, 0xa1, 0x66, 0x00, + 0xe8, 0xd0, 0xdc, 0x8e, 0xc3, 0xab, 0x8e, 0x46, 0x02, 0x26, 0xa1, 0x64, 0x00, 0xe8, 0xc3, 0xdc, + 0x8e, 0xc3, 0xab, 0x5b, 0x8c, 0xd8, 0x8e, 0xc0, 0x8d, 0xb6, 0x64, 0x04, 0xa5, 0x8b, 0x86, 0xfc, + 0x01, 0x86, 0xc4, 0xab, 0x8d, 0xb6, 0x68, 0x04, 0xa5, 0x8b, 0x86, 0xfa, 0x01, 0x86, 0xc4, 0xab, + 0xe8, 0x19, 0x03, 0x8b, 0xda, 0x5f, 0xc3, 0xb9, 0x3a, 0x00, 0xe8, 0x6f, 0x02, 0x72, 0xf7, 0x8d, + 0xb6, 0x6c, 0x04, 0x8b, 0xfb, 0x8c, 0xd8, 0x8e, 0xc0, 0xd1, 0xe9, 0xf3, 0xa5, 0x80, 0xbe, 0x87, + 0x02, 0x01, 0x75, 0x03, 0xe9, 0xf5, 0x02, 0x68, 0x6d, 0x31, 0xe9, 0xef, 0x02, 0xb9, 0x26, 0x00, + 0xe8, 0x49, 0x02, 0x72, 0xd1, 0xff, 0x86, 0x52, 0x02, 0x8d, 0xb6, 0xa6, 0x04, 0x8b, 0xfb, 0x8c, + 0xd8, 0x8e, 0xc0, 0xd1, 0xe9, 0xf3, 0xa5, 0x80, 0xbe, 0x87, 0x02, 0x01, 0x75, 0x03, 0xe9, 0xcb, + 0x02, 0x68, 0x6d, 0x31, 0xe9, 0xc5, 0x02, 0xb9, 0x20, 0x00, 0xe8, 0x1f, 0x02, 0x72, 0xa7, 0x8d, + 0xb6, 0xf2, 0x01, 0x8d, 0xbe, 0xe6, 0x04, 0x8c, 0xd8, 0x8e, 0xc0, 0xa5, 0xa5, 0xa5, 0x8d, 0xb6, + 0xcc, 0x04, 0x8b, 0xfb, 0xd1, 0xe9, 0xf3, 0xa5, 0x80, 0xbe, 0x87, 0x02, 0x01, 0x75, 0x03, 0xe9, + 0x9a, 0x02, 0x68, 0x6d, 0x31, 0xe9, 0x94, 0x02, 0x89, 0x86, 0x06, 0x05, 0x86, 0xc4, 0x89, 0x86, + 0x12, 0x02, 0xb9, 0x2a, 0x00, 0xe8, 0xe4, 0x01, 0x72, 0x18, 0x8d, 0xb6, 0xec, 0x04, 0x8b, 0xfb, + 0x8c, 0xd8, 0x8e, 0xc0, 0xd1, 0xe9, 0xf3, 0xa5, 0x80, 0xbe, 0x87, 0x02, 0x01, 0x75, 0x07, 0xe9, + 0x6a, 0x02, 0xe9, 0x5a, 0x01, 0x90, 0x68, 0x6d, 0x31, 0xe9, 0x60, 0x02, 0xb9, 0x18, 0x00, 0xe8, + 0xba, 0x01, 0x73, 0x03, 0xe9, 0x3f, 0xff, 0x8d, 0xb6, 0x8a, 0x05, 0x8b, 0xfb, 0x8c, 0xd8, 0x8e, + 0xc0, 0xd1, 0xe9, 0xf3, 0xa5, 0xe9, 0x44, 0x02, 0xb9, 0x24, 0x00, 0xe8, 0x9e, 0x01, 0x73, 0x03, + 0xe9, 0x23, 0xff, 0x8b, 0x86, 0x34, 0x05, 0x86, 0xc4, 0x89, 0x86, 0x2a, 0x02, 0x8d, 0xb6, 0x16, + 0x05, 0x8b, 0xfb, 0x8c, 0xd8, 0x8e, 0xc0, 0xd1, 0xe9, 0xf3, 0xa5, 0xe9, 0x1e, 0x02, 0xb9, 0x1c, + 0x00, 0xe8, 0x78, 0x01, 0x73, 0x03, 0xe9, 0xfd, 0xfe, 0x8d, 0xb6, 0x3a, 0x05, 0x8b, 0xfb, 0x8c, + 0xd8, 0x8e, 0xc0, 0xd1, 0xe9, 0xf3, 0xa5, 0xe9, 0x02, 0x02, 0xb9, 0x18, 0x00, 0xe8, 0x5c, 0x01, + 0x73, 0x03, 0xe9, 0xe1, 0xfe, 0x8d, 0xb6, 0x56, 0x05, 0x8b, 0xfb, 0x8c, 0xd8, 0x8e, 0xc0, 0xd1, + 0xe9, 0xf3, 0xa5, 0xe9, 0xe6, 0x01, 0xb9, 0x1c, 0x00, 0x50, 0xe8, 0x3f, 0x01, 0x58, 0x73, 0x03, + 0xe9, 0xc3, 0xfe, 0x8d, 0xb6, 0x6e, 0x05, 0x8b, 0xfb, 0x8c, 0xd8, 0x8e, 0xc0, 0xd1, 0xe9, 0xf3, + 0xa5, 0xe9, 0xc8, 0x01, 0xb9, 0x18, 0x00, 0xe8, 0x22, 0x01, 0x73, 0x03, 0xe9, 0xa7, 0xfe, 0x8d, + 0xb6, 0xa2, 0x05, 0x8b, 0xfb, 0x8c, 0xd8, 0x8e, 0xc0, 0xd1, 0xe9, 0xf3, 0xa5, 0xe9, 0xac, 0x01, + 0xb9, 0x18, 0x00, 0xe8, 0x06, 0x01, 0x73, 0x03, 0xe9, 0x8b, 0xfe, 0x8d, 0xb6, 0xba, 0x05, 0x8b, + 0xfb, 0x8c, 0xd8, 0x8e, 0xc0, 0xd1, 0xe9, 0xf3, 0xa5, 0xe9, 0x90, 0x01, 0x8b, 0x4f, 0x04, 0x53, + 0xe8, 0xe9, 0x00, 0x5e, 0x72, 0x17, 0x89, 0x9e, 0x3c, 0x02, 0x8b, 0xfb, 0x8c, 0xd8, 0x8e, 0xc0, + 0xd1, 0xe9, 0xf3, 0xa5, 0xc7, 0x86, 0x3e, 0x02, 0x01, 0x00, 0xe9, 0x6f, 0x01, 0xe9, 0x61, 0x12, + 0xb9, 0x18, 0x00, 0xe8, 0xc6, 0x00, 0x8d, 0xb6, 0xb4, 0x03, 0x8b, 0xfb, 0x8c, 0xd8, 0x8e, 0xc0, + 0xd1, 0xe9, 0xf3, 0xa5, 0x33, 0xc0, 0x8d, 0x7f, 0x08, 0xb9, 0x06, 0x00, 0xf3, 0xab, 0xe9, 0x4b, + 0x01, 0x53, 0x8b, 0x9e, 0xb0, 0x01, 0x8b, 0xb6, 0xae, 0x01, 0x3b, 0xde, 0x74, 0x15, 0x8a, 0x47, + 0x17, 0xf6, 0x44, 0x0e, 0x80, 0x75, 0x0e, 0x38, 0x44, 0x17, 0x75, 0x09, 0x8b, 0x74, 0x02, 0x89, + 0xb6, 0xae, 0x01, 0xeb, 0x1a, 0x8b, 0xfe, 0x8b, 0x74, 0x02, 0x3b, 0xde, 0x74, 0x11, 0xf6, 0x44, + 0x0e, 0x80, 0x75, 0xf1, 0x38, 0x44, 0x17, 0x75, 0xec, 0x8b, 0x44, 0x02, 0x89, 0x45, 0x02, 0x5b, + 0xc3, 0xe8, 0x89, 0xd8, 0xc6, 0x86, 0x87, 0x02, 0x00, 0x8d, 0xb6, 0xa6, 0x01, 0x8d, 0xbe, 0xac, + 0x01, 0x8c, 0xd8, 0x8e, 0xc0, 0xa5, 0xa5, 0xa5, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x0e, 0x40, 0x00, + 0x00, 0x16, 0x8d, 0x9e, 0xa8, 0x12, 0x89, 0x9e, 0xa8, 0x01, 0x89, 0x9e, 0xaa, 0x01, 0xc7, 0x07, + 0x30, 0x80, 0xc7, 0x47, 0x04, 0x00, 0x00, 0x83, 0xc3, 0x08, 0x89, 0x9e, 0xa6, 0x01, 0xc6, 0x86, + 0x8a, 0x02, 0x01, 0x83, 0xc1, 0x02, 0xeb, 0x4a, 0x8b, 0x9e, 0xac, 0x01, 0x8b, 0xb6, 0xae, 0x01, + 0xeb, 0x29, 0x80, 0xbe, 0x87, 0x02, 0x01, 0x74, 0xa8, 0x8d, 0x96, 0xa8, 0x15, 0x8d, 0xbe, 0xa8, + 0x12, 0x8b, 0x9e, 0xa6, 0x01, 0x8b, 0xb6, 0xa8, 0x01, 0xeb, 0x18, 0x90, 0x8b, 0x9e, 0xa6, 0x01, + 0x8b, 0xb6, 0xa8, 0x01, 0x80, 0xbe, 0x87, 0x02, 0x01, 0x75, 0xcd, 0x8d, 0x96, 0xa8, 0x12, 0x8d, + 0xbe, 0xa8, 0x09, 0x83, 0xc1, 0x02, 0x3b, 0xde, 0x73, 0x17, 0x8b, 0xc6, 0x2b, 0xc3, 0x3b, 0xc1, + 0x72, 0x25, 0xc7, 0x07, 0x00, 0x00, 0x83, 0xc3, 0x02, 0xc7, 0x07, 0x00, 0x00, 0x83, 0xe9, 0x02, + 0xc3, 0x8b, 0xc2, 0x2b, 0xc3, 0x3b, 0xc1, 0x72, 0x02, 0xeb, 0xe7, 0x8b, 0xdf, 0x8b, 0xc6, 0x2b, + 0xc3, 0x3b, 0xc1, 0x72, 0x02, 0xeb, 0xdb, 0x3b, 0xb6, 0xae, 0x01, 0x74, 0x11, 0x80, 0xbe, 0x62, + 0x02, 0x01, 0x75, 0x05, 0x83, 0x8e, 0xe6, 0x02, 0x02, 0xe8, 0x82, 0x01, 0xf9, 0xc3, 0x8b, 0x74, + 0x02, 0x89, 0xb6, 0xae, 0x01, 0x3b, 0xdd, 0x74, 0x04, 0x3b, 0xde, 0x77, 0xc4, 0x8b, 0xc6, 0x2b, + 0xc3, 0x3b, 0xc1, 0x72, 0xe9, 0x89, 0xb6, 0xae, 0x01, 0xeb, 0xa7, 0x8b, 0xb6, 0xb0, 0x01, 0x89, + 0x5c, 0x02, 0x80, 0x4c, 0x05, 0x80, 0x89, 0x9e, 0xb0, 0x01, 0x03, 0x5f, 0x04, 0x83, 0xc3, 0x06, + 0x89, 0x9e, 0xac, 0x01, 0xc6, 0x86, 0x8c, 0x02, 0x01, 0xc3, 0xeb, 0xdf, 0x80, 0xbe, 0x87, 0x02, + 0x01, 0x75, 0xf7, 0x8e, 0x46, 0x02, 0x26, 0xa1, 0x4c, 0x00, 0x0c, 0x02, 0x80, 0xbe, 0x8a, 0x02, + 0x01, 0x74, 0x45, 0x8b, 0xb6, 0xaa, 0x01, 0x89, 0x5c, 0x02, 0x80, 0x4c, 0x05, 0x80, 0x83, 0xc8, + 0x04, 0x25, 0xff, 0xf7, 0x8e, 0x46, 0x02, 0x26, 0xa3, 0x4c, 0x00, 0x89, 0x9e, 0xaa, 0x01, 0x03, + 0x5f, 0x04, 0x83, 0xc3, 0x06, 0x89, 0x9e, 0xa6, 0x01, 0xc3, 0x8e, 0x46, 0x02, 0x26, 0xa1, 0x4c, + 0x00, 0x0c, 0x02, 0x8b, 0x9e, 0xaa, 0x01, 0xc7, 0x07, 0x00, 0x00, 0x26, 0x89, 0x1e, 0x6c, 0x00, + 0x83, 0xc8, 0x08, 0x25, 0xff, 0xf7, 0xeb, 0xcc, 0x8e, 0x46, 0x02, 0x89, 0x9e, 0xa8, 0x01, 0x26, + 0x89, 0x1e, 0x6c, 0x00, 0x83, 0xc8, 0x08, 0x25, 0xff, 0xf7, 0xc6, 0x86, 0x8a, 0x02, 0x00, 0xeb, + 0xb3, 0x53, 0xf6, 0x86, 0x87, 0x02, 0x01, 0x74, 0x13, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, 0x4c, + 0x00, 0xfe, 0x26, 0x81, 0x0e, 0x32, 0x00, 0x00, 0x80, 0xe8, 0x65, 0xfe, 0x5b, 0xc3, 0xe9, 0xac, + 0x00, 0x90, 0x80, 0xbe, 0x87, 0x02, 0x00, 0x75, 0xf5, 0x50, 0xfa, 0x8d, 0xb6, 0xac, 0x01, 0x8d, + 0xbe, 0xa6, 0x01, 0x8c, 0xd8, 0x8e, 0xc0, 0xa5, 0xa5, 0xa5, 0x80, 0xbe, 0x63, 0x01, 0x01, 0x75, + 0x16, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x0e, 0x40, 0x00, 0x00, 0x02, 0x8e, 0x46, 0x02, 0x26, 0x81, + 0x26, 0x40, 0x00, 0xff, 0xe3, 0xeb, 0x27, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x0e, 0x40, 0x00, 0x00, + 0x02, 0xf6, 0x86, 0xaf, 0x02, 0x01, 0x74, 0x0c, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x0e, 0x40, 0x00, + 0x00, 0x1c, 0xeb, 0x0a, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x26, 0x40, 0x00, 0xff, 0xe3, 0x33, 0xc0, + 0x89, 0x86, 0xae, 0x01, 0x40, 0x88, 0x86, 0x87, 0x02, 0x58, 0xf6, 0x86, 0x58, 0x02, 0x01, 0x74, + 0x0a, 0xe8, 0x5c, 0xe0, 0x8e, 0x46, 0x02, 0x26, 0xa2, 0x5c, 0x00, 0x8b, 0x9e, 0xa8, 0x01, 0x83, + 0x3f, 0x00, 0x74, 0x03, 0xe8, 0x90, 0x00, 0xf6, 0x86, 0x8c, 0x02, 0x01, 0x74, 0x19, 0x8e, 0x46, + 0x02, 0x26, 0x89, 0x1e, 0x6c, 0x00, 0xc6, 0x86, 0x8c, 0x02, 0x00, 0x8e, 0x46, 0x02, 0x26, 0x83, + 0x0e, 0x4c, 0x00, 0x08, 0xfb, 0xeb, 0x06, 0xc6, 0x86, 0x8a, 0x02, 0x01, 0xfb, 0xc3, 0x56, 0x8d, + 0xb6, 0xa8, 0x09, 0xc7, 0x86, 0xa6, 0x01, 0xb0, 0x09, 0x01, 0xae, 0xa6, 0x01, 0x89, 0xb6, 0xa8, + 0x01, 0x89, 0xb6, 0xaa, 0x01, 0xc7, 0x04, 0x30, 0x80, 0xc7, 0x44, 0x04, 0x00, 0x00, 0xc6, 0x86, + 0x8a, 0x02, 0x01, 0x5e, 0xc3, 0xff, 0xa4, 0x1c, 0x04, 0x80, 0xbe, 0xfe, 0x00, 0x02, 0x74, 0x32, + 0x80, 0x7e, 0x06, 0x46, 0x75, 0x1c, 0xf6, 0x86, 0x7a, 0x02, 0x01, 0x74, 0x15, 0xff, 0x8e, 0xd6, + 0x02, 0x75, 0x0f, 0xc6, 0x86, 0x7a, 0x02, 0x00, 0xc6, 0x86, 0x6f, 0x02, 0x00, 0xe8, 0x36, 0xdd, + 0xeb, 0x10, 0x83, 0xfe, 0x10, 0x74, 0x07, 0x83, 0xfe, 0x0e, 0x74, 0x02, 0xeb, 0x04, 0xff, 0xa4, + 0x1c, 0x04, 0xc3, 0x8b, 0x9e, 0xa8, 0x01, 0x8b, 0x07, 0xfb, 0xa9, 0x00, 0x80, 0x75, 0x46, 0x8b, + 0x77, 0x17, 0x81, 0xe6, 0xff, 0x00, 0xf7, 0x86, 0x3e, 0x02, 0x01, 0x00, 0x74, 0x1b, 0x3b, 0x9e, + 0x3c, 0x02, 0x75, 0x15, 0x89, 0x86, 0xcc, 0x15, 0x50, 0x53, 0x56, 0xe8, 0x23, 0x0f, 0x5e, 0x5b, + 0x58, 0xc7, 0x86, 0x3e, 0x02, 0x00, 0x00, 0xeb, 0x18, 0xf7, 0x46, 0x14, 0xff, 0xff, 0x74, 0x11, + 0x83, 0xfe, 0x2a, 0x77, 0x0c, 0xd1, 0xe6, 0x68, 0xad, 0x34, 0xff, 0x66, 0x14, 0x5b, 0x83, 0xc4, + 0x02, 0x81, 0x0f, 0x00, 0x80, 0xfa, 0xf6, 0x47, 0x05, 0x80, 0x74, 0x1a, 0x8b, 0x5f, 0x02, 0x89, + 0x9e, 0xa8, 0x01, 0xf7, 0x07, 0x10, 0x00, 0x74, 0x0d, 0xff, 0x86, 0x3a, 0x01, 0x83, 0xbe, 0x3a, + 0x01, 0x06, 0x77, 0x0f, 0xeb, 0x91, 0xc6, 0x86, 0xb8, 0x01, 0x00, 0xc7, 0x86, 0x3a, 0x01, 0x00, + 0x00, 0xfb, 0xc3, 0xe8, 0x79, 0xd8, 0xf7, 0xc6, 0xff, 0xff, 0x74, 0xea, 0xc7, 0x44, 0x02, 0x03, + 0x00, 0xc6, 0x86, 0xb8, 0x01, 0x01, 0x8d, 0x7e, 0x16, 0xe8, 0x81, 0xd8, 0xeb, 0xdd, 0xa9, 0x20, + 0x00, 0x75, 0x74, 0xf7, 0x47, 0x04, 0x00, 0x80, 0x74, 0x05, 0xe8, 0x08, 0x00, 0x72, 0x9f, 0x53, + 0x68, 0xa9, 0x34, 0xff, 0xe6, 0x8a, 0x47, 0x17, 0x8b, 0xfb, 0x8b, 0x7d, 0x02, 0x38, 0x45, 0x17, + 0x74, 0x09, 0xf7, 0x45, 0x04, 0x00, 0x80, 0x75, 0xf1, 0xf8, 0xc3, 0xf9, 0xc3, 0xa9, 0x20, 0x00, + 0x75, 0x05, 0xa9, 0x00, 0x10, 0x75, 0x0c, 0x33, 0xc9, 0xa9, 0x05, 0x00, 0x75, 0x0a, 0xa9, 0x0a, + 0x04, 0x74, 0x05, 0x8b, 0x0d, 0xe3, 0x01, 0x49, 0x89, 0x0d, 0xc3, 0x53, 0x8b, 0x4f, 0x04, 0x80, + 0xe5, 0x7f, 0x89, 0x4f, 0x04, 0x83, 0xc1, 0x06, 0xe8, 0xc1, 0xfc, 0x72, 0x19, 0x5e, 0x56, 0x8b, + 0xfb, 0xd1, 0xe9, 0x83, 0xe9, 0x02, 0x83, 0xc6, 0x04, 0x83, 0xc7, 0x04, 0x8c, 0xd8, 0x8e, 0xc0, + 0xf3, 0xa5, 0xe8, 0x47, 0xfd, 0xf8, 0x5b, 0xc3, 0x80, 0x7e, 0x08, 0x02, 0x75, 0x0b, 0xa9, 0x20, + 0x00, 0x75, 0x06, 0xc7, 0x86, 0xcc, 0x01, 0x01, 0x00, 0xc3, 0x8a, 0x56, 0x06, 0x80, 0xfa, 0x02, + 0x74, 0x17, 0x80, 0xfa, 0x44, 0x74, 0x12, 0x83, 0x7e, 0x08, 0x08, 0x75, 0x18, 0x80, 0xfa, 0x0c, + 0x74, 0x07, 0x80, 0xfa, 0x0e, 0x74, 0x02, 0xeb, 0x0b, 0xa9, 0x20, 0x00, 0x75, 0x06, 0xb8, 0x01, + 0x00, 0xe8, 0x7d, 0xeb, 0xc3, 0xb9, 0x05, 0x00, 0xa9, 0x20, 0x00, 0x74, 0x09, 0xb9, 0x08, 0x00, + 0xa9, 0x0f, 0x00, 0x75, 0x01, 0xc3, 0xff, 0x86, 0xce, 0x02, 0x83, 0xbe, 0xce, 0x02, 0x02, 0x72, + 0x06, 0x8b, 0xc1, 0xe8, 0x5b, 0xeb, 0xc3, 0xe8, 0x9f, 0xf7, 0xc3, 0x53, 0x68, 0xa9, 0x34, 0xe9, + 0x63, 0xf8, 0x80, 0x7e, 0x06, 0x0c, 0x75, 0x1d, 0xa9, 0x00, 0x10, 0x75, 0xee, 0xa9, 0x20, 0x00, + 0x75, 0x00, 0xa8, 0x0a, 0x75, 0x10, 0xff, 0x86, 0xc4, 0x02, 0x83, 0xbe, 0xc4, 0x02, 0x04, 0x72, + 0xda, 0xc6, 0x46, 0x07, 0x0e, 0xc3, 0x83, 0xbe, 0xc2, 0x02, 0x04, 0x73, 0xf8, 0xbe, 0x31, 0x4c, + 0xe8, 0x33, 0xd9, 0xeb, 0xf0, 0x8d, 0xbe, 0xc8, 0x02, 0xe8, 0x11, 0xff, 0x0b, 0xc9, 0x74, 0xe5, + 0x53, 0x68, 0xa9, 0x34, 0xe9, 0x1e, 0xf8, 0x8d, 0xbe, 0xc0, 0x02, 0xe8, 0xff, 0xfe, 0x0b, 0xc9, + 0x74, 0x03, 0xe9, 0x16, 0xff, 0xc3, 0x53, 0x8a, 0x56, 0x06, 0x80, 0xfa, 0x02, 0x74, 0x17, 0x80, + 0xfa, 0x44, 0x74, 0x12, 0x80, 0x7e, 0x08, 0x08, 0x75, 0x34, 0x80, 0xfa, 0x0c, 0x74, 0x07, 0x80, + 0xfa, 0x0e, 0x74, 0x02, 0xeb, 0x28, 0xa9, 0x20, 0x00, 0x74, 0x25, 0x80, 0xbe, 0xfe, 0x00, 0x02, + 0x74, 0x1c, 0x8b, 0x96, 0x66, 0x01, 0x4a, 0x89, 0x96, 0x66, 0x01, 0x83, 0xfa, 0x01, 0x77, 0x1b, + 0xbe, 0x19, 0x4c, 0xe8, 0xd0, 0xd8, 0xc6, 0x86, 0x8a, 0x02, 0x01, 0xe8, 0xfb, 0xf6, 0x5b, 0xc3, + 0xfe, 0x8e, 0x68, 0x01, 0x75, 0x05, 0xe8, 0x15, 0x20, 0xeb, 0xf3, 0xbe, 0x19, 0x4c, 0xe8, 0xb5, + 0xd8, 0x8b, 0xb6, 0x64, 0x01, 0xb9, 0xe8, 0x03, 0xc6, 0x86, 0x8a, 0x02, 0x01, 0xfa, 0xe8, 0xf1, + 0xf6, 0xeb, 0xdb, 0xa9, 0x20, 0x00, 0x74, 0x41, 0xa9, 0x0f, 0x00, 0x75, 0x25, 0xc6, 0x86, 0x69, + 0x02, 0x01, 0xc6, 0x86, 0x6a, 0x02, 0x01, 0x8c, 0xd8, 0x8e, 0xc0, 0x33, 0xc0, 0x8d, 0x77, 0x0e, + 0x8d, 0xbe, 0xf2, 0x01, 0xab, 0xab, 0xab, 0x8b, 0x86, 0x0a, 0x02, 0x83, 0x8e, 0x0a, 0x02, 0x40, + 0xeb, 0x17, 0x8d, 0x77, 0x0e, 0x8d, 0xbe, 0xf2, 0x01, 0x8c, 0xd8, 0x8e, 0xc0, 0xa5, 0xa5, 0xa5, + 0x8b, 0x86, 0x0a, 0x02, 0x83, 0xa6, 0x0a, 0x02, 0xbf, 0x33, 0x86, 0x0a, 0x02, 0x74, 0x05, 0xc6, + 0x86, 0x89, 0x02, 0x01, 0xc3, 0xfb, 0xc3, 0xff, 0xa4, 0xc0, 0x03, 0x53, 0x56, 0x8b, 0xc7, 0xf7, + 0x07, 0x00, 0x10, 0x75, 0x18, 0x8d, 0x77, 0x0e, 0x8d, 0xbe, 0xd4, 0x01, 0x8c, 0xd9, 0x8e, 0xc1, + 0xb9, 0x03, 0x00, 0xf3, 0xa7, 0x8b, 0xf8, 0x75, 0x0c, 0x81, 0x0f, 0x00, 0x10, 0x80, 0x7e, 0x06, + 0x44, 0x74, 0x47, 0xeb, 0x42, 0x8b, 0x49, 0x16, 0x80, 0xf9, 0x00, 0x74, 0x05, 0x80, 0xf9, 0x03, + 0x75, 0x38, 0x8d, 0xbe, 0x16, 0x03, 0x83, 0x3d, 0x00, 0x75, 0x0c, 0x83, 0x7d, 0x02, 0x00, 0x75, + 0x06, 0x83, 0x7d, 0x04, 0x00, 0x74, 0x23, 0x8d, 0x77, 0x0e, 0x8d, 0xbe, 0x16, 0x03, 0x8c, 0xd9, + 0x8e, 0xc1, 0xb9, 0x03, 0x00, 0xf3, 0xa7, 0x8b, 0xf8, 0x74, 0x0f, 0xc7, 0x86, 0x2e, 0x02, 0x0e, + 0x00, 0xb8, 0x0b, 0x00, 0xe8, 0xca, 0xe9, 0x5e, 0x5b, 0xc3, 0x8b, 0xf8, 0x5e, 0x5b, 0xff, 0xa4, + 0xec, 0x03, 0xff, 0x86, 0x4c, 0x02, 0xc7, 0x86, 0x2e, 0x02, 0x06, 0x00, 0x8c, 0xd8, 0x8e, 0xc0, + 0x8d, 0xbe, 0x00, 0x02, 0x8d, 0x77, 0x0e, 0xb9, 0x03, 0x00, 0xf3, 0xa5, 0x8b, 0xb6, 0x1a, 0x06, + 0x8b, 0x04, 0x86, 0xe0, 0x89, 0x86, 0x06, 0x02, 0x89, 0x86, 0x16, 0x02, 0x8b, 0xb6, 0x1f, 0x06, + 0x8b, 0x04, 0x89, 0x86, 0x1a, 0x02, 0x8b, 0x44, 0x02, 0x89, 0x86, 0x1c, 0x02, 0x8b, 0x44, 0x04, + 0x89, 0x86, 0x1e, 0x02, 0x8b, 0xb6, 0x24, 0x06, 0x8b, 0x04, 0x89, 0x86, 0x24, 0x02, 0x8b, 0x44, + 0x02, 0x89, 0x86, 0x26, 0x02, 0x8b, 0xb6, 0x1a, 0x06, 0x8b, 0x04, 0x80, 0x7e, 0x08, 0x06, 0x75, + 0x56, 0xf7, 0x07, 0x00, 0x10, 0x74, 0x14, 0xf6, 0x47, 0x06, 0x08, 0x75, 0x0b, 0x80, 0xbe, 0x63, + 0x02, 0x00, 0x75, 0x04, 0xc6, 0x46, 0x09, 0x04, 0xe9, 0x1b, 0x01, 0x3b, 0x86, 0x0c, 0x03, 0x77, + 0xf7, 0x80, 0xbe, 0x62, 0x02, 0x01, 0x74, 0x10, 0x80, 0x7e, 0x06, 0x0c, 0x75, 0xea, 0xc6, 0x46, + 0x07, 0x10, 0xc6, 0x46, 0x09, 0x1e, 0xeb, 0xe0, 0x80, 0xbe, 0x63, 0x02, 0x00, 0x75, 0xd9, 0xc6, + 0x46, 0x09, 0x0a, 0xf6, 0x86, 0x0b, 0x02, 0x10, 0x74, 0xce, 0x80, 0xa6, 0x0b, 0x02, 0x6f, 0xc6, + 0x86, 0x89, 0x02, 0x01, 0xe9, 0xdf, 0x00, 0x80, 0x7e, 0x08, 0x0a, 0x75, 0x5b, 0xc6, 0x86, 0x58, + 0x02, 0x00, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, 0x4c, 0x00, 0xbf, 0xbe, 0xf5, 0x4b, 0xe8, 0x05, + 0xd7, 0x8b, 0xb6, 0x1f, 0x06, 0x8d, 0xbe, 0x00, 0x03, 0x8c, 0xd9, 0x8e, 0xc1, 0xb9, 0x03, 0x00, + 0xf3, 0xa7, 0x75, 0x21, 0x83, 0xf8, 0x01, 0x74, 0x1c, 0xff, 0x8e, 0xba, 0x02, 0x75, 0x13, 0xf6, + 0x86, 0x5c, 0x02, 0x01, 0x75, 0x0c, 0xc6, 0x86, 0x5c, 0x02, 0x01, 0xc6, 0x46, 0x09, 0x08, 0xe9, + 0x94, 0x00, 0xe9, 0x91, 0x00, 0xc7, 0x86, 0xba, 0x02, 0x08, 0x00, 0x83, 0xf8, 0x01, 0x75, 0x0a, + 0xc7, 0x86, 0xb8, 0x02, 0x02, 0x00, 0xeb, 0x7e, 0xeb, 0x2e, 0x8d, 0x77, 0x0e, 0x8d, 0xbe, 0x16, + 0x03, 0x8c, 0xd9, 0x8e, 0xc1, 0xb9, 0x03, 0x00, 0xf3, 0xa7, 0x75, 0xe4, 0xff, 0x8e, 0xb8, 0x02, + 0x75, 0x14, 0xc7, 0x86, 0xb8, 0x02, 0x02, 0x00, 0xc6, 0x86, 0x58, 0x02, 0x01, 0x8e, 0x46, 0x02, + 0x26, 0x83, 0x0e, 0x4c, 0x00, 0x40, 0xeb, 0x4e, 0x80, 0xbe, 0x62, 0x02, 0x00, 0x74, 0x0c, 0x80, + 0x7e, 0x08, 0x08, 0x74, 0x41, 0xc6, 0x46, 0x09, 0x0a, 0xeb, 0x3b, 0xb7, 0x10, 0x8a, 0x5e, 0x06, + 0x80, 0xfb, 0x06, 0x74, 0x1f, 0x80, 0xfb, 0x08, 0x74, 0x1a, 0x80, 0xfb, 0x04, 0x74, 0x15, 0x80, + 0xfb, 0x0c, 0x74, 0x10, 0x80, 0xfb, 0x0a, 0x75, 0x07, 0xc6, 0x86, 0x5f, 0x02, 0x00, 0xeb, 0x04, + 0xb7, 0x12, 0xeb, 0x12, 0x88, 0x7e, 0x07, 0x80, 0xff, 0x12, 0x75, 0x04, 0xc6, 0x46, 0x09, 0x1e, + 0xb8, 0x07, 0x00, 0xe8, 0x2b, 0xe8, 0xc3, 0xff, 0x86, 0x4c, 0x02, 0xc7, 0x86, 0x2e, 0x02, 0x06, + 0x00, 0x8c, 0xd8, 0x8e, 0xc0, 0x8d, 0xbe, 0x00, 0x02, 0x8d, 0x77, 0x0e, 0xb9, 0x03, 0x00, 0xf3, + 0xa5, 0x80, 0x7e, 0x06, 0x48, 0x74, 0x08, 0xb8, 0x06, 0x00, 0xe8, 0x04, 0xe8, 0xeb, 0x37, 0xf6, + 0x86, 0x72, 0x02, 0x01, 0x74, 0x26, 0x80, 0x7e, 0x08, 0x16, 0x75, 0x20, 0xc6, 0x46, 0x09, 0x1a, + 0xc6, 0x86, 0x73, 0x02, 0x00, 0xc6, 0x86, 0x6c, 0x02, 0x00, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, + 0x4c, 0x00, 0xfe, 0x26, 0x81, 0x0e, 0x32, 0x00, 0x00, 0x80, 0xeb, 0x0a, 0x80, 0x7e, 0x08, 0x18, + 0x75, 0x04, 0xc6, 0x46, 0x09, 0x1a, 0xc3, 0x8a, 0x4e, 0x06, 0x80, 0xbe, 0xac, 0x02, 0x01, 0x74, + 0x02, 0xeb, 0x06, 0xb8, 0x06, 0x00, 0xe8, 0xb8, 0xe7, 0xc3, 0xe9, 0x8e, 0x00, 0xeb, 0x6e, 0xeb, + 0x64, 0x80, 0x7e, 0x06, 0x42, 0x75, 0xf3, 0x8b, 0x47, 0x1a, 0x83, 0xf8, 0x00, 0x75, 0xee, 0x80, + 0xbe, 0xfe, 0x00, 0x02, 0x74, 0xe9, 0xf6, 0x86, 0x78, 0x02, 0x01, 0x74, 0x29, 0xc6, 0x86, 0x78, + 0x02, 0x00, 0xc6, 0x86, 0xb0, 0x02, 0x01, 0xc7, 0x86, 0x34, 0x05, 0x00, 0x02, 0xc7, 0x86, 0xd8, + 0x02, 0x05, 0x00, 0xbe, 0xa9, 0x4c, 0xe8, 0x8d, 0xd5, 0xf7, 0x86, 0xf6, 0x00, 0x00, 0x08, 0x74, + 0x03, 0xe8, 0xb4, 0xf6, 0xeb, 0x45, 0xf6, 0x86, 0x82, 0x02, 0x01, 0x75, 0x18, 0xf7, 0x86, 0xf4, + 0x00, 0x00, 0x10, 0x74, 0x10, 0xb8, 0x02, 0x00, 0xe8, 0x9a, 0x11, 0xc6, 0x46, 0x09, 0x1e, 0xc6, + 0x46, 0x07, 0x02, 0xeb, 0x26, 0xb8, 0x06, 0x00, 0xe8, 0x46, 0xe7, 0xeb, 0x1e, 0x3d, 0x00, 0x02, + 0x75, 0x10, 0xc6, 0x86, 0x7b, 0x02, 0x01, 0xe8, 0xf1, 0x06, 0xbe, 0x91, 0x4c, 0xe8, 0x46, 0xd5, + 0xeb, 0x09, 0x3d, 0x00, 0x04, 0x75, 0x04, 0xc6, 0x46, 0x07, 0x4a, 0xc3, 0xc7, 0x86, 0x2e, 0x02, + 0x02, 0x00, 0x80, 0x7e, 0x06, 0x46, 0x75, 0x2b, 0x8b, 0x47, 0x1a, 0x83, 0xf8, 0x00, 0x75, 0x10, + 0xc6, 0x46, 0x07, 0x48, 0x80, 0x7e, 0x08, 0x1c, 0x75, 0x19, 0xc6, 0x46, 0x09, 0x16, 0xeb, 0x13, + 0x86, 0xc4, 0x3d, 0x20, 0x80, 0x75, 0x0c, 0xc7, 0x86, 0x2e, 0x02, 0x11, 0x00, 0xb8, 0x08, 0x00, + 0xe8, 0xee, 0xe6, 0xc3, 0xc7, 0x86, 0x2e, 0x02, 0x0f, 0x00, 0x80, 0x7e, 0x06, 0x44, 0x74, 0x06, + 0x80, 0x7e, 0x06, 0x42, 0x75, 0x08, 0xb8, 0x06, 0x00, 0xe8, 0xd5, 0xe6, 0xeb, 0x0d, 0xf6, 0x86, + 0x73, 0x02, 0x01, 0x74, 0x06, 0xbe, 0x9d, 0x4c, 0xe8, 0xdb, 0xd4, 0xc3, 0x80, 0x7e, 0x06, 0x44, + 0x75, 0x14, 0xe8, 0xea, 0xd2, 0xc7, 0x44, 0x02, 0x02, 0x00, 0x8d, 0x7e, 0x16, 0xe8, 0xfd, 0xd2, + 0xbe, 0x19, 0x4c, 0xe8, 0x72, 0xd5, 0xc3, 0xf7, 0x86, 0xf6, 0x00, 0x40, 0x00, 0x74, 0x18, 0xf7, + 0x86, 0xf4, 0x00, 0x00, 0x20, 0x74, 0x10, 0x80, 0x7e, 0x06, 0x08, 0x72, 0x0a, 0x80, 0x7e, 0x06, + 0x0e, 0x77, 0x04, 0xc6, 0x46, 0x07, 0x14, 0xc3, 0x80, 0x7e, 0x06, 0x44, 0x75, 0x2e, 0xff, 0x8e, + 0x66, 0x01, 0x75, 0x1d, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, 0x64, 0x00, 0xfd, 0xf7, 0x86, 0x12, + 0x01, 0x00, 0x84, 0x74, 0x06, 0xc6, 0x46, 0x07, 0x4e, 0xeb, 0x11, 0xc6, 0x46, 0x07, 0x46, 0xeb, + 0x0b, 0xc6, 0x86, 0x77, 0x02, 0x01, 0xb9, 0x5a, 0x00, 0xe8, 0x19, 0xf3, 0xc3, 0x80, 0x7e, 0x06, + 0x44, 0x75, 0x1f, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x0e, 0x64, 0x00, 0x02, 0xc6, 0x86, 0x76, 0x02, + 0x00, 0xbe, 0x19, 0x4c, 0xe8, 0x4f, 0xd4, 0xb9, 0x5a, 0x00, 0xc6, 0x86, 0x8b, 0x02, 0x01, 0xe8, + 0xf3, 0xf2, 0xc3, 0x80, 0xbe, 0xfe, 0x00, 0x02, 0x72, 0x18, 0x8a, 0x4e, 0x06, 0x80, 0xf9, 0x44, + 0x74, 0x0a, 0x80, 0xf9, 0x46, 0x74, 0x05, 0x80, 0xf9, 0x48, 0x75, 0x06, 0xb8, 0x03, 0x00, 0xe8, + 0x0f, 0xe6, 0xc3, 0xff, 0x86, 0x50, 0x02, 0xc7, 0x86, 0x2e, 0x02, 0x0b, 0x00, 0x8a, 0x86, 0x58, + 0x02, 0x88, 0x86, 0x84, 0x02, 0xc7, 0x86, 0xcc, 0x02, 0x00, 0x00, 0xc6, 0x86, 0x65, 0x02, 0x00, + 0x83, 0x8e, 0x0a, 0x02, 0x20, 0x81, 0xa6, 0x0a, 0x02, 0xff, 0x2f, 0xc6, 0x86, 0x89, 0x02, 0x01, + 0xf6, 0x86, 0x58, 0x02, 0x01, 0x74, 0x38, 0xc6, 0x86, 0x84, 0x02, 0x00, 0x8e, 0x46, 0x02, 0x26, + 0x81, 0x26, 0x64, 0x00, 0xff, 0x7f, 0x80, 0x7e, 0x0a, 0x00, 0x75, 0x0a, 0xc6, 0x86, 0x6d, 0x02, + 0x00, 0xc6, 0x86, 0x6f, 0x02, 0x00, 0x8a, 0xa6, 0x84, 0x02, 0x88, 0xa6, 0x58, 0x02, 0xe8, 0x05, + 0xd6, 0x88, 0x86, 0x58, 0x02, 0xc6, 0x46, 0x09, 0x0c, 0xc7, 0x86, 0xca, 0x01, 0x00, 0x01, 0x80, + 0x7e, 0x06, 0x04, 0x75, 0x04, 0xc6, 0x46, 0x07, 0x06, 0x80, 0x7e, 0x08, 0x02, 0x75, 0x04, 0xc6, + 0x46, 0x09, 0x0c, 0x80, 0x7e, 0x08, 0x06, 0x74, 0x05, 0xc6, 0x86, 0x5e, 0x02, 0x01, 0x8d, 0x77, + 0x0e, 0x8d, 0xbe, 0x00, 0x03, 0x8c, 0xd9, 0x8e, 0xc1, 0xb9, 0x06, 0x00, 0xf3, 0xa6, 0x74, 0x08, + 0x77, 0x03, 0xe9, 0x95, 0x00, 0xe9, 0xfe, 0x00, 0xf6, 0x47, 0x06, 0x08, 0x75, 0x59, 0x80, 0x7e, + 0x08, 0x04, 0x75, 0x53, 0x8b, 0xb6, 0x2a, 0x06, 0x8d, 0xbe, 0x16, 0x03, 0x8c, 0xd9, 0x8e, 0xc1, + 0xb9, 0x03, 0x00, 0xb8, 0x01, 0x00, 0xf3, 0xa7, 0x74, 0x02, 0xeb, 0x3e, 0xff, 0x86, 0xbe, 0x02, + 0x83, 0xbe, 0xbe, 0x02, 0x03, 0x72, 0x30, 0x83, 0xbe, 0xbc, 0x02, 0x03, 0x72, 0x29, 0xc6, 0x46, + 0x09, 0x02, 0xc6, 0x86, 0x84, 0x02, 0x01, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x0e, 0x64, 0x00, 0x00, + 0x80, 0x8a, 0x86, 0x58, 0x02, 0x8a, 0xa6, 0x84, 0x02, 0x88, 0xa6, 0x58, 0x02, 0xe8, 0x66, 0xd5, + 0x88, 0x86, 0x58, 0x02, 0xe8, 0x80, 0xf3, 0xe9, 0xec, 0x00, 0x80, 0x7e, 0x0a, 0x00, 0x75, 0x1d, + 0xc6, 0x86, 0x6d, 0x02, 0x00, 0xc6, 0x86, 0x6f, 0x02, 0x00, 0x8a, 0x86, 0x58, 0x02, 0x8a, 0xa6, + 0x84, 0x02, 0x88, 0xa6, 0x58, 0x02, 0xe8, 0x3d, 0xd5, 0x88, 0x86, 0x58, 0x02, 0xc6, 0x46, 0x09, + 0x0c, 0xb8, 0x00, 0x03, 0xe8, 0xd1, 0xf3, 0xe9, 0xbc, 0x00, 0x80, 0x7e, 0x08, 0x00, 0x75, 0x3d, + 0xf6, 0x86, 0x58, 0x02, 0x01, 0x75, 0x16, 0xf6, 0x86, 0x6c, 0x02, 0x01, 0x74, 0x16, 0xf6, 0x86, + 0x62, 0x02, 0x01, 0x74, 0x08, 0xf7, 0x86, 0x12, 0x01, 0x00, 0x01, 0x75, 0x16, 0xc6, 0x46, 0x09, + 0x0c, 0xe9, 0x92, 0x00, 0xf6, 0x86, 0x62, 0x02, 0x01, 0x74, 0x9c, 0xf7, 0x86, 0x12, 0x01, 0x00, + 0x01, 0x74, 0x94, 0xc6, 0x46, 0x09, 0x04, 0xff, 0x86, 0x4e, 0x02, 0xeb, 0x79, 0x80, 0x7e, 0x08, + 0x0a, 0x75, 0x73, 0xf6, 0x86, 0x63, 0x02, 0x01, 0x75, 0x0e, 0xf7, 0x86, 0x12, 0x01, 0x00, 0x01, + 0x75, 0x06, 0xc6, 0x46, 0x09, 0x0c, 0xeb, 0x5e, 0xf7, 0x86, 0x12, 0x01, 0x00, 0x01, 0x74, 0x56, + 0xc6, 0x46, 0x09, 0x04, 0xeb, 0x50, 0x80, 0x7e, 0x08, 0x04, 0x75, 0x2c, 0xc6, 0x46, 0x09, 0x0c, + 0x80, 0x7e, 0x0a, 0x00, 0x75, 0x1d, 0xc6, 0x86, 0x6d, 0x02, 0x00, 0xc6, 0x86, 0x6f, 0x02, 0x00, + 0x8a, 0x86, 0x58, 0x02, 0x8a, 0xa6, 0x84, 0x02, 0x88, 0xa6, 0x58, 0x02, 0xe8, 0x97, 0xd4, 0x88, + 0x86, 0x58, 0x02, 0xe8, 0xdb, 0xef, 0xeb, 0x1e, 0x80, 0x7e, 0x08, 0x00, 0x75, 0x09, 0xf6, 0x86, + 0x6c, 0x02, 0x01, 0x74, 0x02, 0xeb, 0xab, 0x80, 0x7e, 0x08, 0x0a, 0x75, 0x09, 0xf6, 0x86, 0x63, + 0x02, 0x01, 0x75, 0x02, 0xeb, 0x9c, 0x8a, 0x86, 0x84, 0x02, 0x88, 0x86, 0x58, 0x02, 0xc3, 0xc7, + 0x86, 0xc6, 0x02, 0x02, 0x00, 0xff, 0x86, 0x46, 0x02, 0xc7, 0x86, 0x2e, 0x02, 0x0c, 0x00, 0x80, + 0x7e, 0x06, 0x04, 0x74, 0x06, 0x80, 0x7e, 0x06, 0x06, 0x75, 0x04, 0xc6, 0x46, 0x07, 0x08, 0x80, + 0x7e, 0x08, 0x00, 0x75, 0x56, 0xf6, 0x86, 0x58, 0x02, 0x01, 0x74, 0x3b, 0xc6, 0x86, 0x58, 0x02, + 0x00, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x26, 0x64, 0x00, 0xff, 0x7f, 0xb8, 0x00, 0x02, 0xe8, 0xc7, + 0xf2, 0xf6, 0x86, 0x62, 0x02, 0x01, 0x74, 0x0c, 0xbe, 0x1f, 0x4c, 0xe8, 0xd8, 0xd1, 0xbe, 0x3d, + 0x4c, 0xe8, 0xd2, 0xd1, 0x80, 0x7e, 0x0a, 0x00, 0x75, 0x0d, 0xc6, 0x86, 0x6d, 0x02, 0x00, 0xc6, + 0x86, 0x6f, 0x02, 0x00, 0xe8, 0xff, 0xd3, 0xf6, 0x86, 0x62, 0x02, 0x01, 0x74, 0x34, 0xc6, 0x86, + 0x5c, 0x02, 0x00, 0xc6, 0x86, 0x5d, 0x02, 0x00, 0xe9, 0xc9, 0x00, 0x80, 0x7e, 0x08, 0x0c, 0x75, + 0x24, 0xc6, 0x46, 0x09, 0x00, 0xf6, 0x86, 0x62, 0x02, 0x01, 0x74, 0x16, 0xbe, 0x1f, 0x4c, 0xe8, + 0x94, 0xd1, 0xbe, 0x3d, 0x4c, 0xe8, 0x8e, 0xd1, 0xc6, 0x86, 0x5c, 0x02, 0x00, 0xc6, 0x86, 0x5d, + 0x02, 0x00, 0xe9, 0x9f, 0x00, 0x80, 0x7e, 0x08, 0x02, 0x75, 0xf7, 0xc7, 0x86, 0xcc, 0x01, 0x00, + 0x00, 0xc6, 0x46, 0x09, 0x00, 0xf6, 0x86, 0x62, 0x02, 0x01, 0x74, 0x0a, 0xc6, 0x86, 0x5c, 0x02, + 0x00, 0xc6, 0x86, 0x5d, 0x02, 0x00, 0x8d, 0x77, 0x0e, 0x8d, 0xbe, 0x00, 0x03, 0x8c, 0xd9, 0x8e, + 0xc1, 0xb9, 0x06, 0x00, 0xf3, 0xa6, 0x74, 0x2e, 0xc6, 0x86, 0x58, 0x02, 0x00, 0x8e, 0x46, 0x02, + 0x26, 0x81, 0x26, 0x64, 0x00, 0xff, 0x7f, 0x80, 0x7e, 0x0a, 0x00, 0x75, 0x0a, 0xc6, 0x86, 0x6d, + 0x02, 0x00, 0xc6, 0x86, 0x6f, 0x02, 0x00, 0xe8, 0x6c, 0xd3, 0xb8, 0x00, 0x02, 0xe8, 0x08, 0xf2, + 0xc6, 0x46, 0x09, 0x00, 0xeb, 0x3e, 0x8e, 0x46, 0x02, 0x26, 0xa0, 0x5c, 0x00, 0xc6, 0x46, 0x09, + 0x00, 0xc6, 0x86, 0x6d, 0x02, 0x00, 0xc6, 0x86, 0x59, 0x02, 0x00, 0xc6, 0x86, 0x69, 0x02, 0x00, + 0xe8, 0x43, 0xd3, 0x24, 0x07, 0xe8, 0x0a, 0xf5, 0xbe, 0xef, 0x4b, 0xe8, 0xf8, 0xd0, 0x8c, 0xd8, + 0x8e, 0xc0, 0x33, 0xc0, 0x8d, 0xbe, 0xf2, 0x01, 0xab, 0xab, 0xab, 0xe8, 0xc5, 0xee, 0xbe, 0x3d, + 0x4c, 0xe8, 0xe2, 0xd0, 0xc3, 0x8c, 0xd8, 0x8e, 0xc0, 0xff, 0x86, 0x54, 0x02, 0xc7, 0x86, 0x2e, + 0x02, 0x0f, 0x00, 0xf6, 0x86, 0xce, 0x01, 0x01, 0x74, 0x3b, 0xb8, 0x94, 0x5e, 0xa3, 0x8a, 0x5e, + 0x8d, 0x77, 0x0e, 0x8b, 0xf8, 0xa5, 0xa5, 0xa5, 0xc7, 0x06, 0x92, 0x5e, 0x01, 0x00, 0xc6, 0x86, + 0xcf, 0x01, 0x00, 0x33, 0xff, 0xba, 0x02, 0x08, 0xe8, 0x20, 0xe7, 0xbf, 0x8c, 0x5e, 0xb9, 0x03, + 0x00, 0xf3, 0xa5, 0x8d, 0x77, 0x0e, 0xbf, 0x8c, 0x5e, 0xb9, 0x03, 0x00, 0xf3, 0xa7, 0x75, 0x05, + 0xe8, 0x8b, 0x04, 0xeb, 0x00, 0x8d, 0x77, 0x0e, 0x8d, 0xbe, 0xf2, 0x01, 0xa5, 0xa5, 0xa5, 0x80, + 0x7e, 0x06, 0x04, 0x75, 0x04, 0xc6, 0x46, 0x07, 0x08, 0x8b, 0x8e, 0xc6, 0x02, 0xe3, 0x05, 0x49, + 0x89, 0x8e, 0xc6, 0x02, 0xf7, 0x07, 0x3c, 0x00, 0x75, 0x0a, 0xf6, 0x86, 0x6c, 0x02, 0x01, 0x74, + 0x03, 0xe8, 0x07, 0x02, 0xf6, 0x86, 0x58, 0x02, 0x01, 0x75, 0x03, 0xe9, 0x93, 0x00, 0xbe, 0x3d, + 0x4c, 0xe8, 0x52, 0xd0, 0xf7, 0x07, 0x00, 0x10, 0x75, 0x37, 0xc6, 0x86, 0x58, 0x02, 0x00, 0x8e, + 0x46, 0x02, 0x26, 0x81, 0x26, 0x64, 0x00, 0xff, 0x7f, 0xb8, 0x00, 0x02, 0xe8, 0x19, 0xf1, 0xf6, + 0x86, 0x62, 0x02, 0x01, 0x74, 0x06, 0xbe, 0x1f, 0x4c, 0xe8, 0x2a, 0xd0, 0x80, 0x7e, 0x0a, 0x00, + 0x75, 0x38, 0xc6, 0x86, 0x6d, 0x02, 0x00, 0xc6, 0x86, 0x6f, 0x02, 0x00, 0xe8, 0x57, 0xd2, 0xeb, + 0x29, 0xf7, 0x07, 0x3c, 0x00, 0x75, 0x33, 0xc6, 0x86, 0x69, 0x02, 0x01, 0xc6, 0x86, 0x6a, 0x02, + 0x01, 0x8c, 0xd8, 0x8e, 0xc0, 0x33, 0xc0, 0x8d, 0x77, 0x0e, 0x8d, 0xbe, 0xf2, 0x01, 0xab, 0xab, + 0xab, 0x8b, 0x86, 0x0a, 0x02, 0xa9, 0x40, 0x00, 0x74, 0x02, 0xeb, 0x48, 0x83, 0xc8, 0x40, 0x89, + 0x86, 0x0a, 0x02, 0xc6, 0x86, 0x89, 0x02, 0x01, 0xeb, 0x3a, 0x83, 0xa6, 0x0a, 0x02, 0xbf, 0x8c, + 0xd8, 0x8e, 0xc0, 0x33, 0xc0, 0x8d, 0x77, 0x0e, 0x8d, 0xbe, 0xf2, 0x01, 0xa5, 0xa5, 0xa5, 0xeb, + 0x23, 0xf6, 0x86, 0x62, 0x02, 0x01, 0x74, 0x06, 0xbe, 0x3d, 0x4c, 0xe8, 0xb8, 0xcf, 0xc6, 0x86, + 0x6b, 0x02, 0x00, 0xf7, 0x07, 0x3c, 0x00, 0x75, 0x0b, 0xc6, 0x86, 0x6b, 0x02, 0x01, 0xbe, 0x25, + 0x4c, 0xe8, 0xa2, 0xcf, 0xc3, 0xeb, 0x61, 0x8c, 0xd8, 0x8e, 0xc0, 0xc7, 0x86, 0x2e, 0x02, 0x0d, + 0x00, 0xf6, 0x86, 0xce, 0x01, 0x01, 0x74, 0x50, 0x33, 0xff, 0xba, 0x02, 0x08, 0xe8, 0xfb, 0xe5, + 0x8b, 0x3e, 0x8a, 0x5e, 0xb9, 0x03, 0x00, 0xf3, 0xa7, 0x75, 0x3d, 0x81, 0xff, 0xa2, 0x65, 0x73, + 0x6f, 0x89, 0x3e, 0x8a, 0x5e, 0x8d, 0x77, 0x0e, 0xb9, 0x03, 0x00, 0xf3, 0xa7, 0x74, 0x05, 0xc6, + 0x86, 0xd0, 0x01, 0x01, 0x81, 0xff, 0xa2, 0x65, 0x73, 0x56, 0x89, 0x3e, 0x8a, 0x5e, 0x8d, 0x77, + 0x0e, 0xa5, 0xa5, 0xa5, 0xff, 0x06, 0x92, 0x5e, 0x8d, 0x77, 0x0e, 0xbf, 0x8c, 0x5e, 0xb9, 0x03, + 0x00, 0xf3, 0xa7, 0x75, 0x03, 0xe8, 0x36, 0x03, 0x8a, 0x86, 0x0a, 0x02, 0xa8, 0x40, 0x75, 0x3d, + 0x80, 0x7e, 0x06, 0x04, 0x75, 0x04, 0xc6, 0x46, 0x07, 0x08, 0xf7, 0x07, 0x3c, 0x00, 0x75, 0x3a, + 0xf6, 0x86, 0x6c, 0x02, 0x01, 0x74, 0x35, 0xf6, 0x86, 0x58, 0x02, 0x01, 0x74, 0x07, 0xf6, 0x86, + 0x69, 0x02, 0x01, 0x75, 0x27, 0xe8, 0xb3, 0x00, 0xc7, 0x86, 0xc8, 0x02, 0x01, 0x00, 0xeb, 0x1c, + 0xbf, 0x9c, 0x65, 0x33, 0xc0, 0xab, 0xab, 0xab, 0xe8, 0xf3, 0x02, 0xeb, 0xbb, 0x24, 0xbf, 0x88, + 0x86, 0x0a, 0x02, 0xc6, 0x86, 0x89, 0x02, 0x01, 0xeb, 0xb6, 0xeb, 0x79, 0xf6, 0x86, 0x58, 0x02, + 0x01, 0x74, 0x3c, 0xf6, 0x86, 0x69, 0x02, 0x01, 0x74, 0x19, 0xf6, 0x86, 0x62, 0x02, 0x01, 0x74, + 0x12, 0x83, 0xbe, 0xc6, 0x02, 0x00, 0x75, 0x0b, 0x80, 0x7e, 0x08, 0x00, 0x75, 0x05, 0x83, 0x8e, + 0xe6, 0x02, 0x08, 0xc6, 0x86, 0x69, 0x02, 0x01, 0xc6, 0x86, 0x6a, 0x02, 0x01, 0x8c, 0xd8, 0x8e, + 0xc0, 0x33, 0xc0, 0x8d, 0x77, 0x0e, 0x8d, 0xbe, 0xf2, 0x01, 0xab, 0xab, 0xab, 0xeb, 0x4b, 0xf6, + 0x86, 0x6c, 0x02, 0x01, 0x74, 0x44, 0xf6, 0x86, 0x6b, 0x02, 0x01, 0x75, 0x0d, 0xc6, 0x86, 0x6b, + 0x02, 0x01, 0xbe, 0x25, 0x4c, 0xe8, 0x8e, 0xce, 0xeb, 0x30, 0xf6, 0x86, 0x62, 0x02, 0x01, 0x74, + 0x12, 0x80, 0x7e, 0x08, 0x00, 0x75, 0x0c, 0x83, 0xbe, 0xc6, 0x02, 0x00, 0x75, 0x05, 0x83, 0x8e, + 0xe6, 0x02, 0x08, 0xeb, 0x15, 0xf6, 0x86, 0x58, 0x02, 0x01, 0x74, 0x0e, 0x8c, 0xd8, 0x8e, 0xc0, + 0x8d, 0x77, 0x0e, 0x8d, 0xbe, 0xf2, 0x01, 0xa5, 0xa5, 0xa5, 0xc3, 0x53, 0x8c, 0xd8, 0x8e, 0xc0, + 0x8d, 0x77, 0x0e, 0x8d, 0xbe, 0x16, 0x03, 0x8c, 0xd9, 0x8e, 0xc1, 0xb9, 0x03, 0x00, 0xf3, 0xa7, + 0x74, 0x54, 0x8b, 0x44, 0xfe, 0x89, 0x45, 0xfe, 0xf3, 0xa5, 0xbb, 0xfc, 0x04, 0xb9, 0x0b, 0x00, + 0x8d, 0xb6, 0x16, 0x03, 0xad, 0x8b, 0x14, 0x8b, 0x74, 0x02, 0x8b, 0x3f, 0x03, 0xfd, 0xab, 0x89, + 0x15, 0x89, 0x75, 0x02, 0x83, 0xc3, 0x02, 0xe2, 0xf1, 0xf6, 0x86, 0xaf, 0x02, 0x01, 0x75, 0x26, + 0x8b, 0xb6, 0x2f, 0x06, 0x8d, 0xbe, 0xee, 0x01, 0xa5, 0xa5, 0x80, 0x7e, 0x06, 0x08, 0x76, 0x0b, + 0xc7, 0x86, 0xc8, 0x02, 0x04, 0x00, 0xe8, 0x84, 0xee, 0xeb, 0x0b, 0xc6, 0x86, 0x88, 0x02, 0x01, + 0xc7, 0x86, 0xc8, 0x02, 0x01, 0x00, 0x5b, 0xc3, 0xb8, 0x80, 0x0a, 0xf6, 0x86, 0xab, 0x02, 0x01, + 0x75, 0x45, 0xf6, 0x86, 0xad, 0x02, 0x01, 0x75, 0x3e, 0xf7, 0x86, 0xf6, 0x00, 0x10, 0x00, 0x75, + 0x36, 0xf7, 0x07, 0x82, 0x00, 0x74, 0x2f, 0xc7, 0x86, 0x2e, 0x02, 0x07, 0x00, 0xc6, 0x86, 0x16, + 0x01, 0x00, 0x81, 0x8e, 0x0a, 0x02, 0x00, 0x01, 0xc6, 0x86, 0x89, 0x02, 0x01, 0xf6, 0x86, 0xac, + 0x02, 0x01, 0x75, 0x0c, 0x80, 0x7e, 0x06, 0x08, 0x72, 0x0c, 0x80, 0x7e, 0x06, 0x0e, 0x77, 0x06, + 0xb8, 0x0a, 0x00, 0xe8, 0x8b, 0xdf, 0xc3, 0x89, 0x86, 0xee, 0x02, 0xe9, 0x37, 0xea, 0xf7, 0x07, + 0x02, 0x00, 0x74, 0x0f, 0x80, 0x7e, 0x06, 0x0c, 0x75, 0x09, 0xc6, 0x86, 0x64, 0x02, 0x01, 0xc6, + 0x46, 0x07, 0x0e, 0x8b, 0x86, 0x18, 0x02, 0x86, 0xe0, 0x8b, 0xb6, 0x54, 0x06, 0x0b, 0xf6, 0x74, + 0x09, 0xad, 0x86, 0xe0, 0x89, 0x86, 0x18, 0x02, 0x86, 0xe0, 0x89, 0x86, 0xea, 0x02, 0x8b, 0xb6, + 0x3b, 0x06, 0x0b, 0xf6, 0x74, 0x07, 0xad, 0x86, 0xc4, 0x89, 0x86, 0x10, 0x02, 0x8b, 0xb6, 0x40, + 0x06, 0x0b, 0xf6, 0x74, 0x05, 0x8b, 0xc6, 0xe8, 0xa2, 0x00, 0x8b, 0xb6, 0x45, 0x06, 0x0b, 0xf6, + 0x74, 0x07, 0xad, 0x86, 0xe0, 0x89, 0x86, 0x0c, 0x02, 0x8b, 0xb6, 0x4a, 0x06, 0x0b, 0xf6, 0x74, + 0x07, 0xad, 0x86, 0xc4, 0x89, 0x86, 0xfc, 0x01, 0x8b, 0xb6, 0x4f, 0x06, 0x0b, 0xf6, 0x74, 0x07, + 0xad, 0x86, 0xc4, 0x89, 0x86, 0xfa, 0x01, 0x8b, 0x07, 0xa9, 0x02, 0x00, 0x75, 0x07, 0xa8, 0x28, + 0x74, 0x03, 0xe9, 0x71, 0xff, 0xc7, 0x86, 0xee, 0x02, 0x00, 0x01, 0xe9, 0xa7, 0xe9, 0xc3, 0xf7, + 0x07, 0x02, 0x02, 0x74, 0xf9, 0x8b, 0x86, 0x18, 0x02, 0x86, 0xe0, 0x8b, 0xb6, 0x69, 0x06, 0x0b, + 0xf6, 0x74, 0x09, 0xad, 0x86, 0xe0, 0x89, 0x86, 0x18, 0x02, 0x86, 0xe0, 0x89, 0x86, 0xea, 0x02, + 0x8b, 0xb6, 0x5a, 0x06, 0x0b, 0xf6, 0x74, 0x07, 0xad, 0x86, 0xc4, 0x89, 0x86, 0x10, 0x02, 0x8b, + 0xb6, 0x5f, 0x06, 0x0b, 0xf6, 0x74, 0x05, 0x8b, 0xc6, 0xe8, 0x20, 0x00, 0x8b, 0xb6, 0x64, 0x06, + 0x0b, 0xf6, 0x74, 0x07, 0xad, 0x86, 0xe0, 0x89, 0x86, 0x0c, 0x02, 0x80, 0x7e, 0x06, 0x0c, 0x75, + 0x96, 0xc6, 0x86, 0x64, 0x02, 0x01, 0xc6, 0x46, 0x07, 0x0e, 0xeb, 0x8b, 0x53, 0x57, 0x8c, 0xdb, + 0x8e, 0xc3, 0xbb, 0x12, 0x05, 0xb9, 0x0a, 0x00, 0x8b, 0xf0, 0xad, 0x8b, 0x34, 0x8b, 0x3f, 0x03, + 0xfd, 0xab, 0x89, 0x35, 0x83, 0xc3, 0x02, 0xe2, 0xf4, 0x5f, 0x5b, 0xc3, 0x68, 0x88, 0x2e, 0xeb, + 0x08, 0x68, 0xf0, 0x2e, 0xeb, 0x03, 0x68, 0x32, 0x2f, 0xf7, 0x07, 0x82, 0x02, 0x74, 0x1c, 0x8b, + 0x86, 0x18, 0x02, 0x86, 0xe0, 0x8b, 0xb6, 0xa0, 0x06, 0x0b, 0xf6, 0x74, 0x09, 0xad, 0x86, 0xe0, + 0x89, 0x86, 0x18, 0x02, 0x86, 0xe0, 0x89, 0x86, 0xea, 0x02, 0xc3, 0x83, 0xc4, 0x02, 0xc3, 0x8b, + 0x07, 0xf6, 0x86, 0x63, 0x01, 0x01, 0x74, 0x1e, 0xa9, 0x00, 0x20, 0x74, 0x40, 0x56, 0x57, 0xe8, + 0x5d, 0xca, 0xc7, 0x44, 0x02, 0x02, 0x00, 0x8d, 0x7e, 0x16, 0xe8, 0x70, 0xca, 0xbe, 0x19, 0x4c, + 0xe8, 0xe5, 0xcc, 0x5f, 0x5e, 0xc3, 0x80, 0x7e, 0x06, 0x08, 0x75, 0x21, 0xa9, 0x00, 0x10, 0x74, + 0x1c, 0xa9, 0x3c, 0x00, 0x75, 0x17, 0xff, 0x86, 0xd2, 0x02, 0xff, 0x86, 0xd0, 0x02, 0x83, 0xbe, + 0xd0, 0x02, 0x02, 0x72, 0x05, 0xc6, 0x46, 0x07, 0x0a, 0xc3, 0xe8, 0x3c, 0xea, 0xc3, 0x8c, 0xd8, + 0x8e, 0xc0, 0x33, 0xc0, 0x8b, 0x3e, 0x8a, 0x5e, 0x83, 0xc7, 0x06, 0x81, 0xff, 0xa2, 0x65, 0x72, + 0x03, 0xbf, 0x9c, 0x65, 0xab, 0xab, 0xab, 0xf6, 0x86, 0xd0, 0x01, 0x01, 0x74, 0x18, 0xc6, 0x86, + 0xcf, 0x01, 0x01, 0xe8, 0xf9, 0xc9, 0xc7, 0x44, 0x02, 0x05, 0x00, 0x8d, 0x7e, 0x16, 0xe8, 0x0c, + 0xca, 0xc6, 0x86, 0xce, 0x01, 0x00, 0xc3, 0xf7, 0x86, 0xf6, 0x00, 0x08, 0x00, 0x74, 0x06, 0xbe, + 0xdf, 0x4c, 0xe8, 0xc1, 0xcb, 0x8d, 0xb6, 0xc4, 0x15, 0x8e, 0x46, 0x02, 0x8a, 0x1c, 0xf6, 0xc3, + 0x80, 0x75, 0x0d, 0x80, 0xfb, 0x10, 0x77, 0x14, 0x32, 0xff, 0xd1, 0xe3, 0xff, 0xa7, 0xda, 0x04, + 0xc7, 0x86, 0x0a, 0x01, 0x00, 0x00, 0xc3, 0xb8, 0x00, 0x80, 0xeb, 0x08, 0xb8, 0x00, 0x80, 0xeb, + 0x03, 0xb8, 0x00, 0x20, 0x8d, 0xb6, 0xc4, 0x15, 0x89, 0x44, 0x02, 0x80, 0x0c, 0x80, 0xb8, 0x40, + 0x60, 0x8e, 0xc0, 0xc7, 0x86, 0x0a, 0x01, 0x00, 0x00, 0x26, 0xc7, 0x06, 0x30, 0x00, 0x08, 0x00, + 0xc3, 0xeb, 0xe1, 0xb8, 0x04, 0x00, 0x80, 0xbe, 0x06, 0x01, 0x01, 0x75, 0xf4, 0xb8, 0x05, 0x00, + 0x80, 0xbe, 0x07, 0x01, 0x01, 0x74, 0xea, 0xc6, 0x86, 0x08, 0x01, 0x01, 0xc6, 0x86, 0xd1, 0x01, + 0x00, 0xc6, 0x86, 0x09, 0x01, 0x00, 0x8b, 0x86, 0xf8, 0x00, 0x89, 0x86, 0xf6, 0x00, 0x8d, 0xb6, + 0xce, 0x15, 0xb8, 0x03, 0x00, 0xf6, 0x04, 0x80, 0x75, 0xc7, 0x33, 0xc0, 0x39, 0x04, 0x75, 0x1e, + 0x39, 0x44, 0x02, 0x75, 0x19, 0x39, 0x44, 0x04, 0x75, 0x14, 0x8b, 0x86, 0x00, 0x01, 0x89, 0x04, + 0x8b, 0x86, 0x02, 0x01, 0x89, 0x44, 0x02, 0x8b, 0x86, 0x04, 0x01, 0x89, 0x44, 0x04, 0xad, 0x8b, + 0x14, 0x8b, 0x74, 0x02, 0x89, 0x86, 0xd4, 0x01, 0x89, 0x96, 0xd6, 0x01, 0x89, 0xb6, 0xd8, 0x01, + 0x8e, 0x46, 0x02, 0x50, 0xe8, 0xfc, 0xc7, 0x26, 0xa3, 0x5e, 0x00, 0x8b, 0xc2, 0xe8, 0xf3, 0xc7, + 0x26, 0xa3, 0x60, 0x00, 0x8b, 0xc6, 0xe8, 0xea, 0xc7, 0x26, 0xa3, 0x62, 0x00, 0x58, 0xbb, 0x2a, + 0x05, 0xb9, 0x16, 0x00, 0x1e, 0x07, 0x8b, 0x3f, 0x03, 0xfd, 0xab, 0x89, 0x15, 0x89, 0x75, 0x02, + 0x83, 0xc3, 0x02, 0xe2, 0xf1, 0xbb, 0x26, 0x05, 0x8d, 0x96, 0xdc, 0x15, 0xb8, 0x02, 0x00, 0x8b, + 0x3f, 0x03, 0xfd, 0x8b, 0xf2, 0xb9, 0x09, 0x00, 0xf3, 0xa5, 0x83, 0xc3, 0x02, 0x48, 0x75, 0xef, + 0xf7, 0x86, 0xf6, 0x00, 0x08, 0x00, 0x74, 0x06, 0xbe, 0xdf, 0x4c, 0xe8, 0xa8, 0xca, 0x8d, 0xb6, + 0xc4, 0x15, 0x8b, 0x44, 0x08, 0x89, 0x86, 0x12, 0x01, 0x89, 0x86, 0x14, 0x01, 0xf7, 0x86, 0x12, + 0x01, 0x01, 0x00, 0x74, 0x08, 0xc7, 0x06, 0x17, 0x4c, 0x58, 0x02, 0xeb, 0x06, 0xc7, 0x06, 0x17, + 0x4c, 0x08, 0x07, 0x8e, 0x46, 0x02, 0x26, 0x8b, 0x1e, 0x68, 0x00, 0x81, 0xe3, 0xff, 0xf4, 0xa9, + 0x04, 0x00, 0x74, 0x04, 0x81, 0xcb, 0x00, 0x08, 0xa9, 0x02, 0x00, 0x74, 0x04, 0x81, 0xcb, 0x00, + 0x03, 0x8e, 0x46, 0x02, 0x26, 0x89, 0x1e, 0x68, 0x00, 0x8d, 0xb6, 0xd8, 0x15, 0xe8, 0x64, 0x02, + 0x8d, 0xb6, 0xd4, 0x15, 0xe8, 0x23, 0x00, 0xf6, 0x06, 0x81, 0x5e, 0x01, 0x74, 0x03, 0xe8, 0x5e, + 0x16, 0xc6, 0x86, 0x07, 0x01, 0x01, 0xe8, 0xd0, 0x03, 0xe8, 0xc7, 0x05, 0xe9, 0xa2, 0xfe, 0x56, + 0x83, 0xc6, 0x08, 0xe8, 0x04, 0x00, 0x5e, 0xe9, 0x97, 0xfe, 0x8e, 0x46, 0x02, 0xb8, 0xc0, 0x00, + 0xe8, 0x20, 0xc7, 0x26, 0xa3, 0x7a, 0x00, 0x8b, 0x04, 0x0d, 0x80, 0x00, 0x89, 0x86, 0xda, 0x01, + 0xe8, 0x10, 0xc7, 0x26, 0xa3, 0x7c, 0x00, 0x8b, 0x44, 0x02, 0x89, 0x86, 0xdc, 0x01, 0xe8, 0x02, + 0xc7, 0x26, 0xa3, 0x7e, 0x00, 0xc3, 0x83, 0x8e, 0x1e, 0x01, 0x01, 0xc6, 0x86, 0x16, 0x01, 0x00, + 0x8a, 0x46, 0x06, 0x3c, 0x00, 0x74, 0x46, 0x3c, 0x10, 0x75, 0x03, 0xe9, 0x53, 0xfe, 0x3c, 0x12, + 0x74, 0x3b, 0x3c, 0x4c, 0x75, 0x03, 0xe9, 0x48, 0xfe, 0x80, 0xbe, 0xfe, 0x00, 0x02, 0x72, 0x1a, + 0x3c, 0x48, 0x74, 0x0f, 0xf6, 0x86, 0x72, 0x02, 0x01, 0x74, 0x17, 0x3c, 0x44, 0x74, 0x04, 0x3c, + 0x46, 0x75, 0x28, 0xc6, 0x46, 0x07, 0x4c, 0xe9, 0x27, 0xfe, 0x3c, 0x0e, 0x74, 0x17, 0x3c, 0x48, + 0x74, 0x19, 0xe8, 0x1c, 0xfe, 0xb8, 0x0f, 0x00, 0xe8, 0x96, 0xdb, 0xeb, 0x35, 0xe8, 0x11, 0xfe, + 0xe8, 0x04, 0x04, 0xeb, 0x2d, 0xc6, 0x46, 0x07, 0x10, 0xeb, 0x20, 0x8e, 0x46, 0x02, 0xf6, 0x06, + 0x81, 0x5e, 0x01, 0x75, 0x08, 0x26, 0x83, 0x26, 0x42, 0x00, 0xfd, 0xeb, 0x08, 0xc6, 0x86, 0x6d, + 0x01, 0x01, 0xe8, 0x0c, 0x16, 0xc6, 0x46, 0x07, 0x12, 0xeb, 0x00, 0xc6, 0x46, 0x09, 0x1e, 0xe9, + 0xdf, 0xfd, 0xc3, 0xc6, 0x86, 0x06, 0x01, 0x00, 0xb8, 0x05, 0x00, 0x80, 0xbe, 0x07, 0x01, 0x01, + 0x75, 0x03, 0xe9, 0xcf, 0xfd, 0x8b, 0x44, 0x08, 0x89, 0x86, 0xf4, 0x00, 0x8b, 0x44, 0x0a, 0xa9, + 0x00, 0x10, 0x74, 0x03, 0x0d, 0x00, 0x01, 0x89, 0x86, 0xf6, 0x00, 0x89, 0x86, 0xf8, 0x00, 0x8b, + 0x44, 0x12, 0x0b, 0xc0, 0x75, 0x21, 0xf7, 0x86, 0xf4, 0x00, 0x00, 0x40, 0x74, 0x0b, 0xb8, 0x1f, + 0x47, 0xf7, 0x86, 0xf6, 0x00, 0x00, 0x12, 0x75, 0x0e, 0xb8, 0x18, 0x47, 0xf7, 0x86, 0xf6, 0x00, + 0x00, 0x01, 0x75, 0x03, 0xb8, 0xc6, 0x11, 0x89, 0x86, 0xfa, 0x00, 0xe8, 0xab, 0x02, 0x8d, 0xbe, + 0x56, 0x04, 0x8b, 0x44, 0x0c, 0x89, 0x05, 0x89, 0x86, 0x00, 0x01, 0x8b, 0x44, 0x0e, 0x89, 0x45, + 0x02, 0x89, 0x86, 0x02, 0x01, 0x8b, 0x44, 0x10, 0x89, 0x45, 0x04, 0x89, 0x86, 0x04, 0x01, 0x80, + 0xbe, 0x62, 0x01, 0x01, 0x75, 0x21, 0x8b, 0x44, 0x0c, 0x89, 0x86, 0xbc, 0x03, 0x89, 0x86, 0xc2, + 0x03, 0x8b, 0x44, 0x0e, 0x89, 0x86, 0xbe, 0x03, 0x89, 0x86, 0xc4, 0x03, 0x8b, 0x44, 0x10, 0x89, + 0x86, 0xc0, 0x03, 0x89, 0x86, 0xc6, 0x03, 0x8e, 0x46, 0x02, 0x8b, 0x86, 0xfa, 0x00, 0x26, 0xa3, + 0x52, 0x00, 0x8b, 0x44, 0x14, 0x26, 0xa3, 0x6a, 0x00, 0x8b, 0x44, 0x16, 0x25, 0xff, 0xf4, 0x83, + 0xc8, 0x30, 0x26, 0xa3, 0x68, 0x00, 0x8d, 0x1e, 0x6c, 0x05, 0x8b, 0x44, 0x18, 0xc1, 0xe8, 0x04, + 0x83, 0xe0, 0x0f, 0xd7, 0xa2, 0x87, 0x03, 0x8b, 0x44, 0x18, 0xc1, 0xe8, 0x0c, 0x83, 0xe0, 0x0f, + 0xd7, 0xa2, 0x88, 0x03, 0x33, 0xc0, 0xd7, 0xa2, 0x89, 0x03, 0x06, 0x51, 0x8c, 0xd8, 0x8e, 0xc0, + 0xbe, 0x80, 0x03, 0x8d, 0xbe, 0x1a, 0x04, 0xb9, 0x05, 0x00, 0xf3, 0xa5, 0x59, 0x07, 0x8b, 0x86, + 0xf4, 0x00, 0x25, 0xff, 0xfe, 0xc1, 0xe8, 0x08, 0x89, 0x86, 0x28, 0x02, 0xf7, 0x86, 0xf4, 0x00, + 0x04, 0x00, 0x74, 0x0f, 0xf6, 0x06, 0x81, 0x5e, 0x01, 0x75, 0x08, 0xc6, 0x06, 0x81, 0x5e, 0x01, + 0xe8, 0xa7, 0x11, 0x80, 0xbe, 0x62, 0x01, 0x01, 0x75, 0x01, 0xc3, 0xc6, 0x86, 0x06, 0x01, 0x01, + 0xe9, 0xae, 0xfc, 0x56, 0x8c, 0xd8, 0x8e, 0xc0, 0x8d, 0x7c, 0x08, 0x8d, 0xb6, 0xdc, 0x02, 0xb9, + 0x05, 0x00, 0x8b, 0xd1, 0xf3, 0xa5, 0x8d, 0xbe, 0xdc, 0x02, 0x33, 0xc0, 0x8b, 0xca, 0xf3, 0xab, + 0x81, 0xa6, 0x0a, 0x02, 0x7f, 0xdf, 0x5e, 0xe9, 0x87, 0xfc, 0x56, 0x8c, 0xd8, 0x8e, 0xc0, 0x8d, + 0x7c, 0x08, 0x8d, 0xb6, 0x40, 0x02, 0xb9, 0x0c, 0x00, 0x8b, 0xd1, 0xf3, 0xa5, 0x8d, 0xbe, 0x40, + 0x02, 0x33, 0xc0, 0x8b, 0xca, 0xf3, 0xab, 0x5e, 0xe9, 0x66, 0xfc, 0x83, 0xc6, 0x08, 0xe8, 0x03, + 0x00, 0xe9, 0x5d, 0xfc, 0x06, 0x8e, 0x46, 0x02, 0x8b, 0x04, 0x89, 0x86, 0xde, 0x01, 0xe8, 0xe2, + 0xc4, 0x26, 0xa3, 0x66, 0x00, 0x8b, 0x44, 0x02, 0x23, 0x86, 0xfc, 0x01, 0xe8, 0xd4, 0xc4, 0x25, + 0xff, 0x7f, 0x26, 0x8b, 0x0e, 0x64, 0x00, 0x81, 0xe1, 0x00, 0x80, 0x0b, 0xc1, 0x26, 0xa3, 0x64, + 0x00, 0xe8, 0xbf, 0xc4, 0x89, 0x86, 0xe0, 0x01, 0x07, 0xc3, 0xb8, 0x05, 0x00, 0x80, 0xbe, 0x07, + 0x01, 0x01, 0x75, 0x03, 0xe9, 0x1d, 0xfc, 0xc6, 0x86, 0x62, 0x01, 0x01, 0xe8, 0x34, 0xfe, 0xc6, + 0x86, 0x62, 0x01, 0x00, 0xc6, 0x86, 0x06, 0x01, 0x01, 0xe9, 0x05, 0xfc, 0xb8, 0x11, 0x00, 0xc6, + 0x86, 0x62, 0x01, 0x00, 0xe9, 0xfd, 0xfb, 0xc3, 0x8b, 0xd8, 0x26, 0x8b, 0x04, 0x50, 0x33, 0xc0, + 0x50, 0x23, 0xc3, 0x8b, 0xc8, 0x26, 0x89, 0x04, 0x26, 0x8b, 0x04, 0x23, 0xc3, 0x3b, 0xc1, 0x58, + 0x75, 0x3c, 0x05, 0x55, 0x55, 0x73, 0xe9, 0xb8, 0x01, 0x00, 0x50, 0x23, 0xc3, 0x8b, 0xc8, 0x26, + 0x89, 0x04, 0x26, 0x8b, 0x04, 0x23, 0xc3, 0x3b, 0xc1, 0x58, 0x75, 0x22, 0xd1, 0xc0, 0x73, 0xea, + 0xf7, 0xd0, 0x50, 0x23, 0xc3, 0x8b, 0xc8, 0x26, 0x89, 0x04, 0x26, 0x8b, 0x04, 0x23, 0xc3, 0x3b, + 0xc1, 0x58, 0x75, 0x0a, 0xd1, 0xc0, 0x72, 0xea, 0xf8, 0x58, 0x26, 0x89, 0x04, 0xc3, 0xf9, 0xeb, + 0xf8, 0x8b, 0x44, 0x08, 0x25, 0xff, 0x7b, 0x89, 0x86, 0x12, 0x01, 0x89, 0x86, 0x14, 0x01, 0x8e, + 0x46, 0x02, 0x26, 0x8b, 0x1e, 0x68, 0x00, 0x81, 0xe3, 0xff, 0xf4, 0xa9, 0x04, 0x00, 0x74, 0x04, + 0x81, 0xcb, 0x00, 0x08, 0xa9, 0x02, 0x00, 0x74, 0x04, 0x81, 0xcb, 0x00, 0x03, 0x8e, 0x46, 0x02, + 0x26, 0x89, 0x1e, 0x68, 0x00, 0xe9, 0x69, 0xfb, 0xe9, 0x61, 0xfb, 0x8b, 0x44, 0x08, 0x89, 0x86, + 0x30, 0x01, 0xbe, 0xcd, 0x4c, 0xe8, 0xee, 0xc6, 0xe9, 0x56, 0xfb, 0x8b, 0x44, 0x08, 0x8e, 0x46, + 0x02, 0x26, 0xa3, 0x6a, 0x00, 0xe9, 0x49, 0xfb, 0x80, 0x7e, 0x06, 0x0e, 0x74, 0x06, 0x80, 0x7e, + 0x06, 0x48, 0x75, 0x13, 0x80, 0x7e, 0x08, 0x00, 0x74, 0x06, 0x80, 0x7e, 0x08, 0x16, 0x75, 0x07, + 0x8d, 0x5c, 0x08, 0xe8, 0xa6, 0xe8, 0xc3, 0xb8, 0x00, 0x10, 0xe9, 0x27, 0xfb, 0xb8, 0x04, 0x00, + 0xf6, 0x86, 0x07, 0x01, 0x01, 0x74, 0x1e, 0x8e, 0x46, 0x02, 0x26, 0xa1, 0x68, 0x00, 0x8b, 0x5c, + 0x08, 0x81, 0xe3, 0xff, 0xf4, 0x25, 0x00, 0x0b, 0x0b, 0xd8, 0x8e, 0x46, 0x02, 0x26, 0x89, 0x1e, + 0x68, 0x00, 0xb8, 0x00, 0x20, 0xe9, 0xfc, 0xfa, 0xb8, 0x05, 0x00, 0xf6, 0x86, 0x07, 0x01, 0x01, + 0x75, 0x11, 0xfa, 0xe8, 0x54, 0xc8, 0xfa, 0xe8, 0xe7, 0xfa, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x0e, + 0x32, 0x00, 0x02, 0xe9, 0xde, 0xfa, 0xe9, 0xd8, 0xfa, 0xf7, 0x86, 0xf4, 0x00, 0x00, 0x40, 0x74, + 0x0d, 0xc6, 0x86, 0xfe, 0x00, 0x02, 0xf7, 0x86, 0xf6, 0x00, 0x00, 0x12, 0x75, 0x12, 0xc6, 0x86, + 0xfe, 0x00, 0x01, 0xf7, 0x86, 0xf6, 0x00, 0x00, 0x11, 0x75, 0x05, 0xc6, 0x86, 0xfe, 0x00, 0x00, + 0xc3, 0x8b, 0xd0, 0xb8, 0x01, 0x00, 0xe9, 0xa3, 0x01, 0xc3, 0x80, 0xbe, 0xb2, 0x02, 0x01, 0x74, + 0x0e, 0x80, 0xbe, 0x07, 0x01, 0x01, 0x75, 0xf1, 0x80, 0xbe, 0x09, 0x01, 0x01, 0x74, 0xea, 0xc6, + 0x86, 0x09, 0x01, 0x01, 0xc6, 0x86, 0xb2, 0x02, 0x00, 0x80, 0xbe, 0xfe, 0x00, 0x01, 0x74, 0x0c, + 0x80, 0xbe, 0xfe, 0x00, 0x02, 0x75, 0x08, 0x0d, 0x00, 0x08, 0xeb, 0x03, 0x0d, 0x00, 0x01, 0x80, + 0xbe, 0xaa, 0x02, 0x01, 0x74, 0x0a, 0x80, 0xbe, 0xac, 0x02, 0x01, 0x74, 0x03, 0x0d, 0x00, 0x04, + 0x80, 0xbe, 0xaa, 0x02, 0x01, 0x74, 0x0a, 0x80, 0xbe, 0xab, 0x02, 0x01, 0x74, 0x03, 0x0d, 0x00, + 0x02, 0xf7, 0x86, 0xa6, 0x02, 0x01, 0x00, 0x74, 0x03, 0x0d, 0x00, 0x08, 0xa9, 0x00, 0x80, 0x74, + 0x1d, 0xc7, 0x86, 0x2e, 0x01, 0x02, 0x00, 0xf6, 0x86, 0x2c, 0x01, 0x01, 0x74, 0x1d, 0x53, 0xbb, + 0x40, 0x60, 0x8e, 0xc3, 0x26, 0x81, 0x0e, 0x32, 0x00, 0x00, 0x02, 0x5b, 0xeb, 0x0d, 0x8a, 0x56, + 0x06, 0xd0, 0xe2, 0xd0, 0xe2, 0xd0, 0xe2, 0x24, 0x0f, 0x0a, 0xc2, 0x89, 0x86, 0x38, 0x02, 0x8b, + 0xd0, 0xb8, 0x02, 0x00, 0xe9, 0x92, 0x00, 0x8b, 0x96, 0x1e, 0x01, 0x8b, 0x86, 0x12, 0x01, 0xa9, + 0x00, 0x02, 0x74, 0x06, 0xf7, 0xc2, 0x05, 0x80, 0x74, 0x0e, 0xc6, 0x86, 0x07, 0x01, 0x00, 0xc6, + 0x86, 0x16, 0x01, 0x00, 0x81, 0xca, 0x80, 0x00, 0x33, 0xc0, 0x89, 0x86, 0x1e, 0x01, 0x89, 0x96, + 0x20, 0x01, 0xc7, 0x86, 0x38, 0x02, 0x00, 0x00, 0xf7, 0xc2, 0x01, 0x00, 0x75, 0x22, 0x83, 0xbe, + 0x2e, 0x01, 0x03, 0x74, 0x1b, 0xc7, 0x86, 0x2e, 0x01, 0x03, 0x00, 0xf6, 0x86, 0x2c, 0x01, 0x01, + 0x74, 0x0e, 0x53, 0xbb, 0x40, 0x60, 0x8e, 0xc3, 0x26, 0x81, 0x0e, 0x32, 0x00, 0x00, 0x02, 0x5b, + 0xb8, 0x03, 0x00, 0xeb, 0x34, 0x3b, 0xc0, 0x74, 0x00, 0x8b, 0xd0, 0xb8, 0x04, 0x00, 0xeb, 0x29, + 0xc3, 0xc6, 0x86, 0xce, 0x01, 0x00, 0xc6, 0x86, 0xcf, 0x01, 0x00, 0x55, 0x33, 0xed, 0xbe, 0x7a, + 0x5d, 0xe8, 0x22, 0xc5, 0x5d, 0xb8, 0x05, 0x00, 0xeb, 0x0f, 0xb8, 0x06, 0x00, 0xeb, 0x0a, 0xb8, + 0x07, 0x00, 0xeb, 0x05, 0xb8, 0x08, 0x00, 0xeb, 0x00, 0x8b, 0xb6, 0x60, 0x01, 0x3b, 0xb6, 0x5e, + 0x01, 0x75, 0x0a, 0xf7, 0x86, 0xb0, 0x15, 0x00, 0x80, 0x74, 0x02, 0xeb, 0x5f, 0x8b, 0x8e, 0x5e, + 0x01, 0x41, 0x80, 0xe1, 0x07, 0x3b, 0xf1, 0x75, 0x20, 0x46, 0x83, 0xe6, 0x07, 0x89, 0xb6, 0x60, + 0x01, 0x51, 0x8b, 0xce, 0xd1, 0xe1, 0xd1, 0xe1, 0x8d, 0xb6, 0x3e, 0x01, 0x03, 0xf1, 0x8b, 0x0c, + 0x83, 0xf9, 0x05, 0x74, 0x03, 0x0d, 0x00, 0x01, 0x59, 0x83, 0xf8, 0x04, 0x75, 0x1a, 0x51, 0xb9, + 0x08, 0x00, 0x8d, 0xb6, 0x3e, 0x01, 0x39, 0x04, 0x74, 0x08, 0x83, 0xc6, 0x04, 0xe2, 0xf7, 0x59, + 0xeb, 0x06, 0x89, 0x54, 0x02, 0x59, 0xeb, 0x13, 0x89, 0x8e, 0x5e, 0x01, 0xd1, 0xe1, 0xd1, 0xe1, + 0x8d, 0xb6, 0x3e, 0x01, 0x03, 0xf1, 0x89, 0x04, 0x89, 0x54, 0x02, 0xc3, 0x8d, 0xb6, 0xb0, 0x15, + 0x89, 0x54, 0x06, 0xc7, 0x44, 0x04, 0x08, 0x00, 0x3c, 0x05, 0x75, 0x05, 0xc7, 0x44, 0x04, 0x06, + 0x00, 0x25, 0xff, 0x7f, 0x89, 0x04, 0xb8, 0x40, 0x60, 0x8e, 0xc0, 0x26, 0xc7, 0x06, 0x30, 0x00, + 0x00, 0x20, 0xc3, 0x8b, 0x86, 0x14, 0x01, 0x89, 0x86, 0x12, 0x01, 0xc6, 0x46, 0x09, 0x1e, 0xc6, + 0x46, 0x08, 0x1e, 0xc6, 0x46, 0x0b, 0x00, 0xc7, 0x86, 0x28, 0x01, 0x00, 0x00, 0xc7, 0x86, 0x2a, + 0x01, 0x00, 0x00, 0x8c, 0xd8, 0x8e, 0xc0, 0x33, 0xc0, 0x8d, 0xbe, 0xe4, 0x01, 0xb9, 0x2b, 0x00, + 0xf3, 0xab, 0xc7, 0x86, 0x2a, 0x02, 0xff, 0xff, 0x8e, 0x46, 0x02, 0xb8, 0x02, 0x00, 0xf7, 0x86, + 0xf4, 0x00, 0x80, 0x00, 0x74, 0x03, 0x83, 0xc8, 0x01, 0xf7, 0x86, 0xf4, 0x00, 0x40, 0x00, 0x74, + 0x03, 0x83, 0xc8, 0x04, 0xf7, 0x86, 0xf4, 0x00, 0x20, 0x00, 0x74, 0x03, 0x83, 0xc8, 0x08, 0x26, + 0xa3, 0x4e, 0x00, 0xb0, 0x02, 0xe8, 0x65, 0xc8, 0xf7, 0x86, 0xf4, 0x00, 0x00, 0x20, 0x74, 0x28, + 0xf7, 0x86, 0x12, 0x01, 0x00, 0x84, 0x74, 0x0c, 0xb8, 0x05, 0x00, 0xe8, 0x27, 0x00, 0xc6, 0x46, + 0x07, 0x42, 0xeb, 0x20, 0xf7, 0x86, 0xf6, 0x00, 0x80, 0x00, 0x74, 0x0c, 0xb8, 0x05, 0x00, 0xe8, + 0x13, 0x00, 0xc6, 0x46, 0x07, 0x42, 0xeb, 0x0c, 0xb8, 0x02, 0x00, 0xe8, 0x07, 0x00, 0xc6, 0x46, + 0x07, 0x02, 0xeb, 0x00, 0xc3, 0x50, 0xb0, 0x00, 0x88, 0x86, 0xaa, 0x02, 0x88, 0x86, 0xab, 0x02, + 0x88, 0x86, 0xac, 0x02, 0x88, 0x86, 0xad, 0x02, 0x88, 0x86, 0xaf, 0x02, 0x88, 0x86, 0xae, 0x02, + 0x58, 0x9c, 0xfa, 0x83, 0xf8, 0x02, 0x74, 0x13, 0x83, 0xf8, 0x05, 0x74, 0x0c, 0xc7, 0x46, 0x12, + 0x2c, 0x21, 0xc7, 0x46, 0x14, 0x2c, 0x21, 0xeb, 0x42, 0xeb, 0x21, 0xc6, 0x86, 0xaa, 0x02, 0x01, + 0xc6, 0x86, 0xae, 0x02, 0x01, 0xc6, 0x86, 0xaf, 0x02, 0x00, 0xc7, 0x46, 0x12, 0xf3, 0x36, 0xc7, + 0x46, 0x14, 0x21, 0x34, 0xc7, 0x86, 0xba, 0x01, 0x2c, 0x00, 0xeb, 0x1f, 0xc6, 0x86, 0xac, 0x02, + 0x01, 0xc6, 0x86, 0xae, 0x02, 0x00, 0xc6, 0x86, 0xaf, 0x02, 0x01, 0xc7, 0x46, 0x12, 0xf7, 0x36, + 0xc7, 0x46, 0x14, 0x25, 0x34, 0xc7, 0x86, 0xba, 0x01, 0x30, 0x00, 0x0e, 0xe8, 0x02, 0x00, 0xeb, + 0x01, 0xcf, 0xc3, 0x8c, 0x00, 0xf8, 0x4c, 0xbc, 0x02, 0x96, 0x00, 0x2e, 0x4d, 0x14, 0x00, 0x96, + 0x00, 0x42, 0x4d, 0x08, 0x07, 0x96, 0x00, 0x80, 0x4d, 0x6e, 0x00, 0x78, 0x00, 0xd2, 0x4f, 0x00, + 0x00, 0x6e, 0x00, 0x42, 0x4e, 0xf4, 0x01, 0x6e, 0x00, 0x72, 0x4e, 0x08, 0x07, 0x6e, 0x00, 0x8a, + 0x51, 0x02, 0x00, 0xaa, 0x00, 0xa6, 0x4e, 0xfa, 0x00, 0x8c, 0x00, 0xf6, 0x4e, 0x02, 0x00, 0x8c, + 0x00, 0x0c, 0x4e, 0x3c, 0x00, 0x78, 0x00, 0x62, 0x4f, 0x04, 0x01, 0x96, 0x00, 0x8e, 0x4f, 0x64, + 0x00, 0x96, 0x00, 0xb2, 0x4f, 0xdc, 0x05, 0xbe, 0x00, 0xe0, 0x50, 0xf4, 0x01, 0xa0, 0x00, 0x5c, + 0x52, 0xf4, 0x01, 0xbe, 0x00, 0x0a, 0x51, 0xf4, 0x01, 0x82, 0x00, 0x22, 0x55, 0x19, 0x00, 0x6e, + 0x00, 0x42, 0x52, 0x14, 0x00, 0x78, 0x00, 0x1e, 0x51, 0xc4, 0x09, 0x6e, 0x00, 0x32, 0x51, 0x02, + 0x00, 0xd2, 0x00, 0xac, 0x55, 0x2c, 0x01, 0x78, 0x00, 0x34, 0x54, 0xf0, 0x00, 0x6e, 0x00, 0xb4, + 0x52, 0x32, 0x00, 0xa0, 0x00, 0x16, 0x53, 0xbc, 0x02, 0x6e, 0x00, 0x28, 0x53, 0x08, 0x07, 0x6e, + 0x00, 0x36, 0x53, 0xe8, 0x03, 0x6e, 0x00, 0x48, 0x53, 0x14, 0x00, 0x96, 0x00, 0x54, 0x53, 0x64, + 0x00, 0xa0, 0x00, 0x42, 0x54, 0xf4, 0x01, 0xc8, 0x00, 0xe0, 0x4e, 0x02, 0x00, 0x6e, 0x00, 0x84, + 0x53, 0x04, 0x00, 0x8c, 0x00, 0x0c, 0x54, 0x14, 0x00, 0x6e, 0x00, 0xe6, 0x55, 0x84, 0x03, 0x96, + 0x00, 0xf4, 0x55, 0x02, 0x00, 0x82, 0x00, 0x34, 0x52, 0x14, 0x00, 0xb4, 0x00, 0x20, 0x56, 0x02, + 0x00, 0xdc, 0x00, 0xdc, 0x55, 0x64, 0x00, 0xa0, 0x00, 0x47, 0x55, 0x64, 0x00, 0xc8, 0x00, 0x5e, + 0x55, 0x03, 0x00, 0xd2, 0x00, 0xb0, 0x55, 0xf4, 0x01, 0xd2, 0x00, 0xc2, 0x55, 0x4c, 0x04, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x80, 0xbe, 0x58, 0x02, + 0x01, 0x75, 0x28, 0x80, 0x7e, 0x08, 0x00, 0x75, 0x22, 0xf6, 0x86, 0x69, 0x02, 0x01, 0x74, 0x1c, + 0xe8, 0x10, 0xe0, 0xbe, 0xef, 0x4b, 0xe8, 0x2d, 0xc2, 0x8c, 0xd8, 0x8e, 0xc0, 0x33, 0xc0, 0x8d, + 0xbe, 0xf2, 0x01, 0xab, 0xab, 0xab, 0xc6, 0x86, 0x69, 0x02, 0x00, 0xc3, 0xe8, 0xc8, 0xe2, 0xeb, + 0xdf, 0x90, 0x8a, 0x46, 0x08, 0x3c, 0x0a, 0x75, 0x0b, 0xf6, 0x86, 0x62, 0x02, 0x01, 0x74, 0x04, + 0xc6, 0x46, 0x09, 0x04, 0xc3, 0x90, 0x80, 0xbe, 0xab, 0x02, 0x01, 0x74, 0x32, 0x80, 0x7e, 0x08, + 0x06, 0x75, 0x2c, 0x80, 0x7e, 0x06, 0x0c, 0x75, 0x0f, 0xf6, 0x86, 0x62, 0x02, 0x01, 0x74, 0x08, + 0xb8, 0x07, 0x00, 0xe8, 0xcb, 0xd3, 0xeb, 0x17, 0xf6, 0x86, 0x62, 0x02, 0x01, 0x74, 0x10, 0xf6, + 0x86, 0x5d, 0x02, 0x01, 0x75, 0x09, 0xc6, 0x86, 0x5d, 0x02, 0x01, 0xc6, 0x46, 0x09, 0x08, 0xc3, + 0xe9, 0x84, 0x00, 0x90, 0x8a, 0x4e, 0x06, 0x8a, 0x56, 0x08, 0x80, 0xf9, 0x06, 0x74, 0xf1, 0x80, + 0xf9, 0x08, 0x74, 0x05, 0x80, 0xf9, 0x0a, 0x75, 0x0a, 0x80, 0xfa, 0x0c, 0x74, 0xe2, 0x80, 0xfa, + 0x04, 0x74, 0xdd, 0x80, 0xfa, 0x0c, 0x74, 0x05, 0x80, 0xfa, 0x04, 0x75, 0x59, 0xf6, 0x86, 0x67, + 0x02, 0x01, 0x74, 0x52, 0xe8, 0xd9, 0x02, 0xf6, 0x86, 0x65, 0x02, 0x01, 0x74, 0x0b, 0x81, 0x8e, + 0x0a, 0x02, 0x00, 0x80, 0xc6, 0x86, 0x89, 0x02, 0x01, 0xc6, 0x46, 0x09, 0x06, 0x81, 0x8e, 0x0a, + 0x02, 0x00, 0x50, 0xc6, 0x86, 0x89, 0x02, 0x01, 0xc6, 0x86, 0x6e, 0x02, 0x01, 0xc6, 0x86, 0x6d, + 0x02, 0x01, 0xc6, 0x86, 0x6f, 0x02, 0x01, 0xe8, 0x9c, 0xc3, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, + 0x4c, 0x00, 0xfe, 0x26, 0x81, 0x0e, 0x32, 0x00, 0x00, 0x80, 0xbe, 0xfb, 0x4b, 0xe8, 0x46, 0xc1, + 0xbe, 0x25, 0x4c, 0xe8, 0x40, 0xc1, 0xc3, 0xb8, 0x07, 0x00, 0xe8, 0x24, 0xd3, 0xeb, 0xf7, 0x90, + 0x80, 0xbe, 0xaa, 0x02, 0x01, 0x74, 0x02, 0xeb, 0x2b, 0x80, 0x7e, 0x06, 0x10, 0x75, 0x06, 0xc6, + 0x46, 0x07, 0x12, 0xeb, 0x1f, 0x80, 0x7e, 0x08, 0x08, 0x75, 0x19, 0xc6, 0x86, 0x6d, 0x02, 0x01, + 0xc6, 0x86, 0x6f, 0x02, 0x01, 0xe8, 0x4e, 0xc3, 0xbe, 0x61, 0x4c, 0xe8, 0x08, 0xc1, 0xbe, 0x67, + 0x4c, 0xe8, 0x02, 0xc1, 0xc3, 0x90, 0xf6, 0x86, 0x63, 0x02, 0x01, 0x74, 0x28, 0xc6, 0x86, 0x63, + 0x02, 0x00, 0x80, 0x7e, 0x08, 0x0a, 0x75, 0x06, 0xc6, 0x46, 0x09, 0x04, 0xeb, 0x17, 0x80, 0x7e, + 0x08, 0x06, 0x75, 0x11, 0xc6, 0x86, 0x6d, 0x02, 0x01, 0xe8, 0x1a, 0xc3, 0xbe, 0x25, 0x4c, 0xe8, + 0xd4, 0xc0, 0xe8, 0x09, 0xde, 0xc3, 0x8a, 0x46, 0x06, 0x3c, 0x04, 0x75, 0x1e, 0xf7, 0x86, 0xf6, + 0x00, 0x00, 0x10, 0x75, 0x0e, 0xc6, 0x46, 0x07, 0x06, 0xc6, 0x46, 0x06, 0x06, 0xc6, 0x46, 0x09, + 0x04, 0xeb, 0x16, 0xb8, 0x0d, 0x00, 0xe8, 0x98, 0xd2, 0xeb, 0x0e, 0x3c, 0x08, 0x72, 0x0a, 0x3c, + 0x0c, 0x77, 0x06, 0xb8, 0x05, 0x00, 0xe8, 0x88, 0xd2, 0xc3, 0x80, 0x7e, 0x08, 0x00, 0x75, 0x33, + 0xf6, 0x86, 0x58, 0x02, 0x01, 0x75, 0x2c, 0xf6, 0x86, 0x62, 0x02, 0x01, 0x74, 0x25, 0x8e, 0x46, + 0x02, 0x26, 0xf7, 0x06, 0x54, 0x00, 0x03, 0x00, 0x74, 0x11, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, + 0x54, 0x00, 0x03, 0xbe, 0x1f, 0x4c, 0xe8, 0x6d, 0xc0, 0xeb, 0x08, 0xc6, 0x46, 0x09, 0x04, 0xff, + 0x86, 0x4e, 0x02, 0xc3, 0x80, 0x7e, 0x08, 0x18, 0x75, 0x0e, 0xbe, 0xa3, 0x4c, 0xe8, 0x56, 0xc0, + 0xe8, 0x9d, 0x01, 0xe8, 0x88, 0xdd, 0xeb, 0x00, 0xc3, 0x90, 0x80, 0x7e, 0x08, 0x00, 0x75, 0x35, + 0x80, 0xbe, 0x5f, 0x02, 0x01, 0x75, 0x58, 0x80, 0xbe, 0x58, 0x02, 0x01, 0x74, 0x1f, 0xe8, 0x3d, + 0xde, 0x80, 0x7e, 0x06, 0x0a, 0x75, 0x16, 0xc6, 0x86, 0x67, 0x02, 0x01, 0xc6, 0x46, 0x07, 0x0c, + 0xf7, 0x86, 0xf6, 0x00, 0x00, 0x40, 0x75, 0x05, 0xc6, 0x86, 0x62, 0x02, 0x01, 0xc3, 0xbe, 0x25, + 0x4c, 0xe8, 0x12, 0xc0, 0xc3, 0x8a, 0x46, 0x08, 0x3c, 0x04, 0x75, 0x0e, 0xbe, 0x25, 0x4c, 0xe8, + 0x04, 0xc0, 0xff, 0x86, 0xbc, 0x02, 0xe8, 0x6f, 0xdd, 0xc3, 0x3c, 0x06, 0x75, 0xdf, 0xf6, 0x86, + 0x63, 0x02, 0x01, 0x75, 0xd8, 0xbe, 0x25, 0x4c, 0xe8, 0xeb, 0xbf, 0xe8, 0x20, 0xdd, 0xc3, 0xc6, + 0x86, 0x6a, 0x02, 0x01, 0xc3, 0x90, 0x80, 0xbe, 0xab, 0x02, 0x01, 0x74, 0x22, 0x80, 0x7e, 0x06, + 0x0c, 0x75, 0x1b, 0xff, 0x86, 0xc2, 0x02, 0x83, 0xbe, 0xc2, 0x02, 0x04, 0x77, 0x0a, 0xbe, 0x31, + 0x4c, 0xe8, 0xc2, 0xbf, 0xe8, 0xbe, 0xde, 0xc3, 0xb8, 0x09, 0x00, 0xe8, 0xa3, 0xd1, 0xc3, 0xeb, + 0xfd, 0x90, 0x80, 0x7e, 0x08, 0x02, 0x75, 0x1d, 0x80, 0xbe, 0x62, 0x02, 0x01, 0x74, 0x08, 0xb8, + 0x05, 0x00, 0xe8, 0x8c, 0xd1, 0xeb, 0x0e, 0xff, 0x86, 0x4e, 0x02, 0xc6, 0x46, 0x09, 0x04, 0xb8, + 0x00, 0x01, 0xe8, 0x73, 0xe0, 0xc3, 0x80, 0x7e, 0x08, 0x00, 0x75, 0x16, 0x80, 0xbe, 0x58, 0x02, + 0x01, 0x74, 0x07, 0x80, 0xbe, 0x62, 0x02, 0x00, 0x74, 0x08, 0xff, 0x86, 0x4e, 0x02, 0xc6, 0x46, + 0x09, 0x04, 0xc3, 0xe9, 0xb8, 0x00, 0xf6, 0x86, 0xaf, 0x02, 0x01, 0x75, 0x07, 0xf6, 0x86, 0x62, + 0x02, 0x01, 0x74, 0xef, 0xf7, 0x86, 0xf6, 0x00, 0x00, 0x80, 0x74, 0x06, 0xbe, 0x07, 0x4c, 0xe8, + 0x54, 0xbf, 0x8d, 0xbe, 0xdc, 0x02, 0x8c, 0xd9, 0x8e, 0xc1, 0xb9, 0x05, 0x00, 0x33, 0xc0, 0xf3, + 0xaf, 0x74, 0xd0, 0x80, 0xbe, 0xaa, 0x02, 0x01, 0x74, 0x45, 0x80, 0xbe, 0xab, 0x02, 0x01, 0x74, + 0x5f, 0x80, 0xbe, 0xac, 0x02, 0x01, 0x74, 0x09, 0x80, 0xbe, 0xad, 0x02, 0x01, 0x74, 0x51, 0xeb, + 0x6d, 0xc7, 0x86, 0xc0, 0x02, 0x04, 0x00, 0x81, 0x8e, 0x0a, 0x02, 0x00, 0x20, 0xc6, 0x86, 0x89, + 0x02, 0x01, 0xf6, 0x86, 0x72, 0x02, 0x01, 0x74, 0x14, 0x80, 0x7e, 0x08, 0x16, 0x75, 0x0e, 0xc6, + 0x86, 0x5a, 0x02, 0x00, 0xe8, 0x18, 0xde, 0xc7, 0x86, 0x2e, 0x02, 0x03, 0x00, 0xeb, 0x3f, 0xc7, + 0x86, 0xc0, 0x02, 0x04, 0x00, 0xc6, 0x86, 0x5a, 0x02, 0x00, 0xe8, 0x02, 0xde, 0xc7, 0x86, 0x2e, + 0x02, 0x03, 0x00, 0x81, 0x8e, 0x0a, 0x02, 0x00, 0x20, 0xc6, 0x86, 0x89, 0x02, 0x01, 0xeb, 0x1e, + 0xc7, 0x86, 0xc0, 0x02, 0x04, 0x00, 0x81, 0x8e, 0x0a, 0x02, 0x00, 0x20, 0xc6, 0x86, 0x89, 0x02, + 0x01, 0xf7, 0x86, 0xf6, 0x00, 0x00, 0x80, 0x75, 0x05, 0xc6, 0x86, 0x5a, 0x02, 0x00, 0xc3, 0x90, + 0xc7, 0x86, 0x36, 0x02, 0x06, 0x00, 0x80, 0xbe, 0xfe, 0x00, 0x02, 0x74, 0x18, 0xb8, 0x00, 0x02, + 0x80, 0xbe, 0x65, 0x02, 0x01, 0x74, 0x37, 0xf6, 0x86, 0xac, 0x02, 0x01, 0x75, 0x07, 0xf6, 0x86, + 0xad, 0x02, 0x01, 0x74, 0x05, 0xb8, 0x00, 0x05, 0xeb, 0x24, 0xb8, 0x00, 0x04, 0xc7, 0x86, 0x36, + 0x02, 0x04, 0x00, 0x8a, 0x4e, 0x08, 0x80, 0xf9, 0x0c, 0x74, 0x13, 0xb8, 0x00, 0x04, 0x80, 0xbe, + 0x5e, 0x02, 0x01, 0x74, 0x09, 0xb8, 0x00, 0x03, 0xc7, 0x86, 0x36, 0x02, 0x07, 0x00, 0x89, 0x86, + 0x0c, 0x03, 0xc3, 0x90, 0x80, 0x7e, 0x08, 0x08, 0x74, 0x23, 0x8a, 0x46, 0x06, 0x3c, 0x04, 0x72, + 0x1c, 0x3c, 0x48, 0x74, 0x04, 0x3c, 0x0e, 0x77, 0x14, 0xf6, 0x86, 0x61, 0x02, 0x01, 0x74, 0x0d, + 0xf6, 0x86, 0x60, 0x02, 0x01, 0x74, 0x06, 0xb8, 0x0c, 0x00, 0xe8, 0x24, 0xd0, 0xc3, 0xc6, 0x86, + 0x61, 0x02, 0x01, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x26, 0x44, 0x00, 0xff, 0xf7, 0xe8, 0xcc, 0x03, + 0xc3, 0x90, 0x80, 0x7e, 0x06, 0x02, 0x74, 0x06, 0x80, 0x7e, 0x08, 0x08, 0x75, 0x06, 0xb8, 0x01, + 0x00, 0xe8, 0xfd, 0xcf, 0xc3, 0x90, 0x51, 0x52, 0x56, 0x80, 0xbe, 0xfe, 0x00, 0x02, 0x75, 0x02, + 0xeb, 0x48, 0x33, 0xd2, 0xc6, 0x86, 0x6d, 0x02, 0x00, 0xe8, 0x3a, 0xc0, 0x8d, 0xb6, 0xa6, 0x01, + 0x8d, 0xbe, 0xac, 0x01, 0x8c, 0xd8, 0x8e, 0xc0, 0xa5, 0xa5, 0xa5, 0xc6, 0x86, 0x87, 0x02, 0x00, + 0xb0, 0x00, 0xe8, 0xed, 0xe1, 0xc6, 0x86, 0x68, 0x01, 0x02, 0xc7, 0x86, 0x66, 0x01, 0x20, 0x03, + 0xbe, 0x19, 0x4c, 0xe8, 0xd0, 0xbd, 0x8b, 0xb6, 0x64, 0x01, 0xb9, 0xe8, 0x03, 0x8e, 0x46, 0x02, + 0x26, 0xc7, 0x06, 0x5c, 0x00, 0x00, 0x00, 0xe8, 0x08, 0xdc, 0x5e, 0x5a, 0x59, 0xc3, 0x80, 0x7e, + 0x06, 0x02, 0x74, 0x0f, 0x80, 0x7e, 0x06, 0x44, 0x74, 0x09, 0x80, 0x7e, 0x08, 0x08, 0x74, 0x03, + 0xe9, 0x94, 0x00, 0x80, 0xbe, 0xfe, 0x00, 0x02, 0x75, 0x26, 0xf6, 0x86, 0x76, 0x02, 0x01, 0x74, + 0x0b, 0xbe, 0x19, 0x4c, 0xe8, 0x8f, 0xbd, 0xe8, 0x3a, 0xdf, 0xeb, 0x7b, 0xf6, 0x86, 0x77, 0x02, + 0x01, 0x74, 0x0d, 0xc6, 0x86, 0x77, 0x02, 0x00, 0xbe, 0x19, 0x4c, 0xe8, 0x78, 0xbd, 0xeb, 0x67, + 0xfe, 0x8e, 0x68, 0x01, 0x75, 0x05, 0xe8, 0xc5, 0x04, 0xeb, 0x5c, 0xbe, 0x19, 0x4c, 0xe8, 0x65, + 0xbd, 0x80, 0xbe, 0xfe, 0x00, 0x02, 0x75, 0x08, 0xb9, 0x5a, 0x00, 0xe8, 0x07, 0xdc, 0xeb, 0x47, + 0xe8, 0x4a, 0xb8, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x0e, 0x4c, 0x00, 0x00, 0x01, 0x90, 0x8e, 0x46, + 0x02, 0x26, 0x81, 0x26, 0x4c, 0x00, 0xff, 0xfe, 0x8e, 0x46, 0x02, 0x26, 0xc7, 0x06, 0x5c, 0x00, + 0x00, 0x00, 0x8b, 0xb6, 0x64, 0x01, 0xb9, 0xe8, 0x03, 0xc6, 0x86, 0x8a, 0x02, 0x01, 0x83, 0xbe, + 0x66, 0x01, 0x01, 0x75, 0x07, 0xe8, 0x51, 0xdb, 0xeb, 0x0d, 0xeb, 0x05, 0xe8, 0x63, 0xdb, 0xeb, + 0x06, 0xb8, 0x01, 0x00, 0xe8, 0xfa, 0xce, 0xc3, 0x80, 0x7e, 0x06, 0x44, 0x75, 0x07, 0xf6, 0x86, + 0x76, 0x02, 0x01, 0x75, 0xec, 0xc3, 0xf7, 0x86, 0xf6, 0x00, 0x80, 0x00, 0x74, 0x10, 0x80, 0x7e, + 0x06, 0x14, 0x75, 0x0a, 0xb8, 0x05, 0x00, 0xe8, 0x1b, 0xf9, 0xc6, 0x46, 0x07, 0x42, 0xc3, 0x90, + 0x80, 0xbe, 0xab, 0x02, 0x01, 0x74, 0x4e, 0xc6, 0x86, 0x70, 0x02, 0x00, 0x80, 0x7e, 0x08, 0x08, + 0x75, 0x2c, 0xf6, 0x86, 0x71, 0x02, 0x01, 0x74, 0x25, 0xe9, 0xdf, 0xcc, 0xbe, 0x2b, 0x4c, 0xe8, + 0xc4, 0xbc, 0x8e, 0x46, 0x02, 0xf6, 0x06, 0x81, 0x5e, 0x01, 0x75, 0x08, 0x26, 0x83, 0x26, 0x42, + 0x00, 0xfd, 0xeb, 0x08, 0xc6, 0x86, 0x6d, 0x01, 0x01, 0xe8, 0x35, 0x09, 0xeb, 0x16, 0x80, 0x7e, + 0x06, 0x10, 0x75, 0x10, 0xc6, 0x46, 0x09, 0x00, 0xc6, 0x86, 0x58, 0x02, 0x00, 0xc6, 0x86, 0x6c, + 0x02, 0x00, 0xeb, 0xc8, 0xc3, 0xeb, 0xfd, 0x90, 0x80, 0x7e, 0x06, 0x42, 0x75, 0x14, 0x80, 0xbe, + 0xfe, 0x00, 0x02, 0x72, 0x27, 0xf6, 0x86, 0x74, 0x02, 0x01, 0x75, 0x08, 0xb8, 0x02, 0x00, 0xe8, + 0x02, 0x04, 0xeb, 0x45, 0xc7, 0x86, 0x34, 0x05, 0x00, 0x02, 0xc7, 0x86, 0x30, 0x05, 0x00, 0x02, + 0xc6, 0x86, 0x79, 0x02, 0x01, 0xc6, 0x86, 0xb0, 0x02, 0x00, 0xeb, 0x1e, 0xc6, 0x86, 0xb0, 0x02, + 0x01, 0xc7, 0x86, 0x34, 0x05, 0x00, 0x02, 0xc7, 0x86, 0x30, 0x05, 0x00, 0x01, 0xf6, 0x86, 0x78, + 0x02, 0x01, 0x74, 0x06, 0xc7, 0x86, 0x34, 0x05, 0x00, 0x06, 0xc7, 0x86, 0xd8, 0x02, 0x05, 0x00, + 0xbe, 0xa9, 0x4c, 0xe8, 0x30, 0xbc, 0xe8, 0x5f, 0xdd, 0xc3, 0x80, 0x7e, 0x08, 0x18, 0x74, 0x06, + 0x80, 0x7e, 0x08, 0x1a, 0x75, 0x04, 0xc6, 0x46, 0x09, 0x1c, 0xc3, 0x90, 0x80, 0x7e, 0x06, 0x46, + 0x75, 0x06, 0xb8, 0x05, 0x00, 0xe8, 0xf9, 0xcd, 0xc3, 0x90, 0x80, 0x7e, 0x08, 0x1c, 0x75, 0x0a, + 0x80, 0x7e, 0x06, 0x48, 0x75, 0x04, 0xc6, 0x46, 0x07, 0x44, 0xc3, 0x90, 0x80, 0x7e, 0x06, 0x42, + 0x75, 0x04, 0xc6, 0x46, 0x07, 0x44, 0xc3, 0x90, 0xf6, 0x86, 0x73, 0x02, 0x01, 0x74, 0x27, 0xf6, + 0x46, 0x06, 0x46, 0x75, 0x18, 0x80, 0xbe, 0xfe, 0x00, 0x02, 0x74, 0x11, 0xc6, 0x86, 0x6f, 0x02, + 0x01, 0xc6, 0x86, 0x7a, 0x02, 0x01, 0xe8, 0x0d, 0xbe, 0xff, 0x86, 0xd6, 0x02, 0xe8, 0xce, 0xd9, + 0xbe, 0x97, 0x4c, 0xe8, 0xc0, 0xbb, 0xc3, 0x90, 0x80, 0x7e, 0x06, 0x42, 0x75, 0x35, 0xf6, 0x86, + 0x7b, 0x02, 0x01, 0x75, 0x2e, 0x83, 0xbe, 0xd8, 0x02, 0x00, 0x74, 0x29, 0xff, 0x8e, 0xd8, 0x02, + 0xbe, 0xa9, 0x4c, 0xe8, 0xa0, 0xbb, 0x80, 0xbe, 0xfe, 0x00, 0x01, 0x77, 0x13, 0xc7, 0x86, 0x34, + 0x05, 0x00, 0x02, 0xf6, 0x86, 0x78, 0x02, 0x01, 0x74, 0x06, 0xc7, 0x86, 0x34, 0x05, 0x00, 0x06, + 0xe8, 0xb5, 0xdc, 0xeb, 0x49, 0xf7, 0x86, 0xf6, 0x00, 0x00, 0x10, 0x74, 0x1c, 0x80, 0xbe, 0xfe, + 0x00, 0x00, 0x74, 0x08, 0xb8, 0x06, 0x00, 0xe8, 0xfa, 0x02, 0xeb, 0x32, 0xf7, 0x86, 0xf6, 0x00, + 0x00, 0x10, 0x74, 0x05, 0xc6, 0x86, 0xfe, 0x00, 0x01, 0x80, 0xbe, 0xfe, 0x00, 0x02, 0x74, 0x18, + 0xf7, 0x86, 0xf4, 0x00, 0x00, 0x10, 0x74, 0x10, 0xb8, 0x02, 0x00, 0xe8, 0x77, 0xf7, 0xc6, 0x46, + 0x09, 0x1e, 0xc6, 0x46, 0x07, 0x02, 0xeb, 0x06, 0xb8, 0x06, 0x00, 0xe8, 0x23, 0xcd, 0xc3, 0x90, + 0x80, 0x7e, 0x06, 0x46, 0x75, 0x21, 0x80, 0xbe, 0xfe, 0x00, 0x02, 0x74, 0x11, 0xc6, 0x86, 0x6f, + 0x02, 0x01, 0xc6, 0x86, 0x7a, 0x02, 0x01, 0xe8, 0x5c, 0xbd, 0xff, 0x86, 0xd6, 0x02, 0xbe, 0xaf, + 0x4c, 0xe8, 0x12, 0xbb, 0xe8, 0x83, 0xdc, 0xc3, 0x80, 0x7e, 0x06, 0x44, 0x75, 0x06, 0xb8, 0x05, + 0x00, 0xe8, 0xed, 0xcc, 0xc3, 0x90, 0x80, 0x7e, 0x06, 0x46, 0x75, 0x08, 0xb8, 0x06, 0x00, 0xe8, + 0xdf, 0xcc, 0xeb, 0x17, 0x80, 0x7e, 0x08, 0x16, 0x75, 0x11, 0xc7, 0x86, 0x2e, 0x02, 0x04, 0x00, + 0xf6, 0x86, 0x72, 0x02, 0x01, 0x74, 0x04, 0xc6, 0x46, 0x09, 0x18, 0xc3, 0x8e, 0x46, 0x02, 0x26, + 0x8b, 0x16, 0x42, 0x00, 0xf7, 0xc2, 0x02, 0x00, 0x74, 0x14, 0x8b, 0xc2, 0x83, 0xe0, 0xfd, 0x8e, + 0x46, 0x02, 0x26, 0xa3, 0x42, 0x00, 0x8e, 0x46, 0x02, 0x26, 0x89, 0x16, 0x42, 0x00, 0xc3, 0x90, + 0x8e, 0x46, 0x02, 0x26, 0xf7, 0x06, 0x54, 0x00, 0x03, 0x00, 0x74, 0x10, 0x8e, 0x46, 0x02, 0x26, + 0x83, 0x26, 0x54, 0x00, 0x03, 0xc6, 0x86, 0x59, 0x02, 0x01, 0xeb, 0x00, 0xf6, 0x86, 0x59, 0x02, + 0x01, 0x75, 0x14, 0x80, 0x7e, 0x08, 0x00, 0x75, 0x0e, 0xc6, 0x46, 0x09, 0x02, 0xff, 0x86, 0x44, + 0x02, 0x81, 0x8e, 0xe6, 0x02, 0x00, 0x02, 0xc6, 0x86, 0x59, 0x02, 0x00, 0xc3, 0x90, 0xf7, 0x86, + 0xf4, 0x00, 0x00, 0x10, 0x75, 0x15, 0x8e, 0x46, 0x02, 0x26, 0xf7, 0x06, 0x54, 0x00, 0x03, 0x00, + 0x74, 0x09, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, 0x54, 0x00, 0x03, 0xc3, 0x80, 0xbe, 0xb0, 0x02, + 0x01, 0x75, 0x32, 0x8e, 0x46, 0x02, 0x26, 0xf7, 0x06, 0x54, 0x00, 0x08, 0x00, 0x74, 0x21, 0xf6, + 0x86, 0x61, 0x02, 0x01, 0x74, 0x1f, 0xf6, 0x86, 0x60, 0x02, 0x01, 0x75, 0x18, 0xc7, 0x86, 0x2e, + 0x02, 0x0a, 0x00, 0xbe, 0x43, 0x4c, 0xe8, 0x2d, 0xba, 0xc6, 0x86, 0x60, 0x02, 0x01, 0xeb, 0x05, + 0xc6, 0x86, 0x60, 0x02, 0x00, 0xc3, 0xbe, 0x55, 0x4c, 0xe8, 0x1a, 0xba, 0x33, 0xc0, 0x87, 0x86, + 0xcc, 0x02, 0x0b, 0xc0, 0x75, 0x14, 0x80, 0xbe, 0x65, 0x02, 0x00, 0x74, 0x0d, 0xc6, 0x86, 0x65, + 0x02, 0x00, 0x80, 0xa6, 0x0b, 0x02, 0x7f, 0xe8, 0x46, 0xfb, 0xc3, 0x80, 0x7e, 0x06, 0x12, 0x75, + 0x10, 0xc6, 0x86, 0x08, 0x01, 0x01, 0xc6, 0x86, 0x09, 0x01, 0x00, 0xe8, 0x7b, 0xf3, 0xe8, 0x72, + 0xf5, 0xc3, 0xf6, 0x86, 0x6e, 0x01, 0x01, 0x74, 0x15, 0x80, 0xbe, 0x70, 0x01, 0x03, 0x73, 0x07, + 0xc6, 0x86, 0x6c, 0x01, 0x01, 0xeb, 0x23, 0xc6, 0x86, 0x6e, 0x01, 0x00, 0xeb, 0x1c, 0xf6, 0x86, + 0x6f, 0x01, 0x01, 0x74, 0x15, 0x80, 0xbe, 0x71, 0x01, 0x03, 0x73, 0x07, 0xc6, 0x86, 0x6d, 0x01, + 0x01, 0xeb, 0x07, 0xc6, 0x86, 0x6f, 0x01, 0x00, 0xeb, 0x00, 0xc3, 0xf7, 0x86, 0xb0, 0x15, 0x00, + 0x80, 0x75, 0x07, 0x83, 0xbe, 0xb0, 0x15, 0x05, 0x74, 0x05, 0xc6, 0x86, 0xce, 0x01, 0x01, 0xc3, + 0xe8, 0xd2, 0xcc, 0xc3, 0xf7, 0x86, 0xf6, 0x00, 0x08, 0x00, 0x74, 0x09, 0xe8, 0x6b, 0xf4, 0xbe, + 0xe5, 0x4c, 0xe8, 0x81, 0xb9, 0xc3, 0xf7, 0x86, 0xf6, 0x00, 0x08, 0x00, 0x74, 0x11, 0x81, 0x8e, + 0x0a, 0x02, 0x00, 0x04, 0xc6, 0x86, 0x89, 0x02, 0x01, 0xb8, 0x10, 0x00, 0xe8, 0x52, 0xcb, 0xc3, + 0x8b, 0x86, 0x30, 0x01, 0x88, 0xa6, 0x2c, 0x01, 0xc3, 0x90, 0x80, 0x7e, 0x06, 0x4a, 0x75, 0x06, + 0xb8, 0x04, 0x00, 0xe8, 0x3b, 0xcb, 0xc3, 0x90, 0x80, 0x7e, 0x06, 0x4c, 0x75, 0x25, 0xf6, 0x86, + 0x74, 0x02, 0x01, 0x74, 0x07, 0x83, 0xbe, 0xda, 0x02, 0x00, 0x75, 0x0a, 0xc6, 0x46, 0x07, 0x12, + 0xc6, 0x46, 0x09, 0x1e, 0xeb, 0x0d, 0xff, 0x8e, 0xda, 0x02, 0xbe, 0xbb, 0x4c, 0xe8, 0x26, 0xb9, + 0xe8, 0xed, 0xda, 0xc3, 0x80, 0xbe, 0xfe, 0x00, 0x02, 0x75, 0x2e, 0x8a, 0x3e, 0x80, 0x5e, 0xb3, + 0x01, 0xe8, 0x6e, 0xbf, 0xf6, 0x86, 0x74, 0x02, 0x01, 0x74, 0x24, 0xa9, 0x04, 0x00, 0x75, 0x1d, + 0xff, 0x8e, 0xb5, 0x02, 0x75, 0x15, 0xc6, 0x86, 0x74, 0x02, 0x00, 0x8a, 0x4e, 0x06, 0x80, 0xf9, + 0x42, 0x74, 0x08, 0xb8, 0x02, 0x00, 0xe8, 0xd8, 0xca, 0xeb, 0x41, 0xeb, 0x39, 0xeb, 0x31, 0xa9, + 0x04, 0x00, 0x74, 0x2c, 0xc6, 0x86, 0x74, 0x02, 0x01, 0x8a, 0x4e, 0x06, 0x80, 0xf9, 0x4a, 0x75, + 0x1d, 0xc6, 0x46, 0x07, 0x42, 0xc6, 0x46, 0x06, 0x42, 0xe8, 0x8a, 0xbe, 0xbe, 0x79, 0x4c, 0xe8, + 0xc4, 0xb8, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x26, 0x44, 0x00, 0x32, 0xfe, 0xeb, 0x08, 0xeb, 0x06, + 0xc7, 0x86, 0xb5, 0x02, 0x02, 0x00, 0xbe, 0xc7, 0x4c, 0xe8, 0xaa, 0xb8, 0xc3, 0x90, 0xf7, 0x86, + 0xf6, 0x00, 0x00, 0x10, 0x74, 0x26, 0x80, 0x8e, 0xfe, 0x00, 0x00, 0x74, 0x1f, 0xfe, 0x8e, 0xfe, + 0x00, 0xc6, 0x86, 0x6d, 0x02, 0x01, 0xc6, 0x86, 0x6f, 0x02, 0x01, 0xe8, 0xc8, 0xba, 0xbe, 0x61, + 0x4c, 0xe8, 0x82, 0xb8, 0xbe, 0x67, 0x4c, 0xe8, 0x7c, 0xb8, 0xeb, 0x06, 0xb8, 0x01, 0x00, 0xe8, + 0x5f, 0xca, 0xc3, 0x90, 0xf7, 0x86, 0xf6, 0x00, 0x00, 0x10, 0x74, 0x32, 0x80, 0x8e, 0xfe, 0x00, + 0x00, 0x74, 0x2b, 0xfe, 0x8e, 0xfe, 0x00, 0xbe, 0x79, 0x4c, 0xe8, 0x59, 0xb8, 0xb0, 0x02, 0xe8, + 0xab, 0xbc, 0xc6, 0x86, 0x6d, 0x02, 0x01, 0xc6, 0x86, 0x6f, 0x02, 0x01, 0xe8, 0x87, 0xba, 0x8e, + 0x46, 0x02, 0x26, 0x81, 0x0e, 0x40, 0x00, 0x00, 0x1e, 0xe8, 0xfa, 0xbd, 0xeb, 0x03, 0xe8, 0x20, + 0xca, 0xc3, 0xf6, 0x86, 0x95, 0x02, 0x01, 0x74, 0x07, 0xa8, 0x24, 0x74, 0x03, 0xe8, 0xb0, 0xcb, + 0xf6, 0x86, 0xae, 0x02, 0x01, 0x74, 0x09, 0x80, 0xbe, 0x62, 0x02, 0x01, 0x75, 0x58, 0xeb, 0x09, + 0xf6, 0x86, 0x72, 0x02, 0x01, 0x75, 0x10, 0xeb, 0x52, 0x80, 0x7e, 0x06, 0x0e, 0x74, 0x02, 0xeb, + 0x45, 0x80, 0x7e, 0x08, 0x00, 0x75, 0x3f, 0xa8, 0x01, 0x74, 0x05, 0x83, 0x8e, 0xe6, 0x02, 0x10, + 0xa8, 0x04, 0x74, 0x05, 0x83, 0x8e, 0xe6, 0x02, 0x04, 0xa8, 0x08, 0x74, 0x05, 0x83, 0x8e, 0xe6, + 0x02, 0x40, 0xa8, 0x20, 0x74, 0x10, 0x81, 0x8e, 0xe6, 0x02, 0x00, 0x01, 0xf6, 0x86, 0x58, 0x02, + 0x01, 0x75, 0x03, 0xe8, 0xaa, 0xbc, 0xa8, 0x40, 0x74, 0x05, 0x83, 0x8e, 0xe6, 0x02, 0x01, 0xa8, + 0x80, 0x74, 0x03, 0xe8, 0x52, 0x00, 0xa9, 0x00, 0x01, 0x75, 0x01, 0xc3, 0x50, 0x80, 0x7e, 0x08, + 0x0a, 0x75, 0x06, 0xc6, 0x46, 0x09, 0x04, 0xeb, 0x1b, 0x80, 0x7e, 0x08, 0x00, 0x75, 0x23, 0xc6, + 0x46, 0x09, 0x02, 0xff, 0x86, 0x44, 0x02, 0xf6, 0x86, 0x62, 0x02, 0x01, 0x74, 0x06, 0x81, 0x8e, + 0xe6, 0x02, 0x00, 0x02, 0xc6, 0x86, 0x6d, 0x02, 0x01, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x0e, 0x4c, + 0x00, 0x10, 0x8e, 0x46, 0x02, 0x26, 0xc7, 0x06, 0x48, 0x00, 0x00, 0x00, 0x8e, 0x46, 0x02, 0x26, + 0xc7, 0x06, 0x48, 0x00, 0x00, 0x01, 0x58, 0xc3, 0x83, 0x8e, 0xe6, 0x02, 0x20, 0x83, 0x7e, 0x06, + 0x08, 0x75, 0x13, 0x8b, 0x8e, 0xce, 0x02, 0x41, 0x89, 0x8e, 0xce, 0x02, 0x80, 0xf9, 0x02, 0x75, + 0x05, 0x50, 0xe8, 0x84, 0xd5, 0x58, 0xc3, 0x50, 0x53, 0x51, 0x8a, 0x4e, 0x06, 0x80, 0xf9, 0x0e, + 0x74, 0x1e, 0x80, 0xf9, 0x48, 0x74, 0x19, 0x80, 0xbe, 0x58, 0x02, 0x01, 0x74, 0x46, 0x80, 0xf9, + 0x08, 0x72, 0x41, 0x80, 0xf9, 0x0e, 0x77, 0x3c, 0xb8, 0x02, 0x00, 0xe8, 0x13, 0xc9, 0xeb, 0x34, + 0xc7, 0x86, 0x2e, 0x02, 0x05, 0x00, 0xc6, 0x86, 0x65, 0x02, 0x01, 0x8a, 0x46, 0x08, 0x3c, 0x06, + 0x74, 0x26, 0x3c, 0x02, 0x74, 0x51, 0x3c, 0x08, 0x74, 0x1a, 0x3c, 0x04, 0x74, 0x16, 0xf6, 0x86, + 0xac, 0x02, 0x01, 0x75, 0x13, 0xf6, 0x86, 0xad, 0x02, 0x01, 0x75, 0x0c, 0xc6, 0x46, 0x09, 0x04, + 0xff, 0x86, 0x4e, 0x02, 0x59, 0x5b, 0x58, 0xc3, 0x8b, 0x86, 0x0a, 0x02, 0xf6, 0xc4, 0x80, 0x75, + 0x0c, 0x80, 0xcc, 0x80, 0x89, 0x86, 0x0a, 0x02, 0xc6, 0x86, 0x89, 0x02, 0x01, 0x81, 0xbe, 0x0c, + 0x03, 0x00, 0x02, 0x74, 0xdf, 0xc7, 0x86, 0x0c, 0x03, 0x00, 0x02, 0xf6, 0x86, 0xaa, 0x02, 0x01, + 0x74, 0xd2, 0xe8, 0xf9, 0xd3, 0xeb, 0xcd, 0xb8, 0x00, 0x01, 0xe8, 0x9b, 0xd7, 0xf6, 0x86, 0x62, + 0x02, 0x01, 0x74, 0xc0, 0xc6, 0x46, 0x09, 0x04, 0xeb, 0xba, 0xfa, 0xc7, 0x06, 0x30, 0x00, 0xb6, + 0x0e, 0x8c, 0x0e, 0x32, 0x00, 0xb8, 0x00, 0x00, 0xe7, 0x06, 0xb8, 0xea, 0x09, 0xe7, 0x00, 0xb8, + 0x09, 0x00, 0xe7, 0x06, 0xb0, 0x7f, 0xe8, 0x5c, 0xb3, 0xc6, 0x06, 0x82, 0x5e, 0x80, 0xfb, 0xc3, + 0xf7, 0x86, 0x82, 0x01, 0x01, 0x00, 0x74, 0x1a, 0xc7, 0x86, 0x82, 0x01, 0x00, 0x00, 0xf6, 0x86, + 0x6e, 0x01, 0x01, 0x74, 0x0d, 0xc6, 0x86, 0x6e, 0x01, 0x00, 0xbe, 0xd9, 0x4c, 0xe8, 0x18, 0xb7, + 0xeb, 0x00, 0xf7, 0x86, 0x8a, 0x01, 0x01, 0x00, 0x74, 0x45, 0xc7, 0x86, 0x8a, 0x01, 0x00, 0x00, + 0xf6, 0x86, 0x6f, 0x01, 0x01, 0x74, 0x0d, 0xc6, 0x86, 0x6f, 0x01, 0x00, 0xbe, 0xd9, 0x4c, 0xe8, + 0xf6, 0xb6, 0xeb, 0x2b, 0x80, 0x7e, 0x06, 0x0e, 0x74, 0x06, 0x80, 0x7e, 0x06, 0x48, 0x75, 0x1f, + 0xf6, 0x86, 0x61, 0x02, 0x01, 0x74, 0x18, 0xf6, 0x86, 0x60, 0x02, 0x01, 0x75, 0x11, 0xc6, 0x86, + 0x60, 0x02, 0x01, 0xc7, 0x86, 0x2e, 0x02, 0x0a, 0x00, 0xb8, 0x0c, 0x00, 0xe8, 0x02, 0xc8, 0xc3, + 0xb9, 0x01, 0x00, 0x33, 0xdb, 0x8b, 0xaf, 0x48, 0x5d, 0x8e, 0x46, 0x02, 0x26, 0x8b, 0x16, 0x54, + 0x00, 0x83, 0xe2, 0x08, 0x26, 0xa1, 0x72, 0x00, 0xd1, 0xe8, 0xd0, 0xe8, 0x86, 0xe0, 0xf7, 0xc2, + 0x08, 0x00, 0x75, 0x02, 0xeb, 0x67, 0x83, 0xbe, 0x74, 0x01, 0x00, 0x75, 0x04, 0x88, 0xa6, 0x78, + 0x01, 0x81, 0xbe, 0x74, 0x01, 0xbc, 0x02, 0x72, 0x06, 0xc7, 0x86, 0x74, 0x01, 0xf4, 0x01, 0x8a, + 0xc4, 0x2a, 0xe4, 0x83, 0xf8, 0x7f, 0x75, 0x12, 0x8b, 0x86, 0x74, 0x01, 0xbe, 0xeb, 0x09, 0xf7, + 0xe6, 0xbe, 0x20, 0x00, 0xf7, 0xf6, 0x03, 0x86, 0x78, 0x01, 0x89, 0x86, 0x7c, 0x01, 0xff, 0x86, + 0x74, 0x01, 0x83, 0xbe, 0x7c, 0x01, 0x7d, 0x72, 0x21, 0x83, 0xbe, 0x88, 0x01, 0x01, 0x74, 0x1a, + 0xc7, 0x86, 0x88, 0x01, 0x01, 0x00, 0xc7, 0x86, 0x8a, 0x01, 0x01, 0x00, 0xa1, 0x32, 0x5d, 0x89, + 0x86, 0x8c, 0x01, 0xa1, 0x34, 0x5d, 0x89, 0x86, 0x8e, 0x01, 0xe9, 0x94, 0x00, 0x83, 0xbe, 0x76, + 0x01, 0x00, 0x75, 0x04, 0x88, 0x86, 0x7a, 0x01, 0x81, 0xbe, 0x76, 0x01, 0xbc, 0x02, 0x72, 0x06, + 0xc7, 0x86, 0x76, 0x01, 0xf4, 0x01, 0x2a, 0xe4, 0x83, 0xf8, 0x7f, 0x75, 0x12, 0x8b, 0x86, 0x76, + 0x01, 0xbe, 0xeb, 0x09, 0xf7, 0xe6, 0xbe, 0x20, 0x00, 0xf7, 0xf6, 0x03, 0x86, 0x7a, 0x01, 0x89, + 0x86, 0x7e, 0x01, 0xff, 0x86, 0x76, 0x01, 0x83, 0xbe, 0x80, 0x01, 0x01, 0x74, 0x53, 0x83, 0xf8, + 0x1f, 0x72, 0x4e, 0x8d, 0xb6, 0x96, 0x01, 0x83, 0x3c, 0x12, 0x72, 0x45, 0x83, 0x3c, 0x23, 0x77, + 0x40, 0x83, 0x7c, 0x02, 0x1f, 0x72, 0x3a, 0x83, 0x7c, 0x02, 0x45, 0x77, 0x34, 0x83, 0x7c, 0x04, + 0x12, 0x72, 0x2e, 0x90, 0x83, 0x7c, 0x04, 0x23, 0x77, 0x27, 0x81, 0x7c, 0x06, 0x9c, 0x00, 0x72, + 0x20, 0xc7, 0x86, 0x80, 0x01, 0x01, 0x00, 0xc7, 0x86, 0x82, 0x01, 0x01, 0x00, 0xc7, 0x86, 0x88, + 0x01, 0x00, 0x00, 0xa1, 0x32, 0x5d, 0x89, 0x86, 0x84, 0x01, 0xa1, 0x34, 0x5d, 0x89, 0x86, 0x86, + 0x01, 0x83, 0xc3, 0x02, 0x49, 0x74, 0x03, 0xe9, 0xdb, 0xfe, 0xc3, 0x50, 0x51, 0x52, 0x56, 0x57, + 0x8e, 0x46, 0x02, 0x83, 0x86, 0x90, 0x01, 0x01, 0x83, 0x96, 0x92, 0x01, 0x00, 0xc7, 0x86, 0x80, + 0x01, 0x00, 0x00, 0x26, 0xa1, 0x72, 0x00, 0xd1, 0xe8, 0xd0, 0xe8, 0x86, 0xe0, 0x8d, 0xb6, 0x96, + 0x01, 0x26, 0x8b, 0x0e, 0x54, 0x00, 0x83, 0xe1, 0x08, 0x89, 0x8e, 0x94, 0x01, 0xf7, 0xc1, 0x08, + 0x00, 0x74, 0x4f, 0x8b, 0x4c, 0x0a, 0x89, 0x4c, 0x0e, 0x8b, 0x4c, 0x06, 0x89, 0x4c, 0x0a, 0x8b, + 0x4c, 0x02, 0x89, 0x4c, 0x06, 0x2a, 0xe4, 0x8b, 0xc8, 0x83, 0xf8, 0x7f, 0x75, 0x19, 0xb0, 0x0a, + 0xe6, 0x10, 0xe5, 0x00, 0xb1, 0x05, 0xd3, 0xe8, 0x03, 0x86, 0x7e, 0x01, 0x8b, 0xc8, 0xe4, 0x10, + 0xa8, 0x10, 0x74, 0x03, 0x83, 0xc1, 0x4f, 0x8b, 0xc1, 0x89, 0x44, 0x02, 0xc7, 0x86, 0x7e, 0x01, + 0x00, 0x00, 0xc7, 0x86, 0x76, 0x01, 0x00, 0x00, 0xeb, 0x7f, 0xc7, 0x86, 0x88, 0x01, 0x00, 0x00, + 0xeb, 0x77, 0x8b, 0x4c, 0x08, 0x89, 0x4c, 0x0c, 0x8b, 0x4c, 0x04, 0x89, 0x4c, 0x08, 0x8b, 0x0c, + 0x89, 0x4c, 0x04, 0x8a, 0xc4, 0x2a, 0xe4, 0x8b, 0xc8, 0x83, 0xf8, 0x7f, 0x75, 0x25, 0xb0, 0x0a, + 0xe6, 0x10, 0xe5, 0x00, 0xb1, 0x05, 0xd3, 0xe8, 0x03, 0x86, 0x7c, 0x01, 0x8b, 0xc8, 0xe4, 0x10, + 0xa8, 0x10, 0x74, 0x03, 0x83, 0xc1, 0x4f, 0x8b, 0x96, 0x7c, 0x01, 0x83, 0xf9, 0x7f, 0x77, 0x03, + 0x83, 0xc1, 0x4f, 0x8b, 0xc1, 0x89, 0x04, 0xc7, 0x86, 0x7c, 0x01, 0x00, 0x00, 0xc7, 0x86, 0x74, + 0x01, 0x00, 0x00, 0x83, 0xf8, 0x7d, 0x72, 0xa2, 0x83, 0xbe, 0x88, 0x01, 0x01, 0x74, 0x1a, 0xc7, + 0x86, 0x88, 0x01, 0x01, 0x00, 0xc7, 0x86, 0x8a, 0x01, 0x01, 0x00, 0xa1, 0x32, 0x5d, 0x89, 0x86, + 0x84, 0x01, 0xa1, 0x34, 0x5d, 0x89, 0x86, 0x86, 0x01, 0x5f, 0x5e, 0x5a, 0x59, 0x58, 0xc3, 0x50, + 0x51, 0x57, 0x06, 0xfa, 0x8c, 0xd8, 0x8e, 0xc0, 0x2b, 0xc0, 0x8d, 0xbe, 0x72, 0x01, 0xb9, 0x1a, + 0x00, 0xf3, 0xab, 0xfb, 0x07, 0x5f, 0x59, 0x58, 0xc3, 0xfa, 0xf6, 0x06, 0x82, 0x5e, 0x80, 0x74, + 0x4e, 0xc6, 0x86, 0x6c, 0x01, 0x00, 0xc6, 0x86, 0x6e, 0x01, 0x01, 0xfe, 0x86, 0x70, 0x01, 0x8a, + 0x46, 0x00, 0xa2, 0x82, 0x5e, 0xc7, 0x06, 0x84, 0x5e, 0x02, 0x00, 0xc7, 0x06, 0x86, 0x5e, 0x01, + 0x00, 0xe5, 0x06, 0x83, 0xe0, 0x09, 0xe7, 0x06, 0x8b, 0xc8, 0xb8, 0xd6, 0x13, 0xe7, 0x02, 0xb8, + 0x4e, 0x03, 0xe7, 0x04, 0x83, 0xc9, 0x46, 0x8b, 0xc1, 0xe7, 0x06, 0x8e, 0x46, 0x02, 0x26, 0x83, + 0x0e, 0x42, 0x00, 0x01, 0xbe, 0xd9, 0x4c, 0xe8, 0x7c, 0xb3, 0xc6, 0x86, 0x61, 0x02, 0x01, 0xfb, + 0xc3, 0xfa, 0xf6, 0x06, 0x82, 0x5e, 0x80, 0x74, 0x49, 0xc6, 0x86, 0x6d, 0x01, 0x00, 0xc6, 0x86, + 0x6f, 0x01, 0x01, 0xfe, 0x86, 0x71, 0x01, 0x8a, 0x46, 0x00, 0xa2, 0x82, 0x5e, 0xc7, 0x06, 0x84, + 0x5e, 0x0e, 0x00, 0xc7, 0x06, 0x86, 0x5e, 0x02, 0x00, 0xe5, 0x06, 0x83, 0xe0, 0x09, 0xe7, 0x06, + 0x8b, 0xc8, 0xb8, 0xf7, 0x03, 0xe7, 0x02, 0xb8, 0xd6, 0x13, 0xe7, 0x04, 0x83, 0xc9, 0x46, 0x8b, + 0xc1, 0xe7, 0x06, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x0e, 0x42, 0x00, 0x01, 0xbe, 0xd9, 0x4c, 0xe8, + 0x24, 0xb3, 0xfb, 0xc3, 0xe5, 0x06, 0x83, 0xe0, 0x09, 0xe7, 0x06, 0xc3, 0xb8, 0x9d, 0x06, 0xe7, + 0x02, 0xc7, 0x06, 0x84, 0x5e, 0x04, 0x00, 0xc3, 0xc7, 0x06, 0x84, 0x5e, 0x06, 0x00, 0xc3, 0x90, + 0xc7, 0x06, 0x84, 0x5e, 0x08, 0x00, 0xc3, 0x90, 0x53, 0xc7, 0x06, 0x84, 0x5e, 0x0a, 0x00, 0x33, + 0xdb, 0x8a, 0x1e, 0x82, 0x5e, 0xd0, 0xe3, 0x8b, 0x9f, 0x48, 0x5d, 0x06, 0x8e, 0x47, 0x02, 0x26, + 0x83, 0x26, 0x42, 0x00, 0xfe, 0x07, 0xb8, 0x9d, 0x06, 0xe7, 0x02, 0x5b, 0xc3, 0x90, 0xe5, 0x06, + 0x83, 0xe0, 0x09, 0xe7, 0x06, 0xc7, 0x06, 0x84, 0x5e, 0x0c, 0x00, 0xc6, 0x06, 0x82, 0x5e, 0x80, + 0xc3, 0x90, 0xe5, 0x06, 0x83, 0xe0, 0x09, 0xe7, 0x06, 0xc3, 0xb8, 0xf7, 0x03, 0xe7, 0x02, 0xc7, + 0x06, 0x84, 0x5e, 0x10, 0x00, 0xc3, 0x53, 0xc7, 0x06, 0x84, 0x5e, 0x12, 0x00, 0x33, 0xdb, 0x8a, + 0x1e, 0x82, 0x5e, 0xd0, 0xe3, 0x8b, 0x9f, 0x48, 0x5d, 0x06, 0x8e, 0x47, 0x02, 0x26, 0x83, 0x26, + 0x42, 0x00, 0xfe, 0x07, 0xb8, 0x9d, 0x06, 0xe7, 0x02, 0x5b, 0xc3, 0x90, 0xe5, 0x06, 0x83, 0xe0, + 0x09, 0xe7, 0x06, 0xc7, 0x06, 0x84, 0x5e, 0x14, 0x00, 0xc6, 0x06, 0x82, 0x5e, 0x80, 0xc3, 0x90, + 0xe5, 0x06, 0x83, 0xe0, 0x09, 0xe7, 0x06, 0xc3, 0x4e, 0x6f, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x54, + 0x78, 0x74, 0x30, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, 0x12, 0x45, 0x23, + 0x56, 0x34, 0x00, 0x00, 0x00, 0x00, 0xcd, 0xab, 0xde, 0xbc, 0xef, 0xcd, 0x00, 0x00, 0x00, 0x00, + 0x4e, 0x6f, 0x74, 0x49, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x65, 0x64, 0x00, 0x54, + 0x69, 0x6d, 0x65, 0x72, 0x30, 0x00, 0x00, 0x54, 0x69, 0x6d, 0x65, 0x72, 0x31, 0x00, 0x00, 0x54, + 0x65, 0x73, 0x74, 0x31, 0x00, 0x00, 0x54, 0x65, 0x73, 0x74, 0x32, 0x00, 0x00, 0x90, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x5d, + 0x97, 0x55, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x04, 0x09, 0x00, 0x00, 0x06, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, + 0xe0, 0x02, 0xc0, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, + 0x00, 0x02, 0x04, 0x01, 0x00, 0x00, 0x06, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0xe0, 0x03, 0xc0, 0x00, 0xff, 0xff, + 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x03, 0x06, 0x0b, 0x00, 0x00, + 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, + 0xe0, 0x04, 0xc0, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, + 0x00, 0x04, 0x08, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0b, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0xe0, 0x05, 0xc0, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x05, 0x06, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x08, 0x02, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0xe0, 0x06, 0xc0, 0x00, + 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x06, 0x06, 0x0b, + 0x00, 0x00, 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x12, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x08, 0x02, 0x26, 0x00, 0x00, + 0x00, 0x00, 0x14, 0x00, 0xe0, 0x08, 0xc0, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x20, 0x00, 0x08, 0x1c, 0x26, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0xe0, 0x00, + 0xc0, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x50, 0x20, + 0x0c, 0x23, 0x30, 0x30, 0x30, 0x30, 0xf3, 0xf0, 0xf0, 0xf8, 0xf9, 0xf6, 0x08, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x14, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x21, 0x00, 0x00, 0x04, 0x21, 0x00, 0x00, + 0x06, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x06, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x08, 0x28, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x08, 0x29, 0x20, 0x00, 0x08, 0x00, 0x01, 0x00, 0x04, 0x06, 0x00, 0x00, + 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x00, 0xe0, 0x00, 0xc0, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x26, 0x40, 0x25, 0x06, 0x0b, 0x00, 0x00, + 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x22, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x20, 0x00, 0xe0, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x12, 0x40, 0x26, 0x06, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x00, 0xe0, 0x00, 0xc0, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x60, 0x27, 0x08, 0x0a, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, 0xe0, 0x00, 0xc0, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x60, 0x28, 0x04, 0x30, 0x00, 0x00, + 0x06, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x00, 0xe0, 0x00, 0xc0, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x10, 0x30, 0x11, 0x04, 0x0c, 0x00, 0x01, 0x04, 0x0e, 0x00, 0x02, 0x04, 0x21, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x00, 0xe0, 0x00, 0xc0, 0x00, 0xff, 0xff, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x03, 0x12, 0x04, 0x0f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x12, 0x00, 0xe0, 0x00, 0xc0, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x04, 0x30, 0x13, 0x00, 0x00, 0x00, 0x00, 0x16, 0x00, 0xe0, 0x00, 0xc0, 0x00, + 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x03, 0x14, 0x04, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0xe0, 0x00, 0xc0, 0x00, 0xff, 0xff, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x03, 0x15, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, + 0xe0, 0x08, 0xc0, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, + 0x00, 0x16, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0xe0, 0x07, 0xc0, 0x00, 0xff, 0xff, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x30, 0x17, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, + 0xe0, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, + 0x60, 0x29, 0x08, 0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x2e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x06, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x04, 0x2a, 0x00, 0x00, 0x02, 0x20, 0x80, 0x00, 0x00, 0x06, 0x09, 0x00, 0x00, 0x00, 0x04, 0x03, + 0x01, 0x80, 0x00, 0x00, 0x04, 0x02, 0x80, 0x00, 0x00, 0x08, 0x0b, 0x00, 0x00, 0x00, 0x06, 0x02, + 0x02, 0x80, 0x00, 0x00, 0x08, 0x0b, 0x00, 0x00, 0x00, 0x06, 0x01, 0x26, 0x80, 0x00, 0x00, 0xff, + 0x06, 0x03, 0x00, 0x00, 0x00, 0x04, 0x04, 0x00, 0x00, 0x00, 0x06, 0x05, 0x00, 0x00, 0x00, 0x04, + 0x06, 0x00, 0x00, 0x00, 0x04, 0x07, 0x00, 0x00, 0x00, 0x04, 0x09, 0x00, 0x00, 0x00, 0x04, 0x04, + 0x03, 0x00, 0x00, 0x00, 0x04, 0x04, 0x00, 0x00, 0x00, 0x06, 0x05, 0x00, 0x00, 0x00, 0x04, 0x09, + 0x00, 0x00, 0x00, 0x04, 0x03, 0x0c, 0x80, 0x00, 0x00, 0x04, 0x0e, 0x80, 0x00, 0x00, 0x04, 0x21, + 0x00, 0x00, 0x00, 0x04, 0x01, 0x0f, 0x80, 0x00, 0x00, 0x04, 0x01, 0x0d, 0x80, 0x00, 0x00, 0x04, + 0x04, 0x02, 0x80, 0x00, 0x00, 0x08, 0x22, 0x00, 0x00, 0x00, 0xff, 0x23, 0x00, 0x00, 0x00, 0xff, + 0x21, 0x00, 0x00, 0x00, 0x04, 0x01, 0x09, 0x00, 0x00, 0x00, 0x04, 0x00, 0xa5, 0xa5, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + +#endif /* OLTR_NO_BULLSEYE_MAC */ Property changes on: stable/3/sys/contrib/dev/oltr/trlldbm.c ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: stable/3/sys/contrib/dev/oltr/trlldhm.c =================================================================== --- stable/3/sys/contrib/dev/oltr/trlldhm.c (nonexistent) +++ stable/3/sys/contrib/dev/oltr/trlldhm.c (revision 44655) @@ -0,0 +1,1899 @@ +/* + ****************************** trlld.h *********************************** + * + * Copyright (c) 1997 + * OLICOM A/S + * Denmark + * + * All Rights Reserved + * + * This source file is subject to the terms and conditions of the + * OLICOM Software License Agreement which restricts the manner + * in which it may be used. + * + *--------------------------------------------------------------------------- + * + * Description: Olicom Hawkeye adapter micro-code + * + *--------------------------------------------------------------------------- + */ + +#include "opt_oltr.h" + +#ifndef OLTR_NO_HAWKEYE_MAC + +unsigned char TRlldHawkeyeMac[] = { 0x52, 0x94, 0x03, 0x00, 0x02, 0x75, 0xfb, 0xbb, 0x4f, 0x43, 0x53, 0x4d, 0x41, 0x43, 0x2e, 0x48, + 0x41, 0x57, 0x4b, 0x45, 0x59, 0x45, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xea, 0x55, 0x00, 0x00, 0x00, 0xfc, 0xfa, 0xb8, 0x00, 0x00, 0xbb, 0x00, + 0x00, 0xb9, 0x00, 0x00, 0xba, 0x00, 0x00, 0xbe, 0x00, 0x00, 0xbf, 0x00, 0x00, 0xbd, 0x00, 0x00, + 0x8c, 0xc8, 0x8e, 0xd8, 0x8e, 0xc0, 0x8e, 0xd0, 0xb8, 0x1c, 0x56, 0x8b, 0xe0, 0x83, 0x3e, 0x4e, + 0x00, 0x00, 0x75, 0x1c, 0x2b, 0xdb, 0x8b, 0xf3, 0xad, 0x8b, 0xd8, 0x8b, 0xc8, 0xd1, 0xe9, 0x49, + 0x49, 0xad, 0x03, 0xd8, 0xe2, 0xfb, 0x0b, 0xdb, 0x74, 0x06, 0xc7, 0x06, 0xee, 0x54, 0x01, 0x00, + 0xc7, 0x06, 0x0c, 0x00, 0xa8, 0x01, 0x8c, 0x0e, 0x0e, 0x00, 0xc7, 0x06, 0x04, 0x00, 0xa8, 0x01, + 0x8c, 0x0e, 0x06, 0x00, 0xc7, 0x06, 0x14, 0x00, 0xa8, 0x01, 0x8c, 0x0e, 0x14, 0x00, 0xc7, 0x06, + 0x08, 0x00, 0xa8, 0x01, 0x8c, 0x0e, 0x08, 0x00, 0x90, 0x90, 0x90, 0xc7, 0x06, 0x20, 0x00, 0x6e, + 0x1f, 0x8c, 0x0e, 0x22, 0x00, 0x2b, 0xc0, 0xe7, 0x06, 0xc7, 0x06, 0x30, 0x00, 0x20, 0x0e, 0x8c, + 0x0e, 0x32, 0x00, 0xc7, 0x06, 0x34, 0x00, 0x32, 0x0f, 0x8c, 0x0e, 0x36, 0x00, 0xc7, 0x06, 0x38, + 0x00, 0x64, 0x0f, 0x8c, 0x0e, 0x3a, 0x00, 0xc7, 0x06, 0x3c, 0x00, 0xa8, 0x01, 0x8c, 0x0e, 0x3e, + 0x00, 0xc7, 0x06, 0x08, 0x00, 0xa8, 0x01, 0x8c, 0x0e, 0x0a, 0x00, 0xc7, 0x06, 0x14, 0x00, 0xa8, + 0x01, 0x8c, 0x0e, 0x16, 0x00, 0xbb, 0x40, 0x60, 0x8e, 0xc3, 0x26, 0xa1, 0x02, 0x00, 0x25, 0x00, + 0x50, 0x89, 0x86, 0x0f, 0x01, 0x26, 0x83, 0x0e, 0x72, 0x00, 0x08, 0x2b, 0xc0, 0x2b, 0xc0, 0x2b, + 0xc0, 0x2b, 0xc0, 0x26, 0x83, 0x26, 0x72, 0x00, 0xf7, 0x2b, 0xc0, 0x2b, 0xc0, 0x2b, 0xc0, 0x2b, + 0xc0, 0x26, 0x83, 0x0e, 0x72, 0x00, 0x08, 0x2a, 0xe4, 0xb0, 0x13, 0xe6, 0x10, 0x90, 0x90, 0x90, + 0xb0, 0x08, 0xe6, 0x12, 0x90, 0x90, 0x90, 0xb0, 0x09, 0xe6, 0x12, 0x90, 0x90, 0x90, 0xb0, 0xff, + 0xe6, 0x12, 0x90, 0x90, 0x90, 0x26, 0x83, 0x26, 0x72, 0x00, 0xf7, 0x8b, 0x86, 0x0f, 0x01, 0x26, + 0xa3, 0x02, 0x00, 0x90, 0x90, 0x90, 0x33, 0xc0, 0x26, 0xc7, 0x06, 0x04, 0x00, 0xff, 0xff, 0x26, + 0xc7, 0x06, 0x06, 0x00, 0xff, 0xff, 0x26, 0x09, 0x06, 0x08, 0x00, 0x26, 0x09, 0x06, 0x0a, 0x00, + 0xb8, 0x00, 0x00, 0xe7, 0x06, 0xb8, 0x0f, 0x27, 0xe7, 0x00, 0xb8, 0x09, 0x00, 0xe7, 0x06, 0xb0, + 0x11, 0xe8, 0xae, 0x0a, 0xe8, 0xeb, 0x0a, 0xfb, 0xe9, 0x94, 0x0b, 0x90, 0x50, 0xb0, 0xa0, 0xe6, + 0x10, 0x58, 0xcf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, 0xf0, 0xf0, 0xf0, 0xf0, 0xe7, 0xe7, 0xe7, 0x31, 0x36, + 0x31, 0x32, 0x39, 0x38, 0x20, 0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x28, + 0x63, 0x29, 0x20, 0x31, 0x39, 0x39, 0x37, 0x2c, 0x20, 0x31, 0x39, 0x39, 0x38, 0x20, 0x4f, 0x6c, + 0x69, 0x63, 0x6f, 0x6d, 0x2e, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x73, + 0x20, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x20, 0xf8, 0x1c, 0xf8, 0x1c, 0x2e, 0x32, + 0x14, 0x35, 0x10, 0x37, 0x56, 0x38, 0x98, 0x39, 0xe0, 0x3c, 0xf8, 0x1c, 0xf8, 0x1c, 0xf8, 0x1c, + 0x49, 0x3b, 0x9f, 0x3b, 0x30, 0x3c, 0xad, 0x3c, 0xb2, 0x3c, 0xb7, 0x3c, 0xf8, 0x1c, 0xf8, 0x1c, + 0xf8, 0x1c, 0xf8, 0x1c, 0xf3, 0x34, 0xf8, 0x1c, 0xf8, 0x1c, 0xc3, 0x33, 0x1c, 0x34, 0x1c, 0x34, + 0xb0, 0x34, 0x1c, 0x34, 0xd8, 0x34, 0xf8, 0x1c, 0xf8, 0x1c, 0xf8, 0x1c, 0x49, 0x3b, 0x9f, 0x3b, + 0x30, 0x3c, 0xad, 0x3c, 0xb2, 0x3c, 0xb7, 0x3c, 0xf8, 0x1c, 0x2f, 0x34, 0xf8, 0x1c, 0x78, 0x34, + 0xf8, 0x1c, 0x7f, 0x2f, 0x7f, 0x2f, 0x7f, 0x2f, 0x7f, 0x2f, 0x49, 0x30, 0x75, 0x31, 0x7f, 0x2f, + 0x5b, 0x30, 0x07, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, + 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, + 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, + 0xc7, 0x31, 0xb3, 0x30, 0x7f, 0x2f, 0x7f, 0x2f, 0x7f, 0x2f, 0x7f, 0x2f, 0x7f, 0x2f, 0xe6, 0x30, + 0x7f, 0x2f, 0x7f, 0x2f, 0xf8, 0x30, 0x7f, 0x2f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xff, 0xff, 0x04, 0x04, 0x05, 0xff, 0xff, 0xff, 0x00, 0x03, 0x00, 0x03, 0x03, 0xb7, 0x05, + 0xff, 0xff, 0xc2, 0x05, 0xd2, 0x05, 0xd2, 0x05, 0xd2, 0x05, 0xd2, 0x05, 0x00, 0x00, 0xdd, 0x05, + 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xe3, 0x05, 0x02, 0x06, 0x48, 0x06, 0x48, 0x06, 0x48, 0x06, + 0x17, 0x06, 0x27, 0x06, 0x00, 0x00, 0x2d, 0x06, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xf8, 0x1c, 0x68, 0x3d, 0xde, 0x14, 0x34, 0x2f, 0x1b, 0x23, 0xac, 0x43, 0xf8, 0x1c, 0xa2, 0x3d, + 0x2e, 0x41, 0xab, 0x3f, 0xc4, 0x3d, 0x49, 0x3f, 0xef, 0x40, 0x12, 0x3f, 0xa7, 0x40, 0xb5, 0x41, + 0x1d, 0x42, 0xec, 0x41, 0xce, 0x40, 0x2a, 0x42, 0x4f, 0x42, 0x7a, 0x42, 0x0d, 0x42, 0x98, 0x42, + 0x0a, 0x03, 0x30, 0x03, 0x50, 0x03, 0x7c, 0x03, 0xa2, 0x03, 0x00, 0x04, 0x66, 0x04, 0xa0, 0x04, + 0xea, 0x04, 0xac, 0x05, 0xe4, 0x01, 0x04, 0x03, 0x2a, 0x03, 0x58, 0x03, 0x76, 0x03, 0x9c, 0x03, + 0x60, 0x04, 0x9a, 0x04, 0xe4, 0x04, 0xa6, 0x05, 0xe0, 0x01, 0x08, 0x04, 0x6e, 0x04, 0xf4, 0x02, + 0x1e, 0x03, 0x44, 0x03, 0x6a, 0x03, 0x90, 0x03, 0xb6, 0x03, 0xb0, 0x03, 0xce, 0x03, 0x72, 0x05, + 0xe8, 0x03, 0x54, 0x04, 0x8e, 0x04, 0xb4, 0x04, 0xd4, 0x04, 0x8a, 0x05, 0xfe, 0x04, 0x22, 0x05, + 0x3e, 0x05, 0x56, 0x05, 0xbe, 0x53, 0xc6, 0x53, 0xd2, 0x53, 0xda, 0x53, 0xe2, 0x53, 0x08, 0x54, + 0x1c, 0x54, 0x24, 0x54, 0x30, 0x54, 0x56, 0x54, 0x6a, 0x54, 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, + 0xf6, 0xf7, 0xf8, 0xf9, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xec, 0x19, 0x50, 0x1a, 0x74, 0x1a, + 0xe4, 0x1a, 0x06, 0x1b, 0x9e, 0x1b, 0xfc, 0x1b, 0xf8, 0x1c, 0xf8, 0x1c, 0xf8, 0x1c, 0xf8, 0x1c, + 0x20, 0x1c, 0x42, 0x1c, 0x98, 0x1c, 0xbc, 0x1c, 0xf0, 0x1c, 0xf8, 0x1c, 0xf8, 0x1c, 0x7c, 0x14, + 0xa0, 0x15, 0x24, 0x16, 0x26, 0x16, 0x42, 0x16, 0x68, 0x16, 0x84, 0x16, 0x0e, 0x17, 0x8c, 0x17, + 0x3e, 0x18, 0xf8, 0x1c, 0xf8, 0x1c, 0xf8, 0x1c, 0xf8, 0x1c, 0xd6, 0x1d, 0xf8, 0x1c, 0xf8, 0x1c, + 0xf8, 0x1c, 0xf8, 0x1c, 0xf8, 0x1c, 0xf8, 0x1c, 0xf8, 0x1c, 0xf8, 0x1c, 0xf8, 0x1c, 0xf8, 0x1c, + 0xf8, 0x1c, 0xf8, 0x1c, 0xf8, 0x1c, 0xf8, 0x1c, 0xf8, 0x1c, 0xf8, 0x1c, 0xf8, 0x1c, 0x7a, 0x18, + 0xb8, 0x18, 0x2e, 0x19, 0x74, 0x19, 0xf8, 0x1c, 0xf8, 0x1c, 0xf8, 0x1c, 0xf8, 0x1c, 0xf8, 0x1c, + 0xf8, 0x1c, 0xf8, 0x1c, 0xf8, 0x1c, 0xf8, 0x1c, 0xf8, 0x1c, 0xaa, 0x55, 0x00, 0xff, 0xf6, 0x46, + 0x01, 0x01, 0x75, 0x6a, 0xc6, 0x86, 0x0e, 0x01, 0x05, 0xe8, 0x90, 0x01, 0xe8, 0x50, 0x06, 0xe8, + 0xfc, 0x02, 0xe8, 0x56, 0x03, 0x73, 0x3a, 0xfe, 0x8e, 0x0e, 0x01, 0x74, 0x2e, 0x26, 0x83, 0x0e, + 0x72, 0x00, 0x08, 0x2b, 0xc0, 0x2b, 0xc0, 0x26, 0x83, 0x26, 0x72, 0x00, 0xf7, 0x2b, 0xc0, 0x2b, + 0xc0, 0x26, 0x83, 0x0e, 0x72, 0x00, 0x08, 0x2b, 0xc0, 0x2b, 0xc0, 0x26, 0x83, 0x26, 0x72, 0x00, + 0xf7, 0x8b, 0x86, 0x0f, 0x01, 0x26, 0xa3, 0x02, 0x00, 0xeb, 0xbe, 0xc7, 0x06, 0xee, 0x54, 0x02, + 0x00, 0x32, 0xe4, 0x8a, 0x46, 0x00, 0xe8, 0xf6, 0x03, 0x83, 0x3e, 0x4e, 0x00, 0x02, 0x72, 0x03, + 0xe8, 0x3a, 0x03, 0xa1, 0xee, 0x54, 0xe8, 0x36, 0x3c, 0xc6, 0x46, 0x01, 0x01, 0x90, 0xf6, 0x06, + 0x1e, 0x56, 0x01, 0x74, 0x27, 0xf6, 0x86, 0x6c, 0x01, 0x01, 0x74, 0x03, 0xe8, 0x98, 0x4c, 0xf6, + 0x86, 0x6d, 0x01, 0x01, 0x74, 0x03, 0xe8, 0xe6, 0x4c, 0xf7, 0x86, 0x82, 0x01, 0x01, 0x00, 0x75, + 0x08, 0xf7, 0x86, 0x8a, 0x01, 0x01, 0x00, 0x74, 0x03, 0xe8, 0xc2, 0x49, 0xe8, 0x7b, 0x05, 0xe8, + 0x47, 0x05, 0xe8, 0xbf, 0x04, 0xe8, 0x64, 0x04, 0xf6, 0x86, 0x90, 0x02, 0x01, 0x74, 0x03, 0xe8, + 0xd4, 0x17, 0x33, 0xdb, 0xf6, 0x86, 0xa9, 0x02, 0x01, 0x74, 0x16, 0x8a, 0x5e, 0x09, 0x8a, 0x7e, + 0x08, 0x38, 0xfb, 0x75, 0x30, 0x80, 0xfb, 0x00, 0x74, 0x07, 0x80, 0xfb, 0x1e, 0x74, 0x02, 0xeb, + 0x22, 0x80, 0x7e, 0x06, 0x1e, 0x74, 0x1e, 0x33, 0xdb, 0x8a, 0x5e, 0x07, 0x3a, 0x5e, 0x06, 0x74, + 0x14, 0xfa, 0x50, 0x8b, 0x46, 0x06, 0x89, 0x46, 0x0c, 0x58, 0x88, 0x5e, 0x06, 0x32, 0xff, 0xff, + 0x97, 0x98, 0x05, 0xeb, 0x2d, 0x8a, 0x5e, 0x09, 0x3a, 0x5e, 0x08, 0x74, 0x25, 0x50, 0x8b, 0x46, + 0x08, 0x89, 0x46, 0x0e, 0x58, 0x80, 0xfb, 0x1e, 0x74, 0x0d, 0x80, 0xfb, 0x00, 0x74, 0x08, 0x80, + 0xfb, 0x16, 0x74, 0x03, 0xe8, 0xfc, 0x26, 0x88, 0x5e, 0x08, 0x32, 0xff, 0xfa, 0xff, 0x97, 0x76, + 0x05, 0xfb, 0xfa, 0xf7, 0x86, 0xf0, 0x00, 0xff, 0xff, 0x74, 0x0f, 0x8b, 0xb6, 0xf0, 0x00, 0x8b, + 0x4c, 0x04, 0xe8, 0x0b, 0x0a, 0xfb, 0xff, 0xd1, 0xeb, 0x5c, 0xfb, 0xf7, 0x46, 0x16, 0xff, 0xff, + 0x74, 0x27, 0x8d, 0x7e, 0x16, 0xe8, 0x88, 0x06, 0x56, 0x8b, 0x5c, 0x02, 0xd1, 0xe3, 0xff, 0x97, + 0xcc, 0x04, 0x5e, 0xe8, 0x8c, 0x06, 0xf7, 0x86, 0xc8, 0x01, 0x01, 0x00, 0x74, 0x09, 0xe8, 0x33, + 0x21, 0xc7, 0x86, 0xc8, 0x01, 0x00, 0x00, 0xeb, 0x2d, 0xfa, 0xf7, 0x86, 0x0a, 0x01, 0x01, 0x00, + 0x75, 0x13, 0xf6, 0x86, 0x6c, 0x15, 0x80, 0x75, 0x0c, 0xc7, 0x86, 0x0a, 0x01, 0x01, 0x00, 0xfb, + 0xe8, 0xe9, 0x35, 0xeb, 0x11, 0xfa, 0x8b, 0x86, 0x63, 0x02, 0x38, 0xc4, 0x74, 0x07, 0x88, 0x86, + 0x64, 0x02, 0xe8, 0x4c, 0x16, 0xfb, 0xe8, 0xf1, 0x05, 0xe9, 0xd2, 0xfe, 0x8e, 0x46, 0x02, 0x26, + 0xc7, 0x06, 0x04, 0x00, 0xff, 0xcb, 0x8e, 0x46, 0x02, 0x26, 0xc7, 0x06, 0x08, 0x00, 0xff, 0xfb, + 0xe8, 0x53, 0x02, 0x33, 0xc0, 0x88, 0x86, 0xb8, 0x01, 0x88, 0x86, 0xb9, 0x01, 0x8e, 0x46, 0x02, + 0x26, 0xa2, 0x1a, 0x00, 0x89, 0x86, 0x14, 0x02, 0x89, 0x86, 0x06, 0x02, 0x89, 0x86, 0x36, 0x02, + 0x8e, 0x46, 0x02, 0x26, 0xc7, 0x06, 0x0c, 0x00, 0x30, 0x01, 0x8d, 0x86, 0x52, 0x08, 0x89, 0x86, + 0xbc, 0x01, 0x89, 0x86, 0xbe, 0x01, 0xc7, 0x86, 0xc0, 0x01, 0x01, 0x00, 0x8c, 0xd8, 0x8e, 0xc0, + 0x33, 0xc0, 0x8d, 0xbe, 0x54, 0x02, 0xb9, 0x51, 0x00, 0xd1, 0xe9, 0xf3, 0xab, 0xd1, 0xd1, 0xf3, + 0xaa, 0x8d, 0xbe, 0x96, 0x05, 0xab, 0xab, 0xaa, 0x8d, 0xbe, 0x9e, 0x05, 0xab, 0xab, 0xaa, 0x8d, + 0xbe, 0xae, 0x02, 0xb9, 0x0b, 0x00, 0xf3, 0xab, 0xc7, 0x86, 0xc4, 0x01, 0x14, 0x00, 0xc7, 0x86, + 0xb6, 0x02, 0x04, 0x00, 0xbb, 0xfc, 0x04, 0xb9, 0x0b, 0x00, 0x8b, 0x3f, 0x03, 0xfd, 0xab, 0xab, + 0xab, 0x43, 0x43, 0xe2, 0xf5, 0xbb, 0x12, 0x05, 0xb9, 0x0a, 0x00, 0x8b, 0x3f, 0x03, 0xfd, 0xab, + 0xab, 0x43, 0x43, 0xe2, 0xf6, 0xb8, 0x02, 0x00, 0x03, 0x06, 0xc8, 0x54, 0xe8, 0x3d, 0x05, 0x39, + 0x06, 0xc8, 0x54, 0x75, 0xf7, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x0e, 0x0c, 0x00, 0x02, 0xc7, 0x86, + 0x08, 0x02, 0xc8, 0x00, 0xc7, 0x86, 0xf8, 0x01, 0xff, 0xff, 0xc7, 0x86, 0xf6, 0x01, 0x07, 0x00, + 0xc6, 0x86, 0x87, 0x02, 0x00, 0xe8, 0x01, 0x00, 0xc3, 0x8e, 0x46, 0x02, 0x33, 0xc0, 0x89, 0x86, + 0xb6, 0x01, 0x8e, 0x46, 0x02, 0x26, 0xa3, 0x10, 0x00, 0x8b, 0x86, 0x52, 0x15, 0x26, 0xa3, 0x30, + 0x00, 0x89, 0x86, 0xb2, 0x01, 0xc1, 0xe8, 0x08, 0x26, 0xa3, 0x34, 0x00, 0x8b, 0x86, 0x54, 0x15, + 0x26, 0xa3, 0x38, 0x00, 0xc1, 0xe8, 0x08, 0x26, 0xa3, 0x36, 0x00, 0x33, 0xc0, 0xc6, 0x86, 0x83, + 0x02, 0x01, 0x8d, 0xb6, 0x52, 0x09, 0xc7, 0x86, 0xa6, 0x01, 0x5a, 0x09, 0x01, 0xae, 0xa6, 0x01, + 0x89, 0xb6, 0xa8, 0x01, 0x89, 0xb6, 0xaa, 0x01, 0xc7, 0x04, 0x30, 0x80, 0xc7, 0x44, 0x04, 0x00, + 0x00, 0xc6, 0x86, 0x86, 0x02, 0x01, 0xe8, 0x01, 0x09, 0xb8, 0x00, 0x40, 0xf7, 0x86, 0xf6, 0x00, + 0x00, 0x01, 0x74, 0x13, 0x25, 0xff, 0x1f, 0x0d, 0x00, 0xa0, 0x83, 0xe0, 0xfd, 0x8e, 0x46, 0x02, + 0x26, 0x81, 0x0e, 0x0c, 0x00, 0x80, 0x00, 0x8e, 0x46, 0x02, 0x26, 0xa3, 0x00, 0x00, 0xa1, 0xc8, + 0x54, 0x83, 0xc0, 0x02, 0xe8, 0x85, 0x04, 0x39, 0x06, 0xc8, 0x54, 0x75, 0xf7, 0xc3, 0x8e, 0x46, + 0x02, 0x26, 0xc7, 0x06, 0x00, 0x00, 0x08, 0xbe, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, 0x02, 0x00, + 0xc8, 0x8e, 0x46, 0x02, 0x26, 0xc7, 0x06, 0x0c, 0x00, 0xa0, 0x00, 0x8e, 0x46, 0x02, 0x26, 0xc7, + 0x06, 0x10, 0x00, 0x04, 0x00, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x26, 0x00, 0x00, 0x7f, 0xff, 0x90, + 0x90, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x0e, 0x00, 0x00, 0x80, 0x00, 0x90, 0x90, 0x8e, 0x46, 0x02, + 0x26, 0x81, 0x26, 0x00, 0x00, 0x7f, 0xff, 0x8e, 0x46, 0x02, 0x26, 0xc7, 0x06, 0x28, 0x00, 0x18, + 0x00, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x0e, 0x0c, 0x00, 0x01, 0xc3, 0xc6, 0x86, 0x0c, 0x01, 0x01, + 0xc6, 0x86, 0x0d, 0x01, 0x00, 0xe8, 0xda, 0x22, 0xa1, 0xc8, 0x54, 0x83, 0xc0, 0x02, 0x0b, 0xc0, + 0x0b, 0xc0, 0x0b, 0xc0, 0x0b, 0xc0, 0x39, 0x06, 0xc8, 0x54, 0x72, 0xf2, 0x80, 0xbe, 0x0d, 0x01, + 0x01, 0x74, 0x03, 0xf9, 0xeb, 0x01, 0xf8, 0xc6, 0x86, 0x0c, 0x01, 0x00, 0xc3, 0xb8, 0x00, 0x00, + 0x88, 0x86, 0x06, 0x01, 0x88, 0x86, 0x07, 0x01, 0x88, 0x86, 0x08, 0x01, 0x88, 0x86, 0x09, 0x01, + 0x89, 0x86, 0x0a, 0x01, 0x88, 0x86, 0xb8, 0x01, 0x88, 0x86, 0xb9, 0x01, 0x88, 0x86, 0xcd, 0x01, + 0xa2, 0x1e, 0x56, 0xc3, 0x50, 0x53, 0x52, 0xc6, 0x46, 0x01, 0x00, 0x32, 0xe4, 0x8a, 0x46, 0x00, + 0xbb, 0x00, 0xfd, 0xbb, 0x00, 0xee, 0x83, 0x3e, 0xec, 0x54, 0x20, 0x75, 0x03, 0xbb, 0x00, 0x7d, + 0x81, 0xeb, 0x00, 0x75, 0x81, 0xe3, 0x00, 0xff, 0x89, 0x9e, 0x56, 0x15, 0x81, 0xc3, 0x00, 0x01, + 0xf7, 0xe3, 0x05, 0x00, 0x75, 0x89, 0x86, 0x52, 0x15, 0x03, 0x86, 0x56, 0x15, 0x48, 0x89, 0x86, + 0x54, 0x15, 0x5a, 0x5b, 0x58, 0xc3, 0x51, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, 0x0c, 0x00, 0xfc, + 0x8e, 0x46, 0x02, 0x26, 0xf7, 0x06, 0x14, 0x00, 0x80, 0x00, 0x75, 0x1e, 0xb9, 0xf4, 0x01, 0x8e, + 0x46, 0x02, 0x26, 0x81, 0x0e, 0x0c, 0x00, 0x00, 0x08, 0x8e, 0x46, 0x02, 0x26, 0xf7, 0x06, 0x14, + 0x00, 0x80, 0x00, 0x75, 0x05, 0xe8, 0x54, 0x03, 0xe2, 0xe5, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x26, + 0x0c, 0x00, 0xff, 0xf7, 0x59, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x0e, 0x0c, 0x00, 0x02, 0xc3, 0x50, + 0x53, 0xc1, 0xe0, 0x05, 0x05, 0x00, 0x03, 0x8b, 0xd8, 0x8d, 0x86, 0x00, 0x01, 0x89, 0x07, 0x8d, + 0x86, 0xd0, 0x01, 0x89, 0x47, 0x02, 0x8d, 0x86, 0xe0, 0x01, 0x89, 0x47, 0x04, 0x8d, 0x86, 0x58, + 0x15, 0x89, 0x47, 0x08, 0x8d, 0x86, 0x6c, 0x15, 0x89, 0x47, 0x06, 0x8d, 0x86, 0xbc, 0x01, 0x89, + 0x47, 0x0a, 0xc7, 0x47, 0x0c, 0x30, 0x56, 0x8d, 0x86, 0x3c, 0x02, 0x89, 0x47, 0x0e, 0x8d, 0x06, + 0xc8, 0x54, 0x89, 0x47, 0x10, 0xc7, 0x47, 0x14, 0x00, 0x00, 0xc7, 0x47, 0x16, 0x00, 0x00, 0x8d, + 0x86, 0xec, 0x15, 0x89, 0x47, 0x18, 0x5b, 0x58, 0xc3, 0x8e, 0x46, 0x02, 0x80, 0xbe, 0x2d, 0x01, + 0x01, 0x75, 0x40, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, 0x10, 0x00, 0xfb, 0x26, 0xa1, 0x38, 0x00, + 0x2d, 0x00, 0x02, 0x3b, 0x86, 0x52, 0x15, 0x73, 0x0c, 0x8b, 0xd8, 0x2b, 0x9e, 0x52, 0x15, 0x8b, + 0x86, 0x54, 0x15, 0x2b, 0xc3, 0x26, 0xa3, 0x6c, 0x00, 0x26, 0xa1, 0x12, 0x00, 0x89, 0x86, 0x32, + 0x01, 0x26, 0xc7, 0x06, 0x12, 0x00, 0x00, 0x01, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x0e, 0x10, 0x00, + 0x05, 0xeb, 0x18, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, 0x10, 0x00, 0xfe, 0x8b, 0x86, 0x32, 0x01, + 0x26, 0xa3, 0x12, 0x00, 0xb8, 0xff, 0xff, 0x26, 0xa3, 0x6c, 0x00, 0xc3, 0x50, 0xf7, 0x86, 0xf6, + 0x00, 0x02, 0x00, 0x75, 0x02, 0xeb, 0x4b, 0xf6, 0x86, 0x60, 0x02, 0x01, 0x75, 0x07, 0xf6, 0x86, + 0x6e, 0x02, 0x01, 0x74, 0x3d, 0xf6, 0x86, 0x85, 0x02, 0x01, 0x74, 0x36, 0xc6, 0x86, 0x85, 0x02, + 0x00, 0x8b, 0x86, 0x06, 0x02, 0xf7, 0x86, 0x12, 0x01, 0x00, 0x40, 0x74, 0x03, 0x25, 0xff, 0xaf, + 0xf7, 0x86, 0x12, 0x01, 0x00, 0x20, 0x74, 0x03, 0x25, 0xff, 0xdf, 0x89, 0x86, 0x06, 0x02, 0x3b, + 0x86, 0x36, 0x02, 0x74, 0x0d, 0x89, 0x86, 0x36, 0x02, 0x81, 0xa6, 0x36, 0x02, 0x7f, 0xdf, 0xe8, + 0x42, 0x38, 0x58, 0xc3, 0x57, 0x56, 0x50, 0x8b, 0x86, 0xda, 0x02, 0xa9, 0xff, 0xff, 0x74, 0x40, + 0x8d, 0xbe, 0xd0, 0x02, 0x8d, 0xb6, 0x96, 0x05, 0xb9, 0x0a, 0x00, 0x83, 0xf9, 0x05, 0x75, 0x04, + 0x8d, 0xb6, 0x9e, 0x05, 0xa9, 0x01, 0x00, 0x74, 0x1e, 0x80, 0x3d, 0xff, 0x74, 0x12, 0xfe, 0x05, + 0x80, 0x3d, 0xff, 0x75, 0x0b, 0x81, 0x8e, 0x06, 0x02, 0x80, 0x00, 0xc6, 0x86, 0x85, 0x02, 0x01, + 0x80, 0x3c, 0xff, 0x74, 0x02, 0xfe, 0x04, 0xd1, 0xe8, 0x47, 0x46, 0xe2, 0xce, 0xe8, 0x0a, 0x00, + 0xc7, 0x86, 0xda, 0x02, 0x00, 0x00, 0x58, 0x5e, 0x5f, 0xc3, 0xf6, 0x86, 0x56, 0x02, 0x01, 0x75, + 0x27, 0xf6, 0x86, 0xaa, 0x02, 0x01, 0x75, 0x07, 0xf6, 0x86, 0x60, 0x02, 0x01, 0x74, 0x19, 0xc6, + 0x86, 0x56, 0x02, 0x01, 0xf7, 0x86, 0xf6, 0x00, 0x00, 0x80, 0x75, 0x0c, 0xbe, 0x5b, 0x45, 0xe8, + 0xb8, 0x03, 0xc7, 0x86, 0xb6, 0x02, 0x04, 0x00, 0xc3, 0xf7, 0x86, 0x58, 0x15, 0x00, 0x80, 0x75, + 0x02, 0xeb, 0x26, 0x8b, 0xb6, 0x60, 0x01, 0x3b, 0xb6, 0x5e, 0x01, 0x74, 0x1c, 0x46, 0x83, 0xe6, + 0x07, 0x89, 0xb6, 0x60, 0x01, 0x8b, 0xce, 0xd1, 0xe1, 0xd1, 0xe1, 0x8d, 0xb6, 0x3e, 0x01, 0x03, + 0xf1, 0x8b, 0x04, 0x8b, 0x54, 0x02, 0xe9, 0x32, 0x38, 0xc3, 0xbb, 0x00, 0x03, 0x83, 0x7f, 0x12, + 0x00, 0x74, 0x08, 0xe8, 0xad, 0x37, 0xc7, 0x47, 0x12, 0x00, 0x00, 0xc3, 0x53, 0x50, 0x33, 0xc0, + 0x88, 0x86, 0xcb, 0x01, 0xa3, 0x2e, 0x56, 0xbb, 0x30, 0x56, 0x89, 0x1e, 0x26, 0x56, 0x89, 0x07, + 0x89, 0x47, 0x02, 0x89, 0x47, 0x04, 0xa3, 0x28, 0x56, 0xa3, 0x2a, 0x56, 0xa3, 0x2c, 0x56, 0x58, + 0x5b, 0xc3, 0x50, 0x8a, 0xe0, 0xe4, 0x12, 0xf6, 0xd4, 0x22, 0xc4, 0xe6, 0x12, 0x58, 0xc3, 0xc6, + 0x46, 0x06, 0x00, 0xc6, 0x46, 0x07, 0x00, 0xc6, 0x46, 0x08, 0x00, 0xc6, 0x46, 0x09, 0x00, 0xc6, + 0x86, 0x6c, 0x15, 0x80, 0x8d, 0xbe, 0x0a, 0x03, 0x8c, 0xd8, 0x8e, 0xc0, 0xab, 0xab, 0xab, 0xc3, + 0x51, 0x53, 0xb9, 0x10, 0x00, 0xd1, 0xe0, 0xd1, 0xdb, 0xe2, 0xfa, 0x8b, 0xc3, 0x86, 0xc4, 0x5b, + 0x59, 0xc3, 0x50, 0x53, 0x51, 0x52, 0x57, 0x56, 0x8d, 0x1e, 0x66, 0x05, 0xb8, 0x40, 0x60, 0x8e, + 0xc0, 0xff, 0x06, 0x4e, 0x00, 0xc7, 0x06, 0xe4, 0x54, 0x00, 0x00, 0xc6, 0x06, 0xe8, 0x54, 0x00, + 0xc7, 0x06, 0xec, 0x54, 0x20, 0x00, 0xbb, 0xfe, 0x0c, 0x8b, 0x07, 0x81, 0xc3, 0x00, 0x80, 0x3b, + 0x07, 0x74, 0x06, 0xc7, 0x06, 0xec, 0x54, 0x40, 0x00, 0x8d, 0x3e, 0xe6, 0x54, 0xb8, 0x40, 0x5d, + 0x89, 0x05, 0x06, 0x33, 0xc0, 0x8e, 0xc0, 0xa3, 0xc8, 0x54, 0xa3, 0xca, 0x54, 0xa3, 0xcc, 0x54, + 0x8d, 0x3e, 0xdc, 0x54, 0xb9, 0x04, 0x00, 0xd1, 0xe9, 0xf3, 0xab, 0x8d, 0x3e, 0xe0, 0x54, 0xb9, + 0x04, 0x00, 0xd1, 0xe9, 0xf3, 0xab, 0x07, 0x8b, 0xd4, 0xb9, 0x01, 0x00, 0xbb, 0x00, 0x00, 0xbd, + 0x40, 0x5d, 0x88, 0x5e, 0x00, 0x8b, 0xc3, 0xd1, 0xe0, 0xd1, 0xe0, 0x05, 0x40, 0x60, 0x89, 0x46, + 0x02, 0xe8, 0xb0, 0xfc, 0xe8, 0xe2, 0x00, 0x8b, 0xc5, 0x05, 0x4e, 0x08, 0x89, 0x86, 0x50, 0x08, + 0x83, 0xc0, 0x02, 0x8b, 0xe0, 0x68, 0xfa, 0x05, 0x81, 0xc5, 0xec, 0x16, 0x43, 0xe2, 0xd3, 0x8b, + 0xe2, 0x33, 0xed, 0x5e, 0x5f, 0x5a, 0x59, 0x5b, 0x58, 0xc3, 0x3e, 0x89, 0xa6, 0x50, 0x08, 0x33, + 0xed, 0xbc, 0x1c, 0x56, 0xfa, 0x83, 0x0e, 0xe0, 0x54, 0x00, 0x74, 0x0d, 0x8b, 0x36, 0xe0, 0x54, + 0x8b, 0x4c, 0x04, 0xe8, 0xea, 0x03, 0xfb, 0xff, 0xd1, 0xfb, 0x32, 0xff, 0x8a, 0x1e, 0xe4, 0x54, + 0x80, 0x8f, 0xea, 0x54, 0x00, 0x75, 0x21, 0xd1, 0xe3, 0x8b, 0xaf, 0xe6, 0x54, 0x81, 0xbe, 0x4e, + 0x06, 0xa5, 0xa5, 0x74, 0x0c, 0xd1, 0xeb, 0xc6, 0x87, 0xea, 0x54, 0x01, 0xe8, 0x21, 0x06, 0xeb, + 0x07, 0x8b, 0x86, 0x50, 0x08, 0x8b, 0xe0, 0xc3, 0xeb, 0xb5, 0xeb, 0xae, 0x60, 0x9c, 0xe8, 0xa9, + 0xff, 0x0e, 0xe8, 0x02, 0x00, 0xeb, 0x01, 0xcf, 0x61, 0xc3, 0x50, 0xfa, 0x8b, 0x76, 0x1a, 0xf7, + 0xc6, 0xff, 0xff, 0x74, 0x10, 0x8b, 0x04, 0x89, 0x46, 0x1a, 0x0b, 0xc0, 0x75, 0x03, 0x89, 0x46, + 0x1c, 0xc7, 0x04, 0x00, 0x00, 0xfb, 0x58, 0xc3, 0x53, 0xfa, 0xc7, 0x04, 0x00, 0x00, 0x8b, 0x5d, + 0x02, 0x89, 0x37, 0x89, 0x75, 0x02, 0x83, 0x3d, 0x00, 0x75, 0x02, 0x89, 0x35, 0xfb, 0x5b, 0xc3, + 0x50, 0xfa, 0x8b, 0x35, 0x8b, 0x04, 0x89, 0x05, 0x0b, 0xc0, 0x75, 0x03, 0x89, 0x45, 0x02, 0xfb, + 0x58, 0xc3, 0x50, 0xfa, 0x8b, 0x46, 0x1a, 0x89, 0x04, 0x89, 0x76, 0x1a, 0xf7, 0x46, 0x1a, 0xff, + 0xff, 0x75, 0x03, 0x89, 0x76, 0x1a, 0xfb, 0x58, 0xc3, 0x50, 0x53, 0x51, 0x8b, 0xc5, 0x83, 0xc0, + 0x1e, 0x89, 0x46, 0x1a, 0x83, 0xc0, 0x48, 0x89, 0x46, 0x1c, 0xb9, 0x09, 0x00, 0x8b, 0xdd, 0x8b, + 0xc5, 0x83, 0xc0, 0x26, 0x89, 0x47, 0x1e, 0x83, 0xc3, 0x08, 0x83, 0xc0, 0x08, 0xe2, 0xf5, 0x59, + 0x5b, 0x58, 0xc3, 0x90, 0x60, 0x06, 0x1e, 0xfa, 0x33, 0xdb, 0x8e, 0xdb, 0x83, 0x06, 0xc8, 0x54, + 0x01, 0x73, 0x04, 0x11, 0x1e, 0xca, 0x54, 0xb9, 0x01, 0x00, 0x8b, 0xaf, 0xe6, 0x54, 0xf6, 0x06, + 0x1e, 0x56, 0x01, 0x75, 0x03, 0xe8, 0x80, 0x3e, 0xf7, 0x06, 0xc8, 0x54, 0x07, 0x00, 0x74, 0x10, + 0x80, 0xbe, 0x2d, 0x01, 0x01, 0x75, 0x09, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x0e, 0x10, 0x00, 0x01, + 0xf7, 0x86, 0xa3, 0x02, 0x01, 0x00, 0x74, 0x30, 0xfe, 0x86, 0x6b, 0x01, 0x80, 0xbe, 0x6b, 0x01, + 0x02, 0x73, 0x02, 0xeb, 0x23, 0xc6, 0x86, 0x6b, 0x01, 0x00, 0xf7, 0x86, 0x1c, 0x01, 0x01, 0x00, + 0x75, 0x0a, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x26, 0x04, 0x00, 0x32, 0xfe, 0x81, 0xa6, 0x18, 0x01, + 0x32, 0xfe, 0xc7, 0x86, 0xa3, 0x02, 0x00, 0x00, 0xc6, 0x86, 0x6a, 0x01, 0x00, 0x8e, 0x46, 0x02, + 0x26, 0xa1, 0x08, 0x00, 0x25, 0x00, 0x02, 0x74, 0x03, 0xe8, 0x23, 0x12, 0xf6, 0x86, 0x54, 0x02, + 0x01, 0x74, 0x03, 0xe8, 0x36, 0x3e, 0x8b, 0x86, 0xf6, 0x00, 0x25, 0xd0, 0xe5, 0x89, 0x86, 0x2c, + 0x02, 0x8a, 0x46, 0x08, 0x3c, 0x06, 0x74, 0x08, 0x3c, 0x0a, 0x74, 0x04, 0x3c, 0x18, 0x75, 0x04, + 0xff, 0x86, 0x46, 0x02, 0x83, 0xc3, 0x02, 0x49, 0x74, 0x03, 0xe9, 0x5d, 0xff, 0xf7, 0x06, 0xdc, + 0x54, 0xff, 0xff, 0x74, 0x1f, 0xff, 0x0e, 0xcc, 0x54, 0x75, 0x19, 0xe8, 0x14, 0x02, 0x8b, 0x1e, + 0xdc, 0x54, 0x0b, 0xdb, 0x74, 0x0e, 0x8b, 0x47, 0x08, 0xa3, 0xcc, 0x54, 0xf7, 0x06, 0xcc, 0x54, + 0xff, 0xff, 0x74, 0xe7, 0x50, 0xb0, 0xa0, 0xe6, 0x10, 0x58, 0x1f, 0x07, 0x61, 0xcf, 0x60, 0x06, + 0x1e, 0xfa, 0x8d, 0x36, 0xd0, 0x54, 0x83, 0x04, 0x01, 0x83, 0x54, 0x02, 0x00, 0xe8, 0xae, 0x41, + 0xa0, 0xce, 0x54, 0xfe, 0xc0, 0x3c, 0x04, 0x72, 0x08, 0xc6, 0x06, 0xce, 0x54, 0x00, 0xe9, 0xf7, + 0xfe, 0xa2, 0xce, 0x54, 0xeb, 0xce, 0x50, 0x57, 0x56, 0xfa, 0x8d, 0x36, 0xd4, 0x54, 0x83, 0x04, + 0x01, 0x83, 0x54, 0x02, 0x00, 0x80, 0x3e, 0x1e, 0x56, 0x01, 0x75, 0x0d, 0x8b, 0x36, 0x20, 0x56, + 0x83, 0xfe, 0x14, 0x77, 0x0e, 0xff, 0x94, 0x50, 0x05, 0x50, 0xb0, 0xa0, 0xe6, 0x10, 0x58, 0x5e, + 0x5f, 0x58, 0xcf, 0xe8, 0x5c, 0x44, 0xeb, 0xf1, 0x57, 0x56, 0x50, 0xfa, 0x8d, 0x36, 0xd8, 0x54, + 0x83, 0x04, 0x01, 0x83, 0x54, 0x02, 0x00, 0x80, 0x3e, 0x1e, 0x56, 0x01, 0x75, 0x0d, 0x8b, 0x36, + 0x20, 0x56, 0x83, 0xfe, 0x14, 0x77, 0x0e, 0xff, 0x94, 0x50, 0x05, 0x50, 0xb0, 0xa0, 0xe6, 0x10, + 0x58, 0x58, 0x5e, 0x5f, 0xcf, 0xe8, 0x2a, 0x44, 0xeb, 0xf1, 0x50, 0x53, 0x51, 0x57, 0xe8, 0xab, + 0x00, 0xfa, 0x8b, 0x3c, 0x03, 0xfd, 0x89, 0x6d, 0x02, 0x8b, 0x44, 0x02, 0x89, 0x45, 0x04, 0x8b, + 0x44, 0x04, 0x89, 0x45, 0x06, 0x0b, 0xc0, 0x75, 0x0e, 0x8b, 0x86, 0x08, 0x02, 0x0b, 0xc0, 0x75, + 0x03, 0xb8, 0xc8, 0x00, 0x89, 0x45, 0x06, 0xf7, 0x06, 0xdc, 0x54, 0xff, 0xff, 0x75, 0x14, 0x89, + 0x3e, 0xdc, 0x54, 0x89, 0x3e, 0xde, 0x54, 0xc7, 0x05, 0x00, 0x00, 0x89, 0x45, 0x08, 0xa3, 0xcc, + 0x54, 0xeb, 0x63, 0x8b, 0x3e, 0xdc, 0x54, 0x8b, 0x0e, 0xcc, 0x54, 0x33, 0xdb, 0x3b, 0xc8, 0x72, + 0x35, 0x0b, 0xdb, 0x75, 0x17, 0x2b, 0xc8, 0x89, 0x4d, 0x08, 0x8b, 0x34, 0x03, 0xf5, 0x89, 0x44, + 0x08, 0x89, 0x3c, 0x89, 0x36, 0xdc, 0x54, 0xa3, 0xcc, 0x54, 0xeb, 0x3a, 0x2b, 0x4d, 0x08, 0x2b, + 0xc1, 0x8b, 0x34, 0x03, 0xf5, 0x89, 0x44, 0x08, 0x8b, 0x4d, 0x08, 0x2b, 0xc8, 0x89, 0x4d, 0x08, + 0x89, 0x37, 0x89, 0x3c, 0xeb, 0x20, 0x8b, 0xdf, 0x8b, 0x3d, 0x0b, 0xff, 0x74, 0x05, 0x03, 0x4d, + 0x08, 0xeb, 0xba, 0x2b, 0xc1, 0x8b, 0x34, 0x03, 0xf5, 0x89, 0x44, 0x08, 0x89, 0x37, 0xc7, 0x04, + 0x00, 0x00, 0x89, 0x36, 0xde, 0x54, 0xfb, 0x5f, 0x59, 0x5b, 0x58, 0xc3, 0x57, 0x53, 0x50, 0x56, + 0xfa, 0x8b, 0x1e, 0xdc, 0x54, 0x33, 0xff, 0x8b, 0x34, 0x03, 0xf5, 0x83, 0x7c, 0x02, 0xff, 0x74, + 0x4b, 0x3b, 0xde, 0x75, 0x49, 0x0b, 0xff, 0x74, 0x18, 0x8b, 0x07, 0x89, 0x05, 0x0b, 0xc0, 0x75, + 0x06, 0x89, 0x3e, 0xde, 0x54, 0xeb, 0x2c, 0x8b, 0x4f, 0x08, 0x8b, 0xf8, 0x01, 0x4d, 0x08, 0xeb, + 0x22, 0x8b, 0x3f, 0x89, 0x3e, 0xdc, 0x54, 0x0b, 0xff, 0x75, 0x0c, 0x89, 0x3e, 0xde, 0x54, 0xc7, + 0x06, 0xcc, 0x54, 0xff, 0xff, 0xeb, 0x0c, 0xa1, 0xcc, 0x54, 0x01, 0x45, 0x08, 0x8b, 0x45, 0x08, + 0xa3, 0xcc, 0x54, 0xc7, 0x47, 0x02, 0xff, 0xff, 0xc7, 0x07, 0x00, 0x00, 0xeb, 0x4e, 0x83, 0xcb, + 0x00, 0x74, 0x06, 0x8b, 0xfb, 0x8b, 0x1f, 0xeb, 0xa8, 0x83, 0xfd, 0x00, 0x75, 0x05, 0xbb, 0xe0, + 0x54, 0xeb, 0x04, 0x8d, 0x9e, 0xf0, 0x00, 0x8b, 0x1f, 0x83, 0xfb, 0x00, 0x74, 0x2e, 0x3b, 0xde, + 0x75, 0x05, 0xe8, 0x6b, 0x00, 0xeb, 0x25, 0x8b, 0xfb, 0x8b, 0x1f, 0x83, 0xcb, 0x00, 0x74, 0x1c, + 0x3b, 0xde, 0x75, 0xf3, 0x8b, 0x07, 0x89, 0x05, 0x83, 0xc8, 0x00, 0x75, 0x04, 0x89, 0xbe, 0xf2, + 0x00, 0xc7, 0x07, 0x00, 0x00, 0xc7, 0x47, 0x02, 0xff, 0xff, 0xeb, 0x00, 0xfb, 0x5e, 0x58, 0x5b, + 0x5f, 0xc3, 0x50, 0x53, 0x56, 0x55, 0x8b, 0x1e, 0xdc, 0x54, 0x8b, 0x6f, 0x02, 0x0b, 0xed, 0x74, + 0x06, 0x81, 0xc5, 0xf0, 0x00, 0xeb, 0x03, 0xbd, 0xe0, 0x54, 0x8b, 0x76, 0x02, 0x8b, 0x07, 0xa3, + 0xdc, 0x54, 0x0b, 0xc0, 0x75, 0x03, 0xa3, 0xde, 0x54, 0x89, 0x5e, 0x02, 0x89, 0x1c, 0xc7, 0x07, + 0x00, 0x00, 0x83, 0x4e, 0x00, 0x00, 0x75, 0x03, 0x89, 0x5e, 0x00, 0x5d, 0x5e, 0x5b, 0x58, 0xc3, + 0x55, 0x53, 0x50, 0x0b, 0xed, 0x74, 0x06, 0x81, 0xc5, 0xf0, 0x00, 0xeb, 0x03, 0xbd, 0xe0, 0x54, + 0x8b, 0x5e, 0x00, 0xc7, 0x47, 0x02, 0xff, 0xff, 0x8b, 0x07, 0xc7, 0x07, 0x00, 0x00, 0x8b, 0xd8, + 0x89, 0x5e, 0x00, 0x0b, 0xdb, 0x75, 0x03, 0x89, 0x5e, 0x02, 0x58, 0x5b, 0x5d, 0xc3, 0x50, 0x53, + 0x51, 0x57, 0x56, 0xfa, 0x8b, 0x1e, 0xdc, 0x54, 0x33, 0xff, 0x83, 0xcb, 0x00, 0x74, 0x54, 0x8b, + 0xc3, 0x39, 0x6f, 0x02, 0x75, 0x47, 0x0b, 0xff, 0x74, 0x18, 0x8b, 0x37, 0x89, 0x35, 0x8b, 0xc7, + 0x0b, 0xf6, 0x75, 0x06, 0x89, 0x3e, 0xde, 0x54, 0xeb, 0x2c, 0x8b, 0x4f, 0x08, 0x01, 0x4c, 0x08, + 0xeb, 0x24, 0x8b, 0x37, 0x89, 0x36, 0xdc, 0x54, 0x0b, 0xf6, 0x75, 0x0c, 0x89, 0x36, 0xde, 0x54, + 0xc7, 0x06, 0xcc, 0x54, 0xff, 0xff, 0xeb, 0x0e, 0xa1, 0xcc, 0x54, 0x01, 0x44, 0x08, 0x8b, 0x44, + 0x08, 0xa3, 0xcc, 0x54, 0x33, 0xc0, 0xc7, 0x47, 0x02, 0xff, 0xff, 0xeb, 0x00, 0x8b, 0xf8, 0x8b, + 0x1f, 0xeb, 0xa7, 0xfb, 0x5e, 0x5f, 0x59, 0x5b, 0x58, 0xc3, 0x50, 0x53, 0x51, 0x52, 0x8a, 0x8e, + 0xa8, 0x02, 0x8e, 0x46, 0x02, 0x26, 0xa1, 0x00, 0x00, 0x8b, 0xd8, 0xf7, 0x86, 0xf6, 0x00, 0x00, + 0x01, 0x74, 0x10, 0x83, 0xe0, 0xfd, 0xc6, 0x86, 0x79, 0x02, 0x01, 0x25, 0xff, 0x1f, 0x0d, 0x00, + 0x80, 0xeb, 0x0e, 0x25, 0xff, 0x1f, 0x0d, 0x00, 0x20, 0x83, 0xc8, 0x02, 0xc6, 0x86, 0x79, 0x02, + 0x00, 0xe8, 0x5c, 0x02, 0x0d, 0x00, 0x08, 0xf6, 0x86, 0xaa, 0x02, 0x01, 0x75, 0x03, 0x25, 0xff, + 0xf7, 0x33, 0xd8, 0x74, 0x04, 0x26, 0xa3, 0x00, 0x00, 0x26, 0xa1, 0x0c, 0x00, 0x8b, 0xd8, 0xf7, + 0x86, 0x12, 0x01, 0x10, 0x00, 0x74, 0x05, 0x0d, 0x00, 0x10, 0xeb, 0x03, 0x25, 0xff, 0xef, 0x8a, + 0xae, 0x69, 0x02, 0x80, 0xf9, 0x01, 0x75, 0x04, 0x8a, 0xae, 0x6a, 0x02, 0xf6, 0xc5, 0x01, 0x74, + 0x05, 0x83, 0xc8, 0x10, 0xeb, 0x03, 0x83, 0xe0, 0xef, 0xf6, 0x86, 0x6b, 0x02, 0x01, 0x74, 0x0a, + 0x83, 0xc8, 0x20, 0xc6, 0x86, 0x7a, 0x02, 0x00, 0xeb, 0x08, 0x83, 0xe0, 0xdf, 0xc6, 0x86, 0x7a, + 0x02, 0x01, 0xf6, 0x86, 0x54, 0x02, 0x01, 0x74, 0x0a, 0xc6, 0x86, 0x7a, 0x02, 0x00, 0x83, 0xc8, + 0x40, 0xeb, 0x03, 0x83, 0xe0, 0xbf, 0xf6, 0x86, 0x79, 0x02, 0x01, 0x74, 0x05, 0x0d, 0x80, 0x00, + 0xeb, 0x03, 0x25, 0x7f, 0xff, 0xf6, 0x86, 0x78, 0x02, 0x01, 0x74, 0x05, 0x0d, 0x00, 0x01, 0xeb, + 0x03, 0x25, 0xff, 0xfe, 0xf6, 0x86, 0x7a, 0x02, 0x01, 0x74, 0x05, 0x0d, 0x00, 0x20, 0xeb, 0x03, + 0x25, 0xff, 0xdf, 0x33, 0xd8, 0x74, 0x12, 0xf7, 0xc3, 0x20, 0x00, 0x74, 0x05, 0xc6, 0x06, 0xfd, + 0x12, 0x01, 0x25, 0xff, 0xf7, 0x26, 0xa3, 0x0c, 0x00, 0x26, 0xa1, 0x10, 0x00, 0x8b, 0xd8, 0x33, + 0xd8, 0x74, 0x04, 0x26, 0xa3, 0x10, 0x00, 0xf6, 0x06, 0xfd, 0x12, 0x01, 0x74, 0x1e, 0xc6, 0x06, + 0xfd, 0x12, 0x00, 0x26, 0x81, 0x26, 0x00, 0x00, 0x7f, 0xff, 0x90, 0x90, 0x26, 0x81, 0x0e, 0x00, + 0x00, 0x80, 0x00, 0x90, 0x90, 0x26, 0x81, 0x26, 0x00, 0x00, 0x7f, 0xff, 0x5a, 0x59, 0x5b, 0x58, + 0xc3, 0x00, 0x8e, 0x46, 0x02, 0xf7, 0x86, 0xf4, 0x00, 0x04, 0x00, 0x74, 0x0b, 0xc6, 0x06, 0x1e, + 0x56, 0x01, 0x26, 0x83, 0x0e, 0x02, 0x00, 0x02, 0xc6, 0x86, 0xab, 0x02, 0x00, 0xc6, 0x86, 0xac, + 0x02, 0x00, 0x81, 0xa6, 0xf6, 0x00, 0xff, 0xfb, 0xa8, 0x01, 0x74, 0x19, 0x81, 0x8e, 0xf6, 0x00, + 0x00, 0x04, 0x26, 0x83, 0x0e, 0x02, 0x00, 0x20, 0x26, 0x83, 0x26, 0x02, 0x00, 0xef, 0xc6, 0x86, + 0xac, 0x02, 0x01, 0xeb, 0x4d, 0xa8, 0x02, 0x74, 0x1f, 0x26, 0x83, 0x26, 0x02, 0x00, 0xcf, 0xf7, + 0x86, 0xf4, 0x00, 0x04, 0x00, 0x75, 0x0d, 0xf7, 0x86, 0x12, 0x01, 0x00, 0x84, 0x75, 0x05, 0xc6, + 0x86, 0xab, 0x02, 0x01, 0xb0, 0x02, 0xeb, 0x2a, 0xa8, 0x04, 0x74, 0x0e, 0x26, 0x83, 0x0e, 0x02, + 0x00, 0x20, 0x26, 0x83, 0x26, 0x02, 0x00, 0xef, 0xeb, 0x18, 0xa8, 0x08, 0x74, 0x08, 0x26, 0x83, + 0x0e, 0x02, 0x00, 0x30, 0xeb, 0x0c, 0xa8, 0x10, 0x74, 0x08, 0x26, 0x83, 0x0e, 0x02, 0x00, 0x30, + 0xeb, 0x00, 0xf6, 0x06, 0x1e, 0x56, 0x01, 0x74, 0x06, 0x26, 0x83, 0x26, 0x02, 0x00, 0xcf, 0xc3, + 0xc3, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x0e, 0x0c, 0x00, 0x00, 0x01, 0x90, 0x90, 0x8e, 0x46, 0x02, + 0x26, 0x81, 0x26, 0x0c, 0x00, 0xff, 0xfe, 0xc3, 0x8e, 0x46, 0x02, 0xf6, 0x06, 0x1e, 0x56, 0x01, + 0x75, 0x0f, 0x80, 0xbe, 0xab, 0x02, 0x01, 0x75, 0x10, 0x26, 0x83, 0x0e, 0x02, 0x00, 0x02, 0xeb, + 0x08, 0xc6, 0x86, 0x6c, 0x01, 0x01, 0xe8, 0x3e, 0x3f, 0xc3, 0x8e, 0x46, 0x02, 0xf7, 0x86, 0xf4, + 0x00, 0x02, 0x00, 0x74, 0x09, 0x26, 0x81, 0x26, 0x02, 0x00, 0xff, 0xef, 0xeb, 0x07, 0x26, 0x81, + 0x0e, 0x02, 0x00, 0x00, 0x10, 0xc3, 0x8e, 0x46, 0x02, 0xf7, 0x86, 0xf4, 0x00, 0x02, 0x00, 0x74, + 0x09, 0x26, 0x81, 0x0e, 0x02, 0x00, 0x00, 0x10, 0xeb, 0x07, 0x26, 0x81, 0x26, 0x02, 0x00, 0xff, + 0xef, 0xc3, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x0e, 0x02, 0x00, 0x00, 0x80, 0xc3, 0x8e, 0x46, 0x02, + 0x26, 0x81, 0x26, 0x02, 0x00, 0xff, 0x7f, 0xc3, 0xf7, 0x86, 0xf4, 0x00, 0x08, 0x00, 0x74, 0x13, + 0xe8, 0xdf, 0xff, 0xeb, 0x3a, 0x80, 0x7e, 0x06, 0x0e, 0x74, 0x1e, 0x80, 0x7e, 0x06, 0x48, 0x74, + 0x24, 0xeb, 0x2c, 0xe8, 0xd7, 0xff, 0x8e, 0x46, 0x02, 0xf7, 0x86, 0xf4, 0x00, 0x10, 0x00, 0x75, + 0xe4, 0xf7, 0x86, 0xf6, 0x00, 0x00, 0x01, 0x75, 0x0c, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x0e, 0x02, + 0x00, 0x00, 0x40, 0xeb, 0x0a, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x26, 0x02, 0x00, 0xff, 0xbf, 0xc3, + 0x83, 0xe0, 0xf7, 0xf7, 0x86, 0x12, 0x01, 0x00, 0x04, 0x74, 0x03, 0x83, 0xc8, 0x08, 0xc3, 0x90, + 0xe8, 0x19, 0xf3, 0xc6, 0x86, 0x69, 0x02, 0x01, 0xc6, 0x86, 0x6b, 0x02, 0x01, 0x8e, 0x46, 0x02, + 0x26, 0x83, 0x26, 0x0c, 0x00, 0xfe, 0xc6, 0x86, 0x78, 0x02, 0x00, 0xe8, 0x3c, 0xfd, 0x8e, 0x46, + 0x02, 0x26, 0xc7, 0x06, 0x10, 0x00, 0x04, 0x00, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x0e, 0x10, 0x00, + 0x04, 0x33, 0xc0, 0x88, 0x86, 0x88, 0x02, 0x88, 0x86, 0x89, 0x02, 0xc6, 0x86, 0x63, 0x01, 0x01, + 0xc7, 0x86, 0x64, 0x01, 0xf6, 0x05, 0xc6, 0x86, 0x69, 0x01, 0x02, 0xbe, 0xbb, 0x45, 0xe8, 0xc9, + 0xfa, 0xbe, 0xb5, 0x45, 0xe8, 0xc3, 0xfa, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x26, 0x04, 0x00, 0x32, + 0xfe, 0xc3, 0xc6, 0x86, 0x63, 0x01, 0x00, 0x80, 0xbe, 0x62, 0x01, 0x01, 0x75, 0x0d, 0xe8, 0xab, + 0xf2, 0xe8, 0x53, 0x2c, 0xc6, 0x46, 0x07, 0x00, 0xe9, 0xa7, 0x00, 0xbe, 0x6d, 0x45, 0xe8, 0x4b, + 0xfb, 0xbe, 0xb5, 0x45, 0xe8, 0x45, 0xfb, 0xc6, 0x86, 0x88, 0x02, 0x01, 0x80, 0x7e, 0x06, 0x02, + 0x74, 0x08, 0x80, 0x7e, 0x06, 0x44, 0x74, 0x09, 0xeb, 0x0d, 0xc6, 0x46, 0x07, 0x04, 0xe9, 0x81, + 0x00, 0xc6, 0x46, 0x07, 0x46, 0xeb, 0x7b, 0x80, 0x7e, 0x08, 0x08, 0x75, 0xf8, 0xc6, 0x86, 0x81, + 0x02, 0x01, 0xc6, 0x86, 0x69, 0x02, 0x00, 0xc6, 0x86, 0x5d, 0x02, 0x00, 0xc6, 0x86, 0x5c, 0x02, + 0x00, 0xc6, 0x86, 0x5f, 0x02, 0x01, 0xc6, 0x86, 0x68, 0x02, 0x01, 0xc6, 0x86, 0x6c, 0x02, 0x01, + 0xf6, 0x86, 0x58, 0x02, 0x01, 0x74, 0x17, 0x80, 0xbe, 0xa6, 0x02, 0x01, 0x74, 0x2c, 0xc6, 0x46, + 0x09, 0x0a, 0xc6, 0x86, 0x6b, 0x02, 0x00, 0xc6, 0x86, 0x59, 0x02, 0x01, 0xeb, 0x1c, 0xf6, 0x86, + 0x59, 0x02, 0x01, 0x74, 0x15, 0x80, 0xbe, 0xa6, 0x02, 0x01, 0x74, 0x0e, 0xc6, 0x46, 0x09, 0x06, + 0xc6, 0x86, 0x58, 0x02, 0x01, 0xc6, 0x86, 0x6b, 0x02, 0x01, 0xe8, 0x4d, 0xfc, 0xe8, 0x28, 0xfe, + 0xbe, 0x9d, 0x45, 0xe8, 0x04, 0xfa, 0xbe, 0x61, 0x45, 0xe8, 0xfe, 0xf9, 0xbe, 0xa3, 0x45, 0xe8, + 0xf8, 0xf9, 0xc3, 0x90, 0xc6, 0x46, 0x09, 0x00, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x26, 0x04, 0x00, + 0x32, 0xfe, 0xbe, 0xc1, 0x45, 0xe8, 0xe2, 0xf9, 0xc7, 0x86, 0xc4, 0x01, 0x14, 0x00, 0xc7, 0x86, + 0xc2, 0x02, 0x00, 0x00, 0xbe, 0xa9, 0x45, 0xe8, 0xd0, 0xf9, 0xc6, 0x86, 0x69, 0x02, 0x00, 0xc6, + 0x86, 0x6b, 0x02, 0x00, 0xc6, 0x86, 0x68, 0x02, 0x01, 0xc6, 0x86, 0x6c, 0x02, 0x01, 0xe8, 0xf9, + 0xfb, 0xbe, 0x67, 0x45, 0xe8, 0xb3, 0xf9, 0xbe, 0x9d, 0x45, 0xe8, 0xad, 0xf9, 0x33, 0xc0, 0x89, + 0x86, 0xee, 0x01, 0x89, 0x86, 0xf0, 0x01, 0x89, 0x86, 0xf2, 0x01, 0xf6, 0x06, 0x1e, 0x56, 0x01, + 0x74, 0x0a, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x26, 0x04, 0x00, 0xff, 0xf7, 0xf7, 0x86, 0xf6, 0x00, + 0x00, 0x20, 0x74, 0x10, 0xbe, 0xa3, 0x45, 0xe8, 0x80, 0xf9, 0xc6, 0x86, 0x5d, 0x02, 0x00, 0xc6, + 0x86, 0x5c, 0x02, 0x00, 0xe8, 0x91, 0xfd, 0xc3, 0xc3, 0x90, 0xc6, 0x86, 0x57, 0x02, 0x01, 0xc7, + 0x86, 0xc4, 0x02, 0x00, 0x00, 0xc7, 0x86, 0xc6, 0x02, 0x00, 0x00, 0xbe, 0x67, 0x45, 0xe8, 0x59, + 0xf9, 0xe8, 0xc0, 0x12, 0xc3, 0x90, 0xc6, 0x86, 0x5b, 0x02, 0x01, 0xf6, 0x86, 0x84, 0x02, 0x01, + 0x74, 0x08, 0xe8, 0xb1, 0x14, 0xc6, 0x86, 0x84, 0x02, 0x00, 0xbe, 0x67, 0x45, 0xe8, 0x3a, 0xf9, + 0xf6, 0x86, 0x63, 0x02, 0x01, 0x74, 0x04, 0xc6, 0x46, 0x07, 0x0c, 0xc3, 0xbe, 0x67, 0x45, 0xe8, + 0x28, 0xf9, 0xbe, 0x85, 0x45, 0xe8, 0x22, 0xf9, 0xc7, 0x86, 0xb8, 0x02, 0x01, 0x00, 0xc7, 0x86, + 0xba, 0x02, 0x01, 0x00, 0xe8, 0xf7, 0x12, 0xc3, 0xc7, 0x86, 0xc2, 0x02, 0x00, 0x00, 0xc7, 0x86, + 0xc4, 0x01, 0x14, 0x00, 0xc6, 0x86, 0x08, 0x01, 0x00, 0x81, 0xa6, 0x06, 0x02, 0xdf, 0xbf, 0xc6, + 0x86, 0x60, 0x02, 0x01, 0xc7, 0x86, 0x26, 0x02, 0xff, 0xff, 0xf7, 0x86, 0xf6, 0x00, 0x00, 0x20, + 0x75, 0x18, 0xf7, 0x86, 0x12, 0x01, 0x00, 0x84, 0x75, 0x10, 0xbe, 0xa3, 0x45, 0xe8, 0xda, 0xf8, + 0xc6, 0x86, 0x5d, 0x02, 0x00, 0xc6, 0x86, 0x5c, 0x02, 0x00, 0xbe, 0x67, 0x45, 0xe8, 0x7c, 0xf9, + 0xb8, 0x00, 0x80, 0xe8, 0xd2, 0x2b, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x0e, 0x0c, 0x00, 0x01, 0xe8, + 0x46, 0xfd, 0xe8, 0xf5, 0xfc, 0xc6, 0x86, 0x5e, 0x02, 0x01, 0xc6, 0x86, 0xca, 0x01, 0x00, 0xf7, + 0x86, 0xf6, 0x00, 0x04, 0x00, 0x74, 0x05, 0xc6, 0x86, 0xca, 0x01, 0x01, 0xe8, 0xaa, 0xf3, 0xf6, + 0x86, 0x54, 0x02, 0x01, 0x75, 0x06, 0xbe, 0x73, 0x45, 0xe8, 0x8e, 0xf8, 0xff, 0x86, 0xfc, 0x00, + 0xc3, 0x90, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, 0x10, 0x00, 0xfb, 0xc6, 0x86, 0x08, 0x01, 0x00, + 0xc6, 0x46, 0x09, 0x00, 0xc6, 0x46, 0x0b, 0x00, 0xc6, 0x86, 0x54, 0x02, 0x00, 0xc6, 0x86, 0x68, + 0x02, 0x00, 0xc6, 0x86, 0x5e, 0x02, 0x00, 0xc6, 0x86, 0x60, 0x02, 0x00, 0xc6, 0x86, 0x5b, 0x02, + 0x00, 0xc6, 0x86, 0x63, 0x02, 0x00, 0xc6, 0x86, 0x6b, 0x02, 0x00, 0xc6, 0x86, 0x69, 0x02, 0x00, + 0xc6, 0x86, 0x6a, 0x02, 0x00, 0xe8, 0x82, 0xfa, 0xf6, 0x86, 0x6c, 0x02, 0x01, 0x74, 0x0c, 0x83, + 0xbe, 0x22, 0x01, 0x0e, 0x75, 0x28, 0xe8, 0x50, 0x06, 0xeb, 0x23, 0x8e, 0x46, 0x02, 0xf6, 0x06, + 0x1e, 0x56, 0x01, 0x75, 0x08, 0x26, 0x83, 0x26, 0x02, 0x00, 0xfd, 0xeb, 0x08, 0xc6, 0x86, 0x6d, + 0x01, 0x01, 0xe8, 0xea, 0x3b, 0xe8, 0xe6, 0xf9, 0xbe, 0x7f, 0x45, 0xe8, 0x0c, 0xf8, 0xc3, 0x90, + 0xc7, 0x86, 0x2e, 0x02, 0x02, 0x00, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, 0x10, 0x00, 0xfb, 0x8e, + 0x46, 0x02, 0xf6, 0x06, 0x1e, 0x56, 0x01, 0x75, 0x08, 0x26, 0x83, 0x26, 0x02, 0x00, 0xfd, 0xeb, + 0x08, 0xc6, 0x86, 0x6d, 0x01, 0x01, 0xe8, 0xb6, 0x3b, 0xc6, 0x86, 0x08, 0x01, 0x00, 0xc7, 0x86, + 0x22, 0x01, 0x00, 0x00, 0xe8, 0x2f, 0xfc, 0xe8, 0x53, 0xfc, 0xf7, 0x86, 0xf4, 0x00, 0x10, 0x00, + 0x74, 0x14, 0xf7, 0x86, 0xf4, 0x00, 0x02, 0x00, 0x74, 0x0c, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x0e, + 0x02, 0x00, 0x00, 0x40, 0xeb, 0x0a, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x26, 0x02, 0x00, 0xff, 0xbf, + 0xe8, 0xa9, 0xef, 0xe8, 0x50, 0x2b, 0xc6, 0x86, 0xad, 0x02, 0x00, 0x8d, 0xbe, 0x0a, 0x03, 0x8c, + 0xd8, 0x8e, 0xc0, 0xab, 0xab, 0xab, 0xf6, 0x86, 0xa6, 0x02, 0x01, 0x74, 0x04, 0xc6, 0x46, 0x09, + 0x1e, 0x8e, 0x46, 0x02, 0x26, 0xc7, 0x06, 0x04, 0x00, 0xff, 0xfb, 0xf7, 0x86, 0x12, 0x01, 0x00, + 0x02, 0x74, 0x10, 0xf7, 0x86, 0x20, 0x01, 0x80, 0x00, 0x75, 0x08, 0xbe, 0x0f, 0x46, 0xe8, 0x69, + 0xf7, 0xeb, 0x0d, 0x8e, 0x46, 0x02, 0x33, 0xc0, 0x26, 0xa3, 0x24, 0x00, 0x26, 0xa3, 0x26, 0x00, + 0xc3, 0x90, 0x33, 0xc0, 0x88, 0x86, 0x5b, 0x02, 0x88, 0x86, 0x5e, 0x02, 0x88, 0x86, 0x60, 0x02, + 0x88, 0x86, 0x63, 0x02, 0x88, 0x86, 0x68, 0x02, 0xbe, 0xaf, 0x45, 0xe8, 0x3c, 0xf7, 0xc6, 0x86, + 0xad, 0x02, 0x01, 0x8e, 0x46, 0x02, 0xf6, 0x06, 0x1e, 0x56, 0x01, 0x75, 0x08, 0x26, 0x83, 0x26, + 0x02, 0x00, 0xfd, 0xeb, 0x08, 0xc6, 0x86, 0x6d, 0x01, 0x01, 0xe8, 0xf2, 0x3a, 0xc3, 0xc7, 0x86, + 0x2e, 0x02, 0x03, 0x00, 0xe8, 0x15, 0xef, 0xc6, 0x86, 0x69, 0x02, 0x01, 0xc6, 0x86, 0x6b, 0x02, + 0x01, 0xe8, 0x46, 0xf9, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x0e, 0x00, 0x00, 0x00, 0x1e, 0x8e, 0x46, + 0x02, 0x26, 0x83, 0x0e, 0x10, 0x00, 0x04, 0xbe, 0xcd, 0x45, 0xe8, 0xed, 0xf6, 0x8e, 0x46, 0x02, + 0x26, 0x81, 0x26, 0x04, 0x00, 0x32, 0xfe, 0xe8, 0x49, 0x05, 0xc3, 0x90, 0xc7, 0x86, 0x2e, 0x02, + 0x04, 0x00, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, 0x0c, 0x00, 0xfe, 0xc6, 0x86, 0x6b, 0x02, 0x01, + 0xc6, 0x86, 0x69, 0x02, 0x00, 0xc6, 0x86, 0x78, 0x02, 0x00, 0xe8, 0xfd, 0xf8, 0x8e, 0x46, 0x02, + 0x26, 0xc7, 0x06, 0x10, 0x00, 0x04, 0x00, 0x32, 0xc0, 0xe8, 0x42, 0x15, 0x33, 0xc0, 0x88, 0x86, + 0x88, 0x02, 0x88, 0x86, 0x89, 0x02, 0xc6, 0x86, 0x63, 0x01, 0x01, 0xc7, 0x86, 0x64, 0x01, 0xf6, + 0x05, 0xc6, 0x86, 0x69, 0x01, 0x02, 0xc6, 0x86, 0x68, 0x01, 0x02, 0xc7, 0x86, 0x66, 0x01, 0x20, + 0x03, 0x8e, 0x46, 0x02, 0x26, 0xc7, 0x06, 0x1c, 0x00, 0x00, 0x00, 0xbe, 0x6d, 0x45, 0xe8, 0x79, + 0xf6, 0xbe, 0xc7, 0x45, 0xe8, 0x73, 0xf6, 0x8b, 0xb6, 0x64, 0x01, 0xb9, 0xe8, 0x03, 0xe8, 0xec, + 0x0f, 0xc3, 0xc7, 0x86, 0x2e, 0x02, 0x05, 0x00, 0xc6, 0x86, 0x69, 0x02, 0x01, 0xe8, 0x9a, 0xf8, + 0xf6, 0x86, 0x6e, 0x02, 0x01, 0x75, 0x04, 0xc6, 0x46, 0x09, 0x16, 0xc6, 0x86, 0x72, 0x02, 0x01, + 0xbe, 0xeb, 0x45, 0xe8, 0x44, 0xf6, 0xbe, 0xf1, 0x45, 0xe8, 0x3e, 0xf6, 0xbe, 0xd9, 0x45, 0xe8, + 0x38, 0xf6, 0xbe, 0x03, 0x46, 0xe8, 0x32, 0xf6, 0xc7, 0x86, 0xcc, 0x02, 0x01, 0x00, 0xc6, 0x86, + 0x76, 0x02, 0x01, 0xe8, 0x7e, 0x12, 0xc3, 0x90, 0xc7, 0x86, 0x2e, 0x02, 0x07, 0x00, 0xc6, 0x86, + 0x68, 0x02, 0x01, 0xc6, 0x86, 0x5c, 0x02, 0x00, 0xc6, 0x86, 0x5d, 0x02, 0x00, 0xbe, 0xa3, 0x45, + 0xe8, 0x07, 0xf6, 0xf6, 0x86, 0x6e, 0x02, 0x01, 0x75, 0x0d, 0xc6, 0x86, 0x6e, 0x02, 0x01, 0xb8, + 0x00, 0x80, 0xe8, 0x03, 0x29, 0xeb, 0x0a, 0x83, 0xa6, 0x06, 0x02, 0xdf, 0xc6, 0x86, 0x85, 0x02, + 0x01, 0xc6, 0x86, 0x08, 0x01, 0x00, 0xe8, 0x6f, 0xfa, 0xe8, 0x1e, 0xfa, 0xf6, 0x06, 0x1e, 0x56, + 0x01, 0x74, 0x0a, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x26, 0x04, 0x00, 0xff, 0xf7, 0xe8, 0xe8, 0xf9, + 0x8e, 0x46, 0x02, 0x26, 0x83, 0x0e, 0x0c, 0x00, 0x01, 0xe8, 0xcd, 0xf0, 0xc7, 0x86, 0xc4, 0x01, + 0x14, 0x00, 0xc7, 0x86, 0xc2, 0x02, 0x00, 0x00, 0xbe, 0xa9, 0x45, 0xe8, 0xac, 0xf5, 0xc3, 0x90, + 0xc7, 0x86, 0x32, 0x02, 0x01, 0x00, 0xc7, 0x86, 0xc2, 0x01, 0xff, 0xff, 0xc7, 0x86, 0xc2, 0x02, + 0x00, 0x00, 0xc7, 0x86, 0xc4, 0x01, 0x14, 0x00, 0x80, 0x7e, 0x07, 0x10, 0x74, 0x44, 0x32, 0xc0, + 0xe8, 0x1b, 0x14, 0x80, 0x7e, 0x06, 0x0e, 0x74, 0x02, 0xeb, 0x37, 0x8e, 0x46, 0x02, 0x26, 0x83, + 0x0e, 0x0c, 0x00, 0x01, 0x83, 0xa6, 0x06, 0x02, 0xdf, 0xc6, 0x86, 0x85, 0x02, 0x01, 0xf6, 0x86, + 0x5b, 0x02, 0x01, 0x74, 0x1d, 0xf6, 0x86, 0x66, 0x02, 0x01, 0x74, 0x16, 0xf6, 0x86, 0x63, 0x02, + 0x01, 0x75, 0x0f, 0xc6, 0x86, 0x63, 0x02, 0x01, 0xf6, 0x86, 0x54, 0x02, 0x01, 0x75, 0x03, 0xe8, + 0x87, 0x0e, 0xc3, 0x90, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, 0x0c, 0x00, 0xfe, 0xc7, 0x86, 0x32, + 0x02, 0x02, 0x00, 0xc6, 0x86, 0x69, 0x02, 0x01, 0xe8, 0x6f, 0xf7, 0xe8, 0x33, 0xf9, 0xbe, 0x8b, + 0x45, 0xe8, 0x26, 0xf5, 0xe8, 0x1d, 0x0e, 0xc3, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, 0x0c, 0x00, + 0xfe, 0xc7, 0x86, 0x32, 0x02, 0x03, 0x00, 0xc7, 0x86, 0xc2, 0x02, 0x00, 0x00, 0xc7, 0x86, 0xc4, + 0x01, 0x0a, 0x00, 0xf6, 0x86, 0x54, 0x02, 0x01, 0x74, 0x0f, 0xc6, 0x86, 0x54, 0x02, 0x00, 0x8e, + 0x46, 0x02, 0x26, 0x81, 0x26, 0x24, 0x00, 0xff, 0x7f, 0xc6, 0x86, 0x5a, 0x02, 0x00, 0xc6, 0x86, + 0x69, 0x02, 0x01, 0xc6, 0x86, 0x6b, 0x02, 0x01, 0xe8, 0x1f, 0xf7, 0x81, 0xa6, 0x06, 0x02, 0xff, + 0x2f, 0x83, 0x8e, 0x06, 0x02, 0x20, 0xc6, 0x86, 0x85, 0x02, 0x01, 0xbe, 0x55, 0x45, 0xe8, 0xc9, + 0xf4, 0xbe, 0x79, 0x45, 0xe8, 0xc3, 0xf4, 0xc7, 0x86, 0xb2, 0x02, 0x01, 0x00, 0xc7, 0x86, 0xb4, + 0x02, 0x01, 0x00, 0xe8, 0x5d, 0x0d, 0xc3, 0x90, 0xff, 0x86, 0x44, 0x02, 0x8e, 0x46, 0x02, 0x26, + 0x83, 0x26, 0x0c, 0x00, 0xfe, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x0e, 0x10, 0x00, 0x04, 0xf6, 0x86, + 0x5f, 0x02, 0x01, 0x75, 0x03, 0xe8, 0x03, 0x0d, 0xc3, 0x90, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, + 0x0c, 0x00, 0xfe, 0x80, 0xbe, 0xa6, 0x02, 0x01, 0x75, 0x26, 0xc6, 0x86, 0x68, 0x02, 0x00, 0xc6, + 0x86, 0x69, 0x02, 0x00, 0xc6, 0x86, 0x6b, 0x02, 0x00, 0xe8, 0xae, 0xf6, 0xe8, 0x3f, 0xf6, 0xbe, + 0x7f, 0x45, 0xe8, 0x65, 0xf4, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, 0x10, 0x00, 0xfb, 0xeb, 0x60, + 0xc6, 0x86, 0x6d, 0x02, 0x01, 0xf6, 0x86, 0x6c, 0x02, 0x01, 0x75, 0x54, 0xe8, 0x1f, 0xf6, 0xe8, + 0x27, 0xed, 0xc6, 0x86, 0x68, 0x02, 0x00, 0xc6, 0x86, 0x6d, 0x02, 0x00, 0xbe, 0x7f, 0x45, 0xe8, + 0x38, 0xf4, 0x8e, 0x46, 0x02, 0xf6, 0x06, 0x1e, 0x56, 0x01, 0x75, 0x08, 0x26, 0x83, 0x26, 0x02, + 0x00, 0xfd, 0xeb, 0x08, 0xc6, 0x86, 0x6d, 0x01, 0x01, 0xe8, 0xf3, 0x37, 0x8e, 0x46, 0x02, 0x26, + 0xc7, 0x06, 0x10, 0x00, 0x04, 0x00, 0x33, 0xc0, 0x88, 0x86, 0x88, 0x02, 0x88, 0x86, 0x89, 0x02, + 0xc6, 0x86, 0x63, 0x01, 0x01, 0xc7, 0x86, 0x64, 0x01, 0xf6, 0x05, 0xc6, 0x86, 0x69, 0x01, 0x02, + 0xc3, 0x90, 0xff, 0x86, 0x44, 0x02, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, 0x0c, 0x00, 0xfe, 0x8e, + 0x46, 0x02, 0x26, 0x83, 0x0e, 0x10, 0x00, 0x04, 0xc7, 0x86, 0xae, 0x02, 0x02, 0x00, 0xc7, 0x86, + 0xb0, 0x02, 0x08, 0x00, 0xc6, 0x86, 0x54, 0x02, 0x00, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x26, 0x24, + 0x00, 0xff, 0x7f, 0xc6, 0x86, 0x69, 0x02, 0x00, 0xc6, 0x86, 0x6b, 0x02, 0x00, 0xe8, 0xfa, 0xf5, + 0xf6, 0x86, 0x81, 0x02, 0x01, 0x75, 0x06, 0xbe, 0x49, 0x45, 0xe8, 0xad, 0xf3, 0x81, 0xa6, 0x06, + 0x02, 0xff, 0x6f, 0x81, 0x8e, 0x06, 0x02, 0x00, 0x40, 0xc6, 0x86, 0x85, 0x02, 0x01, 0xc3, 0x90, + 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, 0x0c, 0x00, 0xfe, 0x83, 0xbe, 0xc6, 0x01, 0x00, 0x74, 0x0d, + 0x8b, 0x86, 0xc6, 0x01, 0xc7, 0x86, 0xc6, 0x01, 0x00, 0x00, 0xe8, 0x44, 0x0f, 0xbe, 0x55, 0x45, + 0xe8, 0x77, 0xf3, 0xc3, 0xc7, 0x86, 0x32, 0x02, 0x01, 0x00, 0xc7, 0x86, 0x30, 0x02, 0x02, 0x00, + 0x32, 0xc0, 0xe8, 0xf9, 0x11, 0x80, 0x7e, 0x06, 0x48, 0x75, 0x09, 0x8e, 0x46, 0x02, 0x26, 0x83, + 0x0e, 0x0c, 0x00, 0x01, 0xc3, 0x90, 0xc7, 0x86, 0x30, 0x02, 0x03, 0x00, 0xff, 0x86, 0x44, 0x02, + 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, 0x0c, 0x00, 0xfe, 0xc6, 0x86, 0x68, 0x02, 0x00, 0xc6, 0x86, + 0x72, 0x02, 0x00, 0xbe, 0xd3, 0x45, 0xe8, 0x31, 0xf3, 0xbe, 0xdf, 0x45, 0xe8, 0x2b, 0xf3, 0xbe, + 0xf7, 0x45, 0xe8, 0x25, 0xf3, 0xc6, 0x86, 0x6b, 0x02, 0x01, 0xe8, 0x5d, 0xf5, 0x81, 0x8e, 0x06, + 0x02, 0x04, 0x50, 0xc6, 0x86, 0x85, 0x02, 0x01, 0xf6, 0x86, 0x61, 0x02, 0x01, 0x74, 0x06, 0x81, + 0x8e, 0x06, 0x02, 0x00, 0x80, 0xe8, 0x54, 0x2d, 0xe8, 0x70, 0x0b, 0xc3, 0xc7, 0x86, 0x30, 0x02, + 0x04, 0x00, 0xbe, 0xd3, 0x45, 0xe8, 0xf2, 0xf2, 0xbe, 0xdf, 0x45, 0xe8, 0xec, 0xf2, 0x81, 0xa6, + 0x06, 0x02, 0xfb, 0x6f, 0x81, 0x8e, 0x06, 0x02, 0x00, 0x40, 0xc6, 0x86, 0x85, 0x02, 0x01, 0xc3, + 0xc7, 0x86, 0x30, 0x02, 0x05, 0x00, 0x8e, 0x46, 0x02, 0xf6, 0x06, 0x1e, 0x56, 0x01, 0x75, 0x08, + 0x26, 0x83, 0x26, 0x02, 0x00, 0xfd, 0xeb, 0x08, 0xc6, 0x86, 0x6d, 0x01, 0x01, 0xe8, 0x8f, 0x36, + 0x81, 0xa6, 0x06, 0x02, 0xfb, 0x2f, 0x83, 0x8e, 0x06, 0x02, 0x20, 0xc6, 0x86, 0x85, 0x02, 0x01, + 0xe8, 0x0f, 0x01, 0xc3, 0xc7, 0x86, 0x30, 0x02, 0x01, 0x00, 0xc3, 0x90, 0xc3, 0x53, 0x50, 0x89, + 0x86, 0x22, 0x01, 0x80, 0xbe, 0x62, 0x01, 0x01, 0x75, 0x0f, 0x50, 0xe8, 0x8e, 0xea, 0xe8, 0x43, + 0x24, 0xc6, 0x46, 0x07, 0x00, 0x58, 0xe9, 0x9d, 0x00, 0xf6, 0x86, 0x08, 0x01, 0x01, 0x74, 0x05, + 0xe8, 0x85, 0x25, 0xeb, 0x57, 0x83, 0xf8, 0x10, 0x75, 0x08, 0x81, 0x8e, 0x1e, 0x01, 0x00, 0x80, + 0xeb, 0x4a, 0x83, 0x8e, 0x1e, 0x01, 0x02, 0x8b, 0x9e, 0x06, 0x02, 0x83, 0xf8, 0x01, 0x75, 0x04, + 0x81, 0xcb, 0x00, 0x04, 0x83, 0xf8, 0x0c, 0x75, 0x04, 0x81, 0xcb, 0x00, 0x08, 0x83, 0xf8, 0x0b, + 0x75, 0x03, 0x83, 0xcb, 0x02, 0x83, 0xf8, 0x09, 0x75, 0x03, 0x83, 0xcb, 0x04, 0x83, 0xf8, 0x0a, + 0x75, 0x04, 0x81, 0xcb, 0x00, 0x01, 0x83, 0xf8, 0x06, 0x75, 0x03, 0x83, 0xcb, 0x01, 0x83, 0xf8, + 0x0f, 0x74, 0x09, 0x89, 0x9e, 0x06, 0x02, 0xc6, 0x86, 0x85, 0x02, 0x01, 0xc6, 0x46, 0x07, 0x12, + 0xc6, 0x46, 0x09, 0x1e, 0xf6, 0x86, 0xa7, 0x02, 0x01, 0x74, 0x1a, 0x8e, 0x46, 0x02, 0xf6, 0x06, + 0x1e, 0x56, 0x01, 0x75, 0x08, 0x26, 0x83, 0x26, 0x02, 0x00, 0xfd, 0xeb, 0x08, 0xc6, 0x86, 0x6d, + 0x01, 0x01, 0xe8, 0xca, 0x35, 0xf6, 0x86, 0xa5, 0x02, 0x01, 0x75, 0x02, 0xeb, 0x08, 0xc6, 0x46, + 0x07, 0x10, 0xc6, 0x46, 0x09, 0x00, 0x58, 0x5b, 0xc3, 0x8e, 0x46, 0x02, 0x26, 0xf7, 0x06, 0x00, + 0x00, 0x02, 0x00, 0x74, 0x0b, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, 0x00, 0x00, 0xfd, 0xeb, 0x09, + 0x8e, 0x46, 0x02, 0x26, 0x83, 0x0e, 0x00, 0x00, 0x02, 0xc3, 0xc7, 0x86, 0x2e, 0x02, 0x01, 0x00, + 0xc3, 0xb9, 0x01, 0x01, 0x38, 0xc8, 0x75, 0x19, 0x8b, 0xb6, 0xf6, 0x00, 0x81, 0xe6, 0x00, 0xc0, + 0x81, 0xfe, 0x00, 0x80, 0x75, 0x0b, 0xc6, 0x86, 0x56, 0x02, 0x01, 0xbe, 0x5b, 0x45, 0xe8, 0x99, + 0xf1, 0xc3, 0xc3, 0x50, 0xf7, 0x86, 0xf6, 0x00, 0x00, 0x02, 0x74, 0x06, 0x81, 0x8e, 0xf6, 0x00, + 0x00, 0x01, 0xc6, 0x86, 0x90, 0x02, 0x01, 0xe8, 0x05, 0x00, 0xe8, 0xbd, 0xf3, 0x58, 0xc3, 0xc7, + 0x86, 0x93, 0x02, 0x00, 0x00, 0xc7, 0x86, 0x97, 0x02, 0x05, 0x00, 0xc6, 0x86, 0x91, 0x02, 0x00, + 0xa1, 0xc8, 0x54, 0x89, 0x86, 0x95, 0x02, 0x40, 0x89, 0x86, 0x99, 0x02, 0xc3, 0xc6, 0x86, 0x90, + 0x02, 0x00, 0xc6, 0x86, 0x91, 0x02, 0x00, 0xc3, 0x50, 0x53, 0xf6, 0x86, 0x91, 0x02, 0x01, 0x75, + 0x1c, 0xa1, 0xc8, 0x54, 0x8b, 0x9e, 0x95, 0x02, 0x3b, 0xc3, 0x74, 0x11, 0x43, 0x3b, 0xc3, 0x74, + 0x0c, 0x83, 0xc0, 0x04, 0x89, 0x86, 0x95, 0x02, 0xc6, 0x86, 0x91, 0x02, 0x01, 0x5b, 0x58, 0xc3, + 0xc7, 0x86, 0x93, 0x02, 0x00, 0x00, 0xa1, 0xc8, 0x54, 0x83, 0xc0, 0x04, 0x89, 0x86, 0x95, 0x02, + 0xc6, 0x86, 0x91, 0x02, 0x01, 0xc3, 0xa1, 0xc8, 0x54, 0x3b, 0x86, 0x99, 0x02, 0x74, 0x3b, 0x40, + 0x3b, 0x86, 0x99, 0x02, 0x74, 0x34, 0x48, 0xf6, 0x86, 0x91, 0x02, 0x01, 0x74, 0x43, 0x3b, 0x86, + 0x95, 0x02, 0x75, 0x3d, 0x81, 0xbe, 0x93, 0x02, 0x04, 0x01, 0x75, 0x0b, 0xf7, 0x86, 0xf6, 0x00, + 0x00, 0x01, 0x75, 0x03, 0xe9, 0xa7, 0x00, 0x83, 0xbe, 0x93, 0x02, 0x04, 0x75, 0x11, 0x80, 0x7e, + 0x06, 0x04, 0x75, 0x09, 0xe8, 0xa9, 0xff, 0xe9, 0xa6, 0x00, 0xe9, 0xa3, 0x00, 0xeb, 0x0c, 0x80, + 0x7e, 0x06, 0x04, 0x75, 0x06, 0xe8, 0x2b, 0xff, 0xe9, 0x95, 0x00, 0xe8, 0x5f, 0xff, 0xe9, 0x8f, + 0x00, 0x8e, 0x46, 0x02, 0x26, 0xa1, 0x14, 0x00, 0x25, 0x24, 0x01, 0x8b, 0xd8, 0x33, 0x86, 0x93, + 0x02, 0x75, 0x02, 0xeb, 0x7b, 0xa9, 0x04, 0x00, 0x74, 0x15, 0xe8, 0x4b, 0xff, 0xf7, 0xc3, 0x04, + 0x00, 0x74, 0x07, 0xc6, 0x86, 0x92, 0x02, 0x01, 0xeb, 0x05, 0xc6, 0x86, 0x92, 0x02, 0x00, 0xa9, + 0x00, 0x01, 0x74, 0x14, 0xf7, 0xc3, 0x00, 0x01, 0x74, 0x0b, 0xf7, 0xc3, 0x20, 0x00, 0x75, 0x20, + 0xe8, 0x25, 0xff, 0xeb, 0x03, 0xe8, 0x20, 0xff, 0xa9, 0x20, 0x00, 0x74, 0x2f, 0xf7, 0xc3, 0x20, + 0x00, 0x74, 0x36, 0xf6, 0x86, 0x91, 0x02, 0x01, 0x74, 0x32, 0xf7, 0xc3, 0x00, 0x01, 0x74, 0x2c, + 0xf7, 0x86, 0xf6, 0x00, 0x00, 0x02, 0x74, 0x16, 0xf7, 0x86, 0xf6, 0x00, 0x00, 0x01, 0x74, 0x0e, + 0xe8, 0x1d, 0xff, 0x81, 0xa6, 0xf6, 0x00, 0xff, 0xfe, 0xe8, 0x7e, 0xf2, 0xeb, 0x0e, 0xe8, 0xdc, + 0xfe, 0xb8, 0x0e, 0x00, 0xe8, 0x96, 0xfd, 0xeb, 0x03, 0xe8, 0xdc, 0xfe, 0x89, 0x9e, 0x93, 0x02, + 0xc3, 0x90, 0x55, 0x1e, 0x06, 0x33, 0xed, 0x8e, 0xdd, 0x8b, 0x2e, 0xe6, 0x54, 0x8e, 0x46, 0x02, + 0xeb, 0x00, 0x60, 0xfa, 0x8e, 0x46, 0x02, 0x26, 0xa1, 0x04, 0x00, 0x89, 0x86, 0x18, 0x01, 0xc7, + 0x86, 0x1c, 0x01, 0x01, 0x00, 0x8e, 0x46, 0x02, 0x26, 0xa1, 0x06, 0x00, 0x89, 0x86, 0x1a, 0x01, + 0xb8, 0x07, 0x00, 0x8e, 0x46, 0x02, 0x26, 0xa3, 0x06, 0x00, 0xb8, 0xff, 0xff, 0x8e, 0x46, 0x02, + 0x26, 0xa3, 0x04, 0x00, 0xfb, 0x8e, 0x46, 0x02, 0x26, 0xa1, 0x08, 0x00, 0x8b, 0xd8, 0x81, 0xe3, + 0xff, 0xfc, 0x8e, 0x46, 0x02, 0x26, 0x89, 0x1e, 0x08, 0x00, 0x8e, 0x46, 0x02, 0x26, 0x8b, 0x1e, + 0x0a, 0x00, 0x8e, 0x46, 0x02, 0x26, 0x89, 0x1e, 0x0a, 0x00, 0x50, 0xb0, 0xa0, 0xe6, 0x10, 0x58, + 0xa9, 0x00, 0x08, 0x74, 0x0f, 0xf6, 0x06, 0x1e, 0x56, 0x01, 0x74, 0x05, 0xe8, 0x0a, 0x32, 0xeb, + 0x03, 0xe8, 0x54, 0x2d, 0xa9, 0x00, 0x01, 0x75, 0x20, 0xf7, 0x86, 0xa3, 0x02, 0x01, 0x00, 0x75, + 0x1f, 0xa9, 0xcd, 0x01, 0x74, 0x1a, 0x80, 0xbe, 0x6a, 0x01, 0x0a, 0x72, 0x0c, 0xc7, 0x86, 0xa3, + 0x02, 0x01, 0x00, 0x81, 0x8e, 0x18, 0x01, 0xcd, 0x00, 0xfe, 0x86, 0x6a, 0x01, 0xe8, 0x90, 0x2e, + 0xa9, 0x00, 0x04, 0x74, 0x29, 0xf7, 0x86, 0x0a, 0x01, 0x01, 0x00, 0x75, 0x21, 0x8e, 0x46, 0x02, + 0x26, 0x81, 0x0e, 0x04, 0x00, 0x00, 0x04, 0xe8, 0x60, 0xed, 0xc7, 0x44, 0x02, 0x01, 0x00, 0x89, + 0x44, 0x04, 0xc7, 0x86, 0x0a, 0x01, 0x01, 0x00, 0x8d, 0x7e, 0x16, 0xe8, 0x6a, 0xed, 0xa9, 0x00, + 0x10, 0x74, 0x27, 0x80, 0xbe, 0x0c, 0x01, 0x01, 0x74, 0x20, 0xf6, 0x86, 0xb8, 0x01, 0x01, 0x75, + 0x19, 0xe8, 0x36, 0xed, 0xf7, 0xc6, 0xff, 0xff, 0x74, 0x10, 0xc7, 0x44, 0x02, 0x03, 0x00, 0xc6, + 0x86, 0xb8, 0x01, 0x01, 0x8d, 0x7e, 0x16, 0xe8, 0x3e, 0xed, 0xa9, 0x00, 0x20, 0x74, 0x2e, 0x80, + 0xbe, 0x0c, 0x01, 0x01, 0x75, 0x07, 0xc6, 0x86, 0x0d, 0x01, 0x01, 0xeb, 0x20, 0xf6, 0x86, 0xb9, + 0x01, 0x01, 0x75, 0x19, 0xe8, 0x03, 0xed, 0xf7, 0xc6, 0xff, 0xff, 0x74, 0x10, 0xc7, 0x44, 0x02, + 0x04, 0x00, 0xc6, 0x86, 0xb9, 0x01, 0x01, 0x8d, 0x7e, 0x16, 0xe8, 0x0b, 0xed, 0xfa, 0x8b, 0x86, + 0x18, 0x01, 0x8e, 0x46, 0x02, 0x26, 0xa3, 0x04, 0x00, 0xc7, 0x86, 0x1c, 0x01, 0x00, 0x00, 0x8b, + 0x86, 0x1a, 0x01, 0x8e, 0x46, 0x02, 0x26, 0xa3, 0x06, 0x00, 0x61, 0x07, 0x1f, 0x5d, 0xcf, 0x50, + 0x25, 0x00, 0x02, 0x8e, 0x46, 0x02, 0x26, 0xa3, 0x08, 0x00, 0x8b, 0x86, 0xc2, 0x02, 0x40, 0x89, + 0x86, 0xc2, 0x02, 0x83, 0xf8, 0x01, 0x75, 0x08, 0x56, 0xbe, 0xa9, 0x45, 0xe8, 0xab, 0xee, 0x5e, + 0x3b, 0x86, 0xc4, 0x01, 0x76, 0x0a, 0x80, 0xbe, 0x61, 0x02, 0x01, 0x74, 0x03, 0xe8, 0x95, 0x2e, + 0x58, 0xc3, 0x8d, 0x71, 0x18, 0x8b, 0x49, 0x14, 0x86, 0xcd, 0x83, 0xe9, 0x04, 0x7e, 0x1b, 0x33, + 0xc0, 0x03, 0xf0, 0x8a, 0x04, 0x0a, 0xc0, 0x74, 0x11, 0x3a, 0x54, 0x01, 0x74, 0x17, 0x32, 0xe4, + 0x3c, 0xff, 0x74, 0x0a, 0x2b, 0xc8, 0x72, 0x02, 0x77, 0xe7, 0x33, 0xc0, 0xf9, 0xc3, 0x8b, 0x44, + 0x02, 0x86, 0xc4, 0xeb, 0xef, 0x0a, 0xe4, 0x75, 0xf1, 0x38, 0xf0, 0x75, 0xed, 0x8d, 0x74, 0x02, + 0xf8, 0xc3, 0x8c, 0xd8, 0x8e, 0xc0, 0x8b, 0xb6, 0x52, 0x15, 0x8b, 0xbe, 0x54, 0x15, 0x47, 0xa5, + 0xa5, 0xa5, 0x8b, 0x4f, 0x04, 0x83, 0xc1, 0x07, 0x80, 0xe1, 0xfe, 0x8b, 0xc7, 0x2b, 0xc3, 0x2b, + 0xc8, 0x76, 0x0a, 0x81, 0xf9, 0x00, 0x01, 0x73, 0x09, 0xd1, 0xe9, 0xf3, 0xa5, 0x8b, 0x07, 0xe9, + 0xc9, 0x01, 0xb9, 0x19, 0x00, 0xf3, 0xa5, 0x33, 0xff, 0xf6, 0x47, 0x0e, 0x80, 0x74, 0x0e, 0x8b, + 0x47, 0x14, 0x83, 0xe0, 0x1f, 0x74, 0x0f, 0xa8, 0x01, 0x75, 0x0b, 0x8b, 0xf8, 0xba, 0x80, 0x09, + 0x68, 0x2e, 0x24, 0xe9, 0xab, 0x05, 0xe9, 0x99, 0x02, 0xc3, 0x80, 0x7f, 0x17, 0x02, 0x75, 0xf9, + 0x50, 0x56, 0x8b, 0xb6, 0xc4, 0x05, 0x8b, 0x04, 0x5e, 0x3b, 0x86, 0xc2, 0x01, 0x74, 0x07, 0x89, + 0x86, 0xc2, 0x01, 0x58, 0xeb, 0x3d, 0x58, 0xeb, 0x12, 0x8a, 0x4f, 0x07, 0x80, 0xe1, 0x3f, 0x74, + 0xd8, 0x8a, 0xe9, 0x86, 0x8e, 0xfa, 0x01, 0x38, 0xcd, 0x75, 0x18, 0x57, 0x51, 0x8d, 0xbe, 0xfc, + 0x01, 0x8d, 0x77, 0x0e, 0x8c, 0xd9, 0x8e, 0xc1, 0xb9, 0x03, 0x00, 0xf3, 0xa7, 0x75, 0x06, 0x59, + 0x5f, 0xeb, 0xb6, 0x57, 0x51, 0x8d, 0xbe, 0xfc, 0x01, 0x8d, 0x77, 0x0e, 0xb9, 0x03, 0x00, 0xf3, + 0xa5, 0x59, 0x5f, 0xeb, 0x0d, 0x8b, 0x7e, 0x04, 0x58, 0xc3, 0xf7, 0x86, 0xf6, 0x00, 0x01, 0x00, + 0x74, 0xf7, 0x80, 0x7e, 0x06, 0x0e, 0x74, 0x08, 0x80, 0x7e, 0x06, 0x48, 0x74, 0x02, 0xeb, 0xe9, + 0x50, 0x8c, 0xd8, 0x8e, 0xc0, 0x8b, 0x07, 0xa9, 0x00, 0x40, 0x75, 0xdc, 0x0d, 0x00, 0x40, 0x89, + 0x07, 0xe8, 0x8a, 0x00, 0x8b, 0x4f, 0x04, 0x83, 0xc1, 0x03, 0x80, 0xe1, 0xfe, 0x89, 0x7e, 0x04, + 0x8b, 0xbe, 0xbe, 0x01, 0x3b, 0xfe, 0x72, 0x11, 0x8d, 0x86, 0x52, 0x08, 0x05, 0xff, 0x00, 0x2b, + 0xc7, 0x3b, 0xc1, 0x7d, 0x0a, 0x8d, 0xbe, 0x52, 0x08, 0x2b, 0xf7, 0x3b, 0xf1, 0x7c, 0xa6, 0x8b, + 0xd7, 0x8c, 0xd8, 0x8e, 0xc0, 0x33, 0xc0, 0x8b, 0xf3, 0xd1, 0xe9, 0x83, 0xc7, 0x02, 0x49, 0xad, + 0xf3, 0xa5, 0x8b, 0xcf, 0xc7, 0x05, 0x00, 0x00, 0x8b, 0xfa, 0x89, 0x4d, 0x02, 0x51, 0x8b, 0x4d, + 0x04, 0x83, 0xe9, 0x04, 0x89, 0x4d, 0x04, 0x59, 0x89, 0x05, 0x8d, 0x86, 0x52, 0x08, 0x3b, 0xf8, + 0x75, 0x0e, 0x8b, 0x86, 0xbc, 0x01, 0x3b, 0x86, 0xbe, 0x01, 0x75, 0x1c, 0x89, 0xbe, 0xbc, 0x01, + 0x89, 0x8e, 0xbe, 0x01, 0x8b, 0x7e, 0x04, 0xc7, 0x86, 0xc0, 0x01, 0x00, 0x00, 0xb9, 0x40, 0x60, + 0x8e, 0xc1, 0xe8, 0x29, 0x21, 0xe9, 0x4d, 0xff, 0x97, 0x89, 0x45, 0x02, 0xeb, 0xe2, 0x8b, 0xb6, + 0xbc, 0x01, 0xf7, 0x86, 0xc0, 0x01, 0x01, 0x00, 0x75, 0x0f, 0x81, 0x3c, 0x00, 0x80, 0x75, 0x05, + 0x8b, 0x74, 0x02, 0xeb, 0xf5, 0x89, 0xb6, 0xbc, 0x01, 0xc3, 0xf7, 0x07, 0x01, 0x09, 0x74, 0x03, + 0xe9, 0x5f, 0x01, 0xf7, 0x07, 0x00, 0x10, 0x75, 0x33, 0x68, 0x42, 0x23, 0xe9, 0x9d, 0x24, 0xa8, + 0x02, 0x74, 0x21, 0x80, 0x7e, 0x08, 0x00, 0x75, 0x1b, 0x80, 0xbe, 0x5e, 0x02, 0x00, 0x74, 0x14, + 0x24, 0x28, 0x3c, 0x28, 0x75, 0x0e, 0xf6, 0x47, 0x0e, 0x80, 0x75, 0x67, 0x81, 0x8e, 0xda, 0x02, + 0x80, 0x00, 0xeb, 0x5f, 0xeb, 0x5d, 0xe9, 0x39, 0xfe, 0x90, 0xeb, 0xd3, 0xeb, 0x38, 0x8b, 0x47, + 0x14, 0x83, 0xe0, 0x1f, 0x74, 0x06, 0xa8, 0x01, 0x8b, 0xf8, 0x74, 0x4f, 0xe9, 0x13, 0x01, 0x50, + 0x8b, 0x9e, 0xb2, 0x01, 0x8b, 0x07, 0xa9, 0x00, 0x20, 0x74, 0x0b, 0xff, 0x86, 0x3c, 0x02, 0x8b, + 0x4f, 0x04, 0x01, 0x8e, 0x3e, 0x02, 0xe8, 0x81, 0x03, 0x75, 0xcb, 0xf6, 0x47, 0x07, 0x40, 0x74, + 0x05, 0xe8, 0x9e, 0x03, 0xeb, 0x78, 0xf7, 0x86, 0xb6, 0x01, 0x00, 0x02, 0x75, 0x11, 0xa9, 0x01, + 0x09, 0x75, 0x6b, 0x80, 0x7e, 0x07, 0x10, 0x74, 0x65, 0x80, 0x7e, 0x07, 0x12, 0x74, 0x5f, 0xa8, + 0x28, 0x75, 0xa7, 0x33, 0xff, 0xf6, 0x47, 0x0e, 0x80, 0x75, 0xa3, 0x8b, 0x47, 0x04, 0x83, 0xf8, + 0x12, 0x77, 0x05, 0x33, 0xc0, 0xe9, 0x7d, 0x01, 0x83, 0xe8, 0x12, 0x2b, 0xc7, 0x83, 0xf8, 0x04, + 0x7c, 0x3e, 0x8b, 0x49, 0x16, 0x88, 0xae, 0x04, 0x02, 0x51, 0x80, 0xe1, 0xf0, 0x80, 0xf9, 0x00, + 0x74, 0x09, 0x80, 0xf9, 0x30, 0x74, 0x04, 0x59, 0xe9, 0x97, 0x00, 0x59, 0x0b, 0xff, 0x74, 0x0f, + 0xf6, 0xc1, 0x0f, 0x74, 0x19, 0x80, 0xf9, 0x33, 0x74, 0x14, 0x80, 0xf9, 0x03, 0x74, 0x0f, 0x86, + 0xc4, 0x39, 0x41, 0x14, 0x86, 0xc4, 0x75, 0x02, 0xeb, 0x0e, 0xe9, 0x33, 0x01, 0x90, 0xeb, 0x72, + 0xe9, 0x32, 0x01, 0x90, 0xe9, 0x3a, 0x01, 0x90, 0xf6, 0x86, 0x90, 0x02, 0x01, 0x74, 0x03, 0xe8, + 0x6b, 0xfa, 0x80, 0xfd, 0x15, 0x77, 0x11, 0x80, 0xfd, 0x01, 0x74, 0xe8, 0x80, 0xfd, 0x09, 0x74, + 0xe3, 0x80, 0xfd, 0x0a, 0x74, 0xde, 0xeb, 0x11, 0x80, 0xfd, 0x20, 0x72, 0xd7, 0x80, 0xfd, 0x29, + 0x77, 0xd2, 0x80, 0xfd, 0x21, 0x74, 0xcd, 0xeb, 0xc5, 0x80, 0xfd, 0x10, 0x76, 0x02, 0xeb, 0x0a, + 0x80, 0xfd, 0x0e, 0x73, 0x28, 0x80, 0xfd, 0x15, 0x77, 0x23, 0x53, 0x8b, 0xd9, 0xc1, 0xeb, 0x08, + 0x80, 0xe1, 0x0f, 0x3a, 0x8f, 0x74, 0x04, 0x74, 0x13, 0x83, 0xfb, 0x0b, 0x74, 0x09, 0x83, 0xfb, + 0x0c, 0x74, 0x04, 0x5b, 0xe9, 0xd3, 0x00, 0x80, 0xf9, 0x08, 0x75, 0xf7, 0x5b, 0xe9, 0x81, 0x01, + 0x5b, 0x5f, 0x8b, 0x9e, 0xb2, 0x01, 0xf7, 0x86, 0xf6, 0x00, 0x01, 0x00, 0x74, 0x28, 0x80, 0x7e, + 0x06, 0x0e, 0x74, 0x06, 0x80, 0x7e, 0x06, 0x48, 0x75, 0x1c, 0xf7, 0x86, 0x12, 0x01, 0x00, 0x08, + 0x74, 0x06, 0x68, 0x62, 0x24, 0xe9, 0x61, 0xfd, 0xf7, 0x86, 0x12, 0x01, 0x80, 0x00, 0x74, 0x06, + 0x68, 0x62, 0x24, 0xe9, 0x34, 0xfd, 0x8b, 0x5f, 0x02, 0x89, 0x9e, 0xb2, 0x01, 0x8b, 0xc3, 0x83, + 0xe8, 0x02, 0x3b, 0x86, 0x52, 0x15, 0x77, 0x04, 0x8b, 0x86, 0x54, 0x15, 0x8e, 0x46, 0x02, 0x26, + 0xa3, 0x38, 0x00, 0x80, 0xbe, 0x2d, 0x01, 0x01, 0x75, 0x1b, 0x2d, 0x00, 0x02, 0x3b, 0x86, 0x52, + 0x15, 0x73, 0x0e, 0x53, 0x8b, 0xd8, 0x2b, 0x9e, 0x52, 0x15, 0x8b, 0x86, 0x54, 0x15, 0x2b, 0xc3, + 0x5b, 0x26, 0xa3, 0x6c, 0x00, 0xfa, 0x8b, 0x07, 0xa9, 0x00, 0x80, 0x74, 0x17, 0xfb, 0xff, 0x86, + 0x3c, 0x01, 0x83, 0xbe, 0x3c, 0x01, 0x05, 0x77, 0x1c, 0x8a, 0x4e, 0x09, 0x3a, 0x4e, 0x08, 0x75, + 0x14, 0xe9, 0x62, 0xfe, 0xc6, 0x86, 0xb9, 0x01, 0x00, 0xfb, 0xc7, 0x86, 0x3c, 0x01, 0x00, 0x00, + 0x58, 0xc3, 0xe9, 0x5d, 0xff, 0xe8, 0xc2, 0xe8, 0xf7, 0xc6, 0xff, 0xff, 0x74, 0xe6, 0xc7, 0x44, + 0x02, 0x04, 0x00, 0xc6, 0x86, 0xb9, 0x01, 0x01, 0x8d, 0x7e, 0x16, 0xe8, 0xca, 0xe8, 0xeb, 0xda, + 0xba, 0x80, 0x02, 0xeb, 0x1d, 0xba, 0x80, 0x01, 0xeb, 0x18, 0xba, 0x80, 0x04, 0xeb, 0x13, 0x5f, + 0x5b, 0xf7, 0x86, 0x12, 0x01, 0x00, 0x10, 0x74, 0x06, 0x68, 0x62, 0x24, 0xe9, 0xeb, 0xfc, 0xba, + 0x80, 0x03, 0x33, 0xc0, 0x8e, 0xc0, 0x68, 0x2e, 0x24, 0xe9, 0x25, 0x02, 0x33, 0xd2, 0x32, 0xed, + 0x8a, 0x4d, 0xff, 0x89, 0x55, 0x02, 0x83, 0xc7, 0x05, 0xe2, 0xf8, 0xf6, 0x86, 0x5f, 0x02, 0x01, + 0x74, 0x38, 0x80, 0x7e, 0x08, 0x0a, 0x75, 0x0b, 0xc6, 0x46, 0x09, 0x04, 0xc6, 0x86, 0x5f, 0x02, + 0x00, 0xeb, 0x24, 0x80, 0x7e, 0x08, 0x06, 0x75, 0x21, 0xc6, 0x86, 0x5f, 0x02, 0x00, 0xc6, 0x86, + 0x69, 0x02, 0x01, 0xe8, 0x84, 0xec, 0xbe, 0x79, 0x45, 0xe8, 0x3e, 0xea, 0x50, 0x53, 0x33, 0xc0, + 0x8e, 0xc0, 0xe8, 0xa6, 0x02, 0x5b, 0x58, 0xbb, 0x00, 0x00, 0x8b, 0xf8, 0x8b, 0xf3, 0x5b, 0x57, + 0x53, 0x68, 0x2c, 0x24, 0xff, 0x66, 0x12, 0xeb, 0x87, 0x8b, 0xc7, 0x8b, 0xbf, 0x8a, 0x04, 0x0b, + 0xff, 0x78, 0xf4, 0x74, 0xa6, 0x03, 0xfd, 0xf6, 0x45, 0x01, 0x80, 0x75, 0x02, 0xeb, 0x8d, 0xe9, + 0x21, 0x01, 0xe9, 0x03, 0x01, 0x5f, 0x5b, 0xba, 0x80, 0x08, 0xe9, 0x75, 0xff, 0x8b, 0x54, 0x02, + 0x86, 0xd6, 0x83, 0xc6, 0x02, 0xb0, 0x04, 0xeb, 0x51, 0x5f, 0x5b, 0xba, 0x80, 0x05, 0xe9, 0x61, + 0xff, 0x53, 0x8d, 0x71, 0x18, 0x32, 0xff, 0x8a, 0xdd, 0xd1, 0xe3, 0x83, 0xe8, 0x04, 0x0b, 0xc0, + 0x74, 0xb7, 0x89, 0x46, 0x04, 0x57, 0x8b, 0xbf, 0x8a, 0x04, 0x0b, 0xff, 0x74, 0xc4, 0x79, 0x03, + 0xe9, 0x2c, 0xff, 0x03, 0xfd, 0x8e, 0xc7, 0x33, 0xc0, 0x32, 0xed, 0x8a, 0x4d, 0xff, 0x89, 0x45, + 0x02, 0x83, 0xc7, 0x05, 0xe2, 0xf8, 0x33, 0xd2, 0x03, 0xf2, 0x8a, 0x4c, 0x01, 0x8a, 0x14, 0x0a, + 0xd2, 0x74, 0xb6, 0x80, 0xfa, 0xff, 0x74, 0xa5, 0xb0, 0x02, 0x29, 0x56, 0x04, 0x72, 0xaa, 0x0a, + 0xc9, 0x78, 0x92, 0x8a, 0xe1, 0x80, 0xe1, 0x3f, 0x8c, 0xc7, 0x8a, 0x6d, 0xff, 0xeb, 0x12, 0x80, + 0x7d, 0x04, 0xff, 0x74, 0x15, 0xeb, 0x92, 0xe9, 0x7b, 0xff, 0xfe, 0xcd, 0x74, 0xf9, 0x83, 0xc7, + 0x05, 0x3a, 0x0d, 0x75, 0xf5, 0x3a, 0x55, 0x04, 0x75, 0xe5, 0x8d, 0x44, 0x02, 0x87, 0x45, 0x02, + 0x0b, 0xc0, 0x74, 0x09, 0xf6, 0x45, 0x01, 0x80, 0x75, 0xdd, 0x89, 0x45, 0x02, 0x83, 0x7e, 0x04, + 0x00, 0x75, 0xa5, 0x33, 0xc0, 0x8c, 0xc6, 0xf6, 0x44, 0x01, 0x80, 0x74, 0x0e, 0x39, 0x44, 0x02, + 0x74, 0x60, 0x83, 0xc6, 0x05, 0xf6, 0x44, 0x01, 0x80, 0x75, 0xf2, 0xf6, 0x86, 0x5f, 0x02, 0x01, + 0x74, 0x36, 0x80, 0x7e, 0x08, 0x0a, 0x75, 0x0b, 0xc6, 0x86, 0x5f, 0x02, 0x00, 0xc6, 0x46, 0x09, + 0x04, 0xeb, 0x22, 0x80, 0x7e, 0x08, 0x06, 0x75, 0x1f, 0xc6, 0x86, 0x5f, 0x02, 0x00, 0xc6, 0x86, + 0x69, 0x02, 0x01, 0xe8, 0x54, 0xeb, 0xbe, 0x79, 0x45, 0xe8, 0x0e, 0xe9, 0x33, 0xc0, 0x8e, 0xc0, + 0x53, 0xe8, 0x77, 0x01, 0x5b, 0xbb, 0x00, 0x00, 0x89, 0x5e, 0x04, 0x8b, 0xf3, 0x5f, 0x5b, 0x33, + 0xc0, 0x8e, 0xc0, 0x3b, 0xb6, 0xba, 0x01, 0x73, 0x06, 0x68, 0x2e, 0x24, 0xff, 0x66, 0x12, 0xe9, + 0x80, 0xfd, 0x5f, 0x5b, 0xba, 0x80, 0x07, 0xe9, 0x58, 0xfe, 0x56, 0x57, 0x50, 0x33, 0xc0, 0x8e, + 0xc0, 0x8b, 0xb6, 0x52, 0x15, 0x8b, 0xbe, 0x54, 0x15, 0x83, 0xc7, 0x01, 0xa5, 0xa5, 0xa5, 0x8b, + 0xc3, 0x03, 0x47, 0x04, 0x8b, 0xbe, 0x54, 0x15, 0x3b, 0xc7, 0x7f, 0x02, 0x32, 0xc0, 0x58, 0x5f, + 0x5e, 0xc3, 0x80, 0xbe, 0x2d, 0x01, 0x01, 0x75, 0x57, 0x53, 0x33, 0xff, 0xf6, 0x47, 0x0e, 0x80, + 0x74, 0x0e, 0x8b, 0x47, 0x14, 0x83, 0xe0, 0x1f, 0x74, 0x45, 0xa8, 0x01, 0x75, 0x41, 0x8b, 0xf8, + 0x83, 0xc3, 0x06, 0x8d, 0xb6, 0xec, 0x15, 0x33, 0xc0, 0x33, 0xc9, 0x8a, 0x0c, 0x80, 0xf9, 0x00, + 0x74, 0x2d, 0x53, 0x46, 0x8a, 0x04, 0x03, 0xd8, 0x80, 0x3c, 0x0e, 0x72, 0x02, 0x03, 0xdf, 0x46, + 0x8a, 0x04, 0x3a, 0x07, 0x75, 0x07, 0x5b, 0xfe, 0xc9, 0x74, 0x0a, 0xeb, 0xe5, 0x5b, 0x03, 0xf1, + 0x03, 0xf1, 0x4e, 0xeb, 0xd6, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x0e, 0x72, 0x00, 0x00, 0x01, 0x5b, + 0xc3, 0x8c, 0xd8, 0x8e, 0xc0, 0xf6, 0x41, 0x16, 0x0f, 0x74, 0x60, 0x89, 0x96, 0xe2, 0x02, 0x81, + 0xfa, 0x80, 0x02, 0x74, 0x13, 0xba, 0x09, 0x04, 0xe8, 0xa7, 0xf9, 0x72, 0x0b, 0xad, 0x86, 0xe0, + 0x89, 0x86, 0x14, 0x02, 0x86, 0xe0, 0xeb, 0x06, 0x8b, 0x86, 0x14, 0x02, 0x86, 0xe0, 0x89, 0x86, + 0xde, 0x02, 0x8c, 0xd8, 0x8e, 0xc0, 0x8d, 0x4d, 0x22, 0x57, 0x53, 0xe8, 0xa0, 0x05, 0x5a, 0x5f, + 0x72, 0x29, 0x57, 0xe8, 0x26, 0x00, 0xb8, 0x00, 0x0e, 0xab, 0x47, 0xb0, 0x00, 0xaa, 0x8d, 0xb6, + 0xdc, 0x02, 0xa5, 0xa5, 0x8d, 0xb6, 0xe0, 0x02, 0xa5, 0xa5, 0x55, 0x8b, 0xea, 0x8a, 0x47, 0x16, + 0x8a, 0x66, 0x17, 0xab, 0x5d, 0xe8, 0x14, 0x06, 0x8b, 0xda, 0x5f, 0xc3, 0x55, 0x8b, 0xea, 0x8a, + 0x43, 0x16, 0xc0, 0xe0, 0x04, 0x88, 0x41, 0x16, 0xc7, 0x47, 0x06, 0xe0, 0x00, 0x83, 0xe9, 0x06, + 0x89, 0x4f, 0x04, 0x0b, 0xff, 0x75, 0x18, 0x8d, 0x76, 0x0e, 0x8d, 0x7f, 0x08, 0x8c, 0xd8, 0x8e, + 0xc0, 0xa5, 0xa5, 0xa5, 0x8b, 0xd5, 0x5d, 0x8d, 0xb6, 0xf4, 0x02, 0xa5, 0xa5, 0xa5, 0xc3, 0x8b, + 0xcf, 0xd1, 0xe9, 0x8d, 0x76, 0x0e, 0x8d, 0x7f, 0x08, 0x8c, 0xd8, 0x8e, 0xc0, 0xad, 0x24, 0x7f, + 0xab, 0xa5, 0xa5, 0x8b, 0xd5, 0x5d, 0x56, 0x8d, 0xb6, 0xf4, 0x02, 0xad, 0x0c, 0x80, 0xab, 0xa5, + 0xa5, 0x5e, 0xad, 0x80, 0xcc, 0x80, 0xab, 0x49, 0xf3, 0xa5, 0xc3, 0x8b, 0x86, 0x00, 0x03, 0x86, + 0xe0, 0x89, 0x86, 0x10, 0x02, 0x89, 0x86, 0x02, 0x02, 0x8c, 0xd8, 0x8e, 0xc0, 0x8d, 0xbe, 0xfc, + 0x01, 0x8d, 0xb6, 0xf4, 0x02, 0xb9, 0x03, 0x00, 0xf3, 0xa5, 0xb9, 0x2a, 0x00, 0xe8, 0xd4, 0x04, + 0x72, 0xd8, 0x8d, 0xb6, 0xe6, 0x02, 0x8b, 0xfb, 0x8c, 0xd8, 0x8e, 0xc0, 0xd1, 0xe9, 0xf3, 0xa5, + 0xe9, 0x80, 0x05, 0xb9, 0x26, 0x00, 0xe8, 0xbb, 0x04, 0x72, 0x62, 0x8d, 0xb6, 0x10, 0x03, 0x8b, + 0xfb, 0x8c, 0xd8, 0x8e, 0xc0, 0xd1, 0xe9, 0xf3, 0xa5, 0xe9, 0x67, 0x05, 0x8d, 0x7f, 0x08, 0x8b, + 0x4f, 0x04, 0x83, 0xc1, 0x03, 0x80, 0xe1, 0xfe, 0x57, 0xe8, 0x98, 0x04, 0x5f, 0x8b, 0xd7, 0x72, + 0x22, 0x83, 0xe9, 0x08, 0x8d, 0x7f, 0x04, 0x8c, 0xd8, 0x8e, 0xc0, 0x8b, 0xc1, 0xab, 0x8b, 0x86, + 0x16, 0x03, 0xab, 0x8b, 0xf2, 0xd1, 0xe9, 0x49, 0xf3, 0xa5, 0xbe, 0x55, 0x45, 0xe8, 0x0a, 0xe7, + 0xe9, 0x30, 0x05, 0xc3, 0xb9, 0x26, 0x00, 0xe8, 0x6a, 0x04, 0x72, 0x11, 0x8c, 0xd8, 0x8e, 0xc0, + 0x8d, 0xb6, 0x36, 0x03, 0x8b, 0xfb, 0xd1, 0xe9, 0xf3, 0xa5, 0xe9, 0x16, 0x05, 0xc3, 0xb9, 0x26, + 0x00, 0xe8, 0x6a, 0x04, 0x72, 0xf7, 0x8d, 0xb6, 0x5c, 0x03, 0x8b, 0xfb, 0x8c, 0xd8, 0x8e, 0xc0, + 0xd1, 0xe9, 0xf3, 0xa5, 0xc6, 0x86, 0x63, 0x02, 0x01, 0x80, 0xbe, 0x83, 0x02, 0x01, 0x75, 0x03, + 0xe9, 0xe9, 0x04, 0x68, 0x6f, 0x2c, 0xe9, 0xe3, 0x04, 0xb9, 0x26, 0x00, 0xe8, 0x3f, 0x04, 0x72, + 0xcc, 0x8d, 0xb6, 0x82, 0x03, 0x8b, 0xfb, 0x8c, 0xd8, 0x8e, 0xc0, 0xd1, 0xe9, 0xf3, 0xa5, 0xc6, + 0x86, 0x63, 0x02, 0x01, 0x80, 0xbe, 0x83, 0x02, 0x01, 0x75, 0x03, 0xe9, 0xbe, 0x04, 0x68, 0x6f, + 0x2c, 0xe9, 0xb8, 0x04, 0xb9, 0x18, 0x00, 0xe8, 0x14, 0x04, 0x72, 0xa1, 0x8d, 0xb6, 0xa8, 0x03, + 0x8b, 0xfb, 0x8c, 0xd8, 0x8e, 0xc0, 0xd1, 0xe9, 0xf3, 0xa5, 0xe9, 0x9f, 0x04, 0x83, 0xc1, 0x1c, + 0x56, 0x57, 0x52, 0xe8, 0xf8, 0x03, 0x5a, 0x5f, 0x5e, 0x72, 0x6c, 0x56, 0x8c, 0xd8, 0x8e, 0xc0, + 0x83, 0xe9, 0x08, 0x8b, 0xc1, 0x8d, 0x7f, 0x04, 0xab, 0xba, 0xe0, 0x00, 0x8b, 0xc2, 0xab, 0x8d, + 0xb6, 0xc8, 0x03, 0xa5, 0xa5, 0xa5, 0x8d, 0xb6, 0xf4, 0x02, 0x80, 0xbe, 0x62, 0x01, 0x01, 0x75, + 0x04, 0x8d, 0xb6, 0x00, 0x01, 0xa5, 0xa5, 0xa5, 0x83, 0xe9, 0x0e, 0x80, 0xbe, 0x63, 0x01, 0x02, + 0x75, 0x03, 0x83, 0xe9, 0x04, 0x8b, 0xc1, 0x86, 0xe0, 0xab, 0xb8, 0x00, 0x08, 0xab, 0xb8, 0xff, + 0x26, 0xab, 0x83, 0xe9, 0x04, 0x8b, 0xc1, 0x86, 0xe0, 0xab, 0x5e, 0xe9, 0x3e, 0x04, 0xb9, 0x44, + 0x00, 0xe8, 0x9a, 0x03, 0x72, 0x11, 0x8d, 0xb6, 0xda, 0x03, 0x8b, 0xfb, 0x8c, 0xd8, 0x8e, 0xc0, + 0xd1, 0xe9, 0xf3, 0xa5, 0xe8, 0x25, 0x04, 0xc3, 0xb9, 0x36, 0x00, 0xe8, 0x80, 0x03, 0x72, 0xf7, + 0xff, 0x86, 0x52, 0x02, 0x8d, 0xb6, 0x7c, 0x05, 0x8b, 0xfb, 0x8c, 0xd8, 0x8e, 0xc0, 0xd1, 0xe9, + 0xf3, 0xa5, 0x33, 0xc0, 0x8d, 0xbe, 0x96, 0x05, 0xab, 0xab, 0xaa, 0x8d, 0xbe, 0x9e, 0x05, 0xab, + 0xab, 0xaa, 0xe9, 0xf7, 0x03, 0x8d, 0x4d, 0x3a, 0x57, 0x53, 0xe8, 0x51, 0x03, 0x5a, 0x5f, 0x72, + 0x5b, 0x57, 0xe8, 0xd7, 0xfd, 0x8c, 0xd8, 0x8e, 0xc0, 0xb8, 0x00, 0x26, 0xab, 0x47, 0xb0, 0x22, + 0xaa, 0x8d, 0xb6, 0xdc, 0x02, 0xa5, 0xa5, 0x8d, 0xb6, 0x02, 0x03, 0xa5, 0xa5, 0xa5, 0x8d, 0xb6, + 0x08, 0x03, 0xa5, 0xa5, 0xa5, 0xa5, 0x8d, 0xb6, 0x1e, 0x04, 0xa5, 0xa5, 0x8d, 0xb6, 0x22, 0x04, + 0xa5, 0xa5, 0xa5, 0x8d, 0xb6, 0x28, 0x04, 0xa5, 0x53, 0x8c, 0xdb, 0x8e, 0x46, 0x02, 0x26, 0xa1, + 0x26, 0x00, 0xe8, 0x6b, 0xe2, 0x8e, 0xc3, 0xab, 0x8e, 0x46, 0x02, 0x26, 0xa1, 0x24, 0x00, 0xe8, + 0x5e, 0xe2, 0x8e, 0xc3, 0xab, 0x5b, 0xe8, 0x93, 0x03, 0x8b, 0xda, 0x5f, 0xc3, 0x8d, 0x4d, 0x38, + 0x57, 0x53, 0xe8, 0xe9, 0x02, 0x5a, 0x5f, 0x72, 0xf3, 0x57, 0xe8, 0x6f, 0xfd, 0x8c, 0xd8, 0x8e, + 0xc0, 0xb8, 0x00, 0x24, 0xab, 0x47, 0xb0, 0x23, 0xaa, 0x8d, 0xb6, 0xdc, 0x02, 0xa5, 0xa5, 0x8d, + 0xb6, 0xf2, 0x03, 0xb9, 0x06, 0x00, 0xf3, 0xa5, 0x8d, 0xb6, 0x36, 0x04, 0xa5, 0xa5, 0xa5, 0xa5, + 0x8d, 0xb6, 0x2e, 0x04, 0xa5, 0xa5, 0xa5, 0xa5, 0xe8, 0x51, 0x03, 0x8b, 0xda, 0x5f, 0xc3, 0x8d, + 0x4d, 0x3e, 0x57, 0x53, 0xe8, 0xa7, 0x02, 0x5a, 0x5f, 0x72, 0x64, 0x57, 0xe8, 0x2d, 0xfd, 0x8c, + 0xd8, 0x8e, 0xc0, 0xb8, 0x00, 0x2a, 0xab, 0x47, 0xb0, 0x24, 0xaa, 0x8d, 0xb6, 0xdc, 0x02, 0xa5, + 0xa5, 0x8d, 0xb6, 0x06, 0x04, 0xb9, 0x0a, 0x00, 0xf3, 0xa5, 0x8d, 0xb6, 0x28, 0x04, 0xa5, 0x53, + 0x8c, 0xdb, 0x8e, 0x46, 0x02, 0x26, 0xa1, 0x26, 0x00, 0xe8, 0xd4, 0xe1, 0x8e, 0xc3, 0xab, 0x8e, + 0x46, 0x02, 0x26, 0xa1, 0x24, 0x00, 0xe8, 0xc7, 0xe1, 0x8e, 0xc3, 0xab, 0x5b, 0x8c, 0xd8, 0x8e, + 0xc0, 0x8d, 0xb6, 0x3e, 0x04, 0xa5, 0x8b, 0x86, 0xf8, 0x01, 0x86, 0xc4, 0xab, 0x8d, 0xb6, 0x42, + 0x04, 0xa5, 0x8b, 0x86, 0xf6, 0x01, 0x86, 0xc4, 0xab, 0xe8, 0xe0, 0x02, 0x8b, 0xda, 0x5f, 0xc3, + 0xb9, 0x3a, 0x00, 0xe8, 0x38, 0x02, 0x72, 0xf7, 0x8d, 0xb6, 0x46, 0x04, 0x8b, 0xfb, 0x8c, 0xd8, + 0x8e, 0xc0, 0xd1, 0xe9, 0xf3, 0xa5, 0x80, 0xbe, 0x83, 0x02, 0x01, 0x75, 0x03, 0xe9, 0xbc, 0x02, + 0x68, 0x6f, 0x2c, 0xe9, 0xb6, 0x02, 0xb9, 0x26, 0x00, 0xe8, 0x12, 0x02, 0x72, 0xd1, 0xff, 0x86, + 0x4e, 0x02, 0x8d, 0xb6, 0x80, 0x04, 0x8b, 0xfb, 0x8c, 0xd8, 0x8e, 0xc0, 0xd1, 0xe9, 0xf3, 0xa5, + 0x80, 0xbe, 0x83, 0x02, 0x01, 0x75, 0x03, 0xe9, 0x92, 0x02, 0x68, 0x6f, 0x2c, 0xe9, 0x8c, 0x02, + 0xb9, 0x20, 0x00, 0xe8, 0xe8, 0x01, 0x72, 0xa7, 0x8d, 0xb6, 0xee, 0x01, 0x8d, 0xbe, 0xc0, 0x04, + 0x8c, 0xd8, 0x8e, 0xc0, 0xa5, 0xa5, 0xa5, 0x8d, 0xb6, 0xa6, 0x04, 0x8b, 0xfb, 0xd1, 0xe9, 0xf3, + 0xa5, 0x80, 0xbe, 0x83, 0x02, 0x01, 0x75, 0x03, 0xe9, 0x61, 0x02, 0x68, 0x6f, 0x2c, 0xe9, 0x5b, + 0x02, 0x89, 0x86, 0xe0, 0x04, 0x86, 0xc4, 0x89, 0x86, 0x0e, 0x02, 0xb9, 0x2a, 0x00, 0xe8, 0xad, + 0x01, 0x72, 0x19, 0x8d, 0xb6, 0xc6, 0x04, 0x8b, 0xfb, 0x8c, 0xd8, 0x8e, 0xc0, 0xd1, 0xe9, 0xf3, + 0xa5, 0x80, 0xbe, 0x83, 0x02, 0x01, 0x75, 0x08, 0xe9, 0x31, 0x02, 0x90, 0xe9, 0x22, 0x01, 0x90, + 0x68, 0x6f, 0x2c, 0xe9, 0x26, 0x02, 0xb9, 0x18, 0x00, 0xe8, 0x82, 0x01, 0x73, 0x03, 0xe9, 0x3e, + 0xff, 0x8d, 0xb6, 0x64, 0x05, 0x8b, 0xfb, 0x8c, 0xd8, 0x8e, 0xc0, 0xd1, 0xe9, 0xf3, 0xa5, 0xe9, + 0x0a, 0x02, 0xb9, 0x24, 0x00, 0xe8, 0x66, 0x01, 0x73, 0x03, 0xe9, 0x22, 0xff, 0x8b, 0x86, 0x0e, + 0x05, 0x86, 0xc4, 0x89, 0x86, 0x26, 0x02, 0x8d, 0xb6, 0xf0, 0x04, 0x8b, 0xfb, 0x8c, 0xd8, 0x8e, + 0xc0, 0xd1, 0xe9, 0xf3, 0xa5, 0xe9, 0xe4, 0x01, 0xb9, 0x1c, 0x00, 0xe8, 0x40, 0x01, 0x73, 0x03, + 0xe9, 0xfc, 0xfe, 0x8d, 0xb6, 0x14, 0x05, 0x8b, 0xfb, 0x8c, 0xd8, 0x8e, 0xc0, 0xd1, 0xe9, 0xf3, + 0xa5, 0xe9, 0xc8, 0x01, 0xb9, 0x18, 0x00, 0xe8, 0x24, 0x01, 0x73, 0x03, 0xe9, 0xe0, 0xfe, 0x8d, + 0xb6, 0x30, 0x05, 0x8b, 0xfb, 0x8c, 0xd8, 0x8e, 0xc0, 0xd1, 0xe9, 0xf3, 0xa5, 0xe9, 0xac, 0x01, + 0xb9, 0x1c, 0x00, 0x50, 0xe8, 0x07, 0x01, 0x58, 0x73, 0x03, 0xe9, 0xc2, 0xfe, 0x8d, 0xb6, 0x48, + 0x05, 0x8b, 0xfb, 0x8c, 0xd8, 0x8e, 0xc0, 0xd1, 0xe9, 0xf3, 0xa5, 0xe9, 0x8e, 0x01, 0x8b, 0x4f, + 0x04, 0x53, 0xe8, 0xe9, 0x00, 0x5e, 0x72, 0x17, 0x89, 0x9e, 0x38, 0x02, 0x8b, 0xfb, 0x8c, 0xd8, + 0x8e, 0xc0, 0xd1, 0xe9, 0xf3, 0xa5, 0xc7, 0x86, 0x3a, 0x02, 0x01, 0x00, 0xe9, 0x6d, 0x01, 0xe9, + 0x54, 0x11, 0xb9, 0x18, 0x00, 0xe8, 0xc6, 0x00, 0x8d, 0xb6, 0xa8, 0x03, 0x8b, 0xfb, 0x8c, 0xd8, + 0x8e, 0xc0, 0xd1, 0xe9, 0xf3, 0xa5, 0x33, 0xc0, 0x8d, 0x7f, 0x08, 0xb9, 0x06, 0x00, 0xf3, 0xab, + 0xe9, 0x49, 0x01, 0x53, 0x8b, 0x9e, 0xb0, 0x01, 0x8b, 0xb6, 0xae, 0x01, 0x3b, 0xde, 0x74, 0x15, + 0x8a, 0x47, 0x17, 0xf6, 0x44, 0x0e, 0x80, 0x75, 0x0e, 0x38, 0x44, 0x17, 0x75, 0x09, 0x8b, 0x74, + 0x02, 0x89, 0xb6, 0xae, 0x01, 0xeb, 0x1a, 0x8b, 0xfe, 0x8b, 0x74, 0x02, 0x3b, 0xde, 0x74, 0x11, + 0xf6, 0x44, 0x0e, 0x80, 0x75, 0xf1, 0x38, 0x44, 0x17, 0x75, 0xec, 0x8b, 0x44, 0x02, 0x89, 0x45, + 0x02, 0x5b, 0xc3, 0xe8, 0x50, 0xdd, 0xc6, 0x86, 0x83, 0x02, 0x00, 0x8d, 0xb6, 0xa6, 0x01, 0x8d, + 0xbe, 0xac, 0x01, 0x8c, 0xd8, 0x8e, 0xc0, 0xa5, 0xa5, 0xa5, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x0e, + 0x00, 0x00, 0x00, 0x16, 0x8d, 0x9e, 0x52, 0x12, 0x89, 0x9e, 0xa8, 0x01, 0x89, 0x9e, 0xaa, 0x01, + 0xc7, 0x07, 0x30, 0x80, 0xc7, 0x47, 0x04, 0x00, 0x00, 0x83, 0xc3, 0x08, 0x89, 0x9e, 0xa6, 0x01, + 0xc6, 0x86, 0x86, 0x02, 0x01, 0x83, 0xc1, 0x02, 0xeb, 0x4a, 0x8b, 0x9e, 0xac, 0x01, 0x8b, 0xb6, + 0xae, 0x01, 0xeb, 0x29, 0x80, 0xbe, 0x83, 0x02, 0x01, 0x74, 0xa8, 0x8d, 0x96, 0x52, 0x15, 0x8d, + 0xbe, 0x52, 0x12, 0x8b, 0x9e, 0xa6, 0x01, 0x8b, 0xb6, 0xa8, 0x01, 0xeb, 0x18, 0x90, 0x8b, 0x9e, + 0xa6, 0x01, 0x8b, 0xb6, 0xa8, 0x01, 0x80, 0xbe, 0x83, 0x02, 0x01, 0x75, 0xcd, 0x8d, 0x96, 0x52, + 0x12, 0x8d, 0xbe, 0x52, 0x09, 0x83, 0xc1, 0x02, 0x3b, 0xde, 0x73, 0x17, 0x8b, 0xc6, 0x2b, 0xc3, + 0x3b, 0xc1, 0x72, 0x25, 0xc7, 0x07, 0x00, 0x00, 0x83, 0xc3, 0x02, 0xc7, 0x07, 0x00, 0x00, 0x83, + 0xe9, 0x02, 0xc3, 0x8b, 0xc2, 0x2b, 0xc3, 0x3b, 0xc1, 0x72, 0x02, 0xeb, 0xe7, 0x8b, 0xdf, 0x8b, + 0xc6, 0x2b, 0xc3, 0x3b, 0xc1, 0x72, 0x02, 0xeb, 0xdb, 0x3b, 0xb6, 0xae, 0x01, 0x74, 0x11, 0x80, + 0xbe, 0x5e, 0x02, 0x01, 0x75, 0x05, 0x83, 0x8e, 0xda, 0x02, 0x02, 0xe8, 0x5c, 0x01, 0xf9, 0xc3, + 0x8b, 0x74, 0x02, 0x89, 0xb6, 0xae, 0x01, 0x3b, 0xdd, 0x74, 0x04, 0x3b, 0xde, 0x77, 0xc4, 0x8b, + 0xc6, 0x2b, 0xc3, 0x3b, 0xc1, 0x72, 0xe9, 0x89, 0xb6, 0xae, 0x01, 0xeb, 0xa7, 0x8b, 0xb6, 0xb0, + 0x01, 0x89, 0x5c, 0x02, 0x80, 0x4c, 0x05, 0x80, 0x89, 0x9e, 0xb0, 0x01, 0x03, 0x5f, 0x04, 0x83, + 0xc3, 0x06, 0x89, 0x9e, 0xac, 0x01, 0xc6, 0x86, 0x87, 0x02, 0x01, 0xc3, 0x80, 0xbe, 0x83, 0x02, + 0x01, 0x75, 0xda, 0x8e, 0x46, 0x02, 0x26, 0xa1, 0x0c, 0x00, 0x0c, 0x02, 0x80, 0xbe, 0x86, 0x02, + 0x01, 0x74, 0x27, 0x8b, 0xb6, 0xaa, 0x01, 0x89, 0x5c, 0x02, 0x80, 0x4c, 0x05, 0x80, 0x83, 0xc8, + 0x04, 0x25, 0xff, 0xf7, 0x8e, 0x46, 0x02, 0x26, 0xa3, 0x0c, 0x00, 0x89, 0x9e, 0xaa, 0x01, 0x03, + 0x5f, 0x04, 0x83, 0xc3, 0x06, 0x89, 0x9e, 0xa6, 0x01, 0xc3, 0x8e, 0x46, 0x02, 0x89, 0x9e, 0xa8, + 0x01, 0x26, 0x89, 0x1e, 0x2c, 0x00, 0x83, 0xc8, 0x08, 0x25, 0xff, 0xf7, 0xc6, 0x86, 0x86, 0x02, + 0x00, 0xeb, 0xd1, 0x53, 0xf6, 0x86, 0x83, 0x02, 0x01, 0x74, 0x0c, 0x8e, 0x46, 0x02, 0x26, 0x83, + 0x26, 0x0c, 0x00, 0xfe, 0xe8, 0x8c, 0xfe, 0x5b, 0xc3, 0x90, 0xe9, 0xac, 0x00, 0x90, 0x80, 0xbe, + 0x83, 0x02, 0x00, 0x75, 0xf5, 0x50, 0xfa, 0x8d, 0xb6, 0xac, 0x01, 0x8d, 0xbe, 0xa6, 0x01, 0x8c, + 0xd8, 0x8e, 0xc0, 0xa5, 0xa5, 0xa5, 0x80, 0xbe, 0x63, 0x01, 0x01, 0x75, 0x16, 0x8e, 0x46, 0x02, + 0x26, 0x81, 0x0e, 0x00, 0x00, 0x00, 0x02, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x26, 0x00, 0x00, 0xff, + 0xe3, 0xeb, 0x27, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x0e, 0x00, 0x00, 0x00, 0x02, 0xf6, 0x86, 0xaa, + 0x02, 0x01, 0x74, 0x0c, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x0e, 0x00, 0x00, 0x00, 0x1c, 0xeb, 0x0a, + 0x8e, 0x46, 0x02, 0x26, 0x81, 0x26, 0x00, 0x00, 0xff, 0xe3, 0x33, 0xc0, 0x89, 0x86, 0xae, 0x01, + 0x40, 0x88, 0x86, 0x83, 0x02, 0x58, 0xf6, 0x86, 0x54, 0x02, 0x01, 0x74, 0x0a, 0xe8, 0x01, 0xe5, + 0x8e, 0x46, 0x02, 0x26, 0xa2, 0x1c, 0x00, 0x8b, 0x9e, 0xa8, 0x01, 0x83, 0x3f, 0x00, 0x74, 0x03, + 0xe8, 0x89, 0x00, 0xf6, 0x86, 0x87, 0x02, 0x01, 0x74, 0x19, 0x8e, 0x46, 0x02, 0x26, 0x89, 0x1e, + 0x2c, 0x00, 0xc6, 0x86, 0x87, 0x02, 0x00, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x0e, 0x0c, 0x00, 0x08, + 0xfb, 0xeb, 0x06, 0xc6, 0x86, 0x86, 0x02, 0x01, 0xfb, 0xc3, 0x56, 0x8d, 0xb6, 0x52, 0x09, 0xc7, + 0x86, 0xa6, 0x01, 0x5a, 0x09, 0x01, 0xae, 0xa6, 0x01, 0x89, 0xb6, 0xa8, 0x01, 0x89, 0xb6, 0xaa, + 0x01, 0xc7, 0x04, 0x30, 0x80, 0xc7, 0x44, 0x04, 0x00, 0x00, 0xc6, 0x86, 0x86, 0x02, 0x01, 0x5e, + 0xc3, 0xff, 0xa4, 0x1e, 0x04, 0x80, 0x7e, 0x06, 0x46, 0x75, 0x1c, 0xf6, 0x86, 0x76, 0x02, 0x01, + 0x74, 0x15, 0xff, 0x8e, 0xcc, 0x02, 0x75, 0x0f, 0xc6, 0x86, 0x76, 0x02, 0x00, 0xc6, 0x86, 0x6b, + 0x02, 0x00, 0xe8, 0xb5, 0xe2, 0xeb, 0x10, 0x83, 0xfe, 0x10, 0x74, 0x07, 0x83, 0xfe, 0x0e, 0x74, + 0x02, 0xeb, 0x04, 0xff, 0xa4, 0x1e, 0x04, 0xc3, 0x8b, 0x9e, 0xa8, 0x01, 0x8b, 0x07, 0xfb, 0xa9, + 0x00, 0x80, 0x75, 0x46, 0x8b, 0x77, 0x17, 0x81, 0xe6, 0xff, 0x00, 0xf7, 0x86, 0x3a, 0x02, 0x01, + 0x00, 0x74, 0x1b, 0x3b, 0x9e, 0x38, 0x02, 0x75, 0x15, 0x89, 0x86, 0x74, 0x15, 0x50, 0x53, 0x56, + 0xe8, 0x43, 0x0e, 0x5e, 0x5b, 0x58, 0xc7, 0x86, 0x3a, 0x02, 0x00, 0x00, 0xeb, 0x18, 0xf7, 0x46, + 0x14, 0xff, 0xff, 0x74, 0x11, 0x83, 0xfe, 0x2a, 0x77, 0x0c, 0xd1, 0xe6, 0x68, 0x82, 0x2f, 0xff, + 0x66, 0x14, 0x5b, 0x83, 0xc4, 0x02, 0x81, 0x0f, 0x00, 0x80, 0xfa, 0xf6, 0x47, 0x05, 0x80, 0x74, + 0x1a, 0x8b, 0x5f, 0x02, 0x89, 0x9e, 0xa8, 0x01, 0xf7, 0x07, 0x10, 0x00, 0x74, 0x0d, 0xff, 0x86, + 0x3a, 0x01, 0x83, 0xbe, 0x3a, 0x01, 0x06, 0x77, 0x0f, 0xeb, 0x91, 0xc6, 0x86, 0xb8, 0x01, 0x00, + 0xc7, 0x86, 0x3a, 0x01, 0x00, 0x00, 0xfb, 0xc3, 0xe8, 0xdf, 0xdd, 0xf7, 0xc6, 0xff, 0xff, 0x74, + 0xea, 0xc7, 0x44, 0x02, 0x03, 0x00, 0xc6, 0x86, 0xb8, 0x01, 0x01, 0x8d, 0x7e, 0x16, 0xe8, 0xe7, + 0xdd, 0xeb, 0xdd, 0xa9, 0x20, 0x00, 0x75, 0x74, 0xf7, 0x47, 0x04, 0x00, 0x80, 0x74, 0x05, 0xe8, + 0x08, 0x00, 0x72, 0x9f, 0x53, 0x68, 0x7e, 0x2f, 0xff, 0xe6, 0x8a, 0x47, 0x17, 0x8b, 0xfb, 0x8b, + 0x7d, 0x02, 0x38, 0x45, 0x17, 0x74, 0x09, 0xf7, 0x45, 0x04, 0x00, 0x80, 0x75, 0xf1, 0xf8, 0xc3, + 0xf9, 0xc3, 0xa9, 0x20, 0x00, 0x75, 0x05, 0xa9, 0x00, 0x10, 0x75, 0x0c, 0x33, 0xc9, 0xa9, 0x05, + 0x00, 0x75, 0x0a, 0xa9, 0x0a, 0x04, 0x74, 0x05, 0x8b, 0x0d, 0xe3, 0x01, 0x49, 0x89, 0x0d, 0xc3, + 0x53, 0x8b, 0x4f, 0x04, 0x80, 0xe5, 0x7f, 0x89, 0x4f, 0x04, 0x83, 0xc1, 0x06, 0xe8, 0xee, 0xfc, + 0x72, 0x19, 0x5e, 0x56, 0x8b, 0xfb, 0xd1, 0xe9, 0x83, 0xe9, 0x02, 0x83, 0xc6, 0x04, 0x83, 0xc7, + 0x04, 0x8c, 0xd8, 0x8e, 0xc0, 0xf3, 0xa5, 0xe8, 0x72, 0xfd, 0xf8, 0x5b, 0xc3, 0x80, 0x7e, 0x08, + 0x02, 0x75, 0x0b, 0xa9, 0x20, 0x00, 0x75, 0x06, 0xc7, 0x86, 0xc8, 0x01, 0x01, 0x00, 0xc3, 0x8a, + 0x56, 0x06, 0x80, 0xfa, 0x02, 0x74, 0x17, 0x80, 0xfa, 0x44, 0x74, 0x12, 0x83, 0x7e, 0x08, 0x08, + 0x75, 0x18, 0x80, 0xfa, 0x0c, 0x74, 0x07, 0x80, 0xfa, 0x0e, 0x74, 0x02, 0xeb, 0x0b, 0xa9, 0x20, + 0x00, 0x75, 0x06, 0xb8, 0x01, 0x00, 0xe8, 0x74, 0xec, 0xc3, 0xb9, 0x05, 0x00, 0xa9, 0x20, 0x00, + 0x74, 0x09, 0xb9, 0x08, 0x00, 0xa9, 0x0f, 0x00, 0x75, 0x01, 0xc3, 0xff, 0x86, 0xc4, 0x02, 0x83, + 0xbe, 0xc4, 0x02, 0x02, 0x72, 0x06, 0x8b, 0xc1, 0xe8, 0x52, 0xec, 0xc3, 0xe8, 0x55, 0xf8, 0xc3, + 0x53, 0x68, 0x7e, 0x2f, 0xe9, 0xc7, 0xf8, 0x80, 0x7e, 0x06, 0x0c, 0x75, 0x1d, 0xa9, 0x00, 0x10, + 0x75, 0xee, 0xa9, 0x20, 0x00, 0x75, 0x00, 0xa8, 0x0a, 0x75, 0x10, 0xff, 0x86, 0xba, 0x02, 0x83, + 0xbe, 0xba, 0x02, 0x04, 0x72, 0xda, 0xc6, 0x46, 0x07, 0x0e, 0xc3, 0x83, 0xbe, 0xb8, 0x02, 0x04, + 0x73, 0xf8, 0xbe, 0x85, 0x45, 0xe8, 0xb2, 0xde, 0xeb, 0xf0, 0x8d, 0xbe, 0xbe, 0x02, 0xe8, 0x11, + 0xff, 0x0b, 0xc9, 0x74, 0xe5, 0x53, 0x68, 0x7e, 0x2f, 0xe9, 0x82, 0xf8, 0x8d, 0xbe, 0xb6, 0x02, + 0xe8, 0xff, 0xfe, 0x0b, 0xc9, 0x74, 0x03, 0xe9, 0x16, 0xff, 0xc3, 0x53, 0x8a, 0x56, 0x06, 0x80, + 0xfa, 0x02, 0x74, 0x17, 0x80, 0xfa, 0x44, 0x74, 0x12, 0x80, 0x7e, 0x08, 0x08, 0x75, 0x2d, 0x80, + 0xfa, 0x0c, 0x74, 0x07, 0x80, 0xfa, 0x0e, 0x74, 0x02, 0xeb, 0x21, 0xa9, 0x20, 0x00, 0x74, 0x1e, + 0x8b, 0x96, 0x66, 0x01, 0x4a, 0x89, 0x96, 0x66, 0x01, 0x83, 0xfa, 0x01, 0x77, 0x23, 0xbe, 0x6d, + 0x45, 0xe8, 0x56, 0xde, 0xc6, 0x86, 0x86, 0x02, 0x01, 0xe8, 0xb8, 0xf7, 0x5b, 0xc3, 0xfe, 0x8e, + 0x68, 0x01, 0x80, 0x8e, 0x68, 0x01, 0x00, 0x75, 0x08, 0xb8, 0x01, 0x00, 0xe8, 0x9e, 0xeb, 0xeb, + 0xeb, 0xbe, 0x6d, 0x45, 0xe8, 0x33, 0xde, 0x8b, 0xb6, 0x64, 0x01, 0xb9, 0xe8, 0x03, 0xc6, 0x86, + 0x86, 0x02, 0x01, 0xfa, 0xe8, 0xa6, 0xf7, 0xeb, 0xd3, 0xa9, 0x20, 0x00, 0x74, 0x41, 0xa9, 0x0f, + 0x00, 0x75, 0x25, 0xc6, 0x86, 0x65, 0x02, 0x01, 0xc6, 0x86, 0x66, 0x02, 0x01, 0x8c, 0xd8, 0x8e, + 0xc0, 0x33, 0xc0, 0x8d, 0x77, 0x0e, 0x8d, 0xbe, 0xee, 0x01, 0xab, 0xab, 0xab, 0x8b, 0x86, 0x06, + 0x02, 0x83, 0x8e, 0x06, 0x02, 0x40, 0xeb, 0x17, 0x8d, 0x77, 0x0e, 0x8d, 0xbe, 0xee, 0x01, 0x8c, + 0xd8, 0x8e, 0xc0, 0xa5, 0xa5, 0xa5, 0x8b, 0x86, 0x06, 0x02, 0x83, 0xa6, 0x06, 0x02, 0xbf, 0x33, + 0x86, 0x06, 0x02, 0x74, 0x05, 0xc6, 0x86, 0x85, 0x02, 0x01, 0xc3, 0xfb, 0xc3, 0xff, 0xa4, 0xc6, + 0x03, 0x53, 0x56, 0xf7, 0x07, 0x00, 0x10, 0x74, 0x0a, 0x8b, 0xc7, 0x80, 0x7e, 0x06, 0x44, 0x74, + 0x49, 0xeb, 0x44, 0x8b, 0xc7, 0x8b, 0x49, 0x16, 0x80, 0xf9, 0x00, 0x74, 0x05, 0x80, 0xf9, 0x03, + 0x75, 0x38, 0x8d, 0xbe, 0x0a, 0x03, 0x83, 0x3d, 0x00, 0x75, 0x0c, 0x83, 0x7d, 0x02, 0x00, 0x75, + 0x06, 0x83, 0x7d, 0x04, 0x00, 0x74, 0x23, 0x8b, 0xf8, 0x8d, 0x71, 0x0e, 0x8d, 0xbe, 0x0a, 0x03, + 0x8c, 0xd8, 0x8e, 0xc0, 0xb9, 0x03, 0x00, 0xf3, 0xa7, 0x74, 0x0f, 0xc7, 0x86, 0x2a, 0x02, 0x0e, + 0x00, 0xb8, 0x0b, 0x00, 0xe8, 0xd6, 0xea, 0x5e, 0x5b, 0xc3, 0x8b, 0xf8, 0x5e, 0x5b, 0xff, 0xa4, + 0xf2, 0x03, 0xff, 0x86, 0x48, 0x02, 0xc7, 0x86, 0x2a, 0x02, 0x06, 0x00, 0x8c, 0xd8, 0x8e, 0xc0, + 0x8d, 0xbe, 0xfc, 0x01, 0x8d, 0x77, 0x0e, 0xb9, 0x03, 0x00, 0xf3, 0xa5, 0x8b, 0xb6, 0xc4, 0x05, + 0x8b, 0x04, 0x86, 0xe0, 0x89, 0x86, 0x02, 0x02, 0x89, 0x86, 0x12, 0x02, 0x8b, 0xb6, 0xc9, 0x05, + 0x8b, 0x04, 0x89, 0x86, 0x16, 0x02, 0x8b, 0x44, 0x02, 0x89, 0x86, 0x18, 0x02, 0x8b, 0x44, 0x04, + 0x89, 0x86, 0x1a, 0x02, 0x8b, 0xb6, 0xce, 0x05, 0x8b, 0x04, 0x89, 0x86, 0x20, 0x02, 0x8b, 0x44, + 0x02, 0x89, 0x86, 0x22, 0x02, 0x8b, 0xb6, 0xc4, 0x05, 0x8b, 0x04, 0x80, 0x7e, 0x08, 0x06, 0x75, + 0x56, 0xf7, 0x07, 0x00, 0x10, 0x74, 0x14, 0xf6, 0x47, 0x06, 0x08, 0x75, 0x0b, 0x80, 0xbe, 0x5f, + 0x02, 0x00, 0x75, 0x04, 0xc6, 0x46, 0x09, 0x04, 0xe9, 0x1b, 0x01, 0x3b, 0x86, 0x00, 0x03, 0x77, + 0xf7, 0x80, 0xbe, 0x5e, 0x02, 0x01, 0x74, 0x10, 0x80, 0x7e, 0x06, 0x0c, 0x75, 0xea, 0xc6, 0x46, + 0x07, 0x10, 0xc6, 0x46, 0x09, 0x1e, 0xeb, 0xe0, 0x80, 0xbe, 0x5f, 0x02, 0x00, 0x75, 0xd9, 0xc6, + 0x46, 0x09, 0x0a, 0xf6, 0x86, 0x07, 0x02, 0x10, 0x74, 0xce, 0x80, 0xa6, 0x07, 0x02, 0x6f, 0xc6, + 0x86, 0x85, 0x02, 0x01, 0xe9, 0xdf, 0x00, 0x80, 0x7e, 0x08, 0x0a, 0x75, 0x5b, 0xc6, 0x86, 0x54, + 0x02, 0x00, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, 0x0c, 0x00, 0xbf, 0xbe, 0x49, 0x45, 0xe8, 0x99, + 0xdc, 0x8b, 0xb6, 0xc9, 0x05, 0x8d, 0xbe, 0xf4, 0x02, 0x8c, 0xd9, 0x8e, 0xc1, 0xb9, 0x03, 0x00, + 0xf3, 0xa7, 0x75, 0x21, 0x83, 0xf8, 0x01, 0x74, 0x1c, 0xff, 0x8e, 0xb0, 0x02, 0x75, 0x13, 0xf6, + 0x86, 0x58, 0x02, 0x01, 0x75, 0x0c, 0xc6, 0x86, 0x58, 0x02, 0x01, 0xc6, 0x46, 0x09, 0x08, 0xe9, + 0x94, 0x00, 0xe9, 0x91, 0x00, 0xc7, 0x86, 0xb0, 0x02, 0x08, 0x00, 0x83, 0xf8, 0x01, 0x75, 0x0a, + 0xc7, 0x86, 0xae, 0x02, 0x02, 0x00, 0xeb, 0x7e, 0xeb, 0x2e, 0x8d, 0x77, 0x0e, 0x8d, 0xbe, 0x0a, + 0x03, 0x8c, 0xd9, 0x8e, 0xc1, 0xb9, 0x03, 0x00, 0xf3, 0xa7, 0x75, 0xe4, 0xff, 0x8e, 0xae, 0x02, + 0x75, 0x14, 0xc7, 0x86, 0xae, 0x02, 0x02, 0x00, 0xc6, 0x86, 0x54, 0x02, 0x01, 0x8e, 0x46, 0x02, + 0x26, 0x83, 0x0e, 0x0c, 0x00, 0x40, 0xeb, 0x4e, 0x80, 0xbe, 0x5e, 0x02, 0x00, 0x74, 0x0c, 0x80, + 0x7e, 0x08, 0x08, 0x74, 0x41, 0xc6, 0x46, 0x09, 0x0a, 0xeb, 0x3b, 0xb7, 0x10, 0x8a, 0x5e, 0x06, + 0x80, 0xfb, 0x06, 0x74, 0x1f, 0x80, 0xfb, 0x08, 0x74, 0x1a, 0x80, 0xfb, 0x04, 0x74, 0x15, 0x80, + 0xfb, 0x0c, 0x74, 0x10, 0x80, 0xfb, 0x0a, 0x75, 0x07, 0xc6, 0x86, 0x5b, 0x02, 0x00, 0xeb, 0x04, + 0xb7, 0x12, 0xeb, 0x12, 0x88, 0x7e, 0x07, 0x80, 0xff, 0x12, 0x75, 0x04, 0xc6, 0x46, 0x09, 0x1e, + 0xb8, 0x07, 0x00, 0xe8, 0x37, 0xe9, 0xc3, 0xff, 0x86, 0x48, 0x02, 0xc7, 0x86, 0x2a, 0x02, 0x06, + 0x00, 0x8c, 0xd8, 0x8e, 0xc0, 0x8d, 0xbe, 0xfc, 0x01, 0x8d, 0x77, 0x0e, 0xb9, 0x03, 0x00, 0xf3, + 0xa5, 0x80, 0x7e, 0x06, 0x48, 0x74, 0x08, 0xb8, 0x06, 0x00, 0xe8, 0x10, 0xe9, 0xeb, 0x30, 0xf6, + 0x86, 0x6e, 0x02, 0x01, 0x74, 0x1f, 0x80, 0x7e, 0x08, 0x16, 0x75, 0x19, 0xc6, 0x46, 0x09, 0x1a, + 0xc6, 0x86, 0x72, 0x02, 0x00, 0xc6, 0x86, 0x68, 0x02, 0x00, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, + 0x0c, 0x00, 0xfe, 0xeb, 0x0a, 0x80, 0x7e, 0x08, 0x18, 0x75, 0x04, 0xc6, 0x46, 0x09, 0x1a, 0xc3, + 0x8a, 0x4e, 0x06, 0x80, 0xbe, 0xa7, 0x02, 0x01, 0x74, 0x02, 0xeb, 0x06, 0xb8, 0x06, 0x00, 0xe8, + 0xcb, 0xe8, 0xc3, 0x80, 0x7e, 0x06, 0x42, 0x75, 0x42, 0x8b, 0x47, 0x1a, 0x83, 0xf8, 0x00, 0x75, + 0x27, 0xf6, 0x86, 0x7e, 0x02, 0x01, 0x75, 0x18, 0xf7, 0x86, 0xf4, 0x00, 0x00, 0x10, 0x74, 0x10, + 0xb8, 0x02, 0x00, 0xe8, 0x73, 0x10, 0xc6, 0x46, 0x09, 0x1e, 0xc6, 0x46, 0x07, 0x02, 0xeb, 0x1b, + 0xb8, 0x06, 0x00, 0xe8, 0x97, 0xe8, 0xeb, 0x13, 0x3d, 0x00, 0x02, 0x75, 0x0e, 0xc6, 0x86, 0x77, + 0x02, 0x01, 0xe8, 0x6b, 0x06, 0xbe, 0xe5, 0x45, 0xe8, 0x1f, 0xdb, 0xc3, 0xc7, 0x86, 0x2a, 0x02, + 0x02, 0x00, 0x80, 0x7e, 0x06, 0x46, 0x75, 0x2b, 0x8b, 0x47, 0x1a, 0x83, 0xf8, 0x00, 0x75, 0x10, + 0xc6, 0x46, 0x07, 0x48, 0x80, 0x7e, 0x08, 0x1c, 0x75, 0x19, 0xc6, 0x46, 0x09, 0x16, 0xeb, 0x13, + 0x86, 0xc4, 0x3d, 0x20, 0x80, 0x75, 0x0c, 0xc7, 0x86, 0x2a, 0x02, 0x11, 0x00, 0xb8, 0x08, 0x00, + 0xe8, 0x4a, 0xe8, 0xc3, 0xc7, 0x86, 0x2a, 0x02, 0x0f, 0x00, 0x80, 0x7e, 0x06, 0x44, 0x74, 0x06, + 0x80, 0x7e, 0x06, 0x42, 0x75, 0x08, 0xb8, 0x06, 0x00, 0xe8, 0x31, 0xe8, 0xeb, 0x0d, 0xf6, 0x86, + 0x72, 0x02, 0x01, 0x74, 0x06, 0xbe, 0xf1, 0x45, 0xe8, 0xbf, 0xda, 0xc3, 0x80, 0x7e, 0x06, 0x44, + 0x75, 0x14, 0xe8, 0xb5, 0xd8, 0xc7, 0x44, 0x02, 0x02, 0x00, 0x8d, 0x7e, 0x16, 0xe8, 0xc8, 0xd8, + 0xbe, 0x6d, 0x45, 0xe8, 0x56, 0xdb, 0xc3, 0xf7, 0x86, 0xf6, 0x00, 0x40, 0x00, 0x74, 0x18, 0xf7, + 0x86, 0xf4, 0x00, 0x00, 0x20, 0x74, 0x10, 0x80, 0x7e, 0x06, 0x08, 0x72, 0x0a, 0x80, 0x7e, 0x06, + 0x0e, 0x77, 0x04, 0xc6, 0x46, 0x07, 0x14, 0xc3, 0xff, 0x86, 0x4c, 0x02, 0xc7, 0x86, 0x2a, 0x02, + 0x0b, 0x00, 0x8a, 0x86, 0x54, 0x02, 0x88, 0x86, 0x80, 0x02, 0xc7, 0x86, 0xc2, 0x02, 0x00, 0x00, + 0xc6, 0x86, 0x61, 0x02, 0x00, 0x83, 0x8e, 0x06, 0x02, 0x20, 0x81, 0xa6, 0x06, 0x02, 0xff, 0x2f, + 0xc6, 0x86, 0x85, 0x02, 0x01, 0xf6, 0x86, 0x54, 0x02, 0x01, 0x74, 0x38, 0xc6, 0x86, 0x80, 0x02, + 0x00, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x26, 0x24, 0x00, 0xff, 0x7f, 0x80, 0x7e, 0x0a, 0x00, 0x75, + 0x0a, 0xc6, 0x86, 0x69, 0x02, 0x00, 0xc6, 0x86, 0x6b, 0x02, 0x00, 0x8a, 0xa6, 0x80, 0x02, 0x88, + 0xa6, 0x54, 0x02, 0xe8, 0x64, 0xdc, 0x88, 0x86, 0x54, 0x02, 0xc6, 0x46, 0x09, 0x0c, 0xc7, 0x86, + 0xc6, 0x01, 0x00, 0x01, 0x80, 0x7e, 0x06, 0x04, 0x75, 0x04, 0xc6, 0x46, 0x07, 0x06, 0x80, 0x7e, + 0x08, 0x02, 0x75, 0x04, 0xc6, 0x46, 0x09, 0x0c, 0x80, 0x7e, 0x08, 0x06, 0x74, 0x05, 0xc6, 0x86, + 0x5a, 0x02, 0x01, 0x8d, 0x77, 0x0e, 0x8d, 0xbe, 0xf4, 0x02, 0x8c, 0xd9, 0x8e, 0xc1, 0xb9, 0x06, + 0x00, 0xf3, 0xa6, 0x74, 0x08, 0x77, 0x03, 0xe9, 0x95, 0x00, 0xe9, 0xfe, 0x00, 0xf6, 0x47, 0x06, + 0x08, 0x75, 0x59, 0x80, 0x7e, 0x08, 0x04, 0x75, 0x53, 0x8b, 0xb6, 0xd4, 0x05, 0x8d, 0xbe, 0x0a, + 0x03, 0x8c, 0xd9, 0x8e, 0xc1, 0xb9, 0x03, 0x00, 0xb8, 0x01, 0x00, 0xf3, 0xa7, 0x74, 0x02, 0xeb, + 0x3e, 0xff, 0x86, 0xb4, 0x02, 0x83, 0xbe, 0xb4, 0x02, 0x03, 0x72, 0x30, 0x83, 0xbe, 0xb2, 0x02, + 0x03, 0x72, 0x29, 0xc6, 0x46, 0x09, 0x02, 0xc6, 0x86, 0x80, 0x02, 0x01, 0x8e, 0x46, 0x02, 0x26, + 0x81, 0x0e, 0x24, 0x00, 0x00, 0x80, 0x8a, 0x86, 0x54, 0x02, 0x8a, 0xa6, 0x80, 0x02, 0x88, 0xa6, + 0x54, 0x02, 0xe8, 0xc5, 0xdb, 0x88, 0x86, 0x54, 0x02, 0xe8, 0xc4, 0xf4, 0xe9, 0xec, 0x00, 0x80, + 0x7e, 0x0a, 0x00, 0x75, 0x1d, 0xc6, 0x86, 0x69, 0x02, 0x00, 0xc6, 0x86, 0x6b, 0x02, 0x00, 0x8a, + 0x86, 0x54, 0x02, 0x8a, 0xa6, 0x80, 0x02, 0x88, 0xa6, 0x54, 0x02, 0xe8, 0x9c, 0xdb, 0x88, 0x86, + 0x54, 0x02, 0xc6, 0x46, 0x09, 0x0c, 0xb8, 0x00, 0x03, 0xe8, 0x15, 0xf5, 0xe9, 0xbc, 0x00, 0x80, + 0x7e, 0x08, 0x00, 0x75, 0x3d, 0xf6, 0x86, 0x54, 0x02, 0x01, 0x75, 0x16, 0xf6, 0x86, 0x68, 0x02, + 0x01, 0x74, 0x16, 0xf6, 0x86, 0x5e, 0x02, 0x01, 0x74, 0x08, 0xf7, 0x86, 0x12, 0x01, 0x00, 0x01, + 0x75, 0x16, 0xc6, 0x46, 0x09, 0x0c, 0xe9, 0x92, 0x00, 0xf6, 0x86, 0x5e, 0x02, 0x01, 0x74, 0x9c, + 0xf7, 0x86, 0x12, 0x01, 0x00, 0x01, 0x74, 0x94, 0xc6, 0x46, 0x09, 0x04, 0xff, 0x86, 0x4a, 0x02, + 0xeb, 0x79, 0x80, 0x7e, 0x08, 0x0a, 0x75, 0x73, 0xf6, 0x86, 0x5f, 0x02, 0x01, 0x75, 0x0e, 0xf7, + 0x86, 0x12, 0x01, 0x00, 0x01, 0x75, 0x06, 0xc6, 0x46, 0x09, 0x0c, 0xeb, 0x5e, 0xf7, 0x86, 0x12, + 0x01, 0x00, 0x01, 0x74, 0x56, 0xc6, 0x46, 0x09, 0x04, 0xeb, 0x50, 0x80, 0x7e, 0x08, 0x04, 0x75, + 0x2c, 0xc6, 0x46, 0x09, 0x0c, 0x80, 0x7e, 0x0a, 0x00, 0x75, 0x1d, 0xc6, 0x86, 0x69, 0x02, 0x00, + 0xc6, 0x86, 0x6b, 0x02, 0x00, 0x8a, 0x86, 0x54, 0x02, 0x8a, 0xa6, 0x80, 0x02, 0x88, 0xa6, 0x54, + 0x02, 0xe8, 0xf6, 0xda, 0x88, 0x86, 0x54, 0x02, 0xe8, 0x71, 0xf1, 0xeb, 0x1e, 0x80, 0x7e, 0x08, + 0x00, 0x75, 0x09, 0xf6, 0x86, 0x68, 0x02, 0x01, 0x74, 0x02, 0xeb, 0xab, 0x80, 0x7e, 0x08, 0x0a, + 0x75, 0x09, 0xf6, 0x86, 0x5f, 0x02, 0x01, 0x75, 0x02, 0xeb, 0x9c, 0x8a, 0x86, 0x80, 0x02, 0x88, + 0x86, 0x54, 0x02, 0xc3, 0xc7, 0x86, 0xbc, 0x02, 0x02, 0x00, 0xff, 0x86, 0x42, 0x02, 0xc7, 0x86, + 0x2a, 0x02, 0x0c, 0x00, 0x80, 0x7e, 0x06, 0x04, 0x74, 0x06, 0x80, 0x7e, 0x06, 0x06, 0x75, 0x04, + 0xc6, 0x46, 0x07, 0x08, 0x80, 0x7e, 0x08, 0x00, 0x75, 0x56, 0xf6, 0x86, 0x54, 0x02, 0x01, 0x74, + 0x3b, 0xc6, 0x86, 0x54, 0x02, 0x00, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x26, 0x24, 0x00, 0xff, 0x7f, + 0xb8, 0x00, 0x02, 0xe8, 0x0b, 0xf4, 0xf6, 0x86, 0x5e, 0x02, 0x01, 0x74, 0x0c, 0xbe, 0x73, 0x45, + 0xe8, 0x37, 0xd8, 0xbe, 0x91, 0x45, 0xe8, 0x31, 0xd8, 0x80, 0x7e, 0x0a, 0x00, 0x75, 0x0d, 0xc6, + 0x86, 0x69, 0x02, 0x00, 0xc6, 0x86, 0x6b, 0x02, 0x00, 0xe8, 0x5e, 0xda, 0xf6, 0x86, 0x5e, 0x02, + 0x01, 0x74, 0x34, 0xc6, 0x86, 0x58, 0x02, 0x00, 0xc6, 0x86, 0x59, 0x02, 0x00, 0xe9, 0xc9, 0x00, + 0x80, 0x7e, 0x08, 0x0c, 0x75, 0x24, 0xc6, 0x46, 0x09, 0x00, 0xf6, 0x86, 0x5e, 0x02, 0x01, 0x74, + 0x16, 0xbe, 0x73, 0x45, 0xe8, 0xf3, 0xd7, 0xbe, 0x91, 0x45, 0xe8, 0xed, 0xd7, 0xc6, 0x86, 0x58, + 0x02, 0x00, 0xc6, 0x86, 0x59, 0x02, 0x00, 0xe9, 0x9f, 0x00, 0x80, 0x7e, 0x08, 0x02, 0x75, 0xf7, + 0xc7, 0x86, 0xc8, 0x01, 0x00, 0x00, 0xc6, 0x46, 0x09, 0x00, 0xf6, 0x86, 0x5e, 0x02, 0x01, 0x74, + 0x0a, 0xc6, 0x86, 0x58, 0x02, 0x00, 0xc6, 0x86, 0x59, 0x02, 0x00, 0x8d, 0x77, 0x0e, 0x8d, 0xbe, + 0xf4, 0x02, 0x8c, 0xd9, 0x8e, 0xc1, 0xb9, 0x06, 0x00, 0xf3, 0xa6, 0x74, 0x2e, 0xc6, 0x86, 0x54, + 0x02, 0x00, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x26, 0x24, 0x00, 0xff, 0x7f, 0x80, 0x7e, 0x0a, 0x00, + 0x75, 0x0a, 0xc6, 0x86, 0x69, 0x02, 0x00, 0xc6, 0x86, 0x6b, 0x02, 0x00, 0xe8, 0xcb, 0xd9, 0xb8, + 0x00, 0x02, 0xe8, 0x4c, 0xf3, 0xc6, 0x46, 0x09, 0x00, 0xeb, 0x3e, 0x8e, 0x46, 0x02, 0x26, 0xa0, + 0x1c, 0x00, 0xc6, 0x46, 0x09, 0x00, 0xc6, 0x86, 0x69, 0x02, 0x00, 0xc6, 0x86, 0x55, 0x02, 0x00, + 0xc6, 0x86, 0x65, 0x02, 0x00, 0xe8, 0xa2, 0xd9, 0x24, 0x07, 0xe8, 0xf1, 0xf5, 0xbe, 0x43, 0x45, + 0xe8, 0x57, 0xd7, 0x8c, 0xd8, 0x8e, 0xc0, 0x33, 0xc0, 0x8d, 0xbe, 0xee, 0x01, 0xab, 0xab, 0xab, + 0xe8, 0x5b, 0xf0, 0xbe, 0x91, 0x45, 0xe8, 0x41, 0xd7, 0xc3, 0x8c, 0xd8, 0x8e, 0xc0, 0xff, 0x86, + 0x50, 0x02, 0xc7, 0x86, 0x2a, 0x02, 0x0f, 0x00, 0xf6, 0x86, 0xca, 0x01, 0x01, 0x74, 0x3b, 0xb8, + 0x30, 0x56, 0xa3, 0x26, 0x56, 0x8d, 0x77, 0x0e, 0x8b, 0xf8, 0xa5, 0xa5, 0xa5, 0xc7, 0x06, 0x2e, + 0x56, 0x01, 0x00, 0xc6, 0x86, 0xcb, 0x01, 0x00, 0x33, 0xff, 0xba, 0x02, 0x08, 0xe8, 0x72, 0xe8, + 0xbf, 0x28, 0x56, 0xb9, 0x03, 0x00, 0xf3, 0xa5, 0x8d, 0x77, 0x0e, 0xbf, 0x28, 0x56, 0xb9, 0x03, + 0x00, 0xf3, 0xa7, 0x75, 0x05, 0xe8, 0x8b, 0x04, 0xeb, 0x00, 0x8d, 0x77, 0x0e, 0x8d, 0xbe, 0xee, + 0x01, 0xa5, 0xa5, 0xa5, 0x80, 0x7e, 0x06, 0x04, 0x75, 0x04, 0xc6, 0x46, 0x07, 0x08, 0x8b, 0x8e, + 0xbc, 0x02, 0xe3, 0x05, 0x49, 0x89, 0x8e, 0xbc, 0x02, 0xf7, 0x07, 0x3c, 0x00, 0x75, 0x0a, 0xf6, + 0x86, 0x68, 0x02, 0x01, 0x74, 0x03, 0xe8, 0x07, 0x02, 0xf6, 0x86, 0x54, 0x02, 0x01, 0x75, 0x03, + 0xe9, 0x93, 0x00, 0xbe, 0x91, 0x45, 0xe8, 0xb1, 0xd6, 0xf7, 0x07, 0x00, 0x10, 0x75, 0x37, 0xc6, + 0x86, 0x54, 0x02, 0x00, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x26, 0x24, 0x00, 0xff, 0x7f, 0xb8, 0x00, + 0x02, 0xe8, 0x5d, 0xf2, 0xf6, 0x86, 0x5e, 0x02, 0x01, 0x74, 0x06, 0xbe, 0x73, 0x45, 0xe8, 0x89, + 0xd6, 0x80, 0x7e, 0x0a, 0x00, 0x75, 0x38, 0xc6, 0x86, 0x69, 0x02, 0x00, 0xc6, 0x86, 0x6b, 0x02, + 0x00, 0xe8, 0xb6, 0xd8, 0xeb, 0x29, 0xf7, 0x07, 0x3c, 0x00, 0x75, 0x33, 0xc6, 0x86, 0x65, 0x02, + 0x01, 0xc6, 0x86, 0x66, 0x02, 0x01, 0x8c, 0xd8, 0x8e, 0xc0, 0x33, 0xc0, 0x8d, 0x77, 0x0e, 0x8d, + 0xbe, 0xee, 0x01, 0xab, 0xab, 0xab, 0x8b, 0x86, 0x06, 0x02, 0xa9, 0x40, 0x00, 0x74, 0x02, 0xeb, + 0x48, 0x83, 0xc8, 0x40, 0x89, 0x86, 0x06, 0x02, 0xc6, 0x86, 0x85, 0x02, 0x01, 0xeb, 0x3a, 0x83, + 0xa6, 0x06, 0x02, 0xbf, 0x8c, 0xd8, 0x8e, 0xc0, 0x33, 0xc0, 0x8d, 0x77, 0x0e, 0x8d, 0xbe, 0xee, + 0x01, 0xa5, 0xa5, 0xa5, 0xeb, 0x23, 0xf6, 0x86, 0x5e, 0x02, 0x01, 0x74, 0x06, 0xbe, 0x91, 0x45, + 0xe8, 0x17, 0xd6, 0xc6, 0x86, 0x67, 0x02, 0x00, 0xf7, 0x07, 0x3c, 0x00, 0x75, 0x0b, 0xc6, 0x86, + 0x67, 0x02, 0x01, 0xbe, 0x79, 0x45, 0xe8, 0x01, 0xd6, 0xc3, 0xeb, 0x61, 0x8c, 0xd8, 0x8e, 0xc0, + 0xc7, 0x86, 0x2a, 0x02, 0x0d, 0x00, 0xf6, 0x86, 0xca, 0x01, 0x01, 0x74, 0x50, 0x33, 0xff, 0xba, + 0x02, 0x08, 0xe8, 0x4d, 0xe7, 0x8b, 0x3e, 0x26, 0x56, 0xb9, 0x03, 0x00, 0xf3, 0xa7, 0x75, 0x3d, + 0x81, 0xff, 0x3e, 0x5d, 0x73, 0x6f, 0x89, 0x3e, 0x26, 0x56, 0x8d, 0x77, 0x0e, 0xb9, 0x03, 0x00, + 0xf3, 0xa7, 0x74, 0x05, 0xc6, 0x86, 0xcc, 0x01, 0x01, 0x81, 0xff, 0x3e, 0x5d, 0x73, 0x56, 0x89, + 0x3e, 0x26, 0x56, 0x8d, 0x77, 0x0e, 0xa5, 0xa5, 0xa5, 0xff, 0x06, 0x2e, 0x56, 0x8d, 0x77, 0x0e, + 0xbf, 0x28, 0x56, 0xb9, 0x03, 0x00, 0xf3, 0xa7, 0x75, 0x03, 0xe8, 0x36, 0x03, 0x8a, 0x86, 0x06, + 0x02, 0xa8, 0x40, 0x75, 0x3d, 0x80, 0x7e, 0x06, 0x04, 0x75, 0x04, 0xc6, 0x46, 0x07, 0x08, 0xf7, + 0x07, 0x3c, 0x00, 0x75, 0x3a, 0xf6, 0x86, 0x68, 0x02, 0x01, 0x74, 0x35, 0xf6, 0x86, 0x54, 0x02, + 0x01, 0x74, 0x07, 0xf6, 0x86, 0x65, 0x02, 0x01, 0x75, 0x27, 0xe8, 0xb3, 0x00, 0xc7, 0x86, 0xbe, + 0x02, 0x01, 0x00, 0xeb, 0x1c, 0xbf, 0x38, 0x5d, 0x33, 0xc0, 0xab, 0xab, 0xab, 0xe8, 0xf3, 0x02, + 0xeb, 0xbb, 0x24, 0xbf, 0x88, 0x86, 0x06, 0x02, 0xc6, 0x86, 0x85, 0x02, 0x01, 0xeb, 0xb6, 0xeb, + 0x79, 0xf6, 0x86, 0x54, 0x02, 0x01, 0x74, 0x3c, 0xf6, 0x86, 0x65, 0x02, 0x01, 0x74, 0x19, 0xf6, + 0x86, 0x5e, 0x02, 0x01, 0x74, 0x12, 0x83, 0xbe, 0xbc, 0x02, 0x00, 0x75, 0x0b, 0x80, 0x7e, 0x08, + 0x00, 0x75, 0x05, 0x83, 0x8e, 0xda, 0x02, 0x08, 0xc6, 0x86, 0x65, 0x02, 0x01, 0xc6, 0x86, 0x66, + 0x02, 0x01, 0x8c, 0xd8, 0x8e, 0xc0, 0x33, 0xc0, 0x8d, 0x77, 0x0e, 0x8d, 0xbe, 0xee, 0x01, 0xab, + 0xab, 0xab, 0xeb, 0x4b, 0xf6, 0x86, 0x68, 0x02, 0x01, 0x74, 0x44, 0xf6, 0x86, 0x67, 0x02, 0x01, + 0x75, 0x0d, 0xc6, 0x86, 0x67, 0x02, 0x01, 0xbe, 0x79, 0x45, 0xe8, 0xed, 0xd4, 0xeb, 0x30, 0xf6, + 0x86, 0x5e, 0x02, 0x01, 0x74, 0x12, 0x80, 0x7e, 0x08, 0x00, 0x75, 0x0c, 0x83, 0xbe, 0xbc, 0x02, + 0x00, 0x75, 0x05, 0x83, 0x8e, 0xda, 0x02, 0x08, 0xeb, 0x15, 0xf6, 0x86, 0x54, 0x02, 0x01, 0x74, + 0x0e, 0x8c, 0xd8, 0x8e, 0xc0, 0x8d, 0x77, 0x0e, 0x8d, 0xbe, 0xee, 0x01, 0xa5, 0xa5, 0xa5, 0xc3, + 0x53, 0x8c, 0xd8, 0x8e, 0xc0, 0x8d, 0x77, 0x0e, 0x8d, 0xbe, 0x0a, 0x03, 0x8c, 0xd9, 0x8e, 0xc1, + 0xb9, 0x03, 0x00, 0xf3, 0xa7, 0x74, 0x54, 0x8b, 0x44, 0xfe, 0x89, 0x45, 0xfe, 0xf3, 0xa5, 0xbb, + 0xfc, 0x04, 0xb9, 0x0b, 0x00, 0x8d, 0xb6, 0x0a, 0x03, 0xad, 0x8b, 0x14, 0x8b, 0x74, 0x02, 0x8b, + 0x3f, 0x03, 0xfd, 0xab, 0x89, 0x15, 0x89, 0x75, 0x02, 0x83, 0xc3, 0x02, 0xe2, 0xf1, 0xf6, 0x86, + 0xaa, 0x02, 0x01, 0x75, 0x26, 0x8b, 0xb6, 0xd9, 0x05, 0x8d, 0xbe, 0xea, 0x01, 0xa5, 0xa5, 0x80, + 0x7e, 0x06, 0x08, 0x76, 0x0b, 0xc7, 0x86, 0xbe, 0x02, 0x04, 0x00, 0xe8, 0xc8, 0xef, 0xeb, 0x0b, + 0xc6, 0x86, 0x84, 0x02, 0x01, 0xc7, 0x86, 0xbe, 0x02, 0x01, 0x00, 0x5b, 0xc3, 0xb8, 0x80, 0x0a, + 0xf6, 0x86, 0xa6, 0x02, 0x01, 0x75, 0x45, 0xf6, 0x86, 0xa8, 0x02, 0x01, 0x75, 0x3e, 0xf7, 0x86, + 0xf6, 0x00, 0x10, 0x00, 0x75, 0x36, 0xf7, 0x07, 0x82, 0x00, 0x74, 0x2f, 0xc7, 0x86, 0x2a, 0x02, + 0x07, 0x00, 0xc6, 0x86, 0x16, 0x01, 0x00, 0x81, 0x8e, 0x06, 0x02, 0x00, 0x01, 0xc6, 0x86, 0x85, + 0x02, 0x01, 0xf6, 0x86, 0xa7, 0x02, 0x01, 0x75, 0x0c, 0x80, 0x7e, 0x06, 0x08, 0x72, 0x0c, 0x80, + 0x7e, 0x06, 0x0e, 0x77, 0x06, 0xb8, 0x0a, 0x00, 0xe8, 0x62, 0xe1, 0xc3, 0x89, 0x86, 0xe2, 0x02, + 0xe9, 0xcf, 0xeb, 0xf7, 0x07, 0x02, 0x00, 0x74, 0x0f, 0x80, 0x7e, 0x06, 0x0c, 0x75, 0x09, 0xc6, + 0x86, 0x60, 0x02, 0x01, 0xc6, 0x46, 0x07, 0x0e, 0x8b, 0x86, 0x14, 0x02, 0x86, 0xe0, 0x8b, 0xb6, + 0xfe, 0x05, 0x0b, 0xf6, 0x74, 0x09, 0xad, 0x86, 0xe0, 0x89, 0x86, 0x14, 0x02, 0x86, 0xe0, 0x89, + 0x86, 0xde, 0x02, 0x8b, 0xb6, 0xe5, 0x05, 0x0b, 0xf6, 0x74, 0x07, 0xad, 0x86, 0xc4, 0x89, 0x86, + 0x0c, 0x02, 0x8b, 0xb6, 0xea, 0x05, 0x0b, 0xf6, 0x74, 0x05, 0x8b, 0xc6, 0xe8, 0xa2, 0x00, 0x8b, + 0xb6, 0xef, 0x05, 0x0b, 0xf6, 0x74, 0x07, 0xad, 0x86, 0xe0, 0x89, 0x86, 0x08, 0x02, 0x8b, 0xb6, + 0xf4, 0x05, 0x0b, 0xf6, 0x74, 0x07, 0xad, 0x86, 0xc4, 0x89, 0x86, 0xf8, 0x01, 0x8b, 0xb6, 0xf9, + 0x05, 0x0b, 0xf6, 0x74, 0x07, 0xad, 0x86, 0xc4, 0x89, 0x86, 0xf6, 0x01, 0x8b, 0x07, 0xa9, 0x02, + 0x00, 0x75, 0x07, 0xa8, 0x28, 0x74, 0x03, 0xe9, 0x71, 0xff, 0xc7, 0x86, 0xe2, 0x02, 0x00, 0x01, + 0xe9, 0x3f, 0xeb, 0xc3, 0xf7, 0x07, 0x02, 0x02, 0x74, 0xf9, 0x8b, 0x86, 0x14, 0x02, 0x86, 0xe0, + 0x8b, 0xb6, 0x13, 0x06, 0x0b, 0xf6, 0x74, 0x09, 0xad, 0x86, 0xe0, 0x89, 0x86, 0x14, 0x02, 0x86, + 0xe0, 0x89, 0x86, 0xde, 0x02, 0x8b, 0xb6, 0x04, 0x06, 0x0b, 0xf6, 0x74, 0x07, 0xad, 0x86, 0xc4, + 0x89, 0x86, 0x0c, 0x02, 0x8b, 0xb6, 0x09, 0x06, 0x0b, 0xf6, 0x74, 0x05, 0x8b, 0xc6, 0xe8, 0x20, + 0x00, 0x8b, 0xb6, 0x0e, 0x06, 0x0b, 0xf6, 0x74, 0x07, 0xad, 0x86, 0xe0, 0x89, 0x86, 0x08, 0x02, + 0x80, 0x7e, 0x06, 0x0c, 0x75, 0x96, 0xc6, 0x86, 0x60, 0x02, 0x01, 0xc6, 0x46, 0x07, 0x0e, 0xeb, + 0x8b, 0x53, 0x57, 0x8c, 0xdb, 0x8e, 0xc3, 0xbb, 0x12, 0x05, 0xb9, 0x0a, 0x00, 0x8b, 0xf0, 0xad, + 0x8b, 0x34, 0x8b, 0x3f, 0x03, 0xfd, 0xab, 0x89, 0x35, 0x83, 0xc3, 0x02, 0xe2, 0xf4, 0x5f, 0x5b, + 0xc3, 0x68, 0xc1, 0x29, 0xeb, 0x08, 0x68, 0x29, 0x2a, 0xeb, 0x03, 0x68, 0x6b, 0x2a, 0xf7, 0x07, + 0x82, 0x02, 0x74, 0x1c, 0x8b, 0x86, 0x14, 0x02, 0x86, 0xe0, 0x8b, 0xb6, 0x4a, 0x06, 0x0b, 0xf6, + 0x74, 0x09, 0xad, 0x86, 0xe0, 0x89, 0x86, 0x14, 0x02, 0x86, 0xe0, 0x89, 0x86, 0xde, 0x02, 0xc3, + 0x83, 0xc4, 0x02, 0xc3, 0x8b, 0x07, 0xf6, 0x86, 0x63, 0x01, 0x01, 0x74, 0x1e, 0xa9, 0x00, 0x20, + 0x74, 0x40, 0x56, 0x57, 0xe8, 0xa3, 0xd0, 0xc7, 0x44, 0x02, 0x02, 0x00, 0x8d, 0x7e, 0x16, 0xe8, + 0xb6, 0xd0, 0xbe, 0x6d, 0x45, 0xe8, 0x44, 0xd3, 0x5f, 0x5e, 0xc3, 0x80, 0x7e, 0x06, 0x08, 0x75, + 0x21, 0xa9, 0x00, 0x10, 0x74, 0x1c, 0xa9, 0x3c, 0x00, 0x75, 0x17, 0xff, 0x86, 0xc8, 0x02, 0xff, + 0x86, 0xc6, 0x02, 0x83, 0xbe, 0xc6, 0x02, 0x02, 0x72, 0x05, 0xc6, 0x46, 0x07, 0x0a, 0xc3, 0xe8, + 0xd2, 0xeb, 0xc3, 0x8c, 0xd8, 0x8e, 0xc0, 0x33, 0xc0, 0x8b, 0x3e, 0x26, 0x56, 0x83, 0xc7, 0x06, + 0x81, 0xff, 0x3e, 0x5d, 0x72, 0x03, 0xbf, 0x38, 0x5d, 0xab, 0xab, 0xab, 0xf6, 0x86, 0xcc, 0x01, + 0x01, 0x74, 0x18, 0xc6, 0x86, 0xcb, 0x01, 0x01, 0xe8, 0x3f, 0xd0, 0xc7, 0x44, 0x02, 0x05, 0x00, + 0x8d, 0x7e, 0x16, 0xe8, 0x52, 0xd0, 0xc6, 0x86, 0xca, 0x01, 0x00, 0xc3, 0xf7, 0x86, 0xf6, 0x00, + 0x08, 0x00, 0x74, 0x06, 0xbe, 0x1b, 0x46, 0xe8, 0x20, 0xd2, 0x8d, 0xb6, 0x6c, 0x15, 0x8e, 0x46, + 0x02, 0x8a, 0x1c, 0xf6, 0xc3, 0x80, 0x75, 0x0d, 0x80, 0xfb, 0x10, 0x77, 0x14, 0x32, 0xff, 0xd1, + 0xe3, 0xff, 0xa7, 0xda, 0x04, 0xc7, 0x86, 0x0a, 0x01, 0x00, 0x00, 0xc3, 0xb8, 0x00, 0x80, 0xeb, + 0x08, 0xb8, 0x00, 0x80, 0xeb, 0x03, 0xb8, 0x00, 0x20, 0x8d, 0xb6, 0x6c, 0x15, 0x89, 0x44, 0x02, + 0x80, 0x0c, 0x80, 0xb8, 0x40, 0x60, 0x8e, 0xc0, 0xc7, 0x86, 0x0a, 0x01, 0x00, 0x00, 0x26, 0xc7, + 0x06, 0x70, 0x00, 0x08, 0x00, 0xc3, 0xeb, 0xe1, 0xb8, 0x04, 0x00, 0x80, 0xbe, 0x06, 0x01, 0x01, + 0x75, 0xf4, 0xb8, 0x05, 0x00, 0x80, 0xbe, 0x07, 0x01, 0x01, 0x74, 0xea, 0xc6, 0x86, 0x08, 0x01, + 0x01, 0xc6, 0x86, 0xcd, 0x01, 0x00, 0xc6, 0x86, 0x09, 0x01, 0x00, 0x8b, 0x86, 0xf8, 0x00, 0x89, + 0x86, 0xf6, 0x00, 0x8d, 0xb6, 0x76, 0x15, 0xb8, 0x03, 0x00, 0xf6, 0x04, 0x80, 0x75, 0xc7, 0x33, + 0xc0, 0x39, 0x04, 0x75, 0x1e, 0x39, 0x44, 0x02, 0x75, 0x19, 0x39, 0x44, 0x04, 0x75, 0x14, 0x8b, + 0x86, 0x00, 0x01, 0x89, 0x04, 0x8b, 0x86, 0x02, 0x01, 0x89, 0x44, 0x02, 0x8b, 0x86, 0x04, 0x01, + 0x89, 0x44, 0x04, 0xad, 0x8b, 0x14, 0x8b, 0x74, 0x02, 0x89, 0x86, 0xd0, 0x01, 0x89, 0x96, 0xd2, + 0x01, 0x89, 0xb6, 0xd4, 0x01, 0x8e, 0x46, 0x02, 0x50, 0xe8, 0x44, 0xce, 0x26, 0xa3, 0x1e, 0x00, + 0x8b, 0xc2, 0xe8, 0x3b, 0xce, 0x26, 0xa3, 0x20, 0x00, 0x8b, 0xc6, 0xe8, 0x32, 0xce, 0x26, 0xa3, + 0x22, 0x00, 0x58, 0xbb, 0x2a, 0x05, 0xb9, 0x13, 0x00, 0x1e, 0x07, 0x8b, 0x3f, 0x03, 0xfd, 0xab, + 0x89, 0x15, 0x89, 0x75, 0x02, 0x83, 0xc3, 0x02, 0xe2, 0xf1, 0xbb, 0x26, 0x05, 0x8d, 0x96, 0x84, + 0x15, 0xb8, 0x02, 0x00, 0x8b, 0x3f, 0x03, 0xfd, 0x8b, 0xf2, 0xb9, 0x09, 0x00, 0xf3, 0xa5, 0x83, + 0xc3, 0x02, 0x48, 0x75, 0xef, 0xf7, 0x86, 0xf6, 0x00, 0x08, 0x00, 0x74, 0x06, 0xbe, 0x1b, 0x46, + 0xe8, 0x07, 0xd1, 0x8d, 0xb6, 0x6c, 0x15, 0x8b, 0x44, 0x08, 0xf7, 0x86, 0xf4, 0x00, 0x00, 0x20, + 0x75, 0x0a, 0xf7, 0x86, 0xf6, 0x00, 0x00, 0x0c, 0x75, 0x02, 0xeb, 0x03, 0x25, 0xff, 0x7b, 0x89, + 0x86, 0x12, 0x01, 0x89, 0x86, 0x14, 0x01, 0xf7, 0x86, 0x12, 0x01, 0x01, 0x00, 0x74, 0x08, 0xc7, + 0x06, 0x6b, 0x45, 0x58, 0x02, 0xeb, 0x06, 0xc7, 0x06, 0x6b, 0x45, 0x08, 0x07, 0x8e, 0x46, 0x02, + 0x26, 0x8b, 0x1e, 0x28, 0x00, 0x81, 0xe3, 0xff, 0xf4, 0xa9, 0x04, 0x00, 0x74, 0x04, 0x81, 0xcb, + 0x00, 0x08, 0xa9, 0x02, 0x00, 0x74, 0x04, 0x81, 0xcb, 0x00, 0x03, 0x8e, 0x46, 0x02, 0x26, 0x89, + 0x1e, 0x28, 0x00, 0x8d, 0xb6, 0x80, 0x15, 0xe8, 0x02, 0x02, 0x8d, 0xb6, 0x7c, 0x15, 0xe8, 0x20, + 0x00, 0xf6, 0x06, 0x1e, 0x56, 0x01, 0x74, 0x03, 0xe8, 0xf2, 0x13, 0xc6, 0x86, 0x07, 0x01, 0x01, + 0xe8, 0x5f, 0x05, 0xe9, 0x90, 0xfe, 0x56, 0x83, 0xc6, 0x08, 0xe8, 0x04, 0x00, 0x5e, 0xe9, 0x85, + 0xfe, 0x8e, 0x46, 0x02, 0xb8, 0xc0, 0x00, 0xe8, 0x56, 0xcd, 0x26, 0xa3, 0x3a, 0x00, 0x8b, 0x04, + 0x0d, 0x80, 0x00, 0x89, 0x86, 0xd6, 0x01, 0xe8, 0x46, 0xcd, 0x26, 0xa3, 0x3c, 0x00, 0x8b, 0x44, + 0x02, 0x89, 0x86, 0xd8, 0x01, 0xe8, 0x38, 0xcd, 0x26, 0xa3, 0x3e, 0x00, 0xc3, 0x83, 0x8e, 0x1e, + 0x01, 0x01, 0xc6, 0x86, 0x16, 0x01, 0x00, 0x8a, 0x46, 0x06, 0x3c, 0x00, 0x74, 0x1b, 0x3c, 0x10, + 0x74, 0x17, 0x3c, 0x12, 0x74, 0x13, 0x3c, 0x0e, 0x74, 0x17, 0x3c, 0x48, 0x74, 0x19, 0xe8, 0x35, + 0xfe, 0xb8, 0x0f, 0x00, 0xe8, 0x86, 0xdd, 0xeb, 0x35, 0xe8, 0x2a, 0xfe, 0xe8, 0xc7, 0x03, 0xeb, + 0x2d, 0xc6, 0x46, 0x07, 0x10, 0xeb, 0x20, 0x8e, 0x46, 0x02, 0xf6, 0x06, 0x1e, 0x56, 0x01, 0x75, + 0x08, 0x26, 0x83, 0x26, 0x02, 0x00, 0xfd, 0xeb, 0x08, 0xc6, 0x86, 0x6d, 0x01, 0x01, 0xe8, 0xce, + 0x13, 0xc6, 0x46, 0x07, 0x12, 0xeb, 0x00, 0xc6, 0x46, 0x09, 0x1e, 0xe9, 0xf8, 0xfd, 0xc3, 0xc6, + 0x86, 0x06, 0x01, 0x00, 0xb8, 0x05, 0x00, 0x80, 0xbe, 0x07, 0x01, 0x01, 0x75, 0x03, 0xe9, 0xe8, + 0xfd, 0x8b, 0x44, 0x08, 0x89, 0x86, 0xf4, 0x00, 0x8b, 0x44, 0x0a, 0xa9, 0x00, 0x02, 0x74, 0x03, + 0x0d, 0x00, 0x01, 0x89, 0x86, 0xf6, 0x00, 0x89, 0x86, 0xf8, 0x00, 0xf7, 0x86, 0xf6, 0x00, 0x00, + 0x04, 0x74, 0x06, 0xb8, 0x01, 0x00, 0xe9, 0xc0, 0xfd, 0x8b, 0x44, 0x12, 0x0b, 0xc0, 0x75, 0x16, + 0xb8, 0x18, 0x47, 0xf7, 0x86, 0xf6, 0x00, 0x00, 0x01, 0x75, 0x0b, 0xf7, 0x86, 0xf6, 0x00, 0x00, + 0x02, 0x75, 0x03, 0xb8, 0xc6, 0x11, 0x89, 0x86, 0xfa, 0x00, 0x89, 0x86, 0x32, 0x01, 0x8d, 0xbe, + 0x30, 0x04, 0x8b, 0x44, 0x0c, 0x89, 0x05, 0x89, 0x86, 0x00, 0x01, 0x8b, 0x44, 0x0e, 0x89, 0x45, + 0x02, 0x89, 0x86, 0x02, 0x01, 0x8b, 0x44, 0x10, 0x89, 0x45, 0x04, 0x89, 0x86, 0x04, 0x01, 0x80, + 0xbe, 0x62, 0x01, 0x01, 0x75, 0x21, 0x8b, 0x44, 0x0c, 0x89, 0x86, 0xb0, 0x03, 0x89, 0x86, 0xb6, + 0x03, 0x8b, 0x44, 0x0e, 0x89, 0x86, 0xb2, 0x03, 0x89, 0x86, 0xb8, 0x03, 0x8b, 0x44, 0x10, 0x89, + 0x86, 0xb4, 0x03, 0x89, 0x86, 0xba, 0x03, 0x8e, 0x46, 0x02, 0x8b, 0x86, 0xfa, 0x00, 0x26, 0xa3, + 0x12, 0x00, 0x8b, 0x44, 0x14, 0x26, 0xa3, 0x2a, 0x00, 0x8b, 0x44, 0x16, 0x25, 0xff, 0xf4, 0x83, + 0xc8, 0x30, 0x26, 0xa3, 0x28, 0x00, 0x8b, 0x86, 0xf4, 0x00, 0x25, 0xff, 0xfe, 0xc1, 0xe8, 0x08, + 0x89, 0x86, 0x24, 0x02, 0xf7, 0x86, 0xf4, 0x00, 0x04, 0x00, 0x74, 0x0f, 0xf6, 0x06, 0x1e, 0x56, + 0x01, 0x75, 0x08, 0xc6, 0x06, 0x1e, 0x56, 0x01, 0xe8, 0x9d, 0x0f, 0x80, 0xbe, 0x62, 0x01, 0x01, + 0x75, 0x01, 0xc3, 0xc6, 0x86, 0x06, 0x01, 0x01, 0xe9, 0xfb, 0xfc, 0x56, 0x8c, 0xd8, 0x8e, 0xc0, + 0x8d, 0x7c, 0x08, 0x8d, 0xb6, 0xd0, 0x02, 0xb9, 0x05, 0x00, 0x8b, 0xd1, 0xf3, 0xa5, 0x8d, 0xbe, + 0xd0, 0x02, 0x33, 0xc0, 0x8b, 0xca, 0xf3, 0xab, 0x81, 0xa6, 0x06, 0x02, 0x7f, 0xdf, 0x5e, 0xe9, + 0xd4, 0xfc, 0x56, 0x8c, 0xd8, 0x8e, 0xc0, 0x8d, 0x7c, 0x08, 0x8d, 0xb6, 0x3c, 0x02, 0xb9, 0x0c, + 0x00, 0x8b, 0xd1, 0xf3, 0xa5, 0x8d, 0xbe, 0x3c, 0x02, 0x33, 0xc0, 0x8b, 0xca, 0xf3, 0xab, 0x5e, + 0xe9, 0xb3, 0xfc, 0x83, 0xc6, 0x08, 0xe8, 0x03, 0x00, 0xe9, 0xaa, 0xfc, 0x06, 0x8e, 0x46, 0x02, + 0x8b, 0x04, 0x89, 0x86, 0xda, 0x01, 0xe8, 0x77, 0xcb, 0x26, 0xa3, 0x26, 0x00, 0x8b, 0x44, 0x02, + 0x23, 0x86, 0xf8, 0x01, 0xe8, 0x69, 0xcb, 0x25, 0xff, 0x7f, 0x26, 0x8b, 0x0e, 0x24, 0x00, 0x81, + 0xe1, 0x00, 0x80, 0x0b, 0xc1, 0x26, 0xa3, 0x24, 0x00, 0xe8, 0x54, 0xcb, 0x89, 0x86, 0xdc, 0x01, + 0x07, 0xc3, 0xb8, 0x05, 0x00, 0x80, 0xbe, 0x07, 0x01, 0x01, 0x75, 0x03, 0xe9, 0x6a, 0xfc, 0xc6, + 0x86, 0x62, 0x01, 0x01, 0xe8, 0x68, 0xfe, 0xc6, 0x86, 0x62, 0x01, 0x00, 0xc6, 0x86, 0x06, 0x01, + 0x01, 0xe9, 0x52, 0xfc, 0xb8, 0x11, 0x00, 0xc6, 0x86, 0x62, 0x01, 0x00, 0xe9, 0x4a, 0xfc, 0xc3, + 0x8b, 0xd8, 0x26, 0x8b, 0x04, 0x50, 0x33, 0xc0, 0x50, 0x23, 0xc3, 0x8b, 0xc8, 0x26, 0x89, 0x04, + 0x26, 0x8b, 0x04, 0x23, 0xc3, 0x3b, 0xc1, 0x58, 0x75, 0x3c, 0x05, 0x55, 0x55, 0x73, 0xe9, 0xb8, + 0x01, 0x00, 0x50, 0x23, 0xc3, 0x8b, 0xc8, 0x26, 0x89, 0x04, 0x26, 0x8b, 0x04, 0x23, 0xc3, 0x3b, + 0xc1, 0x58, 0x75, 0x22, 0xd1, 0xc0, 0x73, 0xea, 0xf7, 0xd0, 0x50, 0x23, 0xc3, 0x8b, 0xc8, 0x26, + 0x89, 0x04, 0x26, 0x8b, 0x04, 0x23, 0xc3, 0x3b, 0xc1, 0x58, 0x75, 0x0a, 0xd1, 0xc0, 0x72, 0xea, + 0xf8, 0x58, 0x26, 0x89, 0x04, 0xc3, 0xf9, 0xeb, 0xf8, 0x8b, 0x44, 0x08, 0x25, 0xff, 0x7b, 0x89, + 0x86, 0x12, 0x01, 0x89, 0x86, 0x14, 0x01, 0x8e, 0x46, 0x02, 0x26, 0x8b, 0x1e, 0x28, 0x00, 0x81, + 0xe3, 0xff, 0xf4, 0xa9, 0x04, 0x00, 0x74, 0x04, 0x81, 0xcb, 0x00, 0x08, 0xa9, 0x02, 0x00, 0x74, + 0x04, 0x81, 0xcb, 0x00, 0x03, 0x8e, 0x46, 0x02, 0x26, 0x89, 0x1e, 0x28, 0x00, 0xe9, 0xb6, 0xfb, + 0x8b, 0x44, 0x08, 0x89, 0x86, 0x28, 0x02, 0x86, 0xc4, 0x89, 0x86, 0x62, 0x05, 0xf6, 0x86, 0x73, + 0x02, 0x01, 0x75, 0x05, 0xc6, 0x86, 0x74, 0x02, 0x01, 0xc6, 0x86, 0x73, 0x02, 0x00, 0xe9, 0x95, + 0xfb, 0x8b, 0x44, 0x08, 0x89, 0x86, 0x30, 0x01, 0xbe, 0x09, 0x46, 0xe8, 0x7c, 0xcd, 0xe9, 0x85, + 0xfb, 0x8b, 0x44, 0x08, 0x8e, 0x46, 0x02, 0x26, 0xa3, 0x2a, 0x00, 0xe9, 0x78, 0xfb, 0x80, 0x7e, + 0x06, 0x0e, 0x74, 0x06, 0x80, 0x7e, 0x06, 0x48, 0x75, 0x13, 0x80, 0x7e, 0x08, 0x00, 0x74, 0x06, + 0x80, 0x7e, 0x08, 0x16, 0x75, 0x07, 0x8d, 0x5c, 0x08, 0xe8, 0xe2, 0xe9, 0xc3, 0xb8, 0x00, 0x10, + 0xe9, 0x56, 0xfb, 0xb8, 0x04, 0x00, 0xf6, 0x86, 0x07, 0x01, 0x01, 0x74, 0x1e, 0x8e, 0x46, 0x02, + 0x26, 0xa1, 0x28, 0x00, 0x8b, 0x5c, 0x08, 0x81, 0xe3, 0xff, 0xf4, 0x25, 0x00, 0x0b, 0x0b, 0xd8, + 0x8e, 0x46, 0x02, 0x26, 0x89, 0x1e, 0x28, 0x00, 0xb8, 0x00, 0x20, 0xe9, 0x2b, 0xfb, 0xb8, 0x05, + 0x00, 0xf6, 0x86, 0x07, 0x01, 0x01, 0x75, 0x11, 0xfa, 0xe8, 0xe2, 0xce, 0xfa, 0xe8, 0x16, 0xfb, + 0x8e, 0x46, 0x02, 0x26, 0x83, 0x0e, 0x72, 0x00, 0x02, 0xe9, 0x0d, 0xfb, 0xe9, 0x07, 0xfb, 0x8b, + 0xd0, 0xb8, 0x01, 0x00, 0xe9, 0xa4, 0x01, 0xc3, 0x80, 0xbe, 0xad, 0x02, 0x01, 0x74, 0x0e, 0x80, + 0xbe, 0x07, 0x01, 0x01, 0x75, 0xf1, 0x80, 0xbe, 0x09, 0x01, 0x01, 0x74, 0xea, 0xc6, 0x86, 0x09, + 0x01, 0x01, 0xc6, 0x86, 0xad, 0x02, 0x00, 0x8e, 0x46, 0x02, 0x26, 0xf7, 0x06, 0x00, 0x00, 0x02, + 0x00, 0x74, 0x08, 0xbe, 0x27, 0x46, 0xe8, 0xc1, 0xcc, 0xeb, 0x03, 0x0d, 0x00, 0x01, 0x80, 0xbe, + 0xa5, 0x02, 0x01, 0x74, 0x0a, 0x80, 0xbe, 0xa7, 0x02, 0x01, 0x74, 0x03, 0x0d, 0x00, 0x04, 0x80, + 0xbe, 0xa5, 0x02, 0x01, 0x74, 0x0a, 0x80, 0xbe, 0xa6, 0x02, 0x01, 0x74, 0x03, 0x0d, 0x00, 0x02, + 0xf7, 0x86, 0xa1, 0x02, 0x01, 0x00, 0x74, 0x03, 0x0d, 0x00, 0x08, 0xa9, 0x00, 0x80, 0x74, 0x1d, + 0xc7, 0x86, 0x2e, 0x01, 0x02, 0x00, 0xf6, 0x86, 0x2c, 0x01, 0x01, 0x74, 0x1d, 0x53, 0xbb, 0x40, + 0x60, 0x8e, 0xc3, 0x26, 0x81, 0x0e, 0x72, 0x00, 0x00, 0x02, 0x5b, 0xeb, 0x0d, 0x8a, 0x56, 0x06, + 0xd0, 0xe2, 0xd0, 0xe2, 0xd0, 0xe2, 0x24, 0x0f, 0x0a, 0xc2, 0x89, 0x86, 0x34, 0x02, 0x8b, 0xd0, + 0xb8, 0x02, 0x00, 0xe9, 0x92, 0x00, 0x8b, 0x96, 0x1e, 0x01, 0x8b, 0x86, 0x12, 0x01, 0xa9, 0x00, + 0x02, 0x74, 0x06, 0xf7, 0xc2, 0x05, 0x80, 0x74, 0x0e, 0xc6, 0x86, 0x07, 0x01, 0x00, 0xc6, 0x86, + 0x16, 0x01, 0x00, 0x81, 0xca, 0x80, 0x00, 0x33, 0xc0, 0x89, 0x86, 0x1e, 0x01, 0x89, 0x96, 0x20, + 0x01, 0xc7, 0x86, 0x34, 0x02, 0x00, 0x00, 0xf7, 0xc2, 0x01, 0x00, 0x75, 0x22, 0x83, 0xbe, 0x2e, + 0x01, 0x03, 0x74, 0x1b, 0xc7, 0x86, 0x2e, 0x01, 0x03, 0x00, 0xf6, 0x86, 0x2c, 0x01, 0x01, 0x74, + 0x0e, 0x53, 0xbb, 0x40, 0x60, 0x8e, 0xc3, 0x26, 0x81, 0x0e, 0x72, 0x00, 0x00, 0x02, 0x5b, 0xb8, + 0x03, 0x00, 0xeb, 0x34, 0x3b, 0xc0, 0x74, 0x00, 0x8b, 0xd0, 0xb8, 0x04, 0x00, 0xeb, 0x29, 0xc3, + 0xc6, 0x86, 0xca, 0x01, 0x00, 0xc6, 0x86, 0xcb, 0x01, 0x00, 0x55, 0x33, 0xed, 0xbe, 0x18, 0x55, + 0xe8, 0xd7, 0xcb, 0x5d, 0xb8, 0x05, 0x00, 0xeb, 0x0f, 0xb8, 0x06, 0x00, 0xeb, 0x0a, 0xb8, 0x07, + 0x00, 0xeb, 0x05, 0xb8, 0x08, 0x00, 0xeb, 0x00, 0x8b, 0xb6, 0x60, 0x01, 0x3b, 0xb6, 0x5e, 0x01, + 0x75, 0x0a, 0xf7, 0x86, 0x58, 0x15, 0x00, 0x80, 0x74, 0x02, 0xeb, 0x5f, 0x8b, 0x8e, 0x5e, 0x01, + 0x41, 0x80, 0xe1, 0x07, 0x3b, 0xf1, 0x75, 0x20, 0x46, 0x83, 0xe6, 0x07, 0x89, 0xb6, 0x60, 0x01, + 0x51, 0x8b, 0xce, 0xd1, 0xe1, 0xd1, 0xe1, 0x8d, 0xb6, 0x3e, 0x01, 0x03, 0xf1, 0x8b, 0x0c, 0x83, + 0xf9, 0x05, 0x74, 0x03, 0x0d, 0x00, 0x01, 0x59, 0x83, 0xf8, 0x04, 0x75, 0x1a, 0x51, 0xb9, 0x08, + 0x00, 0x8d, 0xb6, 0x3e, 0x01, 0x39, 0x04, 0x74, 0x08, 0x83, 0xc6, 0x04, 0xe2, 0xf7, 0x59, 0xeb, + 0x06, 0x89, 0x54, 0x02, 0x59, 0xeb, 0x13, 0x89, 0x8e, 0x5e, 0x01, 0xd1, 0xe1, 0xd1, 0xe1, 0x8d, + 0xb6, 0x3e, 0x01, 0x03, 0xf1, 0x89, 0x04, 0x89, 0x54, 0x02, 0xc3, 0x8d, 0xb6, 0x58, 0x15, 0x89, + 0x54, 0x06, 0xc7, 0x44, 0x04, 0x08, 0x00, 0x3c, 0x05, 0x75, 0x05, 0xc7, 0x44, 0x04, 0x06, 0x00, + 0x25, 0xff, 0x7f, 0x89, 0x04, 0xb8, 0x40, 0x60, 0x8e, 0xc0, 0x26, 0xc7, 0x06, 0x70, 0x00, 0x00, + 0x20, 0xc3, 0x8b, 0x86, 0x14, 0x01, 0x89, 0x86, 0x12, 0x01, 0xc6, 0x46, 0x09, 0x1e, 0xc6, 0x46, + 0x08, 0x1e, 0xc7, 0x86, 0x28, 0x01, 0x00, 0x00, 0xc7, 0x86, 0x2a, 0x01, 0x00, 0x00, 0x8c, 0xd8, + 0x8e, 0xc0, 0x33, 0xc0, 0x8d, 0xbe, 0xe0, 0x01, 0xb9, 0x2b, 0x00, 0xf3, 0xab, 0xc7, 0x86, 0x26, + 0x02, 0xff, 0xff, 0xb0, 0x02, 0xe8, 0x5a, 0xce, 0xf7, 0x86, 0xf6, 0x00, 0x80, 0x00, 0x74, 0x0c, + 0xb8, 0x05, 0x00, 0xe8, 0x13, 0x00, 0xc6, 0x46, 0x07, 0x42, 0xeb, 0x0c, 0xb8, 0x02, 0x00, 0xe8, + 0x07, 0x00, 0xc6, 0x46, 0x07, 0x02, 0xeb, 0x00, 0xc3, 0x50, 0xb0, 0x00, 0x88, 0x86, 0xa5, 0x02, + 0x88, 0x86, 0xa6, 0x02, 0x88, 0x86, 0xa7, 0x02, 0x88, 0x86, 0xa8, 0x02, 0x88, 0x86, 0xaa, 0x02, + 0x88, 0x86, 0xa9, 0x02, 0x58, 0x9c, 0xfa, 0x83, 0xf8, 0x02, 0x74, 0x13, 0x83, 0xf8, 0x05, 0x74, + 0x0c, 0xc7, 0x46, 0x12, 0xf8, 0x1c, 0xc7, 0x46, 0x14, 0xf8, 0x1c, 0xeb, 0x42, 0xeb, 0x21, 0xc6, + 0x86, 0xa5, 0x02, 0x01, 0xc6, 0x86, 0xa9, 0x02, 0x01, 0xc6, 0x86, 0xaa, 0x02, 0x00, 0xc7, 0x46, + 0x12, 0xc9, 0x31, 0xc7, 0x46, 0x14, 0xfd, 0x2e, 0xc7, 0x86, 0xba, 0x01, 0x2c, 0x00, 0xeb, 0x1f, + 0xc6, 0x86, 0xa7, 0x02, 0x01, 0xc6, 0x86, 0xa9, 0x02, 0x00, 0xc6, 0x86, 0xaa, 0x02, 0x01, 0xc7, + 0x46, 0x12, 0xcd, 0x31, 0xc7, 0x46, 0x14, 0x01, 0x2f, 0xc7, 0x86, 0xba, 0x01, 0x2c, 0x00, 0x0e, + 0xe8, 0x02, 0x00, 0xeb, 0x01, 0xcf, 0xc3, 0x8c, 0x00, 0x3a, 0x46, 0xbc, 0x02, 0x96, 0x00, 0x70, + 0x46, 0x14, 0x00, 0x96, 0x00, 0x84, 0x46, 0x08, 0x07, 0x96, 0x00, 0xbe, 0x46, 0x6e, 0x00, 0x78, + 0x00, 0x2e, 0x49, 0x00, 0x00, 0x6e, 0x00, 0x78, 0x47, 0xf4, 0x01, 0x6e, 0x00, 0xa8, 0x47, 0x08, + 0x07, 0x6e, 0x00, 0xd6, 0x4a, 0x05, 0x00, 0xaa, 0x00, 0xdc, 0x47, 0xfa, 0x00, 0x8c, 0x00, 0x52, + 0x48, 0x02, 0x00, 0x8c, 0x00, 0x42, 0x47, 0x3c, 0x00, 0x78, 0x00, 0xbe, 0x48, 0x04, 0x01, 0x96, + 0x00, 0xea, 0x48, 0x64, 0x00, 0x96, 0x00, 0x0e, 0x49, 0xdc, 0x05, 0xbe, 0x00, 0x34, 0x4a, 0xf4, + 0x01, 0xa0, 0x00, 0x58, 0x4b, 0xf4, 0x01, 0xbe, 0x00, 0x5e, 0x4a, 0xf4, 0x01, 0x82, 0x00, 0x7e, + 0x4d, 0x19, 0x00, 0x6e, 0x00, 0x3f, 0x4b, 0x14, 0x00, 0x78, 0x00, 0x72, 0x4a, 0xc4, 0x09, 0x6e, + 0x00, 0x86, 0x4a, 0x02, 0x00, 0xd2, 0x00, 0x06, 0x4e, 0x2c, 0x01, 0x78, 0x00, 0x90, 0x4c, 0xf0, + 0x00, 0x6e, 0x00, 0xaf, 0x4b, 0x04, 0x00, 0xa0, 0x00, 0xc6, 0x4b, 0xbc, 0x02, 0x6e, 0x00, 0xd8, + 0x4b, 0x08, 0x07, 0x6e, 0x00, 0xe6, 0x4b, 0xe8, 0x03, 0x6e, 0x00, 0xf8, 0x4b, 0x14, 0x00, 0x96, + 0x00, 0x04, 0x4c, 0x64, 0x00, 0xa0, 0x00, 0x9e, 0x4c, 0xf4, 0x01, 0xc8, 0x00, 0x16, 0x48, 0x02, + 0x00, 0x6e, 0x00, 0x2c, 0x4c, 0x04, 0x00, 0x8c, 0x00, 0x6e, 0x4c, 0x14, 0x00, 0xb4, 0x00, 0x8a, + 0x4e, 0x64, 0x00, 0xa0, 0x00, 0xa3, 0x4d, 0x05, 0x00, 0xc8, 0x00, 0xb8, 0x4d, 0x03, 0x00, 0xd2, + 0x00, 0x0a, 0x4e, 0xf4, 0x01, 0xd2, 0x00, 0x1c, 0x4e, 0x4c, 0x04, 0xdc, 0x00, 0x36, 0x4e, 0xfa, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x80, 0xbe, + 0x54, 0x02, 0x01, 0x75, 0x28, 0x80, 0x7e, 0x08, 0x00, 0x75, 0x22, 0xf6, 0x86, 0x65, 0x02, 0x01, + 0x74, 0x1c, 0xe8, 0x59, 0xe2, 0xbe, 0x43, 0x45, 0xe8, 0x3f, 0xc9, 0x8c, 0xd8, 0x8e, 0xc0, 0x33, + 0xc0, 0x8d, 0xbe, 0xee, 0x01, 0xab, 0xab, 0xab, 0xc6, 0x86, 0x65, 0x02, 0x00, 0xc3, 0xe8, 0xbf, + 0xe4, 0xeb, 0xdf, 0x90, 0x8a, 0x46, 0x08, 0x3c, 0x0a, 0x75, 0x0b, 0xf6, 0x86, 0x5e, 0x02, 0x01, + 0x74, 0x04, 0xc6, 0x46, 0x09, 0x04, 0xc3, 0x90, 0x80, 0xbe, 0xa6, 0x02, 0x01, 0x74, 0x32, 0x80, + 0x7e, 0x08, 0x06, 0x75, 0x2c, 0x80, 0x7e, 0x06, 0x0c, 0x75, 0x0f, 0xf6, 0x86, 0x5e, 0x02, 0x01, + 0x74, 0x08, 0xb8, 0x07, 0x00, 0xe8, 0x55, 0xd6, 0xeb, 0x17, 0xf6, 0x86, 0x5e, 0x02, 0x01, 0x74, + 0x10, 0xf6, 0x86, 0x59, 0x02, 0x01, 0x75, 0x09, 0xc6, 0x86, 0x59, 0x02, 0x01, 0xc6, 0x46, 0x09, + 0x08, 0xc3, 0x8a, 0x4e, 0x06, 0x8a, 0x56, 0x08, 0x80, 0xf9, 0x06, 0x74, 0x71, 0x80, 0xf9, 0x08, + 0x74, 0x05, 0x80, 0xf9, 0x0a, 0x75, 0x0a, 0x80, 0xfa, 0x0c, 0x74, 0x62, 0x80, 0xfa, 0x04, 0x74, + 0x5d, 0x80, 0xfa, 0x0c, 0x74, 0x05, 0x80, 0xfa, 0x04, 0x75, 0x52, 0xf6, 0x86, 0x63, 0x02, 0x01, + 0x74, 0x4b, 0xe8, 0xf7, 0x02, 0xf6, 0x86, 0x61, 0x02, 0x01, 0x74, 0x0b, 0x81, 0x8e, 0x06, 0x02, + 0x00, 0x80, 0xc6, 0x86, 0x85, 0x02, 0x01, 0xc6, 0x46, 0x09, 0x06, 0x81, 0x8e, 0x06, 0x02, 0x00, + 0x50, 0xc6, 0x86, 0x85, 0x02, 0x01, 0xc6, 0x86, 0x6a, 0x02, 0x01, 0xc6, 0x86, 0x69, 0x02, 0x01, + 0xc6, 0x86, 0x6b, 0x02, 0x01, 0xe8, 0xb2, 0xca, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, 0x0c, 0x00, + 0xfe, 0xbe, 0x4f, 0x45, 0xe8, 0x63, 0xc8, 0xbe, 0x79, 0x45, 0xe8, 0x5d, 0xc8, 0xc3, 0xb8, 0x07, + 0x00, 0xe8, 0xb9, 0xd5, 0xeb, 0xf7, 0x80, 0xbe, 0xa5, 0x02, 0x01, 0x74, 0x02, 0xeb, 0x2b, 0x80, + 0x7e, 0x06, 0x10, 0x75, 0x06, 0xc6, 0x46, 0x07, 0x12, 0xeb, 0x1f, 0x80, 0x7e, 0x08, 0x08, 0x75, + 0x19, 0xc6, 0x86, 0x69, 0x02, 0x01, 0xc6, 0x86, 0x6b, 0x02, 0x01, 0xe8, 0x6c, 0xca, 0xbe, 0xb5, + 0x45, 0xe8, 0x26, 0xc8, 0xbe, 0xbb, 0x45, 0xe8, 0x20, 0xc8, 0xc3, 0x90, 0xf6, 0x86, 0x5f, 0x02, + 0x01, 0x74, 0x28, 0xc6, 0x86, 0x5f, 0x02, 0x00, 0x80, 0x7e, 0x08, 0x0a, 0x75, 0x06, 0xc6, 0x46, + 0x09, 0x04, 0xeb, 0x17, 0x80, 0x7e, 0x08, 0x06, 0x75, 0x11, 0xc6, 0x86, 0x69, 0x02, 0x01, 0xe8, + 0x38, 0xca, 0xbe, 0x79, 0x45, 0xe8, 0xf2, 0xc7, 0xe8, 0x60, 0xe0, 0xc3, 0x8a, 0x46, 0x06, 0x3c, + 0x04, 0x75, 0x1e, 0xf7, 0x86, 0xf6, 0x00, 0x00, 0x02, 0x75, 0x0e, 0xc6, 0x46, 0x07, 0x06, 0xc6, + 0x46, 0x06, 0x06, 0xc6, 0x46, 0x09, 0x04, 0xeb, 0x16, 0xb8, 0x0d, 0x00, 0xe8, 0x2e, 0xd5, 0xeb, + 0x0e, 0x3c, 0x08, 0x72, 0x0a, 0x3c, 0x0c, 0x77, 0x06, 0xb8, 0x05, 0x00, 0xe8, 0x1e, 0xd5, 0xc3, + 0x80, 0x7e, 0x08, 0x00, 0x75, 0x33, 0xf6, 0x86, 0x54, 0x02, 0x01, 0x75, 0x2c, 0xf6, 0x86, 0x5e, + 0x02, 0x01, 0x74, 0x25, 0x8e, 0x46, 0x02, 0x26, 0xf7, 0x06, 0x14, 0x00, 0x03, 0x00, 0x74, 0x11, + 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, 0x14, 0x00, 0x03, 0xbe, 0x73, 0x45, 0xe8, 0x8b, 0xc7, 0xeb, + 0x08, 0xc6, 0x46, 0x09, 0x04, 0xff, 0x86, 0x4a, 0x02, 0xc3, 0x80, 0x7e, 0x08, 0x18, 0x75, 0x0e, + 0xbe, 0xf7, 0x45, 0xe8, 0x74, 0xc7, 0xe8, 0xc3, 0x01, 0xe8, 0xdf, 0xdf, 0xeb, 0x00, 0xc3, 0xf6, + 0x86, 0x7c, 0x02, 0x01, 0x75, 0x1e, 0x80, 0xbe, 0x68, 0x02, 0x01, 0x75, 0x17, 0xc6, 0x46, 0x07, + 0x12, 0xc6, 0x46, 0x09, 0x1e, 0x83, 0x8e, 0x06, 0x02, 0x08, 0x83, 0x8e, 0x1e, 0x01, 0x02, 0xc6, + 0x86, 0x85, 0x02, 0x01, 0xc3, 0x90, 0x80, 0x7e, 0x08, 0x00, 0x75, 0x35, 0x80, 0xbe, 0x5b, 0x02, + 0x01, 0x75, 0x58, 0x80, 0xbe, 0x54, 0x02, 0x01, 0x74, 0x1f, 0xe8, 0x6c, 0xe0, 0x80, 0x7e, 0x06, + 0x0a, 0x75, 0x16, 0xc6, 0x86, 0x63, 0x02, 0x01, 0xc6, 0x46, 0x07, 0x0c, 0xf7, 0x86, 0xf6, 0x00, + 0x00, 0x40, 0x75, 0x05, 0xc6, 0x86, 0x5e, 0x02, 0x01, 0xc3, 0xbe, 0x79, 0x45, 0xe8, 0x0a, 0xc7, + 0xc3, 0x8a, 0x46, 0x08, 0x3c, 0x04, 0x75, 0x0e, 0xbe, 0x79, 0x45, 0xe8, 0xfc, 0xc6, 0xff, 0x86, + 0xb2, 0x02, 0xe8, 0x9e, 0xdf, 0xc3, 0x3c, 0x06, 0x75, 0xdf, 0xf6, 0x86, 0x5f, 0x02, 0x01, 0x75, + 0xd8, 0xbe, 0x79, 0x45, 0xe8, 0xe3, 0xc6, 0xe8, 0x51, 0xdf, 0xc3, 0xc6, 0x86, 0x66, 0x02, 0x01, + 0xc3, 0x90, 0x80, 0xbe, 0xa6, 0x02, 0x01, 0x74, 0x22, 0x80, 0x7e, 0x06, 0x0c, 0x75, 0x1b, 0xff, + 0x86, 0xb8, 0x02, 0x83, 0xbe, 0xb8, 0x02, 0x04, 0x77, 0x0a, 0xbe, 0x85, 0x45, 0xe8, 0xba, 0xc6, + 0xe8, 0x9b, 0xe0, 0xc3, 0xb8, 0x09, 0x00, 0xe8, 0x13, 0xd4, 0xc3, 0xeb, 0xfd, 0x90, 0x80, 0x7e, + 0x08, 0x02, 0x75, 0x1d, 0x80, 0xbe, 0x5e, 0x02, 0x01, 0x74, 0x08, 0xb8, 0x05, 0x00, 0xe8, 0xfc, + 0xd3, 0xeb, 0x0e, 0xff, 0x86, 0x4a, 0x02, 0xc6, 0x46, 0x09, 0x04, 0xb8, 0x00, 0x01, 0xe8, 0x50, + 0xe2, 0xc3, 0x80, 0x7e, 0x08, 0x00, 0x75, 0x16, 0x80, 0xbe, 0x54, 0x02, 0x01, 0x74, 0x07, 0x80, + 0xbe, 0x5e, 0x02, 0x00, 0x74, 0x08, 0xff, 0x86, 0x4a, 0x02, 0xc6, 0x46, 0x09, 0x04, 0xc3, 0xe9, + 0xb8, 0x00, 0xf6, 0x86, 0xaa, 0x02, 0x01, 0x75, 0x07, 0xf6, 0x86, 0x5e, 0x02, 0x01, 0x74, 0xef, + 0xf7, 0x86, 0xf6, 0x00, 0x00, 0x80, 0x74, 0x06, 0xbe, 0x5b, 0x45, 0xe8, 0x4c, 0xc6, 0x8d, 0xbe, + 0xd0, 0x02, 0x8c, 0xd9, 0x8e, 0xc1, 0xb9, 0x05, 0x00, 0x33, 0xc0, 0xf3, 0xaf, 0x74, 0xd0, 0x80, + 0xbe, 0xa5, 0x02, 0x01, 0x74, 0x45, 0x80, 0xbe, 0xa6, 0x02, 0x01, 0x74, 0x5f, 0x80, 0xbe, 0xa7, + 0x02, 0x01, 0x74, 0x09, 0x80, 0xbe, 0xa8, 0x02, 0x01, 0x74, 0x51, 0xeb, 0x6d, 0xc7, 0x86, 0xb6, + 0x02, 0x04, 0x00, 0x81, 0x8e, 0x06, 0x02, 0x00, 0x20, 0xc6, 0x86, 0x85, 0x02, 0x01, 0xf6, 0x86, + 0x6e, 0x02, 0x01, 0x74, 0x14, 0x80, 0x7e, 0x08, 0x16, 0x75, 0x0e, 0xc6, 0x86, 0x56, 0x02, 0x00, + 0xe8, 0xf5, 0xdf, 0xc7, 0x86, 0x2a, 0x02, 0x03, 0x00, 0xeb, 0x3f, 0xc7, 0x86, 0xb6, 0x02, 0x04, + 0x00, 0xc6, 0x86, 0x56, 0x02, 0x00, 0xe8, 0xdf, 0xdf, 0xc7, 0x86, 0x2a, 0x02, 0x03, 0x00, 0x81, + 0x8e, 0x06, 0x02, 0x00, 0x20, 0xc6, 0x86, 0x85, 0x02, 0x01, 0xeb, 0x1e, 0xc7, 0x86, 0xb6, 0x02, + 0x04, 0x00, 0x81, 0x8e, 0x06, 0x02, 0x00, 0x20, 0xc6, 0x86, 0x85, 0x02, 0x01, 0xf7, 0x86, 0xf6, + 0x00, 0x00, 0x80, 0x75, 0x05, 0xc6, 0x86, 0x56, 0x02, 0x00, 0xc3, 0x90, 0xb8, 0x00, 0x02, 0xc7, + 0x86, 0x32, 0x02, 0x06, 0x00, 0x80, 0xbe, 0x61, 0x02, 0x01, 0x74, 0x37, 0xf6, 0x86, 0xa7, 0x02, + 0x01, 0x75, 0x07, 0xf6, 0x86, 0xa8, 0x02, 0x01, 0x74, 0x05, 0xb8, 0x00, 0x05, 0xeb, 0x24, 0xb8, + 0x00, 0x04, 0xc7, 0x86, 0x32, 0x02, 0x04, 0x00, 0x8a, 0x4e, 0x08, 0x80, 0xf9, 0x0c, 0x74, 0x13, + 0xb8, 0x00, 0x04, 0x80, 0xbe, 0x5a, 0x02, 0x01, 0x74, 0x09, 0xb8, 0x00, 0x03, 0xc7, 0x86, 0x32, + 0x02, 0x07, 0x00, 0x89, 0x86, 0x00, 0x03, 0xc3, 0x80, 0x7e, 0x08, 0x08, 0x74, 0x23, 0x8a, 0x46, + 0x06, 0x3c, 0x04, 0x72, 0x1c, 0x3c, 0x48, 0x74, 0x04, 0x3c, 0x0e, 0x77, 0x14, 0xf6, 0x86, 0x5d, + 0x02, 0x01, 0x74, 0x0d, 0xf6, 0x86, 0x5c, 0x02, 0x01, 0x74, 0x06, 0xb8, 0x0c, 0x00, 0xe8, 0x9c, + 0xd2, 0xc3, 0xc6, 0x86, 0x5d, 0x02, 0x01, 0x8e, 0x46, 0x02, 0x26, 0x81, 0x26, 0x04, 0x00, 0xff, + 0xf7, 0xe8, 0xd4, 0x02, 0xc3, 0x90, 0x80, 0x7e, 0x06, 0x02, 0x74, 0x06, 0x80, 0x7e, 0x08, 0x08, + 0x75, 0x06, 0xb8, 0x01, 0x00, 0xe8, 0x75, 0xd2, 0xc3, 0x90, 0x51, 0x52, 0x56, 0x33, 0xd2, 0xc6, + 0x86, 0x69, 0x02, 0x00, 0xe8, 0x43, 0xc7, 0x8d, 0xb6, 0xa6, 0x01, 0x8d, 0xbe, 0xac, 0x01, 0x8c, + 0xd8, 0x8e, 0xc0, 0xa5, 0xa5, 0xa5, 0xc6, 0x86, 0x83, 0x02, 0x00, 0x32, 0xc0, 0xe8, 0x7e, 0xe3, + 0xc6, 0x86, 0x68, 0x01, 0x02, 0xc7, 0x86, 0x66, 0x01, 0x20, 0x03, 0xbe, 0x6d, 0x45, 0xe8, 0xd9, + 0xc4, 0x8b, 0xb6, 0x64, 0x01, 0xb9, 0xe8, 0x03, 0x8e, 0x46, 0x02, 0x26, 0xc7, 0x06, 0x1c, 0x00, + 0x00, 0x00, 0xe8, 0x48, 0xde, 0x5e, 0x5a, 0x59, 0xc3, 0x90, 0x80, 0x7e, 0x06, 0x02, 0x74, 0x0c, + 0x80, 0x7e, 0x06, 0x44, 0x74, 0x06, 0x80, 0x7e, 0x08, 0x08, 0x75, 0x56, 0xfe, 0x8e, 0x68, 0x01, + 0x80, 0x8e, 0x68, 0x01, 0x00, 0x74, 0x45, 0xbe, 0x6d, 0x45, 0xe8, 0x9d, 0xc4, 0xe8, 0x06, 0xbf, + 0x8e, 0x46, 0x02, 0x26, 0x81, 0x0e, 0x0c, 0x00, 0x00, 0x01, 0x90, 0x8e, 0x46, 0x02, 0x26, 0x81, + 0x26, 0x0c, 0x00, 0xff, 0xfe, 0x8e, 0x46, 0x02, 0x26, 0xc7, 0x06, 0x1c, 0x00, 0x00, 0x00, 0x8b, + 0xb6, 0x64, 0x01, 0xb9, 0xe8, 0x03, 0xc6, 0x86, 0x86, 0x02, 0x01, 0x83, 0xbe, 0x66, 0x01, 0x01, + 0x75, 0x05, 0xe8, 0xcf, 0xdd, 0xeb, 0x0b, 0xe8, 0xe3, 0xdd, 0xeb, 0x06, 0xb8, 0x01, 0x00, 0xe8, + 0xbb, 0xd1, 0xc3, 0xf7, 0x86, 0xf6, 0x00, 0x80, 0x00, 0x74, 0x10, 0x80, 0x7e, 0x06, 0x14, 0x75, + 0x0a, 0xb8, 0x05, 0x00, 0xe8, 0x72, 0xf9, 0xc6, 0x46, 0x07, 0x42, 0xc3, 0x80, 0xbe, 0xa6, 0x02, + 0x01, 0x74, 0x4e, 0xc6, 0x86, 0x6c, 0x02, 0x00, 0x80, 0x7e, 0x08, 0x08, 0x75, 0x2c, 0xf6, 0x86, + 0x6d, 0x02, 0x01, 0x74, 0x25, 0xe9, 0xd4, 0xcf, 0xbe, 0x7f, 0x45, 0xe8, 0x1c, 0xc4, 0x8e, 0x46, + 0x02, 0xf6, 0x06, 0x1e, 0x56, 0x01, 0x75, 0x08, 0x26, 0x83, 0x26, 0x02, 0x00, 0xfd, 0xeb, 0x08, + 0xc6, 0x86, 0x6d, 0x01, 0x01, 0xe8, 0xd7, 0x07, 0xeb, 0x16, 0x80, 0x7e, 0x06, 0x10, 0x75, 0x10, + 0xc6, 0x46, 0x09, 0x00, 0xc6, 0x86, 0x54, 0x02, 0x00, 0xc6, 0x86, 0x68, 0x02, 0x00, 0xeb, 0xc8, + 0xc3, 0xeb, 0xfd, 0x80, 0x7e, 0x06, 0x42, 0x75, 0x0f, 0xc7, 0x86, 0xce, 0x02, 0x05, 0x00, 0xbe, + 0xfd, 0x45, 0xe8, 0xd5, 0xc3, 0xe8, 0xea, 0xdf, 0xc3, 0x90, 0x80, 0x7e, 0x08, 0x18, 0x74, 0x06, + 0x80, 0x7e, 0x08, 0x1a, 0x75, 0x04, 0xc6, 0x46, 0x09, 0x1c, 0xc3, 0x90, 0x80, 0x7e, 0x06, 0x46, + 0x75, 0x06, 0xb8, 0x05, 0x00, 0xe8, 0x15, 0xd1, 0xc3, 0x90, 0x80, 0x7e, 0x08, 0x1c, 0x75, 0x0a, + 0x80, 0x7e, 0x06, 0x48, 0x75, 0x04, 0xc6, 0x46, 0x07, 0x44, 0xc3, 0x90, 0x80, 0x7e, 0x06, 0x42, + 0x75, 0x04, 0xc6, 0x46, 0x07, 0x44, 0xc3, 0x90, 0xf6, 0x86, 0x72, 0x02, 0x01, 0x74, 0x20, 0xf6, + 0x46, 0x06, 0x46, 0x75, 0x11, 0xc6, 0x86, 0x6b, 0x02, 0x01, 0xc6, 0x86, 0x76, 0x02, 0x01, 0xe8, + 0xb8, 0xc5, 0xff, 0x86, 0xcc, 0x02, 0xe8, 0xb0, 0xdc, 0xbe, 0xeb, 0x45, 0xe8, 0x6b, 0xc3, 0xc3, + 0x80, 0x7e, 0x06, 0x42, 0x75, 0x3b, 0xf6, 0x86, 0x77, 0x02, 0x01, 0x75, 0x34, 0x83, 0xbe, 0xce, + 0x02, 0x00, 0x74, 0x0f, 0xff, 0x8e, 0xce, 0x02, 0xbe, 0xfd, 0x45, 0xe8, 0x4c, 0xc3, 0xe8, 0x61, + 0xdf, 0xeb, 0x1e, 0xf7, 0x86, 0xf4, 0x00, 0x00, 0x10, 0x74, 0x10, 0xb8, 0x02, 0x00, 0xe8, 0x68, + 0xf8, 0xc6, 0x46, 0x09, 0x1e, 0xc6, 0x46, 0x07, 0x02, 0xeb, 0x06, 0xb8, 0x06, 0x00, 0xe8, 0x8c, + 0xd0, 0xc3, 0x80, 0x7e, 0x06, 0x46, 0x75, 0x1a, 0xc6, 0x86, 0x6b, 0x02, 0x01, 0xc6, 0x86, 0x76, + 0x02, 0x01, 0xe8, 0x55, 0xc5, 0xff, 0x86, 0xcc, 0x02, 0xbe, 0x03, 0x46, 0xe8, 0x0b, 0xc3, 0xe8, + 0x62, 0xdf, 0xc3, 0x90, 0x80, 0x7e, 0x06, 0x44, 0x75, 0x06, 0xb8, 0x05, 0x00, 0xe8, 0x5d, 0xd0, + 0xc3, 0x90, 0x80, 0x7e, 0x06, 0x46, 0x75, 0x08, 0xb8, 0x06, 0x00, 0xe8, 0x4f, 0xd0, 0xeb, 0x17, + 0x80, 0x7e, 0x08, 0x16, 0x75, 0x11, 0xc7, 0x86, 0x2a, 0x02, 0x04, 0x00, 0xf6, 0x86, 0x6e, 0x02, + 0x01, 0x74, 0x04, 0xc6, 0x46, 0x09, 0x18, 0xc3, 0x8e, 0x46, 0x02, 0x26, 0x8b, 0x16, 0x02, 0x00, + 0xf7, 0xc2, 0x02, 0x00, 0x74, 0x14, 0x8b, 0xc2, 0x83, 0xe0, 0xfd, 0x8e, 0x46, 0x02, 0x26, 0xa3, + 0x02, 0x00, 0x8e, 0x46, 0x02, 0x26, 0x89, 0x16, 0x02, 0x00, 0xc3, 0x90, 0x8e, 0x46, 0x02, 0x26, + 0xf7, 0x06, 0x14, 0x00, 0x03, 0x00, 0x74, 0x10, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x26, 0x14, 0x00, + 0x03, 0xc6, 0x86, 0x55, 0x02, 0x01, 0xeb, 0x00, 0xf6, 0x86, 0x55, 0x02, 0x01, 0x75, 0x14, 0x80, + 0x7e, 0x08, 0x00, 0x75, 0x0e, 0xc6, 0x46, 0x09, 0x02, 0xff, 0x86, 0x40, 0x02, 0x81, 0x8e, 0xda, + 0x02, 0x00, 0x02, 0xc6, 0x86, 0x55, 0x02, 0x00, 0xc3, 0x90, 0xf7, 0x86, 0xf4, 0x00, 0x00, 0x10, + 0x75, 0x15, 0x8e, 0x46, 0x02, 0x26, 0xf7, 0x06, 0x14, 0x00, 0x03, 0x00, 0x74, 0x09, 0x8e, 0x46, + 0x02, 0x26, 0x83, 0x26, 0x14, 0x00, 0x03, 0xc3, 0x80, 0xbe, 0xab, 0x02, 0x01, 0x75, 0x32, 0x8e, + 0x46, 0x02, 0x26, 0xf7, 0x06, 0x14, 0x00, 0x08, 0x00, 0x74, 0x21, 0xf6, 0x86, 0x5d, 0x02, 0x01, + 0x74, 0x1f, 0xf6, 0x86, 0x5c, 0x02, 0x01, 0x75, 0x18, 0xc7, 0x86, 0x2a, 0x02, 0x0a, 0x00, 0xbe, + 0x97, 0x45, 0xe8, 0x25, 0xc2, 0xc6, 0x86, 0x5c, 0x02, 0x01, 0xeb, 0x05, 0xc6, 0x86, 0x5c, 0x02, + 0x00, 0xc3, 0xbe, 0xa9, 0x45, 0xe8, 0x12, 0xc2, 0x33, 0xc0, 0x87, 0x86, 0xc2, 0x02, 0x0b, 0xc0, + 0x75, 0x14, 0x80, 0xbe, 0x61, 0x02, 0x00, 0x74, 0x0d, 0xc6, 0x86, 0x61, 0x02, 0x00, 0x80, 0xa6, + 0x07, 0x02, 0x7f, 0xe8, 0x46, 0xfc, 0xc3, 0x80, 0x7e, 0x06, 0x12, 0x75, 0x0d, 0xc6, 0x86, 0x08, + 0x01, 0x01, 0xc6, 0x86, 0x09, 0x01, 0x00, 0xe8, 0xb8, 0xf6, 0xc3, 0x90, 0xf6, 0x86, 0x6e, 0x01, + 0x01, 0x74, 0x15, 0x80, 0xbe, 0x70, 0x01, 0x03, 0x73, 0x07, 0xc6, 0x86, 0x6c, 0x01, 0x01, 0xeb, + 0x23, 0xc6, 0x86, 0x6e, 0x01, 0x00, 0xeb, 0x1c, 0xf6, 0x86, 0x6f, 0x01, 0x01, 0x74, 0x15, 0x80, + 0xbe, 0x71, 0x01, 0x03, 0x73, 0x07, 0xc6, 0x86, 0x6d, 0x01, 0x01, 0xeb, 0x07, 0xc6, 0x86, 0x6f, + 0x01, 0x00, 0xeb, 0x00, 0xc3, 0xf7, 0x86, 0x58, 0x15, 0x00, 0x80, 0x75, 0x07, 0x83, 0xbe, 0x58, + 0x15, 0x05, 0x74, 0x05, 0xc6, 0x86, 0xca, 0x01, 0x01, 0xc3, 0xe8, 0xf6, 0xcf, 0xc3, 0xf7, 0x86, + 0xf6, 0x00, 0x08, 0x00, 0x74, 0x09, 0xe8, 0xb0, 0xf5, 0xbe, 0x21, 0x46, 0xe8, 0x7b, 0xc1, 0xc3, + 0xf7, 0x86, 0xf6, 0x00, 0x08, 0x00, 0x74, 0x11, 0x81, 0x8e, 0x06, 0x02, 0x00, 0x04, 0xc6, 0x86, + 0x85, 0x02, 0x01, 0xb8, 0x10, 0x00, 0xe8, 0xc4, 0xce, 0xc3, 0x8e, 0x46, 0x02, 0x26, 0xf7, 0x06, + 0x00, 0x00, 0x02, 0x00, 0x74, 0x41, 0xbb, 0x00, 0x03, 0x8b, 0x47, 0x14, 0x83, 0xf8, 0x00, 0x74, + 0x36, 0x3b, 0x86, 0x2a, 0x01, 0x74, 0x0c, 0x89, 0x86, 0x2a, 0x01, 0xc7, 0x86, 0x28, 0x01, 0x00, + 0x00, 0xeb, 0x24, 0xff, 0x86, 0x28, 0x01, 0x83, 0xbe, 0x28, 0x01, 0x02, 0x72, 0x19, 0x83, 0xbe, + 0x28, 0x01, 0x18, 0x73, 0x0c, 0x80, 0x7e, 0x08, 0x00, 0x74, 0x0c, 0x80, 0x7e, 0x08, 0x16, 0x74, + 0x06, 0xb8, 0x10, 0x00, 0xe8, 0x76, 0xce, 0xbe, 0x27, 0x46, 0xe8, 0x0d, 0xc1, 0xc3, 0x8b, 0x86, + 0x30, 0x01, 0x88, 0xa6, 0x2c, 0x01, 0x86, 0x86, 0x2d, 0x01, 0x32, 0x86, 0x2d, 0x01, 0x74, 0x0f, + 0xf6, 0x46, 0x06, 0x0e, 0x74, 0x06, 0xf6, 0x46, 0x06, 0x48, 0x75, 0x03, 0xe8, 0xfa, 0xbb, 0xc3, + 0xf6, 0x86, 0x90, 0x02, 0x01, 0x74, 0x07, 0xa8, 0x24, 0x74, 0x03, 0xe8, 0x8a, 0xcf, 0xf6, 0x86, + 0xa9, 0x02, 0x01, 0x74, 0x09, 0x80, 0xbe, 0x5e, 0x02, 0x01, 0x75, 0x58, 0xeb, 0x09, 0xf6, 0x86, + 0x6e, 0x02, 0x01, 0x75, 0x10, 0xeb, 0x52, 0x80, 0x7e, 0x06, 0x0e, 0x74, 0x02, 0xeb, 0x45, 0x80, + 0x7e, 0x08, 0x00, 0x75, 0x3f, 0xa8, 0x01, 0x74, 0x05, 0x83, 0x8e, 0xda, 0x02, 0x10, 0xa8, 0x04, + 0x74, 0x05, 0x83, 0x8e, 0xda, 0x02, 0x04, 0xa8, 0x08, 0x74, 0x05, 0x83, 0x8e, 0xda, 0x02, 0x40, + 0xa8, 0x20, 0x74, 0x10, 0x81, 0x8e, 0xda, 0x02, 0x00, 0x01, 0xf6, 0x86, 0x54, 0x02, 0x01, 0x75, + 0x03, 0xe8, 0x8d, 0xc4, 0xa8, 0x40, 0x74, 0x05, 0x83, 0x8e, 0xda, 0x02, 0x01, 0xa8, 0x80, 0x74, + 0x03, 0xe8, 0x52, 0x00, 0xa9, 0x00, 0x01, 0x75, 0x01, 0xc3, 0x50, 0x80, 0x7e, 0x08, 0x0a, 0x75, + 0x06, 0xc6, 0x46, 0x09, 0x04, 0xeb, 0x1b, 0x80, 0x7e, 0x08, 0x00, 0x75, 0x23, 0xc6, 0x46, 0x09, + 0x02, 0xff, 0x86, 0x40, 0x02, 0xf6, 0x86, 0x5e, 0x02, 0x01, 0x74, 0x06, 0x81, 0x8e, 0xda, 0x02, + 0x00, 0x02, 0xc6, 0x86, 0x69, 0x02, 0x01, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x0e, 0x0c, 0x00, 0x10, + 0x8e, 0x46, 0x02, 0x26, 0xc7, 0x06, 0x08, 0x00, 0x00, 0x00, 0x8e, 0x46, 0x02, 0x26, 0xc7, 0x06, + 0x08, 0x00, 0x00, 0x01, 0x58, 0xc3, 0x83, 0x8e, 0xda, 0x02, 0x20, 0x83, 0x7e, 0x06, 0x08, 0x75, + 0x13, 0x8b, 0x8e, 0xc4, 0x02, 0x41, 0x89, 0x8e, 0xc4, 0x02, 0x80, 0xf9, 0x02, 0x75, 0x05, 0x50, + 0xe8, 0x71, 0xd9, 0x58, 0xc3, 0x50, 0x53, 0x51, 0x8a, 0x4e, 0x06, 0x80, 0xf9, 0x0e, 0x74, 0x1e, + 0x80, 0xf9, 0x48, 0x74, 0x19, 0x80, 0xbe, 0x54, 0x02, 0x01, 0x74, 0x46, 0x80, 0xf9, 0x08, 0x72, + 0x41, 0x80, 0xf9, 0x0e, 0x77, 0x3c, 0xb8, 0x02, 0x00, 0xe8, 0x41, 0xcd, 0xeb, 0x34, 0xc7, 0x86, + 0x2a, 0x02, 0x05, 0x00, 0xc6, 0x86, 0x61, 0x02, 0x01, 0x8a, 0x46, 0x08, 0x3c, 0x06, 0x74, 0x26, + 0x3c, 0x02, 0x74, 0x51, 0x3c, 0x08, 0x74, 0x1a, 0x3c, 0x04, 0x74, 0x16, 0xf6, 0x86, 0xa7, 0x02, + 0x01, 0x75, 0x13, 0xf6, 0x86, 0xa8, 0x02, 0x01, 0x75, 0x0c, 0xc6, 0x46, 0x09, 0x04, 0xff, 0x86, + 0x4a, 0x02, 0x59, 0x5b, 0x58, 0xc3, 0x8b, 0x86, 0x06, 0x02, 0xf6, 0xc4, 0x80, 0x75, 0x0c, 0x80, + 0xcc, 0x80, 0x89, 0x86, 0x06, 0x02, 0xc6, 0x86, 0x85, 0x02, 0x01, 0x81, 0xbe, 0x00, 0x03, 0x00, + 0x02, 0x74, 0xdf, 0xc7, 0x86, 0x00, 0x03, 0x00, 0x02, 0xf6, 0x86, 0xa5, 0x02, 0x01, 0x74, 0xd2, + 0xe8, 0xe8, 0xd7, 0xeb, 0xcd, 0xb8, 0x00, 0x01, 0xe8, 0x36, 0xdb, 0xf6, 0x86, 0x5e, 0x02, 0x01, + 0x74, 0xc0, 0xc6, 0x46, 0x09, 0x04, 0xeb, 0xba, 0xfa, 0xc7, 0x06, 0x30, 0x00, 0x0a, 0x0f, 0x8c, + 0x0e, 0x32, 0x00, 0xb8, 0x00, 0x00, 0xe7, 0x06, 0xb8, 0xea, 0x09, 0xe7, 0x00, 0xb8, 0x09, 0x00, + 0xe7, 0x06, 0xb0, 0x7f, 0xe8, 0xfb, 0xbb, 0xc6, 0x06, 0x1f, 0x56, 0x80, 0xfb, 0xc3, 0xf7, 0x86, + 0x82, 0x01, 0x01, 0x00, 0x74, 0x1a, 0xc7, 0x86, 0x82, 0x01, 0x00, 0x00, 0xf6, 0x86, 0x6e, 0x01, + 0x01, 0x74, 0x0d, 0xc6, 0x86, 0x6e, 0x01, 0x00, 0xbe, 0x15, 0x46, 0xe8, 0xce, 0xbf, 0xeb, 0x00, + 0xf7, 0x86, 0x8a, 0x01, 0x01, 0x00, 0x74, 0x45, 0xc7, 0x86, 0x8a, 0x01, 0x00, 0x00, 0xf6, 0x86, + 0x6f, 0x01, 0x01, 0x74, 0x0d, 0xc6, 0x86, 0x6f, 0x01, 0x00, 0xbe, 0x15, 0x46, 0xe8, 0xac, 0xbf, + 0xeb, 0x2b, 0x80, 0x7e, 0x06, 0x0e, 0x74, 0x06, 0x80, 0x7e, 0x06, 0x48, 0x75, 0x1f, 0xf6, 0x86, + 0x5d, 0x02, 0x01, 0x74, 0x18, 0xf6, 0x86, 0x5c, 0x02, 0x01, 0x75, 0x11, 0xc6, 0x86, 0x5c, 0x02, + 0x01, 0xc7, 0x86, 0x2a, 0x02, 0x0a, 0x00, 0xb8, 0x0c, 0x00, 0xe8, 0x30, 0xcc, 0xc3, 0xb9, 0x01, + 0x00, 0x33, 0xdb, 0x8b, 0xaf, 0xe6, 0x54, 0x8e, 0x46, 0x02, 0x26, 0x8b, 0x16, 0x14, 0x00, 0x83, + 0xe2, 0x08, 0x26, 0xa1, 0x32, 0x00, 0xd1, 0xe8, 0xd0, 0xe8, 0x86, 0xe0, 0xf7, 0xc2, 0x08, 0x00, + 0x75, 0x02, 0xeb, 0x67, 0x83, 0xbe, 0x74, 0x01, 0x00, 0x75, 0x04, 0x88, 0xa6, 0x78, 0x01, 0x81, + 0xbe, 0x74, 0x01, 0xbc, 0x02, 0x72, 0x06, 0xc7, 0x86, 0x74, 0x01, 0xf4, 0x01, 0x8a, 0xc4, 0x2a, + 0xe4, 0x83, 0xf8, 0x7f, 0x75, 0x12, 0x8b, 0x86, 0x74, 0x01, 0xbe, 0xeb, 0x09, 0xf7, 0xe6, 0xbe, + 0x20, 0x00, 0xf7, 0xf6, 0x03, 0x86, 0x78, 0x01, 0x89, 0x86, 0x7c, 0x01, 0xff, 0x86, 0x74, 0x01, + 0x83, 0xbe, 0x7c, 0x01, 0x7d, 0x72, 0x21, 0x83, 0xbe, 0x88, 0x01, 0x01, 0x74, 0x1a, 0xc7, 0x86, + 0x88, 0x01, 0x01, 0x00, 0xc7, 0x86, 0x8a, 0x01, 0x01, 0x00, 0xa1, 0xd0, 0x54, 0x89, 0x86, 0x8c, + 0x01, 0xa1, 0xd2, 0x54, 0x89, 0x86, 0x8e, 0x01, 0xe9, 0x94, 0x00, 0x83, 0xbe, 0x76, 0x01, 0x00, + 0x75, 0x04, 0x88, 0x86, 0x7a, 0x01, 0x81, 0xbe, 0x76, 0x01, 0xbc, 0x02, 0x72, 0x06, 0xc7, 0x86, + 0x76, 0x01, 0xf4, 0x01, 0x2a, 0xe4, 0x83, 0xf8, 0x7f, 0x75, 0x12, 0x8b, 0x86, 0x76, 0x01, 0xbe, + 0xeb, 0x09, 0xf7, 0xe6, 0xbe, 0x20, 0x00, 0xf7, 0xf6, 0x03, 0x86, 0x7a, 0x01, 0x89, 0x86, 0x7e, + 0x01, 0xff, 0x86, 0x76, 0x01, 0x83, 0xbe, 0x80, 0x01, 0x01, 0x74, 0x53, 0x83, 0xf8, 0x1f, 0x72, + 0x4e, 0x8d, 0xb6, 0x96, 0x01, 0x83, 0x3c, 0x12, 0x72, 0x45, 0x83, 0x3c, 0x23, 0x77, 0x40, 0x83, + 0x7c, 0x02, 0x1f, 0x72, 0x3a, 0x83, 0x7c, 0x02, 0x45, 0x77, 0x34, 0x83, 0x7c, 0x04, 0x12, 0x72, + 0x2e, 0x90, 0x83, 0x7c, 0x04, 0x23, 0x77, 0x27, 0x81, 0x7c, 0x06, 0x9c, 0x00, 0x72, 0x20, 0xc7, + 0x86, 0x80, 0x01, 0x01, 0x00, 0xc7, 0x86, 0x82, 0x01, 0x01, 0x00, 0xc7, 0x86, 0x88, 0x01, 0x00, + 0x00, 0xa1, 0xd0, 0x54, 0x89, 0x86, 0x84, 0x01, 0xa1, 0xd2, 0x54, 0x89, 0x86, 0x86, 0x01, 0x83, + 0xc3, 0x02, 0x49, 0x74, 0x03, 0xe9, 0xdb, 0xfe, 0xc3, 0x50, 0x51, 0x52, 0x56, 0x57, 0x8e, 0x46, + 0x02, 0x83, 0x86, 0x90, 0x01, 0x01, 0x83, 0x96, 0x92, 0x01, 0x00, 0xc7, 0x86, 0x80, 0x01, 0x00, + 0x00, 0x26, 0xa1, 0x32, 0x00, 0xd1, 0xe8, 0xd0, 0xe8, 0x86, 0xe0, 0x8d, 0xb6, 0x96, 0x01, 0x26, + 0x8b, 0x0e, 0x14, 0x00, 0x83, 0xe1, 0x08, 0x89, 0x8e, 0x94, 0x01, 0xf7, 0xc1, 0x08, 0x00, 0x74, + 0x4f, 0x8b, 0x4c, 0x0a, 0x89, 0x4c, 0x0e, 0x8b, 0x4c, 0x06, 0x89, 0x4c, 0x0a, 0x8b, 0x4c, 0x02, + 0x89, 0x4c, 0x06, 0x2a, 0xe4, 0x8b, 0xc8, 0x83, 0xf8, 0x7f, 0x75, 0x19, 0xb0, 0x0a, 0xe6, 0x10, + 0xe5, 0x00, 0xb1, 0x05, 0xd3, 0xe8, 0x03, 0x86, 0x7e, 0x01, 0x8b, 0xc8, 0xe4, 0x10, 0xa8, 0x10, + 0x74, 0x03, 0x83, 0xc1, 0x4f, 0x8b, 0xc1, 0x89, 0x44, 0x02, 0xc7, 0x86, 0x7e, 0x01, 0x00, 0x00, + 0xc7, 0x86, 0x76, 0x01, 0x00, 0x00, 0xeb, 0x7f, 0xc7, 0x86, 0x88, 0x01, 0x00, 0x00, 0xeb, 0x77, + 0x8b, 0x4c, 0x08, 0x89, 0x4c, 0x0c, 0x8b, 0x4c, 0x04, 0x89, 0x4c, 0x08, 0x8b, 0x0c, 0x89, 0x4c, + 0x04, 0x8a, 0xc4, 0x2a, 0xe4, 0x8b, 0xc8, 0x83, 0xf8, 0x7f, 0x75, 0x25, 0xb0, 0x0a, 0xe6, 0x10, + 0xe5, 0x00, 0xb1, 0x05, 0xd3, 0xe8, 0x03, 0x86, 0x7c, 0x01, 0x8b, 0xc8, 0xe4, 0x10, 0xa8, 0x10, + 0x74, 0x03, 0x83, 0xc1, 0x4f, 0x8b, 0x96, 0x7c, 0x01, 0x83, 0xf9, 0x7f, 0x77, 0x03, 0x83, 0xc1, + 0x4f, 0x8b, 0xc1, 0x89, 0x04, 0xc7, 0x86, 0x7c, 0x01, 0x00, 0x00, 0xc7, 0x86, 0x74, 0x01, 0x00, + 0x00, 0x83, 0xf8, 0x7d, 0x72, 0xa2, 0x83, 0xbe, 0x88, 0x01, 0x01, 0x74, 0x1a, 0xc7, 0x86, 0x88, + 0x01, 0x01, 0x00, 0xc7, 0x86, 0x8a, 0x01, 0x01, 0x00, 0xa1, 0xd0, 0x54, 0x89, 0x86, 0x84, 0x01, + 0xa1, 0xd2, 0x54, 0x89, 0x86, 0x86, 0x01, 0x5f, 0x5e, 0x5a, 0x59, 0x58, 0xc3, 0x50, 0x51, 0x57, + 0x06, 0xfa, 0x8c, 0xd8, 0x8e, 0xc0, 0x2b, 0xc0, 0x8d, 0xbe, 0x72, 0x01, 0xb9, 0x1a, 0x00, 0xf3, + 0xab, 0xfb, 0x07, 0x5f, 0x59, 0x58, 0xc3, 0xfa, 0xf6, 0x06, 0x1f, 0x56, 0x80, 0x74, 0x4e, 0xc6, + 0x86, 0x6c, 0x01, 0x00, 0xc6, 0x86, 0x6e, 0x01, 0x01, 0xfe, 0x86, 0x70, 0x01, 0x8a, 0x46, 0x00, + 0xa2, 0x1f, 0x56, 0xc7, 0x06, 0x20, 0x56, 0x02, 0x00, 0xc7, 0x06, 0x22, 0x56, 0x01, 0x00, 0xe5, + 0x06, 0x83, 0xe0, 0x09, 0xe7, 0x06, 0x8b, 0xc8, 0xb8, 0xd6, 0x13, 0xe7, 0x02, 0xb8, 0x4e, 0x03, + 0xe7, 0x04, 0x83, 0xc9, 0x46, 0x8b, 0xc1, 0xe7, 0x06, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x0e, 0x02, + 0x00, 0x01, 0xbe, 0x15, 0x46, 0xe8, 0x32, 0xbc, 0xc6, 0x86, 0x5d, 0x02, 0x01, 0xfb, 0xc3, 0xfa, + 0xf6, 0x06, 0x1f, 0x56, 0x80, 0x74, 0x49, 0xc6, 0x86, 0x6d, 0x01, 0x00, 0xc6, 0x86, 0x6f, 0x01, + 0x01, 0xfe, 0x86, 0x71, 0x01, 0x8a, 0x46, 0x00, 0xa2, 0x1f, 0x56, 0xc7, 0x06, 0x20, 0x56, 0x0e, + 0x00, 0xc7, 0x06, 0x22, 0x56, 0x02, 0x00, 0xe5, 0x06, 0x83, 0xe0, 0x09, 0xe7, 0x06, 0x8b, 0xc8, + 0xb8, 0xf7, 0x03, 0xe7, 0x02, 0xb8, 0xd6, 0x13, 0xe7, 0x04, 0x83, 0xc9, 0x46, 0x8b, 0xc1, 0xe7, + 0x06, 0x8e, 0x46, 0x02, 0x26, 0x83, 0x0e, 0x02, 0x00, 0x01, 0xbe, 0x15, 0x46, 0xe8, 0xda, 0xbb, + 0xfb, 0xc3, 0xe5, 0x06, 0x83, 0xe0, 0x09, 0xe7, 0x06, 0xc3, 0xb8, 0x9d, 0x06, 0xe7, 0x02, 0xc7, + 0x06, 0x20, 0x56, 0x04, 0x00, 0xc3, 0xc7, 0x06, 0x20, 0x56, 0x06, 0x00, 0xc3, 0x90, 0xc7, 0x06, + 0x20, 0x56, 0x08, 0x00, 0xc3, 0x90, 0x53, 0xc7, 0x06, 0x20, 0x56, 0x0a, 0x00, 0x33, 0xdb, 0x8a, + 0x1e, 0x1f, 0x56, 0xd0, 0xe3, 0x8b, 0x9f, 0xe6, 0x54, 0x06, 0x8e, 0x47, 0x02, 0x26, 0x83, 0x26, + 0x02, 0x00, 0xfe, 0x07, 0xb8, 0x9d, 0x06, 0xe7, 0x02, 0x5b, 0xc3, 0x90, 0xe5, 0x06, 0x83, 0xe0, + 0x09, 0xe7, 0x06, 0xc7, 0x06, 0x20, 0x56, 0x0c, 0x00, 0xc6, 0x06, 0x1f, 0x56, 0x80, 0xc3, 0x90, + 0xe5, 0x06, 0x83, 0xe0, 0x09, 0xe7, 0x06, 0xc3, 0xb8, 0xf7, 0x03, 0xe7, 0x02, 0xc7, 0x06, 0x20, + 0x56, 0x10, 0x00, 0xc3, 0x53, 0xc7, 0x06, 0x20, 0x56, 0x12, 0x00, 0x33, 0xdb, 0x8a, 0x1e, 0x1f, + 0x56, 0xd0, 0xe3, 0x8b, 0x9f, 0xe6, 0x54, 0x06, 0x8e, 0x47, 0x02, 0x26, 0x83, 0x26, 0x02, 0x00, + 0xfe, 0x07, 0xb8, 0x9d, 0x06, 0xe7, 0x02, 0x5b, 0xc3, 0x90, 0xe5, 0x06, 0x83, 0xe0, 0x09, 0xe7, + 0x06, 0xc7, 0x06, 0x20, 0x56, 0x14, 0x00, 0xc6, 0x06, 0x1f, 0x56, 0x80, 0xc3, 0x90, 0xe5, 0x06, + 0x83, 0xe0, 0x09, 0xe7, 0x06, 0xc3, 0x4e, 0x6f, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x54, 0x78, 0x74, + 0x30, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, 0x12, 0x45, 0x23, 0x56, 0x34, + 0x00, 0x00, 0x00, 0x00, 0xcd, 0xab, 0xde, 0xbc, 0xef, 0xcd, 0x00, 0x00, 0x00, 0x00, 0x4e, 0x6f, + 0x74, 0x49, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x65, 0x64, 0x00, 0x54, 0x69, 0x6d, + 0x65, 0x72, 0x30, 0x00, 0x00, 0x54, 0x69, 0x6d, 0x65, 0x72, 0x31, 0x00, 0x00, 0x54, 0x65, 0x73, + 0x74, 0x31, 0x00, 0x00, 0x54, 0x65, 0x73, 0x74, 0x32, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x55, 0xf1, 0x4d, + 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x04, 0x09, 0x00, 0x00, 0x06, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, + 0xe0, 0x02, 0xc0, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, + 0x00, 0x02, 0x04, 0x01, 0x00, 0x00, 0x06, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0xe0, 0x03, 0xc0, 0x00, 0xff, 0xff, + 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x03, 0x06, 0x0b, 0x00, 0x00, + 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, + 0xe0, 0x04, 0xc0, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, + 0x00, 0x04, 0x08, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0b, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0xe0, 0x05, 0xc0, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x05, 0x06, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x08, 0x02, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0xe0, 0x06, 0xc0, 0x00, + 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x06, 0x06, 0x0b, + 0x00, 0x00, 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x12, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x08, 0x02, 0x26, 0x00, 0x00, + 0x00, 0x00, 0x3e, 0x00, 0xe0, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x30, 0x50, 0x20, 0x0c, 0x23, 0x30, 0x30, 0x30, 0x30, 0xf3, 0xf0, 0xf0, 0xf8, + 0xf9, 0xf6, 0x08, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x22, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x21, + 0x00, 0x00, 0x04, 0x21, 0x00, 0x00, 0x06, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x06, 0x2c, 0x00, 0x00, + 0x00, 0x00, 0x08, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x29, 0x20, 0x00, 0x08, 0x00, + 0x01, 0x00, 0x04, 0x06, 0x00, 0x00, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x00, + 0xe0, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x26, + 0x40, 0x25, 0x06, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x14, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0xe0, 0x00, 0xc0, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x40, 0x26, 0x06, 0x0b, 0x00, 0x00, + 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x00, + 0xe0, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, + 0x60, 0x27, 0x08, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, + 0xe0, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, + 0x60, 0x28, 0x04, 0x30, 0x00, 0x00, 0x06, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0xe0, 0x00, 0xc0, 0x00, 0xff, 0xff, + 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x30, 0x11, 0x04, 0x0c, 0x00, 0x01, + 0x04, 0x0e, 0x00, 0x02, 0x04, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x00, 0xe0, 0x00, + 0xc0, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x03, 0x12, + 0x04, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0xe0, 0x00, 0xc0, 0x00, 0xff, 0xff, + 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x30, 0x13, 0x00, 0x00, 0x00, 0x00, + 0x16, 0x00, 0xe0, 0x00, 0xc0, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x03, 0x14, 0x04, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0xe0, 0x00, + 0xc0, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x03, 0x15, + 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0xe0, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x60, 0x29, 0x08, 0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x08, 0x2e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x08, 0x02, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x2a, 0x00, 0x00, 0x02, 0x20, 0x80, 0x00, 0x00, 0x06, + 0x09, 0x00, 0x00, 0x00, 0x04, 0x03, 0x01, 0x80, 0x00, 0x00, 0x04, 0x02, 0x80, 0x00, 0x00, 0x08, + 0x0b, 0x00, 0x00, 0x00, 0x06, 0x02, 0x02, 0x80, 0x00, 0x00, 0x08, 0x0b, 0x00, 0x00, 0x00, 0x06, + 0x01, 0x26, 0x80, 0x00, 0x00, 0xff, 0x06, 0x03, 0x00, 0x00, 0x00, 0x04, 0x04, 0x00, 0x00, 0x00, + 0x06, 0x05, 0x00, 0x00, 0x00, 0x04, 0x06, 0x00, 0x00, 0x00, 0x04, 0x07, 0x00, 0x00, 0x00, 0x04, + 0x09, 0x00, 0x00, 0x00, 0x04, 0x04, 0x03, 0x00, 0x00, 0x00, 0x04, 0x04, 0x00, 0x00, 0x00, 0x06, + 0x05, 0x00, 0x00, 0x00, 0x04, 0x09, 0x00, 0x00, 0x00, 0x04, 0x03, 0x0c, 0x80, 0x00, 0x00, 0x04, + 0x0e, 0x80, 0x00, 0x00, 0x04, 0x21, 0x00, 0x00, 0x00, 0x04, 0x01, 0x0f, 0x80, 0x00, 0x00, 0x04, + 0x01, 0x0d, 0x80, 0x00, 0x00, 0x04, 0x04, 0x02, 0x80, 0x00, 0x00, 0x08, 0x22, 0x00, 0x00, 0x00, + 0xff, 0x23, 0x00, 0x00, 0x00, 0xff, 0x21, 0x00, 0x00, 0x00, 0x04, 0x01, 0x09, 0x00, 0x00, 0x00, + 0x04, 0x00, 0xa5, 0xa5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + +#endif /* OLTR_NO_HAWKEYE_MAC */ Property changes on: stable/3/sys/contrib/dev/oltr/trlldhm.c ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: stable/3/sys/contrib/dev/oltr/trlldmac.c =================================================================== --- stable/3/sys/contrib/dev/oltr/trlldmac.c (nonexistent) +++ stable/3/sys/contrib/dev/oltr/trlldmac.c (revision 44655) @@ -0,0 +1,1990 @@ +/* + ****************************** trlld.h *********************************** + * + * Copyright (c) 1997 + * OLICOM A/S + * Denmark + * + * All Rights Reserved + * + * This source file is subject to the terms and conditions of the + * OLICOM Software License Agreement which restricts the manner + * in which it may be used. + * + *--------------------------------------------------------------------------- + * + * Description: Olicom TMS-380 adapter microcode + * + *--------------------------------------------------------------------------- + */ + +#include "opt_oltr.h" + +#ifndef OLTR_NO_TMS_MAC + +unsigned char TRlldMacCode[] = { 0x52, 0x94, 0x02, 0x00, 0xba, 0x7a, 0x00, 0x00, 0xa0, 0x00, 0x01, 0xc8, 0xe2, 0x28, 0xd4, 0xdb, + 0x80, 0x00, 0x40, 0x00, 0x20, 0x00, 0x10, 0x00, 0x08, 0x00, 0x04, 0x00, 0x02, 0x00, 0x01, 0x00, + 0x00, 0x80, 0x00, 0x40, 0x00, 0x20, 0x00, 0x10, 0x00, 0x08, 0x00, 0x04, 0x00, 0x02, 0x00, 0x01, + 0xff, 0x00, 0x00, 0xff, 0xff, 0xf0, 0xf0, 0x00, 0x00, 0x0f, 0xff, 0xff, 0x7f, 0xff, 0x00, 0x03, + 0x00, 0x00, 0x00, 0xd4, 0xe7, 0xe7, 0xe7, 0xf2, 0xf2, 0xf8, 0x28, 0x43, 0x29, 0x20, 0x43, 0x4f, + 0x50, 0x59, 0x52, 0x49, 0x47, 0x48, 0x54, 0x20, 0x49, 0x42, 0x4d, 0x20, 0x31, 0x39, 0x38, 0x33, + 0x2c, 0x34, 0x2c, 0x35, 0x2c, 0x36, 0x28, 0x43, 0x29, 0x20, 0x43, 0x4f, 0x50, 0x59, 0x52, 0x49, + 0x47, 0x48, 0x54, 0x20, 0x54, 0x49, 0x20, 0x31, 0x39, 0x38, 0x33, 0x2d, 0x38, 0x39, 0x2c, 0x39, + 0x30, 0x2d, 0x39, 0x34, 0x00, 0x00, 0x7b, 0x63, 0xf6, 0xde, 0xf1, 0xcc, 0xed, 0x9c, 0xf7, 0xe2, + 0x00, 0x00, 0x00, 0xc4, 0xbd, 0x24, 0x06, 0x4a, 0x06, 0x50, 0x06, 0x4c, 0xda, 0x00, 0x06, 0x4e, + 0x00, 0x0f, 0x06, 0x32, 0x00, 0x01, 0x07, 0x50, 0x07, 0x58, 0x07, 0x52, 0xc2, 0xce, 0x07, 0x54, + 0x00, 0x0f, 0x07, 0x38, 0x00, 0x01, 0x00, 0xba, 0x00, 0xa0, 0x00, 0xbc, 0xf7, 0xf0, 0x00, 0xbe, + 0x00, 0x0f, 0x07, 0x5e, 0x07, 0x3a, 0x07, 0x62, 0x80, 0x40, 0x07, 0x64, 0xc7, 0xb2, 0x07, 0x66, + 0xc7, 0x94, 0x07, 0x68, 0xc5, 0x9e, 0x07, 0x98, 0x80, 0x00, 0x07, 0x78, 0x80, 0x00, 0x08, 0xe2, + 0x00, 0x04, 0x08, 0xe4, 0x00, 0x01, 0x08, 0xec, 0x00, 0x08, 0x08, 0xf6, 0x00, 0x0a, 0x08, 0xf8, + 0x00, 0x06, 0x09, 0x00, 0x00, 0x0c, 0x09, 0x02, 0x00, 0x04, 0x01, 0xae, 0x00, 0x00, 0x09, 0x1e, + 0x00, 0x00, 0x09, 0x66, 0x00, 0x00, 0x06, 0x0c, 0x00, 0x13, 0x06, 0x0a, 0x00, 0x20, 0x00, 0x00, + 0x00, 0xe0, 0xb3, 0x86, 0x00, 0xe0, 0xb2, 0xe6, 0x00, 0xe0, 0xb3, 0x86, 0x00, 0xe0, 0xb5, 0x02, + 0x00, 0xe0, 0xb6, 0x5e, 0x00, 0xe0, 0xb9, 0x3c, 0x00, 0xe0, 0xb4, 0x12, 0x00, 0xc0, 0xb4, 0x22, + 0x00, 0xe0, 0xb3, 0x86, 0x00, 0xe0, 0xb3, 0x86, 0x00, 0xc0, 0xb4, 0x74, 0x00, 0xe0, 0xb3, 0x86, + 0x00, 0xe0, 0xb3, 0x86, 0x00, 0xe0, 0xb3, 0x86, 0x00, 0xe0, 0xb3, 0x86, 0x00, 0xe0, 0xb3, 0x86, + 0x00, 0xc0, 0xbd, 0x4a, 0x00, 0xc0, 0xbd, 0xb4, 0x00, 0xc0, 0xbd, 0xf0, 0x00, 0xc0, 0xbe, 0x60, + 0x00, 0xc0, 0xbe, 0xe2, 0x00, 0xe0, 0xc0, 0x50, 0x00, 0xe0, 0xbf, 0xf6, 0x00, 0xe0, 0xc1, 0x52, + 0x00, 0xe0, 0xc0, 0xe8, 0x00, 0xe0, 0xba, 0x90, 0x00, 0xc0, 0xbb, 0x00, 0x00, 0xc0, 0xbb, 0x5a, + 0x00, 0xc0, 0xbb, 0x8c, 0x00, 0xc0, 0xba, 0xb4, 0x00, 0xc0, 0xb3, 0x80, 0x00, 0xc0, 0xb3, 0x80, + 0x3f, 0x00, 0x7f, 0x00, 0x5e, 0x00, 0x00, 0x30, 0x00, 0x28, 0x00, 0x43, 0xb6, 0xb6, 0xb6, 0xb6, + 0xb5, 0x1c, 0xb5, 0x14, 0xb5, 0x46, 0xb5, 0x46, 0xb5, 0x62, 0xb6, 0xb6, 0x40, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x20, 0x00, 0x08, 0x00, 0x80, 0x00, 0x08, 0x00, 0x01, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x0c, 0x00, 0x10, 0x00, 0x14, 0x10, 0x0e, 0x0c, 0x0c, + 0x0a, 0x0a, 0x0a, 0x0a, 0x00, 0x00, 0xa1, 0xc8, 0x00, 0x09, 0x08, 0x08, 0x00, 0x00, 0xa1, 0xd0, + 0x00, 0x11, 0x06, 0x06, 0x00, 0x00, 0xa1, 0xe0, 0x00, 0x21, 0x04, 0x04, 0x00, 0x00, 0xa2, 0x00, + 0x00, 0x41, 0x02, 0x02, 0x00, 0x00, 0xa2, 0x40, 0x00, 0x81, 0x00, 0x00, 0x00, 0x00, 0xa2, 0xc0, + 0x06, 0xd8, 0x07, 0x98, 0xd7, 0xa2, 0x07, 0x58, 0xc6, 0x56, 0x07, 0x58, 0xc5, 0x5c, 0x07, 0x58, + 0xc6, 0xc6, 0x07, 0x58, 0xc6, 0x2e, 0x07, 0x98, 0xd4, 0x7e, 0x07, 0x98, 0xd4, 0x76, 0x07, 0x78, + 0xce, 0xea, 0x07, 0x58, 0xc6, 0x8e, 0x07, 0x98, 0xd7, 0x5c, 0x07, 0x78, 0xcf, 0xbe, 0x07, 0x58, + 0xd4, 0x8e, 0x07, 0x58, 0xc6, 0x3e, 0x07, 0x58, 0xc6, 0x7c, 0x07, 0x58, 0xc7, 0x40, 0x07, 0x98, + 0xd8, 0xd2, 0x07, 0x98, 0xd4, 0xb2, 0x07, 0x78, 0xcf, 0x7e, 0x07, 0xb8, 0xd9, 0x38, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc8, 0x00, 0xce, 0x3e, 0xce, 0xf2, 0xd3, 0xfa, 0xca, 0xba, 0xca, 0xf2, + 0xcb, 0x10, 0xcb, 0x9a, 0xcb, 0xbe, 0xcb, 0xda, 0xcc, 0x52, 0xcc, 0x52, 0xcb, 0x86, 0xcc, 0xf0, + 0xcb, 0x40, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x0c, 0x00, 0x0f, 0x01, 0xfe, 0xff, 0x58, 0x00, + 0x0e, 0x00, 0xfe, 0xff, 0x00, 0x0e, 0x70, 0x00, 0x80, 0x40, 0x5e, 0x00, 0xc0, 0xa0, 0xff, 0xdf, + 0x18, 0x00, 0xe0, 0x00, 0x78, 0x00, 0x50, 0x00, 0x60, 0x00, 0x70, 0x00, 0x0c, 0x00, 0x00, 0x06, + 0x00, 0x00, 0xe3, 0x84, 0x07, 0xe6, 0x07, 0xf4, 0x00, 0x08, 0x00, 0x00, 0xe3, 0x8a, 0x07, 0xea, + 0x07, 0xf4, 0x00, 0x06, 0x00, 0x40, 0x0a, 0x00, 0x07, 0xe6, 0x07, 0xee, 0x00, 0x08, 0x00, 0x40, + 0x0a, 0x06, 0x07, 0xea, 0x07, 0xee, 0x00, 0x00, 0xc1, 0xe2, 0xd4, 0x8b, 0xff, 0xff, 0xd1, 0xd7, + 0xc5, 0xd9, 0xc3, 0xd4, 0x59, 0x3b, 0x09, 0x34, 0x05, 0xfc, 0x09, 0x6c, 0x06, 0xd8, 0x04, 0x06, + 0xea, 0x7a, 0x09, 0x30, 0x04, 0x48, 0x08, 0x80, 0x00, 0x06, 0x06, 0x0a, 0x0c, 0x0e, 0xdb, 0xa8, + 0xe8, 0x7c, 0xe8, 0xa4, 0xe9, 0x8a, 0xea, 0x8c, 0xea, 0xe6, 0xeb, 0x40, 0xeb, 0xf2, 0xdb, 0xa8, + 0xec, 0x74, 0xec, 0x04, 0xe8, 0x62, 0xec, 0x10, 0xec, 0x10, 0xed, 0x3a, 0xed, 0x44, 0xed, 0x4e, + 0xe5, 0x62, 0xe7, 0xea, 0xdb, 0x9e, 0xe5, 0xb4, 0xe6, 0x82, 0xe6, 0xf2, 0xe7, 0x6e, 0xe7, 0x92, + 0xdb, 0xf6, 0xdb, 0x9e, 0xe4, 0xd2, 0xe4, 0xb4, 0xe4, 0x6e, 0xdb, 0x9e, 0xe7, 0xf6, 0xdb, 0x9e, + 0x06, 0x72, 0xdf, 0xa2, 0x07, 0x08, 0x06, 0x72, 0xdf, 0x00, 0x01, 0xf4, 0x06, 0x72, 0xde, 0xe0, + 0x07, 0x08, 0x06, 0x7c, 0xe6, 0x5a, 0x00, 0x04, 0x06, 0x7c, 0xdf, 0x24, 0x00, 0x00, 0x06, 0x7c, + 0xe7, 0xd8, 0x00, 0xfa, 0x06, 0x86, 0xde, 0x70, 0x00, 0x05, 0x06, 0x90, 0xe8, 0x28, 0x00, 0x28, + 0x06, 0x90, 0xdf, 0xfc, 0x01, 0x04, 0x06, 0x90, 0x00, 0x00, 0x00, 0x02, 0x06, 0x90, 0xdf, 0x2c, + 0x02, 0xbc, 0x06, 0x9a, 0xdf, 0xb2, 0x05, 0xdc, 0x06, 0x9a, 0xdf, 0x56, 0x00, 0x64, 0x06, 0x9a, + 0xdf, 0xb6, 0x00, 0x14, 0x06, 0x9a, 0xe9, 0x1c, 0x06, 0x40, 0x06, 0x9a, 0xdf, 0xbe, 0x00, 0x64, + 0x00, 0x00, 0x07, 0x0a, 0x07, 0x0e, 0x07, 0x04, 0x06, 0xd8, 0x07, 0x00, 0x06, 0xf0, 0x06, 0xee, + 0x06, 0xec, 0x07, 0x0c, 0x06, 0xe6, 0x07, 0x18, 0x50, 0x00, 0x00, 0xcc, 0x00, 0x03, 0x84, 0x00, + 0xa8, 0x00, 0xa0, 0x00, 0x20, 0x00, 0x80, 0x00, 0x40, 0x00, 0x08, 0x00, 0x40, 0x00, 0x80, 0x00, + 0x40, 0x00, 0x10, 0x00, 0xf4, 0x40, 0xf3, 0x06, 0xf3, 0x20, 0xf3, 0x3a, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x09, 0x00, 0x09, 0xf3, 0xa8, 0xf3, 0x10, 0xf3, 0x26, 0xf3, 0x40, 0x01, 0x40, + 0x01, 0x42, 0x01, 0x42, 0x01, 0x42, 0x00, 0x00, 0x00, 0x7f, 0x00, 0xa0, 0x00, 0xff, 0x02, 0x10, + 0x02, 0x1f, 0x02, 0x30, 0x02, 0x3f, 0x02, 0x50, 0x02, 0x5f, 0x02, 0x70, 0x02, 0x7f, 0x02, 0x90, + 0x02, 0x9f, 0x02, 0xb0, 0x02, 0xbf, 0x02, 0xd0, 0x02, 0xdf, 0x02, 0xe1, 0x02, 0xff, 0x03, 0x01, + 0x03, 0x7f, 0x03, 0x81, 0x03, 0x8f, 0x03, 0x91, 0x03, 0x9f, 0x03, 0xa1, 0x03, 0xaf, 0x03, 0xb1, + 0x03, 0xbf, 0x03, 0xc1, 0x03, 0xcf, 0x03, 0xe1, 0x03, 0xff, 0x07, 0xc0, 0x07, 0xff, 0x0c, 0x00, + 0x0f, 0xff, 0x30, 0x00, 0x37, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xbc, 0x00, 0x07, 0x02, 0x5e, + 0x01, 0x00, 0xba, 0xff, 0xba, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0c, 0x01, 0x0a, + 0x01, 0x0e, 0x01, 0x10, 0x01, 0x14, 0x00, 0x00, 0x01, 0x12, 0xf8, 0x00, 0x01, 0x16, 0xff, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x0a, 0x01, 0x1c, 0x01, 0x82, 0x96, 0x66, 0x96, 0x66, 0x55, 0x55, + 0x00, 0x00, 0x01, 0x82, 0x8a, 0x2a, 0x8a, 0x2a, 0xc9, 0x18, 0xc9, 0x18, 0x01, 0x86, 0xa2, 0xaa, + 0xa0, 0x1e, 0x55, 0x55, 0x54, 0x1e, 0x01, 0x8a, 0x50, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, + 0x01, 0x8c, 0x50, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, 0x01, 0x8e, 0x50, 0x00, 0x00, 0x00, + 0xa8, 0x00, 0x00, 0x00, 0x01, 0x90, 0x50, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, 0x01, 0x92, + 0x50, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, 0x01, 0x94, 0x50, 0x00, 0x00, 0x00, 0xa8, 0x00, + 0x00, 0x00, 0x01, 0x96, 0x50, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, 0x01, 0x98, 0x50, 0x00, + 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, 0x01, 0x9a, 0x50, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, + 0x01, 0x9c, 0x55, 0x55, 0x7f, 0xc0, 0xaa, 0xaa, 0x7f, 0xc0, 0x00, 0x00, 0x01, 0xa2, 0x01, 0xa4, + 0x01, 0xa8, 0x01, 0xaa, 0x01, 0xae, 0x01, 0xb0, 0x01, 0xb2, 0x01, 0x80, 0x00, 0x00, 0x01, 0x88, + 0xff, 0x00, 0x01, 0x9e, 0x00, 0xff, 0x01, 0xa0, 0x80, 0x00, 0x01, 0xac, 0x80, 0x00, 0x00, 0x00, + 0x01, 0xa6, 0x80, 0x00, 0x00, 0x00, 0x01, 0x80, 0x01, 0xbc, 0x88, 0x00, 0x06, 0x00, 0xc8, 0x00, + 0x00, 0x00, 0x80, 0x00, 0x00, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x02, 0x00, 0x44, 0xf2, 0x50, + 0x00, 0x48, 0xf2, 0x56, 0x00, 0x50, 0xf2, 0x5c, 0x00, 0x60, 0xf2, 0x62, 0x00, 0x78, 0xf2, 0x68, + 0xef, 0xc8, 0xee, 0xd6, 0xe9, 0xfc, 0xee, 0xe8, 0x55, 0x14, 0x01, 0xa0, 0xee, 0xaa, 0xe9, 0x90, + 0xef, 0x04, 0xef, 0x5e, 0xee, 0xbe, 0xf0, 0x16, 0x00, 0x00, 0x00, 0x1e, 0xef, 0x04, 0xef, 0x50, + 0x41, 0x00, 0x41, 0x01, 0xef, 0x74, 0xea, 0x33, 0xee, 0xd6, 0xea, 0x08, 0xee, 0xaa, 0xe9, 0xc4, + 0xef, 0x14, 0xef, 0x20, 0xef, 0x74, 0xea, 0x2e, 0xf0, 0x20, 0x00, 0x00, 0xef, 0xf4, 0xee, 0xaa, + 0xe9, 0xba, 0xef, 0x14, 0xef, 0x20, 0xef, 0xf4, 0xf0, 0x20, 0x00, 0x00, 0xee, 0xaa, 0xe9, 0xb0, + 0xee, 0xca, 0xef, 0x08, 0xef, 0x20, 0xef, 0xf4, 0xee, 0xaa, 0xe9, 0xba, 0xef, 0x14, 0xef, 0x20, + 0xef, 0xf4, 0xf0, 0x20, 0x20, 0x00, 0xee, 0xe8, 0x55, 0x14, 0x01, 0xa0, 0xee, 0xd6, 0xea, 0x10, + 0xee, 0xaa, 0xe9, 0x90, 0xf0, 0x16, 0x55, 0x50, 0x00, 0x0c, 0xef, 0x04, 0xef, 0x50, 0x01, 0x00, + 0x00, 0x00, 0xef, 0x74, 0xea, 0x35, 0xee, 0xbe, 0xf0, 0x16, 0x55, 0x55, 0x00, 0x0c, 0xef, 0x14, + 0xef, 0x5e, 0xee, 0xbe, 0xf0, 0x16, 0xff, 0xff, 0x00, 0x08, 0xf0, 0x16, 0x10, 0x02, 0x00, 0x06, + 0xef, 0x04, 0xef, 0x50, 0x01, 0x00, 0x01, 0x01, 0xef, 0x74, 0xea, 0x40, 0xee, 0xbe, 0xf0, 0x16, + 0xc0, 0x00, 0x00, 0x08, 0xf0, 0x16, 0xff, 0xff, 0x00, 0x0a, 0xf0, 0x16, 0xff, 0xff, 0x00, 0x0c, + 0xf0, 0x16, 0x10, 0x0d, 0x00, 0x06, 0xef, 0x04, 0xef, 0x50, 0x01, 0x00, 0x01, 0x01, 0xef, 0x74, + 0xea, 0x34, 0xf0, 0x20, 0x20, 0x08, 0xee, 0xbe, 0xf0, 0x10, 0x01, 0x82, 0xc9, 0x02, 0xef, 0x04, + 0xef, 0x74, 0xea, 0x40, 0xf0, 0x20, 0x20, 0x34, 0xee, 0xbe, 0xf0, 0x16, 0x10, 0x00, 0x00, 0x06, + 0xef, 0x04, 0xf0, 0x84, 0xef, 0x74, 0xea, 0x38, 0xf0, 0x10, 0x01, 0x9c, 0x00, 0x40, 0xee, 0xd6, + 0xea, 0x10, 0xee, 0xe8, 0x00, 0xff, 0x07, 0x80, 0xf0, 0xe4, 0x00, 0x03, 0xf1, 0x24, 0xf1, 0x32, + 0xe9, 0xd2, 0xf0, 0xf6, 0x00, 0x00, 0xf1, 0x32, 0xe9, 0xdc, 0xf0, 0xf6, 0x00, 0x04, 0xf1, 0x32, + 0xe9, 0xe4, 0xf0, 0xf6, 0x00, 0x07, 0xf1, 0x32, 0xe9, 0xec, 0xf0, 0xe4, 0x00, 0x01, 0xf1, 0x32, + 0xe9, 0xf4, 0xf0, 0xf6, 0x00, 0x02, 0xf1, 0x32, 0xe9, 0xf4, 0xf0, 0xf6, 0x00, 0x06, 0xf1, 0x32, + 0xe9, 0xf4, 0xf0, 0xf6, 0x00, 0x05, 0xf1, 0x32, 0xe9, 0xf4, 0xf0, 0xe4, 0x00, 0x01, 0xf1, 0x08, + 0xf0, 0xe4, 0x00, 0x03, 0xf1, 0x16, 0xef, 0x20, 0xf0, 0xa4, 0xe9, 0x98, 0x00, 0x01, 0xf0, 0xa4, + 0xe9, 0xe5, 0x00, 0x02, 0xf0, 0xa4, 0xe9, 0xef, 0x00, 0x06, 0xf0, 0xa4, 0xe9, 0xfa, 0x00, 0x05, + 0xef, 0x74, 0xea, 0x34, 0xef, 0xf4, 0xee, 0xaa, 0xe9, 0x90, 0xef, 0x14, 0xf0, 0x84, 0xee, 0xca, + 0xef, 0x50, 0x01, 0x00, 0x80, 0x00, 0xef, 0x74, 0xea, 0x38, 0xee, 0xbe, 0xf0, 0xbc, 0xf0, 0x10, + 0x01, 0x80, 0x8e, 0x41, 0xef, 0x08, 0xef, 0x50, 0x01, 0x00, 0x1b, 0x01, 0xf0, 0xc4, 0xff, 0xe4, + 0xef, 0x74, 0xea, 0x3c, 0xf0, 0x7c, 0xee, 0xd6, 0xea, 0x16, 0xee, 0xca, 0xf0, 0x28, 0xee, 0xfa, + 0xe0, 0x00, 0xf0, 0x84, 0xef, 0x74, 0xea, 0x46, 0xee, 0xfa, 0xe8, 0x00, 0xef, 0x20, 0xef, 0x74, + 0xea, 0x45, 0xee, 0xfa, 0x08, 0x00, 0xf0, 0x84, 0xef, 0x74, 0xea, 0x46, 0xee, 0xfa, 0xf8, 0x00, + 0xef, 0x20, 0xef, 0x74, 0xea, 0x45, 0xf0, 0x10, 0x01, 0x80, 0x02, 0x00, 0xee, 0xfa, 0xe0, 0x00, + 0xef, 0x20, 0xef, 0x74, 0xea, 0x45, 0xf0, 0x10, 0x01, 0x84, 0x00, 0x00, 0xf0, 0x20, 0x00, 0x34, + 0xee, 0xfa, 0x00, 0x00, 0xf0, 0x84, 0xf0, 0x20, 0x60, 0x34, 0xf0, 0xcc, 0xf0, 0x10, 0x01, 0x84, + 0x00, 0x00, 0xef, 0x74, 0xea, 0x46, 0xf0, 0x10, 0x01, 0x82, 0xc8, 0x00, 0xee, 0xfa, 0xe0, 0x00, + 0xf0, 0x84, 0xee, 0xfa, 0x10, 0x00, 0xf0, 0x84, 0xf0, 0x20, 0x60, 0x34, 0xf0, 0x10, 0x01, 0x80, + 0x06, 0x00, 0xee, 0xfa, 0x00, 0x10, 0xf0, 0x36, 0xef, 0xf4, 0xf0, 0x10, 0x01, 0x84, 0x00, 0x00, + 0xf0, 0x20, 0x00, 0x34, 0xee, 0xaa, 0xe9, 0x90, 0xee, 0xd6, 0xea, 0x1c, 0xf0, 0x8e, 0xe9, 0x52, + 0xee, 0xbe, 0xee, 0xca, 0xef, 0x2e, 0xf0, 0x40, 0x00, 0x06, 0xc7, 0x00, 0xef, 0x5e, 0xf0, 0x9a, + 0xe0, 0x00, 0xee, 0xbe, 0xee, 0xca, 0xef, 0x2e, 0xd0, 0x40, 0x00, 0x06, 0xe0, 0x00, 0xef, 0x5e, + 0xf0, 0x9a, 0xc0, 0x00, 0xee, 0xbe, 0xee, 0xca, 0xef, 0x2e, 0x90, 0x40, 0x00, 0x06, 0xa0, 0x00, + 0xef, 0x5e, 0xf0, 0x9a, 0x80, 0x00, 0xee, 0xbe, 0xee, 0xca, 0xef, 0x2e, 0x50, 0x40, 0x00, 0x06, + 0x60, 0x00, 0xef, 0x5e, 0xf0, 0x9a, 0x40, 0x00, 0xee, 0xbe, 0xee, 0xca, 0xef, 0x2e, 0x10, 0x40, + 0x00, 0x06, 0x20, 0x00, 0xef, 0x5e, 0xf0, 0x9a, 0x00, 0x00, 0xf0, 0x8e, 0xe9, 0x52, 0xee, 0xbe, + 0xee, 0xca, 0xef, 0x2e, 0xd0, 0x40, 0x00, 0x06, 0xa6, 0x00, 0xef, 0x5e, 0xf0, 0x9a, 0xc0, 0x00, + 0xee, 0xbe, 0xee, 0xca, 0xef, 0x2e, 0x90, 0x40, 0x00, 0x06, 0xc0, 0x00, 0xef, 0x5e, 0xf0, 0x9a, + 0x80, 0x00, 0xee, 0xbe, 0xee, 0xca, 0xef, 0x2e, 0x50, 0x40, 0x00, 0x06, 0x40, 0x00, 0xef, 0x5e, + 0xf0, 0x9a, 0x40, 0x00, 0xee, 0xbe, 0xee, 0xca, 0xef, 0x2e, 0x70, 0x40, 0x00, 0x06, 0x60, 0x00, + 0xef, 0x5e, 0xf0, 0x9a, 0x60, 0x00, 0xf1, 0x3c, 0xe9, 0x50, 0xee, 0xd6, 0xea, 0x22, 0xee, 0xaa, + 0xe9, 0x90, 0xf0, 0x62, 0x55, 0x55, 0x00, 0x16, 0xef, 0x04, 0xef, 0x50, 0x00, 0x00, 0x00, 0x00, + 0xef, 0x74, 0xea, 0x4b, 0xef, 0xc8, 0xee, 0xd6, 0xea, 0x22, 0xf0, 0x16, 0x55, 0x55, 0x00, 0x16, + 0xee, 0xbe, 0xef, 0x04, 0xef, 0x5e, 0xee, 0xe8, 0x00, 0xff, 0x08, 0x00, 0xee, 0xe8, 0x00, 0xff, + 0x0c, 0x00, 0xee, 0xe8, 0x00, 0xff, 0x10, 0x00, 0xee, 0xe8, 0x00, 0xff, 0x14, 0x00, 0xee, 0xe8, + 0x00, 0xff, 0x18, 0x00, 0xee, 0xe8, 0x00, 0xff, 0x1c, 0x00, 0xee, 0xe8, 0x00, 0xff, 0x20, 0x00, + 0xee, 0xe8, 0x00, 0xff, 0x24, 0x00, 0xee, 0xe8, 0x00, 0xff, 0x28, 0x00, 0xee, 0xe8, 0x00, 0xff, + 0x2c, 0x00, 0xef, 0x90, 0xee, 0xbe, 0xee, 0xca, 0xef, 0x2e, 0x30, 0x40, 0x00, 0x06, 0x01, 0x00, + 0xef, 0x5e, 0xf0, 0x9a, 0x20, 0x00, 0xee, 0xbe, 0xee, 0xca, 0xef, 0x2e, 0x70, 0x40, 0x00, 0x06, + 0x43, 0x00, 0xef, 0x5e, 0xf0, 0x9a, 0x60, 0x00, 0xee, 0xbe, 0xee, 0xca, 0xef, 0x2e, 0xb0, 0x40, + 0x00, 0x06, 0x85, 0x00, 0xef, 0x5e, 0xf0, 0x9a, 0xa0, 0x00, 0xf0, 0x96, 0x01, 0x00, 0x01, 0x03, + 0x01, 0x01, 0x00, 0x00, 0x81, 0x00, 0x00, 0x1a, 0x10, 0x40, 0x00, 0x00, 0xa9, 0x98, 0x00, 0x0d, + 0x55, 0x55, 0x00, 0x00, 0xa9, 0xa4, 0x00, 0xaa, 0x82, 0x72, 0xa9, 0x4a, 0x5a, 0xa5, 0xe7, 0xda, + 0x09, 0x03, 0x9d, 0x11, 0x00, 0x00, 0x81, 0x00, 0x00, 0x04, 0x90, 0xd8, 0x10, 0x00, 0x00, 0x00, + 0x81, 0x00, 0x00, 0x04, 0x90, 0xd8, 0xb4, 0xd8, 0x00, 0x00, 0x81, 0x00, 0x00, 0x08, 0x90, 0xd8, + 0x16, 0x46, 0x40, 0x00, 0xb4, 0xd8, 0x00, 0x08, 0x00, 0x00, 0x80, 0x00, 0x00, 0x13, 0x10, 0x40, + 0x00, 0x16, 0x00, 0x00, 0x80, 0x00, 0x00, 0x10, 0x00, 0x15, 0x00, 0x00, 0x80, 0x00, 0x00, 0x0f, + 0x00, 0x15, 0x00, 0x00, 0x81, 0x00, 0x00, 0x0f, 0x00, 0x06, 0x00, 0x00, 0x80, 0x00, 0x00, 0x12, + 0x80, 0x0a, 0x9e, 0x40, 0xc8, 0x00, 0x00, 0x00, 0x80, 0x5e, 0x00, 0x0f, 0x80, 0x06, 0xfe, 0x40, + 0xcc, 0x00, 0x00, 0x00, 0x80, 0x04, 0x8e, 0x40, 0xc9, 0x00, 0x80, 0x04, 0x06, 0x00, 0xcc, 0x00, + 0x80, 0x04, 0x0a, 0x40, 0xc8, 0x00, 0x80, 0x0a, 0x8a, 0x40, 0xc8, 0x00, 0x00, 0x00, 0x80, 0x5e, + 0x00, 0x0f, 0x08, 0x0a, 0x1c, 0x80, 0x00, 0x0a, 0x1a, 0x1c, 0x80, 0x00, 0x0c, 0x1c, 0x80, 0x00, + 0x1a, 0x1c, 0x80, 0x00, 0x0e, 0x1a, 0x1c, 0x80, 0x00, 0x04, 0x80, 0x00, 0x02, 0x80, 0x00, 0x02, + 0x80, 0x00, 0x00, 0x00, 0xaa, 0x4e, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x00, 0xaa, 0x7a, 0x00, 0x4e, + 0x07, 0x58, 0xc5, 0x6a, 0xe0, 0x16, 0x08, 0xe2, 0x08, 0xec, 0x08, 0xf6, 0xe0, 0x16, 0x09, 0x00, + 0x09, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x08, 0xe2, 0x00, 0x00, 0x08, 0xec, 0x08, 0xf6, 0x09, 0x00, + 0x00, 0x00, 0x07, 0xb8, 0xd8, 0xee, 0x02, 0x80, 0x07, 0xb8, 0xd9, 0x0c, 0xff, 0x84, 0x07, 0xb8, + 0xd9, 0x2e, 0x07, 0xb8, 0xd9, 0xa8, 0xda, 0x88, 0xda, 0x7c, 0xda, 0xa2, 0xda, 0xa6, 0xda, 0x9e, + 0xdb, 0x86, 0xdb, 0x86, 0xdb, 0x86, 0xda, 0xa8, 0xda, 0xb2, 0xdb, 0x2e, 0xdb, 0x78, 0x00, 0x00, + 0xaa, 0xc8, 0x00, 0x09, 0xdb, 0x86, 0x00, 0x00, 0xaa, 0xd0, 0x02, 0xb0, 0x00, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x01, 0x08, 0x08, 0x05, 0x08, 0x08, 0x08, 0x00, 0x00, 0x02, + 0x04, 0x04, 0x04, 0x04, 0x00, 0x08, 0x0a, 0x00, 0x00, 0x0c, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x41, 0x04, 0x0b, 0x06, 0xc2, 0x08, 0xe6, 0x00, 0xe7, 0x00, 0x06, 0x04, 0x07, 0x04, 0x03, 0x04, + 0x04, 0x06, 0x05, 0x04, 0x88, 0x04, 0x00, 0x03, 0x00, 0x1c, 0x0c, 0x00, 0x80, 0x00, 0xe3, 0xfc, + 0xe4, 0x04, 0xe4, 0x48, 0xe4, 0x08, 0xe4, 0x14, 0xe4, 0x1a, 0xe4, 0x3e, 0xe4, 0x0e, 0xe4, 0x5c, + 0x06, 0x00, 0x00, 0x00, 0x07, 0x06, 0x0e, 0x14, 0x14, 0x1e, 0x2a, 0x4c, 0x38, 0x7c, 0x3e, 0x78, + 0x43, 0x92, 0x58, 0x9c, 0x4d, 0xb2, 0x2f, 0x64, 0x1d, 0x34, 0x6c, 0xd0, 0x23, 0x3e, 0x1d, 0x2a, + 0x65, 0xc0, 0x72, 0xe0, 0x78, 0xee, 0x7f, 0xfc, 0x01, 0x32, 0x57, 0x01, 0x11, 0x32, 0x51, 0x81, + 0x56, 0x02, 0x55, 0x03, 0x11, 0x54, 0x81, 0x56, 0x02, 0x55, 0x02, 0x54, 0x81, 0x56, 0x76, 0x01, + 0x34, 0x02, 0x55, 0x02, 0x54, 0x81, 0x58, 0x02, 0x55, 0x02, 0x54, 0x81, 0x58, 0x02, 0x12, 0x11, + 0x52, 0x02, 0x83, 0x58, 0x05, 0x52, 0x04, 0x81, 0x58, 0x05, 0x52, 0x03, 0x15, 0x5c, 0x5b, 0x53, + 0x87, 0x52, 0x03, 0x11, 0x51, 0x41, 0x51, 0x78, 0x11, 0x34, 0x11, 0x81, 0x31, 0x20, 0x57, 0x54, + 0x53, 0x01, 0x12, 0x5a, 0x51, 0x81, 0x31, 0x20, 0x57, 0x5b, 0x5a, 0x01, 0x11, 0x01, 0x11, 0x51, + 0x81, 0x31, 0x20, 0x57, 0x01, 0x15, 0x01, 0x13, 0x01, 0x11, 0x11, 0x11, 0x51, 0x81, 0x58, 0x05, + 0x52, 0x02, 0x54, 0x5b, 0x81, 0x5d, 0x05, 0x52, 0x02, 0x54, 0x81, 0x58, 0x02, 0x50, 0x03, 0x13, + 0x81, 0x58, 0x02, 0x50, 0x03, 0x11, 0x54, 0x81, 0x5d, 0x72, 0x03, 0x50, 0x03, 0x13, 0x01, 0x13, + 0x54, 0x40, 0x00, 0x0e, 0x06, 0x20, 0x06, 0x56, 0xe5, 0x2a, 0x00, 0x24, 0x10, 0x02, 0x00, 0x16, + 0x00, 0x02, 0x04, 0x01, 0x07, 0x08, 0xe5, 0x2a, 0x00, 0x20, 0x10, 0x03, 0x00, 0x12, 0x00, 0x03, + 0xe4, 0x78, 0x8e, 0x14, 0x00, 0x20, 0x10, 0x04, 0x00, 0x12, 0x00, 0x04, 0xdb, 0xc0, 0x00, 0x20, + 0xe0, 0x05, 0x00, 0x12, 0x00, 0x05, 0xdb, 0xc0, 0x00, 0x20, 0xe0, 0x06, 0x00, 0x12, 0x00, 0x06, + 0xe7, 0x22, 0x00, 0x12, 0xe0, 0x01, 0x09, 0x6c, 0x06, 0xcc, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, + 0x06, 0x30, 0xe6, 0x42, 0x05, 0xf0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0xe2, + 0x00, 0x08, 0xff, 0x26, 0x05, 0xdc, 0xe7, 0xae, 0x00, 0x3e, 0xe0, 0x00, 0xc0, 0x00, 0x00, 0x00, + 0x00, 0x02, 0x00, 0x30, 0x50, 0x20, 0x0c, 0x23, 0x05, 0xfc, 0x06, 0x52, 0x06, 0x56, 0x00, 0x00, + 0x81, 0x00, 0x00, 0x16, 0xe0, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x08, 0x40, 0x2a, + 0x04, 0x2a, 0x06, 0x56, 0x00, 0x26, 0xec, 0x71, 0x06, 0x2b, 0x09, 0x72, 0x00, 0x22, 0x00, 0x24, + 0xec, 0x87, 0x0c, 0x23, 0x05, 0xfc, 0x08, 0x28, 0x09, 0x34, 0x08, 0x29, 0x07, 0x58, 0x07, 0x78, + 0x07, 0x98, 0x00, 0x23, 0x00, 0x2a, 0xec, 0x95, 0x04, 0x06, 0x06, 0xf0, 0x04, 0x07, 0x06, 0xee, + 0x00, 0x24, 0xdb, 0xc0, 0x00, 0x34, 0xe0, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x26, + 0x40, 0x25, 0xdb, 0xc0, 0x00, 0x20, 0xe0, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x12, + 0x40, 0x26, 0xdb, 0xc0, 0x00, 0x1a, 0xe0, 0x00, 0x00, 0x0c, 0x60, 0x27, 0x08, 0x0a, 0x06, 0xe6, + 0xdb, 0xc0, 0x00, 0x24, 0xe0, 0x00, 0x00, 0x16, 0x60, 0x28, 0x04, 0x30, 0x07, 0x06, 0xdc, 0x16, + 0x81, 0x00, 0x00, 0x30, 0xe0, 0x00, 0x00, 0x22, 0x60, 0x29, 0x08, 0x2d, 0x07, 0x1c, 0x08, 0x2e, + 0x07, 0x22, 0x00, 0x00, 0x02, 0x08, 0x01, 0x06, 0x06, 0x14, 0x08, 0x18, 0x0c, 0x20, 0x0e, 0x26, + 0x0f, 0x30, 0x11, 0x34, 0x12, 0x3e, 0x14, 0x42, 0x16, 0x46, 0x0a, 0x1c, 0x18, 0x4a, 0x03, 0x13, + 0x83, 0x11, 0x11, 0x01, 0x81, 0x11, 0x81, 0x12, 0x01, 0x13, 0x83, 0x52, 0x85, 0x81, 0x11, 0x85, + 0x81, 0x12, 0x81, 0x12, 0x81, 0x19, 0x85, 0x60, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x08, 0x09, 0x6c, + 0x00, 0x00, 0x06, 0x30, 0xec, 0xfc, 0x06, 0x54, 0x06, 0x50, 0x02, 0x38, 0x04, 0x21, 0x09, 0x1e, + 0x06, 0x0b, 0x06, 0xd8, 0x08, 0x02, 0x06, 0xdc, 0xc0, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x41, + 0x00, 0x41, 0xae, 0x14, 0x00, 0x00, 0x81, 0x00, 0x04, 0x09, 0x07, 0x0c, 0x00, 0x41, 0x00, 0x41, + 0x02, 0x14, 0x00, 0x00, 0x81, 0x00, 0x06, 0x0b, 0x06, 0xd8, 0x06, 0x2c, 0x09, 0x76, 0x14, 0x22, + 0x09, 0x3a, 0x00, 0x41, 0x00, 0x41, 0x02, 0x54, 0x00, 0x00, 0x81, 0x00, 0x06, 0xd8, 0x84, 0x00, + 0x48, 0x00, 0xff, 0xfc, 0x00, 0x09, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0xad, 0x80, + 0x02, 0x81, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x00, 0x06, 0x44, 0x54, 0x68, 0x69, 0x73, 0x20, 0x63, + 0x6f, 0x64, 0x65, 0x20, 0x69, 0x73, 0x20, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x20, + 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x4f, 0x6e, + 0x6c, 0x79, 0x2c, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x73, 0x20, 0x72, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x2e, 0x01, 0x60, 0x01, 0x42, 0x08, 0x00, 0x16, 0x08, + 0x03, 0xb0, 0x04, 0xe0, 0x00, 0x00, 0x01, 0x20, 0x00, 0x00, 0xff, 0xff, 0x13, 0xfc, 0x03, 0x80, + 0x07, 0xa0, 0x01, 0x42, 0x08, 0x00, 0x07, 0x20, 0x00, 0x00, 0x04, 0xe0, 0x01, 0x00, 0x07, 0x8b, + 0x3d, 0x00, 0x01, 0x60, 0x01, 0x42, 0x00, 0x80, 0x13, 0x09, 0x07, 0x8b, 0x2d, 0x00, 0xc0, 0x20, + 0x01, 0x4e, 0x02, 0x80, 0x0f, 0x41, 0x11, 0x02, 0x07, 0x8b, 0x3d, 0x00, 0xc8, 0x0b, 0x01, 0x4a, + 0x02, 0x00, 0xa0, 0x00, 0x09, 0xa0, 0xc8, 0x00, 0x01, 0x66, 0x02, 0xe0, 0x00, 0xa0, 0x07, 0xa0, + 0x01, 0x04, 0x00, 0x20, 0x01, 0xa0, 0x01, 0x40, 0xfe, 0x00, 0x48, 0x20, 0xe0, 0x2a, 0x01, 0x42, + 0x04, 0xe0, 0x01, 0x02, 0x04, 0xe0, 0x09, 0x60, 0x04, 0xe0, 0x01, 0x82, 0x01, 0x60, 0x01, 0x1c, + 0x00, 0x04, 0x16, 0x03, 0x01, 0xe0, 0x01, 0x40, 0x0c, 0x00, 0x06, 0xa0, 0xb1, 0xbc, 0x07, 0xa0, + 0x01, 0x04, 0x00, 0x2d, 0xc2, 0x20, 0xe0, 0x00, 0x02, 0x88, 0xe2, 0x28, 0x16, 0x14, 0x07, 0xa0, + 0x01, 0x04, 0x00, 0x2e, 0x01, 0x60, 0x01, 0x42, 0x03, 0x00, 0x16, 0x0d, 0x07, 0xa0, 0x01, 0x04, + 0x00, 0x21, 0x07, 0x88, 0xb0, 0x00, 0x07, 0x89, 0xff, 0xfe, 0x09, 0xa8, 0x09, 0xa9, 0x07, 0x8a, + 0xe0, 0x02, 0x06, 0xa0, 0xf4, 0x42, 0x10, 0x56, 0x07, 0x88, 0xa0, 0x00, 0x07, 0x89, 0xaf, 0xfe, + 0x09, 0xa8, 0x09, 0xa9, 0x07, 0x8a, 0xe0, 0x78, 0x06, 0xa0, 0xf4, 0x42, 0x10, 0x4b, 0x05, 0xa0, + 0x01, 0x04, 0x07, 0x88, 0x00, 0x08, 0x07, 0x89, 0x00, 0x7a, 0x03, 0x00, 0x00, 0x01, 0x06, 0xa0, + 0xf4, 0x7c, 0x10, 0x40, 0x06, 0xa0, 0xb1, 0xbc, 0x02, 0xe0, 0x03, 0xf4, 0x07, 0x88, 0x00, 0xa0, + 0x07, 0x89, 0x00, 0xfe, 0x06, 0xa0, 0xf4, 0x7c, 0x10, 0x35, 0x02, 0xe0, 0x00, 0xa0, 0x04, 0xe0, + 0x01, 0x7e, 0x04, 0xc8, 0x02, 0x09, 0x03, 0xf2, 0x62, 0x48, 0xc1, 0xe0, 0x01, 0x40, 0x01, 0xa0, + 0x01, 0x40, 0x04, 0x00, 0xce, 0x18, 0x06, 0x09, 0x16, 0xfd, 0x01, 0xa0, 0x01, 0x40, 0x40, 0x00, + 0xc8, 0x07, 0x01, 0x40, 0x07, 0x88, 0x03, 0xf4, 0x07, 0x89, 0x3f, 0xfe, 0x06, 0xa0, 0xf4, 0x7c, + 0x10, 0x19, 0x02, 0xe0, 0x00, 0xa0, 0x06, 0xa0, 0xf5, 0xa4, 0x10, 0x14, 0xc8, 0x08, 0x04, 0x44, + 0xc8, 0x09, 0x04, 0x46, 0x06, 0xa0, 0xf4, 0xd2, 0x10, 0x0d, 0x07, 0x81, 0xe0, 0x7c, 0xc0, 0xb1, + 0x13, 0x26, 0xc8, 0x01, 0x00, 0xe0, 0x05, 0xa0, 0x01, 0x04, 0x06, 0x92, 0x10, 0x03, 0xc0, 0x60, + 0x00, 0xe0, 0x10, 0xf5, 0x01, 0xe0, 0x01, 0x04, 0x00, 0x10, 0x03, 0xb0, 0x10, 0xff, 0x01, 0xa0, + 0x01, 0x04, 0x80, 0x00, 0x03, 0x80, 0x07, 0x80, 0x00, 0xa0, 0x04, 0xc2, 0xcc, 0x80, 0x07, 0x81, + 0xb1, 0xaa, 0x02, 0x82, 0x00, 0x1e, 0x16, 0x02, 0x07, 0x81, 0xb1, 0xb4, 0xc4, 0x81, 0x8c, 0x81, + 0x16, 0xe9, 0x02, 0x82, 0x00, 0x7c, 0x16, 0xf2, 0x03, 0x00, 0x00, 0x0f, 0x04, 0x5b, 0x07, 0x81, + 0xe1, 0x08, 0x07, 0x82, 0x00, 0x04, 0x04, 0xe0, 0x01, 0x80, 0x04, 0xe0, 0x01, 0x82, 0xc4, 0x91, + 0x8c, 0xb1, 0x16, 0xd8, 0x02, 0x82, 0x00, 0x7c, 0x16, 0xfa, 0xc8, 0x20, 0xe0, 0x04, 0x01, 0x82, + 0xe8, 0x20, 0xe0, 0x0c, 0x01, 0x82, 0xc8, 0x20, 0xe0, 0x10, 0x01, 0x80, 0x07, 0x81, 0xe0, 0x86, + 0xc0, 0xb1, 0x13, 0x07, 0xc4, 0xb1, 0x10, 0xfc, 0x07, 0xa0, 0x01, 0x04, 0x00, 0x2e, 0x04, 0x60, + 0xb1, 0xaa, 0x07, 0x81, 0xe0, 0x34, 0x07, 0x82, 0x05, 0xfc, 0x07, 0x83, 0x00, 0x0a, 0xcc, 0xb1, + 0x06, 0x43, 0x16, 0xfd, 0x02, 0x02, 0x06, 0x00, 0xd0, 0x60, 0x01, 0x4e, 0x13, 0xed, 0x02, 0x21, + 0xf7, 0x00, 0x02, 0x21, 0xc0, 0x00, 0xdc, 0x81, 0xd0, 0x60, 0x01, 0x4f, 0xc0, 0xc1, 0x09, 0x41, + 0x02, 0x21, 0xf0, 0x00, 0xdc, 0x81, 0x02, 0x43, 0x0f, 0x00, 0x02, 0x23, 0xf0, 0x00, 0xdc, 0x83, + 0x02, 0x01, 0x0c, 0x32, 0xc0, 0xa0, 0x04, 0x44, 0xc0, 0xe0, 0x04, 0x46, 0xc1, 0x03, 0x61, 0x02, + 0x05, 0x84, 0xc8, 0x04, 0x04, 0x48, 0xc1, 0x03, 0x05, 0x84, 0xa1, 0x04, 0xa1, 0x01, 0xc8, 0x04, + 0x0c, 0x30, 0xc1, 0x03, 0x05, 0x84, 0x04, 0xf1, 0x06, 0x04, 0x16, 0xfd, 0x02, 0x08, 0xb0, 0x00, + 0x09, 0xa8, 0xc2, 0x60, 0x0c, 0x30, 0x02, 0x29, 0x03, 0xff, 0x09, 0xa9, 0x02, 0x29, 0x00, 0x40, + 0x07, 0x80, 0xa0, 0x00, 0x09, 0xa0, 0x07, 0x8a, 0xaf, 0xfe, 0x02, 0x2a, 0x03, 0xff, 0x09, 0xaa, + 0x02, 0x01, 0x0c, 0x32, 0x02, 0x05, 0x00, 0x00, 0xc1, 0x03, 0x05, 0x84, 0x07, 0x11, 0x05, 0xc1, + 0x05, 0x85, 0x06, 0x04, 0x13, 0x0b, 0x80, 0x85, 0x1a, 0xf9, 0x80, 0x05, 0x1a, 0xf8, 0x82, 0x85, + 0x1a, 0xf5, 0x82, 0x05, 0x1a, 0xf4, 0x82, 0x45, 0x1a, 0xf1, 0x10, 0xf1, 0x2d, 0x20, 0x00, 0x02, + 0x01, 0x60, 0x01, 0x40, 0x40, 0x00, 0x16, 0x06, 0x07, 0x8a, 0x08, 0x00, 0x01, 0xa0, 0x01, 0x40, + 0x40, 0x00, 0x10, 0x48, 0x01, 0x60, 0x01, 0x42, 0x80, 0x00, 0x16, 0x06, 0x07, 0x8a, 0x10, 0x00, + 0x01, 0xa0, 0x01, 0x42, 0x80, 0x00, 0x10, 0x3e, 0x01, 0x60, 0x01, 0x02, 0x10, 0x00, 0x16, 0x0a, + 0x01, 0x60, 0x01, 0x00, 0x04, 0x00, 0x16, 0x06, 0x07, 0x8a, 0x80, 0x00, 0x01, 0xa0, 0x01, 0x02, + 0x10, 0x00, 0x10, 0x30, 0x01, 0x60, 0x01, 0x02, 0x08, 0x00, 0x16, 0x0a, 0x01, 0x60, 0x01, 0x00, + 0x04, 0x00, 0x16, 0x06, 0x01, 0xa0, 0x01, 0x02, 0x08, 0x00, 0x02, 0x0d, 0x00, 0x01, 0x10, 0x0d, + 0x01, 0x60, 0x01, 0x02, 0x04, 0x00, 0x16, 0x16, 0x01, 0x60, 0x01, 0x00, 0x08, 0x00, 0x16, 0x12, + 0x01, 0xa0, 0x01, 0x02, 0x04, 0x00, 0x02, 0x0d, 0x00, 0x02, 0xc3, 0xa0, 0x01, 0x0e, 0xc3, 0xe0, + 0x01, 0x10, 0x07, 0x8a, 0x20, 0x00, 0x01, 0x60, 0x01, 0x00, 0x80, 0x00, 0x13, 0x0b, 0x07, 0x8a, + 0x40, 0x00, 0x10, 0x08, 0x07, 0x8a, 0x00, 0x04, 0x10, 0x05, 0x07, 0x8a, 0x00, 0x02, 0x10, 0x02, + 0x07, 0x8a, 0x00, 0x08, 0x03, 0x00, 0x00, 0x00, 0x04, 0xe0, 0x01, 0x82, 0x07, 0x8b, 0x05, 0xe0, + 0xce, 0xca, 0xce, 0xcd, 0xce, 0xce, 0xc6, 0xcf, 0xc3, 0x20, 0x07, 0x58, 0x23, 0x20, 0xe0, 0x04, + 0x13, 0x12, 0x07, 0x8b, 0xff, 0x18, 0x02, 0x8a, 0x80, 0x00, 0x13, 0x0a, 0x05, 0x8b, 0xa2, 0xcd, + 0x02, 0x8a, 0x40, 0x00, 0x13, 0x05, 0x02, 0x8a, 0x20, 0x00, 0x13, 0x02, 0x07, 0x8b, 0xff, 0x1d, + 0xc8, 0x0b, 0x01, 0x04, 0x10, 0x0d, 0xd3, 0x20, 0x01, 0x05, 0x11, 0xfd, 0xd8, 0x20, 0x07, 0xdf, + 0x01, 0x17, 0x07, 0x8b, 0xff, 0x80, 0xc8, 0x0b, 0x01, 0x04, 0xe8, 0x20, 0xe0, 0x0a, 0x01, 0x00, + 0xc2, 0xe0, 0x01, 0x04, 0x22, 0xe0, 0xe1, 0x86, 0x16, 0xfb, 0x02, 0xe0, 0x00, 0xa0, 0x04, 0xe0, + 0x01, 0x82, 0xe8, 0x20, 0xe0, 0x0a, 0x01, 0x00, 0xc2, 0xe0, 0x01, 0x00, 0x22, 0xe0, 0xe0, 0x06, + 0x13, 0xf8, 0x01, 0xa0, 0x01, 0x40, 0xf6, 0x00, 0x04, 0x60, 0xb0, 0x90, 0x03, 0x00, 0x00, 0x02, + 0x07, 0xa0, 0x01, 0x02, 0xdf, 0xff, 0x03, 0x90, 0xff, 0xff, 0x03, 0x80, 0x03, 0x00, 0x00, 0x02, + 0x07, 0x09, 0xc2, 0xa0, 0x01, 0x04, 0x01, 0x8a, 0x00, 0x80, 0x52, 0x4a, 0xd2, 0x89, 0xc8, 0x0a, + 0x01, 0x04, 0xd2, 0xa0, 0x01, 0x04, 0x16, 0xf9, 0x05, 0x49, 0x01, 0x89, 0x80, 0x00, 0x01, 0x49, + 0x40, 0x00, 0x13, 0x0e, 0xf8, 0x09, 0x07, 0x3a, 0xc2, 0x60, 0x07, 0x36, 0x16, 0x03, 0x03, 0x90, + 0xff, 0xff, 0x03, 0x80, 0x04, 0xe0, 0x07, 0x36, 0x04, 0x54, 0x03, 0x90, 0xff, 0xff, 0x03, 0x80, + 0x22, 0x60, 0xe1, 0x86, 0x13, 0xc2, 0x04, 0xe0, 0x01, 0x82, 0x04, 0x60, 0xb3, 0xe0, 0x03, 0x00, + 0x00, 0x02, 0x07, 0xa0, 0x09, 0x62, 0x03, 0xe8, 0x04, 0xc9, 0xc1, 0xa0, 0x06, 0x34, 0x16, 0x04, + 0x06, 0xa0, 0xc2, 0xae, 0x04, 0xe0, 0x09, 0x20, 0x07, 0x86, 0x05, 0xe8, 0x01, 0xa0, 0x01, 0x40, + 0x80, 0x00, 0xc2, 0x20, 0x01, 0x84, 0x48, 0x20, 0xe0, 0x08, 0x01, 0x84, 0x22, 0x20, 0xe0, 0x08, + 0x13, 0x08, 0x01, 0x60, 0x01, 0xae, 0x00, 0x01, 0x16, 0x04, 0x01, 0xe0, 0x06, 0x34, 0x80, 0x00, + 0x10, 0x06, 0xc2, 0x20, 0x09, 0x32, 0x13, 0x06, 0x01, 0xe0, 0x06, 0x34, 0x08, 0x00, 0x04, 0xe0, + 0x06, 0x30, 0x07, 0x09, 0x05, 0xa0, 0x05, 0xee, 0x06, 0x20, 0x05, 0xec, 0x16, 0x02, 0xc2, 0x16, + 0x16, 0x03, 0xc2, 0x49, 0x16, 0x12, 0x03, 0x80, 0xc5, 0x98, 0xc1, 0xe8, 0x00, 0x02, 0xe9, 0xe0, + 0xe0, 0x14, 0x00, 0x04, 0x04, 0xd7, 0x02, 0x27, 0x00, 0x08, 0x06, 0xa0, 0xc2, 0x44, 0xc2, 0x16, + 0x13, 0x04, 0xc8, 0x28, 0x00, 0x08, 0x05, 0xec, 0x13, 0xef, 0x04, 0x54, 0x03, 0x00, 0x00, 0x02, + 0xc1, 0xe0, 0x01, 0x86, 0x02, 0x47, 0x00, 0x0e, 0xc2, 0xa7, 0xe1, 0x90, 0x04, 0x5a, 0x07, 0x8a, + 0xa0, 0x00, 0xc8, 0x0a, 0x01, 0x86, 0xa1, 0xc7, 0x02, 0x27, 0xe1, 0x98, 0xe8, 0x37, 0x06, 0x34, + 0xe8, 0x17, 0x06, 0xd2, 0x04, 0xe0, 0x06, 0x30, 0x04, 0x60, 0xb9, 0xc0, 0xe8, 0x0a, 0x06, 0xd2, + 0x01, 0xe0, 0x06, 0x34, 0x08, 0x00, 0x04, 0xe0, 0x06, 0x30, 0xe0, 0x20, 0xe0, 0x18, 0x04, 0x5b, + 0x05, 0xa0, 0x09, 0x20, 0x88, 0x20, 0x09, 0x20, 0xe0, 0x16, 0x1a, 0xe5, 0x04, 0xe0, 0x09, 0x20, + 0x06, 0xa0, 0xe1, 0x18, 0x03, 0x80, 0x05, 0xa0, 0x09, 0x32, 0x03, 0x80, 0xc3, 0x01, 0x13, 0xfb, + 0x01, 0x60, 0x09, 0x6a, 0x00, 0x01, 0x13, 0x78, 0x05, 0xa0, 0x09, 0x32, 0x10, 0x75, 0xc0, 0x41, + 0x13, 0x06, 0xc8, 0x01, 0x01, 0x6c, 0xc2, 0xe0, 0xfc, 0x02, 0x11, 0x01, 0x10, 0x7b, 0x01, 0x60, + 0x01, 0x9c, 0x00, 0x40, 0x16, 0x79, 0xd8, 0x20, 0x09, 0x2f, 0x01, 0x83, 0xc0, 0x41, 0x13, 0x04, + 0xc8, 0x01, 0x01, 0x8a, 0xc8, 0x01, 0x09, 0x18, 0x07, 0x86, 0x00, 0x43, 0xc8, 0x06, 0x01, 0x6c, + 0x02, 0x07, 0xfc, 0x02, 0xc2, 0x17, 0x04, 0x60, 0xb6, 0xfa, 0x04, 0xe0, 0x09, 0x18, 0x61, 0xc7, + 0x07, 0x08, 0x01, 0x60, 0xfc, 0x06, 0x00, 0x40, 0x13, 0x02, 0x02, 0x08, 0x00, 0x01, 0x10, 0x09, + 0xc2, 0x4c, 0xc3, 0x20, 0xfc, 0x00, 0x13, 0x2a, 0xc8, 0x0c, 0x01, 0x6c, 0xc2, 0xe0, 0xfc, 0x02, + 0x11, 0x1b, 0x01, 0x4b, 0x01, 0x00, 0x16, 0xf4, 0x22, 0xc8, 0x13, 0x12, 0x01, 0xcb, 0x40, 0x00, + 0xc8, 0x0b, 0xfc, 0x02, 0x10, 0x0d, 0xc1, 0xe0, 0x09, 0x18, 0xc3, 0x01, 0x13, 0x21, 0xc2, 0x4c, + 0x13, 0x15, 0xc8, 0x0c, 0x01, 0x6c, 0xc2, 0xe0, 0xfc, 0x02, 0x11, 0x06, 0x81, 0xcc, 0x13, 0xd5, + 0xc2, 0x4c, 0xc3, 0x20, 0xfc, 0x00, 0x10, 0xf4, 0xc8, 0x09, 0x01, 0x6c, 0xc2, 0xe0, 0xfc, 0x02, + 0x16, 0x1e, 0x07, 0xa0, 0xfc, 0x02, 0x80, 0x00, 0xc3, 0x09, 0x10, 0x19, 0xc8, 0x09, 0x01, 0x6c, + 0xc2, 0xe0, 0xfc, 0x02, 0x16, 0x05, 0x07, 0xa0, 0xfc, 0x02, 0x80, 0x00, 0xc3, 0x09, 0x10, 0x0f, + 0xc2, 0xe0, 0x0c, 0x02, 0x11, 0x01, 0x10, 0x1e, 0xd8, 0x20, 0xe2, 0x00, 0x01, 0x83, 0x00, 0x00, + 0xb6, 0x44, 0x00, 0x09, 0x09, 0x8b, 0x00, 0x00, 0xb6, 0x4c, 0x0b, 0x36, 0x07, 0xa0, 0x01, 0x8a, + 0x00, 0x43, 0x10, 0x13, 0xc8, 0x0c, 0x01, 0x8a, 0xc8, 0x0c, 0x09, 0x18, 0x10, 0x0e, 0x03, 0x00, + 0x00, 0x02, 0xc0, 0xe0, 0x01, 0x6c, 0xc3, 0x20, 0x01, 0x8a, 0x98, 0x20, 0x01, 0x83, 0xe2, 0x00, + 0x13, 0x81, 0x01, 0x60, 0x01, 0x9c, 0x00, 0x40, 0x13, 0xb9, 0x83, 0x01, 0x16, 0x31, 0xc8, 0x03, + 0x01, 0x6c, 0x01, 0x40, 0x00, 0x10, 0x16, 0x14, 0xc2, 0xe0, 0x06, 0x2e, 0x13, 0x11, 0xc2, 0xe0, + 0x05, 0xf8, 0x13, 0x0e, 0x01, 0xe0, 0x07, 0x3a, 0x80, 0x00, 0x01, 0x80, 0x00, 0x10, 0xc2, 0xe0, + 0x07, 0x36, 0x13, 0x06, 0x04, 0xe0, 0x07, 0x36, 0x01, 0x80, 0x00, 0x20, 0x04, 0x60, 0xb9, 0xc0, + 0x01, 0x40, 0x00, 0x20, 0x13, 0xf9, 0x03, 0x90, 0x11, 0xff, 0x03, 0x80, 0x01, 0x08, 0x04, 0x00, + 0x16, 0x19, 0x01, 0x60, 0x09, 0x6a, 0x00, 0x01, 0x16, 0x15, 0x01, 0x88, 0x1a, 0x00, 0x01, 0xc8, + 0x01, 0x00, 0xc5, 0xc8, 0x10, 0x0f, 0x04, 0xe0, 0x09, 0x18, 0x01, 0xc0, 0x00, 0x04, 0x10, 0x15, + 0xc1, 0x81, 0xc8, 0x01, 0x01, 0x6c, 0x02, 0x07, 0xfc, 0x00, 0xc0, 0x77, 0xc2, 0x17, 0x01, 0x48, + 0x18, 0x00, 0x13, 0xe4, 0x01, 0x40, 0x00, 0x40, 0x16, 0x15, 0x01, 0x80, 0x00, 0x45, 0xc1, 0x46, + 0xd0, 0x20, 0xfc, 0x07, 0x81, 0x60, 0x09, 0x18, 0x13, 0xe6, 0xc2, 0xe0, 0xfc, 0x08, 0x11, 0x08, + 0xc2, 0xe0, 0xfc, 0x0e, 0x15, 0x07, 0x13, 0x06, 0xc2, 0xe0, 0xfc, 0x14, 0x15, 0x03, 0x13, 0x02, + 0x01, 0xc0, 0x00, 0x01, 0x01, 0x48, 0x01, 0x00, 0x13, 0x11, 0x01, 0x40, 0x40, 0x80, 0x13, 0x5b, + 0x04, 0x60, 0xb6, 0x66, 0x01, 0x48, 0x00, 0x01, 0x16, 0x03, 0x01, 0x40, 0x40, 0x00, 0x16, 0x0b, + 0x01, 0xc8, 0x40, 0x00, 0x05, 0xa0, 0x09, 0x32, 0xc5, 0xc8, 0x10, 0x05, 0x01, 0xc0, 0x00, 0x40, + 0x01, 0x40, 0x00, 0x04, 0x13, 0xef, 0x05, 0xc7, 0xc2, 0xd7, 0x62, 0xc4, 0x05, 0x0b, 0x02, 0x2b, + 0xff, 0xfc, 0xc5, 0xcb, 0x15, 0x02, 0x81, 0x46, 0x13, 0x5d, 0x01, 0x08, 0x5e, 0x00, 0x16, 0x5a, + 0x01, 0x08, 0x00, 0x88, 0x16, 0x13, 0x02, 0x86, 0x00, 0x43, 0x16, 0x1e, 0x01, 0x40, 0x40, 0x00, + 0x13, 0x0b, 0x01, 0x08, 0x00, 0x03, 0x13, 0x08, 0xc2, 0x84, 0x02, 0x2a, 0xff, 0xd8, 0xc8, 0x06, + 0x01, 0x6c, 0x68, 0x0a, 0xfc, 0x04, 0x10, 0x66, 0x04, 0x60, 0xb8, 0xa8, 0x01, 0x40, 0x00, 0x01, + 0x13, 0xea, 0x01, 0x08, 0x00, 0x02, 0x16, 0xe7, 0x01, 0x48, 0x00, 0x01, 0x16, 0xe4, 0x07, 0x8a, + 0x00, 0x80, 0x06, 0xa0, 0xb5, 0x32, 0x10, 0xdf, 0xc0, 0x00, 0x11, 0xee, 0xc2, 0x60, 0x09, 0x6a, + 0x01, 0x40, 0x40, 0x00, 0x13, 0x0a, 0x01, 0x48, 0x00, 0x01, 0x13, 0x2e, 0x01, 0x48, 0x00, 0x02, + 0x13, 0x04, 0x01, 0x49, 0x00, 0x04, 0x16, 0xe0, 0x10, 0x00, 0x01, 0x49, 0x00, 0x01, 0x13, 0x12, + 0x01, 0x40, 0x40, 0x80, 0x16, 0x01, 0xc1, 0x46, 0x04, 0xe0, 0xfc, 0x00, 0x07, 0x87, 0x05, 0xf8, + 0xc2, 0x17, 0x13, 0x14, 0x05, 0xc7, 0xc8, 0x17, 0x01, 0x6c, 0xc8, 0x05, 0xfc, 0x00, 0xc5, 0xc6, + 0x04, 0x60, 0xb6, 0x66, 0x02, 0x07, 0xfc, 0x02, 0xa1, 0xe0, 0x09, 0x2c, 0xcd, 0xe0, 0x05, 0xee, + 0xc5, 0xe0, 0xfc, 0x04, 0xc8, 0x20, 0x09, 0x2c, 0xfc, 0x04, 0x10, 0xe2, 0xcd, 0xc5, 0xc5, 0xc6, + 0x04, 0x60, 0xb6, 0x66, 0x04, 0x60, 0xb8, 0x8c, 0xc8, 0x06, 0x01, 0x6c, 0x81, 0x85, 0x13, 0x1a, + 0xc2, 0xe0, 0xfc, 0x04, 0x15, 0x17, 0xc2, 0x86, 0xa2, 0x8a, 0xc1, 0xaa, 0x0c, 0x32, 0xc8, 0x06, + 0x01, 0x6c, 0xa8, 0x0b, 0xfc, 0x04, 0x09, 0x1a, 0xc8, 0x0a, 0x01, 0x6c, 0xc2, 0xe0, 0xfc, 0x02, + 0x04, 0xe0, 0xfc, 0x00, 0xc8, 0x06, 0x01, 0x6c, 0xc8, 0x0b, 0xfc, 0x02, 0x06, 0xa0, 0xc1, 0x9c, + 0xc8, 0x06, 0x01, 0x6c, 0x04, 0xe0, 0xfc, 0x00, 0x01, 0xa0, 0xfc, 0x02, 0x00, 0x02, 0x07, 0x87, + 0x06, 0x30, 0x01, 0xe7, 0x00, 0x04, 0x00, 0x40, 0x04, 0xd7, 0x02, 0x27, 0x00, 0x0c, 0xc2, 0x05, + 0x06, 0xa0, 0xc2, 0x5a, 0x01, 0xc0, 0x00, 0x20, 0x04, 0x60, 0xb6, 0x66, 0x01, 0x48, 0x18, 0x00, + 0x13, 0x03, 0x01, 0x48, 0x10, 0x00, 0x16, 0x02, 0x05, 0xa0, 0x09, 0x32, 0x02, 0x86, 0x00, 0x43, + 0x13, 0x03, 0x01, 0x40, 0x40, 0x80, 0x13, 0x9f, 0xc8, 0x06, 0x01, 0x6c, 0x04, 0xe0, 0xfc, 0x00, + 0xc2, 0x85, 0x06, 0xa0, 0xc1, 0x9c, 0x06, 0x20, 0x09, 0x62, 0x16, 0xe6, 0x06, 0xa0, 0xe1, 0x18, + 0x10, 0xe3, 0xc2, 0xa0, 0x05, 0xf6, 0x16, 0x52, 0xc8, 0x19, 0x05, 0xf0, 0xc2, 0xa9, 0x00, 0x0a, + 0x11, 0x0d, 0xf2, 0xa0, 0x09, 0x2e, 0xd8, 0x0a, 0x01, 0x80, 0xc8, 0x29, 0x00, 0x06, 0x01, 0x8c, + 0x07, 0xa0, 0x09, 0x16, 0x00, 0x04, 0xc8, 0x09, 0x05, 0xf4, 0x10, 0x42, 0xc8, 0x29, 0x00, 0x06, + 0x01, 0x6c, 0xc8, 0x20, 0xfc, 0x0e, 0x01, 0xbc, 0xc8, 0x20, 0xfc, 0x10, 0x01, 0xb0, 0xc8, 0x20, + 0xfc, 0x12, 0x01, 0xb2, 0xf2, 0xa0, 0x09, 0x2e, 0x01, 0x8a, 0x10, 0x00, 0x01, 0xa0, 0x01, 0x80, + 0xc4, 0x00, 0x10, 0xe1, 0x01, 0x47, 0x00, 0x08, 0x16, 0x06, 0xc2, 0xa8, 0x00, 0x06, 0x06, 0xa0, + 0xc1, 0x9c, 0x04, 0xe8, 0x00, 0x06, 0x01, 0x07, 0x00, 0x20, 0x13, 0x2d, 0x04, 0xe8, 0x00, 0x02, + 0x10, 0x37, 0x04, 0xe0, 0xfc, 0x00, 0x06, 0xa0, 0xc1, 0x9c, 0x10, 0x25, 0x03, 0x00, 0x00, 0x02, + 0xc2, 0x20, 0x01, 0x8c, 0xc0, 0xe0, 0x01, 0x6c, 0xc2, 0x20, 0x05, 0xf4, 0xc8, 0x28, 0x00, 0x08, + 0x01, 0x6c, 0xc1, 0xe8, 0x00, 0x0a, 0xc3, 0x20, 0xfc, 0x02, 0x01, 0x0c, 0xfe, 0x00, 0x16, 0x3b, + 0x01, 0x47, 0x00, 0x40, 0x13, 0x50, 0xc2, 0x60, 0x05, 0xf0, 0x16, 0xab, 0x04, 0xe0, 0x05, 0xf4, + 0xca, 0x0c, 0x00, 0x08, 0x01, 0x47, 0x00, 0x80, 0x16, 0xcd, 0xc8, 0x28, 0x00, 0x06, 0x01, 0x6c, + 0xc2, 0xa0, 0xfc, 0x00, 0x16, 0xd6, 0xc1, 0xe8, 0x00, 0x02, 0xc2, 0xd7, 0x16, 0x0f, 0x02, 0x27, + 0x00, 0x10, 0x04, 0xd8, 0xc2, 0x57, 0x13, 0x0e, 0x05, 0xc7, 0xc2, 0x57, 0xc6, 0x48, 0xc5, 0xc8, + 0xc8, 0x03, 0x01, 0x6c, 0x11, 0x0d, 0x03, 0x90, 0x11, 0xff, 0x03, 0x80, 0x04, 0xd7, 0x01, 0xc3, + 0x80, 0x00, 0x10, 0xed, 0x01, 0xe7, 0xff, 0xf4, 0x00, 0x20, 0xcd, 0xc8, 0xc5, 0xc8, 0x10, 0xf0, + 0x03, 0x90, 0x11, 0xf8, 0x02, 0xe0, 0x00, 0xc0, 0xc3, 0x60, 0x00, 0xfa, 0xc3, 0xa0, 0x00, 0xfc, + 0xc3, 0xe0, 0x00, 0xfe, 0x04, 0x54, 0xc2, 0xe8, 0x00, 0x08, 0xc2, 0xa8, 0x00, 0x06, 0xc3, 0x0c, + 0x11, 0x33, 0x23, 0x20, 0xe0, 0x0a, 0x13, 0x45, 0x23, 0x20, 0xe0, 0x10, 0x13, 0x46, 0x23, 0x20, + 0xe0, 0x0e, 0x13, 0x13, 0x21, 0xe0, 0xe0, 0x16, 0x16, 0xb6, 0x23, 0x20, 0xe0, 0x06, 0x16, 0x03, + 0x27, 0x20, 0xe4, 0x68, 0x13, 0x0a, 0xc2, 0xe8, 0x00, 0x08, 0xc2, 0xa8, 0x00, 0x06, 0x01, 0x4c, + 0x00, 0x88, 0x16, 0xa9, 0x01, 0x0c, 0x00, 0x44, 0x16, 0xa6, 0x06, 0x20, 0x09, 0x16, 0x13, 0xa3, + 0xc8, 0x0a, 0x01, 0x6c, 0xc8, 0x20, 0xe0, 0x04, 0xfc, 0x02, 0xc8, 0x0b, 0x01, 0x6c, 0x07, 0xa0, + 0xfc, 0x02, 0x81, 0x00, 0xc3, 0x20, 0x01, 0x80, 0x01, 0xa0, 0x01, 0x80, 0xc4, 0x00, 0xc8, 0x0c, + 0x01, 0x80, 0xc8, 0x0a, 0x01, 0x8c, 0x10, 0xac, 0xc2, 0x0a, 0x13, 0x0f, 0xc8, 0x08, 0x01, 0x6c, + 0xc2, 0xa0, 0xfc, 0x00, 0xc3, 0x20, 0xfc, 0x02, 0x23, 0x20, 0xe0, 0x12, 0x16, 0xf5, 0xc8, 0x0b, + 0x01, 0x6c, 0xc8, 0x0c, 0xfc, 0x02, 0x04, 0x60, 0xb9, 0x48, 0x07, 0x8a, 0x04, 0x00, 0x04, 0x60, + 0xb3, 0x8a, 0x07, 0x8a, 0x00, 0x20, 0x04, 0x60, 0xb3, 0x8a, 0x07, 0x8a, 0x02, 0x00, 0x27, 0x20, + 0xe0, 0x0e, 0x16, 0x02, 0x06, 0xa0, 0xb5, 0x32, 0xc2, 0xa8, 0x00, 0x06, 0x04, 0x60, 0xb9, 0x66, + 0x03, 0x00, 0x00, 0x02, 0x01, 0xc0, 0x00, 0x10, 0xc2, 0xe0, 0x06, 0x2e, 0x13, 0x08, 0xc2, 0xe0, + 0x05, 0xf8, 0x13, 0x05, 0x01, 0xe0, 0x07, 0x3a, 0x80, 0x00, 0x01, 0x80, 0x00, 0x10, 0x03, 0x90, + 0x7f, 0xff, 0x03, 0x80, 0x03, 0x00, 0x00, 0x02, 0xc2, 0x20, 0x05, 0xf6, 0xe2, 0x20, 0x05, 0xf4, + 0x16, 0x0e, 0xd8, 0x20, 0x09, 0x2e, 0x01, 0x80, 0xc8, 0x2b, 0x00, 0x06, 0x01, 0x8c, 0x07, 0xa0, + 0x09, 0x16, 0x00, 0x04, 0xc8, 0x0b, 0x05, 0xf4, 0x03, 0x90, 0xff, 0xff, 0x03, 0x80, 0x07, 0x87, + 0x05, 0xf0, 0x04, 0xdb, 0xc2, 0x57, 0x16, 0x05, 0xcd, 0xcb, 0xc5, 0xcb, 0x03, 0x90, 0xff, 0xff, + 0x03, 0x80, 0x05, 0xc7, 0xc2, 0x57, 0xc6, 0x4b, 0xc5, 0xcb, 0x03, 0x90, 0xff, 0xff, 0x03, 0x80, + 0x03, 0x00, 0x00, 0x02, 0xc2, 0x0b, 0xc3, 0x20, 0x05, 0xf4, 0x13, 0x0f, 0xc2, 0xa8, 0x00, 0x0a, + 0x01, 0x4a, 0x00, 0x10, 0x16, 0x16, 0x22, 0xa0, 0xe0, 0x04, 0x16, 0x1a, 0xc3, 0x08, 0x06, 0xa0, + 0xbb, 0xfe, 0xc2, 0x0c, 0xc3, 0x20, 0x05, 0xf4, 0x16, 0x13, 0x01, 0x68, 0x00, 0x0a, 0x00, 0x10, + 0x13, 0x03, 0xc2, 0xe0, 0x05, 0xf6, 0x16, 0x05, 0x06, 0xa0, 0xbc, 0x40, 0x03, 0x90, 0xff, 0xff, + 0x03, 0x80, 0x07, 0x87, 0x05, 0xf0, 0x06, 0xa0, 0xc2, 0x44, 0x03, 0x90, 0xff, 0xff, 0x03, 0x80, + 0x07, 0x87, 0x05, 0xf0, 0x06, 0xa0, 0xc2, 0x8a, 0x03, 0x80, 0x03, 0x00, 0x00, 0x02, 0x07, 0x87, + 0x05, 0xf0, 0xc2, 0xcb, 0x16, 0x08, 0x06, 0xa0, 0xbb, 0xfe, 0x07, 0x20, 0x05, 0xf6, 0xcb, 0x60, + 0x05, 0xf4, 0x00, 0x02, 0x03, 0x80, 0x04, 0xe0, 0x05, 0xf6, 0xc2, 0x20, 0x05, 0xf4, 0x16, 0x05, + 0xc2, 0x17, 0x13, 0x03, 0xc5, 0xd8, 0x06, 0xa0, 0xbc, 0x40, 0x03, 0x80, 0x03, 0x00, 0x00, 0x02, + 0xc2, 0x8b, 0x06, 0xa0, 0xbb, 0xfe, 0xc1, 0xca, 0x02, 0x27, 0x00, 0x10, 0x07, 0x88, 0x05, 0xf0, + 0xc1, 0x88, 0xc2, 0x18, 0x13, 0x26, 0x82, 0xa8, 0x00, 0x02, 0x16, 0xfa, 0xc2, 0xe8, 0x00, 0x0a, + 0x22, 0xe0, 0xe0, 0x1e, 0x16, 0xf5, 0xc5, 0x98, 0x22, 0xe0, 0xe0, 0x1c, 0x16, 0x0b, 0xc8, 0x28, + 0x00, 0x06, 0x00, 0xf4, 0x02, 0xe0, 0x00, 0xe0, 0x06, 0xa0, 0xc1, 0x9c, 0x02, 0xe0, 0x00, 0xc0, + 0x04, 0xe8, 0x00, 0x06, 0x22, 0xe0, 0xe0, 0x18, 0x13, 0xe4, 0xea, 0x20, 0xe0, 0x22, 0x00, 0x0a, + 0xea, 0xa0, 0xe0, 0x18, 0x00, 0x04, 0x04, 0xda, 0x06, 0xa0, 0xc2, 0x44, 0x06, 0x47, 0xc2, 0x06, + 0x10, 0xd8, 0xc8, 0x06, 0x05, 0xf2, 0xcb, 0x60, 0x05, 0xf4, 0x00, 0x02, 0x04, 0x54, 0xc2, 0x20, + 0x05, 0xf4, 0x13, 0x13, 0x01, 0xe0, 0x01, 0x9c, 0x40, 0x00, 0x0b, 0x8b, 0x0b, 0x8b, 0x01, 0x60, + 0x01, 0x9c, 0x40, 0x00, 0x16, 0x0a, 0xc2, 0x60, 0x01, 0x6c, 0xc8, 0x28, 0x00, 0x06, 0x01, 0x6c, + 0xc2, 0xa0, 0xfc, 0x02, 0x11, 0x03, 0xc8, 0x09, 0x01, 0x6c, 0x04, 0x5b, 0xc8, 0x09, 0x01, 0x6c, + 0xc2, 0x4b, 0x07, 0x87, 0x05, 0xf0, 0x06, 0xa0, 0xc2, 0x8a, 0x04, 0xe0, 0x05, 0xf4, 0x04, 0x59, + 0xc2, 0xa8, 0x00, 0x0a, 0x11, 0x0d, 0xf2, 0xa0, 0x09, 0x2e, 0xd8, 0x0a, 0x01, 0x80, 0xc8, 0x28, + 0x00, 0x06, 0x01, 0x8c, 0x07, 0xa0, 0x09, 0x16, 0x00, 0x04, 0xc8, 0x08, 0x05, 0xf4, 0x04, 0x5b, + 0xc3, 0x20, 0x01, 0x6c, 0xc8, 0x28, 0x00, 0x06, 0x01, 0x6c, 0xc8, 0x20, 0xfc, 0x0e, 0x01, 0xbc, + 0xc8, 0x20, 0xfc, 0x10, 0x01, 0xb0, 0xc8, 0x20, 0xfc, 0x12, 0x01, 0xb2, 0xc8, 0x0c, 0x01, 0x6c, + 0xf2, 0xa0, 0x09, 0x2e, 0x01, 0x8a, 0x10, 0x00, 0x01, 0xa0, 0x01, 0x80, 0xc4, 0x00, 0x10, 0xdd, + 0x07, 0x33, 0x07, 0x33, 0x10, 0x0c, 0x07, 0x13, 0x07, 0x23, 0x00, 0x02, 0xc8, 0xcb, 0x00, 0x06, + 0x02, 0x23, 0x00, 0x18, 0xcc, 0xe0, 0x01, 0x6c, 0xcc, 0xcd, 0xcc, 0xce, 0xcc, 0xcf, 0x07, 0x83, + 0x06, 0x30, 0xc1, 0xd3, 0x13, 0x0a, 0x07, 0x83, 0x07, 0x36, 0xc1, 0xd3, 0x13, 0x06, 0x07, 0x83, + 0x00, 0xa0, 0x00, 0x93, 0xc8, 0x0c, 0x01, 0x6c, 0x03, 0x80, 0x07, 0x63, 0x00, 0x02, 0x15, 0x2a, + 0xc2, 0x63, 0x00, 0x04, 0x42, 0x63, 0x00, 0x06, 0x13, 0xdb, 0xc3, 0x63, 0x00, 0x1a, 0xd2, 0x49, + 0x13, 0x0c, 0x06, 0xc9, 0x72, 0x49, 0xd2, 0x69, 0xe1, 0xc0, 0x06, 0xc9, 0x72, 0x49, 0x48, 0xe9, + 0xe0, 0x04, 0x00, 0x04, 0xcb, 0x49, 0x00, 0x02, 0x04, 0x52, 0xc2, 0x69, 0xe1, 0xc0, 0x72, 0x49, + 0x02, 0x29, 0x00, 0x10, 0xc2, 0xc3, 0xa2, 0xe9, 0xe1, 0xa8, 0xc3, 0x1b, 0x02, 0x89, 0x00, 0x12, + 0x13, 0x0f, 0xc6, 0xdc, 0x16, 0x03, 0x48, 0xe9, 0xe0, 0x04, 0x00, 0x04, 0xcb, 0x49, 0x00, 0x02, + 0xcb, 0x4c, 0x00, 0x04, 0x03, 0x90, 0x01, 0xff, 0x00, 0x93, 0xc8, 0x0c, 0x01, 0x6c, 0x03, 0x80, + 0xc8, 0x0c, 0x01, 0x6c, 0xc6, 0xe0, 0xfc, 0x00, 0x16, 0xf1, 0x48, 0xe9, 0xe0, 0x04, 0x00, 0x04, + 0xcb, 0x49, 0x00, 0x02, 0xcb, 0x4c, 0x00, 0x04, 0x10, 0xed, 0x03, 0x00, 0x00, 0x02, 0xc2, 0xdb, + 0xc2, 0x63, 0x00, 0x04, 0x42, 0x4b, 0x13, 0x9f, 0xd2, 0x49, 0x13, 0x0e, 0x06, 0xc9, 0x72, 0x49, + 0xd2, 0x69, 0xe1, 0xc0, 0x06, 0xc9, 0x72, 0x49, 0x48, 0xe9, 0xe0, 0x04, 0x00, 0x04, 0xcb, 0x49, + 0x00, 0x02, 0x03, 0x90, 0xff, 0xff, 0x03, 0x80, 0xc2, 0x69, 0xe1, 0xc0, 0x72, 0x49, 0x02, 0x29, + 0x00, 0x10, 0xc2, 0xc3, 0xa2, 0xe9, 0xe1, 0xa8, 0xc3, 0x1b, 0x02, 0x89, 0x00, 0x12, 0x13, 0x0c, + 0xc6, 0xdc, 0x16, 0x03, 0x48, 0xe9, 0xe0, 0x04, 0x00, 0x04, 0xcb, 0x49, 0x00, 0x02, 0xcb, 0x4c, + 0x00, 0x04, 0x03, 0x90, 0xff, 0xff, 0x03, 0x80, 0xc8, 0x0c, 0x01, 0x6c, 0xc6, 0xe0, 0xfc, 0x00, + 0x16, 0xf4, 0x10, 0xf0, 0x03, 0x00, 0x00, 0x02, 0xc2, 0xbb, 0xc1, 0xbb, 0xd1, 0x86, 0x13, 0x03, + 0xea, 0x86, 0x00, 0x04, 0x10, 0x13, 0xd1, 0xa6, 0xe1, 0xc0, 0x06, 0xc6, 0x71, 0x86, 0xc1, 0xca, + 0xa1, 0xe6, 0xe1, 0xb8, 0xea, 0xa6, 0xe0, 0x14, 0x00, 0x04, 0xc2, 0x1b, 0x02, 0x86, 0x00, 0x02, + 0x16, 0x03, 0x06, 0xa0, 0xc2, 0x6a, 0x10, 0x02, 0x06, 0xa0, 0xc2, 0x44, 0x04, 0xda, 0x03, 0x80, + 0x03, 0x00, 0x00, 0x02, 0xc2, 0xab, 0x00, 0x06, 0x07, 0x8c, 0x05, 0xe8, 0xc2, 0x5c, 0x13, 0x16, + 0xc1, 0xa0, 0x05, 0xec, 0x81, 0x8a, 0x1a, 0x1a, 0xc1, 0xc6, 0xc2, 0x09, 0xc2, 0x59, 0x13, 0x20, + 0xa1, 0xe9, 0x00, 0x08, 0x82, 0x87, 0x12, 0xf9, 0xa2, 0xa9, 0x00, 0x08, 0x62, 0x87, 0xca, 0xca, + 0x00, 0x08, 0x6a, 0x4a, 0x00, 0x08, 0xc6, 0xc9, 0xc6, 0x0b, 0x03, 0x80, 0xca, 0xca, 0x00, 0x08, + 0xc8, 0x0a, 0x05, 0xec, 0x04, 0xdb, 0xcf, 0x0b, 0xc7, 0x0b, 0x03, 0x80, 0x61, 0x8a, 0xca, 0x46, + 0x00, 0x08, 0xca, 0xca, 0x00, 0x08, 0xc8, 0x0a, 0x05, 0xec, 0xc6, 0xc9, 0xc7, 0x0b, 0x03, 0x80, + 0x62, 0x87, 0xca, 0xca, 0x00, 0x08, 0x04, 0xdb, 0xc6, 0x0b, 0xcb, 0x0b, 0x00, 0x02, 0x03, 0x80, + 0x03, 0x00, 0x00, 0x02, 0xc1, 0xbb, 0xc2, 0xdb, 0x07, 0x8c, 0x05, 0xe8, 0xc2, 0x4c, 0x04, 0xed, + 0x00, 0x02, 0xc2, 0x09, 0xc2, 0x59, 0x13, 0x18, 0x81, 0xa9, 0x00, 0x02, 0x16, 0xfa, 0x82, 0xe9, + 0x00, 0x04, 0x16, 0xf7, 0xcb, 0x49, 0x00, 0x04, 0xc2, 0x99, 0xc6, 0x0a, 0x13, 0x0a, 0x83, 0x08, + 0x13, 0x04, 0xaa, 0xa9, 0x00, 0x08, 0x00, 0x08, 0x03, 0x80, 0xa8, 0x2a, 0x00, 0x08, 0x05, 0xec, + 0x03, 0x80, 0xcb, 0x08, 0x00, 0x02, 0x03, 0x80, 0x07, 0x2d, 0x00, 0x02, 0x07, 0x8c, 0x00, 0x08, + 0xa3, 0x06, 0xc2, 0x4c, 0xc2, 0x09, 0xc2, 0x59, 0x13, 0x13, 0x82, 0xe9, 0x00, 0x04, 0x16, 0xfa, + 0x07, 0xad, 0x00, 0x02, 0x00, 0x01, 0xcb, 0x49, 0x00, 0x04, 0xc6, 0x19, 0x13, 0x01, 0x03, 0x80, + 0x83, 0x08, 0x16, 0x04, 0x49, 0xa0, 0xe0, 0x14, 0x00, 0x04, 0x03, 0x80, 0xcb, 0x08, 0x00, 0x02, + 0x03, 0x80, 0x03, 0x00, 0x00, 0x02, 0x06, 0x0b, 0x11, 0x1f, 0x13, 0x4d, 0x07, 0x8b, 0x4e, 0x00, + 0x01, 0x60, 0x01, 0x42, 0x00, 0x80, 0x13, 0x09, 0x07, 0x8b, 0x3a, 0x00, 0xc1, 0x20, 0x01, 0x4e, + 0x02, 0x84, 0x0f, 0x41, 0x11, 0x02, 0x07, 0x8b, 0x4e, 0x00, 0xc8, 0x0b, 0x01, 0x44, 0x07, 0xa0, + 0x09, 0x62, 0x03, 0xe8, 0x01, 0xe0, 0x01, 0x40, 0x02, 0x00, 0x01, 0xe0, 0x01, 0x40, 0x20, 0x00, + 0x07, 0x84, 0xbc, 0xa0, 0x04, 0x60, 0xbc, 0xae, 0xc8, 0x20, 0xe0, 0x16, 0x00, 0xe0, 0xc2, 0xe0, + 0x09, 0x6a, 0x22, 0xe0, 0xe0, 0x10, 0x13, 0x03, 0xe8, 0x20, 0xe0, 0x14, 0x00, 0xe0, 0xc8, 0x20, + 0xe0, 0x04, 0x01, 0x82, 0xc8, 0x20, 0x00, 0xe2, 0x01, 0x8a, 0x04, 0xe0, 0x09, 0x18, 0x04, 0xe0, + 0x05, 0xf4, 0x04, 0xe0, 0x05, 0xf8, 0x04, 0xe0, 0x05, 0xf0, 0x04, 0xe0, 0x07, 0x42, 0x07, 0xa0, + 0x01, 0x88, 0x00, 0x20, 0xc2, 0xe0, 0x09, 0x30, 0x13, 0x09, 0x07, 0xa0, 0x01, 0x88, 0x00, 0x80, + 0xe8, 0x20, 0xe0, 0x16, 0x01, 0x80, 0x01, 0xe0, 0x01, 0x82, 0x03, 0x00, 0x07, 0x8b, 0xa0, 0x00, + 0xe8, 0x0b, 0x01, 0x86, 0x03, 0x80, 0x04, 0xe0, 0x01, 0x86, 0x01, 0xe0, 0x01, 0x9c, 0x00, 0x40, + 0x01, 0xe0, 0x01, 0x9c, 0x40, 0x00, 0x04, 0xcb, 0x03, 0xb0, 0x06, 0x0b, 0x13, 0x04, 0x01, 0x60, + 0x01, 0x9c, 0x40, 0x00, 0x16, 0xf9, 0x04, 0xe0, 0x01, 0x82, 0xe8, 0x20, 0xe0, 0x08, 0x09, 0x6a, + 0x07, 0x8b, 0x80, 0x00, 0xc8, 0x0b, 0x07, 0x98, 0xc8, 0x0b, 0x07, 0x78, 0xc8, 0x20, 0xe0, 0x04, + 0x01, 0x82, 0x07, 0x8b, 0x87, 0x6f, 0x48, 0x0b, 0x07, 0x3a, 0xc2, 0xe0, 0x07, 0x50, 0x02, 0x8b, + 0x07, 0x58, 0x13, 0x10, 0xe8, 0x20, 0xe0, 0x0a, 0x01, 0x00, 0xc2, 0xe0, 0x01, 0x00, 0x22, 0xe0, + 0xe0, 0x06, 0x13, 0xf8, 0x07, 0x8b, 0x07, 0x58, 0xc8, 0x0b, 0x07, 0x50, 0x07, 0x8b, 0xc5, 0x6a, + 0xc8, 0x0b, 0x07, 0x52, 0x03, 0x80, 0x03, 0x00, 0x00, 0x02, 0xc2, 0xe0, 0x09, 0x1a, 0x13, 0x0c, + 0x06, 0x20, 0x09, 0x1c, 0xc8, 0x0b, 0x01, 0x6c, 0xc8, 0x20, 0xfc, 0x00, 0x09, 0x1a, 0xcb, 0x4b, + 0x00, 0x02, 0x03, 0x90, 0xff, 0xff, 0x03, 0x80, 0xc0, 0x41, 0x13, 0x0f, 0x80, 0x81, 0x13, 0x0d, + 0xa0, 0x82, 0xc2, 0xe2, 0x0c, 0x32, 0x09, 0x12, 0xc8, 0x0b, 0x01, 0x6c, 0x04, 0xe0, 0xfc, 0x00, + 0xc3, 0x20, 0xfc, 0x02, 0x11, 0x07, 0xc8, 0x02, 0xfc, 0x00, 0x04, 0xed, 0x00, 0x02, 0x04, 0xe0, + 0x01, 0x6c, 0x03, 0x80, 0xcb, 0x42, 0x00, 0x02, 0xc8, 0x02, 0x01, 0x6c, 0xc0, 0x8b, 0x03, 0x80, + 0x03, 0x00, 0x00, 0x02, 0x07, 0x83, 0x80, 0x00, 0xc2, 0x60, 0x09, 0x7e, 0xc1, 0x09, 0x02, 0x24, + 0xff, 0xf8, 0x08, 0xa9, 0x02, 0x01, 0x00, 0x00, 0x02, 0x02, 0x00, 0x00, 0x02, 0x0b, 0x00, 0x00, + 0x02, 0x0c, 0x00, 0x00, 0x02, 0x07, 0x00, 0x00, 0xcb, 0x2c, 0x0c, 0x32, 0x0c, 0x32, 0x13, 0x06, + 0x05, 0x8b, 0x05, 0xcc, 0x88, 0x0b, 0x04, 0x46, 0x1b, 0x27, 0x10, 0xf6, 0xc2, 0x09, 0xc2, 0x8b, + 0x06, 0x08, 0x13, 0x0a, 0x05, 0x8b, 0x05, 0xcc, 0x88, 0x0b, 0x04, 0x46, 0x1b, 0x1d, 0xcb, 0x2c, + 0x0c, 0x32, 0x0c, 0x32, 0x16, 0xed, 0x10, 0xf4, 0xc0, 0x82, 0x13, 0x14, 0xc8, 0x02, 0x01, 0x6c, + 0xc8, 0x0a, 0xfc, 0x00, 0xc8, 0x0a, 0x01, 0x6c, 0x04, 0xe0, 0xfc, 0x00, 0x07, 0xa0, 0xfc, 0x02, + 0x80, 0x00, 0xc8, 0x04, 0xfc, 0x04, 0xc2, 0x0a, 0xa2, 0x08, 0xca, 0x02, 0x0c, 0x32, 0xc0, 0x8a, + 0x05, 0x87, 0x10, 0xd6, 0xc0, 0x4a, 0x10, 0xee, 0xcb, 0x47, 0x00, 0x02, 0x04, 0xe0, 0x01, 0x6c, + 0x07, 0x8b, 0x00, 0x43, 0x04, 0xe0, 0x0c, 0x00, 0x03, 0x00, 0x00, 0x02, 0xc8, 0x0b, 0x01, 0x6c, + 0xc2, 0x8b, 0x06, 0xa0, 0xc1, 0xa0, 0x03, 0x90, 0x00, 0x7f, 0x03, 0x80, 0x01, 0xa0, 0xfc, 0x02, + 0x00, 0x20, 0x01, 0x60, 0x09, 0x6a, 0x00, 0x01, 0x16, 0x0b, 0x02, 0x0a, 0xfc, 0x02, 0xa2, 0xa0, + 0x09, 0x2c, 0xce, 0xa0, 0x05, 0xee, 0xc6, 0xa0, 0xfc, 0x04, 0xc8, 0x20, 0x09, 0x2c, 0xfc, 0x04, + 0x07, 0x8a, 0x05, 0xf8, 0xc2, 0x5a, 0x13, 0x08, 0x05, 0xca, 0xc2, 0x5a, 0xc8, 0x09, 0x01, 0x6c, + 0xc8, 0x0b, 0xfc, 0x00, 0xc6, 0x8b, 0x10, 0x02, 0xce, 0x8b, 0xc6, 0x8b, 0x20, 0x20, 0xe0, 0x1a, + 0x16, 0x05, 0xe8, 0x20, 0xe0, 0x04, 0x07, 0x3a, 0x04, 0xe0, 0x07, 0x36, 0x03, 0x90, 0x00, 0x7f, + 0x03, 0x80, 0x03, 0x00, 0x00, 0x02, 0xc8, 0x0b, 0x01, 0x6c, 0x04, 0xcc, 0x04, 0xe0, 0xfc, 0x00, + 0xc2, 0x8b, 0x06, 0xa0, 0xc1, 0xae, 0x03, 0x90, 0x00, 0x7f, 0x03, 0x80, 0x07, 0xa0, 0xfc, 0x02, + 0x80, 0x00, 0xc8, 0x20, 0xe1, 0x8c, 0xfc, 0x04, 0xc0, 0x41, 0x16, 0x0f, 0xd8, 0x20, 0xe2, 0x00, + 0x01, 0x83, 0x00, 0x00, 0xc1, 0x82, 0x00, 0x15, 0x0b, 0x8b, 0x00, 0x00, 0xc1, 0x96, 0x0c, 0xa8, + 0xc8, 0x0a, 0x01, 0x8a, 0x04, 0x5b, 0xc8, 0x0a, 0x01, 0x6c, 0xc3, 0x20, 0xfc, 0x00, 0x04, 0xe0, + 0xfc, 0x00, 0x02, 0x8a, 0x00, 0x43, 0x13, 0xdf, 0x07, 0xa0, 0xfc, 0x02, 0x80, 0x00, 0xc8, 0x04, + 0xfc, 0x04, 0x98, 0x20, 0x09, 0x84, 0x09, 0x1d, 0x13, 0x0a, 0xc8, 0x20, 0x09, 0x1a, 0xfc, 0x00, + 0xc8, 0x0a, 0x09, 0x1a, 0x05, 0xa0, 0x09, 0x1c, 0xc2, 0x8c, 0x16, 0xe5, 0x04, 0x5b, 0xc0, 0x41, + 0x13, 0x10, 0xa2, 0x8a, 0xca, 0x82, 0x0c, 0x32, 0x09, 0x1a, 0xc8, 0x02, 0x01, 0x6c, 0xc8, 0x0a, + 0xfc, 0x00, 0xc0, 0x8a, 0x98, 0x20, 0x01, 0x83, 0xe2, 0x00, 0x13, 0x09, 0xc2, 0x8c, 0x16, 0xd3, + 0x04, 0x5b, 0xc0, 0x4a, 0xc0, 0x8a, 0x98, 0x20, 0x01, 0x83, 0xe2, 0x00, 0x16, 0x1b, 0x01, 0xe0, + 0x01, 0x9c, 0x00, 0x40, 0x07, 0xa0, 0x09, 0x64, 0x70, 0x00, 0x01, 0x60, 0x01, 0x9c, 0x00, 0x40, + 0x13, 0x07, 0x06, 0x20, 0x09, 0x64, 0x16, 0xf9, 0x02, 0x0a, 0x01, 0x00, 0x04, 0x60, 0xb3, 0x8a, + 0x01, 0x60, 0x0c, 0x02, 0x01, 0x00, 0x13, 0xe2, 0xd8, 0x20, 0x09, 0x2f, 0x01, 0x83, 0x07, 0xa0, + 0x0c, 0x02, 0x80, 0x00, 0xc8, 0x0a, 0x01, 0x8a, 0xc8, 0x0a, 0x09, 0x18, 0x10, 0xd7, 0x04, 0xd8, + 0xc2, 0x57, 0x16, 0x03, 0xcd, 0xc8, 0xc5, 0xc8, 0x04, 0x5b, 0x05, 0xc7, 0xc2, 0x57, 0xc6, 0x48, + 0xc5, 0xc8, 0x04, 0x5b, 0xc8, 0x08, 0x01, 0x6c, 0xa2, 0x08, 0xca, 0x20, 0xfc, 0x00, 0x0c, 0x32, + 0x09, 0x18, 0x10, 0x02, 0xc8, 0x08, 0x01, 0x6c, 0x04, 0xe0, 0xfc, 0x00, 0xc2, 0x57, 0x16, 0x03, + 0xcd, 0xc8, 0xc5, 0xc8, 0x04, 0x5b, 0x05, 0xc7, 0xc8, 0x17, 0x01, 0x6c, 0xc8, 0x08, 0xfc, 0x00, + 0xc5, 0xc8, 0x04, 0x5b, 0xc6, 0x17, 0x16, 0x02, 0xc9, 0xc8, 0x00, 0x02, 0xc5, 0xc8, 0x04, 0x5b, + 0xc2, 0x17, 0xc8, 0x08, 0x01, 0x6c, 0x13, 0x07, 0xc5, 0xe0, 0xfc, 0x00, 0xa2, 0x08, 0xc8, 0x28, + 0x0c, 0x32, 0xfc, 0x00, 0x09, 0x18, 0x04, 0x5b, 0x01, 0x60, 0x01, 0x82, 0x20, 0x00, 0x16, 0x0a, + 0xc2, 0x60, 0x01, 0x84, 0x01, 0xa0, 0x01, 0x82, 0x20, 0x00, 0x01, 0xe0, 0x01, 0x82, 0x20, 0x00, + 0xc8, 0x09, 0x01, 0x84, 0x04, 0xc9, 0x04, 0x5b, 0x06, 0xa0, 0xc5, 0x1c, 0x04, 0xd3, 0x04, 0xe0, + 0x01, 0x02, 0xe8, 0x20, 0xe0, 0x14, 0x01, 0x00, 0xc8, 0x20, 0xe0, 0x16, 0x01, 0x04, 0x2c, 0x05, + 0x48, 0x20, 0xe0, 0x14, 0x01, 0x00, 0x07, 0x8c, 0x0a, 0x00, 0x07, 0x8d, 0x07, 0xd8, 0x07, 0x8e, + 0x00, 0x18, 0xcf, 0x7c, 0x06, 0x4e, 0x16, 0xfd, 0x02, 0xe0, 0x07, 0xd8, 0x07, 0x8f, 0xff, 0x11, + 0x02, 0x8b, 0x59, 0x3b, 0x16, 0x21, 0x02, 0x8a, 0x59, 0x3b, 0x13, 0x1e, 0x05, 0x8f, 0x20, 0x20, + 0xe0, 0x16, 0x16, 0x01, 0x10, 0x19, 0x20, 0x20, 0xe0, 0x04, 0x16, 0x16, 0x01, 0x00, 0x00, 0xbf, + 0x16, 0x13, 0x07, 0x8b, 0x40, 0xc0, 0x01, 0x00, 0x60, 0x00, 0x13, 0x10, 0x01, 0x40, 0x60, 0x00, + 0x16, 0x0b, 0x07, 0x8b, 0x44, 0xc4, 0xc3, 0xa0, 0x01, 0x02, 0x48, 0x0e, 0x01, 0x02, 0x01, 0x4e, + 0x10, 0x00, 0x16, 0x04, 0x07, 0x8f, 0xff, 0x18, 0x04, 0x60, 0xc4, 0xf2, 0xc3, 0x0b, 0xc3, 0x4b, + 0x20, 0x20, 0xe0, 0x0a, 0x16, 0x02, 0x02, 0x6b, 0x20, 0x20, 0x20, 0x20, 0xe0, 0x0c, 0x16, 0x02, + 0x02, 0x6c, 0x20, 0x00, 0x20, 0x20, 0xe0, 0x0e, 0x16, 0x02, 0x02, 0x6c, 0x00, 0x20, 0x05, 0x8f, + 0x20, 0x20, 0xe0, 0x10, 0x16, 0x07, 0x02, 0x6d, 0x00, 0x20, 0x21, 0x20, 0xe0, 0x22, 0x13, 0xe4, + 0xc1, 0x04, 0x16, 0x02, 0x07, 0x84, 0x7f, 0xfe, 0x05, 0x8f, 0x20, 0x20, 0xe0, 0x12, 0x16, 0x02, + 0x02, 0x6d, 0x20, 0x00, 0x21, 0x60, 0xe0, 0x22, 0x13, 0xd7, 0xc1, 0x45, 0x16, 0x02, 0x07, 0x85, + 0x7f, 0xfe, 0x05, 0x8f, 0xd1, 0x86, 0x13, 0x0b, 0x25, 0xa0, 0xe0, 0x26, 0x13, 0x08, 0x05, 0x8f, + 0x26, 0x20, 0xe0, 0x22, 0x16, 0x04, 0x05, 0x8f, 0x26, 0xa0, 0xe0, 0x22, 0x13, 0x02, 0x04, 0x60, + 0xc4, 0xf2, 0xd8, 0x01, 0x08, 0xec, 0xd8, 0x20, 0x07, 0xdb, 0x09, 0x00, 0xd8, 0x02, 0x08, 0xf6, + 0xd8, 0x20, 0x07, 0xdd, 0x08, 0xe2, 0x02, 0xe0, 0x07, 0x58, 0xd8, 0x20, 0x07, 0xef, 0x07, 0xf4, + 0xd8, 0x20, 0x07, 0xf1, 0x07, 0xf6, 0xd8, 0x20, 0x07, 0xf3, 0x07, 0xf8, 0x02, 0x09, 0x00, 0x06, + 0x04, 0xcb, 0x02, 0x0f, 0x07, 0xee, 0x05, 0x8f, 0xdf, 0xcb, 0x06, 0x09, 0x16, 0xfc, 0x06, 0xa0, + 0xc5, 0x1c, 0x07, 0x89, 0xe3, 0x5c, 0x04, 0xe0, 0x01, 0x1a, 0xc8, 0x20, 0x07, 0xe4, 0x01, 0x18, + 0xc8, 0x19, 0x01, 0x0c, 0xc8, 0x39, 0x01, 0x0a, 0xc8, 0x39, 0x01, 0x12, 0x16, 0x09, 0xc3, 0x79, + 0x02, 0x0f, 0xe0, 0x00, 0x63, 0x4f, 0x02, 0x2d, 0xa0, 0x00, 0xc8, 0x0d, 0x01, 0x14, 0x10, 0x02, + 0xc8, 0x39, 0x01, 0x14, 0xc3, 0xf9, 0xc8, 0x3f, 0x01, 0x0e, 0xc8, 0x1f, 0x01, 0x10, 0x04, 0xe0, + 0x09, 0x14, 0xc2, 0xb9, 0xc8, 0x1a, 0x01, 0x00, 0x06, 0x96, 0x02, 0x89, 0xe3, 0x84, 0x16, 0xe0, + 0x07, 0x8f, 0xff, 0x1c, 0x07, 0x8c, 0x0a, 0x00, 0x07, 0x8d, 0xe3, 0x84, 0x07, 0x8e, 0x00, 0x10, + 0x8f, 0x7c, 0x16, 0x44, 0x06, 0x4e, 0x16, 0xfc, 0xc3, 0xa0, 0x07, 0xe2, 0xc3, 0xe0, 0x07, 0xe0, + 0x83, 0xce, 0x14, 0x01, 0xc3, 0xce, 0xc8, 0x0f, 0x01, 0x1a, 0x07, 0x8c, 0xe3, 0x94, 0x07, 0x8d, + 0x0a, 0x00, 0x07, 0x8e, 0xe3, 0xa4, 0x63, 0x8c, 0xcf, 0x7c, 0x06, 0x4e, 0x16, 0xfd, 0x04, 0xe0, + 0x09, 0x30, 0x01, 0x20, 0x01, 0x42, 0x04, 0x00, 0x16, 0x02, 0x07, 0x20, 0x09, 0x30, 0xc2, 0x60, + 0x01, 0x62, 0x04, 0xe0, 0x01, 0x62, 0x07, 0x8e, 0x80, 0x00, 0x07, 0x8c, 0x09, 0x34, 0x07, 0x8d, + 0x00, 0x06, 0xdf, 0x3e, 0x05, 0x8e, 0x06, 0x0d, 0x16, 0xfc, 0xd3, 0xfe, 0x06, 0xcf, 0x05, 0x8e, + 0xd3, 0xfe, 0x06, 0xcf, 0x07, 0x8c, 0x09, 0x34, 0xc8, 0x09, 0x01, 0x62, 0x04, 0xc9, 0xa3, 0x5c, + 0xe2, 0x7c, 0xa3, 0x5c, 0xe2, 0x7c, 0xa3, 0x5c, 0xe2, 0x7c, 0x13, 0x02, 0x83, 0xcd, 0x13, 0x09, + 0x07, 0x20, 0x09, 0x34, 0x10, 0x06, 0x07, 0x8f, 0xff, 0x19, 0xa3, 0xcd, 0xc8, 0x0f, 0x01, 0x04, + 0x10, 0xff, 0x01, 0xa0, 0x01, 0x02, 0x10, 0x00, 0xc3, 0xe0, 0x07, 0xee, 0x43, 0xe0, 0xe0, 0x06, + 0xc8, 0x0f, 0x01, 0x00, 0xc0, 0x20, 0xe0, 0x04, 0x04, 0xe0, 0x06, 0xfe, 0x04, 0xd3, 0x04, 0xe0, + 0x01, 0x04, 0x04, 0x60, 0xc5, 0x6a, 0x07, 0x8c, 0x0a, 0x00, 0x07, 0x8d, 0x00, 0x18, 0x07, 0x8e, + 0x59, 0x3b, 0xcf, 0x0e, 0x06, 0x4d, 0x16, 0xfd, 0x04, 0x5b, 0x01, 0x93, 0x80, 0x00, 0x04, 0x20, + 0xe2, 0xc0, 0xd0, 0x60, 0x07, 0x98, 0x13, 0x1c, 0x03, 0x00, 0x00, 0x02, 0xc0, 0xa0, 0x07, 0x46, + 0xc8, 0x12, 0x07, 0x46, 0x16, 0x02, 0x01, 0x93, 0x00, 0x20, 0x03, 0x00, 0x00, 0x0f, 0x04, 0x20, + 0xe2, 0xe8, 0x01, 0x93, 0x20, 0x00, 0x01, 0x80, 0x40, 0x00, 0x01, 0x00, 0x00, 0xfe, 0x16, 0x49, + 0xc3, 0xc4, 0x16, 0x25, 0xc3, 0xd3, 0x43, 0xc5, 0x16, 0x0c, 0xc3, 0xe0, 0x07, 0x98, 0x11, 0x03, + 0x02, 0xe0, 0x07, 0x98, 0x04, 0x51, 0xc3, 0xe0, 0x07, 0x78, 0x11, 0x0a, 0x02, 0xe0, 0x07, 0x78, + 0x04, 0x51, 0x11, 0xd3, 0x01, 0x4f, 0x20, 0x00, 0x13, 0xe4, 0x01, 0x4f, 0x00, 0x20, 0x13, 0xd1, + 0x2c, 0x05, 0xa0, 0x41, 0x04, 0x21, 0xe2, 0xc0, 0x07, 0x8b, 0xc5, 0x6a, 0x01, 0x00, 0x40, 0x00, + 0x13, 0x0f, 0xc3, 0xdd, 0x02, 0x4f, 0x00, 0x0f, 0xe1, 0x2f, 0xe0, 0x14, 0x04, 0x5b, 0xc3, 0xe4, + 0xe1, 0xc0, 0x73, 0xcf, 0x41, 0x2f, 0xe0, 0x14, 0xc3, 0x6f, 0xea, 0x8c, 0x07, 0x8b, 0xc5, 0x6a, + 0xc2, 0x4b, 0xc2, 0xa0, 0x07, 0xf4, 0x07, 0x8c, 0x00, 0x08, 0xc0, 0xbd, 0xc3, 0xa0, 0x07, 0xea, + 0xc3, 0xe0, 0x07, 0xec, 0x06, 0xa0, 0xc7, 0x5e, 0x01, 0xc0, 0x40, 0x00, 0xd8, 0x02, 0x01, 0x17, + 0x02, 0x62, 0xff, 0x80, 0x06, 0xa0, 0xc7, 0xb2, 0xc8, 0x02, 0x01, 0x04, 0x03, 0x90, 0x60, 0x3f, + 0x04, 0x59, 0xc3, 0xc0, 0x73, 0xcf, 0xc3, 0xef, 0xe1, 0xc0, 0x73, 0xcf, 0xc3, 0xaf, 0xea, 0x7e, + 0xc3, 0x9e, 0x02, 0x4e, 0x00, 0x0f, 0x21, 0x2e, 0xe0, 0x14, 0x13, 0x08, 0x40, 0x2f, 0xe0, 0x14, + 0xa3, 0xcf, 0x04, 0x2f, 0xe2, 0xf0, 0x01, 0x40, 0x40, 0x00, 0x13, 0xa4, 0xc3, 0xc4, 0x16, 0xc7, + 0x01, 0x00, 0x00, 0xfe, 0x16, 0xe6, 0x10, 0x9e, 0x01, 0x40, 0x40, 0x00, 0x16, 0x05, 0xe0, 0x20, + 0xe0, 0x14, 0x02, 0x65, 0x58, 0x00, 0x10, 0x96, 0xd8, 0x20, 0x07, 0xde, 0x01, 0x17, 0x07, 0x8f, + 0xff, 0x86, 0xc8, 0x0f, 0x01, 0x04, 0x01, 0xc0, 0x40, 0x00, 0x02, 0x45, 0xa7, 0xff, 0x10, 0x8a, + 0xc3, 0x20, 0x06, 0xfe, 0x27, 0x20, 0xe3, 0x38, 0x13, 0x07, 0x23, 0x20, 0xe0, 0x22, 0x13, 0x1a, + 0x02, 0x65, 0xdf, 0xff, 0x40, 0x20, 0xe0, 0x14, 0xe0, 0x20, 0xe0, 0x16, 0xc8, 0x0c, 0x08, 0xe6, + 0x07, 0x8d, 0x08, 0xe2, 0x04, 0x58, 0x48, 0x20, 0xe0, 0x08, 0x06, 0xfe, 0xc3, 0x20, 0x08, 0xe6, + 0x27, 0x20, 0xe3, 0x38, 0x16, 0x19, 0x03, 0x80, 0xc3, 0x02, 0xc2, 0x6c, 0x00, 0x0a, 0x06, 0x99, + 0x04, 0x60, 0xc5, 0x6a, 0xc2, 0xa0, 0x07, 0xf4, 0x07, 0x8c, 0x00, 0x01, 0x07, 0x8d, 0x06, 0x06, + 0x04, 0xce, 0xc3, 0xe0, 0x06, 0x08, 0x13, 0x01, 0x06, 0x97, 0xd8, 0x20, 0x06, 0x07, 0x01, 0x17, + 0x07, 0x8b, 0xff, 0x82, 0xc8, 0x0b, 0x01, 0x04, 0x06, 0xa0, 0xcb, 0xe4, 0x04, 0x60, 0xc5, 0x6a, + 0xc2, 0xa0, 0x07, 0xee, 0x07, 0x8c, 0x00, 0x06, 0x07, 0x8d, 0x08, 0xee, 0xc3, 0xa0, 0x07, 0xe6, + 0xc3, 0xe0, 0x07, 0xe8, 0x06, 0x97, 0xc2, 0xa0, 0x07, 0xf4, 0x07, 0x8d, 0x08, 0xf4, 0x04, 0xdd, + 0x07, 0x8c, 0x00, 0x02, 0x06, 0x97, 0x07, 0x8d, 0x80, 0x00, 0xc2, 0xa0, 0x08, 0xee, 0x88, 0x0a, + 0x06, 0x0c, 0x1b, 0x14, 0x07, 0x82, 0xc7, 0x2e, 0xc3, 0xa0, 0x08, 0xf0, 0xc3, 0xe0, 0x08, 0xf2, + 0x07, 0x8b, 0xe3, 0x0c, 0x02, 0x8a, 0x00, 0x14, 0x1a, 0x04, 0x07, 0x8b, 0xea, 0x7a, 0x02, 0x2a, + 0xff, 0xec, 0xa2, 0x8a, 0xa2, 0xca, 0xc2, 0xdb, 0x13, 0x01, 0x06, 0x9b, 0xc8, 0x20, 0x08, 0xee, + 0x08, 0xf2, 0xc8, 0x20, 0xe0, 0x20, 0x08, 0xee, 0xc8, 0x0d, 0x08, 0xf0, 0x07, 0x8d, 0x08, 0xec, + 0xe0, 0x20, 0xe0, 0x18, 0x02, 0x65, 0x58, 0x00, 0x04, 0x58, 0x02, 0x45, 0xa7, 0xff, 0x03, 0x80, + 0xc0, 0x60, 0x05, 0xee, 0x02, 0x21, 0x03, 0xe8, 0x01, 0x20, 0x01, 0x02, 0x00, 0x06, 0x16, 0x07, + 0x88, 0x01, 0x05, 0xee, 0x16, 0xf9, 0x10, 0x39, 0xd0, 0x60, 0x01, 0x03, 0x13, 0xf1, 0x02, 0x01, + 0x01, 0x0a, 0xcc, 0x4c, 0xcc, 0x4c, 0xcc, 0x4e, 0xcc, 0x4f, 0x07, 0xb1, 0x00, 0x40, 0xcc, 0x4d, + 0xc8, 0x0a, 0x01, 0x00, 0x04, 0x5b, 0xc0, 0x60, 0x05, 0xee, 0x02, 0x21, 0x03, 0xe8, 0x01, 0x20, + 0x01, 0x02, 0x00, 0x06, 0x16, 0x07, 0x88, 0x01, 0x05, 0xee, 0x16, 0xf9, 0x10, 0x1e, 0xd0, 0x60, + 0x01, 0x03, 0x13, 0xf1, 0x02, 0x01, 0x01, 0x0a, 0xcc, 0x4c, 0xcc, 0x4c, 0xcc, 0x4e, 0xcc, 0x4f, + 0x07, 0xb1, 0x00, 0x40, 0xcc, 0x4d, 0xc8, 0x0a, 0x01, 0x00, 0x03, 0xa0, 0xd0, 0x60, 0x01, 0x03, + 0x13, 0x01, 0x04, 0x5b, 0xc0, 0x60, 0x05, 0xee, 0x02, 0x21, 0x03, 0xe8, 0x01, 0x20, 0x01, 0x02, + 0x00, 0x06, 0x16, 0xf7, 0x88, 0x01, 0x05, 0xee, 0x16, 0xf9, 0x04, 0xcd, 0x07, 0x8a, 0x40, 0x00, + 0xc3, 0x20, 0x01, 0x00, 0x01, 0x0c, 0x80, 0x00, 0x13, 0x02, 0x07, 0x8a, 0x20, 0x00, 0xc3, 0xa0, + 0x01, 0x0e, 0xc3, 0xe0, 0x01, 0x10, 0x03, 0xb0, 0xc3, 0x20, 0x07, 0x58, 0x23, 0x20, 0xe0, 0x04, + 0x13, 0x02, 0x04, 0x60, 0xc4, 0xec, 0x04, 0x60, 0xb3, 0x8a, 0x07, 0x8d, 0x20, 0x00, 0x20, 0x20, + 0xe0, 0x0a, 0x16, 0x01, 0x04, 0x5b, 0x02, 0x0d, 0x0c, 0x32, 0xc2, 0x5d, 0x11, 0x01, 0x04, 0xdd, + 0x05, 0xcd, 0x88, 0x0d, 0x0c, 0x30, 0x16, 0xf9, 0xc2, 0x60, 0x06, 0x0a, 0x07, 0x8d, 0x09, 0x6a, + 0x06, 0xa0, 0xcc, 0x24, 0x02, 0x09, 0x00, 0x6e, 0xc3, 0xe0, 0x09, 0x30, 0x16, 0x03, 0x01, 0xe0, + 0x09, 0x6a, 0x00, 0x10, 0xc2, 0xe0, 0x09, 0x6a, 0x02, 0x0f, 0x01, 0x00, 0x26, 0xc9, 0x13, 0x02, + 0x04, 0x60, 0xca, 0xb6, 0x02, 0x09, 0x12, 0x00, 0x01, 0x4b, 0x00, 0x10, 0x13, 0x02, 0x02, 0x09, + 0x13, 0x00, 0xd8, 0x09, 0x09, 0x2e, 0x07, 0x8f, 0x40, 0x00, 0x07, 0x89, 0x09, 0x6c, 0x04, 0xcb, + 0xe2, 0xf9, 0xe2, 0xf9, 0xe2, 0xf9, 0x16, 0x07, 0x07, 0x8b, 0x09, 0x34, 0x07, 0x8c, 0x09, 0x6c, + 0xcf, 0x3b, 0xcf, 0x3b, 0xc7, 0x1b, 0xc3, 0x20, 0x09, 0x6c, 0x11, 0x19, 0x07, 0x8f, 0x20, 0x00, + 0x07, 0x89, 0x09, 0x7a, 0x06, 0xa0, 0xc8, 0x98, 0x06, 0xa0, 0xc8, 0x98, 0x10, 0x12, 0xce, 0x4c, + 0x04, 0x5b, 0xc3, 0x19, 0x16, 0x02, 0x07, 0x8c, 0x00, 0x1a, 0xc3, 0x4c, 0x02, 0x2d, 0xff, 0xf8, + 0x02, 0x0a, 0x00, 0x09, 0x02, 0x2d, 0xff, 0xfa, 0x13, 0xf2, 0x06, 0x0a, 0x16, 0xfb, 0x04, 0x60, + 0xca, 0xb6, 0x07, 0x8f, 0x10, 0x00, 0xc2, 0xd9, 0x11, 0xfa, 0x16, 0x02, 0x07, 0x8b, 0x04, 0x00, + 0xc3, 0x4b, 0x02, 0x8d, 0x00, 0x20, 0x14, 0x02, 0x02, 0x0d, 0x00, 0x20, 0x02, 0x8d, 0x04, 0x00, + 0x12, 0x02, 0x02, 0x0d, 0x04, 0x00, 0x02, 0x2d, 0xff, 0xf8, 0xc8, 0x0d, 0x09, 0x2c, 0x02, 0x2b, + 0x03, 0xff, 0x01, 0x8b, 0x03, 0xff, 0xce, 0x4b, 0x04, 0xcb, 0x04, 0xe0, 0x05, 0xf8, 0x04, 0xe0, + 0x09, 0x66, 0xc8, 0x20, 0x0c, 0x30, 0x09, 0x80, 0x07, 0xa0, 0x09, 0x82, 0xdf, 0xfe, 0x07, 0x8d, + 0xdf, 0xfe, 0xc3, 0xe0, 0x07, 0xd8, 0x23, 0xe0, 0xe0, 0x16, 0x16, 0x24, 0xc3, 0xe0, 0x0c, 0x30, + 0x63, 0x4f, 0x04, 0xff, 0x04, 0xff, 0x06, 0x4d, 0x16, 0xfd, 0x07, 0x8d, 0xdf, 0xfe, 0x04, 0x20, + 0xea, 0x62, 0xc3, 0xa0, 0xea, 0x62, 0xc3, 0xee, 0x00, 0x12, 0x16, 0xc1, 0xc3, 0x6e, 0x00, 0x18, + 0x09, 0xad, 0x07, 0x8c, 0xe0, 0x00, 0x09, 0xac, 0x63, 0x0d, 0x13, 0x0c, 0xc3, 0x6e, 0x00, 0x18, + 0x09, 0xad, 0x02, 0x2d, 0x00, 0x40, 0x0a, 0x1d, 0x02, 0x2d, 0x0c, 0x32, 0x07, 0xbd, 0x7f, 0xff, + 0x06, 0x0c, 0x16, 0xfc, 0xc3, 0x20, 0x04, 0x46, 0x02, 0x8c, 0x00, 0x80, 0x1a, 0x13, 0x02, 0xac, + 0xc8, 0x0c, 0x00, 0x9a, 0x02, 0xe0, 0x00, 0x80, 0x07, 0x88, 0x00, 0x80, 0xc2, 0x60, 0x04, 0x46, + 0x06, 0xa0, 0xf4, 0xd2, 0x10, 0x02, 0x00, 0x9d, 0x10, 0x05, 0x00, 0x9d, 0x07, 0x8f, 0x08, 0x00, + 0x04, 0x60, 0xca, 0xb6, 0x2d, 0x4b, 0xc3, 0x81, 0x05, 0xc9, 0x07, 0x8f, 0x10, 0x00, 0x02, 0x8e, + 0x00, 0x02, 0x11, 0xf6, 0x07, 0x8f, 0x04, 0x00, 0x05, 0xc9, 0xc2, 0xd9, 0x26, 0xe0, 0xe0, 0x26, + 0x16, 0x02, 0x02, 0x2b, 0x00, 0x06, 0xc6, 0x4b, 0xc3, 0x4b, 0x72, 0xcb, 0x02, 0x2e, 0xff, 0xfe, + 0x83, 0x8b, 0x1b, 0xe6, 0x06, 0xcd, 0x73, 0x4d, 0x82, 0xcd, 0x1b, 0xe2, 0x04, 0xe0, 0x09, 0x1a, + 0x04, 0xe0, 0x09, 0x1c, 0xc3, 0x4d, 0x13, 0x02, 0x66, 0x60, 0xe0, 0x12, 0x05, 0xc9, 0x04, 0xcf, + 0x2d, 0x81, 0xc8, 0x01, 0x01, 0x6c, 0x13, 0xd4, 0xc8, 0x0f, 0xfc, 0x00, 0xc3, 0xc1, 0x06, 0x0d, + 0x15, 0xf7, 0x02, 0x0d, 0x07, 0x36, 0x02, 0x0e, 0x08, 0x98, 0x02, 0x0c, 0x00, 0x03, 0xcb, 0x8d, + 0x00, 0x02, 0x2d, 0x81, 0xcb, 0x81, 0x00, 0x06, 0x13, 0xc3, 0x04, 0xee, 0x00, 0x0c, 0x02, 0x2e, + 0x00, 0x18, 0x06, 0x0c, 0x16, 0xf4, 0x04, 0xe0, 0x08, 0x96, 0x2e, 0x1f, 0xc3, 0xb9, 0xc3, 0xd9, + 0x07, 0x89, 0x00, 0x12, 0x07, 0x8d, 0x09, 0x3a, 0x06, 0xa0, 0xcc, 0x24, 0xc3, 0x60, 0x07, 0xd8, + 0x23, 0x60, 0xe0, 0x16, 0x16, 0x09, 0xe8, 0x20, 0xe0, 0x10, 0x09, 0x6a, 0xe8, 0x20, 0xe0, 0x18, + 0x07, 0x98, 0xe8, 0x20, 0xe0, 0x12, 0x07, 0x78, 0xc3, 0x60, 0x09, 0x6a, 0x23, 0x60, 0xe0, 0x1e, + 0x16, 0x03, 0x48, 0x20, 0xe3, 0xa4, 0x09, 0x6a, 0x23, 0x60, 0xe0, 0x22, 0x13, 0x06, 0x27, 0x60, + 0xe3, 0xa6, 0x13, 0x03, 0xe8, 0x20, 0xe0, 0x10, 0x09, 0x6a, 0x2d, 0x20, 0x00, 0x00, 0x07, 0x8e, + 0x00, 0x00, 0x06, 0xa0, 0xcc, 0x04, 0x05, 0x4e, 0x2c, 0x0e, 0xc0, 0xa0, 0x08, 0x04, 0xc3, 0xef, + 0x00, 0x06, 0x16, 0x1b, 0xc3, 0xa0, 0x09, 0x72, 0xc3, 0xe0, 0x09, 0x74, 0x06, 0xa0, 0xca, 0xf2, + 0xc3, 0xa0, 0x09, 0x76, 0xc3, 0xe0, 0x09, 0x78, 0x06, 0xa0, 0xcb, 0x10, 0xe0, 0x20, 0xe0, 0x0a, + 0xc3, 0x60, 0x07, 0xd8, 0x23, 0x60, 0xe0, 0x16, 0x16, 0x05, 0x04, 0xe0, 0x06, 0x2e, 0x41, 0x60, + 0xe0, 0x04, 0x2e, 0x4d, 0x07, 0x8d, 0x80, 0x00, 0x04, 0x52, 0x73, 0xcf, 0x02, 0x2f, 0x02, 0x00, + 0xc3, 0x4f, 0x04, 0x52, 0x20, 0x20, 0xe0, 0x0a, 0x13, 0x03, 0x07, 0x8d, 0x10, 0x00, 0x04, 0x5b, + 0x40, 0x20, 0xe0, 0x0a, 0x02, 0x40, 0xf0, 0xff, 0x07, 0x8e, 0x00, 0x02, 0x06, 0xa0, 0xcc, 0x04, + 0x05, 0x4e, 0x2c, 0x0e, 0xc0, 0xa0, 0x08, 0x04, 0x06, 0xa0, 0xcb, 0xe4, 0xc3, 0x60, 0x07, 0xd8, + 0x23, 0x60, 0xe0, 0x16, 0x16, 0x66, 0x04, 0x20, 0xea, 0x76, 0x10, 0x63, 0x02, 0x6e, 0x80, 0x00, + 0x07, 0x8d, 0xc0, 0x00, 0xc8, 0x0d, 0x01, 0xa6, 0xc8, 0x0e, 0x09, 0x72, 0xc8, 0x0f, 0x09, 0x74, + 0xc8, 0x0e, 0x01, 0xa8, 0xc8, 0x0f, 0x01, 0xaa, 0x10, 0x12, 0x01, 0x8f, 0x00, 0x01, 0x07, 0x8a, + 0x09, 0x76, 0xe3, 0xa0, 0x09, 0x4e, 0xce, 0x8e, 0x01, 0x9a, 0xff, 0xfe, 0xe3, 0xe0, 0x09, 0x50, + 0xe6, 0x8f, 0x07, 0x8a, 0x01, 0xac, 0xce, 0x8e, 0x01, 0x9a, 0xff, 0xfe, 0xe6, 0x8f, 0x20, 0x20, + 0xe0, 0x0a, 0x13, 0x3f, 0x07, 0x8d, 0x10, 0x00, 0x04, 0x5b, 0x20, 0x20, 0xe0, 0x0a, 0x13, 0x03, + 0x02, 0x0d, 0x10, 0x00, 0x04, 0x5b, 0xc3, 0x8e, 0x13, 0x04, 0x01, 0xe0, 0x09, 0x50, 0x01, 0x00, + 0x10, 0x06, 0x01, 0xa0, 0x09, 0x50, 0x01, 0x00, 0x01, 0xa0, 0x09, 0x78, 0x01, 0x00, 0xc3, 0xa0, + 0x09, 0x76, 0xc3, 0xe0, 0x09, 0x78, 0xe3, 0xa0, 0x09, 0x4e, 0xe3, 0xe0, 0x09, 0x50, 0xc8, 0x0e, + 0x01, 0xac, 0xc8, 0x0f, 0x01, 0xae, 0xc8, 0x0e, 0x09, 0x76, 0xc8, 0x0f, 0x09, 0x78, 0x10, 0x19, + 0x02, 0x6e, 0x80, 0x00, 0xc8, 0x0e, 0x01, 0xa6, 0x20, 0x20, 0xe0, 0x0a, 0x13, 0x12, 0x02, 0x0d, + 0x10, 0x00, 0x04, 0x5b, 0x07, 0x8d, 0x07, 0x28, 0x07, 0x89, 0x00, 0x0e, 0x06, 0xa0, 0xcc, 0x2a, + 0x07, 0x8d, 0x07, 0x28, 0x04, 0xfd, 0x02, 0x8d, 0x07, 0x36, 0x16, 0xfc, 0x48, 0x20, 0xe0, 0x14, + 0x06, 0xfe, 0x07, 0x8d, 0x80, 0x00, 0x04, 0x52, 0xc2, 0xa0, 0x07, 0xee, 0x07, 0x8c, 0x00, 0x04, + 0x07, 0x8d, 0x08, 0xf0, 0x06, 0x97, 0xc2, 0x7d, 0xc3, 0x5d, 0x43, 0x60, 0xe0, 0x22, 0x06, 0xa0, + 0xcc, 0x2a, 0x10, 0xef, 0xc8, 0x0e, 0x06, 0x06, 0xc8, 0x0f, 0x06, 0x08, 0x10, 0xea, 0x03, 0xb0, + 0x01, 0xa0, 0x07, 0x60, 0x00, 0x26, 0x02, 0x40, 0xc0, 0x00, 0x04, 0xe0, 0x06, 0x06, 0x07, 0x8c, + 0x40, 0x10, 0x44, 0xcc, 0x04, 0xe0, 0x06, 0xfe, 0x07, 0x85, 0x80, 0x40, 0x04, 0x5b, 0xc8, 0x02, + 0x08, 0x04, 0x07, 0x8f, 0x07, 0xfa, 0xcb, 0xce, 0x00, 0x02, 0x07, 0x8e, 0x07, 0x36, 0xcb, 0xce, + 0x00, 0x04, 0x07, 0x8d, 0x06, 0x30, 0x07, 0x8e, 0x00, 0x10, 0x2c, 0x4d, 0x04, 0x5b, 0xc2, 0xa0, + 0x07, 0xf2, 0x10, 0x02, 0xc2, 0xa0, 0x07, 0xf8, 0xc8, 0x0b, 0x08, 0xea, 0xc3, 0x09, 0x13, 0x0a, + 0x06, 0xa0, 0xc7, 0x94, 0xc2, 0xa0, 0x01, 0x00, 0xe2, 0xa0, 0xe0, 0x06, 0xa3, 0x4c, 0xa3, 0xcc, + 0x17, 0x01, 0x05, 0x8e, 0x62, 0x4c, 0xc2, 0xe0, 0x08, 0xea, 0x04, 0x5b, 0x07, 0x8d, 0x10, 0x00, + 0x20, 0x20, 0xe0, 0x0a, 0x13, 0x01, 0x04, 0x5b, 0x02, 0x0d, 0x00, 0x6e, 0xc3, 0xe0, 0x09, 0x30, + 0x16, 0x02, 0x01, 0xce, 0x00, 0x10, 0x27, 0x8d, 0x13, 0x03, 0x02, 0x0d, 0x01, 0x00, 0x04, 0x52, + 0x03, 0x00, 0x00, 0x02, 0xc3, 0x60, 0x09, 0x6a, 0x02, 0x4d, 0x80, 0x08, 0x02, 0x4e, 0x7f, 0xf7, + 0xe3, 0x8d, 0xc3, 0xe0, 0x07, 0xd8, 0x23, 0xe0, 0xe0, 0x16, 0x13, 0x04, 0x07, 0x8d, 0x00, 0x06, + 0x27, 0x8d, 0x13, 0x02, 0xe3, 0xa0, 0xe0, 0x10, 0xc8, 0x0e, 0x09, 0x6a, 0x02, 0x0d, 0x12, 0x00, + 0x01, 0x4e, 0x00, 0x10, 0x13, 0x02, 0x02, 0x0d, 0x13, 0x00, 0xd8, 0x0d, 0x09, 0x2e, 0xc3, 0x60, + 0x01, 0x80, 0x02, 0x4e, 0x00, 0x01, 0x02, 0x4d, 0xff, 0xfe, 0xe3, 0x4e, 0xc8, 0x0d, 0x01, 0x80, + 0xd8, 0x20, 0xe2, 0x40, 0x09, 0x2f, 0x01, 0x20, 0x09, 0x6a, 0x00, 0x06, 0x13, 0x03, 0xd8, 0x20, + 0xe1, 0xd0, 0x09, 0x2f, 0x98, 0x20, 0x01, 0x83, 0xe2, 0x00, 0x13, 0x03, 0xd8, 0x20, 0x09, 0x2f, + 0x01, 0x83, 0x03, 0x00, 0x00, 0x0f, 0x04, 0x60, 0xcb, 0xb8, 0x20, 0x20, 0xe0, 0x0a, 0x13, 0x03, + 0x02, 0x0d, 0x10, 0x00, 0x04, 0x5b, 0x02, 0x09, 0x00, 0x08, 0x02, 0x0d, 0x09, 0x58, 0x06, 0xa0, + 0xcc, 0x24, 0x07, 0xa0, 0x02, 0x02, 0x00, 0x00, 0x02, 0x0d, 0x04, 0x00, 0xc3, 0xe0, 0x09, 0x58, + 0x01, 0x0f, 0x7c, 0x00, 0x13, 0x01, 0x04, 0x52, 0xc3, 0x8f, 0x02, 0x4e, 0x00, 0x0f, 0x13, 0xfb, + 0x02, 0x8e, 0x00, 0x0f, 0x13, 0xf8, 0x02, 0x0d, 0x40, 0x00, 0xc2, 0x4f, 0x09, 0x49, 0x02, 0x49, + 0x00, 0x3f, 0x01, 0x09, 0x00, 0x01, 0x16, 0xef, 0x02, 0x89, 0x00, 0x06, 0x1a, 0xec, 0x02, 0x89, + 0x00, 0x20, 0x14, 0xe9, 0x06, 0xc9, 0x09, 0x1f, 0x02, 0x4f, 0x40, 0x00, 0xe2, 0x4f, 0x02, 0x69, + 0x80, 0x00, 0xc8, 0x09, 0x09, 0x58, 0x02, 0x0f, 0xff, 0xff, 0xc2, 0x4e, 0x09, 0x1f, 0x06, 0x09, + 0x16, 0xfd, 0x05, 0x4f, 0x02, 0x0d, 0x20, 0x00, 0xc2, 0x60, 0x09, 0x5a, 0x13, 0xd4, 0x26, 0x4f, + 0x16, 0xd2, 0x02, 0x0d, 0x10, 0x00, 0xc2, 0x60, 0x09, 0x5c, 0x13, 0xcd, 0x26, 0x4f, 0x16, 0xcb, + 0x02, 0x0d, 0x30, 0x00, 0x88, 0x20, 0x09, 0x5a, 0x09, 0x5c, 0x13, 0xc5, 0xc3, 0xe0, 0x09, 0x5a, + 0xc2, 0x4e, 0x0a, 0x1f, 0x06, 0x09, 0x16, 0xfd, 0xe3, 0xe0, 0x09, 0x5e, 0xc8, 0x0f, 0x09, 0x5a, + 0xc3, 0xe0, 0x09, 0x5c, 0xc2, 0x4e, 0x0a, 0x1f, 0x06, 0x09, 0x16, 0xfd, 0xe3, 0xe0, 0x09, 0x5e, + 0xc8, 0x0f, 0x09, 0x5c, 0x02, 0x0f, 0xff, 0xff, 0xc2, 0x4e, 0x0a, 0x1f, 0x06, 0x09, 0x16, 0xfd, + 0x02, 0x0d, 0x08, 0x00, 0xc2, 0x60, 0x09, 0x5e, 0x26, 0x4f, 0x16, 0xa5, 0x05, 0x4f, 0xc8, 0x0f, + 0x09, 0x5e, 0x02, 0x0f, 0x02, 0x02, 0x02, 0x0e, 0x00, 0x03, 0xc3, 0x60, 0x01, 0x40, 0x02, 0x0c, + 0xce, 0x26, 0x01, 0xa0, 0x01, 0x40, 0x04, 0x00, 0x05, 0xcf, 0x02, 0x09, 0x55, 0x55, 0x06, 0x9c, + 0x05, 0x49, 0x06, 0x9c, 0x07, 0x09, 0x06, 0x9c, 0x05, 0x49, 0x06, 0x9c, 0x06, 0x0e, 0x16, 0xf4, + 0x01, 0xa0, 0x01, 0x40, 0x40, 0x00, 0xc8, 0x0d, 0x01, 0x40, 0x02, 0x09, 0x00, 0x08, 0x02, 0x0e, + 0x09, 0x58, 0x02, 0x0f, 0x02, 0x02, 0xcf, 0xfe, 0x06, 0x49, 0x16, 0xfd, 0x04, 0x60, 0xcb, 0xb8, + 0xc7, 0xc9, 0x82, 0x5f, 0x16, 0x01, 0x04, 0x5b, 0x01, 0xa0, 0x01, 0x40, 0x40, 0x00, 0xc8, 0x0d, + 0x01, 0x40, 0x02, 0x0d, 0x01, 0x00, 0x04, 0x52, 0x00, 0x00, 0xd8, 0xee, 0x00, 0x92, 0xc2, 0xad, + 0x00, 0x02, 0xc2, 0x6d, 0x00, 0x00, 0x16, 0x05, 0x07, 0xaa, 0x00, 0x02, 0x07, 0x36, 0x2c, 0x9a, + 0x03, 0x80, 0x2c, 0xea, 0x00, 0x02, 0xcb, 0x41, 0x00, 0x00, 0x03, 0x80, 0xc3, 0x2d, 0x00, 0x18, + 0x07, 0xac, 0x00, 0x02, 0x07, 0x36, 0x4b, 0x20, 0xea, 0xa6, 0x00, 0x0a, 0xeb, 0x20, 0xea, 0xa0, + 0x00, 0x0a, 0x2e, 0x9c, 0x03, 0x80, 0xc2, 0xa0, 0xe0, 0x22, 0x04, 0x60, 0xb3, 0x8a, 0xc0, 0xed, + 0x00, 0x18, 0x06, 0xa0, 0xd9, 0x5e, 0x03, 0x80, 0xc2, 0x44, 0xc0, 0xc3, 0x13, 0x02, 0x06, 0xa0, + 0xd9, 0x5e, 0xc3, 0x19, 0xcb, 0x09, 0x00, 0x18, 0x05, 0xc9, 0xcb, 0x19, 0x00, 0x16, 0xc2, 0x4c, + 0x02, 0x2c, 0x00, 0x1a, 0xcf, 0x0d, 0xcf, 0x0e, 0xc7, 0x0f, 0x00, 0x99, 0x04, 0x5b, 0x07, 0x8c, + 0x09, 0x0a, 0xc2, 0x9c, 0x22, 0xa0, 0xe0, 0x14, 0x13, 0x06, 0xc2, 0xa0, 0x07, 0x58, 0x22, 0xa0, + 0xe0, 0x20, 0x16, 0x01, 0x03, 0x80, 0xc1, 0x03, 0x04, 0xc3, 0x07, 0x8a, 0x00, 0x04, 0xa2, 0x84, + 0x00, 0x00, 0xd9, 0x80, 0x00, 0x0b, 0xcf, 0x3a, 0x00, 0x00, 0xd9, 0x8a, 0x00, 0xb2, 0x02, 0xe0, + 0x07, 0x58, 0x07, 0x8d, 0x09, 0x0a, 0xc8, 0x0b, 0x07, 0xc2, 0x06, 0xa0, 0xc5, 0xa2, 0xc2, 0xe0, + 0x07, 0xc2, 0xe0, 0x20, 0xe0, 0x20, 0x02, 0xe0, 0x07, 0xb8, 0x04, 0x5b, 0xc3, 0x2d, 0x00, 0x18, + 0xc2, 0x8c, 0xc2, 0x60, 0x01, 0x6c, 0xc8, 0x0a, 0x01, 0x6c, 0xc2, 0xe0, 0xfc, 0x00, 0x13, 0x02, + 0xc2, 0x8b, 0x10, 0xf9, 0xc8, 0x09, 0x01, 0x6c, 0x07, 0x8b, 0x05, 0xf8, 0xc2, 0x5b, 0x13, 0x0c, + 0x05, 0xcb, 0xc2, 0x5b, 0xc6, 0xca, 0xc2, 0xe0, 0x01, 0x6c, 0xc8, 0x09, 0x01, 0x6c, 0xc8, 0x0c, + 0xfc, 0x00, 0xc8, 0x0b, 0x01, 0x6c, 0x10, 0x02, 0xce, 0xcc, 0xc6, 0xca, 0xc2, 0xa0, 0x00, 0xe0, + 0x22, 0xa0, 0xe0, 0x1a, 0x16, 0x06, 0xe8, 0x20, 0xe0, 0x04, 0x07, 0x3a, 0x48, 0x20, 0xe0, 0x1a, + 0x00, 0xe0, 0x03, 0x80, 0xd3, 0xe0, 0xe3, 0xab, 0xc1, 0xe0, 0x06, 0xa8, 0x16, 0x05, 0x02, 0x07, + 0x06, 0xa2, 0x06, 0xa0, 0xc2, 0x96, 0x16, 0x0b, 0xc1, 0xe0, 0x06, 0xba, 0x16, 0x20, 0x02, 0x07, + 0x06, 0xb4, 0x06, 0xa0, 0xc2, 0x96, 0x13, 0x1b, 0x02, 0x07, 0x06, 0xb8, 0x10, 0x02, 0x02, 0x07, + 0x06, 0xa6, 0xc1, 0x60, 0xfc, 0x02, 0xc8, 0x25, 0x00, 0x0c, 0xfc, 0x02, 0xc9, 0xc5, 0x00, 0x0c, + 0x00, 0x00, 0xda, 0x3c, 0x00, 0x0b, 0xcd, 0xf5, 0x00, 0x00, 0xda, 0x46, 0x19, 0x3a, 0xc5, 0xf5, + 0x01, 0xb7, 0x00, 0x28, 0x02, 0x27, 0xff, 0xf4, 0x07, 0xa7, 0x00, 0x04, 0xdb, 0x48, 0x2e, 0x97, + 0x10, 0xd5, 0x03, 0x00, 0x00, 0x02, 0x06, 0xa0, 0xc2, 0xae, 0x03, 0x00, 0x00, 0x0f, 0x2c, 0x20, + 0xed, 0x48, 0x93, 0xe0, 0xe3, 0xab, 0x16, 0x03, 0x02, 0x81, 0x00, 0x16, 0x16, 0xc7, 0xc1, 0x21, + 0xea, 0xb0, 0x04, 0x54, 0x93, 0xe0, 0xe0, 0x10, 0x16, 0x03, 0xd2, 0xa0, 0xe3, 0xa8, 0x10, 0x0b, + 0xd3, 0xcf, 0x16, 0x09, 0x23, 0xa0, 0xe0, 0x08, 0x16, 0x06, 0x07, 0x84, 0x00, 0x20, 0xe8, 0x04, + 0x06, 0xd2, 0xd2, 0xa0, 0xe0, 0x0c, 0x04, 0x60, 0xdb, 0xc0, 0x04, 0x60, 0xde, 0x34, 0x10, 0x7b, + 0xc1, 0x22, 0x00, 0x04, 0x04, 0xe2, 0x00, 0x02, 0x04, 0x54, 0xc8, 0x02, 0x01, 0x6c, 0xa0, 0x82, + 0xc8, 0x22, 0x0c, 0x32, 0xfc, 0x00, 0x02, 0x02, 0xfc, 0x00, 0x93, 0xe0, 0xe3, 0xaa, 0x13, 0x70, + 0x06, 0xa0, 0xdc, 0xc6, 0x48, 0xa0, 0xe0, 0x04, 0x00, 0x0e, 0x02, 0x85, 0x00, 0x07, 0x13, 0x0e, + 0x01, 0x0e, 0x00, 0x03, 0x13, 0x0b, 0x23, 0xa0, 0xe0, 0x22, 0x16, 0x03, 0xd2, 0xa0, 0xe0, 0x0e, + 0x10, 0x02, 0xd2, 0xa0, 0xe3, 0xa8, 0x01, 0x8e, 0x00, 0x03, 0x10, 0x5a, 0xc8, 0x05, 0x06, 0xfc, + 0xc0, 0xc3, 0x16, 0x53, 0x43, 0xa0, 0xe0, 0x10, 0x88, 0x22, 0x00, 0x0e, 0x09, 0x6c, 0x16, 0x0a, + 0x88, 0x22, 0x00, 0x10, 0x09, 0x6e, 0x16, 0x06, 0x88, 0x22, 0x00, 0x12, 0x09, 0x70, 0x16, 0x02, + 0xe3, 0xa0, 0xe0, 0x10, 0x02, 0x85, 0x00, 0x09, 0x13, 0x02, 0x06, 0xa0, 0xe2, 0xe4, 0xa1, 0x45, + 0xc1, 0x65, 0xe3, 0xac, 0x04, 0x55, 0xc0, 0x62, 0x00, 0x04, 0xc8, 0x22, 0x00, 0x06, 0x01, 0x6c, + 0x02, 0x82, 0x04, 0x48, 0x1b, 0x02, 0x43, 0xa0, 0xe0, 0x0c, 0xc1, 0x22, 0x00, 0x0e, 0x04, 0x51, + 0xc0, 0x42, 0x04, 0xe1, 0x00, 0x02, 0xc0, 0xa2, 0x00, 0x0c, 0xc1, 0x22, 0x00, 0x0a, 0x21, 0x20, + 0xe0, 0x18, 0x13, 0x07, 0xc8, 0xa1, 0x00, 0x0a, 0x00, 0x0a, 0xc8, 0xa1, 0x00, 0x08, 0x00, 0x08, + 0x10, 0xe2, 0xc8, 0x22, 0x00, 0x06, 0x01, 0x6c, 0x06, 0xa0, 0xe1, 0xa2, 0x04, 0x60, 0xdb, 0x9e, + 0xc8, 0x02, 0x06, 0xd4, 0xc1, 0x62, 0x00, 0x02, 0xc1, 0x65, 0xe3, 0xce, 0x04, 0x55, 0x10, 0x0b, + 0x07, 0x85, 0x03, 0xf4, 0x04, 0xf5, 0xcd, 0x60, 0xed, 0x26, 0x06, 0xa0, 0xe3, 0xce, 0xe3, 0xa0, + 0xe0, 0x0c, 0x2e, 0xa0, 0x03, 0xf4, 0x04, 0x60, 0xda, 0x04, 0x06, 0xa0, 0xe0, 0x6e, 0x10, 0x0c, + 0x06, 0xa0, 0xe1, 0xa2, 0x10, 0x09, 0x06, 0xa0, 0xe3, 0x56, 0x10, 0x06, 0x06, 0xa0, 0xe1, 0xa2, + 0xc8, 0x03, 0x09, 0x2a, 0xd2, 0xa0, 0xe3, 0xaa, 0x06, 0xa0, 0xdc, 0x32, 0x92, 0xa0, 0xe0, 0x26, + 0x16, 0x0c, 0xd3, 0xe0, 0xe0, 0x26, 0x23, 0xe0, 0xe0, 0x14, 0x13, 0x0a, 0xc1, 0x0a, 0x83, 0xc4, + 0x13, 0x07, 0xc3, 0xc4, 0xc1, 0x24, 0xe3, 0xd2, 0x04, 0x54, 0x93, 0xca, 0x13, 0xdc, 0xd3, 0xca, + 0x03, 0xb0, 0xd8, 0x0f, 0x06, 0x59, 0x71, 0x04, 0xc1, 0x24, 0xe3, 0xde, 0x04, 0x54, 0x23, 0xa0, + 0xe0, 0x0c, 0x13, 0xd1, 0xc3, 0x4d, 0x13, 0xcf, 0x07, 0x86, 0x00, 0x02, 0x07, 0x84, 0x00, 0x26, + 0x23, 0x46, 0x13, 0x03, 0x06, 0x44, 0xa1, 0x86, 0x10, 0xfb, 0x43, 0x46, 0x10, 0xb9, 0x07, 0x85, + 0x07, 0x1c, 0x07, 0x86, 0x04, 0x1a, 0x6d, 0x76, 0x6d, 0x76, 0x6d, 0x76, 0x05, 0xc6, 0x6d, 0x76, + 0x6d, 0x76, 0x6d, 0x76, 0x07, 0x83, 0x90, 0x00, 0x10, 0xbe, 0xc3, 0x0b, 0x07, 0x86, 0x01, 0x00, + 0x07, 0x85, 0x80, 0x00, 0xc1, 0x20, 0x06, 0xd2, 0x13, 0x37, 0x04, 0xc4, 0xc0, 0x60, 0x06, 0xd2, + 0x20, 0x45, 0x13, 0x04, 0x05, 0x84, 0x09, 0x15, 0x16, 0xf9, 0x10, 0x2e, 0xd3, 0xcf, 0x16, 0x06, + 0x23, 0xe0, 0xe0, 0x14, 0x16, 0x03, 0x01, 0x0e, 0x00, 0x03, 0x13, 0x03, 0x04, 0xe0, 0x06, 0xd2, + 0x10, 0x23, 0xd0, 0x64, 0x07, 0x1c, 0xb0, 0x46, 0x18, 0x10, 0xd9, 0x01, 0x07, 0x1c, 0x23, 0x60, + 0xe0, 0x20, 0x13, 0x0b, 0x07, 0x81, 0x00, 0x18, 0xc0, 0x61, 0xe3, 0xee, 0x88, 0x11, 0xed, 0x26, + 0x13, 0x04, 0x02, 0x08, 0x80, 0x18, 0x06, 0xa0, 0xe0, 0x22, 0xd0, 0x64, 0x07, 0x28, 0xb0, 0x46, + 0x18, 0x08, 0xd9, 0x01, 0x07, 0x28, 0xb0, 0x46, 0x17, 0x04, 0x07, 0x83, 0x80, 0x40, 0x06, 0xa0, + 0xe3, 0x56, 0x48, 0x05, 0x06, 0xd2, 0x16, 0xca, 0xc1, 0x20, 0x09, 0x32, 0x16, 0x01, 0x04, 0x5c, + 0x02, 0x04, 0x00, 0x07, 0x06, 0x20, 0x09, 0x32, 0x02, 0x05, 0x01, 0x00, 0x10, 0xc7, 0xc3, 0x0b, + 0x04, 0xc5, 0xc0, 0x42, 0x04, 0xc7, 0xc2, 0x20, 0x01, 0x6c, 0xa1, 0xe1, 0x00, 0x04, 0xc8, 0x11, + 0x01, 0x6c, 0x16, 0xfb, 0xc8, 0x08, 0x01, 0x6c, 0x04, 0xc8, 0x43, 0xa0, 0xe0, 0x1a, 0xc1, 0x22, + 0x00, 0x0e, 0x15, 0x0d, 0x13, 0x0c, 0xe3, 0xa0, 0xe0, 0x1a, 0x06, 0xa0, 0xe3, 0x40, 0xc2, 0x08, + 0x13, 0x48, 0x02, 0x88, 0x00, 0x12, 0x1b, 0x45, 0x22, 0x20, 0xe0, 0x22, 0x13, 0x42, 0xc1, 0x02, + 0xa1, 0x08, 0x05, 0x08, 0x02, 0x28, 0xff, 0xf2, 0xa2, 0x07, 0x07, 0x83, 0x80, 0x01, 0x02, 0x88, + 0x00, 0x04, 0x11, 0x6e, 0xc2, 0x64, 0x00, 0x16, 0xd2, 0x49, 0x16, 0x02, 0x81, 0x02, 0x16, 0x31, + 0x01, 0x09, 0xf0, 0x00, 0x16, 0x28, 0xc1, 0x49, 0x71, 0x45, 0x04, 0xc3, 0x02, 0x85, 0x00, 0x09, + 0x13, 0x7c, 0x07, 0x83, 0x80, 0x02, 0xc1, 0xa4, 0x00, 0x14, 0x81, 0x88, 0x16, 0x76, 0x05, 0x83, + 0x02, 0x85, 0x00, 0x10, 0x1b, 0x13, 0x05, 0x83, 0x99, 0x49, 0xea, 0xd0, 0x13, 0x0a, 0x98, 0x09, + 0xe0, 0x0e, 0x16, 0x6b, 0x98, 0x25, 0xea, 0xd0, 0xe0, 0x0c, 0x16, 0x67, 0xc1, 0xe0, 0x06, 0xec, + 0x16, 0x64, 0x04, 0xc3, 0xc2, 0x52, 0x13, 0x0f, 0x07, 0x83, 0x80, 0x09, 0xc1, 0xe0, 0x09, 0x6a, + 0x01, 0x47, 0x10, 0x00, 0x16, 0x5a, 0xc0, 0xa0, 0x01, 0x6c, 0x06, 0xa0, 0xe1, 0xfa, 0x04, 0x60, + 0xdb, 0x9e, 0x04, 0x60, 0xdb, 0xa8, 0x07, 0x89, 0x07, 0x0e, 0x04, 0xc7, 0xd1, 0xe5, 0xea, 0xe1, + 0x13, 0x05, 0x06, 0xc7, 0x02, 0x27, 0xea, 0xf2, 0xce, 0x77, 0x15, 0xfe, 0xc0, 0x44, 0x02, 0x21, + 0x00, 0x18, 0x02, 0x28, 0xff, 0xfc, 0x13, 0x36, 0xc1, 0x91, 0xd1, 0x86, 0x13, 0x1f, 0x06, 0xc6, + 0x07, 0x87, 0x07, 0x0e, 0xc0, 0xf7, 0x02, 0x46, 0xbf, 0xff, 0x02, 0x43, 0x3f, 0xff, 0x91, 0xa0, + 0xed, 0x4d, 0x16, 0x09, 0x03, 0xb0, 0x98, 0x20, 0xe0, 0x0e, 0x06, 0x5d, 0x16, 0x0f, 0xc8, 0x21, + 0x00, 0x02, 0x07, 0x0c, 0x10, 0x17, 0x82, 0x47, 0x1b, 0x0c, 0x90, 0xc6, 0x16, 0xeb, 0x06, 0x47, + 0x04, 0xf7, 0x03, 0xb0, 0x98, 0x20, 0x06, 0x5d, 0x06, 0x57, 0x13, 0x0c, 0x07, 0x83, 0x80, 0x05, + 0x10, 0x1c, 0xc0, 0xd1, 0x20, 0xe0, 0xe0, 0x16, 0x16, 0x03, 0x07, 0x83, 0x80, 0x08, 0x10, 0x15, + 0x44, 0x60, 0xe0, 0x26, 0x71, 0x86, 0xa0, 0x46, 0x62, 0x06, 0x07, 0x83, 0x80, 0x05, 0xc2, 0x08, + 0x15, 0xcb, 0x16, 0x0b, 0x04, 0xc3, 0x07, 0x87, 0x07, 0x0e, 0xc0, 0x77, 0x82, 0x47, 0x1b, 0x05, + 0x20, 0x60, 0xe0, 0x06, 0x16, 0xfa, 0x07, 0x83, 0x80, 0x07, 0x04, 0x5c, 0x92, 0xa0, 0xe0, 0x0e, + 0x16, 0x11, 0xc8, 0x20, 0xe0, 0x20, 0x07, 0x08, 0x04, 0xe0, 0x01, 0x84, 0x05, 0x60, 0x07, 0x02, + 0x13, 0x3f, 0x48, 0x20, 0xe0, 0x06, 0x01, 0x82, 0x06, 0xa0, 0xe0, 0x18, 0x07, 0x83, 0xc0, 0x00, + 0x06, 0xa0, 0xe3, 0x56, 0xc8, 0x20, 0xe0, 0x1e, 0x07, 0x02, 0xe3, 0xa0, 0xe0, 0x04, 0x02, 0x08, + 0x80, 0x24, 0x06, 0xa0, 0xe0, 0x22, 0x10, 0x36, 0xc1, 0x20, 0x01, 0x84, 0x02, 0x44, 0x88, 0x00, + 0x13, 0x1e, 0x48, 0x04, 0x01, 0x84, 0x06, 0x20, 0x07, 0x02, 0x16, 0xf1, 0x23, 0xa0, 0xe0, 0x22, + 0x16, 0x05, 0x43, 0xa0, 0xe0, 0x22, 0xd2, 0xa0, 0xe0, 0x0e, 0x10, 0xd3, 0x23, 0xe0, 0xe0, 0x14, + 0x13, 0x04, 0x98, 0x20, 0xe3, 0xa9, 0x06, 0x65, 0x16, 0x06, 0x92, 0xa0, 0xe0, 0x0e, 0x13, 0xc9, + 0xd2, 0xa0, 0xe3, 0xa8, 0x10, 0xd7, 0x07, 0x83, 0x00, 0x02, 0x04, 0x60, 0xdb, 0xb8, 0xe8, 0x20, + 0xe0, 0x06, 0x01, 0x82, 0x06, 0xa0, 0xe0, 0x18, 0x07, 0x20, 0x07, 0x02, 0x43, 0xa0, 0xe0, 0x04, + 0xc8, 0x20, 0xe4, 0x6e, 0x01, 0x86, 0x88, 0x20, 0xe0, 0x20, 0x07, 0x08, 0x16, 0x03, 0xc8, 0x20, + 0xeb, 0x0a, 0x07, 0x08, 0x04, 0x60, 0xdb, 0xc0, 0x01, 0x0e, 0x00, 0x03, 0x13, 0x16, 0xd3, 0xcf, + 0x16, 0x08, 0x23, 0xa0, 0xe0, 0x20, 0x16, 0x03, 0xd2, 0xa0, 0xe3, 0xa8, 0x10, 0x02, 0xd2, 0xa0, + 0xe0, 0x0e, 0x01, 0x8e, 0x00, 0x03, 0x10, 0x09, 0xc1, 0x60, 0x01, 0x84, 0x21, 0x60, 0xe0, 0x0a, + 0x16, 0x04, 0x07, 0x83, 0x84, 0x00, 0x04, 0x60, 0xdb, 0xb8, 0xc8, 0x20, 0xe0, 0x2e, 0x01, 0x84, + 0x02, 0x08, 0x80, 0x06, 0x06, 0xa0, 0xe0, 0x22, 0x04, 0x60, 0xdb, 0xc0, 0xe3, 0x60, 0xe0, 0x20, + 0x04, 0x60, 0xdb, 0xc0, 0x93, 0xe0, 0xe0, 0x26, 0x16, 0x10, 0x23, 0xa0, 0xe0, 0x08, 0x16, 0x0d, + 0x23, 0xa0, 0xe0, 0x06, 0x13, 0x02, 0xe3, 0x60, 0xe0, 0x1c, 0xe3, 0x60, 0xe0, 0x18, 0x43, 0xa0, + 0xe0, 0x06, 0x02, 0x08, 0x80, 0x3c, 0x06, 0xa0, 0xe0, 0x22, 0x04, 0x60, 0xdb, 0xc0, 0x92, 0xa0, + 0xe3, 0xa8, 0x13, 0x03, 0x92, 0xa0, 0xe3, 0xa9, 0x16, 0x1e, 0x23, 0xe0, 0xe0, 0x14, 0x13, 0x08, + 0x98, 0x20, 0xe3, 0xa9, 0x06, 0x65, 0x13, 0x04, 0x07, 0x83, 0x00, 0x07, 0x04, 0x60, 0xdb, 0xb8, + 0xd2, 0xa0, 0xe0, 0x0e, 0xc8, 0x20, 0xe0, 0x20, 0x07, 0x08, 0x27, 0xa0, 0xe0, 0x04, 0x16, 0x0b, + 0xc8, 0x20, 0xe0, 0x1e, 0x07, 0x08, 0x93, 0xe0, 0xe3, 0xa8, 0x16, 0x05, 0x23, 0xa0, 0xe0, 0x12, + 0x13, 0x02, 0x06, 0x20, 0x07, 0x08, 0x04, 0x60, 0xdb, 0xc0, 0x23, 0xe0, 0xe0, 0x14, 0x13, 0x36, + 0x03, 0xb0, 0x98, 0x20, 0xe0, 0x0e, 0x06, 0x6f, 0x16, 0x0f, 0xd3, 0xcf, 0x16, 0x2f, 0xd2, 0xa0, + 0xe3, 0xa8, 0x04, 0x60, 0xdb, 0xc0, 0x92, 0xa0, 0xe0, 0x0c, 0x16, 0x28, 0x23, 0xe0, 0xe0, 0x14, + 0x13, 0xf6, 0x07, 0x83, 0x00, 0x06, 0x10, 0x07, 0x07, 0x83, 0x00, 0x05, 0x93, 0xe0, 0xe0, 0x0e, + 0x16, 0x02, 0x07, 0x83, 0x00, 0x07, 0x04, 0x60, 0xdb, 0xb8, 0xe3, 0x60, 0xe0, 0x12, 0x23, 0xe0, + 0xe0, 0x14, 0x13, 0x0d, 0x98, 0x20, 0xe0, 0x0c, 0x06, 0x65, 0x16, 0x03, 0xd8, 0x20, 0xe3, 0xa9, + 0x06, 0x65, 0x10, 0x0c, 0xc1, 0x20, 0x01, 0x84, 0x21, 0x20, 0xe0, 0x06, 0x16, 0xd6, 0x48, 0x20, + 0xe0, 0x06, 0x01, 0x84, 0x02, 0x08, 0x80, 0x30, 0x06, 0xa0, 0xe0, 0x22, 0x04, 0x60, 0xdb, 0xc0, + 0x02, 0x04, 0x00, 0x64, 0x06, 0x04, 0x16, 0xfe, 0x04, 0x5b, 0xe3, 0xa0, 0xe0, 0x0a, 0xc2, 0x08, + 0x11, 0x02, 0x43, 0xa0, 0xe0, 0x0a, 0x42, 0x20, 0xe0, 0x04, 0x02, 0x28, 0xe3, 0xee, 0xc0, 0x58, + 0xc0, 0x02, 0x88, 0x11, 0xed, 0x26, 0x16, 0x03, 0x2c, 0xd1, 0xc0, 0x58, 0x04, 0xd1, 0xc0, 0x80, + 0x01, 0x0e, 0x10, 0x00, 0x13, 0x0f, 0xcc, 0x60, 0xed, 0x26, 0x05, 0xc8, 0xcc, 0x78, 0x16, 0x03, + 0x06, 0x41, 0xcc, 0x60, 0x06, 0xd6, 0xc4, 0x58, 0x16, 0x02, 0xc4, 0x60, 0x07, 0x00, 0x02, 0x21, + 0xff, 0xfa, 0x2c, 0x91, 0x04, 0x5b, 0xc3, 0x0b, 0x06, 0xa0, 0xe1, 0x0a, 0x06, 0xa0, 0xe0, 0xe4, + 0xc2, 0x08, 0x16, 0x05, 0xc2, 0x62, 0x00, 0x02, 0x26, 0x60, 0xe4, 0x68, 0x16, 0x0d, 0xc2, 0x42, + 0x05, 0xc9, 0xce, 0x60, 0xed, 0x4a, 0xc6, 0x60, 0xeb, 0x0c, 0x06, 0xa0, 0xe1, 0x4c, 0xca, 0x18, + 0x00, 0x0a, 0x46, 0x20, 0xe0, 0x26, 0x16, 0x04, 0xc0, 0xa0, 0x01, 0x6c, 0x2e, 0x12, 0x10, 0x1d, + 0xc1, 0x12, 0x13, 0x05, 0xc1, 0x60, 0x01, 0x6c, 0x2e, 0x14, 0xc8, 0x05, 0x01, 0x6c, 0x04, 0xd2, + 0x06, 0x48, 0x07, 0x84, 0x00, 0x02, 0xc1, 0x48, 0xc0, 0xa0, 0x01, 0x6c, 0xc0, 0x02, 0x06, 0xa0, + 0xe3, 0xce, 0xc5, 0x60, 0xfc, 0x02, 0x02, 0x07, 0x06, 0xa2, 0x02, 0x25, 0xff, 0xf4, 0xc8, 0x05, + 0xfc, 0x02, 0xc2, 0x20, 0x01, 0x6c, 0x06, 0xa0, 0xc2, 0x5a, 0x04, 0x5c, 0xc2, 0x42, 0x02, 0x29, + 0x00, 0x08, 0xc2, 0x39, 0x02, 0x48, 0xc0, 0x00, 0x02, 0x88, 0xc0, 0x00, 0x16, 0x08, 0x8e, 0x60, + 0xe0, 0x2e, 0x16, 0x05, 0x86, 0x60, 0xe0, 0x2e, 0x16, 0x02, 0x04, 0xc8, 0x04, 0x5b, 0x07, 0x08, + 0x04, 0x5b, 0x88, 0x20, 0xe1, 0x8e, 0x01, 0x6c, 0x16, 0x02, 0x04, 0x60, 0xdb, 0xa8, 0x04, 0x5b, + 0x07, 0x88, 0x01, 0xae, 0xe8, 0x20, 0xe0, 0x0e, 0x01, 0x80, 0x06, 0x08, 0x16, 0xfe, 0x48, 0x20, + 0xe0, 0x0e, 0x01, 0x80, 0x04, 0x5b, 0x04, 0xc2, 0x23, 0xa0, 0xe0, 0x0c, 0x16, 0x0a, 0x2f, 0x20, + 0x06, 0x30, 0x07, 0x82, 0xff, 0xdf, 0x2c, 0x02, 0x02, 0x82, 0x03, 0xf4, 0x16, 0xfa, 0x43, 0xa0, + 0xe0, 0x0c, 0x04, 0x5b, 0xc2, 0x42, 0x07, 0x88, 0x00, 0x0e, 0xa2, 0x09, 0x02, 0x29, 0x00, 0x08, + 0xce, 0x78, 0xce, 0x78, 0xce, 0x78, 0xce, 0x60, 0x09, 0x6c, 0xce, 0x60, 0x09, 0x6e, 0xce, 0x60, + 0x09, 0x70, 0x23, 0xa0, 0xe0, 0x1a, 0x16, 0x0f, 0xc2, 0x58, 0x02, 0x49, 0x1f, 0x80, 0x2a, 0x60, + 0xe0, 0x14, 0xe8, 0xa0, 0xe0, 0x04, 0x00, 0x0e, 0xc6, 0x09, 0x02, 0x49, 0x1f, 0x00, 0x06, 0xc9, + 0xa2, 0x09, 0xa8, 0x89, 0x00, 0x04, 0x02, 0x28, 0x00, 0x02, 0xc2, 0x58, 0x0a, 0x49, 0x02, 0x49, + 0xf0, 0x00, 0xd6, 0x09, 0x04, 0xe2, 0x00, 0x06, 0x04, 0x5b, 0x07, 0x00, 0xc0, 0x82, 0x13, 0x53, + 0xc0, 0xa0, 0x01, 0x6c, 0xc1, 0xa0, 0xfc, 0x06, 0x02, 0x46, 0x00, 0x0f, 0x02, 0x86, 0x00, 0x01, + 0x12, 0x3d, 0x88, 0x06, 0x06, 0xf2, 0x16, 0x12, 0x02, 0x01, 0xfc, 0x0e, 0x88, 0x31, 0x06, 0xf4, + 0x16, 0x0d, 0x88, 0x31, 0x06, 0xf6, 0x16, 0x0a, 0x88, 0x31, 0x06, 0xf8, 0x16, 0x07, 0x02, 0x86, + 0x00, 0x02, 0x16, 0x2c, 0x88, 0x20, 0x07, 0x0a, 0x06, 0xfa, 0x13, 0x28, 0xc1, 0x20, 0x09, 0x6a, + 0x01, 0x44, 0x08, 0x00, 0x13, 0x06, 0x02, 0x86, 0x00, 0x02, 0x16, 0x20, 0x01, 0x44, 0x00, 0x80, + 0x16, 0x1d, 0x07, 0x00, 0x23, 0xe0, 0xe0, 0x14, 0x16, 0x19, 0x02, 0x82, 0x00, 0x43, 0x13, 0x16, + 0x02, 0x00, 0xfc, 0x02, 0xc0, 0x40, 0x01, 0xb0, 0x00, 0x20, 0x01, 0x60, 0x09, 0x6a, 0x00, 0x01, + 0x16, 0x07, 0xa0, 0x60, 0x09, 0x2c, 0xcc, 0x60, 0x05, 0xee, 0xc4, 0x50, 0xc4, 0x20, 0x09, 0x2c, + 0x07, 0x80, 0x07, 0x36, 0x07, 0x81, 0x00, 0x40, 0x2c, 0x40, 0x04, 0xc0, 0x07, 0x84, 0x06, 0xf2, + 0xcd, 0x06, 0x02, 0x01, 0xfc, 0x0e, 0xcd, 0x31, 0xcd, 0x31, 0xcd, 0x31, 0xc5, 0x20, 0x07, 0x0a, + 0xc0, 0x00, 0x13, 0x01, 0x2e, 0x12, 0x04, 0xe0, 0x01, 0x6c, 0x04, 0x5b, 0xc8, 0x0b, 0x09, 0x22, + 0x06, 0xa0, 0xe2, 0x72, 0x02, 0x08, 0x80, 0x42, 0x06, 0xa0, 0xe0, 0x22, 0x02, 0x08, 0x80, 0x30, + 0x06, 0xa0, 0xe0, 0x22, 0xc2, 0xe0, 0x09, 0x22, 0x04, 0x5b, 0xc3, 0x0b, 0x48, 0x20, 0xeb, 0x0e, + 0x01, 0x82, 0x48, 0x20, 0xe4, 0x6c, 0x01, 0x80, 0x48, 0x20, 0xe0, 0x22, 0x01, 0xae, 0x48, 0x20, + 0xe0, 0x22, 0x09, 0x78, 0x43, 0x60, 0xe0, 0x18, 0x43, 0xa0, 0xe0, 0x08, 0x02, 0x08, 0x00, 0x42, + 0x06, 0xa0, 0xe0, 0x22, 0x04, 0x5c, 0xc3, 0x0b, 0xe8, 0x20, 0xe0, 0x0e, 0x01, 0x82, 0xe8, 0x20, + 0xe0, 0x22, 0x01, 0xae, 0xe8, 0x20, 0xe0, 0x22, 0x09, 0x78, 0xe3, 0xa0, 0xe0, 0x08, 0xe3, 0x60, + 0xe0, 0x18, 0x43, 0xa0, 0xe0, 0x06, 0x02, 0x08, 0x80, 0x3c, 0x06, 0xa0, 0xe0, 0x22, 0x02, 0x08, + 0x80, 0x42, 0x06, 0xa0, 0xe0, 0x22, 0x04, 0x5c, 0xc3, 0x0b, 0x07, 0x83, 0x68, 0x00, 0x06, 0xa0, + 0xe3, 0x56, 0x07, 0x83, 0x80, 0x10, 0x06, 0xa0, 0xe3, 0x56, 0x04, 0x5c, 0xc3, 0x0b, 0x06, 0xa0, + 0xe3, 0x40, 0xa2, 0x02, 0xc2, 0x68, 0x00, 0x14, 0x02, 0x29, 0xff, 0xfc, 0x13, 0x24, 0x02, 0x28, + 0x00, 0x18, 0x07, 0x87, 0x00, 0x0e, 0x07, 0x81, 0x07, 0x0e, 0x04, 0xf1, 0x06, 0x47, 0x15, 0xfd, + 0xc0, 0x58, 0x03, 0xb0, 0x78, 0x01, 0x06, 0x63, 0x02, 0x41, 0x00, 0x3f, 0x13, 0x0e, 0x02, 0x81, + 0x00, 0x1f, 0x1b, 0x0b, 0xa0, 0x41, 0xc0, 0x61, 0xe4, 0x4e, 0xc1, 0xf8, 0x06, 0xc7, 0x71, 0xc7, + 0x06, 0x47, 0xcc, 0x78, 0x06, 0x47, 0x15, 0xfd, 0x10, 0x04, 0xc0, 0x58, 0x06, 0xc1, 0x70, 0x41, + 0xa2, 0x01, 0xc2, 0x49, 0x15, 0xe5, 0x04, 0x5c, 0x23, 0xa0, 0xe0, 0x1a, 0x13, 0x02, 0x04, 0xc8, + 0x04, 0x5b, 0xc2, 0x22, 0x00, 0x14, 0x02, 0x48, 0x1f, 0x00, 0x06, 0xc8, 0x04, 0x5b, 0x02, 0x83, + 0x00, 0x0f, 0x1b, 0x17, 0xc1, 0xa0, 0x06, 0xd4, 0x13, 0x35, 0x02, 0x26, 0x00, 0x04, 0xcd, 0xa0, + 0xed, 0x26, 0xc5, 0x83, 0x13, 0x04, 0xc2, 0x4a, 0x0a, 0x39, 0xe0, 0xc9, 0xc5, 0x83, 0x07, 0x86, + 0x07, 0x36, 0x07, 0x87, 0x00, 0x10, 0xc2, 0x20, 0x06, 0xd4, 0x04, 0xe0, 0x06, 0xd4, 0x2c, 0x46, + 0x04, 0x5b, 0xc0, 0x60, 0x06, 0xfe, 0xc2, 0x20, 0x09, 0x6a, 0x02, 0x48, 0x60, 0x00, 0x22, 0x20, + 0xe0, 0x06, 0x16, 0x04, 0xe2, 0x20, 0xe0, 0x0a, 0xe2, 0x20, 0xe0, 0x18, 0x0a, 0x13, 0x18, 0x04, + 0x05, 0x41, 0x48, 0x03, 0x06, 0xfe, 0x10, 0x06, 0x02, 0x83, 0x00, 0x02, 0x16, 0x01, 0x09, 0x13, + 0xe8, 0x03, 0x06, 0xfe, 0x40, 0xc8, 0x40, 0xc1, 0x13, 0x05, 0x07, 0x88, 0x07, 0x36, 0x07, 0x89, + 0x40, 0x00, 0x2c, 0x48, 0x04, 0x5b, 0x04, 0xc9, 0xc1, 0x24, 0xeb, 0x24, 0xc1, 0x84, 0x71, 0x86, + 0x02, 0x26, 0xeb, 0xd6, 0x06, 0xc4, 0x71, 0x04, 0x02, 0x24, 0xeb, 0x4c, 0xd2, 0x14, 0x09, 0xc8, + 0xa2, 0x08, 0x03, 0xb0, 0xd8, 0x34, 0x06, 0x5f, 0x02, 0x47, 0x00, 0x0f, 0xa1, 0xc7, 0xc2, 0x28, + 0xeb, 0x12, 0x04, 0x58, 0xcd, 0x76, 0x06, 0x47, 0x16, 0xfd, 0x10, 0x32, 0xc2, 0x36, 0x10, 0x26, + 0x09, 0x17, 0xa1, 0x47, 0x10, 0x2d, 0x09, 0x17, 0x61, 0x47, 0x10, 0x2a, 0x43, 0xa0, 0xe0, 0x16, + 0x04, 0x5b, 0x43, 0xa0, 0xe0, 0x16, 0xc2, 0x49, 0x16, 0x03, 0xc2, 0x44, 0xc8, 0x06, 0x09, 0x22, + 0xc1, 0x27, 0xec, 0xe6, 0xc1, 0x84, 0x71, 0x86, 0x02, 0x26, 0xed, 0x1c, 0x06, 0xc4, 0x71, 0x04, + 0x02, 0x24, 0xed, 0x02, 0x10, 0xd3, 0xc1, 0x09, 0xc1, 0xa0, 0x09, 0x22, 0x04, 0xc9, 0x10, 0x10, + 0xc2, 0x36, 0xd5, 0x78, 0x41, 0x60, 0xe0, 0x22, 0x05, 0xc5, 0x10, 0x0a, 0xcd, 0x78, 0x06, 0x47, + 0x15, 0xfd, 0x10, 0x06, 0x23, 0xa0, 0xe0, 0x16, 0x16, 0xcd, 0xc2, 0x49, 0x16, 0xec, 0x10, 0xd6, + 0xe3, 0xa0, 0xe0, 0x16, 0x10, 0xbb, 0x02, 0x08, 0x80, 0x5a, 0x06, 0xa0, 0xe0, 0x22, 0x10, 0x3e, + 0x92, 0xa0, 0xe0, 0x0c, 0x16, 0x15, 0x02, 0x44, 0x5e, 0x00, 0x16, 0x14, 0x48, 0x20, 0xe4, 0x6c, + 0x01, 0x80, 0x06, 0xa0, 0xe2, 0x9e, 0xc8, 0x20, 0x01, 0x9e, 0x01, 0x9e, 0x2e, 0xe0, 0x00, 0x01, + 0x43, 0xa0, 0xe0, 0x18, 0xd2, 0xa0, 0xe0, 0x26, 0x07, 0x83, 0x00, 0x10, 0x06, 0xa0, 0xe3, 0x56, + 0x04, 0x60, 0xdb, 0xc0, 0x07, 0x84, 0x00, 0x08, 0x04, 0x60, 0xdb, 0x88, 0x07, 0x85, 0x02, 0x03, + 0xc8, 0x05, 0x06, 0xce, 0x43, 0xa0, 0xe0, 0x12, 0x04, 0xe0, 0x06, 0xfa, 0x06, 0xa0, 0xe2, 0xd0, + 0x02, 0x08, 0x80, 0x48, 0x06, 0xa0, 0xe0, 0x22, 0x10, 0x11, 0x27, 0xa0, 0xe0, 0x2c, 0x16, 0x04, + 0x02, 0x08, 0x80, 0x54, 0x06, 0xa0, 0xe0, 0x22, 0x07, 0x83, 0xa8, 0x00, 0x88, 0x20, 0x07, 0x08, + 0xe0, 0x20, 0x16, 0x02, 0x07, 0x83, 0xe8, 0x00, 0x06, 0xa0, 0xe3, 0x56, 0x02, 0x08, 0x00, 0x36, + 0x06, 0xa0, 0xe0, 0x22, 0xe8, 0x20, 0xe0, 0x0c, 0x01, 0x82, 0x23, 0xa0, 0xe0, 0x18, 0x13, 0x06, + 0xe3, 0xa0, 0xe0, 0x18, 0x2e, 0xe0, 0x00, 0x00, 0xc0, 0x41, 0x16, 0xfa, 0x06, 0xa0, 0xe1, 0x2e, + 0xc0, 0x82, 0x13, 0x02, 0x02, 0x4f, 0xff, 0x80, 0x04, 0xc4, 0xd1, 0x0f, 0x06, 0xc4, 0x04, 0x60, + 0xdb, 0x88, 0x06, 0xa0, 0xe5, 0x50, 0x02, 0x08, 0x80, 0x36, 0x07, 0xa0, 0x06, 0xd6, 0xe5, 0x3e, + 0x06, 0xa0, 0xe0, 0x22, 0x10, 0x10, 0x06, 0xa0, 0xe5, 0x50, 0xd1, 0x20, 0x06, 0xce, 0x13, 0xe6, + 0x78, 0x20, 0xe0, 0x12, 0x06, 0xce, 0x10, 0xe2, 0xc1, 0x20, 0x04, 0x16, 0x0a, 0x14, 0x06, 0xc4, + 0x91, 0x0a, 0x16, 0x01, 0x04, 0x5b, 0x04, 0x60, 0xdb, 0xc0, 0x04, 0xca, 0x04, 0xcd, 0x04, 0xce, + 0x04, 0xcf, 0x04, 0xe0, 0x06, 0xa8, 0x04, 0xe0, 0x06, 0xba, 0x07, 0x84, 0x01, 0xa0, 0x07, 0x85, + 0x00, 0x10, 0x04, 0xf4, 0x06, 0x45, 0x15, 0xfd, 0x07, 0x84, 0x06, 0xd8, 0x07, 0x85, 0x07, 0x34, + 0x61, 0x44, 0x04, 0xf4, 0x06, 0x45, 0x15, 0xfd, 0x07, 0x84, 0x00, 0xc8, 0xc8, 0x04, 0x07, 0x00, + 0x07, 0x84, 0x7f, 0xff, 0xc8, 0x04, 0x06, 0xf0, 0x07, 0x84, 0x00, 0x06, 0xc8, 0x04, 0x06, 0xee, + 0x03, 0xb0, 0xd8, 0x20, 0xe0, 0x10, 0x06, 0x65, 0x04, 0x60, 0xdb, 0xc0, 0xf8, 0x20, 0xed, 0x71, + 0x01, 0x82, 0xc8, 0x20, 0xe0, 0x10, 0x06, 0xc6, 0xc8, 0x20, 0xe0, 0x20, 0x06, 0xc8, 0x2e, 0xe0, + 0x00, 0x00, 0x06, 0xa0, 0xe1, 0x2e, 0xc8, 0x20, 0x09, 0x6c, 0x01, 0xa0, 0xc8, 0x20, 0x09, 0x6e, + 0x01, 0xa2, 0xc8, 0x20, 0x09, 0x70, 0x01, 0xa4, 0xc8, 0x20, 0x09, 0x6e, 0x01, 0xb0, 0xc8, 0x20, + 0x09, 0x70, 0x01, 0xb2, 0xc8, 0x20, 0x09, 0x70, 0x06, 0xcc, 0xf8, 0x20, 0xed, 0x70, 0x01, 0x80, + 0x06, 0xa0, 0xe1, 0x18, 0x48, 0x20, 0xe0, 0x04, 0x01, 0x80, 0x04, 0xe0, 0x01, 0x9e, 0x02, 0x08, + 0x80, 0x12, 0x06, 0xa0, 0xe0, 0x22, 0x07, 0x84, 0x00, 0x0a, 0x07, 0x85, 0x03, 0xf4, 0x88, 0x20, + 0x06, 0xc6, 0xe0, 0x20, 0x1b, 0x04, 0x07, 0x84, 0x00, 0x1c, 0x07, 0x85, 0x03, 0xf8, 0x06, 0xa0, + 0xe3, 0xce, 0x07, 0x85, 0xe6, 0x42, 0xc8, 0x05, 0x03, 0xf8, 0x23, 0xa0, 0xe0, 0x0c, 0x13, 0x23, + 0xe3, 0xa0, 0xe0, 0x0c, 0x2e, 0xa0, 0x03, 0xf4, 0x10, 0x1e, 0x03, 0xb0, 0x98, 0x20, 0xe0, 0x10, + 0x06, 0x65, 0x16, 0x19, 0x02, 0x44, 0x5e, 0x00, 0x16, 0x04, 0x06, 0x20, 0x06, 0xc6, 0x16, 0xd7, + 0x10, 0x08, 0x03, 0xb0, 0x98, 0x20, 0xe0, 0x10, 0x06, 0x65, 0x16, 0x0d, 0x06, 0x20, 0x06, 0xc8, + 0x16, 0xc4, 0x01, 0x0e, 0x00, 0x03, 0x13, 0x03, 0x07, 0x83, 0x82, 0x00, 0x10, 0x02, 0x07, 0x83, + 0x00, 0x01, 0x04, 0x60, 0xdb, 0xb8, 0x04, 0x60, 0xdb, 0x9e, 0x01, 0x0e, 0x00, 0x03, 0x13, 0x0a, + 0x02, 0x08, 0x80, 0x0c, 0x06, 0xa0, 0xe0, 0x22, 0xe3, 0xe0, 0xe0, 0x14, 0xc8, 0x20, 0xe4, 0x6e, + 0x01, 0x86, 0x10, 0x26, 0x48, 0x20, 0xe0, 0x0c, 0x01, 0x82, 0x2e, 0xe0, 0x00, 0x01, 0xc1, 0x60, + 0x09, 0x1e, 0x0a, 0x35, 0xe8, 0x05, 0x01, 0x82, 0xc1, 0x20, 0x09, 0x6a, 0x01, 0x04, 0x00, 0x06, + 0x13, 0x06, 0xd8, 0x20, 0xe1, 0xd0, 0x09, 0x2f, 0xd8, 0x20, 0xe1, 0xd0, 0x01, 0x83, 0x21, 0x20, + 0xe0, 0x22, 0x16, 0x03, 0xe8, 0x20, 0xe0, 0x22, 0x01, 0x80, 0x21, 0x20, 0xe0, 0x04, 0x16, 0x04, + 0xe3, 0xa0, 0xe0, 0x14, 0x04, 0x60, 0xdf, 0xb6, 0x02, 0x08, 0x80, 0x00, 0x06, 0xa0, 0xe0, 0x22, + 0xe8, 0x20, 0xe0, 0x08, 0x01, 0x82, 0x04, 0x60, 0xdb, 0x9e, 0xc8, 0x20, 0xe4, 0x6e, 0x01, 0x86, + 0x02, 0x08, 0x80, 0x00, 0x06, 0xa0, 0xe0, 0x22, 0xc2, 0x20, 0x09, 0x1e, 0xa2, 0x08, 0x05, 0x08, + 0xc8, 0x28, 0xe0, 0x22, 0x06, 0xca, 0xc8, 0x20, 0xe0, 0x20, 0x06, 0xc6, 0xc8, 0x20, 0xe0, 0x20, + 0x06, 0xc8, 0xe3, 0x60, 0xe0, 0x16, 0x04, 0x60, 0xdb, 0xc0, 0xc1, 0x44, 0x02, 0x44, 0x5e, 0x00, + 0x16, 0xf8, 0x25, 0x60, 0xe4, 0x68, 0x16, 0x0f, 0x06, 0x20, 0x06, 0xc6, 0x16, 0xf2, 0x06, 0x20, + 0x06, 0xca, 0x13, 0x03, 0x05, 0xa0, 0x06, 0xcc, 0x10, 0xe6, 0x03, 0xb0, 0xd8, 0x20, 0xe0, 0x0c, + 0x06, 0x65, 0x04, 0x60, 0xdb, 0xc0, 0x06, 0x20, 0x06, 0xc8, 0x16, 0xe3, 0x88, 0x20, 0x09, 0x70, + 0x06, 0xcc, 0x16, 0x03, 0x07, 0x83, 0x00, 0x08, 0x10, 0x02, 0x07, 0x83, 0x00, 0x0c, 0x04, 0x60, + 0xdb, 0xb8, 0x04, 0x60, 0xdb, 0xc0, 0x23, 0xa0, 0xe0, 0x08, 0x13, 0x03, 0x23, 0x60, 0xe0, 0x12, + 0x16, 0x06, 0x03, 0xb0, 0xd8, 0x20, 0xe3, 0xa9, 0x06, 0x65, 0x04, 0x60, 0xdb, 0xc0, 0x02, 0x08, + 0x80, 0x00, 0x06, 0xa0, 0xe0, 0x22, 0x04, 0x60, 0xdb, 0x9e, 0x02, 0x08, 0x80, 0x00, 0x06, 0xa0, + 0xe0, 0x22, 0xc8, 0x20, 0xe0, 0x1e, 0x06, 0xc6, 0xc8, 0x20, 0xe0, 0x1e, 0x06, 0xc8, 0xe3, 0x60, + 0xe0, 0x10, 0x04, 0x60, 0xdb, 0xc0, 0x23, 0xe0, 0xe0, 0x14, 0x13, 0x19, 0xc1, 0x44, 0x02, 0x44, + 0x1e, 0x00, 0x16, 0xf5, 0x25, 0x60, 0xe4, 0x68, 0x16, 0x06, 0x06, 0x20, 0x06, 0xc8, 0x16, 0xef, + 0x04, 0xc2, 0x04, 0x60, 0xec, 0x20, 0x02, 0x08, 0x80, 0x1e, 0x06, 0xa0, 0xe0, 0x22, 0x10, 0x07, + 0x06, 0x20, 0x06, 0xc6, 0x16, 0xe4, 0x07, 0x83, 0x00, 0x09, 0x06, 0xa0, 0xdb, 0xb8, 0x04, 0x60, + 0xdb, 0x9e, 0x04, 0xce, 0x04, 0xe0, 0x09, 0x2a, 0xd3, 0xe0, 0xe3, 0xaa, 0xc2, 0x8f, 0xc8, 0x20, + 0xe4, 0x70, 0x01, 0x86, 0x48, 0x20, 0xe0, 0x08, 0x01, 0x82, 0x07, 0x86, 0x00, 0x05, 0x07, 0x84, + 0x06, 0x72, 0xc1, 0x54, 0x13, 0x01, 0x2c, 0xd4, 0x02, 0x24, 0x00, 0x0a, 0x06, 0x06, 0x16, 0xf9, + 0x02, 0x08, 0x80, 0x2a, 0x06, 0xa0, 0xe0, 0x22, 0x2c, 0x20, 0xe0, 0x1a, 0x04, 0x60, 0xda, 0x6a, + 0x06, 0xa0, 0xe2, 0x72, 0x04, 0xcd, 0x23, 0xa0, 0xe0, 0x1c, 0x13, 0x0d, 0x01, 0x0e, 0x00, 0x03, + 0x13, 0x0a, 0xe3, 0xa0, 0xe0, 0x1c, 0x03, 0xb0, 0xd8, 0x20, 0xe0, 0x10, 0x06, 0x65, 0xd2, 0xa0, + 0xe0, 0x26, 0x04, 0xcf, 0x10, 0x08, 0x2d, 0x20, 0x00, 0x01, 0xc0, 0xe0, 0x09, 0x2a, 0x06, 0xa0, + 0xe3, 0x56, 0xd2, 0xa0, 0xe3, 0xab, 0x04, 0x60, 0xdb, 0xc0, 0x06, 0xa0, 0xe0, 0xe4, 0xc2, 0x08, + 0x13, 0x19, 0x07, 0x83, 0x80, 0x80, 0x23, 0xe0, 0xe0, 0x14, 0x13, 0x02, 0x07, 0x83, 0x00, 0x0a, + 0x04, 0x60, 0xdb, 0xb4, 0xc1, 0x20, 0x06, 0x06, 0x13, 0x0d, 0x06, 0xa0, 0xe0, 0xe4, 0xc2, 0x08, + 0x13, 0x09, 0x07, 0x83, 0x00, 0x0b, 0x23, 0xe0, 0xe0, 0x14, 0x16, 0x02, 0x07, 0x83, 0x80, 0x01, + 0x04, 0x60, 0xdb, 0xb4, 0x07, 0x83, 0x80, 0x0a, 0x04, 0x60, 0xdb, 0xa2, 0x93, 0xe0, 0xe0, 0x0e, + 0x13, 0x5e, 0x93, 0xe0, 0xe0, 0x10, 0x13, 0x17, 0x23, 0xe0, 0xe0, 0x14, 0x13, 0x04, 0x07, 0x83, + 0x00, 0x07, 0x04, 0x60, 0xdb, 0xb4, 0x07, 0x83, 0xa0, 0x00, 0x06, 0xa0, 0xe3, 0x56, 0x07, 0x83, + 0x48, 0x00, 0x06, 0xa0, 0xe3, 0x56, 0xd2, 0xa0, 0xe0, 0x10, 0xc8, 0x20, 0xe0, 0x1c, 0x06, 0xca, + 0xc8, 0x20, 0xe0, 0x20, 0x06, 0xcc, 0x06, 0xa0, 0xe2, 0x72, 0x02, 0x08, 0x80, 0x4e, 0x06, 0xa0, + 0xe0, 0x22, 0x23, 0xa0, 0xe0, 0x1c, 0x13, 0x20, 0x88, 0x20, 0x09, 0x6c, 0x07, 0x0e, 0x16, 0x1c, + 0x88, 0x20, 0x09, 0x6e, 0x07, 0x10, 0x16, 0x18, 0x88, 0x20, 0x09, 0x70, 0x07, 0x12, 0x16, 0x14, + 0x88, 0x20, 0x07, 0x0a, 0xe0, 0x22, 0x13, 0x10, 0x06, 0x20, 0x06, 0xca, 0x16, 0x38, 0xe3, 0xa0, + 0xe0, 0x20, 0x10, 0x06, 0x23, 0xe0, 0xe0, 0x14, 0x16, 0xca, 0xe3, 0xa0, 0xe0, 0x22, 0x04, 0xc2, + 0xd2, 0xa0, 0xe3, 0xaa, 0x04, 0x60, 0xdb, 0xa8, 0xc8, 0x20, 0xe0, 0x1c, 0x06, 0xca, 0x88, 0xa0, + 0x06, 0xdc, 0x00, 0x0e, 0x16, 0x10, 0x88, 0xa0, 0x06, 0xde, 0x00, 0x10, 0x16, 0x0c, 0x88, 0xa0, + 0x06, 0xe0, 0x00, 0x12, 0x16, 0x08, 0x06, 0x20, 0x06, 0xcc, 0x16, 0x19, 0xe8, 0x20, 0xe0, 0x0e, + 0x01, 0x82, 0xe3, 0xa0, 0xe0, 0x1e, 0xc8, 0x20, 0xe0, 0x20, 0x06, 0xcc, 0x10, 0x10, 0x23, 0xa0, + 0xe0, 0x10, 0x16, 0x08, 0xc1, 0x64, 0x00, 0x06, 0x21, 0x60, 0xe0, 0x0c, 0x13, 0x08, 0xd2, 0xa0, + 0xe3, 0xa8, 0x10, 0x05, 0x88, 0x20, 0x07, 0x0a, 0x07, 0x08, 0x12, 0x96, 0x10, 0x00, 0x04, 0x60, + 0xdb, 0xa8, 0x93, 0xe0, 0xe0, 0x0e, 0x13, 0x50, 0x93, 0xe0, 0xe3, 0xa9, 0x13, 0x4d, 0x93, 0xe0, + 0xe3, 0xa8, 0x13, 0x1c, 0x06, 0xa0, 0xe2, 0xd0, 0x23, 0xa0, 0xe0, 0x10, 0x13, 0x45, 0x23, 0xa0, + 0xe0, 0x08, 0x16, 0x06, 0xe3, 0x60, 0xe0, 0x1e, 0xc8, 0x20, 0xe0, 0x22, 0x07, 0x06, 0x10, 0x34, + 0x23, 0xe0, 0xe0, 0x14, 0x16, 0x31, 0xc1, 0x60, 0x09, 0x6a, 0x21, 0x60, 0xe0, 0x12, 0x16, 0x2c, + 0x06, 0xa0, 0xea, 0x34, 0x10, 0x31, 0xd2, 0xa0, 0xe3, 0xa8, 0x10, 0x2e, 0xe3, 0xa0, 0xe0, 0x12, + 0x06, 0xa0, 0xea, 0x34, 0xc1, 0x64, 0x00, 0x06, 0x21, 0x60, 0xe0, 0x0c, 0x13, 0x25, 0x88, 0x20, + 0x07, 0x0e, 0x06, 0xdc, 0x16, 0x14, 0x88, 0x20, 0x07, 0x10, 0x06, 0xde, 0x16, 0x10, 0x88, 0x20, + 0x07, 0x12, 0x06, 0xe0, 0x16, 0x0c, 0x98, 0x20, 0x06, 0xce, 0x06, 0xcf, 0x13, 0x15, 0x06, 0x20, + 0x06, 0xce, 0x16, 0x12, 0xe3, 0x60, 0xe0, 0x1a, 0xd2, 0xa0, 0xe0, 0x0c, 0x10, 0x0d, 0xe3, 0x60, + 0xe0, 0x1e, 0xc8, 0x20, 0xe0, 0x32, 0x07, 0x06, 0x06, 0xa0, 0xe2, 0x72, 0x02, 0x08, 0x80, 0x48, + 0x06, 0xa0, 0xe0, 0x22, 0xd2, 0xa0, 0xe3, 0xa9, 0x04, 0x60, 0xdb, 0xa8, 0x88, 0x22, 0x00, 0x0e, + 0x09, 0x6c, 0x1a, 0xc9, 0x1b, 0x0b, 0x88, 0x22, 0x00, 0x10, 0x09, 0x6e, 0x1a, 0xc4, 0x1b, 0x06, + 0x88, 0x22, 0x00, 0x12, 0x09, 0x70, 0x1a, 0xbf, 0x1b, 0x01, 0x04, 0x5b, 0xc1, 0x60, 0x01, 0x6c, + 0x02, 0x85, 0x00, 0x43, 0x13, 0xe1, 0x93, 0xe0, 0xe3, 0xa8, 0x16, 0xde, 0xc8, 0xa0, 0xed, 0x58, + 0x00, 0x02, 0x07, 0x84, 0x00, 0x0e, 0xc1, 0x42, 0xc0, 0xa0, 0x01, 0x6c, 0xc0, 0x02, 0x02, 0x25, + 0x00, 0x48, 0x07, 0x81, 0xea, 0x86, 0x07, 0x83, 0xae, 0x14, 0x04, 0x60, 0xed, 0x92, 0x02, 0x02, + 0xfc, 0x00, 0x10, 0xca, 0x98, 0x20, 0xe0, 0x0e, 0x06, 0x65, 0x16, 0x03, 0xd8, 0x20, 0xe3, 0xa8, + 0x06, 0x65, 0x93, 0xe0, 0xe3, 0xa9, 0x13, 0x0d, 0x23, 0xa0, 0xe0, 0x08, 0x16, 0x19, 0x23, 0xa0, + 0xe0, 0x10, 0x13, 0x16, 0xe3, 0x60, 0xe0, 0x1e, 0xc8, 0x20, 0xe0, 0x20, 0x07, 0x06, 0x06, 0xa0, + 0xe2, 0x72, 0x43, 0xa0, 0xe0, 0x18, 0x2e, 0xe0, 0x00, 0x01, 0xd2, 0xa0, 0xe0, 0x26, 0x07, 0x83, + 0x00, 0x10, 0x06, 0xa0, 0xe3, 0x56, 0x23, 0xe0, 0xe0, 0x14, 0x16, 0x02, 0x06, 0xa0, 0xe2, 0x54, + 0x43, 0xa0, 0xe0, 0x2c, 0xc8, 0x20, 0xe0, 0x20, 0x09, 0x24, 0x04, 0x60, 0xdb, 0xa8, 0x43, 0xa0, + 0xe0, 0x0e, 0xc1, 0xa0, 0x09, 0x24, 0x13, 0x02, 0x06, 0x20, 0x09, 0x24, 0x23, 0xe0, 0xe0, 0x14, + 0x13, 0x03, 0x23, 0xa0, 0xe0, 0x08, 0x16, 0x26, 0x02, 0x08, 0x80, 0x42, 0x06, 0xa0, 0xe0, 0x22, + 0x23, 0xa0, 0xe0, 0x08, 0x16, 0x1f, 0x23, 0xa0, 0xe0, 0x10, 0x16, 0x0a, 0xc1, 0x22, 0x00, 0x02, + 0x25, 0x20, 0xe4, 0x68, 0x16, 0x23, 0x07, 0x83, 0x80, 0x20, 0x06, 0xa0, 0xe3, 0x56, 0x10, 0x12, + 0x06, 0xa0, 0xe2, 0x72, 0x23, 0xe0, 0xe0, 0x14, 0x16, 0x02, 0x06, 0xa0, 0xe2, 0x54, 0xe3, 0x60, + 0xe0, 0x1e, 0xc8, 0x20, 0xe0, 0x20, 0x07, 0x06, 0x23, 0xa0, 0xe0, 0x08, 0x16, 0x03, 0x23, 0xa0, + 0xe0, 0x06, 0x13, 0x51, 0x98, 0x20, 0xe0, 0x0e, 0x06, 0x65, 0x16, 0x03, 0xd8, 0x20, 0xe3, 0xa8, + 0x06, 0x65, 0xc1, 0x22, 0x00, 0x02, 0x25, 0x20, 0xe4, 0x68, 0x13, 0x0e, 0x07, 0x83, 0x00, 0x20, + 0x06, 0xa0, 0xe3, 0x56, 0xc8, 0x22, 0x00, 0x0e, 0x06, 0xe6, 0xc8, 0x22, 0x00, 0x10, 0x06, 0xe8, + 0xc8, 0x22, 0x00, 0x12, 0x06, 0xea, 0x10, 0x37, 0x88, 0x22, 0x00, 0x0e, 0x06, 0xdc, 0x16, 0x08, + 0x88, 0x22, 0x00, 0x10, 0x06, 0xde, 0x16, 0x04, 0x88, 0x22, 0x00, 0x12, 0x06, 0xe0, 0x13, 0x0b, + 0xc8, 0x22, 0x00, 0x0e, 0x06, 0xdc, 0xc8, 0x22, 0x00, 0x10, 0x06, 0xde, 0xc8, 0x22, 0x00, 0x12, + 0x06, 0xe0, 0xe3, 0x60, 0xe0, 0x14, 0x23, 0xa0, 0xe0, 0x0e, 0x16, 0x08, 0xc1, 0xa0, 0x09, 0x24, + 0x16, 0x1a, 0x07, 0x86, 0x10, 0x00, 0xe8, 0x06, 0x06, 0xd2, 0x10, 0x15, 0xe3, 0xa0, 0xe0, 0x0e, + 0x23, 0xa0, 0xe0, 0x08, 0x16, 0x09, 0xe3, 0xa0, 0xe0, 0x06, 0x04, 0xe0, 0x06, 0xe6, 0x04, 0xe0, + 0x06, 0xe8, 0x04, 0xe0, 0x06, 0xea, 0x10, 0x07, 0x02, 0x08, 0x80, 0x36, 0x07, 0xa0, 0x06, 0xd6, + 0xdf, 0xe2, 0x06, 0xa0, 0xe0, 0x22, 0x04, 0x60, 0xdb, 0xa8, 0x98, 0x20, 0x06, 0x65, 0xe0, 0x10, + 0x16, 0x03, 0xd8, 0x20, 0xe0, 0x0e, 0x06, 0x65, 0x04, 0x60, 0xdb, 0xa8, 0x23, 0xe0, 0xe0, 0x14, + 0x13, 0x02, 0x04, 0x60, 0xdb, 0xa8, 0x10, 0x2e, 0x03, 0xb0, 0x98, 0x20, 0xe3, 0xa9, 0x06, 0x6f, + 0x16, 0x19, 0xc2, 0x24, 0x00, 0x08, 0x11, 0x16, 0xe3, 0xe0, 0xe0, 0x14, 0x07, 0x83, 0x00, 0x00, + 0x06, 0xa0, 0xe3, 0x56, 0x23, 0xa0, 0xe0, 0x14, 0x13, 0x04, 0x02, 0x08, 0x80, 0x06, 0x06, 0xa0, + 0xe0, 0x22, 0x02, 0x08, 0x00, 0x1e, 0x06, 0xa0, 0xe0, 0x22, 0x23, 0xa0, 0xe0, 0x08, 0x13, 0x02, + 0x06, 0xa0, 0xe2, 0x54, 0xc0, 0x82, 0x16, 0x02, 0x04, 0x60, 0xdb, 0xc0, 0xe8, 0x20, 0xed, 0x74, + 0x06, 0xf0, 0x99, 0x20, 0xe0, 0x0e, 0x00, 0x16, 0x16, 0x05, 0x04, 0xe0, 0x06, 0xec, 0x48, 0x20, + 0xe0, 0x14, 0x06, 0xf0, 0x07, 0x83, 0x00, 0x01, 0x04, 0x60, 0xdb, 0xa2, 0xc2, 0x64, 0x00, 0x14, + 0x02, 0x24, 0x00, 0x18, 0xc1, 0xc4, 0x61, 0xc2, 0x02, 0x27, 0xff, 0xfc, 0xc1, 0x74, 0xc1, 0x85, + 0x71, 0x45, 0x02, 0x85, 0x00, 0x27, 0x16, 0x46, 0xc1, 0x54, 0x02, 0x45, 0xff, 0xcf, 0x16, 0x42, + 0x04, 0xc8, 0xc1, 0x64, 0x00, 0x08, 0x15, 0x06, 0x13, 0x05, 0xc2, 0x24, 0x00, 0x0e, 0x02, 0x48, + 0x1f, 0x00, 0x06, 0xc8, 0x02, 0x28, 0x00, 0x11, 0xa2, 0x04, 0x98, 0x18, 0xed, 0x79, 0x16, 0x32, + 0xc1, 0x42, 0x02, 0x25, 0x00, 0x04, 0x65, 0x47, 0xc2, 0x35, 0xcd, 0x74, 0x06, 0x48, 0x15, 0xfd, + 0xc0, 0xa0, 0x01, 0x6c, 0xc1, 0x02, 0xc8, 0x04, 0x01, 0x6c, 0xc1, 0xa0, 0xfc, 0x00, 0x13, 0x05, + 0xc8, 0x20, 0xeb, 0x10, 0xfc, 0x02, 0xc1, 0x06, 0x10, 0xf6, 0xc8, 0x02, 0x01, 0x6c, 0xc8, 0x20, + 0xed, 0x58, 0xfc, 0x02, 0x07, 0x81, 0xec, 0xfc, 0xc0, 0x04, 0x07, 0x83, 0x02, 0x10, 0x07, 0x84, + 0x00, 0x0e, 0x10, 0x3b, 0x07, 0x84, 0x00, 0x0c, 0xc0, 0xe2, 0x00, 0x08, 0x02, 0x05, 0xfc, 0x00, + 0xc0, 0xa0, 0x01, 0x6c, 0xc0, 0x02, 0xc1, 0xa0, 0xfc, 0x00, 0x13, 0x2f, 0x04, 0xe0, 0xfc, 0x00, + 0x2e, 0x16, 0x10, 0x2b, 0xc8, 0xa0, 0xed, 0x7a, 0x00, 0x0e, 0xc8, 0xa0, 0xed, 0x7c, 0x00, 0x10, + 0xc8, 0xa0, 0xed, 0x7e, 0x00, 0x12, 0x07, 0x83, 0x80, 0x06, 0x04, 0x60, 0xdb, 0xa2, 0x04, 0x60, + 0xdb, 0xc0, 0x07, 0x84, 0x00, 0x10, 0x07, 0x85, 0x00, 0x34, 0x10, 0x09, 0x07, 0x84, 0x00, 0x12, + 0x07, 0x85, 0x00, 0x32, 0x10, 0x04, 0x07, 0x84, 0x00, 0x14, 0x07, 0x85, 0x00, 0x38, 0x06, 0xa0, + 0xe1, 0x0a, 0xc8, 0x85, 0x00, 0x04, 0x06, 0xa0, 0xe1, 0x4c, 0xc8, 0xa0, 0xed, 0x58, 0x00, 0x02, + 0xc0, 0xa0, 0x01, 0x6c, 0xc0, 0x02, 0x06, 0x48, 0xc1, 0x48, 0x06, 0xa0, 0xe3, 0xce, 0x02, 0x07, + 0x06, 0xa2, 0xc5, 0x60, 0xfc, 0x02, 0x02, 0x25, 0xff, 0xf4, 0xc8, 0x05, 0xfc, 0x02, 0xc2, 0x20, + 0x01, 0x6c, 0x06, 0xa0, 0xc2, 0x5a, 0x04, 0x60, 0xdb, 0x9e, 0x06, 0xa0, 0xe3, 0xce, 0x02, 0x07, + 0x06, 0xb4, 0x10, 0xef, 0xc3, 0x0b, 0x03, 0x00, 0x00, 0x02, 0x07, 0x82, 0x00, 0xc0, 0xc8, 0x20, + 0x00, 0x0c, 0x00, 0xc0, 0xc8, 0x20, 0x00, 0x0e, 0x00, 0xc2, 0xc8, 0x20, 0x00, 0x10, 0x00, 0xc4, + 0xc8, 0x20, 0x00, 0x12, 0x00, 0xc6, 0xc8, 0x20, 0x00, 0x14, 0x00, 0xc8, 0xc8, 0x20, 0x00, 0x16, + 0x00, 0xca, 0xc8, 0x20, 0x00, 0x04, 0x00, 0xcc, 0xc8, 0x20, 0x00, 0x06, 0x00, 0xce, 0xc8, 0x02, + 0x00, 0x0c, 0x07, 0xa0, 0x00, 0x0e, 0xee, 0x3c, 0xc8, 0x02, 0x00, 0x10, 0x07, 0xa0, 0x00, 0x12, + 0xee, 0x46, 0xc8, 0x02, 0x00, 0x14, 0x07, 0xa0, 0x00, 0x16, 0xee, 0x76, 0xc8, 0x02, 0x00, 0x04, + 0x07, 0xa0, 0x00, 0x06, 0xee, 0x8c, 0x01, 0x60, 0x01, 0x1c, 0x00, 0x04, 0x16, 0x09, 0x01, 0xe0, + 0x01, 0x40, 0x08, 0x00, 0x01, 0xa0, 0x01, 0x40, 0x40, 0x00, 0x01, 0xe0, 0x01, 0x40, 0x04, 0x00, + 0x06, 0xa0, 0xf1, 0x4c, 0x02, 0x05, 0x80, 0x00, 0xd8, 0x05, 0x04, 0x80, 0x04, 0xc7, 0x03, 0x00, + 0x00, 0x0f, 0x07, 0x88, 0x10, 0x00, 0x02, 0x09, 0x20, 0x00, 0x07, 0x8a, 0xee, 0xa4, 0x02, 0x03, + 0xe5, 0xfe, 0x04, 0x5a, 0x03, 0x00, 0x00, 0x00, 0xd2, 0x20, 0x01, 0x87, 0x10, 0x06, 0x03, 0x00, + 0x00, 0x00, 0xc2, 0x20, 0x01, 0x8a, 0x02, 0x08, 0x1a, 0x00, 0xc2, 0x60, 0x00, 0xae, 0xda, 0x48, + 0x04, 0x80, 0x05, 0x89, 0x02, 0x89, 0x00, 0x06, 0x15, 0x07, 0x07, 0x88, 0x80, 0x00, 0xda, 0x48, + 0x04, 0x80, 0xc8, 0x09, 0x00, 0xae, 0x03, 0x80, 0x02, 0xe0, 0x00, 0xa0, 0x04, 0x5c, 0x03, 0x00, + 0x00, 0x00, 0x01, 0x60, 0x01, 0x9c, 0x00, 0x20, 0x13, 0xe2, 0xc2, 0x20, 0x01, 0x8c, 0x02, 0x08, + 0x1c, 0x00, 0x10, 0xe3, 0x03, 0x00, 0x00, 0x00, 0x01, 0x60, 0x01, 0x40, 0x40, 0x00, 0x16, 0xec, + 0x01, 0xa0, 0x01, 0x40, 0x40, 0x00, 0x02, 0x08, 0x02, 0x00, 0x10, 0xd7, 0xc0, 0xb3, 0x06, 0x92, + 0x10, 0xfd, 0xc0, 0xb3, 0xc0, 0x48, 0xcc, 0x72, 0xcc, 0x72, 0xc1, 0x32, 0xcc, 0x44, 0xdc, 0x72, + 0x06, 0x04, 0x16, 0xfd, 0x04, 0x5b, 0xc0, 0x48, 0x02, 0x02, 0xe9, 0x90, 0x07, 0x84, 0x00, 0x06, + 0x10, 0xf6, 0x02, 0x02, 0xe5, 0xde, 0xc0, 0x49, 0x07, 0x84, 0x00, 0x06, 0x10, 0xf0, 0xc0, 0xb3, + 0xc1, 0x32, 0x02, 0x01, 0x00, 0x01, 0xd0, 0x44, 0x06, 0xc1, 0x02, 0x44, 0x00, 0xff, 0x10, 0xe7, + 0xc1, 0x33, 0xc0, 0x73, 0xd1, 0x44, 0x02, 0x44, 0x00, 0xff, 0xdc, 0x45, 0x06, 0x04, 0x16, 0xfd, + 0x04, 0x5a, 0x06, 0xa0, 0xf0, 0xcc, 0xc8, 0x33, 0x01, 0x9e, 0x04, 0x5a, 0x06, 0xa0, 0xee, 0xca, + 0xc1, 0x89, 0x09, 0xa6, 0x02, 0x66, 0x00, 0x40, 0xc8, 0x06, 0x01, 0x8a, 0xc1, 0x88, 0x09, 0xa6, + 0x02, 0x66, 0x00, 0x40, 0xc8, 0x06, 0x01, 0x8c, 0x04, 0xc2, 0xc1, 0xc7, 0x16, 0x03, 0x06, 0x02, + 0x16, 0xfc, 0x10, 0x4d, 0x04, 0x5a, 0x06, 0xa0, 0xf0, 0x16, 0xc1, 0x89, 0x09, 0xa6, 0x02, 0x66, + 0x00, 0x40, 0xc8, 0x06, 0x01, 0x8a, 0xc1, 0x88, 0x09, 0xa6, 0x02, 0x66, 0x00, 0x40, 0xc8, 0x06, + 0x01, 0x8c, 0xc8, 0x33, 0x01, 0x9e, 0x10, 0xe8, 0x8a, 0x33, 0x00, 0x02, 0x16, 0x38, 0x8a, 0x73, + 0x00, 0x02, 0x16, 0x35, 0x04, 0x5a, 0x8a, 0x20, 0xe9, 0x8a, 0x00, 0x02, 0x16, 0x30, 0x8a, 0x60, + 0xe9, 0x8e, 0x00, 0x02, 0x16, 0x2c, 0x07, 0x82, 0xea, 0x34, 0x10, 0x01, 0xc0, 0xb3, 0x02, 0x04, + 0x04, 0x80, 0xd1, 0x52, 0x13, 0x03, 0x9d, 0x32, 0x16, 0x22, 0x10, 0xfb, 0x07, 0x85, 0x80, 0x00, + 0xd8, 0x05, 0x04, 0x80, 0x04, 0xc7, 0x04, 0x5a, 0xc8, 0x20, 0x00, 0xc0, 0x00, 0x0c, 0xc8, 0x20, + 0x00, 0xc2, 0x00, 0x0e, 0xc8, 0x20, 0x00, 0xc4, 0x00, 0x10, 0xc8, 0x20, 0x00, 0xc6, 0x00, 0x12, + 0xc8, 0x20, 0x00, 0xc8, 0x00, 0x14, 0xc8, 0x20, 0x00, 0xca, 0x00, 0x16, 0xc8, 0x20, 0x00, 0xcc, + 0x00, 0x04, 0xc8, 0x20, 0x00, 0xce, 0x00, 0x06, 0x03, 0x00, 0x00, 0x0f, 0x05, 0xcc, 0x04, 0x5c, + 0x04, 0xe0, 0x01, 0x82, 0x02, 0x02, 0xe5, 0xd8, 0xc8, 0x32, 0x01, 0x82, 0xc8, 0x32, 0x01, 0x80, + 0x06, 0xa0, 0xef, 0xe2, 0xc8, 0x12, 0x01, 0x82, 0xc2, 0xca, 0x07, 0x84, 0x07, 0xd0, 0x04, 0xe0, + 0x01, 0x84, 0x06, 0x04, 0x16, 0xfc, 0xc1, 0x20, 0x01, 0x84, 0x16, 0xe9, 0x02, 0x04, 0x00, 0x32, + 0x07, 0x85, 0x80, 0x00, 0xd8, 0x05, 0x04, 0x80, 0x04, 0xc7, 0xc1, 0x60, 0x01, 0x86, 0x06, 0x04, + 0x16, 0xfc, 0xc1, 0x20, 0x01, 0x84, 0x04, 0x5b, 0xc0, 0xb3, 0xc4, 0xb3, 0x04, 0x5b, 0xc0, 0x48, + 0xc0, 0xb3, 0xa0, 0x73, 0xc4, 0x42, 0x04, 0x5b, 0x88, 0x33, 0x01, 0x84, 0x16, 0xe6, 0x04, 0x5a, + 0xc1, 0x89, 0x09, 0xa6, 0x02, 0x66, 0x00, 0x40, 0xc8, 0x06, 0x01, 0x8a, 0x04, 0x5b, 0x04, 0xc5, + 0x07, 0xa0, 0x01, 0x9c, 0x00, 0x40, 0x01, 0x60, 0x01, 0x9c, 0x00, 0x40, 0x13, 0x03, 0x06, 0x05, + 0x16, 0xf7, 0x04, 0x5c, 0x04, 0x5b, 0x06, 0xa0, 0xf0, 0x6a, 0xc0, 0x60, 0x01, 0x40, 0xc8, 0x05, + 0x01, 0x40, 0xc5, 0x02, 0xc8, 0x01, 0x01, 0x40, 0x04, 0x5a, 0x06, 0xa0, 0xf0, 0x6a, 0xa1, 0x08, + 0x10, 0xf4, 0xc0, 0xb3, 0xc1, 0x33, 0xc1, 0x60, 0x01, 0x40, 0x01, 0x85, 0x04, 0x00, 0x01, 0xc5, + 0x10, 0x00, 0x04, 0x5b, 0xc1, 0x08, 0xc2, 0x09, 0xc2, 0x44, 0x04, 0x5b, 0x02, 0x05, 0x00, 0xc8, + 0x06, 0x05, 0x16, 0xfe, 0x04, 0x5b, 0xc1, 0x33, 0xc0, 0x03, 0xc0, 0xc4, 0x04, 0x5b, 0xc0, 0xc0, + 0x04, 0x5b, 0x94, 0xe0, 0x01, 0x9e, 0x16, 0xc2, 0x05, 0xc3, 0x04, 0x5b, 0xc0, 0x73, 0x06, 0xa0, + 0xf0, 0xe4, 0x02, 0x2d, 0x00, 0x08, 0x07, 0x85, 0x00, 0x08, 0x9f, 0x71, 0x16, 0xb7, 0x06, 0x05, + 0x16, 0xfc, 0x04, 0x5a, 0x02, 0x02, 0xe5, 0xe4, 0x04, 0x60, 0xee, 0xce, 0x8c, 0xe9, 0x00, 0x04, + 0x16, 0xad, 0x04, 0x5b, 0xc1, 0x20, 0x01, 0x80, 0x07, 0x85, 0x07, 0xd0, 0x01, 0xe0, 0x01, 0x80, + 0x04, 0x00, 0x06, 0x45, 0x16, 0xfe, 0xc8, 0x04, 0x01, 0x80, 0x04, 0x5b, 0xc1, 0x33, 0xc3, 0x48, + 0xc1, 0x04, 0x13, 0x04, 0x02, 0x2d, 0x04, 0x00, 0x06, 0x04, 0x16, 0xfc, 0x04, 0x5b, 0xc3, 0x8d, + 0x06, 0xa0, 0xf0, 0xe4, 0xc1, 0x8d, 0x09, 0xa6, 0x02, 0x66, 0x00, 0x40, 0xc7, 0x86, 0x04, 0x5a, + 0xc1, 0x8d, 0x09, 0xa6, 0x02, 0x66, 0x00, 0x40, 0xc8, 0x06, 0x01, 0x8a, 0x04, 0x5b, 0xc1, 0x8d, + 0x09, 0xa6, 0x02, 0x66, 0x00, 0x40, 0xc8, 0x06, 0x01, 0x8c, 0x04, 0x5b, 0xc0, 0x4d, 0x02, 0x04, + 0x00, 0x28, 0x07, 0x85, 0x55, 0x00, 0x04, 0x60, 0xee, 0xf2, 0xc0, 0x4d, 0xc0, 0xb3, 0xc1, 0x32, + 0x04, 0x60, 0xee, 0xb6, 0xc1, 0x33, 0x01, 0x60, 0x01, 0x1c, 0x00, 0x04, 0x16, 0x01, 0x04, 0x5b, + 0xc0, 0xc4, 0x04, 0x5b, 0x07, 0x89, 0xe5, 0x26, 0xc2, 0x39, 0x13, 0x07, 0xc6, 0x39, 0x86, 0x39, + 0x16, 0x25, 0xc6, 0x39, 0x86, 0x39, 0x16, 0x22, 0x10, 0xf7, 0x02, 0x02, 0xf1, 0x6a, 0x04, 0xc4, + 0x04, 0xc5, 0xc2, 0x39, 0x13, 0x02, 0x04, 0x60, 0xf1, 0xa6, 0x02, 0x02, 0xf1, 0x78, 0x04, 0xc4, + 0xc2, 0x39, 0x13, 0x03, 0xc1, 0x79, 0x04, 0x60, 0xf1, 0xa6, 0x02, 0x02, 0xf1, 0x88, 0x04, 0xc5, + 0xc2, 0x39, 0x13, 0x03, 0xc1, 0x39, 0x04, 0x60, 0xf1, 0xa6, 0xc0, 0x79, 0xc0, 0xb9, 0x60, 0x81, + 0x05, 0xc2, 0x09, 0x12, 0x04, 0xf1, 0x06, 0x02, 0x16, 0xfd, 0x04, 0x5b, 0x04, 0x5c, 0x02, 0x01, + 0xaa, 0xaa, 0xc6, 0x01, 0xe0, 0x44, 0x40, 0x45, 0x80, 0x58, 0x16, 0xf8, 0x02, 0x01, 0x00, 0x14, + 0x06, 0x01, 0x16, 0xfe, 0x02, 0x01, 0x55, 0x55, 0xc6, 0x01, 0xe0, 0x44, 0x40, 0x45, 0x80, 0x58, + 0x16, 0xed, 0x04, 0x52, 0x02, 0xe0, 0x00, 0xa0, 0x07, 0x88, 0x00, 0xc0, 0x02, 0x09, 0xf2, 0x20, + 0x07, 0x84, 0xe5, 0xea, 0x02, 0x05, 0x00, 0x01, 0xc2, 0x8b, 0x04, 0xcc, 0x06, 0xa0, 0xf2, 0x2a, + 0x2c, 0x60, 0x00, 0x01, 0x06, 0x99, 0x2c, 0xa0, 0x00, 0x02, 0x06, 0x99, 0x2d, 0x20, 0x00, 0x04, + 0x06, 0x99, 0x2e, 0x20, 0x00, 0x08, 0x06, 0x99, 0x2f, 0xa0, 0x00, 0x10, 0x05, 0x8c, 0x16, 0x09, + 0xcc, 0x80, 0xc4, 0x81, 0x07, 0x83, 0xf2, 0x6e, 0xc0, 0x88, 0x04, 0x02, 0x05, 0x8c, 0x16, 0x01, + 0x10, 0x33, 0x02, 0xe0, 0x00, 0xa0, 0x04, 0x5a, 0x05, 0x8c, 0x16, 0xfb, 0xcc, 0x80, 0xc4, 0x81, + 0x0a, 0x15, 0xc0, 0xb4, 0xc0, 0x12, 0xcc, 0x88, 0xc0, 0x52, 0xc4, 0xb4, 0x06, 0x42, 0x04, 0x5b, + 0x07, 0x2d, 0x00, 0x18, 0x8b, 0x41, 0x00, 0x0a, 0x16, 0xec, 0x82, 0xc1, 0x16, 0xea, 0x02, 0xc2, + 0x02, 0x42, 0x02, 0x00, 0x16, 0xe6, 0x03, 0x80, 0x07, 0x81, 0x00, 0x01, 0x10, 0xf1, 0x02, 0x01, + 0x00, 0x02, 0x10, 0xee, 0x02, 0x01, 0x00, 0x04, 0x10, 0xeb, 0x02, 0x01, 0x00, 0x08, 0x10, 0xe8, + 0x02, 0x01, 0x00, 0x10, 0x10, 0xe5, 0x02, 0xa1, 0x8b, 0x41, 0x00, 0x10, 0x13, 0x02, 0x04, 0x60, + 0xf2, 0x1a, 0x07, 0x2d, 0x00, 0x18, 0x03, 0x80, 0x02, 0x09, 0x08, 0x00, 0x02, 0x03, 0x00, 0x04, + 0x04, 0xc7, 0x06, 0xa0, 0xf3, 0x9a, 0x01, 0x60, 0x01, 0x1c, 0x00, 0x04, 0x16, 0x1c, 0x01, 0xa0, + 0x01, 0x40, 0x08, 0x00, 0x01, 0xe0, 0x01, 0x40, 0x10, 0x00, 0x02, 0x04, 0x00, 0x01, 0xce, 0x44, + 0x06, 0xc4, 0xc6, 0x44, 0x01, 0xa0, 0x01, 0x40, 0x10, 0x00, 0x06, 0x49, 0x01, 0xa0, 0x01, 0x40, + 0x40, 0x00, 0x01, 0xe0, 0x01, 0x40, 0x04, 0x00, 0x01, 0xe0, 0x01, 0x40, 0x08, 0x00, 0x06, 0xa0, + 0xf4, 0x38, 0x06, 0xa0, 0xf4, 0x38, 0x05, 0xc7, 0x02, 0x04, 0xe4, 0xa4, 0x04, 0xe0, 0x03, 0xd0, + 0xc1, 0x74, 0xc1, 0xb4, 0x05, 0x86, 0x13, 0x1c, 0x02, 0xe0, 0x00, 0xc0, 0x02, 0x00, 0x00, 0x00, + 0xc0, 0x40, 0xc0, 0x80, 0xc0, 0xc0, 0xc1, 0x00, 0xc1, 0x40, 0xc1, 0x80, 0xc1, 0xc0, 0xc2, 0x00, + 0xc2, 0x40, 0xc2, 0x80, 0xc2, 0xc0, 0xc3, 0x00, 0xc3, 0x40, 0xc3, 0x80, 0xc3, 0xc0, 0x04, 0xa0, + 0x00, 0xaa, 0x03, 0xd0, 0x03, 0xd0, 0x10, 0x3f, 0x05, 0x85, 0x81, 0x85, 0x13, 0xe1, 0x10, 0xe4, + 0x05, 0xc7, 0x02, 0x05, 0x7f, 0xff, 0xa1, 0x45, 0x03, 0xd0, 0x03, 0xd0, 0x10, 0x34, 0xcc, 0xc0, + 0xc4, 0xc1, 0x02, 0x03, 0x00, 0x28, 0x06, 0xa0, 0xf3, 0x9a, 0x01, 0xe0, 0x01, 0x42, 0x10, 0x00, + 0x05, 0xc7, 0x03, 0xd0, 0x03, 0xd0, 0x10, 0x27, 0x05, 0xc7, 0xc1, 0xa0, 0x01, 0x4a, 0x07, 0xa0, + 0x01, 0x4a, 0x0e, 0x00, 0x01, 0xa0, 0x01, 0x40, 0x02, 0x00, 0x07, 0x20, 0x01, 0x44, 0xc1, 0x60, + 0x01, 0x44, 0x02, 0x85, 0xff, 0x00, 0x16, 0x17, 0x01, 0xe0, 0x01, 0x40, 0x22, 0x00, 0x02, 0x05, + 0x00, 0xc0, 0x06, 0x05, 0x03, 0xd0, 0x16, 0xfd, 0xc1, 0x60, 0x01, 0x46, 0x02, 0x85, 0xff, 0x00, + 0x13, 0x0a, 0x02, 0x05, 0x33, 0x93, 0x06, 0x05, 0x00, 0x00, 0xf3, 0x80, 0x00, 0x0b, 0x10, 0x00, + 0x00, 0x00, 0xf3, 0x8a, 0x04, 0x9c, 0x03, 0xd0, 0x16, 0xf8, 0x10, 0x51, 0xc8, 0x06, 0x01, 0x4a, + 0xcc, 0xc0, 0xc4, 0xc1, 0x10, 0x4b, 0xc0, 0x13, 0xcc, 0xc8, 0xc0, 0x53, 0x02, 0x02, 0xf3, 0xaa, + 0xc4, 0xc2, 0x06, 0x43, 0x04, 0x5b, 0xc0, 0x60, 0x00, 0xae, 0x02, 0xc4, 0x02, 0x44, 0x00, 0x0f, + 0x88, 0x44, 0xe4, 0x8a, 0x16, 0x3c, 0x02, 0x81, 0x00, 0x08, 0x13, 0x27, 0xc1, 0x21, 0xe4, 0x9c, + 0xc1, 0x14, 0x21, 0x21, 0xe4, 0x7a, 0x16, 0x33, 0xc1, 0x21, 0xe4, 0x82, 0x02, 0x81, 0x00, 0x00, + 0x13, 0x0b, 0x02, 0x0d, 0x00, 0xa0, 0x83, 0x84, 0x13, 0x09, 0x05, 0xc4, 0x83, 0x84, 0x13, 0x06, + 0x05, 0xc4, 0x83, 0x84, 0x13, 0x03, 0x10, 0x23, 0x81, 0x0e, 0x16, 0x21, 0xc1, 0x21, 0xe4, 0x9c, + 0x45, 0x21, 0xe4, 0x7a, 0x01, 0xe0, 0x01, 0x42, 0x10, 0x00, 0x01, 0xa0, 0x01, 0x42, 0x10, 0x00, + 0xc3, 0xa1, 0xe4, 0x94, 0x02, 0x0f, 0x00, 0x2f, 0x03, 0x80, 0x01, 0xa0, 0x01, 0x40, 0x02, 0x00, + 0x01, 0xa0, 0x01, 0x40, 0x80, 0x00, 0xc0, 0x6d, 0x00, 0x0a, 0x13, 0x09, 0x02, 0x81, 0x12, 0x5c, + 0x1b, 0x06, 0x02, 0x0e, 0xf3, 0x90, 0x02, 0x0f, 0x00, 0x0f, 0x03, 0x80, 0x05, 0xca, 0x02, 0xe0, + 0x00, 0xa0, 0x04, 0x5a, 0xce, 0x59, 0x88, 0x20, 0xe4, 0xa4, 0xe4, 0xa4, 0x10, 0xf8, 0x04, 0xc1, + 0x62, 0x48, 0x05, 0x89, 0xc0, 0xa0, 0x01, 0x6c, 0xc8, 0x08, 0x01, 0x6c, 0x02, 0x03, 0xfc, 0x00, + 0x02, 0x04, 0x02, 0x00, 0xa0, 0x73, 0x06, 0x04, 0x16, 0xfd, 0x05, 0x88, 0x06, 0x09, 0x16, 0xf4, + 0xc8, 0x02, 0x01, 0x6c, 0x86, 0x81, 0x16, 0x02, 0x03, 0xd0, 0x05, 0xcb, 0x04, 0x5b, 0xc0, 0x48, + 0xc0, 0x89, 0x60, 0x81, 0x05, 0xc2, 0x04, 0x5b, 0xc3, 0x0b, 0x06, 0xa0, 0xf4, 0x72, 0xcc, 0x41, + 0x06, 0x42, 0x16, 0xfd, 0x06, 0xa0, 0xf4, 0x72, 0xc1, 0x01, 0x8c, 0x44, 0x16, 0x12, 0x05, 0xc4, + 0x06, 0x42, 0x16, 0xfb, 0x02, 0x04, 0xf4, 0xb8, 0x02, 0x03, 0x01, 0x01, 0x06, 0x94, 0x02, 0x03, + 0x5a, 0x5a, 0x06, 0x94, 0x05, 0x43, 0x06, 0x94, 0x07, 0x03, 0x06, 0x94, 0x04, 0xc3, 0x06, 0x94, + 0x05, 0xcc, 0x04, 0x5c, 0xc1, 0xcb, 0x06, 0xa0, 0xf4, 0x72, 0xcc, 0x43, 0x06, 0x42, 0x16, 0xfd, + 0x06, 0xa0, 0xf4, 0x72, 0x8c, 0x43, 0x16, 0xf5, 0x06, 0x42, 0x16, 0xfc, 0x04, 0x57, 0xc2, 0x8b, + 0xc0, 0x08, 0xc1, 0x49, 0x05, 0x85, 0x02, 0x80, 0x00, 0x40, 0x11, 0x03, 0x02, 0x80, 0x00, 0x4f, + 0x12, 0x45, 0x02, 0x01, 0xf4, 0x72, 0x09, 0xa1, 0x80, 0x01, 0x13, 0x40, 0x02, 0x01, 0xf5, 0xa2, + 0x09, 0xa1, 0x80, 0x01, 0x13, 0x3b, 0xc0, 0x60, 0x00, 0x06, 0x09, 0xa1, 0x80, 0x01, 0x13, 0x36, + 0x05, 0x81, 0x80, 0x01, 0x13, 0x33, 0xc0, 0x4a, 0x09, 0xa1, 0x80, 0x01, 0x13, 0x2f, 0xc8, 0x00, + 0x01, 0x6a, 0x02, 0x80, 0x00, 0x80, 0x14, 0x17, 0x02, 0x01, 0xf8, 0x00, 0xc1, 0xa0, 0x01, 0x40, + 0x01, 0xa0, 0x01, 0x40, 0x04, 0x00, 0x02, 0x02, 0x10, 0x00, 0x02, 0x03, 0x04, 0x00, 0xcc, 0xb1, + 0x06, 0x43, 0x16, 0xfd, 0x01, 0xa0, 0x01, 0x40, 0x40, 0x00, 0x02, 0x08, 0xf8, 0x10, 0xc8, 0x06, + 0x01, 0x40, 0xc0, 0x00, 0x13, 0x02, 0x02, 0x08, 0xf8, 0x00, 0x02, 0x09, 0xfb, 0xfe, 0x06, 0xa0, + 0xf4, 0x7c, 0x10, 0x25, 0x02, 0x80, 0x00, 0x80, 0x14, 0x09, 0x02, 0x01, 0xf8, 0x00, 0x02, 0x02, + 0x10, 0x00, 0x02, 0x03, 0x04, 0x00, 0xcc, 0x72, 0x06, 0x43, 0x16, 0xfd, 0x05, 0x80, 0x02, 0x80, + 0x00, 0x80, 0x12, 0x04, 0x01, 0x60, 0x01, 0x04, 0x00, 0x20, 0x13, 0x05, 0x81, 0x40, 0x16, 0xab, + 0x02, 0x80, 0x00, 0x80, 0x14, 0x0b, 0x07, 0xa0, 0x01, 0x6a, 0x00, 0x7e, 0x02, 0x02, 0x10, 0x00, + 0x02, 0x03, 0x04, 0x00, 0x04, 0xc1, 0xcc, 0x81, 0x06, 0x43, 0x16, 0xfd, 0x05, 0xca, 0x04, 0x5a, + 0x02, 0x00, 0xf5, 0x94, 0x02, 0x01, 0xf6, 0xc4, 0x02, 0x40, 0xfc, 0x00, 0x02, 0x41, 0xfc, 0x00, + 0x80, 0x40, 0x13, 0x04, 0x07, 0xa0, 0x01, 0x04, 0x00, 0x3c, 0x04, 0x5b, 0x04, 0xc0, 0x02, 0x01, + 0x00, 0x08, 0x02, 0x02, 0x12, 0x00, 0xc1, 0xe0, 0x01, 0x40, 0x01, 0xa0, 0x01, 0x40, 0x04, 0x00, + 0x02, 0x03, 0x01, 0x00, 0xc8, 0x00, 0x01, 0x6a, 0xcc, 0xa0, 0xf8, 0x10, 0x05, 0x80, 0x06, 0x03, + 0x16, 0xf9, 0x02, 0x22, 0x02, 0x00, 0x06, 0x01, 0x16, 0xf3, 0x01, 0xa0, 0x01, 0x40, 0x40, 0x00, + 0xc8, 0x07, 0x01, 0x40, 0x02, 0x00, 0x08, 0x00, 0xc0, 0x40, 0x06, 0x01, 0xc8, 0x01, 0x01, 0x6a, + 0x02, 0x61, 0x80, 0x00, 0xc8, 0x01, 0xf8, 0x10, 0x06, 0x00, 0x16, 0xf6, 0x04, 0xc0, 0x04, 0xc8, + 0x04, 0xc9, 0x02, 0x03, 0x08, 0x00, 0xc8, 0x00, 0x01, 0x6a, 0xc1, 0x80, 0x02, 0x66, 0x80, 0x00, + 0xc1, 0x20, 0xf8, 0x10, 0x81, 0x06, 0x16, 0x15, 0xc2, 0x08, 0x13, 0x06, 0x05, 0x80, 0x06, 0x03, + 0x16, 0xf2, 0xc2, 0x08, 0x13, 0x0d, 0x10, 0x19, 0x07, 0xa0, 0xf8, 0x10, 0x55, 0x55, 0xc1, 0x20, + 0xf8, 0x10, 0x02, 0x84, 0x55, 0x55, 0x16, 0x02, 0xc2, 0x06, 0x10, 0xf0, 0x81, 0x06, 0x13, 0xee, + 0x04, 0x5b, 0x07, 0xa0, 0xf8, 0x10, 0x55, 0x55, 0xc1, 0x60, 0xf8, 0x10, 0x81, 0x05, 0x13, 0x03, + 0x02, 0x85, 0x55, 0x55, 0x16, 0xf5, 0xc2, 0x08, 0x13, 0xe1, 0xc2, 0x40, 0x06, 0x09, 0x02, 0x48, + 0x07, 0xff, 0x04, 0xc0, 0x02, 0x01, 0x00, 0x08, 0x02, 0x02, 0x12, 0x00, 0x02, 0x03, 0x01, 0x00, + 0xc8, 0x00, 0x01, 0x6a, 0xc8, 0x32, 0xf8, 0x10, 0x05, 0x80, 0x06, 0x03, 0x16, 0xf9, 0x02, 0x22, + 0x02, 0x00, 0x06, 0x01, 0x16, 0xf3, 0x02, 0x88, 0x00, 0x40, 0x15, 0x13, 0x02, 0x89, 0x00, 0x4f, + 0x11, 0x10, 0x04, 0xc0, 0x02, 0x02, 0x12, 0x00, 0x02, 0x01, 0x00, 0x08, 0x02, 0x03, 0x01, 0x00, + 0xcc, 0x80, 0x06, 0x03, 0x16, 0xfd, 0x02, 0x22, 0x02, 0x00, 0x06, 0x01, 0x16, 0xf7, 0x05, 0xcb, + 0x04, 0x5b, 0x07, 0xa0, 0x01, 0x04, 0x00, 0x37, 0x04, 0x5b, 0x28, 0x43, 0x29, 0x31, 0x39, 0x38, + 0x33, 0x2d, 0x38, 0x38, 0x20, 0x42, 0x59, 0x20, 0x54, 0x49, 0xc2, 0x4b, 0x02, 0xa8, 0x00, 0x98, + 0x07, 0x83, 0x00, 0x02, 0x02, 0x28, 0x00, 0x08, 0xc6, 0x23, 0xe4, 0xf6, 0x06, 0x48, 0xc0, 0xc4, + 0x0a, 0x73, 0x17, 0x65, 0x06, 0xa0, 0xf7, 0xc4, 0xc1, 0xc8, 0x05, 0xc7, 0x02, 0x03, 0x00, 0xa5, + 0x03, 0xb0, 0xcd, 0xf8, 0xcd, 0xf8, 0x02, 0xa6, 0x62, 0x06, 0x02, 0x88, 0x00, 0x0a, 0x16, 0x57, + 0x29, 0x03, 0x16, 0x55, 0x29, 0x05, 0x80, 0xc4, 0x16, 0x52, 0x09, 0x15, 0x17, 0x50, 0x09, 0x15, + 0x18, 0x4e, 0x02, 0x85, 0x00, 0x29, 0x16, 0x4b, 0x05, 0xc6, 0x00, 0x96, 0x07, 0x03, 0x04, 0xc4, + 0x06, 0x45, 0x00, 0x95, 0x05, 0x44, 0x16, 0x43, 0x81, 0x44, 0x16, 0x41, 0x03, 0x00, 0x00, 0x05, + 0x02, 0xc4, 0x03, 0x00, 0x00, 0x0a, 0x02, 0x44, 0x00, 0x0f, 0x02, 0x84, 0x00, 0x05, 0x16, 0x37, + 0x02, 0xc4, 0x03, 0x00, 0x00, 0x0f, 0x02, 0x44, 0x00, 0x0f, 0x02, 0x84, 0x00, 0x0a, 0x16, 0x2f, + 0x02, 0x04, 0xff, 0xfe, 0x13, 0x2c, 0x15, 0x2b, 0x1a, 0x2a, 0x05, 0x84, 0x12, 0x28, 0x15, 0x27, + 0x1a, 0x26, 0x18, 0x25, 0x05, 0x84, 0x16, 0x23, 0x1b, 0x22, 0x17, 0x21, 0x05, 0x84, 0x13, 0x1f, + 0x1a, 0x1e, 0x11, 0x1d, 0x06, 0x04, 0x16, 0x1b, 0x02, 0xa5, 0xc1, 0xc5, 0x02, 0x25, 0x00, 0x06, + 0x02, 0x03, 0xa5, 0xa5, 0xc1, 0x83, 0x00, 0x95, 0x38, 0x03, 0x00, 0x94, 0x02, 0x83, 0x6b, 0x2e, + 0x16, 0x0e, 0x02, 0x84, 0x1c, 0x59, 0x16, 0x0b, 0x02, 0x24, 0x00, 0x69, 0x00, 0x95, 0x3c, 0x03, + 0x00, 0x94, 0x81, 0x83, 0x16, 0x04, 0x02, 0x84, 0x00, 0x69, 0x16, 0x01, 0x05, 0xc9, 0x04, 0x59, + 0xd0, 0xc3, 0x13, 0xfd, 0x1c, 0x01, 0x10, 0xfb, 0x90, 0xe0, 0xe4, 0xfd, 0x16, 0xf8, 0x06, 0xc3, + 0xd0, 0xc3, 0x1c, 0xf5, 0x16, 0xf4, 0x90, 0xe0, 0xe4, 0xfa, 0x16, 0xf1, 0x04, 0x5b, 0xc3, 0x0b, + 0x02, 0x09, 0xe4, 0xfe, 0x06, 0xa0, 0xf1, 0x50, 0x05, 0xcc, 0x04, 0x5c, 0x07, 0x88, 0xb0, 0x00, + 0x07, 0x89, 0xff, 0xfe, 0x09, 0xa8, 0x09, 0xa9, 0x07, 0x8a, 0xe0, 0x02, 0x06, 0xa0, 0xf4, 0x42, + 0x00, 0x00, 0x07, 0x88, 0xa0, 0x00, 0x07, 0x89, 0xaf, 0xfe, 0x09, 0xa8, 0x09, 0xa9, 0x07, 0x8a, + 0xe0, 0x78, 0x06, 0xa0, 0xf4, 0x42, 0x00, 0x00, 0x06, 0xa0, 0xf6, 0xde, 0x00, 0x00, 0x10, 0xe6, + 0x10, 0xe5, 0x00, 0x00, 0xf8, 0x26, 0x07, 0x93, 0x00, 0x00, 0x00, 0x00, 0xff, 0xb8, 0x00, 0x48, + 0x28, 0x43, 0x29, 0x31, 0x39, 0x38, 0x33, 0x2d, 0x38, 0x39, 0x2c, 0x39, 0x30, 0x2d, 0x39, 0x34, + 0x20, 0x54, 0x65, 0x78, 0x61, 0x73, 0x20, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x0a, 0x28, 0x43, 0x29, 0x31, 0x39, 0x38, 0x33, 0x2c, 0x34, 0x2c, 0x35, 0x2c, 0x36, + 0x20, 0x49, 0x42, 0x4d, 0x20, 0x43, 0x6f, 0x72, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xa0, 0x34, 0xff, 0xb8, 0x00, 0x80, 0xb0, 0x3e, 0x20, 0x00, 0x90, 0x00, 0x0d, 0xd2, 0x45, 0x4f, + 0x20, 0x56, 0x32, 0x32, 0x38, 0x2e, 0x31, 0x30, 0x2e, 0x31, 0x38, 0x20, 0x20, 0x28, 0x43, 0x29, + 0x20, 0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x4f, 0x6c, 0x69, 0x63, 0x6f, + 0x6d, 0x20, 0x31, 0x39, 0x39, 0x38, 0x2e, 0x00, 0x03, 0x00, 0x00, 0x02, 0xc0, 0xa0, 0x01, 0x6a, + 0xc3, 0x0e, 0x09, 0xac, 0xc8, 0x0c, 0x01, 0x6a, 0xc3, 0x0e, 0x02, 0x4c, 0x03, 0xff, 0xd8, 0xec, + 0xf8, 0x00, 0x13, 0xc0, 0x05, 0x83, 0x02, 0x43, 0x00, 0x3f, 0xd8, 0xec, 0xf8, 0x01, 0x13, 0xc0, + 0xc8, 0x02, 0x01, 0x6a, 0x05, 0xce, 0x03, 0x90, 0xef, 0xff, 0x03, 0x80, 0x11, 0x08, 0xc3, 0xbc, + 0xdf, 0xbc, 0x06, 0x0d, 0x16, 0xfd, 0x05, 0x8c, 0x01, 0x8c, 0x00, 0x01, 0x10, 0x12, 0xc3, 0xbc, + 0xc3, 0xfc, 0x01, 0x8d, 0x80, 0x00, 0x13, 0x0d, 0x01, 0x0d, 0x40, 0x00, 0x16, 0x04, 0xdf, 0x8f, + 0x06, 0x0d, 0x16, 0xfd, 0x10, 0x06, 0x01, 0x8d, 0x40, 0x01, 0x13, 0x03, 0xcf, 0x8f, 0x06, 0x4d, + 0x16, 0xfd, 0xc3, 0x7c, 0x16, 0xe3, 0x04, 0x5b, 0xc1, 0x60, 0x01, 0x6c, 0x02, 0xe0, 0x07, 0x78, + 0x04, 0xcd, 0x06, 0x9b, 0x02, 0xe0, 0x08, 0x5c, 0x01, 0x60, 0x13, 0x0c, 0x10, 0x00, 0x16, 0x0e, + 0xc8, 0x0d, 0x01, 0x6c, 0x07, 0x0f, 0x03, 0x00, 0x00, 0x0f, 0x03, 0xd0, 0x03, 0x00, 0x00, 0x02, + 0x88, 0x0f, 0xfc, 0x06, 0x13, 0xf8, 0xd8, 0x20, 0xe0, 0x0a, 0xfc, 0x06, 0xc8, 0x05, 0x01, 0x6c, + 0x07, 0x8f, 0xfc, 0x00, 0xc1, 0x5f, 0x13, 0xe0, 0x04, 0xff, 0x07, 0xbf, 0x81, 0x00, 0x07, 0x20, + 0xff, 0xfe, 0xc7, 0xc2, 0x03, 0x00, 0x00, 0x0f, 0x03, 0xd0, 0x03, 0x00, 0x00, 0x02, 0xd3, 0xe0, + 0x01, 0x03, 0x13, 0xf8, 0xc2, 0x8a, 0x16, 0x23, 0xc8, 0x0d, 0x01, 0x8c, 0xc2, 0xcd, 0xc3, 0x20, + 0x01, 0x6c, 0x07, 0x8a, 0x00, 0x01, 0xd2, 0x8e, 0x15, 0x2d, 0x05, 0xa0, 0x10, 0x84, 0x07, 0x8d, + 0x01, 0x04, 0x01, 0x5d, 0x21, 0x00, 0x16, 0x03, 0x07, 0x9d, 0xde, 0x8c, 0x10, 0x25, 0x01, 0x5d, + 0x01, 0x00, 0x16, 0x22, 0xc3, 0xdd, 0x01, 0xcf, 0xff, 0x00, 0x01, 0x8f, 0x04, 0x80, 0xc7, 0x4f, + 0x01, 0x5d, 0x20, 0x00, 0x13, 0xf1, 0x01, 0xe0, 0x07, 0x78, 0x80, 0x00, 0x10, 0x15, 0xc3, 0xe0, + 0x01, 0x6c, 0xc8, 0x09, 0x01, 0x6c, 0x13, 0x08, 0xc8, 0x0d, 0xfc, 0x00, 0xc2, 0x4f, 0x05, 0x87, + 0xf1, 0xce, 0xc3, 0x8e, 0x11, 0xda, 0x10, 0x06, 0xc2, 0x0d, 0xc2, 0x4f, 0x07, 0x87, 0x00, 0x01, + 0xd1, 0xce, 0x11, 0xd3, 0x05, 0xa0, 0x10, 0x84, 0xc8, 0x06, 0x07, 0x92, 0x07, 0x81, 0x01, 0x0a, + 0x01, 0x60, 0x13, 0x0c, 0x10, 0x00, 0x16, 0x04, 0xc8, 0x05, 0x01, 0x6c, 0x07, 0x20, 0xfc, 0x06, + 0x03, 0x90, 0xa0, 0x07, 0x02, 0xe0, 0x07, 0x78, 0x06, 0x9b, 0x02, 0xe0, 0x08, 0x5c, 0xcc, 0x66, + 0x00, 0x04, 0xcc, 0x43, 0xcc, 0x76, 0xcc, 0x76, 0xc8, 0x44, 0x00, 0x02, 0xc4, 0x45, 0x07, 0xa1, + 0xff, 0xee, 0x60, 0x81, 0xc3, 0x45, 0xc0, 0xb6, 0x80, 0xc2, 0x1b, 0x63, 0xc3, 0x96, 0x04, 0xf6, + 0x02, 0x46, 0xfe, 0xf8, 0x01, 0x4e, 0x40, 0x00, 0x16, 0x02, 0x04, 0x60, 0x90, 0xaa, 0x07, 0x81, + 0x01, 0x0a, 0xa1, 0x02, 0xc0, 0x83, 0x02, 0x22, 0x00, 0x06, 0x60, 0x84, 0x15, 0x25, 0x07, 0x84, + 0x00, 0x06, 0xc0, 0x83, 0xc8, 0x05, 0x01, 0x6c, 0xc8, 0x02, 0xfc, 0x04, 0x07, 0xa0, 0xfc, 0x02, + 0x80, 0x00, 0x04, 0xe0, 0xff, 0xfe, 0xc1, 0x60, 0x01, 0x6c, 0xc8, 0x06, 0x07, 0x92, 0x02, 0xe0, + 0x07, 0x78, 0x06, 0x9b, 0x02, 0xe0, 0x08, 0x5c, 0xc8, 0x05, 0x01, 0x6c, 0xc1, 0x60, 0xfc, 0x00, + 0x16, 0x16, 0x10, 0xf1, 0xc8, 0x06, 0x07, 0x92, 0x03, 0x90, 0x80, 0x03, 0x02, 0xe0, 0x07, 0x78, + 0x06, 0x9b, 0x02, 0xe0, 0x08, 0x5c, 0x10, 0x0b, 0xc3, 0xe6, 0x00, 0x06, 0x13, 0xf3, 0x03, 0x00, + 0x00, 0x0f, 0x03, 0xd0, 0x03, 0x00, 0x00, 0x02, 0xd3, 0xe0, 0x01, 0x03, 0x13, 0xf8, 0xcc, 0x66, + 0x00, 0x04, 0xcc, 0x42, 0xcc, 0x76, 0xcc, 0x76, 0xc8, 0x44, 0x00, 0x02, 0xc4, 0x45, 0x07, 0xa1, + 0xff, 0xee, 0x60, 0x81, 0x05, 0xa0, 0x10, 0x84, 0x65, 0x82, 0x15, 0x0e, 0xa0, 0xb6, 0xc3, 0x96, + 0x04, 0xf6, 0x02, 0x46, 0xfe, 0xf8, 0x01, 0x4e, 0x40, 0x00, 0x16, 0xb1, 0xa0, 0x84, 0x07, 0x84, + 0x00, 0x06, 0x60, 0x84, 0x04, 0x60, 0x90, 0xaa, 0x02, 0x26, 0xff, 0xfc, 0xc0, 0x36, 0xc0, 0x76, + 0x10, 0x06, 0x02, 0x26, 0xff, 0xfa, 0xc0, 0x36, 0xc0, 0x76, 0xc0, 0x83, 0x65, 0x82, 0x07, 0x84, + 0x00, 0x06, 0xa0, 0x42, 0x17, 0x01, 0x05, 0x80, 0xc8, 0x05, 0x01, 0x6c, 0x07, 0x8f, 0xfc, 0x00, + 0xc1, 0x7f, 0x16, 0x09, 0xc1, 0x60, 0x01, 0x6c, 0x02, 0xe0, 0x07, 0x78, 0x04, 0xcd, 0x06, 0x9b, + 0x02, 0xe0, 0x08, 0x5c, 0x10, 0xf1, 0x07, 0xbf, 0x80, 0x00, 0x04, 0xe0, 0xff, 0xfe, 0xc7, 0xc3, + 0xc0, 0xb6, 0xc3, 0x96, 0x04, 0xf6, 0x02, 0x46, 0xfe, 0xf8, 0x27, 0xa0, 0x08, 0x98, 0x13, 0x0d, + 0xc3, 0xc5, 0xc8, 0x0e, 0x08, 0x8e, 0xc3, 0xa0, 0x08, 0x90, 0xc0, 0xee, 0xff, 0xfe, 0x05, 0xa0, + 0x08, 0xa0, 0x16, 0x32, 0x05, 0xa0, 0x08, 0x9e, 0x10, 0x2f, 0x07, 0x83, 0x03, 0xf8, 0x06, 0x20, + 0x08, 0x9c, 0x13, 0x02, 0x04, 0x60, 0x95, 0x0c, 0xc3, 0xe0, 0x08, 0x9a, 0x83, 0xe0, 0x08, 0x98, + 0x13, 0x08, 0xc8, 0x0f, 0x08, 0x98, 0x04, 0xe0, 0x08, 0x9e, 0x04, 0xe0, 0x08, 0xa0, 0x27, 0x8f, + 0x16, 0xdf, 0x04, 0x60, 0x95, 0x0c, 0xc8, 0x0f, 0x01, 0x6c, 0x07, 0xa0, 0xfc, 0x02, 0x80, 0x00, + 0x04, 0xe0, 0xff, 0xfe, 0x04, 0xe0, 0xfc, 0x04, 0xc8, 0x3e, 0xfc, 0x06, 0xc3, 0xe0, 0xfc, 0x00, + 0x16, 0x0b, 0xc3, 0xe0, 0x01, 0x6c, 0x02, 0xe0, 0x07, 0x78, 0x04, 0xcd, 0x06, 0x9b, 0x02, 0xe0, + 0x08, 0x5c, 0xc8, 0x0f, 0x01, 0x6c, 0x10, 0xf2, 0x60, 0x9e, 0x87, 0x82, 0x15, 0xe4, 0xa0, 0x9e, + 0x02, 0x82, 0x00, 0xe0, 0x15, 0x1b, 0x02, 0x82, 0x00, 0x70, 0x15, 0x35, 0xc3, 0xa0, 0x08, 0x8e, + 0x03, 0x00, 0x00, 0x0f, 0x03, 0xd0, 0x03, 0x00, 0x00, 0x02, 0xd3, 0xe0, 0x01, 0x03, 0x13, 0xf8, + 0x07, 0x8f, 0x01, 0x0a, 0xcf, 0xc2, 0x07, 0x3f, 0xcf, 0xc0, 0xcf, 0xc1, 0xcb, 0xc4, 0x00, 0x02, + 0xc7, 0xc5, 0x07, 0xaf, 0xff, 0xee, 0x60, 0x81, 0x04, 0x60, 0x90, 0xaa, 0xc8, 0x0f, 0x01, 0x6c, + 0x07, 0xa0, 0xfc, 0x02, 0x80, 0x00, 0x04, 0xe0, 0xff, 0xfe, 0x04, 0xe0, 0xfc, 0x04, 0xc3, 0xc2, + 0x09, 0x2f, 0xa3, 0xcf, 0xc8, 0x0f, 0xfc, 0x06, 0x60, 0x8f, 0xc3, 0xe0, 0xfc, 0x00, 0x16, 0x0b, + 0xc3, 0xe0, 0x01, 0x6c, 0x02, 0xe0, 0x07, 0x78, 0x04, 0xcd, 0x06, 0x9b, 0x02, 0xe0, 0x08, 0x5c, + 0xc8, 0x0f, 0x01, 0x6c, 0x10, 0xf2, 0xc8, 0x0f, 0x01, 0x6c, 0x07, 0xa0, 0xfc, 0x02, 0x80, 0x00, + 0x04, 0xe0, 0xff, 0xfe, 0x04, 0xe0, 0xfc, 0x04, 0x01, 0xc2, 0x80, 0x00, 0xc8, 0x02, 0xfc, 0x06, + 0xc3, 0xe0, 0xfc, 0x00, 0x16, 0x0b, 0xc3, 0xe0, 0x01, 0x6c, 0x02, 0xe0, 0x07, 0x78, 0x04, 0xcd, + 0x06, 0x9b, 0x02, 0xe0, 0x08, 0x5c, 0xc8, 0x0f, 0x01, 0x6c, 0x10, 0xf2, 0xc8, 0x0f, 0x01, 0x6c, + 0x07, 0xa0, 0xfc, 0x02, 0x80, 0x00, 0x04, 0xe0, 0xff, 0xfe, 0x04, 0xe0, 0xfc, 0x04, 0xc3, 0x8f, + 0xc3, 0xe0, 0xfc, 0x00, 0x16, 0x0b, 0xc3, 0xe0, 0x01, 0x6c, 0x02, 0xe0, 0x07, 0x78, 0x04, 0xcd, + 0x06, 0x9b, 0x02, 0xe0, 0x08, 0x5c, 0xc8, 0x0f, 0x01, 0x6c, 0x10, 0xf2, 0xc8, 0x05, 0x01, 0x6c, + 0xc0, 0xa0, 0xfc, 0x06, 0x15, 0x0f, 0x01, 0x82, 0x80, 0x00, 0xc3, 0xc2, 0x06, 0x0f, 0x01, 0x8f, + 0x00, 0x01, 0xc8, 0x0f, 0x08, 0x5a, 0xc8, 0x0f, 0xfc, 0x04, 0x63, 0xc2, 0x05, 0x0f, 0xc8, 0x0f, + 0x08, 0x58, 0x10, 0x05, 0x07, 0xa0, 0x00, 0x1a, 0x95, 0x3e, 0xc8, 0x02, 0xfc, 0x04, 0x03, 0x00, + 0x00, 0x0f, 0x03, 0xd0, 0x03, 0x00, 0x00, 0x02, 0xd3, 0xe0, 0x01, 0x03, 0x13, 0xf8, 0x04, 0xe0, + 0x01, 0x02, 0x07, 0x8f, 0x01, 0x0a, 0x07, 0x3f, 0xcf, 0xc2, 0xcf, 0xc0, 0xcf, 0xc1, 0xcb, 0xc4, + 0x00, 0x02, 0xc7, 0xc5, 0x07, 0xaf, 0xff, 0xee, 0x68, 0x81, 0x01, 0x60, 0x13, 0x0c, 0x10, 0x00, + 0x16, 0x05, 0xc8, 0x0d, 0x01, 0x6c, 0xd8, 0x20, 0xe0, 0x0a, 0xfc, 0x06, 0xc2, 0x8a, 0x16, 0x13, + 0xc8, 0x0d, 0x01, 0x8c, 0xc2, 0xcd, 0xc3, 0x0e, 0x07, 0x8a, 0x00, 0x01, 0xc3, 0xa0, 0x08, 0x8e, + 0xd2, 0x8e, 0x03, 0x00, 0x00, 0x0f, 0x01, 0x60, 0x01, 0x00, 0x08, 0x00, 0x13, 0xfc, 0x03, 0x00, + 0x00, 0x02, 0x04, 0x60, 0x91, 0x54, 0xc8, 0x09, 0x01, 0x6c, 0x13, 0x08, 0xc8, 0x0d, 0xfc, 0x00, + 0xc2, 0x4e, 0x05, 0x87, 0xc3, 0xa0, 0x08, 0x8e, 0xf1, 0xce, 0x10, 0xeb, 0xc2, 0x0d, 0xc2, 0x4e, + 0x07, 0x87, 0x00, 0x01, 0xc3, 0xa0, 0x08, 0x8e, 0xd1, 0xce, 0x10, 0xe3, 0xa0, 0x43, 0x17, 0x01, + 0x05, 0x80, 0xc8, 0x05, 0x01, 0x6c, 0x07, 0x8f, 0xfc, 0x00, 0xc1, 0x7f, 0x16, 0x09, 0xc1, 0x60, + 0x01, 0x6c, 0x02, 0xe0, 0x07, 0x78, 0x04, 0xcd, 0x06, 0x9b, 0x02, 0xe0, 0x08, 0x5c, 0x10, 0xf1, + 0x07, 0xbf, 0x80, 0x00, 0x04, 0xe0, 0xff, 0xfe, 0xc7, 0xc3, 0x03, 0x00, 0x00, 0x0f, 0x03, 0xd0, + 0x03, 0x00, 0x00, 0x02, 0xd3, 0xe0, 0x01, 0x03, 0x13, 0xf8, 0x07, 0x8f, 0x01, 0x0a, 0xcf, 0xc2, + 0xcf, 0xc3, 0xcf, 0xc0, 0xcf, 0xc1, 0xcb, 0xc4, 0x00, 0x02, 0xc7, 0xc5, 0x07, 0xaf, 0xff, 0xee, + 0x60, 0x81, 0x60, 0x83, 0x15, 0xd3, 0xa0, 0x83, 0x04, 0x60, 0x91, 0xb6, 0x03, 0x00, 0x00, 0x02, + 0xc8, 0x0c, 0x01, 0x6a, 0xc3, 0x20, 0xf8, 0x00, 0xc8, 0x0c, 0x01, 0x6a, 0xc1, 0xa0, 0xf8, 0x06, + 0x11, 0x10, 0xc8, 0x06, 0xf8, 0x04, 0x04, 0xe4, 0xff, 0xf6, 0xcd, 0x06, 0x02, 0x24, 0x00, 0x04, + 0xc9, 0x0b, 0x00, 0x02, 0xc5, 0x0c, 0x07, 0xa4, 0xff, 0xee, 0x68, 0x81, 0x03, 0x90, 0x0a, 0x07, + 0x03, 0x80, 0x01, 0x86, 0x80, 0x00, 0xc1, 0x46, 0x06, 0x06, 0x01, 0x86, 0x00, 0x01, 0xc8, 0x06, + 0xf8, 0x04, 0x04, 0xe4, 0xff, 0xf6, 0xcd, 0x05, 0x02, 0x24, 0x00, 0x04, 0xc9, 0x0b, 0x00, 0x02, + 0xc5, 0x0c, 0x07, 0xa4, 0xff, 0xee, 0x68, 0x81, 0x61, 0x46, 0x07, 0xa0, 0x00, 0x1a, 0x95, 0xa8, + 0x03, 0x90, 0x08, 0x07, 0x03, 0x80, 0x03, 0x00, 0x00, 0x02, 0xc8, 0x0c, 0x01, 0x6a, 0xc1, 0xa6, + 0xf8, 0x06, 0xc3, 0x20, 0xf8, 0x00, 0xc8, 0x0c, 0x01, 0x6a, 0xc8, 0x06, 0xf8, 0x06, 0xc8, 0x05, + 0xf8, 0x04, 0xc3, 0x20, 0xf8, 0x00, 0x04, 0xe0, 0xf8, 0x00, 0x07, 0xa0, 0xf8, 0x02, 0x81, 0x00, + 0x07, 0x20, 0xfb, 0xfe, 0x07, 0xa0, 0x01, 0x00, 0x20, 0x81, 0x03, 0x90, 0x02, 0x07, 0x03, 0x80, + 0xc2, 0x84, 0xc3, 0x0a, 0xc8, 0x0a, 0x01, 0x6a, 0x01, 0x20, 0xf8, 0x02, 0x81, 0x00, 0x13, 0x09, + 0x01, 0x20, 0xf8, 0x02, 0xfe, 0x00, 0x16, 0x0a, 0xc2, 0xa0, 0xf8, 0x00, 0x16, 0xf2, 0x06, 0xa0, + 0x97, 0xb6, 0xc2, 0xa0, 0xf8, 0x00, 0x16, 0xee, 0x06, 0xa0, 0x97, 0xb6, 0xc2, 0xa0, 0xf8, 0x02, + 0x11, 0x09, 0x01, 0x0a, 0x02, 0x00, 0x16, 0x55, 0x01, 0x0a, 0x14, 0x00, 0x13, 0x5f, 0x01, 0x4a, + 0x10, 0x00, 0x16, 0x33, 0x07, 0x0a, 0x26, 0xa0, 0x08, 0x9e, 0x16, 0x02, 0xc2, 0xa0, 0x08, 0xa0, + 0x09, 0x5a, 0x05, 0x0a, 0x02, 0x2a, 0x08, 0x10, 0xc8, 0x0a, 0x08, 0x9c, 0x04, 0xe0, 0x08, 0x98, + 0x07, 0x8a, 0x7f, 0xfe, 0x98, 0x0a, 0x07, 0x2c, 0x13, 0x0a, 0x98, 0x0a, 0x07, 0x20, 0x13, 0x07, + 0x06, 0xca, 0x98, 0x0a, 0x07, 0x2c, 0x13, 0x03, 0x98, 0x0a, 0x07, 0x20, 0x16, 0x0a, 0x01, 0xe0, + 0x06, 0xd2, 0x08, 0x00, 0x01, 0xe0, 0x06, 0x34, 0x08, 0x00, 0x04, 0xe0, 0x06, 0x30, 0x04, 0xcb, + 0x10, 0x0c, 0x07, 0x8a, 0x01, 0x00, 0xb8, 0x0a, 0x07, 0x2c, 0x17, 0x02, 0x78, 0x0a, 0x07, 0x2c, + 0xb8, 0x0a, 0x07, 0x20, 0x17, 0x02, 0x78, 0x0a, 0x07, 0x20, 0xc2, 0xa0, 0xfb, 0xfe, 0x02, 0x4a, + 0x01, 0x00, 0x01, 0xca, 0x80, 0x00, 0xc8, 0x0a, 0xf8, 0x02, 0xc8, 0x0c, 0x01, 0x6a, 0xc2, 0xa0, + 0xf8, 0x02, 0x11, 0x07, 0x07, 0xa0, 0xf8, 0x02, 0x80, 0x00, 0xc8, 0x20, 0xf8, 0x00, 0x01, 0x6a, + 0x10, 0xf6, 0x07, 0x8a, 0x01, 0x8c, 0xc6, 0x8c, 0xc2, 0xcb, 0x03, 0x90, 0xff, 0xdf, 0x13, 0x32, + 0x03, 0x80, 0x01, 0x4a, 0x06, 0x00, 0x13, 0x0a, 0x01, 0xe0, 0x06, 0xd2, 0x02, 0x00, 0x01, 0xe0, + 0x06, 0x34, 0x08, 0x00, 0x04, 0xe0, 0x06, 0x30, 0x01, 0xcb, 0x00, 0x01, 0x88, 0x05, 0x01, 0x6a, + 0x13, 0x1a, 0xc3, 0x20, 0xfb, 0xfe, 0x16, 0x08, 0x04, 0xe0, 0xf8, 0x02, 0xc8, 0x20, 0xf8, 0x00, + 0x01, 0x6a, 0x16, 0xf4, 0x06, 0xa0, 0x97, 0xb6, 0xd2, 0xa0, 0xe0, 0x12, 0xc8, 0x0a, 0xf8, 0x02, + 0xc3, 0x20, 0xf8, 0x00, 0x13, 0x06, 0xc2, 0xa0, 0xf8, 0x02, 0x11, 0xd3, 0xc2, 0x8c, 0x04, 0x60, + 0x95, 0xe6, 0x06, 0xa0, 0x97, 0xb6, 0xc8, 0x0a, 0xf8, 0x02, 0x07, 0x8a, 0x01, 0x8c, 0x01, 0x4b, + 0x00, 0x01, 0x04, 0x5b, 0x07, 0x8b, 0x00, 0xda, 0xce, 0xcd, 0xce, 0xce, 0xc6, 0xcf, 0x02, 0xe0, + 0x00, 0xc0, 0x04, 0x54, 0x06, 0xa0, 0x95, 0xe2, 0x16, 0x25, 0xc0, 0x82, 0x13, 0x0b, 0xc6, 0x81, + 0xc8, 0x09, 0x01, 0x6a, 0xc8, 0x04, 0xf8, 0x00, 0xc2, 0x45, 0xc1, 0x01, 0xc1, 0x42, 0x04, 0xc2, + 0xc0, 0xc0, 0x10, 0xe8, 0xc8, 0x09, 0x01, 0x6a, 0xc8, 0x04, 0xf8, 0x00, 0xc2, 0x45, 0x04, 0xc3, + 0x10, 0xe1, 0x03, 0x90, 0xff, 0xff, 0x03, 0x80, 0x03, 0x00, 0x00, 0x02, 0x86, 0x8a, 0x01, 0x60, + 0x01, 0x9c, 0x40, 0x00, 0x16, 0xf6, 0x86, 0x8a, 0xc8, 0x05, 0x01, 0x6a, 0x01, 0x20, 0xf8, 0x02, + 0xfe, 0x00, 0x16, 0xd8, 0xc0, 0x82, 0x13, 0x0d, 0xc6, 0x81, 0xc8, 0x09, 0x01, 0x6a, 0xc8, 0x04, + 0xf8, 0x00, 0xc2, 0x45, 0xc1, 0x01, 0xc1, 0x42, 0x04, 0xc2, 0xc0, 0xc0, 0x03, 0x90, 0x00, 0x1f, + 0x03, 0x80, 0xc8, 0x09, 0x01, 0x6a, 0xc8, 0x04, 0xf8, 0x00, 0xc2, 0x45, 0x04, 0xc3, 0x03, 0x90, + 0x00, 0x1f, 0x03, 0x80, 0x02, 0xe0, 0x08, 0x6a, 0xc2, 0x8b, 0x02, 0x2a, 0xff, 0xfc, 0x04, 0x60, + 0xb3, 0x8a, 0xc0, 0x82, 0x13, 0x07, 0xc6, 0x81, 0xc8, 0x09, 0x01, 0x6a, 0xc8, 0x04, 0xf8, 0x00, + 0xc2, 0x45, 0x10, 0x06, 0xc8, 0x09, 0x01, 0x6a, 0xc8, 0x04, 0xf8, 0x00, 0xc2, 0x45, 0x04, 0xc0, + 0x06, 0xa0, 0x99, 0x16, 0xc0, 0xc0, 0xc1, 0x01, 0xc1, 0x42, 0x04, 0xc2, 0x10, 0x9b, 0x03, 0x90, + 0xff, 0xff, 0x03, 0x80, 0x03, 0x00, 0x00, 0x02, 0x86, 0x8a, 0x01, 0x60, 0x01, 0x9c, 0x40, 0x00, + 0x16, 0xf6, 0x86, 0x8a, 0xc8, 0x05, 0x01, 0x6a, 0x01, 0x20, 0xf8, 0x02, 0xfe, 0x00, 0x13, 0x03, + 0x06, 0xa0, 0x95, 0xe2, 0x13, 0xd6, 0xc0, 0x82, 0x13, 0x07, 0xc6, 0x81, 0xc8, 0x09, 0x01, 0x6a, + 0xc8, 0x04, 0xf8, 0x00, 0xc2, 0x45, 0x10, 0x06, 0xc8, 0x09, 0x01, 0x6a, 0xc8, 0x04, 0xf8, 0x00, + 0xc2, 0x45, 0x04, 0xc0, 0x06, 0xa0, 0x99, 0x16, 0xc0, 0xc0, 0xc1, 0x01, 0xc1, 0x42, 0x04, 0xc2, + 0x03, 0x90, 0x00, 0x1f, 0x03, 0x80, 0x03, 0x90, 0xff, 0xff, 0x03, 0x80, 0x03, 0x00, 0x00, 0x02, + 0x88, 0x08, 0x01, 0x8c, 0x01, 0x60, 0x01, 0x9c, 0x40, 0x00, 0x16, 0xf5, 0x88, 0x08, 0x01, 0x8c, + 0xc0, 0xe0, 0x01, 0x6c, 0xc2, 0x20, 0x05, 0xf4, 0x13, 0x02, 0x04, 0x60, 0xb9, 0x4c, 0x02, 0xe0, + 0x08, 0x6a, 0x01, 0x03, 0x00, 0xff, 0x13, 0x11, 0x01, 0x43, 0x04, 0x00, 0x13, 0x0e, 0xc8, 0x09, + 0x01, 0x6a, 0xc8, 0x04, 0xf8, 0x00, 0xc2, 0x45, 0xc1, 0x60, 0x08, 0x96, 0x02, 0x85, 0x97, 0xf6, + 0x16, 0x02, 0x06, 0xa0, 0x99, 0x16, 0x02, 0x43, 0x03, 0x00, 0x02, 0xe0, 0x00, 0xe0, 0x01, 0x20, + 0x08, 0x70, 0x01, 0x00, 0x16, 0x2f, 0xc2, 0x20, 0x05, 0xf4, 0x16, 0x2c, 0xc2, 0x60, 0x05, 0xf0, + 0x13, 0x12, 0xc8, 0x19, 0x05, 0xf0, 0xc2, 0xa9, 0x00, 0x0a, 0x11, 0x02, 0xf2, 0xa0, 0x09, 0x2e, + 0xd8, 0x0a, 0x01, 0x80, 0xc8, 0x29, 0x00, 0x06, 0x01, 0x8c, 0x07, 0xa0, 0x09, 0x16, 0x00, 0x04, + 0xc8, 0x09, 0x05, 0xf4, 0x10, 0x17, 0x02, 0xe0, 0x08, 0x6a, 0x01, 0x83, 0x06, 0x00, 0x16, 0x05, + 0xc1, 0x42, 0x13, 0x08, 0xc0, 0xc0, 0xc1, 0x01, 0x04, 0xc2, 0xd8, 0x20, 0x09, 0x2e, 0x01, 0x80, + 0xc8, 0x04, 0x01, 0x8c, 0x02, 0xe0, 0x00, 0xe0, 0x07, 0xa0, 0x00, 0x14, 0x08, 0x6a, 0xc8, 0x20, + 0x08, 0x96, 0x00, 0x16, 0xc8, 0x03, 0x01, 0x6c, 0x11, 0x03, 0x03, 0x90, 0x11, 0xff, 0x03, 0x80, + 0x04, 0x60, 0xb9, 0xc0, 0xc8, 0x04, 0x01, 0x6a, 0x10, 0x03, 0xc8, 0x20, 0xf8, 0x00, 0x01, 0x6a, + 0xc3, 0x20, 0xf8, 0x02, 0x01, 0x4c, 0x01, 0x00, 0x16, 0xf8, 0xc1, 0x60, 0x10, 0x86, 0x02, 0x45, + 0x00, 0x1f, 0x06, 0xcc, 0xd9, 0x4c, 0x10, 0x88, 0x13, 0x0d, 0x05, 0xa0, 0x10, 0x86, 0x06, 0x03, + 0x01, 0x03, 0x00, 0xff, 0x13, 0x52, 0xc1, 0x20, 0xf8, 0x00, 0xc8, 0x04, 0x01, 0x6a, 0x16, 0xe8, + 0x06, 0xa0, 0x97, 0xb6, 0x01, 0x0c, 0x00, 0xfe, 0x16, 0xf0, 0xc3, 0x20, 0x01, 0x6a, 0xc8, 0x04, + 0x01, 0x6a, 0x01, 0x20, 0xf8, 0x0e, 0x80, 0x00, 0x13, 0x07, 0xc1, 0x20, 0xf8, 0x14, 0x01, 0x84, + 0x60, 0xff, 0x02, 0x84, 0x02, 0x00, 0x1b, 0x33, 0xc1, 0x20, 0xf8, 0x08, 0x11, 0x0c, 0x88, 0x20, + 0xf8, 0x0c, 0x01, 0xa4, 0x16, 0x2f, 0x88, 0x20, 0xf8, 0x0a, 0x01, 0xa2, 0x16, 0x2b, 0x88, 0x04, + 0x01, 0xa0, 0x13, 0x25, 0x10, 0x27, 0xc1, 0x20, 0xf8, 0x0a, 0x11, 0x09, 0x25, 0x20, 0x01, 0xac, + 0x16, 0x1e, 0xc1, 0x20, 0xf8, 0x0c, 0x25, 0x20, 0x01, 0xae, 0x16, 0x19, 0x10, 0x1b, 0x02, 0x84, + 0xff, 0xff, 0x16, 0x0a, 0x88, 0x04, 0xf8, 0x0c, 0x16, 0x07, 0x41, 0x20, 0xf8, 0x08, 0x13, 0x0f, + 0x02, 0x84, 0x3f, 0xff, 0x13, 0x0c, 0x10, 0x0e, 0x88, 0x04, 0x01, 0xa8, 0x16, 0x0b, 0x88, 0x20, + 0xf8, 0x0c, 0x01, 0xaa, 0x16, 0x07, 0x88, 0x20, 0xf8, 0x08, 0x01, 0xa6, 0x16, 0x03, 0xd9, 0x60, + 0xee, 0xa8, 0x10, 0x88, 0xc8, 0x0c, 0x01, 0x6a, 0x10, 0xa8, 0x01, 0x43, 0x20, 0x00, 0x16, 0x07, + 0x07, 0x85, 0x01, 0x04, 0x01, 0x55, 0x21, 0x00, 0x16, 0x03, 0x07, 0x95, 0xde, 0x8c, 0x04, 0x5b, + 0x01, 0x55, 0x01, 0x00, 0x16, 0xfc, 0xc1, 0x15, 0x01, 0xc4, 0xff, 0x00, 0x01, 0x84, 0x04, 0x80, + 0xc5, 0x44, 0x01, 0x55, 0x20, 0x00, 0x13, 0xf1, 0x01, 0xe0, 0x07, 0x78, 0x80, 0x00, 0x04, 0x5b, + 0x03, 0x00, 0x00, 0x02, 0xc2, 0x0b, 0xc3, 0x20, 0x05, 0xf4, 0x16, 0x08, 0xc3, 0x20, 0x08, 0x70, + 0x01, 0x0c, 0x00, 0xff, 0x13, 0x1a, 0x01, 0x4c, 0x04, 0x00, 0x13, 0x17, 0xc2, 0xa8, 0x00, 0x0a, + 0x01, 0x4a, 0x00, 0x10, 0x16, 0x46, 0x01, 0x4a, 0x80, 0x00, 0x16, 0x19, 0xc3, 0x08, 0x06, 0xa0, + 0x9a, 0xf4, 0xc2, 0x0c, 0xc3, 0x20, 0x05, 0xf4, 0x16, 0x12, 0xc3, 0x20, 0x08, 0x70, 0x01, 0x0c, + 0x00, 0xff, 0x13, 0x03, 0x01, 0x4c, 0x04, 0x00, 0x16, 0x0a, 0x01, 0x68, 0x00, 0x0a, 0x00, 0x10, + 0x13, 0x03, 0x01, 0x0c, 0x01, 0x00, 0x16, 0x2d, 0x06, 0xa0, 0xbc, 0x40, 0x10, 0x04, 0x07, 0x87, + 0x05, 0xf0, 0x06, 0xa0, 0xc2, 0x8a, 0x01, 0xe0, 0x08, 0x70, 0x02, 0x00, 0x07, 0xa0, 0x00, 0x14, + 0x00, 0xe0, 0x07, 0xa0, 0x00, 0x16, 0x98, 0x4e, 0x03, 0x90, 0xff, 0xff, 0x03, 0x80, 0xa8, 0xc3, + 0xa9, 0xa0, 0xcf, 0xec, 0xe9, 0xe3, 0xef, 0xed, 0xa0, 0xb1, 0xb9, 0xb9, 0xb6, 0x00, 0x03, 0x00, + 0x00, 0x02, 0xc2, 0x20, 0x08, 0x70, 0x16, 0x0c, 0xd8, 0x20, 0x09, 0x2e, 0x01, 0x80, 0xc8, 0x2b, + 0x00, 0x06, 0x01, 0x8c, 0x07, 0xa0, 0x09, 0x16, 0x00, 0x04, 0xc8, 0x0b, 0x05, 0xf4, 0x10, 0x05, + 0xc2, 0x0b, 0x07, 0x87, 0x05, 0xf0, 0x06, 0xa0, 0xc2, 0x44, 0x01, 0xe0, 0x08, 0x70, 0x02, 0x00, + 0x07, 0xa0, 0x00, 0x14, 0x00, 0xe0, 0x07, 0xa0, 0x00, 0x16, 0x98, 0x4e, 0x03, 0x90, 0xff, 0xff, + 0x03, 0x80, 0xc2, 0x20, 0x05, 0xf4, 0x13, 0x02, 0x04, 0x60, 0xbc, 0x04, 0x02, 0xa8, 0xc8, 0x08, + 0x08, 0x84, 0x02, 0xe0, 0x08, 0x6a, 0x01, 0x03, 0x00, 0xff, 0x13, 0x22, 0x01, 0x43, 0x04, 0x00, + 0x13, 0x1f, 0x01, 0xe0, 0x01, 0x9c, 0x40, 0x00, 0x0b, 0xab, 0x0b, 0xab, 0x01, 0x60, 0x01, 0x9c, + 0x40, 0x00, 0x16, 0x16, 0xc8, 0x04, 0x01, 0x6a, 0xc2, 0xe0, 0xf8, 0x02, 0x11, 0x0f, 0xc8, 0x09, + 0x01, 0x6a, 0xc8, 0x04, 0xf8, 0x00, 0xc2, 0x45, 0xc1, 0x60, 0x08, 0x96, 0x02, 0x85, 0x97, 0xf6, + 0x16, 0x02, 0x06, 0xa0, 0x99, 0x16, 0x02, 0x43, 0x03, 0x00, 0x10, 0x02, 0x01, 0xc3, 0x04, 0x00, + 0x00, 0x9d, 0x04, 0x5b, 0x03, 0x00, 0x00, 0x02, 0x07, 0x87, 0x05, 0xf0, 0xc2, 0xcb, 0x16, 0x0f, + 0x06, 0xa0, 0x9a, 0xf4, 0x01, 0xe0, 0x08, 0x70, 0x01, 0x00, 0x07, 0xa0, 0x00, 0x14, 0x00, 0xe0, + 0x07, 0xa0, 0x00, 0x16, 0x98, 0x4e, 0xcb, 0x60, 0x05, 0xf4, 0x00, 0x02, 0x03, 0x80, 0xc2, 0x20, + 0x08, 0x70, 0x01, 0x88, 0x01, 0x00, 0xc8, 0x08, 0x08, 0x70, 0x01, 0x08, 0x04, 0x00, 0x16, 0x03, + 0x01, 0x08, 0x00, 0xff, 0x16, 0x08, 0xc2, 0x20, 0x05, 0xf4, 0x16, 0x05, 0xc2, 0x17, 0x13, 0x04, + 0xc5, 0xd8, 0x06, 0xa0, 0xbc, 0x40, 0x03, 0x80, 0x02, 0xe0, 0x08, 0x6a, 0x01, 0x83, 0x06, 0x00, + 0x16, 0x05, 0xc1, 0x42, 0x13, 0x08, 0xc0, 0xc0, 0xc1, 0x01, 0x04, 0xc2, 0xd8, 0x20, 0x09, 0x2e, + 0x01, 0x80, 0xc8, 0x04, 0x01, 0x8c, 0x02, 0xe0, 0x00, 0xc0, 0x07, 0xa0, 0x00, 0x14, 0x08, 0x6a, + 0xc8, 0x20, 0x08, 0x96, 0x00, 0x16, 0x03, 0x80, 0xc8, 0x01, 0x01, 0x6a, 0x13, 0x05, 0xc2, 0xe0, + 0xf8, 0x02, 0x11, 0x02, 0x06, 0xa0, 0x97, 0xb6, 0x01, 0x60, 0x01, 0x9c, 0x00, 0x40, 0x13, 0x01, + 0x03, 0x80, 0xd8, 0x20, 0x09, 0x2f, 0x01, 0x83, 0xc0, 0x41, 0x13, 0x04, 0xc8, 0x01, 0x01, 0x8a, + 0xc8, 0x01, 0x09, 0x18, 0x07, 0x85, 0x00, 0x43, 0x01, 0x20, 0x0c, 0x06, 0x00, 0xc0, 0x16, 0x20, + 0xc2, 0x20, 0x0c, 0x02, 0x06, 0x08, 0x01, 0x08, 0xfe, 0x03, 0x16, 0x1a, 0x07, 0x8a, 0x00, 0x24, + 0x62, 0xa0, 0x0c, 0x04, 0xc8, 0x0a, 0x0c, 0x04, 0x07, 0x87, 0x06, 0x30, 0x01, 0xe7, 0x00, 0x04, + 0x00, 0x40, 0x04, 0xd7, 0x02, 0x27, 0x00, 0x0c, 0xc2, 0x57, 0x16, 0x04, 0xcd, 0xc5, 0xc5, 0xc5, + 0x04, 0x60, 0xb9, 0xc0, 0x05, 0xc7, 0xc8, 0x17, 0x01, 0x6a, 0xc8, 0x05, 0xf8, 0x00, 0x10, 0xf7, + 0x04, 0x60, 0xf8, 0xfe, 0x03, 0x00, 0x00, 0x02, 0xc3, 0x20, 0x01, 0x8a, 0x98, 0x20, 0xe0, 0x10, + 0x01, 0x83, 0x13, 0xba, 0x01, 0x20, 0x01, 0x9c, 0x00, 0x40, 0x13, 0x02, 0x06, 0xa0, 0xd7, 0xd8, + 0xc1, 0x41, 0x83, 0x05, 0x16, 0x01, 0x03, 0x80, 0xc8, 0x05, 0x01, 0x6a, 0xc2, 0x20, 0xf8, 0x02, + 0x01, 0x40, 0x00, 0x40, 0x16, 0x12, 0x88, 0x01, 0x09, 0x18, 0x16, 0x07, 0xc8, 0x20, 0x09, 0x1a, + 0x09, 0x18, 0x04, 0xe0, 0x09, 0x1a, 0x01, 0xc0, 0x00, 0x04, 0x01, 0x80, 0x40, 0x40, 0x01, 0x20, + 0xf8, 0x06, 0x00, 0xc0, 0x16, 0x02, 0x01, 0xc0, 0x40, 0x00, 0x01, 0x48, 0x01, 0x00, 0x16, 0x55, + 0x01, 0xc0, 0x00, 0x40, 0x01, 0x00, 0x40, 0x04, 0x13, 0x50, 0x01, 0x40, 0x40, 0x00, 0x16, 0x48, + 0x01, 0xa0, 0x07, 0x78, 0x40, 0x00, 0x01, 0x80, 0x40, 0x00, 0x01, 0x48, 0x00, 0x01, 0x16, 0x3d, + 0x01, 0x80, 0x00, 0x04, 0xc1, 0x41, 0xc0, 0x60, 0xf8, 0x00, 0x04, 0xe0, 0xf8, 0x00, 0x07, 0x8b, + 0x03, 0xea, 0x62, 0xe0, 0xf8, 0x04, 0xc8, 0x0b, 0xf8, 0x04, 0x85, 0x05, 0x16, 0x02, 0xc5, 0x01, + 0x10, 0x10, 0xc8, 0x14, 0x01, 0x6a, 0x88, 0x05, 0xf8, 0x00, 0x13, 0x06, 0xc8, 0x20, 0xf8, 0x00, + 0x01, 0x6a, 0x88, 0x05, 0xf8, 0x00, 0x16, 0xfa, 0xc8, 0x01, 0xf8, 0x00, 0x16, 0x02, 0xc0, 0xa0, + 0x01, 0x6a, 0x01, 0x08, 0xfe, 0x00, 0x16, 0x4a, 0xc8, 0x05, 0x01, 0x6a, 0x07, 0x87, 0x06, 0x30, + 0x01, 0xe7, 0x00, 0x04, 0x00, 0x40, 0x04, 0xd7, 0x02, 0x27, 0x00, 0x0c, 0xa1, 0x45, 0xc9, 0x60, + 0xf8, 0x00, 0x0c, 0x32, 0x04, 0xe0, 0xf8, 0x00, 0x09, 0x15, 0xc2, 0x57, 0x16, 0x31, 0xcd, 0xc5, + 0xc5, 0xc5, 0x01, 0xc0, 0x00, 0x20, 0xc1, 0x41, 0x10, 0x0e, 0x01, 0x40, 0x00, 0x04, 0x16, 0x05, + 0x01, 0x80, 0x00, 0x04, 0x01, 0xe0, 0xf8, 0x02, 0x40, 0x00, 0xc1, 0x60, 0xf8, 0x00, 0x01, 0x00, + 0x40, 0x00, 0x16, 0x01, 0xc0, 0x45, 0x83, 0x05, 0x16, 0x87, 0xc2, 0xe0, 0x09, 0x18, 0x16, 0x10, + 0x01, 0x00, 0x00, 0x04, 0x16, 0x0d, 0x98, 0x20, 0xe0, 0x10, 0x01, 0x83, 0x13, 0x09, 0x07, 0x8b, + 0xd7, 0x5e, 0x01, 0x40, 0x00, 0x40, 0x13, 0x02, 0x07, 0x8b, 0xd7, 0xa4, 0xc8, 0x0b, 0x00, 0x12, + 0x01, 0x00, 0x00, 0x20, 0x16, 0x01, 0x03, 0x80, 0x01, 0x80, 0x00, 0x20, 0x04, 0x60, 0xb9, 0xc0, + 0x05, 0xc7, 0xc8, 0x17, 0x01, 0x6a, 0xc8, 0x05, 0xf8, 0x00, 0x10, 0xca, 0xc1, 0x81, 0x06, 0xa0, + 0xf9, 0x32, 0xc1, 0x46, 0x10, 0xd8, 0x05, 0xa0, 0x09, 0x32, 0xc0, 0x41, 0x16, 0x01, 0x03, 0x80, + 0xc3, 0x20, 0x00, 0x12, 0x04, 0x5c, 0x03, 0x00, 0x00, 0x00, 0x03, 0xb0, 0x10, 0xff, 0x03, 0x80, + 0x20, 0x00, 0x9d, 0xd2, 0x02, 0x2f, 0x00, 0x00, 0x20, 0x00, 0xc7, 0x46, 0x00, 0x88, 0xc0, 0x60, + 0x05, 0xee, 0x02, 0x21, 0x03, 0xe8, 0x01, 0x20, 0x01, 0x02, 0x00, 0x06, 0x13, 0x04, 0x01, 0x20, + 0x01, 0x00, 0x08, 0x00, 0x13, 0x04, 0x88, 0x01, 0x05, 0xee, 0x16, 0xf5, 0x10, 0x35, 0x07, 0x81, + 0x01, 0x0a, 0xcc, 0x4c, 0xcc, 0x4c, 0xcc, 0x4e, 0xcc, 0x4f, 0x07, 0xb1, 0x00, 0x40, 0xc4, 0x4d, + 0xc8, 0x0a, 0x01, 0x00, 0x04, 0x5b, 0xc0, 0x60, 0x05, 0xee, 0x02, 0x21, 0x03, 0xe8, 0x01, 0x20, + 0x01, 0x02, 0x00, 0x06, 0x13, 0x04, 0x01, 0x20, 0x01, 0x00, 0x08, 0x00, 0x13, 0x04, 0x88, 0x01, + 0x05, 0xee, 0x16, 0xf5, 0x10, 0x19, 0x07, 0x81, 0x01, 0x0a, 0xcc, 0x4c, 0xcc, 0x4c, 0xcc, 0x4e, + 0xcc, 0x4f, 0x07, 0xb1, 0x00, 0x40, 0xc4, 0x4d, 0xc8, 0x0a, 0x01, 0x00, 0xc0, 0x60, 0x05, 0xee, + 0x02, 0x21, 0x03, 0xe8, 0x01, 0x20, 0x01, 0x02, 0x00, 0x06, 0x13, 0x01, 0x04, 0x5b, 0x88, 0x01, + 0x05, 0xee, 0x16, 0xf8, 0x10, 0x01, 0x20, 0x00, 0xce, 0x3e, 0x0a, 0x32, 0x07, 0x8d, 0x10, 0x00, + 0x20, 0x0d, 0x16, 0x28, 0x07, 0x8d, 0x08, 0x00, 0x01, 0x40, 0x02, 0x00, 0x13, 0x23, 0x01, 0xc0, + 0x02, 0x00, 0x07, 0x8f, 0x97, 0xf6, 0xc3, 0x8e, 0x11, 0x02, 0x07, 0x8f, 0x97, 0x6a, 0xc8, 0x0f, + 0x08, 0x96, 0xc3, 0x60, 0x00, 0x16, 0x02, 0x8d, 0x98, 0x4e, 0x13, 0x02, 0xc8, 0x0f, 0x00, 0x16, + 0x07, 0x8f, 0x03, 0xf8, 0x02, 0x4e, 0x40, 0x00, 0xc8, 0x0e, 0x08, 0x98, 0xc8, 0x0e, 0x08, 0x9a, + 0x13, 0x05, 0x07, 0x8e, 0xee, 0x60, 0xc3, 0xfe, 0xc8, 0x0e, 0x08, 0x90, 0xc8, 0x0f, 0x08, 0x62, + 0x04, 0x20, 0xea, 0x7a, 0x04, 0x5b, 0x07, 0x8d, 0x10, 0x00, 0x20, 0x0d, 0x16, 0xfb, 0x07, 0x8d, + 0x08, 0x00, 0x01, 0x40, 0x04, 0x00, 0x13, 0xf6, 0x07, 0x8d, 0x40, 0x00, 0x01, 0x0e, 0x00, 0x01, + 0x16, 0xf1, 0x01, 0xc0, 0x04, 0x00, 0x06, 0x0f, 0x01, 0x8f, 0x80, 0x00, 0xc8, 0x0f, 0x08, 0x8c, + 0xc3, 0xce, 0x01, 0x8e, 0xe0, 0x00, 0x05, 0x0e, 0xc8, 0x0e, 0x08, 0x4c, 0xa8, 0x0e, 0x08, 0x8c, + 0x09, 0xdf, 0x02, 0x4f, 0x00, 0x04, 0x02, 0x2f, 0x03, 0xf0, 0xc8, 0x0f, 0x08, 0x8a, 0x01, 0x85, + 0x00, 0x40, 0x04, 0x20, 0xea, 0x7a, 0xc0, 0x41, 0x13, 0xfe, 0x03, 0x00, 0x00, 0x02, 0x88, 0x01, + 0x00, 0xe2, 0x13, 0x36, 0xc8, 0x01, 0x01, 0x6c, 0x01, 0x20, 0xfc, 0x06, 0x00, 0xc0, 0x13, 0x30, + 0xc0, 0xe0, 0xfc, 0x02, 0xc1, 0x81, 0x07, 0x20, 0xfc, 0x02, 0x07, 0xa0, 0xfc, 0x04, 0x03, 0xee, + 0xc8, 0x04, 0xfc, 0x76, 0xc8, 0x04, 0xfc, 0xe6, 0xc8, 0x04, 0xfd, 0x56, 0xc8, 0x04, 0xfd, 0xc6, + 0xc8, 0x04, 0xfe, 0x36, 0xc8, 0x04, 0xfe, 0xa6, 0xc8, 0x04, 0xff, 0x16, 0xc8, 0x04, 0xff, 0x86, + 0x07, 0x8e, 0xfc, 0x00, 0xc0, 0x5e, 0x04, 0xde, 0xc8, 0x20, 0x00, 0xe4, 0x01, 0x6c, 0xc8, 0x06, + 0xfc, 0x00, 0xc8, 0x06, 0x00, 0xe4, 0x01, 0x43, 0x01, 0x00, 0x13, 0x0a, 0x03, 0x00, 0x00, 0x0f, + 0x03, 0x00, 0x00, 0x02, 0x88, 0x01, 0x00, 0xe2, 0x13, 0xf9, 0xc8, 0x01, 0x01, 0x6c, 0x10, 0xd0, + 0x03, 0x00, 0x00, 0x0f, 0x01, 0x60, 0x07, 0x58, 0x14, 0x00, 0x16, 0xbf, 0x07, 0x83, 0xfc, 0x76, + 0x02, 0xe0, 0x08, 0x5c, 0x04, 0x60, 0x91, 0x6a, 0x02, 0x2d, 0x00, 0x06, 0xc0, 0xa0, 0x08, 0x4c, + 0x04, 0x60, 0xd3, 0x36, 0x01, 0x00, 0x07, 0xff, 0x16, 0x11, 0x01, 0xc0, 0x07, 0xff, 0x01, 0x00, + 0x20, 0x00, 0x16, 0x29, 0x01, 0xc0, 0x20, 0x00, 0x07, 0x8f, 0x08, 0x92, 0xc7, 0xc1, 0xc8, 0x0f, + 0x00, 0xe8, 0xc0, 0x60, 0x05, 0xf8, 0x04, 0xe0, 0x05, 0xf8, 0x10, 0x1f, 0x01, 0x40, 0x20, 0x00, + 0x16, 0x0b, 0xc0, 0x60, 0x05, 0xf8, 0x16, 0xf7, 0x01, 0x80, 0x20, 0x00, 0x07, 0xa0, 0x00, 0xe8, + 0x07, 0x7a, 0xc0, 0x60, 0x08, 0x92, 0x10, 0x0f, 0xc3, 0xdd, 0x13, 0x05, 0x03, 0x90, 0x00, 0x17, + 0x06, 0x9b, 0x02, 0x2d, 0x00, 0x06, 0x03, 0x00, 0x00, 0x0f, 0x03, 0xd0, 0x03, 0x00, 0x00, 0x02, + 0xd3, 0xe0, 0x01, 0x03, 0x13, 0xf8, 0x24, 0x40, 0x13, 0xcd, 0xc8, 0x01, 0x01, 0x6c, 0x88, 0x01, + 0x00, 0xe2, 0x16, 0x24, 0xc3, 0xdd, 0x16, 0xea, 0x84, 0xc4, 0x13, 0xed, 0x01, 0x20, 0xfc, 0x06, + 0x00, 0xc0, 0x16, 0x53, 0x01, 0xc0, 0x40, 0x00, 0x03, 0x00, 0x00, 0x0f, 0x03, 0xd0, 0x03, 0x00, + 0x00, 0x02, 0xd3, 0xe0, 0x01, 0x03, 0x13, 0xf8, 0x01, 0x40, 0x40, 0x00, 0x16, 0xe4, 0xc3, 0xdd, + 0x13, 0xf3, 0x03, 0x90, 0x00, 0x17, 0x06, 0x9b, 0x02, 0x2d, 0x00, 0x06, 0xc8, 0x01, 0x01, 0x6c, + 0x10, 0xeb, 0x07, 0x86, 0x03, 0xf4, 0x61, 0x89, 0x04, 0x60, 0xd4, 0x28, 0xc0, 0xe0, 0xfc, 0x02, + 0x13, 0xf8, 0xc1, 0xa0, 0x08, 0x8a, 0x61, 0x89, 0x61, 0xa0, 0xfc, 0x04, 0x15, 0x0a, 0x04, 0x60, + 0xd2, 0x78, 0x03, 0x00, 0x00, 0x0f, 0x03, 0xd0, 0x03, 0x00, 0x00, 0x02, 0xd3, 0xe0, 0x01, 0x03, + 0x13, 0xf8, 0xcd, 0x4a, 0xcd, 0x46, 0xcd, 0x47, 0xcd, 0x48, 0xc9, 0x49, 0x00, 0x02, 0xc5, 0x41, + 0x07, 0xa5, 0xff, 0xee, 0xe0, 0x81, 0x02, 0x25, 0xff, 0xf8, 0x04, 0x60, 0xd2, 0x74, 0x03, 0x90, + 0x00, 0x17, 0x06, 0x9b, 0x02, 0x2d, 0x00, 0x06, 0xc8, 0x01, 0x01, 0x6c, 0x03, 0x00, 0x00, 0x0f, + 0x03, 0xd0, 0x03, 0x00, 0x00, 0x02, 0xd3, 0xe0, 0x01, 0x03, 0x13, 0xf8, 0x88, 0x01, 0x00, 0xe2, + 0x16, 0xcd, 0xc3, 0xdd, 0x16, 0xec, 0x84, 0xc4, 0x13, 0xf1, 0x61, 0x83, 0x02, 0x23, 0x00, 0x70, + 0x84, 0xc4, 0x16, 0xfc, 0xa1, 0x83, 0xcd, 0x4a, 0xcd, 0x46, 0xcd, 0x47, 0xcd, 0x48, 0xc9, 0x49, + 0x00, 0x02, 0xc5, 0x41, 0x07, 0xa5, 0xff, 0xee, 0xe0, 0x81, 0x02, 0x25, 0xff, 0xf8, 0x62, 0x86, + 0x15, 0x43, 0xa1, 0x8a, 0xa2, 0x46, 0xa0, 0x86, 0x17, 0x21, 0x07, 0x8e, 0x01, 0x04, 0x03, 0x00, + 0x00, 0x0f, 0x03, 0xd0, 0x03, 0x00, 0x00, 0x02, 0xd3, 0xe0, 0x01, 0x03, 0x13, 0xf8, 0x05, 0xa0, + 0x10, 0x80, 0x01, 0x5e, 0x21, 0x00, 0x16, 0x03, 0x07, 0x9e, 0xde, 0x8c, 0x10, 0x11, 0x01, 0x5e, + 0x01, 0x00, 0x16, 0x0e, 0xc3, 0xde, 0x01, 0xcf, 0xff, 0x00, 0x01, 0x8f, 0x04, 0x80, 0xc7, 0x8f, + 0x01, 0x5e, 0x20, 0x00, 0x13, 0xf1, 0x01, 0xc0, 0x80, 0x00, 0x10, 0x02, 0x05, 0xa0, 0x10, 0x80, + 0xc1, 0x8a, 0x88, 0x02, 0x08, 0x8c, 0x15, 0x3f, 0xc2, 0xac, 0x00, 0x04, 0x13, 0x3e, 0x01, 0x8a, + 0x80, 0x00, 0xc1, 0xfc, 0xc2, 0x3c, 0x04, 0xfc, 0x02, 0x8c, 0x11, 0xe8, 0x16, 0x02, 0x07, 0x8c, + 0x11, 0x28, 0x05, 0x06, 0x13, 0xa3, 0x03, 0x00, 0x00, 0x0f, 0x03, 0xd0, 0x03, 0x00, 0x00, 0x02, + 0xd3, 0xe0, 0x01, 0x03, 0x13, 0xf8, 0x10, 0xaf, 0xa2, 0x46, 0xa2, 0x06, 0x17, 0x01, 0x05, 0x87, + 0xa0, 0x86, 0x04, 0xc6, 0x17, 0x93, 0x07, 0x8e, 0x01, 0x04, 0x03, 0x00, 0x00, 0x0f, 0x03, 0xd0, + 0x03, 0x00, 0x00, 0x02, 0xd3, 0xe0, 0x01, 0x03, 0x13, 0xf8, 0x01, 0x5e, 0x21, 0x00, 0x16, 0x03, + 0x07, 0x9e, 0xde, 0x8c, 0x10, 0x8b, 0x01, 0x5e, 0x01, 0x00, 0x16, 0x88, 0xc3, 0xde, 0x01, 0xcf, + 0xff, 0x00, 0x01, 0x8f, 0x04, 0x80, 0xc7, 0x8f, 0x01, 0x5e, 0x20, 0x00, 0x13, 0xf1, 0x01, 0xc0, + 0x80, 0x00, 0x04, 0x60, 0xd0, 0x9e, 0x04, 0x60, 0xd5, 0xa0, 0x03, 0x00, 0x00, 0x0f, 0x03, 0xd0, + 0x03, 0x00, 0x00, 0x02, 0xd3, 0xe0, 0x01, 0x03, 0x13, 0xf8, 0xc2, 0xac, 0x00, 0x04, 0x16, 0xb7, + 0xc3, 0xdd, 0x13, 0xf3, 0x03, 0x90, 0x01, 0xb7, 0x06, 0x9b, 0x02, 0x2d, 0x00, 0x06, 0xc8, 0x01, + 0x01, 0x6c, 0x10, 0xeb, 0xa1, 0x8a, 0xa2, 0x46, 0xa0, 0x86, 0x17, 0x21, 0x07, 0x8e, 0x01, 0x04, + 0x03, 0x00, 0x00, 0x0f, 0x03, 0xd0, 0x03, 0x00, 0x00, 0x02, 0xd3, 0xe0, 0x01, 0x03, 0x13, 0xf8, + 0x05, 0xa0, 0x10, 0x80, 0x01, 0x5e, 0x21, 0x00, 0x16, 0x03, 0x07, 0x9e, 0xde, 0x8c, 0x10, 0x11, + 0x01, 0x5e, 0x01, 0x00, 0x16, 0x0e, 0xc3, 0xde, 0x01, 0xcf, 0xff, 0x00, 0x01, 0x8f, 0x04, 0x80, + 0xc7, 0x8f, 0x01, 0x5e, 0x20, 0x00, 0x13, 0xf1, 0x01, 0xc0, 0x80, 0x00, 0x10, 0x02, 0x05, 0xa0, + 0x10, 0x80, 0xc1, 0x8a, 0x88, 0x02, 0x08, 0x8c, 0x15, 0x15, 0xc2, 0xac, 0x00, 0x04, 0x16, 0x14, + 0x03, 0x00, 0x00, 0x0f, 0x03, 0xd0, 0x03, 0x00, 0x00, 0x02, 0xd3, 0xe0, 0x01, 0x03, 0x13, 0xf8, + 0xc3, 0xdd, 0x13, 0xf3, 0x03, 0x90, 0x01, 0xb7, 0x06, 0x9b, 0x02, 0x2d, 0x00, 0x06, 0xc8, 0x01, + 0x01, 0x6c, 0x10, 0xeb, 0x04, 0x60, 0xd5, 0xa0, 0x01, 0x8a, 0x80, 0x00, 0xc1, 0xfc, 0xc2, 0x3c, + 0x04, 0xfc, 0x02, 0x8c, 0x11, 0xe8, 0x16, 0x02, 0x07, 0x8c, 0x11, 0x28, 0x05, 0x06, 0x04, 0x60, + 0xd0, 0x54, 0x62, 0x86, 0x17, 0xaf, 0xa1, 0x82, 0xc0, 0xa0, 0x08, 0x4c, 0x61, 0x82, 0xc3, 0xe0, + 0x10, 0x82, 0x02, 0x4f, 0x00, 0x1f, 0x0a, 0x2f, 0xcb, 0xc6, 0x10, 0xa8, 0xcb, 0xc3, 0x10, 0xaa, + 0xc1, 0x81, 0x07, 0x20, 0xfc, 0x02, 0x07, 0xa0, 0xfc, 0x04, 0x03, 0xee, 0x07, 0x83, 0xfc, 0x76, + 0x07, 0x89, 0x00, 0x06, 0xc2, 0xac, 0x00, 0x04, 0x13, 0x08, 0xc1, 0xfc, 0xc2, 0x3c, 0x04, 0xfc, + 0x02, 0x8c, 0x11, 0xe8, 0x16, 0x02, 0x07, 0x8c, 0x11, 0x28, 0x07, 0x8e, 0x01, 0x04, 0x03, 0x00, + 0x00, 0x0f, 0x03, 0xd0, 0x03, 0x00, 0x00, 0x02, 0xd3, 0xe0, 0x01, 0x03, 0x13, 0xf8, 0x05, 0xa0, + 0x10, 0x82, 0x01, 0x5e, 0x21, 0x00, 0x16, 0x3b, 0x07, 0x9e, 0xde, 0x8c, 0x05, 0xa0, 0x10, 0x80, + 0xc4, 0xc4, 0xc8, 0x04, 0xfc, 0xe6, 0xc8, 0x04, 0xfd, 0x56, 0xc8, 0x04, 0xfd, 0xc6, 0xc8, 0x04, + 0xfe, 0x36, 0xc8, 0x04, 0xfe, 0xa6, 0xc8, 0x04, 0xff, 0x16, 0xc8, 0x04, 0xff, 0x86, 0x07, 0x8e, + 0xfc, 0x00, 0xc0, 0x5e, 0x04, 0xde, 0xc8, 0x20, 0x00, 0xe4, 0x01, 0x6c, 0xc3, 0xe0, 0x00, 0xe2, + 0x13, 0x40, 0xc7, 0x86, 0xc8, 0x06, 0x00, 0xe4, 0x04, 0xc6, 0xc2, 0x8a, 0x15, 0x31, 0x13, 0x0a, + 0x05, 0xa0, 0x10, 0x80, 0x03, 0x00, 0x00, 0x0f, 0x03, 0xd0, 0x03, 0x00, 0x00, 0x02, 0xd3, 0xe0, + 0x01, 0x03, 0x13, 0xf8, 0xc2, 0xac, 0x00, 0x04, 0x16, 0x19, 0xc3, 0xdd, 0x13, 0xf3, 0x03, 0x90, + 0x01, 0xb7, 0x06, 0x9b, 0x02, 0x2d, 0x00, 0x06, 0xc8, 0x01, 0x01, 0x6c, 0x10, 0xeb, 0x01, 0x5e, + 0x01, 0x00, 0x16, 0xc4, 0xc3, 0xde, 0x01, 0xcf, 0xff, 0x00, 0x01, 0x8f, 0x04, 0x80, 0xc7, 0x8f, + 0x01, 0x5e, 0x20, 0x00, 0x13, 0xb9, 0x01, 0xc0, 0x80, 0x00, 0x10, 0xb8, 0xc1, 0xfc, 0xc2, 0x3c, + 0x04, 0xfc, 0x02, 0x8c, 0x11, 0xe8, 0x16, 0x02, 0x07, 0x8c, 0x11, 0x28, 0xc2, 0x8a, 0x11, 0xd0, + 0xc3, 0xdd, 0x16, 0x02, 0x04, 0x60, 0xcf, 0xe8, 0x03, 0x90, 0x00, 0x17, 0x06, 0x9b, 0x04, 0x60, + 0xcf, 0xd4, 0x07, 0x8e, 0xd3, 0x1a, 0xc8, 0x20, 0x08, 0x94, 0x01, 0x6a, 0x16, 0x03, 0xc8, 0x06, + 0x08, 0x94, 0x04, 0x5e, 0xc8, 0x06, 0xf8, 0x00, 0xc8, 0x06, 0x00, 0xe4, 0xc1, 0xa0, 0x08, 0x94, + 0x98, 0x20, 0xe0, 0x10, 0x01, 0x83, 0x16, 0x19, 0x01, 0xe0, 0x01, 0x9c, 0x00, 0x40, 0x07, 0x8f, + 0x03, 0xe8, 0x0b, 0x8f, 0x0b, 0x8f, 0x06, 0x0f, 0x13, 0x1a, 0x01, 0x60, 0x01, 0x9c, 0x00, 0x40, + 0x16, 0xf8, 0x01, 0x60, 0x0c, 0x02, 0x01, 0x00, 0x13, 0x12, 0xd8, 0x20, 0x09, 0x2f, 0x01, 0x83, + 0x07, 0xa0, 0x0c, 0x02, 0x80, 0x00, 0x0b, 0x8f, 0x0b, 0x8f, 0xc8, 0x06, 0x01, 0x8a, 0xc8, 0x06, + 0x09, 0x18, 0x07, 0xa0, 0x00, 0x12, 0x9c, 0x56, 0x01, 0xe0, 0x00, 0xe0, 0x00, 0x40, 0x04, 0xe0, + 0x08, 0x94, 0xc8, 0x06, 0x00, 0xe2, 0x01, 0x40, 0x20, 0x00, 0x13, 0x07, 0xc0, 0x41, 0x13, 0x03, + 0xc8, 0x06, 0xfc, 0x00, 0x04, 0x5e, 0xc0, 0x46, 0x04, 0x5e, 0xc3, 0xe0, 0x08, 0x92, 0x16, 0xf8, + 0xc8, 0x06, 0x08, 0x92, 0x04, 0x5e, 0xcd, 0x4a, 0xcd, 0x46, 0xcd, 0x47, 0xcd, 0x48, 0xc9, 0x49, + 0x00, 0x02, 0xc5, 0x41, 0x07, 0xa5, 0xff, 0xee, 0xe0, 0x81, 0x02, 0x25, 0xff, 0xf8, 0x62, 0x86, + 0x15, 0x57, 0xa1, 0x8a, 0xa2, 0x46, 0xa0, 0x86, 0x17, 0x21, 0x07, 0x8e, 0x01, 0x04, 0x03, 0x00, + 0x00, 0x0f, 0x03, 0xd0, 0x03, 0x00, 0x00, 0x02, 0xd3, 0xe0, 0x01, 0x03, 0x13, 0xf8, 0x05, 0xa0, + 0x10, 0x80, 0x01, 0x5e, 0x21, 0x00, 0x16, 0x03, 0x07, 0x9e, 0xde, 0x8c, 0x10, 0x11, 0x01, 0x5e, + 0x01, 0x00, 0x16, 0x0e, 0xc3, 0xde, 0x01, 0xcf, 0xff, 0x00, 0x01, 0x8f, 0x04, 0x80, 0xc7, 0x8f, + 0x01, 0x5e, 0x20, 0x00, 0x13, 0xf1, 0x01, 0xc0, 0x80, 0x00, 0x10, 0x02, 0x05, 0xa0, 0x10, 0x80, + 0xc1, 0x8a, 0x88, 0x02, 0x08, 0x8c, 0x15, 0x15, 0xc2, 0xac, 0x00, 0x04, 0x16, 0x14, 0x03, 0x00, + 0x00, 0x0f, 0x03, 0xd0, 0x03, 0x00, 0x00, 0x02, 0xd3, 0xe0, 0x01, 0x03, 0x13, 0xf8, 0xc3, 0xdd, + 0x13, 0xf3, 0x03, 0x90, 0x01, 0xb7, 0x06, 0x9b, 0x02, 0x2d, 0x00, 0x06, 0xc8, 0x01, 0x01, 0x6c, + 0x10, 0xeb, 0x04, 0x60, 0xd5, 0xa0, 0x01, 0x8a, 0x80, 0x00, 0xc1, 0xfc, 0xc2, 0x3c, 0x04, 0xfc, + 0x02, 0x8c, 0x11, 0xe8, 0x16, 0x02, 0x07, 0x8c, 0x11, 0x28, 0x05, 0x06, 0x13, 0x09, 0x03, 0x00, + 0x00, 0x0f, 0x03, 0xd0, 0x03, 0x00, 0x00, 0x02, 0xd3, 0xa0, 0x01, 0x03, 0x13, 0xf8, 0x10, 0x9b, + 0xa2, 0x06, 0x17, 0x01, 0x05, 0x87, 0xa0, 0x86, 0x17, 0x1e, 0x07, 0x8e, 0x01, 0x04, 0x03, 0x00, + 0x00, 0x0f, 0x03, 0xd0, 0x03, 0x00, 0x00, 0x02, 0xd3, 0xe0, 0x01, 0x03, 0x13, 0xf8, 0x01, 0x5e, + 0x21, 0x00, 0x16, 0x03, 0x07, 0x9e, 0xde, 0x8c, 0x10, 0x0e, 0x01, 0x5e, 0x01, 0x00, 0x16, 0x0b, + 0xc3, 0xde, 0x01, 0xcf, 0xff, 0x00, 0x01, 0x8f, 0x04, 0x80, 0xc7, 0x8f, 0x01, 0x5e, 0x20, 0x00, + 0x13, 0xf1, 0x01, 0xc0, 0x80, 0x00, 0xc1, 0x81, 0x07, 0x20, 0xfc, 0x02, 0x07, 0x83, 0xfc, 0x76, + 0x07, 0x89, 0x00, 0x06, 0x07, 0x8e, 0xfc, 0x00, 0x03, 0x00, 0x00, 0x0f, 0x03, 0xd0, 0x03, 0x00, + 0x00, 0x02, 0xd3, 0xe0, 0x01, 0x03, 0x13, 0xf8, 0xc4, 0xc4, 0xc8, 0x04, 0xfc, 0xe6, 0xc8, 0x04, + 0xfd, 0x56, 0xc8, 0x04, 0xfd, 0xc6, 0xc8, 0x04, 0xfe, 0x36, 0xc8, 0x04, 0xfe, 0xa6, 0xc8, 0x04, + 0xff, 0x16, 0xc8, 0x04, 0xff, 0x86, 0xc0, 0x5e, 0x04, 0xde, 0xc8, 0x20, 0x00, 0xe4, 0x01, 0x6c, + 0xc3, 0xe0, 0x00, 0xe2, 0x13, 0x08, 0xc7, 0x86, 0xc8, 0x06, 0x00, 0xe4, 0x04, 0xc6, 0xc8, 0x01, + 0x01, 0x6c, 0x04, 0x60, 0xd0, 0x9e, 0x07, 0x8e, 0xd5, 0x8e, 0x04, 0x60, 0xd3, 0x98, 0x62, 0x46, + 0x60, 0x86, 0x03, 0x00, 0x00, 0x0f, 0x03, 0xd0, 0x03, 0x00, 0x00, 0x02, 0xd3, 0xe0, 0x01, 0x03, + 0x13, 0xf8, 0x88, 0x01, 0x00, 0xe2, 0x16, 0x0a, 0xc3, 0xdd, 0x13, 0xf3, 0x03, 0x90, 0x00, 0x17, + 0x06, 0x9b, 0x02, 0x2d, 0x00, 0x06, 0xc8, 0x01, 0x01, 0x6c, 0x10, 0xeb, 0xc0, 0xe0, 0xfc, 0x02, + 0x13, 0x09, 0xc1, 0xa0, 0x08, 0x8a, 0x61, 0x89, 0x61, 0xa0, 0xfc, 0x04, 0x06, 0x20, 0x10, 0x80, + 0x04, 0x60, 0xd2, 0x78, 0x07, 0x86, 0x03, 0xf4, 0x61, 0x89, 0xa0, 0x86, 0x15, 0x02, 0x07, 0x82, + 0x7f, 0xff, 0xc1, 0x81, 0x07, 0x20, 0xfc, 0x02, 0x07, 0xa0, 0xfc, 0x04, 0x03, 0xee, 0x07, 0x83, + 0xfc, 0x76, 0x07, 0x89, 0x00, 0x06, 0x07, 0x8e, 0xfc, 0x00, 0xc4, 0xc4, 0xc8, 0x04, 0xfc, 0xe6, + 0xc8, 0x04, 0xfd, 0x56, 0xc8, 0x04, 0xfd, 0xc6, 0xc8, 0x04, 0xfe, 0x36, 0xc8, 0x04, 0xfe, 0xa6, + 0xc8, 0x04, 0xff, 0x16, 0xc8, 0x04, 0xff, 0x86, 0xc0, 0x5e, 0x04, 0xde, 0xc8, 0x20, 0x00, 0xe4, + 0x01, 0x6c, 0xc3, 0xe0, 0x00, 0xe2, 0x13, 0x07, 0xc7, 0x86, 0xc8, 0x06, 0x00, 0xe4, 0x04, 0xc6, + 0xc8, 0x01, 0x01, 0x6c, 0x10, 0xae, 0x07, 0x8e, 0xd6, 0x40, 0x04, 0x60, 0xd3, 0x98, 0xc1, 0x60, + 0xf8, 0x00, 0x83, 0x05, 0x13, 0x0c, 0xc8, 0x05, 0x01, 0x6a, 0xc2, 0x20, 0xf8, 0x02, 0x13, 0xf7, + 0x15, 0x14, 0x06, 0xa0, 0x97, 0xb6, 0xc0, 0x60, 0xf8, 0x00, 0x83, 0x01, 0x16, 0x6d, 0x04, 0x60, + 0xb9, 0xc0, 0x06, 0xa0, 0xf9, 0x32, 0x80, 0x45, 0x16, 0x4f, 0x04, 0x60, 0xb9, 0xc0, 0x06, 0xa0, + 0x97, 0xb6, 0xc2, 0x20, 0xf8, 0x02, 0x11, 0xfb, 0x13, 0xe2, 0x01, 0xa0, 0x07, 0x78, 0x40, 0x00, + 0xc1, 0x41, 0xc0, 0x60, 0xf8, 0x00, 0x01, 0x48, 0x00, 0x01, 0x16, 0x3e, 0x04, 0xe0, 0xf8, 0x00, + 0x07, 0x8b, 0x03, 0xea, 0x62, 0xe0, 0xf8, 0x04, 0xc8, 0x0b, 0xf8, 0x04, 0x85, 0x05, 0x16, 0x02, + 0xc5, 0x01, 0x10, 0x10, 0xc8, 0x14, 0x01, 0x6a, 0x88, 0x05, 0xf8, 0x00, 0x13, 0x06, 0xc8, 0x20, + 0xf8, 0x00, 0x01, 0x6a, 0x88, 0x05, 0xf8, 0x00, 0x16, 0xfa, 0xc8, 0x01, 0xf8, 0x00, 0x16, 0x02, + 0xc0, 0xa0, 0x01, 0x6a, 0x01, 0x08, 0xfe, 0x00, 0x16, 0xcc, 0xc8, 0x05, 0x01, 0x6a, 0x01, 0xe0, + 0xf8, 0x02, 0x00, 0x20, 0x07, 0x87, 0x06, 0x30, 0x01, 0xe7, 0x00, 0x04, 0x00, 0x40, 0x04, 0xd7, + 0x02, 0x27, 0x00, 0x0c, 0xa1, 0x45, 0xc9, 0x60, 0xf8, 0x00, 0x0c, 0x32, 0x04, 0xe0, 0xf8, 0x00, + 0x09, 0x15, 0xc2, 0x57, 0x16, 0x03, 0xcd, 0xc5, 0xc5, 0xc5, 0x10, 0x06, 0x05, 0xc7, 0xc8, 0x17, + 0x01, 0x6a, 0xc8, 0x05, 0xf8, 0x00, 0xc5, 0xc5, 0x83, 0x01, 0x13, 0xa9, 0xc8, 0x01, 0x01, 0x6a, + 0x01, 0x20, 0xf8, 0x06, 0x00, 0xc0, 0x13, 0xad, 0x01, 0x60, 0xf8, 0x02, 0x01, 0x00, 0x16, 0x05, + 0xc0, 0x60, 0xf8, 0x00, 0x83, 0x01, 0x16, 0xf2, 0x10, 0x9a, 0x07, 0xa0, 0x00, 0x12, 0xd7, 0xa4, + 0xc0, 0x60, 0xf8, 0x00, 0x83, 0x01, 0x13, 0x93, 0xc8, 0x01, 0x01, 0x6a, 0x01, 0x60, 0xf8, 0x02, + 0x01, 0x00, 0x16, 0x89, 0x07, 0xa0, 0x00, 0x12, 0xd7, 0x5e, 0x10, 0xea, 0x03, 0x00, 0x00, 0x02, + 0xc3, 0x20, 0x01, 0x8a, 0x13, 0x1d, 0x83, 0x01, 0x13, 0x0e, 0xc8, 0x01, 0x01, 0x6a, 0x01, 0x20, + 0xf8, 0x06, 0x00, 0xc0, 0x13, 0x86, 0x01, 0x60, 0xf8, 0x02, 0x01, 0x00, 0x16, 0x07, 0xc0, 0x60, + 0xf8, 0x00, 0x83, 0x01, 0x16, 0xf2, 0x03, 0x90, 0xbf, 0xff, 0x03, 0x80, 0x07, 0xa0, 0x00, 0x12, + 0xd7, 0xa4, 0xc0, 0x60, 0xf8, 0x00, 0x83, 0x01, 0x16, 0x0b, 0x03, 0x90, 0xbf, 0xff, 0x03, 0x80, + 0x10, 0x18, 0x03, 0x00, 0x00, 0x02, 0xc3, 0x20, 0x01, 0x8a, 0x13, 0x13, 0x83, 0x01, 0x13, 0x0e, + 0xc8, 0x01, 0x01, 0x6a, 0x01, 0x60, 0xf8, 0x02, 0x01, 0x00, 0x16, 0x04, 0x07, 0xa0, 0x00, 0x12, + 0xd7, 0x5e, 0x10, 0xdd, 0xc0, 0x60, 0xf8, 0x00, 0x83, 0x01, 0x16, 0xf2, 0x03, 0x90, 0xbf, 0xff, + 0x03, 0x80, 0x07, 0x8b, 0x9c, 0x72, 0xc3, 0x01, 0x13, 0x39, 0xc2, 0x4c, 0xc8, 0x0c, 0x01, 0x6a, + 0xc2, 0x20, 0xf8, 0x02, 0x11, 0x2d, 0xc2, 0x4c, 0xc3, 0x20, 0xf8, 0x00, 0x16, 0xf7, 0xc8, 0x09, + 0x01, 0x6a, 0xc2, 0x20, 0xf8, 0x02, 0x16, 0x2a, 0x01, 0xe0, 0xf8, 0x02, 0x19, 0x00, 0x05, 0xa0, + 0x13, 0x80, 0x10, 0x24, 0x01, 0xe0, 0xf8, 0x02, 0x19, 0x00, 0x05, 0xa0, 0x13, 0x80, 0xc8, 0x0c, + 0x01, 0x8a, 0x07, 0x89, 0x09, 0x18, 0xc2, 0x19, 0x13, 0x01, 0x05, 0xc9, 0xc6, 0x4c, 0xc2, 0x20, + 0x00, 0x12, 0x02, 0x88, 0xd7, 0x5e, 0x16, 0x03, 0x01, 0xc0, 0x00, 0x40, 0x10, 0x05, 0x02, 0x88, + 0xd7, 0xa4, 0x16, 0x05, 0x01, 0x80, 0x40, 0x40, 0x07, 0xa0, 0x00, 0x12, 0x9c, 0x56, 0x04, 0x5b, + 0xc8, 0x09, 0x01, 0x6a, 0xc2, 0x20, 0xf8, 0x02, 0x16, 0xe2, 0x10, 0xdc, 0xc2, 0x20, 0x0c, 0x02, + 0x11, 0x01, 0x10, 0xe5, 0xd8, 0x20, 0xe0, 0x10, 0x01, 0x83, 0x07, 0x88, 0x00, 0x05, 0x0b, 0x88, + 0x0b, 0x88, 0x06, 0x08, 0x16, 0xfc, 0x07, 0xa0, 0x01, 0x8a, 0x00, 0x43, 0x10, 0xd8, 0x20, 0x00, + 0xd8, 0x70, 0x00, 0x7f, 0x00, 0x00, 0x20, 0x00, 0xf8, 0x30, 0x05, 0xec, 0x68, 0x04, 0x09, 0x32, + 0xd3, 0xcf, 0x16, 0x30, 0x01, 0x4f, 0x00, 0x80, 0x16, 0x2d, 0x01, 0x0e, 0x00, 0x03, 0x16, 0x2a, + 0xd1, 0x04, 0x13, 0x01, 0x07, 0x04, 0x06, 0xc4, 0x07, 0x03, 0x07, 0x88, 0x07, 0x23, 0xb6, 0x04, + 0x18, 0x0d, 0x01, 0x4d, 0x00, 0x02, 0x13, 0x0f, 0xc0, 0x60, 0x06, 0x7c, 0x02, 0x81, 0x06, 0x30, + 0x13, 0x0a, 0x07, 0x88, 0x80, 0x18, 0x06, 0xa0, 0xe0, 0x22, 0x10, 0x05, 0x76, 0x04, 0x96, 0x03, + 0x13, 0x02, 0xd6, 0x01, 0x10, 0xee, 0x07, 0x88, 0x07, 0x2f, 0xb6, 0x04, 0x18, 0x03, 0x96, 0x03, + 0x13, 0x05, 0x04, 0x5c, 0x76, 0x04, 0x96, 0x03, 0x13, 0x05, 0xd6, 0x03, 0x07, 0x83, 0x80, 0x40, + 0x06, 0xa0, 0xe3, 0x56, 0x04, 0x5c, 0x03, 0x00, 0x00, 0x02, 0xc1, 0x4b, 0x02, 0x85, 0x00, 0x43, + 0x13, 0x2c, 0x01, 0x60, 0x09, 0x6a, 0x00, 0x04, 0x16, 0x06, 0xc8, 0x05, 0x01, 0x6c, 0x01, 0x60, + 0xfc, 0x02, 0x00, 0x20, 0x13, 0x07, 0x06, 0xa0, 0xf9, 0x32, 0x03, 0x90, 0x04, 0x77, 0x03, 0x80, + 0xc8, 0x0a, 0x01, 0x6c, 0xc2, 0xa0, 0xfc, 0x00, 0x16, 0xfb, 0xc2, 0xa0, 0x01, 0x6c, 0x07, 0x89, + 0x03, 0xea, 0x62, 0x60, 0xfc, 0x04, 0xc8, 0x09, 0xfc, 0x04, 0x07, 0x89, 0x05, 0xf8, 0xc2, 0xd9, + 0x16, 0x02, 0xce, 0x45, 0x10, 0x05, 0x05, 0xc9, 0xc8, 0x19, 0x01, 0x6c, 0xc8, 0x05, 0xfc, 0x00, + 0xc6, 0x4a, 0x01, 0xa0, 0x07, 0x78, 0x07, 0xff, 0x10, 0xe0, 0x07, 0xa0, 0x0c, 0x02, 0x80, 0x00, + 0x07, 0xa0, 0x0c, 0x04, 0x00, 0x28, 0xc0, 0x41, 0x16, 0xd8, 0xd8, 0x20, 0xe0, 0x10, 0x01, 0x83, + 0x07, 0x89, 0x00, 0x05, 0x0b, 0x89, 0x0b, 0x89, 0x06, 0x09, 0x16, 0xfc, 0xc8, 0x05, 0x01, 0x8a, + 0x07, 0xa0, 0x00, 0x12, 0x9c, 0x56, 0x01, 0xe0, 0x00, 0xe0, 0x00, 0x40, 0x10, 0xc6, 0xc2, 0x85, + 0xc2, 0x60, 0x07, 0x80, 0xc8, 0x0a, 0x01, 0x6a, 0x07, 0x20, 0xf8, 0x02, 0x07, 0xa0, 0xf8, 0x04, + 0x03, 0xee, 0xc8, 0x09, 0xf8, 0x76, 0xc8, 0x09, 0xf8, 0xe6, 0xc8, 0x09, 0xf9, 0x56, 0xc8, 0x09, + 0xf9, 0xc6, 0xc8, 0x09, 0xfa, 0x36, 0xc8, 0x09, 0xfa, 0xa6, 0xc8, 0x09, 0xfb, 0x16, 0xc8, 0x09, + 0xfb, 0x86, 0xc8, 0x09, 0xfb, 0xf6, 0xc2, 0xa0, 0xf8, 0x00, 0x16, 0xe4, 0xc2, 0xa0, 0x01, 0x6a, + 0xc0, 0x41, 0x13, 0x06, 0xc8, 0x02, 0x01, 0x6a, 0xc8, 0x05, 0xf8, 0x00, 0xc0, 0x8a, 0x04, 0x5b, + 0xc8, 0x20, 0x08, 0x94, 0x01, 0x6a, 0x16, 0x05, 0x82, 0x85, 0x16, 0x07, 0xc8, 0x05, 0x08, 0x94, + 0x04, 0x5b, 0xc8, 0x05, 0xf8, 0x00, 0xc1, 0x60, 0x08, 0x94, 0x98, 0x20, 0xe0, 0x10, 0x01, 0x83, + 0x16, 0x19, 0x01, 0xe0, 0x01, 0x9c, 0x00, 0x40, 0x07, 0x89, 0x03, 0xe8, 0x0b, 0x89, 0x0b, 0x89, + 0x06, 0x09, 0x13, 0x14, 0x01, 0x60, 0x01, 0x9c, 0x00, 0x40, 0x16, 0xf8, 0x01, 0x60, 0x0c, 0x02, + 0x01, 0x00, 0x13, 0x0c, 0xd8, 0x20, 0x09, 0x2f, 0x01, 0x83, 0x07, 0xa0, 0x0c, 0x02, 0x80, 0x00, + 0x0b, 0x89, 0x0b, 0x89, 0xc8, 0x05, 0x01, 0x8a, 0xc8, 0x05, 0x09, 0x18, 0x04, 0xe0, 0x08, 0x94, + 0xc0, 0x54, 0x16, 0x02, 0xc5, 0x05, 0x10, 0x04, 0xc8, 0x02, 0x01, 0x6a, 0xc8, 0x05, 0xf8, 0x00, + 0xc0, 0x45, 0xc0, 0x8a, 0x07, 0xa0, 0x00, 0x12, 0x9c, 0x56, 0x01, 0xe0, 0x00, 0xe0, 0x00, 0x40, + 0x04, 0x5b, 0x07, 0x20, 0x0c, 0xb8, 0x07, 0x83, 0x80, 0x00, 0x04, 0x5b, 0x07, 0xa0, 0xfc, 0x04, + 0x03, 0xee, 0xc2, 0x20, 0x07, 0x80, 0xc8, 0x08, 0xfc, 0x76, 0xc8, 0x08, 0xfc, 0xe6, 0xc8, 0x08, + 0xfd, 0x56, 0xc8, 0x08, 0xfd, 0xc6, 0xc8, 0x08, 0xfe, 0x36, 0xc8, 0x08, 0xfe, 0xa6, 0xc8, 0x08, + 0xff, 0x16, 0xc8, 0x08, 0xff, 0x86, 0xc8, 0x08, 0xff, 0xf6, 0x04, 0x60, 0xc0, 0xc6, 0xc3, 0xa0, + 0x00, 0xe2, 0xc8, 0x0e, 0x08, 0x66, 0xc8, 0x0e, 0x01, 0x6c, 0xc3, 0xa0, 0xfc, 0x00, 0x06, 0x0d, + 0x16, 0xfa, 0x04, 0xe0, 0xfc, 0x00, 0xc8, 0x20, 0x01, 0x6c, 0x08, 0x7c, 0xc8, 0x0e, 0x00, 0xe2, + 0xc8, 0x0e, 0x07, 0x7a, 0x04, 0xe0, 0x08, 0x94, 0x04, 0xe0, 0x0c, 0xb8, 0x07, 0x8d, 0x00, 0x10, + 0x04, 0x5b, 0x03, 0x00, 0x00, 0x02, 0x07, 0x09, 0xc2, 0xa0, 0x01, 0x04, 0x01, 0x8a, 0x00, 0x80, + 0x52, 0x4a, 0xd2, 0x89, 0x01, 0xca, 0x25, 0x00, 0xc8, 0x0a, 0x01, 0x04, 0xd2, 0xa0, 0x01, 0x04, + 0x01, 0x0a, 0xda, 0x00, 0x16, 0xf5, 0x52, 0x4a, 0x01, 0xa0, 0x08, 0xa0, 0xff, 0x00, 0x07, 0xa0, + 0x08, 0xa8, 0x10, 0x00, 0x01, 0xc9, 0x05, 0x00, 0x07, 0x8a, 0x07, 0x78, 0x02, 0x89, 0x5f, 0xff, + 0x16, 0x19, 0x01, 0x5a, 0x80, 0x00, 0x16, 0x0f, 0x07, 0x89, 0xde, 0x8c, 0x01, 0x20, 0x07, 0x58, + 0x20, 0xfe, 0x13, 0x02, 0x01, 0x89, 0x04, 0x00, 0xc8, 0x09, 0x01, 0x04, 0x01, 0x9a, 0x80, 0x00, + 0x03, 0x90, 0xff, 0xff, 0x03, 0x80, 0x01, 0x20, 0x07, 0x58, 0x20, 0xfe, 0x16, 0x22, 0x03, 0x90, + 0xff, 0xff, 0x03, 0x80, 0x05, 0x49, 0x01, 0x89, 0x80, 0x00, 0x01, 0x49, 0x40, 0x00, 0x13, 0x23, + 0x01, 0x49, 0x20, 0x00, 0x16, 0x2f, 0x01, 0x5a, 0x80, 0x00, 0x16, 0x0e, 0x01, 0x9a, 0x80, 0x00, + 0x07, 0x8a, 0xde, 0x8c, 0x01, 0x20, 0x07, 0x58, 0x20, 0xfe, 0x13, 0x02, 0x01, 0x8a, 0x04, 0x00, + 0xc8, 0x0a, 0x01, 0x04, 0x01, 0x89, 0x20, 0x00, 0xd2, 0x49, 0x16, 0x05, 0x03, 0x90, 0xff, 0xff, + 0x03, 0x80, 0x07, 0x89, 0x20, 0x00, 0xf8, 0x09, 0x07, 0x3a, 0xc2, 0x60, 0x07, 0x36, 0x13, 0xf6, + 0x04, 0xe0, 0x07, 0x36, 0x04, 0x54, 0x04, 0xca, 0x87, 0x4a, 0x87, 0x4a, 0x87, 0x4a, 0x87, 0x4a, + 0x87, 0x4a, 0x87, 0x4a, 0x87, 0x4a, 0x87, 0x4a, 0x87, 0x4a, 0x87, 0x4a, 0x06, 0x0a, 0x16, 0xf4, + 0x04, 0x60, 0xb3, 0xf0, 0x01, 0x5a, 0x80, 0x00, 0x13, 0x04, 0x01, 0x20, 0x07, 0x58, 0x20, 0xfe, + 0x13, 0xdb, 0xc2, 0xa0, 0x01, 0x04, 0x01, 0xca, 0xff, 0x00, 0x01, 0x8a, 0x04, 0x80, 0xc8, 0x0a, + 0x01, 0x04, 0x01, 0x60, 0x01, 0x04, 0x20, 0x00, 0x16, 0xcf, 0x01, 0xc9, 0x20, 0x00, 0x07, 0x8a, + 0x07, 0x78, 0x10, 0xb9, 0x01, 0x60, 0x07, 0x58, 0x10, 0x00, 0x16, 0x13, 0x01, 0x20, 0x05, 0xee, + 0x00, 0x07, 0x16, 0x0f, 0xc1, 0xa0, 0x08, 0xa0, 0x06, 0xc6, 0xd1, 0xe0, 0x01, 0x03, 0x13, 0x14, + 0x71, 0x86, 0x06, 0xc6, 0x01, 0x20, 0x01, 0x04, 0x20, 0x00, 0x13, 0x22, 0x71, 0x86, 0xc8, 0x06, + 0x08, 0xa0, 0x01, 0x60, 0x01, 0x82, 0x20, 0x00, 0x16, 0x06, 0x01, 0xa0, 0x01, 0x82, 0x20, 0x00, + 0x01, 0xe0, 0x01, 0x82, 0x20, 0x00, 0x04, 0x5b, 0x07, 0x87, 0x01, 0x0c, 0x07, 0x88, 0x08, 0xa2, + 0x02, 0x26, 0xff, 0x00, 0x18, 0x04, 0xce, 0x37, 0xce, 0x37, 0xc6, 0x17, 0x10, 0xe2, 0x8e, 0x37, + 0x16, 0xdf, 0x8e, 0x37, 0x16, 0xdd, 0x86, 0x17, 0x16, 0xdb, 0xd1, 0x86, 0x16, 0xda, 0x10, 0x11, + 0x02, 0x26, 0x01, 0x00, 0x18, 0x0e, 0x19, 0xdb, 0xc1, 0xe0, 0x01, 0x04, 0x01, 0xc7, 0xff, 0x00, + 0x01, 0x87, 0x04, 0x80, 0xc8, 0x07, 0x01, 0x04, 0x01, 0x20, 0x01, 0x04, 0x20, 0x00, 0x16, 0xce, + 0x10, 0xce, 0x04, 0xe0, 0x08, 0xa8, 0x04, 0x5b, 0xc0, 0xe0, 0x07, 0x5c, 0xc8, 0x03, 0x01, 0x6c, + 0xc3, 0x43, 0xc2, 0xc3, 0xa2, 0xcb, 0xc2, 0xeb, 0x0c, 0x32, 0xc8, 0x0b, 0xfc, 0x00, 0x13, 0x07, + 0xc8, 0x0b, 0x01, 0x6c, 0xc2, 0xe0, 0xfc, 0x00, 0x16, 0xfb, 0xc3, 0x60, 0x01, 0x6c, 0x07, 0x8b, + 0x03, 0xea, 0x62, 0xe0, 0xfc, 0x04, 0xc8, 0x0b, 0xfc, 0x04, 0x07, 0x8b, 0x05, 0xf8, 0x03, 0x00, + 0x00, 0x02, 0xc3, 0x9b, 0x16, 0x02, 0xce, 0xc3, 0x10, 0x05, 0x05, 0xcb, 0xc8, 0x1b, 0x01, 0x6c, + 0xc8, 0x03, 0xfc, 0x00, 0xc6, 0xcd, 0x01, 0xa0, 0x07, 0x78, 0x07, 0xff, 0x03, 0x00, 0x00, 0x0f, + 0x04, 0x20, 0xea, 0x7a, 0x07, 0x8e, 0x01, 0x04, 0x03, 0x00, 0x00, 0x02, 0xc3, 0xde, 0x01, 0x4f, + 0x20, 0x00, 0x16, 0x08, 0x01, 0x20, 0x07, 0x78, 0x80, 0x00, 0x16, 0x04, 0x03, 0x00, 0x00, 0x0f, + 0x04, 0x60, 0xc5, 0xc6, 0x01, 0xcf, 0xff, 0x00, 0x01, 0x8f, 0x04, 0x80, 0xc7, 0x8f, 0x01, 0x5e, + 0x20, 0x00, 0x16, 0x04, 0x01, 0x60, 0x07, 0x78, 0x80, 0x00, 0x16, 0xf0, 0xc3, 0xdd, 0x02, 0x4f, + 0x00, 0x0f, 0xe1, 0x2f, 0xe0, 0x14, 0x03, 0x00, 0x00, 0x0f, 0x04, 0x5b, 0x03, 0x00, 0x00, 0x0f, + 0x10, 0x08, 0x06, 0xa0, 0xc7, 0x7e, 0x01, 0xc2, 0xff, 0x80, 0x01, 0x82, 0x24, 0x00, 0x07, 0x8e, + 0x01, 0x04, 0x03, 0x00, 0x00, 0x02, 0x01, 0x5e, 0x20, 0x00, 0x16, 0xf0, 0xc7, 0x82, 0x03, 0x00, + 0x00, 0x0f, 0x03, 0x90, 0x60, 0x3f, 0x04, 0x59, 0x07, 0x8e, 0x01, 0x04, 0x03, 0x00, 0x00, 0x02, + 0x01, 0x5e, 0x20, 0x00, 0x13, 0x06, 0xc3, 0xde, 0x01, 0xcf, 0xff, 0x00, 0x01, 0x8f, 0x04, 0x80, + 0xc7, 0x8f, 0x03, 0x00, 0x00, 0x0f, 0x04, 0x60, 0xc5, 0x60, 0x07, 0x8e, 0x01, 0x04, 0x03, 0x00, + 0x00, 0x02, 0x01, 0x5e, 0x20, 0x00, 0x16, 0x10, 0x03, 0x00, 0x00, 0x0f, 0x04, 0x60, 0xc6, 0x22, + 0x07, 0x8e, 0x01, 0x04, 0x03, 0x00, 0x00, 0x02, 0x01, 0x5e, 0x20, 0x00, 0x16, 0x09, 0x07, 0xa0, + 0x01, 0x04, 0xdb, 0x86, 0x01, 0x85, 0x58, 0x00, 0x03, 0x00, 0x00, 0x0f, 0x04, 0x60, 0xc5, 0x6a, + 0xc3, 0xde, 0x01, 0xcf, 0xff, 0x00, 0x01, 0x8f, 0x04, 0x80, 0xc7, 0x8f, 0x01, 0x5e, 0x20, 0x00, + 0x13, 0xee, 0x01, 0xc0, 0x00, 0x80, 0x01, 0xc5, 0x58, 0x00, 0x10, 0xee, 0x07, 0x8e, 0x80, 0x20, + 0xc2, 0x60, 0x01, 0x62, 0x04, 0xe0, 0x01, 0x62, 0x07, 0x8c, 0x09, 0x34, 0xcf, 0x1e, 0x11, 0x16, + 0xc3, 0x5e, 0xc3, 0xfe, 0xcf, 0x1e, 0xe3, 0x5e, 0xa3, 0xfe, 0xcf, 0x1e, 0xe3, 0x5e, 0x13, 0x0e, + 0xa3, 0xfe, 0x83, 0xfe, 0x16, 0x0b, 0xc3, 0x7e, 0x05, 0x4d, 0x83, 0x6e, 0xff, 0xf6, 0x16, 0x06, + 0x02, 0x8e, 0x80, 0x30, 0x16, 0xf8, 0xc8, 0x09, 0x01, 0x62, 0x04, 0x5b, 0xc8, 0x09, 0x01, 0x62, + 0x07, 0x20, 0x09, 0x34, 0x04, 0x5b, 0x04, 0xe0, 0x01, 0x68, 0xc8, 0x20, 0x07, 0xe4, 0x01, 0x18, + 0xc3, 0x60, 0x07, 0xe2, 0x07, 0x8f, 0x00, 0x81, 0xd3, 0xe0, 0x07, 0xf4, 0x01, 0x4d, 0x40, 0x00, + 0x16, 0x01, 0x05, 0x8f, 0xc8, 0x0f, 0x07, 0xf8, 0x07, 0x8f, 0x00, 0x81, 0xd3, 0xe0, 0x07, 0xee, + 0x01, 0x4d, 0x80, 0x00, 0x16, 0x01, 0x05, 0x8f, 0xc8, 0x0f, 0x07, 0xee, 0x01, 0x8d, 0xc0, 0x00, + 0xc8, 0x0d, 0x01, 0x1a, 0x04, 0x60, 0xc4, 0x16, 0x07, 0x8c, 0xee, 0x00, 0x06, 0xa0, 0x90, 0x94, + 0x07, 0x8c, 0xed, 0x90, 0x06, 0xa0, 0x90, 0x94, 0x04, 0xe0, 0x01, 0x04, 0x04, 0x60, 0xc5, 0x6a, + 0x02, 0x85, 0x00, 0x0e, 0x1a, 0x05, 0x01, 0x09, 0x0f, 0x00, 0x13, 0x02, 0x04, 0x60, 0xdd, 0x6a, + 0x99, 0x49, 0xea, 0xd0, 0x04, 0x60, 0xdd, 0x54, 0x20, 0x00, 0xb3, 0xcc, 0x00, 0x14, 0x07, 0x8b, + 0x01, 0x04, 0x01, 0x5b, 0x20, 0x00, 0x16, 0xfd, 0xd8, 0x20, 0x07, 0xdf, 0x01, 0x17, 0x07, 0x9b, + 0xdf, 0x80, 0x20, 0x00, 0xff, 0xc0, 0x00, 0x2a, 0x03, 0x00, 0x00, 0x00, 0x01, 0xe0, 0x01, 0x00, + 0x00, 0x80, 0x06, 0x4e, 0x02, 0x01, 0xef, 0xfa, 0xcc, 0x4d, 0xcc, 0x4e, 0xc4, 0x4f, 0x02, 0x00, + 0x00, 0x01, 0xc8, 0x00, 0xef, 0xe0, 0x88, 0x00, 0xef, 0xe0, 0x13, 0xfd, 0x02, 0xe0, 0xef, 0xe0, + 0x03, 0x80, 0x20, 0x00, 0xae, 0x00, 0x00, 0xaa, 0xc3, 0xce, 0x10, 0x32, 0x00, 0x00, 0xc0, 0x3c, + 0x08, 0x4e, 0x00, 0x00, 0xc0, 0x20, 0x07, 0x78, 0x00, 0x00, 0x00, 0x02, 0x08, 0x56, 0x01, 0x0c, + 0x00, 0x08, 0x08, 0x62, 0x03, 0xf8, 0x00, 0x06, 0x00, 0x00, 0x12, 0x00, 0x00, 0x02, 0x08, 0x7e, + 0x01, 0x8c, 0x00, 0x02, 0x07, 0x78, 0x07, 0xff, 0x00, 0x06, 0x07, 0x7e, 0xfc, 0x76, 0xbe, 0xad, + 0x01, 0x0a, 0x00, 0x08, 0x07, 0x8a, 0x00, 0x06, 0x00, 0x00, 0xcf, 0x7a, 0x11, 0x28, 0x00, 0x04, + 0x13, 0xa0, 0x13, 0xa0, 0x90, 0x2a, 0x00, 0x02, 0x08, 0x96, 0x97, 0x6a, 0xc0, 0x04, 0x08, 0x9e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x9d, 0xc8, 0x01, 0x80, 0x01, 0x00, 0x01, 0x38, 0x01, 0x7c, + 0x01, 0xce, 0x02, 0x32, 0x02, 0xae, 0x03, 0x42, 0x03, 0xf8, 0x03, 0xf8, 0x03, 0xf8, 0x03, 0xf8, + 0x03, 0xf8, 0x03, 0xf8, 0x03, 0xf8, 0x03, 0xf8, 0x03, 0xf8, 0x03, 0xf8, 0x03, 0xf8, 0x03, 0xf8, + 0x03, 0xf8, 0x03, 0xf8, 0x03, 0xf8, 0x03, 0xf8, 0x03, 0xf8, 0x03, 0xf8, 0x03, 0xf8, 0x03, 0xf8, + 0x03, 0xf8, 0x03, 0xf8, 0x03, 0xf8, 0x03, 0xf8, 0x03, 0xf8, 0x03, 0xf8, 0x03, 0xf8, 0x03, 0xf8, + 0xcc, 0x00, 0x20, 0x00, 0xb2, 0x98, 0x00, 0x04, 0x02, 0x09, 0x14, 0x00, 0x20, 0x00, 0xb2, 0xa8, + 0x00, 0x02, 0x90, 0x00, 0x20, 0x00, 0xb1, 0x00, 0x00, 0x02, 0x90, 0x00, 0x20, 0x00, 0xf8, 0x08, + 0x00, 0x02, 0x90, 0x00, 0x20, 0x00, 0xc8, 0xbe, 0x00, 0x04, 0xc2, 0xcb, 0xc2, 0xcb, 0x20, 0x00, + 0xbf, 0xb4, 0x00, 0x08, 0x88, 0x0b, 0x07, 0x98, 0x88, 0x0b, 0x07, 0x78, 0x20, 0x00, 0xc0, 0x54, + 0x00, 0x04, 0x06, 0xa0, 0xfa, 0x06, 0x20, 0x00, 0xc0, 0x5e, 0x00, 0x04, 0x07, 0x84, 0x07, 0x7a, + 0x20, 0x00, 0xc0, 0xc2, 0x00, 0x04, 0x04, 0x60, 0xfa, 0x10, 0x20, 0x00, 0xc9, 0xc0, 0x00, 0x02, + 0x16, 0xe2, 0x20, 0x00, 0xc9, 0xc2, 0x00, 0x04, 0x06, 0xa0, 0xfa, 0x42, 0x20, 0x00, 0xc9, 0xe8, + 0x00, 0x04, 0x04, 0x60, 0xca, 0x0c, 0x20, 0x00, 0xb9, 0xa0, 0x00, 0x04, 0x04, 0x60, 0x98, 0xa0, + 0x20, 0x00, 0xbb, 0x92, 0x00, 0x04, 0x06, 0xa0, 0x9a, 0xf4, 0x20, 0x00, 0xbc, 0x20, 0x00, 0x04, + 0xc1, 0xe0, 0xfc, 0x02, 0x20, 0x00, 0xc5, 0x5c, 0x00, 0x04, 0x04, 0x60, 0xfc, 0xec, 0x20, 0x00, + 0xc5, 0xa2, 0x00, 0x04, 0x04, 0x60, 0xfc, 0x78, 0x20, 0x00, 0xc5, 0xda, 0x00, 0x04, 0x04, 0x60, + 0xfc, 0xc6, 0x20, 0x00, 0xc6, 0x1c, 0x00, 0x04, 0x04, 0x60, 0xfd, 0x0e, 0x20, 0x00, 0xc2, 0xe6, + 0x00, 0x06, 0x01, 0x20, 0x01, 0x00, 0x00, 0x80, 0x20, 0x00, 0xc3, 0xd4, 0x00, 0x02, 0x01, 0x17, + 0x20, 0x00, 0xa2, 0xca, 0x00, 0x02, 0xc5, 0x60, 0x20, 0x00, 0xa2, 0xd2, 0x00, 0x02, 0xfd, 0x24, + 0x20, 0x00, 0xa2, 0xf2, 0x00, 0x02, 0xfd, 0x24, 0x20, 0x00, 0xa3, 0x18, 0x00, 0x02, 0xce, 0x98, + 0x20, 0x00, 0xc5, 0x6e, 0x00, 0x02, 0x10, 0x0c, 0x20, 0x00, 0xc4, 0x0c, 0x00, 0x04, 0x06, 0xa0, + 0xfd, 0xaa, 0x20, 0x00, 0xcc, 0x38, 0x00, 0x02, 0xc7, 0x7e, 0x20, 0x00, 0xa0, 0xc4, 0x00, 0x02, + 0xc7, 0x7e, 0x20, 0x00, 0xc5, 0xec, 0x00, 0x02, 0xc7, 0xb4, 0x20, 0x00, 0xa0, 0xc0, 0x00, 0x02, + 0xc7, 0xb4, 0x20, 0x00, 0xc5, 0x14, 0x00, 0x04, 0x04, 0x60, 0xfd, 0xec, 0x20, 0x00, 0xc4, 0xe6, + 0x00, 0x04, 0x06, 0xa0, 0xfd, 0x60, 0x20, 0x00, 0xc8, 0x2c, 0x00, 0x02, 0x06, 0x69, 0x20, 0x00, + 0xcc, 0x60, 0x00, 0x02, 0x06, 0x69, 0x20, 0x00, 0xdc, 0x68, 0x00, 0x02, 0x04, 0x5c, 0x20, 0x00, + 0xdc, 0xb8, 0x00, 0x04, 0x04, 0x60, 0xf8, 0x30, 0x20, 0x00, 0xdd, 0x50, 0x00, 0x04, 0x04, 0x60, + 0xfe, 0x04, 0x20, 0x80, 0xb4, 0x88, 0x00, 0x02, 0xfb, 0x88, 0x20, 0x80, 0xdf, 0x06, 0x00, 0x02, + 0x08, 0xa8, 0x20, 0x00, 0xa0, 0x34, 0x00, 0x0a, 0x00, 0x02, 0x28, 0xf1, 0xf0, 0xf1, 0xf8, 0xe7, + 0xe7, 0xe7, 0x20, 0x00, 0xb2, 0x3c, 0x00, 0x02, 0x06, 0x03, 0x20, 0x00, 0xa1, 0x16, 0x00, 0x02, + 0x9c, 0x56, 0x20, 0x00, 0xa1, 0x1a, 0x00, 0x02, 0x98, 0x4e, 0x20, 0x00, 0xa1, 0x1c, 0x00, 0x04, + 0x08, 0x4e, 0x95, 0xa8, 0x20, 0x00, 0xa1, 0x22, 0x00, 0x02, 0xfa, 0x76, 0x20, 0x00, 0xa1, 0x66, + 0x00, 0x02, 0xf8, 0x9a, 0x20, 0x00, 0xa1, 0x6e, 0x00, 0x02, 0x9a, 0x22, 0x20, 0x00, 0xa1, 0x72, + 0x00, 0x02, 0x9b, 0x56, 0x20, 0x00, 0xa1, 0x7a, 0x00, 0x02, 0x9a, 0xb0, 0x20, 0x00, 0xa1, 0x80, + 0x00, 0x04, 0xef, 0xc0, 0xff, 0xc0, 0x20, 0x00, 0xa1, 0x9c, 0x00, 0x02, 0x9d, 0xb8, 0x20, 0x00, + 0xa0, 0xb0, 0x00, 0x02, 0xce, 0xe8, 0x20, 0x00, 0xa0, 0xac, 0x00, 0x02, 0x07, 0x78, 0x20, 0x00, + 0xa2, 0xe6, 0x00, 0x02, 0xfc, 0x1c, 0x20, 0x00, 0xf5, 0xc4, 0x00, 0x02, 0x00, 0x02, 0x20, 0x00, + 0xf6, 0x7a, 0x00, 0x02, 0x00, 0x02, 0x20, 0x00, 0xf6, 0xae, 0x00, 0x02, 0x00, 0x02, 0x20, 0x00, + 0xf5, 0xfa, 0x00, 0x02, 0x02, 0x00, 0x20, 0x00, 0xf6, 0x18, 0x00, 0x02, 0x02, 0x00, 0x20, 0x00, + 0xc5, 0xc8, 0x00, 0x04, 0xc2, 0xa0, 0x07, 0xf8, 0x20, 0x00, 0xc6, 0x9a, 0x00, 0x04, 0xc2, 0xa0, + 0x07, 0xf8, 0x20, 0x00, 0xc6, 0xdc, 0x00, 0x04, 0xc2, 0xa0, 0x07, 0xf8, 0x20, 0x00, 0xcc, 0x24, + 0x00, 0x04, 0xc2, 0xa0, 0x07, 0xee, 0x20, 0x00, 0xa3, 0x64, 0x00, 0x02, 0x07, 0xf8, 0x20, 0x00, + 0xa3, 0x6e, 0x00, 0x02, 0x07, 0xf8, 0x20, 0x00, 0xc3, 0xa6, 0x00, 0x02, 0x3f, 0xfe, 0x20, 0x00, + 0xa4, 0x46, 0x00, 0x02, 0x07, 0x08, 0x30, 0x00, 0x90, 0xf0, 0x00, 0x06, 0xc3, 0xe0, 0xf0, 0x00, + 0x11, 0xf8, 0x30, 0x00, 0x92, 0x2a, 0x00, 0x06, 0xc3, 0xe0, 0xf0, 0x00, 0x11, 0xf8, 0x30, 0x00, + 0x93, 0x5c, 0x00, 0x06, 0xc3, 0xe0, 0xf0, 0x00, 0x11, 0xf8, 0x30, 0x00, 0x94, 0x5a, 0x00, 0x06, + 0xc3, 0xe0, 0xf0, 0x00, 0x11, 0xf8, 0x30, 0x00, 0x95, 0x16, 0x00, 0x06, 0xc3, 0xe0, 0xf0, 0x00, + 0x11, 0xf8, 0x30, 0x00, 0xcf, 0xe2, 0x00, 0x06, 0xc3, 0xe0, 0xf0, 0x00, 0x11, 0xf8, 0x30, 0x00, + 0xd0, 0x14, 0x00, 0x06, 0xc3, 0xe0, 0xf0, 0x00, 0x11, 0xf8, 0x30, 0x00, 0xd0, 0x5e, 0x00, 0x06, + 0xc3, 0xe0, 0xf0, 0x00, 0x11, 0xf8, 0x30, 0x00, 0xd0, 0x98, 0x00, 0x06, 0xc3, 0xe0, 0xf0, 0x00, + 0x11, 0xf8, 0x30, 0x00, 0xd0, 0xea, 0x00, 0x06, 0xc3, 0xe0, 0xf0, 0x00, 0x11, 0xf8, 0x30, 0x00, + 0xd1, 0x52, 0x00, 0x06, 0xc3, 0xe0, 0xf0, 0x00, 0x11, 0xf8, 0x30, 0x00, 0xd1, 0x76, 0x00, 0x06, + 0xc3, 0xe0, 0xf0, 0x00, 0x11, 0xf8, 0x30, 0x00, 0xd1, 0xb6, 0x00, 0x06, 0xc3, 0xe0, 0xf0, 0x00, + 0x11, 0xf8, 0x30, 0x00, 0xd1, 0xec, 0x00, 0x06, 0xc3, 0xe0, 0xf0, 0x00, 0x11, 0xf8, 0x30, 0x00, + 0xd2, 0x3c, 0x00, 0x06, 0xc3, 0xe0, 0xf0, 0x00, 0x11, 0xf8, 0x30, 0x00, 0xd2, 0xca, 0x00, 0x06, + 0xc3, 0xe0, 0xf0, 0x00, 0x11, 0xf8, 0x30, 0x00, 0xd3, 0x30, 0x00, 0x06, 0xc3, 0xe0, 0xf0, 0x00, + 0x11, 0xf8, 0x30, 0x00, 0xd4, 0x5a, 0x00, 0x06, 0xc3, 0xe0, 0xf0, 0x00, 0x11, 0xf8, 0x30, 0x00, + 0xd4, 0xaa, 0x00, 0x06, 0xc3, 0xe0, 0xf0, 0x00, 0x11, 0xf8, 0x30, 0x00, 0xd4, 0xea, 0x00, 0x06, + 0xc3, 0xa0, 0xf0, 0x00, 0x11, 0xf8, 0x30, 0x00, 0xd5, 0x0a, 0x00, 0x06, 0xc3, 0xe0, 0xf0, 0x00, + 0x11, 0xf8, 0x30, 0x00, 0xd5, 0x54, 0x00, 0x06, 0xc3, 0xe0, 0xf0, 0x00, 0x11, 0xf8, 0x30, 0x00, + 0xd5, 0xae, 0x00, 0x06, 0xc3, 0xe0, 0xf0, 0x00, 0x11, 0xf8, 0x30, 0x00, 0xfb, 0x9e, 0x00, 0x06, + 0xc1, 0xe0, 0xf0, 0x00, 0x11, 0x14, 0x30, 0x00, 0xc7, 0x4e, 0x00, 0x06, 0x01, 0x60, 0xf0, 0x00, + 0x80, 0x00, 0x30, 0x00, 0xc7, 0x86, 0x00, 0x06, 0x01, 0x60, 0xf0, 0x00, 0x80, 0x00, 0x30, 0x00, + 0xc7, 0xbc, 0x00, 0x06, 0x01, 0x60, 0xf0, 0x00, 0x80, 0x00, 0x30, 0x00, 0x95, 0x5e, 0x00, 0x04, + 0xed, 0x03, 0xed, 0x03, 0x30, 0x00, 0x95, 0x8a, 0x00, 0x04, 0xed, 0x03, 0xed, 0x03, 0x34, 0x00, + 0x91, 0xa4, 0x00, 0x02, 0x60, 0x82, 0x34, 0x00, 0x92, 0x44, 0x00, 0x02, 0x60, 0x82, 0x34, 0x00, + 0x93, 0x78, 0x00, 0x02, 0x60, 0x82, 0x34, 0x00, 0x94, 0x7a, 0x00, 0x02, 0x68, 0x82, 0x34, 0x00, + 0x95, 0x32, 0x00, 0x02, 0x60, 0x82, 0x34, 0x00, 0x95, 0x6c, 0x00, 0x02, 0x68, 0x82, 0x34, 0x00, + 0x95, 0x98, 0x00, 0x02, 0x68, 0x82, 0x34, 0x00, 0x95, 0xda, 0x00, 0x02, 0x20, 0x82, 0x38, 0x00, + 0xd0, 0x76, 0x00, 0x02, 0xe0, 0x82, 0x38, 0x00, 0xd0, 0xca, 0x00, 0x02, 0xe0, 0x82, 0x38, 0x00, + 0xd4, 0x3a, 0x00, 0x02, 0xe0, 0x82, 0x20, 0x00, 0xa0, 0x02, 0x00, 0x02, 0xf9, 0xe0, 0x20, 0x00, + 0xa0, 0x7a, 0x00, 0x02, 0xe5, 0x18, 0x20, 0x80, 0xa0, 0x02, 0x00, 0x02, 0x5b, 0x58, 0x20, 0x80, + 0xa0, 0x7a, 0x00, 0x02, 0x83, 0xa0, 0x30, 0x00, 0xa0, 0x02, 0x00, 0x02, 0xae, 0x4f, 0x30, 0x00, + 0xa0, 0x7a, 0x00, 0x02, 0x2f, 0xfc, 0x30, 0x80, 0xa0, 0x02, 0x00, 0x02, 0x0f, 0xc7, 0x30, 0x80, + 0xa0, 0x7a, 0x00, 0x02, 0xce, 0x84, 0x34, 0x00, 0xa0, 0x02, 0x00, 0x02, 0xae, 0x4f, 0x34, 0x00, + 0xa0, 0x7a, 0x00, 0x02, 0x2f, 0xf4, 0x34, 0x80, 0xa0, 0x02, 0x00, 0x02, 0x0f, 0xc7, 0x34, 0x80, + 0xa0, 0x7a, 0x00, 0x02, 0xce, 0x7c, 0x38, 0x00, 0xa0, 0x02, 0x00, 0x02, 0xae, 0x52, 0x38, 0x00, + 0xa0, 0x7a, 0x00, 0x02, 0x2f, 0xf1, 0x38, 0x80, 0xa0, 0x02, 0x00, 0x02, 0x0f, 0xca, 0x38, 0x80, + 0xa0, 0x7a, 0x00, 0x02, 0xce, 0x79, 0x00, 0x00, 0x80, 0x00, 0x09, 0xfc, 0x53, 0x4d, 0x41, 0x43, + 0x2e, 0x30, 0x30, 0x2e, 0x33, 0x38, 0x20, 0x20, 0x28, 0x43, 0x29, 0x20, 0x43, 0x6f, 0x70, 0x79, + 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x4f, 0x6c, 0x69, 0x63, 0x6f, 0x6d, 0x20, 0x31, 0x39, 0x39, + 0x38, 0x2e, 0x00, 0x00, 0x07, 0xa0, 0x13, 0x04, 0xc4, 0x00, 0x01, 0x60, 0x09, 0x6a, 0x80, 0x00, + 0x16, 0x03, 0x01, 0xa0, 0x09, 0x6a, 0x00, 0x60, 0x01, 0x60, 0x09, 0x6a, 0x00, 0x40, 0x16, 0x34, + 0x01, 0x20, 0x13, 0x0c, 0x10, 0x00, 0x16, 0x30, 0xd8, 0x20, 0x09, 0x2e, 0x13, 0x06, 0xd8, 0x20, + 0x01, 0x80, 0x13, 0x08, 0xd8, 0x20, 0x01, 0x82, 0x13, 0x0a, 0x07, 0xa0, 0x13, 0x00, 0x87, 0xe0, + 0x07, 0xa0, 0x13, 0x02, 0xed, 0xb6, 0x07, 0xa0, 0x13, 0x14, 0x00, 0x04, 0x06, 0xa0, 0x84, 0xd0, + 0x07, 0xa0, 0x13, 0x0c, 0x04, 0x00, 0xd8, 0x20, 0xef, 0x54, 0x09, 0x2e, 0x01, 0xe0, 0x13, 0x0c, + 0x10, 0x00, 0x01, 0xa0, 0x13, 0x0c, 0x28, 0x00, 0x01, 0x60, 0x09, 0x6a, 0x00, 0x20, 0x16, 0x03, + 0x01, 0xe0, 0x13, 0x0c, 0x28, 0x00, 0x07, 0xa0, 0x13, 0x4c, 0x00, 0x02, 0x02, 0x0a, 0x00, 0x02, + 0x01, 0xe0, 0x13, 0x0e, 0x01, 0x80, 0x10, 0x09, 0x07, 0xa0, 0x13, 0x00, 0xdb, 0xc4, 0x07, 0xa0, + 0x13, 0x02, 0xea, 0xb0, 0x01, 0xa0, 0x13, 0x0c, 0x38, 0x00, 0x06, 0xa0, 0xdc, 0x32, 0xc2, 0xe0, + 0x13, 0x00, 0x04, 0x5b, 0x01, 0x4e, 0x00, 0x40, 0x16, 0x02, 0x04, 0x60, 0xcc, 0xb4, 0x02, 0x0d, + 0x12, 0x00, 0x04, 0x60, 0xcc, 0xa6, 0x01, 0x60, 0x13, 0x0c, 0x10, 0x00, 0x13, 0x02, 0x04, 0x60, + 0xe3, 0xce, 0xc8, 0x0b, 0x13, 0x52, 0x06, 0xa0, 0xe3, 0xce, 0xd8, 0x20, 0xe0, 0x0a, 0xfc, 0x06, + 0xc2, 0xe0, 0x13, 0x52, 0x04, 0x5b, 0x01, 0x60, 0x13, 0x0c, 0x10, 0x00, 0x16, 0x06, 0x02, 0x84, + 0x00, 0x12, 0x13, 0x15, 0x02, 0x84, 0x00, 0x14, 0x13, 0x2d, 0x06, 0xa0, 0xe3, 0xce, 0x01, 0x60, + 0x13, 0x0c, 0x10, 0x00, 0x16, 0x0a, 0xd8, 0x20, 0xe0, 0x0a, 0x04, 0x06, 0x88, 0x20, 0x13, 0x54, + 0x03, 0xf8, 0x13, 0x03, 0x07, 0xa0, 0x03, 0xf8, 0x81, 0x8c, 0x04, 0x60, 0xdb, 0x96, 0x02, 0x04, + 0x00, 0x08, 0x06, 0xa0, 0xe3, 0xce, 0x07, 0xa0, 0x03, 0xf8, 0x81, 0x8c, 0x02, 0x05, 0x04, 0x04, + 0x02, 0x06, 0xef, 0x5c, 0xcd, 0x76, 0xcd, 0x76, 0x02, 0x25, 0x00, 0x0c, 0xcd, 0x76, 0xcd, 0x76, + 0xcd, 0x76, 0xcd, 0x60, 0x13, 0x12, 0xcd, 0x76, 0xcd, 0x60, 0x13, 0x4c, 0xcd, 0x76, 0xc5, 0x60, + 0x09, 0x1e, 0x10, 0xe3, 0x02, 0x04, 0x00, 0x08, 0x06, 0xa0, 0xe3, 0xce, 0x07, 0xa0, 0x03, 0xf8, + 0x81, 0x8c, 0x02, 0x05, 0x04, 0x04, 0x02, 0x06, 0xef, 0x6a, 0xcd, 0x76, 0xcd, 0x76, 0x02, 0x25, + 0x00, 0x0c, 0xcd, 0x76, 0xcd, 0x76, 0x10, 0xd1, 0x04, 0x60, 0x87, 0xe0, 0x01, 0x4f, 0x00, 0x0a, + 0x16, 0x03, 0x01, 0x4f, 0x00, 0x80, 0x04, 0x5b, 0x04, 0x60, 0xda, 0x04, 0xc0, 0xc3, 0x13, 0x06, + 0x01, 0x60, 0x13, 0x0c, 0x10, 0x00, 0x16, 0x02, 0x01, 0xd6, 0x00, 0x80, 0x07, 0x86, 0x07, 0x36, + 0x04, 0x60, 0xe3, 0x7a, 0xa0, 0x60, 0x13, 0x02, 0xc1, 0x11, 0x04, 0x54, 0x01, 0x48, 0x40, 0x00, + 0x16, 0x06, 0x01, 0x88, 0x40, 0x00, 0x02, 0x28, 0xef, 0x00, 0x04, 0x60, 0xe0, 0x36, 0x02, 0x28, + 0xe3, 0xee, 0x04, 0x60, 0xe0, 0x36, 0x01, 0x60, 0x13, 0x0c, 0x10, 0x00, 0x16, 0x06, 0x02, 0x85, + 0x00, 0x12, 0x13, 0x0a, 0x02, 0x85, 0x00, 0x14, 0x13, 0x07, 0x02, 0x85, 0x00, 0x15, 0x13, 0x24, + 0x02, 0x85, 0x00, 0x10, 0x04, 0x60, 0xdd, 0x4c, 0x02, 0x03, 0x80, 0x02, 0x88, 0x24, 0x00, 0x14, + 0xe0, 0x1c, 0x16, 0x19, 0x05, 0x83, 0x05, 0x83, 0x92, 0x60, 0xef, 0x9e, 0x16, 0x14, 0x05, 0x83, + 0x99, 0x20, 0xe0, 0x0e, 0x00, 0x18, 0x16, 0x0f, 0x05, 0x83, 0x05, 0x83, 0x02, 0x85, 0x00, 0x12, + 0x16, 0x05, 0x99, 0x20, 0xef, 0xa0, 0x00, 0x19, 0x16, 0x06, 0x10, 0x04, 0x99, 0x20, 0xef, 0xa1, + 0x00, 0x19, 0x16, 0x01, 0x04, 0xc3, 0x04, 0x5c, 0x02, 0x03, 0x80, 0x02, 0x88, 0x24, 0x00, 0x14, + 0xe0, 0x1e, 0x16, 0xf9, 0x05, 0x83, 0x05, 0x83, 0x92, 0x60, 0xef, 0x9e, 0x16, 0xf4, 0x04, 0xc3, + 0x10, 0xf2, 0x02, 0x85, 0x00, 0x15, 0x13, 0x09, 0x02, 0x85, 0x00, 0x09, 0x13, 0x02, 0x06, 0xa0, + 0xe2, 0xe4, 0xa1, 0x45, 0xc1, 0x65, 0xe3, 0xac, 0x04, 0x55, 0x06, 0xa0, 0xe1, 0xa2, 0x01, 0x60, + 0x13, 0x0c, 0x04, 0x00, 0x16, 0x19, 0x01, 0x4f, 0x00, 0x80, 0x16, 0x09, 0x01, 0xe0, 0x13, 0x0e, + 0x20, 0x00, 0x02, 0x03, 0x80, 0x10, 0x06, 0xa0, 0xe3, 0x56, 0x06, 0xa0, 0xe2, 0x72, 0x01, 0xe0, + 0x13, 0x0e, 0x00, 0x10, 0x07, 0xa0, 0x13, 0x00, 0x87, 0xe0, 0x07, 0xa0, 0x13, 0x02, 0xed, 0xb6, + 0x01, 0x8f, 0x00, 0x80, 0x02, 0x0a, 0x00, 0x08, 0x04, 0x60, 0x80, 0xbe, 0x02, 0x0d, 0x80, 0x00, + 0x01, 0x60, 0x13, 0x0c, 0x10, 0x00, 0x16, 0x02, 0x02, 0x0d, 0x80, 0x80, 0x04, 0x52, 0x01, 0x60, + 0x13, 0x0e, 0x20, 0x00, 0x16, 0x02, 0x02, 0x03, 0x82, 0x00, 0x04, 0x60, 0xdb, 0xb8, 0x02, 0x8f, + 0x00, 0x06, 0x16, 0x56, 0x01, 0xe0, 0x13, 0x0e, 0x00, 0xa0, 0x05, 0xa0, 0x13, 0x16, 0x06, 0xa0, + 0x85, 0x30, 0x02, 0x08, 0xc0, 0x00, 0x06, 0xa0, 0xe0, 0x22, 0x01, 0xcd, 0x04, 0x00, 0x10, 0x48, + 0x02, 0x8f, 0x00, 0x02, 0x16, 0x45, 0x02, 0x08, 0xc0, 0x42, 0x06, 0xa0, 0xe0, 0x22, 0x01, 0xcd, + 0x08, 0x00, 0x10, 0x3e, 0x93, 0xe0, 0xef, 0xa3, 0x13, 0x03, 0x93, 0xe0, 0xef, 0xa4, 0x16, 0x38, + 0xd2, 0xa0, 0xef, 0xa5, 0x10, 0x35, 0x02, 0x8f, 0x00, 0x06, 0x16, 0x32, 0x02, 0x03, 0x00, 0x03, + 0x04, 0x60, 0x82, 0xc2, 0x93, 0xe0, 0xef, 0xa5, 0x16, 0x2b, 0x01, 0xe0, 0x13, 0x0e, 0x00, 0x80, + 0x06, 0xa0, 0x85, 0x30, 0x04, 0xcf, 0x02, 0x0a, 0x00, 0x04, 0x02, 0x08, 0xc0, 0x1e, 0x06, 0xa0, + 0xe0, 0x22, 0x02, 0x03, 0x68, 0x00, 0x06, 0xa0, 0xe3, 0x56, 0x02, 0x03, 0x80, 0x10, 0x06, 0xa0, + 0xe3, 0x56, 0x10, 0x16, 0x02, 0x8f, 0x00, 0x04, 0x16, 0x13, 0x02, 0x03, 0x00, 0x03, 0x04, 0x60, + 0x82, 0xc2, 0x02, 0x8f, 0x00, 0x02, 0x16, 0x7a, 0x01, 0x60, 0x13, 0x0e, 0x00, 0x08, 0x16, 0x02, + 0x04, 0x60, 0x85, 0x56, 0x02, 0x0a, 0x00, 0x04, 0x02, 0x08, 0xc0, 0x1e, 0x06, 0xa0, 0xe0, 0x22, + 0x10, 0x6d, 0x01, 0x60, 0x13, 0x0e, 0x40, 0x00, 0x16, 0x69, 0x02, 0x8f, 0x00, 0x06, 0x16, 0x07, + 0x01, 0xe0, 0x13, 0x0e, 0x00, 0xa0, 0x05, 0xa0, 0x13, 0x16, 0x06, 0xa0, 0x85, 0x30, 0x02, 0x08, + 0xc0, 0x30, 0x06, 0xa0, 0xe0, 0x22, 0x01, 0xcd, 0x01, 0x00, 0x10, 0x58, 0x93, 0xe0, 0xef, 0xa3, + 0x16, 0x55, 0x02, 0x08, 0xc0, 0x36, 0x06, 0xa0, 0xe0, 0x22, 0x07, 0xa0, 0x07, 0x08, 0x00, 0x05, + 0x01, 0x60, 0x13, 0x0e, 0x04, 0x00, 0x16, 0x03, 0x07, 0xa0, 0x07, 0x08, 0x00, 0x02, 0x02, 0x05, + 0x03, 0xf8, 0x02, 0x04, 0x00, 0x04, 0x04, 0x60, 0x80, 0xfa, 0xc1, 0x20, 0x01, 0x84, 0x02, 0x44, + 0x88, 0x00, 0x13, 0x12, 0x48, 0x04, 0x01, 0x84, 0x06, 0x20, 0x07, 0x02, 0x16, 0x08, 0x01, 0xe0, + 0x13, 0x0e, 0x04, 0x00, 0x07, 0x83, 0xc0, 0x00, 0x06, 0xa0, 0xe3, 0x56, 0x10, 0x2f, 0x02, 0x08, + 0xc0, 0x3c, 0x06, 0xa0, 0xe0, 0x22, 0x10, 0x2a, 0x01, 0xe0, 0x01, 0x82, 0x40, 0x00, 0x06, 0xa0, + 0xe0, 0x18, 0x07, 0x20, 0x07, 0x02, 0x01, 0x8e, 0x80, 0x00, 0x01, 0xa0, 0x13, 0x0e, 0x06, 0x00, + 0x10, 0x1d, 0x02, 0x8f, 0x00, 0x02, 0x16, 0x1a, 0x01, 0x20, 0x13, 0x0e, 0x00, 0x40, 0x16, 0x16, + 0xc2, 0x20, 0x13, 0x14, 0x13, 0x09, 0x06, 0x20, 0x13, 0x14, 0x02, 0x08, 0xc0, 0x42, 0x06, 0xa0, + 0xe0, 0x22, 0x01, 0xcd, 0x08, 0x00, 0x10, 0x0a, 0x01, 0x60, 0x13, 0x0c, 0x20, 0x00, 0x13, 0x02, + 0x04, 0x60, 0x85, 0x56, 0x02, 0x03, 0x00, 0x05, 0x04, 0x60, 0x82, 0xc2, 0x04, 0x60, 0x87, 0xe0, + 0x02, 0x8f, 0x00, 0x06, 0x16, 0x04, 0x02, 0x03, 0x00, 0x05, 0x04, 0x60, 0x82, 0xc2, 0x01, 0x60, + 0x13, 0x0e, 0x20, 0x00, 0x16, 0xf3, 0x93, 0xe0, 0xef, 0xa2, 0x16, 0xf0, 0x01, 0xa0, 0x13, 0x0e, + 0x50, 0x80, 0x06, 0xa0, 0x85, 0x30, 0x01, 0xce, 0x00, 0x01, 0xd2, 0xa0, 0xef, 0xa3, 0x07, 0xa0, + 0x07, 0x08, 0x00, 0x05, 0x01, 0x60, 0x13, 0x0e, 0x04, 0x00, 0x16, 0x03, 0x07, 0xa0, 0x07, 0x08, + 0x00, 0x02, 0x02, 0x08, 0xc0, 0x36, 0x06, 0xa0, 0xe0, 0x22, 0x02, 0x08, 0xc0, 0x0c, 0x06, 0xa0, + 0xe0, 0x22, 0x02, 0x08, 0xc0, 0x18, 0x06, 0xa0, 0xe0, 0x22, 0x10, 0xd0, 0x02, 0x8f, 0x00, 0x08, + 0x16, 0xcd, 0x07, 0xa0, 0x13, 0x14, 0x00, 0x0c, 0x04, 0x60, 0x80, 0x74, 0xc3, 0x0b, 0x06, 0xa0, + 0x85, 0x48, 0x06, 0xa0, 0x84, 0xf2, 0xc2, 0xcc, 0x04, 0xe0, 0x13, 0x0e, 0x04, 0xe0, 0x13, 0x16, + 0x04, 0xe0, 0x06, 0xdc, 0x04, 0xe0, 0x06, 0xde, 0x04, 0xe0, 0x06, 0xe0, 0x04, 0x5b, 0x02, 0x06, + 0x00, 0x05, 0x02, 0x04, 0x13, 0x1a, 0xc1, 0x54, 0x13, 0x01, 0x2c, 0xd4, 0x02, 0x24, 0x00, 0x0a, + 0x06, 0x06, 0x16, 0xf9, 0x04, 0x5b, 0x02, 0x06, 0x00, 0x05, 0x02, 0x04, 0x06, 0x72, 0xc1, 0x54, + 0x13, 0x01, 0x2c, 0xd4, 0x02, 0x24, 0x00, 0x0a, 0x06, 0x06, 0x16, 0xf9, 0x04, 0x5b, 0x01, 0x60, + 0x13, 0x0e, 0x08, 0x00, 0x16, 0x03, 0x01, 0xe0, 0x01, 0x82, 0x20, 0x00, 0x01, 0x60, 0x13, 0x0e, + 0x00, 0x80, 0x16, 0x04, 0x01, 0xe0, 0x01, 0x82, 0x0a, 0x00, 0x10, 0x03, 0x01, 0xa0, 0x01, 0x82, + 0x0a, 0x00, 0x04, 0x5b, 0x01, 0xa0, 0x01, 0x82, 0x28, 0x00, 0x01, 0xe0, 0x01, 0x82, 0x10, 0x00, + 0x04, 0x5b, 0x06, 0xa0, 0x84, 0xf2, 0x04, 0xe0, 0x13, 0x0e, 0xd8, 0x20, 0x13, 0x06, 0x09, 0x2e, + 0xd8, 0x20, 0x13, 0x08, 0x01, 0x80, 0xd8, 0x20, 0x13, 0x0a, 0x01, 0x82, 0x06, 0xa0, 0xe0, 0x18, + 0x04, 0x60, 0xe5, 0x62, 0xc0, 0x62, 0x00, 0x04, 0xc8, 0x22, 0x00, 0x06, 0x01, 0x6c, 0x02, 0x82, + 0x04, 0x00, 0x1b, 0x0d, 0x01, 0x8e, 0x08, 0x00, 0x02, 0x8f, 0x00, 0x06, 0x16, 0x08, 0x06, 0x20, + 0x13, 0x16, 0x16, 0x05, 0x01, 0xa0, 0x13, 0x0e, 0x00, 0xa0, 0x06, 0xa0, 0x85, 0x30, 0xc1, 0x22, + 0x00, 0x0e, 0x04, 0x51, 0xc8, 0x02, 0x01, 0x6c, 0xa0, 0x82, 0xc8, 0x22, 0x0c, 0x32, 0xfc, 0x00, + 0x02, 0x02, 0xfc, 0x00, 0x93, 0xe0, 0xe3, 0xaa, 0x13, 0x71, 0x06, 0xa0, 0xdc, 0xc6, 0x01, 0xa2, + 0x00, 0x0e, 0x80, 0x00, 0xc8, 0x05, 0x06, 0xfc, 0xc0, 0xc3, 0x16, 0x43, 0x01, 0x22, 0x00, 0x16, + 0x0f, 0x00, 0x16, 0x10, 0x88, 0x22, 0x00, 0x0e, 0x09, 0x6c, 0x16, 0x0c, 0x88, 0x22, 0x00, 0x10, + 0x09, 0x6e, 0x16, 0x08, 0x88, 0x22, 0x00, 0x12, 0x09, 0x70, 0x16, 0x04, 0x06, 0xa0, 0xe1, 0xa2, + 0x04, 0x60, 0x87, 0xe0, 0x98, 0xa0, 0xef, 0xa6, 0x00, 0x16, 0x13, 0x04, 0x98, 0xa0, 0xef, 0xa7, + 0x00, 0x16, 0x16, 0x15, 0xc2, 0xe0, 0x06, 0xdc, 0x16, 0x06, 0xc2, 0xe0, 0x06, 0xde, 0x16, 0x03, + 0xc2, 0xe0, 0x06, 0xe0, 0x13, 0x0c, 0x88, 0x22, 0x00, 0x0e, 0x06, 0xdc, 0x16, 0x71, 0x88, 0x22, + 0x00, 0x10, 0x06, 0xde, 0x16, 0x6d, 0x88, 0x22, 0x00, 0x12, 0x06, 0xe0, 0x16, 0x69, 0x02, 0x85, + 0x00, 0x09, 0x13, 0x0b, 0x02, 0x85, 0x00, 0x15, 0x13, 0x08, 0x02, 0x85, 0x00, 0x12, 0x13, 0x0d, + 0x02, 0x85, 0x00, 0x14, 0x13, 0x0e, 0x06, 0xa0, 0xe2, 0xe4, 0xa1, 0x45, 0xc1, 0x65, 0xef, 0x72, + 0x04, 0x55, 0x06, 0xa0, 0xe0, 0x6e, 0x04, 0x60, 0x87, 0xe0, 0xc8, 0x24, 0x00, 0x1a, 0x13, 0x4e, + 0x10, 0xf4, 0xc8, 0x24, 0x00, 0x1a, 0x13, 0x50, 0x10, 0xf0, 0x01, 0x20, 0x13, 0x0e, 0x02, 0x00, + 0x16, 0x07, 0x04, 0xe0, 0x01, 0x84, 0x01, 0xa0, 0x01, 0x82, 0x40, 0x00, 0x06, 0xa0, 0xe0, 0x18, + 0x07, 0xa0, 0x07, 0x02, 0x00, 0x04, 0x01, 0xe0, 0x13, 0x0e, 0x02, 0x00, 0x01, 0xce, 0x80, 0x00, + 0x02, 0x08, 0xc0, 0x3c, 0x06, 0xa0, 0xe0, 0x22, 0x04, 0x60, 0x87, 0xe0, 0x06, 0xa0, 0xe1, 0xa2, + 0x04, 0x60, 0x87, 0xe0, 0x06, 0xa0, 0xe1, 0xa2, 0x02, 0x03, 0x00, 0x05, 0x01, 0x4f, 0x00, 0x80, + 0x16, 0x02, 0x02, 0x03, 0x82, 0x00, 0x04, 0x60, 0x82, 0xc2, 0x01, 0x60, 0x13, 0x0e, 0x20, 0x00, + 0x16, 0x24, 0x93, 0xe0, 0xef, 0xa2, 0x16, 0x0c, 0x01, 0x60, 0x13, 0x0e, 0x20, 0x00, 0x16, 0x28, + 0x02, 0x03, 0xa0, 0x00, 0x06, 0xa0, 0xe3, 0x56, 0x01, 0xa0, 0x13, 0x0e, 0x50, 0x00, 0x10, 0x03, + 0x93, 0xe0, 0xef, 0xa3, 0x16, 0x1d, 0x01, 0xce, 0x00, 0x02, 0xd2, 0xa0, 0xef, 0xa4, 0x02, 0x08, + 0xc0, 0x0c, 0x06, 0xa0, 0xe0, 0x22, 0x02, 0x08, 0xc0, 0x18, 0x06, 0xa0, 0xe0, 0x22, 0x10, 0x10, + 0x06, 0xa0, 0xe1, 0xa2, 0x02, 0x03, 0x00, 0x0b, 0x10, 0x04, 0x06, 0xa0, 0xe1, 0xa2, 0x02, 0x03, + 0x00, 0x05, 0x01, 0x4f, 0x00, 0x80, 0x16, 0x02, 0x02, 0x03, 0x82, 0x00, 0x04, 0x60, 0x82, 0xc2, + 0x10, 0xbd, 0x02, 0x8f, 0x00, 0x02, 0x13, 0xf1, 0x02, 0x8f, 0x00, 0x04, 0x13, 0xee, 0x01, 0x60, + 0x13, 0x0e, 0x40, 0x00, 0x16, 0xf5, 0x02, 0x08, 0xc0, 0x48, 0x06, 0xa0, 0xe0, 0x22, 0x10, 0xf0, + 0x02, 0x8f, 0x00, 0x02, 0x16, 0xab, 0xc0, 0xe0, 0x13, 0x4e, 0x16, 0x0e, 0x01, 0x60, 0x13, 0x0c, + 0x08, 0x00, 0x13, 0xa8, 0x01, 0xe0, 0x13, 0x0e, 0x00, 0x48, 0x06, 0xa0, 0xe1, 0xa2, 0x02, 0x08, + 0xc0, 0x24, 0x06, 0xa0, 0xe0, 0x22, 0x10, 0x22, 0x02, 0x83, 0x00, 0x02, 0x16, 0xd9, 0xc8, 0x24, + 0x00, 0x0e, 0x06, 0xdc, 0xc8, 0x24, 0x00, 0x10, 0x06, 0xde, 0xc8, 0x24, 0x00, 0x12, 0x06, 0xe0, + 0x06, 0xa0, 0xe1, 0xa2, 0x02, 0x08, 0xc0, 0x24, 0x06, 0xa0, 0xe0, 0x22, 0x01, 0xe0, 0x13, 0x0e, + 0x00, 0x40, 0xc0, 0xe0, 0x13, 0x12, 0x16, 0x04, 0x01, 0xa0, 0x13, 0x0e, 0x08, 0x01, 0x10, 0x06, + 0x02, 0x83, 0x00, 0x01, 0x16, 0x03, 0x01, 0xe0, 0x13, 0x0e, 0x08, 0x01, 0x10, 0x17, 0x02, 0x8f, + 0x00, 0x06, 0x16, 0xb6, 0xc0, 0xe0, 0x13, 0x50, 0x02, 0x83, 0x00, 0x00, 0x16, 0x05, 0x06, 0xa0, + 0xe1, 0xa2, 0x02, 0x0a, 0x00, 0x0a, 0x10, 0x0a, 0x02, 0x83, 0x80, 0x20, 0x16, 0x04, 0x02, 0x03, + 0x00, 0x08, 0x04, 0x60, 0x82, 0xc2, 0x16, 0xa4, 0x04, 0x60, 0xda, 0x04, 0x92, 0xa0, 0xe0, 0x26, + 0x16, 0x0d, 0xd3, 0xe0, 0xe0, 0x26, 0x01, 0x4f, 0x00, 0x80, 0x13, 0x07, 0xc1, 0x0a, 0x83, 0xc4, + 0x13, 0x08, 0xc3, 0xc4, 0xc1, 0x24, 0xed, 0xd6, 0x04, 0x54, 0x10, 0x03, 0x93, 0xca, 0x13, 0xec, + 0xd3, 0xca, 0x03, 0xb0, 0xd8, 0x0f, 0x06, 0x59, 0x71, 0x04, 0xc1, 0x24, 0xed, 0xe2, 0x04, 0x54, + 0xf8, 0x20, 0xef, 0x54, 0x01, 0x80, 0xf8, 0x20, 0xef, 0x56, 0x01, 0x82, 0x06, 0xa0, 0xe0, 0x18, + 0x2e, 0xe0, 0x00, 0x00, 0xc8, 0x20, 0x09, 0x6c, 0x01, 0xa0, 0xc8, 0x20, 0x09, 0x6e, 0x01, 0xa2, + 0xc8, 0x20, 0x09, 0x70, 0x01, 0xa4, 0x02, 0x08, 0xc0, 0x06, 0x06, 0xa0, 0xe0, 0x22, 0x10, 0xcc, + 0x07, 0xa0, 0x06, 0xc6, 0x02, 0x00, 0x07, 0xa0, 0x06, 0xc8, 0x00, 0x02, 0xd8, 0x20, 0xef, 0x58, + 0x09, 0x2e, 0xd8, 0x20, 0xef, 0x58, 0x01, 0x80, 0xd8, 0x20, 0xef, 0x5a, 0x01, 0x82, 0x06, 0xa0, + 0xe0, 0x18, 0x04, 0xe0, 0x01, 0x9e, 0x02, 0x08, 0xc0, 0x2a, 0x06, 0xa0, 0xe0, 0x22, 0x02, 0x04, + 0x00, 0x0a, 0x02, 0x05, 0x03, 0xf4, 0x06, 0xa0, 0xe3, 0xce, 0x07, 0xa0, 0x03, 0xf8, 0x88, 0x94, + 0x01, 0x4e, 0x08, 0x00, 0x13, 0xa9, 0x01, 0xce, 0x08, 0x00, 0x2e, 0xa0, 0x03, 0xf4, 0x10, 0xa4, + 0x03, 0xb0, 0x98, 0x20, 0xe0, 0x0e, 0x06, 0x65, 0x16, 0x9f, 0x92, 0xa0, 0xe0, 0x26, 0x16, 0x9c, + 0x02, 0x44, 0x5e, 0x00, 0x16, 0x0b, 0x06, 0x20, 0x06, 0xc6, 0x16, 0xdd, 0x02, 0x0a, 0x00, 0x06, + 0x10, 0x95, 0x03, 0xb0, 0x98, 0x20, 0xe0, 0x0e, 0x06, 0x65, 0x16, 0x8e, 0x06, 0x20, 0x06, 0xc8, + 0x16, 0xc5, 0x04, 0x60, 0xe6, 0x6a, 0xd8, 0x20, 0xef, 0x54, 0x09, 0x2e, 0xd8, 0x20, 0xef, 0x54, + 0x01, 0x80, 0xd8, 0x20, 0xef, 0x56, 0x01, 0x82, 0x06, 0xa0, 0xe0, 0x18, 0x01, 0xe0, 0x13, 0x0e, + 0x40, 0x20, 0x07, 0xa0, 0x13, 0x16, 0x00, 0x01, 0x02, 0x08, 0xc0, 0x30, 0x06, 0xa0, 0xe0, 0x22, + 0x02, 0x08, 0xc0, 0x48, 0x06, 0xa0, 0xe0, 0x22, 0x02, 0x08, 0xc0, 0x12, 0x06, 0xa0, 0xe0, 0x22, + 0x02, 0x08, 0xc0, 0x00, 0x06, 0xa0, 0xe0, 0x22, 0x01, 0xcd, 0x04, 0x00, 0x04, 0x60, 0x87, 0xe0, + 0x06, 0xa0, 0x85, 0x48, 0x01, 0xce, 0x00, 0x20, 0x2e, 0xe0, 0x00, 0x00, 0x04, 0xcd, 0x06, 0xa0, + 0x85, 0x0a, 0x02, 0x08, 0xc0, 0x4e, 0x06, 0xa0, 0xe0, 0x22, 0x04, 0x60, 0x87, 0xe0, 0x01, 0xa0, + 0x13, 0x0e, 0x00, 0x80, 0x06, 0xa0, 0x85, 0x22, 0x01, 0xcf, 0x00, 0x80, 0x01, 0xe0, 0x13, 0x0e, + 0x10, 0x00, 0x01, 0x60, 0x13, 0x0e, 0x00, 0x01, 0x16, 0x04, 0x07, 0x88, 0x80, 0x06, 0x06, 0xa0, + 0xe0, 0x22, 0x01, 0x20, 0x13, 0x0e, 0x20, 0x00, 0x16, 0x07, 0x01, 0xe0, 0x13, 0x0e, 0x20, 0x00, + 0x04, 0xc3, 0x06, 0xa0, 0xe3, 0x56, 0x10, 0x0e, 0x01, 0x8e, 0x00, 0x03, 0x02, 0x03, 0x00, 0x10, + 0x06, 0xa0, 0xe3, 0x56, 0x01, 0x60, 0x13, 0x0e, 0x00, 0x10, 0x16, 0x04, 0x02, 0x03, 0x80, 0x08, + 0x06, 0xa0, 0xe3, 0x56, 0xc8, 0x20, 0xe4, 0x6e, 0x01, 0x86, 0x2e, 0xe0, 0x00, 0x01, 0x01, 0x8e, + 0x00, 0x20, 0x04, 0x60, 0x87, 0xdc, 0x02, 0x03, 0xa8, 0x00, 0x01, 0x60, 0x07, 0x08, 0x00, 0x02, + 0x16, 0x02, 0x02, 0x03, 0xe8, 0x00, 0x06, 0xa0, 0xe3, 0x56, 0x01, 0x4e, 0x00, 0x20, 0x13, 0x06, + 0x01, 0xce, 0x00, 0x20, 0x2e, 0xe0, 0x00, 0x00, 0xc0, 0x41, 0x16, 0xfa, 0x06, 0xa0, 0xe1, 0x2e, + 0x02, 0x4a, 0xff, 0x00, 0x02, 0x4f, 0xff, 0x80, 0x02, 0x05, 0x03, 0xf8, 0x02, 0x04, 0x00, 0x04, + 0x04, 0x60, 0x80, 0xfa, 0x02, 0x4a, 0xff, 0x00, 0x02, 0x4f, 0xff, 0x80, 0x04, 0x60, 0x87, 0xdc, + 0x06, 0xa0, 0x85, 0x48, 0x04, 0x60, 0x87, 0xdc, 0x06, 0xa0, 0x84, 0xf2, 0x04, 0xe0, 0x13, 0x0e, + 0x01, 0xce, 0x00, 0x08, 0x04, 0x60, 0xe7, 0xf6, 0x00, 0x00, 0x89, 0xfc, 0x06, 0x05, 0x00, 0x00, + 0x00, 0x00, 0xad, 0x90, 0x00, 0x62, 0xc0, 0x80, 0x13, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0x00, + 0xdb, 0xc4, 0x00, 0x02, 0x13, 0x02, 0xea, 0xb0, 0x00, 0x02, 0x13, 0x54, 0xdc, 0x16, 0x00, 0x02, + 0x09, 0x1e, 0x00, 0x00, 0x00, 0x02, 0x13, 0x12, 0x00, 0x01, 0x00, 0x00, 0xda, 0x88, 0xda, 0x7c, + 0x86, 0x6e, 0xda, 0xa6, 0xda, 0x9e, 0xdb, 0x86, 0xdb, 0x86, 0xdb, 0x86, 0xda, 0xa8, 0x85, 0xa8, + 0x85, 0x78, 0xdb, 0x78, 0xdb, 0x86, 0xdb, 0x86, 0xdb, 0x86, 0xdb, 0x86, 0xdb, 0x9e, 0x88, 0x14, + 0x88, 0x44, 0x88, 0xca, 0x89, 0x14, 0x89, 0x32, 0xdb, 0xf6, 0x89, 0x9a, 0x89, 0xd8, 0x89, 0xe4, + 0xe4, 0x6e, 0xdb, 0x9e, 0x89, 0xec, 0xdb, 0x9e, 0x00, 0x00, 0xaf, 0x00, 0x00, 0xa8, 0x13, 0x24, + 0x82, 0xd2, 0x00, 0x14, 0x13, 0x1a, 0x82, 0xf4, 0x00, 0x04, 0x13, 0x38, 0x83, 0x08, 0x02, 0xbc, + 0x13, 0x1a, 0x83, 0x1a, 0x07, 0x08, 0x13, 0x1a, 0x83, 0x28, 0x03, 0xe8, 0x13, 0x1a, 0x83, 0x58, + 0x00, 0xf0, 0x13, 0x1a, 0x83, 0x66, 0x00, 0x14, 0x13, 0x24, 0x88, 0xb6, 0x00, 0x04, 0x13, 0x2e, + 0x83, 0x86, 0x00, 0x64, 0x13, 0x2e, 0x83, 0xb0, 0x00, 0x02, 0x13, 0x42, 0x83, 0xde, 0x00, 0x05, + 0x13, 0x1a, 0x84, 0x26, 0x00, 0x04, 0x13, 0x38, 0x84, 0x64, 0x01, 0xf4, 0x13, 0x1a, 0x84, 0xc0, + 0x00, 0x14, 0xae, 0x00, 0xd9, 0x00, 0x02, 0x00, 0xd9, 0x00, 0x00, 0x1e, 0x10, 0x00, 0x00, 0x10, + 0x30, 0x11, 0x04, 0x0c, 0x04, 0x0e, 0x04, 0x21, 0x00, 0x12, 0x10, 0x00, 0x00, 0x04, 0x30, 0x13, + 0xdb, 0xa8, 0xe8, 0x7c, 0x86, 0xbe, 0x86, 0xa8, 0x86, 0xa8, 0x87, 0x26, 0x86, 0xa8, 0xeb, 0xf2, + 0xdb, 0xa8, 0x86, 0xa0, 0xec, 0x04, 0xe8, 0x62, 0xec, 0x10, 0xec, 0x10, 0xed, 0x3a, 0xed, 0x44, + 0xed, 0x4e, 0x86, 0xa0, 0x87, 0x44, 0x86, 0xa0, 0x87, 0xb2, 0x86, 0xa0, 0x03, 0x00, 0x0f, 0x0d, + 0x00, 0x02, 0x04, 0x06, 0x00, 0x03, 0x00, 0x00, 0xb2, 0xa8, 0x00, 0x02, 0x80, 0x00, 0x00, 0x00, + 0xb1, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x00, 0xf8, 0x08, 0x00, 0x02, 0x80, 0x00, 0x00, 0x00, + 0xb9, 0x0c, 0x00, 0x06, 0x48, 0x20, 0x13, 0x04, 0x01, 0x80, 0x00, 0x00, 0xba, 0x38, 0x00, 0x06, + 0x48, 0x20, 0x13, 0x04, 0x01, 0x80, 0x00, 0x00, 0xbc, 0x88, 0x00, 0x06, 0x48, 0x20, 0x13, 0x04, + 0x01, 0x80, 0x00, 0x00, 0xca, 0xaa, 0x00, 0x04, 0x04, 0x60, 0x82, 0xb0, 0x00, 0x00, 0xc8, 0x2c, + 0x00, 0x02, 0x06, 0x09, 0x00, 0x00, 0xcc, 0x60, 0x00, 0x02, 0x06, 0x09, 0x00, 0x00, 0xdb, 0x1c, + 0x00, 0x04, 0x04, 0x60, 0x82, 0x56, 0x00, 0x00, 0xe0, 0xc8, 0x00, 0x02, 0x80, 0xda, 0x00, 0x00, + 0xed, 0x74, 0x00, 0x02, 0x80, 0xda, 0x00, 0x00, 0xed, 0x94, 0x00, 0x02, 0x80, 0xda, 0x00, 0x00, + 0xe7, 0xae, 0x00, 0x04, 0x06, 0xa0, 0x81, 0x90, 0x00, 0x00, 0xe5, 0xb0, 0x00, 0x04, 0x04, 0x60, + 0x80, 0x28, 0x00, 0x00, 0xdb, 0xc0, 0x00, 0x04, 0x04, 0x60, 0x80, 0xbe, 0x00, 0x00, 0xda, 0x76, + 0x00, 0x04, 0x04, 0x60, 0x81, 0xb8, 0x00, 0x00, 0xe0, 0x32, 0x00, 0x04, 0x04, 0x60, 0x81, 0xc0, + 0x00, 0x00, 0xdb, 0x92, 0x00, 0x04, 0x04, 0x60, 0x80, 0xfa, 0x00, 0x00, 0xe3, 0x76, 0x00, 0x04, + 0x04, 0x60, 0x81, 0xa0, 0x00, 0x00, 0xdd, 0x48, 0x00, 0x04, 0x04, 0x60, 0x81, 0xda, 0x00, 0x00, + 0xcc, 0xa2, 0x00, 0x04, 0x04, 0x60, 0x80, 0xc8, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00 }; + +#endif /* OLTR_NO_TMS_MAC */ Property changes on: stable/3/sys/contrib/dev/oltr/trlldmac.c ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: stable/3/sys/net/if_iso88025subr.c =================================================================== --- stable/3/sys/net/if_iso88025subr.c (nonexistent) +++ stable/3/sys/net/if_iso88025subr.c (revision 44655) @@ -0,0 +1,410 @@ +/* + * Copyright (c) 1998, Larry Lile + * All rights reserved. + * + * For latest sources and information on this driver, please + * go to http://anarchy.stdio.com. + * + * Questions, comments or suggestions should be directed to + * Larry Lile . + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice unmodified, this list of conditions, and the following + * disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $Id: if_iso88025subr.c,v 1.5 1999/01/09 22:45:58 lile Exp $ + * + */ + +/* + * + * General ISO 802.5 (Token Ring) support routines + * + */ + +#include "opt_inet.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#include + +#include + +#ifdef INET +#include +#include +#include +#endif + +#if NBPFILTER > 0 +#include +#include +#endif + +#include +#include + +#include + +#include +#include +#include + +#include +#include + +void +iso88025_ifattach(ifp) + register struct ifnet *ifp; +{ + register struct ifaddr *ifa = NULL; + register struct sockaddr_dl *sdl; + + ifp->if_type = IFT_ISO88025; + ifp->if_addrlen = 6; + ifp->if_hdrlen=18; + if (ifp->if_baudrate == 0) + ifp->if_baudrate = 16000000; /* 1, 4, or 16Mbit default? */ + if (ifp->if_mtu == 0) + ifp->if_mtu = ISO88025_DEFAULT_MTU; + + ifa = ifnet_addrs[ifp->if_index - 1]; + if (ifa == 0) { + printf("iso88025_ifattach: no lladdr!\n"); + return; + } + sdl = (struct sockaddr_dl *)ifa->ifa_addr; + sdl->sdl_type = IFT_ISO88025; + sdl->sdl_alen = ifp->if_addrlen; + bcopy(((struct arpcom *)ifp)->ac_enaddr, LLADDR(sdl), ifp->if_addrlen); +} + +int +iso88025_ioctl(struct ifnet *ifp, int command, caddr_t data) +{ + struct ifaddr *ifa = (struct ifaddr *) data; + struct ifreq *ifr = (struct ifreq *) data; + int error = 0; + + switch (command) { + case SIOCSIFADDR: + ifp->if_flags |= IFF_UP; + + switch (ifa->ifa_addr->sa_family) { +#ifdef INET + case AF_INET: + ifp->if_init(ifp->if_softc); /* before arpwhohas */ + arp_ifinit((struct arpcom *)ifp, ifa); + break; +#endif + default: + ifp->if_init(ifp->if_softc); + break; + } + break; + + case SIOCGIFADDR: + { + struct sockaddr *sa; + + sa = (struct sockaddr *) & ifr->ifr_data; + bcopy(((struct arpcom *)ifp->if_softc)->ac_enaddr, + (caddr_t) sa->sa_data, ISO88025_ADDR_LEN); + } + break; + + case SIOCSIFMTU: + /* + * Set the interface MTU. + */ + if (ifr->ifr_mtu > ISO88025MTU) { + error = EINVAL; + } else { + ifp->if_mtu = ifr->ifr_mtu; + } + break; + } + return (error); +} + +/* + * ISO88025 encapsulation + */ +int +iso88025_output(ifp, m0, dst, rt0) + register struct ifnet *ifp; + struct mbuf *m0; + struct sockaddr *dst; + struct rtentry *rt0; +{ + register struct iso88025_header *th; + struct iso88025_header gen_th; + register struct iso88025_sockaddr_data *sd = (struct iso88025_sockaddr_data *)dst->sa_data; + register struct llc *l; + register struct sockaddr_dl *sdl = NULL; + int s, error = 0, rif_len = 0; + u_char edst[6]; + register struct mbuf *m = m0; + register struct rtentry *rt; + int len = m->m_pkthdr.len, loop_copy = 0; + struct arpcom *ac = (struct arpcom *)ifp; + + if ((ifp->if_flags & (IFF_UP|IFF_RUNNING)) != (IFF_UP|IFF_RUNNING)) + senderr(ENETDOWN); + rt = rt0; + if (rt) { + if ((rt->rt_flags & RTF_UP) == 0) { + rt0 = rt = rtalloc1(dst, 1, 0UL); + if (rt0) + rt->rt_refcnt--; + else + senderr(EHOSTUNREACH); + } + if (rt->rt_flags & RTF_GATEWAY) { + if (rt->rt_gwroute == 0) + goto lookup; + if (((rt = rt->rt_gwroute)->rt_flags & RTF_UP) == 0) { + rtfree(rt); rt = rt0; + lookup: rt->rt_gwroute = rtalloc1(rt->rt_gateway, 1, + 0UL); + if ((rt = rt->rt_gwroute) == 0) + senderr(EHOSTUNREACH); + } + } + if (rt->rt_flags & RTF_REJECT) + if (rt->rt_rmx.rmx_expire == 0 || + time_second < rt->rt_rmx.rmx_expire) + senderr(rt == rt0 ? EHOSTDOWN : EHOSTUNREACH); + } + + /* Calculate routing info length based on arp table entry */ + if (rt && (sdl = (struct sockaddr_dl *)rt->rt_gateway)) + if (sdl->sdl_rcf != NULL) + rif_len = (ntohs(sdl->sdl_rcf) & 0x1f00) >> 8; + + /* Generate a generic 802.5 header for the packet */ + gen_th.ac = 0x10; + gen_th.fc = 0x40; + memcpy(gen_th.iso88025_shost, ac->ac_enaddr, sizeof(ac->ac_enaddr)); + if (rif_len) { + gen_th.iso88025_shost[0] |= 0x80; + if (rif_len > 2) { + gen_th.rcf = sdl->sdl_rcf; + memcpy(gen_th.rseg, sdl->sdl_route, rif_len - 2); + } + } + + + switch (dst->sa_family) { +#ifdef INET + case AF_INET: + if (!arpresolve(ac, rt, m, dst, edst, rt0)) + return (0); /* if not yet resolved */ + /* Add LLC and SNAP headers */ + M_PREPEND(m, 8, M_DONTWAIT) + if (m == 0) + senderr(ENOBUFS); + l = mtod(m, struct llc *); + l->llc_un.type_snap.ether_type = htons(ETHERTYPE_IP); + l->llc_dsap = 0xaa; + l->llc_ssap = 0xaa; + l->llc_un.type_snap.control = 0x3; + l->llc_un.type_snap.org_code[0] = 0x0; + l->llc_un.type_snap.org_code[1] = 0x0; + l->llc_un.type_snap.org_code[2] = 0x0; + memcpy(gen_th.iso88025_dhost, edst, sizeof(edst)); + break; +#endif + + case AF_UNSPEC: + /* + * For AF_UNSPEC sockaddr.sa_data must contain all of the + * mac information needed to send the packet. This allows + * full mac, llc, and source routing function to be controlled. + * llc and source routing information must already be in the + * mbuf provided, ac/fc are set in sa_data. sockaddr.sa_data + * should be a iso88025_sockaddr_data structure see iso88025.h + */ + loop_copy = -1; + sd = (struct iso88025_sockaddr_data *)dst->sa_data; + gen_th.ac = sd->ac; + gen_th.fc = sd->fc; + memcpy(gen_th.iso88025_dhost, sd->ether_dhost, sizeof(sd->ether_dhost)); + memcpy(gen_th.iso88025_shost, sd->ether_shost, sizeof(sd->ether_shost)); + rif_len = 0; + break; + + default: + printf("%s%d: can't handle af%d\n", ifp->if_name, ifp->if_unit, + dst->sa_family); + senderr(EAFNOSUPPORT); + } + + /* + * Add local net header. If no space in first mbuf, + * allocate another. + */ + + M_PREPEND(m, ISO88025_HDR_LEN + rif_len, M_DONTWAIT); + if (m == 0) + senderr(ENOBUFS); + + /* Copy as much of the generic header as is needed into the mbuf */ + th = mtod(m, struct iso88025_header *); + memcpy(th, &gen_th, ISO88025_HDR_LEN + rif_len); + + /* + * If a simplex interface, and the packet is being sent to our + * Ethernet address or a broadcast address, loopback a copy. + * XXX To make a simplex device behave exactly like a duplex + * device, we should copy in the case of sending to our own + * ethernet address (thus letting the original actually appear + * on the wire). However, we don't do that here for security + * reasons and compatibility with the original behavior. + */ + if ((ifp->if_flags & IFF_SIMPLEX) && + (loop_copy != -1)) { + if ((m->m_flags & M_BCAST) || (loop_copy > 0)) { + struct mbuf *n = m_copy(m, 0, (int)M_COPYALL); + /*printf("iso88025_output: if_simloop broadcast.\n");*/ + (void) if_simloop(ifp, n, dst, ISO88025_HDR_LEN); + } else if (bcmp(th->iso88025_dhost, + th->iso88025_shost, ETHER_ADDR_LEN) == 0) { + /*printf("iso88025_output: if_simloop to ourselves.\n");*/ + (void) if_simloop(ifp, m, dst, ISO88025_HDR_LEN); + return(0); /* XXX */ + } + } + + s = splimp(); + /* + * Queue message on interface, and start output if interface + * not yet active. + */ + if (IF_QFULL(&ifp->if_snd)) { + printf("iso88025_output: packet dropped QFULL.\n"); + IF_DROP(&ifp->if_snd); + splx(s); + senderr(ENOBUFS); + } + IF_ENQUEUE(&ifp->if_snd, m); + /*printf("iso88025_output: packet queued.\n");*/ + if ((ifp->if_flags & IFF_OACTIVE) == 0) + (*ifp->if_start)(ifp); + splx(s); + ifp->if_obytes += len + ISO88025_HDR_LEN + 8; + if (m->m_flags & M_MCAST) + ifp->if_omcasts++; + return (error); + +bad: + if (m) + m_freem(m); + /*printf("iso88025_output: something went wrong, bailing to bad.\n");*/ + return (error); +} + +/* + * ISO 88025 de-encapsulation + */ +void +iso88025_input(ifp, th, m) + struct ifnet *ifp; + register struct iso88025_header *th; + struct mbuf *m; +{ + register struct ifqueue *inq; + u_short ether_type; + int s; + register struct llc *l = mtod(m, struct llc *); + + /*printf("iso88025_input: entered.\n");*/ + + /*m->m_pkthdr.len = m->m_len = m->m_len - 8;*/ /* Length of LLC header in our case */ + m->m_pkthdr.len -= 8; + m->m_len -= 8; + m->m_data += 8; /* Length of LLC header in our case */ + + if ((ifp->if_flags & IFF_UP) == 0) { + m_freem(m); + return; + } + ifp->if_ibytes += m->m_pkthdr.len + sizeof (*th); + if (th->iso88025_dhost[0] & 1) { + if (bcmp((caddr_t)etherbroadcastaddr, (caddr_t)th->iso88025_dhost, + sizeof(etherbroadcastaddr)) == 0) + m->m_flags |= M_BCAST; + else + m->m_flags |= M_MCAST; + } + if (m->m_flags & (M_BCAST|M_MCAST)) + ifp->if_imcasts++; + + ether_type = ntohs(l->llc_un.type_snap.ether_type); + + /*printf("iso88025_input: source %6D dest %6D ethertype %x\n", th->iso88025_shost, ":", th->iso88025_dhost, ":", ether_type);*/ + + switch (ether_type) { +#ifdef INET + case ETHERTYPE_IP: + /*printf("iso88025_input: IP Packet\n");*/ + th->iso88025_shost[0] &= ~(0x80); /* Turn off source route bit XXX */ + if (ipflow_fastforward(m)) + return; + schednetisr(NETISR_IP); + inq = &ipintrq; + break; + + case ETHERTYPE_ARP: + /*printf("iso88025_input: ARP Packet\n");*/ + schednetisr(NETISR_ARP); + inq = &arpintrq; + break; +#endif + default: + m_freem(m); + return; + } + + s = splimp(); + if (IF_QFULL(inq)) { + IF_DROP(inq); + m_freem(m); + printf("iso88025_input: Packet dropped (Queue full).\n"); + } else + IF_ENQUEUE(inq, m); + /*printf("iso88025_input: Packet queued.\n");*/ + splx(s); +} Property changes on: stable/3/sys/net/if_iso88025subr.c ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: stable/3/sys/net/iso88025.h =================================================================== --- stable/3/sys/net/iso88025.h (nonexistent) +++ stable/3/sys/net/iso88025.h (revision 44655) @@ -0,0 +1,112 @@ +/* + * Copyright (c) 1998, Larry Lile + * All rights reserved. + * + * For latest sources and information on this driver, please + * go to http://anarchy.stdio.com. + * + * Questions, comments or suggestions should be directed to + * Larry Lile . + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice unmodified, this list of conditions, and the following + * disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $Id: iso88025.h,v 1.10 1999/01/09 19:01:58 lile Exp $ + * + * Information gathered from tokenring@freebsd, /sys/net/ethernet.h and + * the Mach token ring driver. + */ + +/* + * Fundamental constants relating to iso 802.5 + */ + +#ifndef _NET_ISO88025_H_ +#define _NET_ISO88025_H_ + +/* + * The number of bytes in an iso 802.5 (MAC) address. + */ +#define ISO88025_ADDR_LEN 6 + +/* + */ +#define ISO88025_HDR_LEN (ISO88025_CF_LEN + ISO88025_ADDR_LEN*2) +#define ISO88025_CF_LEN 2 +#define RCF_LEN 2 +#define RIF_LEN 16 + + +/* + * The minimum packet length. + */ +#define ISO88025_MIN_LEN 0 /* This offends my morality */ + +/* + * The maximum packet length. + */ +#define ISO88025_MAX_LEN 17960 + +/* + * A macro to validate a length with + */ +#define ISO88025_IS_VALID_LEN(foo) \ + ((foo) >= ISO88025_MIN_LEN && (foo) <= ISO88025_MAX_LEN) + +/* + * ISO 802.5 physical header + */ +struct iso88025_header { + u_char ac; /* access control field */ + u_char fc; /* frame control field */ + u_char iso88025_dhost[ISO88025_ADDR_LEN]; /* destination address */ + u_char iso88025_shost[ISO88025_ADDR_LEN]; /* source address */ + u_short rcf; /* route control field */ + u_short rseg[RIF_LEN]; /* routing registers */ +}; + +struct iso88025_sockaddr_data { + u_char ether_dhost[ISO88025_ADDR_LEN]; + u_char ether_shost[ISO88025_ADDR_LEN]; + u_char ac; + u_char fc; +}; + +/* + * Structure of a 48-bit iso 802.5 address. + * ( We could also add the 16 bit addresses as a union) + */ +struct iso88025_addr { + u_char octet[ISO88025_ADDR_LEN]; +}; + +#define ISO88025MTU 18000 +#define ISO88025_DEFAULT_MTU 1500 +#define senderr(e) { error = (e); goto bad;} + +void iso88025_ifattach __P((struct ifnet *)); +int iso88025_ioctl __P((struct ifnet *, int , caddr_t )); +int iso88025_output __P((struct ifnet *, struct mbuf *, struct sockaddr *, struct rtentry *)); +void iso88025_input __P((struct ifnet *, struct iso88025_header *, struct mbuf *)); + + +#endif Property changes on: stable/3/sys/net/iso88025.h ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: stable/3/sys/ntfs/ntfs.h =================================================================== --- stable/3/sys/ntfs/ntfs.h (nonexistent) +++ stable/3/sys/ntfs/ntfs.h (revision 44655) @@ -0,0 +1,299 @@ +/*- + * Copyright (c) 1998, 1999 Semen Ustimenko + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $Id: ntfs.h,v 1.9 1999/02/02 01:54:54 semen Exp $ + */ + +#define DIAGNOSTIC +/*#define NTFS_DEBUG 1*/ + +typedef u_int64_t cn_t; +typedef u_int16_t wchar; + +#pragma pack(1) +#define BBSIZE 1024 +#define BBOFF ((off_t)(0)) +#define BBLOCK ((daddr_t)(0)) +#define NTFS_MFTINO 0 +#define NTFS_VOLUMEINO 3 +#define NTFS_ATTRDEFINO 4 +#define NTFS_ROOTINO 5 +#define NTFS_BITMAPINO 6 +#define NTFS_BOOTINO 7 +#define NTFS_BADCLUSINO 8 +#define NTFS_UPCASEINO 10 +#define NTFS_MAXFILENAME 255 + +struct fixuphdr { + u_int32_t fh_magic; + u_int16_t fh_foff; + u_int16_t fh_fnum; +}; + +#define NTFS_AF_INRUN 0x00000001 +struct attrhdr { + u_int32_t a_type; + u_int32_t reclen; + u_int8_t a_flag; + u_int8_t a_namelen; + u_int8_t a_nameoff; + u_int8_t reserved1; + u_int8_t a_compression; + u_int8_t reserved2; + u_int16_t a_index; +}; +#define NTFS_A_STD 0x10 +#define NTFS_A_ATTRLIST 0x20 +#define NTFS_A_NAME 0x30 +#define NTFS_A_VOLUMENAME 0x60 +#define NTFS_A_DATA 0x80 +#define NTFS_A_INDXROOT 0x90 +#define NTFS_A_INDX 0xA0 +#define NTFS_A_INDXBITMAP 0xB0 + +#define NTFS_MAXATTRNAME 255 +struct attr { + struct attrhdr a_hdr; + union { + struct { + u_int16_t a_datalen; + u_int16_t reserved1; + u_int16_t a_dataoff; + u_int16_t a_indexed; + } a_S_r; + struct { + cn_t a_vcnstart; + cn_t a_vcnend; + u_int16_t a_dataoff; + u_int16_t a_compressalg; + u_int32_t reserved1; + u_int64_t a_allocated; + u_int64_t a_datalen; + u_int64_t a_initialized; + } a_S_nr; + } a_S; +}; +#define a_r a_S.a_S_r +#define a_nr a_S.a_S_nr + +typedef struct { + u_int64_t t_create; + u_int64_t t_write; + u_int64_t t_mftwrite; + u_int64_t t_access; +} ntfs_times_t; + +#define NTFS_FFLAG_RDONLY 0x01LL +#define NTFS_FFLAG_HIDDEN 0x02LL +#define NTFS_FFLAG_SYSTEM 0x04LL +#define NTFS_FFLAG_ARCHIVE 0x20LL +#define NTFS_FFLAG_COMPRESSED 0x0800LL +#define NTFS_FFLAG_DIR 0x10000000LL + +struct attr_name { + u_int32_t n_pnumber; /* Parent ntnode */ + u_int32_t reserved; + ntfs_times_t n_times; + u_int64_t n_size; + u_int64_t n_attrsz; + u_int64_t n_flag; + u_int8_t n_namelen; + u_int8_t n_nametype; + u_int16_t n_name[1]; +}; + +#define NTFS_IRFLAG_INDXALLOC 0x00000001 +struct attr_indexroot { + u_int32_t ir_unkn1; /* always 0x30 */ + u_int32_t ir_unkn2; /* always 0x1 */ + u_int32_t ir_size;/* ??? */ + u_int32_t ir_unkn3; /* number of cluster */ + u_int32_t ir_unkn4; /* always 0x10 */ + u_int32_t ir_datalen; /* sizeof simething */ + u_int32_t ir_allocated; /* same as above */ + u_int16_t ir_flag;/* ?? always 1 */ + u_int16_t ir_unkn7; +}; + +struct attr_attrlist { + u_int32_t al_type; /* Attribute type */ + u_int16_t reclen; /* length of this entry */ + u_int8_t al_namelen; /* Attribute name len */ + u_int8_t al_nameoff; /* Name offset from entry start */ + u_int64_t al_vcnstart; /* VCN number */ + u_int32_t al_inumber; /* Parent ntnode */ + u_int32_t reserved; + u_int16_t al_index; /* Attribute index in MFT record */ + u_int16_t al_name[1]; /* Name */ +}; + +#define NTFS_INDXMAGIC (u_int32_t)(0x58444E49) +struct attr_indexalloc { + struct fixuphdr ia_fixup; + u_int64_t unknown1; + cn_t ia_bufcn; + u_int16_t ia_hdrsize; + u_int16_t unknown2; + u_int32_t ia_inuse; + u_int32_t ia_allocated; +}; + +#define NTFS_IEFLAG_SUBNODE 0x00000001 +#define NTFS_IEFLAG_LAST 0x00000002 + +struct attr_indexentry { + u_int32_t ie_number; + u_int32_t unknown1; + u_int16_t reclen; + u_int16_t ie_size; + u_int32_t ie_flag;/* 1 - has subnodes, 2 - last */ + u_int32_t ie_fpnumber; + u_int32_t unknown2; + ntfs_times_t ie_ftimes; + u_int64_t ie_fallocated; + u_int64_t ie_fsize; + u_int64_t ie_fflag; + u_int8_t ie_fnamelen; + u_int8_t ie_fnametype; + wchar ie_fname[NTFS_MAXFILENAME]; + /* cn_t ie_bufcn; buffer with subnodes */ +}; + +#define NTFS_FILEMAGIC (u_int32_t)(0x454C4946) +#define NTFS_FRFLAG_DIR 0x0002 +struct filerec { + struct fixuphdr fr_fixup; + u_int8_t reserved[8]; + u_int16_t fr_seqnum; /* Sequence number */ + u_int16_t fr_nlink; + u_int16_t fr_attroff; /* offset to attributes */ + u_int16_t fr_flags; /* 1-nonresident attr, 2-directory */ + u_int32_t fr_size;/* hdr + attributes */ + u_int32_t fr_allocated; /* allocated length of record */ + u_int64_t fr_mainrec; /* main record */ + u_int16_t fr_attrnum; /* maximum attr number + 1 ??? */ +}; + +#define NTFS_ATTRNAME_MAXLEN 0x40 +#define NTFS_ADFLAG_NONRES 0x0080 /* Attrib can be non resident */ +#define NTFS_ADFLAG_INDEX 0x0002 /* Attrib can be indexed */ +struct attrdef { + wchar ad_name[NTFS_ATTRNAME_MAXLEN]; + u_int32_t ad_type; + u_int32_t reserved1[2]; + u_int32_t ad_flag; + u_int64_t ad_minlen; + u_int64_t ad_maxlen; /* -1 for nonlimited */ +}; + +struct ntvattrdef { + char ad_name[0x40]; + int ad_namelen; + u_int32_t ad_type; +}; + +struct bootfile { + u_int8_t reserved1[3]; /* asm jmp near ... */ + u_int8_t bf_sysid[8]; /* 'NTFS ' */ + u_int16_t bf_bps; /* bytes per sector */ + u_int8_t bf_spc; /* sectors per cluster */ + u_int8_t reserved2[7]; /* unused (zeroed) */ + u_int8_t bf_media; /* media desc. (0xF8) */ + u_int8_t reserved3[2]; + u_int16_t bf_spt; /* sectors per track */ + u_int16_t bf_heads; /* number of heads */ + u_int8_t reserver4[12]; + u_int64_t bf_spv; /* sectors per volume */ + cn_t bf_mftcn; /* $MFT cluster number */ + cn_t bf_mftmirrcn; /* $MFTMirr cn */ + u_int8_t bf_mftrecsz; /* MFT record size (clust) */ + /* 0xF6 inducates 1/4 */ + u_int32_t bf_ibsz; /* index buffer size */ + u_int32_t bf_volsn; /* volume ser. num. */ +}; + +#define NTFS_SYSNODESNUM 0x0B +struct ntfsmount { + struct mount *ntm_mountp; + struct bootfile ntm_bootfile; + dev_t ntm_dev; + struct vnode *ntm_devvp; + struct vnode *ntm_sysvn[NTFS_SYSNODESNUM]; + wchar *ntm_upcase; + u_int32_t ntm_bpmftrec; + uid_t ntm_uid; + gid_t ntm_gid; + mode_t ntm_mode; + u_long ntm_flag; + struct ntvattrdef *ntm_ad; + int ntm_adnum; +}; + +#define ntm_mftcn ntm_bootfile.bf_mftcn +#define ntm_mftmirrcn ntm_bootfile.bf_mftmirrcn +#define ntm_mftrecsz ntm_bootfile.bf_mftrecsz +#define ntm_spc ntm_bootfile.bf_spc +#define ntm_bps ntm_bootfile.bf_bps + +#pragma pack() + +#define NTFS_NEXTREC(s, type) ((type)(((caddr_t) s) + (s)->reclen)) + +/* Convert mount ptr to ntfsmount ptr. */ +#define VFSTONTFS(mp) ((struct ntfsmount *)((mp)->mnt_data)) +#define VTONT(v) FTONT(VTOF(v)) +#define VTOF(v) ((struct fnode *)((v)->v_data)) +#define FTOV(f) ((f)->f_vp) +#define FTONT(f) ((f)->f_ip) +#define ntfs_cntobn(cn) (daddr_t)((cn) * (ntmp->ntm_spc)) +#define ntfs_cntob(cn) (off_t)((cn) * (ntmp)->ntm_spc * (ntmp)->ntm_bps) +#define ntfs_btocn(off) (cn_t)((off) / ((ntmp)->ntm_spc * (ntmp)->ntm_bps)) +#define ntfs_btocl(off) (cn_t)((off + ntfs_cntob(1) - 1) / ((ntmp)->ntm_spc * (ntmp)->ntm_bps)) +#define ntfs_btocnoff(off) (off_t)((off) % ((ntmp)->ntm_spc * (ntmp)->ntm_bps)) +#define ntfs_bntob(bn) (daddr_t)((bn) * (ntmp)->ntm_bps) + +#define ntfs_bpbl (daddr_t)((ntmp)->ntm_bps) + +#if __FreeBSD_version >= 300000 +MALLOC_DECLARE(M_NTFSMNT); +MALLOC_DECLARE(M_NTFSNTNODE); +MALLOC_DECLARE(M_NTFSFNODE); +MALLOC_DECLARE(M_NTFSDIR); +MALLOC_DECLARE(M_NTFSNTHASH); +#endif + +#if defined(NTFS_DEBUG) +#define dprintf(a) printf a +#if NTFS_DEBUG > 1 +#define ddprintf(a) printf a +#else +#define ddprintf(a) +#endif +#else +#define dprintf(a) +#define ddprintf(a) +#endif + +extern vop_t **ntfs_vnodeop_p; Property changes on: stable/3/sys/ntfs/ntfs.h ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: stable/3/sys/ntfs/ntfs_compr.c =================================================================== --- stable/3/sys/ntfs/ntfs_compr.c (nonexistent) +++ stable/3/sys/ntfs/ntfs_compr.c (revision 44655) @@ -0,0 +1,116 @@ +/*- + * Copyright (c) 1998, 1999 Semen Ustimenko + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $Id: ntfs_compr.c,v 1.4 1999/02/02 01:54:54 semen Exp $ + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include +#include + +#define GET_UINT16(addr) (*((u_int16_t *)(addr))) + +int +ntfs_uncompblock( + u_int8_t * buf, + u_int8_t * cbuf) +{ + u_int32_t ctag; + int len, dshift, lmask; + int blen, boff; + int i, j; + int pos, cpos; + + len = GET_UINT16(cbuf) & 0xFFF; + dprintf(("ntfs_uncompblock: block length: %d + 3, 0x%x,0x%04x\n", + len, len, GET_UINT16(cbuf))); + + if (!(GET_UINT16(cbuf) & 0x8000)) { + if ((len + 1) != NTFS_COMPBLOCK_SIZE) { + dprintf(("ntfs_uncompblock: len: %x instead of %d\n", + len, 0xfff)); + } + memcpy(buf, cbuf + 2, len + 1); + bzero(buf + len + 1, NTFS_COMPBLOCK_SIZE - 1 - len); + return len + 3; + } + cpos = 2; + pos = 0; + while ((cpos < len + 3) && (pos < NTFS_COMPBLOCK_SIZE)) { + ctag = cbuf[cpos++]; + for (i = 0; (i < 8) && (pos < NTFS_COMPBLOCK_SIZE); i++) { + if (ctag & 1) { + for (j = pos - 1, lmask = 0xFFF, dshift = 12; + j >= 0x10; j >>= 1) { + dshift--; + lmask >>= 1; + } + boff = -1 - (GET_UINT16(cbuf + cpos) >> dshift); + blen = 3 + (GET_UINT16(cbuf + cpos) & lmask); + for (j = 0; (j < blen) && (pos < NTFS_COMPBLOCK_SIZE); j++) { + buf[pos] = buf[pos + boff]; + pos++; + } + cpos += 2; + } else { + buf[pos++] = cbuf[cpos++]; + } + ctag >>= 1; + } + } + return len + 3; +} + +int +ntfs_uncompunit( + struct ntfsmount * ntmp, + u_int8_t * uup, + u_int8_t * cup) +{ + int i; + int off = 0; + int new; + + for (i = 0; i * NTFS_COMPBLOCK_SIZE < ntfs_cntob(NTFS_COMPUNIT_CL); i++) { + new = ntfs_uncompblock(uup + i * NTFS_COMPBLOCK_SIZE, cup + off); + if (new == 0) + return (EINVAL); + off += new; + } + return (0); +} Property changes on: stable/3/sys/ntfs/ntfs_compr.c ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: stable/3/sys/ntfs/ntfs_compr.h =================================================================== --- stable/3/sys/ntfs/ntfs_compr.h (nonexistent) +++ stable/3/sys/ntfs/ntfs_compr.h (revision 44655) @@ -0,0 +1,33 @@ +/*- + * Copyright (c) 1998, 1999 Semen Ustimenko + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $Id: ntfs_compr.h,v 1.3 1999/01/28 03:56:06 semen Exp $ + */ + +#define NTFS_COMPBLOCK_SIZE 0x1000 +#define NTFS_COMPUNIT_CL 16 + +int ntfs_uncompblock(u_int8_t *, u_int8_t *); +int ntfs_uncompunit(struct ntfsmount *, u_int8_t *, u_int8_t *); Property changes on: stable/3/sys/ntfs/ntfs_compr.h ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: stable/3/sys/ntfs/ntfs_extern.h =================================================================== --- stable/3/sys/ntfs/ntfs_extern.h (nonexistent) +++ stable/3/sys/ntfs/ntfs_extern.h (revision 44655) @@ -0,0 +1,31 @@ +/*- + * Copyright (c) 1998, 1999 Semen Ustimenko + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $Id: ntfs_extern.h,v 1.3 1999/01/28 03:56:06 semen Exp $ + */ + +struct sockaddr; +int ntfs_fget(struct ntfsmount *, struct ntnode *, int, char *, struct fnode **); +void ntfs_frele(struct fnode *); Property changes on: stable/3/sys/ntfs/ntfs_extern.h ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: stable/3/sys/ntfs/ntfs_ihash.c =================================================================== --- stable/3/sys/ntfs/ntfs_ihash.c (nonexistent) +++ stable/3/sys/ntfs/ntfs_ihash.c (revision 44655) @@ -0,0 +1,125 @@ +/* + * Copyright (c) 1982, 1986, 1989, 1991, 1993, 1995 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * @(#)ufs_ihash.c 8.7 (Berkeley) 5/17/95 + * $Id: ntfs_ihash.c,v 1.2 1999/01/02 01:17:38 semen Exp $ + */ + +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +MALLOC_DEFINE(M_NTFSNTHASH, "NTFS nthash", "NTFS ntnode hash tables"); + +/* + * Structures associated with inode cacheing. + */ +static LIST_HEAD(nthashhead, ntnode) *ntfs_nthashtbl; +static u_long ntfs_nthash; /* size of hash table - 1 */ +#define NTNOHASH(device, inum) (&ntfs_nthashtbl[((device) + (inum)) & ntfs_nthash]) +#ifndef NULL_SIMPLELOCKS +static struct simplelock ntfs_nthash_slock; +#endif + +/* + * Initialize inode hash table. + */ +void +ntfs_nthashinit() +{ + + ntfs_nthashtbl = hashinit(desiredvnodes, M_NTFSNTHASH, &ntfs_nthash); + simple_lock_init(&ntfs_nthash_slock); +} + +/* + * Use the device/inum pair to find the incore inode, and return a pointer + * to it. If it is in core, return it, even if it is locked. + */ +struct ntnode * +ntfs_nthashlookup(dev, inum) + dev_t dev; + ino_t inum; +{ + struct ntnode *ip; + + simple_lock(&ntfs_nthash_slock); + for (ip = NTNOHASH(dev, inum)->lh_first; ip; ip = ip->i_hash.le_next) + if (inum == ip->i_number && dev == ip->i_dev) + break; + simple_unlock(&ntfs_nthash_slock); + + return (ip); +} + +/* + * Insert the ntnode into the hash table. + */ +void +ntfs_nthashins(ip) + struct ntnode *ip; +{ + struct nthashhead *ipp; + + simple_lock(&ntfs_nthash_slock); + ipp = NTNOHASH(ip->i_dev, ip->i_number); + LIST_INSERT_HEAD(ipp, ip, i_hash); + ip->i_flag |= IN_HASHED; + simple_unlock(&ntfs_nthash_slock); +} + +/* + * Remove the inode from the hash table. + */ +void +ntfs_nthashrem(ip) + struct ntnode *ip; +{ + simple_lock(&ntfs_nthash_slock); + if (ip->i_flag & IN_HASHED) { + ip->i_flag &= ~IN_HASHED; + LIST_REMOVE(ip, i_hash); +#ifdef DIAGNOSTIC + ip->i_hash.le_next = NULL; + ip->i_hash.le_prev = NULL; +#endif + } + simple_unlock(&ntfs_nthash_slock); +} Property changes on: stable/3/sys/ntfs/ntfs_ihash.c ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: stable/3/sys/ntfs/ntfs_ihash.h =================================================================== --- stable/3/sys/ntfs/ntfs_ihash.h (nonexistent) +++ stable/3/sys/ntfs/ntfs_ihash.h (revision 44655) @@ -0,0 +1,33 @@ +/*- + * Copyright (c) 1998, 1999 Semen Ustimenko + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $Id: ntfs.h,v 1.9 1999/02/02 01:54:54 semen Exp $ + */ + +void ntfs_nthashinit __P((void)); +struct ntnode *ntfs_nthashlookup __P((dev_t, ino_t)); +struct ntnode *ntfs_nthashget __P((dev_t, ino_t)); +void ntfs_nthashins __P((struct ntnode *)); +void ntfs_nthashrem __P((register struct ntnode *)); Property changes on: stable/3/sys/ntfs/ntfs_ihash.h ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: stable/3/sys/ntfs/ntfs_inode.h =================================================================== --- stable/3/sys/ntfs/ntfs_inode.h (nonexistent) +++ stable/3/sys/ntfs/ntfs_inode.h (revision 44655) @@ -0,0 +1,110 @@ +/*- + * Copyright (c) 1998, 1999 Semen Ustimenko + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $Id: ntfs_inode.h,v 1.8 1999/02/02 01:54:54 semen Exp $ + */ + +/* These flags are kept in i_flag. */ +#if __FreeBSD_version >= 300000 +#define IN_ACCESS 0x0001 /* Access time update request. */ +#define IN_CHANGE 0x0002 /* Inode change time update request. */ +#define IN_UPDATE 0x0004 /* Modification time update request. */ +#define IN_MODIFIED 0x0008 /* Inode has been modified. */ +#define IN_RENAME 0x0010 /* Inode is being renamed. */ +#define IN_SHLOCK 0x0020 /* File has shared lock. */ +#define IN_EXLOCK 0x0040 /* File has exclusive lock. */ +#define IN_HASHED 0x0080 /* Inode is on hash list */ +#define IN_LAZYMOD 0x0100 /* Modified, but don't write yet. */ +#else +#define IN_ACCESS 0x0001 /* Access time update request. */ +#define IN_CHANGE 0x0002 /* Inode change time update request. */ +#define IN_EXLOCK 0x0004 /* File has exclusive lock. */ +#define IN_LOCKED 0x0008 /* Inode lock. */ +#define IN_LWAIT 0x0010 /* Process waiting on file lock. */ +#define IN_MODIFIED 0x0020 /* Inode has been modified. */ +#define IN_RENAME 0x0040 /* Inode is being renamed. */ +#define IN_SHLOCK 0x0080 /* File has shared lock. */ +#define IN_UPDATE 0x0100 /* Modification time update request. */ +#define IN_WANTED 0x0200 /* Inode is wanted by a process. */ +#define IN_RECURSE 0x0400 /* Recursion expected */ +#endif + +#define IN_LOADED 0x8000 /* ntvattrs loaded */ +#define IN_PRELOADED 0x4000 /* loaded from directory entry */ + +struct ntnode { + LIST_ENTRY(ntnode) i_hash; + struct ntnode *i_next; + struct ntnode **i_prev; + struct ntfsmount *i_mp; + ino_t i_number; + dev_t i_dev; + u_int32_t i_flag; + int i_usecount; + + LIST_HEAD(,fnode) i_fnlist; + struct ntvattr *i_vattrp; /* ntvattrs list */ + + long i_nlink; /* MFR */ + ino_t i_mainrec; /* MFR */ + u_int32_t i_frflag; /* MFR */ + + uid_t i_uid; + gid_t i_gid; + mode_t i_mode; +}; + +#define FN_PRELOADED 0x0001 +#define FN_DEFAULT 0x0002 +#define FN_AATTRNAME 0x0004 /* space allocated for f_attrname */ +struct fnode { + struct lock f_lock; /* Must be first */ + + LIST_ENTRY(fnode) f_fnlist; + struct vnode *f_vp; /* Associatied vnode */ + struct ntnode *f_ip; + u_long f_flag; + struct vnode *f_devvp; + struct ntfsmount *f_mp; + dev_t f_dev; + enum vtype f_type; + + ntfs_times_t f_times; /* $NAME/dirinfo */ + ino_t f_pnumber; /* $NAME/dirinfo */ + u_int32_t f_fflag; /* $NAME/dirinfo */ + u_int64_t f_size; /* defattr/dirinfo: */ + u_int64_t f_allocated; /* defattr/dirinfo */ + + u_int32_t f_attrtype; + char *f_attrname; + + /* for ntreaddir */ + u_int32_t f_lastdattr; + u_int32_t f_lastdblnum; + u_int32_t f_lastdoff; + u_int32_t f_lastdnum; + caddr_t f_dirblbuf; + u_int32_t f_dirblsz; +}; Property changes on: stable/3/sys/ntfs/ntfs_inode.h ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: stable/3/sys/ntfs/ntfs_subr.c =================================================================== --- stable/3/sys/ntfs/ntfs_subr.c (nonexistent) +++ stable/3/sys/ntfs/ntfs_subr.c (revision 44655) @@ -0,0 +1,1703 @@ +/*- + * Copyright (c) 1998, 1999 Semen Ustimenko + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $Id: ntfs_subr.c,v 1.9 1999/02/02 01:54:54 semen Exp $ + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +/* #define NTFS_DEBUG 1 */ +#include +#include +#include +#include +#include +#include +#include +#include + +#if __FreeBSD_version >= 300000 +MALLOC_DEFINE(M_NTFSNTVATTR, "NTFS vattr", "NTFS file attribute information"); +MALLOC_DEFINE(M_NTFSRDATA, "NTFS res data", "NTFS resident data"); +MALLOC_DEFINE(M_NTFSRUN, "NTFS vrun", "NTFS vrun storage"); +MALLOC_DEFINE(M_NTFSDECOMP, "NTFS decomp", "NTFS decompression temporary"); +#endif + +int +ntfs_ntvattrrele( + struct ntvattr * vap) +{ + dprintf(("ntfs_ntvattrrele: ino: %d, type: 0x%x\n", + vap->va_ip->i_number, vap->va_type)); + + ntfs_ntrele(vap->va_ip); + + return (0); +} + +int +ntfs_ntvattrget( + struct ntfsmount * ntmp, + struct ntnode * ip, + u_int32_t type, + char *name, + cn_t vcn, + struct ntvattr ** vapp) +{ + int error; + struct ntvattr *vap; + struct ntvattr *lvap = NULL; + struct attr_attrlist *aalp; + struct attr_attrlist *nextaalp; + caddr_t alpool; + int len, namelen; + + *vapp = NULL; + + if (name) { + dprintf(("ntfs_ntvattrget: " \ + "ino: %d, type: 0x%x, name: %s, vcn: %d\n", \ + ip->i_number, type, name, (u_int32_t) vcn)); + namelen = strlen(name); + } else { + dprintf(("ntfs_ntvattrget: " \ + "ino: %d, type: 0x%x, vcn: %d\n", \ + ip->i_number, type, (u_int32_t) vcn)); + name = ""; + namelen = 0; + } + + if((ip->i_flag & IN_LOADED) == 0) { + dprintf(("ntfs_ntvattrget: node not loaded, ino: %d\n", + ip->i_number)); + error = ntfs_loadntnode(ntmp,ip); + if(error) { + printf("ntfs_ntvattrget: FAILED TO LOAD INO: %d\n", + ip->i_number); + return (error); + } + } + + for (vap = ip->i_vattrp; vap; vap = vap->va_nextp) { + ddprintf(("type: 0x%x, vcn: %d - %d\n", \ + vap->va_type, (u_int32_t) vap->va_vcnstart, \ + (u_int32_t) vap->va_vcnend)); + if ((vap->va_type == type) && + (vap->va_vcnstart <= vcn) && (vap->va_vcnend >= vcn) && + (vap->va_namelen == namelen) && + (!strncmp(name, vap->va_name, namelen))) { + *vapp = vap; + ntfs_ntref(vap->va_ip); + return (0); + } + if (vap->va_type == NTFS_A_ATTRLIST) + lvap = vap; + } + + if (!lvap) { + dprintf(("ntfs_ntvattrget: UNEXISTED ATTRIBUTE: " \ + "ino: %d, type: 0x%x, name: %s, vcn: %d\n", \ + ip->i_number, type, name, (u_int32_t) vcn)); + return (ENOENT); + } + /* Scan $ATTRIBUTE_LIST for requested attribute */ + len = lvap->va_datalen; + MALLOC(alpool, caddr_t, len, M_TEMP, M_WAITOK); + error = ntfs_readntvattr_plain(ntmp, ip, lvap, 0, len, alpool, &len); + if (error) + goto out; + + aalp = (struct attr_attrlist *) alpool; + nextaalp = NULL; + + while (len > 0) { + dprintf(("ntfs_ntvattrget: " \ + "attrlist: ino: %d, attr: 0x%x, vcn: %d\n", \ + aalp->al_inumber, aalp->al_type, \ + (u_int32_t) aalp->al_vcnstart)); + + if (len > aalp->reclen) { + nextaalp = NTFS_NEXTREC(aalp, struct attr_attrlist *); + } else { + nextaalp = NULL; + } + len -= aalp->reclen; + +#define AALPCMP(aalp,type,name,namelen) ( \ + (aalp->al_type == type) && (aalp->al_namelen == namelen) && \ + !uastrcmp(aalp->al_name,aalp->al_namelen,name,namelen) ) + + if (AALPCMP(aalp, type, name, namelen) && + (!nextaalp || (nextaalp->al_vcnstart > vcn) || + !AALPCMP(nextaalp, type, name, namelen))) { + struct vnode *newvp; + struct ntnode *newip; + + dprintf(("ntfs_ntvattrget: attrbute in ino: %d\n", + aalp->al_inumber)); + + error = VFS_VGET(ntmp->ntm_mountp, aalp->al_inumber, + &newvp); + if (error) { + printf("ntfs_ntvattrget: CAN'T VGET INO: %d\n", + aalp->al_inumber); + goto out; + } + newip = VTONT(newvp); + if(~newip->i_flag & IN_LOADED) { + dprintf(("ntfs_ntvattrget: node not loaded," \ + " ino: %d\n", newip->i_number)); + error = ntfs_loadntnode(ntmp,ip); + if(error) { + printf("ntfs_ntvattrget: CAN'T LOAD " \ + "INO: %d\n", newip->i_number); + vput(newvp); + goto out; + } + } + for (vap = newip->i_vattrp; vap; vap = vap->va_nextp) { + if ((vap->va_type == type) && + (vap->va_vcnstart <= vcn) && + (vap->va_vcnend >= vcn) && + (vap->va_namelen == namelen) && + (!strncmp(name, vap->va_name, namelen))) { + *vapp = vap; + ntfs_ntref(vap->va_ip); + vput(newvp); + error = 0; + goto out; + } + if (vap->va_type == NTFS_A_ATTRLIST) + lvap = vap; + } + printf("ntfs_ntvattrget: ATTRLIST ERROR.\n"); + vput(newvp); + break; + } +#undef AALPCMP + aalp = nextaalp; + } + error = ENOENT; + + dprintf(("ntfs_ntvattrget: UNEXISTED ATTRIBUTE: " \ + "ino: %d, type: 0x%x, name: %s, vcn: %d\n", \ + ip->i_number, type, name, (u_int32_t) vcn)); +out: + FREE(alpool, M_TEMP); + + return (error); +} + +int +ntfs_loadntnode( + struct ntfsmount * ntmp, + struct ntnode * ip) +{ + struct filerec *mfrp; + daddr_t bn; + int error,off; + struct attr *ap; + struct ntvattr**vapp; + + dprintf(("ntfs_loadnode: loading ino: %d\n",ip->i_number)); + + MALLOC(mfrp, struct filerec *, ntfs_bntob(ntmp->ntm_bpmftrec), + M_TEMP, M_WAITOK); + + if (ip->i_number < NTFS_SYSNODESNUM) { + struct buf *bp; + + dprintf(("ntfs_loadnode: read system node\n")); + + bn = ntfs_cntobn(ntmp->ntm_mftcn) + + ntmp->ntm_bpmftrec * ip->i_number; + + error = bread(ntmp->ntm_devvp, + bn, ntfs_bntob(ntmp->ntm_bpmftrec), + NOCRED, &bp); + if (error) { + printf("ntfs_loadnode: BREAD FAILED\n"); + brelse(bp); + goto out; + } + memcpy(mfrp, bp->b_data, ntfs_bntob(ntmp->ntm_bpmftrec)); + bqrelse(bp); + } else { + struct vnode *vp; + + vp = ntmp->ntm_sysvn[NTFS_MFTINO]; + error = ntfs_readattr(ntmp, VTONT(vp), NTFS_A_DATA, NULL, + ip->i_number * ntfs_bntob(ntmp->ntm_bpmftrec), + ntfs_bntob(ntmp->ntm_bpmftrec), mfrp); + if (error) { + printf("ntfs_loadnode: ntfs_readattr failed\n"); + goto out; + } + } + /* Check if magic and fixups are correct */ + error = ntfs_procfixups(ntmp, NTFS_FILEMAGIC, (caddr_t)mfrp, + ntfs_bntob(ntmp->ntm_bpmftrec)); + if (error) { + printf("ntfs_loadnode: BAD MFT RECORD %d\n", + (u_int32_t) ip->i_number); + goto out; + } + + dprintf(("ntfs_loadnode: load attrs for ino: %d\n",ip->i_number)); + off = mfrp->fr_attroff; + ap = (struct attr *) ((caddr_t)mfrp + off); + if (ip->i_vattrp) + printf("ntfs_ntloadnode: WARNING! already loaded?\n"); + + vapp = &ip->i_vattrp; + while (ap->a_hdr.a_type != -1) { + error = ntfs_attrtontvattr(ntmp, vapp, ap); + if (error) + break; + (*vapp)->va_ip = ip; + vapp = &((*vapp)->va_nextp); + + off += ap->a_hdr.reclen; + ap = (struct attr *) ((caddr_t)mfrp + off); + } + if (error) { + printf("ntfs_loadnode: failed to load attr ino: %d\n", + ip->i_number); + goto out; + } + + ip->i_mainrec = mfrp->fr_mainrec; + ip->i_nlink = mfrp->fr_nlink; + ip->i_frflag = mfrp->fr_flags; + + ip->i_flag |= IN_LOADED; + +out: + FREE(mfrp, M_TEMP); + return (error); +} + + +static int ntfs_ntnode_hash_lock; +int +ntfs_ntget( + struct ntfsmount * ntmp, + ino_t ino, + struct ntnode ** ipp) +{ + struct ntnode *ip; + + dprintf(("ntfs_ntget: ntget ntnode %d\n", ino)); + *ipp = NULL; + +restart: + ip = ntfs_nthashlookup(ntmp->ntm_dev, ino); + if (ip) { + ip->i_usecount++; + *ipp = ip; + dprintf(("ntfs_ntget: ntnode %d: %p, usecount: %d\n", + ino, ip, ip->i_usecount)); + + return (0); + } + + if (ntfs_ntnode_hash_lock) { + printf("waiting for hash_lock to free...\n"); + while(ntfs_ntnode_hash_lock) { + ntfs_ntnode_hash_lock = -1; + tsleep(&ntfs_ntnode_hash_lock, PVM, "ntfsntgt", 0); + } + printf("hash_lock freeed\n"); + goto restart; + } + ntfs_ntnode_hash_lock = 1; + + MALLOC(ip, struct ntnode *, sizeof(struct ntnode), + M_NTFSNTNODE, M_WAITOK); + ddprintf(("ntfs_ntget: allocating ntnode: %d: %p\n", ino, ip)); + bzero((caddr_t) ip, sizeof(struct ntnode)); + + /* Generic initialization */ + ip->i_number = ino; + ip->i_mp = ntmp; + ip->i_dev = ntmp->ntm_dev; + ip->i_uid = ntmp->ntm_uid; + ip->i_gid = ntmp->ntm_gid; + ip->i_mode = ntmp->ntm_mode; + ip->i_usecount++; + + LIST_INIT(&ip->i_fnlist); + + ntfs_nthashins(ip); + + if (ntfs_ntnode_hash_lock < 0) + wakeup(&ntfs_ntnode_hash_lock); + ntfs_ntnode_hash_lock = 0; + + *ipp = ip; + + dprintf(("ntfs_ntget: ntnode %d: %p, usecount: %d\n", + ino, ip, ip->i_usecount)); + + return (0); +} + +void +ntfs_ntrele( + struct ntnode * ip) +{ + struct ntvattr *vap; + + dprintf(("ntfs_ntrele: rele ntnode %d: %p, usecount: %d\n", + ip->i_number, ip, ip->i_usecount)); + + ip->i_usecount--; + + if (ip->i_usecount < 0) { + panic("ntfs_ntrele: ino: %d usecount: %d \n", + ip->i_number,ip->i_usecount); + } else if (ip->i_usecount == 0) { + dprintf(("ntfs_ntrele: deallocating ntnode: %d\n", + ip->i_number)); + + if (ip->i_fnlist.lh_first) + panic("ntfs_ntrele: ntnode has fnodes\n"); + + ntfs_nthashrem(ip); + + while (ip->i_vattrp) { + vap = ip->i_vattrp; + ip->i_vattrp = vap->va_nextp; + ntfs_freentvattr(vap); + } + FREE(ip, M_NTFSNTNODE); + } + dprintf(("ntfs_ntrele: rele ok\n")); +} + +void +ntfs_freentvattr( + struct ntvattr * vap) +{ + if (vap->va_flag & NTFS_AF_INRUN) { + if (vap->va_vruncn) + FREE(vap->va_vruncn, M_NTFSRUN); + if (vap->va_vruncl) + FREE(vap->va_vruncl, M_NTFSRUN); + } else { + if (vap->va_datap) + FREE(vap->va_datap, M_NTFSRDATA); + } + FREE(vap, M_NTFSNTVATTR); +} + +int +ntfs_attrtontvattr( + struct ntfsmount * ntmp, + struct ntvattr ** rvapp, + struct attr * rap) +{ + int error, i; + struct ntvattr *vap; + + error = 0; + *rvapp = NULL; + + MALLOC(vap, struct ntvattr *, sizeof(struct ntvattr), + M_NTFSNTVATTR, M_WAITOK); + bzero(vap, sizeof(struct ntvattr)); + vap->va_ip = NULL; + vap->va_flag = rap->a_hdr.a_flag; + vap->va_type = rap->a_hdr.a_type; + vap->va_compression = rap->a_hdr.a_compression; + vap->va_index = rap->a_hdr.a_index; + + ddprintf(("type: 0x%x, index: %d", vap->va_type, vap->va_index)); + + vap->va_namelen = rap->a_hdr.a_namelen; + if (rap->a_hdr.a_namelen) { + wchar *unp = (wchar *) ((caddr_t) rap + rap->a_hdr.a_nameoff); + ddprintf((", name:[")); + for (i = 0; i < vap->va_namelen; i++) { + vap->va_name[i] = unp[i]; + ddprintf(("%c", vap->va_name[i])); + } + ddprintf(("]")); + } + if (vap->va_flag & NTFS_AF_INRUN) { + ddprintf((", nonres.")); + vap->va_datalen = rap->a_nr.a_datalen; + vap->va_allocated = rap->a_nr.a_allocated; + vap->va_vcnstart = rap->a_nr.a_vcnstart; + vap->va_vcnend = rap->a_nr.a_vcnend; + vap->va_compressalg = rap->a_nr.a_compressalg; + error = ntfs_runtovrun(&(vap->va_vruncn), &(vap->va_vruncl), + &(vap->va_vruncnt), + (caddr_t) rap + rap->a_nr.a_dataoff); + } else { + vap->va_compressalg = 0; + ddprintf((", res.")); + vap->va_datalen = rap->a_r.a_datalen; + vap->va_allocated = rap->a_r.a_datalen; + vap->va_vcnstart = 0; + vap->va_vcnend = ntfs_btocn(vap->va_allocated); + MALLOC(vap->va_datap, caddr_t, vap->va_datalen, + M_NTFSRDATA, M_WAITOK); + memcpy(vap->va_datap, (caddr_t) rap + rap->a_r.a_dataoff, + rap->a_r.a_datalen); + } + ddprintf((", len: %d", vap->va_datalen)); + + if (error) + FREE(vap, M_NTFSNTVATTR); + else + *rvapp = vap; + + ddprintf(("\n")); + + return (error); +} + +int +ntfs_runtovrun( + cn_t ** rcnp, + cn_t ** rclp, + u_long * rcntp, + u_int8_t * run) +{ + u_int32_t off; + u_int32_t sz, i; + cn_t *cn; + cn_t *cl; + u_long cnt; + cn_t prev; + cn_t tmp; + + off = 0; + cnt = 0; + i = 0; + while (run[off]) { + off += (run[off] & 0xF) + ((run[off] >> 4) & 0xF) + 1; + cnt++; + } + MALLOC(cn, cn_t *, cnt * sizeof(cn_t), M_NTFSRUN, M_WAITOK); + MALLOC(cl, cn_t *, cnt * sizeof(cn_t), M_NTFSRUN, M_WAITOK); + + off = 0; + cnt = 0; + prev = 0; + while (run[off]) { + + sz = run[off++]; + cl[cnt] = 0; + + for (i = 0; i < (sz & 0xF); i++) + cl[cnt] += (u_int32_t) run[off++] << (i << 3); + + sz >>= 4; + if (run[off + sz - 1] & 0x80) { + tmp = ((u_int64_t) - 1) << (sz << 3); + for (i = 0; i < sz; i++) + tmp |= (u_int64_t) run[off++] << (i << 3); + } else { + tmp = 0; + for (i = 0; i < sz; i++) + tmp |= (u_int64_t) run[off++] << (i << 3); + } + if (tmp) + prev = cn[cnt] = prev + tmp; + else + cn[cnt] = tmp; + + cnt++; + } + *rcnp = cn; + *rclp = cl; + *rcntp = cnt; + return (0); +} + + +wchar +ntfs_toupper( + struct ntfsmount * ntmp, + wchar wc) +{ + return (ntmp->ntm_upcase[wc & 0xFF]); +} + +int +ntfs_uustricmp( + struct ntfsmount * ntmp, + wchar * str1, + int str1len, + wchar * str2, + int str2len) +{ + int i; + int res; + + for (i = 0; i < str1len && i < str2len; i++) { + res = (int) ntfs_toupper(ntmp, str1[i]) - + (int) ntfs_toupper(ntmp, str2[i]); + if (res) + return res; + } + return (str1len - str2len); +} + +int +ntfs_uastricmp( + struct ntfsmount * ntmp, + wchar * str1, + int str1len, + char *str2, + int str2len) +{ + int i; + int res; + + for (i = 0; i < str1len && i < str2len; i++) { + res = (int) ntfs_toupper(ntmp, str1[i]) - + (int) ntfs_toupper(ntmp, (wchar) str2[i]); + if (res) + return res; + } + return (str1len - str2len); +} + +int +ntfs_uastrcmp( + struct ntfsmount * ntmp, + wchar * str1, + int str1len, + char *str2, + int str2len) +{ + int i; + int res; + + for (i = 0; (i < str1len) && (i < str2len); i++) { + res = ((int) str1[i]) - ((int) str2[i]); + if (res) + return res; + } + return (str1len - str2len); +} + +int +ntfs_fget( + struct ntfsmount *ntmp, + struct ntnode *ip, + int attrtype, + char *attrname, + struct fnode **fpp) +{ + int error; + struct fnode *fp; + + dprintf(("ntfs_fget: ino: %d, attrtype: 0x%x, attrname: %s\n", + ip->i_number,attrtype, attrname?attrname:"")); + *fpp = NULL; + for (fp = ip->i_fnlist.lh_first; fp != NULL; fp = fp->f_fnlist.le_next){ + dprintf(("ntfs_fget: fnode: attrtype: %d, attrname: %s\n", + fp->f_attrtype, fp->f_attrname?fp->f_attrname:"")); + + if ((attrtype == fp->f_attrtype) && + ((!attrname && !fp->f_attrname) || + (attrname && fp->f_attrname && + !strcmp(attrname,fp->f_attrname)))){ + dprintf(("ntfs_fget: found existed: %p\n",fp)); + *fpp = fp; + } + } + + if (*fpp) + return (0); + + MALLOC(fp, struct fnode *, sizeof(struct fnode), M_NTFSFNODE, M_WAITOK); + bzero(fp, sizeof(struct fnode)); + dprintf(("ntfs_fget: allocating fnode: %p\n",fp)); + + fp->f_devvp = ntmp->ntm_devvp; + fp->f_dev = ntmp->ntm_dev; + fp->f_mp = ntmp; + + fp->f_ip = ip; + fp->f_attrname = attrname; + if (fp->f_attrname) fp->f_flag |= FN_AATTRNAME; + fp->f_attrtype = attrtype; + if ((fp->f_attrtype == NTFS_A_DATA) && (fp->f_attrname == NULL)) + fp->f_flag |= FN_DEFAULT; + else { + error = ntfs_filesize(ntmp, fp, &fp->f_size, &fp->f_allocated); + if (error) { + FREE(fp,M_NTFSFNODE); + return (error); + } + } + + ntfs_ntref(ip); + + LIST_INSERT_HEAD(&ip->i_fnlist, fp, f_fnlist); + + *fpp = fp; + + return (0); +} + +void +ntfs_frele( + struct fnode *fp) +{ + struct ntnode *ip = FTONT(fp); + + dprintf(("ntfs_frele: fnode: %p for %d: %p\n", fp, ip->i_number, ip)); + + dprintf(("ntfs_frele: deallocating fnode\n")); + LIST_REMOVE(fp,f_fnlist); + if (fp->f_flag & FN_AATTRNAME) + FREE(fp->f_attrname, M_TEMP); + if (fp->f_dirblbuf) + FREE(fp->f_dirblbuf, M_NTFSDIR); + FREE(fp, M_NTFSFNODE); + ntfs_ntrele(ip); +} + +int +ntfs_ntlookupattr( + struct ntfsmount * ntmp, + char * name, + int namelen, + int *attrtype, + char **attrname) +{ + char *sys; + int syslen,i; + struct ntvattrdef *adp; + + if (namelen == 0) + return (0); + + if (name[0] == '$') { + sys = name; + for (syslen = 0; syslen < namelen; syslen++) { + if(sys[syslen] == ':') { + name++; + namelen--; + break; + } + } + name += syslen; + namelen -= syslen; + + adp = ntmp->ntm_ad; + for (i = 0; i < ntmp->ntm_adnum; i++){ + if((syslen == adp->ad_namelen) && + (!strncmp(sys,adp->ad_name,syslen))) { + *attrtype = adp->ad_type; + if(namelen) { + MALLOC((*attrname), char *, namelen, + M_TEMP, M_WAITOK); + memcpy((*attrname), name, namelen); + (*attrname)[namelen] = '\0'; + } + return (0); + } + adp++; + } + return (ENOENT); + } + + if(namelen) { + MALLOC((*attrname), char *, namelen, M_TEMP, M_WAITOK); + memcpy((*attrname), name, namelen); + (*attrname)[namelen] = '\0'; + *attrtype = NTFS_A_DATA; + } + + return (0); +} +/* + * Lookup specifed node for filename, matching cnp, + * return fnode filled. + */ +int +ntfs_ntlookup( + struct ntfsmount * ntmp, + struct vnode * vp, + struct componentname * cnp, + struct vnode ** vpp) +{ + struct fnode *fp = VTOF(vp); + struct ntnode *ip = FTONT(fp); + struct ntvattr *vap; /* Root attribute */ + cn_t cn; /* VCN in current attribute */ + caddr_t rdbuf; /* Buffer to read directory's blocks */ + u_int32_t blsize; + u_int32_t rdsize; /* Length of data to read from current block */ + struct attr_indexentry *iep; + int error, res, anamelen, fnamelen; + char *fname,*aname; + u_int32_t aoff; + + error = ntfs_ntvattrget(ntmp, ip, NTFS_A_INDXROOT, "$I30", 0, &vap); + if (error || (vap->va_flag & NTFS_AF_INRUN)) + return (ENOTDIR); + + blsize = vap->va_a_iroot->ir_size; + rdsize = vap->va_datalen; + + fname = cnp->cn_nameptr; + aname = NULL; + anamelen = 0; + for (fnamelen = 0; fnamelen < cnp->cn_namelen; fnamelen++) + if(fname[fnamelen] == ':') { + aname = fname + fnamelen + 1; + anamelen = cnp->cn_namelen - fnamelen - 1; + dprintf(("ntfs_ntlookup: file %s (%d), attr: %s (%d)\n", + fname, fnamelen, aname, anamelen)); + break; + } + + dprintf(("ntfs_ntlookup: blocksize: %d, rdsize: %d\n", blsize, rdsize)); + + MALLOC(rdbuf, caddr_t, blsize, M_TEMP, M_WAITOK); + + error = ntfs_readattr(ntmp, ip, NTFS_A_INDXROOT, "$I30", + 0, rdsize, rdbuf); + if (error) + goto fail; + + aoff = sizeof(struct attr_indexroot); + + do { + iep = (struct attr_indexentry *) (rdbuf + aoff); + + while (!(iep->ie_flag & NTFS_IEFLAG_LAST) && (rdsize > aoff)) { + ddprintf(("scan: %d, %d\n", + (u_int32_t) iep->ie_number, + (u_int32_t) iep->ie_fnametype)); + res = ntfs_uastricmp(ntmp, iep->ie_fname, + iep->ie_fnamelen, fname, + fnamelen); + if (res == 0) { + /* Matched something (case ins.) */ + if (iep->ie_fnametype == 0 || + !(ntmp->ntm_flag & NTFS_MFLAG_CASEINS)) + res = ntfs_uastrcmp(ntmp, + iep->ie_fname, + iep->ie_fnamelen, + fname, + fnamelen); + if (res == 0) { + int attrtype = NTFS_A_DATA; + char *attrname = NULL; + struct fnode *nfp; + struct vnode *nvp; + + if (aname) { + error = ntfs_ntlookupattr(ntmp, + aname, anamelen, + &attrtype, &attrname); + if (error) + goto fail; + } + + /* Check if we've found ourself */ + if ((iep->ie_number == ip->i_number) && + (attrtype == fp->f_attrtype) && + ((!attrname && !fp->f_attrname) || + (attrname && fp->f_attrname && + !strcmp(attrname, fp->f_attrname)))) { + VREF(vp); + *vpp = vp; + goto fail; + } + + /* vget node, but don't load it */ + error = ntfs_vgetex(ntmp->ntm_mountp, + iep->ie_number, + attrtype, + attrname, + LK_EXCLUSIVE, + VG_DONTLOAD, + curproc, + &nvp); + if(error) + goto fail; + + nfp = VTOF(nvp); + + nfp->f_fflag = iep->ie_fflag; + nfp->f_pnumber = iep->ie_fpnumber; + nfp->f_times = iep->ie_ftimes; + + if((nfp->f_fflag & NTFS_FFLAG_DIR) && + (nfp->f_attrtype == NTFS_A_DATA) && + (nfp->f_attrname == NULL)) + nfp->f_type = VDIR; + else + nfp->f_type = VREG; + + nvp->v_type = nfp->f_type; + + if ((nfp->f_attrtype == NTFS_A_DATA) && + (nfp->f_attrname == NULL)) { + /* Opening default attribute */ + nfp->f_size = iep->ie_fsize; + nfp->f_allocated = iep->ie_fallocated; + nfp->f_flag |= FN_PRELOADED; + } + *vpp = nvp; + goto fail; + } + } else if (res > 0) + break; + + aoff += iep->reclen; + iep = (struct attr_indexentry *) (rdbuf + aoff); + } + + /* Dive if possible */ + if (iep->ie_flag & NTFS_IEFLAG_SUBNODE) { + dprintf(("ntfs_ntlookup: diving\n")); + + cn = *(cn_t *) (rdbuf + aoff + + iep->reclen - sizeof(cn_t)); + rdsize = blsize; + + error = ntfs_readattr(ntmp, ip, NTFS_A_INDX, "$I30", + ntfs_cntob(cn), rdsize, rdbuf); + if (error) + goto fail; + + error = ntfs_procfixups(ntmp, NTFS_INDXMAGIC, + rdbuf, rdsize); + if (error) + goto fail; + + aoff = (((struct attr_indexalloc *) rdbuf)->ia_hdrsize + + 0x18); + } else { + dprintf(("ntfs_ntlookup: nowhere to dive :-(\n")); + error = ENOENT; + break; + } + } while (1); + + dprintf(("finish\n")); + +fail: + ntfs_ntvattrrele(vap); + FREE(rdbuf, M_TEMP); + return (error); +} + +int +ntfs_isnamepermitted( + struct ntfsmount * ntmp, + struct attr_indexentry * iep) +{ + + if (ntmp->ntm_flag & NTFS_MFLAG_ALLNAMES) + return 1; + + switch (iep->ie_fnametype) { + case 2: + ddprintf(("ntfs_isnamepermitted: skiped DOS name\n")); + return 0; + case 0: + case 1: + case 3: + return 1; + default: + printf("ntfs_isnamepermitted: " \ + "WARNING! Unknown file name type: %d\n", + iep->ie_fnametype); + break; + } + return 0; +} + +int +ntfs_ntreaddir( + struct ntfsmount * ntmp, + struct fnode * fp, + u_int32_t num, + struct attr_indexentry ** riepp) +{ + struct ntnode *ip = FTONT(fp); + struct ntvattr *vap = NULL; /* IndexRoot attribute */ + struct ntvattr *bmvap = NULL; /* BitMap attribute */ + struct ntvattr *iavap = NULL; /* IndexAllocation attribute */ + caddr_t rdbuf; /* Buffer to read directory's blocks */ + u_char *bmp = NULL; /* Bitmap */ + u_int32_t blsize; /* Index allocation size (2048) */ + u_int32_t rdsize; /* Length of data to read */ + u_int32_t attrnum; /* Current attribute type */ + u_int32_t cpbl = 1; /* Clusters per directory block */ + u_int32_t blnum; + struct attr_indexentry *iep; + int error = ENOENT; + u_int32_t aoff, cnum; + + dprintf(("ntfs_ntreaddir: read ino: %d, num: %d\n", ip->i_number, num)); + error = ntfs_ntvattrget(ntmp, ip, NTFS_A_INDXROOT, "$I30", 0, &vap); + if (error) + return (ENOTDIR); + + if (fp->f_dirblbuf == NULL) { + fp->f_dirblsz = vap->va_a_iroot->ir_size; + MALLOC(fp->f_dirblbuf, caddr_t, + max(vap->va_datalen,fp->f_dirblsz), M_NTFSDIR, M_WAITOK); + } + + blsize = fp->f_dirblsz; + rdbuf = fp->f_dirblbuf; + + dprintf(("ntfs_ntreaddir: rdbuf: 0x%p, blsize: %d\n", rdbuf, blsize)); + + if (vap->va_a_iroot->ir_flag & NTFS_IRFLAG_INDXALLOC) { + error = ntfs_ntvattrget(ntmp, ip, NTFS_A_INDXBITMAP, "$I30", + 0, &bmvap); + if (error) { + error = ENOTDIR; + goto fail; + } + MALLOC(bmp, u_char *, bmvap->va_datalen, M_TEMP, M_WAITOK); + error = ntfs_readattr(ntmp, ip, NTFS_A_INDXBITMAP, "$I30", 0, + bmvap->va_datalen, bmp); + if (error) + goto fail; + + error = ntfs_ntvattrget(ntmp, ip, NTFS_A_INDX, "$I30", + 0, &iavap); + if (error) { + error = ENOTDIR; + goto fail; + } + cpbl = ntfs_btocn(blsize + ntfs_cntob(1) - 1); + dprintf(("ntfs_ntreaddir: indexalloc: %d, cpbl: %d\n", + iavap->va_datalen, cpbl)); + } else { + dprintf(("ntfs_ntreadidir: w/o BitMap and IndexAllocation\n")); + iavap = bmvap = NULL; + bmp = NULL; + } + + /* Try use previous values */ + if ((fp->f_lastdnum < num) && (fp->f_lastdnum != 0)) { + attrnum = fp->f_lastdattr; + aoff = fp->f_lastdoff; + blnum = fp->f_lastdblnum; + cnum = fp->f_lastdnum; + } else { + attrnum = NTFS_A_INDXROOT; + aoff = sizeof(struct attr_indexroot); + blnum = 0; + cnum = 0; + } + + do { + dprintf(("ntfs_ntreaddir: scan: 0x%x, %d, %d, %d, %d\n", + attrnum, (u_int32_t) blnum, cnum, num, aoff)); + rdsize = (attrnum == NTFS_A_INDXROOT) ? vap->va_datalen : blsize; + error = ntfs_readattr(ntmp, ip, attrnum, "$I30", + ntfs_cntob(blnum * cpbl), rdsize, rdbuf); + if (error) + goto fail; + + if (attrnum == NTFS_A_INDX) { + error = ntfs_procfixups(ntmp, NTFS_INDXMAGIC, + rdbuf, rdsize); + if (error) + goto fail; + } + if (aoff == 0) + aoff = (attrnum == NTFS_A_INDX) ? + (0x18 + ((struct attr_indexalloc *) rdbuf)->ia_hdrsize) : + sizeof(struct attr_indexroot); + + iep = (struct attr_indexentry *) (rdbuf + aoff); + while (!(iep->ie_flag & NTFS_IEFLAG_LAST) && (rdsize > aoff)) { + if (ntfs_isnamepermitted(ntmp, iep)) { + if (cnum >= num) { + fp->f_lastdnum = cnum; + fp->f_lastdoff = aoff; + fp->f_lastdblnum = blnum; + fp->f_lastdattr = attrnum; + + *riepp = iep; + + error = 0; + goto fail; + } + cnum++; + } + aoff += iep->reclen; + iep = (struct attr_indexentry *) (rdbuf + aoff); + } + + if (iavap) { + if (attrnum == NTFS_A_INDXROOT) + blnum = 0; + else + blnum++; + + while (ntfs_cntob(blnum * cpbl) < iavap->va_datalen) { + if (bmp[blnum >> 3] & (1 << (blnum & 3))) + break; + blnum++; + } + + attrnum = NTFS_A_INDX; + aoff = 0; + if (ntfs_cntob(blnum * cpbl) >= iavap->va_datalen) + break; + dprintf(("ntfs_ntreaddir: blnum: %d\n", (u_int32_t) blnum)); + } + } while (iavap); + + *riepp = NULL; + fp->f_lastdnum = 0; + +fail: + if (vap) + ntfs_ntvattrrele(vap); + if (bmvap) + ntfs_ntvattrrele(bmvap); + if (iavap) + ntfs_ntvattrrele(iavap); + if (bmp) + FREE(bmp, M_TEMP); + return (error); +} +/* + * #undef dprintf #define dprintf(a) + */ + +struct timespec +ntfs_nttimetounix( + u_int64_t nt) +{ + struct timespec t; + + /* WindowNT times are in 100 ns and from 1601 Jan 1 */ + t.tv_nsec = (nt % (1000 * 1000 * 10)) * 100; + t.tv_sec = nt / (1000 * 1000 * 10) - + 369LL * 365LL * 24LL * 60LL * 60LL - + 89LL * 1LL * 24LL * 60LL * 60LL; + return (t); +} + +int +ntfs_times( + struct ntfsmount * ntmp, + struct ntnode * ip, + ntfs_times_t * tm) +{ + struct ntvattr *vap; + int error; + + dprintf(("ntfs_times: ino: %d...\n", ip->i_number)); + error = ntfs_ntvattrget(ntmp, ip, NTFS_A_NAME, NULL, 0, &vap); + if (error) + return (error); + *tm = vap->va_a_name->n_times; + ntfs_ntvattrrele(vap); + + return (0); +} + +int +ntfs_filesize( + struct ntfsmount * ntmp, + struct fnode * fp, + u_int64_t * size, + u_int64_t * bytes) +{ + struct ntvattr *vap; + struct ntnode *ip = FTONT(fp); + u_int64_t sz, bn; + int error; + + dprintf(("ntfs_filesize: ino: %d\n", ip->i_number)); + if (fp->f_flag & FN_DEFAULT) { + error = ntfs_ntvattrget(ntmp, ip, + NTFS_A_DATA, NULL, 0, &vap); + } else { + error = ntfs_ntvattrget(ntmp, ip, + fp->f_attrtype, fp->f_attrname, 0, &vap); + } + if (error) + return (error); + bn = vap->va_allocated; + sz = vap->va_datalen; + + dprintf(("ntfs_filesize: %d bytes (%d bytes allocated)\n", + (u_int32_t) sz, (u_int32_t) bn)); + + if (size) + *size = sz; + if (bytes) + *bytes = bn; + + ntfs_ntvattrrele(vap); + + return (0); +} + +int +ntfs_writeattr_plain( + struct ntfsmount * ntmp, + struct ntnode * ip, + u_int32_t attrnum, + char *attrname, + off_t roff, + size_t rsize, + void *rdata, + size_t * initp) +{ + size_t init; + int error = 0; + off_t off = roff, left = rsize, towrite; + caddr_t data = rdata; + struct ntvattr *vap; + *initp = 0; + + while (left) { + error = ntfs_ntvattrget(ntmp, ip, attrnum, attrname, + ntfs_btocn(off), &vap); + if (error) + return (error); + towrite = min(left, ntfs_cntob(vap->va_vcnend + 1) - off); + ddprintf(("ntfs_writeattr_plain: o: %d, s: %d (%d - %d)\n", + (u_int32_t) off, (u_int32_t) towrite, + (u_int32_t) vap->va_vcnstart, + (u_int32_t) vap->va_vcnend)); + error = ntfs_writentvattr_plain(ntmp, ip, vap, + off - ntfs_cntob(vap->va_vcnstart), + towrite, data, &init); + if (error) { + printf("ntfs_writeattr_plain: " \ + "ntfs_writentvattr_plain failed: o: %d, s: %d\n", + (u_int32_t) off, (u_int32_t) towrite); + printf("ntfs_writeattr_plain: attrib: %d - %d\n", + (u_int32_t) vap->va_vcnstart, + (u_int32_t) vap->va_vcnend); + ntfs_ntvattrrele(vap); + break; + } + ntfs_ntvattrrele(vap); + left -= towrite; + off += towrite; + data = data + towrite; + *initp += init; + } + + return (error); +} + +int +ntfs_writentvattr_plain( + struct ntfsmount * ntmp, + struct ntnode * ip, + struct ntvattr * vap, + off_t roff, + size_t rsize, + void *rdata, + size_t * initp) +{ + int error = 0; + int off; + + *initp = 0; + if (vap->va_flag & NTFS_AF_INRUN) { + int cnt; + cn_t ccn, ccl, cn, left, cl; + caddr_t data = rdata; + struct buf *bp; + size_t tocopy; + + ddprintf(("ntfs_writentvattr_plain: data in run: %d chains\n", + vap->va_vruncnt)); + + off = roff; + left = rsize; + ccl = 0; + ccn = 0; + cnt = 0; + while (left && (cnt < vap->va_vruncnt)) { + ccn = vap->va_vruncn[cnt]; + ccl = vap->va_vruncl[cnt]; + + ddprintf(("ntfs_writentvattr_plain: " \ + "left %d, cn: 0x%x, cl: %d, off: %d\n", \ + (u_int32_t) left, (u_int32_t) ccn, \ + (u_int32_t) ccl, (u_int32_t) off)); + + if (ntfs_cntob(ccl) < off) { + off -= ntfs_cntob(ccl); + cnt++; + continue; + } + if (ccn || ip->i_number == NTFS_BOOTINO) { /* XXX */ + ccl -= ntfs_btocn(off); + cn = ccn + ntfs_btocn(off); + off = ntfs_btocnoff(off); + + while (left && ccl) { + tocopy = min(left, + min(ntfs_cntob(ccl) - off, + MAXBSIZE - off)); + cl = ntfs_btocl(tocopy + off); + ddprintf(("ntfs_writentvattr_plain: " \ + "write: cn: 0x%x cl: %d, " \ + "off: %d len: %d, left: %d\n", + (u_int32_t) cn, + (u_int32_t) cl, + (u_int32_t) off, + (u_int32_t) tocopy, + (u_int32_t) left)); + if ((off == 0) && + (tocopy == ntfs_cntob(cl))) { + bp = getblk(ntmp->ntm_devvp, + ntfs_cntobn(cn), + ntfs_cntob(cl), + 0, 0); + clrbuf(bp); + } else { + error = bread(ntmp->ntm_devvp, + ntfs_cntobn(cn), + ntfs_cntob(cl), + NOCRED, &bp); + if (error) { + brelse(bp); + return (error); + } + } + memcpy(bp->b_data + off, data, tocopy); + bwrite(bp); + data = data + tocopy; + *initp += tocopy; + off = 0; + left -= tocopy; + cn += cl; + ccl -= cl; + } + } + cnt++; + } + if (left) { + printf("ntfs_writentvattr_plain: POSSIBLE RUN ERROR\n"); + error = EINVAL; + } + } else { + printf("ntfs_writevattr_plain: CAN'T WRITE RES. ATTRIBUTE\n"); + error = ENOTTY; + } + + return (error); +} + +int +ntfs_readntvattr_plain( + struct ntfsmount * ntmp, + struct ntnode * ip, + struct ntvattr * vap, + off_t roff, + size_t rsize, + void *rdata, + size_t * initp) +{ + int error = 0; + int off; + + *initp = 0; + if (vap->va_flag & NTFS_AF_INRUN) { + int cnt; + cn_t ccn, ccl, cn, left, cl; + caddr_t data = rdata; + struct buf *bp; + size_t tocopy; + + ddprintf(("ntfs_readntvattr_plain: data in run: %d chains\n", + vap->va_vruncnt)); + + off = roff; + left = rsize; + ccl = 0; + ccn = 0; + cnt = 0; + while (left && (cnt < vap->va_vruncnt)) { + ccn = vap->va_vruncn[cnt]; + ccl = vap->va_vruncl[cnt]; + + ddprintf(("ntfs_readntvattr_plain: " \ + "left %d, cn: 0x%x, cl: %d, off: %d\n", \ + (u_int32_t) left, (u_int32_t) ccn, \ + (u_int32_t) ccl, (u_int32_t) off)); + + if (ntfs_cntob(ccl) < off) { + off -= ntfs_cntob(ccl); + cnt++; + continue; + } + if (ccn || ip->i_number == NTFS_BOOTINO) { /* XXX */ + ccl -= ntfs_btocn(off); + cn = ccn + ntfs_btocn(off); + off = ntfs_btocnoff(off); + + while (left && ccl) { + tocopy = min(left, + min(ntfs_cntob(ccl) - off, + MAXBSIZE - off)); + cl = ntfs_btocl(tocopy + off); + ddprintf(("ntfs_readntvattr_plain: " \ + "read: cn: 0x%x cl: %d, " \ + "off: %d len: %d, left: %d\n", + (u_int32_t) cn, + (u_int32_t) cl, + (u_int32_t) off, + (u_int32_t) tocopy, + (u_int32_t) left)); + error = bread(ntmp->ntm_devvp, + ntfs_cntobn(cn), + ntfs_cntob(cl), + NOCRED, &bp); + if (error) { + brelse(bp); + return (error); + } + memcpy(data, bp->b_data + off, tocopy); + brelse(bp); + data = data + tocopy; + *initp += tocopy; + off = 0; + left -= tocopy; + cn += cl; + ccl -= cl; + } + } else { + tocopy = min(left, ntfs_cntob(ccl) - off); + ddprintf(("ntfs_readntvattr_plain: " + "sparce: ccn: 0x%x ccl: %d, off: %d, " \ + " len: %d, left: %d\n", + (u_int32_t) ccn, (u_int32_t) ccl, + (u_int32_t) off, (u_int32_t) tocopy, + (u_int32_t) left)); + left -= tocopy; + off = 0; + bzero(data, tocopy); + data = data + tocopy; + } + cnt++; + } + if (left) { + printf("ntfs_readntvattr_plain: POSSIBLE RUN ERROR\n"); + error = E2BIG; + } + } else { + ddprintf(("ntfs_readnvattr_plain: data is in mft record\n")); + memcpy(rdata, vap->va_datap + roff, rsize); + *initp += rsize; + } + + return (error); +} + +int +ntfs_readattr_plain( + struct ntfsmount * ntmp, + struct ntnode * ip, + u_int32_t attrnum, + char *attrname, + off_t roff, + size_t rsize, + void *rdata, + size_t * initp) +{ + size_t init; + int error = 0; + off_t off = roff, left = rsize, toread; + caddr_t data = rdata; + struct ntvattr *vap; + *initp = 0; + + while (left) { + error = ntfs_ntvattrget(ntmp, ip, attrnum, attrname, + ntfs_btocn(off), &vap); + if (error) + return (error); + toread = min(left, ntfs_cntob(vap->va_vcnend + 1) - off); + ddprintf(("ntfs_readattr_plain: o: %d, s: %d (%d - %d)\n", + (u_int32_t) off, (u_int32_t) toread, + (u_int32_t) vap->va_vcnstart, + (u_int32_t) vap->va_vcnend)); + error = ntfs_readntvattr_plain(ntmp, ip, vap, + off - ntfs_cntob(vap->va_vcnstart), + toread, data, &init); + if (error) { + printf("ntfs_readattr_plain: " \ + "ntfs_readntvattr_plain failed: o: %d, s: %d\n", + (u_int32_t) off, (u_int32_t) toread); + printf("ntfs_readattr_plain: attrib: %d - %d\n", + (u_int32_t) vap->va_vcnstart, + (u_int32_t) vap->va_vcnend); + ntfs_ntvattrrele(vap); + break; + } + ntfs_ntvattrrele(vap); + left -= toread; + off += toread; + data = data + toread; + *initp += init; + } + + return (error); +} + +int +ntfs_readattr( + struct ntfsmount * ntmp, + struct ntnode * ip, + u_int32_t attrnum, + char *attrname, + off_t roff, + size_t rsize, + void *rdata) +{ + int error = 0; + struct ntvattr *vap; + size_t init; + + ddprintf(("ntfs_readattr: reading %d: 0x%x, from %d size %d bytes\n", + ip->i_number, attrnum, (u_int32_t) roff, (u_int32_t) rsize)); + + error = ntfs_ntvattrget(ntmp, ip, attrnum, attrname, 0, &vap); + if (error) + return (error); + + if ((roff > vap->va_datalen) || + (roff + rsize > vap->va_datalen)) { + ddprintf(("ntfs_readattr: offset too big\n")); + ntfs_ntvattrrele(vap); + return (E2BIG); + } + if (vap->va_compression && vap->va_compressalg) { + u_int8_t *cup; + u_int8_t *uup; + off_t off = roff, left = rsize, tocopy; + caddr_t data = rdata; + cn_t cn; + + ddprintf(("ntfs_ntreadattr: compression: %d\n", + vap->va_compressalg)); + + MALLOC(cup, u_int8_t *, ntfs_cntob(NTFS_COMPUNIT_CL), + M_NTFSDECOMP, M_WAITOK); + MALLOC(uup, u_int8_t *, ntfs_cntob(NTFS_COMPUNIT_CL), + M_NTFSDECOMP, M_WAITOK); + + cn = (ntfs_btocn(roff)) & (~(NTFS_COMPUNIT_CL - 1)); + off = roff - ntfs_cntob(cn); + + while (left) { + error = ntfs_readattr_plain(ntmp, ip, attrnum, + attrname, ntfs_cntob(cn), + ntfs_cntob(NTFS_COMPUNIT_CL), + cup, &init); + if (error) + break; + + tocopy = min(left, ntfs_cntob(NTFS_COMPUNIT_CL) - off); + + if (init == ntfs_cntob(NTFS_COMPUNIT_CL)) { + memcpy(data, cup + off, tocopy); + } else if (init == 0) { + bzero(data, tocopy); + } else { + error = ntfs_uncompunit(ntmp, uup, cup); + if (error) + break; + memcpy(data, uup + off, tocopy); + } + + left -= tocopy; + data = data + tocopy; + off += tocopy - ntfs_cntob(NTFS_COMPUNIT_CL); + cn += NTFS_COMPUNIT_CL; + } + + FREE(uup, M_NTFSDECOMP); + FREE(cup, M_NTFSDECOMP); + } else + error = ntfs_readattr_plain(ntmp, ip, attrnum, attrname, + roff, rsize, rdata, &init); + ntfs_ntvattrrele(vap); + return (error); +} + +int +ntfs_parserun( + cn_t * cn, + cn_t * cl, + u_int8_t * run, + u_long len, + u_long *off) +{ + u_int8_t sz; + int i; + + if (NULL == run) { + printf("ntfs_parsetun: run == NULL\n"); + return (EINVAL); + } + sz = run[(*off)++]; + if (0 == sz) { + printf("ntfs_parserun: trying to go out of run\n"); + return (E2BIG); + } + *cl = 0; + if ((sz & 0xF) > 8 || (*off) + (sz & 0xF) > len) { + printf("ntfs_parserun: " \ + "bad run: length too big: sz: 0x%02x (%ld < %ld + sz)\n", + sz, len, *off); + return (EINVAL); + } + for (i = 0; i < (sz & 0xF); i++) + *cl += (u_int32_t) run[(*off)++] << (i << 3); + + sz >>= 4; + if ((sz & 0xF) > 8 || (*off) + (sz & 0xF) > len) { + printf("ntfs_parserun: " \ + "bad run: length too big: sz: 0x%02x (%ld < %ld + sz)\n", + sz, len, *off); + return (EINVAL); + } + for (i = 0; i < (sz & 0xF); i++) + *cn += (u_int32_t) run[(*off)++] << (i << 3); + + return (0); +} + +int +ntfs_procfixups( + struct ntfsmount * ntmp, + u_int32_t magic, + caddr_t buf, + size_t len) +{ + struct fixuphdr *fhp = (struct fixuphdr *) buf; + int i; + u_int16_t fixup; + u_int16_t *fxp; + u_int16_t *cfxp; + + if (fhp->fh_magic != magic) { + printf("ntfs_procfixups: magic doesn't match: %08x != %08x\n", + fhp->fh_magic, magic); + return (EINVAL); + } + if ((fhp->fh_fnum - 1) * ntmp->ntm_bps != len) { + printf("ntfs_procfixups: " \ + "bad fixups number: %d for %d bytes block\n", + fhp->fh_fnum, len); + return (EINVAL); + } + if (fhp->fh_foff >= ntmp->ntm_spc * ntmp->ntm_mftrecsz * ntmp->ntm_bps) { + printf("ntfs_procfixups: invalid offset: %x", fhp->fh_foff); + return (EINVAL); + } + fxp = (u_int16_t *) (buf + fhp->fh_foff); + cfxp = (u_int16_t *) (buf + ntmp->ntm_bps - 2); + fixup = *fxp++; + for (i = 1; i < fhp->fh_fnum; i++, fxp++) { + if (*cfxp != fixup) { + printf("ntfs_procfixups: fixup %d doesn't match\n", i); + return (EINVAL); + } + *cfxp = *fxp; + ((caddr_t) cfxp) += ntmp->ntm_bps; + } + return (0); +} + +int +ntfs_runtocn( + cn_t * cn, + struct ntfsmount * ntmp, + u_int8_t * run, + u_long len, + cn_t vcn) +{ + cn_t ccn = 0; + cn_t ccl = 0; + u_long off = 0; + int error = 0; + +#if NTFS_DEBUG + int i; + printf("ntfs_runtocn: run: 0x%p, %ld bytes, vcn:%ld\n", + run, len, (u_long) vcn); + printf("ntfs_runtocn: run: "); + for (i = 0; i < len; i++) + printf("0x%02x ", run[i]); + printf("\n"); +#endif + + if (NULL == run) { + printf("ntfs_runtocn: run == NULL\n"); + return (EINVAL); + } + do { + if (run[off] == 0) { + printf("ntfs_runtocn: vcn too big\n"); + return (E2BIG); + } + vcn -= ccl; + error = ntfs_parserun(&ccn, &ccl, run, len, &off); + if (error) { + printf("ntfs_runtocn: ntfs_parserun failed\n"); + return (error); + } + } while (ccl <= vcn); + *cn = ccn + vcn; + return (0); +} Property changes on: stable/3/sys/ntfs/ntfs_subr.c ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: stable/3/sys/ntfs/ntfs_subr.h =================================================================== --- stable/3/sys/ntfs/ntfs_subr.h (nonexistent) +++ stable/3/sys/ntfs/ntfs_subr.h (revision 44655) @@ -0,0 +1,111 @@ +/*- + * Copyright (c) 1998, 1999 Semen Ustimenko + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $Id: ntfs_subr.h,v 1.3 1999/02/02 01:54:54 semen Exp $ + */ + +#define VA_LOADED 0x0001 +#define VA_PRELOADED 0x0002 + +struct ntvattr { + struct ntvattr *va_nextp; + + u_int32_t va_vflag; + struct vnode *va_vp; + struct ntnode *va_ip; + + u_int32_t va_flag; + u_int32_t va_type; + u_int8_t va_namelen; + char va_name[NTFS_MAXATTRNAME]; + + u_int32_t va_compression; + u_int32_t va_compressalg; + u_int32_t va_datalen; + u_int32_t va_allocated; + cn_t va_vcnstart; + cn_t va_vcnend; + u_int16_t va_index; + union { + struct { + cn_t * cn; + cn_t * cl; + u_long cnt; + } vrun; + caddr_t datap; + struct attr_name *name; + struct attr_indexroot *iroot; + struct attr_indexalloc *ialloc; + } va_d; +}; +#define va_vruncn va_d.vrun.cn +#define va_vruncl va_d.vrun.cl +#define va_vruncnt va_d.vrun.cnt +#define va_datap va_d.datap +#define va_a_name va_d.name +#define va_a_iroot va_d.iroot +#define va_a_ialloc va_d.ialloc + + +#define uastrcmp(a,b,c,d) ntfs_uastrcmp(ntmp,a,b,c,d) + +#ifndef NTFS_DEBUG +#define ntfs_ntref(i) (i)->i_usecount++ +#else +#define ntfs_ntref(i) { \ + printf("ntfs_ntref: ino %d, usecount: %d\n", \ + (i)->i_number, (i)->i_usecount++); \ +} +#endif + +int ntfs_procfixups __P(( struct ntfsmount *, u_int32_t, caddr_t, size_t )); +int ntfs_parserun __P(( cn_t *, cn_t *, u_int8_t *, u_long, u_long *)); +int ntfs_runtocn __P(( cn_t *, struct ntfsmount *, u_int8_t *, u_long, cn_t)); +int ntfs_readntvattr_plain __P(( struct ntfsmount *, struct ntnode *, struct ntvattr *, off_t, size_t, void *,size_t *)); +int ntfs_readattr_plain __P(( struct ntfsmount *, struct ntnode *, u_int32_t, char *, off_t, size_t, void *,size_t *)); +int ntfs_readattr __P(( struct ntfsmount *, struct ntnode *, u_int32_t, char *, off_t, size_t, void *)); +int ntfs_filesize __P(( struct ntfsmount *, struct fnode *, u_int64_t *, u_int64_t *)); +int ntfs_times __P(( struct ntfsmount *, struct ntnode *, ntfs_times_t *)); +struct timespec ntfs_nttimetounix __P(( u_int64_t )); +int ntfs_ntreaddir __P(( struct ntfsmount *, struct fnode *, u_int32_t, struct attr_indexentry **)); +wchar ntfs_toupper __P(( struct ntfsmount *, wchar )); +int ntfs_uustricmp __P(( struct ntfsmount *, wchar *, int, wchar *, int )); +int ntfs_uastricmp __P(( struct ntfsmount *, wchar *, int, char *, int )); +int ntfs_uastrcmp __P(( struct ntfsmount *, wchar *, int, char *, int )); +int ntfs_runtovrun __P(( cn_t **, cn_t **, u_long *, u_int8_t *)); +int ntfs_attrtontvattr __P(( struct ntfsmount *, struct ntvattr **, struct attr * )); +void ntfs_freentvattr __P(( struct ntvattr * )); +int ntfs_loadntvattrs __P(( struct ntfsmount *, struct vnode *, caddr_t, struct ntvattr **)); +struct ntvattr * ntfs_findntvattr __P(( struct ntfsmount *, struct ntnode *, u_int32_t, cn_t )); +int ntfs_ntlookup __P(( struct ntfsmount *, struct vnode *, struct componentname *, struct vnode **)); +int ntfs_isnamepermitted __P(( struct ntfsmount *, struct attr_indexentry * )); +int ntfs_ntvattrrele __P(( struct ntvattr * )); +int ntfs_ntvattrget __P(( struct ntfsmount *, struct ntnode *, u_int32_t, char *, cn_t , struct ntvattr **)); +int ntfs_ntget __P(( struct ntfsmount *, ino_t, struct ntnode **)); +void ntfs_ntrele __P(( struct ntnode *)); +int ntfs_loadntnode __P(( struct ntfsmount *, struct ntnode * )); +int ntfs_ntlookupattr(struct ntfsmount *, char *, int, int *, char **); +int ntfs_writentvattr_plain(struct ntfsmount *, struct ntnode *, struct ntvattr *, off_t, size_t, void *, size_t *); +int ntfs_writeattr_plain(struct ntfsmount *, struct ntnode *, u_int32_t, char *, off_t, size_t, void *, size_t *); Property changes on: stable/3/sys/ntfs/ntfs_subr.h ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: stable/3/sys/ntfs/ntfs_vfsops.c =================================================================== --- stable/3/sys/ntfs/ntfs_vfsops.c (nonexistent) +++ stable/3/sys/ntfs/ntfs_vfsops.c (revision 44655) @@ -0,0 +1,863 @@ +/*- + * Copyright (c) 1998, 1999 Semen Ustimenko + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $Id: ntfs_vfsops.c,v 1.9 1999/02/02 01:54:54 semen Exp $ + */ + + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#include + +/*#define NTFS_DEBUG 1*/ +#include +#include +#include +#include +#include +#include +#include + +#if __FreeBSD_version >= 300000 +MALLOC_DEFINE(M_NTFSMNT, "NTFS mount", "NTFS mount structure"); +MALLOC_DEFINE(M_NTFSNTNODE,"NTFS ntnode", "NTFS ntnode information"); +MALLOC_DEFINE(M_NTFSFNODE,"NTFS fnode", "NTFS fnode information"); +MALLOC_DEFINE(M_NTFSDIR,"NTFS dir", "NTFS dir buffer"); +#endif + +static int ntfs_mount __P((struct mount *, char *, caddr_t, + struct nameidata *, struct proc *)); +static int ntfs_quotactl __P((struct mount *, int, uid_t, caddr_t, + struct proc *)); +static int ntfs_root __P((struct mount *, struct vnode **)); +static int ntfs_start __P((struct mount *, int, struct proc *)); +static int ntfs_statfs __P((struct mount *, struct statfs *, + struct proc *)); +static int ntfs_sync __P((struct mount *, int, struct ucred *, + struct proc *)); +static int ntfs_unmount __P((struct mount *, int, struct proc *)); +static int ntfs_vget __P((struct mount *mp, ino_t ino, + struct vnode **vpp)); +static int ntfs_mountfs __P((register struct vnode *, struct mount *, + struct ntfs_args *, struct proc *)); +static int ntfs_vptofh __P((struct vnode *, struct fid *)); + +#if __FreeBSD_version >= 300000 +static int ntfs_init __P((struct vfsconf *)); +static int ntfs_fhtovp __P((struct mount *, struct fid *, + struct sockaddr *, struct vnode **, + int *, struct ucred **)); +#else +static int ntfs_init __P((void)); +static int ntfs_fhtovp __P((struct mount *, struct fid *, + struct mbuf *, struct vnode **, + int *, struct ucred **)); +#endif + +#if __FreeBSD_version >= 300000 +static int +ntfs_init ( + struct vfsconf *vcp ) +#else +static int +ntfs_init () +#endif +{ + static first=1; + + if(!first) return (0); + first = 1; + + printf("ntfs_init(): \n"); + + ntfs_nthashinit(); + + return 0; +} + +static int +ntfs_mount ( + struct mount *mp, + char *path, + caddr_t data, + struct nameidata *ndp, + struct proc *p ) +{ + u_int size; + int err = 0; + struct vnode *devvp; + struct ntfs_args args; + + /* + * Use NULL path to flag a root mount + */ + if( path == NULL) { + /* + *** + * Mounting root file system + *** + */ + + /* Get vnode for root device*/ + if( bdevvp( rootdev, &rootvp)) + panic("ffs_mountroot: can't setup bdevvp for root"); + + /* + * FS specific handling + */ + mp->mnt_flag |= MNT_RDONLY; /* XXX globally applicable?*/ + + /* + * Attempt mount + */ + if( ( err = ntfs_mountfs(rootvp, mp, &args, p)) != 0) { + /* fs specific cleanup (if any)*/ + goto error_1; + } + + goto dostatfs; /* success*/ + + } + + /* + *** + * Mounting non-root file system or updating a file system + *** + */ + + /* copy in user arguments*/ + err = copyin(data, (caddr_t)&args, sizeof (struct ntfs_args)); + if (err) + goto error_1; /* can't get arguments*/ + + /* + * If updating, check whether changing from read-only to + * read/write; if there is no device name, that's all we do. + */ + if (mp->mnt_flag & MNT_UPDATE) { + printf("ntfs_mount(): MNT_UPDATE not supported\n"); + err = EINVAL; + goto error_1; + +#if 0 + ump = VFSTOUFS(mp); + fs = ump->um_fs; + err = 0; + if (fs->fs_ronly == 0 && (mp->mnt_flag & MNT_RDONLY)) { + flags = WRITECLOSE; + if (mp->mnt_flag & MNT_FORCE) + flags |= FORCECLOSE; + if (vfs_busy(mp)) { + err = EBUSY; + goto error_1; + } + err = ffs_flushfiles(mp, flags, p); + vfs_unbusy(mp); + } + if (!err && (mp->mnt_flag & MNT_RELOAD)) + err = ffs_reload(mp, ndp->ni_cnd.cn_cred, p); + if (err) { + goto error_1; + } + if (fs->fs_ronly && (mp->mnt_flag & MNT_WANTRDWR)) { + if (!fs->fs_clean) { + if (mp->mnt_flag & MNT_FORCE) { + printf("WARNING: %s was not properly dismounted.\n",fs->fs_fsmnt); + } else { + printf("WARNING: R/W mount of %s denied. Filesystem is not clean - run fsck.\n", + fs->fs_fsmnt); + err = EPERM; + goto error_1; + } + } + fs->fs_ronly = 0; + } + if (fs->fs_ronly == 0) { + fs->fs_clean = 0; + ffs_sbupdate(ump, MNT_WAIT); + } + /* if not updating name...*/ + if (args.fspec == 0) { + /* + * Process export requests. Jumping to "success" + * will return the vfs_export() error code. + */ + err = vfs_export(mp, &ump->um_export, &args.export); + goto success; + } +#endif + } + + /* + * Not an update, or updating the name: look up the name + * and verify that it refers to a sensible block device. + */ + NDINIT(ndp, LOOKUP, FOLLOW, UIO_USERSPACE, args.fspec, p); + err = namei(ndp); + if (err) { + /* can't get devvp!*/ + goto error_1; + } + + devvp = ndp->ni_vp; + + if (devvp->v_type != VBLK) { + err = ENOTBLK; + goto error_2; + } + if (major(devvp->v_rdev) >= nblkdev) { + err = ENXIO; + goto error_2; + } + if (mp->mnt_flag & MNT_UPDATE) { +#if 0 + /* + ******************** + * UPDATE + ******************** + */ + + if (devvp != ntmp->um_devvp) + err = EINVAL; /* needs translation */ + else + vrele(devvp); + /* + * Update device name only on success + */ + if( !err) { + /* Save "mounted from" info for mount point (NULL pad)*/ + copyinstr( args.fspec, + mp->mnt_stat.f_mntfromname, + MNAMELEN - 1, + &size); + bzero( mp->mnt_stat.f_mntfromname + size, MNAMELEN - size); + } +#endif + } else { + /* + ******************** + * NEW MOUNT + ******************** + */ + + /* + * Since this is a new mount, we want the names for + * the device and the mount point copied in. If an + * error occurs, the mountpoint is discarded by the + * upper level code. + */ + /* Save "last mounted on" info for mount point (NULL pad)*/ + copyinstr( path, /* mount point*/ + mp->mnt_stat.f_mntonname, /* save area*/ + MNAMELEN - 1, /* max size*/ + &size); /* real size*/ + bzero( mp->mnt_stat.f_mntonname + size, MNAMELEN - size); + + /* Save "mounted from" info for mount point (NULL pad)*/ + copyinstr( args.fspec, /* device name*/ + mp->mnt_stat.f_mntfromname, /* save area*/ + MNAMELEN - 1, /* max size*/ + &size); /* real size*/ + bzero( mp->mnt_stat.f_mntfromname + size, MNAMELEN - size); + + err = ntfs_mountfs(devvp, mp, &args, p); + } + if (err) { + goto error_2; + } + +dostatfs: + /* + * Initialize FS stat information in mount struct; uses both + * mp->mnt_stat.f_mntonname and mp->mnt_stat.f_mntfromname + * + * This code is common to root and non-root mounts + */ + (void)VFS_STATFS(mp, &mp->mnt_stat, p); + + goto success; + + +error_2: /* error with devvp held*/ + + /* release devvp before failing*/ + vrele(devvp); + +error_1: /* no state to back out*/ + +success: + return( err); +} + +/* + * Common code for mount and mountroot + */ +int +ntfs_mountfs(devvp, mp, argsp, p) + register struct vnode *devvp; + struct mount *mp; + struct ntfs_args *argsp; + struct proc *p; +{ + struct buf *bp; + struct ntfsmount *ntmp; + dev_t dev = devvp->v_rdev; + int error, ronly, ncount, i; + struct vnode *vp; + + /* + * Disallow multiple mounts of the same device. + * Disallow mounting of a device that is currently in use + * (except for root, which might share swap device for miniroot). + * Flush out any old buffers remaining from a previous use. + */ + error = vfs_mountedon(devvp); + if (error) + return (error); + ncount = vcount(devvp); + if (devvp->v_object) + ncount -= 1; + if (ncount > 1 && devvp != rootvp) + return (EBUSY); +#if __FreeBSD_version >= 300000 + vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY, p); + error = vinvalbuf(devvp, V_SAVE, p->p_ucred, p, 0, 0); + VOP_UNLOCK(devvp, 0, p); +#else + error = vinvalbuf(devvp, V_SAVE, p->p_ucred, p, 0, 0); +#endif + if (error) + return (error); + + ronly = (mp->mnt_flag & MNT_RDONLY) != 0; + error = VOP_OPEN(devvp, ronly ? FREAD : FREAD|FWRITE, FSCRED, p); + if (error) + return (error); + + bp = NULL; + + error = bread(devvp, BBLOCK, BBSIZE, NOCRED, &bp); + if (error) + goto out; + ntmp = malloc( sizeof *ntmp, M_NTFSMNT, M_WAITOK ); + bzero( ntmp, sizeof *ntmp ); + bcopy( bp->b_data, &ntmp->ntm_bootfile, sizeof(struct bootfile) ); + brelse( bp ); + bp = NULL; + + { + int8_t cpr = ntmp->ntm_mftrecsz; + if( cpr > 0 ) + ntmp->ntm_bpmftrec = ntmp->ntm_spc * cpr; + else + ntmp->ntm_bpmftrec = (1 << (-cpr)) / ntmp->ntm_bps; + } + printf("ntfs_mountfs(): bps: %d, spc: %d, media: %x, mftrecsz: %d (%d sects)\n", + ntmp->ntm_bps,ntmp->ntm_spc,ntmp->ntm_bootfile.bf_media, + ntmp->ntm_mftrecsz,ntmp->ntm_bpmftrec); + printf("ntfs_mountfs(): mftcn: 0x%x|0x%x\n", + (u_int32_t)ntmp->ntm_mftcn,(u_int32_t)ntmp->ntm_mftmirrcn); + + ntmp->ntm_mountp = mp; + ntmp->ntm_dev = dev; + ntmp->ntm_devvp = devvp; + ntmp->ntm_uid = argsp->uid; + ntmp->ntm_gid = argsp->gid; + ntmp->ntm_mode = argsp->mode; + ntmp->ntm_flag = argsp->flag; + mp->mnt_data = (qaddr_t)ntmp; + + printf("ntfs_mountfs(): case-%s,%s uid: %d, gid: %d, mode: %o\n", + (ntmp->ntm_flag & NTFS_MFLAG_CASEINS)?"insens.":"sens.", + (ntmp->ntm_flag & NTFS_MFLAG_ALLNAMES)?" allnames,":"", + ntmp->ntm_uid, ntmp->ntm_gid, ntmp->ntm_mode); + + printf("ntfs_mountfs(): reading system nodes...\n"); + { + i = NTFS_MFTINO; + error = VFS_VGET(mp, i, &(ntmp->ntm_sysvn[i])); + if(error) + goto out1; + VREF(ntmp->ntm_sysvn[i]); + vput(ntmp->ntm_sysvn[i]); + i = NTFS_ROOTINO; + error = VFS_VGET(mp, i, &(ntmp->ntm_sysvn[i])); + if(error) + goto out1; + VREF(ntmp->ntm_sysvn[i]); + vput(ntmp->ntm_sysvn[i]); + } + + MALLOC( ntmp->ntm_upcase, wchar *, 65536 * sizeof(wchar), + M_NTFSMNT, M_WAITOK); + + printf("ntfs_mountfs(): opening $UpCase\n"); + error = VFS_VGET(mp, NTFS_UPCASEINO, &vp ); + if(error) + goto out1; + printf("ntfs_mountfs(): reading $UpCase\n"); + error = ntfs_readattr( ntmp, VTONT(vp), NTFS_A_DATA, NULL, + 0, 65536*sizeof(wchar), ntmp->ntm_upcase); + printf("ntfs_mountfs(): closing $UpCase\n"); + vput(vp); + if(error) + goto out1; + + { + int num,j; + struct attrdef ad; + + printf("ntfs_mountfs(): opening $AttrDef\n"); + error = VFS_VGET(mp, NTFS_ATTRDEFINO, &vp ); + if(error) + goto out1; + + for(num=0;;num++) { + error = ntfs_readattr(ntmp, VTONT(vp), + NTFS_A_DATA, NULL, + num * sizeof(ad), sizeof(ad), + &ad); + if (error) + goto out1; + if (ad.ad_name[0] == 0) + break; + } + printf("ntfs_mountfs(): reading %d attrdefs\n",num); + + MALLOC(ntmp->ntm_ad, struct ntvattrdef *, + num * sizeof(struct ntvattrdef), + M_NTFSMNT, M_WAITOK); + + ntmp->ntm_adnum = num; + + for(i=0;intm_ad[i].ad_name[j] = ad.ad_name[j]; + } while(ad.ad_name[j++]); + ntmp->ntm_ad[i].ad_namelen = j - 1; + ntmp->ntm_ad[i].ad_type = ad.ad_type; + printf("ntfs_mountfs(): attribute: %s, type: 0x%x\n", + ntmp->ntm_ad[i].ad_name, + ntmp->ntm_ad[i].ad_type); + } + printf("ntfs_mountfs(): closing $AttrDef\n"); + vput(vp); + } + + mp->mnt_stat.f_fsid.val[0] = (long)dev; +#if __FreeBSD_version >= 300000 + mp->mnt_stat.f_fsid.val[1] = mp->mnt_vfc->vfc_typenum; +#else + mp->mnt_stat.f_fsid.val[1] = MOUNT_NTFS; +#endif + mp->mnt_maxsymlinklen = 0; + mp->mnt_flag |= MNT_LOCAL; +#if __FreeBSD_version >= 300000 + devvp->v_specmountpoint = mp; +#else + devvp->v_specflags |= SI_MOUNTEDON; +#endif + return (0); +out1: + for(i=0;intm_sysvn[i]) vrele(ntmp->ntm_sysvn[i]); +out: +#if __FreeBSD_version >= 300000 + devvp->v_specmountpoint = NULL; +#else + devvp->v_specflags |= SI_MOUNTEDON; +#endif + if (bp) + brelse(bp); + (void)VOP_CLOSE(devvp, ronly ? FREAD : FREAD|FWRITE, NOCRED, p); + return (error); +} + +static int +ntfs_start ( + struct mount *mp, + int flags, + struct proc *p ) +{ + printf("\nntfs_start():\n"); + return (0); +} + +static int +ntfs_unmount( + struct mount *mp, + int mntflags, + struct proc *p) +{ + register struct ntfsmount *ntmp; + int error, ronly = 0, flags, i; + + printf("ntfs_unmount: unmounting...\n"); + ntmp = VFSTONTFS(mp); + + flags = 0; + if(mntflags & MNT_FORCE) + flags |= FORCECLOSE; + + printf("ntfs_unmount: vflushing...\n"); + error = vflush(mp,NULLVP,flags | SKIPSYSTEM); + if (error) { + printf("ntfs_unmount: vflush failed: %d\n",error); + return (error); + } + for(i=0;intm_sysvn[i]) vrele(ntmp->ntm_sysvn[i]); + error = vflush(mp,NULLVP,flags); + if (error) + printf("ntfs_unmount: vflush failed: %d\n",error); + +#if __FreeBSD_version >= 300000 + ntmp->ntm_devvp->v_specmountpoint = NULL; +#else + ntmp->ntm_devvp->v_specflags &= ~SI_MOUNTEDON; + + VOP_LOCK(ntmp->ntm_devvp); + vnode_pager_uncache(ntmp->ntm_devvp); + VOP_UNLOCK(ntmp->ntm_devvp); +#endif + + vinvalbuf(ntmp->ntm_devvp, V_SAVE, NOCRED, p, 0, 0); + error = VOP_CLOSE(ntmp->ntm_devvp, ronly ? FREAD : FREAD|FWRITE, + NOCRED, p); + + vrele(ntmp->ntm_devvp); + + printf("ntfs_umount: freeing memory...\n"); + mp->mnt_data = (qaddr_t)0; + mp->mnt_flag &= ~MNT_LOCAL; + FREE(ntmp->ntm_ad, M_NTFSMNT); + FREE(ntmp->ntm_upcase, M_NTFSMNT); + FREE(ntmp, M_NTFSMNT); + return (error); +} + +static int +ntfs_root( + struct mount *mp, + struct vnode **vpp ) +{ + struct vnode *nvp; + int error = 0; + + dprintf(("ntfs_root(): sysvn: %p\n", + VFSTONTFS(mp)->ntm_sysvn[NTFS_ROOTINO])); + error = VFS_VGET(mp, (ino_t)NTFS_ROOTINO, &nvp); + if(error) { + printf("ntfs_root: VFS_VGET failed: %d\n",error); + return (error); + } + + *vpp = nvp; + return (0); +} + +static int +ntfs_quotactl ( + struct mount *mp, + int cmds, + uid_t uid, + caddr_t arg, + struct proc *p) +{ + printf("\nntfs_quotactl():\n"); + return EOPNOTSUPP; +} + +static int +ntfs_statfs( + struct mount *mp, + struct statfs *sbp, + struct proc *p) +{ + struct ntfsmount *ntmp = VFSTONTFS(mp); + u_int64_t mftsize,mftallocated,bmsize,bmallocated; + struct vnode *vp; + int error,j,i; + u_int8_t *tmp; + + dprintf(("ntfs_statfs():")); + + ntfs_filesize(ntmp, VTOF(ntmp->ntm_sysvn[NTFS_MFTINO]), + &mftsize, &mftallocated); + + error = VFS_VGET(mp, NTFS_BITMAPINO, &vp); + if(error) + return (error); + + ntfs_filesize(ntmp, VTOF(vp), &bmsize, &bmallocated); + + MALLOC(tmp, u_int8_t *, bmsize,M_TEMP, M_WAITOK); + + error = ntfs_readattr(ntmp, VTONT(vp), NTFS_A_DATA, NULL, + 0, bmsize, tmp); + if(error) { + FREE(tmp, M_TEMP); + vput(vp); + return (error); + } + vput(vp); + + sbp->f_bfree = 0; + for(i=0;if_bfree++; + + FREE(tmp, M_TEMP); + +#if __FreeBSD_version >= 300000 + sbp->f_type = mp->mnt_vfc->vfc_typenum; +#else + sbp->f_type = MOUNT_NTFS; +#endif + sbp->f_bsize = ntmp->ntm_bps; + sbp->f_iosize = ntmp->ntm_bps * ntmp->ntm_spc; + sbp->f_blocks = ntmp->ntm_bootfile.bf_spv; + sbp->f_bfree = sbp->f_bavail = ntfs_cntobn(sbp->f_bfree); + sbp->f_ffree = sbp->f_bfree / ntmp->ntm_bpmftrec; + sbp->f_files = mftallocated / ntfs_bntob(ntmp->ntm_bpmftrec) + + sbp->f_ffree; + if (sbp != &mp->mnt_stat) { + bcopy((caddr_t)mp->mnt_stat.f_mntonname, + (caddr_t)&sbp->f_mntonname[0], MNAMELEN); + bcopy((caddr_t)mp->mnt_stat.f_mntfromname, + (caddr_t)&sbp->f_mntfromname[0], MNAMELEN); + } + sbp->f_flags = mp->mnt_flag; + + return (0); +} + +static int +ntfs_sync ( + struct mount *mp, + int waitfor, + struct ucred *cred, + struct proc *p) +{ + /*dprintf(("ntfs_sync():\n"));*/ + return (0); +} + +#if __FreeBSD_version >= 300000 +static int +ntfs_fhtovp( + struct mount *mp, + struct fid *fhp, + struct sockaddr *nam, + struct vnode **vpp, + int *exflagsp, + struct ucred **credanonp) +#else +static int +ntfs_fhtovp( + struct mount *mp, + struct fid *fhp, + struct mbuf *nam, + struct vnode **vpp, + int *exflagsp, + struct ucred **credanonp) +#endif +{ + printf("\ntfs_fhtovp():\n"); + return 0; +} + +static int +ntfs_vptofh( + struct vnode *vp, + struct fid *fhp) +{ + printf("ntfs_vptofh():\n"); + return EOPNOTSUPP; +} + +int +ntfs_vgetex( + struct mount *mp, + ino_t ino, + u_int32_t attrtype, + char *attrname, + u_long lkflags, + u_long flags, + struct proc *p, + struct vnode **vpp) +{ + int error; + register struct ntfsmount *ntmp; + struct ntnode *ip; + struct fnode *fp; + struct vnode *vp; + + dprintf(("ntfs_vgetex: ino: %d, attr: 0x%x:%s, lkf: 0x%x, f: 0x%x\n", + ino, attrtype, attrname?attrname:"", lkflags, flags )); + + ntmp = VFSTONTFS(mp); + *vpp = NULL; + + /* Get ntnode */ + error = ntfs_ntget(ntmp, ino, &ip); + if (error) { + printf("ntfs_vget: ntfs_ntget failed\n"); + return (error); + } + + error = ntfs_fget(ntmp, ip, attrtype, attrname, &fp); + if (error) { + printf("ntfs_vget: ntfs_fget failed\n"); + ntfs_ntrele(ip); + return (error); + } + + if (FTOV(fp)) { + vget(FTOV(fp), lkflags, p); + *vpp = FTOV(fp); + ntfs_ntrele(ip); + return (0); + } + + /* It may be not initialized fully, so force load it */ + if (!(flags & VG_DONTLOAD) && !(ip->i_flag & IN_LOADED)) { + error = ntfs_loadntnode(ntmp, ip); + if(error) { + printf("ntfs_vget: CAN'T LOAD ATTRIBUTES FOR INO: %d\n", + ip->i_number); + ntfs_ntrele(ip); + return (error); + } + } + + error = getnewvnode(VT_NTFS, ntmp->ntm_mountp, ntfs_vnodeop_p, &vp); + if(error) { + ntfs_frele(fp); + ntfs_ntrele(ip); + return (error); + } + dprintf(("ntfs_vget: vnode: %p for ntnode: %d\n", vp,ino)); + + lockinit(&fp->f_lock, PINOD, "fnode", 0, 0); + fp->f_vp = vp; + vp->v_data = fp; + + if (ip->i_frflag & NTFS_FRFLAG_DIR) + vp->v_type = fp->f_type = VDIR; + else + vp->v_type = fp->f_type = VREG; + + if (ino == NTFS_ROOTINO) + vp->v_flag |= VROOT; + if (ino < NTFS_SYSNODESNUM) + vp->v_flag |= VSYSTEM; + + ntfs_ntrele(ip); + + if (lkflags & LK_TYPE_MASK) { + error = vn_lock(vp, lkflags, p); + if (error) { + vput(vp); + return (error); + } + } + + VREF(fp->f_devvp); + *vpp = vp; + return (0); + +} + +static int +ntfs_vget( + struct mount *mp, + ino_t ino, + struct vnode **vpp) +{ + return ntfs_vgetex(mp, ino, NTFS_A_DATA, NULL, + LK_EXCLUSIVE, 0, curproc, vpp); +} + +#if __FreeBSD_version >= 300000 +static struct vfsops ntfs_vfsops = { + ntfs_mount, + ntfs_start, + ntfs_unmount, + ntfs_root, + ntfs_quotactl, + ntfs_statfs, + ntfs_sync, + ntfs_vget, + ntfs_fhtovp, + ntfs_vptofh, + ntfs_init, + NULL, + NULL +}; +VFS_SET(ntfs_vfsops, ntfs, 0); +#else +static struct vfsops ntfs_vfsops = { + ntfs_mount, + ntfs_start, + ntfs_unmount, + ntfs_root, + ntfs_quotactl, + ntfs_statfs, + ntfs_sync, + ntfs_vget, + ntfs_fhtovp, + ntfs_vptofh, + ntfs_init, +}; + +VFS_SET(ntfs_vfsops, ntfs, MOUNT_NTFS, 0); +#endif + + Property changes on: stable/3/sys/ntfs/ntfs_vfsops.c ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: stable/3/sys/ntfs/ntfs_vfsops.h =================================================================== --- stable/3/sys/ntfs/ntfs_vfsops.h (nonexistent) +++ stable/3/sys/ntfs/ntfs_vfsops.h (revision 44655) @@ -0,0 +1,33 @@ +/*- + * Copyright (c) 1998, 1999 Semen Ustimenko (semenu@FreeBSD.org) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $Id: ntfs_vfsops.h,v 1.1 1999/02/02 01:54:54 semen Exp $ + */ +#define VG_DONTLOAD 0x0001 /* Tells ntfs_vgetex to do not call */ + /* ntfs_loadnode on ntnode, even if */ + /* ntnode not loaded */ + +int ntfs_vgetex(struct mount *, ino_t, u_int32_t, char *, u_long, u_long, + struct proc *, struct vnode **); Property changes on: stable/3/sys/ntfs/ntfs_vfsops.h ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: stable/3/sys/ntfs/ntfs_vnops.c =================================================================== --- stable/3/sys/ntfs/ntfs_vnops.c (nonexistent) +++ stable/3/sys/ntfs/ntfs_vnops.c (revision 44655) @@ -0,0 +1,1033 @@ +/* + * Copyright (c) 1992, 1993 + * The Regents of the University of California. All rights reserved. + * + * This code is derived from software contributed to Berkeley by + * John Heidemann of the UCLA Ficus project. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $Id: ntfs_vnops.c,v 1.10 1999/02/02 03:15:13 semen Exp $ + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + + +/*#define NTFS_DEBUG 1*/ +#include +#include +#include +#include +#include + +static int ntfs_bypass __P((struct vop_generic_args *ap)); +static int ntfs_read __P((struct vop_read_args *)); +static int ntfs_write __P((struct vop_write_args *ap)); +static int ntfs_getattr __P((struct vop_getattr_args *ap)); +static int ntfs_inactive __P((struct vop_inactive_args *ap)); +static int ntfs_print __P((struct vop_print_args *ap)); +static int ntfs_reclaim __P((struct vop_reclaim_args *ap)); +static int ntfs_strategy __P((struct vop_strategy_args *ap)); +#if __FreeBSD_version < 300000 +static int ntfs_islocked __P((struct vop_islocked_args *ap)); +static int ntfs_unlock __P((struct vop_unlock_args *ap)); +static int ntfs_lock __P((struct vop_lock_args *ap)); +#endif +static int ntfs_access __P((struct vop_access_args *ap)); +static int ntfs_open __P((struct vop_open_args *ap)); +static int ntfs_close __P((struct vop_close_args *ap)); +static int ntfs_readdir __P((struct vop_readdir_args *ap)); +static int ntfs_lookup __P((struct vop_lookup_args *ap)); +static int ntfs_bmap __P((struct vop_bmap_args *ap)); +static int ntfs_getpages __P((struct vop_getpages_args *ap)); +static int ntfs_putpages __P((struct vop_putpages_args *)); +static int ntfs_fsync __P((struct vop_fsync_args *ap)); + +int ntfs_prtactive = 1; /* 1 => print out reclaim of active vnodes */ + +int +ntfs_getpages(ap) + struct vop_getpages_args *ap; +{ + return vnode_pager_generic_getpages(ap->a_vp, ap->a_m, ap->a_count, + ap->a_reqpage); +} + +int +ntfs_putpages(ap) + struct vop_putpages_args *ap; +{ + return vnode_pager_generic_putpages(ap->a_vp, ap->a_m, ap->a_count, + ap->a_sync, ap->a_rtvals); +} + +/* + * This is a noop, simply returning what one has been given. + */ +int +ntfs_bmap(ap) + struct vop_bmap_args /* { + struct vnode *a_vp; + daddr_t a_bn; + struct vnode **a_vpp; + daddr_t *a_bnp; + int *a_runp; + int *a_runb; + } */ *ap; +{ + dprintf(("ntfs_bmap: vn: %p, blk: %d\n", ap->a_vp,(u_int32_t)ap->a_bn)); + if (ap->a_vpp != NULL) + *ap->a_vpp = ap->a_vp; + if (ap->a_bnp != NULL) + *ap->a_bnp = ap->a_bn; + if (ap->a_runp != NULL) + *ap->a_runp = 0; + if (ap->a_runb != NULL) + *ap->a_runb = 0; + return (0); +} + +static int +ntfs_read(ap) + struct vop_read_args /* { + struct vnode *a_vp; + struct uio *a_uio; + int a_ioflag; + struct ucred *a_cred; + } */ *ap; +{ + register struct vnode *vp = ap->a_vp; + register struct fnode *fp = VTOF(vp); + register struct ntnode *ip = FTONT(fp); + struct uio *uio = ap->a_uio; + struct ntfsmount *ntmp = ip->i_mp; + u_int8_t *data; + u_int64_t toread; + int error; + + dprintf(("ntfs_read: ino: %d, off: %d resid: %d, segflg: %d\n",ip->i_number,(u_int32_t)uio->uio_offset,uio->uio_resid,uio->uio_segflg)); + + ntfs_filesize(ntmp, fp, &toread, NULL); + dprintf(("ntfs_read: filesize: %d",(u_int32_t)toread)); + + toread = min( uio->uio_resid, toread - uio->uio_offset ); + + dprintf((", toread: %d\n",(u_int32_t)toread)); + + MALLOC(data, u_int8_t *, toread, M_TEMP,M_WAITOK); + + error = ntfs_readattr( ntmp, ip, fp->f_attrtype, + fp->f_attrname, uio->uio_offset, toread, data); + if(error) { + printf("ntfs_read: ntfs_readattr failed: %d\n",error); + FREE(data, M_TEMP); + return (error); + } + + error = uiomove(data, (int) toread, uio); + if(error) { + printf("ntfs_read: uiomove failed: %d\n",error); + FREE(data, M_TEMP); + return (error); + } + + FREE(data, M_TEMP); + + return (0); +} + +static int +ntfs_bypass(ap) + struct vop_generic_args /* { + struct vnodeop_desc *a_desc; + + } */ *ap; +{ + int error = ENOTTY; + dprintf(("ntfs_bypass: %s\n", ap->a_desc->vdesc_name)); + return (error); +} + + +static int +ntfs_getattr(ap) + struct vop_getattr_args /* { + struct vnode *a_vp; + struct vattr *a_vap; + struct ucred *a_cred; + struct proc *a_p; + } */ *ap; +{ + register struct vnode *vp = ap->a_vp; + register struct fnode *fp = VTOF(vp); + register struct ntnode *ip = FTONT(fp); + register struct vattr *vap = ap->a_vap; + + dprintf(("ntfs_getattr: %d, flags: %d\n",ip->i_number,ip->i_flag)); + + vap->va_fsid = fp->f_dev; + vap->va_fileid = ip->i_number; + vap->va_mode = ip->i_mode; + vap->va_nlink = ip->i_nlink; + vap->va_uid = ip->i_uid; + vap->va_gid = ip->i_gid; + vap->va_rdev = (dev_t)0; + vap->va_size = fp->f_size; + vap->va_bytes = fp->f_allocated; + vap->va_atime = ntfs_nttimetounix(fp->f_times.t_access); + vap->va_mtime = ntfs_nttimetounix(fp->f_times.t_write); + vap->va_ctime = ntfs_nttimetounix(fp->f_times.t_create); + vap->va_flags = ip->i_flag; + vap->va_gen = 0; + vap->va_blocksize = ip->i_mp->ntm_spc * ip->i_mp->ntm_bps; + vap->va_type = fp->f_type; + vap->va_filerev = 0; + return (0); +} + + +/* + * Last reference to an ntnode. If necessary, write or delete it. + */ +int +ntfs_inactive(ap) + struct vop_inactive_args /* { + struct vnode *a_vp; + } */ *ap; +{ + register struct vnode *vp = ap->a_vp; +#if defined(NTFS_DEBUG) || defined(DISGNOSTIC) + register struct ntnode *ip = VTONT(vp); +#endif + int error; + + dprintf(("ntfs_inactive: vnode: %p, ntnode: %d\n", vp, ip->i_number)); + + if (ntfs_prtactive && vp->v_usecount != 0) + vprint("ntfs_inactive: pushing active", vp); + + error = 0; + +#if __FreeBSD_version >= 300000 + VOP_UNLOCK(vp,0,ap->a_p); +#else +#ifdef DIAGNOSTIC + if (VOP_ISLOCKED(vp)) + panic("ntfs_inactive: locked ntnode"); + if (curproc) + ip->i_lockholder = curproc->p_pid; + else + ip->i_lockholder = -1; +#endif + ip->i_flag |= IN_LOCKED; + VOP_UNLOCK(vp); +#endif + /* + * If we are done with the ntnode, reclaim it + * so that it can be reused immediately. + */ + if (vp->v_usecount == 0 /*&& ip->i_mode == 0*/) +#if __FreeBSD_version >= 300000 + vrecycle(vp, (struct simplelock *)0, ap->a_p); +#else + vgone(vp); +#endif + return (error); +} + +/* + * Reclaim an inode so that it can be used for other purposes. + */ +int +ntfs_reclaim(ap) + struct vop_reclaim_args /* { + struct vnode *a_vp; + } */ *ap; +{ + register struct vnode *vp = ap->a_vp; + register struct fnode *fp = VTOF(vp); +#if NTFS_DEBUG + register struct ntnode *ip = FTONT(fp); +#endif + + dprintf(("ntfs_reclaim: vnode: %p, ntnode: %d\n", vp, ip->i_number)); + +#if __FreeBSD_version >= 300000 + VOP_UNLOCK(vp,0,ap->a_p); +#endif + + /* Purge old data structures associated with the inode. */ + cache_purge(vp); + if (fp->f_devvp) { + vrele(fp->f_devvp); + fp->f_devvp = NULL; + } + + ntfs_frele(fp); + + vp->v_data = NULL; + + return (0); +} + +static int +ntfs_print(ap) + struct vop_print_args /* { + struct vnode *a_vp; + } */ *ap; +{ +/* printf("[ntfs_print]");*/ + + return (0); +} + +/* + * Calculate the logical to physical mapping if not done already, + * then call the device strategy routine. + */ +int +ntfs_strategy(ap) + struct vop_strategy_args /* { + struct buf *a_bp; + } */ *ap; +{ + register struct buf *bp = ap->a_bp; + register struct vnode *vp = bp->b_vp; + register struct fnode *fp = VTOF(vp); + register struct ntnode *ip = FTONT(fp); + struct ntfsmount *ntmp = ip->i_mp; + int error; + + dprintf(("ntfs_strategy: offset: %d, blkno: %d, lblkno: %d\n", + (u_int32_t)bp->b_offset,(u_int32_t)bp->b_blkno, + (u_int32_t)bp->b_lblkno)); + dprintf(("strategy: bcount: %d flags: 0x%x\n", + (u_int32_t)bp->b_bcount,bp->b_flags)); + + if (bp->b_flags & B_READ) { + u_int32_t toread; + + if (ntfs_cntob(bp->b_blkno) >= fp->f_size) { + clrbuf(bp); + error = 0; + } else { + toread = min(bp->b_bcount, + fp->f_size-ntfs_cntob(bp->b_blkno)); + dprintf(("ntfs_strategy: toread: %d, fsize: %d\n", + toread,(u_int32_t)fp->f_size)); + + error = ntfs_readattr(ntmp, ip, fp->f_attrtype, + fp->f_attrname, ntfs_cntob(bp->b_blkno), + toread, bp->b_data); + + if (error) { + printf("ntfs_strategy: ntfs_readattr failed\n"); + bp->b_error = error; + bp->b_flags |= B_ERROR; + } + + bzero(bp->b_data + toread, bp->b_bcount - toread); + } + } else { + size_t tmp; + u_int32_t towrite; + + if (ntfs_cntob(bp->b_blkno) + bp->b_bcount >= fp->f_size) { + printf("ntfs_strategy: CAN'T EXTEND FILE\n"); + bp->b_error = error = EFBIG; + bp->b_flags |= B_ERROR; + } else { + towrite = min(bp->b_bcount, + fp->f_size-ntfs_cntob(bp->b_blkno)); + dprintf(("ntfs_strategy: towrite: %d, fsize: %d\n", + towrite,(u_int32_t)fp->f_size)); + + error = ntfs_writeattr_plain(ntmp, ip, fp->f_attrtype, + fp->f_attrname, ntfs_cntob(bp->b_blkno),towrite, + bp->b_data, &tmp); + + if (error) { + printf("ntfs_strategy: ntfs_writeattr fail\n"); + bp->b_error = error; + bp->b_flags |= B_ERROR; + } + } + } + biodone(bp); + return (error); +} + +static int +ntfs_write(ap) + struct vop_write_args /* { + struct vnode *a_vp; + struct uio *a_uio; + int a_ioflag; + struct ucred *a_cred; + } */ *ap; +{ + register struct vnode *vp = ap->a_vp; + register struct fnode *fp = VTOF(vp); + register struct ntnode *ip = FTONT(fp); + struct uio *uio = ap->a_uio; + struct ntfsmount *ntmp = ip->i_mp; + u_int8_t *data; + u_int64_t towrite; + off_t off; + size_t written; + int error; + + dprintf(("ntfs_write: ino: %d, off: %d resid: %d, segflg: %d\n",ip->i_number,(u_int32_t)uio->uio_offset,uio->uio_resid,uio->uio_segflg)); + + ntfs_filesize(ntmp, fp, &towrite, NULL); + + if (uio->uio_resid + uio->uio_offset > towrite) { + printf("ntfs_write: CAN'T WRITE BEYOND OF FILE\n"); + return (EFBIG); + } + + dprintf(("ntfs_write: filesize: %d",(u_int32_t)towrite)); + + towrite = min(uio->uio_resid, towrite - uio->uio_offset); + off = uio->uio_offset; + + dprintf((", towrite: %d\n",(u_int32_t)towrite)); + + MALLOC(data, u_int8_t *, towrite, M_TEMP,M_WAITOK); + + error = uiomove(data, (int) towrite, uio); + if(error) { + FREE(data, M_TEMP); + return (error); + } + + error = ntfs_writeattr_plain(ntmp, ip, fp->f_attrtype, + fp->f_attrname, off, towrite, data, &written); + if(error) { + printf("ntfs_write: ntfs_writeattr failed: %d\n",error); + FREE(data, M_TEMP); + return (error); + } + + FREE(data, M_TEMP); + + return (0); +} + +#if __FreeBSD_version < 300000 +/* + * Check for a locked ntnode. + */ +int +ntfs_islocked(ap) + struct vop_islocked_args /* { + struct vnode *a_vp; + } */ *ap; +{ + register struct ntnode *ip = VTONT(ap->a_vp); + + dprintf(("ntfs_islocked %d\n",ip->i_number)); + + if (ip->i_flag & IN_LOCKED) + return (1); + return (0); +} + +/* + * Unlock an ntnode. If WANT bit is on, wakeup. + */ +int ntfs_lockcount = 90; +int +ntfs_unlock(ap) + struct vop_unlock_args /* { + struct vnode *a_vp; + } */ *ap; +{ + register struct ntnode *ip = VTONT(ap->a_vp); + struct proc *p = curproc; + + dprintf(("ntfs_unlock %d\n",ip->i_number)); + +#ifdef DIAGNOSTIC + + if ((ip->i_flag & IN_LOCKED) == 0) { + vprint("ntfs_unlock: unlocked ntnode", ap->a_vp); + panic("ntfs_unlock NOT LOCKED"); + } + if (p && p->p_pid != ip->i_lockholder && p->p_pid > -1 && + ip->i_lockholder > -1 && ntfs_lockcount++ < 100) + panic("unlocker (%d) != lock holder (%d)", + p->p_pid, ip->i_lockholder); +#endif + + if (--ip->i_lockcount > 0) { + if ((ip->i_flag & IN_RECURSE) == 0) + panic("ntfs_unlock: recursive lock prematurely released, pid=%d\n", ip->i_lockholder); + return (0); + } + ip->i_lockholder = 0; + ip->i_flag &= ~(IN_LOCKED|IN_RECURSE); + if (ip->i_flag & IN_WANTED) { + ip->i_flag &= ~IN_WANTED; + wakeup((caddr_t)ip); + } + return (0); +} + +/* + * Lock an ntnode. If its already locked, set the WANT bit and sleep. + */ +int +ntfs_lock(ap) + struct vop_lock_args /* { + struct vnode *a_vp; + } */ *ap; +{ + struct proc *p = curproc; + register struct vnode *vp = ap->a_vp; + register struct ntnode *ip = VTONT(vp); + + dprintf(("ntfs_lock %d (%d locks)\n",ip->i_number,ip->i_lockcount)); + +start: + while (vp->v_flag & VXLOCK) { + vp->v_flag |= VXWANT; + (void) tsleep((caddr_t)vp, PINOD, "ntflk1", 0); + } + if (vp->v_tag == VT_NON) + return (ENOENT); + ip = VTONT(vp); + if (ip->i_flag & IN_LOCKED) { + if (p->p_pid == ip->i_lockholder) { + if( (ip->i_flag & IN_RECURSE) == 0) + panic("ntfs_lock: recursive lock not expected, pid: %d\n", + ip->i_lockholder); + } else { + ip->i_flag |= IN_WANTED; +#ifdef DIAGNOSTIC + if (p) + ip->i_lockwaiter = p->p_pid; + else + ip->i_lockwaiter = -1; +#endif + (void) tsleep((caddr_t)ip, PINOD, "ntflk2", 0); + goto start; + } + } +#ifdef DIAGNOSTIC + ip->i_lockwaiter = 0; + if (((ip->i_flag & IN_RECURSE) == 0) && (ip->i_lockholder != 0)) + panic("lockholder (%d) != 0", ip->i_lockholder); + if (p && p->p_pid == 0) + printf("locking by process 0\n"); +#endif + + if ((ip->i_flag & IN_RECURSE) == 0) + ip->i_lockcount = 1; + else + ++ip->i_lockcount; + + if (p) + ip->i_lockholder = p->p_pid; + else + ip->i_lockholder = -1; + ip->i_flag |= IN_LOCKED; + return (0); +} +#endif + +int +ntfs_access(ap) + struct vop_access_args /* { + struct vnode *a_vp; + int a_mode; + struct ucred *a_cred; + struct proc *a_p; + } */ *ap; +{ + struct vnode *vp = ap->a_vp; + struct ntnode *ip = VTONT(vp); + struct ucred *cred = ap->a_cred; + mode_t mask, mode = ap->a_mode; + register gid_t *gp; + int i; +#ifdef QUOTA + int error; +#endif + + dprintf(("ntfs_access: %d\n",ip->i_number)); + + /* + * Disallow write attempts on read-only file systems; + * unless the file is a socket, fifo, or a block or + * character device resident on the file system. + */ + if (mode & VWRITE) { + switch ((int)vp->v_type) { + case VDIR: + case VLNK: + case VREG: + if (vp->v_mount->mnt_flag & MNT_RDONLY) + return (EROFS); +#ifdef QUOTA + if (error = getinoquota(ip)) + return (error); +#endif + break; + } + } + + /* If immutable bit set, nobody gets to write it. */ +/* + if ((mode & VWRITE) && (ip->i_flags & IMMUTABLE)) + return (EPERM); +*/ + + /* Otherwise, user id 0 always gets access. */ + if (cred->cr_uid == 0) + return (0); + + mask = 0; + + /* Otherwise, check the owner. */ + if (cred->cr_uid == ip->i_uid) { + if (mode & VEXEC) + mask |= S_IXUSR; + if (mode & VREAD) + mask |= S_IRUSR; + if (mode & VWRITE) + mask |= S_IWUSR; + return ((ip->i_mode & mask) == mask ? 0 : EACCES); + } + + /* Otherwise, check the groups. */ + for (i = 0, gp = cred->cr_groups; i < cred->cr_ngroups; i++, gp++) + if (ip->i_gid == *gp) { + if (mode & VEXEC) + mask |= S_IXGRP; + if (mode & VREAD) + mask |= S_IRGRP; + if (mode & VWRITE) + mask |= S_IWGRP; + return ((ip->i_mode & mask) == mask ? 0 : EACCES); + } + + /* Otherwise, check everyone else. */ + if (mode & VEXEC) + mask |= S_IXOTH; + if (mode & VREAD) + mask |= S_IROTH; + if (mode & VWRITE) + mask |= S_IWOTH; + return ((ip->i_mode & mask) == mask ? 0 : EACCES); +} + +/* + * Open called. + * + * Nothing to do. + */ +/* ARGSUSED */ +static int +ntfs_open(ap) + struct vop_open_args /* { + struct vnode *a_vp; + int a_mode; + struct ucred *a_cred; + struct proc *a_p; + } */ *ap; +{ +#if NTFS_DEBUG + register struct vnode *vp = ap->a_vp; + register struct ntnode *ip = VTONT(vp); + + printf("ntfs_open: %d\n",ip->i_number); +#endif + + /* + * Files marked append-only must be opened for appending. + */ + + return (0); +} + +/* + * Close called. + * + * Update the times on the inode. + */ +/* ARGSUSED */ +static int +ntfs_close(ap) + struct vop_close_args /* { + struct vnode *a_vp; + int a_fflag; + struct ucred *a_cred; + struct proc *a_p; + } */ *ap; +{ +#if NTFS_DEBUG + register struct vnode *vp = ap->a_vp; + register struct ntnode *ip = VTONT(vp); + + printf("ntfs_close: %d\n",ip->i_number); +#endif + + return (0); +} + +/* +#undef dprintf +#define dprintf(a) printf a +*/ +int +ntfs_readdir(ap) + struct vop_readdir_args /* { + struct vnode *a_vp; + struct uio *a_uio; + struct ucred *a_cred; + int *a_ncookies; + u_int **cookies; + } */ *ap; +{ + register struct vnode *vp = ap->a_vp; + register struct fnode *fp = VTOF(vp); + register struct ntnode *ip = FTONT(fp); + struct uio *uio = ap->a_uio; + struct ntfsmount *ntmp = ip->i_mp; + int i, error = 0; + u_int32_t faked = 0, num; + int ncookies = 0; + struct dirent cde; + off_t off; + + dprintf(("ntfs_readdir %d off: %d resid: %d\n",ip->i_number,(u_int32_t)uio->uio_offset,uio->uio_resid)); + + off = uio->uio_offset; + + /* Simulate . in every dir except ROOT */ + if( ip->i_number != NTFS_ROOTINO ) { + struct dirent dot = { NTFS_ROOTINO, + sizeof(struct dirent), DT_DIR, 1, "." }; + + if( uio->uio_offset < sizeof(struct dirent) ) { + dot.d_fileno = ip->i_number; + error = uiomove((char *)&dot,sizeof(struct dirent),uio); + if(error) + return (error); + + ncookies ++; + } + } + + /* Simulate .. in every dir including ROOT */ + if( uio->uio_offset < 2 * sizeof(struct dirent) ) { + struct dirent dotdot = { NTFS_ROOTINO, + sizeof(struct dirent), DT_DIR, 2, ".." }; + + error = uiomove((char *)&dotdot,sizeof(struct dirent),uio); + if(error) + return (error); + + ncookies ++; + } + + faked = (ip->i_number == NTFS_ROOTINO) ? 1 : 2; + num = uio->uio_offset / sizeof(struct dirent) - faked; + + while( uio->uio_resid >= sizeof(struct dirent) ) { + struct attr_indexentry *iep; + + error = ntfs_ntreaddir(ntmp, fp, num, &iep); + + if(error) + return (error); + + if( NULL == iep ) + break; + + while( !(iep->ie_flag & NTFS_IEFLAG_LAST) && (uio->uio_resid >= sizeof(struct dirent)) ) { + + if( ntfs_isnamepermitted(ntmp,iep) ) { + dprintf(("ntfs_readdir: elem: %d, fname:[",num)); + for(i=0;iie_fnamelen;i++) { + cde.d_name[i] = (char)iep->ie_fname[i]; + dprintf(("%c", cde.d_name[i])); + } + dprintf(("] type: %d, flag: %d, ",iep->ie_fnametype, iep->ie_flag)); + cde.d_name[i] = '\0'; + cde.d_namlen = iep->ie_fnamelen; + cde.d_fileno = iep->ie_number; + cde.d_type = (iep->ie_fflag & NTFS_FFLAG_DIR) ? DT_DIR : DT_REG; + cde.d_reclen = sizeof(struct dirent); + dprintf(("%s\n", (cde.d_type == DT_DIR) ? "dir":"reg")); + + error = uiomove((char *)&cde, sizeof(struct dirent), uio); + if(error) + return (error); + + ncookies++; + num++; + } + + iep = NTFS_NEXTREC(iep,struct attr_indexentry *); + } + } + + dprintf(("ntfs_readdir: %d entries (%d bytes) read\n", + ncookies,(u_int)(uio->uio_offset - off))); + dprintf(("ntfs_readdir: off: %d resid: %d\n", + (u_int32_t)uio->uio_offset,uio->uio_resid)); + + if (!error && ap->a_ncookies != NULL) { + struct dirent* dpStart; + struct dirent* dp; +#if __FreeBSD_version >= 300000 + u_long *cookies; + u_long *cookiep; +#else + u_int *cookies; + u_int *cookiep; +#endif + + printf("ntfs_readdir: %d cookies\n",ncookies); + if (uio->uio_segflg != UIO_SYSSPACE || uio->uio_iovcnt != 1) + panic("ntfs_readdir: unexpected uio from NFS server"); + dpStart = (struct dirent *) + (uio->uio_iov->iov_base - (uio->uio_offset - off)); +#if __FreeBSD_version >= 300000 + MALLOC(cookies, u_long *, ncookies * sizeof(u_long), + M_TEMP, M_WAITOK); +#else + MALLOC(cookies, u_int *, ncookies * sizeof(u_int), + M_TEMP, M_WAITOK); +#endif + for (dp = dpStart, cookiep = cookies, i=0; + i < ncookies; + dp = (struct dirent *)((caddr_t) dp + dp->d_reclen), i++) { + off += dp->d_reclen; + *cookiep++ = (u_int) off; + } + *ap->a_ncookies = ncookies; + *ap->a_cookies = cookies; + } +/* + if (ap->a_eofflag) + *ap->a_eofflag = VTONT(ap->a_vp)->i_size <= uio->uio_offset; +*/ + return (error); +} +/* +#undef dprintf +#define dprintf(a) +*/ + +int +ntfs_lookup(ap) + struct vop_lookup_args /* { + struct vnode *a_dvp; + struct vnode **a_vpp; + struct componentname *a_cnp; + } */ *ap; +{ + register struct vnode *dvp = ap->a_dvp; + register struct ntnode *dip = VTONT(dvp); + struct ntfsmount *ntmp = dip->i_mp; + struct componentname *cnp = ap->a_cnp; + struct ucred *cred = cnp->cn_cred; + int error; + int lockparent = cnp->cn_flags & LOCKPARENT; +#if NTFS_DEBUG + int wantparent = cnp->cn_flags & (LOCKPARENT|WANTPARENT); +#endif + dprintf(("ntfs_lookup: %s (%ld bytes) in %d, lp: %d, wp: %d \n", + cnp->cn_nameptr, cnp->cn_namelen, + dip->i_number,lockparent, wantparent)); + + error = VOP_ACCESS(dvp, VEXEC, cred, cnp->cn_proc); + if(error) + return (error); + + if( (cnp->cn_namelen == 1) && + !strncmp(cnp->cn_nameptr,".",1) ) { + dprintf(("ntfs_lookup: faking . directory in %d\n", + dip->i_number)); + + VREF(dvp); + *ap->a_vpp = dvp; + return (0); + } else if( (cnp->cn_namelen == 2) && + !strncmp(cnp->cn_nameptr,"..",2) && + (cnp->cn_flags & ISDOTDOT) ) { + struct ntvattr *vap; + + dprintf(("ntfs_lookup: faking .. directory in %d\n", + dip->i_number)); + + error = ntfs_ntvattrget(ntmp, dip, NTFS_A_NAME, NULL, 0, &vap); + if(error) + return (error); + +#if __FreeBSD_version >= 300000 + VOP_UNLOCK(dvp,0,cnp->cn_proc); +#else + VOP_UNLOCK(dvp); +#endif + + dprintf(("ntfs_lookup: parentdir: %d\n", + vap->va_a_name->n_pnumber)); + error = VFS_VGET(ntmp->ntm_mountp, + vap->va_a_name->n_pnumber,ap->a_vpp); + ntfs_ntvattrrele(vap); + if(error) { +#if __FreeBSD_version >= 300000 + VOP_LOCK(dvp, 0, cnp->cn_proc); +#else + VOP_LOCK(dvp); +#endif + return(error); + } + + if( lockparent && (cnp->cn_flags & ISLASTCN) && +#if __FreeBSD_version >= 300000 + (error = VOP_LOCK(dvp, 0, cnp->cn_proc)) ) { +#else + (error = VOP_LOCK(dvp)) ) { +#endif + vput( *(ap->a_vpp) ); + return (error); + } + return (error); + } else { + error = ntfs_ntlookup(ntmp, dvp, cnp, ap->a_vpp); + if(error) + return (error); + + dprintf(("ntfs_lookup: found ino: %d\n", + VTONT(*ap->a_vpp)->i_number)); + + if(!lockparent || !(cnp->cn_flags & ISLASTCN)) +#if __FreeBSD_version >= 300000 + VOP_UNLOCK(dvp, 0, cnp->cn_proc); +#else + VOP_UNLOCK(dvp); +#endif + + } + return (error); +} + +/* + * Flush the blocks of a file to disk. + * + * This function is worthless for vnodes that represent directories. Maybe we + * could just do a sync if they try an fsync on a directory file. + */ +static int +ntfs_fsync(ap) + struct vop_fsync_args /* { + struct vnode *a_vp; + struct ucred *a_cred; + int a_waitfor; + struct proc *a_p; + } */ *ap; +{ + return (0); +} + +/* + * Global vfs data structures + */ +vop_t **ntfs_vnodeop_p; +static struct vnodeopv_entry_desc ntfs_vnodeop_entries[] = { + { &vop_default_desc, (vop_t *)ntfs_bypass }, + + { &vop_getattr_desc, (vop_t *)ntfs_getattr }, + { &vop_inactive_desc, (vop_t *)ntfs_inactive }, + { &vop_reclaim_desc, (vop_t *)ntfs_reclaim }, + { &vop_print_desc, (vop_t *)ntfs_print }, + +#if __FreeBSD_version >= 30000 + { &vop_islocked_desc, (vop_t *)vop_stdislocked }, + { &vop_unlock_desc, (vop_t *)vop_stdunlock }, + { &vop_lock_desc, (vop_t *)vop_stdlock }, + { &vop_cachedlookup_desc, (vop_t *)ntfs_lookup }, + { &vop_lookup_desc, (vop_t *)vfs_cache_lookup }, +#else + { &vop_islocked_desc, (vop_t *)ntfs_islocked }, + { &vop_unlock_desc, (vop_t *)ntfs_unlock }, + { &vop_lock_desc, (vop_t *)ntfs_lock }, + { &vop_lookup_desc, (vop_t *)ntfs_lookup }, +#endif + + { &vop_access_desc, (vop_t *)ntfs_access }, + { &vop_close_desc, (vop_t *)ntfs_close }, + { &vop_open_desc, (vop_t *)ntfs_open }, + { &vop_readdir_desc, (vop_t *)ntfs_readdir }, + { &vop_fsync_desc, (vop_t *)ntfs_fsync }, + + { &vop_bmap_desc, (vop_t *)ntfs_bmap }, + { &vop_getpages_desc, (vop_t *)ntfs_getpages }, + { &vop_putpages_desc, (vop_t *) ntfs_putpages }, + + { &vop_strategy_desc, (vop_t *)ntfs_strategy }, + { &vop_bwrite_desc, (vop_t *)vop_stdbwrite }, + { &vop_read_desc, (vop_t *)ntfs_read }, + { &vop_write_desc, (vop_t *)ntfs_write }, + + { NULL, NULL } +}; + +static struct vnodeopv_desc ntfs_vnodeop_opv_desc = + { &ntfs_vnodeop_p, ntfs_vnodeop_entries }; + +VNODEOP_SET(ntfs_vnodeop_opv_desc); Property changes on: stable/3/sys/ntfs/ntfs_vnops.c ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: stable/3/sys/ntfs/ntfsmount.h =================================================================== --- stable/3/sys/ntfs/ntfsmount.h (nonexistent) +++ stable/3/sys/ntfs/ntfsmount.h (revision 44655) @@ -0,0 +1,39 @@ +/*- + * Copyright (c) 1998, 1999 Semen Ustimenko + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $Id: ntfsmount.h,v 1.7 1999/01/28 03:56:07 semen Exp $ + */ + +#define NTFS_MFLAG_CASEINS 0x00000001 +#define NTFS_MFLAG_ALLNAMES 0x00000002 + +struct ntfs_args { + char *fspec; /* block special device to mount */ + struct export_args export; /* network export information */ + uid_t uid; /* uid that owns ntfs files */ + gid_t gid; /* gid that owns ntfs files */ + mode_t mode; /* mask to be applied for ntfs perms */ + u_long flag; /* additional flags */ +}; Property changes on: stable/3/sys/ntfs/ntfsmount.h ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: stable/3/usr.sbin/boot0cfg/Makefile =================================================================== --- stable/3/usr.sbin/boot0cfg/Makefile (nonexistent) +++ stable/3/usr.sbin/boot0cfg/Makefile (revision 44655) @@ -0,0 +1,6 @@ +# $Id: $ + +PROG= boot0cfg +MAN8= boot0cfg.8 + +.include Property changes on: stable/3/usr.sbin/boot0cfg/Makefile ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: stable/3/usr.sbin/boot0cfg/boot0cfg.8 =================================================================== --- stable/3/usr.sbin/boot0cfg/boot0cfg.8 (nonexistent) +++ stable/3/usr.sbin/boot0cfg/boot0cfg.8 (revision 44655) @@ -0,0 +1,137 @@ +.\" Copyright (c) 1999 Robert Nordier +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS +.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, +.\" OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT +.\" OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +.\" BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +.\" WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +.\" OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +.\" EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +.\" +.\" $Id: boot0cfg.8,v 1.2 1999/02/22 09:36:54 rnordier Exp $ +.\" +.Dd February 21, 1999 +.Dt BOOT0CFG 8 +.Os +.Sh NAME +.Nm boot0cfg +.Nd boot manager installation/configuration utility +.Sh SYNOPSIS +.Nm boot0cfg +.Op Fl Bv +.Op Fl b Ar boot0 +.Op Fl d Ar drive +.Op Fl f Ar file +.Op Fl o Ar options +.Op Fl t Ar ticks +.Ar disk +.Sh DESCRIPTION +The FreeBSD +.Sq boot0 +boot manager permits the operator to select from which disk and which +slice an i386 machine (PC) is booted. +.Pp +Note that what are referred to here as +.Dq slices +are typically called +.Dq partitions +in non-BSD documentation relating to the PC. Typically, only +non-removable disks are sliced. +.Pp +The +.Nm +utility optionally installs the +.Sq boot0 +boot manager on the specified +.Ar disk ; +and allows various operational parameters to be configured. +.Pp +On PCs, a boot manager typically occupies sector 0 of a disk, which is +known as the Master Boot Record (MBR). The MBR contains both code (to +which control is passed by the PC BIOS) and data (an embedded table of +defined slices). +.Pp +The options are: +.Bl -tag -width indent +.It Fl B +Install the +.Sq boot0 +boot manager. This option causes MBR code to be replaced, but without +affecting the embedded slice table. +.It Fl v +Verbose: display information about the slices defined, etc. +.It Fl b Ar boot0 +Specify which +.Sq boot0 +image to use. The default is /boot/boot0. +.It Fl d Ar drive +Specify the drive number used by the PC BIOS in referencing the drive +which contains the specified +.Ar disk . +Typically this will be 0x80 for the first hard drive, 0x81 for the +second hard drive, and so on; however any integer between 0 and 0xff +is acceptable here. +.It Fl f Ar file +Specify that a backup copy of the preexisting MBR should be written to +.Ar file . +This file is created if it does not exist, and truncated if it does. +.It Fl o Ar options +A comma-separated string of any of the following options may be +specified (with +.Dq no +prepended as necessary): +.Bl -tag -width indent +.It packet +Use the disk packet (BIOS Int 0x13 extensions) interface rather than +the conventional (CHS) interface, when accessing disk-related BIOS +services. The default is +.Sq nopacket . +.It setdrv +Forces the drive containing the disk to be referenced using drive +number definable by means of the -d option. The default is +.Sq nosetdrv . +.It update +Allow the MBR to be updated by the boot manager. (The MBR may be +updated to flag slices as +.Sq active , +and to save slice selection information.) This is the default; a +.Sq noupdate +option causes the MBR to be treated as read-only. +.El +.It Fl t Ar ticks +Set the timeout value to +.Ar ticks . +(There are approximately 18.2 ticks per second.) +.El +.Sh SEE ALSO +.Xr boot 8 , +.Xr fdisk 8 . +.Sh DIAGNOSTICS +Exit status is 0 on success and >0 on error. +.Sh AUTHORS +.An Robert Nordier Aq rnordier@FreeBSD.org . +.Sh BUGS +Use of the +.Sq packet +option may cause +.Sq boot0 +to fail, depending on the nature of BIOS support. +.Pp +Use of the +.Sq setdrv +option with an incorrect -d operand may cause the MBR to be written +to the wrong disk. Be careful! Property changes on: stable/3/usr.sbin/boot0cfg/boot0cfg.8 ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: stable/3/usr.sbin/boot0cfg/boot0cfg.c =================================================================== --- stable/3/usr.sbin/boot0cfg/boot0cfg.c (nonexistent) +++ stable/3/usr.sbin/boot0cfg/boot0cfg.c (revision 44655) @@ -0,0 +1,270 @@ +/* + * Copyright (c) 1999 Robert Nordier + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, + * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR + * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef lint +static const char rcsid[] = + "$Id: boot0cfg.c,v 1.2 1999/02/22 09:36:54 rnordier Exp $"; +#endif /* not lint */ + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#define MBRSIZE 512 /* master boot record size */ + +#define OFF_DRIVE 0x1ba /* offset: setdrv drive */ +#define OFF_FLAGS 0x1bb /* offset: option flags */ +#define OFF_TICKS 0x1bc /* offset: clock ticks */ +#define OFF_PTBL 0x1be /* offset: partition table */ +#define OFF_MAGIC 0x1fe /* offset: magic number */ + +#define cv2(p) ((p)[0] | (p)[1] << 010) + +#define mk2(p, x) \ + (p)[0] = (u_int8_t)(x), \ + (p)[1] = (u_int8_t)((x) >> 010) + +static const struct { + const char *tok; + int def; +} opttbl[] = { + {"packet", 0}, + {"update", 1}, + {"setdrv", 0} +}; +static const int nopt = sizeof(opttbl) / sizeof(opttbl[0]); + +static const char fmt0[] = "# flag start chs type" + " end chs offset size\n"; + +static const char fmt1[] = "%d 0x%02x %4u:%3u:%2u 0x%02x" + " %4u:%3u:%2u %10u %10u\n"; + +static void stropt(const char *, int *, int *); +static char *mkrdev(const char *); +static int argtoi(const char *, int, int, int); +static void usage(void); + +int +main(int argc, char *argv[]) +{ + u_int8_t buf[MBRSIZE]; + struct dos_partition part[4]; + const char *bpath, *fpath, *disk; + ssize_t n; + int B_flag, v_flag, o_flag; + int d_arg, t_arg; + int o_and, o_or; + int fd, fd1, up, c, i; + + bpath = "/boot/boot0"; + fpath = NULL; + B_flag = v_flag = o_flag = 0; + d_arg = t_arg = -1; + o_and = 0xff; + o_or = 0; + while ((c = getopt(argc, argv, "Bvb:d:f:o:t:")) != -1) + switch (c) { + case 'B': + B_flag = 1; + break; + case 'v': + v_flag = 1; + break; + case 'b': + bpath = optarg; + break; + case 'd': + d_arg = argtoi(optarg, 0, 0xff, 'd'); + break; + case 'f': + fpath = optarg; + break; + case 'o': + stropt(optarg, &o_and, &o_or); + o_flag = 1; + break; + case 't': + t_arg = argtoi(optarg, 1, 0xffff, 't'); + break; + default: + usage(); + } + argc -= optind; + argv += optind; + if (argc != 1) + usage(); + disk = mkrdev(*argv); + up = B_flag || d_arg != -1 || o_flag || t_arg != -1; + if ((fd = open(disk, up ? O_RDWR : O_RDONLY)) == -1) + err(1, "%s", disk); + if ((n = read(fd, buf, MBRSIZE)) == -1) + err(1, "%s", disk); + if (n != MBRSIZE) + errx(1, "%s: short read", disk); + if (cv2(buf + OFF_MAGIC) != 0xaa55) + errx(1, "%s: bad magic", disk); + if (fpath) { + if ((fd1 = open(fpath, O_WRONLY | O_CREAT | O_TRUNC, + 0666)) == -1 || + (n = write(fd1, buf, MBRSIZE)) == -1 || close(fd1)) + err(1, "%s", fpath); + if (n != MBRSIZE) + errx(1, "%s: short write", fpath); + } + memcpy(part, buf + OFF_PTBL, sizeof(part)); + if (B_flag) { + if ((fd1 = open(bpath, O_RDONLY)) == -1 || + (n = read(fd1, buf, MBRSIZE)) == -1 || close(fd1)) + err(1, "%s", bpath); + if (n != MBRSIZE) + errx(1, "%s: short read", bpath); + if (cv2(buf + OFF_MAGIC) != 0xaa55) + errx(1, "%s: bad magic", bpath); + memcpy(buf + OFF_PTBL, part, sizeof(part)); + } + if (d_arg != -1) + buf[OFF_DRIVE] = d_arg; + if (o_flag) { + buf[OFF_FLAGS] &= o_and; + buf[OFF_FLAGS] |= o_or; + } + if (t_arg != -1) + mk2(buf + OFF_TICKS, t_arg); + if (up) { + if (lseek(fd, 0, SEEK_SET) == -1 || + (n = write(fd, buf, MBRSIZE)) == -1 || close(fd)) + err(1, "%s", disk); + if (n != MBRSIZE) + errx(1, "%s: short write", disk); + } + if (v_flag) { + printf(fmt0); + for (i = 0; i < 4; i++) + if (part[i].dp_typ) { + printf(fmt1, + 1 + i, + part[i].dp_flag, + part[i].dp_scyl + ((part[i].dp_ssect & 0xc0) << 2), + part[i].dp_shd, + part[i].dp_ssect & 0x3f, + part[i].dp_typ, + part[i].dp_ecyl + ((part[i].dp_esect & 0xc0) << 2), + part[i].dp_ehd, + part[i].dp_esect & 0x3f, + part[i].dp_start, + part[i].dp_size); + } + printf("\n"); + printf("drive=0x%x options=", buf[OFF_DRIVE]); + for (i = 0; i < nopt; i++) { + if (i) + printf(","); + if (!(buf[OFF_FLAGS] & 1 << (7 - i)) ^ opttbl[i].def) + printf("no"); + printf("%s", opttbl[i].tok); + } + printf(" ticks=%u\n", cv2(buf + OFF_TICKS)); + } + return 0; +} + +static void +stropt(const char *arg, int *xa, int *xo) +{ + const char *q; + char *s, *s1; + int inv, i, x; + + if (!(s = strdup(arg))) + err(1, NULL); + for (s1 = s; (q = strtok(s1, ",")); s1 = NULL) { + if ((inv = !strncmp(q, "no", 2))) + q += 2; + for (i = 0; i < nopt; i++) + if (!strcmp(q, opttbl[i].tok)) + break; + if (i == nopt) + errx(1, "%s: Unknown -o option", q); + if (opttbl[i].def) + inv ^= 1; + x = 1 << (7 - i); + if (inv) + *xa &= ~x; + else + *xo |= x; + } + free(s); +} + +static char * +mkrdev(const char *fname) +{ + char buf[MAXPATHLEN]; + struct stat sb; + char *s; + + s = (char *) fname; + if (!strchr(fname, '/')) { + snprintf(buf, sizeof(buf), "%sr%s", _PATH_DEV, fname); + if (stat(buf, &sb)) + snprintf(buf, sizeof(buf), "%s%s", _PATH_DEV, fname); + if (!(s = strdup(buf))) + err(1, NULL); + } + return s; +} + +static int +argtoi(const char *arg, int lo, int hi, int opt) +{ + char *s; + long x; + + errno = 0; + x = strtol(arg, &s, 0); + if (errno || !*arg || *s || x < lo || x > hi) + errx(1, "%s: Bad argument to -%c option", arg, opt); + return x; +} + +static void +usage(void) +{ + fprintf(stderr, "%s\n%s\n", + "usage: boot0cfg [-Bv] [-b boot0] [-d drive] [-f file] [-o options]", + " [-t ticks] disk"); + exit(1); +} Property changes on: stable/3/usr.sbin/boot0cfg/boot0cfg.c ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: stable/3/usr.sbin/ppp/radius.c =================================================================== --- stable/3/usr.sbin/ppp/radius.c (nonexistent) +++ stable/3/usr.sbin/ppp/radius.c (revision 44655) @@ -0,0 +1,423 @@ +/* + * Copyright 1999 Internet Business Solutions Ltd., Switzerland + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $Id: radius.c,v 1.3 1999/02/06 02:54:47 brian Exp $ + * + */ + +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#include "defs.h" +#include "log.h" +#include "descriptor.h" +#include "prompt.h" +#include "timer.h" +#include "fsm.h" +#include "iplist.h" +#include "slcompress.h" +#include "throughput.h" +#include "lqr.h" +#include "hdlc.h" +#include "mbuf.h" +#include "ipcp.h" +#include "route.h" +#include "command.h" +#include "filter.h" +#include "lcp.h" +#include "ccp.h" +#include "link.h" +#include "mp.h" +#include "radius.h" +#include "auth.h" +#include "async.h" +#include "physical.h" +#include "chat.h" +#include "cbcp.h" +#include "chap.h" +#include "datalink.h" +#include "bundle.h" + +/* + * rad_continue_send_request() has given us `got' (non-zero). Deal with it. + */ +static void +radius_Process(struct radius *r, int got) +{ + char *argv[MAXARGS], *nuke; + struct bundle *bundle; + int len, argc, addrs; + struct in_range dest; + struct in_addr gw; + const void *data; + + r->cx.fd = -1; /* Stop select()ing */ + + switch (got) { + case RAD_ACCESS_ACCEPT: + log_Printf(LogPHASE, "Radius: ACCEPT received\n"); + break; + + case RAD_ACCESS_REJECT: + log_Printf(LogPHASE, "Radius: REJECT received\n"); + auth_Failure(r->cx.auth); + rad_close(r->cx.rad); + return; + + case RAD_ACCESS_CHALLENGE: + /* we can't deal with this (for now) ! */ + log_Printf(LogPHASE, "Radius: CHALLENGE received (can't handle yet)\n"); + auth_Failure(r->cx.auth); + rad_close(r->cx.rad); + return; + + case -1: + log_Printf(LogPHASE, "radius: %s\n", rad_strerror(r->cx.rad)); + auth_Failure(r->cx.auth); + rad_close(r->cx.rad); + return; + + default: + log_Printf(LogERROR, "rad_send_request: Failed %d: %s\n", + got, rad_strerror(r->cx.rad)); + auth_Failure(r->cx.auth); + rad_close(r->cx.rad); + return; + } + + /* So we've been accepted ! Let's see what we've got in our reply :-I */ + r->ip.s_addr = r->mask.s_addr = INADDR_NONE; + r->mtu = 0; + r->vj = 0; + while ((got = rad_get_attr(r->cx.rad, &data, &len)) > 0) { + switch (got) { + case RAD_FRAMED_IP_ADDRESS: + r->ip = rad_cvt_addr(data); + log_Printf(LogPHASE, " IP %s\n", inet_ntoa(r->ip)); + break; + + case RAD_FRAMED_IP_NETMASK: + r->mask = rad_cvt_addr(data); + log_Printf(LogPHASE, " Netmask %s\n", inet_ntoa(r->mask)); + break; + + case RAD_FRAMED_MTU: + r->mtu = rad_cvt_int(data); + log_Printf(LogPHASE, " MTU %lu\n", r->mtu); + break; + + case RAD_FRAMED_ROUTING: + /* Disabled for now - should we automatically set up some filters ? */ + /* rad_cvt_int(data); */ + /* bit 1 = Send routing packets */ + /* bit 2 = Receive routing packets */ + break; + + case RAD_FRAMED_COMPRESSION: + r->vj = rad_cvt_int(data) == 1 ? 1 : 0; + log_Printf(LogPHASE, " VJ %sabled\n", r->vj ? "en" : "dis"); + break; + + case RAD_FRAMED_ROUTE: + /* + * We expect a string of the format ``dest[/bits] gw [metrics]'' + * Any specified metrics are ignored. MYADDR and HISADDR are + * understood for ``dest'' and ``gw'' and ``0.0.0.0'' is the same + * as ``HISADDR''. + */ + + if ((nuke = rad_cvt_string(data, len)) == NULL) { + log_Printf(LogERROR, "rad_cvt_string: %s\n", rad_strerror(r->cx.rad)); + rad_close(r->cx.rad); + return; + } + + log_Printf(LogPHASE, " Route: %s\n", nuke); + bundle = r->cx.auth->physical->dl->bundle; + dest.ipaddr.s_addr = dest.mask.s_addr = INADDR_ANY; + dest.width = 0; + argc = command_Interpret(nuke, strlen(nuke), argv); + if (argc < 2) + log_Printf(LogWARN, "radius: %s: Invalid route\n", + argc == 1 ? argv[0] : "\"\""); + else if ((strcasecmp(argv[0], "default") != 0 && + !ParseAddr(&bundle->ncp.ipcp, argv[0], &dest.ipaddr, + &dest.mask, &dest.width)) || + !ParseAddr(&bundle->ncp.ipcp, argv[1], &gw, NULL, NULL)) + log_Printf(LogWARN, "radius: %s %s: Invalid route\n", + argv[0], argv[1]); + else { + if (dest.width == 32 && strchr(argv[0], '/') == NULL) + /* No mask specified - use the natural mask */ + dest.mask = addr2mask(dest.ipaddr); + addrs = 0; + + if (!strncasecmp(argv[0], "HISADDR", 7)) + addrs = ROUTE_DSTHISADDR; + else if (!strncasecmp(argv[0], "MYADDR", 6)) + addrs = ROUTE_DSTMYADDR; + + if (gw.s_addr == INADDR_ANY) { + addrs |= ROUTE_GWHISADDR; + gw = bundle->ncp.ipcp.peer_ip; + } else if (strcasecmp(argv[1], "HISADDR") == 0) + addrs |= ROUTE_GWHISADDR; + + route_Add(&r->routes, addrs, dest.ipaddr, dest.mask, gw); + } + free(nuke); + break; + } + } + + if (got == -1) { + log_Printf(LogERROR, "rad_get_attr: %s (failing!)\n", + rad_strerror(r->cx.rad)); + auth_Failure(r->cx.auth); + rad_close(r->cx.rad); + } else { + r->valid = 1; + auth_Success(r->cx.auth); + rad_close(r->cx.rad); + } +} + +/* + * We've either timed out or select()ed on the read descriptor + */ +static void +radius_Continue(struct radius *r, int sel) +{ + struct timeval tv; + int got; + + timer_Stop(&r->cx.timer); + if ((got = rad_continue_send_request(r->cx.rad, sel, &r->cx.fd, &tv)) == 0) { + log_Printf(LogPHASE, "Radius: Request re-sent\n"); + r->cx.timer.load = tv.tv_usec / TICKUNIT + tv.tv_sec * SECTICKS; + timer_Start(&r->cx.timer); + return; + } + + radius_Process(r, got); +} + +/* + * Time to call rad_continue_send_request() - timed out. + */ +static void +radius_Timeout(void *v) +{ + radius_Continue((struct radius *)v, 0); +} + +/* + * Time to call rad_continue_send_request() - something to read. + */ +static void +radius_Read(struct descriptor *d, struct bundle *bundle, const fd_set *fdset) +{ + radius_Continue(descriptor2radius(d), 1); +} + +/* + * Behave as a struct descriptor (descriptor.h) + */ +static int +radius_UpdateSet(struct descriptor *d, fd_set *r, fd_set *w, fd_set *e, int *n) +{ + struct radius *rad = descriptor2radius(d); + + if (r && rad->cx.fd != -1) { + FD_SET(rad->cx.fd, r); + if (*n < rad->cx.fd + 1) + *n = rad->cx.fd + 1; + log_Printf(LogTIMER, "Radius: fdset(r) %d\n", rad->cx.fd); + return 1; + } + + return 0; +} + +/* + * Behave as a struct descriptor (descriptor.h) + */ +static int +radius_IsSet(struct descriptor *d, const fd_set *fdset) +{ + struct radius *r = descriptor2radius(d); + + return r && r->cx.fd != -1 && FD_ISSET(r->cx.fd, fdset); +} + +/* + * Behave as a struct descriptor (descriptor.h) + */ +static int +radius_Write(struct descriptor *d, struct bundle *bundle, const fd_set *fdset) +{ + /* We never want to write here ! */ + log_Printf(LogALERT, "radius_Write: Internal error: Bad call !\n"); + return 0; +} + +/* + * Initialise ourselves + */ +void +radius_Init(struct radius *r) +{ + r->valid = 0; + r->cx.fd = -1; + *r->cfg.file = '\0';; + r->desc.type = RADIUS_DESCRIPTOR; + r->desc.UpdateSet = radius_UpdateSet; + r->desc.IsSet = radius_IsSet; + r->desc.Read = radius_Read; + r->desc.Write = radius_Write; + memset(&r->cx.timer, '\0', sizeof r->cx.timer); +} + +/* + * Forget everything and go back to initialised state. + */ +void +radius_Destroy(struct radius *r) +{ + r->valid = 0; + timer_Stop(&r->cx.timer); + route_DeleteAll(&r->routes); + if (r->cx.fd != -1) { + r->cx.fd = -1; + rad_close(r->cx.rad); + } +} + +/* + * Start an authentication request to the RADIUS server. + */ +void +radius_Authenticate(struct radius *r, struct authinfo *authp, const char *name, + const char *key, const char *challenge) +{ + struct timeval tv; + int got; + + if (!*r->cfg.file) + return; + + if (r->cx.fd != -1) + /* + * We assume that our name/key/challenge is the same as last time, + * and just continue to wait for the RADIUS server(s). + */ + return; + + radius_Destroy(r); + + if ((r->cx.rad = rad_open()) == NULL) { + log_Printf(LogERROR, "rad_open: %s\n", strerror(errno)); + return; + } + + if (rad_config(r->cx.rad, r->cfg.file) != 0) { + log_Printf(LogERROR, "rad_config: %s\n", rad_strerror(r->cx.rad)); + rad_close(r->cx.rad); + return; + } + + if (rad_create_request(r->cx.rad, RAD_ACCESS_REQUEST) != 0) { + log_Printf(LogERROR, "rad_create_request: %s\n", rad_strerror(r->cx.rad)); + rad_close(r->cx.rad); + return; + } + + if (rad_put_string(r->cx.rad, RAD_USER_NAME, name) != 0 || + rad_put_int(r->cx.rad, RAD_SERVICE_TYPE, RAD_FRAMED) != 0 || + rad_put_int(r->cx.rad, RAD_FRAMED_PROTOCOL, RAD_PPP) != 0) { + log_Printf(LogERROR, "rad_put: %s\n", rad_strerror(r->cx.rad)); + rad_close(r->cx.rad); + return; + } + + if (challenge != NULL) { + /* We're talking CHAP */ + if (rad_put_string(r->cx.rad, RAD_CHAP_PASSWORD, key) != 0 || + rad_put_string(r->cx.rad, RAD_CHAP_CHALLENGE, challenge) != 0) { + log_Printf(LogERROR, "CHAP: rad_put_string: %s\n", + rad_strerror(r->cx.rad)); + rad_close(r->cx.rad); + return; + } + } else if (rad_put_string(r->cx.rad, RAD_USER_PASSWORD, key) != 0) { + /* We're talking PAP */ + log_Printf(LogERROR, "PAP: rad_put_string: %s\n", rad_strerror(r->cx.rad)); + rad_close(r->cx.rad); + return; + } + + if ((got = rad_init_send_request(r->cx.rad, &r->cx.fd, &tv))) + radius_Process(r, got); + else { + log_Printf(LogPHASE, "Radius: Request sent\n"); + log_Printf(LogDEBUG, "Using radius_Timeout [%p]\n", radius_Timeout); + r->cx.timer.load = tv.tv_usec / TICKUNIT + tv.tv_sec * SECTICKS; + r->cx.timer.func = radius_Timeout; + r->cx.timer.name = "radius"; + r->cx.timer.arg = r; + r->cx.auth = authp; + timer_Start(&r->cx.timer); + } +} + +/* + * How do things look at the moment ? + */ +void +radius_Show(struct radius *r, struct prompt *p) +{ + prompt_Printf(p, " Radius config: %s", *r->cfg.file ? r->cfg.file : "none"); + if (r->valid) { + prompt_Printf(p, "\n IP: %s\n", inet_ntoa(r->ip)); + prompt_Printf(p, " Netmask: %s\n", inet_ntoa(r->mask)); + prompt_Printf(p, " MTU: %lu\n", r->mtu); + prompt_Printf(p, " VJ: %sabled\n", r->vj ? "en" : "dis"); + if (r->routes) + route_ShowSticky(p, r->routes, " Routes", 16); + } else + prompt_Printf(p, " (not authenticated)\n"); +} Property changes on: stable/3/usr.sbin/ppp/radius.c ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property