<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>112886</bug_id>
          
          <creation_ts>2013-03-21 00:56:37 -0700</creation_ts>
          <short_desc>[SH4] LLInt sh4 backend implementation</short_desc>
          <delta_ts>2013-04-15 16:03:03 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Julien Brianceau">jbriance</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ararunprasad</cc>
    
    <cc>arurajku</cc>
    
    <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>oliver</cc>
    
    <cc>ossy</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>860119</commentid>
    <comment_count>0</comment_count>
    <who name="Julien Brianceau">jbriance</who>
    <bug_when>2013-03-21 00:56:37 -0700</bug_when>
    <thetext>Implementation of a SH4 backend for JavaScriptCore LLInt</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860126</commentid>
    <comment_count>1</comment_count>
      <attachid>194199</attachid>
    <who name="Julien Brianceau">jbriance</who>
    <bug_when>2013-03-21 01:11:36 -0700</bug_when>
    <thetext>Created attachment 194199
SH4 LLint backend implementation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860129</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-21 01:14:45 -0700</bug_when>
    <thetext>Attachment 194199 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source/JavaScriptCore/dfg/DFGOperations.cpp&apos;, u&apos;Source/JavaScriptCore/jit/JITStubs.cpp&apos;, u&apos;Source/JavaScriptCore/llint/LLIntOfflineAsmConfig.h&apos;, u&apos;Source/JavaScriptCore/llint/LowLevelInterpreter.asm&apos;, u&apos;Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm&apos;, u&apos;Source/JavaScriptCore/offlineasm/backends.rb&apos;, u&apos;Source/JavaScriptCore/offlineasm/instructions.rb&apos;, u&apos;Source/JavaScriptCore/offlineasm/sh4.rb&apos;, u&apos;Source/WTF/ChangeLog&apos;, u&apos;Source/WTF/wtf/Platform.h&apos;]&quot; exit_code: 1
Source/JavaScriptCore/dfg/DFGOperations.cpp:1766:  The parameter name &quot;&quot;&quot;&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 11 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860132</commentid>
    <comment_count>3</comment_count>
      <attachid>194199</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-03-21 01:22:09 -0700</bug_when>
    <thetext>Comment on attachment 194199
SH4 LLint backend implementation

View in context: https://bugs.webkit.org/attachment.cgi?id=194199&amp;action=review

This looks OK, but one fairly major high-level comment: why aren&apos;t you using the risc.rb transformations?  You seem to be rolling a lot of address operand lowering yourself.  risc.rb can do it for you, and can probably do a better job, and generate better code.

I mean, it&apos;s not my business to tell you to make SH4 run faster.  But I figured I&apos;d point out that there is a better way to do this.

Other than that, please fix the two cases of unnecessary code duplication.  I can r+ once you do.  But I would kind of like to see this done in terms of risc.rb unless there is a strong reason not to.

&gt; Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm:120
&gt; +    elsif SH4

You could just have said &quot;elsif MIPS or SH4&quot; above

&gt; Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm:151
&gt; +    elsif SH4

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860140</commentid>
    <comment_count>4</comment_count>
    <who name="Julien Brianceau">jbriance</who>
    <bug_when>2013-03-21 01:51:54 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; This looks OK, but one fairly major high-level comment: why aren&apos;t you using the risc.rb transformations?  You seem to be rolling a lot of address operand lowering yourself.  risc.rb can do it for you, and can probably do a better job, and generate better code.
&gt;
&gt; I mean, it&apos;s not my business to tell you to make SH4 run faster.  But I figured I&apos;d point out that there is a better way to do this.
I&apos;m sure there is a better way to do this.. I didn&apos;t know anything to ruby before writing this patch :) I&apos;m going to take a deeper look at risc.rb and see what can be reused for the sh4 backend.

&gt; 
&gt; Other than that, please fix the two cases of unnecessary code duplication.  I can r+ once you do.
Sure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860186</commentid>
    <comment_count>5</comment_count>
      <attachid>194217</attachid>
    <who name="Julien Brianceau">jbriance</who>
    <bug_when>2013-03-21 03:43:30 -0700</bug_when>
    <thetext>Created attachment 194217
SH4 LLint backend implementation (2)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860190</commentid>
    <comment_count>6</comment_count>
    <who name="Julien Brianceau">jbriance</who>
    <bug_when>2013-03-21 03:48:46 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Other than that, please fix the two cases of unnecessary code duplication.  I can r+ once you do.
Done in the second patch.

&gt; But I would kind of like to see this done in terms of risc.rb unless there is a strong reason not to.
I started to look at risc.rb and there are some things that I don&apos;t understand.

For instance the riscLowerSimpleBranchOps, where we have something like this:
  # baddiz foo, bar, baz
  #
  # will become:
  #
  # addi foo, bar
  # bz baz

As I see in the C loop impl, I thought it would be something like:
  # baddiz foo, bar, baz
  #
  # will become:
  #
  # addi foo, bar, tmp
  # bz baz
  # move tmp, bar

Am I missing something here ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860192</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-21 03:50:42 -0700</bug_when>
    <thetext>Attachment 194217 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source/JavaScriptCore/dfg/DFGOperations.cpp&apos;, u&apos;Source/JavaScriptCore/jit/JITStubs.cpp&apos;, u&apos;Source/JavaScriptCore/llint/LLIntOfflineAsmConfig.h&apos;, u&apos;Source/JavaScriptCore/llint/LowLevelInterpreter.asm&apos;, u&apos;Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm&apos;, u&apos;Source/JavaScriptCore/offlineasm/backends.rb&apos;, u&apos;Source/JavaScriptCore/offlineasm/instructions.rb&apos;, u&apos;Source/JavaScriptCore/offlineasm/sh4.rb&apos;, u&apos;Source/WTF/ChangeLog&apos;, u&apos;Source/WTF/wtf/Platform.h&apos;]&quot; exit_code: 1
Source/JavaScriptCore/dfg/DFGOperations.cpp:1766:  The parameter name &quot;&quot;&quot;&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 11 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>861538</commentid>
    <comment_count>8</comment_count>
    <who name="Julien Brianceau">jbriance</who>
    <bug_when>2013-03-22 09:09:18 -0700</bug_when>
    <thetext>Another thing that I do not understand inside risc.rb is the riscLowerShiftOps, where:
# lshifti foo, bar
#
# will become:
#
# andi foo, 31, tmp
# lshifti tmp, bar

This potentially adds a useless opcode (when foo &lt; 32), and worst, this can lead to an incorrect behaviour. For instance:

lshifti 33, register

will become

and 33, 31, tmp
lshifti tmp, register

So we&apos;ll left-shift register by 1 (because 33 &amp; 31 = 1), and I don&apos;t think this is what we expect here, right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>862300</commentid>
    <comment_count>9</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-03-23 20:33:33 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #3)
&gt; &gt; Other than that, please fix the two cases of unnecessary code duplication.  I can r+ once you do.
&gt; Done in the second patch.
&gt; 
&gt; &gt; But I would kind of like to see this done in terms of risc.rb unless there is a strong reason not to.
&gt; I started to look at risc.rb and there are some things that I don&apos;t understand.
&gt; 
&gt; For instance the riscLowerSimpleBranchOps, where we have something like this:
&gt;   # baddiz foo, bar, baz
&gt;   #
&gt;   # will become:
&gt;   #
&gt;   # addi foo, bar
&gt;   # bz baz
&gt; 
&gt; As I see in the C loop impl, I thought it would be something like:
&gt;   # baddiz foo, bar, baz
&gt;   #
&gt;   # will become:
&gt;   #
&gt;   # addi foo, bar, tmp
&gt;   # bz baz
&gt;   # move tmp, bar
&gt; 
&gt; Am I missing something here ?

No, you found a bug in cloop. ;-). The risc.rb semantics are the right ones.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>862302</commentid>
    <comment_count>10</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-03-23 20:43:09 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Another thing that I do not understand inside risc.rb is the riscLowerShiftOps, where:
&gt; # lshifti foo, bar
&gt; #
&gt; # will become:
&gt; #
&gt; # andi foo, 31, tmp
&gt; # lshifti tmp, bar
&gt; 
&gt; This potentially adds a useless opcode (when foo &lt; 32), and worst, this can lead to an incorrect behaviour. For instance:
&gt; 
&gt; lshifti 33, register
&gt; 
&gt; will become
&gt; 
&gt; and 33, 31, tmp
&gt; lshifti tmp, register
&gt; 
&gt; So we&apos;ll left-shift register by 1 (because 33 &amp; 31 = 1), and I don&apos;t think this is what we expect here, right?

It&apos;s necessary for ARM since that processor treats shiftAmount &gt;= 32 to mean that the result is zeroed. If risc.rb is emitting the &apos;and&apos; even when the operand is an immediate that is within range, then you should file a bug. 

If SH4 doesn&apos;t need the shifts then you don&apos;t need to run that phase.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>862303</commentid>
    <comment_count>11</comment_count>
      <attachid>194217</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-03-23 20:44:35 -0700</bug_when>
    <thetext>Comment on attachment 194217
SH4 LLint backend implementation (2)

R=me but I think it would be better for everyone if you used risc.rb. We share it between ARM and MIPS and it would be weird if SH4 didn&apos;t use it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>862352</commentid>
    <comment_count>12</comment_count>
      <attachid>194217</attachid>
    <who name="Julien Brianceau">jbriance</who>
    <bug_when>2013-03-24 06:01:37 -0700</bug_when>
    <thetext>Comment on attachment 194217
SH4 LLint backend implementation (2)

Thanks for all your comments.

I R- my patch because I used a cloop implementation equivalent for &quot;baddiz and co&quot; opcodes.

I&apos;m working on reusing risc.rb for SH4 backend, and I think I&apos;m pretty close to have something working now (moreover, the patch is much more &quot;readable&quot; and clean that way).

I&apos;ll test it as soon as possible on a SH4 target then I&apos;ll submit a new patch for review here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>862599</commentid>
    <comment_count>13</comment_count>
      <attachid>194812</attachid>
    <who name="Julien Brianceau">jbriance</who>
    <bug_when>2013-03-25 02:51:40 -0700</bug_when>
    <thetext>Created attachment 194812
SH4 LLint backend implementation using risc.rb</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>862605</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-25 02:54:38 -0700</bug_when>
    <thetext>Attachment 194812 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source/JavaScriptCore/dfg/DFGOperations.cpp&apos;, u&apos;Source/JavaScriptCore/jit/JITStubs.cpp&apos;, u&apos;Source/JavaScriptCore/llint/LLIntOfflineAsmConfig.h&apos;, u&apos;Source/JavaScriptCore/llint/LowLevelInterpreter.asm&apos;, u&apos;Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm&apos;, u&apos;Source/JavaScriptCore/offlineasm/backends.rb&apos;, u&apos;Source/JavaScriptCore/offlineasm/instructions.rb&apos;, u&apos;Source/JavaScriptCore/offlineasm/sh4.rb&apos;, u&apos;Source/WTF/ChangeLog&apos;, u&apos;Source/WTF/wtf/Platform.h&apos;]&quot; exit_code: 1
Source/JavaScriptCore/dfg/DFGOperations.cpp:1766:  The parameter name &quot;&quot;&quot;&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 11 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>862831</commentid>
    <comment_count>15</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-03-25 09:25:39 -0700</bug_when>
    <thetext>Thanks, I&apos;ll try to take a look tonight!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>864062</commentid>
    <comment_count>16</comment_count>
    <who name="Julien Brianceau">jbriance</who>
    <bug_when>2013-03-26 15:33:46 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; Thanks, I&apos;ll try to take a look tonight!
Did you find time to review it? I&apos;m available in #webkit IRC channel if you have queries on this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>864123</commentid>
    <comment_count>17</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-03-26 17:11:22 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; (In reply to comment #15)
&gt; &gt; Thanks, I&apos;ll try to take a look tonight!
&gt; Did you find time to review it? I&apos;m available in #webkit IRC channel if you have queries on this patch.

Oh sorry!  I&apos;ll look at it, I promise.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>866041</commentid>
    <comment_count>18</comment_count>
      <attachid>195710</attachid>
    <who name="Julien Brianceau">jbriance</who>
    <bug_when>2013-03-29 02:36:12 -0700</bug_when>
    <thetext>Created attachment 195710
 SH4 LLint backend implementation using risc.rb (2)

I made few changes in this patch:
- far calls are better handled
- break opcode is implemented as described by comment in notSupported macro in llint/LowLevelInterpreter.asm file:
        # We should use whatever the smallest possible instruction is, just to
        # ensure that there is a gap between instruction labels. If multiple
        # smallest instructions exist, we should pick the one that is most
        # likely result in execution being halted. Currently that is the break
        # instruction on all architectures we&apos;re interested in. (Break is int3
        # on Intel, which is 1 byte, and bkpt on ARMv7, which is 2 bytes.)

- correction in shift operations handling
- few cosmetic changes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>866042</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-29 02:37:54 -0700</bug_when>
    <thetext>Attachment 195710 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source/JavaScriptCore/dfg/DFGOperations.cpp&apos;, u&apos;Source/JavaScriptCore/jit/JITStubs.cpp&apos;, u&apos;Source/JavaScriptCore/llint/LLIntOfflineAsmConfig.h&apos;, u&apos;Source/JavaScriptCore/llint/LowLevelInterpreter.asm&apos;, u&apos;Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm&apos;, u&apos;Source/JavaScriptCore/offlineasm/backends.rb&apos;, u&apos;Source/JavaScriptCore/offlineasm/instructions.rb&apos;, u&apos;Source/JavaScriptCore/offlineasm/sh4.rb&apos;, u&apos;Source/WTF/ChangeLog&apos;, u&apos;Source/WTF/wtf/Platform.h&apos;]&quot; exit_code: 1
Source/JavaScriptCore/dfg/DFGOperations.cpp:1766:  The parameter name &quot;&quot;&quot;&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 11 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>866772</commentid>
    <comment_count>20</comment_count>
      <attachid>195893</attachid>
    <who name="Julien Brianceau">jbriance</who>
    <bug_when>2013-03-31 04:17:57 -0700</bug_when>
    <thetext>Created attachment 195893
SH4 LLint backend implementation using risc.rb (3)

- few lines of dead code removed from sh4.rb
- rebased on changeset 147285</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>866788</commentid>
    <comment_count>21</comment_count>
      <attachid>195893</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-03-31 10:16:56 -0700</bug_when>
    <thetext>Comment on attachment 195893
SH4 LLint backend implementation using risc.rb (3)

View in context: https://bugs.webkit.org/attachment.cgi?id=195893&amp;action=review

I think this stills needs a bit of work.

&gt; Source/JavaScriptCore/offlineasm/sh4.rb:150
&gt; +#
&gt; +# Lowering of shift ops for SH4.
&gt; +#

This comment should show an example of what kind of lowering happens.

&gt; Source/JavaScriptCore/offlineasm/sh4.rb:279
&gt; +#
&gt; +# Lowering of malformed addresses in double loads and stores for SH4. For example:
&gt; +#
&gt; +# loadd [foo, bar, 8], baz
&gt; +#
&gt; +# becomes:
&gt; +#
&gt; +# leap [foo, bar, 8], tmp
&gt; +# loadd+ [tmp], baz
&gt; +#
&gt; +
&gt; +def sh4LowerMalformedAddressesDouble(list)
&gt; +    newList = []
&gt; +    list.each {
&gt; +        | node |
&gt; +        if node.is_a? Instruction
&gt; +            case node.opcode
&gt; +            when &quot;loadd&quot;
&gt; +                tmp = Tmp.new(codeOrigin, :gpr)
&gt; +                addr = Address.new(codeOrigin, tmp, Immediate.new(codeOrigin, 0))
&gt; +                newList &lt;&lt; Instruction.new(codeOrigin, &quot;leap&quot;, [node.operands[0], tmp])
&gt; +                newList &lt;&lt; Instruction.new(node.codeOrigin, &quot;loadd+&quot;, [addr, node.operands[1]], node.annotation)
&gt; +            when &quot;stored&quot;
&gt; +                tmp = Tmp.new(codeOrigin, :gpr)
&gt; +                addr = Address.new(codeOrigin, tmp, Immediate.new(codeOrigin, 0))
&gt; +                newList &lt;&lt; Instruction.new(codeOrigin, &quot;leap&quot;, [node.operands[1], tmp])
&gt; +                newList &lt;&lt; Instruction.new(codeOrigin, &quot;addi&quot;, [Immediate.new(codeOrigin, 8), tmp])
&gt; +                newList &lt;&lt; Instruction.new(node.codeOrigin, &quot;stored-&quot;, [node.operands[0], addr], node.annotation)
&gt; +            else
&gt; +                newList &lt;&lt; node
&gt; +            end
&gt; +        else
&gt; +            newList &lt;&lt; node
&gt; +        end
&gt; +    }
&gt; +    newList
&gt; +end

This seems strange.  This phase is identical to riscLowerMalformedAddressesDouble except that it changes &apos;loadd&apos; and &apos;stored&apos; to &apos;loadd+&apos; and &apos;stored+&apos;.  Except that you don&apos;t handle &apos;loadd&apos; and &apos;stored&apos; in the backend.  Why not just use riscLowerMalformedAddressesDouble and have the backend handle loadd and stored in the same way that you currently handle loadd+ and stored-?

&gt; Source/JavaScriptCore/offlineasm/sh4.rb:353
&gt; +def sh4LowerMisplacedImmediates(list)
&gt; +    newList = []
&gt; +    list.each {
&gt; +        | node |
&gt; +        if node.is_a? Instruction
&gt; +            case node.opcode
&gt; +            when &quot;muli&quot;, &quot;mulp&quot;, &quot;andi&quot;, &quot;ori&quot;, &quot;xori&quot;,
&gt; +                 &quot;cbeq&quot;, &quot;cieq&quot;, &quot;cpeq&quot;, &quot;cineq&quot;, &quot;cpneq&quot;, &quot;cib&quot;,
&gt; +                 &quot;bbeq&quot;, &quot;bbneq&quot;, &quot;bbb&quot;, &quot;bieq&quot;, &quot;bpeq&quot;, &quot;bineq&quot;, &quot;bpneq&quot;, &quot;bia&quot;, &quot;bpa&quot;, &quot;biaeq&quot;, &quot;bpaeq&quot;, &quot;bib&quot;, &quot;bpb&quot;,
&gt; +                 &quot;bigteq&quot;, &quot;bpgteq&quot;, &quot;bilt&quot;, &quot;bplt&quot;, &quot;bigt&quot;, &quot;bpgt&quot;, &quot;bilteq&quot;, &quot;bplteq&quot;, &quot;btiz&quot;, &quot;btpz&quot;, &quot;btinz&quot;, &quot;btpnz&quot;, &quot;btbz&quot;, &quot;btbnz&quot;,
&gt; +                 &quot;baddio&quot;, &quot;bsubio&quot;, &quot;bmulio&quot;, &quot;baddis&quot;
&gt; +                operands = node.operands
&gt; +                newOperands = []
&gt; +                operands.each {
&gt; +                    | operand |
&gt; +                    if operand.is_a? Immediate
&gt; +                        tmp = Tmp.new(operand.codeOrigin, :gpr)
&gt; +                        newList &lt;&lt; Instruction.new(operand.codeOrigin, &quot;move&quot;, [operand, tmp])
&gt; +                        newOperands &lt;&lt; tmp
&gt; +                    else
&gt; +                        newOperands &lt;&lt; operand
&gt; +                    end
&gt; +                }
&gt; +                newList &lt;&lt; Instruction.new(node.codeOrigin, node.opcode, newOperands, node.annotation)
&gt; +            else
&gt; +                newList &lt;&lt; node
&gt; +            end
&gt; +        else
&gt; +            newList &lt;&lt; node
&gt; +        end
&gt; +    }
&gt; +    newList
&gt; +end

It would have been _much_ better if you had modified the riscLowerMisplacedImmediates phase to either take a callback to determine wether the opcode needs such lowering, or to take a list or set of opcodes that require lowering.  As it stands you&apos;ve duplicated the code and just changed the &apos;when&apos; statement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>866800</commentid>
    <comment_count>22</comment_count>
    <who name="Julien Brianceau">jbriance</who>
    <bug_when>2013-03-31 12:29:14 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; (From update of attachment 195893 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=195893&amp;action=review
&gt; 
&gt; I think this stills needs a bit of work.
&gt; 
No problem, all comments are welcomed :)

&gt; 
&gt; This comment should show an example of what kind of lowering happens.
&gt; 
Sure, I&apos;ll add one.


&gt;
&gt; This seems strange.  This phase is identical to riscLowerMalformedAddressesDouble except that it changes &apos;loadd&apos; and &apos;stored&apos; to &apos;loadd+&apos; and &apos;stored+&apos;.  Except that you don&apos;t handle &apos;loadd&apos; and &apos;stored&apos; in the backend.  Why not just use riscLowerMalformedAddressesDouble and have the backend handle loadd and stored in the same way that you currently handle loadd+ and stored-?
&gt;
I understand your point.
The way I load or store a double for SH4 needs an Address type with a temporary register and a null offset, because I&apos;ll post-increment the address (&apos;+&apos;) or pre-decrement (&apos;-&apos;) the used register.
If I use the riscLowerMalformedAddressesDouble, I won&apos;t be sure to get a temporary register for the Address, and it&apos;s not what I want because this register will be incremented by 8.
That&apos;s why I used these &quot;loadd+&quot; and &quot;stored-&quot; to avoid confusion with a &quot;regular&quot; loadd or stored. Do you see a better way to proceed here ?

 
&gt;
&gt; It would have been _much_ better if you had modified the riscLowerMisplacedImmediates phase to either take a callback to determine wether the opcode needs such lowering, or to take a list or set of opcodes that require lowering.  As it stands you&apos;ve duplicated the code and just changed the &apos;when&apos; statement.
&gt;
You&apos;re right, I&apos;m going to follow one of your recommendation to avoid this code duplication.


Thanks again for your comments, I&apos;ll submit a new patch soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>866804</commentid>
    <comment_count>23</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-03-31 12:46:00 -0700</bug_when>
    <thetext>(In reply to comment #22)
&gt; (In reply to comment #21)
&gt; &gt; (From update of attachment 195893 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=195893&amp;action=review
&gt; &gt; 
&gt; &gt; I think this stills needs a bit of work.
&gt; &gt; 
&gt; No problem, all comments are welcomed :)
&gt; 
&gt; &gt; 
&gt; &gt; This comment should show an example of what kind of lowering happens.
&gt; &gt; 
&gt; Sure, I&apos;ll add one.
&gt; 
&gt; 
&gt; &gt;
&gt; &gt; This seems strange.  This phase is identical to riscLowerMalformedAddressesDouble except that it changes &apos;loadd&apos; and &apos;stored&apos; to &apos;loadd+&apos; and &apos;stored+&apos;.  Except that you don&apos;t handle &apos;loadd&apos; and &apos;stored&apos; in the backend.  Why not just use riscLowerMalformedAddressesDouble and have the backend handle loadd and stored in the same way that you currently handle loadd+ and stored-?
&gt; &gt;
&gt; I understand your point.
&gt; The way I load or store a double for SH4 needs an Address type with a temporary register and a null offset, because I&apos;ll post-increment the address (&apos;+&apos;) or pre-decrement (&apos;-&apos;) the used register.
&gt; If I use the riscLowerMalformedAddressesDouble, I won&apos;t be sure to get a temporary register for the Address, and it&apos;s not what I want because this register will be incremented by 8.
&gt; That&apos;s why I used these &quot;loadd+&quot; and &quot;stored-&quot; to avoid confusion with a &quot;regular&quot; loadd or stored. Do you see a better way to proceed here ?

Intriguing, I missed that!

Let me try to distill my issues:

1) I don&apos;t like how sh4LowerMalformedAddressesDouble is named.  It&apos;s not lowering malformed addresses on double accesses.  Instead, it&apos;s lowering the access into a form where the address is available in a temporary so that you can emit an instruction that clobbers it.  I would call this phase sh4LowerDoubleAccesses, instead.

2) I&apos;m not sure I like the naming of loadd+ and stored-.  Now that I understand their semantics, I think you&apos;re doing it right.  It is acceptable to give instructions long and verbose names, especially when their semantics are so weird.  I would call them loaddReversedAndIncrementAddress and storedReversedAndDecrementAddress.

3) Instead of emitting a addi in the stored case, you could have just created a new address with a different offset.  I think that would be cleaner.  In fact, this could be super useful in general so I would do it as follows: add a method called withOffset(integerValue) to Address, BaseIndex, and AbsoluteAddress.  Each of these will return a new version of themselves with the integerValue added to their preexisting offset.  Make sure that these methods don&apos;t clobber the receiver; offlineasm heavily relies on AST node instances being mostly immutable.

&gt; 
&gt; 
&gt; &gt;
&gt; &gt; It would have been _much_ better if you had modified the riscLowerMisplacedImmediates phase to either take a callback to determine wether the opcode needs such lowering, or to take a list or set of opcodes that require lowering.  As it stands you&apos;ve duplicated the code and just changed the &apos;when&apos; statement.
&gt; &gt;
&gt; You&apos;re right, I&apos;m going to follow one of your recommendation to avoid this code duplication.
&gt; 
&gt; 
&gt; Thanks again for your comments, I&apos;ll submit a new patch soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>866814</commentid>
    <comment_count>24</comment_count>
    <who name="Julien Brianceau">jbriance</who>
    <bug_when>2013-03-31 13:18:31 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; 
&gt; Let me try to distill my issues:
&gt; 
&gt; 1) I don&apos;t like how sh4LowerMalformedAddressesDouble is named.  It&apos;s not lowering malformed addresses on double accesses.  Instead, it&apos;s lowering the access into a form where the address is available in a temporary so that you can emit an instruction that clobbers it.  I would call this phase sh4LowerDoubleAccesses, instead.
Ok

&gt; 2) I&apos;m not sure I like the naming of loadd+ and stored-.  Now that I understand their semantics, I think you&apos;re doing it right.  It is acceptable to give instructions long and verbose names, especially when their semantics are so weird.  I would call them loaddReversedAndIncrementAddress and storedReversedAndDecrementAddress.
Ok too

&gt; 3) Instead of emitting a addi in the stored case, you could have just created a new address with a different offset.  I think that would be cleaner.  In fact, this could be super useful in general so I would do it as follows: add a method called withOffset(integerValue) to Address, BaseIndex, and AbsoluteAddress.  Each of these will return a new version of themselves with the integerValue added to their preexisting offset.  Make sure that these methods don&apos;t clobber the receiver; offlineasm heavily relies on AST node instances being mostly immutable.
I see what you want, but as I&apos;m not a ruby expert, can you tell me if this is right for Address class for instance ? (or does it need a &quot;yield&quot; or another ruby keyword I don&apos;t know)

    def withOffset(extraOffset)
        Address.new(codeOrigin, @base, @offset + extraOffset)
    end</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>866817</commentid>
    <comment_count>25</comment_count>
      <attachid>195907</attachid>
    <who name="Julien Brianceau">jbriance</who>
    <bug_when>2013-03-31 13:48:41 -0700</bug_when>
    <thetext>Created attachment 195907
 SH4 LLint backend implementation using risc.rb (4)

New patch following your recommendations</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>866833</commentid>
    <comment_count>26</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-31 16:15:07 -0700</bug_when>
    <thetext>Attachment 195907 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source/JavaScriptCore/dfg/DFGOperations.cpp&apos;, u&apos;Source/JavaScriptCore/jit/JITStubs.cpp&apos;, u&apos;Source/JavaScriptCore/llint/LLIntOfflineAsmConfig.h&apos;, u&apos;Source/JavaScriptCore/llint/LowLevelInterpreter.asm&apos;, u&apos;Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm&apos;, u&apos;Source/JavaScriptCore/offlineasm/arm.rb&apos;, u&apos;Source/JavaScriptCore/offlineasm/ast.rb&apos;, u&apos;Source/JavaScriptCore/offlineasm/backends.rb&apos;, u&apos;Source/JavaScriptCore/offlineasm/instructions.rb&apos;, u&apos;Source/JavaScriptCore/offlineasm/mips.rb&apos;, u&apos;Source/JavaScriptCore/offlineasm/risc.rb&apos;, u&apos;Source/JavaScriptCore/offlineasm/sh4.rb&apos;, u&apos;Source/WTF/ChangeLog&apos;, u&apos;Source/WTF/wtf/Platform.h&apos;]&quot; exit_code: 1
Source/JavaScriptCore/dfg/DFGOperations.cpp:1766:  The parameter name &quot;&quot;&quot;&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 15 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>875342</commentid>
    <comment_count>27</comment_count>
      <attachid>197993</attachid>
    <who name="Julien Brianceau">jbriance</who>
    <bug_when>2013-04-14 08:31:50 -0700</bug_when>
    <thetext>Created attachment 197993
SH4 LLint backend implementation using risc.rb (4) rebased on 148395

Rebased on changeset 148395</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>875345</commentid>
    <comment_count>28</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-04-14 08:33:59 -0700</bug_when>
    <thetext>Attachment 197993 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source/JavaScriptCore/dfg/DFGOperations.cpp&apos;, u&apos;Source/JavaScriptCore/jit/JITStubs.cpp&apos;, u&apos;Source/JavaScriptCore/llint/LLIntOfflineAsmConfig.h&apos;, u&apos;Source/JavaScriptCore/llint/LowLevelInterpreter.asm&apos;, u&apos;Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm&apos;, u&apos;Source/JavaScriptCore/offlineasm/arm.rb&apos;, u&apos;Source/JavaScriptCore/offlineasm/ast.rb&apos;, u&apos;Source/JavaScriptCore/offlineasm/backends.rb&apos;, u&apos;Source/JavaScriptCore/offlineasm/instructions.rb&apos;, u&apos;Source/JavaScriptCore/offlineasm/mips.rb&apos;, u&apos;Source/JavaScriptCore/offlineasm/risc.rb&apos;, u&apos;Source/JavaScriptCore/offlineasm/sh4.rb&apos;, u&apos;Source/WTF/ChangeLog&apos;, u&apos;Source/WTF/wtf/Platform.h&apos;]&quot; exit_code: 1
Source/JavaScriptCore/dfg/DFGOperations.cpp:1794:  The parameter name &quot;&quot;&quot;&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 15 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>876106</commentid>
    <comment_count>29</comment_count>
      <attachid>197993</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-04-15 16:02:57 -0700</bug_when>
    <thetext>Comment on attachment 197993
SH4 LLint backend implementation using risc.rb (4) rebased on 148395

Clearing flags on attachment: 197993

Committed r148474: &lt;http://trac.webkit.org/changeset/148474&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>876108</commentid>
    <comment_count>30</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-04-15 16:03:03 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194199</attachid>
            <date>2013-03-21 01:11:36 -0700</date>
            <delta_ts>2013-03-21 03:42:58 -0700</delta_ts>
            <desc>SH4 LLint backend implementation</desc>
            <filename>sh4-llint-backend-impl.patch</filename>
            <type>text/plain</type>
            <size>40272</size>
            <attacher name="Julien Brianceau">jbriance</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTQ2NDQ4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBA
CisyMDEzLTAzLTIxICBKdWxpZW4gQnJpYW5jZWF1ICAgPGpicmlhbmNlYXVAbmRzLmNvbT4KKwor
ICAgICAgICBMTEludCBTSDQgYmFja2VuZCBpbXBsZW1lbnRhdGlvbgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEyODg2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBkZmcvREZHT3BlcmF0aW9ucy5jcHA6
CisgICAgICAgIChKU0MpOgorICAgICAgICAqIGppdC9KSVRTdHVicy5jcHA6CisgICAgICAgICog
bGxpbnQvTExJbnRPZmZsaW5lQXNtQ29uZmlnLmg6CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJ
bnRlcnByZXRlci5hc206CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0
LmFzbToKKyAgICAgICAgKiBvZmZsaW5lYXNtL2JhY2tlbmRzLnJiOgorICAgICAgICAqIG9mZmxp
bmVhc20vaW5zdHJ1Y3Rpb25zLnJiOgorICAgICAgICAqIG9mZmxpbmVhc20vc2g0LnJiOiBBZGRl
ZC4KKwogMjAxMy0wMy0yMCAgQ29zbWluIFRydXRhICA8Y3RydXRhQGJsYWNrYmVycnkuY29tPgog
CiAgICAgICAgIFtRTlhdW0FSTV0gUkVHUkVTU0lPTihyMTM1MzMwKTogVmFyaW91cyBmYWlsdXJl
cyBpbiBPY3RhbmUKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9u
cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRp
b25zLmNwcAkocmV2aXNpb24gMTQ2MjEyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdPcGVyYXRpb25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTc1NCw2ICsxNzU0LDE4IEBAIFNZ
TUJPTF9TVFJJTkcoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIjoKICAgICAibW92ZSAkYTAsICRz
MCIgIlxuIgogICAgICJiICIgTE9DQUxfUkVGRVJFTkNFKGdldEhvc3RDYWxsUmV0dXJuVmFsdWVX
aXRoRXhlY1N0YXRlKSAiXG4iCiApOworI2VsaWYgQ09NUElMRVIoR0NDKSAmJiBDUFUoU0g0KQor
YXNtKAorIi50ZXh0IiAiXG4iCisiLmdsb2JsICIgU1lNQk9MX1NUUklORyhnZXRIb3N0Q2FsbFJl
dHVyblZhbHVlKSAiXG4iCitISURFX1NZTUJPTChnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiXG4i
CitTWU1CT0xfU1RSSU5HKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICI6IiAiXG4iCisgICAgImFk
ZCAjLTQwLCByMTQiICJcbiIKKyAgICAibW92LmwgQHIxNCwgcjE0IiAiXG4iCisgICAgIm1vdiBy
MTQsIHI0IiAiXG4iCisgICAgImJyYSAiIExPQ0FMX1JFRkVSRU5DRShnZXRIb3N0Q2FsbFJldHVy
blZhbHVlV2l0aEV4ZWNTdGF0ZSkgIlxuIgorICAgICJub3AiICJcbiIKKyk7CiAjZW5kaWYKIAog
ZXh0ZXJuICJDIiBFbmNvZGVkSlNWYWx1ZSBIT1NUX0NBTExfUkVUVVJOX1ZBTFVFX09QVElPTiBn
ZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNTdGF0ZShFeGVjU3RhdGUqIGV4ZWMpCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAkocmV2aXNpb24gMTQ2MjEyKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTMyMiw2ICszMjIsOSBAQCBTWU1CT0xfU1RSSU5HKGN0aVRyYW1wb2xpbmUpICI6IiAiXG4i
CiAgICAgImFkZCAjMTIsIHIxNSIgIlxuIgogICAgICJydHMiICJcbiIKICAgICAibm9wIiAiXG4i
CisiLmdsb2JsICIgU1lNQk9MX1NUUklORyhjdGlUcmFtcG9saW5lRW5kKSAiXG4iCitISURFX1NZ
TUJPTChjdGlUcmFtcG9saW5lRW5kKSAiXG4iCitTWU1CT0xfU1RSSU5HKGN0aVRyYW1wb2xpbmVF
bmQpICI6IiAiXG4iCiApOwogCiBhc20gdm9sYXRpbGUgKApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xMSW50T2ZmbGluZUFzbUNvbmZpZy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludE9mZmxpbmVBc21Db25maWcuaAkocmV2aXNpb24g
MTQ2MjEyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50T2ZmbGluZUFzbUNv
bmZpZy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw2ICszOSw3IEBACiAjZGVmaW5lIE9GRkxJTkVf
QVNNX1g4Nl82NCAwCiAjZGVmaW5lIE9GRkxJTkVfQVNNX0FSTXY3cyAwCiAjZGVmaW5lIE9GRkxJ
TkVfQVNNX01JUFMgMAorI2RlZmluZSBPRkZMSU5FX0FTTV9TSDQgMAogCiAjZWxzZSAvLyAhRU5B
QkxFKExMSU5UX0NfTE9PUCkKIApAQCAtNzQsNiArNzUsMTIgQEAKICNkZWZpbmUgT0ZGTElORV9B
U01fTUlQUyAwCiAjZW5kaWYKIAorI2lmIENQVShTSDQpCisjZGVmaW5lIE9GRkxJTkVfQVNNX1NI
NCAxCisjZWxzZQorI2RlZmluZSBPRkZMSU5FX0FTTV9TSDQgMAorI2VuZGlmCisKICNlbmRpZiAv
LyAhRU5BQkxFKExMSU5UX0NfTE9PUCkKIAogI2lmIFVTRShKU1ZBTFVFNjQpCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRl
cjMyXzY0LmFzbQkocmV2aXNpb24gMTQ2MjEyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xs
aW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20JKHdvcmtpbmcgY29weSkKQEAgLTExNyw2
ICsxMTcsMTAgQEAgbWFjcm8gY0NhbGwyKGZ1bmN0aW9uLCBhcmcxLCBhcmcyKQogICAgICAgICBt
b3ZlIGFyZzEsIGEwCiAgICAgICAgIG1vdmUgYXJnMiwgYTEKICAgICAgICAgY2FsbCBmdW5jdGlv
bgorICAgIGVsc2lmIFNINAorICAgICAgICBtb3ZlIGFyZzEsIGEwCisgICAgICAgIG1vdmUgYXJn
MiwgYTEKKyAgICAgICAgY2FsbCBmdW5jdGlvbgogICAgIGVsc2lmIENfTE9PUAogICAgICAgICBj
bG9vcENhbGxTbG93UGF0aCBmdW5jdGlvbiwgYXJnMSwgYXJnMgogICAgIGVsc2UKQEAgLTE0NCw2
ICsxNDgsMTIgQEAgbWFjcm8gY0NhbGw0KGZ1bmN0aW9uLCBhcmcxLCBhcmcyLCBhcmczLAogICAg
ICAgICBtb3ZlIGFyZzMsIGEyCiAgICAgICAgIG1vdmUgYXJnNCwgYTMKICAgICAgICAgY2FsbCBm
dW5jdGlvbgorICAgIGVsc2lmIFNINAorICAgICAgICBtb3ZlIGFyZzEsIGEwCisgICAgICAgIG1v
dmUgYXJnMiwgYTEKKyAgICAgICAgbW92ZSBhcmczLCBhMgorICAgICAgICBtb3ZlIGFyZzQsIGEz
CisgICAgICAgIGNhbGwgZnVuY3Rpb24KICAgICBlbHNpZiBDX0xPT1AKICAgICAgICAgZXJyb3IK
ICAgICBlbHNlCkBAIC0xOTE4LDYgKzE5MjgsMTkgQEAgbWFjcm8gbmF0aXZlQ2FsbFRyYW1wb2xp
bmUoZXhlY3V0YWJsZU9mZgogICAgICAgICBjYWxsIGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9u
W3QxXQogICAgICAgICByZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybih0MykKICAgICAg
ICAgbG9hZHAgSklUU3RhY2tGcmFtZTo6Z2xvYmFsRGF0YVtzcF0sIHQzCisgICAgZWxzaWYgU0g0
CisgICAgICAgIGxvYWRwIEpJVFN0YWNrRnJhbWU6Omdsb2JhbERhdGFbc3BdLCB0MworICAgICAg
ICBzdG9yZXAgY2ZyLCBKU0dsb2JhbERhdGE6OnRvcENhbGxGcmFtZVt0M10KKyAgICAgICAgbW92
ZSB0MCwgdDIKKyAgICAgICAgcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKHQzKQorICAg
ICAgICBzdG9yZXAgdDMsIFJldHVyblBDW2Nmcl0KKyAgICAgICAgbW92ZSBjZnIsIHQwCisgICAg
ICAgIGxvYWRpIENhbGxlZSArIFBheWxvYWRPZmZzZXRbY2ZyXSwgdDEKKyAgICAgICAgbG9hZHAg
SlNGdW5jdGlvbjo6bV9leGVjdXRhYmxlW3QxXSwgdDEKKyAgICAgICAgbW92ZSB0MiwgY2ZyCisg
ICAgICAgIGNhbGwgZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb25bdDFdCisgICAgICAgIHJlc3Rv
cmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKHQzKQorICAgICAgICBsb2FkcCBKSVRTdGFja0Zy
YW1lOjpnbG9iYWxEYXRhW3NwXSwgdDMKICAgICBlbHNpZiBDX0xPT1AKICAgICAgICAgbG9hZHAg
SklUU3RhY2tGcmFtZTo6Z2xvYmFsRGF0YVtzcF0sIHQzCiAgICAgICAgIHN0b3JlcCBjZnIsIEpT
R2xvYmFsRGF0YTo6dG9wQ2FsbEZyYW1lW3QzXQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQkocmV2aXNpb24gMTQ2MjEy
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNt
CSh3b3JraW5nIGNvcHkpCkBAIC0xODUsNiArMTg1LDggQEAgbWFjcm8gcHJlc2VydmVSZXR1cm5B
ZGRyZXNzQWZ0ZXJDYWxsKGRlcwogICAgIGlmIENfTE9PUCBvciBBUk12NyBvciBNSVBTCiAgICAg
ICAgICMgSW4gQ19MT09QIGNhc2UsIHdlJ3JlIG9ubHkgcHJlc2VydmluZyB0aGUgYnl0ZWNvZGUg
dlBDLgogICAgICAgICBtb3ZlIGxyLCBkZXN0aW5hdGlvblJlZ2lzdGVyCisgICAgZWxzaWYgU0g0
CisgICAgICAgIHN0c3ByIGRlc3RpbmF0aW9uUmVnaXN0ZXIKICAgICBlbHNpZiBYODYgb3IgWDg2
XzY0CiAgICAgICAgIHBvcCBkZXN0aW5hdGlvblJlZ2lzdGVyCiAgICAgZWxzZQpAQCAtMTk2LDYg
KzE5OCw4IEBAIG1hY3JvIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKHMKICAgICBp
ZiBDX0xPT1Agb3IgQVJNdjcgb3IgTUlQUwogICAgICAgICAjIEluIENfTE9PUCBjYXNlLCB3ZSdy
ZSBvbmx5IHJlc3RvcmluZyB0aGUgYnl0ZWNvZGUgdlBDLgogICAgICAgICBtb3ZlIHNvdXJjZVJl
Z2lzdGVyLCBscgorICAgIGVsc2lmIFNINAorICAgICAgICBsZHNwciBzb3VyY2VSZWdpc3Rlcgog
ICAgIGVsc2lmIFg4NiBvciBYODZfNjQKICAgICAgICAgcHVzaCBzb3VyY2VSZWdpc3RlcgogICAg
IGVsc2UKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2JhY2tlbmRzLnJi
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2JhY2tlbmRz
LnJiCShyZXZpc2lvbiAxNDYyMTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFz
bS9iYWNrZW5kcy5yYgkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQCByZXF1aXJlICJh
cm0iCiByZXF1aXJlICJhc3QiCiByZXF1aXJlICJ4ODYiCiByZXF1aXJlICJtaXBzIgorcmVxdWly
ZSAic2g0IgogcmVxdWlyZSAiY2xvb3AiCiAKIEJBQ0tFTkRTID0KQEAgLTM0LDYgKzM1LDcgQEAg
QkFDS0VORFMgPQogICAgICAiWDg2XzY0IiwKICAgICAgIkFSTXY3IiwKICAgICAgIk1JUFMiLAor
ICAgICAiU0g0IiwKICAgICAgIkNfTE9PUCIKICAgICBdCiAKQEAgLTQ4LDYgKzUwLDcgQEAgV09S
S0lOR19CQUNLRU5EUyA9CiAgICAgICJYODZfNjQiLAogICAgICAiQVJNdjciLAogICAgICAiTUlQ
UyIsCisgICAgICJTSDQiLAogICAgICAiQ19MT09QIgogICAgIF0KIApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL29mZmxpbmVhc20vaW5zdHJ1Y3Rpb25zLnJiCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2luc3RydWN0aW9ucy5yYgkocmV2aXNpb24g
MTQ2MjEyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vaW5zdHJ1Y3Rpb25z
LnJiCSh3b3JraW5nIGNvcHkpCkBAIC0yNzUsNiArMjc1LDEyIEBAIE1JUFNfSU5TVFJVQ1RJT05T
ID0KICAgICAicGljaGRycmEiCiAgICAgXQogCitTSDRfSU5TVFJVQ1RJT05TID0KKyAgICBbCisg
ICAgImxkc3ByIiwKKyAgICAic3RzcHIiCisgICAgXQorCiBDWFhfSU5TVFJVQ1RJT05TID0KICAg
ICBbCiAgICAgICJjbG9vcENyYXNoIiwgICAgICAgICAgICMgbm8gb3BlcmFuZHMKQEAgLTI5MSw3
ICsyOTcsNyBAQCBDWFhfSU5TVFJVQ1RJT05TID0KICAgICAgImNsb29wRG8iLCAgICAgICAgICAg
ICAgIyBubyBvcGVyYW5kcwogICAgIF0KIAotSU5TVFJVQ1RJT05TID0gTUFDUk9fSU5TVFJVQ1RJ
T05TICsgWDg2X0lOU1RSVUNUSU9OUyArIEFSTXY3X0lOU1RSVUNUSU9OUyArIE1JUFNfSU5TVFJV
Q1RJT05TICsgQ1hYX0lOU1RSVUNUSU9OUworSU5TVFJVQ1RJT05TID0gTUFDUk9fSU5TVFJVQ1RJ
T05TICsgWDg2X0lOU1RSVUNUSU9OUyArIEFSTXY3X0lOU1RSVUNUSU9OUyArIE1JUFNfSU5TVFJV
Q1RJT05TICsgU0g0X0lOU1RSVUNUSU9OUyArIENYWF9JTlNUUlVDVElPTlMKIAogSU5TVFJVQ1RJ
T05fUEFUVEVSTiA9IFJlZ2V4cC5uZXcoJ1xcQSgoJyArIElOU1RSVUNUSU9OUy5qb2luKCcpfCgn
KSArICcpKVxcWicpCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3No
NC5yYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9zaDQu
cmIJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9zaDQu
cmIJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNzk3IEBACisjIENvcHlyaWdodCAoQykgMjAxMyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxMyBDaXNj
byBTeXN0ZW1zLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQ0lTQ08gU1lTVEVNUywgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorIyBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorIyBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQ0lTQ08gU1lTVEVNUywgSU5DLiBPUiBJVFMKKyMgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisjIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyMgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisjIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyMgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorCitjbGFzcyBOb2RlCisgICAgZGVmIHNoNFNpbmdsZUhpCisgICAg
ICAgIGRvdWJsZU9wZXJhbmQgPSBzaDRPcGVyYW5kCisgICAgICAgIHJhaXNlICJCb2d1cyByZWdp
c3RlciBuYW1lICN7ZG91YmxlT3BlcmFuZH0iIHVubGVzcyBkb3VibGVPcGVyYW5kID1+IC9eZHIv
CisgICAgICAgICJmciIgKyAoJH4ucG9zdF9tYXRjaC50b19pKS50b19zCisgICAgZW5kCisgICAg
ZGVmIHNoNFNpbmdsZUxvCisgICAgICAgIGRvdWJsZU9wZXJhbmQgPSBzaDRPcGVyYW5kCisgICAg
ICAgIHJhaXNlICJCb2d1cyByZWdpc3RlciBuYW1lICN7ZG91YmxlT3BlcmFuZH0iIHVubGVzcyBk
b3VibGVPcGVyYW5kID1+IC9eZHIvCisgICAgICAgICJmciIgKyAoJH4ucG9zdF9tYXRjaC50b19p
ICsgMSkudG9fcworICAgIGVuZAorZW5kCisKK2NsYXNzIFNwZWNpYWxSZWdpc3RlciA8IE5vQ2hp
bGRyZW4KKyAgICBkZWYgc2g0T3BlcmFuZAorICAgICAgICBAbmFtZQorICAgIGVuZAorCisgICAg
ZGVmIGR1bXAKKyAgICAgICAgQG5hbWUKKyAgICBlbmQKKworICAgIGRlZiByZWdpc3Rlcj8KKyAg
ICAgICAgdHJ1ZQorICAgIGVuZAorZW5kCisKK1NINF9UTVBfR1BSUyA9IFsgU3BlY2lhbFJlZ2lz
dGVyLm5ldygicjMiKSwgU3BlY2lhbFJlZ2lzdGVyLm5ldygicjExIiksIFNwZWNpYWxSZWdpc3Rl
ci5uZXcoInIxMyIpIF0KK1NINF9UTVBfRlBSID0gU3BlY2lhbFJlZ2lzdGVyLm5ldygiZHIxMCIp
CisKK2NsYXNzIFRtcFJlZ2lzdGVyCisgICAgQEB2ZWN0b3IgPSAwCisKKyAgICBkZWYgc2VsZi5j
bGFpbUdQUlNjcmF0Y2gKKyAgICAgICAgdG1wID0gMAorICAgICAgICB3aGlsZSB0bXAgPCBTSDRf
VE1QX0dQUlMubGVuZ3RoCisgICAgICAgICAgICBpZiAoKDEgPDwgdG1wKSAmIEBAdmVjdG9yKSA9
PSAwCisgICAgICAgICAgICAgICAgQEB2ZWN0b3IgfD0gKDEgPDwgdG1wKQorICAgICAgICAgICAg
ICAgIHJldHVybiBTSDRfVE1QX0dQUlNbdG1wXQorICAgICAgICAgICAgZW5kCisgICAgICAgICAg
ICB0bXAgKz0gMQorICAgICAgICBlbmQKKyAgICAgICAgcmFpc2UgIk5vIG1vcmUgYXZhaWxhYmxl
IHRlbXBvcmFyeSBHUCByZWdpc3RlciIKKyAgICBlbmQKKworICAgIGRlZiBzZWxmLnJlbGVhc2VH
UFJTY3JhdGNoKHNjcmF0Y2hSZWcpCisgICAgICAgIGlmIHNjcmF0Y2hSZWcgPT0gbmlsCisgICAg
ICAgICAgICByZXR1cm4KKyAgICAgICAgZW5kCisgICAgICAgIHRtcCA9IDAKKyAgICAgICAgd2hp
bGUgdG1wIDwgU0g0X1RNUF9HUFJTLmxlbmd0aAorICAgICAgICAgICAgaWYgc2NyYXRjaFJlZyA9
PSBTSDRfVE1QX0dQUlNbdG1wXQorICAgICAgICAgICAgICAgIEBAdmVjdG9yICY9IH4oMSA8PCB0
bXApCisgICAgICAgICAgICAgICAgcmV0dXJuCisgICAgICAgICAgICBlbmQKKyAgICAgICAgICAg
IHRtcCArPSAxCisgICAgICAgIGVuZAorICAgICAgICByYWlzZSAiVHJ5IHRvIHJlbGVhc2UgYW4g
dW5jbGFpbWVkIEdQIHJlZ2lzdGVyIgorICAgIGVuZAorZW5kCisKK2NsYXNzIFJlZ2lzdGVySUQK
KyAgICBkZWYgc2g0T3BlcmFuZAorICAgICAgICBjYXNlIG5hbWUKKyAgICAgICAgd2hlbiAiYTAi
CisgICAgICAgICAgICAicjQiCisgICAgICAgIHdoZW4gImExIgorICAgICAgICAgICAgInI1Igor
ICAgICAgICB3aGVuICJ0MCIKKyAgICAgICAgICAgICJyMCIKKyAgICAgICAgd2hlbiAidDEiCisg
ICAgICAgICAgICAicjEiCisgICAgICAgIHdoZW4gInQyIgorICAgICAgICAgICAgInIyIgorICAg
ICAgICB3aGVuICJ0MyIKKyAgICAgICAgICAgICJyMTAiCisgICAgICAgIHdoZW4gInQ0IgorICAg
ICAgICAgICAgInI2IgorICAgICAgICB3aGVuICJjZnIiCisgICAgICAgICAgICAicjE0IgorICAg
ICAgICB3aGVuICJzcCIKKyAgICAgICAgICAgICJyMTUiCisgICAgICAgIHdoZW4gImxyIgorICAg
ICAgICAgICAgInByIgorICAgICAgICBlbHNlCisgICAgICAgICAgICByYWlzZSAiQmFkIHJlZ2lz
dGVyICN7bmFtZX0gZm9yIFNINCBhdCAje2NvZGVPcmlnaW5TdHJpbmd9IgorICAgICAgICBlbmQK
KyAgICBlbmQKK2VuZAorCitjbGFzcyBGUFJlZ2lzdGVySUQKKyAgICBkZWYgc2g0T3BlcmFuZAor
ICAgICAgICBjYXNlIG5hbWUKKyAgICAgICAgd2hlbiAiZnQwIiwgImZyIgorICAgICAgICAgICAg
ImRyMCIKKyAgICAgICAgd2hlbiAiZnQxIgorICAgICAgICAgICAgImRyMiIKKyAgICAgICAgd2hl
biAiZnQyIgorICAgICAgICAgICAgImRyNCIKKyAgICAgICAgd2hlbiAiZnQzIgorICAgICAgICAg
ICAgImRyNiIKKyAgICAgICAgd2hlbiAiZnQ0IgorICAgICAgICAgICAgImRyOCIKKyAgICAgICAg
d2hlbiAiZmEwIgorICAgICAgICAgICAgImRyMTIiCisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IHJhaXNlICJCYWQgcmVnaXN0ZXIgI3tuYW1lfSBmb3IgU0g0IGF0ICN7Y29kZU9yaWdpblN0cmlu
Z30iCisgICAgICAgIGVuZAorICAgIGVuZAorZW5kCisKK2NsYXNzIEltbWVkaWF0ZQorICAgIGRl
ZiBzaDRPcGVyYW5kCisgICAgICAgIHJhaXNlICJJbnZhbGlkIGltbWVkaWF0ZSAje3ZhbHVlfSBh
dCAje2NvZGVPcmlnaW5TdHJpbmd9IiBpZiB2YWx1ZSA8IC0xMjggb3IgdmFsdWUgPiAxMjcKKyAg
ICAgICAgIiMje3ZhbHVlfSIKKyAgICBlbmQKK2VuZAorCitjbGFzcyBBZGRyZXNzCisgICAgZGVm
IHNoNE9wZXJhbmQKKyAgICAgICAgcmFpc2UgIkJhZCBvZmZzZXQgI3tvZmZzZXQudmFsdWV9IGF0
ICN7Y29kZU9yaWdpblN0cmluZ30iIGlmIG9mZnNldC52YWx1ZSA8IDAgb3Igb2Zmc2V0LnZhbHVl
ID4gNjAKKyAgICAgICAgaWYgb2Zmc2V0LnZhbHVlID09IDAKKyAgICAgICAgICAgICJAI3tiYXNl
LnNoNE9wZXJhbmR9IgorICAgICAgICBlbHNlCisgICAgICAgICAgICAiQCgje29mZnNldC52YWx1
ZX0sICN7YmFzZS5zaDRPcGVyYW5kfSkiCisgICAgICAgIGVuZAorICAgIGVuZAorZW5kCisKK2Ns
YXNzIEFic29sdXRlQWRkcmVzcworICAgIGRlZiBzaDRPcGVyYW5kCisgICAgICAgICIje2FkZHJl
c3MudmFsdWV9IgorICAgIGVuZAorZW5kCisKK2RlZiBpc1Bvd2VyT2ZUd28odmFsKQorICAgIHRt
cCA9IDEKKyAgICB3aGlsZSB0bXAgPCAzMgorICAgICAgICBpZiAyICoqIHRtcCA9PSB2YWwKKyAg
ICAgICAgICAgIHJldHVybiB0bXAKKyAgICAgICAgZW5kCisgICAgICAgIHRtcCArPSAxCisgICAg
ZW5kCisgICAgcmV0dXJuIC0xCitlbmQKKworY2xhc3MgU2VxdWVuY2UKKyAgICBkZWYgZ2V0TW9k
aWZpZWRMaXN0U0g0CisgICAgICAgIHJlc3VsdCA9IEBsaXN0CisKKyAgICAgICAgIyBWZXJpZnkg
dGhhdCB3ZSB3aWxsIG9ubHkgc2VlIGluc3RydWN0aW9ucyBhbmQgbGFiZWxzLgorICAgICAgICBy
ZXN1bHQuZWFjaCB7CisgICAgICAgICAgICB8IG5vZGUgfAorICAgICAgICAgICAgdW5sZXNzIG5v
ZGUuaXNfYT8gSW5zdHJ1Y3Rpb24gb3IKKyAgICAgICAgICAgICAgICAgICAgbm9kZS5pc19hPyBM
YWJlbCBvcgorICAgICAgICAgICAgICAgICAgICBub2RlLmlzX2E/IExvY2FsTGFiZWwgb3IKKyAg
ICAgICAgICAgICAgICAgICAgbm9kZS5pc19hPyBTa2lwCisgICAgICAgICAgICAgICAgcmFpc2Ug
IlVuZXhwZWN0ZWQgI3tub2RlLmluc3BlY3R9IGF0ICN7bm9kZS5jb2RlT3JpZ2lufSIKKyAgICAg
ICAgICAgIGVuZAorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHJlc3VsdAorICAgIGVuZAor
ZW5kCisKK2RlZiBzaDRPcGVyYW5kcyhvcGVyYW5kcykKKyAgICBvcGVyYW5kcy5tYXB7fHZ8IHYu
c2g0T3BlcmFuZH0uam9pbigiLCAiKQorZW5kCisKK2RlZiBlbWl0U0g0TG9hZENvbnN0YW50KGNv
bnN0YW50LCBvcGVyYW5kKQorICAgIGNvbnN0bGFiZWwgPSBMb2NhbExhYmVsLnVuaXF1ZSgibG9h
ZGNvbnN0YW50IikKKyAgICAkYXNtLnB1dHMgIi5iYWxpZ24gNCIKKyAgICAkYXNtLnB1dHMgIm1v
di5sIEAoOCwgUEMpLCAje29wZXJhbmQuc2g0T3BlcmFuZH0iCisgICAgJGFzbS5wdXRzICJicmEg
I3tMb2NhbExhYmVsUmVmZXJlbmNlLm5ldyhjb2RlT3JpZ2luLCBjb25zdGxhYmVsKS5hc21MYWJl
bH0iCisgICAgJGFzbS5wdXRzICJub3AiCisgICAgJGFzbS5wdXRzICJub3AiCisgICAgJGFzbS5w
dXRzICIubG9uZyAje2NvbnN0YW50fSIKKyAgICBjb25zdGxhYmVsLmxvd2VyKCJTSDQiKQorZW5k
CisKK2RlZiBlbWl0U0g0QnJhbmNoKHNoNG9wY29kZSwgb3BlcmFuZCkKKyAgICAkYXNtLnB1dHMg
IiN7c2g0b3Bjb2RlfSBAI3tvcGVyYW5kLnNoNE9wZXJhbmR9IgorICAgICRhc20ucHV0cyAibm9w
IgorZW5kCisKK2RlZiBlbWl0U0g0Sm1wRmFyKGNvbnN0YW50KQorICAgIHRtcHJlZyA9IFRtcFJl
Z2lzdGVyLmNsYWltR1BSU2NyYXRjaAorICAgICRhc20ucHV0cyAiLmJhbGlnbiA0IgorICAgICRh
c20ucHV0cyAibW92LmwgQCg4LCBQQyksICN7dG1wcmVnLnNoNE9wZXJhbmR9IgorICAgICRhc20u
cHV0cyAiam1wIEAje3RtcHJlZy5zaDRPcGVyYW5kfSIKKyAgICAkYXNtLnB1dHMgIm5vcCIKKyAg
ICAkYXNtLnB1dHMgIm5vcCIKKyAgICAkYXNtLnB1dHMgIi5sb25nICN7Y29uc3RhbnR9IgorICAg
IFRtcFJlZ2lzdGVyLnJlbGVhc2VHUFJTY3JhdGNoKHRtcHJlZykKK2VuZAorCitkZWYgZW1pdFNI
NFNoaWZ0SW1tKHZhbCwgb3BlcmFuZCwgZGlyZWN0aW9uKQorICAgIHRtcCA9IHZhbAorICAgIHdo
aWxlIHRtcCA+IDAKKyAgICAgICAgaWYgdG1wID49IDE2CisgICAgICAgICAgICAkYXNtLnB1dHMg
InNobCN7ZGlyZWN0aW9ufTE2ICN7b3BlcmFuZC5zaDRPcGVyYW5kfSIKKyAgICAgICAgICAgIHRt
cCAtPSAxNgorICAgICAgICBlbHNpZiB0bXAgPj0gOAorICAgICAgICAgICAgJGFzbS5wdXRzICJz
aGwje2RpcmVjdGlvbn04ICN7b3BlcmFuZC5zaDRPcGVyYW5kfSIKKyAgICAgICAgICAgIHRtcCAt
PSA4CisgICAgICAgIGVsc2lmIHRtcCA+PSAyCisgICAgICAgICAgICAkYXNtLnB1dHMgInNobCN7
ZGlyZWN0aW9ufTIgI3tvcGVyYW5kLnNoNE9wZXJhbmR9IgorICAgICAgICAgICAgdG1wIC09IDIK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgJGFzbS5wdXRzICJzaGwje2RpcmVjdGlvbn0gI3tv
cGVyYW5kLnNoNE9wZXJhbmR9IgorICAgICAgICAgICAgdG1wIC09IDEKKyAgICAgICAgZW5kCisg
ICAgZW5kCitlbmQKKworZGVmIGVtaXRTSDRBZGRJbW0odmFsLCBvcGVyYW5kKQorICAgIGlmIHZh
bCAhPSAwCisgICAgICAgIGlmIHZhbCA+PSAtMTI4IGFuZCB2YWwgPD0gMTI3CisgICAgICAgICAg
ICAkYXNtLnB1dHMgImFkZCAjI3t2YWx9LCAje29wZXJhbmQuc2g0T3BlcmFuZH0iCisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIGVtaXRTSDRMb2FkQ29uc3RhbnQodmFsLCB0bXByZWcgPSBUbXBS
ZWdpc3Rlci5jbGFpbUdQUlNjcmF0Y2gpCisgICAgICAgICAgICAkYXNtLnB1dHMgImFkZCAje3No
NE9wZXJhbmRzKFt0bXByZWcsIG9wZXJhbmRdKX0iCisgICAgICAgICAgICBUbXBSZWdpc3Rlci5y
ZWxlYXNlR1BSU2NyYXRjaCh0bXByZWcpCisgICAgICAgIGVuZAorICAgIGVuZAorZW5kCisKK2Rl
ZiBlbWl0U0g0TG9hZEltbSh2YWwsIG9wZXJhbmQpCisgICAgaWYgdmFsID09IDAKKyAgICAgICAg
JGFzbS5wdXRzICJ4b3IgI3tzaDRPcGVyYW5kcyhbb3BlcmFuZCwgb3BlcmFuZF0pfSIKKyAgICBl
bHNpZiB2YWwgPj0gLTEyOCBhbmQgdmFsIDw9IDEyNworICAgICAgICAkYXNtLnB1dHMgIm1vdiAj
I3t2YWx9LCAje29wZXJhbmQuc2g0T3BlcmFuZH0iCisgICAgZWxzZQorICAgICAgICBlbWl0U0g0
TG9hZENvbnN0YW50KHZhbCwgb3BlcmFuZCkKKyAgICBlbmQKK2VuZAorCitkZWYgZW1pdFNINEJh
c2VJbmRleFB0clRvUmVnKGJpb3AsIGV4dHJhb2Zmc2V0LCByZWdvcCkKKyAgICByYWlzZSAiSW52
YWxpZCBvcGVyYW5kICN7YmlvcH0iIHVubGVzcyBiaW9wLmlzX2E/IEJhc2VJbmRleAorICAgICRh
c20ucHV0cyAibW92ICN7c2g0T3BlcmFuZHMoW2Jpb3AuaW5kZXgsIHRtcHJlZyA9IFRtcFJlZ2lz
dGVyLmNsYWltR1BSU2NyYXRjaF0pfSIKKyAgICBwbzIgPSBpc1Bvd2VyT2ZUd28oYmlvcC5zY2Fs
ZSkKKyAgICBpZiAocG8yID4gMCkKKyAgICAgICAgZW1pdFNINFNoaWZ0SW1tKHBvMiwgdG1wcmVn
LCAibCIpCisgICAgZWxzZQorICAgICAgICByYWlzZSAiSW52YWxpZCBzY2FsZSAje2Jpb3Auc2Nh
bGV9IiB1bmxlc3MgYmlvcC5zY2FsZSA9PSAxCisgICAgZW5kCisgICAgZW1pdFNINEFkZEltbShi
aW9wLm9mZnNldC52YWx1ZSArIGV4dHJhb2Zmc2V0LCB0bXByZWcpCisgICAgJGFzbS5wdXRzICJt
b3YgI3tzaDRPcGVyYW5kcyhbYmlvcC5iYXNlLCByZWdvcF0pfSIKKyAgICAkYXNtLnB1dHMgImFk
ZCAje3NoNE9wZXJhbmRzKFt0bXByZWcsIHJlZ29wXSl9IgorICAgIFRtcFJlZ2lzdGVyLnJlbGVh
c2VHUFJTY3JhdGNoKHRtcHJlZykKK2VuZAorCitkZWYgZW1pdFNINEFkZHJUb1JlZyhhZGRyb3As
IHJlZ29wLCBvcHNpemUsIG9wc2lnbikKKyAgICByYWlzZSAiSW52YWxpZCBvcGVyYW5kICN7YWRk
cm9wfSIgdW5sZXNzIGFkZHJvcC5pc19hPyBBZGRyZXNzCisgICAgcmFpc2UgIlVuaGFuZGxlZCBv
cHNpZ24gI3tvcHNpZ259IiBpZiBvcHNpZ24gIT0gInMiIGFuZCBvcHNpZ24gIT0gInUiCisgICAg
Y2FzZSBvcHNpemUKKyAgICB3aGVuICJsIgorICAgICAgICBtYXhpbW12YWx1ZSA9IDYwCisgICAg
d2hlbiAidyIKKyAgICAgICAgbWF4aW1tdmFsdWUgPSAzMAorICAgIHdoZW4gImIiCisgICAgICAg
IG1heGltbXZhbHVlID0gMTUKKyAgICBlbHNlCisgICAgICAgIHJhaXNlICJVbmhhbmRsZWQgb3Bz
aXplICN7b3BzaXplfSIKKyAgICBlbmQKKworICAgIGlmIGFkZHJvcC5vZmZzZXQudmFsdWUgPj0g
MCBhbmQgYWRkcm9wLm9mZnNldC52YWx1ZSA8PSBtYXhpbW12YWx1ZSBhbmQgKG9wc2l6ZSA9PSAi
bCIgb3IgcmVnb3Auc2g0T3BlcmFuZCA9PSAicjAiKQorICAgICAgICAkYXNtLnB1dHMgIm1vdi4j
e29wc2l6ZX0gI3tzaDRPcGVyYW5kcyhbYWRkcm9wLCByZWdvcF0pfSIKKyAgICBlbHNlCisgICAg
ICAgICRhc20ucHV0cyAibW92ICN7c2g0T3BlcmFuZHMoW2FkZHJvcC5iYXNlLCByZWdvcF0pfSIK
KyAgICAgICAgZW1pdFNINEFkZEltbShhZGRyb3Aub2Zmc2V0LnZhbHVlLCByZWdvcCkKKyAgICAg
ICAgJGFzbS5wdXRzICJtb3YuI3tvcHNpemV9IEAje3NoNE9wZXJhbmRzKFtyZWdvcCwgcmVnb3Bd
KX0iCisgICAgZW5kCisKKyAgICBpZiBvcHNpZ24gPT0gInUiIGFuZCBvcHNpemUgIT0gImwiCisg
ICAgICAgICRhc20ucHV0cyAiZXh0dS4je29wc2l6ZX0gI3tzaDRPcGVyYW5kcyhbcmVnb3AsIHJl
Z29wXSl9IgorICAgIGVuZAorZW5kCisKK2RlZiBlbWl0U0g0UmVnVG9BZGRyKHJlZ29wLCBvcHNp
emUsIGFkZHJvcCkKKyAgICBjYXNlIG9wc2l6ZQorICAgIHdoZW4gImwiCisgICAgICAgIG1heGlt
bXZhbHVlID0gNjAKKyAgICB3aGVuICJ3IgorICAgICAgICBtYXhpbW12YWx1ZSA9IDMwCisgICAg
d2hlbiAiYiIKKyAgICAgICAgbWF4aW1tdmFsdWUgPSAxNQorICAgIGVsc2UKKyAgICAgICAgcmFp
c2UgIlVuaGFuZGxlZCBvcHNpemUgI3tvcHNpemV9IgorICAgIGVuZAorCisgICAgaWYgYWRkcm9w
Lm9mZnNldC52YWx1ZSA+PSAwIGFuZCBhZGRyb3Aub2Zmc2V0LnZhbHVlIDw9IG1heGltbXZhbHVl
IGFuZCAob3BzaXplID09ICJsIiBvciByZWdvcC5zaDRPcGVyYW5kID09ICJyMCIpCisgICAgICAg
ICRhc20ucHV0cyAibW92LiN7b3BzaXplfSAje3NoNE9wZXJhbmRzKFtyZWdvcCwgYWRkcm9wXSl9
IgorICAgIGVsc2UKKyAgICAgICAgJGFzbS5wdXRzICJtb3YgI3tzaDRPcGVyYW5kcyhbYWRkcm9w
LmJhc2UsIHRtcHJlZyA9IFRtcFJlZ2lzdGVyLmNsYWltR1BSU2NyYXRjaF0pfSIKKyAgICAgICAg
ZW1pdFNINEFkZEltbShhZGRyb3Aub2Zmc2V0LnZhbHVlLCB0bXByZWcpCisgICAgICAgICRhc20u
cHV0cyAibW92LiN7b3BzaXplfSAje3JlZ29wLnNoNE9wZXJhbmR9LCBAI3t0bXByZWcuc2g0T3Bl
cmFuZH0iCisgICAgICAgIFRtcFJlZ2lzdGVyLnJlbGVhc2VHUFJTY3JhdGNoKHRtcHJlZykKKyAg
ICBlbmQKK2VuZAorCitkZWYgZW1pdFNINExvYWRUb1JlZyhzcmNvcGVyYW5kLCBvcHNpemUsIG9w
c2lnbiwgb3V0cmVnKQorICAgIHJhaXNlICJJbnZhbGlkIG9wZXJhbmQgI3tvdXRyZWd9IiB1bmxl
c3Mgb3V0cmVnLmlzX2E/IFJlZ2lzdGVySUQgb3Igb3V0cmVnLmlzX2E/IFNwZWNpYWxSZWdpc3Rl
cgorICAgIGlmIHNyY29wZXJhbmQuaXNfYT8gUmVnaXN0ZXJJRAorICAgICAgICBpZiBvcHNpemUg
PT0gImwiCisgICAgICAgICAgICAkYXNtLnB1dHMgIm1vdiAje3NoNE9wZXJhbmRzKFtzcmNvcGVy
YW5kLCBvdXRyZWddKX0iCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgICRhc20ucHV0cyAiZXh0
I3tvcHNpZ259LiN7b3BzaXplfSAje3NoNE9wZXJhbmRzKFtzcmNvcGVyYW5kLCBvdXRyZWddKX0i
CisgICAgICAgIGVuZAorICAgIGVsc2lmIHNyY29wZXJhbmQuaXNfYT8gSW1tZWRpYXRlICAgICAg
ICAKKyAgICAgICAgZW1pdFNINExvYWRJbW0oc3Jjb3BlcmFuZC52YWx1ZSwgb3V0cmVnKQorICAg
IGVsc2lmIHNyY29wZXJhbmQuaXNfYT8gQWRkcmVzcworICAgICAgICBlbWl0U0g0QWRkclRvUmVn
KHNyY29wZXJhbmQsIG91dHJlZywgb3BzaXplLCBvcHNpZ24pCisgICAgZWxzaWYgc3Jjb3BlcmFu
ZC5pc19hPyBBYnNvbHV0ZUFkZHJlc3MKKyAgICAgICAgZW1pdFNINExvYWRDb25zdGFudChzcmNv
cGVyYW5kLmFkZHJlc3MudmFsdWUsIG91dHJlZykKKyAgICAgICAgJGFzbS5wdXRzICJtb3YuI3tv
cHNpemV9IEAje3NoNE9wZXJhbmRzKFtvdXRyZWcsIG91dHJlZ10pfSIKKyAgICAgICAgaWYgb3Bz
aWduID09ICJ1IgorICAgICAgICAgICAgJGFzbS5wdXRzICJleHQje29wc2lnbn0uI3tvcHNpemV9
ICN7c2g0T3BlcmFuZHMoW291dHJlZywgb3V0cmVnXSl9IgorICAgICAgICBlbmQKKyAgICBlbHNp
ZiBzcmNvcGVyYW5kLmlzX2E/IEJhc2VJbmRleAorICAgICAgICBlbWl0U0g0QmFzZUluZGV4UHRy
VG9SZWcoc3Jjb3BlcmFuZCwgMCwgb3V0cmVnKQorICAgICAgICAkYXNtLnB1dHMgIm1vdi4je29w
c2l6ZX0gQCN7c2g0T3BlcmFuZHMoW291dHJlZywgb3V0cmVnXSl9IgorICAgICAgICBpZiBvcHNp
Z24gPT0gInUiCisgICAgICAgICAgICAkYXNtLnB1dHMgImV4dCN7b3BzaWdufS4je29wc2l6ZX0g
I3tzaDRPcGVyYW5kcyhbb3V0cmVnLCBvdXRyZWddKX0iCisgICAgICAgIGVuZAorICAgIGVsc2UK
KyAgICAgICAgcmFpc2UgIlVuaGFuZGxlZCBzcmNvcGVyYW5kICN7c3Jjb3BlcmFuZH0iCisgICAg
ZW5kCitlbmQKKworZGVmIGVtaXRTSDRTdG9yZUludEZyb21SZWcoaW5yZWcsIG91dG9wZXJhbmQp
CisgICAgcmFpc2UgIkludmFsaWQgb3BlcmFuZCAje2lucmVnfSIgdW5sZXNzIGlucmVnLmlzX2E/
IFJlZ2lzdGVySUQgb3IgaW5yZWcuaXNfYT8gU3BlY2lhbFJlZ2lzdGVyCisgICAgaWYgb3V0b3Bl
cmFuZC5pc19hPyBSZWdpc3RlcklECisgICAgICAgICRhc20ucHV0cyAibW92ICN7c2g0T3BlcmFu
ZHMoW2lucmVnLCBvdXRvcGVyYW5kXSl9IgorICAgIGVsc2lmIG91dG9wZXJhbmQuaXNfYT8gQWRk
cmVzcworICAgICAgICBlbWl0U0g0UmVnVG9BZGRyKGlucmVnLCAibCIsIG91dG9wZXJhbmQpCisg
ICAgZWxzaWYgb3V0b3BlcmFuZC5pc19hPyBBYnNvbHV0ZUFkZHJlc3MKKyAgICAgICAgZW1pdFNI
NExvYWRDb25zdGFudChvdXRvcGVyYW5kLmFkZHJlc3MudmFsdWUsIHRtcHJlZyA9IFRtcFJlZ2lz
dGVyLmNsYWltR1BSU2NyYXRjaCkKKyAgICAgICAgJGFzbS5wdXRzICJtb3YubCAje2lucmVnLnNo
NE9wZXJhbmR9LCBAI3t0bXByZWcuc2g0T3BlcmFuZH0iCisgICAgICAgIFRtcFJlZ2lzdGVyLnJl
bGVhc2VHUFJTY3JhdGNoKHRtcHJlZykKKyAgICBlbHNpZiBvdXRvcGVyYW5kLmlzX2E/IEJhc2VJ
bmRleAorICAgICAgICBlbWl0U0g0QmFzZUluZGV4UHRyVG9SZWcob3V0b3BlcmFuZCwgMCwgdG1w
cmVnID0gVG1wUmVnaXN0ZXIuY2xhaW1HUFJTY3JhdGNoKQorICAgICAgICAkYXNtLnB1dHMgIm1v
di5sICN7aW5yZWcuc2g0T3BlcmFuZH0sIEAje3RtcHJlZy5zaDRPcGVyYW5kfSIKKyAgICAgICAg
VG1wUmVnaXN0ZXIucmVsZWFzZUdQUlNjcmF0Y2godG1wcmVnKQorICAgIGVsc2UKKyAgICAgICAg
cmFpc2UgIlVuaGFuZGxlZCBvdXRvcGVyYW5kICN7b3V0b3BlcmFuZH0iCisgICAgZW5kCitlbmQK
KworZGVmIGVtaXRTSDRJbnRDb21wYXJlKGNtcE9wY29kZSwgb3BzaXplLCBvcHNpZ24sIG9wZXJh
bmRzKQorICAgIHRtcHJlZzEgPSBuaWwKKyAgICB0bXByZWcyID0gbmlsCisgICAgaWYgbm90KG9w
c2l6ZSA9PSAibCIgYW5kIG9wZXJhbmRzWzBdLmlzX2E/IFJlZ2lzdGVySUQpCisgICAgICAgIGVt
aXRTSDRMb2FkVG9SZWcob3BlcmFuZHNbMF0sIG9wc2l6ZSwgb3BzaWduLCB0bXByZWcxID0gVG1w
UmVnaXN0ZXIuY2xhaW1HUFJTY3JhdGNoKQorICAgIGVuZAorICAgIGlmIG5vdChvcHNpemUgPT0g
ImwiIGFuZCBvcGVyYW5kc1sxXS5pc19hPyBSZWdpc3RlcklEKQorICAgICAgICBlbWl0U0g0TG9h
ZFRvUmVnKG9wZXJhbmRzWzFdLCBvcHNpemUsIG9wc2lnbiwgdG1wcmVnMiA9IFRtcFJlZ2lzdGVy
LmNsYWltR1BSU2NyYXRjaCkKKyAgICBlbmQKKyAgICAkYXNtLnB1dHMgImNtcC8je2NtcE9wY29k
ZX0gI3tzaDRPcGVyYW5kcyhbdG1wcmVnMiA/IHRtcHJlZzIgOiBvcGVyYW5kc1sxXSwgdG1wcmVn
MSA/IHRtcHJlZzEgOiBvcGVyYW5kc1swXV0pfSIKKyAgICBUbXBSZWdpc3Rlci5yZWxlYXNlR1BS
U2NyYXRjaCh0bXByZWcxKQorICAgIFRtcFJlZ2lzdGVyLnJlbGVhc2VHUFJTY3JhdGNoKHRtcHJl
ZzIpCitlbmQKKworZGVmIGVtaXRTSDRDb25kQnJhbmNoKGNtcE9wY29kZSwgb3BzaXplLCBvcHNp
Z24sIG5lZywgb3BlcmFuZHMpCisgICAgZW1pdFNINEludENvbXBhcmUoY21wT3Bjb2RlLCBvcHNp
emUsIG9wc2lnbiwgb3BlcmFuZHMpCisgICAgaWYgKCFuZWcpCisgICAgICAgICRhc20ucHV0cyAi
YnQgI3tvcGVyYW5kc1syXS5hc21MYWJlbH0iCisgICAgZWxzZQorICAgICAgICAkYXNtLnB1dHMg
ImJmICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9IgorICAgIGVuZAorZW5kCisKK2RlZiBlbWl0U0g0
Q29tcGFyZVNldChjbXBPcGNvZGUsIG9wc2l6ZSwgb3BzaWduLCBuZWcsIG9wZXJhbmRzKQorICAg
IGVtaXRTSDRJbnRDb21wYXJlKGNtcE9wY29kZSwgb3BzaXplLCBvcHNpZ24sIG9wZXJhbmRzKQor
ICAgICRhc20ucHV0cyAibW92dCAje29wZXJhbmRzWzJdLnNoNE9wZXJhbmR9IgorICAgIGlmIChu
ZWcpCisgICAgICAgICRhc20ucHV0cyAidHN0ICN7c2g0T3BlcmFuZHMoW29wZXJhbmRzWzJdLCBv
cGVyYW5kc1syXV0pfSIKKyAgICAgICAgJGFzbS5wdXRzICJtb3Z0ICN7b3BlcmFuZHNbMl0uc2g0
T3BlcmFuZH0iCisgICAgZW5kCitlbmQKKworZGVmIGVtaXRTSDRCcmFuY2hJZk1pbnVzMChkYmxv
cCwgbGFiZWxvcCkKKyAgICAkYXNtLnB1dHMgImZjbnZkcyAje2RibG9wLnNoNE9wZXJhbmR9LCBm
cHVsIgorICAgICRhc20ucHV0cyAic3RzIGZwdWwsICN7KGZsb2F0dG1wcmVnID0gVG1wUmVnaXN0
ZXIuY2xhaW1HUFJTY3JhdGNoKS5zaDRPcGVyYW5kfSIKKworICAgICMgSWYgd2UgaGF2ZSAweDgw
MDAwMDAwLCB0aGVuIGl0J3MgYSAiLTAuMCIuCisgICAgZW1pdFNINExvYWRDb25zdGFudCgweDgw
MDAwMDAwLCBtaW51czB0bXByZWcgPSBUbXBSZWdpc3Rlci5jbGFpbUdQUlNjcmF0Y2gpCisgICAg
JGFzbS5wdXRzICJjbXAvZXEgI3tzaDRPcGVyYW5kcyhbbWludXMwdG1wcmVnLCBmbG9hdHRtcHJl
Z10pfSIKKyAgICAkYXNtLnB1dHMgImJ0ICN7bGFiZWxvcC5hc21MYWJlbH0iCisKKyAgICBUbXBS
ZWdpc3Rlci5yZWxlYXNlR1BSU2NyYXRjaChtaW51czB0bXByZWcpCisgICAgVG1wUmVnaXN0ZXIu
cmVsZWFzZUdQUlNjcmF0Y2goZmxvYXR0bXByZWcpCitlbmQKKworZGVmIGVtaXRTSDRCcmFuY2hJ
Zk5hTihkYmxvcCwgbGFiZWxvcCkKKyAgICBub3ROYU5sYWJlbCA9IExvY2FsTGFiZWwudW5pcXVl
KCJub3RuYW4iKQorCisgICAgIyBJZiB3ZSBkb24ndCBoYXZlICJFID0gRW1heCArIDEiLCBpdCdz
IG5vdCBhIE5hTi4KKyAgICAkYXNtLnB1dHMgImZjbnZkcyAje2RibG9wLnNoNE9wZXJhbmR9LCBm
cHVsIgorICAgICRhc20ucHV0cyAic3RzIGZwdWwsICN7KHRtcHJlZyA9IFRtcFJlZ2lzdGVyLmNs
YWltR1BSU2NyYXRjaCkuc2g0T3BlcmFuZH0iCisgICAgZW1pdFNINExvYWRDb25zdGFudCgweDdm
ODAwMDAwLCBtYXNrdG1wcmVnID0gVG1wUmVnaXN0ZXIuY2xhaW1HUFJTY3JhdGNoKQorICAgICRh
c20ucHV0cyAiYW5kICN7c2g0T3BlcmFuZHMoW21hc2t0bXByZWcsIHRtcHJlZ10pfSIKKyAgICAk
YXNtLnB1dHMgImNtcC9lcSAje3NoNE9wZXJhbmRzKFttYXNrdG1wcmVnLCB0bXByZWddKX0iCisg
ICAgJGFzbS5wdXRzICJiZiAje0xvY2FsTGFiZWxSZWZlcmVuY2UubmV3KGNvZGVPcmlnaW4sIG5v
dE5hTmxhYmVsKS5hc21MYWJlbH0iCisKKyAgICAjIElmIHdlIGhhdmUgIkUgPSBFbWF4ICsgMSIg
YW5kICJmICE9IDAiLCB0aGVuIGl0J3MgYSBOYU4uCisgICAgJGFzbS5wdXRzICJzdHMgZnB1bCwg
I3t0bXByZWcuc2g0T3BlcmFuZH0iCisgICAgZW1pdFNINExvYWRDb25zdGFudCgweDAwM2ZmZmZm
LCBtYXNrdG1wcmVnKQorICAgICRhc20ucHV0cyAidHN0ICN7c2g0T3BlcmFuZHMoW21hc2t0bXBy
ZWcsIHRtcHJlZ10pfSIKKyAgICAkYXNtLnB1dHMgImJmICN7bGFiZWxvcC5hc21MYWJlbH0iCisK
KyAgICBUbXBSZWdpc3Rlci5yZWxlYXNlR1BSU2NyYXRjaChtYXNrdG1wcmVnKQorICAgIFRtcFJl
Z2lzdGVyLnJlbGVhc2VHUFJTY3JhdGNoKHRtcHJlZykKKworICAgIG5vdE5hTmxhYmVsLmxvd2Vy
KCJTSDQiKQorZW5kCisKK2RlZiBlbWl0U0g0RG91YmxlQ29uZEJyYW5jaChjbXBPcGNvZGUsIG5l
Zywgb3BlcmFuZHMsIGlzdW5vcmRlcmVkKQorICAgIGlmIGlzdW5vcmRlcmVkCisgICAgICAgIGVt
aXRTSDRCcmFuY2hJZk5hTihvcGVyYW5kc1swXSwgb3BlcmFuZHNbMl0pCisgICAgICAgIGVtaXRT
SDRCcmFuY2hJZk5hTihvcGVyYW5kc1sxXSwgb3BlcmFuZHNbMl0pCisgICAgZW5kCisKKyAgICBp
ZiBjbXBPcGNvZGUgPT0gImx0IgorICAgICAgICBpZiAoIW5lZykKKyAgICAgICAgICAgIG91dGxh
YmVsID0gTG9jYWxMYWJlbC51bmlxdWUoImRjYm91dCIpCisgICAgICAgICAgICAkYXNtLnB1dHMg
ImZjbXAvZ3QgI3tzaDRPcGVyYW5kcyhbb3BlcmFuZHNbMV0sIG9wZXJhbmRzWzBdXSl9IgorICAg
ICAgICAgICAgJGFzbS5wdXRzICJidCAje0xvY2FsTGFiZWxSZWZlcmVuY2UubmV3KGNvZGVPcmln
aW4sIG91dGxhYmVsKS5hc21MYWJlbH0iCisgICAgICAgICAgICAkYXNtLnB1dHMgImZjbXAvZXEg
I3tzaDRPcGVyYW5kcyhbb3BlcmFuZHNbMV0sIG9wZXJhbmRzWzBdXSl9IgorICAgICAgICAgICAg
JGFzbS5wdXRzICJiZiAje29wZXJhbmRzWzJdLmFzbUxhYmVsfSIKKyAgICAgICAgICAgIG91dGxh
YmVsLmxvd2VyKCJTSDQiKQorICAgICAgICBlbHNlCisgICAgICAgICAgICAkYXNtLnB1dHMgImZj
bXAvZ3QgI3tzaDRPcGVyYW5kcyhbb3BlcmFuZHNbMV0sIG9wZXJhbmRzWzBdXSl9IgorICAgICAg
ICAgICAgJGFzbS5wdXRzICJidCAje29wZXJhbmRzWzJdLmFzbUxhYmVsfSIKKyAgICAgICAgICAg
ICRhc20ucHV0cyAiZmNtcC9lcSAje3NoNE9wZXJhbmRzKFtvcGVyYW5kc1sxXSwgb3BlcmFuZHNb
MF1dKX0iCisgICAgICAgICAgICAkYXNtLnB1dHMgImJ0ICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9
IgorICAgICAgICBlbmQKKyAgICBlbHNlCisgICAgICAgICRhc20ucHV0cyAiZmNtcC8je2NtcE9w
Y29kZX0gI3tzaDRPcGVyYW5kcyhbb3BlcmFuZHNbMV0sIG9wZXJhbmRzWzBdXSl9IgorICAgICAg
ICBpZiAoIW5lZykKKyAgICAgICAgICAgICRhc20ucHV0cyAiYnQgI3tvcGVyYW5kc1syXS5hc21M
YWJlbH0iCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgICRhc20ucHV0cyAiYmYgI3tvcGVyYW5k
c1syXS5hc21MYWJlbH0iCisgICAgICAgIGVuZAorICAgIGVuZAorZW5kCisKK2NsYXNzIEluc3Ry
dWN0aW9uCisgICAgZGVmIGxvd2VyU0g0CisgICAgICAgICRhc20uY29tbWVudCAiI3tjb2RlT3Jp
Z2luU3RyaW5nfSAoI3tvcGNvZGV9KSIKKyAgICAgICAgY2FzZSBvcGNvZGUKKyAgICAgICAgd2hl
biAiYWRkaSIsICJhZGRwIgorICAgICAgICAgICAgaWYgb3BlcmFuZHMuc2l6ZSA9PSAzCisgICAg
ICAgICAgICAgICAgaWYgb3BlcmFuZHNbMF0uaXNfYT8gUmVnaXN0ZXJJRAorICAgICAgICAgICAg
ICAgICAgICBpZiBvcGVyYW5kc1swXS5zaDRPcGVyYW5kID09IG9wZXJhbmRzWzJdLnNoNE9wZXJh
bmQKKyAgICAgICAgICAgICAgICAgICAgICAgICRhc20ucHV0cyAiYWRkICN7c2g0T3BlcmFuZHMo
W29wZXJhbmRzWzFdLCBvcGVyYW5kc1syXV0pfSIKKyAgICAgICAgICAgICAgICAgICAgZWxzaWYg
b3BlcmFuZHNbMV0uc2g0T3BlcmFuZCA9PSBvcGVyYW5kc1syXS5zaDRPcGVyYW5kCisgICAgICAg
ICAgICAgICAgICAgICAgICAkYXNtLnB1dHMgImFkZCAje3NoNE9wZXJhbmRzKFtvcGVyYW5kc1sw
XSwgb3BlcmFuZHNbMl1dKX0iCisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
ICAgICAgICAgICAgICRhc20ucHV0cyAibW92ICN7c2g0T3BlcmFuZHMoW29wZXJhbmRzWzBdLCBv
cGVyYW5kc1syXV0pfSIKKyAgICAgICAgICAgICAgICAgICAgICAgICRhc20ucHV0cyAiYWRkICN7
c2g0T3BlcmFuZHMoW29wZXJhbmRzWzFdLCBvcGVyYW5kc1syXV0pfSIKKyAgICAgICAgICAgICAg
ICAgICAgZW5kCisgICAgICAgICAgICAgICAgZWxzaWYgb3BlcmFuZHNbMF0uaXNfYT8gSW1tZWRp
YXRlCisgICAgICAgICAgICAgICAgICAgIGlmIChvcGVyYW5kc1sxXS5zaDRPcGVyYW5kICE9IG9w
ZXJhbmRzWzJdLnNoNE9wZXJhbmQpCisgICAgICAgICAgICAgICAgICAgICAgICAkYXNtLnB1dHMg
Im1vdiAje3NoNE9wZXJhbmRzKFtvcGVyYW5kc1sxXSwgb3BlcmFuZHNbMl1dKX0iCisgICAgICAg
ICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgICAgICAgICBlbWl0U0g0QWRkSW1tKG9wZXJh
bmRzWzBdLnZhbHVlLCBvcGVyYW5kc1syXSkKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAgICAgICAgIHJhaXNlICJVbmhhbmRsZWQgcGFyYW1ldGVycyBmb3Igb3Bjb2RlICN7b3Bj
b2RlfSBhdCAje2NvZGVPcmlnaW5TdHJpbmd9IgorICAgICAgICAgICAgICAgIGVuZAorICAgICAg
ICAgICAgZWxzaWYgb3BlcmFuZHNbMF0uaXNfYT8gSW1tZWRpYXRlCisgICAgICAgICAgICAgICAg
aWYgb3BlcmFuZHNbMV0uaXNfYT8gUmVnaXN0ZXJJRAorICAgICAgICAgICAgICAgICAgICBlbWl0
U0g0QWRkSW1tKG9wZXJhbmRzWzBdLnZhbHVlLCBvcGVyYW5kc1sxXSkKKyAgICAgICAgICAgICAg
ICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGVtaXRTSDRMb2FkVG9SZWcob3BlcmFuZHNbMV0s
ICJsIiwgInMiLCB0bXByZWcgPSBUbXBSZWdpc3Rlci5jbGFpbUdQUlNjcmF0Y2gpCisgICAgICAg
ICAgICAgICAgICAgIGVtaXRTSDRBZGRJbW0ob3BlcmFuZHNbMF0udmFsdWUsIHRtcHJlZykKKyAg
ICAgICAgICAgICAgICAgICAgZW1pdFNINFN0b3JlSW50RnJvbVJlZyh0bXByZWcsIG9wZXJhbmRz
WzFdKQorICAgICAgICAgICAgICAgICAgICBUbXBSZWdpc3Rlci5yZWxlYXNlR1BSU2NyYXRjaCh0
bXByZWcpCisgICAgICAgICAgICAgICAgZW5kCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgJGFzbS5wdXRzICJhZGQgI3tzaDRPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICAg
ICAgZW5kCisgICAgICAgIHdoZW4gInN1YmkiCisgICAgICAgICAgICBpZiBvcGVyYW5kc1swXS5p
c19hPyBJbW1lZGlhdGUKKyAgICAgICAgICAgICAgICBlbWl0U0g0QWRkSW1tKC1vcGVyYW5kc1sw
XS52YWx1ZSwgb3BlcmFuZHNbMV0pCisgICAgICAgICAgICBlbHNpZiBvcGVyYW5kc1swXS5pc19h
PyBBZGRyZXNzCisgICAgICAgICAgICAgICAgZW1pdFNINEFkZHJUb1JlZyhvcGVyYW5kc1swXSwg
dG1wcmVnID0gVG1wUmVnaXN0ZXIuY2xhaW1HUFJTY3JhdGNoLCAibCIsICJzIikKKyAgICAgICAg
ICAgICAgICAkYXNtLnB1dHMgInN1YiAje3NoNE9wZXJhbmRzKFt0bXByZWcsIG9wZXJhbmRzWzFd
XSl9IgorICAgICAgICAgICAgICAgIFRtcFJlZ2lzdGVyLnJlbGVhc2VHUFJTY3JhdGNoKHRtcHJl
ZykKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAkYXNtLnB1dHMgInN1YiAje3No
NE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgICAgICBlbmQKKyAgICAgICAgd2hlbiAibXVs
aSIsICJtdWxwIgorICAgICAgICAgICAgcG8yID0gaXNQb3dlck9mVHdvKG9wZXJhbmRzWzBdLnZh
bHVlKQorICAgICAgICAgICAgaWYgcG8yID4gMAorICAgICAgICAgICAgICAgIGVtaXRTSDRTaGlm
dEltbShwbzIsIG9wZXJhbmRzWzFdLCAibCIpCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgdG1wcmVnMSA9IG5pbAorICAgICAgICAgICAgICAgIHRtcHJlZzIgPSBuaWwKKyAgICAg
ICAgICAgICAgICBpZiBub3Qob3BlcmFuZHNbMF0uaXNfYT8gUmVnaXN0ZXJJRCkKKyAgICAgICAg
ICAgICAgICAgICAgZW1pdFNINExvYWRUb1JlZyhvcGVyYW5kc1swXSwgImwiLCAicyIsIHRtcHJl
ZzEgPSBUbXBSZWdpc3Rlci5jbGFpbUdQUlNjcmF0Y2gpCisgICAgICAgICAgICAgICAgZW5kCisg
ICAgICAgICAgICAgICAgaWYgbm90KG9wZXJhbmRzWzFdLmlzX2E/IFJlZ2lzdGVySUQpCisgICAg
ICAgICAgICAgICAgICAgIGVtaXRTSDRMb2FkVG9SZWcob3BlcmFuZHNbMV0sICJsIiwgInMiLCB0
bXByZWcyID0gVG1wUmVnaXN0ZXIuY2xhaW1HUFJTY3JhdGNoKQorICAgICAgICAgICAgICAgIGVu
ZAorICAgICAgICAgICAgICAgICRhc20ucHV0cyAibXVsLmwgI3tzaDRPcGVyYW5kcyhbdG1wcmVn
MSA/IHRtcHJlZzEgOiBvcGVyYW5kc1swXSwgdG1wcmVnMiA/IHRtcHJlZzIgOiBvcGVyYW5kc1sx
XV0pfSIKKyAgICAgICAgICAgICAgICBUbXBSZWdpc3Rlci5yZWxlYXNlR1BSU2NyYXRjaCh0bXBy
ZWcxKQorICAgICAgICAgICAgICAgIFRtcFJlZ2lzdGVyLnJlbGVhc2VHUFJTY3JhdGNoKHRtcHJl
ZzIpCisgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJzdHMgbWFjbCwgI3tvcGVyYW5kc1sxXS5z
aDRPcGVyYW5kfSIKKyAgICAgICAgICAgIGVuZAorICAgICAgICB3aGVuICJuZWdpIgorICAgICAg
ICAgICAgJGFzbS5wdXRzICJuZWcgI3tzaDRPcGVyYW5kcyhbb3BlcmFuZHNbMF0sIG9wZXJhbmRz
WzBdXSl9IgorICAgICAgICB3aGVuICJhbmRpIiwgIm9yaSIsICJ4b3JpIgorICAgICAgICAgICAg
c2g0b3Bjb2RlID0gb3Bjb2RlWzAuLi0yXQorICAgICAgICAgICAgaWYgb3BlcmFuZHNbMF0uaXNf
YT8gSW1tZWRpYXRlIGFuZCBvcGVyYW5kc1swXS52YWx1ZSA+PSAwIGFuZCBvcGVyYW5kc1swXS52
YWx1ZSA8PSAyNTUgYW5kIG9wZXJhbmRzWzFdLnNoNE9wZXJhbmQgPT0gInIwIgorICAgICAgICAg
ICAgICAgICRhc20ucHV0cyAiI3tzaDRvcGNvZGV9ICN7c2g0T3BlcmFuZHMob3BlcmFuZHMpfSIK
KyAgICAgICAgICAgIGVsc2lmIG9wZXJhbmRzWzBdLmlzX2E/IEltbWVkaWF0ZQorICAgICAgICAg
ICAgICAgIGVtaXRTSDRMb2FkSW1tKG9wZXJhbmRzWzBdLnZhbHVlLCB0bXByZWcgPSBUbXBSZWdp
c3Rlci5jbGFpbUdQUlNjcmF0Y2gpCisgICAgICAgICAgICAgICAgJGFzbS5wdXRzICIje3NoNG9w
Y29kZX0gI3tzaDRPcGVyYW5kcyhbdG1wcmVnLCBvcGVyYW5kc1sxXV0pfSIKKyAgICAgICAgICAg
ICAgICBUbXBSZWdpc3Rlci5yZWxlYXNlR1BSU2NyYXRjaCh0bXByZWcpCisgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgJGFzbS5wdXRzICIje3NoNG9wY29kZX0gI3tzaDRPcGVyYW5k
cyhvcGVyYW5kcyl9IgorICAgICAgICAgICAgZW5kCisgICAgICAgIHdoZW4gInVsc2hpZnRpIiwg
ImxzaGlmdGkiCisgICAgICAgICAgICBpZiBvcGVyYW5kc1swXS5pc19hPyBJbW1lZGlhdGUKKyAg
ICAgICAgICAgICAgICBlbWl0U0g0U2hpZnRJbW0ob3BlcmFuZHNbMF0udmFsdWUsIG9wZXJhbmRz
WzFdLCAibCIpCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJz
aGxkICN7c2g0T3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgICAgIGVuZAorICAgICAgICB3
aGVuICJyc2hpZnRpIgorICAgICAgICAgICAgaWYgb3BlcmFuZHNbMF0uaXNfYT8gUmVnaXN0ZXJJ
RAorICAgICAgICAgICAgICAgICRhc20ucHV0cyAibmVnICN7c2g0T3BlcmFuZHMoW29wZXJhbmRz
WzBdLCB0bXByZWcgPSBUbXBSZWdpc3Rlci5jbGFpbUdQUlNjcmF0Y2hdKX0iCisgICAgICAgICAg
ICAgICAgJGFzbS5wdXRzICJzaGFkICN7c2g0T3BlcmFuZHMoW3RtcHJlZywgb3BlcmFuZHNbMV1d
KX0iCisgICAgICAgICAgICAgICAgVG1wUmVnaXN0ZXIucmVsZWFzZUdQUlNjcmF0Y2godG1wcmVn
KQorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJhaXNlICJVbmhhbmRsZWQgcGFy
YW1ldGVycyBmb3Igb3Bjb2RlICN7b3Bjb2RlfSBhdCAje2NvZGVPcmlnaW5TdHJpbmd9IgorICAg
ICAgICAgICAgZW5kCisgICAgICAgIHdoZW4gInVyc2hpZnRpIgorICAgICAgICAgICAgaWYgb3Bl
cmFuZHNbMF0uaXNfYT8gSW1tZWRpYXRlCisgICAgICAgICAgICAgICAgZW1pdFNINFNoaWZ0SW1t
KG9wZXJhbmRzWzBdLnZhbHVlLCBvcGVyYW5kc1sxXSwgInIiKQorICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgICAgICRhc20ucHV0cyAibmVnICN7c2g0T3BlcmFuZHMoW29wZXJhbmRzWzBd
LCB0bXByZWcgPSBUbXBSZWdpc3Rlci5jbGFpbUdQUlNjcmF0Y2hdKX0iCisgICAgICAgICAgICAg
ICAgJGFzbS5wdXRzICJzaGxkICN7c2g0T3BlcmFuZHMoW3RtcHJlZywgb3BlcmFuZHNbMV1dKX0i
CisgICAgICAgICAgICAgICAgVG1wUmVnaXN0ZXIucmVsZWFzZUdQUlNjcmF0Y2godG1wcmVnKQor
ICAgICAgICAgICAgZW5kCisgICAgICAgIHdoZW4gImxvYWRkIgorICAgICAgICAgICAgIyBBcyB3
ZSBhcmUgbGl0dGxlIGVuZGlhbiwgd2UgZG9uJ3QgdXNlICJmbW92IEBSbSwgRFJuIiBoZXJlLgor
ICAgICAgICAgICAgZW1pdFNINEJhc2VJbmRleFB0clRvUmVnKG9wZXJhbmRzWzBdLCAwLCB0bXBy
ZWcgPSBUbXBSZWdpc3Rlci5jbGFpbUdQUlNjcmF0Y2gpCisgICAgICAgICAgICAkYXNtLnB1dHMg
ImZtb3YucyBAI3t0bXByZWcuc2g0T3BlcmFuZH0rLCAje29wZXJhbmRzWzFdLnNoNFNpbmdsZUxv
fSIKKyAgICAgICAgICAgICRhc20ucHV0cyAiZm1vdi5zIEAje3RtcHJlZy5zaDRPcGVyYW5kfSwg
I3tvcGVyYW5kc1sxXS5zaDRTaW5nbGVIaX0iCisgICAgICAgICAgICBUbXBSZWdpc3Rlci5yZWxl
YXNlR1BSU2NyYXRjaCh0bXByZWcpCisgICAgICAgIHdoZW4gInN0b3JlZCIKKyAgICAgICAgICAg
ICMgQXMgd2UgYXJlIGxpdHRsZSBlbmRpYW4sIHdlIGRvbid0IHVzZSAiZm1vdiBEUm0sIEBSbiIg
aGVyZS4KKyAgICAgICAgICAgIGVtaXRTSDRCYXNlSW5kZXhQdHJUb1JlZyhvcGVyYW5kc1sxXSwg
OCwgdG1wcmVnID0gVG1wUmVnaXN0ZXIuY2xhaW1HUFJTY3JhdGNoKQorICAgICAgICAgICAgJGFz
bS5wdXRzICJmbW92LnMgI3tvcGVyYW5kc1swXS5zaDRTaW5nbGVIaX0sIEAtI3t0bXByZWcuc2g0
T3BlcmFuZH0iCisgICAgICAgICAgICAkYXNtLnB1dHMgImZtb3YucyAje29wZXJhbmRzWzBdLnNo
NFNpbmdsZUxvfSwgQC0je3RtcHJlZy5zaDRPcGVyYW5kfSIKKyAgICAgICAgICAgIFRtcFJlZ2lz
dGVyLnJlbGVhc2VHUFJTY3JhdGNoKHRtcHJlZykKKyAgICAgICAgd2hlbiAiY2kyZCIKKyAgICAg
ICAgICAgICRhc20ucHV0cyAibGRzICN7b3BlcmFuZHNbMF0uc2g0T3BlcmFuZH0sIGZwdWwiCisg
ICAgICAgICAgICAkYXNtLnB1dHMgImZsb2F0IGZwdWwsICN7b3BlcmFuZHNbMV0uc2g0T3BlcmFu
ZH0iCisgICAgICAgIHdoZW4gImZpaTJkIgorICAgICAgICAgICAgJGFzbS5wdXRzICJsZHMgI3tv
cGVyYW5kc1swXS5zaDRPcGVyYW5kfSwgZnB1bCIKKyAgICAgICAgICAgICRhc20ucHV0cyAiZnN0
cyBmcHVsLCAje29wZXJhbmRzWzJdLnNoNFNpbmdsZUxvfSIKKyAgICAgICAgICAgICRhc20ucHV0
cyAibGRzICN7b3BlcmFuZHNbMV0uc2g0T3BlcmFuZH0sIGZwdWwiCisgICAgICAgICAgICAkYXNt
LnB1dHMgImZzdHMgZnB1bCwgI3tvcGVyYW5kc1syXS5zaDRTaW5nbGVIaX0iCisgICAgICAgIHdo
ZW4gImZkMmlpIgorICAgICAgICAgICAgJGFzbS5wdXRzICJmbGRzICN7b3BlcmFuZHNbMF0uc2g0
U2luZ2xlTG99LCBmcHVsIgorICAgICAgICAgICAgJGFzbS5wdXRzICJzdHMgZnB1bCwgI3tvcGVy
YW5kc1sxXS5zaDRPcGVyYW5kfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAiZmxkcyAje29wZXJh
bmRzWzBdLnNoNFNpbmdsZUhpfSwgZnB1bCIKKyAgICAgICAgICAgICRhc20ucHV0cyAic3RzIGZw
dWwsICN7b3BlcmFuZHNbMl0uc2g0T3BlcmFuZH0iCisgICAgICAgIHdoZW4gImFkZGQiLCAic3Vi
ZCIsICJtdWxkIiwgImRpdmQiCisgICAgICAgICAgICBzaDRvcGNvZGUgPSBvcGNvZGVbMC4uLTJd
CisgICAgICAgICAgICAkYXNtLnB1dHMgImYje3NoNG9wY29kZX0gI3tzaDRPcGVyYW5kcyhvcGVy
YW5kcyl9IgorICAgICAgICB3aGVuICJiY2QyaSIKKyAgICAgICAgICAgICRhc20ucHV0cyAiZnRy
YyAje29wZXJhbmRzWzBdLnNoNE9wZXJhbmR9LCBmcHVsIgorICAgICAgICAgICAgJGFzbS5wdXRz
ICJzdHMgZnB1bCwgI3sodG1wcmVnID0gVG1wUmVnaXN0ZXIuY2xhaW1HUFJTY3JhdGNoKS5zaDRP
cGVyYW5kfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAiZmxvYXQgZnB1bCwgI3tTSDRfVE1QX0ZQ
Ui5zaDRPcGVyYW5kfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAiZmNtcC9lcSAje3NoNE9wZXJh
bmRzKFtvcGVyYW5kc1swXSwgU0g0X1RNUF9GUFJdKX0iCisgICAgICAgICAgICAkYXNtLnB1dHMg
ImJmICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9IgorICAgICAgICAgICAgZW1pdFNINEJyYW5jaElm
TWludXMwKG9wZXJhbmRzWzBdLCBvcGVyYW5kc1syXSkKKyAgICAgICAgICAgICRhc20ucHV0cyAi
bW92ICN7c2g0T3BlcmFuZHMoW3RtcHJlZywgb3BlcmFuZHNbMV1dKX0iCisgICAgICAgICAgICBU
bXBSZWdpc3Rlci5yZWxlYXNlR1BSU2NyYXRjaCh0bXByZWcpCisgICAgICAgIHdoZW4gImJkbmVx
dW4iCisgICAgICAgICAgICBlbWl0U0g0RG91YmxlQ29uZEJyYW5jaCgiZXEiLCB0cnVlLCBvcGVy
YW5kcywgdHJ1ZSkKKyAgICAgICAgd2hlbiAiYmRndGVxIgorICAgICAgICAgICAgZW1pdFNINERv
dWJsZUNvbmRCcmFuY2goImx0IiwgdHJ1ZSwgb3BlcmFuZHMsIGZhbHNlKQorICAgICAgICB3aGVu
ICJiZGd0ZXF1biIKKyAgICAgICAgICAgIGVtaXRTSDREb3VibGVDb25kQnJhbmNoKCJsdCIsIHRy
dWUsIG9wZXJhbmRzLCB0cnVlKQorICAgICAgICB3aGVuICJiZGx0IgorICAgICAgICAgICAgZW1p
dFNINERvdWJsZUNvbmRCcmFuY2goImx0IiwgZmFsc2UsIG9wZXJhbmRzLCBmYWxzZSkKKyAgICAg
ICAgd2hlbiAiYmRsdHVuIgorICAgICAgICAgICAgZW1pdFNINERvdWJsZUNvbmRCcmFuY2goImx0
IiwgZmFsc2UsIG9wZXJhbmRzLCB0cnVlKQorICAgICAgICB3aGVuICJiZGx0ZXEiCisgICAgICAg
ICAgICBlbWl0U0g0RG91YmxlQ29uZEJyYW5jaCgiZ3QiLCB0cnVlLCBvcGVyYW5kcywgZmFsc2Up
CisgICAgICAgIHdoZW4gImJkbHRlcXVuIgorICAgICAgICAgICAgZW1pdFNINERvdWJsZUNvbmRC
cmFuY2goImd0IiwgdHJ1ZSwgb3BlcmFuZHMsIHRydWUpCisgICAgICAgIHdoZW4gImJkZ3QiCisg
ICAgICAgICAgICBlbWl0U0g0RG91YmxlQ29uZEJyYW5jaCgiZ3QiLCBmYWxzZSwgb3BlcmFuZHMs
IGZhbHNlKQorICAgICAgICB3aGVuICJiZGd0dW4iCisgICAgICAgICAgICBlbWl0U0g0RG91Ymxl
Q29uZEJyYW5jaCgiZ3QiLCBmYWxzZSwgb3BlcmFuZHMsIHRydWUpCisgICAgICAgIHdoZW4gImJh
ZGRpbyIsICJic3ViaW8iCisgICAgICAgICAgICB0bXByZWcxID0gbmlsCisgICAgICAgICAgICBp
ZiBub3Qob3BlcmFuZHNbMF0uaXNfYT8gUmVnaXN0ZXJJRCkKKyAgICAgICAgICAgICAgICBlbWl0
U0g0TG9hZFRvUmVnKG9wZXJhbmRzWzBdLCAibCIsICJzIiwgdG1wcmVnMSA9IFRtcFJlZ2lzdGVy
LmNsYWltR1BSU2NyYXRjaCkKKyAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgZW1pdFNINExv
YWRUb1JlZyhvcGVyYW5kc1sxXSwgImwiLCAicyIsIHRtcHJlZzIgPSBUbXBSZWdpc3Rlci5jbGFp
bUdQUlNjcmF0Y2gpCisgICAgICAgICAgICAkYXNtLnB1dHMgIiN7b3Bjb2RlWzEsM119diAje3No
NE9wZXJhbmRzKFt0bXByZWcxID8gdG1wcmVnMSA6IG9wZXJhbmRzWzBdLCB0bXByZWcyXSl9Igor
ICAgICAgICAgICAgVG1wUmVnaXN0ZXIucmVsZWFzZUdQUlNjcmF0Y2godG1wcmVnMSkKKyAgICAg
ICAgICAgICRhc20ucHV0cyAiYnQgI3tvcGVyYW5kc1syXS5hc21MYWJlbH0iCisgICAgICAgICAg
ICAkYXNtLnB1dHMgIm1vdiAje3NoNE9wZXJhbmRzKFt0bXByZWcyLCBvcGVyYW5kc1sxXV0pfSIK
KyAgICAgICAgICAgIFRtcFJlZ2lzdGVyLnJlbGVhc2VHUFJTY3JhdGNoKHRtcHJlZzIpCisgICAg
ICAgIHdoZW4gImJtdWxpbyIKKyAgICAgICAgICAgIHRtcHJlZzEgPSBuaWwKKyAgICAgICAgICAg
IHRtcHJlZzIgPSBuaWwKKyAgICAgICAgICAgIGlmIG5vdChvcGVyYW5kc1swXS5pc19hPyBSZWdp
c3RlcklEKQorICAgICAgICAgICAgICAgIGVtaXRTSDRMb2FkVG9SZWcob3BlcmFuZHNbMF0sICJs
IiwgInMiLCB0bXByZWcxID0gVG1wUmVnaXN0ZXIuY2xhaW1HUFJTY3JhdGNoKQorICAgICAgICAg
ICAgZW5kCisgICAgICAgICAgICBpZiBub3Qob3BlcmFuZHNbMV0uaXNfYT8gUmVnaXN0ZXJJRCkK
KyAgICAgICAgICAgICAgICBlbWl0U0g0TG9hZFRvUmVnKG9wZXJhbmRzWzFdLCAibCIsICJzIiwg
dG1wcmVnMiA9IFRtcFJlZ2lzdGVyLmNsYWltR1BSU2NyYXRjaCkKKyAgICAgICAgICAgIGVuZAor
ICAgICAgICAgICAgJGFzbS5wdXRzICJkbXVscy5sICN7c2g0T3BlcmFuZHMoW3RtcHJlZzEgPyB0
bXByZWcxIDogb3BlcmFuZHNbMF0sIHRtcHJlZzIgPyB0bXByZWcyIDogb3BlcmFuZHNbMV1dKX0i
CisgICAgICAgICAgICBUbXBSZWdpc3Rlci5yZWxlYXNlR1BSU2NyYXRjaCh0bXByZWcxKQorICAg
ICAgICAgICAgVG1wUmVnaXN0ZXIucmVsZWFzZUdQUlNjcmF0Y2godG1wcmVnMikKKyAgICAgICAg
ICAgIHRtcHJlZyA9IFRtcFJlZ2lzdGVyLmNsYWltR1BSU2NyYXRjaAorICAgICAgICAgICAgJGFz
bS5wdXRzICJzdHMgbWFjaCwgI3t0bXByZWcuc2g0T3BlcmFuZH0iCisgICAgICAgICAgICAkYXNt
LnB1dHMgInRzdCAje3NoNE9wZXJhbmRzKFt0bXByZWcsIHRtcHJlZ10pfSIKKyAgICAgICAgICAg
IFRtcFJlZ2lzdGVyLnJlbGVhc2VHUFJTY3JhdGNoKHRtcHJlZykKKyAgICAgICAgICAgICRhc20u
cHV0cyAiYmYgI3tvcGVyYW5kc1syXS5hc21MYWJlbH0iCisgICAgICAgICAgICAkYXNtLnB1dHMg
InN0cyBtYWNsLCAje29wZXJhbmRzWzFdLnNoNE9wZXJhbmR9IgorICAgICAgICB3aGVuICJiYWRk
aXMiCisgICAgICAgICAgICBlbWl0U0g0TG9hZFRvUmVnKG9wZXJhbmRzWzFdLCAibCIsICJzIiwg
dG1wcmVnID0gVG1wUmVnaXN0ZXIuY2xhaW1HUFJTY3JhdGNoKQorICAgICAgICAgICAgZW1pdFNI
NEFkZEltbShvcGVyYW5kc1swXS52YWx1ZSwgdG1wcmVnKQorICAgICAgICAgICAgJGFzbS5wdXRz
ICJjbXAvcHogI3t0bXByZWcuc2g0T3BlcmFuZH0iCisgICAgICAgICAgICAkYXNtLnB1dHMgImJm
ICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9IgorICAgICAgICAgICAgZW1pdFNINFN0b3JlSW50RnJv
bVJlZyh0bXByZWcsIG9wZXJhbmRzWzFdKQorICAgICAgICAgICAgVG1wUmVnaXN0ZXIucmVsZWFz
ZUdQUlNjcmF0Y2godG1wcmVnKQorICAgICAgICB3aGVuICJidGl6IiwgImJ0cHoiLCAiYnRpbnoi
LCAiYnRwbnoiLCAiYnRieiIsICJidGJueiIKKyAgICAgICAgICAgIGNhc2Ugb3Bjb2RlWzIsMV0K
KyAgICAgICAgICAgIHdoZW4gImkiLCAicCIKKyAgICAgICAgICAgICAgICBvcHNpemUgPSAibCIK
KyAgICAgICAgICAgIHdoZW4gImIiCisgICAgICAgICAgICAgICAgb3BzaXplID0gImIiCisgICAg
ICAgICAgICBlbmQKKyAgICAgICAgICAgIGlmIG9wZXJhbmRzLnNpemUgPT0gMworICAgICAgICAg
ICAgICAgIHRtcHJlZzEgPSBuaWwKKyAgICAgICAgICAgICAgICB0bXByZWcyID0gbmlsCisgICAg
ICAgICAgICAgICAgaWYgbm90KG9wZXJhbmRzWzBdLmlzX2E/IFJlZ2lzdGVySUQgYW5kIG9wc2l6
ZSA9PSAibCIpCisgICAgICAgICAgICAgICAgICAgIGVtaXRTSDRMb2FkVG9SZWcob3BlcmFuZHNb
MF0sIG9wc2l6ZSwgInMiLCB0bXByZWcxID0gVG1wUmVnaXN0ZXIuY2xhaW1HUFJTY3JhdGNoKQor
ICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgICAgIGlmIG5vdChvcGVyYW5kc1sxXS5p
c19hPyBSZWdpc3RlcklEIGFuZCBvcHNpemUgPT0gImwiKQorICAgICAgICAgICAgICAgICAgICBl
bWl0U0g0TG9hZFRvUmVnKG9wZXJhbmRzWzFdLCBvcHNpemUsICJzIiwgdG1wcmVnMiA9IFRtcFJl
Z2lzdGVyLmNsYWltR1BSU2NyYXRjaCkKKyAgICAgICAgICAgICAgICBlbmQKKyAgICAgICAgICAg
ICAgICAkYXNtLnB1dHMgInRzdCAje3NoNE9wZXJhbmRzKFt0bXByZWcxID8gdG1wcmVnMSA6IG9w
ZXJhbmRzWzBdLCB0bXByZWcyID8gdG1wcmVnMiA6IG9wZXJhbmRzWzFdXSl9IgorICAgICAgICAg
ICAgICAgIFRtcFJlZ2lzdGVyLnJlbGVhc2VHUFJTY3JhdGNoKHRtcHJlZzEpCisgICAgICAgICAg
ICAgICAgVG1wUmVnaXN0ZXIucmVsZWFzZUdQUlNjcmF0Y2godG1wcmVnMikKKyAgICAgICAgICAg
IGVsc2UKKyAgICAgICAgICAgICAgICB0bXByZWcgPSBuaWwKKyAgICAgICAgICAgICAgICBpZiBu
b3Qob3BlcmFuZHNbMF0uaXNfYT8gUmVnaXN0ZXJJRCBhbmQgb3BzaXplID09ICJsIikKKyAgICAg
ICAgICAgICAgICAgICAgZW1pdFNINExvYWRUb1JlZyhvcGVyYW5kc1swXSwgb3BzaXplLCAicyIs
IHRtcHJlZyA9IFRtcFJlZ2lzdGVyLmNsYWltR1BSU2NyYXRjaCkKKyAgICAgICAgICAgICAgICBl
bmQKKyAgICAgICAgICAgICAgICAkYXNtLnB1dHMgInRzdCAje3NoNE9wZXJhbmRzKFt0bXByZWcg
PyB0bXByZWcgOiBvcGVyYW5kc1swXSwgdG1wcmVnID8gdG1wcmVnIDogb3BlcmFuZHNbMF1dKX0i
CisgICAgICAgICAgICAgICAgVG1wUmVnaXN0ZXIucmVsZWFzZUdQUlNjcmF0Y2godG1wcmVnKQor
ICAgICAgICAgICAgZW5kCisgICAgICAgICAgICBpZiBvcGNvZGVbLTIsMl0gPT0gIm56IgorICAg
ICAgICAgICAgICAgICRhc20ucHV0cyAiYmYgI3tvcGVyYW5kcy5sYXN0LmFzbUxhYmVsfSIKKyAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAkYXNtLnB1dHMgImJ0ICN7b3BlcmFuZHMu
bGFzdC5hc21MYWJlbH0iCisgICAgICAgICAgICBlbmQKKyAgICAgICAgd2hlbiAiY2JlcSIKKyAg
ICAgICAgICAgIGVtaXRTSDRDb21wYXJlU2V0KCJlcSIsICJiIiwgInUiLCBmYWxzZSwgb3BlcmFu
ZHMpCisgICAgICAgIHdoZW4gImNpZXEiLCAiY3BlcSIKKyAgICAgICAgICAgIGVtaXRTSDRDb21w
YXJlU2V0KCJlcSIsICJsIiwgInUiLCBmYWxzZSwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImNp
bmVxIiwgImNwbmVxIgorICAgICAgICAgICAgZW1pdFNINENvbXBhcmVTZXQoImVxIiwgImwiLCAi
dSIsIHRydWUsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJjaWIiCisgICAgICAgICAgICBlbWl0
U0g0Q29tcGFyZVNldCgiaHMiLCAibCIsICJ1IiwgdHJ1ZSwgb3BlcmFuZHMpCisgICAgICAgIHdo
ZW4gImJiZXEiCisgICAgICAgICAgICBlbWl0U0g0Q29uZEJyYW5jaCgiZXEiLCAiYiIsICJ1Iiwg
ZmFsc2UsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJiYm5lcSIKKyAgICAgICAgICAgIGVtaXRT
SDRDb25kQnJhbmNoKCJlcSIsICJiIiwgInUiLCB0cnVlLCBvcGVyYW5kcykKKyAgICAgICAgd2hl
biAiYmJiIgorICAgICAgICAgICAgZW1pdFNINENvbmRCcmFuY2goImhzIiwgImIiLCAidSIsIHRy
dWUsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJiaWVxIiwgImJwZXEiCisgICAgICAgICAgICBl
bWl0U0g0Q29uZEJyYW5jaCgiZXEiLCAibCIsICJzIiwgZmFsc2UsIG9wZXJhbmRzKQorICAgICAg
ICB3aGVuICJiaW5lcSIsICJicG5lcSIKKyAgICAgICAgICAgIGVtaXRTSDRDb25kQnJhbmNoKCJl
cSIsICJsIiwgInMiLCB0cnVlLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmlhIiwgImJwYSIK
KyAgICAgICAgICAgIGVtaXRTSDRDb25kQnJhbmNoKCJoaSIsICJsIiwgInUiLCBmYWxzZSwgb3Bl
cmFuZHMpCisgICAgICAgIHdoZW4gImJpYWVxIiwgImJwYWVxIgorICAgICAgICAgICAgZW1pdFNI
NENvbmRCcmFuY2goImhzIiwgImwiLCAidSIsIGZhbHNlLCBvcGVyYW5kcykKKyAgICAgICAgd2hl
biAiYmliIiwgImJwYiIKKyAgICAgICAgICAgIGVtaXRTSDRDb25kQnJhbmNoKCJocyIsICJsIiwg
InUiLCB0cnVlLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmlndGVxIiwgImJwZ3RlcSIKKyAg
ICAgICAgICAgIGVtaXRTSDRDb25kQnJhbmNoKCJnZSIsICJsIiwgInMiLCBmYWxzZSwgb3BlcmFu
ZHMpCisgICAgICAgIHdoZW4gImJpbHQiLCAiYnBsdCIKKyAgICAgICAgICAgIGVtaXRTSDRDb25k
QnJhbmNoKCJnZSIsICJsIiwgInMiLCB0cnVlLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmln
dCIsICJicGd0IgorICAgICAgICAgICAgZW1pdFNINENvbmRCcmFuY2goImd0IiwgImwiLCAicyIs
IGZhbHNlLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmlsdGVxIiwgImJwbHRlcSIKKyAgICAg
ICAgICAgIGVtaXRTSDRDb25kQnJhbmNoKCJndCIsICJsIiwgJ3MnLCB0cnVlLCBvcGVyYW5kcykK
KyAgICAgICAgd2hlbiAiY2FsbCIKKyAgICAgICAgICAgIGlmIG9wZXJhbmRzWzBdLmlzX2E/IExh
YmVsUmVmZXJlbmNlCisgICAgICAgICAgICAgICAgZW1pdFNINExvYWRDb25zdGFudChvcGVyYW5k
c1swXS5hc21MYWJlbCwgdG1wcmVnID0gVG1wUmVnaXN0ZXIuY2xhaW1HUFJTY3JhdGNoKQorICAg
ICAgICAgICAgICAgIGVtaXRTSDRCcmFuY2goImpzciIsIHRtcHJlZykKKyAgICAgICAgICAgICAg
ICBUbXBSZWdpc3Rlci5yZWxlYXNlR1BSU2NyYXRjaCh0bXByZWcpCisgICAgICAgICAgICBlbHNp
ZiBvcGVyYW5kc1swXS5pc19hPyBMb2NhbExhYmVsUmVmZXJlbmNlCisgICAgICAgICAgICAgICAg
JGFzbS5wdXRzICJic3IgI3tvcGVyYW5kc1swXS5hc21MYWJlbH0iCisgICAgICAgICAgICAgICAg
JGFzbS5wdXRzICJub3AiCisgICAgICAgICAgICBlbHNpZiBvcGVyYW5kc1swXS5pc19hPyBSZWdp
c3RlcklECisgICAgICAgICAgICAgICAgZW1pdFNINEJyYW5jaCgianNyIiwgb3BlcmFuZHNbMF0p
CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgZW1pdFNINExvYWRUb1JlZyhvcGVy
YW5kc1swXSwgImwiLCAicyIsIHRtcHJlZyA9IFRtcFJlZ2lzdGVyLmNsYWltR1BSU2NyYXRjaCkK
KyAgICAgICAgICAgICAgICBlbWl0U0g0QnJhbmNoKCJqc3IiLCB0bXByZWcpCisgICAgICAgICAg
ICAgICAgVG1wUmVnaXN0ZXIucmVsZWFzZUdQUlNjcmF0Y2godG1wcmVnKQorICAgICAgICAgICAg
ZW5kCisgICAgICAgIHdoZW4gImptcCIKKyAgICAgICAgICAgIGlmIG9wZXJhbmRzWzBdLmlzX2E/
IExhYmVsUmVmZXJlbmNlCisgICAgICAgICAgICAgICAgZW1pdFNINEptcEZhcihvcGVyYW5kc1sw
XS5hc21MYWJlbCkKKyAgICAgICAgICAgIGVsc2lmIG9wZXJhbmRzWzBdLmlzX2E/IExvY2FsTGFi
ZWxSZWZlcmVuY2UKKyAgICAgICAgICAgICAgICAkYXNtLnB1dHMgImJyYSAje29wZXJhbmRzWzBd
LmFzbUxhYmVsfSIKKyAgICAgICAgICAgICAgICAkYXNtLnB1dHMgIm5vcCIKKyAgICAgICAgICAg
IGVsc2lmIG9wZXJhbmRzWzBdLmlzX2E/IFJlZ2lzdGVySUQKKyAgICAgICAgICAgICAgICBlbWl0
U0g0QnJhbmNoKCJqbXAiLCBvcGVyYW5kc1swXSkKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgICBlbWl0U0g0TG9hZFRvUmVnKG9wZXJhbmRzWzBdLCAibCIsICJzIiwgdG1wcmVnID0g
VG1wUmVnaXN0ZXIuY2xhaW1HUFJTY3JhdGNoKQorICAgICAgICAgICAgICAgIGVtaXRTSDRCcmFu
Y2goImptcCIsIHRtcHJlZykKKyAgICAgICAgICAgICAgICBUbXBSZWdpc3Rlci5yZWxlYXNlR1BS
U2NyYXRjaCh0bXByZWcpCisgICAgICAgICAgICBlbmQKKyAgICAgICAgd2hlbiAicmV0IgorICAg
ICAgICAgICAgJGFzbS5wdXRzICJydHMiCisgICAgICAgICAgICAkYXNtLnB1dHMgIm5vcCIKKyAg
ICAgICAgd2hlbiAiYnJlYWsiCisgICAgICAgICAgICB0MHJlZyA9IFJlZ2lzdGVySUQubmV3KGNv
ZGVPcmlnaW5TdHJpbmcsICJ0MCIpCisgICAgICAgICAgICBlbWl0U0g0TG9hZENvbnN0YW50KDB4
YmJhZGJlZWYsIHRtcHJlZyA9IFRtcFJlZ2lzdGVyLmNsYWltR1BSU2NyYXRjaCkKKyAgICAgICAg
ICAgICRhc20ucHV0cyAibW92LmwgI3sodDByZWcgPSBSZWdpc3RlcklELm5ldyhjb2RlT3JpZ2lu
U3RyaW5nLCAidDAiKSkuc2g0T3BlcmFuZH0sIEAje3RtcHJlZy5zaDRPcGVyYW5kfSIKKyAgICAg
ICAgICAgIFRtcFJlZ2lzdGVyLnJlbGVhc2VHUFJTY3JhdGNoKHRtcHJlZykKKyAgICAgICAgICAg
IGVtaXRTSDRMb2FkSW1tKDAsIHQwcmVnKQorICAgICAgICAgICAgZW1pdFNINEJyYW5jaCgiam1w
IiwgdDByZWcpCisgICAgICAgIHdoZW4gImxvYWRiIiwgImxvYWRoIgorICAgICAgICAgICAgcmFp
c2UgIlVuaGFuZGxlZCBwYXJhbWV0ZXJzIGZvciBvcGNvZGUgI3tvcGNvZGV9IGF0ICN7Y29kZU9y
aWdpblN0cmluZ30iIHVubGVzcyBvcGVyYW5kc1swXS5pc19hPyBBZGRyZXNzIGFuZCBvcGVyYW5k
c1sxXS5pc19hPyBSZWdpc3RlcklECisgICAgICAgICAgICBjYXNlIG9wY29kZVstMSwxXQorICAg
ICAgICAgICAgd2hlbiAiYiIKKyAgICAgICAgICAgICAgICBlbWl0U0g0QWRkclRvUmVnKG9wZXJh
bmRzWzBdLCBvcGVyYW5kc1sxXSwgImIiLCAidSIpCisgICAgICAgICAgICB3aGVuICJoIgorICAg
ICAgICAgICAgICAgIGVtaXRTSDRBZGRyVG9SZWcob3BlcmFuZHNbMF0sIG9wZXJhbmRzWzFdLCAi
dyIsICJ1IikKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByYWlzZSAiVW5oYW5k
bGVkIG9wY29kZSAje29wY29kZX0gYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIKKyAgICAgICAgICAg
IGVuZAorICAgICAgICB3aGVuICJsb2FkaSIsICJsb2FkaXMiLCAibG9hZHAiLCAibW92ZSIKKyAg
ICAgICAgICAgIHJhaXNlICJVbmhhbmRsZWQgcGFyYW1ldGVycyBmb3Igb3Bjb2RlICN7b3Bjb2Rl
fSBhdCAje2NvZGVPcmlnaW5TdHJpbmd9IiB1bmxlc3Mgb3BlcmFuZHNbMV0uaXNfYT8gUmVnaXN0
ZXJJRAorICAgICAgICAgICAgZW1pdFNINExvYWRUb1JlZyhvcGVyYW5kc1swXSwgImwiLCAicyIs
IG9wZXJhbmRzWzFdKQorICAgICAgICB3aGVuICJzdG9yZWkiLCAic3RvcmVwIgorICAgICAgICAg
ICAgdG1wcmVnMSA9IG5pbAorICAgICAgICAgICAgaWYgbm90KG9wZXJhbmRzWzBdLmlzX2E/IFJl
Z2lzdGVySUQpCisgICAgICAgICAgICAgICAgZW1pdFNINExvYWRUb1JlZyhvcGVyYW5kc1swXSwg
ImwiLCAicyIsIHRtcHJlZzEgPSBUbXBSZWdpc3Rlci5jbGFpbUdQUlNjcmF0Y2gpCisgICAgICAg
ICAgICBlbmQKKyAgICAgICAgICAgIGVtaXRTSDRTdG9yZUludEZyb21SZWcodG1wcmVnMSA/IHRt
cHJlZzEgOiBvcGVyYW5kc1swXSwgb3BlcmFuZHNbMV0pCisgICAgICAgICAgICBUbXBSZWdpc3Rl
ci5yZWxlYXNlR1BSU2NyYXRjaCh0bXByZWcxKQorICAgICAgICB3aGVuICJsZWFwIgorICAgICAg
ICAgICAgaWYgb3BlcmFuZHNbMF0uYmFzZSAhPSBvcGVyYW5kc1sxXQorICAgICAgICAgICAgICAg
ICRhc20ucHV0cyAibW92ICN7c2g0T3BlcmFuZHMoW29wZXJhbmRzWzBdLmJhc2UsIG9wZXJhbmRz
WzFdXSl9IgorICAgICAgICAgICAgZW5kCisgICAgICAgICAgICBlbWl0U0g0QWRkSW1tKG9wZXJh
bmRzWzBdLm9mZnNldC52YWx1ZSwgb3BlcmFuZHNbMV0pCisgICAgICAgIHdoZW4gImxkc3ByIgor
ICAgICAgICAgICAgJGFzbS5wdXRzICJsZHMgI3tzaDRPcGVyYW5kcyhvcGVyYW5kcyl9LCBwciIK
KyAgICAgICAgd2hlbiAic3RzcHIiCisgICAgICAgICAgICAkYXNtLnB1dHMgInN0cyBwciwgI3tz
aDRPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICBlbHNlCisgICAgICAgICAgICByYWlzZSAi
VW5oYW5kbGVkIG9wY29kZSAje29wY29kZX0gYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIKKyAgICAg
ICAgZW5kCisgICAgZW5kCitlbmQKKwoKUHJvcGVydHkgY2hhbmdlcyBvbjogU291cmNlL0phdmFT
Y3JpcHRDb3JlL29mZmxpbmVhc20vc2g0LnJiCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOmV4ZWN1dGFi
bGUKICAgKyAqCgpJbmRleDogU291cmNlL1dURi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dURi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0NjQ0OCkKKysrIFNvdXJjZS9XVEYvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTMtMDMtMjEgIEp1bGllbiBC
cmlhbmNlYXUgICA8amJyaWFuY2VhdUBuZHMuY29tPgorCisgICAgICAgIExMSW50IFNINCBiYWNr
ZW5kIGltcGxlbWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMTI4ODYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIHd0Zi9QbGF0Zm9ybS5oOgorCiAyMDEzLTAzLTIwICBTaGVyaWZmIEJvdCAg
PHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xs
aW5nIG91dCByMTQ2NDE5LgpJbmRleDogU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCShyZXZpc2lvbiAxNDYyMTIpCisrKyBT
b3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCSh3b3JraW5nIGNvcHkpCkBAIC03ODksNyArNzg5LDcg
QEAKICAgICAmJiBFTkFCTEUoSklUKSBcCiAgICAgJiYgKE9TKERBUldJTikgfHwgT1MoTElOVVgp
KSBcCiAgICAgJiYgKFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oSU9TKSB8fCBQTEFURk9STShH
VEspIHx8IFBMQVRGT1JNKFFUKSkgXAotICAgICYmIChDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KSB8
fCBDUFUoQVJNX1RIVU1CMikgfHwgQ1BVKE1JUFMpKQorICAgICYmIChDUFUoWDg2KSB8fCBDUFUo
WDg2XzY0KSB8fCBDUFUoQVJNX1RIVU1CMikgfHwgQ1BVKE1JUFMpIHx8IENQVShTSDQpKQogI2Rl
ZmluZSBFTkFCTEVfTExJTlQgMQogI2VuZGlmCiAK
</data>
<flag name="review"
          id="215937"
          type_id="1"
          status="-"
          setter="fpizlo"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194217</attachid>
            <date>2013-03-21 03:43:30 -0700</date>
            <delta_ts>2013-03-24 06:01:36 -0700</delta_ts>
            <desc>SH4 LLint backend implementation (2)</desc>
            <filename>sh4-llint-backend-impl_2.patch</filename>
            <type>text/plain</type>
            <size>39990</size>
            <attacher name="Julien Brianceau">jbriance</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTQ2NDQ5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBA
CisyMDEzLTAzLTIxICBKdWxpZW4gQnJpYW5jZWF1ICAgPGpicmlhbmNlYXVAbmRzLmNvbT4KKwor
ICAgICAgICBMTEludCBTSDQgYmFja2VuZCBpbXBsZW1lbnRhdGlvbgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEyODg2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBkZmcvREZHT3BlcmF0aW9ucy5jcHA6
CisgICAgICAgIChKU0MpOgorICAgICAgICAqIGppdC9KSVRTdHVicy5jcHA6CisgICAgICAgICog
bGxpbnQvTExJbnRPZmZsaW5lQXNtQ29uZmlnLmg6CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJ
bnRlcnByZXRlci5hc206CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0
LmFzbToKKyAgICAgICAgKiBvZmZsaW5lYXNtL2JhY2tlbmRzLnJiOgorICAgICAgICAqIG9mZmxp
bmVhc20vaW5zdHJ1Y3Rpb25zLnJiOgorICAgICAgICAqIG9mZmxpbmVhc20vc2g0LnJiOiBBZGRl
ZC4KKwogMjAxMy0wMy0yMCAgQ29zbWluIFRydXRhICA8Y3RydXRhQGJsYWNrYmVycnkuY29tPgog
CiAgICAgICAgIFtRTlhdW0FSTV0gUkVHUkVTU0lPTihyMTM1MzMwKTogVmFyaW91cyBmYWlsdXJl
cyBpbiBPY3RhbmUKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9u
cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRp
b25zLmNwcAkocmV2aXNpb24gMTQ2MjEyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdPcGVyYXRpb25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTc1NCw2ICsxNzU0LDE4IEBAIFNZ
TUJPTF9TVFJJTkcoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIjoKICAgICAibW92ZSAkYTAsICRz
MCIgIlxuIgogICAgICJiICIgTE9DQUxfUkVGRVJFTkNFKGdldEhvc3RDYWxsUmV0dXJuVmFsdWVX
aXRoRXhlY1N0YXRlKSAiXG4iCiApOworI2VsaWYgQ09NUElMRVIoR0NDKSAmJiBDUFUoU0g0KQor
YXNtKAorIi50ZXh0IiAiXG4iCisiLmdsb2JsICIgU1lNQk9MX1NUUklORyhnZXRIb3N0Q2FsbFJl
dHVyblZhbHVlKSAiXG4iCitISURFX1NZTUJPTChnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiXG4i
CitTWU1CT0xfU1RSSU5HKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICI6IiAiXG4iCisgICAgImFk
ZCAjLTQwLCByMTQiICJcbiIKKyAgICAibW92LmwgQHIxNCwgcjE0IiAiXG4iCisgICAgIm1vdiBy
MTQsIHI0IiAiXG4iCisgICAgImJyYSAiIExPQ0FMX1JFRkVSRU5DRShnZXRIb3N0Q2FsbFJldHVy
blZhbHVlV2l0aEV4ZWNTdGF0ZSkgIlxuIgorICAgICJub3AiICJcbiIKKyk7CiAjZW5kaWYKIAog
ZXh0ZXJuICJDIiBFbmNvZGVkSlNWYWx1ZSBIT1NUX0NBTExfUkVUVVJOX1ZBTFVFX09QVElPTiBn
ZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNTdGF0ZShFeGVjU3RhdGUqIGV4ZWMpCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAkocmV2aXNpb24gMTQ2MjEyKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTMyMiw2ICszMjIsOSBAQCBTWU1CT0xfU1RSSU5HKGN0aVRyYW1wb2xpbmUpICI6IiAiXG4i
CiAgICAgImFkZCAjMTIsIHIxNSIgIlxuIgogICAgICJydHMiICJcbiIKICAgICAibm9wIiAiXG4i
CisiLmdsb2JsICIgU1lNQk9MX1NUUklORyhjdGlUcmFtcG9saW5lRW5kKSAiXG4iCitISURFX1NZ
TUJPTChjdGlUcmFtcG9saW5lRW5kKSAiXG4iCitTWU1CT0xfU1RSSU5HKGN0aVRyYW1wb2xpbmVF
bmQpICI6IiAiXG4iCiApOwogCiBhc20gdm9sYXRpbGUgKApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xMSW50T2ZmbGluZUFzbUNvbmZpZy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludE9mZmxpbmVBc21Db25maWcuaAkocmV2aXNpb24g
MTQ2MjEyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50T2ZmbGluZUFzbUNv
bmZpZy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw2ICszOSw3IEBACiAjZGVmaW5lIE9GRkxJTkVf
QVNNX1g4Nl82NCAwCiAjZGVmaW5lIE9GRkxJTkVfQVNNX0FSTXY3cyAwCiAjZGVmaW5lIE9GRkxJ
TkVfQVNNX01JUFMgMAorI2RlZmluZSBPRkZMSU5FX0FTTV9TSDQgMAogCiAjZWxzZSAvLyAhRU5B
QkxFKExMSU5UX0NfTE9PUCkKIApAQCAtNzQsNiArNzUsMTIgQEAKICNkZWZpbmUgT0ZGTElORV9B
U01fTUlQUyAwCiAjZW5kaWYKIAorI2lmIENQVShTSDQpCisjZGVmaW5lIE9GRkxJTkVfQVNNX1NI
NCAxCisjZWxzZQorI2RlZmluZSBPRkZMSU5FX0FTTV9TSDQgMAorI2VuZGlmCisKICNlbmRpZiAv
LyAhRU5BQkxFKExMSU5UX0NfTE9PUCkKIAogI2lmIFVTRShKU1ZBTFVFNjQpCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRl
cjMyXzY0LmFzbQkocmV2aXNpb24gMTQ2MjEyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xs
aW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20JKHdvcmtpbmcgY29weSkKQEAgLTExMyw3
ICsxMTMsNyBAQCBtYWNybyBjQ2FsbDIoZnVuY3Rpb24sIGFyZzEsIGFyZzIpCiAgICAgICAgIHBv
a2UgYXJnMSwgMAogICAgICAgICBwb2tlIGFyZzIsIDEKICAgICAgICAgY2FsbCBmdW5jdGlvbgot
ICAgIGVsc2lmIE1JUFMKKyAgICBlbHNpZiBNSVBTIG9yIFNINAogICAgICAgICBtb3ZlIGFyZzEs
IGEwCiAgICAgICAgIG1vdmUgYXJnMiwgYTEKICAgICAgICAgY2FsbCBmdW5jdGlvbgpAQCAtMTM4
LDcgKzEzOCw3IEBAIG1hY3JvIGNDYWxsNChmdW5jdGlvbiwgYXJnMSwgYXJnMiwgYXJnMywKICAg
ICAgICAgcG9rZSBhcmczLCAyCiAgICAgICAgIHBva2UgYXJnNCwgMwogICAgICAgICBjYWxsIGZ1
bmN0aW9uCi0gICAgZWxzaWYgTUlQUworICAgIGVsc2lmIE1JUFMgb3IgU0g0CiAgICAgICAgIG1v
dmUgYXJnMSwgYTAKICAgICAgICAgbW92ZSBhcmcyLCBhMQogICAgICAgICBtb3ZlIGFyZzMsIGEy
CkBAIC0xOTE4LDYgKzE5MTgsMTkgQEAgbWFjcm8gbmF0aXZlQ2FsbFRyYW1wb2xpbmUoZXhlY3V0
YWJsZU9mZgogICAgICAgICBjYWxsIGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uW3QxXQogICAg
ICAgICByZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybih0MykKICAgICAgICAgbG9hZHAg
SklUU3RhY2tGcmFtZTo6Z2xvYmFsRGF0YVtzcF0sIHQzCisgICAgZWxzaWYgU0g0CisgICAgICAg
IGxvYWRwIEpJVFN0YWNrRnJhbWU6Omdsb2JhbERhdGFbc3BdLCB0MworICAgICAgICBzdG9yZXAg
Y2ZyLCBKU0dsb2JhbERhdGE6OnRvcENhbGxGcmFtZVt0M10KKyAgICAgICAgbW92ZSB0MCwgdDIK
KyAgICAgICAgcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKHQzKQorICAgICAgICBzdG9y
ZXAgdDMsIFJldHVyblBDW2Nmcl0KKyAgICAgICAgbW92ZSBjZnIsIHQwCisgICAgICAgIGxvYWRp
IENhbGxlZSArIFBheWxvYWRPZmZzZXRbY2ZyXSwgdDEKKyAgICAgICAgbG9hZHAgSlNGdW5jdGlv
bjo6bV9leGVjdXRhYmxlW3QxXSwgdDEKKyAgICAgICAgbW92ZSB0MiwgY2ZyCisgICAgICAgIGNh
bGwgZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb25bdDFdCisgICAgICAgIHJlc3RvcmVSZXR1cm5B
ZGRyZXNzQmVmb3JlUmV0dXJuKHQzKQorICAgICAgICBsb2FkcCBKSVRTdGFja0ZyYW1lOjpnbG9i
YWxEYXRhW3NwXSwgdDMKICAgICBlbHNpZiBDX0xPT1AKICAgICAgICAgbG9hZHAgSklUU3RhY2tG
cmFtZTo6Z2xvYmFsRGF0YVtzcF0sIHQzCiAgICAgICAgIHN0b3JlcCBjZnIsIEpTR2xvYmFsRGF0
YTo6dG9wQ2FsbEZyYW1lW3QzXQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xv
d0xldmVsSW50ZXJwcmV0ZXIuYXNtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQkocmV2aXNpb24gMTQ2MjEyKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCSh3b3JraW5n
IGNvcHkpCkBAIC0xODUsNiArMTg1LDggQEAgbWFjcm8gcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0
ZXJDYWxsKGRlcwogICAgIGlmIENfTE9PUCBvciBBUk12NyBvciBNSVBTCiAgICAgICAgICMgSW4g
Q19MT09QIGNhc2UsIHdlJ3JlIG9ubHkgcHJlc2VydmluZyB0aGUgYnl0ZWNvZGUgdlBDLgogICAg
ICAgICBtb3ZlIGxyLCBkZXN0aW5hdGlvblJlZ2lzdGVyCisgICAgZWxzaWYgU0g0CisgICAgICAg
IHN0c3ByIGRlc3RpbmF0aW9uUmVnaXN0ZXIKICAgICBlbHNpZiBYODYgb3IgWDg2XzY0CiAgICAg
ICAgIHBvcCBkZXN0aW5hdGlvblJlZ2lzdGVyCiAgICAgZWxzZQpAQCAtMTk2LDYgKzE5OCw4IEBA
IG1hY3JvIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKHMKICAgICBpZiBDX0xPT1Ag
b3IgQVJNdjcgb3IgTUlQUwogICAgICAgICAjIEluIENfTE9PUCBjYXNlLCB3ZSdyZSBvbmx5IHJl
c3RvcmluZyB0aGUgYnl0ZWNvZGUgdlBDLgogICAgICAgICBtb3ZlIHNvdXJjZVJlZ2lzdGVyLCBs
cgorICAgIGVsc2lmIFNINAorICAgICAgICBsZHNwciBzb3VyY2VSZWdpc3RlcgogICAgIGVsc2lm
IFg4NiBvciBYODZfNjQKICAgICAgICAgcHVzaCBzb3VyY2VSZWdpc3RlcgogICAgIGVsc2UKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2JhY2tlbmRzLnJiCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2JhY2tlbmRzLnJiCShyZXZp
c2lvbiAxNDYyMTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9iYWNrZW5k
cy5yYgkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQCByZXF1aXJlICJhcm0iCiByZXF1
aXJlICJhc3QiCiByZXF1aXJlICJ4ODYiCiByZXF1aXJlICJtaXBzIgorcmVxdWlyZSAic2g0Igog
cmVxdWlyZSAiY2xvb3AiCiAKIEJBQ0tFTkRTID0KQEAgLTM0LDYgKzM1LDcgQEAgQkFDS0VORFMg
PQogICAgICAiWDg2XzY0IiwKICAgICAgIkFSTXY3IiwKICAgICAgIk1JUFMiLAorICAgICAiU0g0
IiwKICAgICAgIkNfTE9PUCIKICAgICBdCiAKQEAgLTQ4LDYgKzUwLDcgQEAgV09SS0lOR19CQUNL
RU5EUyA9CiAgICAgICJYODZfNjQiLAogICAgICAiQVJNdjciLAogICAgICAiTUlQUyIsCisgICAg
ICJTSDQiLAogICAgICAiQ19MT09QIgogICAgIF0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL29mZmxpbmVhc20vaW5zdHJ1Y3Rpb25zLnJiCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9vZmZsaW5lYXNtL2luc3RydWN0aW9ucy5yYgkocmV2aXNpb24gMTQ2MjEyKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vaW5zdHJ1Y3Rpb25zLnJiCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNzUsNiArMjc1LDEyIEBAIE1JUFNfSU5TVFJVQ1RJT05TID0KICAgICAi
cGljaGRycmEiCiAgICAgXQogCitTSDRfSU5TVFJVQ1RJT05TID0KKyAgICBbCisgICAgImxkc3By
IiwKKyAgICAic3RzcHIiCisgICAgXQorCiBDWFhfSU5TVFJVQ1RJT05TID0KICAgICBbCiAgICAg
ICJjbG9vcENyYXNoIiwgICAgICAgICAgICMgbm8gb3BlcmFuZHMKQEAgLTI5MSw3ICsyOTcsNyBA
QCBDWFhfSU5TVFJVQ1RJT05TID0KICAgICAgImNsb29wRG8iLCAgICAgICAgICAgICAgIyBubyBv
cGVyYW5kcwogICAgIF0KIAotSU5TVFJVQ1RJT05TID0gTUFDUk9fSU5TVFJVQ1RJT05TICsgWDg2
X0lOU1RSVUNUSU9OUyArIEFSTXY3X0lOU1RSVUNUSU9OUyArIE1JUFNfSU5TVFJVQ1RJT05TICsg
Q1hYX0lOU1RSVUNUSU9OUworSU5TVFJVQ1RJT05TID0gTUFDUk9fSU5TVFJVQ1RJT05TICsgWDg2
X0lOU1RSVUNUSU9OUyArIEFSTXY3X0lOU1RSVUNUSU9OUyArIE1JUFNfSU5TVFJVQ1RJT05TICsg
U0g0X0lOU1RSVUNUSU9OUyArIENYWF9JTlNUUlVDVElPTlMKIAogSU5TVFJVQ1RJT05fUEFUVEVS
TiA9IFJlZ2V4cC5uZXcoJ1xcQSgoJyArIElOU1RSVUNUSU9OUy5qb2luKCcpfCgnKSArICcpKVxc
WicpCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3NoNC5yYgo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9zaDQucmIJKHJldmlz
aW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9zaDQucmIJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsNzk3IEBACisjIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxMyBDaXNjbyBTeXN0ZW1z
LCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQ0lTQ08gU1lTVEVNUywgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorIyBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
IyBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
Q0lTQ08gU1lTVEVNUywgSU5DLiBPUiBJVFMKKyMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisjIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyMgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisjIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyMgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorCitjbGFzcyBOb2RlCisgICAgZGVmIHNoNFNpbmdsZUhpCisgICAgICAgIGRvdWJs
ZU9wZXJhbmQgPSBzaDRPcGVyYW5kCisgICAgICAgIHJhaXNlICJCb2d1cyByZWdpc3RlciBuYW1l
ICN7ZG91YmxlT3BlcmFuZH0iIHVubGVzcyBkb3VibGVPcGVyYW5kID1+IC9eZHIvCisgICAgICAg
ICJmciIgKyAoJH4ucG9zdF9tYXRjaC50b19pKS50b19zCisgICAgZW5kCisgICAgZGVmIHNoNFNp
bmdsZUxvCisgICAgICAgIGRvdWJsZU9wZXJhbmQgPSBzaDRPcGVyYW5kCisgICAgICAgIHJhaXNl
ICJCb2d1cyByZWdpc3RlciBuYW1lICN7ZG91YmxlT3BlcmFuZH0iIHVubGVzcyBkb3VibGVPcGVy
YW5kID1+IC9eZHIvCisgICAgICAgICJmciIgKyAoJH4ucG9zdF9tYXRjaC50b19pICsgMSkudG9f
cworICAgIGVuZAorZW5kCisKK2NsYXNzIFNwZWNpYWxSZWdpc3RlciA8IE5vQ2hpbGRyZW4KKyAg
ICBkZWYgc2g0T3BlcmFuZAorICAgICAgICBAbmFtZQorICAgIGVuZAorCisgICAgZGVmIGR1bXAK
KyAgICAgICAgQG5hbWUKKyAgICBlbmQKKworICAgIGRlZiByZWdpc3Rlcj8KKyAgICAgICAgdHJ1
ZQorICAgIGVuZAorZW5kCisKK1NINF9UTVBfR1BSUyA9IFsgU3BlY2lhbFJlZ2lzdGVyLm5ldygi
cjMiKSwgU3BlY2lhbFJlZ2lzdGVyLm5ldygicjExIiksIFNwZWNpYWxSZWdpc3Rlci5uZXcoInIx
MyIpIF0KK1NINF9UTVBfRlBSID0gU3BlY2lhbFJlZ2lzdGVyLm5ldygiZHIxMCIpCisKK2NsYXNz
IFRtcFJlZ2lzdGVyCisgICAgQEB2ZWN0b3IgPSAwCisKKyAgICBkZWYgc2VsZi5jbGFpbUdQUlNj
cmF0Y2gKKyAgICAgICAgdG1wID0gMAorICAgICAgICB3aGlsZSB0bXAgPCBTSDRfVE1QX0dQUlMu
bGVuZ3RoCisgICAgICAgICAgICBpZiAoKDEgPDwgdG1wKSAmIEBAdmVjdG9yKSA9PSAwCisgICAg
ICAgICAgICAgICAgQEB2ZWN0b3IgfD0gKDEgPDwgdG1wKQorICAgICAgICAgICAgICAgIHJldHVy
biBTSDRfVE1QX0dQUlNbdG1wXQorICAgICAgICAgICAgZW5kCisgICAgICAgICAgICB0bXAgKz0g
MQorICAgICAgICBlbmQKKyAgICAgICAgcmFpc2UgIk5vIG1vcmUgYXZhaWxhYmxlIHRlbXBvcmFy
eSBHUCByZWdpc3RlciIKKyAgICBlbmQKKworICAgIGRlZiBzZWxmLnJlbGVhc2VHUFJTY3JhdGNo
KHNjcmF0Y2hSZWcpCisgICAgICAgIGlmIHNjcmF0Y2hSZWcgPT0gbmlsCisgICAgICAgICAgICBy
ZXR1cm4KKyAgICAgICAgZW5kCisgICAgICAgIHRtcCA9IDAKKyAgICAgICAgd2hpbGUgdG1wIDwg
U0g0X1RNUF9HUFJTLmxlbmd0aAorICAgICAgICAgICAgaWYgc2NyYXRjaFJlZyA9PSBTSDRfVE1Q
X0dQUlNbdG1wXQorICAgICAgICAgICAgICAgIEBAdmVjdG9yICY9IH4oMSA8PCB0bXApCisgICAg
ICAgICAgICAgICAgcmV0dXJuCisgICAgICAgICAgICBlbmQKKyAgICAgICAgICAgIHRtcCArPSAx
CisgICAgICAgIGVuZAorICAgICAgICByYWlzZSAiVHJ5IHRvIHJlbGVhc2UgYW4gdW5jbGFpbWVk
IEdQIHJlZ2lzdGVyIgorICAgIGVuZAorZW5kCisKK2NsYXNzIFJlZ2lzdGVySUQKKyAgICBkZWYg
c2g0T3BlcmFuZAorICAgICAgICBjYXNlIG5hbWUKKyAgICAgICAgd2hlbiAiYTAiCisgICAgICAg
ICAgICAicjQiCisgICAgICAgIHdoZW4gImExIgorICAgICAgICAgICAgInI1IgorICAgICAgICB3
aGVuICJ0MCIKKyAgICAgICAgICAgICJyMCIKKyAgICAgICAgd2hlbiAidDEiCisgICAgICAgICAg
ICAicjEiCisgICAgICAgIHdoZW4gInQyIgorICAgICAgICAgICAgInIyIgorICAgICAgICB3aGVu
ICJ0MyIKKyAgICAgICAgICAgICJyMTAiCisgICAgICAgIHdoZW4gInQ0IgorICAgICAgICAgICAg
InI2IgorICAgICAgICB3aGVuICJjZnIiCisgICAgICAgICAgICAicjE0IgorICAgICAgICB3aGVu
ICJzcCIKKyAgICAgICAgICAgICJyMTUiCisgICAgICAgIHdoZW4gImxyIgorICAgICAgICAgICAg
InByIgorICAgICAgICBlbHNlCisgICAgICAgICAgICByYWlzZSAiQmFkIHJlZ2lzdGVyICN7bmFt
ZX0gZm9yIFNINCBhdCAje2NvZGVPcmlnaW5TdHJpbmd9IgorICAgICAgICBlbmQKKyAgICBlbmQK
K2VuZAorCitjbGFzcyBGUFJlZ2lzdGVySUQKKyAgICBkZWYgc2g0T3BlcmFuZAorICAgICAgICBj
YXNlIG5hbWUKKyAgICAgICAgd2hlbiAiZnQwIiwgImZyIgorICAgICAgICAgICAgImRyMCIKKyAg
ICAgICAgd2hlbiAiZnQxIgorICAgICAgICAgICAgImRyMiIKKyAgICAgICAgd2hlbiAiZnQyIgor
ICAgICAgICAgICAgImRyNCIKKyAgICAgICAgd2hlbiAiZnQzIgorICAgICAgICAgICAgImRyNiIK
KyAgICAgICAgd2hlbiAiZnQ0IgorICAgICAgICAgICAgImRyOCIKKyAgICAgICAgd2hlbiAiZmEw
IgorICAgICAgICAgICAgImRyMTIiCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJhaXNlICJC
YWQgcmVnaXN0ZXIgI3tuYW1lfSBmb3IgU0g0IGF0ICN7Y29kZU9yaWdpblN0cmluZ30iCisgICAg
ICAgIGVuZAorICAgIGVuZAorZW5kCisKK2NsYXNzIEltbWVkaWF0ZQorICAgIGRlZiBzaDRPcGVy
YW5kCisgICAgICAgIHJhaXNlICJJbnZhbGlkIGltbWVkaWF0ZSAje3ZhbHVlfSBhdCAje2NvZGVP
cmlnaW5TdHJpbmd9IiBpZiB2YWx1ZSA8IC0xMjggb3IgdmFsdWUgPiAxMjcKKyAgICAgICAgIiMj
e3ZhbHVlfSIKKyAgICBlbmQKK2VuZAorCitjbGFzcyBBZGRyZXNzCisgICAgZGVmIHNoNE9wZXJh
bmQKKyAgICAgICAgcmFpc2UgIkJhZCBvZmZzZXQgI3tvZmZzZXQudmFsdWV9IGF0ICN7Y29kZU9y
aWdpblN0cmluZ30iIGlmIG9mZnNldC52YWx1ZSA8IDAgb3Igb2Zmc2V0LnZhbHVlID4gNjAKKyAg
ICAgICAgaWYgb2Zmc2V0LnZhbHVlID09IDAKKyAgICAgICAgICAgICJAI3tiYXNlLnNoNE9wZXJh
bmR9IgorICAgICAgICBlbHNlCisgICAgICAgICAgICAiQCgje29mZnNldC52YWx1ZX0sICN7YmFz
ZS5zaDRPcGVyYW5kfSkiCisgICAgICAgIGVuZAorICAgIGVuZAorZW5kCisKK2NsYXNzIEFic29s
dXRlQWRkcmVzcworICAgIGRlZiBzaDRPcGVyYW5kCisgICAgICAgICIje2FkZHJlc3MudmFsdWV9
IgorICAgIGVuZAorZW5kCisKK2RlZiBpc1Bvd2VyT2ZUd28odmFsKQorICAgIHRtcCA9IDEKKyAg
ICB3aGlsZSB0bXAgPCAzMgorICAgICAgICBpZiAyICoqIHRtcCA9PSB2YWwKKyAgICAgICAgICAg
IHJldHVybiB0bXAKKyAgICAgICAgZW5kCisgICAgICAgIHRtcCArPSAxCisgICAgZW5kCisgICAg
cmV0dXJuIC0xCitlbmQKKworY2xhc3MgU2VxdWVuY2UKKyAgICBkZWYgZ2V0TW9kaWZpZWRMaXN0
U0g0CisgICAgICAgIHJlc3VsdCA9IEBsaXN0CisKKyAgICAgICAgIyBWZXJpZnkgdGhhdCB3ZSB3
aWxsIG9ubHkgc2VlIGluc3RydWN0aW9ucyBhbmQgbGFiZWxzLgorICAgICAgICByZXN1bHQuZWFj
aCB7CisgICAgICAgICAgICB8IG5vZGUgfAorICAgICAgICAgICAgdW5sZXNzIG5vZGUuaXNfYT8g
SW5zdHJ1Y3Rpb24gb3IKKyAgICAgICAgICAgICAgICAgICAgbm9kZS5pc19hPyBMYWJlbCBvcgor
ICAgICAgICAgICAgICAgICAgICBub2RlLmlzX2E/IExvY2FsTGFiZWwgb3IKKyAgICAgICAgICAg
ICAgICAgICAgbm9kZS5pc19hPyBTa2lwCisgICAgICAgICAgICAgICAgcmFpc2UgIlVuZXhwZWN0
ZWQgI3tub2RlLmluc3BlY3R9IGF0ICN7bm9kZS5jb2RlT3JpZ2lufSIKKyAgICAgICAgICAgIGVu
ZAorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHJlc3VsdAorICAgIGVuZAorZW5kCisKK2Rl
ZiBzaDRPcGVyYW5kcyhvcGVyYW5kcykKKyAgICBvcGVyYW5kcy5tYXB7fHZ8IHYuc2g0T3BlcmFu
ZH0uam9pbigiLCAiKQorZW5kCisKK2RlZiBlbWl0U0g0TG9hZENvbnN0YW50KGNvbnN0YW50LCBv
cGVyYW5kKQorICAgIGNvbnN0bGFiZWwgPSBMb2NhbExhYmVsLnVuaXF1ZSgibG9hZGNvbnN0YW50
IikKKyAgICAkYXNtLnB1dHMgIi5iYWxpZ24gNCIKKyAgICAkYXNtLnB1dHMgIm1vdi5sIEAoOCwg
UEMpLCAje29wZXJhbmQuc2g0T3BlcmFuZH0iCisgICAgJGFzbS5wdXRzICJicmEgI3tMb2NhbExh
YmVsUmVmZXJlbmNlLm5ldyhjb2RlT3JpZ2luLCBjb25zdGxhYmVsKS5hc21MYWJlbH0iCisgICAg
JGFzbS5wdXRzICJub3AiCisgICAgJGFzbS5wdXRzICJub3AiCisgICAgJGFzbS5wdXRzICIubG9u
ZyAje2NvbnN0YW50fSIKKyAgICBjb25zdGxhYmVsLmxvd2VyKCJTSDQiKQorZW5kCisKK2RlZiBl
bWl0U0g0QnJhbmNoKHNoNG9wY29kZSwgb3BlcmFuZCkKKyAgICAkYXNtLnB1dHMgIiN7c2g0b3Bj
b2RlfSBAI3tvcGVyYW5kLnNoNE9wZXJhbmR9IgorICAgICRhc20ucHV0cyAibm9wIgorZW5kCisK
K2RlZiBlbWl0U0g0Sm1wRmFyKGNvbnN0YW50KQorICAgIHRtcHJlZyA9IFRtcFJlZ2lzdGVyLmNs
YWltR1BSU2NyYXRjaAorICAgICRhc20ucHV0cyAiLmJhbGlnbiA0IgorICAgICRhc20ucHV0cyAi
bW92LmwgQCg4LCBQQyksICN7dG1wcmVnLnNoNE9wZXJhbmR9IgorICAgICRhc20ucHV0cyAiam1w
IEAje3RtcHJlZy5zaDRPcGVyYW5kfSIKKyAgICAkYXNtLnB1dHMgIm5vcCIKKyAgICAkYXNtLnB1
dHMgIm5vcCIKKyAgICAkYXNtLnB1dHMgIi5sb25nICN7Y29uc3RhbnR9IgorICAgIFRtcFJlZ2lz
dGVyLnJlbGVhc2VHUFJTY3JhdGNoKHRtcHJlZykKK2VuZAorCitkZWYgZW1pdFNINFNoaWZ0SW1t
KHZhbCwgb3BlcmFuZCwgZGlyZWN0aW9uKQorICAgIHRtcCA9IHZhbAorICAgIHdoaWxlIHRtcCA+
IDAKKyAgICAgICAgaWYgdG1wID49IDE2CisgICAgICAgICAgICAkYXNtLnB1dHMgInNobCN7ZGly
ZWN0aW9ufTE2ICN7b3BlcmFuZC5zaDRPcGVyYW5kfSIKKyAgICAgICAgICAgIHRtcCAtPSAxNgor
ICAgICAgICBlbHNpZiB0bXAgPj0gOAorICAgICAgICAgICAgJGFzbS5wdXRzICJzaGwje2RpcmVj
dGlvbn04ICN7b3BlcmFuZC5zaDRPcGVyYW5kfSIKKyAgICAgICAgICAgIHRtcCAtPSA4CisgICAg
ICAgIGVsc2lmIHRtcCA+PSAyCisgICAgICAgICAgICAkYXNtLnB1dHMgInNobCN7ZGlyZWN0aW9u
fTIgI3tvcGVyYW5kLnNoNE9wZXJhbmR9IgorICAgICAgICAgICAgdG1wIC09IDIKKyAgICAgICAg
ZWxzZQorICAgICAgICAgICAgJGFzbS5wdXRzICJzaGwje2RpcmVjdGlvbn0gI3tvcGVyYW5kLnNo
NE9wZXJhbmR9IgorICAgICAgICAgICAgdG1wIC09IDEKKyAgICAgICAgZW5kCisgICAgZW5kCitl
bmQKKworZGVmIGVtaXRTSDRBZGRJbW0odmFsLCBvcGVyYW5kKQorICAgIGlmIHZhbCAhPSAwCisg
ICAgICAgIGlmIHZhbCA+PSAtMTI4IGFuZCB2YWwgPD0gMTI3CisgICAgICAgICAgICAkYXNtLnB1
dHMgImFkZCAjI3t2YWx9LCAje29wZXJhbmQuc2g0T3BlcmFuZH0iCisgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgIGVtaXRTSDRMb2FkQ29uc3RhbnQodmFsLCB0bXByZWcgPSBUbXBSZWdpc3Rlci5j
bGFpbUdQUlNjcmF0Y2gpCisgICAgICAgICAgICAkYXNtLnB1dHMgImFkZCAje3NoNE9wZXJhbmRz
KFt0bXByZWcsIG9wZXJhbmRdKX0iCisgICAgICAgICAgICBUbXBSZWdpc3Rlci5yZWxlYXNlR1BS
U2NyYXRjaCh0bXByZWcpCisgICAgICAgIGVuZAorICAgIGVuZAorZW5kCisKK2RlZiBlbWl0U0g0
TG9hZEltbSh2YWwsIG9wZXJhbmQpCisgICAgaWYgdmFsID09IDAKKyAgICAgICAgJGFzbS5wdXRz
ICJ4b3IgI3tzaDRPcGVyYW5kcyhbb3BlcmFuZCwgb3BlcmFuZF0pfSIKKyAgICBlbHNpZiB2YWwg
Pj0gLTEyOCBhbmQgdmFsIDw9IDEyNworICAgICAgICAkYXNtLnB1dHMgIm1vdiAjI3t2YWx9LCAj
e29wZXJhbmQuc2g0T3BlcmFuZH0iCisgICAgZWxzZQorICAgICAgICBlbWl0U0g0TG9hZENvbnN0
YW50KHZhbCwgb3BlcmFuZCkKKyAgICBlbmQKK2VuZAorCitkZWYgZW1pdFNINEJhc2VJbmRleFB0
clRvUmVnKGJpb3AsIGV4dHJhb2Zmc2V0LCByZWdvcCkKKyAgICByYWlzZSAiSW52YWxpZCBvcGVy
YW5kICN7YmlvcH0iIHVubGVzcyBiaW9wLmlzX2E/IEJhc2VJbmRleAorICAgICRhc20ucHV0cyAi
bW92ICN7c2g0T3BlcmFuZHMoW2Jpb3AuaW5kZXgsIHRtcHJlZyA9IFRtcFJlZ2lzdGVyLmNsYWlt
R1BSU2NyYXRjaF0pfSIKKyAgICBwbzIgPSBpc1Bvd2VyT2ZUd28oYmlvcC5zY2FsZSkKKyAgICBp
ZiAocG8yID4gMCkKKyAgICAgICAgZW1pdFNINFNoaWZ0SW1tKHBvMiwgdG1wcmVnLCAibCIpCisg
ICAgZWxzZQorICAgICAgICByYWlzZSAiSW52YWxpZCBzY2FsZSAje2Jpb3Auc2NhbGV9IiB1bmxl
c3MgYmlvcC5zY2FsZSA9PSAxCisgICAgZW5kCisgICAgZW1pdFNINEFkZEltbShiaW9wLm9mZnNl
dC52YWx1ZSArIGV4dHJhb2Zmc2V0LCB0bXByZWcpCisgICAgJGFzbS5wdXRzICJtb3YgI3tzaDRP
cGVyYW5kcyhbYmlvcC5iYXNlLCByZWdvcF0pfSIKKyAgICAkYXNtLnB1dHMgImFkZCAje3NoNE9w
ZXJhbmRzKFt0bXByZWcsIHJlZ29wXSl9IgorICAgIFRtcFJlZ2lzdGVyLnJlbGVhc2VHUFJTY3Jh
dGNoKHRtcHJlZykKK2VuZAorCitkZWYgZW1pdFNINEFkZHJUb1JlZyhhZGRyb3AsIHJlZ29wLCBv
cHNpemUsIG9wc2lnbikKKyAgICByYWlzZSAiSW52YWxpZCBvcGVyYW5kICN7YWRkcm9wfSIgdW5s
ZXNzIGFkZHJvcC5pc19hPyBBZGRyZXNzCisgICAgcmFpc2UgIlVuaGFuZGxlZCBvcHNpZ24gI3tv
cHNpZ259IiBpZiBvcHNpZ24gIT0gInMiIGFuZCBvcHNpZ24gIT0gInUiCisgICAgY2FzZSBvcHNp
emUKKyAgICB3aGVuICJsIgorICAgICAgICBtYXhpbW12YWx1ZSA9IDYwCisgICAgd2hlbiAidyIK
KyAgICAgICAgbWF4aW1tdmFsdWUgPSAzMAorICAgIHdoZW4gImIiCisgICAgICAgIG1heGltbXZh
bHVlID0gMTUKKyAgICBlbHNlCisgICAgICAgIHJhaXNlICJVbmhhbmRsZWQgb3BzaXplICN7b3Bz
aXplfSIKKyAgICBlbmQKKworICAgIGlmIGFkZHJvcC5vZmZzZXQudmFsdWUgPj0gMCBhbmQgYWRk
cm9wLm9mZnNldC52YWx1ZSA8PSBtYXhpbW12YWx1ZSBhbmQgKG9wc2l6ZSA9PSAibCIgb3IgcmVn
b3Auc2g0T3BlcmFuZCA9PSAicjAiKQorICAgICAgICAkYXNtLnB1dHMgIm1vdi4je29wc2l6ZX0g
I3tzaDRPcGVyYW5kcyhbYWRkcm9wLCByZWdvcF0pfSIKKyAgICBlbHNlCisgICAgICAgICRhc20u
cHV0cyAibW92ICN7c2g0T3BlcmFuZHMoW2FkZHJvcC5iYXNlLCByZWdvcF0pfSIKKyAgICAgICAg
ZW1pdFNINEFkZEltbShhZGRyb3Aub2Zmc2V0LnZhbHVlLCByZWdvcCkKKyAgICAgICAgJGFzbS5w
dXRzICJtb3YuI3tvcHNpemV9IEAje3NoNE9wZXJhbmRzKFtyZWdvcCwgcmVnb3BdKX0iCisgICAg
ZW5kCisKKyAgICBpZiBvcHNpZ24gPT0gInUiIGFuZCBvcHNpemUgIT0gImwiCisgICAgICAgICRh
c20ucHV0cyAiZXh0dS4je29wc2l6ZX0gI3tzaDRPcGVyYW5kcyhbcmVnb3AsIHJlZ29wXSl9Igor
ICAgIGVuZAorZW5kCisKK2RlZiBlbWl0U0g0UmVnVG9BZGRyKHJlZ29wLCBvcHNpemUsIGFkZHJv
cCkKKyAgICBjYXNlIG9wc2l6ZQorICAgIHdoZW4gImwiCisgICAgICAgIG1heGltbXZhbHVlID0g
NjAKKyAgICB3aGVuICJ3IgorICAgICAgICBtYXhpbW12YWx1ZSA9IDMwCisgICAgd2hlbiAiYiIK
KyAgICAgICAgbWF4aW1tdmFsdWUgPSAxNQorICAgIGVsc2UKKyAgICAgICAgcmFpc2UgIlVuaGFu
ZGxlZCBvcHNpemUgI3tvcHNpemV9IgorICAgIGVuZAorCisgICAgaWYgYWRkcm9wLm9mZnNldC52
YWx1ZSA+PSAwIGFuZCBhZGRyb3Aub2Zmc2V0LnZhbHVlIDw9IG1heGltbXZhbHVlIGFuZCAob3Bz
aXplID09ICJsIiBvciByZWdvcC5zaDRPcGVyYW5kID09ICJyMCIpCisgICAgICAgICRhc20ucHV0
cyAibW92LiN7b3BzaXplfSAje3NoNE9wZXJhbmRzKFtyZWdvcCwgYWRkcm9wXSl9IgorICAgIGVs
c2UKKyAgICAgICAgJGFzbS5wdXRzICJtb3YgI3tzaDRPcGVyYW5kcyhbYWRkcm9wLmJhc2UsIHRt
cHJlZyA9IFRtcFJlZ2lzdGVyLmNsYWltR1BSU2NyYXRjaF0pfSIKKyAgICAgICAgZW1pdFNINEFk
ZEltbShhZGRyb3Aub2Zmc2V0LnZhbHVlLCB0bXByZWcpCisgICAgICAgICRhc20ucHV0cyAibW92
LiN7b3BzaXplfSAje3JlZ29wLnNoNE9wZXJhbmR9LCBAI3t0bXByZWcuc2g0T3BlcmFuZH0iCisg
ICAgICAgIFRtcFJlZ2lzdGVyLnJlbGVhc2VHUFJTY3JhdGNoKHRtcHJlZykKKyAgICBlbmQKK2Vu
ZAorCitkZWYgZW1pdFNINExvYWRUb1JlZyhzcmNvcGVyYW5kLCBvcHNpemUsIG9wc2lnbiwgb3V0
cmVnKQorICAgIHJhaXNlICJJbnZhbGlkIG9wZXJhbmQgI3tvdXRyZWd9IiB1bmxlc3Mgb3V0cmVn
LmlzX2E/IFJlZ2lzdGVySUQgb3Igb3V0cmVnLmlzX2E/IFNwZWNpYWxSZWdpc3RlcgorICAgIGlm
IHNyY29wZXJhbmQuaXNfYT8gUmVnaXN0ZXJJRAorICAgICAgICBpZiBvcHNpemUgPT0gImwiCisg
ICAgICAgICAgICAkYXNtLnB1dHMgIm1vdiAje3NoNE9wZXJhbmRzKFtzcmNvcGVyYW5kLCBvdXRy
ZWddKX0iCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgICRhc20ucHV0cyAiZXh0I3tvcHNpZ259
LiN7b3BzaXplfSAje3NoNE9wZXJhbmRzKFtzcmNvcGVyYW5kLCBvdXRyZWddKX0iCisgICAgICAg
IGVuZAorICAgIGVsc2lmIHNyY29wZXJhbmQuaXNfYT8gSW1tZWRpYXRlICAgICAgICAKKyAgICAg
ICAgZW1pdFNINExvYWRJbW0oc3Jjb3BlcmFuZC52YWx1ZSwgb3V0cmVnKQorICAgIGVsc2lmIHNy
Y29wZXJhbmQuaXNfYT8gQWRkcmVzcworICAgICAgICBlbWl0U0g0QWRkclRvUmVnKHNyY29wZXJh
bmQsIG91dHJlZywgb3BzaXplLCBvcHNpZ24pCisgICAgZWxzaWYgc3Jjb3BlcmFuZC5pc19hPyBB
YnNvbHV0ZUFkZHJlc3MKKyAgICAgICAgZW1pdFNINExvYWRDb25zdGFudChzcmNvcGVyYW5kLmFk
ZHJlc3MudmFsdWUsIG91dHJlZykKKyAgICAgICAgJGFzbS5wdXRzICJtb3YuI3tvcHNpemV9IEAj
e3NoNE9wZXJhbmRzKFtvdXRyZWcsIG91dHJlZ10pfSIKKyAgICAgICAgaWYgb3BzaWduID09ICJ1
IgorICAgICAgICAgICAgJGFzbS5wdXRzICJleHQje29wc2lnbn0uI3tvcHNpemV9ICN7c2g0T3Bl
cmFuZHMoW291dHJlZywgb3V0cmVnXSl9IgorICAgICAgICBlbmQKKyAgICBlbHNpZiBzcmNvcGVy
YW5kLmlzX2E/IEJhc2VJbmRleAorICAgICAgICBlbWl0U0g0QmFzZUluZGV4UHRyVG9SZWcoc3Jj
b3BlcmFuZCwgMCwgb3V0cmVnKQorICAgICAgICAkYXNtLnB1dHMgIm1vdi4je29wc2l6ZX0gQCN7
c2g0T3BlcmFuZHMoW291dHJlZywgb3V0cmVnXSl9IgorICAgICAgICBpZiBvcHNpZ24gPT0gInUi
CisgICAgICAgICAgICAkYXNtLnB1dHMgImV4dCN7b3BzaWdufS4je29wc2l6ZX0gI3tzaDRPcGVy
YW5kcyhbb3V0cmVnLCBvdXRyZWddKX0iCisgICAgICAgIGVuZAorICAgIGVsc2UKKyAgICAgICAg
cmFpc2UgIlVuaGFuZGxlZCBzcmNvcGVyYW5kICN7c3Jjb3BlcmFuZH0iCisgICAgZW5kCitlbmQK
KworZGVmIGVtaXRTSDRTdG9yZUludEZyb21SZWcoaW5yZWcsIG91dG9wZXJhbmQpCisgICAgcmFp
c2UgIkludmFsaWQgb3BlcmFuZCAje2lucmVnfSIgdW5sZXNzIGlucmVnLmlzX2E/IFJlZ2lzdGVy
SUQgb3IgaW5yZWcuaXNfYT8gU3BlY2lhbFJlZ2lzdGVyCisgICAgaWYgb3V0b3BlcmFuZC5pc19h
PyBSZWdpc3RlcklECisgICAgICAgICRhc20ucHV0cyAibW92ICN7c2g0T3BlcmFuZHMoW2lucmVn
LCBvdXRvcGVyYW5kXSl9IgorICAgIGVsc2lmIG91dG9wZXJhbmQuaXNfYT8gQWRkcmVzcworICAg
ICAgICBlbWl0U0g0UmVnVG9BZGRyKGlucmVnLCAibCIsIG91dG9wZXJhbmQpCisgICAgZWxzaWYg
b3V0b3BlcmFuZC5pc19hPyBBYnNvbHV0ZUFkZHJlc3MKKyAgICAgICAgZW1pdFNINExvYWRDb25z
dGFudChvdXRvcGVyYW5kLmFkZHJlc3MudmFsdWUsIHRtcHJlZyA9IFRtcFJlZ2lzdGVyLmNsYWlt
R1BSU2NyYXRjaCkKKyAgICAgICAgJGFzbS5wdXRzICJtb3YubCAje2lucmVnLnNoNE9wZXJhbmR9
LCBAI3t0bXByZWcuc2g0T3BlcmFuZH0iCisgICAgICAgIFRtcFJlZ2lzdGVyLnJlbGVhc2VHUFJT
Y3JhdGNoKHRtcHJlZykKKyAgICBlbHNpZiBvdXRvcGVyYW5kLmlzX2E/IEJhc2VJbmRleAorICAg
ICAgICBlbWl0U0g0QmFzZUluZGV4UHRyVG9SZWcob3V0b3BlcmFuZCwgMCwgdG1wcmVnID0gVG1w
UmVnaXN0ZXIuY2xhaW1HUFJTY3JhdGNoKQorICAgICAgICAkYXNtLnB1dHMgIm1vdi5sICN7aW5y
ZWcuc2g0T3BlcmFuZH0sIEAje3RtcHJlZy5zaDRPcGVyYW5kfSIKKyAgICAgICAgVG1wUmVnaXN0
ZXIucmVsZWFzZUdQUlNjcmF0Y2godG1wcmVnKQorICAgIGVsc2UKKyAgICAgICAgcmFpc2UgIlVu
aGFuZGxlZCBvdXRvcGVyYW5kICN7b3V0b3BlcmFuZH0iCisgICAgZW5kCitlbmQKKworZGVmIGVt
aXRTSDRJbnRDb21wYXJlKGNtcE9wY29kZSwgb3BzaXplLCBvcHNpZ24sIG9wZXJhbmRzKQorICAg
IHRtcHJlZzEgPSBuaWwKKyAgICB0bXByZWcyID0gbmlsCisgICAgaWYgbm90KG9wc2l6ZSA9PSAi
bCIgYW5kIG9wZXJhbmRzWzBdLmlzX2E/IFJlZ2lzdGVySUQpCisgICAgICAgIGVtaXRTSDRMb2Fk
VG9SZWcob3BlcmFuZHNbMF0sIG9wc2l6ZSwgb3BzaWduLCB0bXByZWcxID0gVG1wUmVnaXN0ZXIu
Y2xhaW1HUFJTY3JhdGNoKQorICAgIGVuZAorICAgIGlmIG5vdChvcHNpemUgPT0gImwiIGFuZCBv
cGVyYW5kc1sxXS5pc19hPyBSZWdpc3RlcklEKQorICAgICAgICBlbWl0U0g0TG9hZFRvUmVnKG9w
ZXJhbmRzWzFdLCBvcHNpemUsIG9wc2lnbiwgdG1wcmVnMiA9IFRtcFJlZ2lzdGVyLmNsYWltR1BS
U2NyYXRjaCkKKyAgICBlbmQKKyAgICAkYXNtLnB1dHMgImNtcC8je2NtcE9wY29kZX0gI3tzaDRP
cGVyYW5kcyhbdG1wcmVnMiA/IHRtcHJlZzIgOiBvcGVyYW5kc1sxXSwgdG1wcmVnMSA/IHRtcHJl
ZzEgOiBvcGVyYW5kc1swXV0pfSIKKyAgICBUbXBSZWdpc3Rlci5yZWxlYXNlR1BSU2NyYXRjaCh0
bXByZWcxKQorICAgIFRtcFJlZ2lzdGVyLnJlbGVhc2VHUFJTY3JhdGNoKHRtcHJlZzIpCitlbmQK
KworZGVmIGVtaXRTSDRDb25kQnJhbmNoKGNtcE9wY29kZSwgb3BzaXplLCBvcHNpZ24sIG5lZywg
b3BlcmFuZHMpCisgICAgZW1pdFNINEludENvbXBhcmUoY21wT3Bjb2RlLCBvcHNpemUsIG9wc2ln
biwgb3BlcmFuZHMpCisgICAgaWYgKCFuZWcpCisgICAgICAgICRhc20ucHV0cyAiYnQgI3tvcGVy
YW5kc1syXS5hc21MYWJlbH0iCisgICAgZWxzZQorICAgICAgICAkYXNtLnB1dHMgImJmICN7b3Bl
cmFuZHNbMl0uYXNtTGFiZWx9IgorICAgIGVuZAorZW5kCisKK2RlZiBlbWl0U0g0Q29tcGFyZVNl
dChjbXBPcGNvZGUsIG9wc2l6ZSwgb3BzaWduLCBuZWcsIG9wZXJhbmRzKQorICAgIGVtaXRTSDRJ
bnRDb21wYXJlKGNtcE9wY29kZSwgb3BzaXplLCBvcHNpZ24sIG9wZXJhbmRzKQorICAgICRhc20u
cHV0cyAibW92dCAje29wZXJhbmRzWzJdLnNoNE9wZXJhbmR9IgorICAgIGlmIChuZWcpCisgICAg
ICAgICRhc20ucHV0cyAidHN0ICN7c2g0T3BlcmFuZHMoW29wZXJhbmRzWzJdLCBvcGVyYW5kc1sy
XV0pfSIKKyAgICAgICAgJGFzbS5wdXRzICJtb3Z0ICN7b3BlcmFuZHNbMl0uc2g0T3BlcmFuZH0i
CisgICAgZW5kCitlbmQKKworZGVmIGVtaXRTSDRCcmFuY2hJZk1pbnVzMChkYmxvcCwgbGFiZWxv
cCkKKyAgICAkYXNtLnB1dHMgImZjbnZkcyAje2RibG9wLnNoNE9wZXJhbmR9LCBmcHVsIgorICAg
ICRhc20ucHV0cyAic3RzIGZwdWwsICN7KGZsb2F0dG1wcmVnID0gVG1wUmVnaXN0ZXIuY2xhaW1H
UFJTY3JhdGNoKS5zaDRPcGVyYW5kfSIKKworICAgICMgSWYgd2UgaGF2ZSAweDgwMDAwMDAwLCB0
aGVuIGl0J3MgYSAiLTAuMCIuCisgICAgZW1pdFNINExvYWRDb25zdGFudCgweDgwMDAwMDAwLCBt
aW51czB0bXByZWcgPSBUbXBSZWdpc3Rlci5jbGFpbUdQUlNjcmF0Y2gpCisgICAgJGFzbS5wdXRz
ICJjbXAvZXEgI3tzaDRPcGVyYW5kcyhbbWludXMwdG1wcmVnLCBmbG9hdHRtcHJlZ10pfSIKKyAg
ICAkYXNtLnB1dHMgImJ0ICN7bGFiZWxvcC5hc21MYWJlbH0iCisKKyAgICBUbXBSZWdpc3Rlci5y
ZWxlYXNlR1BSU2NyYXRjaChtaW51czB0bXByZWcpCisgICAgVG1wUmVnaXN0ZXIucmVsZWFzZUdQ
UlNjcmF0Y2goZmxvYXR0bXByZWcpCitlbmQKKworZGVmIGVtaXRTSDRCcmFuY2hJZk5hTihkYmxv
cCwgbGFiZWxvcCkKKyAgICBub3ROYU5sYWJlbCA9IExvY2FsTGFiZWwudW5pcXVlKCJub3RuYW4i
KQorCisgICAgIyBJZiB3ZSBkb24ndCBoYXZlICJFID0gRW1heCArIDEiLCBpdCdzIG5vdCBhIE5h
Ti4KKyAgICAkYXNtLnB1dHMgImZjbnZkcyAje2RibG9wLnNoNE9wZXJhbmR9LCBmcHVsIgorICAg
ICRhc20ucHV0cyAic3RzIGZwdWwsICN7KHRtcHJlZyA9IFRtcFJlZ2lzdGVyLmNsYWltR1BSU2Ny
YXRjaCkuc2g0T3BlcmFuZH0iCisgICAgZW1pdFNINExvYWRDb25zdGFudCgweDdmODAwMDAwLCBt
YXNrdG1wcmVnID0gVG1wUmVnaXN0ZXIuY2xhaW1HUFJTY3JhdGNoKQorICAgICRhc20ucHV0cyAi
YW5kICN7c2g0T3BlcmFuZHMoW21hc2t0bXByZWcsIHRtcHJlZ10pfSIKKyAgICAkYXNtLnB1dHMg
ImNtcC9lcSAje3NoNE9wZXJhbmRzKFttYXNrdG1wcmVnLCB0bXByZWddKX0iCisgICAgJGFzbS5w
dXRzICJiZiAje0xvY2FsTGFiZWxSZWZlcmVuY2UubmV3KGNvZGVPcmlnaW4sIG5vdE5hTmxhYmVs
KS5hc21MYWJlbH0iCisKKyAgICAjIElmIHdlIGhhdmUgIkUgPSBFbWF4ICsgMSIgYW5kICJmICE9
IDAiLCB0aGVuIGl0J3MgYSBOYU4uCisgICAgJGFzbS5wdXRzICJzdHMgZnB1bCwgI3t0bXByZWcu
c2g0T3BlcmFuZH0iCisgICAgZW1pdFNINExvYWRDb25zdGFudCgweDAwM2ZmZmZmLCBtYXNrdG1w
cmVnKQorICAgICRhc20ucHV0cyAidHN0ICN7c2g0T3BlcmFuZHMoW21hc2t0bXByZWcsIHRtcHJl
Z10pfSIKKyAgICAkYXNtLnB1dHMgImJmICN7bGFiZWxvcC5hc21MYWJlbH0iCisKKyAgICBUbXBS
ZWdpc3Rlci5yZWxlYXNlR1BSU2NyYXRjaChtYXNrdG1wcmVnKQorICAgIFRtcFJlZ2lzdGVyLnJl
bGVhc2VHUFJTY3JhdGNoKHRtcHJlZykKKworICAgIG5vdE5hTmxhYmVsLmxvd2VyKCJTSDQiKQor
ZW5kCisKK2RlZiBlbWl0U0g0RG91YmxlQ29uZEJyYW5jaChjbXBPcGNvZGUsIG5lZywgb3BlcmFu
ZHMsIGlzdW5vcmRlcmVkKQorICAgIGlmIGlzdW5vcmRlcmVkCisgICAgICAgIGVtaXRTSDRCcmFu
Y2hJZk5hTihvcGVyYW5kc1swXSwgb3BlcmFuZHNbMl0pCisgICAgICAgIGVtaXRTSDRCcmFuY2hJ
Zk5hTihvcGVyYW5kc1sxXSwgb3BlcmFuZHNbMl0pCisgICAgZW5kCisKKyAgICBpZiBjbXBPcGNv
ZGUgPT0gImx0IgorICAgICAgICBpZiAoIW5lZykKKyAgICAgICAgICAgIG91dGxhYmVsID0gTG9j
YWxMYWJlbC51bmlxdWUoImRjYm91dCIpCisgICAgICAgICAgICAkYXNtLnB1dHMgImZjbXAvZ3Qg
I3tzaDRPcGVyYW5kcyhbb3BlcmFuZHNbMV0sIG9wZXJhbmRzWzBdXSl9IgorICAgICAgICAgICAg
JGFzbS5wdXRzICJidCAje0xvY2FsTGFiZWxSZWZlcmVuY2UubmV3KGNvZGVPcmlnaW4sIG91dGxh
YmVsKS5hc21MYWJlbH0iCisgICAgICAgICAgICAkYXNtLnB1dHMgImZjbXAvZXEgI3tzaDRPcGVy
YW5kcyhbb3BlcmFuZHNbMV0sIG9wZXJhbmRzWzBdXSl9IgorICAgICAgICAgICAgJGFzbS5wdXRz
ICJiZiAje29wZXJhbmRzWzJdLmFzbUxhYmVsfSIKKyAgICAgICAgICAgIG91dGxhYmVsLmxvd2Vy
KCJTSDQiKQorICAgICAgICBlbHNlCisgICAgICAgICAgICAkYXNtLnB1dHMgImZjbXAvZ3QgI3tz
aDRPcGVyYW5kcyhbb3BlcmFuZHNbMV0sIG9wZXJhbmRzWzBdXSl9IgorICAgICAgICAgICAgJGFz
bS5wdXRzICJidCAje29wZXJhbmRzWzJdLmFzbUxhYmVsfSIKKyAgICAgICAgICAgICRhc20ucHV0
cyAiZmNtcC9lcSAje3NoNE9wZXJhbmRzKFtvcGVyYW5kc1sxXSwgb3BlcmFuZHNbMF1dKX0iCisg
ICAgICAgICAgICAkYXNtLnB1dHMgImJ0ICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9IgorICAgICAg
ICBlbmQKKyAgICBlbHNlCisgICAgICAgICRhc20ucHV0cyAiZmNtcC8je2NtcE9wY29kZX0gI3tz
aDRPcGVyYW5kcyhbb3BlcmFuZHNbMV0sIG9wZXJhbmRzWzBdXSl9IgorICAgICAgICBpZiAoIW5l
ZykKKyAgICAgICAgICAgICRhc20ucHV0cyAiYnQgI3tvcGVyYW5kc1syXS5hc21MYWJlbH0iCisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICRhc20ucHV0cyAiYmYgI3tvcGVyYW5kc1syXS5hc21M
YWJlbH0iCisgICAgICAgIGVuZAorICAgIGVuZAorZW5kCisKK2NsYXNzIEluc3RydWN0aW9uCisg
ICAgZGVmIGxvd2VyU0g0CisgICAgICAgICRhc20uY29tbWVudCAiI3tjb2RlT3JpZ2luU3RyaW5n
fSAoI3tvcGNvZGV9KSIKKyAgICAgICAgY2FzZSBvcGNvZGUKKyAgICAgICAgd2hlbiAiYWRkaSIs
ICJhZGRwIgorICAgICAgICAgICAgaWYgb3BlcmFuZHMuc2l6ZSA9PSAzCisgICAgICAgICAgICAg
ICAgaWYgb3BlcmFuZHNbMF0uaXNfYT8gUmVnaXN0ZXJJRAorICAgICAgICAgICAgICAgICAgICBp
ZiBvcGVyYW5kc1swXS5zaDRPcGVyYW5kID09IG9wZXJhbmRzWzJdLnNoNE9wZXJhbmQKKyAgICAg
ICAgICAgICAgICAgICAgICAgICRhc20ucHV0cyAiYWRkICN7c2g0T3BlcmFuZHMoW29wZXJhbmRz
WzFdLCBvcGVyYW5kc1syXV0pfSIKKyAgICAgICAgICAgICAgICAgICAgZWxzaWYgb3BlcmFuZHNb
MV0uc2g0T3BlcmFuZCA9PSBvcGVyYW5kc1syXS5zaDRPcGVyYW5kCisgICAgICAgICAgICAgICAg
ICAgICAgICAkYXNtLnB1dHMgImFkZCAje3NoNE9wZXJhbmRzKFtvcGVyYW5kc1swXSwgb3BlcmFu
ZHNbMl1dKX0iCisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAg
ICAgICRhc20ucHV0cyAibW92ICN7c2g0T3BlcmFuZHMoW29wZXJhbmRzWzBdLCBvcGVyYW5kc1sy
XV0pfSIKKyAgICAgICAgICAgICAgICAgICAgICAgICRhc20ucHV0cyAiYWRkICN7c2g0T3BlcmFu
ZHMoW29wZXJhbmRzWzFdLCBvcGVyYW5kc1syXV0pfSIKKyAgICAgICAgICAgICAgICAgICAgZW5k
CisgICAgICAgICAgICAgICAgZWxzaWYgb3BlcmFuZHNbMF0uaXNfYT8gSW1tZWRpYXRlCisgICAg
ICAgICAgICAgICAgICAgIGlmIChvcGVyYW5kc1sxXS5zaDRPcGVyYW5kICE9IG9wZXJhbmRzWzJd
LnNoNE9wZXJhbmQpCisgICAgICAgICAgICAgICAgICAgICAgICAkYXNtLnB1dHMgIm1vdiAje3No
NE9wZXJhbmRzKFtvcGVyYW5kc1sxXSwgb3BlcmFuZHNbMl1dKX0iCisgICAgICAgICAgICAgICAg
ICAgIGVuZAorICAgICAgICAgICAgICAgICAgICBlbWl0U0g0QWRkSW1tKG9wZXJhbmRzWzBdLnZh
bHVlLCBvcGVyYW5kc1syXSkKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
ICAgIHJhaXNlICJVbmhhbmRsZWQgcGFyYW1ldGVycyBmb3Igb3Bjb2RlICN7b3Bjb2RlfSBhdCAj
e2NvZGVPcmlnaW5TdHJpbmd9IgorICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgZWxz
aWYgb3BlcmFuZHNbMF0uaXNfYT8gSW1tZWRpYXRlCisgICAgICAgICAgICAgICAgaWYgb3BlcmFu
ZHNbMV0uaXNfYT8gUmVnaXN0ZXJJRAorICAgICAgICAgICAgICAgICAgICBlbWl0U0g0QWRkSW1t
KG9wZXJhbmRzWzBdLnZhbHVlLCBvcGVyYW5kc1sxXSkKKyAgICAgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgICAgICAgIGVtaXRTSDRMb2FkVG9SZWcob3BlcmFuZHNbMV0sICJsIiwgInMi
LCB0bXByZWcgPSBUbXBSZWdpc3Rlci5jbGFpbUdQUlNjcmF0Y2gpCisgICAgICAgICAgICAgICAg
ICAgIGVtaXRTSDRBZGRJbW0ob3BlcmFuZHNbMF0udmFsdWUsIHRtcHJlZykKKyAgICAgICAgICAg
ICAgICAgICAgZW1pdFNINFN0b3JlSW50RnJvbVJlZyh0bXByZWcsIG9wZXJhbmRzWzFdKQorICAg
ICAgICAgICAgICAgICAgICBUbXBSZWdpc3Rlci5yZWxlYXNlR1BSU2NyYXRjaCh0bXByZWcpCisg
ICAgICAgICAgICAgICAgZW5kCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgJGFz
bS5wdXRzICJhZGQgI3tzaDRPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICAgICAgZW5kCisg
ICAgICAgIHdoZW4gInN1YmkiCisgICAgICAgICAgICBpZiBvcGVyYW5kc1swXS5pc19hPyBJbW1l
ZGlhdGUKKyAgICAgICAgICAgICAgICBlbWl0U0g0QWRkSW1tKC1vcGVyYW5kc1swXS52YWx1ZSwg
b3BlcmFuZHNbMV0pCisgICAgICAgICAgICBlbHNpZiBvcGVyYW5kc1swXS5pc19hPyBBZGRyZXNz
CisgICAgICAgICAgICAgICAgZW1pdFNINEFkZHJUb1JlZyhvcGVyYW5kc1swXSwgdG1wcmVnID0g
VG1wUmVnaXN0ZXIuY2xhaW1HUFJTY3JhdGNoLCAibCIsICJzIikKKyAgICAgICAgICAgICAgICAk
YXNtLnB1dHMgInN1YiAje3NoNE9wZXJhbmRzKFt0bXByZWcsIG9wZXJhbmRzWzFdXSl9IgorICAg
ICAgICAgICAgICAgIFRtcFJlZ2lzdGVyLnJlbGVhc2VHUFJTY3JhdGNoKHRtcHJlZykKKyAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAkYXNtLnB1dHMgInN1YiAje3NoNE9wZXJhbmRz
KG9wZXJhbmRzKX0iCisgICAgICAgICAgICBlbmQKKyAgICAgICAgd2hlbiAibXVsaSIsICJtdWxw
IgorICAgICAgICAgICAgcG8yID0gaXNQb3dlck9mVHdvKG9wZXJhbmRzWzBdLnZhbHVlKQorICAg
ICAgICAgICAgaWYgcG8yID4gMAorICAgICAgICAgICAgICAgIGVtaXRTSDRTaGlmdEltbShwbzIs
IG9wZXJhbmRzWzFdLCAibCIpCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdG1w
cmVnMSA9IG5pbAorICAgICAgICAgICAgICAgIHRtcHJlZzIgPSBuaWwKKyAgICAgICAgICAgICAg
ICBpZiBub3Qob3BlcmFuZHNbMF0uaXNfYT8gUmVnaXN0ZXJJRCkKKyAgICAgICAgICAgICAgICAg
ICAgZW1pdFNINExvYWRUb1JlZyhvcGVyYW5kc1swXSwgImwiLCAicyIsIHRtcHJlZzEgPSBUbXBS
ZWdpc3Rlci5jbGFpbUdQUlNjcmF0Y2gpCisgICAgICAgICAgICAgICAgZW5kCisgICAgICAgICAg
ICAgICAgaWYgbm90KG9wZXJhbmRzWzFdLmlzX2E/IFJlZ2lzdGVySUQpCisgICAgICAgICAgICAg
ICAgICAgIGVtaXRTSDRMb2FkVG9SZWcob3BlcmFuZHNbMV0sICJsIiwgInMiLCB0bXByZWcyID0g
VG1wUmVnaXN0ZXIuY2xhaW1HUFJTY3JhdGNoKQorICAgICAgICAgICAgICAgIGVuZAorICAgICAg
ICAgICAgICAgICRhc20ucHV0cyAibXVsLmwgI3tzaDRPcGVyYW5kcyhbdG1wcmVnMSA/IHRtcHJl
ZzEgOiBvcGVyYW5kc1swXSwgdG1wcmVnMiA/IHRtcHJlZzIgOiBvcGVyYW5kc1sxXV0pfSIKKyAg
ICAgICAgICAgICAgICBUbXBSZWdpc3Rlci5yZWxlYXNlR1BSU2NyYXRjaCh0bXByZWcxKQorICAg
ICAgICAgICAgICAgIFRtcFJlZ2lzdGVyLnJlbGVhc2VHUFJTY3JhdGNoKHRtcHJlZzIpCisgICAg
ICAgICAgICAgICAgJGFzbS5wdXRzICJzdHMgbWFjbCwgI3tvcGVyYW5kc1sxXS5zaDRPcGVyYW5k
fSIKKyAgICAgICAgICAgIGVuZAorICAgICAgICB3aGVuICJuZWdpIgorICAgICAgICAgICAgJGFz
bS5wdXRzICJuZWcgI3tzaDRPcGVyYW5kcyhbb3BlcmFuZHNbMF0sIG9wZXJhbmRzWzBdXSl9Igor
ICAgICAgICB3aGVuICJhbmRpIiwgIm9yaSIsICJ4b3JpIgorICAgICAgICAgICAgc2g0b3Bjb2Rl
ID0gb3Bjb2RlWzAuLi0yXQorICAgICAgICAgICAgaWYgb3BlcmFuZHNbMF0uaXNfYT8gSW1tZWRp
YXRlIGFuZCBvcGVyYW5kc1swXS52YWx1ZSA+PSAwIGFuZCBvcGVyYW5kc1swXS52YWx1ZSA8PSAy
NTUgYW5kIG9wZXJhbmRzWzFdLnNoNE9wZXJhbmQgPT0gInIwIgorICAgICAgICAgICAgICAgICRh
c20ucHV0cyAiI3tzaDRvcGNvZGV9ICN7c2g0T3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAg
ICAgIGVsc2lmIG9wZXJhbmRzWzBdLmlzX2E/IEltbWVkaWF0ZQorICAgICAgICAgICAgICAgIGVt
aXRTSDRMb2FkSW1tKG9wZXJhbmRzWzBdLnZhbHVlLCB0bXByZWcgPSBUbXBSZWdpc3Rlci5jbGFp
bUdQUlNjcmF0Y2gpCisgICAgICAgICAgICAgICAgJGFzbS5wdXRzICIje3NoNG9wY29kZX0gI3tz
aDRPcGVyYW5kcyhbdG1wcmVnLCBvcGVyYW5kc1sxXV0pfSIKKyAgICAgICAgICAgICAgICBUbXBS
ZWdpc3Rlci5yZWxlYXNlR1BSU2NyYXRjaCh0bXByZWcpCisgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgJGFzbS5wdXRzICIje3NoNG9wY29kZX0gI3tzaDRPcGVyYW5kcyhvcGVyYW5k
cyl9IgorICAgICAgICAgICAgZW5kCisgICAgICAgIHdoZW4gInVsc2hpZnRpIiwgImxzaGlmdGki
CisgICAgICAgICAgICBpZiBvcGVyYW5kc1swXS5pc19hPyBJbW1lZGlhdGUKKyAgICAgICAgICAg
ICAgICBlbWl0U0g0U2hpZnRJbW0ob3BlcmFuZHNbMF0udmFsdWUsIG9wZXJhbmRzWzFdLCAibCIp
CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJzaGxkICN7c2g0
T3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgICAgIGVuZAorICAgICAgICB3aGVuICJyc2hp
ZnRpIgorICAgICAgICAgICAgaWYgb3BlcmFuZHNbMF0uaXNfYT8gUmVnaXN0ZXJJRAorICAgICAg
ICAgICAgICAgICRhc20ucHV0cyAibmVnICN7c2g0T3BlcmFuZHMoW29wZXJhbmRzWzBdLCB0bXBy
ZWcgPSBUbXBSZWdpc3Rlci5jbGFpbUdQUlNjcmF0Y2hdKX0iCisgICAgICAgICAgICAgICAgJGFz
bS5wdXRzICJzaGFkICN7c2g0T3BlcmFuZHMoW3RtcHJlZywgb3BlcmFuZHNbMV1dKX0iCisgICAg
ICAgICAgICAgICAgVG1wUmVnaXN0ZXIucmVsZWFzZUdQUlNjcmF0Y2godG1wcmVnKQorICAgICAg
ICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJhaXNlICJVbmhhbmRsZWQgcGFyYW1ldGVycyBm
b3Igb3Bjb2RlICN7b3Bjb2RlfSBhdCAje2NvZGVPcmlnaW5TdHJpbmd9IgorICAgICAgICAgICAg
ZW5kCisgICAgICAgIHdoZW4gInVyc2hpZnRpIgorICAgICAgICAgICAgaWYgb3BlcmFuZHNbMF0u
aXNfYT8gSW1tZWRpYXRlCisgICAgICAgICAgICAgICAgZW1pdFNINFNoaWZ0SW1tKG9wZXJhbmRz
WzBdLnZhbHVlLCBvcGVyYW5kc1sxXSwgInIiKQorICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgICAgICRhc20ucHV0cyAibmVnICN7c2g0T3BlcmFuZHMoW29wZXJhbmRzWzBdLCB0bXByZWcg
PSBUbXBSZWdpc3Rlci5jbGFpbUdQUlNjcmF0Y2hdKX0iCisgICAgICAgICAgICAgICAgJGFzbS5w
dXRzICJzaGxkICN7c2g0T3BlcmFuZHMoW3RtcHJlZywgb3BlcmFuZHNbMV1dKX0iCisgICAgICAg
ICAgICAgICAgVG1wUmVnaXN0ZXIucmVsZWFzZUdQUlNjcmF0Y2godG1wcmVnKQorICAgICAgICAg
ICAgZW5kCisgICAgICAgIHdoZW4gImxvYWRkIgorICAgICAgICAgICAgIyBBcyB3ZSBhcmUgbGl0
dGxlIGVuZGlhbiwgd2UgZG9uJ3QgdXNlICJmbW92IEBSbSwgRFJuIiBoZXJlLgorICAgICAgICAg
ICAgZW1pdFNINEJhc2VJbmRleFB0clRvUmVnKG9wZXJhbmRzWzBdLCAwLCB0bXByZWcgPSBUbXBS
ZWdpc3Rlci5jbGFpbUdQUlNjcmF0Y2gpCisgICAgICAgICAgICAkYXNtLnB1dHMgImZtb3YucyBA
I3t0bXByZWcuc2g0T3BlcmFuZH0rLCAje29wZXJhbmRzWzFdLnNoNFNpbmdsZUxvfSIKKyAgICAg
ICAgICAgICRhc20ucHV0cyAiZm1vdi5zIEAje3RtcHJlZy5zaDRPcGVyYW5kfSwgI3tvcGVyYW5k
c1sxXS5zaDRTaW5nbGVIaX0iCisgICAgICAgICAgICBUbXBSZWdpc3Rlci5yZWxlYXNlR1BSU2Ny
YXRjaCh0bXByZWcpCisgICAgICAgIHdoZW4gInN0b3JlZCIKKyAgICAgICAgICAgICMgQXMgd2Ug
YXJlIGxpdHRsZSBlbmRpYW4sIHdlIGRvbid0IHVzZSAiZm1vdiBEUm0sIEBSbiIgaGVyZS4KKyAg
ICAgICAgICAgIGVtaXRTSDRCYXNlSW5kZXhQdHJUb1JlZyhvcGVyYW5kc1sxXSwgOCwgdG1wcmVn
ID0gVG1wUmVnaXN0ZXIuY2xhaW1HUFJTY3JhdGNoKQorICAgICAgICAgICAgJGFzbS5wdXRzICJm
bW92LnMgI3tvcGVyYW5kc1swXS5zaDRTaW5nbGVIaX0sIEAtI3t0bXByZWcuc2g0T3BlcmFuZH0i
CisgICAgICAgICAgICAkYXNtLnB1dHMgImZtb3YucyAje29wZXJhbmRzWzBdLnNoNFNpbmdsZUxv
fSwgQC0je3RtcHJlZy5zaDRPcGVyYW5kfSIKKyAgICAgICAgICAgIFRtcFJlZ2lzdGVyLnJlbGVh
c2VHUFJTY3JhdGNoKHRtcHJlZykKKyAgICAgICAgd2hlbiAiY2kyZCIKKyAgICAgICAgICAgICRh
c20ucHV0cyAibGRzICN7b3BlcmFuZHNbMF0uc2g0T3BlcmFuZH0sIGZwdWwiCisgICAgICAgICAg
ICAkYXNtLnB1dHMgImZsb2F0IGZwdWwsICN7b3BlcmFuZHNbMV0uc2g0T3BlcmFuZH0iCisgICAg
ICAgIHdoZW4gImZpaTJkIgorICAgICAgICAgICAgJGFzbS5wdXRzICJsZHMgI3tvcGVyYW5kc1sw
XS5zaDRPcGVyYW5kfSwgZnB1bCIKKyAgICAgICAgICAgICRhc20ucHV0cyAiZnN0cyBmcHVsLCAj
e29wZXJhbmRzWzJdLnNoNFNpbmdsZUxvfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAibGRzICN7
b3BlcmFuZHNbMV0uc2g0T3BlcmFuZH0sIGZwdWwiCisgICAgICAgICAgICAkYXNtLnB1dHMgImZz
dHMgZnB1bCwgI3tvcGVyYW5kc1syXS5zaDRTaW5nbGVIaX0iCisgICAgICAgIHdoZW4gImZkMmlp
IgorICAgICAgICAgICAgJGFzbS5wdXRzICJmbGRzICN7b3BlcmFuZHNbMF0uc2g0U2luZ2xlTG99
LCBmcHVsIgorICAgICAgICAgICAgJGFzbS5wdXRzICJzdHMgZnB1bCwgI3tvcGVyYW5kc1sxXS5z
aDRPcGVyYW5kfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAiZmxkcyAje29wZXJhbmRzWzBdLnNo
NFNpbmdsZUhpfSwgZnB1bCIKKyAgICAgICAgICAgICRhc20ucHV0cyAic3RzIGZwdWwsICN7b3Bl
cmFuZHNbMl0uc2g0T3BlcmFuZH0iCisgICAgICAgIHdoZW4gImFkZGQiLCAic3ViZCIsICJtdWxk
IiwgImRpdmQiCisgICAgICAgICAgICBzaDRvcGNvZGUgPSBvcGNvZGVbMC4uLTJdCisgICAgICAg
ICAgICAkYXNtLnB1dHMgImYje3NoNG9wY29kZX0gI3tzaDRPcGVyYW5kcyhvcGVyYW5kcyl9Igor
ICAgICAgICB3aGVuICJiY2QyaSIKKyAgICAgICAgICAgICRhc20ucHV0cyAiZnRyYyAje29wZXJh
bmRzWzBdLnNoNE9wZXJhbmR9LCBmcHVsIgorICAgICAgICAgICAgJGFzbS5wdXRzICJzdHMgZnB1
bCwgI3sodG1wcmVnID0gVG1wUmVnaXN0ZXIuY2xhaW1HUFJTY3JhdGNoKS5zaDRPcGVyYW5kfSIK
KyAgICAgICAgICAgICRhc20ucHV0cyAiZmxvYXQgZnB1bCwgI3tTSDRfVE1QX0ZQUi5zaDRPcGVy
YW5kfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAiZmNtcC9lcSAje3NoNE9wZXJhbmRzKFtvcGVy
YW5kc1swXSwgU0g0X1RNUF9GUFJdKX0iCisgICAgICAgICAgICAkYXNtLnB1dHMgImJmICN7b3Bl
cmFuZHNbMl0uYXNtTGFiZWx9IgorICAgICAgICAgICAgZW1pdFNINEJyYW5jaElmTWludXMwKG9w
ZXJhbmRzWzBdLCBvcGVyYW5kc1syXSkKKyAgICAgICAgICAgICRhc20ucHV0cyAibW92ICN7c2g0
T3BlcmFuZHMoW3RtcHJlZywgb3BlcmFuZHNbMV1dKX0iCisgICAgICAgICAgICBUbXBSZWdpc3Rl
ci5yZWxlYXNlR1BSU2NyYXRjaCh0bXByZWcpCisgICAgICAgIHdoZW4gImJkbmVxdW4iCisgICAg
ICAgICAgICBlbWl0U0g0RG91YmxlQ29uZEJyYW5jaCgiZXEiLCB0cnVlLCBvcGVyYW5kcywgdHJ1
ZSkKKyAgICAgICAgd2hlbiAiYmRndGVxIgorICAgICAgICAgICAgZW1pdFNINERvdWJsZUNvbmRC
cmFuY2goImx0IiwgdHJ1ZSwgb3BlcmFuZHMsIGZhbHNlKQorICAgICAgICB3aGVuICJiZGd0ZXF1
biIKKyAgICAgICAgICAgIGVtaXRTSDREb3VibGVDb25kQnJhbmNoKCJsdCIsIHRydWUsIG9wZXJh
bmRzLCB0cnVlKQorICAgICAgICB3aGVuICJiZGx0IgorICAgICAgICAgICAgZW1pdFNINERvdWJs
ZUNvbmRCcmFuY2goImx0IiwgZmFsc2UsIG9wZXJhbmRzLCBmYWxzZSkKKyAgICAgICAgd2hlbiAi
YmRsdHVuIgorICAgICAgICAgICAgZW1pdFNINERvdWJsZUNvbmRCcmFuY2goImx0IiwgZmFsc2Us
IG9wZXJhbmRzLCB0cnVlKQorICAgICAgICB3aGVuICJiZGx0ZXEiCisgICAgICAgICAgICBlbWl0
U0g0RG91YmxlQ29uZEJyYW5jaCgiZ3QiLCB0cnVlLCBvcGVyYW5kcywgZmFsc2UpCisgICAgICAg
IHdoZW4gImJkbHRlcXVuIgorICAgICAgICAgICAgZW1pdFNINERvdWJsZUNvbmRCcmFuY2goImd0
IiwgdHJ1ZSwgb3BlcmFuZHMsIHRydWUpCisgICAgICAgIHdoZW4gImJkZ3QiCisgICAgICAgICAg
ICBlbWl0U0g0RG91YmxlQ29uZEJyYW5jaCgiZ3QiLCBmYWxzZSwgb3BlcmFuZHMsIGZhbHNlKQor
ICAgICAgICB3aGVuICJiZGd0dW4iCisgICAgICAgICAgICBlbWl0U0g0RG91YmxlQ29uZEJyYW5j
aCgiZ3QiLCBmYWxzZSwgb3BlcmFuZHMsIHRydWUpCisgICAgICAgIHdoZW4gImJhZGRpbyIsICJi
c3ViaW8iCisgICAgICAgICAgICB0bXByZWcxID0gbmlsCisgICAgICAgICAgICBpZiBub3Qob3Bl
cmFuZHNbMF0uaXNfYT8gUmVnaXN0ZXJJRCkKKyAgICAgICAgICAgICAgICBlbWl0U0g0TG9hZFRv
UmVnKG9wZXJhbmRzWzBdLCAibCIsICJzIiwgdG1wcmVnMSA9IFRtcFJlZ2lzdGVyLmNsYWltR1BS
U2NyYXRjaCkKKyAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgZW1pdFNINExvYWRUb1JlZyhv
cGVyYW5kc1sxXSwgImwiLCAicyIsIHRtcHJlZzIgPSBUbXBSZWdpc3Rlci5jbGFpbUdQUlNjcmF0
Y2gpCisgICAgICAgICAgICAkYXNtLnB1dHMgIiN7b3Bjb2RlWzEsM119diAje3NoNE9wZXJhbmRz
KFt0bXByZWcxID8gdG1wcmVnMSA6IG9wZXJhbmRzWzBdLCB0bXByZWcyXSl9IgorICAgICAgICAg
ICAgVG1wUmVnaXN0ZXIucmVsZWFzZUdQUlNjcmF0Y2godG1wcmVnMSkKKyAgICAgICAgICAgICRh
c20ucHV0cyAiYnQgI3tvcGVyYW5kc1syXS5hc21MYWJlbH0iCisgICAgICAgICAgICAkYXNtLnB1
dHMgIm1vdiAje3NoNE9wZXJhbmRzKFt0bXByZWcyLCBvcGVyYW5kc1sxXV0pfSIKKyAgICAgICAg
ICAgIFRtcFJlZ2lzdGVyLnJlbGVhc2VHUFJTY3JhdGNoKHRtcHJlZzIpCisgICAgICAgIHdoZW4g
ImJtdWxpbyIKKyAgICAgICAgICAgIHRtcHJlZzEgPSBuaWwKKyAgICAgICAgICAgIHRtcHJlZzIg
PSBuaWwKKyAgICAgICAgICAgIGlmIG5vdChvcGVyYW5kc1swXS5pc19hPyBSZWdpc3RlcklEKQor
ICAgICAgICAgICAgICAgIGVtaXRTSDRMb2FkVG9SZWcob3BlcmFuZHNbMF0sICJsIiwgInMiLCB0
bXByZWcxID0gVG1wUmVnaXN0ZXIuY2xhaW1HUFJTY3JhdGNoKQorICAgICAgICAgICAgZW5kCisg
ICAgICAgICAgICBpZiBub3Qob3BlcmFuZHNbMV0uaXNfYT8gUmVnaXN0ZXJJRCkKKyAgICAgICAg
ICAgICAgICBlbWl0U0g0TG9hZFRvUmVnKG9wZXJhbmRzWzFdLCAibCIsICJzIiwgdG1wcmVnMiA9
IFRtcFJlZ2lzdGVyLmNsYWltR1BSU2NyYXRjaCkKKyAgICAgICAgICAgIGVuZAorICAgICAgICAg
ICAgJGFzbS5wdXRzICJkbXVscy5sICN7c2g0T3BlcmFuZHMoW3RtcHJlZzEgPyB0bXByZWcxIDog
b3BlcmFuZHNbMF0sIHRtcHJlZzIgPyB0bXByZWcyIDogb3BlcmFuZHNbMV1dKX0iCisgICAgICAg
ICAgICBUbXBSZWdpc3Rlci5yZWxlYXNlR1BSU2NyYXRjaCh0bXByZWcxKQorICAgICAgICAgICAg
VG1wUmVnaXN0ZXIucmVsZWFzZUdQUlNjcmF0Y2godG1wcmVnMikKKyAgICAgICAgICAgIHRtcHJl
ZyA9IFRtcFJlZ2lzdGVyLmNsYWltR1BSU2NyYXRjaAorICAgICAgICAgICAgJGFzbS5wdXRzICJz
dHMgbWFjaCwgI3t0bXByZWcuc2g0T3BlcmFuZH0iCisgICAgICAgICAgICAkYXNtLnB1dHMgInRz
dCAje3NoNE9wZXJhbmRzKFt0bXByZWcsIHRtcHJlZ10pfSIKKyAgICAgICAgICAgIFRtcFJlZ2lz
dGVyLnJlbGVhc2VHUFJTY3JhdGNoKHRtcHJlZykKKyAgICAgICAgICAgICRhc20ucHV0cyAiYmYg
I3tvcGVyYW5kc1syXS5hc21MYWJlbH0iCisgICAgICAgICAgICAkYXNtLnB1dHMgInN0cyBtYWNs
LCAje29wZXJhbmRzWzFdLnNoNE9wZXJhbmR9IgorICAgICAgICB3aGVuICJiYWRkaXMiCisgICAg
ICAgICAgICBlbWl0U0g0TG9hZFRvUmVnKG9wZXJhbmRzWzFdLCAibCIsICJzIiwgdG1wcmVnID0g
VG1wUmVnaXN0ZXIuY2xhaW1HUFJTY3JhdGNoKQorICAgICAgICAgICAgZW1pdFNINEFkZEltbShv
cGVyYW5kc1swXS52YWx1ZSwgdG1wcmVnKQorICAgICAgICAgICAgJGFzbS5wdXRzICJjbXAvcHog
I3t0bXByZWcuc2g0T3BlcmFuZH0iCisgICAgICAgICAgICAkYXNtLnB1dHMgImJmICN7b3BlcmFu
ZHNbMl0uYXNtTGFiZWx9IgorICAgICAgICAgICAgZW1pdFNINFN0b3JlSW50RnJvbVJlZyh0bXBy
ZWcsIG9wZXJhbmRzWzFdKQorICAgICAgICAgICAgVG1wUmVnaXN0ZXIucmVsZWFzZUdQUlNjcmF0
Y2godG1wcmVnKQorICAgICAgICB3aGVuICJidGl6IiwgImJ0cHoiLCAiYnRpbnoiLCAiYnRwbnoi
LCAiYnRieiIsICJidGJueiIKKyAgICAgICAgICAgIGNhc2Ugb3Bjb2RlWzIsMV0KKyAgICAgICAg
ICAgIHdoZW4gImkiLCAicCIKKyAgICAgICAgICAgICAgICBvcHNpemUgPSAibCIKKyAgICAgICAg
ICAgIHdoZW4gImIiCisgICAgICAgICAgICAgICAgb3BzaXplID0gImIiCisgICAgICAgICAgICBl
bmQKKyAgICAgICAgICAgIGlmIG9wZXJhbmRzLnNpemUgPT0gMworICAgICAgICAgICAgICAgIHRt
cHJlZzEgPSBuaWwKKyAgICAgICAgICAgICAgICB0bXByZWcyID0gbmlsCisgICAgICAgICAgICAg
ICAgaWYgbm90KG9wZXJhbmRzWzBdLmlzX2E/IFJlZ2lzdGVySUQgYW5kIG9wc2l6ZSA9PSAibCIp
CisgICAgICAgICAgICAgICAgICAgIGVtaXRTSDRMb2FkVG9SZWcob3BlcmFuZHNbMF0sIG9wc2l6
ZSwgInMiLCB0bXByZWcxID0gVG1wUmVnaXN0ZXIuY2xhaW1HUFJTY3JhdGNoKQorICAgICAgICAg
ICAgICAgIGVuZAorICAgICAgICAgICAgICAgIGlmIG5vdChvcGVyYW5kc1sxXS5pc19hPyBSZWdp
c3RlcklEIGFuZCBvcHNpemUgPT0gImwiKQorICAgICAgICAgICAgICAgICAgICBlbWl0U0g0TG9h
ZFRvUmVnKG9wZXJhbmRzWzFdLCBvcHNpemUsICJzIiwgdG1wcmVnMiA9IFRtcFJlZ2lzdGVyLmNs
YWltR1BSU2NyYXRjaCkKKyAgICAgICAgICAgICAgICBlbmQKKyAgICAgICAgICAgICAgICAkYXNt
LnB1dHMgInRzdCAje3NoNE9wZXJhbmRzKFt0bXByZWcxID8gdG1wcmVnMSA6IG9wZXJhbmRzWzBd
LCB0bXByZWcyID8gdG1wcmVnMiA6IG9wZXJhbmRzWzFdXSl9IgorICAgICAgICAgICAgICAgIFRt
cFJlZ2lzdGVyLnJlbGVhc2VHUFJTY3JhdGNoKHRtcHJlZzEpCisgICAgICAgICAgICAgICAgVG1w
UmVnaXN0ZXIucmVsZWFzZUdQUlNjcmF0Y2godG1wcmVnMikKKyAgICAgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICAgICB0bXByZWcgPSBuaWwKKyAgICAgICAgICAgICAgICBpZiBub3Qob3BlcmFu
ZHNbMF0uaXNfYT8gUmVnaXN0ZXJJRCBhbmQgb3BzaXplID09ICJsIikKKyAgICAgICAgICAgICAg
ICAgICAgZW1pdFNINExvYWRUb1JlZyhvcGVyYW5kc1swXSwgb3BzaXplLCAicyIsIHRtcHJlZyA9
IFRtcFJlZ2lzdGVyLmNsYWltR1BSU2NyYXRjaCkKKyAgICAgICAgICAgICAgICBlbmQKKyAgICAg
ICAgICAgICAgICAkYXNtLnB1dHMgInRzdCAje3NoNE9wZXJhbmRzKFt0bXByZWcgPyB0bXByZWcg
OiBvcGVyYW5kc1swXSwgdG1wcmVnID8gdG1wcmVnIDogb3BlcmFuZHNbMF1dKX0iCisgICAgICAg
ICAgICAgICAgVG1wUmVnaXN0ZXIucmVsZWFzZUdQUlNjcmF0Y2godG1wcmVnKQorICAgICAgICAg
ICAgZW5kCisgICAgICAgICAgICBpZiBvcGNvZGVbLTIsMl0gPT0gIm56IgorICAgICAgICAgICAg
ICAgICRhc20ucHV0cyAiYmYgI3tvcGVyYW5kcy5sYXN0LmFzbUxhYmVsfSIKKyAgICAgICAgICAg
IGVsc2UKKyAgICAgICAgICAgICAgICAkYXNtLnB1dHMgImJ0ICN7b3BlcmFuZHMubGFzdC5hc21M
YWJlbH0iCisgICAgICAgICAgICBlbmQKKyAgICAgICAgd2hlbiAiY2JlcSIKKyAgICAgICAgICAg
IGVtaXRTSDRDb21wYXJlU2V0KCJlcSIsICJiIiwgInUiLCBmYWxzZSwgb3BlcmFuZHMpCisgICAg
ICAgIHdoZW4gImNpZXEiLCAiY3BlcSIKKyAgICAgICAgICAgIGVtaXRTSDRDb21wYXJlU2V0KCJl
cSIsICJsIiwgInUiLCBmYWxzZSwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImNpbmVxIiwgImNw
bmVxIgorICAgICAgICAgICAgZW1pdFNINENvbXBhcmVTZXQoImVxIiwgImwiLCAidSIsIHRydWUs
IG9wZXJhbmRzKQorICAgICAgICB3aGVuICJjaWIiCisgICAgICAgICAgICBlbWl0U0g0Q29tcGFy
ZVNldCgiaHMiLCAibCIsICJ1IiwgdHJ1ZSwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImJiZXEi
CisgICAgICAgICAgICBlbWl0U0g0Q29uZEJyYW5jaCgiZXEiLCAiYiIsICJ1IiwgZmFsc2UsIG9w
ZXJhbmRzKQorICAgICAgICB3aGVuICJiYm5lcSIKKyAgICAgICAgICAgIGVtaXRTSDRDb25kQnJh
bmNoKCJlcSIsICJiIiwgInUiLCB0cnVlLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmJiIgor
ICAgICAgICAgICAgZW1pdFNINENvbmRCcmFuY2goImhzIiwgImIiLCAidSIsIHRydWUsIG9wZXJh
bmRzKQorICAgICAgICB3aGVuICJiaWVxIiwgImJwZXEiCisgICAgICAgICAgICBlbWl0U0g0Q29u
ZEJyYW5jaCgiZXEiLCAibCIsICJzIiwgZmFsc2UsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJi
aW5lcSIsICJicG5lcSIKKyAgICAgICAgICAgIGVtaXRTSDRDb25kQnJhbmNoKCJlcSIsICJsIiwg
InMiLCB0cnVlLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmlhIiwgImJwYSIKKyAgICAgICAg
ICAgIGVtaXRTSDRDb25kQnJhbmNoKCJoaSIsICJsIiwgInUiLCBmYWxzZSwgb3BlcmFuZHMpCisg
ICAgICAgIHdoZW4gImJpYWVxIiwgImJwYWVxIgorICAgICAgICAgICAgZW1pdFNINENvbmRCcmFu
Y2goImhzIiwgImwiLCAidSIsIGZhbHNlLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmliIiwg
ImJwYiIKKyAgICAgICAgICAgIGVtaXRTSDRDb25kQnJhbmNoKCJocyIsICJsIiwgInUiLCB0cnVl
LCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmlndGVxIiwgImJwZ3RlcSIKKyAgICAgICAgICAg
IGVtaXRTSDRDb25kQnJhbmNoKCJnZSIsICJsIiwgInMiLCBmYWxzZSwgb3BlcmFuZHMpCisgICAg
ICAgIHdoZW4gImJpbHQiLCAiYnBsdCIKKyAgICAgICAgICAgIGVtaXRTSDRDb25kQnJhbmNoKCJn
ZSIsICJsIiwgInMiLCB0cnVlLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmlndCIsICJicGd0
IgorICAgICAgICAgICAgZW1pdFNINENvbmRCcmFuY2goImd0IiwgImwiLCAicyIsIGZhbHNlLCBv
cGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmlsdGVxIiwgImJwbHRlcSIKKyAgICAgICAgICAgIGVt
aXRTSDRDb25kQnJhbmNoKCJndCIsICJsIiwgJ3MnLCB0cnVlLCBvcGVyYW5kcykKKyAgICAgICAg
d2hlbiAiY2FsbCIKKyAgICAgICAgICAgIGlmIG9wZXJhbmRzWzBdLmlzX2E/IExhYmVsUmVmZXJl
bmNlCisgICAgICAgICAgICAgICAgZW1pdFNINExvYWRDb25zdGFudChvcGVyYW5kc1swXS5hc21M
YWJlbCwgdG1wcmVnID0gVG1wUmVnaXN0ZXIuY2xhaW1HUFJTY3JhdGNoKQorICAgICAgICAgICAg
ICAgIGVtaXRTSDRCcmFuY2goImpzciIsIHRtcHJlZykKKyAgICAgICAgICAgICAgICBUbXBSZWdp
c3Rlci5yZWxlYXNlR1BSU2NyYXRjaCh0bXByZWcpCisgICAgICAgICAgICBlbHNpZiBvcGVyYW5k
c1swXS5pc19hPyBMb2NhbExhYmVsUmVmZXJlbmNlCisgICAgICAgICAgICAgICAgJGFzbS5wdXRz
ICJic3IgI3tvcGVyYW5kc1swXS5hc21MYWJlbH0iCisgICAgICAgICAgICAgICAgJGFzbS5wdXRz
ICJub3AiCisgICAgICAgICAgICBlbHNpZiBvcGVyYW5kc1swXS5pc19hPyBSZWdpc3RlcklECisg
ICAgICAgICAgICAgICAgZW1pdFNINEJyYW5jaCgianNyIiwgb3BlcmFuZHNbMF0pCisgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgZW1pdFNINExvYWRUb1JlZyhvcGVyYW5kc1swXSwg
ImwiLCAicyIsIHRtcHJlZyA9IFRtcFJlZ2lzdGVyLmNsYWltR1BSU2NyYXRjaCkKKyAgICAgICAg
ICAgICAgICBlbWl0U0g0QnJhbmNoKCJqc3IiLCB0bXByZWcpCisgICAgICAgICAgICAgICAgVG1w
UmVnaXN0ZXIucmVsZWFzZUdQUlNjcmF0Y2godG1wcmVnKQorICAgICAgICAgICAgZW5kCisgICAg
ICAgIHdoZW4gImptcCIKKyAgICAgICAgICAgIGlmIG9wZXJhbmRzWzBdLmlzX2E/IExhYmVsUmVm
ZXJlbmNlCisgICAgICAgICAgICAgICAgZW1pdFNINEptcEZhcihvcGVyYW5kc1swXS5hc21MYWJl
bCkKKyAgICAgICAgICAgIGVsc2lmIG9wZXJhbmRzWzBdLmlzX2E/IExvY2FsTGFiZWxSZWZlcmVu
Y2UKKyAgICAgICAgICAgICAgICAkYXNtLnB1dHMgImJyYSAje29wZXJhbmRzWzBdLmFzbUxhYmVs
fSIKKyAgICAgICAgICAgICAgICAkYXNtLnB1dHMgIm5vcCIKKyAgICAgICAgICAgIGVsc2lmIG9w
ZXJhbmRzWzBdLmlzX2E/IFJlZ2lzdGVySUQKKyAgICAgICAgICAgICAgICBlbWl0U0g0QnJhbmNo
KCJqbXAiLCBvcGVyYW5kc1swXSkKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBl
bWl0U0g0TG9hZFRvUmVnKG9wZXJhbmRzWzBdLCAibCIsICJzIiwgdG1wcmVnID0gVG1wUmVnaXN0
ZXIuY2xhaW1HUFJTY3JhdGNoKQorICAgICAgICAgICAgICAgIGVtaXRTSDRCcmFuY2goImptcCIs
IHRtcHJlZykKKyAgICAgICAgICAgICAgICBUbXBSZWdpc3Rlci5yZWxlYXNlR1BSU2NyYXRjaCh0
bXByZWcpCisgICAgICAgICAgICBlbmQKKyAgICAgICAgd2hlbiAicmV0IgorICAgICAgICAgICAg
JGFzbS5wdXRzICJydHMiCisgICAgICAgICAgICAkYXNtLnB1dHMgIm5vcCIKKyAgICAgICAgd2hl
biAiYnJlYWsiCisgICAgICAgICAgICB0MHJlZyA9IFJlZ2lzdGVySUQubmV3KGNvZGVPcmlnaW5T
dHJpbmcsICJ0MCIpCisgICAgICAgICAgICBlbWl0U0g0TG9hZENvbnN0YW50KDB4YmJhZGJlZWYs
IHRtcHJlZyA9IFRtcFJlZ2lzdGVyLmNsYWltR1BSU2NyYXRjaCkKKyAgICAgICAgICAgICRhc20u
cHV0cyAibW92LmwgI3sodDByZWcgPSBSZWdpc3RlcklELm5ldyhjb2RlT3JpZ2luU3RyaW5nLCAi
dDAiKSkuc2g0T3BlcmFuZH0sIEAje3RtcHJlZy5zaDRPcGVyYW5kfSIKKyAgICAgICAgICAgIFRt
cFJlZ2lzdGVyLnJlbGVhc2VHUFJTY3JhdGNoKHRtcHJlZykKKyAgICAgICAgICAgIGVtaXRTSDRM
b2FkSW1tKDAsIHQwcmVnKQorICAgICAgICAgICAgZW1pdFNINEJyYW5jaCgiam1wIiwgdDByZWcp
CisgICAgICAgIHdoZW4gImxvYWRiIiwgImxvYWRoIgorICAgICAgICAgICAgcmFpc2UgIlVuaGFu
ZGxlZCBwYXJhbWV0ZXJzIGZvciBvcGNvZGUgI3tvcGNvZGV9IGF0ICN7Y29kZU9yaWdpblN0cmlu
Z30iIHVubGVzcyBvcGVyYW5kc1swXS5pc19hPyBBZGRyZXNzIGFuZCBvcGVyYW5kc1sxXS5pc19h
PyBSZWdpc3RlcklECisgICAgICAgICAgICBjYXNlIG9wY29kZVstMSwxXQorICAgICAgICAgICAg
d2hlbiAiYiIKKyAgICAgICAgICAgICAgICBlbWl0U0g0QWRkclRvUmVnKG9wZXJhbmRzWzBdLCBv
cGVyYW5kc1sxXSwgImIiLCAidSIpCisgICAgICAgICAgICB3aGVuICJoIgorICAgICAgICAgICAg
ICAgIGVtaXRTSDRBZGRyVG9SZWcob3BlcmFuZHNbMF0sIG9wZXJhbmRzWzFdLCAidyIsICJ1IikK
KyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByYWlzZSAiVW5oYW5kbGVkIG9wY29k
ZSAje29wY29kZX0gYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIKKyAgICAgICAgICAgIGVuZAorICAg
ICAgICB3aGVuICJsb2FkaSIsICJsb2FkaXMiLCAibG9hZHAiLCAibW92ZSIKKyAgICAgICAgICAg
IHJhaXNlICJVbmhhbmRsZWQgcGFyYW1ldGVycyBmb3Igb3Bjb2RlICN7b3Bjb2RlfSBhdCAje2Nv
ZGVPcmlnaW5TdHJpbmd9IiB1bmxlc3Mgb3BlcmFuZHNbMV0uaXNfYT8gUmVnaXN0ZXJJRAorICAg
ICAgICAgICAgZW1pdFNINExvYWRUb1JlZyhvcGVyYW5kc1swXSwgImwiLCAicyIsIG9wZXJhbmRz
WzFdKQorICAgICAgICB3aGVuICJzdG9yZWkiLCAic3RvcmVwIgorICAgICAgICAgICAgdG1wcmVn
MSA9IG5pbAorICAgICAgICAgICAgaWYgbm90KG9wZXJhbmRzWzBdLmlzX2E/IFJlZ2lzdGVySUQp
CisgICAgICAgICAgICAgICAgZW1pdFNINExvYWRUb1JlZyhvcGVyYW5kc1swXSwgImwiLCAicyIs
IHRtcHJlZzEgPSBUbXBSZWdpc3Rlci5jbGFpbUdQUlNjcmF0Y2gpCisgICAgICAgICAgICBlbmQK
KyAgICAgICAgICAgIGVtaXRTSDRTdG9yZUludEZyb21SZWcodG1wcmVnMSA/IHRtcHJlZzEgOiBv
cGVyYW5kc1swXSwgb3BlcmFuZHNbMV0pCisgICAgICAgICAgICBUbXBSZWdpc3Rlci5yZWxlYXNl
R1BSU2NyYXRjaCh0bXByZWcxKQorICAgICAgICB3aGVuICJsZWFwIgorICAgICAgICAgICAgaWYg
b3BlcmFuZHNbMF0uYmFzZSAhPSBvcGVyYW5kc1sxXQorICAgICAgICAgICAgICAgICRhc20ucHV0
cyAibW92ICN7c2g0T3BlcmFuZHMoW29wZXJhbmRzWzBdLmJhc2UsIG9wZXJhbmRzWzFdXSl9Igor
ICAgICAgICAgICAgZW5kCisgICAgICAgICAgICBlbWl0U0g0QWRkSW1tKG9wZXJhbmRzWzBdLm9m
ZnNldC52YWx1ZSwgb3BlcmFuZHNbMV0pCisgICAgICAgIHdoZW4gImxkc3ByIgorICAgICAgICAg
ICAgJGFzbS5wdXRzICJsZHMgI3tzaDRPcGVyYW5kcyhvcGVyYW5kcyl9LCBwciIKKyAgICAgICAg
d2hlbiAic3RzcHIiCisgICAgICAgICAgICAkYXNtLnB1dHMgInN0cyBwciwgI3tzaDRPcGVyYW5k
cyhvcGVyYW5kcyl9IgorICAgICAgICBlbHNlCisgICAgICAgICAgICByYWlzZSAiVW5oYW5kbGVk
IG9wY29kZSAje29wY29kZX0gYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIKKyAgICAgICAgZW5kCisg
ICAgZW5kCitlbmQKKwpJbmRleDogU291cmNlL1dURi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dURi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0NjQ0OSkKKysrIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTMtMDMtMjEgIEp1bGll
biBCcmlhbmNlYXUgICA8amJyaWFuY2VhdUBuZHMuY29tPgorCisgICAgICAgIExMSW50IFNINCBi
YWNrZW5kIGltcGxlbWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMTI4ODYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9ybS5oOgorCiAyMDEzLTAzLTIwICBTaGVyaWZmIEJv
dCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBy
b2xsaW5nIG91dCByMTQ2NDE5LgpJbmRleDogU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCShyZXZpc2lvbiAxNDYyMTIpCisr
KyBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCSh3b3JraW5nIGNvcHkpCkBAIC03ODksNyArNzg5
LDcgQEAKICAgICAmJiBFTkFCTEUoSklUKSBcCiAgICAgJiYgKE9TKERBUldJTikgfHwgT1MoTElO
VVgpKSBcCiAgICAgJiYgKFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oSU9TKSB8fCBQTEFURk9S
TShHVEspIHx8IFBMQVRGT1JNKFFUKSkgXAotICAgICYmIChDUFUoWDg2KSB8fCBDUFUoWDg2XzY0
KSB8fCBDUFUoQVJNX1RIVU1CMikgfHwgQ1BVKE1JUFMpKQorICAgICYmIChDUFUoWDg2KSB8fCBD
UFUoWDg2XzY0KSB8fCBDUFUoQVJNX1RIVU1CMikgfHwgQ1BVKE1JUFMpIHx8IENQVShTSDQpKQog
I2RlZmluZSBFTkFCTEVfTExJTlQgMQogI2VuZGlmCiAK
</data>
<flag name="review"
          id="215958"
          type_id="1"
          status="-"
          setter="jbriance"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194812</attachid>
            <date>2013-03-25 02:51:40 -0700</date>
            <delta_ts>2013-03-29 02:30:03 -0700</delta_ts>
            <desc>SH4 LLint backend implementation using risc.rb</desc>
            <filename>sh4-llint-backend-impl-using-risc.patch</filename>
            <type>text/plain</type>
            <size>38286</size>
            <attacher name="Julien Brianceau">jbriance</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTQ2NzUyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBA
CisyMDEzLTAzLTI1ICBKdWxpZW4gQnJpYW5jZWF1ICAgPGpicmlhbmNlYXVAbmRzLmNvbT4KKwor
ICAgICAgICBMTEludCBTSDQgYmFja2VuZCBpbXBsZW1lbnRhdGlvbgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEyODg2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBkZmcvREZHT3BlcmF0aW9ucy5jcHA6
CisgICAgICAgIChKU0MpOgorICAgICAgICAqIGppdC9KSVRTdHVicy5jcHA6CisgICAgICAgICog
bGxpbnQvTExJbnRPZmZsaW5lQXNtQ29uZmlnLmg6CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJ
bnRlcnByZXRlci5hc206CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0
LmFzbToKKyAgICAgICAgKiBvZmZsaW5lYXNtL2JhY2tlbmRzLnJiOgorICAgICAgICAqIG9mZmxp
bmVhc20vaW5zdHJ1Y3Rpb25zLnJiOgorICAgICAgICAqIG9mZmxpbmVhc20vc2g0LnJiOiBBZGRl
ZC4KKwogMjAxMy0wMy0yMyAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29t
PgogCiAgICAgICAgIEhhbmRsZVNldCBzaG91bGQgdXNlIEhlYXBCbG9ja3MgZm9yIHN0b3Jpbmcg
aGFuZGxlcwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMu
Y3BwCShyZXZpc2lvbiAxNDY3NTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09w
ZXJhdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzUyLDYgKzE3NTIsMTggQEAgU1lNQk9M
X1NUUklORyhnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiOgogICAgICJtb3ZlICRhMCwgJHMwIiAi
XG4iCiAgICAgImIgIiBMT0NBTF9SRUZFUkVOQ0UoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZVdpdGhF
eGVjU3RhdGUpICJcbiIKICk7CisjZWxpZiBDT01QSUxFUihHQ0MpICYmIENQVShTSDQpCithc20o
CisiLnRleHQiICJcbiIKKyIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGdldEhvc3RDYWxsUmV0dXJu
VmFsdWUpICJcbiIKK0hJREVfU1lNQk9MKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICJcbiIKK1NZ
TUJPTF9TVFJJTkcoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIjoiICJcbiIKKyAgICAiYWRkICMt
NDAsIHIxNCIgIlxuIgorICAgICJtb3YubCBAcjE0LCByMTQiICJcbiIKKyAgICAibW92IHIxNCwg
cjQiICJcbiIKKyAgICAiYnJhICIgTE9DQUxfUkVGRVJFTkNFKGdldEhvc3RDYWxsUmV0dXJuVmFs
dWVXaXRoRXhlY1N0YXRlKSAiXG4iCisgICAgIm5vcCIgIlxuIgorKTsKICNlbmRpZgogCiBleHRl
cm4gIkMiIEVuY29kZWRKU1ZhbHVlIEhPU1RfQ0FMTF9SRVRVUk5fVkFMVUVfT1BUSU9OIGdldEhv
c3RDYWxsUmV0dXJuVmFsdWVXaXRoRXhlY1N0YXRlKEV4ZWNTdGF0ZSogZXhlYykKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCShyZXZpc2lvbiAxNDY3NTApCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzIyLDYgKzMyMiw5IEBAIFNZTUJPTF9TVFJJTkcoY3RpVHJhbXBvbGluZSkgIjoiICJcbiIKICAg
ICAiYWRkICMxMiwgcjE1IiAiXG4iCiAgICAgInJ0cyIgIlxuIgogICAgICJub3AiICJcbiIKKyIu
Z2xvYmwgIiBTWU1CT0xfU1RSSU5HKGN0aVRyYW1wb2xpbmVFbmQpICJcbiIKK0hJREVfU1lNQk9M
KGN0aVRyYW1wb2xpbmVFbmQpICJcbiIKK1NZTUJPTF9TVFJJTkcoY3RpVHJhbXBvbGluZUVuZCkg
IjoiICJcbiIKICk7CiAKIGFzbSB2b2xhdGlsZSAoCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTExJbnRPZmZsaW5lQXNtQ29uZmlnLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2xsaW50L0xMSW50T2ZmbGluZUFzbUNvbmZpZy5oCShyZXZpc2lvbiAxNDY3
NTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRPZmZsaW5lQXNtQ29uZmln
LmgJKHdvcmtpbmcgY29weSkKQEAgLTM5LDYgKzM5LDcgQEAKICNkZWZpbmUgT0ZGTElORV9BU01f
WDg2XzY0IDAKICNkZWZpbmUgT0ZGTElORV9BU01fQVJNdjdzIDAKICNkZWZpbmUgT0ZGTElORV9B
U01fTUlQUyAwCisjZGVmaW5lIE9GRkxJTkVfQVNNX1NINCAwCiAKICNlbHNlIC8vICFFTkFCTEUo
TExJTlRfQ19MT09QKQogCkBAIC04Nyw2ICs4OCwxMiBAQAogI2RlZmluZSBPRkZMSU5FX0FTTV9N
SVBTIDAKICNlbmRpZgogCisjaWYgQ1BVKFNINCkKKyNkZWZpbmUgT0ZGTElORV9BU01fU0g0IDEK
KyNlbHNlCisjZGVmaW5lIE9GRkxJTkVfQVNNX1NINCAwCisjZW5kaWYKKwogI2VuZGlmIC8vICFF
TkFCTEUoTExJTlRfQ19MT09QKQogCiAjaWYgVVNFKEpTVkFMVUU2NCkKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJf
NjQuYXNtCShyZXZpc2lvbiAxNDY3NTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQkod29ya2luZyBjb3B5KQpAQCAtMTEzLDcgKzEx
Myw3IEBAIG1hY3JvIGNDYWxsMihmdW5jdGlvbiwgYXJnMSwgYXJnMikKICAgICAgICAgcG9rZSBh
cmcxLCAwCiAgICAgICAgIHBva2UgYXJnMiwgMQogICAgICAgICBjYWxsIGZ1bmN0aW9uCi0gICAg
ZWxzaWYgTUlQUworICAgIGVsc2lmIE1JUFMgb3IgU0g0CiAgICAgICAgIG1vdmUgYXJnMSwgYTAK
ICAgICAgICAgbW92ZSBhcmcyLCBhMQogICAgICAgICBjYWxsIGZ1bmN0aW9uCkBAIC0xMzgsNyAr
MTM4LDcgQEAgbWFjcm8gY0NhbGw0KGZ1bmN0aW9uLCBhcmcxLCBhcmcyLCBhcmczLAogICAgICAg
ICBwb2tlIGFyZzMsIDIKICAgICAgICAgcG9rZSBhcmc0LCAzCiAgICAgICAgIGNhbGwgZnVuY3Rp
b24KLSAgICBlbHNpZiBNSVBTCisgICAgZWxzaWYgTUlQUyBvciBTSDQKICAgICAgICAgbW92ZSBh
cmcxLCBhMAogICAgICAgICBtb3ZlIGFyZzIsIGExCiAgICAgICAgIG1vdmUgYXJnMywgYTIKQEAg
LTE5MTgsNiArMTkxOCwxOSBAQCBtYWNybyBuYXRpdmVDYWxsVHJhbXBvbGluZShleGVjdXRhYmxl
T2ZmCiAgICAgICAgIGNhbGwgZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb25bdDFdCiAgICAgICAg
IHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKHQzKQogICAgICAgICBsb2FkcCBKSVRT
dGFja0ZyYW1lOjpnbG9iYWxEYXRhW3NwXSwgdDMKKyAgICBlbHNpZiBTSDQKKyAgICAgICAgbG9h
ZHAgSklUU3RhY2tGcmFtZTo6Z2xvYmFsRGF0YVtzcF0sIHQzCisgICAgICAgIHN0b3JlcCBjZnIs
IEpTR2xvYmFsRGF0YTo6dG9wQ2FsbEZyYW1lW3QzXQorICAgICAgICBtb3ZlIHQwLCB0MgorICAg
ICAgICBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwodDMpCisgICAgICAgIHN0b3JlcCB0
MywgUmV0dXJuUENbY2ZyXQorICAgICAgICBtb3ZlIGNmciwgdDAKKyAgICAgICAgbG9hZGkgQ2Fs
bGVlICsgUGF5bG9hZE9mZnNldFtjZnJdLCB0MQorICAgICAgICBsb2FkcCBKU0Z1bmN0aW9uOjpt
X2V4ZWN1dGFibGVbdDFdLCB0MQorICAgICAgICBtb3ZlIHQyLCBjZnIKKyAgICAgICAgY2FsbCBl
eGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvblt0MV0KKyAgICAgICAgcmVzdG9yZVJldHVybkFkZHJl
c3NCZWZvcmVSZXR1cm4odDMpCisgICAgICAgIGxvYWRwIEpJVFN0YWNrRnJhbWU6Omdsb2JhbERh
dGFbc3BdLCB0MwogICAgIGVsc2lmIENfTE9PUAogICAgICAgICBsb2FkcCBKSVRTdGFja0ZyYW1l
OjpnbG9iYWxEYXRhW3NwXSwgdDMKICAgICAgICAgc3RvcmVwIGNmciwgSlNHbG9iYWxEYXRhOjp0
b3BDYWxsRnJhbWVbdDNdCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2
ZWxJbnRlcnByZXRlci5hc20KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xs
aW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCShyZXZpc2lvbiAxNDY3NTApCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20JKHdvcmtpbmcgY29w
eSkKQEAgLTE4NSw2ICsxODUsOCBAQCBtYWNybyBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNh
bGwoZGVzCiAgICAgaWYgQ19MT09QIG9yIEFSTSBvciBBUk12NyBvciBBUk12N19UUkFESVRJT05B
TCBvciBNSVBTCiAgICAgICAgICMgSW4gQ19MT09QIGNhc2UsIHdlJ3JlIG9ubHkgcHJlc2Vydmlu
ZyB0aGUgYnl0ZWNvZGUgdlBDLgogICAgICAgICBtb3ZlIGxyLCBkZXN0aW5hdGlvblJlZ2lzdGVy
CisgICAgZWxzaWYgU0g0CisgICAgICAgIHN0c3ByIGRlc3RpbmF0aW9uUmVnaXN0ZXIKICAgICBl
bHNpZiBYODYgb3IgWDg2XzY0CiAgICAgICAgIHBvcCBkZXN0aW5hdGlvblJlZ2lzdGVyCiAgICAg
ZWxzZQpAQCAtMTk2LDYgKzE5OCw4IEBAIG1hY3JvIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3Jl
UmV0dXJuKHMKICAgICBpZiBDX0xPT1Agb3IgQVJNIG9yIEFSTXY3IG9yIEFSTXY3X1RSQURJVElP
TkFMIG9yIE1JUFMKICAgICAgICAgIyBJbiBDX0xPT1AgY2FzZSwgd2UncmUgb25seSByZXN0b3Jp
bmcgdGhlIGJ5dGVjb2RlIHZQQy4KICAgICAgICAgbW92ZSBzb3VyY2VSZWdpc3RlciwgbHIKKyAg
ICBlbHNpZiBTSDQKKyAgICAgICAgbGRzcHIgc291cmNlUmVnaXN0ZXIKICAgICBlbHNpZiBYODYg
b3IgWDg2XzY0CiAgICAgICAgIHB1c2ggc291cmNlUmVnaXN0ZXIKICAgICBlbHNlCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9iYWNrZW5kcy5yYgo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9iYWNrZW5kcy5yYgkocmV2aXNpb24g
MTQ2NzUwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYmFja2VuZHMucmIJ
KHdvcmtpbmcgY29weSkKQEAgLTI2LDYgKzI2LDcgQEAgcmVxdWlyZSAiYXJtIgogcmVxdWlyZSAi
YXN0IgogcmVxdWlyZSAieDg2IgogcmVxdWlyZSAibWlwcyIKK3JlcXVpcmUgInNoNCIKIHJlcXVp
cmUgImNsb29wIgogCiBCQUNLRU5EUyA9CkBAIC0zNiw2ICszNyw3IEBAIEJBQ0tFTkRTID0KICAg
ICAgIkFSTXY3IiwKICAgICAgIkFSTXY3X1RSQURJVElPTkFMIiwKICAgICAgIk1JUFMiLAorICAg
ICAiU0g0IiwKICAgICAgIkNfTE9PUCIKICAgICBdCiAKQEAgLTUyLDYgKzU0LDcgQEAgV09SS0lO
R19CQUNLRU5EUyA9CiAgICAgICJBUk12NyIsCiAgICAgICJBUk12N19UUkFESVRJT05BTCIsCiAg
ICAgICJNSVBTIiwKKyAgICAgIlNINCIsCiAgICAgICJDX0xPT1AiCiAgICAgXQogCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmIKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vaW5zdHJ1Y3Rpb25zLnJiCShy
ZXZpc2lvbiAxNDY3NTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9pbnN0
cnVjdGlvbnMucmIJKHdvcmtpbmcgY29weSkKQEAgLTI3NSw2ICsyNzUsMjAgQEAgTUlQU19JTlNU
UlVDVElPTlMgPQogICAgICJwaWNoZHJyYSIKICAgICBdCiAKK1NINF9JTlNUUlVDVElPTlMgPQor
ICAgIFsKKyAgICAic2hsbHgiLAorICAgICJzaGxyeCIsCisgICAgInNobGQiLAorICAgICJzaGFk
IiwKKyAgICAiYmRuYW4iLAorICAgICJsb2FkZCsiLAorICAgICJzdG9yZWQtIiwKKyAgICAibGRz
cHIiLAorICAgICJzdHNwciIsCisgICAgImptcGYiCisgICAgXQorCiBDWFhfSU5TVFJVQ1RJT05T
ID0KICAgICBbCiAgICAgICJjbG9vcENyYXNoIiwgICAgICAgICAgICMgbm8gb3BlcmFuZHMKQEAg
LTI5MSw3ICszMDUsNyBAQCBDWFhfSU5TVFJVQ1RJT05TID0KICAgICAgImNsb29wRG8iLCAgICAg
ICAgICAgICAgIyBubyBvcGVyYW5kcwogICAgIF0KIAotSU5TVFJVQ1RJT05TID0gTUFDUk9fSU5T
VFJVQ1RJT05TICsgWDg2X0lOU1RSVUNUSU9OUyArIEFSTV9JTlNUUlVDVElPTlMgKyBNSVBTX0lO
U1RSVUNUSU9OUyArIENYWF9JTlNUUlVDVElPTlMKK0lOU1RSVUNUSU9OUyA9IE1BQ1JPX0lOU1RS
VUNUSU9OUyArIFg4Nl9JTlNUUlVDVElPTlMgKyBBUk1fSU5TVFJVQ1RJT05TICsgTUlQU19JTlNU
UlVDVElPTlMgKyBTSDRfSU5TVFJVQ1RJT05TICsgQ1hYX0lOU1RSVUNUSU9OUwogCiBJTlNUUlVD
VElPTl9QQVRURVJOID0gUmVnZXhwLm5ldygnXFxBKCgnICsgSU5TVFJVQ1RJT05TLmpvaW4oJyl8
KCcpICsgJykpXFxaJykKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20v
c2g0LnJiCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3No
NC5yYgkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3No
NC5yYgkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw4MTYgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDEz
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDEzIENp
c2NvIFN5c3RlbXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisj
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBDSVNDTyBTWVNURU1TLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisj
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisjIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBDSVNDTyBTWVNURU1TLCBJTkMuIE9SIElUUworIyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyMg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorIyBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyMgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorIyBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisKK3JlcXVpcmUgJ3Jpc2MnCisKK2NsYXNzIE5vZGUKKyAgICBk
ZWYgc2g0U2luZ2xlSGkKKyAgICAgICAgZG91YmxlT3BlcmFuZCA9IHNoNE9wZXJhbmQKKyAgICAg
ICAgcmFpc2UgIkJvZ3VzIHJlZ2lzdGVyIG5hbWUgI3tkb3VibGVPcGVyYW5kfSIgdW5sZXNzIGRv
dWJsZU9wZXJhbmQgPX4gL15kci8KKyAgICAgICAgImZyIiArICgkfi5wb3N0X21hdGNoLnRvX2kp
LnRvX3MKKyAgICBlbmQKKyAgICBkZWYgc2g0U2luZ2xlTG8KKyAgICAgICAgZG91YmxlT3BlcmFu
ZCA9IHNoNE9wZXJhbmQKKyAgICAgICAgcmFpc2UgIkJvZ3VzIHJlZ2lzdGVyIG5hbWUgI3tkb3Vi
bGVPcGVyYW5kfSIgdW5sZXNzIGRvdWJsZU9wZXJhbmQgPX4gL15kci8KKyAgICAgICAgImZyIiAr
ICgkfi5wb3N0X21hdGNoLnRvX2kgKyAxKS50b19zCisgICAgZW5kCitlbmQKKworY2xhc3MgU3Bl
Y2lhbFJlZ2lzdGVyIDwgTm9DaGlsZHJlbgorICAgIGRlZiBzaDRPcGVyYW5kCisgICAgICAgIEBu
YW1lCisgICAgZW5kCisKKyAgICBkZWYgZHVtcAorICAgICAgICBAbmFtZQorICAgIGVuZAorCisg
ICAgZGVmIHJlZ2lzdGVyPworICAgICAgICB0cnVlCisgICAgZW5kCitlbmQKKworU0g0X1RNUF9H
UFJTID0gWyBTcGVjaWFsUmVnaXN0ZXIubmV3KCJyMyIpLCBTcGVjaWFsUmVnaXN0ZXIubmV3KCJy
MTEiKSwgU3BlY2lhbFJlZ2lzdGVyLm5ldygicjEzIikgXQorU0g0X1RNUF9GUFJTID0gWyBTcGVj
aWFsUmVnaXN0ZXIubmV3KCJkcjEwIikgXQorCitjbGFzcyBSZWdpc3RlcklECisgICAgZGVmIHNo
NE9wZXJhbmQKKyAgICAgICAgY2FzZSBuYW1lCisgICAgICAgIHdoZW4gImEwIgorICAgICAgICAg
ICAgInI0IgorICAgICAgICB3aGVuICJhMSIKKyAgICAgICAgICAgICJyNSIKKyAgICAgICAgd2hl
biAidDAiCisgICAgICAgICAgICAicjAiCisgICAgICAgIHdoZW4gInQxIgorICAgICAgICAgICAg
InIxIgorICAgICAgICB3aGVuICJ0MiIKKyAgICAgICAgICAgICJyMiIKKyAgICAgICAgd2hlbiAi
dDMiCisgICAgICAgICAgICAicjEwIgorICAgICAgICB3aGVuICJ0NCIKKyAgICAgICAgICAgICJy
NiIKKyAgICAgICAgd2hlbiAiY2ZyIgorICAgICAgICAgICAgInIxNCIKKyAgICAgICAgd2hlbiAi
c3AiCisgICAgICAgICAgICAicjE1IgorICAgICAgICB3aGVuICJsciIKKyAgICAgICAgICAgICJw
ciIKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmFpc2UgIkJhZCByZWdpc3RlciAje25hbWV9
IGZvciBTSDQgYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIKKyAgICAgICAgZW5kCisgICAgZW5kCitl
bmQKKworY2xhc3MgRlBSZWdpc3RlcklECisgICAgZGVmIHNoNE9wZXJhbmQKKyAgICAgICAgY2Fz
ZSBuYW1lCisgICAgICAgIHdoZW4gImZ0MCIsICJmciIKKyAgICAgICAgICAgICJkcjAiCisgICAg
ICAgIHdoZW4gImZ0MSIKKyAgICAgICAgICAgICJkcjIiCisgICAgICAgIHdoZW4gImZ0MiIKKyAg
ICAgICAgICAgICJkcjQiCisgICAgICAgIHdoZW4gImZ0MyIKKyAgICAgICAgICAgICJkcjYiCisg
ICAgICAgIHdoZW4gImZ0NCIKKyAgICAgICAgICAgICJkcjgiCisgICAgICAgIHdoZW4gImZhMCIK
KyAgICAgICAgICAgICJkcjEyIgorICAgICAgICBlbHNlCisgICAgICAgICAgICByYWlzZSAiQmFk
IHJlZ2lzdGVyICN7bmFtZX0gZm9yIFNINCBhdCAje2NvZGVPcmlnaW5TdHJpbmd9IgorICAgICAg
ICBlbmQKKyAgICBlbmQKK2VuZAorCitjbGFzcyBJbW1lZGlhdGUKKyAgICBkZWYgc2g0T3BlcmFu
ZAorICAgICAgICByYWlzZSAiSW52YWxpZCBpbW1lZGlhdGUgI3t2YWx1ZX0gYXQgI3tjb2RlT3Jp
Z2luU3RyaW5nfSIgaWYgdmFsdWUgPCAtMTI4IG9yIHZhbHVlID4gMTI3CisgICAgICAgICIjI3t2
YWx1ZX0iCisgICAgZW5kCitlbmQKKworY2xhc3MgQWRkcmVzcworICAgIGRlZiBzaDRPcGVyYW5k
CisgICAgICAgIHJhaXNlICJCYWQgb2Zmc2V0ICN7b2Zmc2V0LnZhbHVlfSBhdCAje2NvZGVPcmln
aW5TdHJpbmd9IiBpZiBvZmZzZXQudmFsdWUgPCAwIG9yIG9mZnNldC52YWx1ZSA+IDYwCisgICAg
ICAgIGlmIG9mZnNldC52YWx1ZSA9PSAwCisgICAgICAgICAgICAiQCN7YmFzZS5zaDRPcGVyYW5k
fSIKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgIkAoI3tvZmZzZXQudmFsdWV9LCAje2Jhc2Uu
c2g0T3BlcmFuZH0pIgorICAgICAgICBlbmQKKyAgICBlbmQKKworICAgIGRlZiBzaDRPcGVyYW5k
UG9zdEluYworICAgICAgICByYWlzZSAiQmFkIG9mZnNldCAje29mZnNldC52YWx1ZX0gZm9yIHBv
c3QgaW5jIGF0ICN7Y29kZU9yaWdpblN0cmluZ30iIHVubGVzcyBvZmZzZXQudmFsdWUgPT0gMAor
ICAgICAgICAiQCN7YmFzZS5zaDRPcGVyYW5kfSsiCisgICAgZW5kCisKKyAgICBkZWYgc2g0T3Bl
cmFuZFByZURlYworICAgICAgICByYWlzZSAiQmFkIG9mZnNldCAje29mZnNldC52YWx1ZX0gZm9y
IHByZSBkZWMgYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIgdW5sZXNzIG9mZnNldC52YWx1ZSA9PSAw
CisgICAgICAgICJALSN7YmFzZS5zaDRPcGVyYW5kfSIKKyAgICBlbmQKK2VuZAorCitjbGFzcyBC
YXNlSW5kZXgKKyAgICBkZWYgc2g0T3BlcmFuZAorICAgICAgICByYWlzZSAiVW5jb252ZXJ0ZWQg
YmFzZSBpbmRleCBhdCAje2NvZGVPcmlnaW5TdHJpbmd9IgorICAgIGVuZAorZW5kCisKK2NsYXNz
IEFic29sdXRlQWRkcmVzcworICAgIGRlZiBzaDRPcGVyYW5kCisgICAgICAgIHJhaXNlICJVbmNv
bnZlcnRlZCBhYnNvbHV0ZSBhZGRyZXNzIGF0ICN7Y29kZU9yaWdpblN0cmluZ30iCisgICAgZW5k
CitlbmQKKworCisjCisjIExvd2VyaW5nIG9mIGJyZWFrIG9wY29kZSBmb3IgU0g0LgorIworCitk
ZWYgc2g0TG93ZXJCcmVha09wcyhsaXN0KQorICAgIG5ld0xpc3QgPSBbXQorICAgIGxpc3QuZWFj
aCB7CisgICAgICAgIHwgbm9kZSB8CisgICAgICAgIGlmIG5vZGUuaXNfYT8gSW5zdHJ1Y3Rpb24g
YW5kIG5vZGUub3Bjb2RlID09ICJicmVhayIKKyAgICAgICAgICAgIHQwcmVnID0gUmVnaXN0ZXJJ
RC5uZXcoY29kZU9yaWdpbiwgInQwIikKKyAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rp
b24ubmV3KGNvZGVPcmlnaW4sICJtb3ZlIiwgW0ltbWVkaWF0ZS5uZXcoY29kZU9yaWdpbiwgMHhi
YmFkYmVlZiksIHQwcmVnXSkKKyAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3
KGNvZGVPcmlnaW4sICJzdG9yZWkiLCBbdDByZWcsIEFkZHJlc3MubmV3KGNvZGVPcmlnaW4sIHQw
cmVnLCBJbW1lZGlhdGUubmV3KGNvZGVPcmlnaW4sIDApKV0pCisgICAgICAgICAgICBuZXdMaXN0
IDw8IEluc3RydWN0aW9uLm5ldyhjb2RlT3JpZ2luLCAibW92ZSIsIFtJbW1lZGlhdGUubmV3KGNv
ZGVPcmlnaW4sIDApLCB0MHJlZ10pCisgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9u
Lm5ldyhjb2RlT3JpZ2luLCAiY2FsbCIsIFt0MHJlZ10pCisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIG5ld0xpc3QgPDwgbm9kZQorICAgICAgICBlbmQKKyAgICB9CisgICAgbmV3TGlzdAorZW5k
CisKKworIworIyBMb3dlcmluZyBvZiBzaGlmdCBvcHMgZm9yIFNINC4KKyMKKworZGVmIHNoNExv
d2VyU2hpZnRPcHMobGlzdCkKKyAgICBuZXdMaXN0ID0gW10KKyAgICBsaXN0LmVhY2ggeworICAg
ICAgICB8IG5vZGUgfAorICAgICAgICBpZiBub2RlLmlzX2E/IEluc3RydWN0aW9uCisgICAgICAg
ICAgICBjYXNlIG5vZGUub3Bjb2RlCisgICAgICAgICAgICB3aGVuICJ1bHNoaWZ0aSIsICJsc2hp
ZnRpIiwgImxzaGlmdHAiCisgICAgICAgICAgICAgICAgaWYgbm9kZS5vcGVyYW5kc1swXS5pc19h
PyBJbW1lZGlhdGUKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBub2RlLm9wZXJhbmRzWzBdLnZh
bHVlCisgICAgICAgICAgICAgICAgICAgIHdoZW4gMAorICAgICAgICAgICAgICAgICAgICAgICAg
IyBUaGVyZSBpcyBub3RoaW5nIHRvIGRvIGhlcmUuCisgICAgICAgICAgICAgICAgICAgIHdoZW4g
MSwgMiwgOCwgMTYKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rp
b24ubmV3KG5vZGUuY29kZU9yaWdpbiwgInNobGx4Iiwgbm9kZS5vcGVyYW5kcykKKyAgICAgICAg
ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gVG1wLm5ldyhj
b2RlT3JpZ2luLCA6Z3ByKQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0
cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAibW92ZSIsIFtub2RlLm9wZXJhbmRzWzBdLCB0
bXBdKQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXco
bm9kZS5jb2RlT3JpZ2luLCAic2hsZCIsIFt0bXAsIG5vZGUub3BlcmFuZHNbMV1dKQorICAgICAg
ICAgICAgICAgICAgICBlbmQKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
ICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KGNvZGVPcmlnaW4sICJzaGxkIiwgbm9kZS5v
cGVyYW5kcykKKyAgICAgICAgICAgICAgICBlbmQKKyAgICAgICAgICAgIHdoZW4gInVyc2hpZnRp
IiwgInVyc2hpZnRwIgorICAgICAgICAgICAgICAgIGlmIG5vZGUub3BlcmFuZHNbMF0uaXNfYT8g
SW1tZWRpYXRlCisgICAgICAgICAgICAgICAgICAgIGNhc2Ugbm9kZS5vcGVyYW5kc1swXS52YWx1
ZQorICAgICAgICAgICAgICAgICAgICB3aGVuIDAKKyAgICAgICAgICAgICAgICAgICAgICAgICMg
VGhlcmUgaXMgbm90aGluZyB0byBkbyBoZXJlLgorICAgICAgICAgICAgICAgICAgICB3aGVuIDEs
IDIsIDgsIDE2CisgICAgICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9u
Lm5ldyhub2RlLmNvZGVPcmlnaW4sICJzaGxyeCIsIG5vZGUub3BlcmFuZHMpCisgICAgICAgICAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFRtcC5uZXcoY29k
ZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1
Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgIm1vdmUiLCBbSW1tZWRpYXRlLm5ldyhvcGVyYW5k
c1swXS5jb2RlT3JpZ2luLCAtMSAqIG9wZXJhbmRzWzBdLnZhbHVlKSwgdG1wXSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdp
biwgInNobGQiLCBbdG1wLCBub2RlLm9wZXJhbmRzWzFdXSkKKyAgICAgICAgICAgICAgICAgICAg
ZW5kCisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB0bXAgPSBUbXAu
bmV3KGNvZGVPcmlnaW4sIDpncHIpCisgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5z
dHJ1Y3Rpb24ubmV3KGNvZGVPcmlnaW4sICJuZWdpIiwgW25vZGUub3BlcmFuZHNbMF0sIHRtcF0p
CisgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KGNvZGVPcmln
aW4sICJzaGxkIiwgW3RtcCwgbm9kZS5vcGVyYW5kc1sxXV0pCisgICAgICAgICAgICAgICAgZW5k
CisgICAgICAgICAgICB3aGVuICJyc2hpZnRpIiwgInJzaGlmdHAiCisgICAgICAgICAgICAgICAg
dG1wID0gVG1wLm5ldyhjb2RlT3JpZ2luLCA6Z3ByKQorICAgICAgICAgICAgICAgIG5ld0xpc3Qg
PDwgSW5zdHJ1Y3Rpb24ubmV3KGNvZGVPcmlnaW4sICJuZWdpIiwgW25vZGUub3BlcmFuZHNbMF0s
IHRtcF0pCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcoY29kZU9y
aWdpbiwgInNoYWQiLCBbdG1wLCBub2RlLm9wZXJhbmRzWzFdXSkKKyAgICAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUKKyAgICAgICAgICAgIGVuZAorICAgICAg
ICBlbHNlCisgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUKKyAgICAgICAgZW5kCisgICAgfQor
ICAgIG5ld0xpc3QKK2VuZAorCisKKyMKKyMgTG93ZXJpbmcgb2YgYnJhbmNoIG9wcyBmb3IgU0g0
LgorIworCitkZWYgc2g0TG93ZXJTaW1wbGVCcmFuY2hPcHMobGlzdCkKKyAgICBuZXdMaXN0ID0g
W10KKyAgICBsaXN0LmVhY2ggeworICAgICAgICB8IG5vZGUgfAorICAgICAgICBpZiBub2RlLmlz
X2E/IEluc3RydWN0aW9uCisgICAgICAgICAgICBhbm5vdGF0aW9uID0gbm9kZS5hbm5vdGF0aW9u
CisgICAgICAgICAgICBjYXNlIG5vZGUub3Bjb2RlCisgICAgICAgICAgICB3aGVuIC9eYihhZGRp
fHN1Yml8b3JpfGFkZHApLworICAgICAgICAgICAgICAgIG9wID0gJDEKKyAgICAgICAgICAgICAg
ICBiYyA9ICR+LnBvc3RfbWF0Y2gKKyAgICAgICAgICAgICAgICBicmFuY2ggPSAiYiIgKyBiYwor
CisgICAgICAgICAgICAgICAgY2FzZSBvcAorICAgICAgICAgICAgICAgIHdoZW4gImFkZGkiLCAi
YWRkcCIKKyAgICAgICAgICAgICAgICAgICAgb3AgPSAiYWRkaSIKKyAgICAgICAgICAgICAgICB3
aGVuICJzdWJpIgorICAgICAgICAgICAgICAgICAgICBvcCA9ICJzdWJpIgorICAgICAgICAgICAg
ICAgIHdoZW4gIm9yaSIKKyAgICAgICAgICAgICAgICAgICAgb3AgPSAib3JpIgorICAgICAgICAg
ICAgICAgIGVuZAorCisgICAgICAgICAgICAgICAgaWYgYmMgPT0gInMiCisgICAgICAgICAgICAg
ICAgICAgIHRtcCA9IFRtcC5uZXcoY29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAgICAgICAg
ICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCBvcCwgW25vZGUu
b3BlcmFuZHNbMF0sIG5vZGUub3BlcmFuZHNbMV0sIHRtcF0pCisgICAgICAgICAgICAgICAgICAg
IG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgImJzIiwgW3RtcCwg
bm9kZS5vcGVyYW5kc1syXV0pCisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
ICAgICBuZXdMaXN0IDw8IG5vZGUKKyAgICAgICAgICAgICAgICBlbmQKKyAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUKKyAgICAgICAgICAgIGVuZAorICAg
ICAgICBlbHNlCisgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUKKyAgICAgICAgZW5kCisgICAg
fQorICAgIG5ld0xpc3QKK2VuZAorCisKKyMKKyMgTG93ZXJpbmcgb2YgbWFsZm9ybWVkIGFkZHJl
c3NlcyBpbiBkb3VibGUgbG9hZHMgYW5kIHN0b3JlcyBmb3IgU0g0LiBGb3IgZXhhbXBsZToKKyMK
KyMgbG9hZGQgW2ZvbywgYmFyLCA4XSwgYmF6CisjCisjIGJlY29tZXM6CisjCisjIGxlYXAgW2Zv
bywgYmFyLCA4XSwgdG1wCisjIGxvYWRmKyBbdG1wXSwgYmF6CisjCisKK2NsYXNzIE5vZGUKKyAg
ICBkZWYgc2g0RG91YmxlQWRkcmVzcyhsaXN0LCBvZmZzZXQpCisgICAgICAgIHNlbGYKKyAgICBl
bmQKK2VuZAorCitjbGFzcyBCYXNlSW5kZXgKKyAgICBkZWYgc2g0RG91YmxlQWRkcmVzcyhsaXN0
LCBvZmZzZXQpCisgICAgICAgIHRtcCA9IFRtcC5uZXcoY29kZU9yaWdpbiwgOmdwcikKKyAgICAg
ICAgbGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcoY29kZU9yaWdpbiwgImxlYXAiLCBbc2VsZiwgdG1w
XSkKKyAgICAgICAgQWRkcmVzcy5uZXcoY29kZU9yaWdpbiwgdG1wLCBJbW1lZGlhdGUubmV3KGNv
ZGVPcmlnaW4sIG9mZnNldCkpCisgICAgZW5kCitlbmQKKworZGVmIHNoNExvd2VyTWFsZm9ybWVk
QWRkcmVzc2VzRG91YmxlKGxpc3QpCisgICAgbmV3TGlzdCA9IFtdCisgICAgbGlzdC5lYWNoIHsK
KyAgICAgICAgfCBub2RlIHwKKyAgICAgICAgaWYgbm9kZS5pc19hPyBJbnN0cnVjdGlvbgorICAg
ICAgICAgICAgY2FzZSBub2RlLm9wY29kZQorICAgICAgICAgICAgd2hlbiAibG9hZGQiCisgICAg
ICAgICAgICAgICAgdG1wID0gVG1wLm5ldyhjb2RlT3JpZ2luLCA6Z3ByKQorICAgICAgICAgICAg
ICAgIGFkZHIgPSBBZGRyZXNzLm5ldyhjb2RlT3JpZ2luLCB0bXAsIEltbWVkaWF0ZS5uZXcoY29k
ZU9yaWdpbiwgMCkpCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXco
Y29kZU9yaWdpbiwgImxlYXAiLCBbbm9kZS5vcGVyYW5kc1swXSwgdG1wXSkKKyAgICAgICAgICAg
ICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJsb2FkZCsi
LCBbYWRkciwgbm9kZS5vcGVyYW5kc1sxXV0sIG5vZGUuYW5ub3RhdGlvbikKKyAgICAgICAgICAg
IHdoZW4gInN0b3JlZCIKKyAgICAgICAgICAgICAgICB0bXAgPSBUbXAubmV3KGNvZGVPcmlnaW4s
IDpncHIpCisgICAgICAgICAgICAgICAgYWRkciA9IEFkZHJlc3MubmV3KGNvZGVPcmlnaW4sIHRt
cCwgSW1tZWRpYXRlLm5ldyhjb2RlT3JpZ2luLCAwKSkKKyAgICAgICAgICAgICAgICBuZXdMaXN0
IDw8IEluc3RydWN0aW9uLm5ldyhjb2RlT3JpZ2luLCAibGVhcCIsIFtub2RlLm9wZXJhbmRzWzFd
LCB0bXBdKQorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KGNvZGVP
cmlnaW4sICJhZGRpIiwgW0ltbWVkaWF0ZS5uZXcoY29kZU9yaWdpbiwgOCksIHRtcF0pCisgICAg
ICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAi
c3RvcmVkLSIsIFtub2RlLm9wZXJhbmRzWzBdLCBhZGRyXSwgbm9kZS5hbm5vdGF0aW9uKQorICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgbm9kZQorICAgICAgICAg
ICAgZW5kCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG5ld0xpc3QgPDwgbm9kZQorICAgICAg
ICBlbmQKKyAgICB9CisgICAgbmV3TGlzdAorZW5kCisKKworIworIyBMb3dlcmluZyBvZiBkb3Vi
bGUgc3BlY2lhbHMgZm9yIFNINC4KKyMKKworZGVmIHNoNExvd2VyRG91YmxlU3BlY2lhbHMobGlz
dCkKKyAgICBuZXdMaXN0ID0gW10KKyAgICBsaXN0LmVhY2ggeworICAgICAgICB8IG5vZGUgfAor
ICAgICAgICBpZiBub2RlLmlzX2E/IEluc3RydWN0aW9uCisgICAgICAgICAgICBjYXNlIG5vZGUu
b3Bjb2RlCisgICAgICAgICAgICB3aGVuICJiZG5lcXVuIiwgImJkZ3RlcXVuIiwgImJkbHR1biIs
ICJiZGx0ZXF1biIsICJiZGd0dW4iCisgICAgICAgICAgICAgICAgIyBIYW5kbGUgZmxvYXRpbmcg
cG9pbnQgdW5vcmRlcmVkIG9wY29kZXMuCisgICAgICAgICAgICAgICAgdG1wMSA9IFRtcC5uZXco
Y29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAgICAgICB0bXAyID0gVG1wLm5ldyhjb2RlT3Jp
Z2luLCA6Z3ByKQorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KGNv
ZGVPcmlnaW4sICJiZG5hbiIsIFtub2RlLm9wZXJhbmRzWzBdLCBub2RlLm9wZXJhbmRzWzJdLCB0
bXAxLCB0bXAyXSkKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhj
b2RlT3JpZ2luLCAiYmRuYW4iLCBbbm9kZS5vcGVyYW5kc1sxXSwgbm9kZS5vcGVyYW5kc1syXSwg
dG1wMSwgdG1wMl0pCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXco
Y29kZU9yaWdpbiwgbm9kZS5vcGNvZGVbMC4uLTNdLCBub2RlLm9wZXJhbmRzKQorICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgbm9kZQorICAgICAgICAgICAgZW5k
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG5ld0xpc3QgPDwgbm9kZQorICAgICAgICBlbmQK
KyAgICB9CisgICAgbmV3TGlzdAorZW5kCisKKworIworIyBMb3dlcmluZyBvZiBtaXNwbGFjZWQg
aW1tZWRpYXRlcyBmb3IgU0g0LiBGb3IgZXhhbXBsZToKKyMKKyMgbXVsaSA0LCBmb28KKyMKKyMg
d2lsbCBiZWNvbWU6CisjCisjIG1vdmUgNCwgdG1wCisjIG11bGkgdG1wLCBmb28KKyMKKworZGVm
IHNoNExvd2VyTWlzcGxhY2VkSW1tZWRpYXRlcyhsaXN0KQorICAgIG5ld0xpc3QgPSBbXQorICAg
IGxpc3QuZWFjaCB7CisgICAgICAgIHwgbm9kZSB8CisgICAgICAgIGlmIG5vZGUuaXNfYT8gSW5z
dHJ1Y3Rpb24KKyAgICAgICAgICAgIGNhc2Ugbm9kZS5vcGNvZGUKKyAgICAgICAgICAgIHdoZW4g
Im11bGkiLCAibXVscCIsICJhbmRpIiwgIm9yaSIsICJ4b3JpIiwKKyAgICAgICAgICAgICAgICAg
ImNiZXEiLCAiY2llcSIsICJjcGVxIiwgImNpbmVxIiwgImNwbmVxIiwgImNpYiIsCisgICAgICAg
ICAgICAgICAgICJiYmVxIiwgImJibmVxIiwgImJiYiIsICJiaWVxIiwgImJwZXEiLCAiYmluZXEi
LCAiYnBuZXEiLCAiYmlhIiwgImJwYSIsICJiaWFlcSIsICJicGFlcSIsICJiaWIiLCAiYnBiIiwK
KyAgICAgICAgICAgICAgICAgImJpZ3RlcSIsICJicGd0ZXEiLCAiYmlsdCIsICJicGx0IiwgImJp
Z3QiLCAiYnBndCIsICJiaWx0ZXEiLCAiYnBsdGVxIiwgImJ0aXoiLCAiYnRweiIsICJidGlueiIs
ICJidHBueiIsICJidGJ6IiwgImJ0Ym56IiwKKyAgICAgICAgICAgICAgICAgImJhZGRpbyIsICJi
c3ViaW8iLCAiYm11bGlvIiwgImJhZGRpcyIKKyAgICAgICAgICAgICAgICBvcGVyYW5kcyA9IG5v
ZGUub3BlcmFuZHMKKyAgICAgICAgICAgICAgICBuZXdPcGVyYW5kcyA9IFtdCisgICAgICAgICAg
ICAgICAgb3BlcmFuZHMuZWFjaCB7CisgICAgICAgICAgICAgICAgICAgIHwgb3BlcmFuZCB8Cisg
ICAgICAgICAgICAgICAgICAgIGlmIG9wZXJhbmQuaXNfYT8gSW1tZWRpYXRlCisgICAgICAgICAg
ICAgICAgICAgICAgICB0bXAgPSBUbXAubmV3KG9wZXJhbmQuY29kZU9yaWdpbiwgOmdwcikKKyAg
ICAgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG9wZXJhbmQu
Y29kZU9yaWdpbiwgIm1vdmUiLCBbb3BlcmFuZCwgdG1wXSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgIG5ld09wZXJhbmRzIDw8IHRtcAorICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAgICAgICAgICAgICBuZXdPcGVyYW5kcyA8PCBvcGVyYW5kCisgICAgICAgICAgICAgICAg
ICAgIGVuZAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IElu
c3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sIG5vZGUub3Bjb2RlLCBuZXdPcGVyYW5kcywg
bm9kZS5hbm5vdGF0aW9uKQorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIG5ld0xp
c3QgPDwgbm9kZQorICAgICAgICAgICAgZW5kCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG5l
d0xpc3QgPDwgbm9kZQorICAgICAgICBlbmQKKyAgICB9CisgICAgbmV3TGlzdAorZW5kCisKKwor
IworIyBMb3dlcmluZyBvZiBtaXNwbGFjZWQgbGFiZWxzIGZvciBTSDQuCisjCisKK2RlZiBzaDRM
b3dlck1pc3BsYWNlZExhYmVscyhsaXN0KQorICAgIG5ld0xpc3QgPSBbXQorICAgIGxpc3QuZWFj
aCB7CisgICAgICAgIHwgbm9kZSB8CisgICAgICAgIGlmIG5vZGUuaXNfYT8gSW5zdHJ1Y3Rpb24K
KyAgICAgICAgICAgIGNhc2Ugbm9kZS5vcGNvZGUKKyAgICAgICAgICAgIHdoZW4gImptcCIKKyAg
ICAgICAgICAgICAgICBpZiBub2RlLm9wZXJhbmRzWzBdLmlzX2E/IExhYmVsUmVmZXJlbmNlCisg
ICAgICAgICAgICAgICAgICAgIHRtcCA9IFRtcC5uZXcoY29kZU9yaWdpbiwgOmdwcikKKyAgICAg
ICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcoY29kZU9yaWdpbiwgImpt
cGYiLCBbdG1wLCBub2RlLm9wZXJhbmRzWzBdXSkKKyAgICAgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgbm9kZQorICAgICAgICAgICAgICAgIGVuZAorICAg
ICAgICAgICAgd2hlbiAiY2FsbCIKKyAgICAgICAgICAgICAgICBpZiBub2RlLm9wZXJhbmRzWzBd
LmlzX2E/IExhYmVsUmVmZXJlbmNlCisgICAgICAgICAgICAgICAgICAgIHRtcCA9IFRtcC5uZXco
Y29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVj
dGlvbi5uZXcoY29kZU9yaWdpbiwgIm1vdmUiLCBbbm9kZS5vcGVyYW5kc1swXSwgdG1wXSkKKyAg
ICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcoY29kZU9yaWdpbiwg
ImNhbGwiLCBbdG1wXSkKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAg
IG5ld0xpc3QgPDwgbm9kZQorICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgbm9kZQorICAgICAgICAgICAgZW5kCisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIG5ld0xpc3QgPDwgbm9kZQorICAgICAgICBlbmQKKyAgICB9Cisg
ICAgbmV3TGlzdAorZW5kCisKKworY2xhc3MgU2VxdWVuY2UKKyAgICBkZWYgZ2V0TW9kaWZpZWRM
aXN0U0g0CisgICAgICAgIHJlc3VsdCA9IEBsaXN0CisKKyAgICAgICAgIyBWZXJpZnkgdGhhdCB3
ZSB3aWxsIG9ubHkgc2VlIGluc3RydWN0aW9ucyBhbmQgbGFiZWxzLgorICAgICAgICByZXN1bHQu
ZWFjaCB7CisgICAgICAgICAgICB8IG5vZGUgfAorICAgICAgICAgICAgdW5sZXNzIG5vZGUuaXNf
YT8gSW5zdHJ1Y3Rpb24gb3IKKyAgICAgICAgICAgICAgICAgICAgbm9kZS5pc19hPyBMYWJlbCBv
cgorICAgICAgICAgICAgICAgICAgICBub2RlLmlzX2E/IExvY2FsTGFiZWwgb3IKKyAgICAgICAg
ICAgICAgICAgICAgbm9kZS5pc19hPyBTa2lwCisgICAgICAgICAgICAgICAgcmFpc2UgIlVuZXhw
ZWN0ZWQgI3tub2RlLmluc3BlY3R9IGF0ICN7bm9kZS5jb2RlT3JpZ2lufSIKKyAgICAgICAgICAg
IGVuZAorICAgICAgICB9CisKKyAgICAgICAgcmVzdWx0ID0gc2g0TG93ZXJCcmVha09wcyhyZXN1
bHQpCisgICAgICAgIHJlc3VsdCA9IHNoNExvd2VyU2hpZnRPcHMocmVzdWx0KQorICAgICAgICBy
ZXN1bHQgPSBzaDRMb3dlclNpbXBsZUJyYW5jaE9wcyhyZXN1bHQpCisgICAgICAgIHJlc3VsdCA9
IHJpc2NMb3dlck1hbGZvcm1lZEFkZHJlc3NlcyhyZXN1bHQpIHsKKyAgICAgICAgICAgIHwgbm9k
ZSwgYWRkcmVzcyB8CisgICAgICAgICAgICBpZiBhZGRyZXNzLmlzX2E/IEFkZHJlc3MKKyAgICAg
ICAgICAgICAgICBjYXNlIG5vZGUub3Bjb2RlCisgICAgICAgICAgICAgICAgd2hlbiAiYnRieiIs
ICJidGJueiIsICJjYmVxIiwgImJiZXEiLCAiYmJuZXEiLCAiYmJiIiwgImxvYWRiIgorICAgICAg
ICAgICAgICAgICAgICAoMC4uMTUpLmluY2x1ZGU/IGFkZHJlc3Mub2Zmc2V0LnZhbHVlIGFuZAor
ICAgICAgICAgICAgICAgICAgICAgICAgKChub2RlLm9wZXJhbmRzWzBdLmlzX2E/IFJlZ2lzdGVy
SUQgYW5kIG5vZGUub3BlcmFuZHNbMF0uc2g0T3BlcmFuZCA9PSAicjAiKSBvcgorICAgICAgICAg
ICAgICAgICAgICAgICAgIChub2RlLm9wZXJhbmRzWzFdLmlzX2E/IFJlZ2lzdGVySUQgYW5kIG5v
ZGUub3BlcmFuZHNbMV0uc2g0T3BlcmFuZCA9PSAicjAiKSkKKyAgICAgICAgICAgICAgICB3aGVu
ICJsb2FkaCIKKyAgICAgICAgICAgICAgICAgICAgKDAuLjMwKS5pbmNsdWRlPyBhZGRyZXNzLm9m
ZnNldC52YWx1ZSBhbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICgobm9kZS5vcGVyYW5kc1sw
XS5pc19hPyBSZWdpc3RlcklEIGFuZCBub2RlLm9wZXJhbmRzWzBdLnNoNE9wZXJhbmQgPT0gInIw
Iikgb3IKKyAgICAgICAgICAgICAgICAgICAgICAgICAobm9kZS5vcGVyYW5kc1sxXS5pc19hPyBS
ZWdpc3RlcklEIGFuZCBub2RlLm9wZXJhbmRzWzFdLnNoNE9wZXJhbmQgPT0gInIwIikpCisgICAg
ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAoMC4uNjApLmluY2x1ZGU/IGFk
ZHJlc3Mub2Zmc2V0LnZhbHVlCisgICAgICAgICAgICAgICAgZW5kCisgICAgICAgICAgICBlbHNl
CisgICAgICAgICAgICAgICAgZmFsc2UKKyAgICAgICAgICAgIGVuZAorICAgICAgICB9CisgICAg
ICAgIHJlc3VsdCA9IHNoNExvd2VyTWFsZm9ybWVkQWRkcmVzc2VzRG91YmxlKHJlc3VsdCkKKyAg
ICAgICAgcmVzdWx0ID0gc2g0TG93ZXJEb3VibGVTcGVjaWFscyhyZXN1bHQpCisgICAgICAgIHJl
c3VsdCA9IHNoNExvd2VyTWlzcGxhY2VkSW1tZWRpYXRlcyhyZXN1bHQpCisgICAgICAgIHJlc3Vs
dCA9IHJpc2NMb3dlck1pc3BsYWNlZEltbWVkaWF0ZXMocmVzdWx0KQorICAgICAgICByZXN1bHQg
PSByaXNjTG93ZXJNYWxmb3JtZWRJbW1lZGlhdGVzKHJlc3VsdCwgLTEyOC4uMTI3KQorICAgICAg
ICByZXN1bHQgPSBzaDRMb3dlck1pc3BsYWNlZExhYmVscyhyZXN1bHQpCisgICAgICAgIHJlc3Vs
dCA9IHJpc2NMb3dlck1pc3BsYWNlZEFkZHJlc3NlcyhyZXN1bHQpCisKKyAgICAgICAgcmVzdWx0
ID0gYXNzaWduUmVnaXN0ZXJzVG9UZW1wb3JhcmllcyhyZXN1bHQsIDpncHIsIFNINF9UTVBfR1BS
UykKKyAgICAgICAgcmVzdWx0ID0gYXNzaWduUmVnaXN0ZXJzVG9UZW1wb3JhcmllcyhyZXN1bHQs
IDpncHIsIFNINF9UTVBfRlBSUykKKworICAgICAgICByZXR1cm4gcmVzdWx0CisgICAgZW5kCitl
bmQKKworZGVmIHNoNE9wZXJhbmRzKG9wZXJhbmRzKQorICAgIG9wZXJhbmRzLm1hcHt8dnwgdi5z
aDRPcGVyYW5kfS5qb2luKCIsICIpCitlbmQKKworZGVmIGVtaXRTSDRMb2FkQ29uc3RhbnQoY29u
c3RhbnQsIG9wZXJhbmQpCisgICAgY29uc3RsYWJlbCA9IExvY2FsTGFiZWwudW5pcXVlKCJsb2Fk
Y29uc3RhbnQiKQorICAgICRhc20ucHV0cyAiLmJhbGlnbiA0IgorICAgICRhc20ucHV0cyAibW92
LmwgQCg4LCBQQyksICN7b3BlcmFuZC5zaDRPcGVyYW5kfSIKKyAgICAkYXNtLnB1dHMgImJyYSAj
e0xvY2FsTGFiZWxSZWZlcmVuY2UubmV3KGNvZGVPcmlnaW4sIGNvbnN0bGFiZWwpLmFzbUxhYmVs
fSIKKyAgICAkYXNtLnB1dHMgIm5vcCIKKyAgICAkYXNtLnB1dHMgIm5vcCIKKyAgICAkYXNtLnB1
dHMgIi5sb25nICN7Y29uc3RhbnR9IgorICAgIGNvbnN0bGFiZWwubG93ZXIoIlNINCIpCitlbmQK
KworZGVmIGVtaXRTSDRCcmFuY2goc2g0b3Bjb2RlLCBvcGVyYW5kKQorICAgICRhc20ucHV0cyAi
I3tzaDRvcGNvZGV9IEAje29wZXJhbmQuc2g0T3BlcmFuZH0iCisgICAgJGFzbS5wdXRzICJub3Ai
CitlbmQKKworZGVmIGVtaXRTSDRTaGlmdEltbSh2YWwsIG9wZXJhbmQsIGRpcmVjdGlvbikKKyAg
ICB0bXAgPSB2YWwKKyAgICB3aGlsZSB0bXAgPiAwCisgICAgICAgIGlmIHRtcCA+PSAxNgorICAg
ICAgICAgICAgJGFzbS5wdXRzICJzaGwje2RpcmVjdGlvbn0xNiAje29wZXJhbmQuc2g0T3BlcmFu
ZH0iCisgICAgICAgICAgICB0bXAgLT0gMTYKKyAgICAgICAgZWxzaWYgdG1wID49IDgKKyAgICAg
ICAgICAgICRhc20ucHV0cyAic2hsI3tkaXJlY3Rpb259OCAje29wZXJhbmQuc2g0T3BlcmFuZH0i
CisgICAgICAgICAgICB0bXAgLT0gOAorICAgICAgICBlbHNpZiB0bXAgPj0gMgorICAgICAgICAg
ICAgJGFzbS5wdXRzICJzaGwje2RpcmVjdGlvbn0yICN7b3BlcmFuZC5zaDRPcGVyYW5kfSIKKyAg
ICAgICAgICAgIHRtcCAtPSAyCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgICRhc20ucHV0cyAi
c2hsI3tkaXJlY3Rpb259ICN7b3BlcmFuZC5zaDRPcGVyYW5kfSIKKyAgICAgICAgICAgIHRtcCAt
PSAxCisgICAgICAgIGVuZAorICAgIGVuZAorZW5kCisKK2RlZiBlbWl0U0g0SW50Q29tcGFyZShj
bXBPcGNvZGUsIG9wZXJhbmRzKQorICAgICRhc20ucHV0cyAiY21wLyN7Y21wT3Bjb2RlfSAje3No
NE9wZXJhbmRzKFtvcGVyYW5kc1sxXSwgb3BlcmFuZHNbMF1dKX0iCitlbmQKKworZGVmIGVtaXRT
SDRDb25kQnJhbmNoKGNtcE9wY29kZSwgbmVnLCBvcGVyYW5kcykKKyAgICBlbWl0U0g0SW50Q29t
cGFyZShjbXBPcGNvZGUsIG9wZXJhbmRzKQorICAgIGlmICghbmVnKQorICAgICAgICAkYXNtLnB1
dHMgImJ0ICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9IgorICAgIGVsc2UKKyAgICAgICAgJGFzbS5w
dXRzICJiZiAje29wZXJhbmRzWzJdLmFzbUxhYmVsfSIKKyAgICBlbmQKK2VuZAorCitkZWYgZW1p
dFNINENvbXBhcmVTZXQoY21wT3Bjb2RlLCBuZWcsIG9wZXJhbmRzKQorICAgIGVtaXRTSDRJbnRD
b21wYXJlKGNtcE9wY29kZSwgb3BlcmFuZHMpCisgICAgJGFzbS5wdXRzICJtb3Z0ICN7b3BlcmFu
ZHNbMl0uc2g0T3BlcmFuZH0iCisgICAgaWYgKG5lZykKKyAgICAgICAgJGFzbS5wdXRzICJ0c3Qg
I3tzaDRPcGVyYW5kcyhbb3BlcmFuZHNbMl0sIG9wZXJhbmRzWzJdXSl9IgorICAgICAgICAkYXNt
LnB1dHMgIm1vdnQgI3tvcGVyYW5kc1syXS5zaDRPcGVyYW5kfSIKKyAgICBlbmQKK2VuZAorCitk
ZWYgZW1pdFNINEJyYW5jaElmTmFOKG9wZXJhbmRzKQorICAgIHJhaXNlICJJbnZhbGlkIG9wZXJh
bmRzIG51bWJlciAoI3tvcGVyYW5kcy5zaXplfSkiIHVubGVzcyBvcGVyYW5kcy5zaXplID09IDQK
KyAgICBkYmxvcCA9IG9wZXJhbmRzWzBdCisgICAgbGFiZWxvcCA9IG9wZXJhbmRzWzFdCisgICAg
c2NybWFzayA9IG9wZXJhbmRzWzJdCisgICAgc2NyaW50ID0gb3BlcmFuZHNbM10KKworICAgICMg
SWYgd2UgZG9uJ3QgaGF2ZSAiRSA9IEVtYXggKyAxIiwgaXQncyBub3QgYSBOYU4uCisgICAgbm90
TmFObGFiZWwgPSBMb2NhbExhYmVsLnVuaXF1ZSgibm90bmFuIikKKyAgICAkYXNtLnB1dHMgImZj
bnZkcyAje2RibG9wLnNoNE9wZXJhbmR9LCBmcHVsIgorICAgICRhc20ucHV0cyAic3RzIGZwdWws
ICN7c2NyaW50LnNoNE9wZXJhbmR9IgorICAgIGVtaXRTSDRMb2FkQ29uc3RhbnQoMHg3ZjgwMDAw
MCwgc2NybWFzaykKKyAgICAkYXNtLnB1dHMgImFuZCAje3NoNE9wZXJhbmRzKFtzY3JtYXNrLCBz
Y3JpbnRdKX0iCisgICAgJGFzbS5wdXRzICJjbXAvZXEgI3tzaDRPcGVyYW5kcyhbc2NybWFzaywg
c2NyaW50XSl9IgorICAgICRhc20ucHV0cyAiYmYgI3tMb2NhbExhYmVsUmVmZXJlbmNlLm5ldyhj
b2RlT3JpZ2luLCBub3ROYU5sYWJlbCkuYXNtTGFiZWx9IgorCisgICAgIyBJZiB3ZSBoYXZlICJF
ID0gRW1heCArIDEiIGFuZCAiZiAhPSAwIiwgdGhlbiBpdCdzIGEgTmFOLgorICAgICRhc20ucHV0
cyAic3RzIGZwdWwsICN7c2NyaW50LnNoNE9wZXJhbmR9IgorICAgIGVtaXRTSDRMb2FkQ29uc3Rh
bnQoMHgwMDNmZmZmZiwgc2NybWFzaykKKyAgICAkYXNtLnB1dHMgInRzdCAje3NoNE9wZXJhbmRz
KFtzY3JtYXNrLCBzY3JpbnRdKX0iCisgICAgJGFzbS5wdXRzICJiZiAje2xhYmVsb3AuYXNtTGFi
ZWx9IgorCisgICAgbm90TmFObGFiZWwubG93ZXIoIlNINCIpCitlbmQKKworZGVmIGVtaXRTSDRE
b3VibGVDb25kQnJhbmNoKGNtcE9wY29kZSwgbmVnLCBvcGVyYW5kcykKKyAgICBpZiBjbXBPcGNv
ZGUgPT0gImx0IgorICAgICAgICBpZiAoIW5lZykKKyAgICAgICAgICAgIG91dGxhYmVsID0gTG9j
YWxMYWJlbC51bmlxdWUoImRjYm91dCIpCisgICAgICAgICAgICAkYXNtLnB1dHMgImZjbXAvZ3Qg
I3tzaDRPcGVyYW5kcyhbb3BlcmFuZHNbMV0sIG9wZXJhbmRzWzBdXSl9IgorICAgICAgICAgICAg
JGFzbS5wdXRzICJidCAje0xvY2FsTGFiZWxSZWZlcmVuY2UubmV3KGNvZGVPcmlnaW4sIG91dGxh
YmVsKS5hc21MYWJlbH0iCisgICAgICAgICAgICAkYXNtLnB1dHMgImZjbXAvZXEgI3tzaDRPcGVy
YW5kcyhbb3BlcmFuZHNbMV0sIG9wZXJhbmRzWzBdXSl9IgorICAgICAgICAgICAgJGFzbS5wdXRz
ICJiZiAje29wZXJhbmRzWzJdLmFzbUxhYmVsfSIKKyAgICAgICAgICAgIG91dGxhYmVsLmxvd2Vy
KCJTSDQiKQorICAgICAgICBlbHNlCisgICAgICAgICAgICAkYXNtLnB1dHMgImZjbXAvZ3QgI3tz
aDRPcGVyYW5kcyhbb3BlcmFuZHNbMV0sIG9wZXJhbmRzWzBdXSl9IgorICAgICAgICAgICAgJGFz
bS5wdXRzICJidCAje29wZXJhbmRzWzJdLmFzbUxhYmVsfSIKKyAgICAgICAgICAgICRhc20ucHV0
cyAiZmNtcC9lcSAje3NoNE9wZXJhbmRzKFtvcGVyYW5kc1sxXSwgb3BlcmFuZHNbMF1dKX0iCisg
ICAgICAgICAgICAkYXNtLnB1dHMgImJ0ICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9IgorICAgICAg
ICBlbmQKKyAgICBlbHNlCisgICAgICAgICRhc20ucHV0cyAiZmNtcC8je2NtcE9wY29kZX0gI3tz
aDRPcGVyYW5kcyhbb3BlcmFuZHNbMV0sIG9wZXJhbmRzWzBdXSl9IgorICAgICAgICBpZiAoIW5l
ZykKKyAgICAgICAgICAgICRhc20ucHV0cyAiYnQgI3tvcGVyYW5kc1syXS5hc21MYWJlbH0iCisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICRhc20ucHV0cyAiYmYgI3tvcGVyYW5kc1syXS5hc21M
YWJlbH0iCisgICAgICAgIGVuZAorICAgIGVuZAorZW5kCisKK2NsYXNzIEluc3RydWN0aW9uCisg
ICAgZGVmIGxvd2VyU0g0CisgICAgICAgICRhc20uY29tbWVudCBjb2RlT3JpZ2luU3RyaW5nCisg
ICAgICAgIGNhc2Ugb3Bjb2RlCisgICAgICAgIHdoZW4gImFkZGkiLCAiYWRkcCIKKyAgICAgICAg
ICAgIGlmIG9wZXJhbmRzLnNpemUgPT0gMworICAgICAgICAgICAgICAgIGlmIG9wZXJhbmRzWzBd
LnNoNE9wZXJhbmQgPT0gb3BlcmFuZHNbMl0uc2g0T3BlcmFuZAorICAgICAgICAgICAgICAgICAg
ICAkYXNtLnB1dHMgImFkZCAje3NoNE9wZXJhbmRzKFtvcGVyYW5kc1sxXSwgb3BlcmFuZHNbMl1d
KX0iCisgICAgICAgICAgICAgICAgZWxzaWYgb3BlcmFuZHNbMV0uc2g0T3BlcmFuZCA9PSBvcGVy
YW5kc1syXS5zaDRPcGVyYW5kCisgICAgICAgICAgICAgICAgICAgICRhc20ucHV0cyAiYWRkICN7
c2g0T3BlcmFuZHMoW29wZXJhbmRzWzBdLCBvcGVyYW5kc1syXV0pfSIKKyAgICAgICAgICAgICAg
ICBlbHNlCisgICAgICAgICAgICAgICAgICAgICRhc20ucHV0cyAibW92ICN7c2g0T3BlcmFuZHMo
W29wZXJhbmRzWzBdLCBvcGVyYW5kc1syXV0pfSIKKyAgICAgICAgICAgICAgICAgICAgJGFzbS5w
dXRzICJhZGQgI3tzaDRPcGVyYW5kcyhbb3BlcmFuZHNbMV0sIG9wZXJhbmRzWzJdXSl9IgorICAg
ICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICRhc20u
cHV0cyAiYWRkICN7c2g0T3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgICAgIGVuZAorICAg
ICAgICB3aGVuICJzdWJpIgorICAgICAgICAgICAgcmFpc2UgIiN7b3Bjb2RlfSB3aXRoICN7b3Bl
cmFuZHMuc2l6ZX0gb3BlcmFuZHMgaXMgbm90IGhhbmRsZWQgeWV0IiB1bmxlc3Mgb3BlcmFuZHMu
c2l6ZSA9PSAyCisgICAgICAgICAgICBpZiBvcGVyYW5kc1swXS5pc19hPyBJbW1lZGlhdGUKKyAg
ICAgICAgICAgICAgICAkYXNtLnB1dHMgImFkZCAje3NoNE9wZXJhbmRzKFtJbW1lZGlhdGUubmV3
KGNvZGVPcmlnaW4sIC0xICogb3BlcmFuZHNbMF0udmFsdWUpLCBvcGVyYW5kc1sxXV0pfSIKKyAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAkYXNtLnB1dHMgInN1YiAje3NoNE9wZXJh
bmRzKG9wZXJhbmRzKX0iCisgICAgICAgICAgICBlbmQKKyAgICAgICAgd2hlbiAibXVsaSIsICJt
dWxwIgorICAgICAgICAgICAgJGFzbS5wdXRzICJtdWwubCAje3NoNE9wZXJhbmRzKG9wZXJhbmRz
WzAuLjFdKX0iCisgICAgICAgICAgICAkYXNtLnB1dHMgInN0cyBtYWNsLCAje29wZXJhbmRzWy0x
XS5zaDRPcGVyYW5kfSIKKyAgICAgICAgd2hlbiAibmVnaSIKKyAgICAgICAgICAgIGlmIG9wZXJh
bmRzLnNpemUgPT0gMgorICAgICAgICAgICAgICAgICRhc20ucHV0cyAibmVnICN7c2g0T3BlcmFu
ZHMob3BlcmFuZHMpfSIKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAkYXNtLnB1
dHMgIm5lZyAje3NoNE9wZXJhbmRzKFtvcGVyYW5kc1swXSwgb3BlcmFuZHNbMF1dKX0iCisgICAg
ICAgICAgICBlbmQKKyAgICAgICAgd2hlbiAiYW5kaSIsICJvcmkiLCAieG9yaSIKKyAgICAgICAg
ICAgIHJhaXNlICIje29wY29kZX0gd2l0aCAje29wZXJhbmRzLnNpemV9IG9wZXJhbmRzIGlzIG5v
dCBoYW5kbGVkIHlldCIgdW5sZXNzIG9wZXJhbmRzLnNpemUgPT0gMgorICAgICAgICAgICAgc2g0
b3Bjb2RlID0gb3Bjb2RlWzAuLi0yXQorICAgICAgICAgICAgJGFzbS5wdXRzICIje3NoNG9wY29k
ZX0gI3tzaDRPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJzaGxseCIsICJzaGxy
eCIKKyAgICAgICAgICAgIHJhaXNlICJVbmhhbmRsZWQgcGFyYW1ldGVycyBmb3Igb3Bjb2RlICN7
b3Bjb2RlfSIgdW5sZXNzIG9wZXJhbmRzWzBdLmlzX2E/IEltbWVkaWF0ZQorICAgICAgICAgICAg
JGFzbS5wdXRzICJzaGwje29wY29kZVszLDFdfSN7b3BlcmFuZHNbMF0udmFsdWV9ICN7b3BlcmFu
ZHNbMV0uc2g0T3BlcmFuZH0iCisgICAgICAgIHdoZW4gInNobGQiLCAic2hhZCIKKyAgICAgICAg
ICAgICRhc20ucHV0cyAiI3tvcGNvZGV9ICN7c2g0T3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAg
ICAgd2hlbiAibG9hZGQrIgorICAgICAgICAgICAgIyBBcyB3ZSBhcmUgbGl0dGxlIGVuZGlhbiwg
d2UgZG9uJ3QgdXNlICJmbW92IEBSbSwgRFJuIiBoZXJlLgorICAgICAgICAgICAgJGFzbS5wdXRz
ICJmbW92LnMgI3tvcGVyYW5kc1swXS5zaDRPcGVyYW5kUG9zdEluY30sICN7b3BlcmFuZHNbMV0u
c2g0U2luZ2xlTG99IgorICAgICAgICAgICAgJGFzbS5wdXRzICJmbW92LnMgI3tvcGVyYW5kc1sw
XS5zaDRPcGVyYW5kUG9zdEluY30sICN7b3BlcmFuZHNbMV0uc2g0U2luZ2xlSGl9IgorICAgICAg
ICB3aGVuICJzdG9yZWQtIgorICAgICAgICAgICAgIyBBcyB3ZSBhcmUgbGl0dGxlIGVuZGlhbiwg
d2UgZG9uJ3QgdXNlICJmbW92IERSbSwgQFJuIiBoZXJlLgorICAgICAgICAgICAgJGFzbS5wdXRz
ICJmbW92LnMgI3tvcGVyYW5kc1swXS5zaDRTaW5nbGVIaX0sICN7b3BlcmFuZHNbMV0uc2g0T3Bl
cmFuZFByZURlY30iCisgICAgICAgICAgICAkYXNtLnB1dHMgImZtb3YucyAje29wZXJhbmRzWzBd
LnNoNFNpbmdsZUxvfSwgI3tvcGVyYW5kc1sxXS5zaDRPcGVyYW5kUHJlRGVjfSIKKyAgICAgICAg
d2hlbiAiY2kyZCIKKyAgICAgICAgICAgICRhc20ucHV0cyAibGRzICN7b3BlcmFuZHNbMF0uc2g0
T3BlcmFuZH0sIGZwdWwiCisgICAgICAgICAgICAkYXNtLnB1dHMgImZsb2F0IGZwdWwsICN7b3Bl
cmFuZHNbMV0uc2g0T3BlcmFuZH0iCisgICAgICAgIHdoZW4gImZpaTJkIgorICAgICAgICAgICAg
JGFzbS5wdXRzICJsZHMgI3tvcGVyYW5kc1swXS5zaDRPcGVyYW5kfSwgZnB1bCIKKyAgICAgICAg
ICAgICRhc20ucHV0cyAiZnN0cyBmcHVsLCAje29wZXJhbmRzWzJdLnNoNFNpbmdsZUxvfSIKKyAg
ICAgICAgICAgICRhc20ucHV0cyAibGRzICN7b3BlcmFuZHNbMV0uc2g0T3BlcmFuZH0sIGZwdWwi
CisgICAgICAgICAgICAkYXNtLnB1dHMgImZzdHMgZnB1bCwgI3tvcGVyYW5kc1syXS5zaDRTaW5n
bGVIaX0iCisgICAgICAgIHdoZW4gImZkMmlpIgorICAgICAgICAgICAgJGFzbS5wdXRzICJmbGRz
ICN7b3BlcmFuZHNbMF0uc2g0U2luZ2xlTG99LCBmcHVsIgorICAgICAgICAgICAgJGFzbS5wdXRz
ICJzdHMgZnB1bCwgI3tvcGVyYW5kc1sxXS5zaDRPcGVyYW5kfSIKKyAgICAgICAgICAgICRhc20u
cHV0cyAiZmxkcyAje29wZXJhbmRzWzBdLnNoNFNpbmdsZUhpfSwgZnB1bCIKKyAgICAgICAgICAg
ICRhc20ucHV0cyAic3RzIGZwdWwsICN7b3BlcmFuZHNbMl0uc2g0T3BlcmFuZH0iCisgICAgICAg
IHdoZW4gImFkZGQiLCAic3ViZCIsICJtdWxkIiwgImRpdmQiCisgICAgICAgICAgICBzaDRvcGNv
ZGUgPSBvcGNvZGVbMC4uLTJdCisgICAgICAgICAgICAkYXNtLnB1dHMgImYje3NoNG9wY29kZX0g
I3tzaDRPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJiY2QyaSIKKyAgICAgICAg
ICAgICRhc20ucHV0cyAiZnRyYyAje29wZXJhbmRzWzBdLnNoNE9wZXJhbmR9LCBmcHVsIgorICAg
ICAgICAgICAgJGFzbS5wdXRzICJzdHMgZnB1bCwgI3tvcGVyYW5kc1sxXS5zaDRPcGVyYW5kfSIK
KyAgICAgICAgICAgICRhc20ucHV0cyAiZmxvYXQgZnB1bCwgI3tTSDRfVE1QX0ZQUlNbMF0uc2g0
T3BlcmFuZH0iCisgICAgICAgICAgICAkYXNtLnB1dHMgImZjbXAvZXEgI3tzaDRPcGVyYW5kcyhb
b3BlcmFuZHNbMF0sIFNINF9UTVBfRlBSU1swXV0pfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAi
YmYgI3tvcGVyYW5kc1syXS5hc21MYWJlbH0iCisgICAgICAgIHdoZW4gImJkbmFuIgorICAgICAg
ICAgICAgZW1pdFNINEJyYW5jaElmTmFOKG9wZXJhbmRzKQorICAgICAgICB3aGVuICJiZG5lcSIK
KyAgICAgICAgICAgIGVtaXRTSDREb3VibGVDb25kQnJhbmNoKCJlcSIsIHRydWUsIG9wZXJhbmRz
KQorICAgICAgICB3aGVuICJiZGd0ZXEiCisgICAgICAgICAgICBlbWl0U0g0RG91YmxlQ29uZEJy
YW5jaCgibHQiLCB0cnVlLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmRsdCIKKyAgICAgICAg
ICAgIGVtaXRTSDREb3VibGVDb25kQnJhbmNoKCJsdCIsIGZhbHNlLCBvcGVyYW5kcykKKyAgICAg
ICAgd2hlbiAiYmRsdGVxIgorICAgICAgICAgICAgZW1pdFNINERvdWJsZUNvbmRCcmFuY2goImd0
IiwgdHJ1ZSwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImJkZ3QiCisgICAgICAgICAgICBlbWl0
U0g0RG91YmxlQ29uZEJyYW5jaCgiZ3QiLCBmYWxzZSwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4g
ImJhZGRpbyIsICJic3ViaW8iCisgICAgICAgICAgICByYWlzZSAiI3tvcGNvZGV9IHdpdGggI3tv
cGVyYW5kcy5zaXplfSBvcGVyYW5kcyBpcyBub3QgaGFuZGxlZCB5ZXQiIHVubGVzcyBvcGVyYW5k
cy5zaXplID09IDMKKyAgICAgICAgICAgICRhc20ucHV0cyAiI3tvcGNvZGVbMSwzXX12ICN7c2g0
T3BlcmFuZHMoW29wZXJhbmRzWzBdLCBvcGVyYW5kc1sxXV0pfSIKKyAgICAgICAgICAgICRhc20u
cHV0cyAiYnQgI3tvcGVyYW5kc1syXS5hc21MYWJlbH0iCisgICAgICAgIHdoZW4gImJtdWxpbyIK
KyAgICAgICAgICAgICRhc20ucHV0cyAiZG11bHMubCAje3NoNE9wZXJhbmRzKFtvcGVyYW5kc1sw
XSwgb3BlcmFuZHNbMV1dKX0iCisgICAgICAgICAgICAkYXNtLnB1dHMgInN0cyBtYWNoLCAje29w
ZXJhbmRzWy0yXS5zaDRPcGVyYW5kfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAidHN0ICN7c2g0
T3BlcmFuZHMoW29wZXJhbmRzWy0yXSwgb3BlcmFuZHNbLTJdXSl9IgorICAgICAgICAgICAgJGFz
bS5wdXRzICJzdHMgbWFjbCwgI3tvcGVyYW5kc1stMl0uc2g0T3BlcmFuZH0iCisgICAgICAgICAg
ICAkYXNtLnB1dHMgImJmICN7b3BlcmFuZHNbLTFdLmFzbUxhYmVsfSIKKyAgICAgICAgd2hlbiAi
YnRpeiIsICJidHB6IiwgImJ0aW56IiwgImJ0cG56IiwgImJ0YnoiLCAiYnRibnoiCisgICAgICAg
ICAgICBpZiBvcGVyYW5kcy5zaXplID09IDMKKyAgICAgICAgICAgICAgICAkYXNtLnB1dHMgInRz
dCAje3NoNE9wZXJhbmRzKFtvcGVyYW5kc1swXSwgb3BlcmFuZHNbMV1dKX0iCisgICAgICAgICAg
ICBlbHNlCisgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJ0c3QgI3tzaDRPcGVyYW5kcyhbb3Bl
cmFuZHNbMF0sIG9wZXJhbmRzWzBdXSl9IgorICAgICAgICAgICAgZW5kCisgICAgICAgICAgICBp
ZiBvcGNvZGVbLTIsMl0gPT0gIm56IgorICAgICAgICAgICAgICAgICRhc20ucHV0cyAiYmYgI3tv
cGVyYW5kcy5sYXN0LmFzbUxhYmVsfSIKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAg
ICAkYXNtLnB1dHMgImJ0ICN7b3BlcmFuZHMubGFzdC5hc21MYWJlbH0iCisgICAgICAgICAgICBl
bmQKKyAgICAgICAgd2hlbiAiY2JlcSIKKyAgICAgICAgICAgIGVtaXRTSDRDb21wYXJlU2V0KCJl
cSIsIGZhbHNlLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiY2llcSIsICJjcGVxIgorICAgICAg
ICAgICAgZW1pdFNINENvbXBhcmVTZXQoImVxIiwgZmFsc2UsIG9wZXJhbmRzKQorICAgICAgICB3
aGVuICJjaW5lcSIsICJjcG5lcSIKKyAgICAgICAgICAgIGVtaXRTSDRDb21wYXJlU2V0KCJlcSIs
IHRydWUsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJjaWIiCisgICAgICAgICAgICBlbWl0U0g0
Q29tcGFyZVNldCgiaHMiLCB0cnVlLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmJlcSIKKyAg
ICAgICAgICAgIGVtaXRTSDRDb25kQnJhbmNoKCJlcSIsIGZhbHNlLCBvcGVyYW5kcykKKyAgICAg
ICAgd2hlbiAiYmJuZXEiCisgICAgICAgICAgICBlbWl0U0g0Q29uZEJyYW5jaCgiZXEiLCB0cnVl
LCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmJiIgorICAgICAgICAgICAgZW1pdFNINENvbmRC
cmFuY2goImhzIiwgdHJ1ZSwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImJpZXEiLCAiYnBlcSIK
KyAgICAgICAgICAgIGVtaXRTSDRDb25kQnJhbmNoKCJlcSIsIGZhbHNlLCBvcGVyYW5kcykKKyAg
ICAgICAgd2hlbiAiYmluZXEiLCAiYnBuZXEiCisgICAgICAgICAgICBlbWl0U0g0Q29uZEJyYW5j
aCgiZXEiLCB0cnVlLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmlhIiwgImJwYSIKKyAgICAg
ICAgICAgIGVtaXRTSDRDb25kQnJhbmNoKCJoaSIsIGZhbHNlLCBvcGVyYW5kcykKKyAgICAgICAg
d2hlbiAiYmlhZXEiLCAiYnBhZXEiCisgICAgICAgICAgICBlbWl0U0g0Q29uZEJyYW5jaCgiaHMi
LCBmYWxzZSwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImJpYiIsICJicGIiCisgICAgICAgICAg
ICBlbWl0U0g0Q29uZEJyYW5jaCgiaHMiLCB0cnVlLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAi
YmlndGVxIiwgImJwZ3RlcSIKKyAgICAgICAgICAgIGVtaXRTSDRDb25kQnJhbmNoKCJnZSIsIGZh
bHNlLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmlsdCIsICJicGx0IgorICAgICAgICAgICAg
ZW1pdFNINENvbmRCcmFuY2goImdlIiwgdHJ1ZSwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImJp
Z3QiLCAiYnBndCIKKyAgICAgICAgICAgIGVtaXRTSDRDb25kQnJhbmNoKCJndCIsIGZhbHNlLCBv
cGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmlsdGVxIiwgImJwbHRlcSIKKyAgICAgICAgICAgIGVt
aXRTSDRDb25kQnJhbmNoKCJndCIsIHRydWUsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJicyIK
KyAgICAgICAgICAgICRhc20ucHV0cyAiY21wL3B6ICN7b3BlcmFuZHNbMF0uc2g0T3BlcmFuZH0i
CisgICAgICAgICAgICAkYXNtLnB1dHMgImJmICN7b3BlcmFuZHNbMV0uYXNtTGFiZWx9IgorICAg
ICAgICB3aGVuICJjYWxsIgorICAgICAgICAgICAgaWYgb3BlcmFuZHNbMF0uaXNfYT8gTG9jYWxM
YWJlbFJlZmVyZW5jZQorICAgICAgICAgICAgICAgICRhc20ucHV0cyAiYnNyICN7b3BlcmFuZHNb
MF0uYXNtTGFiZWx9IgorICAgICAgICAgICAgICAgICRhc20ucHV0cyAibm9wIgorICAgICAgICAg
ICAgZWxzaWYgb3BlcmFuZHNbMF0uaXNfYT8gUmVnaXN0ZXJJRCBvciBvcGVyYW5kc1swXS5pc19h
PyBTcGVjaWFsUmVnaXN0ZXIKKyAgICAgICAgICAgICAgICBlbWl0U0g0QnJhbmNoKCJqc3IiLCBv
cGVyYW5kc1swXSkKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByYWlzZSAiVW5o
YW5kbGVkIHBhcmFtZXRlcnMgZm9yIG9wY29kZSAje29wY29kZX0gYXQgI3tjb2RlT3JpZ2luU3Ry
aW5nfSIKKyAgICAgICAgICAgIGVuZAorICAgICAgICB3aGVuICJqbXAiCisgICAgICAgICAgICBp
ZiBvcGVyYW5kc1swXS5pc19hPyBMb2NhbExhYmVsUmVmZXJlbmNlCisgICAgICAgICAgICAgICAg
JGFzbS5wdXRzICJicmEgI3tvcGVyYW5kc1swXS5hc21MYWJlbH0iCisgICAgICAgICAgICAgICAg
JGFzbS5wdXRzICJub3AiCisgICAgICAgICAgICBlbHNpZiBvcGVyYW5kc1swXS5pc19hPyBSZWdp
c3RlcklEIG9yIG9wZXJhbmRzWzBdLmlzX2E/IFNwZWNpYWxSZWdpc3RlcgorICAgICAgICAgICAg
ICAgIGVtaXRTSDRCcmFuY2goImptcCIsIG9wZXJhbmRzWzBdKQorICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgICAgIHJhaXNlICJVbmhhbmRsZWQgcGFyYW1ldGVycyBmb3Igb3Bjb2RlICN7
b3Bjb2RlfSBhdCAje2NvZGVPcmlnaW5TdHJpbmd9IgorICAgICAgICAgICAgZW5kCisgICAgICAg
IHdoZW4gImptcGYiCisgICAgICAgICAgICAkYXNtLnB1dHMgIi5iYWxpZ24gNCIKKyAgICAgICAg
ICAgICRhc20ucHV0cyAibW92LmwgQCg4LCBQQyksICN7b3BlcmFuZHNbMF0uc2g0T3BlcmFuZH0i
CisgICAgICAgICAgICAkYXNtLnB1dHMgImptcCBAI3tvcGVyYW5kc1swXS5zaDRPcGVyYW5kfSIK
KyAgICAgICAgICAgICRhc20ucHV0cyAibm9wIgorICAgICAgICAgICAgJGFzbS5wdXRzICJub3Ai
CisgICAgICAgICAgICAkYXNtLnB1dHMgIi5sb25nICN7b3BlcmFuZHNbMV0uYXNtTGFiZWx9Igor
ICAgICAgICB3aGVuICJyZXQiCisgICAgICAgICAgICAkYXNtLnB1dHMgInJ0cyIKKyAgICAgICAg
ICAgICRhc20ucHV0cyAibm9wIgorICAgICAgICB3aGVuICJsb2FkYiIKKyAgICAgICAgICAgICRh
c20ucHV0cyAibW92LmIgI3tzaDRPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICAgICAgJGFz
bS5wdXRzICJleHR1LmIgI3tzaDRPcGVyYW5kcyhbb3BlcmFuZHNbMV0sIG9wZXJhbmRzWzFdXSl9
IgorICAgICAgICB3aGVuICJsb2FkaCIKKyAgICAgICAgICAgICRhc20ucHV0cyAibW92LncgI3tz
aDRPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICAgICAgJGFzbS5wdXRzICJleHR1LncgI3tz
aDRPcGVyYW5kcyhbb3BlcmFuZHNbMV0sIG9wZXJhbmRzWzFdXSl9IgorICAgICAgICB3aGVuICJs
b2FkaSIsICJsb2FkaXMiLCAibG9hZHAiCisgICAgICAgICAgICAkYXNtLnB1dHMgIm1vdi5sICN7
c2g0T3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAic3RvcmVpIiwgInN0b3JlcCIK
KyAgICAgICAgICAgICRhc20ucHV0cyAibW92LmwgI3tzaDRPcGVyYW5kcyhvcGVyYW5kcyl9Igor
ICAgICAgICB3aGVuICJtb3ZlIgorICAgICAgICAgICAgaWYgb3BlcmFuZHNbMF0uaXNfYT8gSW1t
ZWRpYXRlIGFuZCAob3BlcmFuZHNbMF0udmFsdWUgPCAtMTI4IG9yIG9wZXJhbmRzWzBdLnZhbHVl
ID4gMTI3KQorICAgICAgICAgICAgICAgIGVtaXRTSDRMb2FkQ29uc3RhbnQob3BlcmFuZHNbMF0u
dmFsdWUsIG9wZXJhbmRzWzFdKQorICAgICAgICAgICAgZWxzaWYgb3BlcmFuZHNbMF0uaXNfYT8g
TGFiZWxSZWZlcmVuY2UKKyAgICAgICAgICAgICAgICBlbWl0U0g0TG9hZENvbnN0YW50KG9wZXJh
bmRzWzBdLmFzbUxhYmVsLCBvcGVyYW5kc1sxXSkKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgICAkYXNtLnB1dHMgIm1vdiAje3NoNE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAg
ICAgICBlbmQKKyAgICAgICAgd2hlbiAibGVhcCIKKyAgICAgICAgICAgIGlmIG9wZXJhbmRzWzBd
LmlzX2E/IEJhc2VJbmRleAorICAgICAgICAgICAgICAgIGJpb3AgPSBvcGVyYW5kc1swXQorICAg
ICAgICAgICAgICAgIGlmIGJpb3Auc2NhbGUgPiAwCisgICAgICAgICAgICAgICAgICAgICRhc20u
cHV0cyAibW92ICN7c2g0T3BlcmFuZHMoW2Jpb3AuaW5kZXgsIG9wZXJhbmRzWzFdXSl9IgorICAg
ICAgICAgICAgICAgICAgICBpZiBiaW9wLnNjYWxlU2hpZnQgPiAwCisgICAgICAgICAgICAgICAg
ICAgICAgICBlbWl0U0g0U2hpZnRJbW0oYmlvcC5zY2FsZVNoaWZ0LCBvcGVyYW5kc1sxXSwgImwi
KQorICAgICAgICAgICAgICAgICAgICBlbmQKKyAgICAgICAgICAgICAgICAgICAgJGFzbS5wdXRz
ICJhZGQgI3tzaDRPcGVyYW5kcyhbYmlvcC5iYXNlLCBvcGVyYW5kc1sxXV0pfSIKKyAgICAgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICRhc20ucHV0cyAibW92ICN7c2g0T3Bl
cmFuZHMoW2Jpb3AuYmFzZSwgb3BlcmFuZHNbMV1dKX0iCisgICAgICAgICAgICAgICAgZW5kCisg
ICAgICAgICAgICAgICAgaWYgYmlvcC5vZmZzZXQudmFsdWUgIT0gMAorICAgICAgICAgICAgICAg
ICAgICAkYXNtLnB1dHMgImFkZCAje3NoNE9wZXJhbmRzKFtiaW9wLm9mZnNldCwgb3BlcmFuZHNb
MV1dKX0iCisgICAgICAgICAgICAgICAgZW5kCisgICAgICAgICAgICBlbHNpZiBvcGVyYW5kc1sw
XS5pc19hPyBBZGRyZXNzCisgICAgICAgICAgICAgICAgaWYgb3BlcmFuZHNbMF0uYmFzZSAhPSBv
cGVyYW5kc1sxXQorICAgICAgICAgICAgICAgICAgICAkYXNtLnB1dHMgIm1vdiAje3NoNE9wZXJh
bmRzKFtvcGVyYW5kc1swXS5iYXNlLCBvcGVyYW5kc1sxXV0pfSIKKyAgICAgICAgICAgICAgICBl
bmQKKyAgICAgICAgICAgICAgICBpZiBvcGVyYW5kc1swXS5vZmZzZXQudmFsdWUgIT0gMAorICAg
ICAgICAgICAgICAgICAgICAkYXNtLnB1dHMgImFkZCAje3NoNE9wZXJhbmRzKFtvcGVyYW5kc1sw
XS5vZmZzZXQsIG9wZXJhbmRzWzFdXSl9IgorICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgIHJhaXNlICJVbmhhbmRsZWQgcGFyYW1ldGVycyBmb3Ig
b3Bjb2RlICN7b3Bjb2RlfSBhdCAje2NvZGVPcmlnaW5TdHJpbmd9IgorICAgICAgICAgICAgZW5k
CisgICAgICAgIHdoZW4gImxkc3ByIgorICAgICAgICAgICAgJGFzbS5wdXRzICJsZHMgI3tzaDRP
cGVyYW5kcyhvcGVyYW5kcyl9LCBwciIKKyAgICAgICAgd2hlbiAic3RzcHIiCisgICAgICAgICAg
ICAkYXNtLnB1dHMgInN0cyBwciwgI3tzaDRPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICBl
bHNlCisgICAgICAgICAgICByYWlzZSAiVW5oYW5kbGVkIG9wY29kZSAje29wY29kZX0gYXQgI3tj
b2RlT3JpZ2luU3RyaW5nfSIKKyAgICAgICAgZW5kCisgICAgZW5kCitlbmQKKwpJbmRleDogU291
cmNlL1dURi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDE0Njc1MikKKysrIFNvdXJjZS9XVEYvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTIgQEAKKzIwMTMtMDMtMjUgIEp1bGllbiBCcmlhbmNlYXUgICA8amJyaWFuY2Vh
dUBuZHMuY29tPgorCisgICAgICAgIExMSW50IFNINCBiYWNrZW5kIGltcGxlbWVudGF0aW9uCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTI4ODYKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9QbGF0
Zm9ybS5oOgorCiAyMDEzLTAzLTIyICBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIFJlbW92ZSAyIGJhZCBicmFuY2hlcyBmcm9tIFN0cmluZ0hhc2g6OmVx
dWFsKCkgYW5kIENhc2VGb2xkaW5nSGFzaDo6ZXF1YWwoKQpJbmRleDogU291cmNlL1dURi93dGYv
UGxhdGZvcm0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCShyZXZp
c2lvbiAxNDY3NTApCisrKyBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCSh3b3JraW5nIGNvcHkp
CkBAIC03ODUsNyArNzg1LDcgQEAKICAgICAmJiBFTkFCTEUoSklUKSBcCiAgICAgJiYgKE9TKERB
UldJTikgfHwgT1MoTElOVVgpKSBcCiAgICAgJiYgKFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0o
SU9TKSB8fCBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFFUKSkgXAotICAgICYmIChDUFUoWDg2
KSB8fCBDUFUoWDg2XzY0KSB8fCBDUFUoQVJNX1RIVU1CMikgfHwgQ1BVKEFSTV9UUkFESVRJT05B
TCkgfHwgQ1BVKE1JUFMpKQorICAgICYmIChDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KSB8fCBDUFUo
QVJNX1RIVU1CMikgfHwgQ1BVKEFSTV9UUkFESVRJT05BTCkgfHwgQ1BVKE1JUFMpIHx8IENQVShT
SDQpKQogI2RlZmluZSBFTkFCTEVfTExJTlQgMQogI2VuZGlmCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>195710</attachid>
            <date>2013-03-29 02:36:12 -0700</date>
            <delta_ts>2013-03-31 04:15:50 -0700</delta_ts>
            <desc> SH4 LLint backend implementation using risc.rb (2)</desc>
            <filename>sh4-llint-backend-impl-using-risc_2.patch</filename>
            <type>text/plain</type>
            <size>38211</size>
            <attacher name="Julien Brianceau">jbriance</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTQ3MjAxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBA
CisyMDEzLTAzLTI5ICBKdWxpZW4gQnJpYW5jZWF1ICAgPGpicmlhbmNlYXVAbmRzLmNvbT4KKwor
ICAgICAgICBMTEludCBTSDQgYmFja2VuZCBpbXBsZW1lbnRhdGlvbgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEyODg2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBkZmcvREZHT3BlcmF0aW9ucy5jcHA6
CisgICAgICAgIChKU0MpOgorICAgICAgICAqIGppdC9KSVRTdHVicy5jcHA6CisgICAgICAgICog
bGxpbnQvTExJbnRPZmZsaW5lQXNtQ29uZmlnLmg6CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJ
bnRlcnByZXRlci5hc206CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0
LmFzbToKKyAgICAgICAgKiBvZmZsaW5lYXNtL2JhY2tlbmRzLnJiOgorICAgICAgICAqIG9mZmxp
bmVhc20vaW5zdHJ1Y3Rpb25zLnJiOgorICAgICAgICAqIG9mZmxpbmVhc20vc2g0LnJiOiBBZGRl
ZC4KKwogMjAxMy0wMy0yOCAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIFNpbXBsaWZpZWQgdGhlIGJ5dGVjb2RlIGJ5IHJlbW92aW5nIG9wX2xvb3AgYW5kIG9w
X2xvb3BfaWZfKgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25z
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlv
bnMuY3BwCShyZXZpc2lvbiAxNDcyMDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R09wZXJhdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzUyLDYgKzE3NTIsMTggQEAgU1lN
Qk9MX1NUUklORyhnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiOgogICAgICJtb3ZlICRhMCwgJHMw
IiAiXG4iCiAgICAgImIgIiBMT0NBTF9SRUZFUkVOQ0UoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZVdp
dGhFeGVjU3RhdGUpICJcbiIKICk7CisjZWxpZiBDT01QSUxFUihHQ0MpICYmIENQVShTSDQpCith
c20oCisiLnRleHQiICJcbiIKKyIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGdldEhvc3RDYWxsUmV0
dXJuVmFsdWUpICJcbiIKK0hJREVfU1lNQk9MKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICJcbiIK
K1NZTUJPTF9TVFJJTkcoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIjoiICJcbiIKKyAgICAiYWRk
ICMtNDAsIHIxNCIgIlxuIgorICAgICJtb3YubCBAcjE0LCByMTQiICJcbiIKKyAgICAibW92IHIx
NCwgcjQiICJcbiIKKyAgICAiYnJhICIgTE9DQUxfUkVGRVJFTkNFKGdldEhvc3RDYWxsUmV0dXJu
VmFsdWVXaXRoRXhlY1N0YXRlKSAiXG4iCisgICAgIm5vcCIgIlxuIgorKTsKICNlbmRpZgogCiBl
eHRlcm4gIkMiIEVuY29kZWRKU1ZhbHVlIEhPU1RfQ0FMTF9SRVRVUk5fVkFMVUVfT1BUSU9OIGdl
dEhvc3RDYWxsUmV0dXJuVmFsdWVXaXRoRXhlY1N0YXRlKEV4ZWNTdGF0ZSogZXhlYykKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCShyZXZpc2lvbiAxNDcyMDApCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzIyLDYgKzMyMiw5IEBAIFNZTUJPTF9TVFJJTkcoY3RpVHJhbXBvbGluZSkgIjoiICJcbiIK
ICAgICAiYWRkICMxMiwgcjE1IiAiXG4iCiAgICAgInJ0cyIgIlxuIgogICAgICJub3AiICJcbiIK
KyIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGN0aVRyYW1wb2xpbmVFbmQpICJcbiIKK0hJREVfU1lN
Qk9MKGN0aVRyYW1wb2xpbmVFbmQpICJcbiIKK1NZTUJPTF9TVFJJTkcoY3RpVHJhbXBvbGluZUVu
ZCkgIjoiICJcbiIKICk7CiAKIGFzbSB2b2xhdGlsZSAoCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTExJbnRPZmZsaW5lQXNtQ29uZmlnLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50T2ZmbGluZUFzbUNvbmZpZy5oCShyZXZpc2lvbiAx
NDcyMDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRPZmZsaW5lQXNtQ29u
ZmlnLmgJKHdvcmtpbmcgY29weSkKQEAgLTQxLDYgKzQxLDcgQEAKICNkZWZpbmUgT0ZGTElORV9B
U01fWDg2XzY0IDAKICNkZWZpbmUgT0ZGTElORV9BU01fQVJNdjdzIDAKICNkZWZpbmUgT0ZGTElO
RV9BU01fTUlQUyAwCisjZGVmaW5lIE9GRkxJTkVfQVNNX1NINCAwCiAKICNlbHNlIC8vICFFTkFC
TEUoTExJTlRfQ19MT09QKQogCkBAIC04OSw2ICs5MCwxMiBAQAogI2RlZmluZSBPRkZMSU5FX0FT
TV9NSVBTIDAKICNlbmRpZgogCisjaWYgQ1BVKFNINCkKKyNkZWZpbmUgT0ZGTElORV9BU01fU0g0
IDEKKyNlbHNlCisjZGVmaW5lIE9GRkxJTkVfQVNNX1NINCAwCisjZW5kaWYKKwogI2VuZGlmIC8v
ICFFTkFCTEUoTExJTlRfQ19MT09QKQogCiAjaWYgVVNFKEpTVkFMVUU2NCkKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVy
MzJfNjQuYXNtCShyZXZpc2lvbiAxNDcyMDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxp
bnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQkod29ya2luZyBjb3B5KQpAQCAtMTEzLDcg
KzExMyw3IEBAIG1hY3JvIGNDYWxsMihmdW5jdGlvbiwgYXJnMSwgYXJnMikKICAgICAgICAgcG9r
ZSBhcmcxLCAwCiAgICAgICAgIHBva2UgYXJnMiwgMQogICAgICAgICBjYWxsIGZ1bmN0aW9uCi0g
ICAgZWxzaWYgTUlQUworICAgIGVsc2lmIE1JUFMgb3IgU0g0CiAgICAgICAgIG1vdmUgYXJnMSwg
YTAKICAgICAgICAgbW92ZSBhcmcyLCBhMQogICAgICAgICBjYWxsIGZ1bmN0aW9uCkBAIC0xMzgs
NyArMTM4LDcgQEAgbWFjcm8gY0NhbGw0KGZ1bmN0aW9uLCBhcmcxLCBhcmcyLCBhcmczLAogICAg
ICAgICBwb2tlIGFyZzMsIDIKICAgICAgICAgcG9rZSBhcmc0LCAzCiAgICAgICAgIGNhbGwgZnVu
Y3Rpb24KLSAgICBlbHNpZiBNSVBTCisgICAgZWxzaWYgTUlQUyBvciBTSDQKICAgICAgICAgbW92
ZSBhcmcxLCBhMAogICAgICAgICBtb3ZlIGFyZzIsIGExCiAgICAgICAgIG1vdmUgYXJnMywgYTIK
QEAgLTE5MTMsNiArMTkxMywxOSBAQCBtYWNybyBuYXRpdmVDYWxsVHJhbXBvbGluZShleGVjdXRh
YmxlT2ZmCiAgICAgICAgIGNhbGwgZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb25bdDFdCiAgICAg
ICAgIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKHQzKQogICAgICAgICBsb2FkcCBK
SVRTdGFja0ZyYW1lOjpnbG9iYWxEYXRhW3NwXSwgdDMKKyAgICBlbHNpZiBTSDQKKyAgICAgICAg
bG9hZHAgSklUU3RhY2tGcmFtZTo6Z2xvYmFsRGF0YVtzcF0sIHQzCisgICAgICAgIHN0b3JlcCBj
ZnIsIEpTR2xvYmFsRGF0YTo6dG9wQ2FsbEZyYW1lW3QzXQorICAgICAgICBtb3ZlIHQwLCB0Mgor
ICAgICAgICBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwodDMpCisgICAgICAgIHN0b3Jl
cCB0MywgUmV0dXJuUENbY2ZyXQorICAgICAgICBtb3ZlIGNmciwgdDAKKyAgICAgICAgbG9hZGkg
Q2FsbGVlICsgUGF5bG9hZE9mZnNldFtjZnJdLCB0MQorICAgICAgICBsb2FkcCBKU0Z1bmN0aW9u
OjptX2V4ZWN1dGFibGVbdDFdLCB0MQorICAgICAgICBtb3ZlIHQyLCBjZnIKKyAgICAgICAgY2Fs
bCBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvblt0MV0KKyAgICAgICAgcmVzdG9yZVJldHVybkFk
ZHJlc3NCZWZvcmVSZXR1cm4odDMpCisgICAgICAgIGxvYWRwIEpJVFN0YWNrRnJhbWU6Omdsb2Jh
bERhdGFbc3BdLCB0MwogICAgIGVsc2lmIENfTE9PUAogICAgICAgICBsb2FkcCBKSVRTdGFja0Zy
YW1lOjpnbG9iYWxEYXRhW3NwXSwgdDMKICAgICAgICAgc3RvcmVwIGNmciwgSlNHbG9iYWxEYXRh
Ojp0b3BDYWxsRnJhbWVbdDNdCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93
TGV2ZWxJbnRlcnByZXRlci5hc20KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCShyZXZpc2lvbiAxNDcyMDApCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20JKHdvcmtpbmcg
Y29weSkKQEAgLTE4NSw2ICsxODUsOCBAQCBtYWNybyBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRl
ckNhbGwoZGVzCiAgICAgaWYgQ19MT09QIG9yIEFSTSBvciBBUk12NyBvciBBUk12N19UUkFESVRJ
T05BTCBvciBNSVBTCiAgICAgICAgICMgSW4gQ19MT09QIGNhc2UsIHdlJ3JlIG9ubHkgcHJlc2Vy
dmluZyB0aGUgYnl0ZWNvZGUgdlBDLgogICAgICAgICBtb3ZlIGxyLCBkZXN0aW5hdGlvblJlZ2lz
dGVyCisgICAgZWxzaWYgU0g0CisgICAgICAgIHN0c3ByIGRlc3RpbmF0aW9uUmVnaXN0ZXIKICAg
ICBlbHNpZiBYODYgb3IgWDg2XzY0CiAgICAgICAgIHBvcCBkZXN0aW5hdGlvblJlZ2lzdGVyCiAg
ICAgZWxzZQpAQCAtMTk2LDYgKzE5OCw4IEBAIG1hY3JvIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVm
b3JlUmV0dXJuKHMKICAgICBpZiBDX0xPT1Agb3IgQVJNIG9yIEFSTXY3IG9yIEFSTXY3X1RSQURJ
VElPTkFMIG9yIE1JUFMKICAgICAgICAgIyBJbiBDX0xPT1AgY2FzZSwgd2UncmUgb25seSByZXN0
b3JpbmcgdGhlIGJ5dGVjb2RlIHZQQy4KICAgICAgICAgbW92ZSBzb3VyY2VSZWdpc3RlciwgbHIK
KyAgICBlbHNpZiBTSDQKKyAgICAgICAgbGRzcHIgc291cmNlUmVnaXN0ZXIKICAgICBlbHNpZiBY
ODYgb3IgWDg2XzY0CiAgICAgICAgIHB1c2ggc291cmNlUmVnaXN0ZXIKICAgICBlbHNlCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9iYWNrZW5kcy5yYgo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9iYWNrZW5kcy5yYgkocmV2aXNp
b24gMTQ3MjAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYmFja2VuZHMu
cmIJKHdvcmtpbmcgY29weSkKQEAgLTI2LDYgKzI2LDcgQEAgcmVxdWlyZSAiYXJtIgogcmVxdWly
ZSAiYXN0IgogcmVxdWlyZSAieDg2IgogcmVxdWlyZSAibWlwcyIKK3JlcXVpcmUgInNoNCIKIHJl
cXVpcmUgImNsb29wIgogCiBCQUNLRU5EUyA9CkBAIC0zNiw2ICszNyw3IEBAIEJBQ0tFTkRTID0K
ICAgICAgIkFSTXY3IiwKICAgICAgIkFSTXY3X1RSQURJVElPTkFMIiwKICAgICAgIk1JUFMiLAor
ICAgICAiU0g0IiwKICAgICAgIkNfTE9PUCIKICAgICBdCiAKQEAgLTUyLDYgKzU0LDcgQEAgV09S
S0lOR19CQUNLRU5EUyA9CiAgICAgICJBUk12NyIsCiAgICAgICJBUk12N19UUkFESVRJT05BTCIs
CiAgICAgICJNSVBTIiwKKyAgICAgIlNINCIsCiAgICAgICJDX0xPT1AiCiAgICAgXQogCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmIKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vaW5zdHJ1Y3Rpb25zLnJi
CShyZXZpc2lvbiAxNDcyMDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9p
bnN0cnVjdGlvbnMucmIJKHdvcmtpbmcgY29weSkKQEAgLTI3NSw2ICsyNzUsMjEgQEAgTUlQU19J
TlNUUlVDVElPTlMgPQogICAgICJwaWNoZHJyYSIKICAgICBdCiAKK1NINF9JTlNUUlVDVElPTlMg
PQorICAgIFsKKyAgICAic2hsbHgiLAorICAgICJzaGxyeCIsCisgICAgInNobGQiLAorICAgICJz
aGFkIiwKKyAgICAiYmRuYW4iLAorICAgICJsb2FkZCsiLAorICAgICJzdG9yZWQtIiwKKyAgICAi
bGRzcHIiLAorICAgICJzdHNwciIsCisgICAgImNhbGxmIiwKKyAgICAiam1wZiIKKyAgICBdCisK
IENYWF9JTlNUUlVDVElPTlMgPQogICAgIFsKICAgICAgImNsb29wQ3Jhc2giLCAgICAgICAgICAg
IyBubyBvcGVyYW5kcwpAQCAtMjkxLDcgKzMwNiw3IEBAIENYWF9JTlNUUlVDVElPTlMgPQogICAg
ICAiY2xvb3BEbyIsICAgICAgICAgICAgICAjIG5vIG9wZXJhbmRzCiAgICAgXQogCi1JTlNUUlVD
VElPTlMgPSBNQUNST19JTlNUUlVDVElPTlMgKyBYODZfSU5TVFJVQ1RJT05TICsgQVJNX0lOU1RS
VUNUSU9OUyArIE1JUFNfSU5TVFJVQ1RJT05TICsgQ1hYX0lOU1RSVUNUSU9OUworSU5TVFJVQ1RJ
T05TID0gTUFDUk9fSU5TVFJVQ1RJT05TICsgWDg2X0lOU1RSVUNUSU9OUyArIEFSTV9JTlNUUlVD
VElPTlMgKyBNSVBTX0lOU1RSVUNUSU9OUyArIFNINF9JTlNUUlVDVElPTlMgKyBDWFhfSU5TVFJV
Q1RJT05TCiAKIElOU1RSVUNUSU9OX1BBVFRFUk4gPSBSZWdleHAubmV3KCdcXEEoKCcgKyBJTlNU
UlVDVElPTlMuam9pbignKXwoJykgKyAnKSlcXFonKQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvb2ZmbGluZWFzbS9zaDQucmIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL29mZmxpbmVhc20vc2g0LnJiCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL29mZmxpbmVhc20vc2g0LnJiCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDgwNiBAQAorIyBD
b3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5
cmlnaHQgKEMpIDIwMTMgQ2lzY28gU3lzdGVtcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
IworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
IworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIENJU0NPIFNZU1RFTVMsIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyMgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyMgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIENJU0NPIFNZU1RFTVMsIElOQy4gT1IgSVRTCisj
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorIyBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorIyBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisj
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworcmVxdWlyZSAncmlzYycKKwor
Y2xhc3MgTm9kZQorICAgIGRlZiBzaDRTaW5nbGVIaQorICAgICAgICBkb3VibGVPcGVyYW5kID0g
c2g0T3BlcmFuZAorICAgICAgICByYWlzZSAiQm9ndXMgcmVnaXN0ZXIgbmFtZSAje2RvdWJsZU9w
ZXJhbmR9IiB1bmxlc3MgZG91YmxlT3BlcmFuZCA9fiAvXmRyLworICAgICAgICAiZnIiICsgKCR+
LnBvc3RfbWF0Y2gudG9faSkudG9fcworICAgIGVuZAorICAgIGRlZiBzaDRTaW5nbGVMbworICAg
ICAgICBkb3VibGVPcGVyYW5kID0gc2g0T3BlcmFuZAorICAgICAgICByYWlzZSAiQm9ndXMgcmVn
aXN0ZXIgbmFtZSAje2RvdWJsZU9wZXJhbmR9IiB1bmxlc3MgZG91YmxlT3BlcmFuZCA9fiAvXmRy
LworICAgICAgICAiZnIiICsgKCR+LnBvc3RfbWF0Y2gudG9faSArIDEpLnRvX3MKKyAgICBlbmQK
K2VuZAorCitjbGFzcyBTcGVjaWFsUmVnaXN0ZXIgPCBOb0NoaWxkcmVuCisgICAgZGVmIHNoNE9w
ZXJhbmQKKyAgICAgICAgQG5hbWUKKyAgICBlbmQKKworICAgIGRlZiBkdW1wCisgICAgICAgIEBu
YW1lCisgICAgZW5kCisKKyAgICBkZWYgcmVnaXN0ZXI/CisgICAgICAgIHRydWUKKyAgICBlbmQK
K2VuZAorCitTSDRfVE1QX0dQUlMgPSBbIFNwZWNpYWxSZWdpc3Rlci5uZXcoInIzIiksIFNwZWNp
YWxSZWdpc3Rlci5uZXcoInIxMSIpLCBTcGVjaWFsUmVnaXN0ZXIubmV3KCJyMTMiKSBdCitTSDRf
VE1QX0ZQUlMgPSBbIFNwZWNpYWxSZWdpc3Rlci5uZXcoImRyMTAiKSBdCisKK2NsYXNzIFJlZ2lz
dGVySUQKKyAgICBkZWYgc2g0T3BlcmFuZAorICAgICAgICBjYXNlIG5hbWUKKyAgICAgICAgd2hl
biAiYTAiCisgICAgICAgICAgICAicjQiCisgICAgICAgIHdoZW4gImExIgorICAgICAgICAgICAg
InI1IgorICAgICAgICB3aGVuICJ0MCIKKyAgICAgICAgICAgICJyMCIKKyAgICAgICAgd2hlbiAi
dDEiCisgICAgICAgICAgICAicjEiCisgICAgICAgIHdoZW4gInQyIgorICAgICAgICAgICAgInIy
IgorICAgICAgICB3aGVuICJ0MyIKKyAgICAgICAgICAgICJyMTAiCisgICAgICAgIHdoZW4gInQ0
IgorICAgICAgICAgICAgInI2IgorICAgICAgICB3aGVuICJjZnIiCisgICAgICAgICAgICAicjE0
IgorICAgICAgICB3aGVuICJzcCIKKyAgICAgICAgICAgICJyMTUiCisgICAgICAgIHdoZW4gImxy
IgorICAgICAgICAgICAgInByIgorICAgICAgICBlbHNlCisgICAgICAgICAgICByYWlzZSAiQmFk
IHJlZ2lzdGVyICN7bmFtZX0gZm9yIFNINCBhdCAje2NvZGVPcmlnaW5TdHJpbmd9IgorICAgICAg
ICBlbmQKKyAgICBlbmQKK2VuZAorCitjbGFzcyBGUFJlZ2lzdGVySUQKKyAgICBkZWYgc2g0T3Bl
cmFuZAorICAgICAgICBjYXNlIG5hbWUKKyAgICAgICAgd2hlbiAiZnQwIiwgImZyIgorICAgICAg
ICAgICAgImRyMCIKKyAgICAgICAgd2hlbiAiZnQxIgorICAgICAgICAgICAgImRyMiIKKyAgICAg
ICAgd2hlbiAiZnQyIgorICAgICAgICAgICAgImRyNCIKKyAgICAgICAgd2hlbiAiZnQzIgorICAg
ICAgICAgICAgImRyNiIKKyAgICAgICAgd2hlbiAiZnQ0IgorICAgICAgICAgICAgImRyOCIKKyAg
ICAgICAgd2hlbiAiZmEwIgorICAgICAgICAgICAgImRyMTIiCisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIHJhaXNlICJCYWQgcmVnaXN0ZXIgI3tuYW1lfSBmb3IgU0g0IGF0ICN7Y29kZU9yaWdp
blN0cmluZ30iCisgICAgICAgIGVuZAorICAgIGVuZAorZW5kCisKK2NsYXNzIEltbWVkaWF0ZQor
ICAgIGRlZiBzaDRPcGVyYW5kCisgICAgICAgIHJhaXNlICJJbnZhbGlkIGltbWVkaWF0ZSAje3Zh
bHVlfSBhdCAje2NvZGVPcmlnaW5TdHJpbmd9IiBpZiB2YWx1ZSA8IC0xMjggb3IgdmFsdWUgPiAx
MjcKKyAgICAgICAgIiMje3ZhbHVlfSIKKyAgICBlbmQKK2VuZAorCitjbGFzcyBBZGRyZXNzCisg
ICAgZGVmIHNoNE9wZXJhbmQKKyAgICAgICAgcmFpc2UgIkJhZCBvZmZzZXQgI3tvZmZzZXQudmFs
dWV9IGF0ICN7Y29kZU9yaWdpblN0cmluZ30iIGlmIG9mZnNldC52YWx1ZSA8IDAgb3Igb2Zmc2V0
LnZhbHVlID4gNjAKKyAgICAgICAgaWYgb2Zmc2V0LnZhbHVlID09IDAKKyAgICAgICAgICAgICJA
I3tiYXNlLnNoNE9wZXJhbmR9IgorICAgICAgICBlbHNlCisgICAgICAgICAgICAiQCgje29mZnNl
dC52YWx1ZX0sICN7YmFzZS5zaDRPcGVyYW5kfSkiCisgICAgICAgIGVuZAorICAgIGVuZAorCisg
ICAgZGVmIHNoNE9wZXJhbmRQb3N0SW5jCisgICAgICAgIHJhaXNlICJCYWQgb2Zmc2V0ICN7b2Zm
c2V0LnZhbHVlfSBmb3IgcG9zdCBpbmMgYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIgdW5sZXNzIG9m
ZnNldC52YWx1ZSA9PSAwCisgICAgICAgICJAI3tiYXNlLnNoNE9wZXJhbmR9KyIKKyAgICBlbmQK
KworICAgIGRlZiBzaDRPcGVyYW5kUHJlRGVjCisgICAgICAgIHJhaXNlICJCYWQgb2Zmc2V0ICN7
b2Zmc2V0LnZhbHVlfSBmb3IgcHJlIGRlYyBhdCAje2NvZGVPcmlnaW5TdHJpbmd9IiB1bmxlc3Mg
b2Zmc2V0LnZhbHVlID09IDAKKyAgICAgICAgIkAtI3tiYXNlLnNoNE9wZXJhbmR9IgorICAgIGVu
ZAorZW5kCisKK2NsYXNzIEJhc2VJbmRleAorICAgIGRlZiBzaDRPcGVyYW5kCisgICAgICAgIHJh
aXNlICJVbmNvbnZlcnRlZCBiYXNlIGluZGV4IGF0ICN7Y29kZU9yaWdpblN0cmluZ30iCisgICAg
ZW5kCitlbmQKKworY2xhc3MgQWJzb2x1dGVBZGRyZXNzCisgICAgZGVmIHNoNE9wZXJhbmQKKyAg
ICAgICAgcmFpc2UgIlVuY29udmVydGVkIGFic29sdXRlIGFkZHJlc3MgYXQgI3tjb2RlT3JpZ2lu
U3RyaW5nfSIKKyAgICBlbmQKK2VuZAorCisKKyMKKyMgTG93ZXJpbmcgb2Ygc2hpZnQgb3BzIGZv
ciBTSDQuCisjCisKK2RlZiBzaDRMb3dlclNoaWZ0T3BzKGxpc3QpCisgICAgbmV3TGlzdCA9IFtd
CisgICAgbGlzdC5lYWNoIHsKKyAgICAgICAgfCBub2RlIHwKKyAgICAgICAgaWYgbm9kZS5pc19h
PyBJbnN0cnVjdGlvbgorICAgICAgICAgICAgY2FzZSBub2RlLm9wY29kZQorICAgICAgICAgICAg
d2hlbiAidWxzaGlmdGkiLCAidWxzaGlmdHAiLCAidXJzaGlmdGkiLCAidXJzaGlmdHAiLCAibHNo
aWZ0aSIsICJsc2hpZnRwIiwgInJzaGlmdGkiLCAicnNoaWZ0cCIKKyAgICAgICAgICAgICAgICBp
ZiBub2RlLm9wY29kZVswLDFdID09ICJ1IgorICAgICAgICAgICAgICAgICAgICB0eXBlID0gImwi
CisgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbiA9IG5vZGUub3Bjb2RlWzEsMV0KKyAgICAg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAiYSIKKyAgICAgICAg
ICAgICAgICAgICAgZGlyZWN0aW9uID0gbm9kZS5vcGNvZGVbMCwxXQorICAgICAgICAgICAgICAg
IGVuZAorICAgICAgICAgICAgICAgIGlmIG5vZGUub3BlcmFuZHNbMF0uaXNfYT8gSW1tZWRpYXRl
CisgICAgICAgICAgICAgICAgICAgIGlmIG5vZGUub3BlcmFuZHNbMF0udmFsdWUgPT0gMAorICAg
ICAgICAgICAgICAgICAgICAgICAgIyBUaGVyZSBpcyBub3RoaW5nIHRvIGRvIGhlcmUuCisgICAg
ICAgICAgICAgICAgICAgIGVsc2lmIG5vZGUub3BlcmFuZHNbMF0udmFsdWUgPT0gMSBvciAodHlw
ZSA9PSAibCIgYW5kIFsyLCA4LCAxNl0uaW5jbHVkZT8gbm9kZS5vcGVyYW5kc1swXS52YWx1ZSkK
KyAgICAgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUu
Y29kZU9yaWdpbiwgInNoI3t0eXBlfSN7ZGlyZWN0aW9ufXgiLCBub2RlLm9wZXJhbmRzKQorICAg
ICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBUbXAu
bmV3KG5vZGUuY29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIGRp
cmVjdGlvbiA9PSAibCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IElu
c3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJtb3ZlIiwgW25vZGUub3BlcmFuZHNbMF0s
IHRtcF0pCisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAibW92
ZSIsIFtJbW1lZGlhdGUubmV3KG5vZGUub3BlcmFuZHNbMF0uY29kZU9yaWdpbiwgLTEgKiBub2Rl
Lm9wZXJhbmRzWzBdLnZhbHVlKSwgdG1wXSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGVuZAor
ICAgICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5j
b2RlT3JpZ2luLCAic2gje3R5cGV9ZCIsIFt0bXAsIG5vZGUub3BlcmFuZHNbMV1dKQorICAgICAg
ICAgICAgICAgICAgICBlbmQKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
ICAgIGlmIGRpcmVjdGlvbiA9PSAibCIKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ld0xpc3Qg
PDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgInNoI3t0eXBlfWQiLCBub2RlLm9w
ZXJhbmRzKQorICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAg
ICB0bXAgPSBUbXAubmV3KG5vZGUuY29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAgICAgICAg
ICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgIm5lZ2ki
LCBbbm9kZS5vcGVyYW5kc1swXSwgdG1wXSkKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ld0xp
c3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgInNoI3t0eXBlfWQiLCBbdG1w
LCBub2RlLm9wZXJhbmRzWzFdXSkKKyAgICAgICAgICAgICAgICAgICAgZW5kCisgICAgICAgICAg
ICAgICAgZW5kCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBu
b2RlCisgICAgICAgICAgICBlbmQKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbmV3TGlzdCA8
PCBub2RlCisgICAgICAgIGVuZAorICAgIH0KKyAgICBuZXdMaXN0CitlbmQKKworCisjCisjIExv
d2VyaW5nIG9mIGJyYW5jaCBvcHMgZm9yIFNINC4KKyMKKworZGVmIHNoNExvd2VyU2ltcGxlQnJh
bmNoT3BzKGxpc3QpCisgICAgbmV3TGlzdCA9IFtdCisgICAgbGlzdC5lYWNoIHsKKyAgICAgICAg
fCBub2RlIHwKKyAgICAgICAgaWYgbm9kZS5pc19hPyBJbnN0cnVjdGlvbgorICAgICAgICAgICAg
YW5ub3RhdGlvbiA9IG5vZGUuYW5ub3RhdGlvbgorICAgICAgICAgICAgY2FzZSBub2RlLm9wY29k
ZQorICAgICAgICAgICAgd2hlbiAvXmIoYWRkaXxzdWJpfG9yaXxhZGRwKS8KKyAgICAgICAgICAg
ICAgICBvcCA9ICQxCisgICAgICAgICAgICAgICAgYmMgPSAkfi5wb3N0X21hdGNoCisgICAgICAg
ICAgICAgICAgYnJhbmNoID0gImIiICsgYmMKKworICAgICAgICAgICAgICAgIGNhc2Ugb3AKKyAg
ICAgICAgICAgICAgICB3aGVuICJhZGRpIiwgImFkZHAiCisgICAgICAgICAgICAgICAgICAgIG9w
ID0gImFkZGkiCisgICAgICAgICAgICAgICAgd2hlbiAic3ViaSIKKyAgICAgICAgICAgICAgICAg
ICAgb3AgPSAic3ViaSIKKyAgICAgICAgICAgICAgICB3aGVuICJvcmkiCisgICAgICAgICAgICAg
ICAgICAgIG9wID0gIm9yaSIKKyAgICAgICAgICAgICAgICBlbmQKKworICAgICAgICAgICAgICAg
IGlmIGJjID09ICJzIgorICAgICAgICAgICAgICAgICAgICB0bXAgPSBUbXAubmV3KG5vZGUuY29k
ZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlv
bi5uZXcobm9kZS5jb2RlT3JpZ2luLCBvcCwgW25vZGUub3BlcmFuZHNbMF0sIG5vZGUub3BlcmFu
ZHNbMV0sIHRtcF0pCisgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24u
bmV3KG5vZGUuY29kZU9yaWdpbiwgImJzIiwgW3RtcCwgbm9kZS5vcGVyYW5kc1syXV0pCisgICAg
ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUKKyAg
ICAgICAgICAgICAgICBlbmQKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBuZXdM
aXN0IDw8IG5vZGUKKyAgICAgICAgICAgIGVuZAorICAgICAgICBlbHNlCisgICAgICAgICAgICBu
ZXdMaXN0IDw8IG5vZGUKKyAgICAgICAgZW5kCisgICAgfQorICAgIG5ld0xpc3QKK2VuZAorCisK
KyMKKyMgTG93ZXJpbmcgb2YgbWFsZm9ybWVkIGFkZHJlc3NlcyBpbiBkb3VibGUgbG9hZHMgYW5k
IHN0b3JlcyBmb3IgU0g0LiBGb3IgZXhhbXBsZToKKyMKKyMgbG9hZGQgW2ZvbywgYmFyLCA4XSwg
YmF6CisjCisjIGJlY29tZXM6CisjCisjIGxlYXAgW2ZvbywgYmFyLCA4XSwgdG1wCisjIGxvYWRm
KyBbdG1wXSwgYmF6CisjCisKK2NsYXNzIE5vZGUKKyAgICBkZWYgc2g0RG91YmxlQWRkcmVzcyhs
aXN0LCBvZmZzZXQpCisgICAgICAgIHNlbGYKKyAgICBlbmQKK2VuZAorCitjbGFzcyBCYXNlSW5k
ZXgKKyAgICBkZWYgc2g0RG91YmxlQWRkcmVzcyhsaXN0LCBvZmZzZXQpCisgICAgICAgIHRtcCA9
IFRtcC5uZXcoY29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAgbGlzdCA8PCBJbnN0cnVjdGlvbi5u
ZXcoY29kZU9yaWdpbiwgImxlYXAiLCBbc2VsZiwgdG1wXSkKKyAgICAgICAgQWRkcmVzcy5uZXco
Y29kZU9yaWdpbiwgdG1wLCBJbW1lZGlhdGUubmV3KGNvZGVPcmlnaW4sIG9mZnNldCkpCisgICAg
ZW5kCitlbmQKKworZGVmIHNoNExvd2VyTWFsZm9ybWVkQWRkcmVzc2VzRG91YmxlKGxpc3QpCisg
ICAgbmV3TGlzdCA9IFtdCisgICAgbGlzdC5lYWNoIHsKKyAgICAgICAgfCBub2RlIHwKKyAgICAg
ICAgaWYgbm9kZS5pc19hPyBJbnN0cnVjdGlvbgorICAgICAgICAgICAgY2FzZSBub2RlLm9wY29k
ZQorICAgICAgICAgICAgd2hlbiAibG9hZGQiCisgICAgICAgICAgICAgICAgdG1wID0gVG1wLm5l
dyhjb2RlT3JpZ2luLCA6Z3ByKQorICAgICAgICAgICAgICAgIGFkZHIgPSBBZGRyZXNzLm5ldyhj
b2RlT3JpZ2luLCB0bXAsIEltbWVkaWF0ZS5uZXcoY29kZU9yaWdpbiwgMCkpCisgICAgICAgICAg
ICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcoY29kZU9yaWdpbiwgImxlYXAiLCBbbm9k
ZS5vcGVyYW5kc1swXSwgdG1wXSkKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0
aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJsb2FkZCsiLCBbYWRkciwgbm9kZS5vcGVyYW5kc1sx
XV0sIG5vZGUuYW5ub3RhdGlvbikKKyAgICAgICAgICAgIHdoZW4gInN0b3JlZCIKKyAgICAgICAg
ICAgICAgICB0bXAgPSBUbXAubmV3KGNvZGVPcmlnaW4sIDpncHIpCisgICAgICAgICAgICAgICAg
YWRkciA9IEFkZHJlc3MubmV3KGNvZGVPcmlnaW4sIHRtcCwgSW1tZWRpYXRlLm5ldyhjb2RlT3Jp
Z2luLCAwKSkKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhjb2Rl
T3JpZ2luLCAibGVhcCIsIFtub2RlLm9wZXJhbmRzWzFdLCB0bXBdKQorICAgICAgICAgICAgICAg
IG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KGNvZGVPcmlnaW4sICJhZGRpIiwgW0ltbWVkaWF0
ZS5uZXcoY29kZU9yaWdpbiwgOCksIHRtcF0pCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJ
bnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAic3RvcmVkLSIsIFtub2RlLm9wZXJhbmRz
WzBdLCBhZGRyXSwgbm9kZS5hbm5vdGF0aW9uKQorICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgICAgIG5ld0xpc3QgPDwgbm9kZQorICAgICAgICAgICAgZW5kCisgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgIG5ld0xpc3QgPDwgbm9kZQorICAgICAgICBlbmQKKyAgICB9CisgICAgbmV3TGlz
dAorZW5kCisKKworIworIyBMb3dlcmluZyBvZiBkb3VibGUgc3BlY2lhbHMgZm9yIFNINC4KKyMK
KworZGVmIHNoNExvd2VyRG91YmxlU3BlY2lhbHMobGlzdCkKKyAgICBuZXdMaXN0ID0gW10KKyAg
ICBsaXN0LmVhY2ggeworICAgICAgICB8IG5vZGUgfAorICAgICAgICBpZiBub2RlLmlzX2E/IElu
c3RydWN0aW9uCisgICAgICAgICAgICBjYXNlIG5vZGUub3Bjb2RlCisgICAgICAgICAgICB3aGVu
ICJiZG5lcXVuIiwgImJkZ3RlcXVuIiwgImJkbHR1biIsICJiZGx0ZXF1biIsICJiZGd0dW4iCisg
ICAgICAgICAgICAgICAgIyBIYW5kbGUgZmxvYXRpbmcgcG9pbnQgdW5vcmRlcmVkIG9wY29kZXMu
CisgICAgICAgICAgICAgICAgdG1wMSA9IFRtcC5uZXcoY29kZU9yaWdpbiwgOmdwcikKKyAgICAg
ICAgICAgICAgICB0bXAyID0gVG1wLm5ldyhjb2RlT3JpZ2luLCA6Z3ByKQorICAgICAgICAgICAg
ICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KGNvZGVPcmlnaW4sICJiZG5hbiIsIFtub2Rl
Lm9wZXJhbmRzWzBdLCBub2RlLm9wZXJhbmRzWzJdLCB0bXAxLCB0bXAyXSkKKyAgICAgICAgICAg
ICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhjb2RlT3JpZ2luLCAiYmRuYW4iLCBbbm9k
ZS5vcGVyYW5kc1sxXSwgbm9kZS5vcGVyYW5kc1syXSwgdG1wMSwgdG1wMl0pCisgICAgICAgICAg
ICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcoY29kZU9yaWdpbiwgbm9kZS5vcGNvZGVb
MC4uLTNdLCBub2RlLm9wZXJhbmRzKQorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
IG5ld0xpc3QgPDwgbm9kZQorICAgICAgICAgICAgZW5kCisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIG5ld0xpc3QgPDwgbm9kZQorICAgICAgICBlbmQKKyAgICB9CisgICAgbmV3TGlzdAorZW5k
CisKKworIworIyBMb3dlcmluZyBvZiBtaXNwbGFjZWQgaW1tZWRpYXRlcyBmb3IgU0g0LiBGb3Ig
ZXhhbXBsZToKKyMKKyMgbXVsaSA0LCBmb28KKyMKKyMgd2lsbCBiZWNvbWU6CisjCisjIG1vdmUg
NCwgdG1wCisjIG11bGkgdG1wLCBmb28KKyMKKworZGVmIHNoNExvd2VyTWlzcGxhY2VkSW1tZWRp
YXRlcyhsaXN0KQorICAgIG5ld0xpc3QgPSBbXQorICAgIGxpc3QuZWFjaCB7CisgICAgICAgIHwg
bm9kZSB8CisgICAgICAgIGlmIG5vZGUuaXNfYT8gSW5zdHJ1Y3Rpb24KKyAgICAgICAgICAgIGNh
c2Ugbm9kZS5vcGNvZGUKKyAgICAgICAgICAgIHdoZW4gIm11bGkiLCAibXVscCIsICJhbmRpIiwg
Im9yaSIsICJ4b3JpIiwKKyAgICAgICAgICAgICAgICAgImNiZXEiLCAiY2llcSIsICJjcGVxIiwg
ImNpbmVxIiwgImNwbmVxIiwgImNpYiIsCisgICAgICAgICAgICAgICAgICJiYmVxIiwgImJibmVx
IiwgImJiYiIsICJiaWVxIiwgImJwZXEiLCAiYmluZXEiLCAiYnBuZXEiLCAiYmlhIiwgImJwYSIs
ICJiaWFlcSIsICJicGFlcSIsICJiaWIiLCAiYnBiIiwKKyAgICAgICAgICAgICAgICAgImJpZ3Rl
cSIsICJicGd0ZXEiLCAiYmlsdCIsICJicGx0IiwgImJpZ3QiLCAiYnBndCIsICJiaWx0ZXEiLCAi
YnBsdGVxIiwgImJ0aXoiLCAiYnRweiIsICJidGlueiIsICJidHBueiIsICJidGJ6IiwgImJ0Ym56
IiwKKyAgICAgICAgICAgICAgICAgImJhZGRpbyIsICJic3ViaW8iLCAiYm11bGlvIiwgImJhZGRp
cyIKKyAgICAgICAgICAgICAgICBvcGVyYW5kcyA9IG5vZGUub3BlcmFuZHMKKyAgICAgICAgICAg
ICAgICBuZXdPcGVyYW5kcyA9IFtdCisgICAgICAgICAgICAgICAgb3BlcmFuZHMuZWFjaCB7Cisg
ICAgICAgICAgICAgICAgICAgIHwgb3BlcmFuZCB8CisgICAgICAgICAgICAgICAgICAgIGlmIG9w
ZXJhbmQuaXNfYT8gSW1tZWRpYXRlCisgICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBUbXAu
bmV3KG9wZXJhbmQuY29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAgICAgICAgICAgICAgIG5l
d0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG9wZXJhbmQuY29kZU9yaWdpbiwgIm1vdmUiLCBbb3Bl
cmFuZCwgdG1wXSkKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ld09wZXJhbmRzIDw8IHRtcAor
ICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICBuZXdPcGVy
YW5kcyA8PCBvcGVyYW5kCisgICAgICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVP
cmlnaW4sIG5vZGUub3Bjb2RlLCBuZXdPcGVyYW5kcywgbm9kZS5hbm5vdGF0aW9uKQorICAgICAg
ICAgICAgZWxzZQorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgbm9kZQorICAgICAgICAgICAg
ZW5kCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG5ld0xpc3QgPDwgbm9kZQorICAgICAgICBl
bmQKKyAgICB9CisgICAgbmV3TGlzdAorZW5kCisKKworIworIyBMb3dlcmluZyBvZiBtaXNwbGFj
ZWQgbGFiZWxzIGZvciBTSDQuCisjCisKK2RlZiBzaDRMb3dlck1pc3BsYWNlZExhYmVscyhsaXN0
KQorICAgIG5ld0xpc3QgPSBbXQorICAgIGxpc3QuZWFjaCB7CisgICAgICAgIHwgbm9kZSB8Cisg
ICAgICAgIGlmIG5vZGUuaXNfYT8gSW5zdHJ1Y3Rpb24KKyAgICAgICAgICAgIGNhc2Ugbm9kZS5v
cGNvZGUKKyAgICAgICAgICAgIHdoZW4gImptcCIKKyAgICAgICAgICAgICAgICBpZiBub2RlLm9w
ZXJhbmRzWzBdLmlzX2E/IExhYmVsUmVmZXJlbmNlCisgICAgICAgICAgICAgICAgICAgIHRtcCA9
IFRtcC5uZXcoY29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8
PCBJbnN0cnVjdGlvbi5uZXcoY29kZU9yaWdpbiwgImptcGYiLCBbdG1wLCBub2RlLm9wZXJhbmRz
WzBdXSkKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIG5ld0xpc3Qg
PDwgbm9kZQorICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgd2hlbiAiY2FsbCIKKyAg
ICAgICAgICAgICAgICBpZiBub2RlLm9wZXJhbmRzWzBdLmlzX2E/IExhYmVsUmVmZXJlbmNlCisg
ICAgICAgICAgICAgICAgICAgIHRtcDEgPSBUbXAubmV3KGNvZGVPcmlnaW4sIDpncHIpCisgICAg
ICAgICAgICAgICAgICAgIHRtcDIgPSBUbXAubmV3KGNvZGVPcmlnaW4sIDpncHIpCisgICAgICAg
ICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KGNvZGVPcmlnaW4sICJjYWxs
ZiIsIFt0bXAxLCB0bXAyLCBub2RlLm9wZXJhbmRzWzBdXSkKKyAgICAgICAgICAgICAgICBlbHNl
CisgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgbm9kZQorICAgICAgICAgICAgICAgIGVu
ZAorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgbm9kZQorICAg
ICAgICAgICAgZW5kCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG5ld0xpc3QgPDwgbm9kZQor
ICAgICAgICBlbmQKKyAgICB9CisgICAgbmV3TGlzdAorZW5kCisKKworY2xhc3MgU2VxdWVuY2UK
KyAgICBkZWYgZ2V0TW9kaWZpZWRMaXN0U0g0CisgICAgICAgIHJlc3VsdCA9IEBsaXN0CisKKyAg
ICAgICAgIyBWZXJpZnkgdGhhdCB3ZSB3aWxsIG9ubHkgc2VlIGluc3RydWN0aW9ucyBhbmQgbGFi
ZWxzLgorICAgICAgICByZXN1bHQuZWFjaCB7CisgICAgICAgICAgICB8IG5vZGUgfAorICAgICAg
ICAgICAgdW5sZXNzIG5vZGUuaXNfYT8gSW5zdHJ1Y3Rpb24gb3IKKyAgICAgICAgICAgICAgICAg
ICAgbm9kZS5pc19hPyBMYWJlbCBvcgorICAgICAgICAgICAgICAgICAgICBub2RlLmlzX2E/IExv
Y2FsTGFiZWwgb3IKKyAgICAgICAgICAgICAgICAgICAgbm9kZS5pc19hPyBTa2lwCisgICAgICAg
ICAgICAgICAgcmFpc2UgIlVuZXhwZWN0ZWQgI3tub2RlLmluc3BlY3R9IGF0ICN7bm9kZS5jb2Rl
T3JpZ2lufSIKKyAgICAgICAgICAgIGVuZAorICAgICAgICB9CisKKyAgICAgICAgcmVzdWx0ID0g
c2g0TG93ZXJTaGlmdE9wcyhyZXN1bHQpCisgICAgICAgIHJlc3VsdCA9IHNoNExvd2VyU2ltcGxl
QnJhbmNoT3BzKHJlc3VsdCkKKyAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2VyTWFsZm9ybWVkQWRk
cmVzc2VzKHJlc3VsdCkgeworICAgICAgICAgICAgfCBub2RlLCBhZGRyZXNzIHwKKyAgICAgICAg
ICAgIGlmIGFkZHJlc3MuaXNfYT8gQWRkcmVzcworICAgICAgICAgICAgICAgIGNhc2Ugbm9kZS5v
cGNvZGUKKyAgICAgICAgICAgICAgICB3aGVuICJidGJ6IiwgImJ0Ym56IiwgImNiZXEiLCAiYmJl
cSIsICJiYm5lcSIsICJiYmIiLCAibG9hZGIiCisgICAgICAgICAgICAgICAgICAgICgwLi4xNSku
aW5jbHVkZT8gYWRkcmVzcy5vZmZzZXQudmFsdWUgYW5kCisgICAgICAgICAgICAgICAgICAgICAg
ICAoKG5vZGUub3BlcmFuZHNbMF0uaXNfYT8gUmVnaXN0ZXJJRCBhbmQgbm9kZS5vcGVyYW5kc1sw
XS5zaDRPcGVyYW5kID09ICJyMCIpIG9yCisgICAgICAgICAgICAgICAgICAgICAgICAgKG5vZGUu
b3BlcmFuZHNbMV0uaXNfYT8gUmVnaXN0ZXJJRCBhbmQgbm9kZS5vcGVyYW5kc1sxXS5zaDRPcGVy
YW5kID09ICJyMCIpKQorICAgICAgICAgICAgICAgIHdoZW4gImxvYWRoIgorICAgICAgICAgICAg
ICAgICAgICAoMC4uMzApLmluY2x1ZGU/IGFkZHJlc3Mub2Zmc2V0LnZhbHVlIGFuZAorICAgICAg
ICAgICAgICAgICAgICAgICAgKChub2RlLm9wZXJhbmRzWzBdLmlzX2E/IFJlZ2lzdGVySUQgYW5k
IG5vZGUub3BlcmFuZHNbMF0uc2g0T3BlcmFuZCA9PSAicjAiKSBvcgorICAgICAgICAgICAgICAg
ICAgICAgICAgIChub2RlLm9wZXJhbmRzWzFdLmlzX2E/IFJlZ2lzdGVySUQgYW5kIG5vZGUub3Bl
cmFuZHNbMV0uc2g0T3BlcmFuZCA9PSAicjAiKSkKKyAgICAgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgICAgICgwLi42MCkuaW5jbHVkZT8gYWRkcmVzcy5vZmZzZXQudmFsdWUKKyAg
ICAgICAgICAgICAgICBlbmQKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBmYWxz
ZQorICAgICAgICAgICAgZW5kCisgICAgICAgIH0KKyAgICAgICAgcmVzdWx0ID0gc2g0TG93ZXJN
YWxmb3JtZWRBZGRyZXNzZXNEb3VibGUocmVzdWx0KQorICAgICAgICByZXN1bHQgPSBzaDRMb3dl
ckRvdWJsZVNwZWNpYWxzKHJlc3VsdCkKKyAgICAgICAgcmVzdWx0ID0gc2g0TG93ZXJNaXNwbGFj
ZWRJbW1lZGlhdGVzKHJlc3VsdCkKKyAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2VyTWlzcGxhY2Vk
SW1tZWRpYXRlcyhyZXN1bHQpCisgICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlck1hbGZvcm1lZElt
bWVkaWF0ZXMocmVzdWx0LCAtMTI4Li4xMjcpCisgICAgICAgIHJlc3VsdCA9IHNoNExvd2VyTWlz
cGxhY2VkTGFiZWxzKHJlc3VsdCkKKyAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2VyTWlzcGxhY2Vk
QWRkcmVzc2VzKHJlc3VsdCkKKworICAgICAgICByZXN1bHQgPSBhc3NpZ25SZWdpc3RlcnNUb1Rl
bXBvcmFyaWVzKHJlc3VsdCwgOmdwciwgU0g0X1RNUF9HUFJTKQorICAgICAgICByZXN1bHQgPSBh
c3NpZ25SZWdpc3RlcnNUb1RlbXBvcmFyaWVzKHJlc3VsdCwgOmdwciwgU0g0X1RNUF9GUFJTKQor
CisgICAgICAgIHJldHVybiByZXN1bHQKKyAgICBlbmQKK2VuZAorCitkZWYgc2g0T3BlcmFuZHMo
b3BlcmFuZHMpCisgICAgb3BlcmFuZHMubWFwe3x2fCB2LnNoNE9wZXJhbmR9LmpvaW4oIiwgIikK
K2VuZAorCitkZWYgZW1pdFNINExvYWRDb25zdGFudChjb25zdGFudCwgb3BlcmFuZCkKKyAgICBp
ZiBjb25zdGFudCA9PSAweDQwMDAwMDAwCisgICAgICAgICMgRmlyc3RDb25zdGFudFJlZ2lzdGVy
SW5kZXggY29uc3QgaXMgb2Z0ZW4gdXNlZCAoMHg0MDAwMDAwMCkuCisgICAgICAgICMgSXQncyBt
b3JlIGVmZmljaWVudCB0byAiYnVpbGQiIHRoZSB2YWx1ZSB3aXRoIDMgb3Bjb2RlcyB3aXRob3V0
IGJyYW5jaC4KKyAgICAgICAgJGFzbS5wdXRzICJtb3YgIzY0LCAje29wZXJhbmQuc2g0T3BlcmFu
ZH0iCisgICAgICAgICRhc20ucHV0cyAic2hsbDE2ICN7b3BlcmFuZC5zaDRPcGVyYW5kfSIKKyAg
ICAgICAgJGFzbS5wdXRzICJzaGxsOCAje29wZXJhbmQuc2g0T3BlcmFuZH0iCisgICAgZWxzZQor
ICAgICAgICBjb25zdGxhYmVsID0gTG9jYWxMYWJlbC51bmlxdWUoImxvYWRjb25zdGFudCIpCisg
ICAgICAgICRhc20ucHV0cyAiLmJhbGlnbiA0IgorICAgICAgICAkYXNtLnB1dHMgIm1vdi5sIEAo
OCwgUEMpLCAje29wZXJhbmQuc2g0T3BlcmFuZH0iCisgICAgICAgICRhc20ucHV0cyAiYnJhICN7
TG9jYWxMYWJlbFJlZmVyZW5jZS5uZXcoY29kZU9yaWdpbiwgY29uc3RsYWJlbCkuYXNtTGFiZWx9
IgorICAgICAgICAkYXNtLnB1dHMgIm5vcCIKKyAgICAgICAgJGFzbS5wdXRzICJub3AiCisgICAg
ICAgICRhc20ucHV0cyAiLmxvbmcgI3tjb25zdGFudH0iCisgICAgICAgIGNvbnN0bGFiZWwubG93
ZXIoIlNINCIpCisgICAgZW5kCitlbmQKKworZGVmIGVtaXRTSDRCcmFuY2goc2g0b3Bjb2RlLCBv
cGVyYW5kKQorICAgICRhc20ucHV0cyAiI3tzaDRvcGNvZGV9IEAje29wZXJhbmQuc2g0T3BlcmFu
ZH0iCisgICAgJGFzbS5wdXRzICJub3AiCitlbmQKKworZGVmIGVtaXRTSDRTaGlmdEltbSh2YWws
IG9wZXJhbmQsIGRpcmVjdGlvbikKKyAgICB0bXAgPSB2YWwKKyAgICB3aGlsZSB0bXAgPiAwCisg
ICAgICAgIGlmIHRtcCA+PSAxNgorICAgICAgICAgICAgJGFzbS5wdXRzICJzaGwje2RpcmVjdGlv
bn0xNiAje29wZXJhbmQuc2g0T3BlcmFuZH0iCisgICAgICAgICAgICB0bXAgLT0gMTYKKyAgICAg
ICAgZWxzaWYgdG1wID49IDgKKyAgICAgICAgICAgICRhc20ucHV0cyAic2hsI3tkaXJlY3Rpb259
OCAje29wZXJhbmQuc2g0T3BlcmFuZH0iCisgICAgICAgICAgICB0bXAgLT0gOAorICAgICAgICBl
bHNpZiB0bXAgPj0gMgorICAgICAgICAgICAgJGFzbS5wdXRzICJzaGwje2RpcmVjdGlvbn0yICN7
b3BlcmFuZC5zaDRPcGVyYW5kfSIKKyAgICAgICAgICAgIHRtcCAtPSAyCisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICRhc20ucHV0cyAic2hsI3tkaXJlY3Rpb259ICN7b3BlcmFuZC5zaDRPcGVy
YW5kfSIKKyAgICAgICAgICAgIHRtcCAtPSAxCisgICAgICAgIGVuZAorICAgIGVuZAorZW5kCisK
K2RlZiBlbWl0U0g0QnJhbmNoSWZUKGxhYmVsLCBuZWcpCisgICAgc2g0b3Bjb2RlID0gbmVnID8g
ImJmIiA6ICJidCIKKyAgICAkYXNtLnB1dHMgIiN7c2g0b3Bjb2RlfSAje2xhYmVsLmFzbUxhYmVs
fSIKK2VuZAorCitkZWYgZW1pdFNINEludENvbXBhcmUoY21wT3Bjb2RlLCBvcGVyYW5kcykKKyAg
ICAkYXNtLnB1dHMgImNtcC8je2NtcE9wY29kZX0gI3tzaDRPcGVyYW5kcyhbb3BlcmFuZHNbMV0s
IG9wZXJhbmRzWzBdXSl9IgorZW5kCisKK2RlZiBlbWl0U0g0Q29uZEJyYW5jaChjbXBPcGNvZGUs
IG5lZywgb3BlcmFuZHMpCisgICAgZW1pdFNINEludENvbXBhcmUoY21wT3Bjb2RlLCBvcGVyYW5k
cykKKyAgICBlbWl0U0g0QnJhbmNoSWZUKG9wZXJhbmRzWzJdLCBuZWcpCitlbmQKKworZGVmIGVt
aXRTSDRDb21wYXJlU2V0KGNtcE9wY29kZSwgbmVnLCBvcGVyYW5kcykKKyAgICBlbWl0U0g0SW50
Q29tcGFyZShjbXBPcGNvZGUsIG9wZXJhbmRzKQorICAgICRhc20ucHV0cyAibW92dCAje29wZXJh
bmRzWzJdLnNoNE9wZXJhbmR9IgorICAgIGlmIG5lZworICAgICAgICAkYXNtLnB1dHMgImR0ICN7
b3BlcmFuZHNbMl0uc2g0T3BlcmFuZH0iCisgICAgZW5kCitlbmQKKworZGVmIGVtaXRTSDRCcmFu
Y2hJZk5hTihvcGVyYW5kcykKKyAgICByYWlzZSAiSW52YWxpZCBvcGVyYW5kcyBudW1iZXIgKCN7
b3BlcmFuZHMuc2l6ZX0pIiB1bmxlc3Mgb3BlcmFuZHMuc2l6ZSA9PSA0CisgICAgZGJsb3AgPSBv
cGVyYW5kc1swXQorICAgIGxhYmVsb3AgPSBvcGVyYW5kc1sxXQorICAgIHNjcm1hc2sgPSBvcGVy
YW5kc1syXQorICAgIHNjcmludCA9IG9wZXJhbmRzWzNdCisKKyAgICAjIElmIHdlIGRvbid0IGhh
dmUgIkUgPSBFbWF4ICsgMSIsIGl0J3Mgbm90IGEgTmFOLgorICAgIG5vdE5hTmxhYmVsID0gTG9j
YWxMYWJlbC51bmlxdWUoIm5vdG5hbiIpCisgICAgJGFzbS5wdXRzICJmY252ZHMgI3tkYmxvcC5z
aDRPcGVyYW5kfSwgZnB1bCIKKyAgICAkYXNtLnB1dHMgInN0cyBmcHVsLCAje3NjcmludC5zaDRP
cGVyYW5kfSIKKyAgICBlbWl0U0g0TG9hZENvbnN0YW50KDB4N2Y4MDAwMDAsIHNjcm1hc2spCisg
ICAgJGFzbS5wdXRzICJhbmQgI3tzaDRPcGVyYW5kcyhbc2NybWFzaywgc2NyaW50XSl9IgorICAg
ICRhc20ucHV0cyAiY21wL2VxICN7c2g0T3BlcmFuZHMoW3Njcm1hc2ssIHNjcmludF0pfSIKKyAg
ICAkYXNtLnB1dHMgImJmICN7TG9jYWxMYWJlbFJlZmVyZW5jZS5uZXcoY29kZU9yaWdpbiwgbm90
TmFObGFiZWwpLmFzbUxhYmVsfSIKKworICAgICMgSWYgd2UgaGF2ZSAiRSA9IEVtYXggKyAxIiBh
bmQgImYgIT0gMCIsIHRoZW4gaXQncyBhIE5hTi4KKyAgICAkYXNtLnB1dHMgInN0cyBmcHVsLCAj
e3NjcmludC5zaDRPcGVyYW5kfSIKKyAgICBlbWl0U0g0TG9hZENvbnN0YW50KDB4MDAzZmZmZmYs
IHNjcm1hc2spCisgICAgJGFzbS5wdXRzICJ0c3QgI3tzaDRPcGVyYW5kcyhbc2NybWFzaywgc2Ny
aW50XSl9IgorICAgICRhc20ucHV0cyAiYmYgI3tsYWJlbG9wLmFzbUxhYmVsfSIKKworICAgIG5v
dE5hTmxhYmVsLmxvd2VyKCJTSDQiKQorZW5kCisKK2RlZiBlbWl0U0g0RG91YmxlQ29uZEJyYW5j
aChjbXBPcGNvZGUsIG5lZywgb3BlcmFuZHMpCisgICAgaWYgY21wT3Bjb2RlID09ICJsdCIKKyAg
ICAgICAgaWYgKCFuZWcpCisgICAgICAgICAgICBvdXRsYWJlbCA9IExvY2FsTGFiZWwudW5pcXVl
KCJkY2JvdXQiKQorICAgICAgICAgICAgJGFzbS5wdXRzICJmY21wL2d0ICN7c2g0T3BlcmFuZHMo
W29wZXJhbmRzWzFdLCBvcGVyYW5kc1swXV0pfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAiYnQg
I3tMb2NhbExhYmVsUmVmZXJlbmNlLm5ldyhjb2RlT3JpZ2luLCBvdXRsYWJlbCkuYXNtTGFiZWx9
IgorICAgICAgICAgICAgJGFzbS5wdXRzICJmY21wL2VxICN7c2g0T3BlcmFuZHMoW29wZXJhbmRz
WzFdLCBvcGVyYW5kc1swXV0pfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAiYmYgI3tvcGVyYW5k
c1syXS5hc21MYWJlbH0iCisgICAgICAgICAgICBvdXRsYWJlbC5sb3dlcigiU0g0IikKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgJGFzbS5wdXRzICJmY21wL2d0ICN7c2g0T3BlcmFuZHMoW29w
ZXJhbmRzWzFdLCBvcGVyYW5kc1swXV0pfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAiYnQgI3tv
cGVyYW5kc1syXS5hc21MYWJlbH0iCisgICAgICAgICAgICAkYXNtLnB1dHMgImZjbXAvZXEgI3tz
aDRPcGVyYW5kcyhbb3BlcmFuZHNbMV0sIG9wZXJhbmRzWzBdXSl9IgorICAgICAgICAgICAgJGFz
bS5wdXRzICJidCAje29wZXJhbmRzWzJdLmFzbUxhYmVsfSIKKyAgICAgICAgZW5kCisgICAgZWxz
ZQorICAgICAgICAkYXNtLnB1dHMgImZjbXAvI3tjbXBPcGNvZGV9ICN7c2g0T3BlcmFuZHMoW29w
ZXJhbmRzWzFdLCBvcGVyYW5kc1swXV0pfSIKKyAgICAgICAgZW1pdFNINEJyYW5jaElmVChvcGVy
YW5kc1syXSwgbmVnKQorICAgIGVuZAorZW5kCisKK2NsYXNzIEluc3RydWN0aW9uCisgICAgZGVm
IGxvd2VyU0g0CisgICAgICAgICRhc20uY29tbWVudCBjb2RlT3JpZ2luU3RyaW5nCisgICAgICAg
IGNhc2Ugb3Bjb2RlCisgICAgICAgIHdoZW4gImFkZGkiLCAiYWRkcCIKKyAgICAgICAgICAgIGlm
IG9wZXJhbmRzLnNpemUgPT0gMworICAgICAgICAgICAgICAgIGlmIG9wZXJhbmRzWzBdLnNoNE9w
ZXJhbmQgPT0gb3BlcmFuZHNbMl0uc2g0T3BlcmFuZAorICAgICAgICAgICAgICAgICAgICAkYXNt
LnB1dHMgImFkZCAje3NoNE9wZXJhbmRzKFtvcGVyYW5kc1sxXSwgb3BlcmFuZHNbMl1dKX0iCisg
ICAgICAgICAgICAgICAgZWxzaWYgb3BlcmFuZHNbMV0uc2g0T3BlcmFuZCA9PSBvcGVyYW5kc1sy
XS5zaDRPcGVyYW5kCisgICAgICAgICAgICAgICAgICAgICRhc20ucHV0cyAiYWRkICN7c2g0T3Bl
cmFuZHMoW29wZXJhbmRzWzBdLCBvcGVyYW5kc1syXV0pfSIKKyAgICAgICAgICAgICAgICBlbHNl
CisgICAgICAgICAgICAgICAgICAgICRhc20ucHV0cyAibW92ICN7c2g0T3BlcmFuZHMoW29wZXJh
bmRzWzBdLCBvcGVyYW5kc1syXV0pfSIKKyAgICAgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJh
ZGQgI3tzaDRPcGVyYW5kcyhbb3BlcmFuZHNbMV0sIG9wZXJhbmRzWzJdXSl9IgorICAgICAgICAg
ICAgICAgIGVuZAorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICRhc20ucHV0cyAi
YWRkICN7c2g0T3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgICAgIGVuZAorICAgICAgICB3
aGVuICJzdWJpIgorICAgICAgICAgICAgcmFpc2UgIiN7b3Bjb2RlfSB3aXRoICN7b3BlcmFuZHMu
c2l6ZX0gb3BlcmFuZHMgaXMgbm90IGhhbmRsZWQgeWV0IiB1bmxlc3Mgb3BlcmFuZHMuc2l6ZSA9
PSAyCisgICAgICAgICAgICBpZiBvcGVyYW5kc1swXS5pc19hPyBJbW1lZGlhdGUKKyAgICAgICAg
ICAgICAgICAkYXNtLnB1dHMgImFkZCAje3NoNE9wZXJhbmRzKFtJbW1lZGlhdGUubmV3KGNvZGVP
cmlnaW4sIC0xICogb3BlcmFuZHNbMF0udmFsdWUpLCBvcGVyYW5kc1sxXV0pfSIKKyAgICAgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgICAgICAkYXNtLnB1dHMgInN1YiAje3NoNE9wZXJhbmRzKG9w
ZXJhbmRzKX0iCisgICAgICAgICAgICBlbmQKKyAgICAgICAgd2hlbiAibXVsaSIsICJtdWxwIgor
ICAgICAgICAgICAgJGFzbS5wdXRzICJtdWwubCAje3NoNE9wZXJhbmRzKG9wZXJhbmRzWzAuLjFd
KX0iCisgICAgICAgICAgICAkYXNtLnB1dHMgInN0cyBtYWNsLCAje29wZXJhbmRzWy0xXS5zaDRP
cGVyYW5kfSIKKyAgICAgICAgd2hlbiAibmVnaSIKKyAgICAgICAgICAgIGlmIG9wZXJhbmRzLnNp
emUgPT0gMgorICAgICAgICAgICAgICAgICRhc20ucHV0cyAibmVnICN7c2g0T3BlcmFuZHMob3Bl
cmFuZHMpfSIKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAkYXNtLnB1dHMgIm5l
ZyAje3NoNE9wZXJhbmRzKFtvcGVyYW5kc1swXSwgb3BlcmFuZHNbMF1dKX0iCisgICAgICAgICAg
ICBlbmQKKyAgICAgICAgd2hlbiAiYW5kaSIsICJvcmkiLCAieG9yaSIKKyAgICAgICAgICAgIHJh
aXNlICIje29wY29kZX0gd2l0aCAje29wZXJhbmRzLnNpemV9IG9wZXJhbmRzIGlzIG5vdCBoYW5k
bGVkIHlldCIgdW5sZXNzIG9wZXJhbmRzLnNpemUgPT0gMgorICAgICAgICAgICAgc2g0b3Bjb2Rl
ID0gb3Bjb2RlWzAuLi0yXQorICAgICAgICAgICAgJGFzbS5wdXRzICIje3NoNG9wY29kZX0gI3tz
aDRPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJzaGxseCIsICJzaGxyeCIKKyAg
ICAgICAgICAgIHJhaXNlICJVbmhhbmRsZWQgcGFyYW1ldGVycyBmb3Igb3Bjb2RlICN7b3Bjb2Rl
fSIgdW5sZXNzIG9wZXJhbmRzWzBdLmlzX2E/IEltbWVkaWF0ZQorICAgICAgICAgICAgaWYgb3Bl
cmFuZHNbMF0udmFsdWUgPT0gMQorICAgICAgICAgICAgICAgICRhc20ucHV0cyAic2hsI3tvcGNv
ZGVbMywxXX0gI3tvcGVyYW5kc1sxXS5zaDRPcGVyYW5kfSIKKyAgICAgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICAgICAkYXNtLnB1dHMgInNobCN7b3Bjb2RlWzMsMV19I3tvcGVyYW5kc1swXS52
YWx1ZX0gI3tvcGVyYW5kc1sxXS5zaDRPcGVyYW5kfSIKKyAgICAgICAgICAgIGVuZAorICAgICAg
ICB3aGVuICJzaGxkIiwgInNoYWQiCisgICAgICAgICAgICAkYXNtLnB1dHMgIiN7b3Bjb2RlfSAj
e3NoNE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4gImxvYWRkKyIKKyAgICAgICAg
ICAgICMgQXMgd2UgYXJlIGxpdHRsZSBlbmRpYW4sIHdlIGRvbid0IHVzZSAiZm1vdiBAUm0sIERS
biIgaGVyZS4KKyAgICAgICAgICAgICRhc20ucHV0cyAiZm1vdi5zICN7b3BlcmFuZHNbMF0uc2g0
T3BlcmFuZFBvc3RJbmN9LCAje29wZXJhbmRzWzFdLnNoNFNpbmdsZUxvfSIKKyAgICAgICAgICAg
ICRhc20ucHV0cyAiZm1vdi5zICN7b3BlcmFuZHNbMF0uc2g0T3BlcmFuZFBvc3RJbmN9LCAje29w
ZXJhbmRzWzFdLnNoNFNpbmdsZUhpfSIKKyAgICAgICAgd2hlbiAic3RvcmVkLSIKKyAgICAgICAg
ICAgICMgQXMgd2UgYXJlIGxpdHRsZSBlbmRpYW4sIHdlIGRvbid0IHVzZSAiZm1vdiBEUm0sIEBS
biIgaGVyZS4KKyAgICAgICAgICAgICRhc20ucHV0cyAiZm1vdi5zICN7b3BlcmFuZHNbMF0uc2g0
U2luZ2xlSGl9LCAje29wZXJhbmRzWzFdLnNoNE9wZXJhbmRQcmVEZWN9IgorICAgICAgICAgICAg
JGFzbS5wdXRzICJmbW92LnMgI3tvcGVyYW5kc1swXS5zaDRTaW5nbGVMb30sICN7b3BlcmFuZHNb
MV0uc2g0T3BlcmFuZFByZURlY30iCisgICAgICAgIHdoZW4gImNpMmQiCisgICAgICAgICAgICAk
YXNtLnB1dHMgImxkcyAje29wZXJhbmRzWzBdLnNoNE9wZXJhbmR9LCBmcHVsIgorICAgICAgICAg
ICAgJGFzbS5wdXRzICJmbG9hdCBmcHVsLCAje29wZXJhbmRzWzFdLnNoNE9wZXJhbmR9IgorICAg
ICAgICB3aGVuICJmaWkyZCIKKyAgICAgICAgICAgICRhc20ucHV0cyAibGRzICN7b3BlcmFuZHNb
MF0uc2g0T3BlcmFuZH0sIGZwdWwiCisgICAgICAgICAgICAkYXNtLnB1dHMgImZzdHMgZnB1bCwg
I3tvcGVyYW5kc1syXS5zaDRTaW5nbGVMb30iCisgICAgICAgICAgICAkYXNtLnB1dHMgImxkcyAj
e29wZXJhbmRzWzFdLnNoNE9wZXJhbmR9LCBmcHVsIgorICAgICAgICAgICAgJGFzbS5wdXRzICJm
c3RzIGZwdWwsICN7b3BlcmFuZHNbMl0uc2g0U2luZ2xlSGl9IgorICAgICAgICB3aGVuICJmZDJp
aSIKKyAgICAgICAgICAgICRhc20ucHV0cyAiZmxkcyAje29wZXJhbmRzWzBdLnNoNFNpbmdsZUxv
fSwgZnB1bCIKKyAgICAgICAgICAgICRhc20ucHV0cyAic3RzIGZwdWwsICN7b3BlcmFuZHNbMV0u
c2g0T3BlcmFuZH0iCisgICAgICAgICAgICAkYXNtLnB1dHMgImZsZHMgI3tvcGVyYW5kc1swXS5z
aDRTaW5nbGVIaX0sIGZwdWwiCisgICAgICAgICAgICAkYXNtLnB1dHMgInN0cyBmcHVsLCAje29w
ZXJhbmRzWzJdLnNoNE9wZXJhbmR9IgorICAgICAgICB3aGVuICJhZGRkIiwgInN1YmQiLCAibXVs
ZCIsICJkaXZkIgorICAgICAgICAgICAgc2g0b3Bjb2RlID0gb3Bjb2RlWzAuLi0yXQorICAgICAg
ICAgICAgJGFzbS5wdXRzICJmI3tzaDRvcGNvZGV9ICN7c2g0T3BlcmFuZHMob3BlcmFuZHMpfSIK
KyAgICAgICAgd2hlbiAiYmNkMmkiCisgICAgICAgICAgICAkYXNtLnB1dHMgImZ0cmMgI3tvcGVy
YW5kc1swXS5zaDRPcGVyYW5kfSwgZnB1bCIKKyAgICAgICAgICAgICRhc20ucHV0cyAic3RzIGZw
dWwsICN7b3BlcmFuZHNbMV0uc2g0T3BlcmFuZH0iCisgICAgICAgICAgICAkYXNtLnB1dHMgImZs
b2F0IGZwdWwsICN7U0g0X1RNUF9GUFJTWzBdLnNoNE9wZXJhbmR9IgorICAgICAgICAgICAgJGFz
bS5wdXRzICJmY21wL2VxICN7c2g0T3BlcmFuZHMoW29wZXJhbmRzWzBdLCBTSDRfVE1QX0ZQUlNb
MF1dKX0iCisgICAgICAgICAgICAkYXNtLnB1dHMgImJmICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9
IgorICAgICAgICB3aGVuICJiZG5hbiIKKyAgICAgICAgICAgIGVtaXRTSDRCcmFuY2hJZk5hTihv
cGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmRuZXEiCisgICAgICAgICAgICBlbWl0U0g0RG91Ymxl
Q29uZEJyYW5jaCgiZXEiLCB0cnVlLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmRndGVxIgor
ICAgICAgICAgICAgZW1pdFNINERvdWJsZUNvbmRCcmFuY2goImx0IiwgdHJ1ZSwgb3BlcmFuZHMp
CisgICAgICAgIHdoZW4gImJkbHQiCisgICAgICAgICAgICBlbWl0U0g0RG91YmxlQ29uZEJyYW5j
aCgibHQiLCBmYWxzZSwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImJkbHRlcSIKKyAgICAgICAg
ICAgIGVtaXRTSDREb3VibGVDb25kQnJhbmNoKCJndCIsIHRydWUsIG9wZXJhbmRzKQorICAgICAg
ICB3aGVuICJiZGd0IgorICAgICAgICAgICAgZW1pdFNINERvdWJsZUNvbmRCcmFuY2goImd0Iiwg
ZmFsc2UsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJiYWRkaW8iLCAiYnN1YmlvIgorICAgICAg
ICAgICAgcmFpc2UgIiN7b3Bjb2RlfSB3aXRoICN7b3BlcmFuZHMuc2l6ZX0gb3BlcmFuZHMgaXMg
bm90IGhhbmRsZWQgeWV0IiB1bmxlc3Mgb3BlcmFuZHMuc2l6ZSA9PSAzCisgICAgICAgICAgICAk
YXNtLnB1dHMgIiN7b3Bjb2RlWzEsM119diAje3NoNE9wZXJhbmRzKFtvcGVyYW5kc1swXSwgb3Bl
cmFuZHNbMV1dKX0iCisgICAgICAgICAgICAkYXNtLnB1dHMgImJ0ICN7b3BlcmFuZHNbMl0uYXNt
TGFiZWx9IgorICAgICAgICB3aGVuICJibXVsaW8iCisgICAgICAgICAgICAkYXNtLnB1dHMgImRt
dWxzLmwgI3tzaDRPcGVyYW5kcyhbb3BlcmFuZHNbMF0sIG9wZXJhbmRzWzFdXSl9IgorICAgICAg
ICAgICAgJGFzbS5wdXRzICJzdHMgbWFjaCwgI3tvcGVyYW5kc1stMl0uc2g0T3BlcmFuZH0iCisg
ICAgICAgICAgICAkYXNtLnB1dHMgInRzdCAje3NoNE9wZXJhbmRzKFtvcGVyYW5kc1stMl0sIG9w
ZXJhbmRzWy0yXV0pfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAic3RzIG1hY2wsICN7b3BlcmFu
ZHNbLTJdLnNoNE9wZXJhbmR9IgorICAgICAgICAgICAgJGFzbS5wdXRzICJiZiAje29wZXJhbmRz
Wy0xXS5hc21MYWJlbH0iCisgICAgICAgIHdoZW4gImJ0aXoiLCAiYnRweiIsICJidGlueiIsICJi
dHBueiIsICJidGJ6IiwgImJ0Ym56IgorICAgICAgICAgICAgaWYgb3BlcmFuZHMuc2l6ZSA9PSAz
CisgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJ0c3QgI3tzaDRPcGVyYW5kcyhbb3BlcmFuZHNb
MF0sIG9wZXJhbmRzWzFdXSl9IgorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGlm
IG9wZXJhbmRzWzBdLnNoNE9wZXJhbmQgPT0gInIwIgorICAgICAgICAgICAgICAgICAgICAkYXNt
LnB1dHMgImNtcC9lcSAjMCwgcjAiCisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
ICAgICAgICAkYXNtLnB1dHMgInRzdCAje3NoNE9wZXJhbmRzKFtvcGVyYW5kc1swXSwgb3BlcmFu
ZHNbMF1dKX0iCisgICAgICAgICAgICAgICAgZW5kCisgICAgICAgICAgICBlbmQKKyAgICAgICAg
ICAgIGVtaXRTSDRCcmFuY2hJZlQob3BlcmFuZHNbLTFdLCAob3Bjb2RlWy0yLDJdID09ICJueiIp
KQorICAgICAgICB3aGVuICJjYmVxIgorICAgICAgICAgICAgZW1pdFNINENvbXBhcmVTZXQoImVx
IiwgZmFsc2UsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJjaWVxIiwgImNwZXEiCisgICAgICAg
ICAgICBlbWl0U0g0Q29tcGFyZVNldCgiZXEiLCBmYWxzZSwgb3BlcmFuZHMpCisgICAgICAgIHdo
ZW4gImNpbmVxIiwgImNwbmVxIgorICAgICAgICAgICAgZW1pdFNINENvbXBhcmVTZXQoImVxIiwg
dHJ1ZSwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImNpYiIKKyAgICAgICAgICAgIGVtaXRTSDRD
b21wYXJlU2V0KCJocyIsIHRydWUsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJiYmVxIgorICAg
ICAgICAgICAgZW1pdFNINENvbmRCcmFuY2goImVxIiwgZmFsc2UsIG9wZXJhbmRzKQorICAgICAg
ICB3aGVuICJiYm5lcSIKKyAgICAgICAgICAgIGVtaXRTSDRDb25kQnJhbmNoKCJlcSIsIHRydWUs
IG9wZXJhbmRzKQorICAgICAgICB3aGVuICJiYmIiCisgICAgICAgICAgICBlbWl0U0g0Q29uZEJy
YW5jaCgiaHMiLCB0cnVlLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmllcSIsICJicGVxIgor
ICAgICAgICAgICAgZW1pdFNINENvbmRCcmFuY2goImVxIiwgZmFsc2UsIG9wZXJhbmRzKQorICAg
ICAgICB3aGVuICJiaW5lcSIsICJicG5lcSIKKyAgICAgICAgICAgIGVtaXRTSDRDb25kQnJhbmNo
KCJlcSIsIHRydWUsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJiaWEiLCAiYnBhIgorICAgICAg
ICAgICAgZW1pdFNINENvbmRCcmFuY2goImhpIiwgZmFsc2UsIG9wZXJhbmRzKQorICAgICAgICB3
aGVuICJiaWFlcSIsICJicGFlcSIKKyAgICAgICAgICAgIGVtaXRTSDRDb25kQnJhbmNoKCJocyIs
IGZhbHNlLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmliIiwgImJwYiIKKyAgICAgICAgICAg
IGVtaXRTSDRDb25kQnJhbmNoKCJocyIsIHRydWUsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJi
aWd0ZXEiLCAiYnBndGVxIgorICAgICAgICAgICAgZW1pdFNINENvbmRCcmFuY2goImdlIiwgZmFs
c2UsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJiaWx0IiwgImJwbHQiCisgICAgICAgICAgICBl
bWl0U0g0Q29uZEJyYW5jaCgiZ2UiLCB0cnVlLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmln
dCIsICJicGd0IgorICAgICAgICAgICAgZW1pdFNINENvbmRCcmFuY2goImd0IiwgZmFsc2UsIG9w
ZXJhbmRzKQorICAgICAgICB3aGVuICJiaWx0ZXEiLCAiYnBsdGVxIgorICAgICAgICAgICAgZW1p
dFNINENvbmRCcmFuY2goImd0IiwgdHJ1ZSwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImJzIgor
ICAgICAgICAgICAgJGFzbS5wdXRzICJjbXAvcHogI3tvcGVyYW5kc1swXS5zaDRPcGVyYW5kfSIK
KyAgICAgICAgICAgICRhc20ucHV0cyAiYmYgI3tvcGVyYW5kc1sxXS5hc21MYWJlbH0iCisgICAg
ICAgIHdoZW4gImNhbGwiCisgICAgICAgICAgICBpZiBvcGVyYW5kc1swXS5pc19hPyBMb2NhbExh
YmVsUmVmZXJlbmNlCisgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJic3IgI3tvcGVyYW5kc1sw
XS5hc21MYWJlbH0iCisgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJub3AiCisgICAgICAgICAg
ICBlbHNpZiBvcGVyYW5kc1swXS5pc19hPyBSZWdpc3RlcklEIG9yIG9wZXJhbmRzWzBdLmlzX2E/
IFNwZWNpYWxSZWdpc3RlcgorICAgICAgICAgICAgICAgIGVtaXRTSDRCcmFuY2goImpzciIsIG9w
ZXJhbmRzWzBdKQorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJhaXNlICJVbmhh
bmRsZWQgcGFyYW1ldGVycyBmb3Igb3Bjb2RlICN7b3Bjb2RlfSBhdCAje2NvZGVPcmlnaW5TdHJp
bmd9IgorICAgICAgICAgICAgZW5kCisgICAgICAgIHdoZW4gImNhbGxmIgorICAgICAgICAgICAg
JGFzbS5wdXRzICIuYmFsaWduIDQiCisgICAgICAgICAgICAkYXNtLnB1dHMgIm1vdiByMCwgI3tv
cGVyYW5kc1swXS5zaDRPcGVyYW5kfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAibW92YSBAKDE0
LCBQQyksIHIwIgorICAgICAgICAgICAgJGFzbS5wdXRzICJsZHMgcjAsIHByIgorICAgICAgICAg
ICAgJGFzbS5wdXRzICJtb3YubCBAKDYsIFBDKSwgI3tvcGVyYW5kc1sxXS5zaDRPcGVyYW5kfSIK
KyAgICAgICAgICAgICRhc20ucHV0cyAiam1wIEAje29wZXJhbmRzWzFdLnNoNE9wZXJhbmR9Igor
ICAgICAgICAgICAgJGFzbS5wdXRzICJtb3YgI3tvcGVyYW5kc1swXS5zaDRPcGVyYW5kfSwgcjAi
CisgICAgICAgICAgICAkYXNtLnB1dHMgIi5sb25nICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9Igor
ICAgICAgICB3aGVuICJqbXAiCisgICAgICAgICAgICBpZiBvcGVyYW5kc1swXS5pc19hPyBMb2Nh
bExhYmVsUmVmZXJlbmNlCisgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJicmEgI3tvcGVyYW5k
c1swXS5hc21MYWJlbH0iCisgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJub3AiCisgICAgICAg
ICAgICBlbHNpZiBvcGVyYW5kc1swXS5pc19hPyBSZWdpc3RlcklEIG9yIG9wZXJhbmRzWzBdLmlz
X2E/IFNwZWNpYWxSZWdpc3RlcgorICAgICAgICAgICAgICAgIGVtaXRTSDRCcmFuY2goImptcCIs
IG9wZXJhbmRzWzBdKQorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJhaXNlICJV
bmhhbmRsZWQgcGFyYW1ldGVycyBmb3Igb3Bjb2RlICN7b3Bjb2RlfSBhdCAje2NvZGVPcmlnaW5T
dHJpbmd9IgorICAgICAgICAgICAgZW5kCisgICAgICAgIHdoZW4gImptcGYiCisgICAgICAgICAg
ICAkYXNtLnB1dHMgIi5iYWxpZ24gNCIKKyAgICAgICAgICAgICRhc20ucHV0cyAibW92LmwgQCg4
LCBQQyksICN7b3BlcmFuZHNbMF0uc2g0T3BlcmFuZH0iCisgICAgICAgICAgICAkYXNtLnB1dHMg
ImptcCBAI3tvcGVyYW5kc1swXS5zaDRPcGVyYW5kfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAi
bm9wIgorICAgICAgICAgICAgJGFzbS5wdXRzICJub3AiCisgICAgICAgICAgICAkYXNtLnB1dHMg
Ii5sb25nICN7b3BlcmFuZHNbMV0uYXNtTGFiZWx9IgorICAgICAgICB3aGVuICJyZXQiCisgICAg
ICAgICAgICAkYXNtLnB1dHMgInJ0cyIKKyAgICAgICAgICAgICRhc20ucHV0cyAibm9wIgorICAg
ICAgICB3aGVuICJsb2FkYiIKKyAgICAgICAgICAgICRhc20ucHV0cyAibW92LmIgI3tzaDRPcGVy
YW5kcyhvcGVyYW5kcyl9IgorICAgICAgICAgICAgJGFzbS5wdXRzICJleHR1LmIgI3tzaDRPcGVy
YW5kcyhbb3BlcmFuZHNbMV0sIG9wZXJhbmRzWzFdXSl9IgorICAgICAgICB3aGVuICJsb2FkaCIK
KyAgICAgICAgICAgICRhc20ucHV0cyAibW92LncgI3tzaDRPcGVyYW5kcyhvcGVyYW5kcyl9Igor
ICAgICAgICAgICAgJGFzbS5wdXRzICJleHR1LncgI3tzaDRPcGVyYW5kcyhbb3BlcmFuZHNbMV0s
IG9wZXJhbmRzWzFdXSl9IgorICAgICAgICB3aGVuICJsb2FkaSIsICJsb2FkaXMiLCAibG9hZHAi
LCAic3RvcmVpIiwgInN0b3JlcCIKKyAgICAgICAgICAgICRhc20ucHV0cyAibW92LmwgI3tzaDRP
cGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJtb3ZlIgorICAgICAgICAgICAgaWYg
b3BlcmFuZHNbMF0uaXNfYT8gSW1tZWRpYXRlIGFuZCAob3BlcmFuZHNbMF0udmFsdWUgPCAtMTI4
IG9yIG9wZXJhbmRzWzBdLnZhbHVlID4gMTI3KQorICAgICAgICAgICAgICAgIGVtaXRTSDRMb2Fk
Q29uc3RhbnQob3BlcmFuZHNbMF0udmFsdWUsIG9wZXJhbmRzWzFdKQorICAgICAgICAgICAgZWxz
aWYgb3BlcmFuZHNbMF0uaXNfYT8gTGFiZWxSZWZlcmVuY2UKKyAgICAgICAgICAgICAgICBlbWl0
U0g0TG9hZENvbnN0YW50KG9wZXJhbmRzWzBdLmFzbUxhYmVsLCBvcGVyYW5kc1sxXSkKKyAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAkYXNtLnB1dHMgIm1vdiAje3NoNE9wZXJhbmRz
KG9wZXJhbmRzKX0iCisgICAgICAgICAgICBlbmQKKyAgICAgICAgd2hlbiAibGVhcCIKKyAgICAg
ICAgICAgIGlmIG9wZXJhbmRzWzBdLmlzX2E/IEJhc2VJbmRleAorICAgICAgICAgICAgICAgIGJp
b3AgPSBvcGVyYW5kc1swXQorICAgICAgICAgICAgICAgIGlmIGJpb3Auc2NhbGUgPiAwCisgICAg
ICAgICAgICAgICAgICAgICRhc20ucHV0cyAibW92ICN7c2g0T3BlcmFuZHMoW2Jpb3AuaW5kZXgs
IG9wZXJhbmRzWzFdXSl9IgorICAgICAgICAgICAgICAgICAgICBpZiBiaW9wLnNjYWxlU2hpZnQg
PiAwCisgICAgICAgICAgICAgICAgICAgICAgICBlbWl0U0g0U2hpZnRJbW0oYmlvcC5zY2FsZVNo
aWZ0LCBvcGVyYW5kc1sxXSwgImwiKQorICAgICAgICAgICAgICAgICAgICBlbmQKKyAgICAgICAg
ICAgICAgICAgICAgJGFzbS5wdXRzICJhZGQgI3tzaDRPcGVyYW5kcyhbYmlvcC5iYXNlLCBvcGVy
YW5kc1sxXV0pfSIKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICRh
c20ucHV0cyAibW92ICN7c2g0T3BlcmFuZHMoW2Jpb3AuYmFzZSwgb3BlcmFuZHNbMV1dKX0iCisg
ICAgICAgICAgICAgICAgZW5kCisgICAgICAgICAgICAgICAgaWYgYmlvcC5vZmZzZXQudmFsdWUg
IT0gMAorICAgICAgICAgICAgICAgICAgICAkYXNtLnB1dHMgImFkZCAje3NoNE9wZXJhbmRzKFti
aW9wLm9mZnNldCwgb3BlcmFuZHNbMV1dKX0iCisgICAgICAgICAgICAgICAgZW5kCisgICAgICAg
ICAgICBlbHNpZiBvcGVyYW5kc1swXS5pc19hPyBBZGRyZXNzCisgICAgICAgICAgICAgICAgaWYg
b3BlcmFuZHNbMF0uYmFzZSAhPSBvcGVyYW5kc1sxXQorICAgICAgICAgICAgICAgICAgICAkYXNt
LnB1dHMgIm1vdiAje3NoNE9wZXJhbmRzKFtvcGVyYW5kc1swXS5iYXNlLCBvcGVyYW5kc1sxXV0p
fSIKKyAgICAgICAgICAgICAgICBlbmQKKyAgICAgICAgICAgICAgICBpZiBvcGVyYW5kc1swXS5v
ZmZzZXQudmFsdWUgIT0gMAorICAgICAgICAgICAgICAgICAgICAkYXNtLnB1dHMgImFkZCAje3No
NE9wZXJhbmRzKFtvcGVyYW5kc1swXS5vZmZzZXQsIG9wZXJhbmRzWzFdXSl9IgorICAgICAgICAg
ICAgICAgIGVuZAorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJhaXNlICJVbmhh
bmRsZWQgcGFyYW1ldGVycyBmb3Igb3Bjb2RlICN7b3Bjb2RlfSBhdCAje2NvZGVPcmlnaW5TdHJp
bmd9IgorICAgICAgICAgICAgZW5kCisgICAgICAgIHdoZW4gImxkc3ByIgorICAgICAgICAgICAg
JGFzbS5wdXRzICJsZHMgI3tzaDRPcGVyYW5kcyhvcGVyYW5kcyl9LCBwciIKKyAgICAgICAgd2hl
biAic3RzcHIiCisgICAgICAgICAgICAkYXNtLnB1dHMgInN0cyBwciwgI3tzaDRPcGVyYW5kcyhv
cGVyYW5kcyl9IgorICAgICAgICB3aGVuICJicmVhayIKKyAgICAgICAgICAgICMgVGhpcyBzcGVj
aWFsIG9wY29kZSBhbHdheXMgZ2VuZXJhdGVzIGFuIGlsbGVnYWwgaW5zdHJ1Y3Rpb24gZXhjZXB0
aW9uLgorICAgICAgICAgICAgJGFzbS5wdXRzICIud29yZCAweGZmZmQiCisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIHJhaXNlICJVbmhhbmRsZWQgb3Bjb2RlICN7b3Bjb2RlfSBhdCAje2NvZGVP
cmlnaW5TdHJpbmd9IgorICAgICAgICBlbmQKKyAgICBlbmQKK2VuZAorCkluZGV4OiBTb3VyY2Uv
V1RGL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL0NoYW5nZUxvZwkocmV2aXNp
b24gMTQ3MjAxKQorKysgU291cmNlL1dURi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMSwxMiBAQAorMjAxMy0wMy0yOSAgSnVsaWVuIEJyaWFuY2VhdSAgIDxqYnJpYW5jZWF1QG5k
cy5jb20+CisKKyAgICAgICAgTExJbnQgU0g0IGJhY2tlbmQgaW1wbGVtZW50YXRpb24KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMjg4NgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL1BsYXRmb3Jt
Lmg6CisKIDIwMTMtMDMtMjcgIFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dhQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgU2V0IFdURl9BUk1fQVJDSF9WRVJTSU9OIHRvIGNvcnJlY3QgdmFsdWUgd2hl
biB1c2VkIHdpdGggTVNWQwpJbmRleDogU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCShyZXZpc2lvbiAxNDcyMDApCisrKyBT
b3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCSh3b3JraW5nIGNvcHkpCkBAIC03ODgsNyArNzg4LDcg
QEAKICAgICAmJiBFTkFCTEUoSklUKSBcCiAgICAgJiYgKE9TKERBUldJTikgfHwgT1MoTElOVVgp
KSBcCiAgICAgJiYgKFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oSU9TKSB8fCBQTEFURk9STShH
VEspIHx8IFBMQVRGT1JNKFFUKSkgXAotICAgICYmIChDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KSB8
fCBDUFUoQVJNX1RIVU1CMikgfHwgQ1BVKEFSTV9UUkFESVRJT05BTCkgfHwgQ1BVKE1JUFMpKQor
ICAgICYmIChDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KSB8fCBDUFUoQVJNX1RIVU1CMikgfHwgQ1BV
KEFSTV9UUkFESVRJT05BTCkgfHwgQ1BVKE1JUFMpIHx8IENQVShTSDQpKQogI2RlZmluZSBFTkFC
TEVfTExJTlQgMQogI2VuZGlmCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>195893</attachid>
            <date>2013-03-31 04:17:57 -0700</date>
            <delta_ts>2013-03-31 13:47:44 -0700</delta_ts>
            <desc>SH4 LLint backend implementation using risc.rb (3)</desc>
            <filename>sh4-llint-backend-impl-using-risc_3.patch</filename>
            <type>text/plain</type>
            <size>37840</size>
            <attacher name="Julien Brianceau">jbriance</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTQ3Mjg1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBA
CisyMDEzLTAzLTMxICBKdWxpZW4gQnJpYW5jZWF1ICA8amJyaWFuY2VhdUBuZHMuY29tPgorCisg
ICAgICAgIExMSW50IFNINCBiYWNrZW5kIGltcGxlbWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTI4ODYKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGRmZy9ERkdPcGVyYXRpb25zLmNwcDoK
KyAgICAgICAgKEpTQyk6CisgICAgICAgICogaml0L0pJVFN0dWJzLmNwcDoKKyAgICAgICAgKiBs
bGludC9MTEludE9mZmxpbmVBc21Db25maWcuaDoKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbElu
dGVycHJldGVyLmFzbToKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQu
YXNtOgorICAgICAgICAqIG9mZmxpbmVhc20vYmFja2VuZHMucmI6CisgICAgICAgICogb2ZmbGlu
ZWFzbS9pbnN0cnVjdGlvbnMucmI6CisgICAgICAgICogb2ZmbGluZWFzbS9zaDQucmI6IEFkZGVk
LgorCiAyMDEzLTAzLTMwICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+
CiAKICAgICAgICAgTW92ZSBSZWdpb24gaW50byBpdHMgb3duIGhlYWRlcgpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCShyZXZpc2lvbiAxNDcyODUp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xNzUyLDYgKzE3NTIsMTggQEAgU1lNQk9MX1NUUklORyhnZXRIb3N0Q2FsbFJl
dHVyblZhbHVlKSAiOgogICAgICJtb3ZlICRhMCwgJHMwIiAiXG4iCiAgICAgImIgIiBMT0NBTF9S
RUZFUkVOQ0UoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZVdpdGhFeGVjU3RhdGUpICJcbiIKICk7Cisj
ZWxpZiBDT01QSUxFUihHQ0MpICYmIENQVShTSDQpCithc20oCisiLnRleHQiICJcbiIKKyIuZ2xv
YmwgIiBTWU1CT0xfU1RSSU5HKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICJcbiIKK0hJREVfU1lN
Qk9MKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICJcbiIKK1NZTUJPTF9TVFJJTkcoZ2V0SG9zdENh
bGxSZXR1cm5WYWx1ZSkgIjoiICJcbiIKKyAgICAiYWRkICMtNDAsIHIxNCIgIlxuIgorICAgICJt
b3YubCBAcjE0LCByMTQiICJcbiIKKyAgICAibW92IHIxNCwgcjQiICJcbiIKKyAgICAiYnJhICIg
TE9DQUxfUkVGRVJFTkNFKGdldEhvc3RDYWxsUmV0dXJuVmFsdWVXaXRoRXhlY1N0YXRlKSAiXG4i
CisgICAgIm5vcCIgIlxuIgorKTsKICNlbmRpZgogCiBleHRlcm4gIkMiIEVuY29kZWRKU1ZhbHVl
IEhPU1RfQ0FMTF9SRVRVUk5fVkFMVUVfT1BUSU9OIGdldEhvc3RDYWxsUmV0dXJuVmFsdWVXaXRo
RXhlY1N0YXRlKEV4ZWNTdGF0ZSogZXhlYykKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUU3R1YnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUU3R1YnMuY3BwCShyZXZpc2lvbiAxNDcyODUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVFN0dWJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIyLDYgKzMyMiw5IEBAIFNZTUJP
TF9TVFJJTkcoY3RpVHJhbXBvbGluZSkgIjoiICJcbiIKICAgICAiYWRkICMxMiwgcjE1IiAiXG4i
CiAgICAgInJ0cyIgIlxuIgogICAgICJub3AiICJcbiIKKyIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5H
KGN0aVRyYW1wb2xpbmVFbmQpICJcbiIKK0hJREVfU1lNQk9MKGN0aVRyYW1wb2xpbmVFbmQpICJc
biIKK1NZTUJPTF9TVFJJTkcoY3RpVHJhbXBvbGluZUVuZCkgIjoiICJcbiIKICk7CiAKIGFzbSB2
b2xhdGlsZSAoCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRPZmZsaW5l
QXNtQ29uZmlnLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xM
SW50T2ZmbGluZUFzbUNvbmZpZy5oCShyZXZpc2lvbiAxNDcyODUpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTExJbnRPZmZsaW5lQXNtQ29uZmlnLmgJKHdvcmtpbmcgY29weSkKQEAg
LTQxLDYgKzQxLDcgQEAKICNkZWZpbmUgT0ZGTElORV9BU01fWDg2XzY0IDAKICNkZWZpbmUgT0ZG
TElORV9BU01fQVJNdjdzIDAKICNkZWZpbmUgT0ZGTElORV9BU01fTUlQUyAwCisjZGVmaW5lIE9G
RkxJTkVfQVNNX1NINCAwCiAKICNlbHNlIC8vICFFTkFCTEUoTExJTlRfQ19MT09QKQogCkBAIC04
OSw2ICs5MCwxMiBAQAogI2RlZmluZSBPRkZMSU5FX0FTTV9NSVBTIDAKICNlbmRpZgogCisjaWYg
Q1BVKFNINCkKKyNkZWZpbmUgT0ZGTElORV9BU01fU0g0IDEKKyNlbHNlCisjZGVmaW5lIE9GRkxJ
TkVfQVNNX1NINCAwCisjZW5kaWYKKwogI2VuZGlmIC8vICFFTkFCTEUoTExJTlRfQ19MT09QKQog
CiAjaWYgVVNFKEpTVkFMVUU2NCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
b3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCShyZXZpc2lvbiAxNDcy
ODUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMy
XzY0LmFzbQkod29ya2luZyBjb3B5KQpAQCAtMTEzLDcgKzExMyw3IEBAIG1hY3JvIGNDYWxsMihm
dW5jdGlvbiwgYXJnMSwgYXJnMikKICAgICAgICAgcG9rZSBhcmcxLCAwCiAgICAgICAgIHBva2Ug
YXJnMiwgMQogICAgICAgICBjYWxsIGZ1bmN0aW9uCi0gICAgZWxzaWYgTUlQUworICAgIGVsc2lm
IE1JUFMgb3IgU0g0CiAgICAgICAgIG1vdmUgYXJnMSwgYTAKICAgICAgICAgbW92ZSBhcmcyLCBh
MQogICAgICAgICBjYWxsIGZ1bmN0aW9uCkBAIC0xMzgsNyArMTM4LDcgQEAgbWFjcm8gY0NhbGw0
KGZ1bmN0aW9uLCBhcmcxLCBhcmcyLCBhcmczLAogICAgICAgICBwb2tlIGFyZzMsIDIKICAgICAg
ICAgcG9rZSBhcmc0LCAzCiAgICAgICAgIGNhbGwgZnVuY3Rpb24KLSAgICBlbHNpZiBNSVBTCisg
ICAgZWxzaWYgTUlQUyBvciBTSDQKICAgICAgICAgbW92ZSBhcmcxLCBhMAogICAgICAgICBtb3Zl
IGFyZzIsIGExCiAgICAgICAgIG1vdmUgYXJnMywgYTIKQEAgLTE5MTMsNiArMTkxMywxOSBAQCBt
YWNybyBuYXRpdmVDYWxsVHJhbXBvbGluZShleGVjdXRhYmxlT2ZmCiAgICAgICAgIGNhbGwgZXhl
Y3V0YWJsZU9mZnNldFRvRnVuY3Rpb25bdDFdCiAgICAgICAgIHJlc3RvcmVSZXR1cm5BZGRyZXNz
QmVmb3JlUmV0dXJuKHQzKQogICAgICAgICBsb2FkcCBKSVRTdGFja0ZyYW1lOjpnbG9iYWxEYXRh
W3NwXSwgdDMKKyAgICBlbHNpZiBTSDQKKyAgICAgICAgbG9hZHAgSklUU3RhY2tGcmFtZTo6Z2xv
YmFsRGF0YVtzcF0sIHQzCisgICAgICAgIHN0b3JlcCBjZnIsIEpTR2xvYmFsRGF0YTo6dG9wQ2Fs
bEZyYW1lW3QzXQorICAgICAgICBtb3ZlIHQwLCB0MgorICAgICAgICBwcmVzZXJ2ZVJldHVybkFk
ZHJlc3NBZnRlckNhbGwodDMpCisgICAgICAgIHN0b3JlcCB0MywgUmV0dXJuUENbY2ZyXQorICAg
ICAgICBtb3ZlIGNmciwgdDAKKyAgICAgICAgbG9hZGkgQ2FsbGVlICsgUGF5bG9hZE9mZnNldFtj
ZnJdLCB0MQorICAgICAgICBsb2FkcCBKU0Z1bmN0aW9uOjptX2V4ZWN1dGFibGVbdDFdLCB0MQor
ICAgICAgICBtb3ZlIHQyLCBjZnIKKyAgICAgICAgY2FsbCBleGVjdXRhYmxlT2Zmc2V0VG9GdW5j
dGlvblt0MV0KKyAgICAgICAgcmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4odDMpCisg
ICAgICAgIGxvYWRwIEpJVFN0YWNrRnJhbWU6Omdsb2JhbERhdGFbc3BdLCB0MwogICAgIGVsc2lm
IENfTE9PUAogICAgICAgICBsb2FkcCBKSVRTdGFja0ZyYW1lOjpnbG9iYWxEYXRhW3NwXSwgdDMK
ICAgICAgICAgc3RvcmVwIGNmciwgSlNHbG9iYWxEYXRhOjp0b3BDYWxsRnJhbWVbdDNdCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0
ZXIuYXNtCShyZXZpc2lvbiAxNDcyODUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TG93TGV2ZWxJbnRlcnByZXRlci5hc20JKHdvcmtpbmcgY29weSkKQEAgLTE4NSw2ICsxODUsOCBA
QCBtYWNybyBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwoZGVzCiAgICAgaWYgQ19MT09Q
IG9yIEFSTSBvciBBUk12NyBvciBBUk12N19UUkFESVRJT05BTCBvciBNSVBTCiAgICAgICAgICMg
SW4gQ19MT09QIGNhc2UsIHdlJ3JlIG9ubHkgcHJlc2VydmluZyB0aGUgYnl0ZWNvZGUgdlBDLgog
ICAgICAgICBtb3ZlIGxyLCBkZXN0aW5hdGlvblJlZ2lzdGVyCisgICAgZWxzaWYgU0g0CisgICAg
ICAgIHN0c3ByIGRlc3RpbmF0aW9uUmVnaXN0ZXIKICAgICBlbHNpZiBYODYgb3IgWDg2XzY0CiAg
ICAgICAgIHBvcCBkZXN0aW5hdGlvblJlZ2lzdGVyCiAgICAgZWxzZQpAQCAtMTk2LDYgKzE5OCw4
IEBAIG1hY3JvIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKHMKICAgICBpZiBDX0xP
T1Agb3IgQVJNIG9yIEFSTXY3IG9yIEFSTXY3X1RSQURJVElPTkFMIG9yIE1JUFMKICAgICAgICAg
IyBJbiBDX0xPT1AgY2FzZSwgd2UncmUgb25seSByZXN0b3JpbmcgdGhlIGJ5dGVjb2RlIHZQQy4K
ICAgICAgICAgbW92ZSBzb3VyY2VSZWdpc3RlciwgbHIKKyAgICBlbHNpZiBTSDQKKyAgICAgICAg
bGRzcHIgc291cmNlUmVnaXN0ZXIKICAgICBlbHNpZiBYODYgb3IgWDg2XzY0CiAgICAgICAgIHB1
c2ggc291cmNlUmVnaXN0ZXIKICAgICBlbHNlCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
b2ZmbGluZWFzbS9iYWNrZW5kcy5yYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvb2ZmbGluZWFzbS9iYWNrZW5kcy5yYgkocmV2aXNpb24gMTQ3Mjg1KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYmFja2VuZHMucmIJKHdvcmtpbmcgY29weSkKQEAgLTI2
LDYgKzI2LDcgQEAgcmVxdWlyZSAiYXJtIgogcmVxdWlyZSAiYXN0IgogcmVxdWlyZSAieDg2Igog
cmVxdWlyZSAibWlwcyIKK3JlcXVpcmUgInNoNCIKIHJlcXVpcmUgImNsb29wIgogCiBCQUNLRU5E
UyA9CkBAIC0zNiw2ICszNyw3IEBAIEJBQ0tFTkRTID0KICAgICAgIkFSTXY3IiwKICAgICAgIkFS
TXY3X1RSQURJVElPTkFMIiwKICAgICAgIk1JUFMiLAorICAgICAiU0g0IiwKICAgICAgIkNfTE9P
UCIKICAgICBdCiAKQEAgLTUyLDYgKzU0LDcgQEAgV09SS0lOR19CQUNLRU5EUyA9CiAgICAgICJB
Uk12NyIsCiAgICAgICJBUk12N19UUkFESVRJT05BTCIsCiAgICAgICJNSVBTIiwKKyAgICAgIlNI
NCIsCiAgICAgICJDX0xPT1AiCiAgICAgXQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
b2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL29mZmxpbmVhc20vaW5zdHJ1Y3Rpb25zLnJiCShyZXZpc2lvbiAxNDcyODUpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmIJKHdvcmtpbmcg
Y29weSkKQEAgLTI3NSw2ICsyNzUsMjEgQEAgTUlQU19JTlNUUlVDVElPTlMgPQogICAgICJwaWNo
ZHJyYSIKICAgICBdCiAKK1NINF9JTlNUUlVDVElPTlMgPQorICAgIFsKKyAgICAic2hsbHgiLAor
ICAgICJzaGxyeCIsCisgICAgInNobGQiLAorICAgICJzaGFkIiwKKyAgICAiYmRuYW4iLAorICAg
ICJsb2FkZCsiLAorICAgICJzdG9yZWQtIiwKKyAgICAibGRzcHIiLAorICAgICJzdHNwciIsCisg
ICAgImNhbGxmIiwKKyAgICAiam1wZiIKKyAgICBdCisKIENYWF9JTlNUUlVDVElPTlMgPQogICAg
IFsKICAgICAgImNsb29wQ3Jhc2giLCAgICAgICAgICAgIyBubyBvcGVyYW5kcwpAQCAtMjkxLDcg
KzMwNiw3IEBAIENYWF9JTlNUUlVDVElPTlMgPQogICAgICAiY2xvb3BEbyIsICAgICAgICAgICAg
ICAjIG5vIG9wZXJhbmRzCiAgICAgXQogCi1JTlNUUlVDVElPTlMgPSBNQUNST19JTlNUUlVDVElP
TlMgKyBYODZfSU5TVFJVQ1RJT05TICsgQVJNX0lOU1RSVUNUSU9OUyArIE1JUFNfSU5TVFJVQ1RJ
T05TICsgQ1hYX0lOU1RSVUNUSU9OUworSU5TVFJVQ1RJT05TID0gTUFDUk9fSU5TVFJVQ1RJT05T
ICsgWDg2X0lOU1RSVUNUSU9OUyArIEFSTV9JTlNUUlVDVElPTlMgKyBNSVBTX0lOU1RSVUNUSU9O
UyArIFNINF9JTlNUUlVDVElPTlMgKyBDWFhfSU5TVFJVQ1RJT05TCiAKIElOU1RSVUNUSU9OX1BB
VFRFUk4gPSBSZWdleHAubmV3KCdcXEEoKCcgKyBJTlNUUlVDVElPTlMuam9pbignKXwoJykgKyAn
KSlcXFonKQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9zaDQucmIK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vc2g0LnJiCShy
ZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vc2g0LnJiCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDc5MiBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTMgQ2lzY28gU3lz
dGVtcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIENJU0NPIFNZU1RFTVMsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyMgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyMgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIENJU0NPIFNZU1RFTVMsIElOQy4gT1IgSVRTCisjIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorIyBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisjIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorIyBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisjIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMg
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKworcmVxdWlyZSAncmlzYycKKworY2xhc3MgTm9kZQorICAgIGRlZiBzaDRT
aW5nbGVIaQorICAgICAgICBkb3VibGVPcGVyYW5kID0gc2g0T3BlcmFuZAorICAgICAgICByYWlz
ZSAiQm9ndXMgcmVnaXN0ZXIgbmFtZSAje2RvdWJsZU9wZXJhbmR9IiB1bmxlc3MgZG91YmxlT3Bl
cmFuZCA9fiAvXmRyLworICAgICAgICAiZnIiICsgKCR+LnBvc3RfbWF0Y2gudG9faSkudG9fcwor
ICAgIGVuZAorICAgIGRlZiBzaDRTaW5nbGVMbworICAgICAgICBkb3VibGVPcGVyYW5kID0gc2g0
T3BlcmFuZAorICAgICAgICByYWlzZSAiQm9ndXMgcmVnaXN0ZXIgbmFtZSAje2RvdWJsZU9wZXJh
bmR9IiB1bmxlc3MgZG91YmxlT3BlcmFuZCA9fiAvXmRyLworICAgICAgICAiZnIiICsgKCR+LnBv
c3RfbWF0Y2gudG9faSArIDEpLnRvX3MKKyAgICBlbmQKK2VuZAorCitjbGFzcyBTcGVjaWFsUmVn
aXN0ZXIgPCBOb0NoaWxkcmVuCisgICAgZGVmIHNoNE9wZXJhbmQKKyAgICAgICAgQG5hbWUKKyAg
ICBlbmQKKworICAgIGRlZiBkdW1wCisgICAgICAgIEBuYW1lCisgICAgZW5kCisKKyAgICBkZWYg
cmVnaXN0ZXI/CisgICAgICAgIHRydWUKKyAgICBlbmQKK2VuZAorCitTSDRfVE1QX0dQUlMgPSBb
IFNwZWNpYWxSZWdpc3Rlci5uZXcoInIzIiksIFNwZWNpYWxSZWdpc3Rlci5uZXcoInIxMSIpLCBT
cGVjaWFsUmVnaXN0ZXIubmV3KCJyMTMiKSBdCitTSDRfVE1QX0ZQUlMgPSBbIFNwZWNpYWxSZWdp
c3Rlci5uZXcoImRyMTAiKSBdCisKK2NsYXNzIFJlZ2lzdGVySUQKKyAgICBkZWYgc2g0T3BlcmFu
ZAorICAgICAgICBjYXNlIG5hbWUKKyAgICAgICAgd2hlbiAiYTAiCisgICAgICAgICAgICAicjQi
CisgICAgICAgIHdoZW4gImExIgorICAgICAgICAgICAgInI1IgorICAgICAgICB3aGVuICJ0MCIK
KyAgICAgICAgICAgICJyMCIKKyAgICAgICAgd2hlbiAidDEiCisgICAgICAgICAgICAicjEiCisg
ICAgICAgIHdoZW4gInQyIgorICAgICAgICAgICAgInIyIgorICAgICAgICB3aGVuICJ0MyIKKyAg
ICAgICAgICAgICJyMTAiCisgICAgICAgIHdoZW4gInQ0IgorICAgICAgICAgICAgInI2IgorICAg
ICAgICB3aGVuICJjZnIiCisgICAgICAgICAgICAicjE0IgorICAgICAgICB3aGVuICJzcCIKKyAg
ICAgICAgICAgICJyMTUiCisgICAgICAgIHdoZW4gImxyIgorICAgICAgICAgICAgInByIgorICAg
ICAgICBlbHNlCisgICAgICAgICAgICByYWlzZSAiQmFkIHJlZ2lzdGVyICN7bmFtZX0gZm9yIFNI
NCBhdCAje2NvZGVPcmlnaW5TdHJpbmd9IgorICAgICAgICBlbmQKKyAgICBlbmQKK2VuZAorCitj
bGFzcyBGUFJlZ2lzdGVySUQKKyAgICBkZWYgc2g0T3BlcmFuZAorICAgICAgICBjYXNlIG5hbWUK
KyAgICAgICAgd2hlbiAiZnQwIiwgImZyIgorICAgICAgICAgICAgImRyMCIKKyAgICAgICAgd2hl
biAiZnQxIgorICAgICAgICAgICAgImRyMiIKKyAgICAgICAgd2hlbiAiZnQyIgorICAgICAgICAg
ICAgImRyNCIKKyAgICAgICAgd2hlbiAiZnQzIgorICAgICAgICAgICAgImRyNiIKKyAgICAgICAg
d2hlbiAiZnQ0IgorICAgICAgICAgICAgImRyOCIKKyAgICAgICAgd2hlbiAiZmEwIgorICAgICAg
ICAgICAgImRyMTIiCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJhaXNlICJCYWQgcmVnaXN0
ZXIgI3tuYW1lfSBmb3IgU0g0IGF0ICN7Y29kZU9yaWdpblN0cmluZ30iCisgICAgICAgIGVuZAor
ICAgIGVuZAorZW5kCisKK2NsYXNzIEltbWVkaWF0ZQorICAgIGRlZiBzaDRPcGVyYW5kCisgICAg
ICAgIHJhaXNlICJJbnZhbGlkIGltbWVkaWF0ZSAje3ZhbHVlfSBhdCAje2NvZGVPcmlnaW5TdHJp
bmd9IiBpZiB2YWx1ZSA8IC0xMjggb3IgdmFsdWUgPiAxMjcKKyAgICAgICAgIiMje3ZhbHVlfSIK
KyAgICBlbmQKK2VuZAorCitjbGFzcyBBZGRyZXNzCisgICAgZGVmIHNoNE9wZXJhbmQKKyAgICAg
ICAgcmFpc2UgIkJhZCBvZmZzZXQgI3tvZmZzZXQudmFsdWV9IGF0ICN7Y29kZU9yaWdpblN0cmlu
Z30iIGlmIG9mZnNldC52YWx1ZSA8IDAgb3Igb2Zmc2V0LnZhbHVlID4gNjAKKyAgICAgICAgaWYg
b2Zmc2V0LnZhbHVlID09IDAKKyAgICAgICAgICAgICJAI3tiYXNlLnNoNE9wZXJhbmR9IgorICAg
ICAgICBlbHNlCisgICAgICAgICAgICAiQCgje29mZnNldC52YWx1ZX0sICN7YmFzZS5zaDRPcGVy
YW5kfSkiCisgICAgICAgIGVuZAorICAgIGVuZAorCisgICAgZGVmIHNoNE9wZXJhbmRQb3N0SW5j
CisgICAgICAgIHJhaXNlICJCYWQgb2Zmc2V0ICN7b2Zmc2V0LnZhbHVlfSBmb3IgcG9zdCBpbmMg
YXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIgdW5sZXNzIG9mZnNldC52YWx1ZSA9PSAwCisgICAgICAg
ICJAI3tiYXNlLnNoNE9wZXJhbmR9KyIKKyAgICBlbmQKKworICAgIGRlZiBzaDRPcGVyYW5kUHJl
RGVjCisgICAgICAgIHJhaXNlICJCYWQgb2Zmc2V0ICN7b2Zmc2V0LnZhbHVlfSBmb3IgcHJlIGRl
YyBhdCAje2NvZGVPcmlnaW5TdHJpbmd9IiB1bmxlc3Mgb2Zmc2V0LnZhbHVlID09IDAKKyAgICAg
ICAgIkAtI3tiYXNlLnNoNE9wZXJhbmR9IgorICAgIGVuZAorZW5kCisKK2NsYXNzIEJhc2VJbmRl
eAorICAgIGRlZiBzaDRPcGVyYW5kCisgICAgICAgIHJhaXNlICJVbmNvbnZlcnRlZCBiYXNlIGlu
ZGV4IGF0ICN7Y29kZU9yaWdpblN0cmluZ30iCisgICAgZW5kCitlbmQKKworY2xhc3MgQWJzb2x1
dGVBZGRyZXNzCisgICAgZGVmIHNoNE9wZXJhbmQKKyAgICAgICAgcmFpc2UgIlVuY29udmVydGVk
IGFic29sdXRlIGFkZHJlc3MgYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIKKyAgICBlbmQKK2VuZAor
CisKKyMKKyMgTG93ZXJpbmcgb2Ygc2hpZnQgb3BzIGZvciBTSDQuCisjCisKK2RlZiBzaDRMb3dl
clNoaWZ0T3BzKGxpc3QpCisgICAgbmV3TGlzdCA9IFtdCisgICAgbGlzdC5lYWNoIHsKKyAgICAg
ICAgfCBub2RlIHwKKyAgICAgICAgaWYgbm9kZS5pc19hPyBJbnN0cnVjdGlvbgorICAgICAgICAg
ICAgY2FzZSBub2RlLm9wY29kZQorICAgICAgICAgICAgd2hlbiAidWxzaGlmdGkiLCAidWxzaGlm
dHAiLCAidXJzaGlmdGkiLCAidXJzaGlmdHAiLCAibHNoaWZ0aSIsICJsc2hpZnRwIiwgInJzaGlm
dGkiLCAicnNoaWZ0cCIKKyAgICAgICAgICAgICAgICBpZiBub2RlLm9wY29kZVswLDFdID09ICJ1
IgorICAgICAgICAgICAgICAgICAgICB0eXBlID0gImwiCisgICAgICAgICAgICAgICAgICAgIGRp
cmVjdGlvbiA9IG5vZGUub3Bjb2RlWzEsMV0KKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAgICAgICAgIHR5cGUgPSAiYSIKKyAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uID0g
bm9kZS5vcGNvZGVbMCwxXQorICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgICAgIGlm
IG5vZGUub3BlcmFuZHNbMF0uaXNfYT8gSW1tZWRpYXRlCisgICAgICAgICAgICAgICAgICAgIGlm
IG5vZGUub3BlcmFuZHNbMF0udmFsdWUgPT0gMAorICAgICAgICAgICAgICAgICAgICAgICAgIyBU
aGVyZSBpcyBub3RoaW5nIHRvIGRvIGhlcmUuCisgICAgICAgICAgICAgICAgICAgIGVsc2lmIG5v
ZGUub3BlcmFuZHNbMF0udmFsdWUgPT0gMSBvciAodHlwZSA9PSAibCIgYW5kIFsyLCA4LCAxNl0u
aW5jbHVkZT8gbm9kZS5vcGVyYW5kc1swXS52YWx1ZSkKKyAgICAgICAgICAgICAgICAgICAgICAg
IG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgInNoI3t0eXBlfSN7
ZGlyZWN0aW9ufXgiLCBub2RlLm9wZXJhbmRzKQorICAgICAgICAgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBUbXAubmV3KG5vZGUuY29kZU9yaWdpbiwgOmdw
cikKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIGRpcmVjdGlvbiA9PSAibCIKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVP
cmlnaW4sICJtb3ZlIiwgW25vZGUub3BlcmFuZHNbMF0sIHRtcF0pCisgICAgICAgICAgICAgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0
cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAibW92ZSIsIFtJbW1lZGlhdGUubmV3KG5vZGUu
b3BlcmFuZHNbMF0uY29kZU9yaWdpbiwgLTEgKiBub2RlLm9wZXJhbmRzWzBdLnZhbHVlKSwgdG1w
XSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgICAgICAgICAgICAg
bmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAic2gje3R5cGV9ZCIs
IFt0bXAsIG5vZGUub3BlcmFuZHNbMV1dKQorICAgICAgICAgICAgICAgICAgICBlbmQKKyAgICAg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGlmIGRpcmVjdGlvbiA9PSAibCIK
KyAgICAgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUu
Y29kZU9yaWdpbiwgInNoI3t0eXBlfWQiLCBub2RlLm9wZXJhbmRzKQorICAgICAgICAgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBUbXAubmV3KG5vZGUuY29k
ZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1
Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgIm5lZ2kiLCBbbm9kZS5vcGVyYW5kc1swXSwgdG1w
XSkKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5v
ZGUuY29kZU9yaWdpbiwgInNoI3t0eXBlfWQiLCBbdG1wLCBub2RlLm9wZXJhbmRzWzFdXSkKKyAg
ICAgICAgICAgICAgICAgICAgZW5kCisgICAgICAgICAgICAgICAgZW5kCisgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBub2RlCisgICAgICAgICAgICBlbmQKKyAg
ICAgICAgZWxzZQorICAgICAgICAgICAgbmV3TGlzdCA8PCBub2RlCisgICAgICAgIGVuZAorICAg
IH0KKyAgICBuZXdMaXN0CitlbmQKKworCisjCisjIExvd2VyaW5nIG9mIGJyYW5jaCBvcHMgZm9y
IFNINC4KKyMKKworZGVmIHNoNExvd2VyU2ltcGxlQnJhbmNoT3BzKGxpc3QpCisgICAgbmV3TGlz
dCA9IFtdCisgICAgbGlzdC5lYWNoIHsKKyAgICAgICAgfCBub2RlIHwKKyAgICAgICAgaWYgbm9k
ZS5pc19hPyBJbnN0cnVjdGlvbgorICAgICAgICAgICAgYW5ub3RhdGlvbiA9IG5vZGUuYW5ub3Rh
dGlvbgorICAgICAgICAgICAgY2FzZSBub2RlLm9wY29kZQorICAgICAgICAgICAgd2hlbiAvXmIo
YWRkaXxzdWJpfG9yaXxhZGRwKS8KKyAgICAgICAgICAgICAgICBvcCA9ICQxCisgICAgICAgICAg
ICAgICAgYmMgPSAkfi5wb3N0X21hdGNoCisgICAgICAgICAgICAgICAgYnJhbmNoID0gImIiICsg
YmMKKworICAgICAgICAgICAgICAgIGNhc2Ugb3AKKyAgICAgICAgICAgICAgICB3aGVuICJhZGRp
IiwgImFkZHAiCisgICAgICAgICAgICAgICAgICAgIG9wID0gImFkZGkiCisgICAgICAgICAgICAg
ICAgd2hlbiAic3ViaSIKKyAgICAgICAgICAgICAgICAgICAgb3AgPSAic3ViaSIKKyAgICAgICAg
ICAgICAgICB3aGVuICJvcmkiCisgICAgICAgICAgICAgICAgICAgIG9wID0gIm9yaSIKKyAgICAg
ICAgICAgICAgICBlbmQKKworICAgICAgICAgICAgICAgIGlmIGJjID09ICJzIgorICAgICAgICAg
ICAgICAgICAgICB0bXAgPSBUbXAubmV3KG5vZGUuY29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAg
ICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCBv
cCwgW25vZGUub3BlcmFuZHNbMF0sIG5vZGUub3BlcmFuZHNbMV0sIHRtcF0pCisgICAgICAgICAg
ICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgImJz
IiwgW3RtcCwgbm9kZS5vcGVyYW5kc1syXV0pCisgICAgICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUKKyAgICAgICAgICAgICAgICBlbmQKKyAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUKKyAgICAgICAgICAg
IGVuZAorICAgICAgICBlbHNlCisgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUKKyAgICAgICAg
ZW5kCisgICAgfQorICAgIG5ld0xpc3QKK2VuZAorCisKKyMKKyMgTG93ZXJpbmcgb2YgbWFsZm9y
bWVkIGFkZHJlc3NlcyBpbiBkb3VibGUgbG9hZHMgYW5kIHN0b3JlcyBmb3IgU0g0LiBGb3IgZXhh
bXBsZToKKyMKKyMgbG9hZGQgW2ZvbywgYmFyLCA4XSwgYmF6CisjCisjIGJlY29tZXM6CisjCisj
IGxlYXAgW2ZvbywgYmFyLCA4XSwgdG1wCisjIGxvYWRkKyBbdG1wXSwgYmF6CisjCisKK2RlZiBz
aDRMb3dlck1hbGZvcm1lZEFkZHJlc3Nlc0RvdWJsZShsaXN0KQorICAgIG5ld0xpc3QgPSBbXQor
ICAgIGxpc3QuZWFjaCB7CisgICAgICAgIHwgbm9kZSB8CisgICAgICAgIGlmIG5vZGUuaXNfYT8g
SW5zdHJ1Y3Rpb24KKyAgICAgICAgICAgIGNhc2Ugbm9kZS5vcGNvZGUKKyAgICAgICAgICAgIHdo
ZW4gImxvYWRkIgorICAgICAgICAgICAgICAgIHRtcCA9IFRtcC5uZXcoY29kZU9yaWdpbiwgOmdw
cikKKyAgICAgICAgICAgICAgICBhZGRyID0gQWRkcmVzcy5uZXcoY29kZU9yaWdpbiwgdG1wLCBJ
bW1lZGlhdGUubmV3KGNvZGVPcmlnaW4sIDApKQorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwg
SW5zdHJ1Y3Rpb24ubmV3KGNvZGVPcmlnaW4sICJsZWFwIiwgW25vZGUub3BlcmFuZHNbMF0sIHRt
cF0pCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2Rl
T3JpZ2luLCAibG9hZGQrIiwgW2FkZHIsIG5vZGUub3BlcmFuZHNbMV1dLCBub2RlLmFubm90YXRp
b24pCisgICAgICAgICAgICB3aGVuICJzdG9yZWQiCisgICAgICAgICAgICAgICAgdG1wID0gVG1w
Lm5ldyhjb2RlT3JpZ2luLCA6Z3ByKQorICAgICAgICAgICAgICAgIGFkZHIgPSBBZGRyZXNzLm5l
dyhjb2RlT3JpZ2luLCB0bXAsIEltbWVkaWF0ZS5uZXcoY29kZU9yaWdpbiwgMCkpCisgICAgICAg
ICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcoY29kZU9yaWdpbiwgImxlYXAiLCBb
bm9kZS5vcGVyYW5kc1sxXSwgdG1wXSkKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3Ry
dWN0aW9uLm5ldyhjb2RlT3JpZ2luLCAiYWRkaSIsIFtJbW1lZGlhdGUubmV3KGNvZGVPcmlnaW4s
IDgpLCB0bXBdKQorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5v
ZGUuY29kZU9yaWdpbiwgInN0b3JlZC0iLCBbbm9kZS5vcGVyYW5kc1swXSwgYWRkcl0sIG5vZGUu
YW5ub3RhdGlvbikKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8
IG5vZGUKKyAgICAgICAgICAgIGVuZAorICAgICAgICBlbHNlCisgICAgICAgICAgICBuZXdMaXN0
IDw8IG5vZGUKKyAgICAgICAgZW5kCisgICAgfQorICAgIG5ld0xpc3QKK2VuZAorCisKKyMKKyMg
TG93ZXJpbmcgb2YgZG91YmxlIHNwZWNpYWxzIGZvciBTSDQuCisjCisKK2RlZiBzaDRMb3dlckRv
dWJsZVNwZWNpYWxzKGxpc3QpCisgICAgbmV3TGlzdCA9IFtdCisgICAgbGlzdC5lYWNoIHsKKyAg
ICAgICAgfCBub2RlIHwKKyAgICAgICAgaWYgbm9kZS5pc19hPyBJbnN0cnVjdGlvbgorICAgICAg
ICAgICAgY2FzZSBub2RlLm9wY29kZQorICAgICAgICAgICAgd2hlbiAiYmRuZXF1biIsICJiZGd0
ZXF1biIsICJiZGx0dW4iLCAiYmRsdGVxdW4iLCAiYmRndHVuIgorICAgICAgICAgICAgICAgICMg
SGFuZGxlIGZsb2F0aW5nIHBvaW50IHVub3JkZXJlZCBvcGNvZGVzLgorICAgICAgICAgICAgICAg
IHRtcDEgPSBUbXAubmV3KGNvZGVPcmlnaW4sIDpncHIpCisgICAgICAgICAgICAgICAgdG1wMiA9
IFRtcC5uZXcoY29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IElu
c3RydWN0aW9uLm5ldyhjb2RlT3JpZ2luLCAiYmRuYW4iLCBbbm9kZS5vcGVyYW5kc1swXSwgbm9k
ZS5vcGVyYW5kc1syXSwgdG1wMSwgdG1wMl0pCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJ
bnN0cnVjdGlvbi5uZXcoY29kZU9yaWdpbiwgImJkbmFuIiwgW25vZGUub3BlcmFuZHNbMV0sIG5v
ZGUub3BlcmFuZHNbMl0sIHRtcDEsIHRtcDJdKQorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwg
SW5zdHJ1Y3Rpb24ubmV3KGNvZGVPcmlnaW4sIG5vZGUub3Bjb2RlWzAuLi0zXSwgbm9kZS5vcGVy
YW5kcykKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUK
KyAgICAgICAgICAgIGVuZAorICAgICAgICBlbHNlCisgICAgICAgICAgICBuZXdMaXN0IDw8IG5v
ZGUKKyAgICAgICAgZW5kCisgICAgfQorICAgIG5ld0xpc3QKK2VuZAorCisKKyMKKyMgTG93ZXJp
bmcgb2YgbWlzcGxhY2VkIGltbWVkaWF0ZXMgZm9yIFNINC4gRm9yIGV4YW1wbGU6CisjCisjIG11
bGkgNCwgZm9vCisjCisjIHdpbGwgYmVjb21lOgorIworIyBtb3ZlIDQsIHRtcAorIyBtdWxpIHRt
cCwgZm9vCisjCisKK2RlZiBzaDRMb3dlck1pc3BsYWNlZEltbWVkaWF0ZXMobGlzdCkKKyAgICBu
ZXdMaXN0ID0gW10KKyAgICBsaXN0LmVhY2ggeworICAgICAgICB8IG5vZGUgfAorICAgICAgICBp
ZiBub2RlLmlzX2E/IEluc3RydWN0aW9uCisgICAgICAgICAgICBjYXNlIG5vZGUub3Bjb2RlCisg
ICAgICAgICAgICB3aGVuICJtdWxpIiwgIm11bHAiLCAiYW5kaSIsICJvcmkiLCAieG9yaSIsCisg
ICAgICAgICAgICAgICAgICJjYmVxIiwgImNpZXEiLCAiY3BlcSIsICJjaW5lcSIsICJjcG5lcSIs
ICJjaWIiLAorICAgICAgICAgICAgICAgICAiYmJlcSIsICJiYm5lcSIsICJiYmIiLCAiYmllcSIs
ICJicGVxIiwgImJpbmVxIiwgImJwbmVxIiwgImJpYSIsICJicGEiLCAiYmlhZXEiLCAiYnBhZXEi
LCAiYmliIiwgImJwYiIsCisgICAgICAgICAgICAgICAgICJiaWd0ZXEiLCAiYnBndGVxIiwgImJp
bHQiLCAiYnBsdCIsICJiaWd0IiwgImJwZ3QiLCAiYmlsdGVxIiwgImJwbHRlcSIsICJidGl6Iiwg
ImJ0cHoiLCAiYnRpbnoiLCAiYnRwbnoiLCAiYnRieiIsICJidGJueiIsCisgICAgICAgICAgICAg
ICAgICJiYWRkaW8iLCAiYnN1YmlvIiwgImJtdWxpbyIsICJiYWRkaXMiCisgICAgICAgICAgICAg
ICAgb3BlcmFuZHMgPSBub2RlLm9wZXJhbmRzCisgICAgICAgICAgICAgICAgbmV3T3BlcmFuZHMg
PSBbXQorICAgICAgICAgICAgICAgIG9wZXJhbmRzLmVhY2ggeworICAgICAgICAgICAgICAgICAg
ICB8IG9wZXJhbmQgfAorICAgICAgICAgICAgICAgICAgICBpZiBvcGVyYW5kLmlzX2E/IEltbWVk
aWF0ZQorICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gVG1wLm5ldyhvcGVyYW5kLmNvZGVP
cmlnaW4sIDpncHIpCisgICAgICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0
aW9uLm5ldyhvcGVyYW5kLmNvZGVPcmlnaW4sICJtb3ZlIiwgW29wZXJhbmQsIHRtcF0pCisgICAg
ICAgICAgICAgICAgICAgICAgICBuZXdPcGVyYW5kcyA8PCB0bXAKKyAgICAgICAgICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3T3BlcmFuZHMgPDwgb3BlcmFuZAor
ICAgICAgICAgICAgICAgICAgICBlbmQKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCBub2RlLm9wY29k
ZSwgbmV3T3BlcmFuZHMsIG5vZGUuYW5ub3RhdGlvbikKKyAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUKKyAgICAgICAgICAgIGVuZAorICAgICAgICBlbHNl
CisgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUKKyAgICAgICAgZW5kCisgICAgfQorICAgIG5l
d0xpc3QKK2VuZAorCisKKyMKKyMgTG93ZXJpbmcgb2YgbWlzcGxhY2VkIGxhYmVscyBmb3IgU0g0
LgorIworCitkZWYgc2g0TG93ZXJNaXNwbGFjZWRMYWJlbHMobGlzdCkKKyAgICBuZXdMaXN0ID0g
W10KKyAgICBsaXN0LmVhY2ggeworICAgICAgICB8IG5vZGUgfAorICAgICAgICBpZiBub2RlLmlz
X2E/IEluc3RydWN0aW9uCisgICAgICAgICAgICBjYXNlIG5vZGUub3Bjb2RlCisgICAgICAgICAg
ICB3aGVuICJqbXAiCisgICAgICAgICAgICAgICAgaWYgbm9kZS5vcGVyYW5kc1swXS5pc19hPyBM
YWJlbFJlZmVyZW5jZQorICAgICAgICAgICAgICAgICAgICB0bXAgPSBUbXAubmV3KGNvZGVPcmln
aW4sIDpncHIpCisgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3
KGNvZGVPcmlnaW4sICJqbXBmIiwgW3RtcCwgbm9kZS5vcGVyYW5kc1swXV0pCisgICAgICAgICAg
ICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUKKyAgICAgICAg
ICAgICAgICBlbmQKKyAgICAgICAgICAgIHdoZW4gImNhbGwiCisgICAgICAgICAgICAgICAgaWYg
bm9kZS5vcGVyYW5kc1swXS5pc19hPyBMYWJlbFJlZmVyZW5jZQorICAgICAgICAgICAgICAgICAg
ICB0bXAxID0gVG1wLm5ldyhjb2RlT3JpZ2luLCA6Z3ByKQorICAgICAgICAgICAgICAgICAgICB0
bXAyID0gVG1wLm5ldyhjb2RlT3JpZ2luLCA6Z3ByKQorICAgICAgICAgICAgICAgICAgICBuZXdM
aXN0IDw8IEluc3RydWN0aW9uLm5ldyhjb2RlT3JpZ2luLCAiY2FsbGYiLCBbdG1wMSwgdG1wMiwg
bm9kZS5vcGVyYW5kc1swXV0pCisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
ICAgICBuZXdMaXN0IDw8IG5vZGUKKyAgICAgICAgICAgICAgICBlbmQKKyAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUKKyAgICAgICAgICAgIGVuZAorICAg
ICAgICBlbHNlCisgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUKKyAgICAgICAgZW5kCisgICAg
fQorICAgIG5ld0xpc3QKK2VuZAorCisKK2NsYXNzIFNlcXVlbmNlCisgICAgZGVmIGdldE1vZGlm
aWVkTGlzdFNINAorICAgICAgICByZXN1bHQgPSBAbGlzdAorCisgICAgICAgICMgVmVyaWZ5IHRo
YXQgd2Ugd2lsbCBvbmx5IHNlZSBpbnN0cnVjdGlvbnMgYW5kIGxhYmVscy4KKyAgICAgICAgcmVz
dWx0LmVhY2ggeworICAgICAgICAgICAgfCBub2RlIHwKKyAgICAgICAgICAgIHVubGVzcyBub2Rl
LmlzX2E/IEluc3RydWN0aW9uIG9yCisgICAgICAgICAgICAgICAgICAgIG5vZGUuaXNfYT8gTGFi
ZWwgb3IKKyAgICAgICAgICAgICAgICAgICAgbm9kZS5pc19hPyBMb2NhbExhYmVsIG9yCisgICAg
ICAgICAgICAgICAgICAgIG5vZGUuaXNfYT8gU2tpcAorICAgICAgICAgICAgICAgIHJhaXNlICJV
bmV4cGVjdGVkICN7bm9kZS5pbnNwZWN0fSBhdCAje25vZGUuY29kZU9yaWdpbn0iCisgICAgICAg
ICAgICBlbmQKKyAgICAgICAgfQorCisgICAgICAgIHJlc3VsdCA9IHNoNExvd2VyU2hpZnRPcHMo
cmVzdWx0KQorICAgICAgICByZXN1bHQgPSBzaDRMb3dlclNpbXBsZUJyYW5jaE9wcyhyZXN1bHQp
CisgICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlck1hbGZvcm1lZEFkZHJlc3NlcyhyZXN1bHQpIHsK
KyAgICAgICAgICAgIHwgbm9kZSwgYWRkcmVzcyB8CisgICAgICAgICAgICBpZiBhZGRyZXNzLmlz
X2E/IEFkZHJlc3MKKyAgICAgICAgICAgICAgICBjYXNlIG5vZGUub3Bjb2RlCisgICAgICAgICAg
ICAgICAgd2hlbiAiYnRieiIsICJidGJueiIsICJjYmVxIiwgImJiZXEiLCAiYmJuZXEiLCAiYmJi
IiwgImxvYWRiIgorICAgICAgICAgICAgICAgICAgICAoMC4uMTUpLmluY2x1ZGU/IGFkZHJlc3Mu
b2Zmc2V0LnZhbHVlIGFuZAorICAgICAgICAgICAgICAgICAgICAgICAgKChub2RlLm9wZXJhbmRz
WzBdLmlzX2E/IFJlZ2lzdGVySUQgYW5kIG5vZGUub3BlcmFuZHNbMF0uc2g0T3BlcmFuZCA9PSAi
cjAiKSBvcgorICAgICAgICAgICAgICAgICAgICAgICAgIChub2RlLm9wZXJhbmRzWzFdLmlzX2E/
IFJlZ2lzdGVySUQgYW5kIG5vZGUub3BlcmFuZHNbMV0uc2g0T3BlcmFuZCA9PSAicjAiKSkKKyAg
ICAgICAgICAgICAgICB3aGVuICJsb2FkaCIKKyAgICAgICAgICAgICAgICAgICAgKDAuLjMwKS5p
bmNsdWRlPyBhZGRyZXNzLm9mZnNldC52YWx1ZSBhbmQKKyAgICAgICAgICAgICAgICAgICAgICAg
ICgobm9kZS5vcGVyYW5kc1swXS5pc19hPyBSZWdpc3RlcklEIGFuZCBub2RlLm9wZXJhbmRzWzBd
LnNoNE9wZXJhbmQgPT0gInIwIikgb3IKKyAgICAgICAgICAgICAgICAgICAgICAgICAobm9kZS5v
cGVyYW5kc1sxXS5pc19hPyBSZWdpc3RlcklEIGFuZCBub2RlLm9wZXJhbmRzWzFdLnNoNE9wZXJh
bmQgPT0gInIwIikpCisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAo
MC4uNjApLmluY2x1ZGU/IGFkZHJlc3Mub2Zmc2V0LnZhbHVlCisgICAgICAgICAgICAgICAgZW5k
CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgZmFsc2UKKyAgICAgICAgICAgIGVu
ZAorICAgICAgICB9CisgICAgICAgIHJlc3VsdCA9IHNoNExvd2VyTWFsZm9ybWVkQWRkcmVzc2Vz
RG91YmxlKHJlc3VsdCkKKyAgICAgICAgcmVzdWx0ID0gc2g0TG93ZXJEb3VibGVTcGVjaWFscyhy
ZXN1bHQpCisgICAgICAgIHJlc3VsdCA9IHNoNExvd2VyTWlzcGxhY2VkSW1tZWRpYXRlcyhyZXN1
bHQpCisgICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlck1pc3BsYWNlZEltbWVkaWF0ZXMocmVzdWx0
KQorICAgICAgICByZXN1bHQgPSByaXNjTG93ZXJNYWxmb3JtZWRJbW1lZGlhdGVzKHJlc3VsdCwg
LTEyOC4uMTI3KQorICAgICAgICByZXN1bHQgPSBzaDRMb3dlck1pc3BsYWNlZExhYmVscyhyZXN1
bHQpCisgICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlck1pc3BsYWNlZEFkZHJlc3NlcyhyZXN1bHQp
CisKKyAgICAgICAgcmVzdWx0ID0gYXNzaWduUmVnaXN0ZXJzVG9UZW1wb3JhcmllcyhyZXN1bHQs
IDpncHIsIFNINF9UTVBfR1BSUykKKyAgICAgICAgcmVzdWx0ID0gYXNzaWduUmVnaXN0ZXJzVG9U
ZW1wb3JhcmllcyhyZXN1bHQsIDpncHIsIFNINF9UTVBfRlBSUykKKworICAgICAgICByZXR1cm4g
cmVzdWx0CisgICAgZW5kCitlbmQKKworZGVmIHNoNE9wZXJhbmRzKG9wZXJhbmRzKQorICAgIG9w
ZXJhbmRzLm1hcHt8dnwgdi5zaDRPcGVyYW5kfS5qb2luKCIsICIpCitlbmQKKworZGVmIGVtaXRT
SDRMb2FkQ29uc3RhbnQoY29uc3RhbnQsIG9wZXJhbmQpCisgICAgaWYgY29uc3RhbnQgPT0gMHg0
MDAwMDAwMAorICAgICAgICAjIEZpcnN0Q29uc3RhbnRSZWdpc3RlckluZGV4IGNvbnN0IGlzIG9m
dGVuIHVzZWQgKDB4NDAwMDAwMDApLgorICAgICAgICAjIEl0J3MgbW9yZSBlZmZpY2llbnQgdG8g
ImJ1aWxkIiB0aGUgdmFsdWUgd2l0aCAzIG9wY29kZXMgd2l0aG91dCBicmFuY2guCisgICAgICAg
ICRhc20ucHV0cyAibW92ICM2NCwgI3tvcGVyYW5kLnNoNE9wZXJhbmR9IgorICAgICAgICAkYXNt
LnB1dHMgInNobGwxNiAje29wZXJhbmQuc2g0T3BlcmFuZH0iCisgICAgICAgICRhc20ucHV0cyAi
c2hsbDggI3tvcGVyYW5kLnNoNE9wZXJhbmR9IgorICAgIGVsc2UKKyAgICAgICAgY29uc3RsYWJl
bCA9IExvY2FsTGFiZWwudW5pcXVlKCJsb2FkY29uc3RhbnQiKQorICAgICAgICAkYXNtLnB1dHMg
Ii5iYWxpZ24gNCIKKyAgICAgICAgJGFzbS5wdXRzICJtb3YubCBAKDgsIFBDKSwgI3tvcGVyYW5k
LnNoNE9wZXJhbmR9IgorICAgICAgICAkYXNtLnB1dHMgImJyYSAje0xvY2FsTGFiZWxSZWZlcmVu
Y2UubmV3KGNvZGVPcmlnaW4sIGNvbnN0bGFiZWwpLmFzbUxhYmVsfSIKKyAgICAgICAgJGFzbS5w
dXRzICJub3AiCisgICAgICAgICRhc20ucHV0cyAibm9wIgorICAgICAgICAkYXNtLnB1dHMgIi5s
b25nICN7Y29uc3RhbnR9IgorICAgICAgICBjb25zdGxhYmVsLmxvd2VyKCJTSDQiKQorICAgIGVu
ZAorZW5kCisKK2RlZiBlbWl0U0g0QnJhbmNoKHNoNG9wY29kZSwgb3BlcmFuZCkKKyAgICAkYXNt
LnB1dHMgIiN7c2g0b3Bjb2RlfSBAI3tvcGVyYW5kLnNoNE9wZXJhbmR9IgorICAgICRhc20ucHV0
cyAibm9wIgorZW5kCisKK2RlZiBlbWl0U0g0U2hpZnRJbW0odmFsLCBvcGVyYW5kLCBkaXJlY3Rp
b24pCisgICAgdG1wID0gdmFsCisgICAgd2hpbGUgdG1wID4gMAorICAgICAgICBpZiB0bXAgPj0g
MTYKKyAgICAgICAgICAgICRhc20ucHV0cyAic2hsI3tkaXJlY3Rpb259MTYgI3tvcGVyYW5kLnNo
NE9wZXJhbmR9IgorICAgICAgICAgICAgdG1wIC09IDE2CisgICAgICAgIGVsc2lmIHRtcCA+PSA4
CisgICAgICAgICAgICAkYXNtLnB1dHMgInNobCN7ZGlyZWN0aW9ufTggI3tvcGVyYW5kLnNoNE9w
ZXJhbmR9IgorICAgICAgICAgICAgdG1wIC09IDgKKyAgICAgICAgZWxzaWYgdG1wID49IDIKKyAg
ICAgICAgICAgICRhc20ucHV0cyAic2hsI3tkaXJlY3Rpb259MiAje29wZXJhbmQuc2g0T3BlcmFu
ZH0iCisgICAgICAgICAgICB0bXAgLT0gMgorICAgICAgICBlbHNlCisgICAgICAgICAgICAkYXNt
LnB1dHMgInNobCN7ZGlyZWN0aW9ufSAje29wZXJhbmQuc2g0T3BlcmFuZH0iCisgICAgICAgICAg
ICB0bXAgLT0gMQorICAgICAgICBlbmQKKyAgICBlbmQKK2VuZAorCitkZWYgZW1pdFNINEJyYW5j
aElmVChsYWJlbCwgbmVnKQorICAgIHNoNG9wY29kZSA9IG5lZyA/ICJiZiIgOiAiYnQiCisgICAg
JGFzbS5wdXRzICIje3NoNG9wY29kZX0gI3tsYWJlbC5hc21MYWJlbH0iCitlbmQKKworZGVmIGVt
aXRTSDRJbnRDb21wYXJlKGNtcE9wY29kZSwgb3BlcmFuZHMpCisgICAgJGFzbS5wdXRzICJjbXAv
I3tjbXBPcGNvZGV9ICN7c2g0T3BlcmFuZHMoW29wZXJhbmRzWzFdLCBvcGVyYW5kc1swXV0pfSIK
K2VuZAorCitkZWYgZW1pdFNINENvbmRCcmFuY2goY21wT3Bjb2RlLCBuZWcsIG9wZXJhbmRzKQor
ICAgIGVtaXRTSDRJbnRDb21wYXJlKGNtcE9wY29kZSwgb3BlcmFuZHMpCisgICAgZW1pdFNINEJy
YW5jaElmVChvcGVyYW5kc1syXSwgbmVnKQorZW5kCisKK2RlZiBlbWl0U0g0Q29tcGFyZVNldChj
bXBPcGNvZGUsIG5lZywgb3BlcmFuZHMpCisgICAgZW1pdFNINEludENvbXBhcmUoY21wT3Bjb2Rl
LCBvcGVyYW5kcykKKyAgICAkYXNtLnB1dHMgIm1vdnQgI3tvcGVyYW5kc1syXS5zaDRPcGVyYW5k
fSIKKyAgICBpZiBuZWcKKyAgICAgICAgJGFzbS5wdXRzICJkdCAje29wZXJhbmRzWzJdLnNoNE9w
ZXJhbmR9IgorICAgIGVuZAorZW5kCisKK2RlZiBlbWl0U0g0QnJhbmNoSWZOYU4ob3BlcmFuZHMp
CisgICAgcmFpc2UgIkludmFsaWQgb3BlcmFuZHMgbnVtYmVyICgje29wZXJhbmRzLnNpemV9KSIg
dW5sZXNzIG9wZXJhbmRzLnNpemUgPT0gNAorICAgIGRibG9wID0gb3BlcmFuZHNbMF0KKyAgICBs
YWJlbG9wID0gb3BlcmFuZHNbMV0KKyAgICBzY3JtYXNrID0gb3BlcmFuZHNbMl0KKyAgICBzY3Jp
bnQgPSBvcGVyYW5kc1szXQorCisgICAgIyBJZiB3ZSBkb24ndCBoYXZlICJFID0gRW1heCArIDEi
LCBpdCdzIG5vdCBhIE5hTi4KKyAgICBub3ROYU5sYWJlbCA9IExvY2FsTGFiZWwudW5pcXVlKCJu
b3RuYW4iKQorICAgICRhc20ucHV0cyAiZmNudmRzICN7ZGJsb3Auc2g0T3BlcmFuZH0sIGZwdWwi
CisgICAgJGFzbS5wdXRzICJzdHMgZnB1bCwgI3tzY3JpbnQuc2g0T3BlcmFuZH0iCisgICAgZW1p
dFNINExvYWRDb25zdGFudCgweDdmODAwMDAwLCBzY3JtYXNrKQorICAgICRhc20ucHV0cyAiYW5k
ICN7c2g0T3BlcmFuZHMoW3Njcm1hc2ssIHNjcmludF0pfSIKKyAgICAkYXNtLnB1dHMgImNtcC9l
cSAje3NoNE9wZXJhbmRzKFtzY3JtYXNrLCBzY3JpbnRdKX0iCisgICAgJGFzbS5wdXRzICJiZiAj
e0xvY2FsTGFiZWxSZWZlcmVuY2UubmV3KGNvZGVPcmlnaW4sIG5vdE5hTmxhYmVsKS5hc21MYWJl
bH0iCisKKyAgICAjIElmIHdlIGhhdmUgIkUgPSBFbWF4ICsgMSIgYW5kICJmICE9IDAiLCB0aGVu
IGl0J3MgYSBOYU4uCisgICAgJGFzbS5wdXRzICJzdHMgZnB1bCwgI3tzY3JpbnQuc2g0T3BlcmFu
ZH0iCisgICAgZW1pdFNINExvYWRDb25zdGFudCgweDAwM2ZmZmZmLCBzY3JtYXNrKQorICAgICRh
c20ucHV0cyAidHN0ICN7c2g0T3BlcmFuZHMoW3Njcm1hc2ssIHNjcmludF0pfSIKKyAgICAkYXNt
LnB1dHMgImJmICN7bGFiZWxvcC5hc21MYWJlbH0iCisKKyAgICBub3ROYU5sYWJlbC5sb3dlcigi
U0g0IikKK2VuZAorCitkZWYgZW1pdFNINERvdWJsZUNvbmRCcmFuY2goY21wT3Bjb2RlLCBuZWcs
IG9wZXJhbmRzKQorICAgIGlmIGNtcE9wY29kZSA9PSAibHQiCisgICAgICAgIGlmICghbmVnKQor
ICAgICAgICAgICAgb3V0bGFiZWwgPSBMb2NhbExhYmVsLnVuaXF1ZSgiZGNib3V0IikKKyAgICAg
ICAgICAgICRhc20ucHV0cyAiZmNtcC9ndCAje3NoNE9wZXJhbmRzKFtvcGVyYW5kc1sxXSwgb3Bl
cmFuZHNbMF1dKX0iCisgICAgICAgICAgICAkYXNtLnB1dHMgImJ0ICN7TG9jYWxMYWJlbFJlZmVy
ZW5jZS5uZXcoY29kZU9yaWdpbiwgb3V0bGFiZWwpLmFzbUxhYmVsfSIKKyAgICAgICAgICAgICRh
c20ucHV0cyAiZmNtcC9lcSAje3NoNE9wZXJhbmRzKFtvcGVyYW5kc1sxXSwgb3BlcmFuZHNbMF1d
KX0iCisgICAgICAgICAgICAkYXNtLnB1dHMgImJmICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9Igor
ICAgICAgICAgICAgb3V0bGFiZWwubG93ZXIoIlNINCIpCisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICRhc20ucHV0cyAiZmNtcC9ndCAje3NoNE9wZXJhbmRzKFtvcGVyYW5kc1sxXSwgb3BlcmFu
ZHNbMF1dKX0iCisgICAgICAgICAgICAkYXNtLnB1dHMgImJ0ICN7b3BlcmFuZHNbMl0uYXNtTGFi
ZWx9IgorICAgICAgICAgICAgJGFzbS5wdXRzICJmY21wL2VxICN7c2g0T3BlcmFuZHMoW29wZXJh
bmRzWzFdLCBvcGVyYW5kc1swXV0pfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAiYnQgI3tvcGVy
YW5kc1syXS5hc21MYWJlbH0iCisgICAgICAgIGVuZAorICAgIGVsc2UKKyAgICAgICAgJGFzbS5w
dXRzICJmY21wLyN7Y21wT3Bjb2RlfSAje3NoNE9wZXJhbmRzKFtvcGVyYW5kc1sxXSwgb3BlcmFu
ZHNbMF1dKX0iCisgICAgICAgIGVtaXRTSDRCcmFuY2hJZlQob3BlcmFuZHNbMl0sIG5lZykKKyAg
ICBlbmQKK2VuZAorCitjbGFzcyBJbnN0cnVjdGlvbgorICAgIGRlZiBsb3dlclNINAorICAgICAg
ICAkYXNtLmNvbW1lbnQgY29kZU9yaWdpblN0cmluZworICAgICAgICBjYXNlIG9wY29kZQorICAg
ICAgICB3aGVuICJhZGRpIiwgImFkZHAiCisgICAgICAgICAgICBpZiBvcGVyYW5kcy5zaXplID09
IDMKKyAgICAgICAgICAgICAgICBpZiBvcGVyYW5kc1swXS5zaDRPcGVyYW5kID09IG9wZXJhbmRz
WzJdLnNoNE9wZXJhbmQKKyAgICAgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJhZGQgI3tzaDRP
cGVyYW5kcyhbb3BlcmFuZHNbMV0sIG9wZXJhbmRzWzJdXSl9IgorICAgICAgICAgICAgICAgIGVs
c2lmIG9wZXJhbmRzWzFdLnNoNE9wZXJhbmQgPT0gb3BlcmFuZHNbMl0uc2g0T3BlcmFuZAorICAg
ICAgICAgICAgICAgICAgICAkYXNtLnB1dHMgImFkZCAje3NoNE9wZXJhbmRzKFtvcGVyYW5kc1sw
XSwgb3BlcmFuZHNbMl1dKX0iCisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
ICAgICAkYXNtLnB1dHMgIm1vdiAje3NoNE9wZXJhbmRzKFtvcGVyYW5kc1swXSwgb3BlcmFuZHNb
Ml1dKX0iCisgICAgICAgICAgICAgICAgICAgICRhc20ucHV0cyAiYWRkICN7c2g0T3BlcmFuZHMo
W29wZXJhbmRzWzFdLCBvcGVyYW5kc1syXV0pfSIKKyAgICAgICAgICAgICAgICBlbmQKKyAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAkYXNtLnB1dHMgImFkZCAje3NoNE9wZXJhbmRz
KG9wZXJhbmRzKX0iCisgICAgICAgICAgICBlbmQKKyAgICAgICAgd2hlbiAic3ViaSIKKyAgICAg
ICAgICAgIHJhaXNlICIje29wY29kZX0gd2l0aCAje29wZXJhbmRzLnNpemV9IG9wZXJhbmRzIGlz
IG5vdCBoYW5kbGVkIHlldCIgdW5sZXNzIG9wZXJhbmRzLnNpemUgPT0gMgorICAgICAgICAgICAg
aWYgb3BlcmFuZHNbMF0uaXNfYT8gSW1tZWRpYXRlCisgICAgICAgICAgICAgICAgJGFzbS5wdXRz
ICJhZGQgI3tzaDRPcGVyYW5kcyhbSW1tZWRpYXRlLm5ldyhjb2RlT3JpZ2luLCAtMSAqIG9wZXJh
bmRzWzBdLnZhbHVlKSwgb3BlcmFuZHNbMV1dKX0iCisgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAgICAgJGFzbS5wdXRzICJzdWIgI3tzaDRPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAg
ICAgICAgZW5kCisgICAgICAgIHdoZW4gIm11bGkiLCAibXVscCIKKyAgICAgICAgICAgICRhc20u
cHV0cyAibXVsLmwgI3tzaDRPcGVyYW5kcyhvcGVyYW5kc1swLi4xXSl9IgorICAgICAgICAgICAg
JGFzbS5wdXRzICJzdHMgbWFjbCwgI3tvcGVyYW5kc1stMV0uc2g0T3BlcmFuZH0iCisgICAgICAg
IHdoZW4gIm5lZ2kiCisgICAgICAgICAgICBpZiBvcGVyYW5kcy5zaXplID09IDIKKyAgICAgICAg
ICAgICAgICAkYXNtLnB1dHMgIm5lZyAje3NoNE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJuZWcgI3tzaDRPcGVyYW5kcyhb
b3BlcmFuZHNbMF0sIG9wZXJhbmRzWzBdXSl9IgorICAgICAgICAgICAgZW5kCisgICAgICAgIHdo
ZW4gImFuZGkiLCAib3JpIiwgInhvcmkiCisgICAgICAgICAgICByYWlzZSAiI3tvcGNvZGV9IHdp
dGggI3tvcGVyYW5kcy5zaXplfSBvcGVyYW5kcyBpcyBub3QgaGFuZGxlZCB5ZXQiIHVubGVzcyBv
cGVyYW5kcy5zaXplID09IDIKKyAgICAgICAgICAgIHNoNG9wY29kZSA9IG9wY29kZVswLi4tMl0K
KyAgICAgICAgICAgICRhc20ucHV0cyAiI3tzaDRvcGNvZGV9ICN7c2g0T3BlcmFuZHMob3BlcmFu
ZHMpfSIKKyAgICAgICAgd2hlbiAic2hsbHgiLCAic2hscngiCisgICAgICAgICAgICByYWlzZSAi
VW5oYW5kbGVkIHBhcmFtZXRlcnMgZm9yIG9wY29kZSAje29wY29kZX0iIHVubGVzcyBvcGVyYW5k
c1swXS5pc19hPyBJbW1lZGlhdGUKKyAgICAgICAgICAgIGlmIG9wZXJhbmRzWzBdLnZhbHVlID09
IDEKKyAgICAgICAgICAgICAgICAkYXNtLnB1dHMgInNobCN7b3Bjb2RlWzMsMV19ICN7b3BlcmFu
ZHNbMV0uc2g0T3BlcmFuZH0iCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgJGFz
bS5wdXRzICJzaGwje29wY29kZVszLDFdfSN7b3BlcmFuZHNbMF0udmFsdWV9ICN7b3BlcmFuZHNb
MV0uc2g0T3BlcmFuZH0iCisgICAgICAgICAgICBlbmQKKyAgICAgICAgd2hlbiAic2hsZCIsICJz
aGFkIgorICAgICAgICAgICAgJGFzbS5wdXRzICIje29wY29kZX0gI3tzaDRPcGVyYW5kcyhvcGVy
YW5kcyl9IgorICAgICAgICB3aGVuICJsb2FkZCsiCisgICAgICAgICAgICAjIEFzIHdlIGFyZSBs
aXR0bGUgZW5kaWFuLCB3ZSBkb24ndCB1c2UgImZtb3YgQFJtLCBEUm4iIGhlcmUuCisgICAgICAg
ICAgICAkYXNtLnB1dHMgImZtb3YucyAje29wZXJhbmRzWzBdLnNoNE9wZXJhbmRQb3N0SW5jfSwg
I3tvcGVyYW5kc1sxXS5zaDRTaW5nbGVMb30iCisgICAgICAgICAgICAkYXNtLnB1dHMgImZtb3Yu
cyAje29wZXJhbmRzWzBdLnNoNE9wZXJhbmRQb3N0SW5jfSwgI3tvcGVyYW5kc1sxXS5zaDRTaW5n
bGVIaX0iCisgICAgICAgIHdoZW4gInN0b3JlZC0iCisgICAgICAgICAgICAjIEFzIHdlIGFyZSBs
aXR0bGUgZW5kaWFuLCB3ZSBkb24ndCB1c2UgImZtb3YgRFJtLCBAUm4iIGhlcmUuCisgICAgICAg
ICAgICAkYXNtLnB1dHMgImZtb3YucyAje29wZXJhbmRzWzBdLnNoNFNpbmdsZUhpfSwgI3tvcGVy
YW5kc1sxXS5zaDRPcGVyYW5kUHJlRGVjfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAiZm1vdi5z
ICN7b3BlcmFuZHNbMF0uc2g0U2luZ2xlTG99LCAje29wZXJhbmRzWzFdLnNoNE9wZXJhbmRQcmVE
ZWN9IgorICAgICAgICB3aGVuICJjaTJkIgorICAgICAgICAgICAgJGFzbS5wdXRzICJsZHMgI3tv
cGVyYW5kc1swXS5zaDRPcGVyYW5kfSwgZnB1bCIKKyAgICAgICAgICAgICRhc20ucHV0cyAiZmxv
YXQgZnB1bCwgI3tvcGVyYW5kc1sxXS5zaDRPcGVyYW5kfSIKKyAgICAgICAgd2hlbiAiZmlpMmQi
CisgICAgICAgICAgICAkYXNtLnB1dHMgImxkcyAje29wZXJhbmRzWzBdLnNoNE9wZXJhbmR9LCBm
cHVsIgorICAgICAgICAgICAgJGFzbS5wdXRzICJmc3RzIGZwdWwsICN7b3BlcmFuZHNbMl0uc2g0
U2luZ2xlTG99IgorICAgICAgICAgICAgJGFzbS5wdXRzICJsZHMgI3tvcGVyYW5kc1sxXS5zaDRP
cGVyYW5kfSwgZnB1bCIKKyAgICAgICAgICAgICRhc20ucHV0cyAiZnN0cyBmcHVsLCAje29wZXJh
bmRzWzJdLnNoNFNpbmdsZUhpfSIKKyAgICAgICAgd2hlbiAiZmQyaWkiCisgICAgICAgICAgICAk
YXNtLnB1dHMgImZsZHMgI3tvcGVyYW5kc1swXS5zaDRTaW5nbGVMb30sIGZwdWwiCisgICAgICAg
ICAgICAkYXNtLnB1dHMgInN0cyBmcHVsLCAje29wZXJhbmRzWzFdLnNoNE9wZXJhbmR9IgorICAg
ICAgICAgICAgJGFzbS5wdXRzICJmbGRzICN7b3BlcmFuZHNbMF0uc2g0U2luZ2xlSGl9LCBmcHVs
IgorICAgICAgICAgICAgJGFzbS5wdXRzICJzdHMgZnB1bCwgI3tvcGVyYW5kc1syXS5zaDRPcGVy
YW5kfSIKKyAgICAgICAgd2hlbiAiYWRkZCIsICJzdWJkIiwgIm11bGQiLCAiZGl2ZCIKKyAgICAg
ICAgICAgIHNoNG9wY29kZSA9IG9wY29kZVswLi4tMl0KKyAgICAgICAgICAgICRhc20ucHV0cyAi
ZiN7c2g0b3Bjb2RlfSAje3NoNE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4gImJj
ZDJpIgorICAgICAgICAgICAgJGFzbS5wdXRzICJmdHJjICN7b3BlcmFuZHNbMF0uc2g0T3BlcmFu
ZH0sIGZwdWwiCisgICAgICAgICAgICAkYXNtLnB1dHMgInN0cyBmcHVsLCAje29wZXJhbmRzWzFd
LnNoNE9wZXJhbmR9IgorICAgICAgICAgICAgJGFzbS5wdXRzICJmbG9hdCBmcHVsLCAje1NINF9U
TVBfRlBSU1swXS5zaDRPcGVyYW5kfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAiZmNtcC9lcSAj
e3NoNE9wZXJhbmRzKFtvcGVyYW5kc1swXSwgU0g0X1RNUF9GUFJTWzBdXSl9IgorICAgICAgICAg
ICAgJGFzbS5wdXRzICJiZiAje29wZXJhbmRzWzJdLmFzbUxhYmVsfSIKKyAgICAgICAgd2hlbiAi
YmRuYW4iCisgICAgICAgICAgICBlbWl0U0g0QnJhbmNoSWZOYU4ob3BlcmFuZHMpCisgICAgICAg
IHdoZW4gImJkbmVxIgorICAgICAgICAgICAgZW1pdFNINERvdWJsZUNvbmRCcmFuY2goImVxIiwg
dHJ1ZSwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImJkZ3RlcSIKKyAgICAgICAgICAgIGVtaXRT
SDREb3VibGVDb25kQnJhbmNoKCJsdCIsIHRydWUsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJi
ZGx0IgorICAgICAgICAgICAgZW1pdFNINERvdWJsZUNvbmRCcmFuY2goImx0IiwgZmFsc2UsIG9w
ZXJhbmRzKQorICAgICAgICB3aGVuICJiZGx0ZXEiCisgICAgICAgICAgICBlbWl0U0g0RG91Ymxl
Q29uZEJyYW5jaCgiZ3QiLCB0cnVlLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmRndCIKKyAg
ICAgICAgICAgIGVtaXRTSDREb3VibGVDb25kQnJhbmNoKCJndCIsIGZhbHNlLCBvcGVyYW5kcykK
KyAgICAgICAgd2hlbiAiYmFkZGlvIiwgImJzdWJpbyIKKyAgICAgICAgICAgIHJhaXNlICIje29w
Y29kZX0gd2l0aCAje29wZXJhbmRzLnNpemV9IG9wZXJhbmRzIGlzIG5vdCBoYW5kbGVkIHlldCIg
dW5sZXNzIG9wZXJhbmRzLnNpemUgPT0gMworICAgICAgICAgICAgJGFzbS5wdXRzICIje29wY29k
ZVsxLDNdfXYgI3tzaDRPcGVyYW5kcyhbb3BlcmFuZHNbMF0sIG9wZXJhbmRzWzFdXSl9IgorICAg
ICAgICAgICAgJGFzbS5wdXRzICJidCAje29wZXJhbmRzWzJdLmFzbUxhYmVsfSIKKyAgICAgICAg
d2hlbiAiYm11bGlvIgorICAgICAgICAgICAgJGFzbS5wdXRzICJkbXVscy5sICN7c2g0T3BlcmFu
ZHMoW29wZXJhbmRzWzBdLCBvcGVyYW5kc1sxXV0pfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAi
c3RzIG1hY2gsICN7b3BlcmFuZHNbLTJdLnNoNE9wZXJhbmR9IgorICAgICAgICAgICAgJGFzbS5w
dXRzICJ0c3QgI3tzaDRPcGVyYW5kcyhbb3BlcmFuZHNbLTJdLCBvcGVyYW5kc1stMl1dKX0iCisg
ICAgICAgICAgICAkYXNtLnB1dHMgInN0cyBtYWNsLCAje29wZXJhbmRzWy0yXS5zaDRPcGVyYW5k
fSIKKyAgICAgICAgICAgICRhc20ucHV0cyAiYmYgI3tvcGVyYW5kc1stMV0uYXNtTGFiZWx9Igor
ICAgICAgICB3aGVuICJidGl6IiwgImJ0cHoiLCAiYnRpbnoiLCAiYnRwbnoiLCAiYnRieiIsICJi
dGJueiIKKyAgICAgICAgICAgIGlmIG9wZXJhbmRzLnNpemUgPT0gMworICAgICAgICAgICAgICAg
ICRhc20ucHV0cyAidHN0ICN7c2g0T3BlcmFuZHMoW29wZXJhbmRzWzBdLCBvcGVyYW5kc1sxXV0p
fSIKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBpZiBvcGVyYW5kc1swXS5zaDRP
cGVyYW5kID09ICJyMCIKKyAgICAgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJjbXAvZXEgIzAs
IHIwIgorICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgJGFzbS5wdXRz
ICJ0c3QgI3tzaDRPcGVyYW5kcyhbb3BlcmFuZHNbMF0sIG9wZXJhbmRzWzBdXSl9IgorICAgICAg
ICAgICAgICAgIGVuZAorICAgICAgICAgICAgZW5kCisgICAgICAgICAgICBlbWl0U0g0QnJhbmNo
SWZUKG9wZXJhbmRzWy0xXSwgKG9wY29kZVstMiwyXSA9PSAibnoiKSkKKyAgICAgICAgd2hlbiAi
Y2JlcSIKKyAgICAgICAgICAgIGVtaXRTSDRDb21wYXJlU2V0KCJlcSIsIGZhbHNlLCBvcGVyYW5k
cykKKyAgICAgICAgd2hlbiAiY2llcSIsICJjcGVxIgorICAgICAgICAgICAgZW1pdFNINENvbXBh
cmVTZXQoImVxIiwgZmFsc2UsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJjaW5lcSIsICJjcG5l
cSIKKyAgICAgICAgICAgIGVtaXRTSDRDb21wYXJlU2V0KCJlcSIsIHRydWUsIG9wZXJhbmRzKQor
ICAgICAgICB3aGVuICJjaWIiCisgICAgICAgICAgICBlbWl0U0g0Q29tcGFyZVNldCgiaHMiLCB0
cnVlLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmJlcSIKKyAgICAgICAgICAgIGVtaXRTSDRD
b25kQnJhbmNoKCJlcSIsIGZhbHNlLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmJuZXEiCisg
ICAgICAgICAgICBlbWl0U0g0Q29uZEJyYW5jaCgiZXEiLCB0cnVlLCBvcGVyYW5kcykKKyAgICAg
ICAgd2hlbiAiYmJiIgorICAgICAgICAgICAgZW1pdFNINENvbmRCcmFuY2goImhzIiwgdHJ1ZSwg
b3BlcmFuZHMpCisgICAgICAgIHdoZW4gImJpZXEiLCAiYnBlcSIKKyAgICAgICAgICAgIGVtaXRT
SDRDb25kQnJhbmNoKCJlcSIsIGZhbHNlLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmluZXEi
LCAiYnBuZXEiCisgICAgICAgICAgICBlbWl0U0g0Q29uZEJyYW5jaCgiZXEiLCB0cnVlLCBvcGVy
YW5kcykKKyAgICAgICAgd2hlbiAiYmlhIiwgImJwYSIKKyAgICAgICAgICAgIGVtaXRTSDRDb25k
QnJhbmNoKCJoaSIsIGZhbHNlLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmlhZXEiLCAiYnBh
ZXEiCisgICAgICAgICAgICBlbWl0U0g0Q29uZEJyYW5jaCgiaHMiLCBmYWxzZSwgb3BlcmFuZHMp
CisgICAgICAgIHdoZW4gImJpYiIsICJicGIiCisgICAgICAgICAgICBlbWl0U0g0Q29uZEJyYW5j
aCgiaHMiLCB0cnVlLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmlndGVxIiwgImJwZ3RlcSIK
KyAgICAgICAgICAgIGVtaXRTSDRDb25kQnJhbmNoKCJnZSIsIGZhbHNlLCBvcGVyYW5kcykKKyAg
ICAgICAgd2hlbiAiYmlsdCIsICJicGx0IgorICAgICAgICAgICAgZW1pdFNINENvbmRCcmFuY2go
ImdlIiwgdHJ1ZSwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImJpZ3QiLCAiYnBndCIKKyAgICAg
ICAgICAgIGVtaXRTSDRDb25kQnJhbmNoKCJndCIsIGZhbHNlLCBvcGVyYW5kcykKKyAgICAgICAg
d2hlbiAiYmlsdGVxIiwgImJwbHRlcSIKKyAgICAgICAgICAgIGVtaXRTSDRDb25kQnJhbmNoKCJn
dCIsIHRydWUsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJicyIKKyAgICAgICAgICAgICRhc20u
cHV0cyAiY21wL3B6ICN7b3BlcmFuZHNbMF0uc2g0T3BlcmFuZH0iCisgICAgICAgICAgICAkYXNt
LnB1dHMgImJmICN7b3BlcmFuZHNbMV0uYXNtTGFiZWx9IgorICAgICAgICB3aGVuICJjYWxsIgor
ICAgICAgICAgICAgaWYgb3BlcmFuZHNbMF0uaXNfYT8gTG9jYWxMYWJlbFJlZmVyZW5jZQorICAg
ICAgICAgICAgICAgICRhc20ucHV0cyAiYnNyICN7b3BlcmFuZHNbMF0uYXNtTGFiZWx9IgorICAg
ICAgICAgICAgICAgICRhc20ucHV0cyAibm9wIgorICAgICAgICAgICAgZWxzaWYgb3BlcmFuZHNb
MF0uaXNfYT8gUmVnaXN0ZXJJRCBvciBvcGVyYW5kc1swXS5pc19hPyBTcGVjaWFsUmVnaXN0ZXIK
KyAgICAgICAgICAgICAgICBlbWl0U0g0QnJhbmNoKCJqc3IiLCBvcGVyYW5kc1swXSkKKyAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByYWlzZSAiVW5oYW5kbGVkIHBhcmFtZXRlcnMg
Zm9yIG9wY29kZSAje29wY29kZX0gYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIKKyAgICAgICAgICAg
IGVuZAorICAgICAgICB3aGVuICJjYWxsZiIKKyAgICAgICAgICAgICRhc20ucHV0cyAiLmJhbGln
biA0IgorICAgICAgICAgICAgJGFzbS5wdXRzICJtb3YgcjAsICN7b3BlcmFuZHNbMF0uc2g0T3Bl
cmFuZH0iCisgICAgICAgICAgICAkYXNtLnB1dHMgIm1vdmEgQCgxNCwgUEMpLCByMCIKKyAgICAg
ICAgICAgICRhc20ucHV0cyAibGRzIHIwLCBwciIKKyAgICAgICAgICAgICRhc20ucHV0cyAibW92
LmwgQCg2LCBQQyksICN7b3BlcmFuZHNbMV0uc2g0T3BlcmFuZH0iCisgICAgICAgICAgICAkYXNt
LnB1dHMgImptcCBAI3tvcGVyYW5kc1sxXS5zaDRPcGVyYW5kfSIKKyAgICAgICAgICAgICRhc20u
cHV0cyAibW92ICN7b3BlcmFuZHNbMF0uc2g0T3BlcmFuZH0sIHIwIgorICAgICAgICAgICAgJGFz
bS5wdXRzICIubG9uZyAje29wZXJhbmRzWzJdLmFzbUxhYmVsfSIKKyAgICAgICAgd2hlbiAiam1w
IgorICAgICAgICAgICAgaWYgb3BlcmFuZHNbMF0uaXNfYT8gTG9jYWxMYWJlbFJlZmVyZW5jZQor
ICAgICAgICAgICAgICAgICRhc20ucHV0cyAiYnJhICN7b3BlcmFuZHNbMF0uYXNtTGFiZWx9Igor
ICAgICAgICAgICAgICAgICRhc20ucHV0cyAibm9wIgorICAgICAgICAgICAgZWxzaWYgb3BlcmFu
ZHNbMF0uaXNfYT8gUmVnaXN0ZXJJRCBvciBvcGVyYW5kc1swXS5pc19hPyBTcGVjaWFsUmVnaXN0
ZXIKKyAgICAgICAgICAgICAgICBlbWl0U0g0QnJhbmNoKCJqbXAiLCBvcGVyYW5kc1swXSkKKyAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByYWlzZSAiVW5oYW5kbGVkIHBhcmFtZXRl
cnMgZm9yIG9wY29kZSAje29wY29kZX0gYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIKKyAgICAgICAg
ICAgIGVuZAorICAgICAgICB3aGVuICJqbXBmIgorICAgICAgICAgICAgJGFzbS5wdXRzICIuYmFs
aWduIDQiCisgICAgICAgICAgICAkYXNtLnB1dHMgIm1vdi5sIEAoOCwgUEMpLCAje29wZXJhbmRz
WzBdLnNoNE9wZXJhbmR9IgorICAgICAgICAgICAgJGFzbS5wdXRzICJqbXAgQCN7b3BlcmFuZHNb
MF0uc2g0T3BlcmFuZH0iCisgICAgICAgICAgICAkYXNtLnB1dHMgIm5vcCIKKyAgICAgICAgICAg
ICRhc20ucHV0cyAibm9wIgorICAgICAgICAgICAgJGFzbS5wdXRzICIubG9uZyAje29wZXJhbmRz
WzFdLmFzbUxhYmVsfSIKKyAgICAgICAgd2hlbiAicmV0IgorICAgICAgICAgICAgJGFzbS5wdXRz
ICJydHMiCisgICAgICAgICAgICAkYXNtLnB1dHMgIm5vcCIKKyAgICAgICAgd2hlbiAibG9hZGIi
CisgICAgICAgICAgICAkYXNtLnB1dHMgIm1vdi5iICN7c2g0T3BlcmFuZHMob3BlcmFuZHMpfSIK
KyAgICAgICAgICAgICRhc20ucHV0cyAiZXh0dS5iICN7c2g0T3BlcmFuZHMoW29wZXJhbmRzWzFd
LCBvcGVyYW5kc1sxXV0pfSIKKyAgICAgICAgd2hlbiAibG9hZGgiCisgICAgICAgICAgICAkYXNt
LnB1dHMgIm1vdi53ICN7c2g0T3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgICAgICRhc20u
cHV0cyAiZXh0dS53ICN7c2g0T3BlcmFuZHMoW29wZXJhbmRzWzFdLCBvcGVyYW5kc1sxXV0pfSIK
KyAgICAgICAgd2hlbiAibG9hZGkiLCAibG9hZGlzIiwgImxvYWRwIiwgInN0b3JlaSIsICJzdG9y
ZXAiCisgICAgICAgICAgICAkYXNtLnB1dHMgIm1vdi5sICN7c2g0T3BlcmFuZHMob3BlcmFuZHMp
fSIKKyAgICAgICAgd2hlbiAibW92ZSIKKyAgICAgICAgICAgIGlmIG9wZXJhbmRzWzBdLmlzX2E/
IEltbWVkaWF0ZSBhbmQgKG9wZXJhbmRzWzBdLnZhbHVlIDwgLTEyOCBvciBvcGVyYW5kc1swXS52
YWx1ZSA+IDEyNykKKyAgICAgICAgICAgICAgICBlbWl0U0g0TG9hZENvbnN0YW50KG9wZXJhbmRz
WzBdLnZhbHVlLCBvcGVyYW5kc1sxXSkKKyAgICAgICAgICAgIGVsc2lmIG9wZXJhbmRzWzBdLmlz
X2E/IExhYmVsUmVmZXJlbmNlCisgICAgICAgICAgICAgICAgZW1pdFNINExvYWRDb25zdGFudChv
cGVyYW5kc1swXS5hc21MYWJlbCwgb3BlcmFuZHNbMV0pCisgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgJGFzbS5wdXRzICJtb3YgI3tzaDRPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAg
ICAgICAgICAgZW5kCisgICAgICAgIHdoZW4gImxlYXAiCisgICAgICAgICAgICBpZiBvcGVyYW5k
c1swXS5pc19hPyBCYXNlSW5kZXgKKyAgICAgICAgICAgICAgICBiaW9wID0gb3BlcmFuZHNbMF0K
KyAgICAgICAgICAgICAgICBpZiBiaW9wLnNjYWxlID4gMAorICAgICAgICAgICAgICAgICAgICAk
YXNtLnB1dHMgIm1vdiAje3NoNE9wZXJhbmRzKFtiaW9wLmluZGV4LCBvcGVyYW5kc1sxXV0pfSIK
KyAgICAgICAgICAgICAgICAgICAgaWYgYmlvcC5zY2FsZVNoaWZ0ID4gMAorICAgICAgICAgICAg
ICAgICAgICAgICAgZW1pdFNINFNoaWZ0SW1tKGJpb3Auc2NhbGVTaGlmdCwgb3BlcmFuZHNbMV0s
ICJsIikKKyAgICAgICAgICAgICAgICAgICAgZW5kCisgICAgICAgICAgICAgICAgICAgICRhc20u
cHV0cyAiYWRkICN7c2g0T3BlcmFuZHMoW2Jpb3AuYmFzZSwgb3BlcmFuZHNbMV1dKX0iCisgICAg
ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAkYXNtLnB1dHMgIm1vdiAje3No
NE9wZXJhbmRzKFtiaW9wLmJhc2UsIG9wZXJhbmRzWzFdXSl9IgorICAgICAgICAgICAgICAgIGVu
ZAorICAgICAgICAgICAgICAgIGlmIGJpb3Aub2Zmc2V0LnZhbHVlICE9IDAKKyAgICAgICAgICAg
ICAgICAgICAgJGFzbS5wdXRzICJhZGQgI3tzaDRPcGVyYW5kcyhbYmlvcC5vZmZzZXQsIG9wZXJh
bmRzWzFdXSl9IgorICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgZWxzaWYgb3BlcmFu
ZHNbMF0uaXNfYT8gQWRkcmVzcworICAgICAgICAgICAgICAgIGlmIG9wZXJhbmRzWzBdLmJhc2Ug
IT0gb3BlcmFuZHNbMV0KKyAgICAgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJtb3YgI3tzaDRP
cGVyYW5kcyhbb3BlcmFuZHNbMF0uYmFzZSwgb3BlcmFuZHNbMV1dKX0iCisgICAgICAgICAgICAg
ICAgZW5kCisgICAgICAgICAgICAgICAgaWYgb3BlcmFuZHNbMF0ub2Zmc2V0LnZhbHVlICE9IDAK
KyAgICAgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJhZGQgI3tzaDRPcGVyYW5kcyhbb3BlcmFu
ZHNbMF0ub2Zmc2V0LCBvcGVyYW5kc1sxXV0pfSIKKyAgICAgICAgICAgICAgICBlbmQKKyAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByYWlzZSAiVW5oYW5kbGVkIHBhcmFtZXRlcnMg
Zm9yIG9wY29kZSAje29wY29kZX0gYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIKKyAgICAgICAgICAg
IGVuZAorICAgICAgICB3aGVuICJsZHNwciIKKyAgICAgICAgICAgICRhc20ucHV0cyAibGRzICN7
c2g0T3BlcmFuZHMob3BlcmFuZHMpfSwgcHIiCisgICAgICAgIHdoZW4gInN0c3ByIgorICAgICAg
ICAgICAgJGFzbS5wdXRzICJzdHMgcHIsICN7c2g0T3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAg
ICAgd2hlbiAiYnJlYWsiCisgICAgICAgICAgICAjIFRoaXMgc3BlY2lhbCBvcGNvZGUgYWx3YXlz
IGdlbmVyYXRlcyBhbiBpbGxlZ2FsIGluc3RydWN0aW9uIGV4Y2VwdGlvbi4KKyAgICAgICAgICAg
ICRhc20ucHV0cyAiLndvcmQgMHhmZmZkIgorICAgICAgICBlbHNlCisgICAgICAgICAgICByYWlz
ZSAiVW5oYW5kbGVkIG9wY29kZSAje29wY29kZX0gYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIKKyAg
ICAgICAgZW5kCisgICAgZW5kCitlbmQKKwpJbmRleDogU291cmNlL1dURi9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dURi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0NzI4NSkKKysrIFNv
dXJjZS9XVEYvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTMt
MDMtMzEgIEp1bGllbiBCcmlhbmNlYXUgIDxqYnJpYW5jZWF1QG5kcy5jb20+CisKKyAgICAgICAg
TExJbnQgU0g0IGJhY2tlbmQgaW1wbGVtZW50YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMjg4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL1BsYXRmb3JtLmg6CisKIDIwMTMtMDMtMzAg
IFRvbSBTZXBleiAgPHRzZXBlekBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVmlldy1zb3VyY2Ug
aWZyYW1lcyBhcmUgZGFuZ2Vyb3VzIChhbmQgbm90IHZlcnkgdXNlZnVsKS4KSW5kZXg6IFNvdXJj
ZS9XVEYvd3RmL1BsYXRmb3JtLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvUGxhdGZv
cm0uaAkocmV2aXNpb24gMTQ3Mjg1KQorKysgU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAkod29y
a2luZyBjb3B5KQpAQCAtNzg4LDcgKzc4OCw3IEBACiAgICAgJiYgRU5BQkxFKEpJVCkgXAogICAg
ICYmIChPUyhEQVJXSU4pIHx8IE9TKExJTlVYKSkgXAogICAgICYmIChQTEFURk9STShNQUMpIHx8
IFBMQVRGT1JNKElPUykgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShRVCkpIFwKLSAgICAm
JiAoQ1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTV9USFVNQjIpIHx8IENQVShBUk1f
VFJBRElUSU9OQUwpIHx8IENQVShNSVBTKSkKKyAgICAmJiAoQ1BVKFg4NikgfHwgQ1BVKFg4Nl82
NCkgfHwgQ1BVKEFSTV9USFVNQjIpIHx8IENQVShBUk1fVFJBRElUSU9OQUwpIHx8IENQVShNSVBT
KSB8fCBDUFUoU0g0KSkKICNkZWZpbmUgRU5BQkxFX0xMSU5UIDEKICNlbmRpZgogCg==
</data>
<flag name="review"
          id="217857"
          type_id="1"
          status="-"
          setter="fpizlo"
    />
    <flag name="commit-queue"
          id="217858"
          type_id="3"
          status="-"
          setter="fpizlo"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>195907</attachid>
            <date>2013-03-31 13:48:41 -0700</date>
            <delta_ts>2013-04-14 08:32:14 -0700</delta_ts>
            <desc> SH4 LLint backend implementation using risc.rb (4)</desc>
            <filename>sh4-llint-backend-impl-using-risc_4.patch</filename>
            <type>text/plain</type>
            <size>40584</size>
            <attacher name="Julien Brianceau">jbriance</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTQ3Mjg4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBA
CisyMDEzLTAzLTMxICBKdWxpZW4gQnJpYW5jZWF1ICA8amJyaWFuY2VhdUBuZHMuY29tPgorCisg
ICAgICAgIExMSW50IFNINCBiYWNrZW5kIGltcGxlbWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTI4ODYKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGRmZy9ERkdPcGVyYXRpb25zLmNwcDoK
KyAgICAgICAgKEpTQyk6CisgICAgICAgICogaml0L0pJVFN0dWJzLmNwcDoKKyAgICAgICAgKiBs
bGludC9MTEludE9mZmxpbmVBc21Db25maWcuaDoKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbElu
dGVycHJldGVyLmFzbToKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQu
YXNtOgorICAgICAgICAqIG9mZmxpbmVhc20vYXJtLnJiOgorICAgICAgICAqIG9mZmxpbmVhc20v
YXN0LnJiOgorICAgICAgICAqIG9mZmxpbmVhc20vYmFja2VuZHMucmI6CisgICAgICAgICogb2Zm
bGluZWFzbS9pbnN0cnVjdGlvbnMucmI6CisgICAgICAgICogb2ZmbGluZWFzbS9taXBzLnJiOgor
ICAgICAgICAqIG9mZmxpbmVhc20vcmlzYy5yYjoKKyAgICAgICAgKiBvZmZsaW5lYXNtL3NoNC5y
YjogQWRkZWQuCisKIDIwMTMtMDMtMzAgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFw
cGxlLmNvbT4KIAogICAgICAgICBNb3ZlIFJlZ2lvbiBpbnRvIGl0cyBvd24gaGVhZGVyCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAJKHJldmlzaW9u
IDE0NzI4NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTE3NTIsNiArMTc1MiwxOCBAQCBTWU1CT0xfU1RSSU5HKGdldEhv
c3RDYWxsUmV0dXJuVmFsdWUpICI6CiAgICAgIm1vdmUgJGEwLCAkczAiICJcbiIKICAgICAiYiAi
IExPQ0FMX1JFRkVSRU5DRShnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNTdGF0ZSkgIlxu
IgogKTsKKyNlbGlmIENPTVBJTEVSKEdDQykgJiYgQ1BVKFNINCkKK2FzbSgKKyIudGV4dCIgIlxu
IgorIi5nbG9ibCAiIFNZTUJPTF9TVFJJTkcoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIlxuIgor
SElERV9TWU1CT0woZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIlxuIgorU1lNQk9MX1NUUklORyhn
ZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiOiIgIlxuIgorICAgICJhZGQgIy00MCwgcjE0IiAiXG4i
CisgICAgIm1vdi5sIEByMTQsIHIxNCIgIlxuIgorICAgICJtb3YgcjE0LCByNCIgIlxuIgorICAg
ICJicmEgIiBMT0NBTF9SRUZFUkVOQ0UoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZVdpdGhFeGVjU3Rh
dGUpICJcbiIKKyAgICAibm9wIiAiXG4iCispOwogI2VuZGlmCiAKIGV4dGVybiAiQyIgRW5jb2Rl
ZEpTVmFsdWUgSE9TVF9DQUxMX1JFVFVSTl9WQUxVRV9PUFRJT04gZ2V0SG9zdENhbGxSZXR1cm5W
YWx1ZVdpdGhFeGVjU3RhdGUoRXhlY1N0YXRlKiBleGVjKQpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRTdHVicy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRTdHVicy5jcHAJKHJldmlzaW9uIDE0NzI4NSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMjIsNiArMzIyLDkg
QEAgU1lNQk9MX1NUUklORyhjdGlUcmFtcG9saW5lKSAiOiIgIlxuIgogICAgICJhZGQgIzEyLCBy
MTUiICJcbiIKICAgICAicnRzIiAiXG4iCiAgICAgIm5vcCIgIlxuIgorIi5nbG9ibCAiIFNZTUJP
TF9TVFJJTkcoY3RpVHJhbXBvbGluZUVuZCkgIlxuIgorSElERV9TWU1CT0woY3RpVHJhbXBvbGlu
ZUVuZCkgIlxuIgorU1lNQk9MX1NUUklORyhjdGlUcmFtcG9saW5lRW5kKSAiOiIgIlxuIgogKTsK
IAogYXNtIHZvbGF0aWxlICgKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTElu
dE9mZmxpbmVBc21Db25maWcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvTExJbnRPZmZsaW5lQXNtQ29uZmlnLmgJKHJldmlzaW9uIDE0NzI4NSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludE9mZmxpbmVBc21Db25maWcuaAkod29ya2luZyBj
b3B5KQpAQCAtNDEsNiArNDEsNyBAQAogI2RlZmluZSBPRkZMSU5FX0FTTV9YODZfNjQgMAogI2Rl
ZmluZSBPRkZMSU5FX0FTTV9BUk12N3MgMAogI2RlZmluZSBPRkZMSU5FX0FTTV9NSVBTIDAKKyNk
ZWZpbmUgT0ZGTElORV9BU01fU0g0IDAKIAogI2Vsc2UgLy8gIUVOQUJMRShMTElOVF9DX0xPT1Ap
CiAKQEAgLTg5LDYgKzkwLDEyIEBACiAjZGVmaW5lIE9GRkxJTkVfQVNNX01JUFMgMAogI2VuZGlm
CiAKKyNpZiBDUFUoU0g0KQorI2RlZmluZSBPRkZMSU5FX0FTTV9TSDQgMQorI2Vsc2UKKyNkZWZp
bmUgT0ZGTElORV9BU01fU0g0IDAKKyNlbmRpZgorCiAjZW5kaWYgLy8gIUVOQUJMRShMTElOVF9D
X0xPT1ApCiAKICNpZiBVU0UoSlNWQUxVRTY0KQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20JKHJldmlz
aW9uIDE0NzI4NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVy
cHJldGVyMzJfNjQuYXNtCSh3b3JraW5nIGNvcHkpCkBAIC0xMTMsNyArMTEzLDcgQEAgbWFjcm8g
Y0NhbGwyKGZ1bmN0aW9uLCBhcmcxLCBhcmcyKQogICAgICAgICBwb2tlIGFyZzEsIDAKICAgICAg
ICAgcG9rZSBhcmcyLCAxCiAgICAgICAgIGNhbGwgZnVuY3Rpb24KLSAgICBlbHNpZiBNSVBTCisg
ICAgZWxzaWYgTUlQUyBvciBTSDQKICAgICAgICAgbW92ZSBhcmcxLCBhMAogICAgICAgICBtb3Zl
IGFyZzIsIGExCiAgICAgICAgIGNhbGwgZnVuY3Rpb24KQEAgLTEzOCw3ICsxMzgsNyBAQCBtYWNy
byBjQ2FsbDQoZnVuY3Rpb24sIGFyZzEsIGFyZzIsIGFyZzMsCiAgICAgICAgIHBva2UgYXJnMywg
MgogICAgICAgICBwb2tlIGFyZzQsIDMKICAgICAgICAgY2FsbCBmdW5jdGlvbgotICAgIGVsc2lm
IE1JUFMKKyAgICBlbHNpZiBNSVBTIG9yIFNINAogICAgICAgICBtb3ZlIGFyZzEsIGEwCiAgICAg
ICAgIG1vdmUgYXJnMiwgYTEKICAgICAgICAgbW92ZSBhcmczLCBhMgpAQCAtMTkxMyw2ICsxOTEz
LDE5IEBAIG1hY3JvIG5hdGl2ZUNhbGxUcmFtcG9saW5lKGV4ZWN1dGFibGVPZmYKICAgICAgICAg
Y2FsbCBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvblt0MV0KICAgICAgICAgcmVzdG9yZVJldHVy
bkFkZHJlc3NCZWZvcmVSZXR1cm4odDMpCiAgICAgICAgIGxvYWRwIEpJVFN0YWNrRnJhbWU6Omds
b2JhbERhdGFbc3BdLCB0MworICAgIGVsc2lmIFNINAorICAgICAgICBsb2FkcCBKSVRTdGFja0Zy
YW1lOjpnbG9iYWxEYXRhW3NwXSwgdDMKKyAgICAgICAgc3RvcmVwIGNmciwgSlNHbG9iYWxEYXRh
Ojp0b3BDYWxsRnJhbWVbdDNdCisgICAgICAgIG1vdmUgdDAsIHQyCisgICAgICAgIHByZXNlcnZl
UmV0dXJuQWRkcmVzc0FmdGVyQ2FsbCh0MykKKyAgICAgICAgc3RvcmVwIHQzLCBSZXR1cm5QQ1tj
ZnJdCisgICAgICAgIG1vdmUgY2ZyLCB0MAorICAgICAgICBsb2FkaSBDYWxsZWUgKyBQYXlsb2Fk
T2Zmc2V0W2Nmcl0sIHQxCisgICAgICAgIGxvYWRwIEpTRnVuY3Rpb246Om1fZXhlY3V0YWJsZVt0
MV0sIHQxCisgICAgICAgIG1vdmUgdDIsIGNmcgorICAgICAgICBjYWxsIGV4ZWN1dGFibGVPZmZz
ZXRUb0Z1bmN0aW9uW3QxXQorICAgICAgICByZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVy
bih0MykKKyAgICAgICAgbG9hZHAgSklUU3RhY2tGcmFtZTo6Z2xvYmFsRGF0YVtzcF0sIHQzCiAg
ICAgZWxzaWYgQ19MT09QCiAgICAgICAgIGxvYWRwIEpJVFN0YWNrRnJhbWU6Omdsb2JhbERhdGFb
c3BdLCB0MwogICAgICAgICBzdG9yZXAgY2ZyLCBKU0dsb2JhbERhdGE6OnRvcENhbGxGcmFtZVt0
M10KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVy
LmFzbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJ
bnRlcnByZXRlci5hc20JKHJldmlzaW9uIDE0NzI4NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQkod29ya2luZyBjb3B5KQpAQCAtMTg1LDYg
KzE4NSw4IEBAIG1hY3JvIHByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbChkZXMKICAgICBp
ZiBDX0xPT1Agb3IgQVJNIG9yIEFSTXY3IG9yIEFSTXY3X1RSQURJVElPTkFMIG9yIE1JUFMKICAg
ICAgICAgIyBJbiBDX0xPT1AgY2FzZSwgd2UncmUgb25seSBwcmVzZXJ2aW5nIHRoZSBieXRlY29k
ZSB2UEMuCiAgICAgICAgIG1vdmUgbHIsIGRlc3RpbmF0aW9uUmVnaXN0ZXIKKyAgICBlbHNpZiBT
SDQKKyAgICAgICAgc3RzcHIgZGVzdGluYXRpb25SZWdpc3RlcgogICAgIGVsc2lmIFg4NiBvciBY
ODZfNjQKICAgICAgICAgcG9wIGRlc3RpbmF0aW9uUmVnaXN0ZXIKICAgICBlbHNlCkBAIC0xOTYs
NiArMTk4LDggQEAgbWFjcm8gcmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4ocwogICAg
IGlmIENfTE9PUCBvciBBUk0gb3IgQVJNdjcgb3IgQVJNdjdfVFJBRElUSU9OQUwgb3IgTUlQUwog
ICAgICAgICAjIEluIENfTE9PUCBjYXNlLCB3ZSdyZSBvbmx5IHJlc3RvcmluZyB0aGUgYnl0ZWNv
ZGUgdlBDLgogICAgICAgICBtb3ZlIHNvdXJjZVJlZ2lzdGVyLCBscgorICAgIGVsc2lmIFNINAor
ICAgICAgICBsZHNwciBzb3VyY2VSZWdpc3RlcgogICAgIGVsc2lmIFg4NiBvciBYODZfNjQKICAg
ICAgICAgcHVzaCBzb3VyY2VSZWdpc3RlcgogICAgIGVsc2UKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9vZmZsaW5lYXNtL2FybS5yYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvb2ZmbGluZWFzbS9hcm0ucmIJKHJldmlzaW9uIDE0NzI4NSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FybS5yYgkod29ya2luZyBjb3B5KQpAQCAtMjE3LDcgKzIx
Nyw3IEBAIGNsYXNzIFNlcXVlbmNlCiAgICAgICAgICAgICBlbmQKICAgICAgICAgfQogICAgICAg
ICByZXN1bHQgPSByaXNjTG93ZXJNYWxmb3JtZWRBZGRyZXNzZXNEb3VibGUocmVzdWx0KQotICAg
ICAgICByZXN1bHQgPSByaXNjTG93ZXJNaXNwbGFjZWRJbW1lZGlhdGVzKHJlc3VsdCkKKyAgICAg
ICAgcmVzdWx0ID0gcmlzY0xvd2VyTWlzcGxhY2VkSW1tZWRpYXRlcyhyZXN1bHQsIFsic3RvcmVi
IiwgInN0b3JlaSIsICJzdG9yZXAiXSkKICAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2VyTWFsZm9y
bWVkSW1tZWRpYXRlcyhyZXN1bHQsIDAuLjB4ZmYpCiAgICAgICAgIHJlc3VsdCA9IHJpc2NMb3dl
ck1pc3BsYWNlZEFkZHJlc3NlcyhyZXN1bHQpCiAgICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlclJl
Z2lzdGVyUmV1c2UocmVzdWx0KQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVh
c20vYXN0LnJiCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNt
L2FzdC5yYgkocmV2aXNpb24gMTQ3Mjg1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxp
bmVhc20vYXN0LnJiCSh3b3JraW5nIGNvcHkpCkBAIC02NzEsNiArNjcxLDEwIEBAIGNsYXNzIEFk
ZHJlc3MgPCBOb2RlCiAgICAgICAgIHJhaXNlICJCYWQgb2Zmc2V0IGZvciBhZGRyZXNzICN7b2Zm
c2V0Lmluc3BlY3R9IGF0ICN7Y29kZU9yaWdpblN0cmluZ30iIHVubGVzcyBvZmZzZXQuaXNfYT8g
VmFyaWFibGUgb3Igb2Zmc2V0LmltbWVkaWF0ZT8KICAgICBlbmQKICAgICAKKyAgICBkZWYgd2l0
aE9mZnNldChleHRyYU9mZnNldCkKKyAgICAgICAgQWRkcmVzcy5uZXcoY29kZU9yaWdpbiwgQGJh
c2UsIEltbWVkaWF0ZS5uZXcoY29kZU9yaWdpbiwgQG9mZnNldC52YWx1ZSArIGV4dHJhT2Zmc2V0
KSkKKyAgICBlbmQKKyAgICAKICAgICBkZWYgY2hpbGRyZW4KICAgICAgICAgW0BiYXNlLCBAb2Zm
c2V0XQogICAgIGVuZApAQCAtNzI3LDYgKzczMSwxMCBAQCBjbGFzcyBCYXNlSW5kZXggPCBOb2Rl
CiAgICAgICAgIGVuZAogICAgIGVuZAogICAgIAorICAgIGRlZiB3aXRoT2Zmc2V0KGV4dHJhT2Zm
c2V0KQorICAgICAgICBCYXNlSW5kZXgubmV3KGNvZGVPcmlnaW4sIEBiYXNlLCBAaW5kZXgsIEBz
Y2FsZSwgSW1tZWRpYXRlLm5ldyhjb2RlT3JpZ2luLCBAb2Zmc2V0LnZhbHVlICsgZXh0cmFPZmZz
ZXQpKQorICAgIGVuZAorICAgIAogICAgIGRlZiBjaGlsZHJlbgogICAgICAgICBbQGJhc2UsIEBp
bmRleCwgQG9mZnNldF0KICAgICBlbmQKQEAgLTc2NCw2ICs3NzIsMTAgQEAgY2xhc3MgQWJzb2x1
dGVBZGRyZXNzIDwgTm9DaGlsZHJlbgogICAgICAgICBAYWRkcmVzcyA9IGFkZHJlc3MKICAgICBl
bmQKICAgICAKKyAgICBkZWYgd2l0aE9mZnNldChleHRyYU9mZnNldCkKKyAgICAgICAgQWJzb2x1
dGVBZGRyZXNzLm5ldyhjb2RlT3JpZ2luLCBJbW1lZGlhdGUubmV3KGNvZGVPcmlnaW4sIEBhZGRy
ZXNzLnZhbHVlICsgZXh0cmFPZmZzZXQpKQorICAgIGVuZAorICAgIAogICAgIGRlZiBkdW1wCiAg
ICAgICAgICIje2FkZHJlc3MuZHVtcH1bXSIKICAgICBlbmQKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9vZmZsaW5lYXNtL2JhY2tlbmRzLnJiCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9vZmZsaW5lYXNtL2JhY2tlbmRzLnJiCShyZXZpc2lvbiAxNDcyODUpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9iYWNrZW5kcy5yYgkod29ya2luZyBjb3B5
KQpAQCAtMjYsNiArMjYsNyBAQCByZXF1aXJlICJhcm0iCiByZXF1aXJlICJhc3QiCiByZXF1aXJl
ICJ4ODYiCiByZXF1aXJlICJtaXBzIgorcmVxdWlyZSAic2g0IgogcmVxdWlyZSAiY2xvb3AiCiAK
IEJBQ0tFTkRTID0KQEAgLTM2LDYgKzM3LDcgQEAgQkFDS0VORFMgPQogICAgICAiQVJNdjciLAog
ICAgICAiQVJNdjdfVFJBRElUSU9OQUwiLAogICAgICAiTUlQUyIsCisgICAgICJTSDQiLAogICAg
ICAiQ19MT09QIgogICAgIF0KIApAQCAtNTIsNiArNTQsNyBAQCBXT1JLSU5HX0JBQ0tFTkRTID0K
ICAgICAgIkFSTXY3IiwKICAgICAgIkFSTXY3X1RSQURJVElPTkFMIiwKICAgICAgIk1JUFMiLAor
ICAgICAiU0g0IiwKICAgICAgIkNfTE9PUCIKICAgICBdCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9vZmZsaW5lYXNtL2luc3RydWN0aW9ucy5yYgo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmIJKHJldmlzaW9uIDE0NzI4
NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2luc3RydWN0aW9ucy5yYgko
d29ya2luZyBjb3B5KQpAQCAtMjc1LDYgKzI3NSwyMSBAQCBNSVBTX0lOU1RSVUNUSU9OUyA9CiAg
ICAgInBpY2hkcnJhIgogICAgIF0KIAorU0g0X0lOU1RSVUNUSU9OUyA9CisgICAgWworICAgICJz
aGxseCIsCisgICAgInNobHJ4IiwKKyAgICAic2hsZCIsCisgICAgInNoYWQiLAorICAgICJiZG5h
biIsCisgICAgImxvYWRkUmV2ZXJzZWRBbmRJbmNyZW1lbnRBZGRyZXNzIiwKKyAgICAic3RvcmVk
UmV2ZXJzZWRBbmREZWNyZW1lbnRBZGRyZXNzIiwKKyAgICAibGRzcHIiLAorICAgICJzdHNwciIs
CisgICAgImNhbGxmIiwKKyAgICAiam1wZiIKKyAgICBdCisKIENYWF9JTlNUUlVDVElPTlMgPQog
ICAgIFsKICAgICAgImNsb29wQ3Jhc2giLCAgICAgICAgICAgIyBubyBvcGVyYW5kcwpAQCAtMjkx
LDcgKzMwNiw3IEBAIENYWF9JTlNUUlVDVElPTlMgPQogICAgICAiY2xvb3BEbyIsICAgICAgICAg
ICAgICAjIG5vIG9wZXJhbmRzCiAgICAgXQogCi1JTlNUUlVDVElPTlMgPSBNQUNST19JTlNUUlVD
VElPTlMgKyBYODZfSU5TVFJVQ1RJT05TICsgQVJNX0lOU1RSVUNUSU9OUyArIE1JUFNfSU5TVFJV
Q1RJT05TICsgQ1hYX0lOU1RSVUNUSU9OUworSU5TVFJVQ1RJT05TID0gTUFDUk9fSU5TVFJVQ1RJ
T05TICsgWDg2X0lOU1RSVUNUSU9OUyArIEFSTV9JTlNUUlVDVElPTlMgKyBNSVBTX0lOU1RSVUNU
SU9OUyArIFNINF9JTlNUUlVDVElPTlMgKyBDWFhfSU5TVFJVQ1RJT05TCiAKIElOU1RSVUNUSU9O
X1BBVFRFUk4gPSBSZWdleHAubmV3KCdcXEEoKCcgKyBJTlNUUlVDVElPTlMuam9pbignKXwoJykg
KyAnKSlcXFonKQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9taXBz
LnJiCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL21pcHMu
cmIJKHJldmlzaW9uIDE0NzI4NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNt
L21pcHMucmIJKHdvcmtpbmcgY29weSkKQEAgLTU3MSw3ICs1NzEsNyBAQCBjbGFzcyBTZXF1ZW5j
ZQogICAgICAgICAgICAgZW5kCiAgICAgICAgIH0KICAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2Vy
TWFsZm9ybWVkQWRkcmVzc2VzRG91YmxlKHJlc3VsdCkKLSAgICAgICAgcmVzdWx0ID0gcmlzY0xv
d2VyTWlzcGxhY2VkSW1tZWRpYXRlcyhyZXN1bHQpCisgICAgICAgIHJlc3VsdCA9IHJpc2NMb3dl
ck1pc3BsYWNlZEltbWVkaWF0ZXMocmVzdWx0LCBbInN0b3JlYiIsICJzdG9yZWkiLCAic3RvcmVw
Il0pCiAgICAgICAgIHJlc3VsdCA9IG1pcHNMb3dlck1pc3BsYWNlZEltbWVkaWF0ZXMocmVzdWx0
KQogICAgICAgICByZXN1bHQgPSByaXNjTG93ZXJNYWxmb3JtZWRJbW1lZGlhdGVzKHJlc3VsdCwg
LTB4ZmZmZi4uMHhmZmZmKQogICAgICAgICByZXN1bHQgPSBtaXBzTG93ZXJNaXNwbGFjZWRBZGRy
ZXNzZXMocmVzdWx0KQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcmlz
Yy5yYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9yaXNj
LnJiCShyZXZpc2lvbiAxNDcyODUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFz
bS9yaXNjLnJiCSh3b3JraW5nIGNvcHkpCkBAIC0yNzIsNyArMjcyLDcgQEAgZGVmIHJpc2NMb3dl
ck1hbGZvcm1lZEFkZHJlc3Nlc0RvdWJsZShsaQogZW5kCiAKICMKLSMgTG93ZXJpbmcgb2YgbWlz
cGxhY2VkIGltbWVkaWF0ZXMuIEZvciBleGFtcGxlOgorIyBMb3dlcmluZyBvZiBtaXNwbGFjZWQg
aW1tZWRpYXRlcyBmb3Igb3Bjb2RlcyBpbiBvcGNvZGVMaXN0LiBGb3IgZXhhbXBsZSwgaWYgc3Rv
cmVpIGlzIGluIG9wY29kZUxpc3Q6CiAjCiAjIHN0b3JlaSAwLCBbZm9vXQogIwpAQCAtMjgyLDEz
ICsyODIsMTIgQEAgZW5kCiAjIHN0b3JlaSB0bXAsIFtmb29dCiAjCiAKLWRlZiByaXNjTG93ZXJN
aXNwbGFjZWRJbW1lZGlhdGVzKGxpc3QpCitkZWYgcmlzY0xvd2VyTWlzcGxhY2VkSW1tZWRpYXRl
cyhsaXN0LCBvcGNvZGVMaXN0KQogICAgIG5ld0xpc3QgPSBbXQogICAgIGxpc3QuZWFjaCB7CiAg
ICAgICAgIHwgbm9kZSB8CiAgICAgICAgIGlmIG5vZGUuaXNfYT8gSW5zdHJ1Y3Rpb24KLSAgICAg
ICAgICAgIGNhc2Ugbm9kZS5vcGNvZGUKLSAgICAgICAgICAgIHdoZW4gInN0b3JlYiIsICJzdG9y
ZWkiLCAic3RvcmVwIgorICAgICAgICAgICAgaWYgb3Bjb2RlTGlzdC5pbmNsdWRlPyBub2RlLm9w
Y29kZQogICAgICAgICAgICAgICAgIG9wZXJhbmRzID0gbm9kZS5vcGVyYW5kcwogICAgICAgICAg
ICAgICAgIG5ld09wZXJhbmRzID0gW10KICAgICAgICAgICAgICAgICBvcGVyYW5kcy5lYWNoIHsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3NoNC5yYgo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9zaDQucmIJKHJldmlzaW9uIDAp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9zaDQucmIJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsNzYxIEBACisjIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxMyBDaXNjbyBTeXN0ZW1zLCBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJl
IG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
Q0lTQ08gU1lTVEVNUywgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorIyBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorIyBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQ0lTQ08g
U1lTVEVNUywgSU5DLiBPUiBJVFMKKyMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisjIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisjIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyMgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorCityZXF1aXJlICdyaXNjJworCitjbGFzcyBOb2RlCisgICAgZGVmIHNoNFNpbmdsZUhpCisg
ICAgICAgIGRvdWJsZU9wZXJhbmQgPSBzaDRPcGVyYW5kCisgICAgICAgIHJhaXNlICJCb2d1cyBy
ZWdpc3RlciBuYW1lICN7ZG91YmxlT3BlcmFuZH0iIHVubGVzcyBkb3VibGVPcGVyYW5kID1+IC9e
ZHIvCisgICAgICAgICJmciIgKyAoJH4ucG9zdF9tYXRjaC50b19pKS50b19zCisgICAgZW5kCisg
ICAgZGVmIHNoNFNpbmdsZUxvCisgICAgICAgIGRvdWJsZU9wZXJhbmQgPSBzaDRPcGVyYW5kCisg
ICAgICAgIHJhaXNlICJCb2d1cyByZWdpc3RlciBuYW1lICN7ZG91YmxlT3BlcmFuZH0iIHVubGVz
cyBkb3VibGVPcGVyYW5kID1+IC9eZHIvCisgICAgICAgICJmciIgKyAoJH4ucG9zdF9tYXRjaC50
b19pICsgMSkudG9fcworICAgIGVuZAorZW5kCisKK2NsYXNzIFNwZWNpYWxSZWdpc3RlciA8IE5v
Q2hpbGRyZW4KKyAgICBkZWYgc2g0T3BlcmFuZAorICAgICAgICBAbmFtZQorICAgIGVuZAorCisg
ICAgZGVmIGR1bXAKKyAgICAgICAgQG5hbWUKKyAgICBlbmQKKworICAgIGRlZiByZWdpc3Rlcj8K
KyAgICAgICAgdHJ1ZQorICAgIGVuZAorZW5kCisKK1NINF9UTVBfR1BSUyA9IFsgU3BlY2lhbFJl
Z2lzdGVyLm5ldygicjMiKSwgU3BlY2lhbFJlZ2lzdGVyLm5ldygicjExIiksIFNwZWNpYWxSZWdp
c3Rlci5uZXcoInIxMyIpIF0KK1NINF9UTVBfRlBSUyA9IFsgU3BlY2lhbFJlZ2lzdGVyLm5ldygi
ZHIxMCIpIF0KKworY2xhc3MgUmVnaXN0ZXJJRAorICAgIGRlZiBzaDRPcGVyYW5kCisgICAgICAg
IGNhc2UgbmFtZQorICAgICAgICB3aGVuICJhMCIKKyAgICAgICAgICAgICJyNCIKKyAgICAgICAg
d2hlbiAiYTEiCisgICAgICAgICAgICAicjUiCisgICAgICAgIHdoZW4gInQwIgorICAgICAgICAg
ICAgInIwIgorICAgICAgICB3aGVuICJ0MSIKKyAgICAgICAgICAgICJyMSIKKyAgICAgICAgd2hl
biAidDIiCisgICAgICAgICAgICAicjIiCisgICAgICAgIHdoZW4gInQzIgorICAgICAgICAgICAg
InIxMCIKKyAgICAgICAgd2hlbiAidDQiCisgICAgICAgICAgICAicjYiCisgICAgICAgIHdoZW4g
ImNmciIKKyAgICAgICAgICAgICJyMTQiCisgICAgICAgIHdoZW4gInNwIgorICAgICAgICAgICAg
InIxNSIKKyAgICAgICAgd2hlbiAibHIiCisgICAgICAgICAgICAicHIiCisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIHJhaXNlICJCYWQgcmVnaXN0ZXIgI3tuYW1lfSBmb3IgU0g0IGF0ICN7Y29k
ZU9yaWdpblN0cmluZ30iCisgICAgICAgIGVuZAorICAgIGVuZAorZW5kCisKK2NsYXNzIEZQUmVn
aXN0ZXJJRAorICAgIGRlZiBzaDRPcGVyYW5kCisgICAgICAgIGNhc2UgbmFtZQorICAgICAgICB3
aGVuICJmdDAiLCAiZnIiCisgICAgICAgICAgICAiZHIwIgorICAgICAgICB3aGVuICJmdDEiCisg
ICAgICAgICAgICAiZHIyIgorICAgICAgICB3aGVuICJmdDIiCisgICAgICAgICAgICAiZHI0Igor
ICAgICAgICB3aGVuICJmdDMiCisgICAgICAgICAgICAiZHI2IgorICAgICAgICB3aGVuICJmdDQi
CisgICAgICAgICAgICAiZHI4IgorICAgICAgICB3aGVuICJmYTAiCisgICAgICAgICAgICAiZHIx
MiIKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmFpc2UgIkJhZCByZWdpc3RlciAje25hbWV9
IGZvciBTSDQgYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIKKyAgICAgICAgZW5kCisgICAgZW5kCitl
bmQKKworY2xhc3MgSW1tZWRpYXRlCisgICAgZGVmIHNoNE9wZXJhbmQKKyAgICAgICAgcmFpc2Ug
IkludmFsaWQgaW1tZWRpYXRlICN7dmFsdWV9IGF0ICN7Y29kZU9yaWdpblN0cmluZ30iIGlmIHZh
bHVlIDwgLTEyOCBvciB2YWx1ZSA+IDEyNworICAgICAgICAiIyN7dmFsdWV9IgorICAgIGVuZAor
ZW5kCisKK2NsYXNzIEFkZHJlc3MKKyAgICBkZWYgc2g0T3BlcmFuZAorICAgICAgICByYWlzZSAi
QmFkIG9mZnNldCAje29mZnNldC52YWx1ZX0gYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIgaWYgb2Zm
c2V0LnZhbHVlIDwgMCBvciBvZmZzZXQudmFsdWUgPiA2MAorICAgICAgICBpZiBvZmZzZXQudmFs
dWUgPT0gMAorICAgICAgICAgICAgIkAje2Jhc2Uuc2g0T3BlcmFuZH0iCisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICJAKCN7b2Zmc2V0LnZhbHVlfSwgI3tiYXNlLnNoNE9wZXJhbmR9KSIKKyAg
ICAgICAgZW5kCisgICAgZW5kCisKKyAgICBkZWYgc2g0T3BlcmFuZFBvc3RJbmMKKyAgICAgICAg
cmFpc2UgIkJhZCBvZmZzZXQgI3tvZmZzZXQudmFsdWV9IGZvciBwb3N0IGluYyBhdCAje2NvZGVP
cmlnaW5TdHJpbmd9IiB1bmxlc3Mgb2Zmc2V0LnZhbHVlID09IDAKKyAgICAgICAgIkAje2Jhc2Uu
c2g0T3BlcmFuZH0rIgorICAgIGVuZAorCisgICAgZGVmIHNoNE9wZXJhbmRQcmVEZWMKKyAgICAg
ICAgcmFpc2UgIkJhZCBvZmZzZXQgI3tvZmZzZXQudmFsdWV9IGZvciBwcmUgZGVjIGF0ICN7Y29k
ZU9yaWdpblN0cmluZ30iIHVubGVzcyBvZmZzZXQudmFsdWUgPT0gMAorICAgICAgICAiQC0je2Jh
c2Uuc2g0T3BlcmFuZH0iCisgICAgZW5kCitlbmQKKworY2xhc3MgQmFzZUluZGV4CisgICAgZGVm
IHNoNE9wZXJhbmQKKyAgICAgICAgcmFpc2UgIlVuY29udmVydGVkIGJhc2UgaW5kZXggYXQgI3tj
b2RlT3JpZ2luU3RyaW5nfSIKKyAgICBlbmQKK2VuZAorCitjbGFzcyBBYnNvbHV0ZUFkZHJlc3MK
KyAgICBkZWYgc2g0T3BlcmFuZAorICAgICAgICByYWlzZSAiVW5jb252ZXJ0ZWQgYWJzb2x1dGUg
YWRkcmVzcyBhdCAje2NvZGVPcmlnaW5TdHJpbmd9IgorICAgIGVuZAorZW5kCisKKworIworIyBM
b3dlcmluZyBvZiBzaGlmdCBvcHMgZm9yIFNINC4gRm9yIGV4YW1wbGU6CisjCisjIHJzaGlmdGkg
Zm9vLCBiYXIKKyMKKyMgYmVjb21lczoKKyMKKyMgbmVnaSBmb28sIHRtcAorIyBzaGxkIHRtcCwg
YmFyCisjCisKK2RlZiBzaDRMb3dlclNoaWZ0T3BzKGxpc3QpCisgICAgbmV3TGlzdCA9IFtdCisg
ICAgbGlzdC5lYWNoIHsKKyAgICAgICAgfCBub2RlIHwKKyAgICAgICAgaWYgbm9kZS5pc19hPyBJ
bnN0cnVjdGlvbgorICAgICAgICAgICAgY2FzZSBub2RlLm9wY29kZQorICAgICAgICAgICAgd2hl
biAidWxzaGlmdGkiLCAidWxzaGlmdHAiLCAidXJzaGlmdGkiLCAidXJzaGlmdHAiLCAibHNoaWZ0
aSIsICJsc2hpZnRwIiwgInJzaGlmdGkiLCAicnNoaWZ0cCIKKyAgICAgICAgICAgICAgICBpZiBu
b2RlLm9wY29kZVswLDFdID09ICJ1IgorICAgICAgICAgICAgICAgICAgICB0eXBlID0gImwiCisg
ICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbiA9IG5vZGUub3Bjb2RlWzEsMV0KKyAgICAgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAiYSIKKyAgICAgICAgICAg
ICAgICAgICAgZGlyZWN0aW9uID0gbm9kZS5vcGNvZGVbMCwxXQorICAgICAgICAgICAgICAgIGVu
ZAorICAgICAgICAgICAgICAgIGlmIG5vZGUub3BlcmFuZHNbMF0uaXNfYT8gSW1tZWRpYXRlCisg
ICAgICAgICAgICAgICAgICAgIGlmIG5vZGUub3BlcmFuZHNbMF0udmFsdWUgPT0gMAorICAgICAg
ICAgICAgICAgICAgICAgICAgIyBUaGVyZSBpcyBub3RoaW5nIHRvIGRvIGhlcmUuCisgICAgICAg
ICAgICAgICAgICAgIGVsc2lmIG5vZGUub3BlcmFuZHNbMF0udmFsdWUgPT0gMSBvciAodHlwZSA9
PSAibCIgYW5kIFsyLCA4LCAxNl0uaW5jbHVkZT8gbm9kZS5vcGVyYW5kc1swXS52YWx1ZSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29k
ZU9yaWdpbiwgInNoI3t0eXBlfSN7ZGlyZWN0aW9ufXgiLCBub2RlLm9wZXJhbmRzKQorICAgICAg
ICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBUbXAubmV3
KG5vZGUuY29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIGRpcmVj
dGlvbiA9PSAibCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3Ry
dWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJtb3ZlIiwgW25vZGUub3BlcmFuZHNbMF0sIHRt
cF0pCisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAibW92ZSIs
IFtJbW1lZGlhdGUubmV3KG5vZGUub3BlcmFuZHNbMF0uY29kZU9yaWdpbiwgLTEgKiBub2RlLm9w
ZXJhbmRzWzBdLnZhbHVlKSwgdG1wXSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGVuZAorICAg
ICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2Rl
T3JpZ2luLCAic2gje3R5cGV9ZCIsIFt0bXAsIG5vZGUub3BlcmFuZHNbMV1dKQorICAgICAgICAg
ICAgICAgICAgICBlbmQKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAg
IGlmIGRpcmVjdGlvbiA9PSAibCIKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwg
SW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgInNoI3t0eXBlfWQiLCBub2RlLm9wZXJh
bmRzKQorICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICB0
bXAgPSBUbXAubmV3KG5vZGUuY29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAgICAgICAgICAg
ICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgIm5lZ2kiLCBb
bm9kZS5vcGVyYW5kc1swXSwgdG1wXSkKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ld0xpc3Qg
PDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgInNoI3t0eXBlfWQiLCBbdG1wLCBu
b2RlLm9wZXJhbmRzWzFdXSkKKyAgICAgICAgICAgICAgICAgICAgZW5kCisgICAgICAgICAgICAg
ICAgZW5kCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBub2Rl
CisgICAgICAgICAgICBlbmQKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbmV3TGlzdCA8PCBu
b2RlCisgICAgICAgIGVuZAorICAgIH0KKyAgICBuZXdMaXN0CitlbmQKKworCisjCisjIExvd2Vy
aW5nIG9mIHNpbXBsZSBicmFuY2ggb3BzIGZvciBTSDQuIEZvciBleGFtcGxlOgorIworIyBiYWRk
aXMgZm9vLCBiYXIsIGJhegorIworIyB3aWxsIGJlY29tZToKKyMKKyMgYWRkaSBmb28sIGJhciwg
dG1wCisjIGJzIHRtcCwgYmF6CisjCisKK2RlZiBzaDRMb3dlclNpbXBsZUJyYW5jaE9wcyhsaXN0
KQorICAgIG5ld0xpc3QgPSBbXQorICAgIGxpc3QuZWFjaCB7CisgICAgICAgIHwgbm9kZSB8Cisg
ICAgICAgIGlmIG5vZGUuaXNfYT8gSW5zdHJ1Y3Rpb24KKyAgICAgICAgICAgIGFubm90YXRpb24g
PSBub2RlLmFubm90YXRpb24KKyAgICAgICAgICAgIGNhc2Ugbm9kZS5vcGNvZGUKKyAgICAgICAg
ICAgIHdoZW4gL15iKGFkZGl8c3ViaXxvcml8YWRkcCkvCisgICAgICAgICAgICAgICAgb3AgPSAk
MQorICAgICAgICAgICAgICAgIGJjID0gJH4ucG9zdF9tYXRjaAorICAgICAgICAgICAgICAgIGJy
YW5jaCA9ICJiIiArIGJjCisKKyAgICAgICAgICAgICAgICBjYXNlIG9wCisgICAgICAgICAgICAg
ICAgd2hlbiAiYWRkaSIsICJhZGRwIgorICAgICAgICAgICAgICAgICAgICBvcCA9ICJhZGRpIgor
ICAgICAgICAgICAgICAgIHdoZW4gInN1YmkiCisgICAgICAgICAgICAgICAgICAgIG9wID0gInN1
YmkiCisgICAgICAgICAgICAgICAgd2hlbiAib3JpIgorICAgICAgICAgICAgICAgICAgICBvcCA9
ICJvcmkiCisgICAgICAgICAgICAgICAgZW5kCisKKyAgICAgICAgICAgICAgICBpZiBiYyA9PSAi
cyIKKyAgICAgICAgICAgICAgICAgICAgdG1wID0gVG1wLm5ldyhub2RlLmNvZGVPcmlnaW4sIDpn
cHIpCisgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUu
Y29kZU9yaWdpbiwgb3AsIFtub2RlLm9wZXJhbmRzWzBdLCBub2RlLm9wZXJhbmRzWzFdLCB0bXBd
KQorICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNv
ZGVPcmlnaW4sICJicyIsIFt0bXAsIG5vZGUub3BlcmFuZHNbMl1dKQorICAgICAgICAgICAgICAg
IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBub2RlCisgICAgICAgICAgICAg
ICAgZW5kCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBub2Rl
CisgICAgICAgICAgICBlbmQKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbmV3TGlzdCA8PCBu
b2RlCisgICAgICAgIGVuZAorICAgIH0KKyAgICBuZXdMaXN0CitlbmQKKworCisjCisjIExvd2Vy
aW5nIG9mIGRvdWJsZSBhY2Nlc3NlcyBmb3IgU0g0LiBGb3IgZXhhbXBsZToKKyMKKyMgbG9hZGQg
W2ZvbywgYmFyLCA4XSwgYmF6CisjCisjIGJlY29tZXM6CisjCisjIGxlYXAgW2ZvbywgYmFyLCA4
XSwgdG1wCisjIGxvYWRkUmV2ZXJzZWRBbmRJbmNyZW1lbnRBZGRyZXNzIFt0bXBdLCBiYXoKKyMK
KworZGVmIHNoNExvd2VyRG91YmxlQWNjZXNzZXMobGlzdCkKKyAgICBuZXdMaXN0ID0gW10KKyAg
ICBsaXN0LmVhY2ggeworICAgICAgICB8IG5vZGUgfAorICAgICAgICBpZiBub2RlLmlzX2E/IElu
c3RydWN0aW9uCisgICAgICAgICAgICBjYXNlIG5vZGUub3Bjb2RlCisgICAgICAgICAgICB3aGVu
ICJsb2FkZCIKKyAgICAgICAgICAgICAgICB0bXAgPSBUbXAubmV3KGNvZGVPcmlnaW4sIDpncHIp
CisgICAgICAgICAgICAgICAgYWRkciA9IEFkZHJlc3MubmV3KGNvZGVPcmlnaW4sIHRtcCwgSW1t
ZWRpYXRlLm5ldyhjb2RlT3JpZ2luLCAwKSkKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IElu
c3RydWN0aW9uLm5ldyhjb2RlT3JpZ2luLCAibGVhcCIsIFtub2RlLm9wZXJhbmRzWzBdLCB0bXBd
KQorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9y
aWdpbiwgImxvYWRkUmV2ZXJzZWRBbmRJbmNyZW1lbnRBZGRyZXNzIiwgW2FkZHIsIG5vZGUub3Bl
cmFuZHNbMV1dLCBub2RlLmFubm90YXRpb24pCisgICAgICAgICAgICB3aGVuICJzdG9yZWQiCisg
ICAgICAgICAgICAgICAgdG1wID0gVG1wLm5ldyhjb2RlT3JpZ2luLCA6Z3ByKQorICAgICAgICAg
ICAgICAgIGFkZHIgPSBBZGRyZXNzLm5ldyhjb2RlT3JpZ2luLCB0bXAsIEltbWVkaWF0ZS5uZXco
Y29kZU9yaWdpbiwgMCkpCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5u
ZXcoY29kZU9yaWdpbiwgImxlYXAiLCBbbm9kZS5vcGVyYW5kc1sxXS53aXRoT2Zmc2V0KDgpLCB0
bXBdKQorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29k
ZU9yaWdpbiwgInN0b3JlZFJldmVyc2VkQW5kRGVjcmVtZW50QWRkcmVzcyIsIFtub2RlLm9wZXJh
bmRzWzBdLCBhZGRyXSwgbm9kZS5hbm5vdGF0aW9uKQorICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgIG5ld0xpc3QgPDwgbm9kZQorICAgICAgICAgICAgZW5kCisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIG5ld0xpc3QgPDwgbm9kZQorICAgICAgICBlbmQKKyAgICB9CisgICAgbmV3
TGlzdAorZW5kCisKKworIworIyBMb3dlcmluZyBvZiBkb3VibGUgc3BlY2lhbHMgZm9yIFNINC4K
KyMKKworZGVmIHNoNExvd2VyRG91YmxlU3BlY2lhbHMobGlzdCkKKyAgICBuZXdMaXN0ID0gW10K
KyAgICBsaXN0LmVhY2ggeworICAgICAgICB8IG5vZGUgfAorICAgICAgICBpZiBub2RlLmlzX2E/
IEluc3RydWN0aW9uCisgICAgICAgICAgICBjYXNlIG5vZGUub3Bjb2RlCisgICAgICAgICAgICB3
aGVuICJiZG5lcXVuIiwgImJkZ3RlcXVuIiwgImJkbHR1biIsICJiZGx0ZXF1biIsICJiZGd0dW4i
CisgICAgICAgICAgICAgICAgIyBIYW5kbGUgZmxvYXRpbmcgcG9pbnQgdW5vcmRlcmVkIG9wY29k
ZXMuCisgICAgICAgICAgICAgICAgdG1wMSA9IFRtcC5uZXcoY29kZU9yaWdpbiwgOmdwcikKKyAg
ICAgICAgICAgICAgICB0bXAyID0gVG1wLm5ldyhjb2RlT3JpZ2luLCA6Z3ByKQorICAgICAgICAg
ICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KGNvZGVPcmlnaW4sICJiZG5hbiIsIFtu
b2RlLm9wZXJhbmRzWzBdLCBub2RlLm9wZXJhbmRzWzJdLCB0bXAxLCB0bXAyXSkKKyAgICAgICAg
ICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhjb2RlT3JpZ2luLCAiYmRuYW4iLCBb
bm9kZS5vcGVyYW5kc1sxXSwgbm9kZS5vcGVyYW5kc1syXSwgdG1wMSwgdG1wMl0pCisgICAgICAg
ICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcoY29kZU9yaWdpbiwgbm9kZS5vcGNv
ZGVbMC4uLTNdLCBub2RlLm9wZXJhbmRzKQorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
ICAgIG5ld0xpc3QgPDwgbm9kZQorICAgICAgICAgICAgZW5kCisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIG5ld0xpc3QgPDwgbm9kZQorICAgICAgICBlbmQKKyAgICB9CisgICAgbmV3TGlzdAor
ZW5kCisKKworIworIyBMb3dlcmluZyBvZiBtaXNwbGFjZWQgbGFiZWxzIGZvciBTSDQuCisjCisK
K2RlZiBzaDRMb3dlck1pc3BsYWNlZExhYmVscyhsaXN0KQorICAgIG5ld0xpc3QgPSBbXQorICAg
IGxpc3QuZWFjaCB7CisgICAgICAgIHwgbm9kZSB8CisgICAgICAgIGlmIG5vZGUuaXNfYT8gSW5z
dHJ1Y3Rpb24KKyAgICAgICAgICAgIGNhc2Ugbm9kZS5vcGNvZGUKKyAgICAgICAgICAgIHdoZW4g
ImptcCIKKyAgICAgICAgICAgICAgICBpZiBub2RlLm9wZXJhbmRzWzBdLmlzX2E/IExhYmVsUmVm
ZXJlbmNlCisgICAgICAgICAgICAgICAgICAgIHRtcCA9IFRtcC5uZXcoY29kZU9yaWdpbiwgOmdw
cikKKyAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcoY29kZU9y
aWdpbiwgImptcGYiLCBbdG1wLCBub2RlLm9wZXJhbmRzWzBdXSkKKyAgICAgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgbm9kZQorICAgICAgICAgICAgICAg
IGVuZAorICAgICAgICAgICAgd2hlbiAiY2FsbCIKKyAgICAgICAgICAgICAgICBpZiBub2RlLm9w
ZXJhbmRzWzBdLmlzX2E/IExhYmVsUmVmZXJlbmNlCisgICAgICAgICAgICAgICAgICAgIHRtcDEg
PSBUbXAubmV3KGNvZGVPcmlnaW4sIDpncHIpCisgICAgICAgICAgICAgICAgICAgIHRtcDIgPSBU
bXAubmV3KGNvZGVPcmlnaW4sIDpncHIpCisgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwg
SW5zdHJ1Y3Rpb24ubmV3KGNvZGVPcmlnaW4sICJjYWxsZiIsIFt0bXAxLCB0bXAyLCBub2RlLm9w
ZXJhbmRzWzBdXSkKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIG5l
d0xpc3QgPDwgbm9kZQorICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgZWxzZQorICAg
ICAgICAgICAgICAgIG5ld0xpc3QgPDwgbm9kZQorICAgICAgICAgICAgZW5kCisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIG5ld0xpc3QgPDwgbm9kZQorICAgICAgICBlbmQKKyAgICB9CisgICAg
bmV3TGlzdAorZW5kCisKKworY2xhc3MgU2VxdWVuY2UKKyAgICBkZWYgZ2V0TW9kaWZpZWRMaXN0
U0g0CisgICAgICAgIHJlc3VsdCA9IEBsaXN0CisKKyAgICAgICAgIyBWZXJpZnkgdGhhdCB3ZSB3
aWxsIG9ubHkgc2VlIGluc3RydWN0aW9ucyBhbmQgbGFiZWxzLgorICAgICAgICByZXN1bHQuZWFj
aCB7CisgICAgICAgICAgICB8IG5vZGUgfAorICAgICAgICAgICAgdW5sZXNzIG5vZGUuaXNfYT8g
SW5zdHJ1Y3Rpb24gb3IKKyAgICAgICAgICAgICAgICAgICAgbm9kZS5pc19hPyBMYWJlbCBvcgor
ICAgICAgICAgICAgICAgICAgICBub2RlLmlzX2E/IExvY2FsTGFiZWwgb3IKKyAgICAgICAgICAg
ICAgICAgICAgbm9kZS5pc19hPyBTa2lwCisgICAgICAgICAgICAgICAgcmFpc2UgIlVuZXhwZWN0
ZWQgI3tub2RlLmluc3BlY3R9IGF0ICN7bm9kZS5jb2RlT3JpZ2lufSIKKyAgICAgICAgICAgIGVu
ZAorICAgICAgICB9CisKKyAgICAgICAgcmVzdWx0ID0gc2g0TG93ZXJTaGlmdE9wcyhyZXN1bHQp
CisgICAgICAgIHJlc3VsdCA9IHNoNExvd2VyU2ltcGxlQnJhbmNoT3BzKHJlc3VsdCkKKyAgICAg
ICAgcmVzdWx0ID0gcmlzY0xvd2VyTWFsZm9ybWVkQWRkcmVzc2VzKHJlc3VsdCkgeworICAgICAg
ICAgICAgfCBub2RlLCBhZGRyZXNzIHwKKyAgICAgICAgICAgIGlmIGFkZHJlc3MuaXNfYT8gQWRk
cmVzcworICAgICAgICAgICAgICAgIGNhc2Ugbm9kZS5vcGNvZGUKKyAgICAgICAgICAgICAgICB3
aGVuICJidGJ6IiwgImJ0Ym56IiwgImNiZXEiLCAiYmJlcSIsICJiYm5lcSIsICJiYmIiLCAibG9h
ZGIiCisgICAgICAgICAgICAgICAgICAgICgwLi4xNSkuaW5jbHVkZT8gYWRkcmVzcy5vZmZzZXQu
dmFsdWUgYW5kCisgICAgICAgICAgICAgICAgICAgICAgICAoKG5vZGUub3BlcmFuZHNbMF0uaXNf
YT8gUmVnaXN0ZXJJRCBhbmQgbm9kZS5vcGVyYW5kc1swXS5zaDRPcGVyYW5kID09ICJyMCIpIG9y
CisgICAgICAgICAgICAgICAgICAgICAgICAgKG5vZGUub3BlcmFuZHNbMV0uaXNfYT8gUmVnaXN0
ZXJJRCBhbmQgbm9kZS5vcGVyYW5kc1sxXS5zaDRPcGVyYW5kID09ICJyMCIpKQorICAgICAgICAg
ICAgICAgIHdoZW4gImxvYWRoIgorICAgICAgICAgICAgICAgICAgICAoMC4uMzApLmluY2x1ZGU/
IGFkZHJlc3Mub2Zmc2V0LnZhbHVlIGFuZAorICAgICAgICAgICAgICAgICAgICAgICAgKChub2Rl
Lm9wZXJhbmRzWzBdLmlzX2E/IFJlZ2lzdGVySUQgYW5kIG5vZGUub3BlcmFuZHNbMF0uc2g0T3Bl
cmFuZCA9PSAicjAiKSBvcgorICAgICAgICAgICAgICAgICAgICAgICAgIChub2RlLm9wZXJhbmRz
WzFdLmlzX2E/IFJlZ2lzdGVySUQgYW5kIG5vZGUub3BlcmFuZHNbMV0uc2g0T3BlcmFuZCA9PSAi
cjAiKSkKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICgwLi42MCku
aW5jbHVkZT8gYWRkcmVzcy5vZmZzZXQudmFsdWUKKyAgICAgICAgICAgICAgICBlbmQKKyAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBmYWxzZQorICAgICAgICAgICAgZW5kCisgICAg
ICAgIH0KKyAgICAgICAgcmVzdWx0ID0gc2g0TG93ZXJEb3VibGVBY2Nlc3NlcyhyZXN1bHQpCisg
ICAgICAgIHJlc3VsdCA9IHNoNExvd2VyRG91YmxlU3BlY2lhbHMocmVzdWx0KQorICAgICAgICBy
ZXN1bHQgPSByaXNjTG93ZXJNaXNwbGFjZWRJbW1lZGlhdGVzKHJlc3VsdCwgWyJzdG9yZWIiLCAi
c3RvcmVpIiwgInN0b3JlcCIsICJtdWxpIiwgIm11bHAiLCAiYW5kaSIsICJvcmkiLCAieG9yaSIs
CisgICAgICAgICAgICAiY2JlcSIsICJjaWVxIiwgImNwZXEiLCAiY2luZXEiLCAiY3BuZXEiLCAi
Y2liIiwgImJhZGRpbyIsICJic3ViaW8iLCAiYm11bGlvIiwgImJhZGRpcyIsCisgICAgICAgICAg
ICAiYmJlcSIsICJiYm5lcSIsICJiYmIiLCAiYmllcSIsICJicGVxIiwgImJpbmVxIiwgImJwbmVx
IiwgImJpYSIsICJicGEiLCAiYmlhZXEiLCAiYnBhZXEiLCAiYmliIiwgImJwYiIsCisgICAgICAg
ICAgICAiYmlndGVxIiwgImJwZ3RlcSIsICJiaWx0IiwgImJwbHQiLCAiYmlndCIsICJicGd0Iiwg
ImJpbHRlcSIsICJicGx0ZXEiLCAiYnRpeiIsICJidHB6IiwgImJ0aW56IiwgImJ0cG56IiwgImJ0
YnoiLCAiYnRibnoiXSkKKyAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2VyTWFsZm9ybWVkSW1tZWRp
YXRlcyhyZXN1bHQsIC0xMjguLjEyNykKKyAgICAgICAgcmVzdWx0ID0gc2g0TG93ZXJNaXNwbGFj
ZWRMYWJlbHMocmVzdWx0KQorICAgICAgICByZXN1bHQgPSByaXNjTG93ZXJNaXNwbGFjZWRBZGRy
ZXNzZXMocmVzdWx0KQorCisgICAgICAgIHJlc3VsdCA9IGFzc2lnblJlZ2lzdGVyc1RvVGVtcG9y
YXJpZXMocmVzdWx0LCA6Z3ByLCBTSDRfVE1QX0dQUlMpCisgICAgICAgIHJlc3VsdCA9IGFzc2ln
blJlZ2lzdGVyc1RvVGVtcG9yYXJpZXMocmVzdWx0LCA6Z3ByLCBTSDRfVE1QX0ZQUlMpCisKKyAg
ICAgICAgcmV0dXJuIHJlc3VsdAorICAgIGVuZAorZW5kCisKK2RlZiBzaDRPcGVyYW5kcyhvcGVy
YW5kcykKKyAgICBvcGVyYW5kcy5tYXB7fHZ8IHYuc2g0T3BlcmFuZH0uam9pbigiLCAiKQorZW5k
CisKK2RlZiBlbWl0U0g0TG9hZENvbnN0YW50KGNvbnN0YW50LCBvcGVyYW5kKQorICAgIGlmIGNv
bnN0YW50ID09IDB4NDAwMDAwMDAKKyAgICAgICAgIyBGaXJzdENvbnN0YW50UmVnaXN0ZXJJbmRl
eCBjb25zdCBpcyBvZnRlbiB1c2VkICgweDQwMDAwMDAwKS4KKyAgICAgICAgIyBJdCdzIG1vcmUg
ZWZmaWNpZW50IHRvICJidWlsZCIgdGhlIHZhbHVlIHdpdGggMyBvcGNvZGVzIHdpdGhvdXQgYnJh
bmNoLgorICAgICAgICAkYXNtLnB1dHMgIm1vdiAjNjQsICN7b3BlcmFuZC5zaDRPcGVyYW5kfSIK
KyAgICAgICAgJGFzbS5wdXRzICJzaGxsMTYgI3tvcGVyYW5kLnNoNE9wZXJhbmR9IgorICAgICAg
ICAkYXNtLnB1dHMgInNobGw4ICN7b3BlcmFuZC5zaDRPcGVyYW5kfSIKKyAgICBlbHNlCisgICAg
ICAgIGNvbnN0bGFiZWwgPSBMb2NhbExhYmVsLnVuaXF1ZSgibG9hZGNvbnN0YW50IikKKyAgICAg
ICAgJGFzbS5wdXRzICIuYmFsaWduIDQiCisgICAgICAgICRhc20ucHV0cyAibW92LmwgQCg4LCBQ
QyksICN7b3BlcmFuZC5zaDRPcGVyYW5kfSIKKyAgICAgICAgJGFzbS5wdXRzICJicmEgI3tMb2Nh
bExhYmVsUmVmZXJlbmNlLm5ldyhjb2RlT3JpZ2luLCBjb25zdGxhYmVsKS5hc21MYWJlbH0iCisg
ICAgICAgICRhc20ucHV0cyAibm9wIgorICAgICAgICAkYXNtLnB1dHMgIm5vcCIKKyAgICAgICAg
JGFzbS5wdXRzICIubG9uZyAje2NvbnN0YW50fSIKKyAgICAgICAgY29uc3RsYWJlbC5sb3dlcigi
U0g0IikKKyAgICBlbmQKK2VuZAorCitkZWYgZW1pdFNINEJyYW5jaChzaDRvcGNvZGUsIG9wZXJh
bmQpCisgICAgJGFzbS5wdXRzICIje3NoNG9wY29kZX0gQCN7b3BlcmFuZC5zaDRPcGVyYW5kfSIK
KyAgICAkYXNtLnB1dHMgIm5vcCIKK2VuZAorCitkZWYgZW1pdFNINFNoaWZ0SW1tKHZhbCwgb3Bl
cmFuZCwgZGlyZWN0aW9uKQorICAgIHRtcCA9IHZhbAorICAgIHdoaWxlIHRtcCA+IDAKKyAgICAg
ICAgaWYgdG1wID49IDE2CisgICAgICAgICAgICAkYXNtLnB1dHMgInNobCN7ZGlyZWN0aW9ufTE2
ICN7b3BlcmFuZC5zaDRPcGVyYW5kfSIKKyAgICAgICAgICAgIHRtcCAtPSAxNgorICAgICAgICBl
bHNpZiB0bXAgPj0gOAorICAgICAgICAgICAgJGFzbS5wdXRzICJzaGwje2RpcmVjdGlvbn04ICN7
b3BlcmFuZC5zaDRPcGVyYW5kfSIKKyAgICAgICAgICAgIHRtcCAtPSA4CisgICAgICAgIGVsc2lm
IHRtcCA+PSAyCisgICAgICAgICAgICAkYXNtLnB1dHMgInNobCN7ZGlyZWN0aW9ufTIgI3tvcGVy
YW5kLnNoNE9wZXJhbmR9IgorICAgICAgICAgICAgdG1wIC09IDIKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgJGFzbS5wdXRzICJzaGwje2RpcmVjdGlvbn0gI3tvcGVyYW5kLnNoNE9wZXJhbmR9
IgorICAgICAgICAgICAgdG1wIC09IDEKKyAgICAgICAgZW5kCisgICAgZW5kCitlbmQKKworZGVm
IGVtaXRTSDRCcmFuY2hJZlQobGFiZWwsIG5lZykKKyAgICBzaDRvcGNvZGUgPSBuZWcgPyAiYmYi
IDogImJ0IgorICAgICRhc20ucHV0cyAiI3tzaDRvcGNvZGV9ICN7bGFiZWwuYXNtTGFiZWx9Igor
ZW5kCisKK2RlZiBlbWl0U0g0SW50Q29tcGFyZShjbXBPcGNvZGUsIG9wZXJhbmRzKQorICAgICRh
c20ucHV0cyAiY21wLyN7Y21wT3Bjb2RlfSAje3NoNE9wZXJhbmRzKFtvcGVyYW5kc1sxXSwgb3Bl
cmFuZHNbMF1dKX0iCitlbmQKKworZGVmIGVtaXRTSDRDb25kQnJhbmNoKGNtcE9wY29kZSwgbmVn
LCBvcGVyYW5kcykKKyAgICBlbWl0U0g0SW50Q29tcGFyZShjbXBPcGNvZGUsIG9wZXJhbmRzKQor
ICAgIGVtaXRTSDRCcmFuY2hJZlQob3BlcmFuZHNbMl0sIG5lZykKK2VuZAorCitkZWYgZW1pdFNI
NENvbXBhcmVTZXQoY21wT3Bjb2RlLCBuZWcsIG9wZXJhbmRzKQorICAgIGVtaXRTSDRJbnRDb21w
YXJlKGNtcE9wY29kZSwgb3BlcmFuZHMpCisgICAgJGFzbS5wdXRzICJtb3Z0ICN7b3BlcmFuZHNb
Ml0uc2g0T3BlcmFuZH0iCisgICAgaWYgbmVnCisgICAgICAgICRhc20ucHV0cyAiZHQgI3tvcGVy
YW5kc1syXS5zaDRPcGVyYW5kfSIKKyAgICBlbmQKK2VuZAorCitkZWYgZW1pdFNINEJyYW5jaElm
TmFOKG9wZXJhbmRzKQorICAgIHJhaXNlICJJbnZhbGlkIG9wZXJhbmRzIG51bWJlciAoI3tvcGVy
YW5kcy5zaXplfSkiIHVubGVzcyBvcGVyYW5kcy5zaXplID09IDQKKyAgICBkYmxvcCA9IG9wZXJh
bmRzWzBdCisgICAgbGFiZWxvcCA9IG9wZXJhbmRzWzFdCisgICAgc2NybWFzayA9IG9wZXJhbmRz
WzJdCisgICAgc2NyaW50ID0gb3BlcmFuZHNbM10KKworICAgICMgSWYgd2UgZG9uJ3QgaGF2ZSAi
RSA9IEVtYXggKyAxIiwgaXQncyBub3QgYSBOYU4uCisgICAgbm90TmFObGFiZWwgPSBMb2NhbExh
YmVsLnVuaXF1ZSgibm90bmFuIikKKyAgICAkYXNtLnB1dHMgImZjbnZkcyAje2RibG9wLnNoNE9w
ZXJhbmR9LCBmcHVsIgorICAgICRhc20ucHV0cyAic3RzIGZwdWwsICN7c2NyaW50LnNoNE9wZXJh
bmR9IgorICAgIGVtaXRTSDRMb2FkQ29uc3RhbnQoMHg3ZjgwMDAwMCwgc2NybWFzaykKKyAgICAk
YXNtLnB1dHMgImFuZCAje3NoNE9wZXJhbmRzKFtzY3JtYXNrLCBzY3JpbnRdKX0iCisgICAgJGFz
bS5wdXRzICJjbXAvZXEgI3tzaDRPcGVyYW5kcyhbc2NybWFzaywgc2NyaW50XSl9IgorICAgICRh
c20ucHV0cyAiYmYgI3tMb2NhbExhYmVsUmVmZXJlbmNlLm5ldyhjb2RlT3JpZ2luLCBub3ROYU5s
YWJlbCkuYXNtTGFiZWx9IgorCisgICAgIyBJZiB3ZSBoYXZlICJFID0gRW1heCArIDEiIGFuZCAi
ZiAhPSAwIiwgdGhlbiBpdCdzIGEgTmFOLgorICAgICRhc20ucHV0cyAic3RzIGZwdWwsICN7c2Ny
aW50LnNoNE9wZXJhbmR9IgorICAgIGVtaXRTSDRMb2FkQ29uc3RhbnQoMHgwMDNmZmZmZiwgc2Ny
bWFzaykKKyAgICAkYXNtLnB1dHMgInRzdCAje3NoNE9wZXJhbmRzKFtzY3JtYXNrLCBzY3JpbnRd
KX0iCisgICAgJGFzbS5wdXRzICJiZiAje2xhYmVsb3AuYXNtTGFiZWx9IgorCisgICAgbm90TmFO
bGFiZWwubG93ZXIoIlNINCIpCitlbmQKKworZGVmIGVtaXRTSDREb3VibGVDb25kQnJhbmNoKGNt
cE9wY29kZSwgbmVnLCBvcGVyYW5kcykKKyAgICBpZiBjbXBPcGNvZGUgPT0gImx0IgorICAgICAg
ICBpZiAoIW5lZykKKyAgICAgICAgICAgIG91dGxhYmVsID0gTG9jYWxMYWJlbC51bmlxdWUoImRj
Ym91dCIpCisgICAgICAgICAgICAkYXNtLnB1dHMgImZjbXAvZ3QgI3tzaDRPcGVyYW5kcyhbb3Bl
cmFuZHNbMV0sIG9wZXJhbmRzWzBdXSl9IgorICAgICAgICAgICAgJGFzbS5wdXRzICJidCAje0xv
Y2FsTGFiZWxSZWZlcmVuY2UubmV3KGNvZGVPcmlnaW4sIG91dGxhYmVsKS5hc21MYWJlbH0iCisg
ICAgICAgICAgICAkYXNtLnB1dHMgImZjbXAvZXEgI3tzaDRPcGVyYW5kcyhbb3BlcmFuZHNbMV0s
IG9wZXJhbmRzWzBdXSl9IgorICAgICAgICAgICAgJGFzbS5wdXRzICJiZiAje29wZXJhbmRzWzJd
LmFzbUxhYmVsfSIKKyAgICAgICAgICAgIG91dGxhYmVsLmxvd2VyKCJTSDQiKQorICAgICAgICBl
bHNlCisgICAgICAgICAgICAkYXNtLnB1dHMgImZjbXAvZ3QgI3tzaDRPcGVyYW5kcyhbb3BlcmFu
ZHNbMV0sIG9wZXJhbmRzWzBdXSl9IgorICAgICAgICAgICAgJGFzbS5wdXRzICJidCAje29wZXJh
bmRzWzJdLmFzbUxhYmVsfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAiZmNtcC9lcSAje3NoNE9w
ZXJhbmRzKFtvcGVyYW5kc1sxXSwgb3BlcmFuZHNbMF1dKX0iCisgICAgICAgICAgICAkYXNtLnB1
dHMgImJ0ICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9IgorICAgICAgICBlbmQKKyAgICBlbHNlCisg
ICAgICAgICRhc20ucHV0cyAiZmNtcC8je2NtcE9wY29kZX0gI3tzaDRPcGVyYW5kcyhbb3BlcmFu
ZHNbMV0sIG9wZXJhbmRzWzBdXSl9IgorICAgICAgICBlbWl0U0g0QnJhbmNoSWZUKG9wZXJhbmRz
WzJdLCBuZWcpCisgICAgZW5kCitlbmQKKworY2xhc3MgSW5zdHJ1Y3Rpb24KKyAgICBkZWYgbG93
ZXJTSDQKKyAgICAgICAgJGFzbS5jb21tZW50IGNvZGVPcmlnaW5TdHJpbmcKKyAgICAgICAgY2Fz
ZSBvcGNvZGUKKyAgICAgICAgd2hlbiAiYWRkaSIsICJhZGRwIgorICAgICAgICAgICAgaWYgb3Bl
cmFuZHMuc2l6ZSA9PSAzCisgICAgICAgICAgICAgICAgaWYgb3BlcmFuZHNbMF0uc2g0T3BlcmFu
ZCA9PSBvcGVyYW5kc1syXS5zaDRPcGVyYW5kCisgICAgICAgICAgICAgICAgICAgICRhc20ucHV0
cyAiYWRkICN7c2g0T3BlcmFuZHMoW29wZXJhbmRzWzFdLCBvcGVyYW5kc1syXV0pfSIKKyAgICAg
ICAgICAgICAgICBlbHNpZiBvcGVyYW5kc1sxXS5zaDRPcGVyYW5kID09IG9wZXJhbmRzWzJdLnNo
NE9wZXJhbmQKKyAgICAgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJhZGQgI3tzaDRPcGVyYW5k
cyhbb3BlcmFuZHNbMF0sIG9wZXJhbmRzWzJdXSl9IgorICAgICAgICAgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJtb3YgI3tzaDRPcGVyYW5kcyhbb3BlcmFuZHNb
MF0sIG9wZXJhbmRzWzJdXSl9IgorICAgICAgICAgICAgICAgICAgICAkYXNtLnB1dHMgImFkZCAj
e3NoNE9wZXJhbmRzKFtvcGVyYW5kc1sxXSwgb3BlcmFuZHNbMl1dKX0iCisgICAgICAgICAgICAg
ICAgZW5kCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJhZGQg
I3tzaDRPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICAgICAgZW5kCisgICAgICAgIHdoZW4g
InN1YmkiCisgICAgICAgICAgICByYWlzZSAiI3tvcGNvZGV9IHdpdGggI3tvcGVyYW5kcy5zaXpl
fSBvcGVyYW5kcyBpcyBub3QgaGFuZGxlZCB5ZXQiIHVubGVzcyBvcGVyYW5kcy5zaXplID09IDIK
KyAgICAgICAgICAgIGlmIG9wZXJhbmRzWzBdLmlzX2E/IEltbWVkaWF0ZQorICAgICAgICAgICAg
ICAgICRhc20ucHV0cyAiYWRkICN7c2g0T3BlcmFuZHMoW0ltbWVkaWF0ZS5uZXcoY29kZU9yaWdp
biwgLTEgKiBvcGVyYW5kc1swXS52YWx1ZSksIG9wZXJhbmRzWzFdXSl9IgorICAgICAgICAgICAg
ZWxzZQorICAgICAgICAgICAgICAgICRhc20ucHV0cyAic3ViICN7c2g0T3BlcmFuZHMob3BlcmFu
ZHMpfSIKKyAgICAgICAgICAgIGVuZAorICAgICAgICB3aGVuICJtdWxpIiwgIm11bHAiCisgICAg
ICAgICAgICAkYXNtLnB1dHMgIm11bC5sICN7c2g0T3BlcmFuZHMob3BlcmFuZHNbMC4uMV0pfSIK
KyAgICAgICAgICAgICRhc20ucHV0cyAic3RzIG1hY2wsICN7b3BlcmFuZHNbLTFdLnNoNE9wZXJh
bmR9IgorICAgICAgICB3aGVuICJuZWdpIgorICAgICAgICAgICAgaWYgb3BlcmFuZHMuc2l6ZSA9
PSAyCisgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJuZWcgI3tzaDRPcGVyYW5kcyhvcGVyYW5k
cyl9IgorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICRhc20ucHV0cyAibmVnICN7
c2g0T3BlcmFuZHMoW29wZXJhbmRzWzBdLCBvcGVyYW5kc1swXV0pfSIKKyAgICAgICAgICAgIGVu
ZAorICAgICAgICB3aGVuICJhbmRpIiwgIm9yaSIsICJ4b3JpIgorICAgICAgICAgICAgcmFpc2Ug
IiN7b3Bjb2RlfSB3aXRoICN7b3BlcmFuZHMuc2l6ZX0gb3BlcmFuZHMgaXMgbm90IGhhbmRsZWQg
eWV0IiB1bmxlc3Mgb3BlcmFuZHMuc2l6ZSA9PSAyCisgICAgICAgICAgICBzaDRvcGNvZGUgPSBv
cGNvZGVbMC4uLTJdCisgICAgICAgICAgICAkYXNtLnB1dHMgIiN7c2g0b3Bjb2RlfSAje3NoNE9w
ZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4gInNobGx4IiwgInNobHJ4IgorICAgICAg
ICAgICAgcmFpc2UgIlVuaGFuZGxlZCBwYXJhbWV0ZXJzIGZvciBvcGNvZGUgI3tvcGNvZGV9IiB1
bmxlc3Mgb3BlcmFuZHNbMF0uaXNfYT8gSW1tZWRpYXRlCisgICAgICAgICAgICBpZiBvcGVyYW5k
c1swXS52YWx1ZSA9PSAxCisgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJzaGwje29wY29kZVsz
LDFdfSAje29wZXJhbmRzWzFdLnNoNE9wZXJhbmR9IgorICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgICRhc20ucHV0cyAic2hsI3tvcGNvZGVbMywxXX0je29wZXJhbmRzWzBdLnZhbHVl
fSAje29wZXJhbmRzWzFdLnNoNE9wZXJhbmR9IgorICAgICAgICAgICAgZW5kCisgICAgICAgIHdo
ZW4gInNobGQiLCAic2hhZCIKKyAgICAgICAgICAgICRhc20ucHV0cyAiI3tvcGNvZGV9ICN7c2g0
T3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAibG9hZGRSZXZlcnNlZEFuZEluY3Jl
bWVudEFkZHJlc3MiCisgICAgICAgICAgICAjIEFzIHdlIGFyZSBsaXR0bGUgZW5kaWFuLCB3ZSBk
b24ndCB1c2UgImZtb3YgQFJtLCBEUm4iIGhlcmUuCisgICAgICAgICAgICAkYXNtLnB1dHMgImZt
b3YucyAje29wZXJhbmRzWzBdLnNoNE9wZXJhbmRQb3N0SW5jfSwgI3tvcGVyYW5kc1sxXS5zaDRT
aW5nbGVMb30iCisgICAgICAgICAgICAkYXNtLnB1dHMgImZtb3YucyAje29wZXJhbmRzWzBdLnNo
NE9wZXJhbmRQb3N0SW5jfSwgI3tvcGVyYW5kc1sxXS5zaDRTaW5nbGVIaX0iCisgICAgICAgIHdo
ZW4gInN0b3JlZFJldmVyc2VkQW5kRGVjcmVtZW50QWRkcmVzcyIKKyAgICAgICAgICAgICMgQXMg
d2UgYXJlIGxpdHRsZSBlbmRpYW4sIHdlIGRvbid0IHVzZSAiZm1vdiBEUm0sIEBSbiIgaGVyZS4K
KyAgICAgICAgICAgICRhc20ucHV0cyAiZm1vdi5zICN7b3BlcmFuZHNbMF0uc2g0U2luZ2xlSGl9
LCAje29wZXJhbmRzWzFdLnNoNE9wZXJhbmRQcmVEZWN9IgorICAgICAgICAgICAgJGFzbS5wdXRz
ICJmbW92LnMgI3tvcGVyYW5kc1swXS5zaDRTaW5nbGVMb30sICN7b3BlcmFuZHNbMV0uc2g0T3Bl
cmFuZFByZURlY30iCisgICAgICAgIHdoZW4gImNpMmQiCisgICAgICAgICAgICAkYXNtLnB1dHMg
ImxkcyAje29wZXJhbmRzWzBdLnNoNE9wZXJhbmR9LCBmcHVsIgorICAgICAgICAgICAgJGFzbS5w
dXRzICJmbG9hdCBmcHVsLCAje29wZXJhbmRzWzFdLnNoNE9wZXJhbmR9IgorICAgICAgICB3aGVu
ICJmaWkyZCIKKyAgICAgICAgICAgICRhc20ucHV0cyAibGRzICN7b3BlcmFuZHNbMF0uc2g0T3Bl
cmFuZH0sIGZwdWwiCisgICAgICAgICAgICAkYXNtLnB1dHMgImZzdHMgZnB1bCwgI3tvcGVyYW5k
c1syXS5zaDRTaW5nbGVMb30iCisgICAgICAgICAgICAkYXNtLnB1dHMgImxkcyAje29wZXJhbmRz
WzFdLnNoNE9wZXJhbmR9LCBmcHVsIgorICAgICAgICAgICAgJGFzbS5wdXRzICJmc3RzIGZwdWws
ICN7b3BlcmFuZHNbMl0uc2g0U2luZ2xlSGl9IgorICAgICAgICB3aGVuICJmZDJpaSIKKyAgICAg
ICAgICAgICRhc20ucHV0cyAiZmxkcyAje29wZXJhbmRzWzBdLnNoNFNpbmdsZUxvfSwgZnB1bCIK
KyAgICAgICAgICAgICRhc20ucHV0cyAic3RzIGZwdWwsICN7b3BlcmFuZHNbMV0uc2g0T3BlcmFu
ZH0iCisgICAgICAgICAgICAkYXNtLnB1dHMgImZsZHMgI3tvcGVyYW5kc1swXS5zaDRTaW5nbGVI
aX0sIGZwdWwiCisgICAgICAgICAgICAkYXNtLnB1dHMgInN0cyBmcHVsLCAje29wZXJhbmRzWzJd
LnNoNE9wZXJhbmR9IgorICAgICAgICB3aGVuICJhZGRkIiwgInN1YmQiLCAibXVsZCIsICJkaXZk
IgorICAgICAgICAgICAgc2g0b3Bjb2RlID0gb3Bjb2RlWzAuLi0yXQorICAgICAgICAgICAgJGFz
bS5wdXRzICJmI3tzaDRvcGNvZGV9ICN7c2g0T3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAg
d2hlbiAiYmNkMmkiCisgICAgICAgICAgICAkYXNtLnB1dHMgImZ0cmMgI3tvcGVyYW5kc1swXS5z
aDRPcGVyYW5kfSwgZnB1bCIKKyAgICAgICAgICAgICRhc20ucHV0cyAic3RzIGZwdWwsICN7b3Bl
cmFuZHNbMV0uc2g0T3BlcmFuZH0iCisgICAgICAgICAgICAkYXNtLnB1dHMgImZsb2F0IGZwdWws
ICN7U0g0X1RNUF9GUFJTWzBdLnNoNE9wZXJhbmR9IgorICAgICAgICAgICAgJGFzbS5wdXRzICJm
Y21wL2VxICN7c2g0T3BlcmFuZHMoW29wZXJhbmRzWzBdLCBTSDRfVE1QX0ZQUlNbMF1dKX0iCisg
ICAgICAgICAgICAkYXNtLnB1dHMgImJmICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9IgorICAgICAg
ICB3aGVuICJiZG5hbiIKKyAgICAgICAgICAgIGVtaXRTSDRCcmFuY2hJZk5hTihvcGVyYW5kcykK
KyAgICAgICAgd2hlbiAiYmRuZXEiCisgICAgICAgICAgICBlbWl0U0g0RG91YmxlQ29uZEJyYW5j
aCgiZXEiLCB0cnVlLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmRndGVxIgorICAgICAgICAg
ICAgZW1pdFNINERvdWJsZUNvbmRCcmFuY2goImx0IiwgdHJ1ZSwgb3BlcmFuZHMpCisgICAgICAg
IHdoZW4gImJkbHQiCisgICAgICAgICAgICBlbWl0U0g0RG91YmxlQ29uZEJyYW5jaCgibHQiLCBm
YWxzZSwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImJkbHRlcSIKKyAgICAgICAgICAgIGVtaXRT
SDREb3VibGVDb25kQnJhbmNoKCJndCIsIHRydWUsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJi
ZGd0IgorICAgICAgICAgICAgZW1pdFNINERvdWJsZUNvbmRCcmFuY2goImd0IiwgZmFsc2UsIG9w
ZXJhbmRzKQorICAgICAgICB3aGVuICJiYWRkaW8iLCAiYnN1YmlvIgorICAgICAgICAgICAgcmFp
c2UgIiN7b3Bjb2RlfSB3aXRoICN7b3BlcmFuZHMuc2l6ZX0gb3BlcmFuZHMgaXMgbm90IGhhbmRs
ZWQgeWV0IiB1bmxlc3Mgb3BlcmFuZHMuc2l6ZSA9PSAzCisgICAgICAgICAgICAkYXNtLnB1dHMg
IiN7b3Bjb2RlWzEsM119diAje3NoNE9wZXJhbmRzKFtvcGVyYW5kc1swXSwgb3BlcmFuZHNbMV1d
KX0iCisgICAgICAgICAgICAkYXNtLnB1dHMgImJ0ICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9Igor
ICAgICAgICB3aGVuICJibXVsaW8iCisgICAgICAgICAgICAkYXNtLnB1dHMgImRtdWxzLmwgI3tz
aDRPcGVyYW5kcyhbb3BlcmFuZHNbMF0sIG9wZXJhbmRzWzFdXSl9IgorICAgICAgICAgICAgJGFz
bS5wdXRzICJzdHMgbWFjaCwgI3tvcGVyYW5kc1stMl0uc2g0T3BlcmFuZH0iCisgICAgICAgICAg
ICAkYXNtLnB1dHMgInRzdCAje3NoNE9wZXJhbmRzKFtvcGVyYW5kc1stMl0sIG9wZXJhbmRzWy0y
XV0pfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAic3RzIG1hY2wsICN7b3BlcmFuZHNbLTJdLnNo
NE9wZXJhbmR9IgorICAgICAgICAgICAgJGFzbS5wdXRzICJiZiAje29wZXJhbmRzWy0xXS5hc21M
YWJlbH0iCisgICAgICAgIHdoZW4gImJ0aXoiLCAiYnRweiIsICJidGlueiIsICJidHBueiIsICJi
dGJ6IiwgImJ0Ym56IgorICAgICAgICAgICAgaWYgb3BlcmFuZHMuc2l6ZSA9PSAzCisgICAgICAg
ICAgICAgICAgJGFzbS5wdXRzICJ0c3QgI3tzaDRPcGVyYW5kcyhbb3BlcmFuZHNbMF0sIG9wZXJh
bmRzWzFdXSl9IgorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGlmIG9wZXJhbmRz
WzBdLnNoNE9wZXJhbmQgPT0gInIwIgorICAgICAgICAgICAgICAgICAgICAkYXNtLnB1dHMgImNt
cC9lcSAjMCwgcjAiCisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAk
YXNtLnB1dHMgInRzdCAje3NoNE9wZXJhbmRzKFtvcGVyYW5kc1swXSwgb3BlcmFuZHNbMF1dKX0i
CisgICAgICAgICAgICAgICAgZW5kCisgICAgICAgICAgICBlbmQKKyAgICAgICAgICAgIGVtaXRT
SDRCcmFuY2hJZlQob3BlcmFuZHNbLTFdLCAob3Bjb2RlWy0yLDJdID09ICJueiIpKQorICAgICAg
ICB3aGVuICJjYmVxIgorICAgICAgICAgICAgZW1pdFNINENvbXBhcmVTZXQoImVxIiwgZmFsc2Us
IG9wZXJhbmRzKQorICAgICAgICB3aGVuICJjaWVxIiwgImNwZXEiCisgICAgICAgICAgICBlbWl0
U0g0Q29tcGFyZVNldCgiZXEiLCBmYWxzZSwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImNpbmVx
IiwgImNwbmVxIgorICAgICAgICAgICAgZW1pdFNINENvbXBhcmVTZXQoImVxIiwgdHJ1ZSwgb3Bl
cmFuZHMpCisgICAgICAgIHdoZW4gImNpYiIKKyAgICAgICAgICAgIGVtaXRTSDRDb21wYXJlU2V0
KCJocyIsIHRydWUsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJiYmVxIgorICAgICAgICAgICAg
ZW1pdFNINENvbmRCcmFuY2goImVxIiwgZmFsc2UsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJi
Ym5lcSIKKyAgICAgICAgICAgIGVtaXRTSDRDb25kQnJhbmNoKCJlcSIsIHRydWUsIG9wZXJhbmRz
KQorICAgICAgICB3aGVuICJiYmIiCisgICAgICAgICAgICBlbWl0U0g0Q29uZEJyYW5jaCgiaHMi
LCB0cnVlLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmllcSIsICJicGVxIgorICAgICAgICAg
ICAgZW1pdFNINENvbmRCcmFuY2goImVxIiwgZmFsc2UsIG9wZXJhbmRzKQorICAgICAgICB3aGVu
ICJiaW5lcSIsICJicG5lcSIKKyAgICAgICAgICAgIGVtaXRTSDRDb25kQnJhbmNoKCJlcSIsIHRy
dWUsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJiaWEiLCAiYnBhIgorICAgICAgICAgICAgZW1p
dFNINENvbmRCcmFuY2goImhpIiwgZmFsc2UsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJiaWFl
cSIsICJicGFlcSIKKyAgICAgICAgICAgIGVtaXRTSDRDb25kQnJhbmNoKCJocyIsIGZhbHNlLCBv
cGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmliIiwgImJwYiIKKyAgICAgICAgICAgIGVtaXRTSDRD
b25kQnJhbmNoKCJocyIsIHRydWUsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJiaWd0ZXEiLCAi
YnBndGVxIgorICAgICAgICAgICAgZW1pdFNINENvbmRCcmFuY2goImdlIiwgZmFsc2UsIG9wZXJh
bmRzKQorICAgICAgICB3aGVuICJiaWx0IiwgImJwbHQiCisgICAgICAgICAgICBlbWl0U0g0Q29u
ZEJyYW5jaCgiZ2UiLCB0cnVlLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmlndCIsICJicGd0
IgorICAgICAgICAgICAgZW1pdFNINENvbmRCcmFuY2goImd0IiwgZmFsc2UsIG9wZXJhbmRzKQor
ICAgICAgICB3aGVuICJiaWx0ZXEiLCAiYnBsdGVxIgorICAgICAgICAgICAgZW1pdFNINENvbmRC
cmFuY2goImd0IiwgdHJ1ZSwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImJzIgorICAgICAgICAg
ICAgJGFzbS5wdXRzICJjbXAvcHogI3tvcGVyYW5kc1swXS5zaDRPcGVyYW5kfSIKKyAgICAgICAg
ICAgICRhc20ucHV0cyAiYmYgI3tvcGVyYW5kc1sxXS5hc21MYWJlbH0iCisgICAgICAgIHdoZW4g
ImNhbGwiCisgICAgICAgICAgICBpZiBvcGVyYW5kc1swXS5pc19hPyBMb2NhbExhYmVsUmVmZXJl
bmNlCisgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJic3IgI3tvcGVyYW5kc1swXS5hc21MYWJl
bH0iCisgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJub3AiCisgICAgICAgICAgICBlbHNpZiBv
cGVyYW5kc1swXS5pc19hPyBSZWdpc3RlcklEIG9yIG9wZXJhbmRzWzBdLmlzX2E/IFNwZWNpYWxS
ZWdpc3RlcgorICAgICAgICAgICAgICAgIGVtaXRTSDRCcmFuY2goImpzciIsIG9wZXJhbmRzWzBd
KQorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJhaXNlICJVbmhhbmRsZWQgcGFy
YW1ldGVycyBmb3Igb3Bjb2RlICN7b3Bjb2RlfSBhdCAje2NvZGVPcmlnaW5TdHJpbmd9IgorICAg
ICAgICAgICAgZW5kCisgICAgICAgIHdoZW4gImNhbGxmIgorICAgICAgICAgICAgJGFzbS5wdXRz
ICIuYmFsaWduIDQiCisgICAgICAgICAgICAkYXNtLnB1dHMgIm1vdiByMCwgI3tvcGVyYW5kc1sw
XS5zaDRPcGVyYW5kfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAibW92YSBAKDE0LCBQQyksIHIw
IgorICAgICAgICAgICAgJGFzbS5wdXRzICJsZHMgcjAsIHByIgorICAgICAgICAgICAgJGFzbS5w
dXRzICJtb3YubCBAKDYsIFBDKSwgI3tvcGVyYW5kc1sxXS5zaDRPcGVyYW5kfSIKKyAgICAgICAg
ICAgICRhc20ucHV0cyAiam1wIEAje29wZXJhbmRzWzFdLnNoNE9wZXJhbmR9IgorICAgICAgICAg
ICAgJGFzbS5wdXRzICJtb3YgI3tvcGVyYW5kc1swXS5zaDRPcGVyYW5kfSwgcjAiCisgICAgICAg
ICAgICAkYXNtLnB1dHMgIi5sb25nICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9IgorICAgICAgICB3
aGVuICJqbXAiCisgICAgICAgICAgICBpZiBvcGVyYW5kc1swXS5pc19hPyBMb2NhbExhYmVsUmVm
ZXJlbmNlCisgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJicmEgI3tvcGVyYW5kc1swXS5hc21M
YWJlbH0iCisgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJub3AiCisgICAgICAgICAgICBlbHNp
ZiBvcGVyYW5kc1swXS5pc19hPyBSZWdpc3RlcklEIG9yIG9wZXJhbmRzWzBdLmlzX2E/IFNwZWNp
YWxSZWdpc3RlcgorICAgICAgICAgICAgICAgIGVtaXRTSDRCcmFuY2goImptcCIsIG9wZXJhbmRz
WzBdKQorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJhaXNlICJVbmhhbmRsZWQg
cGFyYW1ldGVycyBmb3Igb3Bjb2RlICN7b3Bjb2RlfSBhdCAje2NvZGVPcmlnaW5TdHJpbmd9Igor
ICAgICAgICAgICAgZW5kCisgICAgICAgIHdoZW4gImptcGYiCisgICAgICAgICAgICAkYXNtLnB1
dHMgIi5iYWxpZ24gNCIKKyAgICAgICAgICAgICRhc20ucHV0cyAibW92LmwgQCg4LCBQQyksICN7
b3BlcmFuZHNbMF0uc2g0T3BlcmFuZH0iCisgICAgICAgICAgICAkYXNtLnB1dHMgImptcCBAI3tv
cGVyYW5kc1swXS5zaDRPcGVyYW5kfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAibm9wIgorICAg
ICAgICAgICAgJGFzbS5wdXRzICJub3AiCisgICAgICAgICAgICAkYXNtLnB1dHMgIi5sb25nICN7
b3BlcmFuZHNbMV0uYXNtTGFiZWx9IgorICAgICAgICB3aGVuICJyZXQiCisgICAgICAgICAgICAk
YXNtLnB1dHMgInJ0cyIKKyAgICAgICAgICAgICRhc20ucHV0cyAibm9wIgorICAgICAgICB3aGVu
ICJsb2FkYiIKKyAgICAgICAgICAgICRhc20ucHV0cyAibW92LmIgI3tzaDRPcGVyYW5kcyhvcGVy
YW5kcyl9IgorICAgICAgICAgICAgJGFzbS5wdXRzICJleHR1LmIgI3tzaDRPcGVyYW5kcyhbb3Bl
cmFuZHNbMV0sIG9wZXJhbmRzWzFdXSl9IgorICAgICAgICB3aGVuICJsb2FkaCIKKyAgICAgICAg
ICAgICRhc20ucHV0cyAibW92LncgI3tzaDRPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICAg
ICAgJGFzbS5wdXRzICJleHR1LncgI3tzaDRPcGVyYW5kcyhbb3BlcmFuZHNbMV0sIG9wZXJhbmRz
WzFdXSl9IgorICAgICAgICB3aGVuICJsb2FkaSIsICJsb2FkaXMiLCAibG9hZHAiLCAic3RvcmVp
IiwgInN0b3JlcCIKKyAgICAgICAgICAgICRhc20ucHV0cyAibW92LmwgI3tzaDRPcGVyYW5kcyhv
cGVyYW5kcyl9IgorICAgICAgICB3aGVuICJtb3ZlIgorICAgICAgICAgICAgaWYgb3BlcmFuZHNb
MF0uaXNfYT8gSW1tZWRpYXRlIGFuZCAob3BlcmFuZHNbMF0udmFsdWUgPCAtMTI4IG9yIG9wZXJh
bmRzWzBdLnZhbHVlID4gMTI3KQorICAgICAgICAgICAgICAgIGVtaXRTSDRMb2FkQ29uc3RhbnQo
b3BlcmFuZHNbMF0udmFsdWUsIG9wZXJhbmRzWzFdKQorICAgICAgICAgICAgZWxzaWYgb3BlcmFu
ZHNbMF0uaXNfYT8gTGFiZWxSZWZlcmVuY2UKKyAgICAgICAgICAgICAgICBlbWl0U0g0TG9hZENv
bnN0YW50KG9wZXJhbmRzWzBdLmFzbUxhYmVsLCBvcGVyYW5kc1sxXSkKKyAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgICAgICAkYXNtLnB1dHMgIm1vdiAje3NoNE9wZXJhbmRzKG9wZXJhbmRz
KX0iCisgICAgICAgICAgICBlbmQKKyAgICAgICAgd2hlbiAibGVhcCIKKyAgICAgICAgICAgIGlm
IG9wZXJhbmRzWzBdLmlzX2E/IEJhc2VJbmRleAorICAgICAgICAgICAgICAgIGJpb3AgPSBvcGVy
YW5kc1swXQorICAgICAgICAgICAgICAgIGlmIGJpb3Auc2NhbGUgPiAwCisgICAgICAgICAgICAg
ICAgICAgICRhc20ucHV0cyAibW92ICN7c2g0T3BlcmFuZHMoW2Jpb3AuaW5kZXgsIG9wZXJhbmRz
WzFdXSl9IgorICAgICAgICAgICAgICAgICAgICBpZiBiaW9wLnNjYWxlU2hpZnQgPiAwCisgICAg
ICAgICAgICAgICAgICAgICAgICBlbWl0U0g0U2hpZnRJbW0oYmlvcC5zY2FsZVNoaWZ0LCBvcGVy
YW5kc1sxXSwgImwiKQorICAgICAgICAgICAgICAgICAgICBlbmQKKyAgICAgICAgICAgICAgICAg
ICAgJGFzbS5wdXRzICJhZGQgI3tzaDRPcGVyYW5kcyhbYmlvcC5iYXNlLCBvcGVyYW5kc1sxXV0p
fSIKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICRhc20ucHV0cyAi
bW92ICN7c2g0T3BlcmFuZHMoW2Jpb3AuYmFzZSwgb3BlcmFuZHNbMV1dKX0iCisgICAgICAgICAg
ICAgICAgZW5kCisgICAgICAgICAgICAgICAgaWYgYmlvcC5vZmZzZXQudmFsdWUgIT0gMAorICAg
ICAgICAgICAgICAgICAgICAkYXNtLnB1dHMgImFkZCAje3NoNE9wZXJhbmRzKFtiaW9wLm9mZnNl
dCwgb3BlcmFuZHNbMV1dKX0iCisgICAgICAgICAgICAgICAgZW5kCisgICAgICAgICAgICBlbHNp
ZiBvcGVyYW5kc1swXS5pc19hPyBBZGRyZXNzCisgICAgICAgICAgICAgICAgaWYgb3BlcmFuZHNb
MF0uYmFzZSAhPSBvcGVyYW5kc1sxXQorICAgICAgICAgICAgICAgICAgICAkYXNtLnB1dHMgIm1v
diAje3NoNE9wZXJhbmRzKFtvcGVyYW5kc1swXS5iYXNlLCBvcGVyYW5kc1sxXV0pfSIKKyAgICAg
ICAgICAgICAgICBlbmQKKyAgICAgICAgICAgICAgICBpZiBvcGVyYW5kc1swXS5vZmZzZXQudmFs
dWUgIT0gMAorICAgICAgICAgICAgICAgICAgICAkYXNtLnB1dHMgImFkZCAje3NoNE9wZXJhbmRz
KFtvcGVyYW5kc1swXS5vZmZzZXQsIG9wZXJhbmRzWzFdXSl9IgorICAgICAgICAgICAgICAgIGVu
ZAorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJhaXNlICJVbmhhbmRsZWQgcGFy
YW1ldGVycyBmb3Igb3Bjb2RlICN7b3Bjb2RlfSBhdCAje2NvZGVPcmlnaW5TdHJpbmd9IgorICAg
ICAgICAgICAgZW5kCisgICAgICAgIHdoZW4gImxkc3ByIgorICAgICAgICAgICAgJGFzbS5wdXRz
ICJsZHMgI3tzaDRPcGVyYW5kcyhvcGVyYW5kcyl9LCBwciIKKyAgICAgICAgd2hlbiAic3RzcHIi
CisgICAgICAgICAgICAkYXNtLnB1dHMgInN0cyBwciwgI3tzaDRPcGVyYW5kcyhvcGVyYW5kcyl9
IgorICAgICAgICB3aGVuICJicmVhayIKKyAgICAgICAgICAgICMgVGhpcyBzcGVjaWFsIG9wY29k
ZSBhbHdheXMgZ2VuZXJhdGVzIGFuIGlsbGVnYWwgaW5zdHJ1Y3Rpb24gZXhjZXB0aW9uLgorICAg
ICAgICAgICAgJGFzbS5wdXRzICIud29yZCAweGZmZmQiCisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIHJhaXNlICJVbmhhbmRsZWQgb3Bjb2RlICN7b3Bjb2RlfSBhdCAje2NvZGVPcmlnaW5TdHJp
bmd9IgorICAgICAgICBlbmQKKyAgICBlbmQKK2VuZAorCkluZGV4OiBTb3VyY2UvV1RGL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL0NoYW5nZUxvZwkocmV2aXNpb24gMTQ3Mjg4
KQorKysgU291cmNlL1dURi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMiBA
QAorMjAxMy0wMy0zMSAgSnVsaWVuIEJyaWFuY2VhdSAgPGpicmlhbmNlYXVAbmRzLmNvbT4KKwor
ICAgICAgICBMTEludCBTSDQgYmFja2VuZCBpbXBsZW1lbnRhdGlvbgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEyODg2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvUGxhdGZvcm0uaDoKKwogMjAx
My0wMy0zMCAgVG9tIFNlcGV6ICA8dHNlcGV6QGNocm9taXVtLm9yZz4KIAogICAgICAgICBWaWV3
LXNvdXJjZSBpZnJhbWVzIGFyZSBkYW5nZXJvdXMgKGFuZCBub3QgdmVyeSB1c2VmdWwpLgpJbmRl
eDogU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0
Zi9QbGF0Zm9ybS5oCShyZXZpc2lvbiAxNDcyODUpCisrKyBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bS5oCSh3b3JraW5nIGNvcHkpCkBAIC03ODgsNyArNzg4LDcgQEAKICAgICAmJiBFTkFCTEUoSklU
KSBcCiAgICAgJiYgKE9TKERBUldJTikgfHwgT1MoTElOVVgpKSBcCiAgICAgJiYgKFBMQVRGT1JN
KE1BQykgfHwgUExBVEZPUk0oSU9TKSB8fCBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFFUKSkg
XAotICAgICYmIChDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KSB8fCBDUFUoQVJNX1RIVU1CMikgfHwg
Q1BVKEFSTV9UUkFESVRJT05BTCkgfHwgQ1BVKE1JUFMpKQorICAgICYmIChDUFUoWDg2KSB8fCBD
UFUoWDg2XzY0KSB8fCBDUFUoQVJNX1RIVU1CMikgfHwgQ1BVKEFSTV9UUkFESVRJT05BTCkgfHwg
Q1BVKE1JUFMpIHx8IENQVShTSDQpKQogI2RlZmluZSBFTkFCTEVfTExJTlQgMQogI2VuZGlmCiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>197993</attachid>
            <date>2013-04-14 08:31:50 -0700</date>
            <delta_ts>2013-04-15 16:02:57 -0700</delta_ts>
            <desc>SH4 LLint backend implementation using risc.rb (4) rebased on 148395</desc>
            <filename>sh4-llint-backend-impl-using-risc_4_rebase_148395.patch</filename>
            <type>text/plain</type>
            <size>40626</size>
            <attacher name="Julien Brianceau">jbriance</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTQ4Mzk1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBA
CisyMDEzLTA0LTE0ICBKdWxpZW4gQnJpYW5jZWF1ICA8amJyaWFuY2VhdUBuZHMuY29tPgorCisg
ICAgICAgIExMSW50IFNINCBiYWNrZW5kIGltcGxlbWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTI4ODYKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGRmZy9ERkdPcGVyYXRpb25zLmNwcDoK
KyAgICAgICAgKEpTQyk6CisgICAgICAgICogaml0L0pJVFN0dWJzLmNwcDoKKyAgICAgICAgKiBs
bGludC9MTEludE9mZmxpbmVBc21Db25maWcuaDoKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbElu
dGVycHJldGVyLmFzbToKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQu
YXNtOgorICAgICAgICAqIG9mZmxpbmVhc20vYXJtLnJiOgorICAgICAgICAqIG9mZmxpbmVhc20v
YXN0LnJiOgorICAgICAgICAqIG9mZmxpbmVhc20vYmFja2VuZHMucmI6CisgICAgICAgICogb2Zm
bGluZWFzbS9pbnN0cnVjdGlvbnMucmI6CisgICAgICAgICogb2ZmbGluZWFzbS9taXBzLnJiOgor
ICAgICAgICAqIG9mZmxpbmVhc20vcmlzYy5yYjoKKyAgICAgICAgKiBvZmZsaW5lYXNtL3NoNC5y
YjogQWRkZWQuCisKIDIwMTMtMDQtMTMgIFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dhQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgQWRkIG1pc3NpbmcgZXhwb3J0IG1hY3JvIHRvIFN5bWJvbFRhYmxl
RW50cnk6OmZyZWVGYXRFbnRyeVNsb3coKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdPcGVyYXRpb25zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR09wZXJhdGlvbnMuY3BwCShyZXZpc2lvbiAxNDgzOTUpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzgwLDYg
KzE3ODAsMTggQEAgU1lNQk9MX1NUUklORyhnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiOgogICAg
ICJtb3ZlICRhMCwgJHMwIiAiXG4iCiAgICAgImIgIiBMT0NBTF9SRUZFUkVOQ0UoZ2V0SG9zdENh
bGxSZXR1cm5WYWx1ZVdpdGhFeGVjU3RhdGUpICJcbiIKICk7CisjZWxpZiBDT01QSUxFUihHQ0Mp
ICYmIENQVShTSDQpCithc20oCisiLnRleHQiICJcbiIKKyIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5H
KGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICJcbiIKK0hJREVfU1lNQk9MKGdldEhvc3RDYWxsUmV0
dXJuVmFsdWUpICJcbiIKK1NZTUJPTF9TVFJJTkcoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIjoi
ICJcbiIKKyAgICAiYWRkICMtNDAsIHIxNCIgIlxuIgorICAgICJtb3YubCBAcjE0LCByMTQiICJc
biIKKyAgICAibW92IHIxNCwgcjQiICJcbiIKKyAgICAiYnJhICIgTE9DQUxfUkVGRVJFTkNFKGdl
dEhvc3RDYWxsUmV0dXJuVmFsdWVXaXRoRXhlY1N0YXRlKSAiXG4iCisgICAgIm5vcCIgIlxuIgor
KTsKICNlbmRpZgogCiBleHRlcm4gIkMiIEVuY29kZWRKU1ZhbHVlIEhPU1RfQ0FMTF9SRVRVUk5f
VkFMVUVfT1BUSU9OIGdldEhvc3RDYWxsUmV0dXJuVmFsdWVXaXRoRXhlY1N0YXRlKEV4ZWNTdGF0
ZSogZXhlYykKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCShyZXZp
c2lvbiAxNDgzOTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzIyLDYgKzMyMiw5IEBAIFNZTUJPTF9TVFJJTkcoY3RpVHJhbXBv
bGluZSkgIjoiICJcbiIKICAgICAiYWRkICMxMiwgcjE1IiAiXG4iCiAgICAgInJ0cyIgIlxuIgog
ICAgICJub3AiICJcbiIKKyIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGN0aVRyYW1wb2xpbmVFbmQp
ICJcbiIKK0hJREVfU1lNQk9MKGN0aVRyYW1wb2xpbmVFbmQpICJcbiIKK1NZTUJPTF9TVFJJTkco
Y3RpVHJhbXBvbGluZUVuZCkgIjoiICJcbiIKICk7CiAKIGFzbSB2b2xhdGlsZSAoCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRPZmZsaW5lQXNtQ29uZmlnLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50T2ZmbGluZUFzbUNvbmZp
Zy5oCShyZXZpc2lvbiAxNDgzOTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJ
bnRPZmZsaW5lQXNtQ29uZmlnLmgJKHdvcmtpbmcgY29weSkKQEAgLTQxLDYgKzQxLDcgQEAKICNk
ZWZpbmUgT0ZGTElORV9BU01fWDg2XzY0IDAKICNkZWZpbmUgT0ZGTElORV9BU01fQVJNdjdzIDAK
ICNkZWZpbmUgT0ZGTElORV9BU01fTUlQUyAwCisjZGVmaW5lIE9GRkxJTkVfQVNNX1NINCAwCiAK
ICNlbHNlIC8vICFFTkFCTEUoTExJTlRfQ19MT09QKQogCkBAIC04OSw2ICs5MCwxMiBAQAogI2Rl
ZmluZSBPRkZMSU5FX0FTTV9NSVBTIDAKICNlbmRpZgogCisjaWYgQ1BVKFNINCkKKyNkZWZpbmUg
T0ZGTElORV9BU01fU0g0IDEKKyNlbHNlCisjZGVmaW5lIE9GRkxJTkVfQVNNX1NINCAwCisjZW5k
aWYKKwogI2VuZGlmIC8vICFFTkFCTEUoTExJTlRfQ19MT09QKQogCiAjaWYgVVNFKEpTVkFMVUU2
NCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVy
MzJfNjQuYXNtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dM
ZXZlbEludGVycHJldGVyMzJfNjQuYXNtCShyZXZpc2lvbiAxNDgzOTUpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQkod29ya2luZyBj
b3B5KQpAQCAtMTEzLDcgKzExMyw3IEBAIG1hY3JvIGNDYWxsMihmdW5jdGlvbiwgYXJnMSwgYXJn
MikKICAgICAgICAgcG9rZSBhcmcxLCAwCiAgICAgICAgIHBva2UgYXJnMiwgMQogICAgICAgICBj
YWxsIGZ1bmN0aW9uCi0gICAgZWxzaWYgTUlQUworICAgIGVsc2lmIE1JUFMgb3IgU0g0CiAgICAg
ICAgIG1vdmUgYXJnMSwgYTAKICAgICAgICAgbW92ZSBhcmcyLCBhMQogICAgICAgICBjYWxsIGZ1
bmN0aW9uCkBAIC0xMzgsNyArMTM4LDcgQEAgbWFjcm8gY0NhbGw0KGZ1bmN0aW9uLCBhcmcxLCBh
cmcyLCBhcmczLAogICAgICAgICBwb2tlIGFyZzMsIDIKICAgICAgICAgcG9rZSBhcmc0LCAzCiAg
ICAgICAgIGNhbGwgZnVuY3Rpb24KLSAgICBlbHNpZiBNSVBTCisgICAgZWxzaWYgTUlQUyBvciBT
SDQKICAgICAgICAgbW92ZSBhcmcxLCBhMAogICAgICAgICBtb3ZlIGFyZzIsIGExCiAgICAgICAg
IG1vdmUgYXJnMywgYTIKQEAgLTE5MTMsNiArMTkxMywxOSBAQCBtYWNybyBuYXRpdmVDYWxsVHJh
bXBvbGluZShleGVjdXRhYmxlT2ZmCiAgICAgICAgIGNhbGwgZXhlY3V0YWJsZU9mZnNldFRvRnVu
Y3Rpb25bdDFdCiAgICAgICAgIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKHQzKQog
ICAgICAgICBsb2FkcCBKSVRTdGFja0ZyYW1lOjpnbG9iYWxEYXRhW3NwXSwgdDMKKyAgICBlbHNp
ZiBTSDQKKyAgICAgICAgbG9hZHAgSklUU3RhY2tGcmFtZTo6Z2xvYmFsRGF0YVtzcF0sIHQzCisg
ICAgICAgIHN0b3JlcCBjZnIsIEpTR2xvYmFsRGF0YTo6dG9wQ2FsbEZyYW1lW3QzXQorICAgICAg
ICBtb3ZlIHQwLCB0MgorICAgICAgICBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwodDMp
CisgICAgICAgIHN0b3JlcCB0MywgUmV0dXJuUENbY2ZyXQorICAgICAgICBtb3ZlIGNmciwgdDAK
KyAgICAgICAgbG9hZGkgQ2FsbGVlICsgUGF5bG9hZE9mZnNldFtjZnJdLCB0MQorICAgICAgICBs
b2FkcCBKU0Z1bmN0aW9uOjptX2V4ZWN1dGFibGVbdDFdLCB0MQorICAgICAgICBtb3ZlIHQyLCBj
ZnIKKyAgICAgICAgY2FsbCBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvblt0MV0KKyAgICAgICAg
cmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4odDMpCisgICAgICAgIGxvYWRwIEpJVFN0
YWNrRnJhbWU6Omdsb2JhbERhdGFbc3BdLCB0MwogICAgIGVsc2lmIENfTE9PUAogICAgICAgICBs
b2FkcCBKSVRTdGFja0ZyYW1lOjpnbG9iYWxEYXRhW3NwXSwgdDMKICAgICAgICAgc3RvcmVwIGNm
ciwgSlNHbG9iYWxEYXRhOjp0b3BDYWxsRnJhbWVbdDNdCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCShyZXZpc2lvbiAx
NDgzOTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRl
ci5hc20JKHdvcmtpbmcgY29weSkKQEAgLTE4NSw2ICsxODUsOCBAQCBtYWNybyBwcmVzZXJ2ZVJl
dHVybkFkZHJlc3NBZnRlckNhbGwoZGVzCiAgICAgaWYgQ19MT09QIG9yIEFSTSBvciBBUk12NyBv
ciBBUk12N19UUkFESVRJT05BTCBvciBNSVBTCiAgICAgICAgICMgSW4gQ19MT09QIGNhc2UsIHdl
J3JlIG9ubHkgcHJlc2VydmluZyB0aGUgYnl0ZWNvZGUgdlBDLgogICAgICAgICBtb3ZlIGxyLCBk
ZXN0aW5hdGlvblJlZ2lzdGVyCisgICAgZWxzaWYgU0g0CisgICAgICAgIHN0c3ByIGRlc3RpbmF0
aW9uUmVnaXN0ZXIKICAgICBlbHNpZiBYODYgb3IgWDg2XzY0CiAgICAgICAgIHBvcCBkZXN0aW5h
dGlvblJlZ2lzdGVyCiAgICAgZWxzZQpAQCAtMTk2LDYgKzE5OCw4IEBAIG1hY3JvIHJlc3RvcmVS
ZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKHMKICAgICBpZiBDX0xPT1Agb3IgQVJNIG9yIEFSTXY3
IG9yIEFSTXY3X1RSQURJVElPTkFMIG9yIE1JUFMKICAgICAgICAgIyBJbiBDX0xPT1AgY2FzZSwg
d2UncmUgb25seSByZXN0b3JpbmcgdGhlIGJ5dGVjb2RlIHZQQy4KICAgICAgICAgbW92ZSBzb3Vy
Y2VSZWdpc3RlciwgbHIKKyAgICBlbHNpZiBTSDQKKyAgICAgICAgbGRzcHIgc291cmNlUmVnaXN0
ZXIKICAgICBlbHNpZiBYODYgb3IgWDg2XzY0CiAgICAgICAgIHB1c2ggc291cmNlUmVnaXN0ZXIK
ICAgICBlbHNlCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm0ucmIK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJtLnJiCShy
ZXZpc2lvbiAxNDgzOTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm0u
cmIJKHdvcmtpbmcgY29weSkKQEAgLTIxNyw3ICsyMTcsNyBAQCBjbGFzcyBTZXF1ZW5jZQogICAg
ICAgICAgICAgZW5kCiAgICAgICAgIH0KICAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2VyTWFsZm9y
bWVkQWRkcmVzc2VzRG91YmxlKHJlc3VsdCkKLSAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2VyTWlz
cGxhY2VkSW1tZWRpYXRlcyhyZXN1bHQpCisgICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlck1pc3Bs
YWNlZEltbWVkaWF0ZXMocmVzdWx0LCBbInN0b3JlYiIsICJzdG9yZWkiLCAic3RvcmVwIl0pCiAg
ICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlck1hbGZvcm1lZEltbWVkaWF0ZXMocmVzdWx0LCAwLi4w
eGZmKQogICAgICAgICByZXN1bHQgPSByaXNjTG93ZXJNaXNwbGFjZWRBZGRyZXNzZXMocmVzdWx0
KQogICAgICAgICByZXN1bHQgPSByaXNjTG93ZXJSZWdpc3RlclJldXNlKHJlc3VsdCkKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FzdC5yYgo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hc3QucmIJKHJldmlzaW9uIDE0ODM5NSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FzdC5yYgkod29ya2luZyBjb3B5
KQpAQCAtNjcxLDYgKzY3MSwxMCBAQCBjbGFzcyBBZGRyZXNzIDwgTm9kZQogICAgICAgICByYWlz
ZSAiQmFkIG9mZnNldCBmb3IgYWRkcmVzcyAje29mZnNldC5pbnNwZWN0fSBhdCAje2NvZGVPcmln
aW5TdHJpbmd9IiB1bmxlc3Mgb2Zmc2V0LmlzX2E/IFZhcmlhYmxlIG9yIG9mZnNldC5pbW1lZGlh
dGU/CiAgICAgZW5kCiAgICAgCisgICAgZGVmIHdpdGhPZmZzZXQoZXh0cmFPZmZzZXQpCisgICAg
ICAgIEFkZHJlc3MubmV3KGNvZGVPcmlnaW4sIEBiYXNlLCBJbW1lZGlhdGUubmV3KGNvZGVPcmln
aW4sIEBvZmZzZXQudmFsdWUgKyBleHRyYU9mZnNldCkpCisgICAgZW5kCisgICAgCiAgICAgZGVm
IGNoaWxkcmVuCiAgICAgICAgIFtAYmFzZSwgQG9mZnNldF0KICAgICBlbmQKQEAgLTcyNyw2ICs3
MzEsMTAgQEAgY2xhc3MgQmFzZUluZGV4IDwgTm9kZQogICAgICAgICBlbmQKICAgICBlbmQKICAg
ICAKKyAgICBkZWYgd2l0aE9mZnNldChleHRyYU9mZnNldCkKKyAgICAgICAgQmFzZUluZGV4Lm5l
dyhjb2RlT3JpZ2luLCBAYmFzZSwgQGluZGV4LCBAc2NhbGUsIEltbWVkaWF0ZS5uZXcoY29kZU9y
aWdpbiwgQG9mZnNldC52YWx1ZSArIGV4dHJhT2Zmc2V0KSkKKyAgICBlbmQKKyAgICAKICAgICBk
ZWYgY2hpbGRyZW4KICAgICAgICAgW0BiYXNlLCBAaW5kZXgsIEBvZmZzZXRdCiAgICAgZW5kCkBA
IC03NjQsNiArNzcyLDEwIEBAIGNsYXNzIEFic29sdXRlQWRkcmVzcyA8IE5vQ2hpbGRyZW4KICAg
ICAgICAgQGFkZHJlc3MgPSBhZGRyZXNzCiAgICAgZW5kCiAgICAgCisgICAgZGVmIHdpdGhPZmZz
ZXQoZXh0cmFPZmZzZXQpCisgICAgICAgIEFic29sdXRlQWRkcmVzcy5uZXcoY29kZU9yaWdpbiwg
SW1tZWRpYXRlLm5ldyhjb2RlT3JpZ2luLCBAYWRkcmVzcy52YWx1ZSArIGV4dHJhT2Zmc2V0KSkK
KyAgICBlbmQKKyAgICAKICAgICBkZWYgZHVtcAogICAgICAgICAiI3thZGRyZXNzLmR1bXB9W10i
CiAgICAgZW5kCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9iYWNrZW5k
cy5yYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9iYWNr
ZW5kcy5yYgkocmV2aXNpb24gMTQ4Mzk1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxp
bmVhc20vYmFja2VuZHMucmIJKHdvcmtpbmcgY29weSkKQEAgLTI2LDYgKzI2LDcgQEAgcmVxdWly
ZSAiYXJtIgogcmVxdWlyZSAiYXN0IgogcmVxdWlyZSAieDg2IgogcmVxdWlyZSAibWlwcyIKK3Jl
cXVpcmUgInNoNCIKIHJlcXVpcmUgImNsb29wIgogCiBCQUNLRU5EUyA9CkBAIC0zNiw2ICszNyw3
IEBAIEJBQ0tFTkRTID0KICAgICAgIkFSTXY3IiwKICAgICAgIkFSTXY3X1RSQURJVElPTkFMIiwK
ICAgICAgIk1JUFMiLAorICAgICAiU0g0IiwKICAgICAgIkNfTE9PUCIKICAgICBdCiAKQEAgLTUy
LDYgKzU0LDcgQEAgV09SS0lOR19CQUNLRU5EUyA9CiAgICAgICJBUk12NyIsCiAgICAgICJBUk12
N19UUkFESVRJT05BTCIsCiAgICAgICJNSVBTIiwKKyAgICAgIlNINCIsCiAgICAgICJDX0xPT1Ai
CiAgICAgXQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9pbnN0cnVj
dGlvbnMucmIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20v
aW5zdHJ1Y3Rpb25zLnJiCShyZXZpc2lvbiAxNDgzOTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvb2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmIJKHdvcmtpbmcgY29weSkKQEAgLTI3NSw2ICsy
NzUsMjEgQEAgTUlQU19JTlNUUlVDVElPTlMgPQogICAgICJwaWNoZHJyYSIKICAgICBdCiAKK1NI
NF9JTlNUUlVDVElPTlMgPQorICAgIFsKKyAgICAic2hsbHgiLAorICAgICJzaGxyeCIsCisgICAg
InNobGQiLAorICAgICJzaGFkIiwKKyAgICAiYmRuYW4iLAorICAgICJsb2FkZFJldmVyc2VkQW5k
SW5jcmVtZW50QWRkcmVzcyIsCisgICAgInN0b3JlZFJldmVyc2VkQW5kRGVjcmVtZW50QWRkcmVz
cyIsCisgICAgImxkc3ByIiwKKyAgICAic3RzcHIiLAorICAgICJjYWxsZiIsCisgICAgImptcGYi
CisgICAgXQorCiBDWFhfSU5TVFJVQ1RJT05TID0KICAgICBbCiAgICAgICJjbG9vcENyYXNoIiwg
ICAgICAgICAgICMgbm8gb3BlcmFuZHMKQEAgLTI5MSw3ICszMDYsNyBAQCBDWFhfSU5TVFJVQ1RJ
T05TID0KICAgICAgImNsb29wRG8iLCAgICAgICAgICAgICAgIyBubyBvcGVyYW5kcwogICAgIF0K
IAotSU5TVFJVQ1RJT05TID0gTUFDUk9fSU5TVFJVQ1RJT05TICsgWDg2X0lOU1RSVUNUSU9OUyAr
IEFSTV9JTlNUUlVDVElPTlMgKyBNSVBTX0lOU1RSVUNUSU9OUyArIENYWF9JTlNUUlVDVElPTlMK
K0lOU1RSVUNUSU9OUyA9IE1BQ1JPX0lOU1RSVUNUSU9OUyArIFg4Nl9JTlNUUlVDVElPTlMgKyBB
Uk1fSU5TVFJVQ1RJT05TICsgTUlQU19JTlNUUlVDVElPTlMgKyBTSDRfSU5TVFJVQ1RJT05TICsg
Q1hYX0lOU1RSVUNUSU9OUwogCiBJTlNUUlVDVElPTl9QQVRURVJOID0gUmVnZXhwLm5ldygnXFxB
KCgnICsgSU5TVFJVQ1RJT05TLmpvaW4oJyl8KCcpICsgJykpXFxaJykKIApJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vbWlwcy5yYgo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9taXBzLnJiCShyZXZpc2lvbiAxNDgzOTUpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9taXBzLnJiCSh3b3JraW5nIGNvcHkpCkBA
IC01NjYsNyArNTY2LDcgQEAgY2xhc3MgU2VxdWVuY2UKICAgICAgICAgICAgIGVuZAogICAgICAg
ICB9CiAgICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlck1hbGZvcm1lZEFkZHJlc3Nlc0RvdWJsZShy
ZXN1bHQpCi0gICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlck1pc3BsYWNlZEltbWVkaWF0ZXMocmVz
dWx0KQorICAgICAgICByZXN1bHQgPSByaXNjTG93ZXJNaXNwbGFjZWRJbW1lZGlhdGVzKHJlc3Vs
dCwgWyJzdG9yZWIiLCAic3RvcmVpIiwgInN0b3JlcCJdKQogICAgICAgICByZXN1bHQgPSBtaXBz
TG93ZXJNaXNwbGFjZWRJbW1lZGlhdGVzKHJlc3VsdCkKICAgICAgICAgcmVzdWx0ID0gcmlzY0xv
d2VyTWFsZm9ybWVkSW1tZWRpYXRlcyhyZXN1bHQsIC0weGZmZmYuLjB4ZmZmZikKICAgICAgICAg
cmVzdWx0ID0gbWlwc0xvd2VyTWlzcGxhY2VkQWRkcmVzc2VzKHJlc3VsdCkKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3Jpc2MucmIKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcmlzYy5yYgkocmV2aXNpb24gMTQ4Mzk1KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcmlzYy5yYgkod29ya2luZyBjb3B5KQpA
QCAtMjcyLDcgKzI3Miw3IEBAIGRlZiByaXNjTG93ZXJNYWxmb3JtZWRBZGRyZXNzZXNEb3VibGUo
bGkKIGVuZAogCiAjCi0jIExvd2VyaW5nIG9mIG1pc3BsYWNlZCBpbW1lZGlhdGVzLiBGb3IgZXhh
bXBsZToKKyMgTG93ZXJpbmcgb2YgbWlzcGxhY2VkIGltbWVkaWF0ZXMgZm9yIG9wY29kZXMgaW4g
b3Bjb2RlTGlzdC4gRm9yIGV4YW1wbGUsIGlmIHN0b3JlaSBpcyBpbiBvcGNvZGVMaXN0OgogIwog
IyBzdG9yZWkgMCwgW2Zvb10KICMKQEAgLTI4MiwxMyArMjgyLDEyIEBAIGVuZAogIyBzdG9yZWkg
dG1wLCBbZm9vXQogIwogCi1kZWYgcmlzY0xvd2VyTWlzcGxhY2VkSW1tZWRpYXRlcyhsaXN0KQor
ZGVmIHJpc2NMb3dlck1pc3BsYWNlZEltbWVkaWF0ZXMobGlzdCwgb3Bjb2RlTGlzdCkKICAgICBu
ZXdMaXN0ID0gW10KICAgICBsaXN0LmVhY2ggewogICAgICAgICB8IG5vZGUgfAogICAgICAgICBp
ZiBub2RlLmlzX2E/IEluc3RydWN0aW9uCi0gICAgICAgICAgICBjYXNlIG5vZGUub3Bjb2RlCi0g
ICAgICAgICAgICB3aGVuICJzdG9yZWIiLCAic3RvcmVpIiwgInN0b3JlcCIKKyAgICAgICAgICAg
IGlmIG9wY29kZUxpc3QuaW5jbHVkZT8gbm9kZS5vcGNvZGUKICAgICAgICAgICAgICAgICBvcGVy
YW5kcyA9IG5vZGUub3BlcmFuZHMKICAgICAgICAgICAgICAgICBuZXdPcGVyYW5kcyA9IFtdCiAg
ICAgICAgICAgICAgICAgb3BlcmFuZHMuZWFjaCB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvb2ZmbGluZWFzbS9zaDQucmIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L29mZmxpbmVhc20vc2g0LnJiCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L29mZmxpbmVhc20vc2g0LnJiCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDc2MSBAQAorIyBDb3B5
cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmln
aHQgKEMpIDIwMTMgQ2lzY28gU3lzdGVtcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIwor
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIwor
IyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIENJU0NPIFNZU1RFTVMsIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyMgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyMgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIENJU0NPIFNZU1RFTVMsIElOQy4gT1IgSVRTCisjIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorIyBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorIyBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisjIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworcmVxdWlyZSAncmlzYycKKworY2xh
c3MgTm9kZQorICAgIGRlZiBzaDRTaW5nbGVIaQorICAgICAgICBkb3VibGVPcGVyYW5kID0gc2g0
T3BlcmFuZAorICAgICAgICByYWlzZSAiQm9ndXMgcmVnaXN0ZXIgbmFtZSAje2RvdWJsZU9wZXJh
bmR9IiB1bmxlc3MgZG91YmxlT3BlcmFuZCA9fiAvXmRyLworICAgICAgICAiZnIiICsgKCR+LnBv
c3RfbWF0Y2gudG9faSkudG9fcworICAgIGVuZAorICAgIGRlZiBzaDRTaW5nbGVMbworICAgICAg
ICBkb3VibGVPcGVyYW5kID0gc2g0T3BlcmFuZAorICAgICAgICByYWlzZSAiQm9ndXMgcmVnaXN0
ZXIgbmFtZSAje2RvdWJsZU9wZXJhbmR9IiB1bmxlc3MgZG91YmxlT3BlcmFuZCA9fiAvXmRyLwor
ICAgICAgICAiZnIiICsgKCR+LnBvc3RfbWF0Y2gudG9faSArIDEpLnRvX3MKKyAgICBlbmQKK2Vu
ZAorCitjbGFzcyBTcGVjaWFsUmVnaXN0ZXIgPCBOb0NoaWxkcmVuCisgICAgZGVmIHNoNE9wZXJh
bmQKKyAgICAgICAgQG5hbWUKKyAgICBlbmQKKworICAgIGRlZiBkdW1wCisgICAgICAgIEBuYW1l
CisgICAgZW5kCisKKyAgICBkZWYgcmVnaXN0ZXI/CisgICAgICAgIHRydWUKKyAgICBlbmQKK2Vu
ZAorCitTSDRfVE1QX0dQUlMgPSBbIFNwZWNpYWxSZWdpc3Rlci5uZXcoInIzIiksIFNwZWNpYWxS
ZWdpc3Rlci5uZXcoInIxMSIpLCBTcGVjaWFsUmVnaXN0ZXIubmV3KCJyMTMiKSBdCitTSDRfVE1Q
X0ZQUlMgPSBbIFNwZWNpYWxSZWdpc3Rlci5uZXcoImRyMTAiKSBdCisKK2NsYXNzIFJlZ2lzdGVy
SUQKKyAgICBkZWYgc2g0T3BlcmFuZAorICAgICAgICBjYXNlIG5hbWUKKyAgICAgICAgd2hlbiAi
YTAiCisgICAgICAgICAgICAicjQiCisgICAgICAgIHdoZW4gImExIgorICAgICAgICAgICAgInI1
IgorICAgICAgICB3aGVuICJ0MCIKKyAgICAgICAgICAgICJyMCIKKyAgICAgICAgd2hlbiAidDEi
CisgICAgICAgICAgICAicjEiCisgICAgICAgIHdoZW4gInQyIgorICAgICAgICAgICAgInIyIgor
ICAgICAgICB3aGVuICJ0MyIKKyAgICAgICAgICAgICJyMTAiCisgICAgICAgIHdoZW4gInQ0Igor
ICAgICAgICAgICAgInI2IgorICAgICAgICB3aGVuICJjZnIiCisgICAgICAgICAgICAicjE0Igor
ICAgICAgICB3aGVuICJzcCIKKyAgICAgICAgICAgICJyMTUiCisgICAgICAgIHdoZW4gImxyIgor
ICAgICAgICAgICAgInByIgorICAgICAgICBlbHNlCisgICAgICAgICAgICByYWlzZSAiQmFkIHJl
Z2lzdGVyICN7bmFtZX0gZm9yIFNINCBhdCAje2NvZGVPcmlnaW5TdHJpbmd9IgorICAgICAgICBl
bmQKKyAgICBlbmQKK2VuZAorCitjbGFzcyBGUFJlZ2lzdGVySUQKKyAgICBkZWYgc2g0T3BlcmFu
ZAorICAgICAgICBjYXNlIG5hbWUKKyAgICAgICAgd2hlbiAiZnQwIiwgImZyIgorICAgICAgICAg
ICAgImRyMCIKKyAgICAgICAgd2hlbiAiZnQxIgorICAgICAgICAgICAgImRyMiIKKyAgICAgICAg
d2hlbiAiZnQyIgorICAgICAgICAgICAgImRyNCIKKyAgICAgICAgd2hlbiAiZnQzIgorICAgICAg
ICAgICAgImRyNiIKKyAgICAgICAgd2hlbiAiZnQ0IgorICAgICAgICAgICAgImRyOCIKKyAgICAg
ICAgd2hlbiAiZmEwIgorICAgICAgICAgICAgImRyMTIiCisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIHJhaXNlICJCYWQgcmVnaXN0ZXIgI3tuYW1lfSBmb3IgU0g0IGF0ICN7Y29kZU9yaWdpblN0
cmluZ30iCisgICAgICAgIGVuZAorICAgIGVuZAorZW5kCisKK2NsYXNzIEltbWVkaWF0ZQorICAg
IGRlZiBzaDRPcGVyYW5kCisgICAgICAgIHJhaXNlICJJbnZhbGlkIGltbWVkaWF0ZSAje3ZhbHVl
fSBhdCAje2NvZGVPcmlnaW5TdHJpbmd9IiBpZiB2YWx1ZSA8IC0xMjggb3IgdmFsdWUgPiAxMjcK
KyAgICAgICAgIiMje3ZhbHVlfSIKKyAgICBlbmQKK2VuZAorCitjbGFzcyBBZGRyZXNzCisgICAg
ZGVmIHNoNE9wZXJhbmQKKyAgICAgICAgcmFpc2UgIkJhZCBvZmZzZXQgI3tvZmZzZXQudmFsdWV9
IGF0ICN7Y29kZU9yaWdpblN0cmluZ30iIGlmIG9mZnNldC52YWx1ZSA8IDAgb3Igb2Zmc2V0LnZh
bHVlID4gNjAKKyAgICAgICAgaWYgb2Zmc2V0LnZhbHVlID09IDAKKyAgICAgICAgICAgICJAI3ti
YXNlLnNoNE9wZXJhbmR9IgorICAgICAgICBlbHNlCisgICAgICAgICAgICAiQCgje29mZnNldC52
YWx1ZX0sICN7YmFzZS5zaDRPcGVyYW5kfSkiCisgICAgICAgIGVuZAorICAgIGVuZAorCisgICAg
ZGVmIHNoNE9wZXJhbmRQb3N0SW5jCisgICAgICAgIHJhaXNlICJCYWQgb2Zmc2V0ICN7b2Zmc2V0
LnZhbHVlfSBmb3IgcG9zdCBpbmMgYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIgdW5sZXNzIG9mZnNl
dC52YWx1ZSA9PSAwCisgICAgICAgICJAI3tiYXNlLnNoNE9wZXJhbmR9KyIKKyAgICBlbmQKKwor
ICAgIGRlZiBzaDRPcGVyYW5kUHJlRGVjCisgICAgICAgIHJhaXNlICJCYWQgb2Zmc2V0ICN7b2Zm
c2V0LnZhbHVlfSBmb3IgcHJlIGRlYyBhdCAje2NvZGVPcmlnaW5TdHJpbmd9IiB1bmxlc3Mgb2Zm
c2V0LnZhbHVlID09IDAKKyAgICAgICAgIkAtI3tiYXNlLnNoNE9wZXJhbmR9IgorICAgIGVuZAor
ZW5kCisKK2NsYXNzIEJhc2VJbmRleAorICAgIGRlZiBzaDRPcGVyYW5kCisgICAgICAgIHJhaXNl
ICJVbmNvbnZlcnRlZCBiYXNlIGluZGV4IGF0ICN7Y29kZU9yaWdpblN0cmluZ30iCisgICAgZW5k
CitlbmQKKworY2xhc3MgQWJzb2x1dGVBZGRyZXNzCisgICAgZGVmIHNoNE9wZXJhbmQKKyAgICAg
ICAgcmFpc2UgIlVuY29udmVydGVkIGFic29sdXRlIGFkZHJlc3MgYXQgI3tjb2RlT3JpZ2luU3Ry
aW5nfSIKKyAgICBlbmQKK2VuZAorCisKKyMKKyMgTG93ZXJpbmcgb2Ygc2hpZnQgb3BzIGZvciBT
SDQuIEZvciBleGFtcGxlOgorIworIyByc2hpZnRpIGZvbywgYmFyCisjCisjIGJlY29tZXM6Cisj
CisjIG5lZ2kgZm9vLCB0bXAKKyMgc2hsZCB0bXAsIGJhcgorIworCitkZWYgc2g0TG93ZXJTaGlm
dE9wcyhsaXN0KQorICAgIG5ld0xpc3QgPSBbXQorICAgIGxpc3QuZWFjaCB7CisgICAgICAgIHwg
bm9kZSB8CisgICAgICAgIGlmIG5vZGUuaXNfYT8gSW5zdHJ1Y3Rpb24KKyAgICAgICAgICAgIGNh
c2Ugbm9kZS5vcGNvZGUKKyAgICAgICAgICAgIHdoZW4gInVsc2hpZnRpIiwgInVsc2hpZnRwIiwg
InVyc2hpZnRpIiwgInVyc2hpZnRwIiwgImxzaGlmdGkiLCAibHNoaWZ0cCIsICJyc2hpZnRpIiwg
InJzaGlmdHAiCisgICAgICAgICAgICAgICAgaWYgbm9kZS5vcGNvZGVbMCwxXSA9PSAidSIKKyAg
ICAgICAgICAgICAgICAgICAgdHlwZSA9ICJsIgorICAgICAgICAgICAgICAgICAgICBkaXJlY3Rp
b24gPSBub2RlLm9wY29kZVsxLDFdCisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
ICAgICAgICB0eXBlID0gImEiCisgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbiA9IG5vZGUu
b3Bjb2RlWzAsMV0KKyAgICAgICAgICAgICAgICBlbmQKKyAgICAgICAgICAgICAgICBpZiBub2Rl
Lm9wZXJhbmRzWzBdLmlzX2E/IEltbWVkaWF0ZQorICAgICAgICAgICAgICAgICAgICBpZiBub2Rl
Lm9wZXJhbmRzWzBdLnZhbHVlID09IDAKKyAgICAgICAgICAgICAgICAgICAgICAgICMgVGhlcmUg
aXMgbm90aGluZyB0byBkbyBoZXJlLgorICAgICAgICAgICAgICAgICAgICBlbHNpZiBub2RlLm9w
ZXJhbmRzWzBdLnZhbHVlID09IDEgb3IgKHR5cGUgPT0gImwiIGFuZCBbMiwgOCwgMTZdLmluY2x1
ZGU/IG5vZGUub3BlcmFuZHNbMF0udmFsdWUpCisgICAgICAgICAgICAgICAgICAgICAgICBuZXdM
aXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJzaCN7dHlwZX0je2RpcmVj
dGlvbn14Iiwgbm9kZS5vcGVyYW5kcykKKyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgICAgICAgICAgdG1wID0gVG1wLm5ldyhub2RlLmNvZGVPcmlnaW4sIDpncHIpCisg
ICAgICAgICAgICAgICAgICAgICAgICBpZiBkaXJlY3Rpb24gPT0gImwiCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2lu
LCAibW92ZSIsIFtub2RlLm9wZXJhbmRzWzBdLCB0bXBdKQorICAgICAgICAgICAgICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rp
b24ubmV3KG5vZGUuY29kZU9yaWdpbiwgIm1vdmUiLCBbSW1tZWRpYXRlLm5ldyhub2RlLm9wZXJh
bmRzWzBdLmNvZGVPcmlnaW4sIC0xICogbm9kZS5vcGVyYW5kc1swXS52YWx1ZSksIHRtcF0pCisg
ICAgICAgICAgICAgICAgICAgICAgICBlbmQKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ld0xp
c3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgInNoI3t0eXBlfWQiLCBbdG1w
LCBub2RlLm9wZXJhbmRzWzFdXSkKKyAgICAgICAgICAgICAgICAgICAgZW5kCisgICAgICAgICAg
ICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBpZiBkaXJlY3Rpb24gPT0gImwiCisgICAg
ICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVP
cmlnaW4sICJzaCN7dHlwZX1kIiwgbm9kZS5vcGVyYW5kcykKKyAgICAgICAgICAgICAgICAgICAg
ZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gVG1wLm5ldyhub2RlLmNvZGVPcmln
aW4sIDpncHIpCisgICAgICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9u
Lm5ldyhub2RlLmNvZGVPcmlnaW4sICJuZWdpIiwgW25vZGUub3BlcmFuZHNbMF0sIHRtcF0pCisg
ICAgICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNv
ZGVPcmlnaW4sICJzaCN7dHlwZX1kIiwgW3RtcCwgbm9kZS5vcGVyYW5kc1sxXV0pCisgICAgICAg
ICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgbm9kZQorICAgICAgICAgICAgZW5kCisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIG5ld0xpc3QgPDwgbm9kZQorICAgICAgICBlbmQKKyAgICB9Cisg
ICAgbmV3TGlzdAorZW5kCisKKworIworIyBMb3dlcmluZyBvZiBzaW1wbGUgYnJhbmNoIG9wcyBm
b3IgU0g0LiBGb3IgZXhhbXBsZToKKyMKKyMgYmFkZGlzIGZvbywgYmFyLCBiYXoKKyMKKyMgd2ls
bCBiZWNvbWU6CisjCisjIGFkZGkgZm9vLCBiYXIsIHRtcAorIyBicyB0bXAsIGJhegorIworCitk
ZWYgc2g0TG93ZXJTaW1wbGVCcmFuY2hPcHMobGlzdCkKKyAgICBuZXdMaXN0ID0gW10KKyAgICBs
aXN0LmVhY2ggeworICAgICAgICB8IG5vZGUgfAorICAgICAgICBpZiBub2RlLmlzX2E/IEluc3Ry
dWN0aW9uCisgICAgICAgICAgICBhbm5vdGF0aW9uID0gbm9kZS5hbm5vdGF0aW9uCisgICAgICAg
ICAgICBjYXNlIG5vZGUub3Bjb2RlCisgICAgICAgICAgICB3aGVuIC9eYihhZGRpfHN1Yml8b3Jp
fGFkZHApLworICAgICAgICAgICAgICAgIG9wID0gJDEKKyAgICAgICAgICAgICAgICBiYyA9ICR+
LnBvc3RfbWF0Y2gKKyAgICAgICAgICAgICAgICBicmFuY2ggPSAiYiIgKyBiYworCisgICAgICAg
ICAgICAgICAgY2FzZSBvcAorICAgICAgICAgICAgICAgIHdoZW4gImFkZGkiLCAiYWRkcCIKKyAg
ICAgICAgICAgICAgICAgICAgb3AgPSAiYWRkaSIKKyAgICAgICAgICAgICAgICB3aGVuICJzdWJp
IgorICAgICAgICAgICAgICAgICAgICBvcCA9ICJzdWJpIgorICAgICAgICAgICAgICAgIHdoZW4g
Im9yaSIKKyAgICAgICAgICAgICAgICAgICAgb3AgPSAib3JpIgorICAgICAgICAgICAgICAgIGVu
ZAorCisgICAgICAgICAgICAgICAgaWYgYmMgPT0gInMiCisgICAgICAgICAgICAgICAgICAgIHRt
cCA9IFRtcC5uZXcobm9kZS5jb2RlT3JpZ2luLCA6Z3ByKQorICAgICAgICAgICAgICAgICAgICBu
ZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sIG9wLCBbbm9kZS5vcGVy
YW5kc1swXSwgbm9kZS5vcGVyYW5kc1sxXSwgdG1wXSkKKyAgICAgICAgICAgICAgICAgICAgbmV3
TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAiYnMiLCBbdG1wLCBub2Rl
Lm9wZXJhbmRzWzJdXSkKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAg
IG5ld0xpc3QgPDwgbm9kZQorICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgbm9kZQorICAgICAgICAgICAgZW5kCisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIG5ld0xpc3QgPDwgbm9kZQorICAgICAgICBlbmQKKyAgICB9Cisg
ICAgbmV3TGlzdAorZW5kCisKKworIworIyBMb3dlcmluZyBvZiBkb3VibGUgYWNjZXNzZXMgZm9y
IFNINC4gRm9yIGV4YW1wbGU6CisjCisjIGxvYWRkIFtmb28sIGJhciwgOF0sIGJhegorIworIyBi
ZWNvbWVzOgorIworIyBsZWFwIFtmb28sIGJhciwgOF0sIHRtcAorIyBsb2FkZFJldmVyc2VkQW5k
SW5jcmVtZW50QWRkcmVzcyBbdG1wXSwgYmF6CisjCisKK2RlZiBzaDRMb3dlckRvdWJsZUFjY2Vz
c2VzKGxpc3QpCisgICAgbmV3TGlzdCA9IFtdCisgICAgbGlzdC5lYWNoIHsKKyAgICAgICAgfCBu
b2RlIHwKKyAgICAgICAgaWYgbm9kZS5pc19hPyBJbnN0cnVjdGlvbgorICAgICAgICAgICAgY2Fz
ZSBub2RlLm9wY29kZQorICAgICAgICAgICAgd2hlbiAibG9hZGQiCisgICAgICAgICAgICAgICAg
dG1wID0gVG1wLm5ldyhjb2RlT3JpZ2luLCA6Z3ByKQorICAgICAgICAgICAgICAgIGFkZHIgPSBB
ZGRyZXNzLm5ldyhjb2RlT3JpZ2luLCB0bXAsIEltbWVkaWF0ZS5uZXcoY29kZU9yaWdpbiwgMCkp
CisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcoY29kZU9yaWdpbiwg
ImxlYXAiLCBbbm9kZS5vcGVyYW5kc1swXSwgdG1wXSkKKyAgICAgICAgICAgICAgICBuZXdMaXN0
IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJsb2FkZFJldmVyc2VkQW5kSW5j
cmVtZW50QWRkcmVzcyIsIFthZGRyLCBub2RlLm9wZXJhbmRzWzFdXSwgbm9kZS5hbm5vdGF0aW9u
KQorICAgICAgICAgICAgd2hlbiAic3RvcmVkIgorICAgICAgICAgICAgICAgIHRtcCA9IFRtcC5u
ZXcoY29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAgICAgICBhZGRyID0gQWRkcmVzcy5uZXco
Y29kZU9yaWdpbiwgdG1wLCBJbW1lZGlhdGUubmV3KGNvZGVPcmlnaW4sIDApKQorICAgICAgICAg
ICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KGNvZGVPcmlnaW4sICJsZWFwIiwgW25v
ZGUub3BlcmFuZHNbMV0ud2l0aE9mZnNldCg4KSwgdG1wXSkKKyAgICAgICAgICAgICAgICBuZXdM
aXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJzdG9yZWRSZXZlcnNlZEFu
ZERlY3JlbWVudEFkZHJlc3MiLCBbbm9kZS5vcGVyYW5kc1swXSwgYWRkcl0sIG5vZGUuYW5ub3Rh
dGlvbikKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUK
KyAgICAgICAgICAgIGVuZAorICAgICAgICBlbHNlCisgICAgICAgICAgICBuZXdMaXN0IDw8IG5v
ZGUKKyAgICAgICAgZW5kCisgICAgfQorICAgIG5ld0xpc3QKK2VuZAorCisKKyMKKyMgTG93ZXJp
bmcgb2YgZG91YmxlIHNwZWNpYWxzIGZvciBTSDQuCisjCisKK2RlZiBzaDRMb3dlckRvdWJsZVNw
ZWNpYWxzKGxpc3QpCisgICAgbmV3TGlzdCA9IFtdCisgICAgbGlzdC5lYWNoIHsKKyAgICAgICAg
fCBub2RlIHwKKyAgICAgICAgaWYgbm9kZS5pc19hPyBJbnN0cnVjdGlvbgorICAgICAgICAgICAg
Y2FzZSBub2RlLm9wY29kZQorICAgICAgICAgICAgd2hlbiAiYmRuZXF1biIsICJiZGd0ZXF1biIs
ICJiZGx0dW4iLCAiYmRsdGVxdW4iLCAiYmRndHVuIgorICAgICAgICAgICAgICAgICMgSGFuZGxl
IGZsb2F0aW5nIHBvaW50IHVub3JkZXJlZCBvcGNvZGVzLgorICAgICAgICAgICAgICAgIHRtcDEg
PSBUbXAubmV3KGNvZGVPcmlnaW4sIDpncHIpCisgICAgICAgICAgICAgICAgdG1wMiA9IFRtcC5u
ZXcoY29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0
aW9uLm5ldyhjb2RlT3JpZ2luLCAiYmRuYW4iLCBbbm9kZS5vcGVyYW5kc1swXSwgbm9kZS5vcGVy
YW5kc1syXSwgdG1wMSwgdG1wMl0pCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVj
dGlvbi5uZXcoY29kZU9yaWdpbiwgImJkbmFuIiwgW25vZGUub3BlcmFuZHNbMV0sIG5vZGUub3Bl
cmFuZHNbMl0sIHRtcDEsIHRtcDJdKQorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1
Y3Rpb24ubmV3KGNvZGVPcmlnaW4sIG5vZGUub3Bjb2RlWzAuLi0zXSwgbm9kZS5vcGVyYW5kcykK
KyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUKKyAgICAg
ICAgICAgIGVuZAorICAgICAgICBlbHNlCisgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUKKyAg
ICAgICAgZW5kCisgICAgfQorICAgIG5ld0xpc3QKK2VuZAorCisKKyMKKyMgTG93ZXJpbmcgb2Yg
bWlzcGxhY2VkIGxhYmVscyBmb3IgU0g0LgorIworCitkZWYgc2g0TG93ZXJNaXNwbGFjZWRMYWJl
bHMobGlzdCkKKyAgICBuZXdMaXN0ID0gW10KKyAgICBsaXN0LmVhY2ggeworICAgICAgICB8IG5v
ZGUgfAorICAgICAgICBpZiBub2RlLmlzX2E/IEluc3RydWN0aW9uCisgICAgICAgICAgICBjYXNl
IG5vZGUub3Bjb2RlCisgICAgICAgICAgICB3aGVuICJqbXAiCisgICAgICAgICAgICAgICAgaWYg
bm9kZS5vcGVyYW5kc1swXS5pc19hPyBMYWJlbFJlZmVyZW5jZQorICAgICAgICAgICAgICAgICAg
ICB0bXAgPSBUbXAubmV3KGNvZGVPcmlnaW4sIDpncHIpCisgICAgICAgICAgICAgICAgICAgIG5l
d0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KGNvZGVPcmlnaW4sICJqbXBmIiwgW3RtcCwgbm9kZS5v
cGVyYW5kc1swXV0pCisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBu
ZXdMaXN0IDw8IG5vZGUKKyAgICAgICAgICAgICAgICBlbmQKKyAgICAgICAgICAgIHdoZW4gImNh
bGwiCisgICAgICAgICAgICAgICAgaWYgbm9kZS5vcGVyYW5kc1swXS5pc19hPyBMYWJlbFJlZmVy
ZW5jZQorICAgICAgICAgICAgICAgICAgICB0bXAxID0gVG1wLm5ldyhjb2RlT3JpZ2luLCA6Z3By
KQorICAgICAgICAgICAgICAgICAgICB0bXAyID0gVG1wLm5ldyhjb2RlT3JpZ2luLCA6Z3ByKQor
ICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhjb2RlT3JpZ2lu
LCAiY2FsbGYiLCBbdG1wMSwgdG1wMiwgbm9kZS5vcGVyYW5kc1swXV0pCisgICAgICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUKKyAgICAgICAgICAg
ICAgICBlbmQKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IG5v
ZGUKKyAgICAgICAgICAgIGVuZAorICAgICAgICBlbHNlCisgICAgICAgICAgICBuZXdMaXN0IDw8
IG5vZGUKKyAgICAgICAgZW5kCisgICAgfQorICAgIG5ld0xpc3QKK2VuZAorCisKK2NsYXNzIFNl
cXVlbmNlCisgICAgZGVmIGdldE1vZGlmaWVkTGlzdFNINAorICAgICAgICByZXN1bHQgPSBAbGlz
dAorCisgICAgICAgICMgVmVyaWZ5IHRoYXQgd2Ugd2lsbCBvbmx5IHNlZSBpbnN0cnVjdGlvbnMg
YW5kIGxhYmVscy4KKyAgICAgICAgcmVzdWx0LmVhY2ggeworICAgICAgICAgICAgfCBub2RlIHwK
KyAgICAgICAgICAgIHVubGVzcyBub2RlLmlzX2E/IEluc3RydWN0aW9uIG9yCisgICAgICAgICAg
ICAgICAgICAgIG5vZGUuaXNfYT8gTGFiZWwgb3IKKyAgICAgICAgICAgICAgICAgICAgbm9kZS5p
c19hPyBMb2NhbExhYmVsIG9yCisgICAgICAgICAgICAgICAgICAgIG5vZGUuaXNfYT8gU2tpcAor
ICAgICAgICAgICAgICAgIHJhaXNlICJVbmV4cGVjdGVkICN7bm9kZS5pbnNwZWN0fSBhdCAje25v
ZGUuY29kZU9yaWdpbn0iCisgICAgICAgICAgICBlbmQKKyAgICAgICAgfQorCisgICAgICAgIHJl
c3VsdCA9IHNoNExvd2VyU2hpZnRPcHMocmVzdWx0KQorICAgICAgICByZXN1bHQgPSBzaDRMb3dl
clNpbXBsZUJyYW5jaE9wcyhyZXN1bHQpCisgICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlck1hbGZv
cm1lZEFkZHJlc3NlcyhyZXN1bHQpIHsKKyAgICAgICAgICAgIHwgbm9kZSwgYWRkcmVzcyB8Cisg
ICAgICAgICAgICBpZiBhZGRyZXNzLmlzX2E/IEFkZHJlc3MKKyAgICAgICAgICAgICAgICBjYXNl
IG5vZGUub3Bjb2RlCisgICAgICAgICAgICAgICAgd2hlbiAiYnRieiIsICJidGJueiIsICJjYmVx
IiwgImJiZXEiLCAiYmJuZXEiLCAiYmJiIiwgImxvYWRiIgorICAgICAgICAgICAgICAgICAgICAo
MC4uMTUpLmluY2x1ZGU/IGFkZHJlc3Mub2Zmc2V0LnZhbHVlIGFuZAorICAgICAgICAgICAgICAg
ICAgICAgICAgKChub2RlLm9wZXJhbmRzWzBdLmlzX2E/IFJlZ2lzdGVySUQgYW5kIG5vZGUub3Bl
cmFuZHNbMF0uc2g0T3BlcmFuZCA9PSAicjAiKSBvcgorICAgICAgICAgICAgICAgICAgICAgICAg
IChub2RlLm9wZXJhbmRzWzFdLmlzX2E/IFJlZ2lzdGVySUQgYW5kIG5vZGUub3BlcmFuZHNbMV0u
c2g0T3BlcmFuZCA9PSAicjAiKSkKKyAgICAgICAgICAgICAgICB3aGVuICJsb2FkaCIKKyAgICAg
ICAgICAgICAgICAgICAgKDAuLjMwKS5pbmNsdWRlPyBhZGRyZXNzLm9mZnNldC52YWx1ZSBhbmQK
KyAgICAgICAgICAgICAgICAgICAgICAgICgobm9kZS5vcGVyYW5kc1swXS5pc19hPyBSZWdpc3Rl
cklEIGFuZCBub2RlLm9wZXJhbmRzWzBdLnNoNE9wZXJhbmQgPT0gInIwIikgb3IKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAobm9kZS5vcGVyYW5kc1sxXS5pc19hPyBSZWdpc3RlcklEIGFuZCBu
b2RlLm9wZXJhbmRzWzFdLnNoNE9wZXJhbmQgPT0gInIwIikpCisgICAgICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgICAgICAgICAoMC4uNjApLmluY2x1ZGU/IGFkZHJlc3Mub2Zmc2V0LnZh
bHVlCisgICAgICAgICAgICAgICAgZW5kCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAg
ICAgZmFsc2UKKyAgICAgICAgICAgIGVuZAorICAgICAgICB9CisgICAgICAgIHJlc3VsdCA9IHNo
NExvd2VyRG91YmxlQWNjZXNzZXMocmVzdWx0KQorICAgICAgICByZXN1bHQgPSBzaDRMb3dlckRv
dWJsZVNwZWNpYWxzKHJlc3VsdCkKKyAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2VyTWlzcGxhY2Vk
SW1tZWRpYXRlcyhyZXN1bHQsIFsic3RvcmViIiwgInN0b3JlaSIsICJzdG9yZXAiLCAibXVsaSIs
ICJtdWxwIiwgImFuZGkiLCAib3JpIiwgInhvcmkiLAorICAgICAgICAgICAgImNiZXEiLCAiY2ll
cSIsICJjcGVxIiwgImNpbmVxIiwgImNwbmVxIiwgImNpYiIsICJiYWRkaW8iLCAiYnN1YmlvIiwg
ImJtdWxpbyIsICJiYWRkaXMiLAorICAgICAgICAgICAgImJiZXEiLCAiYmJuZXEiLCAiYmJiIiwg
ImJpZXEiLCAiYnBlcSIsICJiaW5lcSIsICJicG5lcSIsICJiaWEiLCAiYnBhIiwgImJpYWVxIiwg
ImJwYWVxIiwgImJpYiIsICJicGIiLAorICAgICAgICAgICAgImJpZ3RlcSIsICJicGd0ZXEiLCAi
YmlsdCIsICJicGx0IiwgImJpZ3QiLCAiYnBndCIsICJiaWx0ZXEiLCAiYnBsdGVxIiwgImJ0aXoi
LCAiYnRweiIsICJidGlueiIsICJidHBueiIsICJidGJ6IiwgImJ0Ym56Il0pCisgICAgICAgIHJl
c3VsdCA9IHJpc2NMb3dlck1hbGZvcm1lZEltbWVkaWF0ZXMocmVzdWx0LCAtMTI4Li4xMjcpCisg
ICAgICAgIHJlc3VsdCA9IHNoNExvd2VyTWlzcGxhY2VkTGFiZWxzKHJlc3VsdCkKKyAgICAgICAg
cmVzdWx0ID0gcmlzY0xvd2VyTWlzcGxhY2VkQWRkcmVzc2VzKHJlc3VsdCkKKworICAgICAgICBy
ZXN1bHQgPSBhc3NpZ25SZWdpc3RlcnNUb1RlbXBvcmFyaWVzKHJlc3VsdCwgOmdwciwgU0g0X1RN
UF9HUFJTKQorICAgICAgICByZXN1bHQgPSBhc3NpZ25SZWdpc3RlcnNUb1RlbXBvcmFyaWVzKHJl
c3VsdCwgOmdwciwgU0g0X1RNUF9GUFJTKQorCisgICAgICAgIHJldHVybiByZXN1bHQKKyAgICBl
bmQKK2VuZAorCitkZWYgc2g0T3BlcmFuZHMob3BlcmFuZHMpCisgICAgb3BlcmFuZHMubWFwe3x2
fCB2LnNoNE9wZXJhbmR9LmpvaW4oIiwgIikKK2VuZAorCitkZWYgZW1pdFNINExvYWRDb25zdGFu
dChjb25zdGFudCwgb3BlcmFuZCkKKyAgICBpZiBjb25zdGFudCA9PSAweDQwMDAwMDAwCisgICAg
ICAgICMgRmlyc3RDb25zdGFudFJlZ2lzdGVySW5kZXggY29uc3QgaXMgb2Z0ZW4gdXNlZCAoMHg0
MDAwMDAwMCkuCisgICAgICAgICMgSXQncyBtb3JlIGVmZmljaWVudCB0byAiYnVpbGQiIHRoZSB2
YWx1ZSB3aXRoIDMgb3Bjb2RlcyB3aXRob3V0IGJyYW5jaC4KKyAgICAgICAgJGFzbS5wdXRzICJt
b3YgIzY0LCAje29wZXJhbmQuc2g0T3BlcmFuZH0iCisgICAgICAgICRhc20ucHV0cyAic2hsbDE2
ICN7b3BlcmFuZC5zaDRPcGVyYW5kfSIKKyAgICAgICAgJGFzbS5wdXRzICJzaGxsOCAje29wZXJh
bmQuc2g0T3BlcmFuZH0iCisgICAgZWxzZQorICAgICAgICBjb25zdGxhYmVsID0gTG9jYWxMYWJl
bC51bmlxdWUoImxvYWRjb25zdGFudCIpCisgICAgICAgICRhc20ucHV0cyAiLmJhbGlnbiA0Igor
ICAgICAgICAkYXNtLnB1dHMgIm1vdi5sIEAoOCwgUEMpLCAje29wZXJhbmQuc2g0T3BlcmFuZH0i
CisgICAgICAgICRhc20ucHV0cyAiYnJhICN7TG9jYWxMYWJlbFJlZmVyZW5jZS5uZXcoY29kZU9y
aWdpbiwgY29uc3RsYWJlbCkuYXNtTGFiZWx9IgorICAgICAgICAkYXNtLnB1dHMgIm5vcCIKKyAg
ICAgICAgJGFzbS5wdXRzICJub3AiCisgICAgICAgICRhc20ucHV0cyAiLmxvbmcgI3tjb25zdGFu
dH0iCisgICAgICAgIGNvbnN0bGFiZWwubG93ZXIoIlNINCIpCisgICAgZW5kCitlbmQKKworZGVm
IGVtaXRTSDRCcmFuY2goc2g0b3Bjb2RlLCBvcGVyYW5kKQorICAgICRhc20ucHV0cyAiI3tzaDRv
cGNvZGV9IEAje29wZXJhbmQuc2g0T3BlcmFuZH0iCisgICAgJGFzbS5wdXRzICJub3AiCitlbmQK
KworZGVmIGVtaXRTSDRTaGlmdEltbSh2YWwsIG9wZXJhbmQsIGRpcmVjdGlvbikKKyAgICB0bXAg
PSB2YWwKKyAgICB3aGlsZSB0bXAgPiAwCisgICAgICAgIGlmIHRtcCA+PSAxNgorICAgICAgICAg
ICAgJGFzbS5wdXRzICJzaGwje2RpcmVjdGlvbn0xNiAje29wZXJhbmQuc2g0T3BlcmFuZH0iCisg
ICAgICAgICAgICB0bXAgLT0gMTYKKyAgICAgICAgZWxzaWYgdG1wID49IDgKKyAgICAgICAgICAg
ICRhc20ucHV0cyAic2hsI3tkaXJlY3Rpb259OCAje29wZXJhbmQuc2g0T3BlcmFuZH0iCisgICAg
ICAgICAgICB0bXAgLT0gOAorICAgICAgICBlbHNpZiB0bXAgPj0gMgorICAgICAgICAgICAgJGFz
bS5wdXRzICJzaGwje2RpcmVjdGlvbn0yICN7b3BlcmFuZC5zaDRPcGVyYW5kfSIKKyAgICAgICAg
ICAgIHRtcCAtPSAyCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgICRhc20ucHV0cyAic2hsI3tk
aXJlY3Rpb259ICN7b3BlcmFuZC5zaDRPcGVyYW5kfSIKKyAgICAgICAgICAgIHRtcCAtPSAxCisg
ICAgICAgIGVuZAorICAgIGVuZAorZW5kCisKK2RlZiBlbWl0U0g0QnJhbmNoSWZUKGxhYmVsLCBu
ZWcpCisgICAgc2g0b3Bjb2RlID0gbmVnID8gImJmIiA6ICJidCIKKyAgICAkYXNtLnB1dHMgIiN7
c2g0b3Bjb2RlfSAje2xhYmVsLmFzbUxhYmVsfSIKK2VuZAorCitkZWYgZW1pdFNINEludENvbXBh
cmUoY21wT3Bjb2RlLCBvcGVyYW5kcykKKyAgICAkYXNtLnB1dHMgImNtcC8je2NtcE9wY29kZX0g
I3tzaDRPcGVyYW5kcyhbb3BlcmFuZHNbMV0sIG9wZXJhbmRzWzBdXSl9IgorZW5kCisKK2RlZiBl
bWl0U0g0Q29uZEJyYW5jaChjbXBPcGNvZGUsIG5lZywgb3BlcmFuZHMpCisgICAgZW1pdFNINElu
dENvbXBhcmUoY21wT3Bjb2RlLCBvcGVyYW5kcykKKyAgICBlbWl0U0g0QnJhbmNoSWZUKG9wZXJh
bmRzWzJdLCBuZWcpCitlbmQKKworZGVmIGVtaXRTSDRDb21wYXJlU2V0KGNtcE9wY29kZSwgbmVn
LCBvcGVyYW5kcykKKyAgICBlbWl0U0g0SW50Q29tcGFyZShjbXBPcGNvZGUsIG9wZXJhbmRzKQor
ICAgICRhc20ucHV0cyAibW92dCAje29wZXJhbmRzWzJdLnNoNE9wZXJhbmR9IgorICAgIGlmIG5l
ZworICAgICAgICAkYXNtLnB1dHMgImR0ICN7b3BlcmFuZHNbMl0uc2g0T3BlcmFuZH0iCisgICAg
ZW5kCitlbmQKKworZGVmIGVtaXRTSDRCcmFuY2hJZk5hTihvcGVyYW5kcykKKyAgICByYWlzZSAi
SW52YWxpZCBvcGVyYW5kcyBudW1iZXIgKCN7b3BlcmFuZHMuc2l6ZX0pIiB1bmxlc3Mgb3BlcmFu
ZHMuc2l6ZSA9PSA0CisgICAgZGJsb3AgPSBvcGVyYW5kc1swXQorICAgIGxhYmVsb3AgPSBvcGVy
YW5kc1sxXQorICAgIHNjcm1hc2sgPSBvcGVyYW5kc1syXQorICAgIHNjcmludCA9IG9wZXJhbmRz
WzNdCisKKyAgICAjIElmIHdlIGRvbid0IGhhdmUgIkUgPSBFbWF4ICsgMSIsIGl0J3Mgbm90IGEg
TmFOLgorICAgIG5vdE5hTmxhYmVsID0gTG9jYWxMYWJlbC51bmlxdWUoIm5vdG5hbiIpCisgICAg
JGFzbS5wdXRzICJmY252ZHMgI3tkYmxvcC5zaDRPcGVyYW5kfSwgZnB1bCIKKyAgICAkYXNtLnB1
dHMgInN0cyBmcHVsLCAje3NjcmludC5zaDRPcGVyYW5kfSIKKyAgICBlbWl0U0g0TG9hZENvbnN0
YW50KDB4N2Y4MDAwMDAsIHNjcm1hc2spCisgICAgJGFzbS5wdXRzICJhbmQgI3tzaDRPcGVyYW5k
cyhbc2NybWFzaywgc2NyaW50XSl9IgorICAgICRhc20ucHV0cyAiY21wL2VxICN7c2g0T3BlcmFu
ZHMoW3Njcm1hc2ssIHNjcmludF0pfSIKKyAgICAkYXNtLnB1dHMgImJmICN7TG9jYWxMYWJlbFJl
ZmVyZW5jZS5uZXcoY29kZU9yaWdpbiwgbm90TmFObGFiZWwpLmFzbUxhYmVsfSIKKworICAgICMg
SWYgd2UgaGF2ZSAiRSA9IEVtYXggKyAxIiBhbmQgImYgIT0gMCIsIHRoZW4gaXQncyBhIE5hTi4K
KyAgICAkYXNtLnB1dHMgInN0cyBmcHVsLCAje3NjcmludC5zaDRPcGVyYW5kfSIKKyAgICBlbWl0
U0g0TG9hZENvbnN0YW50KDB4MDAzZmZmZmYsIHNjcm1hc2spCisgICAgJGFzbS5wdXRzICJ0c3Qg
I3tzaDRPcGVyYW5kcyhbc2NybWFzaywgc2NyaW50XSl9IgorICAgICRhc20ucHV0cyAiYmYgI3ts
YWJlbG9wLmFzbUxhYmVsfSIKKworICAgIG5vdE5hTmxhYmVsLmxvd2VyKCJTSDQiKQorZW5kCisK
K2RlZiBlbWl0U0g0RG91YmxlQ29uZEJyYW5jaChjbXBPcGNvZGUsIG5lZywgb3BlcmFuZHMpCisg
ICAgaWYgY21wT3Bjb2RlID09ICJsdCIKKyAgICAgICAgaWYgKCFuZWcpCisgICAgICAgICAgICBv
dXRsYWJlbCA9IExvY2FsTGFiZWwudW5pcXVlKCJkY2JvdXQiKQorICAgICAgICAgICAgJGFzbS5w
dXRzICJmY21wL2d0ICN7c2g0T3BlcmFuZHMoW29wZXJhbmRzWzFdLCBvcGVyYW5kc1swXV0pfSIK
KyAgICAgICAgICAgICRhc20ucHV0cyAiYnQgI3tMb2NhbExhYmVsUmVmZXJlbmNlLm5ldyhjb2Rl
T3JpZ2luLCBvdXRsYWJlbCkuYXNtTGFiZWx9IgorICAgICAgICAgICAgJGFzbS5wdXRzICJmY21w
L2VxICN7c2g0T3BlcmFuZHMoW29wZXJhbmRzWzFdLCBvcGVyYW5kc1swXV0pfSIKKyAgICAgICAg
ICAgICRhc20ucHV0cyAiYmYgI3tvcGVyYW5kc1syXS5hc21MYWJlbH0iCisgICAgICAgICAgICBv
dXRsYWJlbC5sb3dlcigiU0g0IikKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgJGFzbS5wdXRz
ICJmY21wL2d0ICN7c2g0T3BlcmFuZHMoW29wZXJhbmRzWzFdLCBvcGVyYW5kc1swXV0pfSIKKyAg
ICAgICAgICAgICRhc20ucHV0cyAiYnQgI3tvcGVyYW5kc1syXS5hc21MYWJlbH0iCisgICAgICAg
ICAgICAkYXNtLnB1dHMgImZjbXAvZXEgI3tzaDRPcGVyYW5kcyhbb3BlcmFuZHNbMV0sIG9wZXJh
bmRzWzBdXSl9IgorICAgICAgICAgICAgJGFzbS5wdXRzICJidCAje29wZXJhbmRzWzJdLmFzbUxh
YmVsfSIKKyAgICAgICAgZW5kCisgICAgZWxzZQorICAgICAgICAkYXNtLnB1dHMgImZjbXAvI3tj
bXBPcGNvZGV9ICN7c2g0T3BlcmFuZHMoW29wZXJhbmRzWzFdLCBvcGVyYW5kc1swXV0pfSIKKyAg
ICAgICAgZW1pdFNINEJyYW5jaElmVChvcGVyYW5kc1syXSwgbmVnKQorICAgIGVuZAorZW5kCisK
K2NsYXNzIEluc3RydWN0aW9uCisgICAgZGVmIGxvd2VyU0g0CisgICAgICAgICRhc20uY29tbWVu
dCBjb2RlT3JpZ2luU3RyaW5nCisgICAgICAgIGNhc2Ugb3Bjb2RlCisgICAgICAgIHdoZW4gImFk
ZGkiLCAiYWRkcCIKKyAgICAgICAgICAgIGlmIG9wZXJhbmRzLnNpemUgPT0gMworICAgICAgICAg
ICAgICAgIGlmIG9wZXJhbmRzWzBdLnNoNE9wZXJhbmQgPT0gb3BlcmFuZHNbMl0uc2g0T3BlcmFu
ZAorICAgICAgICAgICAgICAgICAgICAkYXNtLnB1dHMgImFkZCAje3NoNE9wZXJhbmRzKFtvcGVy
YW5kc1sxXSwgb3BlcmFuZHNbMl1dKX0iCisgICAgICAgICAgICAgICAgZWxzaWYgb3BlcmFuZHNb
MV0uc2g0T3BlcmFuZCA9PSBvcGVyYW5kc1syXS5zaDRPcGVyYW5kCisgICAgICAgICAgICAgICAg
ICAgICRhc20ucHV0cyAiYWRkICN7c2g0T3BlcmFuZHMoW29wZXJhbmRzWzBdLCBvcGVyYW5kc1sy
XV0pfSIKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICRhc20ucHV0
cyAibW92ICN7c2g0T3BlcmFuZHMoW29wZXJhbmRzWzBdLCBvcGVyYW5kc1syXV0pfSIKKyAgICAg
ICAgICAgICAgICAgICAgJGFzbS5wdXRzICJhZGQgI3tzaDRPcGVyYW5kcyhbb3BlcmFuZHNbMV0s
IG9wZXJhbmRzWzJdXSl9IgorICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgICAgICRhc20ucHV0cyAiYWRkICN7c2g0T3BlcmFuZHMob3BlcmFuZHMpfSIK
KyAgICAgICAgICAgIGVuZAorICAgICAgICB3aGVuICJzdWJpIgorICAgICAgICAgICAgcmFpc2Ug
IiN7b3Bjb2RlfSB3aXRoICN7b3BlcmFuZHMuc2l6ZX0gb3BlcmFuZHMgaXMgbm90IGhhbmRsZWQg
eWV0IiB1bmxlc3Mgb3BlcmFuZHMuc2l6ZSA9PSAyCisgICAgICAgICAgICBpZiBvcGVyYW5kc1sw
XS5pc19hPyBJbW1lZGlhdGUKKyAgICAgICAgICAgICAgICAkYXNtLnB1dHMgImFkZCAje3NoNE9w
ZXJhbmRzKFtJbW1lZGlhdGUubmV3KGNvZGVPcmlnaW4sIC0xICogb3BlcmFuZHNbMF0udmFsdWUp
LCBvcGVyYW5kc1sxXV0pfSIKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAkYXNt
LnB1dHMgInN1YiAje3NoNE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgICAgICBlbmQKKyAg
ICAgICAgd2hlbiAibXVsaSIsICJtdWxwIgorICAgICAgICAgICAgJGFzbS5wdXRzICJtdWwubCAj
e3NoNE9wZXJhbmRzKG9wZXJhbmRzWzAuLjFdKX0iCisgICAgICAgICAgICAkYXNtLnB1dHMgInN0
cyBtYWNsLCAje29wZXJhbmRzWy0xXS5zaDRPcGVyYW5kfSIKKyAgICAgICAgd2hlbiAibmVnaSIK
KyAgICAgICAgICAgIGlmIG9wZXJhbmRzLnNpemUgPT0gMgorICAgICAgICAgICAgICAgICRhc20u
cHV0cyAibmVnICN7c2g0T3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICAgICAkYXNtLnB1dHMgIm5lZyAje3NoNE9wZXJhbmRzKFtvcGVyYW5kc1swXSwg
b3BlcmFuZHNbMF1dKX0iCisgICAgICAgICAgICBlbmQKKyAgICAgICAgd2hlbiAiYW5kaSIsICJv
cmkiLCAieG9yaSIKKyAgICAgICAgICAgIHJhaXNlICIje29wY29kZX0gd2l0aCAje29wZXJhbmRz
LnNpemV9IG9wZXJhbmRzIGlzIG5vdCBoYW5kbGVkIHlldCIgdW5sZXNzIG9wZXJhbmRzLnNpemUg
PT0gMgorICAgICAgICAgICAgc2g0b3Bjb2RlID0gb3Bjb2RlWzAuLi0yXQorICAgICAgICAgICAg
JGFzbS5wdXRzICIje3NoNG9wY29kZX0gI3tzaDRPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAg
ICB3aGVuICJzaGxseCIsICJzaGxyeCIKKyAgICAgICAgICAgIHJhaXNlICJVbmhhbmRsZWQgcGFy
YW1ldGVycyBmb3Igb3Bjb2RlICN7b3Bjb2RlfSIgdW5sZXNzIG9wZXJhbmRzWzBdLmlzX2E/IElt
bWVkaWF0ZQorICAgICAgICAgICAgaWYgb3BlcmFuZHNbMF0udmFsdWUgPT0gMQorICAgICAgICAg
ICAgICAgICRhc20ucHV0cyAic2hsI3tvcGNvZGVbMywxXX0gI3tvcGVyYW5kc1sxXS5zaDRPcGVy
YW5kfSIKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAkYXNtLnB1dHMgInNobCN7
b3Bjb2RlWzMsMV19I3tvcGVyYW5kc1swXS52YWx1ZX0gI3tvcGVyYW5kc1sxXS5zaDRPcGVyYW5k
fSIKKyAgICAgICAgICAgIGVuZAorICAgICAgICB3aGVuICJzaGxkIiwgInNoYWQiCisgICAgICAg
ICAgICAkYXNtLnB1dHMgIiN7b3Bjb2RlfSAje3NoNE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAg
ICAgIHdoZW4gImxvYWRkUmV2ZXJzZWRBbmRJbmNyZW1lbnRBZGRyZXNzIgorICAgICAgICAgICAg
IyBBcyB3ZSBhcmUgbGl0dGxlIGVuZGlhbiwgd2UgZG9uJ3QgdXNlICJmbW92IEBSbSwgRFJuIiBo
ZXJlLgorICAgICAgICAgICAgJGFzbS5wdXRzICJmbW92LnMgI3tvcGVyYW5kc1swXS5zaDRPcGVy
YW5kUG9zdEluY30sICN7b3BlcmFuZHNbMV0uc2g0U2luZ2xlTG99IgorICAgICAgICAgICAgJGFz
bS5wdXRzICJmbW92LnMgI3tvcGVyYW5kc1swXS5zaDRPcGVyYW5kUG9zdEluY30sICN7b3BlcmFu
ZHNbMV0uc2g0U2luZ2xlSGl9IgorICAgICAgICB3aGVuICJzdG9yZWRSZXZlcnNlZEFuZERlY3Jl
bWVudEFkZHJlc3MiCisgICAgICAgICAgICAjIEFzIHdlIGFyZSBsaXR0bGUgZW5kaWFuLCB3ZSBk
b24ndCB1c2UgImZtb3YgRFJtLCBAUm4iIGhlcmUuCisgICAgICAgICAgICAkYXNtLnB1dHMgImZt
b3YucyAje29wZXJhbmRzWzBdLnNoNFNpbmdsZUhpfSwgI3tvcGVyYW5kc1sxXS5zaDRPcGVyYW5k
UHJlRGVjfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAiZm1vdi5zICN7b3BlcmFuZHNbMF0uc2g0
U2luZ2xlTG99LCAje29wZXJhbmRzWzFdLnNoNE9wZXJhbmRQcmVEZWN9IgorICAgICAgICB3aGVu
ICJjaTJkIgorICAgICAgICAgICAgJGFzbS5wdXRzICJsZHMgI3tvcGVyYW5kc1swXS5zaDRPcGVy
YW5kfSwgZnB1bCIKKyAgICAgICAgICAgICRhc20ucHV0cyAiZmxvYXQgZnB1bCwgI3tvcGVyYW5k
c1sxXS5zaDRPcGVyYW5kfSIKKyAgICAgICAgd2hlbiAiZmlpMmQiCisgICAgICAgICAgICAkYXNt
LnB1dHMgImxkcyAje29wZXJhbmRzWzBdLnNoNE9wZXJhbmR9LCBmcHVsIgorICAgICAgICAgICAg
JGFzbS5wdXRzICJmc3RzIGZwdWwsICN7b3BlcmFuZHNbMl0uc2g0U2luZ2xlTG99IgorICAgICAg
ICAgICAgJGFzbS5wdXRzICJsZHMgI3tvcGVyYW5kc1sxXS5zaDRPcGVyYW5kfSwgZnB1bCIKKyAg
ICAgICAgICAgICRhc20ucHV0cyAiZnN0cyBmcHVsLCAje29wZXJhbmRzWzJdLnNoNFNpbmdsZUhp
fSIKKyAgICAgICAgd2hlbiAiZmQyaWkiCisgICAgICAgICAgICAkYXNtLnB1dHMgImZsZHMgI3tv
cGVyYW5kc1swXS5zaDRTaW5nbGVMb30sIGZwdWwiCisgICAgICAgICAgICAkYXNtLnB1dHMgInN0
cyBmcHVsLCAje29wZXJhbmRzWzFdLnNoNE9wZXJhbmR9IgorICAgICAgICAgICAgJGFzbS5wdXRz
ICJmbGRzICN7b3BlcmFuZHNbMF0uc2g0U2luZ2xlSGl9LCBmcHVsIgorICAgICAgICAgICAgJGFz
bS5wdXRzICJzdHMgZnB1bCwgI3tvcGVyYW5kc1syXS5zaDRPcGVyYW5kfSIKKyAgICAgICAgd2hl
biAiYWRkZCIsICJzdWJkIiwgIm11bGQiLCAiZGl2ZCIKKyAgICAgICAgICAgIHNoNG9wY29kZSA9
IG9wY29kZVswLi4tMl0KKyAgICAgICAgICAgICRhc20ucHV0cyAiZiN7c2g0b3Bjb2RlfSAje3No
NE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4gImJjZDJpIgorICAgICAgICAgICAg
JGFzbS5wdXRzICJmdHJjICN7b3BlcmFuZHNbMF0uc2g0T3BlcmFuZH0sIGZwdWwiCisgICAgICAg
ICAgICAkYXNtLnB1dHMgInN0cyBmcHVsLCAje29wZXJhbmRzWzFdLnNoNE9wZXJhbmR9IgorICAg
ICAgICAgICAgJGFzbS5wdXRzICJmbG9hdCBmcHVsLCAje1NINF9UTVBfRlBSU1swXS5zaDRPcGVy
YW5kfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAiZmNtcC9lcSAje3NoNE9wZXJhbmRzKFtvcGVy
YW5kc1swXSwgU0g0X1RNUF9GUFJTWzBdXSl9IgorICAgICAgICAgICAgJGFzbS5wdXRzICJiZiAj
e29wZXJhbmRzWzJdLmFzbUxhYmVsfSIKKyAgICAgICAgd2hlbiAiYmRuYW4iCisgICAgICAgICAg
ICBlbWl0U0g0QnJhbmNoSWZOYU4ob3BlcmFuZHMpCisgICAgICAgIHdoZW4gImJkbmVxIgorICAg
ICAgICAgICAgZW1pdFNINERvdWJsZUNvbmRCcmFuY2goImVxIiwgdHJ1ZSwgb3BlcmFuZHMpCisg
ICAgICAgIHdoZW4gImJkZ3RlcSIKKyAgICAgICAgICAgIGVtaXRTSDREb3VibGVDb25kQnJhbmNo
KCJsdCIsIHRydWUsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJiZGx0IgorICAgICAgICAgICAg
ZW1pdFNINERvdWJsZUNvbmRCcmFuY2goImx0IiwgZmFsc2UsIG9wZXJhbmRzKQorICAgICAgICB3
aGVuICJiZGx0ZXEiCisgICAgICAgICAgICBlbWl0U0g0RG91YmxlQ29uZEJyYW5jaCgiZ3QiLCB0
cnVlLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmRndCIKKyAgICAgICAgICAgIGVtaXRTSDRE
b3VibGVDb25kQnJhbmNoKCJndCIsIGZhbHNlLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmFk
ZGlvIiwgImJzdWJpbyIKKyAgICAgICAgICAgIHJhaXNlICIje29wY29kZX0gd2l0aCAje29wZXJh
bmRzLnNpemV9IG9wZXJhbmRzIGlzIG5vdCBoYW5kbGVkIHlldCIgdW5sZXNzIG9wZXJhbmRzLnNp
emUgPT0gMworICAgICAgICAgICAgJGFzbS5wdXRzICIje29wY29kZVsxLDNdfXYgI3tzaDRPcGVy
YW5kcyhbb3BlcmFuZHNbMF0sIG9wZXJhbmRzWzFdXSl9IgorICAgICAgICAgICAgJGFzbS5wdXRz
ICJidCAje29wZXJhbmRzWzJdLmFzbUxhYmVsfSIKKyAgICAgICAgd2hlbiAiYm11bGlvIgorICAg
ICAgICAgICAgJGFzbS5wdXRzICJkbXVscy5sICN7c2g0T3BlcmFuZHMoW29wZXJhbmRzWzBdLCBv
cGVyYW5kc1sxXV0pfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAic3RzIG1hY2gsICN7b3BlcmFu
ZHNbLTJdLnNoNE9wZXJhbmR9IgorICAgICAgICAgICAgJGFzbS5wdXRzICJ0c3QgI3tzaDRPcGVy
YW5kcyhbb3BlcmFuZHNbLTJdLCBvcGVyYW5kc1stMl1dKX0iCisgICAgICAgICAgICAkYXNtLnB1
dHMgInN0cyBtYWNsLCAje29wZXJhbmRzWy0yXS5zaDRPcGVyYW5kfSIKKyAgICAgICAgICAgICRh
c20ucHV0cyAiYmYgI3tvcGVyYW5kc1stMV0uYXNtTGFiZWx9IgorICAgICAgICB3aGVuICJidGl6
IiwgImJ0cHoiLCAiYnRpbnoiLCAiYnRwbnoiLCAiYnRieiIsICJidGJueiIKKyAgICAgICAgICAg
IGlmIG9wZXJhbmRzLnNpemUgPT0gMworICAgICAgICAgICAgICAgICRhc20ucHV0cyAidHN0ICN7
c2g0T3BlcmFuZHMoW29wZXJhbmRzWzBdLCBvcGVyYW5kc1sxXV0pfSIKKyAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgICAgICBpZiBvcGVyYW5kc1swXS5zaDRPcGVyYW5kID09ICJyMCIKKyAg
ICAgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJjbXAvZXEgIzAsIHIwIgorICAgICAgICAgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJ0c3QgI3tzaDRPcGVyYW5k
cyhbb3BlcmFuZHNbMF0sIG9wZXJhbmRzWzBdXSl9IgorICAgICAgICAgICAgICAgIGVuZAorICAg
ICAgICAgICAgZW5kCisgICAgICAgICAgICBlbWl0U0g0QnJhbmNoSWZUKG9wZXJhbmRzWy0xXSwg
KG9wY29kZVstMiwyXSA9PSAibnoiKSkKKyAgICAgICAgd2hlbiAiY2JlcSIKKyAgICAgICAgICAg
IGVtaXRTSDRDb21wYXJlU2V0KCJlcSIsIGZhbHNlLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAi
Y2llcSIsICJjcGVxIgorICAgICAgICAgICAgZW1pdFNINENvbXBhcmVTZXQoImVxIiwgZmFsc2Us
IG9wZXJhbmRzKQorICAgICAgICB3aGVuICJjaW5lcSIsICJjcG5lcSIKKyAgICAgICAgICAgIGVt
aXRTSDRDb21wYXJlU2V0KCJlcSIsIHRydWUsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJjaWIi
CisgICAgICAgICAgICBlbWl0U0g0Q29tcGFyZVNldCgiaHMiLCB0cnVlLCBvcGVyYW5kcykKKyAg
ICAgICAgd2hlbiAiYmJlcSIKKyAgICAgICAgICAgIGVtaXRTSDRDb25kQnJhbmNoKCJlcSIsIGZh
bHNlLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmJuZXEiCisgICAgICAgICAgICBlbWl0U0g0
Q29uZEJyYW5jaCgiZXEiLCB0cnVlLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmJiIgorICAg
ICAgICAgICAgZW1pdFNINENvbmRCcmFuY2goImhzIiwgdHJ1ZSwgb3BlcmFuZHMpCisgICAgICAg
IHdoZW4gImJpZXEiLCAiYnBlcSIKKyAgICAgICAgICAgIGVtaXRTSDRDb25kQnJhbmNoKCJlcSIs
IGZhbHNlLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmluZXEiLCAiYnBuZXEiCisgICAgICAg
ICAgICBlbWl0U0g0Q29uZEJyYW5jaCgiZXEiLCB0cnVlLCBvcGVyYW5kcykKKyAgICAgICAgd2hl
biAiYmlhIiwgImJwYSIKKyAgICAgICAgICAgIGVtaXRTSDRDb25kQnJhbmNoKCJoaSIsIGZhbHNl
LCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmlhZXEiLCAiYnBhZXEiCisgICAgICAgICAgICBl
bWl0U0g0Q29uZEJyYW5jaCgiaHMiLCBmYWxzZSwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImJp
YiIsICJicGIiCisgICAgICAgICAgICBlbWl0U0g0Q29uZEJyYW5jaCgiaHMiLCB0cnVlLCBvcGVy
YW5kcykKKyAgICAgICAgd2hlbiAiYmlndGVxIiwgImJwZ3RlcSIKKyAgICAgICAgICAgIGVtaXRT
SDRDb25kQnJhbmNoKCJnZSIsIGZhbHNlLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmlsdCIs
ICJicGx0IgorICAgICAgICAgICAgZW1pdFNINENvbmRCcmFuY2goImdlIiwgdHJ1ZSwgb3BlcmFu
ZHMpCisgICAgICAgIHdoZW4gImJpZ3QiLCAiYnBndCIKKyAgICAgICAgICAgIGVtaXRTSDRDb25k
QnJhbmNoKCJndCIsIGZhbHNlLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmlsdGVxIiwgImJw
bHRlcSIKKyAgICAgICAgICAgIGVtaXRTSDRDb25kQnJhbmNoKCJndCIsIHRydWUsIG9wZXJhbmRz
KQorICAgICAgICB3aGVuICJicyIKKyAgICAgICAgICAgICRhc20ucHV0cyAiY21wL3B6ICN7b3Bl
cmFuZHNbMF0uc2g0T3BlcmFuZH0iCisgICAgICAgICAgICAkYXNtLnB1dHMgImJmICN7b3BlcmFu
ZHNbMV0uYXNtTGFiZWx9IgorICAgICAgICB3aGVuICJjYWxsIgorICAgICAgICAgICAgaWYgb3Bl
cmFuZHNbMF0uaXNfYT8gTG9jYWxMYWJlbFJlZmVyZW5jZQorICAgICAgICAgICAgICAgICRhc20u
cHV0cyAiYnNyICN7b3BlcmFuZHNbMF0uYXNtTGFiZWx9IgorICAgICAgICAgICAgICAgICRhc20u
cHV0cyAibm9wIgorICAgICAgICAgICAgZWxzaWYgb3BlcmFuZHNbMF0uaXNfYT8gUmVnaXN0ZXJJ
RCBvciBvcGVyYW5kc1swXS5pc19hPyBTcGVjaWFsUmVnaXN0ZXIKKyAgICAgICAgICAgICAgICBl
bWl0U0g0QnJhbmNoKCJqc3IiLCBvcGVyYW5kc1swXSkKKyAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICByYWlzZSAiVW5oYW5kbGVkIHBhcmFtZXRlcnMgZm9yIG9wY29kZSAje29wY29k
ZX0gYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIKKyAgICAgICAgICAgIGVuZAorICAgICAgICB3aGVu
ICJjYWxsZiIKKyAgICAgICAgICAgICRhc20ucHV0cyAiLmJhbGlnbiA0IgorICAgICAgICAgICAg
JGFzbS5wdXRzICJtb3YgcjAsICN7b3BlcmFuZHNbMF0uc2g0T3BlcmFuZH0iCisgICAgICAgICAg
ICAkYXNtLnB1dHMgIm1vdmEgQCgxNCwgUEMpLCByMCIKKyAgICAgICAgICAgICRhc20ucHV0cyAi
bGRzIHIwLCBwciIKKyAgICAgICAgICAgICRhc20ucHV0cyAibW92LmwgQCg2LCBQQyksICN7b3Bl
cmFuZHNbMV0uc2g0T3BlcmFuZH0iCisgICAgICAgICAgICAkYXNtLnB1dHMgImptcCBAI3tvcGVy
YW5kc1sxXS5zaDRPcGVyYW5kfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAibW92ICN7b3BlcmFu
ZHNbMF0uc2g0T3BlcmFuZH0sIHIwIgorICAgICAgICAgICAgJGFzbS5wdXRzICIubG9uZyAje29w
ZXJhbmRzWzJdLmFzbUxhYmVsfSIKKyAgICAgICAgd2hlbiAiam1wIgorICAgICAgICAgICAgaWYg
b3BlcmFuZHNbMF0uaXNfYT8gTG9jYWxMYWJlbFJlZmVyZW5jZQorICAgICAgICAgICAgICAgICRh
c20ucHV0cyAiYnJhICN7b3BlcmFuZHNbMF0uYXNtTGFiZWx9IgorICAgICAgICAgICAgICAgICRh
c20ucHV0cyAibm9wIgorICAgICAgICAgICAgZWxzaWYgb3BlcmFuZHNbMF0uaXNfYT8gUmVnaXN0
ZXJJRCBvciBvcGVyYW5kc1swXS5pc19hPyBTcGVjaWFsUmVnaXN0ZXIKKyAgICAgICAgICAgICAg
ICBlbWl0U0g0QnJhbmNoKCJqbXAiLCBvcGVyYW5kc1swXSkKKyAgICAgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICAgICByYWlzZSAiVW5oYW5kbGVkIHBhcmFtZXRlcnMgZm9yIG9wY29kZSAje29w
Y29kZX0gYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIKKyAgICAgICAgICAgIGVuZAorICAgICAgICB3
aGVuICJqbXBmIgorICAgICAgICAgICAgJGFzbS5wdXRzICIuYmFsaWduIDQiCisgICAgICAgICAg
ICAkYXNtLnB1dHMgIm1vdi5sIEAoOCwgUEMpLCAje29wZXJhbmRzWzBdLnNoNE9wZXJhbmR9Igor
ICAgICAgICAgICAgJGFzbS5wdXRzICJqbXAgQCN7b3BlcmFuZHNbMF0uc2g0T3BlcmFuZH0iCisg
ICAgICAgICAgICAkYXNtLnB1dHMgIm5vcCIKKyAgICAgICAgICAgICRhc20ucHV0cyAibm9wIgor
ICAgICAgICAgICAgJGFzbS5wdXRzICIubG9uZyAje29wZXJhbmRzWzFdLmFzbUxhYmVsfSIKKyAg
ICAgICAgd2hlbiAicmV0IgorICAgICAgICAgICAgJGFzbS5wdXRzICJydHMiCisgICAgICAgICAg
ICAkYXNtLnB1dHMgIm5vcCIKKyAgICAgICAgd2hlbiAibG9hZGIiCisgICAgICAgICAgICAkYXNt
LnB1dHMgIm1vdi5iICN7c2g0T3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgICAgICRhc20u
cHV0cyAiZXh0dS5iICN7c2g0T3BlcmFuZHMoW29wZXJhbmRzWzFdLCBvcGVyYW5kc1sxXV0pfSIK
KyAgICAgICAgd2hlbiAibG9hZGgiCisgICAgICAgICAgICAkYXNtLnB1dHMgIm1vdi53ICN7c2g0
T3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAiZXh0dS53ICN7c2g0
T3BlcmFuZHMoW29wZXJhbmRzWzFdLCBvcGVyYW5kc1sxXV0pfSIKKyAgICAgICAgd2hlbiAibG9h
ZGkiLCAibG9hZGlzIiwgImxvYWRwIiwgInN0b3JlaSIsICJzdG9yZXAiCisgICAgICAgICAgICAk
YXNtLnB1dHMgIm1vdi5sICN7c2g0T3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAi
bW92ZSIKKyAgICAgICAgICAgIGlmIG9wZXJhbmRzWzBdLmlzX2E/IEltbWVkaWF0ZSBhbmQgKG9w
ZXJhbmRzWzBdLnZhbHVlIDwgLTEyOCBvciBvcGVyYW5kc1swXS52YWx1ZSA+IDEyNykKKyAgICAg
ICAgICAgICAgICBlbWl0U0g0TG9hZENvbnN0YW50KG9wZXJhbmRzWzBdLnZhbHVlLCBvcGVyYW5k
c1sxXSkKKyAgICAgICAgICAgIGVsc2lmIG9wZXJhbmRzWzBdLmlzX2E/IExhYmVsUmVmZXJlbmNl
CisgICAgICAgICAgICAgICAgZW1pdFNINExvYWRDb25zdGFudChvcGVyYW5kc1swXS5hc21MYWJl
bCwgb3BlcmFuZHNbMV0pCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgJGFzbS5w
dXRzICJtb3YgI3tzaDRPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICAgICAgZW5kCisgICAg
ICAgIHdoZW4gImxlYXAiCisgICAgICAgICAgICBpZiBvcGVyYW5kc1swXS5pc19hPyBCYXNlSW5k
ZXgKKyAgICAgICAgICAgICAgICBiaW9wID0gb3BlcmFuZHNbMF0KKyAgICAgICAgICAgICAgICBp
ZiBiaW9wLnNjYWxlID4gMAorICAgICAgICAgICAgICAgICAgICAkYXNtLnB1dHMgIm1vdiAje3No
NE9wZXJhbmRzKFtiaW9wLmluZGV4LCBvcGVyYW5kc1sxXV0pfSIKKyAgICAgICAgICAgICAgICAg
ICAgaWYgYmlvcC5zY2FsZVNoaWZ0ID4gMAorICAgICAgICAgICAgICAgICAgICAgICAgZW1pdFNI
NFNoaWZ0SW1tKGJpb3Auc2NhbGVTaGlmdCwgb3BlcmFuZHNbMV0sICJsIikKKyAgICAgICAgICAg
ICAgICAgICAgZW5kCisgICAgICAgICAgICAgICAgICAgICRhc20ucHV0cyAiYWRkICN7c2g0T3Bl
cmFuZHMoW2Jpb3AuYmFzZSwgb3BlcmFuZHNbMV1dKX0iCisgICAgICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgICAgICAgICAkYXNtLnB1dHMgIm1vdiAje3NoNE9wZXJhbmRzKFtiaW9wLmJh
c2UsIG9wZXJhbmRzWzFdXSl9IgorICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgICAg
IGlmIGJpb3Aub2Zmc2V0LnZhbHVlICE9IDAKKyAgICAgICAgICAgICAgICAgICAgJGFzbS5wdXRz
ICJhZGQgI3tzaDRPcGVyYW5kcyhbYmlvcC5vZmZzZXQsIG9wZXJhbmRzWzFdXSl9IgorICAgICAg
ICAgICAgICAgIGVuZAorICAgICAgICAgICAgZWxzaWYgb3BlcmFuZHNbMF0uaXNfYT8gQWRkcmVz
cworICAgICAgICAgICAgICAgIGlmIG9wZXJhbmRzWzBdLmJhc2UgIT0gb3BlcmFuZHNbMV0KKyAg
ICAgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJtb3YgI3tzaDRPcGVyYW5kcyhbb3BlcmFuZHNb
MF0uYmFzZSwgb3BlcmFuZHNbMV1dKX0iCisgICAgICAgICAgICAgICAgZW5kCisgICAgICAgICAg
ICAgICAgaWYgb3BlcmFuZHNbMF0ub2Zmc2V0LnZhbHVlICE9IDAKKyAgICAgICAgICAgICAgICAg
ICAgJGFzbS5wdXRzICJhZGQgI3tzaDRPcGVyYW5kcyhbb3BlcmFuZHNbMF0ub2Zmc2V0LCBvcGVy
YW5kc1sxXV0pfSIKKyAgICAgICAgICAgICAgICBlbmQKKyAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICByYWlzZSAiVW5oYW5kbGVkIHBhcmFtZXRlcnMgZm9yIG9wY29kZSAje29wY29k
ZX0gYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIKKyAgICAgICAgICAgIGVuZAorICAgICAgICB3aGVu
ICJsZHNwciIKKyAgICAgICAgICAgICRhc20ucHV0cyAibGRzICN7c2g0T3BlcmFuZHMob3BlcmFu
ZHMpfSwgcHIiCisgICAgICAgIHdoZW4gInN0c3ByIgorICAgICAgICAgICAgJGFzbS5wdXRzICJz
dHMgcHIsICN7c2g0T3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAiYnJlYWsiCisg
ICAgICAgICAgICAjIFRoaXMgc3BlY2lhbCBvcGNvZGUgYWx3YXlzIGdlbmVyYXRlcyBhbiBpbGxl
Z2FsIGluc3RydWN0aW9uIGV4Y2VwdGlvbi4KKyAgICAgICAgICAgICRhc20ucHV0cyAiLndvcmQg
MHhmZmZkIgorICAgICAgICBlbHNlCisgICAgICAgICAgICByYWlzZSAiVW5oYW5kbGVkIG9wY29k
ZSAje29wY29kZX0gYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIKKyAgICAgICAgZW5kCisgICAgZW5k
CitlbmQKKwpJbmRleDogU291cmNlL1dURi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dURi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0ODM5NSkKKysrIFNvdXJjZS9XVEYvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTMtMDQtMTQgIEp1bGllbiBCcmlh
bmNlYXUgIDxqYnJpYW5jZWF1QG5kcy5jb20+CisKKyAgICAgICAgTExJbnQgU0g0IGJhY2tlbmQg
aW1wbGVtZW50YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTExMjg4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogd3RmL1BsYXRmb3JtLmg6CisKIDIwMTMtMDQtMTIgIE9saXZlciBIdW50ICA8b2xp
dmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBBcG9sb2dpZXMgdG8gYWxsLCBJIGhhdmUgbm8gaWRl
YSB3aGF0IGhhcHBlbmVkIHRvIGNhdXNlIHRoaXMgY2hhbmdlLgpJbmRleDogU291cmNlL1dURi93
dGYvUGxhdGZvcm0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCShy
ZXZpc2lvbiAxNDgzOTUpCisrKyBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCSh3b3JraW5nIGNv
cHkpCkBAIC03NDIsNyArNzQyLDcgQEAKICAgICAmJiBFTkFCTEUoSklUKSBcCiAgICAgJiYgKE9T
KERBUldJTikgfHwgT1MoTElOVVgpKSBcCiAgICAgJiYgKFBMQVRGT1JNKE1BQykgfHwgUExBVEZP
Uk0oSU9TKSB8fCBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFFUKSkgXAotICAgICYmIChDUFUo
WDg2KSB8fCBDUFUoWDg2XzY0KSB8fCBDUFUoQVJNX1RIVU1CMikgfHwgQ1BVKEFSTV9UUkFESVRJ
T05BTCkgfHwgQ1BVKE1JUFMpKQorICAgICYmIChDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KSB8fCBD
UFUoQVJNX1RIVU1CMikgfHwgQ1BVKEFSTV9UUkFESVRJT05BTCkgfHwgQ1BVKE1JUFMpIHx8IENQ
VShTSDQpKQogI2RlZmluZSBFTkFCTEVfTExJTlQgMQogI2VuZGlmCiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>