From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 14259 invoked by alias); 18 Nov 2004 16:32:25 -0000 Mailing-List: contact binutils-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: binutils-owner@sources.redhat.com Received: (qmail 14125 invoked from network); 18 Nov 2004 16:31:56 -0000 Received: from unknown (HELO emea1-mh.id2.novell.com) (195.33.99.129) by sourceware.org with SMTP; 18 Nov 2004 16:31:56 -0000 Received: from EMEA1-MTA by emea1-mh.id2.novell.com with Novell_GroupWise; Thu, 18 Nov 2004 16:31:55 +0100 Message-Id: Date: Thu, 18 Nov 2004 16:32:00 -0000 From: "Jan Beulich" To: , Subject: Re: [PATCH] some x86 instructions tagged with incorrect CPU type Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=__PartAF8F7FD4.1__=" X-SW-Source: 2004-11/txt/msg00271.txt.bz2 This is a MIME message. If you are reading this text, you may want to consider changing to a mail reader or gateway that understands how to properly handle MIME multipart messages. --=__PartAF8F7FD4.1__= Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Disposition: inline Content-length: 22842 >>> "H. J. Lu" 16.11.04 20:40:30 >>> >The first problem is the patched assemebler failed "make check" for >x86-64. I got >/net/gnu//export/linux/src/binutils/binutils/gas/testsuite/gas/i386/x86-64-inval.s: >Assembler messages: >/net/gnu//export/linux/src/binutils/binutils/gas/testsuite/gas/i386/x86-64-inval.s:3: Warning: `aaa' is not supported in 64-bit mode >/net/gnu//export/linux/src/binutils/binutils/gas/testsuite/gas/i386/x86-64-inval.s:3: Error: suffix or operands invalid for `aaa' > >instead of > >/net/gnu//export/linux/src/binutils/binutils/gas/testsuite/gas/i386/x86-64-inval.s: >Assembler messages: >/net/gnu//export/linux/src/binutils/binutils/gas/testsuite/gas/i386/x86-64-inval.s:3: Error: suffix or operands invalid for `aaa' > >I would prefer just > >/net/gnu//export/linux/src/binutils/binutils/gas/testsuite/gas/i386/x86-64-inval.s: >Assembler messages: >/net/gnu//export/linux/src/binutils/binutils/gas/testsuite/gas/i386/x86-64-inval.s:3: Error: `aaa' is not supported in 64-bit mode This is easily fixed, as below/attached. Built/tested on i686-pc-linux-gnu (this time also as cross assembler targeting x86_64-unknown-linux-gnu). Despite finding this more desirable, too, I didn't originally dare to make these errors because they weren't before. Jan gas/ 2004-11-18 Jan Beulich * config/tc-i386.h (CpuMMX2): Declare. Artificial classifier to indicate the MMX extensions added by both SSE and 3DNow!A. (Cpu3dnowA): Declare. (CpuUnknownFlags): Update. * config/tc-i386.c (cpu_sub_arch_name): Declare. (cpu_arch): i586 and pentium do not imply MMX. i686 and pentiumpro do neither imply SSE nor MMX. k6 implies MMX. k6_2 additionally implies 3DNow!. Athlon additionally implies 3DNow!A. Several new entries (those starting with a dot are for sub-arch specification). (set_cpu_arch): Handle sub-arch specifications. (parse_insn): Distinguish between instructions not supported because of insufficient CPU features and because of 64-bit mode. * doc/c-i386.texi: Describe enhanced .arch directive. include/opcode/ 2004-11-18 Jan Beulich * i386.h (i386_optab): paddq and psubq, even in their MMX form, are available only with SSE2. Change the MMX additions introduced by SSE and 3DNow!A to CpuMMX2 (rather than CpuMMX). Indicate the 3DNow!A instructions by their now designated identifier (since combining i686 and 3DNow! does not really imply 3DNow!A). --- /home/jbeulich/src/binutils/mainline/2004-11-18.15.10/gas/config/tc-i386.c 2004-11-18 15:05:35.000000000 +0100 +++ 2004-11-18.15.10/gas/config/tc-i386.c 2004-11-18 17:19:29.822416152 +0100 @@ -314,6 +314,7 @@ static int quiet_warnings = 0; /* CPU name. */ static const char *cpu_arch_name = NULL; +static const char *cpu_sub_arch_name = NULL; /* CPU feature flags. */ static unsigned int cpu_arch_flags = CpuUnknownFlags | CpuNo64; @@ -416,14 +417,24 @@ static const arch_entry cpu_arch[] = { {"i286", Cpu086|Cpu186|Cpu286 }, {"i386", Cpu086|Cpu186|Cpu286|Cpu386 }, {"i486", Cpu086|Cpu186|Cpu286|Cpu386|Cpu486 }, - {"i586", Cpu086|Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|CpuMMX }, - {"i686", Cpu086|Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuMMX|CpuSSE }, - {"pentium", Cpu086|Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|CpuMMX }, - {"pentiumpro",Cpu086|Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuMMX|CpuSSE }, - {"pentium4", Cpu086|Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuP4|CpuMMX|CpuSSE|CpuSSE2 }, - {"k6", Cpu086|Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|CpuK6|CpuMMX|Cpu3dnow }, - {"athlon", Cpu086|Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuK6|CpuAthlon|CpuMMX|Cpu3dnow }, - {"sledgehammer",Cpu086|Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuK6|CpuAthlon|CpuSledgehammer|CpuMMX|Cpu3dnow|CpuSSE|CpuSSE2 }, + {"i586", Cpu086|Cpu186|Cpu286|Cpu386|Cpu486|Cpu586 }, + {"i686", Cpu086|Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686 }, + {"pentium", Cpu086|Cpu186|Cpu286|Cpu386|Cpu486|Cpu586 }, + {"pentiumpro",Cpu086|Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686 }, + {"pentiumii", Cpu086|Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuMMX }, + {"pentiumiii",Cpu086|Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuMMX|CpuMMX2|CpuSSE }, + {"pentium4", Cpu086|Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuP4|CpuMMX|CpuMMX2|CpuSSE|CpuSSE2 }, + {"prescott", Cpu086|Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuP4|CpuMMX|CpuMMX2|CpuSSE|CpuSSE2|CpuPNI }, + {"k6", Cpu086|Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|CpuK6|CpuMMX }, + {"k6_2", Cpu086|Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|CpuK6|CpuMMX|Cpu3dnow }, + {"athlon", Cpu086|Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuK6|CpuAthlon|CpuMMX|CpuMMX2|Cpu3dnow|Cpu3dnowA }, + {"sledgehammer",Cpu086|Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuK6|CpuAthlon|CpuSledgehammer|CpuMMX|CpuMMX2|Cpu3dnow|Cpu3dnowA|CpuSSE|CpuSSE2 }, + {".mmx", CpuMMX }, + {".sse", CpuMMX|CpuMMX2|CpuSSE }, + {".sse2", CpuMMX|CpuMMX2|CpuSSE|CpuSSE2 }, + {".3dnow", CpuMMX|Cpu3dnow }, + {".3dnowa", CpuMMX|CpuMMX2|Cpu3dnow|Cpu3dnowA }, + {".padlock", CpuPadLock }, {NULL, 0 } }; @@ -836,10 +847,22 @@ set_cpu_arch (dummy) { if (strcmp (string, cpu_arch[i].name) == 0) { - cpu_arch_name = cpu_arch[i].name; - cpu_arch_flags = (cpu_arch[i].flags - | (flag_code == CODE_64BIT ? Cpu64 : CpuNo64)); - break; + if (*string != '.') + { + cpu_arch_name = cpu_arch[i].name; + cpu_sub_arch_name = NULL; + cpu_arch_flags = (cpu_arch[i].flags + | (flag_code == CODE_64BIT ? Cpu64 : CpuNo64)); + break; + } + if ((cpu_arch_flags | cpu_arch[i].flags) != cpu_arch_flags) + { + cpu_sub_arch_name = cpu_arch[i].name; + cpu_arch_flags |= cpu_arch[i].flags; + } + *input_line_pointer = e; + demand_empty_rest_of_line (); + return; } } if (!cpu_arch[i].name) @@ -1561,6 +1584,8 @@ parse_insn (line, mnemonic) char *l = line; char *token_start = l; char *mnem_p; + int supported; + const template *t; /* Non-zero if we found a prefix only acceptable with string insns. */ const char *expecting_string_instruction = NULL; @@ -1709,11 +1734,29 @@ parse_insn (line, mnemonic) } /* Check if instruction is supported on specified architecture. */ - if ((current_templates->start->cpu_flags & ~(Cpu64 | CpuNo64)) - & ~(cpu_arch_flags & ~(Cpu64 | CpuNo64))) + supported = 0; + for (t = current_templates->start; t < current_templates->end; ++t) + { + if (!((t->cpu_flags & ~(Cpu64 | CpuNo64)) + & ~(cpu_arch_flags & ~(Cpu64 | CpuNo64)))) + supported |= 1; + if (!(t->cpu_flags & (flag_code == CODE_64BIT ? CpuNo64 : Cpu64))) + supported |= 2; + } + if (!(supported & 2)) + { + as_bad (flag_code == CODE_64BIT + ? _("`%s' is not supported in 64-bit mode") + : _("`%s' is only supported in 64-bit mode"), + current_templates->start->name); + return NULL; + } + if (!(supported & 1)) { - as_warn (_("`%s' is not supported on `%s'"), - current_templates->start->name, cpu_arch_name); + as_warn (_("`%s' is not supported on `%s%s'"), + current_templates->start->name, + cpu_arch_name, + cpu_sub_arch_name ? cpu_sub_arch_name : ""); } else if ((Cpu386 & ~cpu_arch_flags) && (flag_code != CODE_16BIT)) { --- /home/jbeulich/src/binutils/mainline/2004-11-18.15.10/gas/config/tc-i386.h 2004-11-02 17:34:08.000000000 +0100 +++ 2004-11-18.15.10/gas/config/tc-i386.h 2004-11-04 10:46:55.000000000 +0100 @@ -174,18 +174,20 @@ typedef struct #define CpuAthlon 0x200 /* AMD Athlon or better required*/ #define CpuSledgehammer 0x400 /* Sledgehammer or better required */ #define CpuMMX 0x800 /* MMX support required */ -#define CpuSSE 0x1000 /* Streaming SIMD extensions required */ -#define CpuSSE2 0x2000 /* Streaming SIMD extensions 2 required */ -#define Cpu3dnow 0x4000 /* 3dnow! support required */ -#define CpuPNI 0x8000 /* Prescott New Instructions required */ -#define CpuPadLock 0x10000 /* VIA PadLock required */ +#define CpuMMX2 0x1000 /* extended MMX support (with SSE or 3DNow!Ext) required */ +#define CpuSSE 0x2000 /* Streaming SIMD extensions required */ +#define CpuSSE2 0x4000 /* Streaming SIMD extensions 2 required */ +#define Cpu3dnow 0x8000 /* 3dnow! support required */ +#define Cpu3dnowA 0x10000 /* 3dnow!Extensions support required */ +#define CpuPNI 0x20000 /* Prescott New Instructions required */ +#define CpuPadLock 0x40000 /* VIA PadLock required */ /* These flags are set by gas depending on the flag_code. */ #define Cpu64 0x4000000 /* 64bit support required */ #define CpuNo64 0x8000000 /* Not supported in the 64bit mode */ /* The default value for unknown CPUs - enable all features to avoid problems. */ -#define CpuUnknownFlags (Cpu086|Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuP4|CpuSledgehammer|CpuMMX|CpuSSE|CpuSSE2|CpuPNI|Cpu3dnow|CpuK6|CpuAthlon|CpuPadLock) +#define CpuUnknownFlags (Cpu086|Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuP4|CpuSledgehammer|CpuMMX|CpuMMX2|CpuSSE|CpuSSE2|CpuPNI|Cpu3dnow|Cpu3dnowA|CpuK6|CpuAthlon|CpuPadLock) /* the bits in opcode_modifier are used to generate the final opcode from the base_opcode. These bits also are used to detect alternate forms of --- /home/jbeulich/src/binutils/mainline/2004-11-18.15.10/gas/doc/c-i386.texi 2004-10-06 09:35:50.000000000 +0200 +++ 2004-11-18.15.10/gas/doc/c-i386.texi 2004-11-04 10:46:55.000000000 +0100 @@ -691,15 +691,16 @@ register is @samp{%st(i)}. @cindex x86-64 arch directive @code{@value{AS}} may be told to assemble for a particular CPU -architecture with the @code{.arch @var{cpu_type}} directive. This +(sub-)architecture with the @code{.arch @var{cpu_type}} directive. This directive enables a warning when gas detects an instruction that is not supported on the CPU specified. The choices for @var{cpu_type} are: @multitable @columnfractions .20 .20 .20 .20 @item @samp{i8086} @tab @samp{i186} @tab @samp{i286} @tab @samp{i386} @item @samp{i486} @tab @samp{i586} @tab @samp{i686} @tab @samp{pentium} -@item @samp{pentiumpro} @tab @samp{pentium4} @tab @samp{k6} @tab @samp{athlon} -@item @samp{sledgehammer} +@item @samp{pentiumpro} @tab @samp{pentiumii} @tab @samp{pentiumiii} @tab @samp{pentium4} +@item @samp{k6} @tab @samp{athlon} @samp{sledgehammer} +@item @samp{.mmx} @samp{.sse} @samp{.sse2} @samp{.3dnow} @end multitable Apart from the warning, there are only two other effects on @@ -715,13 +716,14 @@ conditional jumps will be promoted when sequence consisting of a conditional jump of the opposite sense around an unconditional jump to the target. -Following the CPU architecture, you may specify @samp{jumps} or -@samp{nojumps} to control automatic promotion of conditional jumps. -@samp{jumps} is the default, and enables jump promotion; All external -jumps will be of the long variety, and file-local jumps will be promoted -as necessary. (@pxref{i386-Jumps}) @samp{nojumps} leaves external -conditional jumps as byte offset jumps, and warns about file-local -conditional jumps that @code{@value{AS}} promotes. +Following the CPU architecture (but not a sub-architecture, which are those +starting with a dot), you may specify @samp{jumps} or @samp{nojumps} to +control automatic promotion of conditional jumps. @samp{jumps} is the +default, and enables jump promotion; All external jumps will be of the long +variety, and file-local jumps will be promoted as necessary. +(@pxref{i386-Jumps}) @samp{nojumps} leaves external conditional jumps as +byte offset jumps, and warns about file-local conditional jumps that +@code{@value{AS}} promotes. Unconditional jumps are treated as for @samp{jumps}. For example --- /home/jbeulich/src/binutils/mainline/2004-11-18.15.10/include/opcode/i386.h 2004-11-18 15:06:45.000000000 +0100 +++ 2004-11-18.15.10/include/opcode/i386.h 2004-11-18 17:05:34.117462616 +0100 @@ -1020,7 +1020,7 @@ static const template i386_optab[] = {"paddw", 2, 0x660ffd,X,CpuSSE2,NoSuf|IgnoreSize|Modrm, { RegXMM|LLongMem, RegXMM, 0 } }, {"paddd", 2, 0x0ffe, X, CpuMMX, NoSuf|IgnoreSize|Modrm, { RegMMX|LongMem, RegMMX, 0 } }, {"paddd", 2, 0x660ffe,X,CpuSSE2,NoSuf|IgnoreSize|Modrm, { RegXMM|LLongMem, RegXMM, 0 } }, -{"paddq", 2, 0x0fd4, X, CpuMMX, NoSuf|IgnoreSize|Modrm, { RegMMX|LLongMem, RegMMX, 0 } }, +{"paddq", 2, 0x0fd4, X, CpuSSE2,NoSuf|IgnoreSize|Modrm, { RegMMX|LLongMem, RegMMX, 0 } }, {"paddq", 2, 0x660fd4,X,CpuSSE2,NoSuf|IgnoreSize|Modrm, { RegXMM|LLongMem, RegXMM, 0 } }, {"paddsb", 2, 0x0fec, X, CpuMMX, NoSuf|IgnoreSize|Modrm, { RegMMX|LongMem, RegMMX, 0 } }, {"paddsb", 2, 0x660fec,X,CpuSSE2,NoSuf|IgnoreSize|Modrm, { RegXMM|LLongMem, RegXMM, 0 } }, @@ -1151,7 +1151,7 @@ static const template i386_optab[] = {"divps", 2, 0x0f5e, X, CpuSSE, NoSuf|IgnoreSize|Modrm, { RegXMM|LLongMem, RegXMM, 0 } }, {"divss", 2, 0xf30f5e, X, CpuSSE, NoSuf|IgnoreSize|Modrm, { RegXMM|WordMem, RegXMM, 0 } }, {"ldmxcsr", 1, 0x0fae, 2, CpuSSE, NoSuf|IgnoreSize|Modrm, { WordMem, 0, 0 } }, -{"maskmovq", 2, 0x0ff7, X, CpuSSE, NoSuf|IgnoreSize|Modrm, { RegMMX|InvMem, RegMMX, 0 } }, +{"maskmovq", 2, 0x0ff7, X, CpuMMX2,NoSuf|IgnoreSize|Modrm, { RegMMX|InvMem, RegMMX, 0 } }, {"maxps", 2, 0x0f5f, X, CpuSSE, NoSuf|IgnoreSize|Modrm, { RegXMM|LLongMem, RegXMM, 0 } }, {"maxss", 2, 0xf30f5f, X, CpuSSE, NoSuf|IgnoreSize|Modrm, { RegXMM|WordMem, RegXMM, 0 } }, {"minps", 2, 0x0f5d, X, CpuSSE, NoSuf|IgnoreSize|Modrm, { RegXMM|LLongMem, RegXMM, 0 } }, @@ -1166,7 +1166,7 @@ static const template i386_optab[] = {"movlps", 2, 0x0f13, X, CpuSSE, NoSuf|IgnoreSize|Modrm, { RegXMM, LLongMem, 0 } }, {"movmskps", 2, 0x0f50, X, CpuSSE, lq_Suf|IgnoreSize|Modrm, { RegXMM|InvMem, Reg32|Reg64, 0 } }, {"movntps", 2, 0x0f2b, X, CpuSSE, NoSuf|IgnoreSize|Modrm, { RegXMM, LLongMem, 0 } }, -{"movntq", 2, 0x0fe7, X, CpuSSE, NoSuf|IgnoreSize|Modrm, { RegMMX, LLongMem, 0 } }, +{"movntq", 2, 0x0fe7, X, CpuMMX2,NoSuf|IgnoreSize|Modrm, { RegMMX, LLongMem, 0 } }, {"movntdq", 2, 0x660fe7, X, CpuSSE2,NoSuf|IgnoreSize|Modrm, { RegXMM, LLongMem, 0 } }, {"movss", 2, 0xf30f10, X, CpuSSE, NoSuf|IgnoreSize|Modrm, { RegXMM|WordMem, RegXMM, 0 } }, {"movss", 2, 0xf30f11, X, CpuSSE, NoSuf|IgnoreSize|Modrm, { RegXMM, RegXMM|WordMem, 0 } }, @@ -1175,38 +1175,38 @@ static const template i386_optab[] = {"mulps", 2, 0x0f59, X, CpuSSE, NoSuf|IgnoreSize|Modrm, { RegXMM|LLongMem, RegXMM, 0 } }, {"mulss", 2, 0xf30f59, X, CpuSSE, NoSuf|IgnoreSize|Modrm, { RegXMM|WordMem, RegXMM, 0 } }, {"orps", 2, 0x0f56, X, CpuSSE, NoSuf|IgnoreSize|Modrm, { RegXMM|LLongMem, RegXMM, 0 } }, -{"pavgb", 2, 0x0fe0, X, CpuSSE, NoSuf|IgnoreSize|Modrm, { RegMMX|LLongMem, RegMMX, 0 } }, +{"pavgb", 2, 0x0fe0, X, CpuMMX2,NoSuf|IgnoreSize|Modrm, { RegMMX|LLongMem, RegMMX, 0 } }, {"pavgb", 2, 0x660fe0, X, CpuSSE2,NoSuf|IgnoreSize|Modrm, { RegXMM|LLongMem, RegXMM, 0 } }, -{"pavgw", 2, 0x0fe3, X, CpuSSE, NoSuf|IgnoreSize|Modrm, { RegMMX|LLongMem, RegMMX, 0 } }, +{"pavgw", 2, 0x0fe3, X, CpuMMX2,NoSuf|IgnoreSize|Modrm, { RegMMX|LLongMem, RegMMX, 0 } }, {"pavgw", 2, 0x660fe3, X, CpuSSE2,NoSuf|IgnoreSize|Modrm, { RegXMM|LLongMem, RegXMM, 0 } }, -{"pextrw", 3, 0x0fc5, X, CpuSSE, lq_Suf|IgnoreSize|Modrm, { Imm8, RegMMX|InvMem, Reg32|Reg64 } }, +{"pextrw", 3, 0x0fc5, X, CpuMMX2,lq_Suf|IgnoreSize|Modrm, { Imm8, RegMMX|InvMem, Reg32|Reg64 } }, {"pextrw", 3, 0x660fc5, X, CpuSSE2,lq_Suf|IgnoreSize|Modrm, { Imm8, RegXMM|InvMem, Reg32|Reg64 } }, -{"pinsrw", 3, 0x0fc4, X, CpuSSE, lq_Suf|IgnoreSize|Modrm, { Imm8, Reg32|Reg64|ShortMem, RegMMX } }, +{"pinsrw", 3, 0x0fc4, X, CpuMMX2,lq_Suf|IgnoreSize|Modrm, { Imm8, Reg32|Reg64|ShortMem, RegMMX } }, {"pinsrw", 3, 0x660fc4, X, CpuSSE2,lq_Suf|IgnoreSize|Modrm, { Imm8, Reg32|Reg64|ShortMem, RegXMM } }, -{"pmaxsw", 2, 0x0fee, X, CpuSSE, NoSuf|IgnoreSize|Modrm, { RegMMX|LLongMem, RegMMX, 0 } }, +{"pmaxsw", 2, 0x0fee, X, CpuMMX2,NoSuf|IgnoreSize|Modrm, { RegMMX|LLongMem, RegMMX, 0 } }, {"pmaxsw", 2, 0x660fee, X, CpuSSE2,NoSuf|IgnoreSize|Modrm, { RegXMM|LLongMem, RegXMM, 0 } }, -{"pmaxub", 2, 0x0fde, X, CpuSSE, NoSuf|IgnoreSize|Modrm, { RegMMX|LLongMem, RegMMX, 0 } }, +{"pmaxub", 2, 0x0fde, X, CpuMMX2,NoSuf|IgnoreSize|Modrm, { RegMMX|LLongMem, RegMMX, 0 } }, {"pmaxub", 2, 0x660fde, X, CpuSSE2,NoSuf|IgnoreSize|Modrm, { RegXMM|LLongMem, RegXMM, 0 } }, -{"pminsw", 2, 0x0fea, X, CpuSSE, NoSuf|IgnoreSize|Modrm, { RegMMX|LLongMem, RegMMX, 0 } }, +{"pminsw", 2, 0x0fea, X, CpuMMX2,NoSuf|IgnoreSize|Modrm, { RegMMX|LLongMem, RegMMX, 0 } }, {"pminsw", 2, 0x660fea, X, CpuSSE2,NoSuf|IgnoreSize|Modrm, { RegXMM|LLongMem, RegXMM, 0 } }, -{"pminub", 2, 0x0fda, X, CpuSSE, NoSuf|IgnoreSize|Modrm, { RegMMX|LLongMem, RegMMX, 0 } }, +{"pminub", 2, 0x0fda, X, CpuMMX2,NoSuf|IgnoreSize|Modrm, { RegMMX|LLongMem, RegMMX, 0 } }, {"pminub", 2, 0x660fda, X, CpuSSE2,NoSuf|IgnoreSize|Modrm, { RegXMM|LLongMem, RegXMM, 0 } }, -{"pmovmskb", 2, 0x0fd7, X, CpuSSE, lq_Suf|IgnoreSize|Modrm, { RegMMX|InvMem, Reg32|Reg64, 0 } }, +{"pmovmskb", 2, 0x0fd7, X, CpuMMX2,lq_Suf|IgnoreSize|Modrm, { RegMMX|InvMem, Reg32|Reg64, 0 } }, {"pmovmskb", 2, 0x660fd7, X, CpuSSE2,lq_Suf|IgnoreSize|Modrm, { RegXMM|InvMem, Reg32|Reg64, 0 } }, -{"pmulhuw", 2, 0x0fe4, X, CpuSSE, NoSuf|IgnoreSize|Modrm, { RegMMX|LLongMem, RegMMX, 0 } }, +{"pmulhuw", 2, 0x0fe4, X, CpuMMX2,NoSuf|IgnoreSize|Modrm, { RegMMX|LLongMem, RegMMX, 0 } }, {"pmulhuw", 2, 0x660fe4, X, CpuSSE2,NoSuf|IgnoreSize|Modrm, { RegXMM|LLongMem, RegXMM, 0 } }, -{"prefetchnta", 1, 0x0f18, 0, CpuSSE, NoSuf|IgnoreSize|Modrm, { LLongMem, 0, 0 } }, -{"prefetcht0", 1, 0x0f18, 1, CpuSSE, NoSuf|IgnoreSize|Modrm, { LLongMem, 0, 0 } }, -{"prefetcht1", 1, 0x0f18, 2, CpuSSE, NoSuf|IgnoreSize|Modrm, { LLongMem, 0, 0 } }, -{"prefetcht2", 1, 0x0f18, 3, CpuSSE, NoSuf|IgnoreSize|Modrm, { LLongMem, 0, 0 } }, -{"psadbw", 2, 0x0ff6, X, CpuSSE, NoSuf|IgnoreSize|Modrm, { RegMMX|LLongMem, RegMMX, 0 } }, +{"prefetchnta", 1, 0x0f18, 0, CpuMMX2,NoSuf|IgnoreSize|Modrm, { LLongMem, 0, 0 } }, +{"prefetcht0", 1, 0x0f18, 1, CpuMMX2,NoSuf|IgnoreSize|Modrm, { LLongMem, 0, 0 } }, +{"prefetcht1", 1, 0x0f18, 2, CpuMMX2,NoSuf|IgnoreSize|Modrm, { LLongMem, 0, 0 } }, +{"prefetcht2", 1, 0x0f18, 3, CpuMMX2,NoSuf|IgnoreSize|Modrm, { LLongMem, 0, 0 } }, +{"psadbw", 2, 0x0ff6, X, CpuMMX2,NoSuf|IgnoreSize|Modrm, { RegMMX|LLongMem, RegMMX, 0 } }, {"psadbw", 2, 0x660ff6, X, CpuSSE2,NoSuf|IgnoreSize|Modrm, { RegXMM|LLongMem, RegXMM, 0 } }, -{"pshufw", 3, 0x0f70, X, CpuSSE, NoSuf|IgnoreSize|Modrm, { Imm8, RegMMX|LLongMem, RegMMX } }, +{"pshufw", 3, 0x0f70, X, CpuMMX2,NoSuf|IgnoreSize|Modrm, { Imm8, RegMMX|LLongMem, RegMMX } }, {"rcpps", 2, 0x0f53, X, CpuSSE, NoSuf|IgnoreSize|Modrm, { RegXMM|LLongMem, RegXMM, 0 } }, {"rcpss", 2, 0xf30f53, X, CpuSSE, NoSuf|IgnoreSize|Modrm, { RegXMM|WordMem, RegXMM, 0 } }, {"rsqrtps", 2, 0x0f52, X, CpuSSE, NoSuf|IgnoreSize|Modrm, { RegXMM|LLongMem, RegXMM, 0 } }, {"rsqrtss", 2, 0xf30f52, X, CpuSSE, NoSuf|IgnoreSize|Modrm, { RegXMM|WordMem, RegXMM, 0 } }, -{"sfence", 0, 0x0fae, 0xf8, CpuSSE, NoSuf|IgnoreSize|ImmExt, { 0, 0, 0 } }, +{"sfence", 0, 0x0fae, 0xf8, CpuMMX2,NoSuf|IgnoreSize|ImmExt, { 0, 0, 0 } }, {"shufps", 3, 0x0fc6, X, CpuSSE, NoSuf|IgnoreSize|Modrm, { Imm8, RegXMM|LLongMem, RegXMM } }, {"sqrtps", 2, 0x0f51, X, CpuSSE, NoSuf|IgnoreSize|Modrm, { RegXMM|LLongMem, RegXMM, 0 } }, {"sqrtss", 2, 0xf30f51, X, CpuSSE, NoSuf|IgnoreSize|Modrm, { RegXMM|WordMem, RegXMM, 0 } }, @@ -1341,7 +1341,7 @@ static const template i386_optab[] = {"femms", 0, 0x0f0e, X, Cpu3dnow, NoSuf, { 0, 0, 0 } }, {"pavgusb", 2, 0x0f0f, 0xbf, Cpu3dnow, NoSuf|IgnoreSize|Modrm|ImmExt, { RegMMX|LongMem, RegMMX, 0 } }, {"pf2id", 2, 0x0f0f, 0x1d, Cpu3dnow, NoSuf|IgnoreSize|Modrm|ImmExt, { RegMMX|LongMem, RegMMX, 0 } }, -{"pf2iw", 2, 0x0f0f, 0x1c, Cpu3dnow|Cpu686,NoSuf|IgnoreSize|Modrm|ImmExt, { RegMMX|LongMem, RegMMX, 0 } }, +{"pf2iw", 2, 0x0f0f, 0x1c, Cpu3dnowA,NoSuf|IgnoreSize|Modrm|ImmExt, { RegMMX|LongMem, RegMMX, 0 } }, {"pfacc", 2, 0x0f0f, 0xae, Cpu3dnow, NoSuf|IgnoreSize|Modrm|ImmExt, { RegMMX|LongMem, RegMMX, 0 } }, {"pfadd", 2, 0x0f0f, 0x9e, Cpu3dnow, NoSuf|IgnoreSize|Modrm|ImmExt, { RegMMX|LongMem, RegMMX, 0 } }, {"pfcmpeq", 2, 0x0f0f, 0xb0, Cpu3dnow, NoSuf|IgnoreSize|Modrm|ImmExt, { RegMMX|LongMem, RegMMX, 0 } }, @@ -1350,8 +1350,8 @@ static const template i386_optab[] = {"pfmax", 2, 0x0f0f, 0xa4, Cpu3dnow, NoSuf|IgnoreSize|Modrm|ImmExt, { RegMMX|LongMem, RegMMX, 0 } }, {"pfmin", 2, 0x0f0f, 0x94, Cpu3dnow, NoSuf|IgnoreSize|Modrm|ImmExt, { RegMMX|LongMem, RegMMX, 0 } }, {"pfmul", 2, 0x0f0f, 0xb4, Cpu3dnow, NoSuf|IgnoreSize|Modrm|ImmExt, { RegMMX|LongMem, RegMMX, 0 } }, -{"pfnacc", 2, 0x0f0f, 0x8a, Cpu3dnow|Cpu686,NoSuf|IgnoreSize|Modrm|ImmExt, { RegMMX|LongMem, RegMMX, 0 } }, -{"pfpnacc", 2, 0x0f0f, 0x8e, Cpu3dnow|Cpu686,NoSuf|IgnoreSize|Modrm|ImmExt, { RegMMX|LongMem, RegMMX, 0 } }, +{"pfnacc", 2, 0x0f0f, 0x8a, Cpu3dnowA,NoSuf|IgnoreSize|Modrm|ImmExt, { RegMMX|LongMem, RegMMX, 0 } }, +{"pfpnacc", 2, 0x0f0f, 0x8e, Cpu3dnowA,NoSuf|IgnoreSize|Modrm|ImmExt, { RegMMX|LongMem, RegMMX, 0 } }, {"pfrcp", 2, 0x0f0f, 0x96, Cpu3dnow, NoSuf|IgnoreSize|Modrm|ImmExt, { RegMMX|LongMem, RegMMX, 0 } }, {"pfrcpit1", 2, 0x0f0f, 0xa6, Cpu3dnow, NoSuf|IgnoreSize|Modrm|ImmExt, { RegMMX|LongMem, RegMMX, 0 } }, {"pfrcpit2", 2, 0x0f0f, 0xb6, Cpu3dnow, NoSuf|IgnoreSize|Modrm|ImmExt, { RegMMX|LongMem, RegMMX, 0 } }, @@ -1360,9 +1360,9 @@ static const template i386_optab[] = {"pfsub", 2, 0x0f0f, 0x9a, Cpu3dnow, NoSuf|IgnoreSize|Modrm|ImmExt, { RegMMX|LongMem, RegMMX, 0 } }, {"pfsubr", 2, 0x0f0f, 0xaa, Cpu3dnow, NoSuf|IgnoreSize|Modrm|ImmExt, { RegMMX|LongMem, RegMMX, 0 } }, {"pi2fd", 2, 0x0f0f, 0x0d, Cpu3dnow, NoSuf|IgnoreSize|Modrm|ImmExt, { RegMMX|LongMem, RegMMX, 0 } }, -{"pi2fw", 2, 0x0f0f, 0x0c, Cpu3dnow|Cpu686,NoSuf|IgnoreSize|Modrm|ImmExt, { RegMMX|LongMem, RegMMX, 0 } }, +{"pi2fw", 2, 0x0f0f, 0x0c, Cpu3dnowA,NoSuf|IgnoreSize|Modrm|ImmExt, { RegMMX|LongMem, RegMMX, 0 } }, {"pmulhrw", 2, 0x0f0f, 0xb7, Cpu3dnow, NoSuf|IgnoreSize|Modrm|ImmExt, { RegMMX|LongMem, RegMMX, 0 } }, -{"pswapd", 2, 0x0f0f, 0xbb, Cpu3dnow|Cpu686,NoSuf|IgnoreSize|Modrm|ImmExt, { RegMMX|LongMem, RegMMX, 0 } }, +{"pswapd", 2, 0x0f0f, 0xbb, Cpu3dnowA,NoSuf|IgnoreSize|Modrm|ImmExt, { RegMMX|LongMem, RegMMX, 0 } }, /* AMD extensions. */ {"syscall", 0, 0x0f05, X, CpuK6, NoSuf, { 0, 0, 0} }, --=__PartAF8F7FD4.1__= Content-Type: application/octet-stream; name="binutils-mainline-x86-cputype.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="binutils-mainline-x86-cputype.patch" Content-length: 29573 VGhpcyBpcyBlYXNpbHkgZml4ZWQsIGFzIGJlbG93L2F0dGFjaGVkLiBCdWls dC90ZXN0ZWQgb24gaTY4Ni1wYy1saW51eC1nbnUKKHRoaXMgdGltZSBhbHNv IGFzIGNyb3NzIGFzc2VtYmxlciB0YXJnZXRpbmcgeDg2XzY0LXVua25vd24t bGludXgtZ251KS4KRGVzcGl0ZSBmaW5kaW5nIHRoaXMgbW9yZSBkZXNpcmFi bGUsIHRvbywgSSBkaWRuJ3Qgb3JpZ2luYWxseSBkYXJlIHRvIG1ha2UKdGhl c2UgZXJyb3JzIGJlY2F1c2UgdGhleSB3ZXJlbid0IGJlZm9yZS4KCkphbgpn YXMvCjIwMDQtMTEtMTggSmFuIEJldWxpY2ggPGpiZXVsaWNoQG5vdmVsbC5j b20+CgoJKiBjb25maWcvdGMtaTM4Ni5oIChDcHVNTVgyKTogRGVjbGFyZS4g QXJ0aWZpY2lhbCBjbGFzc2lmaWVyIHRvCglpbmRpY2F0ZSB0aGUgTU1YIGV4 dGVuc2lvbnMgYWRkZWQgYnkgYm90aCBTU0UgYW5kIDNETm93IUEuCgkoQ3B1 M2Rub3dBKTogRGVjbGFyZS4KCShDcHVVbmtub3duRmxhZ3MpOiBVcGRhdGUu CgkqIGNvbmZpZy90Yy1pMzg2LmMgKGNwdV9zdWJfYXJjaF9uYW1lKTogRGVj bGFyZS4KCShjcHVfYXJjaCk6IGk1ODYgYW5kIHBlbnRpdW0gZG8gbm90IGlt cGx5IE1NWC4gaTY4NiBhbmQgcGVudGl1bXBybyBkbwoJbmVpdGhlciBpbXBs eSBTU0Ugbm9yIE1NWC4gazYgaW1wbGllcyBNTVguIGs2XzIgYWRkaXRpb25h bGx5IGltcGxpZXMKCTNETm93IS4gQXRobG9uIGFkZGl0aW9uYWxseSBpbXBs aWVzIDNETm93IUEuIFNldmVyYWwgbmV3CgllbnRyaWVzICh0aG9zZSBzdGFy dGluZyB3aXRoIGEgZG90IGFyZSBmb3Igc3ViLWFyY2ggc3BlY2lmaWNhdGlv bikuCgkoc2V0X2NwdV9hcmNoKTogSGFuZGxlIHN1Yi1hcmNoIHNwZWNpZmlj YXRpb25zLgoJKHBhcnNlX2luc24pOiBEaXN0aW5ndWlzaCBiZXR3ZWVuIGlu c3RydWN0aW9ucyBub3Qgc3VwcG9ydGVkIGJlY2F1c2UKCW9mIGluc3VmZmlj aWVudCBDUFUgZmVhdHVyZXMgYW5kIGJlY2F1c2Ugb2YgNjQtYml0IG1vZGUu CgkqIGRvYy9jLWkzODYudGV4aTogRGVzY3JpYmUgZW5oYW5jZWQgLmFyY2gg ZGlyZWN0aXZlLgoKaW5jbHVkZS9vcGNvZGUvCjIwMDQtMTEtMTggSmFuIEJl dWxpY2ggPGpiZXVsaWNoQG5vdmVsbC5jb20+CgoJKiBpMzg2LmggKGkzODZf b3B0YWIpOiBwYWRkcSBhbmQgcHN1YnEsIGV2ZW4gaW4gdGhlaXIgTU1YIGZv cm0sIGFyZQoJYXZhaWxhYmxlIG9ubHkgd2l0aCBTU0UyLiBDaGFuZ2UgdGhl IE1NWCBhZGRpdGlvbnMgaW50cm9kdWNlZCBieSBTU0UKCWFuZCAzRE5vdyFB IHRvIENwdU1NWDIgKHJhdGhlciB0aGFuIENwdU1NWCkuIEluZGljYXRlIHRo ZSAzRE5vdyFBCglpbnN0cnVjdGlvbnMgYnkgdGhlaXIgbm93IGRlc2lnbmF0 ZWQgaWRlbnRpZmllciAoc2luY2UgY29tYmluaW5nIGk2ODYKCWFuZCAzRE5v dyEgZG9lcyBub3QgcmVhbGx5IGltcGx5IDNETm93IUEpLgoKLS0tIC9ob21l L2piZXVsaWNoL3NyYy9iaW51dGlscy9tYWlubGluZS8yMDA0LTExLTE4LjE1 LjEwL2dhcy9jb25maWcvdGMtaTM4Ni5jCTIwMDQtMTEtMTggMTU6MDU6MzUu MDAwMDAwMDAwICswMTAwCisrKyAyMDA0LTExLTE4LjE1LjEwL2dhcy9jb25m aWcvdGMtaTM4Ni5jCTIwMDQtMTEtMTggMTc6MTk6MjkuODIyNDE2MTUyICsw MTAwCkBAIC0zMTQsNiArMzE0LDcgQEAgc3RhdGljIGludCBxdWlldF93YXJu aW5ncyA9IDA7CiAKIC8qIENQVSBuYW1lLiAgKi8KIHN0YXRpYyBjb25zdCBj aGFyICpjcHVfYXJjaF9uYW1lID0gTlVMTDsKK3N0YXRpYyBjb25zdCBjaGFy ICpjcHVfc3ViX2FyY2hfbmFtZSA9IE5VTEw7CiAKIC8qIENQVSBmZWF0dXJl IGZsYWdzLiAgKi8KIHN0YXRpYyB1bnNpZ25lZCBpbnQgY3B1X2FyY2hfZmxh Z3MgPSBDcHVVbmtub3duRmxhZ3MgfCBDcHVObzY0OwpAQCAtNDE2LDE0ICs0 MTcsMjQgQEAgc3RhdGljIGNvbnN0IGFyY2hfZW50cnkgY3B1X2FyY2hbXSA9 IHsKICAgeyJpMjg2IiwJQ3B1MDg2fENwdTE4NnxDcHUyODYgfSwKICAgeyJp Mzg2IiwJQ3B1MDg2fENwdTE4NnxDcHUyODZ8Q3B1Mzg2IH0sCiAgIHsiaTQ4 NiIsCUNwdTA4NnxDcHUxODZ8Q3B1Mjg2fENwdTM4NnxDcHU0ODYgfSwKLSAg eyJpNTg2IiwJQ3B1MDg2fENwdTE4NnxDcHUyODZ8Q3B1Mzg2fENwdTQ4NnxD cHU1ODZ8Q3B1TU1YIH0sCi0gIHsiaTY4NiIsCUNwdTA4NnxDcHUxODZ8Q3B1 Mjg2fENwdTM4NnxDcHU0ODZ8Q3B1NTg2fENwdTY4NnxDcHVNTVh8Q3B1U1NF IH0sCi0gIHsicGVudGl1bSIsCUNwdTA4NnxDcHUxODZ8Q3B1Mjg2fENwdTM4 NnxDcHU0ODZ8Q3B1NTg2fENwdU1NWCB9LAotICB7InBlbnRpdW1wcm8iLENw dTA4NnxDcHUxODZ8Q3B1Mjg2fENwdTM4NnxDcHU0ODZ8Q3B1NTg2fENwdTY4 NnxDcHVNTVh8Q3B1U1NFIH0sCi0gIHsicGVudGl1bTQiLAlDcHUwODZ8Q3B1 MTg2fENwdTI4NnxDcHUzODZ8Q3B1NDg2fENwdTU4NnxDcHU2ODZ8Q3B1UDR8 Q3B1TU1YfENwdVNTRXxDcHVTU0UyIH0sCi0gIHsiazYiLAlDcHUwODZ8Q3B1 MTg2fENwdTI4NnxDcHUzODZ8Q3B1NDg2fENwdTU4NnxDcHVLNnxDcHVNTVh8 Q3B1M2Rub3cgfSwKLSAgeyJhdGhsb24iLAlDcHUwODZ8Q3B1MTg2fENwdTI4 NnxDcHUzODZ8Q3B1NDg2fENwdTU4NnxDcHU2ODZ8Q3B1SzZ8Q3B1QXRobG9u fENwdU1NWHxDcHUzZG5vdyB9LAotICB7InNsZWRnZWhhbW1lciIsQ3B1MDg2 fENwdTE4NnxDcHUyODZ8Q3B1Mzg2fENwdTQ4NnxDcHU1ODZ8Q3B1Njg2fENw dUs2fENwdUF0aGxvbnxDcHVTbGVkZ2VoYW1tZXJ8Q3B1TU1YfENwdTNkbm93 fENwdVNTRXxDcHVTU0UyIH0sCisgIHsiaTU4NiIsCUNwdTA4NnxDcHUxODZ8 Q3B1Mjg2fENwdTM4NnxDcHU0ODZ8Q3B1NTg2IH0sCisgIHsiaTY4NiIsCUNw dTA4NnxDcHUxODZ8Q3B1Mjg2fENwdTM4NnxDcHU0ODZ8Q3B1NTg2fENwdTY4 NiB9LAorICB7InBlbnRpdW0iLAlDcHUwODZ8Q3B1MTg2fENwdTI4NnxDcHUz ODZ8Q3B1NDg2fENwdTU4NiB9LAorICB7InBlbnRpdW1wcm8iLENwdTA4NnxD cHUxODZ8Q3B1Mjg2fENwdTM4NnxDcHU0ODZ8Q3B1NTg2fENwdTY4NiB9LAor ICB7InBlbnRpdW1paSIsCUNwdTA4NnxDcHUxODZ8Q3B1Mjg2fENwdTM4NnxD cHU0ODZ8Q3B1NTg2fENwdTY4NnxDcHVNTVggfSwKKyAgeyJwZW50aXVtaWlp IixDcHUwODZ8Q3B1MTg2fENwdTI4NnxDcHUzODZ8Q3B1NDg2fENwdTU4NnxD cHU2ODZ8Q3B1TU1YfENwdU1NWDJ8Q3B1U1NFIH0sCisgIHsicGVudGl1bTQi LAlDcHUwODZ8Q3B1MTg2fENwdTI4NnxDcHUzODZ8Q3B1NDg2fENwdTU4NnxD cHU2ODZ8Q3B1UDR8Q3B1TU1YfENwdU1NWDJ8Q3B1U1NFfENwdVNTRTIgfSwK KyAgeyJwcmVzY290dCIsCUNwdTA4NnxDcHUxODZ8Q3B1Mjg2fENwdTM4NnxD cHU0ODZ8Q3B1NTg2fENwdTY4NnxDcHVQNHxDcHVNTVh8Q3B1TU1YMnxDcHVT U0V8Q3B1U1NFMnxDcHVQTkkgfSwKKyAgeyJrNiIsCUNwdTA4NnxDcHUxODZ8 Q3B1Mjg2fENwdTM4NnxDcHU0ODZ8Q3B1NTg2fENwdUs2fENwdU1NWCB9LAor ICB7Ims2XzIiLAlDcHUwODZ8Q3B1MTg2fENwdTI4NnxDcHUzODZ8Q3B1NDg2 fENwdTU4NnxDcHVLNnxDcHVNTVh8Q3B1M2Rub3cgfSwKKyAgeyJhdGhsb24i LAlDcHUwODZ8Q3B1MTg2fENwdTI4NnxDcHUzODZ8Q3B1NDg2fENwdTU4NnxD cHU2ODZ8Q3B1SzZ8Q3B1QXRobG9ufENwdU1NWHxDcHVNTVgyfENwdTNkbm93 fENwdTNkbm93QSB9LAorICB7InNsZWRnZWhhbW1lciIsQ3B1MDg2fENwdTE4 NnxDcHUyODZ8Q3B1Mzg2fENwdTQ4NnxDcHU1ODZ8Q3B1Njg2fENwdUs2fENw dUF0aGxvbnxDcHVTbGVkZ2VoYW1tZXJ8Q3B1TU1YfENwdU1NWDJ8Q3B1M2Ru b3d8Q3B1M2Rub3dBfENwdVNTRXxDcHVTU0UyIH0sCisgIHsiLm1teCIsCUNw dU1NWCB9LAorICB7Ii5zc2UiLAlDcHVNTVh8Q3B1TU1YMnxDcHVTU0UgfSwK KyAgeyIuc3NlMiIsCUNwdU1NWHxDcHVNTVgyfENwdVNTRXxDcHVTU0UyIH0s CisgIHsiLjNkbm93IiwJQ3B1TU1YfENwdTNkbm93IH0sCisgIHsiLjNkbm93 YSIsCUNwdU1NWHxDcHVNTVgyfENwdTNkbm93fENwdTNkbm93QSB9LAorICB7 Ii5wYWRsb2NrIiwJQ3B1UGFkTG9jayB9LAogICB7TlVMTCwgMCB9CiB9Owog CkBAIC04MzYsMTAgKzg0NywyMiBAQCBzZXRfY3B1X2FyY2ggKGR1bW15KQog CXsKIAkgIGlmIChzdHJjbXAgKHN0cmluZywgY3B1X2FyY2hbaV0ubmFtZSkg PT0gMCkKIAkgICAgewotCSAgICAgIGNwdV9hcmNoX25hbWUgPSBjcHVfYXJj aFtpXS5uYW1lOwotCSAgICAgIGNwdV9hcmNoX2ZsYWdzID0gKGNwdV9hcmNo W2ldLmZsYWdzCi0JCQkJfCAoZmxhZ19jb2RlID09IENPREVfNjRCSVQgPyBD cHU2NCA6IENwdU5vNjQpKTsKLQkgICAgICBicmVhazsKKwkgICAgICBpZiAo KnN0cmluZyAhPSAnLicpCisJCXsKKwkJICBjcHVfYXJjaF9uYW1lID0gY3B1 X2FyY2hbaV0ubmFtZTsKKwkJICBjcHVfc3ViX2FyY2hfbmFtZSA9IE5VTEw7 CisJCSAgY3B1X2FyY2hfZmxhZ3MgPSAoY3B1X2FyY2hbaV0uZmxhZ3MKKwkJ CQkgICAgfCAoZmxhZ19jb2RlID09IENPREVfNjRCSVQgPyBDcHU2NCA6IENw dU5vNjQpKTsKKwkJICBicmVhazsKKwkJfQorCSAgICAgIGlmICgoY3B1X2Fy Y2hfZmxhZ3MgfCBjcHVfYXJjaFtpXS5mbGFncykgIT0gY3B1X2FyY2hfZmxh Z3MpCisJCXsKKwkJICBjcHVfc3ViX2FyY2hfbmFtZSA9IGNwdV9hcmNoW2ld Lm5hbWU7CisJCSAgY3B1X2FyY2hfZmxhZ3MgfD0gY3B1X2FyY2hbaV0uZmxh Z3M7CisJCX0KKwkgICAgICAqaW5wdXRfbGluZV9wb2ludGVyID0gZTsKKwkg ICAgICBkZW1hbmRfZW1wdHlfcmVzdF9vZl9saW5lICgpOworCSAgICAgIHJl dHVybjsKIAkgICAgfQogCX0KICAgICAgIGlmICghY3B1X2FyY2hbaV0ubmFt ZSkKQEAgLTE1NjEsNiArMTU4NCw4IEBAIHBhcnNlX2luc24gKGxpbmUsIG1u ZW1vbmljKQogICBjaGFyICpsID0gbGluZTsKICAgY2hhciAqdG9rZW5fc3Rh cnQgPSBsOwogICBjaGFyICptbmVtX3A7CisgIGludCBzdXBwb3J0ZWQ7Cisg IGNvbnN0IHRlbXBsYXRlICp0OwogCiAgIC8qIE5vbi16ZXJvIGlmIHdlIGZv dW5kIGEgcHJlZml4IG9ubHkgYWNjZXB0YWJsZSB3aXRoIHN0cmluZyBpbnNu cy4gICovCiAgIGNvbnN0IGNoYXIgKmV4cGVjdGluZ19zdHJpbmdfaW5zdHJ1 Y3Rpb24gPSBOVUxMOwpAQCAtMTcwOSwxMSArMTczNCwyOSBAQCBwYXJzZV9p bnNuIChsaW5lLCBtbmVtb25pYykKICAgICB9CiAKICAgLyogQ2hlY2sgaWYg aW5zdHJ1Y3Rpb24gaXMgc3VwcG9ydGVkIG9uIHNwZWNpZmllZCBhcmNoaXRl Y3R1cmUuICAqLwotICBpZiAoKGN1cnJlbnRfdGVtcGxhdGVzLT5zdGFydC0+ Y3B1X2ZsYWdzICYgfihDcHU2NCB8IENwdU5vNjQpKQotICAgICAgJiB+KGNw dV9hcmNoX2ZsYWdzICYgfihDcHU2NCB8IENwdU5vNjQpKSkKKyAgc3VwcG9y dGVkID0gMDsKKyAgZm9yICh0ID0gY3VycmVudF90ZW1wbGF0ZXMtPnN0YXJ0 OyB0IDwgY3VycmVudF90ZW1wbGF0ZXMtPmVuZDsgKyt0KQorICAgIHsKKyAg ICAgIGlmICghKCh0LT5jcHVfZmxhZ3MgJiB+KENwdTY0IHwgQ3B1Tm82NCkp CisJICAgICYgfihjcHVfYXJjaF9mbGFncyAmIH4oQ3B1NjQgfCBDcHVObzY0 KSkpKQorCSAgc3VwcG9ydGVkIHw9IDE7CisgICAgICBpZiAoISh0LT5jcHVf ZmxhZ3MgJiAoZmxhZ19jb2RlID09IENPREVfNjRCSVQgPyBDcHVObzY0IDog Q3B1NjQpKSkKKwkgIHN1cHBvcnRlZCB8PSAyOworICAgIH0KKyAgaWYgKCEo c3VwcG9ydGVkICYgMikpCisgICAgeworICAgICAgYXNfYmFkIChmbGFnX2Nv ZGUgPT0gQ09ERV82NEJJVAorCSAgICAgID8gXygiYCVzJyBpcyBub3Qgc3Vw cG9ydGVkIGluIDY0LWJpdCBtb2RlIikKKwkgICAgICA6IF8oImAlcycgaXMg b25seSBzdXBwb3J0ZWQgaW4gNjQtYml0IG1vZGUiKSwKKwkgICAgICBjdXJy ZW50X3RlbXBsYXRlcy0+c3RhcnQtPm5hbWUpOworICAgICAgcmV0dXJuIE5V TEw7CisgICAgfQorICBpZiAoIShzdXBwb3J0ZWQgJiAxKSkKICAgICB7Ci0g ICAgICBhc193YXJuIChfKCJgJXMnIGlzIG5vdCBzdXBwb3J0ZWQgb24gYCVz JyIpLAotCSAgICAgICBjdXJyZW50X3RlbXBsYXRlcy0+c3RhcnQtPm5hbWUs IGNwdV9hcmNoX25hbWUpOworICAgICAgYXNfd2FybiAoXygiYCVzJyBpcyBu b3Qgc3VwcG9ydGVkIG9uIGAlcyVzJyIpLAorCSAgICAgICBjdXJyZW50X3Rl bXBsYXRlcy0+c3RhcnQtPm5hbWUsCisJICAgICAgIGNwdV9hcmNoX25hbWUs CisJICAgICAgIGNwdV9zdWJfYXJjaF9uYW1lID8gY3B1X3N1Yl9hcmNoX25h bWUgOiAiIik7CiAgICAgfQogICBlbHNlIGlmICgoQ3B1Mzg2ICYgfmNwdV9h cmNoX2ZsYWdzKSAmJiAoZmxhZ19jb2RlICE9IENPREVfMTZCSVQpKQogICAg IHsKLS0tIC9ob21lL2piZXVsaWNoL3NyYy9iaW51dGlscy9tYWlubGluZS8y MDA0LTExLTE4LjE1LjEwL2dhcy9jb25maWcvdGMtaTM4Ni5oCTIwMDQtMTEt MDIgMTc6MzQ6MDguMDAwMDAwMDAwICswMTAwCisrKyAyMDA0LTExLTE4LjE1 LjEwL2dhcy9jb25maWcvdGMtaTM4Ni5oCTIwMDQtMTEtMDQgMTA6NDY6NTUu MDAwMDAwMDAwICswMTAwCkBAIC0xNzQsMTggKzE3NCwyMCBAQCB0eXBlZGVm IHN0cnVjdAogI2RlZmluZSBDcHVBdGhsb24JMHgyMDAJLyogQU1EIEF0aGxv biBvciBiZXR0ZXIgcmVxdWlyZWQqLwogI2RlZmluZSBDcHVTbGVkZ2VoYW1t ZXIgMHg0MDAJLyogU2xlZGdlaGFtbWVyIG9yIGJldHRlciByZXF1aXJlZCAq LwogI2RlZmluZSBDcHVNTVgJCTB4ODAwCS8qIE1NWCBzdXBwb3J0IHJlcXVp cmVkICovCi0jZGVmaW5lIENwdVNTRQkgICAgICAgMHgxMDAwCS8qIFN0cmVh bWluZyBTSU1EIGV4dGVuc2lvbnMgcmVxdWlyZWQgKi8KLSNkZWZpbmUgQ3B1 U1NFMgkgICAgICAgMHgyMDAwCS8qIFN0cmVhbWluZyBTSU1EIGV4dGVuc2lv bnMgMiByZXF1aXJlZCAqLwotI2RlZmluZSBDcHUzZG5vdyAgICAgICAweDQw MDAJLyogM2Rub3chIHN1cHBvcnQgcmVxdWlyZWQgKi8KLSNkZWZpbmUgQ3B1 UE5JCSAgICAgICAweDgwMDAJLyogUHJlc2NvdHQgTmV3IEluc3RydWN0aW9u cyByZXF1aXJlZCAqLwotI2RlZmluZSBDcHVQYWRMb2NrICAgIDB4MTAwMDAJ LyogVklBIFBhZExvY2sgcmVxdWlyZWQgKi8KKyNkZWZpbmUgQ3B1TU1YMgkg ICAgICAgMHgxMDAwCS8qIGV4dGVuZGVkIE1NWCBzdXBwb3J0ICh3aXRoIFNT RSBvciAzRE5vdyFFeHQpIHJlcXVpcmVkICovCisjZGVmaW5lIENwdVNTRQkg ICAgICAgMHgyMDAwCS8qIFN0cmVhbWluZyBTSU1EIGV4dGVuc2lvbnMgcmVx dWlyZWQgKi8KKyNkZWZpbmUgQ3B1U1NFMgkgICAgICAgMHg0MDAwCS8qIFN0 cmVhbWluZyBTSU1EIGV4dGVuc2lvbnMgMiByZXF1aXJlZCAqLworI2RlZmlu ZSBDcHUzZG5vdyAgICAgICAweDgwMDAJLyogM2Rub3chIHN1cHBvcnQgcmVx dWlyZWQgKi8KKyNkZWZpbmUgQ3B1M2Rub3dBICAgICAweDEwMDAwCS8qIDNk bm93IUV4dGVuc2lvbnMgc3VwcG9ydCByZXF1aXJlZCAqLworI2RlZmluZSBD cHVQTkkJICAgICAgMHgyMDAwMAkvKiBQcmVzY290dCBOZXcgSW5zdHJ1Y3Rp b25zIHJlcXVpcmVkICovCisjZGVmaW5lIENwdVBhZExvY2sgICAgMHg0MDAw MAkvKiBWSUEgUGFkTG9jayByZXF1aXJlZCAqLwogCiAgIC8qIFRoZXNlIGZs YWdzIGFyZSBzZXQgYnkgZ2FzIGRlcGVuZGluZyBvbiB0aGUgZmxhZ19jb2Rl LiAgKi8KICNkZWZpbmUgQ3B1NjQJICAgICAweDQwMDAwMDAgICAvKiA2NGJp dCBzdXBwb3J0IHJlcXVpcmVkICAqLwogI2RlZmluZSBDcHVObzY0ICAgICAg MHg4MDAwMDAwICAgLyogTm90IHN1cHBvcnRlZCBpbiB0aGUgNjRiaXQgbW9k ZSAgKi8KIAogICAvKiBUaGUgZGVmYXVsdCB2YWx1ZSBmb3IgdW5rbm93biBD UFVzIC0gZW5hYmxlIGFsbCBmZWF0dXJlcyB0byBhdm9pZCBwcm9ibGVtcy4g ICovCi0jZGVmaW5lIENwdVVua25vd25GbGFncyAoQ3B1MDg2fENwdTE4NnxD cHUyODZ8Q3B1Mzg2fENwdTQ4NnxDcHU1ODZ8Q3B1Njg2fENwdVA0fENwdVNs ZWRnZWhhbW1lcnxDcHVNTVh8Q3B1U1NFfENwdVNTRTJ8Q3B1UE5JfENwdTNk bm93fENwdUs2fENwdUF0aGxvbnxDcHVQYWRMb2NrKQorI2RlZmluZSBDcHVV bmtub3duRmxhZ3MgKENwdTA4NnxDcHUxODZ8Q3B1Mjg2fENwdTM4NnxDcHU0 ODZ8Q3B1NTg2fENwdTY4NnxDcHVQNHxDcHVTbGVkZ2VoYW1tZXJ8Q3B1TU1Y fENwdU1NWDJ8Q3B1U1NFfENwdVNTRTJ8Q3B1UE5JfENwdTNkbm93fENwdTNk bm93QXxDcHVLNnxDcHVBdGhsb258Q3B1UGFkTG9jaykKIAogICAvKiB0aGUg Yml0cyBpbiBvcGNvZGVfbW9kaWZpZXIgYXJlIHVzZWQgdG8gZ2VuZXJhdGUg dGhlIGZpbmFsIG9wY29kZSBmcm9tCiAgICAgIHRoZSBiYXNlX29wY29kZS4g IFRoZXNlIGJpdHMgYWxzbyBhcmUgdXNlZCB0byBkZXRlY3QgYWx0ZXJuYXRl IGZvcm1zIG9mCi0tLSAvaG9tZS9qYmV1bGljaC9zcmMvYmludXRpbHMvbWFp bmxpbmUvMjAwNC0xMS0xOC4xNS4xMC9nYXMvZG9jL2MtaTM4Ni50ZXhpCTIw MDQtMTAtMDYgMDk6MzU6NTAuMDAwMDAwMDAwICswMjAwCisrKyAyMDA0LTEx LTE4LjE1LjEwL2dhcy9kb2MvYy1pMzg2LnRleGkJMjAwNC0xMS0wNCAxMDo0 Njo1NS4wMDAwMDAwMDAgKzAxMDAKQEAgLTY5MSwxNSArNjkxLDE2IEBAIHJl Z2lzdGVyIGlzIEBzYW1weyVzdChpKX0uCiBAY2luZGV4IHg4Ni02NCBhcmNo IGRpcmVjdGl2ZQogCiBAY29kZXtAdmFsdWV7QVN9fSBtYXkgYmUgdG9sZCB0 byBhc3NlbWJsZSBmb3IgYSBwYXJ0aWN1bGFyIENQVQotYXJjaGl0ZWN0dXJl IHdpdGggdGhlIEBjb2Rley5hcmNoIEB2YXJ7Y3B1X3R5cGV9fSBkaXJlY3Rp dmUuICBUaGlzCisoc3ViLSlhcmNoaXRlY3R1cmUgd2l0aCB0aGUgQGNvZGV7 LmFyY2ggQHZhcntjcHVfdHlwZX19IGRpcmVjdGl2ZS4gIFRoaXMKIGRpcmVj dGl2ZSBlbmFibGVzIGEgd2FybmluZyB3aGVuIGdhcyBkZXRlY3RzIGFuIGlu c3RydWN0aW9uIHRoYXQgaXMgbm90CiBzdXBwb3J0ZWQgb24gdGhlIENQVSBz cGVjaWZpZWQuICBUaGUgY2hvaWNlcyBmb3IgQHZhcntjcHVfdHlwZX0gYXJl OgogCiBAbXVsdGl0YWJsZSBAY29sdW1uZnJhY3Rpb25zIC4yMCAuMjAgLjIw IC4yMAogQGl0ZW0gQHNhbXB7aTgwODZ9IEB0YWIgQHNhbXB7aTE4Nn0gQHRh YiBAc2FtcHtpMjg2fSBAdGFiIEBzYW1we2kzODZ9CiBAaXRlbSBAc2FtcHtp NDg2fSBAdGFiIEBzYW1we2k1ODZ9IEB0YWIgQHNhbXB7aTY4Nn0gQHRhYiBA c2FtcHtwZW50aXVtfQotQGl0ZW0gQHNhbXB7cGVudGl1bXByb30gQHRhYiBA c2FtcHtwZW50aXVtNH0gQHRhYiBAc2FtcHtrNn0gQHRhYiBAc2FtcHthdGhs b259Ci1AaXRlbSBAc2FtcHtzbGVkZ2VoYW1tZXJ9CitAaXRlbSBAc2FtcHtw ZW50aXVtcHJvfSBAdGFiIEBzYW1we3BlbnRpdW1paX0gQHRhYiBAc2FtcHtw ZW50aXVtaWlpfSBAdGFiIEBzYW1we3BlbnRpdW00fQorQGl0ZW0gQHNhbXB7 azZ9IEB0YWIgQHNhbXB7YXRobG9ufSBAc2FtcHtzbGVkZ2VoYW1tZXJ9CitA aXRlbSBAc2FtcHsubW14fSBAc2FtcHsuc3NlfSBAc2FtcHsuc3NlMn0gQHNh bXB7LjNkbm93fQogQGVuZCBtdWx0aXRhYmxlCiAKIEFwYXJ0IGZyb20gdGhl IHdhcm5pbmcsIHRoZXJlIGFyZSBvbmx5IHR3byBvdGhlciBlZmZlY3RzIG9u CkBAIC03MTUsMTMgKzcxNiwxNCBAQCBjb25kaXRpb25hbCBqdW1wcyB3aWxs IGJlIHByb21vdGVkIHdoZW4gCiBzZXF1ZW5jZSBjb25zaXN0aW5nIG9mIGEg Y29uZGl0aW9uYWwganVtcCBvZiB0aGUgb3Bwb3NpdGUgc2Vuc2UgYXJvdW5k CiBhbiB1bmNvbmRpdGlvbmFsIGp1bXAgdG8gdGhlIHRhcmdldC4KIAotRm9s bG93aW5nIHRoZSBDUFUgYXJjaGl0ZWN0dXJlLCB5b3UgbWF5IHNwZWNpZnkg QHNhbXB7anVtcHN9IG9yCi1Ac2FtcHtub2p1bXBzfSB0byBjb250cm9sIGF1 dG9tYXRpYyBwcm9tb3Rpb24gb2YgY29uZGl0aW9uYWwganVtcHMuCi1Ac2Ft cHtqdW1wc30gaXMgdGhlIGRlZmF1bHQsIGFuZCBlbmFibGVzIGp1bXAgcHJv bW90aW9uOyAgQWxsIGV4dGVybmFsCi1qdW1wcyB3aWxsIGJlIG9mIHRoZSBs b25nIHZhcmlldHksIGFuZCBmaWxlLWxvY2FsIGp1bXBzIHdpbGwgYmUgcHJv bW90ZWQKLWFzIG5lY2Vzc2FyeS4gIChAcHhyZWZ7aTM4Ni1KdW1wc30pICBA c2FtcHtub2p1bXBzfSBsZWF2ZXMgZXh0ZXJuYWwKLWNvbmRpdGlvbmFsIGp1 bXBzIGFzIGJ5dGUgb2Zmc2V0IGp1bXBzLCBhbmQgd2FybnMgYWJvdXQgZmls ZS1sb2NhbAotY29uZGl0aW9uYWwganVtcHMgdGhhdCBAY29kZXtAdmFsdWV7 QVN9fSBwcm9tb3Rlcy4KK0ZvbGxvd2luZyB0aGUgQ1BVIGFyY2hpdGVjdHVy ZSAoYnV0IG5vdCBhIHN1Yi1hcmNoaXRlY3R1cmUsIHdoaWNoIGFyZSB0aG9z ZQorc3RhcnRpbmcgd2l0aCBhIGRvdCksIHlvdSBtYXkgc3BlY2lmeSBAc2Ft cHtqdW1wc30gb3IgQHNhbXB7bm9qdW1wc30gdG8KK2NvbnRyb2wgYXV0b21h dGljIHByb21vdGlvbiBvZiBjb25kaXRpb25hbCBqdW1wcy4gQHNhbXB7anVt cHN9IGlzIHRoZQorZGVmYXVsdCwgYW5kIGVuYWJsZXMganVtcCBwcm9tb3Rp b247ICBBbGwgZXh0ZXJuYWwganVtcHMgd2lsbCBiZSBvZiB0aGUgbG9uZwor dmFyaWV0eSwgYW5kIGZpbGUtbG9jYWwganVtcHMgd2lsbCBiZSBwcm9tb3Rl ZCBhcyBuZWNlc3NhcnkuCisoQHB4cmVme2kzODYtSnVtcHN9KSAgQHNhbXB7 bm9qdW1wc30gbGVhdmVzIGV4dGVybmFsIGNvbmRpdGlvbmFsIGp1bXBzIGFz CitieXRlIG9mZnNldCBqdW1wcywgYW5kIHdhcm5zIGFib3V0IGZpbGUtbG9j YWwgY29uZGl0aW9uYWwganVtcHMgdGhhdAorQGNvZGV7QHZhbHVle0FTfX0g cHJvbW90ZXMuCiBVbmNvbmRpdGlvbmFsIGp1bXBzIGFyZSB0cmVhdGVkIGFz IGZvciBAc2FtcHtqdW1wc30uCiAKIEZvciBleGFtcGxlCi0tLSAvaG9tZS9q YmV1bGljaC9zcmMvYmludXRpbHMvbWFpbmxpbmUvMjAwNC0xMS0xOC4xNS4x MC9pbmNsdWRlL29wY29kZS9pMzg2LmgJMjAwNC0xMS0xOCAxNTowNjo0NS4w MDAwMDAwMDAgKzAxMDAKKysrIDIwMDQtMTEtMTguMTUuMTAvaW5jbHVkZS9v cGNvZGUvaTM4Ni5oCTIwMDQtMTEtMTggMTc6MDU6MzQuMTE3NDYyNjE2ICsw MTAwCkBAIC0xMDIwLDcgKzEwMjAsNyBAQCBzdGF0aWMgY29uc3QgdGVtcGxh dGUgaTM4Nl9vcHRhYltdID0KIHsicGFkZHciLCAgICAyLCAweDY2MGZmZCxY LENwdVNTRTIsTm9TdWZ8SWdub3JlU2l6ZXxNb2RybSwJCXsgUmVnWE1NfExM b25nTWVtLCBSZWdYTU0sIDAgfSB9LAogeyJwYWRkZCIsICAgIDIsIDB4MGZm ZSwgWCwgQ3B1TU1YLCBOb1N1ZnxJZ25vcmVTaXplfE1vZHJtLAkJeyBSZWdN TVh8TG9uZ01lbSwgUmVnTU1YLCAwIH0gfSwKIHsicGFkZGQiLCAgICAyLCAw eDY2MGZmZSxYLENwdVNTRTIsTm9TdWZ8SWdub3JlU2l6ZXxNb2RybSwJCXsg UmVnWE1NfExMb25nTWVtLCBSZWdYTU0sIDAgfSB9LAoteyJwYWRkcSIsICAg IDIsIDB4MGZkNCwgWCwgQ3B1TU1YLCBOb1N1ZnxJZ25vcmVTaXplfE1vZHJt LAkJeyBSZWdNTVh8TExvbmdNZW0sIFJlZ01NWCwgMCB9IH0sCit7InBhZGRx IiwgICAgMiwgMHgwZmQ0LCBYLCBDcHVTU0UyLE5vU3VmfElnbm9yZVNpemV8 TW9kcm0sCQl7IFJlZ01NWHxMTG9uZ01lbSwgUmVnTU1YLCAwIH0gfSwKIHsi cGFkZHEiLCAgICAyLCAweDY2MGZkNCxYLENwdVNTRTIsTm9TdWZ8SWdub3Jl U2l6ZXxNb2RybSwJCXsgUmVnWE1NfExMb25nTWVtLCBSZWdYTU0sIDAgfSB9 LAogeyJwYWRkc2IiLCAgIDIsIDB4MGZlYywgWCwgQ3B1TU1YLCBOb1N1ZnxJ Z25vcmVTaXplfE1vZHJtLAkJeyBSZWdNTVh8TG9uZ01lbSwgUmVnTU1YLCAw IH0gfSwKIHsicGFkZHNiIiwgICAyLCAweDY2MGZlYyxYLENwdVNTRTIsTm9T dWZ8SWdub3JlU2l6ZXxNb2RybSwJCXsgUmVnWE1NfExMb25nTWVtLCBSZWdY TU0sIDAgfSB9LApAQCAtMTE1MSw3ICsxMTUxLDcgQEAgc3RhdGljIGNvbnN0 IHRlbXBsYXRlIGkzODZfb3B0YWJbXSA9CiB7ImRpdnBzIiwgICAgIDIsIDB4 MGY1ZSwgICAgWCwgQ3B1U1NFLCBOb1N1ZnxJZ25vcmVTaXplfE1vZHJtLAl7 IFJlZ1hNTXxMTG9uZ01lbSwgUmVnWE1NLCAwIH0gfSwKIHsiZGl2c3MiLCAg ICAgMiwgMHhmMzBmNWUsICBYLCBDcHVTU0UsIE5vU3VmfElnbm9yZVNpemV8 TW9kcm0sCXsgUmVnWE1NfFdvcmRNZW0sIFJlZ1hNTSwgMCB9IH0sCiB7Imxk bXhjc3IiLCAgIDEsIDB4MGZhZSwgICAgMiwgQ3B1U1NFLCBOb1N1ZnxJZ25v cmVTaXplfE1vZHJtLCAJeyBXb3JkTWVtLCAwLCAwIH0gfSwKLXsibWFza21v dnEiLCAgMiwgMHgwZmY3LCAgICBYLCBDcHVTU0UsIE5vU3VmfElnbm9yZVNp emV8TW9kcm0sCXsgUmVnTU1YfEludk1lbSwgUmVnTU1YLCAwIH0gfSwKK3si bWFza21vdnEiLCAgMiwgMHgwZmY3LCAgICBYLCBDcHVNTVgyLE5vU3VmfEln bm9yZVNpemV8TW9kcm0sCXsgUmVnTU1YfEludk1lbSwgUmVnTU1YLCAwIH0g fSwKIHsibWF4cHMiLCAgICAgMiwgMHgwZjVmLCAgICBYLCBDcHVTU0UsIE5v U3VmfElnbm9yZVNpemV8TW9kcm0sCXsgUmVnWE1NfExMb25nTWVtLCBSZWdY TU0sIDAgfSB9LAogeyJtYXhzcyIsICAgICAyLCAweGYzMGY1ZiwgIFgsIENw dVNTRSwgTm9TdWZ8SWdub3JlU2l6ZXxNb2RybSwJeyBSZWdYTU18V29yZE1l bSwgUmVnWE1NLCAwIH0gfSwKIHsibWlucHMiLCAgICAgMiwgMHgwZjVkLCAg ICBYLCBDcHVTU0UsIE5vU3VmfElnbm9yZVNpemV8TW9kcm0sCXsgUmVnWE1N fExMb25nTWVtLCBSZWdYTU0sIDAgfSB9LApAQCAtMTE2Niw3ICsxMTY2LDcg QEAgc3RhdGljIGNvbnN0IHRlbXBsYXRlIGkzODZfb3B0YWJbXSA9CiB7Im1v dmxwcyIsICAgIDIsIDB4MGYxMywgICAgWCwgQ3B1U1NFLCBOb1N1ZnxJZ25v cmVTaXplfE1vZHJtLAl7IFJlZ1hNTSwgTExvbmdNZW0sIDAgfSB9LAogeyJt b3Ztc2twcyIsICAyLCAweDBmNTAsICAgIFgsIENwdVNTRSwgbHFfU3VmfEln bm9yZVNpemV8TW9kcm0sCXsgUmVnWE1NfEludk1lbSwgUmVnMzJ8UmVnNjQs IDAgfSB9LAogeyJtb3ZudHBzIiwgICAyLCAweDBmMmIsICAgIFgsIENwdVNT RSwgTm9TdWZ8SWdub3JlU2l6ZXxNb2RybSwgCXsgUmVnWE1NLCBMTG9uZ01l bSwgMCB9IH0sCi17Im1vdm50cSIsICAgIDIsIDB4MGZlNywgICAgWCwgQ3B1 U1NFLCBOb1N1ZnxJZ25vcmVTaXplfE1vZHJtLCAJeyBSZWdNTVgsIExMb25n TWVtLCAwIH0gfSwKK3sibW92bnRxIiwgICAgMiwgMHgwZmU3LCAgICBYLCBD cHVNTVgyLE5vU3VmfElnbm9yZVNpemV8TW9kcm0sIAl7IFJlZ01NWCwgTExv bmdNZW0sIDAgfSB9LAogeyJtb3ZudGRxIiwgICAyLCAweDY2MGZlNywgIFgs IENwdVNTRTIsTm9TdWZ8SWdub3JlU2l6ZXxNb2RybSwgCXsgUmVnWE1NLCBM TG9uZ01lbSwgMCB9IH0sCiB7Im1vdnNzIiwgICAgIDIsIDB4ZjMwZjEwLCAg WCwgQ3B1U1NFLCBOb1N1ZnxJZ25vcmVTaXplfE1vZHJtLAl7IFJlZ1hNTXxX b3JkTWVtLCBSZWdYTU0sIDAgfSB9LAogeyJtb3ZzcyIsICAgICAyLCAweGYz MGYxMSwgIFgsIENwdVNTRSwgTm9TdWZ8SWdub3JlU2l6ZXxNb2RybSwJeyBS ZWdYTU0sIFJlZ1hNTXxXb3JkTWVtLCAwIH0gfSwKQEAgLTExNzUsMzggKzEx NzUsMzggQEAgc3RhdGljIGNvbnN0IHRlbXBsYXRlIGkzODZfb3B0YWJbXSA9 CiB7Im11bHBzIiwgICAgIDIsIDB4MGY1OSwgICAgWCwgQ3B1U1NFLCBOb1N1 ZnxJZ25vcmVTaXplfE1vZHJtLAl7IFJlZ1hNTXxMTG9uZ01lbSwgUmVnWE1N LCAwIH0gfSwKIHsibXVsc3MiLCAgICAgMiwgMHhmMzBmNTksICBYLCBDcHVT U0UsIE5vU3VmfElnbm9yZVNpemV8TW9kcm0sCXsgUmVnWE1NfFdvcmRNZW0s IFJlZ1hNTSwgMCB9IH0sCiB7Im9ycHMiLCAgICAgIDIsIDB4MGY1NiwgICAg WCwgQ3B1U1NFLCBOb1N1ZnxJZ25vcmVTaXplfE1vZHJtLAl7IFJlZ1hNTXxM TG9uZ01lbSwgUmVnWE1NLCAwIH0gfSwKLXsicGF2Z2IiLCAgICAgMiwgMHgw ZmUwLCAgICBYLCBDcHVTU0UsIE5vU3VmfElnbm9yZVNpemV8TW9kcm0sCXsg UmVnTU1YfExMb25nTWVtLCBSZWdNTVgsIDAgfSB9LAoreyJwYXZnYiIsICAg ICAyLCAweDBmZTAsICAgIFgsIENwdU1NWDIsTm9TdWZ8SWdub3JlU2l6ZXxN b2RybSwJeyBSZWdNTVh8TExvbmdNZW0sIFJlZ01NWCwgMCB9IH0sCiB7InBh dmdiIiwgICAgIDIsIDB4NjYwZmUwLCAgWCwgQ3B1U1NFMixOb1N1ZnxJZ25v cmVTaXplfE1vZHJtLAl7IFJlZ1hNTXxMTG9uZ01lbSwgUmVnWE1NLCAwIH0g fSwKLXsicGF2Z3ciLCAgICAgMiwgMHgwZmUzLCAgICBYLCBDcHVTU0UsIE5v U3VmfElnbm9yZVNpemV8TW9kcm0sCXsgUmVnTU1YfExMb25nTWVtLCBSZWdN TVgsIDAgfSB9LAoreyJwYXZndyIsICAgICAyLCAweDBmZTMsICAgIFgsIENw dU1NWDIsTm9TdWZ8SWdub3JlU2l6ZXxNb2RybSwJeyBSZWdNTVh8TExvbmdN ZW0sIFJlZ01NWCwgMCB9IH0sCiB7InBhdmd3IiwgICAgIDIsIDB4NjYwZmUz LCAgWCwgQ3B1U1NFMixOb1N1ZnxJZ25vcmVTaXplfE1vZHJtLAl7IFJlZ1hN TXxMTG9uZ01lbSwgUmVnWE1NLCAwIH0gfSwKLXsicGV4dHJ3IiwgICAgMywg MHgwZmM1LCAgICBYLCBDcHVTU0UsIGxxX1N1ZnxJZ25vcmVTaXplfE1vZHJt LAl7IEltbTgsIFJlZ01NWHxJbnZNZW0sIFJlZzMyfFJlZzY0IH0gfSwKK3si cGV4dHJ3IiwgICAgMywgMHgwZmM1LCAgICBYLCBDcHVNTVgyLGxxX1N1ZnxJ Z25vcmVTaXplfE1vZHJtLAl7IEltbTgsIFJlZ01NWHxJbnZNZW0sIFJlZzMy fFJlZzY0IH0gfSwKIHsicGV4dHJ3IiwgICAgMywgMHg2NjBmYzUsICBYLCBD cHVTU0UyLGxxX1N1ZnxJZ25vcmVTaXplfE1vZHJtLAl7IEltbTgsIFJlZ1hN TXxJbnZNZW0sIFJlZzMyfFJlZzY0IH0gfSwKLXsicGluc3J3IiwgICAgMywg MHgwZmM0LCAgICBYLCBDcHVTU0UsIGxxX1N1ZnxJZ25vcmVTaXplfE1vZHJt LAl7IEltbTgsIFJlZzMyfFJlZzY0fFNob3J0TWVtLCBSZWdNTVggfSB9LAor eyJwaW5zcnciLCAgICAzLCAweDBmYzQsICAgIFgsIENwdU1NWDIsbHFfU3Vm fElnbm9yZVNpemV8TW9kcm0sCXsgSW1tOCwgUmVnMzJ8UmVnNjR8U2hvcnRN ZW0sIFJlZ01NWCB9IH0sCiB7InBpbnNydyIsICAgIDMsIDB4NjYwZmM0LCAg WCwgQ3B1U1NFMixscV9TdWZ8SWdub3JlU2l6ZXxNb2RybSwJeyBJbW04LCBS ZWczMnxSZWc2NHxTaG9ydE1lbSwgUmVnWE1NIH0gfSwKLXsicG1heHN3Iiwg ICAgMiwgMHgwZmVlLCAgICBYLCBDcHVTU0UsIE5vU3VmfElnbm9yZVNpemV8 TW9kcm0sCXsgUmVnTU1YfExMb25nTWVtLCBSZWdNTVgsIDAgfSB9LAoreyJw bWF4c3ciLCAgICAyLCAweDBmZWUsICAgIFgsIENwdU1NWDIsTm9TdWZ8SWdu b3JlU2l6ZXxNb2RybSwJeyBSZWdNTVh8TExvbmdNZW0sIFJlZ01NWCwgMCB9 IH0sCiB7InBtYXhzdyIsICAgIDIsIDB4NjYwZmVlLCAgWCwgQ3B1U1NFMixO b1N1ZnxJZ25vcmVTaXplfE1vZHJtLAl7IFJlZ1hNTXxMTG9uZ01lbSwgUmVn WE1NLCAwIH0gfSwKLXsicG1heHViIiwgICAgMiwgMHgwZmRlLCAgICBYLCBD cHVTU0UsIE5vU3VmfElnbm9yZVNpemV8TW9kcm0sCXsgUmVnTU1YfExMb25n TWVtLCBSZWdNTVgsIDAgfSB9LAoreyJwbWF4dWIiLCAgICAyLCAweDBmZGUs ICAgIFgsIENwdU1NWDIsTm9TdWZ8SWdub3JlU2l6ZXxNb2RybSwJeyBSZWdN TVh8TExvbmdNZW0sIFJlZ01NWCwgMCB9IH0sCiB7InBtYXh1YiIsICAgIDIs IDB4NjYwZmRlLCAgWCwgQ3B1U1NFMixOb1N1ZnxJZ25vcmVTaXplfE1vZHJt LAl7IFJlZ1hNTXxMTG9uZ01lbSwgUmVnWE1NLCAwIH0gfSwKLXsicG1pbnN3 IiwgICAgMiwgMHgwZmVhLCAgICBYLCBDcHVTU0UsIE5vU3VmfElnbm9yZVNp emV8TW9kcm0sCXsgUmVnTU1YfExMb25nTWVtLCBSZWdNTVgsIDAgfSB9LAor eyJwbWluc3ciLCAgICAyLCAweDBmZWEsICAgIFgsIENwdU1NWDIsTm9TdWZ8 SWdub3JlU2l6ZXxNb2RybSwJeyBSZWdNTVh8TExvbmdNZW0sIFJlZ01NWCwg MCB9IH0sCiB7InBtaW5zdyIsICAgIDIsIDB4NjYwZmVhLCAgWCwgQ3B1U1NF MixOb1N1ZnxJZ25vcmVTaXplfE1vZHJtLAl7IFJlZ1hNTXxMTG9uZ01lbSwg UmVnWE1NLCAwIH0gfSwKLXsicG1pbnViIiwgICAgMiwgMHgwZmRhLCAgICBY LCBDcHVTU0UsIE5vU3VmfElnbm9yZVNpemV8TW9kcm0sCXsgUmVnTU1YfExM b25nTWVtLCBSZWdNTVgsIDAgfSB9LAoreyJwbWludWIiLCAgICAyLCAweDBm ZGEsICAgIFgsIENwdU1NWDIsTm9TdWZ8SWdub3JlU2l6ZXxNb2RybSwJeyBS ZWdNTVh8TExvbmdNZW0sIFJlZ01NWCwgMCB9IH0sCiB7InBtaW51YiIsICAg IDIsIDB4NjYwZmRhLCAgWCwgQ3B1U1NFMixOb1N1ZnxJZ25vcmVTaXplfE1v ZHJtLAl7IFJlZ1hNTXxMTG9uZ01lbSwgUmVnWE1NLCAwIH0gfSwKLXsicG1v dm1za2IiLCAgMiwgMHgwZmQ3LCAgICBYLCBDcHVTU0UsIGxxX1N1ZnxJZ25v cmVTaXplfE1vZHJtLAl7IFJlZ01NWHxJbnZNZW0sIFJlZzMyfFJlZzY0LCAw IH0gfSwKK3sicG1vdm1za2IiLCAgMiwgMHgwZmQ3LCAgICBYLCBDcHVNTVgy LGxxX1N1ZnxJZ25vcmVTaXplfE1vZHJtLAl7IFJlZ01NWHxJbnZNZW0sIFJl ZzMyfFJlZzY0LCAwIH0gfSwKIHsicG1vdm1za2IiLCAgMiwgMHg2NjBmZDcs ICBYLCBDcHVTU0UyLGxxX1N1ZnxJZ25vcmVTaXplfE1vZHJtLAl7IFJlZ1hN TXxJbnZNZW0sIFJlZzMyfFJlZzY0LCAwIH0gfSwKLXsicG11bGh1dyIsICAg MiwgMHgwZmU0LCAgICBYLCBDcHVTU0UsIE5vU3VmfElnbm9yZVNpemV8TW9k cm0sCXsgUmVnTU1YfExMb25nTWVtLCBSZWdNTVgsIDAgfSB9LAoreyJwbXVs aHV3IiwgICAyLCAweDBmZTQsICAgIFgsIENwdU1NWDIsTm9TdWZ8SWdub3Jl U2l6ZXxNb2RybSwJeyBSZWdNTVh8TExvbmdNZW0sIFJlZ01NWCwgMCB9IH0s CiB7InBtdWxodXciLCAgIDIsIDB4NjYwZmU0LCAgWCwgQ3B1U1NFMixOb1N1 ZnxJZ25vcmVTaXplfE1vZHJtLAl7IFJlZ1hNTXxMTG9uZ01lbSwgUmVnWE1N LCAwIH0gfSwKLXsicHJlZmV0Y2hudGEiLCAxLCAweDBmMTgsICAwLCBDcHVT U0UsIE5vU3VmfElnbm9yZVNpemV8TW9kcm0sIAl7IExMb25nTWVtLCAwLCAw IH0gfSwKLXsicHJlZmV0Y2h0MCIsICAxLCAweDBmMTgsICAxLCBDcHVTU0Us IE5vU3VmfElnbm9yZVNpemV8TW9kcm0sIAl7IExMb25nTWVtLCAwLCAwIH0g fSwKLXsicHJlZmV0Y2h0MSIsICAxLCAweDBmMTgsICAyLCBDcHVTU0UsIE5v U3VmfElnbm9yZVNpemV8TW9kcm0sIAl7IExMb25nTWVtLCAwLCAwIH0gfSwK LXsicHJlZmV0Y2h0MiIsICAxLCAweDBmMTgsICAzLCBDcHVTU0UsIE5vU3Vm fElnbm9yZVNpemV8TW9kcm0sIAl7IExMb25nTWVtLCAwLCAwIH0gfSwKLXsi cHNhZGJ3IiwgICAgMiwgMHgwZmY2LCAgICBYLCBDcHVTU0UsIE5vU3VmfEln bm9yZVNpemV8TW9kcm0sCXsgUmVnTU1YfExMb25nTWVtLCBSZWdNTVgsIDAg fSB9LAoreyJwcmVmZXRjaG50YSIsIDEsIDB4MGYxOCwgIDAsIENwdU1NWDIs Tm9TdWZ8SWdub3JlU2l6ZXxNb2RybSwgCXsgTExvbmdNZW0sIDAsIDAgfSB9 LAoreyJwcmVmZXRjaHQwIiwgIDEsIDB4MGYxOCwgIDEsIENwdU1NWDIsTm9T dWZ8SWdub3JlU2l6ZXxNb2RybSwgCXsgTExvbmdNZW0sIDAsIDAgfSB9LAor eyJwcmVmZXRjaHQxIiwgIDEsIDB4MGYxOCwgIDIsIENwdU1NWDIsTm9TdWZ8 SWdub3JlU2l6ZXxNb2RybSwgCXsgTExvbmdNZW0sIDAsIDAgfSB9LAoreyJw cmVmZXRjaHQyIiwgIDEsIDB4MGYxOCwgIDMsIENwdU1NWDIsTm9TdWZ8SWdu b3JlU2l6ZXxNb2RybSwgCXsgTExvbmdNZW0sIDAsIDAgfSB9LAoreyJwc2Fk YnciLCAgICAyLCAweDBmZjYsICAgIFgsIENwdU1NWDIsTm9TdWZ8SWdub3Jl U2l6ZXxNb2RybSwJeyBSZWdNTVh8TExvbmdNZW0sIFJlZ01NWCwgMCB9IH0s CiB7InBzYWRidyIsICAgIDIsIDB4NjYwZmY2LCAgWCwgQ3B1U1NFMixOb1N1 ZnxJZ25vcmVTaXplfE1vZHJtLAl7IFJlZ1hNTXxMTG9uZ01lbSwgUmVnWE1N LCAwIH0gfSwKLXsicHNodWZ3IiwgICAgMywgMHgwZjcwLCAgICBYLCBDcHVT U0UsIE5vU3VmfElnbm9yZVNpemV8TW9kcm0sCXsgSW1tOCwgUmVnTU1YfExM b25nTWVtLCBSZWdNTVggfSB9LAoreyJwc2h1ZnciLCAgICAzLCAweDBmNzAs ICAgIFgsIENwdU1NWDIsTm9TdWZ8SWdub3JlU2l6ZXxNb2RybSwJeyBJbW04 LCBSZWdNTVh8TExvbmdNZW0sIFJlZ01NWCB9IH0sCiB7InJjcHBzIiwgICAg IDIsIDB4MGY1MywgICAgWCwgQ3B1U1NFLCBOb1N1ZnxJZ25vcmVTaXplfE1v ZHJtLAl7IFJlZ1hNTXxMTG9uZ01lbSwgUmVnWE1NLCAwIH0gfSwKIHsicmNw c3MiLCAgICAgMiwgMHhmMzBmNTMsICBYLCBDcHVTU0UsIE5vU3VmfElnbm9y ZVNpemV8TW9kcm0sCXsgUmVnWE1NfFdvcmRNZW0sIFJlZ1hNTSwgMCB9IH0s CiB7InJzcXJ0cHMiLCAgIDIsIDB4MGY1MiwgICAgWCwgQ3B1U1NFLCBOb1N1 ZnxJZ25vcmVTaXplfE1vZHJtLAl7IFJlZ1hNTXxMTG9uZ01lbSwgUmVnWE1N LCAwIH0gfSwKIHsicnNxcnRzcyIsICAgMiwgMHhmMzBmNTIsICBYLCBDcHVT U0UsIE5vU3VmfElnbm9yZVNpemV8TW9kcm0sCXsgUmVnWE1NfFdvcmRNZW0s IFJlZ1hNTSwgMCB9IH0sCi17InNmZW5jZSIsICAgIDAsIDB4MGZhZSwgMHhm OCwgQ3B1U1NFLCBOb1N1ZnxJZ25vcmVTaXplfEltbUV4dCwJeyAwLCAwLCAw IH0gfSwKK3sic2ZlbmNlIiwgICAgMCwgMHgwZmFlLCAweGY4LCBDcHVNTVgy LE5vU3VmfElnbm9yZVNpemV8SW1tRXh0LAl7IDAsIDAsIDAgfSB9LAogeyJz aHVmcHMiLCAgICAzLCAweDBmYzYsICAgIFgsIENwdVNTRSwgTm9TdWZ8SWdu b3JlU2l6ZXxNb2RybSwJeyBJbW04LCBSZWdYTU18TExvbmdNZW0sIFJlZ1hN TSB9IH0sCiB7InNxcnRwcyIsICAgIDIsIDB4MGY1MSwgICAgWCwgQ3B1U1NF LCBOb1N1ZnxJZ25vcmVTaXplfE1vZHJtLAl7IFJlZ1hNTXxMTG9uZ01lbSwg UmVnWE1NLCAwIH0gfSwKIHsic3FydHNzIiwgICAgMiwgMHhmMzBmNTEsICBY LCBDcHVTU0UsIE5vU3VmfElnbm9yZVNpemV8TW9kcm0sCXsgUmVnWE1NfFdv cmRNZW0sIFJlZ1hNTSwgMCB9IH0sCkBAIC0xMzQxLDcgKzEzNDEsNyBAQCBz dGF0aWMgY29uc3QgdGVtcGxhdGUgaTM4Nl9vcHRhYltdID0KIHsiZmVtbXMi LCAgICAwLCAweDBmMGUsCSAgIFgsIENwdTNkbm93LCBOb1N1ZiwJCQl7IDAs IDAsIDAgfSB9LAogeyJwYXZndXNiIiwgIDIsIDB4MGYwZiwgMHhiZiwgQ3B1 M2Rub3csIE5vU3VmfElnbm9yZVNpemV8TW9kcm18SW1tRXh0LAl7IFJlZ01N WHxMb25nTWVtLCBSZWdNTVgsIDAgfSB9LAogeyJwZjJpZCIsICAgIDIsIDB4 MGYwZiwgMHgxZCwgQ3B1M2Rub3csIE5vU3VmfElnbm9yZVNpemV8TW9kcm18 SW1tRXh0LAl7IFJlZ01NWHxMb25nTWVtLCBSZWdNTVgsIDAgfSB9LAoteyJw ZjJpdyIsICAgIDIsIDB4MGYwZiwgMHgxYywgQ3B1M2Rub3d8Q3B1Njg2LE5v U3VmfElnbm9yZVNpemV8TW9kcm18SW1tRXh0LAl7IFJlZ01NWHxMb25nTWVt LCBSZWdNTVgsIDAgfSB9LAoreyJwZjJpdyIsICAgIDIsIDB4MGYwZiwgMHgx YywgQ3B1M2Rub3dBLE5vU3VmfElnbm9yZVNpemV8TW9kcm18SW1tRXh0LAl7 IFJlZ01NWHxMb25nTWVtLCBSZWdNTVgsIDAgfSB9LAogeyJwZmFjYyIsICAg IDIsIDB4MGYwZiwgMHhhZSwgQ3B1M2Rub3csIE5vU3VmfElnbm9yZVNpemV8 TW9kcm18SW1tRXh0LAl7IFJlZ01NWHxMb25nTWVtLCBSZWdNTVgsIDAgfSB9 LAogeyJwZmFkZCIsICAgIDIsIDB4MGYwZiwgMHg5ZSwgQ3B1M2Rub3csIE5v U3VmfElnbm9yZVNpemV8TW9kcm18SW1tRXh0LAl7IFJlZ01NWHxMb25nTWVt LCBSZWdNTVgsIDAgfSB9LAogeyJwZmNtcGVxIiwgIDIsIDB4MGYwZiwgMHhi MCwgQ3B1M2Rub3csIE5vU3VmfElnbm9yZVNpemV8TW9kcm18SW1tRXh0LAl7 IFJlZ01NWHxMb25nTWVtLCBSZWdNTVgsIDAgfSB9LApAQCAtMTM1MCw4ICsx MzUwLDggQEAgc3RhdGljIGNvbnN0IHRlbXBsYXRlIGkzODZfb3B0YWJbXSA9 CiB7InBmbWF4IiwgICAgMiwgMHgwZjBmLCAweGE0LCBDcHUzZG5vdywgTm9T dWZ8SWdub3JlU2l6ZXxNb2RybXxJbW1FeHQsCXsgUmVnTU1YfExvbmdNZW0s IFJlZ01NWCwgMCB9IH0sCiB7InBmbWluIiwgICAgMiwgMHgwZjBmLCAweDk0 LCBDcHUzZG5vdywgTm9TdWZ8SWdub3JlU2l6ZXxNb2RybXxJbW1FeHQsCXsg UmVnTU1YfExvbmdNZW0sIFJlZ01NWCwgMCB9IH0sCiB7InBmbXVsIiwgICAg MiwgMHgwZjBmLCAweGI0LCBDcHUzZG5vdywgTm9TdWZ8SWdub3JlU2l6ZXxN b2RybXxJbW1FeHQsCXsgUmVnTU1YfExvbmdNZW0sIFJlZ01NWCwgMCB9IH0s Ci17InBmbmFjYyIsICAgMiwgMHgwZjBmLCAweDhhLCBDcHUzZG5vd3xDcHU2 ODYsTm9TdWZ8SWdub3JlU2l6ZXxNb2RybXxJbW1FeHQsCXsgUmVnTU1YfExv bmdNZW0sIFJlZ01NWCwgMCB9IH0sCi17InBmcG5hY2MiLCAgMiwgMHgwZjBm LCAweDhlLCBDcHUzZG5vd3xDcHU2ODYsTm9TdWZ8SWdub3JlU2l6ZXxNb2Ry bXxJbW1FeHQsCXsgUmVnTU1YfExvbmdNZW0sIFJlZ01NWCwgMCB9IH0sCit7 InBmbmFjYyIsICAgMiwgMHgwZjBmLCAweDhhLCBDcHUzZG5vd0EsTm9TdWZ8 SWdub3JlU2l6ZXxNb2RybXxJbW1FeHQsCXsgUmVnTU1YfExvbmdNZW0sIFJl Z01NWCwgMCB9IH0sCit7InBmcG5hY2MiLCAgMiwgMHgwZjBmLCAweDhlLCBD cHUzZG5vd0EsTm9TdWZ8SWdub3JlU2l6ZXxNb2RybXxJbW1FeHQsCXsgUmVn TU1YfExvbmdNZW0sIFJlZ01NWCwgMCB9IH0sCiB7InBmcmNwIiwgICAgMiwg MHgwZjBmLCAweDk2LCBDcHUzZG5vdywgTm9TdWZ8SWdub3JlU2l6ZXxNb2Ry bXxJbW1FeHQsCXsgUmVnTU1YfExvbmdNZW0sIFJlZ01NWCwgMCB9IH0sCiB7 InBmcmNwaXQxIiwgMiwgMHgwZjBmLCAweGE2LCBDcHUzZG5vdywgTm9TdWZ8 SWdub3JlU2l6ZXxNb2RybXxJbW1FeHQsCXsgUmVnTU1YfExvbmdNZW0sIFJl Z01NWCwgMCB9IH0sCiB7InBmcmNwaXQyIiwgMiwgMHgwZjBmLCAweGI2LCBD cHUzZG5vdywgTm9TdWZ8SWdub3JlU2l6ZXxNb2RybXxJbW1FeHQsCXsgUmVn TU1YfExvbmdNZW0sIFJlZ01NWCwgMCB9IH0sCkBAIC0xMzYwLDkgKzEzNjAs OSBAQCBzdGF0aWMgY29uc3QgdGVtcGxhdGUgaTM4Nl9vcHRhYltdID0KIHsi cGZzdWIiLCAgICAyLCAweDBmMGYsIDB4OWEsIENwdTNkbm93LCBOb1N1ZnxJ Z25vcmVTaXplfE1vZHJtfEltbUV4dCwJeyBSZWdNTVh8TG9uZ01lbSwgUmVn TU1YLCAwIH0gfSwKIHsicGZzdWJyIiwgICAyLCAweDBmMGYsIDB4YWEsIENw dTNkbm93LCBOb1N1ZnxJZ25vcmVTaXplfE1vZHJtfEltbUV4dCwJeyBSZWdN TVh8TG9uZ01lbSwgUmVnTU1YLCAwIH0gfSwKIHsicGkyZmQiLCAgICAyLCAw eDBmMGYsIDB4MGQsIENwdTNkbm93LCBOb1N1ZnxJZ25vcmVTaXplfE1vZHJt fEltbUV4dCwJeyBSZWdNTVh8TG9uZ01lbSwgUmVnTU1YLCAwIH0gfSwKLXsi cGkyZnciLCAgICAyLCAweDBmMGYsIDB4MGMsIENwdTNkbm93fENwdTY4NixO b1N1ZnxJZ25vcmVTaXplfE1vZHJtfEltbUV4dCwJeyBSZWdNTVh8TG9uZ01l bSwgUmVnTU1YLCAwIH0gfSwKK3sicGkyZnciLCAgICAyLCAweDBmMGYsIDB4 MGMsIENwdTNkbm93QSxOb1N1ZnxJZ25vcmVTaXplfE1vZHJtfEltbUV4dCwJ eyBSZWdNTVh8TG9uZ01lbSwgUmVnTU1YLCAwIH0gfSwKIHsicG11bGhydyIs ICAyLCAweDBmMGYsIDB4YjcsIENwdTNkbm93LCBOb1N1ZnxJZ25vcmVTaXpl fE1vZHJtfEltbUV4dCwJeyBSZWdNTVh8TG9uZ01lbSwgUmVnTU1YLCAwIH0g fSwKLXsicHN3YXBkIiwgICAyLCAweDBmMGYsIDB4YmIsIENwdTNkbm93fENw dTY4NixOb1N1ZnxJZ25vcmVTaXplfE1vZHJtfEltbUV4dCwJeyBSZWdNTVh8 TG9uZ01lbSwgUmVnTU1YLCAwIH0gfSwKK3sicHN3YXBkIiwgICAyLCAweDBm MGYsIDB4YmIsIENwdTNkbm93QSxOb1N1ZnxJZ25vcmVTaXplfE1vZHJtfElt bUV4dCwJeyBSZWdNTVh8TG9uZ01lbSwgUmVnTU1YLCAwIH0gfSwKIAogLyog QU1EIGV4dGVuc2lvbnMuICovCiB7InN5c2NhbGwiLCAgMCwgMHgwZjA1LCAg ICBYLCBDcHVLNiwJTm9TdWYsCQkJeyAwLCAwLCAwfSB9LAo= --=__PartAF8F7FD4.1__=--