<?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>151793</bug_id>
          
          <creation_ts>2015-12-02 21:51:19 -0800</creation_ts>
          <short_desc>Polymorphic operands in operators coerces downstream values to double.</short_desc>
          <delta_ts>2016-05-19 05:02:37 -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>WebKit Local 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>152433</dependson>
    
    <dependson>157890</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1145867</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-12-02 21:51:19 -0800</bug_when>
    <thetext>With the addition of support for polymorphic operands to operators in the DFG and FTL, the PredictionPropagationPhase may now coerce downstream math operations to use double type.  This may result in performance pathologies.  We should investigate a way to mitigate this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1145869</commentid>
    <comment_count>1</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-12-02 21:55:21 -0800</bug_when>
    <thetext>For some context, see https://bugs.webkit.org/show_bug.cgi?id=151746#c15.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1145870</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2015-12-02 21:55:59 -0800</bug_when>
    <thetext>&lt;rdar://problem/23737908&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1190792</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-05-06 15:15:10 -0700</bug_when>
    <thetext>First we need to unbreak the result profiling.  This basically means rolling out http://trac.webkit.org/changeset/200502.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1190807</commentid>
    <comment_count>4</comment_count>
      <attachid>278283</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-05-06 15:46:39 -0700</bug_when>
    <thetext>Created attachment 278283
work in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1190973</commentid>
    <comment_count>5</comment_count>
      <attachid>278336</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-05-07 13:29:37 -0700</bug_when>
    <thetext>Created attachment 278336
wow that was easy

Turns out that the only thing broken with ResultProfile was how ByteCodeParser handled it. It completely skipped the ResultProfile if we were not &quot;likely to take slow case&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1190988</commentid>
    <comment_count>6</comment_count>
      <attachid>278344</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-05-07 15:40:39 -0700</bug_when>
    <thetext>Created attachment 278344
add more things</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1191080</commentid>
    <comment_count>7</comment_count>
      <attachid>278368</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-05-08 12:36:24 -0700</bug_when>
    <thetext>Created attachment 278368
more...

I have to get the slow paths of baseline add/sub/mul to do profiling.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1191085</commentid>
    <comment_count>8</comment_count>
      <attachid>278369</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-05-08 13:38:01 -0700</bug_when>
    <thetext>Created attachment 278369
omg starting to work</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1191090</commentid>
    <comment_count>9</comment_count>
      <attachid>278372</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-05-08 14:08:14 -0700</bug_when>
    <thetext>Created attachment 278372
passing some tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1191217</commentid>
    <comment_count>10</comment_count>
      <attachid>278411</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-05-09 10:57:54 -0700</bug_when>
    <thetext>Created attachment 278411
performance</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1191219</commentid>
    <comment_count>11</comment_count>
      <attachid>278412</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-05-09 11:04:51 -0700</bug_when>
    <thetext>Created attachment 278412
works on 64-bit

Now I need to port this to 32-bit.  It won&apos;t be too hard.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1191227</commentid>
    <comment_count>12</comment_count>
      <attachid>278416</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-05-09 11:44:03 -0700</bug_when>
    <thetext>Created attachment 278416
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1191228</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-05-09 11:46:23 -0700</bug_when>
    <thetext>Attachment 278416 did not pass style-queue:


ERROR: Source/JavaScriptCore/jit/JITAddGenerator.cpp:131:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/jit/JITSubGenerator.h:51:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/jit/JITAddGenerator.h:51:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
Total errors found: 3 in 54 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>1191229</commentid>
    <comment_count>14</comment_count>
      <attachid>278416</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-05-09 11:49:38 -0700</bug_when>
    <thetext>Comment on attachment 278416
the patch

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

&gt; Source/JavaScriptCore/bytecode/DFGExitProfile.cpp:47
&gt; +    if (false) // FIXME

Ooops.  I meant to add an Option for this.  I just added a Options::verboseExitProfile() locally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1191232</commentid>
    <comment_count>15</comment_count>
      <attachid>278418</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-05-09 11:55:09 -0700</bug_when>
    <thetext>Created attachment 278418
the patch

Turns out I should make TagRegistersMode.h a private header.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1191233</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-05-09 11:57:28 -0700</bug_when>
    <thetext>Attachment 278418 did not pass style-queue:


ERROR: Source/JavaScriptCore/jit/JITAddGenerator.cpp:131:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/jit/JITSubGenerator.h:51:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/jit/JITAddGenerator.h:51:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
Total errors found: 3 in 55 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>1191250</commentid>
    <comment_count>17</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-05-09 12:31:18 -0700</bug_when>
    <thetext>I counted 7 &quot;definitely slower&quot;s in the perf results.  Are those real, or just due to noise?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1191252</commentid>
    <comment_count>18</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-05-09 12:33:10 -0700</bug_when>
    <thetext>Looks like some WES bot sadness too.  The EFL one is definitely fixable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1191253</commentid>
    <comment_count>19</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-05-09 12:34:54 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; I counted 7 &quot;definitely slower&quot;s in the perf results.  Are those real, or
&gt; just due to noise?

I don&apos;t know.  We usually ignore individual benchmark results if they contradict the aggregate scores.  JSRegress&apos;s aggregate is definitely faster.  The other benchmark suites&apos; aggregate scores did not change.  So, I think we don&apos;t need to pay close attention to individual benchmarks.

Note that if you&apos;re using 95% confidence intervals as we are, then you should see 1/20 benchmarks report a &quot;definitely&quot; result even if you&apos;re comparing a build to itself.  That&apos;s why it&apos;s good to err on the side of ignoring individual benchmarks unless they report a big change or the benchmark aggregate reports a change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1191281</commentid>
    <comment_count>20</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-05-09 13:13:21 -0700</bug_when>
    <thetext>Looks like the test failures that the bots saw were not real.  I&apos;ve fixed the EFL build failure, that actually revealed a bug!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1191282</commentid>
    <comment_count>21</comment_count>
      <attachid>278431</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-05-09 13:14:11 -0700</bug_when>
    <thetext>Created attachment 278431
the patch

Fixes a compile bug in the baseline op_sub impl</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1191286</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-05-09 13:16:07 -0700</bug_when>
    <thetext>Attachment 278431 did not pass style-queue:


ERROR: Source/JavaScriptCore/jit/JITAddGenerator.cpp:131:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/jit/JITSubGenerator.h:51:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/jit/JITAddGenerator.h:51:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
Total errors found: 3 in 55 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>1191297</commentid>
    <comment_count>23</comment_count>
      <attachid>278435</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-05-09 13:38:41 -0700</bug_when>
    <thetext>Created attachment 278435
the patch

Let&apos;s try this again!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1191302</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-05-09 13:41:57 -0700</bug_when>
    <thetext>Attachment 278435 did not pass style-queue:


ERROR: Source/JavaScriptCore/jit/JITAddGenerator.cpp:131:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/jit/JITSubGenerator.h:51:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/jit/JITAddGenerator.h:51:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
Total errors found: 3 in 55 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>1191307</commentid>
    <comment_count>25</comment_count>
      <attachid>278418</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-05-09 14:09:58 -0700</bug_when>
    <thetext>Comment on attachment 278418
the patch

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

&gt; Source/JavaScriptCore/bytecode/ValueProfile.h:255
&gt; +    void emitDetectBitsLight(CCallHelpers&amp;, JSValueRegs, TagRegistersMode = HaveTagRegisters);
&gt; +    
&gt; +    void detectBitsLight(JSValue value)

Why the &quot;Light&quot;?  emitDetectBitsLight seems ambiguous and doesn&apos;t actually describe its purpose / action.  How about renaming emitDetectBitsLight as emitDetectNumericness, and  detectBitsLight as detectNumericness?  Unfortunately, I don&apos;t have a better word for Numericness, but I think it does accurately convey the idea of what&apos;s being done by these functions.

&gt; Source/JavaScriptCore/dfg/DFGFixupPhase.cpp:239
&gt; -            if (Node::shouldSpeculateUntypedForArithmetic(leftChild.node(), rightChild.node())
&gt; -                &amp;&amp; m_graph.hasExitSite(node-&gt;origin.semantic, BadType)) {
&gt; +            if (Node::shouldSpeculateUntypedForArithmetic(leftChild.node(), rightChild.node())) {

Why not do the same removal of &quot;m_graph.hasExitSite(node-&gt;origin.semantic, BadType)&quot; for ArithSub as well?  I only mention ArithSub because you worked on the sub operator in this patch.  Note: the Bit??? ops, and ArithDiv/Mod also has this potentially unneeded check.

&gt; Source/JavaScriptCore/jit/AssemblyHelpers.h:781
&gt; +    Jump branchIfNotDoubleKnownNotInt32(JSValueRegs regs, TagRegistersMode mode = HaveTagRegisters)

It looks like what this code is branching if the regs contains a non-numeric JSValue.  Why not name this emitter method branchIfNotNumber instead?  I see that there is already a branchIfNotNumber() and its 64-bit implementation is identical to this one.  Ah, based on the 32-bit impl, I see what you mean by &quot;IfNotDouble&quot; and &quot;KnownNotInt32&quot;.

If this is emitter is not crucial to perf, I suggest just removing this and just using branchIfNotNumber instead.

&gt; Source/JavaScriptCore/jit/JITArithmetic.cpp:991
&gt; +    ResultProfile* resultProfile = nullptr;
&gt; +    if (shouldEmitProfiling())
&gt; +        resultProfile = m_codeBlock-&gt;ensureResultProfile(m_bytecodeOffset);

You forgot to plug the resultProfile into the JITSubGenerator below.  You&apos;re currently not detecting double results on the fast path.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1191311</commentid>
    <comment_count>26</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-05-09 14:21:24 -0700</bug_when>
    <thetext>(In reply to comment #25)
&gt; Comment on attachment 278418 [details]
&gt; the patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=278418&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/bytecode/ValueProfile.h:255
&gt; &gt; +    void emitDetectBitsLight(CCallHelpers&amp;, JSValueRegs, TagRegistersMode = HaveTagRegisters);
&gt; &gt; +    
&gt; &gt; +    void detectBitsLight(JSValue value)
&gt; 
&gt; Why the &quot;Light&quot;?  emitDetectBitsLight seems ambiguous and doesn&apos;t actually
&gt; describe its purpose / action.  How about renaming emitDetectBitsLight as
&gt; emitDetectNumericness, and  detectBitsLight as detectNumericness? 
&gt; Unfortunately, I don&apos;t have a better word for Numericness, but I think it
&gt; does accurately convey the idea of what&apos;s being done by these functions.

I like emitDetectNumericness and detectNumericness.  I will use that.

&gt; 
&gt; &gt; Source/JavaScriptCore/dfg/DFGFixupPhase.cpp:239
&gt; &gt; -            if (Node::shouldSpeculateUntypedForArithmetic(leftChild.node(), rightChild.node())
&gt; &gt; -                &amp;&amp; m_graph.hasExitSite(node-&gt;origin.semantic, BadType)) {
&gt; &gt; +            if (Node::shouldSpeculateUntypedForArithmetic(leftChild.node(), rightChild.node())) {
&gt; 
&gt; Why not do the same removal of &quot;m_graph.hasExitSite(node-&gt;origin.semantic,
&gt; BadType)&quot; for ArithSub as well?  I only mention ArithSub because you worked
&gt; on the sub operator in this patch.  Note: the Bit??? ops, and ArithDiv/Mod
&gt; also has this potentially unneeded check.

Oh wow!  I will fix this for ArithSub.

This patch doesn&apos;t do anything for div/mod, so I will leave those unchanged.  I think that we should leave div/mod for after this lands and stabilises.

&gt; 
&gt; &gt; Source/JavaScriptCore/jit/AssemblyHelpers.h:781
&gt; &gt; +    Jump branchIfNotDoubleKnownNotInt32(JSValueRegs regs, TagRegistersMode mode = HaveTagRegisters)
&gt; 
&gt; It looks like what this code is branching if the regs contains a non-numeric
&gt; JSValue.  Why not name this emitter method branchIfNotNumber instead?  I see
&gt; that there is already a branchIfNotNumber() and its 64-bit implementation is
&gt; identical to this one.  Ah, based on the 32-bit impl, I see what you mean by
&gt; &quot;IfNotDouble&quot; and &quot;KnownNotInt32&quot;.
&gt; 
&gt; If this is emitter is not crucial to perf, I suggest just removing this and
&gt; just using branchIfNotNumber instead.

It saves a register, which is important in a bunch of places.

&gt; 
&gt; &gt; Source/JavaScriptCore/jit/JITArithmetic.cpp:991
&gt; &gt; +    ResultProfile* resultProfile = nullptr;
&gt; &gt; +    if (shouldEmitProfiling())
&gt; &gt; +        resultProfile = m_codeBlock-&gt;ensureResultProfile(m_bytecodeOffset);
&gt; 
&gt; You forgot to plug the resultProfile into the JITSubGenerator below.  You&apos;re
&gt; currently not detecting double results on the fast path.

Fixed!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1191312</commentid>
    <comment_count>27</comment_count>
      <attachid>278435</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-05-09 14:24:44 -0700</bug_when>
    <thetext>Comment on attachment 278435
the patch

r=me with fixes, and if perf does not regress after the ArithSub OSR exit check is removed.

You mentioned leaving ArithMod/Div alone.  I presume you&apos;ll leave the Bit ops alone too since you didn&apos;t touch those in this patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1191366</commentid>
    <comment_count>28</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-05-09 16:34:46 -0700</bug_when>
    <thetext>(In reply to comment #26)
&gt; (In reply to comment #25)
&gt; &gt; Comment on attachment 278418 [details]
&gt; &gt; the patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=278418&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/JavaScriptCore/bytecode/ValueProfile.h:255
&gt; &gt; &gt; +    void emitDetectBitsLight(CCallHelpers&amp;, JSValueRegs, TagRegistersMode = HaveTagRegisters);
&gt; &gt; &gt; +    
&gt; &gt; &gt; +    void detectBitsLight(JSValue value)
&gt; &gt; 
&gt; &gt; Why the &quot;Light&quot;?  emitDetectBitsLight seems ambiguous and doesn&apos;t actually
&gt; &gt; describe its purpose / action.  How about renaming emitDetectBitsLight as
&gt; &gt; emitDetectNumericness, and  detectBitsLight as detectNumericness? 
&gt; &gt; Unfortunately, I don&apos;t have a better word for Numericness, but I think it
&gt; &gt; does accurately convey the idea of what&apos;s being done by these functions.
&gt; 
&gt; I like emitDetectNumericness and detectNumericness.  I will use that.

Fixed.

&gt; 
&gt; &gt; 
&gt; &gt; &gt; Source/JavaScriptCore/dfg/DFGFixupPhase.cpp:239
&gt; &gt; &gt; -            if (Node::shouldSpeculateUntypedForArithmetic(leftChild.node(), rightChild.node())
&gt; &gt; &gt; -                &amp;&amp; m_graph.hasExitSite(node-&gt;origin.semantic, BadType)) {
&gt; &gt; &gt; +            if (Node::shouldSpeculateUntypedForArithmetic(leftChild.node(), rightChild.node())) {
&gt; &gt; 
&gt; &gt; Why not do the same removal of &quot;m_graph.hasExitSite(node-&gt;origin.semantic,
&gt; &gt; BadType)&quot; for ArithSub as well?  I only mention ArithSub because you worked
&gt; &gt; on the sub operator in this patch.  Note: the Bit??? ops, and ArithDiv/Mod
&gt; &gt; also has this potentially unneeded check.
&gt; 
&gt; Oh wow!  I will fix this for ArithSub.
&gt; 
&gt; This patch doesn&apos;t do anything for div/mod, so I will leave those unchanged.
&gt; I think that we should leave div/mod for after this lands and stabilises.

Fixed.

&gt; 
&gt; &gt; 
&gt; &gt; &gt; Source/JavaScriptCore/jit/AssemblyHelpers.h:781
&gt; &gt; &gt; +    Jump branchIfNotDoubleKnownNotInt32(JSValueRegs regs, TagRegistersMode mode = HaveTagRegisters)
&gt; &gt; 
&gt; &gt; It looks like what this code is branching if the regs contains a non-numeric
&gt; &gt; JSValue.  Why not name this emitter method branchIfNotNumber instead?  I see
&gt; &gt; that there is already a branchIfNotNumber() and its 64-bit implementation is
&gt; &gt; identical to this one.  Ah, based on the 32-bit impl, I see what you mean by
&gt; &gt; &quot;IfNotDouble&quot; and &quot;KnownNotInt32&quot;.
&gt; &gt; 
&gt; &gt; If this is emitter is not crucial to perf, I suggest just removing this and
&gt; &gt; just using branchIfNotNumber instead.
&gt; 
&gt; It saves a register, which is important in a bunch of places.
&gt; 
&gt; &gt; 
&gt; &gt; &gt; Source/JavaScriptCore/jit/JITArithmetic.cpp:991
&gt; &gt; &gt; +    ResultProfile* resultProfile = nullptr;
&gt; &gt; &gt; +    if (shouldEmitProfiling())
&gt; &gt; &gt; +        resultProfile = m_codeBlock-&gt;ensureResultProfile(m_bytecodeOffset);
&gt; &gt; 
&gt; &gt; You forgot to plug the resultProfile into the JITSubGenerator below.  You&apos;re
&gt; &gt; currently not detecting double results on the fast path.
&gt; 
&gt; Fixed!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1191367</commentid>
    <comment_count>29</comment_count>
      <attachid>278457</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-05-09 16:35:47 -0700</bug_when>
    <thetext>Created attachment 278457
patch for landing

I still need to test performance.  Putting up for EWS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1191370</commentid>
    <comment_count>30</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-05-09 16:37:34 -0700</bug_when>
    <thetext>Attachment 278457 did not pass style-queue:


ERROR: Source/JavaScriptCore/jit/JITAddGenerator.cpp:131:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/jit/JITSubGenerator.h:51:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/jit/JITAddGenerator.h:51:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
Total errors found: 3 in 55 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>1191412</commentid>
    <comment_count>31</comment_count>
      <attachid>278470</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-05-09 18:57:37 -0700</bug_when>
    <thetext>Created attachment 278470
performance</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1191413</commentid>
    <comment_count>32</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-05-09 19:02:50 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/200606</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1191447</commentid>
    <comment_count>33</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-05-09 21:41:08 -0700</bug_when>
    <thetext>This broke the CLoop build:
https://build.webkit.org/builders/Apple%20El%20Capitan%20LLINT%20CLoop%20%28BuildAndTest%29?numbuilds=100</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1191449</commentid>
    <comment_count>34</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-05-09 21:50:44 -0700</bug_when>
    <thetext>(In reply to comment #33)
&gt; This broke the CLoop build:
&gt; https://build.webkit.org/builders/
&gt; Apple%20El%20Capitan%20LLINT%20CLoop%20%28BuildAndTest%29?numbuilds=100

Looking!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1191450</commentid>
    <comment_count>35</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-05-09 21:52:28 -0700</bug_when>
    <thetext>(In reply to comment #34)
&gt; (In reply to comment #33)
&gt; &gt; This broke the CLoop build:
&gt; &gt; https://build.webkit.org/builders/
&gt; &gt; Apple%20El%20Capitan%20LLINT%20CLoop%20%28BuildAndTest%29?numbuilds=100
&gt; 
&gt; Looking!

I have a fix, will land shortly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1191452</commentid>
    <comment_count>36</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-05-09 21:58:12 -0700</bug_when>
    <thetext>(In reply to comment #35)
&gt; (In reply to comment #34)
&gt; &gt; (In reply to comment #33)
&gt; &gt; &gt; This broke the CLoop build:
&gt; &gt; &gt; https://build.webkit.org/builders/
&gt; &gt; &gt; Apple%20El%20Capitan%20LLINT%20CLoop%20%28BuildAndTest%29?numbuilds=100
&gt; &gt; 
&gt; &gt; Looking!
&gt; 
&gt; I have a fix, will land shortly.

Fixed in http://trac.webkit.org/changeset/200613.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1191952</commentid>
    <comment_count>37</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-05-11 09:34:07 -0700</bug_when>
    <thetext>Looks like a 1.7% on Dromaeo DOM Core benchmark on MacBookAir.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1191954</commentid>
    <comment_count>38</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-05-11 09:35:59 -0700</bug_when>
    <thetext>(In reply to comment #37)
&gt; Looks like a 1.7% on Dromaeo DOM Core benchmark on MacBookAir.

I forgot the *key* word: 1.7% *PROGRESSION*!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>278283</attachid>
            <date>2016-05-06 15:46:39 -0700</date>
            <delta_ts>2016-05-07 13:29:37 -0700</delta_ts>
            <desc>work in progress</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>23914</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgJKHJldmlz
aW9uIDIwMDUxNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2su
aAkod29ya2luZyBjb3B5KQpAQCAtNTAwLDcgKzUwMCw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAg
ICAgIEFTU0VSVChKSVRDb2RlOjppc0Jhc2VsaW5lQ29kZShqaXRUeXBlKCkpKTsKICAgICAgICAg
Q29uY3VycmVudEpJVExvY2tlciBsb2NrZXIobV9sb2NrKTsKLSAgICAgICAgcmV0dXJuIG1fZXhp
dFByb2ZpbGUuYWRkKGxvY2tlciwgc2l0ZSk7CisgICAgICAgIHJldHVybiBtX2V4aXRQcm9maWxl
LmFkZChsb2NrZXIsIHRoaXMsIHNpdGUpOwogICAgIH0KIAogICAgIGJvb2wgaGFzRXhpdFNpdGUo
Y29uc3QgQ29uY3VycmVudEpJVExvY2tlciYgbG9ja2VyLCBjb25zdCBERkc6OkZyZXF1ZW50RXhp
dFNpdGUmIHNpdGUpIGNvbnN0CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
REZHRXhpdFByb2ZpbGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9ERkdFeGl0UHJvZmlsZS5jcHAJKHJldmlzaW9uIDIwMDUxNykKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9ERkdFeGl0UHJvZmlsZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI4LDE1ICsyOCwyNCBAQAogCiAjaWYgRU5BQkxFKERGR19KSVQpCiAKKyNpbmNsdWRlICJD
b2RlQmxvY2suaCIKKwogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogCit2b2lkIEZy
ZXF1ZW50RXhpdFNpdGU6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKK3sKKyAgICBvdXQu
cHJpbnQoImJjIyIsIG1fYnl0ZWNvZGVPZmZzZXQsICI6ICIsIG1fa2luZCwgIi8iLCBtX2ppdFR5
cGUpOworfQorCiBFeGl0UHJvZmlsZTo6RXhpdFByb2ZpbGUoKSB7IH0KIEV4aXRQcm9maWxlOjp+
RXhpdFByb2ZpbGUoKSB7IH0KIAotYm9vbCBFeGl0UHJvZmlsZTo6YWRkKGNvbnN0IENvbmN1cnJl
bnRKSVRMb2NrZXImLCBjb25zdCBGcmVxdWVudEV4aXRTaXRlJiBzaXRlKQorYm9vbCBFeGl0UHJv
ZmlsZTo6YWRkKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBDb2RlQmxvY2sqIG93bmVyLCBj
b25zdCBGcmVxdWVudEV4aXRTaXRlJiBzaXRlKQogewogICAgIEFTU0VSVChzaXRlLmppdFR5cGUo
KSAhPSBFeGl0RnJvbUFueXRoaW5nKTsKICAgICAKKyAgICBkYXRhTG9nKHBvaW50ZXJEdW1wKG93
bmVyKSwgIjogQWRkaW5nIGV4aXQgc2l0ZTogIiwgc2l0ZSwgIlxuIik7CisgICAgCiAgICAgLy8g
SWYgd2UndmUgbmV2ZXIgc2VlbiBhbnkgZnJlcXVlbnQgZXhpdHMgdGhlbiBjcmVhdGUgdGhlIGxp
c3QgYW5kIHB1dCB0aGlzIHNpdGUKICAgICAvLyBpbnRvIGl0LgogICAgIGlmICghbV9mcmVxdWVu
dEV4aXRTaXRlcykgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0RGR0V4
aXRQcm9maWxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0RGR0V4aXRQcm9maWxlLmgJKHJldmlzaW9uIDIwMDUxNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9ERkdFeGl0UHJvZmlsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTYsNiAr
MTE2LDggQEAgcHVibGljOgogICAgIHsKICAgICAgICAgcmV0dXJuIG1fa2luZCA9PSBFeGl0S2lu
ZFVuc2V0ICYmIG1fYnl0ZWNvZGVPZmZzZXQ7CiAgICAgfQorICAgIAorICAgIHZvaWQgZHVtcChQ
cmludFN0cmVhbSYgb3V0KSBjb25zdDsKIAogcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX2J5dGVj
b2RlT2Zmc2V0OwpAQCAtMTU5LDcgKzE2MSw3IEBAIHB1YmxpYzoKICAgICAvLyBiZSBjYWxsZWQg
YSBmaXhlZCBudW1iZXIgb2YgdGltZXMgcGVyIHJlY29tcGlsYXRpb24uIFJlY29tcGlsYXRpb24g
aXMKICAgICAvLyByYXJlIHRvIGJlZ2luIHdpdGgsIGFuZCBpbXBsaWVzIGRvaW5nIE8obikgb3Bl
cmF0aW9ucyBvbiB0aGUgQ29kZUJsb2NrCiAgICAgLy8gYW55d2F5LgotICAgIGJvb2wgYWRkKGNv
bnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBjb25zdCBGcmVxdWVudEV4aXRTaXRlJik7CisgICAg
Ym9vbCBhZGQoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIENvZGVCbG9jayogb3duZXIsIGNv
bnN0IEZyZXF1ZW50RXhpdFNpdGUmKTsKICAgICAKICAgICAvLyBHZXQgdGhlIGZyZXF1ZW50IGV4
aXQgc2l0ZXMgZm9yIGEgYnl0ZWNvZGUgaW5kZXguIFRoaXMgaXMgTyhuKSwgYW5kIGlzCiAgICAg
Ly8gbWVhbnQgdG8gb25seSBiZSB1c2VkIGZyb20gZGVidWdnaW5nL3Byb2ZpbGluZyBjb2RlLgpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL01ldGhvZE9mR2V0dGluZ0FWYWx1
ZVByb2ZpbGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9NZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlLmNwcAkocmV2aXNpb24gMjAwNTE3KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL01ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2Zp
bGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NCwxNCArNDQsMTUgQEAgTWV0aG9kT2ZHZXR0aW5n
QVZhbHVlUHJvZmlsZSBNZXRob2RPZkdldAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlKiBNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlOjpnZXRTcGVjRmFpbEJ1Y2tl
dCh1bnNpZ25lZCBpbmRleCkgY29uc3QKK3ZvaWQgTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmls
ZTo6ZW1pdFJlcG9ydFZhbHVlKENDYWxsSGVscGVycyYgaml0LCBKU1ZhbHVlUmVncyByZWdzKSBj
b25zdAogewogICAgIHN3aXRjaCAobV9raW5kKSB7CiAgICAgY2FzZSBOb25lOgotICAgICAgICBy
ZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuOwogICAgICAgICAKICAgICBjYXNlIFJlYWR5OgotICAg
ICAgICByZXR1cm4gdS5wcm9maWxlLT5zcGVjRmFpbEJ1Y2tldChpbmRleCk7CisgICAgICAgIGpp
dC5zdG9yZVZhbHVlKHJlZ3MsIHUucHJvZmlsZS0+c3BlY0ZhaWxCdWNrZXQoMCkpOworICAgICAg
ICByZXR1cm47CiAgICAgICAgIAogICAgIGNhc2UgTGF6eU9wZXJhbmQ6IHsKICAgICAgICAgTGF6
eU9wZXJhbmRWYWx1ZVByb2ZpbGVLZXkga2V5KHUubGF6eU9wZXJhbmQuYnl0ZWNvZGVPZmZzZXQs
IFZpcnR1YWxSZWdpc3Rlcih1LmxhenlPcGVyYW5kLm9wZXJhbmQpKTsKQEAgLTU5LDEzICs2MCwy
NCBAQCBFbmNvZGVkSlNWYWx1ZSogTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvCiAgICAgICAgIENv
bmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKHUubGF6eU9wZXJhbmQuY29kZUJsb2NrLT5tX2xvY2sp
OwogICAgICAgICBMYXp5T3BlcmFuZFZhbHVlUHJvZmlsZSogcHJvZmlsZSA9CiAgICAgICAgICAg
ICB1LmxhenlPcGVyYW5kLmNvZGVCbG9jay0+bGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGVzKCkuYWRk
KGxvY2tlciwga2V5KTsKLSAgICAgICAgcmV0dXJuIHByb2ZpbGUtPnNwZWNGYWlsQnVja2V0KGlu
ZGV4KTsKKyAgICAgICAgaml0LnN0b3JlVmFsdWUocmVncywgcHJvZmlsZS0+c3BlY0ZhaWxCdWNr
ZXQoMCkpOworICAgICAgICByZXR1cm47CiAgICAgfQogICAgICAgICAKLSAgICBkZWZhdWx0Ogot
ICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm4gMDsK
LSAgICB9CisgICAgY2FzZSBSZXN1bHRQcm9maWxlUmVhZHk6IHsKKyAgICAgICAgQ0NhbGxIZWxw
ZXJzOjpKdW1wIGlzSW50MzIgPSBqaXQuYnJhbmNoSWZJbnQzMihyZWdzLCBDQ2FsbEhlbHBlcnM6
OkRvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7CisgICAgICAgIENDYWxsSGVscGVyczo6SnVtcCBub3RE
b3VibGUgPSBqaXQuYnJhbmNoSWZOb3REb3VibGVLbm93bk5vdEludDMyKHJlZ3MsIENDYWxsSGVs
cGVyczo6RG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsKKyAgICAgICAgLy8gRklYTUU6IFdlIGNvdWxk
IGJlIG1vcmUgcHJlY2lzZSBoZXJlLgorICAgICAgICBqaXQub3IzMihDQ2FsbEhlbHBlcnM6OlRy
dXN0ZWRJbW0zMihSZXN1bHRQcm9maWxlOjpOZWdaZXJvRG91YmxlIHwgUmVzdWx0UHJvZmlsZTo6
Tm9uTmVnWmVyb0RvdWJsZSksIENDYWxsSGVscGVyczo6QWJzb2x1dGVBZGRyZXNzKHUucmVzdWx0
UHJvZmlsZS0+YWRkcmVzc09mRmxhZ3MoKSkpOworICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXAg
ZG9uZSA9IGppdC5qdW1wKCk7CisgICAgICAgIG5vdERvdWJsZS5saW5rKCZqaXQpOworICAgICAg
ICBqaXQub3IzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihSZXN1bHRQcm9maWxlOjpOb25O
dW1iZXIpLCBDQ2FsbEhlbHBlcnM6OkFic29sdXRlQWRkcmVzcyh1LnJlc3VsdFByb2ZpbGUtPmFk
ZHJlc3NPZkZsYWdzKCkpKTsKKyAgICAgICAgZG9uZS5saW5rKCZqaXQpOworICAgICAgICBpc0lu
dDMyLmxpbmsoJmppdCk7CisgICAgICAgIHJldHVybjsKKyAgICB9IH0KKyAgICAKKyAgICBSRUxF
QVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9NZXRob2RPZkdldHRpbmdBVmFsdWVQcm9m
aWxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL01ldGhv
ZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUuaAkocmV2aXNpb24gMjAwNTE3KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL01ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUuaAkod29y
a2luZyBjb3B5KQpAQCAtMzgsNiArMzgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogY2xhc3MgQ29k
ZUJsb2NrOwogY2xhc3MgTGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGVLZXk7CitzdHJ1Y3QgUmVzdWx0
UHJvZmlsZTsKIHN0cnVjdCBWYWx1ZVByb2ZpbGU7CiAKIGNsYXNzIE1ldGhvZE9mR2V0dGluZ0FW
YWx1ZVByb2ZpbGUgewpAQCAtNDcsNyArNDgsNyBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KICAg
ICAKLSAgICBleHBsaWNpdCBNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlKFZhbHVlUHJvZmls
ZSogcHJvZmlsZSkKKyAgICBNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlKFZhbHVlUHJvZmls
ZSogcHJvZmlsZSkKICAgICB7CiAgICAgICAgIGlmIChwcm9maWxlKSB7CiAgICAgICAgICAgICBt
X2tpbmQgPSBSZWFkeTsKQEAgLTU2LDMxICs1NywzNCBAQCBwdWJsaWM6CiAgICAgICAgICAgICBt
X2tpbmQgPSBOb25lOwogICAgIH0KICAgICAKKyAgICBNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9m
aWxlKFJlc3VsdFByb2ZpbGUqIHByb2ZpbGUpCisgICAgeworICAgICAgICBpZiAocHJvZmlsZSkg
eworICAgICAgICAgICAgbV9raW5kID0gUmVzdWx0UHJvZmlsZVJlYWR5OworICAgICAgICAgICAg
dS5yZXN1bHRQcm9maWxlID0gcHJvZmlsZTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBt
X2tpbmQgPSBOb25lOworICAgIH0KKyAgICAKICAgICBzdGF0aWMgTWV0aG9kT2ZHZXR0aW5nQVZh
bHVlUHJvZmlsZSBmcm9tTGF6eU9wZXJhbmQoCiAgICAgICAgIENvZGVCbG9jayosIGNvbnN0IExh
enlPcGVyYW5kVmFsdWVQcm9maWxlS2V5Jik7CiAgICAgCi0gICAgYm9vbCBvcGVyYXRvciEoKSBj
b25zdCB7IHJldHVybiBtX2tpbmQgPT0gTm9uZTsgfQotICAgIAotICAgIC8vIFRoaXMgbG9naWNh
bGx5IGhhcyBhIHBvaW50ZXIgdG8gYSAiVGhlcmUgZXhpc3RzIFggc3VjaCB0aGF0Ci0gICAgLy8g
VmFsdWVQcm9maWxlQmFzZTxYPiIuIEJ1dCBzaW5jZSBDKysgZG9lcyBub3QgaGF2ZSBleGlzdGVu
dGlhbAotICAgIC8vIHRlbXBsYXRlcywgSSBjYW5ub3QgcmV0dXJuIGl0LiBTbyBpbnN0ZWFkLCBm
b3IgYW55IG1ldGhvZHMgdGhhdAotICAgIC8vIHVzZXJzIG9mIHRoaXMgY2xhc3Mgd291bGQgbGlr
ZSB0byBjYWxsLCB3ZSdsbCBqdXN0IGhhdmUgdG8gcHJvdmlkZQotICAgIC8vIGEgbWV0aG9kIGhl
cmUgdGhhdCBkb2VzIGl0IHRocm91Z2ggYW4gaW5kaXJlY3Rpb24uIE9yIHdlIGNvdWxkCi0gICAg
Ly8gcG9zc2libHkganVzdCBtYWtlIFZhbHVlUHJvZmlsZSBsZXNzIHRlbXBsYXRlLWJhc2VkLiBC
dXQgbGFzdCBJCi0gICAgLy8gdHJpZWQgdGhhdCwgaXQgZmVsdCBtb3JlIHl1Y2t5IHRoYW4gdGhp
cyBjbGFzcy4KKyAgICBleHBsaWNpdCBvcGVyYXRvciBib29sKCkgY29uc3QgeyByZXR1cm4gbV9r
aW5kICE9IE5vbmU7IH0KICAgICAKLSAgICBFbmNvZGVkSlNWYWx1ZSogZ2V0U3BlY0ZhaWxCdWNr
ZXQodW5zaWduZWQgaW5kZXgpIGNvbnN0OworICAgIHZvaWQgZW1pdFJlcG9ydFZhbHVlKENDYWxs
SGVscGVycyYsIEpTVmFsdWVSZWdzKSBjb25zdDsKICAgICAKIHByaXZhdGU6CiAgICAgZW51bSBL
aW5kIHsKICAgICAgICAgTm9uZSwKICAgICAgICAgUmVhZHksCisgICAgICAgIFJlc3VsdFByb2Zp
bGVSZWFkeSwKICAgICAgICAgTGF6eU9wZXJhbmQKICAgICB9OwogICAgIAogICAgIEtpbmQgbV9r
aW5kOwogICAgIHVuaW9uIHsKICAgICAgICAgVmFsdWVQcm9maWxlKiBwcm9maWxlOworICAgICAg
ICBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlOwogICAgICAgICBzdHJ1Y3QgewogICAgICAg
ICAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2s7CiAgICAgICAgICAgICB1bnNpZ25lZCBieXRlY29k
ZU9mZnNldDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WYWx1ZVByb2Zp
bGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WYWx1
ZVByb2ZpbGUuY3BwCShyZXZpc2lvbiAyMDA1MTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvVmFsdWVQcm9maWxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQsMjMgKzM0LDMx
IEBAIHZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0LCBjb24KIHsKICAgICBjb25z
dCBjaGFyKiBzZXBhcmF0b3IgPSAiIjsKIAotICAgIGlmIChwcm9maWxlLmRpZE9ic2VydmVOZWda
ZXJvRG91YmxlKCkpIHsKLSAgICAgICAgb3V0LnByaW50KHNlcGFyYXRvciwgIk5lZ1plcm9Eb3Vi
bGUiKTsKKyAgICBpZiAoIXByb2ZpbGUuZGlkT2JzZXJ2ZU5vbkludDMyKCkpIHsKKyAgICAgICAg
b3V0LnByaW50KCJJbnQzMiIpOwogICAgICAgICBzZXBhcmF0b3IgPSAifCI7CisgICAgfSBlbHNl
IHsKKyAgICAgICAgaWYgKHByb2ZpbGUuZGlkT2JzZXJ2ZU5lZ1plcm9Eb3VibGUoKSkgeworICAg
ICAgICAgICAgb3V0LnByaW50KHNlcGFyYXRvciwgIk5lZ1plcm9Eb3VibGUiKTsKKyAgICAgICAg
ICAgIHNlcGFyYXRvciA9ICJ8IjsKKyAgICAgICAgfQorICAgICAgICBpZiAocHJvZmlsZS5kaWRP
YnNlcnZlTm9uTmVnWmVyb0RvdWJsZSgpKSB7CisgICAgICAgICAgICBvdXQucHJpbnQoIk5vbk5l
Z1plcm9Eb3VibGUiKTsKKyAgICAgICAgICAgIHNlcGFyYXRvciA9ICJ8IjsKKyAgICAgICAgfQor
ICAgICAgICBpZiAocHJvZmlsZS5kaWRPYnNlcnZlTm9uTnVtYmVyKCkpIHsKKyAgICAgICAgICAg
IG91dC5wcmludCgiTm9uTnVtYmVyIik7CisgICAgICAgICAgICBzZXBhcmF0b3IgPSAifCI7Cisg
ICAgICAgIH0KKyAgICAgICAgaWYgKHByb2ZpbGUuZGlkT2JzZXJ2ZUludDMyT3ZlcmZsb3coKSkg
eworICAgICAgICAgICAgb3V0LnByaW50KCJJbnQzMk92ZXJmbG93Iik7CisgICAgICAgICAgICBz
ZXBhcmF0b3IgPSAifCI7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHByb2ZpbGUuZGlkT2JzZXJ2
ZUludDUyT3ZlcmZsb3coKSkgeworICAgICAgICAgICAgb3V0LnByaW50KCJJbnQ1Mk92ZXJmbG93
Iik7CisgICAgICAgICAgICBzZXBhcmF0b3IgPSAifCI7CisgICAgICAgIH0KICAgICB9Ci0gICAg
aWYgKHByb2ZpbGUuZGlkT2JzZXJ2ZU5vbk51bWJlcigpKSB7Ci0gICAgICAgIG91dC5wcmludCgi
Tm9uTnVtYmVyIik7Ci0gICAgICAgIHNlcGFyYXRvciA9ICJ8IjsKLSAgICB9Ci0gICAgaWYgKHBy
b2ZpbGUuZGlkT2JzZXJ2ZUludDMyT3ZlcmZsb3coKSkgewotICAgICAgICBvdXQucHJpbnQoIklu
dDMyT3ZlcmZsb3ciKTsKLSAgICAgICAgc2VwYXJhdG9yID0gInwiOwotICAgIH0KLSAgICBpZiAo
cHJvZmlsZS5kaWRPYnNlcnZlSW50NTJPdmVyZmxvdygpKSB7Ci0gICAgICAgIG91dC5wcmludCgi
SW50NTJPdmVyZmxvdyIpOwotICAgICAgICBzZXBhcmF0b3IgPSAifCI7Ci0gICAgfQotCiAgICAg
aWYgKHByb2ZpbGUuc3BlY2lhbEZhc3RQYXRoQ291bnQoKSkgewogICAgICAgICBvdXQucHJpbnQo
IiBzcGVjaWFsIGZhc3QgcGF0aDogIik7CiAgICAgICAgIG91dC5wcmludChwcm9maWxlLnNwZWNp
YWxGYXN0UGF0aENvdW50KCkpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L1ZhbHVlUHJvZmlsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9WYWx1ZVByb2ZpbGUuaAkocmV2aXNpb24gMjAwNTE3KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL1ZhbHVlUHJvZmlsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMTgsMjAg
KzIxOCwyNSBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgZW51bSBPYnNlcnZlZFJlc3VsdHMgewot
ICAgICAgICBOZWdaZXJvRG91YmxlICAgID0gMSA8PCAwLAotICAgICAgICBOb25OdW1iZXIgICAg
ICAgID0gMSA8PCAxLAotICAgICAgICBJbnQzMk92ZXJmbG93ICAgID0gMSA8PCAyLAotICAgICAg
ICBJbnQ1Mk92ZXJmbG93ICAgID0gMSA8PCAzLAorICAgICAgICBOb25OZWdaZXJvRG91YmxlID0g
MSA8PCAwLAorICAgICAgICBOZWdaZXJvRG91YmxlICAgID0gMSA8PCAxLAorICAgICAgICBOb25O
dW1iZXIgICAgICAgID0gMSA8PCAyLAorICAgICAgICBJbnQzMk92ZXJmbG93ICAgID0gMSA8PCAz
LAorICAgICAgICBJbnQ1Mk92ZXJmbG93ICAgID0gMSA8PCA0LAogICAgIH07CiAKICAgICBpbnQg
Ynl0ZWNvZGVPZmZzZXQoKSBjb25zdCB7IHJldHVybiBtX2J5dGVjb2RlT2Zmc2V0QW5kRmxhZ3Mg
Pj4gbnVtYmVyT2ZGbGFnQml0czsgfQogICAgIHVuc2lnbmVkIHNwZWNpYWxGYXN0UGF0aENvdW50
KCkgY29uc3QgeyByZXR1cm4gbV9zcGVjaWFsRmFzdFBhdGhDb3VudDsgfQogCisgICAgYm9vbCBk
aWRPYnNlcnZlTm9uSW50MzIoKSBjb25zdCB7IHJldHVybiBoYXNCaXRzKE5vbk5lZ1plcm9Eb3Vi
bGUgfCBOZWdaZXJvRG91YmxlIHwgTm9uTnVtYmVyKTsgfQorICAgIGJvb2wgZGlkT2JzZXJ2ZURv
dWJsZSgpIGNvbnN0IHsgcmV0dXJuIGhhc0JpdHMoTm9uTmVnWmVyb0RvdWJsZSB8IE5lZ1plcm9E
b3VibGUpOyB9CisgICAgYm9vbCBkaWRPYnNlcnZlTm9uTmVnWmVyb0RvdWJsZSgpIGNvbnN0IHsg
cmV0dXJuIGhhc0JpdHMoTm9uTmVnWmVyb0RvdWJsZSk7IH0KICAgICBib29sIGRpZE9ic2VydmVO
ZWdaZXJvRG91YmxlKCkgY29uc3QgeyByZXR1cm4gaGFzQml0cyhOZWdaZXJvRG91YmxlKTsgfQog
ICAgIGJvb2wgZGlkT2JzZXJ2ZU5vbk51bWJlcigpIGNvbnN0IHsgcmV0dXJuIGhhc0JpdHMoTm9u
TnVtYmVyKTsgfQogICAgIGJvb2wgZGlkT2JzZXJ2ZUludDMyT3ZlcmZsb3coKSBjb25zdCB7IHJl
dHVybiBoYXNCaXRzKEludDMyT3ZlcmZsb3cpOyB9CiAgICAgYm9vbCBkaWRPYnNlcnZlSW50NTJP
dmVyZmxvdygpIGNvbnN0IHsgcmV0dXJuIGhhc0JpdHMoSW50NTJPdmVyZmxvdyk7IH0KIAorICAg
IHZvaWQgc2V0T2JzZXJ2ZWROb25OZWdaZXJvRG91YmxlKCkgeyBzZXRCaXQoTm9uTmVnWmVyb0Rv
dWJsZSk7IH0KICAgICB2b2lkIHNldE9ic2VydmVkTmVnWmVyb0RvdWJsZSgpIHsgc2V0Qml0KE5l
Z1plcm9Eb3VibGUpOyB9CiAgICAgdm9pZCBzZXRPYnNlcnZlZE5vbk51bWJlcigpIHsgc2V0Qml0
KE5vbk51bWJlcik7IH0KICAgICB2b2lkIHNldE9ic2VydmVkSW50MzJPdmVyZmxvdygpIHsgc2V0
Qml0KEludDMyT3ZlcmZsb3cpOyB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0J5dGVDb2RlUGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAkocmV2aXNpb24gMjAwNTE3KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTkzNCw2ICs5MzQsOCBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIG5vZGUtPm1lcmdlRmxh
Z3MoTm9kZU1heU92ZXJmbG93SW50MzJJbkJhc2VsaW5lKTsKICAgICAgICAgICAgIGlmIChyZXN1
bHRQcm9maWxlLmRpZE9ic2VydmVOZWdaZXJvRG91YmxlKCkgfHwgbV9pbmxpbmVTdGFja1RvcC0+
bV9leGl0UHJvZmlsZS5oYXNFeGl0U2l0ZShtX2N1cnJlbnRJbmRleCwgTmVnYXRpdmVaZXJvKSkK
ICAgICAgICAgICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlOZWdaZXJvSW5CYXNlbGlu
ZSk7CisgICAgICAgICAgICBpZiAocmVzdWx0UHJvZmlsZS5kaWRPYnNlcnZlTm9uSW50MzIoKSkK
KyAgICAgICAgICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlIYXZlTm9uSW50UmVzdWx0
KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAkocmV2aXNpb24gMjAwNTE3KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjM2LDggKzIzNiw3IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgQXJpdGhNdWw6IHsKICAg
ICAgICAgICAgIEVkZ2UmIGxlZnRDaGlsZCA9IG5vZGUtPmNoaWxkMSgpOwogICAgICAgICAgICAg
RWRnZSYgcmlnaHRDaGlsZCA9IG5vZGUtPmNoaWxkMigpOwotICAgICAgICAgICAgaWYgKE5vZGU6
OnNob3VsZFNwZWN1bGF0ZVVudHlwZWRGb3JBcml0aG1ldGljKGxlZnRDaGlsZC5ub2RlKCksIHJp
Z2h0Q2hpbGQubm9kZSgpKQotICAgICAgICAgICAgICAgICYmIG1fZ3JhcGguaGFzRXhpdFNpdGUo
bm9kZS0+b3JpZ2luLnNlbWFudGljLCBCYWRUeXBlKSkgeworICAgICAgICAgICAgaWYgKE5vZGU6
OnNob3VsZFNwZWN1bGF0ZVVudHlwZWRGb3JBcml0aG1ldGljKGxlZnRDaGlsZC5ub2RlKCksIHJp
Z2h0Q2hpbGQubm9kZSgpKSkgewogICAgICAgICAgICAgICAgIGZpeEVkZ2U8VW50eXBlZFVzZT4o
bGVmdENoaWxkKTsKICAgICAgICAgICAgICAgICBmaXhFZGdlPFVudHlwZWRVc2U+KHJpZ2h0Q2hp
bGQpOwogICAgICAgICAgICAgICAgIG5vZGUtPnNldFJlc3VsdChOb2RlUmVzdWx0SlMpOwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAJKHJldmlzaW9uIDIwMDUxNykK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xNDQ4LDQ3ICsxNDQ4LDUzIEBAIHZvaWQgR3JhcGg6OmVuc3VyZU5hdHVyYWxMb29wcygp
CiAKIFZhbHVlUHJvZmlsZSogR3JhcGg6OnZhbHVlUHJvZmlsZUZvcihOb2RlKiBub2RlKQogewot
ICAgIGlmICghbm9kZSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAgIAotICAgIENv
ZGVCbG9jayogcHJvZmlsZWRCbG9jayA9IGJhc2VsaW5lQ29kZUJsb2NrRm9yKG5vZGUtPm9yaWdp
bi5zZW1hbnRpYyk7Ci0gICAgICAgIAotICAgIGlmIChub2RlLT5oYXNMb2NhbCgqdGhpcykpIHsK
LSAgICAgICAgaWYgKCFub2RlLT5sb2NhbCgpLmlzQXJndW1lbnQoKSkKLSAgICAgICAgICAgIHJl
dHVybiBudWxscHRyOwotICAgICAgICBpbnQgYXJndW1lbnQgPSBub2RlLT5sb2NhbCgpLnRvQXJn
dW1lbnQoKTsKLSAgICAgICAgTm9kZSogYXJndW1lbnROb2RlID0gbV9hcmd1bWVudHNbYXJndW1l
bnRdOwotICAgICAgICBpZiAoIWFyZ3VtZW50Tm9kZSkKLSAgICAgICAgICAgIHJldHVybiBudWxs
cHRyOwotICAgICAgICBpZiAobm9kZS0+dmFyaWFibGVBY2Nlc3NEYXRhKCkgIT0gYXJndW1lbnRO
b2RlLT52YXJpYWJsZUFjY2Vzc0RhdGEoKSkKLSAgICAgICAgICAgIHJldHVybiBudWxscHRyOwot
ICAgICAgICByZXR1cm4gcHJvZmlsZWRCbG9jay0+dmFsdWVQcm9maWxlRm9yQXJndW1lbnQoYXJn
dW1lbnQpOwotICAgIH0KLSAgICAgICAgCi0gICAgaWYgKG5vZGUtPmhhc0hlYXBQcmVkaWN0aW9u
KCkpCi0gICAgICAgIHJldHVybiBwcm9maWxlZEJsb2NrLT52YWx1ZVByb2ZpbGVGb3JCeXRlY29k
ZU9mZnNldChub2RlLT5vcmlnaW4uc2VtYW50aWMuYnl0ZWNvZGVJbmRleCk7Ci0gICAgICAgIAot
ICAgIHJldHVybiBudWxscHRyOwogfQogCiBNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlIEdy
YXBoOjptZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlRm9yKE5vZGUqIG5vZGUpCiB7Ci0gICAg
aWYgKCFub2RlKQotICAgICAgICByZXR1cm4gTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZSgp
OwotICAgIAotICAgIGlmIChWYWx1ZVByb2ZpbGUqIHZhbHVlUHJvZmlsZSA9IHZhbHVlUHJvZmls
ZUZvcihub2RlKSkKLSAgICAgICAgcmV0dXJuIE1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUo
dmFsdWVQcm9maWxlKTsKLSAgICAKLSAgICBpZiAobm9kZS0+b3AoKSA9PSBHZXRMb2NhbCkgewor
ICAgIHdoaWxlIChub2RlKSB7CiAgICAgICAgIENvZGVCbG9jayogcHJvZmlsZWRCbG9jayA9IGJh
c2VsaW5lQ29kZUJsb2NrRm9yKG5vZGUtPm9yaWdpbi5zZW1hbnRpYyk7CiAgICAgICAgIAotICAg
ICAgICByZXR1cm4gTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZTo6ZnJvbUxhenlPcGVyYW5k
KAotICAgICAgICAgICAgcHJvZmlsZWRCbG9jaywKLSAgICAgICAgICAgIExhenlPcGVyYW5kVmFs
dWVQcm9maWxlS2V5KAotICAgICAgICAgICAgICAgIG5vZGUtPm9yaWdpbi5zZW1hbnRpYy5ieXRl
Y29kZUluZGV4LCBub2RlLT5sb2NhbCgpKSk7CisgICAgICAgIGlmIChub2RlLT5oYXNMb2NhbCgq
dGhpcykpIHsKKyAgICAgICAgICAgIFZhbHVlUHJvZmlsZSogcmVzdWx0ID0gWyZdICgpIC0+IFZh
bHVlUHJvZmlsZSogeworICAgICAgICAgICAgICAgIGlmICghbm9kZS0+bG9jYWwoKS5pc0FyZ3Vt
ZW50KCkpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICAgICAg
ICAgIGludCBhcmd1bWVudCA9IG5vZGUtPmxvY2FsKCkudG9Bcmd1bWVudCgpOworICAgICAgICAg
ICAgICAgIE5vZGUqIGFyZ3VtZW50Tm9kZSA9IG1fYXJndW1lbnRzW2FyZ3VtZW50XTsKKyAgICAg
ICAgICAgICAgICBpZiAoIWFyZ3VtZW50Tm9kZSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisgICAgICAgICAgICAgICAgaWYgKG5vZGUtPnZhcmlhYmxlQWNjZXNzRGF0YSgp
ICE9IGFyZ3VtZW50Tm9kZS0+dmFyaWFibGVBY2Nlc3NEYXRhKCkpCisgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBudWxscHRyOworICAgICAgICAgICAgICAgIHJldHVybiBwcm9maWxlZEJsb2Nr
LT52YWx1ZVByb2ZpbGVGb3JBcmd1bWVudChhcmd1bWVudCk7CisgICAgICAgICAgICB9KCk7Cisg
ICAgICAgICAgICBpZiAocmVzdWx0KQorICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Cisg
ICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChub2RlLT5vcCgpID09IEdldExvY2FsKSB7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIE1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGU6OmZyb21M
YXp5T3BlcmFuZCgKKyAgICAgICAgICAgICAgICAgICAgcHJvZmlsZWRCbG9jaywKKyAgICAgICAg
ICAgICAgICAgICAgTGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGVLZXkoCisgICAgICAgICAgICAgICAg
ICAgICAgICBub2RlLT5vcmlnaW4uc2VtYW50aWMuYnl0ZWNvZGVJbmRleCwgbm9kZS0+bG9jYWwo
KSkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAobm9k
ZS0+aGFzSGVhcFByZWRpY3Rpb24oKSkKKyAgICAgICAgICAgIHJldHVybiBwcm9maWxlZEJsb2Nr
LT52YWx1ZVByb2ZpbGVGb3JCeXRlY29kZU9mZnNldChub2RlLT5vcmlnaW4uc2VtYW50aWMuYnl0
ZWNvZGVJbmRleCk7CisgICAgICAgIAorICAgICAgICBpZiAoUmVzdWx0UHJvZmlsZSogcmVzdWx0
ID0gcHJvZmlsZWRCbG9jay0+cmVzdWx0UHJvZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KG5vZGUtPm9y
aWdpbi5zZW1hbnRpYy5ieXRlY29kZUluZGV4KSkKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7
CisgICAgICAgIAorICAgICAgICBzd2l0Y2ggKG5vZGUtPm9wKCkpIHsKKyAgICAgICAgY2FzZSBJ
ZGVudGl0eToKKyAgICAgICAgY2FzZSBWYWx1ZVJlcDoKKyAgICAgICAgY2FzZSBEb3VibGVSZXA6
CisgICAgICAgIGNhc2UgSW50NTJSZXA6CisgICAgICAgICAgICBub2RlID0gbm9kZS0+Y2hpbGQx
KCkubm9kZSgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgfQogICAgIH0KLSAgICAKLSAgICByZXR1cm4g
TWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZSgpOwogfQogCiBib29sIEdyYXBoOjppc1N0cmlu
Z1Byb3RvdHlwZU1ldGhvZFNhbmUoSlNPYmplY3QqIHN0cmluZ1Byb3RvdHlwZSwgU3RydWN0dXJl
KiBzdHJpbmdQcm90b3R5cGVTdHJ1Y3R1cmUsIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQpCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oCShyZXZpc2lvbiAyMDA1MTcpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgJKHdvcmtpbmcgY29weSkKQEAgLTQw
MCw3ICs0MDAsNiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBoYXNFeGl0U2l0ZShub2RlLT5v
cmlnaW4uc2VtYW50aWMsIGV4aXRLaW5kKTsKICAgICB9CiAgICAgCi0gICAgVmFsdWVQcm9maWxl
KiB2YWx1ZVByb2ZpbGVGb3IoTm9kZSopOwogICAgIE1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2Zp
bGUgbWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZUZvcihOb2RlKik7CiAgICAgCiAgICAgQmxv
Y2tJbmRleCBudW1CbG9ja3MoKSBjb25zdCB7IHJldHVybiBtX2Jsb2Nrcy5zaXplKCk7IH0KSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCShyZXZpc2lvbiAyMDA1MTcpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAkod29ya2luZyBjb3B5KQpAQCAtOTUw
LDYgKzk1MCwxMSBAQCBzdHJ1Y3QgTm9kZSB7CiAgICAgICAgIHJldHVybiByZXN1bHQgJiB+Tm9k
ZUJ5dGVjb2RlTmVlZHNOZWdaZXJvOwogICAgIH0KIAorICAgIGJvb2wgbWF5SGF2ZU5vbkludFJl
c3VsdCgpCisgICAgeworICAgICAgICByZXR1cm4gbV9mbGFncyAmIE5vZGVNYXlIYXZlTm9uSW50
UmVzdWx0OworICAgIH0KKwogICAgIGJvb2wgaGFzQ29uc3RhbnRCdWZmZXIoKQogICAgIHsKICAg
ICAgICAgcmV0dXJuIG9wKCkgPT0gTmV3QXJyYXlCdWZmZXI7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR05vZGVGbGFncy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdOb2RlRmxhZ3MuY3BwCShyZXZpc2lvbiAyMDA1MTcpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVGbGFncy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTg1LDYgKzg1LDkgQEAgdm9pZCBkdW1wTm9kZUZsYWdzKFByaW50U3RyZWFtJiBhY3R1YWxPdQog
ICAgICAgICAgICAgb3V0LnByaW50KGNvbW1hLCAiVXNlQXNPdGhlciIpOwogICAgIH0KIAorICAg
IGlmIChmbGFncyAmIE5vZGVNYXlIYXZlTm9uSW50UmVzdWx0KQorICAgICAgICBvdXQucHJpbnQo
Y29tbWEsICJNYXlIYXZlTm9uSW50UmVzdWx0Iik7CisKICAgICBpZiAoZmxhZ3MgJiBOb2RlTWF5
T3ZlcmZsb3dJbnQ1MikKICAgICAgICAgb3V0LnByaW50KGNvbW1hLCAiTWF5T3ZlcmZsb3dJbnQ1
MiIpOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVGbGFncy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZUZsYWdzLmgJKHJl
dmlzaW9uIDIwMDUxNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZUZsYWdz
LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDYgKzQ4LDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVz
cGFjZSBERkcgewogI2RlZmluZSBOb2RlSGFzVmFyQXJncyAgICAgICAgICAgICAgICAgICAweDAw
MTAKICAgICAKICNkZWZpbmUgTm9kZUJlaGF2aW9yTWFzayAgICAgICAgICAgICAgICAgMHgwN2Uw
CisjZGVmaW5lIE5vZGVNYXlIYXZlTm9uSW50UmVzdWx0ICAgICAgICAgIDB4MDAyMAogI2RlZmlu
ZSBOb2RlTWF5T3ZlcmZsb3dJbnQ1MiAgICAgICAgICAgICAweDAwNDAKICNkZWZpbmUgTm9kZU1h
eU92ZXJmbG93SW50MzJJbkJhc2VsaW5lICAgMHgwMDgwCiAjZGVmaW5lIE5vZGVNYXlPdmVyZmxv
d0ludDMySW5ERkcgICAgICAgIDB4MDEwMApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdPU1JFeGl0Q29tcGlsZXI2NC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXI2NC5jcHAJKHJldmlzaW9uIDIwMDUxNykKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyNjQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMzUsMTYgKzEzNSwxNiBAQCB2b2lkIE9TUkV4aXRDb21waWxlcjo6Y29t
cGlsZUV4aXQoY29uc3QgCiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIGlmICghIWV4aXQu
bV92YWx1ZVByb2ZpbGUpIHsKLSAgICAgICAgICAgIEVuY29kZWRKU1ZhbHVlKiBidWNrZXQgPSBl
eGl0Lm1fdmFsdWVQcm9maWxlLmdldFNwZWNGYWlsQnVja2V0KDApOworICAgICAgICAgICAgTWV0
aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZSBwcm9maWxlID0gZXhpdC5tX3ZhbHVlUHJvZmlsZTsK
ICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKGV4aXQubV9qc1ZhbHVlU291cmNlLmlzQWRk
cmVzcygpKSB7CiAgICAgICAgICAgICAgICAgLy8gV2UgY2FuJ3QgYmUgc3VyZSB0aGF0IHdlIGhh
dmUgYSBzcGFyZSByZWdpc3Rlci4gU28gdXNlIHRoZSB0YWdUeXBlTnVtYmVyUmVnaXN0ZXIsCiAg
ICAgICAgICAgICAgICAgLy8gc2luY2Ugd2Uga25vdyBob3cgdG8gcmVzdG9yZSBpdC4KICAgICAg
ICAgICAgICAgICBtX2ppdC5sb2FkNjQoQXNzZW1ibHlIZWxwZXJzOjpBZGRyZXNzKGV4aXQubV9q
c1ZhbHVlU291cmNlLmFzQWRkcmVzcygpKSwgR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVy
KTsKLSAgICAgICAgICAgICAgICBtX2ppdC5zdG9yZTY0KEdQUkluZm86OnRhZ1R5cGVOdW1iZXJS
ZWdpc3RlciwgYnVja2V0KTsKKyAgICAgICAgICAgICAgICBwcm9maWxlLmVtaXRSZXBvcnRWYWx1
ZShtX2ppdCwgR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKTsKICAgICAgICAgICAgICAg
ICBtX2ppdC5tb3ZlKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTY0KFRhZ1R5cGVOdW1iZXIp
LCBHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIpOwogICAgICAgICAgICAgfSBlbHNlCi0g
ICAgICAgICAgICAgICAgbV9qaXQuc3RvcmU2NChleGl0Lm1fanNWYWx1ZVNvdXJjZS5ncHIoKSwg
YnVja2V0KTsKKyAgICAgICAgICAgICAgICBwcm9maWxlLmVtaXRSZXBvcnRWYWx1ZShtX2ppdCwg
ZXhpdC5tX2pzVmFsdWVTb3VyY2UuZ3ByKCkpOwogICAgICAgICB9CiAgICAgfQogICAgIApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFz
ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0
aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAJKHJldmlzaW9uIDIwMDUxNykKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yNzUsOCArMjc1LDEyIEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAg
ICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjSW50NTJPbmx5KTsKICAgICAgICAg
ICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJn
ZVByZWRpY3Rpb24oc3BlY3VsYXRlZERvdWJsZVR5cGVGb3JQcmVkaWN0aW9ucyhsZWZ0LCByaWdo
dCkpOwotICAgICAgICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgICAgICAgICBjaGFuZ2Vk
IHw9IG1lcmdlUHJlZGljdGlvbihTcGVjSW50MzJPbmx5IHwgU3BlY0J5dGVjb2RlRG91YmxlKTsK
KyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZiAobm9kZS0+
bWF5SGF2ZU5vbkludFJlc3VsdCgpKQorICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8
PSBtZXJnZVByZWRpY3Rpb24oU3BlY0ludDMyT25seSB8IFNwZWNCeXRlY29kZURvdWJsZSk7Cisg
ICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQg
fD0gbWVyZ2VQcmVkaWN0aW9uKFNwZWNJbnQzMk9ubHkpOworICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAJKHJldmlz
aW9uIDIwMDUxNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQ2NC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkwNSw3ICs5MDUsNyBAQCBHUFJSZWcgU3BlY3Vs
YXRpdmVKSVQ6OmZpbGxTcGVjdWxhdGVJbnQzCiAKICAgICBtX2ludGVycHJldGVyLmZpbHRlcih2
YWx1ZSwgU3BlY0ludDMyT25seSk7CiAgICAgaWYgKHZhbHVlLmlzQ2xlYXIoKSkgewotICAgICAg
ICB0ZXJtaW5hdGVTcGVjdWxhdGl2ZUV4ZWN1dGlvbihVbmNvdW50YWJsZSwgSlNWYWx1ZVJlZ3Mo
KSwgMCk7CisgICAgICAgIHRlcm1pbmF0ZVNwZWN1bGF0aXZlRXhlY3V0aW9uKEJhZFR5cGUsIEpT
VmFsdWVSZWdzKCksIDApOwogICAgICAgICByZXR1cm5Gb3JtYXQgPSBEYXRhRm9ybWF0SW50MzI7
CiAgICAgICAgIHJldHVybiBhbGxvY2F0ZSgpOwogICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMT1NSRXhpdENvbXBpbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4aXRDb21waWxlci5jcHAJKHJldmlzaW9uIDIwMDUx
NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhpdENvbXBpbGVyLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjg0LDggKzI4NCw4IEBAIHN0YXRpYyB2b2lkIGNvbXBpbGVTdHVi
KAogICAgICAgICAgICAgfQogICAgICAgICB9CiAKLSAgICAgICAgaWYgKCEhZXhpdC5tX2Rlc2Ny
aXB0b3ItPm1fdmFsdWVQcm9maWxlKQotICAgICAgICAgICAgaml0LnN0b3JlNjQoR1BSSW5mbzo6
cmVnVDAsIGV4aXQubV9kZXNjcmlwdG9yLT5tX3ZhbHVlUHJvZmlsZS5nZXRTcGVjRmFpbEJ1Y2tl
dCgwKSk7CisgICAgICAgIGlmIChleGl0Lm1fZGVzY3JpcHRvci0+bV92YWx1ZVByb2ZpbGUpCisg
ICAgICAgICAgICBleGl0Lm1fZGVzY3JpcHRvci0+bV92YWx1ZVByb2ZpbGUuZW1pdFJlcG9ydFZh
bHVlKGppdCwgR1BSSW5mbzo6cmVnVDApOwogICAgIH0KIAogICAgIC8vIE1hdGVyaWFsaXplIGFs
bCBvYmplY3RzLiBEb24ndCBtYXRlcmlhbGl6ZSBhbiBvYmplY3QgdW50aWwgYWxsCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgJKHJldmlzaW9uIDIw
MDUxNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgJKHdv
cmtpbmcgY29weSkKQEAgLTc4Myw2ICs3ODMsMTggQEAgcHVibGljOgogI2VuZGlmCiAgICAgfQog
CisgICAgSnVtcCBicmFuY2hJZk5vdERvdWJsZUtub3duTm90SW50MzIoSlNWYWx1ZVJlZ3MgcmVn
cywgVGFnUmVnaXN0ZXJzTW9kZSBtb2RlID0gSGF2ZVRhZ1JlZ2lzdGVycykKKyAgICB7CisjaWYg
VVNFKEpTVkFMVUU2NCkKKyAgICAgICAgaWYgKG1vZGUgPT0gSGF2ZVRhZ1JlZ2lzdGVycykKKyAg
ICAgICAgICAgIHJldHVybiBicmFuY2hUZXN0NjQoWmVybywgcmVncy5ncHIoKSwgR1BSSW5mbzo6
dGFnVHlwZU51bWJlclJlZ2lzdGVyKTsKKyAgICAgICAgcmV0dXJuIGJyYW5jaFRlc3Q2NChaZXJv
LCByZWdzLmdwcigpLCBUcnVzdGVkSW1tNjQoVGFnVHlwZU51bWJlcikpOworI2Vsc2UKKyAgICAg
ICAgVU5VU0VEX1BBUkFNKG1vZGUpOworICAgICAgICByZXR1cm4gYnJhbmNoMzIoQWJvdmVPckVx
dWFsLCByZWdzLnRhZ0dQUigpLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6TG93ZXN0VGFnKSk7Cisj
ZW5kaWYKKyAgICB9CisKICAgICAvLyBOb3RlIHRoYXQgdGhlIHRlbXBHUFIgaXMgbm90IHVzZWQg
aW4gMzItYml0IG1vZGUuCiAgICAgSnVtcCBicmFuY2hJZkJvb2xlYW4oSlNWYWx1ZVJlZ3MgcmVn
cywgR1BSUmVnIHRlbXBHUFIpCiAgICAgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRNdWxHZW5lcmF0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUTXVsR2VuZXJhdG9yLmNwcAkocmV2aXNpb24gMjAwNTE3KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRNdWxHZW5lcmF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
NTMsNiArMTUzLDcgQEAgdm9pZCBKSVRNdWxHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoQwog
ICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgZG9uZSA9IGppdC5qdW1wKCk7CiAKICAgICAgICAg
bm90TmVnYXRpdmVaZXJvLmxpbmsoJmppdCk7CisgICAgICAgIGppdC5vcjMyKENDYWxsSGVscGVy
czo6VHJ1c3RlZEltbTMyKFJlc3VsdFByb2ZpbGU6Ok5vbk5lZ1plcm9Eb3VibGUpLCBDQ2FsbEhl
bHBlcnM6OkFic29sdXRlQWRkcmVzcyhtX3Jlc3VsdFByb2ZpbGUtPmFkZHJlc3NPZkZsYWdzKCkp
KTsKIAogICAgICAgICBqaXQubW92ZShtX3Jlc3VsdC5wYXlsb2FkR1BSKCksIG1fc2NyYXRjaEdQ
Uik7CiAgICAgICAgIGppdC51cnNoaWZ0UHRyKENDYWxsSGVscGVyczo6SW1tMzIoNTIpLCBtX3Nj
cmF0Y2hHUFIpOwpAQCAtMTc0LDYgKzE3NSw3IEBAIHZvaWQgSklUTXVsR2VuZXJhdG9yOjpnZW5l
cmF0ZUZhc3RQYXRoKEMKICAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIGRvbmUgPSBqaXQuanVt
cCgpOwogCiAgICAgICAgIG5vdE5lZ2F0aXZlWmVyby5saW5rKCZqaXQpOworICAgICAgICBqaXQu
b3IzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihSZXN1bHRQcm9maWxlOjpOb25OZWdaZXJv
RG91YmxlKSwgQ0NhbGxIZWxwZXJzOjpBYnNvbHV0ZUFkZHJlc3MobV9yZXN1bHRQcm9maWxlLT5h
ZGRyZXNzT2ZGbGFncygpKSk7CiAKICAgICAgICAgaml0Lm1vdmUobV9yZXN1bHQudGFnR1BSKCks
IG1fc2NyYXRjaEdQUik7CiAgICAgICAgIGppdC51cnNoaWZ0UHRyKENDYWxsSGVscGVyczo6SW1t
MzIoNTIgLSAzMiksIG1fc2NyYXRjaEdQUik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAJKHJldmlzaW9uIDIwMDUxNykKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTM3OCw2ICszNzgsOCBAQCBzdGF0aWMgdm9pZCB1cGRhdGVSZXN1bHRQcm9m
aWxlRm9yQmluYXJ5CiAgICAgICAgICAgICBpZiAoIWRvdWJsZVZhbCAmJiBzdGQ6OnNpZ25iaXQo
ZG91YmxlVmFsKSkKICAgICAgICAgICAgICAgICBwcm9maWxlLT5zZXRPYnNlcnZlZE5lZ1plcm9E
b3VibGUoKTsKICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHByb2ZpbGUtPnNl
dE9ic2VydmVkTm9uTmVnWmVyb0RvdWJsZSgpOworCiAgICAgICAgICAgICAgICAgLy8gVGhlIElu
dDUyIG92ZXJmbG93IGNoZWNrIGhlcmUgaW50ZW50aW9uYWxseSBvbWl0cyAxbGwgPDwgNTEgYXMg
YSB2YWxpZCBuZWdhdGl2ZSBJbnQ1MiB2YWx1ZS4KICAgICAgICAgICAgICAgICAvLyBUaGVyZWZv
cmUsIHdlIHdpbGwgZ2V0IGEgZmFsc2UgcG9zaXRpdmUgaWYgdGhlIHJlc3VsdCBpcyB0aGF0IHZh
bHVlLiBUaGlzIGlzIGludGVudGlvbmFsbHkKICAgICAgICAgICAgICAgICAvLyBkb25lIHRvIHNp
bXBsaWZ5IHRoZSBjaGVja2luZyBhbGdvcml0aG0uCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>278336</attachid>
            <date>2016-05-07 13:29:37 -0700</date>
            <delta_ts>2016-05-07 15:40:39 -0700</delta_ts>
            <desc>wow that was easy</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>29093</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgJKHJldmlz
aW9uIDIwMDUxNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2su
aAkod29ya2luZyBjb3B5KQpAQCAtNTAwLDcgKzUwMCw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAg
ICAgIEFTU0VSVChKSVRDb2RlOjppc0Jhc2VsaW5lQ29kZShqaXRUeXBlKCkpKTsKICAgICAgICAg
Q29uY3VycmVudEpJVExvY2tlciBsb2NrZXIobV9sb2NrKTsKLSAgICAgICAgcmV0dXJuIG1fZXhp
dFByb2ZpbGUuYWRkKGxvY2tlciwgc2l0ZSk7CisgICAgICAgIHJldHVybiBtX2V4aXRQcm9maWxl
LmFkZChsb2NrZXIsIHRoaXMsIHNpdGUpOwogICAgIH0KIAogICAgIGJvb2wgaGFzRXhpdFNpdGUo
Y29uc3QgQ29uY3VycmVudEpJVExvY2tlciYgbG9ja2VyLCBjb25zdCBERkc6OkZyZXF1ZW50RXhp
dFNpdGUmIHNpdGUpIGNvbnN0CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
REZHRXhpdFByb2ZpbGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9ERkdFeGl0UHJvZmlsZS5jcHAJKHJldmlzaW9uIDIwMDUxNykKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9ERkdFeGl0UHJvZmlsZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxNiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTI4LDE1ICsyOCwyNCBAQAogCiAjaWYgRU5BQkxFKERGR19KSVQpCiAKKyNpbmNsdWRlICJDb2Rl
QmxvY2suaCIKKwogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogCit2b2lkIEZyZXF1
ZW50RXhpdFNpdGU6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKK3sKKyAgICBvdXQucHJp
bnQoImJjIyIsIG1fYnl0ZWNvZGVPZmZzZXQsICI6ICIsIG1fa2luZCwgIi8iLCBtX2ppdFR5cGUp
OworfQorCiBFeGl0UHJvZmlsZTo6RXhpdFByb2ZpbGUoKSB7IH0KIEV4aXRQcm9maWxlOjp+RXhp
dFByb2ZpbGUoKSB7IH0KIAotYm9vbCBFeGl0UHJvZmlsZTo6YWRkKGNvbnN0IENvbmN1cnJlbnRK
SVRMb2NrZXImLCBjb25zdCBGcmVxdWVudEV4aXRTaXRlJiBzaXRlKQorYm9vbCBFeGl0UHJvZmls
ZTo6YWRkKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBDb2RlQmxvY2sqIG93bmVyLCBjb25z
dCBGcmVxdWVudEV4aXRTaXRlJiBzaXRlKQogewogICAgIEFTU0VSVChzaXRlLmppdFR5cGUoKSAh
PSBFeGl0RnJvbUFueXRoaW5nKTsKICAgICAKKyAgICBkYXRhTG9nKHBvaW50ZXJEdW1wKG93bmVy
KSwgIjogQWRkaW5nIGV4aXQgc2l0ZTogIiwgc2l0ZSwgIlxuIik7CisgICAgCiAgICAgLy8gSWYg
d2UndmUgbmV2ZXIgc2VlbiBhbnkgZnJlcXVlbnQgZXhpdHMgdGhlbiBjcmVhdGUgdGhlIGxpc3Qg
YW5kIHB1dCB0aGlzIHNpdGUKICAgICAvLyBpbnRvIGl0LgogICAgIGlmICghbV9mcmVxdWVudEV4
aXRTaXRlcykgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0RGR0V4aXRQ
cm9maWxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0RG
R0V4aXRQcm9maWxlLmgJKHJldmlzaW9uIDIwMDUxNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9ERkdFeGl0UHJvZmlsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAxMywgMjAxNCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAxNCwgMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTExNiw2ICsxMTYsOCBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICByZXR1cm4g
bV9raW5kID09IEV4aXRLaW5kVW5zZXQgJiYgbV9ieXRlY29kZU9mZnNldDsKICAgICB9CisgICAg
CisgICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0OwogCiBwcml2YXRlOgogICAg
IHVuc2lnbmVkIG1fYnl0ZWNvZGVPZmZzZXQ7CkBAIC0xNTksNyArMTYxLDcgQEAgcHVibGljOgog
ICAgIC8vIGJlIGNhbGxlZCBhIGZpeGVkIG51bWJlciBvZiB0aW1lcyBwZXIgcmVjb21waWxhdGlv
bi4gUmVjb21waWxhdGlvbiBpcwogICAgIC8vIHJhcmUgdG8gYmVnaW4gd2l0aCwgYW5kIGltcGxp
ZXMgZG9pbmcgTyhuKSBvcGVyYXRpb25zIG9uIHRoZSBDb2RlQmxvY2sKICAgICAvLyBhbnl3YXku
Ci0gICAgYm9vbCBhZGQoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIGNvbnN0IEZyZXF1ZW50
RXhpdFNpdGUmKTsKKyAgICBib29sIGFkZChjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiwgQ29k
ZUJsb2NrKiBvd25lciwgY29uc3QgRnJlcXVlbnRFeGl0U2l0ZSYpOwogICAgIAogICAgIC8vIEdl
dCB0aGUgZnJlcXVlbnQgZXhpdCBzaXRlcyBmb3IgYSBieXRlY29kZSBpbmRleC4gVGhpcyBpcyBP
KG4pLCBhbmQgaXMKICAgICAvLyBtZWFudCB0byBvbmx5IGJlIHVzZWQgZnJvbSBkZWJ1Z2dpbmcv
cHJvZmlsaW5nIGNvZGUuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTWV0
aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL01ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUuY3BwCShyZXZp
c2lvbiAyMDA1MTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTWV0aG9kT2ZH
ZXR0aW5nQVZhbHVlUHJvZmlsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMywgMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4LDYg
KzI4LDcgQEAKIAogI2lmIEVOQUJMRShERkdfSklUKQogCisjaW5jbHVkZSAiQ0NhbGxIZWxwZXJz
LmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogCkBA
IC00NCwxNCArNDUsMTUgQEAgTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZSBNZXRob2RPZkdl
dAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLUVuY29kZWRKU1ZhbHVlKiBNZXRob2RPZkdldHRp
bmdBVmFsdWVQcm9maWxlOjpnZXRTcGVjRmFpbEJ1Y2tldCh1bnNpZ25lZCBpbmRleCkgY29uc3QK
K3ZvaWQgTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZTo6ZW1pdFJlcG9ydFZhbHVlKENDYWxs
SGVscGVycyYgaml0LCBKU1ZhbHVlUmVncyByZWdzKSBjb25zdAogewogICAgIHN3aXRjaCAobV9r
aW5kKSB7CiAgICAgY2FzZSBOb25lOgotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJu
OwogICAgICAgICAKICAgICBjYXNlIFJlYWR5OgotICAgICAgICByZXR1cm4gdS5wcm9maWxlLT5z
cGVjRmFpbEJ1Y2tldChpbmRleCk7CisgICAgICAgIGppdC5zdG9yZVZhbHVlKHJlZ3MsIHUucHJv
ZmlsZS0+c3BlY0ZhaWxCdWNrZXQoMCkpOworICAgICAgICByZXR1cm47CiAgICAgICAgIAogICAg
IGNhc2UgTGF6eU9wZXJhbmQ6IHsKICAgICAgICAgTGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGVLZXkg
a2V5KHUubGF6eU9wZXJhbmQuYnl0ZWNvZGVPZmZzZXQsIFZpcnR1YWxSZWdpc3Rlcih1LmxhenlP
cGVyYW5kLm9wZXJhbmQpKTsKQEAgLTU5LDEzICs2MSwyNSBAQCBFbmNvZGVkSlNWYWx1ZSogTWV0
aG9kT2ZHZXR0aW5nQVZhbHVlUHJvCiAgICAgICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2Vy
KHUubGF6eU9wZXJhbmQuY29kZUJsb2NrLT5tX2xvY2spOwogICAgICAgICBMYXp5T3BlcmFuZFZh
bHVlUHJvZmlsZSogcHJvZmlsZSA9CiAgICAgICAgICAgICB1LmxhenlPcGVyYW5kLmNvZGVCbG9j
ay0+bGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGVzKCkuYWRkKGxvY2tlciwga2V5KTsKLSAgICAgICAg
cmV0dXJuIHByb2ZpbGUtPnNwZWNGYWlsQnVja2V0KGluZGV4KTsKKyAgICAgICAgaml0LnN0b3Jl
VmFsdWUocmVncywgcHJvZmlsZS0+c3BlY0ZhaWxCdWNrZXQoMCkpOworICAgICAgICByZXR1cm47
CiAgICAgfQogICAgICAgICAKLSAgICBkZWZhdWx0OgotICAgICAgICBSRUxFQVNFX0FTU0VSVF9O
T1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm4gMDsKLSAgICB9CisgICAgY2FzZSBSZXN1bHRQ
cm9maWxlUmVhZHk6IHsKKyAgICAgICAgZGF0YUxvZygiVXNpbmcgcmVzdWx0IHByb2ZpbGUgYXQg
IiwgUmF3UG9pbnRlcih1LnJlc3VsdFByb2ZpbGUpLCAiXG4iKTsKKyAgICAgICAgQ0NhbGxIZWxw
ZXJzOjpKdW1wIGlzSW50MzIgPSBqaXQuYnJhbmNoSWZJbnQzMihyZWdzLCBDQ2FsbEhlbHBlcnM6
OkRvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7CisgICAgICAgIENDYWxsSGVscGVyczo6SnVtcCBub3RE
b3VibGUgPSBqaXQuYnJhbmNoSWZOb3REb3VibGVLbm93bk5vdEludDMyKHJlZ3MsIENDYWxsSGVs
cGVyczo6RG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsKKyAgICAgICAgLy8gRklYTUU6IFdlIGNvdWxk
IGJlIG1vcmUgcHJlY2lzZSBoZXJlLgorICAgICAgICBqaXQub3IzMihDQ2FsbEhlbHBlcnM6OlRy
dXN0ZWRJbW0zMihSZXN1bHRQcm9maWxlOjpOZWdaZXJvRG91YmxlIHwgUmVzdWx0UHJvZmlsZTo6
Tm9uTmVnWmVyb0RvdWJsZSksIENDYWxsSGVscGVyczo6QWJzb2x1dGVBZGRyZXNzKHUucmVzdWx0
UHJvZmlsZS0+YWRkcmVzc09mRmxhZ3MoKSkpOworICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXAg
ZG9uZSA9IGppdC5qdW1wKCk7CisgICAgICAgIG5vdERvdWJsZS5saW5rKCZqaXQpOworICAgICAg
ICBqaXQub3IzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihSZXN1bHRQcm9maWxlOjpOb25O
dW1iZXIpLCBDQ2FsbEhlbHBlcnM6OkFic29sdXRlQWRkcmVzcyh1LnJlc3VsdFByb2ZpbGUtPmFk
ZHJlc3NPZkZsYWdzKCkpKTsKKyAgICAgICAgZG9uZS5saW5rKCZqaXQpOworICAgICAgICBpc0lu
dDMyLmxpbmsoJmppdCk7CisgICAgICAgIHJldHVybjsKKyAgICB9IH0KKyAgICAKKyAgICBSRUxF
QVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9NZXRob2RPZkdldHRpbmdBVmFsdWVQcm9m
aWxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL01ldGhv
ZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUuaAkocmV2aXNpb24gMjAwNTE3KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL01ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUuaAkod29y
a2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMzIsMTIgKzMyLDE1IEBACiAvLyB0aGVzZSAjaWYncyB3aWxsIGRpc2FwcGVh
ci4uLgogI2lmIEVOQUJMRShERkdfSklUKQogCisjaW5jbHVkZSAiR1BSSW5mby5oIgogI2luY2x1
ZGUgIkpTQ0pTVmFsdWUuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKK2NsYXNzIENDYWxsSGVscGVy
czsKIGNsYXNzIENvZGVCbG9jazsKIGNsYXNzIExhenlPcGVyYW5kVmFsdWVQcm9maWxlS2V5Owor
c3RydWN0IFJlc3VsdFByb2ZpbGU7CiBzdHJ1Y3QgVmFsdWVQcm9maWxlOwogCiBjbGFzcyBNZXRo
b2RPZkdldHRpbmdBVmFsdWVQcm9maWxlIHsKQEAgLTQ3LDcgKzUwLDcgQEAgcHVibGljOgogICAg
IHsKICAgICB9CiAgICAgCi0gICAgZXhwbGljaXQgTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmls
ZShWYWx1ZVByb2ZpbGUqIHByb2ZpbGUpCisgICAgTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmls
ZShWYWx1ZVByb2ZpbGUqIHByb2ZpbGUpCiAgICAgewogICAgICAgICBpZiAocHJvZmlsZSkgewog
ICAgICAgICAgICAgbV9raW5kID0gUmVhZHk7CkBAIC01NiwzMSArNTksMzQgQEAgcHVibGljOgog
ICAgICAgICAgICAgbV9raW5kID0gTm9uZTsKICAgICB9CiAgICAgCisgICAgTWV0aG9kT2ZHZXR0
aW5nQVZhbHVlUHJvZmlsZShSZXN1bHRQcm9maWxlKiBwcm9maWxlKQorICAgIHsKKyAgICAgICAg
aWYgKHByb2ZpbGUpIHsKKyAgICAgICAgICAgIG1fa2luZCA9IFJlc3VsdFByb2ZpbGVSZWFkeTsK
KyAgICAgICAgICAgIHUucmVzdWx0UHJvZmlsZSA9IHByb2ZpbGU7CisgICAgICAgIH0gZWxzZQor
ICAgICAgICAgICAgbV9raW5kID0gTm9uZTsKKyAgICB9CisgICAgCiAgICAgc3RhdGljIE1ldGhv
ZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUgZnJvbUxhenlPcGVyYW5kKAogICAgICAgICBDb2RlQmxv
Y2sqLCBjb25zdCBMYXp5T3BlcmFuZFZhbHVlUHJvZmlsZUtleSYpOwogICAgIAotICAgIGJvb2wg
b3BlcmF0b3IhKCkgY29uc3QgeyByZXR1cm4gbV9raW5kID09IE5vbmU7IH0KLSAgICAKLSAgICAv
LyBUaGlzIGxvZ2ljYWxseSBoYXMgYSBwb2ludGVyIHRvIGEgIlRoZXJlIGV4aXN0cyBYIHN1Y2gg
dGhhdAotICAgIC8vIFZhbHVlUHJvZmlsZUJhc2U8WD4iLiBCdXQgc2luY2UgQysrIGRvZXMgbm90
IGhhdmUgZXhpc3RlbnRpYWwKLSAgICAvLyB0ZW1wbGF0ZXMsIEkgY2Fubm90IHJldHVybiBpdC4g
U28gaW5zdGVhZCwgZm9yIGFueSBtZXRob2RzIHRoYXQKLSAgICAvLyB1c2VycyBvZiB0aGlzIGNs
YXNzIHdvdWxkIGxpa2UgdG8gY2FsbCwgd2UnbGwganVzdCBoYXZlIHRvIHByb3ZpZGUKLSAgICAv
LyBhIG1ldGhvZCBoZXJlIHRoYXQgZG9lcyBpdCB0aHJvdWdoIGFuIGluZGlyZWN0aW9uLiBPciB3
ZSBjb3VsZAotICAgIC8vIHBvc3NpYmx5IGp1c3QgbWFrZSBWYWx1ZVByb2ZpbGUgbGVzcyB0ZW1w
bGF0ZS1iYXNlZC4gQnV0IGxhc3QgSQotICAgIC8vIHRyaWVkIHRoYXQsIGl0IGZlbHQgbW9yZSB5
dWNreSB0aGFuIHRoaXMgY2xhc3MuCisgICAgZXhwbGljaXQgb3BlcmF0b3IgYm9vbCgpIGNvbnN0
IHsgcmV0dXJuIG1fa2luZCAhPSBOb25lOyB9CiAgICAgCi0gICAgRW5jb2RlZEpTVmFsdWUqIGdl
dFNwZWNGYWlsQnVja2V0KHVuc2lnbmVkIGluZGV4KSBjb25zdDsKKyAgICB2b2lkIGVtaXRSZXBv
cnRWYWx1ZShDQ2FsbEhlbHBlcnMmLCBKU1ZhbHVlUmVncykgY29uc3Q7CiAgICAgCiBwcml2YXRl
OgogICAgIGVudW0gS2luZCB7CiAgICAgICAgIE5vbmUsCiAgICAgICAgIFJlYWR5LAorICAgICAg
ICBSZXN1bHRQcm9maWxlUmVhZHksCiAgICAgICAgIExhenlPcGVyYW5kCiAgICAgfTsKICAgICAK
ICAgICBLaW5kIG1fa2luZDsKICAgICB1bmlvbiB7CiAgICAgICAgIFZhbHVlUHJvZmlsZSogcHJv
ZmlsZTsKKyAgICAgICAgUmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZTsKICAgICAgICAgc3Ry
dWN0IHsKICAgICAgICAgICAgIENvZGVCbG9jayogY29kZUJsb2NrOwogICAgICAgICAgICAgdW5z
aWduZWQgYnl0ZWNvZGVPZmZzZXQ7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvVmFsdWVQcm9maWxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvVmFsdWVQcm9maWxlLmNwcAkocmV2aXNpb24gMjAwNTE3KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZhbHVlUHJvZmlsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzQs
MjMgKzM0LDMxIEBAIHZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0LCBjb24KIHsK
ICAgICBjb25zdCBjaGFyKiBzZXBhcmF0b3IgPSAiIjsKIAotICAgIGlmIChwcm9maWxlLmRpZE9i
c2VydmVOZWdaZXJvRG91YmxlKCkpIHsKLSAgICAgICAgb3V0LnByaW50KHNlcGFyYXRvciwgIk5l
Z1plcm9Eb3VibGUiKTsKKyAgICBpZiAoIXByb2ZpbGUuZGlkT2JzZXJ2ZU5vbkludDMyKCkpIHsK
KyAgICAgICAgb3V0LnByaW50KCJJbnQzMiIpOwogICAgICAgICBzZXBhcmF0b3IgPSAifCI7Cisg
ICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKHByb2ZpbGUuZGlkT2JzZXJ2ZU5lZ1plcm9Eb3VibGUo
KSkgeworICAgICAgICAgICAgb3V0LnByaW50KHNlcGFyYXRvciwgIk5lZ1plcm9Eb3VibGUiKTsK
KyAgICAgICAgICAgIHNlcGFyYXRvciA9ICJ8IjsKKyAgICAgICAgfQorICAgICAgICBpZiAocHJv
ZmlsZS5kaWRPYnNlcnZlTm9uTmVnWmVyb0RvdWJsZSgpKSB7CisgICAgICAgICAgICBvdXQucHJp
bnQoIk5vbk5lZ1plcm9Eb3VibGUiKTsKKyAgICAgICAgICAgIHNlcGFyYXRvciA9ICJ8IjsKKyAg
ICAgICAgfQorICAgICAgICBpZiAocHJvZmlsZS5kaWRPYnNlcnZlTm9uTnVtYmVyKCkpIHsKKyAg
ICAgICAgICAgIG91dC5wcmludCgiTm9uTnVtYmVyIik7CisgICAgICAgICAgICBzZXBhcmF0b3Ig
PSAifCI7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHByb2ZpbGUuZGlkT2JzZXJ2ZUludDMyT3Zl
cmZsb3coKSkgeworICAgICAgICAgICAgb3V0LnByaW50KCJJbnQzMk92ZXJmbG93Iik7CisgICAg
ICAgICAgICBzZXBhcmF0b3IgPSAifCI7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHByb2ZpbGUu
ZGlkT2JzZXJ2ZUludDUyT3ZlcmZsb3coKSkgeworICAgICAgICAgICAgb3V0LnByaW50KCJJbnQ1
Mk92ZXJmbG93Iik7CisgICAgICAgICAgICBzZXBhcmF0b3IgPSAifCI7CisgICAgICAgIH0KICAg
ICB9Ci0gICAgaWYgKHByb2ZpbGUuZGlkT2JzZXJ2ZU5vbk51bWJlcigpKSB7Ci0gICAgICAgIG91
dC5wcmludCgiTm9uTnVtYmVyIik7Ci0gICAgICAgIHNlcGFyYXRvciA9ICJ8IjsKLSAgICB9Ci0g
ICAgaWYgKHByb2ZpbGUuZGlkT2JzZXJ2ZUludDMyT3ZlcmZsb3coKSkgewotICAgICAgICBvdXQu
cHJpbnQoIkludDMyT3ZlcmZsb3ciKTsKLSAgICAgICAgc2VwYXJhdG9yID0gInwiOwotICAgIH0K
LSAgICBpZiAocHJvZmlsZS5kaWRPYnNlcnZlSW50NTJPdmVyZmxvdygpKSB7Ci0gICAgICAgIG91
dC5wcmludCgiSW50NTJPdmVyZmxvdyIpOwotICAgICAgICBzZXBhcmF0b3IgPSAifCI7Ci0gICAg
fQotCiAgICAgaWYgKHByb2ZpbGUuc3BlY2lhbEZhc3RQYXRoQ291bnQoKSkgewogICAgICAgICBv
dXQucHJpbnQoIiBzcGVjaWFsIGZhc3QgcGF0aDogIik7CiAgICAgICAgIG91dC5wcmludChwcm9m
aWxlLnNwZWNpYWxGYXN0UGF0aENvdW50KCkpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL1ZhbHVlUHJvZmlsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9WYWx1ZVByb2ZpbGUuaAkocmV2aXNpb24gMjAwNTE3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZhbHVlUHJvZmlsZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAxMyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAxMywg
MjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTIxOCwyMCArMjE4LDI1IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBl
bnVtIE9ic2VydmVkUmVzdWx0cyB7Ci0gICAgICAgIE5lZ1plcm9Eb3VibGUgICAgPSAxIDw8IDAs
Ci0gICAgICAgIE5vbk51bWJlciAgICAgICAgPSAxIDw8IDEsCi0gICAgICAgIEludDMyT3ZlcmZs
b3cgICAgPSAxIDw8IDIsCi0gICAgICAgIEludDUyT3ZlcmZsb3cgICAgPSAxIDw8IDMsCisgICAg
ICAgIE5vbk5lZ1plcm9Eb3VibGUgPSAxIDw8IDAsCisgICAgICAgIE5lZ1plcm9Eb3VibGUgICAg
PSAxIDw8IDEsCisgICAgICAgIE5vbk51bWJlciAgICAgICAgPSAxIDw8IDIsCisgICAgICAgIElu
dDMyT3ZlcmZsb3cgICAgPSAxIDw8IDMsCisgICAgICAgIEludDUyT3ZlcmZsb3cgICAgPSAxIDw8
IDQsCiAgICAgfTsKIAogICAgIGludCBieXRlY29kZU9mZnNldCgpIGNvbnN0IHsgcmV0dXJuIG1f
Ynl0ZWNvZGVPZmZzZXRBbmRGbGFncyA+PiBudW1iZXJPZkZsYWdCaXRzOyB9CiAgICAgdW5zaWdu
ZWQgc3BlY2lhbEZhc3RQYXRoQ291bnQoKSBjb25zdCB7IHJldHVybiBtX3NwZWNpYWxGYXN0UGF0
aENvdW50OyB9CiAKKyAgICBib29sIGRpZE9ic2VydmVOb25JbnQzMigpIGNvbnN0IHsgcmV0dXJu
IGhhc0JpdHMoTm9uTmVnWmVyb0RvdWJsZSB8IE5lZ1plcm9Eb3VibGUgfCBOb25OdW1iZXIpOyB9
CisgICAgYm9vbCBkaWRPYnNlcnZlRG91YmxlKCkgY29uc3QgeyByZXR1cm4gaGFzQml0cyhOb25O
ZWdaZXJvRG91YmxlIHwgTmVnWmVyb0RvdWJsZSk7IH0KKyAgICBib29sIGRpZE9ic2VydmVOb25O
ZWdaZXJvRG91YmxlKCkgY29uc3QgeyByZXR1cm4gaGFzQml0cyhOb25OZWdaZXJvRG91YmxlKTsg
fQogICAgIGJvb2wgZGlkT2JzZXJ2ZU5lZ1plcm9Eb3VibGUoKSBjb25zdCB7IHJldHVybiBoYXNC
aXRzKE5lZ1plcm9Eb3VibGUpOyB9CiAgICAgYm9vbCBkaWRPYnNlcnZlTm9uTnVtYmVyKCkgY29u
c3QgeyByZXR1cm4gaGFzQml0cyhOb25OdW1iZXIpOyB9CiAgICAgYm9vbCBkaWRPYnNlcnZlSW50
MzJPdmVyZmxvdygpIGNvbnN0IHsgcmV0dXJuIGhhc0JpdHMoSW50MzJPdmVyZmxvdyk7IH0KICAg
ICBib29sIGRpZE9ic2VydmVJbnQ1Mk92ZXJmbG93KCkgY29uc3QgeyByZXR1cm4gaGFzQml0cyhJ
bnQ1Mk92ZXJmbG93KTsgfQogCisgICAgdm9pZCBzZXRPYnNlcnZlZE5vbk5lZ1plcm9Eb3VibGUo
KSB7IHNldEJpdChOb25OZWdaZXJvRG91YmxlKTsgfQogICAgIHZvaWQgc2V0T2JzZXJ2ZWROZWda
ZXJvRG91YmxlKCkgeyBzZXRCaXQoTmVnWmVyb0RvdWJsZSk7IH0KICAgICB2b2lkIHNldE9ic2Vy
dmVkTm9uTnVtYmVyKCkgeyBzZXRCaXQoTm9uTnVtYmVyKTsgfQogICAgIHZvaWQgc2V0T2JzZXJ2
ZWRJbnQzMk92ZXJmbG93KCkgeyBzZXRCaXQoSW50MzJPdmVyZmxvdyk7IH0KSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCShyZXZpc2lv
biAyMDA1MTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2Vy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTA2LDggKzkwNiw3IEBAIHByaXZhdGU6CiAgICAgICAg
IGlmICghaXNYODYoKSAmJiBub2RlLT5vcCgpID09IEFyaXRoTW9kKQogICAgICAgICAgICAgcmV0
dXJuIG5vZGU7CiAKLSAgICAgICAgaWYgKCFtX2lubGluZVN0YWNrVG9wLT5tX3Byb2ZpbGVkQmxv
Y2stPmxpa2VseVRvVGFrZVNsb3dDYXNlKG1fY3VycmVudEluZGV4KSkKLSAgICAgICAgICAgIHJl
dHVybiBub2RlOworICAgICAgICBib29sIHRha2VzU2xvd0Nhc2UgPSBtX2lubGluZVN0YWNrVG9w
LT5tX3Byb2ZpbGVkQmxvY2stPmxpa2VseVRvVGFrZVNsb3dDYXNlKG1fY3VycmVudEluZGV4KTsK
ICAgICAgICAgCiAgICAgICAgIHN3aXRjaCAobm9kZS0+b3AoKSkgewogICAgICAgICBjYXNlIFVJ
bnQzMlRvTnVtYmVyOgpAQCAtOTE1LDI1ICs5MTQsMzIgQEAgcHJpdmF0ZToKICAgICAgICAgY2Fz
ZSBBcml0aFN1YjoKICAgICAgICAgY2FzZSBWYWx1ZUFkZDoKICAgICAgICAgY2FzZSBBcml0aE1v
ZDogLy8gZm9yIEFyaXRoTW9kICJNYXlPdmVyZmxvdyIgbWVhbnMgd2UgdHJpZWQgdG8gZGl2aWRl
IGJ5IHplcm8sIG9yIHdlIHNhdyBkb3VibGUuCi0gICAgICAgICAgICBub2RlLT5tZXJnZUZsYWdz
KE5vZGVNYXlPdmVyZmxvd0ludDMySW5CYXNlbGluZSk7CisgICAgICAgICAgICBpZiAodGFrZXNT
bG93Q2FzZSkKKyAgICAgICAgICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlPdmVyZmxv
d0ludDMySW5CYXNlbGluZSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIAogICAg
ICAgICBjYXNlIEFyaXRoTmVnYXRlOgotICAgICAgICAgICAgLy8gQ3VycmVudGx5IHdlIGNhbid0
IHRlbGwgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBhIG5lZ2F0aW9uIG92ZXJmbG93aW5nCi0gICAg
ICAgICAgICAvLyAoaS5lLiAtKDEgPDwgMzEpKSBvciBnZW5lcmF0aW5nIG5lZ2F0aXZlIHplcm8g
KGkuZS4gLTApLiBJZiBpdCB0b29rIHNsb3cKLSAgICAgICAgICAgIC8vIHBhdGggdGhlbiB3ZSBh
c3N1bWUgdGhhdCBpdCBkaWQgYm90aCBvZiB0aG9zZSB0aGluZ3MuCi0gICAgICAgICAgICBub2Rl
LT5tZXJnZUZsYWdzKE5vZGVNYXlPdmVyZmxvd0ludDMySW5CYXNlbGluZSk7Ci0gICAgICAgICAg
ICBub2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlOZWdaZXJvSW5CYXNlbGluZSk7CisgICAgICAgICAg
ICBpZiAodGFrZXNTbG93Q2FzZSkgeworICAgICAgICAgICAgICAgIC8vIEN1cnJlbnRseSB3ZSBj
YW4ndCB0ZWxsIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gYSBuZWdhdGlvbiBvdmVyZmxvd2luZwor
ICAgICAgICAgICAgICAgIC8vIChpLmUuIC0oMSA8PCAzMSkpIG9yIGdlbmVyYXRpbmcgbmVnYXRp
dmUgemVybyAoaS5lLiAtMCkuIElmIGl0IHRvb2sgc2xvdworICAgICAgICAgICAgICAgIC8vIHBh
dGggdGhlbiB3ZSBhc3N1bWUgdGhhdCBpdCBkaWQgYm90aCBvZiB0aG9zZSB0aGluZ3MuCisgICAg
ICAgICAgICAgICAgbm9kZS0+bWVyZ2VGbGFncyhOb2RlTWF5T3ZlcmZsb3dJbnQzMkluQmFzZWxp
bmUpOworICAgICAgICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1heU5lZ1plcm9JbkJh
c2VsaW5lKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgIGNh
c2UgQXJpdGhNdWw6IHsKICAgICAgICAgICAgIFJlc3VsdFByb2ZpbGUmIHJlc3VsdFByb2ZpbGUg
PSAqbV9pbmxpbmVTdGFja1RvcC0+bV9wcm9maWxlZEJsb2NrLT5yZXN1bHRQcm9maWxlRm9yQnl0
ZWNvZGVPZmZzZXQobV9jdXJyZW50SW5kZXgpOworICAgICAgICAgICAgZGF0YUxvZygiQXQgIiwg
Y3VycmVudENvZGVPcmlnaW4oKSwgIjpcbiIpOworICAgICAgICAgICAgZGF0YUxvZygiVXNpbmcg
cmVzdWx0IHByb2ZpbGUgYXQgIiwgUmF3UG9pbnRlcigmcmVzdWx0UHJvZmlsZSksICJcbiIpOwog
ICAgICAgICAgICAgaWYgKHJlc3VsdFByb2ZpbGUuZGlkT2JzZXJ2ZUludDUyT3ZlcmZsb3coKSkK
ICAgICAgICAgICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlPdmVyZmxvd0ludDUyKTsK
ICAgICAgICAgICAgIGlmIChyZXN1bHRQcm9maWxlLmRpZE9ic2VydmVJbnQzMk92ZXJmbG93KCkg
fHwgbV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5oYXNFeGl0U2l0ZShtX2N1cnJlbnRJ
bmRleCwgT3ZlcmZsb3cpKQogICAgICAgICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1h
eU92ZXJmbG93SW50MzJJbkJhc2VsaW5lKTsKICAgICAgICAgICAgIGlmIChyZXN1bHRQcm9maWxl
LmRpZE9ic2VydmVOZWdaZXJvRG91YmxlKCkgfHwgbV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJv
ZmlsZS5oYXNFeGl0U2l0ZShtX2N1cnJlbnRJbmRleCwgTmVnYXRpdmVaZXJvKSkKICAgICAgICAg
ICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlOZWdaZXJvSW5CYXNlbGluZSk7CisgICAg
ICAgICAgICBpZiAocmVzdWx0UHJvZmlsZS5kaWRPYnNlcnZlTm9uSW50MzIoKSkKKyAgICAgICAg
ICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlIYXZlTm9uSW50UmVzdWx0KTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHRml4dXBQaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdGaXh1cFBoYXNlLmNwcAkocmV2aXNpb24gMjAwNTE3KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjM2LDgg
KzIzNiw3IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgQXJpdGhNdWw6IHsKICAgICAgICAgICAg
IEVkZ2UmIGxlZnRDaGlsZCA9IG5vZGUtPmNoaWxkMSgpOwogICAgICAgICAgICAgRWRnZSYgcmln
aHRDaGlsZCA9IG5vZGUtPmNoaWxkMigpOwotICAgICAgICAgICAgaWYgKE5vZGU6OnNob3VsZFNw
ZWN1bGF0ZVVudHlwZWRGb3JBcml0aG1ldGljKGxlZnRDaGlsZC5ub2RlKCksIHJpZ2h0Q2hpbGQu
bm9kZSgpKQotICAgICAgICAgICAgICAgICYmIG1fZ3JhcGguaGFzRXhpdFNpdGUobm9kZS0+b3Jp
Z2luLnNlbWFudGljLCBCYWRUeXBlKSkgeworICAgICAgICAgICAgaWYgKE5vZGU6OnNob3VsZFNw
ZWN1bGF0ZVVudHlwZWRGb3JBcml0aG1ldGljKGxlZnRDaGlsZC5ub2RlKCksIHJpZ2h0Q2hpbGQu
bm9kZSgpKSkgewogICAgICAgICAgICAgICAgIGZpeEVkZ2U8VW50eXBlZFVzZT4obGVmdENoaWxk
KTsKICAgICAgICAgICAgICAgICBmaXhFZGdlPFVudHlwZWRVc2U+KHJpZ2h0Q2hpbGQpOwogICAg
ICAgICAgICAgICAgIG5vZGUtPnNldFJlc3VsdChOb2RlUmVzdWx0SlMpOwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAJKHJldmlzaW9uIDIwMDUxNykKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDQ2
LDQ2ICsxNDQ2LDUwIEBAIHZvaWQgR3JhcGg6OmVuc3VyZU5hdHVyYWxMb29wcygpCiAgICAgICAg
IG1fbmF0dXJhbExvb3BzID0gc3RkOjptYWtlX3VuaXF1ZTxOYXR1cmFsTG9vcHM+KCp0aGlzKTsK
IH0KIAotVmFsdWVQcm9maWxlKiBHcmFwaDo6dmFsdWVQcm9maWxlRm9yKE5vZGUqIG5vZGUpCitN
ZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlIEdyYXBoOjptZXRob2RPZkdldHRpbmdBVmFsdWVQ
cm9maWxlRm9yKE5vZGUqIG5vZGUpCiB7Ci0gICAgaWYgKCFub2RlKQotICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKyAgICB3aGlsZSAobm9kZSkgeworICAgICAgICBDb2RlQmxvY2sqIHByb2ZpbGVk
QmxvY2sgPSBiYXNlbGluZUNvZGVCbG9ja0Zvcihub2RlLT5vcmlnaW4uc2VtYW50aWMpOwogICAg
ICAgICAKLSAgICBDb2RlQmxvY2sqIHByb2ZpbGVkQmxvY2sgPSBiYXNlbGluZUNvZGVCbG9ja0Zv
cihub2RlLT5vcmlnaW4uc2VtYW50aWMpOworICAgICAgICBpZiAobm9kZS0+aGFzTG9jYWwoKnRo
aXMpKSB7CisgICAgICAgICAgICBWYWx1ZVByb2ZpbGUqIHJlc3VsdCA9IFsmXSAoKSAtPiBWYWx1
ZVByb2ZpbGUqIHsKKyAgICAgICAgICAgICAgICBpZiAoIW5vZGUtPmxvY2FsKCkuaXNBcmd1bWVu
dCgpKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgICAgICAg
ICBpbnQgYXJndW1lbnQgPSBub2RlLT5sb2NhbCgpLnRvQXJndW1lbnQoKTsKKyAgICAgICAgICAg
ICAgICBOb2RlKiBhcmd1bWVudE5vZGUgPSBtX2FyZ3VtZW50c1thcmd1bWVudF07CisgICAgICAg
ICAgICAgICAgaWYgKCFhcmd1bWVudE5vZGUpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBu
dWxscHRyOworICAgICAgICAgICAgICAgIGlmIChub2RlLT52YXJpYWJsZUFjY2Vzc0RhdGEoKSAh
PSBhcmd1bWVudE5vZGUtPnZhcmlhYmxlQWNjZXNzRGF0YSgpKQorICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgICAgICAgICByZXR1cm4gcHJvZmlsZWRCbG9jay0+
dmFsdWVQcm9maWxlRm9yQXJndW1lbnQoYXJndW1lbnQpOworICAgICAgICAgICAgfSgpOworICAg
ICAgICAgICAgaWYgKHJlc3VsdCkKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAg
ICAgICAgICAgCisgICAgICAgICAgICBpZiAobm9kZS0+b3AoKSA9PSBHZXRMb2NhbCkgeworICAg
ICAgICAgICAgICAgIHJldHVybiBNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlOjpmcm9tTGF6
eU9wZXJhbmQoCisgICAgICAgICAgICAgICAgICAgIHByb2ZpbGVkQmxvY2ssCisgICAgICAgICAg
ICAgICAgICAgIExhenlPcGVyYW5kVmFsdWVQcm9maWxlS2V5KAorICAgICAgICAgICAgICAgICAg
ICAgICAgbm9kZS0+b3JpZ2luLnNlbWFudGljLmJ5dGVjb2RlSW5kZXgsIG5vZGUtPmxvY2FsKCkp
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAgICAgICAKLSAgICBpZiAobm9kZS0+aGFz
TG9jYWwoKnRoaXMpKSB7Ci0gICAgICAgIGlmICghbm9kZS0+bG9jYWwoKS5pc0FyZ3VtZW50KCkp
Ci0gICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICAgICAgaW50IGFyZ3VtZW50ID0gbm9k
ZS0+bG9jYWwoKS50b0FyZ3VtZW50KCk7Ci0gICAgICAgIE5vZGUqIGFyZ3VtZW50Tm9kZSA9IG1f
YXJndW1lbnRzW2FyZ3VtZW50XTsKLSAgICAgICAgaWYgKCFhcmd1bWVudE5vZGUpCi0gICAgICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICAgICAgaWYgKG5vZGUtPnZhcmlhYmxlQWNjZXNzRGF0
YSgpICE9IGFyZ3VtZW50Tm9kZS0+dmFyaWFibGVBY2Nlc3NEYXRhKCkpCi0gICAgICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKLSAgICAgICAgcmV0dXJuIHByb2ZpbGVkQmxvY2stPnZhbHVlUHJvZmls
ZUZvckFyZ3VtZW50KGFyZ3VtZW50KTsKLSAgICB9CisgICAgICAgIGlmIChub2RlLT5oYXNIZWFw
UHJlZGljdGlvbigpKQorICAgICAgICAgICAgcmV0dXJuIHByb2ZpbGVkQmxvY2stPnZhbHVlUHJv
ZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KG5vZGUtPm9yaWdpbi5zZW1hbnRpYy5ieXRlY29kZUluZGV4
KTsKICAgICAgICAgCi0gICAgaWYgKG5vZGUtPmhhc0hlYXBQcmVkaWN0aW9uKCkpCi0gICAgICAg
IHJldHVybiBwcm9maWxlZEJsb2NrLT52YWx1ZVByb2ZpbGVGb3JCeXRlY29kZU9mZnNldChub2Rl
LT5vcmlnaW4uc2VtYW50aWMuYnl0ZWNvZGVJbmRleCk7CisgICAgICAgIGlmIChSZXN1bHRQcm9m
aWxlKiByZXN1bHQgPSBwcm9maWxlZEJsb2NrLT5yZXN1bHRQcm9maWxlRm9yQnl0ZWNvZGVPZmZz
ZXQobm9kZS0+b3JpZ2luLnNlbWFudGljLmJ5dGVjb2RlSW5kZXgpKQorICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKICAgICAgICAgCi0gICAgcmV0dXJuIG51bGxwdHI7Ci19Ci0KLU1ldGhvZE9m
R2V0dGluZ0FWYWx1ZVByb2ZpbGUgR3JhcGg6Om1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGVG
b3IoTm9kZSogbm9kZSkKLXsKLSAgICBpZiAoIW5vZGUpCi0gICAgICAgIHJldHVybiBNZXRob2RP
ZkdldHRpbmdBVmFsdWVQcm9maWxlKCk7Ci0gICAgCi0gICAgaWYgKFZhbHVlUHJvZmlsZSogdmFs
dWVQcm9maWxlID0gdmFsdWVQcm9maWxlRm9yKG5vZGUpKQotICAgICAgICByZXR1cm4gTWV0aG9k
T2ZHZXR0aW5nQVZhbHVlUHJvZmlsZSh2YWx1ZVByb2ZpbGUpOwotICAgIAotICAgIGlmIChub2Rl
LT5vcCgpID09IEdldExvY2FsKSB7Ci0gICAgICAgIENvZGVCbG9jayogcHJvZmlsZWRCbG9jayA9
IGJhc2VsaW5lQ29kZUJsb2NrRm9yKG5vZGUtPm9yaWdpbi5zZW1hbnRpYyk7Ci0gICAgICAgIAot
ICAgICAgICByZXR1cm4gTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZTo6ZnJvbUxhenlPcGVy
YW5kKAotICAgICAgICAgICAgcHJvZmlsZWRCbG9jaywKLSAgICAgICAgICAgIExhenlPcGVyYW5k
VmFsdWVQcm9maWxlS2V5KAotICAgICAgICAgICAgICAgIG5vZGUtPm9yaWdpbi5zZW1hbnRpYy5i
eXRlY29kZUluZGV4LCBub2RlLT5sb2NhbCgpKSk7CisgICAgICAgIHN3aXRjaCAobm9kZS0+b3Ao
KSkgeworICAgICAgICBjYXNlIElkZW50aXR5OgorICAgICAgICBjYXNlIFZhbHVlUmVwOgorICAg
ICAgICBjYXNlIERvdWJsZVJlcDoKKyAgICAgICAgY2FzZSBJbnQ1MlJlcDoKKyAgICAgICAgICAg
IG5vZGUgPSBub2RlLT5jaGlsZDEoKS5ub2RlKCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgZGVmYXVsdDoKKyAgICAgICAgICAgIG5vZGUgPSBudWxscHRyOworICAgICAgICB9CiAgICAg
fQogICAgIAogICAgIHJldHVybiBNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlKCk7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oCShyZXZpc2lvbiAyMDA1MTcpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgJKHdvcmtpbmcgY29weSkKQEAgLTQw
MCw3ICs0MDAsNiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBoYXNFeGl0U2l0ZShub2RlLT5v
cmlnaW4uc2VtYW50aWMsIGV4aXRLaW5kKTsKICAgICB9CiAgICAgCi0gICAgVmFsdWVQcm9maWxl
KiB2YWx1ZVByb2ZpbGVGb3IoTm9kZSopOwogICAgIE1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2Zp
bGUgbWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZUZvcihOb2RlKik7CiAgICAgCiAgICAgQmxv
Y2tJbmRleCBudW1CbG9ja3MoKSBjb25zdCB7IHJldHVybiBtX2Jsb2Nrcy5zaXplKCk7IH0KSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCShyZXZpc2lvbiAyMDA1MTcpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAkod29ya2luZyBjb3B5KQpAQCAtOTUw
LDYgKzk1MCwxMSBAQCBzdHJ1Y3QgTm9kZSB7CiAgICAgICAgIHJldHVybiByZXN1bHQgJiB+Tm9k
ZUJ5dGVjb2RlTmVlZHNOZWdaZXJvOwogICAgIH0KIAorICAgIGJvb2wgbWF5SGF2ZU5vbkludFJl
c3VsdCgpCisgICAgeworICAgICAgICByZXR1cm4gbV9mbGFncyAmIE5vZGVNYXlIYXZlTm9uSW50
UmVzdWx0OworICAgIH0KKwogICAgIGJvb2wgaGFzQ29uc3RhbnRCdWZmZXIoKQogICAgIHsKICAg
ICAgICAgcmV0dXJuIG9wKCkgPT0gTmV3QXJyYXlCdWZmZXI7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR05vZGVGbGFncy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdOb2RlRmxhZ3MuY3BwCShyZXZpc2lvbiAyMDA1MTcpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVGbGFncy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTg1LDYgKzg1LDkgQEAgdm9pZCBkdW1wTm9kZUZsYWdzKFByaW50U3RyZWFtJiBhY3R1YWxPdQog
ICAgICAgICAgICAgb3V0LnByaW50KGNvbW1hLCAiVXNlQXNPdGhlciIpOwogICAgIH0KIAorICAg
IGlmIChmbGFncyAmIE5vZGVNYXlIYXZlTm9uSW50UmVzdWx0KQorICAgICAgICBvdXQucHJpbnQo
Y29tbWEsICJNYXlIYXZlTm9uSW50UmVzdWx0Iik7CisKICAgICBpZiAoZmxhZ3MgJiBOb2RlTWF5
T3ZlcmZsb3dJbnQ1MikKICAgICAgICAgb3V0LnByaW50KGNvbW1hLCAiTWF5T3ZlcmZsb3dJbnQ1
MiIpOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVGbGFncy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZUZsYWdzLmgJKHJl
dmlzaW9uIDIwMDUxNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZUZsYWdz
LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDYgKzQ4LDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVz
cGFjZSBERkcgewogI2RlZmluZSBOb2RlSGFzVmFyQXJncyAgICAgICAgICAgICAgICAgICAweDAw
MTAKICAgICAKICNkZWZpbmUgTm9kZUJlaGF2aW9yTWFzayAgICAgICAgICAgICAgICAgMHgwN2Uw
CisjZGVmaW5lIE5vZGVNYXlIYXZlTm9uSW50UmVzdWx0ICAgICAgICAgIDB4MDAyMAogI2RlZmlu
ZSBOb2RlTWF5T3ZlcmZsb3dJbnQ1MiAgICAgICAgICAgICAweDAwNDAKICNkZWZpbmUgTm9kZU1h
eU92ZXJmbG93SW50MzJJbkJhc2VsaW5lICAgMHgwMDgwCiAjZGVmaW5lIE5vZGVNYXlPdmVyZmxv
d0ludDMySW5ERkcgICAgICAgIDB4MDEwMApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdPU1JFeGl0Q29tcGlsZXI2NC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXI2NC5jcHAJKHJldmlzaW9uIDIwMDUxNykKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyNjQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAx
My0yMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMSwgMjAxMy0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTM1LDE2ICsxMzUsMTYgQEAgdm9pZCBPU1JFeGl0
Q29tcGlsZXI6OmNvbXBpbGVFeGl0KGNvbnN0IAogICAgICAgICB9CiAgICAgICAgIAogICAgICAg
ICBpZiAoISFleGl0Lm1fdmFsdWVQcm9maWxlKSB7Ci0gICAgICAgICAgICBFbmNvZGVkSlNWYWx1
ZSogYnVja2V0ID0gZXhpdC5tX3ZhbHVlUHJvZmlsZS5nZXRTcGVjRmFpbEJ1Y2tldCgwKTsKKyAg
ICAgICAgICAgIE1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUgcHJvZmlsZSA9IGV4aXQubV92
YWx1ZVByb2ZpbGU7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGlmIChleGl0Lm1fanNWYWx1
ZVNvdXJjZS5pc0FkZHJlc3MoKSkgewogICAgICAgICAgICAgICAgIC8vIFdlIGNhbid0IGJlIHN1
cmUgdGhhdCB3ZSBoYXZlIGEgc3BhcmUgcmVnaXN0ZXIuIFNvIHVzZSB0aGUgdGFnVHlwZU51bWJl
clJlZ2lzdGVyLAogICAgICAgICAgICAgICAgIC8vIHNpbmNlIHdlIGtub3cgaG93IHRvIHJlc3Rv
cmUgaXQuCiAgICAgICAgICAgICAgICAgbV9qaXQubG9hZDY0KEFzc2VtYmx5SGVscGVyczo6QWRk
cmVzcyhleGl0Lm1fanNWYWx1ZVNvdXJjZS5hc0FkZHJlc3MoKSksIEdQUkluZm86OnRhZ1R5cGVO
dW1iZXJSZWdpc3Rlcik7Ci0gICAgICAgICAgICAgICAgbV9qaXQuc3RvcmU2NChHUFJJbmZvOjp0
YWdUeXBlTnVtYmVyUmVnaXN0ZXIsIGJ1Y2tldCk7CisgICAgICAgICAgICAgICAgcHJvZmlsZS5l
bWl0UmVwb3J0VmFsdWUobV9qaXQsIEpTVmFsdWVSZWdzKEdQUkluZm86OnRhZ1R5cGVOdW1iZXJS
ZWdpc3RlcikpOwogICAgICAgICAgICAgICAgIG1faml0Lm1vdmUoQXNzZW1ibHlIZWxwZXJzOjpU
cnVzdGVkSW1tNjQoVGFnVHlwZU51bWJlciksIEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3Rl
cik7CiAgICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICBtX2ppdC5zdG9yZTY0KGV4
aXQubV9qc1ZhbHVlU291cmNlLmdwcigpLCBidWNrZXQpOworICAgICAgICAgICAgICAgIHByb2Zp
bGUuZW1pdFJlcG9ydFZhbHVlKG1faml0LCBKU1ZhbHVlUmVncyhleGl0Lm1fanNWYWx1ZVNvdXJj
ZS5ncHIoKSkpOwogICAgICAgICB9CiAgICAgfQogICAgIApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFz
ZS5jcHAJKHJldmlzaW9uIDIwMDUxNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
UHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNzUsOCAr
Mjc1LDEyIEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1l
cmdlUHJlZGljdGlvbihTcGVjSW50NTJPbmx5KTsKICAgICAgICAgICAgICAgICAgICAgZWxzZQog
ICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oc3BlY3Vs
YXRlZERvdWJsZVR5cGVGb3JQcmVkaWN0aW9ucyhsZWZ0LCByaWdodCkpOwotICAgICAgICAgICAg
ICAgIH0gZWxzZQotICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlv
bihTcGVjSW50MzJPbmx5IHwgU3BlY0J5dGVjb2RlRG91YmxlKTsKKyAgICAgICAgICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZiAobm9kZS0+bWF5SGF2ZU5vbkludFJlc3Vs
dCgpKQorICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24o
U3BlY0ludDMyT25seSB8IFNwZWNCeXRlY29kZURvdWJsZSk7CisgICAgICAgICAgICAgICAgICAg
IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9u
KFNwZWNJbnQzMk9ubHkpOworICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAJKHJldmlzaW9uIDIwMDUxNykKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTkwNSw3ICs5MDUsNyBAQCBHUFJSZWcgU3BlY3VsYXRpdmVKSVQ6OmZpbGxTcGVj
dWxhdGVJbnQzCiAKICAgICBtX2ludGVycHJldGVyLmZpbHRlcih2YWx1ZSwgU3BlY0ludDMyT25s
eSk7CiAgICAgaWYgKHZhbHVlLmlzQ2xlYXIoKSkgewotICAgICAgICB0ZXJtaW5hdGVTcGVjdWxh
dGl2ZUV4ZWN1dGlvbihVbmNvdW50YWJsZSwgSlNWYWx1ZVJlZ3MoKSwgMCk7CisgICAgICAgIHRl
cm1pbmF0ZVNwZWN1bGF0aXZlRXhlY3V0aW9uKEJhZFR5cGUsIEpTVmFsdWVSZWdzKCksIDApOwog
ICAgICAgICByZXR1cm5Gb3JtYXQgPSBEYXRhRm9ybWF0SW50MzI7CiAgICAgICAgIHJldHVybiBh
bGxvY2F0ZSgpOwogICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NS
RXhpdENvbXBpbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTE9TUkV4aXRDb21waWxlci5jcHAJKHJldmlzaW9uIDIwMDUxNykKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhpdENvbXBpbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTI4NCw4ICsyODQsOCBAQCBzdGF0aWMgdm9pZCBjb21waWxlU3R1YigKICAgICAgICAgICAgIH0K
ICAgICAgICAgfQogCi0gICAgICAgIGlmICghIWV4aXQubV9kZXNjcmlwdG9yLT5tX3ZhbHVlUHJv
ZmlsZSkKLSAgICAgICAgICAgIGppdC5zdG9yZTY0KEdQUkluZm86OnJlZ1QwLCBleGl0Lm1fZGVz
Y3JpcHRvci0+bV92YWx1ZVByb2ZpbGUuZ2V0U3BlY0ZhaWxCdWNrZXQoMCkpOworICAgICAgICBp
ZiAoZXhpdC5tX2Rlc2NyaXB0b3ItPm1fdmFsdWVQcm9maWxlKQorICAgICAgICAgICAgZXhpdC5t
X2Rlc2NyaXB0b3ItPm1fdmFsdWVQcm9maWxlLmVtaXRSZXBvcnRWYWx1ZShqaXQsIEpTVmFsdWVS
ZWdzKEdQUkluZm86OnJlZ1QwKSk7CiAgICAgfQogCiAgICAgLy8gTWF0ZXJpYWxpemUgYWxsIG9i
amVjdHMuIERvbid0IG1hdGVyaWFsaXplIGFuIG9iamVjdCB1bnRpbCBhbGwKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaAkocmV2aXNpb24gMjAwNTE3
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNzgzLDYgKzc4MywxOCBAQCBwdWJsaWM6CiAjZW5kaWYKICAgICB9CiAKKyAg
ICBKdW1wIGJyYW5jaElmTm90RG91YmxlS25vd25Ob3RJbnQzMihKU1ZhbHVlUmVncyByZWdzLCBU
YWdSZWdpc3RlcnNNb2RlIG1vZGUgPSBIYXZlVGFnUmVnaXN0ZXJzKQorICAgIHsKKyNpZiBVU0Uo
SlNWQUxVRTY0KQorICAgICAgICBpZiAobW9kZSA9PSBIYXZlVGFnUmVnaXN0ZXJzKQorICAgICAg
ICAgICAgcmV0dXJuIGJyYW5jaFRlc3Q2NChaZXJvLCByZWdzLmdwcigpLCBHUFJJbmZvOjp0YWdU
eXBlTnVtYmVyUmVnaXN0ZXIpOworICAgICAgICByZXR1cm4gYnJhbmNoVGVzdDY0KFplcm8sIHJl
Z3MuZ3ByKCksIFRydXN0ZWRJbW02NChUYWdUeXBlTnVtYmVyKSk7CisjZWxzZQorICAgICAgICBV
TlVTRURfUEFSQU0obW9kZSk7CisgICAgICAgIHJldHVybiBicmFuY2gzMihBYm92ZU9yRXF1YWws
IHJlZ3MudGFnR1BSKCksIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpMb3dlc3RUYWcpKTsKKyNlbmRp
ZgorICAgIH0KKwogICAgIC8vIE5vdGUgdGhhdCB0aGUgdGVtcEdQUiBpcyBub3QgdXNlZCBpbiAz
Mi1iaXQgbW9kZS4KICAgICBKdW1wIGJyYW5jaElmQm9vbGVhbihKU1ZhbHVlUmVncyByZWdzLCBH
UFJSZWcgdGVtcEdQUikKICAgICB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VE11bEdlbmVyYXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRNdWxHZW5lcmF0b3IuY3BwCShyZXZpc2lvbiAyMDA1MTcpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVE11bEdlbmVyYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTUzLDYgKzE1
Myw3IEBAIHZvaWQgSklUTXVsR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKEMKICAgICAgICAg
Q0NhbGxIZWxwZXJzOjpKdW1wIGRvbmUgPSBqaXQuanVtcCgpOwogCiAgICAgICAgIG5vdE5lZ2F0
aXZlWmVyby5saW5rKCZqaXQpOworICAgICAgICBqaXQub3IzMihDQ2FsbEhlbHBlcnM6OlRydXN0
ZWRJbW0zMihSZXN1bHRQcm9maWxlOjpOb25OZWdaZXJvRG91YmxlKSwgQ0NhbGxIZWxwZXJzOjpB
YnNvbHV0ZUFkZHJlc3MobV9yZXN1bHRQcm9maWxlLT5hZGRyZXNzT2ZGbGFncygpKSk7CiAKICAg
ICAgICAgaml0Lm1vdmUobV9yZXN1bHQucGF5bG9hZEdQUigpLCBtX3NjcmF0Y2hHUFIpOwogICAg
ICAgICBqaXQudXJzaGlmdFB0cihDQ2FsbEhlbHBlcnM6OkltbTMyKDUyKSwgbV9zY3JhdGNoR1BS
KTsKQEAgLTE3NCw2ICsxNzUsNyBAQCB2b2lkIEpJVE11bEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0
UGF0aChDCiAgICAgICAgIENDYWxsSGVscGVyczo6SnVtcCBkb25lID0gaml0Lmp1bXAoKTsKIAog
ICAgICAgICBub3ROZWdhdGl2ZVplcm8ubGluaygmaml0KTsKKyAgICAgICAgaml0Lm9yMzIoQ0Nh
bGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoUmVzdWx0UHJvZmlsZTo6Tm9uTmVnWmVyb0RvdWJsZSks
IENDYWxsSGVscGVyczo6QWJzb2x1dGVBZGRyZXNzKG1fcmVzdWx0UHJvZmlsZS0+YWRkcmVzc09m
RmxhZ3MoKSkpOwogCiAgICAgICAgIGppdC5tb3ZlKG1fcmVzdWx0LnRhZ0dQUigpLCBtX3NjcmF0
Y2hHUFIpOwogICAgICAgICBqaXQudXJzaGlmdFB0cihDQ2FsbEhlbHBlcnM6OkltbTMyKDUyIC0g
MzIpLCBtX3NjcmF0Y2hHUFIpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Q29tbW9uU2xvd1BhdGhzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwCShyZXZpc2lvbiAyMDA1MTcpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zNzgsNiArMzc4LDggQEAgc3RhdGljIHZvaWQgdXBkYXRlUmVzdWx0UHJvZmlsZUZvckJp
bmFyeQogICAgICAgICAgICAgaWYgKCFkb3VibGVWYWwgJiYgc3RkOjpzaWduYml0KGRvdWJsZVZh
bCkpCiAgICAgICAgICAgICAgICAgcHJvZmlsZS0+c2V0T2JzZXJ2ZWROZWdaZXJvRG91YmxlKCk7
CiAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBwcm9maWxlLT5zZXRPYnNlcnZl
ZE5vbk5lZ1plcm9Eb3VibGUoKTsKKwogICAgICAgICAgICAgICAgIC8vIFRoZSBJbnQ1MiBvdmVy
ZmxvdyBjaGVjayBoZXJlIGludGVudGlvbmFsbHkgb21pdHMgMWxsIDw8IDUxIGFzIGEgdmFsaWQg
bmVnYXRpdmUgSW50NTIgdmFsdWUuCiAgICAgICAgICAgICAgICAgLy8gVGhlcmVmb3JlLCB3ZSB3
aWxsIGdldCBhIGZhbHNlIHBvc2l0aXZlIGlmIHRoZSByZXN1bHQgaXMgdGhhdCB2YWx1ZS4gVGhp
cyBpcyBpbnRlbnRpb25hbGx5CiAgICAgICAgICAgICAgICAgLy8gZG9uZSB0byBzaW1wbGlmeSB0
aGUgY2hlY2tpbmcgYWxnb3JpdGhtLgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>278344</attachid>
            <date>2016-05-07 15:40:39 -0700</date>
            <delta_ts>2016-05-08 12:36:24 -0700</delta_ts>
            <desc>add more things</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>46721</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyMDA1MTcpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTk5Niw2ICsxOTk2LDggQEAKIAkJREMxN0U4MUExQzlD
OTFFOTAwOEE2QUIzIC8qIENDYWxsSGVscGVycy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzE3RTgxNjFDOUM4MDJCMDA4QTZBQjMgLyogQ0NhbGxI
ZWxwZXJzLmNwcCAqLzsgfTsKIAkJREMyMTQzMDcxQ0EzMkU1NTAwMEE4ODY5IC8qIElDU3RhdHMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDMjE0MzA2
MUNBMzJFNTIwMDBBODg2OSAvKiBJQ1N0YXRzLmggKi87IH07CiAJCURDMjE0MzA4MUNBMzJFNTgw
MDBBODg2OSAvKiBJQ1N0YXRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IERDMjE0MzA1MUNBMzJFNTIwMDBBODg2OSAvKiBJQ1N0YXRzLmNwcCAqLzsg
fTsKKwkJREM3OTk3ODMxQ0RFOUZBMDAwNEQ0QTA5IC8qIFRhZ1JlZ2lzdGVyc01vZGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDNzk5NzgyMUNERTlG
OUUwMDRENEEwOSAvKiBUYWdSZWdpc3RlcnNNb2RlLmggKi87IH07CisJCURDNzk5Nzg0MUNERTlG
QTIwMDRENEEwOSAvKiBUYWdSZWdpc3RlcnNNb2RlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDNzk5NzgxMUNERTlGOUUwMDRENEEwOSAvKiBUYWdS
ZWdpc3RlcnNNb2RlLmNwcCAqLzsgfTsKIAkJRENGM0Q1NjkxQ0QyOTQ2RDAwM0Q1QzY1IC8qIExh
enlDbGFzc1N0cnVjdHVyZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBEQ0YzRDU2NDFDRDI5NDY4MDAzRDVDNjUgLyogTGF6eUNsYXNzU3RydWN0dXJl
LmNwcCAqLzsgfTsKIAkJRENGM0Q1NkExQ0QyOTQ3MDAwM0Q1QzY1IC8qIExhenlDbGFzc1N0cnVj
dHVyZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRENG
M0Q1NjUxQ0QyOTQ2ODAwM0Q1QzY1IC8qIExhenlDbGFzc1N0cnVjdHVyZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCURDRjNENTZCMUNEMjk0NzIw
MDNENUM2NSAvKiBMYXp5Q2xhc3NTdHJ1Y3R1cmVJbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQ0YzRDU2NjFDRDI5NDY4MDAzRDVDNjUgLyog
TGF6eUNsYXNzU3RydWN0dXJlSW5saW5lcy5oICovOyB9OwpAQCAtNDIxMSw2ICs0MjEzLDggQEAK
IAkJREMxN0U4MTYxQzlDODAyQjAwOEE2QUIzIC8qIENDYWxsSGVscGVycy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDQ2FsbEhlbHBlcnMuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlEQzIxNDMwNTFDQTMyRTUyMDAwQTg4NjkgLyogSUNTdGF0cy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJQ1N0YXRzLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREMyMTQzMDYxQ0EzMkU1MjAwMEE4ODY5IC8qIElD
U3RhdHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSUNTdGF0cy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEQzc5OTc4MTFDREU5RjlFMDA0RDRBMDkgLyogVGFn
UmVnaXN0ZXJzTW9kZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBU
YWdSZWdpc3RlcnNNb2RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJREM3OTk3
ODIxQ0RFOUY5RTAwNEQ0QTA5IC8qIFRhZ1JlZ2lzdGVyc01vZGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gVGFnUmVnaXN0ZXJzTW9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlEQ0YzRDU2NDFDRDI5NDY4MDAzRDVDNjUgLyogTGF6eUNsYXNzU3RydWN0dXJl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExhenlDbGFzc1N0cnVj
dHVyZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURDRjNENTY1MUNEMjk0Njgw
MDNENUM2NSAvKiBMYXp5Q2xhc3NTdHJ1Y3R1cmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTGF6eUNsYXNzU3RydWN0dXJlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCURDRjNENTY2MUNEMjk0NjgwMDNENUM2NSAvKiBMYXp5Q2xhc3NTdHJ1Y3R1cmVJbmxpbmVz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExhenlDbGFzc1N0cnVjdHVyZUlu
bGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTUwODksNiArNTA5Myw4IEBA
CiAJCQkJRkUxODdBMEMxQzAyRUJBNzAwMzhCQkNBIC8qIFNuaXBwZXRPcGVyYW5kLmggKi8sCiAJ
CQkJQTczODY1NTExMTg2OTdCNDAwNTQwMjc5IC8qIFNwZWNpYWxpemVkVGh1bmtKSVQuaCAqLywK
IAkJCQlBN0ZGNjQ3QTE4QzUyRTg1MDBCNTUzMDcgLyogU3BpbGxSZWdpc3RlcnNNb2RlLmggKi8s
CisJCQkJREM3OTk3ODExQ0RFOUY5RTAwNEQ0QTA5IC8qIFRhZ1JlZ2lzdGVyc01vZGUuY3BwICov
LAorCQkJCURDNzk5NzgyMUNERTlGOUUwMDRENEEwOSAvKiBUYWdSZWdpc3RlcnNNb2RlLmggKi8s
CiAJCQkJMEZDMzE0MTExODE0NTU5MTAwMDMzMjMyIC8qIFRlbXBSZWdpc3RlclNldC5jcHAgKi8s
CiAJCQkJMEYyNEU1NDgxN0VFMjc0OTAwQUJCMjE3IC8qIFRlbXBSZWdpc3RlclNldC5oICovLAog
CQkJCTBGNTcyRDREMTY4NzlGREIwMEU1N0ZCRCAvKiBUaHVua0dlbmVyYXRvci5oICovLApAQCAt
Nzg2OSw2ICs3ODc1LDcgQEAKIAkJCQk4NkYzRUVCRjE2OENERTkzMDA3N0I5MkEgLyogT2JqY1J1
bnRpbWVFeHRyYXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0Q0E5NThEMTZBQjUwRkEwMDkzOEEw
NiAvKiBPYmplY3RBbGxvY2F0aW9uUHJvZmlsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRENGM0Q1
NkMxQ0QyOTQ3NTAwM0Q1QzY1IC8qIExhenlQcm9wZXJ0eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
REM3OTk3ODMxQ0RFOUZBMDAwNEQ0QTA5IC8qIFRhZ1JlZ2lzdGVyc01vZGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDMThDNDQ1MEUxNkY1Q0QwMEIzNDQ2MCAvKiBPYmplY3RDb25zdHJ1Y3Rvci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTk2QjczMjIxQkRBMDhFRjAwMzMxQjg0IC8qIE9iamVjdENv
bnN0cnVjdG9yLmx1dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZEM0U0MEExQjYxOEI2NjAwQzgw
RTFFIC8qIE9iamVjdFByb3BlcnR5Q29uZGl0aW9uLmggaW4gSGVhZGVycyAqLywKQEAgLTkwNDEs
NiArOTA0OCw3IEBACiAJCQkJRkUzQTA2QjMxQzEwQ0I4RTAwMzkwRkREIC8qIEpJVEJpdFhvckdl
bmVyYXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNTdEMjNFNTE4OTBDRUJGMDAzMUM3RkEg
LyogSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNTMyNDM4
OTE4NTY4MzM1MDAyRUQ2OTIgLyogSW5zcGVjdG9yRnJvbnRlbmREaXNwYXRjaGVycy5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQlEQzc5OTc4NDFDREU5RkEyMDA0RDRBMDkgLyogVGFnUmVnaXN0ZXJz
TW9kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5OUYxQTZGRTFCOEU2RDk0MDA0NjNCMjYgLyog
SW5zcGVjdG9yRnJvbnRlbmRSb3V0ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTUzMzlFQzcx
QkIzOTlBOTAwNTRGMDA1IC8qIEluc3BlY3RvckhlYXBBZ2VudC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlFMzVFMDM1RjFCN0FCNDNFMDA3M0FEMkEgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
T2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0NvZGVCbG9jay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9Db2RlQmxvY2suaAkocmV2aXNpb24gMjAwNTE3KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCSh3b3JraW5nIGNvcHkpCkBAIC01MDAsNyArNTAw
LDcgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgQVNTRVJUKEpJVENvZGU6OmlzQmFzZWxpbmVD
b2RlKGppdFR5cGUoKSkpOwogICAgICAgICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihtX2xv
Y2spOwotICAgICAgICByZXR1cm4gbV9leGl0UHJvZmlsZS5hZGQobG9ja2VyLCBzaXRlKTsKKyAg
ICAgICAgcmV0dXJuIG1fZXhpdFByb2ZpbGUuYWRkKGxvY2tlciwgdGhpcywgc2l0ZSk7CiAgICAg
fQogCiAgICAgYm9vbCBoYXNFeGl0U2l0ZShjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiBsb2Nr
ZXIsIGNvbnN0IERGRzo6RnJlcXVlbnRFeGl0U2l0ZSYgc2l0ZSkgY29uc3QKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9ERkdFeGl0UHJvZmlsZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0RGR0V4aXRQcm9maWxlLmNwcAkocmV2
aXNpb24gMjAwNTE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0RGR0V4aXRQ
cm9maWxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDExLCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgsMTQgKzI4LDI0IEBACiAKICNpZiBFTkFCTEUo
REZHX0pJVCkKIAorI2luY2x1ZGUgIkNvZGVCbG9jay5oIgorCiBuYW1lc3BhY2UgSlNDIHsgbmFt
ZXNwYWNlIERGRyB7CiAKK3ZvaWQgRnJlcXVlbnRFeGl0U2l0ZTo6ZHVtcChQcmludFN0cmVhbSYg
b3V0KSBjb25zdAoreworICAgIG91dC5wcmludCgiYmMjIiwgbV9ieXRlY29kZU9mZnNldCwgIjog
IiwgbV9raW5kLCAiLyIsIG1faml0VHlwZSk7Cit9CisKIEV4aXRQcm9maWxlOjpFeGl0UHJvZmls
ZSgpIHsgfQogRXhpdFByb2ZpbGU6On5FeGl0UHJvZmlsZSgpIHsgfQogCi1ib29sIEV4aXRQcm9m
aWxlOjphZGQoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIGNvbnN0IEZyZXF1ZW50RXhpdFNp
dGUmIHNpdGUpCitib29sIEV4aXRQcm9maWxlOjphZGQoY29uc3QgQ29uY3VycmVudEpJVExvY2tl
ciYsIENvZGVCbG9jayogb3duZXIsIGNvbnN0IEZyZXF1ZW50RXhpdFNpdGUmIHNpdGUpCiB7CiAg
ICAgQVNTRVJUKHNpdGUuaml0VHlwZSgpICE9IEV4aXRGcm9tQW55dGhpbmcpOworCisgICAgaWYg
KGZhbHNlKSAvLyBGSVhNRQorICAgICAgICBkYXRhTG9nKHBvaW50ZXJEdW1wKG93bmVyKSwgIjog
QWRkaW5nIGV4aXQgc2l0ZTogIiwgc2l0ZSwgIlxuIik7CiAgICAgCiAgICAgLy8gSWYgd2UndmUg
bmV2ZXIgc2VlbiBhbnkgZnJlcXVlbnQgZXhpdHMgdGhlbiBjcmVhdGUgdGhlIGxpc3QgYW5kIHB1
dCB0aGlzIHNpdGUKICAgICAvLyBpbnRvIGl0LgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0RGR0V4aXRQcm9maWxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0RGR0V4aXRQcm9maWxlLmgJKHJldmlzaW9uIDIwMDUxNykKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9ERkdFeGl0UHJvZmlsZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAx
MywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTEtMjAxNCwgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTExNiw2ICsxMTYsOCBAQCBwdWJsaWM6CiAgICAg
ewogICAgICAgICByZXR1cm4gbV9raW5kID09IEV4aXRLaW5kVW5zZXQgJiYgbV9ieXRlY29kZU9m
ZnNldDsKICAgICB9CisgICAgCisgICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0
OwogCiBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1fYnl0ZWNvZGVPZmZzZXQ7CkBAIC0xNTksNyAr
MTYxLDcgQEAgcHVibGljOgogICAgIC8vIGJlIGNhbGxlZCBhIGZpeGVkIG51bWJlciBvZiB0aW1l
cyBwZXIgcmVjb21waWxhdGlvbi4gUmVjb21waWxhdGlvbiBpcwogICAgIC8vIHJhcmUgdG8gYmVn
aW4gd2l0aCwgYW5kIGltcGxpZXMgZG9pbmcgTyhuKSBvcGVyYXRpb25zIG9uIHRoZSBDb2RlQmxv
Y2sKICAgICAvLyBhbnl3YXkuCi0gICAgYm9vbCBhZGQoY29uc3QgQ29uY3VycmVudEpJVExvY2tl
ciYsIGNvbnN0IEZyZXF1ZW50RXhpdFNpdGUmKTsKKyAgICBib29sIGFkZChjb25zdCBDb25jdXJy
ZW50SklUTG9ja2VyJiwgQ29kZUJsb2NrKiBvd25lciwgY29uc3QgRnJlcXVlbnRFeGl0U2l0ZSYp
OwogICAgIAogICAgIC8vIEdldCB0aGUgZnJlcXVlbnQgZXhpdCBzaXRlcyBmb3IgYSBieXRlY29k
ZSBpbmRleC4gVGhpcyBpcyBPKG4pLCBhbmQgaXMKICAgICAvLyBtZWFudCB0byBvbmx5IGJlIHVz
ZWQgZnJvbSBkZWJ1Z2dpbmcvcHJvZmlsaW5nIGNvZGUuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL01ldGhvZE9mR2V0dGluZ0FWYWx1
ZVByb2ZpbGUuY3BwCShyZXZpc2lvbiAyMDA1MTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMywgMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShERkdfSklUKQogCisjaW5j
bHVkZSAiQ0NhbGxIZWxwZXJzLmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAi
SlNDSW5saW5lcy5oIgogCkBAIC00NCwxNCArNDUsMTUgQEAgTWV0aG9kT2ZHZXR0aW5nQVZhbHVl
UHJvZmlsZSBNZXRob2RPZkdldAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlKiBNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlOjpnZXRTcGVjRmFpbEJ1Y2tldCh1bnNp
Z25lZCBpbmRleCkgY29uc3QKK3ZvaWQgTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZTo6ZW1p
dFJlcG9ydFZhbHVlKENDYWxsSGVscGVycyYgaml0LCBKU1ZhbHVlUmVncyByZWdzKSBjb25zdAog
ewogICAgIHN3aXRjaCAobV9raW5kKSB7CiAgICAgY2FzZSBOb25lOgotICAgICAgICByZXR1cm4g
MDsKKyAgICAgICAgcmV0dXJuOwogICAgICAgICAKICAgICBjYXNlIFJlYWR5OgotICAgICAgICBy
ZXR1cm4gdS5wcm9maWxlLT5zcGVjRmFpbEJ1Y2tldChpbmRleCk7CisgICAgICAgIGppdC5zdG9y
ZVZhbHVlKHJlZ3MsIHUucHJvZmlsZS0+c3BlY0ZhaWxCdWNrZXQoMCkpOworICAgICAgICByZXR1
cm47CiAgICAgICAgIAogICAgIGNhc2UgTGF6eU9wZXJhbmQ6IHsKICAgICAgICAgTGF6eU9wZXJh
bmRWYWx1ZVByb2ZpbGVLZXkga2V5KHUubGF6eU9wZXJhbmQuYnl0ZWNvZGVPZmZzZXQsIFZpcnR1
YWxSZWdpc3Rlcih1LmxhenlPcGVyYW5kLm9wZXJhbmQpKTsKQEAgLTU5LDEzICs2MSwxNiBAQCBF
bmNvZGVkSlNWYWx1ZSogTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvCiAgICAgICAgIENvbmN1cnJl
bnRKSVRMb2NrZXIgbG9ja2VyKHUubGF6eU9wZXJhbmQuY29kZUJsb2NrLT5tX2xvY2spOwogICAg
ICAgICBMYXp5T3BlcmFuZFZhbHVlUHJvZmlsZSogcHJvZmlsZSA9CiAgICAgICAgICAgICB1Lmxh
enlPcGVyYW5kLmNvZGVCbG9jay0+bGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGVzKCkuYWRkKGxvY2tl
ciwga2V5KTsKLSAgICAgICAgcmV0dXJuIHByb2ZpbGUtPnNwZWNGYWlsQnVja2V0KGluZGV4KTsK
KyAgICAgICAgaml0LnN0b3JlVmFsdWUocmVncywgcHJvZmlsZS0+c3BlY0ZhaWxCdWNrZXQoMCkp
OworICAgICAgICByZXR1cm47CiAgICAgfQogICAgICAgICAKLSAgICBkZWZhdWx0OgotICAgICAg
ICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm4gMDsKLSAgICB9
CisgICAgY2FzZSBSZXN1bHRQcm9maWxlUmVhZHk6IHsKKyAgICAgICAgdS5yZXN1bHRQcm9maWxl
LT5lbWl0RGV0ZWN0Qml0c0xpZ2h0KGppdCwgcmVncywgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0gfQorICAgIAorICAgIFJFTEVBU0VfQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL01ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTWV0aG9kT2ZHZXR0aW5nQVZhbHVl
UHJvZmlsZS5oCShyZXZpc2lvbiAyMDA1MTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMiwx
MiArMzIsMTUgQEAKIC8vIHRoZXNlICNpZidzIHdpbGwgZGlzYXBwZWFyLi4uCiAjaWYgRU5BQkxF
KERGR19KSVQpCiAKKyNpbmNsdWRlICJHUFJJbmZvLmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZS5o
IgogCiBuYW1lc3BhY2UgSlNDIHsKIAorY2xhc3MgQ0NhbGxIZWxwZXJzOwogY2xhc3MgQ29kZUJs
b2NrOwogY2xhc3MgTGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGVLZXk7CitzdHJ1Y3QgUmVzdWx0UHJv
ZmlsZTsKIHN0cnVjdCBWYWx1ZVByb2ZpbGU7CiAKIGNsYXNzIE1ldGhvZE9mR2V0dGluZ0FWYWx1
ZVByb2ZpbGUgewpAQCAtNDcsNyArNTAsNyBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KICAgICAK
LSAgICBleHBsaWNpdCBNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlKFZhbHVlUHJvZmlsZSog
cHJvZmlsZSkKKyAgICBNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlKFZhbHVlUHJvZmlsZSog
cHJvZmlsZSkKICAgICB7CiAgICAgICAgIGlmIChwcm9maWxlKSB7CiAgICAgICAgICAgICBtX2tp
bmQgPSBSZWFkeTsKQEAgLTU2LDMxICs1OSwzNCBAQCBwdWJsaWM6CiAgICAgICAgICAgICBtX2tp
bmQgPSBOb25lOwogICAgIH0KICAgICAKKyAgICBNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxl
KFJlc3VsdFByb2ZpbGUqIHByb2ZpbGUpCisgICAgeworICAgICAgICBpZiAocHJvZmlsZSkgewor
ICAgICAgICAgICAgbV9raW5kID0gUmVzdWx0UHJvZmlsZVJlYWR5OworICAgICAgICAgICAgdS5y
ZXN1bHRQcm9maWxlID0gcHJvZmlsZTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBtX2tp
bmQgPSBOb25lOworICAgIH0KKyAgICAKICAgICBzdGF0aWMgTWV0aG9kT2ZHZXR0aW5nQVZhbHVl
UHJvZmlsZSBmcm9tTGF6eU9wZXJhbmQoCiAgICAgICAgIENvZGVCbG9jayosIGNvbnN0IExhenlP
cGVyYW5kVmFsdWVQcm9maWxlS2V5Jik7CiAgICAgCi0gICAgYm9vbCBvcGVyYXRvciEoKSBjb25z
dCB7IHJldHVybiBtX2tpbmQgPT0gTm9uZTsgfQotICAgIAotICAgIC8vIFRoaXMgbG9naWNhbGx5
IGhhcyBhIHBvaW50ZXIgdG8gYSAiVGhlcmUgZXhpc3RzIFggc3VjaCB0aGF0Ci0gICAgLy8gVmFs
dWVQcm9maWxlQmFzZTxYPiIuIEJ1dCBzaW5jZSBDKysgZG9lcyBub3QgaGF2ZSBleGlzdGVudGlh
bAotICAgIC8vIHRlbXBsYXRlcywgSSBjYW5ub3QgcmV0dXJuIGl0LiBTbyBpbnN0ZWFkLCBmb3Ig
YW55IG1ldGhvZHMgdGhhdAotICAgIC8vIHVzZXJzIG9mIHRoaXMgY2xhc3Mgd291bGQgbGlrZSB0
byBjYWxsLCB3ZSdsbCBqdXN0IGhhdmUgdG8gcHJvdmlkZQotICAgIC8vIGEgbWV0aG9kIGhlcmUg
dGhhdCBkb2VzIGl0IHRocm91Z2ggYW4gaW5kaXJlY3Rpb24uIE9yIHdlIGNvdWxkCi0gICAgLy8g
cG9zc2libHkganVzdCBtYWtlIFZhbHVlUHJvZmlsZSBsZXNzIHRlbXBsYXRlLWJhc2VkLiBCdXQg
bGFzdCBJCi0gICAgLy8gdHJpZWQgdGhhdCwgaXQgZmVsdCBtb3JlIHl1Y2t5IHRoYW4gdGhpcyBj
bGFzcy4KKyAgICBleHBsaWNpdCBvcGVyYXRvciBib29sKCkgY29uc3QgeyByZXR1cm4gbV9raW5k
ICE9IE5vbmU7IH0KICAgICAKLSAgICBFbmNvZGVkSlNWYWx1ZSogZ2V0U3BlY0ZhaWxCdWNrZXQo
dW5zaWduZWQgaW5kZXgpIGNvbnN0OworICAgIHZvaWQgZW1pdFJlcG9ydFZhbHVlKENDYWxsSGVs
cGVycyYsIEpTVmFsdWVSZWdzKSBjb25zdDsKICAgICAKIHByaXZhdGU6CiAgICAgZW51bSBLaW5k
IHsKICAgICAgICAgTm9uZSwKICAgICAgICAgUmVhZHksCisgICAgICAgIFJlc3VsdFByb2ZpbGVS
ZWFkeSwKICAgICAgICAgTGF6eU9wZXJhbmQKICAgICB9OwogICAgIAogICAgIEtpbmQgbV9raW5k
OwogICAgIHVuaW9uIHsKICAgICAgICAgVmFsdWVQcm9maWxlKiBwcm9maWxlOworICAgICAgICBS
ZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlOwogICAgICAgICBzdHJ1Y3QgewogICAgICAgICAg
ICAgQ29kZUJsb2NrKiBjb2RlQmxvY2s7CiAgICAgICAgICAgICB1bnNpZ25lZCBieXRlY29kZU9m
ZnNldDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhpY0Fj
Y2Vzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1Bv
bHltb3JwaGljQWNjZXNzLmNwcAkocmV2aXNpb24gMjAwNTE3KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTE0Niw4ICsxMTQ2LDcgQEAgdm9pZCBBY2Nlc3NDYXNlOjpnZW5lcmF0ZUltcGwoQWNjZXNzR2Vu
ZQogICAgICAgICAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgICAgICAgICAgZGF0YUxvZygiSGF2
ZSB0eXBlOiAiLCB0eXBlLT5kZXNjcmlwdG9yKCksICJcbiIpOwogICAgICAgICAgICAgc3RhdGUu
ZmFpbEFuZFJlcGF0Y2guYXBwZW5kKAotICAgICAgICAgICAgICAgIGppdC5icmFuY2hJZk5vdFR5
cGUoCi0gICAgICAgICAgICAgICAgICAgIHZhbHVlUmVncywgc2NyYXRjaEdQUiwgdHlwZS0+ZGVz
Y3JpcHRvcigpLCBDQ2FsbEhlbHBlcnM6OkhhdmVUYWdSZWdpc3RlcnMpKTsKKyAgICAgICAgICAg
ICAgICBqaXQuYnJhbmNoSWZOb3RUeXBlKHZhbHVlUmVncywgc2NyYXRjaEdQUiwgdHlwZS0+ZGVz
Y3JpcHRvcigpKSk7CiAgICAgICAgIH0gZWxzZSBpZiAodmVyYm9zZSkKICAgICAgICAgICAgIGRh
dGFMb2coIkRvbid0IGhhdmUgdHlwZS5cbiIpOwogICAgICAgICAKQEAgLTExNzcsOCArMTE3Niw3
IEBAIHZvaWQgQWNjZXNzQ2FzZTo6Z2VuZXJhdGVJbXBsKEFjY2Vzc0dlbmUKICAgICAgICAgICAg
IGlmICh2ZXJib3NlKQogICAgICAgICAgICAgICAgIGRhdGFMb2coIkhhdmUgdHlwZTogIiwgdHlw
ZS0+ZGVzY3JpcHRvcigpLCAiXG4iKTsKICAgICAgICAgICAgIHN0YXRlLmZhaWxBbmRSZXBhdGNo
LmFwcGVuZCgKLSAgICAgICAgICAgICAgICBqaXQuYnJhbmNoSWZOb3RUeXBlKAotICAgICAgICAg
ICAgICAgICAgICB2YWx1ZVJlZ3MsIHNjcmF0Y2hHUFIsIHR5cGUtPmRlc2NyaXB0b3IoKSwgQ0Nh
bGxIZWxwZXJzOjpIYXZlVGFnUmVnaXN0ZXJzKSk7CisgICAgICAgICAgICAgICAgaml0LmJyYW5j
aElmTm90VHlwZSh2YWx1ZVJlZ3MsIHNjcmF0Y2hHUFIsIHR5cGUtPmRlc2NyaXB0b3IoKSkpOwog
ICAgICAgICB9IGVsc2UgaWYgKHZlcmJvc2UpCiAgICAgICAgICAgICBkYXRhTG9nKCJEb24ndCBo
YXZlIHR5cGUuXG4iKTsKICAgICAgICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvVmFsdWVQcm9maWxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvVmFsdWVQcm9maWxlLmNwcAkocmV2aXNpb24gMjAwNTE3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZhbHVlUHJvZmlsZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MjYsNiArMjYsMzYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJWYWx1ZVByb2Zp
bGUuaCIKIAorI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgorI2luY2x1ZGUgIkpTQ0lubGluZXMu
aCIKKworbmFtZXNwYWNlIEpTQyB7CisKK3ZvaWQgUmVzdWx0UHJvZmlsZTo6ZW1pdERldGVjdEJp
dHNMaWdodChDQ2FsbEhlbHBlcnMmIGppdCwgSlNWYWx1ZVJlZ3MgcmVncywgVGFnUmVnaXN0ZXJz
TW9kZSBtb2RlKQoreworICAgIENDYWxsSGVscGVyczo6SnVtcCBpc0ludDMyID0gaml0LmJyYW5j
aElmSW50MzIocmVncywgbW9kZSk7CisgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIG5vdERvdWJsZSA9
IGppdC5icmFuY2hJZk5vdERvdWJsZUtub3duTm90SW50MzIocmVncywgbW9kZSk7CisgICAgLy8g
RklYTUU6IFdlIGNvdWxkIGJlIG1vcmUgcHJlY2lzZSBoZXJlLgorICAgIGVtaXRTZXREb3VibGUo
aml0KTsKKyAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgZG9uZSA9IGppdC5qdW1wKCk7CisgICAgbm90
RG91YmxlLmxpbmsoJmppdCk7CisgICAgZW1pdFNldE5vbk51bWJlcihqaXQpOworICAgIGRvbmUu
bGluaygmaml0KTsKKyAgICBpc0ludDMyLmxpbmsoJmppdCk7Cit9CisKK3ZvaWQgUmVzdWx0UHJv
ZmlsZTo6ZW1pdFNldERvdWJsZShDQ2FsbEhlbHBlcnMmIGppdCkKK3sKKyAgICBqaXQub3IzMihD
Q2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihSZXN1bHRQcm9maWxlOjpJbnQzMk92ZXJmbG93IHwg
UmVzdWx0UHJvZmlsZTo6SW50NTJPdmVyZmxvdyB8IFJlc3VsdFByb2ZpbGU6Ok5lZ1plcm9Eb3Vi
bGUgfCBSZXN1bHRQcm9maWxlOjpOb25OZWdaZXJvRG91YmxlKSwgQ0NhbGxIZWxwZXJzOjpBYnNv
bHV0ZUFkZHJlc3MoYWRkcmVzc09mRmxhZ3MoKSkpOworfQorCit2b2lkIFJlc3VsdFByb2ZpbGU6
OmVtaXRTZXROb25OdW1iZXIoQ0NhbGxIZWxwZXJzJiBqaXQpCit7CisgICAgaml0Lm9yMzIoQ0Nh
bGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoUmVzdWx0UHJvZmlsZTo6Tm9uTnVtYmVyKSwgQ0NhbGxI
ZWxwZXJzOjpBYnNvbHV0ZUFkZHJlc3MoYWRkcmVzc09mRmxhZ3MoKSkpOworfQorCit9IC8vIG5h
bWVzcGFjZSBKU0MKKwogbmFtZXNwYWNlIFdURiB7CiAgICAgCiB1c2luZyBuYW1lc3BhY2UgSlND
OwpAQCAtMzQsMjMgKzY0LDMxIEBAIHZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0
LCBjb24KIHsKICAgICBjb25zdCBjaGFyKiBzZXBhcmF0b3IgPSAiIjsKIAotICAgIGlmIChwcm9m
aWxlLmRpZE9ic2VydmVOZWdaZXJvRG91YmxlKCkpIHsKLSAgICAgICAgb3V0LnByaW50KHNlcGFy
YXRvciwgIk5lZ1plcm9Eb3VibGUiKTsKKyAgICBpZiAoIXByb2ZpbGUuZGlkT2JzZXJ2ZU5vbklu
dDMyKCkpIHsKKyAgICAgICAgb3V0LnByaW50KCJJbnQzMiIpOwogICAgICAgICBzZXBhcmF0b3Ig
PSAifCI7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKHByb2ZpbGUuZGlkT2JzZXJ2ZU5lZ1pl
cm9Eb3VibGUoKSkgeworICAgICAgICAgICAgb3V0LnByaW50KHNlcGFyYXRvciwgIk5lZ1plcm9E
b3VibGUiKTsKKyAgICAgICAgICAgIHNlcGFyYXRvciA9ICJ8IjsKKyAgICAgICAgfQorICAgICAg
ICBpZiAocHJvZmlsZS5kaWRPYnNlcnZlTm9uTmVnWmVyb0RvdWJsZSgpKSB7CisgICAgICAgICAg
ICBvdXQucHJpbnQoIk5vbk5lZ1plcm9Eb3VibGUiKTsKKyAgICAgICAgICAgIHNlcGFyYXRvciA9
ICJ8IjsKKyAgICAgICAgfQorICAgICAgICBpZiAocHJvZmlsZS5kaWRPYnNlcnZlTm9uTnVtYmVy
KCkpIHsKKyAgICAgICAgICAgIG91dC5wcmludCgiTm9uTnVtYmVyIik7CisgICAgICAgICAgICBz
ZXBhcmF0b3IgPSAifCI7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHByb2ZpbGUuZGlkT2JzZXJ2
ZUludDMyT3ZlcmZsb3coKSkgeworICAgICAgICAgICAgb3V0LnByaW50KCJJbnQzMk92ZXJmbG93
Iik7CisgICAgICAgICAgICBzZXBhcmF0b3IgPSAifCI7CisgICAgICAgIH0KKyAgICAgICAgaWYg
KHByb2ZpbGUuZGlkT2JzZXJ2ZUludDUyT3ZlcmZsb3coKSkgeworICAgICAgICAgICAgb3V0LnBy
aW50KCJJbnQ1Mk92ZXJmbG93Iik7CisgICAgICAgICAgICBzZXBhcmF0b3IgPSAifCI7CisgICAg
ICAgIH0KICAgICB9Ci0gICAgaWYgKHByb2ZpbGUuZGlkT2JzZXJ2ZU5vbk51bWJlcigpKSB7Ci0g
ICAgICAgIG91dC5wcmludCgiTm9uTnVtYmVyIik7Ci0gICAgICAgIHNlcGFyYXRvciA9ICJ8IjsK
LSAgICB9Ci0gICAgaWYgKHByb2ZpbGUuZGlkT2JzZXJ2ZUludDMyT3ZlcmZsb3coKSkgewotICAg
ICAgICBvdXQucHJpbnQoIkludDMyT3ZlcmZsb3ciKTsKLSAgICAgICAgc2VwYXJhdG9yID0gInwi
OwotICAgIH0KLSAgICBpZiAocHJvZmlsZS5kaWRPYnNlcnZlSW50NTJPdmVyZmxvdygpKSB7Ci0g
ICAgICAgIG91dC5wcmludCgiSW50NTJPdmVyZmxvdyIpOwotICAgICAgICBzZXBhcmF0b3IgPSAi
fCI7Ci0gICAgfQotCiAgICAgaWYgKHByb2ZpbGUuc3BlY2lhbEZhc3RQYXRoQ291bnQoKSkgewog
ICAgICAgICBvdXQucHJpbnQoIiBzcGVjaWFsIGZhc3QgcGF0aDogIik7CiAgICAgICAgIG91dC5w
cmludChwcm9maWxlLnNwZWNpYWxGYXN0UGF0aENvdW50KCkpOwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL1ZhbHVlUHJvZmlsZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WYWx1ZVByb2ZpbGUuaAkocmV2aXNpb24gMjAwNTE3KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZhbHVlUHJvZmlsZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwg
MjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTEtMjAxMywgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM0LDEyICszNCwxNSBAQAogI2luY2x1ZGUgIkpTQXJy
YXkuaCIKICNpbmNsdWRlICJTcGVjdWxhdGVkVHlwZS5oIgogI2luY2x1ZGUgIlN0cnVjdHVyZS5o
IgorI2luY2x1ZGUgIlRhZ1JlZ2lzdGVyc01vZGUuaCIKICNpbmNsdWRlICJXcml0ZUJhcnJpZXIu
aCIKICNpbmNsdWRlIDx3dGYvUHJpbnRTdHJlYW0uaD4KICNpbmNsdWRlIDx3dGYvU3RyaW5nUHJp
bnRTdHJlYW0uaD4KIAogbmFtZXNwYWNlIEpTQyB7CiAKK2NsYXNzIENDYWxsSGVscGVyczsKKwog
dGVtcGxhdGU8dW5zaWduZWQgbnVtYmVyT2ZCdWNrZXRzQXJndW1lbnQ+CiBzdHJ1Y3QgVmFsdWVQ
cm9maWxlQmFzZSB7CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG51bWJlck9mQnVja2V0cyA9
IG51bWJlck9mQnVja2V0c0FyZ3VtZW50OwpAQCAtMjE4LDIwICsyMjEsMjUgQEAgcHVibGljOgog
ICAgIH0KIAogICAgIGVudW0gT2JzZXJ2ZWRSZXN1bHRzIHsKLSAgICAgICAgTmVnWmVyb0RvdWJs
ZSAgICA9IDEgPDwgMCwKLSAgICAgICAgTm9uTnVtYmVyICAgICAgICA9IDEgPDwgMSwKLSAgICAg
ICAgSW50MzJPdmVyZmxvdyAgICA9IDEgPDwgMiwKLSAgICAgICAgSW50NTJPdmVyZmxvdyAgICA9
IDEgPDwgMywKKyAgICAgICAgTm9uTmVnWmVyb0RvdWJsZSA9IDEgPDwgMCwKKyAgICAgICAgTmVn
WmVyb0RvdWJsZSAgICA9IDEgPDwgMSwKKyAgICAgICAgTm9uTnVtYmVyICAgICAgICA9IDEgPDwg
MiwKKyAgICAgICAgSW50MzJPdmVyZmxvdyAgICA9IDEgPDwgMywKKyAgICAgICAgSW50NTJPdmVy
ZmxvdyAgICA9IDEgPDwgNCwKICAgICB9OwogCiAgICAgaW50IGJ5dGVjb2RlT2Zmc2V0KCkgY29u
c3QgeyByZXR1cm4gbV9ieXRlY29kZU9mZnNldEFuZEZsYWdzID4+IG51bWJlck9mRmxhZ0JpdHM7
IH0KICAgICB1bnNpZ25lZCBzcGVjaWFsRmFzdFBhdGhDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1f
c3BlY2lhbEZhc3RQYXRoQ291bnQ7IH0KIAorICAgIGJvb2wgZGlkT2JzZXJ2ZU5vbkludDMyKCkg
Y29uc3QgeyByZXR1cm4gaGFzQml0cyhOb25OZWdaZXJvRG91YmxlIHwgTmVnWmVyb0RvdWJsZSB8
IE5vbk51bWJlcik7IH0KKyAgICBib29sIGRpZE9ic2VydmVEb3VibGUoKSBjb25zdCB7IHJldHVy
biBoYXNCaXRzKE5vbk5lZ1plcm9Eb3VibGUgfCBOZWdaZXJvRG91YmxlKTsgfQorICAgIGJvb2wg
ZGlkT2JzZXJ2ZU5vbk5lZ1plcm9Eb3VibGUoKSBjb25zdCB7IHJldHVybiBoYXNCaXRzKE5vbk5l
Z1plcm9Eb3VibGUpOyB9CiAgICAgYm9vbCBkaWRPYnNlcnZlTmVnWmVyb0RvdWJsZSgpIGNvbnN0
IHsgcmV0dXJuIGhhc0JpdHMoTmVnWmVyb0RvdWJsZSk7IH0KICAgICBib29sIGRpZE9ic2VydmVO
b25OdW1iZXIoKSBjb25zdCB7IHJldHVybiBoYXNCaXRzKE5vbk51bWJlcik7IH0KICAgICBib29s
IGRpZE9ic2VydmVJbnQzMk92ZXJmbG93KCkgY29uc3QgeyByZXR1cm4gaGFzQml0cyhJbnQzMk92
ZXJmbG93KTsgfQogICAgIGJvb2wgZGlkT2JzZXJ2ZUludDUyT3ZlcmZsb3coKSBjb25zdCB7IHJl
dHVybiBoYXNCaXRzKEludDUyT3ZlcmZsb3cpOyB9CiAKKyAgICB2b2lkIHNldE9ic2VydmVkTm9u
TmVnWmVyb0RvdWJsZSgpIHsgc2V0Qml0KE5vbk5lZ1plcm9Eb3VibGUpOyB9CiAgICAgdm9pZCBz
ZXRPYnNlcnZlZE5lZ1plcm9Eb3VibGUoKSB7IHNldEJpdChOZWdaZXJvRG91YmxlKTsgfQogICAg
IHZvaWQgc2V0T2JzZXJ2ZWROb25OdW1iZXIoKSB7IHNldEJpdChOb25OdW1iZXIpOyB9CiAgICAg
dm9pZCBzZXRPYnNlcnZlZEludDMyT3ZlcmZsb3coKSB7IHNldEJpdChJbnQzMk92ZXJmbG93KTsg
fQpAQCAtMjM5LDYgKzI0NywxNiBAQCBwdWJsaWM6CiAKICAgICB2b2lkKiBhZGRyZXNzT2ZGbGFn
cygpIHsgcmV0dXJuICZtX2J5dGVjb2RlT2Zmc2V0QW5kRmxhZ3M7IH0KICAgICB2b2lkKiBhZGRy
ZXNzT2ZTcGVjaWFsRmFzdFBhdGhDb3VudCgpIHsgcmV0dXJuICZtX3NwZWNpYWxGYXN0UGF0aENv
dW50OyB9CisgICAgCisgICAgLy8gU2V0cyAoSW50MzJPdmVyZmxvdyB8IEludDUyT3ZlcmZsb3cg
fCBOb25OZWdaZXJvRG91YmxlIHwgTmVnWmVyb0RvdWJsZSkgaWYgaXQgc2VlcyBhCisgICAgLy8g
ZG91YmxlLiBTZXRzIE5vbk51bWJlciBpZiBpdCBzZWVzIGEgbm9uLW51bWJlci4KKyAgICB2b2lk
IGVtaXREZXRlY3RCaXRzTGlnaHQoQ0NhbGxIZWxwZXJzJiwgSlNWYWx1ZVJlZ3MsIFRhZ1JlZ2lz
dGVyc01vZGUgPSBIYXZlVGFnUmVnaXN0ZXJzKTsKKyAgICAKKyAgICAvLyBTZXRzIChJbnQzMk92
ZXJmbG93IHwgSW50NTJPdmVyZmxvdyB8IE5vbk5lZ1plcm9Eb3VibGUgfCBOZWdaZXJvRG91Ymxl
KS4KKyAgICB2b2lkIGVtaXRTZXREb3VibGUoQ0NhbGxIZWxwZXJzJik7CisgICAgCisgICAgLy8g
U2V0cyBOb25OdW1iZXIuCisgICAgdm9pZCBlbWl0U2V0Tm9uTnVtYmVyKENDYWxsSGVscGVycyYp
OwogCiBwcml2YXRlOgogICAgIGJvb2wgaGFzQml0cyhpbnQgbWFzaykgY29uc3QgeyByZXR1cm4g
bV9ieXRlY29kZU9mZnNldEFuZEZsYWdzICYgbWFzazsgfQpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJKHJldmlzaW9uIDIwMDUxNykK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC05MDYsOCArOTA2LDcgQEAgcHJpdmF0ZToKICAgICAgICAgaWYgKCFpc1g4
NigpICYmIG5vZGUtPm9wKCkgPT0gQXJpdGhNb2QpCiAgICAgICAgICAgICByZXR1cm4gbm9kZTsK
IAotICAgICAgICBpZiAoIW1faW5saW5lU3RhY2tUb3AtPm1fcHJvZmlsZWRCbG9jay0+bGlrZWx5
VG9UYWtlU2xvd0Nhc2UobV9jdXJyZW50SW5kZXgpKQotICAgICAgICAgICAgcmV0dXJuIG5vZGU7
CisgICAgICAgIGJvb2wgdGFrZXNTbG93Q2FzZSA9IG1faW5saW5lU3RhY2tUb3AtPm1fcHJvZmls
ZWRCbG9jay0+bGlrZWx5VG9UYWtlU2xvd0Nhc2UobV9jdXJyZW50SW5kZXgpOwogICAgICAgICAK
ICAgICAgICAgc3dpdGNoIChub2RlLT5vcCgpKSB7CiAgICAgICAgIGNhc2UgVUludDMyVG9OdW1i
ZXI6CkBAIC05MTUsMjUgKzkxNCwzMiBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIEFyaXRoU3Vi
OgogICAgICAgICBjYXNlIFZhbHVlQWRkOgogICAgICAgICBjYXNlIEFyaXRoTW9kOiAvLyBmb3Ig
QXJpdGhNb2QgIk1heU92ZXJmbG93IiBtZWFucyB3ZSB0cmllZCB0byBkaXZpZGUgYnkgemVybywg
b3Igd2Ugc2F3IGRvdWJsZS4KLSAgICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1heU92
ZXJmbG93SW50MzJJbkJhc2VsaW5lKTsKKyAgICAgICAgICAgIGlmICh0YWtlc1Nsb3dDYXNlKQor
ICAgICAgICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1heU92ZXJmbG93SW50MzJJbkJh
c2VsaW5lKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgCiAgICAgICAgIGNhc2Ug
QXJpdGhOZWdhdGU6Ci0gICAgICAgICAgICAvLyBDdXJyZW50bHkgd2UgY2FuJ3QgdGVsbCB0aGUg
ZGlmZmVyZW5jZSBiZXR3ZWVuIGEgbmVnYXRpb24gb3ZlcmZsb3dpbmcKLSAgICAgICAgICAgIC8v
IChpLmUuIC0oMSA8PCAzMSkpIG9yIGdlbmVyYXRpbmcgbmVnYXRpdmUgemVybyAoaS5lLiAtMCku
IElmIGl0IHRvb2sgc2xvdwotICAgICAgICAgICAgLy8gcGF0aCB0aGVuIHdlIGFzc3VtZSB0aGF0
IGl0IGRpZCBib3RoIG9mIHRob3NlIHRoaW5ncy4KLSAgICAgICAgICAgIG5vZGUtPm1lcmdlRmxh
Z3MoTm9kZU1heU92ZXJmbG93SW50MzJJbkJhc2VsaW5lKTsKLSAgICAgICAgICAgIG5vZGUtPm1l
cmdlRmxhZ3MoTm9kZU1heU5lZ1plcm9JbkJhc2VsaW5lKTsKKyAgICAgICAgICAgIGlmICh0YWtl
c1Nsb3dDYXNlKSB7CisgICAgICAgICAgICAgICAgLy8gQ3VycmVudGx5IHdlIGNhbid0IHRlbGwg
dGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBhIG5lZ2F0aW9uIG92ZXJmbG93aW5nCisgICAgICAgICAg
ICAgICAgLy8gKGkuZS4gLSgxIDw8IDMxKSkgb3IgZ2VuZXJhdGluZyBuZWdhdGl2ZSB6ZXJvIChp
LmUuIC0wKS4gSWYgaXQgdG9vayBzbG93CisgICAgICAgICAgICAgICAgLy8gcGF0aCB0aGVuIHdl
IGFzc3VtZSB0aGF0IGl0IGRpZCBib3RoIG9mIHRob3NlIHRoaW5ncy4KKyAgICAgICAgICAgICAg
ICBub2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlPdmVyZmxvd0ludDMySW5CYXNlbGluZSk7CisgICAg
ICAgICAgICAgICAgbm9kZS0+bWVyZ2VGbGFncyhOb2RlTWF5TmVnWmVyb0luQmFzZWxpbmUpOwor
ICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgY2FzZSBBcml0aE11
bDogewotICAgICAgICAgICAgUmVzdWx0UHJvZmlsZSYgcmVzdWx0UHJvZmlsZSA9ICptX2lubGlu
ZVN0YWNrVG9wLT5tX3Byb2ZpbGVkQmxvY2stPnJlc3VsdFByb2ZpbGVGb3JCeXRlY29kZU9mZnNl
dChtX2N1cnJlbnRJbmRleCk7Ci0gICAgICAgICAgICBpZiAocmVzdWx0UHJvZmlsZS5kaWRPYnNl
cnZlSW50NTJPdmVyZmxvdygpKQotICAgICAgICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3MoTm9k
ZU1heU92ZXJmbG93SW50NTIpOwotICAgICAgICAgICAgaWYgKHJlc3VsdFByb2ZpbGUuZGlkT2Jz
ZXJ2ZUludDMyT3ZlcmZsb3coKSB8fCBtX2lubGluZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxlLmhh
c0V4aXRTaXRlKG1fY3VycmVudEluZGV4LCBPdmVyZmxvdykpCi0gICAgICAgICAgICAgICAgbm9k
ZS0+bWVyZ2VGbGFncyhOb2RlTWF5T3ZlcmZsb3dJbnQzMkluQmFzZWxpbmUpOwotICAgICAgICAg
ICAgaWYgKHJlc3VsdFByb2ZpbGUuZGlkT2JzZXJ2ZU5lZ1plcm9Eb3VibGUoKSB8fCBtX2lubGlu
ZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1fY3VycmVudEluZGV4LCBOZWdh
dGl2ZVplcm8pKQotICAgICAgICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1heU5lZ1pl
cm9JbkJhc2VsaW5lKTsKKyAgICAgICAgICAgIFJlc3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUg
PSBtX2lubGluZVN0YWNrVG9wLT5tX3Byb2ZpbGVkQmxvY2stPnJlc3VsdFByb2ZpbGVGb3JCeXRl
Y29kZU9mZnNldChtX2N1cnJlbnRJbmRleCk7CisgICAgICAgICAgICBpZiAocmVzdWx0UHJvZmls
ZSkgeworICAgICAgICAgICAgICAgIGlmIChyZXN1bHRQcm9maWxlLT5kaWRPYnNlcnZlSW50NTJP
dmVyZmxvdygpKQorICAgICAgICAgICAgICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlP
dmVyZmxvd0ludDUyKTsKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0UHJvZmlsZS0+ZGlkT2Jz
ZXJ2ZUludDMyT3ZlcmZsb3coKSB8fCBtX2lubGluZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxlLmhh
c0V4aXRTaXRlKG1fY3VycmVudEluZGV4LCBPdmVyZmxvdykpCisgICAgICAgICAgICAgICAgICAg
IG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1heU92ZXJmbG93SW50MzJJbkJhc2VsaW5lKTsKKyAgICAg
ICAgICAgICAgICBpZiAocmVzdWx0UHJvZmlsZS0+ZGlkT2JzZXJ2ZU5lZ1plcm9Eb3VibGUoKSB8
fCBtX2lubGluZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1fY3VycmVudElu
ZGV4LCBOZWdhdGl2ZVplcm8pKQorICAgICAgICAgICAgICAgICAgICBub2RlLT5tZXJnZUZsYWdz
KE5vZGVNYXlOZWdaZXJvSW5CYXNlbGluZSk7CisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdFBy
b2ZpbGUtPmRpZE9ic2VydmVOb25JbnQzMigpKQorICAgICAgICAgICAgICAgICAgICBub2RlLT5t
ZXJnZUZsYWdzKE5vZGVNYXlIYXZlTm9uSW50UmVzdWx0KTsKKyAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHRml4dXBQaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdGaXh1cFBoYXNlLmNwcAkocmV2aXNpb24gMjAwNTE3KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjM2LDgg
KzIzNiw3IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgQXJpdGhNdWw6IHsKICAgICAgICAgICAg
IEVkZ2UmIGxlZnRDaGlsZCA9IG5vZGUtPmNoaWxkMSgpOwogICAgICAgICAgICAgRWRnZSYgcmln
aHRDaGlsZCA9IG5vZGUtPmNoaWxkMigpOwotICAgICAgICAgICAgaWYgKE5vZGU6OnNob3VsZFNw
ZWN1bGF0ZVVudHlwZWRGb3JBcml0aG1ldGljKGxlZnRDaGlsZC5ub2RlKCksIHJpZ2h0Q2hpbGQu
bm9kZSgpKQotICAgICAgICAgICAgICAgICYmIG1fZ3JhcGguaGFzRXhpdFNpdGUobm9kZS0+b3Jp
Z2luLnNlbWFudGljLCBCYWRUeXBlKSkgeworICAgICAgICAgICAgaWYgKE5vZGU6OnNob3VsZFNw
ZWN1bGF0ZVVudHlwZWRGb3JBcml0aG1ldGljKGxlZnRDaGlsZC5ub2RlKCksIHJpZ2h0Q2hpbGQu
bm9kZSgpKSkgewogICAgICAgICAgICAgICAgIGZpeEVkZ2U8VW50eXBlZFVzZT4obGVmdENoaWxk
KTsKICAgICAgICAgICAgICAgICBmaXhFZGdlPFVudHlwZWRVc2U+KHJpZ2h0Q2hpbGQpOwogICAg
ICAgICAgICAgICAgIG5vZGUtPnNldFJlc3VsdChOb2RlUmVzdWx0SlMpOwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAJKHJldmlzaW9uIDIwMDUxNykKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDQ2
LDQ2ICsxNDQ2LDUwIEBAIHZvaWQgR3JhcGg6OmVuc3VyZU5hdHVyYWxMb29wcygpCiAgICAgICAg
IG1fbmF0dXJhbExvb3BzID0gc3RkOjptYWtlX3VuaXF1ZTxOYXR1cmFsTG9vcHM+KCp0aGlzKTsK
IH0KIAotVmFsdWVQcm9maWxlKiBHcmFwaDo6dmFsdWVQcm9maWxlRm9yKE5vZGUqIG5vZGUpCitN
ZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlIEdyYXBoOjptZXRob2RPZkdldHRpbmdBVmFsdWVQ
cm9maWxlRm9yKE5vZGUqIG5vZGUpCiB7Ci0gICAgaWYgKCFub2RlKQotICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKyAgICB3aGlsZSAobm9kZSkgeworICAgICAgICBDb2RlQmxvY2sqIHByb2ZpbGVk
QmxvY2sgPSBiYXNlbGluZUNvZGVCbG9ja0Zvcihub2RlLT5vcmlnaW4uc2VtYW50aWMpOwogICAg
ICAgICAKLSAgICBDb2RlQmxvY2sqIHByb2ZpbGVkQmxvY2sgPSBiYXNlbGluZUNvZGVCbG9ja0Zv
cihub2RlLT5vcmlnaW4uc2VtYW50aWMpOworICAgICAgICBpZiAobm9kZS0+aGFzTG9jYWwoKnRo
aXMpKSB7CisgICAgICAgICAgICBWYWx1ZVByb2ZpbGUqIHJlc3VsdCA9IFsmXSAoKSAtPiBWYWx1
ZVByb2ZpbGUqIHsKKyAgICAgICAgICAgICAgICBpZiAoIW5vZGUtPmxvY2FsKCkuaXNBcmd1bWVu
dCgpKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgICAgICAg
ICBpbnQgYXJndW1lbnQgPSBub2RlLT5sb2NhbCgpLnRvQXJndW1lbnQoKTsKKyAgICAgICAgICAg
ICAgICBOb2RlKiBhcmd1bWVudE5vZGUgPSBtX2FyZ3VtZW50c1thcmd1bWVudF07CisgICAgICAg
ICAgICAgICAgaWYgKCFhcmd1bWVudE5vZGUpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBu
dWxscHRyOworICAgICAgICAgICAgICAgIGlmIChub2RlLT52YXJpYWJsZUFjY2Vzc0RhdGEoKSAh
PSBhcmd1bWVudE5vZGUtPnZhcmlhYmxlQWNjZXNzRGF0YSgpKQorICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgICAgICAgICByZXR1cm4gcHJvZmlsZWRCbG9jay0+
dmFsdWVQcm9maWxlRm9yQXJndW1lbnQoYXJndW1lbnQpOworICAgICAgICAgICAgfSgpOworICAg
ICAgICAgICAgaWYgKHJlc3VsdCkKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAg
ICAgICAgICAgCisgICAgICAgICAgICBpZiAobm9kZS0+b3AoKSA9PSBHZXRMb2NhbCkgeworICAg
ICAgICAgICAgICAgIHJldHVybiBNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlOjpmcm9tTGF6
eU9wZXJhbmQoCisgICAgICAgICAgICAgICAgICAgIHByb2ZpbGVkQmxvY2ssCisgICAgICAgICAg
ICAgICAgICAgIExhenlPcGVyYW5kVmFsdWVQcm9maWxlS2V5KAorICAgICAgICAgICAgICAgICAg
ICAgICAgbm9kZS0+b3JpZ2luLnNlbWFudGljLmJ5dGVjb2RlSW5kZXgsIG5vZGUtPmxvY2FsKCkp
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAgICAgICAKLSAgICBpZiAobm9kZS0+aGFz
TG9jYWwoKnRoaXMpKSB7Ci0gICAgICAgIGlmICghbm9kZS0+bG9jYWwoKS5pc0FyZ3VtZW50KCkp
Ci0gICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICAgICAgaW50IGFyZ3VtZW50ID0gbm9k
ZS0+bG9jYWwoKS50b0FyZ3VtZW50KCk7Ci0gICAgICAgIE5vZGUqIGFyZ3VtZW50Tm9kZSA9IG1f
YXJndW1lbnRzW2FyZ3VtZW50XTsKLSAgICAgICAgaWYgKCFhcmd1bWVudE5vZGUpCi0gICAgICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICAgICAgaWYgKG5vZGUtPnZhcmlhYmxlQWNjZXNzRGF0
YSgpICE9IGFyZ3VtZW50Tm9kZS0+dmFyaWFibGVBY2Nlc3NEYXRhKCkpCi0gICAgICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKLSAgICAgICAgcmV0dXJuIHByb2ZpbGVkQmxvY2stPnZhbHVlUHJvZmls
ZUZvckFyZ3VtZW50KGFyZ3VtZW50KTsKLSAgICB9CisgICAgICAgIGlmIChub2RlLT5oYXNIZWFw
UHJlZGljdGlvbigpKQorICAgICAgICAgICAgcmV0dXJuIHByb2ZpbGVkQmxvY2stPnZhbHVlUHJv
ZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KG5vZGUtPm9yaWdpbi5zZW1hbnRpYy5ieXRlY29kZUluZGV4
KTsKICAgICAgICAgCi0gICAgaWYgKG5vZGUtPmhhc0hlYXBQcmVkaWN0aW9uKCkpCi0gICAgICAg
IHJldHVybiBwcm9maWxlZEJsb2NrLT52YWx1ZVByb2ZpbGVGb3JCeXRlY29kZU9mZnNldChub2Rl
LT5vcmlnaW4uc2VtYW50aWMuYnl0ZWNvZGVJbmRleCk7CisgICAgICAgIGlmIChSZXN1bHRQcm9m
aWxlKiByZXN1bHQgPSBwcm9maWxlZEJsb2NrLT5yZXN1bHRQcm9maWxlRm9yQnl0ZWNvZGVPZmZz
ZXQobm9kZS0+b3JpZ2luLnNlbWFudGljLmJ5dGVjb2RlSW5kZXgpKQorICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKICAgICAgICAgCi0gICAgcmV0dXJuIG51bGxwdHI7Ci19Ci0KLU1ldGhvZE9m
R2V0dGluZ0FWYWx1ZVByb2ZpbGUgR3JhcGg6Om1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGVG
b3IoTm9kZSogbm9kZSkKLXsKLSAgICBpZiAoIW5vZGUpCi0gICAgICAgIHJldHVybiBNZXRob2RP
ZkdldHRpbmdBVmFsdWVQcm9maWxlKCk7Ci0gICAgCi0gICAgaWYgKFZhbHVlUHJvZmlsZSogdmFs
dWVQcm9maWxlID0gdmFsdWVQcm9maWxlRm9yKG5vZGUpKQotICAgICAgICByZXR1cm4gTWV0aG9k
T2ZHZXR0aW5nQVZhbHVlUHJvZmlsZSh2YWx1ZVByb2ZpbGUpOwotICAgIAotICAgIGlmIChub2Rl
LT5vcCgpID09IEdldExvY2FsKSB7Ci0gICAgICAgIENvZGVCbG9jayogcHJvZmlsZWRCbG9jayA9
IGJhc2VsaW5lQ29kZUJsb2NrRm9yKG5vZGUtPm9yaWdpbi5zZW1hbnRpYyk7Ci0gICAgICAgIAot
ICAgICAgICByZXR1cm4gTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZTo6ZnJvbUxhenlPcGVy
YW5kKAotICAgICAgICAgICAgcHJvZmlsZWRCbG9jaywKLSAgICAgICAgICAgIExhenlPcGVyYW5k
VmFsdWVQcm9maWxlS2V5KAotICAgICAgICAgICAgICAgIG5vZGUtPm9yaWdpbi5zZW1hbnRpYy5i
eXRlY29kZUluZGV4LCBub2RlLT5sb2NhbCgpKSk7CisgICAgICAgIHN3aXRjaCAobm9kZS0+b3Ao
KSkgeworICAgICAgICBjYXNlIElkZW50aXR5OgorICAgICAgICBjYXNlIFZhbHVlUmVwOgorICAg
ICAgICBjYXNlIERvdWJsZVJlcDoKKyAgICAgICAgY2FzZSBJbnQ1MlJlcDoKKyAgICAgICAgICAg
IG5vZGUgPSBub2RlLT5jaGlsZDEoKS5ub2RlKCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgZGVmYXVsdDoKKyAgICAgICAgICAgIG5vZGUgPSBudWxscHRyOworICAgICAgICB9CiAgICAg
fQogICAgIAogICAgIHJldHVybiBNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlKCk7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oCShyZXZpc2lvbiAyMDA1MTcpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgJKHdvcmtpbmcgY29weSkKQEAgLTQw
MCw3ICs0MDAsNiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBoYXNFeGl0U2l0ZShub2RlLT5v
cmlnaW4uc2VtYW50aWMsIGV4aXRLaW5kKTsKICAgICB9CiAgICAgCi0gICAgVmFsdWVQcm9maWxl
KiB2YWx1ZVByb2ZpbGVGb3IoTm9kZSopOwogICAgIE1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2Zp
bGUgbWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZUZvcihOb2RlKik7CiAgICAgCiAgICAgQmxv
Y2tJbmRleCBudW1CbG9ja3MoKSBjb25zdCB7IHJldHVybiBtX2Jsb2Nrcy5zaXplKCk7IH0KSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCShyZXZpc2lvbiAyMDA1MTcpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAkod29ya2luZyBjb3B5KQpAQCAtOTUw
LDYgKzk1MCwxMSBAQCBzdHJ1Y3QgTm9kZSB7CiAgICAgICAgIHJldHVybiByZXN1bHQgJiB+Tm9k
ZUJ5dGVjb2RlTmVlZHNOZWdaZXJvOwogICAgIH0KIAorICAgIGJvb2wgbWF5SGF2ZU5vbkludFJl
c3VsdCgpCisgICAgeworICAgICAgICByZXR1cm4gbV9mbGFncyAmIE5vZGVNYXlIYXZlTm9uSW50
UmVzdWx0OworICAgIH0KKwogICAgIGJvb2wgaGFzQ29uc3RhbnRCdWZmZXIoKQogICAgIHsKICAg
ICAgICAgcmV0dXJuIG9wKCkgPT0gTmV3QXJyYXlCdWZmZXI7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR05vZGVGbGFncy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdOb2RlRmxhZ3MuY3BwCShyZXZpc2lvbiAyMDA1MTcpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVGbGFncy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTg1LDYgKzg1LDkgQEAgdm9pZCBkdW1wTm9kZUZsYWdzKFByaW50U3RyZWFtJiBhY3R1YWxPdQog
ICAgICAgICAgICAgb3V0LnByaW50KGNvbW1hLCAiVXNlQXNPdGhlciIpOwogICAgIH0KIAorICAg
IGlmIChmbGFncyAmIE5vZGVNYXlIYXZlTm9uSW50UmVzdWx0KQorICAgICAgICBvdXQucHJpbnQo
Y29tbWEsICJNYXlIYXZlTm9uSW50UmVzdWx0Iik7CisKICAgICBpZiAoZmxhZ3MgJiBOb2RlTWF5
T3ZlcmZsb3dJbnQ1MikKICAgICAgICAgb3V0LnByaW50KGNvbW1hLCAiTWF5T3ZlcmZsb3dJbnQ1
MiIpOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVGbGFncy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZUZsYWdzLmgJKHJl
dmlzaW9uIDIwMDUxNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZUZsYWdz
LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDYgKzQ4LDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVz
cGFjZSBERkcgewogI2RlZmluZSBOb2RlSGFzVmFyQXJncyAgICAgICAgICAgICAgICAgICAweDAw
MTAKICAgICAKICNkZWZpbmUgTm9kZUJlaGF2aW9yTWFzayAgICAgICAgICAgICAgICAgMHgwN2Uw
CisjZGVmaW5lIE5vZGVNYXlIYXZlTm9uSW50UmVzdWx0ICAgICAgICAgIDB4MDAyMAogI2RlZmlu
ZSBOb2RlTWF5T3ZlcmZsb3dJbnQ1MiAgICAgICAgICAgICAweDAwNDAKICNkZWZpbmUgTm9kZU1h
eU92ZXJmbG93SW50MzJJbkJhc2VsaW5lICAgMHgwMDgwCiAjZGVmaW5lIE5vZGVNYXlPdmVyZmxv
d0ludDMySW5ERkcgICAgICAgIDB4MDEwMApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdPU1JFeGl0Q29tcGlsZXI2NC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXI2NC5jcHAJKHJldmlzaW9uIDIwMDUxNykKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyNjQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAx
My0yMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMSwgMjAxMy0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTM1LDE2ICsxMzUsMTYgQEAgdm9pZCBPU1JFeGl0
Q29tcGlsZXI6OmNvbXBpbGVFeGl0KGNvbnN0IAogICAgICAgICB9CiAgICAgICAgIAogICAgICAg
ICBpZiAoISFleGl0Lm1fdmFsdWVQcm9maWxlKSB7Ci0gICAgICAgICAgICBFbmNvZGVkSlNWYWx1
ZSogYnVja2V0ID0gZXhpdC5tX3ZhbHVlUHJvZmlsZS5nZXRTcGVjRmFpbEJ1Y2tldCgwKTsKKyAg
ICAgICAgICAgIE1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUgcHJvZmlsZSA9IGV4aXQubV92
YWx1ZVByb2ZpbGU7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGlmIChleGl0Lm1fanNWYWx1
ZVNvdXJjZS5pc0FkZHJlc3MoKSkgewogICAgICAgICAgICAgICAgIC8vIFdlIGNhbid0IGJlIHN1
cmUgdGhhdCB3ZSBoYXZlIGEgc3BhcmUgcmVnaXN0ZXIuIFNvIHVzZSB0aGUgdGFnVHlwZU51bWJl
clJlZ2lzdGVyLAogICAgICAgICAgICAgICAgIC8vIHNpbmNlIHdlIGtub3cgaG93IHRvIHJlc3Rv
cmUgaXQuCiAgICAgICAgICAgICAgICAgbV9qaXQubG9hZDY0KEFzc2VtYmx5SGVscGVyczo6QWRk
cmVzcyhleGl0Lm1fanNWYWx1ZVNvdXJjZS5hc0FkZHJlc3MoKSksIEdQUkluZm86OnRhZ1R5cGVO
dW1iZXJSZWdpc3Rlcik7Ci0gICAgICAgICAgICAgICAgbV9qaXQuc3RvcmU2NChHUFJJbmZvOjp0
YWdUeXBlTnVtYmVyUmVnaXN0ZXIsIGJ1Y2tldCk7CisgICAgICAgICAgICAgICAgcHJvZmlsZS5l
bWl0UmVwb3J0VmFsdWUobV9qaXQsIEpTVmFsdWVSZWdzKEdQUkluZm86OnRhZ1R5cGVOdW1iZXJS
ZWdpc3RlcikpOwogICAgICAgICAgICAgICAgIG1faml0Lm1vdmUoQXNzZW1ibHlIZWxwZXJzOjpU
cnVzdGVkSW1tNjQoVGFnVHlwZU51bWJlciksIEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3Rl
cik7CiAgICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICBtX2ppdC5zdG9yZTY0KGV4
aXQubV9qc1ZhbHVlU291cmNlLmdwcigpLCBidWNrZXQpOworICAgICAgICAgICAgICAgIHByb2Zp
bGUuZW1pdFJlcG9ydFZhbHVlKG1faml0LCBKU1ZhbHVlUmVncyhleGl0Lm1fanNWYWx1ZVNvdXJj
ZS5ncHIoKSkpOwogICAgICAgICB9CiAgICAgfQogICAgIApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFz
ZS5jcHAJKHJldmlzaW9uIDIwMDUxNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
UHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNjcsNiAr
MjY3LDEwIEBAIHByaXZhdGU6CiAgICAgICAgICAgICBTcGVjdWxhdGVkVHlwZSByaWdodCA9IG5v
ZGUtPmNoaWxkMigpLT5wcmVkaWN0aW9uKCk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGlm
IChsZWZ0ICYmIHJpZ2h0KSB7CisgICAgICAgICAgICAgICAgLy8gRklYTUU6IFdlJ3JlIGN1cnJl
bnRseSByZWx5aW5nIG9uIHByZWRpY3Rpb24gcHJvcGFnYXRpb24gYW5kIGJhY2t3YXJkcyBwcm9w
YWdhdGlvbgorICAgICAgICAgICAgICAgIC8vIHdoZW5ldmVyIHdlIGNhbiwgYW5kIG9ubHkgZmFs
bGluZyBiYWNrIG9uIHJlc3VsdCBmbGFncyBpZiB0aGF0IGZhaWxzLiBBbmQgdGhlIHJlc3VsdAor
ICAgICAgICAgICAgICAgIC8vIGZsYWdzIGxvZ2ljIGRvZXNuJ3Qga25vdyBob3cgdG8gdXNlIGJh
Y2t3YXJkcyBwcm9wYWdhdGlvbi4gV2Ugc2hvdWxkIGdldCByaWQgb2YgdGhlCisgICAgICAgICAg
ICAgICAgLy8gcHJlZGljdGlvbiBwcm9wYWdhdGlvbiBsb2dpYyBhbmQgcmVseSBzb2xlbHkgb24g
dGhlIHJlc3VsdCB0eXBlLgogICAgICAgICAgICAgICAgIGlmIChpc0Z1bGxOdW1iZXJPckJvb2xl
YW5TcGVjdWxhdGlvbkV4cGVjdGluZ0RlZmluZWQobGVmdCkKICAgICAgICAgICAgICAgICAgICAg
JiYgaXNGdWxsTnVtYmVyT3JCb29sZWFuU3BlY3VsYXRpb25FeHBlY3RpbmdEZWZpbmVkKHJpZ2h0
KSkgewogICAgICAgICAgICAgICAgICAgICBpZiAobV9ncmFwaC5iaW5hcnlBcml0aFNob3VsZFNw
ZWN1bGF0ZUludDMyKG5vZGUsIG1fcGFzcykpCkBAIC0yNzUsOCArMjc5LDE0IEBAIHByaXZhdGU6
CiAgICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVj
SW50NTJPbmx5KTsKICAgICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAg
ICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oc3BlY3VsYXRlZERvdWJsZVR5cGVGb3JQ
cmVkaWN0aW9ucyhsZWZ0LCByaWdodCkpOwotICAgICAgICAgICAgICAgIH0gZWxzZQotICAgICAg
ICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjSW50MzJPbmx5IHwg
U3BlY0J5dGVjb2RlRG91YmxlKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAg
ICAgICAgICAgICBpZiAobm9kZS0+bWF5SGF2ZU5vbkludFJlc3VsdCgpCisgICAgICAgICAgICAg
ICAgICAgICAgICB8fCAobGVmdCAmIFNwZWNCeXRlY29kZURvdWJsZSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHx8IChyaWdodCAmIFNwZWNCeXRlY29kZURvdWJsZSkpCisgICAgICAgICAgICAg
ICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjSW50MzJPbmx5IHwgU3Bl
Y0J5dGVjb2RlRG91YmxlKTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
ICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY0ludDMyT25seSk7Cisg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2
NC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVDY0LmNwcAkocmV2aXNpb24gMjAwNTE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTA1LDcgKzkw
NSw3IEBAIEdQUlJlZyBTcGVjdWxhdGl2ZUpJVDo6ZmlsbFNwZWN1bGF0ZUludDMKIAogICAgIG1f
aW50ZXJwcmV0ZXIuZmlsdGVyKHZhbHVlLCBTcGVjSW50MzJPbmx5KTsKICAgICBpZiAodmFsdWUu
aXNDbGVhcigpKSB7Ci0gICAgICAgIHRlcm1pbmF0ZVNwZWN1bGF0aXZlRXhlY3V0aW9uKFVuY291
bnRhYmxlLCBKU1ZhbHVlUmVncygpLCAwKTsKKyAgICAgICAgdGVybWluYXRlU3BlY3VsYXRpdmVF
eGVjdXRpb24oQmFkVHlwZSwgSlNWYWx1ZVJlZ3MoKSwgMCk7CiAgICAgICAgIHJldHVybkZvcm1h
dCA9IERhdGFGb3JtYXRJbnQzMjsKICAgICAgICAgcmV0dXJuIGFsbG9jYXRlKCk7CiAgICAgfQpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JFeGl0Q29tcGlsZXIuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhpdENvbXBpbGVy
LmNwcAkocmV2aXNpb24gMjAwNTE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExP
U1JFeGl0Q29tcGlsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMy0yMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjg0LDggKzI4NCw4IEBAIHN0
YXRpYyB2b2lkIGNvbXBpbGVTdHViKAogICAgICAgICAgICAgfQogICAgICAgICB9CiAKLSAgICAg
ICAgaWYgKCEhZXhpdC5tX2Rlc2NyaXB0b3ItPm1fdmFsdWVQcm9maWxlKQotICAgICAgICAgICAg
aml0LnN0b3JlNjQoR1BSSW5mbzo6cmVnVDAsIGV4aXQubV9kZXNjcmlwdG9yLT5tX3ZhbHVlUHJv
ZmlsZS5nZXRTcGVjRmFpbEJ1Y2tldCgwKSk7CisgICAgICAgIGlmIChleGl0Lm1fZGVzY3JpcHRv
ci0+bV92YWx1ZVByb2ZpbGUpCisgICAgICAgICAgICBleGl0Lm1fZGVzY3JpcHRvci0+bV92YWx1
ZVByb2ZpbGUuZW1pdFJlcG9ydFZhbHVlKGppdCwgSlNWYWx1ZVJlZ3MoR1BSSW5mbzo6cmVnVDAp
KTsKICAgICB9CiAKICAgICAvLyBNYXRlcmlhbGl6ZSBhbGwgb2JqZWN0cy4gRG9uJ3QgbWF0ZXJp
YWxpemUgYW4gb2JqZWN0IHVudGlsIGFsbApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9Bc3NlbWJseUhlbHBlcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0Fzc2VtYmx5SGVscGVycy5oCShyZXZpc2lvbiAyMDA1MTcpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC02NTMsMTEg
KzY1Myw2IEBAIHB1YmxpYzoKICNlbmRpZgogICAgIH0KIAotICAgIGVudW0gVGFnUmVnaXN0ZXJz
TW9kZSB7Ci0gICAgICAgIERvTm90SGF2ZVRhZ1JlZ2lzdGVycywKLSAgICAgICAgSGF2ZVRhZ1Jl
Z2lzdGVycwotICAgIH07Ci0KICAgICBKdW1wIGJyYW5jaElmTm90Q2VsbChHUFJSZWcgcmVnLCBU
YWdSZWdpc3RlcnNNb2RlIG1vZGUgPSBIYXZlVGFnUmVnaXN0ZXJzKQogICAgIHsKICNpZiBVU0Uo
SlNWQUxVRTY0KQpAQCAtNzgzLDYgKzc3OCwxOCBAQCBwdWJsaWM6CiAjZW5kaWYKICAgICB9CiAK
KyAgICBKdW1wIGJyYW5jaElmTm90RG91YmxlS25vd25Ob3RJbnQzMihKU1ZhbHVlUmVncyByZWdz
LCBUYWdSZWdpc3RlcnNNb2RlIG1vZGUgPSBIYXZlVGFnUmVnaXN0ZXJzKQorICAgIHsKKyNpZiBV
U0UoSlNWQUxVRTY0KQorICAgICAgICBpZiAobW9kZSA9PSBIYXZlVGFnUmVnaXN0ZXJzKQorICAg
ICAgICAgICAgcmV0dXJuIGJyYW5jaFRlc3Q2NChaZXJvLCByZWdzLmdwcigpLCBHUFJJbmZvOjp0
YWdUeXBlTnVtYmVyUmVnaXN0ZXIpOworICAgICAgICByZXR1cm4gYnJhbmNoVGVzdDY0KFplcm8s
IHJlZ3MuZ3ByKCksIFRydXN0ZWRJbW02NChUYWdUeXBlTnVtYmVyKSk7CisjZWxzZQorICAgICAg
ICBVTlVTRURfUEFSQU0obW9kZSk7CisgICAgICAgIHJldHVybiBicmFuY2gzMihBYm92ZU9yRXF1
YWwsIHJlZ3MudGFnR1BSKCksIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpMb3dlc3RUYWcpKTsKKyNl
bmRpZgorICAgIH0KKwogICAgIC8vIE5vdGUgdGhhdCB0aGUgdGVtcEdQUiBpcyBub3QgdXNlZCBp
biAzMi1iaXQgbW9kZS4KICAgICBKdW1wIGJyYW5jaElmQm9vbGVhbihKU1ZhbHVlUmVncyByZWdz
LCBHUFJSZWcgdGVtcEdQUikKICAgICB7CkBAIC04NDgsNyArODU1LDggQEAgcHVibGljOgogICAg
IH0KIAogICAgIEp1bXBMaXN0IGJyYW5jaElmTm90VHlwZSgKLSAgICAgICAgSlNWYWx1ZVJlZ3Ms
IEdQUlJlZyB0ZW1wR1BSLCBjb25zdCBJbmZlcnJlZFR5cGU6OkRlc2NyaXB0b3ImLCBUYWdSZWdp
c3RlcnNNb2RlKTsKKyAgICAgICAgSlNWYWx1ZVJlZ3MsIEdQUlJlZyB0ZW1wR1BSLCBjb25zdCBJ
bmZlcnJlZFR5cGU6OkRlc2NyaXB0b3ImLAorICAgICAgICBUYWdSZWdpc3RlcnNNb2RlID0gSGF2
ZVRhZ1JlZ2lzdGVycyk7CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogICAgIEp1bXAgYnJh
bmNoU3RydWN0dXJlKFJlbGF0aW9uYWxDb25kaXRpb24gY29uZGl0aW9uLCBUIGxlZnRIYW5kU2lk
ZSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0ludHJpbnNpY0VtaXR0ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSW50cmluc2ljRW1pdHRlci5jcHAJKHJldmlzaW9uIDIwMDUxNykKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSW50cmluc2ljRW1pdHRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTc4LDcgKzc4LDcgQEAgdm9pZCBBY2Nlc3NDYXNlOjplbWl0SW50cmluc2ljR2V0dGVyKEFjYwog
ICAgIHN3aXRjaCAoaW50cmluc2ljKCkpIHsKICAgICBjYXNlIFR5cGVkQXJyYXlMZW5ndGhJbnRy
aW5zaWM6IHsKICAgICAgICAgaml0LmxvYWQzMihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhzdGF0
ZS5iYXNlR1BSLCBKU0FycmF5QnVmZmVyVmlldzo6b2Zmc2V0T2ZMZW5ndGgoKSksIHZhbHVlR1BS
KTsKLSAgICAgICAgaml0LmJveEludDMyKHZhbHVlR1BSLCB2YWx1ZVJlZ3MsIENDYWxsSGVscGVy
czo6RG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsKKyAgICAgICAgaml0LmJveEludDMyKHZhbHVlR1BS
LCB2YWx1ZVJlZ3MpOwogICAgICAgICBzdGF0ZS5zdWNjZWVkKCk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CkBAIC05Myw3ICs5Myw3IEBAIHZvaWQgQWNjZXNzQ2FzZTo6ZW1pdEludHJpbnNpY0dl
dHRlcihBY2MKICAgICAgICAgICAgIGppdC5sc2hpZnQzMih2YWx1ZUdQUiwgSW1tMzIobG9nRWxl
bWVudFNpemUodHlwZSkpLCB2YWx1ZUdQUik7CiAgICAgICAgIH0KIAotICAgICAgICBqaXQuYm94
SW50MzIodmFsdWVHUFIsIHZhbHVlUmVncywgQ0NhbGxIZWxwZXJzOjpEb05vdEhhdmVUYWdSZWdp
c3RlcnMpOworICAgICAgICBqaXQuYm94SW50MzIodmFsdWVHUFIsIHZhbHVlUmVncyk7CiAgICAg
ICAgIHN0YXRlLnN1Y2NlZWQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTExOSw3ICsx
MTksNyBAQCB2b2lkIEFjY2Vzc0Nhc2U6OmVtaXRJbnRyaW5zaWNHZXR0ZXIoQWNjCiAgICAgICAg
IAogICAgICAgICBkb25lLmxpbmsoJmppdCk7CiAgICAgICAgIAotICAgICAgICBqaXQuYm94SW50
MzIodmFsdWVHUFIsIHZhbHVlUmVncywgQ0NhbGxIZWxwZXJzOjpEb05vdEhhdmVUYWdSZWdpc3Rl
cnMpOworICAgICAgICBqaXQuYm94SW50MzIodmFsdWVHUFIsIHZhbHVlUmVncyk7CiAgICAgICAg
IHN0YXRlLnN1Y2NlZWQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUQWRkR2VuZXJhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFkZEdlbmVyYXRvci5jcHAJKHJldmlzaW9uIDIwMDUx
NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQWRkR2VuZXJhdG9yLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTI4LDYgKzEyOCw5IEBAIHZvaWQgSklUQWRkR2VuZXJhdG9yOjpnZW5l
cmF0ZUZhc3RQYXRoKEMKIAogICAgIC8vIERvIGRvdWJsZVZhciArIGRvdWJsZVZhci4KICAgICBq
aXQuYWRkRG91YmxlKG1fcmlnaHRGUFIsIG1fbGVmdEZQUik7CisgICAgaWYgKG1fcmVzdWx0UHJv
ZmlsZSkKKyAgICAgICAgbV9yZXN1bHRQcm9maWxlLT5lbWl0U2V0RG91YmxlKGppdCk7CisgICAg
ICAgIAogICAgIGppdC5ib3hEb3VibGUobV9sZWZ0RlBSLCBtX3Jlc3VsdCk7CiB9CiAKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQWRkR2VuZXJhdG9yLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBZGRHZW5lcmF0b3IuaAkocmV2aXNpb24g
MjAwNTE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBZGRHZW5lcmF0b3IuaAko
d29ya2luZyBjb3B5KQpAQCAtMzcsNyArMzcsOCBAQCBjbGFzcyBKSVRBZGRHZW5lcmF0b3Igewog
cHVibGljOgogICAgIEpJVEFkZEdlbmVyYXRvcihTbmlwcGV0T3BlcmFuZCBsZWZ0T3BlcmFuZCwg
U25pcHBldE9wZXJhbmQgcmlnaHRPcGVyYW5kLAogICAgICAgICBKU1ZhbHVlUmVncyByZXN1bHQs
IEpTVmFsdWVSZWdzIGxlZnQsIEpTVmFsdWVSZWdzIHJpZ2h0LAotICAgICAgICBGUFJSZWcgbGVm
dEZQUiwgRlBSUmVnIHJpZ2h0RlBSLCBHUFJSZWcgc2NyYXRjaEdQUiwgRlBSUmVnIHNjcmF0Y2hG
UFIpCisgICAgICAgIEZQUlJlZyBsZWZ0RlBSLCBGUFJSZWcgcmlnaHRGUFIsIEdQUlJlZyBzY3Jh
dGNoR1BSLCBGUFJSZWcgc2NyYXRjaEZQUiwKKyAgICAgICAgUmVzdWx0UHJvZmlsZSogcmVzdWx0
UHJvZmlsZSA9IG51bGxwdHIpCiAgICAgICAgIDogbV9sZWZ0T3BlcmFuZChsZWZ0T3BlcmFuZCkK
ICAgICAgICAgLCBtX3JpZ2h0T3BlcmFuZChyaWdodE9wZXJhbmQpCiAgICAgICAgICwgbV9yZXN1
bHQocmVzdWx0KQpAQCAtNDcsNiArNDgsNyBAQCBwdWJsaWM6CiAgICAgICAgICwgbV9yaWdodEZQ
UihyaWdodEZQUikKICAgICAgICAgLCBtX3NjcmF0Y2hHUFIoc2NyYXRjaEdQUikKICAgICAgICAg
LCBtX3NjcmF0Y2hGUFIoc2NyYXRjaEZQUikKKyAgICAgICAgLCBtX3Jlc3VsdFByb2ZpbGUocmVz
dWx0UHJvZmlsZSkKICAgICB7CiAgICAgICAgIEFTU0VSVCghbV9sZWZ0T3BlcmFuZC5pc0NvbnN0
SW50MzIoKSB8fCAhbV9yaWdodE9wZXJhbmQuaXNDb25zdEludDMyKCkpOwogICAgIH0KQEAgLTY3
LDYgKzY5LDcgQEAgcHJpdmF0ZToKICAgICBGUFJSZWcgbV9yaWdodEZQUjsKICAgICBHUFJSZWcg
bV9zY3JhdGNoR1BSOwogICAgIEZQUlJlZyBtX3NjcmF0Y2hGUFI7CisgICAgUmVzdWx0UHJvZmls
ZSogbV9yZXN1bHRQcm9maWxlOwogICAgIGJvb2wgbV9kaWRFbWl0RmFzdFBhdGggeyBmYWxzZSB9
OwogCiAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBtX2VuZEp1bXBMaXN0OwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBcml0aG1ldGljLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0aWMuY3BwCShyZXZpc2lvbiAyMDA1
MTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0aWMuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC04NjYsNiArODY2LDggQEAgdm9pZCBKSVQ6OmVtaXRfb3BfbXVsKEluc3Ry
dWN0aW9uKiBjdXJyZQogICAgICAgICBBU1NFUlQoZ2VuLnNsb3dQYXRoSnVtcExpc3QoKS5lbXB0
eSgpKTsKICAgICAgICAgSklUU2xvd1BhdGhDYWxsIHNsb3dQYXRoQ2FsbCh0aGlzLCBjdXJyZW50
SW5zdHJ1Y3Rpb24sIHNsb3dfcGF0aF9tdWwpOwogICAgICAgICBzbG93UGF0aENhbGwuY2FsbCgp
OworICAgICAgICBpZiAocmVzdWx0UHJvZmlsZSkKKyAgICAgICAgICAgIHJlc3VsdFByb2ZpbGUt
PmVtaXREZXRlY3RCaXRzTGlnaHQoKnRoaXMsIHJlc3VsdFJlZ3MpOwogICAgIH0KIH0KIApAQCAt
ODc1LDYgKzg3Nyw4IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9tdWwoSW5zdHJ1Y3Rpb24qIGMK
ICAgICAKICAgICBKSVRTbG93UGF0aENhbGwgc2xvd1BhdGhDYWxsKHRoaXMsIGN1cnJlbnRJbnN0
cnVjdGlvbiwgc2xvd19wYXRoX211bCk7CiAgICAgc2xvd1BhdGhDYWxsLmNhbGwoKTsKKyAgICBp
ZiAoc2hvdWxkRW1pdFByb2ZpbGluZygpKQorICAgICAgICBtX2NvZGVCbG9jay0+ZW5zdXJlUmVz
dWx0UHJvZmlsZShtX2J5dGVjb2RlT2Zmc2V0KS0+ZW1pdERldGVjdEJpdHNMaWdodCgqdGhpcywg
SlNWYWx1ZVJlZ3MoR1BSSW5mbzo6cmVnVDApKTsKIH0KIAogdm9pZCBKSVQ6OmVtaXRfb3Bfc3Vi
KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVE11bEdlbmVyYXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRNdWxHZW5lcmF0b3IuY3BwCShyZXZpc2lvbiAyMDA1MTcpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE11bEdlbmVyYXRvci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtMTUzLDYgKzE1Myw3IEBAIHZvaWQgSklUTXVsR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRo
KEMKICAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIGRvbmUgPSBqaXQuanVtcCgpOwogCiAgICAg
ICAgIG5vdE5lZ2F0aXZlWmVyby5saW5rKCZqaXQpOworICAgICAgICBqaXQub3IzMihDQ2FsbEhl
bHBlcnM6OlRydXN0ZWRJbW0zMihSZXN1bHRQcm9maWxlOjpOb25OZWdaZXJvRG91YmxlKSwgQ0Nh
bGxIZWxwZXJzOjpBYnNvbHV0ZUFkZHJlc3MobV9yZXN1bHRQcm9maWxlLT5hZGRyZXNzT2ZGbGFn
cygpKSk7CiAKICAgICAgICAgaml0Lm1vdmUobV9yZXN1bHQucGF5bG9hZEdQUigpLCBtX3NjcmF0
Y2hHUFIpOwogICAgICAgICBqaXQudXJzaGlmdFB0cihDQ2FsbEhlbHBlcnM6OkltbTMyKDUyKSwg
bV9zY3JhdGNoR1BSKTsKQEAgLTE3NCw2ICsxNzUsNyBAQCB2b2lkIEpJVE11bEdlbmVyYXRvcjo6
Z2VuZXJhdGVGYXN0UGF0aChDCiAgICAgICAgIENDYWxsSGVscGVyczo6SnVtcCBkb25lID0gaml0
Lmp1bXAoKTsKIAogICAgICAgICBub3ROZWdhdGl2ZVplcm8ubGluaygmaml0KTsKKyAgICAgICAg
aml0Lm9yMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoUmVzdWx0UHJvZmlsZTo6Tm9uTmVn
WmVyb0RvdWJsZSksIENDYWxsSGVscGVyczo6QWJzb2x1dGVBZGRyZXNzKG1fcmVzdWx0UHJvZmls
ZS0+YWRkcmVzc09mRmxhZ3MoKSkpOwogCiAgICAgICAgIGppdC5tb3ZlKG1fcmVzdWx0LnRhZ0dQ
UigpLCBtX3NjcmF0Y2hHUFIpOwogICAgICAgICBqaXQudXJzaGlmdFB0cihDQ2FsbEhlbHBlcnM6
OkltbTMyKDUyIC0gMzIpLCBtX3NjcmF0Y2hHUFIpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9UYWdSZWdpc3RlcnNNb2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L1RhZ1JlZ2lzdGVyc01vZGUuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9UYWdSZWdpc3RlcnNNb2RlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUYWdSZWdpc3RlcnNNb2RlLmgi
CisKKyNpbmNsdWRlIDx3dGYvUHJpbnRTdHJlYW0uaD4KKworbmFtZXNwYWNlIFdURiB7CisKK3Vz
aW5nIG5hbWVzcGFjZSBKU0M7CisKK3ZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0
LCBUYWdSZWdpc3RlcnNNb2RlIG1vZGUpCit7CisgICAgc3dpdGNoIChtb2RlKSB7CisgICAgY2Fz
ZSBEb05vdEhhdmVUYWdSZWdpc3RlcnM6CisgICAgICAgIG91dC5wcmludCgiRG9Ob3RIYXZlVGFn
UmVnaXN0ZXJzIik7CisgICAgICAgIHJldHVybjsKKyAgICBjYXNlIEhhdmVUYWdSZWdpc3RlcnM6
CisgICAgICAgIG91dC5wcmludCgiSGF2ZVRhZ1JlZ2lzdGVycyIpOworICAgICAgICByZXR1cm47
CisgICAgfQorICAgIAorICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdURgorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RhZ1Jl
Z2lzdGVyc01vZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1Rh
Z1JlZ2lzdGVyc01vZGUuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvVGFnUmVnaXN0ZXJzTW9kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDYgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBUYWdS
ZWdpc3RlcnNNb2RlX2gKKyNkZWZpbmUgVGFnUmVnaXN0ZXJzTW9kZV9oCisKK25hbWVzcGFjZSBK
U0MgeworCitlbnVtIFRhZ1JlZ2lzdGVyc01vZGUgeworICAgIERvTm90SGF2ZVRhZ1JlZ2lzdGVy
cywKKyAgICBIYXZlVGFnUmVnaXN0ZXJzCit9OworCit9IC8vIG5hbWVzcGFjZSBKU0MKKworbmFt
ZXNwYWNlIFdURiB7CisKK2NsYXNzIFByaW50U3RyZWFtOwordm9pZCBwcmludEludGVybmFsKFBy
aW50U3RyZWFtJiwgSlNDOjpUYWdSZWdpc3RlcnNNb2RlKTsKKworfSAvLyBuYW1lc3BhY2UgV1RG
CisKKyNlbmRpZiAvLyBUYWdSZWdpc3RlcnNNb2RlX2gKKwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwCShyZXZpc2lvbiAyMDA1
MTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zNzgsNiArMzc4LDggQEAgc3RhdGljIHZvaWQgdXBkYXRlUmVz
dWx0UHJvZmlsZUZvckJpbmFyeQogICAgICAgICAgICAgaWYgKCFkb3VibGVWYWwgJiYgc3RkOjpz
aWduYml0KGRvdWJsZVZhbCkpCiAgICAgICAgICAgICAgICAgcHJvZmlsZS0+c2V0T2JzZXJ2ZWRO
ZWdaZXJvRG91YmxlKCk7CiAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBwcm9m
aWxlLT5zZXRPYnNlcnZlZE5vbk5lZ1plcm9Eb3VibGUoKTsKKwogICAgICAgICAgICAgICAgIC8v
IFRoZSBJbnQ1MiBvdmVyZmxvdyBjaGVjayBoZXJlIGludGVudGlvbmFsbHkgb21pdHMgMWxsIDw8
IDUxIGFzIGEgdmFsaWQgbmVnYXRpdmUgSW50NTIgdmFsdWUuCiAgICAgICAgICAgICAgICAgLy8g
VGhlcmVmb3JlLCB3ZSB3aWxsIGdldCBhIGZhbHNlIHBvc2l0aXZlIGlmIHRoZSByZXN1bHQgaXMg
dGhhdCB2YWx1ZS4gVGhpcyBpcyBpbnRlbnRpb25hbGx5CiAgICAgICAgICAgICAgICAgLy8gZG9u
ZSB0byBzaW1wbGlmeSB0aGUgY2hlY2tpbmcgYWxnb3JpdGhtLgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>278368</attachid>
            <date>2016-05-08 12:36:24 -0700</date>
            <delta_ts>2016-05-08 13:38:01 -0700</delta_ts>
            <desc>more...</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>68175</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyMDA1MTcpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTk5Niw2ICsxOTk2LDggQEAKIAkJREMxN0U4MUExQzlD
OTFFOTAwOEE2QUIzIC8qIENDYWxsSGVscGVycy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzE3RTgxNjFDOUM4MDJCMDA4QTZBQjMgLyogQ0NhbGxI
ZWxwZXJzLmNwcCAqLzsgfTsKIAkJREMyMTQzMDcxQ0EzMkU1NTAwMEE4ODY5IC8qIElDU3RhdHMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDMjE0MzA2
MUNBMzJFNTIwMDBBODg2OSAvKiBJQ1N0YXRzLmggKi87IH07CiAJCURDMjE0MzA4MUNBMzJFNTgw
MDBBODg2OSAvKiBJQ1N0YXRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IERDMjE0MzA1MUNBMzJFNTIwMDBBODg2OSAvKiBJQ1N0YXRzLmNwcCAqLzsg
fTsKKwkJREM3OTk3ODMxQ0RFOUZBMDAwNEQ0QTA5IC8qIFRhZ1JlZ2lzdGVyc01vZGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDNzk5NzgyMUNERTlG
OUUwMDRENEEwOSAvKiBUYWdSZWdpc3RlcnNNb2RlLmggKi87IH07CisJCURDNzk5Nzg0MUNERTlG
QTIwMDRENEEwOSAvKiBUYWdSZWdpc3RlcnNNb2RlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDNzk5NzgxMUNERTlGOUUwMDRENEEwOSAvKiBUYWdS
ZWdpc3RlcnNNb2RlLmNwcCAqLzsgfTsKIAkJRENGM0Q1NjkxQ0QyOTQ2RDAwM0Q1QzY1IC8qIExh
enlDbGFzc1N0cnVjdHVyZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBEQ0YzRDU2NDFDRDI5NDY4MDAzRDVDNjUgLyogTGF6eUNsYXNzU3RydWN0dXJl
LmNwcCAqLzsgfTsKIAkJRENGM0Q1NkExQ0QyOTQ3MDAwM0Q1QzY1IC8qIExhenlDbGFzc1N0cnVj
dHVyZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRENG
M0Q1NjUxQ0QyOTQ2ODAwM0Q1QzY1IC8qIExhenlDbGFzc1N0cnVjdHVyZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCURDRjNENTZCMUNEMjk0NzIw
MDNENUM2NSAvKiBMYXp5Q2xhc3NTdHJ1Y3R1cmVJbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQ0YzRDU2NjFDRDI5NDY4MDAzRDVDNjUgLyog
TGF6eUNsYXNzU3RydWN0dXJlSW5saW5lcy5oICovOyB9OwpAQCAtNDIxMSw2ICs0MjEzLDggQEAK
IAkJREMxN0U4MTYxQzlDODAyQjAwOEE2QUIzIC8qIENDYWxsSGVscGVycy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDQ2FsbEhlbHBlcnMuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlEQzIxNDMwNTFDQTMyRTUyMDAwQTg4NjkgLyogSUNTdGF0cy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJQ1N0YXRzLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREMyMTQzMDYxQ0EzMkU1MjAwMEE4ODY5IC8qIElD
U3RhdHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSUNTdGF0cy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEQzc5OTc4MTFDREU5RjlFMDA0RDRBMDkgLyogVGFn
UmVnaXN0ZXJzTW9kZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBU
YWdSZWdpc3RlcnNNb2RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJREM3OTk3
ODIxQ0RFOUY5RTAwNEQ0QTA5IC8qIFRhZ1JlZ2lzdGVyc01vZGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gVGFnUmVnaXN0ZXJzTW9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlEQ0YzRDU2NDFDRDI5NDY4MDAzRDVDNjUgLyogTGF6eUNsYXNzU3RydWN0dXJl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExhenlDbGFzc1N0cnVj
dHVyZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURDRjNENTY1MUNEMjk0Njgw
MDNENUM2NSAvKiBMYXp5Q2xhc3NTdHJ1Y3R1cmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTGF6eUNsYXNzU3RydWN0dXJlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCURDRjNENTY2MUNEMjk0NjgwMDNENUM2NSAvKiBMYXp5Q2xhc3NTdHJ1Y3R1cmVJbmxpbmVz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExhenlDbGFzc1N0cnVjdHVyZUlu
bGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTUwODksNiArNTA5Myw4IEBA
CiAJCQkJRkUxODdBMEMxQzAyRUJBNzAwMzhCQkNBIC8qIFNuaXBwZXRPcGVyYW5kLmggKi8sCiAJ
CQkJQTczODY1NTExMTg2OTdCNDAwNTQwMjc5IC8qIFNwZWNpYWxpemVkVGh1bmtKSVQuaCAqLywK
IAkJCQlBN0ZGNjQ3QTE4QzUyRTg1MDBCNTUzMDcgLyogU3BpbGxSZWdpc3RlcnNNb2RlLmggKi8s
CisJCQkJREM3OTk3ODExQ0RFOUY5RTAwNEQ0QTA5IC8qIFRhZ1JlZ2lzdGVyc01vZGUuY3BwICov
LAorCQkJCURDNzk5NzgyMUNERTlGOUUwMDRENEEwOSAvKiBUYWdSZWdpc3RlcnNNb2RlLmggKi8s
CiAJCQkJMEZDMzE0MTExODE0NTU5MTAwMDMzMjMyIC8qIFRlbXBSZWdpc3RlclNldC5jcHAgKi8s
CiAJCQkJMEYyNEU1NDgxN0VFMjc0OTAwQUJCMjE3IC8qIFRlbXBSZWdpc3RlclNldC5oICovLAog
CQkJCTBGNTcyRDREMTY4NzlGREIwMEU1N0ZCRCAvKiBUaHVua0dlbmVyYXRvci5oICovLApAQCAt
Nzg2OSw2ICs3ODc1LDcgQEAKIAkJCQk4NkYzRUVCRjE2OENERTkzMDA3N0I5MkEgLyogT2JqY1J1
bnRpbWVFeHRyYXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0Q0E5NThEMTZBQjUwRkEwMDkzOEEw
NiAvKiBPYmplY3RBbGxvY2F0aW9uUHJvZmlsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRENGM0Q1
NkMxQ0QyOTQ3NTAwM0Q1QzY1IC8qIExhenlQcm9wZXJ0eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
REM3OTk3ODMxQ0RFOUZBMDAwNEQ0QTA5IC8qIFRhZ1JlZ2lzdGVyc01vZGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDMThDNDQ1MEUxNkY1Q0QwMEIzNDQ2MCAvKiBPYmplY3RDb25zdHJ1Y3Rvci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTk2QjczMjIxQkRBMDhFRjAwMzMxQjg0IC8qIE9iamVjdENv
bnN0cnVjdG9yLmx1dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZEM0U0MEExQjYxOEI2NjAwQzgw
RTFFIC8qIE9iamVjdFByb3BlcnR5Q29uZGl0aW9uLmggaW4gSGVhZGVycyAqLywKQEAgLTkwNDEs
NiArOTA0OCw3IEBACiAJCQkJRkUzQTA2QjMxQzEwQ0I4RTAwMzkwRkREIC8qIEpJVEJpdFhvckdl
bmVyYXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNTdEMjNFNTE4OTBDRUJGMDAzMUM3RkEg
LyogSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNTMyNDM4
OTE4NTY4MzM1MDAyRUQ2OTIgLyogSW5zcGVjdG9yRnJvbnRlbmREaXNwYXRjaGVycy5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQlEQzc5OTc4NDFDREU5RkEyMDA0RDRBMDkgLyogVGFnUmVnaXN0ZXJz
TW9kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5OUYxQTZGRTFCOEU2RDk0MDA0NjNCMjYgLyog
SW5zcGVjdG9yRnJvbnRlbmRSb3V0ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTUzMzlFQzcx
QkIzOTlBOTAwNTRGMDA1IC8qIEluc3BlY3RvckhlYXBBZ2VudC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlFMzVFMDM1RjFCN0FCNDNFMDA3M0FEMkEgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
T2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0NvZGVCbG9jay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9Db2RlQmxvY2suaAkocmV2aXNpb24gMjAwNTE3KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCSh3b3JraW5nIGNvcHkpCkBAIC01MDAsNyArNTAw
LDcgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgQVNTRVJUKEpJVENvZGU6OmlzQmFzZWxpbmVD
b2RlKGppdFR5cGUoKSkpOwogICAgICAgICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihtX2xv
Y2spOwotICAgICAgICByZXR1cm4gbV9leGl0UHJvZmlsZS5hZGQobG9ja2VyLCBzaXRlKTsKKyAg
ICAgICAgcmV0dXJuIG1fZXhpdFByb2ZpbGUuYWRkKGxvY2tlciwgdGhpcywgc2l0ZSk7CiAgICAg
fQogCiAgICAgYm9vbCBoYXNFeGl0U2l0ZShjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiBsb2Nr
ZXIsIGNvbnN0IERGRzo6RnJlcXVlbnRFeGl0U2l0ZSYgc2l0ZSkgY29uc3QKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9ERkdFeGl0UHJvZmlsZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0RGR0V4aXRQcm9maWxlLmNwcAkocmV2
aXNpb24gMjAwNTE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0RGR0V4aXRQ
cm9maWxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDExLCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgsMTQgKzI4LDI0IEBACiAKICNpZiBFTkFCTEUo
REZHX0pJVCkKIAorI2luY2x1ZGUgIkNvZGVCbG9jay5oIgorCiBuYW1lc3BhY2UgSlNDIHsgbmFt
ZXNwYWNlIERGRyB7CiAKK3ZvaWQgRnJlcXVlbnRFeGl0U2l0ZTo6ZHVtcChQcmludFN0cmVhbSYg
b3V0KSBjb25zdAoreworICAgIG91dC5wcmludCgiYmMjIiwgbV9ieXRlY29kZU9mZnNldCwgIjog
IiwgbV9raW5kLCAiLyIsIG1faml0VHlwZSk7Cit9CisKIEV4aXRQcm9maWxlOjpFeGl0UHJvZmls
ZSgpIHsgfQogRXhpdFByb2ZpbGU6On5FeGl0UHJvZmlsZSgpIHsgfQogCi1ib29sIEV4aXRQcm9m
aWxlOjphZGQoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIGNvbnN0IEZyZXF1ZW50RXhpdFNp
dGUmIHNpdGUpCitib29sIEV4aXRQcm9maWxlOjphZGQoY29uc3QgQ29uY3VycmVudEpJVExvY2tl
ciYsIENvZGVCbG9jayogb3duZXIsIGNvbnN0IEZyZXF1ZW50RXhpdFNpdGUmIHNpdGUpCiB7CiAg
ICAgQVNTRVJUKHNpdGUuaml0VHlwZSgpICE9IEV4aXRGcm9tQW55dGhpbmcpOworCisgICAgaWYg
KGZhbHNlKSAvLyBGSVhNRQorICAgICAgICBkYXRhTG9nKHBvaW50ZXJEdW1wKG93bmVyKSwgIjog
QWRkaW5nIGV4aXQgc2l0ZTogIiwgc2l0ZSwgIlxuIik7CiAgICAgCiAgICAgLy8gSWYgd2UndmUg
bmV2ZXIgc2VlbiBhbnkgZnJlcXVlbnQgZXhpdHMgdGhlbiBjcmVhdGUgdGhlIGxpc3QgYW5kIHB1
dCB0aGlzIHNpdGUKICAgICAvLyBpbnRvIGl0LgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0RGR0V4aXRQcm9maWxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0RGR0V4aXRQcm9maWxlLmgJKHJldmlzaW9uIDIwMDUxNykKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9ERkdFeGl0UHJvZmlsZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAx
MywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTEtMjAxNCwgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTExNiw2ICsxMTYsOCBAQCBwdWJsaWM6CiAgICAg
ewogICAgICAgICByZXR1cm4gbV9raW5kID09IEV4aXRLaW5kVW5zZXQgJiYgbV9ieXRlY29kZU9m
ZnNldDsKICAgICB9CisgICAgCisgICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0
OwogCiBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1fYnl0ZWNvZGVPZmZzZXQ7CkBAIC0xNTksNyAr
MTYxLDcgQEAgcHVibGljOgogICAgIC8vIGJlIGNhbGxlZCBhIGZpeGVkIG51bWJlciBvZiB0aW1l
cyBwZXIgcmVjb21waWxhdGlvbi4gUmVjb21waWxhdGlvbiBpcwogICAgIC8vIHJhcmUgdG8gYmVn
aW4gd2l0aCwgYW5kIGltcGxpZXMgZG9pbmcgTyhuKSBvcGVyYXRpb25zIG9uIHRoZSBDb2RlQmxv
Y2sKICAgICAvLyBhbnl3YXkuCi0gICAgYm9vbCBhZGQoY29uc3QgQ29uY3VycmVudEpJVExvY2tl
ciYsIGNvbnN0IEZyZXF1ZW50RXhpdFNpdGUmKTsKKyAgICBib29sIGFkZChjb25zdCBDb25jdXJy
ZW50SklUTG9ja2VyJiwgQ29kZUJsb2NrKiBvd25lciwgY29uc3QgRnJlcXVlbnRFeGl0U2l0ZSYp
OwogICAgIAogICAgIC8vIEdldCB0aGUgZnJlcXVlbnQgZXhpdCBzaXRlcyBmb3IgYSBieXRlY29k
ZSBpbmRleC4gVGhpcyBpcyBPKG4pLCBhbmQgaXMKICAgICAvLyBtZWFudCB0byBvbmx5IGJlIHVz
ZWQgZnJvbSBkZWJ1Z2dpbmcvcHJvZmlsaW5nIGNvZGUuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL01ldGhvZE9mR2V0dGluZ0FWYWx1
ZVByb2ZpbGUuY3BwCShyZXZpc2lvbiAyMDA1MTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMywgMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShERkdfSklUKQogCisjaW5j
bHVkZSAiQ0NhbGxIZWxwZXJzLmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAi
SlNDSW5saW5lcy5oIgogCkBAIC00NCwxNCArNDUsMTUgQEAgTWV0aG9kT2ZHZXR0aW5nQVZhbHVl
UHJvZmlsZSBNZXRob2RPZkdldAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlKiBNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlOjpnZXRTcGVjRmFpbEJ1Y2tldCh1bnNp
Z25lZCBpbmRleCkgY29uc3QKK3ZvaWQgTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZTo6ZW1p
dFJlcG9ydFZhbHVlKENDYWxsSGVscGVycyYgaml0LCBKU1ZhbHVlUmVncyByZWdzKSBjb25zdAog
ewogICAgIHN3aXRjaCAobV9raW5kKSB7CiAgICAgY2FzZSBOb25lOgotICAgICAgICByZXR1cm4g
MDsKKyAgICAgICAgcmV0dXJuOwogICAgICAgICAKICAgICBjYXNlIFJlYWR5OgotICAgICAgICBy
ZXR1cm4gdS5wcm9maWxlLT5zcGVjRmFpbEJ1Y2tldChpbmRleCk7CisgICAgICAgIGppdC5zdG9y
ZVZhbHVlKHJlZ3MsIHUucHJvZmlsZS0+c3BlY0ZhaWxCdWNrZXQoMCkpOworICAgICAgICByZXR1
cm47CiAgICAgICAgIAogICAgIGNhc2UgTGF6eU9wZXJhbmQ6IHsKICAgICAgICAgTGF6eU9wZXJh
bmRWYWx1ZVByb2ZpbGVLZXkga2V5KHUubGF6eU9wZXJhbmQuYnl0ZWNvZGVPZmZzZXQsIFZpcnR1
YWxSZWdpc3Rlcih1LmxhenlPcGVyYW5kLm9wZXJhbmQpKTsKQEAgLTU5LDEzICs2MSwxNiBAQCBF
bmNvZGVkSlNWYWx1ZSogTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvCiAgICAgICAgIENvbmN1cnJl
bnRKSVRMb2NrZXIgbG9ja2VyKHUubGF6eU9wZXJhbmQuY29kZUJsb2NrLT5tX2xvY2spOwogICAg
ICAgICBMYXp5T3BlcmFuZFZhbHVlUHJvZmlsZSogcHJvZmlsZSA9CiAgICAgICAgICAgICB1Lmxh
enlPcGVyYW5kLmNvZGVCbG9jay0+bGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGVzKCkuYWRkKGxvY2tl
ciwga2V5KTsKLSAgICAgICAgcmV0dXJuIHByb2ZpbGUtPnNwZWNGYWlsQnVja2V0KGluZGV4KTsK
KyAgICAgICAgaml0LnN0b3JlVmFsdWUocmVncywgcHJvZmlsZS0+c3BlY0ZhaWxCdWNrZXQoMCkp
OworICAgICAgICByZXR1cm47CiAgICAgfQogICAgICAgICAKLSAgICBkZWZhdWx0OgotICAgICAg
ICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm4gMDsKLSAgICB9
CisgICAgY2FzZSBSZXN1bHRQcm9maWxlUmVhZHk6IHsKKyAgICAgICAgdS5yZXN1bHRQcm9maWxl
LT5lbWl0RGV0ZWN0Qml0c0xpZ2h0KGppdCwgcmVncywgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0gfQorICAgIAorICAgIFJFTEVBU0VfQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL01ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTWV0aG9kT2ZHZXR0aW5nQVZhbHVl
UHJvZmlsZS5oCShyZXZpc2lvbiAyMDA1MTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMiwx
MiArMzIsMTUgQEAKIC8vIHRoZXNlICNpZidzIHdpbGwgZGlzYXBwZWFyLi4uCiAjaWYgRU5BQkxF
KERGR19KSVQpCiAKKyNpbmNsdWRlICJHUFJJbmZvLmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZS5o
IgogCiBuYW1lc3BhY2UgSlNDIHsKIAorY2xhc3MgQ0NhbGxIZWxwZXJzOwogY2xhc3MgQ29kZUJs
b2NrOwogY2xhc3MgTGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGVLZXk7CitzdHJ1Y3QgUmVzdWx0UHJv
ZmlsZTsKIHN0cnVjdCBWYWx1ZVByb2ZpbGU7CiAKIGNsYXNzIE1ldGhvZE9mR2V0dGluZ0FWYWx1
ZVByb2ZpbGUgewpAQCAtNDcsNyArNTAsNyBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KICAgICAK
LSAgICBleHBsaWNpdCBNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlKFZhbHVlUHJvZmlsZSog
cHJvZmlsZSkKKyAgICBNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlKFZhbHVlUHJvZmlsZSog
cHJvZmlsZSkKICAgICB7CiAgICAgICAgIGlmIChwcm9maWxlKSB7CiAgICAgICAgICAgICBtX2tp
bmQgPSBSZWFkeTsKQEAgLTU2LDMxICs1OSwzNCBAQCBwdWJsaWM6CiAgICAgICAgICAgICBtX2tp
bmQgPSBOb25lOwogICAgIH0KICAgICAKKyAgICBNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxl
KFJlc3VsdFByb2ZpbGUqIHByb2ZpbGUpCisgICAgeworICAgICAgICBpZiAocHJvZmlsZSkgewor
ICAgICAgICAgICAgbV9raW5kID0gUmVzdWx0UHJvZmlsZVJlYWR5OworICAgICAgICAgICAgdS5y
ZXN1bHRQcm9maWxlID0gcHJvZmlsZTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBtX2tp
bmQgPSBOb25lOworICAgIH0KKyAgICAKICAgICBzdGF0aWMgTWV0aG9kT2ZHZXR0aW5nQVZhbHVl
UHJvZmlsZSBmcm9tTGF6eU9wZXJhbmQoCiAgICAgICAgIENvZGVCbG9jayosIGNvbnN0IExhenlP
cGVyYW5kVmFsdWVQcm9maWxlS2V5Jik7CiAgICAgCi0gICAgYm9vbCBvcGVyYXRvciEoKSBjb25z
dCB7IHJldHVybiBtX2tpbmQgPT0gTm9uZTsgfQotICAgIAotICAgIC8vIFRoaXMgbG9naWNhbGx5
IGhhcyBhIHBvaW50ZXIgdG8gYSAiVGhlcmUgZXhpc3RzIFggc3VjaCB0aGF0Ci0gICAgLy8gVmFs
dWVQcm9maWxlQmFzZTxYPiIuIEJ1dCBzaW5jZSBDKysgZG9lcyBub3QgaGF2ZSBleGlzdGVudGlh
bAotICAgIC8vIHRlbXBsYXRlcywgSSBjYW5ub3QgcmV0dXJuIGl0LiBTbyBpbnN0ZWFkLCBmb3Ig
YW55IG1ldGhvZHMgdGhhdAotICAgIC8vIHVzZXJzIG9mIHRoaXMgY2xhc3Mgd291bGQgbGlrZSB0
byBjYWxsLCB3ZSdsbCBqdXN0IGhhdmUgdG8gcHJvdmlkZQotICAgIC8vIGEgbWV0aG9kIGhlcmUg
dGhhdCBkb2VzIGl0IHRocm91Z2ggYW4gaW5kaXJlY3Rpb24uIE9yIHdlIGNvdWxkCi0gICAgLy8g
cG9zc2libHkganVzdCBtYWtlIFZhbHVlUHJvZmlsZSBsZXNzIHRlbXBsYXRlLWJhc2VkLiBCdXQg
bGFzdCBJCi0gICAgLy8gdHJpZWQgdGhhdCwgaXQgZmVsdCBtb3JlIHl1Y2t5IHRoYW4gdGhpcyBj
bGFzcy4KKyAgICBleHBsaWNpdCBvcGVyYXRvciBib29sKCkgY29uc3QgeyByZXR1cm4gbV9raW5k
ICE9IE5vbmU7IH0KICAgICAKLSAgICBFbmNvZGVkSlNWYWx1ZSogZ2V0U3BlY0ZhaWxCdWNrZXQo
dW5zaWduZWQgaW5kZXgpIGNvbnN0OworICAgIHZvaWQgZW1pdFJlcG9ydFZhbHVlKENDYWxsSGVs
cGVycyYsIEpTVmFsdWVSZWdzKSBjb25zdDsKICAgICAKIHByaXZhdGU6CiAgICAgZW51bSBLaW5k
IHsKICAgICAgICAgTm9uZSwKICAgICAgICAgUmVhZHksCisgICAgICAgIFJlc3VsdFByb2ZpbGVS
ZWFkeSwKICAgICAgICAgTGF6eU9wZXJhbmQKICAgICB9OwogICAgIAogICAgIEtpbmQgbV9raW5k
OwogICAgIHVuaW9uIHsKICAgICAgICAgVmFsdWVQcm9maWxlKiBwcm9maWxlOworICAgICAgICBS
ZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlOwogICAgICAgICBzdHJ1Y3QgewogICAgICAgICAg
ICAgQ29kZUJsb2NrKiBjb2RlQmxvY2s7CiAgICAgICAgICAgICB1bnNpZ25lZCBieXRlY29kZU9m
ZnNldDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhpY0Fj
Y2Vzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1Bv
bHltb3JwaGljQWNjZXNzLmNwcAkocmV2aXNpb24gMjAwNTE3KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTE0Niw4ICsxMTQ2LDcgQEAgdm9pZCBBY2Nlc3NDYXNlOjpnZW5lcmF0ZUltcGwoQWNjZXNzR2Vu
ZQogICAgICAgICAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgICAgICAgICAgZGF0YUxvZygiSGF2
ZSB0eXBlOiAiLCB0eXBlLT5kZXNjcmlwdG9yKCksICJcbiIpOwogICAgICAgICAgICAgc3RhdGUu
ZmFpbEFuZFJlcGF0Y2guYXBwZW5kKAotICAgICAgICAgICAgICAgIGppdC5icmFuY2hJZk5vdFR5
cGUoCi0gICAgICAgICAgICAgICAgICAgIHZhbHVlUmVncywgc2NyYXRjaEdQUiwgdHlwZS0+ZGVz
Y3JpcHRvcigpLCBDQ2FsbEhlbHBlcnM6OkhhdmVUYWdSZWdpc3RlcnMpKTsKKyAgICAgICAgICAg
ICAgICBqaXQuYnJhbmNoSWZOb3RUeXBlKHZhbHVlUmVncywgc2NyYXRjaEdQUiwgdHlwZS0+ZGVz
Y3JpcHRvcigpKSk7CiAgICAgICAgIH0gZWxzZSBpZiAodmVyYm9zZSkKICAgICAgICAgICAgIGRh
dGFMb2coIkRvbid0IGhhdmUgdHlwZS5cbiIpOwogICAgICAgICAKQEAgLTExNzcsOCArMTE3Niw3
IEBAIHZvaWQgQWNjZXNzQ2FzZTo6Z2VuZXJhdGVJbXBsKEFjY2Vzc0dlbmUKICAgICAgICAgICAg
IGlmICh2ZXJib3NlKQogICAgICAgICAgICAgICAgIGRhdGFMb2coIkhhdmUgdHlwZTogIiwgdHlw
ZS0+ZGVzY3JpcHRvcigpLCAiXG4iKTsKICAgICAgICAgICAgIHN0YXRlLmZhaWxBbmRSZXBhdGNo
LmFwcGVuZCgKLSAgICAgICAgICAgICAgICBqaXQuYnJhbmNoSWZOb3RUeXBlKAotICAgICAgICAg
ICAgICAgICAgICB2YWx1ZVJlZ3MsIHNjcmF0Y2hHUFIsIHR5cGUtPmRlc2NyaXB0b3IoKSwgQ0Nh
bGxIZWxwZXJzOjpIYXZlVGFnUmVnaXN0ZXJzKSk7CisgICAgICAgICAgICAgICAgaml0LmJyYW5j
aElmTm90VHlwZSh2YWx1ZVJlZ3MsIHNjcmF0Y2hHUFIsIHR5cGUtPmRlc2NyaXB0b3IoKSkpOwog
ICAgICAgICB9IGVsc2UgaWYgKHZlcmJvc2UpCiAgICAgICAgICAgICBkYXRhTG9nKCJEb24ndCBo
YXZlIHR5cGUuXG4iKTsKICAgICAgICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvVmFsdWVQcm9maWxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvVmFsdWVQcm9maWxlLmNwcAkocmV2aXNpb24gMjAwNTE3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZhbHVlUHJvZmlsZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MjYsNiArMjYsMzYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJWYWx1ZVByb2Zp
bGUuaCIKIAorI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgorI2luY2x1ZGUgIkpTQ0lubGluZXMu
aCIKKworbmFtZXNwYWNlIEpTQyB7CisKK3ZvaWQgUmVzdWx0UHJvZmlsZTo6ZW1pdERldGVjdEJp
dHNMaWdodChDQ2FsbEhlbHBlcnMmIGppdCwgSlNWYWx1ZVJlZ3MgcmVncywgVGFnUmVnaXN0ZXJz
TW9kZSBtb2RlKQoreworICAgIENDYWxsSGVscGVyczo6SnVtcCBpc0ludDMyID0gaml0LmJyYW5j
aElmSW50MzIocmVncywgbW9kZSk7CisgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIG5vdERvdWJsZSA9
IGppdC5icmFuY2hJZk5vdERvdWJsZUtub3duTm90SW50MzIocmVncywgbW9kZSk7CisgICAgLy8g
RklYTUU6IFdlIGNvdWxkIGJlIG1vcmUgcHJlY2lzZSBoZXJlLgorICAgIGVtaXRTZXREb3VibGUo
aml0KTsKKyAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgZG9uZSA9IGppdC5qdW1wKCk7CisgICAgbm90
RG91YmxlLmxpbmsoJmppdCk7CisgICAgZW1pdFNldE5vbk51bWJlcihqaXQpOworICAgIGRvbmUu
bGluaygmaml0KTsKKyAgICBpc0ludDMyLmxpbmsoJmppdCk7Cit9CisKK3ZvaWQgUmVzdWx0UHJv
ZmlsZTo6ZW1pdFNldERvdWJsZShDQ2FsbEhlbHBlcnMmIGppdCkKK3sKKyAgICBqaXQub3IzMihD
Q2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihSZXN1bHRQcm9maWxlOjpJbnQzMk92ZXJmbG93IHwg
UmVzdWx0UHJvZmlsZTo6SW50NTJPdmVyZmxvdyB8IFJlc3VsdFByb2ZpbGU6Ok5lZ1plcm9Eb3Vi
bGUgfCBSZXN1bHRQcm9maWxlOjpOb25OZWdaZXJvRG91YmxlKSwgQ0NhbGxIZWxwZXJzOjpBYnNv
bHV0ZUFkZHJlc3MoYWRkcmVzc09mRmxhZ3MoKSkpOworfQorCit2b2lkIFJlc3VsdFByb2ZpbGU6
OmVtaXRTZXROb25OdW1iZXIoQ0NhbGxIZWxwZXJzJiBqaXQpCit7CisgICAgaml0Lm9yMzIoQ0Nh
bGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoUmVzdWx0UHJvZmlsZTo6Tm9uTnVtYmVyKSwgQ0NhbGxI
ZWxwZXJzOjpBYnNvbHV0ZUFkZHJlc3MoYWRkcmVzc09mRmxhZ3MoKSkpOworfQorCit9IC8vIG5h
bWVzcGFjZSBKU0MKKwogbmFtZXNwYWNlIFdURiB7CiAgICAgCiB1c2luZyBuYW1lc3BhY2UgSlND
OwpAQCAtMzQsMjMgKzY0LDMxIEBAIHZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0
LCBjb24KIHsKICAgICBjb25zdCBjaGFyKiBzZXBhcmF0b3IgPSAiIjsKIAotICAgIGlmIChwcm9m
aWxlLmRpZE9ic2VydmVOZWdaZXJvRG91YmxlKCkpIHsKLSAgICAgICAgb3V0LnByaW50KHNlcGFy
YXRvciwgIk5lZ1plcm9Eb3VibGUiKTsKKyAgICBpZiAoIXByb2ZpbGUuZGlkT2JzZXJ2ZU5vbklu
dDMyKCkpIHsKKyAgICAgICAgb3V0LnByaW50KCJJbnQzMiIpOwogICAgICAgICBzZXBhcmF0b3Ig
PSAifCI7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKHByb2ZpbGUuZGlkT2JzZXJ2ZU5lZ1pl
cm9Eb3VibGUoKSkgeworICAgICAgICAgICAgb3V0LnByaW50KHNlcGFyYXRvciwgIk5lZ1plcm9E
b3VibGUiKTsKKyAgICAgICAgICAgIHNlcGFyYXRvciA9ICJ8IjsKKyAgICAgICAgfQorICAgICAg
ICBpZiAocHJvZmlsZS5kaWRPYnNlcnZlTm9uTmVnWmVyb0RvdWJsZSgpKSB7CisgICAgICAgICAg
ICBvdXQucHJpbnQoIk5vbk5lZ1plcm9Eb3VibGUiKTsKKyAgICAgICAgICAgIHNlcGFyYXRvciA9
ICJ8IjsKKyAgICAgICAgfQorICAgICAgICBpZiAocHJvZmlsZS5kaWRPYnNlcnZlTm9uTnVtYmVy
KCkpIHsKKyAgICAgICAgICAgIG91dC5wcmludCgiTm9uTnVtYmVyIik7CisgICAgICAgICAgICBz
ZXBhcmF0b3IgPSAifCI7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHByb2ZpbGUuZGlkT2JzZXJ2
ZUludDMyT3ZlcmZsb3coKSkgeworICAgICAgICAgICAgb3V0LnByaW50KCJJbnQzMk92ZXJmbG93
Iik7CisgICAgICAgICAgICBzZXBhcmF0b3IgPSAifCI7CisgICAgICAgIH0KKyAgICAgICAgaWYg
KHByb2ZpbGUuZGlkT2JzZXJ2ZUludDUyT3ZlcmZsb3coKSkgeworICAgICAgICAgICAgb3V0LnBy
aW50KCJJbnQ1Mk92ZXJmbG93Iik7CisgICAgICAgICAgICBzZXBhcmF0b3IgPSAifCI7CisgICAg
ICAgIH0KICAgICB9Ci0gICAgaWYgKHByb2ZpbGUuZGlkT2JzZXJ2ZU5vbk51bWJlcigpKSB7Ci0g
ICAgICAgIG91dC5wcmludCgiTm9uTnVtYmVyIik7Ci0gICAgICAgIHNlcGFyYXRvciA9ICJ8IjsK
LSAgICB9Ci0gICAgaWYgKHByb2ZpbGUuZGlkT2JzZXJ2ZUludDMyT3ZlcmZsb3coKSkgewotICAg
ICAgICBvdXQucHJpbnQoIkludDMyT3ZlcmZsb3ciKTsKLSAgICAgICAgc2VwYXJhdG9yID0gInwi
OwotICAgIH0KLSAgICBpZiAocHJvZmlsZS5kaWRPYnNlcnZlSW50NTJPdmVyZmxvdygpKSB7Ci0g
ICAgICAgIG91dC5wcmludCgiSW50NTJPdmVyZmxvdyIpOwotICAgICAgICBzZXBhcmF0b3IgPSAi
fCI7Ci0gICAgfQotCiAgICAgaWYgKHByb2ZpbGUuc3BlY2lhbEZhc3RQYXRoQ291bnQoKSkgewog
ICAgICAgICBvdXQucHJpbnQoIiBzcGVjaWFsIGZhc3QgcGF0aDogIik7CiAgICAgICAgIG91dC5w
cmludChwcm9maWxlLnNwZWNpYWxGYXN0UGF0aENvdW50KCkpOwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL1ZhbHVlUHJvZmlsZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WYWx1ZVByb2ZpbGUuaAkocmV2aXNpb24gMjAwNTE3KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZhbHVlUHJvZmlsZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwg
MjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTEtMjAxMywgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM0LDEyICszNCwxNSBAQAogI2luY2x1ZGUgIkpTQXJy
YXkuaCIKICNpbmNsdWRlICJTcGVjdWxhdGVkVHlwZS5oIgogI2luY2x1ZGUgIlN0cnVjdHVyZS5o
IgorI2luY2x1ZGUgIlRhZ1JlZ2lzdGVyc01vZGUuaCIKICNpbmNsdWRlICJXcml0ZUJhcnJpZXIu
aCIKICNpbmNsdWRlIDx3dGYvUHJpbnRTdHJlYW0uaD4KICNpbmNsdWRlIDx3dGYvU3RyaW5nUHJp
bnRTdHJlYW0uaD4KIAogbmFtZXNwYWNlIEpTQyB7CiAKK2NsYXNzIENDYWxsSGVscGVyczsKKwog
dGVtcGxhdGU8dW5zaWduZWQgbnVtYmVyT2ZCdWNrZXRzQXJndW1lbnQ+CiBzdHJ1Y3QgVmFsdWVQ
cm9maWxlQmFzZSB7CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG51bWJlck9mQnVja2V0cyA9
IG51bWJlck9mQnVja2V0c0FyZ3VtZW50OwpAQCAtMjE4LDIwICsyMjEsMjUgQEAgcHVibGljOgog
ICAgIH0KIAogICAgIGVudW0gT2JzZXJ2ZWRSZXN1bHRzIHsKLSAgICAgICAgTmVnWmVyb0RvdWJs
ZSAgICA9IDEgPDwgMCwKLSAgICAgICAgTm9uTnVtYmVyICAgICAgICA9IDEgPDwgMSwKLSAgICAg
ICAgSW50MzJPdmVyZmxvdyAgICA9IDEgPDwgMiwKLSAgICAgICAgSW50NTJPdmVyZmxvdyAgICA9
IDEgPDwgMywKKyAgICAgICAgTm9uTmVnWmVyb0RvdWJsZSA9IDEgPDwgMCwKKyAgICAgICAgTmVn
WmVyb0RvdWJsZSAgICA9IDEgPDwgMSwKKyAgICAgICAgTm9uTnVtYmVyICAgICAgICA9IDEgPDwg
MiwKKyAgICAgICAgSW50MzJPdmVyZmxvdyAgICA9IDEgPDwgMywKKyAgICAgICAgSW50NTJPdmVy
ZmxvdyAgICA9IDEgPDwgNCwKICAgICB9OwogCiAgICAgaW50IGJ5dGVjb2RlT2Zmc2V0KCkgY29u
c3QgeyByZXR1cm4gbV9ieXRlY29kZU9mZnNldEFuZEZsYWdzID4+IG51bWJlck9mRmxhZ0JpdHM7
IH0KICAgICB1bnNpZ25lZCBzcGVjaWFsRmFzdFBhdGhDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1f
c3BlY2lhbEZhc3RQYXRoQ291bnQ7IH0KIAorICAgIGJvb2wgZGlkT2JzZXJ2ZU5vbkludDMyKCkg
Y29uc3QgeyByZXR1cm4gaGFzQml0cyhOb25OZWdaZXJvRG91YmxlIHwgTmVnWmVyb0RvdWJsZSB8
IE5vbk51bWJlcik7IH0KKyAgICBib29sIGRpZE9ic2VydmVEb3VibGUoKSBjb25zdCB7IHJldHVy
biBoYXNCaXRzKE5vbk5lZ1plcm9Eb3VibGUgfCBOZWdaZXJvRG91YmxlKTsgfQorICAgIGJvb2wg
ZGlkT2JzZXJ2ZU5vbk5lZ1plcm9Eb3VibGUoKSBjb25zdCB7IHJldHVybiBoYXNCaXRzKE5vbk5l
Z1plcm9Eb3VibGUpOyB9CiAgICAgYm9vbCBkaWRPYnNlcnZlTmVnWmVyb0RvdWJsZSgpIGNvbnN0
IHsgcmV0dXJuIGhhc0JpdHMoTmVnWmVyb0RvdWJsZSk7IH0KICAgICBib29sIGRpZE9ic2VydmVO
b25OdW1iZXIoKSBjb25zdCB7IHJldHVybiBoYXNCaXRzKE5vbk51bWJlcik7IH0KICAgICBib29s
IGRpZE9ic2VydmVJbnQzMk92ZXJmbG93KCkgY29uc3QgeyByZXR1cm4gaGFzQml0cyhJbnQzMk92
ZXJmbG93KTsgfQogICAgIGJvb2wgZGlkT2JzZXJ2ZUludDUyT3ZlcmZsb3coKSBjb25zdCB7IHJl
dHVybiBoYXNCaXRzKEludDUyT3ZlcmZsb3cpOyB9CiAKKyAgICB2b2lkIHNldE9ic2VydmVkTm9u
TmVnWmVyb0RvdWJsZSgpIHsgc2V0Qml0KE5vbk5lZ1plcm9Eb3VibGUpOyB9CiAgICAgdm9pZCBz
ZXRPYnNlcnZlZE5lZ1plcm9Eb3VibGUoKSB7IHNldEJpdChOZWdaZXJvRG91YmxlKTsgfQogICAg
IHZvaWQgc2V0T2JzZXJ2ZWROb25OdW1iZXIoKSB7IHNldEJpdChOb25OdW1iZXIpOyB9CiAgICAg
dm9pZCBzZXRPYnNlcnZlZEludDMyT3ZlcmZsb3coKSB7IHNldEJpdChJbnQzMk92ZXJmbG93KTsg
fQpAQCAtMjM5LDYgKzI0NywyNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkKiBhZGRyZXNzT2ZGbGFn
cygpIHsgcmV0dXJuICZtX2J5dGVjb2RlT2Zmc2V0QW5kRmxhZ3M7IH0KICAgICB2b2lkKiBhZGRy
ZXNzT2ZTcGVjaWFsRmFzdFBhdGhDb3VudCgpIHsgcmV0dXJuICZtX3NwZWNpYWxGYXN0UGF0aENv
dW50OyB9CisgICAgCisgICAgLy8gU2V0cyAoSW50MzJPdmVyZmxvdyB8IEludDUyT3ZlcmZsb3cg
fCBOb25OZWdaZXJvRG91YmxlIHwgTmVnWmVyb0RvdWJsZSkgaWYgaXQgc2VlcyBhCisgICAgLy8g
ZG91YmxlLiBTZXRzIE5vbk51bWJlciBpZiBpdCBzZWVzIGEgbm9uLW51bWJlci4KKyAgICB2b2lk
IGVtaXREZXRlY3RCaXRzTGlnaHQoQ0NhbGxIZWxwZXJzJiwgSlNWYWx1ZVJlZ3MsIFRhZ1JlZ2lz
dGVyc01vZGUgPSBIYXZlVGFnUmVnaXN0ZXJzKTsKKyAgICAKKyAgICB2b2lkIGRldGVjdEJpdHNM
aWdodChKU1ZhbHVlIHZhbHVlKQorICAgIHsKKyAgICAgICAgaWYgKHZhbHVlLmlzSW50MzIoKSkK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgaWYgKHZhbHVlLmlzTnVtYmVyKCkpIHsKKyAg
ICAgICAgICAgIG1fYnl0ZWNvZGVPZmZzZXRBbmRGbGFncyB8PSBJbnQzMk92ZXJmbG93IHwgSW50
NTJPdmVyZmxvdyB8IE5vbk5lZ1plcm9Eb3VibGUgfCBOZWdaZXJvRG91YmxlOworICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIG1fYnl0ZWNvZGVPZmZzZXRBbmRGbGFncyB8
PSBOb25OdW1iZXI7CisgICAgfQorICAgIAorICAgIC8vIFNldHMgKEludDMyT3ZlcmZsb3cgfCBJ
bnQ1Mk92ZXJmbG93IHwgTm9uTmVnWmVyb0RvdWJsZSB8IE5lZ1plcm9Eb3VibGUpLgorICAgIHZv
aWQgZW1pdFNldERvdWJsZShDQ2FsbEhlbHBlcnMmKTsKKyAgICAKKyAgICAvLyBTZXRzIE5vbk51
bWJlci4KKyAgICB2b2lkIGVtaXRTZXROb25OdW1iZXIoQ0NhbGxIZWxwZXJzJik7CiAKIHByaXZh
dGU6CiAgICAgYm9vbCBoYXNCaXRzKGludCBtYXNrKSBjb25zdCB7IHJldHVybiBtX2J5dGVjb2Rl
T2Zmc2V0QW5kRmxhZ3MgJiBtYXNrOyB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0J5dGVDb2RlUGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAkocmV2aXNpb24gMjAwNTE3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTkwNiw0MCArOTA2LDU4IEBAIHByaXZhdGU6CiAgICAgICAgIGlmICghaXNYODYoKSAmJiBu
b2RlLT5vcCgpID09IEFyaXRoTW9kKQogICAgICAgICAgICAgcmV0dXJuIG5vZGU7CiAKLSAgICAg
ICAgaWYgKCFtX2lubGluZVN0YWNrVG9wLT5tX3Byb2ZpbGVkQmxvY2stPmxpa2VseVRvVGFrZVNs
b3dDYXNlKG1fY3VycmVudEluZGV4KSkKLSAgICAgICAgICAgIHJldHVybiBub2RlOworICAgICAg
ICBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlID0gbV9pbmxpbmVTdGFja1RvcC0+bV9wcm9m
aWxlZEJsb2NrLT5yZXN1bHRQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQobV9jdXJyZW50SW5kZXgp
OworICAgICAgICBpZiAocmVzdWx0UHJvZmlsZSkgeworICAgICAgICAgICAgc3dpdGNoIChub2Rl
LT5vcCgpKSB7CisgICAgICAgICAgICBjYXNlIEFyaXRoQWRkOgorICAgICAgICAgICAgY2FzZSBB
cml0aFN1YjoKKyAgICAgICAgICAgIGNhc2UgVmFsdWVBZGQ6CisgICAgICAgICAgICAgICAgaWYg
KHJlc3VsdFByb2ZpbGUtPmRpZE9ic2VydmVEb3VibGUoKSkKKyAgICAgICAgICAgICAgICAgICAg
bm9kZS0+bWVyZ2VGbGFncyhOb2RlTWF5SGF2ZURvdWJsZVJlc3VsdCk7CisgICAgICAgICAgICAg
ICAgaWYgKHJlc3VsdFByb2ZpbGUtPmRpZE9ic2VydmVOb25OdW1iZXIoKSkKKyAgICAgICAgICAg
ICAgICAgICAgbm9kZS0+bWVyZ2VGbGFncyhOb2RlTWF5SGF2ZU5vbk51bWJlclJlc3VsdCk7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBjYXNl
IEFyaXRoTXVsOiB7CisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdFByb2ZpbGUtPmRpZE9ic2Vy
dmVJbnQ1Mk92ZXJmbG93KCkpCisgICAgICAgICAgICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3Mo
Tm9kZU1heU92ZXJmbG93SW50NTIpOworICAgICAgICAgICAgICAgIGlmIChyZXN1bHRQcm9maWxl
LT5kaWRPYnNlcnZlSW50MzJPdmVyZmxvdygpIHx8IG1faW5saW5lU3RhY2tUb3AtPm1fZXhpdFBy
b2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJyZW50SW5kZXgsIE92ZXJmbG93KSkKKyAgICAgICAgICAg
ICAgICAgICAgbm9kZS0+bWVyZ2VGbGFncyhOb2RlTWF5T3ZlcmZsb3dJbnQzMkluQmFzZWxpbmUp
OworICAgICAgICAgICAgICAgIGlmIChyZXN1bHRQcm9maWxlLT5kaWRPYnNlcnZlTmVnWmVyb0Rv
dWJsZSgpIHx8IG1faW5saW5lU3RhY2tUb3AtPm1fZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobV9j
dXJyZW50SW5kZXgsIE5lZ2F0aXZlWmVybykpCisgICAgICAgICAgICAgICAgICAgIG5vZGUtPm1l
cmdlRmxhZ3MoTm9kZU1heU5lZ1plcm9JbkJhc2VsaW5lKTsKKyAgICAgICAgICAgICAgICBpZiAo
cmVzdWx0UHJvZmlsZS0+ZGlkT2JzZXJ2ZURvdWJsZSgpKQorICAgICAgICAgICAgICAgICAgICBu
b2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlIYXZlRG91YmxlUmVzdWx0KTsKKyAgICAgICAgICAgICAg
ICBpZiAocmVzdWx0UHJvZmlsZS0+ZGlkT2JzZXJ2ZU5vbk51bWJlcigpKQorICAgICAgICAgICAg
ICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlIYXZlTm9uTnVtYmVyUmVzdWx0KTsKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAg
ICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9
CisgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIHN3aXRjaCAobm9kZS0+b3AoKSkgewotICAg
ICAgICBjYXNlIFVJbnQzMlRvTnVtYmVyOgotICAgICAgICBjYXNlIEFyaXRoQWRkOgotICAgICAg
ICBjYXNlIEFyaXRoU3ViOgotICAgICAgICBjYXNlIFZhbHVlQWRkOgotICAgICAgICBjYXNlIEFy
aXRoTW9kOiAvLyBmb3IgQXJpdGhNb2QgIk1heU92ZXJmbG93IiBtZWFucyB3ZSB0cmllZCB0byBk
aXZpZGUgYnkgemVybywgb3Igd2Ugc2F3IGRvdWJsZS4KLSAgICAgICAgICAgIG5vZGUtPm1lcmdl
RmxhZ3MoTm9kZU1heU92ZXJmbG93SW50MzJJbkJhc2VsaW5lKTsKLSAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICAgICAgCi0gICAgICAgIGNhc2UgQXJpdGhOZWdhdGU6Ci0gICAgICAgICAgICAv
LyBDdXJyZW50bHkgd2UgY2FuJ3QgdGVsbCB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIGEgbmVnYXRp
b24gb3ZlcmZsb3dpbmcKLSAgICAgICAgICAgIC8vIChpLmUuIC0oMSA8PCAzMSkpIG9yIGdlbmVy
YXRpbmcgbmVnYXRpdmUgemVybyAoaS5lLiAtMCkuIElmIGl0IHRvb2sgc2xvdwotICAgICAgICAg
ICAgLy8gcGF0aCB0aGVuIHdlIGFzc3VtZSB0aGF0IGl0IGRpZCBib3RoIG9mIHRob3NlIHRoaW5n
cy4KLSAgICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1heU92ZXJmbG93SW50MzJJbkJh
c2VsaW5lKTsKLSAgICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1heU5lZ1plcm9JbkJh
c2VsaW5lKTsKLSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIGNhc2UgQXJpdGhNdWw6IHsK
LSAgICAgICAgICAgIFJlc3VsdFByb2ZpbGUmIHJlc3VsdFByb2ZpbGUgPSAqbV9pbmxpbmVTdGFj
a1RvcC0+bV9wcm9maWxlZEJsb2NrLT5yZXN1bHRQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQobV9j
dXJyZW50SW5kZXgpOwotICAgICAgICAgICAgaWYgKHJlc3VsdFByb2ZpbGUuZGlkT2JzZXJ2ZUlu
dDUyT3ZlcmZsb3coKSkKLSAgICAgICAgICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlP
dmVyZmxvd0ludDUyKTsKLSAgICAgICAgICAgIGlmIChyZXN1bHRQcm9maWxlLmRpZE9ic2VydmVJ
bnQzMk92ZXJmbG93KCkgfHwgbV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5oYXNFeGl0
U2l0ZShtX2N1cnJlbnRJbmRleCwgT3ZlcmZsb3cpKQorICAgICAgICBpZiAobV9pbmxpbmVTdGFj
a1RvcC0+bV9wcm9maWxlZEJsb2NrLT5saWtlbHlUb1Rha2VTbG93Q2FzZShtX2N1cnJlbnRJbmRl
eCkpIHsKKyAgICAgICAgICAgIHN3aXRjaCAobm9kZS0+b3AoKSkgeworICAgICAgICAgICAgY2Fz
ZSBVSW50MzJUb051bWJlcjoKKyAgICAgICAgICAgIGNhc2UgQXJpdGhBZGQ6CisgICAgICAgICAg
ICBjYXNlIEFyaXRoU3ViOgorICAgICAgICAgICAgY2FzZSBWYWx1ZUFkZDoKKyAgICAgICAgICAg
IGNhc2UgQXJpdGhNb2Q6IC8vIGZvciBBcml0aE1vZCAiTWF5T3ZlcmZsb3ciIG1lYW5zIHdlIHRy
aWVkIHRvIGRpdmlkZSBieSB6ZXJvLCBvciB3ZSBzYXcgZG91YmxlLgorICAgICAgICAgICAgICAg
IG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1heU92ZXJmbG93SW50MzJJbkJhc2VsaW5lKTsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGNhc2UgQXJp
dGhOZWdhdGU6CisgICAgICAgICAgICAgICAgLy8gQ3VycmVudGx5IHdlIGNhbid0IHRlbGwgdGhl
IGRpZmZlcmVuY2UgYmV0d2VlbiBhIG5lZ2F0aW9uIG92ZXJmbG93aW5nCisgICAgICAgICAgICAg
ICAgLy8gKGkuZS4gLSgxIDw8IDMxKSkgb3IgZ2VuZXJhdGluZyBuZWdhdGl2ZSB6ZXJvIChpLmUu
IC0wKS4gSWYgaXQgdG9vayBzbG93CisgICAgICAgICAgICAgICAgLy8gcGF0aCB0aGVuIHdlIGFz
c3VtZSB0aGF0IGl0IGRpZCBib3RoIG9mIHRob3NlIHRoaW5ncy4KICAgICAgICAgICAgICAgICBu
b2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlPdmVyZmxvd0ludDMySW5CYXNlbGluZSk7Ci0gICAgICAg
ICAgICBpZiAocmVzdWx0UHJvZmlsZS5kaWRPYnNlcnZlTmVnWmVyb0RvdWJsZSgpIHx8IG1faW5s
aW5lU3RhY2tUb3AtPm1fZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJyZW50SW5kZXgsIE5l
Z2F0aXZlWmVybykpCiAgICAgICAgICAgICAgICAgbm9kZS0+bWVyZ2VGbGFncyhOb2RlTWF5TmVn
WmVyb0luQmFzZWxpbmUpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLQotICAgICAg
ICBkZWZhdWx0OgotICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAg
IAorICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIH0KICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgcmV0dXJuIG5vZGU7CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAJKHJldmlzaW9uIDIw
MDUxNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTIzNiw4ICsyMzYsNyBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIEFy
aXRoTXVsOiB7CiAgICAgICAgICAgICBFZGdlJiBsZWZ0Q2hpbGQgPSBub2RlLT5jaGlsZDEoKTsK
ICAgICAgICAgICAgIEVkZ2UmIHJpZ2h0Q2hpbGQgPSBub2RlLT5jaGlsZDIoKTsKLSAgICAgICAg
ICAgIGlmIChOb2RlOjpzaG91bGRTcGVjdWxhdGVVbnR5cGVkRm9yQXJpdGhtZXRpYyhsZWZ0Q2hp
bGQubm9kZSgpLCByaWdodENoaWxkLm5vZGUoKSkKLSAgICAgICAgICAgICAgICAmJiBtX2dyYXBo
Lmhhc0V4aXRTaXRlKG5vZGUtPm9yaWdpbi5zZW1hbnRpYywgQmFkVHlwZSkpIHsKKyAgICAgICAg
ICAgIGlmIChOb2RlOjpzaG91bGRTcGVjdWxhdGVVbnR5cGVkRm9yQXJpdGhtZXRpYyhsZWZ0Q2hp
bGQubm9kZSgpLCByaWdodENoaWxkLm5vZGUoKSkpIHsKICAgICAgICAgICAgICAgICBmaXhFZGdl
PFVudHlwZWRVc2U+KGxlZnRDaGlsZCk7CiAgICAgICAgICAgICAgICAgZml4RWRnZTxVbnR5cGVk
VXNlPihyaWdodENoaWxkKTsKICAgICAgICAgICAgICAgICBub2RlLT5zZXRSZXN1bHQoTm9kZVJl
c3VsdEpTKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguY3BwCShyZXZp
c2lvbiAyMDA1MTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTQ0Niw0NiArMTQ0Niw1MCBAQCB2b2lkIEdyYXBoOjplbnN1cmVO
YXR1cmFsTG9vcHMoKQogICAgICAgICBtX25hdHVyYWxMb29wcyA9IHN0ZDo6bWFrZV91bmlxdWU8
TmF0dXJhbExvb3BzPigqdGhpcyk7CiB9CiAKLVZhbHVlUHJvZmlsZSogR3JhcGg6OnZhbHVlUHJv
ZmlsZUZvcihOb2RlKiBub2RlKQorTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZSBHcmFwaDo6
bWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZUZvcihOb2RlKiBub2RlKQogewotICAgIGlmICgh
bm9kZSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgd2hpbGUgKG5vZGUpIHsKKyAgICAg
ICAgQ29kZUJsb2NrKiBwcm9maWxlZEJsb2NrID0gYmFzZWxpbmVDb2RlQmxvY2tGb3Iobm9kZS0+
b3JpZ2luLnNlbWFudGljKTsKICAgICAgICAgCi0gICAgQ29kZUJsb2NrKiBwcm9maWxlZEJsb2Nr
ID0gYmFzZWxpbmVDb2RlQmxvY2tGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKTsKKyAgICAgICAg
aWYgKG5vZGUtPmhhc0xvY2FsKCp0aGlzKSkgeworICAgICAgICAgICAgVmFsdWVQcm9maWxlKiBy
ZXN1bHQgPSBbJl0gKCkgLT4gVmFsdWVQcm9maWxlKiB7CisgICAgICAgICAgICAgICAgaWYgKCFu
b2RlLT5sb2NhbCgpLmlzQXJndW1lbnQoKSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CisgICAgICAgICAgICAgICAgaW50IGFyZ3VtZW50ID0gbm9kZS0+bG9jYWwoKS50b0Fy
Z3VtZW50KCk7CisgICAgICAgICAgICAgICAgTm9kZSogYXJndW1lbnROb2RlID0gbV9hcmd1bWVu
dHNbYXJndW1lbnRdOworICAgICAgICAgICAgICAgIGlmICghYXJndW1lbnROb2RlKQorICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgICAgICAgICBpZiAobm9kZS0+
dmFyaWFibGVBY2Nlc3NEYXRhKCkgIT0gYXJndW1lbnROb2RlLT52YXJpYWJsZUFjY2Vzc0RhdGEo
KSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgICAgICAgICAg
cmV0dXJuIHByb2ZpbGVkQmxvY2stPnZhbHVlUHJvZmlsZUZvckFyZ3VtZW50KGFyZ3VtZW50KTsK
KyAgICAgICAgICAgIH0oKTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQpCisgICAgICAgICAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKG5vZGUtPm9w
KCkgPT0gR2V0TG9jYWwpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gTWV0aG9kT2ZHZXR0aW5n
QVZhbHVlUHJvZmlsZTo6ZnJvbUxhenlPcGVyYW5kKAorICAgICAgICAgICAgICAgICAgICBwcm9m
aWxlZEJsb2NrLAorICAgICAgICAgICAgICAgICAgICBMYXp5T3BlcmFuZFZhbHVlUHJvZmlsZUtl
eSgKKyAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUtPm9yaWdpbi5zZW1hbnRpYy5ieXRlY29k
ZUluZGV4LCBub2RlLT5sb2NhbCgpKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KICAgICAg
ICAgCi0gICAgaWYgKG5vZGUtPmhhc0xvY2FsKCp0aGlzKSkgewotICAgICAgICBpZiAoIW5vZGUt
PmxvY2FsKCkuaXNBcmd1bWVudCgpKQotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAg
ICAgIGludCBhcmd1bWVudCA9IG5vZGUtPmxvY2FsKCkudG9Bcmd1bWVudCgpOwotICAgICAgICBO
b2RlKiBhcmd1bWVudE5vZGUgPSBtX2FyZ3VtZW50c1thcmd1bWVudF07Ci0gICAgICAgIGlmICgh
YXJndW1lbnROb2RlKQotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAgIGlmIChu
b2RlLT52YXJpYWJsZUFjY2Vzc0RhdGEoKSAhPSBhcmd1bWVudE5vZGUtPnZhcmlhYmxlQWNjZXNz
RGF0YSgpKQotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAgIHJldHVybiBwcm9m
aWxlZEJsb2NrLT52YWx1ZVByb2ZpbGVGb3JBcmd1bWVudChhcmd1bWVudCk7Ci0gICAgfQorICAg
ICAgICBpZiAobm9kZS0+aGFzSGVhcFByZWRpY3Rpb24oKSkKKyAgICAgICAgICAgIHJldHVybiBw
cm9maWxlZEJsb2NrLT52YWx1ZVByb2ZpbGVGb3JCeXRlY29kZU9mZnNldChub2RlLT5vcmlnaW4u
c2VtYW50aWMuYnl0ZWNvZGVJbmRleCk7CiAgICAgICAgIAotICAgIGlmIChub2RlLT5oYXNIZWFw
UHJlZGljdGlvbigpKQotICAgICAgICByZXR1cm4gcHJvZmlsZWRCbG9jay0+dmFsdWVQcm9maWxl
Rm9yQnl0ZWNvZGVPZmZzZXQobm9kZS0+b3JpZ2luLnNlbWFudGljLmJ5dGVjb2RlSW5kZXgpOwor
ICAgICAgICBpZiAoUmVzdWx0UHJvZmlsZSogcmVzdWx0ID0gcHJvZmlsZWRCbG9jay0+cmVzdWx0
UHJvZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KG5vZGUtPm9yaWdpbi5zZW1hbnRpYy5ieXRlY29kZUlu
ZGV4KSkKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgIAotICAgIHJldHVybiBu
dWxscHRyOwotfQotCi1NZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlIEdyYXBoOjptZXRob2RP
ZkdldHRpbmdBVmFsdWVQcm9maWxlRm9yKE5vZGUqIG5vZGUpCi17Ci0gICAgaWYgKCFub2RlKQot
ICAgICAgICByZXR1cm4gTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZSgpOwotICAgIAotICAg
IGlmIChWYWx1ZVByb2ZpbGUqIHZhbHVlUHJvZmlsZSA9IHZhbHVlUHJvZmlsZUZvcihub2RlKSkK
LSAgICAgICAgcmV0dXJuIE1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUodmFsdWVQcm9maWxl
KTsKLSAgICAKLSAgICBpZiAobm9kZS0+b3AoKSA9PSBHZXRMb2NhbCkgewotICAgICAgICBDb2Rl
QmxvY2sqIHByb2ZpbGVkQmxvY2sgPSBiYXNlbGluZUNvZGVCbG9ja0Zvcihub2RlLT5vcmlnaW4u
c2VtYW50aWMpOwotICAgICAgICAKLSAgICAgICAgcmV0dXJuIE1ldGhvZE9mR2V0dGluZ0FWYWx1
ZVByb2ZpbGU6OmZyb21MYXp5T3BlcmFuZCgKLSAgICAgICAgICAgIHByb2ZpbGVkQmxvY2ssCi0g
ICAgICAgICAgICBMYXp5T3BlcmFuZFZhbHVlUHJvZmlsZUtleSgKLSAgICAgICAgICAgICAgICBu
b2RlLT5vcmlnaW4uc2VtYW50aWMuYnl0ZWNvZGVJbmRleCwgbm9kZS0+bG9jYWwoKSkpOworICAg
ICAgICBzd2l0Y2ggKG5vZGUtPm9wKCkpIHsKKyAgICAgICAgY2FzZSBJZGVudGl0eToKKyAgICAg
ICAgY2FzZSBWYWx1ZVJlcDoKKyAgICAgICAgY2FzZSBEb3VibGVSZXA6CisgICAgICAgIGNhc2Ug
SW50NTJSZXA6CisgICAgICAgICAgICBub2RlID0gbm9kZS0+Y2hpbGQxKCkubm9kZSgpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBub2RlID0gbnVs
bHB0cjsKKyAgICAgICAgfQogICAgIH0KICAgICAKICAgICByZXR1cm4gTWV0aG9kT2ZHZXR0aW5n
QVZhbHVlUHJvZmlsZSgpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFw
aC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaAko
cmV2aXNpb24gMjAwNTE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5o
CSh3b3JraW5nIGNvcHkpCkBAIC00MDAsNyArNDAwLDYgQEAgcHVibGljOgogICAgICAgICByZXR1
cm4gaGFzRXhpdFNpdGUobm9kZS0+b3JpZ2luLnNlbWFudGljLCBleGl0S2luZCk7CiAgICAgfQog
ICAgIAotICAgIFZhbHVlUHJvZmlsZSogdmFsdWVQcm9maWxlRm9yKE5vZGUqKTsKICAgICBNZXRo
b2RPZkdldHRpbmdBVmFsdWVQcm9maWxlIG1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGVGb3Io
Tm9kZSopOwogICAgIAogICAgIEJsb2NrSW5kZXggbnVtQmxvY2tzKCkgY29uc3QgeyByZXR1cm4g
bV9ibG9ja3Muc2l6ZSgpOyB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05v
ZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAko
cmV2aXNpb24gMjAwNTE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTk1MCw2ICs5NTAsMjEgQEAgc3RydWN0IE5vZGUgewogICAgICAg
ICByZXR1cm4gcmVzdWx0ICYgfk5vZGVCeXRlY29kZU5lZWRzTmVnWmVybzsKICAgICB9CiAKKyAg
ICBib29sIG1heUhhdmVOb25JbnRSZXN1bHQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fZmxh
Z3MgJiBOb2RlTWF5SGF2ZU5vbkludFJlc3VsdDsKKyAgICB9CisgICAgCisgICAgYm9vbCBtYXlI
YXZlRG91YmxlUmVzdWx0KCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX2ZsYWdzICYgTm9kZU1h
eUhhdmVEb3VibGVSZXN1bHQ7CisgICAgfQorICAgIAorICAgIGJvb2wgbWF5SGF2ZU5vbk51bWJl
clJlc3VsdCgpCisgICAgeworICAgICAgICByZXR1cm4gbV9mbGFncyAmIE5vZGVNYXlIYXZlTm9u
TnVtYmVyUmVzdWx0OworICAgIH0KKwogICAgIGJvb2wgaGFzQ29uc3RhbnRCdWZmZXIoKQogICAg
IHsKICAgICAgICAgcmV0dXJuIG9wKCkgPT0gTmV3QXJyYXlCdWZmZXI7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVGbGFncy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlRmxhZ3MuY3BwCShyZXZpc2lvbiAyMDA1MTcpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVGbGFncy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTg1LDYgKzg1LDEyIEBAIHZvaWQgZHVtcE5vZGVGbGFncyhQcmludFN0cmVhbSYgYWN0
dWFsT3UKICAgICAgICAgICAgIG91dC5wcmludChjb21tYSwgIlVzZUFzT3RoZXIiKTsKICAgICB9
CiAKKyAgICBpZiAoZmxhZ3MgJiBOb2RlTWF5SGF2ZURvdWJsZVJlc3VsdCkKKyAgICAgICAgb3V0
LnByaW50KGNvbW1hLCAiTWF5SGF2ZURvdWJsZVJlc3VsdCIpOworCisgICAgaWYgKGZsYWdzICYg
Tm9kZU1heUhhdmVOb25OdW1iZXJSZXN1bHQpCisgICAgICAgIG91dC5wcmludChjb21tYSwgIk1h
eUhhdmVOb25OdW1iZXJSZXN1bHQiKTsKKwogICAgIGlmIChmbGFncyAmIE5vZGVNYXlPdmVyZmxv
d0ludDUyKQogICAgICAgICBvdXQucHJpbnQoY29tbWEsICJNYXlPdmVyZmxvd0ludDUyIik7CiAK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZUZsYWdzLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlRmxhZ3MuaAkocmV2aXNpb24g
MjAwNTE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlRmxhZ3MuaAkod29y
a2luZyBjb3B5KQpAQCAtNDgsMjggKzQ4LDMwIEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2Ug
REZHIHsKICNkZWZpbmUgTm9kZUhhc1ZhckFyZ3MgICAgICAgICAgICAgICAgICAgMHgwMDEwCiAg
ICAgCiAjZGVmaW5lIE5vZGVCZWhhdmlvck1hc2sgICAgICAgICAgICAgICAgIDB4MDdlMAorI2Rl
ZmluZSBOb2RlTWF5SGF2ZURvdWJsZVJlc3VsdCAgICAgICAgICAweDAwMjAKICNkZWZpbmUgTm9k
ZU1heU92ZXJmbG93SW50NTIgICAgICAgICAgICAgMHgwMDQwCiAjZGVmaW5lIE5vZGVNYXlPdmVy
Zmxvd0ludDMySW5CYXNlbGluZSAgIDB4MDA4MAogI2RlZmluZSBOb2RlTWF5T3ZlcmZsb3dJbnQz
MkluREZHICAgICAgICAweDAxMDAKICNkZWZpbmUgTm9kZU1heU5lZ1plcm9JbkJhc2VsaW5lICAg
ICAgICAgMHgwMjAwCiAjZGVmaW5lIE5vZGVNYXlOZWdaZXJvSW5ERkcgICAgICAgICAgICAgIDB4
MDQwMAorI2RlZmluZSBOb2RlTWF5SGF2ZU5vbk51bWJlclJlc3VsdCAgICAgICAweDA4MDAKKyNk
ZWZpbmUgTm9kZU1heUhhdmVOb25JbnRSZXN1bHQgICAgICAgICAgKE5vZGVNYXlIYXZlRG91Ymxl
UmVzdWx0IHwgTm9kZU1heUhhdmVOb25OdW1iZXJSZXN1bHQpCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIAotI2RlZmluZSBOb2RlQnl0ZWNvZGVCYWNrUHJvcE1hc2sgICAgICAgICAw
eGY4MDAKLSNkZWZpbmUgTm9kZUJ5dGVjb2RlVXNlQm90dG9tICAgICAgICAgICAgMHgwMDAwCi0j
ZGVmaW5lIE5vZGVCeXRlY29kZVVzZXNBc051bWJlciAgICAgICAgIDB4MDgwMCAvLyBUaGUgcmVz
dWx0IG9mIHRoaXMgY29tcHV0YXRpb24gbWF5IGJlIHVzZWQgaW4gYSBjb250ZXh0IHRoYXQgb2Jz
ZXJ2ZXMgZnJhY3Rpb25hbCwgb3IgYmlnZ2VyLXRoYW4taW50MzIsIHJlc3VsdHMuCi0jZGVmaW5l
IE5vZGVCeXRlY29kZU5lZWRzTmVnWmVybyAgICAgICAgIDB4MTAwMCAvLyBUaGUgcmVzdWx0IG9m
IHRoaXMgY29tcHV0YXRpb24gbWF5IGJlIHVzZWQgaW4gYSBjb250ZXh0IHRoYXQgb2JzZXJ2ZXMg
LTAuCi0jZGVmaW5lIE5vZGVCeXRlY29kZVVzZXNBc090aGVyICAgICAgICAgIDB4MjAwMCAvLyBU
aGUgcmVzdWx0IG9mIHRoaXMgY29tcHV0YXRpb24gbWF5IGJlIHVzZWQgaW4gYSBjb250ZXh0IHRo
YXQgZGlzdGluZ3Vpc2hlcyBiZXR3ZWVuIE5hTiBhbmQgb3RoZXIgdGhpbmdzIChsaWtlIHVuZGVm
aW5lZCkuCi0jZGVmaW5lIE5vZGVCeXRlY29kZVVzZXNBc1ZhbHVlICAgICAgICAgIChOb2RlQnl0
ZWNvZGVVc2VzQXNOdW1iZXIgfCBOb2RlQnl0ZWNvZGVOZWVkc05lZ1plcm8gfCBOb2RlQnl0ZWNv
ZGVVc2VzQXNPdGhlcikKLSNkZWZpbmUgTm9kZUJ5dGVjb2RlVXNlc0FzSW50ICAgICAgICAgICAg
MHg0MDAwIC8vIFRoZSByZXN1bHQgb2YgdGhpcyBjb21wdXRhdGlvbiBpcyBrbm93biB0byBiZSB1
c2VkIGluIGEgY29udGV4dCB0aGF0IHByZWZlcnMsIGJ1dCBkb2VzIG5vdCByZXF1aXJlLCBpbnRl
Z2VyIHZhbHVlcy4KLSNkZWZpbmUgTm9kZUJ5dGVjb2RlVXNlc0FzQXJyYXlJbmRleCAgICAgMHg4
MDAwIC8vIFRoZSByZXN1bHQgb2YgdGhpcyBjb21wdXRhdGlvbiBpcyBrbm93biB0byBiZSB1c2Vk
IGluIGEgY29udGV4dCB0aGF0IHN0cm9uZ2x5IHByZWZlcnMgaW50ZWdlciB2YWx1ZXMsIHRvIHRo
ZSBwb2ludCB0aGF0IHdlIHNob3VsZCBhdm9pZCB1c2luZyBkb3VibGVzIGlmIGF0IGFsbCBwb3Nz
aWJsZS4KKyNkZWZpbmUgTm9kZUJ5dGVjb2RlQmFja1Byb3BNYXNrICAgICAgICAweDFmMDAwCisj
ZGVmaW5lIE5vZGVCeXRlY29kZVVzZUJvdHRvbSAgICAgICAgICAgMHgwMDAwMAorI2RlZmluZSBO
b2RlQnl0ZWNvZGVVc2VzQXNOdW1iZXIgICAgICAgIDB4MDEwMDAgLy8gVGhlIHJlc3VsdCBvZiB0
aGlzIGNvbXB1dGF0aW9uIG1heSBiZSB1c2VkIGluIGEgY29udGV4dCB0aGF0IG9ic2VydmVzIGZy
YWN0aW9uYWwsIG9yIGJpZ2dlci10aGFuLWludDMyLCByZXN1bHRzLgorI2RlZmluZSBOb2RlQnl0
ZWNvZGVOZWVkc05lZ1plcm8gICAgICAgIDB4MDIwMDAgLy8gVGhlIHJlc3VsdCBvZiB0aGlzIGNv
bXB1dGF0aW9uIG1heSBiZSB1c2VkIGluIGEgY29udGV4dCB0aGF0IG9ic2VydmVzIC0wLgorI2Rl
ZmluZSBOb2RlQnl0ZWNvZGVVc2VzQXNPdGhlciAgICAgICAgIDB4MDQwMDAgLy8gVGhlIHJlc3Vs
dCBvZiB0aGlzIGNvbXB1dGF0aW9uIG1heSBiZSB1c2VkIGluIGEgY29udGV4dCB0aGF0IGRpc3Rp
bmd1aXNoZXMgYmV0d2VlbiBOYU4gYW5kIG90aGVyIHRoaW5ncyAobGlrZSB1bmRlZmluZWQpLgor
I2RlZmluZSBOb2RlQnl0ZWNvZGVVc2VzQXNWYWx1ZSAgICAgICAgIChOb2RlQnl0ZWNvZGVVc2Vz
QXNOdW1iZXIgfCBOb2RlQnl0ZWNvZGVOZWVkc05lZ1plcm8gfCBOb2RlQnl0ZWNvZGVVc2VzQXNP
dGhlcikKKyNkZWZpbmUgTm9kZUJ5dGVjb2RlVXNlc0FzSW50ICAgICAgICAgICAweDA4MDAwIC8v
IFRoZSByZXN1bHQgb2YgdGhpcyBjb21wdXRhdGlvbiBpcyBrbm93biB0byBiZSB1c2VkIGluIGEg
Y29udGV4dCB0aGF0IHByZWZlcnMsIGJ1dCBkb2VzIG5vdCByZXF1aXJlLCBpbnRlZ2VyIHZhbHVl
cy4KKyNkZWZpbmUgTm9kZUJ5dGVjb2RlVXNlc0FzQXJyYXlJbmRleCAgICAweDEwMDAwIC8vIFRo
ZSByZXN1bHQgb2YgdGhpcyBjb21wdXRhdGlvbiBpcyBrbm93biB0byBiZSB1c2VkIGluIGEgY29u
dGV4dCB0aGF0IHN0cm9uZ2x5IHByZWZlcnMgaW50ZWdlciB2YWx1ZXMsIHRvIHRoZSBwb2ludCB0
aGF0IHdlIHNob3VsZCBhdm9pZCB1c2luZyBkb3VibGVzIGlmIGF0IGFsbCBwb3NzaWJsZS4KIAog
I2RlZmluZSBOb2RlQXJpdGhGbGFnc01hc2sgICAgICAgICAgICAgICAoTm9kZUJlaGF2aW9yTWFz
ayB8IE5vZGVCeXRlY29kZUJhY2tQcm9wTWFzaykKIAotI2RlZmluZSBOb2RlSXNGbHVzaGVkICAg
ICAgICAgICAgICAgICAgIDB4MTAwMDAgLy8gQ29tcHV0ZWQgYnkgQ1BTUmV0aHJlYWRpbmdQaGFz
ZSwgd2lsbCB0ZWxsIHlvdSB3aGljaCBsb2NhbCBub2RlcyBhcmUgYmFja3dhcmRzLXJlYWNoYWJs
ZSBmcm9tIGEgRmx1c2guCisjZGVmaW5lIE5vZGVJc0ZsdXNoZWQgICAgICAgICAgICAgICAgICAg
MHgyMDAwMCAvLyBDb21wdXRlZCBieSBDUFNSZXRocmVhZGluZ1BoYXNlLCB3aWxsIHRlbGwgeW91
IHdoaWNoIGxvY2FsIG5vZGVzIGFyZSBiYWNrd2FyZHMtcmVhY2hhYmxlIGZyb20gYSBGbHVzaC4K
IAotI2RlZmluZSBOb2RlTWlzY0ZsYWcxICAgICAgICAgICAgICAgICAgIDB4MjAwMDAKLSNkZWZp
bmUgTm9kZU1pc2NGbGFnMiAgICAgICAgICAgICAgICAgICAweDQwMDAwCi0jZGVmaW5lIE5vZGVN
aXNjRmxhZzMgICAgICAgICAgICAgICAgICAgMHg4MDAwMAorI2RlZmluZSBOb2RlTWlzY0ZsYWcx
ICAgICAgICAgICAgICAgICAgIDB4NDAwMDAKKyNkZWZpbmUgTm9kZU1pc2NGbGFnMiAgICAgICAg
ICAgICAgICAgICAweDgwMDAwCiAKIHR5cGVkZWYgdWludDMyX3QgTm9kZUZsYWdzOwogCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlcjY0LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlcjY0
LmNwcAkocmV2aXNpb24gMjAwNTE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdP
U1JFeGl0Q29tcGlsZXI2NC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEzLTIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEzLTIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMzUs
MTYgKzEzNSwxNiBAQCB2b2lkIE9TUkV4aXRDb21waWxlcjo6Y29tcGlsZUV4aXQoY29uc3QgCiAg
ICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIGlmICghIWV4aXQubV92YWx1ZVByb2ZpbGUpIHsK
LSAgICAgICAgICAgIEVuY29kZWRKU1ZhbHVlKiBidWNrZXQgPSBleGl0Lm1fdmFsdWVQcm9maWxl
LmdldFNwZWNGYWlsQnVja2V0KDApOworICAgICAgICAgICAgTWV0aG9kT2ZHZXR0aW5nQVZhbHVl
UHJvZmlsZSBwcm9maWxlID0gZXhpdC5tX3ZhbHVlUHJvZmlsZTsKICAgICAgICAgICAgIAogICAg
ICAgICAgICAgaWYgKGV4aXQubV9qc1ZhbHVlU291cmNlLmlzQWRkcmVzcygpKSB7CiAgICAgICAg
ICAgICAgICAgLy8gV2UgY2FuJ3QgYmUgc3VyZSB0aGF0IHdlIGhhdmUgYSBzcGFyZSByZWdpc3Rl
ci4gU28gdXNlIHRoZSB0YWdUeXBlTnVtYmVyUmVnaXN0ZXIsCiAgICAgICAgICAgICAgICAgLy8g
c2luY2Ugd2Uga25vdyBob3cgdG8gcmVzdG9yZSBpdC4KICAgICAgICAgICAgICAgICBtX2ppdC5s
b2FkNjQoQXNzZW1ibHlIZWxwZXJzOjpBZGRyZXNzKGV4aXQubV9qc1ZhbHVlU291cmNlLmFzQWRk
cmVzcygpKSwgR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKTsKLSAgICAgICAgICAgICAg
ICBtX2ppdC5zdG9yZTY0KEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3RlciwgYnVja2V0KTsK
KyAgICAgICAgICAgICAgICBwcm9maWxlLmVtaXRSZXBvcnRWYWx1ZShtX2ppdCwgSlNWYWx1ZVJl
Z3MoR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKSk7CiAgICAgICAgICAgICAgICAgbV9q
aXQubW92ZShBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW02NChUYWdUeXBlTnVtYmVyKSwgR1BS
SW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKTsKICAgICAgICAgICAgIH0gZWxzZQotICAgICAg
ICAgICAgICAgIG1faml0LnN0b3JlNjQoZXhpdC5tX2pzVmFsdWVTb3VyY2UuZ3ByKCksIGJ1Y2tl
dCk7CisgICAgICAgICAgICAgICAgcHJvZmlsZS5lbWl0UmVwb3J0VmFsdWUobV9qaXQsIEpTVmFs
dWVSZWdzKGV4aXQubV9qc1ZhbHVlU291cmNlLmdwcigpKSk7CiAgICAgICAgIH0KICAgICB9CiAg
ICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAJ
KHJldmlzaW9uIDIwMDUxNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0
aW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2OCwxNyArMjY4LDYgQEAgRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNOdW1iZXIoc3RhdGljX2Nhc3Q8aW50MzJfdD4oYSA+PiAoYiAmIDB4MWYpKSkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQWRkKEV4ZWNTdGF0ZSog
ZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9w
MikKLXsKLSAgICBWTSogdm0gPSAmZXhlYy0+dm0oKTsKLSAgICBOYXRpdmVDYWxsRnJhbWVUcmFj
ZXIgdHJhY2VyKHZtLCBleGVjKTsKLSAgICAKLSAgICBKU1ZhbHVlIG9wMSA9IEpTVmFsdWU6OmRl
Y29kZShlbmNvZGVkT3AxKTsKLSAgICBKU1ZhbHVlIG9wMiA9IEpTVmFsdWU6OmRlY29kZShlbmNv
ZGVkT3AyKTsKLSAgICAKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQWRkKGV4ZWMsIG9w
MSwgb3AyKSk7Ci19Ci0KIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFs
dWVBZGROb3ROdW1iZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3Ax
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKQogewogICAgIFZNKiB2bSA9ICZleGVjLT52bSgp
OwpAQCAtMzA4LDMyICsyOTcsNiBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblZhCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihhIC8gYikpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsKEV4ZWNTdGF0
ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZE9wMikKLXsKLSAgICBWTSogdm0gPSAmZXhlYy0+dm0oKTsKLSAgICBOYXRpdmVDYWxsRnJhbWVU
cmFjZXIgdHJhY2VyKHZtLCBleGVjKTsKLQotICAgIEpTVmFsdWUgb3AxID0gSlNWYWx1ZTo6ZGVj
b2RlKGVuY29kZWRPcDEpOwotICAgIEpTVmFsdWUgb3AyID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29k
ZWRPcDIpOwotCi0gICAgZG91YmxlIGEgPSBvcDEudG9OdW1iZXIoZXhlYyk7Ci0gICAgZG91Ymxl
IGIgPSBvcDIudG9OdW1iZXIoZXhlYyk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051
bWJlcihhICogYikpOwotfQotCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
blZhbHVlU3ViKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZE9wMikKLXsKLSAgICBWTSogdm0gPSAmZXhlYy0+dm0oKTsKLSAg
ICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBleGVjKTsKLSAgICAKLSAgICBKU1Zh
bHVlIG9wMSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AxKTsKLSAgICBKU1ZhbHVlIG9wMiA9
IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AyKTsKLQotICAgIGRvdWJsZSBhID0gb3AxLnRvTnVt
YmVyKGV4ZWMpOwotICAgIGRvdWJsZSBiID0gb3AyLnRvTnVtYmVyKGV4ZWMpOwotICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoYSAtIGIpKTsKLX0KLQogc3RhdGljIEFMV0FZU19J
TkxJTkUgRW5jb2RlZEpTVmFsdWUgZ2V0QnlWYWwoRXhlY1N0YXRlKiBleGVjLCBKU0NlbGwqIGJh
c2UsIHVpbnQzMl90IGluZGV4KQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaAkocmV2aXNpb24gMjAwNTE3
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTUxLDExICs1MSw4IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uVmEKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVCaXRM
U2hpZnQoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZE9wMikgV1RGX0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBvcGVyYXRpb25WYWx1ZUJpdFJTaGlmdChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSBXVEZfSU5URVJOQUw7CiBFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQml0VVJTaGlmdChFeGVjU3RhdGUq
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSBX
VEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVl
QWRkKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRPcDIpIFdURl9JTlRFUk5BTDsKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uVmFsdWVBZGROb3ROdW1iZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikgV1RGX0lOVEVSTkFMOwogRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZURpdihFeGVjU3RhdGUqLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSBXVEZfSU5U
RVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsKEV4
ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRPcDIpIFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uVmFsdWVTdWIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZE9wMikgV1RGX0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25HZXRCeVZhbChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFByb3BlcnR5KSBXVEZfSU5URVJOQUw7CiBF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5VmFsQ2VsbChFeGVjU3Rh
dGUqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkUHJvcGVydHkpIFdURl9JTlRFUk5B
TDsKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlWYWxBcnJheUlu
dChFeGVjU3RhdGUqLCBKU0FycmF5KiwgaW50MzJfdCkgV1RGX0lOVEVSTkFMOwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJv
cGFnYXRpb25QaGFzZS5jcHAJKHJldmlzaW9uIDIwMDUxNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xOTEsMTMgKzE5MSwxNiBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICAgICAg
Y2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY0ludDUyT25seSk7CiAgICAgICAgICAgICAg
ICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVk
aWN0aW9uKHNwZWN1bGF0ZWREb3VibGVUeXBlRm9yUHJlZGljdGlvbnMobGVmdCwgcmlnaHQpKTsK
LSAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKAotICAgICAgICAgICAgICAgICAgICAhKGxlZnQg
JiAoU3BlY0Z1bGxOdW1iZXIgfCBTcGVjQm9vbGVhbikpCi0gICAgICAgICAgICAgICAgICAgIHx8
ICEocmlnaHQgJiAoU3BlY0Z1bGxOdW1iZXIgfCBTcGVjQm9vbGVhbikpKSB7CisgICAgICAgICAg
ICAgICAgfSBlbHNlIGlmIChpc1N0cmluZ09yU3RyaW5nT2JqZWN0U3BlY3VsYXRpb24obGVmdCkg
JiYgaXNTdHJpbmdPclN0cmluZ09iamVjdFNwZWN1bGF0aW9uKHJpZ2h0KSkgewogICAgICAgICAg
ICAgICAgICAgICAvLyBsZWZ0IG9yIHJpZ2h0IGlzIGRlZmluaXRlbHkgc29tZXRoaW5nIG90aGVy
IHRoYW4gYSBudW1iZXIuCiAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVk
aWN0aW9uKFNwZWNTdHJpbmcpOwotICAgICAgICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAg
ICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjU3RyaW5nIHwgU3BlY0ludDMy
T25seSB8IFNwZWNCeXRlY29kZURvdWJsZSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY0ludDMyT25s
eSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChub2RlLT5tYXlIYXZlRG91YmxlUmVzdWx0KCkp
CisgICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVj
Qnl0ZWNvZGVEb3VibGUpOworICAgICAgICAgICAgICAgICAgICBpZiAobm9kZS0+bWF5SGF2ZU5v
bk51bWJlclJlc3VsdCgpKQorICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJn
ZVByZWRpY3Rpb24oU3BlY1N0cmluZyk7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
fQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTIxMSw4ICsyMTQsMTIgQEAgcHJp
dmF0ZToKICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3Bl
Y0ludDMyT25seSk7CiAgICAgICAgICAgICAgICAgZWxzZSBpZiAobV9ncmFwaC5hZGRTaG91bGRT
cGVjdWxhdGVBbnlJbnQobm9kZSkpCiAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVy
Z2VQcmVkaWN0aW9uKFNwZWNJbnQ1Mk9ubHkpOwotICAgICAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICBlbHNlIGlmIChpc0Z1bGxOdW1iZXJPckJvb2xlYW5TcGVjdWxhdGlvbihsZWZ0
KSAmJiBpc0Z1bGxOdW1iZXJPckJvb2xlYW5TcGVjdWxhdGlvbihyaWdodCkpCiAgICAgICAgICAg
ICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKHNwZWN1bGF0ZWREb3VibGVUeXBl
Rm9yUHJlZGljdGlvbnMobGVmdCwgcmlnaHQpKTsKKyAgICAgICAgICAgICAgICBlbHNlIGlmIChu
b2RlLT5tYXlIYXZlTm9uSW50UmVzdWx0KCkgfHwgKGxlZnQgJiBTcGVjQnl0ZWNvZGVEb3VibGUp
IHx8IChyaWdodCAmIFNwZWNCeXRlY29kZURvdWJsZSkpCisgICAgICAgICAgICAgICAgICAgIGNo
YW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKFNwZWNJbnQzMk9ubHkgfCBTcGVjQnl0ZWNvZGVEb3Vi
bGUpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8
PSBtZXJnZVByZWRpY3Rpb24oU3BlY0ludDMyT25seSk7CiAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgfQpAQCAtMjMwLDggKzIzNywxMCBAQCBwcml2YXRlOgogICAg
ICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY0ludDUy
T25seSk7CiAgICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAg
IGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKHNwZWN1bGF0ZWREb3VibGVUeXBlRm9yUHJlZGlj
dGlvbnMobGVmdCwgcmlnaHQpKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAg
ICAgICB9IGVsc2UgaWYgKG5vZGUtPm1heUhhdmVOb25JbnRSZXN1bHQoKSB8fCAobGVmdCAmIFNw
ZWNCeXRlY29kZURvdWJsZSkgfHwgKHJpZ2h0ICYgU3BlY0J5dGVjb2RlRG91YmxlKSkKICAgICAg
ICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY0ludDMyT25seSB8
IFNwZWNCeXRlY29kZURvdWJsZSk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
ICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjSW50MzJPbmx5KTsKICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC0yNjcsNiArMjc2LDEw
IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBTcGVjdWxhdGVkVHlwZSByaWdodCA9IG5vZGUtPmNo
aWxkMigpLT5wcmVkaWN0aW9uKCk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGlmIChsZWZ0
ICYmIHJpZ2h0KSB7CisgICAgICAgICAgICAgICAgLy8gRklYTUU6IFdlJ3JlIGN1cnJlbnRseSBy
ZWx5aW5nIG9uIHByZWRpY3Rpb24gcHJvcGFnYXRpb24gYW5kIGJhY2t3YXJkcyBwcm9wYWdhdGlv
bgorICAgICAgICAgICAgICAgIC8vIHdoZW5ldmVyIHdlIGNhbiwgYW5kIG9ubHkgZmFsbGluZyBi
YWNrIG9uIHJlc3VsdCBmbGFncyBpZiB0aGF0IGZhaWxzLiBBbmQgdGhlIHJlc3VsdAorICAgICAg
ICAgICAgICAgIC8vIGZsYWdzIGxvZ2ljIGRvZXNuJ3Qga25vdyBob3cgdG8gdXNlIGJhY2t3YXJk
cyBwcm9wYWdhdGlvbi4gV2Ugc2hvdWxkIGdldCByaWQgb2YgdGhlCisgICAgICAgICAgICAgICAg
Ly8gcHJlZGljdGlvbiBwcm9wYWdhdGlvbiBsb2dpYyBhbmQgcmVseSBzb2xlbHkgb24gdGhlIHJl
c3VsdCB0eXBlLgogICAgICAgICAgICAgICAgIGlmIChpc0Z1bGxOdW1iZXJPckJvb2xlYW5TcGVj
dWxhdGlvbkV4cGVjdGluZ0RlZmluZWQobGVmdCkKICAgICAgICAgICAgICAgICAgICAgJiYgaXNG
dWxsTnVtYmVyT3JCb29sZWFuU3BlY3VsYXRpb25FeHBlY3RpbmdEZWZpbmVkKHJpZ2h0KSkgewog
ICAgICAgICAgICAgICAgICAgICBpZiAobV9ncmFwaC5iaW5hcnlBcml0aFNob3VsZFNwZWN1bGF0
ZUludDMyKG5vZGUsIG1fcGFzcykpCkBAIC0yNzUsOCArMjg4LDE0IEBAIHByaXZhdGU6CiAgICAg
ICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjSW50NTJP
bmx5KTsKICAgICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICAgICAg
Y2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oc3BlY3VsYXRlZERvdWJsZVR5cGVGb3JQcmVkaWN0
aW9ucyhsZWZ0LCByaWdodCkpOwotICAgICAgICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAg
ICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjSW50MzJPbmx5IHwgU3BlY0J5
dGVjb2RlRG91YmxlKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAg
ICAgICBpZiAobm9kZS0+bWF5SGF2ZU5vbkludFJlc3VsdCgpCisgICAgICAgICAgICAgICAgICAg
ICAgICB8fCAobGVmdCAmIFNwZWNCeXRlY29kZURvdWJsZSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHx8IChyaWdodCAmIFNwZWNCeXRlY29kZURvdWJsZSkpCisgICAgICAgICAgICAgICAgICAg
ICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjSW50MzJPbmx5IHwgU3BlY0J5dGVj
b2RlRG91YmxlKTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAg
ICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY0ludDMyT25seSk7CisgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VDY0LmNwcAkocmV2aXNpb24gMjAwNTE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTA1LDcgKzkwNSw3IEBA
IEdQUlJlZyBTcGVjdWxhdGl2ZUpJVDo6ZmlsbFNwZWN1bGF0ZUludDMKIAogICAgIG1faW50ZXJw
cmV0ZXIuZmlsdGVyKHZhbHVlLCBTcGVjSW50MzJPbmx5KTsKICAgICBpZiAodmFsdWUuaXNDbGVh
cigpKSB7Ci0gICAgICAgIHRlcm1pbmF0ZVNwZWN1bGF0aXZlRXhlY3V0aW9uKFVuY291bnRhYmxl
LCBKU1ZhbHVlUmVncygpLCAwKTsKKyAgICAgICAgdGVybWluYXRlU3BlY3VsYXRpdmVFeGVjdXRp
b24oQmFkVHlwZSwgSlNWYWx1ZVJlZ3MoKSwgMCk7CiAgICAgICAgIHJldHVybkZvcm1hdCA9IERh
dGFGb3JtYXRJbnQzMjsKICAgICAgICAgcmV0dXJuIGFsbG9jYXRlKCk7CiAgICAgfQpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JFeGl0Q29tcGlsZXIuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhpdENvbXBpbGVyLmNwcAko
cmV2aXNpb24gMjAwNTE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JFeGl0
Q29tcGlsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMy0yMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMy0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjg0LDggKzI4NCw4IEBAIHN0YXRpYyB2
b2lkIGNvbXBpbGVTdHViKAogICAgICAgICAgICAgfQogICAgICAgICB9CiAKLSAgICAgICAgaWYg
KCEhZXhpdC5tX2Rlc2NyaXB0b3ItPm1fdmFsdWVQcm9maWxlKQotICAgICAgICAgICAgaml0LnN0
b3JlNjQoR1BSSW5mbzo6cmVnVDAsIGV4aXQubV9kZXNjcmlwdG9yLT5tX3ZhbHVlUHJvZmlsZS5n
ZXRTcGVjRmFpbEJ1Y2tldCgwKSk7CisgICAgICAgIGlmIChleGl0Lm1fZGVzY3JpcHRvci0+bV92
YWx1ZVByb2ZpbGUpCisgICAgICAgICAgICBleGl0Lm1fZGVzY3JpcHRvci0+bV92YWx1ZVByb2Zp
bGUuZW1pdFJlcG9ydFZhbHVlKGppdCwgSlNWYWx1ZVJlZ3MoR1BSSW5mbzo6cmVnVDApKTsKICAg
ICB9CiAKICAgICAvLyBNYXRlcmlhbGl6ZSBhbGwgb2JqZWN0cy4gRG9uJ3QgbWF0ZXJpYWxpemUg
YW4gb2JqZWN0IHVudGlsIGFsbApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3Nl
bWJseUhlbHBlcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fz
c2VtYmx5SGVscGVycy5oCShyZXZpc2lvbiAyMDA1MTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC02NTMsMTEgKzY1Myw2
IEBAIHB1YmxpYzoKICNlbmRpZgogICAgIH0KIAotICAgIGVudW0gVGFnUmVnaXN0ZXJzTW9kZSB7
Ci0gICAgICAgIERvTm90SGF2ZVRhZ1JlZ2lzdGVycywKLSAgICAgICAgSGF2ZVRhZ1JlZ2lzdGVy
cwotICAgIH07Ci0KICAgICBKdW1wIGJyYW5jaElmTm90Q2VsbChHUFJSZWcgcmVnLCBUYWdSZWdp
c3RlcnNNb2RlIG1vZGUgPSBIYXZlVGFnUmVnaXN0ZXJzKQogICAgIHsKICNpZiBVU0UoSlNWQUxV
RTY0KQpAQCAtNzgzLDYgKzc3OCwxOCBAQCBwdWJsaWM6CiAjZW5kaWYKICAgICB9CiAKKyAgICBK
dW1wIGJyYW5jaElmTm90RG91YmxlS25vd25Ob3RJbnQzMihKU1ZhbHVlUmVncyByZWdzLCBUYWdS
ZWdpc3RlcnNNb2RlIG1vZGUgPSBIYXZlVGFnUmVnaXN0ZXJzKQorICAgIHsKKyNpZiBVU0UoSlNW
QUxVRTY0KQorICAgICAgICBpZiAobW9kZSA9PSBIYXZlVGFnUmVnaXN0ZXJzKQorICAgICAgICAg
ICAgcmV0dXJuIGJyYW5jaFRlc3Q2NChaZXJvLCByZWdzLmdwcigpLCBHUFJJbmZvOjp0YWdUeXBl
TnVtYmVyUmVnaXN0ZXIpOworICAgICAgICByZXR1cm4gYnJhbmNoVGVzdDY0KFplcm8sIHJlZ3Mu
Z3ByKCksIFRydXN0ZWRJbW02NChUYWdUeXBlTnVtYmVyKSk7CisjZWxzZQorICAgICAgICBVTlVT
RURfUEFSQU0obW9kZSk7CisgICAgICAgIHJldHVybiBicmFuY2gzMihBYm92ZU9yRXF1YWwsIHJl
Z3MudGFnR1BSKCksIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpMb3dlc3RUYWcpKTsKKyNlbmRpZgor
ICAgIH0KKwogICAgIC8vIE5vdGUgdGhhdCB0aGUgdGVtcEdQUiBpcyBub3QgdXNlZCBpbiAzMi1i
aXQgbW9kZS4KICAgICBKdW1wIGJyYW5jaElmQm9vbGVhbihKU1ZhbHVlUmVncyByZWdzLCBHUFJS
ZWcgdGVtcEdQUikKICAgICB7CkBAIC04NDgsNyArODU1LDggQEAgcHVibGljOgogICAgIH0KIAog
ICAgIEp1bXBMaXN0IGJyYW5jaElmTm90VHlwZSgKLSAgICAgICAgSlNWYWx1ZVJlZ3MsIEdQUlJl
ZyB0ZW1wR1BSLCBjb25zdCBJbmZlcnJlZFR5cGU6OkRlc2NyaXB0b3ImLCBUYWdSZWdpc3RlcnNN
b2RlKTsKKyAgICAgICAgSlNWYWx1ZVJlZ3MsIEdQUlJlZyB0ZW1wR1BSLCBjb25zdCBJbmZlcnJl
ZFR5cGU6OkRlc2NyaXB0b3ImLAorICAgICAgICBUYWdSZWdpc3RlcnNNb2RlID0gSGF2ZVRhZ1Jl
Z2lzdGVycyk7CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogICAgIEp1bXAgYnJhbmNoU3Ry
dWN0dXJlKFJlbGF0aW9uYWxDb25kaXRpb24gY29uZGl0aW9uLCBUIGxlZnRIYW5kU2lkZSwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0ludHJp
bnNpY0VtaXR0ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SW50cmluc2ljRW1pdHRlci5jcHAJKHJldmlzaW9uIDIwMDUxNykKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSW50cmluc2ljRW1pdHRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc4LDcg
Kzc4LDcgQEAgdm9pZCBBY2Nlc3NDYXNlOjplbWl0SW50cmluc2ljR2V0dGVyKEFjYwogICAgIHN3
aXRjaCAoaW50cmluc2ljKCkpIHsKICAgICBjYXNlIFR5cGVkQXJyYXlMZW5ndGhJbnRyaW5zaWM6
IHsKICAgICAgICAgaml0LmxvYWQzMihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhzdGF0ZS5iYXNl
R1BSLCBKU0FycmF5QnVmZmVyVmlldzo6b2Zmc2V0T2ZMZW5ndGgoKSksIHZhbHVlR1BSKTsKLSAg
ICAgICAgaml0LmJveEludDMyKHZhbHVlR1BSLCB2YWx1ZVJlZ3MsIENDYWxsSGVscGVyczo6RG9O
b3RIYXZlVGFnUmVnaXN0ZXJzKTsKKyAgICAgICAgaml0LmJveEludDMyKHZhbHVlR1BSLCB2YWx1
ZVJlZ3MpOwogICAgICAgICBzdGF0ZS5zdWNjZWVkKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CkBAIC05Myw3ICs5Myw3IEBAIHZvaWQgQWNjZXNzQ2FzZTo6ZW1pdEludHJpbnNpY0dldHRlcihB
Y2MKICAgICAgICAgICAgIGppdC5sc2hpZnQzMih2YWx1ZUdQUiwgSW1tMzIobG9nRWxlbWVudFNp
emUodHlwZSkpLCB2YWx1ZUdQUik7CiAgICAgICAgIH0KIAotICAgICAgICBqaXQuYm94SW50MzIo
dmFsdWVHUFIsIHZhbHVlUmVncywgQ0NhbGxIZWxwZXJzOjpEb05vdEhhdmVUYWdSZWdpc3RlcnMp
OworICAgICAgICBqaXQuYm94SW50MzIodmFsdWVHUFIsIHZhbHVlUmVncyk7CiAgICAgICAgIHN0
YXRlLnN1Y2NlZWQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTExOSw3ICsxMTksNyBA
QCB2b2lkIEFjY2Vzc0Nhc2U6OmVtaXRJbnRyaW5zaWNHZXR0ZXIoQWNjCiAgICAgICAgIAogICAg
ICAgICBkb25lLmxpbmsoJmppdCk7CiAgICAgICAgIAotICAgICAgICBqaXQuYm94SW50MzIodmFs
dWVHUFIsIHZhbHVlUmVncywgQ0NhbGxIZWxwZXJzOjpEb05vdEhhdmVUYWdSZWdpc3RlcnMpOwor
ICAgICAgICBqaXQuYm94SW50MzIodmFsdWVHUFIsIHZhbHVlUmVncyk7CiAgICAgICAgIHN0YXRl
LnN1Y2NlZWQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUQWRkR2VuZXJhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVEFkZEdlbmVyYXRvci5jcHAJKHJldmlzaW9uIDIwMDUxNykKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQWRkR2VuZXJhdG9yLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTI4LDYgKzEyOCw5IEBAIHZvaWQgSklUQWRkR2VuZXJhdG9yOjpnZW5lcmF0ZUZh
c3RQYXRoKEMKIAogICAgIC8vIERvIGRvdWJsZVZhciArIGRvdWJsZVZhci4KICAgICBqaXQuYWRk
RG91YmxlKG1fcmlnaHRGUFIsIG1fbGVmdEZQUik7CisgICAgaWYgKG1fcmVzdWx0UHJvZmlsZSkK
KyAgICAgICAgbV9yZXN1bHRQcm9maWxlLT5lbWl0U2V0RG91YmxlKGppdCk7CisgICAgICAgIAog
ICAgIGppdC5ib3hEb3VibGUobV9sZWZ0RlBSLCBtX3Jlc3VsdCk7CiB9CiAKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQWRkR2VuZXJhdG9yLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBZGRHZW5lcmF0b3IuaAkocmV2aXNpb24gMjAwNTE3
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBZGRHZW5lcmF0b3IuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzcsNyArMzcsOCBAQCBjbGFzcyBKSVRBZGRHZW5lcmF0b3IgewogcHVibGlj
OgogICAgIEpJVEFkZEdlbmVyYXRvcihTbmlwcGV0T3BlcmFuZCBsZWZ0T3BlcmFuZCwgU25pcHBl
dE9wZXJhbmQgcmlnaHRPcGVyYW5kLAogICAgICAgICBKU1ZhbHVlUmVncyByZXN1bHQsIEpTVmFs
dWVSZWdzIGxlZnQsIEpTVmFsdWVSZWdzIHJpZ2h0LAotICAgICAgICBGUFJSZWcgbGVmdEZQUiwg
RlBSUmVnIHJpZ2h0RlBSLCBHUFJSZWcgc2NyYXRjaEdQUiwgRlBSUmVnIHNjcmF0Y2hGUFIpCisg
ICAgICAgIEZQUlJlZyBsZWZ0RlBSLCBGUFJSZWcgcmlnaHRGUFIsIEdQUlJlZyBzY3JhdGNoR1BS
LCBGUFJSZWcgc2NyYXRjaEZQUiwKKyAgICAgICAgUmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmls
ZSA9IG51bGxwdHIpCiAgICAgICAgIDogbV9sZWZ0T3BlcmFuZChsZWZ0T3BlcmFuZCkKICAgICAg
ICAgLCBtX3JpZ2h0T3BlcmFuZChyaWdodE9wZXJhbmQpCiAgICAgICAgICwgbV9yZXN1bHQocmVz
dWx0KQpAQCAtNDcsNiArNDgsNyBAQCBwdWJsaWM6CiAgICAgICAgICwgbV9yaWdodEZQUihyaWdo
dEZQUikKICAgICAgICAgLCBtX3NjcmF0Y2hHUFIoc2NyYXRjaEdQUikKICAgICAgICAgLCBtX3Nj
cmF0Y2hGUFIoc2NyYXRjaEZQUikKKyAgICAgICAgLCBtX3Jlc3VsdFByb2ZpbGUocmVzdWx0UHJv
ZmlsZSkKICAgICB7CiAgICAgICAgIEFTU0VSVCghbV9sZWZ0T3BlcmFuZC5pc0NvbnN0SW50MzIo
KSB8fCAhbV9yaWdodE9wZXJhbmQuaXNDb25zdEludDMyKCkpOwogICAgIH0KQEAgLTY3LDYgKzY5
LDcgQEAgcHJpdmF0ZToKICAgICBGUFJSZWcgbV9yaWdodEZQUjsKICAgICBHUFJSZWcgbV9zY3Jh
dGNoR1BSOwogICAgIEZQUlJlZyBtX3NjcmF0Y2hGUFI7CisgICAgUmVzdWx0UHJvZmlsZSogbV9y
ZXN1bHRQcm9maWxlOwogICAgIGJvb2wgbV9kaWRFbWl0RmFzdFBhdGggeyBmYWxzZSB9OwogCiAg
ICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBtX2VuZEp1bXBMaXN0OwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRBcml0aG1ldGljLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0aWMuY3BwCShyZXZpc2lvbiAyMDA1MTcpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0aWMuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC02OTYsNiArNjk2LDEwIEBAIHZvaWQgSklUOjplbWl0X29wX2FkZChJbnN0cnVjdGlv
biogY3VycmUKICAgICBGUFJSZWcgc2NyYXRjaEZQUiA9IGZwUmVnVDI7CiAjZW5kaWYKIAorICAg
IFJlc3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUgPSBudWxscHRyOworICAgIGlmIChzaG91bGRF
bWl0UHJvZmlsaW5nKCkpCisgICAgICAgIHJlc3VsdFByb2ZpbGUgPSBtX2NvZGVCbG9jay0+ZW5z
dXJlUmVzdWx0UHJvZmlsZShtX2J5dGVjb2RlT2Zmc2V0KTsKKwogICAgIFNuaXBwZXRPcGVyYW5k
IGxlZnRPcGVyYW5kKHR5cGVzLmZpcnN0KCkpOwogICAgIFNuaXBwZXRPcGVyYW5kIHJpZ2h0T3Bl
cmFuZCh0eXBlcy5zZWNvbmQoKSk7CiAKQEAgLTcxMiw3ICs3MTYsNyBAQCB2b2lkIEpJVDo6ZW1p
dF9vcF9hZGQoSW5zdHJ1Y3Rpb24qIGN1cnJlCiAgICAgICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0
ZXIob3AyLCByaWdodFJlZ3MpOwogCiAgICAgSklUQWRkR2VuZXJhdG9yIGdlbihsZWZ0T3BlcmFu
ZCwgcmlnaHRPcGVyYW5kLCByZXN1bHRSZWdzLCBsZWZ0UmVncywgcmlnaHRSZWdzLAotICAgICAg
ICBmcFJlZ1QwLCBmcFJlZ1QxLCBzY3JhdGNoR1BSLCBzY3JhdGNoRlBSKTsKKyAgICAgICAgZnBS
ZWdUMCwgZnBSZWdUMSwgc2NyYXRjaEdQUiwgc2NyYXRjaEZQUiwgcmVzdWx0UHJvZmlsZSk7CiAK
ICAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aCgqdGhpcyk7CiAKQEAgLTcyNCw4ICs3MjgsMTQgQEAg
dm9pZCBKSVQ6OmVtaXRfb3BfYWRkKEluc3RydWN0aW9uKiBjdXJyZQogICAgIH0gZWxzZSB7CiAg
ICAgICAgIEFTU0VSVChnZW4uZW5kSnVtcExpc3QoKS5lbXB0eSgpKTsKICAgICAgICAgQVNTRVJU
KGdlbi5zbG93UGF0aEp1bXBMaXN0KCkuZW1wdHkoKSk7Ci0gICAgICAgIEpJVFNsb3dQYXRoQ2Fs
bCBzbG93UGF0aENhbGwodGhpcywgY3VycmVudEluc3RydWN0aW9uLCBzbG93X3BhdGhfYWRkKTsK
LSAgICAgICAgc2xvd1BhdGhDYWxsLmNhbGwoKTsKKyAgICAgICAgaWYgKHJlc3VsdFByb2ZpbGUp
IHsKKyAgICAgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uVmFsdWVBZGRQcm9maWxlZCwg
cmVzdWx0UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVncywgcmVzdWx0UHJvZmlsZSk7CisgICAgICAg
ICAgICByZXN1bHRQcm9maWxlLT5lbWl0RGV0ZWN0Qml0c0xpZ2h0KCp0aGlzLCByZXN1bHRSZWdz
KTsKKyAgICAgICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIocmVzdWx0LCByZXN1bHRSZWdz
KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIEpJVFNsb3dQYXRoQ2FsbCBzbG93UGF0
aENhbGwodGhpcywgY3VycmVudEluc3RydWN0aW9uLCBzbG93X3BhdGhfYWRkKTsKKyAgICAgICAg
ICAgIHNsb3dQYXRoQ2FsbC5jYWxsKCk7CisgICAgICAgIH0KICAgICB9CiB9CiAKQEAgLTczMyw4
ICs3NDMsMzAgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX2FkZChJbnN0cnVjdGlvbiogYwogewog
ICAgIGxpbmtBbGxTbG93Q2FzZXNGb3JCeXRlY29kZU9mZnNldChtX3Nsb3dDYXNlcywgaXRlciwg
bV9ieXRlY29kZU9mZnNldCk7CiAKLSAgICBKSVRTbG93UGF0aENhbGwgc2xvd1BhdGhDYWxsKHRo
aXMsIGN1cnJlbnRJbnN0cnVjdGlvbiwgc2xvd19wYXRoX2FkZCk7Ci0gICAgc2xvd1BhdGhDYWxs
LmNhbGwoKTsKKyAgICBpbnQgcmVzdWx0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFu
ZDsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgIEpTVmFsdWVSZWdzIGxlZnRSZWdzID0gSlNWYWx1
ZVJlZ3MocmVnVDApOworICAgIEpTVmFsdWVSZWdzIHJpZ2h0UmVncyA9IEpTVmFsdWVSZWdzKHJl
Z1QxKTsKKyAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0gbGVmdFJlZ3M7CisjZWxzZQorICAg
IEpTVmFsdWVSZWdzIGxlZnRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKTsKKyAgICBK
U1ZhbHVlUmVncyByaWdodFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMywgcmVnVDIpOworICAgIEpT
VmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSBsZWZ0UmVnczsKKyNlbmRpZgorICAgIAorICAgIGlmIChz
aG91bGRFbWl0UHJvZmlsaW5nKCkpIHsKKyAgICAgICAgUmVzdWx0UHJvZmlsZSogcmVzdWx0UHJv
ZmlsZSA9IG1fY29kZUJsb2NrLT5lbnN1cmVSZXN1bHRQcm9maWxlKG1fYnl0ZWNvZGVPZmZzZXQp
OworICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblZhbHVlQWRkUHJvZmlsZWQsIHJlc3Vs
dFJlZ3MsIGxlZnRSZWdzLCByaWdodFJlZ3MsIHJlc3VsdFByb2ZpbGUpOworICAgICAgICByZXN1
bHRQcm9maWxlLT5lbWl0RGV0ZWN0Qml0c0xpZ2h0KCp0aGlzLCByZXN1bHRSZWdzKTsKKyAgICAg
ICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihyZXN1bHQsIHJlc3VsdFJlZ3MpOworICAgIH0gZWxz
ZSB7CisgICAgICAgIEpJVFNsb3dQYXRoQ2FsbCBzbG93UGF0aENhbGwodGhpcywgY3VycmVudElu
c3RydWN0aW9uLCBzbG93X3BhdGhfYWRkKTsKKyAgICAgICAgc2xvd1BhdGhDYWxsLmNhbGwoKTsK
KyAgICAgICAgICAgIFsmXSAoKSB7CisgICAgICAgICAgICAgICAgaWYgKHNob3VsZEVtaXRQcm9m
aWxpbmcoKSkKKyAgICAgICAgICAgICAgICAgICAgbV9jb2RlQmxvY2stPmVuc3VyZVJlc3VsdFBy
b2ZpbGUobV9ieXRlY29kZU9mZnNldCktPmVtaXREZXRlY3RCaXRzTGlnaHQoKnRoaXMsIEpTVmFs
dWVSZWdzKEdQUkluZm86OnJldHVyblZhbHVlR1BSKSk7CisgICAgICAgICAgICB9KTsKKyAgICB9
CiB9CiAKIHZvaWQgSklUOjplbWl0X29wX2RpdihJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0
aW9uKQpAQCAtODY1LDcgKzg5NywxMSBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9tdWwoSW5zdHJ1Y3Rp
b24qIGN1cnJlCiAgICAgICAgIEFTU0VSVChnZW4uZW5kSnVtcExpc3QoKS5lbXB0eSgpKTsKICAg
ICAgICAgQVNTRVJUKGdlbi5zbG93UGF0aEp1bXBMaXN0KCkuZW1wdHkoKSk7CiAgICAgICAgIEpJ
VFNsb3dQYXRoQ2FsbCBzbG93UGF0aENhbGwodGhpcywgY3VycmVudEluc3RydWN0aW9uLCBzbG93
X3BhdGhfbXVsKTsKLSAgICAgICAgc2xvd1BhdGhDYWxsLmNhbGwoKTsKKyAgICAgICAgc2xvd1Bh
dGhDYWxsLmNhbGwoCisgICAgICAgICAgICBbJl0gKCkgeworICAgICAgICAgICAgICAgIGlmIChy
ZXN1bHRQcm9maWxlKQorICAgICAgICAgICAgICAgICAgICByZXN1bHRQcm9maWxlLT5lbWl0RGV0
ZWN0Qml0c0xpZ2h0KCp0aGlzLCBKU1ZhbHVlUmVncyhHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUikp
OworICAgICAgICAgICAgfSk7CiAgICAgfQogfQogCkBAIC04NzQsNyArOTEwLDExIEBAIHZvaWQg
SklUOjplbWl0U2xvd19vcF9tdWwoSW5zdHJ1Y3Rpb24qIGMKICAgICBsaW5rQWxsU2xvd0Nhc2Vz
Rm9yQnl0ZWNvZGVPZmZzZXQobV9zbG93Q2FzZXMsIGl0ZXIsIG1fYnl0ZWNvZGVPZmZzZXQpOwog
ICAgIAogICAgIEpJVFNsb3dQYXRoQ2FsbCBzbG93UGF0aENhbGwodGhpcywgY3VycmVudEluc3Ry
dWN0aW9uLCBzbG93X3BhdGhfbXVsKTsKLSAgICBzbG93UGF0aENhbGwuY2FsbCgpOworICAgIHNs
b3dQYXRoQ2FsbC5jYWxsKAorICAgICAgICBbJl0gKCkgeworICAgICAgICAgICAgaWYgKHNob3Vs
ZEVtaXRQcm9maWxpbmcoKSkKKyAgICAgICAgICAgICAgICBtX2NvZGVCbG9jay0+ZW5zdXJlUmVz
dWx0UHJvZmlsZShtX2J5dGVjb2RlT2Zmc2V0KS0+ZW1pdERldGVjdEJpdHNMaWdodCgqdGhpcywg
SlNWYWx1ZVJlZ3MoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpKTsKKyAgICAgICAgfSk7CiB9CiAK
IHZvaWQgSklUOjplbWl0X29wX3N1YihJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQpA
QCAtODk4LDYgKzkzOCwxMCBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9zdWIoSW5zdHJ1Y3Rpb24qIGN1
cnJlCiAgICAgRlBSUmVnIHNjcmF0Y2hGUFIgPSBmcFJlZ1QyOwogI2VuZGlmCiAKKyAgICBSZXN1
bHRQcm9maWxlKiByZXN1bHRQcm9maWxlID0gbnVsbHB0cjsKKyAgICBpZiAoc2hvdWxkRW1pdFBy
b2ZpbGluZygpKQorICAgICAgICByZXN1bHRQcm9maWxlID0gbV9jb2RlQmxvY2stPmVuc3VyZVJl
c3VsdFByb2ZpbGUobV9ieXRlY29kZU9mZnNldCk7CisKICAgICBTbmlwcGV0T3BlcmFuZCBsZWZ0
T3BlcmFuZCh0eXBlcy5maXJzdCgpKTsKICAgICBTbmlwcGV0T3BlcmFuZCByaWdodE9wZXJhbmQo
dHlwZXMuc2Vjb25kKCkpOwogICAgIApAQCAtOTIxLDcgKzk2NSwxMSBAQCB2b2lkIEpJVDo6ZW1p
dFNsb3dfb3Bfc3ViKEluc3RydWN0aW9uKiBjCiAgICAgbGlua0FsbFNsb3dDYXNlc0ZvckJ5dGVj
b2RlT2Zmc2V0KG1fc2xvd0Nhc2VzLCBpdGVyLCBtX2J5dGVjb2RlT2Zmc2V0KTsKIAogICAgIEpJ
VFNsb3dQYXRoQ2FsbCBzbG93UGF0aENhbGwodGhpcywgY3VycmVudEluc3RydWN0aW9uLCBzbG93
X3BhdGhfc3ViKTsKLSAgICBzbG93UGF0aENhbGwuY2FsbCgpOworICAgIHNsb3dQYXRoQ2FsbC5j
YWxsKAorICAgICAgICBbJl0gKCkgeworICAgICAgICAgICAgaWYgKHNob3VsZEVtaXRQcm9maWxp
bmcoKSkKKyAgICAgICAgICAgICAgICBtX2NvZGVCbG9jay0+ZW5zdXJlUmVzdWx0UHJvZmlsZSht
X2J5dGVjb2RlT2Zmc2V0KS0+ZW1pdERldGVjdEJpdHNMaWdodCgqdGhpcywgSlNWYWx1ZVJlZ3Mo
R1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpKTsKKyAgICAgICAgfSk7CiB9CiAKIC8qIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBFTkQ6IE9QX0FERCwgT1BfU1VCLCBPUF9NVUwgLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVE11bEdlbmVyYXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRNdWxHZW5lcmF0b3IuY3BwCShyZXZpc2lvbiAyMDA1MTcpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVE11bEdlbmVyYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTUz
LDYgKzE1Myw3IEBAIHZvaWQgSklUTXVsR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKEMKICAg
ICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIGRvbmUgPSBqaXQuanVtcCgpOwogCiAgICAgICAgIG5v
dE5lZ2F0aXZlWmVyby5saW5rKCZqaXQpOworICAgICAgICBqaXQub3IzMihDQ2FsbEhlbHBlcnM6
OlRydXN0ZWRJbW0zMihSZXN1bHRQcm9maWxlOjpOb25OZWdaZXJvRG91YmxlKSwgQ0NhbGxIZWxw
ZXJzOjpBYnNvbHV0ZUFkZHJlc3MobV9yZXN1bHRQcm9maWxlLT5hZGRyZXNzT2ZGbGFncygpKSk7
CiAKICAgICAgICAgaml0Lm1vdmUobV9yZXN1bHQucGF5bG9hZEdQUigpLCBtX3NjcmF0Y2hHUFIp
OwogICAgICAgICBqaXQudXJzaGlmdFB0cihDQ2FsbEhlbHBlcnM6OkltbTMyKDUyKSwgbV9zY3Jh
dGNoR1BSKTsKQEAgLTE3NCw2ICsxNzUsNyBAQCB2b2lkIEpJVE11bEdlbmVyYXRvcjo6Z2VuZXJh
dGVGYXN0UGF0aChDCiAgICAgICAgIENDYWxsSGVscGVyczo6SnVtcCBkb25lID0gaml0Lmp1bXAo
KTsKIAogICAgICAgICBub3ROZWdhdGl2ZVplcm8ubGluaygmaml0KTsKKyAgICAgICAgaml0Lm9y
MzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoUmVzdWx0UHJvZmlsZTo6Tm9uTmVnWmVyb0Rv
dWJsZSksIENDYWxsSGVscGVyczo6QWJzb2x1dGVBZGRyZXNzKG1fcmVzdWx0UHJvZmlsZS0+YWRk
cmVzc09mRmxhZ3MoKSkpOwogCiAgICAgICAgIGppdC5tb3ZlKG1fcmVzdWx0LnRhZ0dQUigpLCBt
X3NjcmF0Y2hHUFIpOwogICAgICAgICBqaXQudXJzaGlmdFB0cihDQ2FsbEhlbHBlcnM6OkltbTMy
KDUyIC0gMzIpLCBtX3NjcmF0Y2hHUFIpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRPcGVyYXRpb25zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVE9wZXJhdGlvbnMuY3BwCShyZXZpc2lvbiAyMDA1MTcpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMjQzLDYg
KzIyNDMsODggQEAgSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRvSW5kZXhTdAogICAg
IHJldHVybiBqc1N0cmluZyhleGVjLCBJZGVudGlmaWVyOjpmcm9tKGV4ZWMsIGluZGV4KS5zdHJp
bmcoKSk7CiB9CiAKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVB
ZGQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkT3AyKQoreworICAgIFZNKiB2bSA9ICZleGVjLT52bSgpOworICAgIE5hdGl2
ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGV4ZWMpOworICAgIAorICAgIEpTVmFsdWUgb3Ax
ID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDEpOworICAgIEpTVmFsdWUgb3AyID0gSlNWYWx1
ZTo6ZGVjb2RlKGVuY29kZWRPcDIpOworICAgIAorICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNBZGQoZXhlYywgb3AxLCBvcDIpKTsKK30KKworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBvcGVyYXRpb25WYWx1ZUFkZFByb2ZpbGVkKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgUmVzdWx0UHJvZmlsZSog
cmVzdWx0UHJvZmlsZSkKK3sKKyAgICBWTSogdm0gPSAmZXhlYy0+dm0oKTsKKyAgICBOYXRpdmVD
YWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBleGVjKTsKKyAgICAKKyAgICBKU1ZhbHVlIG9wMSA9
IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AxKTsKKyAgICBKU1ZhbHVlIG9wMiA9IEpTVmFsdWU6
OmRlY29kZShlbmNvZGVkT3AyKTsKKyAgICAKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzQWRkKGV4
ZWMsIG9wMSwgb3AyKTsKKyAgICByZXN1bHRQcm9maWxlLT5kZXRlY3RCaXRzTGlnaHQocmVzdWx0
KTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7Cit9CisKK0VuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVNdWwoRXhlY1N0YXRlKiBleGVjLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKQoreworICAg
IFZNKiB2bSA9ICZleGVjLT52bSgpOworICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIo
dm0sIGV4ZWMpOworCisgICAgSlNWYWx1ZSBvcDEgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9w
MSk7CisgICAgSlNWYWx1ZSBvcDIgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMik7CisKKyAg
ICBkb3VibGUgYSA9IG9wMS50b051bWJlcihleGVjKTsKKyAgICBkb3VibGUgYiA9IG9wMi50b051
bWJlcihleGVjKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGEgKiBiKSk7
Cit9CisKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVNdWxQcm9m
aWxlZChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRPcDIsIFJlc3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUpCit7CisgICAg
Vk0qIHZtID0gJmV4ZWMtPnZtKCk7CisgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2
bSwgZXhlYyk7CisKKyAgICBKU1ZhbHVlIG9wMSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3Ax
KTsKKyAgICBKU1ZhbHVlIG9wMiA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AyKTsKKworICAg
IGRvdWJsZSBhID0gb3AxLnRvTnVtYmVyKGV4ZWMpOworICAgIGRvdWJsZSBiID0gb3AyLnRvTnVt
YmVyKGV4ZWMpOworICAgIAorICAgIEpTVmFsdWUgcmVzdWx0ID0ganNOdW1iZXIoYSAqIGIpOwor
ICAgIHJlc3VsdFByb2ZpbGUtPmRldGVjdEJpdHNMaWdodChyZXN1bHQpOworICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKK30KKworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBvcGVyYXRpb25WYWx1ZVN1YihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpCit7CisgICAgVk0qIHZtID0gJmV4ZWMt
PnZtKCk7CisgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgZXhlYyk7CisgICAg
CisgICAgSlNWYWx1ZSBvcDEgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMSk7CisgICAgSlNW
YWx1ZSBvcDIgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMik7CisKKyAgICBkb3VibGUgYSA9
IG9wMS50b051bWJlcihleGVjKTsKKyAgICBkb3VibGUgYiA9IG9wMi50b051bWJlcihleGVjKTsK
KyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGEgLSBiKSk7Cit9CisKK0VuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVTdWJQcm9maWxlZChFeGVjU3Rh
dGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRPcDIsIFJlc3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUpCit7CisgICAgVk0qIHZtID0gJmV4
ZWMtPnZtKCk7CisgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgZXhlYyk7Cisg
ICAgCisgICAgSlNWYWx1ZSBvcDEgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMSk7CisgICAg
SlNWYWx1ZSBvcDIgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMik7CisKKyAgICBkb3VibGUg
YSA9IG9wMS50b051bWJlcihleGVjKTsKKyAgICBkb3VibGUgYiA9IG9wMi50b051bWJlcihleGVj
KTsKKyAgICAKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzTnVtYmVyKGEgLSBiKTsKKyAgICByZXN1
bHRQcm9maWxlLT5kZXRlY3RCSXRzTGlnaHQocmVzdWx0KTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKHJlc3VsdCk7Cit9CisKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25Qcm9jZXNz
VHlwZVByb2ZpbGVyTG9nKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBWTSYgdm0gPSBleGVjLT52
bSgpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmgJKHJl
dmlzaW9uIDIwMDUxNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9u
cy5oCSh3b3JraW5nIGNvcHkpCkBAIC00MDYsNiArNDA2LDEzIEBAIEpTQ2VsbCogSklUX09QRVJB
VElPTiBvcGVyYXRpb25HZXRQcm9wZXIKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uTmV4dEVudW1lcmF0b3JQbmFtZShFeGVjU3RhdGUqLCBKU0NlbGwqLCBpbnQzMl90KTsK
IEpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25Ub0luZGV4U3RyaW5nKEV4ZWNTdGF0ZSos
IGludDMyX3QpOwogCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVl
QWRkKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRPcDIpIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uVmFsdWVBZGRQcm9maWxlZChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBSZXN1bHRQcm9maWxlKikgV1RGX0lO
VEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZU11bChF
eGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkT3AyKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblZhbHVlTXVsUHJvZmlsZWQoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9w
MSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgUmVzdWx0UHJvZmlsZSopIFdURl9JTlRFUk5B
TDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVTdWIoRXhlY1N0
YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9w
MikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25W
YWx1ZVN1YlByb2ZpbGVkKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIFJlc3VsdFByb2ZpbGUqKSBXVEZfSU5URVJOQUw7CisK
IHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25Qcm9jZXNzVHlwZVByb2ZpbGVyTG9nKEV4ZWNT
dGF0ZSopIFdURl9JTlRFUk5BTDsKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25Qcm9jZXNz
U2hhZG93Q2hpY2tlbkxvZyhFeGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7CiAKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3ViR2VuZXJhdG9yLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN1YkdlbmVyYXRvci5jcHAJKHJldmlzaW9uIDIw
MDUxNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3ViR2VuZXJhdG9yLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtODMsNiArODMsOSBAQCB2b2lkIEpJVFN1YkdlbmVyYXRvcjo6Z2Vu
ZXJhdGVGYXN0UGF0aChDCiAgICAgcmlnaHRXYXNJbnRlZ2VyLmxpbmsoJmppdCk7CiAKICAgICBq
aXQuc3ViRG91YmxlKG1fcmlnaHRGUFIsIG1fbGVmdEZQUik7CisgICAgaWYgKG1fcmVzdWx0UHJv
ZmlsZSkKKyAgICAgICAgbV9yZXN1bHRQcm9maWxlLT5lbWl0U2V0RG91YmxlKGppdCk7CisKICAg
ICBqaXQuYm94RG91YmxlKG1fbGVmdEZQUiwgbV9yZXN1bHQpOwogfQogCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVFN1YkdlbmVyYXRvci5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3ViR2VuZXJhdG9yLmgJKHJldmlzaW9uIDIwMDUxNykK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3ViR2VuZXJhdG9yLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTM3LDcgKzM3LDggQEAgY2xhc3MgSklUU3ViR2VuZXJhdG9yIHsKIHB1YmxpYzoK
ICAgICBKSVRTdWJHZW5lcmF0b3IoU25pcHBldE9wZXJhbmQgbGVmdE9wZXJhbmQsIFNuaXBwZXRP
cGVyYW5kIHJpZ2h0T3BlcmFuZCwKICAgICAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0LCBKU1ZhbHVl
UmVncyBsZWZ0LCBKU1ZhbHVlUmVncyByaWdodCwKLSAgICAgICAgRlBSUmVnIGxlZnRGUFIsIEZQ
UlJlZyByaWdodEZQUiwgR1BSUmVnIHNjcmF0Y2hHUFIsIEZQUlJlZyBzY3JhdGNoRlBSKQorICAg
ICAgICBGUFJSZWcgbGVmdEZQUiwgRlBSUmVnIHJpZ2h0RlBSLCBHUFJSZWcgc2NyYXRjaEdQUiwg
RlBSUmVnIHNjcmF0Y2hGUFIsCisgICAgICAgIFJlc3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUg
PSBudWxscHRyKQogICAgICAgICA6IG1fbGVmdE9wZXJhbmQobGVmdE9wZXJhbmQpCiAgICAgICAg
ICwgbV9yaWdodE9wZXJhbmQocmlnaHRPcGVyYW5kKQogICAgICAgICAsIG1fcmVzdWx0KHJlc3Vs
dCkKQEAgLTQ3LDYgKzQ4LDcgQEAgcHVibGljOgogICAgICAgICAsIG1fcmlnaHRGUFIocmlnaHRG
UFIpCiAgICAgICAgICwgbV9zY3JhdGNoR1BSKHNjcmF0Y2hHUFIpCiAgICAgICAgICwgbV9zY3Jh
dGNoRlBSKHNjcmF0Y2hGUFIpCisgICAgICAgICwgbV9yZXN1bHRQcm9maWxlKHJlc3VsdFByb2Zp
bGUpCiAgICAgeyB9CiAKICAgICB2b2lkIGdlbmVyYXRlRmFzdFBhdGgoQ0NhbGxIZWxwZXJzJik7
CkBAIC02NSw2ICs2Nyw3IEBAIHByaXZhdGU6CiAgICAgRlBSUmVnIG1fcmlnaHRGUFI7CiAgICAg
R1BSUmVnIG1fc2NyYXRjaEdQUjsKICAgICBGUFJSZWcgbV9zY3JhdGNoRlBSOworICAgIFJlc3Vs
dFByb2ZpbGUqIG1fcmVzdWx0UHJvZmlsZTsKICAgICBib29sIG1fZGlkRW1pdEZhc3RQYXRoIHsg
ZmFsc2UgfTsKIAogICAgIENDYWxsSGVscGVyczo6SnVtcExpc3QgbV9lbmRKdW1wTGlzdDsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGFnUmVnaXN0ZXJzTW9kZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UYWdSZWdpc3RlcnNNb2RlLmNwcAko
cmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGFnUmVnaXN0ZXJzTW9k
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiVGFnUmVnaXN0ZXJzTW9kZS5oIgorCisjaW5jbHVkZSA8d3RmL1ByaW50U3RyZWFtLmg+CisK
K25hbWVzcGFjZSBXVEYgeworCit1c2luZyBuYW1lc3BhY2UgSlNDOworCit2b2lkIHByaW50SW50
ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwgVGFnUmVnaXN0ZXJzTW9kZSBtb2RlKQoreworICAgIHN3
aXRjaCAobW9kZSkgeworICAgIGNhc2UgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzOgorICAgICAgICBv
dXQucHJpbnQoIkRvTm90SGF2ZVRhZ1JlZ2lzdGVycyIpOworICAgICAgICByZXR1cm47CisgICAg
Y2FzZSBIYXZlVGFnUmVnaXN0ZXJzOgorICAgICAgICBvdXQucHJpbnQoIkhhdmVUYWdSZWdpc3Rl
cnMiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAKKyAgICBSRUxFQVNFX0FTU0VSVF9O
T1RfUkVBQ0hFRCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXVEYKKwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9UYWdSZWdpc3RlcnNNb2RlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9UYWdSZWdpc3RlcnNNb2RlLmgJKHJldmlzaW9uIDApCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RhZ1JlZ2lzdGVyc01vZGUuaAkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAorICovCisKKyNpZm5kZWYgVGFnUmVnaXN0ZXJzTW9kZV9oCisjZGVmaW5lIFRhZ1JlZ2lzdGVy
c01vZGVfaAorCituYW1lc3BhY2UgSlNDIHsKKworZW51bSBUYWdSZWdpc3RlcnNNb2RlIHsKKyAg
ICBEb05vdEhhdmVUYWdSZWdpc3RlcnMsCisgICAgSGF2ZVRhZ1JlZ2lzdGVycworfTsKKworfSAv
LyBuYW1lc3BhY2UgSlNDCisKK25hbWVzcGFjZSBXVEYgeworCitjbGFzcyBQcmludFN0cmVhbTsK
K3ZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYsIEpTQzo6VGFnUmVnaXN0ZXJzTW9kZSk7
CisKK30gLy8gbmFtZXNwYWNlIFdURgorCisjZW5kaWYgLy8gVGFnUmVnaXN0ZXJzTW9kZV9oCisK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1Bh
dGhzLmNwcAkocmV2aXNpb24gMjAwNTE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQ29tbW9uU2xvd1BhdGhzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzc4LDYgKzM3OCw4IEBA
IHN0YXRpYyB2b2lkIHVwZGF0ZVJlc3VsdFByb2ZpbGVGb3JCaW5hcnkKICAgICAgICAgICAgIGlm
ICghZG91YmxlVmFsICYmIHN0ZDo6c2lnbmJpdChkb3VibGVWYWwpKQogICAgICAgICAgICAgICAg
IHByb2ZpbGUtPnNldE9ic2VydmVkTmVnWmVyb0RvdWJsZSgpOwogICAgICAgICAgICAgZWxzZSB7
CisgICAgICAgICAgICAgICAgcHJvZmlsZS0+c2V0T2JzZXJ2ZWROb25OZWdaZXJvRG91YmxlKCk7
CisKICAgICAgICAgICAgICAgICAvLyBUaGUgSW50NTIgb3ZlcmZsb3cgY2hlY2sgaGVyZSBpbnRl
bnRpb25hbGx5IG9taXRzIDFsbCA8PCA1MSBhcyBhIHZhbGlkIG5lZ2F0aXZlIEludDUyIHZhbHVl
LgogICAgICAgICAgICAgICAgIC8vIFRoZXJlZm9yZSwgd2Ugd2lsbCBnZXQgYSBmYWxzZSBwb3Np
dGl2ZSBpZiB0aGUgcmVzdWx0IGlzIHRoYXQgdmFsdWUuIFRoaXMgaXMgaW50ZW50aW9uYWxseQog
ICAgICAgICAgICAgICAgIC8vIGRvbmUgdG8gc2ltcGxpZnkgdGhlIGNoZWNraW5nIGFsZ29yaXRo
bS4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>278369</attachid>
            <date>2016-05-08 13:38:01 -0700</date>
            <delta_ts>2016-05-08 14:08:14 -0700</delta_ts>
            <desc>omg starting to work</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>76495</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyMDA1MTcpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTk5Niw2ICsxOTk2LDggQEAKIAkJREMxN0U4MUExQzlD
OTFFOTAwOEE2QUIzIC8qIENDYWxsSGVscGVycy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzE3RTgxNjFDOUM4MDJCMDA4QTZBQjMgLyogQ0NhbGxI
ZWxwZXJzLmNwcCAqLzsgfTsKIAkJREMyMTQzMDcxQ0EzMkU1NTAwMEE4ODY5IC8qIElDU3RhdHMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDMjE0MzA2
MUNBMzJFNTIwMDBBODg2OSAvKiBJQ1N0YXRzLmggKi87IH07CiAJCURDMjE0MzA4MUNBMzJFNTgw
MDBBODg2OSAvKiBJQ1N0YXRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IERDMjE0MzA1MUNBMzJFNTIwMDBBODg2OSAvKiBJQ1N0YXRzLmNwcCAqLzsg
fTsKKwkJREM3OTk3ODMxQ0RFOUZBMDAwNEQ0QTA5IC8qIFRhZ1JlZ2lzdGVyc01vZGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDNzk5NzgyMUNERTlG
OUUwMDRENEEwOSAvKiBUYWdSZWdpc3RlcnNNb2RlLmggKi87IH07CisJCURDNzk5Nzg0MUNERTlG
QTIwMDRENEEwOSAvKiBUYWdSZWdpc3RlcnNNb2RlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDNzk5NzgxMUNERTlGOUUwMDRENEEwOSAvKiBUYWdS
ZWdpc3RlcnNNb2RlLmNwcCAqLzsgfTsKIAkJRENGM0Q1NjkxQ0QyOTQ2RDAwM0Q1QzY1IC8qIExh
enlDbGFzc1N0cnVjdHVyZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBEQ0YzRDU2NDFDRDI5NDY4MDAzRDVDNjUgLyogTGF6eUNsYXNzU3RydWN0dXJl
LmNwcCAqLzsgfTsKIAkJRENGM0Q1NkExQ0QyOTQ3MDAwM0Q1QzY1IC8qIExhenlDbGFzc1N0cnVj
dHVyZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRENG
M0Q1NjUxQ0QyOTQ2ODAwM0Q1QzY1IC8qIExhenlDbGFzc1N0cnVjdHVyZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCURDRjNENTZCMUNEMjk0NzIw
MDNENUM2NSAvKiBMYXp5Q2xhc3NTdHJ1Y3R1cmVJbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQ0YzRDU2NjFDRDI5NDY4MDAzRDVDNjUgLyog
TGF6eUNsYXNzU3RydWN0dXJlSW5saW5lcy5oICovOyB9OwpAQCAtNDIxMSw2ICs0MjEzLDggQEAK
IAkJREMxN0U4MTYxQzlDODAyQjAwOEE2QUIzIC8qIENDYWxsSGVscGVycy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDQ2FsbEhlbHBlcnMuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlEQzIxNDMwNTFDQTMyRTUyMDAwQTg4NjkgLyogSUNTdGF0cy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJQ1N0YXRzLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREMyMTQzMDYxQ0EzMkU1MjAwMEE4ODY5IC8qIElD
U3RhdHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSUNTdGF0cy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEQzc5OTc4MTFDREU5RjlFMDA0RDRBMDkgLyogVGFn
UmVnaXN0ZXJzTW9kZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBU
YWdSZWdpc3RlcnNNb2RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJREM3OTk3
ODIxQ0RFOUY5RTAwNEQ0QTA5IC8qIFRhZ1JlZ2lzdGVyc01vZGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gVGFnUmVnaXN0ZXJzTW9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlEQ0YzRDU2NDFDRDI5NDY4MDAzRDVDNjUgLyogTGF6eUNsYXNzU3RydWN0dXJl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExhenlDbGFzc1N0cnVj
dHVyZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURDRjNENTY1MUNEMjk0Njgw
MDNENUM2NSAvKiBMYXp5Q2xhc3NTdHJ1Y3R1cmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTGF6eUNsYXNzU3RydWN0dXJlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCURDRjNENTY2MUNEMjk0NjgwMDNENUM2NSAvKiBMYXp5Q2xhc3NTdHJ1Y3R1cmVJbmxpbmVz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExhenlDbGFzc1N0cnVjdHVyZUlu
bGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTUwODksNiArNTA5Myw4IEBA
CiAJCQkJRkUxODdBMEMxQzAyRUJBNzAwMzhCQkNBIC8qIFNuaXBwZXRPcGVyYW5kLmggKi8sCiAJ
CQkJQTczODY1NTExMTg2OTdCNDAwNTQwMjc5IC8qIFNwZWNpYWxpemVkVGh1bmtKSVQuaCAqLywK
IAkJCQlBN0ZGNjQ3QTE4QzUyRTg1MDBCNTUzMDcgLyogU3BpbGxSZWdpc3RlcnNNb2RlLmggKi8s
CisJCQkJREM3OTk3ODExQ0RFOUY5RTAwNEQ0QTA5IC8qIFRhZ1JlZ2lzdGVyc01vZGUuY3BwICov
LAorCQkJCURDNzk5NzgyMUNERTlGOUUwMDRENEEwOSAvKiBUYWdSZWdpc3RlcnNNb2RlLmggKi8s
CiAJCQkJMEZDMzE0MTExODE0NTU5MTAwMDMzMjMyIC8qIFRlbXBSZWdpc3RlclNldC5jcHAgKi8s
CiAJCQkJMEYyNEU1NDgxN0VFMjc0OTAwQUJCMjE3IC8qIFRlbXBSZWdpc3RlclNldC5oICovLAog
CQkJCTBGNTcyRDREMTY4NzlGREIwMEU1N0ZCRCAvKiBUaHVua0dlbmVyYXRvci5oICovLApAQCAt
Nzg2OSw2ICs3ODc1LDcgQEAKIAkJCQk4NkYzRUVCRjE2OENERTkzMDA3N0I5MkEgLyogT2JqY1J1
bnRpbWVFeHRyYXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0Q0E5NThEMTZBQjUwRkEwMDkzOEEw
NiAvKiBPYmplY3RBbGxvY2F0aW9uUHJvZmlsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRENGM0Q1
NkMxQ0QyOTQ3NTAwM0Q1QzY1IC8qIExhenlQcm9wZXJ0eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
REM3OTk3ODMxQ0RFOUZBMDAwNEQ0QTA5IC8qIFRhZ1JlZ2lzdGVyc01vZGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDMThDNDQ1MEUxNkY1Q0QwMEIzNDQ2MCAvKiBPYmplY3RDb25zdHJ1Y3Rvci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTk2QjczMjIxQkRBMDhFRjAwMzMxQjg0IC8qIE9iamVjdENv
bnN0cnVjdG9yLmx1dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZEM0U0MEExQjYxOEI2NjAwQzgw
RTFFIC8qIE9iamVjdFByb3BlcnR5Q29uZGl0aW9uLmggaW4gSGVhZGVycyAqLywKQEAgLTkwNDEs
NiArOTA0OCw3IEBACiAJCQkJRkUzQTA2QjMxQzEwQ0I4RTAwMzkwRkREIC8qIEpJVEJpdFhvckdl
bmVyYXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNTdEMjNFNTE4OTBDRUJGMDAzMUM3RkEg
LyogSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNTMyNDM4
OTE4NTY4MzM1MDAyRUQ2OTIgLyogSW5zcGVjdG9yRnJvbnRlbmREaXNwYXRjaGVycy5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQlEQzc5OTc4NDFDREU5RkEyMDA0RDRBMDkgLyogVGFnUmVnaXN0ZXJz
TW9kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5OUYxQTZGRTFCOEU2RDk0MDA0NjNCMjYgLyog
SW5zcGVjdG9yRnJvbnRlbmRSb3V0ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTUzMzlFQzcx
QkIzOTlBOTAwNTRGMDA1IC8qIEluc3BlY3RvckhlYXBBZ2VudC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlFMzVFMDM1RjFCN0FCNDNFMDA3M0FEMkEgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
T2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0NvZGVCbG9jay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9Db2RlQmxvY2suaAkocmV2aXNpb24gMjAwNTE3KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCSh3b3JraW5nIGNvcHkpCkBAIC01MDAsNyArNTAw
LDcgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgQVNTRVJUKEpJVENvZGU6OmlzQmFzZWxpbmVD
b2RlKGppdFR5cGUoKSkpOwogICAgICAgICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihtX2xv
Y2spOwotICAgICAgICByZXR1cm4gbV9leGl0UHJvZmlsZS5hZGQobG9ja2VyLCBzaXRlKTsKKyAg
ICAgICAgcmV0dXJuIG1fZXhpdFByb2ZpbGUuYWRkKGxvY2tlciwgdGhpcywgc2l0ZSk7CiAgICAg
fQogCiAgICAgYm9vbCBoYXNFeGl0U2l0ZShjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiBsb2Nr
ZXIsIGNvbnN0IERGRzo6RnJlcXVlbnRFeGl0U2l0ZSYgc2l0ZSkgY29uc3QKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9ERkdFeGl0UHJvZmlsZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0RGR0V4aXRQcm9maWxlLmNwcAkocmV2
aXNpb24gMjAwNTE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0RGR0V4aXRQ
cm9maWxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDExLCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgsMTQgKzI4LDI0IEBACiAKICNpZiBFTkFCTEUo
REZHX0pJVCkKIAorI2luY2x1ZGUgIkNvZGVCbG9jay5oIgorCiBuYW1lc3BhY2UgSlNDIHsgbmFt
ZXNwYWNlIERGRyB7CiAKK3ZvaWQgRnJlcXVlbnRFeGl0U2l0ZTo6ZHVtcChQcmludFN0cmVhbSYg
b3V0KSBjb25zdAoreworICAgIG91dC5wcmludCgiYmMjIiwgbV9ieXRlY29kZU9mZnNldCwgIjog
IiwgbV9raW5kLCAiLyIsIG1faml0VHlwZSk7Cit9CisKIEV4aXRQcm9maWxlOjpFeGl0UHJvZmls
ZSgpIHsgfQogRXhpdFByb2ZpbGU6On5FeGl0UHJvZmlsZSgpIHsgfQogCi1ib29sIEV4aXRQcm9m
aWxlOjphZGQoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIGNvbnN0IEZyZXF1ZW50RXhpdFNp
dGUmIHNpdGUpCitib29sIEV4aXRQcm9maWxlOjphZGQoY29uc3QgQ29uY3VycmVudEpJVExvY2tl
ciYsIENvZGVCbG9jayogb3duZXIsIGNvbnN0IEZyZXF1ZW50RXhpdFNpdGUmIHNpdGUpCiB7CiAg
ICAgQVNTRVJUKHNpdGUuaml0VHlwZSgpICE9IEV4aXRGcm9tQW55dGhpbmcpOworCisgICAgaWYg
KGZhbHNlKSAvLyBGSVhNRQorICAgICAgICBkYXRhTG9nKHBvaW50ZXJEdW1wKG93bmVyKSwgIjog
QWRkaW5nIGV4aXQgc2l0ZTogIiwgc2l0ZSwgIlxuIik7CiAgICAgCiAgICAgLy8gSWYgd2UndmUg
bmV2ZXIgc2VlbiBhbnkgZnJlcXVlbnQgZXhpdHMgdGhlbiBjcmVhdGUgdGhlIGxpc3QgYW5kIHB1
dCB0aGlzIHNpdGUKICAgICAvLyBpbnRvIGl0LgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0RGR0V4aXRQcm9maWxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0RGR0V4aXRQcm9maWxlLmgJKHJldmlzaW9uIDIwMDUxNykKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9ERkdFeGl0UHJvZmlsZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAx
MywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTEtMjAxNCwgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTExNiw2ICsxMTYsOCBAQCBwdWJsaWM6CiAgICAg
ewogICAgICAgICByZXR1cm4gbV9raW5kID09IEV4aXRLaW5kVW5zZXQgJiYgbV9ieXRlY29kZU9m
ZnNldDsKICAgICB9CisgICAgCisgICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0
OwogCiBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1fYnl0ZWNvZGVPZmZzZXQ7CkBAIC0xNTksNyAr
MTYxLDcgQEAgcHVibGljOgogICAgIC8vIGJlIGNhbGxlZCBhIGZpeGVkIG51bWJlciBvZiB0aW1l
cyBwZXIgcmVjb21waWxhdGlvbi4gUmVjb21waWxhdGlvbiBpcwogICAgIC8vIHJhcmUgdG8gYmVn
aW4gd2l0aCwgYW5kIGltcGxpZXMgZG9pbmcgTyhuKSBvcGVyYXRpb25zIG9uIHRoZSBDb2RlQmxv
Y2sKICAgICAvLyBhbnl3YXkuCi0gICAgYm9vbCBhZGQoY29uc3QgQ29uY3VycmVudEpJVExvY2tl
ciYsIGNvbnN0IEZyZXF1ZW50RXhpdFNpdGUmKTsKKyAgICBib29sIGFkZChjb25zdCBDb25jdXJy
ZW50SklUTG9ja2VyJiwgQ29kZUJsb2NrKiBvd25lciwgY29uc3QgRnJlcXVlbnRFeGl0U2l0ZSYp
OwogICAgIAogICAgIC8vIEdldCB0aGUgZnJlcXVlbnQgZXhpdCBzaXRlcyBmb3IgYSBieXRlY29k
ZSBpbmRleC4gVGhpcyBpcyBPKG4pLCBhbmQgaXMKICAgICAvLyBtZWFudCB0byBvbmx5IGJlIHVz
ZWQgZnJvbSBkZWJ1Z2dpbmcvcHJvZmlsaW5nIGNvZGUuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL01ldGhvZE9mR2V0dGluZ0FWYWx1
ZVByb2ZpbGUuY3BwCShyZXZpc2lvbiAyMDA1MTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMywgMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShERkdfSklUKQogCisjaW5j
bHVkZSAiQ0NhbGxIZWxwZXJzLmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAi
SlNDSW5saW5lcy5oIgogCkBAIC00NCwxNCArNDUsMTUgQEAgTWV0aG9kT2ZHZXR0aW5nQVZhbHVl
UHJvZmlsZSBNZXRob2RPZkdldAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlKiBNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlOjpnZXRTcGVjRmFpbEJ1Y2tldCh1bnNp
Z25lZCBpbmRleCkgY29uc3QKK3ZvaWQgTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZTo6ZW1p
dFJlcG9ydFZhbHVlKENDYWxsSGVscGVycyYgaml0LCBKU1ZhbHVlUmVncyByZWdzKSBjb25zdAog
ewogICAgIHN3aXRjaCAobV9raW5kKSB7CiAgICAgY2FzZSBOb25lOgotICAgICAgICByZXR1cm4g
MDsKKyAgICAgICAgcmV0dXJuOwogICAgICAgICAKICAgICBjYXNlIFJlYWR5OgotICAgICAgICBy
ZXR1cm4gdS5wcm9maWxlLT5zcGVjRmFpbEJ1Y2tldChpbmRleCk7CisgICAgICAgIGppdC5zdG9y
ZVZhbHVlKHJlZ3MsIHUucHJvZmlsZS0+c3BlY0ZhaWxCdWNrZXQoMCkpOworICAgICAgICByZXR1
cm47CiAgICAgICAgIAogICAgIGNhc2UgTGF6eU9wZXJhbmQ6IHsKICAgICAgICAgTGF6eU9wZXJh
bmRWYWx1ZVByb2ZpbGVLZXkga2V5KHUubGF6eU9wZXJhbmQuYnl0ZWNvZGVPZmZzZXQsIFZpcnR1
YWxSZWdpc3Rlcih1LmxhenlPcGVyYW5kLm9wZXJhbmQpKTsKQEAgLTU5LDEzICs2MSwxNiBAQCBF
bmNvZGVkSlNWYWx1ZSogTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvCiAgICAgICAgIENvbmN1cnJl
bnRKSVRMb2NrZXIgbG9ja2VyKHUubGF6eU9wZXJhbmQuY29kZUJsb2NrLT5tX2xvY2spOwogICAg
ICAgICBMYXp5T3BlcmFuZFZhbHVlUHJvZmlsZSogcHJvZmlsZSA9CiAgICAgICAgICAgICB1Lmxh
enlPcGVyYW5kLmNvZGVCbG9jay0+bGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGVzKCkuYWRkKGxvY2tl
ciwga2V5KTsKLSAgICAgICAgcmV0dXJuIHByb2ZpbGUtPnNwZWNGYWlsQnVja2V0KGluZGV4KTsK
KyAgICAgICAgaml0LnN0b3JlVmFsdWUocmVncywgcHJvZmlsZS0+c3BlY0ZhaWxCdWNrZXQoMCkp
OworICAgICAgICByZXR1cm47CiAgICAgfQogICAgICAgICAKLSAgICBkZWZhdWx0OgotICAgICAg
ICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm4gMDsKLSAgICB9
CisgICAgY2FzZSBSZXN1bHRQcm9maWxlUmVhZHk6IHsKKyAgICAgICAgdS5yZXN1bHRQcm9maWxl
LT5lbWl0RGV0ZWN0Qml0c0xpZ2h0KGppdCwgcmVncywgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0gfQorICAgIAorICAgIFJFTEVBU0VfQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL01ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTWV0aG9kT2ZHZXR0aW5nQVZhbHVl
UHJvZmlsZS5oCShyZXZpc2lvbiAyMDA1MTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMiwx
MiArMzIsMTUgQEAKIC8vIHRoZXNlICNpZidzIHdpbGwgZGlzYXBwZWFyLi4uCiAjaWYgRU5BQkxF
KERGR19KSVQpCiAKKyNpbmNsdWRlICJHUFJJbmZvLmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZS5o
IgogCiBuYW1lc3BhY2UgSlNDIHsKIAorY2xhc3MgQ0NhbGxIZWxwZXJzOwogY2xhc3MgQ29kZUJs
b2NrOwogY2xhc3MgTGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGVLZXk7CitzdHJ1Y3QgUmVzdWx0UHJv
ZmlsZTsKIHN0cnVjdCBWYWx1ZVByb2ZpbGU7CiAKIGNsYXNzIE1ldGhvZE9mR2V0dGluZ0FWYWx1
ZVByb2ZpbGUgewpAQCAtNDcsNyArNTAsNyBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KICAgICAK
LSAgICBleHBsaWNpdCBNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlKFZhbHVlUHJvZmlsZSog
cHJvZmlsZSkKKyAgICBNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlKFZhbHVlUHJvZmlsZSog
cHJvZmlsZSkKICAgICB7CiAgICAgICAgIGlmIChwcm9maWxlKSB7CiAgICAgICAgICAgICBtX2tp
bmQgPSBSZWFkeTsKQEAgLTU2LDMxICs1OSwzNCBAQCBwdWJsaWM6CiAgICAgICAgICAgICBtX2tp
bmQgPSBOb25lOwogICAgIH0KICAgICAKKyAgICBNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxl
KFJlc3VsdFByb2ZpbGUqIHByb2ZpbGUpCisgICAgeworICAgICAgICBpZiAocHJvZmlsZSkgewor
ICAgICAgICAgICAgbV9raW5kID0gUmVzdWx0UHJvZmlsZVJlYWR5OworICAgICAgICAgICAgdS5y
ZXN1bHRQcm9maWxlID0gcHJvZmlsZTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBtX2tp
bmQgPSBOb25lOworICAgIH0KKyAgICAKICAgICBzdGF0aWMgTWV0aG9kT2ZHZXR0aW5nQVZhbHVl
UHJvZmlsZSBmcm9tTGF6eU9wZXJhbmQoCiAgICAgICAgIENvZGVCbG9jayosIGNvbnN0IExhenlP
cGVyYW5kVmFsdWVQcm9maWxlS2V5Jik7CiAgICAgCi0gICAgYm9vbCBvcGVyYXRvciEoKSBjb25z
dCB7IHJldHVybiBtX2tpbmQgPT0gTm9uZTsgfQotICAgIAotICAgIC8vIFRoaXMgbG9naWNhbGx5
IGhhcyBhIHBvaW50ZXIgdG8gYSAiVGhlcmUgZXhpc3RzIFggc3VjaCB0aGF0Ci0gICAgLy8gVmFs
dWVQcm9maWxlQmFzZTxYPiIuIEJ1dCBzaW5jZSBDKysgZG9lcyBub3QgaGF2ZSBleGlzdGVudGlh
bAotICAgIC8vIHRlbXBsYXRlcywgSSBjYW5ub3QgcmV0dXJuIGl0LiBTbyBpbnN0ZWFkLCBmb3Ig
YW55IG1ldGhvZHMgdGhhdAotICAgIC8vIHVzZXJzIG9mIHRoaXMgY2xhc3Mgd291bGQgbGlrZSB0
byBjYWxsLCB3ZSdsbCBqdXN0IGhhdmUgdG8gcHJvdmlkZQotICAgIC8vIGEgbWV0aG9kIGhlcmUg
dGhhdCBkb2VzIGl0IHRocm91Z2ggYW4gaW5kaXJlY3Rpb24uIE9yIHdlIGNvdWxkCi0gICAgLy8g
cG9zc2libHkganVzdCBtYWtlIFZhbHVlUHJvZmlsZSBsZXNzIHRlbXBsYXRlLWJhc2VkLiBCdXQg
bGFzdCBJCi0gICAgLy8gdHJpZWQgdGhhdCwgaXQgZmVsdCBtb3JlIHl1Y2t5IHRoYW4gdGhpcyBj
bGFzcy4KKyAgICBleHBsaWNpdCBvcGVyYXRvciBib29sKCkgY29uc3QgeyByZXR1cm4gbV9raW5k
ICE9IE5vbmU7IH0KICAgICAKLSAgICBFbmNvZGVkSlNWYWx1ZSogZ2V0U3BlY0ZhaWxCdWNrZXQo
dW5zaWduZWQgaW5kZXgpIGNvbnN0OworICAgIHZvaWQgZW1pdFJlcG9ydFZhbHVlKENDYWxsSGVs
cGVycyYsIEpTVmFsdWVSZWdzKSBjb25zdDsKICAgICAKIHByaXZhdGU6CiAgICAgZW51bSBLaW5k
IHsKICAgICAgICAgTm9uZSwKICAgICAgICAgUmVhZHksCisgICAgICAgIFJlc3VsdFByb2ZpbGVS
ZWFkeSwKICAgICAgICAgTGF6eU9wZXJhbmQKICAgICB9OwogICAgIAogICAgIEtpbmQgbV9raW5k
OwogICAgIHVuaW9uIHsKICAgICAgICAgVmFsdWVQcm9maWxlKiBwcm9maWxlOworICAgICAgICBS
ZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlOwogICAgICAgICBzdHJ1Y3QgewogICAgICAgICAg
ICAgQ29kZUJsb2NrKiBjb2RlQmxvY2s7CiAgICAgICAgICAgICB1bnNpZ25lZCBieXRlY29kZU9m
ZnNldDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhpY0Fj
Y2Vzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1Bv
bHltb3JwaGljQWNjZXNzLmNwcAkocmV2aXNpb24gMjAwNTE3KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTE0Niw4ICsxMTQ2LDcgQEAgdm9pZCBBY2Nlc3NDYXNlOjpnZW5lcmF0ZUltcGwoQWNjZXNzR2Vu
ZQogICAgICAgICAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgICAgICAgICAgZGF0YUxvZygiSGF2
ZSB0eXBlOiAiLCB0eXBlLT5kZXNjcmlwdG9yKCksICJcbiIpOwogICAgICAgICAgICAgc3RhdGUu
ZmFpbEFuZFJlcGF0Y2guYXBwZW5kKAotICAgICAgICAgICAgICAgIGppdC5icmFuY2hJZk5vdFR5
cGUoCi0gICAgICAgICAgICAgICAgICAgIHZhbHVlUmVncywgc2NyYXRjaEdQUiwgdHlwZS0+ZGVz
Y3JpcHRvcigpLCBDQ2FsbEhlbHBlcnM6OkhhdmVUYWdSZWdpc3RlcnMpKTsKKyAgICAgICAgICAg
ICAgICBqaXQuYnJhbmNoSWZOb3RUeXBlKHZhbHVlUmVncywgc2NyYXRjaEdQUiwgdHlwZS0+ZGVz
Y3JpcHRvcigpKSk7CiAgICAgICAgIH0gZWxzZSBpZiAodmVyYm9zZSkKICAgICAgICAgICAgIGRh
dGFMb2coIkRvbid0IGhhdmUgdHlwZS5cbiIpOwogICAgICAgICAKQEAgLTExNzcsOCArMTE3Niw3
IEBAIHZvaWQgQWNjZXNzQ2FzZTo6Z2VuZXJhdGVJbXBsKEFjY2Vzc0dlbmUKICAgICAgICAgICAg
IGlmICh2ZXJib3NlKQogICAgICAgICAgICAgICAgIGRhdGFMb2coIkhhdmUgdHlwZTogIiwgdHlw
ZS0+ZGVzY3JpcHRvcigpLCAiXG4iKTsKICAgICAgICAgICAgIHN0YXRlLmZhaWxBbmRSZXBhdGNo
LmFwcGVuZCgKLSAgICAgICAgICAgICAgICBqaXQuYnJhbmNoSWZOb3RUeXBlKAotICAgICAgICAg
ICAgICAgICAgICB2YWx1ZVJlZ3MsIHNjcmF0Y2hHUFIsIHR5cGUtPmRlc2NyaXB0b3IoKSwgQ0Nh
bGxIZWxwZXJzOjpIYXZlVGFnUmVnaXN0ZXJzKSk7CisgICAgICAgICAgICAgICAgaml0LmJyYW5j
aElmTm90VHlwZSh2YWx1ZVJlZ3MsIHNjcmF0Y2hHUFIsIHR5cGUtPmRlc2NyaXB0b3IoKSkpOwog
ICAgICAgICB9IGVsc2UgaWYgKHZlcmJvc2UpCiAgICAgICAgICAgICBkYXRhTG9nKCJEb24ndCBo
YXZlIHR5cGUuXG4iKTsKICAgICAgICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvVmFsdWVQcm9maWxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvVmFsdWVQcm9maWxlLmNwcAkocmV2aXNpb24gMjAwNTE3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZhbHVlUHJvZmlsZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MjYsNiArMjYsMzYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJWYWx1ZVByb2Zp
bGUuaCIKIAorI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgorI2luY2x1ZGUgIkpTQ0lubGluZXMu
aCIKKworbmFtZXNwYWNlIEpTQyB7CisKK3ZvaWQgUmVzdWx0UHJvZmlsZTo6ZW1pdERldGVjdEJp
dHNMaWdodChDQ2FsbEhlbHBlcnMmIGppdCwgSlNWYWx1ZVJlZ3MgcmVncywgVGFnUmVnaXN0ZXJz
TW9kZSBtb2RlKQoreworICAgIENDYWxsSGVscGVyczo6SnVtcCBpc0ludDMyID0gaml0LmJyYW5j
aElmSW50MzIocmVncywgbW9kZSk7CisgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIG5vdERvdWJsZSA9
IGppdC5icmFuY2hJZk5vdERvdWJsZUtub3duTm90SW50MzIocmVncywgbW9kZSk7CisgICAgLy8g
RklYTUU6IFdlIGNvdWxkIGJlIG1vcmUgcHJlY2lzZSBoZXJlLgorICAgIGVtaXRTZXREb3VibGUo
aml0KTsKKyAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgZG9uZSA9IGppdC5qdW1wKCk7CisgICAgbm90
RG91YmxlLmxpbmsoJmppdCk7CisgICAgZW1pdFNldE5vbk51bWJlcihqaXQpOworICAgIGRvbmUu
bGluaygmaml0KTsKKyAgICBpc0ludDMyLmxpbmsoJmppdCk7Cit9CisKK3ZvaWQgUmVzdWx0UHJv
ZmlsZTo6ZW1pdFNldERvdWJsZShDQ2FsbEhlbHBlcnMmIGppdCkKK3sKKyAgICBqaXQub3IzMihD
Q2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihSZXN1bHRQcm9maWxlOjpJbnQzMk92ZXJmbG93IHwg
UmVzdWx0UHJvZmlsZTo6SW50NTJPdmVyZmxvdyB8IFJlc3VsdFByb2ZpbGU6Ok5lZ1plcm9Eb3Vi
bGUgfCBSZXN1bHRQcm9maWxlOjpOb25OZWdaZXJvRG91YmxlKSwgQ0NhbGxIZWxwZXJzOjpBYnNv
bHV0ZUFkZHJlc3MoYWRkcmVzc09mRmxhZ3MoKSkpOworfQorCit2b2lkIFJlc3VsdFByb2ZpbGU6
OmVtaXRTZXROb25OdW1iZXIoQ0NhbGxIZWxwZXJzJiBqaXQpCit7CisgICAgaml0Lm9yMzIoQ0Nh
bGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoUmVzdWx0UHJvZmlsZTo6Tm9uTnVtYmVyKSwgQ0NhbGxI
ZWxwZXJzOjpBYnNvbHV0ZUFkZHJlc3MoYWRkcmVzc09mRmxhZ3MoKSkpOworfQorCit9IC8vIG5h
bWVzcGFjZSBKU0MKKwogbmFtZXNwYWNlIFdURiB7CiAgICAgCiB1c2luZyBuYW1lc3BhY2UgSlND
OwpAQCAtMzQsMjMgKzY0LDMxIEBAIHZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0
LCBjb24KIHsKICAgICBjb25zdCBjaGFyKiBzZXBhcmF0b3IgPSAiIjsKIAotICAgIGlmIChwcm9m
aWxlLmRpZE9ic2VydmVOZWdaZXJvRG91YmxlKCkpIHsKLSAgICAgICAgb3V0LnByaW50KHNlcGFy
YXRvciwgIk5lZ1plcm9Eb3VibGUiKTsKKyAgICBpZiAoIXByb2ZpbGUuZGlkT2JzZXJ2ZU5vbklu
dDMyKCkpIHsKKyAgICAgICAgb3V0LnByaW50KCJJbnQzMiIpOwogICAgICAgICBzZXBhcmF0b3Ig
PSAifCI7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKHByb2ZpbGUuZGlkT2JzZXJ2ZU5lZ1pl
cm9Eb3VibGUoKSkgeworICAgICAgICAgICAgb3V0LnByaW50KHNlcGFyYXRvciwgIk5lZ1plcm9E
b3VibGUiKTsKKyAgICAgICAgICAgIHNlcGFyYXRvciA9ICJ8IjsKKyAgICAgICAgfQorICAgICAg
ICBpZiAocHJvZmlsZS5kaWRPYnNlcnZlTm9uTmVnWmVyb0RvdWJsZSgpKSB7CisgICAgICAgICAg
ICBvdXQucHJpbnQoIk5vbk5lZ1plcm9Eb3VibGUiKTsKKyAgICAgICAgICAgIHNlcGFyYXRvciA9
ICJ8IjsKKyAgICAgICAgfQorICAgICAgICBpZiAocHJvZmlsZS5kaWRPYnNlcnZlTm9uTnVtYmVy
KCkpIHsKKyAgICAgICAgICAgIG91dC5wcmludCgiTm9uTnVtYmVyIik7CisgICAgICAgICAgICBz
ZXBhcmF0b3IgPSAifCI7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHByb2ZpbGUuZGlkT2JzZXJ2
ZUludDMyT3ZlcmZsb3coKSkgeworICAgICAgICAgICAgb3V0LnByaW50KCJJbnQzMk92ZXJmbG93
Iik7CisgICAgICAgICAgICBzZXBhcmF0b3IgPSAifCI7CisgICAgICAgIH0KKyAgICAgICAgaWYg
KHByb2ZpbGUuZGlkT2JzZXJ2ZUludDUyT3ZlcmZsb3coKSkgeworICAgICAgICAgICAgb3V0LnBy
aW50KCJJbnQ1Mk92ZXJmbG93Iik7CisgICAgICAgICAgICBzZXBhcmF0b3IgPSAifCI7CisgICAg
ICAgIH0KICAgICB9Ci0gICAgaWYgKHByb2ZpbGUuZGlkT2JzZXJ2ZU5vbk51bWJlcigpKSB7Ci0g
ICAgICAgIG91dC5wcmludCgiTm9uTnVtYmVyIik7Ci0gICAgICAgIHNlcGFyYXRvciA9ICJ8IjsK
LSAgICB9Ci0gICAgaWYgKHByb2ZpbGUuZGlkT2JzZXJ2ZUludDMyT3ZlcmZsb3coKSkgewotICAg
ICAgICBvdXQucHJpbnQoIkludDMyT3ZlcmZsb3ciKTsKLSAgICAgICAgc2VwYXJhdG9yID0gInwi
OwotICAgIH0KLSAgICBpZiAocHJvZmlsZS5kaWRPYnNlcnZlSW50NTJPdmVyZmxvdygpKSB7Ci0g
ICAgICAgIG91dC5wcmludCgiSW50NTJPdmVyZmxvdyIpOwotICAgICAgICBzZXBhcmF0b3IgPSAi
fCI7Ci0gICAgfQotCiAgICAgaWYgKHByb2ZpbGUuc3BlY2lhbEZhc3RQYXRoQ291bnQoKSkgewog
ICAgICAgICBvdXQucHJpbnQoIiBzcGVjaWFsIGZhc3QgcGF0aDogIik7CiAgICAgICAgIG91dC5w
cmludChwcm9maWxlLnNwZWNpYWxGYXN0UGF0aENvdW50KCkpOwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL1ZhbHVlUHJvZmlsZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WYWx1ZVByb2ZpbGUuaAkocmV2aXNpb24gMjAwNTE3KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZhbHVlUHJvZmlsZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwg
MjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTEtMjAxMywgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM0LDEyICszNCwxNSBAQAogI2luY2x1ZGUgIkpTQXJy
YXkuaCIKICNpbmNsdWRlICJTcGVjdWxhdGVkVHlwZS5oIgogI2luY2x1ZGUgIlN0cnVjdHVyZS5o
IgorI2luY2x1ZGUgIlRhZ1JlZ2lzdGVyc01vZGUuaCIKICNpbmNsdWRlICJXcml0ZUJhcnJpZXIu
aCIKICNpbmNsdWRlIDx3dGYvUHJpbnRTdHJlYW0uaD4KICNpbmNsdWRlIDx3dGYvU3RyaW5nUHJp
bnRTdHJlYW0uaD4KIAogbmFtZXNwYWNlIEpTQyB7CiAKK2NsYXNzIENDYWxsSGVscGVyczsKKwog
dGVtcGxhdGU8dW5zaWduZWQgbnVtYmVyT2ZCdWNrZXRzQXJndW1lbnQ+CiBzdHJ1Y3QgVmFsdWVQ
cm9maWxlQmFzZSB7CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG51bWJlck9mQnVja2V0cyA9
IG51bWJlck9mQnVja2V0c0FyZ3VtZW50OwpAQCAtMjE4LDIwICsyMjEsMjUgQEAgcHVibGljOgog
ICAgIH0KIAogICAgIGVudW0gT2JzZXJ2ZWRSZXN1bHRzIHsKLSAgICAgICAgTmVnWmVyb0RvdWJs
ZSAgICA9IDEgPDwgMCwKLSAgICAgICAgTm9uTnVtYmVyICAgICAgICA9IDEgPDwgMSwKLSAgICAg
ICAgSW50MzJPdmVyZmxvdyAgICA9IDEgPDwgMiwKLSAgICAgICAgSW50NTJPdmVyZmxvdyAgICA9
IDEgPDwgMywKKyAgICAgICAgTm9uTmVnWmVyb0RvdWJsZSA9IDEgPDwgMCwKKyAgICAgICAgTmVn
WmVyb0RvdWJsZSAgICA9IDEgPDwgMSwKKyAgICAgICAgTm9uTnVtYmVyICAgICAgICA9IDEgPDwg
MiwKKyAgICAgICAgSW50MzJPdmVyZmxvdyAgICA9IDEgPDwgMywKKyAgICAgICAgSW50NTJPdmVy
ZmxvdyAgICA9IDEgPDwgNCwKICAgICB9OwogCiAgICAgaW50IGJ5dGVjb2RlT2Zmc2V0KCkgY29u
c3QgeyByZXR1cm4gbV9ieXRlY29kZU9mZnNldEFuZEZsYWdzID4+IG51bWJlck9mRmxhZ0JpdHM7
IH0KICAgICB1bnNpZ25lZCBzcGVjaWFsRmFzdFBhdGhDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1f
c3BlY2lhbEZhc3RQYXRoQ291bnQ7IH0KIAorICAgIGJvb2wgZGlkT2JzZXJ2ZU5vbkludDMyKCkg
Y29uc3QgeyByZXR1cm4gaGFzQml0cyhOb25OZWdaZXJvRG91YmxlIHwgTmVnWmVyb0RvdWJsZSB8
IE5vbk51bWJlcik7IH0KKyAgICBib29sIGRpZE9ic2VydmVEb3VibGUoKSBjb25zdCB7IHJldHVy
biBoYXNCaXRzKE5vbk5lZ1plcm9Eb3VibGUgfCBOZWdaZXJvRG91YmxlKTsgfQorICAgIGJvb2wg
ZGlkT2JzZXJ2ZU5vbk5lZ1plcm9Eb3VibGUoKSBjb25zdCB7IHJldHVybiBoYXNCaXRzKE5vbk5l
Z1plcm9Eb3VibGUpOyB9CiAgICAgYm9vbCBkaWRPYnNlcnZlTmVnWmVyb0RvdWJsZSgpIGNvbnN0
IHsgcmV0dXJuIGhhc0JpdHMoTmVnWmVyb0RvdWJsZSk7IH0KICAgICBib29sIGRpZE9ic2VydmVO
b25OdW1iZXIoKSBjb25zdCB7IHJldHVybiBoYXNCaXRzKE5vbk51bWJlcik7IH0KICAgICBib29s
IGRpZE9ic2VydmVJbnQzMk92ZXJmbG93KCkgY29uc3QgeyByZXR1cm4gaGFzQml0cyhJbnQzMk92
ZXJmbG93KTsgfQogICAgIGJvb2wgZGlkT2JzZXJ2ZUludDUyT3ZlcmZsb3coKSBjb25zdCB7IHJl
dHVybiBoYXNCaXRzKEludDUyT3ZlcmZsb3cpOyB9CiAKKyAgICB2b2lkIHNldE9ic2VydmVkTm9u
TmVnWmVyb0RvdWJsZSgpIHsgc2V0Qml0KE5vbk5lZ1plcm9Eb3VibGUpOyB9CiAgICAgdm9pZCBz
ZXRPYnNlcnZlZE5lZ1plcm9Eb3VibGUoKSB7IHNldEJpdChOZWdaZXJvRG91YmxlKTsgfQogICAg
IHZvaWQgc2V0T2JzZXJ2ZWROb25OdW1iZXIoKSB7IHNldEJpdChOb25OdW1iZXIpOyB9CiAgICAg
dm9pZCBzZXRPYnNlcnZlZEludDMyT3ZlcmZsb3coKSB7IHNldEJpdChJbnQzMk92ZXJmbG93KTsg
fQpAQCAtMjM5LDYgKzI0NywyNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkKiBhZGRyZXNzT2ZGbGFn
cygpIHsgcmV0dXJuICZtX2J5dGVjb2RlT2Zmc2V0QW5kRmxhZ3M7IH0KICAgICB2b2lkKiBhZGRy
ZXNzT2ZTcGVjaWFsRmFzdFBhdGhDb3VudCgpIHsgcmV0dXJuICZtX3NwZWNpYWxGYXN0UGF0aENv
dW50OyB9CisgICAgCisgICAgLy8gU2V0cyAoSW50MzJPdmVyZmxvdyB8IEludDUyT3ZlcmZsb3cg
fCBOb25OZWdaZXJvRG91YmxlIHwgTmVnWmVyb0RvdWJsZSkgaWYgaXQgc2VlcyBhCisgICAgLy8g
ZG91YmxlLiBTZXRzIE5vbk51bWJlciBpZiBpdCBzZWVzIGEgbm9uLW51bWJlci4KKyAgICB2b2lk
IGVtaXREZXRlY3RCaXRzTGlnaHQoQ0NhbGxIZWxwZXJzJiwgSlNWYWx1ZVJlZ3MsIFRhZ1JlZ2lz
dGVyc01vZGUgPSBIYXZlVGFnUmVnaXN0ZXJzKTsKKyAgICAKKyAgICB2b2lkIGRldGVjdEJpdHNM
aWdodChKU1ZhbHVlIHZhbHVlKQorICAgIHsKKyAgICAgICAgaWYgKHZhbHVlLmlzSW50MzIoKSkK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgaWYgKHZhbHVlLmlzTnVtYmVyKCkpIHsKKyAg
ICAgICAgICAgIG1fYnl0ZWNvZGVPZmZzZXRBbmRGbGFncyB8PSBJbnQzMk92ZXJmbG93IHwgSW50
NTJPdmVyZmxvdyB8IE5vbk5lZ1plcm9Eb3VibGUgfCBOZWdaZXJvRG91YmxlOworICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIG1fYnl0ZWNvZGVPZmZzZXRBbmRGbGFncyB8
PSBOb25OdW1iZXI7CisgICAgfQorICAgIAorICAgIC8vIFNldHMgKEludDMyT3ZlcmZsb3cgfCBJ
bnQ1Mk92ZXJmbG93IHwgTm9uTmVnWmVyb0RvdWJsZSB8IE5lZ1plcm9Eb3VibGUpLgorICAgIHZv
aWQgZW1pdFNldERvdWJsZShDQ2FsbEhlbHBlcnMmKTsKKyAgICAKKyAgICAvLyBTZXRzIE5vbk51
bWJlci4KKyAgICB2b2lkIGVtaXRTZXROb25OdW1iZXIoQ0NhbGxIZWxwZXJzJik7CiAKIHByaXZh
dGU6CiAgICAgYm9vbCBoYXNCaXRzKGludCBtYXNrKSBjb25zdCB7IHJldHVybiBtX2J5dGVjb2Rl
T2Zmc2V0QW5kRmxhZ3MgJiBtYXNrOyB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0J5dGVDb2RlUGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAkocmV2aXNpb24gMjAwNTE3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTkwNiw0MCArOTA2LDU4IEBAIHByaXZhdGU6CiAgICAgICAgIGlmICghaXNYODYoKSAmJiBu
b2RlLT5vcCgpID09IEFyaXRoTW9kKQogICAgICAgICAgICAgcmV0dXJuIG5vZGU7CiAKLSAgICAg
ICAgaWYgKCFtX2lubGluZVN0YWNrVG9wLT5tX3Byb2ZpbGVkQmxvY2stPmxpa2VseVRvVGFrZVNs
b3dDYXNlKG1fY3VycmVudEluZGV4KSkKLSAgICAgICAgICAgIHJldHVybiBub2RlOworICAgICAg
ICBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlID0gbV9pbmxpbmVTdGFja1RvcC0+bV9wcm9m
aWxlZEJsb2NrLT5yZXN1bHRQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQobV9jdXJyZW50SW5kZXgp
OworICAgICAgICBpZiAocmVzdWx0UHJvZmlsZSkgeworICAgICAgICAgICAgc3dpdGNoIChub2Rl
LT5vcCgpKSB7CisgICAgICAgICAgICBjYXNlIEFyaXRoQWRkOgorICAgICAgICAgICAgY2FzZSBB
cml0aFN1YjoKKyAgICAgICAgICAgIGNhc2UgVmFsdWVBZGQ6CisgICAgICAgICAgICAgICAgaWYg
KHJlc3VsdFByb2ZpbGUtPmRpZE9ic2VydmVEb3VibGUoKSkKKyAgICAgICAgICAgICAgICAgICAg
bm9kZS0+bWVyZ2VGbGFncyhOb2RlTWF5SGF2ZURvdWJsZVJlc3VsdCk7CisgICAgICAgICAgICAg
ICAgaWYgKHJlc3VsdFByb2ZpbGUtPmRpZE9ic2VydmVOb25OdW1iZXIoKSkKKyAgICAgICAgICAg
ICAgICAgICAgbm9kZS0+bWVyZ2VGbGFncyhOb2RlTWF5SGF2ZU5vbk51bWJlclJlc3VsdCk7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBjYXNl
IEFyaXRoTXVsOiB7CisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdFByb2ZpbGUtPmRpZE9ic2Vy
dmVJbnQ1Mk92ZXJmbG93KCkpCisgICAgICAgICAgICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3Mo
Tm9kZU1heU92ZXJmbG93SW50NTIpOworICAgICAgICAgICAgICAgIGlmIChyZXN1bHRQcm9maWxl
LT5kaWRPYnNlcnZlSW50MzJPdmVyZmxvdygpIHx8IG1faW5saW5lU3RhY2tUb3AtPm1fZXhpdFBy
b2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJyZW50SW5kZXgsIE92ZXJmbG93KSkKKyAgICAgICAgICAg
ICAgICAgICAgbm9kZS0+bWVyZ2VGbGFncyhOb2RlTWF5T3ZlcmZsb3dJbnQzMkluQmFzZWxpbmUp
OworICAgICAgICAgICAgICAgIGlmIChyZXN1bHRQcm9maWxlLT5kaWRPYnNlcnZlTmVnWmVyb0Rv
dWJsZSgpIHx8IG1faW5saW5lU3RhY2tUb3AtPm1fZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobV9j
dXJyZW50SW5kZXgsIE5lZ2F0aXZlWmVybykpCisgICAgICAgICAgICAgICAgICAgIG5vZGUtPm1l
cmdlRmxhZ3MoTm9kZU1heU5lZ1plcm9JbkJhc2VsaW5lKTsKKyAgICAgICAgICAgICAgICBpZiAo
cmVzdWx0UHJvZmlsZS0+ZGlkT2JzZXJ2ZURvdWJsZSgpKQorICAgICAgICAgICAgICAgICAgICBu
b2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlIYXZlRG91YmxlUmVzdWx0KTsKKyAgICAgICAgICAgICAg
ICBpZiAocmVzdWx0UHJvZmlsZS0+ZGlkT2JzZXJ2ZU5vbk51bWJlcigpKQorICAgICAgICAgICAg
ICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlIYXZlTm9uTnVtYmVyUmVzdWx0KTsKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAg
ICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9
CisgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIHN3aXRjaCAobm9kZS0+b3AoKSkgewotICAg
ICAgICBjYXNlIFVJbnQzMlRvTnVtYmVyOgotICAgICAgICBjYXNlIEFyaXRoQWRkOgotICAgICAg
ICBjYXNlIEFyaXRoU3ViOgotICAgICAgICBjYXNlIFZhbHVlQWRkOgotICAgICAgICBjYXNlIEFy
aXRoTW9kOiAvLyBmb3IgQXJpdGhNb2QgIk1heU92ZXJmbG93IiBtZWFucyB3ZSB0cmllZCB0byBk
aXZpZGUgYnkgemVybywgb3Igd2Ugc2F3IGRvdWJsZS4KLSAgICAgICAgICAgIG5vZGUtPm1lcmdl
RmxhZ3MoTm9kZU1heU92ZXJmbG93SW50MzJJbkJhc2VsaW5lKTsKLSAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICAgICAgCi0gICAgICAgIGNhc2UgQXJpdGhOZWdhdGU6Ci0gICAgICAgICAgICAv
LyBDdXJyZW50bHkgd2UgY2FuJ3QgdGVsbCB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIGEgbmVnYXRp
b24gb3ZlcmZsb3dpbmcKLSAgICAgICAgICAgIC8vIChpLmUuIC0oMSA8PCAzMSkpIG9yIGdlbmVy
YXRpbmcgbmVnYXRpdmUgemVybyAoaS5lLiAtMCkuIElmIGl0IHRvb2sgc2xvdwotICAgICAgICAg
ICAgLy8gcGF0aCB0aGVuIHdlIGFzc3VtZSB0aGF0IGl0IGRpZCBib3RoIG9mIHRob3NlIHRoaW5n
cy4KLSAgICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1heU92ZXJmbG93SW50MzJJbkJh
c2VsaW5lKTsKLSAgICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1heU5lZ1plcm9JbkJh
c2VsaW5lKTsKLSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIGNhc2UgQXJpdGhNdWw6IHsK
LSAgICAgICAgICAgIFJlc3VsdFByb2ZpbGUmIHJlc3VsdFByb2ZpbGUgPSAqbV9pbmxpbmVTdGFj
a1RvcC0+bV9wcm9maWxlZEJsb2NrLT5yZXN1bHRQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQobV9j
dXJyZW50SW5kZXgpOwotICAgICAgICAgICAgaWYgKHJlc3VsdFByb2ZpbGUuZGlkT2JzZXJ2ZUlu
dDUyT3ZlcmZsb3coKSkKLSAgICAgICAgICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlP
dmVyZmxvd0ludDUyKTsKLSAgICAgICAgICAgIGlmIChyZXN1bHRQcm9maWxlLmRpZE9ic2VydmVJ
bnQzMk92ZXJmbG93KCkgfHwgbV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5oYXNFeGl0
U2l0ZShtX2N1cnJlbnRJbmRleCwgT3ZlcmZsb3cpKQorICAgICAgICBpZiAobV9pbmxpbmVTdGFj
a1RvcC0+bV9wcm9maWxlZEJsb2NrLT5saWtlbHlUb1Rha2VTbG93Q2FzZShtX2N1cnJlbnRJbmRl
eCkpIHsKKyAgICAgICAgICAgIHN3aXRjaCAobm9kZS0+b3AoKSkgeworICAgICAgICAgICAgY2Fz
ZSBVSW50MzJUb051bWJlcjoKKyAgICAgICAgICAgIGNhc2UgQXJpdGhBZGQ6CisgICAgICAgICAg
ICBjYXNlIEFyaXRoU3ViOgorICAgICAgICAgICAgY2FzZSBWYWx1ZUFkZDoKKyAgICAgICAgICAg
IGNhc2UgQXJpdGhNb2Q6IC8vIGZvciBBcml0aE1vZCAiTWF5T3ZlcmZsb3ciIG1lYW5zIHdlIHRy
aWVkIHRvIGRpdmlkZSBieSB6ZXJvLCBvciB3ZSBzYXcgZG91YmxlLgorICAgICAgICAgICAgICAg
IG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1heU92ZXJmbG93SW50MzJJbkJhc2VsaW5lKTsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGNhc2UgQXJp
dGhOZWdhdGU6CisgICAgICAgICAgICAgICAgLy8gQ3VycmVudGx5IHdlIGNhbid0IHRlbGwgdGhl
IGRpZmZlcmVuY2UgYmV0d2VlbiBhIG5lZ2F0aW9uIG92ZXJmbG93aW5nCisgICAgICAgICAgICAg
ICAgLy8gKGkuZS4gLSgxIDw8IDMxKSkgb3IgZ2VuZXJhdGluZyBuZWdhdGl2ZSB6ZXJvIChpLmUu
IC0wKS4gSWYgaXQgdG9vayBzbG93CisgICAgICAgICAgICAgICAgLy8gcGF0aCB0aGVuIHdlIGFz
c3VtZSB0aGF0IGl0IGRpZCBib3RoIG9mIHRob3NlIHRoaW5ncy4KICAgICAgICAgICAgICAgICBu
b2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlPdmVyZmxvd0ludDMySW5CYXNlbGluZSk7Ci0gICAgICAg
ICAgICBpZiAocmVzdWx0UHJvZmlsZS5kaWRPYnNlcnZlTmVnWmVyb0RvdWJsZSgpIHx8IG1faW5s
aW5lU3RhY2tUb3AtPm1fZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJyZW50SW5kZXgsIE5l
Z2F0aXZlWmVybykpCiAgICAgICAgICAgICAgICAgbm9kZS0+bWVyZ2VGbGFncyhOb2RlTWF5TmVn
WmVyb0luQmFzZWxpbmUpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLQotICAgICAg
ICBkZWZhdWx0OgotICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAg
IAorICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIH0KICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgcmV0dXJuIG5vZGU7CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAJKHJldmlzaW9uIDIw
MDUxNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTIzNiw4ICsyMzYsNyBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIEFy
aXRoTXVsOiB7CiAgICAgICAgICAgICBFZGdlJiBsZWZ0Q2hpbGQgPSBub2RlLT5jaGlsZDEoKTsK
ICAgICAgICAgICAgIEVkZ2UmIHJpZ2h0Q2hpbGQgPSBub2RlLT5jaGlsZDIoKTsKLSAgICAgICAg
ICAgIGlmIChOb2RlOjpzaG91bGRTcGVjdWxhdGVVbnR5cGVkRm9yQXJpdGhtZXRpYyhsZWZ0Q2hp
bGQubm9kZSgpLCByaWdodENoaWxkLm5vZGUoKSkKLSAgICAgICAgICAgICAgICAmJiBtX2dyYXBo
Lmhhc0V4aXRTaXRlKG5vZGUtPm9yaWdpbi5zZW1hbnRpYywgQmFkVHlwZSkpIHsKKyAgICAgICAg
ICAgIGlmIChOb2RlOjpzaG91bGRTcGVjdWxhdGVVbnR5cGVkRm9yQXJpdGhtZXRpYyhsZWZ0Q2hp
bGQubm9kZSgpLCByaWdodENoaWxkLm5vZGUoKSkpIHsKICAgICAgICAgICAgICAgICBmaXhFZGdl
PFVudHlwZWRVc2U+KGxlZnRDaGlsZCk7CiAgICAgICAgICAgICAgICAgZml4RWRnZTxVbnR5cGVk
VXNlPihyaWdodENoaWxkKTsKICAgICAgICAgICAgICAgICBub2RlLT5zZXRSZXN1bHQoTm9kZVJl
c3VsdEpTKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguY3BwCShyZXZp
c2lvbiAyMDA1MTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTQ0Niw0NiArMTQ0Niw1MCBAQCB2b2lkIEdyYXBoOjplbnN1cmVO
YXR1cmFsTG9vcHMoKQogICAgICAgICBtX25hdHVyYWxMb29wcyA9IHN0ZDo6bWFrZV91bmlxdWU8
TmF0dXJhbExvb3BzPigqdGhpcyk7CiB9CiAKLVZhbHVlUHJvZmlsZSogR3JhcGg6OnZhbHVlUHJv
ZmlsZUZvcihOb2RlKiBub2RlKQorTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZSBHcmFwaDo6
bWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZUZvcihOb2RlKiBub2RlKQogewotICAgIGlmICgh
bm9kZSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgd2hpbGUgKG5vZGUpIHsKKyAgICAg
ICAgQ29kZUJsb2NrKiBwcm9maWxlZEJsb2NrID0gYmFzZWxpbmVDb2RlQmxvY2tGb3Iobm9kZS0+
b3JpZ2luLnNlbWFudGljKTsKICAgICAgICAgCi0gICAgQ29kZUJsb2NrKiBwcm9maWxlZEJsb2Nr
ID0gYmFzZWxpbmVDb2RlQmxvY2tGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKTsKKyAgICAgICAg
aWYgKG5vZGUtPmhhc0xvY2FsKCp0aGlzKSkgeworICAgICAgICAgICAgVmFsdWVQcm9maWxlKiBy
ZXN1bHQgPSBbJl0gKCkgLT4gVmFsdWVQcm9maWxlKiB7CisgICAgICAgICAgICAgICAgaWYgKCFu
b2RlLT5sb2NhbCgpLmlzQXJndW1lbnQoKSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CisgICAgICAgICAgICAgICAgaW50IGFyZ3VtZW50ID0gbm9kZS0+bG9jYWwoKS50b0Fy
Z3VtZW50KCk7CisgICAgICAgICAgICAgICAgTm9kZSogYXJndW1lbnROb2RlID0gbV9hcmd1bWVu
dHNbYXJndW1lbnRdOworICAgICAgICAgICAgICAgIGlmICghYXJndW1lbnROb2RlKQorICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgICAgICAgICBpZiAobm9kZS0+
dmFyaWFibGVBY2Nlc3NEYXRhKCkgIT0gYXJndW1lbnROb2RlLT52YXJpYWJsZUFjY2Vzc0RhdGEo
KSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgICAgICAgICAg
cmV0dXJuIHByb2ZpbGVkQmxvY2stPnZhbHVlUHJvZmlsZUZvckFyZ3VtZW50KGFyZ3VtZW50KTsK
KyAgICAgICAgICAgIH0oKTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQpCisgICAgICAgICAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKG5vZGUtPm9w
KCkgPT0gR2V0TG9jYWwpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gTWV0aG9kT2ZHZXR0aW5n
QVZhbHVlUHJvZmlsZTo6ZnJvbUxhenlPcGVyYW5kKAorICAgICAgICAgICAgICAgICAgICBwcm9m
aWxlZEJsb2NrLAorICAgICAgICAgICAgICAgICAgICBMYXp5T3BlcmFuZFZhbHVlUHJvZmlsZUtl
eSgKKyAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUtPm9yaWdpbi5zZW1hbnRpYy5ieXRlY29k
ZUluZGV4LCBub2RlLT5sb2NhbCgpKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KICAgICAg
ICAgCi0gICAgaWYgKG5vZGUtPmhhc0xvY2FsKCp0aGlzKSkgewotICAgICAgICBpZiAoIW5vZGUt
PmxvY2FsKCkuaXNBcmd1bWVudCgpKQotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAg
ICAgIGludCBhcmd1bWVudCA9IG5vZGUtPmxvY2FsKCkudG9Bcmd1bWVudCgpOwotICAgICAgICBO
b2RlKiBhcmd1bWVudE5vZGUgPSBtX2FyZ3VtZW50c1thcmd1bWVudF07Ci0gICAgICAgIGlmICgh
YXJndW1lbnROb2RlKQotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAgIGlmIChu
b2RlLT52YXJpYWJsZUFjY2Vzc0RhdGEoKSAhPSBhcmd1bWVudE5vZGUtPnZhcmlhYmxlQWNjZXNz
RGF0YSgpKQotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAgIHJldHVybiBwcm9m
aWxlZEJsb2NrLT52YWx1ZVByb2ZpbGVGb3JBcmd1bWVudChhcmd1bWVudCk7Ci0gICAgfQorICAg
ICAgICBpZiAobm9kZS0+aGFzSGVhcFByZWRpY3Rpb24oKSkKKyAgICAgICAgICAgIHJldHVybiBw
cm9maWxlZEJsb2NrLT52YWx1ZVByb2ZpbGVGb3JCeXRlY29kZU9mZnNldChub2RlLT5vcmlnaW4u
c2VtYW50aWMuYnl0ZWNvZGVJbmRleCk7CiAgICAgICAgIAotICAgIGlmIChub2RlLT5oYXNIZWFw
UHJlZGljdGlvbigpKQotICAgICAgICByZXR1cm4gcHJvZmlsZWRCbG9jay0+dmFsdWVQcm9maWxl
Rm9yQnl0ZWNvZGVPZmZzZXQobm9kZS0+b3JpZ2luLnNlbWFudGljLmJ5dGVjb2RlSW5kZXgpOwor
ICAgICAgICBpZiAoUmVzdWx0UHJvZmlsZSogcmVzdWx0ID0gcHJvZmlsZWRCbG9jay0+cmVzdWx0
UHJvZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KG5vZGUtPm9yaWdpbi5zZW1hbnRpYy5ieXRlY29kZUlu
ZGV4KSkKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgIAotICAgIHJldHVybiBu
dWxscHRyOwotfQotCi1NZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlIEdyYXBoOjptZXRob2RP
ZkdldHRpbmdBVmFsdWVQcm9maWxlRm9yKE5vZGUqIG5vZGUpCi17Ci0gICAgaWYgKCFub2RlKQot
ICAgICAgICByZXR1cm4gTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZSgpOwotICAgIAotICAg
IGlmIChWYWx1ZVByb2ZpbGUqIHZhbHVlUHJvZmlsZSA9IHZhbHVlUHJvZmlsZUZvcihub2RlKSkK
LSAgICAgICAgcmV0dXJuIE1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUodmFsdWVQcm9maWxl
KTsKLSAgICAKLSAgICBpZiAobm9kZS0+b3AoKSA9PSBHZXRMb2NhbCkgewotICAgICAgICBDb2Rl
QmxvY2sqIHByb2ZpbGVkQmxvY2sgPSBiYXNlbGluZUNvZGVCbG9ja0Zvcihub2RlLT5vcmlnaW4u
c2VtYW50aWMpOwotICAgICAgICAKLSAgICAgICAgcmV0dXJuIE1ldGhvZE9mR2V0dGluZ0FWYWx1
ZVByb2ZpbGU6OmZyb21MYXp5T3BlcmFuZCgKLSAgICAgICAgICAgIHByb2ZpbGVkQmxvY2ssCi0g
ICAgICAgICAgICBMYXp5T3BlcmFuZFZhbHVlUHJvZmlsZUtleSgKLSAgICAgICAgICAgICAgICBu
b2RlLT5vcmlnaW4uc2VtYW50aWMuYnl0ZWNvZGVJbmRleCwgbm9kZS0+bG9jYWwoKSkpOworICAg
ICAgICBzd2l0Y2ggKG5vZGUtPm9wKCkpIHsKKyAgICAgICAgY2FzZSBJZGVudGl0eToKKyAgICAg
ICAgY2FzZSBWYWx1ZVJlcDoKKyAgICAgICAgY2FzZSBEb3VibGVSZXA6CisgICAgICAgIGNhc2Ug
SW50NTJSZXA6CisgICAgICAgICAgICBub2RlID0gbm9kZS0+Y2hpbGQxKCkubm9kZSgpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBub2RlID0gbnVs
bHB0cjsKKyAgICAgICAgfQogICAgIH0KICAgICAKICAgICByZXR1cm4gTWV0aG9kT2ZHZXR0aW5n
QVZhbHVlUHJvZmlsZSgpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFw
aC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaAko
cmV2aXNpb24gMjAwNTE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5o
CSh3b3JraW5nIGNvcHkpCkBAIC00MDAsNyArNDAwLDYgQEAgcHVibGljOgogICAgICAgICByZXR1
cm4gaGFzRXhpdFNpdGUobm9kZS0+b3JpZ2luLnNlbWFudGljLCBleGl0S2luZCk7CiAgICAgfQog
ICAgIAotICAgIFZhbHVlUHJvZmlsZSogdmFsdWVQcm9maWxlRm9yKE5vZGUqKTsKICAgICBNZXRo
b2RPZkdldHRpbmdBVmFsdWVQcm9maWxlIG1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGVGb3Io
Tm9kZSopOwogICAgIAogICAgIEJsb2NrSW5kZXggbnVtQmxvY2tzKCkgY29uc3QgeyByZXR1cm4g
bV9ibG9ja3Muc2l6ZSgpOyB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05v
ZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAko
cmV2aXNpb24gMjAwNTE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTk1MCw2ICs5NTAsMjEgQEAgc3RydWN0IE5vZGUgewogICAgICAg
ICByZXR1cm4gcmVzdWx0ICYgfk5vZGVCeXRlY29kZU5lZWRzTmVnWmVybzsKICAgICB9CiAKKyAg
ICBib29sIG1heUhhdmVOb25JbnRSZXN1bHQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fZmxh
Z3MgJiBOb2RlTWF5SGF2ZU5vbkludFJlc3VsdDsKKyAgICB9CisgICAgCisgICAgYm9vbCBtYXlI
YXZlRG91YmxlUmVzdWx0KCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX2ZsYWdzICYgTm9kZU1h
eUhhdmVEb3VibGVSZXN1bHQ7CisgICAgfQorICAgIAorICAgIGJvb2wgbWF5SGF2ZU5vbk51bWJl
clJlc3VsdCgpCisgICAgeworICAgICAgICByZXR1cm4gbV9mbGFncyAmIE5vZGVNYXlIYXZlTm9u
TnVtYmVyUmVzdWx0OworICAgIH0KKwogICAgIGJvb2wgaGFzQ29uc3RhbnRCdWZmZXIoKQogICAg
IHsKICAgICAgICAgcmV0dXJuIG9wKCkgPT0gTmV3QXJyYXlCdWZmZXI7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVGbGFncy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlRmxhZ3MuY3BwCShyZXZpc2lvbiAyMDA1MTcpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVGbGFncy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTg1LDYgKzg1LDEyIEBAIHZvaWQgZHVtcE5vZGVGbGFncyhQcmludFN0cmVhbSYgYWN0
dWFsT3UKICAgICAgICAgICAgIG91dC5wcmludChjb21tYSwgIlVzZUFzT3RoZXIiKTsKICAgICB9
CiAKKyAgICBpZiAoZmxhZ3MgJiBOb2RlTWF5SGF2ZURvdWJsZVJlc3VsdCkKKyAgICAgICAgb3V0
LnByaW50KGNvbW1hLCAiTWF5SGF2ZURvdWJsZVJlc3VsdCIpOworCisgICAgaWYgKGZsYWdzICYg
Tm9kZU1heUhhdmVOb25OdW1iZXJSZXN1bHQpCisgICAgICAgIG91dC5wcmludChjb21tYSwgIk1h
eUhhdmVOb25OdW1iZXJSZXN1bHQiKTsKKwogICAgIGlmIChmbGFncyAmIE5vZGVNYXlPdmVyZmxv
d0ludDUyKQogICAgICAgICBvdXQucHJpbnQoY29tbWEsICJNYXlPdmVyZmxvd0ludDUyIik7CiAK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZUZsYWdzLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlRmxhZ3MuaAkocmV2aXNpb24g
MjAwNTE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlRmxhZ3MuaAkod29y
a2luZyBjb3B5KQpAQCAtNDgsMjggKzQ4LDMwIEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2Ug
REZHIHsKICNkZWZpbmUgTm9kZUhhc1ZhckFyZ3MgICAgICAgICAgICAgICAgICAgMHgwMDEwCiAg
ICAgCiAjZGVmaW5lIE5vZGVCZWhhdmlvck1hc2sgICAgICAgICAgICAgICAgIDB4MDdlMAorI2Rl
ZmluZSBOb2RlTWF5SGF2ZURvdWJsZVJlc3VsdCAgICAgICAgICAweDAwMjAKICNkZWZpbmUgTm9k
ZU1heU92ZXJmbG93SW50NTIgICAgICAgICAgICAgMHgwMDQwCiAjZGVmaW5lIE5vZGVNYXlPdmVy
Zmxvd0ludDMySW5CYXNlbGluZSAgIDB4MDA4MAogI2RlZmluZSBOb2RlTWF5T3ZlcmZsb3dJbnQz
MkluREZHICAgICAgICAweDAxMDAKICNkZWZpbmUgTm9kZU1heU5lZ1plcm9JbkJhc2VsaW5lICAg
ICAgICAgMHgwMjAwCiAjZGVmaW5lIE5vZGVNYXlOZWdaZXJvSW5ERkcgICAgICAgICAgICAgIDB4
MDQwMAorI2RlZmluZSBOb2RlTWF5SGF2ZU5vbk51bWJlclJlc3VsdCAgICAgICAweDA4MDAKKyNk
ZWZpbmUgTm9kZU1heUhhdmVOb25JbnRSZXN1bHQgICAgICAgICAgKE5vZGVNYXlIYXZlRG91Ymxl
UmVzdWx0IHwgTm9kZU1heUhhdmVOb25OdW1iZXJSZXN1bHQpCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIAotI2RlZmluZSBOb2RlQnl0ZWNvZGVCYWNrUHJvcE1hc2sgICAgICAgICAw
eGY4MDAKLSNkZWZpbmUgTm9kZUJ5dGVjb2RlVXNlQm90dG9tICAgICAgICAgICAgMHgwMDAwCi0j
ZGVmaW5lIE5vZGVCeXRlY29kZVVzZXNBc051bWJlciAgICAgICAgIDB4MDgwMCAvLyBUaGUgcmVz
dWx0IG9mIHRoaXMgY29tcHV0YXRpb24gbWF5IGJlIHVzZWQgaW4gYSBjb250ZXh0IHRoYXQgb2Jz
ZXJ2ZXMgZnJhY3Rpb25hbCwgb3IgYmlnZ2VyLXRoYW4taW50MzIsIHJlc3VsdHMuCi0jZGVmaW5l
IE5vZGVCeXRlY29kZU5lZWRzTmVnWmVybyAgICAgICAgIDB4MTAwMCAvLyBUaGUgcmVzdWx0IG9m
IHRoaXMgY29tcHV0YXRpb24gbWF5IGJlIHVzZWQgaW4gYSBjb250ZXh0IHRoYXQgb2JzZXJ2ZXMg
LTAuCi0jZGVmaW5lIE5vZGVCeXRlY29kZVVzZXNBc090aGVyICAgICAgICAgIDB4MjAwMCAvLyBU
aGUgcmVzdWx0IG9mIHRoaXMgY29tcHV0YXRpb24gbWF5IGJlIHVzZWQgaW4gYSBjb250ZXh0IHRo
YXQgZGlzdGluZ3Vpc2hlcyBiZXR3ZWVuIE5hTiBhbmQgb3RoZXIgdGhpbmdzIChsaWtlIHVuZGVm
aW5lZCkuCi0jZGVmaW5lIE5vZGVCeXRlY29kZVVzZXNBc1ZhbHVlICAgICAgICAgIChOb2RlQnl0
ZWNvZGVVc2VzQXNOdW1iZXIgfCBOb2RlQnl0ZWNvZGVOZWVkc05lZ1plcm8gfCBOb2RlQnl0ZWNv
ZGVVc2VzQXNPdGhlcikKLSNkZWZpbmUgTm9kZUJ5dGVjb2RlVXNlc0FzSW50ICAgICAgICAgICAg
MHg0MDAwIC8vIFRoZSByZXN1bHQgb2YgdGhpcyBjb21wdXRhdGlvbiBpcyBrbm93biB0byBiZSB1
c2VkIGluIGEgY29udGV4dCB0aGF0IHByZWZlcnMsIGJ1dCBkb2VzIG5vdCByZXF1aXJlLCBpbnRl
Z2VyIHZhbHVlcy4KLSNkZWZpbmUgTm9kZUJ5dGVjb2RlVXNlc0FzQXJyYXlJbmRleCAgICAgMHg4
MDAwIC8vIFRoZSByZXN1bHQgb2YgdGhpcyBjb21wdXRhdGlvbiBpcyBrbm93biB0byBiZSB1c2Vk
IGluIGEgY29udGV4dCB0aGF0IHN0cm9uZ2x5IHByZWZlcnMgaW50ZWdlciB2YWx1ZXMsIHRvIHRo
ZSBwb2ludCB0aGF0IHdlIHNob3VsZCBhdm9pZCB1c2luZyBkb3VibGVzIGlmIGF0IGFsbCBwb3Nz
aWJsZS4KKyNkZWZpbmUgTm9kZUJ5dGVjb2RlQmFja1Byb3BNYXNrICAgICAgICAweDFmMDAwCisj
ZGVmaW5lIE5vZGVCeXRlY29kZVVzZUJvdHRvbSAgICAgICAgICAgMHgwMDAwMAorI2RlZmluZSBO
b2RlQnl0ZWNvZGVVc2VzQXNOdW1iZXIgICAgICAgIDB4MDEwMDAgLy8gVGhlIHJlc3VsdCBvZiB0
aGlzIGNvbXB1dGF0aW9uIG1heSBiZSB1c2VkIGluIGEgY29udGV4dCB0aGF0IG9ic2VydmVzIGZy
YWN0aW9uYWwsIG9yIGJpZ2dlci10aGFuLWludDMyLCByZXN1bHRzLgorI2RlZmluZSBOb2RlQnl0
ZWNvZGVOZWVkc05lZ1plcm8gICAgICAgIDB4MDIwMDAgLy8gVGhlIHJlc3VsdCBvZiB0aGlzIGNv
bXB1dGF0aW9uIG1heSBiZSB1c2VkIGluIGEgY29udGV4dCB0aGF0IG9ic2VydmVzIC0wLgorI2Rl
ZmluZSBOb2RlQnl0ZWNvZGVVc2VzQXNPdGhlciAgICAgICAgIDB4MDQwMDAgLy8gVGhlIHJlc3Vs
dCBvZiB0aGlzIGNvbXB1dGF0aW9uIG1heSBiZSB1c2VkIGluIGEgY29udGV4dCB0aGF0IGRpc3Rp
bmd1aXNoZXMgYmV0d2VlbiBOYU4gYW5kIG90aGVyIHRoaW5ncyAobGlrZSB1bmRlZmluZWQpLgor
I2RlZmluZSBOb2RlQnl0ZWNvZGVVc2VzQXNWYWx1ZSAgICAgICAgIChOb2RlQnl0ZWNvZGVVc2Vz
QXNOdW1iZXIgfCBOb2RlQnl0ZWNvZGVOZWVkc05lZ1plcm8gfCBOb2RlQnl0ZWNvZGVVc2VzQXNP
dGhlcikKKyNkZWZpbmUgTm9kZUJ5dGVjb2RlVXNlc0FzSW50ICAgICAgICAgICAweDA4MDAwIC8v
IFRoZSByZXN1bHQgb2YgdGhpcyBjb21wdXRhdGlvbiBpcyBrbm93biB0byBiZSB1c2VkIGluIGEg
Y29udGV4dCB0aGF0IHByZWZlcnMsIGJ1dCBkb2VzIG5vdCByZXF1aXJlLCBpbnRlZ2VyIHZhbHVl
cy4KKyNkZWZpbmUgTm9kZUJ5dGVjb2RlVXNlc0FzQXJyYXlJbmRleCAgICAweDEwMDAwIC8vIFRo
ZSByZXN1bHQgb2YgdGhpcyBjb21wdXRhdGlvbiBpcyBrbm93biB0byBiZSB1c2VkIGluIGEgY29u
dGV4dCB0aGF0IHN0cm9uZ2x5IHByZWZlcnMgaW50ZWdlciB2YWx1ZXMsIHRvIHRoZSBwb2ludCB0
aGF0IHdlIHNob3VsZCBhdm9pZCB1c2luZyBkb3VibGVzIGlmIGF0IGFsbCBwb3NzaWJsZS4KIAog
I2RlZmluZSBOb2RlQXJpdGhGbGFnc01hc2sgICAgICAgICAgICAgICAoTm9kZUJlaGF2aW9yTWFz
ayB8IE5vZGVCeXRlY29kZUJhY2tQcm9wTWFzaykKIAotI2RlZmluZSBOb2RlSXNGbHVzaGVkICAg
ICAgICAgICAgICAgICAgIDB4MTAwMDAgLy8gQ29tcHV0ZWQgYnkgQ1BTUmV0aHJlYWRpbmdQaGFz
ZSwgd2lsbCB0ZWxsIHlvdSB3aGljaCBsb2NhbCBub2RlcyBhcmUgYmFja3dhcmRzLXJlYWNoYWJs
ZSBmcm9tIGEgRmx1c2guCisjZGVmaW5lIE5vZGVJc0ZsdXNoZWQgICAgICAgICAgICAgICAgICAg
MHgyMDAwMCAvLyBDb21wdXRlZCBieSBDUFNSZXRocmVhZGluZ1BoYXNlLCB3aWxsIHRlbGwgeW91
IHdoaWNoIGxvY2FsIG5vZGVzIGFyZSBiYWNrd2FyZHMtcmVhY2hhYmxlIGZyb20gYSBGbHVzaC4K
IAotI2RlZmluZSBOb2RlTWlzY0ZsYWcxICAgICAgICAgICAgICAgICAgIDB4MjAwMDAKLSNkZWZp
bmUgTm9kZU1pc2NGbGFnMiAgICAgICAgICAgICAgICAgICAweDQwMDAwCi0jZGVmaW5lIE5vZGVN
aXNjRmxhZzMgICAgICAgICAgICAgICAgICAgMHg4MDAwMAorI2RlZmluZSBOb2RlTWlzY0ZsYWcx
ICAgICAgICAgICAgICAgICAgIDB4NDAwMDAKKyNkZWZpbmUgTm9kZU1pc2NGbGFnMiAgICAgICAg
ICAgICAgICAgICAweDgwMDAwCiAKIHR5cGVkZWYgdWludDMyX3QgTm9kZUZsYWdzOwogCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlcjY0LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlcjY0
LmNwcAkocmV2aXNpb24gMjAwNTE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdP
U1JFeGl0Q29tcGlsZXI2NC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEzLTIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEzLTIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMzUs
MTYgKzEzNSwxNiBAQCB2b2lkIE9TUkV4aXRDb21waWxlcjo6Y29tcGlsZUV4aXQoY29uc3QgCiAg
ICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIGlmICghIWV4aXQubV92YWx1ZVByb2ZpbGUpIHsK
LSAgICAgICAgICAgIEVuY29kZWRKU1ZhbHVlKiBidWNrZXQgPSBleGl0Lm1fdmFsdWVQcm9maWxl
LmdldFNwZWNGYWlsQnVja2V0KDApOworICAgICAgICAgICAgTWV0aG9kT2ZHZXR0aW5nQVZhbHVl
UHJvZmlsZSBwcm9maWxlID0gZXhpdC5tX3ZhbHVlUHJvZmlsZTsKICAgICAgICAgICAgIAogICAg
ICAgICAgICAgaWYgKGV4aXQubV9qc1ZhbHVlU291cmNlLmlzQWRkcmVzcygpKSB7CiAgICAgICAg
ICAgICAgICAgLy8gV2UgY2FuJ3QgYmUgc3VyZSB0aGF0IHdlIGhhdmUgYSBzcGFyZSByZWdpc3Rl
ci4gU28gdXNlIHRoZSB0YWdUeXBlTnVtYmVyUmVnaXN0ZXIsCiAgICAgICAgICAgICAgICAgLy8g
c2luY2Ugd2Uga25vdyBob3cgdG8gcmVzdG9yZSBpdC4KICAgICAgICAgICAgICAgICBtX2ppdC5s
b2FkNjQoQXNzZW1ibHlIZWxwZXJzOjpBZGRyZXNzKGV4aXQubV9qc1ZhbHVlU291cmNlLmFzQWRk
cmVzcygpKSwgR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKTsKLSAgICAgICAgICAgICAg
ICBtX2ppdC5zdG9yZTY0KEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3RlciwgYnVja2V0KTsK
KyAgICAgICAgICAgICAgICBwcm9maWxlLmVtaXRSZXBvcnRWYWx1ZShtX2ppdCwgSlNWYWx1ZVJl
Z3MoR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKSk7CiAgICAgICAgICAgICAgICAgbV9q
aXQubW92ZShBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW02NChUYWdUeXBlTnVtYmVyKSwgR1BS
SW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKTsKICAgICAgICAgICAgIH0gZWxzZQotICAgICAg
ICAgICAgICAgIG1faml0LnN0b3JlNjQoZXhpdC5tX2pzVmFsdWVTb3VyY2UuZ3ByKCksIGJ1Y2tl
dCk7CisgICAgICAgICAgICAgICAgcHJvZmlsZS5lbWl0UmVwb3J0VmFsdWUobV9qaXQsIEpTVmFs
dWVSZWdzKGV4aXQubV9qc1ZhbHVlU291cmNlLmdwcigpKSk7CiAgICAgICAgIH0KICAgICB9CiAg
ICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAJ
KHJldmlzaW9uIDIwMDUxNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0
aW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2OCwxNyArMjY4LDYgQEAgRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNOdW1iZXIoc3RhdGljX2Nhc3Q8aW50MzJfdD4oYSA+PiAoYiAmIDB4MWYpKSkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQWRkKEV4ZWNTdGF0ZSog
ZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9w
MikKLXsKLSAgICBWTSogdm0gPSAmZXhlYy0+dm0oKTsKLSAgICBOYXRpdmVDYWxsRnJhbWVUcmFj
ZXIgdHJhY2VyKHZtLCBleGVjKTsKLSAgICAKLSAgICBKU1ZhbHVlIG9wMSA9IEpTVmFsdWU6OmRl
Y29kZShlbmNvZGVkT3AxKTsKLSAgICBKU1ZhbHVlIG9wMiA9IEpTVmFsdWU6OmRlY29kZShlbmNv
ZGVkT3AyKTsKLSAgICAKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQWRkKGV4ZWMsIG9w
MSwgb3AyKSk7Ci19Ci0KIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFs
dWVBZGROb3ROdW1iZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3Ax
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKQogewogICAgIFZNKiB2bSA9ICZleGVjLT52bSgp
OwpAQCAtMzA4LDMyICsyOTcsNiBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblZhCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihhIC8gYikpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsKEV4ZWNTdGF0
ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZE9wMikKLXsKLSAgICBWTSogdm0gPSAmZXhlYy0+dm0oKTsKLSAgICBOYXRpdmVDYWxsRnJhbWVU
cmFjZXIgdHJhY2VyKHZtLCBleGVjKTsKLQotICAgIEpTVmFsdWUgb3AxID0gSlNWYWx1ZTo6ZGVj
b2RlKGVuY29kZWRPcDEpOwotICAgIEpTVmFsdWUgb3AyID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29k
ZWRPcDIpOwotCi0gICAgZG91YmxlIGEgPSBvcDEudG9OdW1iZXIoZXhlYyk7Ci0gICAgZG91Ymxl
IGIgPSBvcDIudG9OdW1iZXIoZXhlYyk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051
bWJlcihhICogYikpOwotfQotCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
blZhbHVlU3ViKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZE9wMikKLXsKLSAgICBWTSogdm0gPSAmZXhlYy0+dm0oKTsKLSAg
ICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBleGVjKTsKLSAgICAKLSAgICBKU1Zh
bHVlIG9wMSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AxKTsKLSAgICBKU1ZhbHVlIG9wMiA9
IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AyKTsKLQotICAgIGRvdWJsZSBhID0gb3AxLnRvTnVt
YmVyKGV4ZWMpOwotICAgIGRvdWJsZSBiID0gb3AyLnRvTnVtYmVyKGV4ZWMpOwotICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoYSAtIGIpKTsKLX0KLQogc3RhdGljIEFMV0FZU19J
TkxJTkUgRW5jb2RlZEpTVmFsdWUgZ2V0QnlWYWwoRXhlY1N0YXRlKiBleGVjLCBKU0NlbGwqIGJh
c2UsIHVpbnQzMl90IGluZGV4KQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaAkocmV2aXNpb24gMjAwNTE3
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTUxLDExICs1MSw4IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uVmEKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVCaXRM
U2hpZnQoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZE9wMikgV1RGX0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBvcGVyYXRpb25WYWx1ZUJpdFJTaGlmdChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSBXVEZfSU5URVJOQUw7CiBFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQml0VVJTaGlmdChFeGVjU3RhdGUq
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSBX
VEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVl
QWRkKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRPcDIpIFdURl9JTlRFUk5BTDsKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uVmFsdWVBZGROb3ROdW1iZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikgV1RGX0lOVEVSTkFMOwogRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZURpdihFeGVjU3RhdGUqLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSBXVEZfSU5U
RVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsKEV4
ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRPcDIpIFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uVmFsdWVTdWIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZE9wMikgV1RGX0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25HZXRCeVZhbChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFByb3BlcnR5KSBXVEZfSU5URVJOQUw7CiBF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5VmFsQ2VsbChFeGVjU3Rh
dGUqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkUHJvcGVydHkpIFdURl9JTlRFUk5B
TDsKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlWYWxBcnJheUlu
dChFeGVjU3RhdGUqLCBKU0FycmF5KiwgaW50MzJfdCkgV1RGX0lOVEVSTkFMOwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJv
cGFnYXRpb25QaGFzZS5jcHAJKHJldmlzaW9uIDIwMDUxNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xOTEsMTMgKzE5MSwxNiBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICAgICAg
Y2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY0ludDUyT25seSk7CiAgICAgICAgICAgICAg
ICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVk
aWN0aW9uKHNwZWN1bGF0ZWREb3VibGVUeXBlRm9yUHJlZGljdGlvbnMobGVmdCwgcmlnaHQpKTsK
LSAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKAotICAgICAgICAgICAgICAgICAgICAhKGxlZnQg
JiAoU3BlY0Z1bGxOdW1iZXIgfCBTcGVjQm9vbGVhbikpCi0gICAgICAgICAgICAgICAgICAgIHx8
ICEocmlnaHQgJiAoU3BlY0Z1bGxOdW1iZXIgfCBTcGVjQm9vbGVhbikpKSB7CisgICAgICAgICAg
ICAgICAgfSBlbHNlIGlmIChpc1N0cmluZ09yU3RyaW5nT2JqZWN0U3BlY3VsYXRpb24obGVmdCkg
JiYgaXNTdHJpbmdPclN0cmluZ09iamVjdFNwZWN1bGF0aW9uKHJpZ2h0KSkgewogICAgICAgICAg
ICAgICAgICAgICAvLyBsZWZ0IG9yIHJpZ2h0IGlzIGRlZmluaXRlbHkgc29tZXRoaW5nIG90aGVy
IHRoYW4gYSBudW1iZXIuCiAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVk
aWN0aW9uKFNwZWNTdHJpbmcpOwotICAgICAgICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAg
ICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjU3RyaW5nIHwgU3BlY0ludDMy
T25seSB8IFNwZWNCeXRlY29kZURvdWJsZSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY0ludDMyT25s
eSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChub2RlLT5tYXlIYXZlRG91YmxlUmVzdWx0KCkp
CisgICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVj
Qnl0ZWNvZGVEb3VibGUpOworICAgICAgICAgICAgICAgICAgICBpZiAobm9kZS0+bWF5SGF2ZU5v
bk51bWJlclJlc3VsdCgpKQorICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJn
ZVByZWRpY3Rpb24oU3BlY1N0cmluZyk7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
fQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTIxMSw4ICsyMTQsMTIgQEAgcHJp
dmF0ZToKICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3Bl
Y0ludDMyT25seSk7CiAgICAgICAgICAgICAgICAgZWxzZSBpZiAobV9ncmFwaC5hZGRTaG91bGRT
cGVjdWxhdGVBbnlJbnQobm9kZSkpCiAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVy
Z2VQcmVkaWN0aW9uKFNwZWNJbnQ1Mk9ubHkpOwotICAgICAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICBlbHNlIGlmIChpc0Z1bGxOdW1iZXJPckJvb2xlYW5TcGVjdWxhdGlvbihsZWZ0
KSAmJiBpc0Z1bGxOdW1iZXJPckJvb2xlYW5TcGVjdWxhdGlvbihyaWdodCkpCiAgICAgICAgICAg
ICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKHNwZWN1bGF0ZWREb3VibGVUeXBl
Rm9yUHJlZGljdGlvbnMobGVmdCwgcmlnaHQpKTsKKyAgICAgICAgICAgICAgICBlbHNlIGlmIChu
b2RlLT5tYXlIYXZlTm9uSW50UmVzdWx0KCkgfHwgKGxlZnQgJiBTcGVjQnl0ZWNvZGVEb3VibGUp
IHx8IChyaWdodCAmIFNwZWNCeXRlY29kZURvdWJsZSkpCisgICAgICAgICAgICAgICAgICAgIGNo
YW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKFNwZWNJbnQzMk9ubHkgfCBTcGVjQnl0ZWNvZGVEb3Vi
bGUpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8
PSBtZXJnZVByZWRpY3Rpb24oU3BlY0ludDMyT25seSk7CiAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgfQpAQCAtMjMwLDggKzIzNywxMCBAQCBwcml2YXRlOgogICAg
ICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY0ludDUy
T25seSk7CiAgICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAg
IGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKHNwZWN1bGF0ZWREb3VibGVUeXBlRm9yUHJlZGlj
dGlvbnMobGVmdCwgcmlnaHQpKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAg
ICAgICB9IGVsc2UgaWYgKG5vZGUtPm1heUhhdmVOb25JbnRSZXN1bHQoKSB8fCAobGVmdCAmIFNw
ZWNCeXRlY29kZURvdWJsZSkgfHwgKHJpZ2h0ICYgU3BlY0J5dGVjb2RlRG91YmxlKSkKICAgICAg
ICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY0ludDMyT25seSB8
IFNwZWNCeXRlY29kZURvdWJsZSk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
ICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjSW50MzJPbmx5KTsKICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC0yNjcsNiArMjc2LDEw
IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBTcGVjdWxhdGVkVHlwZSByaWdodCA9IG5vZGUtPmNo
aWxkMigpLT5wcmVkaWN0aW9uKCk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGlmIChsZWZ0
ICYmIHJpZ2h0KSB7CisgICAgICAgICAgICAgICAgLy8gRklYTUU6IFdlJ3JlIGN1cnJlbnRseSBy
ZWx5aW5nIG9uIHByZWRpY3Rpb24gcHJvcGFnYXRpb24gYW5kIGJhY2t3YXJkcyBwcm9wYWdhdGlv
bgorICAgICAgICAgICAgICAgIC8vIHdoZW5ldmVyIHdlIGNhbiwgYW5kIG9ubHkgZmFsbGluZyBi
YWNrIG9uIHJlc3VsdCBmbGFncyBpZiB0aGF0IGZhaWxzLiBBbmQgdGhlIHJlc3VsdAorICAgICAg
ICAgICAgICAgIC8vIGZsYWdzIGxvZ2ljIGRvZXNuJ3Qga25vdyBob3cgdG8gdXNlIGJhY2t3YXJk
cyBwcm9wYWdhdGlvbi4gV2Ugc2hvdWxkIGdldCByaWQgb2YgdGhlCisgICAgICAgICAgICAgICAg
Ly8gcHJlZGljdGlvbiBwcm9wYWdhdGlvbiBsb2dpYyBhbmQgcmVseSBzb2xlbHkgb24gdGhlIHJl
c3VsdCB0eXBlLgogICAgICAgICAgICAgICAgIGlmIChpc0Z1bGxOdW1iZXJPckJvb2xlYW5TcGVj
dWxhdGlvbkV4cGVjdGluZ0RlZmluZWQobGVmdCkKICAgICAgICAgICAgICAgICAgICAgJiYgaXNG
dWxsTnVtYmVyT3JCb29sZWFuU3BlY3VsYXRpb25FeHBlY3RpbmdEZWZpbmVkKHJpZ2h0KSkgewog
ICAgICAgICAgICAgICAgICAgICBpZiAobV9ncmFwaC5iaW5hcnlBcml0aFNob3VsZFNwZWN1bGF0
ZUludDMyKG5vZGUsIG1fcGFzcykpCkBAIC0yNzUsOCArMjg4LDE0IEBAIHByaXZhdGU6CiAgICAg
ICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjSW50NTJP
bmx5KTsKICAgICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICAgICAg
Y2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oc3BlY3VsYXRlZERvdWJsZVR5cGVGb3JQcmVkaWN0
aW9ucyhsZWZ0LCByaWdodCkpOwotICAgICAgICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAg
ICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjSW50MzJPbmx5IHwgU3BlY0J5
dGVjb2RlRG91YmxlKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAg
ICAgICBpZiAobm9kZS0+bWF5SGF2ZU5vbkludFJlc3VsdCgpCisgICAgICAgICAgICAgICAgICAg
ICAgICB8fCAobGVmdCAmIFNwZWNCeXRlY29kZURvdWJsZSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHx8IChyaWdodCAmIFNwZWNCeXRlY29kZURvdWJsZSkpCisgICAgICAgICAgICAgICAgICAg
ICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjSW50MzJPbmx5IHwgU3BlY0J5dGVj
b2RlRG91YmxlKTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAg
ICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY0ludDMyT25seSk7CisgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VDY0LmNwcAkocmV2aXNpb24gMjAwNTE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTA1LDcgKzkwNSw3IEBA
IEdQUlJlZyBTcGVjdWxhdGl2ZUpJVDo6ZmlsbFNwZWN1bGF0ZUludDMKIAogICAgIG1faW50ZXJw
cmV0ZXIuZmlsdGVyKHZhbHVlLCBTcGVjSW50MzJPbmx5KTsKICAgICBpZiAodmFsdWUuaXNDbGVh
cigpKSB7Ci0gICAgICAgIHRlcm1pbmF0ZVNwZWN1bGF0aXZlRXhlY3V0aW9uKFVuY291bnRhYmxl
LCBKU1ZhbHVlUmVncygpLCAwKTsKKyAgICAgICAgdGVybWluYXRlU3BlY3VsYXRpdmVFeGVjdXRp
b24oQmFkVHlwZSwgSlNWYWx1ZVJlZ3MoKSwgMCk7CiAgICAgICAgIHJldHVybkZvcm1hdCA9IERh
dGFGb3JtYXRJbnQzMjsKICAgICAgICAgcmV0dXJuIGFsbG9jYXRlKCk7CiAgICAgfQpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAkocmV2aXNp
b24gMjAwNTE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNjcyLDIzICsxNjcyLDYgQEAgcHVibGljOgogICAgIH0K
ICNlbHNlIC8vIFVTRShKU1ZBTFVFMzJfNjQpCiAKLS8vIEVuY29kZWRKU1ZhbHVlIGluIEpTVkFM
VUUzMl82NCBpcyBhIDY0LWJpdCBpbnRlZ2VyLiBXaGVuIGJlaW5nIGNvbXBpbGVkIGluIEFSTSBF
QUJJLCBpdCBtdXN0IGJlIGFsaWduZWQgb24gYW4gZXZlbi1udW1iZXJlZCByZWdpc3RlciAocjAs
IHIyIG9yIFtzcF0pLgotLy8gVG8gcHJldmVudCB0aGUgYXNzZW1ibGVyIGZyb20gdXNpbmcgd3Jv
bmcgcmVnaXN0ZXJzLCBsZXQncyBvY2N1cHkgcjEgb3IgcjMgd2l0aCBhIGR1bW15IGFyZ3VtZW50
IHdoZW4gbmVjZXNzYXJ5LgotI2lmIChDT01QSUxFUl9TVVBQT1JUUyhFQUJJKSAmJiBDUFUoQVJN
KSkgfHwgQ1BVKE1JUFMpCi0jZGVmaW5lIEVBQklfMzJCSVRfRFVNTVlfQVJHICAgICAgVHJ1c3Rl
ZEltbTMyKDApLAotI2Vsc2UKLSNkZWZpbmUgRUFCSV8zMkJJVF9EVU1NWV9BUkcKLSNlbmRpZgot
Ci0vLyBKU1ZBTFVFMzJfNjQgaXMgYSA2NC1iaXQgaW50ZWdlciB0aGF0IGNhbm5vdCBiZSBwdXQg
aGFsZiBpbiBhbiBhcmd1bWVudCByZWdpc3RlciBhbmQgaGFsZiBvbiBzdGFjayB3aGVuIHVzaW5n
IFNINCBhcmNoaXRlY3R1cmUuCi0vLyBUbyBhdm9pZCB0aGlzLCBsZXQncyBvY2N1cHkgdGhlIDR0
aCBhcmd1bWVudCByZWdpc3RlciAocjcpIHdpdGggYSBkdW1teSBhcmd1bWVudCB3aGVuIG5lY2Vz
c2FyeS4gVGhpcyBtdXN0IG9ubHkgYmUgZG9uZSB3aGVuIHRoZXJlCi0vLyBpcyBubyBvdGhlciAz
Mi1iaXQgdmFsdWUgYXJndW1lbnQgYmVoaW5kIHRoaXMgNjQtYml0IEpTVmFsdWUuCi0jaWYgQ1BV
KFNINCkKLSNkZWZpbmUgU0g0XzMyQklUX0RVTU1ZX0FSRyAgICAgIFRydXN0ZWRJbW0zMigwKSwK
LSNlbHNlCi0jZGVmaW5lIFNINF8zMkJJVF9EVU1NWV9BUkcKLSNlbmRpZgotCiAgICAgSklUQ29t
cGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FT0pJVWkgb3BlcmF0aW9u
LCBHUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzJUYWcsIEdQUlJlZyBhcmcyUGF5bG9hZCwgVW5pcXVl
ZFN0cmluZ0ltcGwqIGltcGwsIHVuc2lnbmVkIHZhbHVlKQogICAgIHsKICAgICAgICAgbV9qaXQu
c2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFyZzJQYXlsb2FkLCBhcmcyVGFnLCBU
cnVzdGVkSW1tUHRyKGltcGwpLCBUcnVzdGVkSW1tMzIodmFsdWUpKTsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhpdENvbXBpbGVyLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4aXRDb21waWxlci5jcHAJKHJldmlzaW9u
IDIwMDUxNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhpdENvbXBpbGVy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTMtMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTMtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4NCw4ICsyODQsOCBAQCBzdGF0aWMgdm9pZCBjb21w
aWxlU3R1YigKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCi0gICAgICAgIGlmICghIWV4aXQu
bV9kZXNjcmlwdG9yLT5tX3ZhbHVlUHJvZmlsZSkKLSAgICAgICAgICAgIGppdC5zdG9yZTY0KEdQ
UkluZm86OnJlZ1QwLCBleGl0Lm1fZGVzY3JpcHRvci0+bV92YWx1ZVByb2ZpbGUuZ2V0U3BlY0Zh
aWxCdWNrZXQoMCkpOworICAgICAgICBpZiAoZXhpdC5tX2Rlc2NyaXB0b3ItPm1fdmFsdWVQcm9m
aWxlKQorICAgICAgICAgICAgZXhpdC5tX2Rlc2NyaXB0b3ItPm1fdmFsdWVQcm9maWxlLmVtaXRS
ZXBvcnRWYWx1ZShqaXQsIEpTVmFsdWVSZWdzKEdQUkluZm86OnJlZ1QwKSk7CiAgICAgfQogCiAg
ICAgLy8gTWF0ZXJpYWxpemUgYWxsIG9iamVjdHMuIERvbid0IG1hdGVyaWFsaXplIGFuIG9iamVj
dCB1bnRpbCBhbGwKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxw
ZXJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhl
bHBlcnMuaAkocmV2aXNpb24gMjAwNTE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9B
c3NlbWJseUhlbHBlcnMuaAkod29ya2luZyBjb3B5KQpAQCAtNjUzLDExICs2NTMsNiBAQCBwdWJs
aWM6CiAjZW5kaWYKICAgICB9CiAKLSAgICBlbnVtIFRhZ1JlZ2lzdGVyc01vZGUgewotICAgICAg
ICBEb05vdEhhdmVUYWdSZWdpc3RlcnMsCi0gICAgICAgIEhhdmVUYWdSZWdpc3RlcnMKLSAgICB9
OwotCiAgICAgSnVtcCBicmFuY2hJZk5vdENlbGwoR1BSUmVnIHJlZywgVGFnUmVnaXN0ZXJzTW9k
ZSBtb2RlID0gSGF2ZVRhZ1JlZ2lzdGVycykKICAgICB7CiAjaWYgVVNFKEpTVkFMVUU2NCkKQEAg
LTc4Myw2ICs3NzgsMTggQEAgcHVibGljOgogI2VuZGlmCiAgICAgfQogCisgICAgSnVtcCBicmFu
Y2hJZk5vdERvdWJsZUtub3duTm90SW50MzIoSlNWYWx1ZVJlZ3MgcmVncywgVGFnUmVnaXN0ZXJz
TW9kZSBtb2RlID0gSGF2ZVRhZ1JlZ2lzdGVycykKKyAgICB7CisjaWYgVVNFKEpTVkFMVUU2NCkK
KyAgICAgICAgaWYgKG1vZGUgPT0gSGF2ZVRhZ1JlZ2lzdGVycykKKyAgICAgICAgICAgIHJldHVy
biBicmFuY2hUZXN0NjQoWmVybywgcmVncy5ncHIoKSwgR1BSSW5mbzo6dGFnVHlwZU51bWJlclJl
Z2lzdGVyKTsKKyAgICAgICAgcmV0dXJuIGJyYW5jaFRlc3Q2NChaZXJvLCByZWdzLmdwcigpLCBU
cnVzdGVkSW1tNjQoVGFnVHlwZU51bWJlcikpOworI2Vsc2UKKyAgICAgICAgVU5VU0VEX1BBUkFN
KG1vZGUpOworICAgICAgICByZXR1cm4gYnJhbmNoMzIoQWJvdmVPckVxdWFsLCByZWdzLnRhZ0dQ
UigpLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6TG93ZXN0VGFnKSk7CisjZW5kaWYKKyAgICB9CisK
ICAgICAvLyBOb3RlIHRoYXQgdGhlIHRlbXBHUFIgaXMgbm90IHVzZWQgaW4gMzItYml0IG1vZGUu
CiAgICAgSnVtcCBicmFuY2hJZkJvb2xlYW4oSlNWYWx1ZVJlZ3MgcmVncywgR1BSUmVnIHRlbXBH
UFIpCiAgICAgewpAQCAtODQ4LDcgKzg1NSw4IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBKdW1w
TGlzdCBicmFuY2hJZk5vdFR5cGUoCi0gICAgICAgIEpTVmFsdWVSZWdzLCBHUFJSZWcgdGVtcEdQ
UiwgY29uc3QgSW5mZXJyZWRUeXBlOjpEZXNjcmlwdG9yJiwgVGFnUmVnaXN0ZXJzTW9kZSk7Cisg
ICAgICAgIEpTVmFsdWVSZWdzLCBHUFJSZWcgdGVtcEdQUiwgY29uc3QgSW5mZXJyZWRUeXBlOjpE
ZXNjcmlwdG9yJiwKKyAgICAgICAgVGFnUmVnaXN0ZXJzTW9kZSA9IEhhdmVUYWdSZWdpc3RlcnMp
OwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KICAgICBKdW1wIGJyYW5jaFN0cnVjdHVyZShS
ZWxhdGlvbmFsQ29uZGl0aW9uIGNvbmRpdGlvbiwgVCBsZWZ0SGFuZFNpZGUsIFN0cnVjdHVyZSog
c3RydWN0dXJlKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5o
CShyZXZpc2lvbiAyMDA1MTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVs
cGVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC00MCw2ICs0MCwyMyBAQCBuYW1lc3BhY2UgSlNDIHsK
ICNkZWZpbmUgUE9LRV9BUkdVTUVOVF9PRkZTRVQgMAogI2VuZGlmCiAKKy8vIEVuY29kZWRKU1Zh
bHVlIGluIEpTVkFMVUUzMl82NCBpcyBhIDY0LWJpdCBpbnRlZ2VyLiBXaGVuIGJlaW5nIGNvbXBp
bGVkIGluIEFSTSBFQUJJLCBpdCBtdXN0IGJlIGFsaWduZWQgZXZlbi1udW1iZXJlZCByZWdpc3Rl
ciAocjAsIHIyIG9yIFtzcF0pLgorLy8gVG8gYXZvaWQgYXNzZW1ibGllcyBmcm9tIHVzaW5nIHdy
b25nIHJlZ2lzdGVycywgbGV0J3Mgb2NjdXB5IHIxIG9yIHIzIHdpdGggYSBkdW1teSBhcmd1bWVu
dCB3aGVuIG5lY2Vzc2FyeS4KKyNpZiAoQ09NUElMRVJfU1VQUE9SVFMoRUFCSSkgJiYgQ1BVKEFS
TSkpIHx8IENQVShNSVBTKQorI2RlZmluZSBFQUJJXzMyQklUX0RVTU1ZX0FSRyAgICAgIFRydXN0
ZWRJbW0zMigwKSwKKyNlbHNlCisjZGVmaW5lIEVBQklfMzJCSVRfRFVNTVlfQVJHCisjZW5kaWYK
KworLy8gSlNWQUxVRTMyXzY0IGlzIGEgNjQtYml0IGludGVnZXIgdGhhdCBjYW5ub3QgYmUgcHV0
IGhhbGYgaW4gYW4gYXJndW1lbnQgcmVnaXN0ZXIgYW5kIGhhbGYgb24gc3RhY2sgd2hlbiB1c2lu
ZyBTSDQgYXJjaGl0ZWN0dXJlLgorLy8gVG8gYXZvaWQgdGhpcywgbGV0J3Mgb2NjdXB5IHRoZSA0
dGggYXJndW1lbnQgcmVnaXN0ZXIgKHI3KSB3aXRoIGEgZHVtbXkgYXJndW1lbnQgd2hlbiBuZWNl
c3NhcnkuIFRoaXMgbXVzdCBvbmx5IGJlIGRvbmUgd2hlbiB0aGVyZQorLy8gaXMgbm8gb3RoZXIg
MzItYml0IHZhbHVlIGFyZ3VtZW50IGJlaGluZCB0aGlzIDY0LWJpdCBKU1ZhbHVlLgorI2lmIENQ
VShTSDQpCisjZGVmaW5lIFNINF8zMkJJVF9EVU1NWV9BUkcgICAgICBUcnVzdGVkSW1tMzIoMCks
CisjZWxzZQorI2RlZmluZSBTSDRfMzJCSVRfRFVNTVlfQVJHCisjZW5kaWYKKwogY2xhc3MgQ0Nh
bGxIZWxwZXJzIDogcHVibGljIEFzc2VtYmx5SGVscGVycyB7CiBwdWJsaWM6CiAgICAgQ0NhbGxI
ZWxwZXJzKFZNKiB2bSwgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSAwKQpAQCAtMjEyMiw2ICsyMTM5
LDE1IEBAIHB1YmxpYzoKICAgICB9CiAjZW5kaWYKICAgICAKKyAgICB2b2lkIHNldHVwQXJndW1l
bnRzV2l0aEV4ZWNTdGF0ZShKU1ZhbHVlUmVncyBhcmcxLCBKU1ZhbHVlUmVncyBhcmcyLCBUcnVz
dGVkSW1tUHRyIGFyZzMpCisgICAgeworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgICAgIHNldHVw
QXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLmdwcigpLCBhcmcyLmdwcigpLCBhcmczKTsKKyNl
bHNlCisgICAgICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShFQUJJXzMyQklUX0RVTU1Z
X0FSRyBhcmcxLnBheWxvYWRHUFIoKSwgYXJnMS50YWdHUFIoKSwgYXJnMi5wYXlsb2FkR1BSKCks
IGFyZzMudGFnR1BSKCksIGFyZzMpOworI2VuZGlmCisgICAgfQorICAgIAogICAgIHZvaWQgc2V0
dXBBcmd1bWVudHMoSlNWYWx1ZVJlZ3MgYXJnMSkKICAgICB7CiAjaWYgVVNFKEpTVkFMVUU2NCkK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSW50cmluc2ljRW1pdHRlci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9JbnRyaW5zaWNFbWl0dGVyLmNw
cAkocmV2aXNpb24gMjAwNTE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9JbnRyaW5z
aWNFbWl0dGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzgsNyArNzgsNyBAQCB2b2lkIEFjY2Vz
c0Nhc2U6OmVtaXRJbnRyaW5zaWNHZXR0ZXIoQWNjCiAgICAgc3dpdGNoIChpbnRyaW5zaWMoKSkg
ewogICAgIGNhc2UgVHlwZWRBcnJheUxlbmd0aEludHJpbnNpYzogewogICAgICAgICBqaXQubG9h
ZDMyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0YXRlLmJhc2VHUFIsIEpTQXJyYXlCdWZmZXJW
aWV3OjpvZmZzZXRPZkxlbmd0aCgpKSwgdmFsdWVHUFIpOwotICAgICAgICBqaXQuYm94SW50MzIo
dmFsdWVHUFIsIHZhbHVlUmVncywgQ0NhbGxIZWxwZXJzOjpEb05vdEhhdmVUYWdSZWdpc3RlcnMp
OworICAgICAgICBqaXQuYm94SW50MzIodmFsdWVHUFIsIHZhbHVlUmVncyk7CiAgICAgICAgIHN0
YXRlLnN1Y2NlZWQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTkzLDcgKzkzLDcgQEAg
dm9pZCBBY2Nlc3NDYXNlOjplbWl0SW50cmluc2ljR2V0dGVyKEFjYwogICAgICAgICAgICAgaml0
LmxzaGlmdDMyKHZhbHVlR1BSLCBJbW0zMihsb2dFbGVtZW50U2l6ZSh0eXBlKSksIHZhbHVlR1BS
KTsKICAgICAgICAgfQogCi0gICAgICAgIGppdC5ib3hJbnQzMih2YWx1ZUdQUiwgdmFsdWVSZWdz
LCBDQ2FsbEhlbHBlcnM6OkRvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7CisgICAgICAgIGppdC5ib3hJ
bnQzMih2YWx1ZUdQUiwgdmFsdWVSZWdzKTsKICAgICAgICAgc3RhdGUuc3VjY2VlZCgpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQpAQCAtMTE5LDcgKzExOSw3IEBAIHZvaWQgQWNjZXNzQ2FzZTo6
ZW1pdEludHJpbnNpY0dldHRlcihBY2MKICAgICAgICAgCiAgICAgICAgIGRvbmUubGluaygmaml0
KTsKICAgICAgICAgCi0gICAgICAgIGppdC5ib3hJbnQzMih2YWx1ZUdQUiwgdmFsdWVSZWdzLCBD
Q2FsbEhlbHBlcnM6OkRvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7CisgICAgICAgIGppdC5ib3hJbnQz
Mih2YWx1ZUdQUiwgdmFsdWVSZWdzKTsKICAgICAgICAgc3RhdGUuc3VjY2VlZCgpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCShyZXZpc2lvbiAy
MDA1MTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCSh3b3JraW5nIGNvcHkp
CkBAIC03NTAsNiArNzUwLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAjZW5kaWYKICAgICAgICAgTWFj
cm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkksIGludCwg
R1BSUmVnLCBVbmlxdWVkU3RyaW5nSW1wbCopOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2Fs
bCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSiwgaW50LCBHUFJSZWcsIEdQUlJlZyk7
CisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRp
b25fRUpKUnAsIEpTVmFsdWVSZWdzLCBKU1ZhbHVlUmVncywgSlNWYWx1ZVJlZ3MsIFJlc3VsdFBy
b2ZpbGUqKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJ
VE9wZXJhdGlvbl9FSkpBcCwgaW50LCBHUFJSZWcsIEdQUlJlZywgQXJyYXlQcm9maWxlKik7CiAg
ICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25f
RUpKQnksIGludCwgR1BSUmVnLCBHUFJSZWcsIEJ5VmFsSW5mbyopOwogICAgICAgICBNYWNyb0Fz
c2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFpfSklUT3BlcmF0aW9uX0VKT0osIEdQUlJlZywg
R1BSUmVnLCBHUFJSZWcpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBZGRH
ZW5lcmF0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
QWRkR2VuZXJhdG9yLmNwcAkocmV2aXNpb24gMjAwNTE3KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRBZGRHZW5lcmF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjgsNiArMTI4
LDkgQEAgdm9pZCBKSVRBZGRHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoQwogCiAgICAgLy8g
RG8gZG91YmxlVmFyICsgZG91YmxlVmFyLgogICAgIGppdC5hZGREb3VibGUobV9yaWdodEZQUiwg
bV9sZWZ0RlBSKTsKKyAgICBpZiAobV9yZXN1bHRQcm9maWxlKQorICAgICAgICBtX3Jlc3VsdFBy
b2ZpbGUtPmVtaXRTZXREb3VibGUoaml0KTsKKyAgICAgICAgCiAgICAgaml0LmJveERvdWJsZSht
X2xlZnRGUFIsIG1fcmVzdWx0KTsKIH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRBZGRHZW5lcmF0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVEFkZEdlbmVyYXRvci5oCShyZXZpc2lvbiAyMDA1MTcpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVEFkZEdlbmVyYXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICsz
Nyw4IEBAIGNsYXNzIEpJVEFkZEdlbmVyYXRvciB7CiBwdWJsaWM6CiAgICAgSklUQWRkR2VuZXJh
dG9yKFNuaXBwZXRPcGVyYW5kIGxlZnRPcGVyYW5kLCBTbmlwcGV0T3BlcmFuZCByaWdodE9wZXJh
bmQsCiAgICAgICAgIEpTVmFsdWVSZWdzIHJlc3VsdCwgSlNWYWx1ZVJlZ3MgbGVmdCwgSlNWYWx1
ZVJlZ3MgcmlnaHQsCi0gICAgICAgIEZQUlJlZyBsZWZ0RlBSLCBGUFJSZWcgcmlnaHRGUFIsIEdQ
UlJlZyBzY3JhdGNoR1BSLCBGUFJSZWcgc2NyYXRjaEZQUikKKyAgICAgICAgRlBSUmVnIGxlZnRG
UFIsIEZQUlJlZyByaWdodEZQUiwgR1BSUmVnIHNjcmF0Y2hHUFIsIEZQUlJlZyBzY3JhdGNoRlBS
LAorICAgICAgICBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlID0gbnVsbHB0cikKICAgICAg
ICAgOiBtX2xlZnRPcGVyYW5kKGxlZnRPcGVyYW5kKQogICAgICAgICAsIG1fcmlnaHRPcGVyYW5k
KHJpZ2h0T3BlcmFuZCkKICAgICAgICAgLCBtX3Jlc3VsdChyZXN1bHQpCkBAIC00Nyw2ICs0OCw3
IEBAIHB1YmxpYzoKICAgICAgICAgLCBtX3JpZ2h0RlBSKHJpZ2h0RlBSKQogICAgICAgICAsIG1f
c2NyYXRjaEdQUihzY3JhdGNoR1BSKQogICAgICAgICAsIG1fc2NyYXRjaEZQUihzY3JhdGNoRlBS
KQorICAgICAgICAsIG1fcmVzdWx0UHJvZmlsZShyZXN1bHRQcm9maWxlKQogICAgIHsKICAgICAg
ICAgQVNTRVJUKCFtX2xlZnRPcGVyYW5kLmlzQ29uc3RJbnQzMigpIHx8ICFtX3JpZ2h0T3BlcmFu
ZC5pc0NvbnN0SW50MzIoKSk7CiAgICAgfQpAQCAtNjcsNiArNjksNyBAQCBwcml2YXRlOgogICAg
IEZQUlJlZyBtX3JpZ2h0RlBSOwogICAgIEdQUlJlZyBtX3NjcmF0Y2hHUFI7CiAgICAgRlBSUmVn
IG1fc2NyYXRjaEZQUjsKKyAgICBSZXN1bHRQcm9maWxlKiBtX3Jlc3VsdFByb2ZpbGU7CiAgICAg
Ym9vbCBtX2RpZEVtaXRGYXN0UGF0aCB7IGZhbHNlIH07CiAKICAgICBDQ2FsbEhlbHBlcnM6Okp1
bXBMaXN0IG1fZW5kSnVtcExpc3Q7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VEFyaXRobWV0aWMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUQXJpdGhtZXRpYy5jcHAJKHJldmlzaW9uIDIwMDUxNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUQXJpdGhtZXRpYy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY5Niw2ICs2OTYs
MTAgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfYWRkKEluc3RydWN0aW9uKiBjdXJyZQogICAgIEZQUlJl
ZyBzY3JhdGNoRlBSID0gZnBSZWdUMjsKICNlbmRpZgogCisgICAgUmVzdWx0UHJvZmlsZSogcmVz
dWx0UHJvZmlsZSA9IG51bGxwdHI7CisgICAgaWYgKHNob3VsZEVtaXRQcm9maWxpbmcoKSkKKyAg
ICAgICAgcmVzdWx0UHJvZmlsZSA9IG1fY29kZUJsb2NrLT5lbnN1cmVSZXN1bHRQcm9maWxlKG1f
Ynl0ZWNvZGVPZmZzZXQpOworCiAgICAgU25pcHBldE9wZXJhbmQgbGVmdE9wZXJhbmQodHlwZXMu
Zmlyc3QoKSk7CiAgICAgU25pcHBldE9wZXJhbmQgcmlnaHRPcGVyYW5kKHR5cGVzLnNlY29uZCgp
KTsKIApAQCAtNzEyLDcgKzcxNiw3IEBAIHZvaWQgSklUOjplbWl0X29wX2FkZChJbnN0cnVjdGlv
biogY3VycmUKICAgICAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihvcDIsIHJpZ2h0UmVncyk7
CiAKICAgICBKSVRBZGRHZW5lcmF0b3IgZ2VuKGxlZnRPcGVyYW5kLCByaWdodE9wZXJhbmQsIHJl
c3VsdFJlZ3MsIGxlZnRSZWdzLCByaWdodFJlZ3MsCi0gICAgICAgIGZwUmVnVDAsIGZwUmVnVDEs
IHNjcmF0Y2hHUFIsIHNjcmF0Y2hGUFIpOworICAgICAgICBmcFJlZ1QwLCBmcFJlZ1QxLCBzY3Jh
dGNoR1BSLCBzY3JhdGNoRlBSLCByZXN1bHRQcm9maWxlKTsKIAogICAgIGdlbi5nZW5lcmF0ZUZh
c3RQYXRoKCp0aGlzKTsKIApAQCAtNzI0LDggKzcyOCwxMyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9h
ZGQoSW5zdHJ1Y3Rpb24qIGN1cnJlCiAgICAgfSBlbHNlIHsKICAgICAgICAgQVNTRVJUKGdlbi5l
bmRKdW1wTGlzdCgpLmVtcHR5KCkpOwogICAgICAgICBBU1NFUlQoZ2VuLnNsb3dQYXRoSnVtcExp
c3QoKS5lbXB0eSgpKTsKLSAgICAgICAgSklUU2xvd1BhdGhDYWxsIHNsb3dQYXRoQ2FsbCh0aGlz
LCBjdXJyZW50SW5zdHJ1Y3Rpb24sIHNsb3dfcGF0aF9hZGQpOwotICAgICAgICBzbG93UGF0aENh
bGwuY2FsbCgpOworICAgICAgICBpZiAocmVzdWx0UHJvZmlsZSkgeworICAgICAgICAgICAgY2Fs
bE9wZXJhdGlvbihvcGVyYXRpb25WYWx1ZUFkZFByb2ZpbGVkLCByZXN1bHRSZWdzLCBsZWZ0UmVn
cywgcmlnaHRSZWdzLCByZXN1bHRQcm9maWxlKTsKKyAgICAgICAgICAgIGVtaXRQdXRWaXJ0dWFs
UmVnaXN0ZXIocmVzdWx0LCByZXN1bHRSZWdzKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgIEpJVFNsb3dQYXRoQ2FsbCBzbG93UGF0aENhbGwodGhpcywgY3VycmVudEluc3RydWN0aW9u
LCBzbG93X3BhdGhfYWRkKTsKKyAgICAgICAgICAgIHNsb3dQYXRoQ2FsbC5jYWxsKCk7CisgICAg
ICAgIH0KICAgICB9CiB9CiAKQEAgLTczMyw4ICs3NDIsMjUgQEAgdm9pZCBKSVQ6OmVtaXRTbG93
X29wX2FkZChJbnN0cnVjdGlvbiogYwogewogICAgIGxpbmtBbGxTbG93Q2FzZXNGb3JCeXRlY29k
ZU9mZnNldChtX3Nsb3dDYXNlcywgaXRlciwgbV9ieXRlY29kZU9mZnNldCk7CiAKLSAgICBKSVRT
bG93UGF0aENhbGwgc2xvd1BhdGhDYWxsKHRoaXMsIGN1cnJlbnRJbnN0cnVjdGlvbiwgc2xvd19w
YXRoX2FkZCk7Ci0gICAgc2xvd1BhdGhDYWxsLmNhbGwoKTsKKyAgICBpbnQgcmVzdWx0ID0gY3Vy
cmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgIEpT
VmFsdWVSZWdzIGxlZnRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDApOworICAgIEpTVmFsdWVSZWdz
IHJpZ2h0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QxKTsKKyAgICBKU1ZhbHVlUmVncyByZXN1bHRS
ZWdzID0gbGVmdFJlZ3M7CisjZWxzZQorICAgIEpTVmFsdWVSZWdzIGxlZnRSZWdzID0gSlNWYWx1
ZVJlZ3MocmVnVDEsIHJlZ1QwKTsKKyAgICBKU1ZhbHVlUmVncyByaWdodFJlZ3MgPSBKU1ZhbHVl
UmVncyhyZWdUMywgcmVnVDIpOworICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSBsZWZ0UmVn
czsKKyNlbmRpZgorICAgIAorICAgIGlmIChzaG91bGRFbWl0UHJvZmlsaW5nKCkpIHsKKyAgICAg
ICAgUmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSA9IG1fY29kZUJsb2NrLT5lbnN1cmVSZXN1
bHRQcm9maWxlKG1fYnl0ZWNvZGVPZmZzZXQpOworICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJh
dGlvblZhbHVlQWRkUHJvZmlsZWQsIHJlc3VsdFJlZ3MsIGxlZnRSZWdzLCByaWdodFJlZ3MsIHJl
c3VsdFByb2ZpbGUpOworICAgICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKHJlc3VsdCwgcmVz
dWx0UmVncyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgSklUU2xvd1BhdGhDYWxsIHNsb3dQYXRo
Q2FsbCh0aGlzLCBjdXJyZW50SW5zdHJ1Y3Rpb24sIHNsb3dfcGF0aF9hZGQpOworICAgICAgICBz
bG93UGF0aENhbGwuY2FsbCgpOworICAgIH0KIH0KIAogdm9pZCBKSVQ6OmVtaXRfb3BfZGl2KElu
c3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCkBAIC04NjQsOCArODkwLDEzIEBAIHZvaWQg
SklUOjplbWl0X29wX211bChJbnN0cnVjdGlvbiogY3VycmUKICAgICB9IGVsc2UgewogICAgICAg
ICBBU1NFUlQoZ2VuLmVuZEp1bXBMaXN0KCkuZW1wdHkoKSk7CiAgICAgICAgIEFTU0VSVChnZW4u
c2xvd1BhdGhKdW1wTGlzdCgpLmVtcHR5KCkpOwotICAgICAgICBKSVRTbG93UGF0aENhbGwgc2xv
d1BhdGhDYWxsKHRoaXMsIGN1cnJlbnRJbnN0cnVjdGlvbiwgc2xvd19wYXRoX211bCk7Ci0gICAg
ICAgIHNsb3dQYXRoQ2FsbC5jYWxsKCk7CisgICAgICAgIGlmIChyZXN1bHRQcm9maWxlKSB7Cisg
ICAgICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblZhbHVlTXVsUHJvZmlsZWQsIHJlc3Vs
dFJlZ3MsIGxlZnRSZWdzLCByaWdodFJlZ3MsIHJlc3VsdFByb2ZpbGUpOworICAgICAgICAgICAg
ZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihyZXN1bHQsIHJlc3VsdFJlZ3MpOworICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgSklUU2xvd1BhdGhDYWxsIHNsb3dQYXRoQ2FsbCh0aGlzLCBjdXJy
ZW50SW5zdHJ1Y3Rpb24sIHNsb3dfcGF0aF9tdWwpOworICAgICAgICAgICAgc2xvd1BhdGhDYWxs
LmNhbGwoKTsKKyAgICAgICAgfQogICAgIH0KIH0KIApAQCAtODczLDggKzkwNCwyNSBAQCB2b2lk
IEpJVDo6ZW1pdFNsb3dfb3BfbXVsKEluc3RydWN0aW9uKiBjCiB7CiAgICAgbGlua0FsbFNsb3dD
YXNlc0ZvckJ5dGVjb2RlT2Zmc2V0KG1fc2xvd0Nhc2VzLCBpdGVyLCBtX2J5dGVjb2RlT2Zmc2V0
KTsKICAgICAKLSAgICBKSVRTbG93UGF0aENhbGwgc2xvd1BhdGhDYWxsKHRoaXMsIGN1cnJlbnRJ
bnN0cnVjdGlvbiwgc2xvd19wYXRoX211bCk7Ci0gICAgc2xvd1BhdGhDYWxsLmNhbGwoKTsKKyAg
ICBpbnQgcmVzdWx0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKKyNpZiBVU0Uo
SlNWQUxVRTY0KQorICAgIEpTVmFsdWVSZWdzIGxlZnRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDAp
OworICAgIEpTVmFsdWVSZWdzIHJpZ2h0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QxKTsKKyAgICBK
U1ZhbHVlUmVncyByZXN1bHRSZWdzID0gbGVmdFJlZ3M7CisjZWxzZQorICAgIEpTVmFsdWVSZWdz
IGxlZnRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKTsKKyAgICBKU1ZhbHVlUmVncyBy
aWdodFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMywgcmVnVDIpOworICAgIEpTVmFsdWVSZWdzIHJl
c3VsdFJlZ3MgPSBsZWZ0UmVnczsKKyNlbmRpZgorCisgICAgaWYgKHNob3VsZEVtaXRQcm9maWxp
bmcoKSkgeworICAgICAgICBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlID0gbV9jb2RlQmxv
Y2stPmVuc3VyZVJlc3VsdFByb2ZpbGUobV9ieXRlY29kZU9mZnNldCk7CisgICAgICAgIGNhbGxP
cGVyYXRpb24ob3BlcmF0aW9uVmFsdWVNdWxQcm9maWxlZCwgcmVzdWx0UmVncywgbGVmdFJlZ3Ms
IHJpZ2h0UmVncywgcmVzdWx0UHJvZmlsZSk7CisgICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0
ZXIocmVzdWx0LCByZXN1bHRSZWdzKTsKKyAgICB9IGVsc2UgeworICAgICAgICBKSVRTbG93UGF0
aENhbGwgc2xvd1BhdGhDYWxsKHRoaXMsIGN1cnJlbnRJbnN0cnVjdGlvbiwgc2xvd19wYXRoX211
bCk7CisgICAgICAgIHNsb3dQYXRoQ2FsbC5jYWxsKCk7CisgICAgfQogfQogCiB2b2lkIEpJVDo6
ZW1pdF9vcF9zdWIoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKQEAgLTg5OCw2ICs5
NDYsMTAgQEAgdm9pZCBKSVQ6OmVtaXRfb3Bfc3ViKEluc3RydWN0aW9uKiBjdXJyZQogICAgIEZQ
UlJlZyBzY3JhdGNoRlBSID0gZnBSZWdUMjsKICNlbmRpZgogCisgICAgUmVzdWx0UHJvZmlsZSog
cmVzdWx0UHJvZmlsZSA9IG51bGxwdHI7CisgICAgaWYgKHNob3VsZEVtaXRQcm9maWxpbmcoKSkK
KyAgICAgICAgcmVzdWx0UHJvZmlsZSA9IG1fY29kZUJsb2NrLT5lbnN1cmVSZXN1bHRQcm9maWxl
KG1fYnl0ZWNvZGVPZmZzZXQpOworCiAgICAgU25pcHBldE9wZXJhbmQgbGVmdE9wZXJhbmQodHlw
ZXMuZmlyc3QoKSk7CiAgICAgU25pcHBldE9wZXJhbmQgcmlnaHRPcGVyYW5kKHR5cGVzLnNlY29u
ZCgpKTsKICAgICAKQEAgLTkyMCw4ICs5NzIsMjUgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX3N1
YihJbnN0cnVjdGlvbiogYwogewogICAgIGxpbmtBbGxTbG93Q2FzZXNGb3JCeXRlY29kZU9mZnNl
dChtX3Nsb3dDYXNlcywgaXRlciwgbV9ieXRlY29kZU9mZnNldCk7CiAKLSAgICBKSVRTbG93UGF0
aENhbGwgc2xvd1BhdGhDYWxsKHRoaXMsIGN1cnJlbnRJbnN0cnVjdGlvbiwgc2xvd19wYXRoX3N1
Yik7Ci0gICAgc2xvd1BhdGhDYWxsLmNhbGwoKTsKKyAgICBpbnQgcmVzdWx0ID0gY3VycmVudElu
c3RydWN0aW9uWzFdLnUub3BlcmFuZDsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgIEpTVmFsdWVS
ZWdzIGxlZnRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDApOworICAgIEpTVmFsdWVSZWdzIHJpZ2h0
UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QxKTsKKyAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0g
bGVmdFJlZ3M7CisjZWxzZQorICAgIEpTVmFsdWVSZWdzIGxlZnRSZWdzID0gSlNWYWx1ZVJlZ3Mo
cmVnVDEsIHJlZ1QwKTsKKyAgICBKU1ZhbHVlUmVncyByaWdodFJlZ3MgPSBKU1ZhbHVlUmVncyhy
ZWdUMywgcmVnVDIpOworICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSBsZWZ0UmVnczsKKyNl
bmRpZgorCisgICAgaWYgKHNob3VsZEVtaXRQcm9maWxpbmcoKSkgeworICAgICAgICBSZXN1bHRQ
cm9maWxlKiByZXN1bHRQcm9maWxlID0gbV9jb2RlQmxvY2stPmVuc3VyZVJlc3VsdFByb2ZpbGUo
bV9ieXRlY29kZU9mZnNldCk7CisgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uVmFsdWVT
dWJQcm9maWxlZCwgcmVzdWx0UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVncywgcmVzdWx0UHJvZmls
ZSk7CisgICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIocmVzdWx0LCByZXN1bHRSZWdzKTsK
KyAgICB9IGVsc2UgeworICAgICAgICBKSVRTbG93UGF0aENhbGwgc2xvd1BhdGhDYWxsKHRoaXMs
IGN1cnJlbnRJbnN0cnVjdGlvbiwgc2xvd19wYXRoX3N1Yik7CisgICAgICAgIHNsb3dQYXRoQ2Fs
bC5jYWxsKCk7CisgICAgfQogfQogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0g
RU5EOiBPUF9BREQsIE9QX1NVQiwgT1BfTVVMIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSAqLwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgJKHJldmlzaW9u
IDIwMDUxNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC01MDEsNiArNTAxLDE0IEBAIEFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJs
ZXI6OkNhbGwgSklUOjoKICAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVja1Nl
dEpTVmFsdWVSZXN1bHQob3BlcmF0aW9uLCBkc3QpOwogfQogCitpbmxpbmUgTWFjcm9Bc3NlbWJs
ZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSlJwIG9wZXJhdGlv
biwgSlNWYWx1ZVJlZ3MgcmVzdWx0LCBKU1ZhbHVlUmVncyBhcmcxLCBKU1ZhbHVlUmVncyBhcmcy
LCBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlKQoreworICAgIHNldHVwQXJndW1lbnRzV2l0
aEV4ZWNTdGF0ZShhcmcxLCBhcmcyLCBUcnVzdGVkSW1tUHRyKHJlc3VsdFByb2ZpbGUpKTsKKyAg
ICBDYWxsIGNhbGwgPSBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7Cisg
ICAgc2V0dXBSZXN1bHRzKHJlc3VsdCk7CisgICAgcmV0dXJuIGNhbGw7Cit9CisKIEFMV0FZU19J
TkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0
aW9uX0VKSkFwIG9wZXJhdGlvbiwgaW50IGRzdCwgR1BSUmVnIGFyZzEsIEdQUlJlZyBhcmcyLCBB
cnJheVByb2ZpbGUqIGFycmF5UHJvZmlsZSkKIHsKICAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVj
U3RhdGUoYXJnMSwgYXJnMiwgVHJ1c3RlZEltbVB0cihhcnJheVByb2ZpbGUpKTsKQEAgLTYwMiwy
MyArNjEwLDYgQEAgQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OgogCiAj
ZWxzZSAvLyBVU0UoSlNWQUxVRTMyXzY0KQogCi0vLyBFbmNvZGVkSlNWYWx1ZSBpbiBKU1ZBTFVF
MzJfNjQgaXMgYSA2NC1iaXQgaW50ZWdlci4gV2hlbiBiZWluZyBjb21waWxlZCBpbiBBUk0gRUFC
SSwgaXQgbXVzdCBiZSBhbGlnbmVkIGV2ZW4tbnVtYmVyZWQgcmVnaXN0ZXIgKHIwLCByMiBvciBb
c3BdKS4KLS8vIFRvIGF2b2lkIGFzc2VtYmxpZXMgZnJvbSB1c2luZyB3cm9uZyByZWdpc3RlcnMs
IGxldCdzIG9jY3VweSByMSBvciByMyB3aXRoIGEgZHVtbXkgYXJndW1lbnQgd2hlbiBuZWNlc3Nh
cnkuCi0jaWYgKENPTVBJTEVSX1NVUFBPUlRTKEVBQkkpICYmIENQVShBUk0pKSB8fCBDUFUoTUlQ
UykKLSNkZWZpbmUgRUFCSV8zMkJJVF9EVU1NWV9BUkcgICAgICBUcnVzdGVkSW1tMzIoMCksCi0j
ZWxzZQotI2RlZmluZSBFQUJJXzMyQklUX0RVTU1ZX0FSRwotI2VuZGlmCi0KLS8vIEpTVkFMVUUz
Ml82NCBpcyBhIDY0LWJpdCBpbnRlZ2VyIHRoYXQgY2Fubm90IGJlIHB1dCBoYWxmIGluIGFuIGFy
Z3VtZW50IHJlZ2lzdGVyIGFuZCBoYWxmIG9uIHN0YWNrIHdoZW4gdXNpbmcgU0g0IGFyY2hpdGVj
dHVyZS4KLS8vIFRvIGF2b2lkIHRoaXMsIGxldCdzIG9jY3VweSB0aGUgNHRoIGFyZ3VtZW50IHJl
Z2lzdGVyIChyNykgd2l0aCBhIGR1bW15IGFyZ3VtZW50IHdoZW4gbmVjZXNzYXJ5LiBUaGlzIG11
c3Qgb25seSBiZSBkb25lIHdoZW4gdGhlcmUKLS8vIGlzIG5vIG90aGVyIDMyLWJpdCB2YWx1ZSBh
cmd1bWVudCBiZWhpbmQgdGhpcyA2NC1iaXQgSlNWYWx1ZS4KLSNpZiBDUFUoU0g0KQotI2RlZmlu
ZSBTSDRfMzJCSVRfRFVNTVlfQVJHICAgICAgVHJ1c3RlZEltbTMyKDApLAotI2Vsc2UKLSNkZWZp
bmUgU0g0XzMyQklUX0RVTU1ZX0FSRwotI2VuZGlmCi0KIEFMV0FZU19JTkxJTkUgTWFjcm9Bc3Nl
bWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uTm9FeGNlcHRpb25DaGVjayhWX0pJVE9wZXJh
dGlvbl9FSiBvcGVyYXRpb24sIEdQUlJlZyBhcmcxVGFnLCBHUFJSZWcgYXJnMVBheWxvYWQpCiB7
CiAgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEVBQklfMzJCSVRfRFVNTVlfQVJHIGFy
ZzFQYXlsb2FkLCBhcmcxVGFnKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
TXVsR2VuZXJhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVE11bEdlbmVyYXRvci5jcHAJKHJldmlzaW9uIDIwMDUxNykKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUTXVsR2VuZXJhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xNTMsNiArMTUz
LDcgQEAgdm9pZCBKSVRNdWxHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoQwogICAgICAgICBD
Q2FsbEhlbHBlcnM6Okp1bXAgZG9uZSA9IGppdC5qdW1wKCk7CiAKICAgICAgICAgbm90TmVnYXRp
dmVaZXJvLmxpbmsoJmppdCk7CisgICAgICAgIGppdC5vcjMyKENDYWxsSGVscGVyczo6VHJ1c3Rl
ZEltbTMyKFJlc3VsdFByb2ZpbGU6Ok5vbk5lZ1plcm9Eb3VibGUpLCBDQ2FsbEhlbHBlcnM6OkFi
c29sdXRlQWRkcmVzcyhtX3Jlc3VsdFByb2ZpbGUtPmFkZHJlc3NPZkZsYWdzKCkpKTsKIAogICAg
ICAgICBqaXQubW92ZShtX3Jlc3VsdC5wYXlsb2FkR1BSKCksIG1fc2NyYXRjaEdQUik7CiAgICAg
ICAgIGppdC51cnNoaWZ0UHRyKENDYWxsSGVscGVyczo6SW1tMzIoNTIpLCBtX3NjcmF0Y2hHUFIp
OwpAQCAtMTc0LDYgKzE3NSw3IEBAIHZvaWQgSklUTXVsR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQ
YXRoKEMKICAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIGRvbmUgPSBqaXQuanVtcCgpOwogCiAg
ICAgICAgIG5vdE5lZ2F0aXZlWmVyby5saW5rKCZqaXQpOworICAgICAgICBqaXQub3IzMihDQ2Fs
bEhlbHBlcnM6OlRydXN0ZWRJbW0zMihSZXN1bHRQcm9maWxlOjpOb25OZWdaZXJvRG91YmxlKSwg
Q0NhbGxIZWxwZXJzOjpBYnNvbHV0ZUFkZHJlc3MobV9yZXN1bHRQcm9maWxlLT5hZGRyZXNzT2ZG
bGFncygpKSk7CiAKICAgICAgICAgaml0Lm1vdmUobV9yZXN1bHQudGFnR1BSKCksIG1fc2NyYXRj
aEdQUik7CiAgICAgICAgIGppdC51cnNoaWZ0UHRyKENDYWxsSGVscGVyczo6SW1tMzIoNTIgLSAz
MiksIG1fc2NyYXRjaEdQUik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9w
ZXJhdGlvbnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
T3BlcmF0aW9ucy5jcHAJKHJldmlzaW9uIDIwMDUxNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyNDMsNiArMjI0Myw4
OCBAQCBKU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVG9JbmRleFN0CiAgICAgcmV0dXJu
IGpzU3RyaW5nKGV4ZWMsIElkZW50aWZpZXI6OmZyb20oZXhlYywgaW5kZXgpLnN0cmluZygpKTsK
IH0KIAorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZUFkZChFeGVj
U3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRPcDIpCit7CisgICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7CisgICAgTmF0aXZlQ2FsbEZy
YW1lVHJhY2VyIHRyYWNlcih2bSwgZXhlYyk7CisgICAgCisgICAgSlNWYWx1ZSBvcDEgPSBKU1Zh
bHVlOjpkZWNvZGUoZW5jb2RlZE9wMSk7CisgICAgSlNWYWx1ZSBvcDIgPSBKU1ZhbHVlOjpkZWNv
ZGUoZW5jb2RlZE9wMik7CisgICAgCisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0FkZChl
eGVjLCBvcDEsIG9wMikpOworfQorCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblZhbHVlQWRkUHJvZmlsZWQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBSZXN1bHRQcm9maWxlKiByZXN1bHRQ
cm9maWxlKQoreworICAgIFZNKiB2bSA9ICZleGVjLT52bSgpOworICAgIE5hdGl2ZUNhbGxGcmFt
ZVRyYWNlciB0cmFjZXIodm0sIGV4ZWMpOworICAgIAorICAgIEpTVmFsdWUgb3AxID0gSlNWYWx1
ZTo6ZGVjb2RlKGVuY29kZWRPcDEpOworICAgIEpTVmFsdWUgb3AyID0gSlNWYWx1ZTo6ZGVjb2Rl
KGVuY29kZWRPcDIpOworICAgIAorICAgIEpTVmFsdWUgcmVzdWx0ID0ganNBZGQoZXhlYywgb3Ax
LCBvcDIpOworICAgIHJlc3VsdFByb2ZpbGUtPmRldGVjdEJpdHNMaWdodChyZXN1bHQpOworICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKK30KKworRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZU11bChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpCit7CisgICAgVk0qIHZt
ID0gJmV4ZWMtPnZtKCk7CisgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgZXhl
Yyk7CisKKyAgICBKU1ZhbHVlIG9wMSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AxKTsKKyAg
ICBKU1ZhbHVlIG9wMiA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AyKTsKKworICAgIGRvdWJs
ZSBhID0gb3AxLnRvTnVtYmVyKGV4ZWMpOworICAgIGRvdWJsZSBiID0gb3AyLnRvTnVtYmVyKGV4
ZWMpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoYSAqIGIpKTsKK30KKwor
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZU11bFByb2ZpbGVkKEV4
ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZE9wMiwgUmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSkKK3sKKyAgICBWTSogdm0g
PSAmZXhlYy0+dm0oKTsKKyAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBleGVj
KTsKKworICAgIEpTVmFsdWUgb3AxID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDEpOworICAg
IEpTVmFsdWUgb3AyID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDIpOworCisgICAgZG91Ymxl
IGEgPSBvcDEudG9OdW1iZXIoZXhlYyk7CisgICAgZG91YmxlIGIgPSBvcDIudG9OdW1iZXIoZXhl
Yyk7CisgICAgCisgICAgSlNWYWx1ZSByZXN1bHQgPSBqc051bWJlcihhICogYik7CisgICAgcmVz
dWx0UHJvZmlsZS0+ZGV0ZWN0Qml0c0xpZ2h0KHJlc3VsdCk7CisgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShyZXN1bHQpOworfQorCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblZhbHVlU3ViKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikKK3sKKyAgICBWTSogdm0gPSAmZXhlYy0+dm0oKTsK
KyAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBleGVjKTsKKyAgICAKKyAgICBK
U1ZhbHVlIG9wMSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AxKTsKKyAgICBKU1ZhbHVlIG9w
MiA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AyKTsKKworICAgIGRvdWJsZSBhID0gb3AxLnRv
TnVtYmVyKGV4ZWMpOworICAgIGRvdWJsZSBiID0gb3AyLnRvTnVtYmVyKGV4ZWMpOworICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoYSAtIGIpKTsKK30KKworRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZVN1YlByb2ZpbGVkKEV4ZWNTdGF0ZSogZXhl
YywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwg
UmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSkKK3sKKyAgICBWTSogdm0gPSAmZXhlYy0+dm0o
KTsKKyAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBleGVjKTsKKyAgICAKKyAg
ICBKU1ZhbHVlIG9wMSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AxKTsKKyAgICBKU1ZhbHVl
IG9wMiA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AyKTsKKworICAgIGRvdWJsZSBhID0gb3Ax
LnRvTnVtYmVyKGV4ZWMpOworICAgIGRvdWJsZSBiID0gb3AyLnRvTnVtYmVyKGV4ZWMpOworICAg
IAorICAgIEpTVmFsdWUgcmVzdWx0ID0ganNOdW1iZXIoYSAtIGIpOworICAgIHJlc3VsdFByb2Zp
bGUtPmRldGVjdEJpdHNMaWdodChyZXN1bHQpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
cmVzdWx0KTsKK30KKwogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblByb2Nlc3NUeXBlUHJv
ZmlsZXJMb2coRXhlY1N0YXRlKiBleGVjKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaAkocmV2aXNpb24g
MjAwNTE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmgJKHdv
cmtpbmcgY29weSkKQEAgLTUzLDYgKzUzLDcgQEAgY2xhc3MgV2F0Y2hwb2ludFNldDsKIAogc3Ry
dWN0IEJ5VmFsSW5mbzsKIHN0cnVjdCBJbmxpbmVDYWxsRnJhbWU7CitzdHJ1Y3QgUmVzdWx0UHJv
ZmlsZTsKIAogdHlwZWRlZiBFeGVjU3RhdGUgQ2FsbEZyYW1lOwogCkBAIC05Niw2ICs5Nyw3IEBA
IHR5cGVkZWYgY2hhciogVW51c2VkUHRyOwogICAgIFE6IGludDY0X3QKICAgICBSOiBSZWdpc3Rl
cgogICAgIFJlbzogUmVnRXhwT2JqZWN0KgorICAgIFJwOiBSZXN1bHRQcm9maWxlKgogICAgIFM6
IHNpemVfdAogICAgIFNwcnQ6IFNsb3dQYXRoUmV0dXJuVHlwZQogICAgIFNzaTogU3RydWN0dXJl
U3R1YkluZm8qCkBAIC0xMzYsNiArMTM4LDcgQEAgdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OICgqSgogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OICgqSl9K
SVRPcGVyYXRpb25fRUpKQXApKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSwgQXJyYXlQcm9maWxlKik7CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04gKCpKX0pJVE9wZXJhdGlvbl9FSkpCeSkoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlLCBCeVZhbEluZm8qKTsKIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiAoKkpfSklUT3BlcmF0aW9uX0VKSkopKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpOwordHlwZWRlZiBFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25fRUpKUnApKEV4ZWNTdGF0ZSosIEVuY29k
ZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgUmVzdWx0UHJvZmlsZSopOwogdHlwZWRlZiBFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25fRUpzc1opKEV4ZWNTdGF0
ZSosIEpTU3RyaW5nKiwgaW50MzJfdCk7CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04gKCpKX0pJVE9wZXJhdGlvbl9FSnNzUmVvKShFeGVjU3RhdGUqLCBKU1N0cmluZyosIFJl
Z0V4cE9iamVjdCopOwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OICgqSl9K
SVRPcGVyYXRpb25fRUpzc1Jlb0pzcykoRXhlY1N0YXRlKiwgSlNTdHJpbmcqLCBSZWdFeHBPYmpl
Y3QqLCBKU1N0cmluZyopOwpAQCAtNDA2LDYgKzQwOSwxMyBAQCBKU0NlbGwqIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uR2V0UHJvcGVyCiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbk5leHRFbnVtZXJhdG9yUG5hbWUoRXhlY1N0YXRlKiwgSlNDZWxsKiwgaW50MzJfdCk7CiBK
U0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVG9JbmRleFN0cmluZyhFeGVjU3RhdGUqLCBp
bnQzMl90KTsKIAorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZUFk
ZChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkT3AyKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblZhbHVlQWRkUHJvZmlsZWQoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgUmVzdWx0UHJvZmlsZSopIFdURl9JTlRF
Uk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVNdWwoRXhl
Y1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZE9wMikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRp
b25WYWx1ZU11bFByb2ZpbGVkKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIFJlc3VsdFByb2ZpbGUqKSBXVEZfSU5URVJOQUw7
CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlU3ViKEV4ZWNTdGF0
ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIp
IFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFs
dWVTdWJQcm9maWxlZChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBSZXN1bHRQcm9maWxlKikgV1RGX0lOVEVSTkFMOworCiB2
b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHJvY2Vzc1R5cGVQcm9maWxlckxvZyhFeGVjU3Rh
dGUqKSBXVEZfSU5URVJOQUw7CiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHJvY2Vzc1No
YWRvd0NoaWNrZW5Mb2coRXhlY1N0YXRlKikgV1RGX0lOVEVSTkFMOwogCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVFN1YkdlbmVyYXRvci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdWJHZW5lcmF0b3IuY3BwCShyZXZpc2lvbiAyMDA1
MTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN1YkdlbmVyYXRvci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTgzLDYgKzgzLDkgQEAgdm9pZCBKSVRTdWJHZW5lcmF0b3I6OmdlbmVy
YXRlRmFzdFBhdGgoQwogICAgIHJpZ2h0V2FzSW50ZWdlci5saW5rKCZqaXQpOwogCiAgICAgaml0
LnN1YkRvdWJsZShtX3JpZ2h0RlBSLCBtX2xlZnRGUFIpOworICAgIGlmIChtX3Jlc3VsdFByb2Zp
bGUpCisgICAgICAgIG1fcmVzdWx0UHJvZmlsZS0+ZW1pdFNldERvdWJsZShqaXQpOworCiAgICAg
aml0LmJveERvdWJsZShtX2xlZnRGUFIsIG1fcmVzdWx0KTsKIH0KIApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRTdWJHZW5lcmF0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVFN1YkdlbmVyYXRvci5oCShyZXZpc2lvbiAyMDA1MTcpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN1YkdlbmVyYXRvci5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zNyw3ICszNyw4IEBAIGNsYXNzIEpJVFN1YkdlbmVyYXRvciB7CiBwdWJsaWM6CiAg
ICAgSklUU3ViR2VuZXJhdG9yKFNuaXBwZXRPcGVyYW5kIGxlZnRPcGVyYW5kLCBTbmlwcGV0T3Bl
cmFuZCByaWdodE9wZXJhbmQsCiAgICAgICAgIEpTVmFsdWVSZWdzIHJlc3VsdCwgSlNWYWx1ZVJl
Z3MgbGVmdCwgSlNWYWx1ZVJlZ3MgcmlnaHQsCi0gICAgICAgIEZQUlJlZyBsZWZ0RlBSLCBGUFJS
ZWcgcmlnaHRGUFIsIEdQUlJlZyBzY3JhdGNoR1BSLCBGUFJSZWcgc2NyYXRjaEZQUikKKyAgICAg
ICAgRlBSUmVnIGxlZnRGUFIsIEZQUlJlZyByaWdodEZQUiwgR1BSUmVnIHNjcmF0Y2hHUFIsIEZQ
UlJlZyBzY3JhdGNoRlBSLAorICAgICAgICBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlID0g
bnVsbHB0cikKICAgICAgICAgOiBtX2xlZnRPcGVyYW5kKGxlZnRPcGVyYW5kKQogICAgICAgICAs
IG1fcmlnaHRPcGVyYW5kKHJpZ2h0T3BlcmFuZCkKICAgICAgICAgLCBtX3Jlc3VsdChyZXN1bHQp
CkBAIC00Nyw2ICs0OCw3IEBAIHB1YmxpYzoKICAgICAgICAgLCBtX3JpZ2h0RlBSKHJpZ2h0RlBS
KQogICAgICAgICAsIG1fc2NyYXRjaEdQUihzY3JhdGNoR1BSKQogICAgICAgICAsIG1fc2NyYXRj
aEZQUihzY3JhdGNoRlBSKQorICAgICAgICAsIG1fcmVzdWx0UHJvZmlsZShyZXN1bHRQcm9maWxl
KQogICAgIHsgfQogCiAgICAgdm9pZCBnZW5lcmF0ZUZhc3RQYXRoKENDYWxsSGVscGVycyYpOwpA
QCAtNjUsNiArNjcsNyBAQCBwcml2YXRlOgogICAgIEZQUlJlZyBtX3JpZ2h0RlBSOwogICAgIEdQ
UlJlZyBtX3NjcmF0Y2hHUFI7CiAgICAgRlBSUmVnIG1fc2NyYXRjaEZQUjsKKyAgICBSZXN1bHRQ
cm9maWxlKiBtX3Jlc3VsdFByb2ZpbGU7CiAgICAgYm9vbCBtX2RpZEVtaXRGYXN0UGF0aCB7IGZh
bHNlIH07CiAKICAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IG1fZW5kSnVtcExpc3Q7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RhZ1JlZ2lzdGVyc01vZGUuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGFnUmVnaXN0ZXJzTW9kZS5jcHAJKHJl
dmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RhZ1JlZ2lzdGVyc01vZGUu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IlRhZ1JlZ2lzdGVyc01vZGUuaCIKKworI2luY2x1ZGUgPHd0Zi9QcmludFN0cmVhbS5oPgorCitu
YW1lc3BhY2UgV1RGIHsKKwordXNpbmcgbmFtZXNwYWNlIEpTQzsKKwordm9pZCBwcmludEludGVy
bmFsKFByaW50U3RyZWFtJiBvdXQsIFRhZ1JlZ2lzdGVyc01vZGUgbW9kZSkKK3sKKyAgICBzd2l0
Y2ggKG1vZGUpIHsKKyAgICBjYXNlIERvTm90SGF2ZVRhZ1JlZ2lzdGVyczoKKyAgICAgICAgb3V0
LnByaW50KCJEb05vdEhhdmVUYWdSZWdpc3RlcnMiKTsKKyAgICAgICAgcmV0dXJuOworICAgIGNh
c2UgSGF2ZVRhZ1JlZ2lzdGVyczoKKyAgICAgICAgb3V0LnByaW50KCJIYXZlVGFnUmVnaXN0ZXJz
Iik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgCisgICAgUkVMRUFTRV9BU1NFUlRfTk9U
X1JFQUNIRUQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV1RGCisKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvVGFnUmVnaXN0ZXJzTW9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvVGFnUmVnaXN0ZXJzTW9kZS5oCShyZXZpc2lvbiAwKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UYWdSZWdpc3RlcnNNb2RlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCisjaWZuZGVmIFRhZ1JlZ2lzdGVyc01vZGVfaAorI2RlZmluZSBUYWdSZWdpc3RlcnNN
b2RlX2gKKworbmFtZXNwYWNlIEpTQyB7CisKK2VudW0gVGFnUmVnaXN0ZXJzTW9kZSB7CisgICAg
RG9Ob3RIYXZlVGFnUmVnaXN0ZXJzLAorICAgIEhhdmVUYWdSZWdpc3RlcnMKK307CisKK30gLy8g
bmFtZXNwYWNlIEpTQworCituYW1lc3BhY2UgV1RGIHsKKworY2xhc3MgUHJpbnRTdHJlYW07Cit2
b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mLCBKU0M6OlRhZ1JlZ2lzdGVyc01vZGUpOwor
Cit9IC8vIG5hbWVzcGFjZSBXVEYKKworI2VuZGlmIC8vIFRhZ1JlZ2lzdGVyc01vZGVfaAorCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRo
cy5jcHAJKHJldmlzaW9uIDIwMDUxNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0NvbW1vblNsb3dQYXRocy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3OCw2ICszNzgsOCBAQCBz
dGF0aWMgdm9pZCB1cGRhdGVSZXN1bHRQcm9maWxlRm9yQmluYXJ5CiAgICAgICAgICAgICBpZiAo
IWRvdWJsZVZhbCAmJiBzdGQ6OnNpZ25iaXQoZG91YmxlVmFsKSkKICAgICAgICAgICAgICAgICBw
cm9maWxlLT5zZXRPYnNlcnZlZE5lZ1plcm9Eb3VibGUoKTsKICAgICAgICAgICAgIGVsc2Ugewor
ICAgICAgICAgICAgICAgIHByb2ZpbGUtPnNldE9ic2VydmVkTm9uTmVnWmVyb0RvdWJsZSgpOwor
CiAgICAgICAgICAgICAgICAgLy8gVGhlIEludDUyIG92ZXJmbG93IGNoZWNrIGhlcmUgaW50ZW50
aW9uYWxseSBvbWl0cyAxbGwgPDwgNTEgYXMgYSB2YWxpZCBuZWdhdGl2ZSBJbnQ1MiB2YWx1ZS4K
ICAgICAgICAgICAgICAgICAvLyBUaGVyZWZvcmUsIHdlIHdpbGwgZ2V0IGEgZmFsc2UgcG9zaXRp
dmUgaWYgdGhlIHJlc3VsdCBpcyB0aGF0IHZhbHVlLiBUaGlzIGlzIGludGVudGlvbmFsbHkKICAg
ICAgICAgICAgICAgICAvLyBkb25lIHRvIHNpbXBsaWZ5IHRoZSBjaGVja2luZyBhbGdvcml0aG0u
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>278372</attachid>
            <date>2016-05-08 14:08:14 -0700</date>
            <delta_ts>2016-05-09 11:04:51 -0700</delta_ts>
            <desc>passing some tests</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>78268</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyMDA1MTcpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTk5Niw2ICsxOTk2LDggQEAKIAkJREMxN0U4MUExQzlD
OTFFOTAwOEE2QUIzIC8qIENDYWxsSGVscGVycy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzE3RTgxNjFDOUM4MDJCMDA4QTZBQjMgLyogQ0NhbGxI
ZWxwZXJzLmNwcCAqLzsgfTsKIAkJREMyMTQzMDcxQ0EzMkU1NTAwMEE4ODY5IC8qIElDU3RhdHMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDMjE0MzA2
MUNBMzJFNTIwMDBBODg2OSAvKiBJQ1N0YXRzLmggKi87IH07CiAJCURDMjE0MzA4MUNBMzJFNTgw
MDBBODg2OSAvKiBJQ1N0YXRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IERDMjE0MzA1MUNBMzJFNTIwMDBBODg2OSAvKiBJQ1N0YXRzLmNwcCAqLzsg
fTsKKwkJREM3OTk3ODMxQ0RFOUZBMDAwNEQ0QTA5IC8qIFRhZ1JlZ2lzdGVyc01vZGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDNzk5NzgyMUNERTlG
OUUwMDRENEEwOSAvKiBUYWdSZWdpc3RlcnNNb2RlLmggKi87IH07CisJCURDNzk5Nzg0MUNERTlG
QTIwMDRENEEwOSAvKiBUYWdSZWdpc3RlcnNNb2RlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDNzk5NzgxMUNERTlGOUUwMDRENEEwOSAvKiBUYWdS
ZWdpc3RlcnNNb2RlLmNwcCAqLzsgfTsKIAkJRENGM0Q1NjkxQ0QyOTQ2RDAwM0Q1QzY1IC8qIExh
enlDbGFzc1N0cnVjdHVyZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBEQ0YzRDU2NDFDRDI5NDY4MDAzRDVDNjUgLyogTGF6eUNsYXNzU3RydWN0dXJl
LmNwcCAqLzsgfTsKIAkJRENGM0Q1NkExQ0QyOTQ3MDAwM0Q1QzY1IC8qIExhenlDbGFzc1N0cnVj
dHVyZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRENG
M0Q1NjUxQ0QyOTQ2ODAwM0Q1QzY1IC8qIExhenlDbGFzc1N0cnVjdHVyZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCURDRjNENTZCMUNEMjk0NzIw
MDNENUM2NSAvKiBMYXp5Q2xhc3NTdHJ1Y3R1cmVJbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQ0YzRDU2NjFDRDI5NDY4MDAzRDVDNjUgLyog
TGF6eUNsYXNzU3RydWN0dXJlSW5saW5lcy5oICovOyB9OwpAQCAtNDIxMSw2ICs0MjEzLDggQEAK
IAkJREMxN0U4MTYxQzlDODAyQjAwOEE2QUIzIC8qIENDYWxsSGVscGVycy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDQ2FsbEhlbHBlcnMuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlEQzIxNDMwNTFDQTMyRTUyMDAwQTg4NjkgLyogSUNTdGF0cy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJQ1N0YXRzLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREMyMTQzMDYxQ0EzMkU1MjAwMEE4ODY5IC8qIElD
U3RhdHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSUNTdGF0cy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEQzc5OTc4MTFDREU5RjlFMDA0RDRBMDkgLyogVGFn
UmVnaXN0ZXJzTW9kZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBU
YWdSZWdpc3RlcnNNb2RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJREM3OTk3
ODIxQ0RFOUY5RTAwNEQ0QTA5IC8qIFRhZ1JlZ2lzdGVyc01vZGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gVGFnUmVnaXN0ZXJzTW9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlEQ0YzRDU2NDFDRDI5NDY4MDAzRDVDNjUgLyogTGF6eUNsYXNzU3RydWN0dXJl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExhenlDbGFzc1N0cnVj
dHVyZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURDRjNENTY1MUNEMjk0Njgw
MDNENUM2NSAvKiBMYXp5Q2xhc3NTdHJ1Y3R1cmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTGF6eUNsYXNzU3RydWN0dXJlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCURDRjNENTY2MUNEMjk0NjgwMDNENUM2NSAvKiBMYXp5Q2xhc3NTdHJ1Y3R1cmVJbmxpbmVz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExhenlDbGFzc1N0cnVjdHVyZUlu
bGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTUwODksNiArNTA5Myw4IEBA
CiAJCQkJRkUxODdBMEMxQzAyRUJBNzAwMzhCQkNBIC8qIFNuaXBwZXRPcGVyYW5kLmggKi8sCiAJ
CQkJQTczODY1NTExMTg2OTdCNDAwNTQwMjc5IC8qIFNwZWNpYWxpemVkVGh1bmtKSVQuaCAqLywK
IAkJCQlBN0ZGNjQ3QTE4QzUyRTg1MDBCNTUzMDcgLyogU3BpbGxSZWdpc3RlcnNNb2RlLmggKi8s
CisJCQkJREM3OTk3ODExQ0RFOUY5RTAwNEQ0QTA5IC8qIFRhZ1JlZ2lzdGVyc01vZGUuY3BwICov
LAorCQkJCURDNzk5NzgyMUNERTlGOUUwMDRENEEwOSAvKiBUYWdSZWdpc3RlcnNNb2RlLmggKi8s
CiAJCQkJMEZDMzE0MTExODE0NTU5MTAwMDMzMjMyIC8qIFRlbXBSZWdpc3RlclNldC5jcHAgKi8s
CiAJCQkJMEYyNEU1NDgxN0VFMjc0OTAwQUJCMjE3IC8qIFRlbXBSZWdpc3RlclNldC5oICovLAog
CQkJCTBGNTcyRDREMTY4NzlGREIwMEU1N0ZCRCAvKiBUaHVua0dlbmVyYXRvci5oICovLApAQCAt
Nzg2OSw2ICs3ODc1LDcgQEAKIAkJCQk4NkYzRUVCRjE2OENERTkzMDA3N0I5MkEgLyogT2JqY1J1
bnRpbWVFeHRyYXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0Q0E5NThEMTZBQjUwRkEwMDkzOEEw
NiAvKiBPYmplY3RBbGxvY2F0aW9uUHJvZmlsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRENGM0Q1
NkMxQ0QyOTQ3NTAwM0Q1QzY1IC8qIExhenlQcm9wZXJ0eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
REM3OTk3ODMxQ0RFOUZBMDAwNEQ0QTA5IC8qIFRhZ1JlZ2lzdGVyc01vZGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDMThDNDQ1MEUxNkY1Q0QwMEIzNDQ2MCAvKiBPYmplY3RDb25zdHJ1Y3Rvci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTk2QjczMjIxQkRBMDhFRjAwMzMxQjg0IC8qIE9iamVjdENv
bnN0cnVjdG9yLmx1dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZEM0U0MEExQjYxOEI2NjAwQzgw
RTFFIC8qIE9iamVjdFByb3BlcnR5Q29uZGl0aW9uLmggaW4gSGVhZGVycyAqLywKQEAgLTkwNDEs
NiArOTA0OCw3IEBACiAJCQkJRkUzQTA2QjMxQzEwQ0I4RTAwMzkwRkREIC8qIEpJVEJpdFhvckdl
bmVyYXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNTdEMjNFNTE4OTBDRUJGMDAzMUM3RkEg
LyogSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNTMyNDM4
OTE4NTY4MzM1MDAyRUQ2OTIgLyogSW5zcGVjdG9yRnJvbnRlbmREaXNwYXRjaGVycy5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQlEQzc5OTc4NDFDREU5RkEyMDA0RDRBMDkgLyogVGFnUmVnaXN0ZXJz
TW9kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5OUYxQTZGRTFCOEU2RDk0MDA0NjNCMjYgLyog
SW5zcGVjdG9yRnJvbnRlbmRSb3V0ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTUzMzlFQzcx
QkIzOTlBOTAwNTRGMDA1IC8qIEluc3BlY3RvckhlYXBBZ2VudC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlFMzVFMDM1RjFCN0FCNDNFMDA3M0FEMkEgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
T2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0NvZGVCbG9jay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9Db2RlQmxvY2suaAkocmV2aXNpb24gMjAwNTE3KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCSh3b3JraW5nIGNvcHkpCkBAIC01MDAsNyArNTAw
LDcgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgQVNTRVJUKEpJVENvZGU6OmlzQmFzZWxpbmVD
b2RlKGppdFR5cGUoKSkpOwogICAgICAgICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihtX2xv
Y2spOwotICAgICAgICByZXR1cm4gbV9leGl0UHJvZmlsZS5hZGQobG9ja2VyLCBzaXRlKTsKKyAg
ICAgICAgcmV0dXJuIG1fZXhpdFByb2ZpbGUuYWRkKGxvY2tlciwgdGhpcywgc2l0ZSk7CiAgICAg
fQogCiAgICAgYm9vbCBoYXNFeGl0U2l0ZShjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiBsb2Nr
ZXIsIGNvbnN0IERGRzo6RnJlcXVlbnRFeGl0U2l0ZSYgc2l0ZSkgY29uc3QKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9ERkdFeGl0UHJvZmlsZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0RGR0V4aXRQcm9maWxlLmNwcAkocmV2
aXNpb24gMjAwNTE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0RGR0V4aXRQ
cm9maWxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDExLCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgsMTQgKzI4LDI0IEBACiAKICNpZiBFTkFCTEUo
REZHX0pJVCkKIAorI2luY2x1ZGUgIkNvZGVCbG9jay5oIgorCiBuYW1lc3BhY2UgSlNDIHsgbmFt
ZXNwYWNlIERGRyB7CiAKK3ZvaWQgRnJlcXVlbnRFeGl0U2l0ZTo6ZHVtcChQcmludFN0cmVhbSYg
b3V0KSBjb25zdAoreworICAgIG91dC5wcmludCgiYmMjIiwgbV9ieXRlY29kZU9mZnNldCwgIjog
IiwgbV9raW5kLCAiLyIsIG1faml0VHlwZSk7Cit9CisKIEV4aXRQcm9maWxlOjpFeGl0UHJvZmls
ZSgpIHsgfQogRXhpdFByb2ZpbGU6On5FeGl0UHJvZmlsZSgpIHsgfQogCi1ib29sIEV4aXRQcm9m
aWxlOjphZGQoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIGNvbnN0IEZyZXF1ZW50RXhpdFNp
dGUmIHNpdGUpCitib29sIEV4aXRQcm9maWxlOjphZGQoY29uc3QgQ29uY3VycmVudEpJVExvY2tl
ciYsIENvZGVCbG9jayogb3duZXIsIGNvbnN0IEZyZXF1ZW50RXhpdFNpdGUmIHNpdGUpCiB7CiAg
ICAgQVNTRVJUKHNpdGUuaml0VHlwZSgpICE9IEV4aXRGcm9tQW55dGhpbmcpOworCisgICAgaWYg
KGZhbHNlKSAvLyBGSVhNRQorICAgICAgICBkYXRhTG9nKHBvaW50ZXJEdW1wKG93bmVyKSwgIjog
QWRkaW5nIGV4aXQgc2l0ZTogIiwgc2l0ZSwgIlxuIik7CiAgICAgCiAgICAgLy8gSWYgd2UndmUg
bmV2ZXIgc2VlbiBhbnkgZnJlcXVlbnQgZXhpdHMgdGhlbiBjcmVhdGUgdGhlIGxpc3QgYW5kIHB1
dCB0aGlzIHNpdGUKICAgICAvLyBpbnRvIGl0LgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0RGR0V4aXRQcm9maWxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0RGR0V4aXRQcm9maWxlLmgJKHJldmlzaW9uIDIwMDUxNykKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9ERkdFeGl0UHJvZmlsZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAx
MywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTEtMjAxNCwgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTExNiw2ICsxMTYsOCBAQCBwdWJsaWM6CiAgICAg
ewogICAgICAgICByZXR1cm4gbV9raW5kID09IEV4aXRLaW5kVW5zZXQgJiYgbV9ieXRlY29kZU9m
ZnNldDsKICAgICB9CisgICAgCisgICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0
OwogCiBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1fYnl0ZWNvZGVPZmZzZXQ7CkBAIC0xNTksNyAr
MTYxLDcgQEAgcHVibGljOgogICAgIC8vIGJlIGNhbGxlZCBhIGZpeGVkIG51bWJlciBvZiB0aW1l
cyBwZXIgcmVjb21waWxhdGlvbi4gUmVjb21waWxhdGlvbiBpcwogICAgIC8vIHJhcmUgdG8gYmVn
aW4gd2l0aCwgYW5kIGltcGxpZXMgZG9pbmcgTyhuKSBvcGVyYXRpb25zIG9uIHRoZSBDb2RlQmxv
Y2sKICAgICAvLyBhbnl3YXkuCi0gICAgYm9vbCBhZGQoY29uc3QgQ29uY3VycmVudEpJVExvY2tl
ciYsIGNvbnN0IEZyZXF1ZW50RXhpdFNpdGUmKTsKKyAgICBib29sIGFkZChjb25zdCBDb25jdXJy
ZW50SklUTG9ja2VyJiwgQ29kZUJsb2NrKiBvd25lciwgY29uc3QgRnJlcXVlbnRFeGl0U2l0ZSYp
OwogICAgIAogICAgIC8vIEdldCB0aGUgZnJlcXVlbnQgZXhpdCBzaXRlcyBmb3IgYSBieXRlY29k
ZSBpbmRleC4gVGhpcyBpcyBPKG4pLCBhbmQgaXMKICAgICAvLyBtZWFudCB0byBvbmx5IGJlIHVz
ZWQgZnJvbSBkZWJ1Z2dpbmcvcHJvZmlsaW5nIGNvZGUuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL01ldGhvZE9mR2V0dGluZ0FWYWx1
ZVByb2ZpbGUuY3BwCShyZXZpc2lvbiAyMDA1MTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMywgMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShERkdfSklUKQogCisjaW5j
bHVkZSAiQ0NhbGxIZWxwZXJzLmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAi
SlNDSW5saW5lcy5oIgogCkBAIC00NCwxNCArNDUsMTUgQEAgTWV0aG9kT2ZHZXR0aW5nQVZhbHVl
UHJvZmlsZSBNZXRob2RPZkdldAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlKiBNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlOjpnZXRTcGVjRmFpbEJ1Y2tldCh1bnNp
Z25lZCBpbmRleCkgY29uc3QKK3ZvaWQgTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZTo6ZW1p
dFJlcG9ydFZhbHVlKENDYWxsSGVscGVycyYgaml0LCBKU1ZhbHVlUmVncyByZWdzKSBjb25zdAog
ewogICAgIHN3aXRjaCAobV9raW5kKSB7CiAgICAgY2FzZSBOb25lOgotICAgICAgICByZXR1cm4g
MDsKKyAgICAgICAgcmV0dXJuOwogICAgICAgICAKICAgICBjYXNlIFJlYWR5OgotICAgICAgICBy
ZXR1cm4gdS5wcm9maWxlLT5zcGVjRmFpbEJ1Y2tldChpbmRleCk7CisgICAgICAgIGppdC5zdG9y
ZVZhbHVlKHJlZ3MsIHUucHJvZmlsZS0+c3BlY0ZhaWxCdWNrZXQoMCkpOworICAgICAgICByZXR1
cm47CiAgICAgICAgIAogICAgIGNhc2UgTGF6eU9wZXJhbmQ6IHsKICAgICAgICAgTGF6eU9wZXJh
bmRWYWx1ZVByb2ZpbGVLZXkga2V5KHUubGF6eU9wZXJhbmQuYnl0ZWNvZGVPZmZzZXQsIFZpcnR1
YWxSZWdpc3Rlcih1LmxhenlPcGVyYW5kLm9wZXJhbmQpKTsKQEAgLTU5LDEzICs2MSwxNiBAQCBF
bmNvZGVkSlNWYWx1ZSogTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvCiAgICAgICAgIENvbmN1cnJl
bnRKSVRMb2NrZXIgbG9ja2VyKHUubGF6eU9wZXJhbmQuY29kZUJsb2NrLT5tX2xvY2spOwogICAg
ICAgICBMYXp5T3BlcmFuZFZhbHVlUHJvZmlsZSogcHJvZmlsZSA9CiAgICAgICAgICAgICB1Lmxh
enlPcGVyYW5kLmNvZGVCbG9jay0+bGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGVzKCkuYWRkKGxvY2tl
ciwga2V5KTsKLSAgICAgICAgcmV0dXJuIHByb2ZpbGUtPnNwZWNGYWlsQnVja2V0KGluZGV4KTsK
KyAgICAgICAgaml0LnN0b3JlVmFsdWUocmVncywgcHJvZmlsZS0+c3BlY0ZhaWxCdWNrZXQoMCkp
OworICAgICAgICByZXR1cm47CiAgICAgfQogICAgICAgICAKLSAgICBkZWZhdWx0OgotICAgICAg
ICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm4gMDsKLSAgICB9
CisgICAgY2FzZSBSZXN1bHRQcm9maWxlUmVhZHk6IHsKKyAgICAgICAgdS5yZXN1bHRQcm9maWxl
LT5lbWl0RGV0ZWN0Qml0c0xpZ2h0KGppdCwgcmVncywgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0gfQorICAgIAorICAgIFJFTEVBU0VfQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL01ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTWV0aG9kT2ZHZXR0aW5nQVZhbHVl
UHJvZmlsZS5oCShyZXZpc2lvbiAyMDA1MTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMiwx
MiArMzIsMTUgQEAKIC8vIHRoZXNlICNpZidzIHdpbGwgZGlzYXBwZWFyLi4uCiAjaWYgRU5BQkxF
KERGR19KSVQpCiAKKyNpbmNsdWRlICJHUFJJbmZvLmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZS5o
IgogCiBuYW1lc3BhY2UgSlNDIHsKIAorY2xhc3MgQ0NhbGxIZWxwZXJzOwogY2xhc3MgQ29kZUJs
b2NrOwogY2xhc3MgTGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGVLZXk7CitzdHJ1Y3QgUmVzdWx0UHJv
ZmlsZTsKIHN0cnVjdCBWYWx1ZVByb2ZpbGU7CiAKIGNsYXNzIE1ldGhvZE9mR2V0dGluZ0FWYWx1
ZVByb2ZpbGUgewpAQCAtNDcsNyArNTAsNyBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KICAgICAK
LSAgICBleHBsaWNpdCBNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlKFZhbHVlUHJvZmlsZSog
cHJvZmlsZSkKKyAgICBNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlKFZhbHVlUHJvZmlsZSog
cHJvZmlsZSkKICAgICB7CiAgICAgICAgIGlmIChwcm9maWxlKSB7CiAgICAgICAgICAgICBtX2tp
bmQgPSBSZWFkeTsKQEAgLTU2LDMxICs1OSwzNCBAQCBwdWJsaWM6CiAgICAgICAgICAgICBtX2tp
bmQgPSBOb25lOwogICAgIH0KICAgICAKKyAgICBNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxl
KFJlc3VsdFByb2ZpbGUqIHByb2ZpbGUpCisgICAgeworICAgICAgICBpZiAocHJvZmlsZSkgewor
ICAgICAgICAgICAgbV9raW5kID0gUmVzdWx0UHJvZmlsZVJlYWR5OworICAgICAgICAgICAgdS5y
ZXN1bHRQcm9maWxlID0gcHJvZmlsZTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBtX2tp
bmQgPSBOb25lOworICAgIH0KKyAgICAKICAgICBzdGF0aWMgTWV0aG9kT2ZHZXR0aW5nQVZhbHVl
UHJvZmlsZSBmcm9tTGF6eU9wZXJhbmQoCiAgICAgICAgIENvZGVCbG9jayosIGNvbnN0IExhenlP
cGVyYW5kVmFsdWVQcm9maWxlS2V5Jik7CiAgICAgCi0gICAgYm9vbCBvcGVyYXRvciEoKSBjb25z
dCB7IHJldHVybiBtX2tpbmQgPT0gTm9uZTsgfQotICAgIAotICAgIC8vIFRoaXMgbG9naWNhbGx5
IGhhcyBhIHBvaW50ZXIgdG8gYSAiVGhlcmUgZXhpc3RzIFggc3VjaCB0aGF0Ci0gICAgLy8gVmFs
dWVQcm9maWxlQmFzZTxYPiIuIEJ1dCBzaW5jZSBDKysgZG9lcyBub3QgaGF2ZSBleGlzdGVudGlh
bAotICAgIC8vIHRlbXBsYXRlcywgSSBjYW5ub3QgcmV0dXJuIGl0LiBTbyBpbnN0ZWFkLCBmb3Ig
YW55IG1ldGhvZHMgdGhhdAotICAgIC8vIHVzZXJzIG9mIHRoaXMgY2xhc3Mgd291bGQgbGlrZSB0
byBjYWxsLCB3ZSdsbCBqdXN0IGhhdmUgdG8gcHJvdmlkZQotICAgIC8vIGEgbWV0aG9kIGhlcmUg
dGhhdCBkb2VzIGl0IHRocm91Z2ggYW4gaW5kaXJlY3Rpb24uIE9yIHdlIGNvdWxkCi0gICAgLy8g
cG9zc2libHkganVzdCBtYWtlIFZhbHVlUHJvZmlsZSBsZXNzIHRlbXBsYXRlLWJhc2VkLiBCdXQg
bGFzdCBJCi0gICAgLy8gdHJpZWQgdGhhdCwgaXQgZmVsdCBtb3JlIHl1Y2t5IHRoYW4gdGhpcyBj
bGFzcy4KKyAgICBleHBsaWNpdCBvcGVyYXRvciBib29sKCkgY29uc3QgeyByZXR1cm4gbV9raW5k
ICE9IE5vbmU7IH0KICAgICAKLSAgICBFbmNvZGVkSlNWYWx1ZSogZ2V0U3BlY0ZhaWxCdWNrZXQo
dW5zaWduZWQgaW5kZXgpIGNvbnN0OworICAgIHZvaWQgZW1pdFJlcG9ydFZhbHVlKENDYWxsSGVs
cGVycyYsIEpTVmFsdWVSZWdzKSBjb25zdDsKICAgICAKIHByaXZhdGU6CiAgICAgZW51bSBLaW5k
IHsKICAgICAgICAgTm9uZSwKICAgICAgICAgUmVhZHksCisgICAgICAgIFJlc3VsdFByb2ZpbGVS
ZWFkeSwKICAgICAgICAgTGF6eU9wZXJhbmQKICAgICB9OwogICAgIAogICAgIEtpbmQgbV9raW5k
OwogICAgIHVuaW9uIHsKICAgICAgICAgVmFsdWVQcm9maWxlKiBwcm9maWxlOworICAgICAgICBS
ZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlOwogICAgICAgICBzdHJ1Y3QgewogICAgICAgICAg
ICAgQ29kZUJsb2NrKiBjb2RlQmxvY2s7CiAgICAgICAgICAgICB1bnNpZ25lZCBieXRlY29kZU9m
ZnNldDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhpY0Fj
Y2Vzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1Bv
bHltb3JwaGljQWNjZXNzLmNwcAkocmV2aXNpb24gMjAwNTE3KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTE0Niw4ICsxMTQ2LDcgQEAgdm9pZCBBY2Nlc3NDYXNlOjpnZW5lcmF0ZUltcGwoQWNjZXNzR2Vu
ZQogICAgICAgICAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgICAgICAgICAgZGF0YUxvZygiSGF2
ZSB0eXBlOiAiLCB0eXBlLT5kZXNjcmlwdG9yKCksICJcbiIpOwogICAgICAgICAgICAgc3RhdGUu
ZmFpbEFuZFJlcGF0Y2guYXBwZW5kKAotICAgICAgICAgICAgICAgIGppdC5icmFuY2hJZk5vdFR5
cGUoCi0gICAgICAgICAgICAgICAgICAgIHZhbHVlUmVncywgc2NyYXRjaEdQUiwgdHlwZS0+ZGVz
Y3JpcHRvcigpLCBDQ2FsbEhlbHBlcnM6OkhhdmVUYWdSZWdpc3RlcnMpKTsKKyAgICAgICAgICAg
ICAgICBqaXQuYnJhbmNoSWZOb3RUeXBlKHZhbHVlUmVncywgc2NyYXRjaEdQUiwgdHlwZS0+ZGVz
Y3JpcHRvcigpKSk7CiAgICAgICAgIH0gZWxzZSBpZiAodmVyYm9zZSkKICAgICAgICAgICAgIGRh
dGFMb2coIkRvbid0IGhhdmUgdHlwZS5cbiIpOwogICAgICAgICAKQEAgLTExNzcsOCArMTE3Niw3
IEBAIHZvaWQgQWNjZXNzQ2FzZTo6Z2VuZXJhdGVJbXBsKEFjY2Vzc0dlbmUKICAgICAgICAgICAg
IGlmICh2ZXJib3NlKQogICAgICAgICAgICAgICAgIGRhdGFMb2coIkhhdmUgdHlwZTogIiwgdHlw
ZS0+ZGVzY3JpcHRvcigpLCAiXG4iKTsKICAgICAgICAgICAgIHN0YXRlLmZhaWxBbmRSZXBhdGNo
LmFwcGVuZCgKLSAgICAgICAgICAgICAgICBqaXQuYnJhbmNoSWZOb3RUeXBlKAotICAgICAgICAg
ICAgICAgICAgICB2YWx1ZVJlZ3MsIHNjcmF0Y2hHUFIsIHR5cGUtPmRlc2NyaXB0b3IoKSwgQ0Nh
bGxIZWxwZXJzOjpIYXZlVGFnUmVnaXN0ZXJzKSk7CisgICAgICAgICAgICAgICAgaml0LmJyYW5j
aElmTm90VHlwZSh2YWx1ZVJlZ3MsIHNjcmF0Y2hHUFIsIHR5cGUtPmRlc2NyaXB0b3IoKSkpOwog
ICAgICAgICB9IGVsc2UgaWYgKHZlcmJvc2UpCiAgICAgICAgICAgICBkYXRhTG9nKCJEb24ndCBo
YXZlIHR5cGUuXG4iKTsKICAgICAgICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvVmFsdWVQcm9maWxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvVmFsdWVQcm9maWxlLmNwcAkocmV2aXNpb24gMjAwNTE3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZhbHVlUHJvZmlsZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MjYsNiArMjYsMzYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJWYWx1ZVByb2Zp
bGUuaCIKIAorI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgorI2luY2x1ZGUgIkpTQ0lubGluZXMu
aCIKKworbmFtZXNwYWNlIEpTQyB7CisKK3ZvaWQgUmVzdWx0UHJvZmlsZTo6ZW1pdERldGVjdEJp
dHNMaWdodChDQ2FsbEhlbHBlcnMmIGppdCwgSlNWYWx1ZVJlZ3MgcmVncywgVGFnUmVnaXN0ZXJz
TW9kZSBtb2RlKQoreworICAgIENDYWxsSGVscGVyczo6SnVtcCBpc0ludDMyID0gaml0LmJyYW5j
aElmSW50MzIocmVncywgbW9kZSk7CisgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIG5vdERvdWJsZSA9
IGppdC5icmFuY2hJZk5vdERvdWJsZUtub3duTm90SW50MzIocmVncywgbW9kZSk7CisgICAgLy8g
RklYTUU6IFdlIGNvdWxkIGJlIG1vcmUgcHJlY2lzZSBoZXJlLgorICAgIGVtaXRTZXREb3VibGUo
aml0KTsKKyAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgZG9uZSA9IGppdC5qdW1wKCk7CisgICAgbm90
RG91YmxlLmxpbmsoJmppdCk7CisgICAgZW1pdFNldE5vbk51bWJlcihqaXQpOworICAgIGRvbmUu
bGluaygmaml0KTsKKyAgICBpc0ludDMyLmxpbmsoJmppdCk7Cit9CisKK3ZvaWQgUmVzdWx0UHJv
ZmlsZTo6ZW1pdFNldERvdWJsZShDQ2FsbEhlbHBlcnMmIGppdCkKK3sKKyAgICBqaXQub3IzMihD
Q2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihSZXN1bHRQcm9maWxlOjpJbnQzMk92ZXJmbG93IHwg
UmVzdWx0UHJvZmlsZTo6SW50NTJPdmVyZmxvdyB8IFJlc3VsdFByb2ZpbGU6Ok5lZ1plcm9Eb3Vi
bGUgfCBSZXN1bHRQcm9maWxlOjpOb25OZWdaZXJvRG91YmxlKSwgQ0NhbGxIZWxwZXJzOjpBYnNv
bHV0ZUFkZHJlc3MoYWRkcmVzc09mRmxhZ3MoKSkpOworfQorCit2b2lkIFJlc3VsdFByb2ZpbGU6
OmVtaXRTZXROb25OdW1iZXIoQ0NhbGxIZWxwZXJzJiBqaXQpCit7CisgICAgaml0Lm9yMzIoQ0Nh
bGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoUmVzdWx0UHJvZmlsZTo6Tm9uTnVtYmVyKSwgQ0NhbGxI
ZWxwZXJzOjpBYnNvbHV0ZUFkZHJlc3MoYWRkcmVzc09mRmxhZ3MoKSkpOworfQorCit9IC8vIG5h
bWVzcGFjZSBKU0MKKwogbmFtZXNwYWNlIFdURiB7CiAgICAgCiB1c2luZyBuYW1lc3BhY2UgSlND
OwpAQCAtMzQsMjMgKzY0LDMxIEBAIHZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0
LCBjb24KIHsKICAgICBjb25zdCBjaGFyKiBzZXBhcmF0b3IgPSAiIjsKIAotICAgIGlmIChwcm9m
aWxlLmRpZE9ic2VydmVOZWdaZXJvRG91YmxlKCkpIHsKLSAgICAgICAgb3V0LnByaW50KHNlcGFy
YXRvciwgIk5lZ1plcm9Eb3VibGUiKTsKKyAgICBpZiAoIXByb2ZpbGUuZGlkT2JzZXJ2ZU5vbklu
dDMyKCkpIHsKKyAgICAgICAgb3V0LnByaW50KCJJbnQzMiIpOwogICAgICAgICBzZXBhcmF0b3Ig
PSAifCI7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKHByb2ZpbGUuZGlkT2JzZXJ2ZU5lZ1pl
cm9Eb3VibGUoKSkgeworICAgICAgICAgICAgb3V0LnByaW50KHNlcGFyYXRvciwgIk5lZ1plcm9E
b3VibGUiKTsKKyAgICAgICAgICAgIHNlcGFyYXRvciA9ICJ8IjsKKyAgICAgICAgfQorICAgICAg
ICBpZiAocHJvZmlsZS5kaWRPYnNlcnZlTm9uTmVnWmVyb0RvdWJsZSgpKSB7CisgICAgICAgICAg
ICBvdXQucHJpbnQoIk5vbk5lZ1plcm9Eb3VibGUiKTsKKyAgICAgICAgICAgIHNlcGFyYXRvciA9
ICJ8IjsKKyAgICAgICAgfQorICAgICAgICBpZiAocHJvZmlsZS5kaWRPYnNlcnZlTm9uTnVtYmVy
KCkpIHsKKyAgICAgICAgICAgIG91dC5wcmludCgiTm9uTnVtYmVyIik7CisgICAgICAgICAgICBz
ZXBhcmF0b3IgPSAifCI7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHByb2ZpbGUuZGlkT2JzZXJ2
ZUludDMyT3ZlcmZsb3coKSkgeworICAgICAgICAgICAgb3V0LnByaW50KCJJbnQzMk92ZXJmbG93
Iik7CisgICAgICAgICAgICBzZXBhcmF0b3IgPSAifCI7CisgICAgICAgIH0KKyAgICAgICAgaWYg
KHByb2ZpbGUuZGlkT2JzZXJ2ZUludDUyT3ZlcmZsb3coKSkgeworICAgICAgICAgICAgb3V0LnBy
aW50KCJJbnQ1Mk92ZXJmbG93Iik7CisgICAgICAgICAgICBzZXBhcmF0b3IgPSAifCI7CisgICAg
ICAgIH0KICAgICB9Ci0gICAgaWYgKHByb2ZpbGUuZGlkT2JzZXJ2ZU5vbk51bWJlcigpKSB7Ci0g
ICAgICAgIG91dC5wcmludCgiTm9uTnVtYmVyIik7Ci0gICAgICAgIHNlcGFyYXRvciA9ICJ8IjsK
LSAgICB9Ci0gICAgaWYgKHByb2ZpbGUuZGlkT2JzZXJ2ZUludDMyT3ZlcmZsb3coKSkgewotICAg
ICAgICBvdXQucHJpbnQoIkludDMyT3ZlcmZsb3ciKTsKLSAgICAgICAgc2VwYXJhdG9yID0gInwi
OwotICAgIH0KLSAgICBpZiAocHJvZmlsZS5kaWRPYnNlcnZlSW50NTJPdmVyZmxvdygpKSB7Ci0g
ICAgICAgIG91dC5wcmludCgiSW50NTJPdmVyZmxvdyIpOwotICAgICAgICBzZXBhcmF0b3IgPSAi
fCI7Ci0gICAgfQotCiAgICAgaWYgKHByb2ZpbGUuc3BlY2lhbEZhc3RQYXRoQ291bnQoKSkgewog
ICAgICAgICBvdXQucHJpbnQoIiBzcGVjaWFsIGZhc3QgcGF0aDogIik7CiAgICAgICAgIG91dC5w
cmludChwcm9maWxlLnNwZWNpYWxGYXN0UGF0aENvdW50KCkpOwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL1ZhbHVlUHJvZmlsZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WYWx1ZVByb2ZpbGUuaAkocmV2aXNpb24gMjAwNTE3KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZhbHVlUHJvZmlsZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwg
MjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTEtMjAxMywgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM0LDEyICszNCwxNSBAQAogI2luY2x1ZGUgIkpTQXJy
YXkuaCIKICNpbmNsdWRlICJTcGVjdWxhdGVkVHlwZS5oIgogI2luY2x1ZGUgIlN0cnVjdHVyZS5o
IgorI2luY2x1ZGUgIlRhZ1JlZ2lzdGVyc01vZGUuaCIKICNpbmNsdWRlICJXcml0ZUJhcnJpZXIu
aCIKICNpbmNsdWRlIDx3dGYvUHJpbnRTdHJlYW0uaD4KICNpbmNsdWRlIDx3dGYvU3RyaW5nUHJp
bnRTdHJlYW0uaD4KIAogbmFtZXNwYWNlIEpTQyB7CiAKK2NsYXNzIENDYWxsSGVscGVyczsKKwog
dGVtcGxhdGU8dW5zaWduZWQgbnVtYmVyT2ZCdWNrZXRzQXJndW1lbnQ+CiBzdHJ1Y3QgVmFsdWVQ
cm9maWxlQmFzZSB7CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG51bWJlck9mQnVja2V0cyA9
IG51bWJlck9mQnVja2V0c0FyZ3VtZW50OwpAQCAtMjE4LDIwICsyMjEsMjUgQEAgcHVibGljOgog
ICAgIH0KIAogICAgIGVudW0gT2JzZXJ2ZWRSZXN1bHRzIHsKLSAgICAgICAgTmVnWmVyb0RvdWJs
ZSAgICA9IDEgPDwgMCwKLSAgICAgICAgTm9uTnVtYmVyICAgICAgICA9IDEgPDwgMSwKLSAgICAg
ICAgSW50MzJPdmVyZmxvdyAgICA9IDEgPDwgMiwKLSAgICAgICAgSW50NTJPdmVyZmxvdyAgICA9
IDEgPDwgMywKKyAgICAgICAgTm9uTmVnWmVyb0RvdWJsZSA9IDEgPDwgMCwKKyAgICAgICAgTmVn
WmVyb0RvdWJsZSAgICA9IDEgPDwgMSwKKyAgICAgICAgTm9uTnVtYmVyICAgICAgICA9IDEgPDwg
MiwKKyAgICAgICAgSW50MzJPdmVyZmxvdyAgICA9IDEgPDwgMywKKyAgICAgICAgSW50NTJPdmVy
ZmxvdyAgICA9IDEgPDwgNCwKICAgICB9OwogCiAgICAgaW50IGJ5dGVjb2RlT2Zmc2V0KCkgY29u
c3QgeyByZXR1cm4gbV9ieXRlY29kZU9mZnNldEFuZEZsYWdzID4+IG51bWJlck9mRmxhZ0JpdHM7
IH0KICAgICB1bnNpZ25lZCBzcGVjaWFsRmFzdFBhdGhDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1f
c3BlY2lhbEZhc3RQYXRoQ291bnQ7IH0KIAorICAgIGJvb2wgZGlkT2JzZXJ2ZU5vbkludDMyKCkg
Y29uc3QgeyByZXR1cm4gaGFzQml0cyhOb25OZWdaZXJvRG91YmxlIHwgTmVnWmVyb0RvdWJsZSB8
IE5vbk51bWJlcik7IH0KKyAgICBib29sIGRpZE9ic2VydmVEb3VibGUoKSBjb25zdCB7IHJldHVy
biBoYXNCaXRzKE5vbk5lZ1plcm9Eb3VibGUgfCBOZWdaZXJvRG91YmxlKTsgfQorICAgIGJvb2wg
ZGlkT2JzZXJ2ZU5vbk5lZ1plcm9Eb3VibGUoKSBjb25zdCB7IHJldHVybiBoYXNCaXRzKE5vbk5l
Z1plcm9Eb3VibGUpOyB9CiAgICAgYm9vbCBkaWRPYnNlcnZlTmVnWmVyb0RvdWJsZSgpIGNvbnN0
IHsgcmV0dXJuIGhhc0JpdHMoTmVnWmVyb0RvdWJsZSk7IH0KICAgICBib29sIGRpZE9ic2VydmVO
b25OdW1iZXIoKSBjb25zdCB7IHJldHVybiBoYXNCaXRzKE5vbk51bWJlcik7IH0KICAgICBib29s
IGRpZE9ic2VydmVJbnQzMk92ZXJmbG93KCkgY29uc3QgeyByZXR1cm4gaGFzQml0cyhJbnQzMk92
ZXJmbG93KTsgfQogICAgIGJvb2wgZGlkT2JzZXJ2ZUludDUyT3ZlcmZsb3coKSBjb25zdCB7IHJl
dHVybiBoYXNCaXRzKEludDUyT3ZlcmZsb3cpOyB9CiAKKyAgICB2b2lkIHNldE9ic2VydmVkTm9u
TmVnWmVyb0RvdWJsZSgpIHsgc2V0Qml0KE5vbk5lZ1plcm9Eb3VibGUpOyB9CiAgICAgdm9pZCBz
ZXRPYnNlcnZlZE5lZ1plcm9Eb3VibGUoKSB7IHNldEJpdChOZWdaZXJvRG91YmxlKTsgfQogICAg
IHZvaWQgc2V0T2JzZXJ2ZWROb25OdW1iZXIoKSB7IHNldEJpdChOb25OdW1iZXIpOyB9CiAgICAg
dm9pZCBzZXRPYnNlcnZlZEludDMyT3ZlcmZsb3coKSB7IHNldEJpdChJbnQzMk92ZXJmbG93KTsg
fQpAQCAtMjM5LDYgKzI0NywyNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkKiBhZGRyZXNzT2ZGbGFn
cygpIHsgcmV0dXJuICZtX2J5dGVjb2RlT2Zmc2V0QW5kRmxhZ3M7IH0KICAgICB2b2lkKiBhZGRy
ZXNzT2ZTcGVjaWFsRmFzdFBhdGhDb3VudCgpIHsgcmV0dXJuICZtX3NwZWNpYWxGYXN0UGF0aENv
dW50OyB9CisgICAgCisgICAgLy8gU2V0cyAoSW50MzJPdmVyZmxvdyB8IEludDUyT3ZlcmZsb3cg
fCBOb25OZWdaZXJvRG91YmxlIHwgTmVnWmVyb0RvdWJsZSkgaWYgaXQgc2VlcyBhCisgICAgLy8g
ZG91YmxlLiBTZXRzIE5vbk51bWJlciBpZiBpdCBzZWVzIGEgbm9uLW51bWJlci4KKyAgICB2b2lk
IGVtaXREZXRlY3RCaXRzTGlnaHQoQ0NhbGxIZWxwZXJzJiwgSlNWYWx1ZVJlZ3MsIFRhZ1JlZ2lz
dGVyc01vZGUgPSBIYXZlVGFnUmVnaXN0ZXJzKTsKKyAgICAKKyAgICB2b2lkIGRldGVjdEJpdHNM
aWdodChKU1ZhbHVlIHZhbHVlKQorICAgIHsKKyAgICAgICAgaWYgKHZhbHVlLmlzSW50MzIoKSkK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgaWYgKHZhbHVlLmlzTnVtYmVyKCkpIHsKKyAg
ICAgICAgICAgIG1fYnl0ZWNvZGVPZmZzZXRBbmRGbGFncyB8PSBJbnQzMk92ZXJmbG93IHwgSW50
NTJPdmVyZmxvdyB8IE5vbk5lZ1plcm9Eb3VibGUgfCBOZWdaZXJvRG91YmxlOworICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIG1fYnl0ZWNvZGVPZmZzZXRBbmRGbGFncyB8
PSBOb25OdW1iZXI7CisgICAgfQorICAgIAorICAgIC8vIFNldHMgKEludDMyT3ZlcmZsb3cgfCBJ
bnQ1Mk92ZXJmbG93IHwgTm9uTmVnWmVyb0RvdWJsZSB8IE5lZ1plcm9Eb3VibGUpLgorICAgIHZv
aWQgZW1pdFNldERvdWJsZShDQ2FsbEhlbHBlcnMmKTsKKyAgICAKKyAgICAvLyBTZXRzIE5vbk51
bWJlci4KKyAgICB2b2lkIGVtaXRTZXROb25OdW1iZXIoQ0NhbGxIZWxwZXJzJik7CiAKIHByaXZh
dGU6CiAgICAgYm9vbCBoYXNCaXRzKGludCBtYXNrKSBjb25zdCB7IHJldHVybiBtX2J5dGVjb2Rl
T2Zmc2V0QW5kRmxhZ3MgJiBtYXNrOyB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0J5dGVDb2RlUGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAkocmV2aXNpb24gMjAwNTE3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTkwNiw0MCArOTA2LDU4IEBAIHByaXZhdGU6CiAgICAgICAgIGlmICghaXNYODYoKSAmJiBu
b2RlLT5vcCgpID09IEFyaXRoTW9kKQogICAgICAgICAgICAgcmV0dXJuIG5vZGU7CiAKLSAgICAg
ICAgaWYgKCFtX2lubGluZVN0YWNrVG9wLT5tX3Byb2ZpbGVkQmxvY2stPmxpa2VseVRvVGFrZVNs
b3dDYXNlKG1fY3VycmVudEluZGV4KSkKLSAgICAgICAgICAgIHJldHVybiBub2RlOworICAgICAg
ICBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlID0gbV9pbmxpbmVTdGFja1RvcC0+bV9wcm9m
aWxlZEJsb2NrLT5yZXN1bHRQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQobV9jdXJyZW50SW5kZXgp
OworICAgICAgICBpZiAocmVzdWx0UHJvZmlsZSkgeworICAgICAgICAgICAgc3dpdGNoIChub2Rl
LT5vcCgpKSB7CisgICAgICAgICAgICBjYXNlIEFyaXRoQWRkOgorICAgICAgICAgICAgY2FzZSBB
cml0aFN1YjoKKyAgICAgICAgICAgIGNhc2UgVmFsdWVBZGQ6CisgICAgICAgICAgICAgICAgaWYg
KHJlc3VsdFByb2ZpbGUtPmRpZE9ic2VydmVEb3VibGUoKSkKKyAgICAgICAgICAgICAgICAgICAg
bm9kZS0+bWVyZ2VGbGFncyhOb2RlTWF5SGF2ZURvdWJsZVJlc3VsdCk7CisgICAgICAgICAgICAg
ICAgaWYgKHJlc3VsdFByb2ZpbGUtPmRpZE9ic2VydmVOb25OdW1iZXIoKSkKKyAgICAgICAgICAg
ICAgICAgICAgbm9kZS0+bWVyZ2VGbGFncyhOb2RlTWF5SGF2ZU5vbk51bWJlclJlc3VsdCk7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBjYXNl
IEFyaXRoTXVsOiB7CisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdFByb2ZpbGUtPmRpZE9ic2Vy
dmVJbnQ1Mk92ZXJmbG93KCkpCisgICAgICAgICAgICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3Mo
Tm9kZU1heU92ZXJmbG93SW50NTIpOworICAgICAgICAgICAgICAgIGlmIChyZXN1bHRQcm9maWxl
LT5kaWRPYnNlcnZlSW50MzJPdmVyZmxvdygpIHx8IG1faW5saW5lU3RhY2tUb3AtPm1fZXhpdFBy
b2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJyZW50SW5kZXgsIE92ZXJmbG93KSkKKyAgICAgICAgICAg
ICAgICAgICAgbm9kZS0+bWVyZ2VGbGFncyhOb2RlTWF5T3ZlcmZsb3dJbnQzMkluQmFzZWxpbmUp
OworICAgICAgICAgICAgICAgIGlmIChyZXN1bHRQcm9maWxlLT5kaWRPYnNlcnZlTmVnWmVyb0Rv
dWJsZSgpIHx8IG1faW5saW5lU3RhY2tUb3AtPm1fZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobV9j
dXJyZW50SW5kZXgsIE5lZ2F0aXZlWmVybykpCisgICAgICAgICAgICAgICAgICAgIG5vZGUtPm1l
cmdlRmxhZ3MoTm9kZU1heU5lZ1plcm9JbkJhc2VsaW5lKTsKKyAgICAgICAgICAgICAgICBpZiAo
cmVzdWx0UHJvZmlsZS0+ZGlkT2JzZXJ2ZURvdWJsZSgpKQorICAgICAgICAgICAgICAgICAgICBu
b2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlIYXZlRG91YmxlUmVzdWx0KTsKKyAgICAgICAgICAgICAg
ICBpZiAocmVzdWx0UHJvZmlsZS0+ZGlkT2JzZXJ2ZU5vbk51bWJlcigpKQorICAgICAgICAgICAg
ICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlIYXZlTm9uTnVtYmVyUmVzdWx0KTsKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAg
ICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9
CisgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIHN3aXRjaCAobm9kZS0+b3AoKSkgewotICAg
ICAgICBjYXNlIFVJbnQzMlRvTnVtYmVyOgotICAgICAgICBjYXNlIEFyaXRoQWRkOgotICAgICAg
ICBjYXNlIEFyaXRoU3ViOgotICAgICAgICBjYXNlIFZhbHVlQWRkOgotICAgICAgICBjYXNlIEFy
aXRoTW9kOiAvLyBmb3IgQXJpdGhNb2QgIk1heU92ZXJmbG93IiBtZWFucyB3ZSB0cmllZCB0byBk
aXZpZGUgYnkgemVybywgb3Igd2Ugc2F3IGRvdWJsZS4KLSAgICAgICAgICAgIG5vZGUtPm1lcmdl
RmxhZ3MoTm9kZU1heU92ZXJmbG93SW50MzJJbkJhc2VsaW5lKTsKLSAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICAgICAgCi0gICAgICAgIGNhc2UgQXJpdGhOZWdhdGU6Ci0gICAgICAgICAgICAv
LyBDdXJyZW50bHkgd2UgY2FuJ3QgdGVsbCB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIGEgbmVnYXRp
b24gb3ZlcmZsb3dpbmcKLSAgICAgICAgICAgIC8vIChpLmUuIC0oMSA8PCAzMSkpIG9yIGdlbmVy
YXRpbmcgbmVnYXRpdmUgemVybyAoaS5lLiAtMCkuIElmIGl0IHRvb2sgc2xvdwotICAgICAgICAg
ICAgLy8gcGF0aCB0aGVuIHdlIGFzc3VtZSB0aGF0IGl0IGRpZCBib3RoIG9mIHRob3NlIHRoaW5n
cy4KLSAgICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1heU92ZXJmbG93SW50MzJJbkJh
c2VsaW5lKTsKLSAgICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1heU5lZ1plcm9JbkJh
c2VsaW5lKTsKLSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIGNhc2UgQXJpdGhNdWw6IHsK
LSAgICAgICAgICAgIFJlc3VsdFByb2ZpbGUmIHJlc3VsdFByb2ZpbGUgPSAqbV9pbmxpbmVTdGFj
a1RvcC0+bV9wcm9maWxlZEJsb2NrLT5yZXN1bHRQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQobV9j
dXJyZW50SW5kZXgpOwotICAgICAgICAgICAgaWYgKHJlc3VsdFByb2ZpbGUuZGlkT2JzZXJ2ZUlu
dDUyT3ZlcmZsb3coKSkKLSAgICAgICAgICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlP
dmVyZmxvd0ludDUyKTsKLSAgICAgICAgICAgIGlmIChyZXN1bHRQcm9maWxlLmRpZE9ic2VydmVJ
bnQzMk92ZXJmbG93KCkgfHwgbV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5oYXNFeGl0
U2l0ZShtX2N1cnJlbnRJbmRleCwgT3ZlcmZsb3cpKQorICAgICAgICBpZiAobV9pbmxpbmVTdGFj
a1RvcC0+bV9wcm9maWxlZEJsb2NrLT5saWtlbHlUb1Rha2VTbG93Q2FzZShtX2N1cnJlbnRJbmRl
eCkpIHsKKyAgICAgICAgICAgIHN3aXRjaCAobm9kZS0+b3AoKSkgeworICAgICAgICAgICAgY2Fz
ZSBVSW50MzJUb051bWJlcjoKKyAgICAgICAgICAgIGNhc2UgQXJpdGhBZGQ6CisgICAgICAgICAg
ICBjYXNlIEFyaXRoU3ViOgorICAgICAgICAgICAgY2FzZSBWYWx1ZUFkZDoKKyAgICAgICAgICAg
IGNhc2UgQXJpdGhNb2Q6IC8vIGZvciBBcml0aE1vZCAiTWF5T3ZlcmZsb3ciIG1lYW5zIHdlIHRy
aWVkIHRvIGRpdmlkZSBieSB6ZXJvLCBvciB3ZSBzYXcgZG91YmxlLgorICAgICAgICAgICAgICAg
IG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1heU92ZXJmbG93SW50MzJJbkJhc2VsaW5lKTsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGNhc2UgQXJp
dGhOZWdhdGU6CisgICAgICAgICAgICAgICAgLy8gQ3VycmVudGx5IHdlIGNhbid0IHRlbGwgdGhl
IGRpZmZlcmVuY2UgYmV0d2VlbiBhIG5lZ2F0aW9uIG92ZXJmbG93aW5nCisgICAgICAgICAgICAg
ICAgLy8gKGkuZS4gLSgxIDw8IDMxKSkgb3IgZ2VuZXJhdGluZyBuZWdhdGl2ZSB6ZXJvIChpLmUu
IC0wKS4gSWYgaXQgdG9vayBzbG93CisgICAgICAgICAgICAgICAgLy8gcGF0aCB0aGVuIHdlIGFz
c3VtZSB0aGF0IGl0IGRpZCBib3RoIG9mIHRob3NlIHRoaW5ncy4KICAgICAgICAgICAgICAgICBu
b2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlPdmVyZmxvd0ludDMySW5CYXNlbGluZSk7Ci0gICAgICAg
ICAgICBpZiAocmVzdWx0UHJvZmlsZS5kaWRPYnNlcnZlTmVnWmVyb0RvdWJsZSgpIHx8IG1faW5s
aW5lU3RhY2tUb3AtPm1fZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJyZW50SW5kZXgsIE5l
Z2F0aXZlWmVybykpCiAgICAgICAgICAgICAgICAgbm9kZS0+bWVyZ2VGbGFncyhOb2RlTWF5TmVn
WmVyb0luQmFzZWxpbmUpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLQotICAgICAg
ICBkZWZhdWx0OgotICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAg
IAorICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIH0KICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgcmV0dXJuIG5vZGU7CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAJKHJldmlzaW9uIDIw
MDUxNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTIzNiw4ICsyMzYsNyBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIEFy
aXRoTXVsOiB7CiAgICAgICAgICAgICBFZGdlJiBsZWZ0Q2hpbGQgPSBub2RlLT5jaGlsZDEoKTsK
ICAgICAgICAgICAgIEVkZ2UmIHJpZ2h0Q2hpbGQgPSBub2RlLT5jaGlsZDIoKTsKLSAgICAgICAg
ICAgIGlmIChOb2RlOjpzaG91bGRTcGVjdWxhdGVVbnR5cGVkRm9yQXJpdGhtZXRpYyhsZWZ0Q2hp
bGQubm9kZSgpLCByaWdodENoaWxkLm5vZGUoKSkKLSAgICAgICAgICAgICAgICAmJiBtX2dyYXBo
Lmhhc0V4aXRTaXRlKG5vZGUtPm9yaWdpbi5zZW1hbnRpYywgQmFkVHlwZSkpIHsKKyAgICAgICAg
ICAgIGlmIChOb2RlOjpzaG91bGRTcGVjdWxhdGVVbnR5cGVkRm9yQXJpdGhtZXRpYyhsZWZ0Q2hp
bGQubm9kZSgpLCByaWdodENoaWxkLm5vZGUoKSkpIHsKICAgICAgICAgICAgICAgICBmaXhFZGdl
PFVudHlwZWRVc2U+KGxlZnRDaGlsZCk7CiAgICAgICAgICAgICAgICAgZml4RWRnZTxVbnR5cGVk
VXNlPihyaWdodENoaWxkKTsKICAgICAgICAgICAgICAgICBub2RlLT5zZXRSZXN1bHQoTm9kZVJl
c3VsdEpTKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguY3BwCShyZXZp
c2lvbiAyMDA1MTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTQ0Niw0NiArMTQ0Niw1MCBAQCB2b2lkIEdyYXBoOjplbnN1cmVO
YXR1cmFsTG9vcHMoKQogICAgICAgICBtX25hdHVyYWxMb29wcyA9IHN0ZDo6bWFrZV91bmlxdWU8
TmF0dXJhbExvb3BzPigqdGhpcyk7CiB9CiAKLVZhbHVlUHJvZmlsZSogR3JhcGg6OnZhbHVlUHJv
ZmlsZUZvcihOb2RlKiBub2RlKQorTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZSBHcmFwaDo6
bWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZUZvcihOb2RlKiBub2RlKQogewotICAgIGlmICgh
bm9kZSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgd2hpbGUgKG5vZGUpIHsKKyAgICAg
ICAgQ29kZUJsb2NrKiBwcm9maWxlZEJsb2NrID0gYmFzZWxpbmVDb2RlQmxvY2tGb3Iobm9kZS0+
b3JpZ2luLnNlbWFudGljKTsKICAgICAgICAgCi0gICAgQ29kZUJsb2NrKiBwcm9maWxlZEJsb2Nr
ID0gYmFzZWxpbmVDb2RlQmxvY2tGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKTsKKyAgICAgICAg
aWYgKG5vZGUtPmhhc0xvY2FsKCp0aGlzKSkgeworICAgICAgICAgICAgVmFsdWVQcm9maWxlKiBy
ZXN1bHQgPSBbJl0gKCkgLT4gVmFsdWVQcm9maWxlKiB7CisgICAgICAgICAgICAgICAgaWYgKCFu
b2RlLT5sb2NhbCgpLmlzQXJndW1lbnQoKSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CisgICAgICAgICAgICAgICAgaW50IGFyZ3VtZW50ID0gbm9kZS0+bG9jYWwoKS50b0Fy
Z3VtZW50KCk7CisgICAgICAgICAgICAgICAgTm9kZSogYXJndW1lbnROb2RlID0gbV9hcmd1bWVu
dHNbYXJndW1lbnRdOworICAgICAgICAgICAgICAgIGlmICghYXJndW1lbnROb2RlKQorICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgICAgICAgICBpZiAobm9kZS0+
dmFyaWFibGVBY2Nlc3NEYXRhKCkgIT0gYXJndW1lbnROb2RlLT52YXJpYWJsZUFjY2Vzc0RhdGEo
KSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgICAgICAgICAg
cmV0dXJuIHByb2ZpbGVkQmxvY2stPnZhbHVlUHJvZmlsZUZvckFyZ3VtZW50KGFyZ3VtZW50KTsK
KyAgICAgICAgICAgIH0oKTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQpCisgICAgICAgICAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKG5vZGUtPm9w
KCkgPT0gR2V0TG9jYWwpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gTWV0aG9kT2ZHZXR0aW5n
QVZhbHVlUHJvZmlsZTo6ZnJvbUxhenlPcGVyYW5kKAorICAgICAgICAgICAgICAgICAgICBwcm9m
aWxlZEJsb2NrLAorICAgICAgICAgICAgICAgICAgICBMYXp5T3BlcmFuZFZhbHVlUHJvZmlsZUtl
eSgKKyAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUtPm9yaWdpbi5zZW1hbnRpYy5ieXRlY29k
ZUluZGV4LCBub2RlLT5sb2NhbCgpKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KICAgICAg
ICAgCi0gICAgaWYgKG5vZGUtPmhhc0xvY2FsKCp0aGlzKSkgewotICAgICAgICBpZiAoIW5vZGUt
PmxvY2FsKCkuaXNBcmd1bWVudCgpKQotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAg
ICAgIGludCBhcmd1bWVudCA9IG5vZGUtPmxvY2FsKCkudG9Bcmd1bWVudCgpOwotICAgICAgICBO
b2RlKiBhcmd1bWVudE5vZGUgPSBtX2FyZ3VtZW50c1thcmd1bWVudF07Ci0gICAgICAgIGlmICgh
YXJndW1lbnROb2RlKQotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAgIGlmIChu
b2RlLT52YXJpYWJsZUFjY2Vzc0RhdGEoKSAhPSBhcmd1bWVudE5vZGUtPnZhcmlhYmxlQWNjZXNz
RGF0YSgpKQotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAgIHJldHVybiBwcm9m
aWxlZEJsb2NrLT52YWx1ZVByb2ZpbGVGb3JBcmd1bWVudChhcmd1bWVudCk7Ci0gICAgfQorICAg
ICAgICBpZiAobm9kZS0+aGFzSGVhcFByZWRpY3Rpb24oKSkKKyAgICAgICAgICAgIHJldHVybiBw
cm9maWxlZEJsb2NrLT52YWx1ZVByb2ZpbGVGb3JCeXRlY29kZU9mZnNldChub2RlLT5vcmlnaW4u
c2VtYW50aWMuYnl0ZWNvZGVJbmRleCk7CiAgICAgICAgIAotICAgIGlmIChub2RlLT5oYXNIZWFw
UHJlZGljdGlvbigpKQotICAgICAgICByZXR1cm4gcHJvZmlsZWRCbG9jay0+dmFsdWVQcm9maWxl
Rm9yQnl0ZWNvZGVPZmZzZXQobm9kZS0+b3JpZ2luLnNlbWFudGljLmJ5dGVjb2RlSW5kZXgpOwor
ICAgICAgICBpZiAoUmVzdWx0UHJvZmlsZSogcmVzdWx0ID0gcHJvZmlsZWRCbG9jay0+cmVzdWx0
UHJvZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KG5vZGUtPm9yaWdpbi5zZW1hbnRpYy5ieXRlY29kZUlu
ZGV4KSkKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgIAotICAgIHJldHVybiBu
dWxscHRyOwotfQotCi1NZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlIEdyYXBoOjptZXRob2RP
ZkdldHRpbmdBVmFsdWVQcm9maWxlRm9yKE5vZGUqIG5vZGUpCi17Ci0gICAgaWYgKCFub2RlKQot
ICAgICAgICByZXR1cm4gTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZSgpOwotICAgIAotICAg
IGlmIChWYWx1ZVByb2ZpbGUqIHZhbHVlUHJvZmlsZSA9IHZhbHVlUHJvZmlsZUZvcihub2RlKSkK
LSAgICAgICAgcmV0dXJuIE1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUodmFsdWVQcm9maWxl
KTsKLSAgICAKLSAgICBpZiAobm9kZS0+b3AoKSA9PSBHZXRMb2NhbCkgewotICAgICAgICBDb2Rl
QmxvY2sqIHByb2ZpbGVkQmxvY2sgPSBiYXNlbGluZUNvZGVCbG9ja0Zvcihub2RlLT5vcmlnaW4u
c2VtYW50aWMpOwotICAgICAgICAKLSAgICAgICAgcmV0dXJuIE1ldGhvZE9mR2V0dGluZ0FWYWx1
ZVByb2ZpbGU6OmZyb21MYXp5T3BlcmFuZCgKLSAgICAgICAgICAgIHByb2ZpbGVkQmxvY2ssCi0g
ICAgICAgICAgICBMYXp5T3BlcmFuZFZhbHVlUHJvZmlsZUtleSgKLSAgICAgICAgICAgICAgICBu
b2RlLT5vcmlnaW4uc2VtYW50aWMuYnl0ZWNvZGVJbmRleCwgbm9kZS0+bG9jYWwoKSkpOworICAg
ICAgICBzd2l0Y2ggKG5vZGUtPm9wKCkpIHsKKyAgICAgICAgY2FzZSBJZGVudGl0eToKKyAgICAg
ICAgY2FzZSBWYWx1ZVJlcDoKKyAgICAgICAgY2FzZSBEb3VibGVSZXA6CisgICAgICAgIGNhc2Ug
SW50NTJSZXA6CisgICAgICAgICAgICBub2RlID0gbm9kZS0+Y2hpbGQxKCkubm9kZSgpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBub2RlID0gbnVs
bHB0cjsKKyAgICAgICAgfQogICAgIH0KICAgICAKICAgICByZXR1cm4gTWV0aG9kT2ZHZXR0aW5n
QVZhbHVlUHJvZmlsZSgpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFw
aC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaAko
cmV2aXNpb24gMjAwNTE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5o
CSh3b3JraW5nIGNvcHkpCkBAIC00MDAsNyArNDAwLDYgQEAgcHVibGljOgogICAgICAgICByZXR1
cm4gaGFzRXhpdFNpdGUobm9kZS0+b3JpZ2luLnNlbWFudGljLCBleGl0S2luZCk7CiAgICAgfQog
ICAgIAotICAgIFZhbHVlUHJvZmlsZSogdmFsdWVQcm9maWxlRm9yKE5vZGUqKTsKICAgICBNZXRo
b2RPZkdldHRpbmdBVmFsdWVQcm9maWxlIG1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGVGb3Io
Tm9kZSopOwogICAgIAogICAgIEJsb2NrSW5kZXggbnVtQmxvY2tzKCkgY29uc3QgeyByZXR1cm4g
bV9ibG9ja3Muc2l6ZSgpOyB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05v
ZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAko
cmV2aXNpb24gMjAwNTE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTk1MCw2ICs5NTAsMjEgQEAgc3RydWN0IE5vZGUgewogICAgICAg
ICByZXR1cm4gcmVzdWx0ICYgfk5vZGVCeXRlY29kZU5lZWRzTmVnWmVybzsKICAgICB9CiAKKyAg
ICBib29sIG1heUhhdmVOb25JbnRSZXN1bHQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fZmxh
Z3MgJiBOb2RlTWF5SGF2ZU5vbkludFJlc3VsdDsKKyAgICB9CisgICAgCisgICAgYm9vbCBtYXlI
YXZlRG91YmxlUmVzdWx0KCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX2ZsYWdzICYgTm9kZU1h
eUhhdmVEb3VibGVSZXN1bHQ7CisgICAgfQorICAgIAorICAgIGJvb2wgbWF5SGF2ZU5vbk51bWJl
clJlc3VsdCgpCisgICAgeworICAgICAgICByZXR1cm4gbV9mbGFncyAmIE5vZGVNYXlIYXZlTm9u
TnVtYmVyUmVzdWx0OworICAgIH0KKwogICAgIGJvb2wgaGFzQ29uc3RhbnRCdWZmZXIoKQogICAg
IHsKICAgICAgICAgcmV0dXJuIG9wKCkgPT0gTmV3QXJyYXlCdWZmZXI7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVGbGFncy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlRmxhZ3MuY3BwCShyZXZpc2lvbiAyMDA1MTcpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVGbGFncy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTg1LDYgKzg1LDEyIEBAIHZvaWQgZHVtcE5vZGVGbGFncyhQcmludFN0cmVhbSYgYWN0
dWFsT3UKICAgICAgICAgICAgIG91dC5wcmludChjb21tYSwgIlVzZUFzT3RoZXIiKTsKICAgICB9
CiAKKyAgICBpZiAoZmxhZ3MgJiBOb2RlTWF5SGF2ZURvdWJsZVJlc3VsdCkKKyAgICAgICAgb3V0
LnByaW50KGNvbW1hLCAiTWF5SGF2ZURvdWJsZVJlc3VsdCIpOworCisgICAgaWYgKGZsYWdzICYg
Tm9kZU1heUhhdmVOb25OdW1iZXJSZXN1bHQpCisgICAgICAgIG91dC5wcmludChjb21tYSwgIk1h
eUhhdmVOb25OdW1iZXJSZXN1bHQiKTsKKwogICAgIGlmIChmbGFncyAmIE5vZGVNYXlPdmVyZmxv
d0ludDUyKQogICAgICAgICBvdXQucHJpbnQoY29tbWEsICJNYXlPdmVyZmxvd0ludDUyIik7CiAK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZUZsYWdzLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlRmxhZ3MuaAkocmV2aXNpb24g
MjAwNTE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlRmxhZ3MuaAkod29y
a2luZyBjb3B5KQpAQCAtNDgsMjggKzQ4LDMwIEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2Ug
REZHIHsKICNkZWZpbmUgTm9kZUhhc1ZhckFyZ3MgICAgICAgICAgICAgICAgICAgMHgwMDEwCiAg
ICAgCiAjZGVmaW5lIE5vZGVCZWhhdmlvck1hc2sgICAgICAgICAgICAgICAgIDB4MDdlMAorI2Rl
ZmluZSBOb2RlTWF5SGF2ZURvdWJsZVJlc3VsdCAgICAgICAgICAweDAwMjAKICNkZWZpbmUgTm9k
ZU1heU92ZXJmbG93SW50NTIgICAgICAgICAgICAgMHgwMDQwCiAjZGVmaW5lIE5vZGVNYXlPdmVy
Zmxvd0ludDMySW5CYXNlbGluZSAgIDB4MDA4MAogI2RlZmluZSBOb2RlTWF5T3ZlcmZsb3dJbnQz
MkluREZHICAgICAgICAweDAxMDAKICNkZWZpbmUgTm9kZU1heU5lZ1plcm9JbkJhc2VsaW5lICAg
ICAgICAgMHgwMjAwCiAjZGVmaW5lIE5vZGVNYXlOZWdaZXJvSW5ERkcgICAgICAgICAgICAgIDB4
MDQwMAorI2RlZmluZSBOb2RlTWF5SGF2ZU5vbk51bWJlclJlc3VsdCAgICAgICAweDA4MDAKKyNk
ZWZpbmUgTm9kZU1heUhhdmVOb25JbnRSZXN1bHQgICAgICAgICAgKE5vZGVNYXlIYXZlRG91Ymxl
UmVzdWx0IHwgTm9kZU1heUhhdmVOb25OdW1iZXJSZXN1bHQpCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIAotI2RlZmluZSBOb2RlQnl0ZWNvZGVCYWNrUHJvcE1hc2sgICAgICAgICAw
eGY4MDAKLSNkZWZpbmUgTm9kZUJ5dGVjb2RlVXNlQm90dG9tICAgICAgICAgICAgMHgwMDAwCi0j
ZGVmaW5lIE5vZGVCeXRlY29kZVVzZXNBc051bWJlciAgICAgICAgIDB4MDgwMCAvLyBUaGUgcmVz
dWx0IG9mIHRoaXMgY29tcHV0YXRpb24gbWF5IGJlIHVzZWQgaW4gYSBjb250ZXh0IHRoYXQgb2Jz
ZXJ2ZXMgZnJhY3Rpb25hbCwgb3IgYmlnZ2VyLXRoYW4taW50MzIsIHJlc3VsdHMuCi0jZGVmaW5l
IE5vZGVCeXRlY29kZU5lZWRzTmVnWmVybyAgICAgICAgIDB4MTAwMCAvLyBUaGUgcmVzdWx0IG9m
IHRoaXMgY29tcHV0YXRpb24gbWF5IGJlIHVzZWQgaW4gYSBjb250ZXh0IHRoYXQgb2JzZXJ2ZXMg
LTAuCi0jZGVmaW5lIE5vZGVCeXRlY29kZVVzZXNBc090aGVyICAgICAgICAgIDB4MjAwMCAvLyBU
aGUgcmVzdWx0IG9mIHRoaXMgY29tcHV0YXRpb24gbWF5IGJlIHVzZWQgaW4gYSBjb250ZXh0IHRo
YXQgZGlzdGluZ3Vpc2hlcyBiZXR3ZWVuIE5hTiBhbmQgb3RoZXIgdGhpbmdzIChsaWtlIHVuZGVm
aW5lZCkuCi0jZGVmaW5lIE5vZGVCeXRlY29kZVVzZXNBc1ZhbHVlICAgICAgICAgIChOb2RlQnl0
ZWNvZGVVc2VzQXNOdW1iZXIgfCBOb2RlQnl0ZWNvZGVOZWVkc05lZ1plcm8gfCBOb2RlQnl0ZWNv
ZGVVc2VzQXNPdGhlcikKLSNkZWZpbmUgTm9kZUJ5dGVjb2RlVXNlc0FzSW50ICAgICAgICAgICAg
MHg0MDAwIC8vIFRoZSByZXN1bHQgb2YgdGhpcyBjb21wdXRhdGlvbiBpcyBrbm93biB0byBiZSB1
c2VkIGluIGEgY29udGV4dCB0aGF0IHByZWZlcnMsIGJ1dCBkb2VzIG5vdCByZXF1aXJlLCBpbnRl
Z2VyIHZhbHVlcy4KLSNkZWZpbmUgTm9kZUJ5dGVjb2RlVXNlc0FzQXJyYXlJbmRleCAgICAgMHg4
MDAwIC8vIFRoZSByZXN1bHQgb2YgdGhpcyBjb21wdXRhdGlvbiBpcyBrbm93biB0byBiZSB1c2Vk
IGluIGEgY29udGV4dCB0aGF0IHN0cm9uZ2x5IHByZWZlcnMgaW50ZWdlciB2YWx1ZXMsIHRvIHRo
ZSBwb2ludCB0aGF0IHdlIHNob3VsZCBhdm9pZCB1c2luZyBkb3VibGVzIGlmIGF0IGFsbCBwb3Nz
aWJsZS4KKyNkZWZpbmUgTm9kZUJ5dGVjb2RlQmFja1Byb3BNYXNrICAgICAgICAweDFmMDAwCisj
ZGVmaW5lIE5vZGVCeXRlY29kZVVzZUJvdHRvbSAgICAgICAgICAgMHgwMDAwMAorI2RlZmluZSBO
b2RlQnl0ZWNvZGVVc2VzQXNOdW1iZXIgICAgICAgIDB4MDEwMDAgLy8gVGhlIHJlc3VsdCBvZiB0
aGlzIGNvbXB1dGF0aW9uIG1heSBiZSB1c2VkIGluIGEgY29udGV4dCB0aGF0IG9ic2VydmVzIGZy
YWN0aW9uYWwsIG9yIGJpZ2dlci10aGFuLWludDMyLCByZXN1bHRzLgorI2RlZmluZSBOb2RlQnl0
ZWNvZGVOZWVkc05lZ1plcm8gICAgICAgIDB4MDIwMDAgLy8gVGhlIHJlc3VsdCBvZiB0aGlzIGNv
bXB1dGF0aW9uIG1heSBiZSB1c2VkIGluIGEgY29udGV4dCB0aGF0IG9ic2VydmVzIC0wLgorI2Rl
ZmluZSBOb2RlQnl0ZWNvZGVVc2VzQXNPdGhlciAgICAgICAgIDB4MDQwMDAgLy8gVGhlIHJlc3Vs
dCBvZiB0aGlzIGNvbXB1dGF0aW9uIG1heSBiZSB1c2VkIGluIGEgY29udGV4dCB0aGF0IGRpc3Rp
bmd1aXNoZXMgYmV0d2VlbiBOYU4gYW5kIG90aGVyIHRoaW5ncyAobGlrZSB1bmRlZmluZWQpLgor
I2RlZmluZSBOb2RlQnl0ZWNvZGVVc2VzQXNWYWx1ZSAgICAgICAgIChOb2RlQnl0ZWNvZGVVc2Vz
QXNOdW1iZXIgfCBOb2RlQnl0ZWNvZGVOZWVkc05lZ1plcm8gfCBOb2RlQnl0ZWNvZGVVc2VzQXNP
dGhlcikKKyNkZWZpbmUgTm9kZUJ5dGVjb2RlVXNlc0FzSW50ICAgICAgICAgICAweDA4MDAwIC8v
IFRoZSByZXN1bHQgb2YgdGhpcyBjb21wdXRhdGlvbiBpcyBrbm93biB0byBiZSB1c2VkIGluIGEg
Y29udGV4dCB0aGF0IHByZWZlcnMsIGJ1dCBkb2VzIG5vdCByZXF1aXJlLCBpbnRlZ2VyIHZhbHVl
cy4KKyNkZWZpbmUgTm9kZUJ5dGVjb2RlVXNlc0FzQXJyYXlJbmRleCAgICAweDEwMDAwIC8vIFRo
ZSByZXN1bHQgb2YgdGhpcyBjb21wdXRhdGlvbiBpcyBrbm93biB0byBiZSB1c2VkIGluIGEgY29u
dGV4dCB0aGF0IHN0cm9uZ2x5IHByZWZlcnMgaW50ZWdlciB2YWx1ZXMsIHRvIHRoZSBwb2ludCB0
aGF0IHdlIHNob3VsZCBhdm9pZCB1c2luZyBkb3VibGVzIGlmIGF0IGFsbCBwb3NzaWJsZS4KIAog
I2RlZmluZSBOb2RlQXJpdGhGbGFnc01hc2sgICAgICAgICAgICAgICAoTm9kZUJlaGF2aW9yTWFz
ayB8IE5vZGVCeXRlY29kZUJhY2tQcm9wTWFzaykKIAotI2RlZmluZSBOb2RlSXNGbHVzaGVkICAg
ICAgICAgICAgICAgICAgIDB4MTAwMDAgLy8gQ29tcHV0ZWQgYnkgQ1BTUmV0aHJlYWRpbmdQaGFz
ZSwgd2lsbCB0ZWxsIHlvdSB3aGljaCBsb2NhbCBub2RlcyBhcmUgYmFja3dhcmRzLXJlYWNoYWJs
ZSBmcm9tIGEgRmx1c2guCisjZGVmaW5lIE5vZGVJc0ZsdXNoZWQgICAgICAgICAgICAgICAgICAg
MHgyMDAwMCAvLyBDb21wdXRlZCBieSBDUFNSZXRocmVhZGluZ1BoYXNlLCB3aWxsIHRlbGwgeW91
IHdoaWNoIGxvY2FsIG5vZGVzIGFyZSBiYWNrd2FyZHMtcmVhY2hhYmxlIGZyb20gYSBGbHVzaC4K
IAotI2RlZmluZSBOb2RlTWlzY0ZsYWcxICAgICAgICAgICAgICAgICAgIDB4MjAwMDAKLSNkZWZp
bmUgTm9kZU1pc2NGbGFnMiAgICAgICAgICAgICAgICAgICAweDQwMDAwCi0jZGVmaW5lIE5vZGVN
aXNjRmxhZzMgICAgICAgICAgICAgICAgICAgMHg4MDAwMAorI2RlZmluZSBOb2RlTWlzY0ZsYWcx
ICAgICAgICAgICAgICAgICAgIDB4NDAwMDAKKyNkZWZpbmUgTm9kZU1pc2NGbGFnMiAgICAgICAg
ICAgICAgICAgICAweDgwMDAwCiAKIHR5cGVkZWYgdWludDMyX3QgTm9kZUZsYWdzOwogCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlcjY0LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlcjY0
LmNwcAkocmV2aXNpb24gMjAwNTE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdP
U1JFeGl0Q29tcGlsZXI2NC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEzLTIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEzLTIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMzUs
MTYgKzEzNSwxNiBAQCB2b2lkIE9TUkV4aXRDb21waWxlcjo6Y29tcGlsZUV4aXQoY29uc3QgCiAg
ICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIGlmICghIWV4aXQubV92YWx1ZVByb2ZpbGUpIHsK
LSAgICAgICAgICAgIEVuY29kZWRKU1ZhbHVlKiBidWNrZXQgPSBleGl0Lm1fdmFsdWVQcm9maWxl
LmdldFNwZWNGYWlsQnVja2V0KDApOworICAgICAgICAgICAgTWV0aG9kT2ZHZXR0aW5nQVZhbHVl
UHJvZmlsZSBwcm9maWxlID0gZXhpdC5tX3ZhbHVlUHJvZmlsZTsKICAgICAgICAgICAgIAogICAg
ICAgICAgICAgaWYgKGV4aXQubV9qc1ZhbHVlU291cmNlLmlzQWRkcmVzcygpKSB7CiAgICAgICAg
ICAgICAgICAgLy8gV2UgY2FuJ3QgYmUgc3VyZSB0aGF0IHdlIGhhdmUgYSBzcGFyZSByZWdpc3Rl
ci4gU28gdXNlIHRoZSB0YWdUeXBlTnVtYmVyUmVnaXN0ZXIsCiAgICAgICAgICAgICAgICAgLy8g
c2luY2Ugd2Uga25vdyBob3cgdG8gcmVzdG9yZSBpdC4KICAgICAgICAgICAgICAgICBtX2ppdC5s
b2FkNjQoQXNzZW1ibHlIZWxwZXJzOjpBZGRyZXNzKGV4aXQubV9qc1ZhbHVlU291cmNlLmFzQWRk
cmVzcygpKSwgR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKTsKLSAgICAgICAgICAgICAg
ICBtX2ppdC5zdG9yZTY0KEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3RlciwgYnVja2V0KTsK
KyAgICAgICAgICAgICAgICBwcm9maWxlLmVtaXRSZXBvcnRWYWx1ZShtX2ppdCwgSlNWYWx1ZVJl
Z3MoR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKSk7CiAgICAgICAgICAgICAgICAgbV9q
aXQubW92ZShBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW02NChUYWdUeXBlTnVtYmVyKSwgR1BS
SW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKTsKICAgICAgICAgICAgIH0gZWxzZQotICAgICAg
ICAgICAgICAgIG1faml0LnN0b3JlNjQoZXhpdC5tX2pzVmFsdWVTb3VyY2UuZ3ByKCksIGJ1Y2tl
dCk7CisgICAgICAgICAgICAgICAgcHJvZmlsZS5lbWl0UmVwb3J0VmFsdWUobV9qaXQsIEpTVmFs
dWVSZWdzKGV4aXQubV9qc1ZhbHVlU291cmNlLmdwcigpKSk7CiAgICAgICAgIH0KICAgICB9CiAg
ICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAJ
KHJldmlzaW9uIDIwMDUxNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0
aW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2OCwxNyArMjY4LDYgQEAgRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNOdW1iZXIoc3RhdGljX2Nhc3Q8aW50MzJfdD4oYSA+PiAoYiAmIDB4MWYpKSkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQWRkKEV4ZWNTdGF0ZSog
ZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9w
MikKLXsKLSAgICBWTSogdm0gPSAmZXhlYy0+dm0oKTsKLSAgICBOYXRpdmVDYWxsRnJhbWVUcmFj
ZXIgdHJhY2VyKHZtLCBleGVjKTsKLSAgICAKLSAgICBKU1ZhbHVlIG9wMSA9IEpTVmFsdWU6OmRl
Y29kZShlbmNvZGVkT3AxKTsKLSAgICBKU1ZhbHVlIG9wMiA9IEpTVmFsdWU6OmRlY29kZShlbmNv
ZGVkT3AyKTsKLSAgICAKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQWRkKGV4ZWMsIG9w
MSwgb3AyKSk7Ci19Ci0KIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFs
dWVBZGROb3ROdW1iZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3Ax
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKQogewogICAgIFZNKiB2bSA9ICZleGVjLT52bSgp
OwpAQCAtMzA4LDMyICsyOTcsNiBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblZhCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihhIC8gYikpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsKEV4ZWNTdGF0
ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZE9wMikKLXsKLSAgICBWTSogdm0gPSAmZXhlYy0+dm0oKTsKLSAgICBOYXRpdmVDYWxsRnJhbWVU
cmFjZXIgdHJhY2VyKHZtLCBleGVjKTsKLQotICAgIEpTVmFsdWUgb3AxID0gSlNWYWx1ZTo6ZGVj
b2RlKGVuY29kZWRPcDEpOwotICAgIEpTVmFsdWUgb3AyID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29k
ZWRPcDIpOwotCi0gICAgZG91YmxlIGEgPSBvcDEudG9OdW1iZXIoZXhlYyk7Ci0gICAgZG91Ymxl
IGIgPSBvcDIudG9OdW1iZXIoZXhlYyk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051
bWJlcihhICogYikpOwotfQotCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
blZhbHVlU3ViKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZE9wMikKLXsKLSAgICBWTSogdm0gPSAmZXhlYy0+dm0oKTsKLSAg
ICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBleGVjKTsKLSAgICAKLSAgICBKU1Zh
bHVlIG9wMSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AxKTsKLSAgICBKU1ZhbHVlIG9wMiA9
IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AyKTsKLQotICAgIGRvdWJsZSBhID0gb3AxLnRvTnVt
YmVyKGV4ZWMpOwotICAgIGRvdWJsZSBiID0gb3AyLnRvTnVtYmVyKGV4ZWMpOwotICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoYSAtIGIpKTsKLX0KLQogc3RhdGljIEFMV0FZU19J
TkxJTkUgRW5jb2RlZEpTVmFsdWUgZ2V0QnlWYWwoRXhlY1N0YXRlKiBleGVjLCBKU0NlbGwqIGJh
c2UsIHVpbnQzMl90IGluZGV4KQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaAkocmV2aXNpb24gMjAwNTE3
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTUxLDExICs1MSw4IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uVmEKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVCaXRM
U2hpZnQoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZE9wMikgV1RGX0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBvcGVyYXRpb25WYWx1ZUJpdFJTaGlmdChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSBXVEZfSU5URVJOQUw7CiBFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQml0VVJTaGlmdChFeGVjU3RhdGUq
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSBX
VEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVl
QWRkKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRPcDIpIFdURl9JTlRFUk5BTDsKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uVmFsdWVBZGROb3ROdW1iZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikgV1RGX0lOVEVSTkFMOwogRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZURpdihFeGVjU3RhdGUqLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSBXVEZfSU5U
RVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsKEV4
ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRPcDIpIFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uVmFsdWVTdWIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZE9wMikgV1RGX0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25HZXRCeVZhbChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFByb3BlcnR5KSBXVEZfSU5URVJOQUw7CiBF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5VmFsQ2VsbChFeGVjU3Rh
dGUqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkUHJvcGVydHkpIFdURl9JTlRFUk5B
TDsKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlWYWxBcnJheUlu
dChFeGVjU3RhdGUqLCBKU0FycmF5KiwgaW50MzJfdCkgV1RGX0lOVEVSTkFMOwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJv
cGFnYXRpb25QaGFzZS5jcHAJKHJldmlzaW9uIDIwMDUxNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xOTEsMTMgKzE5MSwxNiBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICAgICAg
Y2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY0ludDUyT25seSk7CiAgICAgICAgICAgICAg
ICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVk
aWN0aW9uKHNwZWN1bGF0ZWREb3VibGVUeXBlRm9yUHJlZGljdGlvbnMobGVmdCwgcmlnaHQpKTsK
LSAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKAotICAgICAgICAgICAgICAgICAgICAhKGxlZnQg
JiAoU3BlY0Z1bGxOdW1iZXIgfCBTcGVjQm9vbGVhbikpCi0gICAgICAgICAgICAgICAgICAgIHx8
ICEocmlnaHQgJiAoU3BlY0Z1bGxOdW1iZXIgfCBTcGVjQm9vbGVhbikpKSB7CisgICAgICAgICAg
ICAgICAgfSBlbHNlIGlmIChpc1N0cmluZ09yU3RyaW5nT2JqZWN0U3BlY3VsYXRpb24obGVmdCkg
JiYgaXNTdHJpbmdPclN0cmluZ09iamVjdFNwZWN1bGF0aW9uKHJpZ2h0KSkgewogICAgICAgICAg
ICAgICAgICAgICAvLyBsZWZ0IG9yIHJpZ2h0IGlzIGRlZmluaXRlbHkgc29tZXRoaW5nIG90aGVy
IHRoYW4gYSBudW1iZXIuCiAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVk
aWN0aW9uKFNwZWNTdHJpbmcpOwotICAgICAgICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAg
ICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjU3RyaW5nIHwgU3BlY0ludDMy
T25seSB8IFNwZWNCeXRlY29kZURvdWJsZSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY0ludDMyT25s
eSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChub2RlLT5tYXlIYXZlRG91YmxlUmVzdWx0KCkp
CisgICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVj
Qnl0ZWNvZGVEb3VibGUpOworICAgICAgICAgICAgICAgICAgICBpZiAobm9kZS0+bWF5SGF2ZU5v
bk51bWJlclJlc3VsdCgpKQorICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJn
ZVByZWRpY3Rpb24oU3BlY1N0cmluZyk7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
fQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTIxMSw4ICsyMTQsMTIgQEAgcHJp
dmF0ZToKICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3Bl
Y0ludDMyT25seSk7CiAgICAgICAgICAgICAgICAgZWxzZSBpZiAobV9ncmFwaC5hZGRTaG91bGRT
cGVjdWxhdGVBbnlJbnQobm9kZSkpCiAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVy
Z2VQcmVkaWN0aW9uKFNwZWNJbnQ1Mk9ubHkpOwotICAgICAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICBlbHNlIGlmIChpc0Z1bGxOdW1iZXJPckJvb2xlYW5TcGVjdWxhdGlvbihsZWZ0
KSAmJiBpc0Z1bGxOdW1iZXJPckJvb2xlYW5TcGVjdWxhdGlvbihyaWdodCkpCiAgICAgICAgICAg
ICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKHNwZWN1bGF0ZWREb3VibGVUeXBl
Rm9yUHJlZGljdGlvbnMobGVmdCwgcmlnaHQpKTsKKyAgICAgICAgICAgICAgICBlbHNlIGlmIChu
b2RlLT5tYXlIYXZlTm9uSW50UmVzdWx0KCkgfHwgKGxlZnQgJiBTcGVjQnl0ZWNvZGVEb3VibGUp
IHx8IChyaWdodCAmIFNwZWNCeXRlY29kZURvdWJsZSkpCisgICAgICAgICAgICAgICAgICAgIGNo
YW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKFNwZWNJbnQzMk9ubHkgfCBTcGVjQnl0ZWNvZGVEb3Vi
bGUpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8
PSBtZXJnZVByZWRpY3Rpb24oU3BlY0ludDMyT25seSk7CiAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgfQpAQCAtMjMwLDggKzIzNywxMCBAQCBwcml2YXRlOgogICAg
ICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY0ludDUy
T25seSk7CiAgICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAg
IGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKHNwZWN1bGF0ZWREb3VibGVUeXBlRm9yUHJlZGlj
dGlvbnMobGVmdCwgcmlnaHQpKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAg
ICAgICB9IGVsc2UgaWYgKG5vZGUtPm1heUhhdmVOb25JbnRSZXN1bHQoKSB8fCAobGVmdCAmIFNw
ZWNCeXRlY29kZURvdWJsZSkgfHwgKHJpZ2h0ICYgU3BlY0J5dGVjb2RlRG91YmxlKSkKICAgICAg
ICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY0ludDMyT25seSB8
IFNwZWNCeXRlY29kZURvdWJsZSk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
ICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjSW50MzJPbmx5KTsKICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC0yNjcsNiArMjc2LDEw
IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBTcGVjdWxhdGVkVHlwZSByaWdodCA9IG5vZGUtPmNo
aWxkMigpLT5wcmVkaWN0aW9uKCk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGlmIChsZWZ0
ICYmIHJpZ2h0KSB7CisgICAgICAgICAgICAgICAgLy8gRklYTUU6IFdlJ3JlIGN1cnJlbnRseSBy
ZWx5aW5nIG9uIHByZWRpY3Rpb24gcHJvcGFnYXRpb24gYW5kIGJhY2t3YXJkcyBwcm9wYWdhdGlv
bgorICAgICAgICAgICAgICAgIC8vIHdoZW5ldmVyIHdlIGNhbiwgYW5kIG9ubHkgZmFsbGluZyBi
YWNrIG9uIHJlc3VsdCBmbGFncyBpZiB0aGF0IGZhaWxzLiBBbmQgdGhlIHJlc3VsdAorICAgICAg
ICAgICAgICAgIC8vIGZsYWdzIGxvZ2ljIGRvZXNuJ3Qga25vdyBob3cgdG8gdXNlIGJhY2t3YXJk
cyBwcm9wYWdhdGlvbi4gV2Ugc2hvdWxkIGdldCByaWQgb2YgdGhlCisgICAgICAgICAgICAgICAg
Ly8gcHJlZGljdGlvbiBwcm9wYWdhdGlvbiBsb2dpYyBhbmQgcmVseSBzb2xlbHkgb24gdGhlIHJl
c3VsdCB0eXBlLgogICAgICAgICAgICAgICAgIGlmIChpc0Z1bGxOdW1iZXJPckJvb2xlYW5TcGVj
dWxhdGlvbkV4cGVjdGluZ0RlZmluZWQobGVmdCkKICAgICAgICAgICAgICAgICAgICAgJiYgaXNG
dWxsTnVtYmVyT3JCb29sZWFuU3BlY3VsYXRpb25FeHBlY3RpbmdEZWZpbmVkKHJpZ2h0KSkgewog
ICAgICAgICAgICAgICAgICAgICBpZiAobV9ncmFwaC5iaW5hcnlBcml0aFNob3VsZFNwZWN1bGF0
ZUludDMyKG5vZGUsIG1fcGFzcykpCkBAIC0yNzUsOCArMjg4LDE0IEBAIHByaXZhdGU6CiAgICAg
ICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjSW50NTJP
bmx5KTsKICAgICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICAgICAg
Y2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oc3BlY3VsYXRlZERvdWJsZVR5cGVGb3JQcmVkaWN0
aW9ucyhsZWZ0LCByaWdodCkpOwotICAgICAgICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAg
ICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjSW50MzJPbmx5IHwgU3BlY0J5
dGVjb2RlRG91YmxlKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAg
ICAgICBpZiAobm9kZS0+bWF5SGF2ZU5vbkludFJlc3VsdCgpCisgICAgICAgICAgICAgICAgICAg
ICAgICB8fCAobGVmdCAmIFNwZWNCeXRlY29kZURvdWJsZSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHx8IChyaWdodCAmIFNwZWNCeXRlY29kZURvdWJsZSkpCisgICAgICAgICAgICAgICAgICAg
ICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjSW50MzJPbmx5IHwgU3BlY0J5dGVj
b2RlRG91YmxlKTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAg
ICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY0ludDMyT25seSk7CisgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VDY0LmNwcAkocmV2aXNpb24gMjAwNTE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTA1LDcgKzkwNSw3IEBA
IEdQUlJlZyBTcGVjdWxhdGl2ZUpJVDo6ZmlsbFNwZWN1bGF0ZUludDMKIAogICAgIG1faW50ZXJw
cmV0ZXIuZmlsdGVyKHZhbHVlLCBTcGVjSW50MzJPbmx5KTsKICAgICBpZiAodmFsdWUuaXNDbGVh
cigpKSB7Ci0gICAgICAgIHRlcm1pbmF0ZVNwZWN1bGF0aXZlRXhlY3V0aW9uKFVuY291bnRhYmxl
LCBKU1ZhbHVlUmVncygpLCAwKTsKKyAgICAgICAgdGVybWluYXRlU3BlY3VsYXRpdmVFeGVjdXRp
b24oQmFkVHlwZSwgSlNWYWx1ZVJlZ3MoKSwgMCk7CiAgICAgICAgIHJldHVybkZvcm1hdCA9IERh
dGFGb3JtYXRJbnQzMjsKICAgICAgICAgcmV0dXJuIGFsbG9jYXRlKCk7CiAgICAgfQpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAkocmV2aXNp
b24gMjAwNTE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNjcyLDIzICsxNjcyLDYgQEAgcHVibGljOgogICAgIH0K
ICNlbHNlIC8vIFVTRShKU1ZBTFVFMzJfNjQpCiAKLS8vIEVuY29kZWRKU1ZhbHVlIGluIEpTVkFM
VUUzMl82NCBpcyBhIDY0LWJpdCBpbnRlZ2VyLiBXaGVuIGJlaW5nIGNvbXBpbGVkIGluIEFSTSBF
QUJJLCBpdCBtdXN0IGJlIGFsaWduZWQgb24gYW4gZXZlbi1udW1iZXJlZCByZWdpc3RlciAocjAs
IHIyIG9yIFtzcF0pLgotLy8gVG8gcHJldmVudCB0aGUgYXNzZW1ibGVyIGZyb20gdXNpbmcgd3Jv
bmcgcmVnaXN0ZXJzLCBsZXQncyBvY2N1cHkgcjEgb3IgcjMgd2l0aCBhIGR1bW15IGFyZ3VtZW50
IHdoZW4gbmVjZXNzYXJ5LgotI2lmIChDT01QSUxFUl9TVVBQT1JUUyhFQUJJKSAmJiBDUFUoQVJN
KSkgfHwgQ1BVKE1JUFMpCi0jZGVmaW5lIEVBQklfMzJCSVRfRFVNTVlfQVJHICAgICAgVHJ1c3Rl
ZEltbTMyKDApLAotI2Vsc2UKLSNkZWZpbmUgRUFCSV8zMkJJVF9EVU1NWV9BUkcKLSNlbmRpZgot
Ci0vLyBKU1ZBTFVFMzJfNjQgaXMgYSA2NC1iaXQgaW50ZWdlciB0aGF0IGNhbm5vdCBiZSBwdXQg
aGFsZiBpbiBhbiBhcmd1bWVudCByZWdpc3RlciBhbmQgaGFsZiBvbiBzdGFjayB3aGVuIHVzaW5n
IFNINCBhcmNoaXRlY3R1cmUuCi0vLyBUbyBhdm9pZCB0aGlzLCBsZXQncyBvY2N1cHkgdGhlIDR0
aCBhcmd1bWVudCByZWdpc3RlciAocjcpIHdpdGggYSBkdW1teSBhcmd1bWVudCB3aGVuIG5lY2Vz
c2FyeS4gVGhpcyBtdXN0IG9ubHkgYmUgZG9uZSB3aGVuIHRoZXJlCi0vLyBpcyBubyBvdGhlciAz
Mi1iaXQgdmFsdWUgYXJndW1lbnQgYmVoaW5kIHRoaXMgNjQtYml0IEpTVmFsdWUuCi0jaWYgQ1BV
KFNINCkKLSNkZWZpbmUgU0g0XzMyQklUX0RVTU1ZX0FSRyAgICAgIFRydXN0ZWRJbW0zMigwKSwK
LSNlbHNlCi0jZGVmaW5lIFNINF8zMkJJVF9EVU1NWV9BUkcKLSNlbmRpZgotCiAgICAgSklUQ29t
cGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FT0pJVWkgb3BlcmF0aW9u
LCBHUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzJUYWcsIEdQUlJlZyBhcmcyUGF5bG9hZCwgVW5pcXVl
ZFN0cmluZ0ltcGwqIGltcGwsIHVuc2lnbmVkIHZhbHVlKQogICAgIHsKICAgICAgICAgbV9qaXQu
c2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFyZzJQYXlsb2FkLCBhcmcyVGFnLCBU
cnVzdGVkSW1tUHRyKGltcGwpLCBUcnVzdGVkSW1tMzIodmFsdWUpKTsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhpdENvbXBpbGVyLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4aXRDb21waWxlci5jcHAJKHJldmlzaW9u
IDIwMDUxNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhpdENvbXBpbGVy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTMtMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTMtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4NCw4ICsyODQsOCBAQCBzdGF0aWMgdm9pZCBjb21w
aWxlU3R1YigKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCi0gICAgICAgIGlmICghIWV4aXQu
bV9kZXNjcmlwdG9yLT5tX3ZhbHVlUHJvZmlsZSkKLSAgICAgICAgICAgIGppdC5zdG9yZTY0KEdQ
UkluZm86OnJlZ1QwLCBleGl0Lm1fZGVzY3JpcHRvci0+bV92YWx1ZVByb2ZpbGUuZ2V0U3BlY0Zh
aWxCdWNrZXQoMCkpOworICAgICAgICBpZiAoZXhpdC5tX2Rlc2NyaXB0b3ItPm1fdmFsdWVQcm9m
aWxlKQorICAgICAgICAgICAgZXhpdC5tX2Rlc2NyaXB0b3ItPm1fdmFsdWVQcm9maWxlLmVtaXRS
ZXBvcnRWYWx1ZShqaXQsIEpTVmFsdWVSZWdzKEdQUkluZm86OnJlZ1QwKSk7CiAgICAgfQogCiAg
ICAgLy8gTWF0ZXJpYWxpemUgYWxsIG9iamVjdHMuIERvbid0IG1hdGVyaWFsaXplIGFuIG9iamVj
dCB1bnRpbCBhbGwKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxw
ZXJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhl
bHBlcnMuaAkocmV2aXNpb24gMjAwNTE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9B
c3NlbWJseUhlbHBlcnMuaAkod29ya2luZyBjb3B5KQpAQCAtNjUzLDExICs2NTMsNiBAQCBwdWJs
aWM6CiAjZW5kaWYKICAgICB9CiAKLSAgICBlbnVtIFRhZ1JlZ2lzdGVyc01vZGUgewotICAgICAg
ICBEb05vdEhhdmVUYWdSZWdpc3RlcnMsCi0gICAgICAgIEhhdmVUYWdSZWdpc3RlcnMKLSAgICB9
OwotCiAgICAgSnVtcCBicmFuY2hJZk5vdENlbGwoR1BSUmVnIHJlZywgVGFnUmVnaXN0ZXJzTW9k
ZSBtb2RlID0gSGF2ZVRhZ1JlZ2lzdGVycykKICAgICB7CiAjaWYgVVNFKEpTVkFMVUU2NCkKQEAg
LTc4Myw2ICs3NzgsMTggQEAgcHVibGljOgogI2VuZGlmCiAgICAgfQogCisgICAgSnVtcCBicmFu
Y2hJZk5vdERvdWJsZUtub3duTm90SW50MzIoSlNWYWx1ZVJlZ3MgcmVncywgVGFnUmVnaXN0ZXJz
TW9kZSBtb2RlID0gSGF2ZVRhZ1JlZ2lzdGVycykKKyAgICB7CisjaWYgVVNFKEpTVkFMVUU2NCkK
KyAgICAgICAgaWYgKG1vZGUgPT0gSGF2ZVRhZ1JlZ2lzdGVycykKKyAgICAgICAgICAgIHJldHVy
biBicmFuY2hUZXN0NjQoWmVybywgcmVncy5ncHIoKSwgR1BSSW5mbzo6dGFnVHlwZU51bWJlclJl
Z2lzdGVyKTsKKyAgICAgICAgcmV0dXJuIGJyYW5jaFRlc3Q2NChaZXJvLCByZWdzLmdwcigpLCBU
cnVzdGVkSW1tNjQoVGFnVHlwZU51bWJlcikpOworI2Vsc2UKKyAgICAgICAgVU5VU0VEX1BBUkFN
KG1vZGUpOworICAgICAgICByZXR1cm4gYnJhbmNoMzIoQWJvdmVPckVxdWFsLCByZWdzLnRhZ0dQ
UigpLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6TG93ZXN0VGFnKSk7CisjZW5kaWYKKyAgICB9CisK
ICAgICAvLyBOb3RlIHRoYXQgdGhlIHRlbXBHUFIgaXMgbm90IHVzZWQgaW4gMzItYml0IG1vZGUu
CiAgICAgSnVtcCBicmFuY2hJZkJvb2xlYW4oSlNWYWx1ZVJlZ3MgcmVncywgR1BSUmVnIHRlbXBH
UFIpCiAgICAgewpAQCAtODQ4LDcgKzg1NSw4IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBKdW1w
TGlzdCBicmFuY2hJZk5vdFR5cGUoCi0gICAgICAgIEpTVmFsdWVSZWdzLCBHUFJSZWcgdGVtcEdQ
UiwgY29uc3QgSW5mZXJyZWRUeXBlOjpEZXNjcmlwdG9yJiwgVGFnUmVnaXN0ZXJzTW9kZSk7Cisg
ICAgICAgIEpTVmFsdWVSZWdzLCBHUFJSZWcgdGVtcEdQUiwgY29uc3QgSW5mZXJyZWRUeXBlOjpE
ZXNjcmlwdG9yJiwKKyAgICAgICAgVGFnUmVnaXN0ZXJzTW9kZSA9IEhhdmVUYWdSZWdpc3RlcnMp
OwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KICAgICBKdW1wIGJyYW5jaFN0cnVjdHVyZShS
ZWxhdGlvbmFsQ29uZGl0aW9uIGNvbmRpdGlvbiwgVCBsZWZ0SGFuZFNpZGUsIFN0cnVjdHVyZSog
c3RydWN0dXJlKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5o
CShyZXZpc2lvbiAyMDA1MTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVs
cGVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC00MCw2ICs0MCwyMyBAQCBuYW1lc3BhY2UgSlNDIHsK
ICNkZWZpbmUgUE9LRV9BUkdVTUVOVF9PRkZTRVQgMAogI2VuZGlmCiAKKy8vIEVuY29kZWRKU1Zh
bHVlIGluIEpTVkFMVUUzMl82NCBpcyBhIDY0LWJpdCBpbnRlZ2VyLiBXaGVuIGJlaW5nIGNvbXBp
bGVkIGluIEFSTSBFQUJJLCBpdCBtdXN0IGJlIGFsaWduZWQgZXZlbi1udW1iZXJlZCByZWdpc3Rl
ciAocjAsIHIyIG9yIFtzcF0pLgorLy8gVG8gYXZvaWQgYXNzZW1ibGllcyBmcm9tIHVzaW5nIHdy
b25nIHJlZ2lzdGVycywgbGV0J3Mgb2NjdXB5IHIxIG9yIHIzIHdpdGggYSBkdW1teSBhcmd1bWVu
dCB3aGVuIG5lY2Vzc2FyeS4KKyNpZiAoQ09NUElMRVJfU1VQUE9SVFMoRUFCSSkgJiYgQ1BVKEFS
TSkpIHx8IENQVShNSVBTKQorI2RlZmluZSBFQUJJXzMyQklUX0RVTU1ZX0FSRyAgICAgIFRydXN0
ZWRJbW0zMigwKSwKKyNlbHNlCisjZGVmaW5lIEVBQklfMzJCSVRfRFVNTVlfQVJHCisjZW5kaWYK
KworLy8gSlNWQUxVRTMyXzY0IGlzIGEgNjQtYml0IGludGVnZXIgdGhhdCBjYW5ub3QgYmUgcHV0
IGhhbGYgaW4gYW4gYXJndW1lbnQgcmVnaXN0ZXIgYW5kIGhhbGYgb24gc3RhY2sgd2hlbiB1c2lu
ZyBTSDQgYXJjaGl0ZWN0dXJlLgorLy8gVG8gYXZvaWQgdGhpcywgbGV0J3Mgb2NjdXB5IHRoZSA0
dGggYXJndW1lbnQgcmVnaXN0ZXIgKHI3KSB3aXRoIGEgZHVtbXkgYXJndW1lbnQgd2hlbiBuZWNl
c3NhcnkuIFRoaXMgbXVzdCBvbmx5IGJlIGRvbmUgd2hlbiB0aGVyZQorLy8gaXMgbm8gb3RoZXIg
MzItYml0IHZhbHVlIGFyZ3VtZW50IGJlaGluZCB0aGlzIDY0LWJpdCBKU1ZhbHVlLgorI2lmIENQ
VShTSDQpCisjZGVmaW5lIFNINF8zMkJJVF9EVU1NWV9BUkcgICAgICBUcnVzdGVkSW1tMzIoMCks
CisjZWxzZQorI2RlZmluZSBTSDRfMzJCSVRfRFVNTVlfQVJHCisjZW5kaWYKKwogY2xhc3MgQ0Nh
bGxIZWxwZXJzIDogcHVibGljIEFzc2VtYmx5SGVscGVycyB7CiBwdWJsaWM6CiAgICAgQ0NhbGxI
ZWxwZXJzKFZNKiB2bSwgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSAwKQpAQCAtMjEyMiw2ICsyMTM5
LDE1IEBAIHB1YmxpYzoKICAgICB9CiAjZW5kaWYKICAgICAKKyAgICB2b2lkIHNldHVwQXJndW1l
bnRzV2l0aEV4ZWNTdGF0ZShKU1ZhbHVlUmVncyBhcmcxLCBKU1ZhbHVlUmVncyBhcmcyLCBUcnVz
dGVkSW1tUHRyIGFyZzMpCisgICAgeworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgICAgIHNldHVw
QXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLmdwcigpLCBhcmcyLmdwcigpLCBhcmczKTsKKyNl
bHNlCisgICAgICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShFQUJJXzMyQklUX0RVTU1Z
X0FSRyBhcmcxLnBheWxvYWRHUFIoKSwgYXJnMS50YWdHUFIoKSwgYXJnMi5wYXlsb2FkR1BSKCks
IGFyZzMudGFnR1BSKCksIGFyZzMpOworI2VuZGlmCisgICAgfQorICAgIAogICAgIHZvaWQgc2V0
dXBBcmd1bWVudHMoSlNWYWx1ZVJlZ3MgYXJnMSkKICAgICB7CiAjaWYgVVNFKEpTVkFMVUU2NCkK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSW50cmluc2ljRW1pdHRlci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9JbnRyaW5zaWNFbWl0dGVyLmNw
cAkocmV2aXNpb24gMjAwNTE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9JbnRyaW5z
aWNFbWl0dGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzgsNyArNzgsNyBAQCB2b2lkIEFjY2Vz
c0Nhc2U6OmVtaXRJbnRyaW5zaWNHZXR0ZXIoQWNjCiAgICAgc3dpdGNoIChpbnRyaW5zaWMoKSkg
ewogICAgIGNhc2UgVHlwZWRBcnJheUxlbmd0aEludHJpbnNpYzogewogICAgICAgICBqaXQubG9h
ZDMyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0YXRlLmJhc2VHUFIsIEpTQXJyYXlCdWZmZXJW
aWV3OjpvZmZzZXRPZkxlbmd0aCgpKSwgdmFsdWVHUFIpOwotICAgICAgICBqaXQuYm94SW50MzIo
dmFsdWVHUFIsIHZhbHVlUmVncywgQ0NhbGxIZWxwZXJzOjpEb05vdEhhdmVUYWdSZWdpc3RlcnMp
OworICAgICAgICBqaXQuYm94SW50MzIodmFsdWVHUFIsIHZhbHVlUmVncyk7CiAgICAgICAgIHN0
YXRlLnN1Y2NlZWQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTkzLDcgKzkzLDcgQEAg
dm9pZCBBY2Nlc3NDYXNlOjplbWl0SW50cmluc2ljR2V0dGVyKEFjYwogICAgICAgICAgICAgaml0
LmxzaGlmdDMyKHZhbHVlR1BSLCBJbW0zMihsb2dFbGVtZW50U2l6ZSh0eXBlKSksIHZhbHVlR1BS
KTsKICAgICAgICAgfQogCi0gICAgICAgIGppdC5ib3hJbnQzMih2YWx1ZUdQUiwgdmFsdWVSZWdz
LCBDQ2FsbEhlbHBlcnM6OkRvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7CisgICAgICAgIGppdC5ib3hJ
bnQzMih2YWx1ZUdQUiwgdmFsdWVSZWdzKTsKICAgICAgICAgc3RhdGUuc3VjY2VlZCgpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQpAQCAtMTE5LDcgKzExOSw3IEBAIHZvaWQgQWNjZXNzQ2FzZTo6
ZW1pdEludHJpbnNpY0dldHRlcihBY2MKICAgICAgICAgCiAgICAgICAgIGRvbmUubGluaygmaml0
KTsKICAgICAgICAgCi0gICAgICAgIGppdC5ib3hJbnQzMih2YWx1ZUdQUiwgdmFsdWVSZWdzLCBD
Q2FsbEhlbHBlcnM6OkRvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7CisgICAgICAgIGppdC5ib3hJbnQz
Mih2YWx1ZUdQUiwgdmFsdWVSZWdzKTsKICAgICAgICAgc3RhdGUuc3VjY2VlZCgpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCShyZXZpc2lvbiAy
MDA1MTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCSh3b3JraW5nIGNvcHkp
CkBAIC03NTAsNiArNzUwLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAjZW5kaWYKICAgICAgICAgTWFj
cm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkksIGludCwg
R1BSUmVnLCBVbmlxdWVkU3RyaW5nSW1wbCopOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2Fs
bCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSiwgaW50LCBHUFJSZWcsIEdQUlJlZyk7
CisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRp
b25fRUpKUnAsIEpTVmFsdWVSZWdzLCBKU1ZhbHVlUmVncywgSlNWYWx1ZVJlZ3MsIFJlc3VsdFBy
b2ZpbGUqKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJ
VE9wZXJhdGlvbl9FSkpBcCwgaW50LCBHUFJSZWcsIEdQUlJlZywgQXJyYXlQcm9maWxlKik7CiAg
ICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25f
RUpKQnksIGludCwgR1BSUmVnLCBHUFJSZWcsIEJ5VmFsSW5mbyopOwogICAgICAgICBNYWNyb0Fz
c2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFpfSklUT3BlcmF0aW9uX0VKT0osIEdQUlJlZywg
R1BSUmVnLCBHUFJSZWcpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBZGRH
ZW5lcmF0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
QWRkR2VuZXJhdG9yLmNwcAkocmV2aXNpb24gMjAwNTE3KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRBZGRHZW5lcmF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjgsNiArMTI4
LDkgQEAgdm9pZCBKSVRBZGRHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoQwogCiAgICAgLy8g
RG8gZG91YmxlVmFyICsgZG91YmxlVmFyLgogICAgIGppdC5hZGREb3VibGUobV9yaWdodEZQUiwg
bV9sZWZ0RlBSKTsKKyAgICBpZiAobV9yZXN1bHRQcm9maWxlKQorICAgICAgICBtX3Jlc3VsdFBy
b2ZpbGUtPmVtaXRTZXREb3VibGUoaml0KTsKKyAgICAgICAgCiAgICAgaml0LmJveERvdWJsZSht
X2xlZnRGUFIsIG1fcmVzdWx0KTsKIH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRBZGRHZW5lcmF0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVEFkZEdlbmVyYXRvci5oCShyZXZpc2lvbiAyMDA1MTcpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVEFkZEdlbmVyYXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICsz
Nyw4IEBAIGNsYXNzIEpJVEFkZEdlbmVyYXRvciB7CiBwdWJsaWM6CiAgICAgSklUQWRkR2VuZXJh
dG9yKFNuaXBwZXRPcGVyYW5kIGxlZnRPcGVyYW5kLCBTbmlwcGV0T3BlcmFuZCByaWdodE9wZXJh
bmQsCiAgICAgICAgIEpTVmFsdWVSZWdzIHJlc3VsdCwgSlNWYWx1ZVJlZ3MgbGVmdCwgSlNWYWx1
ZVJlZ3MgcmlnaHQsCi0gICAgICAgIEZQUlJlZyBsZWZ0RlBSLCBGUFJSZWcgcmlnaHRGUFIsIEdQ
UlJlZyBzY3JhdGNoR1BSLCBGUFJSZWcgc2NyYXRjaEZQUikKKyAgICAgICAgRlBSUmVnIGxlZnRG
UFIsIEZQUlJlZyByaWdodEZQUiwgR1BSUmVnIHNjcmF0Y2hHUFIsIEZQUlJlZyBzY3JhdGNoRlBS
LAorICAgICAgICBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlID0gbnVsbHB0cikKICAgICAg
ICAgOiBtX2xlZnRPcGVyYW5kKGxlZnRPcGVyYW5kKQogICAgICAgICAsIG1fcmlnaHRPcGVyYW5k
KHJpZ2h0T3BlcmFuZCkKICAgICAgICAgLCBtX3Jlc3VsdChyZXN1bHQpCkBAIC00Nyw2ICs0OCw3
IEBAIHB1YmxpYzoKICAgICAgICAgLCBtX3JpZ2h0RlBSKHJpZ2h0RlBSKQogICAgICAgICAsIG1f
c2NyYXRjaEdQUihzY3JhdGNoR1BSKQogICAgICAgICAsIG1fc2NyYXRjaEZQUihzY3JhdGNoRlBS
KQorICAgICAgICAsIG1fcmVzdWx0UHJvZmlsZShyZXN1bHRQcm9maWxlKQogICAgIHsKICAgICAg
ICAgQVNTRVJUKCFtX2xlZnRPcGVyYW5kLmlzQ29uc3RJbnQzMigpIHx8ICFtX3JpZ2h0T3BlcmFu
ZC5pc0NvbnN0SW50MzIoKSk7CiAgICAgfQpAQCAtNjcsNiArNjksNyBAQCBwcml2YXRlOgogICAg
IEZQUlJlZyBtX3JpZ2h0RlBSOwogICAgIEdQUlJlZyBtX3NjcmF0Y2hHUFI7CiAgICAgRlBSUmVn
IG1fc2NyYXRjaEZQUjsKKyAgICBSZXN1bHRQcm9maWxlKiBtX3Jlc3VsdFByb2ZpbGU7CiAgICAg
Ym9vbCBtX2RpZEVtaXRGYXN0UGF0aCB7IGZhbHNlIH07CiAKICAgICBDQ2FsbEhlbHBlcnM6Okp1
bXBMaXN0IG1fZW5kSnVtcExpc3Q7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VEFyaXRobWV0aWMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUQXJpdGhtZXRpYy5jcHAJKHJldmlzaW9uIDIwMDUxNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUQXJpdGhtZXRpYy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY5Niw2ICs2OTYs
MTAgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfYWRkKEluc3RydWN0aW9uKiBjdXJyZQogICAgIEZQUlJl
ZyBzY3JhdGNoRlBSID0gZnBSZWdUMjsKICNlbmRpZgogCisgICAgUmVzdWx0UHJvZmlsZSogcmVz
dWx0UHJvZmlsZSA9IG51bGxwdHI7CisgICAgaWYgKHNob3VsZEVtaXRQcm9maWxpbmcoKSkKKyAg
ICAgICAgcmVzdWx0UHJvZmlsZSA9IG1fY29kZUJsb2NrLT5lbnN1cmVSZXN1bHRQcm9maWxlKG1f
Ynl0ZWNvZGVPZmZzZXQpOworCiAgICAgU25pcHBldE9wZXJhbmQgbGVmdE9wZXJhbmQodHlwZXMu
Zmlyc3QoKSk7CiAgICAgU25pcHBldE9wZXJhbmQgcmlnaHRPcGVyYW5kKHR5cGVzLnNlY29uZCgp
KTsKIApAQCAtNzEyLDcgKzcxNiw3IEBAIHZvaWQgSklUOjplbWl0X29wX2FkZChJbnN0cnVjdGlv
biogY3VycmUKICAgICAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihvcDIsIHJpZ2h0UmVncyk7
CiAKICAgICBKSVRBZGRHZW5lcmF0b3IgZ2VuKGxlZnRPcGVyYW5kLCByaWdodE9wZXJhbmQsIHJl
c3VsdFJlZ3MsIGxlZnRSZWdzLCByaWdodFJlZ3MsCi0gICAgICAgIGZwUmVnVDAsIGZwUmVnVDEs
IHNjcmF0Y2hHUFIsIHNjcmF0Y2hGUFIpOworICAgICAgICBmcFJlZ1QwLCBmcFJlZ1QxLCBzY3Jh
dGNoR1BSLCBzY3JhdGNoRlBSLCByZXN1bHRQcm9maWxlKTsKIAogICAgIGdlbi5nZW5lcmF0ZUZh
c3RQYXRoKCp0aGlzKTsKIApAQCAtNzI0LDggKzcyOCwxNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9h
ZGQoSW5zdHJ1Y3Rpb24qIGN1cnJlCiAgICAgfSBlbHNlIHsKICAgICAgICAgQVNTRVJUKGdlbi5l
bmRKdW1wTGlzdCgpLmVtcHR5KCkpOwogICAgICAgICBBU1NFUlQoZ2VuLnNsb3dQYXRoSnVtcExp
c3QoKS5lbXB0eSgpKTsKLSAgICAgICAgSklUU2xvd1BhdGhDYWxsIHNsb3dQYXRoQ2FsbCh0aGlz
LCBjdXJyZW50SW5zdHJ1Y3Rpb24sIHNsb3dfcGF0aF9hZGQpOwotICAgICAgICBzbG93UGF0aENh
bGwuY2FsbCgpOworICAgICAgICBpZiAocmVzdWx0UHJvZmlsZSkgeworICAgICAgICAgICAgaWYg
KGxlZnRPcGVyYW5kLmlzQ29uc3QoKSkKKyAgICAgICAgICAgICAgICBlbWl0R2V0VmlydHVhbFJl
Z2lzdGVyKG9wMSwgbGVmdFJlZ3MpOworICAgICAgICAgICAgaWYgKHJpZ2h0T3BlcmFuZC5pc0Nv
bnN0KCkpCisgICAgICAgICAgICAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihvcDIsIHJpZ2h0
UmVncyk7CisgICAgICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblZhbHVlQWRkUHJvZmls
ZWQsIHJlc3VsdFJlZ3MsIGxlZnRSZWdzLCByaWdodFJlZ3MsIHJlc3VsdFByb2ZpbGUpOworICAg
ICAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihyZXN1bHQsIHJlc3VsdFJlZ3MpOworICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgSklUU2xvd1BhdGhDYWxsIHNsb3dQYXRoQ2FsbCh0
aGlzLCBjdXJyZW50SW5zdHJ1Y3Rpb24sIHNsb3dfcGF0aF9hZGQpOworICAgICAgICAgICAgc2xv
d1BhdGhDYWxsLmNhbGwoKTsKKyAgICAgICAgfQogICAgIH0KIH0KIApAQCAtNzMzLDggKzc0Niw0
MSBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfYWRkKEluc3RydWN0aW9uKiBjCiB7CiAgICAgbGlu
a0FsbFNsb3dDYXNlc0ZvckJ5dGVjb2RlT2Zmc2V0KG1fc2xvd0Nhc2VzLCBpdGVyLCBtX2J5dGVj
b2RlT2Zmc2V0KTsKIAotICAgIEpJVFNsb3dQYXRoQ2FsbCBzbG93UGF0aENhbGwodGhpcywgY3Vy
cmVudEluc3RydWN0aW9uLCBzbG93X3BhdGhfYWRkKTsKLSAgICBzbG93UGF0aENhbGwuY2FsbCgp
OworICAgIGludCByZXN1bHQgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOworICAg
IGludCBvcDEgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOworICAgIGludCBvcDIg
PSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOworICAgIE9wZXJhbmRUeXBlcyB0eXBl
cyA9IE9wZXJhbmRUeXBlczo6ZnJvbUludChjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5k
KTsKKworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgSlNWYWx1ZVJlZ3MgbGVmdFJlZ3MgPSBKU1Zh
bHVlUmVncyhyZWdUMCk7CisgICAgSlNWYWx1ZVJlZ3MgcmlnaHRSZWdzID0gSlNWYWx1ZVJlZ3Mo
cmVnVDEpOworICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSBsZWZ0UmVnczsKKyNlbHNlCisg
ICAgSlNWYWx1ZVJlZ3MgbGVmdFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMSwgcmVnVDApOworICAg
IEpTVmFsdWVSZWdzIHJpZ2h0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QzLCByZWdUMik7CisgICAg
SlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IGxlZnRSZWdzOworI2VuZGlmCisgICAgCisgICAgU25p
cHBldE9wZXJhbmQgbGVmdE9wZXJhbmQodHlwZXMuZmlyc3QoKSk7CisgICAgU25pcHBldE9wZXJh
bmQgcmlnaHRPcGVyYW5kKHR5cGVzLnNlY29uZCgpKTsKKworICAgIGlmIChpc09wZXJhbmRDb25z
dGFudEludChvcDEpKQorICAgICAgICBsZWZ0T3BlcmFuZC5zZXRDb25zdEludDMyKGdldE9wZXJh
bmRDb25zdGFudEludChvcDEpKTsKKyAgICBlbHNlIGlmIChpc09wZXJhbmRDb25zdGFudEludChv
cDIpKQorICAgICAgICByaWdodE9wZXJhbmQuc2V0Q29uc3RJbnQzMihnZXRPcGVyYW5kQ29uc3Rh
bnRJbnQob3AyKSk7CisKKyAgICBpZiAoc2hvdWxkRW1pdFByb2ZpbGluZygpKSB7CisgICAgICAg
IGlmIChsZWZ0T3BlcmFuZC5pc0NvbnN0KCkpCisgICAgICAgICAgICBlbWl0R2V0VmlydHVhbFJl
Z2lzdGVyKG9wMSwgbGVmdFJlZ3MpOworICAgICAgICBpZiAocmlnaHRPcGVyYW5kLmlzQ29uc3Qo
KSkKKyAgICAgICAgICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIob3AyLCByaWdodFJlZ3MpOwor
ICAgICAgICBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlID0gbV9jb2RlQmxvY2stPmVuc3Vy
ZVJlc3VsdFByb2ZpbGUobV9ieXRlY29kZU9mZnNldCk7CisgICAgICAgIGNhbGxPcGVyYXRpb24o
b3BlcmF0aW9uVmFsdWVBZGRQcm9maWxlZCwgcmVzdWx0UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVn
cywgcmVzdWx0UHJvZmlsZSk7CisgICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIocmVzdWx0
LCByZXN1bHRSZWdzKTsKKyAgICB9IGVsc2UgeworICAgICAgICBKSVRTbG93UGF0aENhbGwgc2xv
d1BhdGhDYWxsKHRoaXMsIGN1cnJlbnRJbnN0cnVjdGlvbiwgc2xvd19wYXRoX2FkZCk7CisgICAg
ICAgIHNsb3dQYXRoQ2FsbC5jYWxsKCk7CisgICAgfQogfQogCiB2b2lkIEpJVDo6ZW1pdF9vcF9k
aXYoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKQEAgLTg2NCw4ICs5MTAsMTcgQEAg
dm9pZCBKSVQ6OmVtaXRfb3BfbXVsKEluc3RydWN0aW9uKiBjdXJyZQogICAgIH0gZWxzZSB7CiAg
ICAgICAgIEFTU0VSVChnZW4uZW5kSnVtcExpc3QoKS5lbXB0eSgpKTsKICAgICAgICAgQVNTRVJU
KGdlbi5zbG93UGF0aEp1bXBMaXN0KCkuZW1wdHkoKSk7Ci0gICAgICAgIEpJVFNsb3dQYXRoQ2Fs
bCBzbG93UGF0aENhbGwodGhpcywgY3VycmVudEluc3RydWN0aW9uLCBzbG93X3BhdGhfbXVsKTsK
LSAgICAgICAgc2xvd1BhdGhDYWxsLmNhbGwoKTsKKyAgICAgICAgaWYgKHJlc3VsdFByb2ZpbGUp
IHsKKyAgICAgICAgICAgIGlmIChsZWZ0T3BlcmFuZC5pc1Bvc2l0aXZlQ29uc3RJbnQzMigpKQor
ICAgICAgICAgICAgICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIob3AxLCBsZWZ0UmVncyk7Cisg
ICAgICAgICAgICBpZiAocmlnaHRPcGVyYW5kLmlzUG9zaXRpdmVDb25zdEludDMyKCkpCisgICAg
ICAgICAgICAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihvcDIsIHJpZ2h0UmVncyk7CisgICAg
ICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblZhbHVlTXVsUHJvZmlsZWQsIHJlc3VsdFJl
Z3MsIGxlZnRSZWdzLCByaWdodFJlZ3MsIHJlc3VsdFByb2ZpbGUpOworICAgICAgICAgICAgZW1p
dFB1dFZpcnR1YWxSZWdpc3RlcihyZXN1bHQsIHJlc3VsdFJlZ3MpOworICAgICAgICB9IGVsc2Ug
eworICAgICAgICAgICAgSklUU2xvd1BhdGhDYWxsIHNsb3dQYXRoQ2FsbCh0aGlzLCBjdXJyZW50
SW5zdHJ1Y3Rpb24sIHNsb3dfcGF0aF9tdWwpOworICAgICAgICAgICAgc2xvd1BhdGhDYWxsLmNh
bGwoKTsKKyAgICAgICAgfQogICAgIH0KIH0KIApAQCAtODczLDggKzkyOCw0MSBAQCB2b2lkIEpJ
VDo6ZW1pdFNsb3dfb3BfbXVsKEluc3RydWN0aW9uKiBjCiB7CiAgICAgbGlua0FsbFNsb3dDYXNl
c0ZvckJ5dGVjb2RlT2Zmc2V0KG1fc2xvd0Nhc2VzLCBpdGVyLCBtX2J5dGVjb2RlT2Zmc2V0KTsK
ICAgICAKLSAgICBKSVRTbG93UGF0aENhbGwgc2xvd1BhdGhDYWxsKHRoaXMsIGN1cnJlbnRJbnN0
cnVjdGlvbiwgc2xvd19wYXRoX211bCk7Ci0gICAgc2xvd1BhdGhDYWxsLmNhbGwoKTsKKyAgICBp
bnQgcmVzdWx0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKKyAgICBpbnQgb3Ax
ID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKKyAgICBpbnQgb3AyID0gY3VycmVu
dEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKKyAgICBPcGVyYW5kVHlwZXMgdHlwZXMgPSBPcGVy
YW5kVHlwZXM6OmZyb21JbnQoY3VycmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZCk7CisKKyNp
ZiBVU0UoSlNWQUxVRTY0KQorICAgIEpTVmFsdWVSZWdzIGxlZnRSZWdzID0gSlNWYWx1ZVJlZ3Mo
cmVnVDApOworICAgIEpTVmFsdWVSZWdzIHJpZ2h0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QxKTsK
KyAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0gbGVmdFJlZ3M7CisjZWxzZQorICAgIEpTVmFs
dWVSZWdzIGxlZnRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKTsKKyAgICBKU1ZhbHVl
UmVncyByaWdodFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMywgcmVnVDIpOworICAgIEpTVmFsdWVS
ZWdzIHJlc3VsdFJlZ3MgPSBsZWZ0UmVnczsKKyNlbmRpZgorCisgICAgU25pcHBldE9wZXJhbmQg
bGVmdE9wZXJhbmQodHlwZXMuZmlyc3QoKSk7CisgICAgU25pcHBldE9wZXJhbmQgcmlnaHRPcGVy
YW5kKHR5cGVzLnNlY29uZCgpKTsKKworICAgIGlmIChpc09wZXJhbmRDb25zdGFudEludChvcDEp
KQorICAgICAgICBsZWZ0T3BlcmFuZC5zZXRDb25zdEludDMyKGdldE9wZXJhbmRDb25zdGFudElu
dChvcDEpKTsKKyAgICBlbHNlIGlmIChpc09wZXJhbmRDb25zdGFudEludChvcDIpKQorICAgICAg
ICByaWdodE9wZXJhbmQuc2V0Q29uc3RJbnQzMihnZXRPcGVyYW5kQ29uc3RhbnRJbnQob3AyKSk7
CisKKyAgICBpZiAoc2hvdWxkRW1pdFByb2ZpbGluZygpKSB7CisgICAgICAgIGlmIChsZWZ0T3Bl
cmFuZC5pc1Bvc2l0aXZlQ29uc3RJbnQzMigpKQorICAgICAgICAgICAgZW1pdEdldFZpcnR1YWxS
ZWdpc3RlcihvcDEsIGxlZnRSZWdzKTsKKyAgICAgICAgaWYgKHJpZ2h0T3BlcmFuZC5pc1Bvc2l0
aXZlQ29uc3RJbnQzMigpKQorICAgICAgICAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihvcDIs
IHJpZ2h0UmVncyk7CisgICAgICAgIFJlc3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUgPSBtX2Nv
ZGVCbG9jay0+ZW5zdXJlUmVzdWx0UHJvZmlsZShtX2J5dGVjb2RlT2Zmc2V0KTsKKyAgICAgICAg
Y2FsbE9wZXJhdGlvbihvcGVyYXRpb25WYWx1ZU11bFByb2ZpbGVkLCByZXN1bHRSZWdzLCBsZWZ0
UmVncywgcmlnaHRSZWdzLCByZXN1bHRQcm9maWxlKTsKKyAgICAgICAgZW1pdFB1dFZpcnR1YWxS
ZWdpc3RlcihyZXN1bHQsIHJlc3VsdFJlZ3MpOworICAgIH0gZWxzZSB7CisgICAgICAgIEpJVFNs
b3dQYXRoQ2FsbCBzbG93UGF0aENhbGwodGhpcywgY3VycmVudEluc3RydWN0aW9uLCBzbG93X3Bh
dGhfbXVsKTsKKyAgICAgICAgc2xvd1BhdGhDYWxsLmNhbGwoKTsKKyAgICB9CiB9CiAKIHZvaWQg
SklUOjplbWl0X29wX3N1YihJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQpAQCAtODk4
LDYgKzk4NiwxMCBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9zdWIoSW5zdHJ1Y3Rpb24qIGN1cnJlCiAg
ICAgRlBSUmVnIHNjcmF0Y2hGUFIgPSBmcFJlZ1QyOwogI2VuZGlmCiAKKyAgICBSZXN1bHRQcm9m
aWxlKiByZXN1bHRQcm9maWxlID0gbnVsbHB0cjsKKyAgICBpZiAoc2hvdWxkRW1pdFByb2ZpbGlu
ZygpKQorICAgICAgICByZXN1bHRQcm9maWxlID0gbV9jb2RlQmxvY2stPmVuc3VyZVJlc3VsdFBy
b2ZpbGUobV9ieXRlY29kZU9mZnNldCk7CisKICAgICBTbmlwcGV0T3BlcmFuZCBsZWZ0T3BlcmFu
ZCh0eXBlcy5maXJzdCgpKTsKICAgICBTbmlwcGV0T3BlcmFuZCByaWdodE9wZXJhbmQodHlwZXMu
c2Vjb25kKCkpOwogICAgIApAQCAtOTIwLDggKzEwMTIsMjUgQEAgdm9pZCBKSVQ6OmVtaXRTbG93
X29wX3N1YihJbnN0cnVjdGlvbiogYwogewogICAgIGxpbmtBbGxTbG93Q2FzZXNGb3JCeXRlY29k
ZU9mZnNldChtX3Nsb3dDYXNlcywgaXRlciwgbV9ieXRlY29kZU9mZnNldCk7CiAKLSAgICBKSVRT
bG93UGF0aENhbGwgc2xvd1BhdGhDYWxsKHRoaXMsIGN1cnJlbnRJbnN0cnVjdGlvbiwgc2xvd19w
YXRoX3N1Yik7Ci0gICAgc2xvd1BhdGhDYWxsLmNhbGwoKTsKKyAgICBpbnQgcmVzdWx0ID0gY3Vy
cmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgIEpT
VmFsdWVSZWdzIGxlZnRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDApOworICAgIEpTVmFsdWVSZWdz
IHJpZ2h0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QxKTsKKyAgICBKU1ZhbHVlUmVncyByZXN1bHRS
ZWdzID0gbGVmdFJlZ3M7CisjZWxzZQorICAgIEpTVmFsdWVSZWdzIGxlZnRSZWdzID0gSlNWYWx1
ZVJlZ3MocmVnVDEsIHJlZ1QwKTsKKyAgICBKU1ZhbHVlUmVncyByaWdodFJlZ3MgPSBKU1ZhbHVl
UmVncyhyZWdUMywgcmVnVDIpOworICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSBsZWZ0UmVn
czsKKyNlbmRpZgorCisgICAgaWYgKHNob3VsZEVtaXRQcm9maWxpbmcoKSkgeworICAgICAgICBS
ZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlID0gbV9jb2RlQmxvY2stPmVuc3VyZVJlc3VsdFBy
b2ZpbGUobV9ieXRlY29kZU9mZnNldCk7CisgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9u
VmFsdWVTdWJQcm9maWxlZCwgcmVzdWx0UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVncywgcmVzdWx0
UHJvZmlsZSk7CisgICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIocmVzdWx0LCByZXN1bHRS
ZWdzKTsKKyAgICB9IGVsc2UgeworICAgICAgICBKSVRTbG93UGF0aENhbGwgc2xvd1BhdGhDYWxs
KHRoaXMsIGN1cnJlbnRJbnN0cnVjdGlvbiwgc2xvd19wYXRoX3N1Yik7CisgICAgICAgIHNsb3dQ
YXRoQ2FsbC5jYWxsKCk7CisgICAgfQogfQogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0gRU5EOiBPUF9BREQsIE9QX1NVQiwgT1BfTVVMIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSAqLwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgJKHJl
dmlzaW9uIDIwMDUxNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5o
CSh3b3JraW5nIGNvcHkpCkBAIC01MDEsNiArNTAxLDE0IEBAIEFMV0FZU19JTkxJTkUgTWFjcm9B
c3NlbWJsZXI6OkNhbGwgSklUOjoKICAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25D
aGVja1NldEpTVmFsdWVSZXN1bHQob3BlcmF0aW9uLCBkc3QpOwogfQogCitpbmxpbmUgTWFjcm9B
c3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSlJwIG9w
ZXJhdGlvbiwgSlNWYWx1ZVJlZ3MgcmVzdWx0LCBKU1ZhbHVlUmVncyBhcmcxLCBKU1ZhbHVlUmVn
cyBhcmcyLCBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlKQoreworICAgIHNldHVwQXJndW1l
bnRzV2l0aEV4ZWNTdGF0ZShhcmcxLCBhcmcyLCBUcnVzdGVkSW1tUHRyKHJlc3VsdFByb2ZpbGUp
KTsKKyAgICBDYWxsIGNhbGwgPSBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlv
bik7CisgICAgc2V0dXBSZXN1bHRzKHJlc3VsdCk7CisgICAgcmV0dXJuIGNhbGw7Cit9CisKIEFM
V0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKEpfSklU
T3BlcmF0aW9uX0VKSkFwIG9wZXJhdGlvbiwgaW50IGRzdCwgR1BSUmVnIGFyZzEsIEdQUlJlZyBh
cmcyLCBBcnJheVByb2ZpbGUqIGFycmF5UHJvZmlsZSkKIHsKICAgICBzZXR1cEFyZ3VtZW50c1dp
dGhFeGVjU3RhdGUoYXJnMSwgYXJnMiwgVHJ1c3RlZEltbVB0cihhcnJheVByb2ZpbGUpKTsKQEAg
LTYwMiwyMyArNjEwLDYgQEAgQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6
OgogCiAjZWxzZSAvLyBVU0UoSlNWQUxVRTMyXzY0KQogCi0vLyBFbmNvZGVkSlNWYWx1ZSBpbiBK
U1ZBTFVFMzJfNjQgaXMgYSA2NC1iaXQgaW50ZWdlci4gV2hlbiBiZWluZyBjb21waWxlZCBpbiBB
Uk0gRUFCSSwgaXQgbXVzdCBiZSBhbGlnbmVkIGV2ZW4tbnVtYmVyZWQgcmVnaXN0ZXIgKHIwLCBy
MiBvciBbc3BdKS4KLS8vIFRvIGF2b2lkIGFzc2VtYmxpZXMgZnJvbSB1c2luZyB3cm9uZyByZWdp
c3RlcnMsIGxldCdzIG9jY3VweSByMSBvciByMyB3aXRoIGEgZHVtbXkgYXJndW1lbnQgd2hlbiBu
ZWNlc3NhcnkuCi0jaWYgKENPTVBJTEVSX1NVUFBPUlRTKEVBQkkpICYmIENQVShBUk0pKSB8fCBD
UFUoTUlQUykKLSNkZWZpbmUgRUFCSV8zMkJJVF9EVU1NWV9BUkcgICAgICBUcnVzdGVkSW1tMzIo
MCksCi0jZWxzZQotI2RlZmluZSBFQUJJXzMyQklUX0RVTU1ZX0FSRwotI2VuZGlmCi0KLS8vIEpT
VkFMVUUzMl82NCBpcyBhIDY0LWJpdCBpbnRlZ2VyIHRoYXQgY2Fubm90IGJlIHB1dCBoYWxmIGlu
IGFuIGFyZ3VtZW50IHJlZ2lzdGVyIGFuZCBoYWxmIG9uIHN0YWNrIHdoZW4gdXNpbmcgU0g0IGFy
Y2hpdGVjdHVyZS4KLS8vIFRvIGF2b2lkIHRoaXMsIGxldCdzIG9jY3VweSB0aGUgNHRoIGFyZ3Vt
ZW50IHJlZ2lzdGVyIChyNykgd2l0aCBhIGR1bW15IGFyZ3VtZW50IHdoZW4gbmVjZXNzYXJ5LiBU
aGlzIG11c3Qgb25seSBiZSBkb25lIHdoZW4gdGhlcmUKLS8vIGlzIG5vIG90aGVyIDMyLWJpdCB2
YWx1ZSBhcmd1bWVudCBiZWhpbmQgdGhpcyA2NC1iaXQgSlNWYWx1ZS4KLSNpZiBDUFUoU0g0KQot
I2RlZmluZSBTSDRfMzJCSVRfRFVNTVlfQVJHICAgICAgVHJ1c3RlZEltbTMyKDApLAotI2Vsc2UK
LSNkZWZpbmUgU0g0XzMyQklUX0RVTU1ZX0FSRwotI2VuZGlmCi0KIEFMV0FZU19JTkxJTkUgTWFj
cm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uTm9FeGNlcHRpb25DaGVjayhWX0pJ
VE9wZXJhdGlvbl9FSiBvcGVyYXRpb24sIEdQUlJlZyBhcmcxVGFnLCBHUFJSZWcgYXJnMVBheWxv
YWQpCiB7CiAgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEVBQklfMzJCSVRfRFVNTVlf
QVJHIGFyZzFQYXlsb2FkLCBhcmcxVGFnKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUTXVsR2VuZXJhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVE11bEdlbmVyYXRvci5jcHAJKHJldmlzaW9uIDIwMDUxNykKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUTXVsR2VuZXJhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xNTMs
NiArMTUzLDcgQEAgdm9pZCBKSVRNdWxHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoQwogICAg
ICAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgZG9uZSA9IGppdC5qdW1wKCk7CiAKICAgICAgICAgbm90
TmVnYXRpdmVaZXJvLmxpbmsoJmppdCk7CisgICAgICAgIGppdC5vcjMyKENDYWxsSGVscGVyczo6
VHJ1c3RlZEltbTMyKFJlc3VsdFByb2ZpbGU6Ok5vbk5lZ1plcm9Eb3VibGUpLCBDQ2FsbEhlbHBl
cnM6OkFic29sdXRlQWRkcmVzcyhtX3Jlc3VsdFByb2ZpbGUtPmFkZHJlc3NPZkZsYWdzKCkpKTsK
IAogICAgICAgICBqaXQubW92ZShtX3Jlc3VsdC5wYXlsb2FkR1BSKCksIG1fc2NyYXRjaEdQUik7
CiAgICAgICAgIGppdC51cnNoaWZ0UHRyKENDYWxsSGVscGVyczo6SW1tMzIoNTIpLCBtX3NjcmF0
Y2hHUFIpOwpAQCAtMTc0LDYgKzE3NSw3IEBAIHZvaWQgSklUTXVsR2VuZXJhdG9yOjpnZW5lcmF0
ZUZhc3RQYXRoKEMKICAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIGRvbmUgPSBqaXQuanVtcCgp
OwogCiAgICAgICAgIG5vdE5lZ2F0aXZlWmVyby5saW5rKCZqaXQpOworICAgICAgICBqaXQub3Iz
MihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihSZXN1bHRQcm9maWxlOjpOb25OZWdaZXJvRG91
YmxlKSwgQ0NhbGxIZWxwZXJzOjpBYnNvbHV0ZUFkZHJlc3MobV9yZXN1bHRQcm9maWxlLT5hZGRy
ZXNzT2ZGbGFncygpKSk7CiAKICAgICAgICAgaml0Lm1vdmUobV9yZXN1bHQudGFnR1BSKCksIG1f
c2NyYXRjaEdQUik7CiAgICAgICAgIGppdC51cnNoaWZ0UHRyKENDYWxsSGVscGVyczo6SW1tMzIo
NTIgLSAzMiksIG1fc2NyYXRjaEdQUik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVE9wZXJhdGlvbnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUT3BlcmF0aW9ucy5jcHAJKHJldmlzaW9uIDIwMDUxNykKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyNDMsNiAr
MjI0Myw4OCBAQCBKU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVG9JbmRleFN0CiAgICAg
cmV0dXJuIGpzU3RyaW5nKGV4ZWMsIElkZW50aWZpZXI6OmZyb20oZXhlYywgaW5kZXgpLnN0cmlu
ZygpKTsKIH0KIAorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZUFk
ZChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRPcDIpCit7CisgICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7CisgICAgTmF0aXZl
Q2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgZXhlYyk7CisgICAgCisgICAgSlNWYWx1ZSBvcDEg
PSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMSk7CisgICAgSlNWYWx1ZSBvcDIgPSBKU1ZhbHVl
OjpkZWNvZGUoZW5jb2RlZE9wMik7CisgICAgCisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c0FkZChleGVjLCBvcDEsIG9wMikpOworfQorCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvblZhbHVlQWRkUHJvZmlsZWQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBSZXN1bHRQcm9maWxlKiBy
ZXN1bHRQcm9maWxlKQoreworICAgIFZNKiB2bSA9ICZleGVjLT52bSgpOworICAgIE5hdGl2ZUNh
bGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGV4ZWMpOworICAgIAorICAgIEpTVmFsdWUgb3AxID0g
SlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDEpOworICAgIEpTVmFsdWUgb3AyID0gSlNWYWx1ZTo6
ZGVjb2RlKGVuY29kZWRPcDIpOworICAgIAorICAgIEpTVmFsdWUgcmVzdWx0ID0ganNBZGQoZXhl
Yywgb3AxLCBvcDIpOworICAgIHJlc3VsdFByb2ZpbGUtPmRldGVjdEJpdHNMaWdodChyZXN1bHQp
OworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKK30KKworRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZU11bChFeGVjU3RhdGUqIGV4ZWMsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpCit7CisgICAg
Vk0qIHZtID0gJmV4ZWMtPnZtKCk7CisgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2
bSwgZXhlYyk7CisKKyAgICBKU1ZhbHVlIG9wMSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3Ax
KTsKKyAgICBKU1ZhbHVlIG9wMiA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AyKTsKKworICAg
IGRvdWJsZSBhID0gb3AxLnRvTnVtYmVyKGV4ZWMpOworICAgIGRvdWJsZSBiID0gb3AyLnRvTnVt
YmVyKGV4ZWMpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoYSAqIGIpKTsK
K30KKworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZU11bFByb2Zp
bGVkKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZE9wMiwgUmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSkKK3sKKyAgICBW
TSogdm0gPSAmZXhlYy0+dm0oKTsKKyAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZt
LCBleGVjKTsKKworICAgIEpTVmFsdWUgb3AxID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDEp
OworICAgIEpTVmFsdWUgb3AyID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDIpOworCisgICAg
ZG91YmxlIGEgPSBvcDEudG9OdW1iZXIoZXhlYyk7CisgICAgZG91YmxlIGIgPSBvcDIudG9OdW1i
ZXIoZXhlYyk7CisgICAgCisgICAgSlNWYWx1ZSByZXN1bHQgPSBqc051bWJlcihhICogYik7Cisg
ICAgcmVzdWx0UHJvZmlsZS0+ZGV0ZWN0Qml0c0xpZ2h0KHJlc3VsdCk7CisgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShyZXN1bHQpOworfQorCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvblZhbHVlU3ViKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikKK3sKKyAgICBWTSogdm0gPSAmZXhlYy0+
dm0oKTsKKyAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBleGVjKTsKKyAgICAK
KyAgICBKU1ZhbHVlIG9wMSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AxKTsKKyAgICBKU1Zh
bHVlIG9wMiA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AyKTsKKworICAgIGRvdWJsZSBhID0g
b3AxLnRvTnVtYmVyKGV4ZWMpOworICAgIGRvdWJsZSBiID0gb3AyLnRvTnVtYmVyKGV4ZWMpOwor
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoYSAtIGIpKTsKK30KKworRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZVN1YlByb2ZpbGVkKEV4ZWNTdGF0
ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZE9wMiwgUmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSkKK3sKKyAgICBWTSogdm0gPSAmZXhl
Yy0+dm0oKTsKKyAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBleGVjKTsKKyAg
ICAKKyAgICBKU1ZhbHVlIG9wMSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AxKTsKKyAgICBK
U1ZhbHVlIG9wMiA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AyKTsKKworICAgIGRvdWJsZSBh
ID0gb3AxLnRvTnVtYmVyKGV4ZWMpOworICAgIGRvdWJsZSBiID0gb3AyLnRvTnVtYmVyKGV4ZWMp
OworICAgIAorICAgIEpTVmFsdWUgcmVzdWx0ID0ganNOdW1iZXIoYSAtIGIpOworICAgIHJlc3Vs
dFByb2ZpbGUtPmRldGVjdEJpdHNMaWdodChyZXN1bHQpOworICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUocmVzdWx0KTsKK30KKwogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblByb2Nlc3NU
eXBlUHJvZmlsZXJMb2coRXhlY1N0YXRlKiBleGVjKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZt
KCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaAkocmV2
aXNpb24gMjAwNTE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25z
LmgJKHdvcmtpbmcgY29weSkKQEAgLTUzLDYgKzUzLDcgQEAgY2xhc3MgV2F0Y2hwb2ludFNldDsK
IAogc3RydWN0IEJ5VmFsSW5mbzsKIHN0cnVjdCBJbmxpbmVDYWxsRnJhbWU7CitzdHJ1Y3QgUmVz
dWx0UHJvZmlsZTsKIAogdHlwZWRlZiBFeGVjU3RhdGUgQ2FsbEZyYW1lOwogCkBAIC05Niw2ICs5
Nyw3IEBAIHR5cGVkZWYgY2hhciogVW51c2VkUHRyOwogICAgIFE6IGludDY0X3QKICAgICBSOiBS
ZWdpc3RlcgogICAgIFJlbzogUmVnRXhwT2JqZWN0KgorICAgIFJwOiBSZXN1bHRQcm9maWxlKgog
ICAgIFM6IHNpemVfdAogICAgIFNwcnQ6IFNsb3dQYXRoUmV0dXJuVHlwZQogICAgIFNzaTogU3Ry
dWN0dXJlU3R1YkluZm8qCkBAIC0xMzYsNiArMTM4LDcgQEAgdHlwZWRlZiBFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OICgqSgogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
ICgqSl9KSVRPcGVyYXRpb25fRUpKQXApKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSwgQXJyYXlQcm9maWxlKik7CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04gKCpKX0pJVE9wZXJhdGlvbl9FSkpCeSkoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFs
dWUsIEVuY29kZWRKU1ZhbHVlLCBCeVZhbEluZm8qKTsKIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiAoKkpfSklUT3BlcmF0aW9uX0VKSkopKEV4ZWNTdGF0ZSosIEVuY29kZWRK
U1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpOwordHlwZWRlZiBFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25fRUpKUnApKEV4ZWNTdGF0ZSos
IEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgUmVzdWx0UHJvZmlsZSopOwogdHlwZWRl
ZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25fRUpzc1opKEV4
ZWNTdGF0ZSosIEpTU3RyaW5nKiwgaW50MzJfdCk7CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04gKCpKX0pJVE9wZXJhdGlvbl9FSnNzUmVvKShFeGVjU3RhdGUqLCBKU1N0cmlu
ZyosIFJlZ0V4cE9iamVjdCopOwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
ICgqSl9KSVRPcGVyYXRpb25fRUpzc1Jlb0pzcykoRXhlY1N0YXRlKiwgSlNTdHJpbmcqLCBSZWdF
eHBPYmplY3QqLCBKU1N0cmluZyopOwpAQCAtNDA2LDYgKzQwOSwxMyBAQCBKU0NlbGwqIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uR2V0UHJvcGVyCiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbk5leHRFbnVtZXJhdG9yUG5hbWUoRXhlY1N0YXRlKiwgSlNDZWxsKiwgaW50MzJf
dCk7CiBKU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVG9JbmRleFN0cmluZyhFeGVjU3Rh
dGUqLCBpbnQzMl90KTsKIAorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25W
YWx1ZUFkZChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkT3AyKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvblZhbHVlQWRkUHJvZmlsZWQoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgUmVzdWx0UHJvZmlsZSopIFdU
Rl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVN
dWwoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZE9wMikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBv
cGVyYXRpb25WYWx1ZU11bFByb2ZpbGVkKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIFJlc3VsdFByb2ZpbGUqKSBXVEZfSU5U
RVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlU3ViKEV4
ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRPcDIpIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uVmFsdWVTdWJQcm9maWxlZChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3Ax
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBSZXN1bHRQcm9maWxlKikgV1RGX0lOVEVSTkFM
OworCiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHJvY2Vzc1R5cGVQcm9maWxlckxvZyhF
eGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7CiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHJv
Y2Vzc1NoYWRvd0NoaWNrZW5Mb2coRXhlY1N0YXRlKikgV1RGX0lOVEVSTkFMOwogCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN1YkdlbmVyYXRvci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdWJHZW5lcmF0b3IuY3BwCShyZXZpc2lv
biAyMDA1MTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN1YkdlbmVyYXRvci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTgzLDYgKzgzLDkgQEAgdm9pZCBKSVRTdWJHZW5lcmF0b3I6
OmdlbmVyYXRlRmFzdFBhdGgoQwogICAgIHJpZ2h0V2FzSW50ZWdlci5saW5rKCZqaXQpOwogCiAg
ICAgaml0LnN1YkRvdWJsZShtX3JpZ2h0RlBSLCBtX2xlZnRGUFIpOworICAgIGlmIChtX3Jlc3Vs
dFByb2ZpbGUpCisgICAgICAgIG1fcmVzdWx0UHJvZmlsZS0+ZW1pdFNldERvdWJsZShqaXQpOwor
CiAgICAgaml0LmJveERvdWJsZShtX2xlZnRGUFIsIG1fcmVzdWx0KTsKIH0KIApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdWJHZW5lcmF0b3IuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN1YkdlbmVyYXRvci5oCShyZXZpc2lvbiAyMDA1
MTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN1YkdlbmVyYXRvci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNyw3ICszNyw4IEBAIGNsYXNzIEpJVFN1YkdlbmVyYXRvciB7CiBwdWJs
aWM6CiAgICAgSklUU3ViR2VuZXJhdG9yKFNuaXBwZXRPcGVyYW5kIGxlZnRPcGVyYW5kLCBTbmlw
cGV0T3BlcmFuZCByaWdodE9wZXJhbmQsCiAgICAgICAgIEpTVmFsdWVSZWdzIHJlc3VsdCwgSlNW
YWx1ZVJlZ3MgbGVmdCwgSlNWYWx1ZVJlZ3MgcmlnaHQsCi0gICAgICAgIEZQUlJlZyBsZWZ0RlBS
LCBGUFJSZWcgcmlnaHRGUFIsIEdQUlJlZyBzY3JhdGNoR1BSLCBGUFJSZWcgc2NyYXRjaEZQUikK
KyAgICAgICAgRlBSUmVnIGxlZnRGUFIsIEZQUlJlZyByaWdodEZQUiwgR1BSUmVnIHNjcmF0Y2hH
UFIsIEZQUlJlZyBzY3JhdGNoRlBSLAorICAgICAgICBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9m
aWxlID0gbnVsbHB0cikKICAgICAgICAgOiBtX2xlZnRPcGVyYW5kKGxlZnRPcGVyYW5kKQogICAg
ICAgICAsIG1fcmlnaHRPcGVyYW5kKHJpZ2h0T3BlcmFuZCkKICAgICAgICAgLCBtX3Jlc3VsdChy
ZXN1bHQpCkBAIC00Nyw2ICs0OCw3IEBAIHB1YmxpYzoKICAgICAgICAgLCBtX3JpZ2h0RlBSKHJp
Z2h0RlBSKQogICAgICAgICAsIG1fc2NyYXRjaEdQUihzY3JhdGNoR1BSKQogICAgICAgICAsIG1f
c2NyYXRjaEZQUihzY3JhdGNoRlBSKQorICAgICAgICAsIG1fcmVzdWx0UHJvZmlsZShyZXN1bHRQ
cm9maWxlKQogICAgIHsgfQogCiAgICAgdm9pZCBnZW5lcmF0ZUZhc3RQYXRoKENDYWxsSGVscGVy
cyYpOwpAQCAtNjUsNiArNjcsNyBAQCBwcml2YXRlOgogICAgIEZQUlJlZyBtX3JpZ2h0RlBSOwog
ICAgIEdQUlJlZyBtX3NjcmF0Y2hHUFI7CiAgICAgRlBSUmVnIG1fc2NyYXRjaEZQUjsKKyAgICBS
ZXN1bHRQcm9maWxlKiBtX3Jlc3VsdFByb2ZpbGU7CiAgICAgYm9vbCBtX2RpZEVtaXRGYXN0UGF0
aCB7IGZhbHNlIH07CiAKICAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IG1fZW5kSnVtcExpc3Q7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RhZ1JlZ2lzdGVyc01vZGUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGFnUmVnaXN0ZXJzTW9kZS5j
cHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RhZ1JlZ2lzdGVy
c01vZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlRhZ1JlZ2lzdGVyc01vZGUuaCIKKworI2luY2x1ZGUgPHd0Zi9QcmludFN0cmVhbS5o
PgorCituYW1lc3BhY2UgV1RGIHsKKwordXNpbmcgbmFtZXNwYWNlIEpTQzsKKwordm9pZCBwcmlu
dEludGVybmFsKFByaW50U3RyZWFtJiBvdXQsIFRhZ1JlZ2lzdGVyc01vZGUgbW9kZSkKK3sKKyAg
ICBzd2l0Y2ggKG1vZGUpIHsKKyAgICBjYXNlIERvTm90SGF2ZVRhZ1JlZ2lzdGVyczoKKyAgICAg
ICAgb3V0LnByaW50KCJEb05vdEhhdmVUYWdSZWdpc3RlcnMiKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIGNhc2UgSGF2ZVRhZ1JlZ2lzdGVyczoKKyAgICAgICAgb3V0LnByaW50KCJIYXZlVGFnUmVn
aXN0ZXJzIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgCisgICAgUkVMRUFTRV9BU1NF
UlRfTk9UX1JFQUNIRUQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV1RGCisKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGFnUmVnaXN0ZXJzTW9kZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGFnUmVnaXN0ZXJzTW9kZS5oCShyZXZpc2lvbiAwKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UYWdSZWdpc3RlcnNNb2RlLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKKyAqLworCisjaWZuZGVmIFRhZ1JlZ2lzdGVyc01vZGVfaAorI2RlZmluZSBUYWdSZWdp
c3RlcnNNb2RlX2gKKworbmFtZXNwYWNlIEpTQyB7CisKK2VudW0gVGFnUmVnaXN0ZXJzTW9kZSB7
CisgICAgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzLAorICAgIEhhdmVUYWdSZWdpc3RlcnMKK307CisK
K30gLy8gbmFtZXNwYWNlIEpTQworCituYW1lc3BhY2UgV1RGIHsKKworY2xhc3MgUHJpbnRTdHJl
YW07Cit2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mLCBKU0M6OlRhZ1JlZ2lzdGVyc01v
ZGUpOworCit9IC8vIG5hbWVzcGFjZSBXVEYKKworI2VuZGlmIC8vIFRhZ1JlZ2lzdGVyc01vZGVf
aAorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNs
b3dQYXRocy5jcHAJKHJldmlzaW9uIDIwMDUxNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3OCw2ICszNzgs
OCBAQCBzdGF0aWMgdm9pZCB1cGRhdGVSZXN1bHRQcm9maWxlRm9yQmluYXJ5CiAgICAgICAgICAg
ICBpZiAoIWRvdWJsZVZhbCAmJiBzdGQ6OnNpZ25iaXQoZG91YmxlVmFsKSkKICAgICAgICAgICAg
ICAgICBwcm9maWxlLT5zZXRPYnNlcnZlZE5lZ1plcm9Eb3VibGUoKTsKICAgICAgICAgICAgIGVs
c2UgeworICAgICAgICAgICAgICAgIHByb2ZpbGUtPnNldE9ic2VydmVkTm9uTmVnWmVyb0RvdWJs
ZSgpOworCiAgICAgICAgICAgICAgICAgLy8gVGhlIEludDUyIG92ZXJmbG93IGNoZWNrIGhlcmUg
aW50ZW50aW9uYWxseSBvbWl0cyAxbGwgPDwgNTEgYXMgYSB2YWxpZCBuZWdhdGl2ZSBJbnQ1MiB2
YWx1ZS4KICAgICAgICAgICAgICAgICAvLyBUaGVyZWZvcmUsIHdlIHdpbGwgZ2V0IGEgZmFsc2Ug
cG9zaXRpdmUgaWYgdGhlIHJlc3VsdCBpcyB0aGF0IHZhbHVlLiBUaGlzIGlzIGludGVudGlvbmFs
bHkKICAgICAgICAgICAgICAgICAvLyBkb25lIHRvIHNpbXBsaWZ5IHRoZSBjaGVja2luZyBhbGdv
cml0aG0uCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>278411</attachid>
            <date>2016-05-09 10:57:54 -0700</date>
            <delta_ts>2016-05-09 16:35:47 -0700</delta_ts>
            <desc>performance</desc>
            <filename>report.txt</filename>
            <type>text/plain</type>
            <size>78677</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">QmVuY2htYXJrIHJlcG9ydCBmb3IgU3VuU3BpZGVyLCBMb25nU3BpZGVyLCBWOFNwaWRlciwgT2N0
YW5lLCBLcmFrZW4sIEpTUmVncmVzcywgQXNtQmVuY2gsIGFuZCBDb21wcmVzc2lvbkJlbmNoIG9u
IGhvZG9yIChNYWNCb29rUHJvMTEsMykuCgpWTXMgdGVzdGVkOgoiVGlwT2ZUcmVlIiBhdCAvVm9s
dW1lcy9EYXRhL3ByaW1hcnkvT3BlblNvdXJjZS9CYXNlbGluZS9XZWJLaXRCdWlsZC9SZWxlYXNl
L2pzYwoiVGhpbmdzIiBhdCAvVm9sdW1lcy9EYXRhL3ByaW1hcnkvT3BlblNvdXJjZS9XZWJLaXRC
dWlsZC9SZWxlYXNlL2pzYyAocjIwMDUxNykKCkNvbGxlY3RlZCA2IHNhbXBsZXMgcGVyIGJlbmNo
bWFyay9WTSwgd2l0aCA2IFZNIGludm9jYXRpb25zIHBlciBiZW5jaG1hcmsuIEVtaXR0ZWQgYSBj
YWxsIHRvIGdjKCkgYmV0d2VlbiBzYW1wbGUgbWVhc3VyZW1lbnRzLgpVc2VkIDEgYmVuY2htYXJr
IGl0ZXJhdGlvbiBwZXIgVk0gaW52b2NhdGlvbiBmb3Igd2FybS11cC4gVXNlZCB0aGUganNjLXNw
ZWNpZmljIHByZWNpc2VUaW1lKCkgZnVuY3Rpb24gdG8gZ2V0IG1pY3Jvc2Vjb25kLWxldmVsCnRp
bWluZy4gUmVwb3J0aW5nIGJlbmNobWFyayBleGVjdXRpb24gdGltZXMgd2l0aCA5NSUgY29uZmlk
ZW5jZSBpbnRlcnZhbHMgaW4gbWlsbGlzZWNvbmRzLgoKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaXBPZlRyZWUgICAgICAgICAgICAgICAg
ICAgVGhpbmdzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKU3VuU3BpZGVy
OgogICAzZC1jdWJlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0
LjY1MzQrLTAuMjM3NyAgICAgPyAgICAgIDQuOTAzMystMC4xMjQ3ICAgICAgICA/IG1pZ2h0IGJl
IDEuMDUzN3ggc2xvd2VyCiAgIDNkLW1vcnBoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDQuODIxNystMC4wNDY4ICAgICA/ICAgICAgNC45NDMyKy0wLjE2OTIgICAg
ICAgID8gbWlnaHQgYmUgMS4wMjUyeCBzbG93ZXIKICAgM2QtcmF5dHJhY2UgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgNS4xMzkyKy0wLjE3NzUgICAgICAgICAgICA1LjEy
NjMrLTAuMDczNCAgICAgICAgCiAgIGFjY2Vzcy1iaW5hcnktdHJlZXMgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDIuMDMwMistMC4wMTU0ICAgICA/ICAgICAgMi4wMzIxKy0wLjAyMDIg
ICAgICAgID8KICAgYWNjZXNzLWZhbm5rdWNoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgNS40OTkwKy0wLjMyNTUgICAgID8gICAgICA1LjU5OTkrLTAuMjI1OSAgICAgICAgPyBt
aWdodCBiZSAxLjAxODN4IHNsb3dlcgogICBhY2Nlc3MtbmJvZHkgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAyLjQyMTErLTAuMDgzMiAgICAgPyAgICAgIDIuNjAwNCstMC4y
NjAwICAgICAgICA/IG1pZ2h0IGJlIDEuMDc0MHggc2xvd2VyCiAgIGFjY2Vzcy1uc2lldmUgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuOTg0NistMC4yNDQ5ICAgICAgICAg
ICAgMi44ODE1Ky0wLjE2MTUgICAgICAgICAgbWlnaHQgYmUgMS4wMzU4eCBmYXN0ZXIKICAgYml0
b3BzLTNiaXQtYml0cy1pbi1ieXRlICAgICAgICAgICAgICAgICAgICAgICAgICAgMS4wNjQzKy0w
LjAyOTggICAgICAgICAgICAxLjA2MjErLTAuMDI5OCAgICAgICAgCiAgIGJpdG9wcy1iaXRzLWlu
LWJ5dGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuODI4MystMC4zODEwICAgICAg
ICAgICAgMi41OTg2Ky0wLjA0MTYgICAgICAgICAgbWlnaHQgYmUgMS4wODg0eCBmYXN0ZXIKICAg
Yml0b3BzLWJpdHdpc2UtYW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMS44ODUx
Ky0wLjAxNjQgICAgICAgICAgICAxLjg4NDQrLTAuMDMzMyAgICAgICAgCiAgIGJpdG9wcy1uc2ll
dmUtYml0cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuODc0MystMC4wMjkyICAg
ICA/ICAgICAgMi45NzQ0Ky0wLjEzNjggICAgICAgID8gbWlnaHQgYmUgMS4wMzQ4eCBzbG93ZXIK
ICAgY29udHJvbGZsb3ctcmVjdXJzaXZlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi4y
ODIwKy0wLjEzNjUgICAgICAgICAgICAyLjI2MzQrLTAuMDgyNSAgICAgICAgCiAgIGNyeXB0by1h
ZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuNTk0MystMC44OTUz
ICAgICAgICAgICAgNC4yODgwKy0wLjIxNzMgICAgICAgICAgbWlnaHQgYmUgMS4wNzE0eCBmYXN0
ZXIKICAgY3J5cHRvLW1kNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Mi4zMTMwKy0wLjAzODYgICAgID8gICAgICAyLjMzNjgrLTAuMDUwOCAgICAgICAgPyBtaWdodCBi
ZSAxLjAxMDN4IHNsb3dlcgogICBjcnlwdG8tc2hhMSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAyLjI1NTArLTAuMTc3NyAgICAgICAgICAgIDIuMjM1MistMC4wNjUyICAg
ICAgICAKICAgZGF0ZS1mb3JtYXQtdG9mdGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgNi44MTExKy0wLjc0NTggICAgICAgICAgICA2LjMwNTErLTAuMTY3NCAgICAgICAgICBtaWdo
dCBiZSAxLjA4MDN4IGZhc3RlcgogICBkYXRlLWZvcm1hdC14cGFyYiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA0Ljc4NjgrLTAuMzA4NiAgICAgICAgICAgIDQuNzE0NSstMC4yNjEy
ICAgICAgICAgIG1pZ2h0IGJlIDEuMDE1M3ggZmFzdGVyCiAgIG1hdGgtY29yZGljICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuNzUyNSstMC4wMjY1ICAgICA/ICAgICAg
Mi44NDE1Ky0wLjE5NzUgICAgICAgID8gbWlnaHQgYmUgMS4wMzIzeCBzbG93ZXIKICAgbWF0aC1w
YXJ0aWFsLXN1bXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy42OTQxKy0wLjM2
ODkgICAgICAgICAgICAzLjUzNjUrLTAuMTE3OCAgICAgICAgICBtaWdodCBiZSAxLjA0NDV4IGZh
c3RlcgogICBtYXRoLXNwZWN0cmFsLW5vcm0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAxLjk2OTUrLTAuMTU5MSAgICAgICAgICAgIDEuOTU1NistMC4xMDgwICAgICAgICAKICAgcmVn
ZXhwLWRuYSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNi43MDg3Ky0w
LjU4MTYgICAgICAgICAgICA2LjYxODMrLTAuNTg4MCAgICAgICAgICBtaWdodCBiZSAxLjAxMzd4
IGZhc3RlcgogICBzdHJpbmctYmFzZTY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA0LjQ4NzIrLTAuMTMxNSAgICAgXiAgICAgIDMuOTgxNCstMC4wOTk4ICAgICAgICBeIGRl
ZmluaXRlbHkgMS4xMjcweCBmYXN0ZXIKICAgc3RyaW5nLWZhc3RhICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgNS40MzQ4Ky0wLjA4NTMgICAgICAgICAgICA1LjQxNjArLTAu
MDM0NSAgICAgICAgCiAgIHN0cmluZy10YWdjbG91ZCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDguMzM2MistMC4xMzk4ICAgICA/ICAgICAgOC42NzIyKy0wLjcxNjAgICAgICAg
ID8gbWlnaHQgYmUgMS4wNDAzeCBzbG93ZXIKICAgc3RyaW5nLXVucGFjay1jb2RlICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAxOC40NTAwKy0wLjcyNDIgICAgICAgICAgIDE4LjE0MDMr
LTAuMTYwOCAgICAgICAgICBtaWdodCBiZSAxLjAxNzF4IGZhc3RlcgogICBzdHJpbmctdmFsaWRh
dGUtaW5wdXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjI4ODArLTAuMDU3MSAgICAg
XiAgICAgIDQuMDA1MistMC4xMzgyICAgICAgICBeIGRlZmluaXRlbHkgMS4wNzA2eCBmYXN0ZXIK
CiAgIDxhcml0aG1ldGljPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQu
NDM3MSstMC4wNTUyICAgICAgICAgICAgNC4zODE0Ky0wLjA2MzQgICAgICAgICAgbWlnaHQgYmUg
MS4wMTI3eCBmYXN0ZXIKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgVGlwT2ZUcmVlICAgICAgICAgICAgICAgICAgIFRoaW5ncyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCkxvbmdTcGlkZXI6CiAgIDNkLWN1YmUgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3NjYuMjA3MCstNi45NTM3ICAg
ICA/ICAgIDgzNC4xMDI3Ky0xODQuNzc2NyAgICAgID8gbWlnaHQgYmUgMS4wODg2eCBzbG93ZXIK
ICAgM2QtbW9ycGggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDU4Mi45
MzAzKy00LjU2MzYgICAgICAgICAgNTgxLjE3NjErLTQuNzYxMCAgICAgICAgCiAgIDNkLXJheXRy
YWNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0NzYuNjYzMCstMy4zODE1
ICAgICA/ICAgIDQ4NC44NTE0Ky03Ljk4MDMgICAgICAgID8gbWlnaHQgYmUgMS4wMTcyeCBzbG93
ZXIKICAgYWNjZXNzLWJpbmFyeS10cmVlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDgw
Ny4xNTcyKy02LjQ3MjUgICAgID8gICAgODExLjE5ODMrLTEzLjA1MDEgICAgICAgPwogICBhY2Nl
c3MtZmFubmt1Y2ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjQzLjAyNTArLTEx
LjA2ODkgICAgICAgICAyMzYuNzg3NistMy42NDUyICAgICAgICAgIG1pZ2h0IGJlIDEuMDI2M3gg
ZmFzdGVyCiAgIGFjY2Vzcy1uYm9keSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA1MTMuOTMyNCstMy4yMjk0ICAgICAgICAgIDUwOS40MzI3Ky0yLjk0NjAgICAgICAgIAogICBh
Y2Nlc3MtbnNpZXZlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzAxLjA0OTEr
LTE0Ljc5MjUgICAgICAgICAyOTMuNDY5NystMTIuODcyMSAgICAgICAgIG1pZ2h0IGJlIDEuMDI1
OHggZmFzdGVyCiAgIGJpdG9wcy0zYml0LWJpdHMtaW4tYnl0ZSAgICAgICAgICAgICAgICAgICAg
ICAgICAgMzMuMzE3OSstMS41NTUwICAgICAgICAgICAzMi43NzQwKy0wLjk4MjMgICAgICAgICAg
bWlnaHQgYmUgMS4wMTY2eCBmYXN0ZXIKICAgYml0b3BzLWJpdHMtaW4tYnl0ZSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA5OC4yODYxKy0xLjIyODQgICAgID8gICAgIDk4LjY5ODgrLTEu
MzE3MSAgICAgICAgPwogICBiaXRvcHMtbnNpZXZlLWJpdHMgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMzgzLjM4MjQrLTQuMzg1MCAgICAgPyAgICAzODQuNjQxNCstOC44NjM2ICAgICAg
ICA/CiAgIGNvbnRyb2xmbG93LXJlY3Vyc2l2ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICA0
NTIuNjk2MCstNC44OTE1ICAgICA/ICAgIDQ1NS41NzM3Ky0zLjU5MDcgICAgICAgID8KICAgY3J5
cHRvLWFlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDU3MS4xNjM1Ky0x
Ljg4OTYgICAgID8gICAgNTc5Ljg2NDgrLTEyLjgxNjQgICAgICAgPyBtaWdodCBiZSAxLjAxNTJ4
IHNsb3dlcgogICBjcnlwdG8tbWQ1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgNDkwLjUzMDUrLTguNTM0MCAgICAgPyAgICA0OTEuNTc2NSstOS4wNTk1ICAgICAgICA/CiAg
IGNyeXB0by1zaGExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2NDEuODE4
MSstNy4zMjk0ICAgICA/ICAgIDY0OS45NDk4Ky0yNS4zMTk4ICAgICAgID8gbWlnaHQgYmUgMS4w
MTI3eCBzbG93ZXIKICAgZGF0ZS1mb3JtYXQtdG9mdGUgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDUwNS4xOTE3Ky04LjkzOTcgICAgID8gICAgNTE3LjgwNjcrLTM1LjY2MTggICAgICAg
PyBtaWdodCBiZSAxLjAyNTB4IHNsb3dlcgogICBkYXRlLWZvcm1hdC14cGFyYiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgNjI2LjAyNDMrLTQuMTQ0MSAgICAgICAgICA2MjMuNjA4NCst
NC44MzQ1ICAgICAgICAKICAgaGFzaC1tYXAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDE0OS43NzMwKy0yLjMxNzIgICAgICAgICAgMTQ1LjMzNjArLTIuNzc4NCAgICAg
ICAgICBtaWdodCBiZSAxLjAzMDV4IGZhc3RlcgogICBtYXRoLWNvcmRpYyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgNDMwLjk5MzYrLTkuMjQ0NSAgICAgPyAgICA0MzQuNzg5
OSstOS41NDIyICAgICAgICA/CiAgIG1hdGgtcGFydGlhbC1zdW1zICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAyODEuMjA1NCstMC43NTkyICAgICBeICAgIDI3Ny4zNDEwKy0xLjA5NTIg
ICAgICAgIF4gZGVmaW5pdGVseSAxLjAxMzl4IGZhc3RlcgogICBtYXRoLXNwZWN0cmFsLW5vcm0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNTQ1LjE5MTYrLTQuNDc4MSAgICAgICAgICA1
NDMuMjI3MSstMi44MTg1ICAgICAgICAKICAgc3RyaW5nLWJhc2U2NCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDM0My41MjEwKy0zLjg5NzMgICAgIF4gICAgMzM2LjMyMTUrLTIu
NTI4MCAgICAgICAgXiBkZWZpbml0ZWx5IDEuMDIxNHggZmFzdGVyCiAgIHN0cmluZy1mYXN0YSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzMjYuMzc0NystMy43MzAwICAgICAg
ICAgIDMyMy44NzQ0Ky0zLjE4NjEgICAgICAgIAogICBzdHJpbmctdGFnY2xvdWQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMTczLjIwNTYrLTEuMzk0MyAgICAgPyAgICAxNzQuNDE1
OSstMi4zMzA1ICAgICAgICA/CgogICA8Z2VvbWV0cmljPiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMzUzLjExNjUrLTEuNjQyMSAgICAgPyAgICAzNTMuMzQ2OCstMy42MjE0
ICAgICAgICA/IG1pZ2h0IGJlIDEuMDAwN3ggc2xvd2VyCgogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRpcE9mVHJlZSAgICAgICAgICAgICAg
ICAgICBUaGluZ3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIApWOFNwaWRl
cjoKICAgY3J5cHRvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAz
Ni4zODgyKy0wLjQ5MDcgICAgID8gICAgIDM2Ljc4MTgrLTEuNTIyNyAgICAgICAgPyBtaWdodCBi
ZSAxLjAxMDh4IHNsb3dlcgogICBkZWx0YWJsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDQ5Ljk0NzMrLTEuMjgzNiAgICAgICAgICAgNDguMjk4MCstMC41NTY5ICAg
ICAgICAgIG1pZ2h0IGJlIDEuMDM0MXggZmFzdGVyCiAgIGVhcmxleS1ib3llciAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMzguNTczNCstMC40Nzg3ICAgICA/ICAgICAzOC44
NTYwKy0wLjM3NDkgICAgICAgID8KICAgcmF5dHJhY2UgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAyMC4zMDU1Ky0wLjU3MTYgICAgICAgICAgIDIwLjI5NDQrLTAuODA3
NSAgICAgICAgCiAgIHJlZ2V4cCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgNTMuOTUwMystMC41NTg4ICAgICAgICAgICA1My4zMDczKy0wLjMxNTAgICAgICAgICAg
bWlnaHQgYmUgMS4wMTIxeCBmYXN0ZXIKICAgcmljaGFyZHMgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAzOS4wOTM0Ky0wLjU1NDUgICAgID8gICAgIDM5LjEyMTErLTAu
MTkxNSAgICAgICAgPwogICBzcGxheSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDI4Ljg1MDYrLTAuNTY4NCAgICAgPyAgICAgMjkuNDk0MCstMS41MzE4ICAgICAg
ICA/IG1pZ2h0IGJlIDEuMDIyM3ggc2xvd2VyCgogICA8Z2VvbWV0cmljPiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDM2LjUxNDkrLTAuMjkyMSAgICAgICAgICAgMzYuNDgx
MSstMC40MTAxICAgICAgICAgIG1pZ2h0IGJlIDEuMDAwOXggZmFzdGVyCgogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRpcE9mVHJlZSAgICAg
ICAgICAgICAgICAgICBUaGluZ3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IApPY3RhbmU6CiAgIGVuY3J5cHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMC4xNTQ5MCstMC4wMDA5NiAgICA/ICAgICAwLjE1NTc2Ky0wLjAwMDk3ICAgICAgID8K
ICAgZGVjcnlwdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjc3
NjQyKy0wLjAyODc3ICAgICAgICAgIDIuNzQxOTMrLTAuMDEzMzUgICAgICAgICBtaWdodCBiZSAx
LjAxMjZ4IGZhc3RlcgogICBkZWx0YWJsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHgyICAgICAgIDAuMTI0MzMrLTAuMDAyOTIgICAgPyAgICAgMC4xMjY1NSstMC4wMDQ5NSAgICAg
ICA/IG1pZ2h0IGJlIDEuMDE3OXggc2xvd2VyCiAgIGVhcmxleSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMC4yODExNystMC4wMDIzMCAgICA/ICAgICAwLjI4NjI5
Ky0wLjAxMDE0ICAgICAgID8gbWlnaHQgYmUgMS4wMTgyeCBzbG93ZXIKICAgYm95ZXIgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjkxNzMzKy0wLjE0MDc2ICAg
ICAgICAgIDQuODk0OTUrLTAuMTQxMjQgICAgICAgCiAgIG5hdmllci1zdG9rZXMgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgeDIgICAgICAgNC44MjMyNistMC4wMDg0OCAgICA/ICAgICA0Ljg1
ODIxKy0wLjAzNjg5ICAgICAgID8KICAgcmF5dHJhY2UgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB4MiAgICAgICAwLjc3ODUzKy0wLjAwOTE0ICAgICAgICAgIDAuNzc0NzArLTAuMDA4
NTEgICAgICAgCiAgIHJpY2hhcmRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDIg
ICAgICAgMC4wODEyMystMC4wMDI3NCAgICAgICAgICAwLjA4MDI0Ky0wLjAwMTA5ICAgICAgICAg
bWlnaHQgYmUgMS4wMTI0eCBmYXN0ZXIKICAgc3BsYXkgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB4MiAgICAgICAwLjMzNTAzKy0wLjAxNDEwICAgICAgICAgIDAuMzI2ODYrLTAu
MDAzMzUgICAgICAgICBtaWdodCBiZSAxLjAyNTB4IGZhc3RlcgogICByZWdleHAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHgyICAgICAgMTYuNjg0ODgrLTAuNTc3NTkgICAgICAg
ICAxNi4yMzgzMSstMC4yOTg2OCAgICAgICAgIG1pZ2h0IGJlIDEuMDI3NXggZmFzdGVyCiAgIHBk
ZmpzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDIgICAgICAzOC4wNjQ2OSst
MC42NzYxOCAgICAgICAgIDM3LjY0NDk1Ky0wLjEyNzA5ICAgICAgICAgbWlnaHQgYmUgMS4wMTEx
eCBmYXN0ZXIKICAgbWFuZHJlZWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4MiAg
ICAgIDQxLjEzODc4Ky0wLjA3ODI3ICAgID8gICAgNDEuNDQ1MDcrLTAuMzE1MjcgICAgICAgPwog
ICBnYmVtdSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgyICAgICAgMjYuNzU4
NjIrLTAuMTUzNjUgICAgPyAgICAyNy4wOTc3OCstMC4yMzE1NSAgICAgICA/IG1pZ2h0IGJlIDEu
MDEyN3ggc2xvd2VyCiAgIGNsb3N1cmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMC41MjA2NSstMC4wMDI5NyAgICA/ICAgICAwLjUzMDI5Ky0wLjAxMTY1ICAgICAg
ID8gbWlnaHQgYmUgMS4wMTg1eCBzbG93ZXIKICAganF1ZXJ5ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA2LjQ5MzgzKy0wLjEwMzYwICAgID8gICAgIDYuNjQxMzgr
LTAuMzU2MDggICAgICAgPyBtaWdodCBiZSAxLjAyMjd4IHNsb3dlcgogICBib3gyZCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgyICAgICAgIDkuMDU5ODYrLTAuMDQyMDcgICAg
PyAgICAgOS4wNjcxMystMC4wODAxMyAgICAgICA/CiAgIHpsaWIgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgeDIgICAgIDM0Ny4xMTgyMistMTUuMzYzNjUgICA/ICAgMzU4LjU1
NjQ0Ky0yLjc2MzAyICAgICAgID8gbWlnaHQgYmUgMS4wMzMweCBzbG93ZXIKICAgdHlwZXNjcmlw
dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4MiAgICAgNjIwLjM2ODI5Ky02LjkzOTA1
ICAgID8gICA2MzEuNjg1NDIrLTExLjQwNjk5ICAgICAgPyBtaWdodCBiZSAxLjAxODJ4IHNsb3dl
cgoKICAgPGdlb21ldHJpYz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0
LjkyNzQzKy0wLjAzNjAxICAgID8gICAgIDQuOTQwNzMrLTAuMDI0MjUgICAgICAgPyBtaWdodCBi
ZSAxLjAwMjd4IHNsb3dlcgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBUaXBPZlRyZWUgICAgICAgICAgICAgICAgICAgVGhpbmdzICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKS3Jha2VuOgogICBhaS1hc3RhciAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4Ny4zMDgrLTMuNDI4ICAgICAg
ICAgICAgIDg1LjEwNCstMi4wNjEgICAgICAgICAgIG1pZ2h0IGJlIDEuMDI1OXggZmFzdGVyCiAg
IGF1ZGlvLWJlYXQtZGV0ZWN0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDM3Ljcy
NSstMC41NTAgICAgICA/ICAgICAgMzguNTAxKy0yLjExMCAgICAgICAgID8gbWlnaHQgYmUgMS4w
MjA2eCBzbG93ZXIKICAgYXVkaW8tZGZ0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgOTguOTQyKy00LjgyNiAgICAgICAgICAgICA5Ni45NzUrLTIuMjQ0ICAgICAgICAg
ICBtaWdodCBiZSAxLjAyMDN4IGZhc3RlcgogICBhdWRpby1mZnQgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAyOS45NjErLTAuMjE3ICAgICAgPyAgICAgIDMwLjE4Nyst
MC4yNDYgICAgICAgICA/CiAgIGF1ZGlvLW9zY2lsbGF0b3IgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDQ2LjYyMCstMC4xMjIgICAgICA/ICAgICAgNDcuMTY3Ky0xLjg4NyAgICAg
ICAgID8gbWlnaHQgYmUgMS4wMTE3eCBzbG93ZXIKICAgaW1hZ2luZy1kYXJrcm9vbSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgNTguMjc5Ky0wLjQwNyAgICAgID8gICAgICA1OC45
NTMrLTEuMDM3ICAgICAgICAgPyBtaWdodCBiZSAxLjAxMTZ4IHNsb3dlcgogICBpbWFnaW5nLWRl
c2F0dXJhdGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0My43NjMrLTAuMzE5ICAg
ICAgICAgICAgIDQzLjU2NystMC40NzcgICAgICAgICAKICAgaW1hZ2luZy1nYXVzc2lhbi1ibHVy
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNjIuNjM3Ky0zLjEzNSAgICAgID8gICAgICA2
Ni4zNjErLTYuMTM5ICAgICAgICAgPyBtaWdodCBiZSAxLjA1OTV4IHNsb3dlcgogICBqc29uLXBh
cnNlLWZpbmFuY2lhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzNS4wMjYrLTEuMzY4
ICAgICAgICAgICAgIDMyLjk3MystMS45MDYgICAgICAgICAgIG1pZ2h0IGJlIDEuMDYyM3ggZmFz
dGVyCiAgIGpzb24tc3RyaW5naWZ5LXRpbmRlcmJveCAgICAgICAgICAgICAgICAgICAgICAgICAg
IDIzLjg5OCstMC42NjUgICAgICA/ICAgICAgMjQuMDMwKy0yLjMyNyAgICAgICAgID8KICAgc3Rh
bmZvcmQtY3J5cHRvLWFlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzYuNzI1Ky0w
LjI3NiAgICAgID8gICAgICAzNi44NTErLTAuNDIzICAgICAgICAgPwogICBzdGFuZm9yZC1jcnlw
dG8tY2NtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzMS43NDkrLTEuNDkyICAgICAg
PyAgICAgIDMyLjA3MCstMS40NDggICAgICAgICA/IG1pZ2h0IGJlIDEuMDEwMXggc2xvd2VyCiAg
IHN0YW5mb3JkLWNyeXB0by1wYmtkZjIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDkyLjQx
MCstNC4wOTQgICAgICA/ICAgICAgOTQuMTYyKy03LjcyNCAgICAgICAgID8gbWlnaHQgYmUgMS4w
MTkweCBzbG93ZXIKICAgc3RhbmZvcmQtY3J5cHRvLXNoYTI1Ni1pdGVyYXRpdmUgICAgICAgICAg
ICAgICAgICAgMzUuOTAzKy0xLjMxOCAgICAgICAgICAgICAzNC44ODIrLTAuMTIyICAgICAgICAg
ICBtaWdodCBiZSAxLjAyOTJ4IGZhc3RlcgoKICAgPGFyaXRobWV0aWM+ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgNTEuNDk2Ky0wLjQxOCAgICAgID8gICAgICA1MS41NTYr
LTAuNjE0ICAgICAgICAgPyBtaWdodCBiZSAxLjAwMTJ4IHNsb3dlcgoKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaXBPZlRyZWUgICAgICAg
ICAgICAgICAgICAgVGhpbmdzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK
SlNSZWdyZXNzOgogICBhYmMtZm9yd2FyZC1sb29wLWVxdWFsICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDIzLjc0NzcrLTEuMTQ4MCAgICAgICAgICAgMjMuNjU4OSstMC45NjQ2ICAgICAgICAK
ICAgYWJjLXBvc3RmaXgtYmFja3dhcmQtbG9vcCAgICAgICAgICAgICAgICAgICAgICAgICAyOS41
NTU3Ky0wLjUzNDQgICAgICAgICAgIDI5LjIwOTArLTAuNDc5MSAgICAgICAgICBtaWdodCBiZSAx
LjAxMTl4IGZhc3RlcgogICBhYmMtc2ltcGxlLWJhY2t3YXJkLWxvb3AgICAgICAgICAgICAgICAg
ICAgICAgICAgIDI1LjMyMzIrLTIuMzA4MSAgICAgICAgICAgMjMuODA5MystMS4zODU2ICAgICAg
ICAgIG1pZ2h0IGJlIDEuMDYzNnggZmFzdGVyCiAgIGFiYy1zaW1wbGUtZm9yd2FyZC1sb29wICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMjMuMzQ3OCstMC43NDQzICAgICA/ICAgICAyMy43MjMz
Ky0xLjIzMTkgICAgICAgID8gbWlnaHQgYmUgMS4wMTYxeCBzbG93ZXIKICAgYWJjLXNraXBweS1s
b29wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMC4zNDMwKy0wLjMwMTAgICAg
ID8gICAgIDIwLjkyODgrLTEuNTkzOSAgICAgICAgPyBtaWdodCBiZSAxLjAyODh4IHNsb3dlcgog
ICBhYnMtYm9vbGVhbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjIz
NjUrLTAuMDYyNSAgICAgICAgICAgIDIuMjA0NCstMC4wMjI1ICAgICAgICAgIG1pZ2h0IGJlIDEu
MDE0NnggZmFzdGVyCiAgIGFkYXB0LXRvLWRvdWJsZS1kaXZpZGUgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMTQuNDg0NSstMC44NjM0ICAgICA/ICAgICAxNS41MDY2Ky0wLjkwNzYgICAgICAg
ID8gbWlnaHQgYmUgMS4wNzA2eCBzbG93ZXIKICAgYWxpYXNlZC1hcmd1bWVudHMtZ2V0Ynl2YWwg
ICAgICAgICAgICAgICAgICAgICAgICAgMS4wMDI2Ky0wLjA2ODMgICAgID8gICAgICAxLjA1MTQr
LTAuMTIzOSAgICAgICAgPyBtaWdodCBiZSAxLjA0ODd4IHNsb3dlcgogICBhbGxvY2F0ZS1iaWct
b2JqZWN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjI3MTMrLTAuMTA2OCAgICAg
PyAgICAgIDIuMjc4MystMC4xNTQzICAgICAgICA/CiAgIGFyZ3VtZW50cy1uYW1lZC1hbmQtcmVm
bGVjdGl2ZSAgICAgICAgICAgICAgICAgICAgIDcuNzgxNSstMC40NTQxICAgICAgICAgICAgNy41
MzcwKy0wLjEwNjkgICAgICAgICAgbWlnaHQgYmUgMS4wMzI0eCBmYXN0ZXIKICAgYXJndW1lbnRz
LW91dC1vZi1ib3VuZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgNi40OTE2Ky0wLjIzOTEg
ICAgICEgICAgICA5LjgyNTgrLTAuNDcxNCAgICAgICAgISBkZWZpbml0ZWx5IDEuNTEzNnggc2xv
d2VyCiAgIGFyZ3VtZW50cy1zdHJpY3QtbW9kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
MTUuNTY4MSstMC4zOTM5ICAgICA/ICAgICAxNi42MjI3Ky0xLjI1MDIgICAgICAgID8gbWlnaHQg
YmUgMS4wNjc3eCBzbG93ZXIKICAgYXJndW1lbnRzICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgNi42MDkzKy0wLjIyNjQgICAgICAgICAgICA2LjU0NjkrLTAuMTcxMSAg
ICAgICAgCiAgIGFyaXR5LW1pc21hdGNoLWlubGluaW5nICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDAuNzc2NSstMC4wNTA5ICAgICA/ICAgICAgMC43NzgxKy0wLjA3NTEgICAgICAgID8KICAg
YXJyYXktYWNjZXNzLXBvbHltb3JwaGljLXN0cnVjdHVyZSAgICAgICAgICAgICAgICAgMy42MDIw
Ky0wLjEzMTUgICAgID8gICAgICA0LjEwNTQrLTAuNDg0OSAgICAgICAgPyBtaWdodCBiZSAxLjEz
OTh4IHNsb3dlcgogICBhcnJheS1ub25hcnJheS1wb2x5bW9yaHBpYy1hY2Nlc3MgICAgICAgICAg
ICAgICAgIDIxLjcyMjUrLTEuMjg3NiAgICAgICAgICAgMjEuNjIzNCstMS45Mjc1ICAgICAgICAK
ICAgYXJyYXktcHJvdG90eXBlLWV2ZXJ5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2OS42
MTY1Ky0wLjU4NDMgICAgID8gICAgIDcxLjE3OTErLTMuNDM0MCAgICAgICAgPyBtaWdodCBiZSAx
LjAyMjR4IHNsb3dlcgogICBhcnJheS1wcm90b3R5cGUtZm9yRWFjaCAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDY5LjY1NDIrLTEuODIzOCAgICAgICAgICAgNjkuMTU2OSstMC43Njk4ICAgICAg
ICAKICAgYXJyYXktcHJvdG90eXBlLW1hcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4
NC40ODkxKy0yOC45NDY2ICAgICAgICAgIDczLjE4MzgrLTIuMTM0NiAgICAgICAgICBtaWdodCBi
ZSAxLjE1NDV4IGZhc3RlcgogICBhcnJheS1wcm90b3R5cGUtcmVkdWNlICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDY2LjEyNjUrLTAuMjAyMyAgICAgISAgICAgNjguMTk4MCstMC42MjIzICAg
ICAgICAhIGRlZmluaXRlbHkgMS4wMzEzeCBzbG93ZXIKICAgYXJyYXktcHJvdG90eXBlLXJlZHVj
ZVJpZ2h0ICAgICAgICAgICAgICAgICAgICAgICA5Mi44MzQxKy0zLjQyNTUgICAgICAgICAgIDkw
Ljc1MTMrLTAuODk2MCAgICAgICAgICBtaWdodCBiZSAxLjAyMjl4IGZhc3RlcgogICBhcnJheS1w
cm90b3R5cGUtc29tZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDY5Ljc0MzMrLTEuMTIw
MCAgICAgICAgICAgNjkuNTM0NystMC41NzE0ICAgICAgICAKICAgYXJyYXktc3BsaWNlLWNvbnRp
Z3VvdXMgICAgICAgICAgICAgICAgICAgICAgICAgICAyMS4zNzIyKy0wLjk2NTUgICAgICAgICAg
IDIxLjMxMzQrLTAuNjE0NyAgICAgICAgCiAgIGFycmF5LXdpdGgtZG91YmxlLWFkZCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDMuMTIzOCstMC4wNDU1ICAgICAgICAgICAgMy4xMjIyKy0w
LjA0MDAgICAgICAgIAogICBhcnJheS13aXRoLWRvdWJsZS1pbmNyZW1lbnQgICAgICAgICAgICAg
ICAgICAgICAgICAyLjY4NjkrLTAuMTIyNiAgICAgPyAgICAgIDIuNzQ2MSstMC4wOTk0ICAgICAg
ICA/IG1pZ2h0IGJlIDEuMDIyMHggc2xvd2VyCiAgIGFycmF5LXdpdGgtZG91YmxlLW11bC1hZGQg
ICAgICAgICAgICAgICAgICAgICAgICAgIDMuNTMxMystMC4wNzI0ICAgICAgICAgICAgMy40OTIy
Ky0wLjA3OTcgICAgICAgICAgbWlnaHQgYmUgMS4wMTEyeCBmYXN0ZXIKICAgYXJyYXktd2l0aC1k
b3VibGUtc3VtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi43OTc1Ky0wLjA2MzAgICAg
ICAgICAgICAyLjY2NzcrLTAuMTc2MyAgICAgICAgICBtaWdodCBiZSAxLjA0ODd4IGZhc3Rlcgog
ICBhcnJheS13aXRoLWludDMyLWFkZC1zdWIgICAgICAgICAgICAgICAgICAgICAgICAgICA0Ljcw
NjUrLTAuMTc5MiAgICAgPyAgICAgIDQuODI2MSstMC42MjI4ICAgICAgICA/IG1pZ2h0IGJlIDEu
MDI1NHggc2xvd2VyCiAgIGFycmF5LXdpdGgtaW50MzItb3ItZG91YmxlLXN1bSAgICAgICAgICAg
ICAgICAgICAgIDIuOTE4MSstMC4xNDI2ICAgICAgICAgICAgMi43MjM5Ky0wLjEyMzYgICAgICAg
ICAgbWlnaHQgYmUgMS4wNzEzeCBmYXN0ZXIKICAgQXJyYXlCdWZmZXItRGF0YVZpZXctYWxsb2Mt
bGFyZ2UtbG9uZy1saXZlZCAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDM4LjY4MzUrLTAuMjM1OCAgICAgICAgICAgMzguMjMwOCstMC42MDIy
ICAgICAgICAgIG1pZ2h0IGJlIDEuMDExOHggZmFzdGVyCiAgIEFycmF5QnVmZmVyLURhdGFWaWV3
LWFsbG9jLWxvbmctbGl2ZWQgICAgICAgICAgICAgMTUuMzAxNCstMS40Mzg3ICAgICA/ICAgICAx
Ni4xNDY4Ky0xLjc5OTggICAgICAgID8gbWlnaHQgYmUgMS4wNTUzeCBzbG93ZXIKICAgQXJyYXlC
dWZmZXItSW50MzJBcnJheS1ieXRlT2Zmc2V0ICAgICAgICAgICAgICAgICAgMy43MDIyKy0wLjE3
MDggICAgICAgICAgICAzLjYzNTIrLTAuMDU2NiAgICAgICAgICBtaWdodCBiZSAxLjAxODR4IGZh
c3RlcgogICBBcnJheUJ1ZmZlci1JbnQ4QXJyYXktYWxsb2MtbGFyZ2UtbG9uZy1saXZlZCAgIAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDM4LjYz
MzMrLTAuNDQ2MiAgICAgICAgICAgMzguMzc3NSstMC43ODAyICAgICAgICAKICAgQXJyYXlCdWZm
ZXItSW50OEFycmF5LWFsbG9jLWxvbmctbGl2ZWQtYnVmZmVyICAgCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjAuMTI3MSstMC4yNDE1ICAgICAg
ICAgICAyMC4wMDM4Ky0wLjI5NjUgICAgICAgIAogICBBcnJheUJ1ZmZlci1JbnQ4QXJyYXktYWxs
b2MtbG9uZy1saXZlZCAgICAgICAgICAgIDE0LjczMTkrLTEuODMzOSAgICAgICAgICAgMTQuNTYz
MystMi4wOTY3ICAgICAgICAgIG1pZ2h0IGJlIDEuMDExNnggZmFzdGVyCiAgIEFycmF5QnVmZmVy
LUludDhBcnJheS1hbGxvYyAgICAgICAgICAgICAgICAgICAgICAgMTIuODgwMystMS40NzIxICAg
ICA/ICAgICAxNC4yOTA5Ky0yLjIwMTcgICAgICAgID8gbWlnaHQgYmUgMS4xMDk1eCBzbG93ZXIK
ICAgYXJyb3dmdW5jdGlvbi1jYWxsLWluLWNsYXNzLWNvbnN0cnVjdG9yICAgICAgICAgICA2Ni42
NjM1Ky0wLjQ1ODIgICAgID8gICAgIDY4Ljc5NjMrLTMuMjMxNiAgICAgICAgPyBtaWdodCBiZSAx
LjAzMjB4IHNsb3dlcgogICBhcnJvd2Z1bmN0aW9uLWNhbGwtaW4tY2xhc3MtbWV0aG9kICAgICAg
ICAgICAgICAgIDE2LjYyMTErLTEuOTg2MCAgICAgICAgICAgMTUuOTc1MystMC40NzE5ICAgICAg
ICAgIG1pZ2h0IGJlIDEuMDQwNHggZmFzdGVyCiAgIGFycm93ZnVuY3Rpb24tY2FsbC1pbi1mdW5j
dGlvbiAgICAgICAgICAgICAgICAgICAgMTEuMzk0NistMC40MDY2ICAgICA/ICAgICAxMS41NDI2
Ky0wLjYxOTIgICAgICAgID8gbWlnaHQgYmUgMS4wMTMweCBzbG93ZXIKICAgYXJyb3dmdW5jdGlv
bi1jYWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOS4yOTkwKy0wLjUzNzMgICAg
ID8gICAgICA5LjM1MDcrLTAuNTgzNyAgICAgICAgPwogICBhc21qc19ib29sX2J1ZyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3LjQ1ODkrLTAuMjA0MyAgICAgPyAgICAgIDcu
ODI2NistMC4yOTcxICAgICAgICA/IG1pZ2h0IGJlIDEuMDQ5M3ggc2xvd2VyCiAgIGFzc2lnbi1j
dXN0b20tc2V0dGVyLXBvbHltb3JwaGljICAgICAgICAgICAgICAgICAgIDIuNTExNSstMC4wMzE3
ICAgICA/ICAgICAgMi42MTY3Ky0wLjE0MzkgICAgICAgID8gbWlnaHQgYmUgMS4wNDE5eCBzbG93
ZXIKICAgYXNzaWduLWN1c3RvbS1zZXR0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
My44NzM5Ky0wLjA5NTUgICAgICAgICAgICAzLjc5MzMrLTAuMDM0NiAgICAgICAgICBtaWdodCBi
ZSAxLjAyMTJ4IGZhc3RlcgogICBiYXNpYy1zZXQgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA3LjY5MTIrLTEuMzkwNyAgICAgICAgICAgIDcuMTE0NCstMC43NjIwICAg
ICAgICAgIG1pZ2h0IGJlIDEuMDgxMXggZmFzdGVyCiAgIGJpZy1pbnQtbXVsICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuMjA3MSstMC4wNjczICAgICAgICAgICAgMy4x
MTAzKy0wLjA0MTYgICAgICAgICAgbWlnaHQgYmUgMS4wMzExeCBmYXN0ZXIKICAgYm9vbGVhbi10
ZXN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy4xMjQ3Ky0wLjExMzYg
ICAgIF4gICAgICAyLjcxMTgrLTAuMDE4OSAgICAgICAgXiBkZWZpbml0ZWx5IDEuMTUyM3ggZmFz
dGVyCiAgIGJvdW5kLWZ1bmN0aW9uLWNhbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDkuNDE3NCstMC4xNjUxICAgICA/ICAgICAgOS42NzMxKy0wLjMyODggICAgICAgID8gbWlnaHQg
YmUgMS4wMjcxeCBzbG93ZXIKICAgYnJhbmNoLWZvbGQgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMy41OTIyKy0wLjExNTMgICAgID8gICAgICAzLjY1ODYrLTAuMjMzMCAg
ICAgICAgPyBtaWdodCBiZSAxLjAxODV4IHNsb3dlcgogICBicmFuY2gtb24tc3RyaW5nLWFzLWJv
b2xlYW4gICAgICAgICAgICAgICAgICAgICAgIDExLjIyODMrLTEuNDk1MSAgICAgICAgICAgMTAu
MDYzMCstMC43MDU4ICAgICAgICAgIG1pZ2h0IGJlIDEuMTE1OHggZmFzdGVyCiAgIGJ1Zy0xNTM0
MzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuNzAyMistMC4yMjQ1
ICAgICAgICAgICAgMi42MjQ4Ky0wLjA0OTQgICAgICAgICAgbWlnaHQgYmUgMS4wMjk1eCBmYXN0
ZXIKICAgYnVpbGQtbGFyZ2Utb2JqZWN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAy
OS44NjY1Ky0wLjEzMTUgICAgICAgICAgIDI5LjU5NzUrLTAuMzMzOCAgICAgICAgCiAgIGJ5LXZh
bC1nZW5lcmljICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuMDU5MystMC4y
MDM2ICAgICAgICAgICAgNC4wNDczKy0wLjMxMDQgICAgICAgIAogICBjYWxsLXNwcmVhZC1hcHBs
eSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIyLjM4MDUrLTAuMzczNiAgICAgPyAg
ICAgMjIuNTA1MistMC41NzUyICAgICAgICA/CiAgIGNhbGwtc3ByZWFkLWNhbGwgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMjYuNzEyNystMS4xNjA2ICAgICAgICAgICAyNi4xNjA4
Ky0wLjUyMTEgICAgICAgICAgbWlnaHQgYmUgMS4wMjExeCBmYXN0ZXIKICAgY2FwdHVyZWQtYXNz
aWdubWVudHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC4zNTY5Ky0wLjAzMzUgICAg
ID8gICAgICAwLjM2MDkrLTAuMDI4OCAgICAgICAgPyBtaWdodCBiZSAxLjAxMTR4IHNsb3dlcgog
ICBjYXN0LWludC10by1kb3VibGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0Ljc3
NDgrLTAuMTE3MyAgICAgICAgICAgIDQuNzU4NistMC4wNjY0ICAgICAgICAKICAgY2VsbC1hcmd1
bWVudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi43MTIzKy0wLjE0Mzkg
ICAgID8gICAgICAyLjg3MzMrLTAuMjM2OCAgICAgICAgPyBtaWdodCBiZSAxLjA1OTN4IHNsb3dl
cgogICBjZmctc2ltcGxpZnkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAy
LjcyNzQrLTAuMDIwNCAgICAgICAgICAgIDIuNzIxOCstMC4xMTI5ICAgICAgICAKICAgY2hhaW4t
Z2V0dGVyLWFjY2VzcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMC44NTUxKy0wLjU5
OTEgICAgICAgICAgIDEwLjcwODArLTAuMzg2NSAgICAgICAgICBtaWdodCBiZSAxLjAxMzd4IGZh
c3RlcgogICBjbXBlcS1vYmotdG8tb2JqLW90aGVyICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA3Ljk3OTIrLTAuNDEwNyAgICAgICAgICAgIDcuOTAzMCstMC4yMTMzICAgICAgICAKICAgY29u
c3RhbnQtdGVzdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC44NjA0Ky0w
LjUwNDIgICAgICAgICAgICA0LjU5MjArLTAuMjMxNiAgICAgICAgICBtaWdodCBiZSAxLjA1ODR4
IGZhc3RlcgogICBjcmVhdGUtbG90cy1vZi1mdW5jdGlvbnMgICAgICAgICAgICAgICAgICAgICAg
ICAgICA4LjU2OTQrLTAuMzM1MiAgICAgPyAgICAgIDguOTAzNystMC41MDY1ICAgICAgICA/IG1p
Z2h0IGJlIDEuMDM5MHggc2xvd2VyCiAgIGNzZS1uZXctYXJyYXktYnVmZmVyICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDIuMTQ0NystMC4xMjY0ICAgICAgICAgICAgMi4wOTUyKy0wLjA0
MzkgICAgICAgICAgbWlnaHQgYmUgMS4wMjM2eCBmYXN0ZXIKICAgY3NlLW5ldy1hcnJheSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi4xMTcxKy0wLjAwOTMgICAgID8gICAg
ICAyLjEzODMrLTAuMTAzMiAgICAgICAgPwogICBjdXN0b20tc2V0dGVyLWdldHRlci1hcy1wdXQt
Z2V0LWJ5LWlkICAgICAgICAgICAgICAwLjQxMzIrLTAuMDE3MSAgICAgPyAgICAgIDAuNDY2Nyst
MC4wOTc1ICAgICAgICA/IG1pZ2h0IGJlIDEuMTI5NHggc2xvd2VyCiAgIERhdGFWaWV3LWN1c3Rv
bS1wcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgNDMuODMyMSstMC40NTUzICAgICAg
ICAgICA0My4wMTc0Ky0yLjA1OTcgICAgICAgICAgbWlnaHQgYmUgMS4wMTg5eCBmYXN0ZXIKICAg
ZGVsYXktdGVhci1vZmYtYXJndW1lbnRzLXN0cmljdG1vZGUgICAgICAgICAgICAgICAgNC4zMDg2
Ky0wLjc0NDggICAgICAgICAgICA0LjI5MTYrLTAuNTA3NiAgICAgICAgCiAgIGRlbHRhYmx1ZS1m
b3Itb2YgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzEuOTY1NystMC4yOTc0ICAg
ICA/ICAgICAzMi4zMTU3Ky0wLjgzMjAgICAgICAgID8gbWlnaHQgYmUgMS4wMTEweCBzbG93ZXIK
ICAgZGVsdGFibHVlLXZhcmFyZ3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzNS45
NTA5Ky0wLjIxODQgICAgID8gICAgIDM2LjA5MTMrLTAuMzg3OSAgICAgICAgPwogICBkZXN0cnVj
dHVyaW5nLWFyZ3VtZW50cyAgICAgICAgICAgICAgICAgICAgICAgICAgIDUzLjM0ODYrLTAuMjk4
NyAgICAgISAgICAgNTUuNTkwNystMS41NzQ5ICAgICAgICAhIGRlZmluaXRlbHkgMS4wNDIweCBz
bG93ZXIKICAgZGVzdHJ1Y3R1cmluZy1wYXJhbWV0ZXJzLW92ZXJyaWRkZW4tYnktZnVuY3Rpb24g
ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
MC4zNzk1Ky0wLjAyODAgICAgICAgICAgICAwLjM2MDUrLTAuMDA3NSAgICAgICAgICBtaWdodCBi
ZSAxLjA1Mjd4IGZhc3RlcgogICBkZXN0cnVjdHVyaW5nLXN3YXAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA0LjMzMTcrLTAuMDUyOSAgICAgPyAgICAgIDQuNTM5OSstMC41NzU3ICAg
ICAgICA/IG1pZ2h0IGJlIDEuMDQ4MXggc2xvd2VyCiAgIGRpcmVjdC1hcmd1bWVudHMtZ2V0Ynl2
YWwgICAgICAgICAgICAgICAgICAgICAgICAgIDEuMDIxNSstMC4wODg2ICAgICA/ICAgICAgMS4y
MTg1Ky0wLjIyODEgICAgICAgID8gbWlnaHQgYmUgMS4xOTI4eCBzbG93ZXIKICAgZGlyZWN0LWFy
Z3VtZW50cy1sZW5ndGggICAgICAgICAgICAgICAgICAgICAgICAgICAgNi43MDk0Ky0wLjE0NDEg
ICAgICAgICAgICA2LjY5MTIrLTAuMDYwNiAgICAgICAgCiAgIGRpcmVjdC1hcmd1bWVudHMtb3Zl
cnJpZGRlbi1sZW5ndGggICAgICAgICAgICAgICAgIDcuMDUxNystMS4xODQ3ICAgICAgICAgICAg
Ni45MjEzKy0wLjQ4ODcgICAgICAgICAgbWlnaHQgYmUgMS4wMTg4eCBmYXN0ZXIKICAgZGlyZWN0
LWFyZ3VtZW50cy1wb3NzaWJseS1vdmVycmlkZGVuLWxlbmd0aCAgIAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2Ljg5MTArLTAuNDAxMiAgICAg
PyAgICAgIDcuOTE2MCstMS4wNzYzICAgICAgICA/IG1pZ2h0IGJlIDEuMTQ4N3ggc2xvd2VyCiAg
IGRpdi1ib29sZWFuLWRvdWJsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuMDU4
MSstMC40MTM0ICAgICAgICAgICAgMy44NjM0Ky0wLjA0NzcgICAgICAgICAgbWlnaHQgYmUgMS4w
NTA0eCBmYXN0ZXIKICAgZGl2LWJvb2xlYW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgNy4xNzAzKy0wLjEwNDEgICAgICAgICAgICA3LjA5MjcrLTAuMDYwNSAgICAgICAg
ICBtaWdodCBiZSAxLjAxMDl4IGZhc3RlcgogICBkb3VibGUtZ2V0LWJ5LXZhbC1vdXQtb2YtYm91
bmRzICAgICAgICAgICAgICAgICAgICA0LjMxMzgrLTAuMjkwNCAgICAgICAgICAgIDQuMTIwMSst
MC4wNTUxICAgICAgICAgIG1pZ2h0IGJlIDEuMDQ3MHggZmFzdGVyCiAgIGRvdWJsZS1wb2xsdXRp
b24tZ2V0Ynl2YWwgICAgICAgICAgICAgICAgICAgICAgICAgIDguMTU1MistMC4zOTQzICAgICAg
ICAgICAgNy45MDQ4Ky0wLjI4MzAgICAgICAgICAgbWlnaHQgYmUgMS4wMzE3eCBmYXN0ZXIKICAg
ZG91YmxlLXBvbGx1dGlvbi1wdXRieW9mZnNldCAgICAgICAgICAgICAgICAgICAgICAgMy40MTYx
Ky0wLjIxODMgICAgID8gICAgICAzLjQxOTQrLTAuMDc3NCAgICAgICAgPwogICBkb3VibGUtcmVh
bC11c2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI5LjU2NTErLTMuNzA1MyAg
ICAgICAgICAgMjUuMzI5NystMy40NDA5ICAgICAgICAgIG1pZ2h0IGJlIDEuMTY3MnggZmFzdGVy
CiAgIGRvdWJsZS10by1pbnQzMi10eXBlZC1hcnJheS1uby1pbmxpbmUgICAgICAgICAgICAgIDIu
Mjc0OCstMC4yMTIxICAgICAgICAgICAgMi4xMzgzKy0wLjA1MTUgICAgICAgICAgbWlnaHQgYmUg
MS4wNjM4eCBmYXN0ZXIKICAgZG91YmxlLXRvLWludDMyLXR5cGVkLWFycmF5ICAgICAgICAgICAg
ICAgICAgICAgICAgMi4xMzE2Ky0wLjI0OTggICAgICAgICAgICAyLjAyNTgrLTAuMDM3MyAgICAg
ICAgICBtaWdodCBiZSAxLjA1MjN4IGZhc3RlcgogICBkb3VibGUtdG8tdWludDMyLXR5cGVkLWFy
cmF5LW5vLWlubGluZSAgICAgICAgICAgICAyLjQxNDcrLTAuMzQ4OCAgICAgICAgICAgIDIuMzA1
MistMC4yNTEyICAgICAgICAgIG1pZ2h0IGJlIDEuMDQ3NXggZmFzdGVyCiAgIGRvdWJsZS10by11
aW50MzItdHlwZWQtYXJyYXkgICAgICAgICAgICAgICAgICAgICAgIDIuMTM0NystMC4wODAyICAg
ICAgICAgICAgMi4xMDc1Ky0wLjAyMzAgICAgICAgICAgbWlnaHQgYmUgMS4wMTI5eCBmYXN0ZXIK
ICAgZWxpZGFibGUtbmV3LW9iamVjdC1kYWcgICAgICAgICAgICAgICAgICAgICAgICAgICAyMC4w
MTQ1Ky0wLjk5NDYgICAgID8gICAgIDIwLjEzOTkrLTAuNTkyMSAgICAgICAgPwogICBlbGlkYWJs
ZS1uZXctb2JqZWN0LXJvZmxjb3B0ZXIgICAgICAgICAgICAgICAgICAgIDIwLjA5ODUrLTEuMTgz
MiAgICAgICAgICAgMTkuNjIzNSstMC40NTM0ICAgICAgICAgIG1pZ2h0IGJlIDEuMDI0MnggZmFz
dGVyCiAgIGVsaWRhYmxlLW5ldy1vYmplY3QtdGhlbi1jYWxsICAgICAgICAgICAgICAgICAgICAg
MTcuNjgyNCstMS4xNTU4ICAgICAgICAgICAxNy4yMDE3Ky0wLjM5MTAgICAgICAgICAgbWlnaHQg
YmUgMS4wMjc5eCBmYXN0ZXIKICAgZWxpZGFibGUtbmV3LW9iamVjdC10cmVlICAgICAgICAgICAg
ICAgICAgICAgICAgICAyMC4zNjQ2Ky0wLjY1MjMgICAgICAgICAgIDE5LjcyNjQrLTAuNjY0NCAg
ICAgICAgICBtaWdodCBiZSAxLjAzMjR4IGZhc3RlcgogICBlbXB0eS1zdHJpbmctcGx1cy1pbnQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjU0OTkrLTAuMTAwNCAgICAgPyAgICAgIDQu
NjMyOCstMC4yNzIwICAgICAgICA/IG1pZ2h0IGJlIDEuMDE4Mnggc2xvd2VyCiAgIGVtc2NyaXB0
ZW4tY3ViZTJoYXNoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjMuNjA3OCstMC4zODE2
ICAgICAgICAgICAyMy41OTg2Ky0wLjI5NjIgICAgICAgIAogICBleGl0LWxlbmd0aC1vbi1wbGFp
bi1vYmplY3QgICAgICAgICAgICAgICAgICAgICAgICA4LjM4MzMrLTAuNjYzMSAgICAgICAgICAg
IDguMzY2NystMC4zNDI0ICAgICAgICAKICAgZXh0ZXJuYWwtYXJndW1lbnRzLWdldGJ5dmFsICAg
ICAgICAgICAgICAgICAgICAgICAgMS4yMjkyKy0wLjM0MjUgICAgICAgICAgICAxLjExNTMrLTAu
MDgyMiAgICAgICAgICBtaWdodCBiZSAxLjEwMjJ4IGZhc3RlcgogICBleHRlcm5hbC1hcmd1bWVu
dHMtcHV0Ynl2YWwgICAgICAgICAgICAgICAgICAgICAgICAyLjA2NTErLTAuMTgzNCAgICAgPyAg
ICAgIDIuMDcxMCstMC4xNDk1ICAgICAgICA/CiAgIGZpeGVkLXR5cGVkLWFycmF5LXN0b3JhZ2Ut
dmFyLWluZGV4ICAgICAgICAgICAgICAgIDEuMzMxMSstMC4wMzkzICAgICA/ICAgICAgMS4zODUz
Ky0wLjA3ODcgICAgICAgID8gbWlnaHQgYmUgMS4wNDA3eCBzbG93ZXIKICAgZml4ZWQtdHlwZWQt
YXJyYXktc3RvcmFnZSAgICAgICAgICAgICAgICAgICAgICAgICAgMS4wNTg0Ky0wLjAzNzcgICAg
ID8gICAgICAxLjA3MTcrLTAuMDc3NCAgICAgICAgPyBtaWdodCBiZSAxLjAxMjZ4IHNsb3dlcgog
ICBGbG9hdDMyQXJyYXktbWF0cml4LW11bHQgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjQ3
NDMrLTAuMTEzMyAgICAgPyAgICAgIDQuNzYyNistMC4zNjA2ICAgICAgICA/IG1pZ2h0IGJlIDEu
MDY0NHggc2xvd2VyCiAgIEZsb2F0MzJBcnJheS10by1GbG9hdDY0QXJyYXktc2V0ICAgICAgICAg
ICAgICAgICAgMzguMTg1MistMC43MTk2ICAgICA/ICAgICAzOS41MDU4Ky0zLjQ2NzUgICAgICAg
ID8gbWlnaHQgYmUgMS4wMzQ2eCBzbG93ZXIKICAgRmxvYXQ2NEFycmF5LWFsbG9jLWxvbmctbGl2
ZWQgICAgICAgICAgICAgICAgICAgICA2OC4yMjQwKy0wLjQzOTYgICAgICAgICAgIDY3LjQ1MDIr
LTAuNTg0MCAgICAgICAgICBtaWdodCBiZSAxLjAxMTV4IGZhc3RlcgogICBGbG9hdDY0QXJyYXkt
dG8tSW50MTZBcnJheS1zZXQgICAgICAgICAgICAgICAgICAgIDQ3LjgzMjMrLTEuMTc4MCAgICAg
ICAgICAgNDcuNDQ3NistMC42NTE3ICAgICAgICAKICAgZm9sZC1kb3VibGUtdG8taW50ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAxMi40NjAxKy0wLjc2ODQgICAgID8gICAgIDEyLjUx
NTIrLTAuNjMzOCAgICAgICAgPwogICBmb2xkLWdldC1ieS1pZC10by1tdWx0aS1nZXQtYnktb2Zm
c2V0LXJhcmUtaW50ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDYuNjc4OCstMC4wOTI1ICAgICAgICAgICAgNi41ODExKy0wLjA4NzEgICAg
ICAgICAgbWlnaHQgYmUgMS4wMTQ5eCBmYXN0ZXIKICAgZm9sZC1nZXQtYnktaWQtdG8tbXVsdGkt
Z2V0LWJ5LW9mZnNldCAgICAgICAgICAgICAgNi4yMDE3Ky0wLjk5NjIgICAgICAgICAgICA1Ljc1
MjYrLTAuMTI4NCAgICAgICAgICBtaWdodCBiZSAxLjA3ODF4IGZhc3RlcgogICBmb2xkLW11bHRp
LWdldC1ieS1vZmZzZXQtdG8tZ2V0LWJ5LW9mZnNldCAgIAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjE3MzIrLTAuMTQzOSAgICAgICAgICAg
IDQuMTY3NSstMC4wODU4ICAgICAgICAKICAgZm9sZC1tdWx0aS1nZXQtYnktb2Zmc2V0LXRvLXBv
bHktZ2V0LWJ5LW9mZnNldCAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA0LjEwOTArLTAuMDU2OSAgICAgPyAgICAgIDQuOTc3MCstMi4xMjg4
ICAgICAgICA/IG1pZ2h0IGJlIDEuMjExMnggc2xvd2VyCiAgIGZvbGQtbXVsdGktcHV0LWJ5LW9m
ZnNldC10by1wb2x5LXB1dC1ieS1vZmZzZXQgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgNC40NTM0Ky0wLjE2NTcgICAgIF4gICAgICA0LjE4
NTIrLTAuMDg2NyAgICAgICAgXiBkZWZpbml0ZWx5IDEuMDY0MXggZmFzdGVyCiAgIGZvbGQtbXVs
dGktcHV0LWJ5LW9mZnNldC10by1wdXQtYnktb2Zmc2V0ICAgCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuNjUzMystMC4wNzgwICAgICA/ICAg
ICAgNC4yMTY3Ky0xLjMzMzkgICAgICAgID8gbWlnaHQgYmUgMS4xNTQyeCBzbG93ZXIKICAgZm9s
ZC1tdWx0aS1wdXQtYnktb2Zmc2V0LXRvLXJlcGxhY2Utb3ItdHJhbnNpdGlvbi1wdXQtYnktb2Zm
c2V0ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDYuNzQ3MSstMC4xOTk2ICAgICA/ICAgICAgNi44MDMxKy0wLjMwMzYgICAgICAgID8KICAg
Zm9sZC1wdXQtYnktaWQtdG8tbXVsdGktcHV0LWJ5LW9mZnNldCAgICAgICAgICAgICAgNi4zNTYy
Ky0wLjIwNDIgICAgICAgICAgICA2LjMwMjIrLTAuMjY1MCAgICAgICAgCiAgIGZvbGQtcHV0LWJ5
LXZhbC13aXRoLXN0cmluZy10by1tdWx0aS1wdXQtYnktb2Zmc2V0ICAgCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYuNDcyMSstMC4zNjA1ICAg
ICAgICAgICAgNi4zNDYwKy0wLjI1ODUgICAgICAgICAgbWlnaHQgYmUgMS4wMTk5eCBmYXN0ZXIK
ICAgZm9sZC1wdXQtYnktdmFsLXdpdGgtc3ltYm9sLXRvLW11bHRpLXB1dC1ieS1vZmZzZXQgICAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNi4y
MTUyKy0wLjEzOTggICAgID8gICAgICA2LjMzNjErLTAuMjgzOCAgICAgICAgPyBtaWdodCBiZSAx
LjAxOTV4IHNsb3dlcgogICBmb2xkLXB1dC1zdHJ1Y3R1cmUgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAzLjIwMzMrLTAuMTA0NCAgICAgPyAgICAgIDMuMjkwNistMC4zMDA3ICAgICAg
ICA/IG1pZ2h0IGJlIDEuMDI3Mnggc2xvd2VyCiAgIGZvci1vZi1pdGVyYXRlLWFycmF5LWVudHJp
ZXMgICAgICAgICAgICAgICAgICAgICAgIDkuNjQ3OSstMC4xNDkxICAgICA/ICAgICAgOS43MTQ2
Ky0wLjQ5NDcgICAgICAgID8KICAgZm9yLW9mLWl0ZXJhdGUtYXJyYXkta2V5cyAgICAgICAgICAg
ICAgICAgICAgICAgICAgNC4yMjczKy0wLjE3MDggICAgICAgICAgICA0LjEzMDcrLTAuMDI4MSAg
ICAgICAgICBtaWdodCBiZSAxLjAyMzR4IGZhc3RlcgogICBmb3Itb2YtaXRlcmF0ZS1hcnJheS12
YWx1ZXMgICAgICAgICAgICAgICAgICAgICAgICA0LjMyMzIrLTAuNjA4OSAgICAgICAgICAgIDQu
MDIzMystMC4wODM2ICAgICAgICAgIG1pZ2h0IGJlIDEuMDc0NXggZmFzdGVyCiAgIGZyb3VuZCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDkuNzcxNCstMC4yNDQz
ICAgICAgICAgICAgOS42MjY1Ky0wLjA5MTcgICAgICAgICAgbWlnaHQgYmUgMS4wMTUxeCBmYXN0
ZXIKICAgZnRsLWxpYnJhcnktaW5saW5pbmctZGF0YXZpZXcgICAgICAgICAgICAgICAgICAgICA1
Ni4yMDQ0Ky0xLjY0MzAgICAgICAgICAgIDU1LjgyNzQrLTEuNTQyNiAgICAgICAgCiAgIGZ0bC1s
aWJyYXJ5LWlubGluaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjIuNzk0MystMC41
Mjk0ICAgICA/ICAgICAyNC4xMzExKy0xLjkzMjkgICAgICAgID8gbWlnaHQgYmUgMS4wNTg2eCBz
bG93ZXIKICAgZnRsLXBvbHltb3JwaGljLWJpdGFuZCAgICAgICAgICAgICAgICAgICAgICAgICAg
IDEzNC40MjAwKy0yLjA2NzAgICAgICAgICAgMTMyLjkzNzkrLTAuNDg4NCAgICAgICAgICBtaWdo
dCBiZSAxLjAxMTF4IGZhc3RlcgogICBmdGwtcG9seW1vcnBoaWMtYml0b3IgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMTMzLjY0MjgrLTAuMjQ0MiAgICAgXiAgICAxMzIuNDQzMystMC45MzE4
ICAgICAgICBeIGRlZmluaXRlbHkgMS4wMDkxeCBmYXN0ZXIKICAgZnRsLXBvbHltb3JwaGljLWJp
dHhvciAgICAgICAgICAgICAgICAgICAgICAgICAgIDEzMy45NDAyKy0wLjY1MDMgICAgICAgICAg
MTMyLjg0ODQrLTAuNDg0NiAgICAgICAgCiAgIGZ0bC1wb2x5bW9ycGhpYy1kaXYgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA0NjcuNzY5NCstMTYuNTI2MiAgICA/ICAgIDQ2Ny45MDUzKy0x
NC45OTI0ICAgICAgID8KICAgZnRsLXBvbHltb3JwaGljLWxzaGlmdCAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDE2NC4wMzc1Ky0yLjQ0NDcgICAgICAgICAgMTYyLjQwMjIrLTEuMzY5NCAgICAg
ICAgICBtaWdodCBiZSAxLjAxMDF4IGZhc3RlcgogICBmdGwtcG9seW1vcnBoaWMtbXVsICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMjM2Ljg2MTArLTAuOTIzMSAgICAgICAgICAyMzUuMzAw
MCstMS45MTc4ICAgICAgICAKICAgZnRsLXBvbHltb3JwaGljLXJzaGlmdCAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDE2Mi40NzM1Ky0xLjIyMjQgICAgICAgICAgMTYxLjY2NzIrLTEuNjExNyAg
ICAgICAgCiAgIGZ0bC1wb2x5bW9ycGhpYy1TdHJpbmdGcm9tQ2hhckNvZGUgICAgICAgICAgICAg
ICAgNDMuMTY3OSstMi41NTQyICAgICA/ICAgICA0My40NTg2Ky0xLjkzMjIgICAgICAgID8KICAg
ZnRsLXBvbHltb3JwaGljLXN1YiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE4NS4zMDMz
Ky0yLjA1MDUgICAgIF4gICAgMTU3LjQyNzIrLTMuMDI2MiAgICAgICAgXiBkZWZpbml0ZWx5IDEu
MTc3MXggZmFzdGVyCiAgIGZ0bC1wb2x5bW9ycGhpYy11cnNoaWZ0ICAgICAgICAgICAgICAgICAg
ICAgICAgICAxNzYuNTYzNistNS44Mzc2ICAgICAgICAgIDE3My43MDg5Ky0wLjk4NDMgICAgICAg
ICAgbWlnaHQgYmUgMS4wMTY0eCBmYXN0ZXIKICAgZnVuY3Rpb24tY2FsbCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAxMC44MjQzKy0wLjg0NTAgICAgICAgICAgIDEwLjI5MDUr
LTAuMTcxNCAgICAgICAgICBtaWdodCBiZSAxLjA1MTl4IGZhc3RlcgogICBmdW5jdGlvbi1kb3Qt
YXBwbHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLjg4ODMrLTAuMTA4MiAgICAg
ICAgICAgIDEuODUwMystMC4wMzgzICAgICAgICAgIG1pZ2h0IGJlIDEuMDIwNXggZmFzdGVyCiAg
IGZ1bmN0aW9uLXRlc3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuMDIw
NystMC4wODE1ICAgICBeICAgICAgMi41MDkyKy0wLjAyNDIgICAgICAgIF4gZGVmaW5pdGVseSAx
LjIwMzl4IGZhc3RlcgogICBmdW5jdGlvbi13aXRoLWV2YWwgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDg2Ljk4OTIrLTIuMjgyNiAgICAgPyAgICAgODguNjIzOCstMy45NzI5ICAgICAg
ICA/IG1pZ2h0IGJlIDEuMDE4OHggc2xvd2VyCiAgIGdjc2UtcG9seS1nZXQtbGVzcy1vYnZpb3Vz
ICAgICAgICAgICAgICAgICAgICAgICAgIDguMzYwOSstMC41MTc1ICAgICA/ICAgICAgOC43Nzk0
Ky0wLjU3NDkgICAgICAgID8gbWlnaHQgYmUgMS4wNTAxeCBzbG93ZXIKICAgZ2NzZS1wb2x5LWdl
dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOC4xMzY2Ky0wLjEyNDUgICAg
ID8gICAgICA4LjMzOTErLTAuMzk0NCAgICAgICAgPyBtaWdodCBiZSAxLjAyNDl4IHNsb3dlcgog
ICBnY3NlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjI5
NzMrLTAuMDQ2MyAgICAgPyAgICAgIDMuMzk0MCstMC4xMzEwICAgICAgICA/IG1pZ2h0IGJlIDEu
MDI5M3ggc2xvd2VyCiAgIGdlbmVyYXRvci1jcmVhdGUgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDAuNjI0NCstMC4wMTc3ICAgICA/ICAgICAgMC42Mjk0Ky0wLjAyMzggICAgICAg
ID8KICAgZ2VuZXJhdG9yLWZpYiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEw
MC43MTkzKy05Ljc3NjQgICAgICAgICAgIDk1LjcxMTIrLTIuMzkwOCAgICAgICAgICBtaWdodCBi
ZSAxLjA1MjN4IGZhc3RlcgogICBnZW5lcmF0b3ItZnVuY3Rpb24tY3JlYXRlICAgICAgICAgICAg
ICAgICAgICAgICAgICA0LjMwMzUrLTAuODg1MSAgICAgICAgICAgIDMuODY3MSstMC40ODY2ICAg
ICAgICAgIG1pZ2h0IGJlIDEuMTEyOXggZmFzdGVyCiAgIGdlbmVyYXRvci1zdW5zcGlkZXItYWNj
ZXNzLW5zaWV2ZSAgICAgICAgICAgICAgICAgIDUuMzExNCstMC4wNTU5ICAgICA/ICAgICAgNS4z
NTI0Ky0wLjI0NzIgICAgICAgID8KICAgZ2VuZXJhdG9yLXdpdGgtc2V2ZXJhbC10eXBlcyAgICAg
ICAgICAgICAgICAgICAgIDMyMC4zMjU3Ky0xNC4yNDI3ICAgICAgICAgMzIwLjE5MTkrLTE1LjQy
MzggICAgICAgCiAgIGdldC1ieS1pZC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0
aW9uLXNpbXBsZSAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAyLjQwMTMrLTAuMjYyOCAgICAgICAgICAgIDIuMjU3NistMC4xMDIwICAgICAg
ICAgIG1pZ2h0IGJlIDEuMDYzN3ggZmFzdGVyCiAgIGdldC1ieS1pZC1iaW1vcnBoaWMtY2hlY2st
c3RydWN0dXJlLWVsaW1pbmF0aW9uICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDQuMjk0MystMC4wMTYwICAgICA/ICAgICAgNC40MDcxKy0w
LjIyMzcgICAgICAgID8gbWlnaHQgYmUgMS4wMjYzeCBzbG93ZXIKICAgZ2V0LWJ5LWlkLWNoYWlu
LWZyb20tdHJ5LWJsb2NrICAgICAgICAgICAgICAgICAgICAgMS44NjEyKy0wLjA1MDYgICAgID8g
ICAgICAyLjE4ODQrLTAuOTA3MiAgICAgICAgPyBtaWdodCBiZSAxLjE3NTh4IHNsb3dlcgogICBn
ZXQtYnktaWQtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uICAgICAgICAgICAgICAyLjk1NzIr
LTAuMTEzMyAgICAgPyAgICAgIDMuMDc2NSstMC4yOTI0ICAgICAgICA/IG1pZ2h0IGJlIDEuMDQw
NHggc2xvd2VyCiAgIGdldC1ieS1pZC1wcm90by1vci1zZWxmICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDkuMzYwMSstMS40OTUzICAgICAgICAgICAgOC4yMzY0Ky0wLjk0NzUgICAgICAgICAg
bWlnaHQgYmUgMS4xMzY0eCBmYXN0ZXIKICAgZ2V0LWJ5LWlkLXF1YWRtb3JwaGljLWNoZWNrLXN0
cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMi43NzA4Ky0wLjE3NzAgICAgID8gICAgICAyLjgy
MjgrLTAuMzc0NiAgICAgICAgPyBtaWdodCBiZSAxLjAxODh4IHNsb3dlcgogICBnZXQtYnktaWQt
c2VsZi1vci1wcm90byAgICAgICAgICAgICAgICAgICAgICAgICAgICA5LjE2NTkrLTEuNTA5NyAg
ICAgPyAgICAgIDkuMjE5NistMS42MjAxICAgICAgICA/CiAgIGdldC1ieS12YWwtb3V0LW9mLWJv
dW5kcyAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuOTc2NistMC4wOTQ2ICAgICA/ICAgICAg
NC4wMTU2Ky0wLjE3ODQgICAgICAgID8KICAgZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBo
aWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZSAgIAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjI1MzcrLTAuMjM4OCAgICAg
ICAgICAgIDMuMjE1OCstMC4wNTY2ICAgICAgICAgIG1pZ2h0IGJlIDEuMDExOHggZmFzdGVyCiAg
IGdldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5h
dGlvbiAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA2LjY5NzIrLTAuNDQ2NCAgICAgPyAgICAgIDcuMTcxMistMS4yMzY2ICAgICAgICA/IG1p
Z2h0IGJlIDEuMDcwOHggc2xvd2VyCiAgIGdldC1ieS12YWwtd2l0aC1zdHJpbmctY2hhaW4tZnJv
bS10cnktYmxvY2sgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMi4wNjI3Ky0wLjQxNjggICAgICAgICAgICAxLjg5ODgrLTAuMDcyNSAgICAg
ICAgICBtaWdodCBiZSAxLjA4NjN4IGZhc3RlcgogICBnZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNo
ZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbiAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA1LjY2MzcrLTAuMTY2MCAgICAgPyAgICAgIDYuNjA1
MystMi4wMzY4ICAgICAgICA/IG1pZ2h0IGJlIDEuMTY2M3ggc2xvd2VyCiAgIGdldC1ieS12YWwt
d2l0aC1zdHJpbmctcHJvdG8tb3Itc2VsZiAgICAgICAgICAgICAgMTAuMjk4NistMC4yNjM0ICAg
ICA/ICAgICAxMC41MDA3Ky0wLjQ3MTYgICAgICAgID8gbWlnaHQgYmUgMS4wMTk2eCBzbG93ZXIK
ICAgZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxp
bWluYXRpb24tc2ltcGxlICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDQuMjcxNistMC4xMzkwICAgICAgICAgICAgNC4yMDcxKy0wLjIxNjkg
ICAgICAgICAgbWlnaHQgYmUgMS4wMTUzeCBmYXN0ZXIKICAgZ2V0LWJ5LXZhbC13aXRoLXN0cmlu
Zy1zZWxmLW9yLXByb3RvICAgICAgICAgICAgICAxMC40MzM4Ky0wLjUzNjYgICAgID8gICAgIDEw
LjY2NDArLTAuMTU5NCAgICAgICAgPyBtaWdodCBiZSAxLjAyMjF4IHNsb3dlcgogICBnZXQtYnkt
dmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2lt
cGxlICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDIuNjg3MystMC4xMzkxICAgICAgICAgICAgMi42MDk3Ky0wLjAxNzMgICAgICAgICAgbWln
aHQgYmUgMS4wMjk3eCBmYXN0ZXIKICAgZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMt
Y2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDguODU0NSstMC4xNjU2ICAgICAgICAgICAgOC42
ODI4Ky0wLjA2NTMgICAgICAgICAgbWlnaHQgYmUgMS4wMTk4eCBmYXN0ZXIKICAgZ2V0LWJ5LXZh
bC13aXRoLXN5bWJvbC1jaGFpbi1mcm9tLXRyeS1ibG9jayAgIAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLjk0NjMrLTAuMTI1OSAgICAgICAg
ICAgIDEuOTM0MCstMC4wNzMyICAgICAgICAKICAgZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGVj
ay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24gICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgNi45Mzc5Ky0wLjE3NDUgICAgID8gICAgICA3LjI2MTkr
LTAuOTk2NCAgICAgICAgPyBtaWdodCBiZSAxLjA0Njd4IHNsb3dlcgogICBnZXQtYnktdmFsLXdp
dGgtc3ltYm9sLXByb3RvLW9yLXNlbGYgICAgICAgICAgICAgIDEwLjU0MTErLTAuNjI0NSAgICAg
ICAgICAgMTAuMjMzNCstMC4zNDI4ICAgICAgICAgIG1pZ2h0IGJlIDEuMDMwMXggZmFzdGVyCiAg
IGdldC1ieS12YWwtd2l0aC1zeW1ib2wtcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1p
bmF0aW9uLXNpbXBsZSAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAzLjMyNzUrLTAuMTY2MCAgICAgPyAgICAgIDMuNDA0NystMC4yODI5ICAg
ICAgICA/IG1pZ2h0IGJlIDEuMDIzMnggc2xvd2VyCiAgIGdldC1ieS12YWwtd2l0aC1zeW1ib2wt
c2VsZi1vci1wcm90byAgICAgICAgICAgICAgMTAuNzcyMCstMC40ODg1ICAgICAgICAgICAxMC41
OTc1Ky0wLjc0ODMgICAgICAgICAgbWlnaHQgYmUgMS4wMTY1eCBmYXN0ZXIKICAgZ2V0X2NhbGxl
ZV9tb25vbW9ycGhpYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi4xNjI2Ky0wLjEyNjgg
ICAgICAgICAgICAyLjE2MTgrLTAuMTY3NyAgICAgICAgCiAgIGdldF9jYWxsZWVfcG9seW1vcnBo
aWMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuOTU4OSstMC4xMTcwICAgICA/ICAgICAg
Mi45OTAyKy0wLjI2MjUgICAgICAgID8gbWlnaHQgYmUgMS4wMTA2eCBzbG93ZXIKICAgZ2V0dGVy
LW5vLWFjdGl2YXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi45MzAzKy0wLjAz
NzAgICAgID8gICAgICAyLjk0NTIrLTAuMTA0MCAgICAgICAgPwogICBnZXR0ZXItcHJvdG90eXBl
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1LjA4ODErLTEuMjk1MiAgICAgICAg
ICAgIDQuNzM5MCstMC40MzU2ICAgICAgICAgIG1pZ2h0IGJlIDEuMDczN3ggZmFzdGVyCiAgIGdl
dHRlci1yaWNoYXJkcy10cnktY2F0Y2ggICAgICAgICAgICAgICAgICAgICAgICA5MjcuMDYxNist
OS4wMjYyICAgICA/ICAgIDk0Mi4yMTkyKy0zOS4zMDkzICAgICAgID8gbWlnaHQgYmUgMS4wMTY0
eCBzbG93ZXIKICAgZ2V0dGVyLXJpY2hhcmRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA2MC4zMjM0Ky01LjUwMDcgICAgID8gICAgIDYzLjQ3NzcrLTEuNzU2MSAgICAgICAgPyBt
aWdodCBiZSAxLjA1MjN4IHNsb3dlcgogICBnZXR0ZXIgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAzLjA3OTMrLTAuMDc0NiAgICAgPyAgICAgIDMuMTU0OCstMC4x
MDk4ICAgICAgICA/IG1pZ2h0IGJlIDEuMDI0NXggc2xvd2VyCiAgIGdsb2JhbC1vYmplY3QtYWNj
ZXNzLXdpdGgtbXV0YXRpbmctc3RydWN0dXJlICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuOTg4MistMC4yNzYwICAgICBeICAgICAgNC41
OTc5Ky0wLjA4MjggICAgICAgIF4gZGVmaW5pdGVseSAxLjA4NDl4IGZhc3RlcgogICBnbG9iYWwt
dmFyLWNvbnN0LWluZmVyLWZpcmUtZnJvbS1vcHQgICAgICAgICAgICAgICAwLjc2NjUrLTAuMDgw
MyAgICAgPyAgICAgIDAuNzk5NistMC4wODY5ICAgICAgICA/IG1pZ2h0IGJlIDEuMDQzMnggc2xv
d2VyCiAgIGdsb2JhbC12YXItY29uc3QtaW5mZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDAuNTc0MistMC4wMzUyICAgICAgICAgICAgMC41NjQ1Ky0wLjAxNDAgICAgICAgICAgbWlnaHQg
YmUgMS4wMTcyeCBmYXN0ZXIKICAgaGFyZC1vdmVyZmxvdy1jaGVjay1lcXVhbCAgICAgICAgICAg
ICAgICAgICAgICAgICAyNC4zOTM1Ky0xLjUxODEgICAgICAgICAgIDIzLjgxMzIrLTEuNTE0NCAg
ICAgICAgICBtaWdodCBiZSAxLjAyNDR4IGZhc3RlcgogICBoYXJkLW92ZXJmbG93LWNoZWNrICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIzLjU4ODQrLTEuNTA3NiAgICAgPyAgICAgMjMu
NjY2OSstMi4wOTkxICAgICAgICA/CiAgIEhhc2hNYXAtcHV0LWdldC1pdGVyYXRlLWtleXMgICAg
ICAgICAgICAgICAgICAgICAgMjMuMzYyMSstMC43Mjk2ICAgICAgICAgICAyMi4yOTI4Ky0xLjM3
MjAgICAgICAgICAgbWlnaHQgYmUgMS4wNDgweCBmYXN0ZXIKICAgSGFzaE1hcC1wdXQtZ2V0LWl0
ZXJhdGUgICAgICAgICAgICAgICAgICAgICAgICAgICAyMy4wOTE1Ky0wLjIyNTkgICAgICAgICAg
IDIyLjQwMjUrLTEuMzgwOCAgICAgICAgICBtaWdodCBiZSAxLjAzMDh4IGZhc3RlcgogICBIYXNo
TWFwLXN0cmluZy1wdXQtZ2V0LWl0ZXJhdGUgICAgICAgICAgICAgICAgICAgIDI0LjgxNzcrLTAu
NjY2NyAgICAgICAgICAgMjMuNzIzNSstMC44MDA1ICAgICAgICAgIG1pZ2h0IGJlIDEuMDQ2MXgg
ZmFzdGVyCiAgIGhvaXN0LW1ha2Utcm9wZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDMuNzA5NCstMC4wNzgyICAgICA/ICAgICAgMy43ODEwKy0wLjU2NjUgICAgICAgID8gbWln
aHQgYmUgMS4wMTkzeCBzbG93ZXIKICAgaG9pc3QtcG9seS1jaGVjay1zdHJ1Y3R1cmUtZWZmZWN0
ZnVsLWxvb3AgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMi45ODk5Ky0wLjIxNDUgICAgID8gICAgICAyLjk5MDQrLTAuMTQyMiAgICAgICAg
PwogICBob2lzdC1wb2x5LWNoZWNrLXN0cnVjdHVyZSAgICAgICAgICAgICAgICAgICAgICAgICAy
LjAyNDYrLTAuMDYwOCAgICAgPyAgICAgIDIuMTIyNCstMC4yNDU0ICAgICAgICA/IG1pZ2h0IGJl
IDEuMDQ4M3ggc2xvd2VyCiAgIGltdWwtZG91YmxlLW9ubHkgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDMuMjM1NistMC4xMzM0ICAgICAgICAgICAgMy4xNTU0Ky0wLjE4MzMgICAg
ICAgICAgbWlnaHQgYmUgMS4wMjU0eCBmYXN0ZXIKICAgaW11bC1pbnQtb25seSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgNS4wNDgzKy0wLjE5NDEgICAgICAgICAgICA0Ljg4
OTkrLTAuMjAyNSAgICAgICAgICBtaWdodCBiZSAxLjAzMjR4IGZhc3RlcgogICBpbXVsLW1peGVk
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjk0NzIrLTAuMDkwMSAg
ICAgPyAgICAgIDMuMDc5MystMC4yNTMxICAgICAgICA/IG1pZ2h0IGJlIDEuMDQ0OHggc2xvd2Vy
CiAgIGluLWZvdXItY2FzZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTku
MTc0NistMy41NTY5ICAgICA/ICAgICAxOS42NDQ1Ky0xLjk0MjAgICAgICAgID8gbWlnaHQgYmUg
MS4wMjQ1eCBzbG93ZXIKICAgaW4tb25lLWNhc2UtZmFsc2UgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgNy43MDM4Ky0wLjEzNDggICAgICAgICAgICA3LjY3MDArLTAuMjI2NCAgICAg
ICAgCiAgIGluLW9uZS1jYXNlLXRydWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDcuODk5MistMC4zODI1ICAgICAgICAgICAgNy42NzAwKy0wLjI3MDggICAgICAgICAgbWlnaHQg
YmUgMS4wMjk5eCBmYXN0ZXIKICAgaW4tdHdvLWNhc2VzICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgNy44NTYwKy0wLjE4ODUgICAgICAgICAgICA3Ljc3MjUrLTAuMzcyMyAg
ICAgICAgICBtaWdodCBiZSAxLjAxMDd4IGZhc3RlcgogICBpbmRleGVkLXByb3BlcnRpZXMtaW4t
b2JqZWN0cyAgICAgICAgICAgICAgICAgICAgICAyLjc3NTErLTAuMTQzOCAgICAgICAgICAgIDIu
NzQ4OSstMC4wMzY5ICAgICAgICAKICAgaW5mZXItY2xvc3VyZS1jb25zdC10aGVuLW1vdi1uby1p
bmxpbmUgICAgICAgICAgICAgMi43NTMzKy0wLjAyMTkgICAgICAgICAgICAyLjc0MTkrLTAuMDI0
MCAgICAgICAgCiAgIGluZmVyLWNsb3N1cmUtY29uc3QtdGhlbi1tb3YgICAgICAgICAgICAgICAg
ICAgICAgIDYuNTQzOSstMC4xODY0ICAgICAgICAgICAgNi41MTMyKy0wLjExNzIgICAgICAgIAog
ICBpbmZlci1jbG9zdXJlLWNvbnN0LXRoZW4tcHV0LXRvLXNjb3BlLW5vLWlubGluZSAgIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDExLjAxNTcr
LTAuNDQ1OCAgICAgPyAgICAgMTEuMzYwNystMC4zOTk1ICAgICAgICA/IG1pZ2h0IGJlIDEuMDMx
M3ggc2xvd2VyCiAgIGluZmVyLWNsb3N1cmUtY29uc3QtdGhlbi1wdXQtdG8tc2NvcGUgICAgICAg
ICAgICAgMjIuNzg1MSstMS40Njk4ICAgICA/ICAgICAyMy4yODIxKy0xLjYzMzMgICAgICAgID8g
bWlnaHQgYmUgMS4wMjE4eCBzbG93ZXIKICAgaW5mZXItY2xvc3VyZS1jb25zdC10aGVuLXJlZW50
ZXItbm8taW5saW5lICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgNTAuMTM3NystMy4wMjEzICAgICA/ICAgICA1MS42NjIwKy0zLjY0MzIgICAg
ICAgID8gbWlnaHQgYmUgMS4wMzA0eCBzbG93ZXIKICAgaW5mZXItY2xvc3VyZS1jb25zdC10aGVu
LXJlZW50ZXIgICAgICAgICAgICAgICAgICAyMy4zOTU4Ky0xLjM4MDUgICAgID8gICAgIDIzLjQ0
ODQrLTEuMjkwOSAgICAgICAgPwogICBpbmZlci1jb25zdGFudC1nbG9iYWwtcHJvcGVydHkgICAg
ICAgICAgICAgICAgICAgICAzLjI4MTArLTAuMDM4MiAgICAgPyAgICAgIDMuMzY1NystMC4xNTg2
ICAgICAgICA/IG1pZ2h0IGJlIDEuMDI1OHggc2xvd2VyCiAgIGluZmVyLWNvbnN0YW50LXByb3Bl
cnR5ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuMTE2NCstMC4xMDA4ICAgICA/ICAgICAg
Mi4xMTc5Ky0wLjA3MDggICAgICAgID8KICAgaW5mZXItb25lLXRpbWUtY2xvc3VyZS10ZW4tdmFy
cyAgICAgICAgICAgICAgICAgICAgNi40MjA0Ky0wLjE3ODIgICAgID8gICAgICA2LjQ2NjErLTAu
MTM4NCAgICAgICAgPwogICBpbmZlci1vbmUtdGltZS1jbG9zdXJlLXR3by12YXJzICAgICAgICAg
ICAgICAgICAgICA2LjE2MDArLTAuMTc3NiAgICAgICAgICAgIDYuMTUyOSstMC4yNzIzICAgICAg
ICAKICAgaW5mZXItb25lLXRpbWUtY2xvc3VyZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ni4xOTg5Ky0wLjQyNDEgICAgID8gICAgICA2LjIxMjMrLTAuMTQ2NSAgICAgICAgPwogICBpbmZl
ci1vbmUtdGltZS1kZWVwLWNsb3N1cmUgICAgICAgICAgICAgICAgICAgICAgIDExLjY4NTErLTAu
OTI3MiAgICAgICAgICAgMTEuMjQxNSstMC4yMzYyICAgICAgICAgIG1pZ2h0IGJlIDEuMDM5NXgg
ZmFzdGVyCiAgIGlubGluZS1hcmd1bWVudHMtYWNjZXNzICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDMuMzcyOCstMC4zNDkxICAgICA/ICAgICAgMy40NDc3Ky0wLjM1MzcgICAgICAgID8gbWln
aHQgYmUgMS4wMjIyeCBzbG93ZXIKICAgaW5saW5lLWFyZ3VtZW50cy1hbGlhc2VkLWFjY2VzcyAg
ICAgICAgICAgICAgICAgICAgMy40MjY4Ky0wLjA3NzUgICAgID8gICAgICAzLjQzOTkrLTAuMTEy
MSAgICAgICAgPwogICBpbmxpbmUtYXJndW1lbnRzLWxvY2FsLWVzY2FwZSAgICAgICAgICAgICAg
ICAgICAgICAzLjYxODIrLTAuMjY3MiAgICAgICAgICAgIDMuNTQxNSstMC4yMTM5ICAgICAgICAg
IG1pZ2h0IGJlIDEuMDIxN3ggZmFzdGVyCiAgIGlubGluZS1nZXQtc2NvcGVkLXZhciAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDIuMzI5OSstMC4yMDkxICAgICAgICAgICAgMi4yMjI0Ky0w
LjA2NzQgICAgICAgICAgbWlnaHQgYmUgMS4wNDg0eCBmYXN0ZXIKICAgaW5saW5lZC1wdXQtYnkt
aWQtdHJhbnNpdGlvbiAgICAgICAgICAgICAgICAgICAgICAgNy44OTY0Ky0wLjQ3NzcgICAgICAg
ICAgICA3LjMwMDQrLTAuMTM1MSAgICAgICAgICBtaWdodCBiZSAxLjA4MTZ4IGZhc3RlcgogICBp
bmxpbmVkLXB1dC1ieS12YWwtd2l0aC1zdHJpbmctdHJhbnNpdGlvbiAgIAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDM3LjQxNDMrLTAuMzYzNyAg
ICAgICAgICAgMzcuMTcwMSstMC4yMjQ5ICAgICAgICAKICAgaW5saW5lZC1wdXQtYnktdmFsLXdp
dGgtc3ltYm9sLXRyYW5zaXRpb24gICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAzOC41NzYwKy0yLjMwMTYgICAgICAgICAgIDM3LjEyNTcrLTAu
MzQxNSAgICAgICAgICBtaWdodCBiZSAxLjAzOTF4IGZhc3RlcgogICBpbnN0YW5jZW9mLWJvdW5k
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIxLjAzMzkrLTAuOTc0MSAgICAgPyAg
ICAgMjEuMDM0OSstMC44MDU4ICAgICAgICA/CiAgIGludC1vci1vdGhlci1hYnMtdGhlbi1nZXQt
YnktdmFsICAgICAgICAgICAgICAgICAgIDQuMjY3MistMC4yNTQyICAgICAgICAgICAgNC4xMTEz
Ky0wLjAzNzkgICAgICAgICAgbWlnaHQgYmUgMS4wMzc5eCBmYXN0ZXIKICAgaW50LW9yLW90aGVy
LWFicy16ZXJvLXRoZW4tZ2V0LWJ5LXZhbCAgICAgICAgICAgICAxNi4zNjgzKy0xLjc1MTAgICAg
ICAgICAgIDE2LjI1NzErLTAuNzE1MiAgICAgICAgCiAgIGludC1vci1vdGhlci1hZGQtdGhlbi1n
ZXQtYnktdmFsICAgICAgICAgICAgICAgICAgIDMuOTg0MCstMC4wODcyICAgICAgICAgICAgMy45
Nzg2Ky0wLjA2NDkgICAgICAgIAogICBpbnQtb3Itb3RoZXItYWRkICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA0LjU0NTkrLTAuMDQxOSAgICAgPyAgICAgIDQuNTUzOCstMC4wNjE4
ICAgICAgICA/CiAgIGludC1vci1vdGhlci1kaXYtdGhlbi1nZXQtYnktdmFsICAgICAgICAgICAg
ICAgICAgIDMuNjYxMSstMC4xNzMwICAgICAgICAgICAgMy40NzIxKy0wLjA4MzMgICAgICAgICAg
bWlnaHQgYmUgMS4wNTQ0eCBmYXN0ZXIKICAgaW50LW9yLW90aGVyLW1heC10aGVuLWdldC1ieS12
YWwgICAgICAgICAgICAgICAgICAgMy43NjIwKy0wLjA5NzEgICAgICAgICAgICAzLjY4NjMrLTAu
MDQ1OSAgICAgICAgICBtaWdodCBiZSAxLjAyMDZ4IGZhc3RlcgogICBpbnQtb3Itb3RoZXItbWlu
LXRoZW4tZ2V0LWJ5LXZhbCAgICAgICAgICAgICAgICAgICAzLjYxMTArLTAuMTI2MyAgICAgPyAg
ICAgIDMuNjM0MSstMC4wNzk5ICAgICAgICA/CiAgIGludC1vci1vdGhlci1tb2QtdGhlbi1nZXQt
YnktdmFsICAgICAgICAgICAgICAgICAgIDMuMzUxOSstMC4wNDE0ICAgICA/ICAgICAgMy4zNzg2
Ky0wLjA4MDUgICAgICAgID8KICAgaW50LW9yLW90aGVyLW11bC10aGVuLWdldC1ieS12YWwgICAg
ICAgICAgICAgICAgICAgMy42MDkyKy0wLjExMDEgICAgICEgICAgICA1LjE4MzErLTAuMjI0MiAg
ICAgICAgISBkZWZpbml0ZWx5IDEuNDM2MXggc2xvd2VyCiAgIGludC1vci1vdGhlci1uZWctdGhl
bi1nZXQtYnktdmFsICAgICAgICAgICAgICAgICAgIDQuMTcxMCstMC4xNTAxICAgICAgICAgICAg
NC4xMDgyKy0wLjEwNjQgICAgICAgICAgbWlnaHQgYmUgMS4wMTUzeCBmYXN0ZXIKICAgaW50LW9y
LW90aGVyLW5lZy16ZXJvLXRoZW4tZ2V0LWJ5LXZhbCAgICAgICAgICAgICAxNi41NjQ4Ky0xLjQz
MzQgICAgID8gICAgIDE2LjY1NTgrLTEuMDU2OSAgICAgICAgPwogICBpbnQtb3Itb3RoZXItc3Vi
LXRoZW4tZ2V0LWJ5LXZhbCAgICAgICAgICAgICAgICAgICA0LjA3NDQrLTAuMTU0NyAgICAgPyAg
ICAgIDQuMDgwNystMC4yNDkyICAgICAgICA/CiAgIGludC1vci1vdGhlci1zdWIgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDMuNDA4MistMC4xNDM0ICAgICAgICAgICAgMy4zNTQw
Ky0wLjA1NjYgICAgICAgICAgbWlnaHQgYmUgMS4wMTYyeCBmYXN0ZXIKICAgaW50LW92ZXJmbG93
LWxvY2FsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy43ODA1Ky0wLjA0ODAgICAg
ID8gICAgICAzLjg2NzQrLTAuMTkxOSAgICAgICAgPyBtaWdodCBiZSAxLjAyMzB4IHNsb3dlcgog
ICBJbnQxNkFycmF5LWFsbG9jLWxvbmctbGl2ZWQgICAgICAgICAgICAgICAgICAgICAgIDUwLjE4
MzgrLTIuOTEzOCAgICAgICAgICAgNDguODM3MistMC42MzMxICAgICAgICAgIG1pZ2h0IGJlIDEu
MDI3NnggZmFzdGVyCiAgIEludDE2QXJyYXktYnViYmxlLXNvcnQtd2l0aC1ieXRlTGVuZ3RoICAg
ICAgICAgICAgMTUuOTQ4NCstMC45MTQ2ICAgICA/ICAgICAxNS45NTkxKy0xLjcyMTcgICAgICAg
ID8KICAgSW50MTZBcnJheS1idWJibGUtc29ydCAgICAgICAgICAgICAgICAgICAgICAgICAgICAx
NS4yNDQxKy0wLjc0MzMgICAgID8gICAgIDE1LjMzOTMrLTAuODI3OCAgICAgICAgPwogICBJbnQx
NkFycmF5LWxvYWQtaW50LW11bCAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLjc3NzUrLTAu
MTM3NiAgICAgXiAgICAgIDEuNjA3NSstMC4wMjQzICAgICAgICBeIGRlZmluaXRlbHkgMS4xMDU3
eCBmYXN0ZXIKICAgSW50MTZBcnJheS10by1JbnQzMkFycmF5LXNldCAgICAgICAgICAgICAgICAg
ICAgICAzNy4zMTEwKy0xLjI5MjUgICAgICAgICAgIDM3LjE1NjYrLTAuNjMwMCAgICAgICAgCiAg
IEludDMyQXJyYXktYWxsb2MtbGFyZ2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTIuNDI2
NCstMC4zNzkzICAgICAgICAgICAxMi4xOTEyKy0wLjI4MzcgICAgICAgICAgbWlnaHQgYmUgMS4w
MTkzeCBmYXN0ZXIKICAgSW50MzJBcnJheS1hbGxvYy1sb25nLWxpdmVkICAgICAgICAgICAgICAg
ICAgICAgICA1My41NzYxKy0wLjgwMjYgICAgICAgICAgIDUzLjAzNDcrLTAuMzY1NyAgICAgICAg
ICBtaWdodCBiZSAxLjAxMDJ4IGZhc3RlcgogICBJbnQzMkFycmF5LWFsbG9jICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAyLjU0ODIrLTAuMDI4MyAgICAgPyAgICAgIDIuNTg2MSst
MC4xNzc0ICAgICAgICA/IG1pZ2h0IGJlIDEuMDE0OXggc2xvd2VyCiAgIEludDMyQXJyYXktSW50
OEFycmF5LXZpZXctYWxsb2MgICAgICAgICAgICAgICAgICAgIDYuMzYyMSstMC4xNjUwICAgICAg
ICAgICAgNi4zNTQ2Ky0wLjEzOTQgICAgICAgIAogICBpbnQ1Mi1zcGlsbCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA0Ljg5MzgrLTAuMTQ3NiAgICAgICAgICAgIDQuODU0
OCstMC4xNzA2ICAgICAgICAKICAgSW50OEFycmF5LWFsbG9jLWxvbmctbGl2ZWQgICAgICAgICAg
ICAgICAgICAgICAgICA0NS45NDA1Ky0wLjMyMTIgICAgIF4gICAgIDQ0Ljk4MzErLTAuNTA2MyAg
ICAgICAgXiBkZWZpbml0ZWx5IDEuMDIxM3ggZmFzdGVyCiAgIEludDhBcnJheS1sb2FkLXdpdGgt
Ynl0ZUxlbmd0aCAgICAgICAgICAgICAgICAgICAgIDMuNDg4OSstMC4yNzEyICAgICAgICAgICAg
My40MDE5Ky0wLjA4OTYgICAgICAgICAgbWlnaHQgYmUgMS4wMjU2eCBmYXN0ZXIKICAgSW50OEFy
cmF5LWxvYWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy40MzEyKy0wLjEx
OTkgICAgID8gICAgICAzLjQ2NTUrLTAuMjUwMCAgICAgICAgPwogICBpbnRlZ2VyLWRpdmlkZSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwLjIxMDcrLTAuMjAxOCAgICAgPyAg
ICAgMTAuNDA4MCstMC43NDM4ICAgICAgICA/IG1pZ2h0IGJlIDEuMDE5M3ggc2xvd2VyCiAgIGlu
dGVnZXItbW9kdWxvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuNDk5OSst
MC4wOTQ4ICAgICAgICAgICAgMS40Njc4Ky0wLjA0ODkgICAgICAgICAgbWlnaHQgYmUgMS4wMjE5
eCBmYXN0ZXIKICAgaXMtYm9vbGVhbi1mb2xkLXRyaWNreSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMi43MzgwKy0wLjAzMTggICAgID8gICAgICAyLjc1NTErLTAuMDYyOSAgICAgICAgPwog
ICBpcy1ib29sZWFuLWZvbGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjEx
MTkrLTAuMDU5MiAgICAgPyAgICAgIDIuMTU4NSstMC4yMzkzICAgICAgICA/IG1pZ2h0IGJlIDEu
MDIyMXggc2xvd2VyCiAgIGlzLWZ1bmN0aW9uLWZvbGQtdHJpY2t5LWludGVybmFsLWZ1bmN0aW9u
ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
MTAuNDc2MSstMC4yMTQ5ICAgICA/ICAgICAxMC40OTQ2Ky0wLjYwOTcgICAgICAgID8KICAgaXMt
ZnVuY3Rpb24tZm9sZC10cmlja3kgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi45MDk2Ky0w
LjA0MjcgICAgICAgICAgICAyLjg0MDgrLTAuMDcyMCAgICAgICAgICBtaWdodCBiZSAxLjAyNDJ4
IGZhc3RlcgogICBpcy1mdW5jdGlvbi1mb2xkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAyLjEyMTArLTAuMDc4NyAgICAgPyAgICAgIDIuMTI4MistMC4wNzY0ICAgICAgICA/CiAg
IGlzLW51bWJlci1mb2xkLXRyaWNreSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuODcy
MistMC4wODY0ICAgICA/ICAgICAgMi44OTM5Ky0wLjIyODMgICAgICAgID8KICAgaXMtbnVtYmVy
LWZvbGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi4xMjM5Ky0wLjE0MTgg
ICAgID8gICAgICAyLjE2MDArLTAuMjU0NyAgICAgICAgPyBtaWdodCBiZSAxLjAxNzB4IHNsb3dl
cgogICBpcy1vYmplY3Qtb3ItbnVsbC1mb2xkLWZ1bmN0aW9ucyAgICAgICAgICAgICAgICAgICAy
LjI4OTMrLTAuMjQ2OSAgICAgICAgICAgIDIuMTM4MistMC4xMTAzICAgICAgICAgIG1pZ2h0IGJl
IDEuMDcwN3ggZmFzdGVyCiAgIGlzLW9iamVjdC1vci1udWxsLWZvbGQtbGVzcy10cmlja3kgICAg
ICAgICAgICAgICAgIDIuOTM1NistMC4xMzMwICAgICAgICAgICAgMi44Mzg5Ky0wLjExNzUgICAg
ICAgICAgbWlnaHQgYmUgMS4wMzQxeCBmYXN0ZXIKICAgaXMtb2JqZWN0LW9yLW51bGwtZm9sZC10
cmlja3kgICAgICAgICAgICAgICAgICAgICAgMy4zMDExKy0wLjM3ODcgICAgICAgICAgICAzLjI2
MDMrLTAuMTg4NCAgICAgICAgICBtaWdodCBiZSAxLjAxMjV4IGZhc3RlcgogICBpcy1vYmplY3Qt
b3ItbnVsbC1mb2xkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjE5NzErLTAuMTUyNiAg
ICAgICAgICAgIDIuMTY2NystMC4xMTg0ICAgICAgICAgIG1pZ2h0IGJlIDEuMDE0MHggZmFzdGVy
CiAgIGlzLW9iamVjdC1vci1udWxsLXRyaWNraWVyLWZ1bmN0aW9uICAgICAgICAgICAgICAgIDIu
OTIxOCstMC4wNDI1ICAgICAgICAgICAgMi45MDA4Ky0wLjA5NzcgICAgICAgIAogICBpcy1vYmpl
Y3Qtb3ItbnVsbC10cmlja2llci1pbnRlcm5hbC1mdW5jdGlvbiAgIAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA5Ljg4OTIrLTAuMjcwMyAgICAg
ICAgICAgIDkuNzg2NystMC4yMjU4ICAgICAgICAgIG1pZ2h0IGJlIDEuMDEwNXggZmFzdGVyCiAg
IGlzLW9iamVjdC1vci1udWxsLXRyaWNreS1mdW5jdGlvbiAgICAgICAgICAgICAgICAgIDMuMDU1
OSstMC4xMzc1ICAgICAgICAgICAgMi45Nzg1Ky0wLjI0NTcgICAgICAgICAgbWlnaHQgYmUgMS4w
MjYweCBmYXN0ZXIKICAgaXMtb2JqZWN0LW9yLW51bGwtdHJpY2t5LWludGVybmFsLWZ1bmN0aW9u
ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDYuOTE5NSstMC4yNjcwICAgICA/ICAgICAgNy4xMTMyKy0wLjUyNDIgICAgICAgID8gbWlnaHQg
YmUgMS4wMjgweCBzbG93ZXIKICAgaXMtc3RyaW5nLWZvbGQtdHJpY2t5ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMi45MDQyKy0wLjE1MDUgICAgICAgICAgICAyLjc3MzQrLTAuMDcyMyAg
ICAgICAgICBtaWdodCBiZSAxLjA0NzJ4IGZhc3RlcgogICBpcy1zdHJpbmctZm9sZCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjA4OTgrLTAuMDMwOCAgICAgPyAgICAgIDIu
MTQ1NCstMC4yMDMyICAgICAgICA/IG1pZ2h0IGJlIDEuMDI2Nnggc2xvd2VyCiAgIGlzLXVuZGVm
aW5lZC1mb2xkLXRyaWNreSAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuNDk4MystMC4wNDE3
ICAgICAgICAgICAgMi40NDgzKy0wLjA1MDQgICAgICAgICAgbWlnaHQgYmUgMS4wMjA0eCBmYXN0
ZXIKICAgaXMtdW5kZWZpbmVkLWZvbGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Mi4xNDk0Ky0wLjIwNTcgICAgID8gICAgICAyLjE1NTgrLTAuMTc0MSAgICAgICAgPwogICBKU09O
UC1uZWdhdGl2ZS0wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjE4MzkrLTAu
MDA2NSAgICAgPyAgICAgIDAuMjA5MistMC4wNDIxICAgICAgICA/IG1pZ2h0IGJlIDEuMTM3Nngg
c2xvd2VyCiAgIGxhcmdlLWludC1jYXB0dXJlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDMuMjgzMSstMC4yMDI0ICAgICA/ICAgICAgMy40MDA3Ky0wLjA2ODMgICAgICAgID8gbWln
aHQgYmUgMS4wMzU4eCBzbG93ZXIKICAgbGFyZ2UtaW50LW5lZyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAxMy40MDY4Ky0xLjAyMTkgICAgID8gICAgIDEzLjY4MTkrLTEuMjQ4
MCAgICAgICAgPyBtaWdodCBiZSAxLjAyMDV4IHNsb3dlcgogICBsYXJnZS1pbnQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDExLjk3OTErLTAuOTI1MSAgICAgICAgICAg
MTEuNjgzNSstMC41MjY0ICAgICAgICAgIG1pZ2h0IGJlIDEuMDI1M3ggZmFzdGVyCiAgIGxvYWQt
dmFyYXJncy1lbGltaW5hdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgMTcuOTYxNCstMS4z
MDQ3ICAgICA/ICAgICAxNy45ODgzKy0wLjgzOTUgICAgICAgID8KICAgbG9jYWxlLWNvbXBhcmUg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMi4yOTYyKy0wLjc5ODAgICAgID8g
ICAgIDIzLjcwOTMrLTIuMzc3MCAgICAgICAgPyBtaWdodCBiZSAxLjA2MzR4IHNsb3dlcgogICBs
b2dpY2FsLW5vdC13ZWlyZC10eXBlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjUyNzUr
LTAuMzA3NiAgICAgICAgICAgIDIuNDUxNystMC4xMTg0ICAgICAgICAgIG1pZ2h0IGJlIDEuMDMw
OXggZmFzdGVyCiAgIGxvZ2ljYWwtbm90ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDMuNjQwMCstMC4yMjMzICAgICAgICAgICAgMy41MTg5Ky0wLjA3NDMgICAgICAgICAg
bWlnaHQgYmUgMS4wMzQ0eCBmYXN0ZXIKICAgbG90cy1vZi1maWVsZHMgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgOC40MDc4Ky0wLjU1MDAgICAgICAgICAgICA4LjMwOTcrLTAu
NjM4NSAgICAgICAgICBtaWdodCBiZSAxLjAxMTh4IGZhc3RlcgogICBtYWtlLWluZGV4ZWQtc3Rv
cmFnZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjU1NDkrLTAuMjI4MiAgICAgICAg
ICAgIDIuNDIyNCstMC4xNTM3ICAgICAgICAgIG1pZ2h0IGJlIDEuMDU0N3ggZmFzdGVyCiAgIG1h
a2Utcm9wZS1jc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuNTUyNyst
MC4zMjczICAgICAgICAgICAgMy4yNjg0Ky0wLjIxNzYgICAgICAgICAgbWlnaHQgYmUgMS4wODcw
eCBmYXN0ZXIKICAgbWFueS1mb3JlYWNoLWNhbGxzICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAxMS43MjA3Ky0wLjY5ODkgICAgID8gICAgIDExLjc1NDcrLTAuOTA1OSAgICAgICAgPwog
ICBtYW55LXJlcGVhdC1zdG9yZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE2Ljc4
NjgrLTEuNDEyMSAgICAgXiAgICAgMTUuMTYxOSstMC4xMjM4ICAgICAgICBeIGRlZmluaXRlbHkg
MS4xMDcyeCBmYXN0ZXIKICAgbWFwLWZvci1lYWNoICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgNC41Mzc2Ky0wLjI5MDUgICAgID8gICAgICA0LjU0OTYrLTAuMTU3MCAgICAg
ICAgPwogICBtYXAtZm9yLW9mICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDE0Ljc4MDQrLTAuMjQxOSAgICAgICAgICAgMTQuNzEzMistMC45ODQzICAgICAgICAKICAgbWFy
c2FnbGlhLWxhcmdlci1pbnRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyOS42Mzg5Ky0w
LjQyMTcgICAgICEgICAgIDY1LjAyMjkrLTEuMzAxOCAgICAgICAgISBkZWZpbml0ZWx5IDIuMTkz
OHggc2xvd2VyCiAgIG1hcnNhZ2xpYS1vc3ItZW50cnkgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMTguMjA0NistMS45NTMwICAgICAgICAgICAxNy4yODc1Ky0xLjE5MzIgICAgICAgICAg
bWlnaHQgYmUgMS4wNTMweCBmYXN0ZXIKICAgbWF0aC1yYW5kb20gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAxNC4zMjExKy0wLjgyMTIgICAgID8gICAgIDE0Ljk3MzUrLTEu
NTYxNSAgICAgICAgPyBtaWdodCBiZSAxLjA0NTZ4IHNsb3dlcgogICBtYXRoLXRydW5jICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1LjQ3NzIrLTAuMTY0NSAgICAgPyAg
ICAgIDUuNTE1OCstMC4yNTM5ICAgICAgICA/CiAgIG1hdGgtd2l0aC1vdXQtb2YtYm91bmRzLWFy
cmF5LXZhbHVlcyAgICAgICAgICAgICAgMjguOTgzMystMC40ODIyICAgICA/ICAgICAyOS4xOTI1
Ky0xLjEwNTUgICAgICAgID8KICAgbWF4LWJvb2xlYW4gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMi4zMTk4Ky0wLjIwNDggICAgICAgICAgICAyLjIyMzErLTAuMTEwNyAg
ICAgICAgICBtaWdodCBiZSAxLjA0MzV4IGZhc3RlcgogICBtZWdhbW9ycGhpYy1sb2FkICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI4LjUyMTArLTAuNzcyNSAgICAgPyAgICAgMzIu
Nzk0NystOS43NzY3ICAgICAgICA/IG1pZ2h0IGJlIDEuMTQ5OHggc2xvd2VyCiAgIG1ldGhvZC1v
bi1udW1iZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTguNTQ4NistMC43Nzc3
ICAgICAgICAgICAxOC4yMDExKy0wLjY1OTMgICAgICAgICAgbWlnaHQgYmUgMS4wMTkxeCBmYXN0
ZXIKICAgbWluLWJvb2xlYW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Mi4zNTAwKy0wLjI0ODEgICAgICAgICAgICAyLjE5MzYrLTAuMDUzMyAgICAgICAgICBtaWdodCBi
ZSAxLjA3MTN4IGZhc3RlcgogICBtaW51cy1ib29sZWFuLWRvdWJsZSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAyLjI5NDkrLTAuMTAwOCAgICAgICAgICAgIDIuMTg2MystMC4wNTE0ICAg
ICAgICAgIG1pZ2h0IGJlIDEuMDQ5N3ggZmFzdGVyCiAgIG1pbnVzLWJvb2xlYW4gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuMDEwNCstMC4wNTYzICAgICA/ICAgICAgMi4w
NjczKy0wLjI3NjEgICAgICAgID8gbWlnaHQgYmUgMS4wMjgzeCBzbG93ZXIKICAgbWlzYy1zdHJp
Y3QtZXEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxOS43MTk0Ky0xLjYwMzcg
ICAgICAgICAgIDE5LjI0MjMrLTEuMTQ2MyAgICAgICAgICBtaWdodCBiZSAxLjAyNDh4IGZhc3Rl
cgogICBtb2QtYm9vbGVhbi1kb3VibGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA5
LjEzMTQrLTAuMTkzOCAgICAgICAgICAgIDkuMDk3MCstMC4yMDI0ICAgICAgICAKICAgbW9kLWJv
b2xlYW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNy4wNjEyKy0wLjI3
ODkgICAgICAgICAgICA2Ljg5NzkrLTAuMTI0OSAgICAgICAgICBtaWdodCBiZSAxLjAyMzd4IGZh
c3RlcgogICBtdWwtYm9vbGVhbi1kb3VibGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAyLjg2MzIrLTAuMjk1MyAgICAgICAgICAgIDIuNjg0OCstMC4yNDg0ICAgICAgICAgIG1pZ2h0
IGJlIDEuMDY2NHggZmFzdGVyCiAgIG11bC1ib29sZWFuICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDIuMzE0MSstMC4wNjc5ICAgICAgICAgICAgMi4yOTY5Ky0wLjE0MzUg
ICAgICAgIAogICBuZWctYm9vbGVhbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAyLjI2MDkrLTAuMDY5MCAgICAgICAgICAgIDIuMjM3MistMC4wNDIzICAgICAgICAgIG1p
Z2h0IGJlIDEuMDEwNnggZmFzdGVyCiAgIG5lZ2F0aXZlLXplcm8tZGl2aWRlICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDAuMjc3MSstMC4wMDU1ICAgICA/ICAgICAgMC4zMDg4Ky0wLjA0
ODYgICAgICAgID8gbWlnaHQgYmUgMS4xMTQ0eCBzbG93ZXIKICAgbmVnYXRpdmUtemVyby1tb2R1
bG8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC4yODE4Ky0wLjAxNjUgICAgICAgICAg
ICAwLjI3NTYrLTAuMDE2MSAgICAgICAgICBtaWdodCBiZSAxLjAyMjR4IGZhc3RlcgogICBuZWdh
dGl2ZS16ZXJvLW5lZ2F0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjI2NjIrLTAu
MDEyOSAgICAgICAgICAgIDAuMjY0NistMC4wMTUzICAgICAgICAKICAgbmVzdGVkLWZ1bmN0aW9u
LXBhcnNpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAzMy43Mjg5Ky0wLjgyNjggICAgICAg
ICAgIDMyLjk2NDIrLTAuODA0NiAgICAgICAgICBtaWdodCBiZSAxLjAyMzJ4IGZhc3RlcgogICBu
ZXctYXJyYXktYnVmZmVyLWRlYWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDczLjkwNzQr
LTAuMzIxNCAgICAgPyAgICAgNzUuMDAwMSstMS41ODI0ICAgICAgICA/IG1pZ2h0IGJlIDEuMDE0
OHggc2xvd2VyCiAgIG5ldy1hcnJheS1idWZmZXItcHVzaCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDQuODIyNCstMC4xNTU5ICAgICA/ICAgICAgNS4wNDYyKy0wLjYyNzEgICAgICAgID8g
bWlnaHQgYmUgMS4wNDY0eCBzbG93ZXIKICAgbmV3LWFycmF5LWRlYWQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgNi42OTYxKy0wLjEyMDUgICAgICAgICAgICA2LjY0NDgrLTAu
MDc3MyAgICAgICAgCiAgIG5ldy1hcnJheS1wdXNoICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDIuOTQ3OSstMC4wOTE4ICAgICA/ICAgICAgMi45NTUwKy0wLjE0MTkgICAgICAg
ID8KICAgbm8taW5saW5lLWNvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAy
OS41MzU1Ky0wLjM4NjUgICAgID8gICAgIDI5LjcyOTArLTEuMTk5OSAgICAgICAgPwogICBudW1i
ZXItdGVzdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjEzMDQrLTAu
MjA4NSAgICAgXiAgICAgIDIuNzA5MSstMC4wMTk2ICAgICAgICBeIGRlZmluaXRlbHkgMS4xNTU1
eCBmYXN0ZXIKICAgb2JqZWN0LWNsb3N1cmUtY2FsbCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgNC43NjMyKy0wLjIzMTggICAgID8gICAgICA0LjgwMTArLTAuMjkzNyAgICAgICAgPwog
ICBvYmplY3QtZ2V0LW93bi1wcm9wZXJ0eS1zeW1ib2xzLW9uLWxhcmdlLWFycmF5ICAgCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuMTA0Mist
MC4xNDgxICAgICA/ICAgICAgMS4yMDY3Ky0wLjE2MjMgICAgICAgID8gbWlnaHQgYmUgMS4wOTI4
eCBzbG93ZXIKICAgb2JqZWN0LWludC1hZGQtYXJyYXkgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA3My4wODgzKy0yLjM2NzEgICAgIF4gICAgICA5LjE5MTMrLTAuMTYzOCAgICAgICAgXiBk
ZWZpbml0ZWx5IDcuOTUxOXggZmFzdGVyCiAgIG9iamVjdC1pbnQtYWRkICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMjEuOTgxNystMS42ODkyICAgICBeICAgICAxMi43OTE0Ky0w
LjE0NDAgICAgICAgIF4gZGVmaW5pdGVseSAxLjcxODV4IGZhc3RlcgogICBvYmplY3QtaW50LW11
bC1hcnJheSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUwLjgyMDYrLTAuOTg2MiAgICAg
XiAgICAgMTEuMDI1MCstMC41ODc4ICAgICAgICBeIGRlZmluaXRlbHkgNC42MDk2eCBmYXN0ZXIK
ICAgb2JqZWN0LWludC1zdWItYXJyYXkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1My4w
NDUyKy0yLjcyNDQgICAgIF4gICAgIDEwLjI0MzIrLTAuMjc3NiAgICAgICAgXiBkZWZpbml0ZWx5
IDUuMTc4NnggZmFzdGVyCiAgIG9iamVjdC1pbnQtc3ViICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMzMuMjg1OCstMy45MTI2ICAgICA/ICAgICAzMy43NzI2Ky0wLjQ2MzcgICAg
ICAgID8gbWlnaHQgYmUgMS4wMTQ2eCBzbG93ZXIKICAgb2JqZWN0LXRlc3QgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMi44OTYxKy0wLjA0MTMgICAgIF4gICAgICAyLjQ1
ODMrLTAuMDMxOCAgICAgICAgXiBkZWZpbml0ZWx5IDEuMTc4MXggZmFzdGVyCiAgIG9idmlvdXMt
c2luay1wYXRob2xvZ3ktdGFrZW4gICAgICAgICAgICAgICAgICAgICAxMTAuMTIzMCstMi40MTA1
ICAgICAgICAgIDEwOS4zMTU1Ky0wLjYyNDQgICAgICAgIAogICBvYnZpb3VzLXNpbmstcGF0aG9s
b2d5ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE4LjUyMDErLTEuNDk1MiAgICAgICAgICAg
MTcuNjcwNSstMC42MzY4ICAgICAgICAgIG1pZ2h0IGJlIDEuMDQ4MXggZmFzdGVyCiAgIG9idmlv
dXNseS1lbGlkYWJsZS1uZXctb2JqZWN0ICAgICAgICAgICAgICAgICAgICAgMTUuNjUwOCstMC43
MTU0ICAgICA/ICAgICAxNS45Nzc1Ky0wLjM1MDcgICAgICAgID8gbWlnaHQgYmUgMS4wMjA5eCBz
bG93ZXIKICAgcGx1cy1ib29sZWFuLWFyaXRoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMi4wMTQ5Ky0wLjA1NjcgICAgID8gICAgICAyLjA4ODIrLTAuMDYzNSAgICAgICAgPyBtaWdo
dCBiZSAxLjAzNjR4IHNsb3dlcgogICBwbHVzLWJvb2xlYW4tZG91YmxlICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAyLjM5ODgrLTAuMjY5OCAgICAgICAgICAgIDIuMjM4NystMC4xNDc0
ICAgICAgICAgIG1pZ2h0IGJlIDEuMDcxNXggZmFzdGVyCiAgIHBsdXMtYm9vbGVhbiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuOTk0NSstMC4wNzc2ICAgICAgICAgICAg
MS45NDI3Ky0wLjA5NjggICAgICAgICAgbWlnaHQgYmUgMS4wMjY2eCBmYXN0ZXIKICAgcG9seS1j
aGFpbi1hY2Nlc3MtZGlmZmVyZW50LXByb3RvdHlwZXMtc2ltcGxlICAgCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuMzU2NystMC4wMjIxICAg
ICA/ICAgICAgMi4zNzcxKy0wLjA2MTMgICAgICAgID8KICAgcG9seS1jaGFpbi1hY2Nlc3MtZGlm
ZmVyZW50LXByb3RvdHlwZXMgICAgICAgICAgICAgMi41MjkxKy0wLjI5NTggICAgICAgICAgICAy
LjQ3MjArLTAuMTY4MiAgICAgICAgICBtaWdodCBiZSAxLjAyMzF4IGZhc3RlcgogICBwb2x5LWNo
YWluLWFjY2Vzcy1zaW1wbGVyICAgICAgICAgICAgICAgICAgICAgICAgICAyLjM5MzMrLTAuMDUx
OCAgICAgPyAgICAgIDIuMzk1MystMC4wNTgzICAgICAgICA/CiAgIHBvbHktY2hhaW4tYWNjZXNz
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuNTAxMystMC4xNzQ0ICAgICAgICAg
ICAgMi4zOTMwKy0wLjAxOTAgICAgICAgICAgbWlnaHQgYmUgMS4wNDUyeCBmYXN0ZXIKICAgcG9s
eS1zdHJpY3RlcSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0OC4yMjUxKy0x
LjkxNDUgICAgID8gICAgIDQ4LjgyNzYrLTIuNTQyOSAgICAgICAgPyBtaWdodCBiZSAxLjAxMjV4
IHNsb3dlcgogICBwb2x5bW9ycGhpYy1hcnJheS1jYWxsICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAxLjE5MjErLTAuMTgzNiAgICAgPyAgICAgIDEuMjE1NSstMC4yNzI1ICAgICAgICA/IG1p
Z2h0IGJlIDEuMDE5Nnggc2xvd2VyCiAgIHBvbHltb3JwaGljLWdldC1ieS1pZCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDEuODUwNistMC4wODI0ICAgICAgICAgICAgMS44MTI4Ky0wLjA1
MzkgICAgICAgICAgbWlnaHQgYmUgMS4wMjA4eCBmYXN0ZXIKICAgcG9seW1vcnBoaWMtcHV0LWJ5
LWlkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzMC4zNDcyKy02LjczNzAgICAgICAgICAg
IDI3LjI5MDkrLTQuOTIyMSAgICAgICAgICBtaWdodCBiZSAxLjExMjB4IGZhc3RlcgogICBwb2x5
bW9ycGhpYy1wdXQtYnktdmFsLXdpdGgtc3RyaW5nICAgICAgICAgICAgICAgIDI5LjAxNDMrLTcu
Nzg4OCAgICAgPyAgICAgMzEuOTg2MistNi41MjczICAgICAgICA/IG1pZ2h0IGJlIDEuMTAyNHgg
c2xvd2VyCiAgIHBvbHltb3JwaGljLXB1dC1ieS12YWwtd2l0aC1zeW1ib2wgICAgICAgICAgICAg
ICAgMzIuNjA2MistNi4xNDIzICAgICAgICAgICAyNi45NTkzKy0xLjI0NDIgICAgICAgICAgbWln
aHQgYmUgMS4yMDk1eCBmYXN0ZXIKICAgcG9seW1vcnBoaWMtc3RydWN0dXJlICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAxMi41NTk3Ky0wLjgwNzYgICAgID8gICAgIDEzLjE4NDIrLTEuMDM5
MSAgICAgICAgPyBtaWdodCBiZSAxLjA0OTd4IHNsb3dlcgogICBwb2x5dmFyaWFudC1tb25vbW9y
cGhpYy1nZXQtYnktaWQgICAgICAgICAgICAgICAgICAzLjU4NTArLTAuMzI3MiAgICAgICAgICAg
IDMuNDcwOSstMC4xMDE3ICAgICAgICAgIG1pZ2h0IGJlIDEuMDMyOHggZmFzdGVyCiAgIHByb3Rv
LWdldHRlci1hY2Nlc3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTEuMTAwOCstMS4y
NDA5ICAgICAgICAgICAxMC41NDEzKy0wLjE1NjYgICAgICAgICAgbWlnaHQgYmUgMS4wNTMxeCBm
YXN0ZXIKICAgcHJvdG90eXBlLWFjY2Vzcy13aXRoLW11dGF0aW5nLXByb3RvdHlwZSAgICAgICAg
ICAgNS4yMjExKy0yLjMzMjEgICAgICAgICAgICA0LjIwODgrLTAuMDUyMCAgICAgICAgICBtaWdo
dCBiZSAxLjI0MDV4IGZhc3RlcgogICBwdXQtYnktaWQtcmVwbGFjZS1hbmQtdHJhbnNpdGlvbiAg
ICAgICAgICAgICAgICAgICA2LjY2NjErLTAuMzcyNyAgICAgPyAgICAgIDYuNzQ0NistMC4yMTky
ICAgICAgICA/IG1pZ2h0IGJlIDEuMDExOHggc2xvd2VyCiAgIHB1dC1ieS1pZC1zbGlnaHRseS1w
b2x5bW9ycGhpYyAgICAgICAgICAgICAgICAgICAgIDIuMzAwOSstMC4wMzM0ICAgICA/ICAgICAg
Mi4zMjcxKy0wLjA1MTMgICAgICAgID8gbWlnaHQgYmUgMS4wMTE0eCBzbG93ZXIKICAgcHV0LWJ5
LWlkLXRyYW5zaXRpb24td2l0aC1pbmRleGluZy1oZWFkZXIgICAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMC44NjU0Ky0wLjg2MDYgICAgICAg
ICAgIDEwLjY0NzErLTAuNzA2NyAgICAgICAgICBtaWdodCBiZSAxLjAyMDV4IGZhc3RlcgogICBw
dXQtYnktaWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4LjgyMjEr
LTAuMTczMCAgICAgPyAgICAgIDkuMDYyNSstMC41ODg2ICAgICAgICA/IG1pZ2h0IGJlIDEuMDI3
Mnggc2xvd2VyCiAgIHB1dC1ieS12YWwtZGlyZWN0ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDAuMzE2MystMC4wMTAwICAgICA/ICAgICAgMC4zNDMyKy0wLjAyMjYgICAgICAgID8g
bWlnaHQgYmUgMS4wODUweCBzbG93ZXIKICAgcHV0LWJ5LXZhbC1sYXJnZS1pbmRleC1ibGFuay1p
bmRleGluZy10eXBlICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDQuNDIwMCstMC4zODI1ICAgICAgICAgICAgNC4zODY2Ky0wLjIxNzEgICAg
ICAgIAogICBwdXQtYnktdmFsLW1hY2hpbmUtaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAyLjY2NzgrLTAuMTA4MCAgICAgICAgICAgIDIuNTkwNystMC4wNjgwICAgICAgICAgIG1pZ2h0
IGJlIDEuMDI5OHggZmFzdGVyCiAgIHB1dC1ieS12YWwtd2l0aC1zdHJpbmctcmVwbGFjZS1hbmQt
dHJhbnNpdGlvbiAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDEwLjM5OTYrLTAuMzMyNCAgICAgICAgICAgMTAuMTEwNystMC4yMDc1ICAgICAg
ICAgIG1pZ2h0IGJlIDEuMDI4NnggZmFzdGVyCiAgIHB1dC1ieS12YWwtd2l0aC1zdHJpbmctc2xp
Z2h0bHktcG9seW1vcnBoaWMgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMy4wODU4Ky0wLjA4OTQgICAgID8gICAgICAzLjA5NTcrLTAuMTA5
OCAgICAgICAgPwogICBwdXQtYnktdmFsLXdpdGgtc3RyaW5nICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA5LjE3NDgrLTAuMTgwNSAgICAgICAgICAgIDkuMTY5MSstMC4yNjgyICAgICAgICAK
ICAgcHV0LWJ5LXZhbC13aXRoLXN5bWJvbC1yZXBsYWNlLWFuZC10cmFuc2l0aW9uICAgCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDkuNTM4OSst
MC4zMzA3ICAgICAgICAgICAgOS40NDM0Ky0wLjI1ODEgICAgICAgICAgbWlnaHQgYmUgMS4wMTAx
eCBmYXN0ZXIKICAgcHV0LWJ5LXZhbC13aXRoLXN5bWJvbC1zbGlnaHRseS1wb2x5bW9ycGhpYyAg
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAy
LjU5OTQrLTAuMDczNSAgICAgPyAgICAgIDIuNjI5NystMC4xMTUyICAgICAgICA/IG1pZ2h0IGJl
IDEuMDExN3ggc2xvd2VyCiAgIHB1dC1ieS12YWwtd2l0aC1zeW1ib2wgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDkuMjA1NystMC4yMTc5ICAgICAgICAgICAgOS4xMzQ5Ky0wLjE3MDcgICAg
ICAgIAogICByYXJlLW9zci1leGl0LW9uLWxvY2FsICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDExLjg1NzYrLTAuMjA5NCAgICAgPyAgICAgMTEuODc4NSstMC40NzIyICAgICAgICA/CiAgIHJh
eXRyYWNlLXdpdGgtZW1wdHktdHJ5LWNhdGNoICAgICAgICAgICAgICAgICAgICAgIDUuMzk4Mist
MC4zMDI1ICAgICAgICAgICAgNS4yNzcwKy0wLjEwODQgICAgICAgICAgbWlnaHQgYmUgMS4wMjMw
eCBmYXN0ZXIKICAgcmF5dHJhY2Utd2l0aC10cnktY2F0Y2ggICAgICAgICAgICAgICAgICAgICAg
ICAgICAgOC42MjA2Ky0wLjI5MTEgICAgID8gICAgICA5LjA3MTIrLTEuNDM5MSAgICAgICAgPyBt
aWdodCBiZSAxLjA1MjN4IHNsb3dlcgogICByZWdleHAtZXhlYyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDMzLjAwMzErLTAuNjAwMSAgICAgPyAgICAgMzMuMDcyNistMS41
MzI2ICAgICAgICA/CiAgIHJlZ2V4cC1sYXN0LWluZGV4ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDguNzQzOCstMC4yNjc0ICAgICAgICAgICAgOC42MDUwKy0wLjEzMTMgICAgICAg
ICAgbWlnaHQgYmUgMS4wMTYxeCBmYXN0ZXIKICAgcmVnZXhwLXByb3RvdHlwZS1pcy1ub3QtaW5z
dGFuY2UgICAgICAgICAgICAgICAgICAgMC4zNTI2Ky0wLjA0NjYgICAgICAgICAgICAwLjM1MTYr
LTAuMDQxMiAgICAgICAgCiAgIHJlZ2V4cC1wcm90b3R5cGUtc2VhcmNoLW9ic2VydmFibGUtc2lk
ZS1lZmZlY3RzICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDAuNzE5OCstMC4wNTgyICAgICA/ICAgICAgMC43Mzc2Ky0wLjA1NDYgICAgICAg
ID8gbWlnaHQgYmUgMS4wMjQ3eCBzbG93ZXIKICAgcmVnZXhwLXByb3RvdHlwZS1zZWFyY2gtb2Jz
ZXJ2YWJsZS1zaWRlLWVmZmVjdHMyICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDAuMjY1MistMC4wNjAzICAgICAgICAgICAgMC4yNjI1Ky0w
LjA0NDIgICAgICAgICAgbWlnaHQgYmUgMS4wMTAyeCBmYXN0ZXIKICAgcmVnZXhwLXByb3RvdHlw
ZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0cyAgIAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLjU5OTQrLTAuMjYxNSAgICAgICAgICAg
IDEuNTUzOCstMC4yNzk3ICAgICAgICAgIG1pZ2h0IGJlIDEuMDI5NHggZmFzdGVyCiAgIHJlZ2V4
cC1wcm90b3R5cGUtc3BsaXQtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMyICAgCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuMzAyMCstMC4wNjEw
ICAgICAgICAgICAgMC4yNjQxKy0wLjAwNjYgICAgICAgICAgbWlnaHQgYmUgMS4xNDM2eCBmYXN0
ZXIKICAgcmVnZXhwLXByb3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czMtZmxh
Z3MgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMC4yNjY4Ky0wLjAwNjAgICAgID8gICAgICAwLjM0NDgrLTAuMTMzOSAgICAgICAgPyBtaWdo
dCBiZSAxLjI5MjJ4IHNsb3dlcgogICByZWdleHAtcHJvdG90eXBlLXNwbGl0LW9ic2VydmFibGUt
c2lkZS1lZmZlY3RzMy1nbG9iYWwgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMC4yODQwKy0wLjAzMjQgICAgICAgICAgICAwLjI3ODgrLTAu
MDIzNiAgICAgICAgICBtaWdodCBiZSAxLjAxODV4IGZhc3RlcgogICByZWdleHAtcHJvdG90eXBl
LXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzMy1pZ25vcmVDYXNlICAgCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuMjc1MCstMC4wMjEy
ICAgICAgICAgICAgMC4yNzM1Ky0wLjAzMzggICAgICAgIAogICByZWdleHAtcHJvdG90eXBlLXNw
bGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzMy1tdWx0aWxpbmUgICAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC4yNjk4Ky0wLjAxMjEgICAg
ICAgICAgICAwLjI2MTgrLTAuMDA1OSAgICAgICAgICBtaWdodCBiZSAxLjAzMDZ4IGZhc3Rlcgog
ICByZWdleHAtcHJvdG90eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzMy1zdGlja3kg
ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
MC4yNjYxKy0wLjAwMzUgICAgID8gICAgICAwLjMxMjIrLTAuMDUwOSAgICAgICAgPyBtaWdodCBi
ZSAxLjE3MzF4IHNsb3dlcgogICByZWdleHAtcHJvdG90eXBlLXNwbGl0LW9ic2VydmFibGUtc2lk
ZS1lZmZlY3RzMy11bmljb2RlICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDAuMjgyMystMC4wMzQ1ICAgICAgICAgICAgMC4yNzIxKy0wLjAz
MTQgICAgICAgICAgbWlnaHQgYmUgMS4wMzc0eCBmYXN0ZXIKICAgcmVnZXhwLXByb3RvdHlwZS1z
cGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czQgICAKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC4yOTEyKy0wLjAyNzMgICAgICAgICAgICAw
LjI4MzkrLTAuMDMxOCAgICAgICAgICBtaWdodCBiZSAxLjAyNTh4IGZhc3RlcgogICByZWdleHAt
cHJvdG90eXBlLXRlc3Qtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMgICAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC42NjE2Ky0wLjA1NTggICAg
ICAgICAgICAwLjYyNzYrLTAuMDI5MSAgICAgICAgICBtaWdodCBiZSAxLjA1NDF4IGZhc3Rlcgog
ICByZWdleHAtcHJvdG90eXBlLXRlc3Qtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMyICAgCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuMjQ5MCst
MC4wMjc0ICAgICAgICAgICAgMC4yNDU4Ky0wLjAxODIgICAgICAgICAgbWlnaHQgYmUgMS4wMTI3
eCBmYXN0ZXIKICAgcmVnZXhwLXNldC1sYXN0LWluZGV4ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgOS43Mjk3Ky0wLjkxMjAgICAgICAgICAgICA5LjUyNjcrLTAuNjYzOCAgICAgICAgICBt
aWdodCBiZSAxLjAyMTN4IGZhc3RlcgogICByZWdpc3Rlci1wcmVzc3VyZS1mcm9tLW9zciAgICAg
ICAgICAgICAgICAgICAgICAgIDE2LjE5NzkrLTEuNzU5NiAgICAgPyAgICAgMTguMDM5NystMS44
OTkwICAgICAgICA/IG1pZ2h0IGJlIDEuMTEzN3ggc2xvd2VyCiAgIHJlcGVhdC1tdWx0aS1nZXQt
Ynktb2Zmc2V0ICAgICAgICAgICAgICAgICAgICAgICAgMTkuMDAyNSstMC43MTU5ICAgICA/ICAg
ICAxOS44NjQxKy0yLjAwNDkgICAgICAgID8gbWlnaHQgYmUgMS4wNDUzeCBzbG93ZXIKICAgcmlj
aGFyZHMtZW1wdHktdHJ5LWNhdGNoICAgICAgICAgICAgICAgICAgICAgICAgICA0NS4xMzExKy0x
LjcxODggICAgICAgICAgIDQzLjk2MDQrLTAuMjc4MyAgICAgICAgICBtaWdodCBiZSAxLjAyNjZ4
IGZhc3RlcgogICByaWNoYXJkcy10cnktY2F0Y2ggICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMjIyLjMyOTUrLTUuNzYxNyAgICAgICAgICAyMTYuOTc3OSstMC45NDM5ICAgICAgICAgIG1p
Z2h0IGJlIDEuMDI0N3ggZmFzdGVyCiAgIHNjb3BlZC1hcmd1bWVudHMtbGVuZ3RoICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDYuNjY5OCstMC40MzUzICAgICAgICAgICAgNi42MjcyKy0wLjI0
NzkgICAgICAgIAogICBzY29wZWQtYXJndW1lbnRzLW92ZXJyaWRkZW4tbGVuZ3RoICAgICAgICAg
ICAgICAgICA2LjQxNDUrLTAuMDU0NSAgICAgPyAgICAgIDYuNjYxMystMC40NDgzICAgICAgICA/
IG1pZ2h0IGJlIDEuMDM4NXggc2xvd2VyCiAgIHNjb3BlZC1hcmd1bWVudHMtcG9zc2libHktb3Zl
cnJpZGRlbi1sZW5ndGggICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgNy44MTY2Ky0wLjE3NjAgICAgIF4gICAgICA3LjM4MDYrLTAuMTg2MyAg
ICAgICAgXiBkZWZpbml0ZWx5IDEuMDU5MXggZmFzdGVyCiAgIHNldC1mb3ItZWFjaCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuNzkzMistMC4xMDE5ICAgICAgICAgICAg
My43NTM2Ky0wLjEzMzEgICAgICAgICAgbWlnaHQgYmUgMS4wMTA1eCBmYXN0ZXIKICAgc2V0LWZv
ci1vZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNi41NTYzKy0wLjIx
NTggICAgID8gICAgICA2Ljc3MjYrLTAuMjUxOSAgICAgICAgPyBtaWdodCBiZSAxLjAzMzB4IHNs
b3dlcgogICBzZXR0ZXItcHJvdG90eXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA0LjQ1OTErLTAuMDg0MCAgICAgPyAgICAgIDQuNzU3MistMC43NDkyICAgICAgICA/IG1pZ2h0
IGJlIDEuMDY2OXggc2xvd2VyCiAgIHNldHRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDIuOTIxNCstMC4xMTgyICAgICA/ICAgICAgMi45ODMzKy0wLjE1NTAg
ICAgICAgID8gbWlnaHQgYmUgMS4wMjEyeCBzbG93ZXIKICAgc2ltcGxlLWFjdGl2YXRpb24tZGVt
byAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMi40MTgzKy0xLjc0NzQgICAgICAgICAgIDIy
LjAxODgrLTAuNTkyOCAgICAgICAgICBtaWdodCBiZSAxLjAxODF4IGZhc3RlcgogICBzaW1wbGUt
Z2V0dGVyLWFjY2VzcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE3LjUyMTQrLTEuNjQ4
MiAgICAgICAgICAgMTcuMjk1OCstMS41ODUxICAgICAgICAgIG1pZ2h0IGJlIDEuMDEzMHggZmFz
dGVyCiAgIHNpbXBsZS1wb2x5LWNhbGwtbmVzdGVkICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDMuODQ4MystMC4xOTcwICAgICAgICAgICAgMy43MjYyKy0wLjA3ODYgICAgICAgICAgbWlnaHQg
YmUgMS4wMzI4eCBmYXN0ZXIKICAgc2ltcGxlLXBvbHktY2FsbCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMS4xNDAyKy0wLjAxOTAgICAgID8gICAgICAxLjE4MzIrLTAuMTU0OSAg
ICAgICAgPyBtaWdodCBiZSAxLjAzNzd4IHNsb3dlcgogICBzaW1wbGUtcmVnZXhwLWV4ZWMtZm9s
ZGluZy1mYWlsICAgICAgICAgICAgICAgICAgICAyLjg5NTUrLTAuMTQ4MCAgICAgPyAgICAgIDIu
OTAxMCstMC4xMTE0ICAgICAgICA/CiAgIHNpbXBsZS1yZWdleHAtZXhlYy1mb2xkaW5nICAgICAg
ICAgICAgICAgICAgICAgICAgMTYuMDkzOCstMC4zOTM3ICAgICAgICAgICAxNi4wODgwKy0wLjE2
MDQgICAgICAgIAogICBzaW1wbGUtcmVnZXhwLXRlc3QtZm9sZGluZy1mYWlsLXdpdGgtaG9pc3Rl
ZC1yZWdleHAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgOC43MjU3Ky0wLjE4OTUgICAgID8gICAgICA4LjgzNDcrLTAuNzM2MCAgICAgICAg
PyBtaWdodCBiZSAxLjAxMjV4IHNsb3dlcgogICBzaW1wbGUtcmVnZXhwLXRlc3QtZm9sZGluZy1m
YWlsICAgICAgICAgICAgICAgICAgIDE0Ljc2NjErLTAuMzIxOSAgICAgPyAgICAgMTUuNDkxNyst
MS41MTQ2ICAgICAgICA/IG1pZ2h0IGJlIDEuMDQ5MXggc2xvd2VyCiAgIHNpbXBsZS1yZWdleHAt
dGVzdC1mb2xkaW5nLXdpdGgtaG9pc3RlZC1yZWdleHAgICAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOS45MjgxKy0xLjEzMDMgICAgICAgICAg
ICA5LjYzODArLTAuMzkyNSAgICAgICAgICBtaWdodCBiZSAxLjAzMDF4IGZhc3RlcgogICBzaW1w
bGUtcmVnZXhwLXRlc3QtZm9sZGluZyAgICAgICAgICAgICAgICAgICAgICAgIDE1Ljg4NjErLTAu
NTY5MiAgICAgPyAgICAgMTYuMjEwOCstMS4xOTUxICAgICAgICA/IG1pZ2h0IGJlIDEuMDIwNHgg
c2xvd2VyCiAgIHNpbi1ib29sZWFuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDYuMjk4NSstMC4yMTU1ICAgICA/ICAgICAgNi4zNTgwKy0wLjE3NzcgICAgICAgID8KICAg
c2luZ2xldG9uLXNjb3BlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2MC4xNTgz
Ky0xLjY1MDkgICAgICAgICAgIDU5LjE3ODErLTAuMzgxNyAgICAgICAgICBtaWdodCBiZSAxLjAx
NjZ4IGZhc3RlcgogICBzaW5rLWZ1bmN0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA1LjY1MTcrLTAuOTQyMyAgICAgICAgICAgIDQuOTk1NCstMC4yNDUzICAgICAgICAg
IG1pZ2h0IGJlIDEuMTMxNHggZmFzdGVyCiAgIHNpbmstaHVnZS1hY3RpdmF0aW9uICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMTIuNzk1NSstMS4yMTE1ICAgICAgICAgICAxMi43MDMyKy0w
Ljg2OTAgICAgICAgIAogICBzaW5rYWJsZS1uZXctb2JqZWN0LWRhZyAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDM4LjE3MDgrLTAuMzg1MiAgICAgICAgICAgMzguMTMyNystMC4zOTAzICAgICAg
ICAKICAgc2lua2FibGUtbmV3LW9iamVjdC10YWtlbiAgICAgICAgICAgICAgICAgICAgICAgICAz
My4xMTQwKy0wLjQyMDYgICAgID8gICAgIDMzLjE2NDMrLTAuNDg2NyAgICAgICAgPwogICBzaW5r
YWJsZS1uZXctb2JqZWN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE4LjI5MjUrLTEu
Mzc4NyAgICAgICAgICAgMTcuODg5NistMC44NDkzICAgICAgICAgIG1pZ2h0IGJlIDEuMDIyNXgg
ZmFzdGVyCiAgIHNsb3ctYXJyYXktcHJvZmlsZS1jb252ZXJnZW5jZSAgICAgICAgICAgICAgICAg
ICAgIDIuNDE1NistMC4wNTI5ICAgICA/ICAgICAgMi40MzUyKy0wLjI0NjIgICAgICAgID8KICAg
c2xvdy1jb252ZXJnZW5jZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi40OTQ1
Ky0wLjIyODIgICAgICAgICAgICAyLjQwMTArLTAuMDcyNCAgICAgICAgICBtaWdodCBiZSAxLjAz
OTB4IGZhc3RlcgogICBzbG93LXRlcm5hcmllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDEzLjQyMDkrLTEuNTUzMCAgICAgPyAgICAgMTMuNjU3NistMS4yOTgxICAgICAgICA/
IG1pZ2h0IGJlIDEuMDE3Nnggc2xvd2VyCiAgIHNvcnRpbmctYmVuY2htYXJrICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMTcuNDY2MystMC4zMDcxICAgICA/ICAgICAxOS4zODIxKy0y
LjIxNDAgICAgICAgID8gbWlnaHQgYmUgMS4xMDk3eCBzbG93ZXIKICAgc3BhcnNlLWNvbmRpdGlv
bmFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMS4xNTI2Ky0wLjIzMDIgICAgICAg
ICAgICAxLjA5MzIrLTAuMDU0NyAgICAgICAgICBtaWdodCBiZSAxLjA1NDN4IGZhc3RlcgogICBz
cGxpY2UtdG8tcmVtb3ZlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEzLjE4MDgr
LTEuMzMyMyAgICAgPyAgICAgMTQuMjE0MistMS44MjkyICAgICAgICA/IG1pZ2h0IGJlIDEuMDc4
NHggc2xvd2VyCiAgIHN0cmNhdC1jb25zdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDQuOTQ4MistMC4wNzQyICAgICA/ICAgICAgNS4wMDczKy0wLjIyNjAgICAgICAgID8g
bWlnaHQgYmUgMS4wMTE5eCBzbG93ZXIKICAgc3RyY2F0LWxlbmd0aC1jb25zdCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgNS4wODA0Ky0wLjIyMjEgICAgID8gICAgICA1LjEzNzMrLTAu
MjEyMiAgICAgICAgPyBtaWdodCBiZSAxLjAxMTJ4IHNsb3dlcgogICBzdHJpbmctY2hhci1jb2Rl
LWF0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE1LjA5NTUrLTEuNzc1MyAgICAgPyAg
ICAgMTUuMjUyOCstMS43NzYyICAgICAgICA/IG1pZ2h0IGJlIDEuMDEwNHggc2xvd2VyCiAgIHN0
cmluZy1jb25jYXQtb2JqZWN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuOTc0Mist
MC4wMzkxICAgICA/ICAgICAgMS45ODEyKy0wLjAzNzEgICAgICAgID8KICAgc3RyaW5nLWNvbmNh
dC1wYWlyLW9iamVjdCAgICAgICAgICAgICAgICAgICAgICAgICAgMS43NzEyKy0wLjA5ODcgICAg
ID8gICAgICAxLjkzMTMrLTAuMjU3NiAgICAgICAgPyBtaWdodCBiZSAxLjA5MDR4IHNsb3dlcgog
ICBzdHJpbmctY29uY2F0LXBhaXItc2ltcGxlICAgICAgICAgICAgICAgICAgICAgICAgICAyLjc1
MDQrLTAuMDcxMSAgICAgICAgICAgIDIuNzEyOCstMC4wNTkwICAgICAgICAgIG1pZ2h0IGJlIDEu
MDEzOXggZmFzdGVyCiAgIHN0cmluZy1jb25jYXQtc2ltcGxlICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDguNDU2OCstMC4wOTM1ICAgICA/ICAgICAgOC43Njc3Ky0wLjYwMjAgICAgICAg
ID8gbWlnaHQgYmUgMS4wMzY4eCBzbG93ZXIKICAgc3RyaW5nLWNvbnMtcmVwZWF0ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgNi4zMzYxKy0wLjgzMjEgICAgICAgICAgICA2LjAzMjYr
LTAuMTc3MSAgICAgICAgICBtaWdodCBiZSAxLjA1MDN4IGZhc3RlcgogICBzdHJpbmctY29ucy10
b3dlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2LjIzMzUrLTAuMTgxOSAgICAg
PyAgICAgIDYuMjQxMystMC4zMDA4ICAgICAgICA/CiAgIHN0cmluZy1lcXVhbGl0eSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMTUuOTMxOSstMC43MzUwICAgICA/ICAgICAxNi40
MTEwKy0xLjgwNjMgICAgICAgID8gbWlnaHQgYmUgMS4wMzAxeCBzbG93ZXIKICAgc3RyaW5nLWZy
b20tY2hhci1jb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNi4wNTkwKy0wLjUxMzkg
ICAgICAgICAgICA1LjkxMTQrLTAuMTU4NSAgICAgICAgICBtaWdodCBiZSAxLjAyNTB4IGZhc3Rl
cgogICBzdHJpbmctZ2V0LWJ5LXZhbC1iaWctY2hhciAgICAgICAgICAgICAgICAgICAgICAgICA0
LjE3OTUrLTAuMDgwNiAgICAgPyAgICAgIDQuNDc5NystMC40MjA4ICAgICAgICA/IG1pZ2h0IGJl
IDEuMDcxOHggc2xvd2VyCiAgIHN0cmluZy1nZXQtYnktdmFsLW91dC1vZi1ib3VuZHMtaW5zYW5l
ICAgICAgICAgICAgIDMuMjAxMCstMC4wNDc2ICAgICA/ICAgICAgMy4yMjcxKy0wLjA5OTkgICAg
ICAgID8KICAgc3RyaW5nLWdldC1ieS12YWwtb3V0LW9mLWJvdW5kcyAgICAgICAgICAgICAgICAg
ICAgNC4wNTU0Ky0wLjEzNTAgICAgID8gICAgICA0LjM2MjYrLTAuOTA1MSAgICAgICAgPyBtaWdo
dCBiZSAxLjA3NTd4IHNsb3dlcgogICBzdHJpbmctZ2V0LWJ5LXZhbCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAxLjg1ODQrLTAuMDgwOSAgICAgPyAgICAgIDEuODYwOSstMC4wMzUx
ICAgICAgICA/CiAgIHN0cmluZy1oYXNoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDEuOTA2MistMC4wNDM1ICAgICAgICAgICAgMS44NjI4Ky0wLjAyOTIgICAgICAgICAg
bWlnaHQgYmUgMS4wMjMzeCBmYXN0ZXIKICAgc3RyaW5nLWxvbmctaWRlbnQtZXF1YWxpdHkgICAg
ICAgICAgICAgICAgICAgICAgICAxNC4xMTY1Ky0xLjI4MzUgICAgICAgICAgIDEzLjU1MDUrLTEu
MDk3MiAgICAgICAgICBtaWdodCBiZSAxLjA0MTh4IGZhc3RlcgogICBzdHJpbmctb3V0LW9mLWJv
dW5kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2LjM1NjIrLTAuMTMyMCAgICAgISAg
ICAgIDkuNTk1NSstMC4yNjkyICAgICAgICAhIGRlZmluaXRlbHkgMS41MDk2eCBzbG93ZXIKICAg
c3RyaW5nLXByb3RvdHlwZS1zZWFyY2gtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMgICAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC45MTkzKy0w
LjEyNDggICAgID8gICAgICAwLjk4MjMrLTAuMzQ0MiAgICAgICAgPyBtaWdodCBiZSAxLjA2ODV4
IHNsb3dlcgogICBzdHJpbmctcHJvdG90eXBlLXNlYXJjaC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0
czIgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMC4zOTExKy0wLjAwNjQgICAgID8gICAgICAwLjQyMzErLTAuMDc1MSAgICAgICAgPyBtaWdo
dCBiZSAxLjA4MTd4IHNsb3dlcgogICBzdHJpbmctcHJvdG90eXBlLXNlYXJjaC1vYnNlcnZhYmxl
LXNpZGUtZWZmZWN0czMgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMC4zOTA0Ky0wLjAwOTcgICAgID8gICAgICAwLjM5NjErLTAuMDM1MyAg
ICAgICAgPyBtaWdodCBiZSAxLjAxNDd4IHNsb3dlcgogICBzdHJpbmctcHJvdG90eXBlLXNlYXJj
aC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czQgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMC4zMjEwKy0wLjA0NDcgICAgID8gICAgICAwLjMy
NzYrLTAuMDYzNyAgICAgICAgPyBtaWdodCBiZSAxLjAyMDV4IHNsb3dlcgogICBzdHJpbmctcHJv
dG90eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzICAgCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuNjQwOSstMC4wNzQwICAgICA/
ICAgICAgMS43MDU0Ky0wLjE0MTggICAgICAgID8gbWlnaHQgYmUgMS4wMzkzeCBzbG93ZXIKICAg
c3RyaW5nLXByb3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czIgICAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC4zMzAzKy0w
LjAwNzggICAgID8gICAgICAwLjM3MTIrLTAuMDUxOSAgICAgICAgPyBtaWdodCBiZSAxLjEyMzd4
IHNsb3dlcgogICBzdHJpbmctcHJvdG90eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3Rz
My1mbGFncyAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAwLjMzMzIrLTAuMDEyMyAgICAgPyAgICAgIDAuMzgzMistMC4wOTU4ICAgICAgICA/
IG1pZ2h0IGJlIDEuMTUwMnggc2xvd2VyCiAgIHN0cmluZy1wcm90b3R5cGUtc3BsaXQtb2JzZXJ2
YWJsZS1zaWRlLWVmZmVjdHMzLWdsb2JhbCAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAwLjMzNjUrLTAuMDE5NSAgICAgICAgICAgIDAuMzMx
MystMC4wMTYxICAgICAgICAgIG1pZ2h0IGJlIDEuMDE1N3ggZmFzdGVyCiAgIHN0cmluZy1wcm90
b3R5cGUtc3BsaXQtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMzLWlnbm9yZUNhc2UgICAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC4zNTQ1Ky0w
LjA0MDAgICAgICAgICAgICAwLjM0OTMrLTAuMDQ5OCAgICAgICAgICBtaWdodCBiZSAxLjAxNTB4
IGZhc3RlcgogICBzdHJpbmctcHJvdG90eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3Rz
My1tdWx0aWxpbmUgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMC4zMjc4Ky0wLjAwNzQgICAgID8gICAgICAwLjMzODIrLTAuMDE0NyAgICAg
ICAgPyBtaWdodCBiZSAxLjAzMTh4IHNsb3dlcgogICBzdHJpbmctcHJvdG90eXBlLXNwbGl0LW9i
c2VydmFibGUtc2lkZS1lZmZlY3RzMy1zdGlja3kgICAKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC4zMjg4Ky0wLjAxMzYgICAgID8gICAgICAw
LjM0NjArLTAuMDUyMSAgICAgICAgPyBtaWdodCBiZSAxLjA1MjR4IHNsb3dlcgogICBzdHJpbmct
cHJvdG90eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzMy11bmljb2RlICAgCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuMzMxNist
MC4wMDg1ICAgICA/ICAgICAgMC4zNjM5Ky0wLjA4MzcgICAgICAgID8gbWlnaHQgYmUgMS4wOTc0
eCBzbG93ZXIKICAgc3RyaW5nLXByb3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0
czQgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMC4zNDE2Ky0wLjAzOTkgICAgID8gICAgICAwLjM0NTkrLTAuMDU0OCAgICAgICAgPyBtaWdo
dCBiZSAxLjAxMjV4IHNsb3dlcgogICBzdHJpbmctcmVwZWF0LWFyaXRoICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDIyLjMxNDcrLTEuMjYyOCAgICAgICAgICAgMjEuNDg3NSstMS42NTQ1
ICAgICAgICAgIG1pZ2h0IGJlIDEuMDM4NXggZmFzdGVyCiAgIHN0cmluZy1yZXBlYXQtbm90LXJl
c29sdmluZy1maXhlZCAgICAgICAgICAgICAgICAgIDIuOTgxNistMC4xNDYzICAgICBeICAgICAg
Mi43MjAxKy0wLjA5MDYgICAgICAgIF4gZGVmaW5pdGVseSAxLjA5NjF4IGZhc3RlcgogICBzdHJp
bmctcmVwZWF0LW5vdC1yZXNvbHZpbmctbm8taW5saW5lICAgICAgICAgICAgICA0LjExOTcrLTAu
MzgxMyAgICAgICAgICAgIDMuNzc0MystMC4xMTg5ICAgICAgICAgIG1pZ2h0IGJlIDEuMDkxNXgg
ZmFzdGVyCiAgIHN0cmluZy1yZXBlYXQtbm90LXJlc29sdmluZyAgICAgICAgICAgICAgICAgICAg
ICAgIDMuOTI4NCstMC4xMTUzICAgICAgICAgICAgMy45MTEzKy0wLjIyNzEgICAgICAgIAogICBz
dHJpbmctcmVwZWF0LXJlc29sdmluZy1maXhlZCAgICAgICAgICAgICAgICAgICAgIDE4LjgyMjAr
LTEuNTI2NCAgICAgPyAgICAgMTkuMDcwNSstMS40NTA2ICAgICAgICA/IG1pZ2h0IGJlIDEuMDEz
Mnggc2xvd2VyCiAgIHN0cmluZy1yZXBlYXQtcmVzb2x2aW5nLW5vLWlubGluZSAgICAgICAgICAg
ICAgICAgMjUuNzU5NystMS40ODMxICAgICAgICAgICAyNC44NDgyKy0wLjYyODYgICAgICAgICAg
bWlnaHQgYmUgMS4wMzY3eCBmYXN0ZXIKICAgc3RyaW5nLXJlcGVhdC1yZXNvbHZpbmcgICAgICAg
ICAgICAgICAgICAgICAgICAgICAyNS42NzgwKy0xLjQ2NjEgICAgID8gICAgIDI2LjkwMTMrLTEu
ODYzNSAgICAgICAgPyBtaWdodCBiZSAxLjA0NzZ4IHNsb3dlcgogICBzdHJpbmctcmVwZWF0LXNp
bmdsZS1ub3QtcmVzb2x2aW5nICAgICAgICAgICAgICAgICA2LjgxNTUrLTAuNjYzNSAgICAgPyAg
ICAgIDcuMTQxOSstMC42MDIzICAgICAgICA/IG1pZ2h0IGJlIDEuMDQ3OXggc2xvd2VyCiAgIHN0
cmluZy1yZXBlYXQtc2luZ2xlLXJlc29sdmluZyAgICAgICAgICAgICAgICAgICAgIDYuNzI4MCst
MC41NjEwICAgICA/ICAgICAgNy4wODA2Ky0wLjk0MDQgICAgICAgID8gbWlnaHQgYmUgMS4wNTI0
eCBzbG93ZXIKICAgc3RyaW5nLXJlcGVhdC1zbWFsbC1ub3QtcmVzb2x2aW5nICAgICAgICAgICAg
ICAgICAgMy4zODY3Ky0wLjQ5MDQgICAgICAgICAgICAyLjk3MDErLTAuMDYwMSAgICAgICAgICBt
aWdodCBiZSAxLjE0MDJ4IGZhc3RlcgogICBzdHJpbmctcmVwZWF0LXNtYWxsLXJlc29sdmluZyAg
ICAgICAgICAgICAgICAgICAgIDI2LjEyNDErLTAuNzczOCAgICAgPyAgICAgMjYuMjU3MSstMS4w
MDkyICAgICAgICA/CiAgIHN0cmluZy1yZXBsYWNlLWVtcHR5ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDguMjg1NystMC4yMDczICAgICAgICAgICAgOC4yNDIzKy0wLjQyNjQgICAgICAg
IAogICBzdHJpbmctcmVwbGFjZS1nZW5lcmljICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUz
Ljc1NDArLTAuNTk5MyAgICAgPyAgICAgNTQuNTI2MistMS44ODc4ICAgICAgICA/IG1pZ2h0IGJl
IDEuMDE0NHggc2xvd2VyCiAgIHN0cmluZy1yZXBsYWNlICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDguNTAzNCstMC4yODc2ICAgICAgICAgICAgOC40Mzc1Ky0wLjIyMjcgICAg
ICAgIAogICBzdHJpbmctcm9wZS13aXRoLW9iamVjdCAgICAgICAgICAgICAgICAgICAgICAgICAg
IDE3LjM4MTArLTEuNDg2NCAgICAgICAgICAgMTUuODgzNystMC4yOTQ3ICAgICAgICAgIG1pZ2h0
IGJlIDEuMDk0M3ggZmFzdGVyCiAgIHN0cmluZy1zdWIgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMzMuMTM0OCstMS4zODM4ICAgICA/ICAgICAzNC44MTY3Ky0yLjk5MTUg
ICAgICAgID8gbWlnaHQgYmUgMS4wNTA4eCBzbG93ZXIKICAgc3RyaW5nLXRlc3QgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi45Njk5Ky0wLjAzODMgICAgIF4gICAgICAy
LjU5OTMrLTAuMDY5NiAgICAgICAgXiBkZWZpbml0ZWx5IDEuMTQyNnggZmFzdGVyCiAgIHN0cmlu
Zy10cmFuc2NvZGluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTUuODA3MCstMC40
OTc4ICAgICA/ICAgICAxNi4yOTcwKy0wLjY1OTMgICAgICAgID8gbWlnaHQgYmUgMS4wMzEweCBz
bG93ZXIKICAgc3RyaW5nLXZhci1lcXVhbGl0eSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAyNy43Nzc3Ky0wLjYxODMgICAgICAgICAgIDI2LjU2NjcrLTAuNjg1NCAgICAgICAgICBtaWdo
dCBiZSAxLjA0NTZ4IGZhc3RlcgogICBzdHJ1Y3R1cmUtaG9pc3Qtb3Zlci10cmFuc2l0aW9ucyAg
ICAgICAgICAgICAgICAgICAyLjE0NjArLTAuMDc1NCAgICAgPyAgICAgIDIuMTY3OCstMC4xNTIx
ICAgICAgICA/IG1pZ2h0IGJlIDEuMDEwMXggc2xvd2VyCiAgIHN1YnN0cmluZy1jb25jYXQtd2Vp
cmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzMuNjc4MSstMC42NDA4ICAgICA/ICAgICAz
NC4xOTEyKy0xLjQ0NTIgICAgICAgID8gbWlnaHQgYmUgMS4wMTUyeCBzbG93ZXIKICAgc3Vic3Ry
aW5nLWNvbmNhdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzNy42MTM1Ky0wLjgz
MzkgICAgICAgICAgIDM3LjU0MTYrLTEuMDIzMCAgICAgICAgCiAgIHN1YnN0cmluZyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDMuMDc3NystMC4yNzQ2ICAgICA/ICAg
ICA0My4xOTc3Ky0xLjAwMTcgICAgICAgID8KICAgc3dpdGNoLWNoYXItY29uc3RhbnQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMi4wMjUzKy0wLjA2ODAgICAgICAgICAgICAyLjAyMzEr
LTAuMDYwNyAgICAgICAgCiAgIHN3aXRjaC1jaGFyICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDQuNzkxMystMC4wNDYyICAgICBeICAgICAgNC41MjgxKy0wLjE2NjYgICAg
ICAgIF4gZGVmaW5pdGVseSAxLjA1ODF4IGZhc3RlcgogICBzd2l0Y2gtY29uc3RhbnQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjMyODArLTAuMTczMyAgICAgPyAgICAgIDMu
NDQyMystMC4yODQ3ICAgICAgICA/IG1pZ2h0IGJlIDEuMDM0NHggc2xvd2VyCiAgIHN3aXRjaC1z
dHJpbmctYmFzaWMtYmlnLXZhciAgICAgICAgICAgICAgICAgICAgICAgMTQuNzg0OCstMS41MzM2
ICAgICAgICAgICAxNC4wMzgyKy0wLjcwNDQgICAgICAgICAgbWlnaHQgYmUgMS4wNTMyeCBmYXN0
ZXIKICAgc3dpdGNoLXN0cmluZy1iYXNpYy1iaWcgICAgICAgICAgICAgICAgICAgICAgICAgICAx
Mi44MzQ1Ky0wLjg0NzggICAgID8gICAgIDEzLjE0NTcrLTAuODkyOCAgICAgICAgPyBtaWdodCBi
ZSAxLjAyNDJ4IHNsb3dlcgogICBzd2l0Y2gtc3RyaW5nLWJhc2ljLXZhciAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDEzLjgzMzUrLTAuOTk5MiAgICAgPyAgICAgMTMuODc2MystMC44MDYwICAg
ICAgICA/CiAgIHN3aXRjaC1zdHJpbmctYmFzaWMgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMTEuNDYxMCstMC4xNDMwICAgICA/ICAgICAxMS45NDk0Ky0wLjU0NzUgICAgICAgID8gbWln
aHQgYmUgMS4wNDI2eCBzbG93ZXIKICAgc3dpdGNoLXN0cmluZy1iaWctbGVuZ3RoLXRvd2VyLXZh
ciAgICAgICAgICAgICAgICAxOS41MDI1Ky0wLjYzMzggICAgICAgICAgIDE4Ljg5MzIrLTAuMzE1
NCAgICAgICAgICBtaWdodCBiZSAxLjAzMjN4IGZhc3RlcgogICBzd2l0Y2gtc3RyaW5nLWxlbmd0
aC10b3dlci12YXIgICAgICAgICAgICAgICAgICAgIDE1LjUzNTUrLTEuMzExMyAgICAgPyAgICAg
MTUuNzIzNystMS42MzExICAgICAgICA/IG1pZ2h0IGJlIDEuMDEyMXggc2xvd2VyCiAgIHN3aXRj
aC1zdHJpbmctbGVuZ3RoLXRvd2VyICAgICAgICAgICAgICAgICAgICAgICAgMTEuNDM3NistMC4z
ODUxICAgICAgICAgICAxMS4xNzg1Ky0wLjE0ODcgICAgICAgICAgbWlnaHQgYmUgMS4wMjMyeCBm
YXN0ZXIKICAgc3dpdGNoLXN0cmluZy1zaG9ydCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAxMS4xODk0Ky0wLjY4MDUgICAgICAgICAgIDEwLjg4NjErLTAuMTExNiAgICAgICAgICBtaWdo
dCBiZSAxLjAyNzl4IGZhc3RlcgogICBzd2l0Y2ggICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA1Ljk2MjYrLTAuMTg2OCAgICAgPyAgICAgIDYuNDYxMCstMC42NTM1
ICAgICAgICA/IG1pZ2h0IGJlIDEuMDgzNnggc2xvd2VyCiAgIHN5bWJvbC10b3N0cmluZ3RhZyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuOTI1MistMC4xMTQ4ICAgICAgICAgICAg
Mi45MTEzKy0wLjA5ODkgICAgICAgIAogICB0ZWFyLW9mZi1hcmd1bWVudHMtc2ltcGxlICAgICAg
ICAgICAgICAgICAgICAgICAgICAyLjg0ODErLTAuMjk3NSAgICAgICAgICAgIDIuNTQ3MSstMC4z
NDE5ICAgICAgICAgIG1pZ2h0IGJlIDEuMTE4MnggZmFzdGVyCiAgIHRlYXItb2ZmLWFyZ3VtZW50
cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuMjc0NystMC4yNzg3ICAgICAgICAg
ICAgMy4xODMxKy0wLjA0NTQgICAgICAgICAgbWlnaHQgYmUgMS4wMjg4eCBmYXN0ZXIKICAgdGVt
cG9yYWwtc3RydWN0dXJlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMi4zMjE1Ky0w
Ljg1NTMgICAgICAgICAgIDEyLjA5MTQrLTAuNzc2OSAgICAgICAgICBtaWdodCBiZSAxLjAxOTB4
IGZhc3RlcgogICB0by1pbnQzMi1ib29sZWFuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDE1LjExMDYrLTEuMjQwNyAgICAgXiAgICAgMTIuMzEwNistMC4xNDY4ICAgICAgICBeIGRl
ZmluaXRlbHkgMS4yMjc0eCBmYXN0ZXIKICAgdHJ5LWNhdGNoLWdldC1ieS12YWwtY2xvbmVkLWFy
Z3VtZW50cyAgICAgICAgICAgICAgMy4zMTc2Ky0wLjQ5NzUgICAgICAgICAgICAzLjIxMTErLTAu
MTQ3NiAgICAgICAgICBtaWdodCBiZSAxLjAzMzJ4IGZhc3RlcgogICB0cnktY2F0Y2gtZ2V0LWJ5
LXZhbC1kaXJlY3QtYXJndW1lbnRzICAgICAgICAgICAgICAxLjk5NTUrLTAuMTI5NSAgICAgICAg
ICAgIDEuOTYxOSstMC4xMzgyICAgICAgICAgIG1pZ2h0IGJlIDEuMDE3MXggZmFzdGVyCiAgIHRy
eS1jYXRjaC1nZXQtYnktdmFsLXNjb3BlZC1hcmd1bWVudHMgICAgICAgICAgICAgIDQuMTQ4Nist
MC4zMDkzICAgICAgICAgICAgMy45NzU4Ky0wLjE1NzIgICAgICAgICAgbWlnaHQgYmUgMS4wNDM1
eCBmYXN0ZXIKICAgdHlwZWQtYXJyYXktZ2V0LXNldC1ieS12YWwtcHJvZmlsaW5nICAgICAgICAg
ICAgICAxOS43Nzg0Ky0wLjYyNDAgICAgID8gICAgIDE5Ljg4NDErLTAuNzcyMSAgICAgICAgPwog
ICB1bmRlZmluZWQtcHJvcGVydHktYWNjZXNzICAgICAgICAgICAgICAgICAgICAgICAgMjc2LjE4
OTIrLTcuMjE2MiAgICAgICAgICAyNzMuMzg0MCstMy42NjMwICAgICAgICAgIG1pZ2h0IGJlIDEu
MDEwM3ggZmFzdGVyCiAgIHVuZGVmaW5lZC10ZXN0ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDMuMjIwMistMC4xMzQ5ICAgICBeICAgICAgMi43MTE4Ky0wLjA5MDIgICAgICAg
IF4gZGVmaW5pdGVseSAxLjE4NzV4IGZhc3RlcgogICB1bnByb2ZpbGVkLWxpY20gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA1Ljk2MTMrLTAuNTM4MyAgICAgICAgICAgIDUuNzU1
NSstMC4wODUyICAgICAgICAgIG1pZ2h0IGJlIDEuMDM1OHggZmFzdGVyCiAgIHVudHlwZWQtc3Ry
aW5nLWZyb20tY2hhci1jb2RlICAgICAgICAgICAgICAgICAgICAgIDkuODg2MystMC41MDI0ICAg
ICAgICAgICAgOS42MDI3Ky0wLjE3OTggICAgICAgICAgbWlnaHQgYmUgMS4wMjk1eCBmYXN0ZXIK
ICAgdjgtcmF5dHJhY2Utd2l0aC1lbXB0eS10cnktY2F0Y2ggICAgICAgICAgICAgICAgICAyNy40
MTAyKy0xLjMxMTggICAgID8gICAgIDI3LjQ2ODgrLTAuNTQ3NiAgICAgICAgPwogICB2OC1yYXl0
cmFjZS13aXRoLXRyeS1jYXRjaC1oaWdoLWZyZXF1ZW5jeS10aHJvd3MgICAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDM3NS4wNDk2Ky00LjIxODEg
ICAgID8gICAgMzc2LjcyMzYrLTguMDgwNSAgICAgICAgPwogICB2OC1yYXl0cmFjZS13aXRoLXRy
eS1jYXRjaCAgICAgICAgICAgICAgICAgICAgICAgIDU5LjM2NTYrLTAuNDIzMyAgICAgPyAgICAg
NjAuMzY2NSstMS42MDUzICAgICAgICA/IG1pZ2h0IGJlIDEuMDE2OXggc2xvd2VyCiAgIHY4LXJl
Z2V4cC1zZWFyY2ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNTEuMjIwOSstMC40
Nzg4ICAgICA/ICAgICA1MS43NDkxKy0xLjYzNzcgICAgICAgID8gbWlnaHQgYmUgMS4wMTAzeCBz
bG93ZXIKICAgdmFyYXJncy1jYWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAxMy4zOTYyKy0wLjg0NTIgICAgICAgICAgIDEyLjc3NTErLTAuNzA4MSAgICAgICAgICBtaWdo
dCBiZSAxLjA0ODZ4IGZhc3RlcgogICB2YXJhcmdzLWNvbnN0cnVjdC1pbmxpbmUgICAgICAgICAg
ICAgICAgICAgICAgICAgIDE4LjIxMTErLTAuNzgzNiAgICAgICAgICAgMTguMDQwNCstMC42MzUw
ICAgICAgICAKICAgdmFyYXJncy1jb25zdHJ1Y3QgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAxMy43ODA4Ky0wLjU1ODYgICAgID8gICAgIDEzLjg3NTIrLTAuODg1OCAgICAgICAgPwog
ICB2YXJhcmdzLWlubGluZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4LjE0
MjArLTAuNjM1NiAgICAgICAgICAgIDcuNjQxMCstMC4xNDEwICAgICAgICAgIG1pZ2h0IGJlIDEu
MDY1NnggZmFzdGVyCiAgIHZhcmFyZ3Mtc3RyaWN0LW1vZGUgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDkuMDMyMystMC4yOTc3ICAgICAgICAgICAgOC45NjgyKy0wLjMxNjggICAgICAg
IAogICB2YXJhcmdzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA5
LjQwMDkrLTAuNjIzMyAgICAgICAgICAgIDkuMDQ3MCstMC40NzAxICAgICAgICAgIG1pZ2h0IGJl
IDEuMDM5MXggZmFzdGVyCiAgIHdlaXJkLWlubGluaW5nLWNvbnN0LXByb3AgICAgICAgICAgICAg
ICAgICAgICAgICAgIDIuMTYwOSstMC4yODcwICAgICAgICAgICAgMS45NTU4Ky0wLjA3NjEgICAg
ICAgICAgbWlnaHQgYmUgMS4xMDQ5eCBmYXN0ZXIKCiAgIDxnZW9tZXRyaWM+ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYuNjI4MystMC4wMTM0ICAgICBeICAgICAgNi41
NDUxKy0wLjAyNjAgICAgICAgIF4gZGVmaW5pdGVseSAxLjAxMjd4IGZhc3RlcgoKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaXBPZlRyZWUg
ICAgICAgICAgICAgICAgICAgVGhpbmdzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAKQXNtQmVuY2g6CiAgIGJpZ2ZpYi5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA0MzcuOTQwNistNy40OTU4ICAgICAgICAgIDQzMy4yNDQwKy0xLjgzNjEgICAg
ICAgICAgbWlnaHQgYmUgMS4wMTA4eCBmYXN0ZXIKICAgY3JheS5jICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDM2Mi40NzAyKy02LjM1ODMgICAgICAgICAgMzYxLjcz
MTIrLTEuODM1NSAgICAgICAgCiAgIGRyeS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA0NzEuNzUwMCstNzcuNTI4NCAgICAgICAgIDQ1Mi40ODg4Ky03NC4yMjk4
ICAgICAgICAgbWlnaHQgYmUgMS4wNDI2eCBmYXN0ZXIKICAgRmxvYXRNTS5jICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcwNS4zNzMwKy05LjU3NDAgICAgID8gICAgNzQ3
LjQ2MDQrLTEyMy4xMjQwICAgICAgPyBtaWdodCBiZSAxLjA1OTd4IHNsb3dlcgogICBnY2MtbG9v
cHMuY3BwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzNTk3LjkyNjYrLTIyLjA1
OTEgICAgPyAgIDM2MjQuMjU0OCstNzMuMTQ3MiAgICAgICA/CiAgIG4tYm9keS5jICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3ODMuNjA0NSstNC4zMDg3ICAgICA/ICAg
IDc4My44Mjc1Ky00LjMxNzkgICAgICAgID8KICAgUXVpY2tzb3J0LmMgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDM5My41NTkwKy0xMy4wNjgyICAgICAgICAgMzg3LjUzMDYr
LTMuOTc3NiAgICAgICAgICBtaWdodCBiZSAxLjAxNTZ4IGZhc3RlcgogICBzdGVwYW5vdl9jb250
YWluZXIuY3BwICAgICAgICAgICAgICAgICAgICAgICAgICAzMjU3LjUzNTIrLTQwLjA1MjEgICAg
ICAgIDMyNDcuNDgyOSstMzEuMzg4MyAgICAgICAKICAgVG93ZXJzLmMgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDI2Ni4xMzA4Ky0wLjc4NzYgICAgID8gICAgMjY2LjE0
NDcrLTIuMDA2MSAgICAgICAgPwoKICAgPGdlb21ldHJpYz4gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDcxNy4zODgxKy0xNC43NDkzICAgICAgICAgNzE2LjM1MTArLTIzLjYw
NzQgICAgICAgICBtaWdodCBiZSAxLjAwMTR4IGZhc3RlcgoKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaXBPZlRyZWUgICAgICAgICAgICAg
ICAgICAgVGhpbmdzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKQ29tcHJl
c3Npb25CZW5jaDoKICAgaHVmZm1hbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAyOS43NDk3Ky0xLjI0OTggICAgICAgICAgIDI5LjI1MDcrLTIuMjQ2OSAgICAgICAg
ICBtaWdodCBiZSAxLjAxNzF4IGZhc3RlcgogICBhcml0aG1ldGljLXNpbXBsZSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMjU3LjI0MzYrLTUuNjEyOCAgICAgICAgICAyNTMuOTkwOSst
Mi4zNjUwICAgICAgICAgIG1pZ2h0IGJlIDEuMDEyOHggZmFzdGVyCiAgIGFyaXRobWV0aWMtcHJl
Y2lzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMzcuMDEyOSstMC41NjQ3ICAgICAh
ICAgIDIzOC44ODQ4Ky0xLjE5MzkgICAgICAgICEgZGVmaW5pdGVseSAxLjAwNzl4IHNsb3dlcgog
ICBhcml0aG1ldGljLWNvbXBsZXgtcHJlY2lzZSAgICAgICAgICAgICAgICAgICAgICAgMjQwLjQ1
MzErLTkuNzg2MCAgICAgICAgICAyMzcuODk3OCstMS42Mjc1ICAgICAgICAgIG1pZ2h0IGJlIDEu
MDEwN3ggZmFzdGVyCiAgIGFyaXRobWV0aWMtcHJlY2lzZS1vcmRlci0wICAgICAgICAgICAgICAg
ICAgICAgICAyNjIuMzc5OSstMS4xMTUxICAgICA/ICAgIDI2Mi45ODg5Ky0yLjM5NDcgICAgICAg
ID8KICAgYXJpdGhtZXRpYy1wcmVjaXNlLW9yZGVyLTEgICAgICAgICAgICAgICAgICAgICAgIDI5
Mi44NzcyKy01LjExNTIgICAgID8gICAgMjk1LjI4MTIrLTkuMTM4MyAgICAgICAgPwogICBhcml0
aG1ldGljLXByZWNpc2Utb3JkZXItMiAgICAgICAgICAgICAgICAgICAgICAgMzM0Ljc1OTArLTMu
NTYwNCAgICAgPyAgICAzNDIuMTI0MistMTAuMTU3MiAgICAgICA/IG1pZ2h0IGJlIDEuMDIyMHgg
c2xvd2VyCiAgIGFyaXRobWV0aWMtc2ltcGxlLW9yZGVyLTEgICAgICAgICAgICAgICAgICAgICAg
ICAzMDEuNTE2MCstNC41NTA4ICAgICA/ICAgIDMwMS41NDk0Ky0yLjg4NzYgICAgICAgID8KICAg
YXJpdGhtZXRpYy1zaW1wbGUtb3JkZXItMiAgICAgICAgICAgICAgICAgICAgICAgIDM1NS41NTEx
Ky02LjUxMDcgICAgICAgICAgMzUyLjU1MTcrLTUuMDU4NyAgICAgICAgCiAgIGx6LXN0cmluZyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNzguNDE2NSstNC4yNDU3ICAg
ICA/ICAgIDI4MS4yMjE1Ky02LjU5OTMgICAgICAgID8gbWlnaHQgYmUgMS4wMTAxeCBzbG93ZXIK
CiAgIDxnZW9tZXRyaWM+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMjUu
MTE3NCstMS4xODE2ICAgICA/ICAgIDIyNS4xMjg3Ky0yLjI5NTYgICAgICAgID8gbWlnaHQgYmUg
MS4wMDAxeCBzbG93ZXIKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgVGlwT2ZUcmVlICAgICAgICAgICAgICAgICAgIFRoaW5ncyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCkdlb21lYW4gb2YgcHJlZmVycmVkIG1lYW5z
OgogICA8c2NhbGVkLXJlc3VsdD4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ0
LjU1NzArLTAuMTU1OCAgICAgICAgICAgNDQuNDI3MCstMC4yNTk0ICAgICAgICAgIG1pZ2h0IGJl
IDEuMDAyOXggZmFzdGVyCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>278412</attachid>
            <date>2016-05-09 11:04:51 -0700</date>
            <delta_ts>2016-05-09 11:44:03 -0700</delta_ts>
            <desc>works on 64-bit</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>97466</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjAwNTgxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1NCBA
QAorMjAxNi0wNS0wOSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAg
IFBvbHltb3JwaGljIG9wZXJhbmRzIGluIG9wZXJhdG9ycyBjb2VyY2VzIGRvd25zdHJlYW0gdmFs
dWVzIHRvIGRvdWJsZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE1MTc5MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAg
ICAgICAKKyAgICAgICAgUHJldmlvdXNseSBpZiBhbiBvYmplY3QgZmxvd2VkIGludG8gYXJpdGht
ZXRpYywgdGhlIHByZWRpY3Rpb24gcHJvcGFnYXRpb24gcGhhc2Ugd291bGQgZWl0aGVyCisgICAg
ICAgIGFzc3VtZSB0aGF0IHRoZSBvdXRwdXQgb2YgdGhlIGFyaXRobWV0aWMgaGFkIHRvIGJlIGRv
dWJsZSBvciBzb21ldGltZXMgaXQgd291bGQgYXNzdW1lIHRoYXQgaXQKKyAgICAgICAgY291bGRu
J3QgYmUgZG91YmxlLiBXZSB3YW50IGl0IHRvIG9ubHkgYXNzdW1lIHRoYXQgdGhlIG91dHB1dCBp
cyBkb3VibGUgaWYgaXQgYWN0dWFsbHkgaGFkIGJlZW4uCisgICAgICAgIAorICAgICAgICBUaGUg
Zmlyc3QgcGFydCBvZiB0aGlzIHBhdGNoIGlzIHRvIHJvbGwgb3V0IGh0dHA6Ly90cmFjLndlYmtp
dC5vcmcvY2hhbmdlc2V0LzIwMDUwMi4gVGhhdCByZW1vdmVkCisgICAgICAgIHNvbWUgb2YgdGhl
IG1hY2hpbmVyeSB0aGF0IHdlIGhhZCBpbiBwbGFjZSB0byBkZXRlY3Qgd2hldGhlciB0aGUgb3V0
cHV0IG9mIGFuIG9wZXJhdGlvbiBpcyBpbnQgb3IKKyAgICAgICAgZG91YmxlLiBUaGF0IGNoYW5n
ZXNldCBjbGFpbWVkIHRoYXQgdGhlIG1hY2hpbmVyeSB3YXMgImZ1bmRhbWVudGFsbHkgYnJva2Vu
Ii4gSXQgYWN0dWFsbHkgd2Fzbid0LgorICAgICAgICBUaGUgcmVhc29uIHdoeSBpdCBkaWRuJ3Qg
d29yayB3YXMgdGhhdCBCeXRlQ29kZVBhcnNlciB3YXMgaWdub3JpbmcgaXQgaWYgbGlrZWx5VG9U
YWtlU2xvd0Nhc2Ugd2FzCisgICAgICAgIGZhbHNlLiBJIHRoaW5rIHRoaXMgd2FzIGEgY29tcGxl
dGUgZ29vZi11cDogdGhlIGNvZGUgaW4gQnl0ZUNvZGVQYXJzZXI6Om1ha2VTYWZlIHdhcyBzdHJ1
Y3R1cmVkCisgICAgICAgIGluIGEgd2F5IHRoYXQgbWFkZSBpdCBub24tb2J2aW91cyB0aGF0IHRo
ZSBtZXRob2QgaXMgYSBuby1vcCBpZiAhbGlrZWx5VG9UYWtlU2xvd0Nhc2UuIFNvLCB0aGlzCisg
ICAgICAgIGNoYW5nZSByb2xscyBvdXQgcjIwMDUwMiBhbmQgbWFrZXMgUmVzdWx0UHJvZmlsZSBk
byBpdHMgam9iIGJ5IHJlc2hhcGluZyBob3cgbWFrZVNhZmUgcHJvY2Vzc2VzCisgICAgICAgIGl0
LgorICAgICAgICAKKyAgICAgICAgVGhpcyBhbHNvIG1ha2VzIHR3byBvdGhlciBjaGFuZ2VzIHRv
IHNob3JlIHVwIFJlc3VsdFByb2ZpbGU6CisgICAgICAgIC0gT1NSIGV4aXQgY2FuIG5vdyByZWZp
bmUgYSBSZXN1bHRQcm9maWxlIHRoZSBzYW1lIHdheSB0aGF0IGl0IHJlZmluZXMgVmFsdWVQcm9m
aWxlLgorICAgICAgICAtIEJhc2VsaW5lIEpJVCBzbG93IHBhdGhzIG5vdyBzZXQgYml0cyBpbiBS
ZXN1bHRQcm9maWxlLgorICAgICAgICAKKyAgICAgICAgQmFzZWQgb24gdGhpcyBzdHVmZiwgdGhl
IERGRyBub3cgcHJlZGljdHMgaW50L2RvdWJsZS9zdHJpbmcgaW4gb3BfYWRkL29wX3N1Yi9vcF9t
dWwgYmFzZWQgb24KKyAgICAgICAgUmVzdWx0UHJvZmlsZXMuIFRvIGJlIGNvbnNlcnZhdGl2ZSwg
d2Ugc3RpbGwgb25seSB1c2UgdGhlIFJlc3VsdFByb2ZpbGVzIGlmIHRoZSBpbmNvbWluZworICAg
ICAgICBwcmVkaWN0aW9uIGlzIG5vdCBudW1iZXItb3ItYm9vbGVhbi4gVGhpcyBlbnN1cmVzIHRo
YXQgd2UgZXhhY3RseSByZXRhaW4gb3VyIG9sZCBiZWhhdmlvciBpbgorICAgICAgICB0aG9zZSBj
YXNlcyBmb3Igd2hpY2ggaXQgd2FzIHR1bmVkLiBCdXQgSSBob3BlIHRvIHJlbW92ZSB0aGlzIHNv
b24uIEkgYmVsaWV2ZSB0aGF0IFJlc3VsdFByb2ZpbGUKKyAgICAgICAgaXMgYWxyZWFkeSBzdHJp
Y3RseSBiZXR0ZXIgdGhhbiB3aGF0IHByZWRpY3Rpb24gcHJvcGFnYXRpb24gd2FzIGRvaW5nIGJl
Zm9yZS4KKyAgICAgICAgCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogSmF2
YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBieXRlY29k
ZS9Db2RlQmxvY2suaDoKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjphZGRGcmVxdWVudEV4aXRT
aXRlKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpoYXNFeGl0U2l0ZSk6CisgICAgICAgICog
Ynl0ZWNvZGUvREZHRXhpdFByb2ZpbGUuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkZyZXF1ZW50
RXhpdFNpdGU6OmR1bXApOgorICAgICAgICAoSlNDOjpERkc6OkV4aXRQcm9maWxlOjpFeGl0UHJv
ZmlsZSk6CisgICAgICAgIChKU0M6OkRGRzo6RXhpdFByb2ZpbGU6On5FeGl0UHJvZmlsZSk6Cisg
ICAgICAgIChKU0M6OkRGRzo6RXhpdFByb2ZpbGU6OmFkZCk6CisgICAgICAgICogYnl0ZWNvZGUv
REZHRXhpdFByb2ZpbGUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpGcmVxdWVudEV4aXRTaXRlOjpp
c0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSk6CisgICAgICAgICogYnl0ZWNvZGUvTWV0aG9kT2ZHZXR0
aW5nQVZhbHVlUHJvZmlsZS5jcHA6CisgICAgICAgIChKU0M6Ok1ldGhvZE9mR2V0dGluZ0FWYWx1
ZVByb2ZpbGU6OmZyb21MYXp5T3BlcmFuZCk6CisgICAgICAgIChKU0M6Ok1ldGhvZE9mR2V0dGlu
Z0FWYWx1ZVByb2ZpbGU6OmVtaXRSZXBvcnRWYWx1ZSk6CisgICAgICAgIChKU0M6Ok1ldGhvZE9m
R2V0dGluZ0FWYWx1ZVByb2ZpbGU6OmdldFNwZWNGYWlsQnVja2V0KTogRGVsZXRlZC4KKyAgICAg
ICAgKiBieXRlY29kZS9NZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlLmg6CisgICAgICAgIChK
U0M6Ok1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGU6Ok1ldGhvZE9mR2V0dGluZ0FWYWx1ZVBy
b2ZpbGUpOgorICAgICAgICAoSlNDOjpNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlOjpvcGVy
YXRvciBib29sKToKKyAgICAgICAgKEpTQzo6TWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZTo6
b3BlcmF0b3IhKTogRGVsZXRlZC4KKyAgICAgICAgKiBieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vz
cy5jcHA6CisgICAgICAgIChKU0M6OkFjY2Vzc0Nhc2U6OmdlbmVyYXRlSW1wbCk6CisgICAgICAg
ICogYnl0ZWNvZGUvVmFsdWVQcm9maWxlLmNwcDoKKyAgICAgICAgKEpTQzo6UmVzdWx0UHJvZmls
ZTo6ZW1pdERldGVjdEJpdHNMaWdodCk6CisgICAgICAgIChKU0M6OlJlc3VsdFByb2ZpbGU6OmVt
aXRTZXREb3VibGUpOgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjplbWl0U2V0Tm9uTnVt
YmVyKToKKyAgICAgICAgKFdURjo6cHJpbnRJbnRlcm5hbCk6CisgICAgICAgICogYnl0ZWNvZGUv
VmFsdWVQcm9maWxlLmg6CisgICAgICAgIChKU0M6OlJlc3VsdFByb2ZpbGU6OlJlc3VsdFByb2Zp
bGUpOgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpieXRlY29kZU9mZnNldCk6CisgICAg
ICAgIChKU0M6OlJlc3VsdFByb2ZpbGU6OnNwZWNpYWxGYXN0UGF0aENvdW50KToKKyAgICAgICAg
KEpTQzo6UmVzdWx0UHJvZmlsZTo6ZGlkT2JzZXJ2ZU5vbkludDMyKToKKyAgICAgICAgKEpTQzo6
UmVzdWx0UHJvZmlsZTo6ZGlkT2JzZXJ2ZURvdWJsZSk6CisgICAgICAgIChKU0M6OlJlc3VsdFBy
b2ZpbGU6OmRpZE9ic2VydmVOb25OZWdaZXJvRG91YmxlKToKKyAgICAgICAgKEpTQzo6UmVzdWx0
UHJvZmlsZTo6ZGlkT2JzZXJ2ZU5lZ1plcm9Eb3VibGUpOgorICAgICAgICAoSlNDOjpSZXN1bHRQ
cm9maWxlOjpkaWRPYnNlcnZlTm9uTnVtYmVyKToKKyAgICAgICAgKEpTQzo6UmVzdWx0UHJvZmls
ZTo6ZGlkT2JzZXJ2ZUludDMyT3ZlcmZsb3cpOgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxl
OjpkaWRPYnNlcnZlSW50NTJPdmVyZmxvdyk6CisgICAgICAgIChKU0M6OlJlc3VsdFByb2ZpbGU6
OnNldE9ic2VydmVkTm9uTmVnWmVyb0RvdWJsZSk6CisgICAgICAgIChKU0M6OlJlc3VsdFByb2Zp
bGU6OnNldE9ic2VydmVkTmVnWmVyb0RvdWJsZSk6CisgICAgICAgIChKU0M6OlJlc3VsdFByb2Zp
bGU6OnNldE9ic2VydmVkTm9uTnVtYmVyKToKKyAgICAgICAgKEpTQzo6UmVzdWx0UHJvZmlsZTo6
c2V0T2JzZXJ2ZWRJbnQzMk92ZXJmbG93KToKKyAgICAgICAgKEpTQzo6UmVzdWx0UHJvZmlsZTo6
YWRkcmVzc09mRmxhZ3MpOgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjphZGRyZXNzT2ZT
cGVjaWFsRmFzdFBhdGhDb3VudCk6CisgICAgICAgIChKU0M6OlJlc3VsdFByb2ZpbGU6OmRldGVj
dEJpdHNMaWdodCk6CisgICAgICAgIChKU0M6OlJlc3VsdFByb2ZpbGU6Omhhc0JpdHMpOgorICAg
ICAgICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0
ZUNvZGVQYXJzZXI6Om1ha2VTYWZlKToKKyAgICAgICAgKiBkZmcvREZHRml4dXBQaGFzZS5jcHA6
CisgICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFzZTo6Zml4dXBOb2RlKToKKyAgICAgICAgKiBk
ZmcvREZHR3JhcGguY3BwOgorICAgICAgICAoSlNDOjpERkc6OkdyYXBoOjplbnN1cmVOYXR1cmFs
TG9vcHMpOgorICAgICAgICAoSlNDOjpERkc6OkdyYXBoOjptZXRob2RPZkdldHRpbmdBVmFsdWVQ
cm9maWxlRm9yKToKKyAgICAgICAgKEpTQzo6REZHOjpHcmFwaDo6dmFsdWVQcm9maWxlRm9yKTog
RGVsZXRlZC4KKyAgICAgICAgKiBkZmcvREZHR3JhcGguaDoKKyAgICAgICAgKEpTQzo6REZHOjpH
cmFwaDo6aGFzRXhpdFNpdGUpOgorICAgICAgICAoSlNDOjpERkc6OkdyYXBoOjpudW1CbG9ja3Mp
OgorICAgICAgICAqIGRmZy9ERkdOb2RlLmg6CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6YXJp
dGhOb2RlRmxhZ3MpOgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6Om1heUhhdmVOb25JbnRSZXN1
bHQpOgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6Om1heUhhdmVEb3VibGVSZXN1bHQpOgorICAg
ICAgICAoSlNDOjpERkc6Ok5vZGU6Om1heUhhdmVOb25OdW1iZXJSZXN1bHQpOgorICAgICAgICAo
SlNDOjpERkc6Ok5vZGU6Omhhc0NvbnN0YW50QnVmZmVyKToKKyAgICAgICAgKiBkZmcvREZHTm9k
ZUZsYWdzLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpkdW1wTm9kZUZsYWdzKToKKyAgICAgICAg
KiBkZmcvREZHTm9kZUZsYWdzLmg6CisgICAgICAgICogZGZnL0RGR09TUkV4aXRDb21waWxlcjY0
LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpPU1JFeGl0Q29tcGlsZXI6OmNvbXBpbGVFeGl0KToK
KyAgICAgICAgKiBkZmcvREZHT3BlcmF0aW9ucy5jcHA6CisgICAgICAgICogZGZnL0RGR09wZXJh
dGlvbnMuaDoKKyAgICAgICAgKiBkZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3Bw
OgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oOgorICAgICAgICAoSlNDOjpERkc6
OlNwZWN1bGF0aXZlSklUOjpjYWxsT3BlcmF0aW9uKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3Vs
YXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmZpbGxT
cGVjdWxhdGVJbnQzMkludGVybmFsKToKKyAgICAgICAgKiBmdGwvRlRMT1NSRXhpdENvbXBpbGVy
LmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpjb21waWxlU3R1Yik6CisgICAgICAgICogaml0L0Fz
c2VtYmx5SGVscGVycy5oOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmJyYW5jaElm
RXF1YWwpOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmJyYW5jaElmTm90Q2VsbCk6
CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6YnJhbmNoSWZOb3ROdW1iZXIpOgorICAg
ICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmJyYW5jaElmTm90RG91YmxlS25vd25Ob3RJbnQz
Mik6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6YnJhbmNoSWZCb29sZWFuKToKKyAg
ICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjpicmFuY2hJZkVtcHR5KToKKyAgICAgICAgKEpT
Qzo6QXNzZW1ibHlIZWxwZXJzOjpicmFuY2hTdHJ1Y3R1cmUpOgorICAgICAgICAqIGppdC9DQ2Fs
bEhlbHBlcnMuaDoKKyAgICAgICAgKEpTQzo6Q0NhbGxIZWxwZXJzOjpDQ2FsbEhlbHBlcnMpOgor
ICAgICAgICAoSlNDOjpDQ2FsbEhlbHBlcnM6OnNldHVwQXJndW1lbnRzKToKKyAgICAgICAgKEpT
Qzo6Q0NhbGxIZWxwZXJzOjpzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUpOgorICAgICAgICAq
IGppdC9JbnRyaW5zaWNFbWl0dGVyLmNwcDoKKyAgICAgICAgKEpTQzo6QWNjZXNzQ2FzZTo6ZW1p
dEludHJpbnNpY0dldHRlcik6CisgICAgICAgICogaml0L0pJVC5oOgorICAgICAgICAqIGppdC9K
SVRBZGRHZW5lcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpKSVRBZGRHZW5lcmF0b3I6OmdlbmVy
YXRlRmFzdFBhdGgpOgorICAgICAgICAqIGppdC9KSVRBZGRHZW5lcmF0b3IuaDoKKyAgICAgICAg
KEpTQzo6SklUQWRkR2VuZXJhdG9yOjpKSVRBZGRHZW5lcmF0b3IpOgorICAgICAgICAqIGppdC9K
SVRBcml0aG1ldGljLmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2FkZCk6CisgICAg
ICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfYWRkKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0
X29wX2Rpdik6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9tdWwpOgorICAgICAgICAoSlND
OjpKSVQ6OmVtaXRTbG93X29wX211bCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9zdWIp
OgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRTbG93X29wX3N1Yik6CisgICAgICAgICogaml0L0pJ
VElubGluZXMuaDoKKyAgICAgICAgKEpTQzo6SklUOjpjYWxsT3BlcmF0aW9uKToKKyAgICAgICAg
KEpTQzo6SklUOjpjYWxsT3BlcmF0aW9uTm9FeGNlcHRpb25DaGVjayk6CisgICAgICAgICogaml0
L0pJVE11bEdlbmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6OkpJVE11bEdlbmVyYXRvcjo6Z2Vu
ZXJhdGVGYXN0UGF0aCk6CisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgorICAgICAg
ICAqIGppdC9KSVRPcGVyYXRpb25zLmg6CisgICAgICAgICogaml0L0pJVFN1YkdlbmVyYXRvci5j
cHA6CisgICAgICAgIChKU0M6OkpJVFN1YkdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aCk6Cisg
ICAgICAgICogaml0L0pJVFN1YkdlbmVyYXRvci5oOgorICAgICAgICAoSlNDOjpKSVRTdWJHZW5l
cmF0b3I6OkpJVFN1YkdlbmVyYXRvcik6CisgICAgICAgICogaml0L1RhZ1JlZ2lzdGVyc01vZGUu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdURjo6cHJpbnRJbnRlcm5hbCk6CisgICAgICAgICogaml0
L1RhZ1JlZ2lzdGVyc01vZGUuaDogQWRkZWQuCisgICAgICAgICogcnVudGltZS9Db21tb25TbG93
UGF0aHMuY3BwOgorICAgICAgICAoSlNDOjp1cGRhdGVSZXN1bHRQcm9maWxlRm9yQmluYXJ5QXJp
dGhPcCk6CisKIDIwMTYtMDUtMDggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAog
ICAgICAgICBbQ09DT0FdIERpc2FibGUgSEFWRV9EVFJBQ0UgYXQgYnVpbGQgdGltZQpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMjAwNTE3KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC01NjQs
NiArNTY0LDcgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1NPVVJDRVMKICAgICBqaXQvUmVwYXRjaC5j
cHAKICAgICBqaXQvU2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yLmNwcAogICAgIGppdC9TZXR1cFZh
cmFyZ3NGcmFtZS5jcHAKKyAgICBqaXQvVGFnUmVnaXN0ZXJzTW9kZS5jcHAKICAgICBqaXQvVGVt
cFJlZ2lzdGVyU2V0LmNwcAogICAgIGppdC9UaHVua0dlbmVyYXRvcnMuY3BwCiAKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyMDA1MTcpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29y
a2luZyBjb3B5KQpAQCAtMTk5Niw2ICsxOTk2LDggQEAKIAkJREMxN0U4MUExQzlDOTFFOTAwOEE2
QUIzIC8qIENDYWxsSGVscGVycy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBEQzE3RTgxNjFDOUM4MDJCMDA4QTZBQjMgLyogQ0NhbGxIZWxwZXJzLmNw
cCAqLzsgfTsKIAkJREMyMTQzMDcxQ0EzMkU1NTAwMEE4ODY5IC8qIElDU3RhdHMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDMjE0MzA2MUNBMzJFNTIw
MDBBODg2OSAvKiBJQ1N0YXRzLmggKi87IH07CiAJCURDMjE0MzA4MUNBMzJFNTgwMDBBODg2OSAv
KiBJQ1N0YXRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IERDMjE0MzA1MUNBMzJFNTIwMDBBODg2OSAvKiBJQ1N0YXRzLmNwcCAqLzsgfTsKKwkJREM3
OTk3ODMxQ0RFOUZBMDAwNEQ0QTA5IC8qIFRhZ1JlZ2lzdGVyc01vZGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDNzk5NzgyMUNERTlGOUUwMDRENEEw
OSAvKiBUYWdSZWdpc3RlcnNNb2RlLmggKi87IH07CisJCURDNzk5Nzg0MUNERTlGQTIwMDRENEEw
OSAvKiBUYWdSZWdpc3RlcnNNb2RlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IERDNzk5NzgxMUNERTlGOUUwMDRENEEwOSAvKiBUYWdSZWdpc3RlcnNN
b2RlLmNwcCAqLzsgfTsKIAkJRENGM0Q1NjkxQ0QyOTQ2RDAwM0Q1QzY1IC8qIExhenlDbGFzc1N0
cnVjdHVyZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBEQ0YzRDU2NDFDRDI5NDY4MDAzRDVDNjUgLyogTGF6eUNsYXNzU3RydWN0dXJlLmNwcCAqLzsg
fTsKIAkJRENGM0Q1NkExQ0QyOTQ3MDAwM0Q1QzY1IC8qIExhenlDbGFzc1N0cnVjdHVyZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRENGM0Q1NjUxQ0Qy
OTQ2ODAwM0Q1QzY1IC8qIExhenlDbGFzc1N0cnVjdHVyZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCURDRjNENTZCMUNEMjk0NzIwMDNENUM2NSAv
KiBMYXp5Q2xhc3NTdHJ1Y3R1cmVJbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBEQ0YzRDU2NjFDRDI5NDY4MDAzRDVDNjUgLyogTGF6eUNsYXNz
U3RydWN0dXJlSW5saW5lcy5oICovOyB9OwpAQCAtNDIxMSw2ICs0MjEzLDggQEAKIAkJREMxN0U4
MTYxQzlDODAyQjAwOEE2QUIzIC8qIENDYWxsSGVscGVycy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBDQ2FsbEhlbHBlcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlEQzIxNDMwNTFDQTMyRTUyMDAwQTg4NjkgLyogSUNTdGF0cy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJQ1N0YXRzLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJREMyMTQzMDYxQ0EzMkU1MjAwMEE4ODY5IC8qIElDU3RhdHMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSUNTdGF0cy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlEQzc5OTc4MTFDREU5RjlFMDA0RDRBMDkgLyogVGFnUmVnaXN0ZXJz
TW9kZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUYWdSZWdpc3Rl
cnNNb2RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJREM3OTk3ODIxQ0RFOUY5
RTAwNEQ0QTA5IC8qIFRhZ1JlZ2lzdGVyc01vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gVGFnUmVnaXN0ZXJzTW9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlEQ0YzRDU2NDFDRDI5NDY4MDAzRDVDNjUgLyogTGF6eUNsYXNzU3RydWN0dXJlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExhenlDbGFzc1N0cnVjdHVyZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURDRjNENTY1MUNEMjk0NjgwMDNENUM2NSAv
KiBMYXp5Q2xhc3NTdHJ1Y3R1cmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
TGF6eUNsYXNzU3RydWN0dXJlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURDRjNE
NTY2MUNEMjk0NjgwMDNENUM2NSAvKiBMYXp5Q2xhc3NTdHJ1Y3R1cmVJbmxpbmVzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExhenlDbGFzc1N0cnVjdHVyZUlubGluZXMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTUwODksNiArNTA5Myw4IEBACiAJCQkJRkUx
ODdBMEMxQzAyRUJBNzAwMzhCQkNBIC8qIFNuaXBwZXRPcGVyYW5kLmggKi8sCiAJCQkJQTczODY1
NTExMTg2OTdCNDAwNTQwMjc5IC8qIFNwZWNpYWxpemVkVGh1bmtKSVQuaCAqLywKIAkJCQlBN0ZG
NjQ3QTE4QzUyRTg1MDBCNTUzMDcgLyogU3BpbGxSZWdpc3RlcnNNb2RlLmggKi8sCisJCQkJREM3
OTk3ODExQ0RFOUY5RTAwNEQ0QTA5IC8qIFRhZ1JlZ2lzdGVyc01vZGUuY3BwICovLAorCQkJCURD
Nzk5NzgyMUNERTlGOUUwMDRENEEwOSAvKiBUYWdSZWdpc3RlcnNNb2RlLmggKi8sCiAJCQkJMEZD
MzE0MTExODE0NTU5MTAwMDMzMjMyIC8qIFRlbXBSZWdpc3RlclNldC5jcHAgKi8sCiAJCQkJMEYy
NEU1NDgxN0VFMjc0OTAwQUJCMjE3IC8qIFRlbXBSZWdpc3RlclNldC5oICovLAogCQkJCTBGNTcy
RDREMTY4NzlGREIwMEU1N0ZCRCAvKiBUaHVua0dlbmVyYXRvci5oICovLApAQCAtNzg2OSw2ICs3
ODc1LDcgQEAKIAkJCQk4NkYzRUVCRjE2OENERTkzMDA3N0I5MkEgLyogT2JqY1J1bnRpbWVFeHRy
YXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0Q0E5NThEMTZBQjUwRkEwMDkzOEEwNiAvKiBPYmpl
Y3RBbGxvY2F0aW9uUHJvZmlsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRENGM0Q1NkMxQ0QyOTQ3
NTAwM0Q1QzY1IC8qIExhenlQcm9wZXJ0eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJREM3OTk3ODMx
Q0RFOUZBMDAwNEQ0QTA5IC8qIFRhZ1JlZ2lzdGVyc01vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUJDMThDNDQ1MEUxNkY1Q0QwMEIzNDQ2MCAvKiBPYmplY3RDb25zdHJ1Y3Rvci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJOTk2QjczMjIxQkRBMDhFRjAwMzMxQjg0IC8qIE9iamVjdENvbnN0cnVjdG9y
Lmx1dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZEM0U0MEExQjYxOEI2NjAwQzgwRTFFIC8qIE9i
amVjdFByb3BlcnR5Q29uZGl0aW9uLmggaW4gSGVhZGVycyAqLywKQEAgLTkwNDEsNiArOTA0OCw3
IEBACiAJCQkJRkUzQTA2QjMxQzEwQ0I4RTAwMzkwRkREIC8qIEpJVEJpdFhvckdlbmVyYXRvci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlBNTdEMjNFNTE4OTBDRUJGMDAzMUM3RkEgLyogSW5zcGVj
dG9yRGVidWdnZXJBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNTMyNDM4OTE4NTY4MzM1
MDAyRUQ2OTIgLyogSW5zcGVjdG9yRnJvbnRlbmREaXNwYXRjaGVycy5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQlEQzc5OTc4NDFDREU5RkEyMDA0RDRBMDkgLyogVGFnUmVnaXN0ZXJzTW9kZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk5OUYxQTZGRTFCOEU2RDk0MDA0NjNCMjYgLyogSW5zcGVjdG9y
RnJvbnRlbmRSb3V0ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTUzMzlFQzcxQkIzOTlBOTAw
NTRGMDA1IC8qIEluc3BlY3RvckhlYXBBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMzVF
MDM1RjFCN0FCNDNFMDA3M0FEMkEgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0LmNw
cCBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0Nv
ZGVCbG9jay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9D
b2RlQmxvY2suaAkocmV2aXNpb24gMjAwNTE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0NvZGVCbG9jay5oCSh3b3JraW5nIGNvcHkpCkBAIC01MDAsNyArNTAwLDcgQEAgcHVi
bGljOgogICAgIHsKICAgICAgICAgQVNTRVJUKEpJVENvZGU6OmlzQmFzZWxpbmVDb2RlKGppdFR5
cGUoKSkpOwogICAgICAgICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihtX2xvY2spOwotICAg
ICAgICByZXR1cm4gbV9leGl0UHJvZmlsZS5hZGQobG9ja2VyLCBzaXRlKTsKKyAgICAgICAgcmV0
dXJuIG1fZXhpdFByb2ZpbGUuYWRkKGxvY2tlciwgdGhpcywgc2l0ZSk7CiAgICAgfQogCiAgICAg
Ym9vbCBoYXNFeGl0U2l0ZShjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiBsb2NrZXIsIGNvbnN0
IERGRzo6RnJlcXVlbnRFeGl0U2l0ZSYgc2l0ZSkgY29uc3QKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9ERkdFeGl0UHJvZmlsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0RGR0V4aXRQcm9maWxlLmNwcAkocmV2aXNpb24gMjAw
NTE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0RGR0V4aXRQcm9maWxlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEx
LCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMjgsMTQgKzI4LDI0IEBACiAKICNpZiBFTkFCTEUoREZHX0pJVCkK
IAorI2luY2x1ZGUgIkNvZGVCbG9jay5oIgorCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERG
RyB7CiAKK3ZvaWQgRnJlcXVlbnRFeGl0U2l0ZTo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25z
dAoreworICAgIG91dC5wcmludCgiYmMjIiwgbV9ieXRlY29kZU9mZnNldCwgIjogIiwgbV9raW5k
LCAiLyIsIG1faml0VHlwZSk7Cit9CisKIEV4aXRQcm9maWxlOjpFeGl0UHJvZmlsZSgpIHsgfQog
RXhpdFByb2ZpbGU6On5FeGl0UHJvZmlsZSgpIHsgfQogCi1ib29sIEV4aXRQcm9maWxlOjphZGQo
Y29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIGNvbnN0IEZyZXF1ZW50RXhpdFNpdGUmIHNpdGUp
Citib29sIEV4aXRQcm9maWxlOjphZGQoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIENvZGVC
bG9jayogb3duZXIsIGNvbnN0IEZyZXF1ZW50RXhpdFNpdGUmIHNpdGUpCiB7CiAgICAgQVNTRVJU
KHNpdGUuaml0VHlwZSgpICE9IEV4aXRGcm9tQW55dGhpbmcpOworCisgICAgaWYgKGZhbHNlKSAv
LyBGSVhNRQorICAgICAgICBkYXRhTG9nKHBvaW50ZXJEdW1wKG93bmVyKSwgIjogQWRkaW5nIGV4
aXQgc2l0ZTogIiwgc2l0ZSwgIlxuIik7CiAgICAgCiAgICAgLy8gSWYgd2UndmUgbmV2ZXIgc2Vl
biBhbnkgZnJlcXVlbnQgZXhpdHMgdGhlbiBjcmVhdGUgdGhlIGxpc3QgYW5kIHB1dCB0aGlzIHNp
dGUKICAgICAvLyBpbnRvIGl0LgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0RGR0V4aXRQcm9maWxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0RGR0V4aXRQcm9maWxlLmgJKHJldmlzaW9uIDIwMDUxNykKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9ERkdFeGl0UHJvZmlsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAxMywgMjAxNCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAx
NCwgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTExNiw2ICsxMTYsOCBAQCBwdWJsaWM6CiAgICAgewogICAgICAg
ICByZXR1cm4gbV9raW5kID09IEV4aXRLaW5kVW5zZXQgJiYgbV9ieXRlY29kZU9mZnNldDsKICAg
ICB9CisgICAgCisgICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0OwogCiBwcml2
YXRlOgogICAgIHVuc2lnbmVkIG1fYnl0ZWNvZGVPZmZzZXQ7CkBAIC0xNTksNyArMTYxLDcgQEAg
cHVibGljOgogICAgIC8vIGJlIGNhbGxlZCBhIGZpeGVkIG51bWJlciBvZiB0aW1lcyBwZXIgcmVj
b21waWxhdGlvbi4gUmVjb21waWxhdGlvbiBpcwogICAgIC8vIHJhcmUgdG8gYmVnaW4gd2l0aCwg
YW5kIGltcGxpZXMgZG9pbmcgTyhuKSBvcGVyYXRpb25zIG9uIHRoZSBDb2RlQmxvY2sKICAgICAv
LyBhbnl3YXkuCi0gICAgYm9vbCBhZGQoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIGNvbnN0
IEZyZXF1ZW50RXhpdFNpdGUmKTsKKyAgICBib29sIGFkZChjb25zdCBDb25jdXJyZW50SklUTG9j
a2VyJiwgQ29kZUJsb2NrKiBvd25lciwgY29uc3QgRnJlcXVlbnRFeGl0U2l0ZSYpOwogICAgIAog
ICAgIC8vIEdldCB0aGUgZnJlcXVlbnQgZXhpdCBzaXRlcyBmb3IgYSBieXRlY29kZSBpbmRleC4g
VGhpcyBpcyBPKG4pLCBhbmQgaXMKICAgICAvLyBtZWFudCB0byBvbmx5IGJlIHVzZWQgZnJvbSBk
ZWJ1Z2dpbmcvcHJvZmlsaW5nIGNvZGUuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL01ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUu
Y3BwCShyZXZpc2lvbiAyMDA1MTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
TWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMywgMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShERkdfSklUKQogCisjaW5jbHVkZSAiQ0Nh
bGxIZWxwZXJzLmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5l
cy5oIgogCkBAIC00NCwxNCArNDUsMTUgQEAgTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZSBN
ZXRob2RPZkdldAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLUVuY29kZWRKU1ZhbHVlKiBNZXRo
b2RPZkdldHRpbmdBVmFsdWVQcm9maWxlOjpnZXRTcGVjRmFpbEJ1Y2tldCh1bnNpZ25lZCBpbmRl
eCkgY29uc3QKK3ZvaWQgTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZTo6ZW1pdFJlcG9ydFZh
bHVlKENDYWxsSGVscGVycyYgaml0LCBKU1ZhbHVlUmVncyByZWdzKSBjb25zdAogewogICAgIHN3
aXRjaCAobV9raW5kKSB7CiAgICAgY2FzZSBOb25lOgotICAgICAgICByZXR1cm4gMDsKKyAgICAg
ICAgcmV0dXJuOwogICAgICAgICAKICAgICBjYXNlIFJlYWR5OgotICAgICAgICByZXR1cm4gdS5w
cm9maWxlLT5zcGVjRmFpbEJ1Y2tldChpbmRleCk7CisgICAgICAgIGppdC5zdG9yZVZhbHVlKHJl
Z3MsIHUucHJvZmlsZS0+c3BlY0ZhaWxCdWNrZXQoMCkpOworICAgICAgICByZXR1cm47CiAgICAg
ICAgIAogICAgIGNhc2UgTGF6eU9wZXJhbmQ6IHsKICAgICAgICAgTGF6eU9wZXJhbmRWYWx1ZVBy
b2ZpbGVLZXkga2V5KHUubGF6eU9wZXJhbmQuYnl0ZWNvZGVPZmZzZXQsIFZpcnR1YWxSZWdpc3Rl
cih1LmxhenlPcGVyYW5kLm9wZXJhbmQpKTsKQEAgLTU5LDEzICs2MSwxNiBAQCBFbmNvZGVkSlNW
YWx1ZSogTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvCiAgICAgICAgIENvbmN1cnJlbnRKSVRMb2Nr
ZXIgbG9ja2VyKHUubGF6eU9wZXJhbmQuY29kZUJsb2NrLT5tX2xvY2spOwogICAgICAgICBMYXp5
T3BlcmFuZFZhbHVlUHJvZmlsZSogcHJvZmlsZSA9CiAgICAgICAgICAgICB1LmxhenlPcGVyYW5k
LmNvZGVCbG9jay0+bGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGVzKCkuYWRkKGxvY2tlciwga2V5KTsK
LSAgICAgICAgcmV0dXJuIHByb2ZpbGUtPnNwZWNGYWlsQnVja2V0KGluZGV4KTsKKyAgICAgICAg
aml0LnN0b3JlVmFsdWUocmVncywgcHJvZmlsZS0+c3BlY0ZhaWxCdWNrZXQoMCkpOworICAgICAg
ICByZXR1cm47CiAgICAgfQogICAgICAgICAKLSAgICBkZWZhdWx0OgotICAgICAgICBSRUxFQVNF
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm4gMDsKLSAgICB9CisgICAgY2Fz
ZSBSZXN1bHRQcm9maWxlUmVhZHk6IHsKKyAgICAgICAgdS5yZXN1bHRQcm9maWxlLT5lbWl0RGV0
ZWN0Qml0c0xpZ2h0KGppdCwgcmVncywgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0gfQorICAgIAorICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL01ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZS5o
CShyZXZpc2lvbiAyMDA1MTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTWV0
aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMiwxMiArMzIsMTUg
QEAKIC8vIHRoZXNlICNpZidzIHdpbGwgZGlzYXBwZWFyLi4uCiAjaWYgRU5BQkxFKERGR19KSVQp
CiAKKyNpbmNsdWRlICJHUFJJbmZvLmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZS5oIgogCiBuYW1l
c3BhY2UgSlNDIHsKIAorY2xhc3MgQ0NhbGxIZWxwZXJzOwogY2xhc3MgQ29kZUJsb2NrOwogY2xh
c3MgTGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGVLZXk7CitzdHJ1Y3QgUmVzdWx0UHJvZmlsZTsKIHN0
cnVjdCBWYWx1ZVByb2ZpbGU7CiAKIGNsYXNzIE1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUg
ewpAQCAtNDcsNyArNTAsNyBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KICAgICAKLSAgICBleHBs
aWNpdCBNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlKFZhbHVlUHJvZmlsZSogcHJvZmlsZSkK
KyAgICBNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlKFZhbHVlUHJvZmlsZSogcHJvZmlsZSkK
ICAgICB7CiAgICAgICAgIGlmIChwcm9maWxlKSB7CiAgICAgICAgICAgICBtX2tpbmQgPSBSZWFk
eTsKQEAgLTU2LDMxICs1OSwzNCBAQCBwdWJsaWM6CiAgICAgICAgICAgICBtX2tpbmQgPSBOb25l
OwogICAgIH0KICAgICAKKyAgICBNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlKFJlc3VsdFBy
b2ZpbGUqIHByb2ZpbGUpCisgICAgeworICAgICAgICBpZiAocHJvZmlsZSkgeworICAgICAgICAg
ICAgbV9raW5kID0gUmVzdWx0UHJvZmlsZVJlYWR5OworICAgICAgICAgICAgdS5yZXN1bHRQcm9m
aWxlID0gcHJvZmlsZTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBtX2tpbmQgPSBOb25l
OworICAgIH0KKyAgICAKICAgICBzdGF0aWMgTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZSBm
cm9tTGF6eU9wZXJhbmQoCiAgICAgICAgIENvZGVCbG9jayosIGNvbnN0IExhenlPcGVyYW5kVmFs
dWVQcm9maWxlS2V5Jik7CiAgICAgCi0gICAgYm9vbCBvcGVyYXRvciEoKSBjb25zdCB7IHJldHVy
biBtX2tpbmQgPT0gTm9uZTsgfQotICAgIAotICAgIC8vIFRoaXMgbG9naWNhbGx5IGhhcyBhIHBv
aW50ZXIgdG8gYSAiVGhlcmUgZXhpc3RzIFggc3VjaCB0aGF0Ci0gICAgLy8gVmFsdWVQcm9maWxl
QmFzZTxYPiIuIEJ1dCBzaW5jZSBDKysgZG9lcyBub3QgaGF2ZSBleGlzdGVudGlhbAotICAgIC8v
IHRlbXBsYXRlcywgSSBjYW5ub3QgcmV0dXJuIGl0LiBTbyBpbnN0ZWFkLCBmb3IgYW55IG1ldGhv
ZHMgdGhhdAotICAgIC8vIHVzZXJzIG9mIHRoaXMgY2xhc3Mgd291bGQgbGlrZSB0byBjYWxsLCB3
ZSdsbCBqdXN0IGhhdmUgdG8gcHJvdmlkZQotICAgIC8vIGEgbWV0aG9kIGhlcmUgdGhhdCBkb2Vz
IGl0IHRocm91Z2ggYW4gaW5kaXJlY3Rpb24uIE9yIHdlIGNvdWxkCi0gICAgLy8gcG9zc2libHkg
anVzdCBtYWtlIFZhbHVlUHJvZmlsZSBsZXNzIHRlbXBsYXRlLWJhc2VkLiBCdXQgbGFzdCBJCi0g
ICAgLy8gdHJpZWQgdGhhdCwgaXQgZmVsdCBtb3JlIHl1Y2t5IHRoYW4gdGhpcyBjbGFzcy4KKyAg
ICBleHBsaWNpdCBvcGVyYXRvciBib29sKCkgY29uc3QgeyByZXR1cm4gbV9raW5kICE9IE5vbmU7
IH0KICAgICAKLSAgICBFbmNvZGVkSlNWYWx1ZSogZ2V0U3BlY0ZhaWxCdWNrZXQodW5zaWduZWQg
aW5kZXgpIGNvbnN0OworICAgIHZvaWQgZW1pdFJlcG9ydFZhbHVlKENDYWxsSGVscGVycyYsIEpT
VmFsdWVSZWdzKSBjb25zdDsKICAgICAKIHByaXZhdGU6CiAgICAgZW51bSBLaW5kIHsKICAgICAg
ICAgTm9uZSwKICAgICAgICAgUmVhZHksCisgICAgICAgIFJlc3VsdFByb2ZpbGVSZWFkeSwKICAg
ICAgICAgTGF6eU9wZXJhbmQKICAgICB9OwogICAgIAogICAgIEtpbmQgbV9raW5kOwogICAgIHVu
aW9uIHsKICAgICAgICAgVmFsdWVQcm9maWxlKiBwcm9maWxlOworICAgICAgICBSZXN1bHRQcm9m
aWxlKiByZXN1bHRQcm9maWxlOwogICAgICAgICBzdHJ1Y3QgewogICAgICAgICAgICAgQ29kZUJs
b2NrKiBjb2RlQmxvY2s7CiAgICAgICAgICAgICB1bnNpZ25lZCBieXRlY29kZU9mZnNldDsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHltb3JwaGlj
QWNjZXNzLmNwcAkocmV2aXNpb24gMjAwNTE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE0Niw4ICsx
MTQ2LDcgQEAgdm9pZCBBY2Nlc3NDYXNlOjpnZW5lcmF0ZUltcGwoQWNjZXNzR2VuZQogICAgICAg
ICAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgICAgICAgICAgZGF0YUxvZygiSGF2ZSB0eXBlOiAi
LCB0eXBlLT5kZXNjcmlwdG9yKCksICJcbiIpOwogICAgICAgICAgICAgc3RhdGUuZmFpbEFuZFJl
cGF0Y2guYXBwZW5kKAotICAgICAgICAgICAgICAgIGppdC5icmFuY2hJZk5vdFR5cGUoCi0gICAg
ICAgICAgICAgICAgICAgIHZhbHVlUmVncywgc2NyYXRjaEdQUiwgdHlwZS0+ZGVzY3JpcHRvcigp
LCBDQ2FsbEhlbHBlcnM6OkhhdmVUYWdSZWdpc3RlcnMpKTsKKyAgICAgICAgICAgICAgICBqaXQu
YnJhbmNoSWZOb3RUeXBlKHZhbHVlUmVncywgc2NyYXRjaEdQUiwgdHlwZS0+ZGVzY3JpcHRvcigp
KSk7CiAgICAgICAgIH0gZWxzZSBpZiAodmVyYm9zZSkKICAgICAgICAgICAgIGRhdGFMb2coIkRv
bid0IGhhdmUgdHlwZS5cbiIpOwogICAgICAgICAKQEAgLTExNzcsOCArMTE3Niw3IEBAIHZvaWQg
QWNjZXNzQ2FzZTo6Z2VuZXJhdGVJbXBsKEFjY2Vzc0dlbmUKICAgICAgICAgICAgIGlmICh2ZXJi
b3NlKQogICAgICAgICAgICAgICAgIGRhdGFMb2coIkhhdmUgdHlwZTogIiwgdHlwZS0+ZGVzY3Jp
cHRvcigpLCAiXG4iKTsKICAgICAgICAgICAgIHN0YXRlLmZhaWxBbmRSZXBhdGNoLmFwcGVuZCgK
LSAgICAgICAgICAgICAgICBqaXQuYnJhbmNoSWZOb3RUeXBlKAotICAgICAgICAgICAgICAgICAg
ICB2YWx1ZVJlZ3MsIHNjcmF0Y2hHUFIsIHR5cGUtPmRlc2NyaXB0b3IoKSwgQ0NhbGxIZWxwZXJz
OjpIYXZlVGFnUmVnaXN0ZXJzKSk7CisgICAgICAgICAgICAgICAgaml0LmJyYW5jaElmTm90VHlw
ZSh2YWx1ZVJlZ3MsIHNjcmF0Y2hHUFIsIHR5cGUtPmRlc2NyaXB0b3IoKSkpOwogICAgICAgICB9
IGVsc2UgaWYgKHZlcmJvc2UpCiAgICAgICAgICAgICBkYXRhTG9nKCJEb24ndCBoYXZlIHR5cGUu
XG4iKTsKICAgICAgICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmFs
dWVQcm9maWxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvVmFsdWVQcm9maWxlLmNwcAkocmV2aXNpb24gMjAwNTE3KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL1ZhbHVlUHJvZmlsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjYsNiArMjYs
MzYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJWYWx1ZVByb2ZpbGUuaCIKIAor
I2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgorI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKKworbmFt
ZXNwYWNlIEpTQyB7CisKK3ZvaWQgUmVzdWx0UHJvZmlsZTo6ZW1pdERldGVjdEJpdHNMaWdodChD
Q2FsbEhlbHBlcnMmIGppdCwgSlNWYWx1ZVJlZ3MgcmVncywgVGFnUmVnaXN0ZXJzTW9kZSBtb2Rl
KQoreworICAgIENDYWxsSGVscGVyczo6SnVtcCBpc0ludDMyID0gaml0LmJyYW5jaElmSW50MzIo
cmVncywgbW9kZSk7CisgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIG5vdERvdWJsZSA9IGppdC5icmFu
Y2hJZk5vdERvdWJsZUtub3duTm90SW50MzIocmVncywgbW9kZSk7CisgICAgLy8gRklYTUU6IFdl
IGNvdWxkIGJlIG1vcmUgcHJlY2lzZSBoZXJlLgorICAgIGVtaXRTZXREb3VibGUoaml0KTsKKyAg
ICBDQ2FsbEhlbHBlcnM6Okp1bXAgZG9uZSA9IGppdC5qdW1wKCk7CisgICAgbm90RG91YmxlLmxp
bmsoJmppdCk7CisgICAgZW1pdFNldE5vbk51bWJlcihqaXQpOworICAgIGRvbmUubGluaygmaml0
KTsKKyAgICBpc0ludDMyLmxpbmsoJmppdCk7Cit9CisKK3ZvaWQgUmVzdWx0UHJvZmlsZTo6ZW1p
dFNldERvdWJsZShDQ2FsbEhlbHBlcnMmIGppdCkKK3sKKyAgICBqaXQub3IzMihDQ2FsbEhlbHBl
cnM6OlRydXN0ZWRJbW0zMihSZXN1bHRQcm9maWxlOjpJbnQzMk92ZXJmbG93IHwgUmVzdWx0UHJv
ZmlsZTo6SW50NTJPdmVyZmxvdyB8IFJlc3VsdFByb2ZpbGU6Ok5lZ1plcm9Eb3VibGUgfCBSZXN1
bHRQcm9maWxlOjpOb25OZWdaZXJvRG91YmxlKSwgQ0NhbGxIZWxwZXJzOjpBYnNvbHV0ZUFkZHJl
c3MoYWRkcmVzc09mRmxhZ3MoKSkpOworfQorCit2b2lkIFJlc3VsdFByb2ZpbGU6OmVtaXRTZXRO
b25OdW1iZXIoQ0NhbGxIZWxwZXJzJiBqaXQpCit7CisgICAgaml0Lm9yMzIoQ0NhbGxIZWxwZXJz
OjpUcnVzdGVkSW1tMzIoUmVzdWx0UHJvZmlsZTo6Tm9uTnVtYmVyKSwgQ0NhbGxIZWxwZXJzOjpB
YnNvbHV0ZUFkZHJlc3MoYWRkcmVzc09mRmxhZ3MoKSkpOworfQorCit9IC8vIG5hbWVzcGFjZSBK
U0MKKwogbmFtZXNwYWNlIFdURiB7CiAgICAgCiB1c2luZyBuYW1lc3BhY2UgSlNDOwpAQCAtMzQs
MjMgKzY0LDMxIEBAIHZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0LCBjb24KIHsK
ICAgICBjb25zdCBjaGFyKiBzZXBhcmF0b3IgPSAiIjsKIAotICAgIGlmIChwcm9maWxlLmRpZE9i
c2VydmVOZWdaZXJvRG91YmxlKCkpIHsKLSAgICAgICAgb3V0LnByaW50KHNlcGFyYXRvciwgIk5l
Z1plcm9Eb3VibGUiKTsKKyAgICBpZiAoIXByb2ZpbGUuZGlkT2JzZXJ2ZU5vbkludDMyKCkpIHsK
KyAgICAgICAgb3V0LnByaW50KCJJbnQzMiIpOwogICAgICAgICBzZXBhcmF0b3IgPSAifCI7Cisg
ICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKHByb2ZpbGUuZGlkT2JzZXJ2ZU5lZ1plcm9Eb3VibGUo
KSkgeworICAgICAgICAgICAgb3V0LnByaW50KHNlcGFyYXRvciwgIk5lZ1plcm9Eb3VibGUiKTsK
KyAgICAgICAgICAgIHNlcGFyYXRvciA9ICJ8IjsKKyAgICAgICAgfQorICAgICAgICBpZiAocHJv
ZmlsZS5kaWRPYnNlcnZlTm9uTmVnWmVyb0RvdWJsZSgpKSB7CisgICAgICAgICAgICBvdXQucHJp
bnQoIk5vbk5lZ1plcm9Eb3VibGUiKTsKKyAgICAgICAgICAgIHNlcGFyYXRvciA9ICJ8IjsKKyAg
ICAgICAgfQorICAgICAgICBpZiAocHJvZmlsZS5kaWRPYnNlcnZlTm9uTnVtYmVyKCkpIHsKKyAg
ICAgICAgICAgIG91dC5wcmludCgiTm9uTnVtYmVyIik7CisgICAgICAgICAgICBzZXBhcmF0b3Ig
PSAifCI7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHByb2ZpbGUuZGlkT2JzZXJ2ZUludDMyT3Zl
cmZsb3coKSkgeworICAgICAgICAgICAgb3V0LnByaW50KCJJbnQzMk92ZXJmbG93Iik7CisgICAg
ICAgICAgICBzZXBhcmF0b3IgPSAifCI7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHByb2ZpbGUu
ZGlkT2JzZXJ2ZUludDUyT3ZlcmZsb3coKSkgeworICAgICAgICAgICAgb3V0LnByaW50KCJJbnQ1
Mk92ZXJmbG93Iik7CisgICAgICAgICAgICBzZXBhcmF0b3IgPSAifCI7CisgICAgICAgIH0KICAg
ICB9Ci0gICAgaWYgKHByb2ZpbGUuZGlkT2JzZXJ2ZU5vbk51bWJlcigpKSB7Ci0gICAgICAgIG91
dC5wcmludCgiTm9uTnVtYmVyIik7Ci0gICAgICAgIHNlcGFyYXRvciA9ICJ8IjsKLSAgICB9Ci0g
ICAgaWYgKHByb2ZpbGUuZGlkT2JzZXJ2ZUludDMyT3ZlcmZsb3coKSkgewotICAgICAgICBvdXQu
cHJpbnQoIkludDMyT3ZlcmZsb3ciKTsKLSAgICAgICAgc2VwYXJhdG9yID0gInwiOwotICAgIH0K
LSAgICBpZiAocHJvZmlsZS5kaWRPYnNlcnZlSW50NTJPdmVyZmxvdygpKSB7Ci0gICAgICAgIG91
dC5wcmludCgiSW50NTJPdmVyZmxvdyIpOwotICAgICAgICBzZXBhcmF0b3IgPSAifCI7Ci0gICAg
fQotCiAgICAgaWYgKHByb2ZpbGUuc3BlY2lhbEZhc3RQYXRoQ291bnQoKSkgewogICAgICAgICBv
dXQucHJpbnQoIiBzcGVjaWFsIGZhc3QgcGF0aDogIik7CiAgICAgICAgIG91dC5wcmludChwcm9m
aWxlLnNwZWNpYWxGYXN0UGF0aENvdW50KCkpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL1ZhbHVlUHJvZmlsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9WYWx1ZVByb2ZpbGUuaAkocmV2aXNpb24gMjAwNTE3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZhbHVlUHJvZmlsZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAxMyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAxMywg
MjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTM0LDEyICszNCwxNSBAQAogI2luY2x1ZGUgIkpTQXJyYXkuaCIKICNp
bmNsdWRlICJTcGVjdWxhdGVkVHlwZS5oIgogI2luY2x1ZGUgIlN0cnVjdHVyZS5oIgorI2luY2x1
ZGUgIlRhZ1JlZ2lzdGVyc01vZGUuaCIKICNpbmNsdWRlICJXcml0ZUJhcnJpZXIuaCIKICNpbmNs
dWRlIDx3dGYvUHJpbnRTdHJlYW0uaD4KICNpbmNsdWRlIDx3dGYvU3RyaW5nUHJpbnRTdHJlYW0u
aD4KIAogbmFtZXNwYWNlIEpTQyB7CiAKK2NsYXNzIENDYWxsSGVscGVyczsKKwogdGVtcGxhdGU8
dW5zaWduZWQgbnVtYmVyT2ZCdWNrZXRzQXJndW1lbnQ+CiBzdHJ1Y3QgVmFsdWVQcm9maWxlQmFz
ZSB7CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG51bWJlck9mQnVja2V0cyA9IG51bWJlck9m
QnVja2V0c0FyZ3VtZW50OwpAQCAtMjE4LDIwICsyMjEsMjUgQEAgcHVibGljOgogICAgIH0KIAog
ICAgIGVudW0gT2JzZXJ2ZWRSZXN1bHRzIHsKLSAgICAgICAgTmVnWmVyb0RvdWJsZSAgICA9IDEg
PDwgMCwKLSAgICAgICAgTm9uTnVtYmVyICAgICAgICA9IDEgPDwgMSwKLSAgICAgICAgSW50MzJP
dmVyZmxvdyAgICA9IDEgPDwgMiwKLSAgICAgICAgSW50NTJPdmVyZmxvdyAgICA9IDEgPDwgMywK
KyAgICAgICAgTm9uTmVnWmVyb0RvdWJsZSA9IDEgPDwgMCwKKyAgICAgICAgTmVnWmVyb0RvdWJs
ZSAgICA9IDEgPDwgMSwKKyAgICAgICAgTm9uTnVtYmVyICAgICAgICA9IDEgPDwgMiwKKyAgICAg
ICAgSW50MzJPdmVyZmxvdyAgICA9IDEgPDwgMywKKyAgICAgICAgSW50NTJPdmVyZmxvdyAgICA9
IDEgPDwgNCwKICAgICB9OwogCiAgICAgaW50IGJ5dGVjb2RlT2Zmc2V0KCkgY29uc3QgeyByZXR1
cm4gbV9ieXRlY29kZU9mZnNldEFuZEZsYWdzID4+IG51bWJlck9mRmxhZ0JpdHM7IH0KICAgICB1
bnNpZ25lZCBzcGVjaWFsRmFzdFBhdGhDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fc3BlY2lhbEZh
c3RQYXRoQ291bnQ7IH0KIAorICAgIGJvb2wgZGlkT2JzZXJ2ZU5vbkludDMyKCkgY29uc3QgeyBy
ZXR1cm4gaGFzQml0cyhOb25OZWdaZXJvRG91YmxlIHwgTmVnWmVyb0RvdWJsZSB8IE5vbk51bWJl
cik7IH0KKyAgICBib29sIGRpZE9ic2VydmVEb3VibGUoKSBjb25zdCB7IHJldHVybiBoYXNCaXRz
KE5vbk5lZ1plcm9Eb3VibGUgfCBOZWdaZXJvRG91YmxlKTsgfQorICAgIGJvb2wgZGlkT2JzZXJ2
ZU5vbk5lZ1plcm9Eb3VibGUoKSBjb25zdCB7IHJldHVybiBoYXNCaXRzKE5vbk5lZ1plcm9Eb3Vi
bGUpOyB9CiAgICAgYm9vbCBkaWRPYnNlcnZlTmVnWmVyb0RvdWJsZSgpIGNvbnN0IHsgcmV0dXJu
IGhhc0JpdHMoTmVnWmVyb0RvdWJsZSk7IH0KICAgICBib29sIGRpZE9ic2VydmVOb25OdW1iZXIo
KSBjb25zdCB7IHJldHVybiBoYXNCaXRzKE5vbk51bWJlcik7IH0KICAgICBib29sIGRpZE9ic2Vy
dmVJbnQzMk92ZXJmbG93KCkgY29uc3QgeyByZXR1cm4gaGFzQml0cyhJbnQzMk92ZXJmbG93KTsg
fQogICAgIGJvb2wgZGlkT2JzZXJ2ZUludDUyT3ZlcmZsb3coKSBjb25zdCB7IHJldHVybiBoYXNC
aXRzKEludDUyT3ZlcmZsb3cpOyB9CiAKKyAgICB2b2lkIHNldE9ic2VydmVkTm9uTmVnWmVyb0Rv
dWJsZSgpIHsgc2V0Qml0KE5vbk5lZ1plcm9Eb3VibGUpOyB9CiAgICAgdm9pZCBzZXRPYnNlcnZl
ZE5lZ1plcm9Eb3VibGUoKSB7IHNldEJpdChOZWdaZXJvRG91YmxlKTsgfQogICAgIHZvaWQgc2V0
T2JzZXJ2ZWROb25OdW1iZXIoKSB7IHNldEJpdChOb25OdW1iZXIpOyB9CiAgICAgdm9pZCBzZXRP
YnNlcnZlZEludDMyT3ZlcmZsb3coKSB7IHNldEJpdChJbnQzMk92ZXJmbG93KTsgfQpAQCAtMjM5
LDYgKzI0NywyNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkKiBhZGRyZXNzT2ZGbGFncygpIHsgcmV0
dXJuICZtX2J5dGVjb2RlT2Zmc2V0QW5kRmxhZ3M7IH0KICAgICB2b2lkKiBhZGRyZXNzT2ZTcGVj
aWFsRmFzdFBhdGhDb3VudCgpIHsgcmV0dXJuICZtX3NwZWNpYWxGYXN0UGF0aENvdW50OyB9Cisg
ICAgCisgICAgLy8gU2V0cyAoSW50MzJPdmVyZmxvdyB8IEludDUyT3ZlcmZsb3cgfCBOb25OZWda
ZXJvRG91YmxlIHwgTmVnWmVyb0RvdWJsZSkgaWYgaXQgc2VlcyBhCisgICAgLy8gZG91YmxlLiBT
ZXRzIE5vbk51bWJlciBpZiBpdCBzZWVzIGEgbm9uLW51bWJlci4KKyAgICB2b2lkIGVtaXREZXRl
Y3RCaXRzTGlnaHQoQ0NhbGxIZWxwZXJzJiwgSlNWYWx1ZVJlZ3MsIFRhZ1JlZ2lzdGVyc01vZGUg
PSBIYXZlVGFnUmVnaXN0ZXJzKTsKKyAgICAKKyAgICB2b2lkIGRldGVjdEJpdHNMaWdodChKU1Zh
bHVlIHZhbHVlKQorICAgIHsKKyAgICAgICAgaWYgKHZhbHVlLmlzSW50MzIoKSkKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgaWYgKHZhbHVlLmlzTnVtYmVyKCkpIHsKKyAgICAgICAgICAg
IG1fYnl0ZWNvZGVPZmZzZXRBbmRGbGFncyB8PSBJbnQzMk92ZXJmbG93IHwgSW50NTJPdmVyZmxv
dyB8IE5vbk5lZ1plcm9Eb3VibGUgfCBOZWdaZXJvRG91YmxlOworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisgICAgICAgIG1fYnl0ZWNvZGVPZmZzZXRBbmRGbGFncyB8PSBOb25OdW1i
ZXI7CisgICAgfQorICAgIAorICAgIC8vIFNldHMgKEludDMyT3ZlcmZsb3cgfCBJbnQ1Mk92ZXJm
bG93IHwgTm9uTmVnWmVyb0RvdWJsZSB8IE5lZ1plcm9Eb3VibGUpLgorICAgIHZvaWQgZW1pdFNl
dERvdWJsZShDQ2FsbEhlbHBlcnMmKTsKKyAgICAKKyAgICAvLyBTZXRzIE5vbk51bWJlci4KKyAg
ICB2b2lkIGVtaXRTZXROb25OdW1iZXIoQ0NhbGxIZWxwZXJzJik7CiAKIHByaXZhdGU6CiAgICAg
Ym9vbCBoYXNCaXRzKGludCBtYXNrKSBjb25zdCB7IHJldHVybiBtX2J5dGVjb2RlT2Zmc2V0QW5k
RmxhZ3MgJiBtYXNrOyB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVD
b2RlUGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0J5dGVDb2RlUGFyc2VyLmNwcAkocmV2aXNpb24gMjAwNTE3KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkwNiw0
MCArOTA2LDU4IEBAIHByaXZhdGU6CiAgICAgICAgIGlmICghaXNYODYoKSAmJiBub2RlLT5vcCgp
ID09IEFyaXRoTW9kKQogICAgICAgICAgICAgcmV0dXJuIG5vZGU7CiAKLSAgICAgICAgaWYgKCFt
X2lubGluZVN0YWNrVG9wLT5tX3Byb2ZpbGVkQmxvY2stPmxpa2VseVRvVGFrZVNsb3dDYXNlKG1f
Y3VycmVudEluZGV4KSkKLSAgICAgICAgICAgIHJldHVybiBub2RlOworICAgICAgICBSZXN1bHRQ
cm9maWxlKiByZXN1bHRQcm9maWxlID0gbV9pbmxpbmVTdGFja1RvcC0+bV9wcm9maWxlZEJsb2Nr
LT5yZXN1bHRQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQobV9jdXJyZW50SW5kZXgpOworICAgICAg
ICBpZiAocmVzdWx0UHJvZmlsZSkgeworICAgICAgICAgICAgc3dpdGNoIChub2RlLT5vcCgpKSB7
CisgICAgICAgICAgICBjYXNlIEFyaXRoQWRkOgorICAgICAgICAgICAgY2FzZSBBcml0aFN1YjoK
KyAgICAgICAgICAgIGNhc2UgVmFsdWVBZGQ6CisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdFBy
b2ZpbGUtPmRpZE9ic2VydmVEb3VibGUoKSkKKyAgICAgICAgICAgICAgICAgICAgbm9kZS0+bWVy
Z2VGbGFncyhOb2RlTWF5SGF2ZURvdWJsZVJlc3VsdCk7CisgICAgICAgICAgICAgICAgaWYgKHJl
c3VsdFByb2ZpbGUtPmRpZE9ic2VydmVOb25OdW1iZXIoKSkKKyAgICAgICAgICAgICAgICAgICAg
bm9kZS0+bWVyZ2VGbGFncyhOb2RlTWF5SGF2ZU5vbk51bWJlclJlc3VsdCk7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBjYXNlIEFyaXRoTXVs
OiB7CisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdFByb2ZpbGUtPmRpZE9ic2VydmVJbnQ1Mk92
ZXJmbG93KCkpCisgICAgICAgICAgICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1heU92
ZXJmbG93SW50NTIpOworICAgICAgICAgICAgICAgIGlmIChyZXN1bHRQcm9maWxlLT5kaWRPYnNl
cnZlSW50MzJPdmVyZmxvdygpIHx8IG1faW5saW5lU3RhY2tUb3AtPm1fZXhpdFByb2ZpbGUuaGFz
RXhpdFNpdGUobV9jdXJyZW50SW5kZXgsIE92ZXJmbG93KSkKKyAgICAgICAgICAgICAgICAgICAg
bm9kZS0+bWVyZ2VGbGFncyhOb2RlTWF5T3ZlcmZsb3dJbnQzMkluQmFzZWxpbmUpOworICAgICAg
ICAgICAgICAgIGlmIChyZXN1bHRQcm9maWxlLT5kaWRPYnNlcnZlTmVnWmVyb0RvdWJsZSgpIHx8
IG1faW5saW5lU3RhY2tUb3AtPm1fZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJyZW50SW5k
ZXgsIE5lZ2F0aXZlWmVybykpCisgICAgICAgICAgICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3Mo
Tm9kZU1heU5lZ1plcm9JbkJhc2VsaW5lKTsKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0UHJv
ZmlsZS0+ZGlkT2JzZXJ2ZURvdWJsZSgpKQorICAgICAgICAgICAgICAgICAgICBub2RlLT5tZXJn
ZUZsYWdzKE5vZGVNYXlIYXZlRG91YmxlUmVzdWx0KTsKKyAgICAgICAgICAgICAgICBpZiAocmVz
dWx0UHJvZmlsZS0+ZGlkT2JzZXJ2ZU5vbk51bWJlcigpKQorICAgICAgICAgICAgICAgICAgICBu
b2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlIYXZlTm9uTnVtYmVyUmVzdWx0KTsKKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAg
IGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAg
IH0KICAgICAgICAgCi0gICAgICAgIHN3aXRjaCAobm9kZS0+b3AoKSkgewotICAgICAgICBjYXNl
IFVJbnQzMlRvTnVtYmVyOgotICAgICAgICBjYXNlIEFyaXRoQWRkOgotICAgICAgICBjYXNlIEFy
aXRoU3ViOgotICAgICAgICBjYXNlIFZhbHVlQWRkOgotICAgICAgICBjYXNlIEFyaXRoTW9kOiAv
LyBmb3IgQXJpdGhNb2QgIk1heU92ZXJmbG93IiBtZWFucyB3ZSB0cmllZCB0byBkaXZpZGUgYnkg
emVybywgb3Igd2Ugc2F3IGRvdWJsZS4KLSAgICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3MoTm9k
ZU1heU92ZXJmbG93SW50MzJJbkJhc2VsaW5lKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICAgICAgCi0gICAgICAgIGNhc2UgQXJpdGhOZWdhdGU6Ci0gICAgICAgICAgICAvLyBDdXJyZW50
bHkgd2UgY2FuJ3QgdGVsbCB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIGEgbmVnYXRpb24gb3ZlcmZs
b3dpbmcKLSAgICAgICAgICAgIC8vIChpLmUuIC0oMSA8PCAzMSkpIG9yIGdlbmVyYXRpbmcgbmVn
YXRpdmUgemVybyAoaS5lLiAtMCkuIElmIGl0IHRvb2sgc2xvdwotICAgICAgICAgICAgLy8gcGF0
aCB0aGVuIHdlIGFzc3VtZSB0aGF0IGl0IGRpZCBib3RoIG9mIHRob3NlIHRoaW5ncy4KLSAgICAg
ICAgICAgIG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1heU92ZXJmbG93SW50MzJJbkJhc2VsaW5lKTsK
LSAgICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1heU5lZ1plcm9JbkJhc2VsaW5lKTsK
LSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIGNhc2UgQXJpdGhNdWw6IHsKLSAgICAgICAg
ICAgIFJlc3VsdFByb2ZpbGUmIHJlc3VsdFByb2ZpbGUgPSAqbV9pbmxpbmVTdGFja1RvcC0+bV9w
cm9maWxlZEJsb2NrLT5yZXN1bHRQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQobV9jdXJyZW50SW5k
ZXgpOwotICAgICAgICAgICAgaWYgKHJlc3VsdFByb2ZpbGUuZGlkT2JzZXJ2ZUludDUyT3ZlcmZs
b3coKSkKLSAgICAgICAgICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlPdmVyZmxvd0lu
dDUyKTsKLSAgICAgICAgICAgIGlmIChyZXN1bHRQcm9maWxlLmRpZE9ic2VydmVJbnQzMk92ZXJm
bG93KCkgfHwgbV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5oYXNFeGl0U2l0ZShtX2N1
cnJlbnRJbmRleCwgT3ZlcmZsb3cpKQorICAgICAgICBpZiAobV9pbmxpbmVTdGFja1RvcC0+bV9w
cm9maWxlZEJsb2NrLT5saWtlbHlUb1Rha2VTbG93Q2FzZShtX2N1cnJlbnRJbmRleCkpIHsKKyAg
ICAgICAgICAgIHN3aXRjaCAobm9kZS0+b3AoKSkgeworICAgICAgICAgICAgY2FzZSBVSW50MzJU
b051bWJlcjoKKyAgICAgICAgICAgIGNhc2UgQXJpdGhBZGQ6CisgICAgICAgICAgICBjYXNlIEFy
aXRoU3ViOgorICAgICAgICAgICAgY2FzZSBWYWx1ZUFkZDoKKyAgICAgICAgICAgIGNhc2UgQXJp
dGhNb2Q6IC8vIGZvciBBcml0aE1vZCAiTWF5T3ZlcmZsb3ciIG1lYW5zIHdlIHRyaWVkIHRvIGRp
dmlkZSBieSB6ZXJvLCBvciB3ZSBzYXcgZG91YmxlLgorICAgICAgICAgICAgICAgIG5vZGUtPm1l
cmdlRmxhZ3MoTm9kZU1heU92ZXJmbG93SW50MzJJbkJhc2VsaW5lKTsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGNhc2UgQXJpdGhOZWdhdGU6
CisgICAgICAgICAgICAgICAgLy8gQ3VycmVudGx5IHdlIGNhbid0IHRlbGwgdGhlIGRpZmZlcmVu
Y2UgYmV0d2VlbiBhIG5lZ2F0aW9uIG92ZXJmbG93aW5nCisgICAgICAgICAgICAgICAgLy8gKGku
ZS4gLSgxIDw8IDMxKSkgb3IgZ2VuZXJhdGluZyBuZWdhdGl2ZSB6ZXJvIChpLmUuIC0wKS4gSWYg
aXQgdG9vayBzbG93CisgICAgICAgICAgICAgICAgLy8gcGF0aCB0aGVuIHdlIGFzc3VtZSB0aGF0
IGl0IGRpZCBib3RoIG9mIHRob3NlIHRoaW5ncy4KICAgICAgICAgICAgICAgICBub2RlLT5tZXJn
ZUZsYWdzKE5vZGVNYXlPdmVyZmxvd0ludDMySW5CYXNlbGluZSk7Ci0gICAgICAgICAgICBpZiAo
cmVzdWx0UHJvZmlsZS5kaWRPYnNlcnZlTmVnWmVyb0RvdWJsZSgpIHx8IG1faW5saW5lU3RhY2tU
b3AtPm1fZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJyZW50SW5kZXgsIE5lZ2F0aXZlWmVy
bykpCiAgICAgICAgICAgICAgICAgbm9kZS0+bWVyZ2VGbGFncyhOb2RlTWF5TmVnWmVyb0luQmFz
ZWxpbmUpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLQotICAgICAgICBkZWZhdWx0
OgotICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIAorICAgICAg
ICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KICAg
ICAgICAgfQogICAgICAgICAKICAgICAgICAgcmV0dXJuIG5vZGU7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAJKHJldmlzaW9uIDIwMDUxNykKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTIzNiw4ICsyMzYsNyBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIEFyaXRoTXVsOiB7
CiAgICAgICAgICAgICBFZGdlJiBsZWZ0Q2hpbGQgPSBub2RlLT5jaGlsZDEoKTsKICAgICAgICAg
ICAgIEVkZ2UmIHJpZ2h0Q2hpbGQgPSBub2RlLT5jaGlsZDIoKTsKLSAgICAgICAgICAgIGlmIChO
b2RlOjpzaG91bGRTcGVjdWxhdGVVbnR5cGVkRm9yQXJpdGhtZXRpYyhsZWZ0Q2hpbGQubm9kZSgp
LCByaWdodENoaWxkLm5vZGUoKSkKLSAgICAgICAgICAgICAgICAmJiBtX2dyYXBoLmhhc0V4aXRT
aXRlKG5vZGUtPm9yaWdpbi5zZW1hbnRpYywgQmFkVHlwZSkpIHsKKyAgICAgICAgICAgIGlmIChO
b2RlOjpzaG91bGRTcGVjdWxhdGVVbnR5cGVkRm9yQXJpdGhtZXRpYyhsZWZ0Q2hpbGQubm9kZSgp
LCByaWdodENoaWxkLm5vZGUoKSkpIHsKICAgICAgICAgICAgICAgICBmaXhFZGdlPFVudHlwZWRV
c2U+KGxlZnRDaGlsZCk7CiAgICAgICAgICAgICAgICAgZml4RWRnZTxVbnR5cGVkVXNlPihyaWdo
dENoaWxkKTsKICAgICAgICAgICAgICAgICBub2RlLT5zZXRSZXN1bHQoTm9kZVJlc3VsdEpTKTsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguY3BwCShyZXZpc2lvbiAyMDA1
MTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTQ0Niw0NiArMTQ0Niw1MCBAQCB2b2lkIEdyYXBoOjplbnN1cmVOYXR1cmFsTG9v
cHMoKQogICAgICAgICBtX25hdHVyYWxMb29wcyA9IHN0ZDo6bWFrZV91bmlxdWU8TmF0dXJhbExv
b3BzPigqdGhpcyk7CiB9CiAKLVZhbHVlUHJvZmlsZSogR3JhcGg6OnZhbHVlUHJvZmlsZUZvcihO
b2RlKiBub2RlKQorTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZSBHcmFwaDo6bWV0aG9kT2ZH
ZXR0aW5nQVZhbHVlUHJvZmlsZUZvcihOb2RlKiBub2RlKQogewotICAgIGlmICghbm9kZSkKLSAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgd2hpbGUgKG5vZGUpIHsKKyAgICAgICAgQ29kZUJs
b2NrKiBwcm9maWxlZEJsb2NrID0gYmFzZWxpbmVDb2RlQmxvY2tGb3Iobm9kZS0+b3JpZ2luLnNl
bWFudGljKTsKICAgICAgICAgCi0gICAgQ29kZUJsb2NrKiBwcm9maWxlZEJsb2NrID0gYmFzZWxp
bmVDb2RlQmxvY2tGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKTsKKyAgICAgICAgaWYgKG5vZGUt
Pmhhc0xvY2FsKCp0aGlzKSkgeworICAgICAgICAgICAgVmFsdWVQcm9maWxlKiByZXN1bHQgPSBb
Jl0gKCkgLT4gVmFsdWVQcm9maWxlKiB7CisgICAgICAgICAgICAgICAgaWYgKCFub2RlLT5sb2Nh
bCgpLmlzQXJndW1lbnQoKSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Cisg
ICAgICAgICAgICAgICAgaW50IGFyZ3VtZW50ID0gbm9kZS0+bG9jYWwoKS50b0FyZ3VtZW50KCk7
CisgICAgICAgICAgICAgICAgTm9kZSogYXJndW1lbnROb2RlID0gbV9hcmd1bWVudHNbYXJndW1l
bnRdOworICAgICAgICAgICAgICAgIGlmICghYXJndW1lbnROb2RlKQorICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgICAgICAgICBpZiAobm9kZS0+dmFyaWFibGVB
Y2Nlc3NEYXRhKCkgIT0gYXJndW1lbnROb2RlLT52YXJpYWJsZUFjY2Vzc0RhdGEoKSkKKyAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgICAgICAgICAgcmV0dXJuIHBy
b2ZpbGVkQmxvY2stPnZhbHVlUHJvZmlsZUZvckFyZ3VtZW50KGFyZ3VtZW50KTsKKyAgICAgICAg
ICAgIH0oKTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQpCisgICAgICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKG5vZGUtPm9wKCkgPT0gR2V0
TG9jYWwpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJv
ZmlsZTo6ZnJvbUxhenlPcGVyYW5kKAorICAgICAgICAgICAgICAgICAgICBwcm9maWxlZEJsb2Nr
LAorICAgICAgICAgICAgICAgICAgICBMYXp5T3BlcmFuZFZhbHVlUHJvZmlsZUtleSgKKyAgICAg
ICAgICAgICAgICAgICAgICAgIG5vZGUtPm9yaWdpbi5zZW1hbnRpYy5ieXRlY29kZUluZGV4LCBu
b2RlLT5sb2NhbCgpKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KICAgICAgICAgCi0gICAg
aWYgKG5vZGUtPmhhc0xvY2FsKCp0aGlzKSkgewotICAgICAgICBpZiAoIW5vZGUtPmxvY2FsKCku
aXNBcmd1bWVudCgpKQotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAgIGludCBh
cmd1bWVudCA9IG5vZGUtPmxvY2FsKCkudG9Bcmd1bWVudCgpOwotICAgICAgICBOb2RlKiBhcmd1
bWVudE5vZGUgPSBtX2FyZ3VtZW50c1thcmd1bWVudF07Ci0gICAgICAgIGlmICghYXJndW1lbnRO
b2RlKQotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAgIGlmIChub2RlLT52YXJp
YWJsZUFjY2Vzc0RhdGEoKSAhPSBhcmd1bWVudE5vZGUtPnZhcmlhYmxlQWNjZXNzRGF0YSgpKQot
ICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAgIHJldHVybiBwcm9maWxlZEJsb2Nr
LT52YWx1ZVByb2ZpbGVGb3JBcmd1bWVudChhcmd1bWVudCk7Ci0gICAgfQorICAgICAgICBpZiAo
bm9kZS0+aGFzSGVhcFByZWRpY3Rpb24oKSkKKyAgICAgICAgICAgIHJldHVybiBwcm9maWxlZEJs
b2NrLT52YWx1ZVByb2ZpbGVGb3JCeXRlY29kZU9mZnNldChub2RlLT5vcmlnaW4uc2VtYW50aWMu
Ynl0ZWNvZGVJbmRleCk7CiAgICAgICAgIAotICAgIGlmIChub2RlLT5oYXNIZWFwUHJlZGljdGlv
bigpKQotICAgICAgICByZXR1cm4gcHJvZmlsZWRCbG9jay0+dmFsdWVQcm9maWxlRm9yQnl0ZWNv
ZGVPZmZzZXQobm9kZS0+b3JpZ2luLnNlbWFudGljLmJ5dGVjb2RlSW5kZXgpOworICAgICAgICBp
ZiAoUmVzdWx0UHJvZmlsZSogcmVzdWx0ID0gcHJvZmlsZWRCbG9jay0+cmVzdWx0UHJvZmlsZUZv
ckJ5dGVjb2RlT2Zmc2V0KG5vZGUtPm9yaWdpbi5zZW1hbnRpYy5ieXRlY29kZUluZGV4KSkKKyAg
ICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgIAotICAgIHJldHVybiBudWxscHRyOwot
fQotCi1NZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlIEdyYXBoOjptZXRob2RPZkdldHRpbmdB
VmFsdWVQcm9maWxlRm9yKE5vZGUqIG5vZGUpCi17Ci0gICAgaWYgKCFub2RlKQotICAgICAgICBy
ZXR1cm4gTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZSgpOwotICAgIAotICAgIGlmIChWYWx1
ZVByb2ZpbGUqIHZhbHVlUHJvZmlsZSA9IHZhbHVlUHJvZmlsZUZvcihub2RlKSkKLSAgICAgICAg
cmV0dXJuIE1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUodmFsdWVQcm9maWxlKTsKLSAgICAK
LSAgICBpZiAobm9kZS0+b3AoKSA9PSBHZXRMb2NhbCkgewotICAgICAgICBDb2RlQmxvY2sqIHBy
b2ZpbGVkQmxvY2sgPSBiYXNlbGluZUNvZGVCbG9ja0Zvcihub2RlLT5vcmlnaW4uc2VtYW50aWMp
OwotICAgICAgICAKLSAgICAgICAgcmV0dXJuIE1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGU6
OmZyb21MYXp5T3BlcmFuZCgKLSAgICAgICAgICAgIHByb2ZpbGVkQmxvY2ssCi0gICAgICAgICAg
ICBMYXp5T3BlcmFuZFZhbHVlUHJvZmlsZUtleSgKLSAgICAgICAgICAgICAgICBub2RlLT5vcmln
aW4uc2VtYW50aWMuYnl0ZWNvZGVJbmRleCwgbm9kZS0+bG9jYWwoKSkpOworICAgICAgICBzd2l0
Y2ggKG5vZGUtPm9wKCkpIHsKKyAgICAgICAgY2FzZSBJZGVudGl0eToKKyAgICAgICAgY2FzZSBW
YWx1ZVJlcDoKKyAgICAgICAgY2FzZSBEb3VibGVSZXA6CisgICAgICAgIGNhc2UgSW50NTJSZXA6
CisgICAgICAgICAgICBub2RlID0gbm9kZS0+Y2hpbGQxKCkubm9kZSgpOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBub2RlID0gbnVsbHB0cjsKKyAg
ICAgICAgfQogICAgIH0KICAgICAKICAgICByZXR1cm4gTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJv
ZmlsZSgpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaAkocmV2aXNpb24g
MjAwNTE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oCSh3b3JraW5n
IGNvcHkpCkBAIC00MDAsNyArNDAwLDYgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gaGFzRXhp
dFNpdGUobm9kZS0+b3JpZ2luLnNlbWFudGljLCBleGl0S2luZCk7CiAgICAgfQogICAgIAotICAg
IFZhbHVlUHJvZmlsZSogdmFsdWVQcm9maWxlRm9yKE5vZGUqKTsKICAgICBNZXRob2RPZkdldHRp
bmdBVmFsdWVQcm9maWxlIG1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGVGb3IoTm9kZSopOwog
ICAgIAogICAgIEJsb2NrSW5kZXggbnVtQmxvY2tzKCkgY29uc3QgeyByZXR1cm4gbV9ibG9ja3Mu
c2l6ZSgpOyB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAkocmV2aXNpb24g
MjAwNTE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTk1MCw2ICs5NTAsMjEgQEAgc3RydWN0IE5vZGUgewogICAgICAgICByZXR1cm4g
cmVzdWx0ICYgfk5vZGVCeXRlY29kZU5lZWRzTmVnWmVybzsKICAgICB9CiAKKyAgICBib29sIG1h
eUhhdmVOb25JbnRSZXN1bHQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fZmxhZ3MgJiBOb2Rl
TWF5SGF2ZU5vbkludFJlc3VsdDsKKyAgICB9CisgICAgCisgICAgYm9vbCBtYXlIYXZlRG91Ymxl
UmVzdWx0KCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX2ZsYWdzICYgTm9kZU1heUhhdmVEb3Vi
bGVSZXN1bHQ7CisgICAgfQorICAgIAorICAgIGJvb2wgbWF5SGF2ZU5vbk51bWJlclJlc3VsdCgp
CisgICAgeworICAgICAgICByZXR1cm4gbV9mbGFncyAmIE5vZGVNYXlIYXZlTm9uTnVtYmVyUmVz
dWx0OworICAgIH0KKwogICAgIGJvb2wgaGFzQ29uc3RhbnRCdWZmZXIoKQogICAgIHsKICAgICAg
ICAgcmV0dXJuIG9wKCkgPT0gTmV3QXJyYXlCdWZmZXI7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR05vZGVGbGFncy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdOb2RlRmxhZ3MuY3BwCShyZXZpc2lvbiAyMDA1MTcpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVGbGFncy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg1
LDYgKzg1LDEyIEBAIHZvaWQgZHVtcE5vZGVGbGFncyhQcmludFN0cmVhbSYgYWN0dWFsT3UKICAg
ICAgICAgICAgIG91dC5wcmludChjb21tYSwgIlVzZUFzT3RoZXIiKTsKICAgICB9CiAKKyAgICBp
ZiAoZmxhZ3MgJiBOb2RlTWF5SGF2ZURvdWJsZVJlc3VsdCkKKyAgICAgICAgb3V0LnByaW50KGNv
bW1hLCAiTWF5SGF2ZURvdWJsZVJlc3VsdCIpOworCisgICAgaWYgKGZsYWdzICYgTm9kZU1heUhh
dmVOb25OdW1iZXJSZXN1bHQpCisgICAgICAgIG91dC5wcmludChjb21tYSwgIk1heUhhdmVOb25O
dW1iZXJSZXN1bHQiKTsKKwogICAgIGlmIChmbGFncyAmIE5vZGVNYXlPdmVyZmxvd0ludDUyKQog
ICAgICAgICBvdXQucHJpbnQoY29tbWEsICJNYXlPdmVyZmxvd0ludDUyIik7CiAKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZUZsYWdzLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlRmxhZ3MuaAkocmV2aXNpb24gMjAwNTE3KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlRmxhZ3MuaAkod29ya2luZyBjb3B5
KQpAQCAtNDgsMjggKzQ4LDMwIEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKICNk
ZWZpbmUgTm9kZUhhc1ZhckFyZ3MgICAgICAgICAgICAgICAgICAgMHgwMDEwCiAgICAgCiAjZGVm
aW5lIE5vZGVCZWhhdmlvck1hc2sgICAgICAgICAgICAgICAgIDB4MDdlMAorI2RlZmluZSBOb2Rl
TWF5SGF2ZURvdWJsZVJlc3VsdCAgICAgICAgICAweDAwMjAKICNkZWZpbmUgTm9kZU1heU92ZXJm
bG93SW50NTIgICAgICAgICAgICAgMHgwMDQwCiAjZGVmaW5lIE5vZGVNYXlPdmVyZmxvd0ludDMy
SW5CYXNlbGluZSAgIDB4MDA4MAogI2RlZmluZSBOb2RlTWF5T3ZlcmZsb3dJbnQzMkluREZHICAg
ICAgICAweDAxMDAKICNkZWZpbmUgTm9kZU1heU5lZ1plcm9JbkJhc2VsaW5lICAgICAgICAgMHgw
MjAwCiAjZGVmaW5lIE5vZGVNYXlOZWdaZXJvSW5ERkcgICAgICAgICAgICAgIDB4MDQwMAorI2Rl
ZmluZSBOb2RlTWF5SGF2ZU5vbk51bWJlclJlc3VsdCAgICAgICAweDA4MDAKKyNkZWZpbmUgTm9k
ZU1heUhhdmVOb25JbnRSZXN1bHQgICAgICAgICAgKE5vZGVNYXlIYXZlRG91YmxlUmVzdWx0IHwg
Tm9kZU1heUhhdmVOb25OdW1iZXJSZXN1bHQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIAotI2RlZmluZSBOb2RlQnl0ZWNvZGVCYWNrUHJvcE1hc2sgICAgICAgICAweGY4MDAKLSNk
ZWZpbmUgTm9kZUJ5dGVjb2RlVXNlQm90dG9tICAgICAgICAgICAgMHgwMDAwCi0jZGVmaW5lIE5v
ZGVCeXRlY29kZVVzZXNBc051bWJlciAgICAgICAgIDB4MDgwMCAvLyBUaGUgcmVzdWx0IG9mIHRo
aXMgY29tcHV0YXRpb24gbWF5IGJlIHVzZWQgaW4gYSBjb250ZXh0IHRoYXQgb2JzZXJ2ZXMgZnJh
Y3Rpb25hbCwgb3IgYmlnZ2VyLXRoYW4taW50MzIsIHJlc3VsdHMuCi0jZGVmaW5lIE5vZGVCeXRl
Y29kZU5lZWRzTmVnWmVybyAgICAgICAgIDB4MTAwMCAvLyBUaGUgcmVzdWx0IG9mIHRoaXMgY29t
cHV0YXRpb24gbWF5IGJlIHVzZWQgaW4gYSBjb250ZXh0IHRoYXQgb2JzZXJ2ZXMgLTAuCi0jZGVm
aW5lIE5vZGVCeXRlY29kZVVzZXNBc090aGVyICAgICAgICAgIDB4MjAwMCAvLyBUaGUgcmVzdWx0
IG9mIHRoaXMgY29tcHV0YXRpb24gbWF5IGJlIHVzZWQgaW4gYSBjb250ZXh0IHRoYXQgZGlzdGlu
Z3Vpc2hlcyBiZXR3ZWVuIE5hTiBhbmQgb3RoZXIgdGhpbmdzIChsaWtlIHVuZGVmaW5lZCkuCi0j
ZGVmaW5lIE5vZGVCeXRlY29kZVVzZXNBc1ZhbHVlICAgICAgICAgIChOb2RlQnl0ZWNvZGVVc2Vz
QXNOdW1iZXIgfCBOb2RlQnl0ZWNvZGVOZWVkc05lZ1plcm8gfCBOb2RlQnl0ZWNvZGVVc2VzQXNP
dGhlcikKLSNkZWZpbmUgTm9kZUJ5dGVjb2RlVXNlc0FzSW50ICAgICAgICAgICAgMHg0MDAwIC8v
IFRoZSByZXN1bHQgb2YgdGhpcyBjb21wdXRhdGlvbiBpcyBrbm93biB0byBiZSB1c2VkIGluIGEg
Y29udGV4dCB0aGF0IHByZWZlcnMsIGJ1dCBkb2VzIG5vdCByZXF1aXJlLCBpbnRlZ2VyIHZhbHVl
cy4KLSNkZWZpbmUgTm9kZUJ5dGVjb2RlVXNlc0FzQXJyYXlJbmRleCAgICAgMHg4MDAwIC8vIFRo
ZSByZXN1bHQgb2YgdGhpcyBjb21wdXRhdGlvbiBpcyBrbm93biB0byBiZSB1c2VkIGluIGEgY29u
dGV4dCB0aGF0IHN0cm9uZ2x5IHByZWZlcnMgaW50ZWdlciB2YWx1ZXMsIHRvIHRoZSBwb2ludCB0
aGF0IHdlIHNob3VsZCBhdm9pZCB1c2luZyBkb3VibGVzIGlmIGF0IGFsbCBwb3NzaWJsZS4KKyNk
ZWZpbmUgTm9kZUJ5dGVjb2RlQmFja1Byb3BNYXNrICAgICAgICAweDFmMDAwCisjZGVmaW5lIE5v
ZGVCeXRlY29kZVVzZUJvdHRvbSAgICAgICAgICAgMHgwMDAwMAorI2RlZmluZSBOb2RlQnl0ZWNv
ZGVVc2VzQXNOdW1iZXIgICAgICAgIDB4MDEwMDAgLy8gVGhlIHJlc3VsdCBvZiB0aGlzIGNvbXB1
dGF0aW9uIG1heSBiZSB1c2VkIGluIGEgY29udGV4dCB0aGF0IG9ic2VydmVzIGZyYWN0aW9uYWws
IG9yIGJpZ2dlci10aGFuLWludDMyLCByZXN1bHRzLgorI2RlZmluZSBOb2RlQnl0ZWNvZGVOZWVk
c05lZ1plcm8gICAgICAgIDB4MDIwMDAgLy8gVGhlIHJlc3VsdCBvZiB0aGlzIGNvbXB1dGF0aW9u
IG1heSBiZSB1c2VkIGluIGEgY29udGV4dCB0aGF0IG9ic2VydmVzIC0wLgorI2RlZmluZSBOb2Rl
Qnl0ZWNvZGVVc2VzQXNPdGhlciAgICAgICAgIDB4MDQwMDAgLy8gVGhlIHJlc3VsdCBvZiB0aGlz
IGNvbXB1dGF0aW9uIG1heSBiZSB1c2VkIGluIGEgY29udGV4dCB0aGF0IGRpc3Rpbmd1aXNoZXMg
YmV0d2VlbiBOYU4gYW5kIG90aGVyIHRoaW5ncyAobGlrZSB1bmRlZmluZWQpLgorI2RlZmluZSBO
b2RlQnl0ZWNvZGVVc2VzQXNWYWx1ZSAgICAgICAgIChOb2RlQnl0ZWNvZGVVc2VzQXNOdW1iZXIg
fCBOb2RlQnl0ZWNvZGVOZWVkc05lZ1plcm8gfCBOb2RlQnl0ZWNvZGVVc2VzQXNPdGhlcikKKyNk
ZWZpbmUgTm9kZUJ5dGVjb2RlVXNlc0FzSW50ICAgICAgICAgICAweDA4MDAwIC8vIFRoZSByZXN1
bHQgb2YgdGhpcyBjb21wdXRhdGlvbiBpcyBrbm93biB0byBiZSB1c2VkIGluIGEgY29udGV4dCB0
aGF0IHByZWZlcnMsIGJ1dCBkb2VzIG5vdCByZXF1aXJlLCBpbnRlZ2VyIHZhbHVlcy4KKyNkZWZp
bmUgTm9kZUJ5dGVjb2RlVXNlc0FzQXJyYXlJbmRleCAgICAweDEwMDAwIC8vIFRoZSByZXN1bHQg
b2YgdGhpcyBjb21wdXRhdGlvbiBpcyBrbm93biB0byBiZSB1c2VkIGluIGEgY29udGV4dCB0aGF0
IHN0cm9uZ2x5IHByZWZlcnMgaW50ZWdlciB2YWx1ZXMsIHRvIHRoZSBwb2ludCB0aGF0IHdlIHNo
b3VsZCBhdm9pZCB1c2luZyBkb3VibGVzIGlmIGF0IGFsbCBwb3NzaWJsZS4KIAogI2RlZmluZSBO
b2RlQXJpdGhGbGFnc01hc2sgICAgICAgICAgICAgICAoTm9kZUJlaGF2aW9yTWFzayB8IE5vZGVC
eXRlY29kZUJhY2tQcm9wTWFzaykKIAotI2RlZmluZSBOb2RlSXNGbHVzaGVkICAgICAgICAgICAg
ICAgICAgIDB4MTAwMDAgLy8gQ29tcHV0ZWQgYnkgQ1BTUmV0aHJlYWRpbmdQaGFzZSwgd2lsbCB0
ZWxsIHlvdSB3aGljaCBsb2NhbCBub2RlcyBhcmUgYmFja3dhcmRzLXJlYWNoYWJsZSBmcm9tIGEg
Rmx1c2guCisjZGVmaW5lIE5vZGVJc0ZsdXNoZWQgICAgICAgICAgICAgICAgICAgMHgyMDAwMCAv
LyBDb21wdXRlZCBieSBDUFNSZXRocmVhZGluZ1BoYXNlLCB3aWxsIHRlbGwgeW91IHdoaWNoIGxv
Y2FsIG5vZGVzIGFyZSBiYWNrd2FyZHMtcmVhY2hhYmxlIGZyb20gYSBGbHVzaC4KIAotI2RlZmlu
ZSBOb2RlTWlzY0ZsYWcxICAgICAgICAgICAgICAgICAgIDB4MjAwMDAKLSNkZWZpbmUgTm9kZU1p
c2NGbGFnMiAgICAgICAgICAgICAgICAgICAweDQwMDAwCi0jZGVmaW5lIE5vZGVNaXNjRmxhZzMg
ICAgICAgICAgICAgICAgICAgMHg4MDAwMAorI2RlZmluZSBOb2RlTWlzY0ZsYWcxICAgICAgICAg
ICAgICAgICAgIDB4NDAwMDAKKyNkZWZpbmUgTm9kZU1pc2NGbGFnMiAgICAgICAgICAgICAgICAg
ICAweDgwMDAwCiAKIHR5cGVkZWYgdWludDMyX3QgTm9kZUZsYWdzOwogCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlcjY0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlcjY0LmNwcAkocmV2
aXNpb24gMjAwNTE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29t
cGlsZXI2NC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDExLCAyMDEzLTIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEzLTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMzUsMTYgKzEzNSwx
NiBAQCB2b2lkIE9TUkV4aXRDb21waWxlcjo6Y29tcGlsZUV4aXQoY29uc3QgCiAgICAgICAgIH0K
ICAgICAgICAgCiAgICAgICAgIGlmICghIWV4aXQubV92YWx1ZVByb2ZpbGUpIHsKLSAgICAgICAg
ICAgIEVuY29kZWRKU1ZhbHVlKiBidWNrZXQgPSBleGl0Lm1fdmFsdWVQcm9maWxlLmdldFNwZWNG
YWlsQnVja2V0KDApOworICAgICAgICAgICAgTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZSBw
cm9maWxlID0gZXhpdC5tX3ZhbHVlUHJvZmlsZTsKICAgICAgICAgICAgIAogICAgICAgICAgICAg
aWYgKGV4aXQubV9qc1ZhbHVlU291cmNlLmlzQWRkcmVzcygpKSB7CiAgICAgICAgICAgICAgICAg
Ly8gV2UgY2FuJ3QgYmUgc3VyZSB0aGF0IHdlIGhhdmUgYSBzcGFyZSByZWdpc3Rlci4gU28gdXNl
IHRoZSB0YWdUeXBlTnVtYmVyUmVnaXN0ZXIsCiAgICAgICAgICAgICAgICAgLy8gc2luY2Ugd2Ug
a25vdyBob3cgdG8gcmVzdG9yZSBpdC4KICAgICAgICAgICAgICAgICBtX2ppdC5sb2FkNjQoQXNz
ZW1ibHlIZWxwZXJzOjpBZGRyZXNzKGV4aXQubV9qc1ZhbHVlU291cmNlLmFzQWRkcmVzcygpKSwg
R1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKTsKLSAgICAgICAgICAgICAgICBtX2ppdC5z
dG9yZTY0KEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3RlciwgYnVja2V0KTsKKyAgICAgICAg
ICAgICAgICBwcm9maWxlLmVtaXRSZXBvcnRWYWx1ZShtX2ppdCwgSlNWYWx1ZVJlZ3MoR1BSSW5m
bzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKSk7CiAgICAgICAgICAgICAgICAgbV9qaXQubW92ZShB
c3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW02NChUYWdUeXBlTnVtYmVyKSwgR1BSSW5mbzo6dGFn
VHlwZU51bWJlclJlZ2lzdGVyKTsKICAgICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgICAg
IG1faml0LnN0b3JlNjQoZXhpdC5tX2pzVmFsdWVTb3VyY2UuZ3ByKCksIGJ1Y2tldCk7CisgICAg
ICAgICAgICAgICAgcHJvZmlsZS5lbWl0UmVwb3J0VmFsdWUobV9qaXQsIEpTVmFsdWVSZWdzKGV4
aXQubV9qc1ZhbHVlU291cmNlLmdwcigpKSk7CiAgICAgICAgIH0KICAgICB9CiAgICAgCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAJKHJldmlzaW9u
IDIwMDUxNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTI2OCwxNyArMjY4LDYgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25WYQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIo
c3RhdGljX2Nhc3Q8aW50MzJfdD4oYSA+PiAoYiAmIDB4MWYpKSkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQWRkKEV4ZWNTdGF0ZSogZXhlYywgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikKLXsKLSAg
ICBWTSogdm0gPSAmZXhlYy0+dm0oKTsKLSAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2Vy
KHZtLCBleGVjKTsKLSAgICAKLSAgICBKU1ZhbHVlIG9wMSA9IEpTVmFsdWU6OmRlY29kZShlbmNv
ZGVkT3AxKTsKLSAgICBKU1ZhbHVlIG9wMiA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AyKTsK
LSAgICAKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQWRkKGV4ZWMsIG9wMSwgb3AyKSk7
Ci19Ci0KIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVBZGROb3RO
dW1iZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkT3AyKQogewogICAgIFZNKiB2bSA9ICZleGVjLT52bSgpOwpAQCAtMzA4
LDMyICsyOTcsNiBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhCiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihhIC8gYikpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsKEV4ZWNTdGF0ZSogZXhlYywg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikKLXsK
LSAgICBWTSogdm0gPSAmZXhlYy0+dm0oKTsKLSAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJh
Y2VyKHZtLCBleGVjKTsKLQotICAgIEpTVmFsdWUgb3AxID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29k
ZWRPcDEpOwotICAgIEpTVmFsdWUgb3AyID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDIpOwot
Ci0gICAgZG91YmxlIGEgPSBvcDEudG9OdW1iZXIoZXhlYyk7Ci0gICAgZG91YmxlIGIgPSBvcDIu
dG9OdW1iZXIoZXhlYyk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihhICog
YikpOwotfQotCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlU3Vi
KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZE9wMikKLXsKLSAgICBWTSogdm0gPSAmZXhlYy0+dm0oKTsKLSAgICBOYXRpdmVD
YWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBleGVjKTsKLSAgICAKLSAgICBKU1ZhbHVlIG9wMSA9
IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AxKTsKLSAgICBKU1ZhbHVlIG9wMiA9IEpTVmFsdWU6
OmRlY29kZShlbmNvZGVkT3AyKTsKLQotICAgIGRvdWJsZSBhID0gb3AxLnRvTnVtYmVyKGV4ZWMp
OwotICAgIGRvdWJsZSBiID0gb3AyLnRvTnVtYmVyKGV4ZWMpOwotICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNOdW1iZXIoYSAtIGIpKTsKLX0KLQogc3RhdGljIEFMV0FZU19JTkxJTkUgRW5j
b2RlZEpTVmFsdWUgZ2V0QnlWYWwoRXhlY1N0YXRlKiBleGVjLCBKU0NlbGwqIGJhc2UsIHVpbnQz
Ml90IGluZGV4KQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaAkocmV2aXNpb24gMjAwNTE3KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAg
LTUxLDExICs1MSw4IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmEK
IEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVCaXRMU2hpZnQoRXhl
Y1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZE9wMikgV1RGX0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRp
b25WYWx1ZUJpdFJTaGlmdChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSBXVEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQml0VVJTaGlmdChFeGVjU3RhdGUqLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSBXVEZfSU5URVJO
QUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQWRkKEV4ZWNT
dGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRP
cDIpIFdURl9JTlRFUk5BTDsKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
VmFsdWVBZGROb3ROdW1iZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikgV1RGX0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZURpdihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSBXVEZfSU5URVJOQUw7Ci1F
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsKEV4ZWNTdGF0ZSos
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpIFdU
Rl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVT
dWIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZE9wMikgV1RGX0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBv
cGVyYXRpb25HZXRCeVZhbChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFByb3BlcnR5KSBXVEZfSU5URVJOQUw7CiBFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5VmFsQ2VsbChFeGVjU3RhdGUqLCBKU0Nl
bGwqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkUHJvcGVydHkpIFdURl9JTlRFUk5BTDsKIEVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlWYWxBcnJheUludChFeGVjU3Rh
dGUqLCBKU0FycmF5KiwgaW50MzJfdCkgV1RGX0lOVEVSTkFMOwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25Q
aGFzZS5jcHAJKHJldmlzaW9uIDIwMDUxNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTEs
MTMgKzE5MSwxNiBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8
PSBtZXJnZVByZWRpY3Rpb24oU3BlY0ludDUyT25seSk7CiAgICAgICAgICAgICAgICAgICAgIGVs
c2UKICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKHNw
ZWN1bGF0ZWREb3VibGVUeXBlRm9yUHJlZGljdGlvbnMobGVmdCwgcmlnaHQpKTsKLSAgICAgICAg
ICAgICAgICB9IGVsc2UgaWYgKAotICAgICAgICAgICAgICAgICAgICAhKGxlZnQgJiAoU3BlY0Z1
bGxOdW1iZXIgfCBTcGVjQm9vbGVhbikpCi0gICAgICAgICAgICAgICAgICAgIHx8ICEocmlnaHQg
JiAoU3BlY0Z1bGxOdW1iZXIgfCBTcGVjQm9vbGVhbikpKSB7CisgICAgICAgICAgICAgICAgfSBl
bHNlIGlmIChpc1N0cmluZ09yU3RyaW5nT2JqZWN0U3BlY3VsYXRpb24obGVmdCkgJiYgaXNTdHJp
bmdPclN0cmluZ09iamVjdFNwZWN1bGF0aW9uKHJpZ2h0KSkgewogICAgICAgICAgICAgICAgICAg
ICAvLyBsZWZ0IG9yIHJpZ2h0IGlzIGRlZmluaXRlbHkgc29tZXRoaW5nIG90aGVyIHRoYW4gYSBu
dW1iZXIuCiAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKFNw
ZWNTdHJpbmcpOwotICAgICAgICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgICAgICAgICBj
aGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjU3RyaW5nIHwgU3BlY0ludDMyT25seSB8IFNw
ZWNCeXRlY29kZURvdWJsZSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
ICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY0ludDMyT25seSk7CisgICAg
ICAgICAgICAgICAgICAgIGlmIChub2RlLT5tYXlIYXZlRG91YmxlUmVzdWx0KCkpCisgICAgICAg
ICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjQnl0ZWNvZGVE
b3VibGUpOworICAgICAgICAgICAgICAgICAgICBpZiAobm9kZS0+bWF5SGF2ZU5vbk51bWJlclJl
c3VsdCgpKQorICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rp
b24oU3BlY1N0cmluZyk7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTIxMSw4ICsyMTQsMTIgQEAgcHJpdmF0ZToKICAg
ICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY0ludDMyT25s
eSk7CiAgICAgICAgICAgICAgICAgZWxzZSBpZiAobV9ncmFwaC5hZGRTaG91bGRTcGVjdWxhdGVB
bnlJbnQobm9kZSkpCiAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0
aW9uKFNwZWNJbnQ1Mk9ubHkpOwotICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAg
ICBlbHNlIGlmIChpc0Z1bGxOdW1iZXJPckJvb2xlYW5TcGVjdWxhdGlvbihsZWZ0KSAmJiBpc0Z1
bGxOdW1iZXJPckJvb2xlYW5TcGVjdWxhdGlvbihyaWdodCkpCiAgICAgICAgICAgICAgICAgICAg
IGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKHNwZWN1bGF0ZWREb3VibGVUeXBlRm9yUHJlZGlj
dGlvbnMobGVmdCwgcmlnaHQpKTsKKyAgICAgICAgICAgICAgICBlbHNlIGlmIChub2RlLT5tYXlI
YXZlTm9uSW50UmVzdWx0KCkgfHwgKGxlZnQgJiBTcGVjQnl0ZWNvZGVEb3VibGUpIHx8IChyaWdo
dCAmIFNwZWNCeXRlY29kZURvdWJsZSkpCisgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0g
bWVyZ2VQcmVkaWN0aW9uKFNwZWNJbnQzMk9ubHkgfCBTcGVjQnl0ZWNvZGVEb3VibGUpOworICAg
ICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVBy
ZWRpY3Rpb24oU3BlY0ludDMyT25seSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgfQpAQCAtMjMwLDggKzIzNywxMCBAQCBwcml2YXRlOgogICAgICAgICAgICAg
ICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY0ludDUyT25seSk7CiAg
ICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQg
fD0gbWVyZ2VQcmVkaWN0aW9uKHNwZWN1bGF0ZWREb3VibGVUeXBlRm9yUHJlZGljdGlvbnMobGVm
dCwgcmlnaHQpKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB9IGVs
c2UgaWYgKG5vZGUtPm1heUhhdmVOb25JbnRSZXN1bHQoKSB8fCAobGVmdCAmIFNwZWNCeXRlY29k
ZURvdWJsZSkgfHwgKHJpZ2h0ICYgU3BlY0J5dGVjb2RlRG91YmxlKSkKICAgICAgICAgICAgICAg
ICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY0ludDMyT25seSB8IFNwZWNCeXRl
Y29kZURvdWJsZSk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBj
aGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjSW50MzJPbmx5KTsKICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC0yNjcsNiArMjc2LDEwIEBAIHByaXZh
dGU6CiAgICAgICAgICAgICBTcGVjdWxhdGVkVHlwZSByaWdodCA9IG5vZGUtPmNoaWxkMigpLT5w
cmVkaWN0aW9uKCk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGlmIChsZWZ0ICYmIHJpZ2h0
KSB7CisgICAgICAgICAgICAgICAgLy8gRklYTUU6IFdlJ3JlIGN1cnJlbnRseSByZWx5aW5nIG9u
IHByZWRpY3Rpb24gcHJvcGFnYXRpb24gYW5kIGJhY2t3YXJkcyBwcm9wYWdhdGlvbgorICAgICAg
ICAgICAgICAgIC8vIHdoZW5ldmVyIHdlIGNhbiwgYW5kIG9ubHkgZmFsbGluZyBiYWNrIG9uIHJl
c3VsdCBmbGFncyBpZiB0aGF0IGZhaWxzLiBBbmQgdGhlIHJlc3VsdAorICAgICAgICAgICAgICAg
IC8vIGZsYWdzIGxvZ2ljIGRvZXNuJ3Qga25vdyBob3cgdG8gdXNlIGJhY2t3YXJkcyBwcm9wYWdh
dGlvbi4gV2Ugc2hvdWxkIGdldCByaWQgb2YgdGhlCisgICAgICAgICAgICAgICAgLy8gcHJlZGlj
dGlvbiBwcm9wYWdhdGlvbiBsb2dpYyBhbmQgcmVseSBzb2xlbHkgb24gdGhlIHJlc3VsdCB0eXBl
LgogICAgICAgICAgICAgICAgIGlmIChpc0Z1bGxOdW1iZXJPckJvb2xlYW5TcGVjdWxhdGlvbkV4
cGVjdGluZ0RlZmluZWQobGVmdCkKICAgICAgICAgICAgICAgICAgICAgJiYgaXNGdWxsTnVtYmVy
T3JCb29sZWFuU3BlY3VsYXRpb25FeHBlY3RpbmdEZWZpbmVkKHJpZ2h0KSkgewogICAgICAgICAg
ICAgICAgICAgICBpZiAobV9ncmFwaC5iaW5hcnlBcml0aFNob3VsZFNwZWN1bGF0ZUludDMyKG5v
ZGUsIG1fcGFzcykpCkBAIC0yNzUsOCArMjg4LDE0IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAg
ICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjSW50NTJPbmx5KTsKICAg
ICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8
PSBtZXJnZVByZWRpY3Rpb24oc3BlY3VsYXRlZERvdWJsZVR5cGVGb3JQcmVkaWN0aW9ucyhsZWZ0
LCByaWdodCkpOwotICAgICAgICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgICAgICAgICBj
aGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjSW50MzJPbmx5IHwgU3BlY0J5dGVjb2RlRG91
YmxlKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZiAo
bm9kZS0+bWF5SGF2ZU5vbkludFJlc3VsdCgpCisgICAgICAgICAgICAgICAgICAgICAgICB8fCAo
bGVmdCAmIFNwZWNCeXRlY29kZURvdWJsZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHx8IChy
aWdodCAmIFNwZWNCeXRlY29kZURvdWJsZSkpCisgICAgICAgICAgICAgICAgICAgICAgICBjaGFu
Z2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjSW50MzJPbmx5IHwgU3BlY0J5dGVjb2RlRG91Ymxl
KTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgY2hh
bmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY0ludDMyT25seSk7CisgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAko
cmV2aXNpb24gMjAwNTE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVDY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTA1LDcgKzkwNSw3IEBAIEdQUlJlZyBT
cGVjdWxhdGl2ZUpJVDo6ZmlsbFNwZWN1bGF0ZUludDMKIAogICAgIG1faW50ZXJwcmV0ZXIuZmls
dGVyKHZhbHVlLCBTcGVjSW50MzJPbmx5KTsKICAgICBpZiAodmFsdWUuaXNDbGVhcigpKSB7Ci0g
ICAgICAgIHRlcm1pbmF0ZVNwZWN1bGF0aXZlRXhlY3V0aW9uKFVuY291bnRhYmxlLCBKU1ZhbHVl
UmVncygpLCAwKTsKKyAgICAgICAgdGVybWluYXRlU3BlY3VsYXRpdmVFeGVjdXRpb24oQmFkVHlw
ZSwgSlNWYWx1ZVJlZ3MoKSwgMCk7CiAgICAgICAgIHJldHVybkZvcm1hdCA9IERhdGFGb3JtYXRJ
bnQzMjsKICAgICAgICAgcmV0dXJuIGFsbG9jYXRlKCk7CiAgICAgfQpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAkocmV2aXNpb24gMjAwNTE3
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNjcyLDIzICsxNjcyLDYgQEAgcHVibGljOgogICAgIH0KICNlbHNlIC8v
IFVTRShKU1ZBTFVFMzJfNjQpCiAKLS8vIEVuY29kZWRKU1ZhbHVlIGluIEpTVkFMVUUzMl82NCBp
cyBhIDY0LWJpdCBpbnRlZ2VyLiBXaGVuIGJlaW5nIGNvbXBpbGVkIGluIEFSTSBFQUJJLCBpdCBt
dXN0IGJlIGFsaWduZWQgb24gYW4gZXZlbi1udW1iZXJlZCByZWdpc3RlciAocjAsIHIyIG9yIFtz
cF0pLgotLy8gVG8gcHJldmVudCB0aGUgYXNzZW1ibGVyIGZyb20gdXNpbmcgd3JvbmcgcmVnaXN0
ZXJzLCBsZXQncyBvY2N1cHkgcjEgb3IgcjMgd2l0aCBhIGR1bW15IGFyZ3VtZW50IHdoZW4gbmVj
ZXNzYXJ5LgotI2lmIChDT01QSUxFUl9TVVBQT1JUUyhFQUJJKSAmJiBDUFUoQVJNKSkgfHwgQ1BV
KE1JUFMpCi0jZGVmaW5lIEVBQklfMzJCSVRfRFVNTVlfQVJHICAgICAgVHJ1c3RlZEltbTMyKDAp
LAotI2Vsc2UKLSNkZWZpbmUgRUFCSV8zMkJJVF9EVU1NWV9BUkcKLSNlbmRpZgotCi0vLyBKU1ZB
TFVFMzJfNjQgaXMgYSA2NC1iaXQgaW50ZWdlciB0aGF0IGNhbm5vdCBiZSBwdXQgaGFsZiBpbiBh
biBhcmd1bWVudCByZWdpc3RlciBhbmQgaGFsZiBvbiBzdGFjayB3aGVuIHVzaW5nIFNINCBhcmNo
aXRlY3R1cmUuCi0vLyBUbyBhdm9pZCB0aGlzLCBsZXQncyBvY2N1cHkgdGhlIDR0aCBhcmd1bWVu
dCByZWdpc3RlciAocjcpIHdpdGggYSBkdW1teSBhcmd1bWVudCB3aGVuIG5lY2Vzc2FyeS4gVGhp
cyBtdXN0IG9ubHkgYmUgZG9uZSB3aGVuIHRoZXJlCi0vLyBpcyBubyBvdGhlciAzMi1iaXQgdmFs
dWUgYXJndW1lbnQgYmVoaW5kIHRoaXMgNjQtYml0IEpTVmFsdWUuCi0jaWYgQ1BVKFNINCkKLSNk
ZWZpbmUgU0g0XzMyQklUX0RVTU1ZX0FSRyAgICAgIFRydXN0ZWRJbW0zMigwKSwKLSNlbHNlCi0j
ZGVmaW5lIFNINF8zMkJJVF9EVU1NWV9BUkcKLSNlbmRpZgotCiAgICAgSklUQ29tcGlsZXI6OkNh
bGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FT0pJVWkgb3BlcmF0aW9uLCBHUFJSZWcg
YXJnMSwgR1BSUmVnIGFyZzJUYWcsIEdQUlJlZyBhcmcyUGF5bG9hZCwgVW5pcXVlZFN0cmluZ0lt
cGwqIGltcGwsIHVuc2lnbmVkIHZhbHVlKQogICAgIHsKICAgICAgICAgbV9qaXQuc2V0dXBBcmd1
bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFyZzJQYXlsb2FkLCBhcmcyVGFnLCBUcnVzdGVkSW1t
UHRyKGltcGwpLCBUcnVzdGVkSW1tMzIodmFsdWUpKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMT1NSRXhpdENvbXBpbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4aXRDb21waWxlci5jcHAJKHJldmlzaW9uIDIwMDUxNykK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhpdENvbXBpbGVyLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAx
NSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMt
MjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTI4NCw4ICsyODQsOCBAQCBzdGF0aWMgdm9pZCBjb21waWxlU3R1YigK
ICAgICAgICAgICAgIH0KICAgICAgICAgfQogCi0gICAgICAgIGlmICghIWV4aXQubV9kZXNjcmlw
dG9yLT5tX3ZhbHVlUHJvZmlsZSkKLSAgICAgICAgICAgIGppdC5zdG9yZTY0KEdQUkluZm86OnJl
Z1QwLCBleGl0Lm1fZGVzY3JpcHRvci0+bV92YWx1ZVByb2ZpbGUuZ2V0U3BlY0ZhaWxCdWNrZXQo
MCkpOworICAgICAgICBpZiAoZXhpdC5tX2Rlc2NyaXB0b3ItPm1fdmFsdWVQcm9maWxlKQorICAg
ICAgICAgICAgZXhpdC5tX2Rlc2NyaXB0b3ItPm1fdmFsdWVQcm9maWxlLmVtaXRSZXBvcnRWYWx1
ZShqaXQsIEpTVmFsdWVSZWdzKEdQUkluZm86OnJlZ1QwKSk7CiAgICAgfQogCiAgICAgLy8gTWF0
ZXJpYWxpemUgYWxsIG9iamVjdHMuIERvbid0IG1hdGVyaWFsaXplIGFuIG9iamVjdCB1bnRpbCBh
bGwKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaAko
cmV2aXNpb24gMjAwNTE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhl
bHBlcnMuaAkod29ya2luZyBjb3B5KQpAQCAtNjUzLDExICs2NTMsNiBAQCBwdWJsaWM6CiAjZW5k
aWYKICAgICB9CiAKLSAgICBlbnVtIFRhZ1JlZ2lzdGVyc01vZGUgewotICAgICAgICBEb05vdEhh
dmVUYWdSZWdpc3RlcnMsCi0gICAgICAgIEhhdmVUYWdSZWdpc3RlcnMKLSAgICB9OwotCiAgICAg
SnVtcCBicmFuY2hJZk5vdENlbGwoR1BSUmVnIHJlZywgVGFnUmVnaXN0ZXJzTW9kZSBtb2RlID0g
SGF2ZVRhZ1JlZ2lzdGVycykKICAgICB7CiAjaWYgVVNFKEpTVkFMVUU2NCkKQEAgLTc4Myw2ICs3
NzgsMTggQEAgcHVibGljOgogI2VuZGlmCiAgICAgfQogCisgICAgSnVtcCBicmFuY2hJZk5vdERv
dWJsZUtub3duTm90SW50MzIoSlNWYWx1ZVJlZ3MgcmVncywgVGFnUmVnaXN0ZXJzTW9kZSBtb2Rl
ID0gSGF2ZVRhZ1JlZ2lzdGVycykKKyAgICB7CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICAgICAg
aWYgKG1vZGUgPT0gSGF2ZVRhZ1JlZ2lzdGVycykKKyAgICAgICAgICAgIHJldHVybiBicmFuY2hU
ZXN0NjQoWmVybywgcmVncy5ncHIoKSwgR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKTsK
KyAgICAgICAgcmV0dXJuIGJyYW5jaFRlc3Q2NChaZXJvLCByZWdzLmdwcigpLCBUcnVzdGVkSW1t
NjQoVGFnVHlwZU51bWJlcikpOworI2Vsc2UKKyAgICAgICAgVU5VU0VEX1BBUkFNKG1vZGUpOwor
ICAgICAgICByZXR1cm4gYnJhbmNoMzIoQWJvdmVPckVxdWFsLCByZWdzLnRhZ0dQUigpLCBUcnVz
dGVkSW1tMzIoSlNWYWx1ZTo6TG93ZXN0VGFnKSk7CisjZW5kaWYKKyAgICB9CisKICAgICAvLyBO
b3RlIHRoYXQgdGhlIHRlbXBHUFIgaXMgbm90IHVzZWQgaW4gMzItYml0IG1vZGUuCiAgICAgSnVt
cCBicmFuY2hJZkJvb2xlYW4oSlNWYWx1ZVJlZ3MgcmVncywgR1BSUmVnIHRlbXBHUFIpCiAgICAg
ewpAQCAtODQ4LDcgKzg1NSw4IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBKdW1wTGlzdCBicmFu
Y2hJZk5vdFR5cGUoCi0gICAgICAgIEpTVmFsdWVSZWdzLCBHUFJSZWcgdGVtcEdQUiwgY29uc3Qg
SW5mZXJyZWRUeXBlOjpEZXNjcmlwdG9yJiwgVGFnUmVnaXN0ZXJzTW9kZSk7CisgICAgICAgIEpT
VmFsdWVSZWdzLCBHUFJSZWcgdGVtcEdQUiwgY29uc3QgSW5mZXJyZWRUeXBlOjpEZXNjcmlwdG9y
JiwKKyAgICAgICAgVGFnUmVnaXN0ZXJzTW9kZSA9IEhhdmVUYWdSZWdpc3RlcnMpOwogCiAgICAg
dGVtcGxhdGU8dHlwZW5hbWUgVD4KICAgICBKdW1wIGJyYW5jaFN0cnVjdHVyZShSZWxhdGlvbmFs
Q29uZGl0aW9uIGNvbmRpdGlvbiwgVCBsZWZ0SGFuZFNpZGUsIFN0cnVjdHVyZSogc3RydWN0dXJl
KQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5oCShyZXZpc2lv
biAyMDA1MTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5oCSh3
b3JraW5nIGNvcHkpCkBAIC00MCw2ICs0MCwyMyBAQCBuYW1lc3BhY2UgSlNDIHsKICNkZWZpbmUg
UE9LRV9BUkdVTUVOVF9PRkZTRVQgMAogI2VuZGlmCiAKKy8vIEVuY29kZWRKU1ZhbHVlIGluIEpT
VkFMVUUzMl82NCBpcyBhIDY0LWJpdCBpbnRlZ2VyLiBXaGVuIGJlaW5nIGNvbXBpbGVkIGluIEFS
TSBFQUJJLCBpdCBtdXN0IGJlIGFsaWduZWQgZXZlbi1udW1iZXJlZCByZWdpc3RlciAocjAsIHIy
IG9yIFtzcF0pLgorLy8gVG8gYXZvaWQgYXNzZW1ibGllcyBmcm9tIHVzaW5nIHdyb25nIHJlZ2lz
dGVycywgbGV0J3Mgb2NjdXB5IHIxIG9yIHIzIHdpdGggYSBkdW1teSBhcmd1bWVudCB3aGVuIG5l
Y2Vzc2FyeS4KKyNpZiAoQ09NUElMRVJfU1VQUE9SVFMoRUFCSSkgJiYgQ1BVKEFSTSkpIHx8IENQ
VShNSVBTKQorI2RlZmluZSBFQUJJXzMyQklUX0RVTU1ZX0FSRyAgICAgIFRydXN0ZWRJbW0zMigw
KSwKKyNlbHNlCisjZGVmaW5lIEVBQklfMzJCSVRfRFVNTVlfQVJHCisjZW5kaWYKKworLy8gSlNW
QUxVRTMyXzY0IGlzIGEgNjQtYml0IGludGVnZXIgdGhhdCBjYW5ub3QgYmUgcHV0IGhhbGYgaW4g
YW4gYXJndW1lbnQgcmVnaXN0ZXIgYW5kIGhhbGYgb24gc3RhY2sgd2hlbiB1c2luZyBTSDQgYXJj
aGl0ZWN0dXJlLgorLy8gVG8gYXZvaWQgdGhpcywgbGV0J3Mgb2NjdXB5IHRoZSA0dGggYXJndW1l
bnQgcmVnaXN0ZXIgKHI3KSB3aXRoIGEgZHVtbXkgYXJndW1lbnQgd2hlbiBuZWNlc3NhcnkuIFRo
aXMgbXVzdCBvbmx5IGJlIGRvbmUgd2hlbiB0aGVyZQorLy8gaXMgbm8gb3RoZXIgMzItYml0IHZh
bHVlIGFyZ3VtZW50IGJlaGluZCB0aGlzIDY0LWJpdCBKU1ZhbHVlLgorI2lmIENQVShTSDQpCisj
ZGVmaW5lIFNINF8zMkJJVF9EVU1NWV9BUkcgICAgICBUcnVzdGVkSW1tMzIoMCksCisjZWxzZQor
I2RlZmluZSBTSDRfMzJCSVRfRFVNTVlfQVJHCisjZW5kaWYKKwogY2xhc3MgQ0NhbGxIZWxwZXJz
IDogcHVibGljIEFzc2VtYmx5SGVscGVycyB7CiBwdWJsaWM6CiAgICAgQ0NhbGxIZWxwZXJzKFZN
KiB2bSwgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSAwKQpAQCAtMjEyMiw2ICsyMTM5LDE1IEBAIHB1
YmxpYzoKICAgICB9CiAjZW5kaWYKICAgICAKKyAgICB2b2lkIHNldHVwQXJndW1lbnRzV2l0aEV4
ZWNTdGF0ZShKU1ZhbHVlUmVncyBhcmcxLCBKU1ZhbHVlUmVncyBhcmcyLCBUcnVzdGVkSW1tUHRy
IGFyZzMpCisgICAgeworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgICAgIHNldHVwQXJndW1lbnRz
V2l0aEV4ZWNTdGF0ZShhcmcxLmdwcigpLCBhcmcyLmdwcigpLCBhcmczKTsKKyNlbHNlCisgICAg
ICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShFQUJJXzMyQklUX0RVTU1ZX0FSRyBhcmcx
LnBheWxvYWRHUFIoKSwgYXJnMS50YWdHUFIoKSwgYXJnMi5wYXlsb2FkR1BSKCksIGFyZzMudGFn
R1BSKCksIGFyZzMpOworI2VuZGlmCisgICAgfQorICAgIAogICAgIHZvaWQgc2V0dXBBcmd1bWVu
dHMoSlNWYWx1ZVJlZ3MgYXJnMSkKICAgICB7CiAjaWYgVVNFKEpTVkFMVUU2NCkKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSW50cmluc2ljRW1pdHRlci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9JbnRyaW5zaWNFbWl0dGVyLmNwcAkocmV2aXNp
b24gMjAwNTE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9JbnRyaW5zaWNFbWl0dGVy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzgsNyArNzgsNyBAQCB2b2lkIEFjY2Vzc0Nhc2U6OmVt
aXRJbnRyaW5zaWNHZXR0ZXIoQWNjCiAgICAgc3dpdGNoIChpbnRyaW5zaWMoKSkgewogICAgIGNh
c2UgVHlwZWRBcnJheUxlbmd0aEludHJpbnNpYzogewogICAgICAgICBqaXQubG9hZDMyKE1hY3Jv
QXNzZW1ibGVyOjpBZGRyZXNzKHN0YXRlLmJhc2VHUFIsIEpTQXJyYXlCdWZmZXJWaWV3OjpvZmZz
ZXRPZkxlbmd0aCgpKSwgdmFsdWVHUFIpOwotICAgICAgICBqaXQuYm94SW50MzIodmFsdWVHUFIs
IHZhbHVlUmVncywgQ0NhbGxIZWxwZXJzOjpEb05vdEhhdmVUYWdSZWdpc3RlcnMpOworICAgICAg
ICBqaXQuYm94SW50MzIodmFsdWVHUFIsIHZhbHVlUmVncyk7CiAgICAgICAgIHN0YXRlLnN1Y2Nl
ZWQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTkzLDcgKzkzLDcgQEAgdm9pZCBBY2Nl
c3NDYXNlOjplbWl0SW50cmluc2ljR2V0dGVyKEFjYwogICAgICAgICAgICAgaml0LmxzaGlmdDMy
KHZhbHVlR1BSLCBJbW0zMihsb2dFbGVtZW50U2l6ZSh0eXBlKSksIHZhbHVlR1BSKTsKICAgICAg
ICAgfQogCi0gICAgICAgIGppdC5ib3hJbnQzMih2YWx1ZUdQUiwgdmFsdWVSZWdzLCBDQ2FsbEhl
bHBlcnM6OkRvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7CisgICAgICAgIGppdC5ib3hJbnQzMih2YWx1
ZUdQUiwgdmFsdWVSZWdzKTsKICAgICAgICAgc3RhdGUuc3VjY2VlZCgpOwogICAgICAgICByZXR1
cm47CiAgICAgfQpAQCAtMTE5LDcgKzExOSw3IEBAIHZvaWQgQWNjZXNzQ2FzZTo6ZW1pdEludHJp
bnNpY0dldHRlcihBY2MKICAgICAgICAgCiAgICAgICAgIGRvbmUubGluaygmaml0KTsKICAgICAg
ICAgCi0gICAgICAgIGppdC5ib3hJbnQzMih2YWx1ZUdQUiwgdmFsdWVSZWdzLCBDQ2FsbEhlbHBl
cnM6OkRvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7CisgICAgICAgIGppdC5ib3hJbnQzMih2YWx1ZUdQ
UiwgdmFsdWVSZWdzKTsKICAgICAgICAgc3RhdGUuc3VjY2VlZCgpOwogICAgICAgICByZXR1cm47
CiAgICAgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCShyZXZpc2lvbiAyMDA1MTcpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCSh3b3JraW5nIGNvcHkpCkBAIC03NTAs
NiArNzUwLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAjZW5kaWYKICAgICAgICAgTWFjcm9Bc3NlbWJs
ZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkksIGludCwgR1BSUmVnLCBV
bmlxdWVkU3RyaW5nSW1wbCopOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3Bl
cmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSiwgaW50LCBHUFJSZWcsIEdQUlJlZyk7CisgICAgICAg
IE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpKUnAs
IEpTVmFsdWVSZWdzLCBKU1ZhbHVlUmVncywgSlNWYWx1ZVJlZ3MsIFJlc3VsdFByb2ZpbGUqKTsK
ICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlv
bl9FSkpBcCwgaW50LCBHUFJSZWcsIEdQUlJlZywgQXJyYXlQcm9maWxlKik7CiAgICAgICAgIE1h
Y3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpKQnksIGlu
dCwgR1BSUmVnLCBHUFJSZWcsIEJ5VmFsSW5mbyopOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6
Q2FsbCBjYWxsT3BlcmF0aW9uKFpfSklUT3BlcmF0aW9uX0VKT0osIEdQUlJlZywgR1BSUmVnLCBH
UFJSZWcpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBZGRHZW5lcmF0b3Iu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQWRkR2VuZXJh
dG9yLmNwcAkocmV2aXNpb24gMjAwNTE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRBZGRHZW5lcmF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjgsNiArMTI4LDkgQEAgdm9p
ZCBKSVRBZGRHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoQwogCiAgICAgLy8gRG8gZG91Ymxl
VmFyICsgZG91YmxlVmFyLgogICAgIGppdC5hZGREb3VibGUobV9yaWdodEZQUiwgbV9sZWZ0RlBS
KTsKKyAgICBpZiAobV9yZXN1bHRQcm9maWxlKQorICAgICAgICBtX3Jlc3VsdFByb2ZpbGUtPmVt
aXRTZXREb3VibGUoaml0KTsKKyAgICAgICAgCiAgICAgaml0LmJveERvdWJsZShtX2xlZnRGUFIs
IG1fcmVzdWx0KTsKIH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBZGRH
ZW5lcmF0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFk
ZEdlbmVyYXRvci5oCShyZXZpc2lvbiAyMDA1MTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVEFkZEdlbmVyYXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw4IEBAIGNs
YXNzIEpJVEFkZEdlbmVyYXRvciB7CiBwdWJsaWM6CiAgICAgSklUQWRkR2VuZXJhdG9yKFNuaXBw
ZXRPcGVyYW5kIGxlZnRPcGVyYW5kLCBTbmlwcGV0T3BlcmFuZCByaWdodE9wZXJhbmQsCiAgICAg
ICAgIEpTVmFsdWVSZWdzIHJlc3VsdCwgSlNWYWx1ZVJlZ3MgbGVmdCwgSlNWYWx1ZVJlZ3Mgcmln
aHQsCi0gICAgICAgIEZQUlJlZyBsZWZ0RlBSLCBGUFJSZWcgcmlnaHRGUFIsIEdQUlJlZyBzY3Jh
dGNoR1BSLCBGUFJSZWcgc2NyYXRjaEZQUikKKyAgICAgICAgRlBSUmVnIGxlZnRGUFIsIEZQUlJl
ZyByaWdodEZQUiwgR1BSUmVnIHNjcmF0Y2hHUFIsIEZQUlJlZyBzY3JhdGNoRlBSLAorICAgICAg
ICBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlID0gbnVsbHB0cikKICAgICAgICAgOiBtX2xl
ZnRPcGVyYW5kKGxlZnRPcGVyYW5kKQogICAgICAgICAsIG1fcmlnaHRPcGVyYW5kKHJpZ2h0T3Bl
cmFuZCkKICAgICAgICAgLCBtX3Jlc3VsdChyZXN1bHQpCkBAIC00Nyw2ICs0OCw3IEBAIHB1Ymxp
YzoKICAgICAgICAgLCBtX3JpZ2h0RlBSKHJpZ2h0RlBSKQogICAgICAgICAsIG1fc2NyYXRjaEdQ
UihzY3JhdGNoR1BSKQogICAgICAgICAsIG1fc2NyYXRjaEZQUihzY3JhdGNoRlBSKQorICAgICAg
ICAsIG1fcmVzdWx0UHJvZmlsZShyZXN1bHRQcm9maWxlKQogICAgIHsKICAgICAgICAgQVNTRVJU
KCFtX2xlZnRPcGVyYW5kLmlzQ29uc3RJbnQzMigpIHx8ICFtX3JpZ2h0T3BlcmFuZC5pc0NvbnN0
SW50MzIoKSk7CiAgICAgfQpAQCAtNjcsNiArNjksNyBAQCBwcml2YXRlOgogICAgIEZQUlJlZyBt
X3JpZ2h0RlBSOwogICAgIEdQUlJlZyBtX3NjcmF0Y2hHUFI7CiAgICAgRlBSUmVnIG1fc2NyYXRj
aEZQUjsKKyAgICBSZXN1bHRQcm9maWxlKiBtX3Jlc3VsdFByb2ZpbGU7CiAgICAgYm9vbCBtX2Rp
ZEVtaXRGYXN0UGF0aCB7IGZhbHNlIH07CiAKICAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IG1f
ZW5kSnVtcExpc3Q7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0
aWMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQXJpdGht
ZXRpYy5jcHAJKHJldmlzaW9uIDIwMDUxNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUQXJpdGhtZXRpYy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY5Niw2ICs2OTYsMTAgQEAgdm9p
ZCBKSVQ6OmVtaXRfb3BfYWRkKEluc3RydWN0aW9uKiBjdXJyZQogICAgIEZQUlJlZyBzY3JhdGNo
RlBSID0gZnBSZWdUMjsKICNlbmRpZgogCisgICAgUmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmls
ZSA9IG51bGxwdHI7CisgICAgaWYgKHNob3VsZEVtaXRQcm9maWxpbmcoKSkKKyAgICAgICAgcmVz
dWx0UHJvZmlsZSA9IG1fY29kZUJsb2NrLT5lbnN1cmVSZXN1bHRQcm9maWxlKG1fYnl0ZWNvZGVP
ZmZzZXQpOworCiAgICAgU25pcHBldE9wZXJhbmQgbGVmdE9wZXJhbmQodHlwZXMuZmlyc3QoKSk7
CiAgICAgU25pcHBldE9wZXJhbmQgcmlnaHRPcGVyYW5kKHR5cGVzLnNlY29uZCgpKTsKIApAQCAt
NzEyLDcgKzcxNiw3IEBAIHZvaWQgSklUOjplbWl0X29wX2FkZChJbnN0cnVjdGlvbiogY3VycmUK
ICAgICAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihvcDIsIHJpZ2h0UmVncyk7CiAKICAgICBK
SVRBZGRHZW5lcmF0b3IgZ2VuKGxlZnRPcGVyYW5kLCByaWdodE9wZXJhbmQsIHJlc3VsdFJlZ3Ms
IGxlZnRSZWdzLCByaWdodFJlZ3MsCi0gICAgICAgIGZwUmVnVDAsIGZwUmVnVDEsIHNjcmF0Y2hH
UFIsIHNjcmF0Y2hGUFIpOworICAgICAgICBmcFJlZ1QwLCBmcFJlZ1QxLCBzY3JhdGNoR1BSLCBz
Y3JhdGNoRlBSLCByZXN1bHRQcm9maWxlKTsKIAogICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKCp0
aGlzKTsKIApAQCAtNzI0LDggKzcyOCwxNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9hZGQoSW5zdHJ1
Y3Rpb24qIGN1cnJlCiAgICAgfSBlbHNlIHsKICAgICAgICAgQVNTRVJUKGdlbi5lbmRKdW1wTGlz
dCgpLmVtcHR5KCkpOwogICAgICAgICBBU1NFUlQoZ2VuLnNsb3dQYXRoSnVtcExpc3QoKS5lbXB0
eSgpKTsKLSAgICAgICAgSklUU2xvd1BhdGhDYWxsIHNsb3dQYXRoQ2FsbCh0aGlzLCBjdXJyZW50
SW5zdHJ1Y3Rpb24sIHNsb3dfcGF0aF9hZGQpOwotICAgICAgICBzbG93UGF0aENhbGwuY2FsbCgp
OworICAgICAgICBpZiAocmVzdWx0UHJvZmlsZSkgeworICAgICAgICAgICAgaWYgKGxlZnRPcGVy
YW5kLmlzQ29uc3QoKSkKKyAgICAgICAgICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKG9w
MSwgbGVmdFJlZ3MpOworICAgICAgICAgICAgaWYgKHJpZ2h0T3BlcmFuZC5pc0NvbnN0KCkpCisg
ICAgICAgICAgICAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihvcDIsIHJpZ2h0UmVncyk7Cisg
ICAgICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblZhbHVlQWRkUHJvZmlsZWQsIHJlc3Vs
dFJlZ3MsIGxlZnRSZWdzLCByaWdodFJlZ3MsIHJlc3VsdFByb2ZpbGUpOworICAgICAgICAgICAg
ZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihyZXN1bHQsIHJlc3VsdFJlZ3MpOworICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgSklUU2xvd1BhdGhDYWxsIHNsb3dQYXRoQ2FsbCh0aGlzLCBjdXJy
ZW50SW5zdHJ1Y3Rpb24sIHNsb3dfcGF0aF9hZGQpOworICAgICAgICAgICAgc2xvd1BhdGhDYWxs
LmNhbGwoKTsKKyAgICAgICAgfQogICAgIH0KIH0KIApAQCAtNzMzLDggKzc0Niw0MSBAQCB2b2lk
IEpJVDo6ZW1pdFNsb3dfb3BfYWRkKEluc3RydWN0aW9uKiBjCiB7CiAgICAgbGlua0FsbFNsb3dD
YXNlc0ZvckJ5dGVjb2RlT2Zmc2V0KG1fc2xvd0Nhc2VzLCBpdGVyLCBtX2J5dGVjb2RlT2Zmc2V0
KTsKIAotICAgIEpJVFNsb3dQYXRoQ2FsbCBzbG93UGF0aENhbGwodGhpcywgY3VycmVudEluc3Ry
dWN0aW9uLCBzbG93X3BhdGhfYWRkKTsKLSAgICBzbG93UGF0aENhbGwuY2FsbCgpOworICAgIGlu
dCByZXN1bHQgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOworICAgIGludCBvcDEg
PSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOworICAgIGludCBvcDIgPSBjdXJyZW50
SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOworICAgIE9wZXJhbmRUeXBlcyB0eXBlcyA9IE9wZXJh
bmRUeXBlczo6ZnJvbUludChjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kKTsKKworI2lm
IFVTRShKU1ZBTFVFNjQpCisgICAgSlNWYWx1ZVJlZ3MgbGVmdFJlZ3MgPSBKU1ZhbHVlUmVncyhy
ZWdUMCk7CisgICAgSlNWYWx1ZVJlZ3MgcmlnaHRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDEpOwor
ICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSBsZWZ0UmVnczsKKyNlbHNlCisgICAgSlNWYWx1
ZVJlZ3MgbGVmdFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMSwgcmVnVDApOworICAgIEpTVmFsdWVS
ZWdzIHJpZ2h0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QzLCByZWdUMik7CisgICAgSlNWYWx1ZVJl
Z3MgcmVzdWx0UmVncyA9IGxlZnRSZWdzOworI2VuZGlmCisgICAgCisgICAgU25pcHBldE9wZXJh
bmQgbGVmdE9wZXJhbmQodHlwZXMuZmlyc3QoKSk7CisgICAgU25pcHBldE9wZXJhbmQgcmlnaHRP
cGVyYW5kKHR5cGVzLnNlY29uZCgpKTsKKworICAgIGlmIChpc09wZXJhbmRDb25zdGFudEludChv
cDEpKQorICAgICAgICBsZWZ0T3BlcmFuZC5zZXRDb25zdEludDMyKGdldE9wZXJhbmRDb25zdGFu
dEludChvcDEpKTsKKyAgICBlbHNlIGlmIChpc09wZXJhbmRDb25zdGFudEludChvcDIpKQorICAg
ICAgICByaWdodE9wZXJhbmQuc2V0Q29uc3RJbnQzMihnZXRPcGVyYW5kQ29uc3RhbnRJbnQob3Ay
KSk7CisKKyAgICBpZiAoc2hvdWxkRW1pdFByb2ZpbGluZygpKSB7CisgICAgICAgIGlmIChsZWZ0
T3BlcmFuZC5pc0NvbnN0KCkpCisgICAgICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKG9w
MSwgbGVmdFJlZ3MpOworICAgICAgICBpZiAocmlnaHRPcGVyYW5kLmlzQ29uc3QoKSkKKyAgICAg
ICAgICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIob3AyLCByaWdodFJlZ3MpOworICAgICAgICBS
ZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlID0gbV9jb2RlQmxvY2stPmVuc3VyZVJlc3VsdFBy
b2ZpbGUobV9ieXRlY29kZU9mZnNldCk7CisgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9u
VmFsdWVBZGRQcm9maWxlZCwgcmVzdWx0UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVncywgcmVzdWx0
UHJvZmlsZSk7CisgICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIocmVzdWx0LCByZXN1bHRS
ZWdzKTsKKyAgICB9IGVsc2UgeworICAgICAgICBKSVRTbG93UGF0aENhbGwgc2xvd1BhdGhDYWxs
KHRoaXMsIGN1cnJlbnRJbnN0cnVjdGlvbiwgc2xvd19wYXRoX2FkZCk7CisgICAgICAgIHNsb3dQ
YXRoQ2FsbC5jYWxsKCk7CisgICAgfQogfQogCiB2b2lkIEpJVDo6ZW1pdF9vcF9kaXYoSW5zdHJ1
Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKQEAgLTg2NCw4ICs5MTAsMTcgQEAgdm9pZCBKSVQ6
OmVtaXRfb3BfbXVsKEluc3RydWN0aW9uKiBjdXJyZQogICAgIH0gZWxzZSB7CiAgICAgICAgIEFT
U0VSVChnZW4uZW5kSnVtcExpc3QoKS5lbXB0eSgpKTsKICAgICAgICAgQVNTRVJUKGdlbi5zbG93
UGF0aEp1bXBMaXN0KCkuZW1wdHkoKSk7Ci0gICAgICAgIEpJVFNsb3dQYXRoQ2FsbCBzbG93UGF0
aENhbGwodGhpcywgY3VycmVudEluc3RydWN0aW9uLCBzbG93X3BhdGhfbXVsKTsKLSAgICAgICAg
c2xvd1BhdGhDYWxsLmNhbGwoKTsKKyAgICAgICAgaWYgKHJlc3VsdFByb2ZpbGUpIHsKKyAgICAg
ICAgICAgIGlmIChsZWZ0T3BlcmFuZC5pc1Bvc2l0aXZlQ29uc3RJbnQzMigpKQorICAgICAgICAg
ICAgICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIob3AxLCBsZWZ0UmVncyk7CisgICAgICAgICAg
ICBpZiAocmlnaHRPcGVyYW5kLmlzUG9zaXRpdmVDb25zdEludDMyKCkpCisgICAgICAgICAgICAg
ICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihvcDIsIHJpZ2h0UmVncyk7CisgICAgICAgICAgICBj
YWxsT3BlcmF0aW9uKG9wZXJhdGlvblZhbHVlTXVsUHJvZmlsZWQsIHJlc3VsdFJlZ3MsIGxlZnRS
ZWdzLCByaWdodFJlZ3MsIHJlc3VsdFByb2ZpbGUpOworICAgICAgICAgICAgZW1pdFB1dFZpcnR1
YWxSZWdpc3RlcihyZXN1bHQsIHJlc3VsdFJlZ3MpOworICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgSklUU2xvd1BhdGhDYWxsIHNsb3dQYXRoQ2FsbCh0aGlzLCBjdXJyZW50SW5zdHJ1Y3Rp
b24sIHNsb3dfcGF0aF9tdWwpOworICAgICAgICAgICAgc2xvd1BhdGhDYWxsLmNhbGwoKTsKKyAg
ICAgICAgfQogICAgIH0KIH0KIApAQCAtODczLDggKzkyOCw0MSBAQCB2b2lkIEpJVDo6ZW1pdFNs
b3dfb3BfbXVsKEluc3RydWN0aW9uKiBjCiB7CiAgICAgbGlua0FsbFNsb3dDYXNlc0ZvckJ5dGVj
b2RlT2Zmc2V0KG1fc2xvd0Nhc2VzLCBpdGVyLCBtX2J5dGVjb2RlT2Zmc2V0KTsKICAgICAKLSAg
ICBKSVRTbG93UGF0aENhbGwgc2xvd1BhdGhDYWxsKHRoaXMsIGN1cnJlbnRJbnN0cnVjdGlvbiwg
c2xvd19wYXRoX211bCk7Ci0gICAgc2xvd1BhdGhDYWxsLmNhbGwoKTsKKyAgICBpbnQgcmVzdWx0
ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKKyAgICBpbnQgb3AxID0gY3VycmVu
dEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKKyAgICBpbnQgb3AyID0gY3VycmVudEluc3RydWN0
aW9uWzNdLnUub3BlcmFuZDsKKyAgICBPcGVyYW5kVHlwZXMgdHlwZXMgPSBPcGVyYW5kVHlwZXM6
OmZyb21JbnQoY3VycmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZCk7CisKKyNpZiBVU0UoSlNW
QUxVRTY0KQorICAgIEpTVmFsdWVSZWdzIGxlZnRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDApOwor
ICAgIEpTVmFsdWVSZWdzIHJpZ2h0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QxKTsKKyAgICBKU1Zh
bHVlUmVncyByZXN1bHRSZWdzID0gbGVmdFJlZ3M7CisjZWxzZQorICAgIEpTVmFsdWVSZWdzIGxl
ZnRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKTsKKyAgICBKU1ZhbHVlUmVncyByaWdo
dFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMywgcmVnVDIpOworICAgIEpTVmFsdWVSZWdzIHJlc3Vs
dFJlZ3MgPSBsZWZ0UmVnczsKKyNlbmRpZgorCisgICAgU25pcHBldE9wZXJhbmQgbGVmdE9wZXJh
bmQodHlwZXMuZmlyc3QoKSk7CisgICAgU25pcHBldE9wZXJhbmQgcmlnaHRPcGVyYW5kKHR5cGVz
LnNlY29uZCgpKTsKKworICAgIGlmIChpc09wZXJhbmRDb25zdGFudEludChvcDEpKQorICAgICAg
ICBsZWZ0T3BlcmFuZC5zZXRDb25zdEludDMyKGdldE9wZXJhbmRDb25zdGFudEludChvcDEpKTsK
KyAgICBlbHNlIGlmIChpc09wZXJhbmRDb25zdGFudEludChvcDIpKQorICAgICAgICByaWdodE9w
ZXJhbmQuc2V0Q29uc3RJbnQzMihnZXRPcGVyYW5kQ29uc3RhbnRJbnQob3AyKSk7CisKKyAgICBp
ZiAoc2hvdWxkRW1pdFByb2ZpbGluZygpKSB7CisgICAgICAgIGlmIChsZWZ0T3BlcmFuZC5pc1Bv
c2l0aXZlQ29uc3RJbnQzMigpKQorICAgICAgICAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rlcihv
cDEsIGxlZnRSZWdzKTsKKyAgICAgICAgaWYgKHJpZ2h0T3BlcmFuZC5pc1Bvc2l0aXZlQ29uc3RJ
bnQzMigpKQorICAgICAgICAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihvcDIsIHJpZ2h0UmVn
cyk7CisgICAgICAgIFJlc3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUgPSBtX2NvZGVCbG9jay0+
ZW5zdXJlUmVzdWx0UHJvZmlsZShtX2J5dGVjb2RlT2Zmc2V0KTsKKyAgICAgICAgY2FsbE9wZXJh
dGlvbihvcGVyYXRpb25WYWx1ZU11bFByb2ZpbGVkLCByZXN1bHRSZWdzLCBsZWZ0UmVncywgcmln
aHRSZWdzLCByZXN1bHRQcm9maWxlKTsKKyAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3Rlcihy
ZXN1bHQsIHJlc3VsdFJlZ3MpOworICAgIH0gZWxzZSB7CisgICAgICAgIEpJVFNsb3dQYXRoQ2Fs
bCBzbG93UGF0aENhbGwodGhpcywgY3VycmVudEluc3RydWN0aW9uLCBzbG93X3BhdGhfbXVsKTsK
KyAgICAgICAgc2xvd1BhdGhDYWxsLmNhbGwoKTsKKyAgICB9CiB9CiAKIHZvaWQgSklUOjplbWl0
X29wX3N1YihJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQpAQCAtODk4LDYgKzk4Niwx
MCBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9zdWIoSW5zdHJ1Y3Rpb24qIGN1cnJlCiAgICAgRlBSUmVn
IHNjcmF0Y2hGUFIgPSBmcFJlZ1QyOwogI2VuZGlmCiAKKyAgICBSZXN1bHRQcm9maWxlKiByZXN1
bHRQcm9maWxlID0gbnVsbHB0cjsKKyAgICBpZiAoc2hvdWxkRW1pdFByb2ZpbGluZygpKQorICAg
ICAgICByZXN1bHRQcm9maWxlID0gbV9jb2RlQmxvY2stPmVuc3VyZVJlc3VsdFByb2ZpbGUobV9i
eXRlY29kZU9mZnNldCk7CisKICAgICBTbmlwcGV0T3BlcmFuZCBsZWZ0T3BlcmFuZCh0eXBlcy5m
aXJzdCgpKTsKICAgICBTbmlwcGV0T3BlcmFuZCByaWdodE9wZXJhbmQodHlwZXMuc2Vjb25kKCkp
OwogICAgIApAQCAtOTIwLDggKzEwMTIsMjUgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX3N1YihJ
bnN0cnVjdGlvbiogYwogewogICAgIGxpbmtBbGxTbG93Q2FzZXNGb3JCeXRlY29kZU9mZnNldCht
X3Nsb3dDYXNlcywgaXRlciwgbV9ieXRlY29kZU9mZnNldCk7CiAKLSAgICBKSVRTbG93UGF0aENh
bGwgc2xvd1BhdGhDYWxsKHRoaXMsIGN1cnJlbnRJbnN0cnVjdGlvbiwgc2xvd19wYXRoX3N1Yik7
Ci0gICAgc2xvd1BhdGhDYWxsLmNhbGwoKTsKKyAgICBpbnQgcmVzdWx0ID0gY3VycmVudEluc3Ry
dWN0aW9uWzFdLnUub3BlcmFuZDsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgIEpTVmFsdWVSZWdz
IGxlZnRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDApOworICAgIEpTVmFsdWVSZWdzIHJpZ2h0UmVn
cyA9IEpTVmFsdWVSZWdzKHJlZ1QxKTsKKyAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0gbGVm
dFJlZ3M7CisjZWxzZQorICAgIEpTVmFsdWVSZWdzIGxlZnRSZWdzID0gSlNWYWx1ZVJlZ3MocmVn
VDEsIHJlZ1QwKTsKKyAgICBKU1ZhbHVlUmVncyByaWdodFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdU
MywgcmVnVDIpOworICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSBsZWZ0UmVnczsKKyNlbmRp
ZgorCisgICAgaWYgKHNob3VsZEVtaXRQcm9maWxpbmcoKSkgeworICAgICAgICBSZXN1bHRQcm9m
aWxlKiByZXN1bHRQcm9maWxlID0gbV9jb2RlQmxvY2stPmVuc3VyZVJlc3VsdFByb2ZpbGUobV9i
eXRlY29kZU9mZnNldCk7CisgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uVmFsdWVTdWJQ
cm9maWxlZCwgcmVzdWx0UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVncywgcmVzdWx0UHJvZmlsZSk7
CisgICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIocmVzdWx0LCByZXN1bHRSZWdzKTsKKyAg
ICB9IGVsc2UgeworICAgICAgICBKSVRTbG93UGF0aENhbGwgc2xvd1BhdGhDYWxsKHRoaXMsIGN1
cnJlbnRJbnN0cnVjdGlvbiwgc2xvd19wYXRoX3N1Yik7CisgICAgICAgIHNsb3dQYXRoQ2FsbC5j
YWxsKCk7CisgICAgfQogfQogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRU5E
OiBPUF9BREQsIE9QX1NVQiwgT1BfTVVMIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAq
LwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgJKHJldmlzaW9uIDIw
MDUxNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCSh3b3JraW5n
IGNvcHkpCkBAIC01MDEsNiArNTAxLDE0IEBAIEFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6
OkNhbGwgSklUOjoKICAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVja1NldEpT
VmFsdWVSZXN1bHQob3BlcmF0aW9uLCBkc3QpOwogfQogCitpbmxpbmUgTWFjcm9Bc3NlbWJsZXI6
OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSlJwIG9wZXJhdGlvbiwg
SlNWYWx1ZVJlZ3MgcmVzdWx0LCBKU1ZhbHVlUmVncyBhcmcxLCBKU1ZhbHVlUmVncyBhcmcyLCBS
ZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlKQoreworICAgIHNldHVwQXJndW1lbnRzV2l0aEV4
ZWNTdGF0ZShhcmcxLCBhcmcyLCBUcnVzdGVkSW1tUHRyKHJlc3VsdFByb2ZpbGUpKTsKKyAgICBD
YWxsIGNhbGwgPSBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7CisgICAg
c2V0dXBSZXN1bHRzKHJlc3VsdCk7CisgICAgcmV0dXJuIGNhbGw7Cit9CisKIEFMV0FZU19JTkxJ
TkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9u
X0VKSkFwIG9wZXJhdGlvbiwgaW50IGRzdCwgR1BSUmVnIGFyZzEsIEdQUlJlZyBhcmcyLCBBcnJh
eVByb2ZpbGUqIGFycmF5UHJvZmlsZSkKIHsKICAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3Rh
dGUoYXJnMSwgYXJnMiwgVHJ1c3RlZEltbVB0cihhcnJheVByb2ZpbGUpKTsKQEAgLTYwMiwyMyAr
NjEwLDYgQEAgQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OgogCiAjZWxz
ZSAvLyBVU0UoSlNWQUxVRTMyXzY0KQogCi0vLyBFbmNvZGVkSlNWYWx1ZSBpbiBKU1ZBTFVFMzJf
NjQgaXMgYSA2NC1iaXQgaW50ZWdlci4gV2hlbiBiZWluZyBjb21waWxlZCBpbiBBUk0gRUFCSSwg
aXQgbXVzdCBiZSBhbGlnbmVkIGV2ZW4tbnVtYmVyZWQgcmVnaXN0ZXIgKHIwLCByMiBvciBbc3Bd
KS4KLS8vIFRvIGF2b2lkIGFzc2VtYmxpZXMgZnJvbSB1c2luZyB3cm9uZyByZWdpc3RlcnMsIGxl
dCdzIG9jY3VweSByMSBvciByMyB3aXRoIGEgZHVtbXkgYXJndW1lbnQgd2hlbiBuZWNlc3Nhcnku
Ci0jaWYgKENPTVBJTEVSX1NVUFBPUlRTKEVBQkkpICYmIENQVShBUk0pKSB8fCBDUFUoTUlQUykK
LSNkZWZpbmUgRUFCSV8zMkJJVF9EVU1NWV9BUkcgICAgICBUcnVzdGVkSW1tMzIoMCksCi0jZWxz
ZQotI2RlZmluZSBFQUJJXzMyQklUX0RVTU1ZX0FSRwotI2VuZGlmCi0KLS8vIEpTVkFMVUUzMl82
NCBpcyBhIDY0LWJpdCBpbnRlZ2VyIHRoYXQgY2Fubm90IGJlIHB1dCBoYWxmIGluIGFuIGFyZ3Vt
ZW50IHJlZ2lzdGVyIGFuZCBoYWxmIG9uIHN0YWNrIHdoZW4gdXNpbmcgU0g0IGFyY2hpdGVjdHVy
ZS4KLS8vIFRvIGF2b2lkIHRoaXMsIGxldCdzIG9jY3VweSB0aGUgNHRoIGFyZ3VtZW50IHJlZ2lz
dGVyIChyNykgd2l0aCBhIGR1bW15IGFyZ3VtZW50IHdoZW4gbmVjZXNzYXJ5LiBUaGlzIG11c3Qg
b25seSBiZSBkb25lIHdoZW4gdGhlcmUKLS8vIGlzIG5vIG90aGVyIDMyLWJpdCB2YWx1ZSBhcmd1
bWVudCBiZWhpbmQgdGhpcyA2NC1iaXQgSlNWYWx1ZS4KLSNpZiBDUFUoU0g0KQotI2RlZmluZSBT
SDRfMzJCSVRfRFVNTVlfQVJHICAgICAgVHJ1c3RlZEltbTMyKDApLAotI2Vsc2UKLSNkZWZpbmUg
U0g0XzMyQklUX0RVTU1ZX0FSRwotI2VuZGlmCi0KIEFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJs
ZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uTm9FeGNlcHRpb25DaGVjayhWX0pJVE9wZXJhdGlv
bl9FSiBvcGVyYXRpb24sIEdQUlJlZyBhcmcxVGFnLCBHUFJSZWcgYXJnMVBheWxvYWQpCiB7CiAg
ICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEVBQklfMzJCSVRfRFVNTVlfQVJHIGFyZzFQ
YXlsb2FkLCBhcmcxVGFnKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUTXVs
R2VuZXJhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VE11bEdlbmVyYXRvci5jcHAJKHJldmlzaW9uIDIwMDUxNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUTXVsR2VuZXJhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xNTMsNiArMTUzLDcg
QEAgdm9pZCBKSVRNdWxHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoQwogICAgICAgICBDQ2Fs
bEhlbHBlcnM6Okp1bXAgZG9uZSA9IGppdC5qdW1wKCk7CiAKICAgICAgICAgbm90TmVnYXRpdmVa
ZXJvLmxpbmsoJmppdCk7CisgICAgICAgIGppdC5vcjMyKENDYWxsSGVscGVyczo6VHJ1c3RlZElt
bTMyKFJlc3VsdFByb2ZpbGU6Ok5vbk5lZ1plcm9Eb3VibGUpLCBDQ2FsbEhlbHBlcnM6OkFic29s
dXRlQWRkcmVzcyhtX3Jlc3VsdFByb2ZpbGUtPmFkZHJlc3NPZkZsYWdzKCkpKTsKIAogICAgICAg
ICBqaXQubW92ZShtX3Jlc3VsdC5wYXlsb2FkR1BSKCksIG1fc2NyYXRjaEdQUik7CiAgICAgICAg
IGppdC51cnNoaWZ0UHRyKENDYWxsSGVscGVyczo6SW1tMzIoNTIpLCBtX3NjcmF0Y2hHUFIpOwpA
QCAtMTc0LDYgKzE3NSw3IEBAIHZvaWQgSklUTXVsR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRo
KEMKICAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIGRvbmUgPSBqaXQuanVtcCgpOwogCiAgICAg
ICAgIG5vdE5lZ2F0aXZlWmVyby5saW5rKCZqaXQpOworICAgICAgICBqaXQub3IzMihDQ2FsbEhl
bHBlcnM6OlRydXN0ZWRJbW0zMihSZXN1bHRQcm9maWxlOjpOb25OZWdaZXJvRG91YmxlKSwgQ0Nh
bGxIZWxwZXJzOjpBYnNvbHV0ZUFkZHJlc3MobV9yZXN1bHRQcm9maWxlLT5hZGRyZXNzT2ZGbGFn
cygpKSk7CiAKICAgICAgICAgaml0Lm1vdmUobV9yZXN1bHQudGFnR1BSKCksIG1fc2NyYXRjaEdQ
Uik7CiAgICAgICAgIGppdC51cnNoaWZ0UHRyKENDYWxsSGVscGVyczo6SW1tMzIoNTIgLSAzMiks
IG1fc2NyYXRjaEdQUik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJh
dGlvbnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bl
cmF0aW9ucy5jcHAJKHJldmlzaW9uIDIwMDUxNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUT3BlcmF0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyNDMsNiArMjI0Myw4OCBA
QCBKU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVG9JbmRleFN0CiAgICAgcmV0dXJuIGpz
U3RyaW5nKGV4ZWMsIElkZW50aWZpZXI6OmZyb20oZXhlYywgaW5kZXgpLnN0cmluZygpKTsKIH0K
IAorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZUFkZChFeGVjU3Rh
dGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRPcDIpCit7CisgICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7CisgICAgTmF0aXZlQ2FsbEZyYW1l
VHJhY2VyIHRyYWNlcih2bSwgZXhlYyk7CisgICAgCisgICAgSlNWYWx1ZSBvcDEgPSBKU1ZhbHVl
OjpkZWNvZGUoZW5jb2RlZE9wMSk7CisgICAgSlNWYWx1ZSBvcDIgPSBKU1ZhbHVlOjpkZWNvZGUo
ZW5jb2RlZE9wMik7CisgICAgCisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0FkZChleGVj
LCBvcDEsIG9wMikpOworfQorCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
blZhbHVlQWRkUHJvZmlsZWQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
T3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9m
aWxlKQoreworICAgIFZNKiB2bSA9ICZleGVjLT52bSgpOworICAgIE5hdGl2ZUNhbGxGcmFtZVRy
YWNlciB0cmFjZXIodm0sIGV4ZWMpOworICAgIAorICAgIEpTVmFsdWUgb3AxID0gSlNWYWx1ZTo6
ZGVjb2RlKGVuY29kZWRPcDEpOworICAgIEpTVmFsdWUgb3AyID0gSlNWYWx1ZTo6ZGVjb2RlKGVu
Y29kZWRPcDIpOworICAgIAorICAgIEpTVmFsdWUgcmVzdWx0ID0ganNBZGQoZXhlYywgb3AxLCBv
cDIpOworICAgIHJlc3VsdFByb2ZpbGUtPmRldGVjdEJpdHNMaWdodChyZXN1bHQpOworICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKK30KKworRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25WYWx1ZU11bChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpCit7CisgICAgVk0qIHZtID0g
JmV4ZWMtPnZtKCk7CisgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgZXhlYyk7
CisKKyAgICBKU1ZhbHVlIG9wMSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AxKTsKKyAgICBK
U1ZhbHVlIG9wMiA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AyKTsKKworICAgIGRvdWJsZSBh
ID0gb3AxLnRvTnVtYmVyKGV4ZWMpOworICAgIGRvdWJsZSBiID0gb3AyLnRvTnVtYmVyKGV4ZWMp
OworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoYSAqIGIpKTsKK30KKworRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZU11bFByb2ZpbGVkKEV4ZWNT
dGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZE9wMiwgUmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSkKK3sKKyAgICBWTSogdm0gPSAm
ZXhlYy0+dm0oKTsKKyAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBleGVjKTsK
KworICAgIEpTVmFsdWUgb3AxID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDEpOworICAgIEpT
VmFsdWUgb3AyID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDIpOworCisgICAgZG91YmxlIGEg
PSBvcDEudG9OdW1iZXIoZXhlYyk7CisgICAgZG91YmxlIGIgPSBvcDIudG9OdW1iZXIoZXhlYyk7
CisgICAgCisgICAgSlNWYWx1ZSByZXN1bHQgPSBqc051bWJlcihhICogYik7CisgICAgcmVzdWx0
UHJvZmlsZS0+ZGV0ZWN0Qml0c0xpZ2h0KHJlc3VsdCk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShyZXN1bHQpOworfQorCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
blZhbHVlU3ViKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZE9wMikKK3sKKyAgICBWTSogdm0gPSAmZXhlYy0+dm0oKTsKKyAg
ICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBleGVjKTsKKyAgICAKKyAgICBKU1Zh
bHVlIG9wMSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AxKTsKKyAgICBKU1ZhbHVlIG9wMiA9
IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AyKTsKKworICAgIGRvdWJsZSBhID0gb3AxLnRvTnVt
YmVyKGV4ZWMpOworICAgIGRvdWJsZSBiID0gb3AyLnRvTnVtYmVyKGV4ZWMpOworICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoYSAtIGIpKTsKK30KKworRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZVN1YlByb2ZpbGVkKEV4ZWNTdGF0ZSogZXhlYywg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgUmVz
dWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSkKK3sKKyAgICBWTSogdm0gPSAmZXhlYy0+dm0oKTsK
KyAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBleGVjKTsKKyAgICAKKyAgICBK
U1ZhbHVlIG9wMSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AxKTsKKyAgICBKU1ZhbHVlIG9w
MiA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AyKTsKKworICAgIGRvdWJsZSBhID0gb3AxLnRv
TnVtYmVyKGV4ZWMpOworICAgIGRvdWJsZSBiID0gb3AyLnRvTnVtYmVyKGV4ZWMpOworICAgIAor
ICAgIEpTVmFsdWUgcmVzdWx0ID0ganNOdW1iZXIoYSAtIGIpOworICAgIHJlc3VsdFByb2ZpbGUt
PmRldGVjdEJpdHNMaWdodChyZXN1bHQpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVz
dWx0KTsKK30KKwogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblByb2Nlc3NUeXBlUHJvZmls
ZXJMb2coRXhlY1N0YXRlKiBleGVjKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaAkocmV2aXNpb24gMjAw
NTE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmgJKHdvcmtp
bmcgY29weSkKQEAgLTUzLDYgKzUzLDcgQEAgY2xhc3MgV2F0Y2hwb2ludFNldDsKIAogc3RydWN0
IEJ5VmFsSW5mbzsKIHN0cnVjdCBJbmxpbmVDYWxsRnJhbWU7CitzdHJ1Y3QgUmVzdWx0UHJvZmls
ZTsKIAogdHlwZWRlZiBFeGVjU3RhdGUgQ2FsbEZyYW1lOwogCkBAIC05Niw2ICs5Nyw3IEBAIHR5
cGVkZWYgY2hhciogVW51c2VkUHRyOwogICAgIFE6IGludDY0X3QKICAgICBSOiBSZWdpc3Rlcgog
ICAgIFJlbzogUmVnRXhwT2JqZWN0KgorICAgIFJwOiBSZXN1bHRQcm9maWxlKgogICAgIFM6IHNp
emVfdAogICAgIFNwcnQ6IFNsb3dQYXRoUmV0dXJuVHlwZQogICAgIFNzaTogU3RydWN0dXJlU3R1
YkluZm8qCkBAIC0xMzYsNiArMTM4LDcgQEAgdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OICgqSgogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRP
cGVyYXRpb25fRUpKQXApKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSwgQXJyYXlQcm9maWxlKik7CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
KCpKX0pJVE9wZXJhdGlvbl9FSkpCeSkoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlLCBCeVZhbEluZm8qKTsKIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiAoKkpfSklUT3BlcmF0aW9uX0VKSkopKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpOwordHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25fRUpKUnApKEV4ZWNTdGF0ZSosIEVuY29kZWRK
U1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgUmVzdWx0UHJvZmlsZSopOwogdHlwZWRlZiBFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25fRUpzc1opKEV4ZWNTdGF0ZSos
IEpTU3RyaW5nKiwgaW50MzJfdCk7CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04gKCpKX0pJVE9wZXJhdGlvbl9FSnNzUmVvKShFeGVjU3RhdGUqLCBKU1N0cmluZyosIFJlZ0V4
cE9iamVjdCopOwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRP
cGVyYXRpb25fRUpzc1Jlb0pzcykoRXhlY1N0YXRlKiwgSlNTdHJpbmcqLCBSZWdFeHBPYmplY3Qq
LCBKU1N0cmluZyopOwpAQCAtNDA2LDYgKzQwOSwxMyBAQCBKU0NlbGwqIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uR2V0UHJvcGVyCiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bk5leHRFbnVtZXJhdG9yUG5hbWUoRXhlY1N0YXRlKiwgSlNDZWxsKiwgaW50MzJfdCk7CiBKU0Nl
bGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVG9JbmRleFN0cmluZyhFeGVjU3RhdGUqLCBpbnQz
Ml90KTsKIAorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZUFkZChF
eGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkT3AyKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblZhbHVlQWRkUHJvZmlsZWQoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9w
MSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgUmVzdWx0UHJvZmlsZSopIFdURl9JTlRFUk5B
TDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVNdWwoRXhlY1N0
YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9w
MikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25W
YWx1ZU11bFByb2ZpbGVkKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIFJlc3VsdFByb2ZpbGUqKSBXVEZfSU5URVJOQUw7CitF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlU3ViKEV4ZWNTdGF0ZSos
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpIFdU
Rl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVT
dWJQcm9maWxlZChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkT3AyLCBSZXN1bHRQcm9maWxlKikgV1RGX0lOVEVSTkFMOworCiB2b2lk
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHJvY2Vzc1R5cGVQcm9maWxlckxvZyhFeGVjU3RhdGUq
KSBXVEZfSU5URVJOQUw7CiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHJvY2Vzc1NoYWRv
d0NoaWNrZW5Mb2coRXhlY1N0YXRlKikgV1RGX0lOVEVSTkFMOwogCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVFN1YkdlbmVyYXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdWJHZW5lcmF0b3IuY3BwCShyZXZpc2lvbiAyMDA1MTcp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN1YkdlbmVyYXRvci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTgzLDYgKzgzLDkgQEAgdm9pZCBKSVRTdWJHZW5lcmF0b3I6OmdlbmVyYXRl
RmFzdFBhdGgoQwogICAgIHJpZ2h0V2FzSW50ZWdlci5saW5rKCZqaXQpOwogCiAgICAgaml0LnN1
YkRvdWJsZShtX3JpZ2h0RlBSLCBtX2xlZnRGUFIpOworICAgIGlmIChtX3Jlc3VsdFByb2ZpbGUp
CisgICAgICAgIG1fcmVzdWx0UHJvZmlsZS0+ZW1pdFNldERvdWJsZShqaXQpOworCiAgICAgaml0
LmJveERvdWJsZShtX2xlZnRGUFIsIG1fcmVzdWx0KTsKIH0KIApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRTdWJHZW5lcmF0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVFN1YkdlbmVyYXRvci5oCShyZXZpc2lvbiAyMDA1MTcpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN1YkdlbmVyYXRvci5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zNyw3ICszNyw4IEBAIGNsYXNzIEpJVFN1YkdlbmVyYXRvciB7CiBwdWJsaWM6CiAgICAg
SklUU3ViR2VuZXJhdG9yKFNuaXBwZXRPcGVyYW5kIGxlZnRPcGVyYW5kLCBTbmlwcGV0T3BlcmFu
ZCByaWdodE9wZXJhbmQsCiAgICAgICAgIEpTVmFsdWVSZWdzIHJlc3VsdCwgSlNWYWx1ZVJlZ3Mg
bGVmdCwgSlNWYWx1ZVJlZ3MgcmlnaHQsCi0gICAgICAgIEZQUlJlZyBsZWZ0RlBSLCBGUFJSZWcg
cmlnaHRGUFIsIEdQUlJlZyBzY3JhdGNoR1BSLCBGUFJSZWcgc2NyYXRjaEZQUikKKyAgICAgICAg
RlBSUmVnIGxlZnRGUFIsIEZQUlJlZyByaWdodEZQUiwgR1BSUmVnIHNjcmF0Y2hHUFIsIEZQUlJl
ZyBzY3JhdGNoRlBSLAorICAgICAgICBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlID0gbnVs
bHB0cikKICAgICAgICAgOiBtX2xlZnRPcGVyYW5kKGxlZnRPcGVyYW5kKQogICAgICAgICAsIG1f
cmlnaHRPcGVyYW5kKHJpZ2h0T3BlcmFuZCkKICAgICAgICAgLCBtX3Jlc3VsdChyZXN1bHQpCkBA
IC00Nyw2ICs0OCw3IEBAIHB1YmxpYzoKICAgICAgICAgLCBtX3JpZ2h0RlBSKHJpZ2h0RlBSKQog
ICAgICAgICAsIG1fc2NyYXRjaEdQUihzY3JhdGNoR1BSKQogICAgICAgICAsIG1fc2NyYXRjaEZQ
UihzY3JhdGNoRlBSKQorICAgICAgICAsIG1fcmVzdWx0UHJvZmlsZShyZXN1bHRQcm9maWxlKQog
ICAgIHsgfQogCiAgICAgdm9pZCBnZW5lcmF0ZUZhc3RQYXRoKENDYWxsSGVscGVycyYpOwpAQCAt
NjUsNiArNjcsNyBAQCBwcml2YXRlOgogICAgIEZQUlJlZyBtX3JpZ2h0RlBSOwogICAgIEdQUlJl
ZyBtX3NjcmF0Y2hHUFI7CiAgICAgRlBSUmVnIG1fc2NyYXRjaEZQUjsKKyAgICBSZXN1bHRQcm9m
aWxlKiBtX3Jlc3VsdFByb2ZpbGU7CiAgICAgYm9vbCBtX2RpZEVtaXRGYXN0UGF0aCB7IGZhbHNl
IH07CiAKICAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IG1fZW5kSnVtcExpc3Q7CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RhZ1JlZ2lzdGVyc01vZGUuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGFnUmVnaXN0ZXJzTW9kZS5jcHAJKHJldmlz
aW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RhZ1JlZ2lzdGVyc01vZGUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlRh
Z1JlZ2lzdGVyc01vZGUuaCIKKworI2luY2x1ZGUgPHd0Zi9QcmludFN0cmVhbS5oPgorCituYW1l
c3BhY2UgV1RGIHsKKwordXNpbmcgbmFtZXNwYWNlIEpTQzsKKwordm9pZCBwcmludEludGVybmFs
KFByaW50U3RyZWFtJiBvdXQsIFRhZ1JlZ2lzdGVyc01vZGUgbW9kZSkKK3sKKyAgICBzd2l0Y2gg
KG1vZGUpIHsKKyAgICBjYXNlIERvTm90SGF2ZVRhZ1JlZ2lzdGVyczoKKyAgICAgICAgb3V0LnBy
aW50KCJEb05vdEhhdmVUYWdSZWdpc3RlcnMiKTsKKyAgICAgICAgcmV0dXJuOworICAgIGNhc2Ug
SGF2ZVRhZ1JlZ2lzdGVyczoKKyAgICAgICAgb3V0LnByaW50KCJIYXZlVGFnUmVnaXN0ZXJzIik7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgCisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JF
QUNIRUQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV1RGCisKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvVGFnUmVnaXN0ZXJzTW9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvVGFnUmVnaXN0ZXJzTW9kZS5oCShyZXZpc2lvbiAwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9UYWdSZWdpc3RlcnNNb2RlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAq
LworCisjaWZuZGVmIFRhZ1JlZ2lzdGVyc01vZGVfaAorI2RlZmluZSBUYWdSZWdpc3RlcnNNb2Rl
X2gKKworbmFtZXNwYWNlIEpTQyB7CisKK2VudW0gVGFnUmVnaXN0ZXJzTW9kZSB7CisgICAgRG9O
b3RIYXZlVGFnUmVnaXN0ZXJzLAorICAgIEhhdmVUYWdSZWdpc3RlcnMKK307CisKK30gLy8gbmFt
ZXNwYWNlIEpTQworCituYW1lc3BhY2UgV1RGIHsKKworY2xhc3MgUHJpbnRTdHJlYW07Cit2b2lk
IHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mLCBKU0M6OlRhZ1JlZ2lzdGVyc01vZGUpOworCit9
IC8vIG5hbWVzcGFjZSBXVEYKKworI2VuZGlmIC8vIFRhZ1JlZ2lzdGVyc01vZGVfaAorCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5j
cHAJKHJldmlzaW9uIDIwMDUxNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Nv
bW1vblNsb3dQYXRocy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3OCw2ICszNzgsOCBAQCBzdGF0
aWMgdm9pZCB1cGRhdGVSZXN1bHRQcm9maWxlRm9yQmluYXJ5CiAgICAgICAgICAgICBpZiAoIWRv
dWJsZVZhbCAmJiBzdGQ6OnNpZ25iaXQoZG91YmxlVmFsKSkKICAgICAgICAgICAgICAgICBwcm9m
aWxlLT5zZXRPYnNlcnZlZE5lZ1plcm9Eb3VibGUoKTsKICAgICAgICAgICAgIGVsc2UgeworICAg
ICAgICAgICAgICAgIHByb2ZpbGUtPnNldE9ic2VydmVkTm9uTmVnWmVyb0RvdWJsZSgpOworCiAg
ICAgICAgICAgICAgICAgLy8gVGhlIEludDUyIG92ZXJmbG93IGNoZWNrIGhlcmUgaW50ZW50aW9u
YWxseSBvbWl0cyAxbGwgPDwgNTEgYXMgYSB2YWxpZCBuZWdhdGl2ZSBJbnQ1MiB2YWx1ZS4KICAg
ICAgICAgICAgICAgICAvLyBUaGVyZWZvcmUsIHdlIHdpbGwgZ2V0IGEgZmFsc2UgcG9zaXRpdmUg
aWYgdGhlIHJlc3VsdCBpcyB0aGF0IHZhbHVlLiBUaGlzIGlzIGludGVudGlvbmFsbHkKICAgICAg
ICAgICAgICAgICAvLyBkb25lIHRvIHNpbXBsaWZ5IHRoZSBjaGVja2luZyBhbGdvcml0aG0uCklu
ZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyMDA1ODEpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSwzMSBAQAorMjAxNi0wNS0wOSAgRmlsaXAgUGl6bG8gIDxmcGl6
bG9AYXBwbGUuY29tPgorCisgICAgICAgIFBvbHltb3JwaGljIG9wZXJhbmRzIGluIG9wZXJhdG9y
cyBjb2VyY2VzIGRvd25zdHJlYW0gdmFsdWVzIHRvIGRvdWJsZS4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTc5MworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICoganMvcmVncmVzcy9vYmplY3QtaW50LWFk
ZC1hcnJheS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3Mvb2JqZWN0
LWludC1hZGQtYXJyYXkuaHRtbDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9vYmplY3Qt
aW50LWFkZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3Mvb2JqZWN0
LWludC1hZGQuaHRtbDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9vYmplY3QtaW50LW11
bC1hcnJheS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3Mvb2JqZWN0
LWludC1tdWwtYXJyYXkuaHRtbDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9vYmplY3Qt
aW50LXN1Yi1hcnJheS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3Mv
b2JqZWN0LWludC1zdWItYXJyYXkuaHRtbDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9v
YmplY3QtaW50LXN1Yi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3Mv
b2JqZWN0LWludC1zdWIuaHRtbDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQt
dGVzdHMvb2JqZWN0LWludC1hZGQtYXJyYXkuanM6IEFkZGVkLgorICAgICAgICAoaS5vLnZhbHVl
T2YpOgorICAgICAgICAqIGpzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL29iamVjdC1pbnQtYWRkLmpz
OiBBZGRlZC4KKyAgICAgICAgKGkuby52YWx1ZU9mKToKKyAgICAgICAgKiBqcy9yZWdyZXNzL3Nj
cmlwdC10ZXN0cy9vYmplY3QtaW50LW11bC1hcnJheS5qczogQWRkZWQuCisgICAgICAgIChpLm8u
dmFsdWVPZik6CisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvb2JqZWN0LWludC1z
dWItYXJyYXkuanM6IEFkZGVkLgorICAgICAgICAoaS5vLnZhbHVlT2YpOgorICAgICAgICAqIGpz
L3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL29iamVjdC1pbnQtc3ViLmpzOiBBZGRlZC4KKyAgICAgICAg
KGkuby52YWx1ZU9mKToKKwogMjAxNi0wNS0wOSAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0
Lm9yZz4KIAogICAgICAgICBGb2N1c2luZyBhIHNoYWRvdyBob3N0IHBsYWNlcyB0aGUgc2xvdCBj
b250ZW50IGFmdGVyIHRoZSBzaGFkb3cgRE9NIGNvbnRlbnQKSW5kZXg6IExheW91dFRlc3RzL2pz
L3JlZ3Jlc3Mvb2JqZWN0LWludC1hZGQtYXJyYXktZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvb2JqZWN0LWludC1hZGQtYXJyYXktZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9vYmplY3QtaW50LWFkZC1h
cnJheS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMCBAQAorSlNSZWdy
ZXNzL29iamVjdC1pbnQtYWRkLWFycmF5CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitQQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL29iamVj
dC1pbnQtYWRkLWFycmF5Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVz
cy9vYmplY3QtaW50LWFkZC1hcnJheS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
anMvcmVncmVzcy9vYmplY3QtaW50LWFkZC1hcnJheS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VO
Ij4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRl
c3RzL29iamVjdC1pbnQtYWRkLWFycmF5LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
SW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvb2JqZWN0LWludC1hZGQtZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvb2JqZWN0LWludC1hZGQtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9vYmplY3Qt
aW50LWFkZC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMCBAQAorSlNS
ZWdyZXNzL29iamVjdC1pbnQtYWRkCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQ
QVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL29iamVjdC1p
bnQtYWRkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9vYmplY3Qt
aW50LWFkZC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9vYmpl
Y3QtaW50LWFkZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQ
RSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL29iamVjdC1pbnQtYWRkLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jl
c3Mvb2JqZWN0LWludC1tdWwtYXJyYXktZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2pzL3JlZ3Jlc3Mvb2JqZWN0LWludC1tdWwtYXJyYXktZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9vYmplY3QtaW50LW11bC1hcnJheS1l
eHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMCBAQAorSlNSZWdyZXNzL29i
amVjdC1pbnQtbXVsLWFycmF5CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNT
IG5vIGV4Y2VwdGlvbiB0aHJvd24KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL29iamVjdC1pbnQt
bXVsLWFycmF5Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9vYmpl
Y3QtaW50LW11bC1hcnJheS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvanMvcmVn
cmVzcy9vYmplY3QtaW50LW11bC1hcnJheS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
MTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxo
dG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL29i
amVjdC1pbnQtbXVsLWFycmF5LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6
IExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvb2JqZWN0LWludC1zdWItYXJyYXktZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvb2JqZWN0LWludC1zdWItYXJy
YXktZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9v
YmplY3QtaW50LXN1Yi1hcnJheS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSwxMCBAQAorSlNSZWdyZXNzL29iamVjdC1pbnQtc3ViLWFycmF5CisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCitQQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL29iamVjdC1pbnQtc3ViLWFycmF5Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9vYmplY3QtaW50LXN1Yi1hcnJheS5odG1sCShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9vYmplY3QtaW50LXN1Yi1hcnJheS5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVU
Ri8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0ic2NyaXB0LXRlc3RzL29iamVjdC1pbnQtc3ViLWFycmF5LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvb2JqZWN0LWludC1z
dWItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvb2Jq
ZWN0LWludC1zdWItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvanMv
cmVncmVzcy9vYmplY3QtaW50LXN1Yi1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSwxMCBAQAorSlNSZWdyZXNzL29iamVjdC1pbnQtc3ViCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCitQQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9y
ZWdyZXNzL29iamVjdC1pbnQtc3ViLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMv
cmVncmVzcy9vYmplY3QtaW50LXN1Yi5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
anMvcmVncmVzcy9vYmplY3QtaW50LXN1Yi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
MTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxo
dG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL29i
amVjdC1pbnQtc3ViLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
cmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91
dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL29iamVjdC1pbnQtYWRkLWFycmF5LmpzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL29iamVjdC1p
bnQtYWRkLWFycmF5LmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9z
Y3JpcHQtdGVzdHMvb2JqZWN0LWludC1hZGQtYXJyYXkuanMJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSwxOCBAQAorKGZ1bmN0aW9uKCkgeworICAgIHZhciByZXN1bHQgPSAwOworICAgIHZhciBt
ID0gMTAwOworICAgIHZhciBuID0gMTAwMDAwOworICAgIHZhciBhcnJheSA9IFtdOworICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgMTAwOyArK2kpCisgICAgICAgIGFycmF5LnB1c2goMTIpOworICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgbTsgKytpKSB7CisgICAgICAgIHZhciB2YWx1ZSA9IDA7Cisg
ICAgICAgIHZhciBvID0ge3ZhbHVlT2Y6IGZ1bmN0aW9uKCkgeyByZXR1cm4gNDI7IH19OworICAg
ICAgICB2YWx1ZSArPSBvOworICAgICAgICB2YXIgcmVzdWx0ID0gMDsKKyAgICAgICAgZm9yICh2
YXIgaiA9IDA7IGogPCBuOyArK2opCisgICAgICAgICAgICByZXN1bHQgKz0gYXJyYXlbdmFsdWVd
OworICAgIH0KKyAgICBpZiAocmVzdWx0ICE9IG4gKiAxMikKKyAgICAgICAgdGhyb3cgIkVycm9y
OiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfSkoKTsKSW5kZXg6IExheW91dFRlc3RzL2pzL3Jl
Z3Jlc3Mvc2NyaXB0LXRlc3RzL29iamVjdC1pbnQtYWRkLmpzCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL29iamVjdC1pbnQtYWRkLmpzCShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvb2JqZWN0LWludC1h
ZGQuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMyBAQAorKGZ1bmN0aW9uKCkgeworICAg
IHZhciByZXN1bHQgPSAwOworICAgIHZhciBtID0gMTAwMDsKKyAgICB2YXIgbiA9IDEwMDAwOwor
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbTsgKytpKSB7CisgICAgICAgIHZhciBvID0ge3ZhbHVl
T2Y6IGZ1bmN0aW9uKCkgeyByZXR1cm4gNDI7IH19OworICAgICAgICByZXN1bHQgKz0gbzsKKyAg
ICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBuOyArK2opCisgICAgICAgICAgICByZXN1bHQgKz0g
ajsKKyAgICB9CisgICAgaWYgKHJlc3VsdCAhPSBtICogKDQyICsgbiAqIChuIC0gMSkgLyAyKSkK
KyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfSkoKTsKSW5k
ZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL29iamVjdC1pbnQtbXVsLWFy
cmF5LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3Rz
L29iamVjdC1pbnQtbXVsLWFycmF5LmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvanMv
cmVncmVzcy9zY3JpcHQtdGVzdHMvb2JqZWN0LWludC1tdWwtYXJyYXkuanMJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSwxOCBAQAorKGZ1bmN0aW9uKCkgeworICAgIHZhciByZXN1bHQgPSAwOwor
ICAgIHZhciBtID0gMTAwOworICAgIHZhciBuID0gMTAwMDAwOworICAgIHZhciBhcnJheSA9IFtd
OworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwOyArK2kpCisgICAgICAgIGFycmF5LnB1c2go
MTIpOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbTsgKytpKSB7CisgICAgICAgIHZhciB2YWx1
ZSA9IDE7CisgICAgICAgIHZhciBvID0ge3ZhbHVlT2Y6IGZ1bmN0aW9uKCkgeyByZXR1cm4gNDI7
IH19OworICAgICAgICB2YWx1ZSAqPSBvOworICAgICAgICB2YXIgcmVzdWx0ID0gMDsKKyAgICAg
ICAgZm9yICh2YXIgaiA9IDA7IGogPCBuOyArK2opCisgICAgICAgICAgICByZXN1bHQgKz0gYXJy
YXlbdmFsdWVdOworICAgIH0KKyAgICBpZiAocmVzdWx0ICE9IG4gKiAxMikKKyAgICAgICAgdGhy
b3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfSkoKTsKSW5kZXg6IExheW91dFRl
c3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL29iamVjdC1pbnQtc3ViLWFycmF5LmpzCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL29iamVjdC1pbnQt
c3ViLWFycmF5LmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3Jp
cHQtdGVzdHMvb2JqZWN0LWludC1zdWItYXJyYXkuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSwxOCBAQAorKGZ1bmN0aW9uKCkgeworICAgIHZhciByZXN1bHQgPSAwOworICAgIHZhciBtID0g
MTAwOworICAgIHZhciBuID0gMTAwMDAwOworICAgIHZhciBhcnJheSA9IFtdOworICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgMTAwOyArK2kpCisgICAgICAgIGFycmF5LnB1c2goMTIpOworICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgbTsgKytpKSB7CisgICAgICAgIHZhciB2YWx1ZSA9IDA7CisgICAg
ICAgIHZhciBvID0ge3ZhbHVlT2Y6IGZ1bmN0aW9uKCkgeyByZXR1cm4gNDI7IH19OworICAgICAg
ICB2YWx1ZSAtPSBvOworICAgICAgICB2YXIgcmVzdWx0ID0gMDsKKyAgICAgICAgZm9yICh2YXIg
aiA9IDA7IGogPCBuOyArK2opCisgICAgICAgICAgICByZXN1bHQgKz0gYXJyYXlbLXZhbHVlXTsK
KyAgICB9CisgICAgaWYgKHJlc3VsdCAhPSBuICogMTIpCisgICAgICAgIHRocm93ICJFcnJvcjog
YmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30pKCk7CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL3NjcmlwdC10ZXN0cy9vYmplY3QtaW50LXN1Yi5qcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9vYmplY3QtaW50LXN1Yi5qcwkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL29iamVjdC1pbnQtc3Vi
LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTMgQEAKKyhmdW5jdGlvbigpIHsKKyAgICB2
YXIgcmVzdWx0ID0gMDsKKyAgICB2YXIgbSA9IDEwMDA7CisgICAgdmFyIG4gPSAxMDAwMDsKKyAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IG07ICsraSkgeworICAgICAgICB2YXIgbyA9IHt2YWx1ZU9m
OiBmdW5jdGlvbigpIHsgcmV0dXJuIDQyOyB9fTsKKyAgICAgICAgcmVzdWx0IC09IG87CisgICAg
ICAgIGZvciAodmFyIGogPSAwOyBqIDwgbjsgKytqKQorICAgICAgICAgICAgcmVzdWx0IC09IGo7
CisgICAgfQorICAgIGlmIChyZXN1bHQgIT0gLW0gKiAoNDIgKyBuICogKG4gLSAxKSAvIDIpKQor
ICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9KSgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>278416</attachid>
            <date>2016-05-09 11:44:03 -0700</date>
            <delta_ts>2016-05-09 11:55:09 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>104005</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjAwNTgxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1OCBA
QAorMjAxNi0wNS0wOSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAg
IFBvbHltb3JwaGljIG9wZXJhbmRzIGluIG9wZXJhdG9ycyBjb2VyY2VzIGRvd25zdHJlYW0gdmFs
dWVzIHRvIGRvdWJsZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE1MTc5MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAg
ICAgICAKKyAgICAgICAgUHJldmlvdXNseSBpZiBhbiBvYmplY3QgZmxvd2VkIGludG8gYXJpdGht
ZXRpYywgdGhlIHByZWRpY3Rpb24gcHJvcGFnYXRpb24gcGhhc2Ugd291bGQgZWl0aGVyCisgICAg
ICAgIGFzc3VtZSB0aGF0IHRoZSBvdXRwdXQgb2YgdGhlIGFyaXRobWV0aWMgaGFkIHRvIGJlIGRv
dWJsZSBvciBzb21ldGltZXMgaXQgd291bGQgYXNzdW1lIHRoYXQgaXQKKyAgICAgICAgY291bGRu
J3QgYmUgZG91YmxlLiBXZSB3YW50IGl0IHRvIG9ubHkgYXNzdW1lIHRoYXQgdGhlIG91dHB1dCBp
cyBkb3VibGUgaWYgaXQgYWN0dWFsbHkgaGFkIGJlZW4uCisgICAgICAgIAorICAgICAgICBUaGUg
Zmlyc3QgcGFydCBvZiB0aGlzIHBhdGNoIGlzIHRvIHJvbGwgb3V0IGh0dHA6Ly90cmFjLndlYmtp
dC5vcmcvY2hhbmdlc2V0LzIwMDUwMi4gVGhhdCByZW1vdmVkCisgICAgICAgIHNvbWUgb2YgdGhl
IG1hY2hpbmVyeSB0aGF0IHdlIGhhZCBpbiBwbGFjZSB0byBkZXRlY3Qgd2hldGhlciB0aGUgb3V0
cHV0IG9mIGFuIG9wZXJhdGlvbiBpcyBpbnQgb3IKKyAgICAgICAgZG91YmxlLiBUaGF0IGNoYW5n
ZXNldCBjbGFpbWVkIHRoYXQgdGhlIG1hY2hpbmVyeSB3YXMgImZ1bmRhbWVudGFsbHkgYnJva2Vu
Ii4gSXQgYWN0dWFsbHkgd2Fzbid0LgorICAgICAgICBUaGUgcmVhc29uIHdoeSBpdCBkaWRuJ3Qg
d29yayB3YXMgdGhhdCBCeXRlQ29kZVBhcnNlciB3YXMgaWdub3JpbmcgaXQgaWYgbGlrZWx5VG9U
YWtlU2xvd0Nhc2Ugd2FzCisgICAgICAgIGZhbHNlLiBJIHRoaW5rIHRoaXMgd2FzIGEgY29tcGxl
dGUgZ29vZi11cDogdGhlIGNvZGUgaW4gQnl0ZUNvZGVQYXJzZXI6Om1ha2VTYWZlIHdhcyBzdHJ1
Y3R1cmVkCisgICAgICAgIGluIGEgd2F5IHRoYXQgbWFkZSBpdCBub24tb2J2aW91cyB0aGF0IHRo
ZSBtZXRob2QgaXMgYSBuby1vcCBpZiAhbGlrZWx5VG9UYWtlU2xvd0Nhc2UuIFNvLCB0aGlzCisg
ICAgICAgIGNoYW5nZSByb2xscyBvdXQgcjIwMDUwMiBhbmQgbWFrZXMgUmVzdWx0UHJvZmlsZSBk
byBpdHMgam9iIGJ5IHJlc2hhcGluZyBob3cgbWFrZVNhZmUgcHJvY2Vzc2VzCisgICAgICAgIGl0
LgorICAgICAgICAKKyAgICAgICAgVGhpcyBhbHNvIG1ha2VzIHR3byBvdGhlciBjaGFuZ2VzIHRv
IHNob3JlIHVwIFJlc3VsdFByb2ZpbGU6CisgICAgICAgIC0gT1NSIGV4aXQgY2FuIG5vdyByZWZp
bmUgYSBSZXN1bHRQcm9maWxlIHRoZSBzYW1lIHdheSB0aGF0IGl0IHJlZmluZXMgVmFsdWVQcm9m
aWxlLgorICAgICAgICAtIEJhc2VsaW5lIEpJVCBzbG93IHBhdGhzIG5vdyBzZXQgYml0cyBpbiBS
ZXN1bHRQcm9maWxlLgorICAgICAgICAKKyAgICAgICAgQmFzZWQgb24gdGhpcyBzdHVmZiwgdGhl
IERGRyBub3cgcHJlZGljdHMgaW50L2RvdWJsZS9zdHJpbmcgaW4gb3BfYWRkL29wX3N1Yi9vcF9t
dWwgYmFzZWQgb24KKyAgICAgICAgUmVzdWx0UHJvZmlsZXMuIFRvIGJlIGNvbnNlcnZhdGl2ZSwg
d2Ugc3RpbGwgb25seSB1c2UgdGhlIFJlc3VsdFByb2ZpbGVzIGlmIHRoZSBpbmNvbWluZworICAg
ICAgICBwcmVkaWN0aW9uIGlzIG5vdCBudW1iZXItb3ItYm9vbGVhbi4gVGhpcyBlbnN1cmVzIHRo
YXQgd2UgZXhhY3RseSByZXRhaW4gb3VyIG9sZCBiZWhhdmlvciBpbgorICAgICAgICB0aG9zZSBj
YXNlcyBmb3Igd2hpY2ggaXQgd2FzIHR1bmVkLiBCdXQgSSBob3BlIHRvIHJlbW92ZSB0aGlzIHNv
b24uIEkgYmVsaWV2ZSB0aGF0IFJlc3VsdFByb2ZpbGUKKyAgICAgICAgaXMgYWxyZWFkeSBzdHJp
Y3RseSBiZXR0ZXIgdGhhbiB3aGF0IHByZWRpY3Rpb24gcHJvcGFnYXRpb24gd2FzIGRvaW5nIGJl
Zm9yZS4KKyAgICAgICAgCisgICAgICAgIFRoaXMgY2FuIGJlIGFuIGVub3Jtb3VzIHdpbi4gVGhp
cyBwYXRjaCBhZGRzIHNvbWUgc2ltcGxlIG1pY3JvYmVuY2htYXJrcyB0aGF0IGRlbW9uc3RyYXRl
IHRoZQorICAgICAgICBwcm9ibGVtIG9mIGFzc3VtaW5nIHRoYXQgYXJpdGhtZXRpYyBvbiBvYmpl
Y3RzIHJldHVybnMgZG91YmxlLiBUaGUgbW9zdCBleHRyZW1lIG9mIHRoZXNlIHNwZWVkcworICAg
ICAgICB1cCA4eCB3aXRoIHRoaXMgY2hhbmdlIChvYmplY3QtaW50LWFkZC1hcnJheSkuCisgICAg
ICAgIAorICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEphdmFTY3JpcHRDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYnl0ZWNvZGUvQ29kZUJsb2Nr
Lmg6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6YWRkRnJlcXVlbnRFeGl0U2l0ZSk6CisgICAg
ICAgIChKU0M6OkNvZGVCbG9jazo6aGFzRXhpdFNpdGUpOgorICAgICAgICAqIGJ5dGVjb2RlL0RG
R0V4aXRQcm9maWxlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpGcmVxdWVudEV4aXRTaXRlOjpk
dW1wKToKKyAgICAgICAgKEpTQzo6REZHOjpFeGl0UHJvZmlsZTo6RXhpdFByb2ZpbGUpOgorICAg
ICAgICAoSlNDOjpERkc6OkV4aXRQcm9maWxlOjp+RXhpdFByb2ZpbGUpOgorICAgICAgICAoSlND
OjpERkc6OkV4aXRQcm9maWxlOjphZGQpOgorICAgICAgICAqIGJ5dGVjb2RlL0RGR0V4aXRQcm9m
aWxlLmg6CisgICAgICAgIChKU0M6OkRGRzo6RnJlcXVlbnRFeGl0U2l0ZTo6aXNIYXNoVGFibGVE
ZWxldGVkVmFsdWUpOgorICAgICAgICAqIGJ5dGVjb2RlL01ldGhvZE9mR2V0dGluZ0FWYWx1ZVBy
b2ZpbGUuY3BwOgorICAgICAgICAoSlNDOjpNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlOjpm
cm9tTGF6eU9wZXJhbmQpOgorICAgICAgICAoSlNDOjpNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9m
aWxlOjplbWl0UmVwb3J0VmFsdWUpOgorICAgICAgICAoSlNDOjpNZXRob2RPZkdldHRpbmdBVmFs
dWVQcm9maWxlOjpnZXRTcGVjRmFpbEJ1Y2tldCk6IERlbGV0ZWQuCisgICAgICAgICogYnl0ZWNv
ZGUvTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZS5oOgorICAgICAgICAoSlNDOjpNZXRob2RP
ZkdldHRpbmdBVmFsdWVQcm9maWxlOjpNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlKToKKyAg
ICAgICAgKEpTQzo6TWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZTo6b3BlcmF0b3IgYm9vbCk6
CisgICAgICAgIChKU0M6Ok1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGU6Om9wZXJhdG9yISk6
IERlbGV0ZWQuCisgICAgICAgICogYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuY3BwOgorICAg
ICAgICAoSlNDOjpBY2Nlc3NDYXNlOjpnZW5lcmF0ZUltcGwpOgorICAgICAgICAqIGJ5dGVjb2Rl
L1ZhbHVlUHJvZmlsZS5jcHA6CisgICAgICAgIChKU0M6OlJlc3VsdFByb2ZpbGU6OmVtaXREZXRl
Y3RCaXRzTGlnaHQpOgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjplbWl0U2V0RG91Ymxl
KToKKyAgICAgICAgKEpTQzo6UmVzdWx0UHJvZmlsZTo6ZW1pdFNldE5vbk51bWJlcik6CisgICAg
ICAgIChXVEY6OnByaW50SW50ZXJuYWwpOgorICAgICAgICAqIGJ5dGVjb2RlL1ZhbHVlUHJvZmls
ZS5oOgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpSZXN1bHRQcm9maWxlKToKKyAgICAg
ICAgKEpTQzo6UmVzdWx0UHJvZmlsZTo6Ynl0ZWNvZGVPZmZzZXQpOgorICAgICAgICAoSlNDOjpS
ZXN1bHRQcm9maWxlOjpzcGVjaWFsRmFzdFBhdGhDb3VudCk6CisgICAgICAgIChKU0M6OlJlc3Vs
dFByb2ZpbGU6OmRpZE9ic2VydmVOb25JbnQzMik6CisgICAgICAgIChKU0M6OlJlc3VsdFByb2Zp
bGU6OmRpZE9ic2VydmVEb3VibGUpOgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpkaWRP
YnNlcnZlTm9uTmVnWmVyb0RvdWJsZSk6CisgICAgICAgIChKU0M6OlJlc3VsdFByb2ZpbGU6OmRp
ZE9ic2VydmVOZWdaZXJvRG91YmxlKToKKyAgICAgICAgKEpTQzo6UmVzdWx0UHJvZmlsZTo6ZGlk
T2JzZXJ2ZU5vbk51bWJlcik6CisgICAgICAgIChKU0M6OlJlc3VsdFByb2ZpbGU6OmRpZE9ic2Vy
dmVJbnQzMk92ZXJmbG93KToKKyAgICAgICAgKEpTQzo6UmVzdWx0UHJvZmlsZTo6ZGlkT2JzZXJ2
ZUludDUyT3ZlcmZsb3cpOgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpzZXRPYnNlcnZl
ZE5vbk5lZ1plcm9Eb3VibGUpOgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpzZXRPYnNl
cnZlZE5lZ1plcm9Eb3VibGUpOgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpzZXRPYnNl
cnZlZE5vbk51bWJlcik6CisgICAgICAgIChKU0M6OlJlc3VsdFByb2ZpbGU6OnNldE9ic2VydmVk
SW50MzJPdmVyZmxvdyk6CisgICAgICAgIChKU0M6OlJlc3VsdFByb2ZpbGU6OmFkZHJlc3NPZkZs
YWdzKToKKyAgICAgICAgKEpTQzo6UmVzdWx0UHJvZmlsZTo6YWRkcmVzc09mU3BlY2lhbEZhc3RQ
YXRoQ291bnQpOgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpkZXRlY3RCaXRzTGlnaHQp
OgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpoYXNCaXRzKToKKyAgICAgICAgKiBkZmcv
REZHQnl0ZUNvZGVQYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2Vy
OjptYWtlU2FmZSk6CisgICAgICAgICogZGZnL0RGR0ZpeHVwUGhhc2UuY3BwOgorICAgICAgICAo
SlNDOjpERkc6OkZpeHVwUGhhc2U6OmZpeHVwTm9kZSk6CisgICAgICAgICogZGZnL0RGR0dyYXBo
LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpHcmFwaDo6ZW5zdXJlTmF0dXJhbExvb3BzKToKKyAg
ICAgICAgKEpTQzo6REZHOjpHcmFwaDo6bWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZUZvcik6
CisgICAgICAgIChKU0M6OkRGRzo6R3JhcGg6OnZhbHVlUHJvZmlsZUZvcik6IERlbGV0ZWQuCisg
ICAgICAgICogZGZnL0RGR0dyYXBoLmg6CisgICAgICAgIChKU0M6OkRGRzo6R3JhcGg6Omhhc0V4
aXRTaXRlKToKKyAgICAgICAgKEpTQzo6REZHOjpHcmFwaDo6bnVtQmxvY2tzKToKKyAgICAgICAg
KiBkZmcvREZHTm9kZS5oOgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6OmFyaXRoTm9kZUZsYWdz
KToKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjptYXlIYXZlTm9uSW50UmVzdWx0KToKKyAgICAg
ICAgKEpTQzo6REZHOjpOb2RlOjptYXlIYXZlRG91YmxlUmVzdWx0KToKKyAgICAgICAgKEpTQzo6
REZHOjpOb2RlOjptYXlIYXZlTm9uTnVtYmVyUmVzdWx0KToKKyAgICAgICAgKEpTQzo6REZHOjpO
b2RlOjpoYXNDb25zdGFudEJ1ZmZlcik6CisgICAgICAgICogZGZnL0RGR05vZGVGbGFncy5jcHA6
CisgICAgICAgIChKU0M6OkRGRzo6ZHVtcE5vZGVGbGFncyk6CisgICAgICAgICogZGZnL0RGR05v
ZGVGbGFncy5oOgorICAgICAgICAqIGRmZy9ERkdPU1JFeGl0Q29tcGlsZXIzMl82NC5jcHA6Cisg
ICAgICAgIChKU0M6OkRGRzo6T1NSRXhpdENvbXBpbGVyOjpjb21waWxlRXhpdCk6CisgICAgICAg
ICogZGZnL0RGR09TUkV4aXRDb21waWxlcjY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpPU1JF
eGl0Q29tcGlsZXI6OmNvbXBpbGVFeGl0KToKKyAgICAgICAgKiBkZmcvREZHT3BlcmF0aW9ucy5j
cHA6CisgICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuaDoKKyAgICAgICAgKiBkZmcvREZHUHJl
ZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2
ZUpJVC5oOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjYWxsT3BlcmF0aW9u
KToKKyAgICAgICAgKiBmdGwvRlRMT1NSRXhpdENvbXBpbGVyLmNwcDoKKyAgICAgICAgKEpTQzo6
RlRMOjpjb21waWxlU3R1Yik6CisgICAgICAgICogaml0L0Fzc2VtYmx5SGVscGVycy5oOgorICAg
ICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmJyYW5jaElmRXF1YWwpOgorICAgICAgICAoSlND
OjpBc3NlbWJseUhlbHBlcnM6OmJyYW5jaElmTm90Q2VsbCk6CisgICAgICAgIChKU0M6OkFzc2Vt
Ymx5SGVscGVyczo6YnJhbmNoSWZOb3ROdW1iZXIpOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhl
bHBlcnM6OmJyYW5jaElmTm90RG91YmxlS25vd25Ob3RJbnQzMik6CisgICAgICAgIChKU0M6OkFz
c2VtYmx5SGVscGVyczo6YnJhbmNoSWZCb29sZWFuKToKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlI
ZWxwZXJzOjpicmFuY2hJZkVtcHR5KToKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjpi
cmFuY2hTdHJ1Y3R1cmUpOgorICAgICAgICAqIGppdC9DQ2FsbEhlbHBlcnMuaDoKKyAgICAgICAg
KEpTQzo6Q0NhbGxIZWxwZXJzOjpDQ2FsbEhlbHBlcnMpOgorICAgICAgICAoSlNDOjpDQ2FsbEhl
bHBlcnM6OnNldHVwQXJndW1lbnRzKToKKyAgICAgICAgKEpTQzo6Q0NhbGxIZWxwZXJzOjpzZXR1
cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUpOgorICAgICAgICAqIGppdC9JbnRyaW5zaWNFbWl0dGVy
LmNwcDoKKyAgICAgICAgKEpTQzo6QWNjZXNzQ2FzZTo6ZW1pdEludHJpbnNpY0dldHRlcik6Cisg
ICAgICAgICogaml0L0pJVC5oOgorICAgICAgICAqIGppdC9KSVRBZGRHZW5lcmF0b3IuY3BwOgor
ICAgICAgICAoSlNDOjpKSVRBZGRHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgpOgorICAgICAg
ICAqIGppdC9KSVRBZGRHZW5lcmF0b3IuaDoKKyAgICAgICAgKEpTQzo6SklUQWRkR2VuZXJhdG9y
OjpKSVRBZGRHZW5lcmF0b3IpOgorICAgICAgICAqIGppdC9KSVRBcml0aG1ldGljLmNwcDoKKyAg
ICAgICAgKEpTQzo6SklUOjplbWl0X29wX2FkZCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNs
b3dfb3BfYWRkKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2Rpdik6CisgICAgICAgIChK
U0M6OkpJVDo6ZW1pdF9vcF9tdWwpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRTbG93X29wX211
bCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9zdWIpOgorICAgICAgICAoSlNDOjpKSVQ6
OmVtaXRTbG93X29wX3N1Yik6CisgICAgICAgICogaml0L0pJVElubGluZXMuaDoKKyAgICAgICAg
KEpTQzo6SklUOjpjYWxsT3BlcmF0aW9uKToKKyAgICAgICAgKEpTQzo6SklUOjpjYWxsT3BlcmF0
aW9uTm9FeGNlcHRpb25DaGVjayk6CisgICAgICAgICogaml0L0pJVE11bEdlbmVyYXRvci5jcHA6
CisgICAgICAgIChKU0M6OkpJVE11bEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aCk6CisgICAg
ICAgICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIGppdC9KSVRPcGVyYXRpb25z
Lmg6CisgICAgICAgICogaml0L0pJVFN1YkdlbmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6OkpJ
VFN1YkdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aCk6CisgICAgICAgICogaml0L0pJVFN1Ykdl
bmVyYXRvci5oOgorICAgICAgICAoSlNDOjpKSVRTdWJHZW5lcmF0b3I6OkpJVFN1YkdlbmVyYXRv
cik6CisgICAgICAgICogaml0L1RhZ1JlZ2lzdGVyc01vZGUuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdURjo6cHJpbnRJbnRlcm5hbCk6CisgICAgICAgICogaml0L1RhZ1JlZ2lzdGVyc01vZGUuaDog
QWRkZWQuCisgICAgICAgICogcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwOgorICAgICAgICAo
SlNDOjp1cGRhdGVSZXN1bHRQcm9maWxlRm9yQmluYXJ5QXJpdGhPcCk6CisKIDIwMTYtMDUtMDgg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBbQ09DT0FdIERpc2Fi
bGUgSEFWRV9EVFJBQ0UgYXQgYnVpbGQgdGltZQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFr
ZUxpc3RzLnR4dAkocmV2aXNpb24gMjAwNTE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0NN
YWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC01NjQsNiArNTY0LDcgQEAgc2V0KEphdmFT
Y3JpcHRDb3JlX1NPVVJDRVMKICAgICBqaXQvUmVwYXRjaC5jcHAKICAgICBqaXQvU2NyYXRjaFJl
Z2lzdGVyQWxsb2NhdG9yLmNwcAogICAgIGppdC9TZXR1cFZhcmFyZ3NGcmFtZS5jcHAKKyAgICBq
aXQvVGFnUmVnaXN0ZXJzTW9kZS5jcHAKICAgICBqaXQvVGVtcFJlZ2lzdGVyU2V0LmNwcAogICAg
IGppdC9UaHVua0dlbmVyYXRvcnMuY3BwCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCShyZXZpc2lvbiAyMDA1MTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTk5Niw2
ICsxOTk2LDggQEAKIAkJREMxN0U4MUExQzlDOTFFOTAwOEE2QUIzIC8qIENDYWxsSGVscGVycy5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzE3RTgx
NjFDOUM4MDJCMDA4QTZBQjMgLyogQ0NhbGxIZWxwZXJzLmNwcCAqLzsgfTsKIAkJREMyMTQzMDcx
Q0EzMkU1NTAwMEE4ODY5IC8qIElDU3RhdHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IERDMjE0MzA2MUNBMzJFNTIwMDBBODg2OSAvKiBJQ1N0YXRzLmgg
Ki87IH07CiAJCURDMjE0MzA4MUNBMzJFNTgwMDBBODg2OSAvKiBJQ1N0YXRzLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDMjE0MzA1MUNBMzJFNTIw
MDBBODg2OSAvKiBJQ1N0YXRzLmNwcCAqLzsgfTsKKwkJREM3OTk3ODMxQ0RFOUZBMDAwNEQ0QTA5
IC8qIFRhZ1JlZ2lzdGVyc01vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IERDNzk5NzgyMUNERTlGOUUwMDRENEEwOSAvKiBUYWdSZWdpc3RlcnNNb2Rl
LmggKi87IH07CisJCURDNzk5Nzg0MUNERTlGQTIwMDRENEEwOSAvKiBUYWdSZWdpc3RlcnNNb2Rl
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDNzk5
NzgxMUNERTlGOUUwMDRENEEwOSAvKiBUYWdSZWdpc3RlcnNNb2RlLmNwcCAqLzsgfTsKIAkJRENG
M0Q1NjkxQ0QyOTQ2RDAwM0Q1QzY1IC8qIExhenlDbGFzc1N0cnVjdHVyZS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQ0YzRDU2NDFDRDI5NDY4MDAz
RDVDNjUgLyogTGF6eUNsYXNzU3RydWN0dXJlLmNwcCAqLzsgfTsKIAkJRENGM0Q1NkExQ0QyOTQ3
MDAwM0Q1QzY1IC8qIExhenlDbGFzc1N0cnVjdHVyZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRENGM0Q1NjUxQ0QyOTQ2ODAwM0Q1QzY1IC8qIExhenlD
bGFzc1N0cnVjdHVyZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCURDRjNENTZCMUNEMjk0NzIwMDNENUM2NSAvKiBMYXp5Q2xhc3NTdHJ1Y3R1cmVJ
bmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBE
Q0YzRDU2NjFDRDI5NDY4MDAzRDVDNjUgLyogTGF6eUNsYXNzU3RydWN0dXJlSW5saW5lcy5oICov
OyB9OwpAQCAtNDIxMSw2ICs0MjEzLDggQEAKIAkJREMxN0U4MTYxQzlDODAyQjAwOEE2QUIzIC8q
IENDYWxsSGVscGVycy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBD
Q2FsbEhlbHBlcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQzIxNDMwNTFD
QTMyRTUyMDAwQTg4NjkgLyogSUNTdGF0cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBJQ1N0YXRzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREMy
MTQzMDYxQ0EzMkU1MjAwMEE4ODY5IC8qIElDU3RhdHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSUNTdGF0cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEQzc5
OTc4MTFDREU5RjlFMDA0RDRBMDkgLyogVGFnUmVnaXN0ZXJzTW9kZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUYWdSZWdpc3RlcnNNb2RlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJREM3OTk3ODIxQ0RFOUY5RTAwNEQ0QTA5IC8qIFRhZ1JlZ2lz
dGVyc01vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGFnUmVnaXN0ZXJz
TW9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQ0YzRDU2NDFDRDI5NDY4MDAz
RDVDNjUgLyogTGF6eUNsYXNzU3RydWN0dXJlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IExhenlDbGFzc1N0cnVjdHVyZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCURDRjNENTY1MUNEMjk0NjgwMDNENUM2NSAvKiBMYXp5Q2xhc3NTdHJ1Y3R1cmUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGF6eUNsYXNzU3RydWN0dXJlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURDRjNENTY2MUNEMjk0NjgwMDNENUM2NSAv
KiBMYXp5Q2xhc3NTdHJ1Y3R1cmVJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IExhenlDbGFzc1N0cnVjdHVyZUlubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTUwODksNiArNTA5Myw4IEBACiAJCQkJRkUxODdBMEMxQzAyRUJBNzAwMzhCQkNB
IC8qIFNuaXBwZXRPcGVyYW5kLmggKi8sCiAJCQkJQTczODY1NTExMTg2OTdCNDAwNTQwMjc5IC8q
IFNwZWNpYWxpemVkVGh1bmtKSVQuaCAqLywKIAkJCQlBN0ZGNjQ3QTE4QzUyRTg1MDBCNTUzMDcg
LyogU3BpbGxSZWdpc3RlcnNNb2RlLmggKi8sCisJCQkJREM3OTk3ODExQ0RFOUY5RTAwNEQ0QTA5
IC8qIFRhZ1JlZ2lzdGVyc01vZGUuY3BwICovLAorCQkJCURDNzk5NzgyMUNERTlGOUUwMDRENEEw
OSAvKiBUYWdSZWdpc3RlcnNNb2RlLmggKi8sCiAJCQkJMEZDMzE0MTExODE0NTU5MTAwMDMzMjMy
IC8qIFRlbXBSZWdpc3RlclNldC5jcHAgKi8sCiAJCQkJMEYyNEU1NDgxN0VFMjc0OTAwQUJCMjE3
IC8qIFRlbXBSZWdpc3RlclNldC5oICovLAogCQkJCTBGNTcyRDREMTY4NzlGREIwMEU1N0ZCRCAv
KiBUaHVua0dlbmVyYXRvci5oICovLApAQCAtNzg2OSw2ICs3ODc1LDcgQEAKIAkJCQk4NkYzRUVC
RjE2OENERTkzMDA3N0I5MkEgLyogT2JqY1J1bnRpbWVFeHRyYXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTE0Q0E5NThEMTZBQjUwRkEwMDkzOEEwNiAvKiBPYmplY3RBbGxvY2F0aW9uUHJvZmlsZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRENGM0Q1NkMxQ0QyOTQ3NTAwM0Q1QzY1IC8qIExhenlQcm9w
ZXJ0eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJREM3OTk3ODMxQ0RFOUZBMDAwNEQ0QTA5IC8qIFRh
Z1JlZ2lzdGVyc01vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDQ1MEUxNkY1Q0QwMEIz
NDQ2MCAvKiBPYmplY3RDb25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTk2QjczMjIx
QkRBMDhFRjAwMzMxQjg0IC8qIE9iamVjdENvbnN0cnVjdG9yLmx1dC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEZEM0U0MEExQjYxOEI2NjAwQzgwRTFFIC8qIE9iamVjdFByb3BlcnR5Q29uZGl0aW9u
LmggaW4gSGVhZGVycyAqLywKQEAgLTkwNDEsNiArOTA0OCw3IEBACiAJCQkJRkUzQTA2QjMxQzEw
Q0I4RTAwMzkwRkREIC8qIEpJVEJpdFhvckdlbmVyYXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlBNTdEMjNFNTE4OTBDRUJGMDAzMUM3RkEgLyogSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlBNTMyNDM4OTE4NTY4MzM1MDAyRUQ2OTIgLyogSW5zcGVjdG9y
RnJvbnRlbmREaXNwYXRjaGVycy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlEQzc5OTc4NDFDREU5
RkEyMDA0RDRBMDkgLyogVGFnUmVnaXN0ZXJzTW9kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5
OUYxQTZGRTFCOEU2RDk0MDA0NjNCMjYgLyogSW5zcGVjdG9yRnJvbnRlbmRSb3V0ZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQTUzMzlFQzcxQkIzOTlBOTAwNTRGMDA1IC8qIEluc3BlY3Rvckhl
YXBBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMzVFMDM1RjFCN0FCNDNFMDA3M0FEMkEg
LyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAkocmV2aXNpb24g
MjAwNTE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCSh3
b3JraW5nIGNvcHkpCkBAIC01MDAsNyArNTAwLDcgQEAgcHVibGljOgogICAgIHsKICAgICAgICAg
QVNTRVJUKEpJVENvZGU6OmlzQmFzZWxpbmVDb2RlKGppdFR5cGUoKSkpOwogICAgICAgICBDb25j
dXJyZW50SklUTG9ja2VyIGxvY2tlcihtX2xvY2spOwotICAgICAgICByZXR1cm4gbV9leGl0UHJv
ZmlsZS5hZGQobG9ja2VyLCBzaXRlKTsKKyAgICAgICAgcmV0dXJuIG1fZXhpdFByb2ZpbGUuYWRk
KGxvY2tlciwgdGhpcywgc2l0ZSk7CiAgICAgfQogCiAgICAgYm9vbCBoYXNFeGl0U2l0ZShjb25z
dCBDb25jdXJyZW50SklUTG9ja2VyJiBsb2NrZXIsIGNvbnN0IERGRzo6RnJlcXVlbnRFeGl0U2l0
ZSYgc2l0ZSkgY29uc3QKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9ERkdF
eGl0UHJvZmlsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0RGR0V4aXRQcm9maWxlLmNwcAkocmV2aXNpb24gMjAwNTE3KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0RGR0V4aXRQcm9maWxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgs
MTQgKzI4LDI0IEBACiAKICNpZiBFTkFCTEUoREZHX0pJVCkKIAorI2luY2x1ZGUgIkNvZGVCbG9j
ay5oIgorCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKK3ZvaWQgRnJlcXVlbnRF
eGl0U2l0ZTo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAoreworICAgIG91dC5wcmludCgi
YmMjIiwgbV9ieXRlY29kZU9mZnNldCwgIjogIiwgbV9raW5kLCAiLyIsIG1faml0VHlwZSk7Cit9
CisKIEV4aXRQcm9maWxlOjpFeGl0UHJvZmlsZSgpIHsgfQogRXhpdFByb2ZpbGU6On5FeGl0UHJv
ZmlsZSgpIHsgfQogCi1ib29sIEV4aXRQcm9maWxlOjphZGQoY29uc3QgQ29uY3VycmVudEpJVExv
Y2tlciYsIGNvbnN0IEZyZXF1ZW50RXhpdFNpdGUmIHNpdGUpCitib29sIEV4aXRQcm9maWxlOjph
ZGQoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIENvZGVCbG9jayogb3duZXIsIGNvbnN0IEZy
ZXF1ZW50RXhpdFNpdGUmIHNpdGUpCiB7CiAgICAgQVNTRVJUKHNpdGUuaml0VHlwZSgpICE9IEV4
aXRGcm9tQW55dGhpbmcpOworCisgICAgaWYgKGZhbHNlKSAvLyBGSVhNRQorICAgICAgICBkYXRh
TG9nKHBvaW50ZXJEdW1wKG93bmVyKSwgIjogQWRkaW5nIGV4aXQgc2l0ZTogIiwgc2l0ZSwgIlxu
Iik7CiAgICAgCiAgICAgLy8gSWYgd2UndmUgbmV2ZXIgc2VlbiBhbnkgZnJlcXVlbnQgZXhpdHMg
dGhlbiBjcmVhdGUgdGhlIGxpc3QgYW5kIHB1dCB0aGlzIHNpdGUKICAgICAvLyBpbnRvIGl0LgpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0RGR0V4aXRQcm9maWxlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0RGR0V4aXRQcm9maWxl
LmgJKHJldmlzaW9uIDIwMDUxNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9E
RkdFeGl0UHJvZmlsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAxNCwgMjAxNiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEx
Niw2ICsxMTYsOCBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICByZXR1cm4gbV9raW5kID09IEV4
aXRLaW5kVW5zZXQgJiYgbV9ieXRlY29kZU9mZnNldDsKICAgICB9CisgICAgCisgICAgdm9pZCBk
dW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0OwogCiBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1f
Ynl0ZWNvZGVPZmZzZXQ7CkBAIC0xNTksNyArMTYxLDcgQEAgcHVibGljOgogICAgIC8vIGJlIGNh
bGxlZCBhIGZpeGVkIG51bWJlciBvZiB0aW1lcyBwZXIgcmVjb21waWxhdGlvbi4gUmVjb21waWxh
dGlvbiBpcwogICAgIC8vIHJhcmUgdG8gYmVnaW4gd2l0aCwgYW5kIGltcGxpZXMgZG9pbmcgTyhu
KSBvcGVyYXRpb25zIG9uIHRoZSBDb2RlQmxvY2sKICAgICAvLyBhbnl3YXkuCi0gICAgYm9vbCBh
ZGQoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIGNvbnN0IEZyZXF1ZW50RXhpdFNpdGUmKTsK
KyAgICBib29sIGFkZChjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiwgQ29kZUJsb2NrKiBvd25l
ciwgY29uc3QgRnJlcXVlbnRFeGl0U2l0ZSYpOwogICAgIAogICAgIC8vIEdldCB0aGUgZnJlcXVl
bnQgZXhpdCBzaXRlcyBmb3IgYSBieXRlY29kZSBpbmRleC4gVGhpcyBpcyBPKG4pLCBhbmQgaXMK
ICAgICAvLyBtZWFudCB0byBvbmx5IGJlIHVzZWQgZnJvbSBkZWJ1Z2dpbmcvcHJvZmlsaW5nIGNv
ZGUuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTWV0aG9kT2ZHZXR0aW5n
QVZhbHVlUHJvZmlsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL01ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUuY3BwCShyZXZpc2lvbiAyMDA1MTcp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTWV0aG9kT2ZHZXR0aW5nQVZhbHVl
UHJvZmlsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMiwgMjAxMywgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4LDYgKzI4LDcgQEAKIAog
I2lmIEVOQUJMRShERkdfSklUKQogCisjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCiAjaW5jbHVk
ZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogCkBAIC00NCwxNCArNDUs
MTUgQEAgTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZSBNZXRob2RPZkdldAogICAgIHJldHVy
biByZXN1bHQ7CiB9CiAKLUVuY29kZWRKU1ZhbHVlKiBNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9m
aWxlOjpnZXRTcGVjRmFpbEJ1Y2tldCh1bnNpZ25lZCBpbmRleCkgY29uc3QKK3ZvaWQgTWV0aG9k
T2ZHZXR0aW5nQVZhbHVlUHJvZmlsZTo6ZW1pdFJlcG9ydFZhbHVlKENDYWxsSGVscGVycyYgaml0
LCBKU1ZhbHVlUmVncyByZWdzKSBjb25zdAogewogICAgIHN3aXRjaCAobV9raW5kKSB7CiAgICAg
Y2FzZSBOb25lOgotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuOwogICAgICAgICAK
ICAgICBjYXNlIFJlYWR5OgotICAgICAgICByZXR1cm4gdS5wcm9maWxlLT5zcGVjRmFpbEJ1Y2tl
dChpbmRleCk7CisgICAgICAgIGppdC5zdG9yZVZhbHVlKHJlZ3MsIHUucHJvZmlsZS0+c3BlY0Zh
aWxCdWNrZXQoMCkpOworICAgICAgICByZXR1cm47CiAgICAgICAgIAogICAgIGNhc2UgTGF6eU9w
ZXJhbmQ6IHsKICAgICAgICAgTGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGVLZXkga2V5KHUubGF6eU9w
ZXJhbmQuYnl0ZWNvZGVPZmZzZXQsIFZpcnR1YWxSZWdpc3Rlcih1LmxhenlPcGVyYW5kLm9wZXJh
bmQpKTsKQEAgLTU5LDEzICs2MSwxNiBAQCBFbmNvZGVkSlNWYWx1ZSogTWV0aG9kT2ZHZXR0aW5n
QVZhbHVlUHJvCiAgICAgICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKHUubGF6eU9wZXJh
bmQuY29kZUJsb2NrLT5tX2xvY2spOwogICAgICAgICBMYXp5T3BlcmFuZFZhbHVlUHJvZmlsZSog
cHJvZmlsZSA9CiAgICAgICAgICAgICB1LmxhenlPcGVyYW5kLmNvZGVCbG9jay0+bGF6eU9wZXJh
bmRWYWx1ZVByb2ZpbGVzKCkuYWRkKGxvY2tlciwga2V5KTsKLSAgICAgICAgcmV0dXJuIHByb2Zp
bGUtPnNwZWNGYWlsQnVja2V0KGluZGV4KTsKKyAgICAgICAgaml0LnN0b3JlVmFsdWUocmVncywg
cHJvZmlsZS0+c3BlY0ZhaWxCdWNrZXQoMCkpOworICAgICAgICByZXR1cm47CiAgICAgfQogICAg
ICAgICAKLSAgICBkZWZhdWx0OgotICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgp
OwotICAgICAgICByZXR1cm4gMDsKLSAgICB9CisgICAgY2FzZSBSZXN1bHRQcm9maWxlUmVhZHk6
IHsKKyAgICAgICAgdS5yZXN1bHRQcm9maWxlLT5lbWl0RGV0ZWN0Qml0c0xpZ2h0KGppdCwgcmVn
cywgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0gfQorICAg
IAorICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNl
IEpTQwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL01ldGhvZE9mR2V0dGlu
Z0FWYWx1ZVByb2ZpbGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZS5oCShyZXZpc2lvbiAyMDA1MTcpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJv
ZmlsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTIsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC0zMiwxMiArMzIsMTUgQEAKIC8vIHRoZXNlICNpZidzIHdp
bGwgZGlzYXBwZWFyLi4uCiAjaWYgRU5BQkxFKERGR19KSVQpCiAKKyNpbmNsdWRlICJHUFJJbmZv
LmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZS5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIAorY2xhc3Mg
Q0NhbGxIZWxwZXJzOwogY2xhc3MgQ29kZUJsb2NrOwogY2xhc3MgTGF6eU9wZXJhbmRWYWx1ZVBy
b2ZpbGVLZXk7CitzdHJ1Y3QgUmVzdWx0UHJvZmlsZTsKIHN0cnVjdCBWYWx1ZVByb2ZpbGU7CiAK
IGNsYXNzIE1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUgewpAQCAtNDcsNyArNTAsNyBAQCBw
dWJsaWM6CiAgICAgewogICAgIH0KICAgICAKLSAgICBleHBsaWNpdCBNZXRob2RPZkdldHRpbmdB
VmFsdWVQcm9maWxlKFZhbHVlUHJvZmlsZSogcHJvZmlsZSkKKyAgICBNZXRob2RPZkdldHRpbmdB
VmFsdWVQcm9maWxlKFZhbHVlUHJvZmlsZSogcHJvZmlsZSkKICAgICB7CiAgICAgICAgIGlmIChw
cm9maWxlKSB7CiAgICAgICAgICAgICBtX2tpbmQgPSBSZWFkeTsKQEAgLTU2LDMxICs1OSwzNCBA
QCBwdWJsaWM6CiAgICAgICAgICAgICBtX2tpbmQgPSBOb25lOwogICAgIH0KICAgICAKKyAgICBN
ZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlKFJlc3VsdFByb2ZpbGUqIHByb2ZpbGUpCisgICAg
eworICAgICAgICBpZiAocHJvZmlsZSkgeworICAgICAgICAgICAgbV9raW5kID0gUmVzdWx0UHJv
ZmlsZVJlYWR5OworICAgICAgICAgICAgdS5yZXN1bHRQcm9maWxlID0gcHJvZmlsZTsKKyAgICAg
ICAgfSBlbHNlCisgICAgICAgICAgICBtX2tpbmQgPSBOb25lOworICAgIH0KKyAgICAKICAgICBz
dGF0aWMgTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZSBmcm9tTGF6eU9wZXJhbmQoCiAgICAg
ICAgIENvZGVCbG9jayosIGNvbnN0IExhenlPcGVyYW5kVmFsdWVQcm9maWxlS2V5Jik7CiAgICAg
Ci0gICAgYm9vbCBvcGVyYXRvciEoKSBjb25zdCB7IHJldHVybiBtX2tpbmQgPT0gTm9uZTsgfQot
ICAgIAotICAgIC8vIFRoaXMgbG9naWNhbGx5IGhhcyBhIHBvaW50ZXIgdG8gYSAiVGhlcmUgZXhp
c3RzIFggc3VjaCB0aGF0Ci0gICAgLy8gVmFsdWVQcm9maWxlQmFzZTxYPiIuIEJ1dCBzaW5jZSBD
KysgZG9lcyBub3QgaGF2ZSBleGlzdGVudGlhbAotICAgIC8vIHRlbXBsYXRlcywgSSBjYW5ub3Qg
cmV0dXJuIGl0LiBTbyBpbnN0ZWFkLCBmb3IgYW55IG1ldGhvZHMgdGhhdAotICAgIC8vIHVzZXJz
IG9mIHRoaXMgY2xhc3Mgd291bGQgbGlrZSB0byBjYWxsLCB3ZSdsbCBqdXN0IGhhdmUgdG8gcHJv
dmlkZQotICAgIC8vIGEgbWV0aG9kIGhlcmUgdGhhdCBkb2VzIGl0IHRocm91Z2ggYW4gaW5kaXJl
Y3Rpb24uIE9yIHdlIGNvdWxkCi0gICAgLy8gcG9zc2libHkganVzdCBtYWtlIFZhbHVlUHJvZmls
ZSBsZXNzIHRlbXBsYXRlLWJhc2VkLiBCdXQgbGFzdCBJCi0gICAgLy8gdHJpZWQgdGhhdCwgaXQg
ZmVsdCBtb3JlIHl1Y2t5IHRoYW4gdGhpcyBjbGFzcy4KKyAgICBleHBsaWNpdCBvcGVyYXRvciBi
b29sKCkgY29uc3QgeyByZXR1cm4gbV9raW5kICE9IE5vbmU7IH0KICAgICAKLSAgICBFbmNvZGVk
SlNWYWx1ZSogZ2V0U3BlY0ZhaWxCdWNrZXQodW5zaWduZWQgaW5kZXgpIGNvbnN0OworICAgIHZv
aWQgZW1pdFJlcG9ydFZhbHVlKENDYWxsSGVscGVycyYsIEpTVmFsdWVSZWdzKSBjb25zdDsKICAg
ICAKIHByaXZhdGU6CiAgICAgZW51bSBLaW5kIHsKICAgICAgICAgTm9uZSwKICAgICAgICAgUmVh
ZHksCisgICAgICAgIFJlc3VsdFByb2ZpbGVSZWFkeSwKICAgICAgICAgTGF6eU9wZXJhbmQKICAg
ICB9OwogICAgIAogICAgIEtpbmQgbV9raW5kOwogICAgIHVuaW9uIHsKICAgICAgICAgVmFsdWVQ
cm9maWxlKiBwcm9maWxlOworICAgICAgICBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlOwog
ICAgICAgICBzdHJ1Y3QgewogICAgICAgICAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2s7CiAgICAg
ICAgICAgICB1bnNpZ25lZCBieXRlY29kZU9mZnNldDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzLmNwcAkocmV2aXNpb24g
MjAwNTE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHltb3JwaGljQWNj
ZXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE0Niw4ICsxMTQ2LDcgQEAgdm9pZCBBY2Nlc3ND
YXNlOjpnZW5lcmF0ZUltcGwoQWNjZXNzR2VuZQogICAgICAgICAgICAgaWYgKHZlcmJvc2UpCiAg
ICAgICAgICAgICAgICAgZGF0YUxvZygiSGF2ZSB0eXBlOiAiLCB0eXBlLT5kZXNjcmlwdG9yKCks
ICJcbiIpOwogICAgICAgICAgICAgc3RhdGUuZmFpbEFuZFJlcGF0Y2guYXBwZW5kKAotICAgICAg
ICAgICAgICAgIGppdC5icmFuY2hJZk5vdFR5cGUoCi0gICAgICAgICAgICAgICAgICAgIHZhbHVl
UmVncywgc2NyYXRjaEdQUiwgdHlwZS0+ZGVzY3JpcHRvcigpLCBDQ2FsbEhlbHBlcnM6OkhhdmVU
YWdSZWdpc3RlcnMpKTsKKyAgICAgICAgICAgICAgICBqaXQuYnJhbmNoSWZOb3RUeXBlKHZhbHVl
UmVncywgc2NyYXRjaEdQUiwgdHlwZS0+ZGVzY3JpcHRvcigpKSk7CiAgICAgICAgIH0gZWxzZSBp
ZiAodmVyYm9zZSkKICAgICAgICAgICAgIGRhdGFMb2coIkRvbid0IGhhdmUgdHlwZS5cbiIpOwog
ICAgICAgICAKQEAgLTExNzcsOCArMTE3Niw3IEBAIHZvaWQgQWNjZXNzQ2FzZTo6Z2VuZXJhdGVJ
bXBsKEFjY2Vzc0dlbmUKICAgICAgICAgICAgIGlmICh2ZXJib3NlKQogICAgICAgICAgICAgICAg
IGRhdGFMb2coIkhhdmUgdHlwZTogIiwgdHlwZS0+ZGVzY3JpcHRvcigpLCAiXG4iKTsKICAgICAg
ICAgICAgIHN0YXRlLmZhaWxBbmRSZXBhdGNoLmFwcGVuZCgKLSAgICAgICAgICAgICAgICBqaXQu
YnJhbmNoSWZOb3RUeXBlKAotICAgICAgICAgICAgICAgICAgICB2YWx1ZVJlZ3MsIHNjcmF0Y2hH
UFIsIHR5cGUtPmRlc2NyaXB0b3IoKSwgQ0NhbGxIZWxwZXJzOjpIYXZlVGFnUmVnaXN0ZXJzKSk7
CisgICAgICAgICAgICAgICAgaml0LmJyYW5jaElmTm90VHlwZSh2YWx1ZVJlZ3MsIHNjcmF0Y2hH
UFIsIHR5cGUtPmRlc2NyaXB0b3IoKSkpOwogICAgICAgICB9IGVsc2UgaWYgKHZlcmJvc2UpCiAg
ICAgICAgICAgICBkYXRhTG9nKCJEb24ndCBoYXZlIHR5cGUuXG4iKTsKICAgICAgICAgCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmFsdWVQcm9maWxlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmFsdWVQcm9maWxlLmNwcAko
cmV2aXNpb24gMjAwNTE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZhbHVl
UHJvZmlsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjYsNiArMjYsMzYgQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJWYWx1ZVByb2ZpbGUuaCIKIAorI2luY2x1ZGUgIkNDYWxsSGVscGVy
cy5oIgorI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKKworbmFtZXNwYWNlIEpTQyB7CisKK3ZvaWQg
UmVzdWx0UHJvZmlsZTo6ZW1pdERldGVjdEJpdHNMaWdodChDQ2FsbEhlbHBlcnMmIGppdCwgSlNW
YWx1ZVJlZ3MgcmVncywgVGFnUmVnaXN0ZXJzTW9kZSBtb2RlKQoreworICAgIENDYWxsSGVscGVy
czo6SnVtcCBpc0ludDMyID0gaml0LmJyYW5jaElmSW50MzIocmVncywgbW9kZSk7CisgICAgQ0Nh
bGxIZWxwZXJzOjpKdW1wIG5vdERvdWJsZSA9IGppdC5icmFuY2hJZk5vdERvdWJsZUtub3duTm90
SW50MzIocmVncywgbW9kZSk7CisgICAgLy8gRklYTUU6IFdlIGNvdWxkIGJlIG1vcmUgcHJlY2lz
ZSBoZXJlLgorICAgIGVtaXRTZXREb3VibGUoaml0KTsKKyAgICBDQ2FsbEhlbHBlcnM6Okp1bXAg
ZG9uZSA9IGppdC5qdW1wKCk7CisgICAgbm90RG91YmxlLmxpbmsoJmppdCk7CisgICAgZW1pdFNl
dE5vbk51bWJlcihqaXQpOworICAgIGRvbmUubGluaygmaml0KTsKKyAgICBpc0ludDMyLmxpbmso
JmppdCk7Cit9CisKK3ZvaWQgUmVzdWx0UHJvZmlsZTo6ZW1pdFNldERvdWJsZShDQ2FsbEhlbHBl
cnMmIGppdCkKK3sKKyAgICBqaXQub3IzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihSZXN1
bHRQcm9maWxlOjpJbnQzMk92ZXJmbG93IHwgUmVzdWx0UHJvZmlsZTo6SW50NTJPdmVyZmxvdyB8
IFJlc3VsdFByb2ZpbGU6Ok5lZ1plcm9Eb3VibGUgfCBSZXN1bHRQcm9maWxlOjpOb25OZWdaZXJv
RG91YmxlKSwgQ0NhbGxIZWxwZXJzOjpBYnNvbHV0ZUFkZHJlc3MoYWRkcmVzc09mRmxhZ3MoKSkp
OworfQorCit2b2lkIFJlc3VsdFByb2ZpbGU6OmVtaXRTZXROb25OdW1iZXIoQ0NhbGxIZWxwZXJz
JiBqaXQpCit7CisgICAgaml0Lm9yMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoUmVzdWx0
UHJvZmlsZTo6Tm9uTnVtYmVyKSwgQ0NhbGxIZWxwZXJzOjpBYnNvbHV0ZUFkZHJlc3MoYWRkcmVz
c09mRmxhZ3MoKSkpOworfQorCit9IC8vIG5hbWVzcGFjZSBKU0MKKwogbmFtZXNwYWNlIFdURiB7
CiAgICAgCiB1c2luZyBuYW1lc3BhY2UgSlNDOwpAQCAtMzQsMjMgKzY0LDMxIEBAIHZvaWQgcHJp
bnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0LCBjb24KIHsKICAgICBjb25zdCBjaGFyKiBzZXBh
cmF0b3IgPSAiIjsKIAotICAgIGlmIChwcm9maWxlLmRpZE9ic2VydmVOZWdaZXJvRG91YmxlKCkp
IHsKLSAgICAgICAgb3V0LnByaW50KHNlcGFyYXRvciwgIk5lZ1plcm9Eb3VibGUiKTsKKyAgICBp
ZiAoIXByb2ZpbGUuZGlkT2JzZXJ2ZU5vbkludDMyKCkpIHsKKyAgICAgICAgb3V0LnByaW50KCJJ
bnQzMiIpOwogICAgICAgICBzZXBhcmF0b3IgPSAifCI7CisgICAgfSBlbHNlIHsKKyAgICAgICAg
aWYgKHByb2ZpbGUuZGlkT2JzZXJ2ZU5lZ1plcm9Eb3VibGUoKSkgeworICAgICAgICAgICAgb3V0
LnByaW50KHNlcGFyYXRvciwgIk5lZ1plcm9Eb3VibGUiKTsKKyAgICAgICAgICAgIHNlcGFyYXRv
ciA9ICJ8IjsKKyAgICAgICAgfQorICAgICAgICBpZiAocHJvZmlsZS5kaWRPYnNlcnZlTm9uTmVn
WmVyb0RvdWJsZSgpKSB7CisgICAgICAgICAgICBvdXQucHJpbnQoIk5vbk5lZ1plcm9Eb3VibGUi
KTsKKyAgICAgICAgICAgIHNlcGFyYXRvciA9ICJ8IjsKKyAgICAgICAgfQorICAgICAgICBpZiAo
cHJvZmlsZS5kaWRPYnNlcnZlTm9uTnVtYmVyKCkpIHsKKyAgICAgICAgICAgIG91dC5wcmludCgi
Tm9uTnVtYmVyIik7CisgICAgICAgICAgICBzZXBhcmF0b3IgPSAifCI7CisgICAgICAgIH0KKyAg
ICAgICAgaWYgKHByb2ZpbGUuZGlkT2JzZXJ2ZUludDMyT3ZlcmZsb3coKSkgeworICAgICAgICAg
ICAgb3V0LnByaW50KCJJbnQzMk92ZXJmbG93Iik7CisgICAgICAgICAgICBzZXBhcmF0b3IgPSAi
fCI7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHByb2ZpbGUuZGlkT2JzZXJ2ZUludDUyT3ZlcmZs
b3coKSkgeworICAgICAgICAgICAgb3V0LnByaW50KCJJbnQ1Mk92ZXJmbG93Iik7CisgICAgICAg
ICAgICBzZXBhcmF0b3IgPSAifCI7CisgICAgICAgIH0KICAgICB9Ci0gICAgaWYgKHByb2ZpbGUu
ZGlkT2JzZXJ2ZU5vbk51bWJlcigpKSB7Ci0gICAgICAgIG91dC5wcmludCgiTm9uTnVtYmVyIik7
Ci0gICAgICAgIHNlcGFyYXRvciA9ICJ8IjsKLSAgICB9Ci0gICAgaWYgKHByb2ZpbGUuZGlkT2Jz
ZXJ2ZUludDMyT3ZlcmZsb3coKSkgewotICAgICAgICBvdXQucHJpbnQoIkludDMyT3ZlcmZsb3ci
KTsKLSAgICAgICAgc2VwYXJhdG9yID0gInwiOwotICAgIH0KLSAgICBpZiAocHJvZmlsZS5kaWRP
YnNlcnZlSW50NTJPdmVyZmxvdygpKSB7Ci0gICAgICAgIG91dC5wcmludCgiSW50NTJPdmVyZmxv
dyIpOwotICAgICAgICBzZXBhcmF0b3IgPSAifCI7Ci0gICAgfQotCiAgICAgaWYgKHByb2ZpbGUu
c3BlY2lhbEZhc3RQYXRoQ291bnQoKSkgewogICAgICAgICBvdXQucHJpbnQoIiBzcGVjaWFsIGZh
c3QgcGF0aDogIik7CiAgICAgICAgIG91dC5wcmludChwcm9maWxlLnNwZWNpYWxGYXN0UGF0aENv
dW50KCkpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZhbHVlUHJvZmls
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WYWx1ZVBy
b2ZpbGUuaAkocmV2aXNpb24gMjAwNTE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL1ZhbHVlUHJvZmlsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAxMywgMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM0LDEy
ICszNCwxNSBAQAogI2luY2x1ZGUgIkpTQXJyYXkuaCIKICNpbmNsdWRlICJTcGVjdWxhdGVkVHlw
ZS5oIgogI2luY2x1ZGUgIlN0cnVjdHVyZS5oIgorI2luY2x1ZGUgIlRhZ1JlZ2lzdGVyc01vZGUu
aCIKICNpbmNsdWRlICJXcml0ZUJhcnJpZXIuaCIKICNpbmNsdWRlIDx3dGYvUHJpbnRTdHJlYW0u
aD4KICNpbmNsdWRlIDx3dGYvU3RyaW5nUHJpbnRTdHJlYW0uaD4KIAogbmFtZXNwYWNlIEpTQyB7
CiAKK2NsYXNzIENDYWxsSGVscGVyczsKKwogdGVtcGxhdGU8dW5zaWduZWQgbnVtYmVyT2ZCdWNr
ZXRzQXJndW1lbnQ+CiBzdHJ1Y3QgVmFsdWVQcm9maWxlQmFzZSB7CiAgICAgc3RhdGljIGNvbnN0
IHVuc2lnbmVkIG51bWJlck9mQnVja2V0cyA9IG51bWJlck9mQnVja2V0c0FyZ3VtZW50OwpAQCAt
MjE4LDIwICsyMjEsMjUgQEAgcHVibGljOgogICAgIH0KIAogICAgIGVudW0gT2JzZXJ2ZWRSZXN1
bHRzIHsKLSAgICAgICAgTmVnWmVyb0RvdWJsZSAgICA9IDEgPDwgMCwKLSAgICAgICAgTm9uTnVt
YmVyICAgICAgICA9IDEgPDwgMSwKLSAgICAgICAgSW50MzJPdmVyZmxvdyAgICA9IDEgPDwgMiwK
LSAgICAgICAgSW50NTJPdmVyZmxvdyAgICA9IDEgPDwgMywKKyAgICAgICAgTm9uTmVnWmVyb0Rv
dWJsZSA9IDEgPDwgMCwKKyAgICAgICAgTmVnWmVyb0RvdWJsZSAgICA9IDEgPDwgMSwKKyAgICAg
ICAgTm9uTnVtYmVyICAgICAgICA9IDEgPDwgMiwKKyAgICAgICAgSW50MzJPdmVyZmxvdyAgICA9
IDEgPDwgMywKKyAgICAgICAgSW50NTJPdmVyZmxvdyAgICA9IDEgPDwgNCwKICAgICB9OwogCiAg
ICAgaW50IGJ5dGVjb2RlT2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gbV9ieXRlY29kZU9mZnNldEFu
ZEZsYWdzID4+IG51bWJlck9mRmxhZ0JpdHM7IH0KICAgICB1bnNpZ25lZCBzcGVjaWFsRmFzdFBh
dGhDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fc3BlY2lhbEZhc3RQYXRoQ291bnQ7IH0KIAorICAg
IGJvb2wgZGlkT2JzZXJ2ZU5vbkludDMyKCkgY29uc3QgeyByZXR1cm4gaGFzQml0cyhOb25OZWda
ZXJvRG91YmxlIHwgTmVnWmVyb0RvdWJsZSB8IE5vbk51bWJlcik7IH0KKyAgICBib29sIGRpZE9i
c2VydmVEb3VibGUoKSBjb25zdCB7IHJldHVybiBoYXNCaXRzKE5vbk5lZ1plcm9Eb3VibGUgfCBO
ZWdaZXJvRG91YmxlKTsgfQorICAgIGJvb2wgZGlkT2JzZXJ2ZU5vbk5lZ1plcm9Eb3VibGUoKSBj
b25zdCB7IHJldHVybiBoYXNCaXRzKE5vbk5lZ1plcm9Eb3VibGUpOyB9CiAgICAgYm9vbCBkaWRP
YnNlcnZlTmVnWmVyb0RvdWJsZSgpIGNvbnN0IHsgcmV0dXJuIGhhc0JpdHMoTmVnWmVyb0RvdWJs
ZSk7IH0KICAgICBib29sIGRpZE9ic2VydmVOb25OdW1iZXIoKSBjb25zdCB7IHJldHVybiBoYXNC
aXRzKE5vbk51bWJlcik7IH0KICAgICBib29sIGRpZE9ic2VydmVJbnQzMk92ZXJmbG93KCkgY29u
c3QgeyByZXR1cm4gaGFzQml0cyhJbnQzMk92ZXJmbG93KTsgfQogICAgIGJvb2wgZGlkT2JzZXJ2
ZUludDUyT3ZlcmZsb3coKSBjb25zdCB7IHJldHVybiBoYXNCaXRzKEludDUyT3ZlcmZsb3cpOyB9
CiAKKyAgICB2b2lkIHNldE9ic2VydmVkTm9uTmVnWmVyb0RvdWJsZSgpIHsgc2V0Qml0KE5vbk5l
Z1plcm9Eb3VibGUpOyB9CiAgICAgdm9pZCBzZXRPYnNlcnZlZE5lZ1plcm9Eb3VibGUoKSB7IHNl
dEJpdChOZWdaZXJvRG91YmxlKTsgfQogICAgIHZvaWQgc2V0T2JzZXJ2ZWROb25OdW1iZXIoKSB7
IHNldEJpdChOb25OdW1iZXIpOyB9CiAgICAgdm9pZCBzZXRPYnNlcnZlZEludDMyT3ZlcmZsb3co
KSB7IHNldEJpdChJbnQzMk92ZXJmbG93KTsgfQpAQCAtMjM5LDYgKzI0NywyNyBAQCBwdWJsaWM6
CiAKICAgICB2b2lkKiBhZGRyZXNzT2ZGbGFncygpIHsgcmV0dXJuICZtX2J5dGVjb2RlT2Zmc2V0
QW5kRmxhZ3M7IH0KICAgICB2b2lkKiBhZGRyZXNzT2ZTcGVjaWFsRmFzdFBhdGhDb3VudCgpIHsg
cmV0dXJuICZtX3NwZWNpYWxGYXN0UGF0aENvdW50OyB9CisgICAgCisgICAgLy8gU2V0cyAoSW50
MzJPdmVyZmxvdyB8IEludDUyT3ZlcmZsb3cgfCBOb25OZWdaZXJvRG91YmxlIHwgTmVnWmVyb0Rv
dWJsZSkgaWYgaXQgc2VlcyBhCisgICAgLy8gZG91YmxlLiBTZXRzIE5vbk51bWJlciBpZiBpdCBz
ZWVzIGEgbm9uLW51bWJlci4KKyAgICB2b2lkIGVtaXREZXRlY3RCaXRzTGlnaHQoQ0NhbGxIZWxw
ZXJzJiwgSlNWYWx1ZVJlZ3MsIFRhZ1JlZ2lzdGVyc01vZGUgPSBIYXZlVGFnUmVnaXN0ZXJzKTsK
KyAgICAKKyAgICB2b2lkIGRldGVjdEJpdHNMaWdodChKU1ZhbHVlIHZhbHVlKQorICAgIHsKKyAg
ICAgICAgaWYgKHZhbHVlLmlzSW50MzIoKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
aWYgKHZhbHVlLmlzTnVtYmVyKCkpIHsKKyAgICAgICAgICAgIG1fYnl0ZWNvZGVPZmZzZXRBbmRG
bGFncyB8PSBJbnQzMk92ZXJmbG93IHwgSW50NTJPdmVyZmxvdyB8IE5vbk5lZ1plcm9Eb3VibGUg
fCBOZWdaZXJvRG91YmxlOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAg
IG1fYnl0ZWNvZGVPZmZzZXRBbmRGbGFncyB8PSBOb25OdW1iZXI7CisgICAgfQorICAgIAorICAg
IC8vIFNldHMgKEludDMyT3ZlcmZsb3cgfCBJbnQ1Mk92ZXJmbG93IHwgTm9uTmVnWmVyb0RvdWJs
ZSB8IE5lZ1plcm9Eb3VibGUpLgorICAgIHZvaWQgZW1pdFNldERvdWJsZShDQ2FsbEhlbHBlcnMm
KTsKKyAgICAKKyAgICAvLyBTZXRzIE5vbk51bWJlci4KKyAgICB2b2lkIGVtaXRTZXROb25OdW1i
ZXIoQ0NhbGxIZWxwZXJzJik7CiAKIHByaXZhdGU6CiAgICAgYm9vbCBoYXNCaXRzKGludCBtYXNr
KSBjb25zdCB7IHJldHVybiBtX2J5dGVjb2RlT2Zmc2V0QW5kRmxhZ3MgJiBtYXNrOyB9CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAko
cmV2aXNpb24gMjAwNTE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29k
ZVBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkwNiw0MCArOTA2LDU4IEBAIHByaXZhdGU6
CiAgICAgICAgIGlmICghaXNYODYoKSAmJiBub2RlLT5vcCgpID09IEFyaXRoTW9kKQogICAgICAg
ICAgICAgcmV0dXJuIG5vZGU7CiAKLSAgICAgICAgaWYgKCFtX2lubGluZVN0YWNrVG9wLT5tX3By
b2ZpbGVkQmxvY2stPmxpa2VseVRvVGFrZVNsb3dDYXNlKG1fY3VycmVudEluZGV4KSkKLSAgICAg
ICAgICAgIHJldHVybiBub2RlOworICAgICAgICBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxl
ID0gbV9pbmxpbmVTdGFja1RvcC0+bV9wcm9maWxlZEJsb2NrLT5yZXN1bHRQcm9maWxlRm9yQnl0
ZWNvZGVPZmZzZXQobV9jdXJyZW50SW5kZXgpOworICAgICAgICBpZiAocmVzdWx0UHJvZmlsZSkg
eworICAgICAgICAgICAgc3dpdGNoIChub2RlLT5vcCgpKSB7CisgICAgICAgICAgICBjYXNlIEFy
aXRoQWRkOgorICAgICAgICAgICAgY2FzZSBBcml0aFN1YjoKKyAgICAgICAgICAgIGNhc2UgVmFs
dWVBZGQ6CisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdFByb2ZpbGUtPmRpZE9ic2VydmVEb3Vi
bGUoKSkKKyAgICAgICAgICAgICAgICAgICAgbm9kZS0+bWVyZ2VGbGFncyhOb2RlTWF5SGF2ZURv
dWJsZVJlc3VsdCk7CisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdFByb2ZpbGUtPmRpZE9ic2Vy
dmVOb25OdW1iZXIoKSkKKyAgICAgICAgICAgICAgICAgICAgbm9kZS0+bWVyZ2VGbGFncyhOb2Rl
TWF5SGF2ZU5vbk51bWJlclJlc3VsdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICAgICAgCisgICAgICAgICAgICBjYXNlIEFyaXRoTXVsOiB7CisgICAgICAgICAgICAgICAg
aWYgKHJlc3VsdFByb2ZpbGUtPmRpZE9ic2VydmVJbnQ1Mk92ZXJmbG93KCkpCisgICAgICAgICAg
ICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1heU92ZXJmbG93SW50NTIpOworICAgICAg
ICAgICAgICAgIGlmIChyZXN1bHRQcm9maWxlLT5kaWRPYnNlcnZlSW50MzJPdmVyZmxvdygpIHx8
IG1faW5saW5lU3RhY2tUb3AtPm1fZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJyZW50SW5k
ZXgsIE92ZXJmbG93KSkKKyAgICAgICAgICAgICAgICAgICAgbm9kZS0+bWVyZ2VGbGFncyhOb2Rl
TWF5T3ZlcmZsb3dJbnQzMkluQmFzZWxpbmUpOworICAgICAgICAgICAgICAgIGlmIChyZXN1bHRQ
cm9maWxlLT5kaWRPYnNlcnZlTmVnWmVyb0RvdWJsZSgpIHx8IG1faW5saW5lU3RhY2tUb3AtPm1f
ZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJyZW50SW5kZXgsIE5lZ2F0aXZlWmVybykpCisg
ICAgICAgICAgICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1heU5lZ1plcm9JbkJhc2Vs
aW5lKTsKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0UHJvZmlsZS0+ZGlkT2JzZXJ2ZURvdWJs
ZSgpKQorICAgICAgICAgICAgICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlIYXZlRG91
YmxlUmVzdWx0KTsKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0UHJvZmlsZS0+ZGlkT2JzZXJ2
ZU5vbk51bWJlcigpKQorICAgICAgICAgICAgICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5vZGVN
YXlIYXZlTm9uTnVtYmVyUmVzdWx0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KICAgICAgICAgCi0gICAgICAg
IHN3aXRjaCAobm9kZS0+b3AoKSkgewotICAgICAgICBjYXNlIFVJbnQzMlRvTnVtYmVyOgotICAg
ICAgICBjYXNlIEFyaXRoQWRkOgotICAgICAgICBjYXNlIEFyaXRoU3ViOgotICAgICAgICBjYXNl
IFZhbHVlQWRkOgotICAgICAgICBjYXNlIEFyaXRoTW9kOiAvLyBmb3IgQXJpdGhNb2QgIk1heU92
ZXJmbG93IiBtZWFucyB3ZSB0cmllZCB0byBkaXZpZGUgYnkgemVybywgb3Igd2Ugc2F3IGRvdWJs
ZS4KLSAgICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1heU92ZXJmbG93SW50MzJJbkJh
c2VsaW5lKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgCi0gICAgICAgIGNhc2Ug
QXJpdGhOZWdhdGU6Ci0gICAgICAgICAgICAvLyBDdXJyZW50bHkgd2UgY2FuJ3QgdGVsbCB0aGUg
ZGlmZmVyZW5jZSBiZXR3ZWVuIGEgbmVnYXRpb24gb3ZlcmZsb3dpbmcKLSAgICAgICAgICAgIC8v
IChpLmUuIC0oMSA8PCAzMSkpIG9yIGdlbmVyYXRpbmcgbmVnYXRpdmUgemVybyAoaS5lLiAtMCku
IElmIGl0IHRvb2sgc2xvdwotICAgICAgICAgICAgLy8gcGF0aCB0aGVuIHdlIGFzc3VtZSB0aGF0
IGl0IGRpZCBib3RoIG9mIHRob3NlIHRoaW5ncy4KLSAgICAgICAgICAgIG5vZGUtPm1lcmdlRmxh
Z3MoTm9kZU1heU92ZXJmbG93SW50MzJJbkJhc2VsaW5lKTsKLSAgICAgICAgICAgIG5vZGUtPm1l
cmdlRmxhZ3MoTm9kZU1heU5lZ1plcm9JbkJhc2VsaW5lKTsKLSAgICAgICAgICAgIGJyZWFrOwot
Ci0gICAgICAgIGNhc2UgQXJpdGhNdWw6IHsKLSAgICAgICAgICAgIFJlc3VsdFByb2ZpbGUmIHJl
c3VsdFByb2ZpbGUgPSAqbV9pbmxpbmVTdGFja1RvcC0+bV9wcm9maWxlZEJsb2NrLT5yZXN1bHRQ
cm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQobV9jdXJyZW50SW5kZXgpOwotICAgICAgICAgICAgaWYg
KHJlc3VsdFByb2ZpbGUuZGlkT2JzZXJ2ZUludDUyT3ZlcmZsb3coKSkKLSAgICAgICAgICAgICAg
ICBub2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlPdmVyZmxvd0ludDUyKTsKLSAgICAgICAgICAgIGlm
IChyZXN1bHRQcm9maWxlLmRpZE9ic2VydmVJbnQzMk92ZXJmbG93KCkgfHwgbV9pbmxpbmVTdGFj
a1RvcC0+bV9leGl0UHJvZmlsZS5oYXNFeGl0U2l0ZShtX2N1cnJlbnRJbmRleCwgT3ZlcmZsb3cp
KQorICAgICAgICBpZiAobV9pbmxpbmVTdGFja1RvcC0+bV9wcm9maWxlZEJsb2NrLT5saWtlbHlU
b1Rha2VTbG93Q2FzZShtX2N1cnJlbnRJbmRleCkpIHsKKyAgICAgICAgICAgIHN3aXRjaCAobm9k
ZS0+b3AoKSkgeworICAgICAgICAgICAgY2FzZSBVSW50MzJUb051bWJlcjoKKyAgICAgICAgICAg
IGNhc2UgQXJpdGhBZGQ6CisgICAgICAgICAgICBjYXNlIEFyaXRoU3ViOgorICAgICAgICAgICAg
Y2FzZSBWYWx1ZUFkZDoKKyAgICAgICAgICAgIGNhc2UgQXJpdGhNb2Q6IC8vIGZvciBBcml0aE1v
ZCAiTWF5T3ZlcmZsb3ciIG1lYW5zIHdlIHRyaWVkIHRvIGRpdmlkZSBieSB6ZXJvLCBvciB3ZSBz
YXcgZG91YmxlLgorICAgICAgICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1heU92ZXJm
bG93SW50MzJJbkJhc2VsaW5lKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
ICAgICAKKyAgICAgICAgICAgIGNhc2UgQXJpdGhOZWdhdGU6CisgICAgICAgICAgICAgICAgLy8g
Q3VycmVudGx5IHdlIGNhbid0IHRlbGwgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBhIG5lZ2F0aW9u
IG92ZXJmbG93aW5nCisgICAgICAgICAgICAgICAgLy8gKGkuZS4gLSgxIDw8IDMxKSkgb3IgZ2Vu
ZXJhdGluZyBuZWdhdGl2ZSB6ZXJvIChpLmUuIC0wKS4gSWYgaXQgdG9vayBzbG93CisgICAgICAg
ICAgICAgICAgLy8gcGF0aCB0aGVuIHdlIGFzc3VtZSB0aGF0IGl0IGRpZCBib3RoIG9mIHRob3Nl
IHRoaW5ncy4KICAgICAgICAgICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlPdmVyZmxv
d0ludDMySW5CYXNlbGluZSk7Ci0gICAgICAgICAgICBpZiAocmVzdWx0UHJvZmlsZS5kaWRPYnNl
cnZlTmVnWmVyb0RvdWJsZSgpIHx8IG1faW5saW5lU3RhY2tUb3AtPm1fZXhpdFByb2ZpbGUuaGFz
RXhpdFNpdGUobV9jdXJyZW50SW5kZXgsIE5lZ2F0aXZlWmVybykpCiAgICAgICAgICAgICAgICAg
bm9kZS0+bWVyZ2VGbGFncyhOb2RlTWF5TmVnWmVyb0luQmFzZWxpbmUpOwotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIH0KLQotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgUkVMRUFT
RV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICAKICAg
ICAgICAgcmV0dXJuIG5vZGU7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Zp
eHVwUGhhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Rml4dXBQaGFzZS5jcHAJKHJldmlzaW9uIDIwMDUxNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHRml4dXBQaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzNiw4ICsyMzYsNyBA
QCBwcml2YXRlOgogICAgICAgICBjYXNlIEFyaXRoTXVsOiB7CiAgICAgICAgICAgICBFZGdlJiBs
ZWZ0Q2hpbGQgPSBub2RlLT5jaGlsZDEoKTsKICAgICAgICAgICAgIEVkZ2UmIHJpZ2h0Q2hpbGQg
PSBub2RlLT5jaGlsZDIoKTsKLSAgICAgICAgICAgIGlmIChOb2RlOjpzaG91bGRTcGVjdWxhdGVV
bnR5cGVkRm9yQXJpdGhtZXRpYyhsZWZ0Q2hpbGQubm9kZSgpLCByaWdodENoaWxkLm5vZGUoKSkK
LSAgICAgICAgICAgICAgICAmJiBtX2dyYXBoLmhhc0V4aXRTaXRlKG5vZGUtPm9yaWdpbi5zZW1h
bnRpYywgQmFkVHlwZSkpIHsKKyAgICAgICAgICAgIGlmIChOb2RlOjpzaG91bGRTcGVjdWxhdGVV
bnR5cGVkRm9yQXJpdGhtZXRpYyhsZWZ0Q2hpbGQubm9kZSgpLCByaWdodENoaWxkLm5vZGUoKSkp
IHsKICAgICAgICAgICAgICAgICBmaXhFZGdlPFVudHlwZWRVc2U+KGxlZnRDaGlsZCk7CiAgICAg
ICAgICAgICAgICAgZml4RWRnZTxVbnR5cGVkVXNlPihyaWdodENoaWxkKTsKICAgICAgICAgICAg
ICAgICBub2RlLT5zZXRSZXN1bHQoTm9kZVJlc3VsdEpTKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHR3JhcGguY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHR3JhcGguY3BwCShyZXZpc2lvbiAyMDA1MTcpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0dyYXBoLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQ0Niw0NiArMTQ0
Niw1MCBAQCB2b2lkIEdyYXBoOjplbnN1cmVOYXR1cmFsTG9vcHMoKQogICAgICAgICBtX25hdHVy
YWxMb29wcyA9IHN0ZDo6bWFrZV91bmlxdWU8TmF0dXJhbExvb3BzPigqdGhpcyk7CiB9CiAKLVZh
bHVlUHJvZmlsZSogR3JhcGg6OnZhbHVlUHJvZmlsZUZvcihOb2RlKiBub2RlKQorTWV0aG9kT2ZH
ZXR0aW5nQVZhbHVlUHJvZmlsZSBHcmFwaDo6bWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZUZv
cihOb2RlKiBub2RlKQogewotICAgIGlmICghbm9kZSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7
CisgICAgd2hpbGUgKG5vZGUpIHsKKyAgICAgICAgQ29kZUJsb2NrKiBwcm9maWxlZEJsb2NrID0g
YmFzZWxpbmVDb2RlQmxvY2tGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKTsKICAgICAgICAgCi0g
ICAgQ29kZUJsb2NrKiBwcm9maWxlZEJsb2NrID0gYmFzZWxpbmVDb2RlQmxvY2tGb3Iobm9kZS0+
b3JpZ2luLnNlbWFudGljKTsKKyAgICAgICAgaWYgKG5vZGUtPmhhc0xvY2FsKCp0aGlzKSkgewor
ICAgICAgICAgICAgVmFsdWVQcm9maWxlKiByZXN1bHQgPSBbJl0gKCkgLT4gVmFsdWVQcm9maWxl
KiB7CisgICAgICAgICAgICAgICAgaWYgKCFub2RlLT5sb2NhbCgpLmlzQXJndW1lbnQoKSkKKyAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgICAgICAgICAgaW50IGFy
Z3VtZW50ID0gbm9kZS0+bG9jYWwoKS50b0FyZ3VtZW50KCk7CisgICAgICAgICAgICAgICAgTm9k
ZSogYXJndW1lbnROb2RlID0gbV9hcmd1bWVudHNbYXJndW1lbnRdOworICAgICAgICAgICAgICAg
IGlmICghYXJndW1lbnROb2RlKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KyAgICAgICAgICAgICAgICBpZiAobm9kZS0+dmFyaWFibGVBY2Nlc3NEYXRhKCkgIT0gYXJndW1l
bnROb2RlLT52YXJpYWJsZUFjY2Vzc0RhdGEoKSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisgICAgICAgICAgICAgICAgcmV0dXJuIHByb2ZpbGVkQmxvY2stPnZhbHVlUHJv
ZmlsZUZvckFyZ3VtZW50KGFyZ3VtZW50KTsKKyAgICAgICAgICAgIH0oKTsKKyAgICAgICAgICAg
IGlmIChyZXN1bHQpCisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAg
IAorICAgICAgICAgICAgaWYgKG5vZGUtPm9wKCkgPT0gR2V0TG9jYWwpIHsKKyAgICAgICAgICAg
ICAgICByZXR1cm4gTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZTo6ZnJvbUxhenlPcGVyYW5k
KAorICAgICAgICAgICAgICAgICAgICBwcm9maWxlZEJsb2NrLAorICAgICAgICAgICAgICAgICAg
ICBMYXp5T3BlcmFuZFZhbHVlUHJvZmlsZUtleSgKKyAgICAgICAgICAgICAgICAgICAgICAgIG5v
ZGUtPm9yaWdpbi5zZW1hbnRpYy5ieXRlY29kZUluZGV4LCBub2RlLT5sb2NhbCgpKSk7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0KICAgICAgICAgCi0gICAgaWYgKG5vZGUtPmhhc0xvY2FsKCp0
aGlzKSkgewotICAgICAgICBpZiAoIW5vZGUtPmxvY2FsKCkuaXNBcmd1bWVudCgpKQotICAgICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAgIGludCBhcmd1bWVudCA9IG5vZGUtPmxvY2Fs
KCkudG9Bcmd1bWVudCgpOwotICAgICAgICBOb2RlKiBhcmd1bWVudE5vZGUgPSBtX2FyZ3VtZW50
c1thcmd1bWVudF07Ci0gICAgICAgIGlmICghYXJndW1lbnROb2RlKQotICAgICAgICAgICAgcmV0
dXJuIG51bGxwdHI7Ci0gICAgICAgIGlmIChub2RlLT52YXJpYWJsZUFjY2Vzc0RhdGEoKSAhPSBh
cmd1bWVudE5vZGUtPnZhcmlhYmxlQWNjZXNzRGF0YSgpKQotICAgICAgICAgICAgcmV0dXJuIG51
bGxwdHI7Ci0gICAgICAgIHJldHVybiBwcm9maWxlZEJsb2NrLT52YWx1ZVByb2ZpbGVGb3JBcmd1
bWVudChhcmd1bWVudCk7Ci0gICAgfQorICAgICAgICBpZiAobm9kZS0+aGFzSGVhcFByZWRpY3Rp
b24oKSkKKyAgICAgICAgICAgIHJldHVybiBwcm9maWxlZEJsb2NrLT52YWx1ZVByb2ZpbGVGb3JC
eXRlY29kZU9mZnNldChub2RlLT5vcmlnaW4uc2VtYW50aWMuYnl0ZWNvZGVJbmRleCk7CiAgICAg
ICAgIAotICAgIGlmIChub2RlLT5oYXNIZWFwUHJlZGljdGlvbigpKQotICAgICAgICByZXR1cm4g
cHJvZmlsZWRCbG9jay0+dmFsdWVQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQobm9kZS0+b3JpZ2lu
LnNlbWFudGljLmJ5dGVjb2RlSW5kZXgpOworICAgICAgICBpZiAoUmVzdWx0UHJvZmlsZSogcmVz
dWx0ID0gcHJvZmlsZWRCbG9jay0+cmVzdWx0UHJvZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KG5vZGUt
Pm9yaWdpbi5zZW1hbnRpYy5ieXRlY29kZUluZGV4KSkKKyAgICAgICAgICAgIHJldHVybiByZXN1
bHQ7CiAgICAgICAgIAotICAgIHJldHVybiBudWxscHRyOwotfQotCi1NZXRob2RPZkdldHRpbmdB
VmFsdWVQcm9maWxlIEdyYXBoOjptZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlRm9yKE5vZGUq
IG5vZGUpCi17Ci0gICAgaWYgKCFub2RlKQotICAgICAgICByZXR1cm4gTWV0aG9kT2ZHZXR0aW5n
QVZhbHVlUHJvZmlsZSgpOwotICAgIAotICAgIGlmIChWYWx1ZVByb2ZpbGUqIHZhbHVlUHJvZmls
ZSA9IHZhbHVlUHJvZmlsZUZvcihub2RlKSkKLSAgICAgICAgcmV0dXJuIE1ldGhvZE9mR2V0dGlu
Z0FWYWx1ZVByb2ZpbGUodmFsdWVQcm9maWxlKTsKLSAgICAKLSAgICBpZiAobm9kZS0+b3AoKSA9
PSBHZXRMb2NhbCkgewotICAgICAgICBDb2RlQmxvY2sqIHByb2ZpbGVkQmxvY2sgPSBiYXNlbGlu
ZUNvZGVCbG9ja0Zvcihub2RlLT5vcmlnaW4uc2VtYW50aWMpOwotICAgICAgICAKLSAgICAgICAg
cmV0dXJuIE1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGU6OmZyb21MYXp5T3BlcmFuZCgKLSAg
ICAgICAgICAgIHByb2ZpbGVkQmxvY2ssCi0gICAgICAgICAgICBMYXp5T3BlcmFuZFZhbHVlUHJv
ZmlsZUtleSgKLSAgICAgICAgICAgICAgICBub2RlLT5vcmlnaW4uc2VtYW50aWMuYnl0ZWNvZGVJ
bmRleCwgbm9kZS0+bG9jYWwoKSkpOworICAgICAgICBzd2l0Y2ggKG5vZGUtPm9wKCkpIHsKKyAg
ICAgICAgY2FzZSBJZGVudGl0eToKKyAgICAgICAgY2FzZSBWYWx1ZVJlcDoKKyAgICAgICAgY2Fz
ZSBEb3VibGVSZXA6CisgICAgICAgIGNhc2UgSW50NTJSZXA6CisgICAgICAgICAgICBub2RlID0g
bm9kZS0+Y2hpbGQxKCkubm9kZSgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1
bHQ6CisgICAgICAgICAgICBub2RlID0gbnVsbHB0cjsKKyAgICAgICAgfQogICAgIH0KICAgICAK
ICAgICByZXR1cm4gTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZSgpOwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaAkocmV2aXNpb24gMjAwNTE3KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oCSh3b3JraW5nIGNvcHkpCkBAIC00MDAsNyArNDAw
LDYgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gaGFzRXhpdFNpdGUobm9kZS0+b3JpZ2luLnNl
bWFudGljLCBleGl0S2luZCk7CiAgICAgfQogICAgIAotICAgIFZhbHVlUHJvZmlsZSogdmFsdWVQ
cm9maWxlRm9yKE5vZGUqKTsKICAgICBNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlIG1ldGhv
ZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGVGb3IoTm9kZSopOwogICAgIAogICAgIEJsb2NrSW5kZXgg
bnVtQmxvY2tzKCkgY29uc3QgeyByZXR1cm4gbV9ibG9ja3Muc2l6ZSgpOyB9CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAkocmV2aXNpb24gMjAwNTE3KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTk1MCw2ICs5NTAs
MjEgQEAgc3RydWN0IE5vZGUgewogICAgICAgICByZXR1cm4gcmVzdWx0ICYgfk5vZGVCeXRlY29k
ZU5lZWRzTmVnWmVybzsKICAgICB9CiAKKyAgICBib29sIG1heUhhdmVOb25JbnRSZXN1bHQoKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIG1fZmxhZ3MgJiBOb2RlTWF5SGF2ZU5vbkludFJlc3VsdDsK
KyAgICB9CisgICAgCisgICAgYm9vbCBtYXlIYXZlRG91YmxlUmVzdWx0KCkKKyAgICB7CisgICAg
ICAgIHJldHVybiBtX2ZsYWdzICYgTm9kZU1heUhhdmVEb3VibGVSZXN1bHQ7CisgICAgfQorICAg
IAorICAgIGJvb2wgbWF5SGF2ZU5vbk51bWJlclJlc3VsdCgpCisgICAgeworICAgICAgICByZXR1
cm4gbV9mbGFncyAmIE5vZGVNYXlIYXZlTm9uTnVtYmVyUmVzdWx0OworICAgIH0KKwogICAgIGJv
b2wgaGFzQ29uc3RhbnRCdWZmZXIoKQogICAgIHsKICAgICAgICAgcmV0dXJuIG9wKCkgPT0gTmV3
QXJyYXlCdWZmZXI7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVGbGFn
cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlRmxh
Z3MuY3BwCShyZXZpc2lvbiAyMDA1MTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R05vZGVGbGFncy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg1LDYgKzg1LDEyIEBAIHZvaWQgZHVt
cE5vZGVGbGFncyhQcmludFN0cmVhbSYgYWN0dWFsT3UKICAgICAgICAgICAgIG91dC5wcmludChj
b21tYSwgIlVzZUFzT3RoZXIiKTsKICAgICB9CiAKKyAgICBpZiAoZmxhZ3MgJiBOb2RlTWF5SGF2
ZURvdWJsZVJlc3VsdCkKKyAgICAgICAgb3V0LnByaW50KGNvbW1hLCAiTWF5SGF2ZURvdWJsZVJl
c3VsdCIpOworCisgICAgaWYgKGZsYWdzICYgTm9kZU1heUhhdmVOb25OdW1iZXJSZXN1bHQpCisg
ICAgICAgIG91dC5wcmludChjb21tYSwgIk1heUhhdmVOb25OdW1iZXJSZXN1bHQiKTsKKwogICAg
IGlmIChmbGFncyAmIE5vZGVNYXlPdmVyZmxvd0ludDUyKQogICAgICAgICBvdXQucHJpbnQoY29t
bWEsICJNYXlPdmVyZmxvd0ludDUyIik7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHTm9kZUZsYWdzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdOb2RlRmxhZ3MuaAkocmV2aXNpb24gMjAwNTE3KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdOb2RlRmxhZ3MuaAkod29ya2luZyBjb3B5KQpAQCAtNDgsMjggKzQ4LDMwIEBA
IG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKICNkZWZpbmUgTm9kZUhhc1ZhckFyZ3Mg
ICAgICAgICAgICAgICAgICAgMHgwMDEwCiAgICAgCiAjZGVmaW5lIE5vZGVCZWhhdmlvck1hc2sg
ICAgICAgICAgICAgICAgIDB4MDdlMAorI2RlZmluZSBOb2RlTWF5SGF2ZURvdWJsZVJlc3VsdCAg
ICAgICAgICAweDAwMjAKICNkZWZpbmUgTm9kZU1heU92ZXJmbG93SW50NTIgICAgICAgICAgICAg
MHgwMDQwCiAjZGVmaW5lIE5vZGVNYXlPdmVyZmxvd0ludDMySW5CYXNlbGluZSAgIDB4MDA4MAog
I2RlZmluZSBOb2RlTWF5T3ZlcmZsb3dJbnQzMkluREZHICAgICAgICAweDAxMDAKICNkZWZpbmUg
Tm9kZU1heU5lZ1plcm9JbkJhc2VsaW5lICAgICAgICAgMHgwMjAwCiAjZGVmaW5lIE5vZGVNYXlO
ZWdaZXJvSW5ERkcgICAgICAgICAgICAgIDB4MDQwMAorI2RlZmluZSBOb2RlTWF5SGF2ZU5vbk51
bWJlclJlc3VsdCAgICAgICAweDA4MDAKKyNkZWZpbmUgTm9kZU1heUhhdmVOb25JbnRSZXN1bHQg
ICAgICAgICAgKE5vZGVNYXlIYXZlRG91YmxlUmVzdWx0IHwgTm9kZU1heUhhdmVOb25OdW1iZXJS
ZXN1bHQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotI2RlZmluZSBOb2RlQnl0
ZWNvZGVCYWNrUHJvcE1hc2sgICAgICAgICAweGY4MDAKLSNkZWZpbmUgTm9kZUJ5dGVjb2RlVXNl
Qm90dG9tICAgICAgICAgICAgMHgwMDAwCi0jZGVmaW5lIE5vZGVCeXRlY29kZVVzZXNBc051bWJl
ciAgICAgICAgIDB4MDgwMCAvLyBUaGUgcmVzdWx0IG9mIHRoaXMgY29tcHV0YXRpb24gbWF5IGJl
IHVzZWQgaW4gYSBjb250ZXh0IHRoYXQgb2JzZXJ2ZXMgZnJhY3Rpb25hbCwgb3IgYmlnZ2VyLXRo
YW4taW50MzIsIHJlc3VsdHMuCi0jZGVmaW5lIE5vZGVCeXRlY29kZU5lZWRzTmVnWmVybyAgICAg
ICAgIDB4MTAwMCAvLyBUaGUgcmVzdWx0IG9mIHRoaXMgY29tcHV0YXRpb24gbWF5IGJlIHVzZWQg
aW4gYSBjb250ZXh0IHRoYXQgb2JzZXJ2ZXMgLTAuCi0jZGVmaW5lIE5vZGVCeXRlY29kZVVzZXNB
c090aGVyICAgICAgICAgIDB4MjAwMCAvLyBUaGUgcmVzdWx0IG9mIHRoaXMgY29tcHV0YXRpb24g
bWF5IGJlIHVzZWQgaW4gYSBjb250ZXh0IHRoYXQgZGlzdGluZ3Vpc2hlcyBiZXR3ZWVuIE5hTiBh
bmQgb3RoZXIgdGhpbmdzIChsaWtlIHVuZGVmaW5lZCkuCi0jZGVmaW5lIE5vZGVCeXRlY29kZVVz
ZXNBc1ZhbHVlICAgICAgICAgIChOb2RlQnl0ZWNvZGVVc2VzQXNOdW1iZXIgfCBOb2RlQnl0ZWNv
ZGVOZWVkc05lZ1plcm8gfCBOb2RlQnl0ZWNvZGVVc2VzQXNPdGhlcikKLSNkZWZpbmUgTm9kZUJ5
dGVjb2RlVXNlc0FzSW50ICAgICAgICAgICAgMHg0MDAwIC8vIFRoZSByZXN1bHQgb2YgdGhpcyBj
b21wdXRhdGlvbiBpcyBrbm93biB0byBiZSB1c2VkIGluIGEgY29udGV4dCB0aGF0IHByZWZlcnMs
IGJ1dCBkb2VzIG5vdCByZXF1aXJlLCBpbnRlZ2VyIHZhbHVlcy4KLSNkZWZpbmUgTm9kZUJ5dGVj
b2RlVXNlc0FzQXJyYXlJbmRleCAgICAgMHg4MDAwIC8vIFRoZSByZXN1bHQgb2YgdGhpcyBjb21w
dXRhdGlvbiBpcyBrbm93biB0byBiZSB1c2VkIGluIGEgY29udGV4dCB0aGF0IHN0cm9uZ2x5IHBy
ZWZlcnMgaW50ZWdlciB2YWx1ZXMsIHRvIHRoZSBwb2ludCB0aGF0IHdlIHNob3VsZCBhdm9pZCB1
c2luZyBkb3VibGVzIGlmIGF0IGFsbCBwb3NzaWJsZS4KKyNkZWZpbmUgTm9kZUJ5dGVjb2RlQmFj
a1Byb3BNYXNrICAgICAgICAweDFmMDAwCisjZGVmaW5lIE5vZGVCeXRlY29kZVVzZUJvdHRvbSAg
ICAgICAgICAgMHgwMDAwMAorI2RlZmluZSBOb2RlQnl0ZWNvZGVVc2VzQXNOdW1iZXIgICAgICAg
IDB4MDEwMDAgLy8gVGhlIHJlc3VsdCBvZiB0aGlzIGNvbXB1dGF0aW9uIG1heSBiZSB1c2VkIGlu
IGEgY29udGV4dCB0aGF0IG9ic2VydmVzIGZyYWN0aW9uYWwsIG9yIGJpZ2dlci10aGFuLWludDMy
LCByZXN1bHRzLgorI2RlZmluZSBOb2RlQnl0ZWNvZGVOZWVkc05lZ1plcm8gICAgICAgIDB4MDIw
MDAgLy8gVGhlIHJlc3VsdCBvZiB0aGlzIGNvbXB1dGF0aW9uIG1heSBiZSB1c2VkIGluIGEgY29u
dGV4dCB0aGF0IG9ic2VydmVzIC0wLgorI2RlZmluZSBOb2RlQnl0ZWNvZGVVc2VzQXNPdGhlciAg
ICAgICAgIDB4MDQwMDAgLy8gVGhlIHJlc3VsdCBvZiB0aGlzIGNvbXB1dGF0aW9uIG1heSBiZSB1
c2VkIGluIGEgY29udGV4dCB0aGF0IGRpc3Rpbmd1aXNoZXMgYmV0d2VlbiBOYU4gYW5kIG90aGVy
IHRoaW5ncyAobGlrZSB1bmRlZmluZWQpLgorI2RlZmluZSBOb2RlQnl0ZWNvZGVVc2VzQXNWYWx1
ZSAgICAgICAgIChOb2RlQnl0ZWNvZGVVc2VzQXNOdW1iZXIgfCBOb2RlQnl0ZWNvZGVOZWVkc05l
Z1plcm8gfCBOb2RlQnl0ZWNvZGVVc2VzQXNPdGhlcikKKyNkZWZpbmUgTm9kZUJ5dGVjb2RlVXNl
c0FzSW50ICAgICAgICAgICAweDA4MDAwIC8vIFRoZSByZXN1bHQgb2YgdGhpcyBjb21wdXRhdGlv
biBpcyBrbm93biB0byBiZSB1c2VkIGluIGEgY29udGV4dCB0aGF0IHByZWZlcnMsIGJ1dCBkb2Vz
IG5vdCByZXF1aXJlLCBpbnRlZ2VyIHZhbHVlcy4KKyNkZWZpbmUgTm9kZUJ5dGVjb2RlVXNlc0Fz
QXJyYXlJbmRleCAgICAweDEwMDAwIC8vIFRoZSByZXN1bHQgb2YgdGhpcyBjb21wdXRhdGlvbiBp
cyBrbm93biB0byBiZSB1c2VkIGluIGEgY29udGV4dCB0aGF0IHN0cm9uZ2x5IHByZWZlcnMgaW50
ZWdlciB2YWx1ZXMsIHRvIHRoZSBwb2ludCB0aGF0IHdlIHNob3VsZCBhdm9pZCB1c2luZyBkb3Vi
bGVzIGlmIGF0IGFsbCBwb3NzaWJsZS4KIAogI2RlZmluZSBOb2RlQXJpdGhGbGFnc01hc2sgICAg
ICAgICAgICAgICAoTm9kZUJlaGF2aW9yTWFzayB8IE5vZGVCeXRlY29kZUJhY2tQcm9wTWFzaykK
IAotI2RlZmluZSBOb2RlSXNGbHVzaGVkICAgICAgICAgICAgICAgICAgIDB4MTAwMDAgLy8gQ29t
cHV0ZWQgYnkgQ1BTUmV0aHJlYWRpbmdQaGFzZSwgd2lsbCB0ZWxsIHlvdSB3aGljaCBsb2NhbCBu
b2RlcyBhcmUgYmFja3dhcmRzLXJlYWNoYWJsZSBmcm9tIGEgRmx1c2guCisjZGVmaW5lIE5vZGVJ
c0ZsdXNoZWQgICAgICAgICAgICAgICAgICAgMHgyMDAwMCAvLyBDb21wdXRlZCBieSBDUFNSZXRo
cmVhZGluZ1BoYXNlLCB3aWxsIHRlbGwgeW91IHdoaWNoIGxvY2FsIG5vZGVzIGFyZSBiYWNrd2Fy
ZHMtcmVhY2hhYmxlIGZyb20gYSBGbHVzaC4KIAotI2RlZmluZSBOb2RlTWlzY0ZsYWcxICAgICAg
ICAgICAgICAgICAgIDB4MjAwMDAKLSNkZWZpbmUgTm9kZU1pc2NGbGFnMiAgICAgICAgICAgICAg
ICAgICAweDQwMDAwCi0jZGVmaW5lIE5vZGVNaXNjRmxhZzMgICAgICAgICAgICAgICAgICAgMHg4
MDAwMAorI2RlZmluZSBOb2RlTWlzY0ZsYWcxICAgICAgICAgICAgICAgICAgIDB4NDAwMDAKKyNk
ZWZpbmUgTm9kZU1pc2NGbGFnMiAgICAgICAgICAgICAgICAgICAweDgwMDAwCiAKIHR5cGVkZWYg
dWludDMyX3QgTm9kZUZsYWdzOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R09TUkV4aXRDb21waWxlcjMyXzY0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlcjMyXzY0LmNwcAkocmV2aXNpb24gMjAwNTE3KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXIzMl82NC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEx
LCAyMDEzLTIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDExLCAyMDEzLTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMjgsMjggKzEyOCwzMCBAQCB2b2lkIE9T
UkV4aXRDb21waWxlcjo6Y29tcGlsZUV4aXQoY29uc3QgCiAgICAgICAgICAgICB9CiAgICAgICAg
IH0KICAgICAgICAgCi0gICAgICAgIGlmICghIWV4aXQubV92YWx1ZVByb2ZpbGUpIHsKLSAgICAg
ICAgICAgIEVuY29kZWRKU1ZhbHVlKiBidWNrZXQgPSBleGl0Lm1fdmFsdWVQcm9maWxlLmdldFNw
ZWNGYWlsQnVja2V0KDApOwotICAgICAgICAKKyAgICAgICAgaWYgKE1ldGhvZE9mR2V0dGluZ0FW
YWx1ZVByb2ZpbGUgcHJvZmlsZSA9IGV4aXQubV92YWx1ZVByb2ZpbGUpIHsKICAgICAgICAgICAg
IGlmIChleGl0Lm1fanNWYWx1ZVNvdXJjZS5pc0FkZHJlc3MoKSkgewogICAgICAgICAgICAgICAg
IC8vIFNhdmUgYSByZWdpc3RlciBzbyB3ZSBjYW4gdXNlIGl0LgotICAgICAgICAgICAgICAgIEdQ
UlJlZyBzY3JhdGNoID0gQXNzZW1ibHlIZWxwZXJzOjpzZWxlY3RTY3JhdGNoR1BSKGV4aXQubV9q
c1ZhbHVlU291cmNlLmJhc2UoKSk7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAg
bV9qaXQucHVzaChzY3JhdGNoKTsKKyAgICAgICAgICAgICAgICBHUFJSZWcgc2NyYXRjaFBheWxv
YWQgPSBBc3NlbWJseUhlbHBlcnM6OnNlbGVjdFNjcmF0Y2hHUFIoZXhpdC5tX2pzVmFsdWVTb3Vy
Y2UuYmFzZSgpKTsKKyAgICAgICAgICAgICAgICBHUFJSZWcgc2NyYXRjaFRhZyA9IEFzc2VtYmx5
SGVscGVyczo6c2VsZWN0U2NyYXRjaEdQUihleGl0Lm1fanNWYWx1ZVNvdXJjZS5iYXNlKCksIHNj
cmF0Y2hQYXlsb2FkKTsKKyAgICAgICAgICAgICAgICBtX2ppdC5wdXNoVG9TYXZlKHNjcmF0Y2hQ
YXlsb2FkKTsKKyAgICAgICAgICAgICAgICBtX2ppdC5wdXNoVG9TYXZlKHNjcmF0Y2hUYWcpOwog
Ci0gICAgICAgICAgICAgICAgbV9qaXQubG9hZDMyKGV4aXQubV9qc1ZhbHVlU291cmNlLmFzQWRk
cmVzcyhPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRvciwgYXNCaXRzLnRhZykp
LCBzY3JhdGNoKTsKLSAgICAgICAgICAgICAgICBtX2ppdC5zdG9yZTMyKHNjcmF0Y2gsICZiaXR3
aXNlX2Nhc3Q8RW5jb2RlZFZhbHVlRGVzY3JpcHRvcio+KGJ1Y2tldCktPmFzQml0cy50YWcpOwot
ICAgICAgICAgICAgICAgIG1faml0LmxvYWQzMihleGl0Lm1fanNWYWx1ZVNvdXJjZS5hc0FkZHJl
c3MoT0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0cy5wYXlsb2Fk
KSksIHNjcmF0Y2gpOwotICAgICAgICAgICAgICAgIG1faml0LnN0b3JlMzIoc2NyYXRjaCwgJmJp
dHdpc2VfY2FzdDxFbmNvZGVkVmFsdWVEZXNjcmlwdG9yKj4oYnVja2V0KS0+YXNCaXRzLnBheWxv
YWQpOworICAgICAgICAgICAgICAgIEpTVmFsdWVSZWdzIHNjcmF0Y2goc2NyYXRjaFRhZywgc2Ny
YXRjaFBheWxvYWQpOwogICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIG1faml0LnBv
cChzY3JhdGNoKTsKKyAgICAgICAgICAgICAgICBtX2ppdC5sb2FkVmFsdWUoZXhpdC5tX2pzVmFs
dWVTb3VyY2UuYXNBZGRyZXNzKCksIHNjcmF0Y2gpOworICAgICAgICAgICAgICAgIHByb2ZpbGUu
ZW1pdFJlcG9ydFZhbHVlKG1faml0LCBzY3JhdGNoKTsKKyAgICAgICAgICAgICAgICAKKyAgICAg
ICAgICAgICAgICBtX2ppdC5wb3BUb1Jlc3RvcmUoc2NyYXRjaFRhZyk7CisgICAgICAgICAgICAg
ICAgbV9qaXQucG9wVG9SZXN0b3JlKHNjcmF0Y2hQYXlsb2FkKTsKICAgICAgICAgICAgIH0gZWxz
ZSBpZiAoZXhpdC5tX2pzVmFsdWVTb3VyY2UuaGFzS25vd25UYWcoKSkgewotICAgICAgICAgICAg
ICAgIG1faml0LnN0b3JlMzIoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIoZXhpdC5tX2pz
VmFsdWVTb3VyY2UudGFnKCkpLCAmYml0d2lzZV9jYXN0PEVuY29kZWRWYWx1ZURlc2NyaXB0b3Iq
PihidWNrZXQpLT5hc0JpdHMudGFnKTsKLSAgICAgICAgICAgICAgICBtX2ppdC5zdG9yZTMyKGV4
aXQubV9qc1ZhbHVlU291cmNlLnBheWxvYWRHUFIoKSwgJmJpdHdpc2VfY2FzdDxFbmNvZGVkVmFs
dWVEZXNjcmlwdG9yKj4oYnVja2V0KS0+YXNCaXRzLnBheWxvYWQpOwotICAgICAgICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICAgICAgICBtX2ppdC5zdG9yZTMyKGV4aXQubV9qc1ZhbHVlU291cmNl
LnRhZ0dQUigpLCAmYml0d2lzZV9jYXN0PEVuY29kZWRWYWx1ZURlc2NyaXB0b3IqPihidWNrZXQp
LT5hc0JpdHMudGFnKTsKLSAgICAgICAgICAgICAgICBtX2ppdC5zdG9yZTMyKGV4aXQubV9qc1Zh
bHVlU291cmNlLnBheWxvYWRHUFIoKSwgJmJpdHdpc2VfY2FzdDxFbmNvZGVkVmFsdWVEZXNjcmlw
dG9yKj4oYnVja2V0KS0+YXNCaXRzLnBheWxvYWQpOwotICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIEdQUlJlZyBzY3JhdGNoVGFnID0gQXNzZW1ibHlIZWxwZXJzOjpzZWxlY3RTY3JhdGNo
R1BSKGV4aXQubV9qc1ZhbHVlU291cmNlLnBheWxvYWRHUFIoKSk7CisgICAgICAgICAgICAgICAg
bV9qaXQucHVzaFRvU2F2ZShzY3JhdGNoVGFnKTsKKyAgICAgICAgICAgICAgICBtX2ppdC5tb3Zl
KEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKGV4aXQubV9qc1ZhbHVlU291cmNlLnRhZygp
KSwgc2NyYXRjaFRhZyk7CisgICAgICAgICAgICAgICAgSlNWYWx1ZVJlZ3MgdmFsdWUoc2NyYXRj
aFRhZywgZXhpdC5tX2pzVmFsdWVTb3VyY2UucGF5bG9hZEdQUigpKTsKKyAgICAgICAgICAgICAg
ICBwcm9maWxlLmVtaXRSZXBvcnRWYWx1ZShtX2ppdCwgdmFsdWUpOworICAgICAgICAgICAgICAg
IG1faml0LnBvcFRvUmVzdG9yZShzY3JhdGNoVGFnKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAg
ICAgICAgICAgICAgIHByb2ZpbGUuZW1pdFJlcG9ydFZhbHVlKG1faml0LCBleGl0Lm1fanNWYWx1
ZVNvdXJjZS5yZWdzKCkpOwogICAgICAgICB9CiAgICAgfQogICAgIApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXI2NC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXI2NC5jcHAJKHJldmlz
aW9uIDIwMDUxNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBp
bGVyNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMSwgMjAxMy0yMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxMSwgMjAxMy0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTM0LDE3ICsxMzQsMTUg
QEAgdm9pZCBPU1JFeGl0Q29tcGlsZXI6OmNvbXBpbGVFeGl0KGNvbnN0IAogICAgICAgICAgICAg
fQogICAgICAgICB9CiAgICAgICAgIAotICAgICAgICBpZiAoISFleGl0Lm1fdmFsdWVQcm9maWxl
KSB7Ci0gICAgICAgICAgICBFbmNvZGVkSlNWYWx1ZSogYnVja2V0ID0gZXhpdC5tX3ZhbHVlUHJv
ZmlsZS5nZXRTcGVjRmFpbEJ1Y2tldCgwKTsKLSAgICAgICAgICAgIAorICAgICAgICBpZiAoTWV0
aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZSBwcm9maWxlID0gZXhpdC5tX3ZhbHVlUHJvZmlsZSkg
ewogICAgICAgICAgICAgaWYgKGV4aXQubV9qc1ZhbHVlU291cmNlLmlzQWRkcmVzcygpKSB7CiAg
ICAgICAgICAgICAgICAgLy8gV2UgY2FuJ3QgYmUgc3VyZSB0aGF0IHdlIGhhdmUgYSBzcGFyZSBy
ZWdpc3Rlci4gU28gdXNlIHRoZSB0YWdUeXBlTnVtYmVyUmVnaXN0ZXIsCiAgICAgICAgICAgICAg
ICAgLy8gc2luY2Ugd2Uga25vdyBob3cgdG8gcmVzdG9yZSBpdC4KICAgICAgICAgICAgICAgICBt
X2ppdC5sb2FkNjQoQXNzZW1ibHlIZWxwZXJzOjpBZGRyZXNzKGV4aXQubV9qc1ZhbHVlU291cmNl
LmFzQWRkcmVzcygpKSwgR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKTsKLSAgICAgICAg
ICAgICAgICBtX2ppdC5zdG9yZTY0KEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3RlciwgYnVj
a2V0KTsKKyAgICAgICAgICAgICAgICBwcm9maWxlLmVtaXRSZXBvcnRWYWx1ZShtX2ppdCwgSlNW
YWx1ZVJlZ3MoR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKSk7CiAgICAgICAgICAgICAg
ICAgbV9qaXQubW92ZShBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW02NChUYWdUeXBlTnVtYmVy
KSwgR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKTsKICAgICAgICAgICAgIH0gZWxzZQot
ICAgICAgICAgICAgICAgIG1faml0LnN0b3JlNjQoZXhpdC5tX2pzVmFsdWVTb3VyY2UuZ3ByKCks
IGJ1Y2tldCk7CisgICAgICAgICAgICAgICAgcHJvZmlsZS5lbWl0UmVwb3J0VmFsdWUobV9qaXQs
IEpTVmFsdWVSZWdzKGV4aXQubV9qc1ZhbHVlU291cmNlLmdwcigpKSk7CiAgICAgICAgIH0KICAg
ICB9CiAgICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9u
cy5jcHAJKHJldmlzaW9uIDIwMDUxNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
T3BlcmF0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2OCwxNyArMjY4LDYgQEAgRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYQogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNOdW1iZXIoc3RhdGljX2Nhc3Q8aW50MzJfdD4oYSA+PiAoYiAmIDB4MWYpKSkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQWRkKEV4ZWNT
dGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZE9wMikKLXsKLSAgICBWTSogdm0gPSAmZXhlYy0+dm0oKTsKLSAgICBOYXRpdmVDYWxsRnJh
bWVUcmFjZXIgdHJhY2VyKHZtLCBleGVjKTsKLSAgICAKLSAgICBKU1ZhbHVlIG9wMSA9IEpTVmFs
dWU6OmRlY29kZShlbmNvZGVkT3AxKTsKLSAgICBKU1ZhbHVlIG9wMiA9IEpTVmFsdWU6OmRlY29k
ZShlbmNvZGVkT3AyKTsKLSAgICAKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQWRkKGV4
ZWMsIG9wMSwgb3AyKSk7Ci19Ci0KIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uVmFsdWVBZGROb3ROdW1iZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKQogewogICAgIFZNKiB2bSA9ICZleGVj
LT52bSgpOwpAQCAtMzA4LDMyICsyOTcsNiBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvblZhCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihhIC8gYikp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsKEV4
ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZE9wMikKLXsKLSAgICBWTSogdm0gPSAmZXhlYy0+dm0oKTsKLSAgICBOYXRpdmVDYWxs
RnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBleGVjKTsKLQotICAgIEpTVmFsdWUgb3AxID0gSlNWYWx1
ZTo6ZGVjb2RlKGVuY29kZWRPcDEpOwotICAgIEpTVmFsdWUgb3AyID0gSlNWYWx1ZTo6ZGVjb2Rl
KGVuY29kZWRPcDIpOwotCi0gICAgZG91YmxlIGEgPSBvcDEudG9OdW1iZXIoZXhlYyk7Ci0gICAg
ZG91YmxlIGIgPSBvcDIudG9OdW1iZXIoZXhlYyk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc051bWJlcihhICogYikpOwotfQotCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblZhbHVlU3ViKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9w
MSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikKLXsKLSAgICBWTSogdm0gPSAmZXhlYy0+dm0o
KTsKLSAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBleGVjKTsKLSAgICAKLSAg
ICBKU1ZhbHVlIG9wMSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AxKTsKLSAgICBKU1ZhbHVl
IG9wMiA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AyKTsKLQotICAgIGRvdWJsZSBhID0gb3Ax
LnRvTnVtYmVyKGV4ZWMpOwotICAgIGRvdWJsZSBiID0gb3AyLnRvTnVtYmVyKGV4ZWMpOwotICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoYSAtIGIpKTsKLX0KLQogc3RhdGljIEFM
V0FZU19JTkxJTkUgRW5jb2RlZEpTVmFsdWUgZ2V0QnlWYWwoRXhlY1N0YXRlKiBleGVjLCBKU0Nl
bGwqIGJhc2UsIHVpbnQzMl90IGluZGV4KQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaAkocmV2aXNpb24g
MjAwNTE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmgJKHdv
cmtpbmcgY29weSkKQEAgLTUxLDExICs1MSw4IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uVmEKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFs
dWVCaXRMU2hpZnQoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZE9wMikgV1RGX0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25WYWx1ZUJpdFJTaGlmdChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSBXVEZfSU5URVJOQUw7CiBF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQml0VVJTaGlmdChFeGVj
U3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
T3AyKSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
blZhbHVlQWRkKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRPcDIpIFdURl9JTlRFUk5BTDsKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uVmFsdWVBZGROb3ROdW1iZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikgV1RGX0lOVEVSTkFMOwog
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZURpdihFeGVjU3RhdGUq
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSBX
VEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVl
TXVsKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRPcDIpIFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uVmFsdWVTdWIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikgV1RGX0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeVZhbChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFByb3BlcnR5KSBXVEZfSU5URVJO
QUw7CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5VmFsQ2VsbChF
eGVjU3RhdGUqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkUHJvcGVydHkpIFdURl9J
TlRFUk5BTDsKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlWYWxB
cnJheUludChFeGVjU3RhdGUqLCBKU0FycmF5KiwgaW50MzJfdCkgV1RGX0lOVEVSTkFMOwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFz
ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0
aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAJKHJldmlzaW9uIDIwMDUxNykKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xOTEsMTMgKzE5MSwxNiBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAg
ICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY0ludDUyT25seSk7CiAgICAgICAg
ICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVy
Z2VQcmVkaWN0aW9uKHNwZWN1bGF0ZWREb3VibGVUeXBlRm9yUHJlZGljdGlvbnMobGVmdCwgcmln
aHQpKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKAotICAgICAgICAgICAgICAgICAgICAh
KGxlZnQgJiAoU3BlY0Z1bGxOdW1iZXIgfCBTcGVjQm9vbGVhbikpCi0gICAgICAgICAgICAgICAg
ICAgIHx8ICEocmlnaHQgJiAoU3BlY0Z1bGxOdW1iZXIgfCBTcGVjQm9vbGVhbikpKSB7CisgICAg
ICAgICAgICAgICAgfSBlbHNlIGlmIChpc1N0cmluZ09yU3RyaW5nT2JqZWN0U3BlY3VsYXRpb24o
bGVmdCkgJiYgaXNTdHJpbmdPclN0cmluZ09iamVjdFNwZWN1bGF0aW9uKHJpZ2h0KSkgewogICAg
ICAgICAgICAgICAgICAgICAvLyBsZWZ0IG9yIHJpZ2h0IGlzIGRlZmluaXRlbHkgc29tZXRoaW5n
IG90aGVyIHRoYW4gYSBudW1iZXIuCiAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVy
Z2VQcmVkaWN0aW9uKFNwZWNTdHJpbmcpOwotICAgICAgICAgICAgICAgIH0gZWxzZQotICAgICAg
ICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjU3RyaW5nIHwgU3Bl
Y0ludDMyT25seSB8IFNwZWNCeXRlY29kZURvdWJsZSk7CisgICAgICAgICAgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY0lu
dDMyT25seSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChub2RlLT5tYXlIYXZlRG91YmxlUmVz
dWx0KCkpCisgICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlv
bihTcGVjQnl0ZWNvZGVEb3VibGUpOworICAgICAgICAgICAgICAgICAgICBpZiAobm9kZS0+bWF5
SGF2ZU5vbk51bWJlclJlc3VsdCgpKQorICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8
PSBtZXJnZVByZWRpY3Rpb24oU3BlY1N0cmluZyk7CisgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTIxMSw4ICsyMTQsMTIg
QEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rp
b24oU3BlY0ludDMyT25seSk7CiAgICAgICAgICAgICAgICAgZWxzZSBpZiAobV9ncmFwaC5hZGRT
aG91bGRTcGVjdWxhdGVBbnlJbnQobm9kZSkpCiAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQg
fD0gbWVyZ2VQcmVkaWN0aW9uKFNwZWNJbnQ1Mk9ubHkpOwotICAgICAgICAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICAgICBlbHNlIGlmIChpc0Z1bGxOdW1iZXJPckJvb2xlYW5TcGVjdWxhdGlv
bihsZWZ0KSAmJiBpc0Z1bGxOdW1iZXJPckJvb2xlYW5TcGVjdWxhdGlvbihyaWdodCkpCiAgICAg
ICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKHNwZWN1bGF0ZWREb3Vi
bGVUeXBlRm9yUHJlZGljdGlvbnMobGVmdCwgcmlnaHQpKTsKKyAgICAgICAgICAgICAgICBlbHNl
IGlmIChub2RlLT5tYXlIYXZlTm9uSW50UmVzdWx0KCkgfHwgKGxlZnQgJiBTcGVjQnl0ZWNvZGVE
b3VibGUpIHx8IChyaWdodCAmIFNwZWNCeXRlY29kZURvdWJsZSkpCisgICAgICAgICAgICAgICAg
ICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKFNwZWNJbnQzMk9ubHkgfCBTcGVjQnl0ZWNv
ZGVEb3VibGUpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgY2hh
bmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY0ludDMyT25seSk7CiAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtMjMwLDggKzIzNywxMCBAQCBwcml2YXRl
OgogICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3Bl
Y0ludDUyT25seSk7CiAgICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAg
ICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKHNwZWN1bGF0ZWREb3VibGVUeXBlRm9y
UHJlZGljdGlvbnMobGVmdCwgcmlnaHQpKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAg
ICAgICAgICAgICB9IGVsc2UgaWYgKG5vZGUtPm1heUhhdmVOb25JbnRSZXN1bHQoKSB8fCAobGVm
dCAmIFNwZWNCeXRlY29kZURvdWJsZSkgfHwgKHJpZ2h0ICYgU3BlY0J5dGVjb2RlRG91YmxlKSkK
ICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY0ludDMy
T25seSB8IFNwZWNCeXRlY29kZURvdWJsZSk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjSW50MzJPbmx5KTsK
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC0yNjcsNiAr
Mjc2LDEwIEBAIHByaXZhdGU6CiAgICAgICAgICAgICBTcGVjdWxhdGVkVHlwZSByaWdodCA9IG5v
ZGUtPmNoaWxkMigpLT5wcmVkaWN0aW9uKCk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGlm
IChsZWZ0ICYmIHJpZ2h0KSB7CisgICAgICAgICAgICAgICAgLy8gRklYTUU6IFdlJ3JlIGN1cnJl
bnRseSByZWx5aW5nIG9uIHByZWRpY3Rpb24gcHJvcGFnYXRpb24gYW5kIGJhY2t3YXJkcyBwcm9w
YWdhdGlvbgorICAgICAgICAgICAgICAgIC8vIHdoZW5ldmVyIHdlIGNhbiwgYW5kIG9ubHkgZmFs
bGluZyBiYWNrIG9uIHJlc3VsdCBmbGFncyBpZiB0aGF0IGZhaWxzLiBBbmQgdGhlIHJlc3VsdAor
ICAgICAgICAgICAgICAgIC8vIGZsYWdzIGxvZ2ljIGRvZXNuJ3Qga25vdyBob3cgdG8gdXNlIGJh
Y2t3YXJkcyBwcm9wYWdhdGlvbi4gV2Ugc2hvdWxkIGdldCByaWQgb2YgdGhlCisgICAgICAgICAg
ICAgICAgLy8gcHJlZGljdGlvbiBwcm9wYWdhdGlvbiBsb2dpYyBhbmQgcmVseSBzb2xlbHkgb24g
dGhlIHJlc3VsdCB0eXBlLgogICAgICAgICAgICAgICAgIGlmIChpc0Z1bGxOdW1iZXJPckJvb2xl
YW5TcGVjdWxhdGlvbkV4cGVjdGluZ0RlZmluZWQobGVmdCkKICAgICAgICAgICAgICAgICAgICAg
JiYgaXNGdWxsTnVtYmVyT3JCb29sZWFuU3BlY3VsYXRpb25FeHBlY3RpbmdEZWZpbmVkKHJpZ2h0
KSkgewogICAgICAgICAgICAgICAgICAgICBpZiAobV9ncmFwaC5iaW5hcnlBcml0aFNob3VsZFNw
ZWN1bGF0ZUludDMyKG5vZGUsIG1fcGFzcykpCkBAIC0yNzUsOCArMjg4LDE0IEBAIHByaXZhdGU6
CiAgICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVj
SW50NTJPbmx5KTsKICAgICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAg
ICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oc3BlY3VsYXRlZERvdWJsZVR5cGVGb3JQ
cmVkaWN0aW9ucyhsZWZ0LCByaWdodCkpOwotICAgICAgICAgICAgICAgIH0gZWxzZQotICAgICAg
ICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjSW50MzJPbmx5IHwg
U3BlY0J5dGVjb2RlRG91YmxlKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAg
ICAgICAgICAgICBpZiAobm9kZS0+bWF5SGF2ZU5vbkludFJlc3VsdCgpCisgICAgICAgICAgICAg
ICAgICAgICAgICB8fCAobGVmdCAmIFNwZWNCeXRlY29kZURvdWJsZSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHx8IChyaWdodCAmIFNwZWNCeXRlY29kZURvdWJsZSkpCisgICAgICAgICAgICAg
ICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjSW50MzJPbmx5IHwgU3Bl
Y0J5dGVjb2RlRG91YmxlKTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
ICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY0ludDMyT25seSk7Cisg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklULmgJKHJldmlzaW9uIDIwMDUxNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQuaAkod29ya2luZyBjb3B5KQpAQCAtMTY3MiwyMyArMTY3Miw2IEBAIHB1
YmxpYzoKICAgICB9CiAjZWxzZSAvLyBVU0UoSlNWQUxVRTMyXzY0KQogCi0vLyBFbmNvZGVkSlNW
YWx1ZSBpbiBKU1ZBTFVFMzJfNjQgaXMgYSA2NC1iaXQgaW50ZWdlci4gV2hlbiBiZWluZyBjb21w
aWxlZCBpbiBBUk0gRUFCSSwgaXQgbXVzdCBiZSBhbGlnbmVkIG9uIGFuIGV2ZW4tbnVtYmVyZWQg
cmVnaXN0ZXIgKHIwLCByMiBvciBbc3BdKS4KLS8vIFRvIHByZXZlbnQgdGhlIGFzc2VtYmxlciBm
cm9tIHVzaW5nIHdyb25nIHJlZ2lzdGVycywgbGV0J3Mgb2NjdXB5IHIxIG9yIHIzIHdpdGggYSBk
dW1teSBhcmd1bWVudCB3aGVuIG5lY2Vzc2FyeS4KLSNpZiAoQ09NUElMRVJfU1VQUE9SVFMoRUFC
SSkgJiYgQ1BVKEFSTSkpIHx8IENQVShNSVBTKQotI2RlZmluZSBFQUJJXzMyQklUX0RVTU1ZX0FS
RyAgICAgIFRydXN0ZWRJbW0zMigwKSwKLSNlbHNlCi0jZGVmaW5lIEVBQklfMzJCSVRfRFVNTVlf
QVJHCi0jZW5kaWYKLQotLy8gSlNWQUxVRTMyXzY0IGlzIGEgNjQtYml0IGludGVnZXIgdGhhdCBj
YW5ub3QgYmUgcHV0IGhhbGYgaW4gYW4gYXJndW1lbnQgcmVnaXN0ZXIgYW5kIGhhbGYgb24gc3Rh
Y2sgd2hlbiB1c2luZyBTSDQgYXJjaGl0ZWN0dXJlLgotLy8gVG8gYXZvaWQgdGhpcywgbGV0J3Mg
b2NjdXB5IHRoZSA0dGggYXJndW1lbnQgcmVnaXN0ZXIgKHI3KSB3aXRoIGEgZHVtbXkgYXJndW1l
bnQgd2hlbiBuZWNlc3NhcnkuIFRoaXMgbXVzdCBvbmx5IGJlIGRvbmUgd2hlbiB0aGVyZQotLy8g
aXMgbm8gb3RoZXIgMzItYml0IHZhbHVlIGFyZ3VtZW50IGJlaGluZCB0aGlzIDY0LWJpdCBKU1Zh
bHVlLgotI2lmIENQVShTSDQpCi0jZGVmaW5lIFNINF8zMkJJVF9EVU1NWV9BUkcgICAgICBUcnVz
dGVkSW1tMzIoMCksCi0jZWxzZQotI2RlZmluZSBTSDRfMzJCSVRfRFVNTVlfQVJHCi0jZW5kaWYK
LQogICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRU9K
SVVpIG9wZXJhdGlvbiwgR1BSUmVnIGFyZzEsIEdQUlJlZyBhcmcyVGFnLCBHUFJSZWcgYXJnMlBh
eWxvYWQsIFVuaXF1ZWRTdHJpbmdJbXBsKiBpbXBsLCB1bnNpZ25lZCB2YWx1ZSkKICAgICB7CiAg
ICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLCBhcmcyUGF5bG9h
ZCwgYXJnMlRhZywgVHJ1c3RlZEltbVB0cihpbXBsKSwgVHJ1c3RlZEltbTMyKHZhbHVlKSk7CkBA
IC0yMTEzLDggKzIwOTYsNiBAQCBwdWJsaWM6CiAgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRz
V2l0aEV4ZWNTdGF0ZShhcmcxLCBUcnVzdGVkSW1tUHRyKGlkZW50T3AyKSwgVHJ1c3RlZEltbTMy
KG9wMyksIGFyZzQsIGFyZzUpOwogICAgICAgICByZXR1cm4gYXBwZW5kQ2FsbChvcGVyYXRpb24p
OwogICAgIH0KLSN1bmRlZiBFQUJJXzMyQklUX0RVTU1ZX0FSRwotI3VuZGVmIFNINF8zMkJJVF9E
VU1NWV9BUkcKICAgICAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdGlvblR5cGU+CiAgICAg
SklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbigKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMT1NSRXhpdENvbXBpbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4aXRDb21waWxlci5jcHAJKHJldmlzaW9uIDIwMDUxNykK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhpdENvbXBpbGVyLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAx
NSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMt
MjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTI4NCw4ICsyODQsOCBAQCBzdGF0aWMgdm9pZCBjb21waWxlU3R1YigK
ICAgICAgICAgICAgIH0KICAgICAgICAgfQogCi0gICAgICAgIGlmICghIWV4aXQubV9kZXNjcmlw
dG9yLT5tX3ZhbHVlUHJvZmlsZSkKLSAgICAgICAgICAgIGppdC5zdG9yZTY0KEdQUkluZm86OnJl
Z1QwLCBleGl0Lm1fZGVzY3JpcHRvci0+bV92YWx1ZVByb2ZpbGUuZ2V0U3BlY0ZhaWxCdWNrZXQo
MCkpOworICAgICAgICBpZiAoZXhpdC5tX2Rlc2NyaXB0b3ItPm1fdmFsdWVQcm9maWxlKQorICAg
ICAgICAgICAgZXhpdC5tX2Rlc2NyaXB0b3ItPm1fdmFsdWVQcm9maWxlLmVtaXRSZXBvcnRWYWx1
ZShqaXQsIEpTVmFsdWVSZWdzKEdQUkluZm86OnJlZ1QwKSk7CiAgICAgfQogCiAgICAgLy8gTWF0
ZXJpYWxpemUgYWxsIG9iamVjdHMuIERvbid0IG1hdGVyaWFsaXplIGFuIG9iamVjdCB1bnRpbCBh
bGwKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaAko
cmV2aXNpb24gMjAwNTE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhl
bHBlcnMuaAkod29ya2luZyBjb3B5KQpAQCAtNjUzLDExICs2NTMsNiBAQCBwdWJsaWM6CiAjZW5k
aWYKICAgICB9CiAKLSAgICBlbnVtIFRhZ1JlZ2lzdGVyc01vZGUgewotICAgICAgICBEb05vdEhh
dmVUYWdSZWdpc3RlcnMsCi0gICAgICAgIEhhdmVUYWdSZWdpc3RlcnMKLSAgICB9OwotCiAgICAg
SnVtcCBicmFuY2hJZk5vdENlbGwoR1BSUmVnIHJlZywgVGFnUmVnaXN0ZXJzTW9kZSBtb2RlID0g
SGF2ZVRhZ1JlZ2lzdGVycykKICAgICB7CiAjaWYgVVNFKEpTVkFMVUU2NCkKQEAgLTc4Myw2ICs3
NzgsMTggQEAgcHVibGljOgogI2VuZGlmCiAgICAgfQogCisgICAgSnVtcCBicmFuY2hJZk5vdERv
dWJsZUtub3duTm90SW50MzIoSlNWYWx1ZVJlZ3MgcmVncywgVGFnUmVnaXN0ZXJzTW9kZSBtb2Rl
ID0gSGF2ZVRhZ1JlZ2lzdGVycykKKyAgICB7CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICAgICAg
aWYgKG1vZGUgPT0gSGF2ZVRhZ1JlZ2lzdGVycykKKyAgICAgICAgICAgIHJldHVybiBicmFuY2hU
ZXN0NjQoWmVybywgcmVncy5ncHIoKSwgR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKTsK
KyAgICAgICAgcmV0dXJuIGJyYW5jaFRlc3Q2NChaZXJvLCByZWdzLmdwcigpLCBUcnVzdGVkSW1t
NjQoVGFnVHlwZU51bWJlcikpOworI2Vsc2UKKyAgICAgICAgVU5VU0VEX1BBUkFNKG1vZGUpOwor
ICAgICAgICByZXR1cm4gYnJhbmNoMzIoQWJvdmVPckVxdWFsLCByZWdzLnRhZ0dQUigpLCBUcnVz
dGVkSW1tMzIoSlNWYWx1ZTo6TG93ZXN0VGFnKSk7CisjZW5kaWYKKyAgICB9CisKICAgICAvLyBO
b3RlIHRoYXQgdGhlIHRlbXBHUFIgaXMgbm90IHVzZWQgaW4gMzItYml0IG1vZGUuCiAgICAgSnVt
cCBicmFuY2hJZkJvb2xlYW4oSlNWYWx1ZVJlZ3MgcmVncywgR1BSUmVnIHRlbXBHUFIpCiAgICAg
ewpAQCAtODQ4LDcgKzg1NSw4IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBKdW1wTGlzdCBicmFu
Y2hJZk5vdFR5cGUoCi0gICAgICAgIEpTVmFsdWVSZWdzLCBHUFJSZWcgdGVtcEdQUiwgY29uc3Qg
SW5mZXJyZWRUeXBlOjpEZXNjcmlwdG9yJiwgVGFnUmVnaXN0ZXJzTW9kZSk7CisgICAgICAgIEpT
VmFsdWVSZWdzLCBHUFJSZWcgdGVtcEdQUiwgY29uc3QgSW5mZXJyZWRUeXBlOjpEZXNjcmlwdG9y
JiwKKyAgICAgICAgVGFnUmVnaXN0ZXJzTW9kZSA9IEhhdmVUYWdSZWdpc3RlcnMpOwogCiAgICAg
dGVtcGxhdGU8dHlwZW5hbWUgVD4KICAgICBKdW1wIGJyYW5jaFN0cnVjdHVyZShSZWxhdGlvbmFs
Q29uZGl0aW9uIGNvbmRpdGlvbiwgVCBsZWZ0SGFuZFNpZGUsIFN0cnVjdHVyZSogc3RydWN0dXJl
KQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5oCShyZXZpc2lv
biAyMDA1MTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5oCSh3
b3JraW5nIGNvcHkpCkBAIC00MCw2ICs0MCwyMyBAQCBuYW1lc3BhY2UgSlNDIHsKICNkZWZpbmUg
UE9LRV9BUkdVTUVOVF9PRkZTRVQgMAogI2VuZGlmCiAKKy8vIEVuY29kZWRKU1ZhbHVlIGluIEpT
VkFMVUUzMl82NCBpcyBhIDY0LWJpdCBpbnRlZ2VyLiBXaGVuIGJlaW5nIGNvbXBpbGVkIGluIEFS
TSBFQUJJLCBpdCBtdXN0IGJlIGFsaWduZWQgZXZlbi1udW1iZXJlZCByZWdpc3RlciAocjAsIHIy
IG9yIFtzcF0pLgorLy8gVG8gYXZvaWQgYXNzZW1ibGllcyBmcm9tIHVzaW5nIHdyb25nIHJlZ2lz
dGVycywgbGV0J3Mgb2NjdXB5IHIxIG9yIHIzIHdpdGggYSBkdW1teSBhcmd1bWVudCB3aGVuIG5l
Y2Vzc2FyeS4KKyNpZiAoQ09NUElMRVJfU1VQUE9SVFMoRUFCSSkgJiYgQ1BVKEFSTSkpIHx8IENQ
VShNSVBTKQorI2RlZmluZSBFQUJJXzMyQklUX0RVTU1ZX0FSRyAgICAgIFRydXN0ZWRJbW0zMigw
KSwKKyNlbHNlCisjZGVmaW5lIEVBQklfMzJCSVRfRFVNTVlfQVJHCisjZW5kaWYKKworLy8gSlNW
QUxVRTMyXzY0IGlzIGEgNjQtYml0IGludGVnZXIgdGhhdCBjYW5ub3QgYmUgcHV0IGhhbGYgaW4g
YW4gYXJndW1lbnQgcmVnaXN0ZXIgYW5kIGhhbGYgb24gc3RhY2sgd2hlbiB1c2luZyBTSDQgYXJj
aGl0ZWN0dXJlLgorLy8gVG8gYXZvaWQgdGhpcywgbGV0J3Mgb2NjdXB5IHRoZSA0dGggYXJndW1l
bnQgcmVnaXN0ZXIgKHI3KSB3aXRoIGEgZHVtbXkgYXJndW1lbnQgd2hlbiBuZWNlc3NhcnkuIFRo
aXMgbXVzdCBvbmx5IGJlIGRvbmUgd2hlbiB0aGVyZQorLy8gaXMgbm8gb3RoZXIgMzItYml0IHZh
bHVlIGFyZ3VtZW50IGJlaGluZCB0aGlzIDY0LWJpdCBKU1ZhbHVlLgorI2lmIENQVShTSDQpCisj
ZGVmaW5lIFNINF8zMkJJVF9EVU1NWV9BUkcgICAgICBUcnVzdGVkSW1tMzIoMCksCisjZWxzZQor
I2RlZmluZSBTSDRfMzJCSVRfRFVNTVlfQVJHCisjZW5kaWYKKwogY2xhc3MgQ0NhbGxIZWxwZXJz
IDogcHVibGljIEFzc2VtYmx5SGVscGVycyB7CiBwdWJsaWM6CiAgICAgQ0NhbGxIZWxwZXJzKFZN
KiB2bSwgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSAwKQpAQCAtMjEyMiw2ICsyMTM5LDE1IEBAIHB1
YmxpYzoKICAgICB9CiAjZW5kaWYKICAgICAKKyAgICB2b2lkIHNldHVwQXJndW1lbnRzV2l0aEV4
ZWNTdGF0ZShKU1ZhbHVlUmVncyBhcmcxLCBKU1ZhbHVlUmVncyBhcmcyLCBUcnVzdGVkSW1tUHRy
IGFyZzMpCisgICAgeworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgICAgIHNldHVwQXJndW1lbnRz
V2l0aEV4ZWNTdGF0ZShhcmcxLmdwcigpLCBhcmcyLmdwcigpLCBhcmczKTsKKyNlbHNlCisgICAg
ICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShFQUJJXzMyQklUX0RVTU1ZX0FSRyBhcmcx
LnBheWxvYWRHUFIoKSwgYXJnMS50YWdHUFIoKSwgYXJnMi5wYXlsb2FkR1BSKCksIGFyZzIudGFn
R1BSKCksIGFyZzMpOworI2VuZGlmCisgICAgfQorICAgIAogICAgIHZvaWQgc2V0dXBBcmd1bWVu
dHMoSlNWYWx1ZVJlZ3MgYXJnMSkKICAgICB7CiAjaWYgVVNFKEpTVkFMVUU2NCkKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvR1BSSW5mby5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvR1BSSW5mby5oCShyZXZpc2lvbiAyMDA1MTcpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0dQUkluZm8uaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTMtMjAxNSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTMtMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTEzOSw2ICsxMzksMTEgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gbV9iYXNlOwogICAg
IH0KICAgICAKKyAgICBKU1ZhbHVlUmVncyByZWdzKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJl
dHVybiBKU1ZhbHVlUmVncyhncHIoKSk7CisgICAgfQorICAgIAogICAgIE1hY3JvQXNzZW1ibGVy
OjpBZGRyZXNzIGFzQWRkcmVzcygpIGNvbnN0IHsgcmV0dXJuIE1hY3JvQXNzZW1ibGVyOjpBZGRy
ZXNzKGJhc2UoKSwgb2Zmc2V0KCkpOyB9CiAgICAgCiBwcml2YXRlOgpAQCAtMzA2LDYgKzMxMSwx
MSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQzMl90PihtX3RhZ1R5
cGUpOwogICAgIH0KICAgICAKKyAgICBKU1ZhbHVlUmVncyByZWdzKCkgY29uc3QKKyAgICB7Cisg
ICAgICAgIHJldHVybiBKU1ZhbHVlUmVncyh0YWdHUFIoKSwgcGF5bG9hZEdQUigpKTsKKyAgICB9
CisgICAgCiAgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MgYXNBZGRyZXNzKHVuc2lnbmVkIGFk
ZGl0aW9uYWxPZmZzZXQgPSAwKSBjb25zdCB7IHJldHVybiBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVz
cyhiYXNlKCksIG9mZnNldCgpICsgYWRkaXRpb25hbE9mZnNldCk7IH0KICAgICAKIHByaXZhdGU6
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0ludHJpbnNpY0VtaXR0ZXIuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSW50cmluc2ljRW1pdHRlci5j
cHAJKHJldmlzaW9uIDIwMDUxNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSW50cmlu
c2ljRW1pdHRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNzgsNyArNzgsNyBAQCB2b2lkIEFjY2Vzc0Nh
c2U6OmVtaXRJbnRyaW5zaWNHZXR0ZXIoQWNjCiAgICAgc3dpdGNoIChpbnRyaW5zaWMoKSkgewog
ICAgIGNhc2UgVHlwZWRBcnJheUxlbmd0aEludHJpbnNpYzogewogICAgICAgICBqaXQubG9hZDMy
KE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0YXRlLmJhc2VHUFIsIEpTQXJyYXlCdWZmZXJWaWV3
OjpvZmZzZXRPZkxlbmd0aCgpKSwgdmFsdWVHUFIpOwotICAgICAgICBqaXQuYm94SW50MzIodmFs
dWVHUFIsIHZhbHVlUmVncywgQ0NhbGxIZWxwZXJzOjpEb05vdEhhdmVUYWdSZWdpc3RlcnMpOwor
ICAgICAgICBqaXQuYm94SW50MzIodmFsdWVHUFIsIHZhbHVlUmVncyk7CiAgICAgICAgIHN0YXRl
LnN1Y2NlZWQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTkzLDcgKzkzLDcgQEAgdm9p
ZCBBY2Nlc3NDYXNlOjplbWl0SW50cmluc2ljR2V0dGVyKEFjYwogICAgICAgICAgICAgaml0Lmxz
aGlmdDMyKHZhbHVlR1BSLCBJbW0zMihsb2dFbGVtZW50U2l6ZSh0eXBlKSksIHZhbHVlR1BSKTsK
ICAgICAgICAgfQogCi0gICAgICAgIGppdC5ib3hJbnQzMih2YWx1ZUdQUiwgdmFsdWVSZWdzLCBD
Q2FsbEhlbHBlcnM6OkRvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7CisgICAgICAgIGppdC5ib3hJbnQz
Mih2YWx1ZUdQUiwgdmFsdWVSZWdzKTsKICAgICAgICAgc3RhdGUuc3VjY2VlZCgpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQpAQCAtMTE5LDcgKzExOSw3IEBAIHZvaWQgQWNjZXNzQ2FzZTo6ZW1p
dEludHJpbnNpY0dldHRlcihBY2MKICAgICAgICAgCiAgICAgICAgIGRvbmUubGluaygmaml0KTsK
ICAgICAgICAgCi0gICAgICAgIGppdC5ib3hJbnQzMih2YWx1ZUdQUiwgdmFsdWVSZWdzLCBDQ2Fs
bEhlbHBlcnM6OkRvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7CisgICAgICAgIGppdC5ib3hJbnQzMih2
YWx1ZUdQUiwgdmFsdWVSZWdzKTsKICAgICAgICAgc3RhdGUuc3VjY2VlZCgpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCShyZXZpc2lvbiAyMDA1
MTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCSh3b3JraW5nIGNvcHkpCkBA
IC03NTAsNiArNzUwLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAjZW5kaWYKICAgICAgICAgTWFjcm9B
c3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkksIGludCwgR1BS
UmVnLCBVbmlxdWVkU3RyaW5nSW1wbCopOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBj
YWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSiwgaW50LCBHUFJSZWcsIEdQUlJlZyk7Cisg
ICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25f
RUpKUnAsIEpTVmFsdWVSZWdzLCBKU1ZhbHVlUmVncywgSlNWYWx1ZVJlZ3MsIFJlc3VsdFByb2Zp
bGUqKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9w
ZXJhdGlvbl9FSkpBcCwgaW50LCBHUFJSZWcsIEdQUlJlZywgQXJyYXlQcm9maWxlKik7CiAgICAg
ICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpK
QnksIGludCwgR1BSUmVnLCBHUFJSZWcsIEJ5VmFsSW5mbyopOwogICAgICAgICBNYWNyb0Fzc2Vt
Ymxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFpfSklUT3BlcmF0aW9uX0VKT0osIEdQUlJlZywgR1BS
UmVnLCBHUFJSZWcpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBZGRHZW5l
cmF0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQWRk
R2VuZXJhdG9yLmNwcAkocmV2aXNpb24gMjAwNTE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRBZGRHZW5lcmF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEyOCw2ICsxMjgsOSBAQCB2
b2lkIEpJVEFkZEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChDCiAKICAgICAvLyBEbyBkb3Vi
bGVWYXIgKyBkb3VibGVWYXIuCiAgICAgaml0LmFkZERvdWJsZShtX3JpZ2h0RlBSLCBtX2xlZnRG
UFIpOworICAgIGlmIChtX3Jlc3VsdFByb2ZpbGUpCisgICAgICAgIG1fcmVzdWx0UHJvZmlsZS0+
ZW1pdFNldERvdWJsZShqaXQpOworICAgICAgICAKICAgICBqaXQuYm94RG91YmxlKG1fbGVmdEZQ
UiwgbV9yZXN1bHQpOwogfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFk
ZEdlbmVyYXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
QWRkR2VuZXJhdG9yLmgJKHJldmlzaW9uIDIwMDUxNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUQWRkR2VuZXJhdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzcsNyArMzcsOCBAQCBjbGFz
cyBKSVRBZGRHZW5lcmF0b3IgewogcHVibGljOgogICAgIEpJVEFkZEdlbmVyYXRvcihTbmlwcGV0
T3BlcmFuZCBsZWZ0T3BlcmFuZCwgU25pcHBldE9wZXJhbmQgcmlnaHRPcGVyYW5kLAogICAgICAg
ICBKU1ZhbHVlUmVncyByZXN1bHQsIEpTVmFsdWVSZWdzIGxlZnQsIEpTVmFsdWVSZWdzIHJpZ2h0
LAotICAgICAgICBGUFJSZWcgbGVmdEZQUiwgRlBSUmVnIHJpZ2h0RlBSLCBHUFJSZWcgc2NyYXRj
aEdQUiwgRlBSUmVnIHNjcmF0Y2hGUFIpCisgICAgICAgIEZQUlJlZyBsZWZ0RlBSLCBGUFJSZWcg
cmlnaHRGUFIsIEdQUlJlZyBzY3JhdGNoR1BSLCBGUFJSZWcgc2NyYXRjaEZQUiwKKyAgICAgICAg
UmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSA9IG51bGxwdHIpCiAgICAgICAgIDogbV9sZWZ0
T3BlcmFuZChsZWZ0T3BlcmFuZCkKICAgICAgICAgLCBtX3JpZ2h0T3BlcmFuZChyaWdodE9wZXJh
bmQpCiAgICAgICAgICwgbV9yZXN1bHQocmVzdWx0KQpAQCAtNDcsNiArNDgsNyBAQCBwdWJsaWM6
CiAgICAgICAgICwgbV9yaWdodEZQUihyaWdodEZQUikKICAgICAgICAgLCBtX3NjcmF0Y2hHUFIo
c2NyYXRjaEdQUikKICAgICAgICAgLCBtX3NjcmF0Y2hGUFIoc2NyYXRjaEZQUikKKyAgICAgICAg
LCBtX3Jlc3VsdFByb2ZpbGUocmVzdWx0UHJvZmlsZSkKICAgICB7CiAgICAgICAgIEFTU0VSVCgh
bV9sZWZ0T3BlcmFuZC5pc0NvbnN0SW50MzIoKSB8fCAhbV9yaWdodE9wZXJhbmQuaXNDb25zdElu
dDMyKCkpOwogICAgIH0KQEAgLTY3LDYgKzY5LDcgQEAgcHJpdmF0ZToKICAgICBGUFJSZWcgbV9y
aWdodEZQUjsKICAgICBHUFJSZWcgbV9zY3JhdGNoR1BSOwogICAgIEZQUlJlZyBtX3NjcmF0Y2hG
UFI7CisgICAgUmVzdWx0UHJvZmlsZSogbV9yZXN1bHRQcm9maWxlOwogICAgIGJvb2wgbV9kaWRF
bWl0RmFzdFBhdGggeyBmYWxzZSB9OwogCiAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBtX2Vu
ZEp1bXBMaXN0OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBcml0aG1ldGlj
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0
aWMuY3BwCShyZXZpc2lvbiAyMDA1MTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VEFyaXRobWV0aWMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAwOCwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTY5Niw2ICs2OTYsMTAg
QEAgdm9pZCBKSVQ6OmVtaXRfb3BfYWRkKEluc3RydWN0aW9uKiBjdXJyZQogICAgIEZQUlJlZyBz
Y3JhdGNoRlBSID0gZnBSZWdUMjsKICNlbmRpZgogCisgICAgUmVzdWx0UHJvZmlsZSogcmVzdWx0
UHJvZmlsZSA9IG51bGxwdHI7CisgICAgaWYgKHNob3VsZEVtaXRQcm9maWxpbmcoKSkKKyAgICAg
ICAgcmVzdWx0UHJvZmlsZSA9IG1fY29kZUJsb2NrLT5lbnN1cmVSZXN1bHRQcm9maWxlKG1fYnl0
ZWNvZGVPZmZzZXQpOworCiAgICAgU25pcHBldE9wZXJhbmQgbGVmdE9wZXJhbmQodHlwZXMuZmly
c3QoKSk7CiAgICAgU25pcHBldE9wZXJhbmQgcmlnaHRPcGVyYW5kKHR5cGVzLnNlY29uZCgpKTsK
IApAQCAtNzEyLDcgKzcxNiw3IEBAIHZvaWQgSklUOjplbWl0X29wX2FkZChJbnN0cnVjdGlvbiog
Y3VycmUKICAgICAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihvcDIsIHJpZ2h0UmVncyk7CiAK
ICAgICBKSVRBZGRHZW5lcmF0b3IgZ2VuKGxlZnRPcGVyYW5kLCByaWdodE9wZXJhbmQsIHJlc3Vs
dFJlZ3MsIGxlZnRSZWdzLCByaWdodFJlZ3MsCi0gICAgICAgIGZwUmVnVDAsIGZwUmVnVDEsIHNj
cmF0Y2hHUFIsIHNjcmF0Y2hGUFIpOworICAgICAgICBmcFJlZ1QwLCBmcFJlZ1QxLCBzY3JhdGNo
R1BSLCBzY3JhdGNoRlBSLCByZXN1bHRQcm9maWxlKTsKIAogICAgIGdlbi5nZW5lcmF0ZUZhc3RQ
YXRoKCp0aGlzKTsKIApAQCAtNzI0LDggKzcyOCwxNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9hZGQo
SW5zdHJ1Y3Rpb24qIGN1cnJlCiAgICAgfSBlbHNlIHsKICAgICAgICAgQVNTRVJUKGdlbi5lbmRK
dW1wTGlzdCgpLmVtcHR5KCkpOwogICAgICAgICBBU1NFUlQoZ2VuLnNsb3dQYXRoSnVtcExpc3Qo
KS5lbXB0eSgpKTsKLSAgICAgICAgSklUU2xvd1BhdGhDYWxsIHNsb3dQYXRoQ2FsbCh0aGlzLCBj
dXJyZW50SW5zdHJ1Y3Rpb24sIHNsb3dfcGF0aF9hZGQpOwotICAgICAgICBzbG93UGF0aENhbGwu
Y2FsbCgpOworICAgICAgICBpZiAocmVzdWx0UHJvZmlsZSkgeworICAgICAgICAgICAgaWYgKGxl
ZnRPcGVyYW5kLmlzQ29uc3QoKSkKKyAgICAgICAgICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lz
dGVyKG9wMSwgbGVmdFJlZ3MpOworICAgICAgICAgICAgaWYgKHJpZ2h0T3BlcmFuZC5pc0NvbnN0
KCkpCisgICAgICAgICAgICAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihvcDIsIHJpZ2h0UmVn
cyk7CisgICAgICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblZhbHVlQWRkUHJvZmlsZWQs
IHJlc3VsdFJlZ3MsIGxlZnRSZWdzLCByaWdodFJlZ3MsIHJlc3VsdFByb2ZpbGUpOworICAgICAg
ICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihyZXN1bHQsIHJlc3VsdFJlZ3MpOworICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgSklUU2xvd1BhdGhDYWxsIHNsb3dQYXRoQ2FsbCh0aGlz
LCBjdXJyZW50SW5zdHJ1Y3Rpb24sIHNsb3dfcGF0aF9hZGQpOworICAgICAgICAgICAgc2xvd1Bh
dGhDYWxsLmNhbGwoKTsKKyAgICAgICAgfQogICAgIH0KIH0KIApAQCAtNzMzLDggKzc0Niw0MSBA
QCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfYWRkKEluc3RydWN0aW9uKiBjCiB7CiAgICAgbGlua0Fs
bFNsb3dDYXNlc0ZvckJ5dGVjb2RlT2Zmc2V0KG1fc2xvd0Nhc2VzLCBpdGVyLCBtX2J5dGVjb2Rl
T2Zmc2V0KTsKIAotICAgIEpJVFNsb3dQYXRoQ2FsbCBzbG93UGF0aENhbGwodGhpcywgY3VycmVu
dEluc3RydWN0aW9uLCBzbG93X3BhdGhfYWRkKTsKLSAgICBzbG93UGF0aENhbGwuY2FsbCgpOwor
ICAgIGludCByZXN1bHQgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOworICAgIGlu
dCBvcDEgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOworICAgIGludCBvcDIgPSBj
dXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOworICAgIE9wZXJhbmRUeXBlcyB0eXBlcyA9
IE9wZXJhbmRUeXBlczo6ZnJvbUludChjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kKTsK
KworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgSlNWYWx1ZVJlZ3MgbGVmdFJlZ3MgPSBKU1ZhbHVl
UmVncyhyZWdUMCk7CisgICAgSlNWYWx1ZVJlZ3MgcmlnaHRSZWdzID0gSlNWYWx1ZVJlZ3MocmVn
VDEpOworICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSBsZWZ0UmVnczsKKyNlbHNlCisgICAg
SlNWYWx1ZVJlZ3MgbGVmdFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMSwgcmVnVDApOworICAgIEpT
VmFsdWVSZWdzIHJpZ2h0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QzLCByZWdUMik7CisgICAgSlNW
YWx1ZVJlZ3MgcmVzdWx0UmVncyA9IGxlZnRSZWdzOworI2VuZGlmCisgICAgCisgICAgU25pcHBl
dE9wZXJhbmQgbGVmdE9wZXJhbmQodHlwZXMuZmlyc3QoKSk7CisgICAgU25pcHBldE9wZXJhbmQg
cmlnaHRPcGVyYW5kKHR5cGVzLnNlY29uZCgpKTsKKworICAgIGlmIChpc09wZXJhbmRDb25zdGFu
dEludChvcDEpKQorICAgICAgICBsZWZ0T3BlcmFuZC5zZXRDb25zdEludDMyKGdldE9wZXJhbmRD
b25zdGFudEludChvcDEpKTsKKyAgICBlbHNlIGlmIChpc09wZXJhbmRDb25zdGFudEludChvcDIp
KQorICAgICAgICByaWdodE9wZXJhbmQuc2V0Q29uc3RJbnQzMihnZXRPcGVyYW5kQ29uc3RhbnRJ
bnQob3AyKSk7CisKKyAgICBpZiAoc2hvdWxkRW1pdFByb2ZpbGluZygpKSB7CisgICAgICAgIGlm
IChsZWZ0T3BlcmFuZC5pc0NvbnN0KCkpCisgICAgICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lz
dGVyKG9wMSwgbGVmdFJlZ3MpOworICAgICAgICBpZiAocmlnaHRPcGVyYW5kLmlzQ29uc3QoKSkK
KyAgICAgICAgICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIob3AyLCByaWdodFJlZ3MpOworICAg
ICAgICBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlID0gbV9jb2RlQmxvY2stPmVuc3VyZVJl
c3VsdFByb2ZpbGUobV9ieXRlY29kZU9mZnNldCk7CisgICAgICAgIGNhbGxPcGVyYXRpb24ob3Bl
cmF0aW9uVmFsdWVBZGRQcm9maWxlZCwgcmVzdWx0UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVncywg
cmVzdWx0UHJvZmlsZSk7CisgICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIocmVzdWx0LCBy
ZXN1bHRSZWdzKTsKKyAgICB9IGVsc2UgeworICAgICAgICBKSVRTbG93UGF0aENhbGwgc2xvd1Bh
dGhDYWxsKHRoaXMsIGN1cnJlbnRJbnN0cnVjdGlvbiwgc2xvd19wYXRoX2FkZCk7CisgICAgICAg
IHNsb3dQYXRoQ2FsbC5jYWxsKCk7CisgICAgfQogfQogCiB2b2lkIEpJVDo6ZW1pdF9vcF9kaXYo
SW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKQEAgLTg2NCw4ICs5MTAsMTcgQEAgdm9p
ZCBKSVQ6OmVtaXRfb3BfbXVsKEluc3RydWN0aW9uKiBjdXJyZQogICAgIH0gZWxzZSB7CiAgICAg
ICAgIEFTU0VSVChnZW4uZW5kSnVtcExpc3QoKS5lbXB0eSgpKTsKICAgICAgICAgQVNTRVJUKGdl
bi5zbG93UGF0aEp1bXBMaXN0KCkuZW1wdHkoKSk7Ci0gICAgICAgIEpJVFNsb3dQYXRoQ2FsbCBz
bG93UGF0aENhbGwodGhpcywgY3VycmVudEluc3RydWN0aW9uLCBzbG93X3BhdGhfbXVsKTsKLSAg
ICAgICAgc2xvd1BhdGhDYWxsLmNhbGwoKTsKKyAgICAgICAgaWYgKHJlc3VsdFByb2ZpbGUpIHsK
KyAgICAgICAgICAgIGlmIChsZWZ0T3BlcmFuZC5pc1Bvc2l0aXZlQ29uc3RJbnQzMigpKQorICAg
ICAgICAgICAgICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIob3AxLCBsZWZ0UmVncyk7CisgICAg
ICAgICAgICBpZiAocmlnaHRPcGVyYW5kLmlzUG9zaXRpdmVDb25zdEludDMyKCkpCisgICAgICAg
ICAgICAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihvcDIsIHJpZ2h0UmVncyk7CisgICAgICAg
ICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblZhbHVlTXVsUHJvZmlsZWQsIHJlc3VsdFJlZ3Ms
IGxlZnRSZWdzLCByaWdodFJlZ3MsIHJlc3VsdFByb2ZpbGUpOworICAgICAgICAgICAgZW1pdFB1
dFZpcnR1YWxSZWdpc3RlcihyZXN1bHQsIHJlc3VsdFJlZ3MpOworICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgSklUU2xvd1BhdGhDYWxsIHNsb3dQYXRoQ2FsbCh0aGlzLCBjdXJyZW50SW5z
dHJ1Y3Rpb24sIHNsb3dfcGF0aF9tdWwpOworICAgICAgICAgICAgc2xvd1BhdGhDYWxsLmNhbGwo
KTsKKyAgICAgICAgfQogICAgIH0KIH0KIApAQCAtODczLDggKzkyOCw0MSBAQCB2b2lkIEpJVDo6
ZW1pdFNsb3dfb3BfbXVsKEluc3RydWN0aW9uKiBjCiB7CiAgICAgbGlua0FsbFNsb3dDYXNlc0Zv
ckJ5dGVjb2RlT2Zmc2V0KG1fc2xvd0Nhc2VzLCBpdGVyLCBtX2J5dGVjb2RlT2Zmc2V0KTsKICAg
ICAKLSAgICBKSVRTbG93UGF0aENhbGwgc2xvd1BhdGhDYWxsKHRoaXMsIGN1cnJlbnRJbnN0cnVj
dGlvbiwgc2xvd19wYXRoX211bCk7Ci0gICAgc2xvd1BhdGhDYWxsLmNhbGwoKTsKKyAgICBpbnQg
cmVzdWx0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKKyAgICBpbnQgb3AxID0g
Y3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKKyAgICBpbnQgb3AyID0gY3VycmVudElu
c3RydWN0aW9uWzNdLnUub3BlcmFuZDsKKyAgICBPcGVyYW5kVHlwZXMgdHlwZXMgPSBPcGVyYW5k
VHlwZXM6OmZyb21JbnQoY3VycmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZCk7CisKKyNpZiBV
U0UoSlNWQUxVRTY0KQorICAgIEpTVmFsdWVSZWdzIGxlZnRSZWdzID0gSlNWYWx1ZVJlZ3MocmVn
VDApOworICAgIEpTVmFsdWVSZWdzIHJpZ2h0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QxKTsKKyAg
ICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0gbGVmdFJlZ3M7CisjZWxzZQorICAgIEpTVmFsdWVS
ZWdzIGxlZnRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKTsKKyAgICBKU1ZhbHVlUmVn
cyByaWdodFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMywgcmVnVDIpOworICAgIEpTVmFsdWVSZWdz
IHJlc3VsdFJlZ3MgPSBsZWZ0UmVnczsKKyNlbmRpZgorCisgICAgU25pcHBldE9wZXJhbmQgbGVm
dE9wZXJhbmQodHlwZXMuZmlyc3QoKSk7CisgICAgU25pcHBldE9wZXJhbmQgcmlnaHRPcGVyYW5k
KHR5cGVzLnNlY29uZCgpKTsKKworICAgIGlmIChpc09wZXJhbmRDb25zdGFudEludChvcDEpKQor
ICAgICAgICBsZWZ0T3BlcmFuZC5zZXRDb25zdEludDMyKGdldE9wZXJhbmRDb25zdGFudEludChv
cDEpKTsKKyAgICBlbHNlIGlmIChpc09wZXJhbmRDb25zdGFudEludChvcDIpKQorICAgICAgICBy
aWdodE9wZXJhbmQuc2V0Q29uc3RJbnQzMihnZXRPcGVyYW5kQ29uc3RhbnRJbnQob3AyKSk7CisK
KyAgICBpZiAoc2hvdWxkRW1pdFByb2ZpbGluZygpKSB7CisgICAgICAgIGlmIChsZWZ0T3BlcmFu
ZC5pc1Bvc2l0aXZlQ29uc3RJbnQzMigpKQorICAgICAgICAgICAgZW1pdEdldFZpcnR1YWxSZWdp
c3RlcihvcDEsIGxlZnRSZWdzKTsKKyAgICAgICAgaWYgKHJpZ2h0T3BlcmFuZC5pc1Bvc2l0aXZl
Q29uc3RJbnQzMigpKQorICAgICAgICAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihvcDIsIHJp
Z2h0UmVncyk7CisgICAgICAgIFJlc3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUgPSBtX2NvZGVC
bG9jay0+ZW5zdXJlUmVzdWx0UHJvZmlsZShtX2J5dGVjb2RlT2Zmc2V0KTsKKyAgICAgICAgY2Fs
bE9wZXJhdGlvbihvcGVyYXRpb25WYWx1ZU11bFByb2ZpbGVkLCByZXN1bHRSZWdzLCBsZWZ0UmVn
cywgcmlnaHRSZWdzLCByZXN1bHRQcm9maWxlKTsKKyAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdp
c3RlcihyZXN1bHQsIHJlc3VsdFJlZ3MpOworICAgIH0gZWxzZSB7CisgICAgICAgIEpJVFNsb3dQ
YXRoQ2FsbCBzbG93UGF0aENhbGwodGhpcywgY3VycmVudEluc3RydWN0aW9uLCBzbG93X3BhdGhf
bXVsKTsKKyAgICAgICAgc2xvd1BhdGhDYWxsLmNhbGwoKTsKKyAgICB9CiB9CiAKIHZvaWQgSklU
OjplbWl0X29wX3N1YihJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQpAQCAtODk4LDYg
Kzk4NiwxMCBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9zdWIoSW5zdHJ1Y3Rpb24qIGN1cnJlCiAgICAg
RlBSUmVnIHNjcmF0Y2hGUFIgPSBmcFJlZ1QyOwogI2VuZGlmCiAKKyAgICBSZXN1bHRQcm9maWxl
KiByZXN1bHRQcm9maWxlID0gbnVsbHB0cjsKKyAgICBpZiAoc2hvdWxkRW1pdFByb2ZpbGluZygp
KQorICAgICAgICByZXN1bHRQcm9maWxlID0gbV9jb2RlQmxvY2stPmVuc3VyZVJlc3VsdFByb2Zp
bGUobV9ieXRlY29kZU9mZnNldCk7CisKICAgICBTbmlwcGV0T3BlcmFuZCBsZWZ0T3BlcmFuZCh0
eXBlcy5maXJzdCgpKTsKICAgICBTbmlwcGV0T3BlcmFuZCByaWdodE9wZXJhbmQodHlwZXMuc2Vj
b25kKCkpOwogICAgIApAQCAtOTIwLDggKzEwMTIsMjUgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29w
X3N1YihJbnN0cnVjdGlvbiogYwogewogICAgIGxpbmtBbGxTbG93Q2FzZXNGb3JCeXRlY29kZU9m
ZnNldChtX3Nsb3dDYXNlcywgaXRlciwgbV9ieXRlY29kZU9mZnNldCk7CiAKLSAgICBKSVRTbG93
UGF0aENhbGwgc2xvd1BhdGhDYWxsKHRoaXMsIGN1cnJlbnRJbnN0cnVjdGlvbiwgc2xvd19wYXRo
X3N1Yik7Ci0gICAgc2xvd1BhdGhDYWxsLmNhbGwoKTsKKyAgICBpbnQgcmVzdWx0ID0gY3VycmVu
dEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgIEpTVmFs
dWVSZWdzIGxlZnRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDApOworICAgIEpTVmFsdWVSZWdzIHJp
Z2h0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QxKTsKKyAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdz
ID0gbGVmdFJlZ3M7CisjZWxzZQorICAgIEpTVmFsdWVSZWdzIGxlZnRSZWdzID0gSlNWYWx1ZVJl
Z3MocmVnVDEsIHJlZ1QwKTsKKyAgICBKU1ZhbHVlUmVncyByaWdodFJlZ3MgPSBKU1ZhbHVlUmVn
cyhyZWdUMywgcmVnVDIpOworICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSBsZWZ0UmVnczsK
KyNlbmRpZgorCisgICAgaWYgKHNob3VsZEVtaXRQcm9maWxpbmcoKSkgeworICAgICAgICBSZXN1
bHRQcm9maWxlKiByZXN1bHRQcm9maWxlID0gbV9jb2RlQmxvY2stPmVuc3VyZVJlc3VsdFByb2Zp
bGUobV9ieXRlY29kZU9mZnNldCk7CisgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uVmFs
dWVTdWJQcm9maWxlZCwgcmVzdWx0UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVncywgcmVzdWx0UHJv
ZmlsZSk7CisgICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIocmVzdWx0LCByZXN1bHRSZWdz
KTsKKyAgICB9IGVsc2UgeworICAgICAgICBKSVRTbG93UGF0aENhbGwgc2xvd1BhdGhDYWxsKHRo
aXMsIGN1cnJlbnRJbnN0cnVjdGlvbiwgc2xvd19wYXRoX3N1Yik7CisgICAgICAgIHNsb3dQYXRo
Q2FsbC5jYWxsKCk7CisgICAgfQogfQogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0gRU5EOiBPUF9BREQsIE9QX1NVQiwgT1BfTVVMIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLSAqLwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgJKHJldmlz
aW9uIDIwMDUxNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCSh3
b3JraW5nIGNvcHkpCkBAIC00MTYsNiArNDE2LDE0IEBAIEFMV0FZU19JTkxJTkUgTWFjcm9Bc3Nl
bWJsZXI6OkNhbGwgSklUOjoKICAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVj
ayhvcGVyYXRpb24pOwogfQogCitpbmxpbmUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxs
T3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSlJwIG9wZXJhdGlvbiwgSlNWYWx1ZVJlZ3MgcmVz
dWx0LCBKU1ZhbHVlUmVncyBhcmcxLCBKU1ZhbHVlUmVncyBhcmcyLCBSZXN1bHRQcm9maWxlKiBy
ZXN1bHRQcm9maWxlKQoreworICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLCBh
cmcyLCBUcnVzdGVkSW1tUHRyKHJlc3VsdFByb2ZpbGUpKTsKKyAgICBDYWxsIGNhbGwgPSBhcHBl
bmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7CisgICAgc2V0dXBSZXN1bHRzKHJl
c3VsdCk7CisgICAgcmV0dXJuIGNhbGw7Cit9CisKICNpZiBVU0UoSlNWQUxVRTY0KQogQUxXQVlT
X0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oWl9KSVRPcGVy
YXRpb25fRUpaWiBvcGVyYXRpb24sIEdQUlJlZyBhcmcxLCBpbnQzMl90IGFyZzIsIGludDMyX3Qg
YXJnMykKIHsKQEAgLTYwMiwyMyArNjEwLDYgQEAgQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxl
cjo6Q2FsbCBKSVQ6OgogCiAjZWxzZSAvLyBVU0UoSlNWQUxVRTMyXzY0KQogCi0vLyBFbmNvZGVk
SlNWYWx1ZSBpbiBKU1ZBTFVFMzJfNjQgaXMgYSA2NC1iaXQgaW50ZWdlci4gV2hlbiBiZWluZyBj
b21waWxlZCBpbiBBUk0gRUFCSSwgaXQgbXVzdCBiZSBhbGlnbmVkIGV2ZW4tbnVtYmVyZWQgcmVn
aXN0ZXIgKHIwLCByMiBvciBbc3BdKS4KLS8vIFRvIGF2b2lkIGFzc2VtYmxpZXMgZnJvbSB1c2lu
ZyB3cm9uZyByZWdpc3RlcnMsIGxldCdzIG9jY3VweSByMSBvciByMyB3aXRoIGEgZHVtbXkgYXJn
dW1lbnQgd2hlbiBuZWNlc3NhcnkuCi0jaWYgKENPTVBJTEVSX1NVUFBPUlRTKEVBQkkpICYmIENQ
VShBUk0pKSB8fCBDUFUoTUlQUykKLSNkZWZpbmUgRUFCSV8zMkJJVF9EVU1NWV9BUkcgICAgICBU
cnVzdGVkSW1tMzIoMCksCi0jZWxzZQotI2RlZmluZSBFQUJJXzMyQklUX0RVTU1ZX0FSRwotI2Vu
ZGlmCi0KLS8vIEpTVkFMVUUzMl82NCBpcyBhIDY0LWJpdCBpbnRlZ2VyIHRoYXQgY2Fubm90IGJl
IHB1dCBoYWxmIGluIGFuIGFyZ3VtZW50IHJlZ2lzdGVyIGFuZCBoYWxmIG9uIHN0YWNrIHdoZW4g
dXNpbmcgU0g0IGFyY2hpdGVjdHVyZS4KLS8vIFRvIGF2b2lkIHRoaXMsIGxldCdzIG9jY3VweSB0
aGUgNHRoIGFyZ3VtZW50IHJlZ2lzdGVyIChyNykgd2l0aCBhIGR1bW15IGFyZ3VtZW50IHdoZW4g
bmVjZXNzYXJ5LiBUaGlzIG11c3Qgb25seSBiZSBkb25lIHdoZW4gdGhlcmUKLS8vIGlzIG5vIG90
aGVyIDMyLWJpdCB2YWx1ZSBhcmd1bWVudCBiZWhpbmQgdGhpcyA2NC1iaXQgSlNWYWx1ZS4KLSNp
ZiBDUFUoU0g0KQotI2RlZmluZSBTSDRfMzJCSVRfRFVNTVlfQVJHICAgICAgVHJ1c3RlZEltbTMy
KDApLAotI2Vsc2UKLSNkZWZpbmUgU0g0XzMyQklUX0RVTU1ZX0FSRwotI2VuZGlmCi0KIEFMV0FZ
U19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uTm9FeGNlcHRp
b25DaGVjayhWX0pJVE9wZXJhdGlvbl9FSiBvcGVyYXRpb24sIEdQUlJlZyBhcmcxVGFnLCBHUFJS
ZWcgYXJnMVBheWxvYWQpCiB7CiAgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEVBQklf
MzJCSVRfRFVNTVlfQVJHIGFyZzFQYXlsb2FkLCBhcmcxVGFnKTsKQEAgLTgwMCw5ICs3OTEsNiBA
QCBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6CiAgICAgcmV0dXJuIGFw
cGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2tTZXRKU1ZhbHVlUmVzdWx0KG9wZXJhdGlvbiwgZHN0
KTsKIH0KIAotI3VuZGVmIEVBQklfMzJCSVRfRFVNTVlfQVJHCi0jdW5kZWYgU0g0XzMyQklUX0RV
TU1ZX0FSRwotCiAjZW5kaWYgLy8gVVNFKEpTVkFMVUUzMl82NCkKIAogQUxXQVlTX0lOTElORSBK
SVQ6Okp1bXAgSklUOjpjaGVja1N0cnVjdHVyZShSZWdpc3RlcklEIHJlZywgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE11bEdlbmVyYXRv
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRNdWxHZW5l
cmF0b3IuY3BwCShyZXZpc2lvbiAyMDA1MTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVE11bEdlbmVyYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTUzLDYgKzE1Myw3IEBAIHZvaWQg
SklUTXVsR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKEMKICAgICAgICAgQ0NhbGxIZWxwZXJz
OjpKdW1wIGRvbmUgPSBqaXQuanVtcCgpOwogCiAgICAgICAgIG5vdE5lZ2F0aXZlWmVyby5saW5r
KCZqaXQpOworICAgICAgICBqaXQub3IzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihSZXN1
bHRQcm9maWxlOjpOb25OZWdaZXJvRG91YmxlKSwgQ0NhbGxIZWxwZXJzOjpBYnNvbHV0ZUFkZHJl
c3MobV9yZXN1bHRQcm9maWxlLT5hZGRyZXNzT2ZGbGFncygpKSk7CiAKICAgICAgICAgaml0Lm1v
dmUobV9yZXN1bHQucGF5bG9hZEdQUigpLCBtX3NjcmF0Y2hHUFIpOwogICAgICAgICBqaXQudXJz
aGlmdFB0cihDQ2FsbEhlbHBlcnM6OkltbTMyKDUyKSwgbV9zY3JhdGNoR1BSKTsKQEAgLTE3NCw2
ICsxNzUsNyBAQCB2b2lkIEpJVE11bEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChDCiAgICAg
ICAgIENDYWxsSGVscGVyczo6SnVtcCBkb25lID0gaml0Lmp1bXAoKTsKIAogICAgICAgICBub3RO
ZWdhdGl2ZVplcm8ubGluaygmaml0KTsKKyAgICAgICAgaml0Lm9yMzIoQ0NhbGxIZWxwZXJzOjpU
cnVzdGVkSW1tMzIoUmVzdWx0UHJvZmlsZTo6Tm9uTmVnWmVyb0RvdWJsZSksIENDYWxsSGVscGVy
czo6QWJzb2x1dGVBZGRyZXNzKG1fcmVzdWx0UHJvZmlsZS0+YWRkcmVzc09mRmxhZ3MoKSkpOwog
CiAgICAgICAgIGppdC5tb3ZlKG1fcmVzdWx0LnRhZ0dQUigpLCBtX3NjcmF0Y2hHUFIpOwogICAg
ICAgICBqaXQudXJzaGlmdFB0cihDQ2FsbEhlbHBlcnM6OkltbTMyKDUyIC0gMzIpLCBtX3NjcmF0
Y2hHUFIpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMu
Y3BwCShyZXZpc2lvbiAyMDA1MTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9w
ZXJhdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMjQzLDYgKzIyNDMsODggQEAgSlNDZWxs
KiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRvSW5kZXhTdAogICAgIHJldHVybiBqc1N0cmluZyhl
eGVjLCBJZGVudGlmaWVyOjpmcm9tKGV4ZWMsIGluZGV4KS5zdHJpbmcoKSk7CiB9CiAKK0VuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVBZGQoRXhlY1N0YXRlKiBleGVj
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKQor
eworICAgIFZNKiB2bSA9ICZleGVjLT52bSgpOworICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0
cmFjZXIodm0sIGV4ZWMpOworICAgIAorICAgIEpTVmFsdWUgb3AxID0gSlNWYWx1ZTo6ZGVjb2Rl
KGVuY29kZWRPcDEpOworICAgIEpTVmFsdWUgb3AyID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRP
cDIpOworICAgIAorICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNBZGQoZXhlYywgb3AxLCBv
cDIpKTsKK30KKworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZUFk
ZFByb2ZpbGVkKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgUmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSkKK3sK
KyAgICBWTSogdm0gPSAmZXhlYy0+dm0oKTsKKyAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJh
Y2VyKHZtLCBleGVjKTsKKyAgICAKKyAgICBKU1ZhbHVlIG9wMSA9IEpTVmFsdWU6OmRlY29kZShl
bmNvZGVkT3AxKTsKKyAgICBKU1ZhbHVlIG9wMiA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3Ay
KTsKKyAgICAKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzQWRkKGV4ZWMsIG9wMSwgb3AyKTsKKyAg
ICByZXN1bHRQcm9maWxlLT5kZXRlY3RCaXRzTGlnaHQocmVzdWx0KTsKKyAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKHJlc3VsdCk7Cit9CisKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uVmFsdWVNdWwoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
T3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKQoreworICAgIFZNKiB2bSA9ICZleGVjLT52
bSgpOworICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGV4ZWMpOworCisgICAg
SlNWYWx1ZSBvcDEgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMSk7CisgICAgSlNWYWx1ZSBv
cDIgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMik7CisKKyAgICBkb3VibGUgYSA9IG9wMS50
b051bWJlcihleGVjKTsKKyAgICBkb3VibGUgYiA9IG9wMi50b051bWJlcihleGVjKTsKKyAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGEgKiBiKSk7Cit9CisKK0VuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVNdWxQcm9maWxlZChFeGVjU3RhdGUqIGV4
ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIs
IFJlc3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUpCit7CisgICAgVk0qIHZtID0gJmV4ZWMtPnZt
KCk7CisgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgZXhlYyk7CisKKyAgICBK
U1ZhbHVlIG9wMSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AxKTsKKyAgICBKU1ZhbHVlIG9w
MiA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AyKTsKKworICAgIGRvdWJsZSBhID0gb3AxLnRv
TnVtYmVyKGV4ZWMpOworICAgIGRvdWJsZSBiID0gb3AyLnRvTnVtYmVyKGV4ZWMpOworICAgIAor
ICAgIEpTVmFsdWUgcmVzdWx0ID0ganNOdW1iZXIoYSAqIGIpOworICAgIHJlc3VsdFByb2ZpbGUt
PmRldGVjdEJpdHNMaWdodChyZXN1bHQpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVz
dWx0KTsKK30KKworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZVN1
YihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRPcDIpCit7CisgICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7CisgICAgTmF0aXZl
Q2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgZXhlYyk7CisgICAgCisgICAgSlNWYWx1ZSBvcDEg
PSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMSk7CisgICAgSlNWYWx1ZSBvcDIgPSBKU1ZhbHVl
OjpkZWNvZGUoZW5jb2RlZE9wMik7CisKKyAgICBkb3VibGUgYSA9IG9wMS50b051bWJlcihleGVj
KTsKKyAgICBkb3VibGUgYiA9IG9wMi50b051bWJlcihleGVjKTsKKyAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzTnVtYmVyKGEgLSBiKSk7Cit9CisKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uVmFsdWVTdWJQcm9maWxlZChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIFJlc3VsdFByb2Zp
bGUqIHJlc3VsdFByb2ZpbGUpCit7CisgICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7CisgICAgTmF0
aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgZXhlYyk7CisgICAgCisgICAgSlNWYWx1ZSBv
cDEgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMSk7CisgICAgSlNWYWx1ZSBvcDIgPSBKU1Zh
bHVlOjpkZWNvZGUoZW5jb2RlZE9wMik7CisKKyAgICBkb3VibGUgYSA9IG9wMS50b051bWJlcihl
eGVjKTsKKyAgICBkb3VibGUgYiA9IG9wMi50b051bWJlcihleGVjKTsKKyAgICAKKyAgICBKU1Zh
bHVlIHJlc3VsdCA9IGpzTnVtYmVyKGEgLSBiKTsKKyAgICByZXN1bHRQcm9maWxlLT5kZXRlY3RC
aXRzTGlnaHQocmVzdWx0KTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7Cit9
CisKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25Qcm9jZXNzVHlwZVByb2ZpbGVyTG9nKEV4
ZWNTdGF0ZSogZXhlYykKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmgJKHJldmlzaW9uIDIwMDUxNykKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCSh3b3JraW5nIGNvcHkp
CkBAIC01Myw2ICs1Myw3IEBAIGNsYXNzIFdhdGNocG9pbnRTZXQ7CiAKIHN0cnVjdCBCeVZhbElu
Zm87CiBzdHJ1Y3QgSW5saW5lQ2FsbEZyYW1lOworc3RydWN0IFJlc3VsdFByb2ZpbGU7CiAKIHR5
cGVkZWYgRXhlY1N0YXRlIENhbGxGcmFtZTsKIApAQCAtOTYsNiArOTcsNyBAQCB0eXBlZGVmIGNo
YXIqIFVudXNlZFB0cjsKICAgICBROiBpbnQ2NF90CiAgICAgUjogUmVnaXN0ZXIKICAgICBSZW86
IFJlZ0V4cE9iamVjdCoKKyAgICBScDogUmVzdWx0UHJvZmlsZSoKICAgICBTOiBzaXplX3QKICAg
ICBTcHJ0OiBTbG93UGF0aFJldHVyblR5cGUKICAgICBTc2k6IFN0cnVjdHVyZVN0dWJJbmZvKgpA
QCAtMTM2LDYgKzEzOCw3IEBAIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiAo
KkoKIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiAoKkpfSklUT3BlcmF0aW9u
X0VKSkFwKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEFycmF5
UHJvZmlsZSopOwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRP
cGVyYXRpb25fRUpKQnkpKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSwgQnlWYWxJbmZvKik7CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpK
X0pJVE9wZXJhdGlvbl9FSkpKKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUsIEVuY29kZWRKU1ZhbHVlKTsKK3R5cGVkZWYgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiAoKkpfSklUT3BlcmF0aW9uX0VKSlJwKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUsIFJlc3VsdFByb2ZpbGUqKTsKIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiAoKkpfSklUT3BlcmF0aW9uX0VKc3NaKShFeGVjU3RhdGUqLCBKU1N0cmlu
ZyosIGludDMyX3QpOwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OICgqSl9K
SVRPcGVyYXRpb25fRUpzc1JlbykoRXhlY1N0YXRlKiwgSlNTdHJpbmcqLCBSZWdFeHBPYmplY3Qq
KTsKIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiAoKkpfSklUT3BlcmF0aW9u
X0VKc3NSZW9Kc3MpKEV4ZWNTdGF0ZSosIEpTU3RyaW5nKiwgUmVnRXhwT2JqZWN0KiwgSlNTdHJp
bmcqKTsKQEAgLTQwNiw2ICs0MDksMTMgQEAgSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bkdldFByb3BlcgogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25OZXh0RW51
bWVyYXRvclBuYW1lKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIGludDMyX3QpOwogSlNDZWxsKiBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvblRvSW5kZXhTdHJpbmcoRXhlY1N0YXRlKiwgaW50MzJfdCk7CiAK
K0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVBZGQoRXhlY1N0YXRl
KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikg
V1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1
ZUFkZFByb2ZpbGVkKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRPcDIsIFJlc3VsdFByb2ZpbGUqKSBXVEZfSU5URVJOQUw7CitFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsKEV4ZWNTdGF0ZSosIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpIFdURl9J
TlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVNdWxQ
cm9maWxlZChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkT3AyLCBSZXN1bHRQcm9maWxlKikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZVN1YihFeGVjU3RhdGUqLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSBXVEZfSU5URVJO
QUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlU3ViUHJvZmls
ZWQoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZE9wMiwgUmVzdWx0UHJvZmlsZSopIFdURl9JTlRFUk5BTDsKKwogdm9pZCBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvblByb2Nlc3NUeXBlUHJvZmlsZXJMb2coRXhlY1N0YXRlKikgV1RGX0lO
VEVSTkFMOwogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblByb2Nlc3NTaGFkb3dDaGlja2Vu
TG9nKEV4ZWNTdGF0ZSopIFdURl9JTlRFUk5BTDsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRTdWJHZW5lcmF0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUU3ViR2VuZXJhdG9yLmNwcAkocmV2aXNpb24gMjAwNTE3KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdWJHZW5lcmF0b3IuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTgzLDYgKzgzLDkgQEAgdm9pZCBKSVRTdWJHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoQwog
ICAgIHJpZ2h0V2FzSW50ZWdlci5saW5rKCZqaXQpOwogCiAgICAgaml0LnN1YkRvdWJsZShtX3Jp
Z2h0RlBSLCBtX2xlZnRGUFIpOworICAgIGlmIChtX3Jlc3VsdFByb2ZpbGUpCisgICAgICAgIG1f
cmVzdWx0UHJvZmlsZS0+ZW1pdFNldERvdWJsZShqaXQpOworCiAgICAgaml0LmJveERvdWJsZSht
X2xlZnRGUFIsIG1fcmVzdWx0KTsKIH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRTdWJHZW5lcmF0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVFN1YkdlbmVyYXRvci5oCShyZXZpc2lvbiAyMDA1MTcpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVFN1YkdlbmVyYXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM3LDcgKzM3LDgg
QEAgY2xhc3MgSklUU3ViR2VuZXJhdG9yIHsKIHB1YmxpYzoKICAgICBKSVRTdWJHZW5lcmF0b3Io
U25pcHBldE9wZXJhbmQgbGVmdE9wZXJhbmQsIFNuaXBwZXRPcGVyYW5kIHJpZ2h0T3BlcmFuZCwK
ICAgICAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0LCBKU1ZhbHVlUmVncyBsZWZ0LCBKU1ZhbHVlUmVn
cyByaWdodCwKLSAgICAgICAgRlBSUmVnIGxlZnRGUFIsIEZQUlJlZyByaWdodEZQUiwgR1BSUmVn
IHNjcmF0Y2hHUFIsIEZQUlJlZyBzY3JhdGNoRlBSKQorICAgICAgICBGUFJSZWcgbGVmdEZQUiwg
RlBSUmVnIHJpZ2h0RlBSLCBHUFJSZWcgc2NyYXRjaEdQUiwgRlBSUmVnIHNjcmF0Y2hGUFIsCisg
ICAgICAgIFJlc3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUgPSBudWxscHRyKQogICAgICAgICA6
IG1fbGVmdE9wZXJhbmQobGVmdE9wZXJhbmQpCiAgICAgICAgICwgbV9yaWdodE9wZXJhbmQocmln
aHRPcGVyYW5kKQogICAgICAgICAsIG1fcmVzdWx0KHJlc3VsdCkKQEAgLTQ3LDYgKzQ4LDcgQEAg
cHVibGljOgogICAgICAgICAsIG1fcmlnaHRGUFIocmlnaHRGUFIpCiAgICAgICAgICwgbV9zY3Jh
dGNoR1BSKHNjcmF0Y2hHUFIpCiAgICAgICAgICwgbV9zY3JhdGNoRlBSKHNjcmF0Y2hGUFIpCisg
ICAgICAgICwgbV9yZXN1bHRQcm9maWxlKHJlc3VsdFByb2ZpbGUpCiAgICAgeyB9CiAKICAgICB2
b2lkIGdlbmVyYXRlRmFzdFBhdGgoQ0NhbGxIZWxwZXJzJik7CkBAIC02NSw2ICs2Nyw3IEBAIHBy
aXZhdGU6CiAgICAgRlBSUmVnIG1fcmlnaHRGUFI7CiAgICAgR1BSUmVnIG1fc2NyYXRjaEdQUjsK
ICAgICBGUFJSZWcgbV9zY3JhdGNoRlBSOworICAgIFJlc3VsdFByb2ZpbGUqIG1fcmVzdWx0UHJv
ZmlsZTsKICAgICBib29sIG1fZGlkRW1pdEZhc3RQYXRoIHsgZmFsc2UgfTsKIAogICAgIENDYWxs
SGVscGVyczo6SnVtcExpc3QgbV9lbmRKdW1wTGlzdDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvVGFnUmVnaXN0ZXJzTW9kZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9UYWdSZWdpc3RlcnNNb2RlLmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGFnUmVnaXN0ZXJzTW9kZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVGFnUmVnaXN0ZXJzTW9kZS5o
IgorCisjaW5jbHVkZSA8d3RmL1ByaW50U3RyZWFtLmg+CisKK25hbWVzcGFjZSBXVEYgeworCit1
c2luZyBuYW1lc3BhY2UgSlNDOworCit2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91
dCwgVGFnUmVnaXN0ZXJzTW9kZSBtb2RlKQoreworICAgIHN3aXRjaCAobW9kZSkgeworICAgIGNh
c2UgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzOgorICAgICAgICBvdXQucHJpbnQoIkRvTm90SGF2ZVRh
Z1JlZ2lzdGVycyIpOworICAgICAgICByZXR1cm47CisgICAgY2FzZSBIYXZlVGFnUmVnaXN0ZXJz
OgorICAgICAgICBvdXQucHJpbnQoIkhhdmVUYWdSZWdpc3RlcnMiKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKyAgICAKKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit9
IC8vIG5hbWVzcGFjZSBXVEYKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UYWdS
ZWdpc3RlcnNNb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9U
YWdSZWdpc3RlcnNNb2RlLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L1RhZ1JlZ2lzdGVyc01vZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ2IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgVGFn
UmVnaXN0ZXJzTW9kZV9oCisjZGVmaW5lIFRhZ1JlZ2lzdGVyc01vZGVfaAorCituYW1lc3BhY2Ug
SlNDIHsKKworZW51bSBUYWdSZWdpc3RlcnNNb2RlIHsKKyAgICBEb05vdEhhdmVUYWdSZWdpc3Rl
cnMsCisgICAgSGF2ZVRhZ1JlZ2lzdGVycworfTsKKworfSAvLyBuYW1lc3BhY2UgSlNDCisKK25h
bWVzcGFjZSBXVEYgeworCitjbGFzcyBQcmludFN0cmVhbTsKK3ZvaWQgcHJpbnRJbnRlcm5hbChQ
cmludFN0cmVhbSYsIEpTQzo6VGFnUmVnaXN0ZXJzTW9kZSk7CisKK30gLy8gbmFtZXNwYWNlIFdU
RgorCisjZW5kaWYgLy8gVGFnUmVnaXN0ZXJzTW9kZV9oCisKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcAkocmV2aXNpb24gMjAw
NTE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzc4LDYgKzM3OCw4IEBAIHN0YXRpYyB2b2lkIHVwZGF0ZVJl
c3VsdFByb2ZpbGVGb3JCaW5hcnkKICAgICAgICAgICAgIGlmICghZG91YmxlVmFsICYmIHN0ZDo6
c2lnbmJpdChkb3VibGVWYWwpKQogICAgICAgICAgICAgICAgIHByb2ZpbGUtPnNldE9ic2VydmVk
TmVnWmVyb0RvdWJsZSgpOwogICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgcHJv
ZmlsZS0+c2V0T2JzZXJ2ZWROb25OZWdaZXJvRG91YmxlKCk7CisKICAgICAgICAgICAgICAgICAv
LyBUaGUgSW50NTIgb3ZlcmZsb3cgY2hlY2sgaGVyZSBpbnRlbnRpb25hbGx5IG9taXRzIDFsbCA8
PCA1MSBhcyBhIHZhbGlkIG5lZ2F0aXZlIEludDUyIHZhbHVlLgogICAgICAgICAgICAgICAgIC8v
IFRoZXJlZm9yZSwgd2Ugd2lsbCBnZXQgYSBmYWxzZSBwb3NpdGl2ZSBpZiB0aGUgcmVzdWx0IGlz
IHRoYXQgdmFsdWUuIFRoaXMgaXMgaW50ZW50aW9uYWxseQogICAgICAgICAgICAgICAgIC8vIGRv
bmUgdG8gc2ltcGxpZnkgdGhlIGNoZWNraW5nIGFsZ29yaXRobS4KSW5kZXg6IExheW91dFRlc3Rz
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9u
IDIwMDU4MSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDMxIEBACisyMDE2LTA1LTA5ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisK
KyAgICAgICAgUG9seW1vcnBoaWMgb3BlcmFuZHMgaW4gb3BlcmF0b3JzIGNvZXJjZXMgZG93bnN0
cmVhbSB2YWx1ZXMgdG8gZG91YmxlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTUxNzkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBqcy9yZWdyZXNzL29iamVjdC1pbnQtYWRkLWFycmF5LWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9vYmplY3QtaW50LWFkZC1hcnJheS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL29iamVjdC1pbnQtYWRkLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9vYmplY3QtaW50LWFkZC5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL29iamVjdC1pbnQtbXVsLWFycmF5LWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9vYmplY3QtaW50LW11bC1hcnJheS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL29iamVjdC1pbnQtc3ViLWFycmF5LWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9vYmplY3QtaW50LXN1Yi1h
cnJheS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL29iamVjdC1pbnQtc3ViLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9vYmplY3QtaW50LXN1Yi5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9vYmplY3QtaW50
LWFkZC1hcnJheS5qczogQWRkZWQuCisgICAgICAgIChpLm8udmFsdWVPZik6CisgICAgICAgICog
anMvcmVncmVzcy9zY3JpcHQtdGVzdHMvb2JqZWN0LWludC1hZGQuanM6IEFkZGVkLgorICAgICAg
ICAoaS5vLnZhbHVlT2YpOgorICAgICAgICAqIGpzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL29iamVj
dC1pbnQtbXVsLWFycmF5LmpzOiBBZGRlZC4KKyAgICAgICAgKGkuby52YWx1ZU9mKToKKyAgICAg
ICAgKiBqcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9vYmplY3QtaW50LXN1Yi1hcnJheS5qczogQWRk
ZWQuCisgICAgICAgIChpLm8udmFsdWVPZik6CisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQt
dGVzdHMvb2JqZWN0LWludC1zdWIuanM6IEFkZGVkLgorICAgICAgICAoaS5vLnZhbHVlT2YpOgor
CiAyMDE2LTA1LTA5ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAg
IEZvY3VzaW5nIGEgc2hhZG93IGhvc3QgcGxhY2VzIHRoZSBzbG90IGNvbnRlbnQgYWZ0ZXIgdGhl
IHNoYWRvdyBET00gY29udGVudApJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9vYmplY3Qt
aW50LWFkZC1hcnJheS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMv
cmVncmVzcy9vYmplY3QtaW50LWFkZC1hcnJheS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL29iamVjdC1pbnQtYWRkLWFycmF5LWV4cGVjdGVkLnR4
dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEwIEBACitKU1JlZ3Jlc3Mvb2JqZWN0LWludC1h
ZGQtYXJyYXkKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgbm8gZXhjZXB0
aW9uIHRocm93bgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvb2JqZWN0LWludC1hZGQtYXJyYXku
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL29iamVjdC1pbnQtYWRk
LWFycmF5Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL29iamVj
dC1pbnQtYWRkLWFycmF5Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMiBAQAorPCFE
T0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVh
ZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3Mt
cHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvb2JqZWN0LWludC1h
ZGQtYXJyYXkuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdy
ZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVz
dHMvanMvcmVncmVzcy9vYmplY3QtaW50LWFkZC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvanMvcmVncmVzcy9vYmplY3QtaW50LWFkZC1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL29iamVjdC1pbnQtYWRkLWV4cGVjdGVk
LnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEwIEBACitKU1JlZ3Jlc3Mvb2JqZWN0LWlu
dC1hZGQKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgbm8gZXhjZXB0aW9u
IHRocm93bgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvb2JqZWN0LWludC1hZGQuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL29iamVjdC1pbnQtYWRkLmh0bWwJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL29iamVjdC1pbnQtYWRkLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICIt
Ly9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvb2JqZWN0LWludC1hZGQuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9vYmplY3QtaW50LW11
bC1hcnJheS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVz
cy9vYmplY3QtaW50LW11bC1hcnJheS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL29iamVjdC1pbnQtbXVsLWFycmF5LWV4cGVjdGVkLnR4dAkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDEwIEBACitKU1JlZ3Jlc3Mvb2JqZWN0LWludC1tdWwtYXJy
YXkKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgbm8gZXhjZXB0aW9uIHRo
cm93bgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
SW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvb2JqZWN0LWludC1tdWwtYXJyYXkuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL29iamVjdC1pbnQtbXVsLWFycmF5
Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL29iamVjdC1pbnQt
bXVsLWFycmF5Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBF
IEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvb2JqZWN0LWludC1tdWwtYXJy
YXkuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBv
c3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMv
cmVncmVzcy9vYmplY3QtaW50LXN1Yi1hcnJheS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvanMvcmVncmVzcy9vYmplY3QtaW50LXN1Yi1hcnJheS1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL29iamVjdC1pbnQtc3ViLWFy
cmF5LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEwIEBACitKU1JlZ3Jl
c3Mvb2JqZWN0LWludC1zdWItYXJyYXkKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K1BBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvb2JqZWN0
LWludC1zdWItYXJyYXkuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNz
L29iamVjdC1pbnQtc3ViLWFycmF5Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL29iamVjdC1pbnQtc3ViLWFycmF5Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4i
PgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVz
dHMvb2JqZWN0LWludC1zdWItYXJyYXkuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJ
bmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9vYmplY3QtaW50LXN1Yi1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9vYmplY3QtaW50LXN1Yi1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL29iamVjdC1p
bnQtc3ViLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEwIEBACitKU1Jl
Z3Jlc3Mvb2JqZWN0LWludC1zdWIKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BB
U1Mgbm8gZXhjZXB0aW9uIHRocm93bgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvb2JqZWN0LWlu
dC1zdWIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL29iamVjdC1p
bnQtc3ViLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL29iamVj
dC1pbnQtc3ViLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBF
IEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvb2JqZWN0LWludC1zdWIuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVz
cy9zY3JpcHQtdGVzdHMvb2JqZWN0LWludC1hZGQtYXJyYXkuanMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvb2JqZWN0LWludC1hZGQtYXJyYXkuanMJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9vYmpl
Y3QtaW50LWFkZC1hcnJheS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE4IEBACisoZnVu
Y3Rpb24oKSB7CisgICAgdmFyIHJlc3VsdCA9IDA7CisgICAgdmFyIG0gPSAxMDA7CisgICAgdmFy
IG4gPSAxMDAwMDA7CisgICAgdmFyIGFycmF5ID0gW107CisgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCAxMDA7ICsraSkKKyAgICAgICAgYXJyYXkucHVzaCgxMik7CisgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCBtOyArK2kpIHsKKyAgICAgICAgdmFyIHZhbHVlID0gMDsKKyAgICAgICAgdmFyIG8gPSB7
dmFsdWVPZjogZnVuY3Rpb24oKSB7IHJldHVybiA0MjsgfX07CisgICAgICAgIHZhbHVlICs9IG87
CisgICAgICAgIHZhciByZXN1bHQgPSAwOworICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IG47
ICsraikKKyAgICAgICAgICAgIHJlc3VsdCArPSBhcnJheVt2YWx1ZV07CisgICAgfQorICAgIGlm
IChyZXN1bHQgIT0gbiAqIDEyKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIg
KyByZXN1bHQ7Cit9KSgpOwpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVz
dHMvb2JqZWN0LWludC1hZGQuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVz
cy9zY3JpcHQtdGVzdHMvb2JqZWN0LWludC1hZGQuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9vYmplY3QtaW50LWFkZC5qcwkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDEzIEBACisoZnVuY3Rpb24oKSB7CisgICAgdmFyIHJlc3VsdCA9IDA7
CisgICAgdmFyIG0gPSAxMDAwOworICAgIHZhciBuID0gMTAwMDA7CisgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCBtOyArK2kpIHsKKyAgICAgICAgdmFyIG8gPSB7dmFsdWVPZjogZnVuY3Rpb24oKSB7
IHJldHVybiA0MjsgfX07CisgICAgICAgIHJlc3VsdCArPSBvOworICAgICAgICBmb3IgKHZhciBq
ID0gMDsgaiA8IG47ICsraikKKyAgICAgICAgICAgIHJlc3VsdCArPSBqOworICAgIH0KKyAgICBp
ZiAocmVzdWx0ICE9IG0gKiAoNDIgKyBuICogKG4gLSAxKSAvIDIpKQorICAgICAgICB0aHJvdyAi
RXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9KSgpOwpJbmRleDogTGF5b3V0VGVzdHMv
anMvcmVncmVzcy9zY3JpcHQtdGVzdHMvb2JqZWN0LWludC1tdWwtYXJyYXkuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvb2JqZWN0LWludC1tdWwt
YXJyYXkuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10
ZXN0cy9vYmplY3QtaW50LW11bC1hcnJheS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE4
IEBACisoZnVuY3Rpb24oKSB7CisgICAgdmFyIHJlc3VsdCA9IDA7CisgICAgdmFyIG0gPSAxMDA7
CisgICAgdmFyIG4gPSAxMDAwMDA7CisgICAgdmFyIGFycmF5ID0gW107CisgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCAxMDA7ICsraSkKKyAgICAgICAgYXJyYXkucHVzaCgxMik7CisgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCBtOyArK2kpIHsKKyAgICAgICAgdmFyIHZhbHVlID0gMTsKKyAgICAgICAg
dmFyIG8gPSB7dmFsdWVPZjogZnVuY3Rpb24oKSB7IHJldHVybiA0MjsgfX07CisgICAgICAgIHZh
bHVlICo9IG87CisgICAgICAgIHZhciByZXN1bHQgPSAwOworICAgICAgICBmb3IgKHZhciBqID0g
MDsgaiA8IG47ICsraikKKyAgICAgICAgICAgIHJlc3VsdCArPSBhcnJheVt2YWx1ZV07CisgICAg
fQorICAgIGlmIChyZXN1bHQgIT0gbiAqIDEyKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCBy
ZXN1bHQ6ICIgKyByZXN1bHQ7Cit9KSgpOwpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9z
Y3JpcHQtdGVzdHMvb2JqZWN0LWludC1zdWItYXJyYXkuanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvb2JqZWN0LWludC1zdWItYXJyYXkuanMJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9vYmplY3Qt
aW50LXN1Yi1hcnJheS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE4IEBACisoZnVuY3Rp
b24oKSB7CisgICAgdmFyIHJlc3VsdCA9IDA7CisgICAgdmFyIG0gPSAxMDA7CisgICAgdmFyIG4g
PSAxMDAwMDA7CisgICAgdmFyIGFycmF5ID0gW107CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAx
MDA7ICsraSkKKyAgICAgICAgYXJyYXkucHVzaCgxMik7CisgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCBtOyArK2kpIHsKKyAgICAgICAgdmFyIHZhbHVlID0gMDsKKyAgICAgICAgdmFyIG8gPSB7dmFs
dWVPZjogZnVuY3Rpb24oKSB7IHJldHVybiA0MjsgfX07CisgICAgICAgIHZhbHVlIC09IG87Cisg
ICAgICAgIHZhciByZXN1bHQgPSAwOworICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IG47ICsr
aikKKyAgICAgICAgICAgIHJlc3VsdCArPSBhcnJheVstdmFsdWVdOworICAgIH0KKyAgICBpZiAo
cmVzdWx0ICE9IG4gKiAxMikKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsg
cmVzdWx0OworfSkoKTsKSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3Rz
L29iamVjdC1pbnQtc3ViLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
c2NyaXB0LXRlc3RzL29iamVjdC1pbnQtc3ViLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvb2JqZWN0LWludC1zdWIuanMJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSwxMyBAQAorKGZ1bmN0aW9uKCkgeworICAgIHZhciByZXN1bHQgPSAwOwor
ICAgIHZhciBtID0gMTAwMDsKKyAgICB2YXIgbiA9IDEwMDAwOworICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgbTsgKytpKSB7CisgICAgICAgIHZhciBvID0ge3ZhbHVlT2Y6IGZ1bmN0aW9uKCkgeyBy
ZXR1cm4gNDI7IH19OworICAgICAgICByZXN1bHQgLT0gbzsKKyAgICAgICAgZm9yICh2YXIgaiA9
IDA7IGogPCBuOyArK2opCisgICAgICAgICAgICByZXN1bHQgLT0gajsKKyAgICB9CisgICAgaWYg
KHJlc3VsdCAhPSAtbSAqICg0MiArIG4gKiAobiAtIDEpIC8gMikpCisgICAgICAgIHRocm93ICJF
cnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30pKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>278418</attachid>
            <date>2016-05-09 11:55:09 -0700</date>
            <delta_ts>2016-05-09 13:14:11 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>104876</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjAwNTgxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1OCBA
QAorMjAxNi0wNS0wOSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAg
IFBvbHltb3JwaGljIG9wZXJhbmRzIGluIG9wZXJhdG9ycyBjb2VyY2VzIGRvd25zdHJlYW0gdmFs
dWVzIHRvIGRvdWJsZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE1MTc5MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAg
ICAgICAKKyAgICAgICAgUHJldmlvdXNseSBpZiBhbiBvYmplY3QgZmxvd2VkIGludG8gYXJpdGht
ZXRpYywgdGhlIHByZWRpY3Rpb24gcHJvcGFnYXRpb24gcGhhc2Ugd291bGQgZWl0aGVyCisgICAg
ICAgIGFzc3VtZSB0aGF0IHRoZSBvdXRwdXQgb2YgdGhlIGFyaXRobWV0aWMgaGFkIHRvIGJlIGRv
dWJsZSBvciBzb21ldGltZXMgaXQgd291bGQgYXNzdW1lIHRoYXQgaXQKKyAgICAgICAgY291bGRu
J3QgYmUgZG91YmxlLiBXZSB3YW50IGl0IHRvIG9ubHkgYXNzdW1lIHRoYXQgdGhlIG91dHB1dCBp
cyBkb3VibGUgaWYgaXQgYWN0dWFsbHkgaGFkIGJlZW4uCisgICAgICAgIAorICAgICAgICBUaGUg
Zmlyc3QgcGFydCBvZiB0aGlzIHBhdGNoIGlzIHRvIHJvbGwgb3V0IGh0dHA6Ly90cmFjLndlYmtp
dC5vcmcvY2hhbmdlc2V0LzIwMDUwMi4gVGhhdCByZW1vdmVkCisgICAgICAgIHNvbWUgb2YgdGhl
IG1hY2hpbmVyeSB0aGF0IHdlIGhhZCBpbiBwbGFjZSB0byBkZXRlY3Qgd2hldGhlciB0aGUgb3V0
cHV0IG9mIGFuIG9wZXJhdGlvbiBpcyBpbnQgb3IKKyAgICAgICAgZG91YmxlLiBUaGF0IGNoYW5n
ZXNldCBjbGFpbWVkIHRoYXQgdGhlIG1hY2hpbmVyeSB3YXMgImZ1bmRhbWVudGFsbHkgYnJva2Vu
Ii4gSXQgYWN0dWFsbHkgd2Fzbid0LgorICAgICAgICBUaGUgcmVhc29uIHdoeSBpdCBkaWRuJ3Qg
d29yayB3YXMgdGhhdCBCeXRlQ29kZVBhcnNlciB3YXMgaWdub3JpbmcgaXQgaWYgbGlrZWx5VG9U
YWtlU2xvd0Nhc2Ugd2FzCisgICAgICAgIGZhbHNlLiBJIHRoaW5rIHRoaXMgd2FzIGEgY29tcGxl
dGUgZ29vZi11cDogdGhlIGNvZGUgaW4gQnl0ZUNvZGVQYXJzZXI6Om1ha2VTYWZlIHdhcyBzdHJ1
Y3R1cmVkCisgICAgICAgIGluIGEgd2F5IHRoYXQgbWFkZSBpdCBub24tb2J2aW91cyB0aGF0IHRo
ZSBtZXRob2QgaXMgYSBuby1vcCBpZiAhbGlrZWx5VG9UYWtlU2xvd0Nhc2UuIFNvLCB0aGlzCisg
ICAgICAgIGNoYW5nZSByb2xscyBvdXQgcjIwMDUwMiBhbmQgbWFrZXMgUmVzdWx0UHJvZmlsZSBk
byBpdHMgam9iIGJ5IHJlc2hhcGluZyBob3cgbWFrZVNhZmUgcHJvY2Vzc2VzCisgICAgICAgIGl0
LgorICAgICAgICAKKyAgICAgICAgVGhpcyBhbHNvIG1ha2VzIHR3byBvdGhlciBjaGFuZ2VzIHRv
IHNob3JlIHVwIFJlc3VsdFByb2ZpbGU6CisgICAgICAgIC0gT1NSIGV4aXQgY2FuIG5vdyByZWZp
bmUgYSBSZXN1bHRQcm9maWxlIHRoZSBzYW1lIHdheSB0aGF0IGl0IHJlZmluZXMgVmFsdWVQcm9m
aWxlLgorICAgICAgICAtIEJhc2VsaW5lIEpJVCBzbG93IHBhdGhzIG5vdyBzZXQgYml0cyBpbiBS
ZXN1bHRQcm9maWxlLgorICAgICAgICAKKyAgICAgICAgQmFzZWQgb24gdGhpcyBzdHVmZiwgdGhl
IERGRyBub3cgcHJlZGljdHMgaW50L2RvdWJsZS9zdHJpbmcgaW4gb3BfYWRkL29wX3N1Yi9vcF9t
dWwgYmFzZWQgb24KKyAgICAgICAgUmVzdWx0UHJvZmlsZXMuIFRvIGJlIGNvbnNlcnZhdGl2ZSwg
d2Ugc3RpbGwgb25seSB1c2UgdGhlIFJlc3VsdFByb2ZpbGVzIGlmIHRoZSBpbmNvbWluZworICAg
ICAgICBwcmVkaWN0aW9uIGlzIG5vdCBudW1iZXItb3ItYm9vbGVhbi4gVGhpcyBlbnN1cmVzIHRo
YXQgd2UgZXhhY3RseSByZXRhaW4gb3VyIG9sZCBiZWhhdmlvciBpbgorICAgICAgICB0aG9zZSBj
YXNlcyBmb3Igd2hpY2ggaXQgd2FzIHR1bmVkLiBCdXQgSSBob3BlIHRvIHJlbW92ZSB0aGlzIHNv
b24uIEkgYmVsaWV2ZSB0aGF0IFJlc3VsdFByb2ZpbGUKKyAgICAgICAgaXMgYWxyZWFkeSBzdHJp
Y3RseSBiZXR0ZXIgdGhhbiB3aGF0IHByZWRpY3Rpb24gcHJvcGFnYXRpb24gd2FzIGRvaW5nIGJl
Zm9yZS4KKyAgICAgICAgCisgICAgICAgIFRoaXMgY2FuIGJlIGFuIGVub3Jtb3VzIHdpbi4gVGhp
cyBwYXRjaCBhZGRzIHNvbWUgc2ltcGxlIG1pY3JvYmVuY2htYXJrcyB0aGF0IGRlbW9uc3RyYXRl
IHRoZQorICAgICAgICBwcm9ibGVtIG9mIGFzc3VtaW5nIHRoYXQgYXJpdGhtZXRpYyBvbiBvYmpl
Y3RzIHJldHVybnMgZG91YmxlLiBUaGUgbW9zdCBleHRyZW1lIG9mIHRoZXNlIHNwZWVkcworICAg
ICAgICB1cCA4eCB3aXRoIHRoaXMgY2hhbmdlIChvYmplY3QtaW50LWFkZC1hcnJheSkuCisgICAg
ICAgIAorICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEphdmFTY3JpcHRDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYnl0ZWNvZGUvQ29kZUJsb2Nr
Lmg6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6YWRkRnJlcXVlbnRFeGl0U2l0ZSk6CisgICAg
ICAgIChKU0M6OkNvZGVCbG9jazo6aGFzRXhpdFNpdGUpOgorICAgICAgICAqIGJ5dGVjb2RlL0RG
R0V4aXRQcm9maWxlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpGcmVxdWVudEV4aXRTaXRlOjpk
dW1wKToKKyAgICAgICAgKEpTQzo6REZHOjpFeGl0UHJvZmlsZTo6RXhpdFByb2ZpbGUpOgorICAg
ICAgICAoSlNDOjpERkc6OkV4aXRQcm9maWxlOjp+RXhpdFByb2ZpbGUpOgorICAgICAgICAoSlND
OjpERkc6OkV4aXRQcm9maWxlOjphZGQpOgorICAgICAgICAqIGJ5dGVjb2RlL0RGR0V4aXRQcm9m
aWxlLmg6CisgICAgICAgIChKU0M6OkRGRzo6RnJlcXVlbnRFeGl0U2l0ZTo6aXNIYXNoVGFibGVE
ZWxldGVkVmFsdWUpOgorICAgICAgICAqIGJ5dGVjb2RlL01ldGhvZE9mR2V0dGluZ0FWYWx1ZVBy
b2ZpbGUuY3BwOgorICAgICAgICAoSlNDOjpNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlOjpm
cm9tTGF6eU9wZXJhbmQpOgorICAgICAgICAoSlNDOjpNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9m
aWxlOjplbWl0UmVwb3J0VmFsdWUpOgorICAgICAgICAoSlNDOjpNZXRob2RPZkdldHRpbmdBVmFs
dWVQcm9maWxlOjpnZXRTcGVjRmFpbEJ1Y2tldCk6IERlbGV0ZWQuCisgICAgICAgICogYnl0ZWNv
ZGUvTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZS5oOgorICAgICAgICAoSlNDOjpNZXRob2RP
ZkdldHRpbmdBVmFsdWVQcm9maWxlOjpNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlKToKKyAg
ICAgICAgKEpTQzo6TWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZTo6b3BlcmF0b3IgYm9vbCk6
CisgICAgICAgIChKU0M6Ok1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGU6Om9wZXJhdG9yISk6
IERlbGV0ZWQuCisgICAgICAgICogYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuY3BwOgorICAg
ICAgICAoSlNDOjpBY2Nlc3NDYXNlOjpnZW5lcmF0ZUltcGwpOgorICAgICAgICAqIGJ5dGVjb2Rl
L1ZhbHVlUHJvZmlsZS5jcHA6CisgICAgICAgIChKU0M6OlJlc3VsdFByb2ZpbGU6OmVtaXREZXRl
Y3RCaXRzTGlnaHQpOgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjplbWl0U2V0RG91Ymxl
KToKKyAgICAgICAgKEpTQzo6UmVzdWx0UHJvZmlsZTo6ZW1pdFNldE5vbk51bWJlcik6CisgICAg
ICAgIChXVEY6OnByaW50SW50ZXJuYWwpOgorICAgICAgICAqIGJ5dGVjb2RlL1ZhbHVlUHJvZmls
ZS5oOgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpSZXN1bHRQcm9maWxlKToKKyAgICAg
ICAgKEpTQzo6UmVzdWx0UHJvZmlsZTo6Ynl0ZWNvZGVPZmZzZXQpOgorICAgICAgICAoSlNDOjpS
ZXN1bHRQcm9maWxlOjpzcGVjaWFsRmFzdFBhdGhDb3VudCk6CisgICAgICAgIChKU0M6OlJlc3Vs
dFByb2ZpbGU6OmRpZE9ic2VydmVOb25JbnQzMik6CisgICAgICAgIChKU0M6OlJlc3VsdFByb2Zp
bGU6OmRpZE9ic2VydmVEb3VibGUpOgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpkaWRP
YnNlcnZlTm9uTmVnWmVyb0RvdWJsZSk6CisgICAgICAgIChKU0M6OlJlc3VsdFByb2ZpbGU6OmRp
ZE9ic2VydmVOZWdaZXJvRG91YmxlKToKKyAgICAgICAgKEpTQzo6UmVzdWx0UHJvZmlsZTo6ZGlk
T2JzZXJ2ZU5vbk51bWJlcik6CisgICAgICAgIChKU0M6OlJlc3VsdFByb2ZpbGU6OmRpZE9ic2Vy
dmVJbnQzMk92ZXJmbG93KToKKyAgICAgICAgKEpTQzo6UmVzdWx0UHJvZmlsZTo6ZGlkT2JzZXJ2
ZUludDUyT3ZlcmZsb3cpOgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpzZXRPYnNlcnZl
ZE5vbk5lZ1plcm9Eb3VibGUpOgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpzZXRPYnNl
cnZlZE5lZ1plcm9Eb3VibGUpOgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpzZXRPYnNl
cnZlZE5vbk51bWJlcik6CisgICAgICAgIChKU0M6OlJlc3VsdFByb2ZpbGU6OnNldE9ic2VydmVk
SW50MzJPdmVyZmxvdyk6CisgICAgICAgIChKU0M6OlJlc3VsdFByb2ZpbGU6OmFkZHJlc3NPZkZs
YWdzKToKKyAgICAgICAgKEpTQzo6UmVzdWx0UHJvZmlsZTo6YWRkcmVzc09mU3BlY2lhbEZhc3RQ
YXRoQ291bnQpOgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpkZXRlY3RCaXRzTGlnaHQp
OgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpoYXNCaXRzKToKKyAgICAgICAgKiBkZmcv
REZHQnl0ZUNvZGVQYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2Vy
OjptYWtlU2FmZSk6CisgICAgICAgICogZGZnL0RGR0ZpeHVwUGhhc2UuY3BwOgorICAgICAgICAo
SlNDOjpERkc6OkZpeHVwUGhhc2U6OmZpeHVwTm9kZSk6CisgICAgICAgICogZGZnL0RGR0dyYXBo
LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpHcmFwaDo6ZW5zdXJlTmF0dXJhbExvb3BzKToKKyAg
ICAgICAgKEpTQzo6REZHOjpHcmFwaDo6bWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZUZvcik6
CisgICAgICAgIChKU0M6OkRGRzo6R3JhcGg6OnZhbHVlUHJvZmlsZUZvcik6IERlbGV0ZWQuCisg
ICAgICAgICogZGZnL0RGR0dyYXBoLmg6CisgICAgICAgIChKU0M6OkRGRzo6R3JhcGg6Omhhc0V4
aXRTaXRlKToKKyAgICAgICAgKEpTQzo6REZHOjpHcmFwaDo6bnVtQmxvY2tzKToKKyAgICAgICAg
KiBkZmcvREZHTm9kZS5oOgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6OmFyaXRoTm9kZUZsYWdz
KToKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjptYXlIYXZlTm9uSW50UmVzdWx0KToKKyAgICAg
ICAgKEpTQzo6REZHOjpOb2RlOjptYXlIYXZlRG91YmxlUmVzdWx0KToKKyAgICAgICAgKEpTQzo6
REZHOjpOb2RlOjptYXlIYXZlTm9uTnVtYmVyUmVzdWx0KToKKyAgICAgICAgKEpTQzo6REZHOjpO
b2RlOjpoYXNDb25zdGFudEJ1ZmZlcik6CisgICAgICAgICogZGZnL0RGR05vZGVGbGFncy5jcHA6
CisgICAgICAgIChKU0M6OkRGRzo6ZHVtcE5vZGVGbGFncyk6CisgICAgICAgICogZGZnL0RGR05v
ZGVGbGFncy5oOgorICAgICAgICAqIGRmZy9ERkdPU1JFeGl0Q29tcGlsZXIzMl82NC5jcHA6Cisg
ICAgICAgIChKU0M6OkRGRzo6T1NSRXhpdENvbXBpbGVyOjpjb21waWxlRXhpdCk6CisgICAgICAg
ICogZGZnL0RGR09TUkV4aXRDb21waWxlcjY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpPU1JF
eGl0Q29tcGlsZXI6OmNvbXBpbGVFeGl0KToKKyAgICAgICAgKiBkZmcvREZHT3BlcmF0aW9ucy5j
cHA6CisgICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuaDoKKyAgICAgICAgKiBkZmcvREZHUHJl
ZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2
ZUpJVC5oOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjYWxsT3BlcmF0aW9u
KToKKyAgICAgICAgKiBmdGwvRlRMT1NSRXhpdENvbXBpbGVyLmNwcDoKKyAgICAgICAgKEpTQzo6
RlRMOjpjb21waWxlU3R1Yik6CisgICAgICAgICogaml0L0Fzc2VtYmx5SGVscGVycy5oOgorICAg
ICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmJyYW5jaElmRXF1YWwpOgorICAgICAgICAoSlND
OjpBc3NlbWJseUhlbHBlcnM6OmJyYW5jaElmTm90Q2VsbCk6CisgICAgICAgIChKU0M6OkFzc2Vt
Ymx5SGVscGVyczo6YnJhbmNoSWZOb3ROdW1iZXIpOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhl
bHBlcnM6OmJyYW5jaElmTm90RG91YmxlS25vd25Ob3RJbnQzMik6CisgICAgICAgIChKU0M6OkFz
c2VtYmx5SGVscGVyczo6YnJhbmNoSWZCb29sZWFuKToKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlI
ZWxwZXJzOjpicmFuY2hJZkVtcHR5KToKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjpi
cmFuY2hTdHJ1Y3R1cmUpOgorICAgICAgICAqIGppdC9DQ2FsbEhlbHBlcnMuaDoKKyAgICAgICAg
KEpTQzo6Q0NhbGxIZWxwZXJzOjpDQ2FsbEhlbHBlcnMpOgorICAgICAgICAoSlNDOjpDQ2FsbEhl
bHBlcnM6OnNldHVwQXJndW1lbnRzKToKKyAgICAgICAgKEpTQzo6Q0NhbGxIZWxwZXJzOjpzZXR1
cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUpOgorICAgICAgICAqIGppdC9JbnRyaW5zaWNFbWl0dGVy
LmNwcDoKKyAgICAgICAgKEpTQzo6QWNjZXNzQ2FzZTo6ZW1pdEludHJpbnNpY0dldHRlcik6Cisg
ICAgICAgICogaml0L0pJVC5oOgorICAgICAgICAqIGppdC9KSVRBZGRHZW5lcmF0b3IuY3BwOgor
ICAgICAgICAoSlNDOjpKSVRBZGRHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgpOgorICAgICAg
ICAqIGppdC9KSVRBZGRHZW5lcmF0b3IuaDoKKyAgICAgICAgKEpTQzo6SklUQWRkR2VuZXJhdG9y
OjpKSVRBZGRHZW5lcmF0b3IpOgorICAgICAgICAqIGppdC9KSVRBcml0aG1ldGljLmNwcDoKKyAg
ICAgICAgKEpTQzo6SklUOjplbWl0X29wX2FkZCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNs
b3dfb3BfYWRkKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2Rpdik6CisgICAgICAgIChK
U0M6OkpJVDo6ZW1pdF9vcF9tdWwpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRTbG93X29wX211
bCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9zdWIpOgorICAgICAgICAoSlNDOjpKSVQ6
OmVtaXRTbG93X29wX3N1Yik6CisgICAgICAgICogaml0L0pJVElubGluZXMuaDoKKyAgICAgICAg
KEpTQzo6SklUOjpjYWxsT3BlcmF0aW9uKToKKyAgICAgICAgKEpTQzo6SklUOjpjYWxsT3BlcmF0
aW9uTm9FeGNlcHRpb25DaGVjayk6CisgICAgICAgICogaml0L0pJVE11bEdlbmVyYXRvci5jcHA6
CisgICAgICAgIChKU0M6OkpJVE11bEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aCk6CisgICAg
ICAgICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIGppdC9KSVRPcGVyYXRpb25z
Lmg6CisgICAgICAgICogaml0L0pJVFN1YkdlbmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6OkpJ
VFN1YkdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aCk6CisgICAgICAgICogaml0L0pJVFN1Ykdl
bmVyYXRvci5oOgorICAgICAgICAoSlNDOjpKSVRTdWJHZW5lcmF0b3I6OkpJVFN1YkdlbmVyYXRv
cik6CisgICAgICAgICogaml0L1RhZ1JlZ2lzdGVyc01vZGUuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdURjo6cHJpbnRJbnRlcm5hbCk6CisgICAgICAgICogaml0L1RhZ1JlZ2lzdGVyc01vZGUuaDog
QWRkZWQuCisgICAgICAgICogcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwOgorICAgICAgICAo
SlNDOjp1cGRhdGVSZXN1bHRQcm9maWxlRm9yQmluYXJ5QXJpdGhPcCk6CisKIDIwMTYtMDUtMDgg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBbQ09DT0FdIERpc2Fi
bGUgSEFWRV9EVFJBQ0UgYXQgYnVpbGQgdGltZQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFr
ZUxpc3RzLnR4dAkocmV2aXNpb24gMjAwNTE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0NN
YWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC01NjQsNiArNTY0LDcgQEAgc2V0KEphdmFT
Y3JpcHRDb3JlX1NPVVJDRVMKICAgICBqaXQvUmVwYXRjaC5jcHAKICAgICBqaXQvU2NyYXRjaFJl
Z2lzdGVyQWxsb2NhdG9yLmNwcAogICAgIGppdC9TZXR1cFZhcmFyZ3NGcmFtZS5jcHAKKyAgICBq
aXQvVGFnUmVnaXN0ZXJzTW9kZS5jcHAKICAgICBqaXQvVGVtcFJlZ2lzdGVyU2V0LmNwcAogICAg
IGppdC9UaHVua0dlbmVyYXRvcnMuY3BwCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCShyZXZpc2lvbiAyMDA1MTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTk5Niw2
ICsxOTk2LDggQEAKIAkJREMxN0U4MUExQzlDOTFFOTAwOEE2QUIzIC8qIENDYWxsSGVscGVycy5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzE3RTgx
NjFDOUM4MDJCMDA4QTZBQjMgLyogQ0NhbGxIZWxwZXJzLmNwcCAqLzsgfTsKIAkJREMyMTQzMDcx
Q0EzMkU1NTAwMEE4ODY5IC8qIElDU3RhdHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IERDMjE0MzA2MUNBMzJFNTIwMDBBODg2OSAvKiBJQ1N0YXRzLmgg
Ki87IH07CiAJCURDMjE0MzA4MUNBMzJFNTgwMDBBODg2OSAvKiBJQ1N0YXRzLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDMjE0MzA1MUNBMzJFNTIw
MDBBODg2OSAvKiBJQ1N0YXRzLmNwcCAqLzsgfTsKKwkJREM3OTk3ODMxQ0RFOUZBMDAwNEQ0QTA5
IC8qIFRhZ1JlZ2lzdGVyc01vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IERDNzk5NzgyMUNERTlGOUUwMDRENEEwOSAvKiBUYWdSZWdpc3RlcnNNb2Rl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJREM3
OTk3ODQxQ0RFOUZBMjAwNEQ0QTA5IC8qIFRhZ1JlZ2lzdGVyc01vZGUuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREM3OTk3ODExQ0RFOUY5RTAwNEQ0
QTA5IC8qIFRhZ1JlZ2lzdGVyc01vZGUuY3BwICovOyB9OwogCQlEQ0YzRDU2OTFDRDI5NDZEMDAz
RDVDNjUgLyogTGF6eUNsYXNzU3RydWN0dXJlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDRjNENTY0MUNEMjk0NjgwMDNENUM2NSAvKiBMYXp5Q2xh
c3NTdHJ1Y3R1cmUuY3BwICovOyB9OwogCQlEQ0YzRDU2QTFDRDI5NDcwMDAzRDVDNjUgLyogTGF6
eUNsYXNzU3RydWN0dXJlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBEQ0YzRDU2NTFDRDI5NDY4MDAzRDVDNjUgLyogTGF6eUNsYXNzU3RydWN0dXJlLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRENGM0Q1
NkIxQ0QyOTQ3MjAwM0Q1QzY1IC8qIExhenlDbGFzc1N0cnVjdHVyZUlubGluZXMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDRjNENTY2MUNEMjk0Njgw
MDNENUM2NSAvKiBMYXp5Q2xhc3NTdHJ1Y3R1cmVJbmxpbmVzLmggKi87IH07CkBAIC00MjExLDYg
KzQyMTMsOCBAQAogCQlEQzE3RTgxNjFDOUM4MDJCMDA4QTZBQjMgLyogQ0NhbGxIZWxwZXJzLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENDYWxsSGVscGVycy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURDMjE0MzA1MUNBMzJFNTIwMDBBODg2OSAv
KiBJQ1N0YXRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElDU3Rh
dHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQzIxNDMwNjFDQTMyRTUyMDAw
QTg4NjkgLyogSUNTdGF0cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJQ1N0
YXRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCURDNzk5NzgxMUNERTlGOUUwMDRE
NEEwOSAvKiBUYWdSZWdpc3RlcnNNb2RlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFRhZ1JlZ2lzdGVyc01vZGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlEQzc5OTc4MjFDREU5RjlFMDA0RDRBMDkgLyogVGFnUmVnaXN0ZXJzTW9kZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUYWdSZWdpc3RlcnNNb2RlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCURDRjNENTY0MUNEMjk0NjgwMDNENUM2NSAvKiBMYXp5Q2xh
c3NTdHJ1Y3R1cmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTGF6
eUNsYXNzU3RydWN0dXJlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRENGM0Q1
NjUxQ0QyOTQ2ODAwM0Q1QzY1IC8qIExhenlDbGFzc1N0cnVjdHVyZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBMYXp5Q2xhc3NTdHJ1Y3R1cmUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRENGM0Q1NjYxQ0QyOTQ2ODAwM0Q1QzY1IC8qIExhenlDbGFzc1N0cnVj
dHVyZUlubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGF6eUNsYXNz
U3RydWN0dXJlSW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTA4OSw2
ICs1MDkzLDggQEAKIAkJCQlGRTE4N0EwQzFDMDJFQkE3MDAzOEJCQ0EgLyogU25pcHBldE9wZXJh
bmQuaCAqLywKIAkJCQlBNzM4NjU1MTExODY5N0I0MDA1NDAyNzkgLyogU3BlY2lhbGl6ZWRUaHVu
a0pJVC5oICovLAogCQkJCUE3RkY2NDdBMThDNTJFODUwMEI1NTMwNyAvKiBTcGlsbFJlZ2lzdGVy
c01vZGUuaCAqLywKKwkJCQlEQzc5OTc4MTFDREU5RjlFMDA0RDRBMDkgLyogVGFnUmVnaXN0ZXJz
TW9kZS5jcHAgKi8sCisJCQkJREM3OTk3ODIxQ0RFOUY5RTAwNEQ0QTA5IC8qIFRhZ1JlZ2lzdGVy
c01vZGUuaCAqLywKIAkJCQkwRkMzMTQxMTE4MTQ1NTkxMDAwMzMyMzIgLyogVGVtcFJlZ2lzdGVy
U2V0LmNwcCAqLywKIAkJCQkwRjI0RTU0ODE3RUUyNzQ5MDBBQkIyMTcgLyogVGVtcFJlZ2lzdGVy
U2V0LmggKi8sCiAJCQkJMEY1NzJENEQxNjg3OUZEQjAwRTU3RkJEIC8qIFRodW5rR2VuZXJhdG9y
LmggKi8sCkBAIC03ODY5LDYgKzc4NzUsNyBAQAogCQkJCTg2RjNFRUJGMTY4Q0RFOTMwMDc3Qjky
QSAvKiBPYmpjUnVudGltZUV4dHJhcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTRDQTk1OEQxNkFC
NTBGQTAwOTM4QTA2IC8qIE9iamVjdEFsbG9jYXRpb25Qcm9maWxlLmggaW4gSGVhZGVycyAqLywK
IAkJCQlEQ0YzRDU2QzFDRDI5NDc1MDAzRDVDNjUgLyogTGF6eVByb3BlcnR5LmggaW4gSGVhZGVy
cyAqLywKKwkJCQlEQzc5OTc4MzFDREU5RkEwMDA0RDRBMDkgLyogVGFnUmVnaXN0ZXJzTW9kZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0NDUwRTE2RjVDRDAwQjM0NDYwIC8qIE9iamVjdENv
bnN0cnVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk5OTZCNzMyMjFCREEwOEVGMDAzMzFCODQg
LyogT2JqZWN0Q29uc3RydWN0b3IubHV0LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkQzRTQwQTFC
NjE4QjY2MDBDODBFMUUgLyogT2JqZWN0UHJvcGVydHlDb25kaXRpb24uaCBpbiBIZWFkZXJzICov
LApAQCAtOTA0MSw2ICs5MDQ4LDcgQEAKIAkJCQlGRTNBMDZCMzFDMTBDQjhFMDAzOTBGREQgLyog
SklUQml0WG9yR2VuZXJhdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1N0QyM0U1MTg5MENF
QkYwMDMxQzdGQSAvKiBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUE1MzI0Mzg5MTg1NjgzMzUwMDJFRDY5MiAvKiBJbnNwZWN0b3JGcm9udGVuZERpc3BhdGNo
ZXJzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCURDNzk5Nzg0MUNERTlGQTIwMDRENEEwOSAvKiBU
YWdSZWdpc3RlcnNNb2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk5RjFBNkZFMUI4RTZEOTQw
MDQ2M0IyNiAvKiBJbnNwZWN0b3JGcm9udGVuZFJvdXRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlBNTMzOUVDNzFCQjM5OUE5MDA1NEYwMDUgLyogSW5zcGVjdG9ySGVhcEFnZW50LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUUzNUUwMzVGMUI3QUI0M0UwMDczQUQyQSAvKiBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb25PYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCShyZXZpc2lvbiAyMDA1MTcpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgJKHdvcmtpbmcgY29weSkKQEAg
LTUwMCw3ICs1MDAsNyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBBU1NFUlQoSklUQ29kZTo6
aXNCYXNlbGluZUNvZGUoaml0VHlwZSgpKSk7CiAgICAgICAgIENvbmN1cnJlbnRKSVRMb2NrZXIg
bG9ja2VyKG1fbG9jayk7Ci0gICAgICAgIHJldHVybiBtX2V4aXRQcm9maWxlLmFkZChsb2NrZXIs
IHNpdGUpOworICAgICAgICByZXR1cm4gbV9leGl0UHJvZmlsZS5hZGQobG9ja2VyLCB0aGlzLCBz
aXRlKTsKICAgICB9CiAKICAgICBib29sIGhhc0V4aXRTaXRlKGNvbnN0IENvbmN1cnJlbnRKSVRM
b2NrZXImIGxvY2tlciwgY29uc3QgREZHOjpGcmVxdWVudEV4aXRTaXRlJiBzaXRlKSBjb25zdApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0RGR0V4aXRQcm9maWxlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvREZHRXhpdFByb2Zp
bGUuY3BwCShyZXZpc2lvbiAyMDA1MTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvREZHRXhpdFByb2ZpbGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOCwxNCArMjgsMjQgQEAKIAog
I2lmIEVOQUJMRShERkdfSklUKQogCisjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCisKIG5hbWVzcGFj
ZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIAordm9pZCBGcmVxdWVudEV4aXRTaXRlOjpkdW1wKFBy
aW50U3RyZWFtJiBvdXQpIGNvbnN0Cit7CisgICAgb3V0LnByaW50KCJiYyMiLCBtX2J5dGVjb2Rl
T2Zmc2V0LCAiOiAiLCBtX2tpbmQsICIvIiwgbV9qaXRUeXBlKTsKK30KKwogRXhpdFByb2ZpbGU6
OkV4aXRQcm9maWxlKCkgeyB9CiBFeGl0UHJvZmlsZTo6fkV4aXRQcm9maWxlKCkgeyB9CiAKLWJv
b2wgRXhpdFByb2ZpbGU6OmFkZChjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiwgY29uc3QgRnJl
cXVlbnRFeGl0U2l0ZSYgc2l0ZSkKK2Jvb2wgRXhpdFByb2ZpbGU6OmFkZChjb25zdCBDb25jdXJy
ZW50SklUTG9ja2VyJiwgQ29kZUJsb2NrKiBvd25lciwgY29uc3QgRnJlcXVlbnRFeGl0U2l0ZSYg
c2l0ZSkKIHsKICAgICBBU1NFUlQoc2l0ZS5qaXRUeXBlKCkgIT0gRXhpdEZyb21Bbnl0aGluZyk7
CisKKyAgICBpZiAoT3B0aW9uczo6dmVyYm9zZUV4aXRQcm9maWxlKCkpCisgICAgICAgIGRhdGFM
b2cocG9pbnRlckR1bXAob3duZXIpLCAiOiBBZGRpbmcgZXhpdCBzaXRlOiAiLCBzaXRlLCAiXG4i
KTsKICAgICAKICAgICAvLyBJZiB3ZSd2ZSBuZXZlciBzZWVuIGFueSBmcmVxdWVudCBleGl0cyB0
aGVuIGNyZWF0ZSB0aGUgbGlzdCBhbmQgcHV0IHRoaXMgc2l0ZQogICAgIC8vIGludG8gaXQuCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvREZHRXhpdFByb2ZpbGUuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvREZHRXhpdFByb2ZpbGUu
aAkocmV2aXNpb24gMjAwNTE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0RG
R0V4aXRQcm9maWxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDExLCAyMDEyLCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMS0yMDE0LCAyMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTE2
LDYgKzExNiw4IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHJldHVybiBtX2tpbmQgPT0gRXhp
dEtpbmRVbnNldCAmJiBtX2J5dGVjb2RlT2Zmc2V0OwogICAgIH0KKyAgICAKKyAgICB2b2lkIGR1
bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3Q7CiAKIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9i
eXRlY29kZU9mZnNldDsKQEAgLTE1OSw3ICsxNjEsNyBAQCBwdWJsaWM6CiAgICAgLy8gYmUgY2Fs
bGVkIGEgZml4ZWQgbnVtYmVyIG9mIHRpbWVzIHBlciByZWNvbXBpbGF0aW9uLiBSZWNvbXBpbGF0
aW9uIGlzCiAgICAgLy8gcmFyZSB0byBiZWdpbiB3aXRoLCBhbmQgaW1wbGllcyBkb2luZyBPKG4p
IG9wZXJhdGlvbnMgb24gdGhlIENvZGVCbG9jawogICAgIC8vIGFueXdheS4KLSAgICBib29sIGFk
ZChjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiwgY29uc3QgRnJlcXVlbnRFeGl0U2l0ZSYpOwor
ICAgIGJvb2wgYWRkKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBDb2RlQmxvY2sqIG93bmVy
LCBjb25zdCBGcmVxdWVudEV4aXRTaXRlJik7CiAgICAgCiAgICAgLy8gR2V0IHRoZSBmcmVxdWVu
dCBleGl0IHNpdGVzIGZvciBhIGJ5dGVjb2RlIGluZGV4LiBUaGlzIGlzIE8obiksIGFuZCBpcwog
ICAgIC8vIG1lYW50IHRvIG9ubHkgYmUgdXNlZCBmcm9tIGRlYnVnZ2luZy9wcm9maWxpbmcgY29k
ZS4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9NZXRob2RPZkdldHRpbmdB
VmFsdWVQcm9maWxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZS5jcHAJKHJldmlzaW9uIDIwMDUxNykK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9NZXRob2RPZkdldHRpbmdBVmFsdWVQ
cm9maWxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDEyLCAyMDEzLCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgsNiArMjgsNyBAQAogCiAj
aWYgRU5BQkxFKERGR19KSVQpCiAKKyNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKICNpbmNsdWRl
ICJDb2RlQmxvY2suaCIKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCiAKQEAgLTQ0LDE0ICs0NSwx
NSBAQCBNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlIE1ldGhvZE9mR2V0CiAgICAgcmV0dXJu
IHJlc3VsdDsKIH0KIAotRW5jb2RlZEpTVmFsdWUqIE1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2Zp
bGU6OmdldFNwZWNGYWlsQnVja2V0KHVuc2lnbmVkIGluZGV4KSBjb25zdAordm9pZCBNZXRob2RP
ZkdldHRpbmdBVmFsdWVQcm9maWxlOjplbWl0UmVwb3J0VmFsdWUoQ0NhbGxIZWxwZXJzJiBqaXQs
IEpTVmFsdWVSZWdzIHJlZ3MpIGNvbnN0CiB7CiAgICAgc3dpdGNoIChtX2tpbmQpIHsKICAgICBj
YXNlIE5vbmU6Ci0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm47CiAgICAgICAgIAog
ICAgIGNhc2UgUmVhZHk6Ci0gICAgICAgIHJldHVybiB1LnByb2ZpbGUtPnNwZWNGYWlsQnVja2V0
KGluZGV4KTsKKyAgICAgICAgaml0LnN0b3JlVmFsdWUocmVncywgdS5wcm9maWxlLT5zcGVjRmFp
bEJ1Y2tldCgwKSk7CisgICAgICAgIHJldHVybjsKICAgICAgICAgCiAgICAgY2FzZSBMYXp5T3Bl
cmFuZDogewogICAgICAgICBMYXp5T3BlcmFuZFZhbHVlUHJvZmlsZUtleSBrZXkodS5sYXp5T3Bl
cmFuZC5ieXRlY29kZU9mZnNldCwgVmlydHVhbFJlZ2lzdGVyKHUubGF6eU9wZXJhbmQub3BlcmFu
ZCkpOwpAQCAtNTksMTMgKzYxLDE2IEBAIEVuY29kZWRKU1ZhbHVlKiBNZXRob2RPZkdldHRpbmdB
VmFsdWVQcm8KICAgICAgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIodS5sYXp5T3BlcmFu
ZC5jb2RlQmxvY2stPm1fbG9jayk7CiAgICAgICAgIExhenlPcGVyYW5kVmFsdWVQcm9maWxlKiBw
cm9maWxlID0KICAgICAgICAgICAgIHUubGF6eU9wZXJhbmQuY29kZUJsb2NrLT5sYXp5T3BlcmFu
ZFZhbHVlUHJvZmlsZXMoKS5hZGQobG9ja2VyLCBrZXkpOwotICAgICAgICByZXR1cm4gcHJvZmls
ZS0+c3BlY0ZhaWxCdWNrZXQoaW5kZXgpOworICAgICAgICBqaXQuc3RvcmVWYWx1ZShyZWdzLCBw
cm9maWxlLT5zcGVjRmFpbEJ1Y2tldCgwKSk7CisgICAgICAgIHJldHVybjsKICAgICB9CiAgICAg
ICAgIAotICAgIGRlZmF1bHQ6Ci0gICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7
Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KKyAgICBjYXNlIFJlc3VsdFByb2ZpbGVSZWFkeTog
eworICAgICAgICB1LnJlc3VsdFByb2ZpbGUtPmVtaXREZXRlY3RCaXRzTGlnaHQoaml0LCByZWdz
LCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpOworICAgICAgICByZXR1cm47CisgICAgfSB9CisgICAg
CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAogfSAvLyBuYW1lc3BhY2Ug
SlNDCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTWV0aG9kT2ZHZXR0aW5n
QVZhbHVlUHJvZmlsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9NZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlLmgJKHJldmlzaW9uIDIwMDUxNykKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9NZXRob2RPZkdldHRpbmdBVmFsdWVQcm9m
aWxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMiwgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTMyLDEyICszMiwxNSBAQAogLy8gdGhlc2UgI2lmJ3Mgd2ls
bCBkaXNhcHBlYXIuLi4KICNpZiBFTkFCTEUoREZHX0pJVCkKIAorI2luY2x1ZGUgIkdQUkluZm8u
aCIKICNpbmNsdWRlICJKU0NKU1ZhbHVlLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCitjbGFzcyBD
Q2FsbEhlbHBlcnM7CiBjbGFzcyBDb2RlQmxvY2s7CiBjbGFzcyBMYXp5T3BlcmFuZFZhbHVlUHJv
ZmlsZUtleTsKK3N0cnVjdCBSZXN1bHRQcm9maWxlOwogc3RydWN0IFZhbHVlUHJvZmlsZTsKIAog
Y2xhc3MgTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZSB7CkBAIC00Nyw3ICs1MCw3IEBAIHB1
YmxpYzoKICAgICB7CiAgICAgfQogICAgIAotICAgIGV4cGxpY2l0IE1ldGhvZE9mR2V0dGluZ0FW
YWx1ZVByb2ZpbGUoVmFsdWVQcm9maWxlKiBwcm9maWxlKQorICAgIE1ldGhvZE9mR2V0dGluZ0FW
YWx1ZVByb2ZpbGUoVmFsdWVQcm9maWxlKiBwcm9maWxlKQogICAgIHsKICAgICAgICAgaWYgKHBy
b2ZpbGUpIHsKICAgICAgICAgICAgIG1fa2luZCA9IFJlYWR5OwpAQCAtNTYsMzEgKzU5LDM0IEBA
IHB1YmxpYzoKICAgICAgICAgICAgIG1fa2luZCA9IE5vbmU7CiAgICAgfQogICAgIAorICAgIE1l
dGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUoUmVzdWx0UHJvZmlsZSogcHJvZmlsZSkKKyAgICB7
CisgICAgICAgIGlmIChwcm9maWxlKSB7CisgICAgICAgICAgICBtX2tpbmQgPSBSZXN1bHRQcm9m
aWxlUmVhZHk7CisgICAgICAgICAgICB1LnJlc3VsdFByb2ZpbGUgPSBwcm9maWxlOworICAgICAg
ICB9IGVsc2UKKyAgICAgICAgICAgIG1fa2luZCA9IE5vbmU7CisgICAgfQorICAgIAogICAgIHN0
YXRpYyBNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlIGZyb21MYXp5T3BlcmFuZCgKICAgICAg
ICAgQ29kZUJsb2NrKiwgY29uc3QgTGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGVLZXkmKTsKICAgICAK
LSAgICBib29sIG9wZXJhdG9yISgpIGNvbnN0IHsgcmV0dXJuIG1fa2luZCA9PSBOb25lOyB9Ci0g
ICAgCi0gICAgLy8gVGhpcyBsb2dpY2FsbHkgaGFzIGEgcG9pbnRlciB0byBhICJUaGVyZSBleGlz
dHMgWCBzdWNoIHRoYXQKLSAgICAvLyBWYWx1ZVByb2ZpbGVCYXNlPFg+Ii4gQnV0IHNpbmNlIEMr
KyBkb2VzIG5vdCBoYXZlIGV4aXN0ZW50aWFsCi0gICAgLy8gdGVtcGxhdGVzLCBJIGNhbm5vdCBy
ZXR1cm4gaXQuIFNvIGluc3RlYWQsIGZvciBhbnkgbWV0aG9kcyB0aGF0Ci0gICAgLy8gdXNlcnMg
b2YgdGhpcyBjbGFzcyB3b3VsZCBsaWtlIHRvIGNhbGwsIHdlJ2xsIGp1c3QgaGF2ZSB0byBwcm92
aWRlCi0gICAgLy8gYSBtZXRob2QgaGVyZSB0aGF0IGRvZXMgaXQgdGhyb3VnaCBhbiBpbmRpcmVj
dGlvbi4gT3Igd2UgY291bGQKLSAgICAvLyBwb3NzaWJseSBqdXN0IG1ha2UgVmFsdWVQcm9maWxl
IGxlc3MgdGVtcGxhdGUtYmFzZWQuIEJ1dCBsYXN0IEkKLSAgICAvLyB0cmllZCB0aGF0LCBpdCBm
ZWx0IG1vcmUgeXVja3kgdGhhbiB0aGlzIGNsYXNzLgorICAgIGV4cGxpY2l0IG9wZXJhdG9yIGJv
b2woKSBjb25zdCB7IHJldHVybiBtX2tpbmQgIT0gTm9uZTsgfQogICAgIAotICAgIEVuY29kZWRK
U1ZhbHVlKiBnZXRTcGVjRmFpbEJ1Y2tldCh1bnNpZ25lZCBpbmRleCkgY29uc3Q7CisgICAgdm9p
ZCBlbWl0UmVwb3J0VmFsdWUoQ0NhbGxIZWxwZXJzJiwgSlNWYWx1ZVJlZ3MpIGNvbnN0OwogICAg
IAogcHJpdmF0ZToKICAgICBlbnVtIEtpbmQgewogICAgICAgICBOb25lLAogICAgICAgICBSZWFk
eSwKKyAgICAgICAgUmVzdWx0UHJvZmlsZVJlYWR5LAogICAgICAgICBMYXp5T3BlcmFuZAogICAg
IH07CiAgICAgCiAgICAgS2luZCBtX2tpbmQ7CiAgICAgdW5pb24gewogICAgICAgICBWYWx1ZVBy
b2ZpbGUqIHByb2ZpbGU7CisgICAgICAgIFJlc3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGU7CiAg
ICAgICAgIHN0cnVjdCB7CiAgICAgICAgICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jazsKICAgICAg
ICAgICAgIHVuc2lnbmVkIGJ5dGVjb2RlT2Zmc2V0OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuY3BwCShyZXZpc2lvbiAy
MDA1MTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nl
c3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTQ2LDggKzExNDYsNyBAQCB2b2lkIEFjY2Vzc0Nh
c2U6OmdlbmVyYXRlSW1wbChBY2Nlc3NHZW5lCiAgICAgICAgICAgICBpZiAodmVyYm9zZSkKICAg
ICAgICAgICAgICAgICBkYXRhTG9nKCJIYXZlIHR5cGU6ICIsIHR5cGUtPmRlc2NyaXB0b3IoKSwg
IlxuIik7CiAgICAgICAgICAgICBzdGF0ZS5mYWlsQW5kUmVwYXRjaC5hcHBlbmQoCi0gICAgICAg
ICAgICAgICAgaml0LmJyYW5jaElmTm90VHlwZSgKLSAgICAgICAgICAgICAgICAgICAgdmFsdWVS
ZWdzLCBzY3JhdGNoR1BSLCB0eXBlLT5kZXNjcmlwdG9yKCksIENDYWxsSGVscGVyczo6SGF2ZVRh
Z1JlZ2lzdGVycykpOworICAgICAgICAgICAgICAgIGppdC5icmFuY2hJZk5vdFR5cGUodmFsdWVS
ZWdzLCBzY3JhdGNoR1BSLCB0eXBlLT5kZXNjcmlwdG9yKCkpKTsKICAgICAgICAgfSBlbHNlIGlm
ICh2ZXJib3NlKQogICAgICAgICAgICAgZGF0YUxvZygiRG9uJ3QgaGF2ZSB0eXBlLlxuIik7CiAg
ICAgICAgIApAQCAtMTE3Nyw4ICsxMTc2LDcgQEAgdm9pZCBBY2Nlc3NDYXNlOjpnZW5lcmF0ZUlt
cGwoQWNjZXNzR2VuZQogICAgICAgICAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgICAgICAgICAg
ZGF0YUxvZygiSGF2ZSB0eXBlOiAiLCB0eXBlLT5kZXNjcmlwdG9yKCksICJcbiIpOwogICAgICAg
ICAgICAgc3RhdGUuZmFpbEFuZFJlcGF0Y2guYXBwZW5kKAotICAgICAgICAgICAgICAgIGppdC5i
cmFuY2hJZk5vdFR5cGUoCi0gICAgICAgICAgICAgICAgICAgIHZhbHVlUmVncywgc2NyYXRjaEdQ
UiwgdHlwZS0+ZGVzY3JpcHRvcigpLCBDQ2FsbEhlbHBlcnM6OkhhdmVUYWdSZWdpc3RlcnMpKTsK
KyAgICAgICAgICAgICAgICBqaXQuYnJhbmNoSWZOb3RUeXBlKHZhbHVlUmVncywgc2NyYXRjaEdQ
UiwgdHlwZS0+ZGVzY3JpcHRvcigpKSk7CiAgICAgICAgIH0gZWxzZSBpZiAodmVyYm9zZSkKICAg
ICAgICAgICAgIGRhdGFMb2coIkRvbid0IGhhdmUgdHlwZS5cbiIpOwogICAgICAgICAKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WYWx1ZVByb2ZpbGUuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WYWx1ZVByb2ZpbGUuY3BwCShy
ZXZpc2lvbiAyMDA1MTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmFsdWVQ
cm9maWxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiw2ICsyNiwzNiBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIlZhbHVlUHJvZmlsZS5oIgogCisjaW5jbHVkZSAiQ0NhbGxIZWxwZXJz
LmgiCisjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgorCituYW1lc3BhY2UgSlNDIHsKKwordm9pZCBS
ZXN1bHRQcm9maWxlOjplbWl0RGV0ZWN0Qml0c0xpZ2h0KENDYWxsSGVscGVycyYgaml0LCBKU1Zh
bHVlUmVncyByZWdzLCBUYWdSZWdpc3RlcnNNb2RlIG1vZGUpCit7CisgICAgQ0NhbGxIZWxwZXJz
OjpKdW1wIGlzSW50MzIgPSBqaXQuYnJhbmNoSWZJbnQzMihyZWdzLCBtb2RlKTsKKyAgICBDQ2Fs
bEhlbHBlcnM6Okp1bXAgbm90RG91YmxlID0gaml0LmJyYW5jaElmTm90RG91YmxlS25vd25Ob3RJ
bnQzMihyZWdzLCBtb2RlKTsKKyAgICAvLyBGSVhNRTogV2UgY291bGQgYmUgbW9yZSBwcmVjaXNl
IGhlcmUuCisgICAgZW1pdFNldERvdWJsZShqaXQpOworICAgIENDYWxsSGVscGVyczo6SnVtcCBk
b25lID0gaml0Lmp1bXAoKTsKKyAgICBub3REb3VibGUubGluaygmaml0KTsKKyAgICBlbWl0U2V0
Tm9uTnVtYmVyKGppdCk7CisgICAgZG9uZS5saW5rKCZqaXQpOworICAgIGlzSW50MzIubGluaygm
aml0KTsKK30KKwordm9pZCBSZXN1bHRQcm9maWxlOjplbWl0U2V0RG91YmxlKENDYWxsSGVscGVy
cyYgaml0KQoreworICAgIGppdC5vcjMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKFJlc3Vs
dFByb2ZpbGU6OkludDMyT3ZlcmZsb3cgfCBSZXN1bHRQcm9maWxlOjpJbnQ1Mk92ZXJmbG93IHwg
UmVzdWx0UHJvZmlsZTo6TmVnWmVyb0RvdWJsZSB8IFJlc3VsdFByb2ZpbGU6Ok5vbk5lZ1plcm9E
b3VibGUpLCBDQ2FsbEhlbHBlcnM6OkFic29sdXRlQWRkcmVzcyhhZGRyZXNzT2ZGbGFncygpKSk7
Cit9CisKK3ZvaWQgUmVzdWx0UHJvZmlsZTo6ZW1pdFNldE5vbk51bWJlcihDQ2FsbEhlbHBlcnMm
IGppdCkKK3sKKyAgICBqaXQub3IzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihSZXN1bHRQ
cm9maWxlOjpOb25OdW1iZXIpLCBDQ2FsbEhlbHBlcnM6OkFic29sdXRlQWRkcmVzcyhhZGRyZXNz
T2ZGbGFncygpKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIEpTQworCiBuYW1lc3BhY2UgV1RGIHsK
ICAgICAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CkBAIC0zNCwyMyArNjQsMzEgQEAgdm9pZCBwcmlu
dEludGVybmFsKFByaW50U3RyZWFtJiBvdXQsIGNvbgogewogICAgIGNvbnN0IGNoYXIqIHNlcGFy
YXRvciA9ICIiOwogCi0gICAgaWYgKHByb2ZpbGUuZGlkT2JzZXJ2ZU5lZ1plcm9Eb3VibGUoKSkg
ewotICAgICAgICBvdXQucHJpbnQoc2VwYXJhdG9yLCAiTmVnWmVyb0RvdWJsZSIpOworICAgIGlm
ICghcHJvZmlsZS5kaWRPYnNlcnZlTm9uSW50MzIoKSkgeworICAgICAgICBvdXQucHJpbnQoIklu
dDMyIik7CiAgICAgICAgIHNlcGFyYXRvciA9ICJ8IjsKKyAgICB9IGVsc2UgeworICAgICAgICBp
ZiAocHJvZmlsZS5kaWRPYnNlcnZlTmVnWmVyb0RvdWJsZSgpKSB7CisgICAgICAgICAgICBvdXQu
cHJpbnQoc2VwYXJhdG9yLCAiTmVnWmVyb0RvdWJsZSIpOworICAgICAgICAgICAgc2VwYXJhdG9y
ID0gInwiOworICAgICAgICB9CisgICAgICAgIGlmIChwcm9maWxlLmRpZE9ic2VydmVOb25OZWda
ZXJvRG91YmxlKCkpIHsKKyAgICAgICAgICAgIG91dC5wcmludCgiTm9uTmVnWmVyb0RvdWJsZSIp
OworICAgICAgICAgICAgc2VwYXJhdG9yID0gInwiOworICAgICAgICB9CisgICAgICAgIGlmIChw
cm9maWxlLmRpZE9ic2VydmVOb25OdW1iZXIoKSkgeworICAgICAgICAgICAgb3V0LnByaW50KCJO
b25OdW1iZXIiKTsKKyAgICAgICAgICAgIHNlcGFyYXRvciA9ICJ8IjsKKyAgICAgICAgfQorICAg
ICAgICBpZiAocHJvZmlsZS5kaWRPYnNlcnZlSW50MzJPdmVyZmxvdygpKSB7CisgICAgICAgICAg
ICBvdXQucHJpbnQoIkludDMyT3ZlcmZsb3ciKTsKKyAgICAgICAgICAgIHNlcGFyYXRvciA9ICJ8
IjsKKyAgICAgICAgfQorICAgICAgICBpZiAocHJvZmlsZS5kaWRPYnNlcnZlSW50NTJPdmVyZmxv
dygpKSB7CisgICAgICAgICAgICBvdXQucHJpbnQoIkludDUyT3ZlcmZsb3ciKTsKKyAgICAgICAg
ICAgIHNlcGFyYXRvciA9ICJ8IjsKKyAgICAgICAgfQogICAgIH0KLSAgICBpZiAocHJvZmlsZS5k
aWRPYnNlcnZlTm9uTnVtYmVyKCkpIHsKLSAgICAgICAgb3V0LnByaW50KCJOb25OdW1iZXIiKTsK
LSAgICAgICAgc2VwYXJhdG9yID0gInwiOwotICAgIH0KLSAgICBpZiAocHJvZmlsZS5kaWRPYnNl
cnZlSW50MzJPdmVyZmxvdygpKSB7Ci0gICAgICAgIG91dC5wcmludCgiSW50MzJPdmVyZmxvdyIp
OwotICAgICAgICBzZXBhcmF0b3IgPSAifCI7Ci0gICAgfQotICAgIGlmIChwcm9maWxlLmRpZE9i
c2VydmVJbnQ1Mk92ZXJmbG93KCkpIHsKLSAgICAgICAgb3V0LnByaW50KCJJbnQ1Mk92ZXJmbG93
Iik7Ci0gICAgICAgIHNlcGFyYXRvciA9ICJ8IjsKLSAgICB9Ci0KICAgICBpZiAocHJvZmlsZS5z
cGVjaWFsRmFzdFBhdGhDb3VudCgpKSB7CiAgICAgICAgIG91dC5wcmludCgiIHNwZWNpYWwgZmFz
dCBwYXRoOiAiKTsKICAgICAgICAgb3V0LnByaW50KHByb2ZpbGUuc3BlY2lhbEZhc3RQYXRoQ291
bnQoKSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmFsdWVQcm9maWxl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZhbHVlUHJv
ZmlsZS5oCShyZXZpc2lvbiAyMDA1MTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvVmFsdWVQcm9maWxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDExLCAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMS0yMDEzLCAyMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzQsMTIg
KzM0LDE1IEBACiAjaW5jbHVkZSAiSlNBcnJheS5oIgogI2luY2x1ZGUgIlNwZWN1bGF0ZWRUeXBl
LmgiCiAjaW5jbHVkZSAiU3RydWN0dXJlLmgiCisjaW5jbHVkZSAiVGFnUmVnaXN0ZXJzTW9kZS5o
IgogI2luY2x1ZGUgIldyaXRlQmFycmllci5oIgogI2luY2x1ZGUgPHd0Zi9QcmludFN0cmVhbS5o
PgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVhbS5oPgogCiBuYW1lc3BhY2UgSlNDIHsK
IAorY2xhc3MgQ0NhbGxIZWxwZXJzOworCiB0ZW1wbGF0ZTx1bnNpZ25lZCBudW1iZXJPZkJ1Y2tl
dHNBcmd1bWVudD4KIHN0cnVjdCBWYWx1ZVByb2ZpbGVCYXNlIHsKICAgICBzdGF0aWMgY29uc3Qg
dW5zaWduZWQgbnVtYmVyT2ZCdWNrZXRzID0gbnVtYmVyT2ZCdWNrZXRzQXJndW1lbnQ7CkBAIC0y
MTgsMjAgKzIyMSwyNSBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgZW51bSBPYnNlcnZlZFJlc3Vs
dHMgewotICAgICAgICBOZWdaZXJvRG91YmxlICAgID0gMSA8PCAwLAotICAgICAgICBOb25OdW1i
ZXIgICAgICAgID0gMSA8PCAxLAotICAgICAgICBJbnQzMk92ZXJmbG93ICAgID0gMSA8PCAyLAot
ICAgICAgICBJbnQ1Mk92ZXJmbG93ICAgID0gMSA8PCAzLAorICAgICAgICBOb25OZWdaZXJvRG91
YmxlID0gMSA8PCAwLAorICAgICAgICBOZWdaZXJvRG91YmxlICAgID0gMSA8PCAxLAorICAgICAg
ICBOb25OdW1iZXIgICAgICAgID0gMSA8PCAyLAorICAgICAgICBJbnQzMk92ZXJmbG93ICAgID0g
MSA8PCAzLAorICAgICAgICBJbnQ1Mk92ZXJmbG93ICAgID0gMSA8PCA0LAogICAgIH07CiAKICAg
ICBpbnQgYnl0ZWNvZGVPZmZzZXQoKSBjb25zdCB7IHJldHVybiBtX2J5dGVjb2RlT2Zmc2V0QW5k
RmxhZ3MgPj4gbnVtYmVyT2ZGbGFnQml0czsgfQogICAgIHVuc2lnbmVkIHNwZWNpYWxGYXN0UGF0
aENvdW50KCkgY29uc3QgeyByZXR1cm4gbV9zcGVjaWFsRmFzdFBhdGhDb3VudDsgfQogCisgICAg
Ym9vbCBkaWRPYnNlcnZlTm9uSW50MzIoKSBjb25zdCB7IHJldHVybiBoYXNCaXRzKE5vbk5lZ1pl
cm9Eb3VibGUgfCBOZWdaZXJvRG91YmxlIHwgTm9uTnVtYmVyKTsgfQorICAgIGJvb2wgZGlkT2Jz
ZXJ2ZURvdWJsZSgpIGNvbnN0IHsgcmV0dXJuIGhhc0JpdHMoTm9uTmVnWmVyb0RvdWJsZSB8IE5l
Z1plcm9Eb3VibGUpOyB9CisgICAgYm9vbCBkaWRPYnNlcnZlTm9uTmVnWmVyb0RvdWJsZSgpIGNv
bnN0IHsgcmV0dXJuIGhhc0JpdHMoTm9uTmVnWmVyb0RvdWJsZSk7IH0KICAgICBib29sIGRpZE9i
c2VydmVOZWdaZXJvRG91YmxlKCkgY29uc3QgeyByZXR1cm4gaGFzQml0cyhOZWdaZXJvRG91Ymxl
KTsgfQogICAgIGJvb2wgZGlkT2JzZXJ2ZU5vbk51bWJlcigpIGNvbnN0IHsgcmV0dXJuIGhhc0Jp
dHMoTm9uTnVtYmVyKTsgfQogICAgIGJvb2wgZGlkT2JzZXJ2ZUludDMyT3ZlcmZsb3coKSBjb25z
dCB7IHJldHVybiBoYXNCaXRzKEludDMyT3ZlcmZsb3cpOyB9CiAgICAgYm9vbCBkaWRPYnNlcnZl
SW50NTJPdmVyZmxvdygpIGNvbnN0IHsgcmV0dXJuIGhhc0JpdHMoSW50NTJPdmVyZmxvdyk7IH0K
IAorICAgIHZvaWQgc2V0T2JzZXJ2ZWROb25OZWdaZXJvRG91YmxlKCkgeyBzZXRCaXQoTm9uTmVn
WmVyb0RvdWJsZSk7IH0KICAgICB2b2lkIHNldE9ic2VydmVkTmVnWmVyb0RvdWJsZSgpIHsgc2V0
Qml0KE5lZ1plcm9Eb3VibGUpOyB9CiAgICAgdm9pZCBzZXRPYnNlcnZlZE5vbk51bWJlcigpIHsg
c2V0Qml0KE5vbk51bWJlcik7IH0KICAgICB2b2lkIHNldE9ic2VydmVkSW50MzJPdmVyZmxvdygp
IHsgc2V0Qml0KEludDMyT3ZlcmZsb3cpOyB9CkBAIC0yMzksNiArMjQ3LDI3IEBAIHB1YmxpYzoK
IAogICAgIHZvaWQqIGFkZHJlc3NPZkZsYWdzKCkgeyByZXR1cm4gJm1fYnl0ZWNvZGVPZmZzZXRB
bmRGbGFnczsgfQogICAgIHZvaWQqIGFkZHJlc3NPZlNwZWNpYWxGYXN0UGF0aENvdW50KCkgeyBy
ZXR1cm4gJm1fc3BlY2lhbEZhc3RQYXRoQ291bnQ7IH0KKyAgICAKKyAgICAvLyBTZXRzIChJbnQz
Mk92ZXJmbG93IHwgSW50NTJPdmVyZmxvdyB8IE5vbk5lZ1plcm9Eb3VibGUgfCBOZWdaZXJvRG91
YmxlKSBpZiBpdCBzZWVzIGEKKyAgICAvLyBkb3VibGUuIFNldHMgTm9uTnVtYmVyIGlmIGl0IHNl
ZXMgYSBub24tbnVtYmVyLgorICAgIHZvaWQgZW1pdERldGVjdEJpdHNMaWdodChDQ2FsbEhlbHBl
cnMmLCBKU1ZhbHVlUmVncywgVGFnUmVnaXN0ZXJzTW9kZSA9IEhhdmVUYWdSZWdpc3RlcnMpOwor
ICAgIAorICAgIHZvaWQgZGV0ZWN0Qml0c0xpZ2h0KEpTVmFsdWUgdmFsdWUpCisgICAgeworICAg
ICAgICBpZiAodmFsdWUuaXNJbnQzMigpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBp
ZiAodmFsdWUuaXNOdW1iZXIoKSkgeworICAgICAgICAgICAgbV9ieXRlY29kZU9mZnNldEFuZEZs
YWdzIHw9IEludDMyT3ZlcmZsb3cgfCBJbnQ1Mk92ZXJmbG93IHwgTm9uTmVnWmVyb0RvdWJsZSB8
IE5lZ1plcm9Eb3VibGU7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAg
bV9ieXRlY29kZU9mZnNldEFuZEZsYWdzIHw9IE5vbk51bWJlcjsKKyAgICB9CisgICAgCisgICAg
Ly8gU2V0cyAoSW50MzJPdmVyZmxvdyB8IEludDUyT3ZlcmZsb3cgfCBOb25OZWdaZXJvRG91Ymxl
IHwgTmVnWmVyb0RvdWJsZSkuCisgICAgdm9pZCBlbWl0U2V0RG91YmxlKENDYWxsSGVscGVycyYp
OworICAgIAorICAgIC8vIFNldHMgTm9uTnVtYmVyLgorICAgIHZvaWQgZW1pdFNldE5vbk51bWJl
cihDQ2FsbEhlbHBlcnMmKTsKIAogcHJpdmF0ZToKICAgICBib29sIGhhc0JpdHMoaW50IG1hc2sp
IGNvbnN0IHsgcmV0dXJuIG1fYnl0ZWNvZGVPZmZzZXRBbmRGbGFncyAmIG1hc2s7IH0KSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCShy
ZXZpc2lvbiAyMDA1MTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2Rl
UGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTA2LDQwICs5MDYsNTggQEAgcHJpdmF0ZToK
ICAgICAgICAgaWYgKCFpc1g4NigpICYmIG5vZGUtPm9wKCkgPT0gQXJpdGhNb2QpCiAgICAgICAg
ICAgICByZXR1cm4gbm9kZTsKIAotICAgICAgICBpZiAoIW1faW5saW5lU3RhY2tUb3AtPm1fcHJv
ZmlsZWRCbG9jay0+bGlrZWx5VG9UYWtlU2xvd0Nhc2UobV9jdXJyZW50SW5kZXgpKQotICAgICAg
ICAgICAgcmV0dXJuIG5vZGU7CisgICAgICAgIFJlc3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUg
PSBtX2lubGluZVN0YWNrVG9wLT5tX3Byb2ZpbGVkQmxvY2stPnJlc3VsdFByb2ZpbGVGb3JCeXRl
Y29kZU9mZnNldChtX2N1cnJlbnRJbmRleCk7CisgICAgICAgIGlmIChyZXN1bHRQcm9maWxlKSB7
CisgICAgICAgICAgICBzd2l0Y2ggKG5vZGUtPm9wKCkpIHsKKyAgICAgICAgICAgIGNhc2UgQXJp
dGhBZGQ6CisgICAgICAgICAgICBjYXNlIEFyaXRoU3ViOgorICAgICAgICAgICAgY2FzZSBWYWx1
ZUFkZDoKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0UHJvZmlsZS0+ZGlkT2JzZXJ2ZURvdWJs
ZSgpKQorICAgICAgICAgICAgICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlIYXZlRG91
YmxlUmVzdWx0KTsKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0UHJvZmlsZS0+ZGlkT2JzZXJ2
ZU5vbk51bWJlcigpKQorICAgICAgICAgICAgICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5vZGVN
YXlIYXZlTm9uTnVtYmVyUmVzdWx0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgICAgICAKKyAgICAgICAgICAgIGNhc2UgQXJpdGhNdWw6IHsKKyAgICAgICAgICAgICAgICBp
ZiAocmVzdWx0UHJvZmlsZS0+ZGlkT2JzZXJ2ZUludDUyT3ZlcmZsb3coKSkKKyAgICAgICAgICAg
ICAgICAgICAgbm9kZS0+bWVyZ2VGbGFncyhOb2RlTWF5T3ZlcmZsb3dJbnQ1Mik7CisgICAgICAg
ICAgICAgICAgaWYgKHJlc3VsdFByb2ZpbGUtPmRpZE9ic2VydmVJbnQzMk92ZXJmbG93KCkgfHwg
bV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5oYXNFeGl0U2l0ZShtX2N1cnJlbnRJbmRl
eCwgT3ZlcmZsb3cpKQorICAgICAgICAgICAgICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5vZGVN
YXlPdmVyZmxvd0ludDMySW5CYXNlbGluZSk7CisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdFBy
b2ZpbGUtPmRpZE9ic2VydmVOZWdaZXJvRG91YmxlKCkgfHwgbV9pbmxpbmVTdGFja1RvcC0+bV9l
eGl0UHJvZmlsZS5oYXNFeGl0U2l0ZShtX2N1cnJlbnRJbmRleCwgTmVnYXRpdmVaZXJvKSkKKyAg
ICAgICAgICAgICAgICAgICAgbm9kZS0+bWVyZ2VGbGFncyhOb2RlTWF5TmVnWmVyb0luQmFzZWxp
bmUpOworICAgICAgICAgICAgICAgIGlmIChyZXN1bHRQcm9maWxlLT5kaWRPYnNlcnZlRG91Ymxl
KCkpCisgICAgICAgICAgICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1heUhhdmVEb3Vi
bGVSZXN1bHQpOworICAgICAgICAgICAgICAgIGlmIChyZXN1bHRQcm9maWxlLT5kaWRPYnNlcnZl
Tm9uTnVtYmVyKCkpCisgICAgICAgICAgICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1h
eUhhdmVOb25OdW1iZXJSZXN1bHQpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAgICAgICAKLSAgICAgICAg
c3dpdGNoIChub2RlLT5vcCgpKSB7Ci0gICAgICAgIGNhc2UgVUludDMyVG9OdW1iZXI6Ci0gICAg
ICAgIGNhc2UgQXJpdGhBZGQ6Ci0gICAgICAgIGNhc2UgQXJpdGhTdWI6Ci0gICAgICAgIGNhc2Ug
VmFsdWVBZGQ6Ci0gICAgICAgIGNhc2UgQXJpdGhNb2Q6IC8vIGZvciBBcml0aE1vZCAiTWF5T3Zl
cmZsb3ciIG1lYW5zIHdlIHRyaWVkIHRvIGRpdmlkZSBieSB6ZXJvLCBvciB3ZSBzYXcgZG91Ymxl
LgotICAgICAgICAgICAgbm9kZS0+bWVyZ2VGbGFncyhOb2RlTWF5T3ZlcmZsb3dJbnQzMkluQmFz
ZWxpbmUpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAKLSAgICAgICAgY2FzZSBB
cml0aE5lZ2F0ZToKLSAgICAgICAgICAgIC8vIEN1cnJlbnRseSB3ZSBjYW4ndCB0ZWxsIHRoZSBk
aWZmZXJlbmNlIGJldHdlZW4gYSBuZWdhdGlvbiBvdmVyZmxvd2luZwotICAgICAgICAgICAgLy8g
KGkuZS4gLSgxIDw8IDMxKSkgb3IgZ2VuZXJhdGluZyBuZWdhdGl2ZSB6ZXJvIChpLmUuIC0wKS4g
SWYgaXQgdG9vayBzbG93Ci0gICAgICAgICAgICAvLyBwYXRoIHRoZW4gd2UgYXNzdW1lIHRoYXQg
aXQgZGlkIGJvdGggb2YgdGhvc2UgdGhpbmdzLgotICAgICAgICAgICAgbm9kZS0+bWVyZ2VGbGFn
cyhOb2RlTWF5T3ZlcmZsb3dJbnQzMkluQmFzZWxpbmUpOwotICAgICAgICAgICAgbm9kZS0+bWVy
Z2VGbGFncyhOb2RlTWF5TmVnWmVyb0luQmFzZWxpbmUpOwotICAgICAgICAgICAgYnJlYWs7Ci0K
LSAgICAgICAgY2FzZSBBcml0aE11bDogewotICAgICAgICAgICAgUmVzdWx0UHJvZmlsZSYgcmVz
dWx0UHJvZmlsZSA9ICptX2lubGluZVN0YWNrVG9wLT5tX3Byb2ZpbGVkQmxvY2stPnJlc3VsdFBy
b2ZpbGVGb3JCeXRlY29kZU9mZnNldChtX2N1cnJlbnRJbmRleCk7Ci0gICAgICAgICAgICBpZiAo
cmVzdWx0UHJvZmlsZS5kaWRPYnNlcnZlSW50NTJPdmVyZmxvdygpKQotICAgICAgICAgICAgICAg
IG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1heU92ZXJmbG93SW50NTIpOwotICAgICAgICAgICAgaWYg
KHJlc3VsdFByb2ZpbGUuZGlkT2JzZXJ2ZUludDMyT3ZlcmZsb3coKSB8fCBtX2lubGluZVN0YWNr
VG9wLT5tX2V4aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1fY3VycmVudEluZGV4LCBPdmVyZmxvdykp
CisgICAgICAgIGlmIChtX2lubGluZVN0YWNrVG9wLT5tX3Byb2ZpbGVkQmxvY2stPmxpa2VseVRv
VGFrZVNsb3dDYXNlKG1fY3VycmVudEluZGV4KSkgeworICAgICAgICAgICAgc3dpdGNoIChub2Rl
LT5vcCgpKSB7CisgICAgICAgICAgICBjYXNlIFVJbnQzMlRvTnVtYmVyOgorICAgICAgICAgICAg
Y2FzZSBBcml0aEFkZDoKKyAgICAgICAgICAgIGNhc2UgQXJpdGhTdWI6CisgICAgICAgICAgICBj
YXNlIFZhbHVlQWRkOgorICAgICAgICAgICAgY2FzZSBBcml0aE1vZDogLy8gZm9yIEFyaXRoTW9k
ICJNYXlPdmVyZmxvdyIgbWVhbnMgd2UgdHJpZWQgdG8gZGl2aWRlIGJ5IHplcm8sIG9yIHdlIHNh
dyBkb3VibGUuCisgICAgICAgICAgICAgICAgbm9kZS0+bWVyZ2VGbGFncyhOb2RlTWF5T3ZlcmZs
b3dJbnQzMkluQmFzZWxpbmUpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
ICAgIAorICAgICAgICAgICAgY2FzZSBBcml0aE5lZ2F0ZToKKyAgICAgICAgICAgICAgICAvLyBD
dXJyZW50bHkgd2UgY2FuJ3QgdGVsbCB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIGEgbmVnYXRpb24g
b3ZlcmZsb3dpbmcKKyAgICAgICAgICAgICAgICAvLyAoaS5lLiAtKDEgPDwgMzEpKSBvciBnZW5l
cmF0aW5nIG5lZ2F0aXZlIHplcm8gKGkuZS4gLTApLiBJZiBpdCB0b29rIHNsb3cKKyAgICAgICAg
ICAgICAgICAvLyBwYXRoIHRoZW4gd2UgYXNzdW1lIHRoYXQgaXQgZGlkIGJvdGggb2YgdGhvc2Ug
dGhpbmdzLgogICAgICAgICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1heU92ZXJmbG93
SW50MzJJbkJhc2VsaW5lKTsKLSAgICAgICAgICAgIGlmIChyZXN1bHRQcm9maWxlLmRpZE9ic2Vy
dmVOZWdaZXJvRG91YmxlKCkgfHwgbV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5oYXNF
eGl0U2l0ZShtX2N1cnJlbnRJbmRleCwgTmVnYXRpdmVaZXJvKSkKICAgICAgICAgICAgICAgICBu
b2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlOZWdaZXJvSW5CYXNlbGluZSk7Ci0gICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgfQotCi0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBSRUxFQVNF
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIAogICAg
ICAgICByZXR1cm4gbm9kZTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4
dXBQaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdG
aXh1cFBoYXNlLmNwcAkocmV2aXNpb24gMjAwNTE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdGaXh1cFBoYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjM2LDggKzIzNiw3IEBA
IHByaXZhdGU6CiAgICAgICAgIGNhc2UgQXJpdGhNdWw6IHsKICAgICAgICAgICAgIEVkZ2UmIGxl
ZnRDaGlsZCA9IG5vZGUtPmNoaWxkMSgpOwogICAgICAgICAgICAgRWRnZSYgcmlnaHRDaGlsZCA9
IG5vZGUtPmNoaWxkMigpOwotICAgICAgICAgICAgaWYgKE5vZGU6OnNob3VsZFNwZWN1bGF0ZVVu
dHlwZWRGb3JBcml0aG1ldGljKGxlZnRDaGlsZC5ub2RlKCksIHJpZ2h0Q2hpbGQubm9kZSgpKQot
ICAgICAgICAgICAgICAgICYmIG1fZ3JhcGguaGFzRXhpdFNpdGUobm9kZS0+b3JpZ2luLnNlbWFu
dGljLCBCYWRUeXBlKSkgeworICAgICAgICAgICAgaWYgKE5vZGU6OnNob3VsZFNwZWN1bGF0ZVVu
dHlwZWRGb3JBcml0aG1ldGljKGxlZnRDaGlsZC5ub2RlKCksIHJpZ2h0Q2hpbGQubm9kZSgpKSkg
ewogICAgICAgICAgICAgICAgIGZpeEVkZ2U8VW50eXBlZFVzZT4obGVmdENoaWxkKTsKICAgICAg
ICAgICAgICAgICBmaXhFZGdlPFVudHlwZWRVc2U+KHJpZ2h0Q2hpbGQpOwogICAgICAgICAgICAg
ICAgIG5vZGUtPnNldFJlc3VsdChOb2RlUmVzdWx0SlMpOwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdHcmFwaC5jcHAJKHJldmlzaW9uIDIwMDUxNykKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHR3JhcGguY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDQ2LDQ2ICsxNDQ2
LDUwIEBAIHZvaWQgR3JhcGg6OmVuc3VyZU5hdHVyYWxMb29wcygpCiAgICAgICAgIG1fbmF0dXJh
bExvb3BzID0gc3RkOjptYWtlX3VuaXF1ZTxOYXR1cmFsTG9vcHM+KCp0aGlzKTsKIH0KIAotVmFs
dWVQcm9maWxlKiBHcmFwaDo6dmFsdWVQcm9maWxlRm9yKE5vZGUqIG5vZGUpCitNZXRob2RPZkdl
dHRpbmdBVmFsdWVQcm9maWxlIEdyYXBoOjptZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlRm9y
KE5vZGUqIG5vZGUpCiB7Ci0gICAgaWYgKCFub2RlKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KyAgICB3aGlsZSAobm9kZSkgeworICAgICAgICBDb2RlQmxvY2sqIHByb2ZpbGVkQmxvY2sgPSBi
YXNlbGluZUNvZGVCbG9ja0Zvcihub2RlLT5vcmlnaW4uc2VtYW50aWMpOwogICAgICAgICAKLSAg
ICBDb2RlQmxvY2sqIHByb2ZpbGVkQmxvY2sgPSBiYXNlbGluZUNvZGVCbG9ja0Zvcihub2RlLT5v
cmlnaW4uc2VtYW50aWMpOworICAgICAgICBpZiAobm9kZS0+aGFzTG9jYWwoKnRoaXMpKSB7Cisg
ICAgICAgICAgICBWYWx1ZVByb2ZpbGUqIHJlc3VsdCA9IFsmXSAoKSAtPiBWYWx1ZVByb2ZpbGUq
IHsKKyAgICAgICAgICAgICAgICBpZiAoIW5vZGUtPmxvY2FsKCkuaXNBcmd1bWVudCgpKQorICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgICAgICAgICBpbnQgYXJn
dW1lbnQgPSBub2RlLT5sb2NhbCgpLnRvQXJndW1lbnQoKTsKKyAgICAgICAgICAgICAgICBOb2Rl
KiBhcmd1bWVudE5vZGUgPSBtX2FyZ3VtZW50c1thcmd1bWVudF07CisgICAgICAgICAgICAgICAg
aWYgKCFhcmd1bWVudE5vZGUpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwor
ICAgICAgICAgICAgICAgIGlmIChub2RlLT52YXJpYWJsZUFjY2Vzc0RhdGEoKSAhPSBhcmd1bWVu
dE5vZGUtPnZhcmlhYmxlQWNjZXNzRGF0YSgpKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKyAgICAgICAgICAgICAgICByZXR1cm4gcHJvZmlsZWRCbG9jay0+dmFsdWVQcm9m
aWxlRm9yQXJndW1lbnQoYXJndW1lbnQpOworICAgICAgICAgICAgfSgpOworICAgICAgICAgICAg
aWYgKHJlc3VsdCkKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAg
CisgICAgICAgICAgICBpZiAobm9kZS0+b3AoKSA9PSBHZXRMb2NhbCkgeworICAgICAgICAgICAg
ICAgIHJldHVybiBNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlOjpmcm9tTGF6eU9wZXJhbmQo
CisgICAgICAgICAgICAgICAgICAgIHByb2ZpbGVkQmxvY2ssCisgICAgICAgICAgICAgICAgICAg
IExhenlPcGVyYW5kVmFsdWVQcm9maWxlS2V5KAorICAgICAgICAgICAgICAgICAgICAgICAgbm9k
ZS0+b3JpZ2luLnNlbWFudGljLmJ5dGVjb2RlSW5kZXgsIG5vZGUtPmxvY2FsKCkpKTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfQogICAgICAgICAKLSAgICBpZiAobm9kZS0+aGFzTG9jYWwoKnRo
aXMpKSB7Ci0gICAgICAgIGlmICghbm9kZS0+bG9jYWwoKS5pc0FyZ3VtZW50KCkpCi0gICAgICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICAgICAgaW50IGFyZ3VtZW50ID0gbm9kZS0+bG9jYWwo
KS50b0FyZ3VtZW50KCk7Ci0gICAgICAgIE5vZGUqIGFyZ3VtZW50Tm9kZSA9IG1fYXJndW1lbnRz
W2FyZ3VtZW50XTsKLSAgICAgICAgaWYgKCFhcmd1bWVudE5vZGUpCi0gICAgICAgICAgICByZXR1
cm4gbnVsbHB0cjsKLSAgICAgICAgaWYgKG5vZGUtPnZhcmlhYmxlQWNjZXNzRGF0YSgpICE9IGFy
Z3VtZW50Tm9kZS0+dmFyaWFibGVBY2Nlc3NEYXRhKCkpCi0gICAgICAgICAgICByZXR1cm4gbnVs
bHB0cjsKLSAgICAgICAgcmV0dXJuIHByb2ZpbGVkQmxvY2stPnZhbHVlUHJvZmlsZUZvckFyZ3Vt
ZW50KGFyZ3VtZW50KTsKLSAgICB9CisgICAgICAgIGlmIChub2RlLT5oYXNIZWFwUHJlZGljdGlv
bigpKQorICAgICAgICAgICAgcmV0dXJuIHByb2ZpbGVkQmxvY2stPnZhbHVlUHJvZmlsZUZvckJ5
dGVjb2RlT2Zmc2V0KG5vZGUtPm9yaWdpbi5zZW1hbnRpYy5ieXRlY29kZUluZGV4KTsKICAgICAg
ICAgCi0gICAgaWYgKG5vZGUtPmhhc0hlYXBQcmVkaWN0aW9uKCkpCi0gICAgICAgIHJldHVybiBw
cm9maWxlZEJsb2NrLT52YWx1ZVByb2ZpbGVGb3JCeXRlY29kZU9mZnNldChub2RlLT5vcmlnaW4u
c2VtYW50aWMuYnl0ZWNvZGVJbmRleCk7CisgICAgICAgIGlmIChSZXN1bHRQcm9maWxlKiByZXN1
bHQgPSBwcm9maWxlZEJsb2NrLT5yZXN1bHRQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQobm9kZS0+
b3JpZ2luLnNlbWFudGljLmJ5dGVjb2RlSW5kZXgpKQorICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKICAgICAgICAgCi0gICAgcmV0dXJuIG51bGxwdHI7Ci19Ci0KLU1ldGhvZE9mR2V0dGluZ0FW
YWx1ZVByb2ZpbGUgR3JhcGg6Om1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGVGb3IoTm9kZSog
bm9kZSkKLXsKLSAgICBpZiAoIW5vZGUpCi0gICAgICAgIHJldHVybiBNZXRob2RPZkdldHRpbmdB
VmFsdWVQcm9maWxlKCk7Ci0gICAgCi0gICAgaWYgKFZhbHVlUHJvZmlsZSogdmFsdWVQcm9maWxl
ID0gdmFsdWVQcm9maWxlRm9yKG5vZGUpKQotICAgICAgICByZXR1cm4gTWV0aG9kT2ZHZXR0aW5n
QVZhbHVlUHJvZmlsZSh2YWx1ZVByb2ZpbGUpOwotICAgIAotICAgIGlmIChub2RlLT5vcCgpID09
IEdldExvY2FsKSB7Ci0gICAgICAgIENvZGVCbG9jayogcHJvZmlsZWRCbG9jayA9IGJhc2VsaW5l
Q29kZUJsb2NrRm9yKG5vZGUtPm9yaWdpbi5zZW1hbnRpYyk7Ci0gICAgICAgIAotICAgICAgICBy
ZXR1cm4gTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZTo6ZnJvbUxhenlPcGVyYW5kKAotICAg
ICAgICAgICAgcHJvZmlsZWRCbG9jaywKLSAgICAgICAgICAgIExhenlPcGVyYW5kVmFsdWVQcm9m
aWxlS2V5KAotICAgICAgICAgICAgICAgIG5vZGUtPm9yaWdpbi5zZW1hbnRpYy5ieXRlY29kZUlu
ZGV4LCBub2RlLT5sb2NhbCgpKSk7CisgICAgICAgIHN3aXRjaCAobm9kZS0+b3AoKSkgeworICAg
ICAgICBjYXNlIElkZW50aXR5OgorICAgICAgICBjYXNlIFZhbHVlUmVwOgorICAgICAgICBjYXNl
IERvdWJsZVJlcDoKKyAgICAgICAgY2FzZSBJbnQ1MlJlcDoKKyAgICAgICAgICAgIG5vZGUgPSBu
b2RlLT5jaGlsZDEoKS5ub2RlKCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVs
dDoKKyAgICAgICAgICAgIG5vZGUgPSBudWxscHRyOworICAgICAgICB9CiAgICAgfQogICAgIAog
ICAgIHJldHVybiBNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlKCk7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oCShyZXZpc2lvbiAyMDA1MTcpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgJKHdvcmtpbmcgY29weSkKQEAgLTQwMCw3ICs0MDAs
NiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBoYXNFeGl0U2l0ZShub2RlLT5vcmlnaW4uc2Vt
YW50aWMsIGV4aXRLaW5kKTsKICAgICB9CiAgICAgCi0gICAgVmFsdWVQcm9maWxlKiB2YWx1ZVBy
b2ZpbGVGb3IoTm9kZSopOwogICAgIE1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUgbWV0aG9k
T2ZHZXR0aW5nQVZhbHVlUHJvZmlsZUZvcihOb2RlKik7CiAgICAgCiAgICAgQmxvY2tJbmRleCBu
dW1CbG9ja3MoKSBjb25zdCB7IHJldHVybiBtX2Jsb2Nrcy5zaXplKCk7IH0KSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCShyZXZpc2lvbiAyMDA1MTcpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAkod29ya2luZyBjb3B5KQpAQCAtOTUwLDYgKzk1MCwy
MSBAQCBzdHJ1Y3QgTm9kZSB7CiAgICAgICAgIHJldHVybiByZXN1bHQgJiB+Tm9kZUJ5dGVjb2Rl
TmVlZHNOZWdaZXJvOwogICAgIH0KIAorICAgIGJvb2wgbWF5SGF2ZU5vbkludFJlc3VsdCgpCisg
ICAgeworICAgICAgICByZXR1cm4gbV9mbGFncyAmIE5vZGVNYXlIYXZlTm9uSW50UmVzdWx0Owor
ICAgIH0KKyAgICAKKyAgICBib29sIG1heUhhdmVEb3VibGVSZXN1bHQoKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIG1fZmxhZ3MgJiBOb2RlTWF5SGF2ZURvdWJsZVJlc3VsdDsKKyAgICB9CisgICAg
CisgICAgYm9vbCBtYXlIYXZlTm9uTnVtYmVyUmVzdWx0KCkKKyAgICB7CisgICAgICAgIHJldHVy
biBtX2ZsYWdzICYgTm9kZU1heUhhdmVOb25OdW1iZXJSZXN1bHQ7CisgICAgfQorCiAgICAgYm9v
bCBoYXNDb25zdGFudEJ1ZmZlcigpCiAgICAgewogICAgICAgICByZXR1cm4gb3AoKSA9PSBOZXdB
cnJheUJ1ZmZlcjsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZUZsYWdz
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVGbGFn
cy5jcHAJKHJldmlzaW9uIDIwMDUxNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Tm9kZUZsYWdzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODUsNiArODUsMTIgQEAgdm9pZCBkdW1w
Tm9kZUZsYWdzKFByaW50U3RyZWFtJiBhY3R1YWxPdQogICAgICAgICAgICAgb3V0LnByaW50KGNv
bW1hLCAiVXNlQXNPdGhlciIpOwogICAgIH0KIAorICAgIGlmIChmbGFncyAmIE5vZGVNYXlIYXZl
RG91YmxlUmVzdWx0KQorICAgICAgICBvdXQucHJpbnQoY29tbWEsICJNYXlIYXZlRG91YmxlUmVz
dWx0Iik7CisKKyAgICBpZiAoZmxhZ3MgJiBOb2RlTWF5SGF2ZU5vbk51bWJlclJlc3VsdCkKKyAg
ICAgICAgb3V0LnByaW50KGNvbW1hLCAiTWF5SGF2ZU5vbk51bWJlclJlc3VsdCIpOworCiAgICAg
aWYgKGZsYWdzICYgTm9kZU1heU92ZXJmbG93SW50NTIpCiAgICAgICAgIG91dC5wcmludChjb21t
YSwgIk1heU92ZXJmbG93SW50NTIiKTsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdOb2RlRmxhZ3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR05vZGVGbGFncy5oCShyZXZpc2lvbiAyMDA1MTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR05vZGVGbGFncy5oCSh3b3JraW5nIGNvcHkpCkBAIC00OCwyOCArNDgsMzAgQEAg
bmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogI2RlZmluZSBOb2RlSGFzVmFyQXJncyAg
ICAgICAgICAgICAgICAgICAweDAwMTAKICAgICAKICNkZWZpbmUgTm9kZUJlaGF2aW9yTWFzayAg
ICAgICAgICAgICAgICAgMHgwN2UwCisjZGVmaW5lIE5vZGVNYXlIYXZlRG91YmxlUmVzdWx0ICAg
ICAgICAgIDB4MDAyMAogI2RlZmluZSBOb2RlTWF5T3ZlcmZsb3dJbnQ1MiAgICAgICAgICAgICAw
eDAwNDAKICNkZWZpbmUgTm9kZU1heU92ZXJmbG93SW50MzJJbkJhc2VsaW5lICAgMHgwMDgwCiAj
ZGVmaW5lIE5vZGVNYXlPdmVyZmxvd0ludDMySW5ERkcgICAgICAgIDB4MDEwMAogI2RlZmluZSBO
b2RlTWF5TmVnWmVyb0luQmFzZWxpbmUgICAgICAgICAweDAyMDAKICNkZWZpbmUgTm9kZU1heU5l
Z1plcm9JbkRGRyAgICAgICAgICAgICAgMHgwNDAwCisjZGVmaW5lIE5vZGVNYXlIYXZlTm9uTnVt
YmVyUmVzdWx0ICAgICAgIDB4MDgwMAorI2RlZmluZSBOb2RlTWF5SGF2ZU5vbkludFJlc3VsdCAg
ICAgICAgICAoTm9kZU1heUhhdmVEb3VibGVSZXN1bHQgfCBOb2RlTWF5SGF2ZU5vbk51bWJlclJl
c3VsdCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0jZGVmaW5lIE5vZGVCeXRl
Y29kZUJhY2tQcm9wTWFzayAgICAgICAgIDB4ZjgwMAotI2RlZmluZSBOb2RlQnl0ZWNvZGVVc2VC
b3R0b20gICAgICAgICAgICAweDAwMDAKLSNkZWZpbmUgTm9kZUJ5dGVjb2RlVXNlc0FzTnVtYmVy
ICAgICAgICAgMHgwODAwIC8vIFRoZSByZXN1bHQgb2YgdGhpcyBjb21wdXRhdGlvbiBtYXkgYmUg
dXNlZCBpbiBhIGNvbnRleHQgdGhhdCBvYnNlcnZlcyBmcmFjdGlvbmFsLCBvciBiaWdnZXItdGhh
bi1pbnQzMiwgcmVzdWx0cy4KLSNkZWZpbmUgTm9kZUJ5dGVjb2RlTmVlZHNOZWdaZXJvICAgICAg
ICAgMHgxMDAwIC8vIFRoZSByZXN1bHQgb2YgdGhpcyBjb21wdXRhdGlvbiBtYXkgYmUgdXNlZCBp
biBhIGNvbnRleHQgdGhhdCBvYnNlcnZlcyAtMC4KLSNkZWZpbmUgTm9kZUJ5dGVjb2RlVXNlc0Fz
T3RoZXIgICAgICAgICAgMHgyMDAwIC8vIFRoZSByZXN1bHQgb2YgdGhpcyBjb21wdXRhdGlvbiBt
YXkgYmUgdXNlZCBpbiBhIGNvbnRleHQgdGhhdCBkaXN0aW5ndWlzaGVzIGJldHdlZW4gTmFOIGFu
ZCBvdGhlciB0aGluZ3MgKGxpa2UgdW5kZWZpbmVkKS4KLSNkZWZpbmUgTm9kZUJ5dGVjb2RlVXNl
c0FzVmFsdWUgICAgICAgICAgKE5vZGVCeXRlY29kZVVzZXNBc051bWJlciB8IE5vZGVCeXRlY29k
ZU5lZWRzTmVnWmVybyB8IE5vZGVCeXRlY29kZVVzZXNBc090aGVyKQotI2RlZmluZSBOb2RlQnl0
ZWNvZGVVc2VzQXNJbnQgICAgICAgICAgICAweDQwMDAgLy8gVGhlIHJlc3VsdCBvZiB0aGlzIGNv
bXB1dGF0aW9uIGlzIGtub3duIHRvIGJlIHVzZWQgaW4gYSBjb250ZXh0IHRoYXQgcHJlZmVycywg
YnV0IGRvZXMgbm90IHJlcXVpcmUsIGludGVnZXIgdmFsdWVzLgotI2RlZmluZSBOb2RlQnl0ZWNv
ZGVVc2VzQXNBcnJheUluZGV4ICAgICAweDgwMDAgLy8gVGhlIHJlc3VsdCBvZiB0aGlzIGNvbXB1
dGF0aW9uIGlzIGtub3duIHRvIGJlIHVzZWQgaW4gYSBjb250ZXh0IHRoYXQgc3Ryb25nbHkgcHJl
ZmVycyBpbnRlZ2VyIHZhbHVlcywgdG8gdGhlIHBvaW50IHRoYXQgd2Ugc2hvdWxkIGF2b2lkIHVz
aW5nIGRvdWJsZXMgaWYgYXQgYWxsIHBvc3NpYmxlLgorI2RlZmluZSBOb2RlQnl0ZWNvZGVCYWNr
UHJvcE1hc2sgICAgICAgIDB4MWYwMDAKKyNkZWZpbmUgTm9kZUJ5dGVjb2RlVXNlQm90dG9tICAg
ICAgICAgICAweDAwMDAwCisjZGVmaW5lIE5vZGVCeXRlY29kZVVzZXNBc051bWJlciAgICAgICAg
MHgwMTAwMCAvLyBUaGUgcmVzdWx0IG9mIHRoaXMgY29tcHV0YXRpb24gbWF5IGJlIHVzZWQgaW4g
YSBjb250ZXh0IHRoYXQgb2JzZXJ2ZXMgZnJhY3Rpb25hbCwgb3IgYmlnZ2VyLXRoYW4taW50MzIs
IHJlc3VsdHMuCisjZGVmaW5lIE5vZGVCeXRlY29kZU5lZWRzTmVnWmVybyAgICAgICAgMHgwMjAw
MCAvLyBUaGUgcmVzdWx0IG9mIHRoaXMgY29tcHV0YXRpb24gbWF5IGJlIHVzZWQgaW4gYSBjb250
ZXh0IHRoYXQgb2JzZXJ2ZXMgLTAuCisjZGVmaW5lIE5vZGVCeXRlY29kZVVzZXNBc090aGVyICAg
ICAgICAgMHgwNDAwMCAvLyBUaGUgcmVzdWx0IG9mIHRoaXMgY29tcHV0YXRpb24gbWF5IGJlIHVz
ZWQgaW4gYSBjb250ZXh0IHRoYXQgZGlzdGluZ3Vpc2hlcyBiZXR3ZWVuIE5hTiBhbmQgb3RoZXIg
dGhpbmdzIChsaWtlIHVuZGVmaW5lZCkuCisjZGVmaW5lIE5vZGVCeXRlY29kZVVzZXNBc1ZhbHVl
ICAgICAgICAgKE5vZGVCeXRlY29kZVVzZXNBc051bWJlciB8IE5vZGVCeXRlY29kZU5lZWRzTmVn
WmVybyB8IE5vZGVCeXRlY29kZVVzZXNBc090aGVyKQorI2RlZmluZSBOb2RlQnl0ZWNvZGVVc2Vz
QXNJbnQgICAgICAgICAgIDB4MDgwMDAgLy8gVGhlIHJlc3VsdCBvZiB0aGlzIGNvbXB1dGF0aW9u
IGlzIGtub3duIHRvIGJlIHVzZWQgaW4gYSBjb250ZXh0IHRoYXQgcHJlZmVycywgYnV0IGRvZXMg
bm90IHJlcXVpcmUsIGludGVnZXIgdmFsdWVzLgorI2RlZmluZSBOb2RlQnl0ZWNvZGVVc2VzQXNB
cnJheUluZGV4ICAgIDB4MTAwMDAgLy8gVGhlIHJlc3VsdCBvZiB0aGlzIGNvbXB1dGF0aW9uIGlz
IGtub3duIHRvIGJlIHVzZWQgaW4gYSBjb250ZXh0IHRoYXQgc3Ryb25nbHkgcHJlZmVycyBpbnRl
Z2VyIHZhbHVlcywgdG8gdGhlIHBvaW50IHRoYXQgd2Ugc2hvdWxkIGF2b2lkIHVzaW5nIGRvdWJs
ZXMgaWYgYXQgYWxsIHBvc3NpYmxlLgogCiAjZGVmaW5lIE5vZGVBcml0aEZsYWdzTWFzayAgICAg
ICAgICAgICAgIChOb2RlQmVoYXZpb3JNYXNrIHwgTm9kZUJ5dGVjb2RlQmFja1Byb3BNYXNrKQog
Ci0jZGVmaW5lIE5vZGVJc0ZsdXNoZWQgICAgICAgICAgICAgICAgICAgMHgxMDAwMCAvLyBDb21w
dXRlZCBieSBDUFNSZXRocmVhZGluZ1BoYXNlLCB3aWxsIHRlbGwgeW91IHdoaWNoIGxvY2FsIG5v
ZGVzIGFyZSBiYWNrd2FyZHMtcmVhY2hhYmxlIGZyb20gYSBGbHVzaC4KKyNkZWZpbmUgTm9kZUlz
Rmx1c2hlZCAgICAgICAgICAgICAgICAgICAweDIwMDAwIC8vIENvbXB1dGVkIGJ5IENQU1JldGhy
ZWFkaW5nUGhhc2UsIHdpbGwgdGVsbCB5b3Ugd2hpY2ggbG9jYWwgbm9kZXMgYXJlIGJhY2t3YXJk
cy1yZWFjaGFibGUgZnJvbSBhIEZsdXNoLgogCi0jZGVmaW5lIE5vZGVNaXNjRmxhZzEgICAgICAg
ICAgICAgICAgICAgMHgyMDAwMAotI2RlZmluZSBOb2RlTWlzY0ZsYWcyICAgICAgICAgICAgICAg
ICAgIDB4NDAwMDAKLSNkZWZpbmUgTm9kZU1pc2NGbGFnMyAgICAgICAgICAgICAgICAgICAweDgw
MDAwCisjZGVmaW5lIE5vZGVNaXNjRmxhZzEgICAgICAgICAgICAgICAgICAgMHg0MDAwMAorI2Rl
ZmluZSBOb2RlTWlzY0ZsYWcyICAgICAgICAgICAgICAgICAgIDB4ODAwMDAKIAogdHlwZWRlZiB1
aW50MzJfdCBOb2RlRmxhZ3M7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
T1NSRXhpdENvbXBpbGVyMzJfNjQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyMzJfNjQuY3BwCShyZXZpc2lvbiAyMDA1MTcpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlcjMyXzY0LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEs
IDIwMTMtMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTEsIDIwMTMtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEyOCwyOCArMTI4LDMwIEBAIHZvaWQgT1NS
RXhpdENvbXBpbGVyOjpjb21waWxlRXhpdChjb25zdCAKICAgICAgICAgICAgIH0KICAgICAgICAg
fQogICAgICAgICAKLSAgICAgICAgaWYgKCEhZXhpdC5tX3ZhbHVlUHJvZmlsZSkgewotICAgICAg
ICAgICAgRW5jb2RlZEpTVmFsdWUqIGJ1Y2tldCA9IGV4aXQubV92YWx1ZVByb2ZpbGUuZ2V0U3Bl
Y0ZhaWxCdWNrZXQoMCk7Ci0gICAgICAgIAorICAgICAgICBpZiAoTWV0aG9kT2ZHZXR0aW5nQVZh
bHVlUHJvZmlsZSBwcm9maWxlID0gZXhpdC5tX3ZhbHVlUHJvZmlsZSkgewogICAgICAgICAgICAg
aWYgKGV4aXQubV9qc1ZhbHVlU291cmNlLmlzQWRkcmVzcygpKSB7CiAgICAgICAgICAgICAgICAg
Ly8gU2F2ZSBhIHJlZ2lzdGVyIHNvIHdlIGNhbiB1c2UgaXQuCi0gICAgICAgICAgICAgICAgR1BS
UmVnIHNjcmF0Y2ggPSBBc3NlbWJseUhlbHBlcnM6OnNlbGVjdFNjcmF0Y2hHUFIoZXhpdC5tX2pz
VmFsdWVTb3VyY2UuYmFzZSgpKTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBt
X2ppdC5wdXNoKHNjcmF0Y2gpOworICAgICAgICAgICAgICAgIEdQUlJlZyBzY3JhdGNoUGF5bG9h
ZCA9IEFzc2VtYmx5SGVscGVyczo6c2VsZWN0U2NyYXRjaEdQUihleGl0Lm1fanNWYWx1ZVNvdXJj
ZS5iYXNlKCkpOworICAgICAgICAgICAgICAgIEdQUlJlZyBzY3JhdGNoVGFnID0gQXNzZW1ibHlI
ZWxwZXJzOjpzZWxlY3RTY3JhdGNoR1BSKGV4aXQubV9qc1ZhbHVlU291cmNlLmJhc2UoKSwgc2Ny
YXRjaFBheWxvYWQpOworICAgICAgICAgICAgICAgIG1faml0LnB1c2hUb1NhdmUoc2NyYXRjaFBh
eWxvYWQpOworICAgICAgICAgICAgICAgIG1faml0LnB1c2hUb1NhdmUoc2NyYXRjaFRhZyk7CiAK
LSAgICAgICAgICAgICAgICBtX2ppdC5sb2FkMzIoZXhpdC5tX2pzVmFsdWVTb3VyY2UuYXNBZGRy
ZXNzKE9CSkVDVF9PRkZTRVRPRihFbmNvZGVkVmFsdWVEZXNjcmlwdG9yLCBhc0JpdHMudGFnKSks
IHNjcmF0Y2gpOwotICAgICAgICAgICAgICAgIG1faml0LnN0b3JlMzIoc2NyYXRjaCwgJmJpdHdp
c2VfY2FzdDxFbmNvZGVkVmFsdWVEZXNjcmlwdG9yKj4oYnVja2V0KS0+YXNCaXRzLnRhZyk7Ci0g
ICAgICAgICAgICAgICAgbV9qaXQubG9hZDMyKGV4aXQubV9qc1ZhbHVlU291cmNlLmFzQWRkcmVz
cyhPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRvciwgYXNCaXRzLnBheWxvYWQp
KSwgc2NyYXRjaCk7Ci0gICAgICAgICAgICAgICAgbV9qaXQuc3RvcmUzMihzY3JhdGNoLCAmYml0
d2lzZV9jYXN0PEVuY29kZWRWYWx1ZURlc2NyaXB0b3IqPihidWNrZXQpLT5hc0JpdHMucGF5bG9h
ZCk7CisgICAgICAgICAgICAgICAgSlNWYWx1ZVJlZ3Mgc2NyYXRjaChzY3JhdGNoVGFnLCBzY3Jh
dGNoUGF5bG9hZCk7CiAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgbV9qaXQucG9w
KHNjcmF0Y2gpOworICAgICAgICAgICAgICAgIG1faml0LmxvYWRWYWx1ZShleGl0Lm1fanNWYWx1
ZVNvdXJjZS5hc0FkZHJlc3MoKSwgc2NyYXRjaCk7CisgICAgICAgICAgICAgICAgcHJvZmlsZS5l
bWl0UmVwb3J0VmFsdWUobV9qaXQsIHNjcmF0Y2gpOworICAgICAgICAgICAgICAgIAorICAgICAg
ICAgICAgICAgIG1faml0LnBvcFRvUmVzdG9yZShzY3JhdGNoVGFnKTsKKyAgICAgICAgICAgICAg
ICBtX2ppdC5wb3BUb1Jlc3RvcmUoc2NyYXRjaFBheWxvYWQpOwogICAgICAgICAgICAgfSBlbHNl
IGlmIChleGl0Lm1fanNWYWx1ZVNvdXJjZS5oYXNLbm93blRhZygpKSB7Ci0gICAgICAgICAgICAg
ICAgbV9qaXQuc3RvcmUzMihBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMihleGl0Lm1fanNW
YWx1ZVNvdXJjZS50YWcoKSksICZiaXR3aXNlX2Nhc3Q8RW5jb2RlZFZhbHVlRGVzY3JpcHRvcio+
KGJ1Y2tldCktPmFzQml0cy50YWcpOwotICAgICAgICAgICAgICAgIG1faml0LnN0b3JlMzIoZXhp
dC5tX2pzVmFsdWVTb3VyY2UucGF5bG9hZEdQUigpLCAmYml0d2lzZV9jYXN0PEVuY29kZWRWYWx1
ZURlc2NyaXB0b3IqPihidWNrZXQpLT5hc0JpdHMucGF5bG9hZCk7Ci0gICAgICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgICAgIG1faml0LnN0b3JlMzIoZXhpdC5tX2pzVmFsdWVTb3VyY2Uu
dGFnR1BSKCksICZiaXR3aXNlX2Nhc3Q8RW5jb2RlZFZhbHVlRGVzY3JpcHRvcio+KGJ1Y2tldCkt
PmFzQml0cy50YWcpOwotICAgICAgICAgICAgICAgIG1faml0LnN0b3JlMzIoZXhpdC5tX2pzVmFs
dWVTb3VyY2UucGF5bG9hZEdQUigpLCAmYml0d2lzZV9jYXN0PEVuY29kZWRWYWx1ZURlc2NyaXB0
b3IqPihidWNrZXQpLT5hc0JpdHMucGF5bG9hZCk7Ci0gICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgR1BSUmVnIHNjcmF0Y2hUYWcgPSBBc3NlbWJseUhlbHBlcnM6OnNlbGVjdFNjcmF0Y2hH
UFIoZXhpdC5tX2pzVmFsdWVTb3VyY2UucGF5bG9hZEdQUigpKTsKKyAgICAgICAgICAgICAgICBt
X2ppdC5wdXNoVG9TYXZlKHNjcmF0Y2hUYWcpOworICAgICAgICAgICAgICAgIG1faml0Lm1vdmUo
QXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIoZXhpdC5tX2pzVmFsdWVTb3VyY2UudGFnKCkp
LCBzY3JhdGNoVGFnKTsKKyAgICAgICAgICAgICAgICBKU1ZhbHVlUmVncyB2YWx1ZShzY3JhdGNo
VGFnLCBleGl0Lm1fanNWYWx1ZVNvdXJjZS5wYXlsb2FkR1BSKCkpOworICAgICAgICAgICAgICAg
IHByb2ZpbGUuZW1pdFJlcG9ydFZhbHVlKG1faml0LCB2YWx1ZSk7CisgICAgICAgICAgICAgICAg
bV9qaXQucG9wVG9SZXN0b3JlKHNjcmF0Y2hUYWcpOworICAgICAgICAgICAgfSBlbHNlCisgICAg
ICAgICAgICAgICAgcHJvZmlsZS5lbWl0UmVwb3J0VmFsdWUobV9qaXQsIGV4aXQubV9qc1ZhbHVl
U291cmNlLnJlZ3MoKSk7CiAgICAgICAgIH0KICAgICB9CiAgICAgCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlcjY0LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlcjY0LmNwcAkocmV2aXNp
b24gMjAwNTE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGls
ZXI2NC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDExLCAyMDEzLTIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDExLCAyMDEzLTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMzQsMTcgKzEzNCwxNSBA
QCB2b2lkIE9TUkV4aXRDb21waWxlcjo6Y29tcGlsZUV4aXQoY29uc3QgCiAgICAgICAgICAgICB9
CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIGlmICghIWV4aXQubV92YWx1ZVByb2ZpbGUp
IHsKLSAgICAgICAgICAgIEVuY29kZWRKU1ZhbHVlKiBidWNrZXQgPSBleGl0Lm1fdmFsdWVQcm9m
aWxlLmdldFNwZWNGYWlsQnVja2V0KDApOwotICAgICAgICAgICAgCisgICAgICAgIGlmIChNZXRo
b2RPZkdldHRpbmdBVmFsdWVQcm9maWxlIHByb2ZpbGUgPSBleGl0Lm1fdmFsdWVQcm9maWxlKSB7
CiAgICAgICAgICAgICBpZiAoZXhpdC5tX2pzVmFsdWVTb3VyY2UuaXNBZGRyZXNzKCkpIHsKICAg
ICAgICAgICAgICAgICAvLyBXZSBjYW4ndCBiZSBzdXJlIHRoYXQgd2UgaGF2ZSBhIHNwYXJlIHJl
Z2lzdGVyLiBTbyB1c2UgdGhlIHRhZ1R5cGVOdW1iZXJSZWdpc3RlciwKICAgICAgICAgICAgICAg
ICAvLyBzaW5jZSB3ZSBrbm93IGhvdyB0byByZXN0b3JlIGl0LgogICAgICAgICAgICAgICAgIG1f
aml0LmxvYWQ2NChBc3NlbWJseUhlbHBlcnM6OkFkZHJlc3MoZXhpdC5tX2pzVmFsdWVTb3VyY2Uu
YXNBZGRyZXNzKCkpLCBHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIpOwotICAgICAgICAg
ICAgICAgIG1faml0LnN0b3JlNjQoR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyLCBidWNr
ZXQpOworICAgICAgICAgICAgICAgIHByb2ZpbGUuZW1pdFJlcG9ydFZhbHVlKG1faml0LCBKU1Zh
bHVlUmVncyhHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIpKTsKICAgICAgICAgICAgICAg
ICBtX2ppdC5tb3ZlKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTY0KFRhZ1R5cGVOdW1iZXIp
LCBHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIpOwogICAgICAgICAgICAgfSBlbHNlCi0g
ICAgICAgICAgICAgICAgbV9qaXQuc3RvcmU2NChleGl0Lm1fanNWYWx1ZVNvdXJjZS5ncHIoKSwg
YnVja2V0KTsKKyAgICAgICAgICAgICAgICBwcm9maWxlLmVtaXRSZXBvcnRWYWx1ZShtX2ppdCwg
SlNWYWx1ZVJlZ3MoZXhpdC5tX2pzVmFsdWVTb3VyY2UuZ3ByKCkpKTsKICAgICAgICAgfQogICAg
IH0KICAgICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25z
LmNwcAkocmV2aXNpb24gMjAwNTE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdP
cGVyYXRpb25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjY4LDE3ICsyNjgsNiBAQCBFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc051bWJlcihzdGF0aWNfY2FzdDxpbnQzMl90PihhID4+IChiICYgMHgxZikpKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVBZGQoRXhlY1N0
YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkT3AyKQotewotICAgIFZNKiB2bSA9ICZleGVjLT52bSgpOwotICAgIE5hdGl2ZUNhbGxGcmFt
ZVRyYWNlciB0cmFjZXIodm0sIGV4ZWMpOwotICAgIAotICAgIEpTVmFsdWUgb3AxID0gSlNWYWx1
ZTo6ZGVjb2RlKGVuY29kZWRPcDEpOwotICAgIEpTVmFsdWUgb3AyID0gSlNWYWx1ZTo6ZGVjb2Rl
KGVuY29kZWRPcDIpOwotICAgIAotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNBZGQoZXhl
Yywgb3AxLCBvcDIpKTsKLX0KLQogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRp
b25WYWx1ZUFkZE5vdE51bWJlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpCiB7CiAgICAgVk0qIHZtID0gJmV4ZWMt
PnZtKCk7CkBAIC0zMDgsMzIgKzI5Nyw2IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uVmEKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGEgLyBiKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVNdWwoRXhl
Y1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkT3AyKQotewotICAgIFZNKiB2bSA9ICZleGVjLT52bSgpOwotICAgIE5hdGl2ZUNhbGxG
cmFtZVRyYWNlciB0cmFjZXIodm0sIGV4ZWMpOwotCi0gICAgSlNWYWx1ZSBvcDEgPSBKU1ZhbHVl
OjpkZWNvZGUoZW5jb2RlZE9wMSk7Ci0gICAgSlNWYWx1ZSBvcDIgPSBKU1ZhbHVlOjpkZWNvZGUo
ZW5jb2RlZE9wMik7Ci0KLSAgICBkb3VibGUgYSA9IG9wMS50b051bWJlcihleGVjKTsKLSAgICBk
b3VibGUgYiA9IG9wMi50b051bWJlcihleGVjKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzTnVtYmVyKGEgKiBiKSk7Ci19Ci0KLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uVmFsdWVTdWIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3Ax
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKQotewotICAgIFZNKiB2bSA9ICZleGVjLT52bSgp
OwotICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGV4ZWMpOwotICAgIAotICAg
IEpTVmFsdWUgb3AxID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDEpOwotICAgIEpTVmFsdWUg
b3AyID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDIpOwotCi0gICAgZG91YmxlIGEgPSBvcDEu
dG9OdW1iZXIoZXhlYyk7Ci0gICAgZG91YmxlIGIgPSBvcDIudG9OdW1iZXIoZXhlYyk7Ci0gICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihhIC0gYikpOwotfQotCiBzdGF0aWMgQUxX
QVlTX0lOTElORSBFbmNvZGVkSlNWYWx1ZSBnZXRCeVZhbChFeGVjU3RhdGUqIGV4ZWMsIEpTQ2Vs
bCogYmFzZSwgdWludDMyX3QgaW5kZXgpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5oCShyZXZpc2lvbiAy
MDA1MTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaAkod29y
a2luZyBjb3B5KQpAQCAtNTEsMTEgKzUxLDggQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBvcGVyYXRpb25WYQogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1
ZUJpdExTaGlmdChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkT3AyKSBXVEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvblZhbHVlQml0UlNoaWZ0KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpIFdURl9JTlRFUk5BTDsKIEVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVCaXRVUlNoaWZ0KEV4ZWNT
dGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRP
cDIpIFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
VmFsdWVBZGQoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZE9wMikgV1RGX0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBvcGVyYXRpb25WYWx1ZUFkZE5vdE51bWJlcihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSBXVEZfSU5URVJOQUw7CiBF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlRGl2KEV4ZWNTdGF0ZSos
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpIFdU
Rl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVN
dWwoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZE9wMikgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBv
cGVyYXRpb25WYWx1ZVN1YihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSBXVEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5VmFsKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkUHJvcGVydHkpIFdURl9JTlRFUk5B
TDsKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlWYWxDZWxsKEV4
ZWNTdGF0ZSosIEpTQ2VsbCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRQcm9wZXJ0eSkgV1RGX0lO
VEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeVZhbEFy
cmF5SW50KEV4ZWNTdGF0ZSosIEpTQXJyYXkqLCBpbnQzMl90KSBXVEZfSU5URVJOQUw7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rp
b25Qcm9wYWdhdGlvblBoYXNlLmNwcAkocmV2aXNpb24gMjAwNTE3KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTE5MSwxMyArMTkxLDE2IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAg
ICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjSW50NTJPbmx5KTsKICAgICAgICAg
ICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJn
ZVByZWRpY3Rpb24oc3BlY3VsYXRlZERvdWJsZVR5cGVGb3JQcmVkaWN0aW9ucyhsZWZ0LCByaWdo
dCkpOwotICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoCi0gICAgICAgICAgICAgICAgICAgICEo
bGVmdCAmIChTcGVjRnVsbE51bWJlciB8IFNwZWNCb29sZWFuKSkKLSAgICAgICAgICAgICAgICAg
ICAgfHwgIShyaWdodCAmIChTcGVjRnVsbE51bWJlciB8IFNwZWNCb29sZWFuKSkpIHsKKyAgICAg
ICAgICAgICAgICB9IGVsc2UgaWYgKGlzU3RyaW5nT3JTdHJpbmdPYmplY3RTcGVjdWxhdGlvbihs
ZWZ0KSAmJiBpc1N0cmluZ09yU3RyaW5nT2JqZWN0U3BlY3VsYXRpb24ocmlnaHQpKSB7CiAgICAg
ICAgICAgICAgICAgICAgIC8vIGxlZnQgb3IgcmlnaHQgaXMgZGVmaW5pdGVseSBzb21ldGhpbmcg
b3RoZXIgdGhhbiBhIG51bWJlci4KICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJn
ZVByZWRpY3Rpb24oU3BlY1N0cmluZyk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlCi0gICAgICAg
ICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKFNwZWNTdHJpbmcgfCBTcGVj
SW50MzJPbmx5IHwgU3BlY0J5dGVjb2RlRG91YmxlKTsKKyAgICAgICAgICAgICAgICB9IGVsc2Ug
eworICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjSW50
MzJPbmx5KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG5vZGUtPm1heUhhdmVEb3VibGVSZXN1
bHQoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9u
KFNwZWNCeXRlY29kZURvdWJsZSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChub2RlLT5tYXlI
YXZlTm9uTnVtYmVyUmVzdWx0KCkpCisgICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9
IG1lcmdlUHJlZGljdGlvbihTcGVjU3RyaW5nKTsKKyAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtMjExLDggKzIxNCwxMiBA
QCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlv
bihTcGVjSW50MzJPbmx5KTsKICAgICAgICAgICAgICAgICBlbHNlIGlmIChtX2dyYXBoLmFkZFNo
b3VsZFNwZWN1bGF0ZUFueUludChub2RlKSkKICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8
PSBtZXJnZVByZWRpY3Rpb24oU3BlY0ludDUyT25seSk7Ci0gICAgICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgICAgIGVsc2UgaWYgKGlzRnVsbE51bWJlck9yQm9vbGVhblNwZWN1bGF0aW9u
KGxlZnQpICYmIGlzRnVsbE51bWJlck9yQm9vbGVhblNwZWN1bGF0aW9uKHJpZ2h0KSkKICAgICAg
ICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oc3BlY3VsYXRlZERvdWJs
ZVR5cGVGb3JQcmVkaWN0aW9ucyhsZWZ0LCByaWdodCkpOworICAgICAgICAgICAgICAgIGVsc2Ug
aWYgKG5vZGUtPm1heUhhdmVOb25JbnRSZXN1bHQoKSB8fCAobGVmdCAmIFNwZWNCeXRlY29kZURv
dWJsZSkgfHwgKHJpZ2h0ICYgU3BlY0J5dGVjb2RlRG91YmxlKSkKKyAgICAgICAgICAgICAgICAg
ICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY0ludDMyT25seSB8IFNwZWNCeXRlY29k
ZURvdWJsZSk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBjaGFu
Z2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjSW50MzJPbmx5KTsKICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC0yMzAsOCArMjM3LDEwIEBAIHByaXZhdGU6
CiAgICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVj
SW50NTJPbmx5KTsKICAgICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAg
ICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oc3BlY3VsYXRlZERvdWJsZVR5cGVGb3JQ
cmVkaWN0aW9ucyhsZWZ0LCByaWdodCkpOwotICAgICAgICAgICAgICAgIH0gZWxzZQorICAgICAg
ICAgICAgICAgIH0gZWxzZSBpZiAobm9kZS0+bWF5SGF2ZU5vbkludFJlc3VsdCgpIHx8IChsZWZ0
ICYgU3BlY0J5dGVjb2RlRG91YmxlKSB8fCAocmlnaHQgJiBTcGVjQnl0ZWNvZGVEb3VibGUpKQog
ICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjSW50MzJP
bmx5IHwgU3BlY0J5dGVjb2RlRG91YmxlKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKFNwZWNJbnQzMk9ubHkpOwog
ICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTI2Nyw2ICsy
NzYsMTAgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIFNwZWN1bGF0ZWRUeXBlIHJpZ2h0ID0gbm9k
ZS0+Y2hpbGQyKCktPnByZWRpY3Rpb24oKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYg
KGxlZnQgJiYgcmlnaHQpIHsKKyAgICAgICAgICAgICAgICAvLyBGSVhNRTogV2UncmUgY3VycmVu
dGx5IHJlbHlpbmcgb24gcHJlZGljdGlvbiBwcm9wYWdhdGlvbiBhbmQgYmFja3dhcmRzIHByb3Bh
Z2F0aW9uCisgICAgICAgICAgICAgICAgLy8gd2hlbmV2ZXIgd2UgY2FuLCBhbmQgb25seSBmYWxs
aW5nIGJhY2sgb24gcmVzdWx0IGZsYWdzIGlmIHRoYXQgZmFpbHMuIEFuZCB0aGUgcmVzdWx0Cisg
ICAgICAgICAgICAgICAgLy8gZmxhZ3MgbG9naWMgZG9lc24ndCBrbm93IGhvdyB0byB1c2UgYmFj
a3dhcmRzIHByb3BhZ2F0aW9uLiBXZSBzaG91bGQgZ2V0IHJpZCBvZiB0aGUKKyAgICAgICAgICAg
ICAgICAvLyBwcmVkaWN0aW9uIHByb3BhZ2F0aW9uIGxvZ2ljIGFuZCByZWx5IHNvbGVseSBvbiB0
aGUgcmVzdWx0IHR5cGUuCiAgICAgICAgICAgICAgICAgaWYgKGlzRnVsbE51bWJlck9yQm9vbGVh
blNwZWN1bGF0aW9uRXhwZWN0aW5nRGVmaW5lZChsZWZ0KQogICAgICAgICAgICAgICAgICAgICAm
JiBpc0Z1bGxOdW1iZXJPckJvb2xlYW5TcGVjdWxhdGlvbkV4cGVjdGluZ0RlZmluZWQocmlnaHQp
KSB7CiAgICAgICAgICAgICAgICAgICAgIGlmIChtX2dyYXBoLmJpbmFyeUFyaXRoU2hvdWxkU3Bl
Y3VsYXRlSW50MzIobm9kZSwgbV9wYXNzKSkKQEAgLTI3NSw4ICsyODgsMTQgQEAgcHJpdmF0ZToK
ICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKFNwZWNJ
bnQ1Mk9ubHkpOwogICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAg
ICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihzcGVjdWxhdGVkRG91YmxlVHlwZUZvclBy
ZWRpY3Rpb25zKGxlZnQsIHJpZ2h0KSk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlCi0gICAgICAg
ICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKFNwZWNJbnQzMk9ubHkgfCBT
cGVjQnl0ZWNvZGVEb3VibGUpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICAgICAgICAgIGlmIChub2RlLT5tYXlIYXZlTm9uSW50UmVzdWx0KCkKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHx8IChsZWZ0ICYgU3BlY0J5dGVjb2RlRG91YmxlKQorICAgICAgICAgICAgICAg
ICAgICAgICAgfHwgKHJpZ2h0ICYgU3BlY0J5dGVjb2RlRG91YmxlKSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKFNwZWNJbnQzMk9ubHkgfCBTcGVj
Qnl0ZWNvZGVEb3VibGUpOworICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAg
ICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjSW50MzJPbmx5KTsKKyAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQuaAkocmV2aXNpb24gMjAwNTE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNjcyLDIzICsxNjcyLDYgQEAgcHVi
bGljOgogICAgIH0KICNlbHNlIC8vIFVTRShKU1ZBTFVFMzJfNjQpCiAKLS8vIEVuY29kZWRKU1Zh
bHVlIGluIEpTVkFMVUUzMl82NCBpcyBhIDY0LWJpdCBpbnRlZ2VyLiBXaGVuIGJlaW5nIGNvbXBp
bGVkIGluIEFSTSBFQUJJLCBpdCBtdXN0IGJlIGFsaWduZWQgb24gYW4gZXZlbi1udW1iZXJlZCBy
ZWdpc3RlciAocjAsIHIyIG9yIFtzcF0pLgotLy8gVG8gcHJldmVudCB0aGUgYXNzZW1ibGVyIGZy
b20gdXNpbmcgd3JvbmcgcmVnaXN0ZXJzLCBsZXQncyBvY2N1cHkgcjEgb3IgcjMgd2l0aCBhIGR1
bW15IGFyZ3VtZW50IHdoZW4gbmVjZXNzYXJ5LgotI2lmIChDT01QSUxFUl9TVVBQT1JUUyhFQUJJ
KSAmJiBDUFUoQVJNKSkgfHwgQ1BVKE1JUFMpCi0jZGVmaW5lIEVBQklfMzJCSVRfRFVNTVlfQVJH
ICAgICAgVHJ1c3RlZEltbTMyKDApLAotI2Vsc2UKLSNkZWZpbmUgRUFCSV8zMkJJVF9EVU1NWV9B
UkcKLSNlbmRpZgotCi0vLyBKU1ZBTFVFMzJfNjQgaXMgYSA2NC1iaXQgaW50ZWdlciB0aGF0IGNh
bm5vdCBiZSBwdXQgaGFsZiBpbiBhbiBhcmd1bWVudCByZWdpc3RlciBhbmQgaGFsZiBvbiBzdGFj
ayB3aGVuIHVzaW5nIFNINCBhcmNoaXRlY3R1cmUuCi0vLyBUbyBhdm9pZCB0aGlzLCBsZXQncyBv
Y2N1cHkgdGhlIDR0aCBhcmd1bWVudCByZWdpc3RlciAocjcpIHdpdGggYSBkdW1teSBhcmd1bWVu
dCB3aGVuIG5lY2Vzc2FyeS4gVGhpcyBtdXN0IG9ubHkgYmUgZG9uZSB3aGVuIHRoZXJlCi0vLyBp
cyBubyBvdGhlciAzMi1iaXQgdmFsdWUgYXJndW1lbnQgYmVoaW5kIHRoaXMgNjQtYml0IEpTVmFs
dWUuCi0jaWYgQ1BVKFNINCkKLSNkZWZpbmUgU0g0XzMyQklUX0RVTU1ZX0FSRyAgICAgIFRydXN0
ZWRJbW0zMigwKSwKLSNlbHNlCi0jZGVmaW5lIFNINF8zMkJJVF9EVU1NWV9BUkcKLSNlbmRpZgot
CiAgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FT0pJ
VWkgb3BlcmF0aW9uLCBHUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzJUYWcsIEdQUlJlZyBhcmcyUGF5
bG9hZCwgVW5pcXVlZFN0cmluZ0ltcGwqIGltcGwsIHVuc2lnbmVkIHZhbHVlKQogICAgIHsKICAg
ICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFyZzJQYXlsb2Fk
LCBhcmcyVGFnLCBUcnVzdGVkSW1tUHRyKGltcGwpLCBUcnVzdGVkSW1tMzIodmFsdWUpKTsKQEAg
LTIxMTMsOCArMjA5Niw2IEBAIHB1YmxpYzoKICAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNX
aXRoRXhlY1N0YXRlKGFyZzEsIFRydXN0ZWRJbW1QdHIoaWRlbnRPcDIpLCBUcnVzdGVkSW1tMzIo
b3AzKSwgYXJnNCwgYXJnNSk7CiAgICAgICAgIHJldHVybiBhcHBlbmRDYWxsKG9wZXJhdGlvbik7
CiAgICAgfQotI3VuZGVmIEVBQklfMzJCSVRfRFVNTVlfQVJHCi0jdW5kZWYgU0g0XzMyQklUX0RV
TU1ZX0FSRwogICAgIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0aW9uVHlwZT4KICAgICBK
SVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExPU1JFeGl0Q29tcGlsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhpdENvbXBpbGVyLmNwcAkocmV2aXNpb24gMjAwNTE3KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JFeGl0Q29tcGlsZXIuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0y
MDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMjg0LDggKzI4NCw4IEBAIHN0YXRpYyB2b2lkIGNvbXBpbGVTdHViKAog
ICAgICAgICAgICAgfQogICAgICAgICB9CiAKLSAgICAgICAgaWYgKCEhZXhpdC5tX2Rlc2NyaXB0
b3ItPm1fdmFsdWVQcm9maWxlKQotICAgICAgICAgICAgaml0LnN0b3JlNjQoR1BSSW5mbzo6cmVn
VDAsIGV4aXQubV9kZXNjcmlwdG9yLT5tX3ZhbHVlUHJvZmlsZS5nZXRTcGVjRmFpbEJ1Y2tldCgw
KSk7CisgICAgICAgIGlmIChleGl0Lm1fZGVzY3JpcHRvci0+bV92YWx1ZVByb2ZpbGUpCisgICAg
ICAgICAgICBleGl0Lm1fZGVzY3JpcHRvci0+bV92YWx1ZVByb2ZpbGUuZW1pdFJlcG9ydFZhbHVl
KGppdCwgSlNWYWx1ZVJlZ3MoR1BSSW5mbzo6cmVnVDApKTsKICAgICB9CiAKICAgICAvLyBNYXRl
cmlhbGl6ZSBhbGwgb2JqZWN0cy4gRG9uJ3QgbWF0ZXJpYWxpemUgYW4gb2JqZWN0IHVudGlsIGFs
bApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCShy
ZXZpc2lvbiAyMDA1MTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVs
cGVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC02NTMsMTEgKzY1Myw2IEBAIHB1YmxpYzoKICNlbmRp
ZgogICAgIH0KIAotICAgIGVudW0gVGFnUmVnaXN0ZXJzTW9kZSB7Ci0gICAgICAgIERvTm90SGF2
ZVRhZ1JlZ2lzdGVycywKLSAgICAgICAgSGF2ZVRhZ1JlZ2lzdGVycwotICAgIH07Ci0KICAgICBK
dW1wIGJyYW5jaElmTm90Q2VsbChHUFJSZWcgcmVnLCBUYWdSZWdpc3RlcnNNb2RlIG1vZGUgPSBI
YXZlVGFnUmVnaXN0ZXJzKQogICAgIHsKICNpZiBVU0UoSlNWQUxVRTY0KQpAQCAtNzgzLDYgKzc3
OCwxOCBAQCBwdWJsaWM6CiAjZW5kaWYKICAgICB9CiAKKyAgICBKdW1wIGJyYW5jaElmTm90RG91
YmxlS25vd25Ob3RJbnQzMihKU1ZhbHVlUmVncyByZWdzLCBUYWdSZWdpc3RlcnNNb2RlIG1vZGUg
PSBIYXZlVGFnUmVnaXN0ZXJzKQorICAgIHsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICBp
ZiAobW9kZSA9PSBIYXZlVGFnUmVnaXN0ZXJzKQorICAgICAgICAgICAgcmV0dXJuIGJyYW5jaFRl
c3Q2NChaZXJvLCByZWdzLmdwcigpLCBHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIpOwor
ICAgICAgICByZXR1cm4gYnJhbmNoVGVzdDY0KFplcm8sIHJlZ3MuZ3ByKCksIFRydXN0ZWRJbW02
NChUYWdUeXBlTnVtYmVyKSk7CisjZWxzZQorICAgICAgICBVTlVTRURfUEFSQU0obW9kZSk7Cisg
ICAgICAgIHJldHVybiBicmFuY2gzMihBYm92ZU9yRXF1YWwsIHJlZ3MudGFnR1BSKCksIFRydXN0
ZWRJbW0zMihKU1ZhbHVlOjpMb3dlc3RUYWcpKTsKKyNlbmRpZgorICAgIH0KKwogICAgIC8vIE5v
dGUgdGhhdCB0aGUgdGVtcEdQUiBpcyBub3QgdXNlZCBpbiAzMi1iaXQgbW9kZS4KICAgICBKdW1w
IGJyYW5jaElmQm9vbGVhbihKU1ZhbHVlUmVncyByZWdzLCBHUFJSZWcgdGVtcEdQUikKICAgICB7
CkBAIC04NDgsNyArODU1LDggQEAgcHVibGljOgogICAgIH0KIAogICAgIEp1bXBMaXN0IGJyYW5j
aElmTm90VHlwZSgKLSAgICAgICAgSlNWYWx1ZVJlZ3MsIEdQUlJlZyB0ZW1wR1BSLCBjb25zdCBJ
bmZlcnJlZFR5cGU6OkRlc2NyaXB0b3ImLCBUYWdSZWdpc3RlcnNNb2RlKTsKKyAgICAgICAgSlNW
YWx1ZVJlZ3MsIEdQUlJlZyB0ZW1wR1BSLCBjb25zdCBJbmZlcnJlZFR5cGU6OkRlc2NyaXB0b3Im
LAorICAgICAgICBUYWdSZWdpc3RlcnNNb2RlID0gSGF2ZVRhZ1JlZ2lzdGVycyk7CiAKICAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBUPgogICAgIEp1bXAgYnJhbmNoU3RydWN0dXJlKFJlbGF0aW9uYWxD
b25kaXRpb24gY29uZGl0aW9uLCBUIGxlZnRIYW5kU2lkZSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUp
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgJKHJldmlzaW9u
IDIwMDUxNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgJKHdv
cmtpbmcgY29weSkKQEAgLTQwLDYgKzQwLDIzIEBAIG5hbWVzcGFjZSBKU0MgewogI2RlZmluZSBQ
T0tFX0FSR1VNRU5UX09GRlNFVCAwCiAjZW5kaWYKIAorLy8gRW5jb2RlZEpTVmFsdWUgaW4gSlNW
QUxVRTMyXzY0IGlzIGEgNjQtYml0IGludGVnZXIuIFdoZW4gYmVpbmcgY29tcGlsZWQgaW4gQVJN
IEVBQkksIGl0IG11c3QgYmUgYWxpZ25lZCBldmVuLW51bWJlcmVkIHJlZ2lzdGVyIChyMCwgcjIg
b3IgW3NwXSkuCisvLyBUbyBhdm9pZCBhc3NlbWJsaWVzIGZyb20gdXNpbmcgd3JvbmcgcmVnaXN0
ZXJzLCBsZXQncyBvY2N1cHkgcjEgb3IgcjMgd2l0aCBhIGR1bW15IGFyZ3VtZW50IHdoZW4gbmVj
ZXNzYXJ5LgorI2lmIChDT01QSUxFUl9TVVBQT1JUUyhFQUJJKSAmJiBDUFUoQVJNKSkgfHwgQ1BV
KE1JUFMpCisjZGVmaW5lIEVBQklfMzJCSVRfRFVNTVlfQVJHICAgICAgVHJ1c3RlZEltbTMyKDAp
LAorI2Vsc2UKKyNkZWZpbmUgRUFCSV8zMkJJVF9EVU1NWV9BUkcKKyNlbmRpZgorCisvLyBKU1ZB
TFVFMzJfNjQgaXMgYSA2NC1iaXQgaW50ZWdlciB0aGF0IGNhbm5vdCBiZSBwdXQgaGFsZiBpbiBh
biBhcmd1bWVudCByZWdpc3RlciBhbmQgaGFsZiBvbiBzdGFjayB3aGVuIHVzaW5nIFNINCBhcmNo
aXRlY3R1cmUuCisvLyBUbyBhdm9pZCB0aGlzLCBsZXQncyBvY2N1cHkgdGhlIDR0aCBhcmd1bWVu
dCByZWdpc3RlciAocjcpIHdpdGggYSBkdW1teSBhcmd1bWVudCB3aGVuIG5lY2Vzc2FyeS4gVGhp
cyBtdXN0IG9ubHkgYmUgZG9uZSB3aGVuIHRoZXJlCisvLyBpcyBubyBvdGhlciAzMi1iaXQgdmFs
dWUgYXJndW1lbnQgYmVoaW5kIHRoaXMgNjQtYml0IEpTVmFsdWUuCisjaWYgQ1BVKFNINCkKKyNk
ZWZpbmUgU0g0XzMyQklUX0RVTU1ZX0FSRyAgICAgIFRydXN0ZWRJbW0zMigwKSwKKyNlbHNlCisj
ZGVmaW5lIFNINF8zMkJJVF9EVU1NWV9BUkcKKyNlbmRpZgorCiBjbGFzcyBDQ2FsbEhlbHBlcnMg
OiBwdWJsaWMgQXNzZW1ibHlIZWxwZXJzIHsKIHB1YmxpYzoKICAgICBDQ2FsbEhlbHBlcnMoVk0q
IHZtLCBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IDApCkBAIC0yMTIyLDYgKzIxMzksMTUgQEAgcHVi
bGljOgogICAgIH0KICNlbmRpZgogICAgIAorICAgIHZvaWQgc2V0dXBBcmd1bWVudHNXaXRoRXhl
Y1N0YXRlKEpTVmFsdWVSZWdzIGFyZzEsIEpTVmFsdWVSZWdzIGFyZzIsIFRydXN0ZWRJbW1QdHIg
YXJnMykKKyAgICB7CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICAgICAgc2V0dXBBcmd1bWVudHNX
aXRoRXhlY1N0YXRlKGFyZzEuZ3ByKCksIGFyZzIuZ3ByKCksIGFyZzMpOworI2Vsc2UKKyAgICAg
ICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEVBQklfMzJCSVRfRFVNTVlfQVJHIGFyZzEu
cGF5bG9hZEdQUigpLCBhcmcxLnRhZ0dQUigpLCBhcmcyLnBheWxvYWRHUFIoKSwgYXJnMi50YWdH
UFIoKSwgYXJnMyk7CisjZW5kaWYKKyAgICB9CisgICAgCiAgICAgdm9pZCBzZXR1cEFyZ3VtZW50
cyhKU1ZhbHVlUmVncyBhcmcxKQogICAgIHsKICNpZiBVU0UoSlNWQUxVRTY0KQpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9HUFJJbmZvLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9HUFJJbmZvLmgJKHJldmlzaW9uIDIwMDUxNykKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvR1BSSW5mby5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMy0yMDE1IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMy0yMDE2IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtMTM5LDYgKzEzOSwxMSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBtX2Jhc2U7CiAgICAg
fQogICAgIAorICAgIEpTVmFsdWVSZWdzIHJlZ3MoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0
dXJuIEpTVmFsdWVSZWdzKGdwcigpKTsKKyAgICB9CisgICAgCiAgICAgTWFjcm9Bc3NlbWJsZXI6
OkFkZHJlc3MgYXNBZGRyZXNzKCkgY29uc3QgeyByZXR1cm4gTWFjcm9Bc3NlbWJsZXI6OkFkZHJl
c3MoYmFzZSgpLCBvZmZzZXQoKSk7IH0KICAgICAKIHByaXZhdGU6CkBAIC0zMDYsNiArMzExLDEx
IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludDMyX3Q+KG1fdGFnVHlw
ZSk7CiAgICAgfQogICAgIAorICAgIEpTVmFsdWVSZWdzIHJlZ3MoKSBjb25zdAorICAgIHsKKyAg
ICAgICAgcmV0dXJuIEpTVmFsdWVSZWdzKHRhZ0dQUigpLCBwYXlsb2FkR1BSKCkpOworICAgIH0K
KyAgICAKICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyBhc0FkZHJlc3ModW5zaWduZWQgYWRk
aXRpb25hbE9mZnNldCA9IDApIGNvbnN0IHsgcmV0dXJuIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNz
KGJhc2UoKSwgb2Zmc2V0KCkgKyBhZGRpdGlvbmFsT2Zmc2V0KTsgfQogICAgIAogcHJpdmF0ZToK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSW50cmluc2ljRW1pdHRlci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9JbnRyaW5zaWNFbWl0dGVyLmNw
cAkocmV2aXNpb24gMjAwNTE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9JbnRyaW5z
aWNFbWl0dGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC03OCw3ICs3OCw3IEBAIHZvaWQgQWNjZXNzQ2Fz
ZTo6ZW1pdEludHJpbnNpY0dldHRlcihBY2MKICAgICBzd2l0Y2ggKGludHJpbnNpYygpKSB7CiAg
ICAgY2FzZSBUeXBlZEFycmF5TGVuZ3RoSW50cmluc2ljOiB7CiAgICAgICAgIGppdC5sb2FkMzIo
TWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3RhdGUuYmFzZUdQUiwgSlNBcnJheUJ1ZmZlclZpZXc6
Om9mZnNldE9mTGVuZ3RoKCkpLCB2YWx1ZUdQUik7Ci0gICAgICAgIGppdC5ib3hJbnQzMih2YWx1
ZUdQUiwgdmFsdWVSZWdzLCBDQ2FsbEhlbHBlcnM6OkRvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7Cisg
ICAgICAgIGppdC5ib3hJbnQzMih2YWx1ZUdQUiwgdmFsdWVSZWdzKTsKICAgICAgICAgc3RhdGUu
c3VjY2VlZCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtOTMsNyArOTMsNyBAQCB2b2lk
IEFjY2Vzc0Nhc2U6OmVtaXRJbnRyaW5zaWNHZXR0ZXIoQWNjCiAgICAgICAgICAgICBqaXQubHNo
aWZ0MzIodmFsdWVHUFIsIEltbTMyKGxvZ0VsZW1lbnRTaXplKHR5cGUpKSwgdmFsdWVHUFIpOwog
ICAgICAgICB9CiAKLSAgICAgICAgaml0LmJveEludDMyKHZhbHVlR1BSLCB2YWx1ZVJlZ3MsIEND
YWxsSGVscGVyczo6RG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsKKyAgICAgICAgaml0LmJveEludDMy
KHZhbHVlR1BSLCB2YWx1ZVJlZ3MpOwogICAgICAgICBzdGF0ZS5zdWNjZWVkKCk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CkBAIC0xMTksNyArMTE5LDcgQEAgdm9pZCBBY2Nlc3NDYXNlOjplbWl0
SW50cmluc2ljR2V0dGVyKEFjYwogICAgICAgICAKICAgICAgICAgZG9uZS5saW5rKCZqaXQpOwog
ICAgICAgICAKLSAgICAgICAgaml0LmJveEludDMyKHZhbHVlR1BSLCB2YWx1ZVJlZ3MsIENDYWxs
SGVscGVyczo6RG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsKKyAgICAgICAgaml0LmJveEludDMyKHZh
bHVlR1BSLCB2YWx1ZVJlZ3MpOwogICAgICAgICBzdGF0ZS5zdWNjZWVkKCk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgJKHJldmlzaW9uIDIwMDUx
NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgJKHdvcmtpbmcgY29weSkKQEAg
LTc1MCw2ICs3NTAsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICNlbmRpZgogICAgICAgICBNYWNyb0Fz
c2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSSwgaW50LCBHUFJS
ZWcsIFVuaXF1ZWRTdHJpbmdJbXBsKik7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNh
bGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpKLCBpbnQsIEdQUlJlZywgR1BSUmVnKTsKKyAg
ICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9F
SkpScCwgSlNWYWx1ZVJlZ3MsIEpTVmFsdWVSZWdzLCBKU1ZhbHVlUmVncywgUmVzdWx0UHJvZmls
ZSopOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3Bl
cmF0aW9uX0VKSkFwLCBpbnQsIEdQUlJlZywgR1BSUmVnLCBBcnJheVByb2ZpbGUqKTsKICAgICAg
ICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkpC
eSwgaW50LCBHUFJSZWcsIEdQUlJlZywgQnlWYWxJbmZvKik7CiAgICAgICAgIE1hY3JvQXNzZW1i
bGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oWl9KSVRPcGVyYXRpb25fRUpPSiwgR1BSUmVnLCBHUFJS
ZWcsIEdQUlJlZyk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFkZEdlbmVy
YXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBZGRH
ZW5lcmF0b3IuY3BwCShyZXZpc2lvbiAyMDA1MTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVEFkZEdlbmVyYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTI4LDYgKzEyOCw5IEBAIHZv
aWQgSklUQWRkR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKEMKIAogICAgIC8vIERvIGRvdWJs
ZVZhciArIGRvdWJsZVZhci4KICAgICBqaXQuYWRkRG91YmxlKG1fcmlnaHRGUFIsIG1fbGVmdEZQ
Uik7CisgICAgaWYgKG1fcmVzdWx0UHJvZmlsZSkKKyAgICAgICAgbV9yZXN1bHRQcm9maWxlLT5l
bWl0U2V0RG91YmxlKGppdCk7CisgICAgICAgIAogICAgIGppdC5ib3hEb3VibGUobV9sZWZ0RlBS
LCBtX3Jlc3VsdCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQWRk
R2VuZXJhdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRB
ZGRHZW5lcmF0b3IuaAkocmV2aXNpb24gMjAwNTE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRBZGRHZW5lcmF0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNyw3ICszNyw4IEBAIGNsYXNz
IEpJVEFkZEdlbmVyYXRvciB7CiBwdWJsaWM6CiAgICAgSklUQWRkR2VuZXJhdG9yKFNuaXBwZXRP
cGVyYW5kIGxlZnRPcGVyYW5kLCBTbmlwcGV0T3BlcmFuZCByaWdodE9wZXJhbmQsCiAgICAgICAg
IEpTVmFsdWVSZWdzIHJlc3VsdCwgSlNWYWx1ZVJlZ3MgbGVmdCwgSlNWYWx1ZVJlZ3MgcmlnaHQs
Ci0gICAgICAgIEZQUlJlZyBsZWZ0RlBSLCBGUFJSZWcgcmlnaHRGUFIsIEdQUlJlZyBzY3JhdGNo
R1BSLCBGUFJSZWcgc2NyYXRjaEZQUikKKyAgICAgICAgRlBSUmVnIGxlZnRGUFIsIEZQUlJlZyBy
aWdodEZQUiwgR1BSUmVnIHNjcmF0Y2hHUFIsIEZQUlJlZyBzY3JhdGNoRlBSLAorICAgICAgICBS
ZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlID0gbnVsbHB0cikKICAgICAgICAgOiBtX2xlZnRP
cGVyYW5kKGxlZnRPcGVyYW5kKQogICAgICAgICAsIG1fcmlnaHRPcGVyYW5kKHJpZ2h0T3BlcmFu
ZCkKICAgICAgICAgLCBtX3Jlc3VsdChyZXN1bHQpCkBAIC00Nyw2ICs0OCw3IEBAIHB1YmxpYzoK
ICAgICAgICAgLCBtX3JpZ2h0RlBSKHJpZ2h0RlBSKQogICAgICAgICAsIG1fc2NyYXRjaEdQUihz
Y3JhdGNoR1BSKQogICAgICAgICAsIG1fc2NyYXRjaEZQUihzY3JhdGNoRlBSKQorICAgICAgICAs
IG1fcmVzdWx0UHJvZmlsZShyZXN1bHRQcm9maWxlKQogICAgIHsKICAgICAgICAgQVNTRVJUKCFt
X2xlZnRPcGVyYW5kLmlzQ29uc3RJbnQzMigpIHx8ICFtX3JpZ2h0T3BlcmFuZC5pc0NvbnN0SW50
MzIoKSk7CiAgICAgfQpAQCAtNjcsNiArNjksNyBAQCBwcml2YXRlOgogICAgIEZQUlJlZyBtX3Jp
Z2h0RlBSOwogICAgIEdQUlJlZyBtX3NjcmF0Y2hHUFI7CiAgICAgRlBSUmVnIG1fc2NyYXRjaEZQ
UjsKKyAgICBSZXN1bHRQcm9maWxlKiBtX3Jlc3VsdFByb2ZpbGU7CiAgICAgYm9vbCBtX2RpZEVt
aXRGYXN0UGF0aCB7IGZhbHNlIH07CiAKICAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IG1fZW5k
SnVtcExpc3Q7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0aWMu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQXJpdGhtZXRp
Yy5jcHAJKHJldmlzaW9uIDIwMDUxNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
QXJpdGhtZXRpYy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDA4LCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAwOCwgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNjk2LDYgKzY5NiwxMCBA
QCB2b2lkIEpJVDo6ZW1pdF9vcF9hZGQoSW5zdHJ1Y3Rpb24qIGN1cnJlCiAgICAgRlBSUmVnIHNj
cmF0Y2hGUFIgPSBmcFJlZ1QyOwogI2VuZGlmCiAKKyAgICBSZXN1bHRQcm9maWxlKiByZXN1bHRQ
cm9maWxlID0gbnVsbHB0cjsKKyAgICBpZiAoc2hvdWxkRW1pdFByb2ZpbGluZygpKQorICAgICAg
ICByZXN1bHRQcm9maWxlID0gbV9jb2RlQmxvY2stPmVuc3VyZVJlc3VsdFByb2ZpbGUobV9ieXRl
Y29kZU9mZnNldCk7CisKICAgICBTbmlwcGV0T3BlcmFuZCBsZWZ0T3BlcmFuZCh0eXBlcy5maXJz
dCgpKTsKICAgICBTbmlwcGV0T3BlcmFuZCByaWdodE9wZXJhbmQodHlwZXMuc2Vjb25kKCkpOwog
CkBAIC03MTIsNyArNzE2LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfYWRkKEluc3RydWN0aW9uKiBj
dXJyZQogICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKG9wMiwgcmlnaHRSZWdzKTsKIAog
ICAgIEpJVEFkZEdlbmVyYXRvciBnZW4obGVmdE9wZXJhbmQsIHJpZ2h0T3BlcmFuZCwgcmVzdWx0
UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVncywKLSAgICAgICAgZnBSZWdUMCwgZnBSZWdUMSwgc2Ny
YXRjaEdQUiwgc2NyYXRjaEZQUik7CisgICAgICAgIGZwUmVnVDAsIGZwUmVnVDEsIHNjcmF0Y2hH
UFIsIHNjcmF0Y2hGUFIsIHJlc3VsdFByb2ZpbGUpOwogCiAgICAgZ2VuLmdlbmVyYXRlRmFzdFBh
dGgoKnRoaXMpOwogCkBAIC03MjQsOCArNzI4LDE3IEBAIHZvaWQgSklUOjplbWl0X29wX2FkZChJ
bnN0cnVjdGlvbiogY3VycmUKICAgICB9IGVsc2UgewogICAgICAgICBBU1NFUlQoZ2VuLmVuZEp1
bXBMaXN0KCkuZW1wdHkoKSk7CiAgICAgICAgIEFTU0VSVChnZW4uc2xvd1BhdGhKdW1wTGlzdCgp
LmVtcHR5KCkpOwotICAgICAgICBKSVRTbG93UGF0aENhbGwgc2xvd1BhdGhDYWxsKHRoaXMsIGN1
cnJlbnRJbnN0cnVjdGlvbiwgc2xvd19wYXRoX2FkZCk7Ci0gICAgICAgIHNsb3dQYXRoQ2FsbC5j
YWxsKCk7CisgICAgICAgIGlmIChyZXN1bHRQcm9maWxlKSB7CisgICAgICAgICAgICBpZiAobGVm
dE9wZXJhbmQuaXNDb25zdCgpKQorICAgICAgICAgICAgICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0
ZXIob3AxLCBsZWZ0UmVncyk7CisgICAgICAgICAgICBpZiAocmlnaHRPcGVyYW5kLmlzQ29uc3Qo
KSkKKyAgICAgICAgICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKG9wMiwgcmlnaHRSZWdz
KTsKKyAgICAgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uVmFsdWVBZGRQcm9maWxlZCwg
cmVzdWx0UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVncywgcmVzdWx0UHJvZmlsZSk7CisgICAgICAg
ICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKHJlc3VsdCwgcmVzdWx0UmVncyk7CisgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICBKSVRTbG93UGF0aENhbGwgc2xvd1BhdGhDYWxsKHRoaXMs
IGN1cnJlbnRJbnN0cnVjdGlvbiwgc2xvd19wYXRoX2FkZCk7CisgICAgICAgICAgICBzbG93UGF0
aENhbGwuY2FsbCgpOworICAgICAgICB9CiAgICAgfQogfQogCkBAIC03MzMsOCArNzQ2LDQxIEBA
IHZvaWQgSklUOjplbWl0U2xvd19vcF9hZGQoSW5zdHJ1Y3Rpb24qIGMKIHsKICAgICBsaW5rQWxs
U2xvd0Nhc2VzRm9yQnl0ZWNvZGVPZmZzZXQobV9zbG93Q2FzZXMsIGl0ZXIsIG1fYnl0ZWNvZGVP
ZmZzZXQpOwogCi0gICAgSklUU2xvd1BhdGhDYWxsIHNsb3dQYXRoQ2FsbCh0aGlzLCBjdXJyZW50
SW5zdHJ1Y3Rpb24sIHNsb3dfcGF0aF9hZGQpOwotICAgIHNsb3dQYXRoQ2FsbC5jYWxsKCk7Cisg
ICAgaW50IHJlc3VsdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CisgICAgaW50
IG9wMSA9IGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQ7CisgICAgaW50IG9wMiA9IGN1
cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7CisgICAgT3BlcmFuZFR5cGVzIHR5cGVzID0g
T3BlcmFuZFR5cGVzOjpmcm9tSW50KGN1cnJlbnRJbnN0cnVjdGlvbls0XS51Lm9wZXJhbmQpOwor
CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICBKU1ZhbHVlUmVncyBsZWZ0UmVncyA9IEpTVmFsdWVS
ZWdzKHJlZ1QwKTsKKyAgICBKU1ZhbHVlUmVncyByaWdodFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdU
MSk7CisgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IGxlZnRSZWdzOworI2Vsc2UKKyAgICBK
U1ZhbHVlUmVncyBsZWZ0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCk7CisgICAgSlNW
YWx1ZVJlZ3MgcmlnaHRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDMsIHJlZ1QyKTsKKyAgICBKU1Zh
bHVlUmVncyByZXN1bHRSZWdzID0gbGVmdFJlZ3M7CisjZW5kaWYKKyAgICAKKyAgICBTbmlwcGV0
T3BlcmFuZCBsZWZ0T3BlcmFuZCh0eXBlcy5maXJzdCgpKTsKKyAgICBTbmlwcGV0T3BlcmFuZCBy
aWdodE9wZXJhbmQodHlwZXMuc2Vjb25kKCkpOworCisgICAgaWYgKGlzT3BlcmFuZENvbnN0YW50
SW50KG9wMSkpCisgICAgICAgIGxlZnRPcGVyYW5kLnNldENvbnN0SW50MzIoZ2V0T3BlcmFuZENv
bnN0YW50SW50KG9wMSkpOworICAgIGVsc2UgaWYgKGlzT3BlcmFuZENvbnN0YW50SW50KG9wMikp
CisgICAgICAgIHJpZ2h0T3BlcmFuZC5zZXRDb25zdEludDMyKGdldE9wZXJhbmRDb25zdGFudElu
dChvcDIpKTsKKworICAgIGlmIChzaG91bGRFbWl0UHJvZmlsaW5nKCkpIHsKKyAgICAgICAgaWYg
KGxlZnRPcGVyYW5kLmlzQ29uc3QoKSkKKyAgICAgICAgICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0
ZXIob3AxLCBsZWZ0UmVncyk7CisgICAgICAgIGlmIChyaWdodE9wZXJhbmQuaXNDb25zdCgpKQor
ICAgICAgICAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihvcDIsIHJpZ2h0UmVncyk7CisgICAg
ICAgIFJlc3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUgPSBtX2NvZGVCbG9jay0+ZW5zdXJlUmVz
dWx0UHJvZmlsZShtX2J5dGVjb2RlT2Zmc2V0KTsKKyAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVy
YXRpb25WYWx1ZUFkZFByb2ZpbGVkLCByZXN1bHRSZWdzLCBsZWZ0UmVncywgcmlnaHRSZWdzLCBy
ZXN1bHRQcm9maWxlKTsKKyAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihyZXN1bHQsIHJl
c3VsdFJlZ3MpOworICAgIH0gZWxzZSB7CisgICAgICAgIEpJVFNsb3dQYXRoQ2FsbCBzbG93UGF0
aENhbGwodGhpcywgY3VycmVudEluc3RydWN0aW9uLCBzbG93X3BhdGhfYWRkKTsKKyAgICAgICAg
c2xvd1BhdGhDYWxsLmNhbGwoKTsKKyAgICB9CiB9CiAKIHZvaWQgSklUOjplbWl0X29wX2RpdihJ
bnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQpAQCAtODY0LDggKzkxMCwxNyBAQCB2b2lk
IEpJVDo6ZW1pdF9vcF9tdWwoSW5zdHJ1Y3Rpb24qIGN1cnJlCiAgICAgfSBlbHNlIHsKICAgICAg
ICAgQVNTRVJUKGdlbi5lbmRKdW1wTGlzdCgpLmVtcHR5KCkpOwogICAgICAgICBBU1NFUlQoZ2Vu
LnNsb3dQYXRoSnVtcExpc3QoKS5lbXB0eSgpKTsKLSAgICAgICAgSklUU2xvd1BhdGhDYWxsIHNs
b3dQYXRoQ2FsbCh0aGlzLCBjdXJyZW50SW5zdHJ1Y3Rpb24sIHNsb3dfcGF0aF9tdWwpOwotICAg
ICAgICBzbG93UGF0aENhbGwuY2FsbCgpOworICAgICAgICBpZiAocmVzdWx0UHJvZmlsZSkgewor
ICAgICAgICAgICAgaWYgKGxlZnRPcGVyYW5kLmlzUG9zaXRpdmVDb25zdEludDMyKCkpCisgICAg
ICAgICAgICAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihvcDEsIGxlZnRSZWdzKTsKKyAgICAg
ICAgICAgIGlmIChyaWdodE9wZXJhbmQuaXNQb3NpdGl2ZUNvbnN0SW50MzIoKSkKKyAgICAgICAg
ICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKG9wMiwgcmlnaHRSZWdzKTsKKyAgICAgICAg
ICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uVmFsdWVNdWxQcm9maWxlZCwgcmVzdWx0UmVncywg
bGVmdFJlZ3MsIHJpZ2h0UmVncywgcmVzdWx0UHJvZmlsZSk7CisgICAgICAgICAgICBlbWl0UHV0
VmlydHVhbFJlZ2lzdGVyKHJlc3VsdCwgcmVzdWx0UmVncyk7CisgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICBKSVRTbG93UGF0aENhbGwgc2xvd1BhdGhDYWxsKHRoaXMsIGN1cnJlbnRJbnN0
cnVjdGlvbiwgc2xvd19wYXRoX211bCk7CisgICAgICAgICAgICBzbG93UGF0aENhbGwuY2FsbCgp
OworICAgICAgICB9CiAgICAgfQogfQogCkBAIC04NzMsOCArOTI4LDQxIEBAIHZvaWQgSklUOjpl
bWl0U2xvd19vcF9tdWwoSW5zdHJ1Y3Rpb24qIGMKIHsKICAgICBsaW5rQWxsU2xvd0Nhc2VzRm9y
Qnl0ZWNvZGVPZmZzZXQobV9zbG93Q2FzZXMsIGl0ZXIsIG1fYnl0ZWNvZGVPZmZzZXQpOwogICAg
IAotICAgIEpJVFNsb3dQYXRoQ2FsbCBzbG93UGF0aENhbGwodGhpcywgY3VycmVudEluc3RydWN0
aW9uLCBzbG93X3BhdGhfbXVsKTsKLSAgICBzbG93UGF0aENhbGwuY2FsbCgpOworICAgIGludCBy
ZXN1bHQgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOworICAgIGludCBvcDEgPSBj
dXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOworICAgIGludCBvcDIgPSBjdXJyZW50SW5z
dHJ1Y3Rpb25bM10udS5vcGVyYW5kOworICAgIE9wZXJhbmRUeXBlcyB0eXBlcyA9IE9wZXJhbmRU
eXBlczo6ZnJvbUludChjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kKTsKKworI2lmIFVT
RShKU1ZBTFVFNjQpCisgICAgSlNWYWx1ZVJlZ3MgbGVmdFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdU
MCk7CisgICAgSlNWYWx1ZVJlZ3MgcmlnaHRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDEpOworICAg
IEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSBsZWZ0UmVnczsKKyNlbHNlCisgICAgSlNWYWx1ZVJl
Z3MgbGVmdFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMSwgcmVnVDApOworICAgIEpTVmFsdWVSZWdz
IHJpZ2h0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QzLCByZWdUMik7CisgICAgSlNWYWx1ZVJlZ3Mg
cmVzdWx0UmVncyA9IGxlZnRSZWdzOworI2VuZGlmCisKKyAgICBTbmlwcGV0T3BlcmFuZCBsZWZ0
T3BlcmFuZCh0eXBlcy5maXJzdCgpKTsKKyAgICBTbmlwcGV0T3BlcmFuZCByaWdodE9wZXJhbmQo
dHlwZXMuc2Vjb25kKCkpOworCisgICAgaWYgKGlzT3BlcmFuZENvbnN0YW50SW50KG9wMSkpCisg
ICAgICAgIGxlZnRPcGVyYW5kLnNldENvbnN0SW50MzIoZ2V0T3BlcmFuZENvbnN0YW50SW50KG9w
MSkpOworICAgIGVsc2UgaWYgKGlzT3BlcmFuZENvbnN0YW50SW50KG9wMikpCisgICAgICAgIHJp
Z2h0T3BlcmFuZC5zZXRDb25zdEludDMyKGdldE9wZXJhbmRDb25zdGFudEludChvcDIpKTsKKwor
ICAgIGlmIChzaG91bGRFbWl0UHJvZmlsaW5nKCkpIHsKKyAgICAgICAgaWYgKGxlZnRPcGVyYW5k
LmlzUG9zaXRpdmVDb25zdEludDMyKCkpCisgICAgICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lz
dGVyKG9wMSwgbGVmdFJlZ3MpOworICAgICAgICBpZiAocmlnaHRPcGVyYW5kLmlzUG9zaXRpdmVD
b25zdEludDMyKCkpCisgICAgICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKG9wMiwgcmln
aHRSZWdzKTsKKyAgICAgICAgUmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSA9IG1fY29kZUJs
b2NrLT5lbnN1cmVSZXN1bHRQcm9maWxlKG1fYnl0ZWNvZGVPZmZzZXQpOworICAgICAgICBjYWxs
T3BlcmF0aW9uKG9wZXJhdGlvblZhbHVlTXVsUHJvZmlsZWQsIHJlc3VsdFJlZ3MsIGxlZnRSZWdz
LCByaWdodFJlZ3MsIHJlc3VsdFByb2ZpbGUpOworICAgICAgICBlbWl0UHV0VmlydHVhbFJlZ2lz
dGVyKHJlc3VsdCwgcmVzdWx0UmVncyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgSklUU2xvd1Bh
dGhDYWxsIHNsb3dQYXRoQ2FsbCh0aGlzLCBjdXJyZW50SW5zdHJ1Y3Rpb24sIHNsb3dfcGF0aF9t
dWwpOworICAgICAgICBzbG93UGF0aENhbGwuY2FsbCgpOworICAgIH0KIH0KIAogdm9pZCBKSVQ6
OmVtaXRfb3Bfc3ViKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCkBAIC04OTgsNiAr
OTg2LDEwIEBAIHZvaWQgSklUOjplbWl0X29wX3N1YihJbnN0cnVjdGlvbiogY3VycmUKICAgICBG
UFJSZWcgc2NyYXRjaEZQUiA9IGZwUmVnVDI7CiAjZW5kaWYKIAorICAgIFJlc3VsdFByb2ZpbGUq
IHJlc3VsdFByb2ZpbGUgPSBudWxscHRyOworICAgIGlmIChzaG91bGRFbWl0UHJvZmlsaW5nKCkp
CisgICAgICAgIHJlc3VsdFByb2ZpbGUgPSBtX2NvZGVCbG9jay0+ZW5zdXJlUmVzdWx0UHJvZmls
ZShtX2J5dGVjb2RlT2Zmc2V0KTsKKwogICAgIFNuaXBwZXRPcGVyYW5kIGxlZnRPcGVyYW5kKHR5
cGVzLmZpcnN0KCkpOwogICAgIFNuaXBwZXRPcGVyYW5kIHJpZ2h0T3BlcmFuZCh0eXBlcy5zZWNv
bmQoKSk7CiAgICAgCkBAIC05MjAsOCArMTAxMiwyNSBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3Bf
c3ViKEluc3RydWN0aW9uKiBjCiB7CiAgICAgbGlua0FsbFNsb3dDYXNlc0ZvckJ5dGVjb2RlT2Zm
c2V0KG1fc2xvd0Nhc2VzLCBpdGVyLCBtX2J5dGVjb2RlT2Zmc2V0KTsKIAotICAgIEpJVFNsb3dQ
YXRoQ2FsbCBzbG93UGF0aENhbGwodGhpcywgY3VycmVudEluc3RydWN0aW9uLCBzbG93X3BhdGhf
c3ViKTsKLSAgICBzbG93UGF0aENhbGwuY2FsbCgpOworICAgIGludCByZXN1bHQgPSBjdXJyZW50
SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgSlNWYWx1
ZVJlZ3MgbGVmdFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMCk7CisgICAgSlNWYWx1ZVJlZ3Mgcmln
aHRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDEpOworICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3Mg
PSBsZWZ0UmVnczsKKyNlbHNlCisgICAgSlNWYWx1ZVJlZ3MgbGVmdFJlZ3MgPSBKU1ZhbHVlUmVn
cyhyZWdUMSwgcmVnVDApOworICAgIEpTVmFsdWVSZWdzIHJpZ2h0UmVncyA9IEpTVmFsdWVSZWdz
KHJlZ1QzLCByZWdUMik7CisgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IGxlZnRSZWdzOwor
I2VuZGlmCisKKyAgICBpZiAoc2hvdWxkRW1pdFByb2ZpbGluZygpKSB7CisgICAgICAgIFJlc3Vs
dFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUgPSBtX2NvZGVCbG9jay0+ZW5zdXJlUmVzdWx0UHJvZmls
ZShtX2J5dGVjb2RlT2Zmc2V0KTsKKyAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25WYWx1
ZVN1YlByb2ZpbGVkLCByZXN1bHRSZWdzLCBsZWZ0UmVncywgcmlnaHRSZWdzLCByZXN1bHRQcm9m
aWxlKTsKKyAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihyZXN1bHQsIHJlc3VsdFJlZ3Mp
OworICAgIH0gZWxzZSB7CisgICAgICAgIEpJVFNsb3dQYXRoQ2FsbCBzbG93UGF0aENhbGwodGhp
cywgY3VycmVudEluc3RydWN0aW9uLCBzbG93X3BhdGhfc3ViKTsKKyAgICAgICAgc2xvd1BhdGhD
YWxsLmNhbGwoKTsKKyAgICB9CiB9CiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSBFTkQ6IE9QX0FERCwgT1BfU1VCLCBPUF9NVUwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tICovCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaAkocmV2aXNp
b24gMjAwNTE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgJKHdv
cmtpbmcgY29weSkKQEAgLTQxNiw2ICs0MTYsMTQgQEAgQUxXQVlTX0lOTElORSBNYWNyb0Fzc2Vt
Ymxlcjo6Q2FsbCBKSVQ6OgogICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNr
KG9wZXJhdGlvbik7CiB9CiAKK2lubGluZSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxP
cGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpKUnAgb3BlcmF0aW9uLCBKU1ZhbHVlUmVncyByZXN1
bHQsIEpTVmFsdWVSZWdzIGFyZzEsIEpTVmFsdWVSZWdzIGFyZzIsIFJlc3VsdFByb2ZpbGUqIHJl
c3VsdFByb2ZpbGUpCit7CisgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFy
ZzIsIFRydXN0ZWRJbW1QdHIocmVzdWx0UHJvZmlsZSkpOworICAgIENhbGwgY2FsbCA9IGFwcGVu
ZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKKyAgICBzZXR1cFJlc3VsdHMocmVz
dWx0KTsKKyAgICByZXR1cm4gY2FsbDsKK30KKwogI2lmIFVTRShKU1ZBTFVFNjQpCiBBTFdBWVNf
SU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihaX0pJVE9wZXJh
dGlvbl9FSlpaIG9wZXJhdGlvbiwgR1BSUmVnIGFyZzEsIGludDMyX3QgYXJnMiwgaW50MzJfdCBh
cmczKQogewpAQCAtNjAyLDIzICs2MTAsNiBAQCBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVy
OjpDYWxsIEpJVDo6CiAKICNlbHNlIC8vIFVTRShKU1ZBTFVFMzJfNjQpCiAKLS8vIEVuY29kZWRK
U1ZhbHVlIGluIEpTVkFMVUUzMl82NCBpcyBhIDY0LWJpdCBpbnRlZ2VyLiBXaGVuIGJlaW5nIGNv
bXBpbGVkIGluIEFSTSBFQUJJLCBpdCBtdXN0IGJlIGFsaWduZWQgZXZlbi1udW1iZXJlZCByZWdp
c3RlciAocjAsIHIyIG9yIFtzcF0pLgotLy8gVG8gYXZvaWQgYXNzZW1ibGllcyBmcm9tIHVzaW5n
IHdyb25nIHJlZ2lzdGVycywgbGV0J3Mgb2NjdXB5IHIxIG9yIHIzIHdpdGggYSBkdW1teSBhcmd1
bWVudCB3aGVuIG5lY2Vzc2FyeS4KLSNpZiAoQ09NUElMRVJfU1VQUE9SVFMoRUFCSSkgJiYgQ1BV
KEFSTSkpIHx8IENQVShNSVBTKQotI2RlZmluZSBFQUJJXzMyQklUX0RVTU1ZX0FSRyAgICAgIFRy
dXN0ZWRJbW0zMigwKSwKLSNlbHNlCi0jZGVmaW5lIEVBQklfMzJCSVRfRFVNTVlfQVJHCi0jZW5k
aWYKLQotLy8gSlNWQUxVRTMyXzY0IGlzIGEgNjQtYml0IGludGVnZXIgdGhhdCBjYW5ub3QgYmUg
cHV0IGhhbGYgaW4gYW4gYXJndW1lbnQgcmVnaXN0ZXIgYW5kIGhhbGYgb24gc3RhY2sgd2hlbiB1
c2luZyBTSDQgYXJjaGl0ZWN0dXJlLgotLy8gVG8gYXZvaWQgdGhpcywgbGV0J3Mgb2NjdXB5IHRo
ZSA0dGggYXJndW1lbnQgcmVnaXN0ZXIgKHI3KSB3aXRoIGEgZHVtbXkgYXJndW1lbnQgd2hlbiBu
ZWNlc3NhcnkuIFRoaXMgbXVzdCBvbmx5IGJlIGRvbmUgd2hlbiB0aGVyZQotLy8gaXMgbm8gb3Ro
ZXIgMzItYml0IHZhbHVlIGFyZ3VtZW50IGJlaGluZCB0aGlzIDY0LWJpdCBKU1ZhbHVlLgotI2lm
IENQVShTSDQpCi0jZGVmaW5lIFNINF8zMkJJVF9EVU1NWV9BUkcgICAgICBUcnVzdGVkSW1tMzIo
MCksCi0jZWxzZQotI2RlZmluZSBTSDRfMzJCSVRfRFVNTVlfQVJHCi0jZW5kaWYKLQogQUxXQVlT
X0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb25Ob0V4Y2VwdGlv
bkNoZWNrKFZfSklUT3BlcmF0aW9uX0VKIG9wZXJhdGlvbiwgR1BSUmVnIGFyZzFUYWcsIEdQUlJl
ZyBhcmcxUGF5bG9hZCkKIHsKICAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoRUFCSV8z
MkJJVF9EVU1NWV9BUkcgYXJnMVBheWxvYWQsIGFyZzFUYWcpOwpAQCAtODAwLDkgKzc5MSw2IEBA
IEFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjoKICAgICByZXR1cm4gYXBw
ZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVja1NldEpTVmFsdWVSZXN1bHQob3BlcmF0aW9uLCBkc3Qp
OwogfQogCi0jdW5kZWYgRUFCSV8zMkJJVF9EVU1NWV9BUkcKLSN1bmRlZiBTSDRfMzJCSVRfRFVN
TVlfQVJHCi0KICNlbmRpZiAvLyBVU0UoSlNWQUxVRTMyXzY0KQogCiBBTFdBWVNfSU5MSU5FIEpJ
VDo6SnVtcCBKSVQ6OmNoZWNrU3RydWN0dXJlKFJlZ2lzdGVySUQgcmVnLCBTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUTXVsR2VuZXJhdG9y
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE11bEdlbmVy
YXRvci5jcHAJKHJldmlzaW9uIDIwMDUxNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUTXVsR2VuZXJhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xNTMsNiArMTUzLDcgQEAgdm9pZCBK
SVRNdWxHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoQwogICAgICAgICBDQ2FsbEhlbHBlcnM6
Okp1bXAgZG9uZSA9IGppdC5qdW1wKCk7CiAKICAgICAgICAgbm90TmVnYXRpdmVaZXJvLmxpbmso
JmppdCk7CisgICAgICAgIGppdC5vcjMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKFJlc3Vs
dFByb2ZpbGU6Ok5vbk5lZ1plcm9Eb3VibGUpLCBDQ2FsbEhlbHBlcnM6OkFic29sdXRlQWRkcmVz
cyhtX3Jlc3VsdFByb2ZpbGUtPmFkZHJlc3NPZkZsYWdzKCkpKTsKIAogICAgICAgICBqaXQubW92
ZShtX3Jlc3VsdC5wYXlsb2FkR1BSKCksIG1fc2NyYXRjaEdQUik7CiAgICAgICAgIGppdC51cnNo
aWZ0UHRyKENDYWxsSGVscGVyczo6SW1tMzIoNTIpLCBtX3NjcmF0Y2hHUFIpOwpAQCAtMTc0LDYg
KzE3NSw3IEBAIHZvaWQgSklUTXVsR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKEMKICAgICAg
ICAgQ0NhbGxIZWxwZXJzOjpKdW1wIGRvbmUgPSBqaXQuanVtcCgpOwogCiAgICAgICAgIG5vdE5l
Z2F0aXZlWmVyby5saW5rKCZqaXQpOworICAgICAgICBqaXQub3IzMihDQ2FsbEhlbHBlcnM6OlRy
dXN0ZWRJbW0zMihSZXN1bHRQcm9maWxlOjpOb25OZWdaZXJvRG91YmxlKSwgQ0NhbGxIZWxwZXJz
OjpBYnNvbHV0ZUFkZHJlc3MobV9yZXN1bHRQcm9maWxlLT5hZGRyZXNzT2ZGbGFncygpKSk7CiAK
ICAgICAgICAgaml0Lm1vdmUobV9yZXN1bHQudGFnR1BSKCksIG1fc2NyYXRjaEdQUik7CiAgICAg
ICAgIGppdC51cnNoaWZ0UHRyKENDYWxsSGVscGVyczo6SW1tMzIoNTIgLSAzMiksIG1fc2NyYXRj
aEdQUik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5j
cHAJKHJldmlzaW9uIDIwMDUxNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bl
cmF0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyNDMsNiArMjI0Myw4OCBAQCBKU0NlbGwq
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVG9JbmRleFN0CiAgICAgcmV0dXJuIGpzU3RyaW5nKGV4
ZWMsIElkZW50aWZpZXI6OmZyb20oZXhlYywgaW5kZXgpLnN0cmluZygpKTsKIH0KIAorRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZUFkZChFeGVjU3RhdGUqIGV4ZWMs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpCit7
CisgICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7CisgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRy
YWNlcih2bSwgZXhlYyk7CisgICAgCisgICAgSlNWYWx1ZSBvcDEgPSBKU1ZhbHVlOjpkZWNvZGUo
ZW5jb2RlZE9wMSk7CisgICAgSlNWYWx1ZSBvcDIgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9w
Mik7CisgICAgCisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0FkZChleGVjLCBvcDEsIG9w
MikpOworfQorCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQWRk
UHJvZmlsZWQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlKQorewor
ICAgIFZNKiB2bSA9ICZleGVjLT52bSgpOworICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFj
ZXIodm0sIGV4ZWMpOworICAgIAorICAgIEpTVmFsdWUgb3AxID0gSlNWYWx1ZTo6ZGVjb2RlKGVu
Y29kZWRPcDEpOworICAgIEpTVmFsdWUgb3AyID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDIp
OworICAgIAorICAgIEpTVmFsdWUgcmVzdWx0ID0ganNBZGQoZXhlYywgb3AxLCBvcDIpOworICAg
IHJlc3VsdFByb2ZpbGUtPmRldGVjdEJpdHNMaWdodChyZXN1bHQpOworICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUocmVzdWx0KTsKK30KKworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBv
cGVyYXRpb25WYWx1ZU11bChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRP
cDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpCit7CisgICAgVk0qIHZtID0gJmV4ZWMtPnZt
KCk7CisgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgZXhlYyk7CisKKyAgICBK
U1ZhbHVlIG9wMSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AxKTsKKyAgICBKU1ZhbHVlIG9w
MiA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AyKTsKKworICAgIGRvdWJsZSBhID0gb3AxLnRv
TnVtYmVyKGV4ZWMpOworICAgIGRvdWJsZSBiID0gb3AyLnRvTnVtYmVyKGV4ZWMpOworICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoYSAqIGIpKTsKK30KKworRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZU11bFByb2ZpbGVkKEV4ZWNTdGF0ZSogZXhl
YywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwg
UmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSkKK3sKKyAgICBWTSogdm0gPSAmZXhlYy0+dm0o
KTsKKyAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBleGVjKTsKKworICAgIEpT
VmFsdWUgb3AxID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDEpOworICAgIEpTVmFsdWUgb3Ay
ID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDIpOworCisgICAgZG91YmxlIGEgPSBvcDEudG9O
dW1iZXIoZXhlYyk7CisgICAgZG91YmxlIGIgPSBvcDIudG9OdW1iZXIoZXhlYyk7CisgICAgCisg
ICAgSlNWYWx1ZSByZXN1bHQgPSBqc051bWJlcihhICogYik7CisgICAgcmVzdWx0UHJvZmlsZS0+
ZGV0ZWN0Qml0c0xpZ2h0KHJlc3VsdCk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1
bHQpOworfQorCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlU3Vi
KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZE9wMikKK3sKKyAgICBWTSogdm0gPSAmZXhlYy0+dm0oKTsKKyAgICBOYXRpdmVD
YWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBleGVjKTsKKyAgICAKKyAgICBKU1ZhbHVlIG9wMSA9
IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AxKTsKKyAgICBKU1ZhbHVlIG9wMiA9IEpTVmFsdWU6
OmRlY29kZShlbmNvZGVkT3AyKTsKKworICAgIGRvdWJsZSBhID0gb3AxLnRvTnVtYmVyKGV4ZWMp
OworICAgIGRvdWJsZSBiID0gb3AyLnRvTnVtYmVyKGV4ZWMpOworICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNOdW1iZXIoYSAtIGIpKTsKK30KKworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBvcGVyYXRpb25WYWx1ZVN1YlByb2ZpbGVkKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgUmVzdWx0UHJvZmls
ZSogcmVzdWx0UHJvZmlsZSkKK3sKKyAgICBWTSogdm0gPSAmZXhlYy0+dm0oKTsKKyAgICBOYXRp
dmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBleGVjKTsKKyAgICAKKyAgICBKU1ZhbHVlIG9w
MSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AxKTsKKyAgICBKU1ZhbHVlIG9wMiA9IEpTVmFs
dWU6OmRlY29kZShlbmNvZGVkT3AyKTsKKworICAgIGRvdWJsZSBhID0gb3AxLnRvTnVtYmVyKGV4
ZWMpOworICAgIGRvdWJsZSBiID0gb3AyLnRvTnVtYmVyKGV4ZWMpOworICAgIAorICAgIEpTVmFs
dWUgcmVzdWx0ID0ganNOdW1iZXIoYSAtIGIpOworICAgIHJlc3VsdFByb2ZpbGUtPmRldGVjdEJp
dHNMaWdodChyZXN1bHQpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKK30K
Kwogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblByb2Nlc3NUeXBlUHJvZmlsZXJMb2coRXhl
Y1N0YXRlKiBleGVjKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaAkocmV2aXNpb24gMjAwNTE3KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmgJKHdvcmtpbmcgY29weSkK
QEAgLTUzLDYgKzUzLDcgQEAgY2xhc3MgV2F0Y2hwb2ludFNldDsKIAogc3RydWN0IEJ5VmFsSW5m
bzsKIHN0cnVjdCBJbmxpbmVDYWxsRnJhbWU7CitzdHJ1Y3QgUmVzdWx0UHJvZmlsZTsKIAogdHlw
ZWRlZiBFeGVjU3RhdGUgQ2FsbEZyYW1lOwogCkBAIC05Niw2ICs5Nyw3IEBAIHR5cGVkZWYgY2hh
ciogVW51c2VkUHRyOwogICAgIFE6IGludDY0X3QKICAgICBSOiBSZWdpc3RlcgogICAgIFJlbzog
UmVnRXhwT2JqZWN0KgorICAgIFJwOiBSZXN1bHRQcm9maWxlKgogICAgIFM6IHNpemVfdAogICAg
IFNwcnQ6IFNsb3dQYXRoUmV0dXJuVHlwZQogICAgIFNzaTogU3RydWN0dXJlU3R1YkluZm8qCkBA
IC0xMzYsNiArMTM4LDcgQEAgdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OICgq
SgogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25f
RUpKQXApKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgQXJyYXlQ
cm9maWxlKik7CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJVE9w
ZXJhdGlvbl9FSkpCeSkoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVl
LCBCeVZhbEluZm8qKTsKIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiAoKkpf
SklUT3BlcmF0aW9uX0VKSkopKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUpOwordHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OICgqSl9KSVRPcGVyYXRpb25fRUpKUnApKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSwgUmVzdWx0UHJvZmlsZSopOwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25fRUpzc1opKEV4ZWNTdGF0ZSosIEpTU3RyaW5n
KiwgaW50MzJfdCk7CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJ
VE9wZXJhdGlvbl9FSnNzUmVvKShFeGVjU3RhdGUqLCBKU1N0cmluZyosIFJlZ0V4cE9iamVjdCop
OwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25f
RUpzc1Jlb0pzcykoRXhlY1N0YXRlKiwgSlNTdHJpbmcqLCBSZWdFeHBPYmplY3QqLCBKU1N0cmlu
ZyopOwpAQCAtNDA2LDYgKzQwOSwxMyBAQCBKU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
R2V0UHJvcGVyCiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5leHRFbnVt
ZXJhdG9yUG5hbWUoRXhlY1N0YXRlKiwgSlNDZWxsKiwgaW50MzJfdCk7CiBKU0NlbGwqIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uVG9JbmRleFN0cmluZyhFeGVjU3RhdGUqLCBpbnQzMl90KTsKIAor
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZUFkZChFeGVjU3RhdGUq
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSBX
VEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVl
QWRkUHJvZmlsZWQoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZE9wMiwgUmVzdWx0UHJvZmlsZSopIFdURl9JTlRFUk5BTDsKK0VuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVNdWwoRXhlY1N0YXRlKiwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikgV1RGX0lO
VEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZU11bFBy
b2ZpbGVkKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRPcDIsIFJlc3VsdFByb2ZpbGUqKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlU3ViKEV4ZWNTdGF0ZSosIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpIFdURl9JTlRFUk5B
TDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVTdWJQcm9maWxl
ZChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkT3AyLCBSZXN1bHRQcm9maWxlKikgV1RGX0lOVEVSTkFMOworCiB2b2lkIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uUHJvY2Vzc1R5cGVQcm9maWxlckxvZyhFeGVjU3RhdGUqKSBXVEZfSU5U
RVJOQUw7CiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHJvY2Vzc1NoYWRvd0NoaWNrZW5M
b2coRXhlY1N0YXRlKikgV1RGX0lOVEVSTkFMOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVFN1YkdlbmVyYXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRTdWJHZW5lcmF0b3IuY3BwCShyZXZpc2lvbiAyMDA1MTcpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN1YkdlbmVyYXRvci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
ODMsNiArODMsOSBAQCB2b2lkIEpJVFN1YkdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChDCiAg
ICAgcmlnaHRXYXNJbnRlZ2VyLmxpbmsoJmppdCk7CiAKICAgICBqaXQuc3ViRG91YmxlKG1fcmln
aHRGUFIsIG1fbGVmdEZQUik7CisgICAgaWYgKG1fcmVzdWx0UHJvZmlsZSkKKyAgICAgICAgbV9y
ZXN1bHRQcm9maWxlLT5lbWl0U2V0RG91YmxlKGppdCk7CisKICAgICBqaXQuYm94RG91YmxlKG1f
bGVmdEZQUiwgbV9yZXN1bHQpOwogfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVFN1YkdlbmVyYXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUU3ViR2VuZXJhdG9yLmgJKHJldmlzaW9uIDIwMDUxNykKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUU3ViR2VuZXJhdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzcsNyArMzcsOCBA
QCBjbGFzcyBKSVRTdWJHZW5lcmF0b3IgewogcHVibGljOgogICAgIEpJVFN1YkdlbmVyYXRvcihT
bmlwcGV0T3BlcmFuZCBsZWZ0T3BlcmFuZCwgU25pcHBldE9wZXJhbmQgcmlnaHRPcGVyYW5kLAog
ICAgICAgICBKU1ZhbHVlUmVncyByZXN1bHQsIEpTVmFsdWVSZWdzIGxlZnQsIEpTVmFsdWVSZWdz
IHJpZ2h0LAotICAgICAgICBGUFJSZWcgbGVmdEZQUiwgRlBSUmVnIHJpZ2h0RlBSLCBHUFJSZWcg
c2NyYXRjaEdQUiwgRlBSUmVnIHNjcmF0Y2hGUFIpCisgICAgICAgIEZQUlJlZyBsZWZ0RlBSLCBG
UFJSZWcgcmlnaHRGUFIsIEdQUlJlZyBzY3JhdGNoR1BSLCBGUFJSZWcgc2NyYXRjaEZQUiwKKyAg
ICAgICAgUmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSA9IG51bGxwdHIpCiAgICAgICAgIDog
bV9sZWZ0T3BlcmFuZChsZWZ0T3BlcmFuZCkKICAgICAgICAgLCBtX3JpZ2h0T3BlcmFuZChyaWdo
dE9wZXJhbmQpCiAgICAgICAgICwgbV9yZXN1bHQocmVzdWx0KQpAQCAtNDcsNiArNDgsNyBAQCBw
dWJsaWM6CiAgICAgICAgICwgbV9yaWdodEZQUihyaWdodEZQUikKICAgICAgICAgLCBtX3NjcmF0
Y2hHUFIoc2NyYXRjaEdQUikKICAgICAgICAgLCBtX3NjcmF0Y2hGUFIoc2NyYXRjaEZQUikKKyAg
ICAgICAgLCBtX3Jlc3VsdFByb2ZpbGUocmVzdWx0UHJvZmlsZSkKICAgICB7IH0KIAogICAgIHZv
aWQgZ2VuZXJhdGVGYXN0UGF0aChDQ2FsbEhlbHBlcnMmKTsKQEAgLTY1LDYgKzY3LDcgQEAgcHJp
dmF0ZToKICAgICBGUFJSZWcgbV9yaWdodEZQUjsKICAgICBHUFJSZWcgbV9zY3JhdGNoR1BSOwog
ICAgIEZQUlJlZyBtX3NjcmF0Y2hGUFI7CisgICAgUmVzdWx0UHJvZmlsZSogbV9yZXN1bHRQcm9m
aWxlOwogICAgIGJvb2wgbV9kaWRFbWl0RmFzdFBhdGggeyBmYWxzZSB9OwogCiAgICAgQ0NhbGxI
ZWxwZXJzOjpKdW1wTGlzdCBtX2VuZEp1bXBMaXN0OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9UYWdSZWdpc3RlcnNNb2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L1RhZ1JlZ2lzdGVyc01vZGUuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9UYWdSZWdpc3RlcnNNb2RlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUYWdSZWdpc3RlcnNNb2RlLmgi
CisKKyNpbmNsdWRlIDx3dGYvUHJpbnRTdHJlYW0uaD4KKworbmFtZXNwYWNlIFdURiB7CisKK3Vz
aW5nIG5hbWVzcGFjZSBKU0M7CisKK3ZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0
LCBUYWdSZWdpc3RlcnNNb2RlIG1vZGUpCit7CisgICAgc3dpdGNoIChtb2RlKSB7CisgICAgY2Fz
ZSBEb05vdEhhdmVUYWdSZWdpc3RlcnM6CisgICAgICAgIG91dC5wcmludCgiRG9Ob3RIYXZlVGFn
UmVnaXN0ZXJzIik7CisgICAgICAgIHJldHVybjsKKyAgICBjYXNlIEhhdmVUYWdSZWdpc3RlcnM6
CisgICAgICAgIG91dC5wcmludCgiSGF2ZVRhZ1JlZ2lzdGVycyIpOworICAgICAgICByZXR1cm47
CisgICAgfQorICAgIAorICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdURgorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RhZ1Jl
Z2lzdGVyc01vZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1Rh
Z1JlZ2lzdGVyc01vZGUuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvVGFnUmVnaXN0ZXJzTW9kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDYgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBUYWdS
ZWdpc3RlcnNNb2RlX2gKKyNkZWZpbmUgVGFnUmVnaXN0ZXJzTW9kZV9oCisKK25hbWVzcGFjZSBK
U0MgeworCitlbnVtIFRhZ1JlZ2lzdGVyc01vZGUgeworICAgIERvTm90SGF2ZVRhZ1JlZ2lzdGVy
cywKKyAgICBIYXZlVGFnUmVnaXN0ZXJzCit9OworCit9IC8vIG5hbWVzcGFjZSBKU0MKKworbmFt
ZXNwYWNlIFdURiB7CisKK2NsYXNzIFByaW50U3RyZWFtOwordm9pZCBwcmludEludGVybmFsKFBy
aW50U3RyZWFtJiwgSlNDOjpUYWdSZWdpc3RlcnNNb2RlKTsKKworfSAvLyBuYW1lc3BhY2UgV1RG
CisKKyNlbmRpZiAvLyBUYWdSZWdpc3RlcnNNb2RlX2gKKwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwCShyZXZpc2lvbiAyMDA1
MTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zNzgsNiArMzc4LDggQEAgc3RhdGljIHZvaWQgdXBkYXRlUmVz
dWx0UHJvZmlsZUZvckJpbmFyeQogICAgICAgICAgICAgaWYgKCFkb3VibGVWYWwgJiYgc3RkOjpz
aWduYml0KGRvdWJsZVZhbCkpCiAgICAgICAgICAgICAgICAgcHJvZmlsZS0+c2V0T2JzZXJ2ZWRO
ZWdaZXJvRG91YmxlKCk7CiAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBwcm9m
aWxlLT5zZXRPYnNlcnZlZE5vbk5lZ1plcm9Eb3VibGUoKTsKKwogICAgICAgICAgICAgICAgIC8v
IFRoZSBJbnQ1MiBvdmVyZmxvdyBjaGVjayBoZXJlIGludGVudGlvbmFsbHkgb21pdHMgMWxsIDw8
IDUxIGFzIGEgdmFsaWQgbmVnYXRpdmUgSW50NTIgdmFsdWUuCiAgICAgICAgICAgICAgICAgLy8g
VGhlcmVmb3JlLCB3ZSB3aWxsIGdldCBhIGZhbHNlIHBvc2l0aXZlIGlmIHRoZSByZXN1bHQgaXMg
dGhhdCB2YWx1ZS4gVGhpcyBpcyBpbnRlbnRpb25hbGx5CiAgICAgICAgICAgICAgICAgLy8gZG9u
ZSB0byBzaW1wbGlmeSB0aGUgY2hlY2tpbmcgYWxnb3JpdGhtLgpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaAkocmV2aXNpb24gMjAwNTE3KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNzEsNiAr
MTcxLDcgQEAgdHlwZWRlZiBjb25zdCBjaGFyKiBvcHRpb25TdHJpbmc7CiAgICAgdihib29sLCBy
ZXBvcnRDb21waWxlVGltZXMsIGZhbHNlLCBOb3JtYWwsICJkdW1wcyBKUyBmdW5jdGlvbiBzaWdu
YXR1cmUgYW5kIHRoZSB0aW1lIGl0IHRvb2sgdG8gY29tcGlsZSIpIFwKICAgICB2KGJvb2wsIHJl
cG9ydEZUTENvbXBpbGVUaW1lcywgZmFsc2UsIE5vcm1hbCwgImR1bXBzIEpTIGZ1bmN0aW9uIHNp
Z25hdHVyZSBhbmQgdGhlIHRpbWUgaXQgdG9vayB0byBGVEwgY29tcGlsZSIpIFwKICAgICB2KGJv
b2wsIHJlcG9ydFRvdGFsQ29tcGlsZVRpbWVzLCBmYWxzZSwgTm9ybWFsLCBudWxscHRyKSBcCisg
ICAgdihib29sLCB2ZXJib3NlRXhpdFByb2ZpbGUsIGZhbHNlLCBOb3JtYWwsIG51bGxwdHIpIFwK
ICAgICB2KGJvb2wsIHZlcmJvc2VDRkEsIGZhbHNlLCBOb3JtYWwsIG51bGxwdHIpIFwKICAgICB2
KGJvb2wsIHZlcmJvc2VGVExUb0pTVGh1bmssIGZhbHNlLCBOb3JtYWwsIG51bGxwdHIpIFwKICAg
ICB2KGJvb2wsIHZlcmJvc2VGVExGYWlsdXJlLCBmYWxzZSwgTm9ybWFsLCBudWxscHRyKSBcCklu
ZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyMDA1ODEpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSwzMSBAQAorMjAxNi0wNS0wOSAgRmlsaXAgUGl6bG8gIDxmcGl6
bG9AYXBwbGUuY29tPgorCisgICAgICAgIFBvbHltb3JwaGljIG9wZXJhbmRzIGluIG9wZXJhdG9y
cyBjb2VyY2VzIGRvd25zdHJlYW0gdmFsdWVzIHRvIGRvdWJsZS4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTc5MworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICoganMvcmVncmVzcy9vYmplY3QtaW50LWFk
ZC1hcnJheS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3Mvb2JqZWN0
LWludC1hZGQtYXJyYXkuaHRtbDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9vYmplY3Qt
aW50LWFkZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3Mvb2JqZWN0
LWludC1hZGQuaHRtbDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9vYmplY3QtaW50LW11
bC1hcnJheS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3Mvb2JqZWN0
LWludC1tdWwtYXJyYXkuaHRtbDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9vYmplY3Qt
aW50LXN1Yi1hcnJheS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3Mv
b2JqZWN0LWludC1zdWItYXJyYXkuaHRtbDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9v
YmplY3QtaW50LXN1Yi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3Mv
b2JqZWN0LWludC1zdWIuaHRtbDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQt
dGVzdHMvb2JqZWN0LWludC1hZGQtYXJyYXkuanM6IEFkZGVkLgorICAgICAgICAoaS5vLnZhbHVl
T2YpOgorICAgICAgICAqIGpzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL29iamVjdC1pbnQtYWRkLmpz
OiBBZGRlZC4KKyAgICAgICAgKGkuby52YWx1ZU9mKToKKyAgICAgICAgKiBqcy9yZWdyZXNzL3Nj
cmlwdC10ZXN0cy9vYmplY3QtaW50LW11bC1hcnJheS5qczogQWRkZWQuCisgICAgICAgIChpLm8u
dmFsdWVPZik6CisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvb2JqZWN0LWludC1z
dWItYXJyYXkuanM6IEFkZGVkLgorICAgICAgICAoaS5vLnZhbHVlT2YpOgorICAgICAgICAqIGpz
L3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL29iamVjdC1pbnQtc3ViLmpzOiBBZGRlZC4KKyAgICAgICAg
KGkuby52YWx1ZU9mKToKKwogMjAxNi0wNS0wOSAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0
Lm9yZz4KIAogICAgICAgICBGb2N1c2luZyBhIHNoYWRvdyBob3N0IHBsYWNlcyB0aGUgc2xvdCBj
b250ZW50IGFmdGVyIHRoZSBzaGFkb3cgRE9NIGNvbnRlbnQKSW5kZXg6IExheW91dFRlc3RzL2pz
L3JlZ3Jlc3Mvb2JqZWN0LWludC1hZGQtYXJyYXktZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvb2JqZWN0LWludC1hZGQtYXJyYXktZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9vYmplY3QtaW50LWFkZC1h
cnJheS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMCBAQAorSlNSZWdy
ZXNzL29iamVjdC1pbnQtYWRkLWFycmF5CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitQQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL29iamVj
dC1pbnQtYWRkLWFycmF5Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVz
cy9vYmplY3QtaW50LWFkZC1hcnJheS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
anMvcmVncmVzcy9vYmplY3QtaW50LWFkZC1hcnJheS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VO
Ij4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRl
c3RzL29iamVjdC1pbnQtYWRkLWFycmF5LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
SW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvb2JqZWN0LWludC1hZGQtZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvb2JqZWN0LWludC1hZGQtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9vYmplY3Qt
aW50LWFkZC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMCBAQAorSlNS
ZWdyZXNzL29iamVjdC1pbnQtYWRkCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQ
QVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL29iamVjdC1p
bnQtYWRkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9vYmplY3Qt
aW50LWFkZC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9vYmpl
Y3QtaW50LWFkZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQ
RSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL29iamVjdC1pbnQtYWRkLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jl
c3Mvb2JqZWN0LWludC1tdWwtYXJyYXktZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2pzL3JlZ3Jlc3Mvb2JqZWN0LWludC1tdWwtYXJyYXktZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9vYmplY3QtaW50LW11bC1hcnJheS1l
eHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMCBAQAorSlNSZWdyZXNzL29i
amVjdC1pbnQtbXVsLWFycmF5CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNT
IG5vIGV4Y2VwdGlvbiB0aHJvd24KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL29iamVjdC1pbnQt
bXVsLWFycmF5Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9vYmpl
Y3QtaW50LW11bC1hcnJheS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvanMvcmVn
cmVzcy9vYmplY3QtaW50LW11bC1hcnJheS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
MTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxo
dG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL29i
amVjdC1pbnQtbXVsLWFycmF5LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6
IExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvb2JqZWN0LWludC1zdWItYXJyYXktZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvb2JqZWN0LWludC1zdWItYXJy
YXktZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9v
YmplY3QtaW50LXN1Yi1hcnJheS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSwxMCBAQAorSlNSZWdyZXNzL29iamVjdC1pbnQtc3ViLWFycmF5CisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCitQQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL29iamVjdC1pbnQtc3ViLWFycmF5Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9vYmplY3QtaW50LXN1Yi1hcnJheS5odG1sCShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9vYmplY3QtaW50LXN1Yi1hcnJheS5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVU
Ri8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0ic2NyaXB0LXRlc3RzL29iamVjdC1pbnQtc3ViLWFycmF5LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvb2JqZWN0LWludC1z
dWItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvb2Jq
ZWN0LWludC1zdWItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvanMv
cmVncmVzcy9vYmplY3QtaW50LXN1Yi1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSwxMCBAQAorSlNSZWdyZXNzL29iamVjdC1pbnQtc3ViCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCitQQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9y
ZWdyZXNzL29iamVjdC1pbnQtc3ViLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMv
cmVncmVzcy9vYmplY3QtaW50LXN1Yi5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
anMvcmVncmVzcy9vYmplY3QtaW50LXN1Yi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
MTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxo
dG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL29i
amVjdC1pbnQtc3ViLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
cmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91
dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL29iamVjdC1pbnQtYWRkLWFycmF5LmpzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL29iamVjdC1p
bnQtYWRkLWFycmF5LmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9z
Y3JpcHQtdGVzdHMvb2JqZWN0LWludC1hZGQtYXJyYXkuanMJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSwxOCBAQAorKGZ1bmN0aW9uKCkgeworICAgIHZhciByZXN1bHQgPSAwOworICAgIHZhciBt
ID0gMTAwOworICAgIHZhciBuID0gMTAwMDAwOworICAgIHZhciBhcnJheSA9IFtdOworICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgMTAwOyArK2kpCisgICAgICAgIGFycmF5LnB1c2goMTIpOworICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgbTsgKytpKSB7CisgICAgICAgIHZhciB2YWx1ZSA9IDA7Cisg
ICAgICAgIHZhciBvID0ge3ZhbHVlT2Y6IGZ1bmN0aW9uKCkgeyByZXR1cm4gNDI7IH19OworICAg
ICAgICB2YWx1ZSArPSBvOworICAgICAgICB2YXIgcmVzdWx0ID0gMDsKKyAgICAgICAgZm9yICh2
YXIgaiA9IDA7IGogPCBuOyArK2opCisgICAgICAgICAgICByZXN1bHQgKz0gYXJyYXlbdmFsdWVd
OworICAgIH0KKyAgICBpZiAocmVzdWx0ICE9IG4gKiAxMikKKyAgICAgICAgdGhyb3cgIkVycm9y
OiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfSkoKTsKSW5kZXg6IExheW91dFRlc3RzL2pzL3Jl
Z3Jlc3Mvc2NyaXB0LXRlc3RzL29iamVjdC1pbnQtYWRkLmpzCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL29iamVjdC1pbnQtYWRkLmpzCShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvb2JqZWN0LWludC1h
ZGQuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMyBAQAorKGZ1bmN0aW9uKCkgeworICAg
IHZhciByZXN1bHQgPSAwOworICAgIHZhciBtID0gMTAwMDsKKyAgICB2YXIgbiA9IDEwMDAwOwor
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbTsgKytpKSB7CisgICAgICAgIHZhciBvID0ge3ZhbHVl
T2Y6IGZ1bmN0aW9uKCkgeyByZXR1cm4gNDI7IH19OworICAgICAgICByZXN1bHQgKz0gbzsKKyAg
ICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBuOyArK2opCisgICAgICAgICAgICByZXN1bHQgKz0g
ajsKKyAgICB9CisgICAgaWYgKHJlc3VsdCAhPSBtICogKDQyICsgbiAqIChuIC0gMSkgLyAyKSkK
KyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfSkoKTsKSW5k
ZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL29iamVjdC1pbnQtbXVsLWFy
cmF5LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3Rz
L29iamVjdC1pbnQtbXVsLWFycmF5LmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvanMv
cmVncmVzcy9zY3JpcHQtdGVzdHMvb2JqZWN0LWludC1tdWwtYXJyYXkuanMJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSwxOCBAQAorKGZ1bmN0aW9uKCkgeworICAgIHZhciByZXN1bHQgPSAwOwor
ICAgIHZhciBtID0gMTAwOworICAgIHZhciBuID0gMTAwMDAwOworICAgIHZhciBhcnJheSA9IFtd
OworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwOyArK2kpCisgICAgICAgIGFycmF5LnB1c2go
MTIpOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbTsgKytpKSB7CisgICAgICAgIHZhciB2YWx1
ZSA9IDE7CisgICAgICAgIHZhciBvID0ge3ZhbHVlT2Y6IGZ1bmN0aW9uKCkgeyByZXR1cm4gNDI7
IH19OworICAgICAgICB2YWx1ZSAqPSBvOworICAgICAgICB2YXIgcmVzdWx0ID0gMDsKKyAgICAg
ICAgZm9yICh2YXIgaiA9IDA7IGogPCBuOyArK2opCisgICAgICAgICAgICByZXN1bHQgKz0gYXJy
YXlbdmFsdWVdOworICAgIH0KKyAgICBpZiAocmVzdWx0ICE9IG4gKiAxMikKKyAgICAgICAgdGhy
b3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfSkoKTsKSW5kZXg6IExheW91dFRl
c3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL29iamVjdC1pbnQtc3ViLWFycmF5LmpzCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL29iamVjdC1pbnQt
c3ViLWFycmF5LmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3Jp
cHQtdGVzdHMvb2JqZWN0LWludC1zdWItYXJyYXkuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSwxOCBAQAorKGZ1bmN0aW9uKCkgeworICAgIHZhciByZXN1bHQgPSAwOworICAgIHZhciBtID0g
MTAwOworICAgIHZhciBuID0gMTAwMDAwOworICAgIHZhciBhcnJheSA9IFtdOworICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgMTAwOyArK2kpCisgICAgICAgIGFycmF5LnB1c2goMTIpOworICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgbTsgKytpKSB7CisgICAgICAgIHZhciB2YWx1ZSA9IDA7CisgICAg
ICAgIHZhciBvID0ge3ZhbHVlT2Y6IGZ1bmN0aW9uKCkgeyByZXR1cm4gNDI7IH19OworICAgICAg
ICB2YWx1ZSAtPSBvOworICAgICAgICB2YXIgcmVzdWx0ID0gMDsKKyAgICAgICAgZm9yICh2YXIg
aiA9IDA7IGogPCBuOyArK2opCisgICAgICAgICAgICByZXN1bHQgKz0gYXJyYXlbLXZhbHVlXTsK
KyAgICB9CisgICAgaWYgKHJlc3VsdCAhPSBuICogMTIpCisgICAgICAgIHRocm93ICJFcnJvcjog
YmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30pKCk7CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL3NjcmlwdC10ZXN0cy9vYmplY3QtaW50LXN1Yi5qcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9vYmplY3QtaW50LXN1Yi5qcwkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL29iamVjdC1pbnQtc3Vi
LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTMgQEAKKyhmdW5jdGlvbigpIHsKKyAgICB2
YXIgcmVzdWx0ID0gMDsKKyAgICB2YXIgbSA9IDEwMDA7CisgICAgdmFyIG4gPSAxMDAwMDsKKyAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IG07ICsraSkgeworICAgICAgICB2YXIgbyA9IHt2YWx1ZU9m
OiBmdW5jdGlvbigpIHsgcmV0dXJuIDQyOyB9fTsKKyAgICAgICAgcmVzdWx0IC09IG87CisgICAg
ICAgIGZvciAodmFyIGogPSAwOyBqIDwgbjsgKytqKQorICAgICAgICAgICAgcmVzdWx0IC09IGo7
CisgICAgfQorICAgIGlmIChyZXN1bHQgIT0gLW0gKiAoNDIgKyBuICogKG4gLSAxKSAvIDIpKQor
ICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9KSgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>278431</attachid>
            <date>2016-05-09 13:14:11 -0700</date>
            <delta_ts>2016-05-09 13:38:41 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>105241</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjAwNTgyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1OCBA
QAorMjAxNi0wNS0wOSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAg
IFBvbHltb3JwaGljIG9wZXJhbmRzIGluIG9wZXJhdG9ycyBjb2VyY2VzIGRvd25zdHJlYW0gdmFs
dWVzIHRvIGRvdWJsZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE1MTc5MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAg
ICAgICAKKyAgICAgICAgUHJldmlvdXNseSBpZiBhbiBvYmplY3QgZmxvd2VkIGludG8gYXJpdGht
ZXRpYywgdGhlIHByZWRpY3Rpb24gcHJvcGFnYXRpb24gcGhhc2Ugd291bGQgZWl0aGVyCisgICAg
ICAgIGFzc3VtZSB0aGF0IHRoZSBvdXRwdXQgb2YgdGhlIGFyaXRobWV0aWMgaGFkIHRvIGJlIGRv
dWJsZSBvciBzb21ldGltZXMgaXQgd291bGQgYXNzdW1lIHRoYXQgaXQKKyAgICAgICAgY291bGRu
J3QgYmUgZG91YmxlLiBXZSB3YW50IGl0IHRvIG9ubHkgYXNzdW1lIHRoYXQgdGhlIG91dHB1dCBp
cyBkb3VibGUgaWYgaXQgYWN0dWFsbHkgaGFkIGJlZW4uCisgICAgICAgIAorICAgICAgICBUaGUg
Zmlyc3QgcGFydCBvZiB0aGlzIHBhdGNoIGlzIHRvIHJvbGwgb3V0IGh0dHA6Ly90cmFjLndlYmtp
dC5vcmcvY2hhbmdlc2V0LzIwMDUwMi4gVGhhdCByZW1vdmVkCisgICAgICAgIHNvbWUgb2YgdGhl
IG1hY2hpbmVyeSB0aGF0IHdlIGhhZCBpbiBwbGFjZSB0byBkZXRlY3Qgd2hldGhlciB0aGUgb3V0
cHV0IG9mIGFuIG9wZXJhdGlvbiBpcyBpbnQgb3IKKyAgICAgICAgZG91YmxlLiBUaGF0IGNoYW5n
ZXNldCBjbGFpbWVkIHRoYXQgdGhlIG1hY2hpbmVyeSB3YXMgImZ1bmRhbWVudGFsbHkgYnJva2Vu
Ii4gSXQgYWN0dWFsbHkgd2Fzbid0LgorICAgICAgICBUaGUgcmVhc29uIHdoeSBpdCBkaWRuJ3Qg
d29yayB3YXMgdGhhdCBCeXRlQ29kZVBhcnNlciB3YXMgaWdub3JpbmcgaXQgaWYgbGlrZWx5VG9U
YWtlU2xvd0Nhc2Ugd2FzCisgICAgICAgIGZhbHNlLiBJIHRoaW5rIHRoaXMgd2FzIGEgY29tcGxl
dGUgZ29vZi11cDogdGhlIGNvZGUgaW4gQnl0ZUNvZGVQYXJzZXI6Om1ha2VTYWZlIHdhcyBzdHJ1
Y3R1cmVkCisgICAgICAgIGluIGEgd2F5IHRoYXQgbWFkZSBpdCBub24tb2J2aW91cyB0aGF0IHRo
ZSBtZXRob2QgaXMgYSBuby1vcCBpZiAhbGlrZWx5VG9UYWtlU2xvd0Nhc2UuIFNvLCB0aGlzCisg
ICAgICAgIGNoYW5nZSByb2xscyBvdXQgcjIwMDUwMiBhbmQgbWFrZXMgUmVzdWx0UHJvZmlsZSBk
byBpdHMgam9iIGJ5IHJlc2hhcGluZyBob3cgbWFrZVNhZmUgcHJvY2Vzc2VzCisgICAgICAgIGl0
LgorICAgICAgICAKKyAgICAgICAgVGhpcyBhbHNvIG1ha2VzIHR3byBvdGhlciBjaGFuZ2VzIHRv
IHNob3JlIHVwIFJlc3VsdFByb2ZpbGU6CisgICAgICAgIC0gT1NSIGV4aXQgY2FuIG5vdyByZWZp
bmUgYSBSZXN1bHRQcm9maWxlIHRoZSBzYW1lIHdheSB0aGF0IGl0IHJlZmluZXMgVmFsdWVQcm9m
aWxlLgorICAgICAgICAtIEJhc2VsaW5lIEpJVCBzbG93IHBhdGhzIG5vdyBzZXQgYml0cyBpbiBS
ZXN1bHRQcm9maWxlLgorICAgICAgICAKKyAgICAgICAgQmFzZWQgb24gdGhpcyBzdHVmZiwgdGhl
IERGRyBub3cgcHJlZGljdHMgaW50L2RvdWJsZS9zdHJpbmcgaW4gb3BfYWRkL29wX3N1Yi9vcF9t
dWwgYmFzZWQgb24KKyAgICAgICAgUmVzdWx0UHJvZmlsZXMuIFRvIGJlIGNvbnNlcnZhdGl2ZSwg
d2Ugc3RpbGwgb25seSB1c2UgdGhlIFJlc3VsdFByb2ZpbGVzIGlmIHRoZSBpbmNvbWluZworICAg
ICAgICBwcmVkaWN0aW9uIGlzIG5vdCBudW1iZXItb3ItYm9vbGVhbi4gVGhpcyBlbnN1cmVzIHRo
YXQgd2UgZXhhY3RseSByZXRhaW4gb3VyIG9sZCBiZWhhdmlvciBpbgorICAgICAgICB0aG9zZSBj
YXNlcyBmb3Igd2hpY2ggaXQgd2FzIHR1bmVkLiBCdXQgSSBob3BlIHRvIHJlbW92ZSB0aGlzIHNv
b24uIEkgYmVsaWV2ZSB0aGF0IFJlc3VsdFByb2ZpbGUKKyAgICAgICAgaXMgYWxyZWFkeSBzdHJp
Y3RseSBiZXR0ZXIgdGhhbiB3aGF0IHByZWRpY3Rpb24gcHJvcGFnYXRpb24gd2FzIGRvaW5nIGJl
Zm9yZS4KKyAgICAgICAgCisgICAgICAgIFRoaXMgY2FuIGJlIGFuIGVub3Jtb3VzIHdpbi4gVGhp
cyBwYXRjaCBhZGRzIHNvbWUgc2ltcGxlIG1pY3JvYmVuY2htYXJrcyB0aGF0IGRlbW9uc3RyYXRl
IHRoZQorICAgICAgICBwcm9ibGVtIG9mIGFzc3VtaW5nIHRoYXQgYXJpdGhtZXRpYyBvbiBvYmpl
Y3RzIHJldHVybnMgZG91YmxlLiBUaGUgbW9zdCBleHRyZW1lIG9mIHRoZXNlIHNwZWVkcworICAg
ICAgICB1cCA4eCB3aXRoIHRoaXMgY2hhbmdlIChvYmplY3QtaW50LWFkZC1hcnJheSkuCisgICAg
ICAgIAorICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEphdmFTY3JpcHRDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYnl0ZWNvZGUvQ29kZUJsb2Nr
Lmg6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6YWRkRnJlcXVlbnRFeGl0U2l0ZSk6CisgICAg
ICAgIChKU0M6OkNvZGVCbG9jazo6aGFzRXhpdFNpdGUpOgorICAgICAgICAqIGJ5dGVjb2RlL0RG
R0V4aXRQcm9maWxlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpGcmVxdWVudEV4aXRTaXRlOjpk
dW1wKToKKyAgICAgICAgKEpTQzo6REZHOjpFeGl0UHJvZmlsZTo6RXhpdFByb2ZpbGUpOgorICAg
ICAgICAoSlNDOjpERkc6OkV4aXRQcm9maWxlOjp+RXhpdFByb2ZpbGUpOgorICAgICAgICAoSlND
OjpERkc6OkV4aXRQcm9maWxlOjphZGQpOgorICAgICAgICAqIGJ5dGVjb2RlL0RGR0V4aXRQcm9m
aWxlLmg6CisgICAgICAgIChKU0M6OkRGRzo6RnJlcXVlbnRFeGl0U2l0ZTo6aXNIYXNoVGFibGVE
ZWxldGVkVmFsdWUpOgorICAgICAgICAqIGJ5dGVjb2RlL01ldGhvZE9mR2V0dGluZ0FWYWx1ZVBy
b2ZpbGUuY3BwOgorICAgICAgICAoSlNDOjpNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlOjpm
cm9tTGF6eU9wZXJhbmQpOgorICAgICAgICAoSlNDOjpNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9m
aWxlOjplbWl0UmVwb3J0VmFsdWUpOgorICAgICAgICAoSlNDOjpNZXRob2RPZkdldHRpbmdBVmFs
dWVQcm9maWxlOjpnZXRTcGVjRmFpbEJ1Y2tldCk6IERlbGV0ZWQuCisgICAgICAgICogYnl0ZWNv
ZGUvTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZS5oOgorICAgICAgICAoSlNDOjpNZXRob2RP
ZkdldHRpbmdBVmFsdWVQcm9maWxlOjpNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlKToKKyAg
ICAgICAgKEpTQzo6TWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZTo6b3BlcmF0b3IgYm9vbCk6
CisgICAgICAgIChKU0M6Ok1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGU6Om9wZXJhdG9yISk6
IERlbGV0ZWQuCisgICAgICAgICogYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuY3BwOgorICAg
ICAgICAoSlNDOjpBY2Nlc3NDYXNlOjpnZW5lcmF0ZUltcGwpOgorICAgICAgICAqIGJ5dGVjb2Rl
L1ZhbHVlUHJvZmlsZS5jcHA6CisgICAgICAgIChKU0M6OlJlc3VsdFByb2ZpbGU6OmVtaXREZXRl
Y3RCaXRzTGlnaHQpOgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjplbWl0U2V0RG91Ymxl
KToKKyAgICAgICAgKEpTQzo6UmVzdWx0UHJvZmlsZTo6ZW1pdFNldE5vbk51bWJlcik6CisgICAg
ICAgIChXVEY6OnByaW50SW50ZXJuYWwpOgorICAgICAgICAqIGJ5dGVjb2RlL1ZhbHVlUHJvZmls
ZS5oOgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpSZXN1bHRQcm9maWxlKToKKyAgICAg
ICAgKEpTQzo6UmVzdWx0UHJvZmlsZTo6Ynl0ZWNvZGVPZmZzZXQpOgorICAgICAgICAoSlNDOjpS
ZXN1bHRQcm9maWxlOjpzcGVjaWFsRmFzdFBhdGhDb3VudCk6CisgICAgICAgIChKU0M6OlJlc3Vs
dFByb2ZpbGU6OmRpZE9ic2VydmVOb25JbnQzMik6CisgICAgICAgIChKU0M6OlJlc3VsdFByb2Zp
bGU6OmRpZE9ic2VydmVEb3VibGUpOgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpkaWRP
YnNlcnZlTm9uTmVnWmVyb0RvdWJsZSk6CisgICAgICAgIChKU0M6OlJlc3VsdFByb2ZpbGU6OmRp
ZE9ic2VydmVOZWdaZXJvRG91YmxlKToKKyAgICAgICAgKEpTQzo6UmVzdWx0UHJvZmlsZTo6ZGlk
T2JzZXJ2ZU5vbk51bWJlcik6CisgICAgICAgIChKU0M6OlJlc3VsdFByb2ZpbGU6OmRpZE9ic2Vy
dmVJbnQzMk92ZXJmbG93KToKKyAgICAgICAgKEpTQzo6UmVzdWx0UHJvZmlsZTo6ZGlkT2JzZXJ2
ZUludDUyT3ZlcmZsb3cpOgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpzZXRPYnNlcnZl
ZE5vbk5lZ1plcm9Eb3VibGUpOgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpzZXRPYnNl
cnZlZE5lZ1plcm9Eb3VibGUpOgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpzZXRPYnNl
cnZlZE5vbk51bWJlcik6CisgICAgICAgIChKU0M6OlJlc3VsdFByb2ZpbGU6OnNldE9ic2VydmVk
SW50MzJPdmVyZmxvdyk6CisgICAgICAgIChKU0M6OlJlc3VsdFByb2ZpbGU6OmFkZHJlc3NPZkZs
YWdzKToKKyAgICAgICAgKEpTQzo6UmVzdWx0UHJvZmlsZTo6YWRkcmVzc09mU3BlY2lhbEZhc3RQ
YXRoQ291bnQpOgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpkZXRlY3RCaXRzTGlnaHQp
OgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpoYXNCaXRzKToKKyAgICAgICAgKiBkZmcv
REZHQnl0ZUNvZGVQYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2Vy
OjptYWtlU2FmZSk6CisgICAgICAgICogZGZnL0RGR0ZpeHVwUGhhc2UuY3BwOgorICAgICAgICAo
SlNDOjpERkc6OkZpeHVwUGhhc2U6OmZpeHVwTm9kZSk6CisgICAgICAgICogZGZnL0RGR0dyYXBo
LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpHcmFwaDo6ZW5zdXJlTmF0dXJhbExvb3BzKToKKyAg
ICAgICAgKEpTQzo6REZHOjpHcmFwaDo6bWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZUZvcik6
CisgICAgICAgIChKU0M6OkRGRzo6R3JhcGg6OnZhbHVlUHJvZmlsZUZvcik6IERlbGV0ZWQuCisg
ICAgICAgICogZGZnL0RGR0dyYXBoLmg6CisgICAgICAgIChKU0M6OkRGRzo6R3JhcGg6Omhhc0V4
aXRTaXRlKToKKyAgICAgICAgKEpTQzo6REZHOjpHcmFwaDo6bnVtQmxvY2tzKToKKyAgICAgICAg
KiBkZmcvREZHTm9kZS5oOgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6OmFyaXRoTm9kZUZsYWdz
KToKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjptYXlIYXZlTm9uSW50UmVzdWx0KToKKyAgICAg
ICAgKEpTQzo6REZHOjpOb2RlOjptYXlIYXZlRG91YmxlUmVzdWx0KToKKyAgICAgICAgKEpTQzo6
REZHOjpOb2RlOjptYXlIYXZlTm9uTnVtYmVyUmVzdWx0KToKKyAgICAgICAgKEpTQzo6REZHOjpO
b2RlOjpoYXNDb25zdGFudEJ1ZmZlcik6CisgICAgICAgICogZGZnL0RGR05vZGVGbGFncy5jcHA6
CisgICAgICAgIChKU0M6OkRGRzo6ZHVtcE5vZGVGbGFncyk6CisgICAgICAgICogZGZnL0RGR05v
ZGVGbGFncy5oOgorICAgICAgICAqIGRmZy9ERkdPU1JFeGl0Q29tcGlsZXIzMl82NC5jcHA6Cisg
ICAgICAgIChKU0M6OkRGRzo6T1NSRXhpdENvbXBpbGVyOjpjb21waWxlRXhpdCk6CisgICAgICAg
ICogZGZnL0RGR09TUkV4aXRDb21waWxlcjY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpPU1JF
eGl0Q29tcGlsZXI6OmNvbXBpbGVFeGl0KToKKyAgICAgICAgKiBkZmcvREZHT3BlcmF0aW9ucy5j
cHA6CisgICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuaDoKKyAgICAgICAgKiBkZmcvREZHUHJl
ZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2
ZUpJVC5oOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjYWxsT3BlcmF0aW9u
KToKKyAgICAgICAgKiBmdGwvRlRMT1NSRXhpdENvbXBpbGVyLmNwcDoKKyAgICAgICAgKEpTQzo6
RlRMOjpjb21waWxlU3R1Yik6CisgICAgICAgICogaml0L0Fzc2VtYmx5SGVscGVycy5oOgorICAg
ICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmJyYW5jaElmRXF1YWwpOgorICAgICAgICAoSlND
OjpBc3NlbWJseUhlbHBlcnM6OmJyYW5jaElmTm90Q2VsbCk6CisgICAgICAgIChKU0M6OkFzc2Vt
Ymx5SGVscGVyczo6YnJhbmNoSWZOb3ROdW1iZXIpOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhl
bHBlcnM6OmJyYW5jaElmTm90RG91YmxlS25vd25Ob3RJbnQzMik6CisgICAgICAgIChKU0M6OkFz
c2VtYmx5SGVscGVyczo6YnJhbmNoSWZCb29sZWFuKToKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlI
ZWxwZXJzOjpicmFuY2hJZkVtcHR5KToKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjpi
cmFuY2hTdHJ1Y3R1cmUpOgorICAgICAgICAqIGppdC9DQ2FsbEhlbHBlcnMuaDoKKyAgICAgICAg
KEpTQzo6Q0NhbGxIZWxwZXJzOjpDQ2FsbEhlbHBlcnMpOgorICAgICAgICAoSlNDOjpDQ2FsbEhl
bHBlcnM6OnNldHVwQXJndW1lbnRzKToKKyAgICAgICAgKEpTQzo6Q0NhbGxIZWxwZXJzOjpzZXR1
cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUpOgorICAgICAgICAqIGppdC9JbnRyaW5zaWNFbWl0dGVy
LmNwcDoKKyAgICAgICAgKEpTQzo6QWNjZXNzQ2FzZTo6ZW1pdEludHJpbnNpY0dldHRlcik6Cisg
ICAgICAgICogaml0L0pJVC5oOgorICAgICAgICAqIGppdC9KSVRBZGRHZW5lcmF0b3IuY3BwOgor
ICAgICAgICAoSlNDOjpKSVRBZGRHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgpOgorICAgICAg
ICAqIGppdC9KSVRBZGRHZW5lcmF0b3IuaDoKKyAgICAgICAgKEpTQzo6SklUQWRkR2VuZXJhdG9y
OjpKSVRBZGRHZW5lcmF0b3IpOgorICAgICAgICAqIGppdC9KSVRBcml0aG1ldGljLmNwcDoKKyAg
ICAgICAgKEpTQzo6SklUOjplbWl0X29wX2FkZCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNs
b3dfb3BfYWRkKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2Rpdik6CisgICAgICAgIChK
U0M6OkpJVDo6ZW1pdF9vcF9tdWwpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRTbG93X29wX211
bCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9zdWIpOgorICAgICAgICAoSlNDOjpKSVQ6
OmVtaXRTbG93X29wX3N1Yik6CisgICAgICAgICogaml0L0pJVElubGluZXMuaDoKKyAgICAgICAg
KEpTQzo6SklUOjpjYWxsT3BlcmF0aW9uKToKKyAgICAgICAgKEpTQzo6SklUOjpjYWxsT3BlcmF0
aW9uTm9FeGNlcHRpb25DaGVjayk6CisgICAgICAgICogaml0L0pJVE11bEdlbmVyYXRvci5jcHA6
CisgICAgICAgIChKU0M6OkpJVE11bEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aCk6CisgICAg
ICAgICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIGppdC9KSVRPcGVyYXRpb25z
Lmg6CisgICAgICAgICogaml0L0pJVFN1YkdlbmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6OkpJ
VFN1YkdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aCk6CisgICAgICAgICogaml0L0pJVFN1Ykdl
bmVyYXRvci5oOgorICAgICAgICAoSlNDOjpKSVRTdWJHZW5lcmF0b3I6OkpJVFN1YkdlbmVyYXRv
cik6CisgICAgICAgICogaml0L1RhZ1JlZ2lzdGVyc01vZGUuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdURjo6cHJpbnRJbnRlcm5hbCk6CisgICAgICAgICogaml0L1RhZ1JlZ2lzdGVyc01vZGUuaDog
QWRkZWQuCisgICAgICAgICogcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwOgorICAgICAgICAo
SlNDOjp1cGRhdGVSZXN1bHRQcm9maWxlRm9yQmluYXJ5QXJpdGhPcCk6CisKIDIwMTYtMDUtMDgg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBbQ09DT0FdIERpc2Fi
bGUgSEFWRV9EVFJBQ0UgYXQgYnVpbGQgdGltZQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFr
ZUxpc3RzLnR4dAkocmV2aXNpb24gMjAwNTgyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0NN
YWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC01NjMsNiArNTYzLDcgQEAgc2V0KEphdmFT
Y3JpcHRDb3JlX1NPVVJDRVMKICAgICBqaXQvUmVwYXRjaC5jcHAKICAgICBqaXQvU2NyYXRjaFJl
Z2lzdGVyQWxsb2NhdG9yLmNwcAogICAgIGppdC9TZXR1cFZhcmFyZ3NGcmFtZS5jcHAKKyAgICBq
aXQvVGFnUmVnaXN0ZXJzTW9kZS5jcHAKICAgICBqaXQvVGVtcFJlZ2lzdGVyU2V0LmNwcAogICAg
IGppdC9UaHVua0dlbmVyYXRvcnMuY3BwCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCShyZXZpc2lvbiAyMDA1ODIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTk5Miw2
ICsxOTkyLDggQEAKIAkJREMxN0U4MUExQzlDOTFFOTAwOEE2QUIzIC8qIENDYWxsSGVscGVycy5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzE3RTgx
NjFDOUM4MDJCMDA4QTZBQjMgLyogQ0NhbGxIZWxwZXJzLmNwcCAqLzsgfTsKIAkJREMyMTQzMDcx
Q0EzMkU1NTAwMEE4ODY5IC8qIElDU3RhdHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IERDMjE0MzA2MUNBMzJFNTIwMDBBODg2OSAvKiBJQ1N0YXRzLmgg
Ki87IH07CiAJCURDMjE0MzA4MUNBMzJFNTgwMDBBODg2OSAvKiBJQ1N0YXRzLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDMjE0MzA1MUNBMzJFNTIw
MDBBODg2OSAvKiBJQ1N0YXRzLmNwcCAqLzsgfTsKKwkJREM3OTk3ODMxQ0RFOUZBMDAwNEQ0QTA5
IC8qIFRhZ1JlZ2lzdGVyc01vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IERDNzk5NzgyMUNERTlGOUUwMDRENEEwOSAvKiBUYWdSZWdpc3RlcnNNb2Rl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJREM3
OTk3ODQxQ0RFOUZBMjAwNEQ0QTA5IC8qIFRhZ1JlZ2lzdGVyc01vZGUuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREM3OTk3ODExQ0RFOUY5RTAwNEQ0
QTA5IC8qIFRhZ1JlZ2lzdGVyc01vZGUuY3BwICovOyB9OwogCQlEQ0YzRDU2OTFDRDI5NDZEMDAz
RDVDNjUgLyogTGF6eUNsYXNzU3RydWN0dXJlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDRjNENTY0MUNEMjk0NjgwMDNENUM2NSAvKiBMYXp5Q2xh
c3NTdHJ1Y3R1cmUuY3BwICovOyB9OwogCQlEQ0YzRDU2QTFDRDI5NDcwMDAzRDVDNjUgLyogTGF6
eUNsYXNzU3RydWN0dXJlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBEQ0YzRDU2NTFDRDI5NDY4MDAzRDVDNjUgLyogTGF6eUNsYXNzU3RydWN0dXJlLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRENGM0Q1
NkIxQ0QyOTQ3MjAwM0Q1QzY1IC8qIExhenlDbGFzc1N0cnVjdHVyZUlubGluZXMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDRjNENTY2MUNEMjk0Njgw
MDNENUM2NSAvKiBMYXp5Q2xhc3NTdHJ1Y3R1cmVJbmxpbmVzLmggKi87IH07CkBAIC00MjA0LDYg
KzQyMDYsOCBAQAogCQlEQzE3RTgxNjFDOUM4MDJCMDA4QTZBQjMgLyogQ0NhbGxIZWxwZXJzLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENDYWxsSGVscGVycy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURDMjE0MzA1MUNBMzJFNTIwMDBBODg2OSAv
KiBJQ1N0YXRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElDU3Rh
dHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQzIxNDMwNjFDQTMyRTUyMDAw
QTg4NjkgLyogSUNTdGF0cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJQ1N0
YXRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCURDNzk5NzgxMUNERTlGOUUwMDRE
NEEwOSAvKiBUYWdSZWdpc3RlcnNNb2RlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFRhZ1JlZ2lzdGVyc01vZGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlEQzc5OTc4MjFDREU5RjlFMDA0RDRBMDkgLyogVGFnUmVnaXN0ZXJzTW9kZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUYWdSZWdpc3RlcnNNb2RlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCURDRjNENTY0MUNEMjk0NjgwMDNENUM2NSAvKiBMYXp5Q2xh
c3NTdHJ1Y3R1cmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTGF6
eUNsYXNzU3RydWN0dXJlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRENGM0Q1
NjUxQ0QyOTQ2ODAwM0Q1QzY1IC8qIExhenlDbGFzc1N0cnVjdHVyZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBMYXp5Q2xhc3NTdHJ1Y3R1cmUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRENGM0Q1NjYxQ0QyOTQ2ODAwM0Q1QzY1IC8qIExhenlDbGFzc1N0cnVj
dHVyZUlubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGF6eUNsYXNz
U3RydWN0dXJlSW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTA4NCw2
ICs1MDg4LDggQEAKIAkJCQlGRTE4N0EwQzFDMDJFQkE3MDAzOEJCQ0EgLyogU25pcHBldE9wZXJh
bmQuaCAqLywKIAkJCQlBNzM4NjU1MTExODY5N0I0MDA1NDAyNzkgLyogU3BlY2lhbGl6ZWRUaHVu
a0pJVC5oICovLAogCQkJCUE3RkY2NDdBMThDNTJFODUwMEI1NTMwNyAvKiBTcGlsbFJlZ2lzdGVy
c01vZGUuaCAqLywKKwkJCQlEQzc5OTc4MTFDREU5RjlFMDA0RDRBMDkgLyogVGFnUmVnaXN0ZXJz
TW9kZS5jcHAgKi8sCisJCQkJREM3OTk3ODIxQ0RFOUY5RTAwNEQ0QTA5IC8qIFRhZ1JlZ2lzdGVy
c01vZGUuaCAqLywKIAkJCQkwRkMzMTQxMTE4MTQ1NTkxMDAwMzMyMzIgLyogVGVtcFJlZ2lzdGVy
U2V0LmNwcCAqLywKIAkJCQkwRjI0RTU0ODE3RUUyNzQ5MDBBQkIyMTcgLyogVGVtcFJlZ2lzdGVy
U2V0LmggKi8sCiAJCQkJMEY1NzJENEQxNjg3OUZEQjAwRTU3RkJEIC8qIFRodW5rR2VuZXJhdG9y
LmggKi8sCkBAIC03ODYxLDYgKzc4NjcsNyBAQAogCQkJCTg2RjNFRUJGMTY4Q0RFOTMwMDc3Qjky
QSAvKiBPYmpjUnVudGltZUV4dHJhcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTRDQTk1OEQxNkFC
NTBGQTAwOTM4QTA2IC8qIE9iamVjdEFsbG9jYXRpb25Qcm9maWxlLmggaW4gSGVhZGVycyAqLywK
IAkJCQlEQ0YzRDU2QzFDRDI5NDc1MDAzRDVDNjUgLyogTGF6eVByb3BlcnR5LmggaW4gSGVhZGVy
cyAqLywKKwkJCQlEQzc5OTc4MzFDREU5RkEwMDA0RDRBMDkgLyogVGFnUmVnaXN0ZXJzTW9kZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0NDUwRTE2RjVDRDAwQjM0NDYwIC8qIE9iamVjdENv
bnN0cnVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk5OTZCNzMyMjFCREEwOEVGMDAzMzFCODQg
LyogT2JqZWN0Q29uc3RydWN0b3IubHV0LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkQzRTQwQTFC
NjE4QjY2MDBDODBFMUUgLyogT2JqZWN0UHJvcGVydHlDb25kaXRpb24uaCBpbiBIZWFkZXJzICov
LApAQCAtOTAxNiw2ICs5MDIzLDcgQEAKIAkJCQlGRTNBMDZCMzFDMTBDQjhFMDAzOTBGREQgLyog
SklUQml0WG9yR2VuZXJhdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1N0QyM0U1MTg5MENF
QkYwMDMxQzdGQSAvKiBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUE1MzI0Mzg5MTg1NjgzMzUwMDJFRDY5MiAvKiBJbnNwZWN0b3JGcm9udGVuZERpc3BhdGNo
ZXJzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCURDNzk5Nzg0MUNERTlGQTIwMDRENEEwOSAvKiBU
YWdSZWdpc3RlcnNNb2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk5RjFBNkZFMUI4RTZEOTQw
MDQ2M0IyNiAvKiBJbnNwZWN0b3JGcm9udGVuZFJvdXRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlBNTMzOUVDNzFCQjM5OUE5MDA1NEYwMDUgLyogSW5zcGVjdG9ySGVhcEFnZW50LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUUzNUUwMzVGMUI3QUI0M0UwMDczQUQyQSAvKiBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb25PYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCShyZXZpc2lvbiAyMDA1ODIpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgJKHdvcmtpbmcgY29weSkKQEAg
LTUwMCw3ICs1MDAsNyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBBU1NFUlQoSklUQ29kZTo6
aXNCYXNlbGluZUNvZGUoaml0VHlwZSgpKSk7CiAgICAgICAgIENvbmN1cnJlbnRKSVRMb2NrZXIg
bG9ja2VyKG1fbG9jayk7Ci0gICAgICAgIHJldHVybiBtX2V4aXRQcm9maWxlLmFkZChsb2NrZXIs
IHNpdGUpOworICAgICAgICByZXR1cm4gbV9leGl0UHJvZmlsZS5hZGQobG9ja2VyLCB0aGlzLCBz
aXRlKTsKICAgICB9CiAKICAgICBib29sIGhhc0V4aXRTaXRlKGNvbnN0IENvbmN1cnJlbnRKSVRM
b2NrZXImIGxvY2tlciwgY29uc3QgREZHOjpGcmVxdWVudEV4aXRTaXRlJiBzaXRlKSBjb25zdApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0RGR0V4aXRQcm9maWxlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvREZHRXhpdFByb2Zp
bGUuY3BwCShyZXZpc2lvbiAyMDA1ODIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvREZHRXhpdFByb2ZpbGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOCwxNCArMjgsMjQgQEAKIAog
I2lmIEVOQUJMRShERkdfSklUKQogCisjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCisKIG5hbWVzcGFj
ZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIAordm9pZCBGcmVxdWVudEV4aXRTaXRlOjpkdW1wKFBy
aW50U3RyZWFtJiBvdXQpIGNvbnN0Cit7CisgICAgb3V0LnByaW50KCJiYyMiLCBtX2J5dGVjb2Rl
T2Zmc2V0LCAiOiAiLCBtX2tpbmQsICIvIiwgbV9qaXRUeXBlKTsKK30KKwogRXhpdFByb2ZpbGU6
OkV4aXRQcm9maWxlKCkgeyB9CiBFeGl0UHJvZmlsZTo6fkV4aXRQcm9maWxlKCkgeyB9CiAKLWJv
b2wgRXhpdFByb2ZpbGU6OmFkZChjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiwgY29uc3QgRnJl
cXVlbnRFeGl0U2l0ZSYgc2l0ZSkKK2Jvb2wgRXhpdFByb2ZpbGU6OmFkZChjb25zdCBDb25jdXJy
ZW50SklUTG9ja2VyJiwgQ29kZUJsb2NrKiBvd25lciwgY29uc3QgRnJlcXVlbnRFeGl0U2l0ZSYg
c2l0ZSkKIHsKICAgICBBU1NFUlQoc2l0ZS5qaXRUeXBlKCkgIT0gRXhpdEZyb21Bbnl0aGluZyk7
CisKKyAgICBpZiAoT3B0aW9uczo6dmVyYm9zZUV4aXRQcm9maWxlKCkpCisgICAgICAgIGRhdGFM
b2cocG9pbnRlckR1bXAob3duZXIpLCAiOiBBZGRpbmcgZXhpdCBzaXRlOiAiLCBzaXRlLCAiXG4i
KTsKICAgICAKICAgICAvLyBJZiB3ZSd2ZSBuZXZlciBzZWVuIGFueSBmcmVxdWVudCBleGl0cyB0
aGVuIGNyZWF0ZSB0aGUgbGlzdCBhbmQgcHV0IHRoaXMgc2l0ZQogICAgIC8vIGludG8gaXQuCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvREZHRXhpdFByb2ZpbGUuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvREZHRXhpdFByb2ZpbGUu
aAkocmV2aXNpb24gMjAwNTgyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0RG
R0V4aXRQcm9maWxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDExLCAyMDEyLCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMS0yMDE0LCAyMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTE2
LDYgKzExNiw4IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHJldHVybiBtX2tpbmQgPT0gRXhp
dEtpbmRVbnNldCAmJiBtX2J5dGVjb2RlT2Zmc2V0OwogICAgIH0KKyAgICAKKyAgICB2b2lkIGR1
bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3Q7CiAKIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9i
eXRlY29kZU9mZnNldDsKQEAgLTE1OSw3ICsxNjEsNyBAQCBwdWJsaWM6CiAgICAgLy8gYmUgY2Fs
bGVkIGEgZml4ZWQgbnVtYmVyIG9mIHRpbWVzIHBlciByZWNvbXBpbGF0aW9uLiBSZWNvbXBpbGF0
aW9uIGlzCiAgICAgLy8gcmFyZSB0byBiZWdpbiB3aXRoLCBhbmQgaW1wbGllcyBkb2luZyBPKG4p
IG9wZXJhdGlvbnMgb24gdGhlIENvZGVCbG9jawogICAgIC8vIGFueXdheS4KLSAgICBib29sIGFk
ZChjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiwgY29uc3QgRnJlcXVlbnRFeGl0U2l0ZSYpOwor
ICAgIGJvb2wgYWRkKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBDb2RlQmxvY2sqIG93bmVy
LCBjb25zdCBGcmVxdWVudEV4aXRTaXRlJik7CiAgICAgCiAgICAgLy8gR2V0IHRoZSBmcmVxdWVu
dCBleGl0IHNpdGVzIGZvciBhIGJ5dGVjb2RlIGluZGV4LiBUaGlzIGlzIE8obiksIGFuZCBpcwog
ICAgIC8vIG1lYW50IHRvIG9ubHkgYmUgdXNlZCBmcm9tIGRlYnVnZ2luZy9wcm9maWxpbmcgY29k
ZS4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9NZXRob2RPZkdldHRpbmdB
VmFsdWVQcm9maWxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZS5jcHAJKHJldmlzaW9uIDIwMDU4MikK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9NZXRob2RPZkdldHRpbmdBVmFsdWVQ
cm9maWxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDEyLCAyMDEzLCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgsNiArMjgsNyBAQAogCiAj
aWYgRU5BQkxFKERGR19KSVQpCiAKKyNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKICNpbmNsdWRl
ICJDb2RlQmxvY2suaCIKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCiAKQEAgLTQ0LDE0ICs0NSwx
NSBAQCBNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlIE1ldGhvZE9mR2V0CiAgICAgcmV0dXJu
IHJlc3VsdDsKIH0KIAotRW5jb2RlZEpTVmFsdWUqIE1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2Zp
bGU6OmdldFNwZWNGYWlsQnVja2V0KHVuc2lnbmVkIGluZGV4KSBjb25zdAordm9pZCBNZXRob2RP
ZkdldHRpbmdBVmFsdWVQcm9maWxlOjplbWl0UmVwb3J0VmFsdWUoQ0NhbGxIZWxwZXJzJiBqaXQs
IEpTVmFsdWVSZWdzIHJlZ3MpIGNvbnN0CiB7CiAgICAgc3dpdGNoIChtX2tpbmQpIHsKICAgICBj
YXNlIE5vbmU6Ci0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm47CiAgICAgICAgIAog
ICAgIGNhc2UgUmVhZHk6Ci0gICAgICAgIHJldHVybiB1LnByb2ZpbGUtPnNwZWNGYWlsQnVja2V0
KGluZGV4KTsKKyAgICAgICAgaml0LnN0b3JlVmFsdWUocmVncywgdS5wcm9maWxlLT5zcGVjRmFp
bEJ1Y2tldCgwKSk7CisgICAgICAgIHJldHVybjsKICAgICAgICAgCiAgICAgY2FzZSBMYXp5T3Bl
cmFuZDogewogICAgICAgICBMYXp5T3BlcmFuZFZhbHVlUHJvZmlsZUtleSBrZXkodS5sYXp5T3Bl
cmFuZC5ieXRlY29kZU9mZnNldCwgVmlydHVhbFJlZ2lzdGVyKHUubGF6eU9wZXJhbmQub3BlcmFu
ZCkpOwpAQCAtNTksMTMgKzYxLDE2IEBAIEVuY29kZWRKU1ZhbHVlKiBNZXRob2RPZkdldHRpbmdB
VmFsdWVQcm8KICAgICAgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIodS5sYXp5T3BlcmFu
ZC5jb2RlQmxvY2stPm1fbG9jayk7CiAgICAgICAgIExhenlPcGVyYW5kVmFsdWVQcm9maWxlKiBw
cm9maWxlID0KICAgICAgICAgICAgIHUubGF6eU9wZXJhbmQuY29kZUJsb2NrLT5sYXp5T3BlcmFu
ZFZhbHVlUHJvZmlsZXMoKS5hZGQobG9ja2VyLCBrZXkpOwotICAgICAgICByZXR1cm4gcHJvZmls
ZS0+c3BlY0ZhaWxCdWNrZXQoaW5kZXgpOworICAgICAgICBqaXQuc3RvcmVWYWx1ZShyZWdzLCBw
cm9maWxlLT5zcGVjRmFpbEJ1Y2tldCgwKSk7CisgICAgICAgIHJldHVybjsKICAgICB9CiAgICAg
ICAgIAotICAgIGRlZmF1bHQ6Ci0gICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7
Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KKyAgICBjYXNlIFJlc3VsdFByb2ZpbGVSZWFkeTog
eworICAgICAgICB1LnJlc3VsdFByb2ZpbGUtPmVtaXREZXRlY3RCaXRzTGlnaHQoaml0LCByZWdz
LCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpOworICAgICAgICByZXR1cm47CisgICAgfSB9CisgICAg
CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAogfSAvLyBuYW1lc3BhY2Ug
SlNDCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTWV0aG9kT2ZHZXR0aW5n
QVZhbHVlUHJvZmlsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9NZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlLmgJKHJldmlzaW9uIDIwMDU4MikKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9NZXRob2RPZkdldHRpbmdBVmFsdWVQcm9m
aWxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMiwgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTMyLDEyICszMiwxNSBAQAogLy8gdGhlc2UgI2lmJ3Mgd2ls
bCBkaXNhcHBlYXIuLi4KICNpZiBFTkFCTEUoREZHX0pJVCkKIAorI2luY2x1ZGUgIkdQUkluZm8u
aCIKICNpbmNsdWRlICJKU0NKU1ZhbHVlLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCitjbGFzcyBD
Q2FsbEhlbHBlcnM7CiBjbGFzcyBDb2RlQmxvY2s7CiBjbGFzcyBMYXp5T3BlcmFuZFZhbHVlUHJv
ZmlsZUtleTsKK3N0cnVjdCBSZXN1bHRQcm9maWxlOwogc3RydWN0IFZhbHVlUHJvZmlsZTsKIAog
Y2xhc3MgTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZSB7CkBAIC00Nyw3ICs1MCw3IEBAIHB1
YmxpYzoKICAgICB7CiAgICAgfQogICAgIAotICAgIGV4cGxpY2l0IE1ldGhvZE9mR2V0dGluZ0FW
YWx1ZVByb2ZpbGUoVmFsdWVQcm9maWxlKiBwcm9maWxlKQorICAgIE1ldGhvZE9mR2V0dGluZ0FW
YWx1ZVByb2ZpbGUoVmFsdWVQcm9maWxlKiBwcm9maWxlKQogICAgIHsKICAgICAgICAgaWYgKHBy
b2ZpbGUpIHsKICAgICAgICAgICAgIG1fa2luZCA9IFJlYWR5OwpAQCAtNTYsMzEgKzU5LDM0IEBA
IHB1YmxpYzoKICAgICAgICAgICAgIG1fa2luZCA9IE5vbmU7CiAgICAgfQogICAgIAorICAgIE1l
dGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUoUmVzdWx0UHJvZmlsZSogcHJvZmlsZSkKKyAgICB7
CisgICAgICAgIGlmIChwcm9maWxlKSB7CisgICAgICAgICAgICBtX2tpbmQgPSBSZXN1bHRQcm9m
aWxlUmVhZHk7CisgICAgICAgICAgICB1LnJlc3VsdFByb2ZpbGUgPSBwcm9maWxlOworICAgICAg
ICB9IGVsc2UKKyAgICAgICAgICAgIG1fa2luZCA9IE5vbmU7CisgICAgfQorICAgIAogICAgIHN0
YXRpYyBNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlIGZyb21MYXp5T3BlcmFuZCgKICAgICAg
ICAgQ29kZUJsb2NrKiwgY29uc3QgTGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGVLZXkmKTsKICAgICAK
LSAgICBib29sIG9wZXJhdG9yISgpIGNvbnN0IHsgcmV0dXJuIG1fa2luZCA9PSBOb25lOyB9Ci0g
ICAgCi0gICAgLy8gVGhpcyBsb2dpY2FsbHkgaGFzIGEgcG9pbnRlciB0byBhICJUaGVyZSBleGlz
dHMgWCBzdWNoIHRoYXQKLSAgICAvLyBWYWx1ZVByb2ZpbGVCYXNlPFg+Ii4gQnV0IHNpbmNlIEMr
KyBkb2VzIG5vdCBoYXZlIGV4aXN0ZW50aWFsCi0gICAgLy8gdGVtcGxhdGVzLCBJIGNhbm5vdCBy
ZXR1cm4gaXQuIFNvIGluc3RlYWQsIGZvciBhbnkgbWV0aG9kcyB0aGF0Ci0gICAgLy8gdXNlcnMg
b2YgdGhpcyBjbGFzcyB3b3VsZCBsaWtlIHRvIGNhbGwsIHdlJ2xsIGp1c3QgaGF2ZSB0byBwcm92
aWRlCi0gICAgLy8gYSBtZXRob2QgaGVyZSB0aGF0IGRvZXMgaXQgdGhyb3VnaCBhbiBpbmRpcmVj
dGlvbi4gT3Igd2UgY291bGQKLSAgICAvLyBwb3NzaWJseSBqdXN0IG1ha2UgVmFsdWVQcm9maWxl
IGxlc3MgdGVtcGxhdGUtYmFzZWQuIEJ1dCBsYXN0IEkKLSAgICAvLyB0cmllZCB0aGF0LCBpdCBm
ZWx0IG1vcmUgeXVja3kgdGhhbiB0aGlzIGNsYXNzLgorICAgIGV4cGxpY2l0IG9wZXJhdG9yIGJv
b2woKSBjb25zdCB7IHJldHVybiBtX2tpbmQgIT0gTm9uZTsgfQogICAgIAotICAgIEVuY29kZWRK
U1ZhbHVlKiBnZXRTcGVjRmFpbEJ1Y2tldCh1bnNpZ25lZCBpbmRleCkgY29uc3Q7CisgICAgdm9p
ZCBlbWl0UmVwb3J0VmFsdWUoQ0NhbGxIZWxwZXJzJiwgSlNWYWx1ZVJlZ3MpIGNvbnN0OwogICAg
IAogcHJpdmF0ZToKICAgICBlbnVtIEtpbmQgewogICAgICAgICBOb25lLAogICAgICAgICBSZWFk
eSwKKyAgICAgICAgUmVzdWx0UHJvZmlsZVJlYWR5LAogICAgICAgICBMYXp5T3BlcmFuZAogICAg
IH07CiAgICAgCiAgICAgS2luZCBtX2tpbmQ7CiAgICAgdW5pb24gewogICAgICAgICBWYWx1ZVBy
b2ZpbGUqIHByb2ZpbGU7CisgICAgICAgIFJlc3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGU7CiAg
ICAgICAgIHN0cnVjdCB7CiAgICAgICAgICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jazsKICAgICAg
ICAgICAgIHVuc2lnbmVkIGJ5dGVjb2RlT2Zmc2V0OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuY3BwCShyZXZpc2lvbiAy
MDA1ODIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nl
c3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTQ2LDggKzExNDYsNyBAQCB2b2lkIEFjY2Vzc0Nh
c2U6OmdlbmVyYXRlSW1wbChBY2Nlc3NHZW5lCiAgICAgICAgICAgICBpZiAodmVyYm9zZSkKICAg
ICAgICAgICAgICAgICBkYXRhTG9nKCJIYXZlIHR5cGU6ICIsIHR5cGUtPmRlc2NyaXB0b3IoKSwg
IlxuIik7CiAgICAgICAgICAgICBzdGF0ZS5mYWlsQW5kUmVwYXRjaC5hcHBlbmQoCi0gICAgICAg
ICAgICAgICAgaml0LmJyYW5jaElmTm90VHlwZSgKLSAgICAgICAgICAgICAgICAgICAgdmFsdWVS
ZWdzLCBzY3JhdGNoR1BSLCB0eXBlLT5kZXNjcmlwdG9yKCksIENDYWxsSGVscGVyczo6SGF2ZVRh
Z1JlZ2lzdGVycykpOworICAgICAgICAgICAgICAgIGppdC5icmFuY2hJZk5vdFR5cGUodmFsdWVS
ZWdzLCBzY3JhdGNoR1BSLCB0eXBlLT5kZXNjcmlwdG9yKCkpKTsKICAgICAgICAgfSBlbHNlIGlm
ICh2ZXJib3NlKQogICAgICAgICAgICAgZGF0YUxvZygiRG9uJ3QgaGF2ZSB0eXBlLlxuIik7CiAg
ICAgICAgIApAQCAtMTE3Nyw4ICsxMTc2LDcgQEAgdm9pZCBBY2Nlc3NDYXNlOjpnZW5lcmF0ZUlt
cGwoQWNjZXNzR2VuZQogICAgICAgICAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgICAgICAgICAg
ZGF0YUxvZygiSGF2ZSB0eXBlOiAiLCB0eXBlLT5kZXNjcmlwdG9yKCksICJcbiIpOwogICAgICAg
ICAgICAgc3RhdGUuZmFpbEFuZFJlcGF0Y2guYXBwZW5kKAotICAgICAgICAgICAgICAgIGppdC5i
cmFuY2hJZk5vdFR5cGUoCi0gICAgICAgICAgICAgICAgICAgIHZhbHVlUmVncywgc2NyYXRjaEdQ
UiwgdHlwZS0+ZGVzY3JpcHRvcigpLCBDQ2FsbEhlbHBlcnM6OkhhdmVUYWdSZWdpc3RlcnMpKTsK
KyAgICAgICAgICAgICAgICBqaXQuYnJhbmNoSWZOb3RUeXBlKHZhbHVlUmVncywgc2NyYXRjaEdQ
UiwgdHlwZS0+ZGVzY3JpcHRvcigpKSk7CiAgICAgICAgIH0gZWxzZSBpZiAodmVyYm9zZSkKICAg
ICAgICAgICAgIGRhdGFMb2coIkRvbid0IGhhdmUgdHlwZS5cbiIpOwogICAgICAgICAKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WYWx1ZVByb2ZpbGUuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WYWx1ZVByb2ZpbGUuY3BwCShy
ZXZpc2lvbiAyMDA1ODIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmFsdWVQ
cm9maWxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiw2ICsyNiwzNiBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIlZhbHVlUHJvZmlsZS5oIgogCisjaW5jbHVkZSAiQ0NhbGxIZWxwZXJz
LmgiCisjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgorCituYW1lc3BhY2UgSlNDIHsKKwordm9pZCBS
ZXN1bHRQcm9maWxlOjplbWl0RGV0ZWN0Qml0c0xpZ2h0KENDYWxsSGVscGVycyYgaml0LCBKU1Zh
bHVlUmVncyByZWdzLCBUYWdSZWdpc3RlcnNNb2RlIG1vZGUpCit7CisgICAgQ0NhbGxIZWxwZXJz
OjpKdW1wIGlzSW50MzIgPSBqaXQuYnJhbmNoSWZJbnQzMihyZWdzLCBtb2RlKTsKKyAgICBDQ2Fs
bEhlbHBlcnM6Okp1bXAgbm90RG91YmxlID0gaml0LmJyYW5jaElmTm90RG91YmxlS25vd25Ob3RJ
bnQzMihyZWdzLCBtb2RlKTsKKyAgICAvLyBGSVhNRTogV2UgY291bGQgYmUgbW9yZSBwcmVjaXNl
IGhlcmUuCisgICAgZW1pdFNldERvdWJsZShqaXQpOworICAgIENDYWxsSGVscGVyczo6SnVtcCBk
b25lID0gaml0Lmp1bXAoKTsKKyAgICBub3REb3VibGUubGluaygmaml0KTsKKyAgICBlbWl0U2V0
Tm9uTnVtYmVyKGppdCk7CisgICAgZG9uZS5saW5rKCZqaXQpOworICAgIGlzSW50MzIubGluaygm
aml0KTsKK30KKwordm9pZCBSZXN1bHRQcm9maWxlOjplbWl0U2V0RG91YmxlKENDYWxsSGVscGVy
cyYgaml0KQoreworICAgIGppdC5vcjMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKFJlc3Vs
dFByb2ZpbGU6OkludDMyT3ZlcmZsb3cgfCBSZXN1bHRQcm9maWxlOjpJbnQ1Mk92ZXJmbG93IHwg
UmVzdWx0UHJvZmlsZTo6TmVnWmVyb0RvdWJsZSB8IFJlc3VsdFByb2ZpbGU6Ok5vbk5lZ1plcm9E
b3VibGUpLCBDQ2FsbEhlbHBlcnM6OkFic29sdXRlQWRkcmVzcyhhZGRyZXNzT2ZGbGFncygpKSk7
Cit9CisKK3ZvaWQgUmVzdWx0UHJvZmlsZTo6ZW1pdFNldE5vbk51bWJlcihDQ2FsbEhlbHBlcnMm
IGppdCkKK3sKKyAgICBqaXQub3IzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihSZXN1bHRQ
cm9maWxlOjpOb25OdW1iZXIpLCBDQ2FsbEhlbHBlcnM6OkFic29sdXRlQWRkcmVzcyhhZGRyZXNz
T2ZGbGFncygpKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIEpTQworCiBuYW1lc3BhY2UgV1RGIHsK
ICAgICAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CkBAIC0zNCwyMyArNjQsMzEgQEAgdm9pZCBwcmlu
dEludGVybmFsKFByaW50U3RyZWFtJiBvdXQsIGNvbgogewogICAgIGNvbnN0IGNoYXIqIHNlcGFy
YXRvciA9ICIiOwogCi0gICAgaWYgKHByb2ZpbGUuZGlkT2JzZXJ2ZU5lZ1plcm9Eb3VibGUoKSkg
ewotICAgICAgICBvdXQucHJpbnQoc2VwYXJhdG9yLCAiTmVnWmVyb0RvdWJsZSIpOworICAgIGlm
ICghcHJvZmlsZS5kaWRPYnNlcnZlTm9uSW50MzIoKSkgeworICAgICAgICBvdXQucHJpbnQoIklu
dDMyIik7CiAgICAgICAgIHNlcGFyYXRvciA9ICJ8IjsKKyAgICB9IGVsc2UgeworICAgICAgICBp
ZiAocHJvZmlsZS5kaWRPYnNlcnZlTmVnWmVyb0RvdWJsZSgpKSB7CisgICAgICAgICAgICBvdXQu
cHJpbnQoc2VwYXJhdG9yLCAiTmVnWmVyb0RvdWJsZSIpOworICAgICAgICAgICAgc2VwYXJhdG9y
ID0gInwiOworICAgICAgICB9CisgICAgICAgIGlmIChwcm9maWxlLmRpZE9ic2VydmVOb25OZWda
ZXJvRG91YmxlKCkpIHsKKyAgICAgICAgICAgIG91dC5wcmludCgiTm9uTmVnWmVyb0RvdWJsZSIp
OworICAgICAgICAgICAgc2VwYXJhdG9yID0gInwiOworICAgICAgICB9CisgICAgICAgIGlmIChw
cm9maWxlLmRpZE9ic2VydmVOb25OdW1iZXIoKSkgeworICAgICAgICAgICAgb3V0LnByaW50KCJO
b25OdW1iZXIiKTsKKyAgICAgICAgICAgIHNlcGFyYXRvciA9ICJ8IjsKKyAgICAgICAgfQorICAg
ICAgICBpZiAocHJvZmlsZS5kaWRPYnNlcnZlSW50MzJPdmVyZmxvdygpKSB7CisgICAgICAgICAg
ICBvdXQucHJpbnQoIkludDMyT3ZlcmZsb3ciKTsKKyAgICAgICAgICAgIHNlcGFyYXRvciA9ICJ8
IjsKKyAgICAgICAgfQorICAgICAgICBpZiAocHJvZmlsZS5kaWRPYnNlcnZlSW50NTJPdmVyZmxv
dygpKSB7CisgICAgICAgICAgICBvdXQucHJpbnQoIkludDUyT3ZlcmZsb3ciKTsKKyAgICAgICAg
ICAgIHNlcGFyYXRvciA9ICJ8IjsKKyAgICAgICAgfQogICAgIH0KLSAgICBpZiAocHJvZmlsZS5k
aWRPYnNlcnZlTm9uTnVtYmVyKCkpIHsKLSAgICAgICAgb3V0LnByaW50KCJOb25OdW1iZXIiKTsK
LSAgICAgICAgc2VwYXJhdG9yID0gInwiOwotICAgIH0KLSAgICBpZiAocHJvZmlsZS5kaWRPYnNl
cnZlSW50MzJPdmVyZmxvdygpKSB7Ci0gICAgICAgIG91dC5wcmludCgiSW50MzJPdmVyZmxvdyIp
OwotICAgICAgICBzZXBhcmF0b3IgPSAifCI7Ci0gICAgfQotICAgIGlmIChwcm9maWxlLmRpZE9i
c2VydmVJbnQ1Mk92ZXJmbG93KCkpIHsKLSAgICAgICAgb3V0LnByaW50KCJJbnQ1Mk92ZXJmbG93
Iik7Ci0gICAgICAgIHNlcGFyYXRvciA9ICJ8IjsKLSAgICB9Ci0KICAgICBpZiAocHJvZmlsZS5z
cGVjaWFsRmFzdFBhdGhDb3VudCgpKSB7CiAgICAgICAgIG91dC5wcmludCgiIHNwZWNpYWwgZmFz
dCBwYXRoOiAiKTsKICAgICAgICAgb3V0LnByaW50KHByb2ZpbGUuc3BlY2lhbEZhc3RQYXRoQ291
bnQoKSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmFsdWVQcm9maWxl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZhbHVlUHJv
ZmlsZS5oCShyZXZpc2lvbiAyMDA1ODIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvVmFsdWVQcm9maWxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDExLCAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMS0yMDEzLCAyMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzQsMTIg
KzM0LDE1IEBACiAjaW5jbHVkZSAiSlNBcnJheS5oIgogI2luY2x1ZGUgIlNwZWN1bGF0ZWRUeXBl
LmgiCiAjaW5jbHVkZSAiU3RydWN0dXJlLmgiCisjaW5jbHVkZSAiVGFnUmVnaXN0ZXJzTW9kZS5o
IgogI2luY2x1ZGUgIldyaXRlQmFycmllci5oIgogI2luY2x1ZGUgPHd0Zi9QcmludFN0cmVhbS5o
PgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVhbS5oPgogCiBuYW1lc3BhY2UgSlNDIHsK
IAorY2xhc3MgQ0NhbGxIZWxwZXJzOworCiB0ZW1wbGF0ZTx1bnNpZ25lZCBudW1iZXJPZkJ1Y2tl
dHNBcmd1bWVudD4KIHN0cnVjdCBWYWx1ZVByb2ZpbGVCYXNlIHsKICAgICBzdGF0aWMgY29uc3Qg
dW5zaWduZWQgbnVtYmVyT2ZCdWNrZXRzID0gbnVtYmVyT2ZCdWNrZXRzQXJndW1lbnQ7CkBAIC0y
MTgsMjAgKzIyMSwyNSBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgZW51bSBPYnNlcnZlZFJlc3Vs
dHMgewotICAgICAgICBOZWdaZXJvRG91YmxlICAgID0gMSA8PCAwLAotICAgICAgICBOb25OdW1i
ZXIgICAgICAgID0gMSA8PCAxLAotICAgICAgICBJbnQzMk92ZXJmbG93ICAgID0gMSA8PCAyLAot
ICAgICAgICBJbnQ1Mk92ZXJmbG93ICAgID0gMSA8PCAzLAorICAgICAgICBOb25OZWdaZXJvRG91
YmxlID0gMSA8PCAwLAorICAgICAgICBOZWdaZXJvRG91YmxlICAgID0gMSA8PCAxLAorICAgICAg
ICBOb25OdW1iZXIgICAgICAgID0gMSA8PCAyLAorICAgICAgICBJbnQzMk92ZXJmbG93ICAgID0g
MSA8PCAzLAorICAgICAgICBJbnQ1Mk92ZXJmbG93ICAgID0gMSA8PCA0LAogICAgIH07CiAKICAg
ICBpbnQgYnl0ZWNvZGVPZmZzZXQoKSBjb25zdCB7IHJldHVybiBtX2J5dGVjb2RlT2Zmc2V0QW5k
RmxhZ3MgPj4gbnVtYmVyT2ZGbGFnQml0czsgfQogICAgIHVuc2lnbmVkIHNwZWNpYWxGYXN0UGF0
aENvdW50KCkgY29uc3QgeyByZXR1cm4gbV9zcGVjaWFsRmFzdFBhdGhDb3VudDsgfQogCisgICAg
Ym9vbCBkaWRPYnNlcnZlTm9uSW50MzIoKSBjb25zdCB7IHJldHVybiBoYXNCaXRzKE5vbk5lZ1pl
cm9Eb3VibGUgfCBOZWdaZXJvRG91YmxlIHwgTm9uTnVtYmVyKTsgfQorICAgIGJvb2wgZGlkT2Jz
ZXJ2ZURvdWJsZSgpIGNvbnN0IHsgcmV0dXJuIGhhc0JpdHMoTm9uTmVnWmVyb0RvdWJsZSB8IE5l
Z1plcm9Eb3VibGUpOyB9CisgICAgYm9vbCBkaWRPYnNlcnZlTm9uTmVnWmVyb0RvdWJsZSgpIGNv
bnN0IHsgcmV0dXJuIGhhc0JpdHMoTm9uTmVnWmVyb0RvdWJsZSk7IH0KICAgICBib29sIGRpZE9i
c2VydmVOZWdaZXJvRG91YmxlKCkgY29uc3QgeyByZXR1cm4gaGFzQml0cyhOZWdaZXJvRG91Ymxl
KTsgfQogICAgIGJvb2wgZGlkT2JzZXJ2ZU5vbk51bWJlcigpIGNvbnN0IHsgcmV0dXJuIGhhc0Jp
dHMoTm9uTnVtYmVyKTsgfQogICAgIGJvb2wgZGlkT2JzZXJ2ZUludDMyT3ZlcmZsb3coKSBjb25z
dCB7IHJldHVybiBoYXNCaXRzKEludDMyT3ZlcmZsb3cpOyB9CiAgICAgYm9vbCBkaWRPYnNlcnZl
SW50NTJPdmVyZmxvdygpIGNvbnN0IHsgcmV0dXJuIGhhc0JpdHMoSW50NTJPdmVyZmxvdyk7IH0K
IAorICAgIHZvaWQgc2V0T2JzZXJ2ZWROb25OZWdaZXJvRG91YmxlKCkgeyBzZXRCaXQoTm9uTmVn
WmVyb0RvdWJsZSk7IH0KICAgICB2b2lkIHNldE9ic2VydmVkTmVnWmVyb0RvdWJsZSgpIHsgc2V0
Qml0KE5lZ1plcm9Eb3VibGUpOyB9CiAgICAgdm9pZCBzZXRPYnNlcnZlZE5vbk51bWJlcigpIHsg
c2V0Qml0KE5vbk51bWJlcik7IH0KICAgICB2b2lkIHNldE9ic2VydmVkSW50MzJPdmVyZmxvdygp
IHsgc2V0Qml0KEludDMyT3ZlcmZsb3cpOyB9CkBAIC0yMzksNiArMjQ3LDI3IEBAIHB1YmxpYzoK
IAogICAgIHZvaWQqIGFkZHJlc3NPZkZsYWdzKCkgeyByZXR1cm4gJm1fYnl0ZWNvZGVPZmZzZXRB
bmRGbGFnczsgfQogICAgIHZvaWQqIGFkZHJlc3NPZlNwZWNpYWxGYXN0UGF0aENvdW50KCkgeyBy
ZXR1cm4gJm1fc3BlY2lhbEZhc3RQYXRoQ291bnQ7IH0KKyAgICAKKyAgICAvLyBTZXRzIChJbnQz
Mk92ZXJmbG93IHwgSW50NTJPdmVyZmxvdyB8IE5vbk5lZ1plcm9Eb3VibGUgfCBOZWdaZXJvRG91
YmxlKSBpZiBpdCBzZWVzIGEKKyAgICAvLyBkb3VibGUuIFNldHMgTm9uTnVtYmVyIGlmIGl0IHNl
ZXMgYSBub24tbnVtYmVyLgorICAgIHZvaWQgZW1pdERldGVjdEJpdHNMaWdodChDQ2FsbEhlbHBl
cnMmLCBKU1ZhbHVlUmVncywgVGFnUmVnaXN0ZXJzTW9kZSA9IEhhdmVUYWdSZWdpc3RlcnMpOwor
ICAgIAorICAgIHZvaWQgZGV0ZWN0Qml0c0xpZ2h0KEpTVmFsdWUgdmFsdWUpCisgICAgeworICAg
ICAgICBpZiAodmFsdWUuaXNJbnQzMigpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBp
ZiAodmFsdWUuaXNOdW1iZXIoKSkgeworICAgICAgICAgICAgbV9ieXRlY29kZU9mZnNldEFuZEZs
YWdzIHw9IEludDMyT3ZlcmZsb3cgfCBJbnQ1Mk92ZXJmbG93IHwgTm9uTmVnWmVyb0RvdWJsZSB8
IE5lZ1plcm9Eb3VibGU7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAg
bV9ieXRlY29kZU9mZnNldEFuZEZsYWdzIHw9IE5vbk51bWJlcjsKKyAgICB9CisgICAgCisgICAg
Ly8gU2V0cyAoSW50MzJPdmVyZmxvdyB8IEludDUyT3ZlcmZsb3cgfCBOb25OZWdaZXJvRG91Ymxl
IHwgTmVnWmVyb0RvdWJsZSkuCisgICAgdm9pZCBlbWl0U2V0RG91YmxlKENDYWxsSGVscGVycyYp
OworICAgIAorICAgIC8vIFNldHMgTm9uTnVtYmVyLgorICAgIHZvaWQgZW1pdFNldE5vbk51bWJl
cihDQ2FsbEhlbHBlcnMmKTsKIAogcHJpdmF0ZToKICAgICBib29sIGhhc0JpdHMoaW50IG1hc2sp
IGNvbnN0IHsgcmV0dXJuIG1fYnl0ZWNvZGVPZmZzZXRBbmRGbGFncyAmIG1hc2s7IH0KSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCShy
ZXZpc2lvbiAyMDA1ODIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2Rl
UGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTA2LDQwICs5MDYsNTggQEAgcHJpdmF0ZToK
ICAgICAgICAgaWYgKCFpc1g4NigpICYmIG5vZGUtPm9wKCkgPT0gQXJpdGhNb2QpCiAgICAgICAg
ICAgICByZXR1cm4gbm9kZTsKIAotICAgICAgICBpZiAoIW1faW5saW5lU3RhY2tUb3AtPm1fcHJv
ZmlsZWRCbG9jay0+bGlrZWx5VG9UYWtlU2xvd0Nhc2UobV9jdXJyZW50SW5kZXgpKQotICAgICAg
ICAgICAgcmV0dXJuIG5vZGU7CisgICAgICAgIFJlc3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUg
PSBtX2lubGluZVN0YWNrVG9wLT5tX3Byb2ZpbGVkQmxvY2stPnJlc3VsdFByb2ZpbGVGb3JCeXRl
Y29kZU9mZnNldChtX2N1cnJlbnRJbmRleCk7CisgICAgICAgIGlmIChyZXN1bHRQcm9maWxlKSB7
CisgICAgICAgICAgICBzd2l0Y2ggKG5vZGUtPm9wKCkpIHsKKyAgICAgICAgICAgIGNhc2UgQXJp
dGhBZGQ6CisgICAgICAgICAgICBjYXNlIEFyaXRoU3ViOgorICAgICAgICAgICAgY2FzZSBWYWx1
ZUFkZDoKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0UHJvZmlsZS0+ZGlkT2JzZXJ2ZURvdWJs
ZSgpKQorICAgICAgICAgICAgICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlIYXZlRG91
YmxlUmVzdWx0KTsKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0UHJvZmlsZS0+ZGlkT2JzZXJ2
ZU5vbk51bWJlcigpKQorICAgICAgICAgICAgICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5vZGVN
YXlIYXZlTm9uTnVtYmVyUmVzdWx0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgICAgICAKKyAgICAgICAgICAgIGNhc2UgQXJpdGhNdWw6IHsKKyAgICAgICAgICAgICAgICBp
ZiAocmVzdWx0UHJvZmlsZS0+ZGlkT2JzZXJ2ZUludDUyT3ZlcmZsb3coKSkKKyAgICAgICAgICAg
ICAgICAgICAgbm9kZS0+bWVyZ2VGbGFncyhOb2RlTWF5T3ZlcmZsb3dJbnQ1Mik7CisgICAgICAg
ICAgICAgICAgaWYgKHJlc3VsdFByb2ZpbGUtPmRpZE9ic2VydmVJbnQzMk92ZXJmbG93KCkgfHwg
bV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5oYXNFeGl0U2l0ZShtX2N1cnJlbnRJbmRl
eCwgT3ZlcmZsb3cpKQorICAgICAgICAgICAgICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5vZGVN
YXlPdmVyZmxvd0ludDMySW5CYXNlbGluZSk7CisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdFBy
b2ZpbGUtPmRpZE9ic2VydmVOZWdaZXJvRG91YmxlKCkgfHwgbV9pbmxpbmVTdGFja1RvcC0+bV9l
eGl0UHJvZmlsZS5oYXNFeGl0U2l0ZShtX2N1cnJlbnRJbmRleCwgTmVnYXRpdmVaZXJvKSkKKyAg
ICAgICAgICAgICAgICAgICAgbm9kZS0+bWVyZ2VGbGFncyhOb2RlTWF5TmVnWmVyb0luQmFzZWxp
bmUpOworICAgICAgICAgICAgICAgIGlmIChyZXN1bHRQcm9maWxlLT5kaWRPYnNlcnZlRG91Ymxl
KCkpCisgICAgICAgICAgICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1heUhhdmVEb3Vi
bGVSZXN1bHQpOworICAgICAgICAgICAgICAgIGlmIChyZXN1bHRQcm9maWxlLT5kaWRPYnNlcnZl
Tm9uTnVtYmVyKCkpCisgICAgICAgICAgICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1h
eUhhdmVOb25OdW1iZXJSZXN1bHQpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAgICAgICAKLSAgICAgICAg
c3dpdGNoIChub2RlLT5vcCgpKSB7Ci0gICAgICAgIGNhc2UgVUludDMyVG9OdW1iZXI6Ci0gICAg
ICAgIGNhc2UgQXJpdGhBZGQ6Ci0gICAgICAgIGNhc2UgQXJpdGhTdWI6Ci0gICAgICAgIGNhc2Ug
VmFsdWVBZGQ6Ci0gICAgICAgIGNhc2UgQXJpdGhNb2Q6IC8vIGZvciBBcml0aE1vZCAiTWF5T3Zl
cmZsb3ciIG1lYW5zIHdlIHRyaWVkIHRvIGRpdmlkZSBieSB6ZXJvLCBvciB3ZSBzYXcgZG91Ymxl
LgotICAgICAgICAgICAgbm9kZS0+bWVyZ2VGbGFncyhOb2RlTWF5T3ZlcmZsb3dJbnQzMkluQmFz
ZWxpbmUpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAKLSAgICAgICAgY2FzZSBB
cml0aE5lZ2F0ZToKLSAgICAgICAgICAgIC8vIEN1cnJlbnRseSB3ZSBjYW4ndCB0ZWxsIHRoZSBk
aWZmZXJlbmNlIGJldHdlZW4gYSBuZWdhdGlvbiBvdmVyZmxvd2luZwotICAgICAgICAgICAgLy8g
KGkuZS4gLSgxIDw8IDMxKSkgb3IgZ2VuZXJhdGluZyBuZWdhdGl2ZSB6ZXJvIChpLmUuIC0wKS4g
SWYgaXQgdG9vayBzbG93Ci0gICAgICAgICAgICAvLyBwYXRoIHRoZW4gd2UgYXNzdW1lIHRoYXQg
aXQgZGlkIGJvdGggb2YgdGhvc2UgdGhpbmdzLgotICAgICAgICAgICAgbm9kZS0+bWVyZ2VGbGFn
cyhOb2RlTWF5T3ZlcmZsb3dJbnQzMkluQmFzZWxpbmUpOwotICAgICAgICAgICAgbm9kZS0+bWVy
Z2VGbGFncyhOb2RlTWF5TmVnWmVyb0luQmFzZWxpbmUpOwotICAgICAgICAgICAgYnJlYWs7Ci0K
LSAgICAgICAgY2FzZSBBcml0aE11bDogewotICAgICAgICAgICAgUmVzdWx0UHJvZmlsZSYgcmVz
dWx0UHJvZmlsZSA9ICptX2lubGluZVN0YWNrVG9wLT5tX3Byb2ZpbGVkQmxvY2stPnJlc3VsdFBy
b2ZpbGVGb3JCeXRlY29kZU9mZnNldChtX2N1cnJlbnRJbmRleCk7Ci0gICAgICAgICAgICBpZiAo
cmVzdWx0UHJvZmlsZS5kaWRPYnNlcnZlSW50NTJPdmVyZmxvdygpKQotICAgICAgICAgICAgICAg
IG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1heU92ZXJmbG93SW50NTIpOwotICAgICAgICAgICAgaWYg
KHJlc3VsdFByb2ZpbGUuZGlkT2JzZXJ2ZUludDMyT3ZlcmZsb3coKSB8fCBtX2lubGluZVN0YWNr
VG9wLT5tX2V4aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1fY3VycmVudEluZGV4LCBPdmVyZmxvdykp
CisgICAgICAgIGlmIChtX2lubGluZVN0YWNrVG9wLT5tX3Byb2ZpbGVkQmxvY2stPmxpa2VseVRv
VGFrZVNsb3dDYXNlKG1fY3VycmVudEluZGV4KSkgeworICAgICAgICAgICAgc3dpdGNoIChub2Rl
LT5vcCgpKSB7CisgICAgICAgICAgICBjYXNlIFVJbnQzMlRvTnVtYmVyOgorICAgICAgICAgICAg
Y2FzZSBBcml0aEFkZDoKKyAgICAgICAgICAgIGNhc2UgQXJpdGhTdWI6CisgICAgICAgICAgICBj
YXNlIFZhbHVlQWRkOgorICAgICAgICAgICAgY2FzZSBBcml0aE1vZDogLy8gZm9yIEFyaXRoTW9k
ICJNYXlPdmVyZmxvdyIgbWVhbnMgd2UgdHJpZWQgdG8gZGl2aWRlIGJ5IHplcm8sIG9yIHdlIHNh
dyBkb3VibGUuCisgICAgICAgICAgICAgICAgbm9kZS0+bWVyZ2VGbGFncyhOb2RlTWF5T3ZlcmZs
b3dJbnQzMkluQmFzZWxpbmUpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
ICAgIAorICAgICAgICAgICAgY2FzZSBBcml0aE5lZ2F0ZToKKyAgICAgICAgICAgICAgICAvLyBD
dXJyZW50bHkgd2UgY2FuJ3QgdGVsbCB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIGEgbmVnYXRpb24g
b3ZlcmZsb3dpbmcKKyAgICAgICAgICAgICAgICAvLyAoaS5lLiAtKDEgPDwgMzEpKSBvciBnZW5l
cmF0aW5nIG5lZ2F0aXZlIHplcm8gKGkuZS4gLTApLiBJZiBpdCB0b29rIHNsb3cKKyAgICAgICAg
ICAgICAgICAvLyBwYXRoIHRoZW4gd2UgYXNzdW1lIHRoYXQgaXQgZGlkIGJvdGggb2YgdGhvc2Ug
dGhpbmdzLgogICAgICAgICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1heU92ZXJmbG93
SW50MzJJbkJhc2VsaW5lKTsKLSAgICAgICAgICAgIGlmIChyZXN1bHRQcm9maWxlLmRpZE9ic2Vy
dmVOZWdaZXJvRG91YmxlKCkgfHwgbV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5oYXNF
eGl0U2l0ZShtX2N1cnJlbnRJbmRleCwgTmVnYXRpdmVaZXJvKSkKICAgICAgICAgICAgICAgICBu
b2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlOZWdaZXJvSW5CYXNlbGluZSk7Ci0gICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgfQotCi0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBSRUxFQVNF
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIAogICAg
ICAgICByZXR1cm4gbm9kZTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4
dXBQaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdG
aXh1cFBoYXNlLmNwcAkocmV2aXNpb24gMjAwNTgyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdGaXh1cFBoYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjM2LDggKzIzNiw3IEBA
IHByaXZhdGU6CiAgICAgICAgIGNhc2UgQXJpdGhNdWw6IHsKICAgICAgICAgICAgIEVkZ2UmIGxl
ZnRDaGlsZCA9IG5vZGUtPmNoaWxkMSgpOwogICAgICAgICAgICAgRWRnZSYgcmlnaHRDaGlsZCA9
IG5vZGUtPmNoaWxkMigpOwotICAgICAgICAgICAgaWYgKE5vZGU6OnNob3VsZFNwZWN1bGF0ZVVu
dHlwZWRGb3JBcml0aG1ldGljKGxlZnRDaGlsZC5ub2RlKCksIHJpZ2h0Q2hpbGQubm9kZSgpKQot
ICAgICAgICAgICAgICAgICYmIG1fZ3JhcGguaGFzRXhpdFNpdGUobm9kZS0+b3JpZ2luLnNlbWFu
dGljLCBCYWRUeXBlKSkgeworICAgICAgICAgICAgaWYgKE5vZGU6OnNob3VsZFNwZWN1bGF0ZVVu
dHlwZWRGb3JBcml0aG1ldGljKGxlZnRDaGlsZC5ub2RlKCksIHJpZ2h0Q2hpbGQubm9kZSgpKSkg
ewogICAgICAgICAgICAgICAgIGZpeEVkZ2U8VW50eXBlZFVzZT4obGVmdENoaWxkKTsKICAgICAg
ICAgICAgICAgICBmaXhFZGdlPFVudHlwZWRVc2U+KHJpZ2h0Q2hpbGQpOwogICAgICAgICAgICAg
ICAgIG5vZGUtPnNldFJlc3VsdChOb2RlUmVzdWx0SlMpOwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdHcmFwaC5jcHAJKHJldmlzaW9uIDIwMDU4MikKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHR3JhcGguY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDQ2LDQ2ICsxNDQ2
LDUwIEBAIHZvaWQgR3JhcGg6OmVuc3VyZU5hdHVyYWxMb29wcygpCiAgICAgICAgIG1fbmF0dXJh
bExvb3BzID0gc3RkOjptYWtlX3VuaXF1ZTxOYXR1cmFsTG9vcHM+KCp0aGlzKTsKIH0KIAotVmFs
dWVQcm9maWxlKiBHcmFwaDo6dmFsdWVQcm9maWxlRm9yKE5vZGUqIG5vZGUpCitNZXRob2RPZkdl
dHRpbmdBVmFsdWVQcm9maWxlIEdyYXBoOjptZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlRm9y
KE5vZGUqIG5vZGUpCiB7Ci0gICAgaWYgKCFub2RlKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KyAgICB3aGlsZSAobm9kZSkgeworICAgICAgICBDb2RlQmxvY2sqIHByb2ZpbGVkQmxvY2sgPSBi
YXNlbGluZUNvZGVCbG9ja0Zvcihub2RlLT5vcmlnaW4uc2VtYW50aWMpOwogICAgICAgICAKLSAg
ICBDb2RlQmxvY2sqIHByb2ZpbGVkQmxvY2sgPSBiYXNlbGluZUNvZGVCbG9ja0Zvcihub2RlLT5v
cmlnaW4uc2VtYW50aWMpOworICAgICAgICBpZiAobm9kZS0+aGFzTG9jYWwoKnRoaXMpKSB7Cisg
ICAgICAgICAgICBWYWx1ZVByb2ZpbGUqIHJlc3VsdCA9IFsmXSAoKSAtPiBWYWx1ZVByb2ZpbGUq
IHsKKyAgICAgICAgICAgICAgICBpZiAoIW5vZGUtPmxvY2FsKCkuaXNBcmd1bWVudCgpKQorICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgICAgICAgICBpbnQgYXJn
dW1lbnQgPSBub2RlLT5sb2NhbCgpLnRvQXJndW1lbnQoKTsKKyAgICAgICAgICAgICAgICBOb2Rl
KiBhcmd1bWVudE5vZGUgPSBtX2FyZ3VtZW50c1thcmd1bWVudF07CisgICAgICAgICAgICAgICAg
aWYgKCFhcmd1bWVudE5vZGUpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwor
ICAgICAgICAgICAgICAgIGlmIChub2RlLT52YXJpYWJsZUFjY2Vzc0RhdGEoKSAhPSBhcmd1bWVu
dE5vZGUtPnZhcmlhYmxlQWNjZXNzRGF0YSgpKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKyAgICAgICAgICAgICAgICByZXR1cm4gcHJvZmlsZWRCbG9jay0+dmFsdWVQcm9m
aWxlRm9yQXJndW1lbnQoYXJndW1lbnQpOworICAgICAgICAgICAgfSgpOworICAgICAgICAgICAg
aWYgKHJlc3VsdCkKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAg
CisgICAgICAgICAgICBpZiAobm9kZS0+b3AoKSA9PSBHZXRMb2NhbCkgeworICAgICAgICAgICAg
ICAgIHJldHVybiBNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlOjpmcm9tTGF6eU9wZXJhbmQo
CisgICAgICAgICAgICAgICAgICAgIHByb2ZpbGVkQmxvY2ssCisgICAgICAgICAgICAgICAgICAg
IExhenlPcGVyYW5kVmFsdWVQcm9maWxlS2V5KAorICAgICAgICAgICAgICAgICAgICAgICAgbm9k
ZS0+b3JpZ2luLnNlbWFudGljLmJ5dGVjb2RlSW5kZXgsIG5vZGUtPmxvY2FsKCkpKTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfQogICAgICAgICAKLSAgICBpZiAobm9kZS0+aGFzTG9jYWwoKnRo
aXMpKSB7Ci0gICAgICAgIGlmICghbm9kZS0+bG9jYWwoKS5pc0FyZ3VtZW50KCkpCi0gICAgICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICAgICAgaW50IGFyZ3VtZW50ID0gbm9kZS0+bG9jYWwo
KS50b0FyZ3VtZW50KCk7Ci0gICAgICAgIE5vZGUqIGFyZ3VtZW50Tm9kZSA9IG1fYXJndW1lbnRz
W2FyZ3VtZW50XTsKLSAgICAgICAgaWYgKCFhcmd1bWVudE5vZGUpCi0gICAgICAgICAgICByZXR1
cm4gbnVsbHB0cjsKLSAgICAgICAgaWYgKG5vZGUtPnZhcmlhYmxlQWNjZXNzRGF0YSgpICE9IGFy
Z3VtZW50Tm9kZS0+dmFyaWFibGVBY2Nlc3NEYXRhKCkpCi0gICAgICAgICAgICByZXR1cm4gbnVs
bHB0cjsKLSAgICAgICAgcmV0dXJuIHByb2ZpbGVkQmxvY2stPnZhbHVlUHJvZmlsZUZvckFyZ3Vt
ZW50KGFyZ3VtZW50KTsKLSAgICB9CisgICAgICAgIGlmIChub2RlLT5oYXNIZWFwUHJlZGljdGlv
bigpKQorICAgICAgICAgICAgcmV0dXJuIHByb2ZpbGVkQmxvY2stPnZhbHVlUHJvZmlsZUZvckJ5
dGVjb2RlT2Zmc2V0KG5vZGUtPm9yaWdpbi5zZW1hbnRpYy5ieXRlY29kZUluZGV4KTsKICAgICAg
ICAgCi0gICAgaWYgKG5vZGUtPmhhc0hlYXBQcmVkaWN0aW9uKCkpCi0gICAgICAgIHJldHVybiBw
cm9maWxlZEJsb2NrLT52YWx1ZVByb2ZpbGVGb3JCeXRlY29kZU9mZnNldChub2RlLT5vcmlnaW4u
c2VtYW50aWMuYnl0ZWNvZGVJbmRleCk7CisgICAgICAgIGlmIChSZXN1bHRQcm9maWxlKiByZXN1
bHQgPSBwcm9maWxlZEJsb2NrLT5yZXN1bHRQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQobm9kZS0+
b3JpZ2luLnNlbWFudGljLmJ5dGVjb2RlSW5kZXgpKQorICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKICAgICAgICAgCi0gICAgcmV0dXJuIG51bGxwdHI7Ci19Ci0KLU1ldGhvZE9mR2V0dGluZ0FW
YWx1ZVByb2ZpbGUgR3JhcGg6Om1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGVGb3IoTm9kZSog
bm9kZSkKLXsKLSAgICBpZiAoIW5vZGUpCi0gICAgICAgIHJldHVybiBNZXRob2RPZkdldHRpbmdB
VmFsdWVQcm9maWxlKCk7Ci0gICAgCi0gICAgaWYgKFZhbHVlUHJvZmlsZSogdmFsdWVQcm9maWxl
ID0gdmFsdWVQcm9maWxlRm9yKG5vZGUpKQotICAgICAgICByZXR1cm4gTWV0aG9kT2ZHZXR0aW5n
QVZhbHVlUHJvZmlsZSh2YWx1ZVByb2ZpbGUpOwotICAgIAotICAgIGlmIChub2RlLT5vcCgpID09
IEdldExvY2FsKSB7Ci0gICAgICAgIENvZGVCbG9jayogcHJvZmlsZWRCbG9jayA9IGJhc2VsaW5l
Q29kZUJsb2NrRm9yKG5vZGUtPm9yaWdpbi5zZW1hbnRpYyk7Ci0gICAgICAgIAotICAgICAgICBy
ZXR1cm4gTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZTo6ZnJvbUxhenlPcGVyYW5kKAotICAg
ICAgICAgICAgcHJvZmlsZWRCbG9jaywKLSAgICAgICAgICAgIExhenlPcGVyYW5kVmFsdWVQcm9m
aWxlS2V5KAotICAgICAgICAgICAgICAgIG5vZGUtPm9yaWdpbi5zZW1hbnRpYy5ieXRlY29kZUlu
ZGV4LCBub2RlLT5sb2NhbCgpKSk7CisgICAgICAgIHN3aXRjaCAobm9kZS0+b3AoKSkgeworICAg
ICAgICBjYXNlIElkZW50aXR5OgorICAgICAgICBjYXNlIFZhbHVlUmVwOgorICAgICAgICBjYXNl
IERvdWJsZVJlcDoKKyAgICAgICAgY2FzZSBJbnQ1MlJlcDoKKyAgICAgICAgICAgIG5vZGUgPSBu
b2RlLT5jaGlsZDEoKS5ub2RlKCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVs
dDoKKyAgICAgICAgICAgIG5vZGUgPSBudWxscHRyOworICAgICAgICB9CiAgICAgfQogICAgIAog
ICAgIHJldHVybiBNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlKCk7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oCShyZXZpc2lvbiAyMDA1ODIpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgJKHdvcmtpbmcgY29weSkKQEAgLTQwMCw3ICs0MDAs
NiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBoYXNFeGl0U2l0ZShub2RlLT5vcmlnaW4uc2Vt
YW50aWMsIGV4aXRLaW5kKTsKICAgICB9CiAgICAgCi0gICAgVmFsdWVQcm9maWxlKiB2YWx1ZVBy
b2ZpbGVGb3IoTm9kZSopOwogICAgIE1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUgbWV0aG9k
T2ZHZXR0aW5nQVZhbHVlUHJvZmlsZUZvcihOb2RlKik7CiAgICAgCiAgICAgQmxvY2tJbmRleCBu
dW1CbG9ja3MoKSBjb25zdCB7IHJldHVybiBtX2Jsb2Nrcy5zaXplKCk7IH0KSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCShyZXZpc2lvbiAyMDA1ODIpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAkod29ya2luZyBjb3B5KQpAQCAtOTUwLDYgKzk1MCwy
MSBAQCBzdHJ1Y3QgTm9kZSB7CiAgICAgICAgIHJldHVybiByZXN1bHQgJiB+Tm9kZUJ5dGVjb2Rl
TmVlZHNOZWdaZXJvOwogICAgIH0KIAorICAgIGJvb2wgbWF5SGF2ZU5vbkludFJlc3VsdCgpCisg
ICAgeworICAgICAgICByZXR1cm4gbV9mbGFncyAmIE5vZGVNYXlIYXZlTm9uSW50UmVzdWx0Owor
ICAgIH0KKyAgICAKKyAgICBib29sIG1heUhhdmVEb3VibGVSZXN1bHQoKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIG1fZmxhZ3MgJiBOb2RlTWF5SGF2ZURvdWJsZVJlc3VsdDsKKyAgICB9CisgICAg
CisgICAgYm9vbCBtYXlIYXZlTm9uTnVtYmVyUmVzdWx0KCkKKyAgICB7CisgICAgICAgIHJldHVy
biBtX2ZsYWdzICYgTm9kZU1heUhhdmVOb25OdW1iZXJSZXN1bHQ7CisgICAgfQorCiAgICAgYm9v
bCBoYXNDb25zdGFudEJ1ZmZlcigpCiAgICAgewogICAgICAgICByZXR1cm4gb3AoKSA9PSBOZXdB
cnJheUJ1ZmZlcjsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZUZsYWdz
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVGbGFn
cy5jcHAJKHJldmlzaW9uIDIwMDU4MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Tm9kZUZsYWdzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODUsNiArODUsMTIgQEAgdm9pZCBkdW1w
Tm9kZUZsYWdzKFByaW50U3RyZWFtJiBhY3R1YWxPdQogICAgICAgICAgICAgb3V0LnByaW50KGNv
bW1hLCAiVXNlQXNPdGhlciIpOwogICAgIH0KIAorICAgIGlmIChmbGFncyAmIE5vZGVNYXlIYXZl
RG91YmxlUmVzdWx0KQorICAgICAgICBvdXQucHJpbnQoY29tbWEsICJNYXlIYXZlRG91YmxlUmVz
dWx0Iik7CisKKyAgICBpZiAoZmxhZ3MgJiBOb2RlTWF5SGF2ZU5vbk51bWJlclJlc3VsdCkKKyAg
ICAgICAgb3V0LnByaW50KGNvbW1hLCAiTWF5SGF2ZU5vbk51bWJlclJlc3VsdCIpOworCiAgICAg
aWYgKGZsYWdzICYgTm9kZU1heU92ZXJmbG93SW50NTIpCiAgICAgICAgIG91dC5wcmludChjb21t
YSwgIk1heU92ZXJmbG93SW50NTIiKTsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdOb2RlRmxhZ3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR05vZGVGbGFncy5oCShyZXZpc2lvbiAyMDA1ODIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR05vZGVGbGFncy5oCSh3b3JraW5nIGNvcHkpCkBAIC00OCwyOCArNDgsMzAgQEAg
bmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogI2RlZmluZSBOb2RlSGFzVmFyQXJncyAg
ICAgICAgICAgICAgICAgICAweDAwMTAKICAgICAKICNkZWZpbmUgTm9kZUJlaGF2aW9yTWFzayAg
ICAgICAgICAgICAgICAgMHgwN2UwCisjZGVmaW5lIE5vZGVNYXlIYXZlRG91YmxlUmVzdWx0ICAg
ICAgICAgIDB4MDAyMAogI2RlZmluZSBOb2RlTWF5T3ZlcmZsb3dJbnQ1MiAgICAgICAgICAgICAw
eDAwNDAKICNkZWZpbmUgTm9kZU1heU92ZXJmbG93SW50MzJJbkJhc2VsaW5lICAgMHgwMDgwCiAj
ZGVmaW5lIE5vZGVNYXlPdmVyZmxvd0ludDMySW5ERkcgICAgICAgIDB4MDEwMAogI2RlZmluZSBO
b2RlTWF5TmVnWmVyb0luQmFzZWxpbmUgICAgICAgICAweDAyMDAKICNkZWZpbmUgTm9kZU1heU5l
Z1plcm9JbkRGRyAgICAgICAgICAgICAgMHgwNDAwCisjZGVmaW5lIE5vZGVNYXlIYXZlTm9uTnVt
YmVyUmVzdWx0ICAgICAgIDB4MDgwMAorI2RlZmluZSBOb2RlTWF5SGF2ZU5vbkludFJlc3VsdCAg
ICAgICAgICAoTm9kZU1heUhhdmVEb3VibGVSZXN1bHQgfCBOb2RlTWF5SGF2ZU5vbk51bWJlclJl
c3VsdCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0jZGVmaW5lIE5vZGVCeXRl
Y29kZUJhY2tQcm9wTWFzayAgICAgICAgIDB4ZjgwMAotI2RlZmluZSBOb2RlQnl0ZWNvZGVVc2VC
b3R0b20gICAgICAgICAgICAweDAwMDAKLSNkZWZpbmUgTm9kZUJ5dGVjb2RlVXNlc0FzTnVtYmVy
ICAgICAgICAgMHgwODAwIC8vIFRoZSByZXN1bHQgb2YgdGhpcyBjb21wdXRhdGlvbiBtYXkgYmUg
dXNlZCBpbiBhIGNvbnRleHQgdGhhdCBvYnNlcnZlcyBmcmFjdGlvbmFsLCBvciBiaWdnZXItdGhh
bi1pbnQzMiwgcmVzdWx0cy4KLSNkZWZpbmUgTm9kZUJ5dGVjb2RlTmVlZHNOZWdaZXJvICAgICAg
ICAgMHgxMDAwIC8vIFRoZSByZXN1bHQgb2YgdGhpcyBjb21wdXRhdGlvbiBtYXkgYmUgdXNlZCBp
biBhIGNvbnRleHQgdGhhdCBvYnNlcnZlcyAtMC4KLSNkZWZpbmUgTm9kZUJ5dGVjb2RlVXNlc0Fz
T3RoZXIgICAgICAgICAgMHgyMDAwIC8vIFRoZSByZXN1bHQgb2YgdGhpcyBjb21wdXRhdGlvbiBt
YXkgYmUgdXNlZCBpbiBhIGNvbnRleHQgdGhhdCBkaXN0aW5ndWlzaGVzIGJldHdlZW4gTmFOIGFu
ZCBvdGhlciB0aGluZ3MgKGxpa2UgdW5kZWZpbmVkKS4KLSNkZWZpbmUgTm9kZUJ5dGVjb2RlVXNl
c0FzVmFsdWUgICAgICAgICAgKE5vZGVCeXRlY29kZVVzZXNBc051bWJlciB8IE5vZGVCeXRlY29k
ZU5lZWRzTmVnWmVybyB8IE5vZGVCeXRlY29kZVVzZXNBc090aGVyKQotI2RlZmluZSBOb2RlQnl0
ZWNvZGVVc2VzQXNJbnQgICAgICAgICAgICAweDQwMDAgLy8gVGhlIHJlc3VsdCBvZiB0aGlzIGNv
bXB1dGF0aW9uIGlzIGtub3duIHRvIGJlIHVzZWQgaW4gYSBjb250ZXh0IHRoYXQgcHJlZmVycywg
YnV0IGRvZXMgbm90IHJlcXVpcmUsIGludGVnZXIgdmFsdWVzLgotI2RlZmluZSBOb2RlQnl0ZWNv
ZGVVc2VzQXNBcnJheUluZGV4ICAgICAweDgwMDAgLy8gVGhlIHJlc3VsdCBvZiB0aGlzIGNvbXB1
dGF0aW9uIGlzIGtub3duIHRvIGJlIHVzZWQgaW4gYSBjb250ZXh0IHRoYXQgc3Ryb25nbHkgcHJl
ZmVycyBpbnRlZ2VyIHZhbHVlcywgdG8gdGhlIHBvaW50IHRoYXQgd2Ugc2hvdWxkIGF2b2lkIHVz
aW5nIGRvdWJsZXMgaWYgYXQgYWxsIHBvc3NpYmxlLgorI2RlZmluZSBOb2RlQnl0ZWNvZGVCYWNr
UHJvcE1hc2sgICAgICAgIDB4MWYwMDAKKyNkZWZpbmUgTm9kZUJ5dGVjb2RlVXNlQm90dG9tICAg
ICAgICAgICAweDAwMDAwCisjZGVmaW5lIE5vZGVCeXRlY29kZVVzZXNBc051bWJlciAgICAgICAg
MHgwMTAwMCAvLyBUaGUgcmVzdWx0IG9mIHRoaXMgY29tcHV0YXRpb24gbWF5IGJlIHVzZWQgaW4g
YSBjb250ZXh0IHRoYXQgb2JzZXJ2ZXMgZnJhY3Rpb25hbCwgb3IgYmlnZ2VyLXRoYW4taW50MzIs
IHJlc3VsdHMuCisjZGVmaW5lIE5vZGVCeXRlY29kZU5lZWRzTmVnWmVybyAgICAgICAgMHgwMjAw
MCAvLyBUaGUgcmVzdWx0IG9mIHRoaXMgY29tcHV0YXRpb24gbWF5IGJlIHVzZWQgaW4gYSBjb250
ZXh0IHRoYXQgb2JzZXJ2ZXMgLTAuCisjZGVmaW5lIE5vZGVCeXRlY29kZVVzZXNBc090aGVyICAg
ICAgICAgMHgwNDAwMCAvLyBUaGUgcmVzdWx0IG9mIHRoaXMgY29tcHV0YXRpb24gbWF5IGJlIHVz
ZWQgaW4gYSBjb250ZXh0IHRoYXQgZGlzdGluZ3Vpc2hlcyBiZXR3ZWVuIE5hTiBhbmQgb3RoZXIg
dGhpbmdzIChsaWtlIHVuZGVmaW5lZCkuCisjZGVmaW5lIE5vZGVCeXRlY29kZVVzZXNBc1ZhbHVl
ICAgICAgICAgKE5vZGVCeXRlY29kZVVzZXNBc051bWJlciB8IE5vZGVCeXRlY29kZU5lZWRzTmVn
WmVybyB8IE5vZGVCeXRlY29kZVVzZXNBc090aGVyKQorI2RlZmluZSBOb2RlQnl0ZWNvZGVVc2Vz
QXNJbnQgICAgICAgICAgIDB4MDgwMDAgLy8gVGhlIHJlc3VsdCBvZiB0aGlzIGNvbXB1dGF0aW9u
IGlzIGtub3duIHRvIGJlIHVzZWQgaW4gYSBjb250ZXh0IHRoYXQgcHJlZmVycywgYnV0IGRvZXMg
bm90IHJlcXVpcmUsIGludGVnZXIgdmFsdWVzLgorI2RlZmluZSBOb2RlQnl0ZWNvZGVVc2VzQXNB
cnJheUluZGV4ICAgIDB4MTAwMDAgLy8gVGhlIHJlc3VsdCBvZiB0aGlzIGNvbXB1dGF0aW9uIGlz
IGtub3duIHRvIGJlIHVzZWQgaW4gYSBjb250ZXh0IHRoYXQgc3Ryb25nbHkgcHJlZmVycyBpbnRl
Z2VyIHZhbHVlcywgdG8gdGhlIHBvaW50IHRoYXQgd2Ugc2hvdWxkIGF2b2lkIHVzaW5nIGRvdWJs
ZXMgaWYgYXQgYWxsIHBvc3NpYmxlLgogCiAjZGVmaW5lIE5vZGVBcml0aEZsYWdzTWFzayAgICAg
ICAgICAgICAgIChOb2RlQmVoYXZpb3JNYXNrIHwgTm9kZUJ5dGVjb2RlQmFja1Byb3BNYXNrKQog
Ci0jZGVmaW5lIE5vZGVJc0ZsdXNoZWQgICAgICAgICAgICAgICAgICAgMHgxMDAwMCAvLyBDb21w
dXRlZCBieSBDUFNSZXRocmVhZGluZ1BoYXNlLCB3aWxsIHRlbGwgeW91IHdoaWNoIGxvY2FsIG5v
ZGVzIGFyZSBiYWNrd2FyZHMtcmVhY2hhYmxlIGZyb20gYSBGbHVzaC4KKyNkZWZpbmUgTm9kZUlz
Rmx1c2hlZCAgICAgICAgICAgICAgICAgICAweDIwMDAwIC8vIENvbXB1dGVkIGJ5IENQU1JldGhy
ZWFkaW5nUGhhc2UsIHdpbGwgdGVsbCB5b3Ugd2hpY2ggbG9jYWwgbm9kZXMgYXJlIGJhY2t3YXJk
cy1yZWFjaGFibGUgZnJvbSBhIEZsdXNoLgogCi0jZGVmaW5lIE5vZGVNaXNjRmxhZzEgICAgICAg
ICAgICAgICAgICAgMHgyMDAwMAotI2RlZmluZSBOb2RlTWlzY0ZsYWcyICAgICAgICAgICAgICAg
ICAgIDB4NDAwMDAKLSNkZWZpbmUgTm9kZU1pc2NGbGFnMyAgICAgICAgICAgICAgICAgICAweDgw
MDAwCisjZGVmaW5lIE5vZGVNaXNjRmxhZzEgICAgICAgICAgICAgICAgICAgMHg0MDAwMAorI2Rl
ZmluZSBOb2RlTWlzY0ZsYWcyICAgICAgICAgICAgICAgICAgIDB4ODAwMDAKIAogdHlwZWRlZiB1
aW50MzJfdCBOb2RlRmxhZ3M7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
T1NSRXhpdENvbXBpbGVyMzJfNjQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyMzJfNjQuY3BwCShyZXZpc2lvbiAyMDA1ODIpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlcjMyXzY0LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEs
IDIwMTMtMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTEsIDIwMTMtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEyOCwyOCArMTI4LDMwIEBAIHZvaWQgT1NS
RXhpdENvbXBpbGVyOjpjb21waWxlRXhpdChjb25zdCAKICAgICAgICAgICAgIH0KICAgICAgICAg
fQogICAgICAgICAKLSAgICAgICAgaWYgKCEhZXhpdC5tX3ZhbHVlUHJvZmlsZSkgewotICAgICAg
ICAgICAgRW5jb2RlZEpTVmFsdWUqIGJ1Y2tldCA9IGV4aXQubV92YWx1ZVByb2ZpbGUuZ2V0U3Bl
Y0ZhaWxCdWNrZXQoMCk7Ci0gICAgICAgIAorICAgICAgICBpZiAoTWV0aG9kT2ZHZXR0aW5nQVZh
bHVlUHJvZmlsZSBwcm9maWxlID0gZXhpdC5tX3ZhbHVlUHJvZmlsZSkgewogICAgICAgICAgICAg
aWYgKGV4aXQubV9qc1ZhbHVlU291cmNlLmlzQWRkcmVzcygpKSB7CiAgICAgICAgICAgICAgICAg
Ly8gU2F2ZSBhIHJlZ2lzdGVyIHNvIHdlIGNhbiB1c2UgaXQuCi0gICAgICAgICAgICAgICAgR1BS
UmVnIHNjcmF0Y2ggPSBBc3NlbWJseUhlbHBlcnM6OnNlbGVjdFNjcmF0Y2hHUFIoZXhpdC5tX2pz
VmFsdWVTb3VyY2UuYmFzZSgpKTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBt
X2ppdC5wdXNoKHNjcmF0Y2gpOworICAgICAgICAgICAgICAgIEdQUlJlZyBzY3JhdGNoUGF5bG9h
ZCA9IEFzc2VtYmx5SGVscGVyczo6c2VsZWN0U2NyYXRjaEdQUihleGl0Lm1fanNWYWx1ZVNvdXJj
ZS5iYXNlKCkpOworICAgICAgICAgICAgICAgIEdQUlJlZyBzY3JhdGNoVGFnID0gQXNzZW1ibHlI
ZWxwZXJzOjpzZWxlY3RTY3JhdGNoR1BSKGV4aXQubV9qc1ZhbHVlU291cmNlLmJhc2UoKSwgc2Ny
YXRjaFBheWxvYWQpOworICAgICAgICAgICAgICAgIG1faml0LnB1c2hUb1NhdmUoc2NyYXRjaFBh
eWxvYWQpOworICAgICAgICAgICAgICAgIG1faml0LnB1c2hUb1NhdmUoc2NyYXRjaFRhZyk7CiAK
LSAgICAgICAgICAgICAgICBtX2ppdC5sb2FkMzIoZXhpdC5tX2pzVmFsdWVTb3VyY2UuYXNBZGRy
ZXNzKE9CSkVDVF9PRkZTRVRPRihFbmNvZGVkVmFsdWVEZXNjcmlwdG9yLCBhc0JpdHMudGFnKSks
IHNjcmF0Y2gpOwotICAgICAgICAgICAgICAgIG1faml0LnN0b3JlMzIoc2NyYXRjaCwgJmJpdHdp
c2VfY2FzdDxFbmNvZGVkVmFsdWVEZXNjcmlwdG9yKj4oYnVja2V0KS0+YXNCaXRzLnRhZyk7Ci0g
ICAgICAgICAgICAgICAgbV9qaXQubG9hZDMyKGV4aXQubV9qc1ZhbHVlU291cmNlLmFzQWRkcmVz
cyhPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRvciwgYXNCaXRzLnBheWxvYWQp
KSwgc2NyYXRjaCk7Ci0gICAgICAgICAgICAgICAgbV9qaXQuc3RvcmUzMihzY3JhdGNoLCAmYml0
d2lzZV9jYXN0PEVuY29kZWRWYWx1ZURlc2NyaXB0b3IqPihidWNrZXQpLT5hc0JpdHMucGF5bG9h
ZCk7CisgICAgICAgICAgICAgICAgSlNWYWx1ZVJlZ3Mgc2NyYXRjaChzY3JhdGNoVGFnLCBzY3Jh
dGNoUGF5bG9hZCk7CiAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgbV9qaXQucG9w
KHNjcmF0Y2gpOworICAgICAgICAgICAgICAgIG1faml0LmxvYWRWYWx1ZShleGl0Lm1fanNWYWx1
ZVNvdXJjZS5hc0FkZHJlc3MoKSwgc2NyYXRjaCk7CisgICAgICAgICAgICAgICAgcHJvZmlsZS5l
bWl0UmVwb3J0VmFsdWUobV9qaXQsIHNjcmF0Y2gpOworICAgICAgICAgICAgICAgIAorICAgICAg
ICAgICAgICAgIG1faml0LnBvcFRvUmVzdG9yZShzY3JhdGNoVGFnKTsKKyAgICAgICAgICAgICAg
ICBtX2ppdC5wb3BUb1Jlc3RvcmUoc2NyYXRjaFBheWxvYWQpOwogICAgICAgICAgICAgfSBlbHNl
IGlmIChleGl0Lm1fanNWYWx1ZVNvdXJjZS5oYXNLbm93blRhZygpKSB7Ci0gICAgICAgICAgICAg
ICAgbV9qaXQuc3RvcmUzMihBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMihleGl0Lm1fanNW
YWx1ZVNvdXJjZS50YWcoKSksICZiaXR3aXNlX2Nhc3Q8RW5jb2RlZFZhbHVlRGVzY3JpcHRvcio+
KGJ1Y2tldCktPmFzQml0cy50YWcpOwotICAgICAgICAgICAgICAgIG1faml0LnN0b3JlMzIoZXhp
dC5tX2pzVmFsdWVTb3VyY2UucGF5bG9hZEdQUigpLCAmYml0d2lzZV9jYXN0PEVuY29kZWRWYWx1
ZURlc2NyaXB0b3IqPihidWNrZXQpLT5hc0JpdHMucGF5bG9hZCk7Ci0gICAgICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgICAgIG1faml0LnN0b3JlMzIoZXhpdC5tX2pzVmFsdWVTb3VyY2Uu
dGFnR1BSKCksICZiaXR3aXNlX2Nhc3Q8RW5jb2RlZFZhbHVlRGVzY3JpcHRvcio+KGJ1Y2tldCkt
PmFzQml0cy50YWcpOwotICAgICAgICAgICAgICAgIG1faml0LnN0b3JlMzIoZXhpdC5tX2pzVmFs
dWVTb3VyY2UucGF5bG9hZEdQUigpLCAmYml0d2lzZV9jYXN0PEVuY29kZWRWYWx1ZURlc2NyaXB0
b3IqPihidWNrZXQpLT5hc0JpdHMucGF5bG9hZCk7Ci0gICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgR1BSUmVnIHNjcmF0Y2hUYWcgPSBBc3NlbWJseUhlbHBlcnM6OnNlbGVjdFNjcmF0Y2hH
UFIoZXhpdC5tX2pzVmFsdWVTb3VyY2UucGF5bG9hZEdQUigpKTsKKyAgICAgICAgICAgICAgICBt
X2ppdC5wdXNoVG9TYXZlKHNjcmF0Y2hUYWcpOworICAgICAgICAgICAgICAgIG1faml0Lm1vdmUo
QXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIoZXhpdC5tX2pzVmFsdWVTb3VyY2UudGFnKCkp
LCBzY3JhdGNoVGFnKTsKKyAgICAgICAgICAgICAgICBKU1ZhbHVlUmVncyB2YWx1ZShzY3JhdGNo
VGFnLCBleGl0Lm1fanNWYWx1ZVNvdXJjZS5wYXlsb2FkR1BSKCkpOworICAgICAgICAgICAgICAg
IHByb2ZpbGUuZW1pdFJlcG9ydFZhbHVlKG1faml0LCB2YWx1ZSk7CisgICAgICAgICAgICAgICAg
bV9qaXQucG9wVG9SZXN0b3JlKHNjcmF0Y2hUYWcpOworICAgICAgICAgICAgfSBlbHNlCisgICAg
ICAgICAgICAgICAgcHJvZmlsZS5lbWl0UmVwb3J0VmFsdWUobV9qaXQsIGV4aXQubV9qc1ZhbHVl
U291cmNlLnJlZ3MoKSk7CiAgICAgICAgIH0KICAgICB9CiAgICAgCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlcjY0LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlcjY0LmNwcAkocmV2aXNp
b24gMjAwNTgyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGls
ZXI2NC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDExLCAyMDEzLTIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDExLCAyMDEzLTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMzQsMTcgKzEzNCwxNSBA
QCB2b2lkIE9TUkV4aXRDb21waWxlcjo6Y29tcGlsZUV4aXQoY29uc3QgCiAgICAgICAgICAgICB9
CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIGlmICghIWV4aXQubV92YWx1ZVByb2ZpbGUp
IHsKLSAgICAgICAgICAgIEVuY29kZWRKU1ZhbHVlKiBidWNrZXQgPSBleGl0Lm1fdmFsdWVQcm9m
aWxlLmdldFNwZWNGYWlsQnVja2V0KDApOwotICAgICAgICAgICAgCisgICAgICAgIGlmIChNZXRo
b2RPZkdldHRpbmdBVmFsdWVQcm9maWxlIHByb2ZpbGUgPSBleGl0Lm1fdmFsdWVQcm9maWxlKSB7
CiAgICAgICAgICAgICBpZiAoZXhpdC5tX2pzVmFsdWVTb3VyY2UuaXNBZGRyZXNzKCkpIHsKICAg
ICAgICAgICAgICAgICAvLyBXZSBjYW4ndCBiZSBzdXJlIHRoYXQgd2UgaGF2ZSBhIHNwYXJlIHJl
Z2lzdGVyLiBTbyB1c2UgdGhlIHRhZ1R5cGVOdW1iZXJSZWdpc3RlciwKICAgICAgICAgICAgICAg
ICAvLyBzaW5jZSB3ZSBrbm93IGhvdyB0byByZXN0b3JlIGl0LgogICAgICAgICAgICAgICAgIG1f
aml0LmxvYWQ2NChBc3NlbWJseUhlbHBlcnM6OkFkZHJlc3MoZXhpdC5tX2pzVmFsdWVTb3VyY2Uu
YXNBZGRyZXNzKCkpLCBHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIpOwotICAgICAgICAg
ICAgICAgIG1faml0LnN0b3JlNjQoR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyLCBidWNr
ZXQpOworICAgICAgICAgICAgICAgIHByb2ZpbGUuZW1pdFJlcG9ydFZhbHVlKG1faml0LCBKU1Zh
bHVlUmVncyhHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIpKTsKICAgICAgICAgICAgICAg
ICBtX2ppdC5tb3ZlKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTY0KFRhZ1R5cGVOdW1iZXIp
LCBHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIpOwogICAgICAgICAgICAgfSBlbHNlCi0g
ICAgICAgICAgICAgICAgbV9qaXQuc3RvcmU2NChleGl0Lm1fanNWYWx1ZVNvdXJjZS5ncHIoKSwg
YnVja2V0KTsKKyAgICAgICAgICAgICAgICBwcm9maWxlLmVtaXRSZXBvcnRWYWx1ZShtX2ppdCwg
SlNWYWx1ZVJlZ3MoZXhpdC5tX2pzVmFsdWVTb3VyY2UuZ3ByKCkpKTsKICAgICAgICAgfQogICAg
IH0KICAgICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25z
LmNwcAkocmV2aXNpb24gMjAwNTgyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdP
cGVyYXRpb25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjY4LDE3ICsyNjgsNiBAQCBFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc051bWJlcihzdGF0aWNfY2FzdDxpbnQzMl90PihhID4+IChiICYgMHgxZikpKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVBZGQoRXhlY1N0
YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkT3AyKQotewotICAgIFZNKiB2bSA9ICZleGVjLT52bSgpOwotICAgIE5hdGl2ZUNhbGxGcmFt
ZVRyYWNlciB0cmFjZXIodm0sIGV4ZWMpOwotICAgIAotICAgIEpTVmFsdWUgb3AxID0gSlNWYWx1
ZTo6ZGVjb2RlKGVuY29kZWRPcDEpOwotICAgIEpTVmFsdWUgb3AyID0gSlNWYWx1ZTo6ZGVjb2Rl
KGVuY29kZWRPcDIpOwotICAgIAotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNBZGQoZXhl
Yywgb3AxLCBvcDIpKTsKLX0KLQogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRp
b25WYWx1ZUFkZE5vdE51bWJlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpCiB7CiAgICAgVk0qIHZtID0gJmV4ZWMt
PnZtKCk7CkBAIC0zMDgsMzIgKzI5Nyw2IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uVmEKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGEgLyBiKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVNdWwoRXhl
Y1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkT3AyKQotewotICAgIFZNKiB2bSA9ICZleGVjLT52bSgpOwotICAgIE5hdGl2ZUNhbGxG
cmFtZVRyYWNlciB0cmFjZXIodm0sIGV4ZWMpOwotCi0gICAgSlNWYWx1ZSBvcDEgPSBKU1ZhbHVl
OjpkZWNvZGUoZW5jb2RlZE9wMSk7Ci0gICAgSlNWYWx1ZSBvcDIgPSBKU1ZhbHVlOjpkZWNvZGUo
ZW5jb2RlZE9wMik7Ci0KLSAgICBkb3VibGUgYSA9IG9wMS50b051bWJlcihleGVjKTsKLSAgICBk
b3VibGUgYiA9IG9wMi50b051bWJlcihleGVjKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzTnVtYmVyKGEgKiBiKSk7Ci19Ci0KLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uVmFsdWVTdWIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3Ax
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKQotewotICAgIFZNKiB2bSA9ICZleGVjLT52bSgp
OwotICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGV4ZWMpOwotICAgIAotICAg
IEpTVmFsdWUgb3AxID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDEpOwotICAgIEpTVmFsdWUg
b3AyID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDIpOwotCi0gICAgZG91YmxlIGEgPSBvcDEu
dG9OdW1iZXIoZXhlYyk7Ci0gICAgZG91YmxlIGIgPSBvcDIudG9OdW1iZXIoZXhlYyk7Ci0gICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihhIC0gYikpOwotfQotCiBzdGF0aWMgQUxX
QVlTX0lOTElORSBFbmNvZGVkSlNWYWx1ZSBnZXRCeVZhbChFeGVjU3RhdGUqIGV4ZWMsIEpTQ2Vs
bCogYmFzZSwgdWludDMyX3QgaW5kZXgpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5oCShyZXZpc2lvbiAy
MDA1ODIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaAkod29y
a2luZyBjb3B5KQpAQCAtNTEsMTEgKzUxLDggQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBvcGVyYXRpb25WYQogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1
ZUJpdExTaGlmdChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkT3AyKSBXVEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvblZhbHVlQml0UlNoaWZ0KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpIFdURl9JTlRFUk5BTDsKIEVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVCaXRVUlNoaWZ0KEV4ZWNT
dGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRP
cDIpIFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
VmFsdWVBZGQoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZE9wMikgV1RGX0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBvcGVyYXRpb25WYWx1ZUFkZE5vdE51bWJlcihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSBXVEZfSU5URVJOQUw7CiBF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlRGl2KEV4ZWNTdGF0ZSos
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpIFdU
Rl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVN
dWwoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZE9wMikgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBv
cGVyYXRpb25WYWx1ZVN1YihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSBXVEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5VmFsKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkUHJvcGVydHkpIFdURl9JTlRFUk5B
TDsKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlWYWxDZWxsKEV4
ZWNTdGF0ZSosIEpTQ2VsbCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRQcm9wZXJ0eSkgV1RGX0lO
VEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeVZhbEFy
cmF5SW50KEV4ZWNTdGF0ZSosIEpTQXJyYXkqLCBpbnQzMl90KSBXVEZfSU5URVJOQUw7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rp
b25Qcm9wYWdhdGlvblBoYXNlLmNwcAkocmV2aXNpb24gMjAwNTgyKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTE5MSwxMyArMTkxLDE2IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAg
ICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjSW50NTJPbmx5KTsKICAgICAgICAg
ICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJn
ZVByZWRpY3Rpb24oc3BlY3VsYXRlZERvdWJsZVR5cGVGb3JQcmVkaWN0aW9ucyhsZWZ0LCByaWdo
dCkpOwotICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoCi0gICAgICAgICAgICAgICAgICAgICEo
bGVmdCAmIChTcGVjRnVsbE51bWJlciB8IFNwZWNCb29sZWFuKSkKLSAgICAgICAgICAgICAgICAg
ICAgfHwgIShyaWdodCAmIChTcGVjRnVsbE51bWJlciB8IFNwZWNCb29sZWFuKSkpIHsKKyAgICAg
ICAgICAgICAgICB9IGVsc2UgaWYgKGlzU3RyaW5nT3JTdHJpbmdPYmplY3RTcGVjdWxhdGlvbihs
ZWZ0KSAmJiBpc1N0cmluZ09yU3RyaW5nT2JqZWN0U3BlY3VsYXRpb24ocmlnaHQpKSB7CiAgICAg
ICAgICAgICAgICAgICAgIC8vIGxlZnQgb3IgcmlnaHQgaXMgZGVmaW5pdGVseSBzb21ldGhpbmcg
b3RoZXIgdGhhbiBhIG51bWJlci4KICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJn
ZVByZWRpY3Rpb24oU3BlY1N0cmluZyk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlCi0gICAgICAg
ICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKFNwZWNTdHJpbmcgfCBTcGVj
SW50MzJPbmx5IHwgU3BlY0J5dGVjb2RlRG91YmxlKTsKKyAgICAgICAgICAgICAgICB9IGVsc2Ug
eworICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjSW50
MzJPbmx5KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG5vZGUtPm1heUhhdmVEb3VibGVSZXN1
bHQoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9u
KFNwZWNCeXRlY29kZURvdWJsZSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChub2RlLT5tYXlI
YXZlTm9uTnVtYmVyUmVzdWx0KCkpCisgICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9
IG1lcmdlUHJlZGljdGlvbihTcGVjU3RyaW5nKTsKKyAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtMjExLDggKzIxNCwxMiBA
QCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlv
bihTcGVjSW50MzJPbmx5KTsKICAgICAgICAgICAgICAgICBlbHNlIGlmIChtX2dyYXBoLmFkZFNo
b3VsZFNwZWN1bGF0ZUFueUludChub2RlKSkKICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8
PSBtZXJnZVByZWRpY3Rpb24oU3BlY0ludDUyT25seSk7Ci0gICAgICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgICAgIGVsc2UgaWYgKGlzRnVsbE51bWJlck9yQm9vbGVhblNwZWN1bGF0aW9u
KGxlZnQpICYmIGlzRnVsbE51bWJlck9yQm9vbGVhblNwZWN1bGF0aW9uKHJpZ2h0KSkKICAgICAg
ICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oc3BlY3VsYXRlZERvdWJs
ZVR5cGVGb3JQcmVkaWN0aW9ucyhsZWZ0LCByaWdodCkpOworICAgICAgICAgICAgICAgIGVsc2Ug
aWYgKG5vZGUtPm1heUhhdmVOb25JbnRSZXN1bHQoKSB8fCAobGVmdCAmIFNwZWNCeXRlY29kZURv
dWJsZSkgfHwgKHJpZ2h0ICYgU3BlY0J5dGVjb2RlRG91YmxlKSkKKyAgICAgICAgICAgICAgICAg
ICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY0ludDMyT25seSB8IFNwZWNCeXRlY29k
ZURvdWJsZSk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBjaGFu
Z2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjSW50MzJPbmx5KTsKICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC0yMzAsOCArMjM3LDEwIEBAIHByaXZhdGU6
CiAgICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVj
SW50NTJPbmx5KTsKICAgICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAg
ICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oc3BlY3VsYXRlZERvdWJsZVR5cGVGb3JQ
cmVkaWN0aW9ucyhsZWZ0LCByaWdodCkpOwotICAgICAgICAgICAgICAgIH0gZWxzZQorICAgICAg
ICAgICAgICAgIH0gZWxzZSBpZiAobm9kZS0+bWF5SGF2ZU5vbkludFJlc3VsdCgpIHx8IChsZWZ0
ICYgU3BlY0J5dGVjb2RlRG91YmxlKSB8fCAocmlnaHQgJiBTcGVjQnl0ZWNvZGVEb3VibGUpKQog
ICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjSW50MzJP
bmx5IHwgU3BlY0J5dGVjb2RlRG91YmxlKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKFNwZWNJbnQzMk9ubHkpOwog
ICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTI2Nyw2ICsy
NzYsMTAgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIFNwZWN1bGF0ZWRUeXBlIHJpZ2h0ID0gbm9k
ZS0+Y2hpbGQyKCktPnByZWRpY3Rpb24oKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYg
KGxlZnQgJiYgcmlnaHQpIHsKKyAgICAgICAgICAgICAgICAvLyBGSVhNRTogV2UncmUgY3VycmVu
dGx5IHJlbHlpbmcgb24gcHJlZGljdGlvbiBwcm9wYWdhdGlvbiBhbmQgYmFja3dhcmRzIHByb3Bh
Z2F0aW9uCisgICAgICAgICAgICAgICAgLy8gd2hlbmV2ZXIgd2UgY2FuLCBhbmQgb25seSBmYWxs
aW5nIGJhY2sgb24gcmVzdWx0IGZsYWdzIGlmIHRoYXQgZmFpbHMuIEFuZCB0aGUgcmVzdWx0Cisg
ICAgICAgICAgICAgICAgLy8gZmxhZ3MgbG9naWMgZG9lc24ndCBrbm93IGhvdyB0byB1c2UgYmFj
a3dhcmRzIHByb3BhZ2F0aW9uLiBXZSBzaG91bGQgZ2V0IHJpZCBvZiB0aGUKKyAgICAgICAgICAg
ICAgICAvLyBwcmVkaWN0aW9uIHByb3BhZ2F0aW9uIGxvZ2ljIGFuZCByZWx5IHNvbGVseSBvbiB0
aGUgcmVzdWx0IHR5cGUuCiAgICAgICAgICAgICAgICAgaWYgKGlzRnVsbE51bWJlck9yQm9vbGVh
blNwZWN1bGF0aW9uRXhwZWN0aW5nRGVmaW5lZChsZWZ0KQogICAgICAgICAgICAgICAgICAgICAm
JiBpc0Z1bGxOdW1iZXJPckJvb2xlYW5TcGVjdWxhdGlvbkV4cGVjdGluZ0RlZmluZWQocmlnaHQp
KSB7CiAgICAgICAgICAgICAgICAgICAgIGlmIChtX2dyYXBoLmJpbmFyeUFyaXRoU2hvdWxkU3Bl
Y3VsYXRlSW50MzIobm9kZSwgbV9wYXNzKSkKQEAgLTI3NSw4ICsyODgsMTQgQEAgcHJpdmF0ZToK
ICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKFNwZWNJ
bnQ1Mk9ubHkpOwogICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAg
ICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihzcGVjdWxhdGVkRG91YmxlVHlwZUZvclBy
ZWRpY3Rpb25zKGxlZnQsIHJpZ2h0KSk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlCi0gICAgICAg
ICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKFNwZWNJbnQzMk9ubHkgfCBT
cGVjQnl0ZWNvZGVEb3VibGUpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICAgICAgICAgIGlmIChub2RlLT5tYXlIYXZlTm9uSW50UmVzdWx0KCkKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHx8IChsZWZ0ICYgU3BlY0J5dGVjb2RlRG91YmxlKQorICAgICAgICAgICAgICAg
ICAgICAgICAgfHwgKHJpZ2h0ICYgU3BlY0J5dGVjb2RlRG91YmxlKSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKFNwZWNJbnQzMk9ubHkgfCBTcGVj
Qnl0ZWNvZGVEb3VibGUpOworICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAg
ICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjSW50MzJPbmx5KTsKKyAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQuaAkocmV2aXNpb24gMjAwNTgyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNjcyLDIzICsxNjcyLDYgQEAgcHVi
bGljOgogICAgIH0KICNlbHNlIC8vIFVTRShKU1ZBTFVFMzJfNjQpCiAKLS8vIEVuY29kZWRKU1Zh
bHVlIGluIEpTVkFMVUUzMl82NCBpcyBhIDY0LWJpdCBpbnRlZ2VyLiBXaGVuIGJlaW5nIGNvbXBp
bGVkIGluIEFSTSBFQUJJLCBpdCBtdXN0IGJlIGFsaWduZWQgb24gYW4gZXZlbi1udW1iZXJlZCBy
ZWdpc3RlciAocjAsIHIyIG9yIFtzcF0pLgotLy8gVG8gcHJldmVudCB0aGUgYXNzZW1ibGVyIGZy
b20gdXNpbmcgd3JvbmcgcmVnaXN0ZXJzLCBsZXQncyBvY2N1cHkgcjEgb3IgcjMgd2l0aCBhIGR1
bW15IGFyZ3VtZW50IHdoZW4gbmVjZXNzYXJ5LgotI2lmIChDT01QSUxFUl9TVVBQT1JUUyhFQUJJ
KSAmJiBDUFUoQVJNKSkgfHwgQ1BVKE1JUFMpCi0jZGVmaW5lIEVBQklfMzJCSVRfRFVNTVlfQVJH
ICAgICAgVHJ1c3RlZEltbTMyKDApLAotI2Vsc2UKLSNkZWZpbmUgRUFCSV8zMkJJVF9EVU1NWV9B
UkcKLSNlbmRpZgotCi0vLyBKU1ZBTFVFMzJfNjQgaXMgYSA2NC1iaXQgaW50ZWdlciB0aGF0IGNh
bm5vdCBiZSBwdXQgaGFsZiBpbiBhbiBhcmd1bWVudCByZWdpc3RlciBhbmQgaGFsZiBvbiBzdGFj
ayB3aGVuIHVzaW5nIFNINCBhcmNoaXRlY3R1cmUuCi0vLyBUbyBhdm9pZCB0aGlzLCBsZXQncyBv
Y2N1cHkgdGhlIDR0aCBhcmd1bWVudCByZWdpc3RlciAocjcpIHdpdGggYSBkdW1teSBhcmd1bWVu
dCB3aGVuIG5lY2Vzc2FyeS4gVGhpcyBtdXN0IG9ubHkgYmUgZG9uZSB3aGVuIHRoZXJlCi0vLyBp
cyBubyBvdGhlciAzMi1iaXQgdmFsdWUgYXJndW1lbnQgYmVoaW5kIHRoaXMgNjQtYml0IEpTVmFs
dWUuCi0jaWYgQ1BVKFNINCkKLSNkZWZpbmUgU0g0XzMyQklUX0RVTU1ZX0FSRyAgICAgIFRydXN0
ZWRJbW0zMigwKSwKLSNlbHNlCi0jZGVmaW5lIFNINF8zMkJJVF9EVU1NWV9BUkcKLSNlbmRpZgot
CiAgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FT0pJ
VWkgb3BlcmF0aW9uLCBHUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzJUYWcsIEdQUlJlZyBhcmcyUGF5
bG9hZCwgVW5pcXVlZFN0cmluZ0ltcGwqIGltcGwsIHVuc2lnbmVkIHZhbHVlKQogICAgIHsKICAg
ICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFyZzJQYXlsb2Fk
LCBhcmcyVGFnLCBUcnVzdGVkSW1tUHRyKGltcGwpLCBUcnVzdGVkSW1tMzIodmFsdWUpKTsKQEAg
LTIxMTMsOCArMjA5Niw2IEBAIHB1YmxpYzoKICAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNX
aXRoRXhlY1N0YXRlKGFyZzEsIFRydXN0ZWRJbW1QdHIoaWRlbnRPcDIpLCBUcnVzdGVkSW1tMzIo
b3AzKSwgYXJnNCwgYXJnNSk7CiAgICAgICAgIHJldHVybiBhcHBlbmRDYWxsKG9wZXJhdGlvbik7
CiAgICAgfQotI3VuZGVmIEVBQklfMzJCSVRfRFVNTVlfQVJHCi0jdW5kZWYgU0g0XzMyQklUX0RV
TU1ZX0FSRwogICAgIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0aW9uVHlwZT4KICAgICBK
SVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExPU1JFeGl0Q29tcGlsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhpdENvbXBpbGVyLmNwcAkocmV2aXNpb24gMjAwNTgyKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JFeGl0Q29tcGlsZXIuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0y
MDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMjg0LDggKzI4NCw4IEBAIHN0YXRpYyB2b2lkIGNvbXBpbGVTdHViKAog
ICAgICAgICAgICAgfQogICAgICAgICB9CiAKLSAgICAgICAgaWYgKCEhZXhpdC5tX2Rlc2NyaXB0
b3ItPm1fdmFsdWVQcm9maWxlKQotICAgICAgICAgICAgaml0LnN0b3JlNjQoR1BSSW5mbzo6cmVn
VDAsIGV4aXQubV9kZXNjcmlwdG9yLT5tX3ZhbHVlUHJvZmlsZS5nZXRTcGVjRmFpbEJ1Y2tldCgw
KSk7CisgICAgICAgIGlmIChleGl0Lm1fZGVzY3JpcHRvci0+bV92YWx1ZVByb2ZpbGUpCisgICAg
ICAgICAgICBleGl0Lm1fZGVzY3JpcHRvci0+bV92YWx1ZVByb2ZpbGUuZW1pdFJlcG9ydFZhbHVl
KGppdCwgSlNWYWx1ZVJlZ3MoR1BSSW5mbzo6cmVnVDApKTsKICAgICB9CiAKICAgICAvLyBNYXRl
cmlhbGl6ZSBhbGwgb2JqZWN0cy4gRG9uJ3QgbWF0ZXJpYWxpemUgYW4gb2JqZWN0IHVudGlsIGFs
bApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCShy
ZXZpc2lvbiAyMDA1ODIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVs
cGVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC02NTMsMTEgKzY1Myw2IEBAIHB1YmxpYzoKICNlbmRp
ZgogICAgIH0KIAotICAgIGVudW0gVGFnUmVnaXN0ZXJzTW9kZSB7Ci0gICAgICAgIERvTm90SGF2
ZVRhZ1JlZ2lzdGVycywKLSAgICAgICAgSGF2ZVRhZ1JlZ2lzdGVycwotICAgIH07Ci0KICAgICBK
dW1wIGJyYW5jaElmTm90Q2VsbChHUFJSZWcgcmVnLCBUYWdSZWdpc3RlcnNNb2RlIG1vZGUgPSBI
YXZlVGFnUmVnaXN0ZXJzKQogICAgIHsKICNpZiBVU0UoSlNWQUxVRTY0KQpAQCAtNzgzLDYgKzc3
OCwxOCBAQCBwdWJsaWM6CiAjZW5kaWYKICAgICB9CiAKKyAgICBKdW1wIGJyYW5jaElmTm90RG91
YmxlS25vd25Ob3RJbnQzMihKU1ZhbHVlUmVncyByZWdzLCBUYWdSZWdpc3RlcnNNb2RlIG1vZGUg
PSBIYXZlVGFnUmVnaXN0ZXJzKQorICAgIHsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICBp
ZiAobW9kZSA9PSBIYXZlVGFnUmVnaXN0ZXJzKQorICAgICAgICAgICAgcmV0dXJuIGJyYW5jaFRl
c3Q2NChaZXJvLCByZWdzLmdwcigpLCBHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIpOwor
ICAgICAgICByZXR1cm4gYnJhbmNoVGVzdDY0KFplcm8sIHJlZ3MuZ3ByKCksIFRydXN0ZWRJbW02
NChUYWdUeXBlTnVtYmVyKSk7CisjZWxzZQorICAgICAgICBVTlVTRURfUEFSQU0obW9kZSk7Cisg
ICAgICAgIHJldHVybiBicmFuY2gzMihBYm92ZU9yRXF1YWwsIHJlZ3MudGFnR1BSKCksIFRydXN0
ZWRJbW0zMihKU1ZhbHVlOjpMb3dlc3RUYWcpKTsKKyNlbmRpZgorICAgIH0KKwogICAgIC8vIE5v
dGUgdGhhdCB0aGUgdGVtcEdQUiBpcyBub3QgdXNlZCBpbiAzMi1iaXQgbW9kZS4KICAgICBKdW1w
IGJyYW5jaElmQm9vbGVhbihKU1ZhbHVlUmVncyByZWdzLCBHUFJSZWcgdGVtcEdQUikKICAgICB7
CkBAIC04NDgsNyArODU1LDggQEAgcHVibGljOgogICAgIH0KIAogICAgIEp1bXBMaXN0IGJyYW5j
aElmTm90VHlwZSgKLSAgICAgICAgSlNWYWx1ZVJlZ3MsIEdQUlJlZyB0ZW1wR1BSLCBjb25zdCBJ
bmZlcnJlZFR5cGU6OkRlc2NyaXB0b3ImLCBUYWdSZWdpc3RlcnNNb2RlKTsKKyAgICAgICAgSlNW
YWx1ZVJlZ3MsIEdQUlJlZyB0ZW1wR1BSLCBjb25zdCBJbmZlcnJlZFR5cGU6OkRlc2NyaXB0b3Im
LAorICAgICAgICBUYWdSZWdpc3RlcnNNb2RlID0gSGF2ZVRhZ1JlZ2lzdGVycyk7CiAKICAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBUPgogICAgIEp1bXAgYnJhbmNoU3RydWN0dXJlKFJlbGF0aW9uYWxD
b25kaXRpb24gY29uZGl0aW9uLCBUIGxlZnRIYW5kU2lkZSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUp
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgJKHJldmlzaW9u
IDIwMDU4MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgJKHdv
cmtpbmcgY29weSkKQEAgLTQwLDYgKzQwLDIzIEBAIG5hbWVzcGFjZSBKU0MgewogI2RlZmluZSBQ
T0tFX0FSR1VNRU5UX09GRlNFVCAwCiAjZW5kaWYKIAorLy8gRW5jb2RlZEpTVmFsdWUgaW4gSlNW
QUxVRTMyXzY0IGlzIGEgNjQtYml0IGludGVnZXIuIFdoZW4gYmVpbmcgY29tcGlsZWQgaW4gQVJN
IEVBQkksIGl0IG11c3QgYmUgYWxpZ25lZCBldmVuLW51bWJlcmVkIHJlZ2lzdGVyIChyMCwgcjIg
b3IgW3NwXSkuCisvLyBUbyBhdm9pZCBhc3NlbWJsaWVzIGZyb20gdXNpbmcgd3JvbmcgcmVnaXN0
ZXJzLCBsZXQncyBvY2N1cHkgcjEgb3IgcjMgd2l0aCBhIGR1bW15IGFyZ3VtZW50IHdoZW4gbmVj
ZXNzYXJ5LgorI2lmIChDT01QSUxFUl9TVVBQT1JUUyhFQUJJKSAmJiBDUFUoQVJNKSkgfHwgQ1BV
KE1JUFMpCisjZGVmaW5lIEVBQklfMzJCSVRfRFVNTVlfQVJHICAgICAgVHJ1c3RlZEltbTMyKDAp
LAorI2Vsc2UKKyNkZWZpbmUgRUFCSV8zMkJJVF9EVU1NWV9BUkcKKyNlbmRpZgorCisvLyBKU1ZB
TFVFMzJfNjQgaXMgYSA2NC1iaXQgaW50ZWdlciB0aGF0IGNhbm5vdCBiZSBwdXQgaGFsZiBpbiBh
biBhcmd1bWVudCByZWdpc3RlciBhbmQgaGFsZiBvbiBzdGFjayB3aGVuIHVzaW5nIFNINCBhcmNo
aXRlY3R1cmUuCisvLyBUbyBhdm9pZCB0aGlzLCBsZXQncyBvY2N1cHkgdGhlIDR0aCBhcmd1bWVu
dCByZWdpc3RlciAocjcpIHdpdGggYSBkdW1teSBhcmd1bWVudCB3aGVuIG5lY2Vzc2FyeS4gVGhp
cyBtdXN0IG9ubHkgYmUgZG9uZSB3aGVuIHRoZXJlCisvLyBpcyBubyBvdGhlciAzMi1iaXQgdmFs
dWUgYXJndW1lbnQgYmVoaW5kIHRoaXMgNjQtYml0IEpTVmFsdWUuCisjaWYgQ1BVKFNINCkKKyNk
ZWZpbmUgU0g0XzMyQklUX0RVTU1ZX0FSRyAgICAgIFRydXN0ZWRJbW0zMigwKSwKKyNlbHNlCisj
ZGVmaW5lIFNINF8zMkJJVF9EVU1NWV9BUkcKKyNlbmRpZgorCiBjbGFzcyBDQ2FsbEhlbHBlcnMg
OiBwdWJsaWMgQXNzZW1ibHlIZWxwZXJzIHsKIHB1YmxpYzoKICAgICBDQ2FsbEhlbHBlcnMoVk0q
IHZtLCBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IDApCkBAIC0yMTIyLDYgKzIxMzksMTUgQEAgcHVi
bGljOgogICAgIH0KICNlbmRpZgogICAgIAorICAgIHZvaWQgc2V0dXBBcmd1bWVudHNXaXRoRXhl
Y1N0YXRlKEpTVmFsdWVSZWdzIGFyZzEsIEpTVmFsdWVSZWdzIGFyZzIsIFRydXN0ZWRJbW1QdHIg
YXJnMykKKyAgICB7CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICAgICAgc2V0dXBBcmd1bWVudHNX
aXRoRXhlY1N0YXRlKGFyZzEuZ3ByKCksIGFyZzIuZ3ByKCksIGFyZzMpOworI2Vsc2UKKyAgICAg
ICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEVBQklfMzJCSVRfRFVNTVlfQVJHIGFyZzEu
cGF5bG9hZEdQUigpLCBhcmcxLnRhZ0dQUigpLCBhcmcyLnBheWxvYWRHUFIoKSwgYXJnMi50YWdH
UFIoKSwgYXJnMyk7CisjZW5kaWYKKyAgICB9CisgICAgCiAgICAgdm9pZCBzZXR1cEFyZ3VtZW50
cyhKU1ZhbHVlUmVncyBhcmcxKQogICAgIHsKICNpZiBVU0UoSlNWQUxVRTY0KQpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9HUFJJbmZvLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9HUFJJbmZvLmgJKHJldmlzaW9uIDIwMDU4MikKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvR1BSSW5mby5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMy0yMDE1IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMy0yMDE2IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtMTM5LDYgKzEzOSwxMSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBtX2Jhc2U7CiAgICAg
fQogICAgIAorICAgIEpTVmFsdWVSZWdzIHJlZ3MoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0
dXJuIEpTVmFsdWVSZWdzKGdwcigpKTsKKyAgICB9CisgICAgCiAgICAgTWFjcm9Bc3NlbWJsZXI6
OkFkZHJlc3MgYXNBZGRyZXNzKCkgY29uc3QgeyByZXR1cm4gTWFjcm9Bc3NlbWJsZXI6OkFkZHJl
c3MoYmFzZSgpLCBvZmZzZXQoKSk7IH0KICAgICAKIHByaXZhdGU6CkBAIC0zMDYsNiArMzExLDEx
IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludDMyX3Q+KG1fdGFnVHlw
ZSk7CiAgICAgfQogICAgIAorICAgIEpTVmFsdWVSZWdzIHJlZ3MoKSBjb25zdAorICAgIHsKKyAg
ICAgICAgcmV0dXJuIEpTVmFsdWVSZWdzKHRhZ0dQUigpLCBwYXlsb2FkR1BSKCkpOworICAgIH0K
KyAgICAKICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyBhc0FkZHJlc3ModW5zaWduZWQgYWRk
aXRpb25hbE9mZnNldCA9IDApIGNvbnN0IHsgcmV0dXJuIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNz
KGJhc2UoKSwgb2Zmc2V0KCkgKyBhZGRpdGlvbmFsT2Zmc2V0KTsgfQogICAgIAogcHJpdmF0ZToK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSW50cmluc2ljRW1pdHRlci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9JbnRyaW5zaWNFbWl0dGVyLmNw
cAkocmV2aXNpb24gMjAwNTgyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9JbnRyaW5z
aWNFbWl0dGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC03OCw3ICs3OCw3IEBAIHZvaWQgQWNjZXNzQ2Fz
ZTo6ZW1pdEludHJpbnNpY0dldHRlcihBY2MKICAgICBzd2l0Y2ggKGludHJpbnNpYygpKSB7CiAg
ICAgY2FzZSBUeXBlZEFycmF5TGVuZ3RoSW50cmluc2ljOiB7CiAgICAgICAgIGppdC5sb2FkMzIo
TWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3RhdGUuYmFzZUdQUiwgSlNBcnJheUJ1ZmZlclZpZXc6
Om9mZnNldE9mTGVuZ3RoKCkpLCB2YWx1ZUdQUik7Ci0gICAgICAgIGppdC5ib3hJbnQzMih2YWx1
ZUdQUiwgdmFsdWVSZWdzLCBDQ2FsbEhlbHBlcnM6OkRvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7Cisg
ICAgICAgIGppdC5ib3hJbnQzMih2YWx1ZUdQUiwgdmFsdWVSZWdzKTsKICAgICAgICAgc3RhdGUu
c3VjY2VlZCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtOTMsNyArOTMsNyBAQCB2b2lk
IEFjY2Vzc0Nhc2U6OmVtaXRJbnRyaW5zaWNHZXR0ZXIoQWNjCiAgICAgICAgICAgICBqaXQubHNo
aWZ0MzIodmFsdWVHUFIsIEltbTMyKGxvZ0VsZW1lbnRTaXplKHR5cGUpKSwgdmFsdWVHUFIpOwog
ICAgICAgICB9CiAKLSAgICAgICAgaml0LmJveEludDMyKHZhbHVlR1BSLCB2YWx1ZVJlZ3MsIEND
YWxsSGVscGVyczo6RG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsKKyAgICAgICAgaml0LmJveEludDMy
KHZhbHVlR1BSLCB2YWx1ZVJlZ3MpOwogICAgICAgICBzdGF0ZS5zdWNjZWVkKCk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CkBAIC0xMTksNyArMTE5LDcgQEAgdm9pZCBBY2Nlc3NDYXNlOjplbWl0
SW50cmluc2ljR2V0dGVyKEFjYwogICAgICAgICAKICAgICAgICAgZG9uZS5saW5rKCZqaXQpOwog
ICAgICAgICAKLSAgICAgICAgaml0LmJveEludDMyKHZhbHVlR1BSLCB2YWx1ZVJlZ3MsIENDYWxs
SGVscGVyczo6RG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsKKyAgICAgICAgaml0LmJveEludDMyKHZh
bHVlR1BSLCB2YWx1ZVJlZ3MpOwogICAgICAgICBzdGF0ZS5zdWNjZWVkKCk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgJKHJldmlzaW9uIDIwMDU4
MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgJKHdvcmtpbmcgY29weSkKQEAg
LTc1Miw2ICs3NTIsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICNlbmRpZgogICAgICAgICBNYWNyb0Fz
c2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSSwgaW50LCBHUFJS
ZWcsIFVuaXF1ZWRTdHJpbmdJbXBsKik7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNh
bGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpKLCBpbnQsIEdQUlJlZywgR1BSUmVnKTsKKyAg
ICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9F
SkpScCwgSlNWYWx1ZVJlZ3MsIEpTVmFsdWVSZWdzLCBKU1ZhbHVlUmVncywgUmVzdWx0UHJvZmls
ZSopOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3Bl
cmF0aW9uX0VKSkFwLCBpbnQsIEdQUlJlZywgR1BSUmVnLCBBcnJheVByb2ZpbGUqKTsKICAgICAg
ICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkpC
eSwgaW50LCBHUFJSZWcsIEdQUlJlZywgQnlWYWxJbmZvKik7CiAgICAgICAgIE1hY3JvQXNzZW1i
bGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oWl9KSVRPcGVyYXRpb25fRUpPSiwgR1BSUmVnLCBHUFJS
ZWcsIEdQUlJlZyk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFkZEdlbmVy
YXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBZGRH
ZW5lcmF0b3IuY3BwCShyZXZpc2lvbiAyMDA1ODIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVEFkZEdlbmVyYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTI4LDYgKzEyOCw5IEBAIHZv
aWQgSklUQWRkR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKEMKIAogICAgIC8vIERvIGRvdWJs
ZVZhciArIGRvdWJsZVZhci4KICAgICBqaXQuYWRkRG91YmxlKG1fcmlnaHRGUFIsIG1fbGVmdEZQ
Uik7CisgICAgaWYgKG1fcmVzdWx0UHJvZmlsZSkKKyAgICAgICAgbV9yZXN1bHRQcm9maWxlLT5l
bWl0U2V0RG91YmxlKGppdCk7CisgICAgICAgIAogICAgIGppdC5ib3hEb3VibGUobV9sZWZ0RlBS
LCBtX3Jlc3VsdCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQWRk
R2VuZXJhdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRB
ZGRHZW5lcmF0b3IuaAkocmV2aXNpb24gMjAwNTgyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRBZGRHZW5lcmF0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNyw3ICszNyw4IEBAIGNsYXNz
IEpJVEFkZEdlbmVyYXRvciB7CiBwdWJsaWM6CiAgICAgSklUQWRkR2VuZXJhdG9yKFNuaXBwZXRP
cGVyYW5kIGxlZnRPcGVyYW5kLCBTbmlwcGV0T3BlcmFuZCByaWdodE9wZXJhbmQsCiAgICAgICAg
IEpTVmFsdWVSZWdzIHJlc3VsdCwgSlNWYWx1ZVJlZ3MgbGVmdCwgSlNWYWx1ZVJlZ3MgcmlnaHQs
Ci0gICAgICAgIEZQUlJlZyBsZWZ0RlBSLCBGUFJSZWcgcmlnaHRGUFIsIEdQUlJlZyBzY3JhdGNo
R1BSLCBGUFJSZWcgc2NyYXRjaEZQUikKKyAgICAgICAgRlBSUmVnIGxlZnRGUFIsIEZQUlJlZyBy
aWdodEZQUiwgR1BSUmVnIHNjcmF0Y2hHUFIsIEZQUlJlZyBzY3JhdGNoRlBSLAorICAgICAgICBS
ZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlID0gbnVsbHB0cikKICAgICAgICAgOiBtX2xlZnRP
cGVyYW5kKGxlZnRPcGVyYW5kKQogICAgICAgICAsIG1fcmlnaHRPcGVyYW5kKHJpZ2h0T3BlcmFu
ZCkKICAgICAgICAgLCBtX3Jlc3VsdChyZXN1bHQpCkBAIC00Nyw2ICs0OCw3IEBAIHB1YmxpYzoK
ICAgICAgICAgLCBtX3JpZ2h0RlBSKHJpZ2h0RlBSKQogICAgICAgICAsIG1fc2NyYXRjaEdQUihz
Y3JhdGNoR1BSKQogICAgICAgICAsIG1fc2NyYXRjaEZQUihzY3JhdGNoRlBSKQorICAgICAgICAs
IG1fcmVzdWx0UHJvZmlsZShyZXN1bHRQcm9maWxlKQogICAgIHsKICAgICAgICAgQVNTRVJUKCFt
X2xlZnRPcGVyYW5kLmlzQ29uc3RJbnQzMigpIHx8ICFtX3JpZ2h0T3BlcmFuZC5pc0NvbnN0SW50
MzIoKSk7CiAgICAgfQpAQCAtNjcsNiArNjksNyBAQCBwcml2YXRlOgogICAgIEZQUlJlZyBtX3Jp
Z2h0RlBSOwogICAgIEdQUlJlZyBtX3NjcmF0Y2hHUFI7CiAgICAgRlBSUmVnIG1fc2NyYXRjaEZQ
UjsKKyAgICBSZXN1bHRQcm9maWxlKiBtX3Jlc3VsdFByb2ZpbGU7CiAgICAgYm9vbCBtX2RpZEVt
aXRGYXN0UGF0aCB7IGZhbHNlIH07CiAKICAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IG1fZW5k
SnVtcExpc3Q7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0aWMu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQXJpdGhtZXRp
Yy5jcHAJKHJldmlzaW9uIDIwMDU4MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
QXJpdGhtZXRpYy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDA4LCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAwOCwgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNjk2LDYgKzY5NiwxMCBA
QCB2b2lkIEpJVDo6ZW1pdF9vcF9hZGQoSW5zdHJ1Y3Rpb24qIGN1cnJlCiAgICAgRlBSUmVnIHNj
cmF0Y2hGUFIgPSBmcFJlZ1QyOwogI2VuZGlmCiAKKyAgICBSZXN1bHRQcm9maWxlKiByZXN1bHRQ
cm9maWxlID0gbnVsbHB0cjsKKyAgICBpZiAoc2hvdWxkRW1pdFByb2ZpbGluZygpKQorICAgICAg
ICByZXN1bHRQcm9maWxlID0gbV9jb2RlQmxvY2stPmVuc3VyZVJlc3VsdFByb2ZpbGUobV9ieXRl
Y29kZU9mZnNldCk7CisKICAgICBTbmlwcGV0T3BlcmFuZCBsZWZ0T3BlcmFuZCh0eXBlcy5maXJz
dCgpKTsKICAgICBTbmlwcGV0T3BlcmFuZCByaWdodE9wZXJhbmQodHlwZXMuc2Vjb25kKCkpOwog
CkBAIC03MTIsNyArNzE2LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfYWRkKEluc3RydWN0aW9uKiBj
dXJyZQogICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKG9wMiwgcmlnaHRSZWdzKTsKIAog
ICAgIEpJVEFkZEdlbmVyYXRvciBnZW4obGVmdE9wZXJhbmQsIHJpZ2h0T3BlcmFuZCwgcmVzdWx0
UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVncywKLSAgICAgICAgZnBSZWdUMCwgZnBSZWdUMSwgc2Ny
YXRjaEdQUiwgc2NyYXRjaEZQUik7CisgICAgICAgIGZwUmVnVDAsIGZwUmVnVDEsIHNjcmF0Y2hH
UFIsIHNjcmF0Y2hGUFIsIHJlc3VsdFByb2ZpbGUpOwogCiAgICAgZ2VuLmdlbmVyYXRlRmFzdFBh
dGgoKnRoaXMpOwogCkBAIC03MjQsOCArNzI4LDE3IEBAIHZvaWQgSklUOjplbWl0X29wX2FkZChJ
bnN0cnVjdGlvbiogY3VycmUKICAgICB9IGVsc2UgewogICAgICAgICBBU1NFUlQoZ2VuLmVuZEp1
bXBMaXN0KCkuZW1wdHkoKSk7CiAgICAgICAgIEFTU0VSVChnZW4uc2xvd1BhdGhKdW1wTGlzdCgp
LmVtcHR5KCkpOwotICAgICAgICBKSVRTbG93UGF0aENhbGwgc2xvd1BhdGhDYWxsKHRoaXMsIGN1
cnJlbnRJbnN0cnVjdGlvbiwgc2xvd19wYXRoX2FkZCk7Ci0gICAgICAgIHNsb3dQYXRoQ2FsbC5j
YWxsKCk7CisgICAgICAgIGlmIChyZXN1bHRQcm9maWxlKSB7CisgICAgICAgICAgICBpZiAobGVm
dE9wZXJhbmQuaXNDb25zdCgpKQorICAgICAgICAgICAgICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0
ZXIob3AxLCBsZWZ0UmVncyk7CisgICAgICAgICAgICBpZiAocmlnaHRPcGVyYW5kLmlzQ29uc3Qo
KSkKKyAgICAgICAgICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKG9wMiwgcmlnaHRSZWdz
KTsKKyAgICAgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uVmFsdWVBZGRQcm9maWxlZCwg
cmVzdWx0UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVncywgcmVzdWx0UHJvZmlsZSk7CisgICAgICAg
ICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKHJlc3VsdCwgcmVzdWx0UmVncyk7CisgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICBKSVRTbG93UGF0aENhbGwgc2xvd1BhdGhDYWxsKHRoaXMs
IGN1cnJlbnRJbnN0cnVjdGlvbiwgc2xvd19wYXRoX2FkZCk7CisgICAgICAgICAgICBzbG93UGF0
aENhbGwuY2FsbCgpOworICAgICAgICB9CiAgICAgfQogfQogCkBAIC03MzMsOCArNzQ2LDQxIEBA
IHZvaWQgSklUOjplbWl0U2xvd19vcF9hZGQoSW5zdHJ1Y3Rpb24qIGMKIHsKICAgICBsaW5rQWxs
U2xvd0Nhc2VzRm9yQnl0ZWNvZGVPZmZzZXQobV9zbG93Q2FzZXMsIGl0ZXIsIG1fYnl0ZWNvZGVP
ZmZzZXQpOwogCi0gICAgSklUU2xvd1BhdGhDYWxsIHNsb3dQYXRoQ2FsbCh0aGlzLCBjdXJyZW50
SW5zdHJ1Y3Rpb24sIHNsb3dfcGF0aF9hZGQpOwotICAgIHNsb3dQYXRoQ2FsbC5jYWxsKCk7Cisg
ICAgaW50IHJlc3VsdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CisgICAgaW50
IG9wMSA9IGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQ7CisgICAgaW50IG9wMiA9IGN1
cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7CisgICAgT3BlcmFuZFR5cGVzIHR5cGVzID0g
T3BlcmFuZFR5cGVzOjpmcm9tSW50KGN1cnJlbnRJbnN0cnVjdGlvbls0XS51Lm9wZXJhbmQpOwor
CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICBKU1ZhbHVlUmVncyBsZWZ0UmVncyA9IEpTVmFsdWVS
ZWdzKHJlZ1QwKTsKKyAgICBKU1ZhbHVlUmVncyByaWdodFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdU
MSk7CisgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IGxlZnRSZWdzOworI2Vsc2UKKyAgICBK
U1ZhbHVlUmVncyBsZWZ0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCk7CisgICAgSlNW
YWx1ZVJlZ3MgcmlnaHRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDMsIHJlZ1QyKTsKKyAgICBKU1Zh
bHVlUmVncyByZXN1bHRSZWdzID0gbGVmdFJlZ3M7CisjZW5kaWYKKyAgICAKKyAgICBTbmlwcGV0
T3BlcmFuZCBsZWZ0T3BlcmFuZCh0eXBlcy5maXJzdCgpKTsKKyAgICBTbmlwcGV0T3BlcmFuZCBy
aWdodE9wZXJhbmQodHlwZXMuc2Vjb25kKCkpOworCisgICAgaWYgKGlzT3BlcmFuZENvbnN0YW50
SW50KG9wMSkpCisgICAgICAgIGxlZnRPcGVyYW5kLnNldENvbnN0SW50MzIoZ2V0T3BlcmFuZENv
bnN0YW50SW50KG9wMSkpOworICAgIGVsc2UgaWYgKGlzT3BlcmFuZENvbnN0YW50SW50KG9wMikp
CisgICAgICAgIHJpZ2h0T3BlcmFuZC5zZXRDb25zdEludDMyKGdldE9wZXJhbmRDb25zdGFudElu
dChvcDIpKTsKKworICAgIGlmIChzaG91bGRFbWl0UHJvZmlsaW5nKCkpIHsKKyAgICAgICAgaWYg
KGxlZnRPcGVyYW5kLmlzQ29uc3QoKSkKKyAgICAgICAgICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0
ZXIob3AxLCBsZWZ0UmVncyk7CisgICAgICAgIGlmIChyaWdodE9wZXJhbmQuaXNDb25zdCgpKQor
ICAgICAgICAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihvcDIsIHJpZ2h0UmVncyk7CisgICAg
ICAgIFJlc3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUgPSBtX2NvZGVCbG9jay0+ZW5zdXJlUmVz
dWx0UHJvZmlsZShtX2J5dGVjb2RlT2Zmc2V0KTsKKyAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVy
YXRpb25WYWx1ZUFkZFByb2ZpbGVkLCByZXN1bHRSZWdzLCBsZWZ0UmVncywgcmlnaHRSZWdzLCBy
ZXN1bHRQcm9maWxlKTsKKyAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihyZXN1bHQsIHJl
c3VsdFJlZ3MpOworICAgIH0gZWxzZSB7CisgICAgICAgIEpJVFNsb3dQYXRoQ2FsbCBzbG93UGF0
aENhbGwodGhpcywgY3VycmVudEluc3RydWN0aW9uLCBzbG93X3BhdGhfYWRkKTsKKyAgICAgICAg
c2xvd1BhdGhDYWxsLmNhbGwoKTsKKyAgICB9CiB9CiAKIHZvaWQgSklUOjplbWl0X29wX2RpdihJ
bnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQpAQCAtODY0LDggKzkxMCwxNyBAQCB2b2lk
IEpJVDo6ZW1pdF9vcF9tdWwoSW5zdHJ1Y3Rpb24qIGN1cnJlCiAgICAgfSBlbHNlIHsKICAgICAg
ICAgQVNTRVJUKGdlbi5lbmRKdW1wTGlzdCgpLmVtcHR5KCkpOwogICAgICAgICBBU1NFUlQoZ2Vu
LnNsb3dQYXRoSnVtcExpc3QoKS5lbXB0eSgpKTsKLSAgICAgICAgSklUU2xvd1BhdGhDYWxsIHNs
b3dQYXRoQ2FsbCh0aGlzLCBjdXJyZW50SW5zdHJ1Y3Rpb24sIHNsb3dfcGF0aF9tdWwpOwotICAg
ICAgICBzbG93UGF0aENhbGwuY2FsbCgpOworICAgICAgICBpZiAocmVzdWx0UHJvZmlsZSkgewor
ICAgICAgICAgICAgaWYgKGxlZnRPcGVyYW5kLmlzUG9zaXRpdmVDb25zdEludDMyKCkpCisgICAg
ICAgICAgICAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihvcDEsIGxlZnRSZWdzKTsKKyAgICAg
ICAgICAgIGlmIChyaWdodE9wZXJhbmQuaXNQb3NpdGl2ZUNvbnN0SW50MzIoKSkKKyAgICAgICAg
ICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKG9wMiwgcmlnaHRSZWdzKTsKKyAgICAgICAg
ICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uVmFsdWVNdWxQcm9maWxlZCwgcmVzdWx0UmVncywg
bGVmdFJlZ3MsIHJpZ2h0UmVncywgcmVzdWx0UHJvZmlsZSk7CisgICAgICAgICAgICBlbWl0UHV0
VmlydHVhbFJlZ2lzdGVyKHJlc3VsdCwgcmVzdWx0UmVncyk7CisgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICBKSVRTbG93UGF0aENhbGwgc2xvd1BhdGhDYWxsKHRoaXMsIGN1cnJlbnRJbnN0
cnVjdGlvbiwgc2xvd19wYXRoX211bCk7CisgICAgICAgICAgICBzbG93UGF0aENhbGwuY2FsbCgp
OworICAgICAgICB9CiAgICAgfQogfQogCkBAIC04NzMsOCArOTI4LDQxIEBAIHZvaWQgSklUOjpl
bWl0U2xvd19vcF9tdWwoSW5zdHJ1Y3Rpb24qIGMKIHsKICAgICBsaW5rQWxsU2xvd0Nhc2VzRm9y
Qnl0ZWNvZGVPZmZzZXQobV9zbG93Q2FzZXMsIGl0ZXIsIG1fYnl0ZWNvZGVPZmZzZXQpOwogICAg
IAotICAgIEpJVFNsb3dQYXRoQ2FsbCBzbG93UGF0aENhbGwodGhpcywgY3VycmVudEluc3RydWN0
aW9uLCBzbG93X3BhdGhfbXVsKTsKLSAgICBzbG93UGF0aENhbGwuY2FsbCgpOworICAgIGludCBy
ZXN1bHQgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOworICAgIGludCBvcDEgPSBj
dXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOworICAgIGludCBvcDIgPSBjdXJyZW50SW5z
dHJ1Y3Rpb25bM10udS5vcGVyYW5kOworICAgIE9wZXJhbmRUeXBlcyB0eXBlcyA9IE9wZXJhbmRU
eXBlczo6ZnJvbUludChjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kKTsKKworI2lmIFVT
RShKU1ZBTFVFNjQpCisgICAgSlNWYWx1ZVJlZ3MgbGVmdFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdU
MCk7CisgICAgSlNWYWx1ZVJlZ3MgcmlnaHRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDEpOworICAg
IEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSBsZWZ0UmVnczsKKyNlbHNlCisgICAgSlNWYWx1ZVJl
Z3MgbGVmdFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMSwgcmVnVDApOworICAgIEpTVmFsdWVSZWdz
IHJpZ2h0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QzLCByZWdUMik7CisgICAgSlNWYWx1ZVJlZ3Mg
cmVzdWx0UmVncyA9IGxlZnRSZWdzOworI2VuZGlmCisKKyAgICBTbmlwcGV0T3BlcmFuZCBsZWZ0
T3BlcmFuZCh0eXBlcy5maXJzdCgpKTsKKyAgICBTbmlwcGV0T3BlcmFuZCByaWdodE9wZXJhbmQo
dHlwZXMuc2Vjb25kKCkpOworCisgICAgaWYgKGlzT3BlcmFuZENvbnN0YW50SW50KG9wMSkpCisg
ICAgICAgIGxlZnRPcGVyYW5kLnNldENvbnN0SW50MzIoZ2V0T3BlcmFuZENvbnN0YW50SW50KG9w
MSkpOworICAgIGVsc2UgaWYgKGlzT3BlcmFuZENvbnN0YW50SW50KG9wMikpCisgICAgICAgIHJp
Z2h0T3BlcmFuZC5zZXRDb25zdEludDMyKGdldE9wZXJhbmRDb25zdGFudEludChvcDIpKTsKKwor
ICAgIGlmIChzaG91bGRFbWl0UHJvZmlsaW5nKCkpIHsKKyAgICAgICAgaWYgKGxlZnRPcGVyYW5k
LmlzUG9zaXRpdmVDb25zdEludDMyKCkpCisgICAgICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lz
dGVyKG9wMSwgbGVmdFJlZ3MpOworICAgICAgICBpZiAocmlnaHRPcGVyYW5kLmlzUG9zaXRpdmVD
b25zdEludDMyKCkpCisgICAgICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKG9wMiwgcmln
aHRSZWdzKTsKKyAgICAgICAgUmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSA9IG1fY29kZUJs
b2NrLT5lbnN1cmVSZXN1bHRQcm9maWxlKG1fYnl0ZWNvZGVPZmZzZXQpOworICAgICAgICBjYWxs
T3BlcmF0aW9uKG9wZXJhdGlvblZhbHVlTXVsUHJvZmlsZWQsIHJlc3VsdFJlZ3MsIGxlZnRSZWdz
LCByaWdodFJlZ3MsIHJlc3VsdFByb2ZpbGUpOworICAgICAgICBlbWl0UHV0VmlydHVhbFJlZ2lz
dGVyKHJlc3VsdCwgcmVzdWx0UmVncyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgSklUU2xvd1Bh
dGhDYWxsIHNsb3dQYXRoQ2FsbCh0aGlzLCBjdXJyZW50SW5zdHJ1Y3Rpb24sIHNsb3dfcGF0aF9t
dWwpOworICAgICAgICBzbG93UGF0aENhbGwuY2FsbCgpOworICAgIH0KIH0KIAogdm9pZCBKSVQ6
OmVtaXRfb3Bfc3ViKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCkBAIC04OTgsNiAr
OTg2LDEwIEBAIHZvaWQgSklUOjplbWl0X29wX3N1YihJbnN0cnVjdGlvbiogY3VycmUKICAgICBG
UFJSZWcgc2NyYXRjaEZQUiA9IGZwUmVnVDI7CiAjZW5kaWYKIAorICAgIFJlc3VsdFByb2ZpbGUq
IHJlc3VsdFByb2ZpbGUgPSBudWxscHRyOworICAgIGlmIChzaG91bGRFbWl0UHJvZmlsaW5nKCkp
CisgICAgICAgIHJlc3VsdFByb2ZpbGUgPSBtX2NvZGVCbG9jay0+ZW5zdXJlUmVzdWx0UHJvZmls
ZShtX2J5dGVjb2RlT2Zmc2V0KTsKKwogICAgIFNuaXBwZXRPcGVyYW5kIGxlZnRPcGVyYW5kKHR5
cGVzLmZpcnN0KCkpOwogICAgIFNuaXBwZXRPcGVyYW5kIHJpZ2h0T3BlcmFuZCh0eXBlcy5zZWNv
bmQoKSk7CiAgICAgCkBAIC05MDUsNyArOTk3LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3Bfc3ViKElu
c3RydWN0aW9uKiBjdXJyZQogICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIob3AyLCByaWdodFJl
Z3MpOwogCiAgICAgSklUU3ViR2VuZXJhdG9yIGdlbihsZWZ0T3BlcmFuZCwgcmlnaHRPcGVyYW5k
LCByZXN1bHRSZWdzLCBsZWZ0UmVncywgcmlnaHRSZWdzLAotICAgICAgICBmcFJlZ1QwLCBmcFJl
Z1QxLCBzY3JhdGNoR1BSLCBzY3JhdGNoRlBSKTsKKyAgICAgICAgZnBSZWdUMCwgZnBSZWdUMSwg
c2NyYXRjaEdQUiwgc2NyYXRjaEZQUiwgcmVzdWx0UHJvZmlsZSk7CiAKICAgICBnZW4uZ2VuZXJh
dGVGYXN0UGF0aCgqdGhpcyk7CiAKQEAgLTkyMCw4ICsxMDEyLDI1IEBAIHZvaWQgSklUOjplbWl0
U2xvd19vcF9zdWIoSW5zdHJ1Y3Rpb24qIGMKIHsKICAgICBsaW5rQWxsU2xvd0Nhc2VzRm9yQnl0
ZWNvZGVPZmZzZXQobV9zbG93Q2FzZXMsIGl0ZXIsIG1fYnl0ZWNvZGVPZmZzZXQpOwogCi0gICAg
SklUU2xvd1BhdGhDYWxsIHNsb3dQYXRoQ2FsbCh0aGlzLCBjdXJyZW50SW5zdHJ1Y3Rpb24sIHNs
b3dfcGF0aF9zdWIpOwotICAgIHNsb3dQYXRoQ2FsbC5jYWxsKCk7CisgICAgaW50IHJlc3VsdCA9
IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAg
ICBKU1ZhbHVlUmVncyBsZWZ0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QwKTsKKyAgICBKU1ZhbHVl
UmVncyByaWdodFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMSk7CisgICAgSlNWYWx1ZVJlZ3MgcmVz
dWx0UmVncyA9IGxlZnRSZWdzOworI2Vsc2UKKyAgICBKU1ZhbHVlUmVncyBsZWZ0UmVncyA9IEpT
VmFsdWVSZWdzKHJlZ1QxLCByZWdUMCk7CisgICAgSlNWYWx1ZVJlZ3MgcmlnaHRSZWdzID0gSlNW
YWx1ZVJlZ3MocmVnVDMsIHJlZ1QyKTsKKyAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0gbGVm
dFJlZ3M7CisjZW5kaWYKKworICAgIGlmIChzaG91bGRFbWl0UHJvZmlsaW5nKCkpIHsKKyAgICAg
ICAgUmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSA9IG1fY29kZUJsb2NrLT5lbnN1cmVSZXN1
bHRQcm9maWxlKG1fYnl0ZWNvZGVPZmZzZXQpOworICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJh
dGlvblZhbHVlU3ViUHJvZmlsZWQsIHJlc3VsdFJlZ3MsIGxlZnRSZWdzLCByaWdodFJlZ3MsIHJl
c3VsdFByb2ZpbGUpOworICAgICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKHJlc3VsdCwgcmVz
dWx0UmVncyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgSklUU2xvd1BhdGhDYWxsIHNsb3dQYXRo
Q2FsbCh0aGlzLCBjdXJyZW50SW5zdHJ1Y3Rpb24sIHNsb3dfcGF0aF9zdWIpOworICAgICAgICBz
bG93UGF0aENhbGwuY2FsbCgpOworICAgIH0KIH0KIAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tIEVORDogT1BfQURELCBPUF9TVUIsIE9QX01VTCAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0gKi8KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5l
cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5o
CShyZXZpc2lvbiAyMDA1ODIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGlu
ZXMuaAkod29ya2luZyBjb3B5KQpAQCAtNDE2LDYgKzQxNiwxNCBAQCBBTFdBWVNfSU5MSU5FIE1h
Y3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6CiAgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0
aW9uQ2hlY2sob3BlcmF0aW9uKTsKIH0KIAoraW5saW5lIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJ
VDo6Y2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkpScCBvcGVyYXRpb24sIEpTVmFsdWVS
ZWdzIHJlc3VsdCwgSlNWYWx1ZVJlZ3MgYXJnMSwgSlNWYWx1ZVJlZ3MgYXJnMiwgUmVzdWx0UHJv
ZmlsZSogcmVzdWx0UHJvZmlsZSkKK3sKKyAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUo
YXJnMSwgYXJnMiwgVHJ1c3RlZEltbVB0cihyZXN1bHRQcm9maWxlKSk7CisgICAgQ2FsbCBjYWxs
ID0gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb24pOworICAgIHNldHVwUmVz
dWx0cyhyZXN1bHQpOworICAgIHJldHVybiBjYWxsOworfQorCiAjaWYgVVNFKEpTVkFMVUU2NCkK
IEFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFpf
SklUT3BlcmF0aW9uX0VKWlogb3BlcmF0aW9uLCBHUFJSZWcgYXJnMSwgaW50MzJfdCBhcmcyLCBp
bnQzMl90IGFyZzMpCiB7CkBAIC02MDIsMjMgKzYxMCw2IEBAIEFMV0FZU19JTkxJTkUgTWFjcm9B
c3NlbWJsZXI6OkNhbGwgSklUOjoKIAogI2Vsc2UgLy8gVVNFKEpTVkFMVUUzMl82NCkKIAotLy8g
RW5jb2RlZEpTVmFsdWUgaW4gSlNWQUxVRTMyXzY0IGlzIGEgNjQtYml0IGludGVnZXIuIFdoZW4g
YmVpbmcgY29tcGlsZWQgaW4gQVJNIEVBQkksIGl0IG11c3QgYmUgYWxpZ25lZCBldmVuLW51bWJl
cmVkIHJlZ2lzdGVyIChyMCwgcjIgb3IgW3NwXSkuCi0vLyBUbyBhdm9pZCBhc3NlbWJsaWVzIGZy
b20gdXNpbmcgd3JvbmcgcmVnaXN0ZXJzLCBsZXQncyBvY2N1cHkgcjEgb3IgcjMgd2l0aCBhIGR1
bW15IGFyZ3VtZW50IHdoZW4gbmVjZXNzYXJ5LgotI2lmIChDT01QSUxFUl9TVVBQT1JUUyhFQUJJ
KSAmJiBDUFUoQVJNKSkgfHwgQ1BVKE1JUFMpCi0jZGVmaW5lIEVBQklfMzJCSVRfRFVNTVlfQVJH
ICAgICAgVHJ1c3RlZEltbTMyKDApLAotI2Vsc2UKLSNkZWZpbmUgRUFCSV8zMkJJVF9EVU1NWV9B
UkcKLSNlbmRpZgotCi0vLyBKU1ZBTFVFMzJfNjQgaXMgYSA2NC1iaXQgaW50ZWdlciB0aGF0IGNh
bm5vdCBiZSBwdXQgaGFsZiBpbiBhbiBhcmd1bWVudCByZWdpc3RlciBhbmQgaGFsZiBvbiBzdGFj
ayB3aGVuIHVzaW5nIFNINCBhcmNoaXRlY3R1cmUuCi0vLyBUbyBhdm9pZCB0aGlzLCBsZXQncyBv
Y2N1cHkgdGhlIDR0aCBhcmd1bWVudCByZWdpc3RlciAocjcpIHdpdGggYSBkdW1teSBhcmd1bWVu
dCB3aGVuIG5lY2Vzc2FyeS4gVGhpcyBtdXN0IG9ubHkgYmUgZG9uZSB3aGVuIHRoZXJlCi0vLyBp
cyBubyBvdGhlciAzMi1iaXQgdmFsdWUgYXJndW1lbnQgYmVoaW5kIHRoaXMgNjQtYml0IEpTVmFs
dWUuCi0jaWYgQ1BVKFNINCkKLSNkZWZpbmUgU0g0XzMyQklUX0RVTU1ZX0FSRyAgICAgIFRydXN0
ZWRJbW0zMigwKSwKLSNlbHNlCi0jZGVmaW5lIFNINF8zMkJJVF9EVU1NWV9BUkcKLSNlbmRpZgot
CiBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbk5v
RXhjZXB0aW9uQ2hlY2soVl9KSVRPcGVyYXRpb25fRUogb3BlcmF0aW9uLCBHUFJSZWcgYXJnMVRh
ZywgR1BSUmVnIGFyZzFQYXlsb2FkKQogewogICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0
ZShFQUJJXzMyQklUX0RVTU1ZX0FSRyBhcmcxUGF5bG9hZCwgYXJnMVRhZyk7CkBAIC04MDAsOSAr
NzkxLDYgQEAgQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OgogICAgIHJl
dHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrU2V0SlNWYWx1ZVJlc3VsdChvcGVyYXRp
b24sIGRzdCk7CiB9CiAKLSN1bmRlZiBFQUJJXzMyQklUX0RVTU1ZX0FSRwotI3VuZGVmIFNINF8z
MkJJVF9EVU1NWV9BUkcKLQogI2VuZGlmIC8vIFVTRShKU1ZBTFVFMzJfNjQpCiAKIEFMV0FZU19J
TkxJTkUgSklUOjpKdW1wIEpJVDo6Y2hlY2tTdHJ1Y3R1cmUoUmVnaXN0ZXJJRCByZWcsIFN0cnVj
dHVyZSogc3RydWN0dXJlKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRNdWxH
ZW5lcmF0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
TXVsR2VuZXJhdG9yLmNwcAkocmV2aXNpb24gMjAwNTgyKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRNdWxHZW5lcmF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTE1Myw2ICsxNTMsNyBA
QCB2b2lkIEpJVE11bEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChDCiAgICAgICAgIENDYWxs
SGVscGVyczo6SnVtcCBkb25lID0gaml0Lmp1bXAoKTsKIAogICAgICAgICBub3ROZWdhdGl2ZVpl
cm8ubGluaygmaml0KTsKKyAgICAgICAgaml0Lm9yMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1t
MzIoUmVzdWx0UHJvZmlsZTo6Tm9uTmVnWmVyb0RvdWJsZSksIENDYWxsSGVscGVyczo6QWJzb2x1
dGVBZGRyZXNzKG1fcmVzdWx0UHJvZmlsZS0+YWRkcmVzc09mRmxhZ3MoKSkpOwogCiAgICAgICAg
IGppdC5tb3ZlKG1fcmVzdWx0LnBheWxvYWRHUFIoKSwgbV9zY3JhdGNoR1BSKTsKICAgICAgICAg
aml0LnVyc2hpZnRQdHIoQ0NhbGxIZWxwZXJzOjpJbW0zMig1MiksIG1fc2NyYXRjaEdQUik7CkBA
IC0xNzQsNiArMTc1LDcgQEAgdm9pZCBKSVRNdWxHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgo
QwogICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgZG9uZSA9IGppdC5qdW1wKCk7CiAKICAgICAg
ICAgbm90TmVnYXRpdmVaZXJvLmxpbmsoJmppdCk7CisgICAgICAgIGppdC5vcjMyKENDYWxsSGVs
cGVyczo6VHJ1c3RlZEltbTMyKFJlc3VsdFByb2ZpbGU6Ok5vbk5lZ1plcm9Eb3VibGUpLCBDQ2Fs
bEhlbHBlcnM6OkFic29sdXRlQWRkcmVzcyhtX3Jlc3VsdFByb2ZpbGUtPmFkZHJlc3NPZkZsYWdz
KCkpKTsKIAogICAgICAgICBqaXQubW92ZShtX3Jlc3VsdC50YWdHUFIoKSwgbV9zY3JhdGNoR1BS
KTsKICAgICAgICAgaml0LnVyc2hpZnRQdHIoQ0NhbGxIZWxwZXJzOjpJbW0zMig1MiAtIDMyKSwg
bV9zY3JhdGNoR1BSKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0
aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVy
YXRpb25zLmNwcAkocmV2aXNpb24gMjAwNTgyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRPcGVyYXRpb25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjI0Myw2ICsyMjQzLDg4IEBA
IEpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25Ub0luZGV4U3QKICAgICByZXR1cm4ganNT
dHJpbmcoZXhlYywgSWRlbnRpZmllcjo6ZnJvbShleGVjLCBpbmRleCkuc3RyaW5nKCkpOwogfQog
CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQWRkKEV4ZWNTdGF0
ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZE9wMikKK3sKKyAgICBWTSogdm0gPSAmZXhlYy0+dm0oKTsKKyAgICBOYXRpdmVDYWxsRnJhbWVU
cmFjZXIgdHJhY2VyKHZtLCBleGVjKTsKKyAgICAKKyAgICBKU1ZhbHVlIG9wMSA9IEpTVmFsdWU6
OmRlY29kZShlbmNvZGVkT3AxKTsKKyAgICBKU1ZhbHVlIG9wMiA9IEpTVmFsdWU6OmRlY29kZShl
bmNvZGVkT3AyKTsKKyAgICAKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQWRkKGV4ZWMs
IG9wMSwgb3AyKSk7Cit9CisKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
VmFsdWVBZGRQcm9maWxlZChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRP
cDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIFJlc3VsdFByb2ZpbGUqIHJlc3VsdFByb2Zp
bGUpCit7CisgICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7CisgICAgTmF0aXZlQ2FsbEZyYW1lVHJh
Y2VyIHRyYWNlcih2bSwgZXhlYyk7CisgICAgCisgICAgSlNWYWx1ZSBvcDEgPSBKU1ZhbHVlOjpk
ZWNvZGUoZW5jb2RlZE9wMSk7CisgICAgSlNWYWx1ZSBvcDIgPSBKU1ZhbHVlOjpkZWNvZGUoZW5j
b2RlZE9wMik7CisgICAgCisgICAgSlNWYWx1ZSByZXN1bHQgPSBqc0FkZChleGVjLCBvcDEsIG9w
Mik7CisgICAgcmVzdWx0UHJvZmlsZS0+ZGV0ZWN0Qml0c0xpZ2h0KHJlc3VsdCk7CisgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOworfQorCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikKK3sKKyAgICBWTSogdm0gPSAm
ZXhlYy0+dm0oKTsKKyAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBleGVjKTsK
KworICAgIEpTVmFsdWUgb3AxID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDEpOworICAgIEpT
VmFsdWUgb3AyID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDIpOworCisgICAgZG91YmxlIGEg
PSBvcDEudG9OdW1iZXIoZXhlYyk7CisgICAgZG91YmxlIGIgPSBvcDIudG9OdW1iZXIoZXhlYyk7
CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihhICogYikpOworfQorCitFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsUHJvZmlsZWQoRXhlY1N0
YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkT3AyLCBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlKQoreworICAgIFZNKiB2bSA9ICZl
eGVjLT52bSgpOworICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGV4ZWMpOwor
CisgICAgSlNWYWx1ZSBvcDEgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMSk7CisgICAgSlNW
YWx1ZSBvcDIgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMik7CisKKyAgICBkb3VibGUgYSA9
IG9wMS50b051bWJlcihleGVjKTsKKyAgICBkb3VibGUgYiA9IG9wMi50b051bWJlcihleGVjKTsK
KyAgICAKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzTnVtYmVyKGEgKiBiKTsKKyAgICByZXN1bHRQ
cm9maWxlLT5kZXRlY3RCaXRzTGlnaHQocmVzdWx0KTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKHJlc3VsdCk7Cit9CisKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
VmFsdWVTdWIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKQoreworICAgIFZNKiB2bSA9ICZleGVjLT52bSgpOworICAg
IE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGV4ZWMpOworICAgIAorICAgIEpTVmFs
dWUgb3AxID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDEpOworICAgIEpTVmFsdWUgb3AyID0g
SlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDIpOworCisgICAgZG91YmxlIGEgPSBvcDEudG9OdW1i
ZXIoZXhlYyk7CisgICAgZG91YmxlIGIgPSBvcDIudG9OdW1iZXIoZXhlYyk7CisgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc051bWJlcihhIC0gYikpOworfQorCitFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlU3ViUHJvZmlsZWQoRXhlY1N0YXRlKiBleGVjLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBSZXN1
bHRQcm9maWxlKiByZXN1bHRQcm9maWxlKQoreworICAgIFZNKiB2bSA9ICZleGVjLT52bSgpOwor
ICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGV4ZWMpOworICAgIAorICAgIEpT
VmFsdWUgb3AxID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDEpOworICAgIEpTVmFsdWUgb3Ay
ID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDIpOworCisgICAgZG91YmxlIGEgPSBvcDEudG9O
dW1iZXIoZXhlYyk7CisgICAgZG91YmxlIGIgPSBvcDIudG9OdW1iZXIoZXhlYyk7CisgICAgCisg
ICAgSlNWYWx1ZSByZXN1bHQgPSBqc051bWJlcihhIC0gYik7CisgICAgcmVzdWx0UHJvZmlsZS0+
ZGV0ZWN0Qml0c0xpZ2h0KHJlc3VsdCk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1
bHQpOworfQorCiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHJvY2Vzc1R5cGVQcm9maWxl
ckxvZyhFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCShyZXZpc2lvbiAyMDA1
ODIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNTMsNiArNTMsNyBAQCBjbGFzcyBXYXRjaHBvaW50U2V0OwogCiBzdHJ1Y3Qg
QnlWYWxJbmZvOwogc3RydWN0IElubGluZUNhbGxGcmFtZTsKK3N0cnVjdCBSZXN1bHRQcm9maWxl
OwogCiB0eXBlZGVmIEV4ZWNTdGF0ZSBDYWxsRnJhbWU7CiAKQEAgLTk2LDYgKzk3LDcgQEAgdHlw
ZWRlZiBjaGFyKiBVbnVzZWRQdHI7CiAgICAgUTogaW50NjRfdAogICAgIFI6IFJlZ2lzdGVyCiAg
ICAgUmVvOiBSZWdFeHBPYmplY3QqCisgICAgUnA6IFJlc3VsdFByb2ZpbGUqCiAgICAgUzogc2l6
ZV90CiAgICAgU3BydDogU2xvd1BhdGhSZXR1cm5UeXBlCiAgICAgU3NpOiBTdHJ1Y3R1cmVTdHVi
SW5mbyoKQEAgLTEzNiw2ICsxMzgsNyBAQCB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04gKCpKCiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJVE9w
ZXJhdGlvbl9FSkpBcCkoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVl
LCBBcnJheVByb2ZpbGUqKTsKIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiAo
KkpfSklUT3BlcmF0aW9uX0VKSkJ5KShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUsIEJ5VmFsSW5mbyopOwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OICgqSl9KSVRPcGVyYXRpb25fRUpKSikoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSk7Cit0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04gKCpKX0pJVE9wZXJhdGlvbl9FSkpScCkoRXhlY1N0YXRlKiwgRW5jb2RlZEpT
VmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBSZXN1bHRQcm9maWxlKik7CiB0eXBlZGVmIEVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJVE9wZXJhdGlvbl9FSnNzWikoRXhlY1N0YXRlKiwg
SlNTdHJpbmcqLCBpbnQzMl90KTsKIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiAoKkpfSklUT3BlcmF0aW9uX0VKc3NSZW8pKEV4ZWNTdGF0ZSosIEpTU3RyaW5nKiwgUmVnRXhw
T2JqZWN0Kik7CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJVE9w
ZXJhdGlvbl9FSnNzUmVvSnNzKShFeGVjU3RhdGUqLCBKU1N0cmluZyosIFJlZ0V4cE9iamVjdCos
IEpTU3RyaW5nKik7CkBAIC00MDYsNiArNDA5LDEzIEBAIEpTQ2VsbCogSklUX09QRVJBVElPTiBv
cGVyYXRpb25HZXRQcm9wZXIKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
TmV4dEVudW1lcmF0b3JQbmFtZShFeGVjU3RhdGUqLCBKU0NlbGwqLCBpbnQzMl90KTsKIEpTQ2Vs
bCogSklUX09QRVJBVElPTiBvcGVyYXRpb25Ub0luZGV4U3RyaW5nKEV4ZWNTdGF0ZSosIGludDMy
X3QpOwogCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQWRkKEV4
ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRPcDIpIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uVmFsdWVBZGRQcm9maWxlZChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3Ax
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBSZXN1bHRQcm9maWxlKikgV1RGX0lOVEVSTkFM
OworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZU11bChFeGVjU3Rh
dGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3Ay
KSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZh
bHVlTXVsUHJvZmlsZWQoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgUmVzdWx0UHJvZmlsZSopIFdURl9JTlRFUk5BTDsKK0Vu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVTdWIoRXhlY1N0YXRlKiwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikgV1RG
X0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZVN1
YlByb2ZpbGVkKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRPcDIsIFJlc3VsdFByb2ZpbGUqKSBXVEZfSU5URVJOQUw7CisKIHZvaWQg
SklUX09QRVJBVElPTiBvcGVyYXRpb25Qcm9jZXNzVHlwZVByb2ZpbGVyTG9nKEV4ZWNTdGF0ZSop
IFdURl9JTlRFUk5BTDsKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25Qcm9jZXNzU2hhZG93
Q2hpY2tlbkxvZyhFeGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7CiAKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUU3ViR2VuZXJhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVFN1YkdlbmVyYXRvci5jcHAJKHJldmlzaW9uIDIwMDU4MikK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3ViR2VuZXJhdG9yLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC04Myw2ICs4Myw5IEBAIHZvaWQgSklUU3ViR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQ
YXRoKEMKICAgICByaWdodFdhc0ludGVnZXIubGluaygmaml0KTsKIAogICAgIGppdC5zdWJEb3Vi
bGUobV9yaWdodEZQUiwgbV9sZWZ0RlBSKTsKKyAgICBpZiAobV9yZXN1bHRQcm9maWxlKQorICAg
ICAgICBtX3Jlc3VsdFByb2ZpbGUtPmVtaXRTZXREb3VibGUoaml0KTsKKwogICAgIGppdC5ib3hE
b3VibGUobV9sZWZ0RlBSLCBtX3Jlc3VsdCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUU3ViR2VuZXJhdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRTdWJHZW5lcmF0b3IuaAkocmV2aXNpb24gMjAwNTgyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdWJHZW5lcmF0b3IuaAkod29ya2luZyBjb3B5KQpAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNyw3
ICszNyw4IEBAIGNsYXNzIEpJVFN1YkdlbmVyYXRvciB7CiBwdWJsaWM6CiAgICAgSklUU3ViR2Vu
ZXJhdG9yKFNuaXBwZXRPcGVyYW5kIGxlZnRPcGVyYW5kLCBTbmlwcGV0T3BlcmFuZCByaWdodE9w
ZXJhbmQsCiAgICAgICAgIEpTVmFsdWVSZWdzIHJlc3VsdCwgSlNWYWx1ZVJlZ3MgbGVmdCwgSlNW
YWx1ZVJlZ3MgcmlnaHQsCi0gICAgICAgIEZQUlJlZyBsZWZ0RlBSLCBGUFJSZWcgcmlnaHRGUFIs
IEdQUlJlZyBzY3JhdGNoR1BSLCBGUFJSZWcgc2NyYXRjaEZQUikKKyAgICAgICAgRlBSUmVnIGxl
ZnRGUFIsIEZQUlJlZyByaWdodEZQUiwgR1BSUmVnIHNjcmF0Y2hHUFIsIEZQUlJlZyBzY3JhdGNo
RlBSLAorICAgICAgICBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlID0gbnVsbHB0cikKICAg
ICAgICAgOiBtX2xlZnRPcGVyYW5kKGxlZnRPcGVyYW5kKQogICAgICAgICAsIG1fcmlnaHRPcGVy
YW5kKHJpZ2h0T3BlcmFuZCkKICAgICAgICAgLCBtX3Jlc3VsdChyZXN1bHQpCkBAIC00Nyw2ICs0
OCw3IEBAIHB1YmxpYzoKICAgICAgICAgLCBtX3JpZ2h0RlBSKHJpZ2h0RlBSKQogICAgICAgICAs
IG1fc2NyYXRjaEdQUihzY3JhdGNoR1BSKQogICAgICAgICAsIG1fc2NyYXRjaEZQUihzY3JhdGNo
RlBSKQorICAgICAgICAsIG1fcmVzdWx0UHJvZmlsZShyZXN1bHRQcm9maWxlKQogICAgIHsgfQog
CiAgICAgdm9pZCBnZW5lcmF0ZUZhc3RQYXRoKENDYWxsSGVscGVycyYpOwpAQCAtNjUsNiArNjcs
NyBAQCBwcml2YXRlOgogICAgIEZQUlJlZyBtX3JpZ2h0RlBSOwogICAgIEdQUlJlZyBtX3NjcmF0
Y2hHUFI7CiAgICAgRlBSUmVnIG1fc2NyYXRjaEZQUjsKKyAgICBSZXN1bHRQcm9maWxlKiBtX3Jl
c3VsdFByb2ZpbGU7CiAgICAgYm9vbCBtX2RpZEVtaXRGYXN0UGF0aCB7IGZhbHNlIH07CiAKICAg
ICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IG1fZW5kSnVtcExpc3Q7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L1RhZ1JlZ2lzdGVyc01vZGUuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGFnUmVnaXN0ZXJzTW9kZS5jcHAJKHJldmlzaW9uIDApCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RhZ1JlZ2lzdGVyc01vZGUuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlRhZ1JlZ2lzdGVy
c01vZGUuaCIKKworI2luY2x1ZGUgPHd0Zi9QcmludFN0cmVhbS5oPgorCituYW1lc3BhY2UgV1RG
IHsKKwordXNpbmcgbmFtZXNwYWNlIEpTQzsKKwordm9pZCBwcmludEludGVybmFsKFByaW50U3Ry
ZWFtJiBvdXQsIFRhZ1JlZ2lzdGVyc01vZGUgbW9kZSkKK3sKKyAgICBzd2l0Y2ggKG1vZGUpIHsK
KyAgICBjYXNlIERvTm90SGF2ZVRhZ1JlZ2lzdGVyczoKKyAgICAgICAgb3V0LnByaW50KCJEb05v
dEhhdmVUYWdSZWdpc3RlcnMiKTsKKyAgICAgICAgcmV0dXJuOworICAgIGNhc2UgSGF2ZVRhZ1Jl
Z2lzdGVyczoKKyAgICAgICAgb3V0LnByaW50KCJIYXZlVGFnUmVnaXN0ZXJzIik7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisgICAgCisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV1RGCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvVGFnUmVnaXN0ZXJzTW9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvVGFnUmVnaXN0ZXJzTW9kZS5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9UYWdSZWdpc3RlcnNNb2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0
NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZu
ZGVmIFRhZ1JlZ2lzdGVyc01vZGVfaAorI2RlZmluZSBUYWdSZWdpc3RlcnNNb2RlX2gKKworbmFt
ZXNwYWNlIEpTQyB7CisKK2VudW0gVGFnUmVnaXN0ZXJzTW9kZSB7CisgICAgRG9Ob3RIYXZlVGFn
UmVnaXN0ZXJzLAorICAgIEhhdmVUYWdSZWdpc3RlcnMKK307CisKK30gLy8gbmFtZXNwYWNlIEpT
QworCituYW1lc3BhY2UgV1RGIHsKKworY2xhc3MgUHJpbnRTdHJlYW07Cit2b2lkIHByaW50SW50
ZXJuYWwoUHJpbnRTdHJlYW0mLCBKU0M6OlRhZ1JlZ2lzdGVyc01vZGUpOworCit9IC8vIG5hbWVz
cGFjZSBXVEYKKworI2VuZGlmIC8vIFRhZ1JlZ2lzdGVyc01vZGVfaAorCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAJKHJldmlz
aW9uIDIwMDU4MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQ
YXRocy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3OCw2ICszNzgsOCBAQCBzdGF0aWMgdm9pZCB1
cGRhdGVSZXN1bHRQcm9maWxlRm9yQmluYXJ5CiAgICAgICAgICAgICBpZiAoIWRvdWJsZVZhbCAm
JiBzdGQ6OnNpZ25iaXQoZG91YmxlVmFsKSkKICAgICAgICAgICAgICAgICBwcm9maWxlLT5zZXRP
YnNlcnZlZE5lZ1plcm9Eb3VibGUoKTsKICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAg
ICAgIHByb2ZpbGUtPnNldE9ic2VydmVkTm9uTmVnWmVyb0RvdWJsZSgpOworCiAgICAgICAgICAg
ICAgICAgLy8gVGhlIEludDUyIG92ZXJmbG93IGNoZWNrIGhlcmUgaW50ZW50aW9uYWxseSBvbWl0
cyAxbGwgPDwgNTEgYXMgYSB2YWxpZCBuZWdhdGl2ZSBJbnQ1MiB2YWx1ZS4KICAgICAgICAgICAg
ICAgICAvLyBUaGVyZWZvcmUsIHdlIHdpbGwgZ2V0IGEgZmFsc2UgcG9zaXRpdmUgaWYgdGhlIHJl
c3VsdCBpcyB0aGF0IHZhbHVlLiBUaGlzIGlzIGludGVudGlvbmFsbHkKICAgICAgICAgICAgICAg
ICAvLyBkb25lIHRvIHNpbXBsaWZ5IHRoZSBjaGVja2luZyBhbGdvcml0aG0uCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCShyZXZpc2lvbiAyMDA1ODIpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAg
LTE3NSw2ICsxNzUsNyBAQCB0eXBlZGVmIGNvbnN0IGNoYXIqIG9wdGlvblN0cmluZzsKICAgICB2
KGJvb2wsIHJlcG9ydERGR0NvbXBpbGVUaW1lcywgZmFsc2UsIE5vcm1hbCwgImR1bXBzIEpTIGZ1
bmN0aW9uIHNpZ25hdHVyZSBhbmQgdGhlIHRpbWUgaXQgdG9vayB0byBERkcgYW5kIEZUTCBjb21w
aWxlIikgXAogICAgIHYoYm9vbCwgcmVwb3J0RlRMQ29tcGlsZVRpbWVzLCBmYWxzZSwgTm9ybWFs
LCAiZHVtcHMgSlMgZnVuY3Rpb24gc2lnbmF0dXJlIGFuZCB0aGUgdGltZSBpdCB0b29rIHRvIEZU
TCBjb21waWxlIikgXAogICAgIHYoYm9vbCwgcmVwb3J0VG90YWxDb21waWxlVGltZXMsIGZhbHNl
LCBOb3JtYWwsIG51bGxwdHIpIFwKKyAgICB2KGJvb2wsIHZlcmJvc2VFeGl0UHJvZmlsZSwgZmFs
c2UsIE5vcm1hbCwgbnVsbHB0cikgXAogICAgIHYoYm9vbCwgdmVyYm9zZUNGQSwgZmFsc2UsIE5v
cm1hbCwgbnVsbHB0cikgXAogICAgIHYoYm9vbCwgdmVyYm9zZUZUTFRvSlNUaHVuaywgZmFsc2Us
IE5vcm1hbCwgbnVsbHB0cikgXAogICAgIHYoYm9vbCwgdmVyYm9zZUZUTEZhaWx1cmUsIGZhbHNl
LCBOb3JtYWwsIG51bGxwdHIpIFwKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMDU4MikKKysrIExheW91
dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMxIEBACisyMDE2LTA1
LTA5ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAgUG9seW1vcnBo
aWMgb3BlcmFuZHMgaW4gb3BlcmF0b3JzIGNvZXJjZXMgZG93bnN0cmVhbSB2YWx1ZXMgdG8gZG91
YmxlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUx
NzkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBq
cy9yZWdyZXNzL29iamVjdC1pbnQtYWRkLWFycmF5LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICoganMvcmVncmVzcy9vYmplY3QtaW50LWFkZC1hcnJheS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBqcy9yZWdyZXNzL29iamVjdC1pbnQtYWRkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICoganMvcmVncmVzcy9vYmplY3QtaW50LWFkZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBq
cy9yZWdyZXNzL29iamVjdC1pbnQtbXVsLWFycmF5LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICoganMvcmVncmVzcy9vYmplY3QtaW50LW11bC1hcnJheS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBqcy9yZWdyZXNzL29iamVjdC1pbnQtc3ViLWFycmF5LWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICoganMvcmVncmVzcy9vYmplY3QtaW50LXN1Yi1hcnJheS5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBqcy9yZWdyZXNzL29iamVjdC1pbnQtc3ViLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICoganMvcmVncmVzcy9vYmplY3QtaW50LXN1Yi5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBqcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9vYmplY3QtaW50LWFkZC1hcnJheS5qczogQWRk
ZWQuCisgICAgICAgIChpLm8udmFsdWVPZik6CisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQt
dGVzdHMvb2JqZWN0LWludC1hZGQuanM6IEFkZGVkLgorICAgICAgICAoaS5vLnZhbHVlT2YpOgor
ICAgICAgICAqIGpzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL29iamVjdC1pbnQtbXVsLWFycmF5Lmpz
OiBBZGRlZC4KKyAgICAgICAgKGkuby52YWx1ZU9mKToKKyAgICAgICAgKiBqcy9yZWdyZXNzL3Nj
cmlwdC10ZXN0cy9vYmplY3QtaW50LXN1Yi1hcnJheS5qczogQWRkZWQuCisgICAgICAgIChpLm8u
dmFsdWVPZik6CisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvb2JqZWN0LWludC1z
dWIuanM6IEFkZGVkLgorICAgICAgICAoaS5vLnZhbHVlT2YpOgorCiAyMDE2LTA1LTA5ICBSeW9z
dWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIEZvY3VzaW5nIGEgc2hhZG93
IGhvc3QgcGxhY2VzIHRoZSBzbG90IGNvbnRlbnQgYWZ0ZXIgdGhlIHNoYWRvdyBET00gY29udGVu
dApJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9vYmplY3QtaW50LWFkZC1hcnJheS1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9vYmplY3QtaW50
LWFkZC1hcnJheS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9qcy9y
ZWdyZXNzL29iamVjdC1pbnQtYWRkLWFycmF5LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDEwIEBACitKU1JlZ3Jlc3Mvb2JqZWN0LWludC1hZGQtYXJyYXkKKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91
dFRlc3RzL2pzL3JlZ3Jlc3Mvb2JqZWN0LWludC1hZGQtYXJyYXkuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL29iamVjdC1pbnQtYWRkLWFycmF5Lmh0bWwJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL29iamVjdC1pbnQtYWRkLWFycmF5Lmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElD
ICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvb2JqZWN0LWludC1hZGQtYXJyYXkuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9vYmpl
Y3QtaW50LWFkZC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVn
cmVzcy9vYmplY3QtaW50LWFkZC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL29iamVjdC1pbnQtYWRkLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDEwIEBACitKU1JlZ3Jlc3Mvb2JqZWN0LWludC1hZGQKKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRl
c3RzL2pzL3JlZ3Jlc3Mvb2JqZWN0LWludC1hZGQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL29iamVjdC1pbnQtYWRkLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL29iamVjdC1pbnQtYWRkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8v
RU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzY3JpcHQt
dGVzdHMvb2JqZWN0LWludC1hZGQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRl
eDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9vYmplY3QtaW50LW11bC1hcnJheS1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9vYmplY3QtaW50LW11bC1h
cnJheS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNz
L29iamVjdC1pbnQtbXVsLWFycmF5LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDEwIEBACitKU1JlZ3Jlc3Mvb2JqZWN0LWludC1tdWwtYXJyYXkKKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK1BBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3Rz
L2pzL3JlZ3Jlc3Mvb2JqZWN0LWludC1tdWwtYXJyYXkuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL29iamVjdC1pbnQtbXVsLWFycmF5Lmh0bWwJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL29iamVjdC1pbnQtbXVsLWFycmF5Lmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9J
RVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJzY3JpcHQtdGVzdHMvb2JqZWN0LWludC1tdWwtYXJyYXkuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9vYmplY3QtaW50
LXN1Yi1hcnJheS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVn
cmVzcy9vYmplY3QtaW50LXN1Yi1hcnJheS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9qcy9yZWdyZXNzL29iamVjdC1pbnQtc3ViLWFycmF5LWV4cGVjdGVkLnR4dAko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEwIEBACitKU1JlZ3Jlc3Mvb2JqZWN0LWludC1zdWIt
YXJyYXkKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgbm8gZXhjZXB0aW9u
IHRocm93bgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvb2JqZWN0LWludC1zdWItYXJyYXkuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL29iamVjdC1pbnQtc3ViLWFy
cmF5Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL29iamVjdC1p
bnQtc3ViLWFycmF5Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMiBAQAorPCFET0NU
WVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJl
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvb2JqZWN0LWludC1zdWIt
YXJyYXkuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNz
LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMv
anMvcmVncmVzcy9vYmplY3QtaW50LXN1Yi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9vYmplY3QtaW50LXN1Yi1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL29iamVjdC1pbnQtc3ViLWV4cGVjdGVkLnR4
dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEwIEBACitKU1JlZ3Jlc3Mvb2JqZWN0LWludC1z
dWIKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgbm8gZXhjZXB0aW9uIHRo
cm93bgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
SW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvb2JqZWN0LWludC1zdWIuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL29iamVjdC1pbnQtc3ViLmh0bWwJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL29iamVjdC1pbnQtc3ViLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9J
RVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJzY3JpcHQtdGVzdHMvb2JqZWN0LWludC1zdWIuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvb2Jq
ZWN0LWludC1hZGQtYXJyYXkuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVz
cy9zY3JpcHQtdGVzdHMvb2JqZWN0LWludC1hZGQtYXJyYXkuanMJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9vYmplY3QtaW50LWFkZC1hcnJheS5q
cwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE4IEBACisoZnVuY3Rpb24oKSB7CisgICAgdmFy
IHJlc3VsdCA9IDA7CisgICAgdmFyIG0gPSAxMDA7CisgICAgdmFyIG4gPSAxMDAwMDA7CisgICAg
dmFyIGFycmF5ID0gW107CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDA7ICsraSkKKyAgICAg
ICAgYXJyYXkucHVzaCgxMik7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtOyArK2kpIHsKKyAg
ICAgICAgdmFyIHZhbHVlID0gMDsKKyAgICAgICAgdmFyIG8gPSB7dmFsdWVPZjogZnVuY3Rpb24o
KSB7IHJldHVybiA0MjsgfX07CisgICAgICAgIHZhbHVlICs9IG87CisgICAgICAgIHZhciByZXN1
bHQgPSAwOworICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IG47ICsraikKKyAgICAgICAgICAg
IHJlc3VsdCArPSBhcnJheVt2YWx1ZV07CisgICAgfQorICAgIGlmIChyZXN1bHQgIT0gbiAqIDEy
KQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9KSgpOwpJ
bmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvb2JqZWN0LWludC1hZGQu
anMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvb2Jq
ZWN0LWludC1hZGQuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3Nj
cmlwdC10ZXN0cy9vYmplY3QtaW50LWFkZC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEz
IEBACisoZnVuY3Rpb24oKSB7CisgICAgdmFyIHJlc3VsdCA9IDA7CisgICAgdmFyIG0gPSAxMDAw
OworICAgIHZhciBuID0gMTAwMDA7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtOyArK2kpIHsK
KyAgICAgICAgdmFyIG8gPSB7dmFsdWVPZjogZnVuY3Rpb24oKSB7IHJldHVybiA0MjsgfX07Cisg
ICAgICAgIHJlc3VsdCArPSBvOworICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IG47ICsraikK
KyAgICAgICAgICAgIHJlc3VsdCArPSBqOworICAgIH0KKyAgICBpZiAocmVzdWx0ICE9IG0gKiAo
NDIgKyBuICogKG4gLSAxKSAvIDIpKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6
ICIgKyByZXN1bHQ7Cit9KSgpOwpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQt
dGVzdHMvb2JqZWN0LWludC1tdWwtYXJyYXkuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
anMvcmVncmVzcy9zY3JpcHQtdGVzdHMvb2JqZWN0LWludC1tdWwtYXJyYXkuanMJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9vYmplY3QtaW50LW11
bC1hcnJheS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE4IEBACisoZnVuY3Rpb24oKSB7
CisgICAgdmFyIHJlc3VsdCA9IDA7CisgICAgdmFyIG0gPSAxMDA7CisgICAgdmFyIG4gPSAxMDAw
MDA7CisgICAgdmFyIGFycmF5ID0gW107CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDA7ICsr
aSkKKyAgICAgICAgYXJyYXkucHVzaCgxMik7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtOyAr
K2kpIHsKKyAgICAgICAgdmFyIHZhbHVlID0gMTsKKyAgICAgICAgdmFyIG8gPSB7dmFsdWVPZjog
ZnVuY3Rpb24oKSB7IHJldHVybiA0MjsgfX07CisgICAgICAgIHZhbHVlICo9IG87CisgICAgICAg
IHZhciByZXN1bHQgPSAwOworICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IG47ICsraikKKyAg
ICAgICAgICAgIHJlc3VsdCArPSBhcnJheVt2YWx1ZV07CisgICAgfQorICAgIGlmIChyZXN1bHQg
IT0gbiAqIDEyKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7
Cit9KSgpOwpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvb2JqZWN0
LWludC1zdWItYXJyYXkuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9z
Y3JpcHQtdGVzdHMvb2JqZWN0LWludC1zdWItYXJyYXkuanMJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9vYmplY3QtaW50LXN1Yi1hcnJheS5qcwko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE4IEBACisoZnVuY3Rpb24oKSB7CisgICAgdmFyIHJl
c3VsdCA9IDA7CisgICAgdmFyIG0gPSAxMDA7CisgICAgdmFyIG4gPSAxMDAwMDA7CisgICAgdmFy
IGFycmF5ID0gW107CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDA7ICsraSkKKyAgICAgICAg
YXJyYXkucHVzaCgxMik7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtOyArK2kpIHsKKyAgICAg
ICAgdmFyIHZhbHVlID0gMDsKKyAgICAgICAgdmFyIG8gPSB7dmFsdWVPZjogZnVuY3Rpb24oKSB7
IHJldHVybiA0MjsgfX07CisgICAgICAgIHZhbHVlIC09IG87CisgICAgICAgIHZhciByZXN1bHQg
PSAwOworICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IG47ICsraikKKyAgICAgICAgICAgIHJl
c3VsdCArPSBhcnJheVstdmFsdWVdOworICAgIH0KKyAgICBpZiAocmVzdWx0ICE9IG4gKiAxMikK
KyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfSkoKTsKSW5k
ZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL29iamVjdC1pbnQtc3ViLmpz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL29iamVj
dC1pbnQtc3ViLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3Jp
cHQtdGVzdHMvb2JqZWN0LWludC1zdWIuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMyBA
QAorKGZ1bmN0aW9uKCkgeworICAgIHZhciByZXN1bHQgPSAwOworICAgIHZhciBtID0gMTAwMDsK
KyAgICB2YXIgbiA9IDEwMDAwOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbTsgKytpKSB7Cisg
ICAgICAgIHZhciBvID0ge3ZhbHVlT2Y6IGZ1bmN0aW9uKCkgeyByZXR1cm4gNDI7IH19OworICAg
ICAgICByZXN1bHQgLT0gbzsKKyAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBuOyArK2opCisg
ICAgICAgICAgICByZXN1bHQgLT0gajsKKyAgICB9CisgICAgaWYgKHJlc3VsdCAhPSAtbSAqICg0
MiArIG4gKiAobiAtIDEpIC8gMikpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDog
IiArIHJlc3VsdDsKK30pKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>278435</attachid>
            <date>2016-05-09 13:38:41 -0700</date>
            <delta_ts>2016-05-09 16:35:47 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>105333</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjAwNTkwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1OCBA
QAorMjAxNi0wNS0wOSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAg
IFBvbHltb3JwaGljIG9wZXJhbmRzIGluIG9wZXJhdG9ycyBjb2VyY2VzIGRvd25zdHJlYW0gdmFs
dWVzIHRvIGRvdWJsZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE1MTc5MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAg
ICAgICAKKyAgICAgICAgUHJldmlvdXNseSBpZiBhbiBvYmplY3QgZmxvd2VkIGludG8gYXJpdGht
ZXRpYywgdGhlIHByZWRpY3Rpb24gcHJvcGFnYXRpb24gcGhhc2Ugd291bGQgZWl0aGVyCisgICAg
ICAgIGFzc3VtZSB0aGF0IHRoZSBvdXRwdXQgb2YgdGhlIGFyaXRobWV0aWMgaGFkIHRvIGJlIGRv
dWJsZSBvciBzb21ldGltZXMgaXQgd291bGQgYXNzdW1lIHRoYXQgaXQKKyAgICAgICAgY291bGRu
J3QgYmUgZG91YmxlLiBXZSB3YW50IGl0IHRvIG9ubHkgYXNzdW1lIHRoYXQgdGhlIG91dHB1dCBp
cyBkb3VibGUgaWYgaXQgYWN0dWFsbHkgaGFkIGJlZW4uCisgICAgICAgIAorICAgICAgICBUaGUg
Zmlyc3QgcGFydCBvZiB0aGlzIHBhdGNoIGlzIHRvIHJvbGwgb3V0IGh0dHA6Ly90cmFjLndlYmtp
dC5vcmcvY2hhbmdlc2V0LzIwMDUwMi4gVGhhdCByZW1vdmVkCisgICAgICAgIHNvbWUgb2YgdGhl
IG1hY2hpbmVyeSB0aGF0IHdlIGhhZCBpbiBwbGFjZSB0byBkZXRlY3Qgd2hldGhlciB0aGUgb3V0
cHV0IG9mIGFuIG9wZXJhdGlvbiBpcyBpbnQgb3IKKyAgICAgICAgZG91YmxlLiBUaGF0IGNoYW5n
ZXNldCBjbGFpbWVkIHRoYXQgdGhlIG1hY2hpbmVyeSB3YXMgImZ1bmRhbWVudGFsbHkgYnJva2Vu
Ii4gSXQgYWN0dWFsbHkgd2Fzbid0LgorICAgICAgICBUaGUgcmVhc29uIHdoeSBpdCBkaWRuJ3Qg
d29yayB3YXMgdGhhdCBCeXRlQ29kZVBhcnNlciB3YXMgaWdub3JpbmcgaXQgaWYgbGlrZWx5VG9U
YWtlU2xvd0Nhc2Ugd2FzCisgICAgICAgIGZhbHNlLiBJIHRoaW5rIHRoaXMgd2FzIGEgY29tcGxl
dGUgZ29vZi11cDogdGhlIGNvZGUgaW4gQnl0ZUNvZGVQYXJzZXI6Om1ha2VTYWZlIHdhcyBzdHJ1
Y3R1cmVkCisgICAgICAgIGluIGEgd2F5IHRoYXQgbWFkZSBpdCBub24tb2J2aW91cyB0aGF0IHRo
ZSBtZXRob2QgaXMgYSBuby1vcCBpZiAhbGlrZWx5VG9UYWtlU2xvd0Nhc2UuIFNvLCB0aGlzCisg
ICAgICAgIGNoYW5nZSByb2xscyBvdXQgcjIwMDUwMiBhbmQgbWFrZXMgUmVzdWx0UHJvZmlsZSBk
byBpdHMgam9iIGJ5IHJlc2hhcGluZyBob3cgbWFrZVNhZmUgcHJvY2Vzc2VzCisgICAgICAgIGl0
LgorICAgICAgICAKKyAgICAgICAgVGhpcyBhbHNvIG1ha2VzIHR3byBvdGhlciBjaGFuZ2VzIHRv
IHNob3JlIHVwIFJlc3VsdFByb2ZpbGU6CisgICAgICAgIC0gT1NSIGV4aXQgY2FuIG5vdyByZWZp
bmUgYSBSZXN1bHRQcm9maWxlIHRoZSBzYW1lIHdheSB0aGF0IGl0IHJlZmluZXMgVmFsdWVQcm9m
aWxlLgorICAgICAgICAtIEJhc2VsaW5lIEpJVCBzbG93IHBhdGhzIG5vdyBzZXQgYml0cyBpbiBS
ZXN1bHRQcm9maWxlLgorICAgICAgICAKKyAgICAgICAgQmFzZWQgb24gdGhpcyBzdHVmZiwgdGhl
IERGRyBub3cgcHJlZGljdHMgaW50L2RvdWJsZS9zdHJpbmcgaW4gb3BfYWRkL29wX3N1Yi9vcF9t
dWwgYmFzZWQgb24KKyAgICAgICAgUmVzdWx0UHJvZmlsZXMuIFRvIGJlIGNvbnNlcnZhdGl2ZSwg
d2Ugc3RpbGwgb25seSB1c2UgdGhlIFJlc3VsdFByb2ZpbGVzIGlmIHRoZSBpbmNvbWluZworICAg
ICAgICBwcmVkaWN0aW9uIGlzIG5vdCBudW1iZXItb3ItYm9vbGVhbi4gVGhpcyBlbnN1cmVzIHRo
YXQgd2UgZXhhY3RseSByZXRhaW4gb3VyIG9sZCBiZWhhdmlvciBpbgorICAgICAgICB0aG9zZSBj
YXNlcyBmb3Igd2hpY2ggaXQgd2FzIHR1bmVkLiBCdXQgSSBob3BlIHRvIHJlbW92ZSB0aGlzIHNv
b24uIEkgYmVsaWV2ZSB0aGF0IFJlc3VsdFByb2ZpbGUKKyAgICAgICAgaXMgYWxyZWFkeSBzdHJp
Y3RseSBiZXR0ZXIgdGhhbiB3aGF0IHByZWRpY3Rpb24gcHJvcGFnYXRpb24gd2FzIGRvaW5nIGJl
Zm9yZS4KKyAgICAgICAgCisgICAgICAgIFRoaXMgY2FuIGJlIGFuIGVub3Jtb3VzIHdpbi4gVGhp
cyBwYXRjaCBhZGRzIHNvbWUgc2ltcGxlIG1pY3JvYmVuY2htYXJrcyB0aGF0IGRlbW9uc3RyYXRl
IHRoZQorICAgICAgICBwcm9ibGVtIG9mIGFzc3VtaW5nIHRoYXQgYXJpdGhtZXRpYyBvbiBvYmpl
Y3RzIHJldHVybnMgZG91YmxlLiBUaGUgbW9zdCBleHRyZW1lIG9mIHRoZXNlIHNwZWVkcworICAg
ICAgICB1cCA4eCB3aXRoIHRoaXMgY2hhbmdlIChvYmplY3QtaW50LWFkZC1hcnJheSkuCisgICAg
ICAgIAorICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEphdmFTY3JpcHRDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYnl0ZWNvZGUvQ29kZUJsb2Nr
Lmg6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6YWRkRnJlcXVlbnRFeGl0U2l0ZSk6CisgICAg
ICAgIChKU0M6OkNvZGVCbG9jazo6aGFzRXhpdFNpdGUpOgorICAgICAgICAqIGJ5dGVjb2RlL0RG
R0V4aXRQcm9maWxlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpGcmVxdWVudEV4aXRTaXRlOjpk
dW1wKToKKyAgICAgICAgKEpTQzo6REZHOjpFeGl0UHJvZmlsZTo6RXhpdFByb2ZpbGUpOgorICAg
ICAgICAoSlNDOjpERkc6OkV4aXRQcm9maWxlOjp+RXhpdFByb2ZpbGUpOgorICAgICAgICAoSlND
OjpERkc6OkV4aXRQcm9maWxlOjphZGQpOgorICAgICAgICAqIGJ5dGVjb2RlL0RGR0V4aXRQcm9m
aWxlLmg6CisgICAgICAgIChKU0M6OkRGRzo6RnJlcXVlbnRFeGl0U2l0ZTo6aXNIYXNoVGFibGVE
ZWxldGVkVmFsdWUpOgorICAgICAgICAqIGJ5dGVjb2RlL01ldGhvZE9mR2V0dGluZ0FWYWx1ZVBy
b2ZpbGUuY3BwOgorICAgICAgICAoSlNDOjpNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlOjpm
cm9tTGF6eU9wZXJhbmQpOgorICAgICAgICAoSlNDOjpNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9m
aWxlOjplbWl0UmVwb3J0VmFsdWUpOgorICAgICAgICAoSlNDOjpNZXRob2RPZkdldHRpbmdBVmFs
dWVQcm9maWxlOjpnZXRTcGVjRmFpbEJ1Y2tldCk6IERlbGV0ZWQuCisgICAgICAgICogYnl0ZWNv
ZGUvTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZS5oOgorICAgICAgICAoSlNDOjpNZXRob2RP
ZkdldHRpbmdBVmFsdWVQcm9maWxlOjpNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlKToKKyAg
ICAgICAgKEpTQzo6TWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZTo6b3BlcmF0b3IgYm9vbCk6
CisgICAgICAgIChKU0M6Ok1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGU6Om9wZXJhdG9yISk6
IERlbGV0ZWQuCisgICAgICAgICogYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuY3BwOgorICAg
ICAgICAoSlNDOjpBY2Nlc3NDYXNlOjpnZW5lcmF0ZUltcGwpOgorICAgICAgICAqIGJ5dGVjb2Rl
L1ZhbHVlUHJvZmlsZS5jcHA6CisgICAgICAgIChKU0M6OlJlc3VsdFByb2ZpbGU6OmVtaXREZXRl
Y3RCaXRzTGlnaHQpOgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjplbWl0U2V0RG91Ymxl
KToKKyAgICAgICAgKEpTQzo6UmVzdWx0UHJvZmlsZTo6ZW1pdFNldE5vbk51bWJlcik6CisgICAg
ICAgIChXVEY6OnByaW50SW50ZXJuYWwpOgorICAgICAgICAqIGJ5dGVjb2RlL1ZhbHVlUHJvZmls
ZS5oOgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpSZXN1bHRQcm9maWxlKToKKyAgICAg
ICAgKEpTQzo6UmVzdWx0UHJvZmlsZTo6Ynl0ZWNvZGVPZmZzZXQpOgorICAgICAgICAoSlNDOjpS
ZXN1bHRQcm9maWxlOjpzcGVjaWFsRmFzdFBhdGhDb3VudCk6CisgICAgICAgIChKU0M6OlJlc3Vs
dFByb2ZpbGU6OmRpZE9ic2VydmVOb25JbnQzMik6CisgICAgICAgIChKU0M6OlJlc3VsdFByb2Zp
bGU6OmRpZE9ic2VydmVEb3VibGUpOgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpkaWRP
YnNlcnZlTm9uTmVnWmVyb0RvdWJsZSk6CisgICAgICAgIChKU0M6OlJlc3VsdFByb2ZpbGU6OmRp
ZE9ic2VydmVOZWdaZXJvRG91YmxlKToKKyAgICAgICAgKEpTQzo6UmVzdWx0UHJvZmlsZTo6ZGlk
T2JzZXJ2ZU5vbk51bWJlcik6CisgICAgICAgIChKU0M6OlJlc3VsdFByb2ZpbGU6OmRpZE9ic2Vy
dmVJbnQzMk92ZXJmbG93KToKKyAgICAgICAgKEpTQzo6UmVzdWx0UHJvZmlsZTo6ZGlkT2JzZXJ2
ZUludDUyT3ZlcmZsb3cpOgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpzZXRPYnNlcnZl
ZE5vbk5lZ1plcm9Eb3VibGUpOgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpzZXRPYnNl
cnZlZE5lZ1plcm9Eb3VibGUpOgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpzZXRPYnNl
cnZlZE5vbk51bWJlcik6CisgICAgICAgIChKU0M6OlJlc3VsdFByb2ZpbGU6OnNldE9ic2VydmVk
SW50MzJPdmVyZmxvdyk6CisgICAgICAgIChKU0M6OlJlc3VsdFByb2ZpbGU6OmFkZHJlc3NPZkZs
YWdzKToKKyAgICAgICAgKEpTQzo6UmVzdWx0UHJvZmlsZTo6YWRkcmVzc09mU3BlY2lhbEZhc3RQ
YXRoQ291bnQpOgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpkZXRlY3RCaXRzTGlnaHQp
OgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpoYXNCaXRzKToKKyAgICAgICAgKiBkZmcv
REZHQnl0ZUNvZGVQYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2Vy
OjptYWtlU2FmZSk6CisgICAgICAgICogZGZnL0RGR0ZpeHVwUGhhc2UuY3BwOgorICAgICAgICAo
SlNDOjpERkc6OkZpeHVwUGhhc2U6OmZpeHVwTm9kZSk6CisgICAgICAgICogZGZnL0RGR0dyYXBo
LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpHcmFwaDo6ZW5zdXJlTmF0dXJhbExvb3BzKToKKyAg
ICAgICAgKEpTQzo6REZHOjpHcmFwaDo6bWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZUZvcik6
CisgICAgICAgIChKU0M6OkRGRzo6R3JhcGg6OnZhbHVlUHJvZmlsZUZvcik6IERlbGV0ZWQuCisg
ICAgICAgICogZGZnL0RGR0dyYXBoLmg6CisgICAgICAgIChKU0M6OkRGRzo6R3JhcGg6Omhhc0V4
aXRTaXRlKToKKyAgICAgICAgKEpTQzo6REZHOjpHcmFwaDo6bnVtQmxvY2tzKToKKyAgICAgICAg
KiBkZmcvREZHTm9kZS5oOgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6OmFyaXRoTm9kZUZsYWdz
KToKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjptYXlIYXZlTm9uSW50UmVzdWx0KToKKyAgICAg
ICAgKEpTQzo6REZHOjpOb2RlOjptYXlIYXZlRG91YmxlUmVzdWx0KToKKyAgICAgICAgKEpTQzo6
REZHOjpOb2RlOjptYXlIYXZlTm9uTnVtYmVyUmVzdWx0KToKKyAgICAgICAgKEpTQzo6REZHOjpO
b2RlOjpoYXNDb25zdGFudEJ1ZmZlcik6CisgICAgICAgICogZGZnL0RGR05vZGVGbGFncy5jcHA6
CisgICAgICAgIChKU0M6OkRGRzo6ZHVtcE5vZGVGbGFncyk6CisgICAgICAgICogZGZnL0RGR05v
ZGVGbGFncy5oOgorICAgICAgICAqIGRmZy9ERkdPU1JFeGl0Q29tcGlsZXIzMl82NC5jcHA6Cisg
ICAgICAgIChKU0M6OkRGRzo6T1NSRXhpdENvbXBpbGVyOjpjb21waWxlRXhpdCk6CisgICAgICAg
ICogZGZnL0RGR09TUkV4aXRDb21waWxlcjY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpPU1JF
eGl0Q29tcGlsZXI6OmNvbXBpbGVFeGl0KToKKyAgICAgICAgKiBkZmcvREZHT3BlcmF0aW9ucy5j
cHA6CisgICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuaDoKKyAgICAgICAgKiBkZmcvREZHUHJl
ZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2
ZUpJVC5oOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjYWxsT3BlcmF0aW9u
KToKKyAgICAgICAgKiBmdGwvRlRMT1NSRXhpdENvbXBpbGVyLmNwcDoKKyAgICAgICAgKEpTQzo6
RlRMOjpjb21waWxlU3R1Yik6CisgICAgICAgICogaml0L0Fzc2VtYmx5SGVscGVycy5oOgorICAg
ICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmJyYW5jaElmRXF1YWwpOgorICAgICAgICAoSlND
OjpBc3NlbWJseUhlbHBlcnM6OmJyYW5jaElmTm90Q2VsbCk6CisgICAgICAgIChKU0M6OkFzc2Vt
Ymx5SGVscGVyczo6YnJhbmNoSWZOb3ROdW1iZXIpOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhl
bHBlcnM6OmJyYW5jaElmTm90RG91YmxlS25vd25Ob3RJbnQzMik6CisgICAgICAgIChKU0M6OkFz
c2VtYmx5SGVscGVyczo6YnJhbmNoSWZCb29sZWFuKToKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlI
ZWxwZXJzOjpicmFuY2hJZkVtcHR5KToKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjpi
cmFuY2hTdHJ1Y3R1cmUpOgorICAgICAgICAqIGppdC9DQ2FsbEhlbHBlcnMuaDoKKyAgICAgICAg
KEpTQzo6Q0NhbGxIZWxwZXJzOjpDQ2FsbEhlbHBlcnMpOgorICAgICAgICAoSlNDOjpDQ2FsbEhl
bHBlcnM6OnNldHVwQXJndW1lbnRzKToKKyAgICAgICAgKEpTQzo6Q0NhbGxIZWxwZXJzOjpzZXR1
cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUpOgorICAgICAgICAqIGppdC9JbnRyaW5zaWNFbWl0dGVy
LmNwcDoKKyAgICAgICAgKEpTQzo6QWNjZXNzQ2FzZTo6ZW1pdEludHJpbnNpY0dldHRlcik6Cisg
ICAgICAgICogaml0L0pJVC5oOgorICAgICAgICAqIGppdC9KSVRBZGRHZW5lcmF0b3IuY3BwOgor
ICAgICAgICAoSlNDOjpKSVRBZGRHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgpOgorICAgICAg
ICAqIGppdC9KSVRBZGRHZW5lcmF0b3IuaDoKKyAgICAgICAgKEpTQzo6SklUQWRkR2VuZXJhdG9y
OjpKSVRBZGRHZW5lcmF0b3IpOgorICAgICAgICAqIGppdC9KSVRBcml0aG1ldGljLmNwcDoKKyAg
ICAgICAgKEpTQzo6SklUOjplbWl0X29wX2FkZCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNs
b3dfb3BfYWRkKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2Rpdik6CisgICAgICAgIChK
U0M6OkpJVDo6ZW1pdF9vcF9tdWwpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRTbG93X29wX211
bCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9zdWIpOgorICAgICAgICAoSlNDOjpKSVQ6
OmVtaXRTbG93X29wX3N1Yik6CisgICAgICAgICogaml0L0pJVElubGluZXMuaDoKKyAgICAgICAg
KEpTQzo6SklUOjpjYWxsT3BlcmF0aW9uKToKKyAgICAgICAgKEpTQzo6SklUOjpjYWxsT3BlcmF0
aW9uTm9FeGNlcHRpb25DaGVjayk6CisgICAgICAgICogaml0L0pJVE11bEdlbmVyYXRvci5jcHA6
CisgICAgICAgIChKU0M6OkpJVE11bEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aCk6CisgICAg
ICAgICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIGppdC9KSVRPcGVyYXRpb25z
Lmg6CisgICAgICAgICogaml0L0pJVFN1YkdlbmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6OkpJ
VFN1YkdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aCk6CisgICAgICAgICogaml0L0pJVFN1Ykdl
bmVyYXRvci5oOgorICAgICAgICAoSlNDOjpKSVRTdWJHZW5lcmF0b3I6OkpJVFN1YkdlbmVyYXRv
cik6CisgICAgICAgICogaml0L1RhZ1JlZ2lzdGVyc01vZGUuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdURjo6cHJpbnRJbnRlcm5hbCk6CisgICAgICAgICogaml0L1RhZ1JlZ2lzdGVyc01vZGUuaDog
QWRkZWQuCisgICAgICAgICogcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwOgorICAgICAgICAo
SlNDOjp1cGRhdGVSZXN1bHRQcm9maWxlRm9yQmluYXJ5QXJpdGhPcCk6CisKIDIwMTYtMDUtMDkg
IFNhYW0gYmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CiAKICAgICAgICAgR2V0dGVyIGFuZCBz
ZXR0ZXIgb24gc3VwZXIgYXJlIGNhbGxlZCB3aXRoIHdyb25nICJ0aGlzIiBvYmplY3QKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDIwMDU5MCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNTYz
LDYgKzU2Myw3IEBAIHNldChKYXZhU2NyaXB0Q29yZV9TT1VSQ0VTCiAgICAgaml0L1JlcGF0Y2gu
Y3BwCiAgICAgaml0L1NjcmF0Y2hSZWdpc3RlckFsbG9jYXRvci5jcHAKICAgICBqaXQvU2V0dXBW
YXJhcmdzRnJhbWUuY3BwCisgICAgaml0L1RhZ1JlZ2lzdGVyc01vZGUuY3BwCiAgICAgaml0L1Rl
bXBSZWdpc3RlclNldC5jcHAKICAgICBqaXQvVGh1bmtHZW5lcmF0b3JzLmNwcAogCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjAwNTkwKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdv
cmtpbmcgY29weSkKQEAgLTE5OTIsNiArMTk5Miw4IEBACiAJCURDMTdFODFBMUM5QzkxRTkwMDhB
NkFCMyAvKiBDQ2FsbEhlbHBlcnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gREMxN0U4MTYxQzlDODAyQjAwOEE2QUIzIC8qIENDYWxsSGVscGVycy5j
cHAgKi87IH07CiAJCURDMjE0MzA3MUNBMzJFNTUwMDBBODg2OSAvKiBJQ1N0YXRzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzIxNDMwNjFDQTMyRTUy
MDAwQTg4NjkgLyogSUNTdGF0cy5oICovOyB9OwogCQlEQzIxNDMwODFDQTMyRTU4MDAwQTg4Njkg
LyogSUNTdGF0cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBEQzIxNDMwNTFDQTMyRTUyMDAwQTg4NjkgLyogSUNTdGF0cy5jcHAgKi87IH07CisJCURD
Nzk5NzgzMUNERTlGQTAwMDRENEEwOSAvKiBUYWdSZWdpc3RlcnNNb2RlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzc5OTc4MjFDREU5RjlFMDA0RDRB
MDkgLyogVGFnUmVnaXN0ZXJzTW9kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CisJCURDNzk5Nzg0MUNERTlGQTIwMDRENEEwOSAvKiBUYWdSZWdpc3Rl
cnNNb2RlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IERDNzk5NzgxMUNERTlGOUUwMDRENEEwOSAvKiBUYWdSZWdpc3RlcnNNb2RlLmNwcCAqLzsgfTsK
IAkJRENGM0Q1NjkxQ0QyOTQ2RDAwM0Q1QzY1IC8qIExhenlDbGFzc1N0cnVjdHVyZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQ0YzRDU2NDFDRDI5
NDY4MDAzRDVDNjUgLyogTGF6eUNsYXNzU3RydWN0dXJlLmNwcCAqLzsgfTsKIAkJRENGM0Q1NkEx
Q0QyOTQ3MDAwM0Q1QzY1IC8qIExhenlDbGFzc1N0cnVjdHVyZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRENGM0Q1NjUxQ0QyOTQ2ODAwM0Q1QzY1IC8q
IExhenlDbGFzc1N0cnVjdHVyZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCURDRjNENTZCMUNEMjk0NzIwMDNENUM2NSAvKiBMYXp5Q2xhc3NTdHJ1
Y3R1cmVJbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBEQ0YzRDU2NjFDRDI5NDY4MDAzRDVDNjUgLyogTGF6eUNsYXNzU3RydWN0dXJlSW5saW5l
cy5oICovOyB9OwpAQCAtNDIwNCw2ICs0MjA2LDggQEAKIAkJREMxN0U4MTYxQzlDODAyQjAwOEE2
QUIzIC8qIENDYWxsSGVscGVycy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBDQ2FsbEhlbHBlcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQzIx
NDMwNTFDQTMyRTUyMDAwQTg4NjkgLyogSUNTdGF0cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBJQ1N0YXRzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJREMyMTQzMDYxQ0EzMkU1MjAwMEE4ODY5IC8qIElDU3RhdHMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSUNTdGF0cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlEQzc5OTc4MTFDREU5RjlFMDA0RDRBMDkgLyogVGFnUmVnaXN0ZXJzTW9kZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUYWdSZWdpc3RlcnNNb2RlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJREM3OTk3ODIxQ0RFOUY5RTAwNEQ0QTA5IC8qIFRh
Z1JlZ2lzdGVyc01vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGFnUmVn
aXN0ZXJzTW9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQ0YzRDU2NDFDRDI5
NDY4MDAzRDVDNjUgLyogTGF6eUNsYXNzU3RydWN0dXJlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IExhenlDbGFzc1N0cnVjdHVyZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCURDRjNENTY1MUNEMjk0NjgwMDNENUM2NSAvKiBMYXp5Q2xhc3NTdHJ1
Y3R1cmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGF6eUNsYXNzU3RydWN0
dXJlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURDRjNENTY2MUNEMjk0NjgwMDNE
NUM2NSAvKiBMYXp5Q2xhc3NTdHJ1Y3R1cmVJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IExhenlDbGFzc1N0cnVjdHVyZUlubGluZXMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTUwODQsNiArNTA4OCw4IEBACiAJCQkJRkUxODdBMEMxQzAyRUJBNzAw
MzhCQkNBIC8qIFNuaXBwZXRPcGVyYW5kLmggKi8sCiAJCQkJQTczODY1NTExMTg2OTdCNDAwNTQw
Mjc5IC8qIFNwZWNpYWxpemVkVGh1bmtKSVQuaCAqLywKIAkJCQlBN0ZGNjQ3QTE4QzUyRTg1MDBC
NTUzMDcgLyogU3BpbGxSZWdpc3RlcnNNb2RlLmggKi8sCisJCQkJREM3OTk3ODExQ0RFOUY5RTAw
NEQ0QTA5IC8qIFRhZ1JlZ2lzdGVyc01vZGUuY3BwICovLAorCQkJCURDNzk5NzgyMUNERTlGOUUw
MDRENEEwOSAvKiBUYWdSZWdpc3RlcnNNb2RlLmggKi8sCiAJCQkJMEZDMzE0MTExODE0NTU5MTAw
MDMzMjMyIC8qIFRlbXBSZWdpc3RlclNldC5jcHAgKi8sCiAJCQkJMEYyNEU1NDgxN0VFMjc0OTAw
QUJCMjE3IC8qIFRlbXBSZWdpc3RlclNldC5oICovLAogCQkJCTBGNTcyRDREMTY4NzlGREIwMEU1
N0ZCRCAvKiBUaHVua0dlbmVyYXRvci5oICovLApAQCAtNzg2MSw2ICs3ODY3LDcgQEAKIAkJCQk4
NkYzRUVCRjE2OENERTkzMDA3N0I5MkEgLyogT2JqY1J1bnRpbWVFeHRyYXMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTE0Q0E5NThEMTZBQjUwRkEwMDkzOEEwNiAvKiBPYmplY3RBbGxvY2F0aW9uUHJv
ZmlsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRENGM0Q1NkMxQ0QyOTQ3NTAwM0Q1QzY1IC8qIExh
enlQcm9wZXJ0eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJREM3OTk3ODMxQ0RFOUZBMDAwNEQ0QTA5
IC8qIFRhZ1JlZ2lzdGVyc01vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDQ1MEUxNkY1
Q0QwMEIzNDQ2MCAvKiBPYmplY3RDb25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTk2
QjczMjIxQkRBMDhFRjAwMzMxQjg0IC8qIE9iamVjdENvbnN0cnVjdG9yLmx1dC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEZEM0U0MEExQjYxOEI2NjAwQzgwRTFFIC8qIE9iamVjdFByb3BlcnR5Q29u
ZGl0aW9uLmggaW4gSGVhZGVycyAqLywKQEAgLTkwMTYsNiArOTAyMyw3IEBACiAJCQkJRkUzQTA2
QjMxQzEwQ0I4RTAwMzkwRkREIC8qIEpJVEJpdFhvckdlbmVyYXRvci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBNTdEMjNFNTE4OTBDRUJGMDAzMUM3RkEgLyogSW5zcGVjdG9yRGVidWdnZXJBZ2Vu
dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNTMyNDM4OTE4NTY4MzM1MDAyRUQ2OTIgLyogSW5z
cGVjdG9yRnJvbnRlbmREaXNwYXRjaGVycy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlEQzc5OTc4
NDFDREU5RkEyMDA0RDRBMDkgLyogVGFnUmVnaXN0ZXJzTW9kZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk5OUYxQTZGRTFCOEU2RDk0MDA0NjNCMjYgLyogSW5zcGVjdG9yRnJvbnRlbmRSb3V0ZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTUzMzlFQzcxQkIzOTlBOTAwNTRGMDA1IC8qIEluc3Bl
Y3RvckhlYXBBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMzVFMDM1RjFCN0FCNDNFMDA3
M0FEMkEgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0LmNwcCBpbiBTb3VyY2VzICov
LApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAkocmV2
aXNpb24gMjAwNTkwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9j
ay5oCSh3b3JraW5nIGNvcHkpCkBAIC01MDAsNyArNTAwLDcgQEAgcHVibGljOgogICAgIHsKICAg
ICAgICAgQVNTRVJUKEpJVENvZGU6OmlzQmFzZWxpbmVDb2RlKGppdFR5cGUoKSkpOwogICAgICAg
ICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihtX2xvY2spOwotICAgICAgICByZXR1cm4gbV9l
eGl0UHJvZmlsZS5hZGQobG9ja2VyLCBzaXRlKTsKKyAgICAgICAgcmV0dXJuIG1fZXhpdFByb2Zp
bGUuYWRkKGxvY2tlciwgdGhpcywgc2l0ZSk7CiAgICAgfQogCiAgICAgYm9vbCBoYXNFeGl0U2l0
ZShjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiBsb2NrZXIsIGNvbnN0IERGRzo6RnJlcXVlbnRF
eGl0U2l0ZSYgc2l0ZSkgY29uc3QKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9ERkdFeGl0UHJvZmlsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0RGR0V4aXRQcm9maWxlLmNwcAkocmV2aXNpb24gMjAwNTkwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0RGR0V4aXRQcm9maWxlLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDE2IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtMjgsMTQgKzI4LDI0IEBACiAKICNpZiBFTkFCTEUoREZHX0pJVCkKIAorI2luY2x1ZGUgIkNv
ZGVCbG9jay5oIgorCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKK3ZvaWQgRnJl
cXVlbnRFeGl0U2l0ZTo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAoreworICAgIG91dC5w
cmludCgiYmMjIiwgbV9ieXRlY29kZU9mZnNldCwgIjogIiwgbV9raW5kLCAiLyIsIG1faml0VHlw
ZSk7Cit9CisKIEV4aXRQcm9maWxlOjpFeGl0UHJvZmlsZSgpIHsgfQogRXhpdFByb2ZpbGU6On5F
eGl0UHJvZmlsZSgpIHsgfQogCi1ib29sIEV4aXRQcm9maWxlOjphZGQoY29uc3QgQ29uY3VycmVu
dEpJVExvY2tlciYsIGNvbnN0IEZyZXF1ZW50RXhpdFNpdGUmIHNpdGUpCitib29sIEV4aXRQcm9m
aWxlOjphZGQoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIENvZGVCbG9jayogb3duZXIsIGNv
bnN0IEZyZXF1ZW50RXhpdFNpdGUmIHNpdGUpCiB7CiAgICAgQVNTRVJUKHNpdGUuaml0VHlwZSgp
ICE9IEV4aXRGcm9tQW55dGhpbmcpOworCisgICAgaWYgKE9wdGlvbnM6OnZlcmJvc2VFeGl0UHJv
ZmlsZSgpKQorICAgICAgICBkYXRhTG9nKHBvaW50ZXJEdW1wKG93bmVyKSwgIjogQWRkaW5nIGV4
aXQgc2l0ZTogIiwgc2l0ZSwgIlxuIik7CiAgICAgCiAgICAgLy8gSWYgd2UndmUgbmV2ZXIgc2Vl
biBhbnkgZnJlcXVlbnQgZXhpdHMgdGhlbiBjcmVhdGUgdGhlIGxpc3QgYW5kIHB1dCB0aGlzIHNp
dGUKICAgICAvLyBpbnRvIGl0LgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0RGR0V4aXRQcm9maWxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0RGR0V4aXRQcm9maWxlLmgJKHJldmlzaW9uIDIwMDU5MCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9ERkdFeGl0UHJvZmlsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAxMywgMjAxNCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAx
NCwgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTExNiw2ICsxMTYsOCBAQCBwdWJsaWM6CiAgICAgewogICAgICAg
ICByZXR1cm4gbV9raW5kID09IEV4aXRLaW5kVW5zZXQgJiYgbV9ieXRlY29kZU9mZnNldDsKICAg
ICB9CisgICAgCisgICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0OwogCiBwcml2
YXRlOgogICAgIHVuc2lnbmVkIG1fYnl0ZWNvZGVPZmZzZXQ7CkBAIC0xNTksNyArMTYxLDcgQEAg
cHVibGljOgogICAgIC8vIGJlIGNhbGxlZCBhIGZpeGVkIG51bWJlciBvZiB0aW1lcyBwZXIgcmVj
b21waWxhdGlvbi4gUmVjb21waWxhdGlvbiBpcwogICAgIC8vIHJhcmUgdG8gYmVnaW4gd2l0aCwg
YW5kIGltcGxpZXMgZG9pbmcgTyhuKSBvcGVyYXRpb25zIG9uIHRoZSBDb2RlQmxvY2sKICAgICAv
LyBhbnl3YXkuCi0gICAgYm9vbCBhZGQoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIGNvbnN0
IEZyZXF1ZW50RXhpdFNpdGUmKTsKKyAgICBib29sIGFkZChjb25zdCBDb25jdXJyZW50SklUTG9j
a2VyJiwgQ29kZUJsb2NrKiBvd25lciwgY29uc3QgRnJlcXVlbnRFeGl0U2l0ZSYpOwogICAgIAog
ICAgIC8vIEdldCB0aGUgZnJlcXVlbnQgZXhpdCBzaXRlcyBmb3IgYSBieXRlY29kZSBpbmRleC4g
VGhpcyBpcyBPKG4pLCBhbmQgaXMKICAgICAvLyBtZWFudCB0byBvbmx5IGJlIHVzZWQgZnJvbSBk
ZWJ1Z2dpbmcvcHJvZmlsaW5nIGNvZGUuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL01ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUu
Y3BwCShyZXZpc2lvbiAyMDA1OTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
TWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMywgMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShERkdfSklUKQogCisjaW5jbHVkZSAiQ0Nh
bGxIZWxwZXJzLmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5l
cy5oIgogCkBAIC00NCwxNCArNDUsMTUgQEAgTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZSBN
ZXRob2RPZkdldAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLUVuY29kZWRKU1ZhbHVlKiBNZXRo
b2RPZkdldHRpbmdBVmFsdWVQcm9maWxlOjpnZXRTcGVjRmFpbEJ1Y2tldCh1bnNpZ25lZCBpbmRl
eCkgY29uc3QKK3ZvaWQgTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZTo6ZW1pdFJlcG9ydFZh
bHVlKENDYWxsSGVscGVycyYgaml0LCBKU1ZhbHVlUmVncyByZWdzKSBjb25zdAogewogICAgIHN3
aXRjaCAobV9raW5kKSB7CiAgICAgY2FzZSBOb25lOgotICAgICAgICByZXR1cm4gMDsKKyAgICAg
ICAgcmV0dXJuOwogICAgICAgICAKICAgICBjYXNlIFJlYWR5OgotICAgICAgICByZXR1cm4gdS5w
cm9maWxlLT5zcGVjRmFpbEJ1Y2tldChpbmRleCk7CisgICAgICAgIGppdC5zdG9yZVZhbHVlKHJl
Z3MsIHUucHJvZmlsZS0+c3BlY0ZhaWxCdWNrZXQoMCkpOworICAgICAgICByZXR1cm47CiAgICAg
ICAgIAogICAgIGNhc2UgTGF6eU9wZXJhbmQ6IHsKICAgICAgICAgTGF6eU9wZXJhbmRWYWx1ZVBy
b2ZpbGVLZXkga2V5KHUubGF6eU9wZXJhbmQuYnl0ZWNvZGVPZmZzZXQsIFZpcnR1YWxSZWdpc3Rl
cih1LmxhenlPcGVyYW5kLm9wZXJhbmQpKTsKQEAgLTU5LDEzICs2MSwxNiBAQCBFbmNvZGVkSlNW
YWx1ZSogTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvCiAgICAgICAgIENvbmN1cnJlbnRKSVRMb2Nr
ZXIgbG9ja2VyKHUubGF6eU9wZXJhbmQuY29kZUJsb2NrLT5tX2xvY2spOwogICAgICAgICBMYXp5
T3BlcmFuZFZhbHVlUHJvZmlsZSogcHJvZmlsZSA9CiAgICAgICAgICAgICB1LmxhenlPcGVyYW5k
LmNvZGVCbG9jay0+bGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGVzKCkuYWRkKGxvY2tlciwga2V5KTsK
LSAgICAgICAgcmV0dXJuIHByb2ZpbGUtPnNwZWNGYWlsQnVja2V0KGluZGV4KTsKKyAgICAgICAg
aml0LnN0b3JlVmFsdWUocmVncywgcHJvZmlsZS0+c3BlY0ZhaWxCdWNrZXQoMCkpOworICAgICAg
ICByZXR1cm47CiAgICAgfQogICAgICAgICAKLSAgICBkZWZhdWx0OgotICAgICAgICBSRUxFQVNF
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm4gMDsKLSAgICB9CisgICAgY2Fz
ZSBSZXN1bHRQcm9maWxlUmVhZHk6IHsKKyAgICAgICAgdS5yZXN1bHRQcm9maWxlLT5lbWl0RGV0
ZWN0Qml0c0xpZ2h0KGppdCwgcmVncywgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0gfQorICAgIAorICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL01ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZS5o
CShyZXZpc2lvbiAyMDA1OTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTWV0
aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMiwxMiArMzIsMTUg
QEAKIC8vIHRoZXNlICNpZidzIHdpbGwgZGlzYXBwZWFyLi4uCiAjaWYgRU5BQkxFKERGR19KSVQp
CiAKKyNpbmNsdWRlICJHUFJJbmZvLmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZS5oIgogCiBuYW1l
c3BhY2UgSlNDIHsKIAorY2xhc3MgQ0NhbGxIZWxwZXJzOwogY2xhc3MgQ29kZUJsb2NrOwogY2xh
c3MgTGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGVLZXk7CitzdHJ1Y3QgUmVzdWx0UHJvZmlsZTsKIHN0
cnVjdCBWYWx1ZVByb2ZpbGU7CiAKIGNsYXNzIE1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUg
ewpAQCAtNDcsNyArNTAsNyBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KICAgICAKLSAgICBleHBs
aWNpdCBNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlKFZhbHVlUHJvZmlsZSogcHJvZmlsZSkK
KyAgICBNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlKFZhbHVlUHJvZmlsZSogcHJvZmlsZSkK
ICAgICB7CiAgICAgICAgIGlmIChwcm9maWxlKSB7CiAgICAgICAgICAgICBtX2tpbmQgPSBSZWFk
eTsKQEAgLTU2LDMxICs1OSwzNCBAQCBwdWJsaWM6CiAgICAgICAgICAgICBtX2tpbmQgPSBOb25l
OwogICAgIH0KICAgICAKKyAgICBNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlKFJlc3VsdFBy
b2ZpbGUqIHByb2ZpbGUpCisgICAgeworICAgICAgICBpZiAocHJvZmlsZSkgeworICAgICAgICAg
ICAgbV9raW5kID0gUmVzdWx0UHJvZmlsZVJlYWR5OworICAgICAgICAgICAgdS5yZXN1bHRQcm9m
aWxlID0gcHJvZmlsZTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBtX2tpbmQgPSBOb25l
OworICAgIH0KKyAgICAKICAgICBzdGF0aWMgTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZSBm
cm9tTGF6eU9wZXJhbmQoCiAgICAgICAgIENvZGVCbG9jayosIGNvbnN0IExhenlPcGVyYW5kVmFs
dWVQcm9maWxlS2V5Jik7CiAgICAgCi0gICAgYm9vbCBvcGVyYXRvciEoKSBjb25zdCB7IHJldHVy
biBtX2tpbmQgPT0gTm9uZTsgfQotICAgIAotICAgIC8vIFRoaXMgbG9naWNhbGx5IGhhcyBhIHBv
aW50ZXIgdG8gYSAiVGhlcmUgZXhpc3RzIFggc3VjaCB0aGF0Ci0gICAgLy8gVmFsdWVQcm9maWxl
QmFzZTxYPiIuIEJ1dCBzaW5jZSBDKysgZG9lcyBub3QgaGF2ZSBleGlzdGVudGlhbAotICAgIC8v
IHRlbXBsYXRlcywgSSBjYW5ub3QgcmV0dXJuIGl0LiBTbyBpbnN0ZWFkLCBmb3IgYW55IG1ldGhv
ZHMgdGhhdAotICAgIC8vIHVzZXJzIG9mIHRoaXMgY2xhc3Mgd291bGQgbGlrZSB0byBjYWxsLCB3
ZSdsbCBqdXN0IGhhdmUgdG8gcHJvdmlkZQotICAgIC8vIGEgbWV0aG9kIGhlcmUgdGhhdCBkb2Vz
IGl0IHRocm91Z2ggYW4gaW5kaXJlY3Rpb24uIE9yIHdlIGNvdWxkCi0gICAgLy8gcG9zc2libHkg
anVzdCBtYWtlIFZhbHVlUHJvZmlsZSBsZXNzIHRlbXBsYXRlLWJhc2VkLiBCdXQgbGFzdCBJCi0g
ICAgLy8gdHJpZWQgdGhhdCwgaXQgZmVsdCBtb3JlIHl1Y2t5IHRoYW4gdGhpcyBjbGFzcy4KKyAg
ICBleHBsaWNpdCBvcGVyYXRvciBib29sKCkgY29uc3QgeyByZXR1cm4gbV9raW5kICE9IE5vbmU7
IH0KICAgICAKLSAgICBFbmNvZGVkSlNWYWx1ZSogZ2V0U3BlY0ZhaWxCdWNrZXQodW5zaWduZWQg
aW5kZXgpIGNvbnN0OworICAgIHZvaWQgZW1pdFJlcG9ydFZhbHVlKENDYWxsSGVscGVycyYsIEpT
VmFsdWVSZWdzKSBjb25zdDsKICAgICAKIHByaXZhdGU6CiAgICAgZW51bSBLaW5kIHsKICAgICAg
ICAgTm9uZSwKICAgICAgICAgUmVhZHksCisgICAgICAgIFJlc3VsdFByb2ZpbGVSZWFkeSwKICAg
ICAgICAgTGF6eU9wZXJhbmQKICAgICB9OwogICAgIAogICAgIEtpbmQgbV9raW5kOwogICAgIHVu
aW9uIHsKICAgICAgICAgVmFsdWVQcm9maWxlKiBwcm9maWxlOworICAgICAgICBSZXN1bHRQcm9m
aWxlKiByZXN1bHRQcm9maWxlOwogICAgICAgICBzdHJ1Y3QgewogICAgICAgICAgICAgQ29kZUJs
b2NrKiBjb2RlQmxvY2s7CiAgICAgICAgICAgICB1bnNpZ25lZCBieXRlY29kZU9mZnNldDsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHltb3JwaGlj
QWNjZXNzLmNwcAkocmV2aXNpb24gMjAwNTkwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE0Niw4ICsx
MTQ2LDcgQEAgdm9pZCBBY2Nlc3NDYXNlOjpnZW5lcmF0ZUltcGwoQWNjZXNzR2VuZQogICAgICAg
ICAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgICAgICAgICAgZGF0YUxvZygiSGF2ZSB0eXBlOiAi
LCB0eXBlLT5kZXNjcmlwdG9yKCksICJcbiIpOwogICAgICAgICAgICAgc3RhdGUuZmFpbEFuZFJl
cGF0Y2guYXBwZW5kKAotICAgICAgICAgICAgICAgIGppdC5icmFuY2hJZk5vdFR5cGUoCi0gICAg
ICAgICAgICAgICAgICAgIHZhbHVlUmVncywgc2NyYXRjaEdQUiwgdHlwZS0+ZGVzY3JpcHRvcigp
LCBDQ2FsbEhlbHBlcnM6OkhhdmVUYWdSZWdpc3RlcnMpKTsKKyAgICAgICAgICAgICAgICBqaXQu
YnJhbmNoSWZOb3RUeXBlKHZhbHVlUmVncywgc2NyYXRjaEdQUiwgdHlwZS0+ZGVzY3JpcHRvcigp
KSk7CiAgICAgICAgIH0gZWxzZSBpZiAodmVyYm9zZSkKICAgICAgICAgICAgIGRhdGFMb2coIkRv
bid0IGhhdmUgdHlwZS5cbiIpOwogICAgICAgICAKQEAgLTExNzcsOCArMTE3Niw3IEBAIHZvaWQg
QWNjZXNzQ2FzZTo6Z2VuZXJhdGVJbXBsKEFjY2Vzc0dlbmUKICAgICAgICAgICAgIGlmICh2ZXJi
b3NlKQogICAgICAgICAgICAgICAgIGRhdGFMb2coIkhhdmUgdHlwZTogIiwgdHlwZS0+ZGVzY3Jp
cHRvcigpLCAiXG4iKTsKICAgICAgICAgICAgIHN0YXRlLmZhaWxBbmRSZXBhdGNoLmFwcGVuZCgK
LSAgICAgICAgICAgICAgICBqaXQuYnJhbmNoSWZOb3RUeXBlKAotICAgICAgICAgICAgICAgICAg
ICB2YWx1ZVJlZ3MsIHNjcmF0Y2hHUFIsIHR5cGUtPmRlc2NyaXB0b3IoKSwgQ0NhbGxIZWxwZXJz
OjpIYXZlVGFnUmVnaXN0ZXJzKSk7CisgICAgICAgICAgICAgICAgaml0LmJyYW5jaElmTm90VHlw
ZSh2YWx1ZVJlZ3MsIHNjcmF0Y2hHUFIsIHR5cGUtPmRlc2NyaXB0b3IoKSkpOwogICAgICAgICB9
IGVsc2UgaWYgKHZlcmJvc2UpCiAgICAgICAgICAgICBkYXRhTG9nKCJEb24ndCBoYXZlIHR5cGUu
XG4iKTsKICAgICAgICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmFs
dWVQcm9maWxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvVmFsdWVQcm9maWxlLmNwcAkocmV2aXNpb24gMjAwNTkwKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL1ZhbHVlUHJvZmlsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjYsNiArMjYs
MzYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJWYWx1ZVByb2ZpbGUuaCIKIAor
I2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgorI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKKworbmFt
ZXNwYWNlIEpTQyB7CisKK3ZvaWQgUmVzdWx0UHJvZmlsZTo6ZW1pdERldGVjdEJpdHNMaWdodChD
Q2FsbEhlbHBlcnMmIGppdCwgSlNWYWx1ZVJlZ3MgcmVncywgVGFnUmVnaXN0ZXJzTW9kZSBtb2Rl
KQoreworICAgIENDYWxsSGVscGVyczo6SnVtcCBpc0ludDMyID0gaml0LmJyYW5jaElmSW50MzIo
cmVncywgbW9kZSk7CisgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIG5vdERvdWJsZSA9IGppdC5icmFu
Y2hJZk5vdERvdWJsZUtub3duTm90SW50MzIocmVncywgbW9kZSk7CisgICAgLy8gRklYTUU6IFdl
IGNvdWxkIGJlIG1vcmUgcHJlY2lzZSBoZXJlLgorICAgIGVtaXRTZXREb3VibGUoaml0KTsKKyAg
ICBDQ2FsbEhlbHBlcnM6Okp1bXAgZG9uZSA9IGppdC5qdW1wKCk7CisgICAgbm90RG91YmxlLmxp
bmsoJmppdCk7CisgICAgZW1pdFNldE5vbk51bWJlcihqaXQpOworICAgIGRvbmUubGluaygmaml0
KTsKKyAgICBpc0ludDMyLmxpbmsoJmppdCk7Cit9CisKK3ZvaWQgUmVzdWx0UHJvZmlsZTo6ZW1p
dFNldERvdWJsZShDQ2FsbEhlbHBlcnMmIGppdCkKK3sKKyAgICBqaXQub3IzMihDQ2FsbEhlbHBl
cnM6OlRydXN0ZWRJbW0zMihSZXN1bHRQcm9maWxlOjpJbnQzMk92ZXJmbG93IHwgUmVzdWx0UHJv
ZmlsZTo6SW50NTJPdmVyZmxvdyB8IFJlc3VsdFByb2ZpbGU6Ok5lZ1plcm9Eb3VibGUgfCBSZXN1
bHRQcm9maWxlOjpOb25OZWdaZXJvRG91YmxlKSwgQ0NhbGxIZWxwZXJzOjpBYnNvbHV0ZUFkZHJl
c3MoYWRkcmVzc09mRmxhZ3MoKSkpOworfQorCit2b2lkIFJlc3VsdFByb2ZpbGU6OmVtaXRTZXRO
b25OdW1iZXIoQ0NhbGxIZWxwZXJzJiBqaXQpCit7CisgICAgaml0Lm9yMzIoQ0NhbGxIZWxwZXJz
OjpUcnVzdGVkSW1tMzIoUmVzdWx0UHJvZmlsZTo6Tm9uTnVtYmVyKSwgQ0NhbGxIZWxwZXJzOjpB
YnNvbHV0ZUFkZHJlc3MoYWRkcmVzc09mRmxhZ3MoKSkpOworfQorCit9IC8vIG5hbWVzcGFjZSBK
U0MKKwogbmFtZXNwYWNlIFdURiB7CiAgICAgCiB1c2luZyBuYW1lc3BhY2UgSlNDOwpAQCAtMzQs
MjMgKzY0LDMxIEBAIHZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0LCBjb24KIHsK
ICAgICBjb25zdCBjaGFyKiBzZXBhcmF0b3IgPSAiIjsKIAotICAgIGlmIChwcm9maWxlLmRpZE9i
c2VydmVOZWdaZXJvRG91YmxlKCkpIHsKLSAgICAgICAgb3V0LnByaW50KHNlcGFyYXRvciwgIk5l
Z1plcm9Eb3VibGUiKTsKKyAgICBpZiAoIXByb2ZpbGUuZGlkT2JzZXJ2ZU5vbkludDMyKCkpIHsK
KyAgICAgICAgb3V0LnByaW50KCJJbnQzMiIpOwogICAgICAgICBzZXBhcmF0b3IgPSAifCI7Cisg
ICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKHByb2ZpbGUuZGlkT2JzZXJ2ZU5lZ1plcm9Eb3VibGUo
KSkgeworICAgICAgICAgICAgb3V0LnByaW50KHNlcGFyYXRvciwgIk5lZ1plcm9Eb3VibGUiKTsK
KyAgICAgICAgICAgIHNlcGFyYXRvciA9ICJ8IjsKKyAgICAgICAgfQorICAgICAgICBpZiAocHJv
ZmlsZS5kaWRPYnNlcnZlTm9uTmVnWmVyb0RvdWJsZSgpKSB7CisgICAgICAgICAgICBvdXQucHJp
bnQoIk5vbk5lZ1plcm9Eb3VibGUiKTsKKyAgICAgICAgICAgIHNlcGFyYXRvciA9ICJ8IjsKKyAg
ICAgICAgfQorICAgICAgICBpZiAocHJvZmlsZS5kaWRPYnNlcnZlTm9uTnVtYmVyKCkpIHsKKyAg
ICAgICAgICAgIG91dC5wcmludCgiTm9uTnVtYmVyIik7CisgICAgICAgICAgICBzZXBhcmF0b3Ig
PSAifCI7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHByb2ZpbGUuZGlkT2JzZXJ2ZUludDMyT3Zl
cmZsb3coKSkgeworICAgICAgICAgICAgb3V0LnByaW50KCJJbnQzMk92ZXJmbG93Iik7CisgICAg
ICAgICAgICBzZXBhcmF0b3IgPSAifCI7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHByb2ZpbGUu
ZGlkT2JzZXJ2ZUludDUyT3ZlcmZsb3coKSkgeworICAgICAgICAgICAgb3V0LnByaW50KCJJbnQ1
Mk92ZXJmbG93Iik7CisgICAgICAgICAgICBzZXBhcmF0b3IgPSAifCI7CisgICAgICAgIH0KICAg
ICB9Ci0gICAgaWYgKHByb2ZpbGUuZGlkT2JzZXJ2ZU5vbk51bWJlcigpKSB7Ci0gICAgICAgIG91
dC5wcmludCgiTm9uTnVtYmVyIik7Ci0gICAgICAgIHNlcGFyYXRvciA9ICJ8IjsKLSAgICB9Ci0g
ICAgaWYgKHByb2ZpbGUuZGlkT2JzZXJ2ZUludDMyT3ZlcmZsb3coKSkgewotICAgICAgICBvdXQu
cHJpbnQoIkludDMyT3ZlcmZsb3ciKTsKLSAgICAgICAgc2VwYXJhdG9yID0gInwiOwotICAgIH0K
LSAgICBpZiAocHJvZmlsZS5kaWRPYnNlcnZlSW50NTJPdmVyZmxvdygpKSB7Ci0gICAgICAgIG91
dC5wcmludCgiSW50NTJPdmVyZmxvdyIpOwotICAgICAgICBzZXBhcmF0b3IgPSAifCI7Ci0gICAg
fQotCiAgICAgaWYgKHByb2ZpbGUuc3BlY2lhbEZhc3RQYXRoQ291bnQoKSkgewogICAgICAgICBv
dXQucHJpbnQoIiBzcGVjaWFsIGZhc3QgcGF0aDogIik7CiAgICAgICAgIG91dC5wcmludChwcm9m
aWxlLnNwZWNpYWxGYXN0UGF0aENvdW50KCkpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL1ZhbHVlUHJvZmlsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9WYWx1ZVByb2ZpbGUuaAkocmV2aXNpb24gMjAwNTkwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZhbHVlUHJvZmlsZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAxMyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAxMywg
MjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTM0LDEyICszNCwxNSBAQAogI2luY2x1ZGUgIkpTQXJyYXkuaCIKICNp
bmNsdWRlICJTcGVjdWxhdGVkVHlwZS5oIgogI2luY2x1ZGUgIlN0cnVjdHVyZS5oIgorI2luY2x1
ZGUgIlRhZ1JlZ2lzdGVyc01vZGUuaCIKICNpbmNsdWRlICJXcml0ZUJhcnJpZXIuaCIKICNpbmNs
dWRlIDx3dGYvUHJpbnRTdHJlYW0uaD4KICNpbmNsdWRlIDx3dGYvU3RyaW5nUHJpbnRTdHJlYW0u
aD4KIAogbmFtZXNwYWNlIEpTQyB7CiAKK2NsYXNzIENDYWxsSGVscGVyczsKKwogdGVtcGxhdGU8
dW5zaWduZWQgbnVtYmVyT2ZCdWNrZXRzQXJndW1lbnQ+CiBzdHJ1Y3QgVmFsdWVQcm9maWxlQmFz
ZSB7CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG51bWJlck9mQnVja2V0cyA9IG51bWJlck9m
QnVja2V0c0FyZ3VtZW50OwpAQCAtMjE4LDIwICsyMjEsMjUgQEAgcHVibGljOgogICAgIH0KIAog
ICAgIGVudW0gT2JzZXJ2ZWRSZXN1bHRzIHsKLSAgICAgICAgTmVnWmVyb0RvdWJsZSAgICA9IDEg
PDwgMCwKLSAgICAgICAgTm9uTnVtYmVyICAgICAgICA9IDEgPDwgMSwKLSAgICAgICAgSW50MzJP
dmVyZmxvdyAgICA9IDEgPDwgMiwKLSAgICAgICAgSW50NTJPdmVyZmxvdyAgICA9IDEgPDwgMywK
KyAgICAgICAgTm9uTmVnWmVyb0RvdWJsZSA9IDEgPDwgMCwKKyAgICAgICAgTmVnWmVyb0RvdWJs
ZSAgICA9IDEgPDwgMSwKKyAgICAgICAgTm9uTnVtYmVyICAgICAgICA9IDEgPDwgMiwKKyAgICAg
ICAgSW50MzJPdmVyZmxvdyAgICA9IDEgPDwgMywKKyAgICAgICAgSW50NTJPdmVyZmxvdyAgICA9
IDEgPDwgNCwKICAgICB9OwogCiAgICAgaW50IGJ5dGVjb2RlT2Zmc2V0KCkgY29uc3QgeyByZXR1
cm4gbV9ieXRlY29kZU9mZnNldEFuZEZsYWdzID4+IG51bWJlck9mRmxhZ0JpdHM7IH0KICAgICB1
bnNpZ25lZCBzcGVjaWFsRmFzdFBhdGhDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fc3BlY2lhbEZh
c3RQYXRoQ291bnQ7IH0KIAorICAgIGJvb2wgZGlkT2JzZXJ2ZU5vbkludDMyKCkgY29uc3QgeyBy
ZXR1cm4gaGFzQml0cyhOb25OZWdaZXJvRG91YmxlIHwgTmVnWmVyb0RvdWJsZSB8IE5vbk51bWJl
cik7IH0KKyAgICBib29sIGRpZE9ic2VydmVEb3VibGUoKSBjb25zdCB7IHJldHVybiBoYXNCaXRz
KE5vbk5lZ1plcm9Eb3VibGUgfCBOZWdaZXJvRG91YmxlKTsgfQorICAgIGJvb2wgZGlkT2JzZXJ2
ZU5vbk5lZ1plcm9Eb3VibGUoKSBjb25zdCB7IHJldHVybiBoYXNCaXRzKE5vbk5lZ1plcm9Eb3Vi
bGUpOyB9CiAgICAgYm9vbCBkaWRPYnNlcnZlTmVnWmVyb0RvdWJsZSgpIGNvbnN0IHsgcmV0dXJu
IGhhc0JpdHMoTmVnWmVyb0RvdWJsZSk7IH0KICAgICBib29sIGRpZE9ic2VydmVOb25OdW1iZXIo
KSBjb25zdCB7IHJldHVybiBoYXNCaXRzKE5vbk51bWJlcik7IH0KICAgICBib29sIGRpZE9ic2Vy
dmVJbnQzMk92ZXJmbG93KCkgY29uc3QgeyByZXR1cm4gaGFzQml0cyhJbnQzMk92ZXJmbG93KTsg
fQogICAgIGJvb2wgZGlkT2JzZXJ2ZUludDUyT3ZlcmZsb3coKSBjb25zdCB7IHJldHVybiBoYXNC
aXRzKEludDUyT3ZlcmZsb3cpOyB9CiAKKyAgICB2b2lkIHNldE9ic2VydmVkTm9uTmVnWmVyb0Rv
dWJsZSgpIHsgc2V0Qml0KE5vbk5lZ1plcm9Eb3VibGUpOyB9CiAgICAgdm9pZCBzZXRPYnNlcnZl
ZE5lZ1plcm9Eb3VibGUoKSB7IHNldEJpdChOZWdaZXJvRG91YmxlKTsgfQogICAgIHZvaWQgc2V0
T2JzZXJ2ZWROb25OdW1iZXIoKSB7IHNldEJpdChOb25OdW1iZXIpOyB9CiAgICAgdm9pZCBzZXRP
YnNlcnZlZEludDMyT3ZlcmZsb3coKSB7IHNldEJpdChJbnQzMk92ZXJmbG93KTsgfQpAQCAtMjM5
LDYgKzI0NywyNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkKiBhZGRyZXNzT2ZGbGFncygpIHsgcmV0
dXJuICZtX2J5dGVjb2RlT2Zmc2V0QW5kRmxhZ3M7IH0KICAgICB2b2lkKiBhZGRyZXNzT2ZTcGVj
aWFsRmFzdFBhdGhDb3VudCgpIHsgcmV0dXJuICZtX3NwZWNpYWxGYXN0UGF0aENvdW50OyB9Cisg
ICAgCisgICAgLy8gU2V0cyAoSW50MzJPdmVyZmxvdyB8IEludDUyT3ZlcmZsb3cgfCBOb25OZWda
ZXJvRG91YmxlIHwgTmVnWmVyb0RvdWJsZSkgaWYgaXQgc2VlcyBhCisgICAgLy8gZG91YmxlLiBT
ZXRzIE5vbk51bWJlciBpZiBpdCBzZWVzIGEgbm9uLW51bWJlci4KKyAgICB2b2lkIGVtaXREZXRl
Y3RCaXRzTGlnaHQoQ0NhbGxIZWxwZXJzJiwgSlNWYWx1ZVJlZ3MsIFRhZ1JlZ2lzdGVyc01vZGUg
PSBIYXZlVGFnUmVnaXN0ZXJzKTsKKyAgICAKKyAgICB2b2lkIGRldGVjdEJpdHNMaWdodChKU1Zh
bHVlIHZhbHVlKQorICAgIHsKKyAgICAgICAgaWYgKHZhbHVlLmlzSW50MzIoKSkKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgaWYgKHZhbHVlLmlzTnVtYmVyKCkpIHsKKyAgICAgICAgICAg
IG1fYnl0ZWNvZGVPZmZzZXRBbmRGbGFncyB8PSBJbnQzMk92ZXJmbG93IHwgSW50NTJPdmVyZmxv
dyB8IE5vbk5lZ1plcm9Eb3VibGUgfCBOZWdaZXJvRG91YmxlOworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisgICAgICAgIG1fYnl0ZWNvZGVPZmZzZXRBbmRGbGFncyB8PSBOb25OdW1i
ZXI7CisgICAgfQorICAgIAorICAgIC8vIFNldHMgKEludDMyT3ZlcmZsb3cgfCBJbnQ1Mk92ZXJm
bG93IHwgTm9uTmVnWmVyb0RvdWJsZSB8IE5lZ1plcm9Eb3VibGUpLgorICAgIHZvaWQgZW1pdFNl
dERvdWJsZShDQ2FsbEhlbHBlcnMmKTsKKyAgICAKKyAgICAvLyBTZXRzIE5vbk51bWJlci4KKyAg
ICB2b2lkIGVtaXRTZXROb25OdW1iZXIoQ0NhbGxIZWxwZXJzJik7CiAKIHByaXZhdGU6CiAgICAg
Ym9vbCBoYXNCaXRzKGludCBtYXNrKSBjb25zdCB7IHJldHVybiBtX2J5dGVjb2RlT2Zmc2V0QW5k
RmxhZ3MgJiBtYXNrOyB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVD
b2RlUGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0J5dGVDb2RlUGFyc2VyLmNwcAkocmV2aXNpb24gMjAwNTkwKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkwNiw0
MCArOTA2LDU4IEBAIHByaXZhdGU6CiAgICAgICAgIGlmICghaXNYODYoKSAmJiBub2RlLT5vcCgp
ID09IEFyaXRoTW9kKQogICAgICAgICAgICAgcmV0dXJuIG5vZGU7CiAKLSAgICAgICAgaWYgKCFt
X2lubGluZVN0YWNrVG9wLT5tX3Byb2ZpbGVkQmxvY2stPmxpa2VseVRvVGFrZVNsb3dDYXNlKG1f
Y3VycmVudEluZGV4KSkKLSAgICAgICAgICAgIHJldHVybiBub2RlOworICAgICAgICBSZXN1bHRQ
cm9maWxlKiByZXN1bHRQcm9maWxlID0gbV9pbmxpbmVTdGFja1RvcC0+bV9wcm9maWxlZEJsb2Nr
LT5yZXN1bHRQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQobV9jdXJyZW50SW5kZXgpOworICAgICAg
ICBpZiAocmVzdWx0UHJvZmlsZSkgeworICAgICAgICAgICAgc3dpdGNoIChub2RlLT5vcCgpKSB7
CisgICAgICAgICAgICBjYXNlIEFyaXRoQWRkOgorICAgICAgICAgICAgY2FzZSBBcml0aFN1YjoK
KyAgICAgICAgICAgIGNhc2UgVmFsdWVBZGQ6CisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdFBy
b2ZpbGUtPmRpZE9ic2VydmVEb3VibGUoKSkKKyAgICAgICAgICAgICAgICAgICAgbm9kZS0+bWVy
Z2VGbGFncyhOb2RlTWF5SGF2ZURvdWJsZVJlc3VsdCk7CisgICAgICAgICAgICAgICAgaWYgKHJl
c3VsdFByb2ZpbGUtPmRpZE9ic2VydmVOb25OdW1iZXIoKSkKKyAgICAgICAgICAgICAgICAgICAg
bm9kZS0+bWVyZ2VGbGFncyhOb2RlTWF5SGF2ZU5vbk51bWJlclJlc3VsdCk7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBjYXNlIEFyaXRoTXVs
OiB7CisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdFByb2ZpbGUtPmRpZE9ic2VydmVJbnQ1Mk92
ZXJmbG93KCkpCisgICAgICAgICAgICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1heU92
ZXJmbG93SW50NTIpOworICAgICAgICAgICAgICAgIGlmIChyZXN1bHRQcm9maWxlLT5kaWRPYnNl
cnZlSW50MzJPdmVyZmxvdygpIHx8IG1faW5saW5lU3RhY2tUb3AtPm1fZXhpdFByb2ZpbGUuaGFz
RXhpdFNpdGUobV9jdXJyZW50SW5kZXgsIE92ZXJmbG93KSkKKyAgICAgICAgICAgICAgICAgICAg
bm9kZS0+bWVyZ2VGbGFncyhOb2RlTWF5T3ZlcmZsb3dJbnQzMkluQmFzZWxpbmUpOworICAgICAg
ICAgICAgICAgIGlmIChyZXN1bHRQcm9maWxlLT5kaWRPYnNlcnZlTmVnWmVyb0RvdWJsZSgpIHx8
IG1faW5saW5lU3RhY2tUb3AtPm1fZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJyZW50SW5k
ZXgsIE5lZ2F0aXZlWmVybykpCisgICAgICAgICAgICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3Mo
Tm9kZU1heU5lZ1plcm9JbkJhc2VsaW5lKTsKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0UHJv
ZmlsZS0+ZGlkT2JzZXJ2ZURvdWJsZSgpKQorICAgICAgICAgICAgICAgICAgICBub2RlLT5tZXJn
ZUZsYWdzKE5vZGVNYXlIYXZlRG91YmxlUmVzdWx0KTsKKyAgICAgICAgICAgICAgICBpZiAocmVz
dWx0UHJvZmlsZS0+ZGlkT2JzZXJ2ZU5vbk51bWJlcigpKQorICAgICAgICAgICAgICAgICAgICBu
b2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlIYXZlTm9uTnVtYmVyUmVzdWx0KTsKKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAg
IGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAg
IH0KICAgICAgICAgCi0gICAgICAgIHN3aXRjaCAobm9kZS0+b3AoKSkgewotICAgICAgICBjYXNl
IFVJbnQzMlRvTnVtYmVyOgotICAgICAgICBjYXNlIEFyaXRoQWRkOgotICAgICAgICBjYXNlIEFy
aXRoU3ViOgotICAgICAgICBjYXNlIFZhbHVlQWRkOgotICAgICAgICBjYXNlIEFyaXRoTW9kOiAv
LyBmb3IgQXJpdGhNb2QgIk1heU92ZXJmbG93IiBtZWFucyB3ZSB0cmllZCB0byBkaXZpZGUgYnkg
emVybywgb3Igd2Ugc2F3IGRvdWJsZS4KLSAgICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3MoTm9k
ZU1heU92ZXJmbG93SW50MzJJbkJhc2VsaW5lKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICAgICAgCi0gICAgICAgIGNhc2UgQXJpdGhOZWdhdGU6Ci0gICAgICAgICAgICAvLyBDdXJyZW50
bHkgd2UgY2FuJ3QgdGVsbCB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIGEgbmVnYXRpb24gb3ZlcmZs
b3dpbmcKLSAgICAgICAgICAgIC8vIChpLmUuIC0oMSA8PCAzMSkpIG9yIGdlbmVyYXRpbmcgbmVn
YXRpdmUgemVybyAoaS5lLiAtMCkuIElmIGl0IHRvb2sgc2xvdwotICAgICAgICAgICAgLy8gcGF0
aCB0aGVuIHdlIGFzc3VtZSB0aGF0IGl0IGRpZCBib3RoIG9mIHRob3NlIHRoaW5ncy4KLSAgICAg
ICAgICAgIG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1heU92ZXJmbG93SW50MzJJbkJhc2VsaW5lKTsK
LSAgICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1heU5lZ1plcm9JbkJhc2VsaW5lKTsK
LSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIGNhc2UgQXJpdGhNdWw6IHsKLSAgICAgICAg
ICAgIFJlc3VsdFByb2ZpbGUmIHJlc3VsdFByb2ZpbGUgPSAqbV9pbmxpbmVTdGFja1RvcC0+bV9w
cm9maWxlZEJsb2NrLT5yZXN1bHRQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQobV9jdXJyZW50SW5k
ZXgpOwotICAgICAgICAgICAgaWYgKHJlc3VsdFByb2ZpbGUuZGlkT2JzZXJ2ZUludDUyT3ZlcmZs
b3coKSkKLSAgICAgICAgICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlPdmVyZmxvd0lu
dDUyKTsKLSAgICAgICAgICAgIGlmIChyZXN1bHRQcm9maWxlLmRpZE9ic2VydmVJbnQzMk92ZXJm
bG93KCkgfHwgbV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5oYXNFeGl0U2l0ZShtX2N1
cnJlbnRJbmRleCwgT3ZlcmZsb3cpKQorICAgICAgICBpZiAobV9pbmxpbmVTdGFja1RvcC0+bV9w
cm9maWxlZEJsb2NrLT5saWtlbHlUb1Rha2VTbG93Q2FzZShtX2N1cnJlbnRJbmRleCkpIHsKKyAg
ICAgICAgICAgIHN3aXRjaCAobm9kZS0+b3AoKSkgeworICAgICAgICAgICAgY2FzZSBVSW50MzJU
b051bWJlcjoKKyAgICAgICAgICAgIGNhc2UgQXJpdGhBZGQ6CisgICAgICAgICAgICBjYXNlIEFy
aXRoU3ViOgorICAgICAgICAgICAgY2FzZSBWYWx1ZUFkZDoKKyAgICAgICAgICAgIGNhc2UgQXJp
dGhNb2Q6IC8vIGZvciBBcml0aE1vZCAiTWF5T3ZlcmZsb3ciIG1lYW5zIHdlIHRyaWVkIHRvIGRp
dmlkZSBieSB6ZXJvLCBvciB3ZSBzYXcgZG91YmxlLgorICAgICAgICAgICAgICAgIG5vZGUtPm1l
cmdlRmxhZ3MoTm9kZU1heU92ZXJmbG93SW50MzJJbkJhc2VsaW5lKTsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGNhc2UgQXJpdGhOZWdhdGU6
CisgICAgICAgICAgICAgICAgLy8gQ3VycmVudGx5IHdlIGNhbid0IHRlbGwgdGhlIGRpZmZlcmVu
Y2UgYmV0d2VlbiBhIG5lZ2F0aW9uIG92ZXJmbG93aW5nCisgICAgICAgICAgICAgICAgLy8gKGku
ZS4gLSgxIDw8IDMxKSkgb3IgZ2VuZXJhdGluZyBuZWdhdGl2ZSB6ZXJvIChpLmUuIC0wKS4gSWYg
aXQgdG9vayBzbG93CisgICAgICAgICAgICAgICAgLy8gcGF0aCB0aGVuIHdlIGFzc3VtZSB0aGF0
IGl0IGRpZCBib3RoIG9mIHRob3NlIHRoaW5ncy4KICAgICAgICAgICAgICAgICBub2RlLT5tZXJn
ZUZsYWdzKE5vZGVNYXlPdmVyZmxvd0ludDMySW5CYXNlbGluZSk7Ci0gICAgICAgICAgICBpZiAo
cmVzdWx0UHJvZmlsZS5kaWRPYnNlcnZlTmVnWmVyb0RvdWJsZSgpIHx8IG1faW5saW5lU3RhY2tU
b3AtPm1fZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJyZW50SW5kZXgsIE5lZ2F0aXZlWmVy
bykpCiAgICAgICAgICAgICAgICAgbm9kZS0+bWVyZ2VGbGFncyhOb2RlTWF5TmVnWmVyb0luQmFz
ZWxpbmUpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLQotICAgICAgICBkZWZhdWx0
OgotICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIAorICAgICAg
ICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KICAg
ICAgICAgfQogICAgICAgICAKICAgICAgICAgcmV0dXJuIG5vZGU7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAJKHJldmlzaW9uIDIwMDU5MCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTIzNiw4ICsyMzYsNyBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIEFyaXRoTXVsOiB7
CiAgICAgICAgICAgICBFZGdlJiBsZWZ0Q2hpbGQgPSBub2RlLT5jaGlsZDEoKTsKICAgICAgICAg
ICAgIEVkZ2UmIHJpZ2h0Q2hpbGQgPSBub2RlLT5jaGlsZDIoKTsKLSAgICAgICAgICAgIGlmIChO
b2RlOjpzaG91bGRTcGVjdWxhdGVVbnR5cGVkRm9yQXJpdGhtZXRpYyhsZWZ0Q2hpbGQubm9kZSgp
LCByaWdodENoaWxkLm5vZGUoKSkKLSAgICAgICAgICAgICAgICAmJiBtX2dyYXBoLmhhc0V4aXRT
aXRlKG5vZGUtPm9yaWdpbi5zZW1hbnRpYywgQmFkVHlwZSkpIHsKKyAgICAgICAgICAgIGlmIChO
b2RlOjpzaG91bGRTcGVjdWxhdGVVbnR5cGVkRm9yQXJpdGhtZXRpYyhsZWZ0Q2hpbGQubm9kZSgp
LCByaWdodENoaWxkLm5vZGUoKSkpIHsKICAgICAgICAgICAgICAgICBmaXhFZGdlPFVudHlwZWRV
c2U+KGxlZnRDaGlsZCk7CiAgICAgICAgICAgICAgICAgZml4RWRnZTxVbnR5cGVkVXNlPihyaWdo
dENoaWxkKTsKICAgICAgICAgICAgICAgICBub2RlLT5zZXRSZXN1bHQoTm9kZVJlc3VsdEpTKTsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguY3BwCShyZXZpc2lvbiAyMDA1
OTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTQ0Niw0NiArMTQ0Niw1MCBAQCB2b2lkIEdyYXBoOjplbnN1cmVOYXR1cmFsTG9v
cHMoKQogICAgICAgICBtX25hdHVyYWxMb29wcyA9IHN0ZDo6bWFrZV91bmlxdWU8TmF0dXJhbExv
b3BzPigqdGhpcyk7CiB9CiAKLVZhbHVlUHJvZmlsZSogR3JhcGg6OnZhbHVlUHJvZmlsZUZvcihO
b2RlKiBub2RlKQorTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZSBHcmFwaDo6bWV0aG9kT2ZH
ZXR0aW5nQVZhbHVlUHJvZmlsZUZvcihOb2RlKiBub2RlKQogewotICAgIGlmICghbm9kZSkKLSAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgd2hpbGUgKG5vZGUpIHsKKyAgICAgICAgQ29kZUJs
b2NrKiBwcm9maWxlZEJsb2NrID0gYmFzZWxpbmVDb2RlQmxvY2tGb3Iobm9kZS0+b3JpZ2luLnNl
bWFudGljKTsKICAgICAgICAgCi0gICAgQ29kZUJsb2NrKiBwcm9maWxlZEJsb2NrID0gYmFzZWxp
bmVDb2RlQmxvY2tGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKTsKKyAgICAgICAgaWYgKG5vZGUt
Pmhhc0xvY2FsKCp0aGlzKSkgeworICAgICAgICAgICAgVmFsdWVQcm9maWxlKiByZXN1bHQgPSBb
Jl0gKCkgLT4gVmFsdWVQcm9maWxlKiB7CisgICAgICAgICAgICAgICAgaWYgKCFub2RlLT5sb2Nh
bCgpLmlzQXJndW1lbnQoKSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Cisg
ICAgICAgICAgICAgICAgaW50IGFyZ3VtZW50ID0gbm9kZS0+bG9jYWwoKS50b0FyZ3VtZW50KCk7
CisgICAgICAgICAgICAgICAgTm9kZSogYXJndW1lbnROb2RlID0gbV9hcmd1bWVudHNbYXJndW1l
bnRdOworICAgICAgICAgICAgICAgIGlmICghYXJndW1lbnROb2RlKQorICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgICAgICAgICBpZiAobm9kZS0+dmFyaWFibGVB
Y2Nlc3NEYXRhKCkgIT0gYXJndW1lbnROb2RlLT52YXJpYWJsZUFjY2Vzc0RhdGEoKSkKKyAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgICAgICAgICAgcmV0dXJuIHBy
b2ZpbGVkQmxvY2stPnZhbHVlUHJvZmlsZUZvckFyZ3VtZW50KGFyZ3VtZW50KTsKKyAgICAgICAg
ICAgIH0oKTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQpCisgICAgICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKG5vZGUtPm9wKCkgPT0gR2V0
TG9jYWwpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJv
ZmlsZTo6ZnJvbUxhenlPcGVyYW5kKAorICAgICAgICAgICAgICAgICAgICBwcm9maWxlZEJsb2Nr
LAorICAgICAgICAgICAgICAgICAgICBMYXp5T3BlcmFuZFZhbHVlUHJvZmlsZUtleSgKKyAgICAg
ICAgICAgICAgICAgICAgICAgIG5vZGUtPm9yaWdpbi5zZW1hbnRpYy5ieXRlY29kZUluZGV4LCBu
b2RlLT5sb2NhbCgpKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KICAgICAgICAgCi0gICAg
aWYgKG5vZGUtPmhhc0xvY2FsKCp0aGlzKSkgewotICAgICAgICBpZiAoIW5vZGUtPmxvY2FsKCku
aXNBcmd1bWVudCgpKQotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAgIGludCBh
cmd1bWVudCA9IG5vZGUtPmxvY2FsKCkudG9Bcmd1bWVudCgpOwotICAgICAgICBOb2RlKiBhcmd1
bWVudE5vZGUgPSBtX2FyZ3VtZW50c1thcmd1bWVudF07Ci0gICAgICAgIGlmICghYXJndW1lbnRO
b2RlKQotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAgIGlmIChub2RlLT52YXJp
YWJsZUFjY2Vzc0RhdGEoKSAhPSBhcmd1bWVudE5vZGUtPnZhcmlhYmxlQWNjZXNzRGF0YSgpKQot
ICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAgIHJldHVybiBwcm9maWxlZEJsb2Nr
LT52YWx1ZVByb2ZpbGVGb3JBcmd1bWVudChhcmd1bWVudCk7Ci0gICAgfQorICAgICAgICBpZiAo
bm9kZS0+aGFzSGVhcFByZWRpY3Rpb24oKSkKKyAgICAgICAgICAgIHJldHVybiBwcm9maWxlZEJs
b2NrLT52YWx1ZVByb2ZpbGVGb3JCeXRlY29kZU9mZnNldChub2RlLT5vcmlnaW4uc2VtYW50aWMu
Ynl0ZWNvZGVJbmRleCk7CiAgICAgICAgIAotICAgIGlmIChub2RlLT5oYXNIZWFwUHJlZGljdGlv
bigpKQotICAgICAgICByZXR1cm4gcHJvZmlsZWRCbG9jay0+dmFsdWVQcm9maWxlRm9yQnl0ZWNv
ZGVPZmZzZXQobm9kZS0+b3JpZ2luLnNlbWFudGljLmJ5dGVjb2RlSW5kZXgpOworICAgICAgICBp
ZiAoUmVzdWx0UHJvZmlsZSogcmVzdWx0ID0gcHJvZmlsZWRCbG9jay0+cmVzdWx0UHJvZmlsZUZv
ckJ5dGVjb2RlT2Zmc2V0KG5vZGUtPm9yaWdpbi5zZW1hbnRpYy5ieXRlY29kZUluZGV4KSkKKyAg
ICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgIAotICAgIHJldHVybiBudWxscHRyOwot
fQotCi1NZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlIEdyYXBoOjptZXRob2RPZkdldHRpbmdB
VmFsdWVQcm9maWxlRm9yKE5vZGUqIG5vZGUpCi17Ci0gICAgaWYgKCFub2RlKQotICAgICAgICBy
ZXR1cm4gTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZSgpOwotICAgIAotICAgIGlmIChWYWx1
ZVByb2ZpbGUqIHZhbHVlUHJvZmlsZSA9IHZhbHVlUHJvZmlsZUZvcihub2RlKSkKLSAgICAgICAg
cmV0dXJuIE1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUodmFsdWVQcm9maWxlKTsKLSAgICAK
LSAgICBpZiAobm9kZS0+b3AoKSA9PSBHZXRMb2NhbCkgewotICAgICAgICBDb2RlQmxvY2sqIHBy
b2ZpbGVkQmxvY2sgPSBiYXNlbGluZUNvZGVCbG9ja0Zvcihub2RlLT5vcmlnaW4uc2VtYW50aWMp
OwotICAgICAgICAKLSAgICAgICAgcmV0dXJuIE1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGU6
OmZyb21MYXp5T3BlcmFuZCgKLSAgICAgICAgICAgIHByb2ZpbGVkQmxvY2ssCi0gICAgICAgICAg
ICBMYXp5T3BlcmFuZFZhbHVlUHJvZmlsZUtleSgKLSAgICAgICAgICAgICAgICBub2RlLT5vcmln
aW4uc2VtYW50aWMuYnl0ZWNvZGVJbmRleCwgbm9kZS0+bG9jYWwoKSkpOworICAgICAgICBzd2l0
Y2ggKG5vZGUtPm9wKCkpIHsKKyAgICAgICAgY2FzZSBJZGVudGl0eToKKyAgICAgICAgY2FzZSBW
YWx1ZVJlcDoKKyAgICAgICAgY2FzZSBEb3VibGVSZXA6CisgICAgICAgIGNhc2UgSW50NTJSZXA6
CisgICAgICAgICAgICBub2RlID0gbm9kZS0+Y2hpbGQxKCkubm9kZSgpOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBub2RlID0gbnVsbHB0cjsKKyAg
ICAgICAgfQogICAgIH0KICAgICAKICAgICByZXR1cm4gTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJv
ZmlsZSgpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaAkocmV2aXNpb24g
MjAwNTkwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oCSh3b3JraW5n
IGNvcHkpCkBAIC00MDAsNyArNDAwLDYgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gaGFzRXhp
dFNpdGUobm9kZS0+b3JpZ2luLnNlbWFudGljLCBleGl0S2luZCk7CiAgICAgfQogICAgIAotICAg
IFZhbHVlUHJvZmlsZSogdmFsdWVQcm9maWxlRm9yKE5vZGUqKTsKICAgICBNZXRob2RPZkdldHRp
bmdBVmFsdWVQcm9maWxlIG1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGVGb3IoTm9kZSopOwog
ICAgIAogICAgIEJsb2NrSW5kZXggbnVtQmxvY2tzKCkgY29uc3QgeyByZXR1cm4gbV9ibG9ja3Mu
c2l6ZSgpOyB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAkocmV2aXNpb24g
MjAwNTkwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTk1Miw2ICs5NTIsMjEgQEAgc3RydWN0IE5vZGUgewogICAgICAgICByZXR1cm4g
cmVzdWx0ICYgfk5vZGVCeXRlY29kZU5lZWRzTmVnWmVybzsKICAgICB9CiAKKyAgICBib29sIG1h
eUhhdmVOb25JbnRSZXN1bHQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fZmxhZ3MgJiBOb2Rl
TWF5SGF2ZU5vbkludFJlc3VsdDsKKyAgICB9CisgICAgCisgICAgYm9vbCBtYXlIYXZlRG91Ymxl
UmVzdWx0KCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX2ZsYWdzICYgTm9kZU1heUhhdmVEb3Vi
bGVSZXN1bHQ7CisgICAgfQorICAgIAorICAgIGJvb2wgbWF5SGF2ZU5vbk51bWJlclJlc3VsdCgp
CisgICAgeworICAgICAgICByZXR1cm4gbV9mbGFncyAmIE5vZGVNYXlIYXZlTm9uTnVtYmVyUmVz
dWx0OworICAgIH0KKwogICAgIGJvb2wgaGFzQ29uc3RhbnRCdWZmZXIoKQogICAgIHsKICAgICAg
ICAgcmV0dXJuIG9wKCkgPT0gTmV3QXJyYXlCdWZmZXI7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR05vZGVGbGFncy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdOb2RlRmxhZ3MuY3BwCShyZXZpc2lvbiAyMDA1OTApCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVGbGFncy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg1
LDYgKzg1LDEyIEBAIHZvaWQgZHVtcE5vZGVGbGFncyhQcmludFN0cmVhbSYgYWN0dWFsT3UKICAg
ICAgICAgICAgIG91dC5wcmludChjb21tYSwgIlVzZUFzT3RoZXIiKTsKICAgICB9CiAKKyAgICBp
ZiAoZmxhZ3MgJiBOb2RlTWF5SGF2ZURvdWJsZVJlc3VsdCkKKyAgICAgICAgb3V0LnByaW50KGNv
bW1hLCAiTWF5SGF2ZURvdWJsZVJlc3VsdCIpOworCisgICAgaWYgKGZsYWdzICYgTm9kZU1heUhh
dmVOb25OdW1iZXJSZXN1bHQpCisgICAgICAgIG91dC5wcmludChjb21tYSwgIk1heUhhdmVOb25O
dW1iZXJSZXN1bHQiKTsKKwogICAgIGlmIChmbGFncyAmIE5vZGVNYXlPdmVyZmxvd0ludDUyKQog
ICAgICAgICBvdXQucHJpbnQoY29tbWEsICJNYXlPdmVyZmxvd0ludDUyIik7CiAKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZUZsYWdzLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlRmxhZ3MuaAkocmV2aXNpb24gMjAwNTkwKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlRmxhZ3MuaAkod29ya2luZyBjb3B5
KQpAQCAtNDgsMjggKzQ4LDMwIEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKICNk
ZWZpbmUgTm9kZUhhc1ZhckFyZ3MgICAgICAgICAgICAgICAgICAgMHgwMDEwCiAgICAgCiAjZGVm
aW5lIE5vZGVCZWhhdmlvck1hc2sgICAgICAgICAgICAgICAgIDB4MDdlMAorI2RlZmluZSBOb2Rl
TWF5SGF2ZURvdWJsZVJlc3VsdCAgICAgICAgICAweDAwMjAKICNkZWZpbmUgTm9kZU1heU92ZXJm
bG93SW50NTIgICAgICAgICAgICAgMHgwMDQwCiAjZGVmaW5lIE5vZGVNYXlPdmVyZmxvd0ludDMy
SW5CYXNlbGluZSAgIDB4MDA4MAogI2RlZmluZSBOb2RlTWF5T3ZlcmZsb3dJbnQzMkluREZHICAg
ICAgICAweDAxMDAKICNkZWZpbmUgTm9kZU1heU5lZ1plcm9JbkJhc2VsaW5lICAgICAgICAgMHgw
MjAwCiAjZGVmaW5lIE5vZGVNYXlOZWdaZXJvSW5ERkcgICAgICAgICAgICAgIDB4MDQwMAorI2Rl
ZmluZSBOb2RlTWF5SGF2ZU5vbk51bWJlclJlc3VsdCAgICAgICAweDA4MDAKKyNkZWZpbmUgTm9k
ZU1heUhhdmVOb25JbnRSZXN1bHQgICAgICAgICAgKE5vZGVNYXlIYXZlRG91YmxlUmVzdWx0IHwg
Tm9kZU1heUhhdmVOb25OdW1iZXJSZXN1bHQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIAotI2RlZmluZSBOb2RlQnl0ZWNvZGVCYWNrUHJvcE1hc2sgICAgICAgICAweGY4MDAKLSNk
ZWZpbmUgTm9kZUJ5dGVjb2RlVXNlQm90dG9tICAgICAgICAgICAgMHgwMDAwCi0jZGVmaW5lIE5v
ZGVCeXRlY29kZVVzZXNBc051bWJlciAgICAgICAgIDB4MDgwMCAvLyBUaGUgcmVzdWx0IG9mIHRo
aXMgY29tcHV0YXRpb24gbWF5IGJlIHVzZWQgaW4gYSBjb250ZXh0IHRoYXQgb2JzZXJ2ZXMgZnJh
Y3Rpb25hbCwgb3IgYmlnZ2VyLXRoYW4taW50MzIsIHJlc3VsdHMuCi0jZGVmaW5lIE5vZGVCeXRl
Y29kZU5lZWRzTmVnWmVybyAgICAgICAgIDB4MTAwMCAvLyBUaGUgcmVzdWx0IG9mIHRoaXMgY29t
cHV0YXRpb24gbWF5IGJlIHVzZWQgaW4gYSBjb250ZXh0IHRoYXQgb2JzZXJ2ZXMgLTAuCi0jZGVm
aW5lIE5vZGVCeXRlY29kZVVzZXNBc090aGVyICAgICAgICAgIDB4MjAwMCAvLyBUaGUgcmVzdWx0
IG9mIHRoaXMgY29tcHV0YXRpb24gbWF5IGJlIHVzZWQgaW4gYSBjb250ZXh0IHRoYXQgZGlzdGlu
Z3Vpc2hlcyBiZXR3ZWVuIE5hTiBhbmQgb3RoZXIgdGhpbmdzIChsaWtlIHVuZGVmaW5lZCkuCi0j
ZGVmaW5lIE5vZGVCeXRlY29kZVVzZXNBc1ZhbHVlICAgICAgICAgIChOb2RlQnl0ZWNvZGVVc2Vz
QXNOdW1iZXIgfCBOb2RlQnl0ZWNvZGVOZWVkc05lZ1plcm8gfCBOb2RlQnl0ZWNvZGVVc2VzQXNP
dGhlcikKLSNkZWZpbmUgTm9kZUJ5dGVjb2RlVXNlc0FzSW50ICAgICAgICAgICAgMHg0MDAwIC8v
IFRoZSByZXN1bHQgb2YgdGhpcyBjb21wdXRhdGlvbiBpcyBrbm93biB0byBiZSB1c2VkIGluIGEg
Y29udGV4dCB0aGF0IHByZWZlcnMsIGJ1dCBkb2VzIG5vdCByZXF1aXJlLCBpbnRlZ2VyIHZhbHVl
cy4KLSNkZWZpbmUgTm9kZUJ5dGVjb2RlVXNlc0FzQXJyYXlJbmRleCAgICAgMHg4MDAwIC8vIFRo
ZSByZXN1bHQgb2YgdGhpcyBjb21wdXRhdGlvbiBpcyBrbm93biB0byBiZSB1c2VkIGluIGEgY29u
dGV4dCB0aGF0IHN0cm9uZ2x5IHByZWZlcnMgaW50ZWdlciB2YWx1ZXMsIHRvIHRoZSBwb2ludCB0
aGF0IHdlIHNob3VsZCBhdm9pZCB1c2luZyBkb3VibGVzIGlmIGF0IGFsbCBwb3NzaWJsZS4KKyNk
ZWZpbmUgTm9kZUJ5dGVjb2RlQmFja1Byb3BNYXNrICAgICAgICAweDFmMDAwCisjZGVmaW5lIE5v
ZGVCeXRlY29kZVVzZUJvdHRvbSAgICAgICAgICAgMHgwMDAwMAorI2RlZmluZSBOb2RlQnl0ZWNv
ZGVVc2VzQXNOdW1iZXIgICAgICAgIDB4MDEwMDAgLy8gVGhlIHJlc3VsdCBvZiB0aGlzIGNvbXB1
dGF0aW9uIG1heSBiZSB1c2VkIGluIGEgY29udGV4dCB0aGF0IG9ic2VydmVzIGZyYWN0aW9uYWws
IG9yIGJpZ2dlci10aGFuLWludDMyLCByZXN1bHRzLgorI2RlZmluZSBOb2RlQnl0ZWNvZGVOZWVk
c05lZ1plcm8gICAgICAgIDB4MDIwMDAgLy8gVGhlIHJlc3VsdCBvZiB0aGlzIGNvbXB1dGF0aW9u
IG1heSBiZSB1c2VkIGluIGEgY29udGV4dCB0aGF0IG9ic2VydmVzIC0wLgorI2RlZmluZSBOb2Rl
Qnl0ZWNvZGVVc2VzQXNPdGhlciAgICAgICAgIDB4MDQwMDAgLy8gVGhlIHJlc3VsdCBvZiB0aGlz
IGNvbXB1dGF0aW9uIG1heSBiZSB1c2VkIGluIGEgY29udGV4dCB0aGF0IGRpc3Rpbmd1aXNoZXMg
YmV0d2VlbiBOYU4gYW5kIG90aGVyIHRoaW5ncyAobGlrZSB1bmRlZmluZWQpLgorI2RlZmluZSBO
b2RlQnl0ZWNvZGVVc2VzQXNWYWx1ZSAgICAgICAgIChOb2RlQnl0ZWNvZGVVc2VzQXNOdW1iZXIg
fCBOb2RlQnl0ZWNvZGVOZWVkc05lZ1plcm8gfCBOb2RlQnl0ZWNvZGVVc2VzQXNPdGhlcikKKyNk
ZWZpbmUgTm9kZUJ5dGVjb2RlVXNlc0FzSW50ICAgICAgICAgICAweDA4MDAwIC8vIFRoZSByZXN1
bHQgb2YgdGhpcyBjb21wdXRhdGlvbiBpcyBrbm93biB0byBiZSB1c2VkIGluIGEgY29udGV4dCB0
aGF0IHByZWZlcnMsIGJ1dCBkb2VzIG5vdCByZXF1aXJlLCBpbnRlZ2VyIHZhbHVlcy4KKyNkZWZp
bmUgTm9kZUJ5dGVjb2RlVXNlc0FzQXJyYXlJbmRleCAgICAweDEwMDAwIC8vIFRoZSByZXN1bHQg
b2YgdGhpcyBjb21wdXRhdGlvbiBpcyBrbm93biB0byBiZSB1c2VkIGluIGEgY29udGV4dCB0aGF0
IHN0cm9uZ2x5IHByZWZlcnMgaW50ZWdlciB2YWx1ZXMsIHRvIHRoZSBwb2ludCB0aGF0IHdlIHNo
b3VsZCBhdm9pZCB1c2luZyBkb3VibGVzIGlmIGF0IGFsbCBwb3NzaWJsZS4KIAogI2RlZmluZSBO
b2RlQXJpdGhGbGFnc01hc2sgICAgICAgICAgICAgICAoTm9kZUJlaGF2aW9yTWFzayB8IE5vZGVC
eXRlY29kZUJhY2tQcm9wTWFzaykKIAotI2RlZmluZSBOb2RlSXNGbHVzaGVkICAgICAgICAgICAg
ICAgICAgIDB4MTAwMDAgLy8gQ29tcHV0ZWQgYnkgQ1BTUmV0aHJlYWRpbmdQaGFzZSwgd2lsbCB0
ZWxsIHlvdSB3aGljaCBsb2NhbCBub2RlcyBhcmUgYmFja3dhcmRzLXJlYWNoYWJsZSBmcm9tIGEg
Rmx1c2guCisjZGVmaW5lIE5vZGVJc0ZsdXNoZWQgICAgICAgICAgICAgICAgICAgMHgyMDAwMCAv
LyBDb21wdXRlZCBieSBDUFNSZXRocmVhZGluZ1BoYXNlLCB3aWxsIHRlbGwgeW91IHdoaWNoIGxv
Y2FsIG5vZGVzIGFyZSBiYWNrd2FyZHMtcmVhY2hhYmxlIGZyb20gYSBGbHVzaC4KIAotI2RlZmlu
ZSBOb2RlTWlzY0ZsYWcxICAgICAgICAgICAgICAgICAgIDB4MjAwMDAKLSNkZWZpbmUgTm9kZU1p
c2NGbGFnMiAgICAgICAgICAgICAgICAgICAweDQwMDAwCi0jZGVmaW5lIE5vZGVNaXNjRmxhZzMg
ICAgICAgICAgICAgICAgICAgMHg4MDAwMAorI2RlZmluZSBOb2RlTWlzY0ZsYWcxICAgICAgICAg
ICAgICAgICAgIDB4NDAwMDAKKyNkZWZpbmUgTm9kZU1pc2NGbGFnMiAgICAgICAgICAgICAgICAg
ICAweDgwMDAwCiAKIHR5cGVkZWYgdWludDMyX3QgTm9kZUZsYWdzOwogCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlcjMyXzY0LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlcjMyXzY0LmNw
cAkocmV2aXNpb24gMjAwNTkwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JF
eGl0Q29tcGlsZXIzMl82NC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEzLTIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEzLTIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMjgs
MjggKzEyOCwzMCBAQCB2b2lkIE9TUkV4aXRDb21waWxlcjo6Y29tcGlsZUV4aXQoY29uc3QgCiAg
ICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIGlmICghIWV4aXQubV92
YWx1ZVByb2ZpbGUpIHsKLSAgICAgICAgICAgIEVuY29kZWRKU1ZhbHVlKiBidWNrZXQgPSBleGl0
Lm1fdmFsdWVQcm9maWxlLmdldFNwZWNGYWlsQnVja2V0KDApOwotICAgICAgICAKKyAgICAgICAg
aWYgKE1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUgcHJvZmlsZSA9IGV4aXQubV92YWx1ZVBy
b2ZpbGUpIHsKICAgICAgICAgICAgIGlmIChleGl0Lm1fanNWYWx1ZVNvdXJjZS5pc0FkZHJlc3Mo
KSkgewogICAgICAgICAgICAgICAgIC8vIFNhdmUgYSByZWdpc3RlciBzbyB3ZSBjYW4gdXNlIGl0
LgotICAgICAgICAgICAgICAgIEdQUlJlZyBzY3JhdGNoID0gQXNzZW1ibHlIZWxwZXJzOjpzZWxl
Y3RTY3JhdGNoR1BSKGV4aXQubV9qc1ZhbHVlU291cmNlLmJhc2UoKSk7Ci0gICAgICAgICAgICAg
ICAgCi0gICAgICAgICAgICAgICAgbV9qaXQucHVzaChzY3JhdGNoKTsKKyAgICAgICAgICAgICAg
ICBHUFJSZWcgc2NyYXRjaFBheWxvYWQgPSBBc3NlbWJseUhlbHBlcnM6OnNlbGVjdFNjcmF0Y2hH
UFIoZXhpdC5tX2pzVmFsdWVTb3VyY2UuYmFzZSgpKTsKKyAgICAgICAgICAgICAgICBHUFJSZWcg
c2NyYXRjaFRhZyA9IEFzc2VtYmx5SGVscGVyczo6c2VsZWN0U2NyYXRjaEdQUihleGl0Lm1fanNW
YWx1ZVNvdXJjZS5iYXNlKCksIHNjcmF0Y2hQYXlsb2FkKTsKKyAgICAgICAgICAgICAgICBtX2pp
dC5wdXNoVG9TYXZlKHNjcmF0Y2hQYXlsb2FkKTsKKyAgICAgICAgICAgICAgICBtX2ppdC5wdXNo
VG9TYXZlKHNjcmF0Y2hUYWcpOwogCi0gICAgICAgICAgICAgICAgbV9qaXQubG9hZDMyKGV4aXQu
bV9qc1ZhbHVlU291cmNlLmFzQWRkcmVzcyhPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVz
Y3JpcHRvciwgYXNCaXRzLnRhZykpLCBzY3JhdGNoKTsKLSAgICAgICAgICAgICAgICBtX2ppdC5z
dG9yZTMyKHNjcmF0Y2gsICZiaXR3aXNlX2Nhc3Q8RW5jb2RlZFZhbHVlRGVzY3JpcHRvcio+KGJ1
Y2tldCktPmFzQml0cy50YWcpOwotICAgICAgICAgICAgICAgIG1faml0LmxvYWQzMihleGl0Lm1f
anNWYWx1ZVNvdXJjZS5hc0FkZHJlc3MoT0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1ZURlc2Ny
aXB0b3IsIGFzQml0cy5wYXlsb2FkKSksIHNjcmF0Y2gpOwotICAgICAgICAgICAgICAgIG1faml0
LnN0b3JlMzIoc2NyYXRjaCwgJmJpdHdpc2VfY2FzdDxFbmNvZGVkVmFsdWVEZXNjcmlwdG9yKj4o
YnVja2V0KS0+YXNCaXRzLnBheWxvYWQpOworICAgICAgICAgICAgICAgIEpTVmFsdWVSZWdzIHNj
cmF0Y2goc2NyYXRjaFRhZywgc2NyYXRjaFBheWxvYWQpOwogICAgICAgICAgICAgICAgIAotICAg
ICAgICAgICAgICAgIG1faml0LnBvcChzY3JhdGNoKTsKKyAgICAgICAgICAgICAgICBtX2ppdC5s
b2FkVmFsdWUoZXhpdC5tX2pzVmFsdWVTb3VyY2UuYXNBZGRyZXNzKCksIHNjcmF0Y2gpOworICAg
ICAgICAgICAgICAgIHByb2ZpbGUuZW1pdFJlcG9ydFZhbHVlKG1faml0LCBzY3JhdGNoKTsKKyAg
ICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBtX2ppdC5wb3BUb1Jlc3RvcmUoc2NyYXRj
aFRhZyk7CisgICAgICAgICAgICAgICAgbV9qaXQucG9wVG9SZXN0b3JlKHNjcmF0Y2hQYXlsb2Fk
KTsKICAgICAgICAgICAgIH0gZWxzZSBpZiAoZXhpdC5tX2pzVmFsdWVTb3VyY2UuaGFzS25vd25U
YWcoKSkgewotICAgICAgICAgICAgICAgIG1faml0LnN0b3JlMzIoQXNzZW1ibHlIZWxwZXJzOjpU
cnVzdGVkSW1tMzIoZXhpdC5tX2pzVmFsdWVTb3VyY2UudGFnKCkpLCAmYml0d2lzZV9jYXN0PEVu
Y29kZWRWYWx1ZURlc2NyaXB0b3IqPihidWNrZXQpLT5hc0JpdHMudGFnKTsKLSAgICAgICAgICAg
ICAgICBtX2ppdC5zdG9yZTMyKGV4aXQubV9qc1ZhbHVlU291cmNlLnBheWxvYWRHUFIoKSwgJmJp
dHdpc2VfY2FzdDxFbmNvZGVkVmFsdWVEZXNjcmlwdG9yKj4oYnVja2V0KS0+YXNCaXRzLnBheWxv
YWQpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBtX2ppdC5zdG9yZTMy
KGV4aXQubV9qc1ZhbHVlU291cmNlLnRhZ0dQUigpLCAmYml0d2lzZV9jYXN0PEVuY29kZWRWYWx1
ZURlc2NyaXB0b3IqPihidWNrZXQpLT5hc0JpdHMudGFnKTsKLSAgICAgICAgICAgICAgICBtX2pp
dC5zdG9yZTMyKGV4aXQubV9qc1ZhbHVlU291cmNlLnBheWxvYWRHUFIoKSwgJmJpdHdpc2VfY2Fz
dDxFbmNvZGVkVmFsdWVEZXNjcmlwdG9yKj4oYnVja2V0KS0+YXNCaXRzLnBheWxvYWQpOwotICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIEdQUlJlZyBzY3JhdGNoVGFnID0gQXNzZW1ibHlI
ZWxwZXJzOjpzZWxlY3RTY3JhdGNoR1BSKGV4aXQubV9qc1ZhbHVlU291cmNlLnBheWxvYWRHUFIo
KSk7CisgICAgICAgICAgICAgICAgbV9qaXQucHVzaFRvU2F2ZShzY3JhdGNoVGFnKTsKKyAgICAg
ICAgICAgICAgICBtX2ppdC5tb3ZlKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKGV4aXQu
bV9qc1ZhbHVlU291cmNlLnRhZygpKSwgc2NyYXRjaFRhZyk7CisgICAgICAgICAgICAgICAgSlNW
YWx1ZVJlZ3MgdmFsdWUoc2NyYXRjaFRhZywgZXhpdC5tX2pzVmFsdWVTb3VyY2UucGF5bG9hZEdQ
UigpKTsKKyAgICAgICAgICAgICAgICBwcm9maWxlLmVtaXRSZXBvcnRWYWx1ZShtX2ppdCwgdmFs
dWUpOworICAgICAgICAgICAgICAgIG1faml0LnBvcFRvUmVzdG9yZShzY3JhdGNoVGFnKTsKKyAg
ICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHByb2ZpbGUuZW1pdFJlcG9ydFZhbHVl
KG1faml0LCBleGl0Lm1fanNWYWx1ZVNvdXJjZS5yZWdzKCkpOwogICAgICAgICB9CiAgICAgfQog
ICAgIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXI2
NC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0
Q29tcGlsZXI2NC5jcHAJKHJldmlzaW9uIDIwMDU5MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMy0yMDE1IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMy0yMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMTM0LDE3ICsxMzQsMTUgQEAgdm9pZCBPU1JFeGl0Q29tcGlsZXI6OmNvbXBpbGVFeGl0
KGNvbnN0IAogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIAotICAgICAgICBpZiAo
ISFleGl0Lm1fdmFsdWVQcm9maWxlKSB7Ci0gICAgICAgICAgICBFbmNvZGVkSlNWYWx1ZSogYnVj
a2V0ID0gZXhpdC5tX3ZhbHVlUHJvZmlsZS5nZXRTcGVjRmFpbEJ1Y2tldCgwKTsKLSAgICAgICAg
ICAgIAorICAgICAgICBpZiAoTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZSBwcm9maWxlID0g
ZXhpdC5tX3ZhbHVlUHJvZmlsZSkgewogICAgICAgICAgICAgaWYgKGV4aXQubV9qc1ZhbHVlU291
cmNlLmlzQWRkcmVzcygpKSB7CiAgICAgICAgICAgICAgICAgLy8gV2UgY2FuJ3QgYmUgc3VyZSB0
aGF0IHdlIGhhdmUgYSBzcGFyZSByZWdpc3Rlci4gU28gdXNlIHRoZSB0YWdUeXBlTnVtYmVyUmVn
aXN0ZXIsCiAgICAgICAgICAgICAgICAgLy8gc2luY2Ugd2Uga25vdyBob3cgdG8gcmVzdG9yZSBp
dC4KICAgICAgICAgICAgICAgICBtX2ppdC5sb2FkNjQoQXNzZW1ibHlIZWxwZXJzOjpBZGRyZXNz
KGV4aXQubV9qc1ZhbHVlU291cmNlLmFzQWRkcmVzcygpKSwgR1BSSW5mbzo6dGFnVHlwZU51bWJl
clJlZ2lzdGVyKTsKLSAgICAgICAgICAgICAgICBtX2ppdC5zdG9yZTY0KEdQUkluZm86OnRhZ1R5
cGVOdW1iZXJSZWdpc3RlciwgYnVja2V0KTsKKyAgICAgICAgICAgICAgICBwcm9maWxlLmVtaXRS
ZXBvcnRWYWx1ZShtX2ppdCwgSlNWYWx1ZVJlZ3MoR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lz
dGVyKSk7CiAgICAgICAgICAgICAgICAgbV9qaXQubW92ZShBc3NlbWJseUhlbHBlcnM6OlRydXN0
ZWRJbW02NChUYWdUeXBlTnVtYmVyKSwgR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKTsK
ICAgICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgICAgIG1faml0LnN0b3JlNjQoZXhpdC5t
X2pzVmFsdWVTb3VyY2UuZ3ByKCksIGJ1Y2tldCk7CisgICAgICAgICAgICAgICAgcHJvZmlsZS5l
bWl0UmVwb3J0VmFsdWUobV9qaXQsIEpTVmFsdWVSZWdzKGV4aXQubV9qc1ZhbHVlU291cmNlLmdw
cigpKSk7CiAgICAgICAgIH0KICAgICB9CiAgICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAJKHJldmlzaW9uIDIwMDU5MCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3
OCwxNyArMjc4LDYgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYQog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoc3RhdGljX2Nhc3Q8aW50MzJfdD4o
YSA+PiAoYiAmIDB4MWYpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblZhbHVlQWRkKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9w
MSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikKLXsKLSAgICBWTSogdm0gPSAmZXhlYy0+dm0o
KTsKLSAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBleGVjKTsKLSAgICAKLSAg
ICBKU1ZhbHVlIG9wMSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AxKTsKLSAgICBKU1ZhbHVl
IG9wMiA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AyKTsKLSAgICAKLSAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzQWRkKGV4ZWMsIG9wMSwgb3AyKSk7Ci19Ci0KIEVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVBZGROb3ROdW1iZXIoRXhlY1N0YXRlKiBleGVj
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKQog
ewogICAgIFZNKiB2bSA9ICZleGVjLT52bSgpOwpAQCAtMzE4LDMyICszMDcsNiBAQCBFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc051bWJlcihhIC8gYikpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvblZhbHVlTXVsKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikKLXsKLSAgICBWTSogdm0gPSAmZXhlYy0+
dm0oKTsKLSAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBleGVjKTsKLQotICAg
IEpTVmFsdWUgb3AxID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDEpOwotICAgIEpTVmFsdWUg
b3AyID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDIpOwotCi0gICAgZG91YmxlIGEgPSBvcDEu
dG9OdW1iZXIoZXhlYyk7Ci0gICAgZG91YmxlIGIgPSBvcDIudG9OdW1iZXIoZXhlYyk7Ci0gICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihhICogYikpOwotfQotCi1FbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlU3ViKEV4ZWNTdGF0ZSogZXhlYywgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikKLXsKLSAg
ICBWTSogdm0gPSAmZXhlYy0+dm0oKTsKLSAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2Vy
KHZtLCBleGVjKTsKLSAgICAKLSAgICBKU1ZhbHVlIG9wMSA9IEpTVmFsdWU6OmRlY29kZShlbmNv
ZGVkT3AxKTsKLSAgICBKU1ZhbHVlIG9wMiA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AyKTsK
LQotICAgIGRvdWJsZSBhID0gb3AxLnRvTnVtYmVyKGV4ZWMpOwotICAgIGRvdWJsZSBiID0gb3Ay
LnRvTnVtYmVyKGV4ZWMpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoYSAt
IGIpKTsKLX0KLQogc3RhdGljIEFMV0FZU19JTkxJTkUgRW5jb2RlZEpTVmFsdWUgZ2V0QnlWYWwo
RXhlY1N0YXRlKiBleGVjLCBKU0NlbGwqIGJhc2UsIHVpbnQzMl90IGluZGV4KQogewogICAgIFZN
JiB2bSA9IGV4ZWMtPnZtKCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09w
ZXJhdGlvbnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09w
ZXJhdGlvbnMuaAkocmV2aXNpb24gMjAwNTkwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdPcGVyYXRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTUxLDExICs1MSw4IEBAIEVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmEKIEVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uVmFsdWVCaXRMU2hpZnQoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikgV1RGX0lOVEVSTkFMOwog
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZUJpdFJTaGlmdChFeGVj
U3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
T3AyKSBXVEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
blZhbHVlQml0VVJTaGlmdChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQWRkKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpIFdURl9JTlRFUk5BTDsKIEVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVBZGROb3ROdW1iZXIoRXhl
Y1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZE9wMikgV1RGX0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRp
b25WYWx1ZURpdihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkT3AyKSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpIFdURl9JTlRFUk5BTDsKLUVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVTdWIoRXhlY1N0YXRlKiwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikgV1RGX0lOVEVS
TkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeVZhbChFeGVj
U3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFByb3BlcnR5KSBXVEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvbkdldEJ5VmFsQ2VsbChFeGVjU3RhdGUqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkUHJvcGVydHkpIFdURl9JTlRFUk5BTDsKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uR2V0QnlWYWxBcnJheUludChFeGVjU3RhdGUqLCBKU0FycmF5KiwgaW50MzJf
dCkgV1RGX0lOVEVSTkFMOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVk
aWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAJKHJldmlzaW9uIDIw
MDU5MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0
aW9uUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTEsMTMgKzE5MSwxNiBAQCBwcml2YXRl
OgogICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3Bl
Y0ludDUyT25seSk7CiAgICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAg
ICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKHNwZWN1bGF0ZWREb3VibGVUeXBlRm9y
UHJlZGljdGlvbnMobGVmdCwgcmlnaHQpKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKAot
ICAgICAgICAgICAgICAgICAgICAhKGxlZnQgJiAoU3BlY0Z1bGxOdW1iZXIgfCBTcGVjQm9vbGVh
bikpCi0gICAgICAgICAgICAgICAgICAgIHx8ICEocmlnaHQgJiAoU3BlY0Z1bGxOdW1iZXIgfCBT
cGVjQm9vbGVhbikpKSB7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpc1N0cmluZ09yU3Ry
aW5nT2JqZWN0U3BlY3VsYXRpb24obGVmdCkgJiYgaXNTdHJpbmdPclN0cmluZ09iamVjdFNwZWN1
bGF0aW9uKHJpZ2h0KSkgewogICAgICAgICAgICAgICAgICAgICAvLyBsZWZ0IG9yIHJpZ2h0IGlz
IGRlZmluaXRlbHkgc29tZXRoaW5nIG90aGVyIHRoYW4gYSBudW1iZXIuCiAgICAgICAgICAgICAg
ICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKFNwZWNTdHJpbmcpOwotICAgICAgICAg
ICAgICAgIH0gZWxzZQotICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGlj
dGlvbihTcGVjU3RyaW5nIHwgU3BlY0ludDMyT25seSB8IFNwZWNCeXRlY29kZURvdWJsZSk7Cisg
ICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBt
ZXJnZVByZWRpY3Rpb24oU3BlY0ludDMyT25seSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChu
b2RlLT5tYXlIYXZlRG91YmxlUmVzdWx0KCkpCisgICAgICAgICAgICAgICAgICAgICAgICBjaGFu
Z2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjQnl0ZWNvZGVEb3VibGUpOworICAgICAgICAgICAg
ICAgICAgICBpZiAobm9kZS0+bWF5SGF2ZU5vbk51bWJlclJlc3VsdCgpKQorICAgICAgICAgICAg
ICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY1N0cmluZyk7CisgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IH0KQEAgLTIxMSw4ICsyMTQsMTIgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAgY2hh
bmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY0ludDMyT25seSk7CiAgICAgICAgICAgICAgICAg
ZWxzZSBpZiAobV9ncmFwaC5hZGRTaG91bGRTcGVjdWxhdGVBbnlJbnQobm9kZSkpCiAgICAgICAg
ICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKFNwZWNJbnQ1Mk9ubHkpOwot
ICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBlbHNlIGlmIChpc0Z1bGxOdW1i
ZXJPckJvb2xlYW5TcGVjdWxhdGlvbihsZWZ0KSAmJiBpc0Z1bGxOdW1iZXJPckJvb2xlYW5TcGVj
dWxhdGlvbihyaWdodCkpCiAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVk
aWN0aW9uKHNwZWN1bGF0ZWREb3VibGVUeXBlRm9yUHJlZGljdGlvbnMobGVmdCwgcmlnaHQpKTsK
KyAgICAgICAgICAgICAgICBlbHNlIGlmIChub2RlLT5tYXlIYXZlTm9uSW50UmVzdWx0KCkgfHwg
KGxlZnQgJiBTcGVjQnl0ZWNvZGVEb3VibGUpIHx8IChyaWdodCAmIFNwZWNCeXRlY29kZURvdWJs
ZSkpCisgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKFNwZWNJ
bnQzMk9ubHkgfCBTcGVjQnl0ZWNvZGVEb3VibGUpOworICAgICAgICAgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY0ludDMyT25s
eSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtMjMw
LDggKzIzNywxMCBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8
PSBtZXJnZVByZWRpY3Rpb24oU3BlY0ludDUyT25seSk7CiAgICAgICAgICAgICAgICAgICAgIGVs
c2UKICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKHNw
ZWN1bGF0ZWREb3VibGVUeXBlRm9yUHJlZGljdGlvbnMobGVmdCwgcmlnaHQpKTsKLSAgICAgICAg
ICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG5vZGUtPm1heUhhdmVO
b25JbnRSZXN1bHQoKSB8fCAobGVmdCAmIFNwZWNCeXRlY29kZURvdWJsZSkgfHwgKHJpZ2h0ICYg
U3BlY0J5dGVjb2RlRG91YmxlKSkKICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJn
ZVByZWRpY3Rpb24oU3BlY0ludDMyT25seSB8IFNwZWNCeXRlY29kZURvdWJsZSk7CisgICAgICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGlj
dGlvbihTcGVjSW50MzJPbmx5KTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9CkBAIC0yNjcsNiArMjc2LDEwIEBAIHByaXZhdGU6CiAgICAgICAgICAgICBTcGVj
dWxhdGVkVHlwZSByaWdodCA9IG5vZGUtPmNoaWxkMigpLT5wcmVkaWN0aW9uKCk7CiAgICAgICAg
ICAgICAKICAgICAgICAgICAgIGlmIChsZWZ0ICYmIHJpZ2h0KSB7CisgICAgICAgICAgICAgICAg
Ly8gRklYTUU6IFdlJ3JlIGN1cnJlbnRseSByZWx5aW5nIG9uIHByZWRpY3Rpb24gcHJvcGFnYXRp
b24gYW5kIGJhY2t3YXJkcyBwcm9wYWdhdGlvbgorICAgICAgICAgICAgICAgIC8vIHdoZW5ldmVy
IHdlIGNhbiwgYW5kIG9ubHkgZmFsbGluZyBiYWNrIG9uIHJlc3VsdCBmbGFncyBpZiB0aGF0IGZh
aWxzLiBBbmQgdGhlIHJlc3VsdAorICAgICAgICAgICAgICAgIC8vIGZsYWdzIGxvZ2ljIGRvZXNu
J3Qga25vdyBob3cgdG8gdXNlIGJhY2t3YXJkcyBwcm9wYWdhdGlvbi4gV2Ugc2hvdWxkIGdldCBy
aWQgb2YgdGhlCisgICAgICAgICAgICAgICAgLy8gcHJlZGljdGlvbiBwcm9wYWdhdGlvbiBsb2dp
YyBhbmQgcmVseSBzb2xlbHkgb24gdGhlIHJlc3VsdCB0eXBlLgogICAgICAgICAgICAgICAgIGlm
IChpc0Z1bGxOdW1iZXJPckJvb2xlYW5TcGVjdWxhdGlvbkV4cGVjdGluZ0RlZmluZWQobGVmdCkK
ICAgICAgICAgICAgICAgICAgICAgJiYgaXNGdWxsTnVtYmVyT3JCb29sZWFuU3BlY3VsYXRpb25F
eHBlY3RpbmdEZWZpbmVkKHJpZ2h0KSkgewogICAgICAgICAgICAgICAgICAgICBpZiAobV9ncmFw
aC5iaW5hcnlBcml0aFNob3VsZFNwZWN1bGF0ZUludDMyKG5vZGUsIG1fcGFzcykpCkBAIC0yNzUs
OCArMjg4LDE0IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9
IG1lcmdlUHJlZGljdGlvbihTcGVjSW50NTJPbmx5KTsKICAgICAgICAgICAgICAgICAgICAgZWxz
ZQogICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oc3Bl
Y3VsYXRlZERvdWJsZVR5cGVGb3JQcmVkaWN0aW9ucyhsZWZ0LCByaWdodCkpOwotICAgICAgICAg
ICAgICAgIH0gZWxzZQotICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGlj
dGlvbihTcGVjSW50MzJPbmx5IHwgU3BlY0J5dGVjb2RlRG91YmxlKTsKKyAgICAgICAgICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZiAobm9kZS0+bWF5SGF2ZU5vbkludFJl
c3VsdCgpCisgICAgICAgICAgICAgICAgICAgICAgICB8fCAobGVmdCAmIFNwZWNCeXRlY29kZURv
dWJsZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHx8IChyaWdodCAmIFNwZWNCeXRlY29kZURv
dWJsZSkpCisgICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlv
bihTcGVjSW50MzJPbmx5IHwgU3BlY0J5dGVjb2RlRG91YmxlKTsKKyAgICAgICAgICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rp
b24oU3BlY0ludDMyT25seSk7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgJKHJldmlzaW9uIDIwMDU5MCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAkod29ya2luZyBjb3B5KQpAQCAt
MTY4NywyMyArMTY4Nyw2IEBAIHB1YmxpYzoKICAgICB9CiAjZWxzZSAvLyBVU0UoSlNWQUxVRTMy
XzY0KQogCi0vLyBFbmNvZGVkSlNWYWx1ZSBpbiBKU1ZBTFVFMzJfNjQgaXMgYSA2NC1iaXQgaW50
ZWdlci4gV2hlbiBiZWluZyBjb21waWxlZCBpbiBBUk0gRUFCSSwgaXQgbXVzdCBiZSBhbGlnbmVk
IG9uIGFuIGV2ZW4tbnVtYmVyZWQgcmVnaXN0ZXIgKHIwLCByMiBvciBbc3BdKS4KLS8vIFRvIHBy
ZXZlbnQgdGhlIGFzc2VtYmxlciBmcm9tIHVzaW5nIHdyb25nIHJlZ2lzdGVycywgbGV0J3Mgb2Nj
dXB5IHIxIG9yIHIzIHdpdGggYSBkdW1teSBhcmd1bWVudCB3aGVuIG5lY2Vzc2FyeS4KLSNpZiAo
Q09NUElMRVJfU1VQUE9SVFMoRUFCSSkgJiYgQ1BVKEFSTSkpIHx8IENQVShNSVBTKQotI2RlZmlu
ZSBFQUJJXzMyQklUX0RVTU1ZX0FSRyAgICAgIFRydXN0ZWRJbW0zMigwKSwKLSNlbHNlCi0jZGVm
aW5lIEVBQklfMzJCSVRfRFVNTVlfQVJHCi0jZW5kaWYKLQotLy8gSlNWQUxVRTMyXzY0IGlzIGEg
NjQtYml0IGludGVnZXIgdGhhdCBjYW5ub3QgYmUgcHV0IGhhbGYgaW4gYW4gYXJndW1lbnQgcmVn
aXN0ZXIgYW5kIGhhbGYgb24gc3RhY2sgd2hlbiB1c2luZyBTSDQgYXJjaGl0ZWN0dXJlLgotLy8g
VG8gYXZvaWQgdGhpcywgbGV0J3Mgb2NjdXB5IHRoZSA0dGggYXJndW1lbnQgcmVnaXN0ZXIgKHI3
KSB3aXRoIGEgZHVtbXkgYXJndW1lbnQgd2hlbiBuZWNlc3NhcnkuIFRoaXMgbXVzdCBvbmx5IGJl
IGRvbmUgd2hlbiB0aGVyZQotLy8gaXMgbm8gb3RoZXIgMzItYml0IHZhbHVlIGFyZ3VtZW50IGJl
aGluZCB0aGlzIDY0LWJpdCBKU1ZhbHVlLgotI2lmIENQVShTSDQpCi0jZGVmaW5lIFNINF8zMkJJ
VF9EVU1NWV9BUkcgICAgICBUcnVzdGVkSW1tMzIoMCksCi0jZWxzZQotI2RlZmluZSBTSDRfMzJC
SVRfRFVNTVlfQVJHCi0jZW5kaWYKLQogICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRp
b24oSl9KSVRPcGVyYXRpb25fRUpKSSBvcGVyYXRpb24sIEdQUlJlZyByZXN1bHRUYWcsIEdQUlJl
ZyByZXN1bHRQYXlsb2FkLCBHUFJSZWcgYXJnMVRhZywgR1BSUmVnIGFyZzFQYXlsb2FkLCBHUFJS
ZWcgYXJnMlRhZywgR1BSUmVnIGFyZzJQYXlsb2FkLCBVbmlxdWVkU3RyaW5nSW1wbCogdWlkKQog
ICAgIHsKICAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEVBQklfMzJC
SVRfRFVNTVlfQVJHIGFyZzFQYXlsb2FkLCBhcmcxVGFnLCBhcmcyUGF5bG9hZCwgYXJnMlRhZywg
VHJ1c3RlZEltbVB0cih1aWQpKTsKQEAgLTIxNDQsOCArMjEyNyw2IEBAIHB1YmxpYzoKICAgICAg
ICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIFRydXN0ZWRJbW1QdHIo
aWRlbnRPcDIpLCBUcnVzdGVkSW1tMzIob3AzKSwgYXJnNCwgYXJnNSk7CiAgICAgICAgIHJldHVy
biBhcHBlbmRDYWxsKG9wZXJhdGlvbik7CiAgICAgfQotI3VuZGVmIEVBQklfMzJCSVRfRFVNTVlf
QVJHCi0jdW5kZWYgU0g0XzMyQklUX0RVTU1ZX0FSRwogICAgIAogICAgIHRlbXBsYXRlPHR5cGVu
YW1lIEZ1bmN0aW9uVHlwZT4KICAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JFeGl0Q29tcGlsZXIuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhpdENvbXBpbGVy
LmNwcAkocmV2aXNpb24gMjAwNTkwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExP
U1JFeGl0Q29tcGlsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMy0yMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjg0LDggKzI4NCw4IEBAIHN0
YXRpYyB2b2lkIGNvbXBpbGVTdHViKAogICAgICAgICAgICAgfQogICAgICAgICB9CiAKLSAgICAg
ICAgaWYgKCEhZXhpdC5tX2Rlc2NyaXB0b3ItPm1fdmFsdWVQcm9maWxlKQotICAgICAgICAgICAg
aml0LnN0b3JlNjQoR1BSSW5mbzo6cmVnVDAsIGV4aXQubV9kZXNjcmlwdG9yLT5tX3ZhbHVlUHJv
ZmlsZS5nZXRTcGVjRmFpbEJ1Y2tldCgwKSk7CisgICAgICAgIGlmIChleGl0Lm1fZGVzY3JpcHRv
ci0+bV92YWx1ZVByb2ZpbGUpCisgICAgICAgICAgICBleGl0Lm1fZGVzY3JpcHRvci0+bV92YWx1
ZVByb2ZpbGUuZW1pdFJlcG9ydFZhbHVlKGppdCwgSlNWYWx1ZVJlZ3MoR1BSSW5mbzo6cmVnVDAp
KTsKICAgICB9CiAKICAgICAvLyBNYXRlcmlhbGl6ZSBhbGwgb2JqZWN0cy4gRG9uJ3QgbWF0ZXJp
YWxpemUgYW4gb2JqZWN0IHVudGlsIGFsbApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9Bc3NlbWJseUhlbHBlcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0Fzc2VtYmx5SGVscGVycy5oCShyZXZpc2lvbiAyMDA1OTApCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC02NTMsMTEg
KzY1Myw2IEBAIHB1YmxpYzoKICNlbmRpZgogICAgIH0KIAotICAgIGVudW0gVGFnUmVnaXN0ZXJz
TW9kZSB7Ci0gICAgICAgIERvTm90SGF2ZVRhZ1JlZ2lzdGVycywKLSAgICAgICAgSGF2ZVRhZ1Jl
Z2lzdGVycwotICAgIH07Ci0KICAgICBKdW1wIGJyYW5jaElmTm90Q2VsbChHUFJSZWcgcmVnLCBU
YWdSZWdpc3RlcnNNb2RlIG1vZGUgPSBIYXZlVGFnUmVnaXN0ZXJzKQogICAgIHsKICNpZiBVU0Uo
SlNWQUxVRTY0KQpAQCAtNzgzLDYgKzc3OCwxOCBAQCBwdWJsaWM6CiAjZW5kaWYKICAgICB9CiAK
KyAgICBKdW1wIGJyYW5jaElmTm90RG91YmxlS25vd25Ob3RJbnQzMihKU1ZhbHVlUmVncyByZWdz
LCBUYWdSZWdpc3RlcnNNb2RlIG1vZGUgPSBIYXZlVGFnUmVnaXN0ZXJzKQorICAgIHsKKyNpZiBV
U0UoSlNWQUxVRTY0KQorICAgICAgICBpZiAobW9kZSA9PSBIYXZlVGFnUmVnaXN0ZXJzKQorICAg
ICAgICAgICAgcmV0dXJuIGJyYW5jaFRlc3Q2NChaZXJvLCByZWdzLmdwcigpLCBHUFJJbmZvOjp0
YWdUeXBlTnVtYmVyUmVnaXN0ZXIpOworICAgICAgICByZXR1cm4gYnJhbmNoVGVzdDY0KFplcm8s
IHJlZ3MuZ3ByKCksIFRydXN0ZWRJbW02NChUYWdUeXBlTnVtYmVyKSk7CisjZWxzZQorICAgICAg
ICBVTlVTRURfUEFSQU0obW9kZSk7CisgICAgICAgIHJldHVybiBicmFuY2gzMihBYm92ZU9yRXF1
YWwsIHJlZ3MudGFnR1BSKCksIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpMb3dlc3RUYWcpKTsKKyNl
bmRpZgorICAgIH0KKwogICAgIC8vIE5vdGUgdGhhdCB0aGUgdGVtcEdQUiBpcyBub3QgdXNlZCBp
biAzMi1iaXQgbW9kZS4KICAgICBKdW1wIGJyYW5jaElmQm9vbGVhbihKU1ZhbHVlUmVncyByZWdz
LCBHUFJSZWcgdGVtcEdQUikKICAgICB7CkBAIC04NDgsNyArODU1LDggQEAgcHVibGljOgogICAg
IH0KIAogICAgIEp1bXBMaXN0IGJyYW5jaElmTm90VHlwZSgKLSAgICAgICAgSlNWYWx1ZVJlZ3Ms
IEdQUlJlZyB0ZW1wR1BSLCBjb25zdCBJbmZlcnJlZFR5cGU6OkRlc2NyaXB0b3ImLCBUYWdSZWdp
c3RlcnNNb2RlKTsKKyAgICAgICAgSlNWYWx1ZVJlZ3MsIEdQUlJlZyB0ZW1wR1BSLCBjb25zdCBJ
bmZlcnJlZFR5cGU6OkRlc2NyaXB0b3ImLAorICAgICAgICBUYWdSZWdpc3RlcnNNb2RlID0gSGF2
ZVRhZ1JlZ2lzdGVycyk7CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogICAgIEp1bXAgYnJh
bmNoU3RydWN0dXJlKFJlbGF0aW9uYWxDb25kaXRpb24gY29uZGl0aW9uLCBUIGxlZnRIYW5kU2lk
ZSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0NDYWxsSGVscGVycy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
Q0NhbGxIZWxwZXJzLmgJKHJldmlzaW9uIDIwMDU5MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvQ0NhbGxIZWxwZXJzLmgJKHdvcmtpbmcgY29weSkKQEAgLTQxLDYgKzQxLDIzIEBAIG5h
bWVzcGFjZSBKU0MgewogI2RlZmluZSBQT0tFX0FSR1VNRU5UX09GRlNFVCAwCiAjZW5kaWYKIAor
Ly8gRW5jb2RlZEpTVmFsdWUgaW4gSlNWQUxVRTMyXzY0IGlzIGEgNjQtYml0IGludGVnZXIuIFdo
ZW4gYmVpbmcgY29tcGlsZWQgaW4gQVJNIEVBQkksIGl0IG11c3QgYmUgYWxpZ25lZCBldmVuLW51
bWJlcmVkIHJlZ2lzdGVyIChyMCwgcjIgb3IgW3NwXSkuCisvLyBUbyBhdm9pZCBhc3NlbWJsaWVz
IGZyb20gdXNpbmcgd3JvbmcgcmVnaXN0ZXJzLCBsZXQncyBvY2N1cHkgcjEgb3IgcjMgd2l0aCBh
IGR1bW15IGFyZ3VtZW50IHdoZW4gbmVjZXNzYXJ5LgorI2lmIChDT01QSUxFUl9TVVBQT1JUUyhF
QUJJKSAmJiBDUFUoQVJNKSkgfHwgQ1BVKE1JUFMpCisjZGVmaW5lIEVBQklfMzJCSVRfRFVNTVlf
QVJHICAgICAgVHJ1c3RlZEltbTMyKDApLAorI2Vsc2UKKyNkZWZpbmUgRUFCSV8zMkJJVF9EVU1N
WV9BUkcKKyNlbmRpZgorCisvLyBKU1ZBTFVFMzJfNjQgaXMgYSA2NC1iaXQgaW50ZWdlciB0aGF0
IGNhbm5vdCBiZSBwdXQgaGFsZiBpbiBhbiBhcmd1bWVudCByZWdpc3RlciBhbmQgaGFsZiBvbiBz
dGFjayB3aGVuIHVzaW5nIFNINCBhcmNoaXRlY3R1cmUuCisvLyBUbyBhdm9pZCB0aGlzLCBsZXQn
cyBvY2N1cHkgdGhlIDR0aCBhcmd1bWVudCByZWdpc3RlciAocjcpIHdpdGggYSBkdW1teSBhcmd1
bWVudCB3aGVuIG5lY2Vzc2FyeS4gVGhpcyBtdXN0IG9ubHkgYmUgZG9uZSB3aGVuIHRoZXJlCisv
LyBpcyBubyBvdGhlciAzMi1iaXQgdmFsdWUgYXJndW1lbnQgYmVoaW5kIHRoaXMgNjQtYml0IEpT
VmFsdWUuCisjaWYgQ1BVKFNINCkKKyNkZWZpbmUgU0g0XzMyQklUX0RVTU1ZX0FSRyAgICAgIFRy
dXN0ZWRJbW0zMigwKSwKKyNlbHNlCisjZGVmaW5lIFNINF8zMkJJVF9EVU1NWV9BUkcKKyNlbmRp
ZgorCiBjbGFzcyBDQ2FsbEhlbHBlcnMgOiBwdWJsaWMgQXNzZW1ibHlIZWxwZXJzIHsKIHB1Ymxp
YzoKICAgICBDQ2FsbEhlbHBlcnMoVk0qIHZtLCBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IDApCkBA
IC0yMTY3LDYgKzIxODQsMTUgQEAgcHVibGljOgogICAgIH0KICNlbmRpZgogICAgIAorICAgIHZv
aWQgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEpTVmFsdWVSZWdzIGFyZzEsIEpTVmFsdWVS
ZWdzIGFyZzIsIFRydXN0ZWRJbW1QdHIgYXJnMykKKyAgICB7CisjaWYgVVNFKEpTVkFMVUU2NCkK
KyAgICAgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEuZ3ByKCksIGFyZzIuZ3By
KCksIGFyZzMpOworI2Vsc2UKKyAgICAgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEVB
QklfMzJCSVRfRFVNTVlfQVJHIGFyZzEucGF5bG9hZEdQUigpLCBhcmcxLnRhZ0dQUigpLCBhcmcy
LnBheWxvYWRHUFIoKSwgYXJnMi50YWdHUFIoKSwgYXJnMyk7CisjZW5kaWYKKyAgICB9CisgICAg
CiAgICAgdm9pZCBzZXR1cEFyZ3VtZW50cyhKU1ZhbHVlUmVncyBhcmcxKQogICAgIHsKICNpZiBV
U0UoSlNWQUxVRTY0KQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9HUFJJbmZvLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9HUFJJbmZvLmgJKHJldmlz
aW9uIDIwMDU5MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvR1BSSW5mby5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAx
My0yMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMSwgMjAxMy0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTM5LDYgKzEzOSwxMSBAQCBwdWJsaWM6CiAgICAg
ICAgIHJldHVybiBtX2Jhc2U7CiAgICAgfQogICAgIAorICAgIEpTVmFsdWVSZWdzIHJlZ3MoKSBj
b25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIEpTVmFsdWVSZWdzKGdwcigpKTsKKyAgICB9Cisg
ICAgCiAgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MgYXNBZGRyZXNzKCkgY29uc3QgeyByZXR1
cm4gTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoYmFzZSgpLCBvZmZzZXQoKSk7IH0KICAgICAKIHBy
aXZhdGU6CkBAIC0zMDYsNiArMzExLDExIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PGludDMyX3Q+KG1fdGFnVHlwZSk7CiAgICAgfQogICAgIAorICAgIEpTVmFsdWVSZWdz
IHJlZ3MoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIEpTVmFsdWVSZWdzKHRhZ0dQUigp
LCBwYXlsb2FkR1BSKCkpOworICAgIH0KKyAgICAKICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVz
cyBhc0FkZHJlc3ModW5zaWduZWQgYWRkaXRpb25hbE9mZnNldCA9IDApIGNvbnN0IHsgcmV0dXJu
IE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2UoKSwgb2Zmc2V0KCkgKyBhZGRpdGlvbmFsT2Zm
c2V0KTsgfQogICAgIAogcHJpdmF0ZToKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SW50cmluc2ljRW1pdHRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9JbnRyaW5zaWNFbWl0dGVyLmNwcAkocmV2aXNpb24gMjAwNTkwKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9JbnRyaW5zaWNFbWl0dGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC03OCw3
ICs3OCw3IEBAIHZvaWQgQWNjZXNzQ2FzZTo6ZW1pdEludHJpbnNpY0dldHRlcihBY2MKICAgICBz
d2l0Y2ggKGludHJpbnNpYygpKSB7CiAgICAgY2FzZSBUeXBlZEFycmF5TGVuZ3RoSW50cmluc2lj
OiB7CiAgICAgICAgIGppdC5sb2FkMzIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3RhdGUuYmFz
ZUdQUiwgSlNBcnJheUJ1ZmZlclZpZXc6Om9mZnNldE9mTGVuZ3RoKCkpLCB2YWx1ZUdQUik7Ci0g
ICAgICAgIGppdC5ib3hJbnQzMih2YWx1ZUdQUiwgdmFsdWVSZWdzLCBDQ2FsbEhlbHBlcnM6OkRv
Tm90SGF2ZVRhZ1JlZ2lzdGVycyk7CisgICAgICAgIGppdC5ib3hJbnQzMih2YWx1ZUdQUiwgdmFs
dWVSZWdzKTsKICAgICAgICAgc3RhdGUuc3VjY2VlZCgpOwogICAgICAgICByZXR1cm47CiAgICAg
fQpAQCAtOTMsNyArOTMsNyBAQCB2b2lkIEFjY2Vzc0Nhc2U6OmVtaXRJbnRyaW5zaWNHZXR0ZXIo
QWNjCiAgICAgICAgICAgICBqaXQubHNoaWZ0MzIodmFsdWVHUFIsIEltbTMyKGxvZ0VsZW1lbnRT
aXplKHR5cGUpKSwgdmFsdWVHUFIpOwogICAgICAgICB9CiAKLSAgICAgICAgaml0LmJveEludDMy
KHZhbHVlR1BSLCB2YWx1ZVJlZ3MsIENDYWxsSGVscGVyczo6RG9Ob3RIYXZlVGFnUmVnaXN0ZXJz
KTsKKyAgICAgICAgaml0LmJveEludDMyKHZhbHVlR1BSLCB2YWx1ZVJlZ3MpOwogICAgICAgICBz
dGF0ZS5zdWNjZWVkKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0xMTksNyArMTE5LDcg
QEAgdm9pZCBBY2Nlc3NDYXNlOjplbWl0SW50cmluc2ljR2V0dGVyKEFjYwogICAgICAgICAKICAg
ICAgICAgZG9uZS5saW5rKCZqaXQpOwogICAgICAgICAKLSAgICAgICAgaml0LmJveEludDMyKHZh
bHVlR1BSLCB2YWx1ZVJlZ3MsIENDYWxsSGVscGVyczo6RG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsK
KyAgICAgICAgaml0LmJveEludDMyKHZhbHVlR1BSLCB2YWx1ZVJlZ3MpOwogICAgICAgICBzdGF0
ZS5zdWNjZWVkKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklULmgJKHJldmlzaW9uIDIwMDU5MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklULmgJKHdvcmtpbmcgY29weSkKQEAgLTc1Niw2ICs3NTYsNyBAQCBuYW1lc3BhY2UgSlNDIHsK
ICNlbmRpZgogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklU
T3BlcmF0aW9uX0VKSSwgaW50LCBHUFJSZWcsIFVuaXF1ZWRTdHJpbmdJbXBsKik7CiAgICAgICAg
IE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpKLCBp
bnQsIEdQUlJlZywgR1BSUmVnKTsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9w
ZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkpScCwgSlNWYWx1ZVJlZ3MsIEpTVmFsdWVSZWdzLCBK
U1ZhbHVlUmVncywgUmVzdWx0UHJvZmlsZSopOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2Fs
bCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSkFwLCBpbnQsIEdQUlJlZywgR1BSUmVn
LCBBcnJheVByb2ZpbGUqKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJh
dGlvbihKX0pJVE9wZXJhdGlvbl9FSkpCeSwgaW50LCBHUFJSZWcsIEdQUlJlZywgQnlWYWxJbmZv
Kik7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oWl9KSVRPcGVy
YXRpb25fRUpPSiwgR1BSUmVnLCBHUFJSZWcsIEdQUlJlZyk7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVEFkZEdlbmVyYXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRBZGRHZW5lcmF0b3IuY3BwCShyZXZpc2lvbiAyMDA1OTApCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFkZEdlbmVyYXRvci5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMTI4LDYgKzEyOCw5IEBAIHZvaWQgSklUQWRkR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQ
YXRoKEMKIAogICAgIC8vIERvIGRvdWJsZVZhciArIGRvdWJsZVZhci4KICAgICBqaXQuYWRkRG91
YmxlKG1fcmlnaHRGUFIsIG1fbGVmdEZQUik7CisgICAgaWYgKG1fcmVzdWx0UHJvZmlsZSkKKyAg
ICAgICAgbV9yZXN1bHRQcm9maWxlLT5lbWl0U2V0RG91YmxlKGppdCk7CisgICAgICAgIAogICAg
IGppdC5ib3hEb3VibGUobV9sZWZ0RlBSLCBtX3Jlc3VsdCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUQWRkR2VuZXJhdG9yLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBZGRHZW5lcmF0b3IuaAkocmV2aXNpb24gMjAwNTkwKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBZGRHZW5lcmF0b3IuaAkod29ya2luZyBj
b3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC0zNyw3ICszNyw4IEBAIGNsYXNzIEpJVEFkZEdlbmVyYXRvciB7CiBwdWJsaWM6CiAgICAg
SklUQWRkR2VuZXJhdG9yKFNuaXBwZXRPcGVyYW5kIGxlZnRPcGVyYW5kLCBTbmlwcGV0T3BlcmFu
ZCByaWdodE9wZXJhbmQsCiAgICAgICAgIEpTVmFsdWVSZWdzIHJlc3VsdCwgSlNWYWx1ZVJlZ3Mg
bGVmdCwgSlNWYWx1ZVJlZ3MgcmlnaHQsCi0gICAgICAgIEZQUlJlZyBsZWZ0RlBSLCBGUFJSZWcg
cmlnaHRGUFIsIEdQUlJlZyBzY3JhdGNoR1BSLCBGUFJSZWcgc2NyYXRjaEZQUikKKyAgICAgICAg
RlBSUmVnIGxlZnRGUFIsIEZQUlJlZyByaWdodEZQUiwgR1BSUmVnIHNjcmF0Y2hHUFIsIEZQUlJl
ZyBzY3JhdGNoRlBSLAorICAgICAgICBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlID0gbnVs
bHB0cikKICAgICAgICAgOiBtX2xlZnRPcGVyYW5kKGxlZnRPcGVyYW5kKQogICAgICAgICAsIG1f
cmlnaHRPcGVyYW5kKHJpZ2h0T3BlcmFuZCkKICAgICAgICAgLCBtX3Jlc3VsdChyZXN1bHQpCkBA
IC00Nyw2ICs0OCw3IEBAIHB1YmxpYzoKICAgICAgICAgLCBtX3JpZ2h0RlBSKHJpZ2h0RlBSKQog
ICAgICAgICAsIG1fc2NyYXRjaEdQUihzY3JhdGNoR1BSKQogICAgICAgICAsIG1fc2NyYXRjaEZQ
UihzY3JhdGNoRlBSKQorICAgICAgICAsIG1fcmVzdWx0UHJvZmlsZShyZXN1bHRQcm9maWxlKQog
ICAgIHsKICAgICAgICAgQVNTRVJUKCFtX2xlZnRPcGVyYW5kLmlzQ29uc3RJbnQzMigpIHx8ICFt
X3JpZ2h0T3BlcmFuZC5pc0NvbnN0SW50MzIoKSk7CiAgICAgfQpAQCAtNjcsNiArNjksNyBAQCBw
cml2YXRlOgogICAgIEZQUlJlZyBtX3JpZ2h0RlBSOwogICAgIEdQUlJlZyBtX3NjcmF0Y2hHUFI7
CiAgICAgRlBSUmVnIG1fc2NyYXRjaEZQUjsKKyAgICBSZXN1bHRQcm9maWxlKiBtX3Jlc3VsdFBy
b2ZpbGU7CiAgICAgYm9vbCBtX2RpZEVtaXRGYXN0UGF0aCB7IGZhbHNlIH07CiAKICAgICBDQ2Fs
bEhlbHBlcnM6Okp1bXBMaXN0IG1fZW5kSnVtcExpc3Q7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVEFyaXRobWV0aWMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUQXJpdGhtZXRpYy5jcHAJKHJldmlzaW9uIDIwMDU5MCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQXJpdGhtZXRpYy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDE1IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAxNS0yMDE2IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtNjk2LDYgKzY5NiwxMCBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9hZGQoSW5zdHJ1Y3Rp
b24qIGN1cnJlCiAgICAgRlBSUmVnIHNjcmF0Y2hGUFIgPSBmcFJlZ1QyOwogI2VuZGlmCiAKKyAg
ICBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlID0gbnVsbHB0cjsKKyAgICBpZiAoc2hvdWxk
RW1pdFByb2ZpbGluZygpKQorICAgICAgICByZXN1bHRQcm9maWxlID0gbV9jb2RlQmxvY2stPmVu
c3VyZVJlc3VsdFByb2ZpbGUobV9ieXRlY29kZU9mZnNldCk7CisKICAgICBTbmlwcGV0T3BlcmFu
ZCBsZWZ0T3BlcmFuZCh0eXBlcy5maXJzdCgpKTsKICAgICBTbmlwcGV0T3BlcmFuZCByaWdodE9w
ZXJhbmQodHlwZXMuc2Vjb25kKCkpOwogCkBAIC03MTIsNyArNzE2LDcgQEAgdm9pZCBKSVQ6OmVt
aXRfb3BfYWRkKEluc3RydWN0aW9uKiBjdXJyZQogICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lz
dGVyKG9wMiwgcmlnaHRSZWdzKTsKIAogICAgIEpJVEFkZEdlbmVyYXRvciBnZW4obGVmdE9wZXJh
bmQsIHJpZ2h0T3BlcmFuZCwgcmVzdWx0UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVncywKLSAgICAg
ICAgZnBSZWdUMCwgZnBSZWdUMSwgc2NyYXRjaEdQUiwgc2NyYXRjaEZQUik7CisgICAgICAgIGZw
UmVnVDAsIGZwUmVnVDEsIHNjcmF0Y2hHUFIsIHNjcmF0Y2hGUFIsIHJlc3VsdFByb2ZpbGUpOwog
CiAgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgoKnRoaXMpOwogCkBAIC03MjQsOCArNzI4LDE3IEBA
IHZvaWQgSklUOjplbWl0X29wX2FkZChJbnN0cnVjdGlvbiogY3VycmUKICAgICB9IGVsc2Ugewog
ICAgICAgICBBU1NFUlQoZ2VuLmVuZEp1bXBMaXN0KCkuZW1wdHkoKSk7CiAgICAgICAgIEFTU0VS
VChnZW4uc2xvd1BhdGhKdW1wTGlzdCgpLmVtcHR5KCkpOwotICAgICAgICBKSVRTbG93UGF0aENh
bGwgc2xvd1BhdGhDYWxsKHRoaXMsIGN1cnJlbnRJbnN0cnVjdGlvbiwgc2xvd19wYXRoX2FkZCk7
Ci0gICAgICAgIHNsb3dQYXRoQ2FsbC5jYWxsKCk7CisgICAgICAgIGlmIChyZXN1bHRQcm9maWxl
KSB7CisgICAgICAgICAgICBpZiAobGVmdE9wZXJhbmQuaXNDb25zdCgpKQorICAgICAgICAgICAg
ICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIob3AxLCBsZWZ0UmVncyk7CisgICAgICAgICAgICBp
ZiAocmlnaHRPcGVyYW5kLmlzQ29uc3QoKSkKKyAgICAgICAgICAgICAgICBlbWl0R2V0VmlydHVh
bFJlZ2lzdGVyKG9wMiwgcmlnaHRSZWdzKTsKKyAgICAgICAgICAgIGNhbGxPcGVyYXRpb24ob3Bl
cmF0aW9uVmFsdWVBZGRQcm9maWxlZCwgcmVzdWx0UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVncywg
cmVzdWx0UHJvZmlsZSk7CisgICAgICAgICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKHJlc3Vs
dCwgcmVzdWx0UmVncyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBKSVRTbG93UGF0
aENhbGwgc2xvd1BhdGhDYWxsKHRoaXMsIGN1cnJlbnRJbnN0cnVjdGlvbiwgc2xvd19wYXRoX2Fk
ZCk7CisgICAgICAgICAgICBzbG93UGF0aENhbGwuY2FsbCgpOworICAgICAgICB9CiAgICAgfQog
fQogCkBAIC03MzMsOCArNzQ2LDQxIEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9hZGQoSW5zdHJ1
Y3Rpb24qIGMKIHsKICAgICBsaW5rQWxsU2xvd0Nhc2VzRm9yQnl0ZWNvZGVPZmZzZXQobV9zbG93
Q2FzZXMsIGl0ZXIsIG1fYnl0ZWNvZGVPZmZzZXQpOwogCi0gICAgSklUU2xvd1BhdGhDYWxsIHNs
b3dQYXRoQ2FsbCh0aGlzLCBjdXJyZW50SW5zdHJ1Y3Rpb24sIHNsb3dfcGF0aF9hZGQpOwotICAg
IHNsb3dQYXRoQ2FsbC5jYWxsKCk7CisgICAgaW50IHJlc3VsdCA9IGN1cnJlbnRJbnN0cnVjdGlv
blsxXS51Lm9wZXJhbmQ7CisgICAgaW50IG9wMSA9IGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9w
ZXJhbmQ7CisgICAgaW50IG9wMiA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7Cisg
ICAgT3BlcmFuZFR5cGVzIHR5cGVzID0gT3BlcmFuZFR5cGVzOjpmcm9tSW50KGN1cnJlbnRJbnN0
cnVjdGlvbls0XS51Lm9wZXJhbmQpOworCisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICBKU1ZhbHVl
UmVncyBsZWZ0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QwKTsKKyAgICBKU1ZhbHVlUmVncyByaWdo
dFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMSk7CisgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9
IGxlZnRSZWdzOworI2Vsc2UKKyAgICBKU1ZhbHVlUmVncyBsZWZ0UmVncyA9IEpTVmFsdWVSZWdz
KHJlZ1QxLCByZWdUMCk7CisgICAgSlNWYWx1ZVJlZ3MgcmlnaHRSZWdzID0gSlNWYWx1ZVJlZ3Mo
cmVnVDMsIHJlZ1QyKTsKKyAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0gbGVmdFJlZ3M7Cisj
ZW5kaWYKKyAgICAKKyAgICBTbmlwcGV0T3BlcmFuZCBsZWZ0T3BlcmFuZCh0eXBlcy5maXJzdCgp
KTsKKyAgICBTbmlwcGV0T3BlcmFuZCByaWdodE9wZXJhbmQodHlwZXMuc2Vjb25kKCkpOworCisg
ICAgaWYgKGlzT3BlcmFuZENvbnN0YW50SW50KG9wMSkpCisgICAgICAgIGxlZnRPcGVyYW5kLnNl
dENvbnN0SW50MzIoZ2V0T3BlcmFuZENvbnN0YW50SW50KG9wMSkpOworICAgIGVsc2UgaWYgKGlz
T3BlcmFuZENvbnN0YW50SW50KG9wMikpCisgICAgICAgIHJpZ2h0T3BlcmFuZC5zZXRDb25zdElu
dDMyKGdldE9wZXJhbmRDb25zdGFudEludChvcDIpKTsKKworICAgIGlmIChzaG91bGRFbWl0UHJv
ZmlsaW5nKCkpIHsKKyAgICAgICAgaWYgKGxlZnRPcGVyYW5kLmlzQ29uc3QoKSkKKyAgICAgICAg
ICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIob3AxLCBsZWZ0UmVncyk7CisgICAgICAgIGlmIChy
aWdodE9wZXJhbmQuaXNDb25zdCgpKQorICAgICAgICAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rl
cihvcDIsIHJpZ2h0UmVncyk7CisgICAgICAgIFJlc3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUg
PSBtX2NvZGVCbG9jay0+ZW5zdXJlUmVzdWx0UHJvZmlsZShtX2J5dGVjb2RlT2Zmc2V0KTsKKyAg
ICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25WYWx1ZUFkZFByb2ZpbGVkLCByZXN1bHRSZWdz
LCBsZWZ0UmVncywgcmlnaHRSZWdzLCByZXN1bHRQcm9maWxlKTsKKyAgICAgICAgZW1pdFB1dFZp
cnR1YWxSZWdpc3RlcihyZXN1bHQsIHJlc3VsdFJlZ3MpOworICAgIH0gZWxzZSB7CisgICAgICAg
IEpJVFNsb3dQYXRoQ2FsbCBzbG93UGF0aENhbGwodGhpcywgY3VycmVudEluc3RydWN0aW9uLCBz
bG93X3BhdGhfYWRkKTsKKyAgICAgICAgc2xvd1BhdGhDYWxsLmNhbGwoKTsKKyAgICB9CiB9CiAK
IHZvaWQgSklUOjplbWl0X29wX2RpdihJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQpA
QCAtODY0LDggKzkxMCwxNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9tdWwoSW5zdHJ1Y3Rpb24qIGN1
cnJlCiAgICAgfSBlbHNlIHsKICAgICAgICAgQVNTRVJUKGdlbi5lbmRKdW1wTGlzdCgpLmVtcHR5
KCkpOwogICAgICAgICBBU1NFUlQoZ2VuLnNsb3dQYXRoSnVtcExpc3QoKS5lbXB0eSgpKTsKLSAg
ICAgICAgSklUU2xvd1BhdGhDYWxsIHNsb3dQYXRoQ2FsbCh0aGlzLCBjdXJyZW50SW5zdHJ1Y3Rp
b24sIHNsb3dfcGF0aF9tdWwpOwotICAgICAgICBzbG93UGF0aENhbGwuY2FsbCgpOworICAgICAg
ICBpZiAocmVzdWx0UHJvZmlsZSkgeworICAgICAgICAgICAgaWYgKGxlZnRPcGVyYW5kLmlzUG9z
aXRpdmVDb25zdEludDMyKCkpCisgICAgICAgICAgICAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rl
cihvcDEsIGxlZnRSZWdzKTsKKyAgICAgICAgICAgIGlmIChyaWdodE9wZXJhbmQuaXNQb3NpdGl2
ZUNvbnN0SW50MzIoKSkKKyAgICAgICAgICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKG9w
MiwgcmlnaHRSZWdzKTsKKyAgICAgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uVmFsdWVN
dWxQcm9maWxlZCwgcmVzdWx0UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVncywgcmVzdWx0UHJvZmls
ZSk7CisgICAgICAgICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKHJlc3VsdCwgcmVzdWx0UmVn
cyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBKSVRTbG93UGF0aENhbGwgc2xvd1Bh
dGhDYWxsKHRoaXMsIGN1cnJlbnRJbnN0cnVjdGlvbiwgc2xvd19wYXRoX211bCk7CisgICAgICAg
ICAgICBzbG93UGF0aENhbGwuY2FsbCgpOworICAgICAgICB9CiAgICAgfQogfQogCkBAIC04NzMs
OCArOTI4LDQxIEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9tdWwoSW5zdHJ1Y3Rpb24qIGMKIHsK
ICAgICBsaW5rQWxsU2xvd0Nhc2VzRm9yQnl0ZWNvZGVPZmZzZXQobV9zbG93Q2FzZXMsIGl0ZXIs
IG1fYnl0ZWNvZGVPZmZzZXQpOwogICAgIAotICAgIEpJVFNsb3dQYXRoQ2FsbCBzbG93UGF0aENh
bGwodGhpcywgY3VycmVudEluc3RydWN0aW9uLCBzbG93X3BhdGhfbXVsKTsKLSAgICBzbG93UGF0
aENhbGwuY2FsbCgpOworICAgIGludCByZXN1bHQgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5v
cGVyYW5kOworICAgIGludCBvcDEgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwor
ICAgIGludCBvcDIgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOworICAgIE9wZXJh
bmRUeXBlcyB0eXBlcyA9IE9wZXJhbmRUeXBlczo6ZnJvbUludChjdXJyZW50SW5zdHJ1Y3Rpb25b
NF0udS5vcGVyYW5kKTsKKworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgSlNWYWx1ZVJlZ3MgbGVm
dFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMCk7CisgICAgSlNWYWx1ZVJlZ3MgcmlnaHRSZWdzID0g
SlNWYWx1ZVJlZ3MocmVnVDEpOworICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSBsZWZ0UmVn
czsKKyNlbHNlCisgICAgSlNWYWx1ZVJlZ3MgbGVmdFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMSwg
cmVnVDApOworICAgIEpTVmFsdWVSZWdzIHJpZ2h0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QzLCBy
ZWdUMik7CisgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IGxlZnRSZWdzOworI2VuZGlmCisK
KyAgICBTbmlwcGV0T3BlcmFuZCBsZWZ0T3BlcmFuZCh0eXBlcy5maXJzdCgpKTsKKyAgICBTbmlw
cGV0T3BlcmFuZCByaWdodE9wZXJhbmQodHlwZXMuc2Vjb25kKCkpOworCisgICAgaWYgKGlzT3Bl
cmFuZENvbnN0YW50SW50KG9wMSkpCisgICAgICAgIGxlZnRPcGVyYW5kLnNldENvbnN0SW50MzIo
Z2V0T3BlcmFuZENvbnN0YW50SW50KG9wMSkpOworICAgIGVsc2UgaWYgKGlzT3BlcmFuZENvbnN0
YW50SW50KG9wMikpCisgICAgICAgIHJpZ2h0T3BlcmFuZC5zZXRDb25zdEludDMyKGdldE9wZXJh
bmRDb25zdGFudEludChvcDIpKTsKKworICAgIGlmIChzaG91bGRFbWl0UHJvZmlsaW5nKCkpIHsK
KyAgICAgICAgaWYgKGxlZnRPcGVyYW5kLmlzUG9zaXRpdmVDb25zdEludDMyKCkpCisgICAgICAg
ICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKG9wMSwgbGVmdFJlZ3MpOworICAgICAgICBpZiAo
cmlnaHRPcGVyYW5kLmlzUG9zaXRpdmVDb25zdEludDMyKCkpCisgICAgICAgICAgICBlbWl0R2V0
VmlydHVhbFJlZ2lzdGVyKG9wMiwgcmlnaHRSZWdzKTsKKyAgICAgICAgUmVzdWx0UHJvZmlsZSog
cmVzdWx0UHJvZmlsZSA9IG1fY29kZUJsb2NrLT5lbnN1cmVSZXN1bHRQcm9maWxlKG1fYnl0ZWNv
ZGVPZmZzZXQpOworICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblZhbHVlTXVsUHJvZmls
ZWQsIHJlc3VsdFJlZ3MsIGxlZnRSZWdzLCByaWdodFJlZ3MsIHJlc3VsdFByb2ZpbGUpOworICAg
ICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKHJlc3VsdCwgcmVzdWx0UmVncyk7CisgICAgfSBl
bHNlIHsKKyAgICAgICAgSklUU2xvd1BhdGhDYWxsIHNsb3dQYXRoQ2FsbCh0aGlzLCBjdXJyZW50
SW5zdHJ1Y3Rpb24sIHNsb3dfcGF0aF9tdWwpOworICAgICAgICBzbG93UGF0aENhbGwuY2FsbCgp
OworICAgIH0KIH0KIAogdm9pZCBKSVQ6OmVtaXRfb3Bfc3ViKEluc3RydWN0aW9uKiBjdXJyZW50
SW5zdHJ1Y3Rpb24pCkBAIC04OTgsNiArOTg2LDEwIEBAIHZvaWQgSklUOjplbWl0X29wX3N1YihJ
bnN0cnVjdGlvbiogY3VycmUKICAgICBGUFJSZWcgc2NyYXRjaEZQUiA9IGZwUmVnVDI7CiAjZW5k
aWYKIAorICAgIFJlc3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUgPSBudWxscHRyOworICAgIGlm
IChzaG91bGRFbWl0UHJvZmlsaW5nKCkpCisgICAgICAgIHJlc3VsdFByb2ZpbGUgPSBtX2NvZGVC
bG9jay0+ZW5zdXJlUmVzdWx0UHJvZmlsZShtX2J5dGVjb2RlT2Zmc2V0KTsKKwogICAgIFNuaXBw
ZXRPcGVyYW5kIGxlZnRPcGVyYW5kKHR5cGVzLmZpcnN0KCkpOwogICAgIFNuaXBwZXRPcGVyYW5k
IHJpZ2h0T3BlcmFuZCh0eXBlcy5zZWNvbmQoKSk7CiAgICAgCkBAIC05MDUsNyArOTk3LDcgQEAg
dm9pZCBKSVQ6OmVtaXRfb3Bfc3ViKEluc3RydWN0aW9uKiBjdXJyZQogICAgIGVtaXRHZXRWaXJ0
dWFsUmVnaXN0ZXIob3AyLCByaWdodFJlZ3MpOwogCiAgICAgSklUU3ViR2VuZXJhdG9yIGdlbihs
ZWZ0T3BlcmFuZCwgcmlnaHRPcGVyYW5kLCByZXN1bHRSZWdzLCBsZWZ0UmVncywgcmlnaHRSZWdz
LAotICAgICAgICBmcFJlZ1QwLCBmcFJlZ1QxLCBzY3JhdGNoR1BSLCBzY3JhdGNoRlBSKTsKKyAg
ICAgICAgZnBSZWdUMCwgZnBSZWdUMSwgc2NyYXRjaEdQUiwgc2NyYXRjaEZQUiwgcmVzdWx0UHJv
ZmlsZSk7CiAKICAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aCgqdGhpcyk7CiAKQEAgLTkyMCw4ICsx
MDEyLDI1IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9zdWIoSW5zdHJ1Y3Rpb24qIGMKIHsKICAg
ICBsaW5rQWxsU2xvd0Nhc2VzRm9yQnl0ZWNvZGVPZmZzZXQobV9zbG93Q2FzZXMsIGl0ZXIsIG1f
Ynl0ZWNvZGVPZmZzZXQpOwogCi0gICAgSklUU2xvd1BhdGhDYWxsIHNsb3dQYXRoQ2FsbCh0aGlz
LCBjdXJyZW50SW5zdHJ1Y3Rpb24sIHNsb3dfcGF0aF9zdWIpOwotICAgIHNsb3dQYXRoQ2FsbC5j
YWxsKCk7CisgICAgaW50IHJlc3VsdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7
CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICBKU1ZhbHVlUmVncyBsZWZ0UmVncyA9IEpTVmFsdWVS
ZWdzKHJlZ1QwKTsKKyAgICBKU1ZhbHVlUmVncyByaWdodFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdU
MSk7CisgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IGxlZnRSZWdzOworI2Vsc2UKKyAgICBK
U1ZhbHVlUmVncyBsZWZ0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCk7CisgICAgSlNW
YWx1ZVJlZ3MgcmlnaHRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDMsIHJlZ1QyKTsKKyAgICBKU1Zh
bHVlUmVncyByZXN1bHRSZWdzID0gbGVmdFJlZ3M7CisjZW5kaWYKKworICAgIGlmIChzaG91bGRF
bWl0UHJvZmlsaW5nKCkpIHsKKyAgICAgICAgUmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSA9
IG1fY29kZUJsb2NrLT5lbnN1cmVSZXN1bHRQcm9maWxlKG1fYnl0ZWNvZGVPZmZzZXQpOworICAg
ICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblZhbHVlU3ViUHJvZmlsZWQsIHJlc3VsdFJlZ3Ms
IGxlZnRSZWdzLCByaWdodFJlZ3MsIHJlc3VsdFByb2ZpbGUpOworICAgICAgICBlbWl0UHV0Vmly
dHVhbFJlZ2lzdGVyKHJlc3VsdCwgcmVzdWx0UmVncyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAg
SklUU2xvd1BhdGhDYWxsIHNsb3dQYXRoQ2FsbCh0aGlzLCBjdXJyZW50SW5zdHJ1Y3Rpb24sIHNs
b3dfcGF0aF9zdWIpOworICAgICAgICBzbG93UGF0aENhbGwuY2FsbCgpOworICAgIH0KIH0KIAog
LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEVORDogT1BfQURELCBPUF9TVUIsIE9Q
X01VTCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCShyZXZpc2lvbiAyMDA1OTApCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtNDE2LDYgKzQx
NiwxNCBAQCBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6CiAgICAgcmV0
dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKIH0KIAoraW5saW5l
IE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9F
SkpScCBvcGVyYXRpb24sIEpTVmFsdWVSZWdzIHJlc3VsdCwgSlNWYWx1ZVJlZ3MgYXJnMSwgSlNW
YWx1ZVJlZ3MgYXJnMiwgUmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSkKK3sKKyAgICBzZXR1
cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwgYXJnMiwgVHJ1c3RlZEltbVB0cihyZXN1bHRQ
cm9maWxlKSk7CisgICAgQ2FsbCBjYWxsID0gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhv
cGVyYXRpb24pOworICAgIHNldHVwUmVzdWx0cyhyZXN1bHQpOworICAgIHJldHVybiBjYWxsOwor
fQorCiAjaWYgVVNFKEpTVkFMVUU2NCkKIEFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNh
bGwgSklUOjpjYWxsT3BlcmF0aW9uKFpfSklUT3BlcmF0aW9uX0VKWlogb3BlcmF0aW9uLCBHUFJS
ZWcgYXJnMSwgaW50MzJfdCBhcmcyLCBpbnQzMl90IGFyZzMpCiB7CkBAIC02MDIsMjMgKzYxMCw2
IEBAIEFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjoKIAogI2Vsc2UgLy8g
VVNFKEpTVkFMVUUzMl82NCkKIAotLy8gRW5jb2RlZEpTVmFsdWUgaW4gSlNWQUxVRTMyXzY0IGlz
IGEgNjQtYml0IGludGVnZXIuIFdoZW4gYmVpbmcgY29tcGlsZWQgaW4gQVJNIEVBQkksIGl0IG11
c3QgYmUgYWxpZ25lZCBldmVuLW51bWJlcmVkIHJlZ2lzdGVyIChyMCwgcjIgb3IgW3NwXSkuCi0v
LyBUbyBhdm9pZCBhc3NlbWJsaWVzIGZyb20gdXNpbmcgd3JvbmcgcmVnaXN0ZXJzLCBsZXQncyBv
Y2N1cHkgcjEgb3IgcjMgd2l0aCBhIGR1bW15IGFyZ3VtZW50IHdoZW4gbmVjZXNzYXJ5LgotI2lm
IChDT01QSUxFUl9TVVBQT1JUUyhFQUJJKSAmJiBDUFUoQVJNKSkgfHwgQ1BVKE1JUFMpCi0jZGVm
aW5lIEVBQklfMzJCSVRfRFVNTVlfQVJHICAgICAgVHJ1c3RlZEltbTMyKDApLAotI2Vsc2UKLSNk
ZWZpbmUgRUFCSV8zMkJJVF9EVU1NWV9BUkcKLSNlbmRpZgotCi0vLyBKU1ZBTFVFMzJfNjQgaXMg
YSA2NC1iaXQgaW50ZWdlciB0aGF0IGNhbm5vdCBiZSBwdXQgaGFsZiBpbiBhbiBhcmd1bWVudCBy
ZWdpc3RlciBhbmQgaGFsZiBvbiBzdGFjayB3aGVuIHVzaW5nIFNINCBhcmNoaXRlY3R1cmUuCi0v
LyBUbyBhdm9pZCB0aGlzLCBsZXQncyBvY2N1cHkgdGhlIDR0aCBhcmd1bWVudCByZWdpc3RlciAo
cjcpIHdpdGggYSBkdW1teSBhcmd1bWVudCB3aGVuIG5lY2Vzc2FyeS4gVGhpcyBtdXN0IG9ubHkg
YmUgZG9uZSB3aGVuIHRoZXJlCi0vLyBpcyBubyBvdGhlciAzMi1iaXQgdmFsdWUgYXJndW1lbnQg
YmVoaW5kIHRoaXMgNjQtYml0IEpTVmFsdWUuCi0jaWYgQ1BVKFNINCkKLSNkZWZpbmUgU0g0XzMy
QklUX0RVTU1ZX0FSRyAgICAgIFRydXN0ZWRJbW0zMigwKSwKLSNlbHNlCi0jZGVmaW5lIFNINF8z
MkJJVF9EVU1NWV9BUkcKLSNlbmRpZgotCiBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpD
YWxsIEpJVDo6Y2FsbE9wZXJhdGlvbk5vRXhjZXB0aW9uQ2hlY2soVl9KSVRPcGVyYXRpb25fRUog
b3BlcmF0aW9uLCBHUFJSZWcgYXJnMVRhZywgR1BSUmVnIGFyZzFQYXlsb2FkKQogewogICAgIHNl
dHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShFQUJJXzMyQklUX0RVTU1ZX0FSRyBhcmcxUGF5bG9h
ZCwgYXJnMVRhZyk7CkBAIC04MDAsOSArNzkxLDYgQEAgQUxXQVlTX0lOTElORSBNYWNyb0Fzc2Vt
Ymxlcjo6Q2FsbCBKSVQ6OgogICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNr
U2V0SlNWYWx1ZVJlc3VsdChvcGVyYXRpb24sIGRzdCk7CiB9CiAKLSN1bmRlZiBFQUJJXzMyQklU
X0RVTU1ZX0FSRwotI3VuZGVmIFNINF8zMkJJVF9EVU1NWV9BUkcKLQogI2VuZGlmIC8vIFVTRShK
U1ZBTFVFMzJfNjQpCiAKIEFMV0FZU19JTkxJTkUgSklUOjpKdW1wIEpJVDo6Y2hlY2tTdHJ1Y3R1
cmUoUmVnaXN0ZXJJRCByZWcsIFN0cnVjdHVyZSogc3RydWN0dXJlKQpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRNdWxHZW5lcmF0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUTXVsR2VuZXJhdG9yLmNwcAkocmV2aXNpb24gMjAwNTkw
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRNdWxHZW5lcmF0b3IuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTE1Myw2ICsxNTMsNyBAQCB2b2lkIEpJVE11bEdlbmVyYXRvcjo6Z2VuZXJhdGVG
YXN0UGF0aChDCiAgICAgICAgIENDYWxsSGVscGVyczo6SnVtcCBkb25lID0gaml0Lmp1bXAoKTsK
IAogICAgICAgICBub3ROZWdhdGl2ZVplcm8ubGluaygmaml0KTsKKyAgICAgICAgaml0Lm9yMzIo
Q0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoUmVzdWx0UHJvZmlsZTo6Tm9uTmVnWmVyb0RvdWJs
ZSksIENDYWxsSGVscGVyczo6QWJzb2x1dGVBZGRyZXNzKG1fcmVzdWx0UHJvZmlsZS0+YWRkcmVz
c09mRmxhZ3MoKSkpOwogCiAgICAgICAgIGppdC5tb3ZlKG1fcmVzdWx0LnBheWxvYWRHUFIoKSwg
bV9zY3JhdGNoR1BSKTsKICAgICAgICAgaml0LnVyc2hpZnRQdHIoQ0NhbGxIZWxwZXJzOjpJbW0z
Mig1MiksIG1fc2NyYXRjaEdQUik7CkBAIC0xNzQsNiArMTc1LDcgQEAgdm9pZCBKSVRNdWxHZW5l
cmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoQwogICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgZG9u
ZSA9IGppdC5qdW1wKCk7CiAKICAgICAgICAgbm90TmVnYXRpdmVaZXJvLmxpbmsoJmppdCk7Cisg
ICAgICAgIGppdC5vcjMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKFJlc3VsdFByb2ZpbGU6
Ok5vbk5lZ1plcm9Eb3VibGUpLCBDQ2FsbEhlbHBlcnM6OkFic29sdXRlQWRkcmVzcyhtX3Jlc3Vs
dFByb2ZpbGUtPmFkZHJlc3NPZkZsYWdzKCkpKTsKIAogICAgICAgICBqaXQubW92ZShtX3Jlc3Vs
dC50YWdHUFIoKSwgbV9zY3JhdGNoR1BSKTsKICAgICAgICAgaml0LnVyc2hpZnRQdHIoQ0NhbGxI
ZWxwZXJzOjpJbW0zMig1MiAtIDMyKSwgbV9zY3JhdGNoR1BSKTsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAkocmV2aXNpb24gMjAwNTkwKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjI0Myw2ICsyMjQzLDg4IEBAIEpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25U
b0luZGV4U3QKICAgICByZXR1cm4ganNTdHJpbmcoZXhlYywgSWRlbnRpZmllcjo6ZnJvbShleGVj
LCBpbmRleCkuc3RyaW5nKCkpOwogfQogCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblZhbHVlQWRkKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9w
MSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikKK3sKKyAgICBWTSogdm0gPSAmZXhlYy0+dm0o
KTsKKyAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBleGVjKTsKKyAgICAKKyAg
ICBKU1ZhbHVlIG9wMSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AxKTsKKyAgICBKU1ZhbHVl
IG9wMiA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AyKTsKKyAgICAKKyAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzQWRkKGV4ZWMsIG9wMSwgb3AyKSk7Cit9CisKK0VuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVBZGRQcm9maWxlZChFeGVjU3RhdGUqIGV4ZWMs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIFJl
c3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUpCit7CisgICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7
CisgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgZXhlYyk7CisgICAgCisgICAg
SlNWYWx1ZSBvcDEgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMSk7CisgICAgSlNWYWx1ZSBv
cDIgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMik7CisgICAgCisgICAgSlNWYWx1ZSByZXN1
bHQgPSBqc0FkZChleGVjLCBvcDEsIG9wMik7CisgICAgcmVzdWx0UHJvZmlsZS0+ZGV0ZWN0Qml0
c0xpZ2h0KHJlc3VsdCk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOworfQor
CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsKEV4ZWNTdGF0
ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZE9wMikKK3sKKyAgICBWTSogdm0gPSAmZXhlYy0+dm0oKTsKKyAgICBOYXRpdmVDYWxsRnJhbWVU
cmFjZXIgdHJhY2VyKHZtLCBleGVjKTsKKworICAgIEpTVmFsdWUgb3AxID0gSlNWYWx1ZTo6ZGVj
b2RlKGVuY29kZWRPcDEpOworICAgIEpTVmFsdWUgb3AyID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29k
ZWRPcDIpOworCisgICAgZG91YmxlIGEgPSBvcDEudG9OdW1iZXIoZXhlYyk7CisgICAgZG91Ymxl
IGIgPSBvcDIudG9OdW1iZXIoZXhlYyk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051
bWJlcihhICogYikpOworfQorCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
blZhbHVlTXVsUHJvZmlsZWQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
T3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9m
aWxlKQoreworICAgIFZNKiB2bSA9ICZleGVjLT52bSgpOworICAgIE5hdGl2ZUNhbGxGcmFtZVRy
YWNlciB0cmFjZXIodm0sIGV4ZWMpOworCisgICAgSlNWYWx1ZSBvcDEgPSBKU1ZhbHVlOjpkZWNv
ZGUoZW5jb2RlZE9wMSk7CisgICAgSlNWYWx1ZSBvcDIgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2Rl
ZE9wMik7CisKKyAgICBkb3VibGUgYSA9IG9wMS50b051bWJlcihleGVjKTsKKyAgICBkb3VibGUg
YiA9IG9wMi50b051bWJlcihleGVjKTsKKyAgICAKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzTnVt
YmVyKGEgKiBiKTsKKyAgICByZXN1bHRQcm9maWxlLT5kZXRlY3RCaXRzTGlnaHQocmVzdWx0KTsK
KyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7Cit9CisKK0VuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVTdWIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKQoreworICAgIFZN
KiB2bSA9ICZleGVjLT52bSgpOworICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0s
IGV4ZWMpOworICAgIAorICAgIEpTVmFsdWUgb3AxID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRP
cDEpOworICAgIEpTVmFsdWUgb3AyID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDIpOworCisg
ICAgZG91YmxlIGEgPSBvcDEudG9OdW1iZXIoZXhlYyk7CisgICAgZG91YmxlIGIgPSBvcDIudG9O
dW1iZXIoZXhlYyk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihhIC0gYikp
OworfQorCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlU3ViUHJv
ZmlsZWQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkT3AyLCBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlKQoreworICAg
IFZNKiB2bSA9ICZleGVjLT52bSgpOworICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIo
dm0sIGV4ZWMpOworICAgIAorICAgIEpTVmFsdWUgb3AxID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29k
ZWRPcDEpOworICAgIEpTVmFsdWUgb3AyID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDIpOwor
CisgICAgZG91YmxlIGEgPSBvcDEudG9OdW1iZXIoZXhlYyk7CisgICAgZG91YmxlIGIgPSBvcDIu
dG9OdW1iZXIoZXhlYyk7CisgICAgCisgICAgSlNWYWx1ZSByZXN1bHQgPSBqc051bWJlcihhIC0g
Yik7CisgICAgcmVzdWx0UHJvZmlsZS0+ZGV0ZWN0Qml0c0xpZ2h0KHJlc3VsdCk7CisgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOworfQorCiB2b2lkIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uUHJvY2Vzc1R5cGVQcm9maWxlckxvZyhFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgVk0m
IHZtID0gZXhlYy0+dm0oKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bl
cmF0aW9ucy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bl
cmF0aW9ucy5oCShyZXZpc2lvbiAyMDA1OTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVE9wZXJhdGlvbnMuaAkod29ya2luZyBjb3B5KQpAQCAtNTMsNiArNTMsNyBAQCBjbGFzcyBX
YXRjaHBvaW50U2V0OwogCiBzdHJ1Y3QgQnlWYWxJbmZvOwogc3RydWN0IElubGluZUNhbGxGcmFt
ZTsKK3N0cnVjdCBSZXN1bHRQcm9maWxlOwogCiB0eXBlZGVmIEV4ZWNTdGF0ZSBDYWxsRnJhbWU7
CiAKQEAgLTk2LDYgKzk3LDcgQEAgdHlwZWRlZiBjaGFyKiBVbnVzZWRQdHI7CiAgICAgUTogaW50
NjRfdAogICAgIFI6IFJlZ2lzdGVyCiAgICAgUmVvOiBSZWdFeHBPYmplY3QqCisgICAgUnA6IFJl
c3VsdFByb2ZpbGUqCiAgICAgUzogc2l6ZV90CiAgICAgU3BydDogU2xvd1BhdGhSZXR1cm5UeXBl
CiAgICAgU3NpOiBTdHJ1Y3R1cmVTdHViSW5mbyoKQEAgLTEzNiw2ICsxMzgsNyBAQCB0eXBlZGVm
IEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpKCiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04gKCpKX0pJVE9wZXJhdGlvbl9FSkpBcCkoRXhlY1N0YXRlKiwgRW5jb2Rl
ZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBBcnJheVByb2ZpbGUqKTsKIHR5cGVkZWYgRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiAoKkpfSklUT3BlcmF0aW9uX0VKSkJ5KShFeGVjU3RhdGUq
LCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEJ5VmFsSW5mbyopOwogdHlwZWRlZiBF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25fRUpKSikoRXhlY1N0
YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSk7Cit0
eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJVE9wZXJhdGlvbl9FSkpS
cCkoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBSZXN1bHRQcm9m
aWxlKik7CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJVE9wZXJh
dGlvbl9FSnNzWikoRXhlY1N0YXRlKiwgSlNTdHJpbmcqLCBpbnQzMl90KTsKIHR5cGVkZWYgRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiAoKkpfSklUT3BlcmF0aW9uX0VKc3NSZW8pKEV4ZWNT
dGF0ZSosIEpTU3RyaW5nKiwgUmVnRXhwT2JqZWN0Kik7CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04gKCpKX0pJVE9wZXJhdGlvbl9FSnNzUmVvSnNzKShFeGVjU3RhdGUqLCBK
U1N0cmluZyosIFJlZ0V4cE9iamVjdCosIEpTU3RyaW5nKik7CkBAIC00MDksNiArNDEyLDEzIEBA
IEpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRQcm9wZXIKIEVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTmV4dEVudW1lcmF0b3JQbmFtZShFeGVjU3RhdGUqLCBK
U0NlbGwqLCBpbnQzMl90KTsKIEpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25Ub0luZGV4
U3RyaW5nKEV4ZWNTdGF0ZSosIGludDMyX3QpOwogCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvblZhbHVlQWRkKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRP
cDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVBZGRQcm9maWxlZChFeGVjU3RhdGUqLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBSZXN1
bHRQcm9maWxlKikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBv
cGVyYXRpb25WYWx1ZU11bChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsUHJvZmlsZWQoRXhlY1N0YXRlKiwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgUmVzdWx0UHJv
ZmlsZSopIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uVmFsdWVTdWIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZE9wMikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25WYWx1ZVN1YlByb2ZpbGVkKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIFJlc3VsdFByb2ZpbGUq
KSBXVEZfSU5URVJOQUw7CisKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25Qcm9jZXNzVHlw
ZVByb2ZpbGVyTG9nKEV4ZWNTdGF0ZSopIFdURl9JTlRFUk5BTDsKIHZvaWQgSklUX09QRVJBVElP
TiBvcGVyYXRpb25Qcm9jZXNzU2hhZG93Q2hpY2tlbkxvZyhFeGVjU3RhdGUqKSBXVEZfSU5URVJO
QUw7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3ViR2VuZXJhdG9yLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN1YkdlbmVyYXRv
ci5jcHAJKHJldmlzaW9uIDIwMDU5MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
U3ViR2VuZXJhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC04Myw2ICs4Myw5IEBAIHZvaWQgSklUU3Vi
R2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKEMKICAgICByaWdodFdhc0ludGVnZXIubGluaygm
aml0KTsKIAogICAgIGppdC5zdWJEb3VibGUobV9yaWdodEZQUiwgbV9sZWZ0RlBSKTsKKyAgICBp
ZiAobV9yZXN1bHRQcm9maWxlKQorICAgICAgICBtX3Jlc3VsdFByb2ZpbGUtPmVtaXRTZXREb3Vi
bGUoaml0KTsKKwogICAgIGppdC5ib3hEb3VibGUobV9sZWZ0RlBSLCBtX3Jlc3VsdCk7CiB9CiAK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3ViR2VuZXJhdG9yLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdWJHZW5lcmF0b3IuaAkocmV2
aXNpb24gMjAwNTkwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdWJHZW5lcmF0
b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0zNyw3ICszNyw4IEBAIGNsYXNzIEpJVFN1YkdlbmVyYXRvciB7
CiBwdWJsaWM6CiAgICAgSklUU3ViR2VuZXJhdG9yKFNuaXBwZXRPcGVyYW5kIGxlZnRPcGVyYW5k
LCBTbmlwcGV0T3BlcmFuZCByaWdodE9wZXJhbmQsCiAgICAgICAgIEpTVmFsdWVSZWdzIHJlc3Vs
dCwgSlNWYWx1ZVJlZ3MgbGVmdCwgSlNWYWx1ZVJlZ3MgcmlnaHQsCi0gICAgICAgIEZQUlJlZyBs
ZWZ0RlBSLCBGUFJSZWcgcmlnaHRGUFIsIEdQUlJlZyBzY3JhdGNoR1BSLCBGUFJSZWcgc2NyYXRj
aEZQUikKKyAgICAgICAgRlBSUmVnIGxlZnRGUFIsIEZQUlJlZyByaWdodEZQUiwgR1BSUmVnIHNj
cmF0Y2hHUFIsIEZQUlJlZyBzY3JhdGNoRlBSLAorICAgICAgICBSZXN1bHRQcm9maWxlKiByZXN1
bHRQcm9maWxlID0gbnVsbHB0cikKICAgICAgICAgOiBtX2xlZnRPcGVyYW5kKGxlZnRPcGVyYW5k
KQogICAgICAgICAsIG1fcmlnaHRPcGVyYW5kKHJpZ2h0T3BlcmFuZCkKICAgICAgICAgLCBtX3Jl
c3VsdChyZXN1bHQpCkBAIC00Nyw2ICs0OCw3IEBAIHB1YmxpYzoKICAgICAgICAgLCBtX3JpZ2h0
RlBSKHJpZ2h0RlBSKQogICAgICAgICAsIG1fc2NyYXRjaEdQUihzY3JhdGNoR1BSKQogICAgICAg
ICAsIG1fc2NyYXRjaEZQUihzY3JhdGNoRlBSKQorICAgICAgICAsIG1fcmVzdWx0UHJvZmlsZShy
ZXN1bHRQcm9maWxlKQogICAgIHsgfQogCiAgICAgdm9pZCBnZW5lcmF0ZUZhc3RQYXRoKENDYWxs
SGVscGVycyYpOwpAQCAtNjUsNiArNjcsNyBAQCBwcml2YXRlOgogICAgIEZQUlJlZyBtX3JpZ2h0
RlBSOwogICAgIEdQUlJlZyBtX3NjcmF0Y2hHUFI7CiAgICAgRlBSUmVnIG1fc2NyYXRjaEZQUjsK
KyAgICBSZXN1bHRQcm9maWxlKiBtX3Jlc3VsdFByb2ZpbGU7CiAgICAgYm9vbCBtX2RpZEVtaXRG
YXN0UGF0aCB7IGZhbHNlIH07CiAKICAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IG1fZW5kSnVt
cExpc3Q7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RhZ1JlZ2lzdGVyc01vZGUu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGFnUmVnaXN0ZXJz
TW9kZS5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RhZ1Jl
Z2lzdGVyc01vZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIlRhZ1JlZ2lzdGVyc01vZGUuaCIKKworI2luY2x1ZGUgPHd0Zi9QcmludFN0
cmVhbS5oPgorCituYW1lc3BhY2UgV1RGIHsKKwordXNpbmcgbmFtZXNwYWNlIEpTQzsKKwordm9p
ZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiBvdXQsIFRhZ1JlZ2lzdGVyc01vZGUgbW9kZSkK
K3sKKyAgICBzd2l0Y2ggKG1vZGUpIHsKKyAgICBjYXNlIERvTm90SGF2ZVRhZ1JlZ2lzdGVyczoK
KyAgICAgICAgb3V0LnByaW50KCJEb05vdEhhdmVUYWdSZWdpc3RlcnMiKTsKKyAgICAgICAgcmV0
dXJuOworICAgIGNhc2UgSGF2ZVRhZ1JlZ2lzdGVyczoKKyAgICAgICAgb3V0LnByaW50KCJIYXZl
VGFnUmVnaXN0ZXJzIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgCisgICAgUkVMRUFT
RV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV1RGCisKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGFnUmVnaXN0ZXJzTW9kZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGFnUmVnaXN0ZXJzTW9kZS5oCShyZXZpc2lv
biAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UYWdSZWdpc3RlcnNNb2RlLmgJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFRhZ1JlZ2lzdGVyc01vZGVfaAorI2RlZmluZSBU
YWdSZWdpc3RlcnNNb2RlX2gKKworbmFtZXNwYWNlIEpTQyB7CisKK2VudW0gVGFnUmVnaXN0ZXJz
TW9kZSB7CisgICAgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzLAorICAgIEhhdmVUYWdSZWdpc3RlcnMK
K307CisKK30gLy8gbmFtZXNwYWNlIEpTQworCituYW1lc3BhY2UgV1RGIHsKKworY2xhc3MgUHJp
bnRTdHJlYW07Cit2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mLCBKU0M6OlRhZ1JlZ2lz
dGVyc01vZGUpOworCit9IC8vIG5hbWVzcGFjZSBXVEYKKworI2VuZGlmIC8vIFRhZ1JlZ2lzdGVy
c01vZGVfaAorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93
UGF0aHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Nv
bW1vblNsb3dQYXRocy5jcHAJKHJldmlzaW9uIDIwMDU5MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3OCw2
ICszNzgsOCBAQCBzdGF0aWMgdm9pZCB1cGRhdGVSZXN1bHRQcm9maWxlRm9yQmluYXJ5CiAgICAg
ICAgICAgICBpZiAoIWRvdWJsZVZhbCAmJiBzdGQ6OnNpZ25iaXQoZG91YmxlVmFsKSkKICAgICAg
ICAgICAgICAgICBwcm9maWxlLT5zZXRPYnNlcnZlZE5lZ1plcm9Eb3VibGUoKTsKICAgICAgICAg
ICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHByb2ZpbGUtPnNldE9ic2VydmVkTm9uTmVnWmVy
b0RvdWJsZSgpOworCiAgICAgICAgICAgICAgICAgLy8gVGhlIEludDUyIG92ZXJmbG93IGNoZWNr
IGhlcmUgaW50ZW50aW9uYWxseSBvbWl0cyAxbGwgPDwgNTEgYXMgYSB2YWxpZCBuZWdhdGl2ZSBJ
bnQ1MiB2YWx1ZS4KICAgICAgICAgICAgICAgICAvLyBUaGVyZWZvcmUsIHdlIHdpbGwgZ2V0IGEg
ZmFsc2UgcG9zaXRpdmUgaWYgdGhlIHJlc3VsdCBpcyB0aGF0IHZhbHVlLiBUaGlzIGlzIGludGVu
dGlvbmFsbHkKICAgICAgICAgICAgICAgICAvLyBkb25lIHRvIHNpbXBsaWZ5IHRoZSBjaGVja2lu
ZyBhbGdvcml0aG0uCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25z
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5o
CShyZXZpc2lvbiAyMDA1OTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRp
b25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTE3NSw2ICsxNzUsNyBAQCB0eXBlZGVmIGNvbnN0IGNo
YXIqIG9wdGlvblN0cmluZzsKICAgICB2KGJvb2wsIHJlcG9ydERGR0NvbXBpbGVUaW1lcywgZmFs
c2UsIE5vcm1hbCwgImR1bXBzIEpTIGZ1bmN0aW9uIHNpZ25hdHVyZSBhbmQgdGhlIHRpbWUgaXQg
dG9vayB0byBERkcgYW5kIEZUTCBjb21waWxlIikgXAogICAgIHYoYm9vbCwgcmVwb3J0RlRMQ29t
cGlsZVRpbWVzLCBmYWxzZSwgTm9ybWFsLCAiZHVtcHMgSlMgZnVuY3Rpb24gc2lnbmF0dXJlIGFu
ZCB0aGUgdGltZSBpdCB0b29rIHRvIEZUTCBjb21waWxlIikgXAogICAgIHYoYm9vbCwgcmVwb3J0
VG90YWxDb21waWxlVGltZXMsIGZhbHNlLCBOb3JtYWwsIG51bGxwdHIpIFwKKyAgICB2KGJvb2ws
IHZlcmJvc2VFeGl0UHJvZmlsZSwgZmFsc2UsIE5vcm1hbCwgbnVsbHB0cikgXAogICAgIHYoYm9v
bCwgdmVyYm9zZUNGQSwgZmFsc2UsIE5vcm1hbCwgbnVsbHB0cikgXAogICAgIHYoYm9vbCwgdmVy
Ym9zZUZUTFRvSlNUaHVuaywgZmFsc2UsIE5vcm1hbCwgbnVsbHB0cikgXAogICAgIHYoYm9vbCwg
dmVyYm9zZUZUTEZhaWx1cmUsIGZhbHNlLCBOb3JtYWwsIG51bGxwdHIpIFwKSW5kZXg6IExheW91
dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIwMDU5MCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDMxIEBACisyMDE2LTA1LTA5ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5j
b20+CisKKyAgICAgICAgUG9seW1vcnBoaWMgb3BlcmFuZHMgaW4gb3BlcmF0b3JzIGNvZXJjZXMg
ZG93bnN0cmVhbSB2YWx1ZXMgdG8gZG91YmxlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxNzkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBqcy9yZWdyZXNzL29iamVjdC1pbnQtYWRkLWFycmF5LWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9vYmplY3QtaW50LWFkZC1h
cnJheS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL29iamVjdC1pbnQtYWRkLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9vYmplY3QtaW50LWFkZC5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL29iamVjdC1pbnQtbXVsLWFycmF5LWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9vYmplY3QtaW50LW11bC1h
cnJheS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL29iamVjdC1pbnQtc3ViLWFy
cmF5LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9vYmplY3QtaW50
LXN1Yi1hcnJheS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL29iamVjdC1pbnQt
c3ViLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9vYmplY3QtaW50
LXN1Yi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9vYmpl
Y3QtaW50LWFkZC1hcnJheS5qczogQWRkZWQuCisgICAgICAgIChpLm8udmFsdWVPZik6CisgICAg
ICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvb2JqZWN0LWludC1hZGQuanM6IEFkZGVkLgor
ICAgICAgICAoaS5vLnZhbHVlT2YpOgorICAgICAgICAqIGpzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3Rz
L29iamVjdC1pbnQtbXVsLWFycmF5LmpzOiBBZGRlZC4KKyAgICAgICAgKGkuby52YWx1ZU9mKToK
KyAgICAgICAgKiBqcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9vYmplY3QtaW50LXN1Yi1hcnJheS5q
czogQWRkZWQuCisgICAgICAgIChpLm8udmFsdWVPZik6CisgICAgICAgICoganMvcmVncmVzcy9z
Y3JpcHQtdGVzdHMvb2JqZWN0LWludC1zdWIuanM6IEFkZGVkLgorICAgICAgICAoaS5vLnZhbHVl
T2YpOgorCiAyMDE2LTA1LTA5ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29t
PgogCiAgICAgICAgIFJlbW92ZSB0ZXN0UnVubmVyLnNldFRleHRBdXRvc2l6aW5nRW5hYmxlZCBh
bmQgbWlncmF0ZSB0aGUgb25lIHRlc3QgdGhhdCB1c2VzIGl0CkluZGV4OiBMYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL29iamVjdC1pbnQtYWRkLWFycmF5LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL29iamVjdC1pbnQtYWRkLWFycmF5LWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvb2JqZWN0LWludC1hZGQt
YXJyYXktZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTAgQEAKK0pTUmVn
cmVzcy9vYmplY3QtaW50LWFkZC1hcnJheQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworUEFTUyBubyBleGNlcHRpb24gdGhyb3duCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9vYmpl
Y3QtaW50LWFkZC1hcnJheS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jl
c3Mvb2JqZWN0LWludC1hZGQtYXJyYXkuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L2pzL3JlZ3Jlc3Mvb2JqZWN0LWludC1hZGQtYXJyYXkuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDEyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9F
TiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNjcmlwdC10
ZXN0cy9vYmplY3QtaW50LWFkZC1hcnJheS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL29iamVjdC1pbnQtYWRkLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL29iamVjdC1pbnQtYWRkLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvb2JqZWN0
LWludC1hZGQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTAgQEAKK0pT
UmVncmVzcy9vYmplY3QtaW50LWFkZAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
UEFTUyBubyBleGNlcHRpb24gdGhyb3duCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9vYmplY3Qt
aW50LWFkZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvb2JqZWN0
LWludC1hZGQuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvb2Jq
ZWN0LWludC1hZGQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZ
UEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9vYmplY3QtaW50LWFkZC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL29iamVjdC1pbnQtbXVsLWFycmF5LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL29iamVjdC1pbnQtbXVsLWFycmF5LWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvb2JqZWN0LWludC1tdWwtYXJyYXkt
ZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTAgQEAKK0pTUmVncmVzcy9v
YmplY3QtaW50LW11bC1hcnJheQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFT
UyBubyBleGNlcHRpb24gdGhyb3duCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9vYmplY3QtaW50
LW11bC1hcnJheS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvb2Jq
ZWN0LWludC1tdWwtYXJyYXkuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2pzL3Jl
Z3Jlc3Mvb2JqZWN0LWludC1tdWwtYXJyYXkuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDEyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8
aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9v
YmplY3QtaW50LW11bC1hcnJheS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4
OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL29iamVjdC1pbnQtc3ViLWFycmF5LWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL29iamVjdC1pbnQtc3ViLWFy
cmF5LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
b2JqZWN0LWludC1zdWItYXJyYXktZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsMTAgQEAKK0pTUmVncmVzcy9vYmplY3QtaW50LXN1Yi1hcnJheQorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworUEFTUyBubyBleGNlcHRpb24gdGhyb3duCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMv
anMvcmVncmVzcy9vYmplY3QtaW50LXN1Yi1hcnJheS5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2pzL3JlZ3Jlc3Mvb2JqZWN0LWludC1zdWItYXJyYXkuaHRtbAkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvb2JqZWN0LWludC1zdWItYXJyYXkuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lF
VEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9InNjcmlwdC10ZXN0cy9vYmplY3QtaW50LXN1Yi1hcnJheS5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL29iamVjdC1pbnQt
c3ViLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL29i
amVjdC1pbnQtc3ViLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2pz
L3JlZ3Jlc3Mvb2JqZWN0LWludC1zdWItZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsMTAgQEAKK0pTUmVncmVzcy9vYmplY3QtaW50LXN1YgorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworUEFTUyBubyBleGNlcHRpb24gdGhyb3duCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvanMv
cmVncmVzcy9vYmplY3QtaW50LXN1Yi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pz
L3JlZ3Jlc3Mvb2JqZWN0LWludC1zdWIuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L2pzL3JlZ3Jlc3Mvb2JqZWN0LWludC1zdWIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDEyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8
aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9v
YmplY3QtaW50LXN1Yi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9vYmplY3QtaW50LWFkZC1hcnJheS5qcwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9vYmplY3Qt
aW50LWFkZC1hcnJheS5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
c2NyaXB0LXRlc3RzL29iamVjdC1pbnQtYWRkLWFycmF5LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsMTggQEAKKyhmdW5jdGlvbigpIHsKKyAgICB2YXIgcmVzdWx0ID0gMDsKKyAgICB2YXIg
bSA9IDEwMDsKKyAgICB2YXIgbiA9IDEwMDAwMDsKKyAgICB2YXIgYXJyYXkgPSBbXTsKKyAgICBm
b3IgKHZhciBpID0gMDsgaSA8IDEwMDsgKytpKQorICAgICAgICBhcnJheS5wdXNoKDEyKTsKKyAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IG07ICsraSkgeworICAgICAgICB2YXIgdmFsdWUgPSAwOwor
ICAgICAgICB2YXIgbyA9IHt2YWx1ZU9mOiBmdW5jdGlvbigpIHsgcmV0dXJuIDQyOyB9fTsKKyAg
ICAgICAgdmFsdWUgKz0gbzsKKyAgICAgICAgdmFyIHJlc3VsdCA9IDA7CisgICAgICAgIGZvciAo
dmFyIGogPSAwOyBqIDwgbjsgKytqKQorICAgICAgICAgICAgcmVzdWx0ICs9IGFycmF5W3ZhbHVl
XTsKKyAgICB9CisgICAgaWYgKHJlc3VsdCAhPSBuICogMTIpCisgICAgICAgIHRocm93ICJFcnJv
cjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30pKCk7CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9y
ZWdyZXNzL3NjcmlwdC10ZXN0cy9vYmplY3QtaW50LWFkZC5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9vYmplY3QtaW50LWFkZC5qcwkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL29iamVjdC1pbnQt
YWRkLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTMgQEAKKyhmdW5jdGlvbigpIHsKKyAg
ICB2YXIgcmVzdWx0ID0gMDsKKyAgICB2YXIgbSA9IDEwMDA7CisgICAgdmFyIG4gPSAxMDAwMDsK
KyAgICBmb3IgKHZhciBpID0gMDsgaSA8IG07ICsraSkgeworICAgICAgICB2YXIgbyA9IHt2YWx1
ZU9mOiBmdW5jdGlvbigpIHsgcmV0dXJuIDQyOyB9fTsKKyAgICAgICAgcmVzdWx0ICs9IG87Cisg
ICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgbjsgKytqKQorICAgICAgICAgICAgcmVzdWx0ICs9
IGo7CisgICAgfQorICAgIGlmIChyZXN1bHQgIT0gbSAqICg0MiArIG4gKiAobiAtIDEpIC8gMikp
CisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30pKCk7Cklu
ZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9vYmplY3QtaW50LW11bC1h
cnJheS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0
cy9vYmplY3QtaW50LW11bC1hcnJheS5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2pz
L3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL29iamVjdC1pbnQtbXVsLWFycmF5LmpzCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsMTggQEAKKyhmdW5jdGlvbigpIHsKKyAgICB2YXIgcmVzdWx0ID0gMDsK
KyAgICB2YXIgbSA9IDEwMDsKKyAgICB2YXIgbiA9IDEwMDAwMDsKKyAgICB2YXIgYXJyYXkgPSBb
XTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDsgKytpKQorICAgICAgICBhcnJheS5wdXNo
KDEyKTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IG07ICsraSkgeworICAgICAgICB2YXIgdmFs
dWUgPSAxOworICAgICAgICB2YXIgbyA9IHt2YWx1ZU9mOiBmdW5jdGlvbigpIHsgcmV0dXJuIDQy
OyB9fTsKKyAgICAgICAgdmFsdWUgKj0gbzsKKyAgICAgICAgdmFyIHJlc3VsdCA9IDA7CisgICAg
ICAgIGZvciAodmFyIGogPSAwOyBqIDwgbjsgKytqKQorICAgICAgICAgICAgcmVzdWx0ICs9IGFy
cmF5W3ZhbHVlXTsKKyAgICB9CisgICAgaWYgKHJlc3VsdCAhPSBuICogMTIpCisgICAgICAgIHRo
cm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30pKCk7CkluZGV4OiBMYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9vYmplY3QtaW50LXN1Yi1hcnJheS5qcwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9vYmplY3QtaW50
LXN1Yi1hcnJheS5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2Ny
aXB0LXRlc3RzL29iamVjdC1pbnQtc3ViLWFycmF5LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsMTggQEAKKyhmdW5jdGlvbigpIHsKKyAgICB2YXIgcmVzdWx0ID0gMDsKKyAgICB2YXIgbSA9
IDEwMDsKKyAgICB2YXIgbiA9IDEwMDAwMDsKKyAgICB2YXIgYXJyYXkgPSBbXTsKKyAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IDEwMDsgKytpKQorICAgICAgICBhcnJheS5wdXNoKDEyKTsKKyAgICBm
b3IgKHZhciBpID0gMDsgaSA8IG07ICsraSkgeworICAgICAgICB2YXIgdmFsdWUgPSAwOworICAg
ICAgICB2YXIgbyA9IHt2YWx1ZU9mOiBmdW5jdGlvbigpIHsgcmV0dXJuIDQyOyB9fTsKKyAgICAg
ICAgdmFsdWUgLT0gbzsKKyAgICAgICAgdmFyIHJlc3VsdCA9IDA7CisgICAgICAgIGZvciAodmFy
IGogPSAwOyBqIDwgbjsgKytqKQorICAgICAgICAgICAgcmVzdWx0ICs9IGFycmF5Wy12YWx1ZV07
CisgICAgfQorICAgIGlmIChyZXN1bHQgIT0gbiAqIDEyKQorICAgICAgICB0aHJvdyAiRXJyb3I6
IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9KSgpOwpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVn
cmVzcy9zY3JpcHQtdGVzdHMvb2JqZWN0LWludC1zdWIuanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvb2JqZWN0LWludC1zdWIuanMJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9vYmplY3QtaW50LXN1
Yi5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEzIEBACisoZnVuY3Rpb24oKSB7CisgICAg
dmFyIHJlc3VsdCA9IDA7CisgICAgdmFyIG0gPSAxMDAwOworICAgIHZhciBuID0gMTAwMDA7Cisg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtOyArK2kpIHsKKyAgICAgICAgdmFyIG8gPSB7dmFsdWVP
ZjogZnVuY3Rpb24oKSB7IHJldHVybiA0MjsgfX07CisgICAgICAgIHJlc3VsdCAtPSBvOworICAg
ICAgICBmb3IgKHZhciBqID0gMDsgaiA8IG47ICsraikKKyAgICAgICAgICAgIHJlc3VsdCAtPSBq
OworICAgIH0KKyAgICBpZiAocmVzdWx0ICE9IC1tICogKDQyICsgbiAqIChuIC0gMSkgLyAyKSkK
KyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfSkoKTsK
</data>
<flag name="review"
          id="302520"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>278457</attachid>
            <date>2016-05-09 16:35:47 -0700</date>
            <delta_ts>2016-05-09 16:35:47 -0700</delta_ts>
            <desc>patch for landing</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>105898</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjAwNTkwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1OCBA
QAorMjAxNi0wNS0wOSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAg
IFBvbHltb3JwaGljIG9wZXJhbmRzIGluIG9wZXJhdG9ycyBjb2VyY2VzIGRvd25zdHJlYW0gdmFs
dWVzIHRvIGRvdWJsZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE1MTc5MworCisgICAgICAgIFJldmlld2VkIGJ5IE1hcmsgTGFtLgorICAgICAgICAK
KyAgICAgICAgUHJldmlvdXNseSBpZiBhbiBvYmplY3QgZmxvd2VkIGludG8gYXJpdGhtZXRpYywg
dGhlIHByZWRpY3Rpb24gcHJvcGFnYXRpb24gcGhhc2Ugd291bGQgZWl0aGVyCisgICAgICAgIGFz
c3VtZSB0aGF0IHRoZSBvdXRwdXQgb2YgdGhlIGFyaXRobWV0aWMgaGFkIHRvIGJlIGRvdWJsZSBv
ciBzb21ldGltZXMgaXQgd291bGQgYXNzdW1lIHRoYXQgaXQKKyAgICAgICAgY291bGRuJ3QgYmUg
ZG91YmxlLiBXZSB3YW50IGl0IHRvIG9ubHkgYXNzdW1lIHRoYXQgdGhlIG91dHB1dCBpcyBkb3Vi
bGUgaWYgaXQgYWN0dWFsbHkgaGFkIGJlZW4uCisgICAgICAgIAorICAgICAgICBUaGUgZmlyc3Qg
cGFydCBvZiB0aGlzIHBhdGNoIGlzIHRvIHJvbGwgb3V0IGh0dHA6Ly90cmFjLndlYmtpdC5vcmcv
Y2hhbmdlc2V0LzIwMDUwMi4gVGhhdCByZW1vdmVkCisgICAgICAgIHNvbWUgb2YgdGhlIG1hY2hp
bmVyeSB0aGF0IHdlIGhhZCBpbiBwbGFjZSB0byBkZXRlY3Qgd2hldGhlciB0aGUgb3V0cHV0IG9m
IGFuIG9wZXJhdGlvbiBpcyBpbnQgb3IKKyAgICAgICAgZG91YmxlLiBUaGF0IGNoYW5nZXNldCBj
bGFpbWVkIHRoYXQgdGhlIG1hY2hpbmVyeSB3YXMgImZ1bmRhbWVudGFsbHkgYnJva2VuIi4gSXQg
YWN0dWFsbHkgd2Fzbid0LgorICAgICAgICBUaGUgcmVhc29uIHdoeSBpdCBkaWRuJ3Qgd29yayB3
YXMgdGhhdCBCeXRlQ29kZVBhcnNlciB3YXMgaWdub3JpbmcgaXQgaWYgbGlrZWx5VG9UYWtlU2xv
d0Nhc2Ugd2FzCisgICAgICAgIGZhbHNlLiBJIHRoaW5rIHRoaXMgd2FzIGEgY29tcGxldGUgZ29v
Zi11cDogdGhlIGNvZGUgaW4gQnl0ZUNvZGVQYXJzZXI6Om1ha2VTYWZlIHdhcyBzdHJ1Y3R1cmVk
CisgICAgICAgIGluIGEgd2F5IHRoYXQgbWFkZSBpdCBub24tb2J2aW91cyB0aGF0IHRoZSBtZXRo
b2QgaXMgYSBuby1vcCBpZiAhbGlrZWx5VG9UYWtlU2xvd0Nhc2UuIFNvLCB0aGlzCisgICAgICAg
IGNoYW5nZSByb2xscyBvdXQgcjIwMDUwMiBhbmQgbWFrZXMgUmVzdWx0UHJvZmlsZSBkbyBpdHMg
am9iIGJ5IHJlc2hhcGluZyBob3cgbWFrZVNhZmUgcHJvY2Vzc2VzCisgICAgICAgIGl0LgorICAg
ICAgICAKKyAgICAgICAgVGhpcyBhbHNvIG1ha2VzIHR3byBvdGhlciBjaGFuZ2VzIHRvIHNob3Jl
IHVwIFJlc3VsdFByb2ZpbGU6CisgICAgICAgIC0gT1NSIGV4aXQgY2FuIG5vdyByZWZpbmUgYSBS
ZXN1bHRQcm9maWxlIHRoZSBzYW1lIHdheSB0aGF0IGl0IHJlZmluZXMgVmFsdWVQcm9maWxlLgor
ICAgICAgICAtIEJhc2VsaW5lIEpJVCBzbG93IHBhdGhzIG5vdyBzZXQgYml0cyBpbiBSZXN1bHRQ
cm9maWxlLgorICAgICAgICAKKyAgICAgICAgQmFzZWQgb24gdGhpcyBzdHVmZiwgdGhlIERGRyBu
b3cgcHJlZGljdHMgaW50L2RvdWJsZS9zdHJpbmcgaW4gb3BfYWRkL29wX3N1Yi9vcF9tdWwgYmFz
ZWQgb24KKyAgICAgICAgUmVzdWx0UHJvZmlsZXMuIFRvIGJlIGNvbnNlcnZhdGl2ZSwgd2Ugc3Rp
bGwgb25seSB1c2UgdGhlIFJlc3VsdFByb2ZpbGVzIGlmIHRoZSBpbmNvbWluZworICAgICAgICBw
cmVkaWN0aW9uIGlzIG5vdCBudW1iZXItb3ItYm9vbGVhbi4gVGhpcyBlbnN1cmVzIHRoYXQgd2Ug
ZXhhY3RseSByZXRhaW4gb3VyIG9sZCBiZWhhdmlvciBpbgorICAgICAgICB0aG9zZSBjYXNlcyBm
b3Igd2hpY2ggaXQgd2FzIHR1bmVkLiBCdXQgSSBob3BlIHRvIHJlbW92ZSB0aGlzIHNvb24uIEkg
YmVsaWV2ZSB0aGF0IFJlc3VsdFByb2ZpbGUKKyAgICAgICAgaXMgYWxyZWFkeSBzdHJpY3RseSBi
ZXR0ZXIgdGhhbiB3aGF0IHByZWRpY3Rpb24gcHJvcGFnYXRpb24gd2FzIGRvaW5nIGJlZm9yZS4K
KyAgICAgICAgCisgICAgICAgIFRoaXMgY2FuIGJlIGFuIGVub3Jtb3VzIHdpbi4gVGhpcyBwYXRj
aCBhZGRzIHNvbWUgc2ltcGxlIG1pY3JvYmVuY2htYXJrcyB0aGF0IGRlbW9uc3RyYXRlIHRoZQor
ICAgICAgICBwcm9ibGVtIG9mIGFzc3VtaW5nIHRoYXQgYXJpdGhtZXRpYyBvbiBvYmplY3RzIHJl
dHVybnMgZG91YmxlLiBUaGUgbW9zdCBleHRyZW1lIG9mIHRoZXNlIHNwZWVkcworICAgICAgICB1
cCA4eCB3aXRoIHRoaXMgY2hhbmdlIChvYmplY3QtaW50LWFkZC1hcnJheSkuCisgICAgICAgIAor
ICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYnl0ZWNvZGUvQ29kZUJsb2NrLmg6Cisg
ICAgICAgIChKU0M6OkNvZGVCbG9jazo6YWRkRnJlcXVlbnRFeGl0U2l0ZSk6CisgICAgICAgIChK
U0M6OkNvZGVCbG9jazo6aGFzRXhpdFNpdGUpOgorICAgICAgICAqIGJ5dGVjb2RlL0RGR0V4aXRQ
cm9maWxlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpGcmVxdWVudEV4aXRTaXRlOjpkdW1wKToK
KyAgICAgICAgKEpTQzo6REZHOjpFeGl0UHJvZmlsZTo6RXhpdFByb2ZpbGUpOgorICAgICAgICAo
SlNDOjpERkc6OkV4aXRQcm9maWxlOjp+RXhpdFByb2ZpbGUpOgorICAgICAgICAoSlNDOjpERkc6
OkV4aXRQcm9maWxlOjphZGQpOgorICAgICAgICAqIGJ5dGVjb2RlL0RGR0V4aXRQcm9maWxlLmg6
CisgICAgICAgIChKU0M6OkRGRzo6RnJlcXVlbnRFeGl0U2l0ZTo6aXNIYXNoVGFibGVEZWxldGVk
VmFsdWUpOgorICAgICAgICAqIGJ5dGVjb2RlL01ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUu
Y3BwOgorICAgICAgICAoSlNDOjpNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlOjpmcm9tTGF6
eU9wZXJhbmQpOgorICAgICAgICAoSlNDOjpNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlOjpl
bWl0UmVwb3J0VmFsdWUpOgorICAgICAgICAoSlNDOjpNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9m
aWxlOjpnZXRTcGVjRmFpbEJ1Y2tldCk6IERlbGV0ZWQuCisgICAgICAgICogYnl0ZWNvZGUvTWV0
aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZS5oOgorICAgICAgICAoSlNDOjpNZXRob2RPZkdldHRp
bmdBVmFsdWVQcm9maWxlOjpNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlKToKKyAgICAgICAg
KEpTQzo6TWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZTo6b3BlcmF0b3IgYm9vbCk6CisgICAg
ICAgIChKU0M6Ok1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGU6Om9wZXJhdG9yISk6IERlbGV0
ZWQuCisgICAgICAgICogYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuY3BwOgorICAgICAgICAo
SlNDOjpBY2Nlc3NDYXNlOjpnZW5lcmF0ZUltcGwpOgorICAgICAgICAqIGJ5dGVjb2RlL1ZhbHVl
UHJvZmlsZS5jcHA6CisgICAgICAgIChKU0M6OlJlc3VsdFByb2ZpbGU6OmVtaXREZXRlY3RCaXRz
TGlnaHQpOgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjplbWl0U2V0RG91YmxlKToKKyAg
ICAgICAgKEpTQzo6UmVzdWx0UHJvZmlsZTo6ZW1pdFNldE5vbk51bWJlcik6CisgICAgICAgIChX
VEY6OnByaW50SW50ZXJuYWwpOgorICAgICAgICAqIGJ5dGVjb2RlL1ZhbHVlUHJvZmlsZS5oOgor
ICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpSZXN1bHRQcm9maWxlKToKKyAgICAgICAgKEpT
Qzo6UmVzdWx0UHJvZmlsZTo6Ynl0ZWNvZGVPZmZzZXQpOgorICAgICAgICAoSlNDOjpSZXN1bHRQ
cm9maWxlOjpzcGVjaWFsRmFzdFBhdGhDb3VudCk6CisgICAgICAgIChKU0M6OlJlc3VsdFByb2Zp
bGU6OmRpZE9ic2VydmVOb25JbnQzMik6CisgICAgICAgIChKU0M6OlJlc3VsdFByb2ZpbGU6OmRp
ZE9ic2VydmVEb3VibGUpOgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpkaWRPYnNlcnZl
Tm9uTmVnWmVyb0RvdWJsZSk6CisgICAgICAgIChKU0M6OlJlc3VsdFByb2ZpbGU6OmRpZE9ic2Vy
dmVOZWdaZXJvRG91YmxlKToKKyAgICAgICAgKEpTQzo6UmVzdWx0UHJvZmlsZTo6ZGlkT2JzZXJ2
ZU5vbk51bWJlcik6CisgICAgICAgIChKU0M6OlJlc3VsdFByb2ZpbGU6OmRpZE9ic2VydmVJbnQz
Mk92ZXJmbG93KToKKyAgICAgICAgKEpTQzo6UmVzdWx0UHJvZmlsZTo6ZGlkT2JzZXJ2ZUludDUy
T3ZlcmZsb3cpOgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpzZXRPYnNlcnZlZE5vbk5l
Z1plcm9Eb3VibGUpOgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpzZXRPYnNlcnZlZE5l
Z1plcm9Eb3VibGUpOgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpzZXRPYnNlcnZlZE5v
bk51bWJlcik6CisgICAgICAgIChKU0M6OlJlc3VsdFByb2ZpbGU6OnNldE9ic2VydmVkSW50MzJP
dmVyZmxvdyk6CisgICAgICAgIChKU0M6OlJlc3VsdFByb2ZpbGU6OmFkZHJlc3NPZkZsYWdzKToK
KyAgICAgICAgKEpTQzo6UmVzdWx0UHJvZmlsZTo6YWRkcmVzc09mU3BlY2lhbEZhc3RQYXRoQ291
bnQpOgorICAgICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpkZXRlY3RCaXRzTGlnaHQpOgorICAg
ICAgICAoSlNDOjpSZXN1bHRQcm9maWxlOjpoYXNCaXRzKToKKyAgICAgICAgKiBkZmcvREZHQnl0
ZUNvZGVQYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjptYWtl
U2FmZSk6CisgICAgICAgICogZGZnL0RGR0ZpeHVwUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpE
Rkc6OkZpeHVwUGhhc2U6OmZpeHVwTm9kZSk6CisgICAgICAgICogZGZnL0RGR0dyYXBoLmNwcDoK
KyAgICAgICAgKEpTQzo6REZHOjpHcmFwaDo6ZW5zdXJlTmF0dXJhbExvb3BzKToKKyAgICAgICAg
KEpTQzo6REZHOjpHcmFwaDo6bWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZUZvcik6CisgICAg
ICAgIChKU0M6OkRGRzo6R3JhcGg6OnZhbHVlUHJvZmlsZUZvcik6IERlbGV0ZWQuCisgICAgICAg
ICogZGZnL0RGR0dyYXBoLmg6CisgICAgICAgIChKU0M6OkRGRzo6R3JhcGg6Omhhc0V4aXRTaXRl
KToKKyAgICAgICAgKEpTQzo6REZHOjpHcmFwaDo6bnVtQmxvY2tzKToKKyAgICAgICAgKiBkZmcv
REZHTm9kZS5oOgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6OmFyaXRoTm9kZUZsYWdzKToKKyAg
ICAgICAgKEpTQzo6REZHOjpOb2RlOjptYXlIYXZlTm9uSW50UmVzdWx0KToKKyAgICAgICAgKEpT
Qzo6REZHOjpOb2RlOjptYXlIYXZlRG91YmxlUmVzdWx0KToKKyAgICAgICAgKEpTQzo6REZHOjpO
b2RlOjptYXlIYXZlTm9uTnVtYmVyUmVzdWx0KToKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjpo
YXNDb25zdGFudEJ1ZmZlcik6CisgICAgICAgICogZGZnL0RGR05vZGVGbGFncy5jcHA6CisgICAg
ICAgIChKU0M6OkRGRzo6ZHVtcE5vZGVGbGFncyk6CisgICAgICAgICogZGZnL0RGR05vZGVGbGFn
cy5oOgorICAgICAgICAqIGRmZy9ERkdPU1JFeGl0Q29tcGlsZXIzMl82NC5jcHA6CisgICAgICAg
IChKU0M6OkRGRzo6T1NSRXhpdENvbXBpbGVyOjpjb21waWxlRXhpdCk6CisgICAgICAgICogZGZn
L0RGR09TUkV4aXRDb21waWxlcjY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpPU1JFeGl0Q29t
cGlsZXI6OmNvbXBpbGVFeGl0KToKKyAgICAgICAgKiBkZmcvREZHT3BlcmF0aW9ucy5jcHA6Cisg
ICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuaDoKKyAgICAgICAgKiBkZmcvREZHUHJlZGljdGlv
blByb3BhZ2F0aW9uUGhhc2UuY3BwOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5o
OgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjYWxsT3BlcmF0aW9uKToKKyAg
ICAgICAgKiBmdGwvRlRMT1NSRXhpdENvbXBpbGVyLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpj
b21waWxlU3R1Yik6CisgICAgICAgICogaml0L0Fzc2VtYmx5SGVscGVycy5oOgorICAgICAgICAo
SlNDOjpBc3NlbWJseUhlbHBlcnM6OmJyYW5jaElmRXF1YWwpOgorICAgICAgICAoSlNDOjpBc3Nl
bWJseUhlbHBlcnM6OmJyYW5jaElmTm90Q2VsbCk6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVs
cGVyczo6YnJhbmNoSWZOb3ROdW1iZXIpOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6
OmJyYW5jaElmTm90RG91YmxlS25vd25Ob3RJbnQzMik6CisgICAgICAgIChKU0M6OkFzc2VtYmx5
SGVscGVyczo6YnJhbmNoSWZCb29sZWFuKToKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJz
OjpicmFuY2hJZkVtcHR5KToKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjpicmFuY2hT
dHJ1Y3R1cmUpOgorICAgICAgICAqIGppdC9DQ2FsbEhlbHBlcnMuaDoKKyAgICAgICAgKEpTQzo6
Q0NhbGxIZWxwZXJzOjpDQ2FsbEhlbHBlcnMpOgorICAgICAgICAoSlNDOjpDQ2FsbEhlbHBlcnM6
OnNldHVwQXJndW1lbnRzKToKKyAgICAgICAgKEpTQzo6Q0NhbGxIZWxwZXJzOjpzZXR1cEFyZ3Vt
ZW50c1dpdGhFeGVjU3RhdGUpOgorICAgICAgICAqIGppdC9JbnRyaW5zaWNFbWl0dGVyLmNwcDoK
KyAgICAgICAgKEpTQzo6QWNjZXNzQ2FzZTo6ZW1pdEludHJpbnNpY0dldHRlcik6CisgICAgICAg
ICogaml0L0pJVC5oOgorICAgICAgICAqIGppdC9KSVRBZGRHZW5lcmF0b3IuY3BwOgorICAgICAg
ICAoSlNDOjpKSVRBZGRHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgpOgorICAgICAgICAqIGpp
dC9KSVRBZGRHZW5lcmF0b3IuaDoKKyAgICAgICAgKEpTQzo6SklUQWRkR2VuZXJhdG9yOjpKSVRB
ZGRHZW5lcmF0b3IpOgorICAgICAgICAqIGppdC9KSVRBcml0aG1ldGljLmNwcDoKKyAgICAgICAg
KEpTQzo6SklUOjplbWl0X29wX2FkZCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3Bf
YWRkKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2Rpdik6CisgICAgICAgIChKU0M6OkpJ
VDo6ZW1pdF9vcF9tdWwpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRTbG93X29wX211bCk6Cisg
ICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9zdWIpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRT
bG93X29wX3N1Yik6CisgICAgICAgICogaml0L0pJVElubGluZXMuaDoKKyAgICAgICAgKEpTQzo6
SklUOjpjYWxsT3BlcmF0aW9uKToKKyAgICAgICAgKEpTQzo6SklUOjpjYWxsT3BlcmF0aW9uTm9F
eGNlcHRpb25DaGVjayk6CisgICAgICAgICogaml0L0pJVE11bEdlbmVyYXRvci5jcHA6CisgICAg
ICAgIChKU0M6OkpJVE11bEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aCk6CisgICAgICAgICog
aml0L0pJVE9wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIGppdC9KSVRPcGVyYXRpb25zLmg6Cisg
ICAgICAgICogaml0L0pJVFN1YkdlbmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6OkpJVFN1Ykdl
bmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aCk6CisgICAgICAgICogaml0L0pJVFN1YkdlbmVyYXRv
ci5oOgorICAgICAgICAoSlNDOjpKSVRTdWJHZW5lcmF0b3I6OkpJVFN1YkdlbmVyYXRvcik6Cisg
ICAgICAgICogaml0L1RhZ1JlZ2lzdGVyc01vZGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdURjo6
cHJpbnRJbnRlcm5hbCk6CisgICAgICAgICogaml0L1RhZ1JlZ2lzdGVyc01vZGUuaDogQWRkZWQu
CisgICAgICAgICogcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwOgorICAgICAgICAoSlNDOjp1
cGRhdGVSZXN1bHRQcm9maWxlRm9yQmluYXJ5QXJpdGhPcCk6CisKIDIwMTYtMDUtMDkgIFNhYW0g
YmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CiAKICAgICAgICAgR2V0dGVyIGFuZCBzZXR0ZXIg
b24gc3VwZXIgYXJlIGNhbGxlZCB3aXRoIHdyb25nICJ0aGlzIiBvYmplY3QKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDIwMDU5MCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNTYzLDYgKzU2
Myw3IEBAIHNldChKYXZhU2NyaXB0Q29yZV9TT1VSQ0VTCiAgICAgaml0L1JlcGF0Y2guY3BwCiAg
ICAgaml0L1NjcmF0Y2hSZWdpc3RlckFsbG9jYXRvci5jcHAKICAgICBqaXQvU2V0dXBWYXJhcmdz
RnJhbWUuY3BwCisgICAgaml0L1RhZ1JlZ2lzdGVyc01vZGUuY3BwCiAgICAgaml0L1RlbXBSZWdp
c3RlclNldC5jcHAKICAgICBqaXQvVGh1bmtHZW5lcmF0b3JzLmNwcAogCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjAwNTkwKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcg
Y29weSkKQEAgLTE5OTIsNiArMTk5Miw4IEBACiAJCURDMTdFODFBMUM5QzkxRTkwMDhBNkFCMyAv
KiBDQ2FsbEhlbHBlcnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gREMxN0U4MTYxQzlDODAyQjAwOEE2QUIzIC8qIENDYWxsSGVscGVycy5jcHAgKi87
IH07CiAJCURDMjE0MzA3MUNBMzJFNTUwMDBBODg2OSAvKiBJQ1N0YXRzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzIxNDMwNjFDQTMyRTUyMDAwQTg4
NjkgLyogSUNTdGF0cy5oICovOyB9OwogCQlEQzIxNDMwODFDQTMyRTU4MDAwQTg4NjkgLyogSUNT
dGF0cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBE
QzIxNDMwNTFDQTMyRTUyMDAwQTg4NjkgLyogSUNTdGF0cy5jcHAgKi87IH07CisJCURDNzk5Nzgz
MUNERTlGQTAwMDRENEEwOSAvKiBUYWdSZWdpc3RlcnNNb2RlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzc5OTc4MjFDREU5RjlFMDA0RDRBMDkgLyog
VGFnUmVnaXN0ZXJzTW9kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCURDNzk5Nzg0MUNERTlGQTIwMDRENEEwOSAvKiBUYWdSZWdpc3RlcnNNb2Rl
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDNzk5
NzgxMUNERTlGOUUwMDRENEEwOSAvKiBUYWdSZWdpc3RlcnNNb2RlLmNwcCAqLzsgfTsKIAkJRENG
M0Q1NjkxQ0QyOTQ2RDAwM0Q1QzY1IC8qIExhenlDbGFzc1N0cnVjdHVyZS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQ0YzRDU2NDFDRDI5NDY4MDAz
RDVDNjUgLyogTGF6eUNsYXNzU3RydWN0dXJlLmNwcCAqLzsgfTsKIAkJRENGM0Q1NkExQ0QyOTQ3
MDAwM0Q1QzY1IC8qIExhenlDbGFzc1N0cnVjdHVyZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRENGM0Q1NjUxQ0QyOTQ2ODAwM0Q1QzY1IC8qIExhenlD
bGFzc1N0cnVjdHVyZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCURDRjNENTZCMUNEMjk0NzIwMDNENUM2NSAvKiBMYXp5Q2xhc3NTdHJ1Y3R1cmVJ
bmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBE
Q0YzRDU2NjFDRDI5NDY4MDAzRDVDNjUgLyogTGF6eUNsYXNzU3RydWN0dXJlSW5saW5lcy5oICov
OyB9OwpAQCAtNDIwNCw2ICs0MjA2LDggQEAKIAkJREMxN0U4MTYxQzlDODAyQjAwOEE2QUIzIC8q
IENDYWxsSGVscGVycy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBD
Q2FsbEhlbHBlcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQzIxNDMwNTFD
QTMyRTUyMDAwQTg4NjkgLyogSUNTdGF0cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBJQ1N0YXRzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREMy
MTQzMDYxQ0EzMkU1MjAwMEE4ODY5IC8qIElDU3RhdHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSUNTdGF0cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEQzc5
OTc4MTFDREU5RjlFMDA0RDRBMDkgLyogVGFnUmVnaXN0ZXJzTW9kZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUYWdSZWdpc3RlcnNNb2RlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJREM3OTk3ODIxQ0RFOUY5RTAwNEQ0QTA5IC8qIFRhZ1JlZ2lz
dGVyc01vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGFnUmVnaXN0ZXJz
TW9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQ0YzRDU2NDFDRDI5NDY4MDAz
RDVDNjUgLyogTGF6eUNsYXNzU3RydWN0dXJlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IExhenlDbGFzc1N0cnVjdHVyZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCURDRjNENTY1MUNEMjk0NjgwMDNENUM2NSAvKiBMYXp5Q2xhc3NTdHJ1Y3R1cmUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGF6eUNsYXNzU3RydWN0dXJlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURDRjNENTY2MUNEMjk0NjgwMDNENUM2NSAv
KiBMYXp5Q2xhc3NTdHJ1Y3R1cmVJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IExhenlDbGFzc1N0cnVjdHVyZUlubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTUwODQsNiArNTA4OCw4IEBACiAJCQkJRkUxODdBMEMxQzAyRUJBNzAwMzhCQkNB
IC8qIFNuaXBwZXRPcGVyYW5kLmggKi8sCiAJCQkJQTczODY1NTExMTg2OTdCNDAwNTQwMjc5IC8q
IFNwZWNpYWxpemVkVGh1bmtKSVQuaCAqLywKIAkJCQlBN0ZGNjQ3QTE4QzUyRTg1MDBCNTUzMDcg
LyogU3BpbGxSZWdpc3RlcnNNb2RlLmggKi8sCisJCQkJREM3OTk3ODExQ0RFOUY5RTAwNEQ0QTA5
IC8qIFRhZ1JlZ2lzdGVyc01vZGUuY3BwICovLAorCQkJCURDNzk5NzgyMUNERTlGOUUwMDRENEEw
OSAvKiBUYWdSZWdpc3RlcnNNb2RlLmggKi8sCiAJCQkJMEZDMzE0MTExODE0NTU5MTAwMDMzMjMy
IC8qIFRlbXBSZWdpc3RlclNldC5jcHAgKi8sCiAJCQkJMEYyNEU1NDgxN0VFMjc0OTAwQUJCMjE3
IC8qIFRlbXBSZWdpc3RlclNldC5oICovLAogCQkJCTBGNTcyRDREMTY4NzlGREIwMEU1N0ZCRCAv
KiBUaHVua0dlbmVyYXRvci5oICovLApAQCAtNzg2MSw2ICs3ODY3LDcgQEAKIAkJCQk4NkYzRUVC
RjE2OENERTkzMDA3N0I5MkEgLyogT2JqY1J1bnRpbWVFeHRyYXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTE0Q0E5NThEMTZBQjUwRkEwMDkzOEEwNiAvKiBPYmplY3RBbGxvY2F0aW9uUHJvZmlsZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRENGM0Q1NkMxQ0QyOTQ3NTAwM0Q1QzY1IC8qIExhenlQcm9w
ZXJ0eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJREM3OTk3ODMxQ0RFOUZBMDAwNEQ0QTA5IC8qIFRh
Z1JlZ2lzdGVyc01vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDQ1MEUxNkY1Q0QwMEIz
NDQ2MCAvKiBPYmplY3RDb25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTk2QjczMjIx
QkRBMDhFRjAwMzMxQjg0IC8qIE9iamVjdENvbnN0cnVjdG9yLmx1dC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEZEM0U0MEExQjYxOEI2NjAwQzgwRTFFIC8qIE9iamVjdFByb3BlcnR5Q29uZGl0aW9u
LmggaW4gSGVhZGVycyAqLywKQEAgLTkwMTYsNiArOTAyMyw3IEBACiAJCQkJRkUzQTA2QjMxQzEw
Q0I4RTAwMzkwRkREIC8qIEpJVEJpdFhvckdlbmVyYXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlBNTdEMjNFNTE4OTBDRUJGMDAzMUM3RkEgLyogSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlBNTMyNDM4OTE4NTY4MzM1MDAyRUQ2OTIgLyogSW5zcGVjdG9y
RnJvbnRlbmREaXNwYXRjaGVycy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlEQzc5OTc4NDFDREU5
RkEyMDA0RDRBMDkgLyogVGFnUmVnaXN0ZXJzTW9kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5
OUYxQTZGRTFCOEU2RDk0MDA0NjNCMjYgLyogSW5zcGVjdG9yRnJvbnRlbmRSb3V0ZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQTUzMzlFQzcxQkIzOTlBOTAwNTRGMDA1IC8qIEluc3BlY3Rvckhl
YXBBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMzVFMDM1RjFCN0FCNDNFMDA3M0FEMkEg
LyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAkocmV2aXNpb24g
MjAwNTkwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCSh3
b3JraW5nIGNvcHkpCkBAIC01MDAsNyArNTAwLDcgQEAgcHVibGljOgogICAgIHsKICAgICAgICAg
QVNTRVJUKEpJVENvZGU6OmlzQmFzZWxpbmVDb2RlKGppdFR5cGUoKSkpOwogICAgICAgICBDb25j
dXJyZW50SklUTG9ja2VyIGxvY2tlcihtX2xvY2spOwotICAgICAgICByZXR1cm4gbV9leGl0UHJv
ZmlsZS5hZGQobG9ja2VyLCBzaXRlKTsKKyAgICAgICAgcmV0dXJuIG1fZXhpdFByb2ZpbGUuYWRk
KGxvY2tlciwgdGhpcywgc2l0ZSk7CiAgICAgfQogCiAgICAgYm9vbCBoYXNFeGl0U2l0ZShjb25z
dCBDb25jdXJyZW50SklUTG9ja2VyJiBsb2NrZXIsIGNvbnN0IERGRzo6RnJlcXVlbnRFeGl0U2l0
ZSYgc2l0ZSkgY29uc3QKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9ERkdF
eGl0UHJvZmlsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0RGR0V4aXRQcm9maWxlLmNwcAkocmV2aXNpb24gMjAwNTkwKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0RGR0V4aXRQcm9maWxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgs
MTQgKzI4LDI0IEBACiAKICNpZiBFTkFCTEUoREZHX0pJVCkKIAorI2luY2x1ZGUgIkNvZGVCbG9j
ay5oIgorCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKK3ZvaWQgRnJlcXVlbnRF
eGl0U2l0ZTo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAoreworICAgIG91dC5wcmludCgi
YmMjIiwgbV9ieXRlY29kZU9mZnNldCwgIjogIiwgbV9raW5kLCAiLyIsIG1faml0VHlwZSk7Cit9
CisKIEV4aXRQcm9maWxlOjpFeGl0UHJvZmlsZSgpIHsgfQogRXhpdFByb2ZpbGU6On5FeGl0UHJv
ZmlsZSgpIHsgfQogCi1ib29sIEV4aXRQcm9maWxlOjphZGQoY29uc3QgQ29uY3VycmVudEpJVExv
Y2tlciYsIGNvbnN0IEZyZXF1ZW50RXhpdFNpdGUmIHNpdGUpCitib29sIEV4aXRQcm9maWxlOjph
ZGQoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIENvZGVCbG9jayogb3duZXIsIGNvbnN0IEZy
ZXF1ZW50RXhpdFNpdGUmIHNpdGUpCiB7CiAgICAgQVNTRVJUKHNpdGUuaml0VHlwZSgpICE9IEV4
aXRGcm9tQW55dGhpbmcpOworCisgICAgaWYgKE9wdGlvbnM6OnZlcmJvc2VFeGl0UHJvZmlsZSgp
KQorICAgICAgICBkYXRhTG9nKHBvaW50ZXJEdW1wKG93bmVyKSwgIjogQWRkaW5nIGV4aXQgc2l0
ZTogIiwgc2l0ZSwgIlxuIik7CiAgICAgCiAgICAgLy8gSWYgd2UndmUgbmV2ZXIgc2VlbiBhbnkg
ZnJlcXVlbnQgZXhpdHMgdGhlbiBjcmVhdGUgdGhlIGxpc3QgYW5kIHB1dCB0aGlzIHNpdGUKICAg
ICAvLyBpbnRvIGl0LgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0RGR0V4
aXRQcm9maWxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0RGR0V4aXRQcm9maWxlLmgJKHJldmlzaW9uIDIwMDU5MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9ERkdFeGl0UHJvZmlsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAxMywgMjAxNCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAxNCwgMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTExNiw2ICsxMTYsOCBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICByZXR1
cm4gbV9raW5kID09IEV4aXRLaW5kVW5zZXQgJiYgbV9ieXRlY29kZU9mZnNldDsKICAgICB9Cisg
ICAgCisgICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0OwogCiBwcml2YXRlOgog
ICAgIHVuc2lnbmVkIG1fYnl0ZWNvZGVPZmZzZXQ7CkBAIC0xNTksNyArMTYxLDcgQEAgcHVibGlj
OgogICAgIC8vIGJlIGNhbGxlZCBhIGZpeGVkIG51bWJlciBvZiB0aW1lcyBwZXIgcmVjb21waWxh
dGlvbi4gUmVjb21waWxhdGlvbiBpcwogICAgIC8vIHJhcmUgdG8gYmVnaW4gd2l0aCwgYW5kIGlt
cGxpZXMgZG9pbmcgTyhuKSBvcGVyYXRpb25zIG9uIHRoZSBDb2RlQmxvY2sKICAgICAvLyBhbnl3
YXkuCi0gICAgYm9vbCBhZGQoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIGNvbnN0IEZyZXF1
ZW50RXhpdFNpdGUmKTsKKyAgICBib29sIGFkZChjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiwg
Q29kZUJsb2NrKiBvd25lciwgY29uc3QgRnJlcXVlbnRFeGl0U2l0ZSYpOwogICAgIAogICAgIC8v
IEdldCB0aGUgZnJlcXVlbnQgZXhpdCBzaXRlcyBmb3IgYSBieXRlY29kZSBpbmRleC4gVGhpcyBp
cyBPKG4pLCBhbmQgaXMKICAgICAvLyBtZWFudCB0byBvbmx5IGJlIHVzZWQgZnJvbSBkZWJ1Z2dp
bmcvcHJvZmlsaW5nIGNvZGUuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
TWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL01ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUuY3BwCShy
ZXZpc2lvbiAyMDA1OTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTWV0aG9k
T2ZHZXR0aW5nQVZhbHVlUHJvZmlsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMywgMjAxNiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4
LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShERkdfSklUKQogCisjaW5jbHVkZSAiQ0NhbGxIZWxw
ZXJzLmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgog
CkBAIC00NCwxNCArNDUsMTUgQEAgTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZSBNZXRob2RP
ZkdldAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLUVuY29kZWRKU1ZhbHVlKiBNZXRob2RPZkdl
dHRpbmdBVmFsdWVQcm9maWxlOjpnZXRTcGVjRmFpbEJ1Y2tldCh1bnNpZ25lZCBpbmRleCkgY29u
c3QKK3ZvaWQgTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZTo6ZW1pdFJlcG9ydFZhbHVlKEND
YWxsSGVscGVycyYgaml0LCBKU1ZhbHVlUmVncyByZWdzKSBjb25zdAogewogICAgIHN3aXRjaCAo
bV9raW5kKSB7CiAgICAgY2FzZSBOb25lOgotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0
dXJuOwogICAgICAgICAKICAgICBjYXNlIFJlYWR5OgotICAgICAgICByZXR1cm4gdS5wcm9maWxl
LT5zcGVjRmFpbEJ1Y2tldChpbmRleCk7CisgICAgICAgIGppdC5zdG9yZVZhbHVlKHJlZ3MsIHUu
cHJvZmlsZS0+c3BlY0ZhaWxCdWNrZXQoMCkpOworICAgICAgICByZXR1cm47CiAgICAgICAgIAog
ICAgIGNhc2UgTGF6eU9wZXJhbmQ6IHsKICAgICAgICAgTGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGVL
ZXkga2V5KHUubGF6eU9wZXJhbmQuYnl0ZWNvZGVPZmZzZXQsIFZpcnR1YWxSZWdpc3Rlcih1Lmxh
enlPcGVyYW5kLm9wZXJhbmQpKTsKQEAgLTU5LDEzICs2MSwxNiBAQCBFbmNvZGVkSlNWYWx1ZSog
TWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvCiAgICAgICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9j
a2VyKHUubGF6eU9wZXJhbmQuY29kZUJsb2NrLT5tX2xvY2spOwogICAgICAgICBMYXp5T3BlcmFu
ZFZhbHVlUHJvZmlsZSogcHJvZmlsZSA9CiAgICAgICAgICAgICB1LmxhenlPcGVyYW5kLmNvZGVC
bG9jay0+bGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGVzKCkuYWRkKGxvY2tlciwga2V5KTsKLSAgICAg
ICAgcmV0dXJuIHByb2ZpbGUtPnNwZWNGYWlsQnVja2V0KGluZGV4KTsKKyAgICAgICAgaml0LnN0
b3JlVmFsdWUocmVncywgcHJvZmlsZS0+c3BlY0ZhaWxCdWNrZXQoMCkpOworICAgICAgICByZXR1
cm47CiAgICAgfQogICAgICAgICAKLSAgICBkZWZhdWx0OgotICAgICAgICBSRUxFQVNFX0FTU0VS
VF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm4gMDsKLSAgICB9CisgICAgY2FzZSBSZXN1
bHRQcm9maWxlUmVhZHk6IHsKKyAgICAgICAgdS5yZXN1bHRQcm9maWxlLT5lbWl0RGV0ZWN0TnVt
ZXJpY25lc3Moaml0LCByZWdzLCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpOworICAgICAgICByZXR1
cm47CisgICAgfSB9CisgICAgCisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0K
IAogfSAvLyBuYW1lc3BhY2UgSlNDCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9NZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlLmgJKHJl
dmlzaW9uIDIwMDU5MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9NZXRob2RP
ZkdldHRpbmdBVmFsdWVQcm9maWxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMyLDEyICszMiwxNSBAQAog
Ly8gdGhlc2UgI2lmJ3Mgd2lsbCBkaXNhcHBlYXIuLi4KICNpZiBFTkFCTEUoREZHX0pJVCkKIAor
I2luY2x1ZGUgIkdQUkluZm8uaCIKICNpbmNsdWRlICJKU0NKU1ZhbHVlLmgiCiAKIG5hbWVzcGFj
ZSBKU0MgewogCitjbGFzcyBDQ2FsbEhlbHBlcnM7CiBjbGFzcyBDb2RlQmxvY2s7CiBjbGFzcyBM
YXp5T3BlcmFuZFZhbHVlUHJvZmlsZUtleTsKK3N0cnVjdCBSZXN1bHRQcm9maWxlOwogc3RydWN0
IFZhbHVlUHJvZmlsZTsKIAogY2xhc3MgTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZSB7CkBA
IC00Nyw3ICs1MCw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQogICAgIAotICAgIGV4cGxpY2l0
IE1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUoVmFsdWVQcm9maWxlKiBwcm9maWxlKQorICAg
IE1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUoVmFsdWVQcm9maWxlKiBwcm9maWxlKQogICAg
IHsKICAgICAgICAgaWYgKHByb2ZpbGUpIHsKICAgICAgICAgICAgIG1fa2luZCA9IFJlYWR5OwpA
QCAtNTYsMzEgKzU5LDM0IEBAIHB1YmxpYzoKICAgICAgICAgICAgIG1fa2luZCA9IE5vbmU7CiAg
ICAgfQogICAgIAorICAgIE1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUoUmVzdWx0UHJvZmls
ZSogcHJvZmlsZSkKKyAgICB7CisgICAgICAgIGlmIChwcm9maWxlKSB7CisgICAgICAgICAgICBt
X2tpbmQgPSBSZXN1bHRQcm9maWxlUmVhZHk7CisgICAgICAgICAgICB1LnJlc3VsdFByb2ZpbGUg
PSBwcm9maWxlOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIG1fa2luZCA9IE5vbmU7Cisg
ICAgfQorICAgIAogICAgIHN0YXRpYyBNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlIGZyb21M
YXp5T3BlcmFuZCgKICAgICAgICAgQ29kZUJsb2NrKiwgY29uc3QgTGF6eU9wZXJhbmRWYWx1ZVBy
b2ZpbGVLZXkmKTsKICAgICAKLSAgICBib29sIG9wZXJhdG9yISgpIGNvbnN0IHsgcmV0dXJuIG1f
a2luZCA9PSBOb25lOyB9Ci0gICAgCi0gICAgLy8gVGhpcyBsb2dpY2FsbHkgaGFzIGEgcG9pbnRl
ciB0byBhICJUaGVyZSBleGlzdHMgWCBzdWNoIHRoYXQKLSAgICAvLyBWYWx1ZVByb2ZpbGVCYXNl
PFg+Ii4gQnV0IHNpbmNlIEMrKyBkb2VzIG5vdCBoYXZlIGV4aXN0ZW50aWFsCi0gICAgLy8gdGVt
cGxhdGVzLCBJIGNhbm5vdCByZXR1cm4gaXQuIFNvIGluc3RlYWQsIGZvciBhbnkgbWV0aG9kcyB0
aGF0Ci0gICAgLy8gdXNlcnMgb2YgdGhpcyBjbGFzcyB3b3VsZCBsaWtlIHRvIGNhbGwsIHdlJ2xs
IGp1c3QgaGF2ZSB0byBwcm92aWRlCi0gICAgLy8gYSBtZXRob2QgaGVyZSB0aGF0IGRvZXMgaXQg
dGhyb3VnaCBhbiBpbmRpcmVjdGlvbi4gT3Igd2UgY291bGQKLSAgICAvLyBwb3NzaWJseSBqdXN0
IG1ha2UgVmFsdWVQcm9maWxlIGxlc3MgdGVtcGxhdGUtYmFzZWQuIEJ1dCBsYXN0IEkKLSAgICAv
LyB0cmllZCB0aGF0LCBpdCBmZWx0IG1vcmUgeXVja3kgdGhhbiB0aGlzIGNsYXNzLgorICAgIGV4
cGxpY2l0IG9wZXJhdG9yIGJvb2woKSBjb25zdCB7IHJldHVybiBtX2tpbmQgIT0gTm9uZTsgfQog
ICAgIAotICAgIEVuY29kZWRKU1ZhbHVlKiBnZXRTcGVjRmFpbEJ1Y2tldCh1bnNpZ25lZCBpbmRl
eCkgY29uc3Q7CisgICAgdm9pZCBlbWl0UmVwb3J0VmFsdWUoQ0NhbGxIZWxwZXJzJiwgSlNWYWx1
ZVJlZ3MpIGNvbnN0OwogICAgIAogcHJpdmF0ZToKICAgICBlbnVtIEtpbmQgewogICAgICAgICBO
b25lLAogICAgICAgICBSZWFkeSwKKyAgICAgICAgUmVzdWx0UHJvZmlsZVJlYWR5LAogICAgICAg
ICBMYXp5T3BlcmFuZAogICAgIH07CiAgICAgCiAgICAgS2luZCBtX2tpbmQ7CiAgICAgdW5pb24g
ewogICAgICAgICBWYWx1ZVByb2ZpbGUqIHByb2ZpbGU7CisgICAgICAgIFJlc3VsdFByb2ZpbGUq
IHJlc3VsdFByb2ZpbGU7CiAgICAgICAgIHN0cnVjdCB7CiAgICAgICAgICAgICBDb2RlQmxvY2sq
IGNvZGVCbG9jazsKICAgICAgICAgICAgIHVuc2lnbmVkIGJ5dGVjb2RlT2Zmc2V0OwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nl
c3MuY3BwCShyZXZpc2lvbiAyMDA1OTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvUG9seW1vcnBoaWNBY2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTQ2LDggKzExNDYs
NyBAQCB2b2lkIEFjY2Vzc0Nhc2U6OmdlbmVyYXRlSW1wbChBY2Nlc3NHZW5lCiAgICAgICAgICAg
ICBpZiAodmVyYm9zZSkKICAgICAgICAgICAgICAgICBkYXRhTG9nKCJIYXZlIHR5cGU6ICIsIHR5
cGUtPmRlc2NyaXB0b3IoKSwgIlxuIik7CiAgICAgICAgICAgICBzdGF0ZS5mYWlsQW5kUmVwYXRj
aC5hcHBlbmQoCi0gICAgICAgICAgICAgICAgaml0LmJyYW5jaElmTm90VHlwZSgKLSAgICAgICAg
ICAgICAgICAgICAgdmFsdWVSZWdzLCBzY3JhdGNoR1BSLCB0eXBlLT5kZXNjcmlwdG9yKCksIEND
YWxsSGVscGVyczo6SGF2ZVRhZ1JlZ2lzdGVycykpOworICAgICAgICAgICAgICAgIGppdC5icmFu
Y2hJZk5vdFR5cGUodmFsdWVSZWdzLCBzY3JhdGNoR1BSLCB0eXBlLT5kZXNjcmlwdG9yKCkpKTsK
ICAgICAgICAgfSBlbHNlIGlmICh2ZXJib3NlKQogICAgICAgICAgICAgZGF0YUxvZygiRG9uJ3Qg
aGF2ZSB0eXBlLlxuIik7CiAgICAgICAgIApAQCAtMTE3Nyw4ICsxMTc2LDcgQEAgdm9pZCBBY2Nl
c3NDYXNlOjpnZW5lcmF0ZUltcGwoQWNjZXNzR2VuZQogICAgICAgICAgICAgaWYgKHZlcmJvc2Up
CiAgICAgICAgICAgICAgICAgZGF0YUxvZygiSGF2ZSB0eXBlOiAiLCB0eXBlLT5kZXNjcmlwdG9y
KCksICJcbiIpOwogICAgICAgICAgICAgc3RhdGUuZmFpbEFuZFJlcGF0Y2guYXBwZW5kKAotICAg
ICAgICAgICAgICAgIGppdC5icmFuY2hJZk5vdFR5cGUoCi0gICAgICAgICAgICAgICAgICAgIHZh
bHVlUmVncywgc2NyYXRjaEdQUiwgdHlwZS0+ZGVzY3JpcHRvcigpLCBDQ2FsbEhlbHBlcnM6Okhh
dmVUYWdSZWdpc3RlcnMpKTsKKyAgICAgICAgICAgICAgICBqaXQuYnJhbmNoSWZOb3RUeXBlKHZh
bHVlUmVncywgc2NyYXRjaEdQUiwgdHlwZS0+ZGVzY3JpcHRvcigpKSk7CiAgICAgICAgIH0gZWxz
ZSBpZiAodmVyYm9zZSkKICAgICAgICAgICAgIGRhdGFMb2coIkRvbid0IGhhdmUgdHlwZS5cbiIp
OwogICAgICAgICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WYWx1ZVBy
b2ZpbGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9W
YWx1ZVByb2ZpbGUuY3BwCShyZXZpc2lvbiAyMDA1OTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvVmFsdWVQcm9maWxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiw2ICsyNiwzNiBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlZhbHVlUHJvZmlsZS5oIgogCisjaW5j
bHVkZSAiQ0NhbGxIZWxwZXJzLmgiCisjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgorCituYW1lc3Bh
Y2UgSlNDIHsKKwordm9pZCBSZXN1bHRQcm9maWxlOjplbWl0RGV0ZWN0TnVtZXJpY25lc3MoQ0Nh
bGxIZWxwZXJzJiBqaXQsIEpTVmFsdWVSZWdzIHJlZ3MsIFRhZ1JlZ2lzdGVyc01vZGUgbW9kZSkK
K3sKKyAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgaXNJbnQzMiA9IGppdC5icmFuY2hJZkludDMyKHJl
Z3MsIG1vZGUpOworICAgIENDYWxsSGVscGVyczo6SnVtcCBub3REb3VibGUgPSBqaXQuYnJhbmNo
SWZOb3REb3VibGVLbm93bk5vdEludDMyKHJlZ3MsIG1vZGUpOworICAgIC8vIEZJWE1FOiBXZSBj
b3VsZCBiZSBtb3JlIHByZWNpc2UgaGVyZS4KKyAgICBlbWl0U2V0RG91YmxlKGppdCk7CisgICAg
Q0NhbGxIZWxwZXJzOjpKdW1wIGRvbmUgPSBqaXQuanVtcCgpOworICAgIG5vdERvdWJsZS5saW5r
KCZqaXQpOworICAgIGVtaXRTZXROb25OdW1iZXIoaml0KTsKKyAgICBkb25lLmxpbmsoJmppdCk7
CisgICAgaXNJbnQzMi5saW5rKCZqaXQpOworfQorCit2b2lkIFJlc3VsdFByb2ZpbGU6OmVtaXRT
ZXREb3VibGUoQ0NhbGxIZWxwZXJzJiBqaXQpCit7CisgICAgaml0Lm9yMzIoQ0NhbGxIZWxwZXJz
OjpUcnVzdGVkSW1tMzIoUmVzdWx0UHJvZmlsZTo6SW50MzJPdmVyZmxvdyB8IFJlc3VsdFByb2Zp
bGU6OkludDUyT3ZlcmZsb3cgfCBSZXN1bHRQcm9maWxlOjpOZWdaZXJvRG91YmxlIHwgUmVzdWx0
UHJvZmlsZTo6Tm9uTmVnWmVyb0RvdWJsZSksIENDYWxsSGVscGVyczo6QWJzb2x1dGVBZGRyZXNz
KGFkZHJlc3NPZkZsYWdzKCkpKTsKK30KKwordm9pZCBSZXN1bHRQcm9maWxlOjplbWl0U2V0Tm9u
TnVtYmVyKENDYWxsSGVscGVycyYgaml0KQoreworICAgIGppdC5vcjMyKENDYWxsSGVscGVyczo6
VHJ1c3RlZEltbTMyKFJlc3VsdFByb2ZpbGU6Ok5vbk51bWJlciksIENDYWxsSGVscGVyczo6QWJz
b2x1dGVBZGRyZXNzKGFkZHJlc3NPZkZsYWdzKCkpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgSlND
CisKIG5hbWVzcGFjZSBXVEYgewogICAgIAogdXNpbmcgbmFtZXNwYWNlIEpTQzsKQEAgLTM0LDIz
ICs2NCwzMSBAQCB2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwgY29uCiB7CiAg
ICAgY29uc3QgY2hhciogc2VwYXJhdG9yID0gIiI7CiAKLSAgICBpZiAocHJvZmlsZS5kaWRPYnNl
cnZlTmVnWmVyb0RvdWJsZSgpKSB7Ci0gICAgICAgIG91dC5wcmludChzZXBhcmF0b3IsICJOZWda
ZXJvRG91YmxlIik7CisgICAgaWYgKCFwcm9maWxlLmRpZE9ic2VydmVOb25JbnQzMigpKSB7Cisg
ICAgICAgIG91dC5wcmludCgiSW50MzIiKTsKICAgICAgICAgc2VwYXJhdG9yID0gInwiOworICAg
IH0gZWxzZSB7CisgICAgICAgIGlmIChwcm9maWxlLmRpZE9ic2VydmVOZWdaZXJvRG91YmxlKCkp
IHsKKyAgICAgICAgICAgIG91dC5wcmludChzZXBhcmF0b3IsICJOZWdaZXJvRG91YmxlIik7Cisg
ICAgICAgICAgICBzZXBhcmF0b3IgPSAifCI7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHByb2Zp
bGUuZGlkT2JzZXJ2ZU5vbk5lZ1plcm9Eb3VibGUoKSkgeworICAgICAgICAgICAgb3V0LnByaW50
KCJOb25OZWdaZXJvRG91YmxlIik7CisgICAgICAgICAgICBzZXBhcmF0b3IgPSAifCI7CisgICAg
ICAgIH0KKyAgICAgICAgaWYgKHByb2ZpbGUuZGlkT2JzZXJ2ZU5vbk51bWJlcigpKSB7CisgICAg
ICAgICAgICBvdXQucHJpbnQoIk5vbk51bWJlciIpOworICAgICAgICAgICAgc2VwYXJhdG9yID0g
InwiOworICAgICAgICB9CisgICAgICAgIGlmIChwcm9maWxlLmRpZE9ic2VydmVJbnQzMk92ZXJm
bG93KCkpIHsKKyAgICAgICAgICAgIG91dC5wcmludCgiSW50MzJPdmVyZmxvdyIpOworICAgICAg
ICAgICAgc2VwYXJhdG9yID0gInwiOworICAgICAgICB9CisgICAgICAgIGlmIChwcm9maWxlLmRp
ZE9ic2VydmVJbnQ1Mk92ZXJmbG93KCkpIHsKKyAgICAgICAgICAgIG91dC5wcmludCgiSW50NTJP
dmVyZmxvdyIpOworICAgICAgICAgICAgc2VwYXJhdG9yID0gInwiOworICAgICAgICB9CiAgICAg
fQotICAgIGlmIChwcm9maWxlLmRpZE9ic2VydmVOb25OdW1iZXIoKSkgewotICAgICAgICBvdXQu
cHJpbnQoIk5vbk51bWJlciIpOwotICAgICAgICBzZXBhcmF0b3IgPSAifCI7Ci0gICAgfQotICAg
IGlmIChwcm9maWxlLmRpZE9ic2VydmVJbnQzMk92ZXJmbG93KCkpIHsKLSAgICAgICAgb3V0LnBy
aW50KCJJbnQzMk92ZXJmbG93Iik7Ci0gICAgICAgIHNlcGFyYXRvciA9ICJ8IjsKLSAgICB9Ci0g
ICAgaWYgKHByb2ZpbGUuZGlkT2JzZXJ2ZUludDUyT3ZlcmZsb3coKSkgewotICAgICAgICBvdXQu
cHJpbnQoIkludDUyT3ZlcmZsb3ciKTsKLSAgICAgICAgc2VwYXJhdG9yID0gInwiOwotICAgIH0K
LQogICAgIGlmIChwcm9maWxlLnNwZWNpYWxGYXN0UGF0aENvdW50KCkpIHsKICAgICAgICAgb3V0
LnByaW50KCIgc3BlY2lhbCBmYXN0IHBhdGg6ICIpOwogICAgICAgICBvdXQucHJpbnQocHJvZmls
ZS5zcGVjaWFsRmFzdFBhdGhDb3VudCgpKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9WYWx1ZVByb2ZpbGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvVmFsdWVQcm9maWxlLmgJKHJldmlzaW9uIDIwMDU5MCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WYWx1ZVByb2ZpbGUuaAkod29ya2luZyBjb3B5KQpAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIsIDIwMTMgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTMsIDIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0zNCwxMiArMzQsMTUgQEAKICNpbmNsdWRlICJKU0FycmF5LmgiCiAjaW5j
bHVkZSAiU3BlY3VsYXRlZFR5cGUuaCIKICNpbmNsdWRlICJTdHJ1Y3R1cmUuaCIKKyNpbmNsdWRl
ICJUYWdSZWdpc3RlcnNNb2RlLmgiCiAjaW5jbHVkZSAiV3JpdGVCYXJyaWVyLmgiCiAjaW5jbHVk
ZSA8d3RmL1ByaW50U3RyZWFtLmg+CiAjaW5jbHVkZSA8d3RmL1N0cmluZ1ByaW50U3RyZWFtLmg+
CiAKIG5hbWVzcGFjZSBKU0MgewogCitjbGFzcyBDQ2FsbEhlbHBlcnM7CisKIHRlbXBsYXRlPHVu
c2lnbmVkIG51bWJlck9mQnVja2V0c0FyZ3VtZW50Pgogc3RydWN0IFZhbHVlUHJvZmlsZUJhc2Ug
ewogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBudW1iZXJPZkJ1Y2tldHMgPSBudW1iZXJPZkJ1
Y2tldHNBcmd1bWVudDsKQEAgLTIxOCwyMCArMjIxLDI1IEBAIHB1YmxpYzoKICAgICB9CiAKICAg
ICBlbnVtIE9ic2VydmVkUmVzdWx0cyB7Ci0gICAgICAgIE5lZ1plcm9Eb3VibGUgICAgPSAxIDw8
IDAsCi0gICAgICAgIE5vbk51bWJlciAgICAgICAgPSAxIDw8IDEsCi0gICAgICAgIEludDMyT3Zl
cmZsb3cgICAgPSAxIDw8IDIsCi0gICAgICAgIEludDUyT3ZlcmZsb3cgICAgPSAxIDw8IDMsCisg
ICAgICAgIE5vbk5lZ1plcm9Eb3VibGUgPSAxIDw8IDAsCisgICAgICAgIE5lZ1plcm9Eb3VibGUg
ICAgPSAxIDw8IDEsCisgICAgICAgIE5vbk51bWJlciAgICAgICAgPSAxIDw8IDIsCisgICAgICAg
IEludDMyT3ZlcmZsb3cgICAgPSAxIDw8IDMsCisgICAgICAgIEludDUyT3ZlcmZsb3cgICAgPSAx
IDw8IDQsCiAgICAgfTsKIAogICAgIGludCBieXRlY29kZU9mZnNldCgpIGNvbnN0IHsgcmV0dXJu
IG1fYnl0ZWNvZGVPZmZzZXRBbmRGbGFncyA+PiBudW1iZXJPZkZsYWdCaXRzOyB9CiAgICAgdW5z
aWduZWQgc3BlY2lhbEZhc3RQYXRoQ291bnQoKSBjb25zdCB7IHJldHVybiBtX3NwZWNpYWxGYXN0
UGF0aENvdW50OyB9CiAKKyAgICBib29sIGRpZE9ic2VydmVOb25JbnQzMigpIGNvbnN0IHsgcmV0
dXJuIGhhc0JpdHMoTm9uTmVnWmVyb0RvdWJsZSB8IE5lZ1plcm9Eb3VibGUgfCBOb25OdW1iZXIp
OyB9CisgICAgYm9vbCBkaWRPYnNlcnZlRG91YmxlKCkgY29uc3QgeyByZXR1cm4gaGFzQml0cyhO
b25OZWdaZXJvRG91YmxlIHwgTmVnWmVyb0RvdWJsZSk7IH0KKyAgICBib29sIGRpZE9ic2VydmVO
b25OZWdaZXJvRG91YmxlKCkgY29uc3QgeyByZXR1cm4gaGFzQml0cyhOb25OZWdaZXJvRG91Ymxl
KTsgfQogICAgIGJvb2wgZGlkT2JzZXJ2ZU5lZ1plcm9Eb3VibGUoKSBjb25zdCB7IHJldHVybiBo
YXNCaXRzKE5lZ1plcm9Eb3VibGUpOyB9CiAgICAgYm9vbCBkaWRPYnNlcnZlTm9uTnVtYmVyKCkg
Y29uc3QgeyByZXR1cm4gaGFzQml0cyhOb25OdW1iZXIpOyB9CiAgICAgYm9vbCBkaWRPYnNlcnZl
SW50MzJPdmVyZmxvdygpIGNvbnN0IHsgcmV0dXJuIGhhc0JpdHMoSW50MzJPdmVyZmxvdyk7IH0K
ICAgICBib29sIGRpZE9ic2VydmVJbnQ1Mk92ZXJmbG93KCkgY29uc3QgeyByZXR1cm4gaGFzQml0
cyhJbnQ1Mk92ZXJmbG93KTsgfQogCisgICAgdm9pZCBzZXRPYnNlcnZlZE5vbk5lZ1plcm9Eb3Vi
bGUoKSB7IHNldEJpdChOb25OZWdaZXJvRG91YmxlKTsgfQogICAgIHZvaWQgc2V0T2JzZXJ2ZWRO
ZWdaZXJvRG91YmxlKCkgeyBzZXRCaXQoTmVnWmVyb0RvdWJsZSk7IH0KICAgICB2b2lkIHNldE9i
c2VydmVkTm9uTnVtYmVyKCkgeyBzZXRCaXQoTm9uTnVtYmVyKTsgfQogICAgIHZvaWQgc2V0T2Jz
ZXJ2ZWRJbnQzMk92ZXJmbG93KCkgeyBzZXRCaXQoSW50MzJPdmVyZmxvdyk7IH0KQEAgLTIzOSw2
ICsyNDcsMjcgQEAgcHVibGljOgogCiAgICAgdm9pZCogYWRkcmVzc09mRmxhZ3MoKSB7IHJldHVy
biAmbV9ieXRlY29kZU9mZnNldEFuZEZsYWdzOyB9CiAgICAgdm9pZCogYWRkcmVzc09mU3BlY2lh
bEZhc3RQYXRoQ291bnQoKSB7IHJldHVybiAmbV9zcGVjaWFsRmFzdFBhdGhDb3VudDsgfQorICAg
IAorICAgIC8vIFNldHMgKEludDMyT3ZlcmZsb3cgfCBJbnQ1Mk92ZXJmbG93IHwgTm9uTmVnWmVy
b0RvdWJsZSB8IE5lZ1plcm9Eb3VibGUpIGlmIGl0IHNlZXMgYQorICAgIC8vIGRvdWJsZS4gU2V0
cyBOb25OdW1iZXIgaWYgaXQgc2VlcyBhIG5vbi1udW1iZXIuCisgICAgdm9pZCBlbWl0RGV0ZWN0
TnVtZXJpY25lc3MoQ0NhbGxIZWxwZXJzJiwgSlNWYWx1ZVJlZ3MsIFRhZ1JlZ2lzdGVyc01vZGUg
PSBIYXZlVGFnUmVnaXN0ZXJzKTsKKyAgICAKKyAgICB2b2lkIGRldGVjdE51bWVyaWNuZXNzKEpT
VmFsdWUgdmFsdWUpCisgICAgeworICAgICAgICBpZiAodmFsdWUuaXNJbnQzMigpKQorICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICBpZiAodmFsdWUuaXNOdW1iZXIoKSkgeworICAgICAgICAg
ICAgbV9ieXRlY29kZU9mZnNldEFuZEZsYWdzIHw9IEludDMyT3ZlcmZsb3cgfCBJbnQ1Mk92ZXJm
bG93IHwgTm9uTmVnWmVyb0RvdWJsZSB8IE5lZ1plcm9Eb3VibGU7CisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIH0KKyAgICAgICAgbV9ieXRlY29kZU9mZnNldEFuZEZsYWdzIHw9IE5vbk51
bWJlcjsKKyAgICB9CisgICAgCisgICAgLy8gU2V0cyAoSW50MzJPdmVyZmxvdyB8IEludDUyT3Zl
cmZsb3cgfCBOb25OZWdaZXJvRG91YmxlIHwgTmVnWmVyb0RvdWJsZSkuCisgICAgdm9pZCBlbWl0
U2V0RG91YmxlKENDYWxsSGVscGVycyYpOworICAgIAorICAgIC8vIFNldHMgTm9uTnVtYmVyLgor
ICAgIHZvaWQgZW1pdFNldE5vbk51bWJlcihDQ2FsbEhlbHBlcnMmKTsKIAogcHJpdmF0ZToKICAg
ICBib29sIGhhc0JpdHMoaW50IG1hc2spIGNvbnN0IHsgcmV0dXJuIG1fYnl0ZWNvZGVPZmZzZXRB
bmRGbGFncyAmIG1hc2s7IH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0
ZUNvZGVQYXJzZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQnl0ZUNvZGVQYXJzZXIuY3BwCShyZXZpc2lvbiAyMDA1OTApCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTA2
LDQwICs5MDYsNTggQEAgcHJpdmF0ZToKICAgICAgICAgaWYgKCFpc1g4NigpICYmIG5vZGUtPm9w
KCkgPT0gQXJpdGhNb2QpCiAgICAgICAgICAgICByZXR1cm4gbm9kZTsKIAotICAgICAgICBpZiAo
IW1faW5saW5lU3RhY2tUb3AtPm1fcHJvZmlsZWRCbG9jay0+bGlrZWx5VG9UYWtlU2xvd0Nhc2Uo
bV9jdXJyZW50SW5kZXgpKQotICAgICAgICAgICAgcmV0dXJuIG5vZGU7CisgICAgICAgIFJlc3Vs
dFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUgPSBtX2lubGluZVN0YWNrVG9wLT5tX3Byb2ZpbGVkQmxv
Y2stPnJlc3VsdFByb2ZpbGVGb3JCeXRlY29kZU9mZnNldChtX2N1cnJlbnRJbmRleCk7CisgICAg
ICAgIGlmIChyZXN1bHRQcm9maWxlKSB7CisgICAgICAgICAgICBzd2l0Y2ggKG5vZGUtPm9wKCkp
IHsKKyAgICAgICAgICAgIGNhc2UgQXJpdGhBZGQ6CisgICAgICAgICAgICBjYXNlIEFyaXRoU3Vi
OgorICAgICAgICAgICAgY2FzZSBWYWx1ZUFkZDoKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0
UHJvZmlsZS0+ZGlkT2JzZXJ2ZURvdWJsZSgpKQorICAgICAgICAgICAgICAgICAgICBub2RlLT5t
ZXJnZUZsYWdzKE5vZGVNYXlIYXZlRG91YmxlUmVzdWx0KTsKKyAgICAgICAgICAgICAgICBpZiAo
cmVzdWx0UHJvZmlsZS0+ZGlkT2JzZXJ2ZU5vbk51bWJlcigpKQorICAgICAgICAgICAgICAgICAg
ICBub2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlIYXZlTm9uTnVtYmVyUmVzdWx0KTsKKyAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGNhc2UgQXJpdGhN
dWw6IHsKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0UHJvZmlsZS0+ZGlkT2JzZXJ2ZUludDUy
T3ZlcmZsb3coKSkKKyAgICAgICAgICAgICAgICAgICAgbm9kZS0+bWVyZ2VGbGFncyhOb2RlTWF5
T3ZlcmZsb3dJbnQ1Mik7CisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdFByb2ZpbGUtPmRpZE9i
c2VydmVJbnQzMk92ZXJmbG93KCkgfHwgbV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5o
YXNFeGl0U2l0ZShtX2N1cnJlbnRJbmRleCwgT3ZlcmZsb3cpKQorICAgICAgICAgICAgICAgICAg
ICBub2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlPdmVyZmxvd0ludDMySW5CYXNlbGluZSk7CisgICAg
ICAgICAgICAgICAgaWYgKHJlc3VsdFByb2ZpbGUtPmRpZE9ic2VydmVOZWdaZXJvRG91YmxlKCkg
fHwgbV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5oYXNFeGl0U2l0ZShtX2N1cnJlbnRJ
bmRleCwgTmVnYXRpdmVaZXJvKSkKKyAgICAgICAgICAgICAgICAgICAgbm9kZS0+bWVyZ2VGbGFn
cyhOb2RlTWF5TmVnWmVyb0luQmFzZWxpbmUpOworICAgICAgICAgICAgICAgIGlmIChyZXN1bHRQ
cm9maWxlLT5kaWRPYnNlcnZlRG91YmxlKCkpCisgICAgICAgICAgICAgICAgICAgIG5vZGUtPm1l
cmdlRmxhZ3MoTm9kZU1heUhhdmVEb3VibGVSZXN1bHQpOworICAgICAgICAgICAgICAgIGlmIChy
ZXN1bHRQcm9maWxlLT5kaWRPYnNlcnZlTm9uTnVtYmVyKCkpCisgICAgICAgICAgICAgICAgICAg
IG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1heUhhdmVOb25OdW1iZXJSZXN1bHQpOworICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAg
ICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfQogICAgICAgICAKLSAgICAgICAgc3dpdGNoIChub2RlLT5vcCgpKSB7Ci0gICAgICAgIGNh
c2UgVUludDMyVG9OdW1iZXI6Ci0gICAgICAgIGNhc2UgQXJpdGhBZGQ6Ci0gICAgICAgIGNhc2Ug
QXJpdGhTdWI6Ci0gICAgICAgIGNhc2UgVmFsdWVBZGQ6Ci0gICAgICAgIGNhc2UgQXJpdGhNb2Q6
IC8vIGZvciBBcml0aE1vZCAiTWF5T3ZlcmZsb3ciIG1lYW5zIHdlIHRyaWVkIHRvIGRpdmlkZSBi
eSB6ZXJvLCBvciB3ZSBzYXcgZG91YmxlLgotICAgICAgICAgICAgbm9kZS0+bWVyZ2VGbGFncyhO
b2RlTWF5T3ZlcmZsb3dJbnQzMkluQmFzZWxpbmUpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgICAgICAKLSAgICAgICAgY2FzZSBBcml0aE5lZ2F0ZToKLSAgICAgICAgICAgIC8vIEN1cnJl
bnRseSB3ZSBjYW4ndCB0ZWxsIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gYSBuZWdhdGlvbiBvdmVy
Zmxvd2luZwotICAgICAgICAgICAgLy8gKGkuZS4gLSgxIDw8IDMxKSkgb3IgZ2VuZXJhdGluZyBu
ZWdhdGl2ZSB6ZXJvIChpLmUuIC0wKS4gSWYgaXQgdG9vayBzbG93Ci0gICAgICAgICAgICAvLyBw
YXRoIHRoZW4gd2UgYXNzdW1lIHRoYXQgaXQgZGlkIGJvdGggb2YgdGhvc2UgdGhpbmdzLgotICAg
ICAgICAgICAgbm9kZS0+bWVyZ2VGbGFncyhOb2RlTWF5T3ZlcmZsb3dJbnQzMkluQmFzZWxpbmUp
OwotICAgICAgICAgICAgbm9kZS0+bWVyZ2VGbGFncyhOb2RlTWF5TmVnWmVyb0luQmFzZWxpbmUp
OwotICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgY2FzZSBBcml0aE11bDogewotICAgICAg
ICAgICAgUmVzdWx0UHJvZmlsZSYgcmVzdWx0UHJvZmlsZSA9ICptX2lubGluZVN0YWNrVG9wLT5t
X3Byb2ZpbGVkQmxvY2stPnJlc3VsdFByb2ZpbGVGb3JCeXRlY29kZU9mZnNldChtX2N1cnJlbnRJ
bmRleCk7Ci0gICAgICAgICAgICBpZiAocmVzdWx0UHJvZmlsZS5kaWRPYnNlcnZlSW50NTJPdmVy
ZmxvdygpKQotICAgICAgICAgICAgICAgIG5vZGUtPm1lcmdlRmxhZ3MoTm9kZU1heU92ZXJmbG93
SW50NTIpOwotICAgICAgICAgICAgaWYgKHJlc3VsdFByb2ZpbGUuZGlkT2JzZXJ2ZUludDMyT3Zl
cmZsb3coKSB8fCBtX2lubGluZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1f
Y3VycmVudEluZGV4LCBPdmVyZmxvdykpCisgICAgICAgIGlmIChtX2lubGluZVN0YWNrVG9wLT5t
X3Byb2ZpbGVkQmxvY2stPmxpa2VseVRvVGFrZVNsb3dDYXNlKG1fY3VycmVudEluZGV4KSkgewor
ICAgICAgICAgICAgc3dpdGNoIChub2RlLT5vcCgpKSB7CisgICAgICAgICAgICBjYXNlIFVJbnQz
MlRvTnVtYmVyOgorICAgICAgICAgICAgY2FzZSBBcml0aEFkZDoKKyAgICAgICAgICAgIGNhc2Ug
QXJpdGhTdWI6CisgICAgICAgICAgICBjYXNlIFZhbHVlQWRkOgorICAgICAgICAgICAgY2FzZSBB
cml0aE1vZDogLy8gZm9yIEFyaXRoTW9kICJNYXlPdmVyZmxvdyIgbWVhbnMgd2UgdHJpZWQgdG8g
ZGl2aWRlIGJ5IHplcm8sIG9yIHdlIHNhdyBkb3VibGUuCisgICAgICAgICAgICAgICAgbm9kZS0+
bWVyZ2VGbGFncyhOb2RlTWF5T3ZlcmZsb3dJbnQzMkluQmFzZWxpbmUpOworICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgY2FzZSBBcml0aE5lZ2F0
ZToKKyAgICAgICAgICAgICAgICAvLyBDdXJyZW50bHkgd2UgY2FuJ3QgdGVsbCB0aGUgZGlmZmVy
ZW5jZSBiZXR3ZWVuIGEgbmVnYXRpb24gb3ZlcmZsb3dpbmcKKyAgICAgICAgICAgICAgICAvLyAo
aS5lLiAtKDEgPDwgMzEpKSBvciBnZW5lcmF0aW5nIG5lZ2F0aXZlIHplcm8gKGkuZS4gLTApLiBJ
ZiBpdCB0b29rIHNsb3cKKyAgICAgICAgICAgICAgICAvLyBwYXRoIHRoZW4gd2UgYXNzdW1lIHRo
YXQgaXQgZGlkIGJvdGggb2YgdGhvc2UgdGhpbmdzLgogICAgICAgICAgICAgICAgIG5vZGUtPm1l
cmdlRmxhZ3MoTm9kZU1heU92ZXJmbG93SW50MzJJbkJhc2VsaW5lKTsKLSAgICAgICAgICAgIGlm
IChyZXN1bHRQcm9maWxlLmRpZE9ic2VydmVOZWdaZXJvRG91YmxlKCkgfHwgbV9pbmxpbmVTdGFj
a1RvcC0+bV9leGl0UHJvZmlsZS5oYXNFeGl0U2l0ZShtX2N1cnJlbnRJbmRleCwgTmVnYXRpdmVa
ZXJvKSkKICAgICAgICAgICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlOZWdaZXJvSW5C
YXNlbGluZSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotCi0gICAgICAgIGRlZmF1
bHQ6Ci0gICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgCisgICAg
ICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQog
ICAgICAgICB9CiAgICAgICAgIAogICAgICAgICByZXR1cm4gbm9kZTsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAkocmV2aXNpb24gMjAwNTkwKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTkyLDkgKzE5Miw3IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgQXJpdGhBZGQ6
CiAgICAgICAgIGNhc2UgQXJpdGhTdWI6IHsKICAgICAgICAgICAgIGlmIChvcCA9PSBBcml0aFN1
YgotICAgICAgICAgICAgICAgICYmIE5vZGU6OnNob3VsZFNwZWN1bGF0ZVVudHlwZWRGb3JBcml0
aG1ldGljKG5vZGUtPmNoaWxkMSgpLm5vZGUoKSwgbm9kZS0+Y2hpbGQyKCkubm9kZSgpKQotICAg
ICAgICAgICAgICAgICYmIG1fZ3JhcGguaGFzRXhpdFNpdGUobm9kZS0+b3JpZ2luLnNlbWFudGlj
LCBCYWRUeXBlKSkgewotCisgICAgICAgICAgICAgICAgJiYgTm9kZTo6c2hvdWxkU3BlY3VsYXRl
VW50eXBlZEZvckFyaXRobWV0aWMobm9kZS0+Y2hpbGQxKCkubm9kZSgpLCBub2RlLT5jaGlsZDIo
KS5ub2RlKCkpKSB7CiAgICAgICAgICAgICAgICAgZml4RWRnZTxVbnR5cGVkVXNlPihub2RlLT5j
aGlsZDEoKSk7CiAgICAgICAgICAgICAgICAgZml4RWRnZTxVbnR5cGVkVXNlPihub2RlLT5jaGls
ZDIoKSk7CiAgICAgICAgICAgICAgICAgbm9kZS0+c2V0UmVzdWx0KE5vZGVSZXN1bHRKUyk7CkBA
IC0yMzYsOCArMjM0LDcgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBBcml0aE11bDogewogICAg
ICAgICAgICAgRWRnZSYgbGVmdENoaWxkID0gbm9kZS0+Y2hpbGQxKCk7CiAgICAgICAgICAgICBF
ZGdlJiByaWdodENoaWxkID0gbm9kZS0+Y2hpbGQyKCk7Ci0gICAgICAgICAgICBpZiAoTm9kZTo6
c2hvdWxkU3BlY3VsYXRlVW50eXBlZEZvckFyaXRobWV0aWMobGVmdENoaWxkLm5vZGUoKSwgcmln
aHRDaGlsZC5ub2RlKCkpCi0gICAgICAgICAgICAgICAgJiYgbV9ncmFwaC5oYXNFeGl0U2l0ZShu
b2RlLT5vcmlnaW4uc2VtYW50aWMsIEJhZFR5cGUpKSB7CisgICAgICAgICAgICBpZiAoTm9kZTo6
c2hvdWxkU3BlY3VsYXRlVW50eXBlZEZvckFyaXRobWV0aWMobGVmdENoaWxkLm5vZGUoKSwgcmln
aHRDaGlsZC5ub2RlKCkpKSB7CiAgICAgICAgICAgICAgICAgZml4RWRnZTxVbnR5cGVkVXNlPihs
ZWZ0Q2hpbGQpOwogICAgICAgICAgICAgICAgIGZpeEVkZ2U8VW50eXBlZFVzZT4ocmlnaHRDaGls
ZCk7CiAgICAgICAgICAgICAgICAgbm9kZS0+c2V0UmVzdWx0KE5vZGVSZXN1bHRKUyk7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmNwcAkocmV2aXNpb24gMjAwNTkwKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTE0NDYsNDYgKzE0NDYsNTAgQEAgdm9pZCBHcmFwaDo6ZW5zdXJlTmF0dXJhbExvb3BzKCkK
ICAgICAgICAgbV9uYXR1cmFsTG9vcHMgPSBzdGQ6Om1ha2VfdW5pcXVlPE5hdHVyYWxMb29wcz4o
KnRoaXMpOwogfQogCi1WYWx1ZVByb2ZpbGUqIEdyYXBoOjp2YWx1ZVByb2ZpbGVGb3IoTm9kZSog
bm9kZSkKK01ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUgR3JhcGg6Om1ldGhvZE9mR2V0dGlu
Z0FWYWx1ZVByb2ZpbGVGb3IoTm9kZSogbm9kZSkKIHsKLSAgICBpZiAoIW5vZGUpCi0gICAgICAg
IHJldHVybiBudWxscHRyOworICAgIHdoaWxlIChub2RlKSB7CisgICAgICAgIENvZGVCbG9jayog
cHJvZmlsZWRCbG9jayA9IGJhc2VsaW5lQ29kZUJsb2NrRm9yKG5vZGUtPm9yaWdpbi5zZW1hbnRp
Yyk7CiAgICAgICAgIAotICAgIENvZGVCbG9jayogcHJvZmlsZWRCbG9jayA9IGJhc2VsaW5lQ29k
ZUJsb2NrRm9yKG5vZGUtPm9yaWdpbi5zZW1hbnRpYyk7CisgICAgICAgIGlmIChub2RlLT5oYXNM
b2NhbCgqdGhpcykpIHsKKyAgICAgICAgICAgIFZhbHVlUHJvZmlsZSogcmVzdWx0ID0gWyZdICgp
IC0+IFZhbHVlUHJvZmlsZSogeworICAgICAgICAgICAgICAgIGlmICghbm9kZS0+bG9jYWwoKS5p
c0FyZ3VtZW50KCkpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAg
ICAgICAgICAgIGludCBhcmd1bWVudCA9IG5vZGUtPmxvY2FsKCkudG9Bcmd1bWVudCgpOworICAg
ICAgICAgICAgICAgIE5vZGUqIGFyZ3VtZW50Tm9kZSA9IG1fYXJndW1lbnRzW2FyZ3VtZW50XTsK
KyAgICAgICAgICAgICAgICBpZiAoIWFyZ3VtZW50Tm9kZSkKKyAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisgICAgICAgICAgICAgICAgaWYgKG5vZGUtPnZhcmlhYmxlQWNjZXNz
RGF0YSgpICE9IGFyZ3VtZW50Tm9kZS0+dmFyaWFibGVBY2Nlc3NEYXRhKCkpCisgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICAgICAgICAgIHJldHVybiBwcm9maWxl
ZEJsb2NrLT52YWx1ZVByb2ZpbGVGb3JBcmd1bWVudChhcmd1bWVudCk7CisgICAgICAgICAgICB9
KCk7CisgICAgICAgICAgICBpZiAocmVzdWx0KQorICAgICAgICAgICAgICAgIHJldHVybiByZXN1
bHQ7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChub2RlLT5vcCgpID09IEdldExvY2Fs
KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIE1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGU6
OmZyb21MYXp5T3BlcmFuZCgKKyAgICAgICAgICAgICAgICAgICAgcHJvZmlsZWRCbG9jaywKKyAg
ICAgICAgICAgICAgICAgICAgTGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGVLZXkoCisgICAgICAgICAg
ICAgICAgICAgICAgICBub2RlLT5vcmlnaW4uc2VtYW50aWMuYnl0ZWNvZGVJbmRleCwgbm9kZS0+
bG9jYWwoKSkpOworICAgICAgICAgICAgfQorICAgICAgICB9CiAgICAgICAgIAotICAgIGlmIChu
b2RlLT5oYXNMb2NhbCgqdGhpcykpIHsKLSAgICAgICAgaWYgKCFub2RlLT5sb2NhbCgpLmlzQXJn
dW1lbnQoKSkKLSAgICAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgICAgICBpbnQgYXJndW1l
bnQgPSBub2RlLT5sb2NhbCgpLnRvQXJndW1lbnQoKTsKLSAgICAgICAgTm9kZSogYXJndW1lbnRO
b2RlID0gbV9hcmd1bWVudHNbYXJndW1lbnRdOwotICAgICAgICBpZiAoIWFyZ3VtZW50Tm9kZSkK
LSAgICAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgICAgICBpZiAobm9kZS0+dmFyaWFibGVB
Y2Nlc3NEYXRhKCkgIT0gYXJndW1lbnROb2RlLT52YXJpYWJsZUFjY2Vzc0RhdGEoKSkKLSAgICAg
ICAgICAgIHJldHVybiBudWxscHRyOwotICAgICAgICByZXR1cm4gcHJvZmlsZWRCbG9jay0+dmFs
dWVQcm9maWxlRm9yQXJndW1lbnQoYXJndW1lbnQpOwotICAgIH0KKyAgICAgICAgaWYgKG5vZGUt
Pmhhc0hlYXBQcmVkaWN0aW9uKCkpCisgICAgICAgICAgICByZXR1cm4gcHJvZmlsZWRCbG9jay0+
dmFsdWVQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQobm9kZS0+b3JpZ2luLnNlbWFudGljLmJ5dGVj
b2RlSW5kZXgpOwogICAgICAgICAKLSAgICBpZiAobm9kZS0+aGFzSGVhcFByZWRpY3Rpb24oKSkK
LSAgICAgICAgcmV0dXJuIHByb2ZpbGVkQmxvY2stPnZhbHVlUHJvZmlsZUZvckJ5dGVjb2RlT2Zm
c2V0KG5vZGUtPm9yaWdpbi5zZW1hbnRpYy5ieXRlY29kZUluZGV4KTsKKyAgICAgICAgaWYgKFJl
c3VsdFByb2ZpbGUqIHJlc3VsdCA9IHByb2ZpbGVkQmxvY2stPnJlc3VsdFByb2ZpbGVGb3JCeXRl
Y29kZU9mZnNldChub2RlLT5vcmlnaW4uc2VtYW50aWMuYnl0ZWNvZGVJbmRleCkpCisgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICAKLSAgICByZXR1cm4gbnVsbHB0cjsKLX0KLQot
TWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZSBHcmFwaDo6bWV0aG9kT2ZHZXR0aW5nQVZhbHVl
UHJvZmlsZUZvcihOb2RlKiBub2RlKQotewotICAgIGlmICghbm9kZSkKLSAgICAgICAgcmV0dXJu
IE1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUoKTsKLSAgICAKLSAgICBpZiAoVmFsdWVQcm9m
aWxlKiB2YWx1ZVByb2ZpbGUgPSB2YWx1ZVByb2ZpbGVGb3Iobm9kZSkpCi0gICAgICAgIHJldHVy
biBNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlKHZhbHVlUHJvZmlsZSk7Ci0gICAgCi0gICAg
aWYgKG5vZGUtPm9wKCkgPT0gR2V0TG9jYWwpIHsKLSAgICAgICAgQ29kZUJsb2NrKiBwcm9maWxl
ZEJsb2NrID0gYmFzZWxpbmVDb2RlQmxvY2tGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKTsKLSAg
ICAgICAgCi0gICAgICAgIHJldHVybiBNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlOjpmcm9t
TGF6eU9wZXJhbmQoCi0gICAgICAgICAgICBwcm9maWxlZEJsb2NrLAotICAgICAgICAgICAgTGF6
eU9wZXJhbmRWYWx1ZVByb2ZpbGVLZXkoCi0gICAgICAgICAgICAgICAgbm9kZS0+b3JpZ2luLnNl
bWFudGljLmJ5dGVjb2RlSW5kZXgsIG5vZGUtPmxvY2FsKCkpKTsKKyAgICAgICAgc3dpdGNoIChu
b2RlLT5vcCgpKSB7CisgICAgICAgIGNhc2UgSWRlbnRpdHk6CisgICAgICAgIGNhc2UgVmFsdWVS
ZXA6CisgICAgICAgIGNhc2UgRG91YmxlUmVwOgorICAgICAgICBjYXNlIEludDUyUmVwOgorICAg
ICAgICAgICAgbm9kZSA9IG5vZGUtPmNoaWxkMSgpLm5vZGUoKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgbm9kZSA9IG51bGxwdHI7CisgICAgICAg
IH0KICAgICB9CiAgICAgCiAgICAgcmV0dXJuIE1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUo
KTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgJKHJldmlzaW9uIDIwMDU5
MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaAkod29ya2luZyBjb3B5
KQpAQCAtNDAwLDcgKzQwMCw2IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGhhc0V4aXRTaXRl
KG5vZGUtPm9yaWdpbi5zZW1hbnRpYywgZXhpdEtpbmQpOwogICAgIH0KICAgICAKLSAgICBWYWx1
ZVByb2ZpbGUqIHZhbHVlUHJvZmlsZUZvcihOb2RlKik7CiAgICAgTWV0aG9kT2ZHZXR0aW5nQVZh
bHVlUHJvZmlsZSBtZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlRm9yKE5vZGUqKTsKICAgICAK
ICAgICBCbG9ja0luZGV4IG51bUJsb2NrcygpIGNvbnN0IHsgcmV0dXJuIG1fYmxvY2tzLnNpemUo
KTsgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgJKHJldmlzaW9uIDIwMDU5
MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCSh3b3JraW5nIGNvcHkp
CkBAIC05NTIsNiArOTUyLDIxIEBAIHN0cnVjdCBOb2RlIHsKICAgICAgICAgcmV0dXJuIHJlc3Vs
dCAmIH5Ob2RlQnl0ZWNvZGVOZWVkc05lZ1plcm87CiAgICAgfQogCisgICAgYm9vbCBtYXlIYXZl
Tm9uSW50UmVzdWx0KCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX2ZsYWdzICYgTm9kZU1heUhh
dmVOb25JbnRSZXN1bHQ7CisgICAgfQorICAgIAorICAgIGJvb2wgbWF5SGF2ZURvdWJsZVJlc3Vs
dCgpCisgICAgeworICAgICAgICByZXR1cm4gbV9mbGFncyAmIE5vZGVNYXlIYXZlRG91YmxlUmVz
dWx0OworICAgIH0KKyAgICAKKyAgICBib29sIG1heUhhdmVOb25OdW1iZXJSZXN1bHQoKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIG1fZmxhZ3MgJiBOb2RlTWF5SGF2ZU5vbk51bWJlclJlc3VsdDsK
KyAgICB9CisKICAgICBib29sIGhhc0NvbnN0YW50QnVmZmVyKCkKICAgICB7CiAgICAgICAgIHJl
dHVybiBvcCgpID09IE5ld0FycmF5QnVmZmVyOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdOb2RlRmxhZ3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHTm9kZUZsYWdzLmNwcAkocmV2aXNpb24gMjAwNTkwKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdOb2RlRmxhZ3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04NSw2ICs4
NSwxMiBAQCB2b2lkIGR1bXBOb2RlRmxhZ3MoUHJpbnRTdHJlYW0mIGFjdHVhbE91CiAgICAgICAg
ICAgICBvdXQucHJpbnQoY29tbWEsICJVc2VBc090aGVyIik7CiAgICAgfQogCisgICAgaWYgKGZs
YWdzICYgTm9kZU1heUhhdmVEb3VibGVSZXN1bHQpCisgICAgICAgIG91dC5wcmludChjb21tYSwg
Ik1heUhhdmVEb3VibGVSZXN1bHQiKTsKKworICAgIGlmIChmbGFncyAmIE5vZGVNYXlIYXZlTm9u
TnVtYmVyUmVzdWx0KQorICAgICAgICBvdXQucHJpbnQoY29tbWEsICJNYXlIYXZlTm9uTnVtYmVy
UmVzdWx0Iik7CisKICAgICBpZiAoZmxhZ3MgJiBOb2RlTWF5T3ZlcmZsb3dJbnQ1MikKICAgICAg
ICAgb3V0LnByaW50KGNvbW1hLCAiTWF5T3ZlcmZsb3dJbnQ1MiIpOwogCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVGbGFncy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZUZsYWdzLmgJKHJldmlzaW9uIDIwMDU5MCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZUZsYWdzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTQ4LDI4ICs0OCwzMCBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAjZGVmaW5l
IE5vZGVIYXNWYXJBcmdzICAgICAgICAgICAgICAgICAgIDB4MDAxMAogICAgIAogI2RlZmluZSBO
b2RlQmVoYXZpb3JNYXNrICAgICAgICAgICAgICAgICAweDA3ZTAKKyNkZWZpbmUgTm9kZU1heUhh
dmVEb3VibGVSZXN1bHQgICAgICAgICAgMHgwMDIwCiAjZGVmaW5lIE5vZGVNYXlPdmVyZmxvd0lu
dDUyICAgICAgICAgICAgIDB4MDA0MAogI2RlZmluZSBOb2RlTWF5T3ZlcmZsb3dJbnQzMkluQmFz
ZWxpbmUgICAweDAwODAKICNkZWZpbmUgTm9kZU1heU92ZXJmbG93SW50MzJJbkRGRyAgICAgICAg
MHgwMTAwCiAjZGVmaW5lIE5vZGVNYXlOZWdaZXJvSW5CYXNlbGluZSAgICAgICAgIDB4MDIwMAog
I2RlZmluZSBOb2RlTWF5TmVnWmVyb0luREZHICAgICAgICAgICAgICAweDA0MDAKKyNkZWZpbmUg
Tm9kZU1heUhhdmVOb25OdW1iZXJSZXN1bHQgICAgICAgMHgwODAwCisjZGVmaW5lIE5vZGVNYXlI
YXZlTm9uSW50UmVzdWx0ICAgICAgICAgIChOb2RlTWF5SGF2ZURvdWJsZVJlc3VsdCB8IE5vZGVN
YXlIYXZlTm9uTnVtYmVyUmVzdWx0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK
LSNkZWZpbmUgTm9kZUJ5dGVjb2RlQmFja1Byb3BNYXNrICAgICAgICAgMHhmODAwCi0jZGVmaW5l
IE5vZGVCeXRlY29kZVVzZUJvdHRvbSAgICAgICAgICAgIDB4MDAwMAotI2RlZmluZSBOb2RlQnl0
ZWNvZGVVc2VzQXNOdW1iZXIgICAgICAgICAweDA4MDAgLy8gVGhlIHJlc3VsdCBvZiB0aGlzIGNv
bXB1dGF0aW9uIG1heSBiZSB1c2VkIGluIGEgY29udGV4dCB0aGF0IG9ic2VydmVzIGZyYWN0aW9u
YWwsIG9yIGJpZ2dlci10aGFuLWludDMyLCByZXN1bHRzLgotI2RlZmluZSBOb2RlQnl0ZWNvZGVO
ZWVkc05lZ1plcm8gICAgICAgICAweDEwMDAgLy8gVGhlIHJlc3VsdCBvZiB0aGlzIGNvbXB1dGF0
aW9uIG1heSBiZSB1c2VkIGluIGEgY29udGV4dCB0aGF0IG9ic2VydmVzIC0wLgotI2RlZmluZSBO
b2RlQnl0ZWNvZGVVc2VzQXNPdGhlciAgICAgICAgICAweDIwMDAgLy8gVGhlIHJlc3VsdCBvZiB0
aGlzIGNvbXB1dGF0aW9uIG1heSBiZSB1c2VkIGluIGEgY29udGV4dCB0aGF0IGRpc3Rpbmd1aXNo
ZXMgYmV0d2VlbiBOYU4gYW5kIG90aGVyIHRoaW5ncyAobGlrZSB1bmRlZmluZWQpLgotI2RlZmlu
ZSBOb2RlQnl0ZWNvZGVVc2VzQXNWYWx1ZSAgICAgICAgICAoTm9kZUJ5dGVjb2RlVXNlc0FzTnVt
YmVyIHwgTm9kZUJ5dGVjb2RlTmVlZHNOZWdaZXJvIHwgTm9kZUJ5dGVjb2RlVXNlc0FzT3RoZXIp
Ci0jZGVmaW5lIE5vZGVCeXRlY29kZVVzZXNBc0ludCAgICAgICAgICAgIDB4NDAwMCAvLyBUaGUg
cmVzdWx0IG9mIHRoaXMgY29tcHV0YXRpb24gaXMga25vd24gdG8gYmUgdXNlZCBpbiBhIGNvbnRl
eHQgdGhhdCBwcmVmZXJzLCBidXQgZG9lcyBub3QgcmVxdWlyZSwgaW50ZWdlciB2YWx1ZXMuCi0j
ZGVmaW5lIE5vZGVCeXRlY29kZVVzZXNBc0FycmF5SW5kZXggICAgIDB4ODAwMCAvLyBUaGUgcmVz
dWx0IG9mIHRoaXMgY29tcHV0YXRpb24gaXMga25vd24gdG8gYmUgdXNlZCBpbiBhIGNvbnRleHQg
dGhhdCBzdHJvbmdseSBwcmVmZXJzIGludGVnZXIgdmFsdWVzLCB0byB0aGUgcG9pbnQgdGhhdCB3
ZSBzaG91bGQgYXZvaWQgdXNpbmcgZG91YmxlcyBpZiBhdCBhbGwgcG9zc2libGUuCisjZGVmaW5l
IE5vZGVCeXRlY29kZUJhY2tQcm9wTWFzayAgICAgICAgMHgxZjAwMAorI2RlZmluZSBOb2RlQnl0
ZWNvZGVVc2VCb3R0b20gICAgICAgICAgIDB4MDAwMDAKKyNkZWZpbmUgTm9kZUJ5dGVjb2RlVXNl
c0FzTnVtYmVyICAgICAgICAweDAxMDAwIC8vIFRoZSByZXN1bHQgb2YgdGhpcyBjb21wdXRhdGlv
biBtYXkgYmUgdXNlZCBpbiBhIGNvbnRleHQgdGhhdCBvYnNlcnZlcyBmcmFjdGlvbmFsLCBvciBi
aWdnZXItdGhhbi1pbnQzMiwgcmVzdWx0cy4KKyNkZWZpbmUgTm9kZUJ5dGVjb2RlTmVlZHNOZWda
ZXJvICAgICAgICAweDAyMDAwIC8vIFRoZSByZXN1bHQgb2YgdGhpcyBjb21wdXRhdGlvbiBtYXkg
YmUgdXNlZCBpbiBhIGNvbnRleHQgdGhhdCBvYnNlcnZlcyAtMC4KKyNkZWZpbmUgTm9kZUJ5dGVj
b2RlVXNlc0FzT3RoZXIgICAgICAgICAweDA0MDAwIC8vIFRoZSByZXN1bHQgb2YgdGhpcyBjb21w
dXRhdGlvbiBtYXkgYmUgdXNlZCBpbiBhIGNvbnRleHQgdGhhdCBkaXN0aW5ndWlzaGVzIGJldHdl
ZW4gTmFOIGFuZCBvdGhlciB0aGluZ3MgKGxpa2UgdW5kZWZpbmVkKS4KKyNkZWZpbmUgTm9kZUJ5
dGVjb2RlVXNlc0FzVmFsdWUgICAgICAgICAoTm9kZUJ5dGVjb2RlVXNlc0FzTnVtYmVyIHwgTm9k
ZUJ5dGVjb2RlTmVlZHNOZWdaZXJvIHwgTm9kZUJ5dGVjb2RlVXNlc0FzT3RoZXIpCisjZGVmaW5l
IE5vZGVCeXRlY29kZVVzZXNBc0ludCAgICAgICAgICAgMHgwODAwMCAvLyBUaGUgcmVzdWx0IG9m
IHRoaXMgY29tcHV0YXRpb24gaXMga25vd24gdG8gYmUgdXNlZCBpbiBhIGNvbnRleHQgdGhhdCBw
cmVmZXJzLCBidXQgZG9lcyBub3QgcmVxdWlyZSwgaW50ZWdlciB2YWx1ZXMuCisjZGVmaW5lIE5v
ZGVCeXRlY29kZVVzZXNBc0FycmF5SW5kZXggICAgMHgxMDAwMCAvLyBUaGUgcmVzdWx0IG9mIHRo
aXMgY29tcHV0YXRpb24gaXMga25vd24gdG8gYmUgdXNlZCBpbiBhIGNvbnRleHQgdGhhdCBzdHJv
bmdseSBwcmVmZXJzIGludGVnZXIgdmFsdWVzLCB0byB0aGUgcG9pbnQgdGhhdCB3ZSBzaG91bGQg
YXZvaWQgdXNpbmcgZG91YmxlcyBpZiBhdCBhbGwgcG9zc2libGUuCiAKICNkZWZpbmUgTm9kZUFy
aXRoRmxhZ3NNYXNrICAgICAgICAgICAgICAgKE5vZGVCZWhhdmlvck1hc2sgfCBOb2RlQnl0ZWNv
ZGVCYWNrUHJvcE1hc2spCiAKLSNkZWZpbmUgTm9kZUlzRmx1c2hlZCAgICAgICAgICAgICAgICAg
ICAweDEwMDAwIC8vIENvbXB1dGVkIGJ5IENQU1JldGhyZWFkaW5nUGhhc2UsIHdpbGwgdGVsbCB5
b3Ugd2hpY2ggbG9jYWwgbm9kZXMgYXJlIGJhY2t3YXJkcy1yZWFjaGFibGUgZnJvbSBhIEZsdXNo
LgorI2RlZmluZSBOb2RlSXNGbHVzaGVkICAgICAgICAgICAgICAgICAgIDB4MjAwMDAgLy8gQ29t
cHV0ZWQgYnkgQ1BTUmV0aHJlYWRpbmdQaGFzZSwgd2lsbCB0ZWxsIHlvdSB3aGljaCBsb2NhbCBu
b2RlcyBhcmUgYmFja3dhcmRzLXJlYWNoYWJsZSBmcm9tIGEgRmx1c2guCiAKLSNkZWZpbmUgTm9k
ZU1pc2NGbGFnMSAgICAgICAgICAgICAgICAgICAweDIwMDAwCi0jZGVmaW5lIE5vZGVNaXNjRmxh
ZzIgICAgICAgICAgICAgICAgICAgMHg0MDAwMAotI2RlZmluZSBOb2RlTWlzY0ZsYWczICAgICAg
ICAgICAgICAgICAgIDB4ODAwMDAKKyNkZWZpbmUgTm9kZU1pc2NGbGFnMSAgICAgICAgICAgICAg
ICAgICAweDQwMDAwCisjZGVmaW5lIE5vZGVNaXNjRmxhZzIgICAgICAgICAgICAgICAgICAgMHg4
MDAwMAogCiB0eXBlZGVmIHVpbnQzMl90IE5vZGVGbGFnczsKIApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXIzMl82NC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXIzMl82NC5jcHAJKHJl
dmlzaW9uIDIwMDU5MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENv
bXBpbGVyMzJfNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxMSwgMjAxMy0yMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMy0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTI4LDI4ICsx
MjgsMzAgQEAgdm9pZCBPU1JFeGl0Q29tcGlsZXI6OmNvbXBpbGVFeGl0KGNvbnN0IAogICAgICAg
ICAgICAgfQogICAgICAgICB9CiAgICAgICAgIAotICAgICAgICBpZiAoISFleGl0Lm1fdmFsdWVQ
cm9maWxlKSB7Ci0gICAgICAgICAgICBFbmNvZGVkSlNWYWx1ZSogYnVja2V0ID0gZXhpdC5tX3Zh
bHVlUHJvZmlsZS5nZXRTcGVjRmFpbEJ1Y2tldCgwKTsKLSAgICAgICAgCisgICAgICAgIGlmIChN
ZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlIHByb2ZpbGUgPSBleGl0Lm1fdmFsdWVQcm9maWxl
KSB7CiAgICAgICAgICAgICBpZiAoZXhpdC5tX2pzVmFsdWVTb3VyY2UuaXNBZGRyZXNzKCkpIHsK
ICAgICAgICAgICAgICAgICAvLyBTYXZlIGEgcmVnaXN0ZXIgc28gd2UgY2FuIHVzZSBpdC4KLSAg
ICAgICAgICAgICAgICBHUFJSZWcgc2NyYXRjaCA9IEFzc2VtYmx5SGVscGVyczo6c2VsZWN0U2Ny
YXRjaEdQUihleGl0Lm1fanNWYWx1ZVNvdXJjZS5iYXNlKCkpOwotICAgICAgICAgICAgICAgIAot
ICAgICAgICAgICAgICAgIG1faml0LnB1c2goc2NyYXRjaCk7CisgICAgICAgICAgICAgICAgR1BS
UmVnIHNjcmF0Y2hQYXlsb2FkID0gQXNzZW1ibHlIZWxwZXJzOjpzZWxlY3RTY3JhdGNoR1BSKGV4
aXQubV9qc1ZhbHVlU291cmNlLmJhc2UoKSk7CisgICAgICAgICAgICAgICAgR1BSUmVnIHNjcmF0
Y2hUYWcgPSBBc3NlbWJseUhlbHBlcnM6OnNlbGVjdFNjcmF0Y2hHUFIoZXhpdC5tX2pzVmFsdWVT
b3VyY2UuYmFzZSgpLCBzY3JhdGNoUGF5bG9hZCk7CisgICAgICAgICAgICAgICAgbV9qaXQucHVz
aFRvU2F2ZShzY3JhdGNoUGF5bG9hZCk7CisgICAgICAgICAgICAgICAgbV9qaXQucHVzaFRvU2F2
ZShzY3JhdGNoVGFnKTsKIAotICAgICAgICAgICAgICAgIG1faml0LmxvYWQzMihleGl0Lm1fanNW
YWx1ZVNvdXJjZS5hc0FkZHJlc3MoT0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0
b3IsIGFzQml0cy50YWcpKSwgc2NyYXRjaCk7Ci0gICAgICAgICAgICAgICAgbV9qaXQuc3RvcmUz
MihzY3JhdGNoLCAmYml0d2lzZV9jYXN0PEVuY29kZWRWYWx1ZURlc2NyaXB0b3IqPihidWNrZXQp
LT5hc0JpdHMudGFnKTsKLSAgICAgICAgICAgICAgICBtX2ppdC5sb2FkMzIoZXhpdC5tX2pzVmFs
dWVTb3VyY2UuYXNBZGRyZXNzKE9CSkVDVF9PRkZTRVRPRihFbmNvZGVkVmFsdWVEZXNjcmlwdG9y
LCBhc0JpdHMucGF5bG9hZCkpLCBzY3JhdGNoKTsKLSAgICAgICAgICAgICAgICBtX2ppdC5zdG9y
ZTMyKHNjcmF0Y2gsICZiaXR3aXNlX2Nhc3Q8RW5jb2RlZFZhbHVlRGVzY3JpcHRvcio+KGJ1Y2tl
dCktPmFzQml0cy5wYXlsb2FkKTsKKyAgICAgICAgICAgICAgICBKU1ZhbHVlUmVncyBzY3JhdGNo
KHNjcmF0Y2hUYWcsIHNjcmF0Y2hQYXlsb2FkKTsKICAgICAgICAgICAgICAgICAKLSAgICAgICAg
ICAgICAgICBtX2ppdC5wb3Aoc2NyYXRjaCk7CisgICAgICAgICAgICAgICAgbV9qaXQubG9hZFZh
bHVlKGV4aXQubV9qc1ZhbHVlU291cmNlLmFzQWRkcmVzcygpLCBzY3JhdGNoKTsKKyAgICAgICAg
ICAgICAgICBwcm9maWxlLmVtaXRSZXBvcnRWYWx1ZShtX2ppdCwgc2NyYXRjaCk7CisgICAgICAg
ICAgICAgICAgCisgICAgICAgICAgICAgICAgbV9qaXQucG9wVG9SZXN0b3JlKHNjcmF0Y2hUYWcp
OworICAgICAgICAgICAgICAgIG1faml0LnBvcFRvUmVzdG9yZShzY3JhdGNoUGF5bG9hZCk7CiAg
ICAgICAgICAgICB9IGVsc2UgaWYgKGV4aXQubV9qc1ZhbHVlU291cmNlLmhhc0tub3duVGFnKCkp
IHsKLSAgICAgICAgICAgICAgICBtX2ppdC5zdG9yZTMyKEFzc2VtYmx5SGVscGVyczo6VHJ1c3Rl
ZEltbTMyKGV4aXQubV9qc1ZhbHVlU291cmNlLnRhZygpKSwgJmJpdHdpc2VfY2FzdDxFbmNvZGVk
VmFsdWVEZXNjcmlwdG9yKj4oYnVja2V0KS0+YXNCaXRzLnRhZyk7Ci0gICAgICAgICAgICAgICAg
bV9qaXQuc3RvcmUzMihleGl0Lm1fanNWYWx1ZVNvdXJjZS5wYXlsb2FkR1BSKCksICZiaXR3aXNl
X2Nhc3Q8RW5jb2RlZFZhbHVlRGVzY3JpcHRvcio+KGJ1Y2tldCktPmFzQml0cy5wYXlsb2FkKTsK
LSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgbV9qaXQuc3RvcmUzMihleGl0
Lm1fanNWYWx1ZVNvdXJjZS50YWdHUFIoKSwgJmJpdHdpc2VfY2FzdDxFbmNvZGVkVmFsdWVEZXNj
cmlwdG9yKj4oYnVja2V0KS0+YXNCaXRzLnRhZyk7Ci0gICAgICAgICAgICAgICAgbV9qaXQuc3Rv
cmUzMihleGl0Lm1fanNWYWx1ZVNvdXJjZS5wYXlsb2FkR1BSKCksICZiaXR3aXNlX2Nhc3Q8RW5j
b2RlZFZhbHVlRGVzY3JpcHRvcio+KGJ1Y2tldCktPmFzQml0cy5wYXlsb2FkKTsKLSAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICBHUFJSZWcgc2NyYXRjaFRhZyA9IEFzc2VtYmx5SGVscGVy
czo6c2VsZWN0U2NyYXRjaEdQUihleGl0Lm1fanNWYWx1ZVNvdXJjZS5wYXlsb2FkR1BSKCkpOwor
ICAgICAgICAgICAgICAgIG1faml0LnB1c2hUb1NhdmUoc2NyYXRjaFRhZyk7CisgICAgICAgICAg
ICAgICAgbV9qaXQubW92ZShBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMihleGl0Lm1fanNW
YWx1ZVNvdXJjZS50YWcoKSksIHNjcmF0Y2hUYWcpOworICAgICAgICAgICAgICAgIEpTVmFsdWVS
ZWdzIHZhbHVlKHNjcmF0Y2hUYWcsIGV4aXQubV9qc1ZhbHVlU291cmNlLnBheWxvYWRHUFIoKSk7
CisgICAgICAgICAgICAgICAgcHJvZmlsZS5lbWl0UmVwb3J0VmFsdWUobV9qaXQsIHZhbHVlKTsK
KyAgICAgICAgICAgICAgICBtX2ppdC5wb3BUb1Jlc3RvcmUoc2NyYXRjaFRhZyk7CisgICAgICAg
ICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBwcm9maWxlLmVtaXRSZXBvcnRWYWx1ZShtX2pp
dCwgZXhpdC5tX2pzVmFsdWVTb3VyY2UucmVncygpKTsKICAgICAgICAgfQogICAgIH0KICAgICAK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyNjQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBp
bGVyNjQuY3BwCShyZXZpc2lvbiAyMDA1OTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR09TUkV4aXRDb21waWxlcjY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTMtMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTMtMjAxNiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTEzNCwxNyArMTM0LDE1IEBAIHZvaWQgT1NSRXhpdENvbXBpbGVyOjpjb21waWxlRXhpdChjb25z
dCAKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICAKLSAgICAgICAgaWYgKCEhZXhp
dC5tX3ZhbHVlUHJvZmlsZSkgewotICAgICAgICAgICAgRW5jb2RlZEpTVmFsdWUqIGJ1Y2tldCA9
IGV4aXQubV92YWx1ZVByb2ZpbGUuZ2V0U3BlY0ZhaWxCdWNrZXQoMCk7Ci0gICAgICAgICAgICAK
KyAgICAgICAgaWYgKE1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUgcHJvZmlsZSA9IGV4aXQu
bV92YWx1ZVByb2ZpbGUpIHsKICAgICAgICAgICAgIGlmIChleGl0Lm1fanNWYWx1ZVNvdXJjZS5p
c0FkZHJlc3MoKSkgewogICAgICAgICAgICAgICAgIC8vIFdlIGNhbid0IGJlIHN1cmUgdGhhdCB3
ZSBoYXZlIGEgc3BhcmUgcmVnaXN0ZXIuIFNvIHVzZSB0aGUgdGFnVHlwZU51bWJlclJlZ2lzdGVy
LAogICAgICAgICAgICAgICAgIC8vIHNpbmNlIHdlIGtub3cgaG93IHRvIHJlc3RvcmUgaXQuCiAg
ICAgICAgICAgICAgICAgbV9qaXQubG9hZDY0KEFzc2VtYmx5SGVscGVyczo6QWRkcmVzcyhleGl0
Lm1fanNWYWx1ZVNvdXJjZS5hc0FkZHJlc3MoKSksIEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdp
c3Rlcik7Ci0gICAgICAgICAgICAgICAgbV9qaXQuc3RvcmU2NChHUFJJbmZvOjp0YWdUeXBlTnVt
YmVyUmVnaXN0ZXIsIGJ1Y2tldCk7CisgICAgICAgICAgICAgICAgcHJvZmlsZS5lbWl0UmVwb3J0
VmFsdWUobV9qaXQsIEpTVmFsdWVSZWdzKEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3Rlcikp
OwogICAgICAgICAgICAgICAgIG1faml0Lm1vdmUoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1t
NjQoVGFnVHlwZU51bWJlciksIEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3Rlcik7CiAgICAg
ICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICBtX2ppdC5zdG9yZTY0KGV4aXQubV9qc1Zh
bHVlU291cmNlLmdwcigpLCBidWNrZXQpOworICAgICAgICAgICAgICAgIHByb2ZpbGUuZW1pdFJl
cG9ydFZhbHVlKG1faml0LCBKU1ZhbHVlUmVncyhleGl0Lm1fanNWYWx1ZVNvdXJjZS5ncHIoKSkp
OwogICAgICAgICB9CiAgICAgfQogICAgIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdPcGVyYXRpb25zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR09wZXJhdGlvbnMuY3BwCShyZXZpc2lvbiAyMDA1OTApCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNzgsMTcg
KzI3OCw2IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmEKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHN0YXRpY19jYXN0PGludDMyX3Q+KGEgPj4g
KGIgJiAweDFmKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRp
b25WYWx1ZUFkZChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpCi17Ci0gICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7Ci0g
ICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgZXhlYyk7Ci0gICAgCi0gICAgSlNW
YWx1ZSBvcDEgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMSk7Ci0gICAgSlNWYWx1ZSBvcDIg
PSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMik7Ci0gICAgCi0gICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc0FkZChleGVjLCBvcDEsIG9wMikpOwotfQotCiBFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQWRkTm90TnVtYmVyKEV4ZWNTdGF0ZSogZXhlYywgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikKIHsKICAg
ICBWTSogdm0gPSAmZXhlYy0+dm0oKTsKQEAgLTMxOCwzMiArMzA3LDYgQEAgRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNOdW1iZXIoYSAvIGIpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVy
YXRpb25WYWx1ZU11bChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpCi17Ci0gICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7
Ci0gICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgZXhlYyk7Ci0KLSAgICBKU1Zh
bHVlIG9wMSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AxKTsKLSAgICBKU1ZhbHVlIG9wMiA9
IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AyKTsKLQotICAgIGRvdWJsZSBhID0gb3AxLnRvTnVt
YmVyKGV4ZWMpOwotICAgIGRvdWJsZSBiID0gb3AyLnRvTnVtYmVyKGV4ZWMpOwotICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoYSAqIGIpKTsKLX0KLQotRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZVN1YihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpCi17Ci0gICAgVk0q
IHZtID0gJmV4ZWMtPnZtKCk7Ci0gICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwg
ZXhlYyk7Ci0gICAgCi0gICAgSlNWYWx1ZSBvcDEgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9w
MSk7Ci0gICAgSlNWYWx1ZSBvcDIgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMik7Ci0KLSAg
ICBkb3VibGUgYSA9IG9wMS50b051bWJlcihleGVjKTsKLSAgICBkb3VibGUgYiA9IG9wMi50b051
bWJlcihleGVjKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGEgLSBiKSk7
Ci19Ci0KIHN0YXRpYyBBTFdBWVNfSU5MSU5FIEVuY29kZWRKU1ZhbHVlIGdldEJ5VmFsKEV4ZWNT
dGF0ZSogZXhlYywgSlNDZWxsKiBiYXNlLCB1aW50MzJfdCBpbmRleCkKIHsKICAgICBWTSYgdm0g
PSBleGVjLT52bSgpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRp
b25zLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRp
b25zLmgJKHJldmlzaW9uIDIwMDU5MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
T3BlcmF0aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBAIC01MSwxMSArNTEsOCBAQCBFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhCiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvblZhbHVlQml0TFNoaWZ0KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpIFdURl9JTlRFUk5BTDsKIEVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVCaXRSU2hpZnQoRXhlY1N0YXRl
KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikg
V1RGX0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1
ZUJpdFVSU2hpZnQoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZE9wMikgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25WYWx1ZUFkZChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSBXVEZfSU5URVJOQUw7CiBFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQWRkTm90TnVtYmVyKEV4ZWNTdGF0
ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIp
IFdURl9JTlRFUk5BTDsKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFs
dWVEaXYoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZE9wMikgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBvcGVyYXRpb25WYWx1ZU11bChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3Ax
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlU3ViKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpIFdURl9JTlRFUk5BTDsK
IEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlWYWwoRXhlY1N0YXRl
KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRQcm9w
ZXJ0eSkgV1RGX0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRp
b25HZXRCeVZhbENlbGwoRXhlY1N0YXRlKiwgSlNDZWxsKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFByb3BlcnR5KSBXVEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvbkdldEJ5VmFsQXJyYXlJbnQoRXhlY1N0YXRlKiwgSlNBcnJheSosIGludDMyX3QpIFdU
Rl9JTlRFUk5BTDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlv
blByb3BhZ2F0aW9uUGhhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCShyZXZpc2lvbiAyMDA1OTAp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBo
YXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTkxLDEzICsxOTEsMTYgQEAgcHJpdmF0ZToKICAg
ICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKFNwZWNJbnQ1
Mk9ubHkpOwogICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAg
ICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihzcGVjdWxhdGVkRG91YmxlVHlwZUZvclByZWRp
Y3Rpb25zKGxlZnQsIHJpZ2h0KSk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIGlmICgKLSAgICAg
ICAgICAgICAgICAgICAgIShsZWZ0ICYgKFNwZWNGdWxsTnVtYmVyIHwgU3BlY0Jvb2xlYW4pKQot
ICAgICAgICAgICAgICAgICAgICB8fCAhKHJpZ2h0ICYgKFNwZWNGdWxsTnVtYmVyIHwgU3BlY0Jv
b2xlYW4pKSkgeworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNTdHJpbmdPclN0cmluZ09i
amVjdFNwZWN1bGF0aW9uKGxlZnQpICYmIGlzU3RyaW5nT3JTdHJpbmdPYmplY3RTcGVjdWxhdGlv
bihyaWdodCkpIHsKICAgICAgICAgICAgICAgICAgICAgLy8gbGVmdCBvciByaWdodCBpcyBkZWZp
bml0ZWx5IHNvbWV0aGluZyBvdGhlciB0aGFuIGEgbnVtYmVyLgogICAgICAgICAgICAgICAgICAg
ICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjU3RyaW5nKTsKLSAgICAgICAgICAgICAg
ICB9IGVsc2UKLSAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24o
U3BlY1N0cmluZyB8IFNwZWNJbnQzMk9ubHkgfCBTcGVjQnl0ZWNvZGVEb3VibGUpOworICAgICAg
ICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQ
cmVkaWN0aW9uKFNwZWNJbnQzMk9ubHkpOworICAgICAgICAgICAgICAgICAgICBpZiAobm9kZS0+
bWF5SGF2ZURvdWJsZVJlc3VsdCgpKQorICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8
PSBtZXJnZVByZWRpY3Rpb24oU3BlY0J5dGVjb2RlRG91YmxlKTsKKyAgICAgICAgICAgICAgICAg
ICAgaWYgKG5vZGUtPm1heUhhdmVOb25OdW1iZXJSZXN1bHQoKSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKFNwZWNTdHJpbmcpOworICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBA
IC0yMTEsOCArMjE0LDEyIEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQg
fD0gbWVyZ2VQcmVkaWN0aW9uKFNwZWNJbnQzMk9ubHkpOwogICAgICAgICAgICAgICAgIGVsc2Ug
aWYgKG1fZ3JhcGguYWRkU2hvdWxkU3BlY3VsYXRlQW55SW50KG5vZGUpKQogICAgICAgICAgICAg
ICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjSW50NTJPbmx5KTsKLSAgICAg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgZWxzZSBpZiAoaXNGdWxsTnVtYmVyT3JC
b29sZWFuU3BlY3VsYXRpb24obGVmdCkgJiYgaXNGdWxsTnVtYmVyT3JCb29sZWFuU3BlY3VsYXRp
b24ocmlnaHQpKQogICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlv
bihzcGVjdWxhdGVkRG91YmxlVHlwZUZvclByZWRpY3Rpb25zKGxlZnQsIHJpZ2h0KSk7CisgICAg
ICAgICAgICAgICAgZWxzZSBpZiAobm9kZS0+bWF5SGF2ZU5vbkludFJlc3VsdCgpIHx8IChsZWZ0
ICYgU3BlY0J5dGVjb2RlRG91YmxlKSB8fCAocmlnaHQgJiBTcGVjQnl0ZWNvZGVEb3VibGUpKQor
ICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjSW50MzJP
bmx5IHwgU3BlY0J5dGVjb2RlRG91YmxlKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKFNwZWNJbnQzMk9ubHkpOwog
ICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTIzMCw4ICsy
MzcsMTAgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVy
Z2VQcmVkaWN0aW9uKFNwZWNJbnQ1Mk9ubHkpOwogICAgICAgICAgICAgICAgICAgICBlbHNlCiAg
ICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihzcGVjdWxh
dGVkRG91YmxlVHlwZUZvclByZWRpY3Rpb25zKGxlZnQsIHJpZ2h0KSk7Ci0gICAgICAgICAgICAg
ICAgfSBlbHNlCisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChub2RlLT5tYXlIYXZlTm9uSW50
UmVzdWx0KCkgfHwgKGxlZnQgJiBTcGVjQnl0ZWNvZGVEb3VibGUpIHx8IChyaWdodCAmIFNwZWNC
eXRlY29kZURvdWJsZSkpCiAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVk
aWN0aW9uKFNwZWNJbnQzMk9ubHkgfCBTcGVjQnl0ZWNvZGVEb3VibGUpOworICAgICAgICAgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24o
U3BlY0ludDMyT25seSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQpAQCAtMjY3LDYgKzI3NiwxMCBAQCBwcml2YXRlOgogICAgICAgICAgICAgU3BlY3VsYXRl
ZFR5cGUgcmlnaHQgPSBub2RlLT5jaGlsZDIoKS0+cHJlZGljdGlvbigpOwogICAgICAgICAgICAg
CiAgICAgICAgICAgICBpZiAobGVmdCAmJiByaWdodCkgeworICAgICAgICAgICAgICAgIC8vIEZJ
WE1FOiBXZSdyZSBjdXJyZW50bHkgcmVseWluZyBvbiBwcmVkaWN0aW9uIHByb3BhZ2F0aW9uIGFu
ZCBiYWNrd2FyZHMgcHJvcGFnYXRpb24KKyAgICAgICAgICAgICAgICAvLyB3aGVuZXZlciB3ZSBj
YW4sIGFuZCBvbmx5IGZhbGxpbmcgYmFjayBvbiByZXN1bHQgZmxhZ3MgaWYgdGhhdCBmYWlscy4g
QW5kIHRoZSByZXN1bHQKKyAgICAgICAgICAgICAgICAvLyBmbGFncyBsb2dpYyBkb2Vzbid0IGtu
b3cgaG93IHRvIHVzZSBiYWNrd2FyZHMgcHJvcGFnYXRpb24uIFdlIHNob3VsZCBnZXQgcmlkIG9m
IHRoZQorICAgICAgICAgICAgICAgIC8vIHByZWRpY3Rpb24gcHJvcGFnYXRpb24gbG9naWMgYW5k
IHJlbHkgc29sZWx5IG9uIHRoZSByZXN1bHQgdHlwZS4KICAgICAgICAgICAgICAgICBpZiAoaXNG
dWxsTnVtYmVyT3JCb29sZWFuU3BlY3VsYXRpb25FeHBlY3RpbmdEZWZpbmVkKGxlZnQpCiAgICAg
ICAgICAgICAgICAgICAgICYmIGlzRnVsbE51bWJlck9yQm9vbGVhblNwZWN1bGF0aW9uRXhwZWN0
aW5nRGVmaW5lZChyaWdodCkpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKG1fZ3JhcGguYmlu
YXJ5QXJpdGhTaG91bGRTcGVjdWxhdGVJbnQzMihub2RlLCBtX3Bhc3MpKQpAQCAtMjc1LDggKzI4
OCwxNCBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJn
ZVByZWRpY3Rpb24oU3BlY0ludDUyT25seSk7CiAgICAgICAgICAgICAgICAgICAgIGVsc2UKICAg
ICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKHNwZWN1bGF0
ZWREb3VibGVUeXBlRm9yUHJlZGljdGlvbnMobGVmdCwgcmlnaHQpKTsKLSAgICAgICAgICAgICAg
ICB9IGVsc2UKLSAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24o
U3BlY0ludDMyT25seSB8IFNwZWNCeXRlY29kZURvdWJsZSk7CisgICAgICAgICAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG5vZGUtPm1heUhhdmVOb25JbnRSZXN1bHQo
KQorICAgICAgICAgICAgICAgICAgICAgICAgfHwgKGxlZnQgJiBTcGVjQnl0ZWNvZGVEb3VibGUp
CisgICAgICAgICAgICAgICAgICAgICAgICB8fCAocmlnaHQgJiBTcGVjQnl0ZWNvZGVEb3VibGUp
KQorICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3Bl
Y0ludDMyT25seSB8IFNwZWNCeXRlY29kZURvdWJsZSk7CisgICAgICAgICAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKFNw
ZWNJbnQzMk9ubHkpOworICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklULmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVC5oCShyZXZpc2lvbiAyMDA1OTApCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgJKHdvcmtpbmcgY29weSkKQEAgLTE2ODcs
MjMgKzE2ODcsNiBAQCBwdWJsaWM6CiAgICAgfQogI2Vsc2UgLy8gVVNFKEpTVkFMVUUzMl82NCkK
IAotLy8gRW5jb2RlZEpTVmFsdWUgaW4gSlNWQUxVRTMyXzY0IGlzIGEgNjQtYml0IGludGVnZXIu
IFdoZW4gYmVpbmcgY29tcGlsZWQgaW4gQVJNIEVBQkksIGl0IG11c3QgYmUgYWxpZ25lZCBvbiBh
biBldmVuLW51bWJlcmVkIHJlZ2lzdGVyIChyMCwgcjIgb3IgW3NwXSkuCi0vLyBUbyBwcmV2ZW50
IHRoZSBhc3NlbWJsZXIgZnJvbSB1c2luZyB3cm9uZyByZWdpc3RlcnMsIGxldCdzIG9jY3VweSBy
MSBvciByMyB3aXRoIGEgZHVtbXkgYXJndW1lbnQgd2hlbiBuZWNlc3NhcnkuCi0jaWYgKENPTVBJ
TEVSX1NVUFBPUlRTKEVBQkkpICYmIENQVShBUk0pKSB8fCBDUFUoTUlQUykKLSNkZWZpbmUgRUFC
SV8zMkJJVF9EVU1NWV9BUkcgICAgICBUcnVzdGVkSW1tMzIoMCksCi0jZWxzZQotI2RlZmluZSBF
QUJJXzMyQklUX0RVTU1ZX0FSRwotI2VuZGlmCi0KLS8vIEpTVkFMVUUzMl82NCBpcyBhIDY0LWJp
dCBpbnRlZ2VyIHRoYXQgY2Fubm90IGJlIHB1dCBoYWxmIGluIGFuIGFyZ3VtZW50IHJlZ2lzdGVy
IGFuZCBoYWxmIG9uIHN0YWNrIHdoZW4gdXNpbmcgU0g0IGFyY2hpdGVjdHVyZS4KLS8vIFRvIGF2
b2lkIHRoaXMsIGxldCdzIG9jY3VweSB0aGUgNHRoIGFyZ3VtZW50IHJlZ2lzdGVyIChyNykgd2l0
aCBhIGR1bW15IGFyZ3VtZW50IHdoZW4gbmVjZXNzYXJ5LiBUaGlzIG11c3Qgb25seSBiZSBkb25l
IHdoZW4gdGhlcmUKLS8vIGlzIG5vIG90aGVyIDMyLWJpdCB2YWx1ZSBhcmd1bWVudCBiZWhpbmQg
dGhpcyA2NC1iaXQgSlNWYWx1ZS4KLSNpZiBDUFUoU0g0KQotI2RlZmluZSBTSDRfMzJCSVRfRFVN
TVlfQVJHICAgICAgVHJ1c3RlZEltbTMyKDApLAotI2Vsc2UKLSNkZWZpbmUgU0g0XzMyQklUX0RV
TU1ZX0FSRwotI2VuZGlmCi0KICAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpf
SklUT3BlcmF0aW9uX0VKSkkgb3BlcmF0aW9uLCBHUFJSZWcgcmVzdWx0VGFnLCBHUFJSZWcgcmVz
dWx0UGF5bG9hZCwgR1BSUmVnIGFyZzFUYWcsIEdQUlJlZyBhcmcxUGF5bG9hZCwgR1BSUmVnIGFy
ZzJUYWcsIEdQUlJlZyBhcmcyUGF5bG9hZCwgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCkKICAgICB7
CiAgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShFQUJJXzMyQklUX0RV
TU1ZX0FSRyBhcmcxUGF5bG9hZCwgYXJnMVRhZywgYXJnMlBheWxvYWQsIGFyZzJUYWcsIFRydXN0
ZWRJbW1QdHIodWlkKSk7CkBAIC0yMTQ0LDggKzIxMjcsNiBAQCBwdWJsaWM6CiAgICAgICAgIG1f
aml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLCBUcnVzdGVkSW1tUHRyKGlkZW50
T3AyKSwgVHJ1c3RlZEltbTMyKG9wMyksIGFyZzQsIGFyZzUpOwogICAgICAgICByZXR1cm4gYXBw
ZW5kQ2FsbChvcGVyYXRpb24pOwogICAgIH0KLSN1bmRlZiBFQUJJXzMyQklUX0RVTU1ZX0FSRwot
I3VuZGVmIFNINF8zMkJJVF9EVU1NWV9BUkcKICAgICAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBG
dW5jdGlvblR5cGU+CiAgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbigKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhpdENvbXBpbGVyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4aXRDb21waWxlci5jcHAJ
KHJldmlzaW9uIDIwMDU5MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhp
dENvbXBpbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTMtMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTMtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4NCw4ICsyODQsOCBAQCBzdGF0aWMg
dm9pZCBjb21waWxlU3R1YigKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCi0gICAgICAgIGlm
ICghIWV4aXQubV9kZXNjcmlwdG9yLT5tX3ZhbHVlUHJvZmlsZSkKLSAgICAgICAgICAgIGppdC5z
dG9yZTY0KEdQUkluZm86OnJlZ1QwLCBleGl0Lm1fZGVzY3JpcHRvci0+bV92YWx1ZVByb2ZpbGUu
Z2V0U3BlY0ZhaWxCdWNrZXQoMCkpOworICAgICAgICBpZiAoZXhpdC5tX2Rlc2NyaXB0b3ItPm1f
dmFsdWVQcm9maWxlKQorICAgICAgICAgICAgZXhpdC5tX2Rlc2NyaXB0b3ItPm1fdmFsdWVQcm9m
aWxlLmVtaXRSZXBvcnRWYWx1ZShqaXQsIEpTVmFsdWVSZWdzKEdQUkluZm86OnJlZ1QwKSk7CiAg
ICAgfQogCiAgICAgLy8gTWF0ZXJpYWxpemUgYWxsIG9iamVjdHMuIERvbid0IG1hdGVyaWFsaXpl
IGFuIG9iamVjdCB1bnRpbCBhbGwKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNz
ZW1ibHlIZWxwZXJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9B
c3NlbWJseUhlbHBlcnMuaAkocmV2aXNpb24gMjAwNTkwKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaAkod29ya2luZyBjb3B5KQpAQCAtNjUzLDExICs2NTMs
NiBAQCBwdWJsaWM6CiAjZW5kaWYKICAgICB9CiAKLSAgICBlbnVtIFRhZ1JlZ2lzdGVyc01vZGUg
ewotICAgICAgICBEb05vdEhhdmVUYWdSZWdpc3RlcnMsCi0gICAgICAgIEhhdmVUYWdSZWdpc3Rl
cnMKLSAgICB9OwotCiAgICAgSnVtcCBicmFuY2hJZk5vdENlbGwoR1BSUmVnIHJlZywgVGFnUmVn
aXN0ZXJzTW9kZSBtb2RlID0gSGF2ZVRhZ1JlZ2lzdGVycykKICAgICB7CiAjaWYgVVNFKEpTVkFM
VUU2NCkKQEAgLTc4Myw2ICs3NzgsMTggQEAgcHVibGljOgogI2VuZGlmCiAgICAgfQogCisgICAg
SnVtcCBicmFuY2hJZk5vdERvdWJsZUtub3duTm90SW50MzIoSlNWYWx1ZVJlZ3MgcmVncywgVGFn
UmVnaXN0ZXJzTW9kZSBtb2RlID0gSGF2ZVRhZ1JlZ2lzdGVycykKKyAgICB7CisjaWYgVVNFKEpT
VkFMVUU2NCkKKyAgICAgICAgaWYgKG1vZGUgPT0gSGF2ZVRhZ1JlZ2lzdGVycykKKyAgICAgICAg
ICAgIHJldHVybiBicmFuY2hUZXN0NjQoWmVybywgcmVncy5ncHIoKSwgR1BSSW5mbzo6dGFnVHlw
ZU51bWJlclJlZ2lzdGVyKTsKKyAgICAgICAgcmV0dXJuIGJyYW5jaFRlc3Q2NChaZXJvLCByZWdz
LmdwcigpLCBUcnVzdGVkSW1tNjQoVGFnVHlwZU51bWJlcikpOworI2Vsc2UKKyAgICAgICAgVU5V
U0VEX1BBUkFNKG1vZGUpOworICAgICAgICByZXR1cm4gYnJhbmNoMzIoQWJvdmVPckVxdWFsLCBy
ZWdzLnRhZ0dQUigpLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6TG93ZXN0VGFnKSk7CisjZW5kaWYK
KyAgICB9CisKICAgICAvLyBOb3RlIHRoYXQgdGhlIHRlbXBHUFIgaXMgbm90IHVzZWQgaW4gMzIt
Yml0IG1vZGUuCiAgICAgSnVtcCBicmFuY2hJZkJvb2xlYW4oSlNWYWx1ZVJlZ3MgcmVncywgR1BS
UmVnIHRlbXBHUFIpCiAgICAgewpAQCAtODQ4LDcgKzg1NSw4IEBAIHB1YmxpYzoKICAgICB9CiAK
ICAgICBKdW1wTGlzdCBicmFuY2hJZk5vdFR5cGUoCi0gICAgICAgIEpTVmFsdWVSZWdzLCBHUFJS
ZWcgdGVtcEdQUiwgY29uc3QgSW5mZXJyZWRUeXBlOjpEZXNjcmlwdG9yJiwgVGFnUmVnaXN0ZXJz
TW9kZSk7CisgICAgICAgIEpTVmFsdWVSZWdzLCBHUFJSZWcgdGVtcEdQUiwgY29uc3QgSW5mZXJy
ZWRUeXBlOjpEZXNjcmlwdG9yJiwKKyAgICAgICAgVGFnUmVnaXN0ZXJzTW9kZSA9IEhhdmVUYWdS
ZWdpc3RlcnMpOwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KICAgICBKdW1wIGJyYW5jaFN0
cnVjdHVyZShSZWxhdGlvbmFsQ29uZGl0aW9uIGNvbmRpdGlvbiwgVCBsZWZ0SGFuZFNpZGUsIFN0
cnVjdHVyZSogc3RydWN0dXJlKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9DQ2Fs
bEhlbHBlcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxs
SGVscGVycy5oCShyZXZpc2lvbiAyMDA1OTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0NDYWxsSGVscGVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC00MSw2ICs0MSwyMyBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICNkZWZpbmUgUE9LRV9BUkdVTUVOVF9PRkZTRVQgMAogI2VuZGlmCiAKKy8vIEVu
Y29kZWRKU1ZhbHVlIGluIEpTVkFMVUUzMl82NCBpcyBhIDY0LWJpdCBpbnRlZ2VyLiBXaGVuIGJl
aW5nIGNvbXBpbGVkIGluIEFSTSBFQUJJLCBpdCBtdXN0IGJlIGFsaWduZWQgZXZlbi1udW1iZXJl
ZCByZWdpc3RlciAocjAsIHIyIG9yIFtzcF0pLgorLy8gVG8gYXZvaWQgYXNzZW1ibGllcyBmcm9t
IHVzaW5nIHdyb25nIHJlZ2lzdGVycywgbGV0J3Mgb2NjdXB5IHIxIG9yIHIzIHdpdGggYSBkdW1t
eSBhcmd1bWVudCB3aGVuIG5lY2Vzc2FyeS4KKyNpZiAoQ09NUElMRVJfU1VQUE9SVFMoRUFCSSkg
JiYgQ1BVKEFSTSkpIHx8IENQVShNSVBTKQorI2RlZmluZSBFQUJJXzMyQklUX0RVTU1ZX0FSRyAg
ICAgIFRydXN0ZWRJbW0zMigwKSwKKyNlbHNlCisjZGVmaW5lIEVBQklfMzJCSVRfRFVNTVlfQVJH
CisjZW5kaWYKKworLy8gSlNWQUxVRTMyXzY0IGlzIGEgNjQtYml0IGludGVnZXIgdGhhdCBjYW5u
b3QgYmUgcHV0IGhhbGYgaW4gYW4gYXJndW1lbnQgcmVnaXN0ZXIgYW5kIGhhbGYgb24gc3RhY2sg
d2hlbiB1c2luZyBTSDQgYXJjaGl0ZWN0dXJlLgorLy8gVG8gYXZvaWQgdGhpcywgbGV0J3Mgb2Nj
dXB5IHRoZSA0dGggYXJndW1lbnQgcmVnaXN0ZXIgKHI3KSB3aXRoIGEgZHVtbXkgYXJndW1lbnQg
d2hlbiBuZWNlc3NhcnkuIFRoaXMgbXVzdCBvbmx5IGJlIGRvbmUgd2hlbiB0aGVyZQorLy8gaXMg
bm8gb3RoZXIgMzItYml0IHZhbHVlIGFyZ3VtZW50IGJlaGluZCB0aGlzIDY0LWJpdCBKU1ZhbHVl
LgorI2lmIENQVShTSDQpCisjZGVmaW5lIFNINF8zMkJJVF9EVU1NWV9BUkcgICAgICBUcnVzdGVk
SW1tMzIoMCksCisjZWxzZQorI2RlZmluZSBTSDRfMzJCSVRfRFVNTVlfQVJHCisjZW5kaWYKKwog
Y2xhc3MgQ0NhbGxIZWxwZXJzIDogcHVibGljIEFzc2VtYmx5SGVscGVycyB7CiBwdWJsaWM6CiAg
ICAgQ0NhbGxIZWxwZXJzKFZNKiB2bSwgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSAwKQpAQCAtMjE2
Nyw2ICsyMTg0LDE1IEBAIHB1YmxpYzoKICAgICB9CiAjZW5kaWYKICAgICAKKyAgICB2b2lkIHNl
dHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShKU1ZhbHVlUmVncyBhcmcxLCBKU1ZhbHVlUmVncyBh
cmcyLCBUcnVzdGVkSW1tUHRyIGFyZzMpCisgICAgeworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAg
ICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLmdwcigpLCBhcmcyLmdwcigpLCBh
cmczKTsKKyNlbHNlCisgICAgICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShFQUJJXzMy
QklUX0RVTU1ZX0FSRyBhcmcxLnBheWxvYWRHUFIoKSwgYXJnMS50YWdHUFIoKSwgYXJnMi5wYXls
b2FkR1BSKCksIGFyZzIudGFnR1BSKCksIGFyZzMpOworI2VuZGlmCisgICAgfQorICAgIAogICAg
IHZvaWQgc2V0dXBBcmd1bWVudHMoSlNWYWx1ZVJlZ3MgYXJnMSkKICAgICB7CiAjaWYgVVNFKEpT
VkFMVUU2NCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvR1BSSW5mby5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvR1BSSW5mby5oCShyZXZpc2lvbiAy
MDA1OTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0dQUkluZm8uaAkod29ya2luZyBj
b3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTMtMjAx
NSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEs
IDIwMTMtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTEzOSw2ICsxMzksMTEgQEAgcHVibGljOgogICAgICAgICBy
ZXR1cm4gbV9iYXNlOwogICAgIH0KICAgICAKKyAgICBKU1ZhbHVlUmVncyByZWdzKCkgY29uc3QK
KyAgICB7CisgICAgICAgIHJldHVybiBKU1ZhbHVlUmVncyhncHIoKSk7CisgICAgfQorICAgIAog
ICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzIGFzQWRkcmVzcygpIGNvbnN0IHsgcmV0dXJuIE1h
Y3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2UoKSwgb2Zmc2V0KCkpOyB9CiAgICAgCiBwcml2YXRl
OgpAQCAtMzA2LDYgKzMxMSwxMSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxpbnQzMl90PihtX3RhZ1R5cGUpOwogICAgIH0KICAgICAKKyAgICBKU1ZhbHVlUmVncyByZWdz
KCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBKU1ZhbHVlUmVncyh0YWdHUFIoKSwgcGF5
bG9hZEdQUigpKTsKKyAgICB9CisgICAgCiAgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MgYXNB
ZGRyZXNzKHVuc2lnbmVkIGFkZGl0aW9uYWxPZmZzZXQgPSAwKSBjb25zdCB7IHJldHVybiBNYWNy
b0Fzc2VtYmxlcjo6QWRkcmVzcyhiYXNlKCksIG9mZnNldCgpICsgYWRkaXRpb25hbE9mZnNldCk7
IH0KICAgICAKIHByaXZhdGU6CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0ludHJp
bnNpY0VtaXR0ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SW50cmluc2ljRW1pdHRlci5jcHAJKHJldmlzaW9uIDIwMDU5MCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSW50cmluc2ljRW1pdHRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNzgsNyArNzgs
NyBAQCB2b2lkIEFjY2Vzc0Nhc2U6OmVtaXRJbnRyaW5zaWNHZXR0ZXIoQWNjCiAgICAgc3dpdGNo
IChpbnRyaW5zaWMoKSkgewogICAgIGNhc2UgVHlwZWRBcnJheUxlbmd0aEludHJpbnNpYzogewog
ICAgICAgICBqaXQubG9hZDMyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0YXRlLmJhc2VHUFIs
IEpTQXJyYXlCdWZmZXJWaWV3OjpvZmZzZXRPZkxlbmd0aCgpKSwgdmFsdWVHUFIpOwotICAgICAg
ICBqaXQuYm94SW50MzIodmFsdWVHUFIsIHZhbHVlUmVncywgQ0NhbGxIZWxwZXJzOjpEb05vdEhh
dmVUYWdSZWdpc3RlcnMpOworICAgICAgICBqaXQuYm94SW50MzIodmFsdWVHUFIsIHZhbHVlUmVn
cyk7CiAgICAgICAgIHN0YXRlLnN1Y2NlZWQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAg
LTkzLDcgKzkzLDcgQEAgdm9pZCBBY2Nlc3NDYXNlOjplbWl0SW50cmluc2ljR2V0dGVyKEFjYwog
ICAgICAgICAgICAgaml0LmxzaGlmdDMyKHZhbHVlR1BSLCBJbW0zMihsb2dFbGVtZW50U2l6ZSh0
eXBlKSksIHZhbHVlR1BSKTsKICAgICAgICAgfQogCi0gICAgICAgIGppdC5ib3hJbnQzMih2YWx1
ZUdQUiwgdmFsdWVSZWdzLCBDQ2FsbEhlbHBlcnM6OkRvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7Cisg
ICAgICAgIGppdC5ib3hJbnQzMih2YWx1ZUdQUiwgdmFsdWVSZWdzKTsKICAgICAgICAgc3RhdGUu
c3VjY2VlZCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTE5LDcgKzExOSw3IEBAIHZv
aWQgQWNjZXNzQ2FzZTo6ZW1pdEludHJpbnNpY0dldHRlcihBY2MKICAgICAgICAgCiAgICAgICAg
IGRvbmUubGluaygmaml0KTsKICAgICAgICAgCi0gICAgICAgIGppdC5ib3hJbnQzMih2YWx1ZUdQ
UiwgdmFsdWVSZWdzLCBDQ2FsbEhlbHBlcnM6OkRvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7CisgICAg
ICAgIGppdC5ib3hJbnQzMih2YWx1ZUdQUiwgdmFsdWVSZWdzKTsKICAgICAgICAgc3RhdGUuc3Vj
Y2VlZCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VC5oCShyZXZpc2lvbiAyMDA1OTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5o
CSh3b3JraW5nIGNvcHkpCkBAIC03NTYsNiArNzU2LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAjZW5k
aWYKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJh
dGlvbl9FSkksIGludCwgR1BSUmVnLCBVbmlxdWVkU3RyaW5nSW1wbCopOwogICAgICAgICBNYWNy
b0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSiwgaW50LCBH
UFJSZWcsIEdQUlJlZyk7CisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRp
b24oSl9KSVRPcGVyYXRpb25fRUpKUnAsIEpTVmFsdWVSZWdzLCBKU1ZhbHVlUmVncywgSlNWYWx1
ZVJlZ3MsIFJlc3VsdFByb2ZpbGUqKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2Fs
bE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkpBcCwgaW50LCBHUFJSZWcsIEdQUlJlZywgQXJy
YXlQcm9maWxlKik7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24o
Sl9KSVRPcGVyYXRpb25fRUpKQnksIGludCwgR1BSUmVnLCBHUFJSZWcsIEJ5VmFsSW5mbyopOwog
ICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFpfSklUT3BlcmF0aW9u
X0VKT0osIEdQUlJlZywgR1BSUmVnLCBHUFJSZWcpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRBZGRHZW5lcmF0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUQWRkR2VuZXJhdG9yLmNwcAkocmV2aXNpb24gMjAwNTkwKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBZGRHZW5lcmF0b3IuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTEyOCw2ICsxMjgsOSBAQCB2b2lkIEpJVEFkZEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChD
CiAKICAgICAvLyBEbyBkb3VibGVWYXIgKyBkb3VibGVWYXIuCiAgICAgaml0LmFkZERvdWJsZSht
X3JpZ2h0RlBSLCBtX2xlZnRGUFIpOworICAgIGlmIChtX3Jlc3VsdFByb2ZpbGUpCisgICAgICAg
IG1fcmVzdWx0UHJvZmlsZS0+ZW1pdFNldERvdWJsZShqaXQpOworICAgICAgICAKICAgICBqaXQu
Ym94RG91YmxlKG1fbGVmdEZQUiwgbV9yZXN1bHQpOwogfQogCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVEFkZEdlbmVyYXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUQWRkR2VuZXJhdG9yLmgJKHJldmlzaW9uIDIwMDU5MCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQWRkR2VuZXJhdG9yLmgJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MzcsNyArMzcsOCBAQCBjbGFzcyBKSVRBZGRHZW5lcmF0b3IgewogcHVibGljOgogICAgIEpJVEFk
ZEdlbmVyYXRvcihTbmlwcGV0T3BlcmFuZCBsZWZ0T3BlcmFuZCwgU25pcHBldE9wZXJhbmQgcmln
aHRPcGVyYW5kLAogICAgICAgICBKU1ZhbHVlUmVncyByZXN1bHQsIEpTVmFsdWVSZWdzIGxlZnQs
IEpTVmFsdWVSZWdzIHJpZ2h0LAotICAgICAgICBGUFJSZWcgbGVmdEZQUiwgRlBSUmVnIHJpZ2h0
RlBSLCBHUFJSZWcgc2NyYXRjaEdQUiwgRlBSUmVnIHNjcmF0Y2hGUFIpCisgICAgICAgIEZQUlJl
ZyBsZWZ0RlBSLCBGUFJSZWcgcmlnaHRGUFIsIEdQUlJlZyBzY3JhdGNoR1BSLCBGUFJSZWcgc2Ny
YXRjaEZQUiwKKyAgICAgICAgUmVzdWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSA9IG51bGxwdHIp
CiAgICAgICAgIDogbV9sZWZ0T3BlcmFuZChsZWZ0T3BlcmFuZCkKICAgICAgICAgLCBtX3JpZ2h0
T3BlcmFuZChyaWdodE9wZXJhbmQpCiAgICAgICAgICwgbV9yZXN1bHQocmVzdWx0KQpAQCAtNDcs
NiArNDgsNyBAQCBwdWJsaWM6CiAgICAgICAgICwgbV9yaWdodEZQUihyaWdodEZQUikKICAgICAg
ICAgLCBtX3NjcmF0Y2hHUFIoc2NyYXRjaEdQUikKICAgICAgICAgLCBtX3NjcmF0Y2hGUFIoc2Ny
YXRjaEZQUikKKyAgICAgICAgLCBtX3Jlc3VsdFByb2ZpbGUocmVzdWx0UHJvZmlsZSkKICAgICB7
CiAgICAgICAgIEFTU0VSVCghbV9sZWZ0T3BlcmFuZC5pc0NvbnN0SW50MzIoKSB8fCAhbV9yaWdo
dE9wZXJhbmQuaXNDb25zdEludDMyKCkpOwogICAgIH0KQEAgLTY3LDYgKzY5LDcgQEAgcHJpdmF0
ZToKICAgICBGUFJSZWcgbV9yaWdodEZQUjsKICAgICBHUFJSZWcgbV9zY3JhdGNoR1BSOwogICAg
IEZQUlJlZyBtX3NjcmF0Y2hGUFI7CisgICAgUmVzdWx0UHJvZmlsZSogbV9yZXN1bHRQcm9maWxl
OwogICAgIGJvb2wgbV9kaWRFbWl0RmFzdFBhdGggeyBmYWxzZSB9OwogCiAgICAgQ0NhbGxIZWxw
ZXJzOjpKdW1wTGlzdCBtX2VuZEp1bXBMaXN0OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRBcml0aG1ldGljLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVEFyaXRobWV0aWMuY3BwCShyZXZpc2lvbiAyMDA1OTApCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0aWMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAxNSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTUtMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTY5Niw2ICs2OTYsMTAgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfYWRkKEluc3RydWN0aW9uKiBj
dXJyZQogICAgIEZQUlJlZyBzY3JhdGNoRlBSID0gZnBSZWdUMjsKICNlbmRpZgogCisgICAgUmVz
dWx0UHJvZmlsZSogcmVzdWx0UHJvZmlsZSA9IG51bGxwdHI7CisgICAgaWYgKHNob3VsZEVtaXRQ
cm9maWxpbmcoKSkKKyAgICAgICAgcmVzdWx0UHJvZmlsZSA9IG1fY29kZUJsb2NrLT5lbnN1cmVS
ZXN1bHRQcm9maWxlKG1fYnl0ZWNvZGVPZmZzZXQpOworCiAgICAgU25pcHBldE9wZXJhbmQgbGVm
dE9wZXJhbmQodHlwZXMuZmlyc3QoKSk7CiAgICAgU25pcHBldE9wZXJhbmQgcmlnaHRPcGVyYW5k
KHR5cGVzLnNlY29uZCgpKTsKIApAQCAtNzEyLDcgKzcxNiw3IEBAIHZvaWQgSklUOjplbWl0X29w
X2FkZChJbnN0cnVjdGlvbiogY3VycmUKICAgICAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rlcihv
cDIsIHJpZ2h0UmVncyk7CiAKICAgICBKSVRBZGRHZW5lcmF0b3IgZ2VuKGxlZnRPcGVyYW5kLCBy
aWdodE9wZXJhbmQsIHJlc3VsdFJlZ3MsIGxlZnRSZWdzLCByaWdodFJlZ3MsCi0gICAgICAgIGZw
UmVnVDAsIGZwUmVnVDEsIHNjcmF0Y2hHUFIsIHNjcmF0Y2hGUFIpOworICAgICAgICBmcFJlZ1Qw
LCBmcFJlZ1QxLCBzY3JhdGNoR1BSLCBzY3JhdGNoRlBSLCByZXN1bHRQcm9maWxlKTsKIAogICAg
IGdlbi5nZW5lcmF0ZUZhc3RQYXRoKCp0aGlzKTsKIApAQCAtNzI0LDggKzcyOCwxNyBAQCB2b2lk
IEpJVDo6ZW1pdF9vcF9hZGQoSW5zdHJ1Y3Rpb24qIGN1cnJlCiAgICAgfSBlbHNlIHsKICAgICAg
ICAgQVNTRVJUKGdlbi5lbmRKdW1wTGlzdCgpLmVtcHR5KCkpOwogICAgICAgICBBU1NFUlQoZ2Vu
LnNsb3dQYXRoSnVtcExpc3QoKS5lbXB0eSgpKTsKLSAgICAgICAgSklUU2xvd1BhdGhDYWxsIHNs
b3dQYXRoQ2FsbCh0aGlzLCBjdXJyZW50SW5zdHJ1Y3Rpb24sIHNsb3dfcGF0aF9hZGQpOwotICAg
ICAgICBzbG93UGF0aENhbGwuY2FsbCgpOworICAgICAgICBpZiAocmVzdWx0UHJvZmlsZSkgewor
ICAgICAgICAgICAgaWYgKGxlZnRPcGVyYW5kLmlzQ29uc3QoKSkKKyAgICAgICAgICAgICAgICBl
bWl0R2V0VmlydHVhbFJlZ2lzdGVyKG9wMSwgbGVmdFJlZ3MpOworICAgICAgICAgICAgaWYgKHJp
Z2h0T3BlcmFuZC5pc0NvbnN0KCkpCisgICAgICAgICAgICAgICAgZW1pdEdldFZpcnR1YWxSZWdp
c3RlcihvcDIsIHJpZ2h0UmVncyk7CisgICAgICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlv
blZhbHVlQWRkUHJvZmlsZWQsIHJlc3VsdFJlZ3MsIGxlZnRSZWdzLCByaWdodFJlZ3MsIHJlc3Vs
dFByb2ZpbGUpOworICAgICAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihyZXN1bHQsIHJl
c3VsdFJlZ3MpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgSklUU2xvd1BhdGhDYWxs
IHNsb3dQYXRoQ2FsbCh0aGlzLCBjdXJyZW50SW5zdHJ1Y3Rpb24sIHNsb3dfcGF0aF9hZGQpOwor
ICAgICAgICAgICAgc2xvd1BhdGhDYWxsLmNhbGwoKTsKKyAgICAgICAgfQogICAgIH0KIH0KIApA
QCAtNzMzLDggKzc0Niw0MSBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfYWRkKEluc3RydWN0aW9u
KiBjCiB7CiAgICAgbGlua0FsbFNsb3dDYXNlc0ZvckJ5dGVjb2RlT2Zmc2V0KG1fc2xvd0Nhc2Vz
LCBpdGVyLCBtX2J5dGVjb2RlT2Zmc2V0KTsKIAotICAgIEpJVFNsb3dQYXRoQ2FsbCBzbG93UGF0
aENhbGwodGhpcywgY3VycmVudEluc3RydWN0aW9uLCBzbG93X3BhdGhfYWRkKTsKLSAgICBzbG93
UGF0aENhbGwuY2FsbCgpOworICAgIGludCByZXN1bHQgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0u
dS5vcGVyYW5kOworICAgIGludCBvcDEgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5k
OworICAgIGludCBvcDIgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOworICAgIE9w
ZXJhbmRUeXBlcyB0eXBlcyA9IE9wZXJhbmRUeXBlczo6ZnJvbUludChjdXJyZW50SW5zdHJ1Y3Rp
b25bNF0udS5vcGVyYW5kKTsKKworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgSlNWYWx1ZVJlZ3Mg
bGVmdFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMCk7CisgICAgSlNWYWx1ZVJlZ3MgcmlnaHRSZWdz
ID0gSlNWYWx1ZVJlZ3MocmVnVDEpOworICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSBsZWZ0
UmVnczsKKyNlbHNlCisgICAgSlNWYWx1ZVJlZ3MgbGVmdFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdU
MSwgcmVnVDApOworICAgIEpTVmFsdWVSZWdzIHJpZ2h0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1Qz
LCByZWdUMik7CisgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IGxlZnRSZWdzOworI2VuZGlm
CisgICAgCisgICAgU25pcHBldE9wZXJhbmQgbGVmdE9wZXJhbmQodHlwZXMuZmlyc3QoKSk7Cisg
ICAgU25pcHBldE9wZXJhbmQgcmlnaHRPcGVyYW5kKHR5cGVzLnNlY29uZCgpKTsKKworICAgIGlm
IChpc09wZXJhbmRDb25zdGFudEludChvcDEpKQorICAgICAgICBsZWZ0T3BlcmFuZC5zZXRDb25z
dEludDMyKGdldE9wZXJhbmRDb25zdGFudEludChvcDEpKTsKKyAgICBlbHNlIGlmIChpc09wZXJh
bmRDb25zdGFudEludChvcDIpKQorICAgICAgICByaWdodE9wZXJhbmQuc2V0Q29uc3RJbnQzMihn
ZXRPcGVyYW5kQ29uc3RhbnRJbnQob3AyKSk7CisKKyAgICBpZiAoc2hvdWxkRW1pdFByb2ZpbGlu
ZygpKSB7CisgICAgICAgIGlmIChsZWZ0T3BlcmFuZC5pc0NvbnN0KCkpCisgICAgICAgICAgICBl
bWl0R2V0VmlydHVhbFJlZ2lzdGVyKG9wMSwgbGVmdFJlZ3MpOworICAgICAgICBpZiAocmlnaHRP
cGVyYW5kLmlzQ29uc3QoKSkKKyAgICAgICAgICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIob3Ay
LCByaWdodFJlZ3MpOworICAgICAgICBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlID0gbV9j
b2RlQmxvY2stPmVuc3VyZVJlc3VsdFByb2ZpbGUobV9ieXRlY29kZU9mZnNldCk7CisgICAgICAg
IGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uVmFsdWVBZGRQcm9maWxlZCwgcmVzdWx0UmVncywgbGVm
dFJlZ3MsIHJpZ2h0UmVncywgcmVzdWx0UHJvZmlsZSk7CisgICAgICAgIGVtaXRQdXRWaXJ0dWFs
UmVnaXN0ZXIocmVzdWx0LCByZXN1bHRSZWdzKTsKKyAgICB9IGVsc2UgeworICAgICAgICBKSVRT
bG93UGF0aENhbGwgc2xvd1BhdGhDYWxsKHRoaXMsIGN1cnJlbnRJbnN0cnVjdGlvbiwgc2xvd19w
YXRoX2FkZCk7CisgICAgICAgIHNsb3dQYXRoQ2FsbC5jYWxsKCk7CisgICAgfQogfQogCiB2b2lk
IEpJVDo6ZW1pdF9vcF9kaXYoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKQEAgLTg2
NCw4ICs5MTAsMTcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfbXVsKEluc3RydWN0aW9uKiBjdXJyZQog
ICAgIH0gZWxzZSB7CiAgICAgICAgIEFTU0VSVChnZW4uZW5kSnVtcExpc3QoKS5lbXB0eSgpKTsK
ICAgICAgICAgQVNTRVJUKGdlbi5zbG93UGF0aEp1bXBMaXN0KCkuZW1wdHkoKSk7Ci0gICAgICAg
IEpJVFNsb3dQYXRoQ2FsbCBzbG93UGF0aENhbGwodGhpcywgY3VycmVudEluc3RydWN0aW9uLCBz
bG93X3BhdGhfbXVsKTsKLSAgICAgICAgc2xvd1BhdGhDYWxsLmNhbGwoKTsKKyAgICAgICAgaWYg
KHJlc3VsdFByb2ZpbGUpIHsKKyAgICAgICAgICAgIGlmIChsZWZ0T3BlcmFuZC5pc1Bvc2l0aXZl
Q29uc3RJbnQzMigpKQorICAgICAgICAgICAgICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIob3Ax
LCBsZWZ0UmVncyk7CisgICAgICAgICAgICBpZiAocmlnaHRPcGVyYW5kLmlzUG9zaXRpdmVDb25z
dEludDMyKCkpCisgICAgICAgICAgICAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihvcDIsIHJp
Z2h0UmVncyk7CisgICAgICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblZhbHVlTXVsUHJv
ZmlsZWQsIHJlc3VsdFJlZ3MsIGxlZnRSZWdzLCByaWdodFJlZ3MsIHJlc3VsdFByb2ZpbGUpOwor
ICAgICAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihyZXN1bHQsIHJlc3VsdFJlZ3MpOwor
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgSklUU2xvd1BhdGhDYWxsIHNsb3dQYXRoQ2Fs
bCh0aGlzLCBjdXJyZW50SW5zdHJ1Y3Rpb24sIHNsb3dfcGF0aF9tdWwpOworICAgICAgICAgICAg
c2xvd1BhdGhDYWxsLmNhbGwoKTsKKyAgICAgICAgfQogICAgIH0KIH0KIApAQCAtODczLDggKzky
OCw0MSBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfbXVsKEluc3RydWN0aW9uKiBjCiB7CiAgICAg
bGlua0FsbFNsb3dDYXNlc0ZvckJ5dGVjb2RlT2Zmc2V0KG1fc2xvd0Nhc2VzLCBpdGVyLCBtX2J5
dGVjb2RlT2Zmc2V0KTsKICAgICAKLSAgICBKSVRTbG93UGF0aENhbGwgc2xvd1BhdGhDYWxsKHRo
aXMsIGN1cnJlbnRJbnN0cnVjdGlvbiwgc2xvd19wYXRoX211bCk7Ci0gICAgc2xvd1BhdGhDYWxs
LmNhbGwoKTsKKyAgICBpbnQgcmVzdWx0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFu
ZDsKKyAgICBpbnQgb3AxID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKKyAgICBp
bnQgb3AyID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKKyAgICBPcGVyYW5kVHlw
ZXMgdHlwZXMgPSBPcGVyYW5kVHlwZXM6OmZyb21JbnQoY3VycmVudEluc3RydWN0aW9uWzRdLnUu
b3BlcmFuZCk7CisKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgIEpTVmFsdWVSZWdzIGxlZnRSZWdz
ID0gSlNWYWx1ZVJlZ3MocmVnVDApOworICAgIEpTVmFsdWVSZWdzIHJpZ2h0UmVncyA9IEpTVmFs
dWVSZWdzKHJlZ1QxKTsKKyAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0gbGVmdFJlZ3M7Cisj
ZWxzZQorICAgIEpTVmFsdWVSZWdzIGxlZnRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDEsIHJlZ1Qw
KTsKKyAgICBKU1ZhbHVlUmVncyByaWdodFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMywgcmVnVDIp
OworICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSBsZWZ0UmVnczsKKyNlbmRpZgorCisgICAg
U25pcHBldE9wZXJhbmQgbGVmdE9wZXJhbmQodHlwZXMuZmlyc3QoKSk7CisgICAgU25pcHBldE9w
ZXJhbmQgcmlnaHRPcGVyYW5kKHR5cGVzLnNlY29uZCgpKTsKKworICAgIGlmIChpc09wZXJhbmRD
b25zdGFudEludChvcDEpKQorICAgICAgICBsZWZ0T3BlcmFuZC5zZXRDb25zdEludDMyKGdldE9w
ZXJhbmRDb25zdGFudEludChvcDEpKTsKKyAgICBlbHNlIGlmIChpc09wZXJhbmRDb25zdGFudElu
dChvcDIpKQorICAgICAgICByaWdodE9wZXJhbmQuc2V0Q29uc3RJbnQzMihnZXRPcGVyYW5kQ29u
c3RhbnRJbnQob3AyKSk7CisKKyAgICBpZiAoc2hvdWxkRW1pdFByb2ZpbGluZygpKSB7CisgICAg
ICAgIGlmIChsZWZ0T3BlcmFuZC5pc1Bvc2l0aXZlQ29uc3RJbnQzMigpKQorICAgICAgICAgICAg
ZW1pdEdldFZpcnR1YWxSZWdpc3RlcihvcDEsIGxlZnRSZWdzKTsKKyAgICAgICAgaWYgKHJpZ2h0
T3BlcmFuZC5pc1Bvc2l0aXZlQ29uc3RJbnQzMigpKQorICAgICAgICAgICAgZW1pdEdldFZpcnR1
YWxSZWdpc3RlcihvcDIsIHJpZ2h0UmVncyk7CisgICAgICAgIFJlc3VsdFByb2ZpbGUqIHJlc3Vs
dFByb2ZpbGUgPSBtX2NvZGVCbG9jay0+ZW5zdXJlUmVzdWx0UHJvZmlsZShtX2J5dGVjb2RlT2Zm
c2V0KTsKKyAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25WYWx1ZU11bFByb2ZpbGVkLCBy
ZXN1bHRSZWdzLCBsZWZ0UmVncywgcmlnaHRSZWdzLCByZXN1bHRQcm9maWxlKTsKKyAgICAgICAg
ZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihyZXN1bHQsIHJlc3VsdFJlZ3MpOworICAgIH0gZWxzZSB7
CisgICAgICAgIEpJVFNsb3dQYXRoQ2FsbCBzbG93UGF0aENhbGwodGhpcywgY3VycmVudEluc3Ry
dWN0aW9uLCBzbG93X3BhdGhfbXVsKTsKKyAgICAgICAgc2xvd1BhdGhDYWxsLmNhbGwoKTsKKyAg
ICB9CiB9CiAKIHZvaWQgSklUOjplbWl0X29wX3N1YihJbnN0cnVjdGlvbiogY3VycmVudEluc3Ry
dWN0aW9uKQpAQCAtODk4LDYgKzk4NiwxMCBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9zdWIoSW5zdHJ1
Y3Rpb24qIGN1cnJlCiAgICAgRlBSUmVnIHNjcmF0Y2hGUFIgPSBmcFJlZ1QyOwogI2VuZGlmCiAK
KyAgICBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxlID0gbnVsbHB0cjsKKyAgICBpZiAoc2hv
dWxkRW1pdFByb2ZpbGluZygpKQorICAgICAgICByZXN1bHRQcm9maWxlID0gbV9jb2RlQmxvY2st
PmVuc3VyZVJlc3VsdFByb2ZpbGUobV9ieXRlY29kZU9mZnNldCk7CisKICAgICBTbmlwcGV0T3Bl
cmFuZCBsZWZ0T3BlcmFuZCh0eXBlcy5maXJzdCgpKTsKICAgICBTbmlwcGV0T3BlcmFuZCByaWdo
dE9wZXJhbmQodHlwZXMuc2Vjb25kKCkpOwogICAgIApAQCAtOTA1LDcgKzk5Nyw3IEBAIHZvaWQg
SklUOjplbWl0X29wX3N1YihJbnN0cnVjdGlvbiogY3VycmUKICAgICBlbWl0R2V0VmlydHVhbFJl
Z2lzdGVyKG9wMiwgcmlnaHRSZWdzKTsKIAogICAgIEpJVFN1YkdlbmVyYXRvciBnZW4obGVmdE9w
ZXJhbmQsIHJpZ2h0T3BlcmFuZCwgcmVzdWx0UmVncywgbGVmdFJlZ3MsIHJpZ2h0UmVncywKLSAg
ICAgICAgZnBSZWdUMCwgZnBSZWdUMSwgc2NyYXRjaEdQUiwgc2NyYXRjaEZQUik7CisgICAgICAg
IGZwUmVnVDAsIGZwUmVnVDEsIHNjcmF0Y2hHUFIsIHNjcmF0Y2hGUFIsIHJlc3VsdFByb2ZpbGUp
OwogCiAgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgoKnRoaXMpOwogCkBAIC05MjAsOCArMTAxMiwy
NSBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3Bfc3ViKEluc3RydWN0aW9uKiBjCiB7CiAgICAgbGlu
a0FsbFNsb3dDYXNlc0ZvckJ5dGVjb2RlT2Zmc2V0KG1fc2xvd0Nhc2VzLCBpdGVyLCBtX2J5dGVj
b2RlT2Zmc2V0KTsKIAotICAgIEpJVFNsb3dQYXRoQ2FsbCBzbG93UGF0aENhbGwodGhpcywgY3Vy
cmVudEluc3RydWN0aW9uLCBzbG93X3BhdGhfc3ViKTsKLSAgICBzbG93UGF0aENhbGwuY2FsbCgp
OworICAgIGludCByZXN1bHQgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOworI2lm
IFVTRShKU1ZBTFVFNjQpCisgICAgSlNWYWx1ZVJlZ3MgbGVmdFJlZ3MgPSBKU1ZhbHVlUmVncyhy
ZWdUMCk7CisgICAgSlNWYWx1ZVJlZ3MgcmlnaHRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDEpOwor
ICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSBsZWZ0UmVnczsKKyNlbHNlCisgICAgSlNWYWx1
ZVJlZ3MgbGVmdFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMSwgcmVnVDApOworICAgIEpTVmFsdWVS
ZWdzIHJpZ2h0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QzLCByZWdUMik7CisgICAgSlNWYWx1ZVJl
Z3MgcmVzdWx0UmVncyA9IGxlZnRSZWdzOworI2VuZGlmCisKKyAgICBpZiAoc2hvdWxkRW1pdFBy
b2ZpbGluZygpKSB7CisgICAgICAgIFJlc3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUgPSBtX2Nv
ZGVCbG9jay0+ZW5zdXJlUmVzdWx0UHJvZmlsZShtX2J5dGVjb2RlT2Zmc2V0KTsKKyAgICAgICAg
Y2FsbE9wZXJhdGlvbihvcGVyYXRpb25WYWx1ZVN1YlByb2ZpbGVkLCByZXN1bHRSZWdzLCBsZWZ0
UmVncywgcmlnaHRSZWdzLCByZXN1bHRQcm9maWxlKTsKKyAgICAgICAgZW1pdFB1dFZpcnR1YWxS
ZWdpc3RlcihyZXN1bHQsIHJlc3VsdFJlZ3MpOworICAgIH0gZWxzZSB7CisgICAgICAgIEpJVFNs
b3dQYXRoQ2FsbCBzbG93UGF0aENhbGwodGhpcywgY3VycmVudEluc3RydWN0aW9uLCBzbG93X3Bh
dGhfc3ViKTsKKyAgICAgICAgc2xvd1BhdGhDYWxsLmNhbGwoKTsKKyAgICB9CiB9CiAKIC8qIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBFTkQ6IE9QX0FERCwgT1BfU1VCLCBPUF9NVUwg
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVElubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVElubGluZXMuaAkocmV2aXNpb24gMjAwNTkwKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTQxNiw2ICs0MTYsMTQg
QEAgQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OgogICAgIHJldHVybiBh
cHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7CiB9CiAKK2lubGluZSBNYWNy
b0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpKUnAg
b3BlcmF0aW9uLCBKU1ZhbHVlUmVncyByZXN1bHQsIEpTVmFsdWVSZWdzIGFyZzEsIEpTVmFsdWVS
ZWdzIGFyZzIsIFJlc3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUpCit7CisgICAgc2V0dXBBcmd1
bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFyZzIsIFRydXN0ZWRJbW1QdHIocmVzdWx0UHJvZmls
ZSkpOworICAgIENhbGwgY2FsbCA9IGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0
aW9uKTsKKyAgICBzZXR1cFJlc3VsdHMocmVzdWx0KTsKKyAgICByZXR1cm4gY2FsbDsKK30KKwog
I2lmIFVTRShKU1ZBTFVFNjQpCiBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJ
VDo6Y2FsbE9wZXJhdGlvbihaX0pJVE9wZXJhdGlvbl9FSlpaIG9wZXJhdGlvbiwgR1BSUmVnIGFy
ZzEsIGludDMyX3QgYXJnMiwgaW50MzJfdCBhcmczKQogewpAQCAtNjAyLDIzICs2MTAsNiBAQCBB
TFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6CiAKICNlbHNlIC8vIFVTRShK
U1ZBTFVFMzJfNjQpCiAKLS8vIEVuY29kZWRKU1ZhbHVlIGluIEpTVkFMVUUzMl82NCBpcyBhIDY0
LWJpdCBpbnRlZ2VyLiBXaGVuIGJlaW5nIGNvbXBpbGVkIGluIEFSTSBFQUJJLCBpdCBtdXN0IGJl
IGFsaWduZWQgZXZlbi1udW1iZXJlZCByZWdpc3RlciAocjAsIHIyIG9yIFtzcF0pLgotLy8gVG8g
YXZvaWQgYXNzZW1ibGllcyBmcm9tIHVzaW5nIHdyb25nIHJlZ2lzdGVycywgbGV0J3Mgb2NjdXB5
IHIxIG9yIHIzIHdpdGggYSBkdW1teSBhcmd1bWVudCB3aGVuIG5lY2Vzc2FyeS4KLSNpZiAoQ09N
UElMRVJfU1VQUE9SVFMoRUFCSSkgJiYgQ1BVKEFSTSkpIHx8IENQVShNSVBTKQotI2RlZmluZSBF
QUJJXzMyQklUX0RVTU1ZX0FSRyAgICAgIFRydXN0ZWRJbW0zMigwKSwKLSNlbHNlCi0jZGVmaW5l
IEVBQklfMzJCSVRfRFVNTVlfQVJHCi0jZW5kaWYKLQotLy8gSlNWQUxVRTMyXzY0IGlzIGEgNjQt
Yml0IGludGVnZXIgdGhhdCBjYW5ub3QgYmUgcHV0IGhhbGYgaW4gYW4gYXJndW1lbnQgcmVnaXN0
ZXIgYW5kIGhhbGYgb24gc3RhY2sgd2hlbiB1c2luZyBTSDQgYXJjaGl0ZWN0dXJlLgotLy8gVG8g
YXZvaWQgdGhpcywgbGV0J3Mgb2NjdXB5IHRoZSA0dGggYXJndW1lbnQgcmVnaXN0ZXIgKHI3KSB3
aXRoIGEgZHVtbXkgYXJndW1lbnQgd2hlbiBuZWNlc3NhcnkuIFRoaXMgbXVzdCBvbmx5IGJlIGRv
bmUgd2hlbiB0aGVyZQotLy8gaXMgbm8gb3RoZXIgMzItYml0IHZhbHVlIGFyZ3VtZW50IGJlaGlu
ZCB0aGlzIDY0LWJpdCBKU1ZhbHVlLgotI2lmIENQVShTSDQpCi0jZGVmaW5lIFNINF8zMkJJVF9E
VU1NWV9BUkcgICAgICBUcnVzdGVkSW1tMzIoMCksCi0jZWxzZQotI2RlZmluZSBTSDRfMzJCSVRf
RFVNTVlfQVJHCi0jZW5kaWYKLQogQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBK
SVQ6OmNhbGxPcGVyYXRpb25Ob0V4Y2VwdGlvbkNoZWNrKFZfSklUT3BlcmF0aW9uX0VKIG9wZXJh
dGlvbiwgR1BSUmVnIGFyZzFUYWcsIEdQUlJlZyBhcmcxUGF5bG9hZCkKIHsKICAgICBzZXR1cEFy
Z3VtZW50c1dpdGhFeGVjU3RhdGUoRUFCSV8zMkJJVF9EVU1NWV9BUkcgYXJnMVBheWxvYWQsIGFy
ZzFUYWcpOwpAQCAtODAwLDkgKzc5MSw2IEBAIEFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6
OkNhbGwgSklUOjoKICAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVja1NldEpT
VmFsdWVSZXN1bHQob3BlcmF0aW9uLCBkc3QpOwogfQogCi0jdW5kZWYgRUFCSV8zMkJJVF9EVU1N
WV9BUkcKLSN1bmRlZiBTSDRfMzJCSVRfRFVNTVlfQVJHCi0KICNlbmRpZiAvLyBVU0UoSlNWQUxV
RTMyXzY0KQogCiBBTFdBWVNfSU5MSU5FIEpJVDo6SnVtcCBKSVQ6OmNoZWNrU3RydWN0dXJlKFJl
Z2lzdGVySUQgcmVnLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUTXVsR2VuZXJhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVE11bEdlbmVyYXRvci5jcHAJKHJldmlzaW9uIDIwMDU5MCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUTXVsR2VuZXJhdG9yLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC0xNTMsNiArMTUzLDcgQEAgdm9pZCBKSVRNdWxHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBh
dGgoQwogICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgZG9uZSA9IGppdC5qdW1wKCk7CiAKICAg
ICAgICAgbm90TmVnYXRpdmVaZXJvLmxpbmsoJmppdCk7CisgICAgICAgIGppdC5vcjMyKENDYWxs
SGVscGVyczo6VHJ1c3RlZEltbTMyKFJlc3VsdFByb2ZpbGU6Ok5vbk5lZ1plcm9Eb3VibGUpLCBD
Q2FsbEhlbHBlcnM6OkFic29sdXRlQWRkcmVzcyhtX3Jlc3VsdFByb2ZpbGUtPmFkZHJlc3NPZkZs
YWdzKCkpKTsKIAogICAgICAgICBqaXQubW92ZShtX3Jlc3VsdC5wYXlsb2FkR1BSKCksIG1fc2Ny
YXRjaEdQUik7CiAgICAgICAgIGppdC51cnNoaWZ0UHRyKENDYWxsSGVscGVyczo6SW1tMzIoNTIp
LCBtX3NjcmF0Y2hHUFIpOwpAQCAtMTc0LDYgKzE3NSw3IEBAIHZvaWQgSklUTXVsR2VuZXJhdG9y
OjpnZW5lcmF0ZUZhc3RQYXRoKEMKICAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIGRvbmUgPSBq
aXQuanVtcCgpOwogCiAgICAgICAgIG5vdE5lZ2F0aXZlWmVyby5saW5rKCZqaXQpOworICAgICAg
ICBqaXQub3IzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihSZXN1bHRQcm9maWxlOjpOb25O
ZWdaZXJvRG91YmxlKSwgQ0NhbGxIZWxwZXJzOjpBYnNvbHV0ZUFkZHJlc3MobV9yZXN1bHRQcm9m
aWxlLT5hZGRyZXNzT2ZGbGFncygpKSk7CiAKICAgICAgICAgaml0Lm1vdmUobV9yZXN1bHQudGFn
R1BSKCksIG1fc2NyYXRjaEdQUik7CiAgICAgICAgIGppdC51cnNoaWZ0UHRyKENDYWxsSGVscGVy
czo6SW1tMzIoNTIgLSAzMiksIG1fc2NyYXRjaEdQUik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAJKHJldmlzaW9uIDIwMDU5MCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTIyNDMsNiArMjI0Myw4OCBAQCBKU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVG9JbmRl
eFN0CiAgICAgcmV0dXJuIGpzU3RyaW5nKGV4ZWMsIElkZW50aWZpZXI6OmZyb20oZXhlYywgaW5k
ZXgpLnN0cmluZygpKTsKIH0KIAorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRp
b25WYWx1ZUFkZChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpCit7CisgICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7Cisg
ICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgZXhlYyk7CisgICAgCisgICAgSlNW
YWx1ZSBvcDEgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMSk7CisgICAgSlNWYWx1ZSBvcDIg
PSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMik7CisgICAgCisgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc0FkZChleGVjLCBvcDEsIG9wMikpOworfQorCitFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQWRkUHJvZmlsZWQoRXhlY1N0YXRlKiBleGVjLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBSZXN1bHRQ
cm9maWxlKiByZXN1bHRQcm9maWxlKQoreworICAgIFZNKiB2bSA9ICZleGVjLT52bSgpOworICAg
IE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGV4ZWMpOworICAgIAorICAgIEpTVmFs
dWUgb3AxID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDEpOworICAgIEpTVmFsdWUgb3AyID0g
SlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDIpOworICAgIAorICAgIEpTVmFsdWUgcmVzdWx0ID0g
anNBZGQoZXhlYywgb3AxLCBvcDIpOworICAgIHJlc3VsdFByb2ZpbGUtPmRldGVjdE51bWVyaWNu
ZXNzKHJlc3VsdCk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOworfQorCitF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlTXVsKEV4ZWNTdGF0ZSog
ZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9w
MikKK3sKKyAgICBWTSogdm0gPSAmZXhlYy0+dm0oKTsKKyAgICBOYXRpdmVDYWxsRnJhbWVUcmFj
ZXIgdHJhY2VyKHZtLCBleGVjKTsKKworICAgIEpTVmFsdWUgb3AxID0gSlNWYWx1ZTo6ZGVjb2Rl
KGVuY29kZWRPcDEpOworICAgIEpTVmFsdWUgb3AyID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRP
cDIpOworCisgICAgZG91YmxlIGEgPSBvcDEudG9OdW1iZXIoZXhlYyk7CisgICAgZG91YmxlIGIg
PSBvcDIudG9OdW1iZXIoZXhlYyk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJl
cihhICogYikpOworfQorCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZh
bHVlTXVsUHJvZmlsZWQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3Ax
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBSZXN1bHRQcm9maWxlKiByZXN1bHRQcm9maWxl
KQoreworICAgIFZNKiB2bSA9ICZleGVjLT52bSgpOworICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNl
ciB0cmFjZXIodm0sIGV4ZWMpOworCisgICAgSlNWYWx1ZSBvcDEgPSBKU1ZhbHVlOjpkZWNvZGUo
ZW5jb2RlZE9wMSk7CisgICAgSlNWYWx1ZSBvcDIgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9w
Mik7CisKKyAgICBkb3VibGUgYSA9IG9wMS50b051bWJlcihleGVjKTsKKyAgICBkb3VibGUgYiA9
IG9wMi50b051bWJlcihleGVjKTsKKyAgICAKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzTnVtYmVy
KGEgKiBiKTsKKyAgICByZXN1bHRQcm9maWxlLT5kZXRlY3ROdW1lcmljbmVzcyhyZXN1bHQpOwor
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKK30KKworRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZVN1YihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpCit7CisgICAgVk0q
IHZtID0gJmV4ZWMtPnZtKCk7CisgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwg
ZXhlYyk7CisgICAgCisgICAgSlNWYWx1ZSBvcDEgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9w
MSk7CisgICAgSlNWYWx1ZSBvcDIgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMik7CisKKyAg
ICBkb3VibGUgYSA9IG9wMS50b051bWJlcihleGVjKTsKKyAgICBkb3VibGUgYiA9IG9wMi50b051
bWJlcihleGVjKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGEgLSBiKSk7
Cit9CisKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVTdWJQcm9m
aWxlZChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRPcDIsIFJlc3VsdFByb2ZpbGUqIHJlc3VsdFByb2ZpbGUpCit7CisgICAg
Vk0qIHZtID0gJmV4ZWMtPnZtKCk7CisgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2
bSwgZXhlYyk7CisgICAgCisgICAgSlNWYWx1ZSBvcDEgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2Rl
ZE9wMSk7CisgICAgSlNWYWx1ZSBvcDIgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMik7CisK
KyAgICBkb3VibGUgYSA9IG9wMS50b051bWJlcihleGVjKTsKKyAgICBkb3VibGUgYiA9IG9wMi50
b051bWJlcihleGVjKTsKKyAgICAKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzTnVtYmVyKGEgLSBi
KTsKKyAgICByZXN1bHRQcm9maWxlLT5kZXRlY3ROdW1lcmljbmVzcyhyZXN1bHQpOworICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKK30KKwogdm9pZCBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblByb2Nlc3NUeXBlUHJvZmlsZXJMb2coRXhlY1N0YXRlKiBleGVjKQogewogICAgIFZN
JiB2bSA9IGV4ZWMtPnZtKCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9w
ZXJhdGlvbnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9w
ZXJhdGlvbnMuaAkocmV2aXNpb24gMjAwNTkwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRPcGVyYXRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTUzLDYgKzUzLDcgQEAgY2xhc3Mg
V2F0Y2hwb2ludFNldDsKIAogc3RydWN0IEJ5VmFsSW5mbzsKIHN0cnVjdCBJbmxpbmVDYWxsRnJh
bWU7CitzdHJ1Y3QgUmVzdWx0UHJvZmlsZTsKIAogdHlwZWRlZiBFeGVjU3RhdGUgQ2FsbEZyYW1l
OwogCkBAIC05Niw2ICs5Nyw3IEBAIHR5cGVkZWYgY2hhciogVW51c2VkUHRyOwogICAgIFE6IGlu
dDY0X3QKICAgICBSOiBSZWdpc3RlcgogICAgIFJlbzogUmVnRXhwT2JqZWN0KgorICAgIFJwOiBS
ZXN1bHRQcm9maWxlKgogICAgIFM6IHNpemVfdAogICAgIFNwcnQ6IFNsb3dQYXRoUmV0dXJuVHlw
ZQogICAgIFNzaTogU3RydWN0dXJlU3R1YkluZm8qCkBAIC0xMzYsNiArMTM4LDcgQEAgdHlwZWRl
ZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OICgqSgogdHlwZWRlZiBFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25fRUpKQXApKEV4ZWNTdGF0ZSosIEVuY29k
ZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgQXJyYXlQcm9maWxlKik7CiB0eXBlZGVmIEVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJVE9wZXJhdGlvbl9FSkpCeSkoRXhlY1N0YXRl
KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBCeVZhbEluZm8qKTsKIHR5cGVkZWYg
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiAoKkpfSklUT3BlcmF0aW9uX0VKSkopKEV4ZWNT
dGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpOwor
dHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25fRUpK
UnApKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgUmVzdWx0UHJv
ZmlsZSopOwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRPcGVy
YXRpb25fRUpzc1opKEV4ZWNTdGF0ZSosIEpTU3RyaW5nKiwgaW50MzJfdCk7CiB0eXBlZGVmIEVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJVE9wZXJhdGlvbl9FSnNzUmVvKShFeGVj
U3RhdGUqLCBKU1N0cmluZyosIFJlZ0V4cE9iamVjdCopOwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25fRUpzc1Jlb0pzcykoRXhlY1N0YXRlKiwg
SlNTdHJpbmcqLCBSZWdFeHBPYmplY3QqLCBKU1N0cmluZyopOwpAQCAtNDA5LDYgKzQxMiwxMyBA
QCBKU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0UHJvcGVyCiBFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5leHRFbnVtZXJhdG9yUG5hbWUoRXhlY1N0YXRlKiwg
SlNDZWxsKiwgaW50MzJfdCk7CiBKU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVG9JbmRl
eFN0cmluZyhFeGVjU3RhdGUqLCBpbnQzMl90KTsKIAorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBvcGVyYXRpb25WYWx1ZUFkZChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
T3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQWRkUHJvZmlsZWQoRXhlY1N0YXRlKiwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgUmVz
dWx0UHJvZmlsZSopIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uVmFsdWVNdWwoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBvcGVyYXRpb25WYWx1ZU11bFByb2ZpbGVkKEV4ZWNTdGF0ZSosIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIFJlc3VsdFBy
b2ZpbGUqKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblZhbHVlU3ViKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRPcDIpIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uVmFsdWVTdWJQcm9maWxlZChFeGVjU3RhdGUqLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyLCBSZXN1bHRQcm9maWxl
KikgV1RGX0lOVEVSTkFMOworCiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHJvY2Vzc1R5
cGVQcm9maWxlckxvZyhFeGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7CiB2b2lkIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uUHJvY2Vzc1NoYWRvd0NoaWNrZW5Mb2coRXhlY1N0YXRlKikgV1RGX0lOVEVS
TkFMOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN1YkdlbmVyYXRvci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdWJHZW5lcmF0
b3IuY3BwCShyZXZpc2lvbiAyMDA1OTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VFN1YkdlbmVyYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtODMsNiArODMsOSBAQCB2b2lkIEpJVFN1
YkdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChDCiAgICAgcmlnaHRXYXNJbnRlZ2VyLmxpbmso
JmppdCk7CiAKICAgICBqaXQuc3ViRG91YmxlKG1fcmlnaHRGUFIsIG1fbGVmdEZQUik7CisgICAg
aWYgKG1fcmVzdWx0UHJvZmlsZSkKKyAgICAgICAgbV9yZXN1bHRQcm9maWxlLT5lbWl0U2V0RG91
YmxlKGppdCk7CisKICAgICBqaXQuYm94RG91YmxlKG1fbGVmdEZQUiwgbV9yZXN1bHQpOwogfQog
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN1YkdlbmVyYXRvci5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3ViR2VuZXJhdG9yLmgJKHJl
dmlzaW9uIDIwMDU5MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3ViR2VuZXJh
dG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMzcsNyArMzcsOCBAQCBjbGFzcyBKSVRTdWJHZW5lcmF0b3Ig
ewogcHVibGljOgogICAgIEpJVFN1YkdlbmVyYXRvcihTbmlwcGV0T3BlcmFuZCBsZWZ0T3BlcmFu
ZCwgU25pcHBldE9wZXJhbmQgcmlnaHRPcGVyYW5kLAogICAgICAgICBKU1ZhbHVlUmVncyByZXN1
bHQsIEpTVmFsdWVSZWdzIGxlZnQsIEpTVmFsdWVSZWdzIHJpZ2h0LAotICAgICAgICBGUFJSZWcg
bGVmdEZQUiwgRlBSUmVnIHJpZ2h0RlBSLCBHUFJSZWcgc2NyYXRjaEdQUiwgRlBSUmVnIHNjcmF0
Y2hGUFIpCisgICAgICAgIEZQUlJlZyBsZWZ0RlBSLCBGUFJSZWcgcmlnaHRGUFIsIEdQUlJlZyBz
Y3JhdGNoR1BSLCBGUFJSZWcgc2NyYXRjaEZQUiwKKyAgICAgICAgUmVzdWx0UHJvZmlsZSogcmVz
dWx0UHJvZmlsZSA9IG51bGxwdHIpCiAgICAgICAgIDogbV9sZWZ0T3BlcmFuZChsZWZ0T3BlcmFu
ZCkKICAgICAgICAgLCBtX3JpZ2h0T3BlcmFuZChyaWdodE9wZXJhbmQpCiAgICAgICAgICwgbV9y
ZXN1bHQocmVzdWx0KQpAQCAtNDcsNiArNDgsNyBAQCBwdWJsaWM6CiAgICAgICAgICwgbV9yaWdo
dEZQUihyaWdodEZQUikKICAgICAgICAgLCBtX3NjcmF0Y2hHUFIoc2NyYXRjaEdQUikKICAgICAg
ICAgLCBtX3NjcmF0Y2hGUFIoc2NyYXRjaEZQUikKKyAgICAgICAgLCBtX3Jlc3VsdFByb2ZpbGUo
cmVzdWx0UHJvZmlsZSkKICAgICB7IH0KIAogICAgIHZvaWQgZ2VuZXJhdGVGYXN0UGF0aChDQ2Fs
bEhlbHBlcnMmKTsKQEAgLTY1LDYgKzY3LDcgQEAgcHJpdmF0ZToKICAgICBGUFJSZWcgbV9yaWdo
dEZQUjsKICAgICBHUFJSZWcgbV9zY3JhdGNoR1BSOwogICAgIEZQUlJlZyBtX3NjcmF0Y2hGUFI7
CisgICAgUmVzdWx0UHJvZmlsZSogbV9yZXN1bHRQcm9maWxlOwogICAgIGJvb2wgbV9kaWRFbWl0
RmFzdFBhdGggeyBmYWxzZSB9OwogCiAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBtX2VuZEp1
bXBMaXN0OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UYWdSZWdpc3RlcnNNb2Rl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RhZ1JlZ2lzdGVy
c01vZGUuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UYWdS
ZWdpc3RlcnNNb2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDUwIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJUYWdSZWdpc3RlcnNNb2RlLmgiCisKKyNpbmNsdWRlIDx3dGYvUHJpbnRT
dHJlYW0uaD4KKworbmFtZXNwYWNlIFdURiB7CisKK3VzaW5nIG5hbWVzcGFjZSBKU0M7CisKK3Zv
aWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0LCBUYWdSZWdpc3RlcnNNb2RlIG1vZGUp
Cit7CisgICAgc3dpdGNoIChtb2RlKSB7CisgICAgY2FzZSBEb05vdEhhdmVUYWdSZWdpc3RlcnM6
CisgICAgICAgIG91dC5wcmludCgiRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzIik7CisgICAgICAgIHJl
dHVybjsKKyAgICBjYXNlIEhhdmVUYWdSZWdpc3RlcnM6CisgICAgICAgIG91dC5wcmludCgiSGF2
ZVRhZ1JlZ2lzdGVycyIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIAorICAgIFJFTEVB
U0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdURgorCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RhZ1JlZ2lzdGVyc01vZGUuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RhZ1JlZ2lzdGVyc01vZGUuaAkocmV2aXNp
b24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGFnUmVnaXN0ZXJzTW9kZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBUYWdSZWdpc3RlcnNNb2RlX2gKKyNkZWZpbmUg
VGFnUmVnaXN0ZXJzTW9kZV9oCisKK25hbWVzcGFjZSBKU0MgeworCitlbnVtIFRhZ1JlZ2lzdGVy
c01vZGUgeworICAgIERvTm90SGF2ZVRhZ1JlZ2lzdGVycywKKyAgICBIYXZlVGFnUmVnaXN0ZXJz
Cit9OworCit9IC8vIG5hbWVzcGFjZSBKU0MKKworbmFtZXNwYWNlIFdURiB7CisKK2NsYXNzIFBy
aW50U3RyZWFtOwordm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiwgSlNDOjpUYWdSZWdp
c3RlcnNNb2RlKTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCisKKyNlbmRpZiAvLyBUYWdSZWdpc3Rl
cnNNb2RlX2gKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xv
d1BhdGhzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9D
b21tb25TbG93UGF0aHMuY3BwCShyZXZpc2lvbiAyMDA1OTApCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNzgs
NiArMzc4LDggQEAgc3RhdGljIHZvaWQgdXBkYXRlUmVzdWx0UHJvZmlsZUZvckJpbmFyeQogICAg
ICAgICAgICAgaWYgKCFkb3VibGVWYWwgJiYgc3RkOjpzaWduYml0KGRvdWJsZVZhbCkpCiAgICAg
ICAgICAgICAgICAgcHJvZmlsZS0+c2V0T2JzZXJ2ZWROZWdaZXJvRG91YmxlKCk7CiAgICAgICAg
ICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBwcm9maWxlLT5zZXRPYnNlcnZlZE5vbk5lZ1pl
cm9Eb3VibGUoKTsKKwogICAgICAgICAgICAgICAgIC8vIFRoZSBJbnQ1MiBvdmVyZmxvdyBjaGVj
ayBoZXJlIGludGVudGlvbmFsbHkgb21pdHMgMWxsIDw8IDUxIGFzIGEgdmFsaWQgbmVnYXRpdmUg
SW50NTIgdmFsdWUuCiAgICAgICAgICAgICAgICAgLy8gVGhlcmVmb3JlLCB3ZSB3aWxsIGdldCBh
IGZhbHNlIHBvc2l0aXZlIGlmIHRoZSByZXN1bHQgaXMgdGhhdCB2YWx1ZS4gVGhpcyBpcyBpbnRl
bnRpb25hbGx5CiAgICAgICAgICAgICAgICAgLy8gZG9uZSB0byBzaW1wbGlmeSB0aGUgY2hlY2tp
bmcgYWxnb3JpdGhtLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9u
cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMu
aAkocmV2aXNpb24gMjAwNTkwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0
aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNzUsNiArMTc1LDcgQEAgdHlwZWRlZiBjb25zdCBj
aGFyKiBvcHRpb25TdHJpbmc7CiAgICAgdihib29sLCByZXBvcnRERkdDb21waWxlVGltZXMsIGZh
bHNlLCBOb3JtYWwsICJkdW1wcyBKUyBmdW5jdGlvbiBzaWduYXR1cmUgYW5kIHRoZSB0aW1lIGl0
IHRvb2sgdG8gREZHIGFuZCBGVEwgY29tcGlsZSIpIFwKICAgICB2KGJvb2wsIHJlcG9ydEZUTENv
bXBpbGVUaW1lcywgZmFsc2UsIE5vcm1hbCwgImR1bXBzIEpTIGZ1bmN0aW9uIHNpZ25hdHVyZSBh
bmQgdGhlIHRpbWUgaXQgdG9vayB0byBGVEwgY29tcGlsZSIpIFwKICAgICB2KGJvb2wsIHJlcG9y
dFRvdGFsQ29tcGlsZVRpbWVzLCBmYWxzZSwgTm9ybWFsLCBudWxscHRyKSBcCisgICAgdihib29s
LCB2ZXJib3NlRXhpdFByb2ZpbGUsIGZhbHNlLCBOb3JtYWwsIG51bGxwdHIpIFwKICAgICB2KGJv
b2wsIHZlcmJvc2VDRkEsIGZhbHNlLCBOb3JtYWwsIG51bGxwdHIpIFwKICAgICB2KGJvb2wsIHZl
cmJvc2VGVExUb0pTVGh1bmssIGZhbHNlLCBOb3JtYWwsIG51bGxwdHIpIFwKICAgICB2KGJvb2ws
IHZlcmJvc2VGVExGYWlsdXJlLCBmYWxzZSwgTm9ybWFsLCBudWxscHRyKSBcCkluZGV4OiBMYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShy
ZXZpc2lvbiAyMDA1OTApCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwzMSBAQAorMjAxNi0wNS0wOSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUu
Y29tPgorCisgICAgICAgIFBvbHltb3JwaGljIG9wZXJhbmRzIGluIG9wZXJhdG9ycyBjb2VyY2Vz
IGRvd25zdHJlYW0gdmFsdWVzIHRvIGRvdWJsZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTc5MworCisgICAgICAgIFJldmlld2VkIGJ5IE1hcmsg
TGFtLgorCisgICAgICAgICoganMvcmVncmVzcy9vYmplY3QtaW50LWFkZC1hcnJheS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3Mvb2JqZWN0LWludC1hZGQtYXJyYXku
aHRtbDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9vYmplY3QtaW50LWFkZC1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3Mvb2JqZWN0LWludC1hZGQuaHRtbDog
QWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9vYmplY3QtaW50LW11bC1hcnJheS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3Mvb2JqZWN0LWludC1tdWwtYXJyYXku
aHRtbDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9vYmplY3QtaW50LXN1Yi1hcnJheS1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3Mvb2JqZWN0LWludC1zdWIt
YXJyYXkuaHRtbDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9vYmplY3QtaW50LXN1Yi1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3Mvb2JqZWN0LWludC1zdWIu
aHRtbDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvb2JqZWN0LWlu
dC1hZGQtYXJyYXkuanM6IEFkZGVkLgorICAgICAgICAoaS5vLnZhbHVlT2YpOgorICAgICAgICAq
IGpzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL29iamVjdC1pbnQtYWRkLmpzOiBBZGRlZC4KKyAgICAg
ICAgKGkuby52YWx1ZU9mKToKKyAgICAgICAgKiBqcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9vYmpl
Y3QtaW50LW11bC1hcnJheS5qczogQWRkZWQuCisgICAgICAgIChpLm8udmFsdWVPZik6CisgICAg
ICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvb2JqZWN0LWludC1zdWItYXJyYXkuanM6IEFk
ZGVkLgorICAgICAgICAoaS5vLnZhbHVlT2YpOgorICAgICAgICAqIGpzL3JlZ3Jlc3Mvc2NyaXB0
LXRlc3RzL29iamVjdC1pbnQtc3ViLmpzOiBBZGRlZC4KKyAgICAgICAgKGkuby52YWx1ZU9mKToK
KwogMjAxNi0wNS0wOSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZW1vdmUgdGVzdFJ1bm5lci5zZXRUZXh0QXV0b3NpemluZ0VuYWJsZWQgYW5kIG1p
Z3JhdGUgdGhlIG9uZSB0ZXN0IHRoYXQgdXNlcyBpdApJbmRleDogTGF5b3V0VGVzdHMvanMvcmVn
cmVzcy9vYmplY3QtaW50LWFkZC1hcnJheS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9vYmplY3QtaW50LWFkZC1hcnJheS1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL29iamVjdC1pbnQtYWRkLWFycmF5
LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEwIEBACitKU1JlZ3Jlc3Mv
b2JqZWN0LWludC1hZGQtYXJyYXkKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BB
U1Mgbm8gZXhjZXB0aW9uIHRocm93bgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvb2JqZWN0LWlu
dC1hZGQtYXJyYXkuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL29i
amVjdC1pbnQtYWRkLWFycmF5Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9qcy9y
ZWdyZXNzL29iamVjdC1pbnQtYWRkLWFycmF5Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgor
PGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMv
b2JqZWN0LWludC1hZGQtYXJyYXkuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRl
eDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9vYmplY3QtaW50LWFkZC1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9vYmplY3QtaW50LWFkZC1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL29iamVjdC1pbnQt
YWRkLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEwIEBACitKU1JlZ3Jl
c3Mvb2JqZWN0LWludC1hZGQKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
bm8gZXhjZXB0aW9uIHRocm93bgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvb2JqZWN0LWludC1h
ZGQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL29iamVjdC1pbnQt
YWRkLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL29iamVjdC1p
bnQtYWRkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhU
TUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvb2JqZWN0LWludC1hZGQuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9v
YmplY3QtaW50LW11bC1hcnJheS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvanMvcmVncmVzcy9vYmplY3QtaW50LW11bC1hcnJheS1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL29iamVjdC1pbnQtbXVsLWFycmF5LWV4cGVj
dGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEwIEBACitKU1JlZ3Jlc3Mvb2JqZWN0
LWludC1tdWwtYXJyYXkKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgbm8g
ZXhjZXB0aW9uIHRocm93bgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvb2JqZWN0LWludC1tdWwt
YXJyYXkuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL29iamVjdC1p
bnQtbXVsLWFycmF5Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNz
L29iamVjdC1pbnQtbXVsLWFycmF5Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMiBA
QAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+
Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Jl
Z3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvb2JqZWN0
LWludC1tdWwtYXJyYXkuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9vYmplY3QtaW50LXN1Yi1hcnJheS1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9vYmplY3QtaW50LXN1Yi1hcnJheS1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL29iamVj
dC1pbnQtc3ViLWFycmF5LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEw
IEBACitKU1JlZ3Jlc3Mvb2JqZWN0LWludC1zdWItYXJyYXkKKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKK1BBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2pzL3Jl
Z3Jlc3Mvb2JqZWN0LWludC1zdWItYXJyYXkuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9qcy9yZWdyZXNzL29iamVjdC1pbnQtc3ViLWFycmF5Lmh0bWwJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9qcy9yZWdyZXNzL29iamVjdC1pbnQtc3ViLWFycmF5Lmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9E
VEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJzY3JpcHQtdGVzdHMvb2JqZWN0LWludC1zdWItYXJyYXkuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9vYmplY3QtaW50LXN1Yi1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9vYmplY3Qt
aW50LXN1Yi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL29iamVjdC1pbnQtc3ViLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDEwIEBACitKU1JlZ3Jlc3Mvb2JqZWN0LWludC1zdWIKKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK1BBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jl
c3Mvb2JqZWN0LWludC1zdWIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL29iamVjdC1pbnQtc3ViLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9qcy9y
ZWdyZXNzL29iamVjdC1pbnQtc3ViLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMiBA
QAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+
Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Jl
Z3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvb2JqZWN0
LWludC1zdWIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdy
ZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVz
dHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvb2JqZWN0LWludC1hZGQtYXJyYXkuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvb2JqZWN0LWludC1h
ZGQtYXJyYXkuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3Njcmlw
dC10ZXN0cy9vYmplY3QtaW50LWFkZC1hcnJheS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDE4IEBACisoZnVuY3Rpb24oKSB7CisgICAgdmFyIHJlc3VsdCA9IDA7CisgICAgdmFyIG0gPSAx
MDA7CisgICAgdmFyIG4gPSAxMDAwMDA7CisgICAgdmFyIGFycmF5ID0gW107CisgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCAxMDA7ICsraSkKKyAgICAgICAgYXJyYXkucHVzaCgxMik7CisgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCBtOyArK2kpIHsKKyAgICAgICAgdmFyIHZhbHVlID0gMDsKKyAgICAg
ICAgdmFyIG8gPSB7dmFsdWVPZjogZnVuY3Rpb24oKSB7IHJldHVybiA0MjsgfX07CisgICAgICAg
IHZhbHVlICs9IG87CisgICAgICAgIHZhciByZXN1bHQgPSAwOworICAgICAgICBmb3IgKHZhciBq
ID0gMDsgaiA8IG47ICsraikKKyAgICAgICAgICAgIHJlc3VsdCArPSBhcnJheVt2YWx1ZV07Cisg
ICAgfQorICAgIGlmIChyZXN1bHQgIT0gbiAqIDEyKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJh
ZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9KSgpOwpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVz
cy9zY3JpcHQtdGVzdHMvb2JqZWN0LWludC1hZGQuanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvb2JqZWN0LWludC1hZGQuanMJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9vYmplY3QtaW50LWFkZC5q
cwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEzIEBACisoZnVuY3Rpb24oKSB7CisgICAgdmFy
IHJlc3VsdCA9IDA7CisgICAgdmFyIG0gPSAxMDAwOworICAgIHZhciBuID0gMTAwMDA7CisgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCBtOyArK2kpIHsKKyAgICAgICAgdmFyIG8gPSB7dmFsdWVPZjog
ZnVuY3Rpb24oKSB7IHJldHVybiA0MjsgfX07CisgICAgICAgIHJlc3VsdCArPSBvOworICAgICAg
ICBmb3IgKHZhciBqID0gMDsgaiA8IG47ICsraikKKyAgICAgICAgICAgIHJlc3VsdCArPSBqOwor
ICAgIH0KKyAgICBpZiAocmVzdWx0ICE9IG0gKiAoNDIgKyBuICogKG4gLSAxKSAvIDIpKQorICAg
ICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9KSgpOwpJbmRleDog
TGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvb2JqZWN0LWludC1tdWwtYXJyYXku
anMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvb2Jq
ZWN0LWludC1tdWwtYXJyYXkuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL3NjcmlwdC10ZXN0cy9vYmplY3QtaW50LW11bC1hcnJheS5qcwkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDE4IEBACisoZnVuY3Rpb24oKSB7CisgICAgdmFyIHJlc3VsdCA9IDA7CisgICAg
dmFyIG0gPSAxMDA7CisgICAgdmFyIG4gPSAxMDAwMDA7CisgICAgdmFyIGFycmF5ID0gW107Cisg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDA7ICsraSkKKyAgICAgICAgYXJyYXkucHVzaCgxMik7
CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtOyArK2kpIHsKKyAgICAgICAgdmFyIHZhbHVlID0g
MTsKKyAgICAgICAgdmFyIG8gPSB7dmFsdWVPZjogZnVuY3Rpb24oKSB7IHJldHVybiA0MjsgfX07
CisgICAgICAgIHZhbHVlICo9IG87CisgICAgICAgIHZhciByZXN1bHQgPSAwOworICAgICAgICBm
b3IgKHZhciBqID0gMDsgaiA8IG47ICsraikKKyAgICAgICAgICAgIHJlc3VsdCArPSBhcnJheVt2
YWx1ZV07CisgICAgfQorICAgIGlmIChyZXN1bHQgIT0gbiAqIDEyKQorICAgICAgICB0aHJvdyAi
RXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9KSgpOwpJbmRleDogTGF5b3V0VGVzdHMv
anMvcmVncmVzcy9zY3JpcHQtdGVzdHMvb2JqZWN0LWludC1zdWItYXJyYXkuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvb2JqZWN0LWludC1zdWIt
YXJyYXkuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10
ZXN0cy9vYmplY3QtaW50LXN1Yi1hcnJheS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE4
IEBACisoZnVuY3Rpb24oKSB7CisgICAgdmFyIHJlc3VsdCA9IDA7CisgICAgdmFyIG0gPSAxMDA7
CisgICAgdmFyIG4gPSAxMDAwMDA7CisgICAgdmFyIGFycmF5ID0gW107CisgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCAxMDA7ICsraSkKKyAgICAgICAgYXJyYXkucHVzaCgxMik7CisgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCBtOyArK2kpIHsKKyAgICAgICAgdmFyIHZhbHVlID0gMDsKKyAgICAgICAg
dmFyIG8gPSB7dmFsdWVPZjogZnVuY3Rpb24oKSB7IHJldHVybiA0MjsgfX07CisgICAgICAgIHZh
bHVlIC09IG87CisgICAgICAgIHZhciByZXN1bHQgPSAwOworICAgICAgICBmb3IgKHZhciBqID0g
MDsgaiA8IG47ICsraikKKyAgICAgICAgICAgIHJlc3VsdCArPSBhcnJheVstdmFsdWVdOworICAg
IH0KKyAgICBpZiAocmVzdWx0ICE9IG4gKiAxMikKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQg
cmVzdWx0OiAiICsgcmVzdWx0OworfSkoKTsKSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
c2NyaXB0LXRlc3RzL29iamVjdC1pbnQtc3ViLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL29iamVjdC1pbnQtc3ViLmpzCShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvb2JqZWN0LWludC1zdWIuanMJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMyBAQAorKGZ1bmN0aW9uKCkgeworICAgIHZhciBy
ZXN1bHQgPSAwOworICAgIHZhciBtID0gMTAwMDsKKyAgICB2YXIgbiA9IDEwMDAwOworICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgbTsgKytpKSB7CisgICAgICAgIHZhciBvID0ge3ZhbHVlT2Y6IGZ1
bmN0aW9uKCkgeyByZXR1cm4gNDI7IH19OworICAgICAgICByZXN1bHQgLT0gbzsKKyAgICAgICAg
Zm9yICh2YXIgaiA9IDA7IGogPCBuOyArK2opCisgICAgICAgICAgICByZXN1bHQgLT0gajsKKyAg
ICB9CisgICAgaWYgKHJlc3VsdCAhPSAtbSAqICg0MiArIG4gKiAobiAtIDEpIC8gMikpCisgICAg
ICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30pKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>278470</attachid>
            <date>2016-05-09 18:57:37 -0700</date>
            <delta_ts>2016-05-09 18:57:37 -0700</delta_ts>
            <desc>performance</desc>
            <filename>report.txt</filename>
            <type>text/plain</type>
            <size>80466</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">QmVuY2htYXJrIHJlcG9ydCBmb3IgU3VuU3BpZGVyLCBMb25nU3BpZGVyLCBWOFNwaWRlciwgT2N0
YW5lLCBLcmFrZW4sIEpTUmVncmVzcywgQXNtQmVuY2gsIGFuZCBDb21wcmVzc2lvbkJlbmNoIG9u
IGhvZG9yIChNYWNCb29rUHJvMTEsMykuCgpWTXMgdGVzdGVkOgoiVGlwT2ZUcmVlIiBhdCAvVm9s
dW1lcy9EYXRhL3ByaW1hcnkvT3BlblNvdXJjZS9CYXNlbGluZS9XZWJLaXRCdWlsZC9SZWxlYXNl
L2pzYwoiVGhpbmdzIiBhdCAvVm9sdW1lcy9EYXRhL3ByaW1hcnkvT3BlblNvdXJjZS9UaGluZ3Mv
V2ViS2l0QnVpbGQvUmVsZWFzZS9qc2MKCkNvbGxlY3RlZCA2IHNhbXBsZXMgcGVyIGJlbmNobWFy
ay9WTSwgd2l0aCA2IFZNIGludm9jYXRpb25zIHBlciBiZW5jaG1hcmsuIEVtaXR0ZWQgYSBjYWxs
IHRvIGdjKCkgYmV0d2VlbiBzYW1wbGUgbWVhc3VyZW1lbnRzLgpVc2VkIDEgYmVuY2htYXJrIGl0
ZXJhdGlvbiBwZXIgVk0gaW52b2NhdGlvbiBmb3Igd2FybS11cC4gVXNlZCB0aGUganNjLXNwZWNp
ZmljIHByZWNpc2VUaW1lKCkgZnVuY3Rpb24gdG8gZ2V0IG1pY3Jvc2Vjb25kLWxldmVsCnRpbWlu
Zy4gUmVwb3J0aW5nIGJlbmNobWFyayBleGVjdXRpb24gdGltZXMgd2l0aCA5NSUgY29uZmlkZW5j
ZSBpbnRlcnZhbHMgaW4gbWlsbGlzZWNvbmRzLgoKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaXBPZlRyZWUgICAgICAgICAgICAgICAgICAg
VGhpbmdzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKU3VuU3BpZGVyOgog
ICAzZC1jdWJlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0Ljk3
OTIrLTAuNDY4MSAgICAgICAgICAgIDQuODY1MystMC4wODU5ICAgICAgICAgIG1pZ2h0IGJlIDEu
MDIzNHggZmFzdGVyCiAgIDNkLW1vcnBoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDUuMDgxNistMC41NjIxICAgICA/ICAgICAgNS4xNDYwKy0wLjYzMjggICAgICAg
ID8gbWlnaHQgYmUgMS4wMTI3eCBzbG93ZXIKICAgM2QtcmF5dHJhY2UgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgNS4xNTkyKy0wLjEwOTAgICAgID8gICAgICA1LjIwODAr
LTAuMTUxNSAgICAgICAgPwogICBhY2Nlc3MtYmluYXJ5LXRyZWVzICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAyLjA0NDIrLTAuMjMzOCAgICAgICAgICAgIDEuOTkxMCstMC4xMzk4ICAg
ICAgICAgIG1pZ2h0IGJlIDEuMDI2N3ggZmFzdGVyCiAgIGFjY2Vzcy1mYW5ua3VjaCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUuNzU1OSstMC4zODY1ICAgICA/ICAgICAgNS43
NTY5Ky0wLjE5NTQgICAgICAgID8KICAgYWNjZXNzLW5ib2R5ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMi41MTUwKy0wLjA5NTkgICAgICAgICAgICAyLjQ1NDcrLTAuMTA1
MyAgICAgICAgICBtaWdodCBiZSAxLjAyNDZ4IGZhc3RlcgogICBhY2Nlc3MtbnNpZXZlICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjk4MDUrLTAuMTE4NiAgICAgPyAgICAg
IDMuMDI0NCstMC4yNjA0ICAgICAgICA/IG1pZ2h0IGJlIDEuMDE0N3ggc2xvd2VyCiAgIGJpdG9w
cy0zYml0LWJpdHMtaW4tYnl0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuMTczMystMC4y
MDM3ICAgICAgICAgICAgMS4xNDkzKy0wLjA5MzMgICAgICAgICAgbWlnaHQgYmUgMS4wMjEweCBm
YXN0ZXIKICAgYml0b3BzLWJpdHMtaW4tYnl0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMi42NTIwKy0wLjEwOTMgICAgID8gICAgICAyLjY2NzQrLTAuMDgyMiAgICAgICAgPwogICBi
aXRvcHMtYml0d2lzZS1hbmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjA3MDUr
LTAuMTUwMiAgICAgICAgICAgIDEuOTczNystMC4wODI1ICAgICAgICAgIG1pZ2h0IGJlIDEuMDQ5
MHggZmFzdGVyCiAgIGJpdG9wcy1uc2lldmUtYml0cyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDIuOTE4NystMC4xMjU4ICAgICAgICAgICAgMi44OTA5Ky0wLjEwNDEgICAgICAgIAog
ICBjb250cm9sZmxvdy1yZWN1cnNpdmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjM0
OTIrLTAuMjczMSAgICAgPyAgICAgIDIuNTA2MCstMC42MjI5ICAgICAgICA/IG1pZ2h0IGJlIDEu
MDY2OHggc2xvd2VyCiAgIGNyeXB0by1hZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDQuMzc3MCstMC4xNjg3ICAgICA/ICAgICAgNC4zOTc0Ky0wLjUyMzcgICAgICAg
ID8KICAgY3J5cHRvLW1kNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Mi40MzkzKy0wLjIwNzIgICAgICAgICAgICAyLjQxNDArLTAuMTM0OSAgICAgICAgICBtaWdodCBi
ZSAxLjAxMDV4IGZhc3RlcgogICBjcnlwdG8tc2hhMSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAyLjE0NzgrLTAuMDM0NyAgICAgPyAgICAgIDIuNDgwNistMC40ODA1ICAg
ICAgICA/IG1pZ2h0IGJlIDEuMTU1MHggc2xvd2VyCiAgIGRhdGUtZm9ybWF0LXRvZnRlICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYuODI3MCstMC4yOTE0ICAgICAgICAgICAgNi43
MTI2Ky0wLjUxMzkgICAgICAgICAgbWlnaHQgYmUgMS4wMTcweCBmYXN0ZXIKICAgZGF0ZS1mb3Jt
YXQteHBhcmIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC42ODY3Ky0wLjMxODUg
ICAgICAgICAgICA0LjY2MjErLTAuMjIwMiAgICAgICAgCiAgIG1hdGgtY29yZGljICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuODA0OSstMC4wMzY3ICAgICA/ICAgICAg
My4xNDYwKy0wLjc3ODQgICAgICAgID8gbWlnaHQgYmUgMS4xMjE2eCBzbG93ZXIKICAgbWF0aC1w
YXJ0aWFsLXN1bXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy42MzMzKy0wLjEy
MzEgICAgICAgICAgICAzLjYwNzArLTAuMDUxNCAgICAgICAgCiAgIG1hdGgtc3BlY3RyYWwtbm9y
bSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuOTU5NystMC4xNDkyICAgICAgICAg
ICAgMS45NDA4Ky0wLjA3OTEgICAgICAgIAogICByZWdleHAtZG5hICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA2LjUzNjYrLTAuMjgxNiAgICAgPyAgICAgIDYuNjQ5OSst
MC4zNzUzICAgICAgICA/IG1pZ2h0IGJlIDEuMDE3M3ggc2xvd2VyCiAgIHN0cmluZy1iYXNlNjQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuNzgzMCstMC40MzY0ICAgICAg
ICAgICAgNC4xOTM2Ky0wLjI3ODEgICAgICAgICAgbWlnaHQgYmUgMS4xNDA2eCBmYXN0ZXIKICAg
c3RyaW5nLWZhc3RhICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNS41MzAz
Ky0wLjExODAgICAgID8gICAgICA1LjcwNzcrLTAuMzY4NyAgICAgICAgPyBtaWdodCBiZSAxLjAz
MjF4IHNsb3dlcgogICBzdHJpbmctdGFnY2xvdWQgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA4LjU4MzArLTAuMzQ5MiAgICAgICAgICAgIDguNTU5MistMC4yOTA3ICAgICAgICAK
ICAgc3RyaW5nLXVucGFjay1jb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMC4y
MDM0Ky0zLjcwNTMgICAgICAgICAgIDE4Ljc5ODYrLTEuNjUyNSAgICAgICAgICBtaWdodCBiZSAx
LjA3NDd4IGZhc3RlcgogICBzdHJpbmctdmFsaWRhdGUtaW5wdXQgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA0LjMyNDgrLTAuMTkxMyAgICAgXiAgICAgIDQuMDM0MSstMC4wNzQ1ICAgICAg
ICBeIGRlZmluaXRlbHkgMS4wNzIxeCBmYXN0ZXIKCiAgIDxhcml0aG1ldGljPiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuNTU4MystMC4xNzAxICAgICAgICAgICAgNC40
OTc2Ky0wLjA5ODYgICAgICAgICAgbWlnaHQgYmUgMS4wMTM1eCBmYXN0ZXIKCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGlwT2ZUcmVlICAg
ICAgICAgICAgICAgICAgIFRoaW5ncyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgCkxvbmdTcGlkZXI6CiAgIDNkLWN1YmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA4MzAuNDIxMSstMjguMzcxMCAgICAhICAgIDkwMC41NDIwKy0yNS4xNDc5ICAg
ICAgICEgZGVmaW5pdGVseSAxLjA4NDR4IHNsb3dlcgogICAzZC1tb3JwaCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgNjIyLjM1MTErLTE0LjU3NjQgICAgPyAgICA2NDYu
Nzk1OSstMTUuNzQ3MiAgICAgICA/IG1pZ2h0IGJlIDEuMDM5M3ggc2xvd2VyCiAgIDNkLXJheXRy
YWNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1MjUuOTkyMystMzUuMTc1
MCAgICAgICAgIDUxNS4yODQ1Ky0xMi44MDc4ICAgICAgICAgbWlnaHQgYmUgMS4wMjA4eCBmYXN0
ZXIKICAgYWNjZXNzLWJpbmFyeS10cmVlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDkx
NC4wNTc4Ky01MC4wNjg5ICAgICAgICAgODY4LjI5NzArLTU0LjkyMjYgICAgICAgICBtaWdodCBi
ZSAxLjA1Mjd4IGZhc3RlcgogICBhY2Nlc3MtZmFubmt1Y2ggICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMjUwLjQyOTYrLTE2LjYwODggICAgPyAgICAyNTYuODA5NystNy4yMDE2ICAg
ICAgICA/IG1pZ2h0IGJlIDEuMDI1NXggc2xvd2VyCiAgIGFjY2Vzcy1uYm9keSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA1NjMuMjYxMSstMjMuMTQwOCAgICAgICAgIDU1OC44
MDg4Ky0yNS43NzYxICAgICAgIAogICBhY2Nlc3MtbnNpZXZlICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMzA3Ljg1NDUrLTQuNTY3NiAgICAgISAgICAzMjEuODI3OCstOS4zNzA4
ICAgICAgICAhIGRlZmluaXRlbHkgMS4wNDU0eCBzbG93ZXIKICAgYml0b3BzLTNiaXQtYml0cy1p
bi1ieXRlICAgICAgICAgICAgICAgICAgICAgICAgICAzNS4yMDA5Ky0zLjAwOTQgICAgID8gICAg
IDM1LjMyNDMrLTIuMDkzNSAgICAgICAgPwogICBiaXRvcHMtYml0cy1pbi1ieXRlICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMTA3LjkxMjQrLTYuMTA5MyAgICAgPyAgICAxMDkuMDM3NCst
NS40MDcwICAgICAgICA/IG1pZ2h0IGJlIDEuMDEwNHggc2xvd2VyCiAgIGJpdG9wcy1uc2lldmUt
Yml0cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0MDcuMjc2MSstOS45MDI3ICAgICA/
ICAgIDQxMy42NjY1Ky0zMy4xMzYzICAgICAgID8gbWlnaHQgYmUgMS4wMTU3eCBzbG93ZXIKICAg
Y29udHJvbGZsb3ctcmVjdXJzaXZlICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUxNC4yNTYx
Ky0yNi40MjUwICAgICAgICAgNTA1LjI1MTMrLTIwLjExNTcgICAgICAgICBtaWdodCBiZSAxLjAx
Nzh4IGZhc3RlcgogICBjcnlwdG8tYWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgNjAzLjY1NzUrLTI0Ljk5MjkgICAgPyAgICA2MTguODExNSstMjMuMzgyNyAgICAgICA/
IG1pZ2h0IGJlIDEuMDI1MXggc2xvd2VyCiAgIGNyeXB0by1tZDUgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA1MzUuNTM0OSstMjkuMTQzOSAgICA/ICAgIDU2OC4wNzE5Ky00
MS41MDg1ICAgICAgID8gbWlnaHQgYmUgMS4wNjA4eCBzbG93ZXIKICAgY3J5cHRvLXNoYTEgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcxNC40NjU3Ky00NC4yOTkwICAgICAg
ICAgNzA3LjcxMjYrLTM0LjYxNzkgICAgICAgCiAgIGRhdGUtZm9ybWF0LXRvZnRlICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA1MzMuOTk0OCstMjIuNDM1MSAgICA/ICAgIDU3OC4xMDQw
Ky0zMi43Njc2ICAgICAgID8gbWlnaHQgYmUgMS4wODI2eCBzbG93ZXIKICAgZGF0ZS1mb3JtYXQt
eHBhcmIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDY2Mi4zMTExKy0xMy4zNjU1ICAg
ID8gICAgNjY2LjAzODcrLTMyLjM2NjMgICAgICAgPwogICBoYXNoLW1hcCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMTU1LjEyMDIrLTIuMDMwMSAgICAgICAgICAxNTMu
MzQ1NSstNS4wODUxICAgICAgICAgIG1pZ2h0IGJlIDEuMDExNnggZmFzdGVyCiAgIG1hdGgtY29y
ZGljICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0NjEuNTEwNCstMTIuMTQ4
MSAgICA/ICAgIDQ3Ny44NTM5Ky0yNi42MTMzICAgICAgID8gbWlnaHQgYmUgMS4wMzU0eCBzbG93
ZXIKICAgbWF0aC1wYXJ0aWFsLXN1bXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMy
MS44NDMxKy0yNC42NzExICAgICAgICAgMzEzLjE0MTMrLTIyLjE3MjkgICAgICAgICBtaWdodCBi
ZSAxLjAyNzh4IGZhc3RlcgogICBtYXRoLXNwZWN0cmFsLW5vcm0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgNTg1LjI1NjArLTkuMDMyNCAgICAgICAgICA1NzQuNzk0MCstMTIuNjY5NyAg
ICAgICAgIG1pZ2h0IGJlIDEuMDE4MnggZmFzdGVyCiAgIHN0cmluZy1iYXNlNjQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAzNTkuMjYzNSstNi42ODU1ICAgICA/ICAgIDM2Ni4x
OTA2Ky03LjI0NzQgICAgICAgID8gbWlnaHQgYmUgMS4wMTkzeCBzbG93ZXIKICAgc3RyaW5nLWZh
c3RhICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDM1OS4zOTc0Ky0xNC4wNzg4
ICAgID8gICAgMzgxLjA3MTArLTM5LjEzMTkgICAgICAgPyBtaWdodCBiZSAxLjA2MDN4IHNsb3dl
cgogICBzdHJpbmctdGFnY2xvdWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjAx
Ljc0MjErLTExLjk4MTYgICAgICAgICAxODkuMjMxNSstMTQuMjI4OCAgICAgICAgIG1pZ2h0IGJl
IDEuMDY2MXggZmFzdGVyCgogICA8Z2VvbWV0cmljPiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMzgxLjg3MDArLTYuMDk5OCAgICAgPyAgICAzODYuMzE4MystNC45Njk3ICAg
ICAgICA/IG1pZ2h0IGJlIDEuMDExNnggc2xvd2VyCgogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRpcE9mVHJlZSAgICAgICAgICAgICAgICAg
ICBUaGluZ3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIApWOFNwaWRlcjoK
ICAgY3J5cHRvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzOC45
MzgwKy0zLjMwOTkgICAgID8gICAgIDM5LjI5ODMrLTMuODk0OCAgICAgICAgPwogICBkZWx0YWJs
dWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDU1LjU4NzcrLTguNTk0
OCAgICAgICAgICAgNTAuMjQwMistMS42NzEwICAgICAgICAgIG1pZ2h0IGJlIDEuMTA2NHggZmFz
dGVyCiAgIGVhcmxleS1ib3llciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
MzguODgyMCstMS4wMzI4ICAgICA/ICAgICAzOC44ODYyKy0wLjg0ODEgICAgICAgID8KICAgcmF5
dHJhY2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMC42MDIwKy0w
LjQzMzYgICAgID8gICAgIDIxLjQwNjArLTEuNDc2OSAgICAgICAgPyBtaWdodCBiZSAxLjAzOTB4
IHNsb3dlcgogICByZWdleHAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDU3LjIyNzUrLTMuMTU4MSAgICAgPyAgICAgNTguMTAyNistMy4yNDMyICAgICAgICA/IG1p
Z2h0IGJlIDEuMDE1M3ggc2xvd2VyCiAgIHJpY2hhcmRzICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgNDMuNTQ1MCstMy43OTI0ICAgICA/ICAgICA0NS4zNzE5Ky05Ljcy
MjggICAgICAgID8gbWlnaHQgYmUgMS4wNDIweCBzbG93ZXIKICAgc3BsYXkgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyOS40ODIzKy0wLjk1NzkgICAgICAgICAg
IDI5LjE3MjkrLTAuNzkzNCAgICAgICAgICBtaWdodCBiZSAxLjAxMDZ4IGZhc3RlcgoKICAgPGdl
b21ldHJpYz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzOC41MDcxKy0w
Ljc0MTAgICAgICAgICAgIDM4LjQzMjArLTAuOTc0NiAgICAgICAgICBtaWdodCBiZSAxLjAwMjB4
IGZhc3RlcgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBUaXBPZlRyZWUgICAgICAgICAgICAgICAgICAgVGhpbmdzICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAKT2N0YW5lOgogICBlbmNyeXB0ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuMTcwNjYrLTAuMDA3MDggICAgICAgICAgMC4x
NjY5MystMC4wMDcxMiAgICAgICAgIG1pZ2h0IGJlIDEuMDIyM3ggZmFzdGVyCiAgIGRlY3J5cHQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy4wMDQyMCstMC4wNjk3
MiAgICA/ICAgICAzLjA1NTY5Ky0wLjE4MTQ0ICAgICAgID8gbWlnaHQgYmUgMS4wMTcxeCBzbG93
ZXIKICAgZGVsdGFibHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4MiAgICAgICAw
LjEzMTg5Ky0wLjAwNjE3ICAgICAgICAgIDAuMTI5MjMrLTAuMDA1MjAgICAgICAgICBtaWdodCBi
ZSAxLjAyMDZ4IGZhc3RlcgogICBlYXJsZXkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDAuMzAzMzYrLTAuMDEyNTcgICAgPyAgICAgMC4zMDM3MystMC4wMTcyMSAg
ICAgICA/CiAgIGJveWVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgNS4zNDc3MystMC4yOTc4MSAgICAgICAgICA1LjI3NjU2Ky0wLjAzNDgzICAgICAgICAgbWln
aHQgYmUgMS4wMTM1eCBmYXN0ZXIKICAgbmF2aWVyLXN0b2tlcyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB4MiAgICAgICA1LjM0MTgwKy0wLjE5NTk2ICAgICAgICAgIDUuMjc5MzIrLTAuMTI0
ODkgICAgICAgICBtaWdodCBiZSAxLjAxMTh4IGZhc3RlcgogICByYXl0cmFjZSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHgyICAgICAgIDAuODQ4NzkrLTAuMDQxNjkgICAgICAgICAg
MC44MzIzNCstMC4wMzc4NiAgICAgICAgIG1pZ2h0IGJlIDEuMDE5OHggZmFzdGVyCiAgIHJpY2hh
cmRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDIgICAgICAgMC4wOTI0MCstMC4w
MDUxOCAgICAgICAgICAwLjA4NzEyKy0wLjAwNzQ4ICAgICAgICAgbWlnaHQgYmUgMS4wNjA3eCBm
YXN0ZXIKICAgc3BsYXkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4MiAgICAg
ICAwLjM1NzQ5Ky0wLjAwMzE3ICAgICAgICAgIDAuMzU0MjkrLTAuMDA1ODMgICAgICAgCiAgIHJl
Z2V4cCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDIgICAgICAxNy4wMTk3MCst
MC43OTk0NyAgICA/ICAgIDE3Ljg1Njc0Ky0wLjM4NjYyICAgICAgID8gbWlnaHQgYmUgMS4wNDky
eCBzbG93ZXIKICAgcGRmanMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4MiAg
ICAgIDM4LjMzMTUxKy0yLjI4ODI1ICAgID8gICAgMzguNjMxMjkrLTEuMzMxODUgICAgICAgPwog
ICBtYW5kcmVlbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgyICAgICAgNDUuMDA5
NDYrLTMuNDA2ODEgICAgPyAgICA0NS42ODM5NystMy4wMDY5NCAgICAgICA/IG1pZ2h0IGJlIDEu
MDE1MHggc2xvd2VyCiAgIGdiZW11ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
eDIgICAgICAyOS42MzgyNSstMi4wNTEzMyAgICAgICAgIDI4Ljg1MDcxKy0wLjcxNDUwICAgICAg
ICAgbWlnaHQgYmUgMS4wMjczeCBmYXN0ZXIKICAgY2xvc3VyZSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAwLjU3OTczKy0wLjAyNjk1ICAgICAgICAgIDAuNTU5Njgr
LTAuMDA4NzYgICAgICAgICBtaWdodCBiZSAxLjAzNTh4IGZhc3RlcgogICBqcXVlcnkgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcuMTQwNDIrLTAuNDY2NzIgICAg
ICAgICAgNy4wNDkzMCstMC4zNDY0OSAgICAgICAgIG1pZ2h0IGJlIDEuMDEyOXggZmFzdGVyCiAg
IGJveDJkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDIgICAgICAgOS43Njkx
NystMC4zMjk2NyAgICA/ICAgICA5Ljg2MTg1Ky0wLjIwMTM5ICAgICAgID8KICAgemxpYiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4MiAgICAgMzY0LjQ0MTUwKy0xMy42MTYy
NiAgICAgICAzNjMuNjI4ODcrLTIzLjY0OTUyICAgICAgCiAgIHR5cGVzY3JpcHQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgeDIgICAgIDYxNy40OTk4NCstMTguOTI5MjMgICAgICAgNjE1
LjQ1NTEyKy01Ljk5MDg2ICAgICAgIAoKICAgPGdlb21ldHJpYz4gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA1LjI4MDY3Ky0wLjA0NTU5ICAgICAgICAgIDUuMjQ0NzUrLTAu
MDE4OTkgICAgICAgICBtaWdodCBiZSAxLjAwNjh4IGZhc3RlcgoKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaXBPZlRyZWUgICAgICAgICAg
ICAgICAgICAgVGhpbmdzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKS3Jh
a2VuOgogICBhaS1hc3RhciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA5Mi41MDgrLTIuODI0ICAgICAgPyAgICAgIDkzLjkyNistMy44NzQgICAgICAgICA/IG1pZ2h0
IGJlIDEuMDE1M3ggc2xvd2VyCiAgIGF1ZGlvLWJlYXQtZGV0ZWN0aW9uICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDQxLjQzNistNi4yMzkgICAgICAgICAgICAgMzkuNTU3Ky0yLjQ2OCAg
ICAgICAgICAgbWlnaHQgYmUgMS4wNDc1eCBmYXN0ZXIKICAgYXVkaW8tZGZ0ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMDEuODE2Ky03LjIwOCAgICAgICAgICAgIDEw
MC4zMDQrLTQuNDgxICAgICAgICAgICBtaWdodCBiZSAxLjAxNTF4IGZhc3RlcgogICBhdWRpby1m
ZnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzMS41MzUrLTIuMjYy
ICAgICAgPyAgICAgIDMyLjMyOSstMS41MzAgICAgICAgICA/IG1pZ2h0IGJlIDEuMDI1Mnggc2xv
d2VyCiAgIGF1ZGlvLW9zY2lsbGF0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDQ5LjY4OSstMy43NTYgICAgICA/ICAgICAgNTAuMTI3Ky0zLjQ2MCAgICAgICAgID8KICAgaW1h
Z2luZy1kYXJrcm9vbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNjMuNDc4Ky00
LjcwMiAgICAgID8gICAgICA2NC42MTcrLTMuMTIwICAgICAgICAgPyBtaWdodCBiZSAxLjAxNzl4
IHNsb3dlcgogICBpbWFnaW5nLWRlc2F0dXJhdGUgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA1MC4xMzQrLTQuNzU4ICAgICAgICAgICAgIDQ5Ljc3OSstNS45MzMgICAgICAgICAKICAg
aW1hZ2luZy1nYXVzc2lhbi1ibHVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNjUuMDM2
Ky03LjQ1OSAgICAgID8gICAgICA2OC41OTArLTcuMjI1ICAgICAgICAgPyBtaWdodCBiZSAxLjA1
NDZ4IHNsb3dlcgogICBqc29uLXBhcnNlLWZpbmFuY2lhbCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAzNS45OTcrLTIuODY1ICAgICAgPyAgICAgIDM2LjQzOCstMy40NDUgICAgICAgICA/
IG1pZ2h0IGJlIDEuMDEyMnggc2xvd2VyCiAgIGpzb24tc3RyaW5naWZ5LXRpbmRlcmJveCAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDIzLjU5NSstMS43MDAgICAgICA/ICAgICAgMjMuOTM2Ky0x
LjQ2MCAgICAgICAgID8gbWlnaHQgYmUgMS4wMTQ1eCBzbG93ZXIKICAgc3RhbmZvcmQtY3J5cHRv
LWFlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDIuOTAzKy0zLjM2NyAgICAgICAg
ICAgICA0MS4xNDcrLTQuOTcwICAgICAgICAgICBtaWdodCBiZSAxLjA0Mjd4IGZhc3RlcgogICBz
dGFuZm9yZC1jcnlwdG8tY2NtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzMy42Nzcr
LTIuOTY4ICAgICAgPyAgICAgIDM0Ljg3MystMS44ODIgICAgICAgICA/IG1pZ2h0IGJlIDEuMDM1
NXggc2xvd2VyCiAgIHN0YW5mb3JkLWNyeXB0by1wYmtkZjIgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDk5LjAzNCstMy43ODAgICAgICAgICAgICAgOTYuNzI2Ky0zLjYwNiAgICAgICAgICAg
bWlnaHQgYmUgMS4wMjM5eCBmYXN0ZXIKICAgc3RhbmZvcmQtY3J5cHRvLXNoYTI1Ni1pdGVyYXRp
dmUgICAgICAgICAgICAgICAgICAgMzguMjE5Ky0yLjU3NyAgICAgID8gICAgICAzOC40ODgrLTIu
MzM5ICAgICAgICAgPwoKICAgPGFyaXRobWV0aWM+ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgNTQuOTMzKy0xLjgyMSAgICAgID8gICAgICA1NS4wNjArLTAuNTc5ICAgICAg
ICAgPyBtaWdodCBiZSAxLjAwMjN4IHNsb3dlcgoKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaXBPZlRyZWUgICAgICAgICAgICAgICAgICAg
VGhpbmdzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKSlNSZWdyZXNzOgog
ICBhYmMtZm9yd2FyZC1sb29wLWVxdWFsICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI1LjQz
ODkrLTEuNDczOCAgICAgPyAgICAgMjYuMjE4OCstMi42MDExICAgICAgICA/IG1pZ2h0IGJlIDEu
MDMwN3ggc2xvd2VyCiAgIGFiYy1wb3N0Zml4LWJhY2t3YXJkLWxvb3AgICAgICAgICAgICAgICAg
ICAgICAgICAgMzEuMDYxMistMS43NDUyICAgICAgICAgICAzMC45NzY2Ky0xLjI4NDQgICAgICAg
IAogICBhYmMtc2ltcGxlLWJhY2t3YXJkLWxvb3AgICAgICAgICAgICAgICAgICAgICAgICAgIDI2
LjkwNjUrLTIuNzkxOSAgICAgICAgICAgMjYuMDE3NystMy4xMzU3ICAgICAgICAgIG1pZ2h0IGJl
IDEuMDM0MnggZmFzdGVyCiAgIGFiYy1zaW1wbGUtZm9yd2FyZC1sb29wICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMjUuNzkxNystMi4xNjEwICAgICAgICAgICAyNC41NDAyKy0xLjU2MTQgICAg
ICAgICAgbWlnaHQgYmUgMS4wNTEweCBmYXN0ZXIKICAgYWJjLXNraXBweS1sb29wICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAyMS4wMzY4Ky0xLjQzMjkgICAgID8gICAgIDIyLjM5
ODMrLTEuODkwNSAgICAgICAgPyBtaWdodCBiZSAxLjA2NDd4IHNsb3dlcgogICBhYnMtYm9vbGVh
biAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjE5NTQrLTAuMDQ0OCAg
ICAgICAgICAgIDIuMTg3MCstMC4wNzcyICAgICAgICAKICAgYWRhcHQtdG8tZG91YmxlLWRpdmlk
ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNC42MTk5Ky0wLjcwOTkgICAgID8gICAgIDE0
LjgxMDgrLTAuNzc0MyAgICAgICAgPyBtaWdodCBiZSAxLjAxMzF4IHNsb3dlcgogICBhbGlhc2Vk
LWFyZ3VtZW50cy1nZXRieXZhbCAgICAgICAgICAgICAgICAgICAgICAgICAxLjA3MjArLTAuMDg2
NyAgICAgPyAgICAgIDEuMDg1MistMC4xMDQ4ICAgICAgICA/IG1pZ2h0IGJlIDEuMDEyNHggc2xv
d2VyCiAgIGFsbG9jYXRlLWJpZy1vYmplY3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDIuMDI3OCstMC4xNTAwICAgICA/ICAgICAgMi4xMTU1Ky0wLjE5OTQgICAgICAgID8gbWlnaHQg
YmUgMS4wNDMyeCBzbG93ZXIKICAgYXJndW1lbnRzLW5hbWVkLWFuZC1yZWZsZWN0aXZlICAgICAg
ICAgICAgICAgICAgICAgNy43MTcwKy0wLjM4MTEgICAgID8gICAgICA3Ljg0MzErLTAuMzg4NyAg
ICAgICAgPyBtaWdodCBiZSAxLjAxNjN4IHNsb3dlcgogICBhcmd1bWVudHMtb3V0LW9mLWJvdW5k
cyAgICAgICAgICAgICAgICAgICAgICAgICAgICA2LjQ4NTArLTAuMTQyNiAgICAgISAgICAgMTAu
MDQ5NystMC41MjA1ICAgICAgICAhIGRlZmluaXRlbHkgMS41NDk3eCBzbG93ZXIKICAgYXJndW1l
bnRzLXN0cmljdC1tb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNi41Njg0Ky0xLjM3
OTUgICAgID8gICAgIDE4LjA4OTArLTMuNTM2NiAgICAgICAgPyBtaWdodCBiZSAxLjA5MTh4IHNs
b3dlcgogICBhcmd1bWVudHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA2Ljg0OTYrLTAuMzM2NyAgICAgICAgICAgIDYuODA5NystMC4yNTQ5ICAgICAgICAKICAgYXJp
dHktbWlzbWF0Y2gtaW5saW5pbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC43ODk1Ky0w
LjA2NTYgICAgICAgICAgICAwLjc4MjMrLTAuMDQ0NiAgICAgICAgCiAgIGFycmF5LWFjY2Vzcy1w
b2x5bW9ycGhpYy1zdHJ1Y3R1cmUgICAgICAgICAgICAgICAgIDMuNjk2NystMC4yNzM3ICAgICA/
ICAgICAgMy44NzUyKy0wLjQzMTkgICAgICAgID8gbWlnaHQgYmUgMS4wNDgzeCBzbG93ZXIKICAg
YXJyYXktbm9uYXJyYXktcG9seW1vcmhwaWMtYWNjZXNzICAgICAgICAgICAgICAgICAyMy4zMzcz
Ky0zLjY5NTMgICAgICAgICAgIDIyLjA0NDYrLTEuODM4NSAgICAgICAgICBtaWdodCBiZSAxLjA1
ODZ4IGZhc3RlcgogICBhcnJheS1wcm90b3R5cGUtZXZlcnkgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDc3Ljg0ODYrLTEwLjQ5NDYgICAgICAgICAgNzQuMDc4MCstMy41MjQ1ICAgICAgICAg
IG1pZ2h0IGJlIDEuMDUwOXggZmFzdGVyCiAgIGFycmF5LXByb3RvdHlwZS1mb3JFYWNoICAgICAg
ICAgICAgICAgICAgICAgICAgICAgNzIuNDIyNystMi41NTMyICAgICA/ICAgICA3NS45NzU0Ky02
LjI0NzQgICAgICAgID8gbWlnaHQgYmUgMS4wNDkxeCBzbG93ZXIKICAgYXJyYXktcHJvdG90eXBl
LW1hcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4MC40NzEyKy00LjA5NTEgICAgICAg
ICAgIDc3LjgxNjQrLTMuNzE0NCAgICAgICAgICBtaWdodCBiZSAxLjAzNDF4IGZhc3RlcgogICBh
cnJheS1wcm90b3R5cGUtcmVkdWNlICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcwLjc4NDEr
LTIuMTgwOCAgICAgPyAgICAgNzMuNDE2MistNC41MDE1ICAgICAgICA/IG1pZ2h0IGJlIDEuMDM3
Mnggc2xvd2VyCiAgIGFycmF5LXByb3RvdHlwZS1yZWR1Y2VSaWdodCAgICAgICAgICAgICAgICAg
ICAgICAgOTcuMDYyNSstNC4zNDA3ICAgICA/ICAgICA5Ny42NzA2Ky0zLjIyMzIgICAgICAgID8K
ICAgYXJyYXktcHJvdG90eXBlLXNvbWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3NC4z
ODA1Ky0yLjYyNzYgICAgID8gICAgIDc0LjY3MzIrLTIuOTI0OCAgICAgICAgPwogICBhcnJheS1z
cGxpY2UtY29udGlndW91cyAgICAgICAgICAgICAgICAgICAgICAgICAgIDIyLjI1MTIrLTEuMzI5
NiAgICAgPyAgICAgMjMuODUwMSstMS42NzAyICAgICAgICA/IG1pZ2h0IGJlIDEuMDcxOXggc2xv
d2VyCiAgIGFycmF5LXdpdGgtZG91YmxlLWFkZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDMuMTk3NistMC4wNzMyICAgICA/ICAgICAgMy4yMzIwKy0wLjI3MjUgICAgICAgID8gbWlnaHQg
YmUgMS4wMTA4eCBzbG93ZXIKICAgYXJyYXktd2l0aC1kb3VibGUtaW5jcmVtZW50ICAgICAgICAg
ICAgICAgICAgICAgICAgMi43ODUxKy0wLjIyNjUgICAgICAgICAgICAyLjcxNjUrLTAuMTIyNSAg
ICAgICAgICBtaWdodCBiZSAxLjAyNTN4IGZhc3RlcgogICBhcnJheS13aXRoLWRvdWJsZS1tdWwt
YWRkICAgICAgICAgICAgICAgICAgICAgICAgICAzLjcxNDkrLTAuMjAyMCAgICAgICAgICAgIDMu
NTQ5NystMC4wNTE4ICAgICAgICAgIG1pZ2h0IGJlIDEuMDQ2NXggZmFzdGVyCiAgIGFycmF5LXdp
dGgtZG91YmxlLXN1bSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuMTA1NystMC44MzY2
ICAgICAgICAgICAgMi42ODI4Ky0wLjE5NjggICAgICAgICAgbWlnaHQgYmUgMS4xNTc2eCBmYXN0
ZXIKICAgYXJyYXktd2l0aC1pbnQzMi1hZGQtc3ViICAgICAgICAgICAgICAgICAgICAgICAgICAg
NC44OTc1Ky0wLjI4MTQgICAgID8gICAgICA0Ljk3ODErLTAuNzgwMCAgICAgICAgPyBtaWdodCBi
ZSAxLjAxNjV4IHNsb3dlcgogICBhcnJheS13aXRoLWludDMyLW9yLWRvdWJsZS1zdW0gICAgICAg
ICAgICAgICAgICAgICAzLjA4MTArLTAuMzYyNyAgICAgICAgICAgIDIuNzA5MystMC4wOTk2ICAg
ICAgICAgIG1pZ2h0IGJlIDEuMTM3MnggZmFzdGVyCiAgIEFycmF5QnVmZmVyLURhdGFWaWV3LWFs
bG9jLWxhcmdlLWxvbmctbGl2ZWQgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAzOS4yMzQwKy0wLjg2MjEgICAgID8gICAgIDM5LjQ2NDgrLTEu
MjA1NSAgICAgICAgPwogICBBcnJheUJ1ZmZlci1EYXRhVmlldy1hbGxvYy1sb25nLWxpdmVkICAg
ICAgICAgICAgIDE1Ljk3NjgrLTIuNzg0NyAgICAgPyAgICAgMTUuOTk3OSstMS41MTA0ICAgICAg
ICA/CiAgIEFycmF5QnVmZmVyLUludDMyQXJyYXktYnl0ZU9mZnNldCAgICAgICAgICAgICAgICAg
IDQuMDAyOSstMC4yNTAyICAgICAgICAgICAgMy44MDI1Ky0wLjE2MDkgICAgICAgICAgbWlnaHQg
YmUgMS4wNTI3eCBmYXN0ZXIKICAgQXJyYXlCdWZmZXItSW50OEFycmF5LWFsbG9jLWxhcmdlLWxv
bmctbGl2ZWQgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA0MS4wNjQ2Ky0zLjIxOTYgICAgICAgICAgIDQxLjAyMjYrLTIuNjUxNSAgICAgICAg
CiAgIEFycmF5QnVmZmVyLUludDhBcnJheS1hbGxvYy1sb25nLWxpdmVkLWJ1ZmZlciAgIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIwLjM1OTkr
LTAuNTc4MCAgICAgPyAgICAgMjIuNzMzMCstMi44NzIyICAgICAgICA/IG1pZ2h0IGJlIDEuMTE2
Nnggc2xvd2VyCiAgIEFycmF5QnVmZmVyLUludDhBcnJheS1hbGxvYy1sb25nLWxpdmVkICAgICAg
ICAgICAgMTYuMTMxNistMi43MzE4ICAgICAgICAgICAxNC44NTczKy0xLjQ2MDkgICAgICAgICAg
bWlnaHQgYmUgMS4wODU4eCBmYXN0ZXIKICAgQXJyYXlCdWZmZXItSW50OEFycmF5LWFsbG9jICAg
ICAgICAgICAgICAgICAgICAgICAxMi44NzQxKy0wLjQ2MTcgICAgID8gICAgIDEzLjA2MjMrLTEu
Mjc5NSAgICAgICAgPyBtaWdodCBiZSAxLjAxNDZ4IHNsb3dlcgogICBhcnJvd2Z1bmN0aW9uLWNh
bGwtaW4tY2xhc3MtY29uc3RydWN0b3IgICAgICAgICAgIDcwLjU2NDUrLTUuMTc3NCAgICAgICAg
ICAgNjkuODkyMystNy4zNTg0ICAgICAgICAKICAgYXJyb3dmdW5jdGlvbi1jYWxsLWluLWNsYXNz
LW1ldGhvZCAgICAgICAgICAgICAgICAxNi4zMzIwKy0wLjQxMzUgICAgID8gICAgIDE3LjU0NTEr
LTIuMzkyOSAgICAgICAgPyBtaWdodCBiZSAxLjA3NDN4IHNsb3dlcgogICBhcnJvd2Z1bmN0aW9u
LWNhbGwtaW4tZnVuY3Rpb24gICAgICAgICAgICAgICAgICAgIDEyLjM1NzIrLTIuNjExNCAgICAg
ICAgICAgMTEuMjcyNystMC41MTEyICAgICAgICAgIG1pZ2h0IGJlIDEuMDk2MnggZmFzdGVyCiAg
IGFycm93ZnVuY3Rpb24tY2FsbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDkuNjg1
NSstMC43NDcxICAgICAgICAgICAgOS42NDY3Ky0xLjQ5MzQgICAgICAgIAogICBhc21qc19ib29s
X2J1ZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3LjU2NzIrLTAuMTU3MiAg
ICAgPyAgICAgIDcuNjk0MSstMC4yMzgxICAgICAgICA/IG1pZ2h0IGJlIDEuMDE2OHggc2xvd2Vy
CiAgIGFzc2lnbi1jdXN0b20tc2V0dGVyLXBvbHltb3JwaGljICAgICAgICAgICAgICAgICAgIDIu
NTY2MistMC4xNDk3ICAgICA/ICAgICAgMi42OTc4Ky0wLjE3MjYgICAgICAgID8gbWlnaHQgYmUg
MS4wNTEzeCBzbG93ZXIKICAgYXNzaWduLWN1c3RvbS1zZXR0ZXIgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgNC4zNjQxKy0wLjg4MDAgICAgICAgICAgICAzLjkzMzcrLTAuMTM5NSAgICAg
ICAgICBtaWdodCBiZSAxLjEwOTR4IGZhc3RlcgogICBiYXNpYy1zZXQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA4LjEwMTMrLTEuMzAxNCAgICAgICAgICAgIDcuNTg4
MystMC42NjQ5ICAgICAgICAgIG1pZ2h0IGJlIDEuMDY3NnggZmFzdGVyCiAgIGJpZy1pbnQtbXVs
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuMzU4NistMC4yODMwICAg
ICA/ICAgICAgMy4zOTYzKy0wLjYyNzEgICAgICAgID8gbWlnaHQgYmUgMS4wMTEyeCBzbG93ZXIK
ICAgYm9vbGVhbi10ZXN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy4z
MzE4Ky0wLjIwNzAgICAgIF4gICAgICAyLjc5NDErLTAuMTIxOSAgICAgICAgXiBkZWZpbml0ZWx5
IDEuMTkyNHggZmFzdGVyCiAgIGJvdW5kLWZ1bmN0aW9uLWNhbGwgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDkuNzA3MCstMC4zMjc3ICAgICA/ICAgICAgOS44NjE0Ky0wLjU5OTIgICAg
ICAgID8gbWlnaHQgYmUgMS4wMTU5eCBzbG93ZXIKICAgYnJhbmNoLWZvbGQgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMy42NDEyKy0wLjEwMzIgICAgID8gICAgICAzLjcz
NDkrLTAuMjY2NSAgICAgICAgPyBtaWdodCBiZSAxLjAyNTd4IHNsb3dlcgogICBicmFuY2gtb24t
c3RyaW5nLWFzLWJvb2xlYW4gICAgICAgICAgICAgICAgICAgICAgIDEwLjYwOTcrLTAuNjQ3MSAg
ICAgPyAgICAgMTAuODg1MSstMS4yOTcxICAgICAgICA/IG1pZ2h0IGJlIDEuMDI2MHggc2xvd2Vy
CiAgIGJ1Zy0xNTM0MzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIu
ODAyMCstMC4xNjQ3ICAgICAgICAgICAgMi42MDkwKy0wLjA3ODAgICAgICAgICAgbWlnaHQgYmUg
MS4wNzQweCBmYXN0ZXIKICAgYnVpbGQtbGFyZ2Utb2JqZWN0ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAzMS4yMzg5Ky0xLjM5NTQgICAgICAgICAgIDMwLjEyMjgrLTAuNTA3OSAgICAg
ICAgICBtaWdodCBiZSAxLjAzNzB4IGZhc3RlcgogICBieS12YWwtZ2VuZXJpYyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA0LjAwOTYrLTAuMTg3MSAgICAgPyAgICAgIDQuNDgw
NystMS4xNTg0ICAgICAgICA/IG1pZ2h0IGJlIDEuMTE3NXggc2xvd2VyCiAgIGNhbGwtc3ByZWFk
LWFwcGx5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjMuNDczMistMi4xODAzICAg
ICAgICAgICAyMi4wMTczKy0wLjQ3MDcgICAgICAgICAgbWlnaHQgYmUgMS4wNjYxeCBmYXN0ZXIK
ICAgY2FsbC1zcHJlYWQtY2FsbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNS42
MzI5Ky0wLjk0NDQgICAgICAgICAgIDI1LjM3MTUrLTAuNDg0MSAgICAgICAgICBtaWdodCBiZSAx
LjAxMDN4IGZhc3RlcgogICBjYXB0dXJlZC1hc3NpZ25tZW50cyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAwLjM3OTIrLTAuMDQxNyAgICAgPyAgICAgIDAuNDAxMCstMC4wNjY1ICAgICAg
ICA/IG1pZ2h0IGJlIDEuMDU3NXggc2xvd2VyCiAgIGNhc3QtaW50LXRvLWRvdWJsZSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDQuOTM2MCstMC4yMDAwICAgICA/ICAgICAgNC45ODgw
Ky0wLjIxMzAgICAgICAgID8gbWlnaHQgYmUgMS4wMTA1eCBzbG93ZXIKICAgY2VsbC1hcmd1bWVu
dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi43ODg5Ky0wLjE0MTggICAg
ICAgICAgICAyLjY5NTQrLTAuMTE5OCAgICAgICAgICBtaWdodCBiZSAxLjAzNDd4IGZhc3Rlcgog
ICBjZmctc2ltcGxpZnkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjg0
MTgrLTAuMTc1MCAgICAgICAgICAgIDIuODI1MystMC4yNDI1ICAgICAgICAKICAgY2hhaW4tZ2V0
dGVyLWFjY2VzcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMS4xNzM1Ky0wLjcwMDYg
ICAgICAgICAgIDEwLjg2MTUrLTAuMzA1NiAgICAgICAgICBtaWdodCBiZSAxLjAyODd4IGZhc3Rl
cgogICBjbXBlcS1vYmotdG8tb2JqLW90aGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4
LjI3NTErLTAuNzMyNSAgICAgPyAgICAgIDguMjc5MSstMC4zNzAwICAgICAgICA/CiAgIGNvbnN0
YW50LXRlc3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuNjI3OCstMC4x
NDA5ICAgICA/ICAgICAgNC42Mjg1Ky0wLjIxMjAgICAgICAgID8KICAgY3JlYXRlLWxvdHMtb2Yt
ZnVuY3Rpb25zICAgICAgICAgICAgICAgICAgICAgICAgICAgOC42ODgwKy0wLjQ0NTEgICAgID8g
ICAgICA5LjA3NDgrLTAuNTY1NiAgICAgICAgPyBtaWdodCBiZSAxLjA0NDV4IHNsb3dlcgogICBj
c2UtbmV3LWFycmF5LWJ1ZmZlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLjk3MTYr
LTAuMDY2NCAgICAgPyAgICAgIDIuMDU2MystMC4xMDk1ICAgICAgICA/IG1pZ2h0IGJlIDEuMDQz
MHggc2xvd2VyCiAgIGNzZS1uZXctYXJyYXkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDIuMTA5NistMC4yMzY4ICAgICAgICAgICAgMi4wNDM0Ky0wLjA4NTAgICAgICAgICAg
bWlnaHQgYmUgMS4wMzI0eCBmYXN0ZXIKICAgY3VzdG9tLXNldHRlci1nZXR0ZXItYXMtcHV0LWdl
dC1ieS1pZCAgICAgICAgICAgICAgMC40Mjc3Ky0wLjA1NTQgICAgID8gICAgICAwLjQ0NjUrLTAu
MDU5NiAgICAgICAgPyBtaWdodCBiZSAxLjA0NDB4IHNsb3dlcgogICBEYXRhVmlldy1jdXN0b20t
cHJvcGVydGllcyAgICAgICAgICAgICAgICAgICAgICAgIDQ0LjQ1MDArLTAuNTU1MyAgICAgICAg
ICAgNDMuNzEzNSstMC44MTMzICAgICAgICAgIG1pZ2h0IGJlIDEuMDE2OHggZmFzdGVyCiAgIGRl
bGF5LXRlYXItb2ZmLWFyZ3VtZW50cy1zdHJpY3Rtb2RlICAgICAgICAgICAgICAgIDQuMjA1MCst
MC41NDA1ICAgICAgICAgICAgNC4wOTEyKy0wLjEwOTMgICAgICAgICAgbWlnaHQgYmUgMS4wMjc4
eCBmYXN0ZXIKICAgZGVsdGFibHVlLWZvci1vZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAzNS43ODU0Ky01LjI5MjMgICAgICAgICAgIDMyLjAzMDArLTAuNDQ5NyAgICAgICAgICBt
aWdodCBiZSAxLjExNzJ4IGZhc3RlcgogICBkZWx0YWJsdWUtdmFyYXJncyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDM1LjkwMzArLTEuMTcyMCAgICAgICAgICAgMzUuNDAxMCstMC42
ODU1ICAgICAgICAgIG1pZ2h0IGJlIDEuMDE0MnggZmFzdGVyCiAgIGRlc3RydWN0dXJpbmctYXJn
dW1lbnRzICAgICAgICAgICAgICAgICAgICAgICAgICAgNTkuMzY0NistMi45MzMyICAgICAgICAg
ICA1OC4wODg4Ky00LjUyMzIgICAgICAgICAgbWlnaHQgYmUgMS4wMjIweCBmYXN0ZXIKICAgZGVz
dHJ1Y3R1cmluZy1wYXJhbWV0ZXJzLW92ZXJyaWRkZW4tYnktZnVuY3Rpb24gICAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC40MjMxKy0wLjAz
MzUgICAgID8gICAgICAwLjQyNjYrLTAuMDY2NyAgICAgICAgPwogICBkZXN0cnVjdHVyaW5nLXN3
YXAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjQ5ODkrLTAuMTc1MSAgICAgPyAg
ICAgIDQuNzI4NystMC42MzQ1ICAgICAgICA/IG1pZ2h0IGJlIDEuMDUxMXggc2xvd2VyCiAgIGRp
cmVjdC1hcmd1bWVudHMtZ2V0Ynl2YWwgICAgICAgICAgICAgICAgICAgICAgICAgIDEuMDU0Myst
MC4wMjk3ICAgICAgICAgICAgMS4wMzUwKy0wLjA3MDggICAgICAgICAgbWlnaHQgYmUgMS4wMTg2
eCBmYXN0ZXIKICAgZGlyZWN0LWFyZ3VtZW50cy1sZW5ndGggICAgICAgICAgICAgICAgICAgICAg
ICAgICAgNi43MTM5Ky0wLjIxODUgICAgID8gICAgICA3LjQ1MDQrLTAuOTQ0NyAgICAgICAgPyBt
aWdodCBiZSAxLjEwOTd4IHNsb3dlcgogICBkaXJlY3QtYXJndW1lbnRzLW92ZXJyaWRkZW4tbGVu
Z3RoICAgICAgICAgICAgICAgICA3LjI0NjgrLTAuNzY1NiAgICAgPyAgICAgIDcuNTQ2NCstMC45
Mzc4ICAgICAgICA/IG1pZ2h0IGJlIDEuMDQxM3ggc2xvd2VyCiAgIGRpcmVjdC1hcmd1bWVudHMt
cG9zc2libHktb3ZlcnJpZGRlbi1sZW5ndGggICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgNi45NTk4Ky0wLjMwODYgICAgID8gICAgICA3LjQ3
NDYrLTEuMjg2MiAgICAgICAgPyBtaWdodCBiZSAxLjA3NDB4IHNsb3dlcgogICBkaXYtYm9vbGVh
bi1kb3VibGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjg4MzErLTAuMDYzNSAg
ICAgPyAgICAgIDQuMTYwOCstMC4zNTM3ICAgICAgICA/IG1pZ2h0IGJlIDEuMDcxNXggc2xvd2Vy
CiAgIGRpdi1ib29sZWFuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcu
NDk5MystMC4zMTQ0ICAgICAgICAgICAgNy4zNjA0Ky0wLjMwOTkgICAgICAgICAgbWlnaHQgYmUg
MS4wMTg5eCBmYXN0ZXIKICAgZG91YmxlLWdldC1ieS12YWwtb3V0LW9mLWJvdW5kcyAgICAgICAg
ICAgICAgICAgICAgNC4yNTc5Ky0wLjE2NzUgICAgID8gICAgICA0LjM0OTIrLTAuNzIwOSAgICAg
ICAgPyBtaWdodCBiZSAxLjAyMTR4IHNsb3dlcgogICBkb3VibGUtcG9sbHV0aW9uLWdldGJ5dmFs
ICAgICAgICAgICAgICAgICAgICAgICAgICA4LjEyMjMrLTAuMzEyNSAgICAgICAgICAgIDguMDUx
OCstMC4zMDY2ICAgICAgICAKICAgZG91YmxlLXBvbGx1dGlvbi1wdXRieW9mZnNldCAgICAgICAg
ICAgICAgICAgICAgICAgMy42MTQ1Ky0wLjMyMDggICAgID8gICAgICAzLjY3MzcrLTAuMzMzMCAg
ICAgICAgPyBtaWdodCBiZSAxLjAxNjR4IHNsb3dlcgogICBkb3VibGUtcmVhbC11c2UgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI2LjcwMjcrLTIuODg5NSAgICAgICAgICAgMjUu
MTkwMistMS45NzMxICAgICAgICAgIG1pZ2h0IGJlIDEuMDYwMHggZmFzdGVyCiAgIGRvdWJsZS10
by1pbnQzMi10eXBlZC1hcnJheS1uby1pbmxpbmUgICAgICAgICAgICAgIDIuNTg0OCstMC44ODEy
ICAgICAgICAgICAgMi4yMjg3Ky0wLjIwMjYgICAgICAgICAgbWlnaHQgYmUgMS4xNTk4eCBmYXN0
ZXIKICAgZG91YmxlLXRvLWludDMyLXR5cGVkLWFycmF5ICAgICAgICAgICAgICAgICAgICAgICAg
Mi4wNjE2Ky0wLjA5MTMgICAgID8gICAgICAyLjEzMTQrLTAuMTgyOCAgICAgICAgPyBtaWdodCBi
ZSAxLjAzMzh4IHNsb3dlcgogICBkb3VibGUtdG8tdWludDMyLXR5cGVkLWFycmF5LW5vLWlubGlu
ZSAgICAgICAgICAgICAyLjI0NzArLTAuMTA2NiAgICAgPyAgICAgIDIuMzcxMSstMC4yNzc0ICAg
ICAgICA/IG1pZ2h0IGJlIDEuMDU1Mnggc2xvd2VyCiAgIGRvdWJsZS10by11aW50MzItdHlwZWQt
YXJyYXkgICAgICAgICAgICAgICAgICAgICAgIDIuMTc5MistMC4xNzMyICAgICA/ICAgICAgMi4x
OTUzKy0wLjI2NTUgICAgICAgID8KICAgZWxpZGFibGUtbmV3LW9iamVjdC1kYWcgICAgICAgICAg
ICAgICAgICAgICAgICAgICAxOS40MTUyKy0xLjEzNzIgICAgID8gICAgIDIwLjA2NDMrLTEuMDg1
MSAgICAgICAgPyBtaWdodCBiZSAxLjAzMzR4IHNsb3dlcgogICBlbGlkYWJsZS1uZXctb2JqZWN0
LXJvZmxjb3B0ZXIgICAgICAgICAgICAgICAgICAgIDIzLjM2NzkrLTQuOTUwMCAgICAgPyAgICAg
MjMuODMwNistNi41NTc5ICAgICAgICA/IG1pZ2h0IGJlIDEuMDE5OHggc2xvd2VyCiAgIGVsaWRh
YmxlLW5ldy1vYmplY3QtdGhlbi1jYWxsICAgICAgICAgICAgICAgICAgICAgMTcuNTU2MistMS4y
Nzc1ICAgICAgICAgICAxNy4yOTIwKy0xLjM1MDEgICAgICAgICAgbWlnaHQgYmUgMS4wMTUzeCBm
YXN0ZXIKICAgZWxpZGFibGUtbmV3LW9iamVjdC10cmVlICAgICAgICAgICAgICAgICAgICAgICAg
ICAxOS40NzI5Ky0wLjY4NTEgICAgID8gICAgIDIwLjY5NTkrLTEuNDA2MCAgICAgICAgPyBtaWdo
dCBiZSAxLjA2Mjh4IHNsb3dlcgogICBlbXB0eS1zdHJpbmctcGx1cy1pbnQgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA0LjY3OTUrLTAuMjgzMCAgICAgICAgICAgIDQuNTIxMystMC4xNTg3
ICAgICAgICAgIG1pZ2h0IGJlIDEuMDM1MHggZmFzdGVyCiAgIGVtc2NyaXB0ZW4tY3ViZTJoYXNo
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjQuODQ2NCstMS43Mzc5ICAgICA/ICAgICAy
Ni42NDA2Ky0zLjE2OTUgICAgICAgID8gbWlnaHQgYmUgMS4wNzIyeCBzbG93ZXIKICAgZXhpdC1s
ZW5ndGgtb24tcGxhaW4tb2JqZWN0ICAgICAgICAgICAgICAgICAgICAgICAgOC44MjA4Ky0xLjM5
MjIgICAgICAgICAgICA4LjMwNDYrLTAuMzM1NyAgICAgICAgICBtaWdodCBiZSAxLjA2MjF4IGZh
c3RlcgogICBleHRlcm5hbC1hcmd1bWVudHMtZ2V0Ynl2YWwgICAgICAgICAgICAgICAgICAgICAg
ICAxLjEyNzErLTAuMTA1NyAgICAgICAgICAgIDEuMDcxOCstMC4wNjY5ICAgICAgICAgIG1pZ2h0
IGJlIDEuMDUxNnggZmFzdGVyCiAgIGV4dGVybmFsLWFyZ3VtZW50cy1wdXRieXZhbCAgICAgICAg
ICAgICAgICAgICAgICAgIDIuMDU0OCstMC4xMjk1ICAgICAgICAgICAgMi4wNDYwKy0wLjExNTgg
ICAgICAgIAogICBmaXhlZC10eXBlZC1hcnJheS1zdG9yYWdlLXZhci1pbmRleCAgICAgICAgICAg
ICAgICAxLjM5MjArLTAuMDU2NCAgICAgICAgICAgIDEuMzU0OSstMC4wODk0ICAgICAgICAgIG1p
Z2h0IGJlIDEuMDI3NHggZmFzdGVyCiAgIGZpeGVkLXR5cGVkLWFycmF5LXN0b3JhZ2UgICAgICAg
ICAgICAgICAgICAgICAgICAgIDEuMDI0MCstMC4wMjU5ICAgICA/ICAgICAgMS4xMDIzKy0wLjE0
MjIgICAgICAgID8gbWlnaHQgYmUgMS4wNzY1eCBzbG93ZXIKICAgRmxvYXQzMkFycmF5LW1hdHJp
eC1tdWx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgNC41NjgyKy0wLjEzNzkgICAgICAgICAg
ICA0LjQ2MTcrLTAuMTk0OSAgICAgICAgICBtaWdodCBiZSAxLjAyMzl4IGZhc3RlcgogICBGbG9h
dDMyQXJyYXktdG8tRmxvYXQ2NEFycmF5LXNldCAgICAgICAgICAgICAgICAgIDQxLjM4MDQrLTIu
NzgxOSAgICAgICAgICAgMzkuMDE1NistMi4wNTczICAgICAgICAgIG1pZ2h0IGJlIDEuMDYwNngg
ZmFzdGVyCiAgIEZsb2F0NjRBcnJheS1hbGxvYy1sb25nLWxpdmVkICAgICAgICAgICAgICAgICAg
ICAgNzMuOTM5NystMi42MjMyICAgICAgICAgICA3MS42Nzc1Ky0yLjU3MjYgICAgICAgICAgbWln
aHQgYmUgMS4wMzE2eCBmYXN0ZXIKICAgRmxvYXQ2NEFycmF5LXRvLUludDE2QXJyYXktc2V0ICAg
ICAgICAgICAgICAgICAgICA1MC4wMjI3Ky0zLjU3NTEgICAgID8gICAgIDUxLjQ1NjkrLTQuMTc3
OCAgICAgICAgPyBtaWdodCBiZSAxLjAyODd4IHNsb3dlcgogICBmb2xkLWRvdWJsZS10by1pbnQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEzLjE0MDArLTIuMzU3OCAgICAgICAgICAg
MTIuODYzMistMC43NTgwICAgICAgICAgIG1pZ2h0IGJlIDEuMDIxNXggZmFzdGVyCiAgIGZvbGQt
Z2V0LWJ5LWlkLXRvLW11bHRpLWdldC1ieS1vZmZzZXQtcmFyZS1pbnQgICAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNi43ODEyKy0wLjQzNTMg
ICAgICAgICAgICA2LjY3ODcrLTAuMjE3NyAgICAgICAgICBtaWdodCBiZSAxLjAxNTN4IGZhc3Rl
cgogICBmb2xkLWdldC1ieS1pZC10by1tdWx0aS1nZXQtYnktb2Zmc2V0ICAgICAgICAgICAgICA1
Ljk2MzArLTAuMzAxNyAgICAgICAgICAgIDUuOTIzMystMC44MDYwICAgICAgICAKICAgZm9sZC1t
dWx0aS1nZXQtYnktb2Zmc2V0LXRvLWdldC1ieS1vZmZzZXQgICAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC45ODg3Ky0xLjgxMTYgICAgICAg
ICAgICA0LjI1ODcrLTAuMjA1MSAgICAgICAgICBtaWdodCBiZSAxLjE3MTR4IGZhc3RlcgogICBm
b2xkLW11bHRpLWdldC1ieS1vZmZzZXQtdG8tcG9seS1nZXQtYnktb2Zmc2V0ICAgCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUuMjY1OCstMS44
MjAwICAgICAgICAgICAgNC4zMTAzKy0wLjIyNjIgICAgICAgICAgbWlnaHQgYmUgMS4yMjE3eCBm
YXN0ZXIKICAgZm9sZC1tdWx0aS1wdXQtYnktb2Zmc2V0LXRvLXBvbHktcHV0LWJ5LW9mZnNldCAg
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0
LjkwMTErLTEuNzk0NSAgICAgICAgICAgIDQuMzgwNSstMC4yOTY2ICAgICAgICAgIG1pZ2h0IGJl
IDEuMTE4OHggZmFzdGVyCiAgIGZvbGQtbXVsdGktcHV0LWJ5LW9mZnNldC10by1wdXQtYnktb2Zm
c2V0ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDQuMjk1MCstMS40ODYxICAgICA/ICAgICAgNC44NDE2Ky0xLjY5MjcgICAgICAgID8gbWln
aHQgYmUgMS4xMjczeCBzbG93ZXIKICAgZm9sZC1tdWx0aS1wdXQtYnktb2Zmc2V0LXRvLXJlcGxh
Y2Utb3ItdHJhbnNpdGlvbi1wdXQtYnktb2Zmc2V0ICAgCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcuMzczMistMS41MzA5ICAgICA/ICAgICAg
OC4wOTM1Ky0xLjk5MDYgICAgICAgID8gbWlnaHQgYmUgMS4wOTc3eCBzbG93ZXIKICAgZm9sZC1w
dXQtYnktaWQtdG8tbXVsdGktcHV0LWJ5LW9mZnNldCAgICAgICAgICAgICAgNi4yODk4Ky0wLjEz
MTUgICAgID8gICAgICA2LjYwNzgrLTAuNTgzOCAgICAgICAgPyBtaWdodCBiZSAxLjA1MDZ4IHNs
b3dlcgogICBmb2xkLXB1dC1ieS12YWwtd2l0aC1zdHJpbmctdG8tbXVsdGktcHV0LWJ5LW9mZnNl
dCAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA2LjM5MDYrLTAuMzU1MyAgICAgPyAgICAgIDYuNTA3MistMC4yNzExICAgICAgICA/IG1pZ2h0
IGJlIDEuMDE4Mnggc2xvd2VyCiAgIGZvbGQtcHV0LWJ5LXZhbC13aXRoLXN5bWJvbC10by1tdWx0
aS1wdXQtYnktb2Zmc2V0ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDcuMTU1NistMS44MzAzICAgICAgICAgICAgNi40MTA5Ky0wLjI1Njgg
ICAgICAgICAgbWlnaHQgYmUgMS4xMTYyeCBmYXN0ZXIKICAgZm9sZC1wdXQtc3RydWN0dXJlICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy4zMTkzKy0wLjIyNDUgICAgICAgICAgICAz
LjI0MDArLTAuMDgzMyAgICAgICAgICBtaWdodCBiZSAxLjAyNDV4IGZhc3RlcgogICBmb3Itb2Yt
aXRlcmF0ZS1hcnJheS1lbnRyaWVzICAgICAgICAgICAgICAgICAgICAgICA5Ljc2NzArLTAuNjc1
MiAgICAgICAgICAgIDkuNTY1MistMC4xNzE5ICAgICAgICAgIG1pZ2h0IGJlIDEuMDIxMXggZmFz
dGVyCiAgIGZvci1vZi1pdGVyYXRlLWFycmF5LWtleXMgICAgICAgICAgICAgICAgICAgICAgICAg
IDQuMDg3OSstMC4wNjIwICAgICA/ICAgICAgNC4xOTQ4Ky0wLjE0NDEgICAgICAgID8gbWlnaHQg
YmUgMS4wMjYxeCBzbG93ZXIKICAgZm9yLW9mLWl0ZXJhdGUtYXJyYXktdmFsdWVzICAgICAgICAg
ICAgICAgICAgICAgICAgNC4xMzkwKy0wLjI3MzEgICAgICAgICAgICAzLjk3OTkrLTAuMTQ2MCAg
ICAgICAgICBtaWdodCBiZSAxLjA0MDB4IGZhc3RlcgogICBmcm91bmQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwLjE5NjMrLTAuNjQ0MCAgICAgPyAgICAgMTAu
NjI0MystMS4yNjM3ICAgICAgICA/IG1pZ2h0IGJlIDEuMDQyMHggc2xvd2VyCiAgIGZ0bC1saWJy
YXJ5LWlubGluaW5nLWRhdGF2aWV3ICAgICAgICAgICAgICAgICAgICAgNjAuMjMwMSstMy4xOTky
ICAgICA/ICAgICA2Mi45MjYxKy01Ljc4NzEgICAgICAgID8gbWlnaHQgYmUgMS4wNDQ4eCBzbG93
ZXIKICAgZnRsLWxpYnJhcnktaW5saW5pbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAy
My44NzM0Ky0xLjQ5MTEgICAgICAgICAgIDIzLjMxMTArLTAuOTY0OCAgICAgICAgICBtaWdodCBi
ZSAxLjAyNDF4IGZhc3RlcgogICBmdGwtcG9seW1vcnBoaWMtYml0YW5kICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMTQzLjk0MzcrLTUuOTYyNiAgICAgPyAgICAxNDQuODE0OSstMy4yMDA4ICAg
ICAgICA/CiAgIGZ0bC1wb2x5bW9ycGhpYy1iaXRvciAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAxNDMuNTgxOCstNi44NTExICAgICAgICAgIDE0Mi41MjE4Ky0zLjMzNzEgICAgICAgIAogICBm
dGwtcG9seW1vcnBoaWMtYml0eG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgMTU0LjIyMjAr
LTEwLjI5MDggICAgICAgICAxNDYuNzIxNCstNi40NzMxICAgICAgICAgIG1pZ2h0IGJlIDEuMDUx
MXggZmFzdGVyCiAgIGZ0bC1wb2x5bW9ycGhpYy1kaXYgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA1MTIuMDQxMystMTUuNzc1OSAgICAgICAgIDQ5My4zMDU1Ky00Ljg1MzggICAgICAgICAg
bWlnaHQgYmUgMS4wMzgweCBmYXN0ZXIKICAgZnRsLXBvbHltb3JwaGljLWxzaGlmdCAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDE3Ni44NjQ3Ky00LjAyODcgICAgICAgICAgMTcxLjY0OTIrLTUu
MzkyOCAgICAgICAgICBtaWdodCBiZSAxLjAzMDR4IGZhc3RlcgogICBmdGwtcG9seW1vcnBoaWMt
bXVsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjU4LjQ0MzArLTcuMDY2MSAgICAgPyAg
ICAyNTkuNDUzOSstMTEuOTQ5MiAgICAgICA/CiAgIGZ0bC1wb2x5bW9ycGhpYy1yc2hpZnQgICAg
ICAgICAgICAgICAgICAgICAgICAgICAxNzcuNDgxNSstNy42NzcxICAgICA/ICAgIDE4NC4zMjc1
Ky0xNC43NzQ4ICAgICAgID8gbWlnaHQgYmUgMS4wMzg2eCBzbG93ZXIKICAgZnRsLXBvbHltb3Jw
aGljLVN0cmluZ0Zyb21DaGFyQ29kZSAgICAgICAgICAgICAgICA0Ny43MzA0Ky0zLjMwMDcgICAg
ID8gICAgIDQ3Ljc3ODQrLTUuODUwMiAgICAgICAgPwogICBmdGwtcG9seW1vcnBoaWMtc3ViICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMjAwLjAxNjArLTguNTI5NCAgICAgXiAgICAxNjcu
NTA2OSstNC40MTcyICAgICAgICBeIGRlZmluaXRlbHkgMS4xOTQxeCBmYXN0ZXIKICAgZnRsLXBv
bHltb3JwaGljLXVyc2hpZnQgICAgICAgICAgICAgICAgICAgICAgICAgIDE5NC41NDcxKy03Ljc4
MzcgICAgICAgICAgMTkzLjA0OTIrLTE1LjM1NzUgICAgICAgCiAgIGZ1bmN0aW9uLWNhbGwgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAuODkxNSstMC40NzcyICAgICAgICAg
ICAxMC42Nzk1Ky0wLjM2NTAgICAgICAgICAgbWlnaHQgYmUgMS4wMTk4eCBmYXN0ZXIKICAgZnVu
Y3Rpb24tZG90LWFwcGx5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi4wMTYwKy0w
LjM2NTMgICAgICAgICAgICAxLjkxNDcrLTAuMDkzMiAgICAgICAgICBtaWdodCBiZSAxLjA1Mjl4
IGZhc3RlcgogICBmdW5jdGlvbi10ZXN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAzLjExOTUrLTAuMTkwNyAgICAgXiAgICAgIDIuNTg5MystMC4wNTk1ICAgICAgICBeIGRl
ZmluaXRlbHkgMS4yMDQ4eCBmYXN0ZXIKICAgZnVuY3Rpb24td2l0aC1ldmFsICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA4OS42Mzc1Ky0zLjkzNzQgICAgICAgICAgIDg3Ljk1NjArLTMu
NDEzMCAgICAgICAgICBtaWdodCBiZSAxLjAxOTF4IGZhc3RlcgogICBnY3NlLXBvbHktZ2V0LWxl
c3Mtb2J2aW91cyAgICAgICAgICAgICAgICAgICAgICAgICA4LjI3NzYrLTAuMzIzNSAgICAgPyAg
ICAgIDguOTY4OSstMC41NzA2ICAgICAgICA/IG1pZ2h0IGJlIDEuMDgzNXggc2xvd2VyCiAgIGdj
c2UtcG9seS1nZXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDguNDI3OCst
MC40NTIyICAgICA/ICAgICAgOC41ODU3Ky0wLjU0MTQgICAgICAgID8gbWlnaHQgYmUgMS4wMTg3
eCBzbG93ZXIKICAgZ2NzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMy40OTI0Ky0wLjA3OTkgICAgIF4gICAgICAzLjMwODMrLTAuMTA0MSAgICAgICAgXiBk
ZWZpbml0ZWx5IDEuMDU1N3ggZmFzdGVyCiAgIGdlbmVyYXRvci1jcmVhdGUgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDAuNjU3NSstMC4wMzIzICAgICA/ICAgICAgMC43Mjk2Ky0w
LjA3NjAgICAgICAgID8gbWlnaHQgYmUgMS4xMDk3eCBzbG93ZXIKICAgZ2VuZXJhdG9yLWZpYiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwMy40MDEyKy01LjI5ODAgICAgID8g
ICAgMTA0LjQ4NzUrLTMuNTMzNyAgICAgICAgPyBtaWdodCBiZSAxLjAxMDV4IHNsb3dlcgogICBn
ZW5lcmF0b3ItZnVuY3Rpb24tY3JlYXRlICAgICAgICAgICAgICAgICAgICAgICAgICAzLjc4NTAr
LTAuMzU1NyAgICAgPyAgICAgIDQuMTQ2MistMC41NDYyICAgICAgICA/IG1pZ2h0IGJlIDEuMDk1
NHggc2xvd2VyCiAgIGdlbmVyYXRvci1zdW5zcGlkZXItYWNjZXNzLW5zaWV2ZSAgICAgICAgICAg
ICAgICAgIDYuMTg2MystMS4zNTExICAgICAgICAgICAgNS4zNjYwKy0wLjExNDIgICAgICAgICAg
bWlnaHQgYmUgMS4xNTI5eCBmYXN0ZXIKICAgZ2VuZXJhdG9yLXdpdGgtc2V2ZXJhbC10eXBlcyAg
ICAgICAgICAgICAgICAgICAgIDM2MC4xMzI2Ky0yMS4yMTM2ICAgID8gICAgMzYyLjIxMTIrLTMw
LjYwNTEgICAgICAgPwogICBnZXQtYnktaWQtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGlt
aW5hdGlvbi1zaW1wbGUgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMi4yNTE4Ky0wLjA4OTIgICAgID8gICAgICAyLjMwNzUrLTAuMTQzOSAg
ICAgICAgPyBtaWdodCBiZSAxLjAyNDd4IHNsb3dlcgogICBnZXQtYnktaWQtYmltb3JwaGljLWNo
ZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbiAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA0LjM3MDcrLTAuMDk5NyAgICAgPyAgICAgIDQuNDE4
MCstMC4xMzY1ICAgICAgICA/IG1pZ2h0IGJlIDEuMDEwOHggc2xvd2VyCiAgIGdldC1ieS1pZC1j
aGFpbi1mcm9tLXRyeS1ibG9jayAgICAgICAgICAgICAgICAgICAgIDEuODY1OSstMC4wOTQ5ICAg
ICA/ICAgICAgMS45NjE1Ky0wLjA4NjMgICAgICAgID8gbWlnaHQgYmUgMS4wNTEzeCBzbG93ZXIK
ICAgZ2V0LWJ5LWlkLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbiAgICAgICAgICAgICAgMi45
NTY5Ky0wLjIwMTkgICAgICAgICAgICAyLjkwOTArLTAuMTQyOSAgICAgICAgICBtaWdodCBiZSAx
LjAxNjV4IGZhc3RlcgogICBnZXQtYnktaWQtcHJvdG8tb3Itc2VsZiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA5LjUxNzcrLTIuODA4MiAgICAgICAgICAgIDkuNDgxMystMi40NzYzICAgICAg
ICAKICAgZ2V0LWJ5LWlkLXF1YWRtb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1z
aW1wbGUgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMi43NTI1Ky0wLjMwNjEgICAgICAgICAgICAyLjY2NjMrLTAuMDY2MyAgICAgICAgICBt
aWdodCBiZSAxLjAzMjN4IGZhc3RlcgogICBnZXQtYnktaWQtc2VsZi1vci1wcm90byAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA4LjYyNjcrLTEuNjYxMSAgICAgPyAgICAgIDkuMTc2NCstMS40
NjgwICAgICAgICA/IG1pZ2h0IGJlIDEuMDYzN3ggc2xvd2VyCiAgIGdldC1ieS12YWwtb3V0LW9m
LWJvdW5kcyAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuMDc3NCstMC4yODk0ICAgICA/ICAg
ICAgNC40NTU0Ky0wLjY3OTAgICAgICAgID8gbWlnaHQgYmUgMS4wOTI3eCBzbG93ZXIKICAgZ2V0
LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9u
LXNpbXBsZSAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAzLjMzMjQrLTAuMzE4NyAgICAgPyAgICAgIDMuNzU3MSstMS4zMTY2ICAgICAgICA/
IG1pZ2h0IGJlIDEuMTI3NXggc2xvd2VyCiAgIGdldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3Jw
aGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbiAgIAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3LjIyODcrLTAuMjc1MSAgICAgICAgICAg
IDYuOTYwMistMC4xOTA3ICAgICAgICAgIG1pZ2h0IGJlIDEuMDM4NnggZmFzdGVyCiAgIGdldC1i
eS12YWwtd2l0aC1zdHJpbmctY2hhaW4tZnJvbS10cnktYmxvY2sgICAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMS44NjcwKy0wLjA2OTkgICAg
ID8gICAgICAxLjg5NDgrLTAuMDg2OCAgICAgICAgPyBtaWdodCBiZSAxLjAxNDl4IHNsb3dlcgog
ICBnZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbiAgIAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1Ljcx
MjMrLTAuNjE1OSAgICAgPyAgICAgIDYuMzQ5MistMS42MzMwICAgICAgICA/IG1pZ2h0IGJlIDEu
MTExNXggc2xvd2VyCiAgIGdldC1ieS12YWwtd2l0aC1zdHJpbmctcHJvdG8tb3Itc2VsZiAgICAg
ICAgICAgICAgMTAuOTU5MCstMC41MzQ5ICAgICAgICAgICAxMC44NzA2Ky0wLjE0NjYgICAgICAg
IAogICBnZXQtYnktdmFsLXdpdGgtc3RyaW5nLXF1YWRtb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1l
bGltaW5hdGlvbi1zaW1wbGUgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgNC4zMDkwKy0wLjEwMDUgICAgID8gICAgICA0LjMzMzArLTAuMjA2
NSAgICAgICAgPwogICBnZXQtYnktdmFsLXdpdGgtc3RyaW5nLXNlbGYtb3ItcHJvdG8gICAgICAg
ICAgICAgIDEwLjQ2NzArLTAuMzA5OSAgICAgPyAgICAgMTEuMTYwMSstMS4wODY0ICAgICAgICA/
IG1pZ2h0IGJlIDEuMDY2Mnggc2xvd2VyCiAgIGdldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3Jw
aGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUgICAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi43OTM4Ky0wLjE2MTkgICAg
ICAgICAgICAyLjU4ODkrLTAuMDUwMCAgICAgICAgICBtaWdodCBiZSAxLjA3OTJ4IGZhc3Rlcgog
ICBnZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWlu
YXRpb24gICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgOS41NjkzKy0xLjEwOTYgICAgICAgICAgICA5LjQxMDcrLTEuMDE5MyAgICAgICAgICBt
aWdodCBiZSAxLjAxNjl4IGZhc3RlcgogICBnZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoYWluLWZy
b20tdHJ5LWJsb2NrICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDEuOTAwMistMC4wNTA0ICAgICA/ICAgICAgMi4wMDQxKy0wLjE3NjkgICAg
ICAgID8gbWlnaHQgYmUgMS4wNTQ3eCBzbG93ZXIKICAgZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1j
aGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24gICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgNy4wMjA1Ky0wLjMwODMgICAgID8gICAgICA3LjE3
NjcrLTAuMzkyNSAgICAgICAgPyBtaWdodCBiZSAxLjAyMjN4IHNsb3dlcgogICBnZXQtYnktdmFs
LXdpdGgtc3ltYm9sLXByb3RvLW9yLXNlbGYgICAgICAgICAgICAgIDExLjE1ODArLTEuMjkwNCAg
ICAgICAgICAgMTAuNTM1OCstMC42MjM2ICAgICAgICAgIG1pZ2h0IGJlIDEuMDU5MXggZmFzdGVy
CiAgIGdldC1ieS12YWwtd2l0aC1zeW1ib2wtcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVs
aW1pbmF0aW9uLXNpbXBsZSAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAzLjMzNDQrLTAuMTQzMCAgICAgPyAgICAgIDMuMzk4NistMC4yMDI1
ICAgICAgICA/IG1pZ2h0IGJlIDEuMDE5Mnggc2xvd2VyCiAgIGdldC1ieS12YWwtd2l0aC1zeW1i
b2wtc2VsZi1vci1wcm90byAgICAgICAgICAgICAgMTAuOTY2MistMC41MTE0ICAgICAgICAgICAx
MC43MTcwKy0wLjgzMzggICAgICAgICAgbWlnaHQgYmUgMS4wMjMzeCBmYXN0ZXIKICAgZ2V0X2Nh
bGxlZV9tb25vbW9ycGhpYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi4xMTQxKy0wLjQ0
NzAgICAgICAgICAgICAyLjAzNzUrLTAuMjAwNSAgICAgICAgICBtaWdodCBiZSAxLjAzNzZ4IGZh
c3RlcgogICBnZXRfY2FsbGVlX3BvbHltb3JwaGljICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAyLjk0MDgrLTAuMTE1MyAgICAgICAgICAgIDIuODY1OCstMC4xNTU1ICAgICAgICAgIG1pZ2h0
IGJlIDEuMDI2MnggZmFzdGVyCiAgIGdldHRlci1uby1hY3RpdmF0aW9uICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDIuOTQ2NistMC4xMDc5ICAgICA/ICAgICAgMi45NzM4Ky0wLjA4ODUg
ICAgICAgID8KICAgZ2V0dGVyLXByb3RvdHlwZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgNC42NzExKy0wLjE1NzMgICAgID8gICAgICA0LjY4MDkrLTAuMDgwNCAgICAgICAgPwog
ICBnZXR0ZXItcmljaGFyZHMtdHJ5LWNhdGNoICAgICAgICAgICAgICAgICAgICAgICAxMDUxLjc3
ODkrLTY0LjYzOTYgICAgICAgIDEwMTEuNDQzMistMzguNTEyMiAgICAgICAgIG1pZ2h0IGJlIDEu
MDM5OXggZmFzdGVyCiAgIGdldHRlci1yaWNoYXJkcyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgNjYuNDg0NSstMTAuNjA1OSAgICAgICAgICA2Ni4zMDAzKy00LjUzMjggICAgICAg
IAogICBnZXR0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAz
LjEyODUrLTAuMTU4NSAgICAgPyAgICAgIDMuODQzNystMS40NTgwICAgICAgICA/IG1pZ2h0IGJl
IDEuMjI4Nnggc2xvd2VyCiAgIGdsb2JhbC1vYmplY3QtYWNjZXNzLXdpdGgtbXV0YXRpbmctc3Ry
dWN0dXJlICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDQuNjM3NistMC4xNDQwICAgICA/ICAgICAgNC44NTE0Ky0wLjQ5NjAgICAgICAgID8g
bWlnaHQgYmUgMS4wNDYxeCBzbG93ZXIKICAgZ2xvYmFsLXZhci1jb25zdC1pbmZlci1maXJlLWZy
b20tb3B0ICAgICAgICAgICAgICAgMC43ODkxKy0wLjExODkgICAgICAgICAgICAwLjc2OTErLTAu
MDk5NSAgICAgICAgICBtaWdodCBiZSAxLjAyNjF4IGZhc3RlcgogICBnbG9iYWwtdmFyLWNvbnN0
LWluZmVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjU5NjkrLTAuMDY2OCAgICAgPyAg
ICAgIDAuNjA0NCstMC4wNDA0ICAgICAgICA/IG1pZ2h0IGJlIDEuMDEyNXggc2xvd2VyCiAgIGhh
cmQtb3ZlcmZsb3ctY2hlY2stZXF1YWwgICAgICAgICAgICAgICAgICAgICAgICAgMjUuNTEyMSst
Mi4wNTQ5ICAgICAgICAgICAyMy44MTc4Ky0xLjMxMjAgICAgICAgICAgbWlnaHQgYmUgMS4wNzEx
eCBmYXN0ZXIKICAgaGFyZC1vdmVyZmxvdy1jaGVjayAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAyNC44MzQ2Ky0zLjA4MjggICAgID8gICAgIDI0Ljg4MjUrLTIuMjMyNSAgICAgICAgPwog
ICBIYXNoTWFwLXB1dC1nZXQtaXRlcmF0ZS1rZXlzICAgICAgICAgICAgICAgICAgICAgIDIzLjMw
NDYrLTAuNjIwNyAgICAgICAgICAgMjMuMTMwNCstMi4xMDA4ICAgICAgICAKICAgSGFzaE1hcC1w
dXQtZ2V0LWl0ZXJhdGUgICAgICAgICAgICAgICAgICAgICAgICAgICAyNC4yMTU5Ky0zLjkyMDQg
ICAgICAgICAgIDIyLjUyNTgrLTEuMjY1MCAgICAgICAgICBtaWdodCBiZSAxLjA3NTB4IGZhc3Rl
cgogICBIYXNoTWFwLXN0cmluZy1wdXQtZ2V0LWl0ZXJhdGUgICAgICAgICAgICAgICAgICAgIDI1
LjgxNzIrLTIuMjQzNSAgICAgICAgICAgMjMuODQyMistMC43MTM0ICAgICAgICAgIG1pZ2h0IGJl
IDEuMDgyOHggZmFzdGVyCiAgIGhvaXN0LW1ha2Utcm9wZSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDMuNjc5NSstMC4xNzY5ICAgICA/ICAgICAgMy43NDE1Ky0wLjE5MDMgICAg
ICAgID8gbWlnaHQgYmUgMS4wMTY5eCBzbG93ZXIKICAgaG9pc3QtcG9seS1jaGVjay1zdHJ1Y3R1
cmUtZWZmZWN0ZnVsLWxvb3AgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMy4wMDM0Ky0wLjIyMTggICAgID8gICAgICAzLjExNTYrLTAuMzU5
MiAgICAgICAgPyBtaWdodCBiZSAxLjAzNzR4IHNsb3dlcgogICBob2lzdC1wb2x5LWNoZWNrLXN0
cnVjdHVyZSAgICAgICAgICAgICAgICAgICAgICAgICAyLjExNDArLTAuMjc2MyAgICAgPyAgICAg
IDIuMTIxNSstMC4yNTM2ICAgICAgICA/CiAgIGltdWwtZG91YmxlLW9ubHkgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDMuMjA1OSstMC4xOTUwICAgICA/ICAgICAgMy4yMzkxKy0w
LjE3ODYgICAgICAgID8gbWlnaHQgYmUgMS4wMTA0eCBzbG93ZXIKICAgaW11bC1pbnQtb25seSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNS4yNzQwKy0wLjUwMjUgICAgICAg
ICAgICA1LjEyNzMrLTAuMjIxNiAgICAgICAgICBtaWdodCBiZSAxLjAyODZ4IGZhc3RlcgogICBp
bXVsLW1peGVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjIzNTUr
LTAuNjAzNyAgICAgICAgICAgIDMuMDE0NSstMC4wODU0ICAgICAgICAgIG1pZ2h0IGJlIDEuMDcz
M3ggZmFzdGVyCiAgIGluLWZvdXItY2FzZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMTguMDE2NSstMS44NzU0ICAgICA/ICAgICAxOS42MjI5Ky0xLjkxMTAgICAgICAgID8g
bWlnaHQgYmUgMS4wODkyeCBzbG93ZXIKICAgaW4tb25lLWNhc2UtZmFsc2UgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgNy44MzMxKy0wLjIxMzIgICAgID8gICAgICA4Ljc3MzArLTIu
MDQ0MiAgICAgICAgPyBtaWdodCBiZSAxLjEyMDB4IHNsb3dlcgogICBpbi1vbmUtY2FzZS10cnVl
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4LjY4MTcrLTEuOTI0NyAgICAgICAg
ICAgIDcuOTk0MSstMC40NjI5ICAgICAgICAgIG1pZ2h0IGJlIDEuMDg2MHggZmFzdGVyCiAgIGlu
LXR3by1jYXNlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcuNzc4OSst
MC40NTE5ICAgICA/ICAgICAgNy45MzQ4Ky0wLjM0OTUgICAgICAgID8gbWlnaHQgYmUgMS4wMjAw
eCBzbG93ZXIKICAgaW5kZXhlZC1wcm9wZXJ0aWVzLWluLW9iamVjdHMgICAgICAgICAgICAgICAg
ICAgICAgMy4xMTkxKy0wLjkyMDMgICAgICAgICAgICAzLjA2NDArLTAuNzQ3MyAgICAgICAgICBt
aWdodCBiZSAxLjAxODB4IGZhc3RlcgogICBpbmZlci1jbG9zdXJlLWNvbnN0LXRoZW4tbW92LW5v
LWlubGluZSAgICAgICAgICAgICAyLjgyNDArLTAuMTEwOSAgICAgPyAgICAgIDIuODY2OCstMC4y
NDg5ICAgICAgICA/IG1pZ2h0IGJlIDEuMDE1MXggc2xvd2VyCiAgIGluZmVyLWNsb3N1cmUtY29u
c3QtdGhlbi1tb3YgICAgICAgICAgICAgICAgICAgICAgIDYuNjI2OCstMC4zNjk2ICAgICA/ICAg
ICAgNi44MTkxKy0wLjM3MjcgICAgICAgID8gbWlnaHQgYmUgMS4wMjkweCBzbG93ZXIKICAgaW5m
ZXItY2xvc3VyZS1jb25zdC10aGVuLXB1dC10by1zY29wZS1uby1pbmxpbmUgICAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMS4xMDc2Ky0wLjI1
NzAgICAgID8gICAgIDEyLjA4MDgrLTAuNzMyOSAgICAgICAgPyBtaWdodCBiZSAxLjA4NzZ4IHNs
b3dlcgogICBpbmZlci1jbG9zdXJlLWNvbnN0LXRoZW4tcHV0LXRvLXNjb3BlICAgICAgICAgICAg
IDIzLjcwNTcrLTEuODI4NyAgICAgICAgICAgMjMuNDEyNystMS42OTA1ICAgICAgICAgIG1pZ2h0
IGJlIDEuMDEyNXggZmFzdGVyCiAgIGluZmVyLWNsb3N1cmUtY29uc3QtdGhlbi1yZWVudGVyLW5v
LWlubGluZSAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDUyLjIwNDIrLTMuMTYwMSAgICAgICAgICAgNTEuMjg2OSstMi4zNTUwICAgICAgICAg
IG1pZ2h0IGJlIDEuMDE3OXggZmFzdGVyCiAgIGluZmVyLWNsb3N1cmUtY29uc3QtdGhlbi1yZWVu
dGVyICAgICAgICAgICAgICAgICAgMjMuNjAwOSstMS4xOTkxICAgICA/ICAgICAyNC4yMDM1Ky0x
LjM4NzYgICAgICAgID8gbWlnaHQgYmUgMS4wMjU1eCBzbG93ZXIKICAgaW5mZXItY29uc3RhbnQt
Z2xvYmFsLXByb3BlcnR5ICAgICAgICAgICAgICAgICAgICAgMy4zODUzKy0wLjA2MDcgICAgID8g
ICAgICAzLjQzNjUrLTAuMDY5NyAgICAgICAgPyBtaWdodCBiZSAxLjAxNTF4IHNsb3dlcgogICBp
bmZlci1jb25zdGFudC1wcm9wZXJ0eSAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjEyMzkr
LTAuMDYyMiAgICAgPyAgICAgIDIuMTgyMCstMC4xNDAyICAgICAgICA/IG1pZ2h0IGJlIDEuMDI3
NHggc2xvd2VyCiAgIGluZmVyLW9uZS10aW1lLWNsb3N1cmUtdGVuLXZhcnMgICAgICAgICAgICAg
ICAgICAgIDcuNTc5NSstMS43MTg0ICAgICAgICAgICAgNi43OTA0Ky0wLjM2NjMgICAgICAgICAg
bWlnaHQgYmUgMS4xMTYyeCBmYXN0ZXIKICAgaW5mZXItb25lLXRpbWUtY2xvc3VyZS10d28tdmFy
cyAgICAgICAgICAgICAgICAgICAgNi40NTY4Ky0wLjUzNjAgICAgICAgICAgICA2LjI2MzArLTAu
MjA2MyAgICAgICAgICBtaWdodCBiZSAxLjAzMDl4IGZhc3RlcgogICBpbmZlci1vbmUtdGltZS1j
bG9zdXJlICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2LjI4MTcrLTAuMjUwNyAgICAgPyAg
ICAgIDYuNDE0MSstMC4zNzM4ICAgICAgICA/IG1pZ2h0IGJlIDEuMDIxMXggc2xvd2VyCiAgIGlu
ZmVyLW9uZS10aW1lLWRlZXAtY2xvc3VyZSAgICAgICAgICAgICAgICAgICAgICAgMTEuNzgzNyst
MC45MzY2ICAgICA/ICAgICAxMS44NDY2Ky0wLjc1ODUgICAgICAgID8KICAgaW5saW5lLWFyZ3Vt
ZW50cy1hY2Nlc3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy4xNzYxKy0wLjEzNTEgICAg
ID8gICAgICAzLjM4NTkrLTAuNjI1MSAgICAgICAgPyBtaWdodCBiZSAxLjA2NjF4IHNsb3dlcgog
ICBpbmxpbmUtYXJndW1lbnRzLWFsaWFzZWQtYWNjZXNzICAgICAgICAgICAgICAgICAgICAzLjIx
NDErLTAuMzY0MSAgICAgPyAgICAgIDMuMzE2MSstMC40MDcxICAgICAgICA/IG1pZ2h0IGJlIDEu
MDMxN3ggc2xvd2VyCiAgIGlubGluZS1hcmd1bWVudHMtbG9jYWwtZXNjYXBlICAgICAgICAgICAg
ICAgICAgICAgIDMuMzQ3OCstMC4zODgzICAgICA/ICAgICAgMy42MTMyKy0wLjU5OTAgICAgICAg
ID8gbWlnaHQgYmUgMS4wNzkzeCBzbG93ZXIKICAgaW5saW5lLWdldC1zY29wZWQtdmFyICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMi4yMjUwKy0wLjA4MDAgICAgID8gICAgICAyLjI3MTIr
LTAuMTY4MiAgICAgICAgPyBtaWdodCBiZSAxLjAyMDh4IHNsb3dlcgogICBpbmxpbmVkLXB1dC1i
eS1pZC10cmFuc2l0aW9uICAgICAgICAgICAgICAgICAgICAgICA3LjYwNDArLTAuNTMxMyAgICAg
ICAgICAgIDcuNTgyOCstMC4zOTk2ICAgICAgICAKICAgaW5saW5lZC1wdXQtYnktdmFsLXdpdGgt
c3RyaW5nLXRyYW5zaXRpb24gICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAzOS40NzI1Ky0yLjgxMDMgICAgICAgICAgIDM4LjQ2OTgrLTEuNTc4
MSAgICAgICAgICBtaWdodCBiZSAxLjAyNjF4IGZhc3RlcgogICBpbmxpbmVkLXB1dC1ieS12YWwt
d2l0aC1zeW1ib2wtdHJhbnNpdGlvbiAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDQwLjg0MjcrLTMuMjQyOSAgICAgICAgICAgNDAuMjY4OSst
Mi43MzIwICAgICAgICAgIG1pZ2h0IGJlIDEuMDE0MnggZmFzdGVyCiAgIGluc3RhbmNlb2YtYm91
bmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjEuNzg2NystMS43MjA4ICAgICAg
ICAgICAyMS40OTQ0Ky0xLjI1MDkgICAgICAgICAgbWlnaHQgYmUgMS4wMTM2eCBmYXN0ZXIKICAg
aW50LW9yLW90aGVyLWFicy10aGVuLWdldC1ieS12YWwgICAgICAgICAgICAgICAgICAgNC4yMjY3
Ky0wLjEyMTEgICAgID8gICAgICA0LjI3MTgrLTAuMjEzNSAgICAgICAgPyBtaWdodCBiZSAxLjAx
MDd4IHNsb3dlcgogICBpbnQtb3Itb3RoZXItYWJzLXplcm8tdGhlbi1nZXQtYnktdmFsICAgICAg
ICAgICAgIDE2LjQ5MzArLTEuMjI3NCAgICAgPyAgICAgMTguMTU4NCstMS40NjEzICAgICAgICA/
IG1pZ2h0IGJlIDEuMTAxMHggc2xvd2VyCiAgIGludC1vci1vdGhlci1hZGQtdGhlbi1nZXQtYnkt
dmFsICAgICAgICAgICAgICAgICAgIDQuMDc2NystMC4xMzgyICAgICAgICAgICAgMy45NzY5Ky0w
LjA5MDcgICAgICAgICAgbWlnaHQgYmUgMS4wMjUxeCBmYXN0ZXIKICAgaW50LW9yLW90aGVyLWFk
ZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC41ODI0Ky0wLjExNTIgICAgID8g
ICAgICA0Ljg0MzcrLTAuMzYzNiAgICAgICAgPyBtaWdodCBiZSAxLjA1NzB4IHNsb3dlcgogICBp
bnQtb3Itb3RoZXItZGl2LXRoZW4tZ2V0LWJ5LXZhbCAgICAgICAgICAgICAgICAgICAzLjc4MDMr
LTAuNDQ2NiAgICAgICAgICAgIDMuNTQ2MCstMC4xMzk5ICAgICAgICAgIG1pZ2h0IGJlIDEuMDY2
MXggZmFzdGVyCiAgIGludC1vci1vdGhlci1tYXgtdGhlbi1nZXQtYnktdmFsICAgICAgICAgICAg
ICAgICAgIDMuNzcxOCstMC4wMzU2ICAgICA/ICAgICAgNC4yMDcwKy0wLjk3MTcgICAgICAgID8g
bWlnaHQgYmUgMS4xMTU0eCBzbG93ZXIKICAgaW50LW9yLW90aGVyLW1pbi10aGVuLWdldC1ieS12
YWwgICAgICAgICAgICAgICAgICAgNC4wOTI4Ky0wLjc0MjMgICAgICAgICAgICAzLjcwNzIrLTAu
MTUyOCAgICAgICAgICBtaWdodCBiZSAxLjEwNDB4IGZhc3RlcgogICBpbnQtb3Itb3RoZXItbW9k
LXRoZW4tZ2V0LWJ5LXZhbCAgICAgICAgICAgICAgICAgICAzLjQxODArLTAuMDU0OSAgICAgPyAg
ICAgIDMuNDU4OSstMC4xNDcwICAgICAgICA/IG1pZ2h0IGJlIDEuMDEyMHggc2xvd2VyCiAgIGlu
dC1vci1vdGhlci1tdWwtdGhlbi1nZXQtYnktdmFsICAgICAgICAgICAgICAgICAgIDMuNjM1NSst
MC4xMjM4ICAgICAhICAgICAgNS4yNTM0Ky0wLjE0NjYgICAgICAgICEgZGVmaW5pdGVseSAxLjQ0
NTB4IHNsb3dlcgogICBpbnQtb3Itb3RoZXItbmVnLXRoZW4tZ2V0LWJ5LXZhbCAgICAgICAgICAg
ICAgICAgICA0LjU3ODArLTEuMTA2OSAgICAgPyAgICAgIDQuNzI3NSstMS40Mzc5ICAgICAgICA/
IG1pZ2h0IGJlIDEuMDMyNnggc2xvd2VyCiAgIGludC1vci1vdGhlci1uZWctemVyby10aGVuLWdl
dC1ieS12YWwgICAgICAgICAgICAgMTYuODQzNistMS4xNjYyICAgICA/ICAgICAxNy4zNTEzKy0x
LjMxOTAgICAgICAgID8gbWlnaHQgYmUgMS4wMzAxeCBzbG93ZXIKICAgaW50LW9yLW90aGVyLXN1
Yi10aGVuLWdldC1ieS12YWwgICAgICAgICAgICAgICAgICAgNC43MjA2Ky0xLjAxMzIgICAgICEg
ICAgICA2LjI2OTArLTAuMTc3NiAgICAgICAgISBkZWZpbml0ZWx5IDEuMzI4MHggc2xvd2VyCiAg
IGludC1vci1vdGhlci1zdWIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuNDk1
OCstMC4xNTY0ICAgICAhICAgICAgNC4xMDQyKy0wLjE0MjIgICAgICAgICEgZGVmaW5pdGVseSAx
LjE3NDB4IHNsb3dlcgogICBpbnQtb3ZlcmZsb3ctbG9jYWwgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA0LjA0NTErLTAuMzQyNyAgICAgICAgICAgIDMuODkyMystMC4xMDIyICAgICAg
ICAgIG1pZ2h0IGJlIDEuMDM5MnggZmFzdGVyCiAgIEludDE2QXJyYXktYWxsb2MtbG9uZy1saXZl
ZCAgICAgICAgICAgICAgICAgICAgICAgNTIuMDQ5OCstMS41NzkxICAgICAgICAgICA1MS41MTAw
Ky0yLjU3OTIgICAgICAgICAgbWlnaHQgYmUgMS4wMTA1eCBmYXN0ZXIKICAgSW50MTZBcnJheS1i
dWJibGUtc29ydC13aXRoLWJ5dGVMZW5ndGggICAgICAgICAgICAxNy4xNTE2Ky0yLjg5MzkgICAg
ICAgICAgIDE1Ljk3NzIrLTAuNzU2NiAgICAgICAgICBtaWdodCBiZSAxLjA3MzV4IGZhc3Rlcgog
ICBJbnQxNkFycmF5LWJ1YmJsZS1zb3J0ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE1Ljk2
ODgrLTEuNTE0MyAgICAgICAgICAgMTUuMjAyOCstMC45ODMzICAgICAgICAgIG1pZ2h0IGJlIDEu
MDUwNHggZmFzdGVyCiAgIEludDE2QXJyYXktbG9hZC1pbnQtbXVsICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDEuNjgyNystMC4wNjU3ICAgICA/ICAgICAgMi4xMjUxKy0wLjc2MTkgICAgICAg
ID8gbWlnaHQgYmUgMS4yNjI5eCBzbG93ZXIKICAgSW50MTZBcnJheS10by1JbnQzMkFycmF5LXNl
dCAgICAgICAgICAgICAgICAgICAgICAzOC4zNzA0Ky0xLjg0NzIgICAgID8gICAgIDM4LjY4ODIr
LTEuNjk0MyAgICAgICAgPwogICBJbnQzMkFycmF5LWFsbG9jLWxhcmdlICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDEzLjMxMTArLTEuNjgzNCAgICAgICAgICAgMTIuNTQ4NystMC42MzU3ICAg
ICAgICAgIG1pZ2h0IGJlIDEuMDYwN3ggZmFzdGVyCiAgIEludDMyQXJyYXktYWxsb2MtbG9uZy1s
aXZlZCAgICAgICAgICAgICAgICAgICAgICAgNTUuOTYzOSstMC44NzMzICAgICA/ICAgICA1NS45
OTg3Ky0zLjI4NTIgICAgICAgID8KICAgSW50MzJBcnJheS1hbGxvYyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMi41ODUxKy0wLjE5MTEgICAgICAgICAgICAyLjUyMTIrLTAuMTE5
OCAgICAgICAgICBtaWdodCBiZSAxLjAyNTN4IGZhc3RlcgogICBJbnQzMkFycmF5LUludDhBcnJh
eS12aWV3LWFsbG9jICAgICAgICAgICAgICAgICAgICA2LjU1MzgrLTAuNDEwOSAgICAgPyAgICAg
IDYuOTIyMistMS4wNTQ5ICAgICAgICA/IG1pZ2h0IGJlIDEuMDU2Mnggc2xvd2VyCiAgIGludDUy
LXNwaWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuOTgyNCstMC4y
MTgzICAgICAgICAgICAgNC45NjExKy0wLjE2NDIgICAgICAgIAogICBJbnQ4QXJyYXktYWxsb2Mt
bG9uZy1saXZlZCAgICAgICAgICAgICAgICAgICAgICAgIDQ4LjMwMTErLTEuNzg4MyAgICAgPyAg
ICAgNDkuNjQ5MistMi44ODU2ICAgICAgICA/IG1pZ2h0IGJlIDEuMDI3OXggc2xvd2VyCiAgIElu
dDhBcnJheS1sb2FkLXdpdGgtYnl0ZUxlbmd0aCAgICAgICAgICAgICAgICAgICAgIDMuNTQzMyst
MC4xNTAzICAgICAgICAgICAgMy41MjkwKy0wLjE0OTEgICAgICAgIAogICBJbnQ4QXJyYXktbG9h
ZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjU4MTkrLTAuMTkxMyAgICAg
PyAgICAgIDMuNjM5NystMC4xNDE5ICAgICAgICA/IG1pZ2h0IGJlIDEuMDE2Mnggc2xvd2VyCiAg
IGludGVnZXItZGl2aWRlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAuNTAz
OCstMC4zMDE0ICAgICA/ICAgICAxMC43MzYzKy0wLjQ0NDEgICAgICAgID8gbWlnaHQgYmUgMS4w
MjIxeCBzbG93ZXIKICAgaW50ZWdlci1tb2R1bG8gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMS40NDQ2Ky0wLjA1NjggICAgID8gICAgICAxLjQ5ODcrLTAuMDYwMSAgICAgICAg
PyBtaWdodCBiZSAxLjAzNzV4IHNsb3dlcgogICBpcy1ib29sZWFuLWZvbGQtdHJpY2t5ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAyLjg0MDQrLTAuMTY2MSAgICAgPyAgICAgIDIuODU0NSst
MC4xMjMzICAgICAgICA/CiAgIGlzLWJvb2xlYW4tZm9sZCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDIuMTIzNistMC4xMTcwICAgICA/ICAgICAgMi4xOTE2Ky0wLjEzMzYgICAg
ICAgID8gbWlnaHQgYmUgMS4wMzIweCBzbG93ZXIKICAgaXMtZnVuY3Rpb24tZm9sZC10cmlja3kt
aW50ZXJuYWwtZnVuY3Rpb24gICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAxMC42MzcwKy0wLjQ5ODYgICAgICAgICAgIDEwLjI4NTErLTAuNDk1
NyAgICAgICAgICBtaWdodCBiZSAxLjAzNDJ4IGZhc3RlcgogICBpcy1mdW5jdGlvbi1mb2xkLXRy
aWNreSAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjg4NTkrLTAuMDM4OCAgICAgPyAgICAg
IDMuMjYzMistMS4xMDQ0ICAgICAgICA/IG1pZ2h0IGJlIDEuMTMwN3ggc2xvd2VyCiAgIGlzLWZ1
bmN0aW9uLWZvbGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuMDkxMCstMC4w
NTUzICAgICA/ICAgICAgMi4xOTQzKy0wLjI2NjEgICAgICAgID8gbWlnaHQgYmUgMS4wNDk0eCBz
bG93ZXIKICAgaXMtbnVtYmVyLWZvbGQtdHJpY2t5ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMi45NjY4Ky0wLjI0NDggICAgICAgICAgICAyLjg2ODcrLTAuMTgyNSAgICAgICAgICBtaWdo
dCBiZSAxLjAzNDJ4IGZhc3RlcgogICBpcy1udW1iZXItZm9sZCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAyLjUzMTQrLTAuNjgwMiAgICAgICAgICAgIDIuMDQ5NystMC4wNzIz
ICAgICAgICAgIG1pZ2h0IGJlIDEuMjM1MHggZmFzdGVyCiAgIGlzLW9iamVjdC1vci1udWxsLWZv
bGQtZnVuY3Rpb25zICAgICAgICAgICAgICAgICAgIDIuMzIwMSstMC40NDE1ICAgICAgICAgICAg
Mi4xODk1Ky0wLjEzMjYgICAgICAgICAgbWlnaHQgYmUgMS4wNTk2eCBmYXN0ZXIKICAgaXMtb2Jq
ZWN0LW9yLW51bGwtZm9sZC1sZXNzLXRyaWNreSAgICAgICAgICAgICAgICAgMi45MjU3Ky0wLjEy
MTUgICAgICAgICAgICAyLjkwODMrLTAuMTk3MCAgICAgICAgCiAgIGlzLW9iamVjdC1vci1udWxs
LWZvbGQtdHJpY2t5ICAgICAgICAgICAgICAgICAgICAgIDMuMjY2NistMC4xMDczICAgICA/ICAg
ICAgMy4zODE0Ky0wLjMwMzkgICAgICAgID8gbWlnaHQgYmUgMS4wMzUyeCBzbG93ZXIKICAgaXMt
b2JqZWN0LW9yLW51bGwtZm9sZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi4wODk0Ky0w
LjA3ODYgICAgID8gICAgICAyLjExNDcrLTAuMDYwMiAgICAgICAgPyBtaWdodCBiZSAxLjAxMjF4
IHNsb3dlcgogICBpcy1vYmplY3Qtb3ItbnVsbC10cmlja2llci1mdW5jdGlvbiAgICAgICAgICAg
ICAgICAzLjE3MzMrLTAuMzkwNyAgICAgICAgICAgIDIuOTkzOSstMC4yMDI5ICAgICAgICAgIG1p
Z2h0IGJlIDEuMDU5OXggZmFzdGVyCiAgIGlzLW9iamVjdC1vci1udWxsLXRyaWNraWVyLWludGVy
bmFsLWZ1bmN0aW9uICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMTAuMzczMistMC42Nzc3ICAgICA/ICAgICAxMC40NTkxKy0xLjE2MDIgICAg
ICAgID8KICAgaXMtb2JqZWN0LW9yLW51bGwtdHJpY2t5LWZ1bmN0aW9uICAgICAgICAgICAgICAg
ICAgMi45MTgzKy0wLjEwNjcgICAgICAgICAgICAyLjkwOTkrLTAuMDgyMyAgICAgICAgCiAgIGlz
LW9iamVjdC1vci1udWxsLXRyaWNreS1pbnRlcm5hbC1mdW5jdGlvbiAgIAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3LjEzNDIrLTAuNDA0NiAg
ICAgICAgICAgIDYuOTMyNistMC4xMzcyICAgICAgICAgIG1pZ2h0IGJlIDEuMDI5MXggZmFzdGVy
CiAgIGlzLXN0cmluZy1mb2xkLXRyaWNreSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIu
OTU5NCstMC4yMzQ2ICAgICAgICAgICAgMi43OTI3Ky0wLjEwNzkgICAgICAgICAgbWlnaHQgYmUg
MS4wNTk3eCBmYXN0ZXIKICAgaXMtc3RyaW5nLWZvbGQgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMi4xNDkwKy0wLjExNzggICAgICAgICAgICAyLjA3NDYrLTAuMDk2NSAgICAg
ICAgICBtaWdodCBiZSAxLjAzNTh4IGZhc3RlcgogICBpcy11bmRlZmluZWQtZm9sZC10cmlja3kg
ICAgICAgICAgICAgICAgICAgICAgICAgICAyLjUzOTQrLTAuMTI0NCAgICAgICAgICAgIDIuNTAw
OSstMC4wNjQ5ICAgICAgICAgIG1pZ2h0IGJlIDEuMDE1NHggZmFzdGVyCiAgIGlzLXVuZGVmaW5l
ZC1mb2xkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuMDY1NSstMC4wOTQ4ICAg
ICA/ICAgICAgMi4xMjEzKy0wLjA5NDcgICAgICAgID8gbWlnaHQgYmUgMS4wMjcweCBzbG93ZXIK
ICAgSlNPTlAtbmVnYXRpdmUtMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC4y
MDkxKy0wLjAxMTYgICAgICAgICAgICAwLjE5ODErLTAuMDIyMiAgICAgICAgICBtaWdodCBiZSAx
LjA1NTl4IGZhc3RlcgogICBsYXJnZS1pbnQtY2FwdHVyZWQgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAzLjMxNDUrLTAuMTIyNyAgICAgPyAgICAgIDMuNDA1NistMC40MDU5ICAgICAg
ICA/IG1pZ2h0IGJlIDEuMDI3NXggc2xvd2VyCiAgIGxhcmdlLWludC1uZWcgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMTMuMjgxMistMC44NDI3ICAgICA/ICAgICAxMy41MDQ3
Ky0wLjc5OTkgICAgICAgID8gbWlnaHQgYmUgMS4wMTY4eCBzbG93ZXIKICAgbGFyZ2UtaW50ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMi4wMTkyKy0wLjc4NTUgICAg
ICAgICAgIDExLjgzMzkrLTAuNTYyMiAgICAgICAgICBtaWdodCBiZSAxLjAxNTd4IGZhc3Rlcgog
ICBsb2FkLXZhcmFyZ3MtZWxpbWluYXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgIDE4LjM2
NTgrLTAuOTMzNCAgICAgPyAgICAgMTguODA3NistMS4xMzgxICAgICAgICA/IG1pZ2h0IGJlIDEu
MDI0MXggc2xvd2VyCiAgIGxvY2FsZS1jb21wYXJlICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMjIuNTg3MSstMC4yODE4ICAgICA/ICAgICAyNC41NDYwKy0yLjExMTIgICAgICAg
ID8gbWlnaHQgYmUgMS4wODY3eCBzbG93ZXIKICAgbG9naWNhbC1ub3Qtd2VpcmQtdHlwZXMgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMi40Mzk1Ky0wLjA4MDggICAgICAgICAgICAyLjQwNzUr
LTAuMTE0OCAgICAgICAgICBtaWdodCBiZSAxLjAxMzN4IGZhc3RlcgogICBsb2dpY2FsLW5vdCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjY3MjgrLTAuMjA3MSAgICAg
ICAgICAgIDMuNjExMistMC4xMTg3ICAgICAgICAgIG1pZ2h0IGJlIDEuMDE3MHggZmFzdGVyCiAg
IGxvdHMtb2YtZmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDkuMTM3
MCstMi40MDM2ICAgICAgICAgICAgOC4yODYwKy0wLjQ5NDMgICAgICAgICAgbWlnaHQgYmUgMS4x
MDI3eCBmYXN0ZXIKICAgbWFrZS1pbmRleGVkLXN0b3JhZ2UgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMi40OTc1Ky0wLjAyNzcgICAgICAgICAgICAyLjQ0MDYrLTAuMjU3NyAgICAgICAg
ICBtaWdodCBiZSAxLjAyMzN4IGZhc3RlcgogICBtYWtlLXJvcGUtY3NlICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAzLjY4MzYrLTAuNDI4MSAgICAgICAgICAgIDMuNTM2Nyst
MC4zNTkzICAgICAgICAgIG1pZ2h0IGJlIDEuMDQxNXggZmFzdGVyCiAgIG1hbnktZm9yZWFjaC1j
YWxscyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTIuNTY1OCstMi43MTM2ICAgICAg
ICAgICAxMS44MTcxKy0wLjYyNzcgICAgICAgICAgbWlnaHQgYmUgMS4wNjM0eCBmYXN0ZXIKICAg
bWFueS1yZXBlYXQtc3RvcmVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNS44OTcx
Ky0wLjM4NTAgICAgID8gICAgIDE2LjQ1MTgrLTAuNzczMyAgICAgICAgPyBtaWdodCBiZSAxLjAz
NDl4IHNsb3dlcgogICBtYXAtZm9yLWVhY2ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA0LjgxMDkrLTAuMjQ0NyAgICAgICAgICAgIDQuODAzNSstMC41NDE3ICAgICAgICAK
ICAgbWFwLWZvci1vZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNS4y
MDM0Ky0xLjI3MzMgICAgICAgICAgIDEzLjkzNjgrLTAuNTM5NiAgICAgICAgICBtaWdodCBiZSAx
LjA5MDl4IGZhc3RlcgogICBtYXJzYWdsaWEtbGFyZ2VyLWludHMgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDMxLjU2OTUrLTEuODk1MyAgICAgISAgICAgNjkuNDI4MystNC40Mjg3ICAgICAg
ICAhIGRlZmluaXRlbHkgMi4xOTkyeCBzbG93ZXIKICAgbWFyc2FnbGlhLW9zci1lbnRyeSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAxOC4yMjI1Ky0xLjMxNjYgICAgICAgICAgIDE4LjA1
MTQrLTEuMjE5NiAgICAgICAgCiAgIG1hdGgtcmFuZG9tICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMTQuOTU1NSstMS41NTk0ICAgICA/ICAgICAxNS4zMjkwKy0xLjM5NDYg
ICAgICAgID8gbWlnaHQgYmUgMS4wMjUweCBzbG93ZXIKICAgbWF0aC10cnVuYyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNS43NDc2Ky0wLjM4NTggICAgICAgICAgICA1
LjQ0NjArLTAuMjA5OSAgICAgICAgICBtaWdodCBiZSAxLjA1NTR4IGZhc3RlcgogICBtYXRoLXdp
dGgtb3V0LW9mLWJvdW5kcy1hcnJheS12YWx1ZXMgICAgICAgICAgICAgIDMxLjQzNTMrLTMuMDA2
MSAgICAgPyAgICAgMzMuMTE0MistNC4wODE3ICAgICAgICA/IG1pZ2h0IGJlIDEuMDUzNHggc2xv
d2VyCiAgIG1heC1ib29sZWFuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDIuMjYzMystMC4wODk4ICAgICAgICAgICAgMi4xODE2Ky0wLjA2MjEgICAgICAgICAgbWlnaHQg
YmUgMS4wMzc1eCBmYXN0ZXIKICAgbWVnYW1vcnBoaWMtbG9hZCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAzNC4xMzQ0Ky00LjkxMzYgICAgICAgICAgIDMyLjAxMDMrLTMuNDA4MSAg
ICAgICAgICBtaWdodCBiZSAxLjA2NjR4IGZhc3RlcgogICBtZXRob2Qtb24tbnVtYmVyICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIwLjIyNTIrLTIuMTM3OCAgICAgICAgICAgMTku
NTkzNSstMS44MzY4ICAgICAgICAgIG1pZ2h0IGJlIDEuMDMyMnggZmFzdGVyCiAgIG1pbi1ib29s
ZWFuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuMjAyMistMC4wNzIy
ICAgICA/ICAgICAgMi4yOTY2Ky0wLjExMjUgICAgICAgID8gbWlnaHQgYmUgMS4wNDI5eCBzbG93
ZXIKICAgbWludXMtYm9vbGVhbi1kb3VibGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Mi4zMDc0Ky0wLjEzNTUgICAgICAgICAgICAyLjE2NTErLTAuMDgzMiAgICAgICAgICBtaWdodCBi
ZSAxLjA2NTd4IGZhc3RlcgogICBtaW51cy1ib29sZWFuICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAyLjE5MzkrLTAuMzQzMSAgICAgICAgICAgIDIuMDQzNystMC4xMjg0ICAg
ICAgICAgIG1pZ2h0IGJlIDEuMDczNXggZmFzdGVyCiAgIG1pc2Mtc3RyaWN0LWVxICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMTkuODYzOSstMS4wNjI4ICAgICA/ICAgICAyMC4w
MDQzKy0xLjA0NjIgICAgICAgID8KICAgbW9kLWJvb2xlYW4tZG91YmxlICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgOS42NTM5Ky0wLjcxNjAgICAgID8gICAgIDEwLjk1OTkrLTIuNzY1
MiAgICAgICAgPyBtaWdodCBiZSAxLjEzNTN4IHNsb3dlcgogICBtb2QtYm9vbGVhbiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3LjIxODMrLTAuNTU3MyAgICAgICAgICAg
IDcuMDEwNystMC4yMTA2ICAgICAgICAgIG1pZ2h0IGJlIDEuMDI5NnggZmFzdGVyCiAgIG11bC1i
b29sZWFuLWRvdWJsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuNzY1MistMC4y
ODUwICAgICAgICAgICAgMi42NTMzKy0wLjEzNTAgICAgICAgICAgbWlnaHQgYmUgMS4wNDIyeCBm
YXN0ZXIKICAgbXVsLWJvb2xlYW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMi4zODQ2Ky0wLjE0NTAgICAgICAgICAgICAyLjMyNTcrLTAuMTQzMiAgICAgICAgICBtaWdo
dCBiZSAxLjAyNTN4IGZhc3RlcgogICBuZWctYm9vbGVhbiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAyLjM2NTIrLTAuMjA4MCAgICAgICAgICAgIDIuMzYyNSstMC4xNDIw
ICAgICAgICAKICAgbmVnYXRpdmUtemVyby1kaXZpZGUgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMC4zMTk3Ky0wLjA1MjkgICAgID8gICAgICAwLjMzNDArLTAuMDY2OCAgICAgICAgPyBt
aWdodCBiZSAxLjA0NDV4IHNsb3dlcgogICBuZWdhdGl2ZS16ZXJvLW1vZHVsbyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAwLjMxMTQrLTAuMDI0MSAgICAgICAgICAgIDAuMjg5MystMC4w
MTY0ICAgICAgICAgIG1pZ2h0IGJlIDEuMDc2N3ggZmFzdGVyCiAgIG5lZ2F0aXZlLXplcm8tbmVn
YXRlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuMjgyMCstMC4wMzk0ICAgICAgICAg
ICAgMC4yNzc4Ky0wLjAzMTggICAgICAgICAgbWlnaHQgYmUgMS4wMTQ5eCBmYXN0ZXIKICAgbmVz
dGVkLWZ1bmN0aW9uLXBhcnNpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAzNS44MzM2Ky0z
LjE2ODAgICAgICAgICAgIDM0LjQ4NTArLTEuNzEzNyAgICAgICAgICBtaWdodCBiZSAxLjAzOTF4
IGZhc3RlcgogICBuZXctYXJyYXktYnVmZmVyLWRlYWQgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDc3LjUxMjIrLTEuNjQ0MyAgICAgPyAgICAgNzkuMTQyNSstNS42NTk1ICAgICAgICA/IG1p
Z2h0IGJlIDEuMDIxMHggc2xvd2VyCiAgIG5ldy1hcnJheS1idWZmZXItcHVzaCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDUuMjE3NistMC40MjQ3ICAgICAgICAgICAgNS4wNjE3Ky0wLjM4
MDggICAgICAgICAgbWlnaHQgYmUgMS4wMzA4eCBmYXN0ZXIKICAgbmV3LWFycmF5LWRlYWQgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNy42MjI0Ky0xLjUyMzIgICAgICAgICAg
ICA2Ljg0MTErLTAuNTU0NCAgICAgICAgICBtaWdodCBiZSAxLjExNDJ4IGZhc3RlcgogICBuZXct
YXJyYXktcHVzaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjE0ODkrLTAu
NDI2NiAgICAgICAgICAgIDIuODk0OCstMC4wMzUwICAgICAgICAgIG1pZ2h0IGJlIDEuMDg3OHgg
ZmFzdGVyCiAgIG5vLWlubGluZS1jb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMzAuNjI1OSstMC45MzIzICAgICA/ICAgICAzMC44MjE1Ky0yLjExMTMgICAgICAgID8KICAg
bnVtYmVyLXRlc3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy4xMTg5
Ky0wLjA4NjYgICAgICAgICAgICAyLjg2ODgrLTAuMzM4MiAgICAgICAgICBtaWdodCBiZSAxLjA4
NzJ4IGZhc3RlcgogICBvYmplY3QtY2xvc3VyZS1jYWxsICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA0LjgxNDYrLTAuMjgxNSAgICAgPyAgICAgIDUuNDczNistMS4xNDA1ICAgICAgICA/
IG1pZ2h0IGJlIDEuMTM2OXggc2xvd2VyCiAgIG9iamVjdC1nZXQtb3duLXByb3BlcnR5LXN5bWJv
bHMtb24tbGFyZ2UtYXJyYXkgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMS4xMTc4Ky0wLjA2OTQgICAgICAgICAgICAxLjA1NzkrLTAuMDk1
OCAgICAgICAgICBtaWdodCBiZSAxLjA1Njd4IGZhc3RlcgogICBvYmplY3QtaW50LWFkZC1hcnJh
eSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDc5LjAwMDUrLTIuMTg2OCAgICAgXiAgICAg
IDkuMjAwNCstMC4xNzU3ICAgICAgICBeIGRlZmluaXRlbHkgOC41ODY2eCBmYXN0ZXIKICAgb2Jq
ZWN0LWludC1hZGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMi45ODAzKy0y
LjU2MjQgICAgIF4gICAgIDEzLjE3NDcrLTAuNjg0NCAgICAgICAgXiBkZWZpbml0ZWx5IDEuNzQ0
M3ggZmFzdGVyCiAgIG9iamVjdC1pbnQtbXVsLWFycmF5ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgNTYuMzA4NistMi42NDQxICAgICBeICAgICAxMC45MTE1Ky0wLjE4MjcgICAgICAgIF4g
ZGVmaW5pdGVseSA1LjE2MDV4IGZhc3RlcgogICBvYmplY3QtaW50LXN1Yi1hcnJheSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDU0Ljc3NDgrLTMuNjIyMyAgICAgXiAgICAgIDkuNjA5MSst
MC40NTE0ICAgICAgICBeIGRlZmluaXRlbHkgNS43MDAzeCBmYXN0ZXIKICAgb2JqZWN0LWludC1z
dWIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzNS4xODk4Ky0xLjkwMTcgICAg
IF4gICAgIDEzLjk4OTUrLTIuMTE3NiAgICAgICAgXiBkZWZpbml0ZWx5IDIuNTE1NHggZmFzdGVy
CiAgIG9iamVjdC10ZXN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIu
OTk3OCstMC4yMTE5ICAgICAgICAgICAgMi44MTI3Ky0wLjc2NjcgICAgICAgICAgbWlnaHQgYmUg
MS4wNjU4eCBmYXN0ZXIKICAgb2J2aW91cy1zaW5rLXBhdGhvbG9neS10YWtlbiAgICAgICAgICAg
ICAgICAgICAgIDExOC4yNjI1Ky02LjA5MzUgICAgICAgICAgMTE0LjczMjErLTEuOTQ4NiAgICAg
ICAgICBtaWdodCBiZSAxLjAzMDh4IGZhc3RlcgogICBvYnZpb3VzLXNpbmstcGF0aG9sb2d5ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDE3LjQwNTcrLTAuNzA5MCAgICAgISAgICAgMjAuNjEz
OSstMi4zMjI0ICAgICAgICAhIGRlZmluaXRlbHkgMS4xODQzeCBzbG93ZXIKICAgb2J2aW91c2x5
LWVsaWRhYmxlLW5ldy1vYmplY3QgICAgICAgICAgICAgICAgICAgICAxNS45MDY1Ky0xLjExODQg
ICAgICAgICAgIDE1LjUzMjkrLTAuNjY4MyAgICAgICAgICBtaWdodCBiZSAxLjAyNDF4IGZhc3Rl
cgogICBwbHVzLWJvb2xlYW4tYXJpdGggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAy
LjA1NDArLTAuMTAyMiAgICAgPyAgICAgIDIuMzE2NSstMC42Mzk0ICAgICAgICA/IG1pZ2h0IGJl
IDEuMTI3OHggc2xvd2VyCiAgIHBsdXMtYm9vbGVhbi1kb3VibGUgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDIuMjU0MystMC4wODQzICAgICA/ICAgICAgMi4yODM1Ky0wLjA4ODYgICAg
ICAgID8gbWlnaHQgYmUgMS4wMTMweCBzbG93ZXIKICAgcGx1cy1ib29sZWFuICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMS45Nzc4Ky0wLjA3MjIgICAgID8gICAgICAxLjk4
NDArLTAuMjAzMiAgICAgICAgPwogICBwb2x5LWNoYWluLWFjY2Vzcy1kaWZmZXJlbnQtcHJvdG90
eXBlcy1zaW1wbGUgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMi41NjcwKy0wLjI1MTEgICAgICAgICAgICAyLjM3NjkrLTAuMTI5NCAgICAg
ICAgICBtaWdodCBiZSAxLjA4MDB4IGZhc3RlcgogICBwb2x5LWNoYWluLWFjY2Vzcy1kaWZmZXJl
bnQtcHJvdG90eXBlcyAgICAgICAgICAgICAyLjU5MTkrLTAuNDY5MyAgICAgICAgICAgIDIuNDYy
MCstMC4xMzY3ICAgICAgICAgIG1pZ2h0IGJlIDEuMDUyOHggZmFzdGVyCiAgIHBvbHktY2hhaW4t
YWNjZXNzLXNpbXBsZXIgICAgICAgICAgICAgICAgICAgICAgICAgIDIuNDk0MystMC4yMjQ2ICAg
ICAgICAgICAgMi4zOTM3Ky0wLjEzMzEgICAgICAgICAgbWlnaHQgYmUgMS4wNDIweCBmYXN0ZXIK
ICAgcG9seS1jaGFpbi1hY2Nlc3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi4z
Nzc1Ky0wLjA2NzggICAgID8gICAgICAyLjQ0MTUrLTAuMTY5NSAgICAgICAgPyBtaWdodCBiZSAx
LjAyNjl4IHNsb3dlcgogICBwb2x5LXN0cmljdGVxICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDUxLjQwNDMrLTIuODQxNyAgICAgPyAgICAgNTIuMzA5MCstMi41NjI3ICAgICAg
ICA/IG1pZ2h0IGJlIDEuMDE3Nnggc2xvd2VyCiAgIHBvbHltb3JwaGljLWFycmF5LWNhbGwgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDEuMjc2MystMC4yNzE1ICAgICAgICAgICAgMS4yNDE1
Ky0wLjIzNDUgICAgICAgICAgbWlnaHQgYmUgMS4wMjgweCBmYXN0ZXIKICAgcG9seW1vcnBoaWMt
Z2V0LWJ5LWlkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMS45MTg5Ky0wLjEyNjUgICAg
ID8gICAgICAyLjAxOTYrLTAuNDAxNiAgICAgICAgPyBtaWdodCBiZSAxLjA1MjR4IHNsb3dlcgog
ICBwb2x5bW9ycGhpYy1wdXQtYnktaWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI4Ljk0
OTIrLTIuODU2MiAgICAgPyAgICAgMzEuNDQ1MistNi40MjgwICAgICAgICA/IG1pZ2h0IGJlIDEu
MDg2Mnggc2xvd2VyCiAgIHBvbHltb3JwaGljLXB1dC1ieS12YWwtd2l0aC1zdHJpbmcgICAgICAg
ICAgICAgICAgMzIuODQyMistNy44MjgwICAgICAgICAgICAyOC4wODMzKy0yLjU3NTQgICAgICAg
ICAgbWlnaHQgYmUgMS4xNjk1eCBmYXN0ZXIKICAgcG9seW1vcnBoaWMtcHV0LWJ5LXZhbC13aXRo
LXN5bWJvbCAgICAgICAgICAgICAgICAzMi4xODE1Ky04LjkxMzEgICAgICAgICAgIDI4Ljc2NjQr
LTEuNzYwMyAgICAgICAgICBtaWdodCBiZSAxLjExODd4IGZhc3RlcgogICBwb2x5bW9ycGhpYy1z
dHJ1Y3R1cmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEzLjUwOTMrLTAuOTY5NyAgICAg
ICAgICAgMTIuOTcxNistMC44NzY0ICAgICAgICAgIG1pZ2h0IGJlIDEuMDQxNXggZmFzdGVyCiAg
IHBvbHl2YXJpYW50LW1vbm9tb3JwaGljLWdldC1ieS1pZCAgICAgICAgICAgICAgICAgIDMuNDU0
OSstMC4wOTUxICAgICA/ICAgICAgMy42MjI5Ky0wLjE0MjcgICAgICAgID8gbWlnaHQgYmUgMS4w
NDg2eCBzbG93ZXIKICAgcHJvdG8tZ2V0dGVyLWFjY2VzcyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAxMS40MTQzKy0wLjU4NDYgICAgICAgICAgIDEwLjY3MzYrLTAuMTc0MiAgICAgICAg
ICBtaWdodCBiZSAxLjA2OTR4IGZhc3RlcgogICBwcm90b3R5cGUtYWNjZXNzLXdpdGgtbXV0YXRp
bmctcHJvdG90eXBlICAgICAgICAgICA0LjQzOTkrLTAuMTUwMyAgICAgPyAgICAgIDQuNzA1OCst
MC4zNzE4ICAgICAgICA/IG1pZ2h0IGJlIDEuMDU5OXggc2xvd2VyCiAgIHB1dC1ieS1pZC1yZXBs
YWNlLWFuZC10cmFuc2l0aW9uICAgICAgICAgICAgICAgICAgIDYuMzk1MSstMC40NDI1ICAgICA/
ICAgICAgNy4xMDQyKy0wLjg5NjcgICAgICAgID8gbWlnaHQgYmUgMS4xMTA5eCBzbG93ZXIKICAg
cHV0LWJ5LWlkLXNsaWdodGx5LXBvbHltb3JwaGljICAgICAgICAgICAgICAgICAgICAgMi40ODU0
Ky0wLjE0MjUgICAgICAgICAgICAyLjQxOTArLTAuNDM2MSAgICAgICAgICBtaWdodCBiZSAxLjAy
NzR4IGZhc3RlcgogICBwdXQtYnktaWQtdHJhbnNpdGlvbi13aXRoLWluZGV4aW5nLWhlYWRlciAg
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEw
Ljk3MzcrLTAuNTc3OCAgICAgICAgICAgMTAuNzk4MistMC44NzI2ICAgICAgICAgIG1pZ2h0IGJl
IDEuMDE2M3ggZmFzdGVyCiAgIHB1dC1ieS1pZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDkuNzY2OCstMS4wMjY4ICAgICAgICAgICAgOS41NjUxKy0xLjY3NDAgICAg
ICAgICAgbWlnaHQgYmUgMS4wMjExeCBmYXN0ZXIKICAgcHV0LWJ5LXZhbC1kaXJlY3QgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMC4zNjIzKy0wLjAyMjYgICAgID8gICAgICAwLjQw
MzIrLTAuMDg2OCAgICAgICAgPyBtaWdodCBiZSAxLjExMjl4IHNsb3dlcgogICBwdXQtYnktdmFs
LWxhcmdlLWluZGV4LWJsYW5rLWluZGV4aW5nLXR5cGUgICAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC41MTc3Ky0wLjUyMzkgICAgICAgICAg
ICA0LjMzNDYrLTAuMTYzMCAgICAgICAgICBtaWdodCBiZSAxLjA0MjJ4IGZhc3RlcgogICBwdXQt
YnktdmFsLW1hY2hpbmUtaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjU2NjcrLTAu
MTA0MSAgICAgPyAgICAgIDIuNTg5NystMC4yMDEyICAgICAgICA/CiAgIHB1dC1ieS12YWwtd2l0
aC1zdHJpbmctcmVwbGFjZS1hbmQtdHJhbnNpdGlvbiAgIAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwLjgwMjArLTAuNTYyNSAgICAgICAgICAg
MTAuNzg4OCstMS4zMTg3ICAgICAgICAKICAgcHV0LWJ5LXZhbC13aXRoLXN0cmluZy1zbGlnaHRs
eS1wb2x5bW9ycGhpYyAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAzLjE2MzErLTAuMTMwNCAgICAgPyAgICAgIDMuMzI5NSstMC4yMjc3ICAg
ICAgICA/IG1pZ2h0IGJlIDEuMDUyNnggc2xvd2VyCiAgIHB1dC1ieS12YWwtd2l0aC1zdHJpbmcg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDkuNDI5OSstMC42NTUxICAgICA/ICAgICAgOS41
NTE2Ky0wLjUzNDMgICAgICAgID8gbWlnaHQgYmUgMS4wMTI5eCBzbG93ZXIKICAgcHV0LWJ5LXZh
bC13aXRoLXN5bWJvbC1yZXBsYWNlLWFuZC10cmFuc2l0aW9uICAgCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAuMDczOCstMC41OTUxICAgICAg
ICAgICAgOS4zNjc5Ky0wLjM4NjEgICAgICAgICAgbWlnaHQgYmUgMS4wNzU0eCBmYXN0ZXIKICAg
cHV0LWJ5LXZhbC13aXRoLXN5bWJvbC1zbGlnaHRseS1wb2x5bW9ycGhpYyAgIAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjY3MTYrLTAuMTgx
MyAgICAgPyAgICAgIDIuOTk0MystMC40Mzg0ICAgICAgICA/IG1pZ2h0IGJlIDEuMTIwOHggc2xv
d2VyCiAgIHB1dC1ieS12YWwtd2l0aC1zeW1ib2wgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDkuNzA0OSstMC40OTYwICAgICA/ICAgICAgOS43MDUwKy0wLjQ3NTAgICAgICAgID8KICAgcmFy
ZS1vc3ItZXhpdC1vbi1sb2NhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMi43MzY1Ky0x
LjI4MDEgICAgID8gICAgIDEzLjU4NDIrLTIuNTU2NSAgICAgICAgPyBtaWdodCBiZSAxLjA2NjZ4
IHNsb3dlcgogICByYXl0cmFjZS13aXRoLWVtcHR5LXRyeS1jYXRjaCAgICAgICAgICAgICAgICAg
ICAgICA1LjMxMzgrLTAuMTM4NCAgICAgPyAgICAgIDUuMzM4MSstMC4yMzE1ICAgICAgICA/CiAg
IHJheXRyYWNlLXdpdGgtdHJ5LWNhdGNoICAgICAgICAgICAgICAgICAgICAgICAgICAgIDguNjgy
MystMC4zNTMxICAgICAgICAgICAgOC41MTkzKy0wLjMxODcgICAgICAgICAgbWlnaHQgYmUgMS4w
MTkxeCBmYXN0ZXIKICAgcmVnZXhwLWV4ZWMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAzNi4wMjg2Ky0zLjEzMTMgICAgID8gICAgIDM2LjgwMzMrLTMuNTk3OSAgICAgICAg
PyBtaWdodCBiZSAxLjAyMTV4IHNsb3dlcgogICByZWdleHAtbGFzdC1pbmRleCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA4Ljc4NzIrLTAuMTc1NCAgICAgPyAgICAgIDguODkzOCst
MC4yODk3ICAgICAgICA/IG1pZ2h0IGJlIDEuMDEyMXggc2xvd2VyCiAgIHJlZ2V4cC1wcm90b3R5
cGUtaXMtbm90LWluc3RhbmNlICAgICAgICAgICAgICAgICAgIDAuMzY1NCstMC4wMzAyICAgICA/
ICAgICAgMC40MjcyKy0wLjA3NzQgICAgICAgID8gbWlnaHQgYmUgMS4xNjkxeCBzbG93ZXIKICAg
cmVnZXhwLXByb3RvdHlwZS1zZWFyY2gtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMgICAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC43ODA1Ky0w
LjA2OTIgICAgID8gICAgICAwLjc5OTArLTAuMDc2OCAgICAgICAgPyBtaWdodCBiZSAxLjAyMzd4
IHNsb3dlcgogICByZWdleHAtcHJvdG90eXBlLXNlYXJjaC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0
czIgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMC4yOTAzKy0wLjAzMjMgICAgICAgICAgICAwLjI2NzkrLTAuMDQ5NyAgICAgICAgICBtaWdo
dCBiZSAxLjA4MzV4IGZhc3RlcgogICByZWdleHAtcHJvdG90eXBlLXNwbGl0LW9ic2VydmFibGUt
c2lkZS1lZmZlY3RzICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDEuNDk2MistMC4wNTc2ICAgICA/ICAgICAgMS41NDg3Ky0wLjExMjkgICAg
ICAgID8gbWlnaHQgYmUgMS4wMzUxeCBzbG93ZXIKICAgcmVnZXhwLXByb3RvdHlwZS1zcGxpdC1v
YnNlcnZhYmxlLXNpZGUtZWZmZWN0czIgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMC4zMTczKy0wLjAzNDIgICAgICAgICAgICAwLjI4OTYr
LTAuMDIyMCAgICAgICAgICBtaWdodCBiZSAxLjA5NTd4IGZhc3RlcgogICByZWdleHAtcHJvdG90
eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzMy1mbGFncyAgIAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjI5MTArLTAuMDI5NiAg
ICAgPyAgICAgIDAuMjk2NSstMC4wMzE3ICAgICAgICA/IG1pZ2h0IGJlIDEuMDE4OXggc2xvd2Vy
CiAgIHJlZ2V4cC1wcm90b3R5cGUtc3BsaXQtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMzLWdsb2Jh
bCAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAwLjMwNDkrLTAuMDMxMiAgICAgPyAgICAgIDAuMzIyMystMC4wNTIzICAgICAgICA/IG1pZ2h0
IGJlIDEuMDU2OHggc2xvd2VyCiAgIHJlZ2V4cC1wcm90b3R5cGUtc3BsaXQtb2JzZXJ2YWJsZS1z
aWRlLWVmZmVjdHMzLWlnbm9yZUNhc2UgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMC4yODc4Ky0wLjAxODkgICAgICAgICAgICAwLjI3OTMr
LTAuMDI3MyAgICAgICAgICBtaWdodCBiZSAxLjAzMDZ4IGZhc3RlcgogICByZWdleHAtcHJvdG90
eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzMy1tdWx0aWxpbmUgICAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC4yNzU2Ky0wLjAx
NzEgICAgID8gICAgICAwLjMwNzArLTAuMDM4OSAgICAgICAgPyBtaWdodCBiZSAxLjExNDN4IHNs
b3dlcgogICByZWdleHAtcHJvdG90eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzMy1z
dGlja3kgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMC4yOTAyKy0wLjAyNDEgICAgICAgICAgICAwLjI3ODIrLTAuMDIyNCAgICAgICAgICBt
aWdodCBiZSAxLjA0MzR4IGZhc3RlcgogICByZWdleHAtcHJvdG90eXBlLXNwbGl0LW9ic2VydmFi
bGUtc2lkZS1lZmZlY3RzMy11bmljb2RlICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDAuMzE0NSstMC4wNDQxICAgICAgICAgICAgMC4zMDMx
Ky0wLjAxNzggICAgICAgICAgbWlnaHQgYmUgMS4wMzc1eCBmYXN0ZXIKICAgcmVnZXhwLXByb3Rv
dHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czQgICAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC4zMDk3Ky0wLjAyNjcgICAgID8g
ICAgICAwLjMyMzQrLTAuMTE5NSAgICAgICAgPyBtaWdodCBiZSAxLjA0NDF4IHNsb3dlcgogICBy
ZWdleHAtcHJvdG90eXBlLXRlc3Qtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMgICAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC42NDU4Ky0wLjA1
MDcgICAgID8gICAgICAwLjcyMzArLTAuMTE2NiAgICAgICAgPyBtaWdodCBiZSAxLjExOTZ4IHNs
b3dlcgogICByZWdleHAtcHJvdG90eXBlLXRlc3Qtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMyICAg
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAu
Mjc3NSstMC4wMjYwICAgICAgICAgICAgMC4yNTg1Ky0wLjAxOTggICAgICAgICAgbWlnaHQgYmUg
MS4wNzM3eCBmYXN0ZXIKICAgcmVnZXhwLXNldC1sYXN0LWluZGV4ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAxMC4wMDcxKy0wLjkzNTkgICAgICAgICAgICA5LjgwMTQrLTAuNjkxNyAgICAg
ICAgICBtaWdodCBiZSAxLjAyMTB4IGZhc3RlcgogICByZWdpc3Rlci1wcmVzc3VyZS1mcm9tLW9z
ciAgICAgICAgICAgICAgICAgICAgICAgIDE2LjQ2MjcrLTEuMTcyOSAgICAgPyAgICAgMTguNjg3
OCstMi42MTcwICAgICAgICA/IG1pZ2h0IGJlIDEuMTM1Mnggc2xvd2VyCiAgIHJlcGVhdC1tdWx0
aS1nZXQtYnktb2Zmc2V0ICAgICAgICAgICAgICAgICAgICAgICAgMjAuNDU3MSstMS45MTEyICAg
ICAgICAgICAxOS4zMjE1Ky0wLjc3MjkgICAgICAgICAgbWlnaHQgYmUgMS4wNTg4eCBmYXN0ZXIK
ICAgcmljaGFyZHMtZW1wdHktdHJ5LWNhdGNoICAgICAgICAgICAgICAgICAgICAgICAgICA0NS44
NDk3Ky0xLjE3MzMgICAgID8gICAgIDQ2Ljc0NDcrLTEuNjIwMCAgICAgICAgPyBtaWdodCBiZSAx
LjAxOTV4IHNsb3dlcgogICByaWNoYXJkcy10cnktY2F0Y2ggICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMjMwLjU0MjIrLTUuNjIxNyAgICAgPyAgICAyMzMuMjYzMSstOC44OTgxICAgICAg
ICA/IG1pZ2h0IGJlIDEuMDExOHggc2xvd2VyCiAgIHNjb3BlZC1hcmd1bWVudHMtbGVuZ3RoICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDYuNjIxMystMC40NDMzICAgICA/ICAgICAgNi44MzQ0
Ky0wLjEwNjkgICAgICAgID8gbWlnaHQgYmUgMS4wMzIyeCBzbG93ZXIKICAgc2NvcGVkLWFyZ3Vt
ZW50cy1vdmVycmlkZGVuLWxlbmd0aCAgICAgICAgICAgICAgICAgNi41MDQyKy0wLjE4MjQgICAg
ICEgICAgICA2Ljk3NDMrLTAuMjc0NyAgICAgICAgISBkZWZpbml0ZWx5IDEuMDcyM3ggc2xvd2Vy
CiAgIHNjb3BlZC1hcmd1bWVudHMtcG9zc2libHktb3ZlcnJpZGRlbi1sZW5ndGggICAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNy44NjUxKy0w
LjE5MDQgICAgIF4gICAgICA3LjAwMDUrLTAuMjQyMyAgICAgICAgXiBkZWZpbml0ZWx5IDEuMTIz
NXggZmFzdGVyCiAgIHNldC1mb3ItZWFjaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDMuOTg1MCstMC4yMDk0ICAgICAgICAgICAgMy44MjIyKy0wLjE5MDEgICAgICAgICAg
bWlnaHQgYmUgMS4wNDI2eCBmYXN0ZXIKICAgc2V0LWZvci1vZiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgNy40MzI0Ky0xLjEyMDMgICAgICAgICAgICA2LjY5MTYrLTAu
NDI0OSAgICAgICAgICBtaWdodCBiZSAxLjExMDd4IGZhc3RlcgogICBzZXR0ZXItcHJvdG90eXBl
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjYwNjkrLTAuMTc4OSAgICAgICAg
ICAgIDQuNTU3NSstMC4wOTIwICAgICAgICAgIG1pZ2h0IGJlIDEuMDEwOHggZmFzdGVyCiAgIHNl
dHRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuOTEwOCst
MC4wODIyICAgICAgICAgICAgMi44OTc5Ky0wLjEwMDAgICAgICAgIAogICBzaW1wbGUtYWN0aXZh
dGlvbi1kZW1vICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIzLjYyNDErLTIuMTE0MSAgICAg
PyAgICAgMjQuMjM5OSstMi4wOTcxICAgICAgICA/IG1pZ2h0IGJlIDEuMDI2MXggc2xvd2VyCiAg
IHNpbXBsZS1nZXR0ZXItYWNjZXNzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTcuNDk2
MystMC42OTU2ICAgICA/ICAgICAxNy41MzU4Ky0xLjA0OTggICAgICAgID8KICAgc2ltcGxlLXBv
bHktY2FsbC1uZXN0ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy45OTA3Ky0wLjQyMjgg
ICAgICAgICAgICAzLjgyNDQrLTAuMDczMCAgICAgICAgICBtaWdodCBiZSAxLjA0MzV4IGZhc3Rl
cgogICBzaW1wbGUtcG9seS1jYWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAx
LjE1OTMrLTAuMDU4NSAgICAgPyAgICAgIDEuMjk5NSstMC40MDQzICAgICAgICA/IG1pZ2h0IGJl
IDEuMTIxMHggc2xvd2VyCiAgIHNpbXBsZS1yZWdleHAtZXhlYy1mb2xkaW5nLWZhaWwgICAgICAg
ICAgICAgICAgICAgIDIuOTY2MistMC4yMjgwICAgICA/ICAgICAgMy4xMDI1Ky0wLjI1NDUgICAg
ICAgID8gbWlnaHQgYmUgMS4wNDU5eCBzbG93ZXIKICAgc2ltcGxlLXJlZ2V4cC1leGVjLWZvbGRp
bmcgICAgICAgICAgICAgICAgICAgICAgICAxNy41NDAzKy0xLjYzMzggICAgICAgICAgIDE3LjQw
NzUrLTEuNDY4NyAgICAgICAgCiAgIHNpbXBsZS1yZWdleHAtdGVzdC1mb2xkaW5nLWZhaWwtd2l0
aC1ob2lzdGVkLXJlZ2V4cCAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA4LjgwNDkrLTAuNjY4OCAgICAgICAgICAgIDguNzUxMystMC4zODIw
ICAgICAgICAKICAgc2ltcGxlLXJlZ2V4cC10ZXN0LWZvbGRpbmctZmFpbCAgICAgICAgICAgICAg
ICAgICAxNC44MzcyKy0wLjUwMjIgICAgID8gICAgIDE1LjIyMzcrLTAuOTQ1NCAgICAgICAgPyBt
aWdodCBiZSAxLjAyNjF4IHNsb3dlcgogICBzaW1wbGUtcmVnZXhwLXRlc3QtZm9sZGluZy13aXRo
LWhvaXN0ZWQtcmVnZXhwICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMTAuNzQ3NCstMi4zOTU0ICAgICAgICAgICAxMC4xNDk3Ky0xLjA2Nzcg
ICAgICAgICAgbWlnaHQgYmUgMS4wNTg5eCBmYXN0ZXIKICAgc2ltcGxlLXJlZ2V4cC10ZXN0LWZv
bGRpbmcgICAgICAgICAgICAgICAgICAgICAgICAxNi4wODIzKy0xLjI1OTEgICAgID8gICAgIDE2
LjM2MzUrLTAuNzUzNiAgICAgICAgPyBtaWdodCBiZSAxLjAxNzV4IHNsb3dlcgogICBzaW4tYm9v
bGVhbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2LjQ5NjArLTAuNDAx
NiAgICAgPyAgICAgIDYuNTk3MystMC40MjgyICAgICAgICA/IG1pZ2h0IGJlIDEuMDE1Nnggc2xv
d2VyCiAgIHNpbmdsZXRvbi1zY29wZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
NjMuNDMyMCstMy43MzcwICAgICA/ICAgICA2NS42NDAxKy0yLjc0MTIgICAgICAgID8gbWlnaHQg
YmUgMS4wMzQ4eCBzbG93ZXIKICAgc2luay1mdW5jdGlvbiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgNS4xNzUwKy0wLjI0NjMgICAgID8gICAgICA1LjUwNzErLTAuNTMwOCAg
ICAgICAgPyBtaWdodCBiZSAxLjA2NDJ4IHNsb3dlcgogICBzaW5rLWh1Z2UtYWN0aXZhdGlvbiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEyLjU1NTUrLTEuMDY2NSAgICAgPyAgICAgMTMu
MDgyNistMS4wMjYzICAgICAgICA/IG1pZ2h0IGJlIDEuMDQyMHggc2xvd2VyCiAgIHNpbmthYmxl
LW5ldy1vYmplY3QtZGFnICAgICAgICAgICAgICAgICAgICAgICAgICAgMzkuNDE5NCstMy4wMTM3
ICAgICA/ICAgICA0MC42MDYzKy0zLjI0NzcgICAgICAgID8gbWlnaHQgYmUgMS4wMzAxeCBzbG93
ZXIKICAgc2lua2FibGUtbmV3LW9iamVjdC10YWtlbiAgICAgICAgICAgICAgICAgICAgICAgICAz
NS41MTc4Ky0xLjg3MjMgICAgID8gICAgIDM2LjU1MzYrLTMuMDA4MSAgICAgICAgPyBtaWdodCBi
ZSAxLjAyOTJ4IHNsb3dlcgogICBzaW5rYWJsZS1uZXctb2JqZWN0ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDE4LjE4MDgrLTEuMjE0NCAgICAgPyAgICAgMTkuMzg2NistMi42MDM0ICAg
ICAgICA/IG1pZ2h0IGJlIDEuMDY2M3ggc2xvd2VyCiAgIHNsb3ctYXJyYXktcHJvZmlsZS1jb252
ZXJnZW5jZSAgICAgICAgICAgICAgICAgICAgIDIuNTcyMSstMC4wNzYxICAgICBeICAgICAgMi4z
NjY3Ky0wLjEyNDIgICAgICAgIF4gZGVmaW5pdGVseSAxLjA4Njh4IGZhc3RlcgogICBzbG93LWNv
bnZlcmdlbmNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjU0MjArLTAuMjc0
OCAgICAgPyAgICAgIDIuODE0OCstMC41MDYyICAgICAgICA/IG1pZ2h0IGJlIDEuMTA3M3ggc2xv
d2VyCiAgIHNsb3ctdGVybmFyaWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
MTMuNTAwMCstMC45MjcyICAgICA/ICAgICAxMy45OTQzKy0yLjQ2MzUgICAgICAgID8gbWlnaHQg
YmUgMS4wMzY2eCBzbG93ZXIKICAgc29ydGluZy1iZW5jaG1hcmsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAxOC41NDY2Ky0wLjk0OTkgICAgID8gICAgIDE5LjEwNzUrLTAuNjY4OSAg
ICAgICAgPyBtaWdodCBiZSAxLjAzMDJ4IHNsb3dlcgogICBzcGFyc2UtY29uZGl0aW9uYWwgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLjA3OTcrLTAuMDQzNSAgICAgICAgICAgIDEu
MDc5MistMC4wMzM1ICAgICAgICAKICAgc3BsaWNlLXRvLXJlbW92ZSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAxNC4zNzgxKy0xLjMzNDkgICAgICAgICAgIDEzLjIzMzArLTAuNzE4
MiAgICAgICAgICBtaWdodCBiZSAxLjA4NjV4IGZhc3RlcgogICBzdHJjYXQtY29uc3QgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1LjIyMDgrLTAuNDE2MiAgICAgICAgICAg
IDUuMDU5MistMC4wOTkyICAgICAgICAgIG1pZ2h0IGJlIDEuMDMxOXggZmFzdGVyCiAgIHN0cmNh
dC1sZW5ndGgtY29uc3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUuMTI1NSstMC4x
MzcxICAgICAgICAgICAgNS4wNzgwKy0wLjE0MjQgICAgICAgIAogICBzdHJpbmctY2hhci1jb2Rl
LWF0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE0LjkzNDMrLTEuMDQ2MiAgICAgICAg
ICAgMTQuNzk5OSstMS4xOTYyICAgICAgICAKICAgc3RyaW5nLWNvbmNhdC1vYmplY3QgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMS45MTE1Ky0wLjA2MDYgICAgID8gICAgICAyLjAxNzgr
LTAuMjY4NSAgICAgICAgPyBtaWdodCBiZSAxLjA1NTZ4IHNsb3dlcgogICBzdHJpbmctY29uY2F0
LXBhaXItb2JqZWN0ICAgICAgICAgICAgICAgICAgICAgICAgICAxLjk0NDIrLTAuMTYxNSAgICAg
ICAgICAgIDEuNzgxMistMC4wOTg0ICAgICAgICAgIG1pZ2h0IGJlIDEuMDkxNXggZmFzdGVyCiAg
IHN0cmluZy1jb25jYXQtcGFpci1zaW1wbGUgICAgICAgICAgICAgICAgICAgICAgICAgIDIuNzkw
NSstMC4xMDkyICAgICA/ICAgICAgMi44Mzg5Ky0wLjE3MjUgICAgICAgID8gbWlnaHQgYmUgMS4w
MTczeCBzbG93ZXIKICAgc3RyaW5nLWNvbmNhdC1zaW1wbGUgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgOC45MTMwKy0wLjM3NTggICAgID8gICAgICA4Ljk3OTIrLTAuNjExOSAgICAgICAg
PwogICBzdHJpbmctY29ucy1yZXBlYXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2
LjUyOTcrLTAuMjU4NiAgICAgICAgICAgIDYuMDgyNistMC4zMjg3ICAgICAgICAgIG1pZ2h0IGJl
IDEuMDczNXggZmFzdGVyCiAgIHN0cmluZy1jb25zLXRvd2VyICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDYuMzMyNCstMC4yODYxICAgICA/ICAgICAgNi44NjM1Ky0xLjMxNTggICAg
ICAgID8gbWlnaHQgYmUgMS4wODM5eCBzbG93ZXIKICAgc3RyaW5nLWVxdWFsaXR5ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAxOC4wNzczKy0xLjQ2ODAgICAgICAgICAgIDE3LjQz
NjgrLTEuNDkzOCAgICAgICAgICBtaWdodCBiZSAxLjAzNjd4IGZhc3RlcgogICBzdHJpbmctZnJv
bS1jaGFyLWNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2LjIxNzArLTAuNjExOCAg
ICAgICAgICAgIDUuOTU2OCstMC4xMTEyICAgICAgICAgIG1pZ2h0IGJlIDEuMDQzN3ggZmFzdGVy
CiAgIHN0cmluZy1nZXQtYnktdmFsLWJpZy1jaGFyICAgICAgICAgICAgICAgICAgICAgICAgIDQu
Mzg3MistMC4zMzEyICAgICAgICAgICAgNC4xMzI5Ky0wLjE3NzMgICAgICAgICAgbWlnaHQgYmUg
MS4wNjE1eCBmYXN0ZXIKICAgc3RyaW5nLWdldC1ieS12YWwtb3V0LW9mLWJvdW5kcy1pbnNhbmUg
ICAgICAgICAgICAgMy4xNjM4Ky0wLjA0OTQgICAgID8gICAgICAzLjkzMTYrLTEuMTQxMSAgICAg
ICAgPyBtaWdodCBiZSAxLjI0Mjd4IHNsb3dlcgogICBzdHJpbmctZ2V0LWJ5LXZhbC1vdXQtb2Yt
Ym91bmRzICAgICAgICAgICAgICAgICAgICA0LjAxNTgrLTAuMDQ4NCAgICAgPyAgICAgIDQuNjEw
MSstMS40OTY0ICAgICAgICA/IG1pZ2h0IGJlIDEuMTQ4MHggc2xvd2VyCiAgIHN0cmluZy1nZXQt
YnktdmFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuODgzMystMC4xMjE5ICAg
ICA/ICAgICAgMS45OTE1Ky0wLjE3ODkgICAgICAgID8gbWlnaHQgYmUgMS4wNTc0eCBzbG93ZXIK
ICAgc3RyaW5nLWhhc2ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMS45
MDE5Ky0wLjA0MzAgICAgID8gICAgICAyLjA1MTcrLTAuMzM3OSAgICAgICAgPyBtaWdodCBiZSAx
LjA3ODh4IHNsb3dlcgogICBzdHJpbmctbG9uZy1pZGVudC1lcXVhbGl0eSAgICAgICAgICAgICAg
ICAgICAgICAgIDE0LjEwODUrLTEuMTI2MCAgICAgPyAgICAgMTUuMjU4MCstMC45NzczICAgICAg
ICA/IG1pZ2h0IGJlIDEuMDgxNXggc2xvd2VyCiAgIHN0cmluZy1vdXQtb2YtYm91bmRzICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDYuNzQ0NystMC42MDY5ICAgICAhICAgICAgOS44NTA5
Ky0wLjI5ODggICAgICAgICEgZGVmaW5pdGVseSAxLjQ2MDV4IHNsb3dlcgogICBzdHJpbmctcHJv
dG90eXBlLXNlYXJjaC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0cyAgIAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjkzMjYrLTAuMTIxMCAgICAg
ICAgICAgIDAuOTE3MSstMC4wODkzICAgICAgICAgIG1pZ2h0IGJlIDEuMDE2OXggZmFzdGVyCiAg
IHN0cmluZy1wcm90b3R5cGUtc2VhcmNoLW9ic2VydmFibGUtc2lkZS1lZmZlY3RzMiAgIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjQzNTUr
LTAuMDcxMyAgICAgICAgICAgIDAuNDE3NistMC4wMzUyICAgICAgICAgIG1pZ2h0IGJlIDEuMDQy
OHggZmFzdGVyCiAgIHN0cmluZy1wcm90b3R5cGUtc2VhcmNoLW9ic2VydmFibGUtc2lkZS1lZmZl
Y3RzMyAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAwLjQyNDcrLTAuMDM2MSAgICAgICAgICAgIDAuNDA4NistMC4wNDc1ICAgICAgICAgIG1p
Z2h0IGJlIDEuMDM5NXggZmFzdGVyCiAgIHN0cmluZy1wcm90b3R5cGUtc2VhcmNoLW9ic2VydmFi
bGUtc2lkZS1lZmZlY3RzNCAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAwLjMyMDcrLTAuMDI5MyAgICAgPyAgICAgIDAuMzQxMystMC4wMTgz
ICAgICAgICA/IG1pZ2h0IGJlIDEuMDY0MXggc2xvd2VyCiAgIHN0cmluZy1wcm90b3R5cGUtc3Bs
aXQtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMS45OTg5Ky0wLjQ5MDQgICAgICAgICAgICAxLjc1
MzMrLTAuMDc3OCAgICAgICAgICBtaWdodCBiZSAxLjE0MDF4IGZhc3RlcgogICBzdHJpbmctcHJv
dG90eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzMiAgIAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjM2NzIrLTAuMDI4NCAgICAg
PyAgICAgIDAuNDQ4MistMC4xNjg2ICAgICAgICA/IG1pZ2h0IGJlIDEuMjIwNnggc2xvd2VyCiAg
IHN0cmluZy1wcm90b3R5cGUtc3BsaXQtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMzLWZsYWdzICAg
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAu
MzgwMCstMC4wNDA0ICAgICAgICAgICAgMC4zNzYzKy0wLjA0NTYgICAgICAgIAogICBzdHJpbmct
cHJvdG90eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzMy1nbG9iYWwgICAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC4zODUxKy0w
LjA0NDAgICAgID8gICAgICAwLjM5NDQrLTAuMDM2NiAgICAgICAgPyBtaWdodCBiZSAxLjAyNDB4
IHNsb3dlcgogICBzdHJpbmctcHJvdG90eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3Rz
My1pZ25vcmVDYXNlICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDAuNDA0MSstMC4wNzE3ICAgICAgICAgICAgMC4zNTU2Ky0wLjA0OTUgICAg
ICAgICAgbWlnaHQgYmUgMS4xMzYzeCBmYXN0ZXIKICAgc3RyaW5nLXByb3RvdHlwZS1zcGxpdC1v
YnNlcnZhYmxlLXNpZGUtZWZmZWN0czMtbXVsdGlsaW5lICAgCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuMzY4NCstMC4wNDAzICAgICA/ICAg
ICAgMC4zODU5Ky0wLjA5NTAgICAgICAgID8gbWlnaHQgYmUgMS4wNDczeCBzbG93ZXIKICAgc3Ry
aW5nLXByb3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czMtc3RpY2t5ICAgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuMzc3
OCstMC4wNDYwICAgICA/ICAgICAgMC40MDM3Ky0wLjA3ODcgICAgICAgID8gbWlnaHQgYmUgMS4w
Njg2eCBzbG93ZXIKICAgc3RyaW5nLXByb3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZm
ZWN0czMtdW5pY29kZSAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAwLjM2MDIrLTAuMDMwMSAgICAgPyAgICAgIDAuMzkyOSstMC4wNDM4ICAg
ICAgICA/IG1pZ2h0IGJlIDEuMDkwOHggc2xvd2VyCiAgIHN0cmluZy1wcm90b3R5cGUtc3BsaXQt
b2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHM0ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDAuMzQyOSstMC4wMTkzICAgICAgICAgICAgMC4zMzk1
Ky0wLjAyNjcgICAgICAgICAgbWlnaHQgYmUgMS4wMTAxeCBmYXN0ZXIKICAgc3RyaW5nLXJlcGVh
dC1hcml0aCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMi4yNTg2Ky0wLjYzNTIgICAg
ID8gICAgIDI0LjIyMDMrLTQuODIyMCAgICAgICAgPyBtaWdodCBiZSAxLjA4ODF4IHNsb3dlcgog
ICBzdHJpbmctcmVwZWF0LW5vdC1yZXNvbHZpbmctZml4ZWQgICAgICAgICAgICAgICAgICAzLjE2
MDMrLTAuNzAwNCAgICAgICAgICAgIDIuNzU4NSstMC4xNzA3ICAgICAgICAgIG1pZ2h0IGJlIDEu
MTQ1NnggZmFzdGVyCiAgIHN0cmluZy1yZXBlYXQtbm90LXJlc29sdmluZy1uby1pbmxpbmUgICAg
ICAgICAgICAgIDQuMjUyNCstMS4wMDg0ICAgICAgICAgICAgMy43NzQ2Ky0wLjE2MDUgICAgICAg
ICAgbWlnaHQgYmUgMS4xMjY2eCBmYXN0ZXIKICAgc3RyaW5nLXJlcGVhdC1ub3QtcmVzb2x2aW5n
ICAgICAgICAgICAgICAgICAgICAgICAgNC4wNDYxKy0wLjIxMDAgICAgID8gICAgICA0LjMzOTYr
LTAuODI0MSAgICAgICAgPyBtaWdodCBiZSAxLjA3MjV4IHNsb3dlcgogICBzdHJpbmctcmVwZWF0
LXJlc29sdmluZy1maXhlZCAgICAgICAgICAgICAgICAgICAgIDIwLjgzMjMrLTIuODg0NyAgICAg
ICAgICAgMTguNzg1MCstMC44MzkwICAgICAgICAgIG1pZ2h0IGJlIDEuMTA5MHggZmFzdGVyCiAg
IHN0cmluZy1yZXBlYXQtcmVzb2x2aW5nLW5vLWlubGluZSAgICAgICAgICAgICAgICAgMjcuMTEy
MistMi41MzM3ICAgICAgICAgICAyNS44MzQwKy0wLjgwMjcgICAgICAgICAgbWlnaHQgYmUgMS4w
NDk1eCBmYXN0ZXIKICAgc3RyaW5nLXJlcGVhdC1yZXNvbHZpbmcgICAgICAgICAgICAgICAgICAg
ICAgICAgICAyNS41NTE5Ky0wLjUyOTQgICAgID8gICAgIDI3LjAwMDUrLTIuMDY5NiAgICAgICAg
PyBtaWdodCBiZSAxLjA1Njd4IHNsb3dlcgogICBzdHJpbmctcmVwZWF0LXNpbmdsZS1ub3QtcmVz
b2x2aW5nICAgICAgICAgICAgICAgICA1Ljk4NTQrLTAuNTU1MyAgICAgPyAgICAgIDYuNTAwNCst
MC41MDI4ICAgICAgICA/IG1pZ2h0IGJlIDEuMDg2MHggc2xvd2VyCiAgIHN0cmluZy1yZXBlYXQt
c2luZ2xlLXJlc29sdmluZyAgICAgICAgICAgICAgICAgICAgIDYuNzU1MistMS4zNzA3ICAgICAg
ICAgICAgNi4zNDYyKy0wLjYyNDIgICAgICAgICAgbWlnaHQgYmUgMS4wNjQ1eCBmYXN0ZXIKICAg
c3RyaW5nLXJlcGVhdC1zbWFsbC1ub3QtcmVzb2x2aW5nICAgICAgICAgICAgICAgICAgMy4xMzMz
Ky0wLjI0NzIgICAgICAgICAgICAyLjk5MTIrLTAuMjE1NSAgICAgICAgICBtaWdodCBiZSAxLjA0
NzV4IGZhc3RlcgogICBzdHJpbmctcmVwZWF0LXNtYWxsLXJlc29sdmluZyAgICAgICAgICAgICAg
ICAgICAgIDI5LjA2NTArLTMuMDczMyAgICAgICAgICAgMjYuNDQ0MCstMS4wOTA3ICAgICAgICAg
IG1pZ2h0IGJlIDEuMDk5MXggZmFzdGVyCiAgIHN0cmluZy1yZXBsYWNlLWVtcHR5ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDguMjI0NCstMC42Mzg2ICAgICA/ICAgICAgOC4zMjYwKy0w
LjQzNzUgICAgICAgID8gbWlnaHQgYmUgMS4wMTI0eCBzbG93ZXIKICAgc3RyaW5nLXJlcGxhY2Ut
Z2VuZXJpYyAgICAgICAgICAgICAgICAgICAgICAgICAgICA1NC44Mzc3Ky0yLjI4MTYgICAgID8g
ICAgIDU1Ljc3NTErLTEuMjU0OCAgICAgICAgPyBtaWdodCBiZSAxLjAxNzF4IHNsb3dlcgogICBz
dHJpbmctcmVwbGFjZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4LjUxNjAr
LTAuNjE3NyAgICAgICAgICAgIDguNDY5MistMC44MDI0ICAgICAgICAKICAgc3RyaW5nLXJvcGUt
d2l0aC1vYmplY3QgICAgICAgICAgICAgICAgICAgICAgICAgICAxNy45NzgwKy0yLjA1MTcgICAg
ICAgICAgIDE3LjczODIrLTEuMzAxMyAgICAgICAgICBtaWdodCBiZSAxLjAxMzV4IGZhc3Rlcgog
ICBzdHJpbmctc3ViICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDM3LjAx
ODgrLTIuNDYyMiAgICAgICAgICAgMzYuNDQ5NCstMy4xMDMyICAgICAgICAgIG1pZ2h0IGJlIDEu
MDE1NnggZmFzdGVyCiAgIHN0cmluZy10ZXN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDMuMDY2MCstMC4xMzY0ICAgICBeICAgICAgMi42NzQzKy0wLjA5OTUgICAgICAg
IF4gZGVmaW5pdGVseSAxLjE0NjV4IGZhc3RlcgogICBzdHJpbmctdHJhbnNjb2RpbmcgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDE4LjM1NzArLTAuNjY2NiAgICAgICAgICAgMTcuNDk2
NCstMi44MjE0ICAgICAgICAgIG1pZ2h0IGJlIDEuMDQ5MnggZmFzdGVyCiAgIHN0cmluZy12YXIt
ZXF1YWxpdHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjkuMTQ1NSstMy44MDEzICAg
ICAgICAgICAyOC43OTkwKy0yLjE1MDAgICAgICAgICAgbWlnaHQgYmUgMS4wMTIweCBmYXN0ZXIK
ICAgc3RydWN0dXJlLWhvaXN0LW92ZXItdHJhbnNpdGlvbnMgICAgICAgICAgICAgICAgICAgMi4z
ODI0Ky0wLjMwODMgICAgICAgICAgICAyLjEwNTUrLTAuMDkyMSAgICAgICAgICBtaWdodCBiZSAx
LjEzMTZ4IGZhc3RlcgogICBzdWJzdHJpbmctY29uY2F0LXdlaXJkICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDM1LjQxNzErLTEuNjk3NiAgICAgPyAgICAgMzYuMTkyNCstMS45Njg0ICAgICAg
ICA/IG1pZ2h0IGJlIDEuMDIxOXggc2xvd2VyCiAgIHN1YnN0cmluZy1jb25jYXQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMzguMzk4OCstMS4wOTE3ICAgICA/ICAgICAzOS45NjY3
Ky0yLjkwMzAgICAgICAgID8gbWlnaHQgYmUgMS4wNDA4eCBzbG93ZXIKICAgc3Vic3RyaW5nICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0NS40MDU4Ky0xLjk5ODQgICAg
ICAgICAgIDQ0LjQxNjMrLTEuMzU1MyAgICAgICAgICBtaWdodCBiZSAxLjAyMjN4IGZhc3Rlcgog
ICBzd2l0Y2gtY2hhci1jb25zdGFudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjIx
NTkrLTAuMzI2MSAgICAgICAgICAgIDIuMDUzOCstMC4xNDU5ICAgICAgICAgIG1pZ2h0IGJlIDEu
MDc4OXggZmFzdGVyCiAgIHN3aXRjaC1jaGFyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDQuOTI1MSstMC4xNTkyICAgICAgICAgICAgNC45MTAyKy0wLjE0MzIgICAgICAg
IAogICBzd2l0Y2gtY29uc3RhbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAz
LjI0NDgrLTAuMTM3MSAgICAgICAgICAgIDMuMjMyNystMC4xOTEzICAgICAgICAKICAgc3dpdGNo
LXN0cmluZy1iYXNpYy1iaWctdmFyICAgICAgICAgICAgICAgICAgICAgICAxNC4yNTAwKy0xLjI3
OTcgICAgID8gICAgIDE0LjQzODQrLTEuNjQ4MiAgICAgICAgPyBtaWdodCBiZSAxLjAxMzJ4IHNs
b3dlcgogICBzd2l0Y2gtc3RyaW5nLWJhc2ljLWJpZyAgICAgICAgICAgICAgICAgICAgICAgICAg
IDEzLjMzMDgrLTAuOTMzNiAgICAgPyAgICAgMTMuNTU2MystMC43Mjc3ICAgICAgICA/IG1pZ2h0
IGJlIDEuMDE2OXggc2xvd2VyCiAgIHN3aXRjaC1zdHJpbmctYmFzaWMtdmFyICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMTQuMjgxNCstMS4wMTgzICAgICA/ICAgICAxNC41NjMyKy0xLjIwODgg
ICAgICAgID8gbWlnaHQgYmUgMS4wMTk3eCBzbG93ZXIKICAgc3dpdGNoLXN0cmluZy1iYXNpYyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMi41MDYxKy0xLjI0MjMgICAgICAgICAgIDEy
LjM2MDgrLTAuNzk0MCAgICAgICAgICBtaWdodCBiZSAxLjAxMTh4IGZhc3RlcgogICBzd2l0Y2gt
c3RyaW5nLWJpZy1sZW5ndGgtdG93ZXItdmFyICAgICAgICAgICAgICAgIDIwLjYyMzUrLTIuMDU3
MiAgICAgPyAgICAgMjEuODgzNSstMS40MjY5ICAgICAgICA/IG1pZ2h0IGJlIDEuMDYxMXggc2xv
d2VyCiAgIHN3aXRjaC1zdHJpbmctbGVuZ3RoLXRvd2VyLXZhciAgICAgICAgICAgICAgICAgICAg
MTUuNjMyNCstMC45OTkwICAgICA/ICAgICAxNS42NzQ5Ky0xLjY3ODYgICAgICAgID8KICAgc3dp
dGNoLXN0cmluZy1sZW5ndGgtdG93ZXIgICAgICAgICAgICAgICAgICAgICAgICAxMi4yMjU2Ky0x
LjkyMjcgICAgICAgICAgIDExLjg2OTYrLTAuNzQ2MiAgICAgICAgICBtaWdodCBiZSAxLjAzMDB4
IGZhc3RlcgogICBzd2l0Y2gtc3RyaW5nLXNob3J0ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDEyLjg3OTUrLTIuMDExOCAgICAgICAgICAgMTEuODYxMCstMC45OTQzICAgICAgICAgIG1p
Z2h0IGJlIDEuMDg1OXggZmFzdGVyCiAgIHN3aXRjaCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDYuMTM1NCstMC4xNjU1ICAgICAgICAgICAgNS45NzY2Ky0wLjI2
MDMgICAgICAgICAgbWlnaHQgYmUgMS4wMjY2eCBmYXN0ZXIKICAgc3ltYm9sLXRvc3RyaW5ndGFn
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy4xNzc0Ky0wLjYyOTYgICAgICAgICAg
ICAyLjk3NzgrLTAuMTQyOCAgICAgICAgICBtaWdodCBiZSAxLjA2NzB4IGZhc3RlcgogICB0ZWFy
LW9mZi1hcmd1bWVudHMtc2ltcGxlICAgICAgICAgICAgICAgICAgICAgICAgICAyLjU4OTcrLTAu
MzMyMSAgICAgICAgICAgIDIuMzQ1NSstMC4zODUzICAgICAgICAgIG1pZ2h0IGJlIDEuMTA0MXgg
ZmFzdGVyCiAgIHRlYXItb2ZmLWFyZ3VtZW50cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDMuMTMxOCstMC40Mzg4ICAgICAgICAgICAgMy4wOTQxKy0wLjI4MzEgICAgICAgICAgbWln
aHQgYmUgMS4wMTIyeCBmYXN0ZXIKICAgdGVtcG9yYWwtc3RydWN0dXJlICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAxMi4yMTczKy0wLjc5OTggICAgICAgICAgIDEyLjAzMTUrLTAuNjMy
NSAgICAgICAgICBtaWdodCBiZSAxLjAxNTR4IGZhc3RlcgogICB0by1pbnQzMi1ib29sZWFuICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE0LjY2NDArLTEuMzQyMiAgICAgICAgICAg
MTMuOTk0MSstMi4yNzY2ICAgICAgICAgIG1pZ2h0IGJlIDEuMDQ3OXggZmFzdGVyCiAgIHRyeS1j
YXRjaC1nZXQtYnktdmFsLWNsb25lZC1hcmd1bWVudHMgICAgICAgICAgICAgIDMuMTIwMCstMC4y
NzI1ICAgICA/ICAgICAgMy4xMzQ3Ky0wLjYyNjIgICAgICAgID8KICAgdHJ5LWNhdGNoLWdldC1i
eS12YWwtZGlyZWN0LWFyZ3VtZW50cyAgICAgICAgICAgICAgMS45Mjg4Ky0wLjE0NDAgICAgID8g
ICAgICAyLjAyNzkrLTAuMDgyMSAgICAgICAgPyBtaWdodCBiZSAxLjA1MTR4IHNsb3dlcgogICB0
cnktY2F0Y2gtZ2V0LWJ5LXZhbC1zY29wZWQtYXJndW1lbnRzICAgICAgICAgICAgICA0LjA2ODgr
LTAuODM5MSAgICAgICAgICAgIDMuODYwNistMC4yMDk2ICAgICAgICAgIG1pZ2h0IGJlIDEuMDUz
OXggZmFzdGVyCiAgIHR5cGVkLWFycmF5LWdldC1zZXQtYnktdmFsLXByb2ZpbGluZyAgICAgICAg
ICAgICAgMjAuNDMzMystMS40MDAzICAgICAgICAgICAyMC4zODE1Ky0wLjkxMTggICAgICAgIAog
ICB1bmRlZmluZWQtcHJvcGVydHktYWNjZXNzICAgICAgICAgICAgICAgICAgICAgICAgMjk5Ljgz
NzIrLTE3LjE5NjcgICAgICAgICAyOTMuMTc2NystMTAuNDkxNyAgICAgICAgIG1pZ2h0IGJlIDEu
MDIyN3ggZmFzdGVyCiAgIHVuZGVmaW5lZC10ZXN0ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDMuNjQ1MistMC43NDQzICAgICBeICAgICAgMi42NzkwKy0wLjA3MjQgICAgICAg
IF4gZGVmaW5pdGVseSAxLjM2MDd4IGZhc3RlcgogICB1bnByb2ZpbGVkLWxpY20gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA2LjA2NTErLTAuMzAyOSAgICAgPyAgICAgIDYuMjc5
NystMC41MDE1ICAgICAgICA/IG1pZ2h0IGJlIDEuMDM1NHggc2xvd2VyCiAgIHVudHlwZWQtc3Ry
aW5nLWZyb20tY2hhci1jb2RlICAgICAgICAgICAgICAgICAgICAgIDkuODY5MystMC4yMzc2ICAg
ICA/ICAgICAxMC41MDU3Ky0xLjAxNzcgICAgICAgID8gbWlnaHQgYmUgMS4wNjQ1eCBzbG93ZXIK
ICAgdjgtcmF5dHJhY2Utd2l0aC1lbXB0eS10cnktY2F0Y2ggICAgICAgICAgICAgICAgICAzMS4x
NDQwKy01LjA2NzIgICAgICAgICAgIDI4LjMwNzUrLTEuMzIxNiAgICAgICAgICBtaWdodCBiZSAx
LjEwMDJ4IGZhc3RlcgogICB2OC1yYXl0cmFjZS13aXRoLXRyeS1jYXRjaC1oaWdoLWZyZXF1ZW5j
eS10aHJvd3MgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDQxOC42MDUyKy0xNy43NTMwICAgICAgICAgNDE2LjY0NjkrLTI2LjQ1MTIgICAgICAg
CiAgIHY4LXJheXRyYWNlLXdpdGgtdHJ5LWNhdGNoICAgICAgICAgICAgICAgICAgICAgICAgNjIu
NjE0NSstMy4wNzE1ICAgICA/ICAgICA2Mi45NjUzKy0xLjY1MDUgICAgICAgID8KICAgdjgtcmVn
ZXhwLXNlYXJjaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1NS41ODcyKy00Ljgx
MDYgICAgICAgICAgIDU0LjA1NDkrLTIuMTA0MCAgICAgICAgICBtaWdodCBiZSAxLjAyODN4IGZh
c3RlcgogICB2YXJhcmdzLWNhbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDEzLjM1MTMrLTEuMTU3MCAgICAgICAgICAgMTMuMTA1NCstMC41Mjk3ICAgICAgICAgIG1pZ2h0
IGJlIDEuMDE4OHggZmFzdGVyCiAgIHZhcmFyZ3MtY29uc3RydWN0LWlubGluZSAgICAgICAgICAg
ICAgICAgICAgICAgICAgMTguMzkwNystMC41NDg1ICAgICA/ICAgICAxOS4zMjI3Ky0xLjY0NzIg
ICAgICAgID8gbWlnaHQgYmUgMS4wNTA3eCBzbG93ZXIKICAgdmFyYXJncy1jb25zdHJ1Y3QgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMy42ODU3Ky0wLjI3ODMgICAgID8gICAgIDE0
LjcwMDYrLTIuMzc3OSAgICAgICAgPyBtaWdodCBiZSAxLjA3NDJ4IHNsb3dlcgogICB2YXJhcmdz
LWlubGluZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4LjAzNjUrLTAuNzgy
NyAgICAgICAgICAgIDcuODU0MistMC4yOTQ0ICAgICAgICAgIG1pZ2h0IGJlIDEuMDIzMnggZmFz
dGVyCiAgIHZhcmFyZ3Mtc3RyaWN0LW1vZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDkuNDM1OCstMC4yODE1ICAgICAgICAgICAgOS4yMzU0Ky0wLjI3ODEgICAgICAgICAgbWlnaHQg
YmUgMS4wMjE3eCBmYXN0ZXIKICAgdmFyYXJncyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgOS4xNzcwKy0wLjI1MTQgICAgID8gICAgIDEwLjQ1NDgrLTIuNzE3NCAg
ICAgICAgPyBtaWdodCBiZSAxLjEzOTJ4IHNsb3dlcgogICB3ZWlyZC1pbmxpbmluZy1jb25zdC1w
cm9wICAgICAgICAgICAgICAgICAgICAgICAgICAyLjEzNjkrLTAuMTg0NCAgICAgICAgICAgIDIu
MDAzNSstMC4xMTYxICAgICAgICAgIG1pZ2h0IGJlIDEuMDY2NnggZmFzdGVyCgogICA8Z2VvbWV0
cmljPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2LjgzNTArLTAuMDMy
MSAgICAgXiAgICAgIDYuNzUyMSstMC4wMjY1ICAgICAgICBeIGRlZmluaXRlbHkgMS4wMTIzeCBm
YXN0ZXIKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgVGlwT2ZUcmVlICAgICAgICAgICAgICAgICAgIFRoaW5ncyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgCkFzbUJlbmNoOgogICBiaWdmaWIuY3BwICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgNDY5LjYxOTMrLTMwLjQ2NDcgICAgICAgICA0NjEu
MzM0OCstMTQuMjMxMyAgICAgICAgIG1pZ2h0IGJlIDEuMDE4MHggZmFzdGVyCiAgIGNyYXkuYyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzODYuODAxMistMTEuNzQ5
OCAgICA/ICAgIDM5Ny40NzI1Ky0yNy4zNjU5ICAgICAgID8gbWlnaHQgYmUgMS4wMjc2eCBzbG93
ZXIKICAgZHJ5LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDU2
MC41NDA4Ky0zMy4xNTAwICAgIF4gICAgNDQ3Ljg0OTMrLTE4LjE2MTggICAgICAgXiBkZWZpbml0
ZWx5IDEuMjUxNnggZmFzdGVyCiAgIEZsb2F0TU0uYyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA3NjcuMTM2MCstMzcuNjM2MyAgICA/ICAgIDc4My40MjM3Ky01My4yMzk3
ICAgICAgID8gbWlnaHQgYmUgMS4wMjEyeCBzbG93ZXIKICAgZ2NjLWxvb3BzLmNwcCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMzkxMi41MjAwKy03NS4zODM2ICAgID8gICA0MDUw
LjY3MTkrLTMzMS45ODY2ICAgICAgPyBtaWdodCBiZSAxLjAzNTN4IHNsb3dlcgogICBuLWJvZHku
YyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgODQ4LjA3MjArLTMyLjU2
ODEgICAgPyAgICA4NjQuNzQxMystNTEuMjc4MSAgICAgICA/IG1pZ2h0IGJlIDEuMDE5N3ggc2xv
d2VyCiAgIFF1aWNrc29ydC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0
MjEuMTgwNystOS41MzA4ICAgICA/ICAgIDQzNC42NTQ5Ky0yNC4zMjM3ICAgICAgID8gbWlnaHQg
YmUgMS4wMzIweCBzbG93ZXIKICAgc3RlcGFub3ZfY29udGFpbmVyLmNwcCAgICAgICAgICAgICAg
ICAgICAgICAgICAgMzc4MC42MzkyKy0xODguOTAyNCAgICAgICAzNzUwLjc2MTUrLTkzLjM1NDYg
ICAgICAgCiAgIFRvd2Vycy5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAyOTAuMzQ1MistMTEuODMxNSAgICA/ICAgIDI5My4yOTU5Ky0xNi4wODYwICAgICAgID8gbWln
aHQgYmUgMS4wMTAyeCBzbG93ZXIKCiAgIDxnZW9tZXRyaWM+ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA3ODkuNDYxNistMTAuMTcyMyAgICAgICAgIDc3OS45MTI5Ky0xNS4y
MjUzICAgICAgICAgbWlnaHQgYmUgMS4wMTIyeCBmYXN0ZXIKCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGlwT2ZUcmVlICAgICAgICAgICAg
ICAgICAgIFRoaW5ncyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCkNvbXBy
ZXNzaW9uQmVuY2g6CiAgIGh1ZmZtYW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMzEuMjI3NistMS43ODg1ICAgICA/ICAgICAzMi40MjkyKy0zLjE3NDcgICAgICAg
ID8gbWlnaHQgYmUgMS4wMzg1eCBzbG93ZXIKICAgYXJpdGhtZXRpYy1zaW1wbGUgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDI4My4zNjQxKy0xMy4zMDAyICAgICAgICAgMjgxLjUwMjMr
LTExLjk4OTEgICAgICAgCiAgIGFyaXRobWV0aWMtcHJlY2lzZSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAyNjIuNDQ4MSstOC4wMzg5ICAgICAgICAgIDI1My40ODg0Ky0xMC4yMzg0ICAg
ICAgICAgbWlnaHQgYmUgMS4wMzUzeCBmYXN0ZXIKICAgYXJpdGhtZXRpYy1jb21wbGV4LXByZWNp
c2UgICAgICAgICAgICAgICAgICAgICAgIDI2Mi4wNDkyKy0yMS44ODgwICAgICAgICAgMjYyLjAz
MTkrLTEzLjY0MTkgICAgICAgCiAgIGFyaXRobWV0aWMtcHJlY2lzZS1vcmRlci0wICAgICAgICAg
ICAgICAgICAgICAgICAyODIuOTYyNCstMTkuNDAwNyAgICA/ICAgIDI5MC40NDQ3Ky03Ljc2ODYg
ICAgICAgID8gbWlnaHQgYmUgMS4wMjY0eCBzbG93ZXIKICAgYXJpdGhtZXRpYy1wcmVjaXNlLW9y
ZGVyLTEgICAgICAgICAgICAgICAgICAgICAgIDMyMy4wMzMzKy0xOC4xMjEzICAgID8gICAgMzI1
Ljc1ODArLTIyLjA0ODUgICAgICAgPwogICBhcml0aG1ldGljLXByZWNpc2Utb3JkZXItMiAgICAg
ICAgICAgICAgICAgICAgICAgMzkxLjQ1NDArLTMxLjk5MjQgICAgICAgICAzODQuNjQwNystMTku
NDk2NCAgICAgICAgIG1pZ2h0IGJlIDEuMDE3N3ggZmFzdGVyCiAgIGFyaXRobWV0aWMtc2ltcGxl
LW9yZGVyLTEgICAgICAgICAgICAgICAgICAgICAgICAzMjguODk0MystMTIuOTQ0MiAgICA/ICAg
IDMzMy45MDkzKy0xNS42MzQ5ICAgICAgID8gbWlnaHQgYmUgMS4wMTUyeCBzbG93ZXIKICAgYXJp
dGhtZXRpYy1zaW1wbGUtb3JkZXItMiAgICAgICAgICAgICAgICAgICAgICAgIDQxMi43ODM3Ky0y
OS4xMzQ3ICAgICAgICAgMzg5Ljg0MDQrLTE4LjcyNDUgICAgICAgICBtaWdodCBiZSAxLjA1ODl4
IGZhc3RlcgogICBsei1zdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMjk1LjczNzArLTEyLjM5MTAgICAgPyAgICAzMDAuMzc1MystMTAuNDE1MiAgICAgICA/IG1p
Z2h0IGJlIDEuMDE1N3ggc2xvd2VyCgogICA8Z2VvbWV0cmljPiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMjQ3LjUxNjIrLTMuMDI0NyAgICAgICAgICAyNDcuMjU0MystMi43
Njc4ICAgICAgICAgIG1pZ2h0IGJlIDEuMDAxMXggZmFzdGVyCgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRpcE9mVHJlZSAgICAgICAgICAg
ICAgICAgICBUaGluZ3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIApHZW9t
ZWFuIG9mIHByZWZlcnJlZCBtZWFuczoKICAgPHNjYWxlZC1yZXN1bHQ+ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA0Ny41MDYwKy0wLjQyOTggICAgICAgICAgIDQ3LjMwODcrLTAu
MjU4NSAgICAgICAgICBtaWdodCBiZSAxLjAwNDJ4IGZhc3RlcgoK
</data>

          </attachment>
      

    </bug>

</bugzilla>