<?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>190273</bug_id>
          
          <creation_ts>2018-10-03 20:19:17 -0700</creation_ts>
          <short_desc>Support arm64 CPUs with a 32-bit address space in the LLInt</short_desc>
          <delta_ts>2018-10-16 08:23:29 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Keith Miller">keith_miller</reporter>
          <assigned_to name="Keith Miller">keith_miller</assigned_to>
          <cc>achristensen</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1466291</commentid>
    <comment_count>0</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2018-10-03 20:19:17 -0700</bug_when>
    <thetext>Support arm64 CPUs with a 32-bit address space</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1466294</commentid>
    <comment_count>1</comment_count>
      <attachid>351577</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2018-10-03 20:37:16 -0700</bug_when>
    <thetext>Created attachment 351577
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1469612</commentid>
    <comment_count>2</comment_count>
      <attachid>352426</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2018-10-15 19:44:02 -0700</bug_when>
    <thetext>Created attachment 352426
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1469618</commentid>
    <comment_count>3</comment_count>
      <attachid>352428</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2018-10-15 20:26:51 -0700</bug_when>
    <thetext>Created attachment 352428
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1469620</commentid>
    <comment_count>4</comment_count>
      <attachid>352428</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2018-10-15 20:29:05 -0700</bug_when>
    <thetext>Comment on attachment 352428
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:3


I&apos;ll change this title before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1469632</commentid>
    <comment_count>5</comment_count>
      <attachid>352428</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2018-10-15 21:05:44 -0700</bug_when>
    <thetext>Comment on attachment 352428
Patch

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

r=me with a few questions.

&gt; Source/JavaScriptCore/interpreter/CallFrame.h:73
&gt; +        alignas(CPURegister) CallFrame* callerFrame;
&gt; +        alignas(CPURegister) Instruction* returnPC;

Make this camel case: alignAs()

&gt; Source/JavaScriptCore/offlineasm/arm64.rb:83
&gt; +    when :word

Hmm.  Not sure I like full register kind to be &quot;word&quot;.  How about &quot;reg&quot;, &quot;full&quot; or &quot;fullReg&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1469647</commentid>
    <comment_count>6</comment_count>
      <attachid>352428</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2018-10-15 22:11:24 -0700</bug_when>
    <thetext>Comment on attachment 352428
Patch

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

&gt;&gt; Source/JavaScriptCore/offlineasm/arm64.rb:83
&gt;&gt; +    when :word
&gt; 
&gt; Hmm.  Not sure I like full register kind to be &quot;word&quot;.  How about &quot;reg&quot;, &quot;full&quot; or &quot;fullReg&quot;?

How about changing it to “quad” and “int” to “word” as that’s how the abi refers to them?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1469650</commentid>
    <comment_count>7</comment_count>
      <attachid>352428</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-10-15 22:37:41 -0700</bug_when>
    <thetext>Comment on attachment 352428
Patch

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

LGTM too

&gt; Source/JavaScriptCore/assembler/CPU.h:34
&gt; +using CPURegister = int64_t;
&gt; +using UCPURegister = uint64_t;

Do we really need both of these?

&gt; Source/JavaScriptCore/b3/testb3.cpp:14611
&gt; +#if CPU(ADDRESS64)

Why? This test seems like it should work.

&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:4413
&gt; +            m_jit.mul32(TrustedImm32(sizeof(HasOwnPropertyCache::Entry)), hashGPR, hashGPR);

Why not just pad the struct?

&gt; Source/JavaScriptCore/interpreter/CalleeBits.h:54
&gt; +        CalleeBits result(reinterpret_cast&lt;void*&gt;(reinterpret_cast&lt;uintptr_t&gt;(callee) | TagBitsWasm));

Not sure this is the best way to do this. If we&apos;re ADDRESS32, we can box into 64 bits a lot easier.

&gt; Source/JavaScriptCore/llint/LowLevelInterpreter.asm:918
&gt; +    if ARM64 and not ADDRESS64
&gt; +        subi MachineRegisterSize, temp2
&gt; +        loadq [sp, temp2, 1], temp3
&gt; +        storeq temp3, [temp1, temp2, 1]
&gt; +        btinz temp2, .copyLoop
&gt; +    else
&gt; +        subi PtrSize, temp2
&gt; +        loadp [sp, temp2, 1], temp3
&gt; +        storep temp3, [temp1, temp2, 1]
&gt; +        btinz temp2, .copyLoop
&gt; +    end

Is this actually needed? Doesn&apos;t ARM64_32 have 64 bit stores?

&gt; Source/JavaScriptCore/llint/LowLevelInterpreter64.asm:552
&gt; +    # Adds to sp are always 64 bit on arm64 so we need t0&apos;s high bits to stay marked.

what do you mean marked?

&gt; Source/JavaScriptCore/runtime/SlowPathReturnType.h:47
&gt; +    result.a = reinterpret_cast&lt;CPURegister&gt;(a);
&gt; +    result.b = reinterpret_cast&lt;CPURegister&gt;(b);

Does the ABI guarantee anything about the upper bits here? Should we zero extend to be safe?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1469661</commentid>
    <comment_count>8</comment_count>
      <attachid>352428</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2018-10-16 00:07:43 -0700</bug_when>
    <thetext>Comment on attachment 352428
Patch

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

&gt;&gt; Source/JavaScriptCore/assembler/CPU.h:34
&gt;&gt; +using UCPURegister = uint64_t;
&gt; 
&gt; Do we really need both of these?

If you want an unsigned value, which some cases seem to want for shifting purposes.

&gt;&gt; Source/JavaScriptCore/b3/testb3.cpp:14611
&gt;&gt; +#if CPU(ADDRESS64)
&gt; 
&gt; Why? This test seems like it should work.

What does it mean to shift a pointer by 32 when that&apos;s the size of your address space?

&gt;&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:4413
&gt;&gt; +            m_jit.mul32(TrustedImm32(sizeof(HasOwnPropertyCache::Entry)), hashGPR, hashGPR);
&gt; 
&gt; Why not just pad the struct?

Why waste the memory? It&apos;s not that much slower to do a multiply.

&gt;&gt; Source/JavaScriptCore/interpreter/CallFrame.h:73
&gt;&gt; +        alignas(CPURegister) Instruction* returnPC;
&gt; 
&gt; Make this camel case: alignAs()

It&apos;s a builtin C++ macro value.

&gt;&gt; Source/JavaScriptCore/interpreter/CalleeBits.h:54
&gt;&gt; +        CalleeBits result(reinterpret_cast&lt;void*&gt;(reinterpret_cast&lt;uintptr_t&gt;(callee) | TagBitsWasm));
&gt; 
&gt; Not sure this is the best way to do this. If we&apos;re ADDRESS32, we can box into 64 bits a lot easier.

The tag bits are on the bottom anyway.

&gt;&gt; Source/JavaScriptCore/llint/LowLevelInterpreter.asm:918
&gt;&gt; +    end
&gt; 
&gt; Is this actually needed? Doesn&apos;t ARM64_32 have 64 bit stores?

Yes that&apos;s why I do the q loads and stores for ARM64 when not Address64.

&gt;&gt; Source/JavaScriptCore/llint/LowLevelInterpreter64.asm:552
&gt;&gt; +    # Adds to sp are always 64 bit on arm64 so we need t0&apos;s high bits to stay marked.
&gt; 
&gt; what do you mean marked?

if t0 contains a negative value we should maintain the 1s in the upper 32 bits. I guess I could change this to: 

# Adds to sp are always 64 bit on arm64 so we need avoid zeroing t0&apos;s high bits.

&gt;&gt; Source/JavaScriptCore/runtime/SlowPathReturnType.h:47
&gt;&gt; +    result.b = reinterpret_cast&lt;CPURegister&gt;(b);
&gt; 
&gt; Does the ABI guarantee anything about the upper bits here? Should we zero extend to be safe?

The ABI is caller zero&apos;s the upper 32-bits.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1469664</commentid>
    <comment_count>9</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2018-10-16 00:19:23 -0700</bug_when>
    <thetext>Committed r237173: &lt;https://trac.webkit.org/changeset/237173&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1469665</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-10-16 00:20:26 -0700</bug_when>
    <thetext>&lt;rdar://problem/45298718&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1469688</commentid>
    <comment_count>11</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-10-16 07:04:23 -0700</bug_when>
    <thetext>It looks like this broke the i386 build even though it worked on EWS :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1469707</commentid>
    <comment_count>12</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2018-10-16 08:23:29 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #11)
&gt; It looks like this broke the i386 build even though it worked on EWS :(

Hmm, weird. Could be it needs a clean build.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>351577</attachid>
            <date>2018-10-03 20:37:16 -0700</date>
            <delta_ts>2018-10-15 19:43:59 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-190273-20181003203715.patch</filename>
            <type>text/plain</type>
            <size>75455</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2NTQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
MTUwODM2MjdiMjk0MTU3NzJlNzgxNWI1NjMwYjJhMDlhNWMyZjM0Li4xNjgyYjliNDczZjZlOTNi
MzhiZDc3NTRlNDRkNTg5NzQ5NWNiNjE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMTIgQEAKKzIwMTgtMTAtMDMgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBs
ZS5jb20+CisKKyAgICAgICAgU3VwcG9ydCBhcm02NCBDUFVzIHdpdGggYSAzMi1iaXQgYWRkcmVz
cyBzcGFjZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTkwMjczCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGFz
c2VtYmxlci9BUk02NEFzc2VtYmxlci5oOgorICAgICAgICAoSlNDOjppc0ludCk6CisgICAgICAg
IChKU0M6OmlzNEJ5dGVBbGlnbmVkKToKKyAgICAgICAgKEpTQzo6UGFpclBvc3RJbmRleDo6UGFp
clBvc3RJbmRleCk6CisgICAgICAgIChKU0M6OlBhaXJQcmVJbmRleDo6UGFpclByZUluZGV4KToK
KyAgICAgICAgKEpTQzo6QVJNNjRBc3NlbWJsZXI6OnJlYWRQb2ludGVyKToKKyAgICAgICAgKEpT
Qzo6QVJNNjRBc3NlbWJsZXI6OnJlYWRDYWxsVGFyZ2V0KToKKyAgICAgICAgKEpTQzo6QVJNNjRB
c3NlbWJsZXI6OmNvbXB1dGVKdW1wVHlwZSk6CisgICAgICAgIChKU0M6OkFSTTY0QXNzZW1ibGVy
OjpsaW5rQ29tcGFyZUFuZEJyYW5jaCk6CisgICAgICAgIChKU0M6OkFSTTY0QXNzZW1ibGVyOjps
aW5rQ29uZGl0aW9uYWxCcmFuY2gpOgorICAgICAgICAoSlNDOjpBUk02NEFzc2VtYmxlcjo6bGlu
a1Rlc3RBbmRCcmFuY2gpOgorICAgICAgICAoSlNDOjpBUk02NEFzc2VtYmxlcjo6bG9hZFJlZ2lz
dGVyTGl0ZXJhbCk6CisgICAgICAgIChKU0M6OkFSTTY0QXNzZW1ibGVyOjpsb2FkU3RvcmVSZWdp
c3RlclBhaXJQb3N0SW5kZXgpOgorICAgICAgICAoSlNDOjpBUk02NEFzc2VtYmxlcjo6bG9hZFN0
b3JlUmVnaXN0ZXJQYWlyUHJlSW5kZXgpOgorICAgICAgICAoSlNDOjpBUk02NEFzc2VtYmxlcjo6
bG9hZFN0b3JlUmVnaXN0ZXJQYWlyT2Zmc2V0KToKKyAgICAgICAgKEpTQzo6QVJNNjRBc3NlbWJs
ZXI6OmxvYWRTdG9yZVJlZ2lzdGVyUGFpck5vblRlbXBvcmFsKToKKyAgICAgICAgKEpTQzo6aXNJ
bnQ3KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6aXNJbnQxMSk6IERlbGV0ZWQuCisgICAgICAg
ICogYXNzZW1ibGVyL0NQVS5oOgorICAgICAgICAoSlNDOjppc0FkZHJlc3M2NEJpdCk6CisgICAg
ICAgIChKU0M6OmlzQWRkcmVzczMyQml0KToKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3Nl
bWJsZXIuaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXI6OnNob3VsZEJsaW5kKToKKyAg
ICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5jcHA6CisgICAgICAgIChKU0M6
Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OmNvbGxlY3RDUFVGZWF0dXJlcyk6CisgICAgICAgICogYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJs
ZXJBUk02NDo6bG9hZCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OnN0b3Jl
KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6aXNJbkludFJhbmdlKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBhc3NlbWJsZXIvUHJpbnRlci5oOgorICAgICAgICAqIGFzc2VtYmxl
ci9Qcm9iZUNvbnRleHQuaDoKKyAgICAgICAgKEpTQzo6UHJvYmU6OkNQVVN0YXRlOjpncHIpOgor
ICAgICAgICAoSlNDOjpQcm9iZTo6Q1BVU3RhdGU6OnNwcik6CisgICAgICAgIChKU0M6OlByb2Jl
OjpDb250ZXh0OjpncHIpOgorICAgICAgICAoSlNDOjpQcm9iZTo6Q29udGV4dDo6c3ByKToKKyAg
ICAgICAgKiBiMy9CM0NvbnN0UHRyVmFsdWUuaDoKKyAgICAgICAgKiBiMy9CM1N0YWNrbWFwU3Bl
Y2lhbC5jcHA6CisgICAgICAgIChKU0M6OkIzOjpTdGFja21hcFNwZWNpYWw6OmlzQXJnVmFsaWRG
b3JSZXApOgorICAgICAgICAqIGIzL2Fpci9BaXJBcmcuaDoKKyAgICAgICAgKEpTQzo6QjM6OkFp
cjo6QXJnOjpzdGFja1Nsb3QgY29uc3QpOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpBcmc6OnNw
ZWNpYWwgY29uc3QpOgorICAgICAgICAqIGIzL2Fpci90ZXN0YWlyLmNwcDoKKyAgICAgICAgKiBi
My90ZXN0YjMuY3BwOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN0b3JlQ29uc3RhbnRQdHIpOgor
ICAgICAgICAoSlNDOjpCMzo6dGVzdEludGVycHJldGVyKToKKyAgICAgICAgKEpTQzo6QjM6OnRl
c3RBZGRTaGwzMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0TG9hZEJhc2VJbmRleFNoaWZ0MzIp
OgorICAgICAgICAqIGJpbmRpbmdzL1NjcmlwdEZ1bmN0aW9uQ2FsbC5jcHA6CisgICAgICAgIChE
ZXByZWNhdGVkOjpTY3JpcHRDYWxsQXJndW1lbnRIYW5kbGVyOjphcHBlbmRBcmd1bWVudCk6Cisg
ICAgICAgICogYmluZGluZ3MvU2NyaXB0RnVuY3Rpb25DYWxsLmg6CisgICAgICAgICogZGZnL0RG
R09TUkV4aXQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OnJlc3RvcmVDYWxsZWVTYXZlc0Zvcik6
CisgICAgICAgIChKU0M6OkRGRzo6c2F2ZUNhbGxlZVNhdmVzRm9yKToKKyAgICAgICAgKEpTQzo6
REZHOjpyZXN0b3JlQ2FsbGVlU2F2ZXNGcm9tVk1FbnRyeUZyYW1lQ2FsbGVlU2F2ZXNCdWZmZXIp
OgorICAgICAgICAoSlNDOjpERkc6OmNvcHlDYWxsZWVTYXZlc1RvVk1FbnRyeUZyYW1lQ2FsbGVl
U2F2ZXNCdWZmZXIpOgorICAgICAgICAqIGRmZy9ERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uY3Bw
OgorICAgICAgICAoSlNDOjpERkc6OnJlaWZ5SW5saW5lZENhbGxGcmFtZXMpOgorICAgICAgICAq
IGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZGlzYXNzZW1ibGVyL1VEaXM4NkRpc2Fzc2Vt
Ymxlci5jcHA6CisgICAgICAgIChKU0M6OnRyeVRvRGlzYXNzZW1ibGVXaXRoVURpczg2KToKKyAg
ICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0IzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6
Okxvd2VyREZHVG9CMzo6Y29tcGlsZVdlYWtNYXBHZXQpOgorICAgICAgICAqIGhlYXAvTWFjaGlu
ZVN0YWNrTWFya2VyLmNwcDoKKyAgICAgICAgKEpTQzo6Y29weU1lbW9yeSk6CisgICAgICAgICog
aW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmg6CisgICAgICAgIChKU0M6OkV4ZWNTdGF0ZTo6cmV0dXJu
UEMgY29uc3QpOgorICAgICAgICAoSlNDOjpFeGVjU3RhdGU6Omhhc1JldHVyblBDIGNvbnN0KToK
KyAgICAgICAgKEpTQzo6RXhlY1N0YXRlOjpjbGVhclJldHVyblBDKToKKyAgICAgICAgKEpTQzo6
RXhlY1N0YXRlOjpyZXR1cm5QQ09mZnNldCk6CisgICAgICAgIChKU0M6OkV4ZWNTdGF0ZTo6aXNH
bG9iYWxFeGVjIGNvbnN0KToKKyAgICAgICAgKEpTQzo6RXhlY1N0YXRlOjpzZXRSZXR1cm5QQyk6
CisgICAgICAgICogaW50ZXJwcmV0ZXIvQ2FsbGVlQml0cy5oOgorICAgICAgICAoSlNDOjpDYWxs
ZWVCaXRzOjpib3hXYXNtKToKKyAgICAgICAgKEpTQzo6Q2FsbGVlQml0czo6aXNXYXNtIGNvbnN0
KToKKyAgICAgICAgKEpTQzo6Q2FsbGVlQml0czo6YXNXYXNtQ2FsbGVlIGNvbnN0KToKKyAgICAg
ICAgKiBqaXQvQXNzZW1ibHlIZWxwZXJzLmg6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVy
czo6Y2xlYXJTdGFja0ZyYW1lKToKKyAgICAgICAgKiBsbGludC9MTEludERhdGEuY3BwOgorICAg
ICAgICAoSlNDOjpMTEludDo6RGF0YTo6cGVyZm9ybUFzc2VydGlvbnMpOgorICAgICAgICAqIGxs
aW50L0xMSW50T2ZmbGluZUFzbUNvbmZpZy5oOgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50
ZXJwcmV0ZXIuYXNtOgorICAgICAgICAqIG9mZmxpbmVhc20vYXJtNjQucmI6CisgICAgICAgICog
b2ZmbGluZWFzbS9iYWNrZW5kcy5yYjoKKyAgICAgICAgKiBydW50aW1lL0Jhc2ljQmxvY2tMb2Nh
dGlvbi5jcHA6CisgICAgICAgIChKU0M6OkJhc2ljQmxvY2tMb2NhdGlvbjo6ZHVtcERhdGEgY29u
c3QpOgorICAgICAgICAoSlNDOjpCYXNpY0Jsb2NrTG9jYXRpb246OmVtaXRFeGVjdXRlQ29kZSBj
b25zdCk6CisgICAgICAgICogcnVudGltZS9CYXNpY0Jsb2NrTG9jYXRpb24uaDoKKyAgICAgICAg
KiBydW50aW1lL0hhc093blByb3BlcnR5Q2FjaGUuaDoKKyAgICAgICAgKiBydW50aW1lL0pTQmln
SW50LmNwcDoKKyAgICAgICAgKEpTQzo6SlNCaWdJbnQ6OmlucGxhY2VNdWx0aXBseUFkZCk6Cisg
ICAgICAgIChKU0M6OkpTQmlnSW50OjpkaWdpdERpdik6CisgICAgICAgICogcnVudGltZS9KU0Jp
Z0ludC5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1l
L1JlZ0V4cC5jcHA6CisgICAgICAgIChKU0M6OlJlZ0V4cDo6cHJpbnRUcmFjZURhdGEpOgorICAg
ICAgICAqIHJ1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5jcHA6CisgICAgICAgIChKU0M6OkNGcmFt
ZVdhbGtlcjo6d2Fsayk6CisgICAgICAgICogdG9vbHMvU2lnaWxsQ3Jhc2hBbmFseXplci5jcHA6
CisgICAgICAgIChKU0M6OlNpZ2lsbENyYXNoQW5hbHl6ZXI6OmR1bXBDb2RlQmxvY2spOgorCiAy
MDE4LTA5LTI2ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBPcHRp
b25zOjp1c2VTZXBhcmF0ZWRXWEhlYXAoKSBzaG91bGQgYWx3YXlzIGJlIGZhbHNlIHdoZW4gRU5B
QkxFKEZBU1RfSklUX1BFUk1JU1NJT05TKSAmJiBDUFUoQVJNNjRFKS4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggOTUzYmFmZTky
YTMzZTY5ZTU3YjBmNDRlNjkxYzJmMTZlZTAxMWMwMi4uZTA3Y2U1NTU1YjliODA0Y2VmZjE2Yjdj
MTk0ODlhZDE4NjVlZDM5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxOC0xMC0wMyAgS2VpdGgg
TWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0IGFybTY0
IENQVXMgd2l0aCBhIDMyLWJpdCBhZGRyZXNzIHNwYWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTAyNzMKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9ybS5oOgorCiAyMDE4LTA5LTI1
ICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgogCiAgICAgICAgIENoYW5nZSBm
cm9tIEhBVkUoQ0ZORVRXT1JLX1NUT1JBR0VfUEFSVElUSU9OSU5HKSB0byBFTkFCTEUoUkVTT1VS
Q0VfTE9BRF9TVEFUSVNUSUNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3NzRk
OTc3NjFjZjM2ZjdiNmZlMzVjMzY3MDYxYmE1YTdiMDRhMjUyLi5lZmMyZDhjOTk4Y2Q1NGU1ZWNh
NTcxMDZiMTIxNmJmZWNjMTE3ZGI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
MTExMCw2ICsxMTEwLDcgQEAKIAkJNzBFQ0E2MDYxQUZEQkVBMjAwNDQ5NzM5IC8qIEpTVGVtcGxh
dGVPYmplY3REZXNjcmlwdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3MEVDQTYwMTFBRkRCRUEyMDA0NDk3MzkgLyogSlNUZW1wbGF0ZU9iamVjdERl
c2NyaXB0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk3MEVDQTYwOTFBRkRCRUEyMDA0NDk3MzkgLyogVGVtcGxhdGVPYmplY3REZXNjcmlwdG9y
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MEVDQTYw
NDFBRkRCRUEyMDA0NDk3MzkgLyogVGVtcGxhdGVPYmplY3REZXNjcmlwdG9yLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzJBQUY3Q0UxRDBEMzFC
MzAwNUU2MEJFIC8qIEpTQ3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb24uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyQUFGN0NDMUQwRDMxOEIwMDVFNjBC
RSAvKiBKU0N1c3RvbUdldHRlclNldHRlckZ1bmN0aW9uLmggKi87IH07CisJCTc1OTNDODk4QkU3
MTRBNjRCRTkzQTZFNyAvKiBXYXNtQ29udGV4dElubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEyNzk1OEQ3RkExMTQyQjBBQzlFMzY0RCAvKiBX
YXNtQ29udGV4dElubGluZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk3OTAwODEzOTFFOTVBOEVDMDA1MkQ3Q0QgLyogV2FzbU1vZHVsZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzkwMDgxMzcxRTk1
QThFQzAwNTJEN0NEIC8qIFdhc21Nb2R1bGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk3OTA1QkI2OTFEMTIwNTBFMDAxOUZFNTcgLyogSW5saW5l
QWNjZXNzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
OTA1QkI2NzFEMTIwNTBFMDAxOUZFNTcgLyogSW5saW5lQWNjZXNzLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzkxNjBEQkUxQzhFM0VDODAwOEMw
ODVBIC8qIFByb3h5UmV2b2tlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3OTE2MERCQzFDOEUzRUM4MDA4QzA4NUEgLyogUHJveHlSZXZva2UuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTUyMyw3ICsx
NTI0LDYgQEAKIAkJQUQyRkNDMjExREI1OUNCMjAwQjNFNzM2IC8qIFdlYkFzc2VtYmx5VGFibGVQ
cm90b3R5cGUubHV0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBRDJGQ0MxNTFEQjU5QzU5MDBCM0U3MzYgLyogV2ViQXNzZW1ibHlUYWJsZVByb3RvdHlw
ZS5sdXQuaCAqLzsgfTsKIAkJQUQyRkNDMkQxREI4MzhGRDAwQjNFNzM2IC8qIFdlYkFzc2VtYmx5
UHJvdG90eXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBRDJGQ0MyNzFEQjgzOEM0MDBCM0U3MzYgLyogV2ViQXNzZW1ibHlQcm90b3R5cGUuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBRDQxMkIzNDFF
N0IyRTlFMDA4QUYxNTcgLyogV2FzbUNvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFENDEyQjMyMUU3QjJFOEEwMDhBRjE1NyAvKiBXYXNtQ29u
dGV4dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0J
CTc1OTNDODk4QkU3MTRBNjRCRTkzQTZFNyAvKiBXYXNtQ29udGV4dElubGluZXMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEyNzk1OEQ3RkExMTQyQjBB
QzlFMzY0RCAvKiBXYXNtQ29udGV4dElubGluZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBRDQyNTI1MTFFNUQwRTE0MDA5RDJBOTcgLyogRnVs
bENvZGVPcmlnaW4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEFENDI1MjUwMUU1RDBERUIwMDlEMkE5NyAvKiBGdWxsQ29kZU9yaWdpbi5oICovOyB9Owog
CQlBRDQ5MzdDNDFEREJFNjE0MDA3N0M4MDcgLyogQWJzdHJhY3RNb2R1bGVSZWNvcmQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFENDkzN0MyMUREQkU2
MEEwMDc3QzgwNyAvKiBBYnN0cmFjdE1vZHVsZVJlY29yZC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUFENDkzN0M4MURERDBBQUUwMDc3QzgwNyAv
KiBXZWJBc3NlbWJseU1vZHVsZVJlY29yZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQUQ0OTM3QzYxRERDRENGMDAwNzdDODA3IC8qIFdlYkFzc2VtYmx5
TW9kdWxlUmVjb3JkLmggKi87IH07CkBAIC0zOTkzLDYgKzM5OTMsNyBAQAogCQlBMUQ3OTJGQjFC
NDM4NjRCMDA0NTE2RjUgLyogSW50bE51bWJlckZvcm1hdFByb3RvdHlwZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBJbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExRTA0NTFCMUMyNUI0QjEwMEJCNjYzQyAvKiBTdHJp
bmdQcm90b3R5cGUuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IHBhdGggPSBT
dHJpbmdQcm90b3R5cGUuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExRkUxRUIw
MUMyQzUzN0UwMEEyODlGRiAvKiBEYXRlUHJvdG90eXBlLmpzICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5qYXZhc2NyaXB0OyBwYXRoID0gRGF0ZVByb3RvdHlwZS5qczsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQTI3OTU4RDdGQTExNDJCMEFDOUUzNjREIC8qIFdhc21Db250ZXh0SW5saW5l
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXYXNtQ29udGV4dElubGluZXMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTUwM0ZBMTMxODhFMEZBRjAwMTEwRjE0
IC8qIEphdmFTY3JpcHRDYWxsRnJhbWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSmF2YVNjcmlwdENhbGxGcmFtZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUE1MDNGQTE0MTg4RTBGQUYwMDExMEYxNCAvKiBKYXZhU2NyaXB0Q2FsbEZyYW1lLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEphdmFTY3JpcHRDYWxsRnJhbWUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTUwM0ZBMTUxODhFMEZCMDAwMTEwRjE0IC8q
IEpTSmF2YVNjcmlwdENhbGxGcmFtZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU0phdmFTY3JpcHRDYWxsRnJhbWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtNDM0Niw3ICs0MzQ3LDYgQEAKIAkJQUQyRkNDMjcxREI4MzhDNDAwQjNFNzM2IC8q
IFdlYkFzc2VtYmx5UHJvdG90eXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IFdlYkFzc2VtYmx5UHJvdG90eXBlLmg7IHBhdGggPSBqcy9XZWJBc3NlbWJseVByb3RvdHlwZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBRDJGQ0MzMjFEQzQwNDUzMDBCM0U3MzYg
LyogV2FzbUZvcm1hdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBX
YXNtRm9ybWF0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQUQ0MTJCMzIxRTdC
MkU4QTAwOEFGMTU3IC8qIFdhc21Db250ZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdhc21Db250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUEyNzk1
OEQ3RkExMTQyQjBBQzlFMzY0RCAvKiBXYXNtQ29udGV4dElubGluZXMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV2FzbUNvbnRleHRJbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUFENDEyQjM1MUU3QjU3QzAwMDhBRjE1NyAvKiBBbGxvd01hY3JvU2Ny
YXRjaFJlZ2lzdGVyVXNhZ2VJZi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBB
bGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2VJZi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlBRDQyNTI1MDFFNUQwREVCMDA5RDJBOTcgLyogRnVsbENvZGVPcmlnaW4uaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRnVsbENvZGVPcmlnaW4uaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQUQ0MjUyNTIxRTVEMEYyMjAwOUQyQTk3IC8qIEZ1bGxDb2Rl
T3JpZ2luLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZ1bGxDb2Rl
T3JpZ2luLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTc4MTIsNyArNzgxMiw3
IEBACiAJCTk5NTlFOTI1MUJEMTdGMUUwMDFBQTQxMyAvKiBTY3JpcHRzICovID0gewogCQkJaXNh
ID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQk5OURBMDA5NzFCRDU5OEUwMDBGNDU3
NUMgLyogYnVpbHRpbnMgKi8sCisJCQkJOTlEQTAwOTcxQkQ1OThFMDAwRjQ1NzVDIC8qIHdrYnVp
bHRpbnMgKi8sCiAJCQkJOTk1OUU5MjcxQkQxN0ZBMDAwMUFBNDEzIC8qIGNzc21pbi5weSAqLywK
IAkJCQk5OTU5RTkyRjFCRDE4MUY2MDAxQUE0MTMgLyogZ2VuZXJhdGUtY29tYmluZWQtaW5zcGVj
dG9yLWpzb24ucHkgKi8sCiAJCQkJOTlEQTAwQUMxQkQ1OTkzRTAwRjQ1NzVDIC8qIGdlbmVyYXRl
LWpzLWJ1aWx0aW5zLnB5ICovLApAQCAtMTAxNDYsNyArMTAxNDYsNyBAQAogCQkJKTsKIAkJCXJ1
bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQkJc2hlbGxQYXRoID0gL2Jp
bi9zaDsKLQkJCXNoZWxsU2NyaXB0ID0gImlmIFtbIFwiJHtBQ1RJT059XCIgPT0gXCJpbnN0YWxs
aGRyc1wiIF1dOyB0aGVuXG4gICAgZXhpdCAwXG5maVxuXG5jZCBcIiR7QlVJTFRfUFJPRFVDVFNf
RElSfS9EZXJpdmVkU291cmNlcy9KYXZhU2NyaXB0Q29yZVwiXG5cbi91c3IvYmluL2VudiBydWJ5
IEphdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXNtLnJiIFwiLUkke0JVSUxUX1BST0RVQ1RTX0RJ
Un0vRGVyaXZlZFNvdXJjZXMvSmF2YVNjcmlwdENvcmVcIiBKYXZhU2NyaXB0Q29yZS9sbGludC9M
b3dMZXZlbEludGVycHJldGVyLmFzbSBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9KU0NMTEludE9m
ZnNldHNFeHRyYWN0b3JcIiBMTEludEFzc2VtYmx5LmggfHwgZXhpdCAxIjsKKwkJCXNoZWxsU2Ny
aXB0ID0gImlmIFtbIFwiJHtBQ1RJT059XCIgPT0gXCJpbnN0YWxsaGRyc1wiIF1dOyB0aGVuXG4g
ICAgZXhpdCAwXG5maVxuXG5jZCBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9EZXJpdmVkU291cmNl
cy9KYXZhU2NyaXB0Q29yZVwiXG5cbi91c3IvYmluL2VudiBydWJ5IEphdmFTY3JpcHRDb3JlL29m
ZmxpbmVhc20vYXNtLnJiIFwiLUkke0JVSUxUX1BST0RVQ1RTX0RJUn0vRGVyaXZlZFNvdXJjZXMv
SmF2YVNjcmlwdENvcmVcIiBKYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVy
LmFzbSBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9KU0NMTEludE9mZnNldHNFeHRyYWN0b3JcIiBM
TEludEFzc2VtYmx5LmggfHwgZXhpdCAxXG4iOwogCQl9OwogCQk2NUZCM0Y2NTA5RDExRTkxMDBG
NDlERUIgLyogR2VuZXJhdGUgRGVyaXZlZCBTb3VyY2VzICovID0gewogCQkJaXNhID0gUEJYU2hl
bGxTY3JpcHRCdWlsZFBoYXNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9BUk02NEFzc2VtYmxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9BUk02NEFzc2VtYmxlci5oCmluZGV4IGZmMjIzNjI0NWI3MzY3MDQ4NGZhYjRmODIwZjhhNjg4
OGY3MTc2ZjguLmZjMGZjNWE1NjVjYjk5ZjE4NmUzYmI2ZDFkNGU4ZDdjM2E3MDUyZTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNNjRBc3NlbWJsZXIuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTTY0QXNzZW1ibGVyLmgKQEAg
LTI5LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUgIkFzc2VtYmxlckJ1ZmZlci5oIgogI2luY2x1ZGUg
IkFzc2VtYmxlckNvbW1vbi5oIgorI2luY2x1ZGUgIkNQVS5oIgogI2luY2x1ZGUgIkpTQ1B0clRh
Zy5oIgogI2luY2x1ZGUgPGxpbWl0cy5oPgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CkBA
IC01NCwxNCArNTUsMTcgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLUFMV0FZU19JTkxJTkUgYm9v
bCBpc0ludDcoaW50MzJfdCB2YWx1ZSkKK3RlbXBsYXRlPHNpemVfdCBiaXRzLCB0eXBlbmFtZSBU
eXBlPgorQUxXQVlTX0lOTElORSBjb25zdGV4cHIgYm9vbCBpc0ludChUeXBlIHQpCiB7Ci0gICAg
cmV0dXJuIHZhbHVlID09ICgodmFsdWUgPDwgMjUpID4+IDI1KTsKKyAgICBjb25zdGV4cHIgc2l6
ZV90IHNoaWZ0ID0gc2l6ZW9mKFR5cGUpICogQ0hBUl9CSVQgLSBiaXRzOworICAgIHN0YXRpY19h
c3NlcnQoc2l6ZW9mKFR5cGUpICogQ0hBUl9CSVQgPiBzaGlmdCwgInNoaWZ0IGlzIGxhcmdlciB0
aGFuIHRoZSBzaXplIG9mIHRoZSB2YWx1ZSIpOworICAgIHJldHVybiAoKHQgPDwgc2hpZnQpID4+
IHNoaWZ0KSA9PSB0OwogfQogCi1BTFdBWVNfSU5MSU5FIGJvb2wgaXNJbnQxMShpbnQzMl90IHZh
bHVlKQorc3RhdGljIEFMV0FZU19JTkxJTkUgYm9vbCBpczRCeXRlQWxpZ25lZChjb25zdCB2b2lk
KiBwdHIpCiB7Ci0gICAgcmV0dXJuIHZhbHVlID09ICgodmFsdWUgPDwgMjEpID4+IDIxKTsKKyAg
ICByZXR1cm4gIShyZWludGVycHJldF9jYXN0PGludHB0cl90PihwdHIpICYgMHgzKTsKIH0KIAog
QUxXQVlTX0lOTElORSBib29sIGlzVUludDUoaW50MzJfdCB2YWx1ZSkKQEAgLTEzMCw3ICsxMzQs
NyBAQCBwdWJsaWM6CiAgICAgZXhwbGljaXQgUGFpclBvc3RJbmRleChpbnQgdmFsdWUpCiAgICAg
ICAgIDogbV92YWx1ZSh2YWx1ZSkKICAgICB7Ci0gICAgICAgIEFTU0VSVChpc0ludDExKHZhbHVl
KSk7CisgICAgICAgIEFTU0VSVChpc0ludDwxMT4odmFsdWUpKTsKICAgICB9CiAKICAgICBvcGVy
YXRvciBpbnQoKSB7IHJldHVybiBtX3ZhbHVlOyB9CkBAIC0xNDQsNyArMTQ4LDcgQEAgcHVibGlj
OgogICAgIGV4cGxpY2l0IFBhaXJQcmVJbmRleChpbnQgdmFsdWUpCiAgICAgICAgIDogbV92YWx1
ZSh2YWx1ZSkKICAgICB7Ci0gICAgICAgIEFTU0VSVChpc0ludDExKHZhbHVlKSk7CisgICAgICAg
IEFTU0VSVChpc0ludDwxMT4odmFsdWUpKTsKICAgICB9CiAKICAgICBvcGVyYXRvciBpbnQoKSB7
IHJldHVybiBtX3ZhbHVlOyB9CkBAIC00NTIsOCArNDU2LDggQEAgcHVibGljOgogICAgIHByaXZh
dGU6CiAgICAgICAgIHVuaW9uIHsKICAgICAgICAgICAgIHN0cnVjdCBSZWFsVHlwZXMgewotICAg
ICAgICAgICAgICAgIGludHB0cl90IG1fZnJvbSA6IDQ4OwotICAgICAgICAgICAgICAgIGludHB0
cl90IG1fdG8gOiA0ODsKKyAgICAgICAgICAgICAgICBpbnQ2NF90IG1fZnJvbTsKKyAgICAgICAg
ICAgICAgICBpbnQ2NF90IG1fdG87CiAgICAgICAgICAgICAgICAgSnVtcFR5cGUgbV90eXBlIDog
ODsKICAgICAgICAgICAgICAgICBKdW1wTGlua1R5cGUgbV9saW5rVHlwZSA6IDg7CiAgICAgICAg
ICAgICAgICAgQ29uZGl0aW9uIG1fY29uZGl0aW9uIDogNDsKQEAgLTI4MDIsMTYgKzI4MDYsMTgg
QEAgcHVibGljOgogICAgICAgICBBU1NFUlRfVU5VU0VEKGV4cGVjdGVkLCBleHBlY3RlZCAmJiBz
ZiAmJiBvcGMgPT0gTW92ZVdpZGVPcF9LICYmIGh3ID09IDEgJiYgcmQgPT0gcmRGaXJzdCk7CiAg
ICAgICAgIHJlc3VsdCB8PSBzdGF0aWNfY2FzdDx1aW50cHRyX3Q+KGltbTE2KSA8PCAxNjsKIAor
I2lmIENQVShBRERSRVNTNjQpCiAgICAgICAgIGV4cGVjdGVkID0gZGlzYXNzZW1ibGVNb3ZlV2lk
ZUltZWRpYXRlKGFkZHJlc3MgKyAyLCBzZiwgb3BjLCBodywgaW1tMTYsIHJkKTsKICAgICAgICAg
QVNTRVJUX1VOVVNFRChleHBlY3RlZCwgZXhwZWN0ZWQgJiYgc2YgJiYgb3BjID09IE1vdmVXaWRl
T3BfSyAmJiBodyA9PSAyICYmIHJkID09IHJkRmlyc3QpOwogICAgICAgICByZXN1bHQgfD0gc3Rh
dGljX2Nhc3Q8dWludHB0cl90PihpbW0xNikgPDwgMzI7CisjZW5kaWYKIAogICAgICAgICByZXR1
cm4gcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4ocmVzdWx0KTsKICAgICB9CiAKICAgICBzdGF0aWMg
dm9pZCogcmVhZENhbGxUYXJnZXQodm9pZCogZnJvbSkKICAgICB7Ci0gICAgICAgIHJldHVybiBy
ZWFkUG9pbnRlcihyZWludGVycHJldF9jYXN0PGludCo+KGZyb20pIC0gNCk7CisgICAgICAgIHJl
dHVybiByZWFkUG9pbnRlcihyZWludGVycHJldF9jYXN0PGludCo+KGZyb20pIC0gKGlzQWRkcmVz
czY0Qml0KCkgPyA0IDogMykpOwogICAgIH0KIAogICAgIC8vIFRoZSBzdGF0aWMgcmVsaW5rLCBy
ZXBhdGNoLCBhbmQgcmVwbGFjZSBtZXRob2RzIGNhbiB1c2UgY2FuCkBAIC0yOTI4LDMxICsyOTM0
LDMxIEBAIHB1YmxpYzoKICAgICAgICAgY2FzZSBKdW1wTm9Db25kaXRpb246CiAgICAgICAgICAg
ICByZXR1cm4gTGlua0p1bXBOb0NvbmRpdGlvbjsKICAgICAgICAgY2FzZSBKdW1wQ29uZGl0aW9u
OiB7Ci0gICAgICAgICAgICBBU1NFUlQoIShyZWludGVycHJldF9jYXN0PGludHB0cl90Pihmcm9t
KSAmIDB4MykpOwotICAgICAgICAgICAgQVNTRVJUKCEocmVpbnRlcnByZXRfY2FzdDxpbnRwdHJf
dD4odG8pICYgMHgzKSk7CisgICAgICAgICAgICBBU1NFUlQoaXM0Qnl0ZUFsaWduZWQoZnJvbSkp
OworICAgICAgICAgICAgQVNTRVJUKGlzNEJ5dGVBbGlnbmVkKHRvKSk7CiAgICAgICAgICAgICBp
bnRwdHJfdCByZWxhdGl2ZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KHRvKSAtIChyZWlu
dGVycHJldF9jYXN0PGludHB0cl90Pihmcm9tKSk7CiAKLSAgICAgICAgICAgIGlmICgoKHJlbGF0
aXZlIDw8IDQzKSA+PiA0MykgPT0gcmVsYXRpdmUpCisgICAgICAgICAgICBpZiAoaXNJbnQ8MjE+
KHJlbGF0aXZlKSkKICAgICAgICAgICAgICAgICByZXR1cm4gTGlua0p1bXBDb25kaXRpb25EaXJl
Y3Q7CiAKICAgICAgICAgICAgIHJldHVybiBMaW5rSnVtcENvbmRpdGlvbjsKICAgICAgICAgICAg
IH0KICAgICAgICAgY2FzZSBKdW1wQ29tcGFyZUFuZEJyYW5jaDogIHsKLSAgICAgICAgICAgIEFT
U0VSVCghKHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KGZyb20pICYgMHgzKSk7Ci0gICAgICAg
ICAgICBBU1NFUlQoIShyZWludGVycHJldF9jYXN0PGludHB0cl90Pih0bykgJiAweDMpKTsKKyAg
ICAgICAgICAgIEFTU0VSVChpczRCeXRlQWxpZ25lZChmcm9tKSk7CisgICAgICAgICAgICBBU1NF
UlQoaXM0Qnl0ZUFsaWduZWQodG8pKTsKICAgICAgICAgICAgIGludHB0cl90IHJlbGF0aXZlID0g
cmVpbnRlcnByZXRfY2FzdDxpbnRwdHJfdD4odG8pIC0gKHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRy
X3Q+KGZyb20pKTsKIAotICAgICAgICAgICAgaWYgKCgocmVsYXRpdmUgPDwgNDMpID4+IDQzKSA9
PSByZWxhdGl2ZSkKKyAgICAgICAgICAgIGlmIChpc0ludDwyMT4ocmVsYXRpdmUpKQogICAgICAg
ICAgICAgICAgIHJldHVybiBMaW5rSnVtcENvbXBhcmVBbmRCcmFuY2hEaXJlY3Q7CiAKICAgICAg
ICAgICAgIHJldHVybiBMaW5rSnVtcENvbXBhcmVBbmRCcmFuY2g7CiAgICAgICAgIH0KICAgICAg
ICAgY2FzZSBKdW1wVGVzdEJpdDogICB7Ci0gICAgICAgICAgICBBU1NFUlQoIShyZWludGVycHJl
dF9jYXN0PGludHB0cl90Pihmcm9tKSAmIDB4MykpOwotICAgICAgICAgICAgQVNTRVJUKCEocmVp
bnRlcnByZXRfY2FzdDxpbnRwdHJfdD4odG8pICYgMHgzKSk7CisgICAgICAgICAgICBBU1NFUlQo
aXM0Qnl0ZUFsaWduZWQoZnJvbSkpOworICAgICAgICAgICAgQVNTRVJUKGlzNEJ5dGVBbGlnbmVk
KHRvKSk7CiAgICAgICAgICAgICBpbnRwdHJfdCByZWxhdGl2ZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8
aW50cHRyX3Q+KHRvKSAtIChyZWludGVycHJldF9jYXN0PGludHB0cl90Pihmcm9tKSk7CiAKLSAg
ICAgICAgICAgIGlmICgoKHJlbGF0aXZlIDw8IDUwKSA+PiA1MCkgPT0gcmVsYXRpdmUpCisgICAg
ICAgICAgICBpZiAoaXNJbnQ8MTQ+KHJlbGF0aXZlKSkKICAgICAgICAgICAgICAgICByZXR1cm4g
TGlua0p1bXBUZXN0Qml0RGlyZWN0OwogCiAgICAgICAgICAgICByZXR1cm4gTGlua0p1bXBUZXN0
Qml0OwpAQCAtMzA2OCw5ICszMDc0LDkgQEAgcHJvdGVjdGVkOgogICAgICAgICBBU1NFUlQoIShy
ZWludGVycHJldF9jYXN0PGludHB0cl90Pihmcm9tKSAmIDMpKTsKICAgICAgICAgQVNTRVJUKCEo
cmVpbnRlcnByZXRfY2FzdDxpbnRwdHJfdD4odG8pICYgMykpOwogICAgICAgICBpbnRwdHJfdCBv
ZmZzZXQgPSAocmVpbnRlcnByZXRfY2FzdDxpbnRwdHJfdD4odG8pIC0gcmVpbnRlcnByZXRfY2Fz
dDxpbnRwdHJfdD4oZnJvbUluc3RydWN0aW9uKSkgPj4gMjsKLSAgICAgICAgQVNTRVJUKCgob2Zm
c2V0IDw8IDM4KSA+PiAzOCkgPT0gb2Zmc2V0KTsKKyAgICAgICAgQVNTRVJUKGlzSW50PDI2Pihv
ZmZzZXQpKTsKIAotICAgICAgICBib29sIHVzZURpcmVjdCA9ICgob2Zmc2V0IDw8IDQ1KSA+PiA0
NSkgPT0gb2Zmc2V0OyAvLyBGaXRzIGluIDE5IGJpdHMKKyAgICAgICAgYm9vbCB1c2VEaXJlY3Qg
PSBpc0ludDwxOT4ob2Zmc2V0KTsKICAgICAgICAgQVNTRVJUKCFpc0RpcmVjdCB8fCB1c2VEaXJl
Y3QpOwogCiAgICAgICAgIGlmICh1c2VEaXJlY3QgfHwgaXNEaXJlY3QpIHsKQEAgLTMwOTYsOSAr
MzEwMiw5IEBAIHByb3RlY3RlZDoKICAgICAgICAgQVNTRVJUKCEocmVpbnRlcnByZXRfY2FzdDxp
bnRwdHJfdD4oZnJvbSkgJiAzKSk7CiAgICAgICAgIEFTU0VSVCghKHJlaW50ZXJwcmV0X2Nhc3Q8
aW50cHRyX3Q+KHRvKSAmIDMpKTsKICAgICAgICAgaW50cHRyX3Qgb2Zmc2V0ID0gKHJlaW50ZXJw
cmV0X2Nhc3Q8aW50cHRyX3Q+KHRvKSAtIHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KGZyb21J
bnN0cnVjdGlvbikpID4+IDI7Ci0gICAgICAgIEFTU0VSVCgoKG9mZnNldCA8PCAzOCkgPj4gMzgp
ID09IG9mZnNldCk7CisgICAgICAgIEFTU0VSVChpc0ludDwyNj4ob2Zmc2V0KSk7CiAKLSAgICAg
ICAgYm9vbCB1c2VEaXJlY3QgPSAoKG9mZnNldCA8PCA0NSkgPj4gNDUpID09IG9mZnNldDsgLy8g
Rml0cyBpbiAxOSBiaXRzCisgICAgICAgIGJvb2wgdXNlRGlyZWN0ID0gaXNJbnQ8MTk+KG9mZnNl
dCk7CiAgICAgICAgIEFTU0VSVCghaXNEaXJlY3QgfHwgdXNlRGlyZWN0KTsKIAogICAgICAgICBp
ZiAodXNlRGlyZWN0IHx8IGlzRGlyZWN0KSB7CkBAIC0zMTI1LDkgKzMxMzEsOSBAQCBwcm90ZWN0
ZWQ6CiAgICAgICAgIEFTU0VSVCghKHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KHRvKSAmIDMp
KTsKICAgICAgICAgaW50cHRyX3Qgb2Zmc2V0ID0gKHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+
KHRvKSAtIHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KGZyb21JbnN0cnVjdGlvbikpID4+IDI7
CiAgICAgICAgIEFTU0VSVChzdGF0aWNfY2FzdDxpbnQ+KG9mZnNldCkgPT0gb2Zmc2V0KTsKLSAg
ICAgICAgQVNTRVJUKCgob2Zmc2V0IDw8IDM4KSA+PiAzOCkgPT0gb2Zmc2V0KTsKKyAgICAgICAg
QVNTRVJUKGlzSW50PDI2PihvZmZzZXQpKTsKIAotICAgICAgICBib29sIHVzZURpcmVjdCA9ICgo
b2Zmc2V0IDw8IDUwKSA+PiA1MCkgPT0gb2Zmc2V0OyAvLyBGaXRzIGluIDE0IGJpdHMKKyAgICAg
ICAgYm9vbCB1c2VEaXJlY3QgPSBpc0ludDwxND4ob2Zmc2V0KTsKICAgICAgICAgQVNTRVJUKCFp
c0RpcmVjdCB8fCB1c2VEaXJlY3QpOwogCiAgICAgICAgIGlmICh1c2VEaXJlY3QgfHwgaXNEaXJl
Y3QpIHsKQEAgLTM1MTEsNyArMzUxNyw3IEBAIHByb3RlY3RlZDoKICAgICAvLyAnVicgbWVhbnMg
dmVjdG9yCiAgICAgQUxXQVlTX0lOTElORSBzdGF0aWMgaW50IGxvYWRSZWdpc3RlckxpdGVyYWwo
TGRyTGl0ZXJhbE9wIG9wYywgYm9vbCBWLCBpbnQgaW1tMTksIEZQUmVnaXN0ZXJJRCBydCkKICAg
ICB7Ci0gICAgICAgIEFTU0VSVCgoKGltbTE5IDw8IDEzKSA+PiAxMykgPT0gaW1tMTkpOworICAg
ICAgICBBU1NFUlQoaXNJbnQ8MTk+KGltbTE5KSk7CiAgICAgICAgIHJldHVybiAoMHgxODAwMDAw
MCB8IG9wYyA8PCAzMCB8IFYgPDwgMjYgfCAoaW1tMTkgJiAweDdmZmZmKSA8PCA1IHwgcnQpOwog
ICAgIH0KIApAQCAtMzU0Miw3ICszNTQ4LDcgQEAgcHJvdGVjdGVkOgogICAgICAgICBBU1NFUlQo
ViB8fCAoc2l6ZSAhPSBNZW1QYWlyT3BfTG9hZFNpZ25lZF8zMikgfHwgKG9wYyA9PSBNZW1PcF9M
T0FEKSk7IC8vIFRoZXJlIGlzbid0IGFuIGludGVnZXIgc3RvcmUgc2lnbmVkLgogICAgICAgICB1
bnNpZ25lZCBpbW1lZFNoaWZ0QW1vdW50ID0gbWVtUGFpck9mZnNldFNoaWZ0KFYsIHNpemUpOwog
ICAgICAgICBpbnQgaW1tNyA9IGltbWVkaWF0ZSA+PiBpbW1lZFNoaWZ0QW1vdW50OwotICAgICAg
ICBBU1NFUlQoKGltbTcgPDwgaW1tZWRTaGlmdEFtb3VudCkgPT0gaW1tZWRpYXRlICYmIGlzSW50
NyhpbW03KSk7CisgICAgICAgIEFTU0VSVCgoaW1tNyA8PCBpbW1lZFNoaWZ0QW1vdW50KSA9PSBp
bW1lZGlhdGUgJiYgaXNJbnQ8Nz4oaW1tNykpOwogICAgICAgICByZXR1cm4gKDB4Mjg4MDAwMDAg
fCBzaXplIDw8IDMwIHwgViA8PCAyNiB8IG9wYyA8PCAyMiB8IChpbW03ICYgMHg3ZikgPDwgMTUg
fCBydDIgPDwgMTAgfCB4T3JTcChybikgPDwgNSB8IHJ0KTsKICAgICB9CiAKQEAgLTM1NzMsNyAr
MzU3OSw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgQVNTRVJUKFYgfHwgKHNpemUgIT0gTWVtUGFp
ck9wX0xvYWRTaWduZWRfMzIpIHx8IChvcGMgPT0gTWVtT3BfTE9BRCkpOyAvLyBUaGVyZSBpc24n
dCBhbiBpbnRlZ2VyIHN0b3JlIHNpZ25lZC4KICAgICAgICAgdW5zaWduZWQgaW1tZWRTaGlmdEFt
b3VudCA9IG1lbVBhaXJPZmZzZXRTaGlmdChWLCBzaXplKTsKICAgICAgICAgaW50IGltbTcgPSBp
bW1lZGlhdGUgPj4gaW1tZWRTaGlmdEFtb3VudDsKLSAgICAgICAgQVNTRVJUKChpbW03IDw8IGlt
bWVkU2hpZnRBbW91bnQpID09IGltbWVkaWF0ZSAmJiBpc0ludDcoaW1tNykpOworICAgICAgICBB
U1NFUlQoKGltbTcgPDwgaW1tZWRTaGlmdEFtb3VudCkgPT0gaW1tZWRpYXRlICYmIGlzSW50PDc+
KGltbTcpKTsKICAgICAgICAgcmV0dXJuICgweDI5ODAwMDAwIHwgc2l6ZSA8PCAzMCB8IFYgPDwg
MjYgfCBvcGMgPDwgMjIgfCAoaW1tNyAmIDB4N2YpIDw8IDE1IHwgcnQyIDw8IDEwIHwgeE9yU3Ao
cm4pIDw8IDUgfCBydCk7CiAgICAgfQogCkBAIC0zNTkwLDcgKzM1OTYsNyBAQCBwcm90ZWN0ZWQ6
CiAgICAgICAgIEFTU0VSVChWIHx8IChzaXplICE9IE1lbVBhaXJPcF9Mb2FkU2lnbmVkXzMyKSB8
fCAob3BjID09IE1lbU9wX0xPQUQpKTsgLy8gVGhlcmUgaXNuJ3QgYW4gaW50ZWdlciBzdG9yZSBz
aWduZWQuCiAgICAgICAgIHVuc2lnbmVkIGltbWVkU2hpZnRBbW91bnQgPSBtZW1QYWlyT2Zmc2V0
U2hpZnQoViwgc2l6ZSk7CiAgICAgICAgIGludCBpbW03ID0gaW1tZWRpYXRlID4+IGltbWVkU2hp
ZnRBbW91bnQ7Ci0gICAgICAgIEFTU0VSVCgoaW1tNyA8PCBpbW1lZFNoaWZ0QW1vdW50KSA9PSBp
bW1lZGlhdGUgJiYgaXNJbnQ3KGltbTcpKTsKKyAgICAgICAgQVNTRVJUKChpbW03IDw8IGltbWVk
U2hpZnRBbW91bnQpID09IGltbWVkaWF0ZSAmJiBpc0ludDw3PihpbW03KSk7CiAgICAgICAgIHJl
dHVybiAoMHgyOTAwMDAwMCB8IHNpemUgPDwgMzAgfCBWIDw8IDI2IHwgb3BjIDw8IDIyIHwgKGlt
bTcgJiAweDdmKSA8PCAxNSB8IHJ0MiA8PCAxMCB8IHhPclNwKHJuKSA8PCA1IHwgcnQpOwogICAg
IH0KIApAQCAtMzYwNyw3ICszNjEzLDcgQEAgcHJvdGVjdGVkOgogICAgICAgICBBU1NFUlQoViB8
fCAoc2l6ZSAhPSBNZW1QYWlyT3BfTG9hZFNpZ25lZF8zMikgfHwgKG9wYyA9PSBNZW1PcF9MT0FE
KSk7IC8vIFRoZXJlIGlzbid0IGFuIGludGVnZXIgc3RvcmUgc2lnbmVkLgogICAgICAgICB1bnNp
Z25lZCBpbW1lZFNoaWZ0QW1vdW50ID0gbWVtUGFpck9mZnNldFNoaWZ0KFYsIHNpemUpOwogICAg
ICAgICBpbnQgaW1tNyA9IGltbWVkaWF0ZSA+PiBpbW1lZFNoaWZ0QW1vdW50OwotICAgICAgICBB
U1NFUlQoKGltbTcgPDwgaW1tZWRTaGlmdEFtb3VudCkgPT0gaW1tZWRpYXRlICYmIGlzSW50Nyhp
bW03KSk7CisgICAgICAgIEFTU0VSVCgoaW1tNyA8PCBpbW1lZFNoaWZ0QW1vdW50KSA9PSBpbW1l
ZGlhdGUgJiYgaXNJbnQ8Nz4oaW1tNykpOwogICAgICAgICByZXR1cm4gKDB4MjgwMDAwMDAgfCBz
aXplIDw8IDMwIHwgViA8PCAyNiB8IG9wYyA8PCAyMiB8IChpbW03ICYgMHg3ZikgPDwgMTUgfCBy
dDIgPDwgMTAgfCB4T3JTcChybikgPDwgNSB8IHJ0KTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQ1BVLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYXNzZW1ibGVyL0NQVS5oCmluZGV4IGMxNmYwZDg1MGMzZDhiM2U2YTY5NmNjZTBhOTY4Y2Mz
MmNkMWFlNzMuLjYxNzk5M2Y0ZGRiY2ZhYjEyY2QwMmRiZWE5YjJhNjJlYjQ4MWIxN2IgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQ1BVLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9DUFUuaApAQCAtMjksNiArMjksMTQgQEAKIAogbmFt
ZXNwYWNlIEpTQyB7CiAKKyNpZiBVU0UoSlNWQUxVRTY0KQordXNpbmcgQ1BVUmVnaXN0ZXIgPSBp
bnQ2NF90OwordXNpbmcgVUNQVVJlZ2lzdGVyID0gdWludDY0X3Q7CisjZWxzZQordXNpbmcgQ1BV
UmVnaXN0ZXIgPSBpbnQzMl90OwordXNpbmcgVUNQVVJlZ2lzdGVyID0gdWludDMyX3Q7CisjZW5k
aWYKKwogY29uc3RleHByIGJvb2wgaXNBUk12N0lESVZTdXBwb3J0ZWQoKQogewogI2lmIEhBVkUo
QVJNX0lESVZfSU5TVFJVQ1RJT05TKQpAQCAtNzksNiArODcsMTYgQEAgY29uc3RleHByIGJvb2wg
aXMzMkJpdCgpCiAgICAgcmV0dXJuICFpczY0Qml0KCk7CiB9CiAKK2NvbnN0ZXhwciBib29sIGlz
QWRkcmVzczY0Qml0KCkKK3sKKyAgICByZXR1cm4gc2l6ZW9mKHZvaWQqKSA9PSA4OworfQorCitj
b25zdGV4cHIgYm9vbCBpc0FkZHJlc3MzMkJpdCgpCit7CisgICAgcmV0dXJuICFpc0FkZHJlc3M2
NEJpdCgpOworfQorCiBjb25zdGV4cHIgYm9vbCBpc01JUFMoKQogewogI2lmIENQVShNSVBTKQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxl
ci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlci5oCmlu
ZGV4IGU4OWNiMTQ1NDBiMmFkNGNlYjAyMmVjYzI1NWVmODk4ZGRlZWQ2ZjYuLmNkMWI1NDU4MzI1
MmE2ODA5ZmQ1NmZmMDlkOGFmMzU4NmNkNTk0MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyLmgKQEAgLTEyNzIsNyArMTI3Miw3IEBAIHB1
YmxpYzoKIAogICAgICAgICAvLyBGaXJzdCBvZmYgd2UnbGwgc3BlY2lhbCBjYXNlIGNvbW1vbiwg
InNhZmUiIHZhbHVlcyB0byBhdm9pZCBodXJ0aW5nCiAgICAgICAgIC8vIHBlcmZvcm1hbmNlIHRv
byBtdWNoCi0gICAgICAgIHVpbnRwdHJfdCB2YWx1ZSA9IGltbS5hc1RydXN0ZWRJbW1QdHIoKS5h
c0ludHB0cigpOworICAgICAgICB1aW50NjRfdCB2YWx1ZSA9IGltbS5hc1RydXN0ZWRJbW1QdHIo
KS5hc0ludHB0cigpOwogICAgICAgICBzd2l0Y2ggKHZhbHVlKSB7CiAgICAgICAgIGNhc2UgMHhm
ZmZmOgogICAgICAgICBjYXNlIDB4ZmZmZmZmOgpAQCAtMTI5Myw3ICsxMjkzLDcgQEAgcHVibGlj
OgogICAgICAgICBpZiAoIXNob3VsZENvbnNpZGVyQmxpbmRpbmcoKSkKICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAotICAgICAgICByZXR1cm4gc2hvdWxkQmxpbmRQb2ludGVyRm9yU3BlY2lm
aWNBcmNoKHZhbHVlKTsKKyAgICAgICAgcmV0dXJuIHNob3VsZEJsaW5kUG9pbnRlckZvclNwZWNp
ZmljQXJjaChzdGF0aWNfY2FzdDx1aW50cHRyX3Q+KHZhbHVlKSk7CiAgICAgfQogCiAgICAgdWlu
dDhfdCBnZW5lcmF0ZVJvdGF0aW9uU2VlZChzaXplX3Qgd2lkdGhJbkJpdHMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmNw
cAppbmRleCBjMmJlMDgzZGE3MjZlNTIzZTZkMjUyZmM2Y2M1NzEwNzdiNDUyYWMyLi5lNDg1M2M0
ZWZkZjZmMjUxMDVkYzdmMzdkZDY4NGRjMzI2ZGFmNThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5jcHAKQEAgLTQ4
LDcgKzQ4LDEyIEBAIHVzaW5nIG5hbWVzcGFjZSBBUk02NFJlZ2lzdGVyczsKIAogLy8gVGhlIGZv
bGxvd2luZyBhcmUgb2Zmc2V0cyBmb3IgUHJvYmU6OlN0YXRlIGZpZWxkcyBhY2Nlc3NlZAogLy8g
YnkgdGhlIGN0aU1hc21Qcm9iZVRyYW1wb2xpbmUgc3R1Yi4KKyNpZiBVU0UoQUREUkVTUzY0KQog
I2RlZmluZSBQVFJfU0laRSA4CisjZWxzZQorI2RlZmluZSBQVFJfU0laRSA0CisjZW5kaWYKKwog
I2RlZmluZSBQUk9CRV9QUk9CRV9GVU5DVElPTl9PRkZTRVQgKDAgKiBQVFJfU0laRSkKICNkZWZp
bmUgUFJPQkVfQVJHX09GRlNFVCAoMSAqIFBUUl9TSVpFKQogI2RlZmluZSBQUk9CRV9JTklUX1NU
QUNLX0ZVTkNUSU9OX09GRlNFVCAoMiAqIFBUUl9TSVpFKQpAQCAtMTMxLDggKzEzNiw4IEBAIHVz
aW5nIG5hbWVzcGFjZSBBUk02NFJlZ2lzdGVyczsKICNkZWZpbmUgUFJPQkVfQ1BVX1EzMV9PRkZT
RVQgKFBST0JFX0ZJUlNUX0ZQUkVHX09GRlNFVCArICgzMSAqIEZQUkVHX1NJWkUpKQogI2RlZmlu
ZSBQUk9CRV9TSVpFIChQUk9CRV9GSVJTVF9GUFJFR19PRkZTRVQgKyAoMzIgKiBGUFJFR19TSVpF
KSkKIAotI2RlZmluZSBTQVZFRF9QUk9CRV9SRVRVUk5fUENfT0ZGU0VUICAgICAgICAoUFJPQkVf
U0laRSArICgwICogUFRSX1NJWkUpKQotI2RlZmluZSBQUk9CRV9TSVpFX1BMVVNfRVhUUkFTICAg
ICAgICAgICAgICAoUFJPQkVfU0laRSArICgzICogUFRSX1NJWkUpKQorI2RlZmluZSBTQVZFRF9Q
Uk9CRV9SRVRVUk5fUENfT0ZGU0VUICAgICAgICAoUFJPQkVfU0laRSArICgwICogR1BSRUdfU0la
RSkpCisjZGVmaW5lIFBST0JFX1NJWkVfUExVU19FWFRSQVMgICAgICAgICAgICAgIChQUk9CRV9T
SVpFICsgKDMgKiBHUFJFR19TSVpFKSkKIAogLy8gVGhlc2UgQVNTRVJUcyByZW1pbmQgeW91IHRo
YXQgaWYgeW91IGNoYW5nZSB0aGUgbGF5b3V0IG9mIFByb2JlOjpTdGF0ZSwKIC8vIHlvdSBuZWVk
IHRvIGNoYW5nZSBjdGlNYXNtUHJvYmVUcmFtcG9saW5lIG9mZnNldHMgYWJvdmUgdG8gbWF0Y2gu
CkBAIC0yMjEsNyArMjI2LDcgQEAgc3RhdGljX2Fzc2VydChQUk9CRV9PRkZTRVRPRihjcHUuZnBy
c1tBUk02NFJlZ2lzdGVyczo6cTMxXSkgPT0gUFJPQkVfQ1BVX1EzMV9PRkYKIHN0YXRpY19hc3Nl
cnQoc2l6ZW9mKFByb2JlOjpTdGF0ZSkgPT0gUFJPQkVfU0laRSwgIlByb2JlOjpTdGF0ZSdzIHNp
emUgbWF0Y2hlcyBjdGlNYXNtUHJvYmVUcmFtcG9saW5lIik7CiAKIC8vIENvbmRpdGlvbnMgZm9y
IHVzaW5nIGxkcCBhbmQgc3RwLgotc3RhdGljX2Fzc2VydChQUk9CRV9DUFVfUENfT0ZGU0VUID09
IFBST0JFX0NQVV9TUF9PRkZTRVQgKyBQVFJfU0laRSwgIlBST0JFX0NQVV9TUF9PRkZTRVQgYW5k
IFBST0JFX0NQVV9QQ19PRkZTRVQgbXVzdCBiZSBhZGphY2VudCIpOworc3RhdGljX2Fzc2VydChQ
Uk9CRV9DUFVfUENfT0ZGU0VUID09IFBST0JFX0NQVV9TUF9PRkZTRVQgKyBHUFJFR19TSVpFLCAi
UFJPQkVfQ1BVX1NQX09GRlNFVCBhbmQgUFJPQkVfQ1BVX1BDX09GRlNFVCBtdXN0IGJlIGFkamFj
ZW50Iik7CiBzdGF0aWNfYXNzZXJ0KCEoUFJPQkVfU0laRV9QTFVTX0VYVFJBUyAmIDB4ZiksICJQ
Uk9CRV9TSVpFX1BMVVNfRVhUUkFTIHNob3VsZCBiZSAxNiBieXRlIGFsaWduZWQiKTsgLy8gdGhl
IFByb2JlOjpTdGF0ZSBjb3B5aW5nIGNvZGUgcmVsaWVzIG9uIHRoaXMuCiAKICN1bmRlZiBQUk9C
RV9PRkZTRVRPRgpAQCAtMjI5LDIxICsyMzQsMjEgQEAgc3RhdGljX2Fzc2VydCghKFBST0JFX1NJ
WkVfUExVU19FWFRSQVMgJiAweGYpLCAiUFJPQkVfU0laRV9QTFVTX0VYVFJBUyBzaG91bGQgYmUK
ICNkZWZpbmUgRlBSX09GRlNFVChmcHIpIChQUk9CRV9DUFVfIyNmcHIjI19PRkZTRVQgLSBQUk9C
RV9DUFVfUTBfT0ZGU0VUKQogCiBzdHJ1Y3QgSW5jb21pbmdQcm9iZVJlY29yZCB7Ci0gICAgdWlu
dHB0cl90IHgyNDsKLSAgICB1aW50cHRyX3QgeDI1OwotICAgIHVpbnRwdHJfdCB4MjY7Ci0gICAg
dWludHB0cl90IHgyNzsKLSAgICB1aW50cHRyX3QgeDI4OwotICAgIHVpbnRwdHJfdCB4MzA7IC8v
IGxyCisgICAgVUNQVVJlZ2lzdGVyIHgyNDsKKyAgICBVQ1BVUmVnaXN0ZXIgeDI1OworICAgIFVD
UFVSZWdpc3RlciB4MjY7CisgICAgVUNQVVJlZ2lzdGVyIHgyNzsKKyAgICBVQ1BVUmVnaXN0ZXIg
eDI4OworICAgIFVDUFVSZWdpc3RlciB4MzA7IC8vIGxyCiB9OwogCi0jZGVmaW5lIElOX1gyNF9P
RkZTRVQgKDAgKiBQVFJfU0laRSkKLSNkZWZpbmUgSU5fWDI1X09GRlNFVCAoMSAqIFBUUl9TSVpF
KQotI2RlZmluZSBJTl9YMjZfT0ZGU0VUICgyICogUFRSX1NJWkUpCi0jZGVmaW5lIElOX1gyN19P
RkZTRVQgKDMgKiBQVFJfU0laRSkKLSNkZWZpbmUgSU5fWDI4X09GRlNFVCAoNCAqIFBUUl9TSVpF
KQotI2RlZmluZSBJTl9YMzBfT0ZGU0VUICg1ICogUFRSX1NJWkUpCi0jZGVmaW5lIElOX1NJWkUg
ICAgICAgKDYgKiBQVFJfU0laRSkKKyNkZWZpbmUgSU5fWDI0X09GRlNFVCAoMCAqIEdQUkVHX1NJ
WkUpCisjZGVmaW5lIElOX1gyNV9PRkZTRVQgKDEgKiBHUFJFR19TSVpFKQorI2RlZmluZSBJTl9Y
MjZfT0ZGU0VUICgyICogR1BSRUdfU0laRSkKKyNkZWZpbmUgSU5fWDI3X09GRlNFVCAoMyAqIEdQ
UkVHX1NJWkUpCisjZGVmaW5lIElOX1gyOF9PRkZTRVQgKDQgKiBHUFJFR19TSVpFKQorI2RlZmlu
ZSBJTl9YMzBfT0ZGU0VUICg1ICogR1BSRUdfU0laRSkKKyNkZWZpbmUgSU5fU0laRSAgICAgICAo
NiAqIEdQUkVHX1NJWkUpCiAKIHN0YXRpY19hc3NlcnQoSU5fWDI0X09GRlNFVCA9PSBvZmZzZXRv
ZihJbmNvbWluZ1Byb2JlUmVjb3JkLCB4MjQpLCAiSU5fWDI0X09GRlNFVCBpcyBpbmNvcnJlY3Qi
KTsKIHN0YXRpY19hc3NlcnQoSU5fWDI1X09GRlNFVCA9PSBvZmZzZXRvZihJbmNvbWluZ1Byb2Jl
UmVjb3JkLCB4MjUpLCAiSU5fWDI1X09GRlNFVCBpcyBpbmNvcnJlY3QiKTsKQEAgLTI1NSwyMSAr
MjYwLDIxIEBAIHN0YXRpY19hc3NlcnQoSU5fU0laRSA9PSBzaXplb2YoSW5jb21pbmdQcm9iZVJl
Y29yZCksICJJTl9TSVpFIGlzIGluY29ycmVjdCIpOwogc3RhdGljX2Fzc2VydCghKHNpemVvZihJ
bmNvbWluZ1Byb2JlUmVjb3JkKSAmIDB4ZiksICJJbmNvbWluZ1Byb2JlU3RhY2sgbXVzdCBiZSAx
Ni1ieXRlIGFsaWduZWQiKTsKIAogc3RydWN0IE91dGdvaW5nUHJvYmVSZWNvcmQgewotICAgIHVp
bnRwdHJfdCBuemN2OwotICAgIHVpbnRwdHJfdCBmcHNyOwotICAgIHVpbnRwdHJfdCB4Mjc7Ci0g
ICAgdWludHB0cl90IHgyODsKLSAgICB1aW50cHRyX3QgZnA7Ci0gICAgdWludHB0cl90IGxyOwor
ICAgIFVDUFVSZWdpc3RlciBuemN2OworICAgIFVDUFVSZWdpc3RlciBmcHNyOworICAgIFVDUFVS
ZWdpc3RlciB4Mjc7CisgICAgVUNQVVJlZ2lzdGVyIHgyODsKKyAgICBVQ1BVUmVnaXN0ZXIgZnA7
CisgICAgVUNQVVJlZ2lzdGVyIGxyOwogfTsKIAotI2RlZmluZSBPVVRfTlpDVl9PRkZTRVQgKDAg
KiBQVFJfU0laRSkKLSNkZWZpbmUgT1VUX0ZQU1JfT0ZGU0VUICgxICogUFRSX1NJWkUpCi0jZGVm
aW5lIE9VVF9YMjdfT0ZGU0VUICAoMiAqIFBUUl9TSVpFKQotI2RlZmluZSBPVVRfWDI4X09GRlNF
VCAgKDMgKiBQVFJfU0laRSkKLSNkZWZpbmUgT1VUX0ZQX09GRlNFVCAgICg0ICogUFRSX1NJWkUp
Ci0jZGVmaW5lIE9VVF9MUl9PRkZTRVQgICAoNSAqIFBUUl9TSVpFKQotI2RlZmluZSBPVVRfU0la
RSAgICAgICAgKDYgKiBQVFJfU0laRSkKKyNkZWZpbmUgT1VUX05aQ1ZfT0ZGU0VUICgwICogR1BS
RUdfU0laRSkKKyNkZWZpbmUgT1VUX0ZQU1JfT0ZGU0VUICgxICogR1BSRUdfU0laRSkKKyNkZWZp
bmUgT1VUX1gyN19PRkZTRVQgICgyICogR1BSRUdfU0laRSkKKyNkZWZpbmUgT1VUX1gyOF9PRkZT
RVQgICgzICogR1BSRUdfU0laRSkKKyNkZWZpbmUgT1VUX0ZQX09GRlNFVCAgICg0ICogR1BSRUdf
U0laRSkKKyNkZWZpbmUgT1VUX0xSX09GRlNFVCAgICg1ICogR1BSRUdfU0laRSkKKyNkZWZpbmUg
T1VUX1NJWkUgICAgICAgICg2ICogR1BSRUdfU0laRSkKIAogc3RhdGljX2Fzc2VydChPVVRfTlpD
Vl9PRkZTRVQgPT0gb2Zmc2V0b2YoT3V0Z29pbmdQcm9iZVJlY29yZCwgbnpjdiksICJPVVRfTlpD
Vl9PRkZTRVQgaXMgaW5jb3JyZWN0Iik7CiBzdGF0aWNfYXNzZXJ0KE9VVF9GUFNSX09GRlNFVCA9
PSBvZmZzZXRvZihPdXRnb2luZ1Byb2JlUmVjb3JkLCBmcHNyKSwgIk9VVF9GUFNSX09GRlNFVCBp
cyBpbmNvcnJlY3QiKTsKQEAgLTI4MSwxMiArMjg2LDEyIEBAIHN0YXRpY19hc3NlcnQoT1VUX1NJ
WkUgPT0gc2l6ZW9mKE91dGdvaW5nUHJvYmVSZWNvcmQpLCAiT1VUX1NJWkUgaXMgaW5jb3JyZWN0
Iik7CiBzdGF0aWNfYXNzZXJ0KCEoc2l6ZW9mKE91dGdvaW5nUHJvYmVSZWNvcmQpICYgMHhmKSwg
Ik91dGdvaW5nUHJvYmVTdGFjayBtdXN0IGJlIDE2LWJ5dGUgYWxpZ25lZCIpOwogCiBzdHJ1Y3Qg
TFJSZXN0b3JhdGlvblJlY29yZCB7Ci0gICAgdWludHB0cl90IGxyOwotICAgIHVpbnRwdHJfdCB1
bnVzZWREdW1teVRvRW5zdXJlU2l6ZUlzMTZCeXRlQWxpZ25lZDsKKyAgICBVQ1BVUmVnaXN0ZXIg
bHI7CisgICAgVUNQVVJlZ2lzdGVyIHVudXNlZER1bW15VG9FbnN1cmVTaXplSXMxNkJ5dGVBbGln
bmVkOwogfTsKIAotI2RlZmluZSBMUl9SRVNUT1JBVElPTl9MUl9PRkZTRVQgKDAgKiBQVFJfU0la
RSkKLSNkZWZpbmUgTFJfUkVTVE9SQVRJT05fU0laRSAgICAgICgyICogUFRSX1NJWkUpCisjZGVm
aW5lIExSX1JFU1RPUkFUSU9OX0xSX09GRlNFVCAoMCAqIEdQUkVHX1NJWkUpCisjZGVmaW5lIExS
X1JFU1RPUkFUSU9OX1NJWkUgICAgICAoMiAqIEdQUkVHX1NJWkUpCiAKIHN0YXRpY19hc3NlcnQo
TFJfUkVTVE9SQVRJT05fTFJfT0ZGU0VUID09IG9mZnNldG9mKExSUmVzdG9yYXRpb25SZWNvcmQs
IGxyKSwgIkxSX1JFU1RPUkFUSU9OX0xSX09GRlNFVCBpcyBpbmNvcnJlY3QiKTsKIHN0YXRpY19h
c3NlcnQoTFJfUkVTVE9SQVRJT05fU0laRSA9PSBzaXplb2YoTFJSZXN0b3JhdGlvblJlY29yZCks
ICJMUl9SRVNUT1JBVElPTl9TSVpFIGlzIGluY29ycmVjdCIpOwpAQCAtMzQ4LDcgKzM1Myw3IEBA
IGFzbSAoCiAKICAgICAic3RyICAgICAgIHgzMCwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0Yo
U0FWRURfUFJPQkVfUkVUVVJOX1BDX09GRlNFVCkgIl0iICJcbiIgLy8gU2F2ZSBhIGR1cGxpY2F0
ZSBjb3B5IG9mIHJldHVybiBwYyAoaW4gbHIpLgogCi0gICAgImFkZCAgICAgICB4MzAsIHgzMCwg
IyIgU1RSSU5HSVpFX1ZBTFVFX09GKDIgKiBQVFJfU0laRSkgIlxuIiAvLyBUaGUgUEMgYWZ0ZXIg
dGhlIHByb2JlIGlzIGF0IDIgaW5zdHJ1Y3Rpb25zIHBhc3QgdGhlIHJldHVybiBwb2ludC4KKyAg
ICAiYWRkICAgICAgIHgzMCwgeDMwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoMiAqIEdQUkVHX1NJ
WkUpICJcbiIgLy8gVGhlIFBDIGFmdGVyIHRoZSBwcm9iZSBpcyBhdCAyIGluc3RydWN0aW9ucyBw
YXN0IHRoZSByZXR1cm4gcG9pbnQuCiAgICAgInN0ciAgICAgICB4MzAsIFtzcCwgIyIgU1RSSU5H
SVpFX1ZBTFVFX09GKFBST0JFX0NQVV9QQ19PRkZTRVQpICJdIiAiXG4iCiAKICAgICAic3RwICAg
ICAgIHgwLCB4MSwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX05aQ1ZfT0ZG
U0VUKSAiXSIgIlxuIiAvLyBTdG9yZSBuemN2IGFuZCBmcHNyIChwcmVsb2FkZWQgaW50byB4MCBh
bmQgeDEgYWJvdmUpLgpAQCAtNDcyLDcgKzQ3Nyw3IEBAIGFzbSAoCiAgICAgImxkciAgICAgICB4
MzAsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9TUF9PRkZTRVQpICJdIiAi
XG4iIC8vIHByZWxvYWQgdGhlIHRhcmdldCBzcC4KICAgICAibGRyICAgICAgIHgyNywgW3NwLCAj
IiBTVFJJTkdJWkVfVkFMVUVfT0YoU0FWRURfUFJPQkVfUkVUVVJOX1BDX09GRlNFVCkgIl0iICJc
biIKICAgICAibGRyICAgICAgIHgyOCwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVf
Q1BVX1BDX09GRlNFVCkgIl0iICJcbiIKLSAgICAiYWRkICAgICAgIHgyNywgeDI3LCAjIiBTVFJJ
TkdJWkVfVkFMVUVfT0YoMiAqIFBUUl9TSVpFKSAiXG4iCisgICAgImFkZCAgICAgICB4MjcsIHgy
NywgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKDIgKiBHUFJFR19TSVpFKSAiXG4iCiAgICAgImNtcCAg
ICAgICB4MjcsIHgyOCIgIlxuIgogICAgICJibmUgICAgICIgTE9DQUxfTEFCRUxfU1RSSU5HKGN0
aU1hc21Qcm9iZVRyYW1wb2xpbmVFbmQpICJcbiIKIApAQCAtNTAyLDExICs1MDcsMTEgQEAgYXNt
ICgKICAgICAibW92ICAgICAgIHNwLCB4MzAiICJcbiIKIAogICAgIC8vIFJlc3RvcmUgdGhlIHJl
bWFpbmluZyByZWdpc3RlcnMgYW5kIHBvcCB0aGUgT3V0Z29pbmdQcm9iZVJlY29yZC4KLSAgICAi
bGRwICAgICAgIHgyNywgeDI4LCBbc3BdLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoMiAqIFBUUl9T
SVpFKSAiXG4iCisgICAgImxkcCAgICAgICB4MjcsIHgyOCwgW3NwXSwgIyIgU1RSSU5HSVpFX1ZB
TFVFX09GKDIgKiBHUFJFR19TSVpFKSAiXG4iCiAgICAgIm1zciAgICAgICBuemN2LCB4MjciICJc
biIKICAgICAibXNyICAgICAgIGZwc3IsIHgyOCIgIlxuIgotICAgICJsZHAgICAgICAgeDI3LCB4
MjgsIFtzcF0sICMiIFNUUklOR0laRV9WQUxVRV9PRigyICogUFRSX1NJWkUpICJcbiIKLSAgICAi
bGRwICAgICAgIHgyOSwgeDMwLCBbc3BdLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoMiAqIFBUUl9T
SVpFKSAiXG4iCisgICAgImxkcCAgICAgICB4MjcsIHgyOCwgW3NwXSwgIyIgU1RSSU5HSVpFX1ZB
TFVFX09GKDIgKiBHUFJFR19TSVpFKSAiXG4iCisgICAgImxkcCAgICAgICB4MjksIHgzMCwgW3Nw
XSwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKDIgKiBHUFJFR19TSVpFKSAiXG4iCiAgICAgInJldCIg
IlxuIgogKTsKICNlbmRpZiAvLyBDT01QSUxFUihHQ0NfQ09NUEFUSUJMRSkKQEAgLTU0NCw3ICs1
NDksNyBAQCB2b2lkIE1hY3JvQXNzZW1ibGVyQVJNNjQ6OmNvbGxlY3RDUFVGZWF0dXJlcygpCiAg
ICAgICAgIC8vIGlzIHNoaXBwZWQgYW5kIGltcGxlbWVudGVkIGluIHNvbWUgQ1BVcy4gSW4gdGhh
dCBjYXNlLCBldmVuIGlmIHRoZSBDUFUgaGFzCiAgICAgICAgIC8vIHRoYXQgZmVhdHVyZSwgdGhl
IGtlcm5lbCBkb2VzIG5vdCB0ZWxsIGl0IHRvIHVzZXJzLiksIGl0IGlzIGEgc3RhYmxlIGFwcHJv
YWNoLgogICAgICAgICAvLyBodHRwczovL3d3dy5rZXJuZWwub3JnL2RvYy9Eb2N1bWVudGF0aW9u
L2FybTY0L2VsZl9od2NhcHMudHh0Ci0gICAgICAgIHVuc2lnbmVkIGxvbmcgaHdjYXBzID0gZ2V0
YXV4dmFsKEFUX0hXQ0FQKTsKKyAgICAgICAgdWludDY0X3QgaHdjYXBzID0gZ2V0YXV4dmFsKEFU
X0hXQ0FQKTsKIAogI2lmICFkZWZpbmVkKEhXQ0FQX0pTQ1ZUKQogI2RlZmluZSBIV0NBUF9KU0NW
VCAoMSA8PCAxMykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
TWFjcm9Bc3NlbWJsZXJBUk02NC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9N
YWNyb0Fzc2VtYmxlckFSTTY0LmgKaW5kZXggNzhjMzNhNjVkNzQxNGM1ZmJjNjAxMjg4NWQyMjUy
Mjk0ZjJiOTJmOC4uYjI1NjgyNTlkZGZkNWJkZDcxMjM1YzlhYmNmYzc2NDVmZmRmN2QzMCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFS
TTY0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxl
ckFSTTY0LmgKQEAgLTUzLDkgKzUzLDkgQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIHN0YXRp
YyBjb25zdCBBUk02NFJlZ2lzdGVyczo6RlBSZWdpc3RlcklEIGZwVGVtcFJlZ2lzdGVyID0gQVJN
NjRSZWdpc3RlcnM6OnEzMTsKICAgICBzdGF0aWMgY29uc3QgQXNzZW1ibGVyOjpTZXRGbGFncyBT
ID0gQXNzZW1ibGVyOjpTOwotICAgIHN0YXRpYyBjb25zdCBpbnRwdHJfdCBtYXNrSGFsZldvcmQw
ID0gMHhmZmZmbDsKLSAgICBzdGF0aWMgY29uc3QgaW50cHRyX3QgbWFza0hhbGZXb3JkMSA9IDB4
ZmZmZjAwMDBsOwotICAgIHN0YXRpYyBjb25zdCBpbnRwdHJfdCBtYXNrVXBwZXJXb3JkID0gMHhm
ZmZmZmZmZjAwMDAwMDAwbDsKKyAgICBzdGF0aWMgY29uc3QgaW50NjRfdCBtYXNrSGFsZldvcmQw
ID0gMHhmZmZmbDsKKyAgICBzdGF0aWMgY29uc3QgaW50NjRfdCBtYXNrSGFsZldvcmQxID0gMHhm
ZmZmMDAwMGw7CisgICAgc3RhdGljIGNvbnN0IGludDY0X3QgbWFza1VwcGVyV29yZCA9IDB4ZmZm
ZmZmZmYwMDAwMDAwMGw7CiAKICAgICBzdGF0aWMgY29uc3RleHByIHNpemVfdCBJTlNUUlVDVElP
Tl9TSVpFID0gNDsKIApAQCAtMzk5MiwxMSArMzk5Miw2IEBAIHByb3RlY3RlZDoKICAgICAgICAg
cmV0dXJuIG1fY2FjaGVkTWVtb3J5VGVtcFJlZ2lzdGVyOwogICAgIH0KIAotICAgIEFMV0FZU19J
TkxJTkUgYm9vbCBpc0luSW50UmFuZ2UoaW50cHRyX3QgdmFsdWUpCi0gICAgewotICAgICAgICBy
ZXR1cm4gdmFsdWUgPT0gKCh2YWx1ZSA8PCAzMikgPj4gMzIpOwotICAgIH0KLQogICAgIHRlbXBs
YXRlPHR5cGVuYW1lIEltbWVkaWF0ZVR5cGUsIHR5cGVuYW1lIHJhd1R5cGU+CiAgICAgdm9pZCBt
b3ZlSW50ZXJuYWwoSW1tZWRpYXRlVHlwZSBpbW0sIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CkBA
IC00MTMxLDcgKzQxMjYsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgICAgICBpZiAoZGVzdCA9PSBt
ZW1vcnlUZW1wUmVnaXN0ZXIpCiAgICAgICAgICAgICAgICAgY2FjaGVkTWVtb3J5VGVtcFJlZ2lz
dGVyKCkuaW52YWxpZGF0ZSgpOwogCi0gICAgICAgICAgICBpZiAoaXNJbkludFJhbmdlKGFkZHJl
c3NEZWx0YSkpIHsKKyAgICAgICAgICAgIGlmIChpc0ludDwzMj4oYWRkcmVzc0RlbHRhKSkgewog
ICAgICAgICAgICAgICAgIGlmIChBc3NlbWJsZXI6OmNhbkVuY29kZVNJbW1PZmZzZXQoYWRkcmVz
c0RlbHRhKSkgewogICAgICAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5sZHVyPGRhdGFzaXpl
PihkZXN0LCAgbWVtb3J5VGVtcFJlZ2lzdGVyLCBhZGRyZXNzRGVsdGEpOwogICAgICAgICAgICAg
ICAgICAgICByZXR1cm47CkBAIC00MTY4LDcgKzQxNjMsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAg
ICAgICBpbnRwdHJfdCBhZGRyZXNzQXNJbnQgPSByZWludGVycHJldF9jYXN0PGludHB0cl90Pihh
ZGRyZXNzKTsKICAgICAgICAgICAgIGludHB0cl90IGFkZHJlc3NEZWx0YSA9IGFkZHJlc3NBc0lu
dCAtIGN1cnJlbnRSZWdpc3RlckNvbnRlbnRzOwogCi0gICAgICAgICAgICBpZiAoaXNJbkludFJh
bmdlKGFkZHJlc3NEZWx0YSkpIHsKKyAgICAgICAgICAgIGlmIChpc0ludDwzMj4oYWRkcmVzc0Rl
bHRhKSkgewogICAgICAgICAgICAgICAgIGlmIChBc3NlbWJsZXI6OmNhbkVuY29kZVNJbW1PZmZz
ZXQoYWRkcmVzc0RlbHRhKSkgewogICAgICAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5zdHVy
PGRhdGFzaXplPihzcmMsIG1lbW9yeVRlbXBSZWdpc3RlciwgYWRkcmVzc0RlbHRhKTsKICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9QcmludGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL1By
aW50ZXIuaAppbmRleCA2NDFkZWFlNWFjM2I2NDUyMGMyNDM4NjgyZGIwM2YyZWVhZTgwNTA2Li42
ZDQ2Y2Q5ZTlmMjQwZTQyMDhlODlhNDZjZGUwYWJjMjViMWYyOTk1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL1ByaW50ZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYXNzZW1ibGVyL1ByaW50ZXIuaApAQCAtNzksOSArNzksOSBAQCB1bmlvbiBEYXRh
IHsKICAgICB1aW50cHRyX3QgdmFsdWU7CiAgICAgY29uc3Qgdm9pZCogcG9pbnRlcjsKICNpZiBV
U0UoSlNWQUxVRTY0KQotICAgIHVpbnRwdHJfdCBidWZmZXJbNF07CisgICAgVUNQVVJlZ2lzdGVy
IGJ1ZmZlcls0XTsKICNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCi0gICAgdWludHB0cl90IGJ1ZmZl
cls2XTsKKyAgICBVQ1BVUmVnaXN0ZXIgYnVmZmVyWzZdOwogI2VuZGlmCiB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL1Byb2JlQ29udGV4dC5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9Qcm9iZUNvbnRleHQuaAppbmRleCA5MzJlYWUy
NjJkNjgwYjNhNTk0ODliNjE5NzgzNzM4OTRmZDZhYzFhLi40ZWU2ZWVhOGU3M2I5MTJiYWU2YWRl
MDBjOWJiOGIzZDgyYTgxMjBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL1Byb2JlQ29udGV4dC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvUHJvYmVDb250ZXh0LmgKQEAgLTQxLDggKzQxLDggQEAgc3RydWN0IENQVVN0YXRlIHsKICAg
ICBzdGF0aWMgaW5saW5lIGNvbnN0IGNoYXIqIGdwck5hbWUoUmVnaXN0ZXJJRCBpZCkgeyByZXR1
cm4gTWFjcm9Bc3NlbWJsZXI6Omdwck5hbWUoaWQpOyB9CiAgICAgc3RhdGljIGlubGluZSBjb25z
dCBjaGFyKiBzcHJOYW1lKFNQUmVnaXN0ZXJJRCBpZCkgeyByZXR1cm4gTWFjcm9Bc3NlbWJsZXI6
OnNwck5hbWUoaWQpOyB9CiAgICAgc3RhdGljIGlubGluZSBjb25zdCBjaGFyKiBmcHJOYW1lKEZQ
UmVnaXN0ZXJJRCBpZCkgeyByZXR1cm4gTWFjcm9Bc3NlbWJsZXI6OmZwck5hbWUoaWQpOyB9Ci0g
ICAgaW5saW5lIHVpbnRwdHJfdCYgZ3ByKFJlZ2lzdGVySUQpOwotICAgIGlubGluZSB1aW50cHRy
X3QmIHNwcihTUFJlZ2lzdGVySUQpOworICAgIGlubGluZSBVQ1BVUmVnaXN0ZXImIGdwcihSZWdp
c3RlcklEKTsKKyAgICBpbmxpbmUgVUNQVVJlZ2lzdGVyJiBzcHIoU1BSZWdpc3RlcklEKTsKICAg
ICBpbmxpbmUgZG91YmxlJiBmcHIoRlBSZWdpc3RlcklEKTsKIAogICAgIHRlbXBsYXRlPHR5cGVu
YW1lIFQ+IFQgZ3ByKFJlZ2lzdGVySUQpIGNvbnN0OwpAQCAtNTYsMTggKzU2LDE4IEBAIHN0cnVj
dCBDUFVTdGF0ZSB7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gVCBmcCgpIGNvbnN0OwogICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFQ+IFQgc3AoKSBjb25zdDsKIAotICAgIHVpbnRwdHJfdCBncHJz
W01hY3JvQXNzZW1ibGVyOjpudW1iZXJPZlJlZ2lzdGVycygpXTsKLSAgICB1aW50cHRyX3Qgc3By
c1tNYWNyb0Fzc2VtYmxlcjo6bnVtYmVyT2ZTUFJlZ2lzdGVycygpXTsKKyAgICBVQ1BVUmVnaXN0
ZXIgZ3Byc1tNYWNyb0Fzc2VtYmxlcjo6bnVtYmVyT2ZSZWdpc3RlcnMoKV07CisgICAgVUNQVVJl
Z2lzdGVyIHNwcnNbTWFjcm9Bc3NlbWJsZXI6Om51bWJlck9mU1BSZWdpc3RlcnMoKV07CiAgICAg
ZG91YmxlIGZwcnNbTWFjcm9Bc3NlbWJsZXI6Om51bWJlck9mRlBSZWdpc3RlcnMoKV07CiB9Owog
Ci1pbmxpbmUgdWludHB0cl90JiBDUFVTdGF0ZTo6Z3ByKFJlZ2lzdGVySUQgaWQpCitpbmxpbmUg
VUNQVVJlZ2lzdGVyJiBDUFVTdGF0ZTo6Z3ByKFJlZ2lzdGVySUQgaWQpCiB7CiAgICAgQVNTRVJU
KGlkID49IE1hY3JvQXNzZW1ibGVyOjpmaXJzdFJlZ2lzdGVyKCkgJiYgaWQgPD0gTWFjcm9Bc3Nl
bWJsZXI6Omxhc3RSZWdpc3RlcigpKTsKICAgICByZXR1cm4gZ3Byc1tpZF07CiB9CiAKLWlubGlu
ZSB1aW50cHRyX3QmIENQVVN0YXRlOjpzcHIoU1BSZWdpc3RlcklEIGlkKQoraW5saW5lIFVDUFVS
ZWdpc3RlciYgQ1BVU3RhdGU6OnNwcihTUFJlZ2lzdGVySUQgaWQpCiB7CiAgICAgQVNTRVJUKGlk
ID49IE1hY3JvQXNzZW1ibGVyOjpmaXJzdFNQUmVnaXN0ZXIoKSAmJiBpZCA8PSBNYWNyb0Fzc2Vt
Ymxlcjo6bGFzdFNQUmVnaXN0ZXIoKSk7CiAgICAgcmV0dXJuIHNwcnNbaWRdOwpAQCAtMTk4LDgg
KzE5OCw4IEBAIHB1YmxpYzoKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogICAgIFQgYXJnKCkg
eyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxUPihtX3N0YXRlLT5hcmcpOyB9CiAKLSAgICB1aW50
cHRyX3QmIGdwcihSZWdpc3RlcklEIGlkKSB7IHJldHVybiBjcHUuZ3ByKGlkKTsgfQotICAgIHVp
bnRwdHJfdCYgc3ByKFNQUmVnaXN0ZXJJRCBpZCkgeyByZXR1cm4gY3B1LnNwcihpZCk7IH0KKyAg
ICBVQ1BVUmVnaXN0ZXImIGdwcihSZWdpc3RlcklEIGlkKSB7IHJldHVybiBjcHUuZ3ByKGlkKTsg
fQorICAgIFVDUFVSZWdpc3RlciYgc3ByKFNQUmVnaXN0ZXJJRCBpZCkgeyByZXR1cm4gY3B1LnNw
cihpZCk7IH0KICAgICBkb3VibGUmIGZwcihGUFJlZ2lzdGVySUQgaWQpIHsgcmV0dXJuIGNwdS5m
cHIoaWQpOyB9CiAgICAgY29uc3QgY2hhciogZ3ByTmFtZShSZWdpc3RlcklEIGlkKSB7IHJldHVy
biBjcHUuZ3ByTmFtZShpZCk7IH0KICAgICBjb25zdCBjaGFyKiBzcHJOYW1lKFNQUmVnaXN0ZXJJ
RCBpZCkgeyByZXR1cm4gY3B1LnNwck5hbWUoaWQpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNDb25zdFB0clZhbHVlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNDb25zdFB0clZhbHVlLmgKaW5kZXggNzhiY2JhMzliZGZmMTY0NzM1NDg4MzI5ZmFkZjY0
N2U3ODkyYzM2OC4uNGRjMGQ3MTMxMTE0NTQ1MWQ5MTM5NDE2Y2M2MmM3YjE2Mzk4NDlkZiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29uc3RQdHJWYWx1ZS5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbnN0UHRyVmFsdWUuaApAQCAtMzYsNyArMzYs
NyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKIC8vIHBsYXRmb3JtLWFnbm9zdGlj
IGNvZGUuIE5vdGUgdGhhdCBhIENvbnN0UHRyVmFsdWUgd2lsbCBiZWhhdmUgbGlrZSBlaXRoZXIg
YSBDb25zdDMyVmFsdWUgb3IKIC8vIENvbnN0NjRWYWx1ZSBkZXBlbmRpbmcgb24gcGxhdGZvcm0u
CiAKLSNpZiBVU0UoSlNWQUxVRTY0KQorI2lmIFVTRShBRERSRVNTNjQpCiB0eXBlZGVmIENvbnN0
NjRWYWx1ZSBDb25zdFB0clZhbHVlQmFzZTsKICNlbHNlCiB0eXBlZGVmIENvbnN0MzJWYWx1ZSBD
b25zdFB0clZhbHVlQmFzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M1N0YWNrbWFwU3BlY2lhbC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTdGFja21h
cFNwZWNpYWwuY3BwCmluZGV4IDYyMGQ2ZjgzYzNiYTgyNDUyZTMwMzMyN2RmMzQ5ZTExY2YyMzQ0
YWYuLmNmZDFhMWU0MmQ0ZGQ0YTZhZjQ5ZTM5MzE2ODYwNjg2YjcxMmUyYmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N0YWNrbWFwU3BlY2lhbC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU3RhY2ttYXBTcGVjaWFsLmNwcApAQCAtMjYzLDcgKzI2
Myw3IEBAIGJvb2wgU3RhY2ttYXBTcGVjaWFsOjppc0FyZ1ZhbGlkRm9yUmVwKEFpcjo6Q29kZSYg
Y29kZSwgY29uc3QgQWlyOjpBcmcmIGFyZywgY29uCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICAgICAgaWYgKChhcmcuaXNBZGRyKCkgfHwgYXJnLmlzRXh0ZW5kZWRPZmZzZXRBZGRyKCkp
ICYmIGNvZGUuZnJhbWVTaXplKCkpIHsKICAgICAgICAgICAgIGlmIChhcmcuYmFzZSgpID09IFRt
cChHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlcikKLSAgICAgICAgICAgICAgICAmJiBhcmcub2Zm
c2V0KCkgPT0gcmVwLm9mZnNldEZyb21TUCgpIC0gY29kZS5mcmFtZVNpemUoKSkKKyAgICAgICAg
ICAgICAgICAmJiBhcmcub2Zmc2V0KCkgPT0gc3RhdGljX2Nhc3Q8aW50NjRfdD4ocmVwLm9mZnNl
dEZyb21TUCgpKSAtIGNvZGUuZnJhbWVTaXplKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgICAgICAgICBpZiAoYXJnLmJhc2UoKSA9PSBUbXAoTWFjcm9Bc3NlbWJsZXI6OnN0
YWNrUG9pbnRlclJlZ2lzdGVyKQogICAgICAgICAgICAgICAgICYmIGFyZy5vZmZzZXQoKSA9PSBy
ZXAub2Zmc2V0RnJvbVNQKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
YWlyL0FpckFyZy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuaAppbmRl
eCBjZDIxNjJkZGZiOWFmOWUxZGI1ZTA4ZTBiNzRlMGU5MGM0YTYzMmE3Li45NjQ1NDhiZWRlZDU0
NzRlMDUyMDY3ZWYxMzUwZjk4YzU0YTI1YjcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvYWlyL0FpckFyZy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIv
QWlyQXJnLmgKQEAgLTk3Myw3ICs5NzMsNyBAQCBwdWJsaWM6CiAgICAgU3RhY2tTbG90KiBzdGFj
a1Nsb3QoKSBjb25zdAogICAgIHsKICAgICAgICAgQVNTRVJUKGtpbmQoKSA9PSBTdGFjayk7Ci0g
ICAgICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8U3RhY2tTbG90Kj4obV9vZmZzZXQpOworICAgICAg
ICByZXR1cm4gYml0d2lzZV9jYXN0PFN0YWNrU2xvdCo+KHN0YXRpY19jYXN0PHVpbnRwdHJfdD4o
bV9vZmZzZXQpKTsKICAgICB9CiAKICAgICBBaXI6OlRtcCBpbmRleCgpIGNvbnN0CkBAIC05OTYs
NyArOTk2LDcgQEAgcHVibGljOgogICAgIEFpcjo6U3BlY2lhbCogc3BlY2lhbCgpIGNvbnN0CiAg
ICAgewogICAgICAgICBBU1NFUlQoa2luZCgpID09IFNwZWNpYWwpOwotICAgICAgICByZXR1cm4g
Yml0d2lzZV9jYXN0PEFpcjo6U3BlY2lhbCo+KG1fb2Zmc2V0KTsKKyAgICAgICAgcmV0dXJuIGJp
dHdpc2VfY2FzdDxBaXI6OlNwZWNpYWwqPihzdGF0aWNfY2FzdDx1aW50cHRyX3Q+KG1fb2Zmc2V0
KSk7CiAgICAgfQogCiAgICAgV2lkdGggd2lkdGgoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL2Fpci90ZXN0YWlyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9haXIvdGVzdGFpci5jcHAKaW5kZXggMDhiNjM5MzAxOGViMWZiODc5OTQwOTU0OWIwZjgx
ZWUwYmVmYjA3MC4uOTEyMTk0ZjA4OTA3MDE3ZjYyMjE5YjE1NjMwMDNhNGUyMTNmMWIwNiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci90ZXN0YWlyLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL3Rlc3RhaXIuY3BwCkBAIC0xMzgsOSArMTM4LDEw
IEBAIHZvaWQgbG9hZENvbnN0YW50SW1wbChCYXNpY0Jsb2NrKiBibG9jaywgVCB2YWx1ZSwgQjM6
OkFpcjo6T3Bjb2RlIG1vdmUsIFRtcCB0bXAsCiAgICAgYmxvY2stPmFwcGVuZChtb3ZlLCBudWxs
cHRyLCBBcmc6OmFkZHIoc2NyYXRjaCksIHRtcCk7CiB9CiAKLXZvaWQgbG9hZENvbnN0YW50KEJh
c2ljQmxvY2sqIGJsb2NrLCBpbnRwdHJfdCB2YWx1ZSwgVG1wIHRtcCkKK3RlbXBsYXRlPHR5cGVu
YW1lIFQ+Cit2b2lkIGxvYWRDb25zdGFudChCYXNpY0Jsb2NrKiBibG9jaywgVCB2YWx1ZSwgVG1w
IHRtcCkKIHsKLSAgICBsb2FkQ29uc3RhbnRJbXBsPGludHB0cl90PihibG9jaywgdmFsdWUsIE1v
dmUsIHRtcCwgdG1wKTsKKyAgICBsb2FkQ29uc3RhbnRJbXBsKGJsb2NrLCB2YWx1ZSwgTW92ZSwg
dG1wLCB0bXApOwogfQogCiB2b2lkIGxvYWREb3VibGVDb25zdGFudChCYXNpY0Jsb2NrKiBibG9j
aywgZG91YmxlIHZhbHVlLCBUbXAgdG1wLCBUbXAgc2NyYXRjaCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L3Rlc3RiMy5jcHAKaW5kZXggNTIzZjEwZWYwODFkMGFmYjUxYzQxMjkzYjFkMWJiNTUzMWQ3OWM3
Ni4uYjMzODk3OWJhNTEyYWUyZGRhYjYwOTY3OWEwODQyYWNmZjY0MmMwNSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL3Rlc3RiMy5jcHAKQEAgLTU0NzMsMTAgKzU0NzMsMTEgQEAgdm9pZCB0ZXN0U3Rv
cmVDb25zdGFudFB0cihpbnRwdHJfdCB2YWx1ZSkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBC
YXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIGludHB0cl90IHNsb3Q7Ci0g
ICAgaWYgKGlzNjRCaXQoKSkKLSAgICAgICAgc2xvdCA9IChzdGF0aWNfY2FzdDxpbnRwdHJfdD4o
MHhiYWFkYmVlZikgPDwgMzIpICsgc3RhdGljX2Nhc3Q8aW50cHRyX3Q+KDB4YmFhZGJlZWYpOwot
ICAgIGVsc2UKLSAgICAgICAgc2xvdCA9IDB4YmFhZGJlZWY7CisjaWYgQ1BVKEFERFJFU1M2NCkK
KyAgICBzbG90ID0gKHN0YXRpY19jYXN0PGludHB0cl90PigweGJhYWRiZWVmKSA8PCAzMikgKyBz
dGF0aWNfY2FzdDxpbnRwdHJfdD4oMHhiYWFkYmVlZik7CisjZWxzZQorICAgIHNsb3QgPSAweGJh
YWRiZWVmOworI2VuZGlmCiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAgICAg
ICAgcHJvYywgU3RvcmUsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3RQ
dHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIHZhbHVlKSwKQEAgLTEzMTk0LDkgKzEzMTk1LDkgQEAg
dm9pZCB0ZXN0SW50ZXJwcmV0ZXIoKQogICAgIAogICAgIGF1dG8gaW50ZXJwcmV0ZXIgPSBjb21w
aWxlUHJvYyhwcm9jKTsKICAgICAKLSAgICBWZWN0b3I8aW50cHRyX3Q+IGRhdGE7Ci0gICAgVmVj
dG9yPGludHB0cl90PiBjb2RlOwotICAgIFZlY3RvcjxpbnRwdHJfdD4gc3RyZWFtOworICAgIFZl
Y3Rvcjx1aW50cHRyX3Q+IGRhdGE7CisgICAgVmVjdG9yPHVpbnRwdHJfdD4gY29kZTsKKyAgICBW
ZWN0b3I8dWludHB0cl90PiBzdHJlYW07CiAgICAgCiAgICAgZGF0YS5hcHBlbmQoMSk7CiAgICAg
ZGF0YS5hcHBlbmQoMCk7CkBAIC0xNDQ5Nyw3ICsxNDQ5OCw3IEBAIHZvaWQgdGVzdEFkZFNobDMy
KCkKICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJl
c3VsdCk7CiAgICAgCiAgICAgYXV0byBjb2RlID0gY29tcGlsZVByb2MocHJvYyk7Ci0gICAgQ0hF
Q0tfRVEoaW52b2tlPGludHB0cl90PigqY29kZSwgMSwgMiksIDEgKyAoc3RhdGljX2Nhc3Q8aW50
cHRyX3Q+KDIpIDw8IHN0YXRpY19jYXN0PGludHB0cl90PigzMikpKTsKKyAgICBDSEVDS19FUShp
bnZva2U8aW50NjRfdD4oKmNvZGUsIDEsIDIpLCAxICsgKHN0YXRpY19jYXN0PGludDY0X3Q+KDIp
IDw8IHN0YXRpY19jYXN0PGludDY0X3Q+KDMyKSkpOwogfQogCiB2b2lkIHRlc3RBZGRTaGw2NCgp
CkBAIC0xNDYwNyw2ICsxNDYwOCw3IEBAIHZvaWQgdGVzdExvYWRCYXNlSW5kZXhTaGlmdDIoKQog
CiB2b2lkIHRlc3RMb2FkQmFzZUluZGV4U2hpZnQzMigpCiB7CisjaWYgQ1BVKEFERFJFU1M2NCkK
ICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9j
aygpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCkBAIC0xNDYyNSw2ICsxNDYyNyw3IEBA
IHZvaWQgdGVzdExvYWRCYXNlSW5kZXhTaGlmdDMyKCkKICAgICBjaGFyKiBwdHIgPSBiaXR3aXNl
X2Nhc3Q8Y2hhcio+KCZ2YWx1ZSk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IDEwOyAr
K2kpCiAgICAgICAgIENIRUNLX0VRKGludm9rZTxpbnQzMl90PigqY29kZSwgcHRyIC0gKHN0YXRp
Y19jYXN0PGludHB0cl90PigxKSA8PCBzdGF0aWNfY2FzdDxpbnRwdHJfdD4oMzIpKSAqIGksIGkp
LCAxMjM0MTIzNCk7CisjZW5kaWYKIH0KIAogdm9pZCB0ZXN0T3B0aW1pemVNYXRlcmlhbGl6YXRp
b24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2JpbmRpbmdzL1NjcmlwdEZ1
bmN0aW9uQ2FsbC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYmluZGluZ3MvU2NyaXB0RnVu
Y3Rpb25DYWxsLmNwcAppbmRleCA0NGJmZjU0ZmJkZGM0NmMxOTM4NWIwYzQ0MzIyYjViZmVhZTRk
NTY4Li45OWU1ZjVjY2U1ODE1OWJiNjczNjExNWE5ZDY2NTgyOTcxYjQxNTI1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYmluZGluZ3MvU2NyaXB0RnVuY3Rpb25DYWxsLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYmluZGluZ3MvU2NyaXB0RnVuY3Rpb25DYWxsLmNw
cApAQCAtNzUsNyArNzUsNyBAQCB2b2lkIFNjcmlwdENhbGxBcmd1bWVudEhhbmRsZXI6OmFwcGVu
ZEFyZ3VtZW50KHVuc2lnbmVkIGludCBhcmd1bWVudCkKICAgICBtX2FyZ3VtZW50cy5hcHBlbmQo
anNOdW1iZXIoYXJndW1lbnQpKTsKIH0KIAotdm9pZCBTY3JpcHRDYWxsQXJndW1lbnRIYW5kbGVy
OjphcHBlbmRBcmd1bWVudCh1bnNpZ25lZCBsb25nIGFyZ3VtZW50KQordm9pZCBTY3JpcHRDYWxs
QXJndW1lbnRIYW5kbGVyOjphcHBlbmRBcmd1bWVudCh1aW50NjRfdCBhcmd1bWVudCkKIHsKICAg
ICBKU0xvY2tIb2xkZXIgbG9jayhtX2V4ZWMpOwogICAgIG1fYXJndW1lbnRzLmFwcGVuZChqc051
bWJlcihhcmd1bWVudCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2JpbmRp
bmdzL1NjcmlwdEZ1bmN0aW9uQ2FsbC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2JpbmRpbmdz
L1NjcmlwdEZ1bmN0aW9uQ2FsbC5oCmluZGV4IDY5Nzg0MTRlNGVlZmE0MTMyMzRiOTY0NTA3OTE2
MGVhMGJkYWFlMmYuLjFhN2E1Mzc2YjU3NGE1MTFiODM3MzY4ZDdkMmNjNWVjODdiYjFhOGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iaW5kaW5ncy9TY3JpcHRGdW5jdGlvbkNh
bGwuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYmluZGluZ3MvU2NyaXB0RnVuY3Rpb25D
YWxsLmgKQEAgLTUxLDcgKzUxLDcgQEAgcHVibGljOgogICAgIHZvaWQgYXBwZW5kQXJndW1lbnQo
bG9uZyk7CiAgICAgdm9pZCBhcHBlbmRBcmd1bWVudChsb25nIGxvbmcpOwogICAgIHZvaWQgYXBw
ZW5kQXJndW1lbnQodW5zaWduZWQgaW50KTsKLSAgICB2b2lkIGFwcGVuZEFyZ3VtZW50KHVuc2ln
bmVkIGxvbmcpOworICAgIHZvaWQgYXBwZW5kQXJndW1lbnQodWludDY0X3QpOwogICAgIHZvaWQg
YXBwZW5kQXJndW1lbnQoaW50KTsKICAgICB2b2lkIGFwcGVuZEFyZ3VtZW50KGJvb2wpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXQuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0LmNwcAppbmRleCAzODgzYmM3ZjdlNzYx
ODk3ZTljNWJiMjk5ZGYzN2ZiOTk0MmY3OGM1Li5kZWQ3YjQxODgxZDhiZTU4NDI1Yjk2M2UwZDNj
MjViNWI5ODVkZGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09T
UkV4aXQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdC5jcHAK
QEAgLTg2LDcgKzg2LDcgQEAgc3RhdGljIHZvaWQgcmVzdG9yZUNhbGxlZVNhdmVzRm9yKENvbnRl
eHQmIGNvbnRleHQsIENvZGVCbG9jayogY29kZUJsb2NrKQogICAgIFJlZ2lzdGVyU2V0IGRvbnRS
ZXN0b3JlUmVnaXN0ZXJzID0gUmVnaXN0ZXJTZXQoUmVnaXN0ZXJTZXQ6OnN0YWNrUmVnaXN0ZXJz
KCksIFJlZ2lzdGVyU2V0OjphbGxGUFJzKCkpOwogICAgIHVuc2lnbmVkIHJlZ2lzdGVyQ291bnQg
PSBjYWxsZWVTYXZlcy0+c2l6ZSgpOwogCi0gICAgdWludHB0cl90KiBwaHlzaWNhbFN0YWNrRnJh
bWUgPSBjb250ZXh0LmZwPHVpbnRwdHJfdCo+KCk7CisgICAgVUNQVVJlZ2lzdGVyKiBwaHlzaWNh
bFN0YWNrRnJhbWUgPSBjb250ZXh0LmZwPFVDUFVSZWdpc3Rlcio+KCk7CiAgICAgZm9yICh1bnNp
Z25lZCBpID0gMDsgaSA8IHJlZ2lzdGVyQ291bnQ7IGkrKykgewogICAgICAgICBSZWdpc3RlckF0
T2Zmc2V0IGVudHJ5ID0gY2FsbGVlU2F2ZXMtPmF0KGkpOwogICAgICAgICBpZiAoZG9udFJlc3Rv
cmVSZWdpc3RlcnMuZ2V0KGVudHJ5LnJlZygpKSkKQEAgLTk0LDggKzk0LDggQEAgc3RhdGljIHZv
aWQgcmVzdG9yZUNhbGxlZVNhdmVzRm9yKENvbnRleHQmIGNvbnRleHQsIENvZGVCbG9jayogY29k
ZUJsb2NrKQogICAgICAgICAvLyBUaGUgY2FsbGVlIHNhdmVkIHZhbHVlcyBjb21lIGZyb20gdGhl
IG9yaWdpbmFsIHN0YWNrLCBub3QgdGhlIHJlY292ZXJlZCBzdGFjay4KICAgICAgICAgLy8gSGVu
Y2UsIHdlIHJlYWQgdGhlIHZhbHVlcyBkaXJlY3RseSBmcm9tIHRoZSBwaHlzaWNhbCBzdGFjayBt
ZW1vcnkgaW5zdGVhZCBvZgogICAgICAgICAvLyBnb2luZyB0aHJvdWdoIGNvbnRleHQuc3RhY2so
KS4KLSAgICAgICAgQVNTRVJUKCEoZW50cnkub2Zmc2V0KCkgJSBzaXplb2YodWludHB0cl90KSkp
OwotICAgICAgICBjb250ZXh0LmdwcihlbnRyeS5yZWcoKS5ncHIoKSkgPSBwaHlzaWNhbFN0YWNr
RnJhbWVbZW50cnkub2Zmc2V0KCkgLyBzaXplb2YodWludHB0cl90KV07CisgICAgICAgIEFTU0VS
VCghKGVudHJ5Lm9mZnNldCgpICUgc2l6ZW9mKFVDUFVSZWdpc3RlcikpKTsKKyAgICAgICAgY29u
dGV4dC5ncHIoZW50cnkucmVnKCkuZ3ByKCkpID0gcGh5c2ljYWxTdGFja0ZyYW1lW2VudHJ5Lm9m
ZnNldCgpIC8gc2l6ZW9mKFVDUFVSZWdpc3RlcildOwogICAgIH0KIH0KIApAQCAtMTEzLDcgKzEx
Myw3IEBAIHN0YXRpYyB2b2lkIHNhdmVDYWxsZWVTYXZlc0ZvcihDb250ZXh0JiBjb250ZXh0LCBD
b2RlQmxvY2sqIGNvZGVCbG9jaykKICAgICAgICAgUmVnaXN0ZXJBdE9mZnNldCBlbnRyeSA9IGNh
bGxlZVNhdmVzLT5hdChpKTsKICAgICAgICAgaWYgKGRvbnRTYXZlUmVnaXN0ZXJzLmdldChlbnRy
eS5yZWcoKSkpCiAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgc3RhY2suc2V0KGNvbnRl
eHQuZnAoKSwgZW50cnkub2Zmc2V0KCksIGNvbnRleHQuZ3ByPHVpbnRwdHJfdD4oZW50cnkucmVn
KCkuZ3ByKCkpKTsKKyAgICAgICAgc3RhY2suc2V0KGNvbnRleHQuZnAoKSwgZW50cnkub2Zmc2V0
KCksIGNvbnRleHQuZ3ByPFVDUFVSZWdpc3Rlcj4oZW50cnkucmVnKCkuZ3ByKCkpKTsKICAgICB9
CiB9CiAKQEAgLTEyNywxNCArMTI3LDE0IEBAIHN0YXRpYyB2b2lkIHJlc3RvcmVDYWxsZWVTYXZl
c0Zyb21WTUVudHJ5RnJhbWVDYWxsZWVTYXZlc0J1ZmZlcihDb250ZXh0JiBjb250ZXh0CiAgICAg
dW5zaWduZWQgcmVnaXN0ZXJDb3VudCA9IGFsbENhbGxlZVNhdmVzLT5zaXplKCk7CiAKICAgICBW
TUVudHJ5UmVjb3JkKiBlbnRyeVJlY29yZCA9IHZtRW50cnlSZWNvcmQodm0udG9wRW50cnlGcmFt
ZSk7Ci0gICAgdWludHB0cl90KiBjYWxsZWVTYXZlQnVmZmVyID0gcmVpbnRlcnByZXRfY2FzdDx1
aW50cHRyX3QqPihlbnRyeVJlY29yZC0+Y2FsbGVlU2F2ZVJlZ2lzdGVyc0J1ZmZlcik7CisgICAg
VUNQVVJlZ2lzdGVyKiBjYWxsZWVTYXZlQnVmZmVyID0gcmVpbnRlcnByZXRfY2FzdDxVQ1BVUmVn
aXN0ZXIqPihlbnRyeVJlY29yZC0+Y2FsbGVlU2F2ZVJlZ2lzdGVyc0J1ZmZlcik7CiAKICAgICAv
LyBSZXN0b3JlIGFsbCBjYWxsZWUgc2F2ZXMuCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IHJlZ2lzdGVyQ291bnQ7IGkrKykgewogICAgICAgICBSZWdpc3RlckF0T2Zmc2V0IGVudHJ5ID0g
YWxsQ2FsbGVlU2F2ZXMtPmF0KGkpOwogICAgICAgICBpZiAoZG9udFJlc3RvcmVSZWdpc3RlcnMu
Z2V0KGVudHJ5LnJlZygpKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBzaXplX3Qg
dWludHB0ck9mZnNldCA9IGVudHJ5Lm9mZnNldCgpIC8gc2l6ZW9mKHVpbnRwdHJfdCk7CisgICAg
ICAgIHNpemVfdCB1aW50cHRyT2Zmc2V0ID0gZW50cnkub2Zmc2V0KCkgLyBzaXplb2YoVUNQVVJl
Z2lzdGVyKTsKICAgICAgICAgaWYgKGVudHJ5LnJlZygpLmlzR1BSKCkpCiAgICAgICAgICAgICBj
b250ZXh0LmdwcihlbnRyeS5yZWcoKS5ncHIoKSkgPSBjYWxsZWVTYXZlQnVmZmVyW3VpbnRwdHJP
ZmZzZXRdOwogICAgICAgICBlbHNlCkBAIC0xNjAsOSArMTYwLDkgQEAgc3RhdGljIHZvaWQgY29w
eUNhbGxlZVNhdmVzVG9WTUVudHJ5RnJhbWVDYWxsZWVTYXZlc0J1ZmZlcihDb250ZXh0JiBjb250
ZXh0KQogICAgICAgICBpZiAoZG9udENvcHlSZWdpc3RlcnMuZ2V0KGVudHJ5LnJlZygpKSkKICAg
ICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBpZiAoZW50cnkucmVnKCkuaXNHUFIoKSkKLSAg
ICAgICAgICAgIHN0YWNrLnNldChjYWxsZWVTYXZlQnVmZmVyLCBlbnRyeS5vZmZzZXQoKSwgY29u
dGV4dC5ncHI8dWludHB0cl90PihlbnRyeS5yZWcoKS5ncHIoKSkpOworICAgICAgICAgICAgc3Rh
Y2suc2V0KGNhbGxlZVNhdmVCdWZmZXIsIGVudHJ5Lm9mZnNldCgpLCBjb250ZXh0LmdwcjxVQ1BV
UmVnaXN0ZXI+KGVudHJ5LnJlZygpLmdwcigpKSk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAg
IHN0YWNrLnNldChjYWxsZWVTYXZlQnVmZmVyLCBlbnRyeS5vZmZzZXQoKSwgY29udGV4dC5mcHI8
dWludHB0cl90PihlbnRyeS5yZWcoKS5mcHIoKSkpOworICAgICAgICAgICAgc3RhY2suc2V0KGNh
bGxlZVNhdmVCdWZmZXIsIGVudHJ5Lm9mZnNldCgpLCBjb250ZXh0LmZwcjxVQ1BVUmVnaXN0ZXI+
KGVudHJ5LnJlZygpLmZwcigpKSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlckNvbW1vbi5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlckNvbW1vbi5jcHAKaW5kZXggNzZjYTNi
ODE5ODU1NWY2OTIzOWZjY2I0ZGU2OGNjYmNkNTU4M2UyOC4uMTExZWJkMzJiMDdiYzk4YzYwMTU0
OGFmYTlmYjI3N2QzZmFjNDBlNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyQ29tbW9uLmNwcApAQCAtMjMwLDcgKzIzMCw3IEBAIHZv
aWQgcmVpZnlJbmxpbmVkQ2FsbEZyYW1lcyhDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgT1NSRXhp
dEJhc2UmIGV4aXQpCiAgICAgICAgIGlmICghaW5saW5lQ2FsbEZyYW1lLT5pc1ZhcmFyZ3MoKSkK
ICAgICAgICAgICAgIGppdC5zdG9yZTMyKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKGlu
bGluZUNhbGxGcmFtZS0+YXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMpLCBBc3NlbWJseUhlbHBl
cnM6OnBheWxvYWRGb3IoKFZpcnR1YWxSZWdpc3RlcikoaW5saW5lQ2FsbEZyYW1lLT5zdGFja09m
ZnNldCArIENhbGxGcmFtZVNsb3Q6OmFyZ3VtZW50Q291bnQpKSk7CiAjaWYgVVNFKEpTVkFMVUU2
NCkKLSAgICAgICAgaml0LnN0b3JlNjQoY2FsbGVyRnJhbWVHUFIsIEFzc2VtYmx5SGVscGVyczo6
YWRkcmVzc0ZvckJ5dGVPZmZzZXQoaW5saW5lQ2FsbEZyYW1lLT5jYWxsZXJGcmFtZU9mZnNldCgp
KSk7CisgICAgICAgIGppdC5zdG9yZVB0cihjYWxsZXJGcmFtZUdQUiwgQXNzZW1ibHlIZWxwZXJz
OjphZGRyZXNzRm9yQnl0ZU9mZnNldChpbmxpbmVDYWxsRnJhbWUtPmNhbGxlckZyYW1lT2Zmc2V0
KCkpKTsKICAgICAgICAgdWludDMyX3QgbG9jYXRpb25CaXRzID0gQ2FsbFNpdGVJbmRleChjb2Rl
T3JpZ2luLT5ieXRlY29kZUluZGV4KS5iaXRzKCk7CiAgICAgICAgIGppdC5zdG9yZTMyKEFzc2Vt
Ymx5SGVscGVyczo6VHJ1c3RlZEltbTMyKGxvY2F0aW9uQml0cyksIEFzc2VtYmx5SGVscGVyczo6
dGFnRm9yKChWaXJ0dWFsUmVnaXN0ZXIpKGlubGluZUNhbGxGcmFtZS0+c3RhY2tPZmZzZXQgKyBD
YWxsRnJhbWVTbG90Ojphcmd1bWVudENvdW50KSkpOwogICAgICAgICBpZiAoIWlubGluZUNhbGxG
cmFtZS0+aXNDbG9zdXJlQ2FsbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklUNjQuY3BwCmluZGV4IGM3MDhjOWM0NGE2YWUxMWQwOTY5YjA2ZmVjZjBm
OWFjZWRlMDJhN2MuLjQ1MWY2OTZlNzQ5YWM4ZDdiZjY5YjM4ZTNhNGI1MTdiMzk2NjMwMjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNw
cApAQCAtNDQwMiw4ICs0NDAyLDEwIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9k
ZSogbm9kZSkKICAgICAgICAgbV9qaXQubG9hZDMyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKG9i
amVjdEdQUiwgSlNDZWxsOjpzdHJ1Y3R1cmVJRE9mZnNldCgpKSwgc3RydWN0dXJlSURHUFIpOwog
ICAgICAgICBtX2ppdC5hZGQzMihzdHJ1Y3R1cmVJREdQUiwgaGFzaEdQUik7CiAgICAgICAgIG1f
aml0LmFuZDMyKFRydXN0ZWRJbW0zMihIYXNPd25Qcm9wZXJ0eUNhY2hlOjptYXNrKSwgaGFzaEdQ
Uik7Ci0gICAgICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKEhhc093blByb3BlcnR5Q2FjaGU6OkVu
dHJ5KSA9PSAxNiwgIlN0cm9uZyBhc3N1bXB0aW9uIG9mIHRoYXQgaGVyZS4iKTsKLSAgICAgICAg
bV9qaXQubHNoaWZ0MzIoVHJ1c3RlZEltbTMyKDQpLCBoYXNoR1BSKTsKKyAgICAgICAgaWYgKGhh
c09uZUJpdFNldChzaXplb2YoSGFzT3duUHJvcGVydHlDYWNoZTo6RW50cnkpKSkgLy8gaXMgYSBw
b3dlciBvZiAyCisgICAgICAgICAgICBtX2ppdC5sc2hpZnQzMihUcnVzdGVkSW1tMzIoZ2V0TFNC
U2V0KHNpemVvZihIYXNPd25Qcm9wZXJ0eUNhY2hlOjpFbnRyeSkpKSwgaGFzaEdQUik7CisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIG1faml0Lm11bDMyKFRydXN0ZWRJbW0zMihzaXplb2YoSGFz
T3duUHJvcGVydHlDYWNoZTo6RW50cnkpKSwgaGFzaEdQUiwgaGFzaEdQUik7CiAgICAgICAgIEFT
U0VSVChtX2ppdC52bSgpLT5oYXNPd25Qcm9wZXJ0eUNhY2hlKCkpOwogICAgICAgICBtX2ppdC5t
b3ZlKFRydXN0ZWRJbW1QdHIobV9qaXQudm0oKS0+aGFzT3duUHJvcGVydHlDYWNoZSgpKSwgdGVt
cEdQUik7CiAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChtX2ppdC5icmFuY2hQdHIoTWFjcm9Bc3Nl
bWJsZXI6Ok5vdEVxdWFsLCAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kaXNh
c3NlbWJsZXIvVURpczg2RGlzYXNzZW1ibGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
aXNhc3NlbWJsZXIvVURpczg2RGlzYXNzZW1ibGVyLmNwcAppbmRleCAxZmY4MTU1MTYzZDQ2YWNh
N2QzNzUzMjdhNjgzZjc0OGFmNWRmNzE0Li4yYzE2N2YyNjA2NTA0NGVkZDQyZmRhMTViZTZjNjBi
NDI2MWViMmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGlzYXNzZW1ibGVy
L1VEaXM4NkRpc2Fzc2VtYmxlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rpc2Fz
c2VtYmxlci9VRGlzODZEaXNhc3NlbWJsZXIuY3BwCkBAIC00OSw3ICs0OSw3IEBAIGJvb2wgdHJ5
VG9EaXNhc3NlbWJsZVdpdGhVRGlzODYoY29uc3QgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyPERpc2Fz
c2VtYmx5UHRyVGFnPiYKICAgICB1aW50NjRfdCBjdXJyZW50UEMgPSBkaXNhc3NlbWJsZXIucGM7
CiAgICAgd2hpbGUgKHVkX2Rpc2Fzc2VtYmxlKCZkaXNhc3NlbWJsZXIpKSB7CiAgICAgICAgIGNo
YXIgcGNTdHJpbmdbMjBdOwotICAgICAgICBzbnByaW50ZihwY1N0cmluZywgc2l6ZW9mKHBjU3Ry
aW5nKSwgIjB4JWx4Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQgbG9uZz4oY3VycmVudFBDKSk7Cisg
ICAgICAgIHNucHJpbnRmKHBjU3RyaW5nLCBzaXplb2YocGNTdHJpbmcpLCAiMHglbHgiLCBzdGF0
aWNfY2FzdDx1aW50cHRyX3Q+KGN1cnJlbnRQQykpOwogICAgICAgICBvdXQucHJpbnRmKCIlcyUx
NnM6ICVzXG4iLCBwcmVmaXgsIHBjU3RyaW5nLCB1ZF9pbnNuX2FzbSgmZGlzYXNzZW1ibGVyKSk7
CiAgICAgICAgIGN1cnJlbnRQQyA9IGRpc2Fzc2VtYmxlci5wYzsKICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKaW5kZXggNzA3YmQ3NzNkNzE3
ZmJiNDRiZThmODdkMjYzNmQ2YjA4NDE3NTY5Ni4uZTJhMThiYWM2MzYzN2NhNzRhMzk0MTJkNzFh
Yzg3MmNkZDc4MWI3MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExM
b3dlckRGR1RvQjMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJE
RkdUb0IzLmNwcApAQCAtOTYzNywxMiArOTYzNywxMyBAQCBwcml2YXRlOgogICAgICAgICBMVmFs
dWUgaW5kZXggPSBtX291dC5iaXRBbmQobWFzaywgdW5tYXNrZWRJbmRleCk7CiAKICAgICAgICAg
TFZhbHVlIGJ1Y2tldDsKKwogICAgICAgICBpZiAobV9ub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkg
PT0gV2Vha01hcE9iamVjdFVzZSkgewotICAgICAgICAgICAgc3RhdGljX2Fzc2VydChzaXplb2Yo
V2Vha01hcEJ1Y2tldDxXZWFrTWFwQnVja2V0RGF0YUtleVZhbHVlPikgPT0gMTYsICIiKTsKLSAg
ICAgICAgICAgIGJ1Y2tldCA9IG1fb3V0LmFkZChidWZmZXIsIG1fb3V0LnNobChtX291dC56ZXJv
RXh0KGluZGV4LCBJbnQ2NCksIG1fb3V0LmNvbnN0SW50MzIoNCkpKTsKKyAgICAgICAgICAgIHN0
YXRpY19hc3NlcnQoaGFzT25lQml0U2V0KHNpemVvZihXZWFrTWFwQnVja2V0PFdlYWtNYXBCdWNr
ZXREYXRhS2V5VmFsdWU+KSksICJTaG91bGQgYmUgYSBwb3dlciBvZiAyIik7CisgICAgICAgICAg
ICBidWNrZXQgPSBtX291dC5hZGQoYnVmZmVyLCBtX291dC5zaGwobV9vdXQuemVyb0V4dChpbmRl
eCwgSW50NjQpLCBtX291dC5jb25zdEludDMyKGdldExTQlNldChzaXplb2YoV2Vha01hcEJ1Y2tl
dDxXZWFrTWFwQnVja2V0RGF0YUtleVZhbHVlPikpKSkpOwogICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgICAgc3RhdGljX2Fzc2VydChzaXplb2YoV2Vha01hcEJ1Y2tldDxXZWFrTWFwQnVja2V0
RGF0YUtleT4pID09IDgsICIiKTsKLSAgICAgICAgICAgIGJ1Y2tldCA9IG1fb3V0LmFkZChidWZm
ZXIsIG1fb3V0LnNobChtX291dC56ZXJvRXh0KGluZGV4LCBJbnQ2NCksIG1fb3V0LmNvbnN0SW50
MzIoMykpKTsKKyAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoaGFzT25lQml0U2V0KHNpemVvZihX
ZWFrTWFwQnVja2V0PFdlYWtNYXBCdWNrZXREYXRhS2V5PikpLCAiU2hvdWxkIGJlIGEgcG93ZXIg
b2YgMiIpOworICAgICAgICAgICAgYnVja2V0ID0gbV9vdXQuYWRkKGJ1ZmZlciwgbV9vdXQuc2hs
KG1fb3V0Lnplcm9FeHQoaW5kZXgsIEludDY0KSwgbV9vdXQuY29uc3RJbnQzMihnZXRMU0JTZXQo
c2l6ZW9mKFdlYWtNYXBCdWNrZXQ8V2Vha01hcEJ1Y2tldERhdGFLZXk+KSkpKSk7CiAgICAgICAg
IH0KIAogICAgICAgICBMVmFsdWUgYnVja2V0S2V5ID0gbV9vdXQubG9hZDY0KGJ1Y2tldCwgbV9o
ZWFwcy5XZWFrTWFwQnVja2V0X2tleSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9NYWNoaW5lU3RhY2tNYXJrZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvTWFjaGluZVN0YWNrTWFya2VyLmNwcAppbmRleCA4ZjZjNjIwNTU2NzEyMGFjZjRlZjNkYTEw
ZGY5ODM1MmMwMDc0ZjQzLi4wYmMwYjhlOGQ5MjA5ZTU4OTM2MzU3YzM4MDQ4MzIxMzVhYjBhYmJh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYWNoaW5lU3RhY2tNYXJr
ZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hY2hpbmVTdGFja01hcmtl
ci5jcHAKQEAgLTg3LDEzICs4NywxMyBAQCBzdGF0aWMgdm9pZCBjb3B5TWVtb3J5KHZvaWQqIGRz
dCwgY29uc3Qgdm9pZCogc3JjLCBzaXplX3Qgc2l6ZSkKIHsKICAgICBzaXplX3QgZHN0QXNTaXpl
ID0gcmVpbnRlcnByZXRfY2FzdDxzaXplX3Q+KGRzdCk7CiAgICAgc2l6ZV90IHNyY0FzU2l6ZSA9
IHJlaW50ZXJwcmV0X2Nhc3Q8c2l6ZV90PihzcmMpOwotICAgIFJFTEVBU0VfQVNTRVJUKGRzdEFz
U2l6ZSA9PSBXVEY6OnJvdW5kVXBUb011bHRpcGxlT2Y8c2l6ZW9mKGludHB0cl90KT4oZHN0QXNT
aXplKSk7Ci0gICAgUkVMRUFTRV9BU1NFUlQoc3JjQXNTaXplID09IFdURjo6cm91bmRVcFRvTXVs
dGlwbGVPZjxzaXplb2YoaW50cHRyX3QpPihzcmNBc1NpemUpKTsKLSAgICBSRUxFQVNFX0FTU0VS
VChzaXplID09IFdURjo6cm91bmRVcFRvTXVsdGlwbGVPZjxzaXplb2YoaW50cHRyX3QpPihzaXpl
KSk7CisgICAgUkVMRUFTRV9BU1NFUlQoZHN0QXNTaXplID09IFdURjo6cm91bmRVcFRvTXVsdGlw
bGVPZjxzaXplb2YoQ1BVUmVnaXN0ZXIpPihkc3RBc1NpemUpKTsKKyAgICBSRUxFQVNFX0FTU0VS
VChzcmNBc1NpemUgPT0gV1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9mPHNpemVvZihDUFVSZWdpc3Rl
cik+KHNyY0FzU2l6ZSkpOworICAgIFJFTEVBU0VfQVNTRVJUKHNpemUgPT0gV1RGOjpyb3VuZFVw
VG9NdWx0aXBsZU9mPHNpemVvZihDUFVSZWdpc3Rlcik+KHNpemUpKTsKIAotICAgIGludHB0cl90
KiBkc3RQdHIgPSByZWludGVycHJldF9jYXN0PGludHB0cl90Kj4oZHN0KTsKLSAgICBjb25zdCBp
bnRwdHJfdCogc3JjUHRyID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBpbnRwdHJfdCo+KHNyYyk7
Ci0gICAgc2l6ZSAvPSBzaXplb2YoaW50cHRyX3QpOworICAgIENQVVJlZ2lzdGVyKiBkc3RQdHIg
PSByZWludGVycHJldF9jYXN0PENQVVJlZ2lzdGVyKj4oZHN0KTsKKyAgICBjb25zdCBDUFVSZWdp
c3Rlciogc3JjUHRyID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBDUFVSZWdpc3Rlcio+KHNyYyk7
CisgICAgc2l6ZSAvPSBzaXplb2YoQ1BVUmVnaXN0ZXIpOwogICAgIHdoaWxlIChzaXplLS0pCiAg
ICAgICAgICpkc3RQdHIrKyA9ICpzcmNQdHIrKzsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsRnJhbWUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnRlcnByZXRlci9DYWxsRnJhbWUuaAppbmRleCA2M2FhOWFhZjFiNGY5YTQ2YzQ3Y2JjN2Qw
ZDFmNmZmODc5MWM5OWI5Li5mZjQ5YTIzYTE5NTc2OWRkMTBjOWRkYzJhNzJkYjRmYjdiN2M2YTlh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1l
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5oCkBA
IC02NywxMCArNjcsMTEgQEAgbmFtZXNwYWNlIEpTQyAgewogICAgICAgICB1aW50MzJfdCBtX2Jp
dHM7CiAgICAgfTsKIAorICAgIC8vIGFybTY0XzMyIGV4cGVjdHMgY2FsbGVyIGZyYW1lIGFuZCBy
ZXR1cm4gcGMgdG8gdXNlIDggYnl0ZXMgCiAgICAgc3RydWN0IENhbGxlckZyYW1lQW5kUEMgewot
ICAgICAgICBDYWxsRnJhbWUqIGNhbGxlckZyYW1lOwotICAgICAgICBJbnN0cnVjdGlvbiogcGM7
Ci0gICAgICAgIHN0YXRpYyBjb25zdCBpbnQgc2l6ZUluUmVnaXN0ZXJzID0gMiAqIHNpemVvZih2
b2lkKikgLyBzaXplb2YoUmVnaXN0ZXIpOworICAgICAgICBhbGlnbmFzKENQVVJlZ2lzdGVyKSBD
YWxsRnJhbWUqIGNhbGxlckZyYW1lOworICAgICAgICBhbGlnbmFzKENQVVJlZ2lzdGVyKSBJbnN0
cnVjdGlvbiogcmV0dXJuUEM7CisgICAgICAgIHN0YXRpYyBjb25zdCBpbnQgc2l6ZUluUmVnaXN0
ZXJzID0gMiAqIHNpemVvZihDUFVSZWdpc3RlcikgLyBzaXplb2YoUmVnaXN0ZXIpOwogICAgIH07
CiAgICAgc3RhdGljX2Fzc2VydChDYWxsZXJGcmFtZUFuZFBDOjpzaXplSW5SZWdpc3RlcnMgPT0g
c2l6ZW9mKENhbGxlckZyYW1lQW5kUEMpIC8gc2l6ZW9mKFJlZ2lzdGVyKSwgIkNhbGxlckZyYW1l
QW5kUEM6OnNpemVJblJlZ2lzdGVycyBpcyBpbmNvcnJlY3QuIik7CiAKQEAgLTE0NywxMCArMTQ4
LDEwIEBAIG5hbWVzcGFjZSBKU0MgIHsKIAogICAgICAgICBzdGF0aWMgcHRyZGlmZl90IGNhbGxl
ckZyYW1lT2Zmc2V0KCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKENhbGxlckZyYW1lQW5kUEMs
IGNhbGxlckZyYW1lKTsgfQogCi0gICAgICAgIFJldHVybkFkZHJlc3NQdHIgcmV0dXJuUEMoKSBj
b25zdCB7IHJldHVybiBSZXR1cm5BZGRyZXNzUHRyKGNhbGxlckZyYW1lQW5kUEMoKS5wYyk7IH0K
LSAgICAgICAgYm9vbCBoYXNSZXR1cm5QQygpIGNvbnN0IHsgcmV0dXJuICEhY2FsbGVyRnJhbWVB
bmRQQygpLnBjOyB9Ci0gICAgICAgIHZvaWQgY2xlYXJSZXR1cm5QQygpIHsgY2FsbGVyRnJhbWVB
bmRQQygpLnBjID0gMDsgfQotICAgICAgICBzdGF0aWMgcHRyZGlmZl90IHJldHVyblBDT2Zmc2V0
KCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKENhbGxlckZyYW1lQW5kUEMsIHBjKTsgfQorICAg
ICAgICBSZXR1cm5BZGRyZXNzUHRyIHJldHVyblBDKCkgY29uc3QgeyByZXR1cm4gUmV0dXJuQWRk
cmVzc1B0cihjYWxsZXJGcmFtZUFuZFBDKCkucmV0dXJuUEMpOyB9CisgICAgICAgIGJvb2wgaGFz
UmV0dXJuUEMoKSBjb25zdCB7IHJldHVybiAhIWNhbGxlckZyYW1lQW5kUEMoKS5yZXR1cm5QQzsg
fQorICAgICAgICB2b2lkIGNsZWFyUmV0dXJuUEMoKSB7IGNhbGxlckZyYW1lQW5kUEMoKS5yZXR1
cm5QQyA9IDA7IH0KKyAgICAgICAgc3RhdGljIHB0cmRpZmZfdCByZXR1cm5QQ09mZnNldCgpIHsg
cmV0dXJuIE9CSkVDVF9PRkZTRVRPRihDYWxsZXJGcmFtZUFuZFBDLCByZXR1cm5QQyk7IH0KICAg
ICAgICAgQWJzdHJhY3RQQyBhYnN0cmFjdFJldHVyblBDKFZNJiB2bSkgeyByZXR1cm4gQWJzdHJh
Y3RQQyh2bSwgdGhpcyk7IH0KIAogICAgICAgICBib29sIGNhbGxTaXRlQml0c0FyZUJ5dGVjb2Rl
T2Zmc2V0KCkgY29uc3Q7CkBAIC0yNTMsNyArMjU0LDcgQEAgbmFtZXNwYWNlIEpTQyAgewogICAg
ICAgICBzdGF0aWMgQ2FsbEZyYW1lKiBub0NhbGxlcigpIHsgcmV0dXJuIG51bGxwdHI7IH0KICAg
ICAgICAgYm9vbCBpc0dsb2JhbEV4ZWMoKSBjb25zdAogICAgICAgICB7Ci0gICAgICAgICAgICBy
ZXR1cm4gY2FsbGVyRnJhbWVBbmRQQygpLmNhbGxlckZyYW1lID09IG5vQ2FsbGVyKCkgJiYgY2Fs
bGVyRnJhbWVBbmRQQygpLnBjID09IG51bGxwdHI7CisgICAgICAgICAgICByZXR1cm4gY2FsbGVy
RnJhbWVBbmRQQygpLmNhbGxlckZyYW1lID09IG5vQ2FsbGVyKCkgJiYgY2FsbGVyRnJhbWVBbmRQ
QygpLnJldHVyblBDID09IG51bGxwdHI7CiAgICAgICAgIH0KIAogICAgICAgICB2b2lkIGNvbnZl
cnRUb1N0YWNrT3ZlcmZsb3dGcmFtZShWTSYpOwpAQCAtMjYzLDcgKzI2NCw3IEBAIG5hbWVzcGFj
ZSBKU0MgIHsKICAgICAgICAgdm9pZCBzZXRBcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcyhpbnQg
Y291bnQpIHsgc3RhdGljX2Nhc3Q8UmVnaXN0ZXIqPih0aGlzKVtDYWxsRnJhbWVTbG90Ojphcmd1
bWVudENvdW50XS5wYXlsb2FkKCkgPSBjb3VudDsgfQogICAgICAgICB2b2lkIHNldENhbGxlZShK
U09iamVjdCogY2FsbGVlKSB7IHN0YXRpY19jYXN0PFJlZ2lzdGVyKj4odGhpcylbQ2FsbEZyYW1l
U2xvdDo6Y2FsbGVlXSA9IGNhbGxlZTsgfQogICAgICAgICB2b2lkIHNldENvZGVCbG9jayhDb2Rl
QmxvY2sqIGNvZGVCbG9jaykgeyBzdGF0aWNfY2FzdDxSZWdpc3Rlcio+KHRoaXMpW0NhbGxGcmFt
ZVNsb3Q6OmNvZGVCbG9ja10gPSBjb2RlQmxvY2s7IH0KLSAgICAgICAgdm9pZCBzZXRSZXR1cm5Q
Qyh2b2lkKiB2YWx1ZSkgeyBjYWxsZXJGcmFtZUFuZFBDKCkucGMgPSByZWludGVycHJldF9jYXN0
PEluc3RydWN0aW9uKj4odmFsdWUpOyB9CisgICAgICAgIHZvaWQgc2V0UmV0dXJuUEModm9pZCog
dmFsdWUpIHsgY2FsbGVyRnJhbWVBbmRQQygpLnJldHVyblBDID0gcmVpbnRlcnByZXRfY2FzdDxJ
bnN0cnVjdGlvbio+KHZhbHVlKTsgfQogCiAgICAgICAgIFN0cmluZyBmcmllbmRseUZ1bmN0aW9u
TmFtZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIv
Q2FsbGVlQml0cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxlZUJp
dHMuaAppbmRleCBlNGE5ODRkMWU5Njc5NjNjZDhkOTJiODQ2Y2E3NmZhOWIzMWViNDFjLi44NWMz
ZWQ4OGMxYzJiZjMyMWU2OTJkYjczZjJlZWM5N2YwMGMwNzRlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbGVlQml0cy5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsZWVCaXRzLmgKQEAgLTUxLDcgKzUxLDcgQEAgcHVi
bGljOgogI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKICAgICBzdGF0aWMgdm9pZCogYm94V2FzbShX
YXNtOjpDYWxsZWUqIGNhbGxlZSkKICAgICB7Ci0gICAgICAgIENhbGxlZUJpdHMgcmVzdWx0KGJp
dHdpc2VfY2FzdDx2b2lkKj4oYml0d2lzZV9jYXN0PHVpbnRwdHJfdD4oY2FsbGVlKSB8IFRhZ0Jp
dHNXYXNtKSk7CisgICAgICAgIENhbGxlZUJpdHMgcmVzdWx0KHJlaW50ZXJwcmV0X2Nhc3Q8dm9p
ZCo+KHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihjYWxsZWUpIHwgVGFnQml0c1dhc20pKTsK
ICAgICAgICAgQVNTRVJUKHJlc3VsdC5pc1dhc20oKSk7CiAgICAgICAgIHJldHVybiByZXN1bHQu
cmF3UHRyKCk7CiAgICAgfQpAQCAtNjAsNyArNjAsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc1dh
c20oKSBjb25zdAogICAgIHsKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCi0gICAgICAgIHJldHVy
biAoYml0d2lzZV9jYXN0PHVpbnRwdHJfdD4obV9wdHIpICYgVGFnV2FzbU1hc2spID09IFRhZ0Jp
dHNXYXNtOworICAgICAgICByZXR1cm4gKHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihtX3B0
cikgJiBUYWdXYXNtTWFzaykgPT0gVGFnQml0c1dhc207CiAjZWxzZQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAjZW5kaWYKQEAgLTc3LDcgKzc3LDcgQEAgcHVibGljOgogICAgIFdhc206OkNhbGxl
ZSogYXNXYXNtQ2FsbGVlKCkgY29uc3QKICAgICB7CiAgICAgICAgIEFTU0VSVChpc1dhc20oKSk7
Ci0gICAgICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8V2FzbTo6Q2FsbGVlKj4oYml0d2lzZV9jYXN0
PHVpbnRwdHJfdD4obV9wdHIpICYgflRhZ0JpdHNXYXNtKTsKKyAgICAgICAgcmV0dXJuIHJlaW50
ZXJwcmV0X2Nhc3Q8V2FzbTo6Q2FsbGVlKj4ocmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KG1f
cHRyKSAmIH5UYWdCaXRzV2FzbSk7CiAgICAgfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCmluZGV4IDAxNzMxYTViMWIxZmZkNzgzMjBkZTc2
YzUyZjM0YWQ2YjRkODVhNTUuLjE2ODA3OGNiM2ZiODBkYTg2ZTMxN2VhOTQ4NDkzYWJiZmRkMjY5
ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJz
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaApAQCAt
NDYxLDExICs0NjEsMTEgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgQVNTRVJUKGZyYW1lU2l6
ZSAlIHN0YWNrQWxpZ25tZW50Qnl0ZXMoKSA9PSAwKTsKICAgICAgICAgaWYgKGZyYW1lU2l6ZSA8
PSAxMjgpIHsKLSAgICAgICAgICAgIGZvciAodW5zaWduZWQgb2Zmc2V0ID0gMDsgb2Zmc2V0IDwg
ZnJhbWVTaXplOyBvZmZzZXQgKz0gc2l6ZW9mKGludHB0cl90KSkKKyAgICAgICAgICAgIGZvciAo
dW5zaWduZWQgb2Zmc2V0ID0gMDsgb2Zmc2V0IDwgZnJhbWVTaXplOyBvZmZzZXQgKz0gc2l6ZW9m
KENQVVJlZ2lzdGVyKSkKICAgICAgICAgICAgICAgICBzdG9yZVB0cihUcnVzdGVkSW1tMzIoMCks
IEFkZHJlc3MoY3VycmVudFRvcCwgLTggLSBvZmZzZXQpKTsKICAgICAgICAgfSBlbHNlIHsKICAg
ICAgICAgICAgIGNvbnN0ZXhwciB1bnNpZ25lZCBzdG9yZUJ5dGVzUGVySXRlcmF0aW9uID0gc3Rh
Y2tBbGlnbm1lbnRCeXRlcygpOwotICAgICAgICAgICAgY29uc3RleHByIHVuc2lnbmVkIHN0b3Jl
c1Blckl0ZXJhdGlvbiA9IHN0b3JlQnl0ZXNQZXJJdGVyYXRpb24gLyBzaXplb2YoaW50cHRyX3Qp
OworICAgICAgICAgICAgY29uc3RleHByIHVuc2lnbmVkIHN0b3Jlc1Blckl0ZXJhdGlvbiA9IHN0
b3JlQnl0ZXNQZXJJdGVyYXRpb24gLyBzaXplb2YoQ1BVUmVnaXN0ZXIpOwogCiAgICAgICAgICAg
ICBtb3ZlKGN1cnJlbnRUb3AsIHRlbXApOwogICAgICAgICAgICAgTGFiZWwgemVyb0xvb3AgPSBs
YWJlbCgpOwpAQCAtNDc1LDcgKzQ3NSw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHN0b3JlUGFp
cjY0KEFSTTY0UmVnaXN0ZXJzOjp6ciwgQVJNNjRSZWdpc3RlcnM6OnpyLCB0ZW1wKTsKICNlbHNl
CiAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBzdG9yZXNQZXJJdGVyYXRpb247IGktLSAh
PSAwOykKLSAgICAgICAgICAgICAgICBzdG9yZVB0cihUcnVzdGVkSW1tMzIoMCksIEFkZHJlc3Mo
dGVtcCwgc2l6ZW9mKGludHB0cl90KSAqIGkpKTsKKyAgICAgICAgICAgICAgICBzdG9yZVB0cihU
cnVzdGVkSW1tMzIoMCksIEFkZHJlc3ModGVtcCwgc2l6ZW9mKENQVVJlZ2lzdGVyKSAqIGkpKTsK
ICNlbmRpZgogICAgICAgICAgICAgYnJhbmNoUHRyKE5vdEVxdWFsLCB0ZW1wLCBuZXdUb3ApLmxp
bmtUbyh6ZXJvTG9vcCwgdGhpcyk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9MTEludERhdGEuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xs
aW50L0xMSW50RGF0YS5jcHAKaW5kZXggMGRkMDQ1NDMzNDc5NzdjNTY3M2JmZWViZGUzOGI4YzUy
MWQyN2Q2OS4uODUwMTA2MjEyZDM1YTg4YWQ3YTg2N2E3MWRkNmZiMjlhMjA2ZTZmMiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RGF0YS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RGF0YS5jcHAKQEAgLTc2LDIyICs3NiwyMSBA
QCB2b2lkIERhdGE6OnBlcmZvcm1Bc3NlcnRpb25zKFZNJiB2bSkKICAgICAvLyBwcmVwYXJlZCB0
byBjaGFuZ2UgTG93TGV2ZWxJbnRlcnByZXRlci5hc20gYXMgd2VsbCEhCiAKICNpZiBVU0UoSlNW
QUxVRTY0KQotICAgIGNvbnN0IHB0cmRpZmZfdCBQdHJTaXplID0gODsKICAgICBjb25zdCBwdHJk
aWZmX3QgQ2FsbEZyYW1lSGVhZGVyU2xvdHMgPSA1OworICAgIGNvbnN0IHB0cmRpZmZfdCBNYWNo
aW5lUmVnaXN0ZXJTaXplID0gODsKICNlbHNlIC8vIFVTRShKU1ZBTFVFNjQpIC8vIGkuZS4gMzIt
Yml0IHZlcnNpb24KLSAgICBjb25zdCBwdHJkaWZmX3QgUHRyU2l6ZSA9IDQ7CiAgICAgY29uc3Qg
cHRyZGlmZl90IENhbGxGcmFtZUhlYWRlclNsb3RzID0gNDsKKyAgICBjb25zdCBwdHJkaWZmX3Qg
TWFjaGluZVJlZ2lzdGVyU2l6ZSA9IDQ7CiAjZW5kaWYKICAgICBjb25zdCBwdHJkaWZmX3QgU2xv
dFNpemUgPSA4OwogCi0gICAgU1RBVElDX0FTU0VSVChzaXplb2Yodm9pZCopID09IFB0clNpemUp
OwogICAgIFNUQVRJQ19BU1NFUlQoc2l6ZW9mKFJlZ2lzdGVyKSA9PSBTbG90U2l6ZSk7CiAgICAg
U1RBVElDX0FTU0VSVChDYWxsRnJhbWU6OmhlYWRlclNpemVJblJlZ2lzdGVycyA9PSBDYWxsRnJh
bWVIZWFkZXJTbG90cyk7CiAKICAgICBBU1NFUlQoIUNhbGxGcmFtZTo6Y2FsbGVyRnJhbWVPZmZz
ZXQoKSk7Ci0gICAgU1RBVElDX0FTU0VSVChDYWxsZXJGcmFtZUFuZFBDOjpzaXplSW5SZWdpc3Rl
cnMgPT0gKFB0clNpemUgKiAyKSAvIFNsb3RTaXplKTsKLSAgICBBU1NFUlQoQ2FsbEZyYW1lOjpy
ZXR1cm5QQ09mZnNldCgpID09IENhbGxGcmFtZTo6Y2FsbGVyRnJhbWVPZmZzZXQoKSArIFB0clNp
emUpOwotICAgIEFTU0VSVChDYWxsRnJhbWVTbG90Ojpjb2RlQmxvY2sgKiBzaXplb2YoUmVnaXN0
ZXIpID09IENhbGxGcmFtZTo6cmV0dXJuUENPZmZzZXQoKSArIFB0clNpemUpOworICAgIFNUQVRJ
Q19BU1NFUlQoQ2FsbGVyRnJhbWVBbmRQQzo6c2l6ZUluUmVnaXN0ZXJzID09IChNYWNoaW5lUmVn
aXN0ZXJTaXplICogMikgLyBTbG90U2l6ZSk7CisgICAgQVNTRVJUKENhbGxGcmFtZTo6cmV0dXJu
UENPZmZzZXQoKSA9PSBDYWxsRnJhbWU6OmNhbGxlckZyYW1lT2Zmc2V0KCkgKyBNYWNoaW5lUmVn
aXN0ZXJTaXplKTsKKyAgICBBU1NFUlQoQ2FsbEZyYW1lU2xvdDo6Y29kZUJsb2NrICogc2l6ZW9m
KFJlZ2lzdGVyKSA9PSBDYWxsRnJhbWU6OnJldHVyblBDT2Zmc2V0KCkgKyBNYWNoaW5lUmVnaXN0
ZXJTaXplKTsKICAgICBTVEFUSUNfQVNTRVJUKENhbGxGcmFtZVNsb3Q6OmNhbGxlZSAqIHNpemVv
ZihSZWdpc3RlcikgPT0gQ2FsbEZyYW1lU2xvdDo6Y29kZUJsb2NrICogc2l6ZW9mKFJlZ2lzdGVy
KSArIFNsb3RTaXplKTsKICAgICBTVEFUSUNfQVNTRVJUKENhbGxGcmFtZVNsb3Q6OmFyZ3VtZW50
Q291bnQgKiBzaXplb2YoUmVnaXN0ZXIpID09IENhbGxGcmFtZVNsb3Q6OmNhbGxlZSAqIHNpemVv
ZihSZWdpc3RlcikgKyBTbG90U2l6ZSk7CiAgICAgU1RBVElDX0FTU0VSVChDYWxsRnJhbWVTbG90
Ojp0aGlzQXJndW1lbnQgKiBzaXplb2YoUmVnaXN0ZXIpID09IENhbGxGcmFtZVNsb3Q6OmFyZ3Vt
ZW50Q291bnQgKiBzaXplb2YoUmVnaXN0ZXIpICsgU2xvdFNpemUpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50T2ZmbGluZUFzbUNvbmZpZy5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50T2ZmbGluZUFzbUNvbmZpZy5oCmluZGV4IGJhNmQ1
MTZkNWYzZjgxYTA3MzdiOTYyMjY5ZWMzNmIwNzI5ZmMyY2UuLjZiOWI3OTg3NmVjZWE2NTZjNDJh
NjU5NTY0ZWE1NDgwODI3MDAzZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9s
bGludC9MTEludE9mZmxpbmVBc21Db25maWcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvTExJbnRPZmZsaW5lQXNtQ29uZmlnLmgKQEAgLTE0NSw2ICsxNDUsMTIgQEAKICNkZWZp
bmUgT0ZGTElORV9BU01fSlNWQUxVRTY0IDAKICNlbmRpZgogCisjaWYgQ1BVKEFERFJFU1M2NCkK
KyNkZWZpbmUgT0ZGTElORV9BU01fQUREUkVTUzY0IDEKKyNlbHNlCisjZGVmaW5lIE9GRkxJTkVf
QVNNX0FERFJFU1M2NCAwCisjZW5kaWYKKwogI2lmIEVOQUJMRShQT0lTT04pCiAjZGVmaW5lIE9G
RkxJTkVfQVNNX1BPSVNPTiAxCiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCmluZGV4IDJiNDM1MGNkNTJhODczZjE0YjVj
ODc3NmViNGZiOWMzZDA0ZmEzZDguLjg0OGY3MzhkZDMzZDM1OWM3M2Q0OGJhNzE5ZTMyNzQ5ZDMw
YWQxM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbElu
dGVycHJldGVyLmFzbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJ
bnRlcnByZXRlci5hc20KQEAgLTE1Nyw5ICsxNTcsMTEgQEAgY29uc3QgUHRyU2l6ZSA9IGNvbnN0
ZXhwciAoc2l6ZW9mKHZvaWQqKSkKIAogaWYgSlNWQUxVRTY0CiAgICAgY29uc3QgQ2FsbEZyYW1l
SGVhZGVyU2xvdHMgPSA1CisgICAgY29uc3QgTWFjaGluZVJlZ2lzdGVyU2l6ZSA9IDgKIGVsc2UK
ICAgICBjb25zdCBDYWxsRnJhbWVIZWFkZXJTbG90cyA9IDQKICAgICBjb25zdCBDYWxsRnJhbWVB
bGlnblNsb3RzID0gMQorICAgIGNvbnN0IE1hY2hpbmVSZWdpc3RlclNpemUgPSA0CiBlbmQKIGNv
bnN0IFNsb3RTaXplID0gOAogCkBAIC0xNzAsMTEgKzE3MiwxMSBAQCBjb25zdCBTdGFja0FsaWdu
bWVudCA9IDE2CiBjb25zdCBTdGFja0FsaWdubWVudFNsb3RzID0gMgogY29uc3QgU3RhY2tBbGln
bm1lbnRNYXNrID0gU3RhY2tBbGlnbm1lbnQgLSAxCiAKLWNvbnN0IENhbGxlckZyYW1lQW5kUENT
aXplID0gMiAqIFB0clNpemUKK2NvbnN0IENhbGxlckZyYW1lQW5kUENTaXplID0gY29uc3RleHBy
IChzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQykpCiAKIGNvbnN0IENhbGxlckZyYW1lID0gMAotY29u
c3QgUmV0dXJuUEMgPSBDYWxsZXJGcmFtZSArIFB0clNpemUKLWNvbnN0IENvZGVCbG9jayA9IFJl
dHVyblBDICsgUHRyU2l6ZQorY29uc3QgUmV0dXJuUEMgPSBDYWxsZXJGcmFtZSArIE1hY2hpbmVS
ZWdpc3RlclNpemUKK2NvbnN0IENvZGVCbG9jayA9IFJldHVyblBDICsgTWFjaGluZVJlZ2lzdGVy
U2l6ZQogY29uc3QgQ2FsbGVlID0gQ29kZUJsb2NrICsgU2xvdFNpemUKIGNvbnN0IEFyZ3VtZW50
Q291bnQgPSBDYWxsZWUgKyBTbG90U2l6ZQogY29uc3QgVGhpc0FyZ3VtZW50T2Zmc2V0ID0gQXJn
dW1lbnRDb3VudCArIFNsb3RTaXplCkBAIC01NzQsNyArNTc2LDcgQEAgZWxzaWYgWDg2IG9yIFg4
Nl9XSU4KICAgICBjb25zdCBDYWxsZWVTYXZlUmVnaXN0ZXJDb3VudCA9IDMKIGVuZAogCi1jb25z
dCBDYWxsZWVSZWdpc3RlclNhdmVTaXplID0gQ2FsbGVlU2F2ZVJlZ2lzdGVyQ291bnQgKiBQdHJT
aXplCitjb25zdCBDYWxsZWVSZWdpc3RlclNhdmVTaXplID0gQ2FsbGVlU2F2ZVJlZ2lzdGVyQ291
bnQgKiBNYWNoaW5lUmVnaXN0ZXJTaXplCiAKICMgVk1FbnRyeVRvdGFsRnJhbWVTaXplIGluY2x1
ZGVzIHRoZSBzcGFjZSBmb3Igc3RydWN0IFZNRW50cnlSZWNvcmQgYW5kIHRoZQogIyBjYWxsZWUg
c2F2ZSByZWdpc3RlcnMgcm91bmRlZCB1cCB0byBrZWVwIHRoZSBzdGFjayBhbGlnbmVkCkBAIC04
ODQsOSArODg2LDkgQEAgbWFjcm8gcHJlcGFyZUZvclRhaWxDYWxsKGNhbGxlZSwgdGVtcDEsIHRl
bXAyLCB0ZW1wMywgY2FsbFB0clRhZykKICAgICBhbmRpIH5TdGFja0FsaWdubWVudE1hc2ssIHRl
bXAyCiAKICAgICBpZiBBUk0gb3IgQVJNdjdfVFJBRElUSU9OQUwgb3IgQVJNdjcgb3IgQVJNNjQg
b3IgQVJNNjRFIG9yIENfTE9PUCBvciBNSVBTCi0gICAgICAgIGFkZHAgMiAqIFB0clNpemUsIHNw
Ci0gICAgICAgIHN1YmkgMiAqIFB0clNpemUsIHRlbXAyCi0gICAgICAgIGxvYWRwIFB0clNpemVb
Y2ZyXSwgbHIKKyAgICAgICAgYWRkcCBDYWxsZXJGcmFtZUFuZFBDU2l6ZSwgc3AKKyAgICAgICAg
c3ViaSBDYWxsZXJGcmFtZUFuZFBDU2l6ZSwgdGVtcDIKKyAgICAgICAgbG9hZHAgQ2FsbGVyRnJh
bWVBbmRQQzo6cmV0dXJuUENbY2ZyXSwgbHIKICAgICBlbHNlCiAgICAgICAgIGFkZHAgUHRyU2l6
ZSwgc3AKICAgICAgICAgc3ViaSBQdHJTaXplLCB0ZW1wMgpAQCAtOTAzLDEwICs5MDUsMTcgQEAg
bWFjcm8gcHJlcGFyZUZvclRhaWxDYWxsKGNhbGxlZSwgdGVtcDEsIHRlbXAyLCB0ZW1wMywgY2Fs
bFB0clRhZykKICAgICBsb2FkcCBbY2ZyXSwgY2ZyCiAKIC5jb3B5TG9vcDoKLSAgICBzdWJpIFB0
clNpemUsIHRlbXAyCi0gICAgbG9hZHAgW3NwLCB0ZW1wMiwgMV0sIHRlbXAzCi0gICAgc3RvcmVw
IHRlbXAzLCBbdGVtcDEsIHRlbXAyLCAxXQotICAgIGJ0aW56IHRlbXAyLCAuY29weUxvb3AKKyAg
ICBpZiBBUk02NCBhbmQgbm90IEFERFJFU1M2NAorICAgICAgICBzdWJpIE1hY2hpbmVSZWdpc3Rl
clNpemUsIHRlbXAyCisgICAgICAgIGxvYWRxIFtzcCwgdGVtcDIsIDFdLCB0ZW1wMworICAgICAg
ICBzdG9yZXEgdGVtcDMsIFt0ZW1wMSwgdGVtcDIsIDFdCisgICAgICAgIGJ0aW56IHRlbXAyLCAu
Y29weUxvb3AKKyAgICBlbHNlCisgICAgICAgIHN1YmkgUHRyU2l6ZSwgdGVtcDIKKyAgICAgICAg
bG9hZHAgW3NwLCB0ZW1wMiwgMV0sIHRlbXAzCisgICAgICAgIHN0b3JlcCB0ZW1wMywgW3RlbXAx
LCB0ZW1wMiwgMV0KKyAgICAgICAgYnRpbnogdGVtcDIsIC5jb3B5TG9vcAorICAgIGVuZAogCiAg
ICAgbW92ZSB0ZW1wMSwgc3AKICAgICBqbXAgY2FsbGVlLCBjYWxsUHRyVGFnCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm02NC5yYiBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FybTY0LnJiCmluZGV4IDYxMTAyYzk4YzMyOWVhNGFlYWQ5
M2RiNjhlYzI5ODI0Y2E3ODQ0YWMuLjE5YWU2NmU5NGViNTA4MjkzZjQ5YWIyNDgxZGIwNjdmODk2
OGFlNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FybTY0
LnJiCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FybTY0LnJiCkBAIC00
NDksMTAgKzQ0OSwyMiBAQCBlbmQKIAogZGVmIGVtaXRBUk02NEFjY2VzcyhvcGNvZGUsIG9wY29k
ZU5lZ2F0aXZlT2Zmc2V0LCByZWdpc3RlciwgbWVtb3J5LCBraW5kKQogICAgIGlmIG1lbW9yeS5p
c19hPyBBZGRyZXNzIGFuZCBtZW1vcnkub2Zmc2V0LnZhbHVlIDwgMAorICAgICAgICByYWlzZSB1
bmxlc3MgLTI1NiA8PSBtZW1vcnkub2Zmc2V0LnZhbHVlCiAgICAgICAgICRhc20ucHV0cyAiI3tv
cGNvZGVOZWdhdGl2ZU9mZnNldH0gI3tyZWdpc3Rlci5hcm02NE9wZXJhbmQoa2luZCl9LCAje21l
bW9yeS5hcm02NE9wZXJhbmQoa2luZCl9IgogICAgICAgICByZXR1cm4KICAgICBlbmQKLSAgICAK
KworICAgICMgRklYTUU6IFRoaXMgaXMgYSB3b3JrIGFyb3VuZCBmb3IgcmRhcjovL3Byb2JsZW0v
NDQ5ODMwNjUuLi4KKyAgICBpZiBtZW1vcnkuaXNfYT8gQWRkcmVzcyBhbmQgbWVtb3J5Lm9mZnNl
dC52YWx1ZSA+IDI1NQorICAgICAgICBzY3JhdGNoID0gU3BlY2lhbFJlZ2lzdGVyLm5ldygieDYi
KQorICAgICAgICAkYXNtLnB1dHMgIm1vdiAje3NjcmF0Y2guYXJtNjRPcGVyYW5kKGtpbmQpfSwg
I3ttZW1vcnkub2Zmc2V0LmFybTY0T3BlcmFuZChraW5kKX0iCisgICAgICAgIHplcm8gPSBJbW1l
ZGlhdGUubmV3KG1lbW9yeS5jb2RlT3JpZ2luLCAwKQorICAgICAgICBvbmUgPSBJbW1lZGlhdGUu
bmV3KG1lbW9yeS5jb2RlT3JpZ2luLCAxKQorICAgICAgICBuZXdNZW1vcnkgPSBCYXNlSW5kZXgu
bmV3KG1lbW9yeS5jb2RlT3JpZ2luLCBtZW1vcnkuYmFzZSwgc2NyYXRjaCwgMSwgemVybykKKyAg
ICAgICAgJGFzbS5wdXRzICIje29wY29kZX0gI3tyZWdpc3Rlci5hcm02NE9wZXJhbmQoa2luZCl9
LCAje25ld01lbW9yeS5hcm02NE9wZXJhbmQoa2luZCl9IgorICAgICAgICByZXR1cm4KKyAgICBl
bmQKKwogICAgICRhc20ucHV0cyAiI3tvcGNvZGV9ICN7cmVnaXN0ZXIuYXJtNjRPcGVyYW5kKGtp
bmQpfSwgI3ttZW1vcnkuYXJtNjRPcGVyYW5kKGtpbmQpfSIKIGVuZAogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9iYWNrZW5kcy5yYiBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9vZmZsaW5lYXNtL2JhY2tlbmRzLnJiCmluZGV4IDQ1NDlhYjFiZjE3YzQwM2Y0
Yjc0NzcwN2VjZjU4ODM2Y2IzNzc4YTguLjVjOGVhODZjNTdmZjBlZmJmZDEwMjI0MTgyMDYxMGY4
NjRmMDg5ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2Jh
Y2tlbmRzLnJiCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2JhY2tlbmRz
LnJiCkBAIC04NiwxMSArODYsMTMgQEAgZGVmIGNhbm9uaWNhbGl6ZUJhY2tlbmROYW1lcyhiYWNr
ZW5kTmFtZXMpCiAgICAgICAgIGJhY2tlbmROYW1lID0gYmFja2VuZE5hbWUudXBjYXNlCiAgICAg
ICAgIGlmIGJhY2tlbmROYW1lID1+IC9BUk0uKi8KICAgICAgICAgICAgIGJhY2tlbmROYW1lLnN1
YiEoL0FSTVY3KFM/KSguKikvKSB7IHwgXyB8ICdBUk12NycgKyAkMS5kb3duY2FzZSArICQyIH0K
KyAgICAgICAgICAgIGJhY2tlbmROYW1lID0gIkFSTTY0IiBpZiBiYWNrZW5kTmFtZSA9PSAiQVJN
NjRfMzIiCiAgICAgICAgIGVuZAogICAgICAgICBiYWNrZW5kTmFtZSA9ICJYODYiIGlmIGJhY2tl
bmROYW1lID09ICJJMzg2IgogICAgICAgICBuZXdCYWNrZW5kTmFtZXMgPDwgYmFja2VuZE5hbWUK
ICAgICAgICAgbmV3QmFja2VuZE5hbWVzIDw8ICJBUk12NyIgaWYgYmFja2VuZE5hbWUgPT0gIkFS
TXY3cyIKICAgICB9CisgICAgcHV0cyBuZXdCYWNrZW5kTmFtZXMudW5pcQogICAgIG5ld0JhY2tl
bmROYW1lcy51bmlxCiBlbmQKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQmFzaWNCbG9ja0xvY2F0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0Jhc2ljQmxvY2tMb2NhdGlvbi5jcHAKaW5kZXggZDk3YjAzNzBkM2M3Yjk2NWExNjY3N2I0
ZjU1MTY1NmE0NjBkMmI3NS4uN2RhYmY3M2M0NjM2ZDdkY2U1M2E5MTE3Y2UyNzliNGJiMTQ2Mzg0
NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQmFzaWNCbG9ja0xv
Y2F0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9CYXNpY0Jsb2Nr
TG9jYXRpb24uY3BwCkBAIC03NCwxNSArNzQsMTcgQEAgVmVjdG9yPHN0ZDo6cGFpcjxpbnQsIGlu
dD4+IEJhc2ljQmxvY2tMb2NhdGlvbjo6Z2V0RXhlY3V0ZWRSYW5nZXMoKSBjb25zdAogdm9pZCBC
YXNpY0Jsb2NrTG9jYXRpb246OmR1bXBEYXRhKCkgY29uc3QKIHsKICAgICBWZWN0b3I8R2FwPiBl
eGVjdXRlZFJhbmdlcyA9IGdldEV4ZWN1dGVkUmFuZ2VzKCk7Ci0gICAgZm9yIChHYXAgZ2FwIDog
ZXhlY3V0ZWRSYW5nZXMpCi0gICAgICAgIGRhdGFMb2dGKCJcdEJhc2ljQmxvY2s6IFslZCwgJWRd
IGhhc0V4ZWN1dGVkOiAlcywgZXhlY3V0aW9uQ291bnQ6JXp1XG4iLCBnYXAuZmlyc3QsIGdhcC5z
ZWNvbmQsIGhhc0V4ZWN1dGVkKCkgPyAidHJ1ZSIgOiAiZmFsc2UiLCBtX2V4ZWN1dGlvbkNvdW50
KTsKKyAgICBmb3IgKEdhcCBnYXAgOiBleGVjdXRlZFJhbmdlcykgeworICAgICAgICBkYXRhTG9n
RigiXHRCYXNpY0Jsb2NrOiBbJWQsICVkXSBoYXNFeGVjdXRlZDogJXMsIGV4ZWN1dGlvbkNvdW50
OiIsIGdhcC5maXJzdCwgZ2FwLnNlY29uZCwgaGFzRXhlY3V0ZWQoKSA/ICJ0cnVlIiA6ICJmYWxz
ZSIpOworICAgICAgICBkYXRhTG9nTG4obV9leGVjdXRpb25Db3VudCk7CisgICAgfQogfQogCiAj
aWYgRU5BQkxFKEpJVCkKICNpZiBVU0UoSlNWQUxVRTY0KQogdm9pZCBCYXNpY0Jsb2NrTG9jYXRp
b246OmVtaXRFeGVjdXRlQ29kZShDQ2FsbEhlbHBlcnMmIGppdCkgY29uc3QKIHsKLSAgICBzdGF0
aWNfYXNzZXJ0KHNpemVvZihzaXplX3QpID09IDgsICJBc3N1bWluZyBzaXplX3QgaXMgNjQgYml0
cyBvbiA2NCBiaXQgcGxhdGZvcm1zLiIpOworICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKFVDUFVS
ZWdpc3RlcikgPT0gOCwgIkFzc3VtaW5nIHNpemVfdCBpcyA2NCBiaXRzIG9uIDY0IGJpdCBwbGF0
Zm9ybXMuIik7CiAgICAgaml0LmFkZDY0KENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKDEpLCBD
Q2FsbEhlbHBlcnM6OkFic29sdXRlQWRkcmVzcygmbV9leGVjdXRpb25Db3VudCkpOwogfQogI2Vs
c2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jhc2ljQmxvY2tM
b2NhdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQmFzaWNCbG9ja0xvY2F0
aW9uLmgKaW5kZXggMTJmYjQ3NmUxZDNhNTlmMDViNmQ1MzYwYzQ4Y2Y2YjAwMzVmMTgwOC4uZTcw
YmVhNmM5YzRhOTVmOWZhZDA0OTI3ZDYzNDQ4MTBjYWQyYjE5ZSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQmFzaWNCbG9ja0xvY2F0aW9uLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQmFzaWNCbG9ja0xvY2F0aW9uLmgKQEAgLTYyLDggKzYy
LDggQEAgcHJpdmF0ZToKIAogICAgIGludCBtX3N0YXJ0T2Zmc2V0OwogICAgIGludCBtX2VuZE9m
ZnNldDsKLSAgICBzaXplX3QgbV9leGVjdXRpb25Db3VudDsKICAgICBWZWN0b3I8R2FwPiBtX2dh
cHM7CisgICAgVUNQVVJlZ2lzdGVyIG1fZXhlY3V0aW9uQ291bnQ7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0hhc093
blByb3BlcnR5Q2FjaGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0hhc093blBy
b3BlcnR5Q2FjaGUuaAppbmRleCBhZGFkYzg5YWI4NGNmMWY3Mzk2MGFhZWU2NDg1NmFkYTk3YzJi
MzgwLi4wNjEyZWI3M2EzNzRkOWMwZDQyZjFmNjE2YjliYTczZTE3NTY3Y2E1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9IYXNPd25Qcm9wZXJ0eUNhY2hlLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSGFzT3duUHJvcGVydHlDYWNoZS5oCkBA
IC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiBjbGFzcyBIYXNPd25Qcm9wZXJ0eUNh
Y2hlIHsKICAgICBzdGF0aWMgY29uc3QgdWludDMyX3Qgc2l6ZSA9IDIgKiAxMDI0OwotICAgIHN0
YXRpY19hc3NlcnQoIShzaXplICYgKHNpemUgLSAxKSksICJzaXplIHNob3VsZCBiZSBhIHBvd2Vy
IG9mIHR3by4iKTsKKyAgICBzdGF0aWNfYXNzZXJ0KGhhc09uZUJpdFNldChzaXplKSwgInNpemUg
c2hvdWxkIGJlIGEgcG93ZXIgb2YgdHdvLiIpOwogcHVibGljOgogICAgIHN0YXRpYyBjb25zdCB1
aW50MzJfdCBtYXNrID0gc2l6ZSAtIDE7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTQmlnSW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQmlnSW50LmNwcAppbmRleCBkYTUyOWQzYzY0Y2Q0NzM3NDQyYzU2ODVjY2E3Y2MzMTI2NGQ5
ZjZhLi40ZTRhNGQ5ZDA5MWVmMjIxOTU0M2NiZjBlODM0N2VmMGM5ZGFjZDM2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JpZ0ludC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQuY3BwCkBAIC0yMjksMTEgKzIyOSw4IEBA
IGlubGluZSBib29sIEpTQmlnSW50Ojppc1plcm8oKQogfQogCiAvLyBNdWx0aXBsaWVzIHt0aGlz
fSB3aXRoIHtmYWN0b3J9IGFuZCBhZGRzIHtzdW1tYW5kfSB0byB0aGUgcmVzdWx0LgotaW5saW5l
IHZvaWQgSlNCaWdJbnQ6OmlucGxhY2VNdWx0aXBseUFkZCh1aW50cHRyX3QgZmFjdG9yLCB1aW50
cHRyX3Qgc3VtbWFuZCkKK3ZvaWQgSlNCaWdJbnQ6OmlucGxhY2VNdWx0aXBseUFkZChEaWdpdCBm
YWN0b3IsIERpZ2l0IHN1bW1hbmQpCiB7Ci0gICAgU1RBVElDX0FTU0VSVChzaXplb2YoZmFjdG9y
KSA9PSBzaXplb2YoRGlnaXQpKTsKLSAgICBTVEFUSUNfQVNTRVJUKHNpemVvZihzdW1tYW5kKSA9
PSBzaXplb2YoRGlnaXQpKTsKLQogICAgIGludGVybmFsTXVsdGlwbHlBZGQodGhpcywgZmFjdG9y
LCBzdW1tYW5kLCBsZW5ndGgoKSwgdGhpcyk7CiB9CiAKQEAgLTUxMyw4ICs1MTAsOCBAQCBpbmxp
bmUgSlNCaWdJbnQ6OkRpZ2l0IEpTQmlnSW50OjpkaWdpdERpdihEaWdpdCBoaWdoLCBEaWdpdCBs
b3csIERpZ2l0IGRpdmlzb3IsCiAgICAgLy8gbGVmdCBvcGVyYW5kIi4gV2UgbWFzayB0aGUgcmln
aHQgb3BlcmFuZCBvZiB0aGUgc2hpZnQgYnkge3NoaWZ0TWFza30gKGBkaWdpdEJpdHMgLSAxYCks
IHdoaWNoIG1ha2VzIGBkaWdpdEJpdHMgLSAwYCB6ZXJvLgogICAgIC8vIFRoaXMgc2hpZnRpbmcg
cHJvZHVjZXMgYSB2YWx1ZSB3aGljaCBjb3ZlcnMgMCA8IHtzfSA8PSAoZGlnaXRCaXRzIC0gMSkg
Y2FzZXMuIHtzfSA9PSBkaWdpdEJpdHMgbmV2ZXIgaGFwcGVuIGFzIHdlIGFzc2VydGVkLgogICAg
IC8vIFNpbmNlIHtzWmVyb01hc2t9IGNsZWFycyB0aGUgdmFsdWUgaW4gdGhlIGNhc2Ugb2Yge3N9
ID09IDAsIHtzfSA9PSAwIGNhc2UgaXMgYWxzbyBjb3ZlcmVkLgotICAgIFNUQVRJQ19BU1NFUlQo
c2l6ZW9mKGludHB0cl90KSA9PSBzaXplb2YoRGlnaXQpKTsKLSAgICBEaWdpdCBzWmVyb01hc2sg
PSBzdGF0aWNfY2FzdDxEaWdpdD4oKC1zdGF0aWNfY2FzdDxpbnRwdHJfdD4ocykpID4+IChkaWdp
dEJpdHMgLSAxKSk7CisgICAgU1RBVElDX0FTU0VSVChzaXplb2YoQ1BVUmVnaXN0ZXIpID09IHNp
emVvZihEaWdpdCkpOworICAgIERpZ2l0IHNaZXJvTWFzayA9IHN0YXRpY19jYXN0PERpZ2l0Pigo
LXN0YXRpY19jYXN0PENQVVJlZ2lzdGVyPihzKSkgPj4gKGRpZ2l0Qml0cyAtIDEpKTsKICAgICBz
dGF0aWMgY29uc3RleHByIHVuc2lnbmVkIHNoaWZ0TWFzayA9IGRpZ2l0Qml0cyAtIDE7CiAgICAg
RGlnaXQgdW4zMiA9IChoaWdoIDw8IHMpIHwgKChsb3cgPj4gKChkaWdpdEJpdHMgLSBzKSAmIHNo
aWZ0TWFzaykpICYgc1plcm9NYXNrKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNCaWdJbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
QmlnSW50LmgKaW5kZXggNWI3ZGI3NDBmZTY3NzNkZDVlZDZjNjA3Y2IzNzllMDc2NzViOWRiNS4u
OTgzODY2NjBkNGIzNzA1OThmNjU3NjQ4ZDU1ZGFkMTQ3N2VkODlkZiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0JpZ0ludC5oCkBAIC0yNSw2ICsyNSw3IEBACiAKICNwcmFnbWEg
b25jZQogCisjaW5jbHVkZSAiQ1BVLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uSGVscGVycy5oIgog
I2luY2x1ZGUgIkpTT2JqZWN0LmgiCiAjaW5jbHVkZSAiUGFyc2VJbnQuaCIKQEAgLTExNSw3ICsx
MTYsNyBAQCBwdWJsaWM6CiAgICAgCiBwcml2YXRlOgogCi0gICAgdXNpbmcgRGlnaXQgPSB1aW50
cHRyX3Q7CisgICAgdXNpbmcgRGlnaXQgPSBVQ1BVUmVnaXN0ZXI7CiAgICAgc3RhdGljIGNvbnN0
ZXhwciB1bnNpZ25lZCBiaXRzUGVyQnl0ZSA9IDg7CiAgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNp
Z25lZCBkaWdpdEJpdHMgPSBzaXplb2YoRGlnaXQpICogYml0c1BlckJ5dGU7CiAgICAgc3RhdGlj
IGNvbnN0ZXhwciB1bnNpZ25lZCBoYWxmRGlnaXRCaXRzID0gZGlnaXRCaXRzIC8gMjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCmluZGV4IDU2OGIyNjY4Mzg5NTNlZGZi
MGM2MWQwM2RhYzIxNjBhMTg3NDZjN2MuLjg2YjRjOGZiZGQzMTY5OTYwOTcwMjEwZWNkYzEyNjNm
OTQ3Yzc5ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2Jq
ZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaApAQCAt
MTA3NCw3ICsxMDc0LDcgQEAgcHJpdmF0ZToKICAgICBQcm9wZXJ0eU9mZnNldCBwcmVwYXJlVG9Q
dXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbihWTSYsIFByb3BlcnR5TmFtZSwgdW5zaWduZWQgYXR0
cmlidXRlcywgU3RydWN0dXJlSUQsIFN0cnVjdHVyZSopOwogCiAgICAgQXV4aWxpYXJ5QmFycmll
cjxCdXR0ZXJmbHkqPiBtX2J1dHRlcmZseTsKLSNpZiBVU0UoSlNWQUxVRTMyXzY0KQorI2lmIENQ
VShBRERSRVNTMzIpCiAgICAgdW5zaWduZWQgbV8zMkJpdFBhZGRpbmc7CiAjZW5kaWYKIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHAuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwLmNwcAppbmRleCA0N2QwZDMyMTgzMDg1
Zjg4ZWM5MTkwOWRhMmVlYTM0MDdhZTU2YTllLi5lMWJhMDljNjNhM2JiZDllMGRjODFhNGM4YTY0
YmYzZmVmNTczYzMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9S
ZWdFeHAuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5jcHAK
QEAgLTQ5NCwxMCArNDk0LDEwIEBAIHZvaWQgUmVnRXhwOjptYXRjaENvbXBhcmVXaXRoSW50ZXJw
cmV0ZXIoY29uc3QgU3RyaW5nJiBzLCBpbnQgc3RhcnRPZmZzZXQsIGludCoKICAgICAgICAgICAg
IHNucHJpbnRmKGppdDhCaXRNYXRjaEFkZHIsIGppdEFkZHJTaXplLCAiZmFsbGJhY2sgICAgIik7
CiAgICAgICAgICAgICBzbnByaW50ZihqaXQxNkJpdE1hdGNoQWRkciwgaml0QWRkclNpemUsICIt
LS0tICAgICAgIik7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzbnByaW50ZihqaXQ4
Qml0TWF0Y2hPbmx5QWRkciwgaml0QWRkclNpemUsICIweCUwMTRseCIsIHJlaW50ZXJwcmV0X2Nh
c3Q8dW5zaWduZWQgbG9uZyBpbnQ+KGNvZGVCbG9jay5nZXQ4Qml0TWF0Y2hPbmx5QWRkcigpKSk7
Ci0gICAgICAgICAgICBzbnByaW50ZihqaXQxNkJpdE1hdGNoT25seUFkZHIsIGppdEFkZHJTaXpl
LCAiMHglMDE0bHgiLCByZWludGVycHJldF9jYXN0PHVuc2lnbmVkIGxvbmcgaW50Pihjb2RlQmxv
Y2suZ2V0MTZCaXRNYXRjaE9ubHlBZGRyKCkpKTsKLSAgICAgICAgICAgIHNucHJpbnRmKGppdDhC
aXRNYXRjaEFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0bHgiLCByZWludGVycHJldF9jYXN0PHVu
c2lnbmVkIGxvbmcgaW50Pihjb2RlQmxvY2suZ2V0OEJpdE1hdGNoQWRkcigpKSk7Ci0gICAgICAg
ICAgICBzbnByaW50ZihqaXQxNkJpdE1hdGNoQWRkciwgaml0QWRkclNpemUsICIweCUwMTRseCIs
IHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQgbG9uZyBpbnQ+KGNvZGVCbG9jay5nZXQxNkJpdE1h
dGNoQWRkcigpKSk7CisgICAgICAgICAgICBzbnByaW50ZihqaXQ4Qml0TWF0Y2hPbmx5QWRkciwg
aml0QWRkclNpemUsICIweCUwMTRseCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb2Rl
QmxvY2suZ2V0OEJpdE1hdGNoT25seUFkZHIoKSkpOworICAgICAgICAgICAgc25wcmludGYoaml0
MTZCaXRNYXRjaE9ubHlBZGRyLCBqaXRBZGRyU2l6ZSwgIjB4JTAxNGx4IiwgcmVpbnRlcnByZXRf
Y2FzdDx1aW50cHRyX3Q+KGNvZGVCbG9jay5nZXQxNkJpdE1hdGNoT25seUFkZHIoKSkpOworICAg
ICAgICAgICAgc25wcmludGYoaml0OEJpdE1hdGNoQWRkciwgaml0QWRkclNpemUsICIweCUwMTRs
eCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb2RlQmxvY2suZ2V0OEJpdE1hdGNoQWRk
cigpKSk7CisgICAgICAgICAgICBzbnByaW50ZihqaXQxNkJpdE1hdGNoQWRkciwgaml0QWRkclNp
emUsICIweCUwMTRseCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb2RlQmxvY2suZ2V0
MTZCaXRNYXRjaEFkZHIoKSkpOwogICAgICAgICB9CiAjZWxzZQogICAgICAgICBjb25zdCBjaGFy
KiBqaXQ4Qml0TWF0Y2hPbmx5QWRkciA9ICJKSVQgT2ZmIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5jcHAKaW5kZXggZmYwN2RiYWMzMTQw
MmRmZWRkNmMwMjMxODk0MDc2M2IyNzllNGZkOS4uMjg0OGFlMThiNDcxYjJkOThiMGI5MDVlZDAy
NjFkOWRlM2Q5YTFjNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U2FtcGxpbmdQcm9maWxlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U2FtcGxpbmdQcm9maWxlci5jcHAKQEAgLTIyOCw3ICsyMjgsNyBAQCBwdWJsaWM6CiAKICAgICAg
ICAgICAgIGlmIChpc0NGcmFtZSgpKSB7CiAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQo
IUxMSW50Ojppc0xMSW50UEMoZnJhbWUoKS0+Y2FsbGVyRnJhbWUpKTsKLSAgICAgICAgICAgICAg
ICBzdGFja1RyYWNlW21fZGVwdGhdID0gVW5wcm9jZXNzZWRTdGFja0ZyYW1lKGZyYW1lKCktPnBj
KTsKKyAgICAgICAgICAgICAgICBzdGFja1RyYWNlW21fZGVwdGhdID0gVW5wcm9jZXNzZWRTdGFj
a0ZyYW1lKGZyYW1lKCktPnJldHVyblBDKTsKICAgICAgICAgICAgICAgICBtX2RlcHRoKys7CiAg
ICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICByZWNvcmRKU0ZyYW1lKHN0YWNrVHJh
Y2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL1NpZ2lsbENyYXNo
QW5hbHl6ZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL1NpZ2lsbENyYXNoQW5h
bHl6ZXIuY3BwCmluZGV4IGVmNzUzZjU5MGEzNTgyODM0YWI5ODdiZWE4YTliYWYyZDMxMDA5MTAu
LjQxNjVlYTRhZmQ5MTNjZTJkZjE4MDMwZGJmZjg4NjIwNDIzNTNlYzAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9TaWdpbGxDcmFzaEFuYWx5emVyLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvU2lnaWxsQ3Jhc2hBbmFseXplci5jcHAKQEAgLTMy
MSwxMCArMzIxLDEwIEBAIHZvaWQgU2lnaWxsQ3Jhc2hBbmFseXplcjo6ZHVtcENvZGVCbG9jayhD
b2RlQmxvY2sqIGNvZGVCbG9jaywgdm9pZCogbWFjaGluZVBDKQogICAgIHdoaWxlIChieXRlQ291
bnQpIHsKICAgICAgICAgY2hhciBwY1N0cmluZ1syNF07CiAgICAgICAgIGlmIChjdXJyZW50UEMg
PT0gbWFjaGluZVBDKSB7Ci0gICAgICAgICAgICBzbnByaW50ZihwY1N0cmluZywgc2l6ZW9mKHBj
U3RyaW5nKSwgIiogMHglbHgiLCByZWludGVycHJldF9jYXN0PHVuc2lnbmVkIGxvbmc+KGN1cnJl
bnRQQykpOworICAgICAgICAgICAgc25wcmludGYocGNTdHJpbmcsIHNpemVvZihwY1N0cmluZyks
ICIqIDB4JWx4IiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGN1cnJlbnRQQykpOwogICAg
ICAgICAgICAgbG9nKCIlMjBzOiAlcyAgICA8PT09PT09PT09PT09PT09PT09PT09PT09PSIsIHBj
U3RyaW5nLCBtX2FybTY0T3Bjb2RlLmRpc2Fzc2VtYmxlKGN1cnJlbnRQQykpOwogICAgICAgICB9
IGVsc2UgewotICAgICAgICAgICAgc25wcmludGYocGNTdHJpbmcsIHNpemVvZihwY1N0cmluZyks
ICIweCVseCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQgbG9uZz4oY3VycmVudFBDKSk7Cisg
ICAgICAgICAgICBzbnByaW50ZihwY1N0cmluZywgc2l6ZW9mKHBjU3RyaW5nKSwgIjB4JWx4Iiwg
cmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGN1cnJlbnRQQykpOwogICAgICAgICAgICAgbG9n
KCIlMjBzOiAlcyIsIHBjU3RyaW5nLCBtX2FybTY0T3Bjb2RlLmRpc2Fzc2VtYmxlKGN1cnJlbnRQ
QykpOwogICAgICAgICB9CiAgICAgICAgIGN1cnJlbnRQQysrOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvUGxhdGZvcm0uaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKaW5kZXggZjEz
YWY5ZGIyOTk3MGEyZTBhYmZhNWI4MGE3OTgyZTkyYmVlYzQ2Yy4uMzdkM2E3MTA4MjZjMDJmOGYx
MzY0ZTFkNzkwNTE2ZDUxYjgzNmE3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZv
cm0uaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCkBAIC03MzEsNyArNzMxLDcgQEAK
ICNlbmRpZgogCiAjaWYgIWRlZmluZWQoVVNFX0pTVkFMVUU2NCkgJiYgIWRlZmluZWQoVVNFX0pT
VkFMVUUzMl82NCkKLSNpZiBDUFUoQUREUkVTUzY0KQorI2lmIENQVShBRERSRVNTNjQpIHx8IENQ
VShBUk02NCkKICNkZWZpbmUgVVNFX0pTVkFMVUU2NCAxCiAjZWxzZQogI2RlZmluZSBVU0VfSlNW
QUxVRTMyXzY0IDEKQEAgLTc0MCw3ICs3NDAsNyBAQAogCiAvKiBUaGUgSklUIGlzIGVuYWJsZWQg
YnkgZGVmYXVsdCBvbiBhbGwgeDg2LCB4ODYtNjQsIEFSTSAmIE1JUFMgcGxhdGZvcm1zIGV4Y2Vw
dCBBUk12N2suICovCiAjaWYgIWRlZmluZWQoRU5BQkxFX0pJVCkgXAotICAgICYmIChDUFUoWDg2
KSB8fCBDUFUoWDg2XzY0KSB8fCBDUFUoQVJNKSB8fCAoQ1BVKEFSTTY0KSAmJiAhZGVmaW5lZChf
X0lMUDMyX18pKSB8fCBDUFUoTUlQUykpIFwKKyAgICAmJiAoQ1BVKFg4NikgfHwgQ1BVKFg4Nl82
NCkgfHwgQ1BVKEFSTSkgfHwgQ1BVKEFSTTY0KSB8fCBDUFUoTUlQUykpIFwKICAgICAmJiAhQ1BV
KEFQUExFX0FSTVY3SykKICNkZWZpbmUgRU5BQkxFX0pJVCAxCiAjZW5kaWYKQEAgLTg2MCw3ICs4
NjAsNyBAQAogI2VuZGlmCiAKICNpZiAhZGVmaW5lZChFTkFCTEVfV0VCQVNTRU1CTFkpCi0jaWYg
RU5BQkxFKEIzX0pJVCkgJiYgUExBVEZPUk0oQ09DT0EpCisjaWYgRU5BQkxFKEIzX0pJVCkgJiYg
UExBVEZPUk0oQ09DT0EpICYmIENQVShBRERSRVNTNjQpCiAjZGVmaW5lIEVOQUJMRV9XRUJBU1NF
TUJMWSAxCiAjZWxzZQogI2RlZmluZSBFTkFCTEVfV0VCQVNTRU1CTFkgMAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>352426</attachid>
            <date>2018-10-15 19:44:02 -0700</date>
            <delta_ts>2018-10-15 20:26:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190273-20181015194359.patch</filename>
            <type>text/plain</type>
            <size>123508</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3MDkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
YThlOTM5MTI2ZGYzMzJhY2YxMTgxOWQ1ZDg0YjI3ZGY3ZGI0YzJiLi44NzM4YjcwOTg2ZmMyZTM5
OGZkNjE0OTdlZmUwZmNhNmM2MzUzMjYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMTIgQEAKKzIwMTgtMTAtMDMgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBs
ZS5jb20+CisKKyAgICAgICAgU3VwcG9ydCBhcm02NCBDUFVzIHdpdGggYSAzMi1iaXQgYWRkcmVz
cyBzcGFjZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTkwMjczCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGFz
c2VtYmxlci9BUk02NEFzc2VtYmxlci5oOgorICAgICAgICAoSlNDOjppc0ludCk6CisgICAgICAg
IChKU0M6OmlzNEJ5dGVBbGlnbmVkKToKKyAgICAgICAgKEpTQzo6UGFpclBvc3RJbmRleDo6UGFp
clBvc3RJbmRleCk6CisgICAgICAgIChKU0M6OlBhaXJQcmVJbmRleDo6UGFpclByZUluZGV4KToK
KyAgICAgICAgKEpTQzo6QVJNNjRBc3NlbWJsZXI6OnJlYWRQb2ludGVyKToKKyAgICAgICAgKEpT
Qzo6QVJNNjRBc3NlbWJsZXI6OnJlYWRDYWxsVGFyZ2V0KToKKyAgICAgICAgKEpTQzo6QVJNNjRB
c3NlbWJsZXI6OmNvbXB1dGVKdW1wVHlwZSk6CisgICAgICAgIChKU0M6OkFSTTY0QXNzZW1ibGVy
OjpsaW5rQ29tcGFyZUFuZEJyYW5jaCk6CisgICAgICAgIChKU0M6OkFSTTY0QXNzZW1ibGVyOjps
aW5rQ29uZGl0aW9uYWxCcmFuY2gpOgorICAgICAgICAoSlNDOjpBUk02NEFzc2VtYmxlcjo6bGlu
a1Rlc3RBbmRCcmFuY2gpOgorICAgICAgICAoSlNDOjpBUk02NEFzc2VtYmxlcjo6bG9hZFJlZ2lz
dGVyTGl0ZXJhbCk6CisgICAgICAgIChKU0M6OkFSTTY0QXNzZW1ibGVyOjpsb2FkU3RvcmVSZWdp
c3RlclBhaXJQb3N0SW5kZXgpOgorICAgICAgICAoSlNDOjpBUk02NEFzc2VtYmxlcjo6bG9hZFN0
b3JlUmVnaXN0ZXJQYWlyUHJlSW5kZXgpOgorICAgICAgICAoSlNDOjpBUk02NEFzc2VtYmxlcjo6
bG9hZFN0b3JlUmVnaXN0ZXJQYWlyT2Zmc2V0KToKKyAgICAgICAgKEpTQzo6QVJNNjRBc3NlbWJs
ZXI6OmxvYWRTdG9yZVJlZ2lzdGVyUGFpck5vblRlbXBvcmFsKToKKyAgICAgICAgKEpTQzo6aXNJ
bnQ3KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6aXNJbnQxMSk6IERlbGV0ZWQuCisgICAgICAg
ICogYXNzZW1ibGVyL0NQVS5oOgorICAgICAgICAoSlNDOjppc0FkZHJlc3M2NEJpdCk6CisgICAg
ICAgIChKU0M6OmlzQWRkcmVzczMyQml0KToKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3Nl
bWJsZXIuaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXI6OnNob3VsZEJsaW5kKToKKyAg
ICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5jcHA6CisgICAgICAgIChKU0M6
Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OmNvbGxlY3RDUFVGZWF0dXJlcyk6CisgICAgICAgICogYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJs
ZXJBUk02NDo6bG9hZCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OnN0b3Jl
KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6aXNJbkludFJhbmdlKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBhc3NlbWJsZXIvUHJpbnRlci5oOgorICAgICAgICAqIGFzc2VtYmxl
ci9Qcm9iZUNvbnRleHQuaDoKKyAgICAgICAgKEpTQzo6UHJvYmU6OkNQVVN0YXRlOjpncHIpOgor
ICAgICAgICAoSlNDOjpQcm9iZTo6Q1BVU3RhdGU6OnNwcik6CisgICAgICAgIChKU0M6OlByb2Jl
OjpDb250ZXh0OjpncHIpOgorICAgICAgICAoSlNDOjpQcm9iZTo6Q29udGV4dDo6c3ByKToKKyAg
ICAgICAgKiBiMy9CM0NvbnN0UHRyVmFsdWUuaDoKKyAgICAgICAgKiBiMy9CM1N0YWNrbWFwU3Bl
Y2lhbC5jcHA6CisgICAgICAgIChKU0M6OkIzOjpTdGFja21hcFNwZWNpYWw6OmlzQXJnVmFsaWRG
b3JSZXApOgorICAgICAgICAqIGIzL2Fpci9BaXJBcmcuaDoKKyAgICAgICAgKEpTQzo6QjM6OkFp
cjo6QXJnOjpzdGFja1Nsb3QgY29uc3QpOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpBcmc6OnNw
ZWNpYWwgY29uc3QpOgorICAgICAgICAqIGIzL2Fpci90ZXN0YWlyLmNwcDoKKyAgICAgICAgKiBi
My90ZXN0YjMuY3BwOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN0b3JlQ29uc3RhbnRQdHIpOgor
ICAgICAgICAoSlNDOjpCMzo6dGVzdEludGVycHJldGVyKToKKyAgICAgICAgKEpTQzo6QjM6OnRl
c3RBZGRTaGwzMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0TG9hZEJhc2VJbmRleFNoaWZ0MzIp
OgorICAgICAgICAqIGJpbmRpbmdzL1NjcmlwdEZ1bmN0aW9uQ2FsbC5jcHA6CisgICAgICAgIChE
ZXByZWNhdGVkOjpTY3JpcHRDYWxsQXJndW1lbnRIYW5kbGVyOjphcHBlbmRBcmd1bWVudCk6Cisg
ICAgICAgICogYmluZGluZ3MvU2NyaXB0RnVuY3Rpb25DYWxsLmg6CisgICAgICAgICogZGZnL0RG
R09TUkV4aXQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OnJlc3RvcmVDYWxsZWVTYXZlc0Zvcik6
CisgICAgICAgIChKU0M6OkRGRzo6c2F2ZUNhbGxlZVNhdmVzRm9yKToKKyAgICAgICAgKEpTQzo6
REZHOjpyZXN0b3JlQ2FsbGVlU2F2ZXNGcm9tVk1FbnRyeUZyYW1lQ2FsbGVlU2F2ZXNCdWZmZXIp
OgorICAgICAgICAoSlNDOjpERkc6OmNvcHlDYWxsZWVTYXZlc1RvVk1FbnRyeUZyYW1lQ2FsbGVl
U2F2ZXNCdWZmZXIpOgorICAgICAgICAqIGRmZy9ERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uY3Bw
OgorICAgICAgICAoSlNDOjpERkc6OnJlaWZ5SW5saW5lZENhbGxGcmFtZXMpOgorICAgICAgICAq
IGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZGlzYXNzZW1ibGVyL1VEaXM4NkRpc2Fzc2Vt
Ymxlci5jcHA6CisgICAgICAgIChKU0M6OnRyeVRvRGlzYXNzZW1ibGVXaXRoVURpczg2KToKKyAg
ICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0IzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6
Okxvd2VyREZHVG9CMzo6Y29tcGlsZVdlYWtNYXBHZXQpOgorICAgICAgICAqIGhlYXAvTWFjaGlu
ZVN0YWNrTWFya2VyLmNwcDoKKyAgICAgICAgKEpTQzo6Y29weU1lbW9yeSk6CisgICAgICAgICog
aW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmg6CisgICAgICAgIChKU0M6OkV4ZWNTdGF0ZTo6cmV0dXJu
UEMgY29uc3QpOgorICAgICAgICAoSlNDOjpFeGVjU3RhdGU6Omhhc1JldHVyblBDIGNvbnN0KToK
KyAgICAgICAgKEpTQzo6RXhlY1N0YXRlOjpjbGVhclJldHVyblBDKToKKyAgICAgICAgKEpTQzo6
RXhlY1N0YXRlOjpyZXR1cm5QQ09mZnNldCk6CisgICAgICAgIChKU0M6OkV4ZWNTdGF0ZTo6aXNH
bG9iYWxFeGVjIGNvbnN0KToKKyAgICAgICAgKEpTQzo6RXhlY1N0YXRlOjpzZXRSZXR1cm5QQyk6
CisgICAgICAgICogaW50ZXJwcmV0ZXIvQ2FsbGVlQml0cy5oOgorICAgICAgICAoSlNDOjpDYWxs
ZWVCaXRzOjpib3hXYXNtKToKKyAgICAgICAgKEpTQzo6Q2FsbGVlQml0czo6aXNXYXNtIGNvbnN0
KToKKyAgICAgICAgKEpTQzo6Q2FsbGVlQml0czo6YXNXYXNtQ2FsbGVlIGNvbnN0KToKKyAgICAg
ICAgKiBqaXQvQXNzZW1ibHlIZWxwZXJzLmg6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVy
czo6Y2xlYXJTdGFja0ZyYW1lKToKKyAgICAgICAgKiBsbGludC9MTEludERhdGEuY3BwOgorICAg
ICAgICAoSlNDOjpMTEludDo6RGF0YTo6cGVyZm9ybUFzc2VydGlvbnMpOgorICAgICAgICAqIGxs
aW50L0xMSW50T2ZmbGluZUFzbUNvbmZpZy5oOgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50
ZXJwcmV0ZXIuYXNtOgorICAgICAgICAqIG9mZmxpbmVhc20vYXJtNjQucmI6CisgICAgICAgICog
b2ZmbGluZWFzbS9iYWNrZW5kcy5yYjoKKyAgICAgICAgKiBydW50aW1lL0Jhc2ljQmxvY2tMb2Nh
dGlvbi5jcHA6CisgICAgICAgIChKU0M6OkJhc2ljQmxvY2tMb2NhdGlvbjo6ZHVtcERhdGEgY29u
c3QpOgorICAgICAgICAoSlNDOjpCYXNpY0Jsb2NrTG9jYXRpb246OmVtaXRFeGVjdXRlQ29kZSBj
b25zdCk6CisgICAgICAgICogcnVudGltZS9CYXNpY0Jsb2NrTG9jYXRpb24uaDoKKyAgICAgICAg
KiBydW50aW1lL0hhc093blByb3BlcnR5Q2FjaGUuaDoKKyAgICAgICAgKiBydW50aW1lL0pTQmln
SW50LmNwcDoKKyAgICAgICAgKEpTQzo6SlNCaWdJbnQ6OmlucGxhY2VNdWx0aXBseUFkZCk6Cisg
ICAgICAgIChKU0M6OkpTQmlnSW50OjpkaWdpdERpdik6CisgICAgICAgICogcnVudGltZS9KU0Jp
Z0ludC5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1l
L1JlZ0V4cC5jcHA6CisgICAgICAgIChKU0M6OlJlZ0V4cDo6cHJpbnRUcmFjZURhdGEpOgorICAg
ICAgICAqIHJ1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5jcHA6CisgICAgICAgIChKU0M6OkNGcmFt
ZVdhbGtlcjo6d2Fsayk6CisgICAgICAgICogdG9vbHMvU2lnaWxsQ3Jhc2hBbmFseXplci5jcHA6
CisgICAgICAgIChKU0M6OlNpZ2lsbENyYXNoQW5hbHl6ZXI6OmR1bXBDb2RlQmxvY2spOgorCiAy
MDE4LTEwLTEyICBUYWRldSBaYWdhbGxvICA8dHphZ2FsbG9AYXBwbGUuY29tPgogCiAgICAgICAg
IEdhcmRlbmluZzogQnVpbGQgZml4IGFmdGVyIHIyMzcwODQuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGE1NGZkZGZlMzZlYTU1
OTBlMjQxYTAzNmNmNWVhYTdjNDBmYTJkYTkuLmUwY2YzNGEzOTVmZjlmNTc2ZWRlMDI0MTEyNzRj
OTU4OGE4Y2JiNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTgtMTAtMDMgIEtlaXRoIE1pbGxl
ciAgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+CisKKyAgICAgICAgU3VwcG9ydCBhcm02NCBDUFVz
IHdpdGggYSAzMi1iaXQgYWRkcmVzcyBzcGFjZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkwMjczCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvUGxhdGZvcm0uaDoKKwogMjAxOC0xMC0xMiAgQWxl
eCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEFsbG93
IGVuY29kaW5nIG9mIHNtYWxsIGVudW0gY2xhc3NlcwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCAxMTY1YTEwNzgwOTYzMjdjYmEyZTkwNjVjNGUxOWJmZGZhNTU0NjY2Li4zMzc3MzEw
ZjZmZTY1OWUzMTBjYjlhNDEzYTg1ODY3ZGI4YzNhMjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMTAyMjgsNyArMTAyMjgsNyBAQAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBs
b3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQkJc2hlbGxQYXRoID0gL2Jpbi9zaDsKLQkJCXNo
ZWxsU2NyaXB0ID0gImlmIFtbIFwiJHtBQ1RJT059XCIgPT0gXCJpbnN0YWxsaGRyc1wiIF1dOyB0
aGVuXG4gICAgZXhpdCAwXG5maVxuXG5jZCBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9EZXJpdmVk
U291cmNlcy9KYXZhU2NyaXB0Q29yZVwiXG5cbi91c3IvYmluL2VudiBydWJ5IEphdmFTY3JpcHRD
b3JlL29mZmxpbmVhc20vYXNtLnJiIFwiLUkke0JVSUxUX1BST0RVQ1RTX0RJUn0vRGVyaXZlZFNv
dXJjZXMvSmF2YVNjcmlwdENvcmVcIiBKYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVy
cHJldGVyLmFzbSBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9KU0NMTEludE9mZnNldHNFeHRyYWN0
b3JcIiBMTEludEFzc2VtYmx5LmggfHwgZXhpdCAxIjsKKwkJCXNoZWxsU2NyaXB0ID0gImlmIFtb
IFwiJHtBQ1RJT059XCIgPT0gXCJpbnN0YWxsaGRyc1wiIF1dOyB0aGVuXG4gICAgZXhpdCAwXG5m
aVxuXG5jZCBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9EZXJpdmVkU291cmNlcy9KYXZhU2NyaXB0
Q29yZVwiXG5cbi91c3IvYmluL2VudiBydWJ5IEphdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXNt
LnJiIFwiLUkke0JVSUxUX1BST0RVQ1RTX0RJUn0vRGVyaXZlZFNvdXJjZXMvSmF2YVNjcmlwdENv
cmVcIiBKYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbSBcIiR7QlVJ
TFRfUFJPRFVDVFNfRElSfS9KU0NMTEludE9mZnNldHNFeHRyYWN0b3JcIiBMTEludEFzc2VtYmx5
LmggfHwgZXhpdCAxXG4iOwogCQl9OwogCQk2NUZCM0Y2NTA5RDExRTkxMDBGNDlERUIgLyogR2Vu
ZXJhdGUgRGVyaXZlZCBTb3VyY2VzICovID0gewogCQkJaXNhID0gUEJYU2hlbGxTY3JpcHRCdWls
ZFBoYXNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk02
NEFzc2VtYmxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk02NEFzc2Vt
Ymxlci5oCmluZGV4IGRiMmM1NTc4MjZjZGJkOGJjYTExMTA2YzUxYTIyNGYzMGYyYTlmNWIuLjZi
MmQzYjFkZTE1MzRmNzFhNjI1NDhkZTMwMzE1NThkZGQxMGIyYTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNNjRBc3NlbWJsZXIuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTTY0QXNzZW1ibGVyLmgKQEAgLTI5LDYgKzI5LDcg
QEAKIAogI2luY2x1ZGUgIkFzc2VtYmxlckJ1ZmZlci5oIgogI2luY2x1ZGUgIkFzc2VtYmxlckNv
bW1vbi5oIgorI2luY2x1ZGUgIkNQVS5oIgogI2luY2x1ZGUgIkpTQ1B0clRhZy5oIgogI2luY2x1
ZGUgPGxpbWl0cy5oPgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CkBAIC01NCwxNCArNTUs
MTcgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLUFMV0FZU19JTkxJTkUgYm9vbCBpc0ludDcoaW50
MzJfdCB2YWx1ZSkKK3RlbXBsYXRlPHNpemVfdCBiaXRzLCB0eXBlbmFtZSBUeXBlPgorQUxXQVlT
X0lOTElORSBjb25zdGV4cHIgYm9vbCBpc0ludChUeXBlIHQpCiB7Ci0gICAgcmV0dXJuIHZhbHVl
ID09ICgodmFsdWUgPDwgMjUpID4+IDI1KTsKKyAgICBjb25zdGV4cHIgc2l6ZV90IHNoaWZ0ID0g
c2l6ZW9mKFR5cGUpICogQ0hBUl9CSVQgLSBiaXRzOworICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9m
KFR5cGUpICogQ0hBUl9CSVQgPiBzaGlmdCwgInNoaWZ0IGlzIGxhcmdlciB0aGFuIHRoZSBzaXpl
IG9mIHRoZSB2YWx1ZSIpOworICAgIHJldHVybiAoKHQgPDwgc2hpZnQpID4+IHNoaWZ0KSA9PSB0
OwogfQogCi1BTFdBWVNfSU5MSU5FIGJvb2wgaXNJbnQxMShpbnQzMl90IHZhbHVlKQorc3RhdGlj
IEFMV0FZU19JTkxJTkUgYm9vbCBpczRCeXRlQWxpZ25lZChjb25zdCB2b2lkKiBwdHIpCiB7Ci0g
ICAgcmV0dXJuIHZhbHVlID09ICgodmFsdWUgPDwgMjEpID4+IDIxKTsKKyAgICByZXR1cm4gIShy
ZWludGVycHJldF9jYXN0PGludHB0cl90PihwdHIpICYgMHgzKTsKIH0KIAogQUxXQVlTX0lOTElO
RSBib29sIGlzVUludDUoaW50MzJfdCB2YWx1ZSkKQEAgLTEzMCw3ICsxMzQsNyBAQCBwdWJsaWM6
CiAgICAgZXhwbGljaXQgUGFpclBvc3RJbmRleChpbnQgdmFsdWUpCiAgICAgICAgIDogbV92YWx1
ZSh2YWx1ZSkKICAgICB7Ci0gICAgICAgIEFTU0VSVChpc0ludDExKHZhbHVlKSk7CisgICAgICAg
IEFTU0VSVChpc0ludDwxMT4odmFsdWUpKTsKICAgICB9CiAKICAgICBvcGVyYXRvciBpbnQoKSB7
IHJldHVybiBtX3ZhbHVlOyB9CkBAIC0xNDQsNyArMTQ4LDcgQEAgcHVibGljOgogICAgIGV4cGxp
Y2l0IFBhaXJQcmVJbmRleChpbnQgdmFsdWUpCiAgICAgICAgIDogbV92YWx1ZSh2YWx1ZSkKICAg
ICB7Ci0gICAgICAgIEFTU0VSVChpc0ludDExKHZhbHVlKSk7CisgICAgICAgIEFTU0VSVChpc0lu
dDwxMT4odmFsdWUpKTsKICAgICB9CiAKICAgICBvcGVyYXRvciBpbnQoKSB7IHJldHVybiBtX3Zh
bHVlOyB9CkBAIC00NjAsOCArNDY0LDggQEAgcHVibGljOgogICAgIHByaXZhdGU6CiAgICAgICAg
IHVuaW9uIHsKICAgICAgICAgICAgIHN0cnVjdCBSZWFsVHlwZXMgewotICAgICAgICAgICAgICAg
IGludHB0cl90IG1fZnJvbSA6IDQ4OwotICAgICAgICAgICAgICAgIGludHB0cl90IG1fdG8gOiA0
ODsKKyAgICAgICAgICAgICAgICBpbnQ2NF90IG1fZnJvbTsKKyAgICAgICAgICAgICAgICBpbnQ2
NF90IG1fdG87CiAgICAgICAgICAgICAgICAgSnVtcFR5cGUgbV90eXBlIDogODsKICAgICAgICAg
ICAgICAgICBKdW1wTGlua1R5cGUgbV9saW5rVHlwZSA6IDg7CiAgICAgICAgICAgICAgICAgQ29u
ZGl0aW9uIG1fY29uZGl0aW9uIDogNDsKQEAgLTI4MDAsMTYgKzI4MDQsMTggQEAgcHVibGljOgog
ICAgICAgICBBU1NFUlRfVU5VU0VEKGV4cGVjdGVkLCBleHBlY3RlZCAmJiBzZiAmJiBvcGMgPT0g
TW92ZVdpZGVPcF9LICYmIGh3ID09IDEgJiYgcmQgPT0gcmRGaXJzdCk7CiAgICAgICAgIHJlc3Vs
dCB8PSBzdGF0aWNfY2FzdDx1aW50cHRyX3Q+KGltbTE2KSA8PCAxNjsKIAorI2lmIENQVShBRERS
RVNTNjQpCiAgICAgICAgIGV4cGVjdGVkID0gZGlzYXNzZW1ibGVNb3ZlV2lkZUltZWRpYXRlKGFk
ZHJlc3MgKyAyLCBzZiwgb3BjLCBodywgaW1tMTYsIHJkKTsKICAgICAgICAgQVNTRVJUX1VOVVNF
RChleHBlY3RlZCwgZXhwZWN0ZWQgJiYgc2YgJiYgb3BjID09IE1vdmVXaWRlT3BfSyAmJiBodyA9
PSAyICYmIHJkID09IHJkRmlyc3QpOwogICAgICAgICByZXN1bHQgfD0gc3RhdGljX2Nhc3Q8dWlu
dHB0cl90PihpbW0xNikgPDwgMzI7CisjZW5kaWYKIAogICAgICAgICByZXR1cm4gcmVpbnRlcnBy
ZXRfY2FzdDx2b2lkKj4ocmVzdWx0KTsKICAgICB9CiAKICAgICBzdGF0aWMgdm9pZCogcmVhZENh
bGxUYXJnZXQodm9pZCogZnJvbSkKICAgICB7Ci0gICAgICAgIHJldHVybiByZWFkUG9pbnRlcihy
ZWludGVycHJldF9jYXN0PGludCo+KGZyb20pIC0gNCk7CisgICAgICAgIHJldHVybiByZWFkUG9p
bnRlcihyZWludGVycHJldF9jYXN0PGludCo+KGZyb20pIC0gKGlzQWRkcmVzczY0Qml0KCkgPyA0
IDogMykpOwogICAgIH0KIAogICAgIC8vIFRoZSBzdGF0aWMgcmVsaW5rLCByZXBhdGNoLCBhbmQg
cmVwbGFjZSBtZXRob2RzIGNhbiB1c2UgY2FuCkBAIC0yOTI2LDMxICsyOTMyLDMxIEBAIHB1Ymxp
YzoKICAgICAgICAgY2FzZSBKdW1wTm9Db25kaXRpb246CiAgICAgICAgICAgICByZXR1cm4gTGlu
a0p1bXBOb0NvbmRpdGlvbjsKICAgICAgICAgY2FzZSBKdW1wQ29uZGl0aW9uOiB7Ci0gICAgICAg
ICAgICBBU1NFUlQoIShyZWludGVycHJldF9jYXN0PGludHB0cl90Pihmcm9tKSAmIDB4MykpOwot
ICAgICAgICAgICAgQVNTRVJUKCEocmVpbnRlcnByZXRfY2FzdDxpbnRwdHJfdD4odG8pICYgMHgz
KSk7CisgICAgICAgICAgICBBU1NFUlQoaXM0Qnl0ZUFsaWduZWQoZnJvbSkpOworICAgICAgICAg
ICAgQVNTRVJUKGlzNEJ5dGVBbGlnbmVkKHRvKSk7CiAgICAgICAgICAgICBpbnRwdHJfdCByZWxh
dGl2ZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KHRvKSAtIChyZWludGVycHJldF9jYXN0
PGludHB0cl90Pihmcm9tKSk7CiAKLSAgICAgICAgICAgIGlmICgoKHJlbGF0aXZlIDw8IDQzKSA+
PiA0MykgPT0gcmVsYXRpdmUpCisgICAgICAgICAgICBpZiAoaXNJbnQ8MjE+KHJlbGF0aXZlKSkK
ICAgICAgICAgICAgICAgICByZXR1cm4gTGlua0p1bXBDb25kaXRpb25EaXJlY3Q7CiAKICAgICAg
ICAgICAgIHJldHVybiBMaW5rSnVtcENvbmRpdGlvbjsKICAgICAgICAgICAgIH0KICAgICAgICAg
Y2FzZSBKdW1wQ29tcGFyZUFuZEJyYW5jaDogIHsKLSAgICAgICAgICAgIEFTU0VSVCghKHJlaW50
ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KGZyb20pICYgMHgzKSk7Ci0gICAgICAgICAgICBBU1NFUlQo
IShyZWludGVycHJldF9jYXN0PGludHB0cl90Pih0bykgJiAweDMpKTsKKyAgICAgICAgICAgIEFT
U0VSVChpczRCeXRlQWxpZ25lZChmcm9tKSk7CisgICAgICAgICAgICBBU1NFUlQoaXM0Qnl0ZUFs
aWduZWQodG8pKTsKICAgICAgICAgICAgIGludHB0cl90IHJlbGF0aXZlID0gcmVpbnRlcnByZXRf
Y2FzdDxpbnRwdHJfdD4odG8pIC0gKHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KGZyb20pKTsK
IAotICAgICAgICAgICAgaWYgKCgocmVsYXRpdmUgPDwgNDMpID4+IDQzKSA9PSByZWxhdGl2ZSkK
KyAgICAgICAgICAgIGlmIChpc0ludDwyMT4ocmVsYXRpdmUpKQogICAgICAgICAgICAgICAgIHJl
dHVybiBMaW5rSnVtcENvbXBhcmVBbmRCcmFuY2hEaXJlY3Q7CiAKICAgICAgICAgICAgIHJldHVy
biBMaW5rSnVtcENvbXBhcmVBbmRCcmFuY2g7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBKdW1w
VGVzdEJpdDogICB7Ci0gICAgICAgICAgICBBU1NFUlQoIShyZWludGVycHJldF9jYXN0PGludHB0
cl90Pihmcm9tKSAmIDB4MykpOwotICAgICAgICAgICAgQVNTRVJUKCEocmVpbnRlcnByZXRfY2Fz
dDxpbnRwdHJfdD4odG8pICYgMHgzKSk7CisgICAgICAgICAgICBBU1NFUlQoaXM0Qnl0ZUFsaWdu
ZWQoZnJvbSkpOworICAgICAgICAgICAgQVNTRVJUKGlzNEJ5dGVBbGlnbmVkKHRvKSk7CiAgICAg
ICAgICAgICBpbnRwdHJfdCByZWxhdGl2ZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KHRv
KSAtIChyZWludGVycHJldF9jYXN0PGludHB0cl90Pihmcm9tKSk7CiAKLSAgICAgICAgICAgIGlm
ICgoKHJlbGF0aXZlIDw8IDUwKSA+PiA1MCkgPT0gcmVsYXRpdmUpCisgICAgICAgICAgICBpZiAo
aXNJbnQ8MTQ+KHJlbGF0aXZlKSkKICAgICAgICAgICAgICAgICByZXR1cm4gTGlua0p1bXBUZXN0
Qml0RGlyZWN0OwogCiAgICAgICAgICAgICByZXR1cm4gTGlua0p1bXBUZXN0Qml0OwpAQCAtMzA2
OCw5ICszMDc0LDkgQEAgcHJvdGVjdGVkOgogICAgICAgICBBU1NFUlQoIShyZWludGVycHJldF9j
YXN0PGludHB0cl90Pihmcm9tKSAmIDMpKTsKICAgICAgICAgQVNTRVJUKCEocmVpbnRlcnByZXRf
Y2FzdDxpbnRwdHJfdD4odG8pICYgMykpOwogICAgICAgICBpbnRwdHJfdCBvZmZzZXQgPSAocmVp
bnRlcnByZXRfY2FzdDxpbnRwdHJfdD4odG8pIC0gcmVpbnRlcnByZXRfY2FzdDxpbnRwdHJfdD4o
ZnJvbUluc3RydWN0aW9uKSkgPj4gMjsKLSAgICAgICAgQVNTRVJUKCgob2Zmc2V0IDw8IDM4KSA+
PiAzOCkgPT0gb2Zmc2V0KTsKKyAgICAgICAgQVNTRVJUKGlzSW50PDI2PihvZmZzZXQpKTsKIAot
ICAgICAgICBib29sIHVzZURpcmVjdCA9ICgob2Zmc2V0IDw8IDQ1KSA+PiA0NSkgPT0gb2Zmc2V0
OyAvLyBGaXRzIGluIDE5IGJpdHMKKyAgICAgICAgYm9vbCB1c2VEaXJlY3QgPSBpc0ludDwxOT4o
b2Zmc2V0KTsKICAgICAgICAgQVNTRVJUKCFpc0RpcmVjdCB8fCB1c2VEaXJlY3QpOwogCiAgICAg
ICAgIGlmICh1c2VEaXJlY3QgfHwgaXNEaXJlY3QpIHsKQEAgLTMwOTYsOSArMzEwMiw5IEBAIHBy
b3RlY3RlZDoKICAgICAgICAgQVNTRVJUKCEocmVpbnRlcnByZXRfY2FzdDxpbnRwdHJfdD4oZnJv
bSkgJiAzKSk7CiAgICAgICAgIEFTU0VSVCghKHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KHRv
KSAmIDMpKTsKICAgICAgICAgaW50cHRyX3Qgb2Zmc2V0ID0gKHJlaW50ZXJwcmV0X2Nhc3Q8aW50
cHRyX3Q+KHRvKSAtIHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KGZyb21JbnN0cnVjdGlvbikp
ID4+IDI7Ci0gICAgICAgIEFTU0VSVCgoKG9mZnNldCA8PCAzOCkgPj4gMzgpID09IG9mZnNldCk7
CisgICAgICAgIEFTU0VSVChpc0ludDwyNj4ob2Zmc2V0KSk7CiAKLSAgICAgICAgYm9vbCB1c2VE
aXJlY3QgPSAoKG9mZnNldCA8PCA0NSkgPj4gNDUpID09IG9mZnNldDsgLy8gRml0cyBpbiAxOSBi
aXRzCisgICAgICAgIGJvb2wgdXNlRGlyZWN0ID0gaXNJbnQ8MTk+KG9mZnNldCk7CiAgICAgICAg
IEFTU0VSVCghaXNEaXJlY3QgfHwgdXNlRGlyZWN0KTsKIAogICAgICAgICBpZiAodXNlRGlyZWN0
IHx8IGlzRGlyZWN0KSB7CkBAIC0zMTI1LDkgKzMxMzEsOSBAQCBwcm90ZWN0ZWQ6CiAgICAgICAg
IEFTU0VSVCghKHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KHRvKSAmIDMpKTsKICAgICAgICAg
aW50cHRyX3Qgb2Zmc2V0ID0gKHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KHRvKSAtIHJlaW50
ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KGZyb21JbnN0cnVjdGlvbikpID4+IDI7CiAgICAgICAgIEFT
U0VSVChzdGF0aWNfY2FzdDxpbnQ+KG9mZnNldCkgPT0gb2Zmc2V0KTsKLSAgICAgICAgQVNTRVJU
KCgob2Zmc2V0IDw8IDM4KSA+PiAzOCkgPT0gb2Zmc2V0KTsKKyAgICAgICAgQVNTRVJUKGlzSW50
PDI2PihvZmZzZXQpKTsKIAotICAgICAgICBib29sIHVzZURpcmVjdCA9ICgob2Zmc2V0IDw8IDUw
KSA+PiA1MCkgPT0gb2Zmc2V0OyAvLyBGaXRzIGluIDE0IGJpdHMKKyAgICAgICAgYm9vbCB1c2VE
aXJlY3QgPSBpc0ludDwxND4ob2Zmc2V0KTsKICAgICAgICAgQVNTRVJUKCFpc0RpcmVjdCB8fCB1
c2VEaXJlY3QpOwogCiAgICAgICAgIGlmICh1c2VEaXJlY3QgfHwgaXNEaXJlY3QpIHsKQEAgLTM1
MDYsNyArMzUxMiw3IEBAIHByb3RlY3RlZDoKICAgICAvLyAnVicgbWVhbnMgdmVjdG9yCiAgICAg
QUxXQVlTX0lOTElORSBzdGF0aWMgaW50IGxvYWRSZWdpc3RlckxpdGVyYWwoTGRyTGl0ZXJhbE9w
IG9wYywgYm9vbCBWLCBpbnQgaW1tMTksIEZQUmVnaXN0ZXJJRCBydCkKICAgICB7Ci0gICAgICAg
IEFTU0VSVCgoKGltbTE5IDw8IDEzKSA+PiAxMykgPT0gaW1tMTkpOworICAgICAgICBBU1NFUlQo
aXNJbnQ8MTk+KGltbTE5KSk7CiAgICAgICAgIHJldHVybiAoMHgxODAwMDAwMCB8IG9wYyA8PCAz
MCB8IFYgPDwgMjYgfCAoaW1tMTkgJiAweDdmZmZmKSA8PCA1IHwgcnQpOwogICAgIH0KIApAQCAt
MzUzNyw3ICszNTQzLDcgQEAgcHJvdGVjdGVkOgogICAgICAgICBBU1NFUlQoViB8fCAoc2l6ZSAh
PSBNZW1QYWlyT3BfTG9hZFNpZ25lZF8zMikgfHwgKG9wYyA9PSBNZW1PcF9MT0FEKSk7IC8vIFRo
ZXJlIGlzbid0IGFuIGludGVnZXIgc3RvcmUgc2lnbmVkLgogICAgICAgICB1bnNpZ25lZCBpbW1l
ZFNoaWZ0QW1vdW50ID0gbWVtUGFpck9mZnNldFNoaWZ0KFYsIHNpemUpOwogICAgICAgICBpbnQg
aW1tNyA9IGltbWVkaWF0ZSA+PiBpbW1lZFNoaWZ0QW1vdW50OwotICAgICAgICBBU1NFUlQoKGlt
bTcgPDwgaW1tZWRTaGlmdEFtb3VudCkgPT0gaW1tZWRpYXRlICYmIGlzSW50NyhpbW03KSk7Cisg
ICAgICAgIEFTU0VSVCgoaW1tNyA8PCBpbW1lZFNoaWZ0QW1vdW50KSA9PSBpbW1lZGlhdGUgJiYg
aXNJbnQ8Nz4oaW1tNykpOwogICAgICAgICByZXR1cm4gKDB4Mjg4MDAwMDAgfCBzaXplIDw8IDMw
IHwgViA8PCAyNiB8IG9wYyA8PCAyMiB8IChpbW03ICYgMHg3ZikgPDwgMTUgfCBydDIgPDwgMTAg
fCB4T3JTcChybikgPDwgNSB8IHJ0KTsKICAgICB9CiAKQEAgLTM1NjgsNyArMzU3NCw3IEBAIHBy
b3RlY3RlZDoKICAgICAgICAgQVNTRVJUKFYgfHwgKHNpemUgIT0gTWVtUGFpck9wX0xvYWRTaWdu
ZWRfMzIpIHx8IChvcGMgPT0gTWVtT3BfTE9BRCkpOyAvLyBUaGVyZSBpc24ndCBhbiBpbnRlZ2Vy
IHN0b3JlIHNpZ25lZC4KICAgICAgICAgdW5zaWduZWQgaW1tZWRTaGlmdEFtb3VudCA9IG1lbVBh
aXJPZmZzZXRTaGlmdChWLCBzaXplKTsKICAgICAgICAgaW50IGltbTcgPSBpbW1lZGlhdGUgPj4g
aW1tZWRTaGlmdEFtb3VudDsKLSAgICAgICAgQVNTRVJUKChpbW03IDw8IGltbWVkU2hpZnRBbW91
bnQpID09IGltbWVkaWF0ZSAmJiBpc0ludDcoaW1tNykpOworICAgICAgICBBU1NFUlQoKGltbTcg
PDwgaW1tZWRTaGlmdEFtb3VudCkgPT0gaW1tZWRpYXRlICYmIGlzSW50PDc+KGltbTcpKTsKICAg
ICAgICAgcmV0dXJuICgweDI5ODAwMDAwIHwgc2l6ZSA8PCAzMCB8IFYgPDwgMjYgfCBvcGMgPDwg
MjIgfCAoaW1tNyAmIDB4N2YpIDw8IDE1IHwgcnQyIDw8IDEwIHwgeE9yU3Aocm4pIDw8IDUgfCBy
dCk7CiAgICAgfQogCkBAIC0zNTg1LDcgKzM1OTEsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIEFT
U0VSVChWIHx8IChzaXplICE9IE1lbVBhaXJPcF9Mb2FkU2lnbmVkXzMyKSB8fCAob3BjID09IE1l
bU9wX0xPQUQpKTsgLy8gVGhlcmUgaXNuJ3QgYW4gaW50ZWdlciBzdG9yZSBzaWduZWQuCiAgICAg
ICAgIHVuc2lnbmVkIGltbWVkU2hpZnRBbW91bnQgPSBtZW1QYWlyT2Zmc2V0U2hpZnQoViwgc2l6
ZSk7CiAgICAgICAgIGludCBpbW03ID0gaW1tZWRpYXRlID4+IGltbWVkU2hpZnRBbW91bnQ7Ci0g
ICAgICAgIEFTU0VSVCgoaW1tNyA8PCBpbW1lZFNoaWZ0QW1vdW50KSA9PSBpbW1lZGlhdGUgJiYg
aXNJbnQ3KGltbTcpKTsKKyAgICAgICAgQVNTRVJUKChpbW03IDw8IGltbWVkU2hpZnRBbW91bnQp
ID09IGltbWVkaWF0ZSAmJiBpc0ludDw3PihpbW03KSk7CiAgICAgICAgIHJldHVybiAoMHgyOTAw
MDAwMCB8IHNpemUgPDwgMzAgfCBWIDw8IDI2IHwgb3BjIDw8IDIyIHwgKGltbTcgJiAweDdmKSA8
PCAxNSB8IHJ0MiA8PCAxMCB8IHhPclNwKHJuKSA8PCA1IHwgcnQpOwogICAgIH0KIApAQCAtMzYw
Miw3ICszNjA4LDcgQEAgcHJvdGVjdGVkOgogICAgICAgICBBU1NFUlQoViB8fCAoc2l6ZSAhPSBN
ZW1QYWlyT3BfTG9hZFNpZ25lZF8zMikgfHwgKG9wYyA9PSBNZW1PcF9MT0FEKSk7IC8vIFRoZXJl
IGlzbid0IGFuIGludGVnZXIgc3RvcmUgc2lnbmVkLgogICAgICAgICB1bnNpZ25lZCBpbW1lZFNo
aWZ0QW1vdW50ID0gbWVtUGFpck9mZnNldFNoaWZ0KFYsIHNpemUpOwogICAgICAgICBpbnQgaW1t
NyA9IGltbWVkaWF0ZSA+PiBpbW1lZFNoaWZ0QW1vdW50OwotICAgICAgICBBU1NFUlQoKGltbTcg
PDwgaW1tZWRTaGlmdEFtb3VudCkgPT0gaW1tZWRpYXRlICYmIGlzSW50NyhpbW03KSk7CisgICAg
ICAgIEFTU0VSVCgoaW1tNyA8PCBpbW1lZFNoaWZ0QW1vdW50KSA9PSBpbW1lZGlhdGUgJiYgaXNJ
bnQ8Nz4oaW1tNykpOwogICAgICAgICByZXR1cm4gKDB4MjgwMDAwMDAgfCBzaXplIDw8IDMwIHwg
ViA8PCAyNiB8IG9wYyA8PCAyMiB8IChpbW03ICYgMHg3ZikgPDwgMTUgfCBydDIgPDwgMTAgfCB4
T3JTcChybikgPDwgNSB8IHJ0KTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9hc3NlbWJsZXIvQ1BVLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L0NQVS5oCmluZGV4IGMxNmYwZDg1MGMzZDhiM2U2YTY5NmNjZTBhOTY4Y2MzMmNkMWFlNzMuLjYx
Nzk5M2Y0ZGRiY2ZhYjEyY2QwMmRiZWE5YjJhNjJlYjQ4MWIxN2IgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQ1BVLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci9DUFUuaApAQCAtMjksNiArMjksMTQgQEAKIAogbmFtZXNwYWNlIEpTQyB7
CiAKKyNpZiBVU0UoSlNWQUxVRTY0KQordXNpbmcgQ1BVUmVnaXN0ZXIgPSBpbnQ2NF90OwordXNp
bmcgVUNQVVJlZ2lzdGVyID0gdWludDY0X3Q7CisjZWxzZQordXNpbmcgQ1BVUmVnaXN0ZXIgPSBp
bnQzMl90OwordXNpbmcgVUNQVVJlZ2lzdGVyID0gdWludDMyX3Q7CisjZW5kaWYKKwogY29uc3Rl
eHByIGJvb2wgaXNBUk12N0lESVZTdXBwb3J0ZWQoKQogewogI2lmIEhBVkUoQVJNX0lESVZfSU5T
VFJVQ1RJT05TKQpAQCAtNzksNiArODcsMTYgQEAgY29uc3RleHByIGJvb2wgaXMzMkJpdCgpCiAg
ICAgcmV0dXJuICFpczY0Qml0KCk7CiB9CiAKK2NvbnN0ZXhwciBib29sIGlzQWRkcmVzczY0Qml0
KCkKK3sKKyAgICByZXR1cm4gc2l6ZW9mKHZvaWQqKSA9PSA4OworfQorCitjb25zdGV4cHIgYm9v
bCBpc0FkZHJlc3MzMkJpdCgpCit7CisgICAgcmV0dXJuICFpc0FkZHJlc3M2NEJpdCgpOworfQor
CiBjb25zdGV4cHIgYm9vbCBpc01JUFMoKQogewogI2lmIENQVShNSVBTKQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlci5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlci5oCmluZGV4IGU4OWNiMTQ1
NDBiMmFkNGNlYjAyMmVjYzI1NWVmODk4ZGRlZWQ2ZjYuLmNkMWI1NDU4MzI1MmE2ODA5ZmQ1NmZm
MDlkOGFmMzU4NmNkNTk0MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvTWFjcm9Bc3NlbWJsZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyLmgKQEAgLTEyNzIsNyArMTI3Miw3IEBAIHB1YmxpYzoKIAogICAg
ICAgICAvLyBGaXJzdCBvZmYgd2UnbGwgc3BlY2lhbCBjYXNlIGNvbW1vbiwgInNhZmUiIHZhbHVl
cyB0byBhdm9pZCBodXJ0aW5nCiAgICAgICAgIC8vIHBlcmZvcm1hbmNlIHRvbyBtdWNoCi0gICAg
ICAgIHVpbnRwdHJfdCB2YWx1ZSA9IGltbS5hc1RydXN0ZWRJbW1QdHIoKS5hc0ludHB0cigpOwor
ICAgICAgICB1aW50NjRfdCB2YWx1ZSA9IGltbS5hc1RydXN0ZWRJbW1QdHIoKS5hc0ludHB0cigp
OwogICAgICAgICBzd2l0Y2ggKHZhbHVlKSB7CiAgICAgICAgIGNhc2UgMHhmZmZmOgogICAgICAg
ICBjYXNlIDB4ZmZmZmZmOgpAQCAtMTI5Myw3ICsxMjkzLDcgQEAgcHVibGljOgogICAgICAgICBp
ZiAoIXNob3VsZENvbnNpZGVyQmxpbmRpbmcoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
IAotICAgICAgICByZXR1cm4gc2hvdWxkQmxpbmRQb2ludGVyRm9yU3BlY2lmaWNBcmNoKHZhbHVl
KTsKKyAgICAgICAgcmV0dXJuIHNob3VsZEJsaW5kUG9pbnRlckZvclNwZWNpZmljQXJjaChzdGF0
aWNfY2FzdDx1aW50cHRyX3Q+KHZhbHVlKSk7CiAgICAgfQogCiAgICAgdWludDhfdCBnZW5lcmF0
ZVJvdGF0aW9uU2VlZChzaXplX3Qgd2lkdGhJbkJpdHMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmNwcAppbmRleCBjMmJl
MDgzZGE3MjZlNTIzZTZkMjUyZmM2Y2M1NzEwNzdiNDUyYWMyLi5lZTE4MmNmYjQwMmJiZjAzZTdj
MjQ3YjAwMjZhMjliYjI2OWY1Y2Q1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5jcHAKQEAgLTQ4LDcgKzQ4LDEyIEBA
IHVzaW5nIG5hbWVzcGFjZSBBUk02NFJlZ2lzdGVyczsKIAogLy8gVGhlIGZvbGxvd2luZyBhcmUg
b2Zmc2V0cyBmb3IgUHJvYmU6OlN0YXRlIGZpZWxkcyBhY2Nlc3NlZAogLy8gYnkgdGhlIGN0aU1h
c21Qcm9iZVRyYW1wb2xpbmUgc3R1Yi4KKyNpZiBDUFUoQUREUkVTUzY0KQogI2RlZmluZSBQVFJf
U0laRSA4CisjZWxzZQorI2RlZmluZSBQVFJfU0laRSA0CisjZW5kaWYKKwogI2RlZmluZSBQUk9C
RV9QUk9CRV9GVU5DVElPTl9PRkZTRVQgKDAgKiBQVFJfU0laRSkKICNkZWZpbmUgUFJPQkVfQVJH
X09GRlNFVCAoMSAqIFBUUl9TSVpFKQogI2RlZmluZSBQUk9CRV9JTklUX1NUQUNLX0ZVTkNUSU9O
X09GRlNFVCAoMiAqIFBUUl9TSVpFKQpAQCAtMTMxLDggKzEzNiw4IEBAIHVzaW5nIG5hbWVzcGFj
ZSBBUk02NFJlZ2lzdGVyczsKICNkZWZpbmUgUFJPQkVfQ1BVX1EzMV9PRkZTRVQgKFBST0JFX0ZJ
UlNUX0ZQUkVHX09GRlNFVCArICgzMSAqIEZQUkVHX1NJWkUpKQogI2RlZmluZSBQUk9CRV9TSVpF
IChQUk9CRV9GSVJTVF9GUFJFR19PRkZTRVQgKyAoMzIgKiBGUFJFR19TSVpFKSkKIAotI2RlZmlu
ZSBTQVZFRF9QUk9CRV9SRVRVUk5fUENfT0ZGU0VUICAgICAgICAoUFJPQkVfU0laRSArICgwICog
UFRSX1NJWkUpKQotI2RlZmluZSBQUk9CRV9TSVpFX1BMVVNfRVhUUkFTICAgICAgICAgICAgICAo
UFJPQkVfU0laRSArICgzICogUFRSX1NJWkUpKQorI2RlZmluZSBTQVZFRF9QUk9CRV9SRVRVUk5f
UENfT0ZGU0VUICAgICAgICAoUFJPQkVfU0laRSArICgwICogR1BSRUdfU0laRSkpCisjZGVmaW5l
IFBST0JFX1NJWkVfUExVU19FWFRSQVMgICAgICAgICAgICAgIChQUk9CRV9TSVpFICsgKDMgKiBH
UFJFR19TSVpFKSkKIAogLy8gVGhlc2UgQVNTRVJUcyByZW1pbmQgeW91IHRoYXQgaWYgeW91IGNo
YW5nZSB0aGUgbGF5b3V0IG9mIFByb2JlOjpTdGF0ZSwKIC8vIHlvdSBuZWVkIHRvIGNoYW5nZSBj
dGlNYXNtUHJvYmVUcmFtcG9saW5lIG9mZnNldHMgYWJvdmUgdG8gbWF0Y2guCkBAIC0yMjEsNyAr
MjI2LDcgQEAgc3RhdGljX2Fzc2VydChQUk9CRV9PRkZTRVRPRihjcHUuZnByc1tBUk02NFJlZ2lz
dGVyczo6cTMxXSkgPT0gUFJPQkVfQ1BVX1EzMV9PRkYKIHN0YXRpY19hc3NlcnQoc2l6ZW9mKFBy
b2JlOjpTdGF0ZSkgPT0gUFJPQkVfU0laRSwgIlByb2JlOjpTdGF0ZSdzIHNpemUgbWF0Y2hlcyBj
dGlNYXNtUHJvYmVUcmFtcG9saW5lIik7CiAKIC8vIENvbmRpdGlvbnMgZm9yIHVzaW5nIGxkcCBh
bmQgc3RwLgotc3RhdGljX2Fzc2VydChQUk9CRV9DUFVfUENfT0ZGU0VUID09IFBST0JFX0NQVV9T
UF9PRkZTRVQgKyBQVFJfU0laRSwgIlBST0JFX0NQVV9TUF9PRkZTRVQgYW5kIFBST0JFX0NQVV9Q
Q19PRkZTRVQgbXVzdCBiZSBhZGphY2VudCIpOworc3RhdGljX2Fzc2VydChQUk9CRV9DUFVfUENf
T0ZGU0VUID09IFBST0JFX0NQVV9TUF9PRkZTRVQgKyBHUFJFR19TSVpFLCAiUFJPQkVfQ1BVX1NQ
X09GRlNFVCBhbmQgUFJPQkVfQ1BVX1BDX09GRlNFVCBtdXN0IGJlIGFkamFjZW50Iik7CiBzdGF0
aWNfYXNzZXJ0KCEoUFJPQkVfU0laRV9QTFVTX0VYVFJBUyAmIDB4ZiksICJQUk9CRV9TSVpFX1BM
VVNfRVhUUkFTIHNob3VsZCBiZSAxNiBieXRlIGFsaWduZWQiKTsgLy8gdGhlIFByb2JlOjpTdGF0
ZSBjb3B5aW5nIGNvZGUgcmVsaWVzIG9uIHRoaXMuCiAKICN1bmRlZiBQUk9CRV9PRkZTRVRPRgpA
QCAtMjI5LDIxICsyMzQsMjEgQEAgc3RhdGljX2Fzc2VydCghKFBST0JFX1NJWkVfUExVU19FWFRS
QVMgJiAweGYpLCAiUFJPQkVfU0laRV9QTFVTX0VYVFJBUyBzaG91bGQgYmUKICNkZWZpbmUgRlBS
X09GRlNFVChmcHIpIChQUk9CRV9DUFVfIyNmcHIjI19PRkZTRVQgLSBQUk9CRV9DUFVfUTBfT0ZG
U0VUKQogCiBzdHJ1Y3QgSW5jb21pbmdQcm9iZVJlY29yZCB7Ci0gICAgdWludHB0cl90IHgyNDsK
LSAgICB1aW50cHRyX3QgeDI1OwotICAgIHVpbnRwdHJfdCB4MjY7Ci0gICAgdWludHB0cl90IHgy
NzsKLSAgICB1aW50cHRyX3QgeDI4OwotICAgIHVpbnRwdHJfdCB4MzA7IC8vIGxyCisgICAgVUNQ
VVJlZ2lzdGVyIHgyNDsKKyAgICBVQ1BVUmVnaXN0ZXIgeDI1OworICAgIFVDUFVSZWdpc3RlciB4
MjY7CisgICAgVUNQVVJlZ2lzdGVyIHgyNzsKKyAgICBVQ1BVUmVnaXN0ZXIgeDI4OworICAgIFVD
UFVSZWdpc3RlciB4MzA7IC8vIGxyCiB9OwogCi0jZGVmaW5lIElOX1gyNF9PRkZTRVQgKDAgKiBQ
VFJfU0laRSkKLSNkZWZpbmUgSU5fWDI1X09GRlNFVCAoMSAqIFBUUl9TSVpFKQotI2RlZmluZSBJ
Tl9YMjZfT0ZGU0VUICgyICogUFRSX1NJWkUpCi0jZGVmaW5lIElOX1gyN19PRkZTRVQgKDMgKiBQ
VFJfU0laRSkKLSNkZWZpbmUgSU5fWDI4X09GRlNFVCAoNCAqIFBUUl9TSVpFKQotI2RlZmluZSBJ
Tl9YMzBfT0ZGU0VUICg1ICogUFRSX1NJWkUpCi0jZGVmaW5lIElOX1NJWkUgICAgICAgKDYgKiBQ
VFJfU0laRSkKKyNkZWZpbmUgSU5fWDI0X09GRlNFVCAoMCAqIEdQUkVHX1NJWkUpCisjZGVmaW5l
IElOX1gyNV9PRkZTRVQgKDEgKiBHUFJFR19TSVpFKQorI2RlZmluZSBJTl9YMjZfT0ZGU0VUICgy
ICogR1BSRUdfU0laRSkKKyNkZWZpbmUgSU5fWDI3X09GRlNFVCAoMyAqIEdQUkVHX1NJWkUpCisj
ZGVmaW5lIElOX1gyOF9PRkZTRVQgKDQgKiBHUFJFR19TSVpFKQorI2RlZmluZSBJTl9YMzBfT0ZG
U0VUICg1ICogR1BSRUdfU0laRSkKKyNkZWZpbmUgSU5fU0laRSAgICAgICAoNiAqIEdQUkVHX1NJ
WkUpCiAKIHN0YXRpY19hc3NlcnQoSU5fWDI0X09GRlNFVCA9PSBvZmZzZXRvZihJbmNvbWluZ1By
b2JlUmVjb3JkLCB4MjQpLCAiSU5fWDI0X09GRlNFVCBpcyBpbmNvcnJlY3QiKTsKIHN0YXRpY19h
c3NlcnQoSU5fWDI1X09GRlNFVCA9PSBvZmZzZXRvZihJbmNvbWluZ1Byb2JlUmVjb3JkLCB4MjUp
LCAiSU5fWDI1X09GRlNFVCBpcyBpbmNvcnJlY3QiKTsKQEAgLTI1NSwyMSArMjYwLDIxIEBAIHN0
YXRpY19hc3NlcnQoSU5fU0laRSA9PSBzaXplb2YoSW5jb21pbmdQcm9iZVJlY29yZCksICJJTl9T
SVpFIGlzIGluY29ycmVjdCIpOwogc3RhdGljX2Fzc2VydCghKHNpemVvZihJbmNvbWluZ1Byb2Jl
UmVjb3JkKSAmIDB4ZiksICJJbmNvbWluZ1Byb2JlU3RhY2sgbXVzdCBiZSAxNi1ieXRlIGFsaWdu
ZWQiKTsKIAogc3RydWN0IE91dGdvaW5nUHJvYmVSZWNvcmQgewotICAgIHVpbnRwdHJfdCBuemN2
OwotICAgIHVpbnRwdHJfdCBmcHNyOwotICAgIHVpbnRwdHJfdCB4Mjc7Ci0gICAgdWludHB0cl90
IHgyODsKLSAgICB1aW50cHRyX3QgZnA7Ci0gICAgdWludHB0cl90IGxyOworICAgIFVDUFVSZWdp
c3RlciBuemN2OworICAgIFVDUFVSZWdpc3RlciBmcHNyOworICAgIFVDUFVSZWdpc3RlciB4Mjc7
CisgICAgVUNQVVJlZ2lzdGVyIHgyODsKKyAgICBVQ1BVUmVnaXN0ZXIgZnA7CisgICAgVUNQVVJl
Z2lzdGVyIGxyOwogfTsKIAotI2RlZmluZSBPVVRfTlpDVl9PRkZTRVQgKDAgKiBQVFJfU0laRSkK
LSNkZWZpbmUgT1VUX0ZQU1JfT0ZGU0VUICgxICogUFRSX1NJWkUpCi0jZGVmaW5lIE9VVF9YMjdf
T0ZGU0VUICAoMiAqIFBUUl9TSVpFKQotI2RlZmluZSBPVVRfWDI4X09GRlNFVCAgKDMgKiBQVFJf
U0laRSkKLSNkZWZpbmUgT1VUX0ZQX09GRlNFVCAgICg0ICogUFRSX1NJWkUpCi0jZGVmaW5lIE9V
VF9MUl9PRkZTRVQgICAoNSAqIFBUUl9TSVpFKQotI2RlZmluZSBPVVRfU0laRSAgICAgICAgKDYg
KiBQVFJfU0laRSkKKyNkZWZpbmUgT1VUX05aQ1ZfT0ZGU0VUICgwICogR1BSRUdfU0laRSkKKyNk
ZWZpbmUgT1VUX0ZQU1JfT0ZGU0VUICgxICogR1BSRUdfU0laRSkKKyNkZWZpbmUgT1VUX1gyN19P
RkZTRVQgICgyICogR1BSRUdfU0laRSkKKyNkZWZpbmUgT1VUX1gyOF9PRkZTRVQgICgzICogR1BS
RUdfU0laRSkKKyNkZWZpbmUgT1VUX0ZQX09GRlNFVCAgICg0ICogR1BSRUdfU0laRSkKKyNkZWZp
bmUgT1VUX0xSX09GRlNFVCAgICg1ICogR1BSRUdfU0laRSkKKyNkZWZpbmUgT1VUX1NJWkUgICAg
ICAgICg2ICogR1BSRUdfU0laRSkKIAogc3RhdGljX2Fzc2VydChPVVRfTlpDVl9PRkZTRVQgPT0g
b2Zmc2V0b2YoT3V0Z29pbmdQcm9iZVJlY29yZCwgbnpjdiksICJPVVRfTlpDVl9PRkZTRVQgaXMg
aW5jb3JyZWN0Iik7CiBzdGF0aWNfYXNzZXJ0KE9VVF9GUFNSX09GRlNFVCA9PSBvZmZzZXRvZihP
dXRnb2luZ1Byb2JlUmVjb3JkLCBmcHNyKSwgIk9VVF9GUFNSX09GRlNFVCBpcyBpbmNvcnJlY3Qi
KTsKQEAgLTI4MSwxMiArMjg2LDEyIEBAIHN0YXRpY19hc3NlcnQoT1VUX1NJWkUgPT0gc2l6ZW9m
KE91dGdvaW5nUHJvYmVSZWNvcmQpLCAiT1VUX1NJWkUgaXMgaW5jb3JyZWN0Iik7CiBzdGF0aWNf
YXNzZXJ0KCEoc2l6ZW9mKE91dGdvaW5nUHJvYmVSZWNvcmQpICYgMHhmKSwgIk91dGdvaW5nUHJv
YmVTdGFjayBtdXN0IGJlIDE2LWJ5dGUgYWxpZ25lZCIpOwogCiBzdHJ1Y3QgTFJSZXN0b3JhdGlv
blJlY29yZCB7Ci0gICAgdWludHB0cl90IGxyOwotICAgIHVpbnRwdHJfdCB1bnVzZWREdW1teVRv
RW5zdXJlU2l6ZUlzMTZCeXRlQWxpZ25lZDsKKyAgICBVQ1BVUmVnaXN0ZXIgbHI7CisgICAgVUNQ
VVJlZ2lzdGVyIHVudXNlZER1bW15VG9FbnN1cmVTaXplSXMxNkJ5dGVBbGlnbmVkOwogfTsKIAot
I2RlZmluZSBMUl9SRVNUT1JBVElPTl9MUl9PRkZTRVQgKDAgKiBQVFJfU0laRSkKLSNkZWZpbmUg
TFJfUkVTVE9SQVRJT05fU0laRSAgICAgICgyICogUFRSX1NJWkUpCisjZGVmaW5lIExSX1JFU1RP
UkFUSU9OX0xSX09GRlNFVCAoMCAqIEdQUkVHX1NJWkUpCisjZGVmaW5lIExSX1JFU1RPUkFUSU9O
X1NJWkUgICAgICAoMiAqIEdQUkVHX1NJWkUpCiAKIHN0YXRpY19hc3NlcnQoTFJfUkVTVE9SQVRJ
T05fTFJfT0ZGU0VUID09IG9mZnNldG9mKExSUmVzdG9yYXRpb25SZWNvcmQsIGxyKSwgIkxSX1JF
U1RPUkFUSU9OX0xSX09GRlNFVCBpcyBpbmNvcnJlY3QiKTsKIHN0YXRpY19hc3NlcnQoTFJfUkVT
VE9SQVRJT05fU0laRSA9PSBzaXplb2YoTFJSZXN0b3JhdGlvblJlY29yZCksICJMUl9SRVNUT1JB
VElPTl9TSVpFIGlzIGluY29ycmVjdCIpOwpAQCAtMzQ4LDcgKzM1Myw3IEBAIGFzbSAoCiAKICAg
ICAic3RyICAgICAgIHgzMCwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoU0FWRURfUFJPQkVf
UkVUVVJOX1BDX09GRlNFVCkgIl0iICJcbiIgLy8gU2F2ZSBhIGR1cGxpY2F0ZSBjb3B5IG9mIHJl
dHVybiBwYyAoaW4gbHIpLgogCi0gICAgImFkZCAgICAgICB4MzAsIHgzMCwgIyIgU1RSSU5HSVpF
X1ZBTFVFX09GKDIgKiBQVFJfU0laRSkgIlxuIiAvLyBUaGUgUEMgYWZ0ZXIgdGhlIHByb2JlIGlz
IGF0IDIgaW5zdHJ1Y3Rpb25zIHBhc3QgdGhlIHJldHVybiBwb2ludC4KKyAgICAiYWRkICAgICAg
IHgzMCwgeDMwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoMiAqIEdQUkVHX1NJWkUpICJcbiIgLy8g
VGhlIFBDIGFmdGVyIHRoZSBwcm9iZSBpcyBhdCAyIGluc3RydWN0aW9ucyBwYXN0IHRoZSByZXR1
cm4gcG9pbnQuCiAgICAgInN0ciAgICAgICB4MzAsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09G
KFBST0JFX0NQVV9QQ19PRkZTRVQpICJdIiAiXG4iCiAKICAgICAic3RwICAgICAgIHgwLCB4MSwg
W3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX05aQ1ZfT0ZGU0VUKSAiXSIgIlxu
IiAvLyBTdG9yZSBuemN2IGFuZCBmcHNyIChwcmVsb2FkZWQgaW50byB4MCBhbmQgeDEgYWJvdmUp
LgpAQCAtNDcyLDcgKzQ3Nyw3IEBAIGFzbSAoCiAgICAgImxkciAgICAgICB4MzAsIFtzcCwgIyIg
U1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9TUF9PRkZTRVQpICJdIiAiXG4iIC8vIHByZWxv
YWQgdGhlIHRhcmdldCBzcC4KICAgICAibGRyICAgICAgIHgyNywgW3NwLCAjIiBTVFJJTkdJWkVf
VkFMVUVfT0YoU0FWRURfUFJPQkVfUkVUVVJOX1BDX09GRlNFVCkgIl0iICJcbiIKICAgICAibGRy
ICAgICAgIHgyOCwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1BDX09GRlNF
VCkgIl0iICJcbiIKLSAgICAiYWRkICAgICAgIHgyNywgeDI3LCAjIiBTVFJJTkdJWkVfVkFMVUVf
T0YoMiAqIFBUUl9TSVpFKSAiXG4iCisgICAgImFkZCAgICAgICB4MjcsIHgyNywgIyIgU1RSSU5H
SVpFX1ZBTFVFX09GKDIgKiBHUFJFR19TSVpFKSAiXG4iCiAgICAgImNtcCAgICAgICB4MjcsIHgy
OCIgIlxuIgogICAgICJibmUgICAgICIgTE9DQUxfTEFCRUxfU1RSSU5HKGN0aU1hc21Qcm9iZVRy
YW1wb2xpbmVFbmQpICJcbiIKIApAQCAtNTAyLDExICs1MDcsMTEgQEAgYXNtICgKICAgICAibW92
ICAgICAgIHNwLCB4MzAiICJcbiIKIAogICAgIC8vIFJlc3RvcmUgdGhlIHJlbWFpbmluZyByZWdp
c3RlcnMgYW5kIHBvcCB0aGUgT3V0Z29pbmdQcm9iZVJlY29yZC4KLSAgICAibGRwICAgICAgIHgy
NywgeDI4LCBbc3BdLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoMiAqIFBUUl9TSVpFKSAiXG4iCisg
ICAgImxkcCAgICAgICB4MjcsIHgyOCwgW3NwXSwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKDIgKiBH
UFJFR19TSVpFKSAiXG4iCiAgICAgIm1zciAgICAgICBuemN2LCB4MjciICJcbiIKICAgICAibXNy
ICAgICAgIGZwc3IsIHgyOCIgIlxuIgotICAgICJsZHAgICAgICAgeDI3LCB4MjgsIFtzcF0sICMi
IFNUUklOR0laRV9WQUxVRV9PRigyICogUFRSX1NJWkUpICJcbiIKLSAgICAibGRwICAgICAgIHgy
OSwgeDMwLCBbc3BdLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoMiAqIFBUUl9TSVpFKSAiXG4iCisg
ICAgImxkcCAgICAgICB4MjcsIHgyOCwgW3NwXSwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKDIgKiBH
UFJFR19TSVpFKSAiXG4iCisgICAgImxkcCAgICAgICB4MjksIHgzMCwgW3NwXSwgIyIgU1RSSU5H
SVpFX1ZBTFVFX09GKDIgKiBHUFJFR19TSVpFKSAiXG4iCiAgICAgInJldCIgIlxuIgogKTsKICNl
bmRpZiAvLyBDT01QSUxFUihHQ0NfQ09NUEFUSUJMRSkKQEAgLTU0NCw3ICs1NDksNyBAQCB2b2lk
IE1hY3JvQXNzZW1ibGVyQVJNNjQ6OmNvbGxlY3RDUFVGZWF0dXJlcygpCiAgICAgICAgIC8vIGlz
IHNoaXBwZWQgYW5kIGltcGxlbWVudGVkIGluIHNvbWUgQ1BVcy4gSW4gdGhhdCBjYXNlLCBldmVu
IGlmIHRoZSBDUFUgaGFzCiAgICAgICAgIC8vIHRoYXQgZmVhdHVyZSwgdGhlIGtlcm5lbCBkb2Vz
IG5vdCB0ZWxsIGl0IHRvIHVzZXJzLiksIGl0IGlzIGEgc3RhYmxlIGFwcHJvYWNoLgogICAgICAg
ICAvLyBodHRwczovL3d3dy5rZXJuZWwub3JnL2RvYy9Eb2N1bWVudGF0aW9uL2FybTY0L2VsZl9o
d2NhcHMudHh0Ci0gICAgICAgIHVuc2lnbmVkIGxvbmcgaHdjYXBzID0gZ2V0YXV4dmFsKEFUX0hX
Q0FQKTsKKyAgICAgICAgdWludDY0X3QgaHdjYXBzID0gZ2V0YXV4dmFsKEFUX0hXQ0FQKTsKIAog
I2lmICFkZWZpbmVkKEhXQ0FQX0pTQ1ZUKQogI2RlZmluZSBIV0NBUF9KU0NWVCAoMSA8PCAxMykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJs
ZXJBUk02NC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxl
ckFSTTY0LmgKaW5kZXggMmIyMWQ2ODUxMWRkNjJkODE1YmUwNjgzYjBhZTI1OGQ5MWUxNWQ0OC4u
MjRlMjM1M2IyOTEwYmVkMjIzNmMwOGViMDhkYzk0NzBhZmJmZGRlMSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgKQEAg
LTUzLDkgKzUzLDkgQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIHN0YXRpYyBjb25zdCBBUk02
NFJlZ2lzdGVyczo6RlBSZWdpc3RlcklEIGZwVGVtcFJlZ2lzdGVyID0gQVJNNjRSZWdpc3RlcnM6
OnEzMTsKICAgICBzdGF0aWMgY29uc3QgQXNzZW1ibGVyOjpTZXRGbGFncyBTID0gQXNzZW1ibGVy
OjpTOwotICAgIHN0YXRpYyBjb25zdCBpbnRwdHJfdCBtYXNrSGFsZldvcmQwID0gMHhmZmZmbDsK
LSAgICBzdGF0aWMgY29uc3QgaW50cHRyX3QgbWFza0hhbGZXb3JkMSA9IDB4ZmZmZjAwMDBsOwot
ICAgIHN0YXRpYyBjb25zdCBpbnRwdHJfdCBtYXNrVXBwZXJXb3JkID0gMHhmZmZmZmZmZjAwMDAw
MDAwbDsKKyAgICBzdGF0aWMgY29uc3QgaW50NjRfdCBtYXNrSGFsZldvcmQwID0gMHhmZmZmbDsK
KyAgICBzdGF0aWMgY29uc3QgaW50NjRfdCBtYXNrSGFsZldvcmQxID0gMHhmZmZmMDAwMGw7Cisg
ICAgc3RhdGljIGNvbnN0IGludDY0X3QgbWFza1VwcGVyV29yZCA9IDB4ZmZmZmZmZmYwMDAwMDAw
MGw7CiAKICAgICBzdGF0aWMgY29uc3RleHByIHNpemVfdCBJTlNUUlVDVElPTl9TSVpFID0gNDsK
IApAQCAtMzk5MiwxMSArMzk5Miw2IEBAIHByb3RlY3RlZDoKICAgICAgICAgcmV0dXJuIG1fY2Fj
aGVkTWVtb3J5VGVtcFJlZ2lzdGVyOwogICAgIH0KIAotICAgIEFMV0FZU19JTkxJTkUgYm9vbCBp
c0luSW50UmFuZ2UoaW50cHRyX3QgdmFsdWUpCi0gICAgewotICAgICAgICByZXR1cm4gdmFsdWUg
PT0gKCh2YWx1ZSA8PCAzMikgPj4gMzIpOwotICAgIH0KLQogICAgIHRlbXBsYXRlPHR5cGVuYW1l
IEltbWVkaWF0ZVR5cGUsIHR5cGVuYW1lIHJhd1R5cGU+CiAgICAgdm9pZCBtb3ZlSW50ZXJuYWwo
SW1tZWRpYXRlVHlwZSBpbW0sIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CkBAIC00MTMxLDcgKzQx
MjYsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgICAgICBpZiAoZGVzdCA9PSBtZW1vcnlUZW1wUmVn
aXN0ZXIpCiAgICAgICAgICAgICAgICAgY2FjaGVkTWVtb3J5VGVtcFJlZ2lzdGVyKCkuaW52YWxp
ZGF0ZSgpOwogCi0gICAgICAgICAgICBpZiAoaXNJbkludFJhbmdlKGFkZHJlc3NEZWx0YSkpIHsK
KyAgICAgICAgICAgIGlmIChpc0ludDwzMj4oYWRkcmVzc0RlbHRhKSkgewogICAgICAgICAgICAg
ICAgIGlmIChBc3NlbWJsZXI6OmNhbkVuY29kZVNJbW1PZmZzZXQoYWRkcmVzc0RlbHRhKSkgewog
ICAgICAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5sZHVyPGRhdGFzaXplPihkZXN0LCAgbWVt
b3J5VGVtcFJlZ2lzdGVyLCBhZGRyZXNzRGVsdGEpOwogICAgICAgICAgICAgICAgICAgICByZXR1
cm47CkBAIC00MTY4LDcgKzQxNjMsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgICAgICBpbnRwdHJf
dCBhZGRyZXNzQXNJbnQgPSByZWludGVycHJldF9jYXN0PGludHB0cl90PihhZGRyZXNzKTsKICAg
ICAgICAgICAgIGludHB0cl90IGFkZHJlc3NEZWx0YSA9IGFkZHJlc3NBc0ludCAtIGN1cnJlbnRS
ZWdpc3RlckNvbnRlbnRzOwogCi0gICAgICAgICAgICBpZiAoaXNJbkludFJhbmdlKGFkZHJlc3NE
ZWx0YSkpIHsKKyAgICAgICAgICAgIGlmIChpc0ludDwzMj4oYWRkcmVzc0RlbHRhKSkgewogICAg
ICAgICAgICAgICAgIGlmIChBc3NlbWJsZXI6OmNhbkVuY29kZVNJbW1PZmZzZXQoYWRkcmVzc0Rl
bHRhKSkgewogICAgICAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5zdHVyPGRhdGFzaXplPihz
cmMsIG1lbW9yeVRlbXBSZWdpc3RlciwgYWRkcmVzc0RlbHRhKTsKICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9Q
cmludGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL1ByaW50ZXIuaAppbmRl
eCA2NDFkZWFlNWFjM2I2NDUyMGMyNDM4NjgyZGIwM2YyZWVhZTgwNTA2Li42ZDQ2Y2Q5ZTlmMjQw
ZTQyMDhlODlhNDZjZGUwYWJjMjViMWYyOTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL1ByaW50ZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL1ByaW50ZXIuaApAQCAtNzksOSArNzksOSBAQCB1bmlvbiBEYXRhIHsKICAgICB1aW50
cHRyX3QgdmFsdWU7CiAgICAgY29uc3Qgdm9pZCogcG9pbnRlcjsKICNpZiBVU0UoSlNWQUxVRTY0
KQotICAgIHVpbnRwdHJfdCBidWZmZXJbNF07CisgICAgVUNQVVJlZ2lzdGVyIGJ1ZmZlcls0XTsK
ICNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCi0gICAgdWludHB0cl90IGJ1ZmZlcls2XTsKKyAgICBV
Q1BVUmVnaXN0ZXIgYnVmZmVyWzZdOwogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL1Byb2JlQ29udGV4dC5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9Qcm9iZUNvbnRleHQuaAppbmRleCA5MzJlYWUyNjJkNjgwYjNhNTk0
ODliNjE5NzgzNzM4OTRmZDZhYzFhLi40ZWU2ZWVhOGU3M2I5MTJiYWU2YWRlMDBjOWJiOGIzZDgy
YTgxMjBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL1Byb2Jl
Q29udGV4dC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvUHJvYmVDb250
ZXh0LmgKQEAgLTQxLDggKzQxLDggQEAgc3RydWN0IENQVVN0YXRlIHsKICAgICBzdGF0aWMgaW5s
aW5lIGNvbnN0IGNoYXIqIGdwck5hbWUoUmVnaXN0ZXJJRCBpZCkgeyByZXR1cm4gTWFjcm9Bc3Nl
bWJsZXI6Omdwck5hbWUoaWQpOyB9CiAgICAgc3RhdGljIGlubGluZSBjb25zdCBjaGFyKiBzcHJO
YW1lKFNQUmVnaXN0ZXJJRCBpZCkgeyByZXR1cm4gTWFjcm9Bc3NlbWJsZXI6OnNwck5hbWUoaWQp
OyB9CiAgICAgc3RhdGljIGlubGluZSBjb25zdCBjaGFyKiBmcHJOYW1lKEZQUmVnaXN0ZXJJRCBp
ZCkgeyByZXR1cm4gTWFjcm9Bc3NlbWJsZXI6OmZwck5hbWUoaWQpOyB9Ci0gICAgaW5saW5lIHVp
bnRwdHJfdCYgZ3ByKFJlZ2lzdGVySUQpOwotICAgIGlubGluZSB1aW50cHRyX3QmIHNwcihTUFJl
Z2lzdGVySUQpOworICAgIGlubGluZSBVQ1BVUmVnaXN0ZXImIGdwcihSZWdpc3RlcklEKTsKKyAg
ICBpbmxpbmUgVUNQVVJlZ2lzdGVyJiBzcHIoU1BSZWdpc3RlcklEKTsKICAgICBpbmxpbmUgZG91
YmxlJiBmcHIoRlBSZWdpc3RlcklEKTsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IFQgZ3By
KFJlZ2lzdGVySUQpIGNvbnN0OwpAQCAtNTYsMTggKzU2LDE4IEBAIHN0cnVjdCBDUFVTdGF0ZSB7
CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gVCBmcCgpIGNvbnN0OwogICAgIHRlbXBsYXRlPHR5
cGVuYW1lIFQ+IFQgc3AoKSBjb25zdDsKIAotICAgIHVpbnRwdHJfdCBncHJzW01hY3JvQXNzZW1i
bGVyOjpudW1iZXJPZlJlZ2lzdGVycygpXTsKLSAgICB1aW50cHRyX3Qgc3Byc1tNYWNyb0Fzc2Vt
Ymxlcjo6bnVtYmVyT2ZTUFJlZ2lzdGVycygpXTsKKyAgICBVQ1BVUmVnaXN0ZXIgZ3Byc1tNYWNy
b0Fzc2VtYmxlcjo6bnVtYmVyT2ZSZWdpc3RlcnMoKV07CisgICAgVUNQVVJlZ2lzdGVyIHNwcnNb
TWFjcm9Bc3NlbWJsZXI6Om51bWJlck9mU1BSZWdpc3RlcnMoKV07CiAgICAgZG91YmxlIGZwcnNb
TWFjcm9Bc3NlbWJsZXI6Om51bWJlck9mRlBSZWdpc3RlcnMoKV07CiB9OwogCi1pbmxpbmUgdWlu
dHB0cl90JiBDUFVTdGF0ZTo6Z3ByKFJlZ2lzdGVySUQgaWQpCitpbmxpbmUgVUNQVVJlZ2lzdGVy
JiBDUFVTdGF0ZTo6Z3ByKFJlZ2lzdGVySUQgaWQpCiB7CiAgICAgQVNTRVJUKGlkID49IE1hY3Jv
QXNzZW1ibGVyOjpmaXJzdFJlZ2lzdGVyKCkgJiYgaWQgPD0gTWFjcm9Bc3NlbWJsZXI6Omxhc3RS
ZWdpc3RlcigpKTsKICAgICByZXR1cm4gZ3Byc1tpZF07CiB9CiAKLWlubGluZSB1aW50cHRyX3Qm
IENQVVN0YXRlOjpzcHIoU1BSZWdpc3RlcklEIGlkKQoraW5saW5lIFVDUFVSZWdpc3RlciYgQ1BV
U3RhdGU6OnNwcihTUFJlZ2lzdGVySUQgaWQpCiB7CiAgICAgQVNTRVJUKGlkID49IE1hY3JvQXNz
ZW1ibGVyOjpmaXJzdFNQUmVnaXN0ZXIoKSAmJiBpZCA8PSBNYWNyb0Fzc2VtYmxlcjo6bGFzdFNQ
UmVnaXN0ZXIoKSk7CiAgICAgcmV0dXJuIHNwcnNbaWRdOwpAQCAtMTk4LDggKzE5OCw4IEBAIHB1
YmxpYzoKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogICAgIFQgYXJnKCkgeyByZXR1cm4gcmVp
bnRlcnByZXRfY2FzdDxUPihtX3N0YXRlLT5hcmcpOyB9CiAKLSAgICB1aW50cHRyX3QmIGdwcihS
ZWdpc3RlcklEIGlkKSB7IHJldHVybiBjcHUuZ3ByKGlkKTsgfQotICAgIHVpbnRwdHJfdCYgc3By
KFNQUmVnaXN0ZXJJRCBpZCkgeyByZXR1cm4gY3B1LnNwcihpZCk7IH0KKyAgICBVQ1BVUmVnaXN0
ZXImIGdwcihSZWdpc3RlcklEIGlkKSB7IHJldHVybiBjcHUuZ3ByKGlkKTsgfQorICAgIFVDUFVS
ZWdpc3RlciYgc3ByKFNQUmVnaXN0ZXJJRCBpZCkgeyByZXR1cm4gY3B1LnNwcihpZCk7IH0KICAg
ICBkb3VibGUmIGZwcihGUFJlZ2lzdGVySUQgaWQpIHsgcmV0dXJuIGNwdS5mcHIoaWQpOyB9CiAg
ICAgY29uc3QgY2hhciogZ3ByTmFtZShSZWdpc3RlcklEIGlkKSB7IHJldHVybiBjcHUuZ3ByTmFt
ZShpZCk7IH0KICAgICBjb25zdCBjaGFyKiBzcHJOYW1lKFNQUmVnaXN0ZXJJRCBpZCkgeyByZXR1
cm4gY3B1LnNwck5hbWUoaWQpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNDb25zdFB0clZhbHVlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb25zdFB0
clZhbHVlLmgKaW5kZXggNzhiY2JhMzliZGZmMTY0NzM1NDg4MzI5ZmFkZjY0N2U3ODkyYzM2OC4u
OWM5OTNmYzIzZDQ1NDc1MmNlNjZmNDk5YzM4OGY2M2QzZDIzNDliZSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29uc3RQdHJWYWx1ZS5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM0NvbnN0UHRyVmFsdWUuaApAQCAtMzYsNyArMzYsNyBAQCBuYW1lc3Bh
Y2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKIC8vIHBsYXRmb3JtLWFnbm9zdGljIGNvZGUuIE5vdGUg
dGhhdCBhIENvbnN0UHRyVmFsdWUgd2lsbCBiZWhhdmUgbGlrZSBlaXRoZXIgYSBDb25zdDMyVmFs
dWUgb3IKIC8vIENvbnN0NjRWYWx1ZSBkZXBlbmRpbmcgb24gcGxhdGZvcm0uCiAKLSNpZiBVU0Uo
SlNWQUxVRTY0KQorI2lmIENQVShBRERSRVNTNjQpCiB0eXBlZGVmIENvbnN0NjRWYWx1ZSBDb25z
dFB0clZhbHVlQmFzZTsKICNlbHNlCiB0eXBlZGVmIENvbnN0MzJWYWx1ZSBDb25zdFB0clZhbHVl
QmFzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N0YWNrbWFwU3Bl
Y2lhbC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTdGFja21hcFNwZWNpYWwuY3Bw
CmluZGV4IDYyMGQ2ZjgzYzNiYTgyNDUyZTMwMzMyN2RmMzQ5ZTExY2YyMzQ0YWYuLmNmZDFhMWU0
MmQ0ZGQ0YTZhZjQ5ZTM5MzE2ODYwNjg2YjcxMmUyYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM1N0YWNrbWFwU3BlY2lhbC5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzU3RhY2ttYXBTcGVjaWFsLmNwcApAQCAtMjYzLDcgKzI2Myw3IEBAIGJvb2wg
U3RhY2ttYXBTcGVjaWFsOjppc0FyZ1ZhbGlkRm9yUmVwKEFpcjo6Q29kZSYgY29kZSwgY29uc3Qg
QWlyOjpBcmcmIGFyZywgY29uCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgaWYg
KChhcmcuaXNBZGRyKCkgfHwgYXJnLmlzRXh0ZW5kZWRPZmZzZXRBZGRyKCkpICYmIGNvZGUuZnJh
bWVTaXplKCkpIHsKICAgICAgICAgICAgIGlmIChhcmcuYmFzZSgpID09IFRtcChHUFJJbmZvOjpj
YWxsRnJhbWVSZWdpc3RlcikKLSAgICAgICAgICAgICAgICAmJiBhcmcub2Zmc2V0KCkgPT0gcmVw
Lm9mZnNldEZyb21TUCgpIC0gY29kZS5mcmFtZVNpemUoKSkKKyAgICAgICAgICAgICAgICAmJiBh
cmcub2Zmc2V0KCkgPT0gc3RhdGljX2Nhc3Q8aW50NjRfdD4ocmVwLm9mZnNldEZyb21TUCgpKSAt
IGNvZGUuZnJhbWVTaXplKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAg
ICAgICBpZiAoYXJnLmJhc2UoKSA9PSBUbXAoTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJl
Z2lzdGVyKQogICAgICAgICAgICAgICAgICYmIGFyZy5vZmZzZXQoKSA9PSByZXAub2Zmc2V0RnJv
bVNQKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZy5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuaAppbmRleCBjZDIxNjJkZGZi
OWFmOWUxZGI1ZTA4ZTBiNzRlMGU5MGM0YTYzMmE3Li45NjQ1NDhiZWRlZDU0NzRlMDUyMDY3ZWYx
MzUwZjk4YzU0YTI1YjcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWly
L0FpckFyZy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnLmgKQEAg
LTk3Myw3ICs5NzMsNyBAQCBwdWJsaWM6CiAgICAgU3RhY2tTbG90KiBzdGFja1Nsb3QoKSBjb25z
dAogICAgIHsKICAgICAgICAgQVNTRVJUKGtpbmQoKSA9PSBTdGFjayk7Ci0gICAgICAgIHJldHVy
biBiaXR3aXNlX2Nhc3Q8U3RhY2tTbG90Kj4obV9vZmZzZXQpOworICAgICAgICByZXR1cm4gYml0
d2lzZV9jYXN0PFN0YWNrU2xvdCo+KHN0YXRpY19jYXN0PHVpbnRwdHJfdD4obV9vZmZzZXQpKTsK
ICAgICB9CiAKICAgICBBaXI6OlRtcCBpbmRleCgpIGNvbnN0CkBAIC05OTYsNyArOTk2LDcgQEAg
cHVibGljOgogICAgIEFpcjo6U3BlY2lhbCogc3BlY2lhbCgpIGNvbnN0CiAgICAgewogICAgICAg
ICBBU1NFUlQoa2luZCgpID09IFNwZWNpYWwpOwotICAgICAgICByZXR1cm4gYml0d2lzZV9jYXN0
PEFpcjo6U3BlY2lhbCo+KG1fb2Zmc2V0KTsKKyAgICAgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxB
aXI6OlNwZWNpYWwqPihzdGF0aWNfY2FzdDx1aW50cHRyX3Q+KG1fb2Zmc2V0KSk7CiAgICAgfQog
CiAgICAgV2lkdGggd2lkdGgoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL2Fpci90ZXN0YWlyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvdGVz
dGFpci5jcHAKaW5kZXggMDhiNjM5MzAxOGViMWZiODc5OTQwOTU0OWIwZjgxZWUwYmVmYjA3MC4u
OTEyMTk0ZjA4OTA3MDE3ZjYyMjE5YjE1NjMwMDNhNGUyMTNmMWIwNiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci90ZXN0YWlyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvYWlyL3Rlc3RhaXIuY3BwCkBAIC0xMzgsOSArMTM4LDEwIEBAIHZvaWQgbG9h
ZENvbnN0YW50SW1wbChCYXNpY0Jsb2NrKiBibG9jaywgVCB2YWx1ZSwgQjM6OkFpcjo6T3Bjb2Rl
IG1vdmUsIFRtcCB0bXAsCiAgICAgYmxvY2stPmFwcGVuZChtb3ZlLCBudWxscHRyLCBBcmc6OmFk
ZHIoc2NyYXRjaCksIHRtcCk7CiB9CiAKLXZvaWQgbG9hZENvbnN0YW50KEJhc2ljQmxvY2sqIGJs
b2NrLCBpbnRwdHJfdCB2YWx1ZSwgVG1wIHRtcCkKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+Cit2b2lk
IGxvYWRDb25zdGFudChCYXNpY0Jsb2NrKiBibG9jaywgVCB2YWx1ZSwgVG1wIHRtcCkKIHsKLSAg
ICBsb2FkQ29uc3RhbnRJbXBsPGludHB0cl90PihibG9jaywgdmFsdWUsIE1vdmUsIHRtcCwgdG1w
KTsKKyAgICBsb2FkQ29uc3RhbnRJbXBsKGJsb2NrLCB2YWx1ZSwgTW92ZSwgdG1wLCB0bXApOwog
fQogCiB2b2lkIGxvYWREb3VibGVDb25zdGFudChCYXNpY0Jsb2NrKiBibG9jaywgZG91YmxlIHZh
bHVlLCBUbXAgdG1wLCBUbXAgc2NyYXRjaCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy90ZXN0YjMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5jcHAK
aW5kZXggNTIzZjEwZWYwODFkMGFmYjUxYzQxMjkzYjFkMWJiNTUzMWQ3OWM3Ni4uYjMzODk3OWJh
NTEyYWUyZGRhYjYwOTY3OWEwODQyYWNmZjY0MmMwNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL3Rlc3RiMy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rl
c3RiMy5jcHAKQEAgLTU0NzMsMTAgKzU0NzMsMTEgQEAgdm9pZCB0ZXN0U3RvcmVDb25zdGFudFB0
cihpbnRwdHJfdCB2YWx1ZSkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiBy
b290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIGludHB0cl90IHNsb3Q7Ci0gICAgaWYgKGlzNjRC
aXQoKSkKLSAgICAgICAgc2xvdCA9IChzdGF0aWNfY2FzdDxpbnRwdHJfdD4oMHhiYWFkYmVlZikg
PDwgMzIpICsgc3RhdGljX2Nhc3Q8aW50cHRyX3Q+KDB4YmFhZGJlZWYpOwotICAgIGVsc2UKLSAg
ICAgICAgc2xvdCA9IDB4YmFhZGJlZWY7CisjaWYgQ1BVKEFERFJFU1M2NCkKKyAgICBzbG90ID0g
KHN0YXRpY19jYXN0PGludHB0cl90PigweGJhYWRiZWVmKSA8PCAzMikgKyBzdGF0aWNfY2FzdDxp
bnRwdHJfdD4oMHhiYWFkYmVlZik7CisjZWxzZQorICAgIHNsb3QgPSAweGJhYWRiZWVmOworI2Vu
ZGlmCiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAgICAgICAgcHJvYywgU3Rv
cmUsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIHZhbHVlKSwKQEAgLTEzMTk0LDkgKzEzMTk1LDkgQEAgdm9pZCB0ZXN0SW50
ZXJwcmV0ZXIoKQogICAgIAogICAgIGF1dG8gaW50ZXJwcmV0ZXIgPSBjb21waWxlUHJvYyhwcm9j
KTsKICAgICAKLSAgICBWZWN0b3I8aW50cHRyX3Q+IGRhdGE7Ci0gICAgVmVjdG9yPGludHB0cl90
PiBjb2RlOwotICAgIFZlY3RvcjxpbnRwdHJfdD4gc3RyZWFtOworICAgIFZlY3Rvcjx1aW50cHRy
X3Q+IGRhdGE7CisgICAgVmVjdG9yPHVpbnRwdHJfdD4gY29kZTsKKyAgICBWZWN0b3I8dWludHB0
cl90PiBzdHJlYW07CiAgICAgCiAgICAgZGF0YS5hcHBlbmQoMSk7CiAgICAgZGF0YS5hcHBlbmQo
MCk7CkBAIC0xNDQ5Nyw3ICsxNDQ5OCw3IEBAIHZvaWQgdGVzdEFkZFNobDMyKCkKICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAgICAg
CiAgICAgYXV0byBjb2RlID0gY29tcGlsZVByb2MocHJvYyk7Ci0gICAgQ0hFQ0tfRVEoaW52b2tl
PGludHB0cl90PigqY29kZSwgMSwgMiksIDEgKyAoc3RhdGljX2Nhc3Q8aW50cHRyX3Q+KDIpIDw8
IHN0YXRpY19jYXN0PGludHB0cl90PigzMikpKTsKKyAgICBDSEVDS19FUShpbnZva2U8aW50NjRf
dD4oKmNvZGUsIDEsIDIpLCAxICsgKHN0YXRpY19jYXN0PGludDY0X3Q+KDIpIDw8IHN0YXRpY19j
YXN0PGludDY0X3Q+KDMyKSkpOwogfQogCiB2b2lkIHRlc3RBZGRTaGw2NCgpCkBAIC0xNDYwNyw2
ICsxNDYwOCw3IEBAIHZvaWQgdGVzdExvYWRCYXNlSW5kZXhTaGlmdDIoKQogCiB2b2lkIHRlc3RM
b2FkQmFzZUluZGV4U2hpZnQzMigpCiB7CisjaWYgQ1BVKEFERFJFU1M2NCkKICAgICBQcm9jZWR1
cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4oCkBAIC0xNDYyNSw2ICsxNDYyNyw3IEBAIHZvaWQgdGVzdExv
YWRCYXNlSW5kZXhTaGlmdDMyKCkKICAgICBjaGFyKiBwdHIgPSBiaXR3aXNlX2Nhc3Q8Y2hhcio+
KCZ2YWx1ZSk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IDEwOyArK2kpCiAgICAgICAg
IENIRUNLX0VRKGludm9rZTxpbnQzMl90PigqY29kZSwgcHRyIC0gKHN0YXRpY19jYXN0PGludHB0
cl90PigxKSA8PCBzdGF0aWNfY2FzdDxpbnRwdHJfdD4oMzIpKSAqIGksIGkpLCAxMjM0MTIzNCk7
CisjZW5kaWYKIH0KIAogdm9pZCB0ZXN0T3B0aW1pemVNYXRlcmlhbGl6YXRpb24oKQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2JpbmRpbmdzL1NjcmlwdEZ1bmN0aW9uQ2FsbC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYmluZGluZ3MvU2NyaXB0RnVuY3Rpb25DYWxsLmNw
cAppbmRleCA0NGJmZjU0ZmJkZGM0NmMxOTM4NWIwYzQ0MzIyYjViZmVhZTRkNTY4Li45OWU1ZjVj
Y2U1ODE1OWJiNjczNjExNWE5ZDY2NTgyOTcxYjQxNTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYmluZGluZ3MvU2NyaXB0RnVuY3Rpb25DYWxsLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYmluZGluZ3MvU2NyaXB0RnVuY3Rpb25DYWxsLmNwcApAQCAtNzUsNyAr
NzUsNyBAQCB2b2lkIFNjcmlwdENhbGxBcmd1bWVudEhhbmRsZXI6OmFwcGVuZEFyZ3VtZW50KHVu
c2lnbmVkIGludCBhcmd1bWVudCkKICAgICBtX2FyZ3VtZW50cy5hcHBlbmQoanNOdW1iZXIoYXJn
dW1lbnQpKTsKIH0KIAotdm9pZCBTY3JpcHRDYWxsQXJndW1lbnRIYW5kbGVyOjphcHBlbmRBcmd1
bWVudCh1bnNpZ25lZCBsb25nIGFyZ3VtZW50KQordm9pZCBTY3JpcHRDYWxsQXJndW1lbnRIYW5k
bGVyOjphcHBlbmRBcmd1bWVudCh1aW50NjRfdCBhcmd1bWVudCkKIHsKICAgICBKU0xvY2tIb2xk
ZXIgbG9jayhtX2V4ZWMpOwogICAgIG1fYXJndW1lbnRzLmFwcGVuZChqc051bWJlcihhcmd1bWVu
dCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2JpbmRpbmdzL1NjcmlwdEZ1
bmN0aW9uQ2FsbC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2JpbmRpbmdzL1NjcmlwdEZ1bmN0
aW9uQ2FsbC5oCmluZGV4IDY5Nzg0MTRlNGVlZmE0MTMyMzRiOTY0NTA3OTE2MGVhMGJkYWFlMmYu
LjFhN2E1Mzc2YjU3NGE1MTFiODM3MzY4ZDdkMmNjNWVjODdiYjFhOGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iaW5kaW5ncy9TY3JpcHRGdW5jdGlvbkNhbGwuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYmluZGluZ3MvU2NyaXB0RnVuY3Rpb25DYWxsLmgKQEAgLTUx
LDcgKzUxLDcgQEAgcHVibGljOgogICAgIHZvaWQgYXBwZW5kQXJndW1lbnQobG9uZyk7CiAgICAg
dm9pZCBhcHBlbmRBcmd1bWVudChsb25nIGxvbmcpOwogICAgIHZvaWQgYXBwZW5kQXJndW1lbnQo
dW5zaWduZWQgaW50KTsKLSAgICB2b2lkIGFwcGVuZEFyZ3VtZW50KHVuc2lnbmVkIGxvbmcpOwor
ICAgIHZvaWQgYXBwZW5kQXJndW1lbnQodWludDY0X3QpOwogICAgIHZvaWQgYXBwZW5kQXJndW1l
bnQoaW50KTsKICAgICB2b2lkIGFwcGVuZEFyZ3VtZW50KGJvb2wpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCmluZGV4IDNlOTc0YmYwY2Y5NjgxYzZj
MTc1YmY4M2NiYThlMzAwZjIxOTliNDIuLjQ5NzY2NjJlZDcwOTRlZTYyOGJkMTQ0MDNiY2UzYzkx
NzczMzk1YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2Rl
QmxvY2suY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2su
Y3BwCkBAIC0yMTYwLDggKzIxNjAsOCBAQCB2b2lkIENvZGVCbG9jazo6c2V0Q2FsbGVlU2F2ZVJl
Z2lzdGVycyhzdGQ6OnVuaXF1ZV9wdHI8UmVnaXN0ZXJBdE9mZnNldExpc3Q+IHJlZwogICAgIAog
c3RhdGljIHNpemVfdCByb3VuZENhbGxlZVNhdmVTcGFjZUFzVmlydHVhbFJlZ2lzdGVycyhzaXpl
X3QgY2FsbGVlU2F2ZVJlZ2lzdGVycykKIHsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgY3B1
UmVnaXN0ZXJTaXplID0gc2l6ZW9mKHZvaWQqKTsKLSAgICByZXR1cm4gKFdURjo6cm91bmRVcFRv
TXVsdGlwbGVPZihzaXplb2YoUmVnaXN0ZXIpLCBjYWxsZWVTYXZlUmVnaXN0ZXJzICogY3B1UmVn
aXN0ZXJTaXplKSAvIHNpemVvZihSZWdpc3RlcikpOworCisgICAgcmV0dXJuIChXVEY6OnJvdW5k
VXBUb011bHRpcGxlT2Yoc2l6ZW9mKFJlZ2lzdGVyKSwgY2FsbGVlU2F2ZVJlZ2lzdGVycyAqIHNp
emVvZihDUFVSZWdpc3RlcikpIC8gc2l6ZW9mKFJlZ2lzdGVyKSk7CiAKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0LmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdC5jcHAKaW5kZXggZjkyMWFiZjk1ZWNkMjI3ZjNjZGQ4
NTFiYWY5ODdkOTI2YmU3OWFjZi4uYThhMjMzOTA3MTVjYzZiYWFhNTZjN2QzMTk3YTkyNTg1Zjg2
NjlmZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0LmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXQuY3BwCkBAIC04Niw3
ICs4Niw3IEBAIHN0YXRpYyB2b2lkIHJlc3RvcmVDYWxsZWVTYXZlc0ZvcihDb250ZXh0JiBjb250
ZXh0LCBDb2RlQmxvY2sqIGNvZGVCbG9jaykKICAgICBSZWdpc3RlclNldCBkb250UmVzdG9yZVJl
Z2lzdGVycyA9IFJlZ2lzdGVyU2V0KFJlZ2lzdGVyU2V0OjpzdGFja1JlZ2lzdGVycygpLCBSZWdp
c3RlclNldDo6YWxsRlBScygpKTsKICAgICB1bnNpZ25lZCByZWdpc3RlckNvdW50ID0gY2FsbGVl
U2F2ZXMtPnNpemUoKTsKIAotICAgIHVpbnRwdHJfdCogcGh5c2ljYWxTdGFja0ZyYW1lID0gY29u
dGV4dC5mcDx1aW50cHRyX3QqPigpOworICAgIFVDUFVSZWdpc3RlciogcGh5c2ljYWxTdGFja0Zy
YW1lID0gY29udGV4dC5mcDxVQ1BVUmVnaXN0ZXIqPigpOwogICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCByZWdpc3RlckNvdW50OyBpKyspIHsKICAgICAgICAgUmVnaXN0ZXJBdE9mZnNldCBl
bnRyeSA9IGNhbGxlZVNhdmVzLT5hdChpKTsKICAgICAgICAgaWYgKGRvbnRSZXN0b3JlUmVnaXN0
ZXJzLmdldChlbnRyeS5yZWcoKSkpCkBAIC05NCw4ICs5NCw4IEBAIHN0YXRpYyB2b2lkIHJlc3Rv
cmVDYWxsZWVTYXZlc0ZvcihDb250ZXh0JiBjb250ZXh0LCBDb2RlQmxvY2sqIGNvZGVCbG9jaykK
ICAgICAgICAgLy8gVGhlIGNhbGxlZSBzYXZlZCB2YWx1ZXMgY29tZSBmcm9tIHRoZSBvcmlnaW5h
bCBzdGFjaywgbm90IHRoZSByZWNvdmVyZWQgc3RhY2suCiAgICAgICAgIC8vIEhlbmNlLCB3ZSBy
ZWFkIHRoZSB2YWx1ZXMgZGlyZWN0bHkgZnJvbSB0aGUgcGh5c2ljYWwgc3RhY2sgbWVtb3J5IGlu
c3RlYWQgb2YKICAgICAgICAgLy8gZ29pbmcgdGhyb3VnaCBjb250ZXh0LnN0YWNrKCkuCi0gICAg
ICAgIEFTU0VSVCghKGVudHJ5Lm9mZnNldCgpICUgc2l6ZW9mKHVpbnRwdHJfdCkpKTsKLSAgICAg
ICAgY29udGV4dC5ncHIoZW50cnkucmVnKCkuZ3ByKCkpID0gcGh5c2ljYWxTdGFja0ZyYW1lW2Vu
dHJ5Lm9mZnNldCgpIC8gc2l6ZW9mKHVpbnRwdHJfdCldOworICAgICAgICBBU1NFUlQoIShlbnRy
eS5vZmZzZXQoKSAlIHNpemVvZihVQ1BVUmVnaXN0ZXIpKSk7CisgICAgICAgIGNvbnRleHQuZ3By
KGVudHJ5LnJlZygpLmdwcigpKSA9IHBoeXNpY2FsU3RhY2tGcmFtZVtlbnRyeS5vZmZzZXQoKSAv
IHNpemVvZihVQ1BVUmVnaXN0ZXIpXTsKICAgICB9CiB9CiAKQEAgLTExMyw3ICsxMTMsNyBAQCBz
dGF0aWMgdm9pZCBzYXZlQ2FsbGVlU2F2ZXNGb3IoQ29udGV4dCYgY29udGV4dCwgQ29kZUJsb2Nr
KiBjb2RlQmxvY2spCiAgICAgICAgIFJlZ2lzdGVyQXRPZmZzZXQgZW50cnkgPSBjYWxsZWVTYXZl
cy0+YXQoaSk7CiAgICAgICAgIGlmIChkb250U2F2ZVJlZ2lzdGVycy5nZXQoZW50cnkucmVnKCkp
KQogICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIHN0YWNrLnNldChjb250ZXh0LmZwKCks
IGVudHJ5Lm9mZnNldCgpLCBjb250ZXh0Lmdwcjx1aW50cHRyX3Q+KGVudHJ5LnJlZygpLmdwcigp
KSk7CisgICAgICAgIHN0YWNrLnNldChjb250ZXh0LmZwKCksIGVudHJ5Lm9mZnNldCgpLCBjb250
ZXh0LmdwcjxVQ1BVUmVnaXN0ZXI+KGVudHJ5LnJlZygpLmdwcigpKSk7CiAgICAgfQogfQogCkBA
IC0xMjcsMTQgKzEyNywxNCBAQCBzdGF0aWMgdm9pZCByZXN0b3JlQ2FsbGVlU2F2ZXNGcm9tVk1F
bnRyeUZyYW1lQ2FsbGVlU2F2ZXNCdWZmZXIoQ29udGV4dCYgY29udGV4dAogICAgIHVuc2lnbmVk
IHJlZ2lzdGVyQ291bnQgPSBhbGxDYWxsZWVTYXZlcy0+c2l6ZSgpOwogCiAgICAgVk1FbnRyeVJl
Y29yZCogZW50cnlSZWNvcmQgPSB2bUVudHJ5UmVjb3JkKHZtLnRvcEVudHJ5RnJhbWUpOwotICAg
IHVpbnRwdHJfdCogY2FsbGVlU2F2ZUJ1ZmZlciA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90
Kj4oZW50cnlSZWNvcmQtPmNhbGxlZVNhdmVSZWdpc3RlcnNCdWZmZXIpOworICAgIFVDUFVSZWdp
c3RlciogY2FsbGVlU2F2ZUJ1ZmZlciA9IHJlaW50ZXJwcmV0X2Nhc3Q8VUNQVVJlZ2lzdGVyKj4o
ZW50cnlSZWNvcmQtPmNhbGxlZVNhdmVSZWdpc3RlcnNCdWZmZXIpOwogCiAgICAgLy8gUmVzdG9y
ZSBhbGwgY2FsbGVlIHNhdmVzLgogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCByZWdpc3Rl
ckNvdW50OyBpKyspIHsKICAgICAgICAgUmVnaXN0ZXJBdE9mZnNldCBlbnRyeSA9IGFsbENhbGxl
ZVNhdmVzLT5hdChpKTsKICAgICAgICAgaWYgKGRvbnRSZXN0b3JlUmVnaXN0ZXJzLmdldChlbnRy
eS5yZWcoKSkpCiAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgc2l6ZV90IHVpbnRwdHJP
ZmZzZXQgPSBlbnRyeS5vZmZzZXQoKSAvIHNpemVvZih1aW50cHRyX3QpOworICAgICAgICBzaXpl
X3QgdWludHB0ck9mZnNldCA9IGVudHJ5Lm9mZnNldCgpIC8gc2l6ZW9mKFVDUFVSZWdpc3Rlcik7
CiAgICAgICAgIGlmIChlbnRyeS5yZWcoKS5pc0dQUigpKQogICAgICAgICAgICAgY29udGV4dC5n
cHIoZW50cnkucmVnKCkuZ3ByKCkpID0gY2FsbGVlU2F2ZUJ1ZmZlclt1aW50cHRyT2Zmc2V0XTsK
ICAgICAgICAgZWxzZQpAQCAtMTYwLDkgKzE2MCw5IEBAIHN0YXRpYyB2b2lkIGNvcHlDYWxsZWVT
YXZlc1RvVk1FbnRyeUZyYW1lQ2FsbGVlU2F2ZXNCdWZmZXIoQ29udGV4dCYgY29udGV4dCkKICAg
ICAgICAgaWYgKGRvbnRDb3B5UmVnaXN0ZXJzLmdldChlbnRyeS5yZWcoKSkpCiAgICAgICAgICAg
ICBjb250aW51ZTsKICAgICAgICAgaWYgKGVudHJ5LnJlZygpLmlzR1BSKCkpCi0gICAgICAgICAg
ICBzdGFjay5zZXQoY2FsbGVlU2F2ZUJ1ZmZlciwgZW50cnkub2Zmc2V0KCksIGNvbnRleHQuZ3By
PHVpbnRwdHJfdD4oZW50cnkucmVnKCkuZ3ByKCkpKTsKKyAgICAgICAgICAgIHN0YWNrLnNldChj
YWxsZWVTYXZlQnVmZmVyLCBlbnRyeS5vZmZzZXQoKSwgY29udGV4dC5ncHI8VUNQVVJlZ2lzdGVy
PihlbnRyeS5yZWcoKS5ncHIoKSkpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBzdGFjay5z
ZXQoY2FsbGVlU2F2ZUJ1ZmZlciwgZW50cnkub2Zmc2V0KCksIGNvbnRleHQuZnByPHVpbnRwdHJf
dD4oZW50cnkucmVnKCkuZnByKCkpKTsKKyAgICAgICAgICAgIHN0YWNrLnNldChjYWxsZWVTYXZl
QnVmZmVyLCBlbnRyeS5vZmZzZXQoKSwgY29udGV4dC5mcHI8VUNQVVJlZ2lzdGVyPihlbnRyeS5y
ZWcoKS5mcHIoKSkpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uY3BwCmluZGV4IDc2Y2EzYjgxOTg1NTVm
NjkyMzlmY2NiNGRlNjhjY2JjZDU1ODNlMjguLjExMWViZDMyYjA3YmM5OGM2MDE1NDhhZmE5ZmIy
NzdkM2ZhYzQwZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NS
RXhpdENvbXBpbGVyQ29tbW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R09TUkV4aXRDb21waWxlckNvbW1vbi5jcHAKQEAgLTIzMCw3ICsyMzAsNyBAQCB2b2lkIHJlaWZ5
SW5saW5lZENhbGxGcmFtZXMoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IE9TUkV4aXRCYXNlJiBl
eGl0KQogICAgICAgICBpZiAoIWlubGluZUNhbGxGcmFtZS0+aXNWYXJhcmdzKCkpCiAgICAgICAg
ICAgICBqaXQuc3RvcmUzMihBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMihpbmxpbmVDYWxs
RnJhbWUtPmFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzKSwgQXNzZW1ibHlIZWxwZXJzOjpwYXls
b2FkRm9yKChWaXJ0dWFsUmVnaXN0ZXIpKGlubGluZUNhbGxGcmFtZS0+c3RhY2tPZmZzZXQgKyBD
YWxsRnJhbWVTbG90Ojphcmd1bWVudENvdW50KSkpOwogI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAg
ICAgIGppdC5zdG9yZTY0KGNhbGxlckZyYW1lR1BSLCBBc3NlbWJseUhlbHBlcnM6OmFkZHJlc3NG
b3JCeXRlT2Zmc2V0KGlubGluZUNhbGxGcmFtZS0+Y2FsbGVyRnJhbWVPZmZzZXQoKSkpOworICAg
ICAgICBqaXQuc3RvcmVQdHIoY2FsbGVyRnJhbWVHUFIsIEFzc2VtYmx5SGVscGVyczo6YWRkcmVz
c0ZvckJ5dGVPZmZzZXQoaW5saW5lQ2FsbEZyYW1lLT5jYWxsZXJGcmFtZU9mZnNldCgpKSk7CiAg
ICAgICAgIHVpbnQzMl90IGxvY2F0aW9uQml0cyA9IENhbGxTaXRlSW5kZXgoY29kZU9yaWdpbi0+
Ynl0ZWNvZGVJbmRleCkuYml0cygpOwogICAgICAgICBqaXQuc3RvcmUzMihBc3NlbWJseUhlbHBl
cnM6OlRydXN0ZWRJbW0zMihsb2NhdGlvbkJpdHMpLCBBc3NlbWJseUhlbHBlcnM6OnRhZ0Zvcigo
VmlydHVhbFJlZ2lzdGVyKShpbmxpbmVDYWxsRnJhbWUtPnN0YWNrT2Zmc2V0ICsgQ2FsbEZyYW1l
U2xvdDo6YXJndW1lbnRDb3VudCkpKTsKICAgICAgICAgaWYgKCFpbmxpbmVDYWxsRnJhbWUtPmlz
Q2xvc3VyZUNhbGwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklUNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVDY0LmNwcAppbmRleCA0MWMyY2RjYTU2NTEyNmUyOTczNjE0OTQxMTNmN2U3MTI5ZGQ3
NzYwLi4yYzdkYjEyY2U3NzBkZGU5NzlhNTdkZDQ1N2ExOWZlMTI3Y2JjZTA2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKQEAgLTQ0
MDcsOCArNDQwNywxMCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUp
CiAgICAgICAgIG1faml0LmxvYWQzMihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhvYmplY3RHUFIs
IEpTQ2VsbDo6c3RydWN0dXJlSURPZmZzZXQoKSksIHN0cnVjdHVyZUlER1BSKTsKICAgICAgICAg
bV9qaXQuYWRkMzIoc3RydWN0dXJlSURHUFIsIGhhc2hHUFIpOwogICAgICAgICBtX2ppdC5hbmQz
MihUcnVzdGVkSW1tMzIoSGFzT3duUHJvcGVydHlDYWNoZTo6bWFzayksIGhhc2hHUFIpOwotICAg
ICAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihIYXNPd25Qcm9wZXJ0eUNhY2hlOjpFbnRyeSkgPT0g
MTYsICJTdHJvbmcgYXNzdW1wdGlvbiBvZiB0aGF0IGhlcmUuIik7Ci0gICAgICAgIG1faml0Lmxz
aGlmdDMyKFRydXN0ZWRJbW0zMig0KSwgaGFzaEdQUik7CisgICAgICAgIGlmIChoYXNPbmVCaXRT
ZXQoc2l6ZW9mKEhhc093blByb3BlcnR5Q2FjaGU6OkVudHJ5KSkpIC8vIGlzIGEgcG93ZXIgb2Yg
MgorICAgICAgICAgICAgbV9qaXQubHNoaWZ0MzIoVHJ1c3RlZEltbTMyKGdldExTQlNldChzaXpl
b2YoSGFzT3duUHJvcGVydHlDYWNoZTo6RW50cnkpKSksIGhhc2hHUFIpOworICAgICAgICBlbHNl
CisgICAgICAgICAgICBtX2ppdC5tdWwzMihUcnVzdGVkSW1tMzIoc2l6ZW9mKEhhc093blByb3Bl
cnR5Q2FjaGU6OkVudHJ5KSksIGhhc2hHUFIsIGhhc2hHUFIpOwogICAgICAgICBBU1NFUlQobV9q
aXQudm0oKS0+aGFzT3duUHJvcGVydHlDYWNoZSgpKTsKICAgICAgICAgbV9qaXQubW92ZShUcnVz
dGVkSW1tUHRyKG1faml0LnZtKCktPmhhc093blByb3BlcnR5Q2FjaGUoKSksIHRlbXBHUFIpOwog
ICAgICAgICBzbG93UGF0aC5hcHBlbmQobV9qaXQuYnJhbmNoUHRyKE1hY3JvQXNzZW1ibGVyOjpO
b3RFcXVhbCwgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGlzYXNzZW1ibGVy
L1VEaXM4NkRpc2Fzc2VtYmxlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGlzYXNzZW1i
bGVyL1VEaXM4NkRpc2Fzc2VtYmxlci5jcHAKaW5kZXggMWZmODE1NTE2M2Q0NmFjYTdkMzc1MzI3
YTY4M2Y3NDhhZjVkZjcxNC4uMmMxNjdmMjYwNjUwNDRlZGQ0MmZkYTE1YmU2YzYwYjQyNjFlYjJl
NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rpc2Fzc2VtYmxlci9VRGlzODZE
aXNhc3NlbWJsZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kaXNhc3NlbWJsZXIv
VURpczg2RGlzYXNzZW1ibGVyLmNwcApAQCAtNDksNyArNDksNyBAQCBib29sIHRyeVRvRGlzYXNz
ZW1ibGVXaXRoVURpczg2KGNvbnN0IE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxEaXNhc3NlbWJseVB0
clRhZz4mCiAgICAgdWludDY0X3QgY3VycmVudFBDID0gZGlzYXNzZW1ibGVyLnBjOwogICAgIHdo
aWxlICh1ZF9kaXNhc3NlbWJsZSgmZGlzYXNzZW1ibGVyKSkgewogICAgICAgICBjaGFyIHBjU3Ry
aW5nWzIwXTsKLSAgICAgICAgc25wcmludGYocGNTdHJpbmcsIHNpemVvZihwY1N0cmluZyksICIw
eCVseCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkIGxvbmc+KGN1cnJlbnRQQykpOworICAgICAgICBz
bnByaW50ZihwY1N0cmluZywgc2l6ZW9mKHBjU3RyaW5nKSwgIjB4JWx4Iiwgc3RhdGljX2Nhc3Q8
dWludHB0cl90PihjdXJyZW50UEMpKTsKICAgICAgICAgb3V0LnByaW50ZigiJXMlMTZzOiAlc1xu
IiwgcHJlZml4LCBwY1N0cmluZywgdWRfaW5zbl9hc20oJmRpc2Fzc2VtYmxlcikpOwogICAgICAg
ICBjdXJyZW50UEMgPSBkaXNhc3NlbWJsZXIucGM7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCmluZGV4IDYwN2Q3MzRmZmEyMDA5OTQ1YzQy
MDA0MGQ4YTFlZGQ2ZDdhZjY4OTUuLjA1NmFkODM2YmFiODllMmFhODU1MzU1Y2RmNzQ0MzJmNGVi
MmNkMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdU
b0IzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5j
cHAKQEAgLTk2NjMsMTIgKzk2NjMsMTMgQEAgcHJpdmF0ZToKICAgICAgICAgTFZhbHVlIGluZGV4
ID0gbV9vdXQuYml0QW5kKG1hc2ssIHVubWFza2VkSW5kZXgpOwogCiAgICAgICAgIExWYWx1ZSBi
dWNrZXQ7CisKICAgICAgICAgaWYgKG1fbm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpID09IFdlYWtN
YXBPYmplY3RVc2UpIHsKLSAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKFdlYWtNYXBC
dWNrZXQ8V2Vha01hcEJ1Y2tldERhdGFLZXlWYWx1ZT4pID09IDE2LCAiIik7Ci0gICAgICAgICAg
ICBidWNrZXQgPSBtX291dC5hZGQoYnVmZmVyLCBtX291dC5zaGwobV9vdXQuemVyb0V4dChpbmRl
eCwgSW50NjQpLCBtX291dC5jb25zdEludDMyKDQpKSk7CisgICAgICAgICAgICBzdGF0aWNfYXNz
ZXJ0KGhhc09uZUJpdFNldChzaXplb2YoV2Vha01hcEJ1Y2tldDxXZWFrTWFwQnVja2V0RGF0YUtl
eVZhbHVlPikpLCAiU2hvdWxkIGJlIGEgcG93ZXIgb2YgMiIpOworICAgICAgICAgICAgYnVja2V0
ID0gbV9vdXQuYWRkKGJ1ZmZlciwgbV9vdXQuc2hsKG1fb3V0Lnplcm9FeHQoaW5kZXgsIEludDY0
KSwgbV9vdXQuY29uc3RJbnQzMihnZXRMU0JTZXQoc2l6ZW9mKFdlYWtNYXBCdWNrZXQ8V2Vha01h
cEJ1Y2tldERhdGFLZXlWYWx1ZT4pKSkpKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAg
IHN0YXRpY19hc3NlcnQoc2l6ZW9mKFdlYWtNYXBCdWNrZXQ8V2Vha01hcEJ1Y2tldERhdGFLZXk+
KSA9PSA4LCAiIik7Ci0gICAgICAgICAgICBidWNrZXQgPSBtX291dC5hZGQoYnVmZmVyLCBtX291
dC5zaGwobV9vdXQuemVyb0V4dChpbmRleCwgSW50NjQpLCBtX291dC5jb25zdEludDMyKDMpKSk7
CisgICAgICAgICAgICBzdGF0aWNfYXNzZXJ0KGhhc09uZUJpdFNldChzaXplb2YoV2Vha01hcEJ1
Y2tldDxXZWFrTWFwQnVja2V0RGF0YUtleT4pKSwgIlNob3VsZCBiZSBhIHBvd2VyIG9mIDIiKTsK
KyAgICAgICAgICAgIGJ1Y2tldCA9IG1fb3V0LmFkZChidWZmZXIsIG1fb3V0LnNobChtX291dC56
ZXJvRXh0KGluZGV4LCBJbnQ2NCksIG1fb3V0LmNvbnN0SW50MzIoZ2V0TFNCU2V0KHNpemVvZihX
ZWFrTWFwQnVja2V0PFdlYWtNYXBCdWNrZXREYXRhS2V5PikpKSkpOwogICAgICAgICB9CiAKICAg
ICAgICAgTFZhbHVlIGJ1Y2tldEtleSA9IG1fb3V0LmxvYWQ2NChidWNrZXQsIG1faGVhcHMuV2Vh
a01hcEJ1Y2tldF9rZXkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
TWFjaGluZVN0YWNrTWFya2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hY2hp
bmVTdGFja01hcmtlci5jcHAKaW5kZXggOGY2YzYyMDU1NjcxMjBhY2Y0ZWYzZGExMGRmOTgzNTJj
MDA3NGY0My4uMGJjMGI4ZThkOTIwOWU1ODkzNjM1N2MzODA0ODMyMTM1YWIwYWJiYSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFjaGluZVN0YWNrTWFya2VyLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYWNoaW5lU3RhY2tNYXJrZXIuY3BwCkBA
IC04NywxMyArODcsMTMgQEAgc3RhdGljIHZvaWQgY29weU1lbW9yeSh2b2lkKiBkc3QsIGNvbnN0
IHZvaWQqIHNyYywgc2l6ZV90IHNpemUpCiB7CiAgICAgc2l6ZV90IGRzdEFzU2l6ZSA9IHJlaW50
ZXJwcmV0X2Nhc3Q8c2l6ZV90Pihkc3QpOwogICAgIHNpemVfdCBzcmNBc1NpemUgPSByZWludGVy
cHJldF9jYXN0PHNpemVfdD4oc3JjKTsKLSAgICBSRUxFQVNFX0FTU0VSVChkc3RBc1NpemUgPT0g
V1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9mPHNpemVvZihpbnRwdHJfdCk+KGRzdEFzU2l6ZSkpOwot
ICAgIFJFTEVBU0VfQVNTRVJUKHNyY0FzU2l6ZSA9PSBXVEY6OnJvdW5kVXBUb011bHRpcGxlT2Y8
c2l6ZW9mKGludHB0cl90KT4oc3JjQXNTaXplKSk7Ci0gICAgUkVMRUFTRV9BU1NFUlQoc2l6ZSA9
PSBXVEY6OnJvdW5kVXBUb011bHRpcGxlT2Y8c2l6ZW9mKGludHB0cl90KT4oc2l6ZSkpOworICAg
IFJFTEVBU0VfQVNTRVJUKGRzdEFzU2l6ZSA9PSBXVEY6OnJvdW5kVXBUb011bHRpcGxlT2Y8c2l6
ZW9mKENQVVJlZ2lzdGVyKT4oZHN0QXNTaXplKSk7CisgICAgUkVMRUFTRV9BU1NFUlQoc3JjQXNT
aXplID09IFdURjo6cm91bmRVcFRvTXVsdGlwbGVPZjxzaXplb2YoQ1BVUmVnaXN0ZXIpPihzcmNB
c1NpemUpKTsKKyAgICBSRUxFQVNFX0FTU0VSVChzaXplID09IFdURjo6cm91bmRVcFRvTXVsdGlw
bGVPZjxzaXplb2YoQ1BVUmVnaXN0ZXIpPihzaXplKSk7CiAKLSAgICBpbnRwdHJfdCogZHN0UHRy
ID0gcmVpbnRlcnByZXRfY2FzdDxpbnRwdHJfdCo+KGRzdCk7Ci0gICAgY29uc3QgaW50cHRyX3Qq
IHNyY1B0ciA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgaW50cHRyX3QqPihzcmMpOwotICAgIHNp
emUgLz0gc2l6ZW9mKGludHB0cl90KTsKKyAgICBDUFVSZWdpc3RlciogZHN0UHRyID0gcmVpbnRl
cnByZXRfY2FzdDxDUFVSZWdpc3Rlcio+KGRzdCk7CisgICAgY29uc3QgQ1BVUmVnaXN0ZXIqIHNy
Y1B0ciA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgQ1BVUmVnaXN0ZXIqPihzcmMpOworICAgIHNp
emUgLz0gc2l6ZW9mKENQVVJlZ2lzdGVyKTsKICAgICB3aGlsZSAoc2l6ZS0tKQogICAgICAgICAq
ZHN0UHRyKysgPSAqc3JjUHRyKys7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJw
cmV0ZXIvQ2FsbEZyYW1lLmgKaW5kZXggNjNhYTlhYWYxYjRmOWE0NmM0N2NiYzdkMGQxZjZmZjg3
OTFjOTliOS4uZmY0OWEyM2ExOTU3NjlkZDEwYzlkZGMyYTcyZGI0ZmI3YjdjNmE5YSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsRnJhbWUuaApAQCAtNjcsMTAg
KzY3LDExIEBAIG5hbWVzcGFjZSBKU0MgIHsKICAgICAgICAgdWludDMyX3QgbV9iaXRzOwogICAg
IH07CiAKKyAgICAvLyBhcm02NF8zMiBleHBlY3RzIGNhbGxlciBmcmFtZSBhbmQgcmV0dXJuIHBj
IHRvIHVzZSA4IGJ5dGVzIAogICAgIHN0cnVjdCBDYWxsZXJGcmFtZUFuZFBDIHsKLSAgICAgICAg
Q2FsbEZyYW1lKiBjYWxsZXJGcmFtZTsKLSAgICAgICAgSW5zdHJ1Y3Rpb24qIHBjOwotICAgICAg
ICBzdGF0aWMgY29uc3QgaW50IHNpemVJblJlZ2lzdGVycyA9IDIgKiBzaXplb2Yodm9pZCopIC8g
c2l6ZW9mKFJlZ2lzdGVyKTsKKyAgICAgICAgYWxpZ25hcyhDUFVSZWdpc3RlcikgQ2FsbEZyYW1l
KiBjYWxsZXJGcmFtZTsKKyAgICAgICAgYWxpZ25hcyhDUFVSZWdpc3RlcikgSW5zdHJ1Y3Rpb24q
IHJldHVyblBDOworICAgICAgICBzdGF0aWMgY29uc3QgaW50IHNpemVJblJlZ2lzdGVycyA9IDIg
KiBzaXplb2YoQ1BVUmVnaXN0ZXIpIC8gc2l6ZW9mKFJlZ2lzdGVyKTsKICAgICB9OwogICAgIHN0
YXRpY19hc3NlcnQoQ2FsbGVyRnJhbWVBbmRQQzo6c2l6ZUluUmVnaXN0ZXJzID09IHNpemVvZihD
YWxsZXJGcmFtZUFuZFBDKSAvIHNpemVvZihSZWdpc3RlciksICJDYWxsZXJGcmFtZUFuZFBDOjpz
aXplSW5SZWdpc3RlcnMgaXMgaW5jb3JyZWN0LiIpOwogCkBAIC0xNDcsMTAgKzE0OCwxMCBAQCBu
YW1lc3BhY2UgSlNDICB7CiAKICAgICAgICAgc3RhdGljIHB0cmRpZmZfdCBjYWxsZXJGcmFtZU9m
ZnNldCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihDYWxsZXJGcmFtZUFuZFBDLCBjYWxsZXJG
cmFtZSk7IH0KIAotICAgICAgICBSZXR1cm5BZGRyZXNzUHRyIHJldHVyblBDKCkgY29uc3QgeyBy
ZXR1cm4gUmV0dXJuQWRkcmVzc1B0cihjYWxsZXJGcmFtZUFuZFBDKCkucGMpOyB9Ci0gICAgICAg
IGJvb2wgaGFzUmV0dXJuUEMoKSBjb25zdCB7IHJldHVybiAhIWNhbGxlckZyYW1lQW5kUEMoKS5w
YzsgfQotICAgICAgICB2b2lkIGNsZWFyUmV0dXJuUEMoKSB7IGNhbGxlckZyYW1lQW5kUEMoKS5w
YyA9IDA7IH0KLSAgICAgICAgc3RhdGljIHB0cmRpZmZfdCByZXR1cm5QQ09mZnNldCgpIHsgcmV0
dXJuIE9CSkVDVF9PRkZTRVRPRihDYWxsZXJGcmFtZUFuZFBDLCBwYyk7IH0KKyAgICAgICAgUmV0
dXJuQWRkcmVzc1B0ciByZXR1cm5QQygpIGNvbnN0IHsgcmV0dXJuIFJldHVybkFkZHJlc3NQdHIo
Y2FsbGVyRnJhbWVBbmRQQygpLnJldHVyblBDKTsgfQorICAgICAgICBib29sIGhhc1JldHVyblBD
KCkgY29uc3QgeyByZXR1cm4gISFjYWxsZXJGcmFtZUFuZFBDKCkucmV0dXJuUEM7IH0KKyAgICAg
ICAgdm9pZCBjbGVhclJldHVyblBDKCkgeyBjYWxsZXJGcmFtZUFuZFBDKCkucmV0dXJuUEMgPSAw
OyB9CisgICAgICAgIHN0YXRpYyBwdHJkaWZmX3QgcmV0dXJuUENPZmZzZXQoKSB7IHJldHVybiBP
QkpFQ1RfT0ZGU0VUT0YoQ2FsbGVyRnJhbWVBbmRQQywgcmV0dXJuUEMpOyB9CiAgICAgICAgIEFi
c3RyYWN0UEMgYWJzdHJhY3RSZXR1cm5QQyhWTSYgdm0pIHsgcmV0dXJuIEFic3RyYWN0UEModm0s
IHRoaXMpOyB9CiAKICAgICAgICAgYm9vbCBjYWxsU2l0ZUJpdHNBcmVCeXRlY29kZU9mZnNldCgp
IGNvbnN0OwpAQCAtMjUzLDcgKzI1NCw3IEBAIG5hbWVzcGFjZSBKU0MgIHsKICAgICAgICAgc3Rh
dGljIENhbGxGcmFtZSogbm9DYWxsZXIoKSB7IHJldHVybiBudWxscHRyOyB9CiAgICAgICAgIGJv
b2wgaXNHbG9iYWxFeGVjKCkgY29uc3QKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGNh
bGxlckZyYW1lQW5kUEMoKS5jYWxsZXJGcmFtZSA9PSBub0NhbGxlcigpICYmIGNhbGxlckZyYW1l
QW5kUEMoKS5wYyA9PSBudWxscHRyOworICAgICAgICAgICAgcmV0dXJuIGNhbGxlckZyYW1lQW5k
UEMoKS5jYWxsZXJGcmFtZSA9PSBub0NhbGxlcigpICYmIGNhbGxlckZyYW1lQW5kUEMoKS5yZXR1
cm5QQyA9PSBudWxscHRyOwogICAgICAgICB9CiAKICAgICAgICAgdm9pZCBjb252ZXJ0VG9TdGFj
a092ZXJmbG93RnJhbWUoVk0mKTsKQEAgLTI2Myw3ICsyNjQsNyBAQCBuYW1lc3BhY2UgSlNDICB7
CiAgICAgICAgIHZvaWQgc2V0QXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMoaW50IGNvdW50KSB7
IHN0YXRpY19jYXN0PFJlZ2lzdGVyKj4odGhpcylbQ2FsbEZyYW1lU2xvdDo6YXJndW1lbnRDb3Vu
dF0ucGF5bG9hZCgpID0gY291bnQ7IH0KICAgICAgICAgdm9pZCBzZXRDYWxsZWUoSlNPYmplY3Qq
IGNhbGxlZSkgeyBzdGF0aWNfY2FzdDxSZWdpc3Rlcio+KHRoaXMpW0NhbGxGcmFtZVNsb3Q6OmNh
bGxlZV0gPSBjYWxsZWU7IH0KICAgICAgICAgdm9pZCBzZXRDb2RlQmxvY2soQ29kZUJsb2NrKiBj
b2RlQmxvY2spIHsgc3RhdGljX2Nhc3Q8UmVnaXN0ZXIqPih0aGlzKVtDYWxsRnJhbWVTbG90Ojpj
b2RlQmxvY2tdID0gY29kZUJsb2NrOyB9Ci0gICAgICAgIHZvaWQgc2V0UmV0dXJuUEModm9pZCog
dmFsdWUpIHsgY2FsbGVyRnJhbWVBbmRQQygpLnBjID0gcmVpbnRlcnByZXRfY2FzdDxJbnN0cnVj
dGlvbio+KHZhbHVlKTsgfQorICAgICAgICB2b2lkIHNldFJldHVyblBDKHZvaWQqIHZhbHVlKSB7
IGNhbGxlckZyYW1lQW5kUEMoKS5yZXR1cm5QQyA9IHJlaW50ZXJwcmV0X2Nhc3Q8SW5zdHJ1Y3Rp
b24qPih2YWx1ZSk7IH0KIAogICAgICAgICBTdHJpbmcgZnJpZW5kbHlGdW5jdGlvbk5hbWUoKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxlZUJp
dHMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsZWVCaXRzLmgKaW5k
ZXggZTRhOTg0ZDFlOTY3OTYzY2Q4ZDkyYjg0NmNhNzZmYTliMzFlYjQxYy4uODVjM2VkODhjMWMy
YmYzMjFlNjkyZGI3M2YyZWVjOTdmMDBjMDc0ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ludGVycHJldGVyL0NhbGxlZUJpdHMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW50ZXJwcmV0ZXIvQ2FsbGVlQml0cy5oCkBAIC01MSw3ICs1MSw3IEBAIHB1YmxpYzoKICNp
ZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAgICAgc3RhdGljIHZvaWQqIGJveFdhc20oV2FzbTo6Q2Fs
bGVlKiBjYWxsZWUpCiAgICAgewotICAgICAgICBDYWxsZWVCaXRzIHJlc3VsdChiaXR3aXNlX2Nh
c3Q8dm9pZCo+KGJpdHdpc2VfY2FzdDx1aW50cHRyX3Q+KGNhbGxlZSkgfCBUYWdCaXRzV2FzbSkp
OworICAgICAgICBDYWxsZWVCaXRzIHJlc3VsdChyZWludGVycHJldF9jYXN0PHZvaWQqPihyZWlu
dGVycHJldF9jYXN0PHVpbnRwdHJfdD4oY2FsbGVlKSB8IFRhZ0JpdHNXYXNtKSk7CiAgICAgICAg
IEFTU0VSVChyZXN1bHQuaXNXYXNtKCkpOwogICAgICAgICByZXR1cm4gcmVzdWx0LnJhd1B0cigp
OwogICAgIH0KQEAgLTYwLDcgKzYwLDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNXYXNtKCkgY29u
c3QKICAgICB7CiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQotICAgICAgICByZXR1cm4gKGJpdHdp
c2VfY2FzdDx1aW50cHRyX3Q+KG1fcHRyKSAmIFRhZ1dhc21NYXNrKSA9PSBUYWdCaXRzV2FzbTsK
KyAgICAgICAgcmV0dXJuIChyZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4obV9wdHIpICYgVGFn
V2FzbU1hc2spID09IFRhZ0JpdHNXYXNtOwogI2Vsc2UKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
I2VuZGlmCkBAIC03Nyw3ICs3Nyw3IEBAIHB1YmxpYzoKICAgICBXYXNtOjpDYWxsZWUqIGFzV2Fz
bUNhbGxlZSgpIGNvbnN0CiAgICAgewogICAgICAgICBBU1NFUlQoaXNXYXNtKCkpOwotICAgICAg
ICByZXR1cm4gYml0d2lzZV9jYXN0PFdhc206OkNhbGxlZSo+KGJpdHdpc2VfY2FzdDx1aW50cHRy
X3Q+KG1fcHRyKSAmIH5UYWdCaXRzV2FzbSk7CisgICAgICAgIHJldHVybiByZWludGVycHJldF9j
YXN0PFdhc206OkNhbGxlZSo+KHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihtX3B0cikgJiB+
VGFnQml0c1dhc20pOwogICAgIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAppbmRleCA2ZTY2OGM3NzRiNmEzMDkzZjRj
NDYzNDJlYzViMWFkYmU5ZDBmN2U0Li5iNDVkODkwMzE3YTM1OTI4Yzk0ZDlmYTYwMzMyYmZhN2E0
OTJiZTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50
ZXJwcmV0ZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRl
cnByZXRlci5jcHAKQEAgLTU2OSw3ICs1NjksNyBAQCBwcml2YXRlOgogCiAgICAgICAgIFJlZ2lz
dGVyQXRPZmZzZXRMaXN0KiBhbGxDYWxsZWVTYXZlcyA9IFJlZ2lzdGVyU2V0Ojp2bUNhbGxlZVNh
dmVSZWdpc3Rlck9mZnNldHMoKTsKICAgICAgICAgUmVnaXN0ZXJTZXQgZG9udENvcHlSZWdpc3Rl
cnMgPSBSZWdpc3RlclNldDo6c3RhY2tSZWdpc3RlcnMoKTsKLSAgICAgICAgaW50cHRyX3QqIGZy
YW1lID0gcmVpbnRlcnByZXRfY2FzdDxpbnRwdHJfdCo+KG1fY2FsbEZyYW1lLT5yZWdpc3RlcnMo
KSk7CisgICAgICAgIENQVVJlZ2lzdGVyKiBmcmFtZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8Q1BVUmVn
aXN0ZXIqPihtX2NhbGxGcmFtZS0+cmVnaXN0ZXJzKCkpOwogCiAgICAgICAgIHVuc2lnbmVkIHJl
Z2lzdGVyQ291bnQgPSBjdXJyZW50Q2FsbGVlU2F2ZXMtPnNpemUoKTsKICAgICAgICAgVk1FbnRy
eVJlY29yZCogcmVjb3JkID0gdm1FbnRyeVJlY29yZChtX3ZtLnRvcEVudHJ5RnJhbWUpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1ZNRW50cnlSZWNvcmQu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9WTUVudHJ5UmVjb3JkLmgKaW5k
ZXggMjFhZTM1YjY5MWRjM2VkZWE5ZmE3ZjBkN2RhYjU5ZDdjMjZjYWVjMy4uNmI2ZWI3MzFiM2I5
YmM2YTQ3NjhmYzhkYWY4NTIxNDk0YWYyNDc5NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ludGVycHJldGVyL1ZNRW50cnlSZWNvcmQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW50ZXJwcmV0ZXIvVk1FbnRyeVJlY29yZC5oCkBAIC00Nyw3ICs0Nyw3IEBAIHN0cnVj
dCBWTUVudHJ5UmVjb3JkIHsKICAgICBKU09iamVjdCogY2FsbGVlKCkgY29uc3QgeyByZXR1cm4g
bV9jYWxsZWU7IH0KIAogI2lmICFFTkFCTEUoQ19MT09QKSAmJiBOVU1CRVJfT0ZfQ0FMTEVFX1NB
VkVTX1JFR0lTVEVSUyA+IDAKLSAgICBpbnRwdHJfdCBjYWxsZWVTYXZlUmVnaXN0ZXJzQnVmZmVy
W05VTUJFUl9PRl9DQUxMRUVfU0FWRVNfUkVHSVNURVJTXTsKKyAgICBDUFVSZWdpc3RlciBjYWxs
ZWVTYXZlUmVnaXN0ZXJzQnVmZmVyW05VTUJFUl9PRl9DQUxMRUVfU0FWRVNfUkVHSVNURVJTXTsK
ICNlbmRpZgogCiAgICAgRXhlY1N0YXRlKiBwcmV2VG9wQ2FsbEZyYW1lKCkgeyByZXR1cm4gbV9w
cmV2VG9wQ2FsbEZyYW1lOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0Fzc2VtYmx5SGVscGVycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhl
bHBlcnMuaAppbmRleCA5ZGExMzJhMmNkMWI0NGFkZGM3OTVkMGJlMDcxZDM3NjRjOTlhMDNjLi45
YTM1MmUxZmVlZDI5MGU0YjNhN2Q5ODVjYjg1ZDUwMGQ4ODYyZjg2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKQEAgLTQ2MSwxMSArNDYxLDExIEBAIHB1
YmxpYzoKICAgICB7CiAgICAgICAgIEFTU0VSVChmcmFtZVNpemUgJSBzdGFja0FsaWdubWVudEJ5
dGVzKCkgPT0gMCk7CiAgICAgICAgIGlmIChmcmFtZVNpemUgPD0gMTI4KSB7Ci0gICAgICAgICAg
ICBmb3IgKHVuc2lnbmVkIG9mZnNldCA9IDA7IG9mZnNldCA8IGZyYW1lU2l6ZTsgb2Zmc2V0ICs9
IHNpemVvZihpbnRwdHJfdCkpCisgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIG9mZnNldCA9IDA7
IG9mZnNldCA8IGZyYW1lU2l6ZTsgb2Zmc2V0ICs9IHNpemVvZihDUFVSZWdpc3RlcikpCiAgICAg
ICAgICAgICAgICAgc3RvcmVQdHIoVHJ1c3RlZEltbTMyKDApLCBBZGRyZXNzKGN1cnJlbnRUb3As
IC04IC0gb2Zmc2V0KSk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBjb25zdGV4cHIg
dW5zaWduZWQgc3RvcmVCeXRlc1Blckl0ZXJhdGlvbiA9IHN0YWNrQWxpZ25tZW50Qnl0ZXMoKTsK
LSAgICAgICAgICAgIGNvbnN0ZXhwciB1bnNpZ25lZCBzdG9yZXNQZXJJdGVyYXRpb24gPSBzdG9y
ZUJ5dGVzUGVySXRlcmF0aW9uIC8gc2l6ZW9mKGludHB0cl90KTsKKyAgICAgICAgICAgIGNvbnN0
ZXhwciB1bnNpZ25lZCBzdG9yZXNQZXJJdGVyYXRpb24gPSBzdG9yZUJ5dGVzUGVySXRlcmF0aW9u
IC8gc2l6ZW9mKENQVVJlZ2lzdGVyKTsKIAogICAgICAgICAgICAgbW92ZShjdXJyZW50VG9wLCB0
ZW1wKTsKICAgICAgICAgICAgIExhYmVsIHplcm9Mb29wID0gbGFiZWwoKTsKQEAgLTQ3NSw3ICs0
NzUsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICBzdG9yZVBhaXI2NChBUk02NFJlZ2lzdGVyczo6
enIsIEFSTTY0UmVnaXN0ZXJzOjp6ciwgdGVtcCk7CiAjZWxzZQogICAgICAgICAgICAgZm9yICh1
bnNpZ25lZCBpID0gc3RvcmVzUGVySXRlcmF0aW9uOyBpLS0gIT0gMDspCi0gICAgICAgICAgICAg
ICAgc3RvcmVQdHIoVHJ1c3RlZEltbTMyKDApLCBBZGRyZXNzKHRlbXAsIHNpemVvZihpbnRwdHJf
dCkgKiBpKSk7CisgICAgICAgICAgICAgICAgc3RvcmVQdHIoVHJ1c3RlZEltbTMyKDApLCBBZGRy
ZXNzKHRlbXAsIHNpemVvZihDUFVSZWdpc3RlcikgKiBpKSk7CiAjZW5kaWYKICAgICAgICAgICAg
IGJyYW5jaFB0cihOb3RFcXVhbCwgdGVtcCwgbmV3VG9wKS5saW5rVG8oemVyb0xvb3AsIHRoaXMp
OwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZ2lz
dGVyQXRPZmZzZXQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJBdE9mZnNl
dC5oCmluZGV4IGNkNDE1YjZkNjY5ZjkzOWZmMWQzNWNmMzFjN2NkN2I0YTIwZTkyYzQuLjhlNTk3
NDY0YTc4ZDM0NDVmMTgxOWQxMzFlOTQ1MDVlMDc3NzE5OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJBdE9mZnNldC5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvUmVnaXN0ZXJBdE9mZnNldC5oCkBAIC00OSw3ICs0OSw3IEBAIHB1YmxpYzoK
ICAgICAKICAgICBSZWcgcmVnKCkgY29uc3QgeyByZXR1cm4gbV9yZWc7IH0KICAgICBwdHJkaWZm
X3Qgb2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gbV9vZmZzZXQ7IH0KLSAgICBpbnQgb2Zmc2V0QXNJ
bmRleCgpIGNvbnN0IHsgcmV0dXJuIG9mZnNldCgpIC8gc2l6ZW9mKHZvaWQqKTsgfQorICAgIGlu
dCBvZmZzZXRBc0luZGV4KCkgY29uc3QgeyBBU1NFUlQoIShvZmZzZXQoKSAlIHNpemVvZihDUFVS
ZWdpc3RlcikpKTsgcmV0dXJuIG9mZnNldCgpIC8gc3RhdGljX2Nhc3Q8aW50PihzaXplb2YoQ1BV
UmVnaXN0ZXIpKTsgfQogICAgIAogICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBSZWdpc3RlckF0
T2Zmc2V0JiBvdGhlcikgY29uc3QKICAgICB7CkBAIC02OSw3ICs2OSw3IEBAIHB1YmxpYzoKIAog
cHJpdmF0ZToKICAgICBSZWcgbV9yZWc7Ci0gICAgcHRyZGlmZl90IG1fb2Zmc2V0IDogc2l6ZW9m
KHB0cmRpZmZfdCkgKiA4IC0gc2l6ZW9mKFJlZykgKiA4OworICAgIHB0cmRpZmZfdCBtX29mZnNl
dCA6IChzaXplb2YocHRyZGlmZl90KSAtIHNpemVvZihSZWcpKSAqIENIQVJfQklUOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L1JlZ2lzdGVyQXRPZmZzZXRMaXN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVn
aXN0ZXJBdE9mZnNldExpc3QuY3BwCmluZGV4IDZmZTA2ZTc3NjJiNGE0NzlkZDA1MTQ2ODYwYWFl
OWI0ZGQxYTNmYmQuLjQ5MjUyZmMyMzAwYjdmMmIzZDg2ZjUzYjhlZThjNDdlYTcwNzUyMzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJBdE9mZnNldExpc3Qu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJBdE9mZnNldExpc3Qu
Y3BwCkBAIC00MCwxMiArNDAsMTIgQEAgUmVnaXN0ZXJBdE9mZnNldExpc3Q6OlJlZ2lzdGVyQXRP
ZmZzZXRMaXN0KFJlZ2lzdGVyU2V0IHJlZ2lzdGVyU2V0LCBPZmZzZXRCYXNlVHkKICAgICBwdHJk
aWZmX3Qgb2Zmc2V0ID0gMDsKICAgICAKICAgICBpZiAob2Zmc2V0QmFzZVR5cGUgPT0gRnJhbWVQ
b2ludGVyQmFzZWQpCi0gICAgICAgIG9mZnNldCA9IC0oc3RhdGljX2Nhc3Q8cHRyZGlmZl90Pihu
dW1iZXJPZlJlZ2lzdGVycykgKiBzaXplb2Yodm9pZCopKTsKKyAgICAgICAgb2Zmc2V0ID0gLShz
dGF0aWNfY2FzdDxwdHJkaWZmX3Q+KG51bWJlck9mUmVnaXN0ZXJzKSAqIHNpemVvZihDUFVSZWdp
c3RlcikpOwogCiAgICAgbV9yZWdpc3RlcnMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShudW1iZXJP
ZlJlZ2lzdGVycyk7CiAgICAgcmVnaXN0ZXJTZXQuZm9yRWFjaChbJl0gKFJlZyByZWcpIHsKICAg
ICAgICAgbV9yZWdpc3RlcnMuYXBwZW5kKFJlZ2lzdGVyQXRPZmZzZXQocmVnLCBvZmZzZXQpKTsK
LSAgICAgICAgb2Zmc2V0ICs9IHNpemVvZih2b2lkKik7CisgICAgICAgIG9mZnNldCArPSBzaXpl
b2YoQ1BVUmVnaXN0ZXIpOwogICAgIH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTExJbnRDb21tb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGlu
dC9MTEludENvbW1vbi5oCmluZGV4IDk1MWQ3NjlkNjkyNDliZjNhYzk4ZjQ0MDgzNDFmNjUxMDJh
OTU1YzEuLjM5ZjJjZjg4YmZhMmMwMzM2YTU5NWY3YTczZjQ3NDE2NjJmMzM2MWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludENvbW1vbi5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludENvbW1vbi5oCkBAIC0yNSwxMSArMjUsMTcgQEAK
IAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgorCiAvLyBFbmFi
bGVzIExMSU5UIHRyYWNpbmcuCiAvLyAtIFByaW50cyBldmVyeSBpbnN0cnVjdGlvbiBleGVjdXRl
ZCBpZiBPcHRpb25zOjp0cmFjZUxMSW50RXhlY3V0aW9uKCkgaXMgZW5hYmxlZC4KIC8vIC0gUHJp
bnRzIHNvbWUgaW5mb3JtYXRpb24gZm9yIHNvbWUgb2YgdGhlIG1vcmUgc3VidGxlIHNsb3cgcGF0
aHMgaWYKIC8vICAgT3B0aW9uczo6dHJhY2VMTEludFNsb3dQYXRoKCkgaXMgZW5hYmxlZC4KKyNp
ZmRlZiBOREVCVUcKICNkZWZpbmUgTExJTlRfVFJBQ0lORyAwCisjZWxzZQorI2RlZmluZSBMTElO
VF9UUkFDSU5HIDEKKyNlbmRpZgogCiAvLyBEaXNhYmxlIGlubGluZSBhbGxvY2F0aW9uIGluIHRo
ZSBpbnRlcnByZXRlci4gVGhpcyBpcyBncmVhdCBpZiB5b3UncmUgY2hhbmdpbmcKIC8vIGhvdyB0
aGUgR0MgYWxsb2NhdGVzLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L0xMSW50RGF0YS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnREYXRhLmNw
cAppbmRleCAwZGQwNDU0MzM0Nzk3N2M1NjczYmZlZWJkZTM4YjhjNTIxZDI3ZDY5Li44NTAxMDYy
MTJkMzVhODhhZDdhODY3YTcxZGQ2ZmIyOWEyMDZlNmYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTExJbnREYXRhLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTExJbnREYXRhLmNwcApAQCAtNzYsMjIgKzc2LDIxIEBAIHZvaWQgRGF0YTo6cGVy
Zm9ybUFzc2VydGlvbnMoVk0mIHZtKQogICAgIC8vIHByZXBhcmVkIHRvIGNoYW5nZSBMb3dMZXZl
bEludGVycHJldGVyLmFzbSBhcyB3ZWxsISEKIAogI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAgY29u
c3QgcHRyZGlmZl90IFB0clNpemUgPSA4OwogICAgIGNvbnN0IHB0cmRpZmZfdCBDYWxsRnJhbWVI
ZWFkZXJTbG90cyA9IDU7CisgICAgY29uc3QgcHRyZGlmZl90IE1hY2hpbmVSZWdpc3RlclNpemUg
PSA4OwogI2Vsc2UgLy8gVVNFKEpTVkFMVUU2NCkgLy8gaS5lLiAzMi1iaXQgdmVyc2lvbgotICAg
IGNvbnN0IHB0cmRpZmZfdCBQdHJTaXplID0gNDsKICAgICBjb25zdCBwdHJkaWZmX3QgQ2FsbEZy
YW1lSGVhZGVyU2xvdHMgPSA0OworICAgIGNvbnN0IHB0cmRpZmZfdCBNYWNoaW5lUmVnaXN0ZXJT
aXplID0gNDsKICNlbmRpZgogICAgIGNvbnN0IHB0cmRpZmZfdCBTbG90U2l6ZSA9IDg7CiAKLSAg
ICBTVEFUSUNfQVNTRVJUKHNpemVvZih2b2lkKikgPT0gUHRyU2l6ZSk7CiAgICAgU1RBVElDX0FT
U0VSVChzaXplb2YoUmVnaXN0ZXIpID09IFNsb3RTaXplKTsKICAgICBTVEFUSUNfQVNTRVJUKENh
bGxGcmFtZTo6aGVhZGVyU2l6ZUluUmVnaXN0ZXJzID09IENhbGxGcmFtZUhlYWRlclNsb3RzKTsK
IAogICAgIEFTU0VSVCghQ2FsbEZyYW1lOjpjYWxsZXJGcmFtZU9mZnNldCgpKTsKLSAgICBTVEFU
SUNfQVNTRVJUKENhbGxlckZyYW1lQW5kUEM6OnNpemVJblJlZ2lzdGVycyA9PSAoUHRyU2l6ZSAq
IDIpIC8gU2xvdFNpemUpOwotICAgIEFTU0VSVChDYWxsRnJhbWU6OnJldHVyblBDT2Zmc2V0KCkg
PT0gQ2FsbEZyYW1lOjpjYWxsZXJGcmFtZU9mZnNldCgpICsgUHRyU2l6ZSk7Ci0gICAgQVNTRVJU
KENhbGxGcmFtZVNsb3Q6OmNvZGVCbG9jayAqIHNpemVvZihSZWdpc3RlcikgPT0gQ2FsbEZyYW1l
OjpyZXR1cm5QQ09mZnNldCgpICsgUHRyU2l6ZSk7CisgICAgU1RBVElDX0FTU0VSVChDYWxsZXJG
cmFtZUFuZFBDOjpzaXplSW5SZWdpc3RlcnMgPT0gKE1hY2hpbmVSZWdpc3RlclNpemUgKiAyKSAv
IFNsb3RTaXplKTsKKyAgICBBU1NFUlQoQ2FsbEZyYW1lOjpyZXR1cm5QQ09mZnNldCgpID09IENh
bGxGcmFtZTo6Y2FsbGVyRnJhbWVPZmZzZXQoKSArIE1hY2hpbmVSZWdpc3RlclNpemUpOworICAg
IEFTU0VSVChDYWxsRnJhbWVTbG90Ojpjb2RlQmxvY2sgKiBzaXplb2YoUmVnaXN0ZXIpID09IENh
bGxGcmFtZTo6cmV0dXJuUENPZmZzZXQoKSArIE1hY2hpbmVSZWdpc3RlclNpemUpOwogICAgIFNU
QVRJQ19BU1NFUlQoQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlICogc2l6ZW9mKFJlZ2lzdGVyKSA9PSBD
YWxsRnJhbWVTbG90Ojpjb2RlQmxvY2sgKiBzaXplb2YoUmVnaXN0ZXIpICsgU2xvdFNpemUpOwog
ICAgIFNUQVRJQ19BU1NFUlQoQ2FsbEZyYW1lU2xvdDo6YXJndW1lbnRDb3VudCAqIHNpemVvZihS
ZWdpc3RlcikgPT0gQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlICogc2l6ZW9mKFJlZ2lzdGVyKSArIFNs
b3RTaXplKTsKICAgICBTVEFUSUNfQVNTRVJUKENhbGxGcmFtZVNsb3Q6OnRoaXNBcmd1bWVudCAq
IHNpemVvZihSZWdpc3RlcikgPT0gQ2FsbEZyYW1lU2xvdDo6YXJndW1lbnRDb3VudCAqIHNpemVv
ZihSZWdpc3RlcikgKyBTbG90U2l6ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTExJbnRPZmZsaW5lQXNtQ29uZmlnLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvTExJbnRPZmZsaW5lQXNtQ29uZmlnLmgKaW5kZXggYmE2ZDUxNmQ1ZjNmODFhMDczN2I5
NjIyNjllYzM2YjA3MjlmYzJjZS4uNmI5Yjc5ODc2ZWNlYTY1NmM0MmE2NTk1NjRlYTU0ODA4Mjcw
MDNkZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50T2ZmbGlu
ZUFzbUNvbmZpZy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludE9mZmxp
bmVBc21Db25maWcuaApAQCAtMTQ1LDYgKzE0NSwxMiBAQAogI2RlZmluZSBPRkZMSU5FX0FTTV9K
U1ZBTFVFNjQgMAogI2VuZGlmCiAKKyNpZiBDUFUoQUREUkVTUzY0KQorI2RlZmluZSBPRkZMSU5F
X0FTTV9BRERSRVNTNjQgMQorI2Vsc2UKKyNkZWZpbmUgT0ZGTElORV9BU01fQUREUkVTUzY0IDAK
KyNlbmRpZgorCiAjaWYgRU5BQkxFKFBPSVNPTikKICNkZWZpbmUgT0ZGTElORV9BU01fUE9JU09O
IDEKICNlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2
ZWxJbnRlcnByZXRlci5hc20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJ
bnRlcnByZXRlci5hc20KaW5kZXggMmI0MzUwY2Q1MmE4NzNmMTRiNWM4Nzc2ZWI0ZmI5YzNkMDRm
YTNkOC4uNzBlMzM5NTAzNjA1Yzg1NmVkMGFhNDgzM2ZmMDcwNjNiODAwZmU3YSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQpA
QCAtMTU3LDkgKzE1NywxMSBAQCBjb25zdCBQdHJTaXplID0gY29uc3RleHByIChzaXplb2Yodm9p
ZCopKQogCiBpZiBKU1ZBTFVFNjQKICAgICBjb25zdCBDYWxsRnJhbWVIZWFkZXJTbG90cyA9IDUK
KyAgICBjb25zdCBNYWNoaW5lUmVnaXN0ZXJTaXplID0gOAogZWxzZQogICAgIGNvbnN0IENhbGxG
cmFtZUhlYWRlclNsb3RzID0gNAogICAgIGNvbnN0IENhbGxGcmFtZUFsaWduU2xvdHMgPSAxCisg
ICAgY29uc3QgTWFjaGluZVJlZ2lzdGVyU2l6ZSA9IDQKIGVuZAogY29uc3QgU2xvdFNpemUgPSA4
CiAKQEAgLTE3MCwxMSArMTcyLDExIEBAIGNvbnN0IFN0YWNrQWxpZ25tZW50ID0gMTYKIGNvbnN0
IFN0YWNrQWxpZ25tZW50U2xvdHMgPSAyCiBjb25zdCBTdGFja0FsaWdubWVudE1hc2sgPSBTdGFj
a0FsaWdubWVudCAtIDEKIAotY29uc3QgQ2FsbGVyRnJhbWVBbmRQQ1NpemUgPSAyICogUHRyU2l6
ZQorY29uc3QgQ2FsbGVyRnJhbWVBbmRQQ1NpemUgPSBjb25zdGV4cHIgKHNpemVvZihDYWxsZXJG
cmFtZUFuZFBDKSkKIAogY29uc3QgQ2FsbGVyRnJhbWUgPSAwCi1jb25zdCBSZXR1cm5QQyA9IENh
bGxlckZyYW1lICsgUHRyU2l6ZQotY29uc3QgQ29kZUJsb2NrID0gUmV0dXJuUEMgKyBQdHJTaXpl
Citjb25zdCBSZXR1cm5QQyA9IENhbGxlckZyYW1lICsgTWFjaGluZVJlZ2lzdGVyU2l6ZQorY29u
c3QgQ29kZUJsb2NrID0gUmV0dXJuUEMgKyBNYWNoaW5lUmVnaXN0ZXJTaXplCiBjb25zdCBDYWxs
ZWUgPSBDb2RlQmxvY2sgKyBTbG90U2l6ZQogY29uc3QgQXJndW1lbnRDb3VudCA9IENhbGxlZSAr
IFNsb3RTaXplCiBjb25zdCBUaGlzQXJndW1lbnRPZmZzZXQgPSBBcmd1bWVudENvdW50ICsgU2xv
dFNpemUKQEAgLTI5NCwzNSArMjk2LDM1IEBAIGlmIEpTVkFMVUU2NAogICAgIGVuZAogCiAgICAg
bWFjcm8gbG9hZGlzRnJvbUluc3RydWN0aW9uKG9mZnNldCwgZGVzdCkKLSAgICAgICAgbG9hZGlz
IG9mZnNldCAqIDhbUEIsIFBDLCA4XSwgZGVzdAorICAgICAgICBsb2FkaXMgb2Zmc2V0ICogUHRy
U2l6ZVtQQiwgUEMsIFB0clNpemVdLCBkZXN0CiAgICAgZW5kCiAgICAgCiAgICAgbWFjcm8gbG9h
ZHBGcm9tSW5zdHJ1Y3Rpb24ob2Zmc2V0LCBkZXN0KQotICAgICAgICBsb2FkcCBvZmZzZXQgKiA4
W1BCLCBQQywgOF0sIGRlc3QKKyAgICAgICAgbG9hZHAgb2Zmc2V0ICogUHRyU2l6ZVtQQiwgUEMs
IFB0clNpemVdLCBkZXN0CiAgICAgZW5kCiAKICAgICBtYWNybyBsb2FkaXNGcm9tU3RydWN0KG9m
ZnNldCwgZGVzdCkKLSAgICAgICAgbG9hZGlzIG9mZnNldFtQQiwgUEMsIDhdLCBkZXN0CisgICAg
ICAgIGxvYWRpcyBvZmZzZXRbUEIsIFBDLCBQdHJTaXplXSwgZGVzdAogICAgIGVuZAogCiAgICAg
bWFjcm8gbG9hZHBGcm9tU3RydWN0KG9mZnNldCwgZGVzdCkKLSAgICAgICAgbG9hZHAgb2Zmc2V0
W1BCLCBQQywgOF0sIGRlc3QKKyAgICAgICAgbG9hZHAgb2Zmc2V0W1BCLCBQQywgUHRyU2l6ZV0s
IGRlc3QKICAgICBlbmQKIAogICAgIG1hY3JvIHN0b3JlaXNUb0luc3RydWN0aW9uKHZhbHVlLCBv
ZmZzZXQpCi0gICAgICAgIHN0b3JlaSB2YWx1ZSwgb2Zmc2V0ICogOFtQQiwgUEMsIDhdCisgICAg
ICAgIHN0b3JlaSB2YWx1ZSwgb2Zmc2V0ICogUHRyU2l6ZVtQQiwgUEMsIFB0clNpemVdCiAgICAg
ZW5kCiAKICAgICBtYWNybyBzdG9yZXBUb0luc3RydWN0aW9uKHZhbHVlLCBvZmZzZXQpCi0gICAg
ICAgIHN0b3JlcCB2YWx1ZSwgb2Zmc2V0ICogOFtQQiwgUEMsIDhdCisgICAgICAgIHN0b3JlcCB2
YWx1ZSwgb2Zmc2V0ICogUHRyU2l6ZVtQQiwgUEMsIFB0clNpemVdCiAgICAgZW5kCiAKICAgICBt
YWNybyBzdG9yZWlzRnJvbVN0cnVjdCh2YWx1ZSwgb2Zmc2V0KQotICAgICAgICBzdG9yZWkgdmFs
dWUsIG9mZnNldFtQQiwgUEMsIDhdCisgICAgICAgIHN0b3JlaSB2YWx1ZSwgb2Zmc2V0W1BCLCBQ
QywgUHRyU2l6ZV0KICAgICBlbmQKIAogICAgIG1hY3JvIHN0b3JlcEZyb21TdHJ1Y3QodmFsdWUs
IG9mZnNldCkKLSAgICAgICAgc3RvcmVwIHZhbHVlLCBvZmZzZXRbUEIsIFBDLCA4XQorICAgICAg
ICBzdG9yZXAgdmFsdWUsIG9mZnNldFtQQiwgUEMsIFB0clNpemVdCiAgICAgZW5kCiAKIGVsc2UK
QEAgLTU3NCw3ICs1NzYsNyBAQCBlbHNpZiBYODYgb3IgWDg2X1dJTgogICAgIGNvbnN0IENhbGxl
ZVNhdmVSZWdpc3RlckNvdW50ID0gMwogZW5kCiAKLWNvbnN0IENhbGxlZVJlZ2lzdGVyU2F2ZVNp
emUgPSBDYWxsZWVTYXZlUmVnaXN0ZXJDb3VudCAqIFB0clNpemUKK2NvbnN0IENhbGxlZVJlZ2lz
dGVyU2F2ZVNpemUgPSBDYWxsZWVTYXZlUmVnaXN0ZXJDb3VudCAqIE1hY2hpbmVSZWdpc3RlclNp
emUKIAogIyBWTUVudHJ5VG90YWxGcmFtZVNpemUgaW5jbHVkZXMgdGhlIHNwYWNlIGZvciBzdHJ1
Y3QgVk1FbnRyeVJlY29yZCBhbmQgdGhlCiAjIGNhbGxlZSBzYXZlIHJlZ2lzdGVycyByb3VuZGVk
IHVwIHRvIGtlZXAgdGhlIHN0YWNrIGFsaWduZWQKQEAgLTY5NywxNiArNjk5LDE2IEBAIG1hY3Jv
IGNvcHlDYWxsZWVTYXZlc1RvVk1FbnRyeUZyYW1lQ2FsbGVlU2F2ZXNCdWZmZXIodm0sIHRlbXAp
CiAgICAgICAgIHZtRW50cnlSZWNvcmQodGVtcCwgdGVtcCkKICAgICAgICAgbGVhcCBWTUVudHJ5
UmVjb3JkOjpjYWxsZWVTYXZlUmVnaXN0ZXJzQnVmZmVyW3RlbXBdLCB0ZW1wCiAgICAgICAgIGlm
IEFSTTY0IG9yIEFSTTY0RQotICAgICAgICAgICAgc3RvcmVwIGNzcjAsIFt0ZW1wXQotICAgICAg
ICAgICAgc3RvcmVwIGNzcjEsIDhbdGVtcF0KLSAgICAgICAgICAgIHN0b3JlcCBjc3IyLCAxNlt0
ZW1wXQotICAgICAgICAgICAgc3RvcmVwIGNzcjMsIDI0W3RlbXBdCi0gICAgICAgICAgICBzdG9y
ZXAgY3NyNCwgMzJbdGVtcF0KLSAgICAgICAgICAgIHN0b3JlcCBjc3I1LCA0MFt0ZW1wXQotICAg
ICAgICAgICAgc3RvcmVwIGNzcjYsIDQ4W3RlbXBdCi0gICAgICAgICAgICBzdG9yZXAgY3NyNywg
NTZbdGVtcF0KLSAgICAgICAgICAgIHN0b3JlcCBjc3I4LCA2NFt0ZW1wXQotICAgICAgICAgICAg
c3RvcmVwIGNzcjksIDcyW3RlbXBdCisgICAgICAgICAgICBzdG9yZXEgY3NyMCwgW3RlbXBdCisg
ICAgICAgICAgICBzdG9yZXEgY3NyMSwgOFt0ZW1wXQorICAgICAgICAgICAgc3RvcmVxIGNzcjIs
IDE2W3RlbXBdCisgICAgICAgICAgICBzdG9yZXEgY3NyMywgMjRbdGVtcF0KKyAgICAgICAgICAg
IHN0b3JlcSBjc3I0LCAzMlt0ZW1wXQorICAgICAgICAgICAgc3RvcmVxIGNzcjUsIDQwW3RlbXBd
CisgICAgICAgICAgICBzdG9yZXEgY3NyNiwgNDhbdGVtcF0KKyAgICAgICAgICAgIHN0b3JlcSBj
c3I3LCA1Nlt0ZW1wXQorICAgICAgICAgICAgc3RvcmVxIGNzcjgsIDY0W3RlbXBdCisgICAgICAg
ICAgICBzdG9yZXEgY3NyOSwgNzJbdGVtcF0KICAgICAgICAgICAgIHN0b3JlZCBjc2ZyMCwgODBb
dGVtcF0KICAgICAgICAgICAgIHN0b3JlZCBjc2ZyMSwgODhbdGVtcF0KICAgICAgICAgICAgIHN0
b3JlZCBjc2ZyMiwgOTZbdGVtcF0KQEAgLTcxNiwxOSArNzE4LDE5IEBAIG1hY3JvIGNvcHlDYWxs
ZWVTYXZlc1RvVk1FbnRyeUZyYW1lQ2FsbGVlU2F2ZXNCdWZmZXIodm0sIHRlbXApCiAgICAgICAg
ICAgICBzdG9yZWQgY3NmcjYsIDEyOFt0ZW1wXQogICAgICAgICAgICAgc3RvcmVkIGNzZnI3LCAx
MzZbdGVtcF0KICAgICAgICAgZWxzaWYgWDg2XzY0Ci0gICAgICAgICAgICBzdG9yZXAgY3NyMCwg
W3RlbXBdCi0gICAgICAgICAgICBzdG9yZXAgY3NyMSwgOFt0ZW1wXQotICAgICAgICAgICAgc3Rv
cmVwIGNzcjIsIDE2W3RlbXBdCi0gICAgICAgICAgICBzdG9yZXAgY3NyMywgMjRbdGVtcF0KLSAg
ICAgICAgICAgIHN0b3JlcCBjc3I0LCAzMlt0ZW1wXQorICAgICAgICAgICAgc3RvcmVxIGNzcjAs
IFt0ZW1wXQorICAgICAgICAgICAgc3RvcmVxIGNzcjEsIDhbdGVtcF0KKyAgICAgICAgICAgIHN0
b3JlcSBjc3IyLCAxNlt0ZW1wXQorICAgICAgICAgICAgc3RvcmVxIGNzcjMsIDI0W3RlbXBdCisg
ICAgICAgICAgICBzdG9yZXEgY3NyNCwgMzJbdGVtcF0KICAgICAgICAgZWxzaWYgWDg2XzY0X1dJ
TgotICAgICAgICAgICAgc3RvcmVwIGNzcjAsIFt0ZW1wXQotICAgICAgICAgICAgc3RvcmVwIGNz
cjEsIDhbdGVtcF0KLSAgICAgICAgICAgIHN0b3JlcCBjc3IyLCAxNlt0ZW1wXQotICAgICAgICAg
ICAgc3RvcmVwIGNzcjMsIDI0W3RlbXBdCi0gICAgICAgICAgICBzdG9yZXAgY3NyNCwgMzJbdGVt
cF0KLSAgICAgICAgICAgIHN0b3JlcCBjc3I1LCA0MFt0ZW1wXQotICAgICAgICAgICAgc3RvcmVw
IGNzcjYsIDQ4W3RlbXBdCisgICAgICAgICAgICBzdG9yZXEgY3NyMCwgW3RlbXBdCisgICAgICAg
ICAgICBzdG9yZXEgY3NyMSwgOFt0ZW1wXQorICAgICAgICAgICAgc3RvcmVxIGNzcjIsIDE2W3Rl
bXBdCisgICAgICAgICAgICBzdG9yZXEgY3NyMywgMjRbdGVtcF0KKyAgICAgICAgICAgIHN0b3Jl
cSBjc3I0LCAzMlt0ZW1wXQorICAgICAgICAgICAgc3RvcmVxIGNzcjUsIDQwW3RlbXBdCisgICAg
ICAgICAgICBzdG9yZXEgY3NyNiwgNDhbdGVtcF0KICAgICAgICAgZW5kCiAgICAgZW5kCiBlbmQK
QEAgLTczOSwxNiArNzQxLDE2IEBAIG1hY3JvIHJlc3RvcmVDYWxsZWVTYXZlc0Zyb21WTUVudHJ5
RnJhbWVDYWxsZWVTYXZlc0J1ZmZlcih2bSwgdGVtcCkKICAgICAgICAgdm1FbnRyeVJlY29yZCh0
ZW1wLCB0ZW1wKQogICAgICAgICBsZWFwIFZNRW50cnlSZWNvcmQ6OmNhbGxlZVNhdmVSZWdpc3Rl
cnNCdWZmZXJbdGVtcF0sIHRlbXAKICAgICAgICAgaWYgQVJNNjQgb3IgQVJNNjRFCi0gICAgICAg
ICAgICBsb2FkcCBbdGVtcF0sIGNzcjAKLSAgICAgICAgICAgIGxvYWRwIDhbdGVtcF0sIGNzcjEK
LSAgICAgICAgICAgIGxvYWRwIDE2W3RlbXBdLCBjc3IyCi0gICAgICAgICAgICBsb2FkcCAyNFt0
ZW1wXSwgY3NyMwotICAgICAgICAgICAgbG9hZHAgMzJbdGVtcF0sIGNzcjQKLSAgICAgICAgICAg
IGxvYWRwIDQwW3RlbXBdLCBjc3I1Ci0gICAgICAgICAgICBsb2FkcCA0OFt0ZW1wXSwgY3NyNgot
ICAgICAgICAgICAgbG9hZHAgNTZbdGVtcF0sIGNzcjcKLSAgICAgICAgICAgIGxvYWRwIDY0W3Rl
bXBdLCBjc3I4Ci0gICAgICAgICAgICBsb2FkcCA3Mlt0ZW1wXSwgY3NyOQorICAgICAgICAgICAg
bG9hZHEgW3RlbXBdLCBjc3IwCisgICAgICAgICAgICBsb2FkcSA4W3RlbXBdLCBjc3IxCisgICAg
ICAgICAgICBsb2FkcSAxNlt0ZW1wXSwgY3NyMgorICAgICAgICAgICAgbG9hZHEgMjRbdGVtcF0s
IGNzcjMKKyAgICAgICAgICAgIGxvYWRxIDMyW3RlbXBdLCBjc3I0CisgICAgICAgICAgICBsb2Fk
cSA0MFt0ZW1wXSwgY3NyNQorICAgICAgICAgICAgbG9hZHEgNDhbdGVtcF0sIGNzcjYKKyAgICAg
ICAgICAgIGxvYWRxIDU2W3RlbXBdLCBjc3I3CisgICAgICAgICAgICBsb2FkcSA2NFt0ZW1wXSwg
Y3NyOAorICAgICAgICAgICAgbG9hZHEgNzJbdGVtcF0sIGNzcjkKICAgICAgICAgICAgIGxvYWRk
IDgwW3RlbXBdLCBjc2ZyMAogICAgICAgICAgICAgbG9hZGQgODhbdGVtcF0sIGNzZnIxCiAgICAg
ICAgICAgICBsb2FkZCA5Nlt0ZW1wXSwgY3NmcjIKQEAgLTc1OCwxOSArNzYwLDE5IEBAIG1hY3Jv
IHJlc3RvcmVDYWxsZWVTYXZlc0Zyb21WTUVudHJ5RnJhbWVDYWxsZWVTYXZlc0J1ZmZlcih2bSwg
dGVtcCkKICAgICAgICAgICAgIGxvYWRkIDEyOFt0ZW1wXSwgY3NmcjYKICAgICAgICAgICAgIGxv
YWRkIDEzNlt0ZW1wXSwgY3NmcjcKICAgICAgICAgZWxzaWYgWDg2XzY0Ci0gICAgICAgICAgICBs
b2FkcCBbdGVtcF0sIGNzcjAKLSAgICAgICAgICAgIGxvYWRwIDhbdGVtcF0sIGNzcjEKLSAgICAg
ICAgICAgIGxvYWRwIDE2W3RlbXBdLCBjc3IyCi0gICAgICAgICAgICBsb2FkcCAyNFt0ZW1wXSwg
Y3NyMwotICAgICAgICAgICAgbG9hZHAgMzJbdGVtcF0sIGNzcjQKKyAgICAgICAgICAgIGxvYWRx
IFt0ZW1wXSwgY3NyMAorICAgICAgICAgICAgbG9hZHEgOFt0ZW1wXSwgY3NyMQorICAgICAgICAg
ICAgbG9hZHEgMTZbdGVtcF0sIGNzcjIKKyAgICAgICAgICAgIGxvYWRxIDI0W3RlbXBdLCBjc3Iz
CisgICAgICAgICAgICBsb2FkcSAzMlt0ZW1wXSwgY3NyNAogICAgICAgICBlbHNpZiBYODZfNjRf
V0lOCi0gICAgICAgICAgICBsb2FkcCBbdGVtcF0sIGNzcjAKLSAgICAgICAgICAgIGxvYWRwIDhb
dGVtcF0sIGNzcjEKLSAgICAgICAgICAgIGxvYWRwIDE2W3RlbXBdLCBjc3IyCi0gICAgICAgICAg
ICBsb2FkcCAyNFt0ZW1wXSwgY3NyMwotICAgICAgICAgICAgbG9hZHAgMzJbdGVtcF0sIGNzcjQK
LSAgICAgICAgICAgIGxvYWRwIDQwW3RlbXBdLCBjc3I1Ci0gICAgICAgICAgICBsb2FkcCA0OFt0
ZW1wXSwgY3NyNgorICAgICAgICAgICAgbG9hZHEgW3RlbXBdLCBjc3IwCisgICAgICAgICAgICBs
b2FkcSA4W3RlbXBdLCBjc3IxCisgICAgICAgICAgICBsb2FkcSAxNlt0ZW1wXSwgY3NyMgorICAg
ICAgICAgICAgbG9hZHEgMjRbdGVtcF0sIGNzcjMKKyAgICAgICAgICAgIGxvYWRxIDMyW3RlbXBd
LCBjc3I0CisgICAgICAgICAgICBsb2FkcSA0MFt0ZW1wXSwgY3NyNQorICAgICAgICAgICAgbG9h
ZHEgNDhbdGVtcF0sIGNzcjYKICAgICAgICAgZW5kCiAgICAgZW5kCiBlbmQKQEAgLTgzOSw5ICs4
NDEsNyBAQCBtYWNybyByZXN0b3JlU3RhY2tQb2ludGVyQWZ0ZXJDYWxsKCkKIGVuZAogCiBtYWNy
byB0cmFjZUV4ZWN1dGlvbigpCi0gICAgaWYgVFJBQ0lORwotICAgICAgICBjYWxsU2xvd1BhdGgo
X2xsaW50X3RyYWNlKQotICAgIGVuZAorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfdHJhY2UpCiBl
bmQKIAogbWFjcm8gY2FsbFRhcmdldEZ1bmN0aW9uKGNhbGxlZSwgY2FsbFB0clRhZykKQEAgLTg4
NCw5ICs4ODQsOSBAQCBtYWNybyBwcmVwYXJlRm9yVGFpbENhbGwoY2FsbGVlLCB0ZW1wMSwgdGVt
cDIsIHRlbXAzLCBjYWxsUHRyVGFnKQogICAgIGFuZGkgflN0YWNrQWxpZ25tZW50TWFzaywgdGVt
cDIKIAogICAgIGlmIEFSTSBvciBBUk12N19UUkFESVRJT05BTCBvciBBUk12NyBvciBBUk02NCBv
ciBBUk02NEUgb3IgQ19MT09QIG9yIE1JUFMKLSAgICAgICAgYWRkcCAyICogUHRyU2l6ZSwgc3AK
LSAgICAgICAgc3ViaSAyICogUHRyU2l6ZSwgdGVtcDIKLSAgICAgICAgbG9hZHAgUHRyU2l6ZVtj
ZnJdLCBscgorICAgICAgICBhZGRwIENhbGxlckZyYW1lQW5kUENTaXplLCBzcAorICAgICAgICBz
dWJpIENhbGxlckZyYW1lQW5kUENTaXplLCB0ZW1wMgorICAgICAgICBsb2FkcCBDYWxsZXJGcmFt
ZUFuZFBDOjpyZXR1cm5QQ1tjZnJdLCBscgogICAgIGVsc2UKICAgICAgICAgYWRkcCBQdHJTaXpl
LCBzcAogICAgICAgICBzdWJpIFB0clNpemUsIHRlbXAyCkBAIC05MDMsMTAgKzkwMywxNyBAQCBt
YWNybyBwcmVwYXJlRm9yVGFpbENhbGwoY2FsbGVlLCB0ZW1wMSwgdGVtcDIsIHRlbXAzLCBjYWxs
UHRyVGFnKQogICAgIGxvYWRwIFtjZnJdLCBjZnIKIAogLmNvcHlMb29wOgotICAgIHN1YmkgUHRy
U2l6ZSwgdGVtcDIKLSAgICBsb2FkcCBbc3AsIHRlbXAyLCAxXSwgdGVtcDMKLSAgICBzdG9yZXAg
dGVtcDMsIFt0ZW1wMSwgdGVtcDIsIDFdCi0gICAgYnRpbnogdGVtcDIsIC5jb3B5TG9vcAorICAg
IGlmIEFSTTY0IGFuZCBub3QgQUREUkVTUzY0CisgICAgICAgIHN1YmkgTWFjaGluZVJlZ2lzdGVy
U2l6ZSwgdGVtcDIKKyAgICAgICAgbG9hZHEgW3NwLCB0ZW1wMiwgMV0sIHRlbXAzCisgICAgICAg
IHN0b3JlcSB0ZW1wMywgW3RlbXAxLCB0ZW1wMiwgMV0KKyAgICAgICAgYnRpbnogdGVtcDIsIC5j
b3B5TG9vcAorICAgIGVsc2UKKyAgICAgICAgc3ViaSBQdHJTaXplLCB0ZW1wMgorICAgICAgICBs
b2FkcCBbc3AsIHRlbXAyLCAxXSwgdGVtcDMKKyAgICAgICAgc3RvcmVwIHRlbXAzLCBbdGVtcDEs
IHRlbXAyLCAxXQorICAgICAgICBidGlueiB0ZW1wMiwgLmNvcHlMb29wCisgICAgZW5kCiAKICAg
ICBtb3ZlIHRlbXAxLCBzcAogICAgIGptcCBjYWxsZWUsIGNhbGxQdHJUYWcKQEAgLTExMDksNyAr
MTExNiw3IEBAIG1hY3JvIHByb2xvZ3VlKGNvZGVCbG9ja0dldHRlciwgY29kZUJsb2NrU2V0dGVy
LCBvc3JTbG93UGF0aCwgdHJhY2VTbG93UGF0aCkKIAogICAgIGlmIEpTVkFMVUU2NAogICAgICAg
ICBtb3ZlIFRhZ1R5cGVOdW1iZXIsIHRhZ1R5cGVOdW1iZXIKLSAgICAgICAgYWRkcCBUYWdCaXRU
eXBlT3RoZXIsIHRhZ1R5cGVOdW1iZXIsIHRhZ01hc2sKKyAgICAgICAgYWRkcSBUYWdCaXRUeXBl
T3RoZXIsIHRhZ1R5cGVOdW1iZXIsIHRhZ01hc2sKICAgICBlbmQKIGVuZAogCkBAIC0xMjYzLDcg
KzEyNzAsNyBAQCBtYWNybyBzZXRFbnRyeUFkZHJlc3MoaW5kZXgsIGxhYmVsKQogICAgIGVsc2lm
IEFSTTY0IG9yIEFSTTY0RQogICAgICAgICBwY3J0b2FkZHIgbGFiZWwsIHQxCiAgICAgICAgIG1v
dmUgaW5kZXgsIHQ0Ci0gICAgICAgIHN0b3JlcCB0MSwgW2EwLCB0NCwgOF0KKyAgICAgICAgc3Rv
cmVwIHQxLCBbYTAsIHQ0LCBjb25zdGV4cHIgKHNpemVvZih2b2lkKikpXQogICAgIGVsc2lmIEFS
TSBvciBBUk12NyBvciBBUk12N19UUkFESVRJT05BTAogICAgICAgICBtdmxibCAobGFiZWwgLSBf
cmVsYXRpdmVQQ0Jhc2UpLCB0NAogICAgICAgICBhZGRwIHQ0LCB0MSwgdDQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20KaW5k
ZXggNWRiNDUwYjY2MzIxNTRjYzdiMDdkOTE4ZjFjYjI4YTQyM2NiMjY2MC4uNGQ5YzY2MTA4YjA3
MDgxNTk5ZWY4ODI1NjYzMzBjMzkxMDdmYjZhMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20KKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20KQEAgLTI0LDcgKzI0LDcg
QEAKIAogIyBVdGlsaXRpZXMuCiBtYWNybyBqdW1wVG9JbnN0cnVjdGlvbigpCi0gICAgam1wIFtQ
QiwgUEMsIDhdLCBCeXRlY29kZVB0clRhZworICAgIGptcCBbUEIsIFBDLCBQdHJTaXplXSwgQnl0
ZWNvZGVQdHJUYWcKIGVuZAogCiBtYWNybyBkaXNwYXRjaChhZHZhbmNlKQpAQCAtMzgsNyArMzgs
NyBAQCBtYWNybyBkaXNwYXRjaEludChhZHZhbmNlKQogZW5kCiAKIG1hY3JvIGRpc3BhdGNoSW50
SW5kaXJlY3Qob2Zmc2V0KQotICAgIGRpc3BhdGNoSW50KG9mZnNldCAqIDhbUEIsIFBDLCA4XSkK
KyAgICBkaXNwYXRjaEludChvZmZzZXQgKiBQdHJTaXplW1BCLCBQQywgUHRyU2l6ZV0pCiBlbmQK
IAogbWFjcm8gZGlzcGF0Y2hBZnRlckNhbGwoKQpAQCAtMzAwLDEzICszMDAsMTMgQEAgX2hhbmRs
ZVVuY2F1Z2h0RXhjZXB0aW9uOgogCiAKIG1hY3JvIHByZXBhcmVTdGF0ZUZvckNDYWxsKCkKLSAg
ICBsZWFwIFtQQiwgUEMsIDhdLCBQQworICAgIGxlYXAgW1BCLCBQQywgUHRyU2l6ZV0sIFBDCiBl
bmQKIAogbWFjcm8gcmVzdG9yZVN0YXRlQWZ0ZXJDQ2FsbCgpCiAgICAgbW92ZSByMCwgUEMKICAg
ICBzdWJwIFBCLCBQQwotICAgIHJzaGlmdHAgMywgUEMKKyAgICByc2hpZnRwIGNvbnN0ZXhwciAo
Z2V0TFNCU2V0KHNpemVvZih2b2lkKikpKSwgUEMKIGVuZAogCiBtYWNybyBjYWxsU2xvd1BhdGgo
c2xvd1BhdGgpCkBAIC00ODcsNyArNDg3LDcgQEAgbWFjcm8gc3RydWN0dXJlSURUb1N0cnVjdHVy
ZVdpdGhTY3JhdGNoKHN0cnVjdHVyZUlEVGhlblN0cnVjdHVyZSwgc2NyYXRjaCwgc2NyYXQKICAg
ICBsb2FkcCBDb2RlQmxvY2s6Om1fcG9pc29uZWRWTVtzY3JhdGNoXSwgc2NyYXRjaAogICAgIHVu
cG9pc29uKF9nX0NvZGVCbG9ja1BvaXNvbiwgc2NyYXRjaCwgc2NyYXRjaDIpCiAgICAgbG9hZHAg
Vk06OmhlYXAgKyBIZWFwOjptX3N0cnVjdHVyZUlEVGFibGUgKyBTdHJ1Y3R1cmVJRFRhYmxlOjpt
X3RhYmxlW3NjcmF0Y2hdLCBzY3JhdGNoCi0gICAgbG9hZHAgW3NjcmF0Y2gsIHN0cnVjdHVyZUlE
VGhlblN0cnVjdHVyZSwgOF0sIHN0cnVjdHVyZUlEVGhlblN0cnVjdHVyZQorICAgIGxvYWRwIFtz
Y3JhdGNoLCBzdHJ1Y3R1cmVJRFRoZW5TdHJ1Y3R1cmUsIFB0clNpemVdLCBzdHJ1Y3R1cmVJRFRo
ZW5TdHJ1Y3R1cmUKIGVuZAogCiBtYWNybyBsb2FkU3RydWN0dXJlV2l0aFNjcmF0Y2goY2VsbCwg
c3RydWN0dXJlLCBzY3JhdGNoLCBzY3JhdGNoMikKQEAgLTU0OSw3ICs1NDksOCBAQCBtYWNybyBm
dW5jdGlvbkFyaXR5Q2hlY2soZG9uZUxhYmVsLCBzbG93UGF0aCkKICAgICBzdWJwIENhbGxlZVNh
dmVTcGFjZUFzVmlydHVhbFJlZ2lzdGVycyAqIDgsIHQzCiAgICAgYWRkaSBDYWxsZWVTYXZlU3Bh
Y2VBc1ZpcnR1YWxSZWdpc3RlcnMsIHQyCiAgICAgbW92ZSB0MSwgdDAKLSAgICBsc2hpZnRwIDMs
IHQwCisgICAgIyBBZGRzIHRvIHNwIGFyZSBhbHdheXMgNjQgYml0IG9uIGFybTY0IHNvIHdlIG5l
ZWQgdDAncyBoaWdoIGJpdHMgdG8gc3RheSBtYXJrZWQuCisgICAgbHNoaWZ0cSAzLCB0MAogICAg
IGFkZHAgdDAsIGNmcgogICAgIGFkZHAgdDAsIHNwCiAuY29weUxvb3A6CkBAIC01ODgsNyArNTg5
LDcgQEAgbWFjcm8gYnJhbmNoSWZFeGNlcHRpb24obGFiZWwpCiAgICAgbG9hZHAgQ2FsbGVlW2Nm
cl0sIHQzCiAgICAgYW5kcCBNYXJrZWRCbG9ja01hc2ssIHQzCiAgICAgbG9hZHAgTWFya2VkQmxv
Y2tGb290ZXJPZmZzZXQgKyBNYXJrZWRCbG9jazo6Rm9vdGVyOjptX3ZtW3QzXSwgdDMKLSAgICBi
dHF6IFZNOjptX2V4Y2VwdGlvblt0M10sIC5ub0V4Y2VwdGlvbgorICAgIGJ0cHogVk06Om1fZXhj
ZXB0aW9uW3QzXSwgLm5vRXhjZXB0aW9uCiAgICAgam1wIGxhYmVsCiAubm9FeGNlcHRpb246CiBl
bmQKQEAgLTE1NDcsNyArMTU0OCw3IEBAIF9sbGludF9vcF9wdXRfYnlfaWQ6CiAgICAgbG9hZGkg
SlNDZWxsOjptX3N0cnVjdHVyZUlEW3QyXSwgdDIKICAgICAjIE5vdywgdDEgaGFzIHRoZSBTdHJ1
Y3R1cmUqIGFuZCB0MiBoYXMgdGhlIFN0cnVjdHVyZUlEIHRoYXQgd2Ugd2FudCB0aGF0IFN0cnVj
dHVyZSogdG8gaGF2ZS4KICAgICBiaW5lcSB0MiwgU3RydWN0dXJlOjptX2Jsb2IgKyBTdHJ1Y3R1
cmVJREJsb2I6OnUuZmllbGRzLnN0cnVjdHVyZUlEW3QxXSwgLm9wUHV0QnlJZFNsb3cKLSAgICBh
ZGRwIDgsIHQzCisgICAgYWRkcCBQdHJTaXplLCB0MwogICAgIGxvYWRxIFN0cnVjdHVyZTo6bV9w
cm90b3R5cGVbdDFdLCB0MgogICAgIGJxbmVxIHQyLCBWYWx1ZU51bGwsIC5vcFB1dEJ5SWRUcmFu
c2l0aW9uQ2hhaW5Mb29wCiAKQEAgLTE3NDYsNyArMTc0Nyw3IEBAIG1hY3JvIGNvbnRpZ3VvdXNQ
dXRCeVZhbChzdG9yZUNhbGxiYWNrKQogCiAub3V0T2ZCb3VuZHM6CiAgICAgYmlhZXEgdDMsIC1z
aXplb2YgSW5kZXhpbmdIZWFkZXIgKyBJbmRleGluZ0hlYWRlcjo6dS5sZW5ndGhzLnZlY3Rvckxl
bmd0aFt0MF0sIC5vcFB1dEJ5VmFsT3V0T2ZCb3VuZHMKLSAgICBsb2FkcCAzMltQQiwgUEMsIDhd
LCB0MgorICAgIGxvYWRwRnJvbUluc3RydWN0aW9uKDQsIHQyKQogICAgIHN0b3JlYiAxLCBBcnJh
eVByb2ZpbGU6Om1fbWF5U3RvcmVUb0hvbGVbdDJdCiAgICAgYWRkaSAxLCB0MywgdDIKICAgICBz
dG9yZWkgdDIsIC1zaXplb2YgSW5kZXhpbmdIZWFkZXIgKyBJbmRleGluZ0hlYWRlcjo6dS5sZW5n
dGhzLnB1YmxpY0xlbmd0aFt0MF0KQEAgLTE3NzAsOCArMTc3MSw4IEBAIG1hY3JvIHB1dEJ5VmFs
KHNsb3dQYXRoKQogICAgIGNvbnRpZ3VvdXNQdXRCeVZhbCgKICAgICAgICAgbWFjcm8gKG9wZXJh
bmQsIHNjcmF0Y2gsIGFkZHJlc3MpCiAgICAgICAgICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxl
KG9wZXJhbmQsIHNjcmF0Y2gpCi0gICAgICAgICAgICBicGIgc2NyYXRjaCwgdGFnVHlwZU51bWJl
ciwgLm9wUHV0QnlWYWxTbG93Ci0gICAgICAgICAgICBzdG9yZXAgc2NyYXRjaCwgYWRkcmVzcwor
ICAgICAgICAgICAgYnFiIHNjcmF0Y2gsIHRhZ1R5cGVOdW1iZXIsIC5vcFB1dEJ5VmFsU2xvdwor
ICAgICAgICAgICAgc3RvcmVxIHNjcmF0Y2gsIGFkZHJlc3MKICAgICAgICAgICAgIHdyaXRlQmFy
cmllck9uT3BlcmFuZHMoMSwgMykKICAgICAgICAgZW5kKQogCkBAIC0xNzg0LDcgKzE3ODUsNyBA
QCBtYWNybyBwdXRCeVZhbChzbG93UGF0aCkKICAgICAgICAgICAgIGNpMmQgc2NyYXRjaCwgZnQw
CiAgICAgICAgICAgICBqbXAgLnJlYWR5CiAgICAgICAgIC5ub3RJbnQ6Ci0gICAgICAgICAgICBh
ZGRwIHRhZ1R5cGVOdW1iZXIsIHNjcmF0Y2gKKyAgICAgICAgICAgIGFkZHEgdGFnVHlwZU51bWJl
ciwgc2NyYXRjaAogICAgICAgICAgICAgZnEyZCBzY3JhdGNoLCBmdDAKICAgICAgICAgICAgIGJk
bmVxdW4gZnQwLCBmdDAsIC5vcFB1dEJ5VmFsU2xvdwogICAgICAgICAucmVhZHk6CkBAIC0xNzk3
LDcgKzE3OTgsNyBAQCBtYWNybyBwdXRCeVZhbChzbG93UGF0aCkKICAgICBjb250aWd1b3VzUHV0
QnlWYWwoCiAgICAgICAgIG1hY3JvIChvcGVyYW5kLCBzY3JhdGNoLCBhZGRyZXNzKQogICAgICAg
ICAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShvcGVyYW5kLCBzY3JhdGNoKQotICAgICAgICAg
ICAgc3RvcmVwIHNjcmF0Y2gsIGFkZHJlc3MKKyAgICAgICAgICAgIHN0b3JlcSBzY3JhdGNoLCBh
ZGRyZXNzCiAgICAgICAgICAgICB3cml0ZUJhcnJpZXJPbk9wZXJhbmRzKDEsIDMpCiAgICAgICAg
IGVuZCkKIApAQCAtMTkwNiwxMiArMTkwNywxMiBAQCBfbGxpbnRfb3Bfam5lcV9wdHI6CiAgICAg
bG9hZGlzRnJvbUluc3RydWN0aW9uKDIsIHQxKQogICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCB0
MgogICAgIGxvYWRwIENvZGVCbG9jazo6bV9nbG9iYWxPYmplY3RbdDJdLCB0MgotICAgIGxvYWRw
IEpTR2xvYmFsT2JqZWN0OjptX3NwZWNpYWxQb2ludGVyc1t0MiwgdDEsIDhdLCB0MQorICAgIGxv
YWRwIEpTR2xvYmFsT2JqZWN0OjptX3NwZWNpYWxQb2ludGVyc1t0MiwgdDEsIGNvbnN0ZXhwciAo
c2l6ZW9mKHZvaWQqKSldLCB0MQogICAgIGJwbmVxIHQxLCBbY2ZyLCB0MCwgOF0sIC5vcEpuZXFQ
dHJUYXJnZXQKICAgICBkaXNwYXRjaCg1KQogCiAub3BKbmVxUHRyVGFyZ2V0OgotICAgIHN0b3Jl
aSAxLCAzMltQQiwgUEMsIDhdCisgICAgc3RvcmVpc1RvSW5zdHJ1Y3Rpb24oMSwgNCkKICAgICBk
aXNwYXRjaEludEluZGlyZWN0KDMpCiAKIApAQCAtMjEzNCw3ICsyMTM1LDcgQEAgX2xsaW50X29w
X2NhdGNoOgogICAgIHVucG9pc29uKF9nX0NvZGVCbG9ja1BvaXNvbiwgUEIsIHQyKQogICAgIGxv
YWRwIFZNOjp0YXJnZXRJbnRlcnByZXRlclBDRm9yVGhyb3dbdDNdLCBQQwogICAgIHN1YnAgUEIs
IFBDCi0gICAgcnNoaWZ0cCAzLCBQQworICAgIHJzaGlmdHAgY29uc3RleHByIChnZXRMU0JTZXQo
c2l6ZW9mKHZvaWQqKSkpLCBQQwogCiAgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhf
Y2hlY2tfaWZfZXhjZXB0aW9uX2lzX3VuY2F0Y2hhYmxlX2FuZF9ub3RpZnlfcHJvZmlsZXIpCiAg
ICAgYnBlcSByMSwgMCwgLmlzQ2F0Y2hhYmxlRXhjZXB0aW9uCkBAIC0yMTQ1LDggKzIxNDYsOCBA
QCBfbGxpbnRfb3BfY2F0Y2g6CiAgICAgYW5kcCBNYXJrZWRCbG9ja01hc2ssIHQzCiAgICAgbG9h
ZHAgTWFya2VkQmxvY2tGb290ZXJPZmZzZXQgKyBNYXJrZWRCbG9jazo6Rm9vdGVyOjptX3ZtW3Qz
XSwgdDMKIAotICAgIGxvYWRxIFZNOjptX2V4Y2VwdGlvblt0M10sIHQwCi0gICAgc3RvcmVxIDAs
IFZNOjptX2V4Y2VwdGlvblt0M10KKyAgICBsb2FkcCBWTTo6bV9leGNlcHRpb25bdDNdLCB0MAor
ICAgIHN0b3JlcCAwLCBWTTo6bV9leGNlcHRpb25bdDNdCiAgICAgbG9hZGlzRnJvbUluc3RydWN0
aW9uKDEsIHQyKQogICAgIHN0b3JlcSB0MCwgW2NmciwgdDIsIDhdCiAKQEAgLTIyMjgsNyArMjIy
OSw3IEBAIG1hY3JvIG5hdGl2ZUNhbGxUcmFtcG9saW5lKGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0
aW9uKQogICAgIGFuZHAgTWFya2VkQmxvY2tNYXNrLCB0MwogICAgIGxvYWRwIE1hcmtlZEJsb2Nr
Rm9vdGVyT2Zmc2V0ICsgTWFya2VkQmxvY2s6OkZvb3Rlcjo6bV92bVt0M10sIHQzCiAKLSAgICBi
dHFueiBWTTo6bV9leGNlcHRpb25bdDNdLCAuaGFuZGxlRXhjZXB0aW9uCisgICAgYnRwbnogVk06
Om1fZXhjZXB0aW9uW3QzXSwgLmhhbmRsZUV4Y2VwdGlvbgogCiAgICAgZnVuY3Rpb25FcGlsb2d1
ZSgpCiAgICAgcmV0CkBAIC0yMjcxLDcgKzIyNzIsNyBAQCBtYWNybyBpbnRlcm5hbEZ1bmN0aW9u
Q2FsbFRyYW1wb2xpbmUob2Zmc2V0T2ZGdW5jdGlvbikKICAgICBhbmRwIE1hcmtlZEJsb2NrTWFz
aywgdDMKICAgICBsb2FkcCBNYXJrZWRCbG9ja0Zvb3Rlck9mZnNldCArIE1hcmtlZEJsb2NrOjpG
b290ZXI6Om1fdm1bdDNdLCB0MwogCi0gICAgYnRxbnogVk06Om1fZXhjZXB0aW9uW3QzXSwgLmhh
bmRsZUV4Y2VwdGlvbgorICAgIGJ0cG56IFZNOjptX2V4Y2VwdGlvblt0M10sIC5oYW5kbGVFeGNl
cHRpb24KIAogICAgIGZ1bmN0aW9uRXBpbG9ndWUoKQogICAgIHJldApAQCAtMjI5Nyw3ICsyMjk4
LDcgQEAgZW5kCiBtYWNybyByZXNvbHZlU2NvcGUoKQogICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlv
big1LCB0MikKICAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oMiwgdDApCi0gICAgbG9hZHAgW2Nm
ciwgdDAsIDhdLCB0MAorICAgIGxvYWRxIFtjZnIsIHQwLCA4XSwgdDAKICAgICBidGl6IHQyLCAu
cmVzb2x2ZVNjb3BlTG9vcEVuZAogCiAucmVzb2x2ZVNjb3BlTG9vcDoKQEAgLTI1OTMsNyArMjU5
NCw3IEBAIF9sbGludF9vcF9wdXRfdG9fc2NvcGU6CiBfbGxpbnRfb3BfZ2V0X2Zyb21fYXJndW1l
bnRzOgogICAgIHRyYWNlRXhlY3V0aW9uKCkKICAgICBsb2FkVmFyaWFibGUoMiwgdDApCi0gICAg
bG9hZGkgMjRbUEIsIFBDLCA4XSwgdDEKKyAgICBsb2FkaSAzICogUHRyU2l6ZVtQQiwgUEMsIFB0
clNpemVdLCB0MQogICAgIGxvYWRxIERpcmVjdEFyZ3VtZW50c19zdG9yYWdlW3QwLCB0MSwgOF0s
IHQwCiAgICAgdmFsdWVQcm9maWxlKHQwLCA0LCB0MSkKICAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rp
b24oMSwgdDEpCkBAIC0yNjA0LDcgKzI2MDUsNyBAQCBfbGxpbnRfb3BfZ2V0X2Zyb21fYXJndW1l
bnRzOgogX2xsaW50X29wX3B1dF90b19hcmd1bWVudHM6CiAgICAgdHJhY2VFeGVjdXRpb24oKQog
ICAgIGxvYWRWYXJpYWJsZSgxLCB0MCkKLSAgICBsb2FkaSAxNltQQiwgUEMsIDhdLCB0MQorICAg
IGxvYWRpIDIgKiBQdHJTaXplW1BCLCBQQywgUHRyU2l6ZV0sIHQxCiAgICAgbG9hZGlzRnJvbUlu
c3RydWN0aW9uKDMsIHQzKQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDMsIHQyKQogICAg
IHN0b3JlcSB0MiwgRGlyZWN0QXJndW1lbnRzX3N0b3JhZ2VbdDAsIHQxLCA4XQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJtNjQucmIgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm02NC5yYgppbmRleCA2MTEwMmM5OGMzMjllYTRhZWFk
OTNkYjY4ZWMyOTgyNGNhNzg0NGFjLi4wN2ExMmM4ZmYwYWQwODMxYjVmMmZlZjljN2E5ODE0M2M2
ODNjMWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm02
NC5yYgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm02NC5yYgpAQCAt
NzgsNiArNzgsOSBAQCBkZWYgYXJtNjRHUFJOYW1lKG5hbWUsIGtpbmQpCiAgICAgd2hlbiA6aW50
CiAgICAgICAgICJ3IiArIG51bWJlcgogICAgIHdoZW4gOnB0cgorICAgICAgICBwcmVmaXggPSAk
Y3VycmVudFNldHRpbmdzWyJBRERSRVNTNjQiXSA/ICJ4IiA6ICJ3IgorICAgICAgICBwcmVmaXgg
KyBudW1iZXIKKyAgICB3aGVuIDp3b3JkCiAgICAgICAgICJ4IiArIG51bWJlcgogICAgIGVsc2UK
ICAgICAgICAgcmFpc2UgIldyb25nIGtpbmQ6ICN7a2luZH0iCkBAIC0xOTksNyArMjAyLDcgQEAg
ZW5kCiBjbGFzcyBBZGRyZXNzCiAgICAgZGVmIGFybTY0T3BlcmFuZChraW5kKQogICAgICAgICBy
YWlzZSAiSW52YWxpZCBvZmZzZXQgI3tvZmZzZXQudmFsdWV9IGF0ICN7Y29kZU9yaWdpblN0cmlu
Z30iIGlmIG9mZnNldC52YWx1ZSA8IC0yNTUgb3Igb2Zmc2V0LnZhbHVlID4gNDA5NQotICAgICAg
ICAiWyN7YmFzZS5hcm02NE9wZXJhbmQoOnB0cil9LCBcIyN7b2Zmc2V0LnZhbHVlfV0iCisgICAg
ICAgICJbI3tiYXNlLmFybTY0T3BlcmFuZCg6d29yZCl9LCBcIyN7b2Zmc2V0LnZhbHVlfV0iCiAg
ICAgZW5kCiAgICAgCiAgICAgZGVmIGFybTY0RW1pdExlYShkZXN0aW5hdGlvbiwga2luZCkKQEAg
LTIxMCw3ICsyMTMsNyBAQCBlbmQKIGNsYXNzIEJhc2VJbmRleAogICAgIGRlZiBhcm02NE9wZXJh
bmQoa2luZCkKICAgICAgICAgcmFpc2UgIkludmFsaWQgb2Zmc2V0ICN7b2Zmc2V0LnZhbHVlfSBh
dCAje2NvZGVPcmlnaW5TdHJpbmd9IiBpZiBvZmZzZXQudmFsdWUgIT0gMAotICAgICAgICAiWyN7
YmFzZS5hcm02NE9wZXJhbmQoOnB0cil9LCAje2luZGV4LmFybTY0T3BlcmFuZCg6cHRyKX0sIGxz
bCBcIyN7c2NhbGVTaGlmdH1dIgorICAgICAgICAiWyN7YmFzZS5hcm02NE9wZXJhbmQoOndvcmQp
fSwgI3tpbmRleC5hcm02NE9wZXJhbmQoOndvcmQpfSwgbHNsIFwjI3tzY2FsZVNoaWZ0fV0iCiAg
ICAgZW5kCiAKICAgICBkZWYgYXJtNjRFbWl0TGVhKGRlc3RpbmF0aW9uLCBraW5kKQpAQCAtMjMz
LDIzICsyMzYsMzAgQEAgZW5kCiBkZWYgYXJtNjRMb3dlck1hbGZvcm1lZExvYWRTdG9yZUFkZHJl
c3NlcyhsaXN0KQogICAgIG5ld0xpc3QgPSBbXQogCi0gICAgZGVmIGlzQWRkcmVzc01hbGZvcm1l
ZChvcGVyYW5kKQotICAgICAgICBvcGVyYW5kLmlzX2E/IEFkZHJlc3MgYW5kIG5vdCAoLTI1NS4u
NDA5NSkuaW5jbHVkZT8gb3BlcmFuZC5vZmZzZXQudmFsdWUKKyAgICBkZWYgaXNBZGRyZXNzTWFs
Zm9ybWVkKG9wY29kZSwgb3BlcmFuZCkKKyAgICAgICAgbWFsZm9ybWVkID0gZmFsc2UKKyAgICAg
ICAgaWYgb3BlcmFuZC5pc19hPyBBZGRyZXNzCisgICAgICAgICAgICBtYWxmb3JtZWQgfHw9IChu
b3QgKC0yNTUuLjQwOTUpLmluY2x1ZGU/IG9wZXJhbmQub2Zmc2V0LnZhbHVlKQorICAgICAgICAg
ICAgaWYgb3Bjb2RlID1+IC9xJC8gYW5kICRjdXJyZW50U2V0dGluZ3NbIkFERFJFU1M2NCJdCisg
ICAgICAgICAgICAgICAgbWFsZm9ybWVkIHx8PSBvcGVyYW5kLm9mZnNldC52YWx1ZSAlIDgKKyAg
ICAgICAgICAgIGVuZAorICAgICAgICBlbmQKKyAgICAgICAgbWFsZm9ybWVkCiAgICAgZW5kCiAK
ICAgICBsaXN0LmVhY2ggewogICAgICAgICB8IG5vZGUgfAogICAgICAgICBpZiBub2RlLmlzX2E/
IEluc3RydWN0aW9uCi0gICAgICAgICAgICBpZiBub2RlLm9wY29kZSA9fiAvXnN0b3JlLyBhbmQg
aXNBZGRyZXNzTWFsZm9ybWVkKG5vZGUub3BlcmFuZHNbMV0pCisgICAgICAgICAgICBpZiBub2Rl
Lm9wY29kZSA9fiAvXnN0b3JlLyBhbmQgaXNBZGRyZXNzTWFsZm9ybWVkKG5vZGUub3Bjb2RlLCBu
b2RlLm9wZXJhbmRzWzFdKQogICAgICAgICAgICAgICAgIGFkZHJlc3MgPSBub2RlLm9wZXJhbmRz
WzFdCiAgICAgICAgICAgICAgICAgdG1wID0gVG1wLm5ldyhjb2RlT3JpZ2luLCA6Z3ByKQogICAg
ICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwg
Im1vdmUiLCBbYWRkcmVzcy5vZmZzZXQsIHRtcF0pCi0gICAgICAgICAgICAgICAgbmV3TGlzdCA8
PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCBub2RlLm9wY29kZSwgW25vZGUub3Bl
cmFuZHNbMF0sIEJhc2VJbmRleC5uZXcobm9kZS5jb2RlT3JpZ2luLCBhZGRyZXNzLmJhc2UsIHRt
cCwgMSwgSW1tZWRpYXRlLm5ldyhjb2RlT3JpZ2luLCAwKSldLCBub2RlLmFubm90YXRpb24pCi0g
ICAgICAgICAgICBlbHNpZiBub2RlLm9wY29kZSA9fiAvXmxvYWQvIGFuZCBpc0FkZHJlc3NNYWxm
b3JtZWQobm9kZS5vcGVyYW5kc1swXSkKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3Ry
dWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sIG5vZGUub3Bjb2RlLCBbbm9kZS5vcGVyYW5kc1sw
XSwgQmFzZUluZGV4Lm5ldyhub2RlLmNvZGVPcmlnaW4sIGFkZHJlc3MuYmFzZSwgdG1wLCBJbW1l
ZGlhdGUubmV3KGNvZGVPcmlnaW4sIDEpLCBJbW1lZGlhdGUubmV3KGNvZGVPcmlnaW4sIDApKV0s
IG5vZGUuYW5ub3RhdGlvbikKKyAgICAgICAgICAgIGVsc2lmIG5vZGUub3Bjb2RlID1+IC9ebG9h
ZC8gYW5kIGlzQWRkcmVzc01hbGZvcm1lZChub2RlLm9wY29kZSwgbm9kZS5vcGVyYW5kc1swXSkK
ICAgICAgICAgICAgICAgICBhZGRyZXNzID0gbm9kZS5vcGVyYW5kc1swXQogICAgICAgICAgICAg
ICAgIHRtcCA9IFRtcC5uZXcoY29kZU9yaWdpbiwgOmdwcikKICAgICAgICAgICAgICAgICBuZXdM
aXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJtb3ZlIiwgW2FkZHJlc3Mu
b2Zmc2V0LCB0bXBdKQotICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3
KG5vZGUuY29kZU9yaWdpbiwgbm9kZS5vcGNvZGUsIFtCYXNlSW5kZXgubmV3KG5vZGUuY29kZU9y
aWdpbiwgYWRkcmVzcy5iYXNlLCB0bXAsIDEsIEltbWVkaWF0ZS5uZXcoY29kZU9yaWdpbiwgMCkp
LCBub2RlLm9wZXJhbmRzWzFdXSwgbm9kZS5hbm5vdGF0aW9uKQorICAgICAgICAgICAgICAgIG5l
d0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgbm9kZS5vcGNvZGUsIFtC
YXNlSW5kZXgubmV3KG5vZGUuY29kZU9yaWdpbiwgYWRkcmVzcy5iYXNlLCB0bXAsIEltbWVkaWF0
ZS5uZXcoY29kZU9yaWdpbiwgMSksIEltbWVkaWF0ZS5uZXcoY29kZU9yaWdpbiwgMCkpLCBub2Rl
Lm9wZXJhbmRzWzFdXSwgbm9kZS5hbm5vdGF0aW9uKQogICAgICAgICAgICAgZWxzZQogICAgICAg
ICAgICAgICAgIG5ld0xpc3QgPDwgbm9kZQogICAgICAgICAgICAgZW5kCkBAIC0yODUsNiArMjk1
LDQzIEBAIGRlZiBhcm02NExvd2VyTGFiZWxSZWZlcmVuY2VzKGxpc3QpCiAgICAgbmV3TGlzdAog
ZW5kCiAKK2RlZiBhcm02NEZpeFNwZWNpYWxSZWdpc3RlckFyaXRobWV0aWNNb2RlKGxpc3QpCisg
ICAgbmV3TGlzdCA9IFtdCisgICAgZGVmIHVzZXNTcGVjaWFsUmVnaXN0ZXIobm9kZSkKKyAgICAg
ICAgbm9kZS5jaGlsZHJlbi5hbnk/IHsKKyAgICAgICAgICAgIHxvcGVyYW5kfAorICAgICAgICAg
ICAgaWYgb3BlcmFuZC5pc19hPyBSZWdpc3RlcklEIGFuZCBvcGVyYW5kLm5hbWUgPX4gL3NwLwor
ICAgICAgICAgICAgICAgIHRydWUKKyAgICAgICAgICAgIGVsc2lmIG9wZXJhbmQuaXNfYT8gQWRk
cmVzcyBvciBvcGVyYW5kLmlzX2E/IEJhc2VJbmRleAorICAgICAgICAgICAgICAgIHVzZXNTcGVj
aWFsUmVnaXN0ZXIob3BlcmFuZCkKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBm
YWxzZQorICAgICAgICAgICAgZW5kCisgICAgICAgIH0KKyAgICBlbmQKKworCisgICAgbGlzdC5l
YWNoIHsKKyAgICAgICAgfCBub2RlIHwKKyAgICAgICAgaWYgbm9kZS5pc19hPyBJbnN0cnVjdGlv
bgorICAgICAgICAgICAgY2FzZSBub2RlLm9wY29kZQorICAgICAgICAgICAgd2hlbiAiYWRkcCIs
ICJzdWJwIiwgIm11bHAiLCAiZGl2cCIsICJsZWFwIgorICAgICAgICAgICAgICAgIGlmIG5vdCAk
Y3VycmVudFNldHRpbmdzWyJBRERSRVNTNjQiXSBhbmQgdXNlc1NwZWNpYWxSZWdpc3Rlcihub2Rl
KQorICAgICAgICAgICAgICAgICAgICBuZXdPcGNvZGUgPSBub2RlLm9wY29kZS5zdWIoLyguKilw
LywgJ1wxcScpCisgICAgICAgICAgICAgICAgICAgIG5vZGUgPSBJbnN0cnVjdGlvbi5uZXcobm9k
ZS5jb2RlT3JpZ2luLCBuZXdPcGNvZGUsIG5vZGUub3BlcmFuZHMsIG5vZGUuYW5ub3RhdGlvbikK
KyAgICAgICAgICAgICAgICBlbmQKKyAgICAgICAgICAgIHdoZW4gL15icC8KKyAgICAgICAgICAg
ICAgICBpZiBub3QgJGN1cnJlbnRTZXR0aW5nc1siQUREUkVTUzY0Il0gYW5kIHVzZXNTcGVjaWFs
UmVnaXN0ZXIobm9kZSkKKyAgICAgICAgICAgICAgICAgICAgbmV3T3Bjb2RlID0gbm9kZS5vcGNv
ZGUuc3ViKC9eYnAoLiopLywgJ2JxXDEnKQorICAgICAgICAgICAgICAgICAgICBub2RlID0gSW5z
dHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgbmV3T3Bjb2RlLCBub2RlLm9wZXJhbmRzLCBu
b2RlLmFubm90YXRpb24pCisgICAgICAgICAgICAgICAgZW5kCisgICAgICAgICAgICBlbmQKKyAg
ICAgICAgZW5kCisgICAgICAgIG5ld0xpc3QgPDwgbm9kZQorICAgIH0KKyAgICBuZXdMaXN0Citl
bmQKKwogIyBXb3JrYXJvdW5kIGZvciBDb3J0ZXgtQTUzIGVycmF0dW0gKDgzNTc2OSkKIGRlZiBh
cm02NENvcnRleEE1M0ZpeDgzNTc2OShsaXN0KQogICAgIG5ld0xpc3QgPSBbXQpAQCAtMzE4LDcg
KzM2NSw4IEBAIGNsYXNzIFNlcXVlbmNlCiAgICAgICAgIHJlc3VsdCA9IEBsaXN0CiAgICAgICAg
IHJlc3VsdCA9IHJpc2NMb3dlck5vdChyZXN1bHQpCiAgICAgICAgIHJlc3VsdCA9IHJpc2NMb3dl
clNpbXBsZUJyYW5jaE9wcyhyZXN1bHQpCi0gICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlckhhcmRC
cmFuY2hPcHM2NChyZXN1bHQpCisKKyAgICAgICAgcmVzdWx0ID0gJGN1cnJlbnRTZXR0aW5nc1si
QUREUkVTUzY0Il0gPyByaXNjTG93ZXJIYXJkQnJhbmNoT3BzNjQocmVzdWx0KSA6IHJpc2NMb3dl
ckhhcmRCcmFuY2hPcHMocmVzdWx0KQogICAgICAgICByZXN1bHQgPSByaXNjTG93ZXJTaGlmdE9w
cyhyZXN1bHQpCiAgICAgICAgIHJlc3VsdCA9IGFybTY0TG93ZXJNYWxmb3JtZWRMb2FkU3RvcmVB
ZGRyZXNzZXMocmVzdWx0KQogICAgICAgICByZXN1bHQgPSBhcm02NExvd2VyTGFiZWxSZWZlcmVu
Y2VzKHJlc3VsdCkKQEAgLTMzNyw3ICszODUsNyBAQCBjbGFzcyBTZXF1ZW5jZQogICAgICAgICAg
ICAgICAgICJ1cnNoaWZ0cCIsICJ1cnNoaWZ0cSIsICJhZGRwIiwgImFkZHEiLCAibXVscCIsICJt
dWxxIiwgImFuZHAiLCAiYW5kcSIsICJvcnAiLCAib3JxIiwgInN1YnAiLCAic3VicSIsICJ4b3Jw
IiwgInhvcnEiLCAiYWRkZCIsCiAgICAgICAgICAgICAgICAgImRpdmQiLCAic3ViZCIsICJtdWxk
IiwgInNxcnRkIiwgL15icC8sIC9eYnEvLCAvXmJ0cC8sIC9eYnRxLywgL15jcC8sIC9eY3EvLCAv
XnRwLywgL150cS8sIC9eYmQvLAogICAgICAgICAgICAgICAgICJqbXAiLCAiY2FsbCIsICJsZWFw
IiwgImxlYXEiCi0gICAgICAgICAgICAgICAgc2l6ZSA9IDgKKyAgICAgICAgICAgICAgICBzaXpl
ID0gJGN1cnJlbnRTZXR0aW5nc1siQUREUkVTUzY0Il0gPyA4IDogNAogICAgICAgICAgICAgZWxz
ZQogICAgICAgICAgICAgICAgIHJhaXNlICJCYWQgaW5zdHJ1Y3Rpb24gI3tub2RlLm9wY29kZX0g
Zm9yIGhlYXAgYWNjZXNzIGF0ICN7bm9kZS5jb2RlT3JpZ2luU3RyaW5nfSIKICAgICAgICAgICAg
IGVuZApAQCAtMzY4LDYgKzQxNiw3IEBAIGNsYXNzIFNlcXVlbmNlCiAgICAgICAgICAgICBlbmQK
ICAgICAgICAgfQogICAgICAgICByZXN1bHQgPSByaXNjTG93ZXJUZXN0KHJlc3VsdCkKKyAgICAg
ICAgcmVzdWx0ID0gYXJtNjRGaXhTcGVjaWFsUmVnaXN0ZXJBcml0aG1ldGljTW9kZShyZXN1bHQp
CiAgICAgICAgIHJlc3VsdCA9IGFzc2lnblJlZ2lzdGVyc1RvVGVtcG9yYXJpZXMocmVzdWx0LCA6
Z3ByLCBBUk02NF9FWFRSQV9HUFJTKQogICAgICAgICByZXN1bHQgPSBhc3NpZ25SZWdpc3RlcnNU
b1RlbXBvcmFyaWVzKHJlc3VsdCwgOmZwciwgQVJNNjRfRVhUUkFfRlBSUykKICAgICAgICAgcmVz
dWx0ID0gYXJtNjRDb3J0ZXhBNTNGaXg4MzU3NjkocmVzdWx0KQpAQCAtNDQ5LDEwICs0OTgsMTEg
QEAgZW5kCiAKIGRlZiBlbWl0QVJNNjRBY2Nlc3Mob3Bjb2RlLCBvcGNvZGVOZWdhdGl2ZU9mZnNl
dCwgcmVnaXN0ZXIsIG1lbW9yeSwga2luZCkKICAgICBpZiBtZW1vcnkuaXNfYT8gQWRkcmVzcyBh
bmQgbWVtb3J5Lm9mZnNldC52YWx1ZSA8IDAKKyAgICAgICAgcmFpc2UgdW5sZXNzIC0yNTYgPD0g
bWVtb3J5Lm9mZnNldC52YWx1ZQogICAgICAgICAkYXNtLnB1dHMgIiN7b3Bjb2RlTmVnYXRpdmVP
ZmZzZXR9ICN7cmVnaXN0ZXIuYXJtNjRPcGVyYW5kKGtpbmQpfSwgI3ttZW1vcnkuYXJtNjRPcGVy
YW5kKGtpbmQpfSIKICAgICAgICAgcmV0dXJuCiAgICAgZW5kCi0gICAgCisKICAgICAkYXNtLnB1
dHMgIiN7b3Bjb2RlfSAje3JlZ2lzdGVyLmFybTY0T3BlcmFuZChraW5kKX0sICN7bWVtb3J5LmFy
bTY0T3BlcmFuZChraW5kKX0iCiBlbmQKIApAQCAtNDkxLDEzICs1NDEsMTMgQEAgZGVmIGVtaXRB
Uk02NE1vdmVJbW1lZGlhdGUodmFsdWUsIHRhcmdldCkKICAgICAgICAgbmV4dCBpZiBjdXJyZW50
VmFsdWUgPT0gKGlzTmVnYXRpdmUgPyAweGZmZmYgOiAwKSBhbmQgKHNoaWZ0ICE9IDAgb3IgIWZp
cnN0KQogICAgICAgICBpZiBmaXJzdAogICAgICAgICAgICAgaWYgaXNOZWdhdGl2ZQotICAgICAg
ICAgICAgICAgICRhc20ucHV0cyAibW92biAje3RhcmdldC5hcm02NE9wZXJhbmQoOnB0cil9LCBc
IyN7KH5jdXJyZW50VmFsdWUpICYgMHhmZmZmfSwgbHNsIFwjI3tzaGlmdH0iCisgICAgICAgICAg
ICAgICAgJGFzbS5wdXRzICJtb3ZuICN7dGFyZ2V0LmFybTY0T3BlcmFuZCg6d29yZCl9LCBcIyN7
KH5jdXJyZW50VmFsdWUpICYgMHhmZmZmfSwgbHNsIFwjI3tzaGlmdH0iCiAgICAgICAgICAgICBl
bHNlCi0gICAgICAgICAgICAgICAgJGFzbS5wdXRzICJtb3Z6ICN7dGFyZ2V0LmFybTY0T3BlcmFu
ZCg6cHRyKX0sIFwjI3tjdXJyZW50VmFsdWV9LCBsc2wgXCMje3NoaWZ0fSIKKyAgICAgICAgICAg
ICAgICAkYXNtLnB1dHMgIm1vdnogI3t0YXJnZXQuYXJtNjRPcGVyYW5kKDp3b3JkKX0sIFwjI3tj
dXJyZW50VmFsdWV9LCBsc2wgXCMje3NoaWZ0fSIKICAgICAgICAgICAgIGVuZAogICAgICAgICAg
ICAgZmlyc3QgPSBmYWxzZQogICAgICAgICBlbHNlCi0gICAgICAgICAgICAkYXNtLnB1dHMgIm1v
dmsgI3t0YXJnZXQuYXJtNjRPcGVyYW5kKDpwdHIpfSwgXCMje2N1cnJlbnRWYWx1ZX0sIGxzbCBc
IyN7c2hpZnR9IgorICAgICAgICAgICAgJGFzbS5wdXRzICJtb3ZrICN7dGFyZ2V0LmFybTY0T3Bl
cmFuZCg6d29yZCl9LCBcIyN7Y3VycmVudFZhbHVlfSwgbHNsIFwjI3tzaGlmdH0iCiAgICAgICAg
IGVuZAogICAgIH0KIGVuZApAQCAtNTE0LDI1ICs1NjQsMjUgQEAgY2xhc3MgSW5zdHJ1Y3Rpb24K
ICAgICAgICAgd2hlbiAnYWRkcHMnCiAgICAgICAgICAgICBlbWl0QVJNNjRBZGQoImFkZHMiLCBv
cGVyYW5kcywgOnB0cikKICAgICAgICAgd2hlbiAnYWRkcScKLSAgICAgICAgICAgIGVtaXRBUk02
NEFkZCgiYWRkIiwgb3BlcmFuZHMsIDpwdHIpCisgICAgICAgICAgICBlbWl0QVJNNjRBZGQoImFk
ZCIsIG9wZXJhbmRzLCA6d29yZCkKICAgICAgICAgd2hlbiAiYW5kaSIKICAgICAgICAgICAgIGVt
aXRBUk02NFRBQygiYW5kIiwgb3BlcmFuZHMsIDppbnQpCiAgICAgICAgIHdoZW4gImFuZHAiCiAg
ICAgICAgICAgICBlbWl0QVJNNjRUQUMoImFuZCIsIG9wZXJhbmRzLCA6cHRyKQogICAgICAgICB3
aGVuICJhbmRxIgotICAgICAgICAgICAgZW1pdEFSTTY0VEFDKCJhbmQiLCBvcGVyYW5kcywgOnB0
cikKKyAgICAgICAgICAgIGVtaXRBUk02NFRBQygiYW5kIiwgb3BlcmFuZHMsIDp3b3JkKQogICAg
ICAgICB3aGVuICJvcmkiCiAgICAgICAgICAgICBlbWl0QVJNNjRUQUMoIm9yciIsIG9wZXJhbmRz
LCA6aW50KQogICAgICAgICB3aGVuICJvcnAiCiAgICAgICAgICAgICBlbWl0QVJNNjRUQUMoIm9y
ciIsIG9wZXJhbmRzLCA6cHRyKQogICAgICAgICB3aGVuICJvcnEiCi0gICAgICAgICAgICBlbWl0
QVJNNjRUQUMoIm9yciIsIG9wZXJhbmRzLCA6cHRyKQorICAgICAgICAgICAgZW1pdEFSTTY0VEFD
KCJvcnIiLCBvcGVyYW5kcywgOndvcmQpCiAgICAgICAgIHdoZW4gInhvcmkiCiAgICAgICAgICAg
ICBlbWl0QVJNNjRUQUMoImVvciIsIG9wZXJhbmRzLCA6aW50KQogICAgICAgICB3aGVuICJ4b3Jw
IgogICAgICAgICAgICAgZW1pdEFSTTY0VEFDKCJlb3IiLCBvcGVyYW5kcywgOnB0cikKICAgICAg
ICAgd2hlbiAieG9ycSIKLSAgICAgICAgICAgIGVtaXRBUk02NFRBQygiZW9yIiwgb3BlcmFuZHMs
IDpwdHIpCisgICAgICAgICAgICBlbWl0QVJNNjRUQUMoImVvciIsIG9wZXJhbmRzLCA6d29yZCkK
ICAgICAgICAgd2hlbiAibHNoaWZ0aSIKICAgICAgICAgICAgIGVtaXRBUk02NFNoaWZ0KCJsc2x2
IiwgInViZm0iLCBvcGVyYW5kcywgOmludCkgewogICAgICAgICAgICAgICAgIHwgdmFsdWUgfApA
QCAtNTQxLDEwICs1OTEsMTEgQEAgY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICAgICAgd2hlbiAibHNo
aWZ0cCIKICAgICAgICAgICAgIGVtaXRBUk02NFNoaWZ0KCJsc2x2IiwgInViZm0iLCBvcGVyYW5k
cywgOnB0cikgewogICAgICAgICAgICAgICAgIHwgdmFsdWUgfAotICAgICAgICAgICAgICAgIFs2
NCAtIHZhbHVlLCA2MyAtIHZhbHVlXQorICAgICAgICAgICAgICAgIGJpdFNpemUgPSAkY3VycmVu
dFNldHRpbmdzWyJBRERSRVNTNjQiXSA/IDY0IDogMzIKKyAgICAgICAgICAgICAgICBbYml0U2l6
ZSAtIHZhbHVlLCBiaXRTaXplIC0gMSAtIHZhbHVlXQogICAgICAgICAgICAgfQogICAgICAgICB3
aGVuICJsc2hpZnRxIgotICAgICAgICAgICAgZW1pdEFSTTY0U2hpZnQoImxzbHYiLCAidWJmbSIs
IG9wZXJhbmRzLCA6cHRyKSB7CisgICAgICAgICAgICBlbWl0QVJNNjRTaGlmdCgibHNsdiIsICJ1
YmZtIiwgb3BlcmFuZHMsIDp3b3JkKSB7CiAgICAgICAgICAgICAgICAgfCB2YWx1ZSB8CiAgICAg
ICAgICAgICAgICAgWzY0IC0gdmFsdWUsIDYzIC0gdmFsdWVdCiAgICAgICAgICAgICB9CkBAIC01
NTYsMTAgKzYwNywxMSBAQCBjbGFzcyBJbnN0cnVjdGlvbgogICAgICAgICB3aGVuICJyc2hpZnRw
IgogICAgICAgICAgICAgZW1pdEFSTTY0U2hpZnQoImFzcnYiLCAic2JmbSIsIG9wZXJhbmRzLCA6
cHRyKSB7CiAgICAgICAgICAgICAgICAgfCB2YWx1ZSB8Ci0gICAgICAgICAgICAgICAgW3ZhbHVl
LCA2M10KKyAgICAgICAgICAgICAgICBiaXRTaXplID0gJGN1cnJlbnRTZXR0aW5nc1siQUREUkVT
UzY0Il0gPyA2NCA6IDMyCisgICAgICAgICAgICAgICAgW3ZhbHVlLCBiaXRTaXplIC0gMV0KICAg
ICAgICAgICAgIH0KICAgICAgICAgd2hlbiAicnNoaWZ0cSIKLSAgICAgICAgICAgIGVtaXRBUk02
NFNoaWZ0KCJhc3J2IiwgInNiZm0iLCBvcGVyYW5kcywgOnB0cikgeworICAgICAgICAgICAgZW1p
dEFSTTY0U2hpZnQoImFzcnYiLCAic2JmbSIsIG9wZXJhbmRzLCA6d29yZCkgewogICAgICAgICAg
ICAgICAgIHwgdmFsdWUgfAogICAgICAgICAgICAgICAgIFt2YWx1ZSwgNjNdCiAgICAgICAgICAg
ICB9CkBAIC01NzEsNDcgKzYyMyw0OCBAQCBjbGFzcyBJbnN0cnVjdGlvbgogICAgICAgICB3aGVu
ICJ1cnNoaWZ0cCIKICAgICAgICAgICAgIGVtaXRBUk02NFNoaWZ0KCJsc3J2IiwgInViZm0iLCBv
cGVyYW5kcywgOnB0cikgewogICAgICAgICAgICAgICAgIHwgdmFsdWUgfAotICAgICAgICAgICAg
ICAgIFt2YWx1ZSwgNjNdCisgICAgICAgICAgICAgICAgYml0U2l6ZSA9ICRjdXJyZW50U2V0dGlu
Z3NbIkFERFJFU1M2NCJdID8gNjQgOiAzMgorICAgICAgICAgICAgICAgIFt2YWx1ZSwgYml0U2l6
ZSAtIDFdCiAgICAgICAgICAgICB9CiAgICAgICAgIHdoZW4gInVyc2hpZnRxIgotICAgICAgICAg
ICAgZW1pdEFSTTY0U2hpZnQoImxzcnYiLCAidWJmbSIsIG9wZXJhbmRzLCA6cHRyKSB7CisgICAg
ICAgICAgICBlbWl0QVJNNjRTaGlmdCgibHNydiIsICJ1YmZtIiwgb3BlcmFuZHMsIDp3b3JkKSB7
CiAgICAgICAgICAgICAgICAgfCB2YWx1ZSB8CiAgICAgICAgICAgICAgICAgW3ZhbHVlLCA2M10K
ICAgICAgICAgICAgIH0KICAgICAgICAgd2hlbiAibXVsaSIKICAgICAgICAgICAgICRhc20ucHV0
cyAibWFkZCAje2FybTY0VEFDT3BlcmFuZHMob3BlcmFuZHMsIDppbnQpfSwgd3pyIgogICAgICAg
ICB3aGVuICJtdWxwIgotICAgICAgICAgICAgJGFzbS5wdXRzICJtYWRkICN7YXJtNjRUQUNPcGVy
YW5kcyhvcGVyYW5kcywgOnB0cil9LCB4enIiCisgICAgICAgICAgICAkYXNtLnB1dHMgIm1hZGQg
I3thcm02NFRBQ09wZXJhbmRzKG9wZXJhbmRzLCA6cHRyKX0sICN7YXJtNjRHUFJOYW1lKCd4enIn
LCA6cHRyKX0iCiAgICAgICAgIHdoZW4gIm11bHEiCi0gICAgICAgICAgICAkYXNtLnB1dHMgIm1h
ZGQgI3thcm02NFRBQ09wZXJhbmRzKG9wZXJhbmRzLCA6cHRyKX0sIHh6ciIKKyAgICAgICAgICAg
ICRhc20ucHV0cyAibWFkZCAje2FybTY0VEFDT3BlcmFuZHMob3BlcmFuZHMsIDp3b3JkKX0sIHh6
ciIKICAgICAgICAgd2hlbiAic3ViaSIKICAgICAgICAgICAgIGVtaXRBUk02NFRBQygic3ViIiwg
b3BlcmFuZHMsIDppbnQpCiAgICAgICAgIHdoZW4gInN1YnAiCiAgICAgICAgICAgICBlbWl0QVJN
NjRUQUMoInN1YiIsIG9wZXJhbmRzLCA6cHRyKQogICAgICAgICB3aGVuICJzdWJxIgotICAgICAg
ICAgICAgZW1pdEFSTTY0VEFDKCJzdWIiLCBvcGVyYW5kcywgOnB0cikKKyAgICAgICAgICAgIGVt
aXRBUk02NFRBQygic3ViIiwgb3BlcmFuZHMsIDp3b3JkKQogICAgICAgICB3aGVuICJzdWJpcyIK
ICAgICAgICAgICAgIGVtaXRBUk02NFRBQygic3VicyIsIG9wZXJhbmRzLCA6aW50KQogICAgICAg
ICB3aGVuICJuZWdpIgogICAgICAgICAgICAgJGFzbS5wdXRzICJzdWIgI3tvcGVyYW5kc1swXS5h
cm02NE9wZXJhbmQoOmludCl9LCB3enIsICN7b3BlcmFuZHNbMF0uYXJtNjRPcGVyYW5kKDppbnQp
fSIKICAgICAgICAgd2hlbiAibmVncCIKLSAgICAgICAgICAgICRhc20ucHV0cyAic3ViICN7b3Bl
cmFuZHNbMF0uYXJtNjRPcGVyYW5kKDpwdHIpfSwgeHpyLCAje29wZXJhbmRzWzBdLmFybTY0T3Bl
cmFuZCg6cHRyKX0iCisgICAgICAgICAgICAkYXNtLnB1dHMgInN1YiAje29wZXJhbmRzWzBdLmFy
bTY0T3BlcmFuZCg6cHRyKX0sICN7YXJtNjRHUFJOYW1lKCd4enInLCA6cHRyKX0sICN7b3BlcmFu
ZHNbMF0uYXJtNjRPcGVyYW5kKDpwdHIpfSIKICAgICAgICAgd2hlbiAibmVncSIKLSAgICAgICAg
ICAgICRhc20ucHV0cyAic3ViICN7b3BlcmFuZHNbMF0uYXJtNjRPcGVyYW5kKDpwdHIpfSwgeHpy
LCAje29wZXJhbmRzWzBdLmFybTY0T3BlcmFuZCg6cHRyKX0iCisgICAgICAgICAgICAkYXNtLnB1
dHMgInN1YiAje29wZXJhbmRzWzBdLmFybTY0T3BlcmFuZCg6d29yZCl9LCB4enIsICN7b3BlcmFu
ZHNbMF0uYXJtNjRPcGVyYW5kKDp3b3JkKX0iCiAgICAgICAgIHdoZW4gImxvYWRpIgogICAgICAg
ICAgICAgZW1pdEFSTTY0QWNjZXNzKCJsZHIiLCAibGR1ciIsIG9wZXJhbmRzWzFdLCBvcGVyYW5k
c1swXSwgOmludCkKICAgICAgICAgd2hlbiAibG9hZGlzIgotICAgICAgICAgICAgZW1pdEFSTTY0
QWNjZXNzKCJsZHJzdyIsICJsZHVyc3ciLCBvcGVyYW5kc1sxXSwgb3BlcmFuZHNbMF0sIDpwdHIp
CisgICAgICAgICAgICBlbWl0QVJNNjRBY2Nlc3MoImxkcnN3IiwgImxkdXJzdyIsIG9wZXJhbmRz
WzFdLCBvcGVyYW5kc1swXSwgOndvcmQpCiAgICAgICAgIHdoZW4gImxvYWRwIgogICAgICAgICAg
ICAgZW1pdEFSTTY0QWNjZXNzKCJsZHIiLCAibGR1ciIsIG9wZXJhbmRzWzFdLCBvcGVyYW5kc1sw
XSwgOnB0cikKICAgICAgICAgd2hlbiAibG9hZHEiCi0gICAgICAgICAgICBlbWl0QVJNNjRBY2Nl
c3MoImxkciIsICJsZHVyIiwgb3BlcmFuZHNbMV0sIG9wZXJhbmRzWzBdLCA6cHRyKQorICAgICAg
ICAgICAgZW1pdEFSTTY0QWNjZXNzKCJsZHIiLCAibGR1ciIsIG9wZXJhbmRzWzFdLCBvcGVyYW5k
c1swXSwgOndvcmQpCiAgICAgICAgIHdoZW4gInN0b3JlaSIKICAgICAgICAgICAgIGVtaXRBUk02
NFVuZmxpcHBlZCgic3RyIiwgb3BlcmFuZHMsIDppbnQpCiAgICAgICAgIHdoZW4gInN0b3JlcCIK
ICAgICAgICAgICAgIGVtaXRBUk02NFVuZmxpcHBlZCgic3RyIiwgb3BlcmFuZHMsIDpwdHIpCiAg
ICAgICAgIHdoZW4gInN0b3JlcSIKLSAgICAgICAgICAgIGVtaXRBUk02NFVuZmxpcHBlZCgic3Ry
Iiwgb3BlcmFuZHMsIDpwdHIpCisgICAgICAgICAgICBlbWl0QVJNNjRVbmZsaXBwZWQoInN0ciIs
IG9wZXJhbmRzLCA6d29yZCkKICAgICAgICAgd2hlbiAibG9hZGIiCiAgICAgICAgICAgICBlbWl0
QVJNNjRBY2Nlc3MoImxkcmIiLCAibGR1cmIiLCBvcGVyYW5kc1sxXSwgb3BlcmFuZHNbMF0sIDpp
bnQpCiAgICAgICAgIHdoZW4gImxvYWRicyIKQEAgLTY5NSwyNyArNzQ4LDI3IEBAIGNsYXNzIElu
c3RydWN0aW9uCiAgICAgICAgICAgICAgICAgIyBTbyBmb3IgZXhhbXBsZSwgaWYgd2UgZGlkIHB1
c2goQSwgQiwgQywgRCksIHdlIHdvdWxkIHRoZW4gcG9wKEQsIEMsIEIsIEEpLgogICAgICAgICAg
ICAgICAgICMgQnV0IHNpbmNlIHRoZSBvcmRlcmluZyBvZiBhcmd1bWVudHMgZG9lc24ndCBjaGFu
Z2Ugb24gYXJtNjQgYmV0d2VlbiB0aGUgc3RwIGFuZCBsZHAgCiAgICAgICAgICAgICAgICAgIyBp
bnN0cnVjdGlvbnMgd2UgbmVlZCB0byBmbGlwIGZsb3AgdGhlIGFyZ3VtZW50IHBvc2l0aW9ucyB0
aGF0IHdlcmUgcGFzc2VkIHRvIHVzLgotICAgICAgICAgICAgICAgICRhc20ucHV0cyAibGRwICN7
b3BzWzFdLmFybTY0T3BlcmFuZCg6cHRyKX0sICN7b3BzWzBdLmFybTY0T3BlcmFuZCg6cHRyKX0s
IFtzcF0sICMxNiIKKyAgICAgICAgICAgICAgICAkYXNtLnB1dHMgImxkcCAje29wc1sxXS5hcm02
NE9wZXJhbmQoOndvcmQpfSwgI3tvcHNbMF0uYXJtNjRPcGVyYW5kKDp3b3JkKX0sIFtzcF0sICMx
NiIKICAgICAgICAgICAgIH0KICAgICAgICAgd2hlbiAicHVzaCIKICAgICAgICAgICAgIG9wZXJh
bmRzLmVhY2hfc2xpY2UoMikgewogICAgICAgICAgICAgICAgIHwgb3BzIHwKLSAgICAgICAgICAg
ICAgICAkYXNtLnB1dHMgInN0cCAje29wc1swXS5hcm02NE9wZXJhbmQoOnB0cil9LCAje29wc1sx
XS5hcm02NE9wZXJhbmQoOnB0cil9LCBbc3AsICMtMTZdISIKKyAgICAgICAgICAgICAgICAkYXNt
LnB1dHMgInN0cCAje29wc1swXS5hcm02NE9wZXJhbmQoOndvcmQpfSwgI3tvcHNbMV0uYXJtNjRP
cGVyYW5kKDp3b3JkKX0sIFtzcCwgIy0xNl0hIgogICAgICAgICAgICAgfQogICAgICAgICB3aGVu
ICJtb3ZlIgogICAgICAgICAgICAgaWYgb3BlcmFuZHNbMF0uaW1tZWRpYXRlPwogICAgICAgICAg
ICAgICAgIGVtaXRBUk02NE1vdmVJbW1lZGlhdGUob3BlcmFuZHNbMF0udmFsdWUsIG9wZXJhbmRz
WzFdKQogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIGVtaXRBUk02NCgibW92Iiwg
b3BlcmFuZHMsIDpwdHIpCisgICAgICAgICAgICAgICAgZW1pdEFSTTY0KCJtb3YiLCBvcGVyYW5k
cywgOndvcmQpCiAgICAgICAgICAgICBlbmQKICAgICAgICAgd2hlbiAic3hpMnAiCiAgICAgICAg
ICAgICBlbWl0QVJNNjQoInN4dHciLCBvcGVyYW5kcywgWzppbnQsIDpwdHJdKQogICAgICAgICB3
aGVuICJzeGkycSIKLSAgICAgICAgICAgIGVtaXRBUk02NCgic3h0dyIsIG9wZXJhbmRzLCBbOmlu
dCwgOnB0cl0pCisgICAgICAgICAgICBlbWl0QVJNNjQoInN4dHciLCBvcGVyYW5kcywgWzppbnQs
IDp3b3JkXSkKICAgICAgICAgd2hlbiAienhpMnAiCiAgICAgICAgICAgICBlbWl0QVJNNjQoInV4
dHciLCBvcGVyYW5kcywgWzppbnQsIDpwdHJdKQogICAgICAgICB3aGVuICJ6eGkycSIKLSAgICAg
ICAgICAgIGVtaXRBUk02NCgidXh0dyIsIG9wZXJhbmRzLCBbOmludCwgOnB0cl0pCisgICAgICAg
ICAgICBlbWl0QVJNNjQoInV4dHciLCBvcGVyYW5kcywgWzppbnQsIDp3b3JkXSkKICAgICAgICAg
d2hlbiAibm9wIgogICAgICAgICAgICAgJGFzbS5wdXRzICJub3AiCiAgICAgICAgIHdoZW4gImJp
ZXEiLCAiYmJlcSIKQEAgLTczMiwxNSArNzg1LDE1IEBAIGNsYXNzIEluc3RydWN0aW9uCiAgICAg
ICAgICAgICBlbHNpZiBvcGVyYW5kc1sxXS5pbW1lZGlhdGU/IGFuZCBvcGVyYW5kc1sxXS52YWx1
ZSA9PSAwCiAgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJjYnogI3tvcGVyYW5kc1swXS5hcm02
NE9wZXJhbmQoOnB0cil9LCAje29wZXJhbmRzWzJdLmFzbUxhYmVsfSIKICAgICAgICAgICAgIGVs
c2UKLSAgICAgICAgICAgICAgICBlbWl0QVJNNjRCcmFuY2goInN1YnMgeHpyLCAiLCBvcGVyYW5k
cywgOnB0ciwgImIuZXEiKQorICAgICAgICAgICAgICAgIGVtaXRBUk02NEJyYW5jaCgic3VicyAj
e2FybTY0R1BSTmFtZSgneHpyJywgOnB0cil9LCAiLCBvcGVyYW5kcywgOnB0ciwgImIuZXEiKQog
ICAgICAgICAgICAgZW5kCiAgICAgICAgIHdoZW4gImJxZXEiCiAgICAgICAgICAgICBpZiBvcGVy
YW5kc1swXS5pbW1lZGlhdGU/IGFuZCBvcGVyYW5kc1swXS52YWx1ZSA9PSAwCi0gICAgICAgICAg
ICAgICAgJGFzbS5wdXRzICJjYnogI3tvcGVyYW5kc1sxXS5hcm02NE9wZXJhbmQoOnB0cil9LCAj
e29wZXJhbmRzWzJdLmFzbUxhYmVsfSIKKyAgICAgICAgICAgICAgICAkYXNtLnB1dHMgImNieiAj
e29wZXJhbmRzWzFdLmFybTY0T3BlcmFuZCg6d29yZCl9LCAje29wZXJhbmRzWzJdLmFzbUxhYmVs
fSIKICAgICAgICAgICAgIGVsc2lmIG9wZXJhbmRzWzFdLmltbWVkaWF0ZT8gYW5kIG9wZXJhbmRz
WzFdLnZhbHVlID09IDAKLSAgICAgICAgICAgICAgICAkYXNtLnB1dHMgImNieiAje29wZXJhbmRz
WzBdLmFybTY0T3BlcmFuZCg6cHRyKX0sICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9IgorICAgICAg
ICAgICAgICAgICRhc20ucHV0cyAiY2J6ICN7b3BlcmFuZHNbMF0uYXJtNjRPcGVyYW5kKDp3b3Jk
KX0sICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9IgogICAgICAgICAgICAgZWxzZQotICAgICAgICAg
ICAgICAgIGVtaXRBUk02NEJyYW5jaCgic3VicyB4enIsICIsIG9wZXJhbmRzLCA6cHRyLCAiYi5l
cSIpCisgICAgICAgICAgICAgICAgZW1pdEFSTTY0QnJhbmNoKCJzdWJzIHh6ciwgIiwgb3BlcmFu
ZHMsIDp3b3JkLCAiYi5lcSIpCiAgICAgICAgICAgICBlbmQKICAgICAgICAgd2hlbiAiYmluZXEi
LCAiYmJuZXEiCiAgICAgICAgICAgICBpZiBvcGVyYW5kc1swXS5pbW1lZGlhdGU/IGFuZCBvcGVy
YW5kc1swXS52YWx1ZSA9PSAwCkBAIC03NTYsNzUgKzgwOSw3NSBAQCBjbGFzcyBJbnN0cnVjdGlv
bgogICAgICAgICAgICAgZWxzaWYgb3BlcmFuZHNbMV0uaW1tZWRpYXRlPyBhbmQgb3BlcmFuZHNb
MV0udmFsdWUgPT0gMAogICAgICAgICAgICAgICAgICRhc20ucHV0cyAiY2JueiAje29wZXJhbmRz
WzBdLmFybTY0T3BlcmFuZCg6cHRyKX0sICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9IgogICAgICAg
ICAgICAgZWxzZQotICAgICAgICAgICAgICAgIGVtaXRBUk02NEJyYW5jaCgic3VicyB4enIsICIs
IG9wZXJhbmRzLCA6cHRyLCAiYi5uZSIpCisgICAgICAgICAgICAgICAgZW1pdEFSTTY0QnJhbmNo
KCJzdWJzICN7YXJtNjRHUFJOYW1lKCd4enInLCA6cHRyKX0sICIsIG9wZXJhbmRzLCA6cHRyLCAi
Yi5uZSIpCiAgICAgICAgICAgICBlbmQKICAgICAgICAgd2hlbiAiYnFuZXEiCiAgICAgICAgICAg
ICBpZiBvcGVyYW5kc1swXS5pbW1lZGlhdGU/IGFuZCBvcGVyYW5kc1swXS52YWx1ZSA9PSAwCi0g
ICAgICAgICAgICAgICAgJGFzbS5wdXRzICJjYm56ICN7b3BlcmFuZHNbMV0uYXJtNjRPcGVyYW5k
KDpwdHIpfSwgI3tvcGVyYW5kc1syXS5hc21MYWJlbH0iCisgICAgICAgICAgICAgICAgJGFzbS5w
dXRzICJjYm56ICN7b3BlcmFuZHNbMV0uYXJtNjRPcGVyYW5kKDp3b3JkKX0sICN7b3BlcmFuZHNb
Ml0uYXNtTGFiZWx9IgogICAgICAgICAgICAgZWxzaWYgb3BlcmFuZHNbMV0uaW1tZWRpYXRlPyBh
bmQgb3BlcmFuZHNbMV0udmFsdWUgPT0gMAotICAgICAgICAgICAgICAgICRhc20ucHV0cyAiY2Ju
eiAje29wZXJhbmRzWzBdLmFybTY0T3BlcmFuZCg6cHRyKX0sICN7b3BlcmFuZHNbMl0uYXNtTGFi
ZWx9IgorICAgICAgICAgICAgICAgICRhc20ucHV0cyAiY2JueiAje29wZXJhbmRzWzBdLmFybTY0
T3BlcmFuZCg6d29yZCl9LCAje29wZXJhbmRzWzJdLmFzbUxhYmVsfSIKICAgICAgICAgICAgIGVs
c2UKLSAgICAgICAgICAgICAgICBlbWl0QVJNNjRCcmFuY2goInN1YnMgeHpyLCAiLCBvcGVyYW5k
cywgOnB0ciwgImIubmUiKQorICAgICAgICAgICAgICAgIGVtaXRBUk02NEJyYW5jaCgic3VicyB4
enIsICIsIG9wZXJhbmRzLCA6d29yZCwgImIubmUiKQogICAgICAgICAgICAgZW5kCiAgICAgICAg
IHdoZW4gImJpYSIsICJiYmEiCiAgICAgICAgICAgICBlbWl0QVJNNjRCcmFuY2goInN1YnMgd3py
LCAiLCBvcGVyYW5kcywgOmludCwgImIuaGkiKQogICAgICAgICB3aGVuICJicGEiCi0gICAgICAg
ICAgICBlbWl0QVJNNjRCcmFuY2goInN1YnMgeHpyLCAiLCBvcGVyYW5kcywgOnB0ciwgImIuaGki
KQorICAgICAgICAgICAgZW1pdEFSTTY0QnJhbmNoKCJzdWJzICN7YXJtNjRHUFJOYW1lKCd4enIn
LCA6cHRyKX0sICIsIG9wZXJhbmRzLCA6cHRyLCAiYi5oaSIpCiAgICAgICAgIHdoZW4gImJxYSIK
LSAgICAgICAgICAgIGVtaXRBUk02NEJyYW5jaCgic3VicyB4enIsICIsIG9wZXJhbmRzLCA6cHRy
LCAiYi5oaSIpCisgICAgICAgICAgICBlbWl0QVJNNjRCcmFuY2goInN1YnMgeHpyLCAiLCBvcGVy
YW5kcywgOndvcmQsICJiLmhpIikKICAgICAgICAgd2hlbiAiYmlhZXEiLCAiYmJhZXEiCiAgICAg
ICAgICAgICBlbWl0QVJNNjRCcmFuY2goInN1YnMgd3pyLCAiLCBvcGVyYW5kcywgOmludCwgImIu
aHMiKQogICAgICAgICB3aGVuICJicGFlcSIKLSAgICAgICAgICAgIGVtaXRBUk02NEJyYW5jaCgi
c3VicyB4enIsICIsIG9wZXJhbmRzLCA6cHRyLCAiYi5ocyIpCisgICAgICAgICAgICBlbWl0QVJN
NjRCcmFuY2goInN1YnMgI3thcm02NEdQUk5hbWUoJ3h6cicsIDpwdHIpfSwgIiwgb3BlcmFuZHMs
IDpwdHIsICJiLmhzIikKICAgICAgICAgd2hlbiAiYnFhZXEiCi0gICAgICAgICAgICBlbWl0QVJN
NjRCcmFuY2goInN1YnMgeHpyLCAiLCBvcGVyYW5kcywgOnB0ciwgImIuaHMiKQorICAgICAgICAg
ICAgZW1pdEFSTTY0QnJhbmNoKCJzdWJzIHh6ciwgIiwgb3BlcmFuZHMsIDp3b3JkLCAiYi5ocyIp
CiAgICAgICAgIHdoZW4gImJpYiIsICJiYmIiCiAgICAgICAgICAgICBlbWl0QVJNNjRCcmFuY2go
InN1YnMgd3pyLCAiLCBvcGVyYW5kcywgOmludCwgImIubG8iKQogICAgICAgICB3aGVuICJicGIi
Ci0gICAgICAgICAgICBlbWl0QVJNNjRCcmFuY2goInN1YnMgeHpyLCAiLCBvcGVyYW5kcywgOnB0
ciwgImIubG8iKQorICAgICAgICAgICAgZW1pdEFSTTY0QnJhbmNoKCJzdWJzICN7YXJtNjRHUFJO
YW1lKCd4enInLCA6cHRyKX0sICIsIG9wZXJhbmRzLCA6cHRyLCAiYi5sbyIpCiAgICAgICAgIHdo
ZW4gImJxYiIKLSAgICAgICAgICAgIGVtaXRBUk02NEJyYW5jaCgic3VicyB4enIsICIsIG9wZXJh
bmRzLCA6cHRyLCAiYi5sbyIpCisgICAgICAgICAgICBlbWl0QVJNNjRCcmFuY2goInN1YnMgeHpy
LCAiLCBvcGVyYW5kcywgOndvcmQsICJiLmxvIikKICAgICAgICAgd2hlbiAiYmliZXEiLCAiYmJi
ZXEiCiAgICAgICAgICAgICBlbWl0QVJNNjRCcmFuY2goInN1YnMgd3pyLCAiLCBvcGVyYW5kcywg
OmludCwgImIubHMiKQogICAgICAgICB3aGVuICJicGJlcSIKLSAgICAgICAgICAgIGVtaXRBUk02
NEJyYW5jaCgic3VicyB4enIsICIsIG9wZXJhbmRzLCA6cHRyLCAiYi5scyIpCisgICAgICAgICAg
ICBlbWl0QVJNNjRCcmFuY2goInN1YnMgI3thcm02NEdQUk5hbWUoJ3h6cicsIDpwdHIpfSwgIiwg
b3BlcmFuZHMsIDpwdHIsICJiLmxzIikKICAgICAgICAgd2hlbiAiYnFiZXEiCi0gICAgICAgICAg
ICBlbWl0QVJNNjRCcmFuY2goInN1YnMgeHpyLCAiLCBvcGVyYW5kcywgOnB0ciwgImIubHMiKQor
ICAgICAgICAgICAgZW1pdEFSTTY0QnJhbmNoKCJzdWJzIHh6ciwgIiwgb3BlcmFuZHMsIDp3b3Jk
LCAiYi5scyIpCiAgICAgICAgIHdoZW4gImJpZ3QiLCAiYmJndCIKICAgICAgICAgICAgIGVtaXRB
Uk02NEJyYW5jaCgic3VicyB3enIsICIsIG9wZXJhbmRzLCA6aW50LCAiYi5ndCIpCiAgICAgICAg
IHdoZW4gImJwZ3QiCi0gICAgICAgICAgICBlbWl0QVJNNjRCcmFuY2goInN1YnMgeHpyLCAiLCBv
cGVyYW5kcywgOnB0ciwgImIuZ3QiKQorICAgICAgICAgICAgZW1pdEFSTTY0QnJhbmNoKCJzdWJz
ICN7YXJtNjRHUFJOYW1lKCd4enInLCA6cHRyKX0sICIsIG9wZXJhbmRzLCA6cHRyLCAiYi5ndCIp
CiAgICAgICAgIHdoZW4gImJxZ3QiCi0gICAgICAgICAgICBlbWl0QVJNNjRCcmFuY2goInN1YnMg
eHpyLCAiLCBvcGVyYW5kcywgOnB0ciwgImIuZ3QiKQorICAgICAgICAgICAgZW1pdEFSTTY0QnJh
bmNoKCJzdWJzIHh6ciwgIiwgb3BlcmFuZHMsIDp3b3JkLCAiYi5ndCIpCiAgICAgICAgIHdoZW4g
ImJpZ3RlcSIsICJiYmd0ZXEiCiAgICAgICAgICAgICBlbWl0QVJNNjRCcmFuY2goInN1YnMgd3py
LCAiLCBvcGVyYW5kcywgOmludCwgImIuZ2UiKQogICAgICAgICB3aGVuICJicGd0ZXEiCi0gICAg
ICAgICAgICBlbWl0QVJNNjRCcmFuY2goInN1YnMgeHpyLCAiLCBvcGVyYW5kcywgOnB0ciwgImIu
Z2UiKQorICAgICAgICAgICAgZW1pdEFSTTY0QnJhbmNoKCJzdWJzICN7YXJtNjRHUFJOYW1lKCd4
enInLCA6cHRyKX0sICIsIG9wZXJhbmRzLCA6cHRyLCAiYi5nZSIpCiAgICAgICAgIHdoZW4gImJx
Z3RlcSIKLSAgICAgICAgICAgIGVtaXRBUk02NEJyYW5jaCgic3VicyB4enIsICIsIG9wZXJhbmRz
LCA6cHRyLCAiYi5nZSIpCisgICAgICAgICAgICBlbWl0QVJNNjRCcmFuY2goInN1YnMgeHpyLCAi
LCBvcGVyYW5kcywgOndvcmQsICJiLmdlIikKICAgICAgICAgd2hlbiAiYmlsdCIsICJiYmx0Igog
ICAgICAgICAgICAgZW1pdEFSTTY0QnJhbmNoKCJzdWJzIHd6ciwgIiwgb3BlcmFuZHMsIDppbnQs
ICJiLmx0IikKICAgICAgICAgd2hlbiAiYnBsdCIKLSAgICAgICAgICAgIGVtaXRBUk02NEJyYW5j
aCgic3VicyB4enIsICIsIG9wZXJhbmRzLCA6cHRyLCAiYi5sdCIpCisgICAgICAgICAgICBlbWl0
QVJNNjRCcmFuY2goInN1YnMgI3thcm02NEdQUk5hbWUoJ3h6cicsIDpwdHIpfSwgIiwgb3BlcmFu
ZHMsIDpwdHIsICJiLmx0IikKICAgICAgICAgd2hlbiAiYnFsdCIKLSAgICAgICAgICAgIGVtaXRB
Uk02NEJyYW5jaCgic3VicyB4enIsICIsIG9wZXJhbmRzLCA6cHRyLCAiYi5sdCIpCisgICAgICAg
ICAgICBlbWl0QVJNNjRCcmFuY2goInN1YnMgeHpyLCAiLCBvcGVyYW5kcywgOndvcmQsICJiLmx0
IikKICAgICAgICAgd2hlbiAiYmlsdGVxIiwgImJibHRlcSIKICAgICAgICAgICAgIGVtaXRBUk02
NEJyYW5jaCgic3VicyB3enIsICIsIG9wZXJhbmRzLCA6aW50LCAiYi5sZSIpCiAgICAgICAgIHdo
ZW4gImJwbHRlcSIKLSAgICAgICAgICAgIGVtaXRBUk02NEJyYW5jaCgic3VicyB4enIsICIsIG9w
ZXJhbmRzLCA6cHRyLCAiYi5sZSIpCisgICAgICAgICAgICBlbWl0QVJNNjRCcmFuY2goInN1YnMg
I3thcm02NEdQUk5hbWUoJ3h6cicsIDpwdHIpfSwgIiwgb3BlcmFuZHMsIDpwdHIsICJiLmxlIikK
ICAgICAgICAgd2hlbiAiYnFsdGVxIgotICAgICAgICAgICAgZW1pdEFSTTY0QnJhbmNoKCJzdWJz
IHh6ciwgIiwgb3BlcmFuZHMsIDpwdHIsICJiLmxlIikKKyAgICAgICAgICAgIGVtaXRBUk02NEJy
YW5jaCgic3VicyB4enIsICIsIG9wZXJhbmRzLCA6d29yZCwgImIubGUiKQogICAgICAgICB3aGVu
ICJqbXAiCiAgICAgICAgICAgICBpZiBvcGVyYW5kc1swXS5sYWJlbD8KICAgICAgICAgICAgICAg
ICAkYXNtLnB1dHMgImIgI3tvcGVyYW5kc1swXS5hc21MYWJlbH0iCiAgICAgICAgICAgICBlbHNl
Ci0gICAgICAgICAgICAgICAgZW1pdEFSTTY0VW5mbGlwcGVkKCJiciIsIG9wZXJhbmRzLCA6cHRy
KQorICAgICAgICAgICAgICAgIGVtaXRBUk02NFVuZmxpcHBlZCgiYnIiLCBvcGVyYW5kcywgOndv
cmQpCiAgICAgICAgICAgICBlbmQKICAgICAgICAgd2hlbiAiY2FsbCIKICAgICAgICAgICAgIGlm
IG9wZXJhbmRzWzBdLmxhYmVsPwogICAgICAgICAgICAgICAgICRhc20ucHV0cyAiYmwgI3tvcGVy
YW5kc1swXS5hc21MYWJlbH0iCiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgZW1p
dEFSTTY0VW5mbGlwcGVkKCJibHIiLCBvcGVyYW5kcywgOnB0cikKKyAgICAgICAgICAgICAgICBl
bWl0QVJNNjRVbmZsaXBwZWQoImJsciIsIG9wZXJhbmRzLCA6d29yZCkKICAgICAgICAgICAgIGVu
ZAogICAgICAgICB3aGVuICJicmVhayIKICAgICAgICAgICAgICRhc20ucHV0cyAiYnJrIFwjMCIK
QEAgLTgzNSw3MyArODg4LDczIEBAIGNsYXNzIEluc3RydWN0aW9uCiAgICAgICAgIHdoZW4gImNw
ZXEiCiAgICAgICAgICAgICBlbWl0QVJNNjRDb21wYXJlKG9wZXJhbmRzLCA6cHRyLCAibmUiKQog
ICAgICAgICB3aGVuICJjcWVxIgotICAgICAgICAgICAgZW1pdEFSTTY0Q29tcGFyZShvcGVyYW5k
cywgOnB0ciwgIm5lIikKKyAgICAgICAgICAgIGVtaXRBUk02NENvbXBhcmUob3BlcmFuZHMsIDp3
b3JkLCAibmUiKQogICAgICAgICB3aGVuICJjaW5lcSIsICJjYm5lcSIKICAgICAgICAgICAgIGVt
aXRBUk02NENvbXBhcmUob3BlcmFuZHMsIDppbnQsICJlcSIpCiAgICAgICAgIHdoZW4gImNwbmVx
IgogICAgICAgICAgICAgZW1pdEFSTTY0Q29tcGFyZShvcGVyYW5kcywgOnB0ciwgImVxIikKICAg
ICAgICAgd2hlbiAiY3FuZXEiCi0gICAgICAgICAgICBlbWl0QVJNNjRDb21wYXJlKG9wZXJhbmRz
LCA6cHRyLCAiZXEiKQorICAgICAgICAgICAgZW1pdEFSTTY0Q29tcGFyZShvcGVyYW5kcywgOndv
cmQsICJlcSIpCiAgICAgICAgIHdoZW4gImNpYSIsICJjYmEiCiAgICAgICAgICAgICBlbWl0QVJN
NjRDb21wYXJlKG9wZXJhbmRzLCA6aW50LCAibHMiKQogICAgICAgICB3aGVuICJjcGEiCiAgICAg
ICAgICAgICBlbWl0QVJNNjRDb21wYXJlKG9wZXJhbmRzLCA6cHRyLCAibHMiKQogICAgICAgICB3
aGVuICJjcWEiCi0gICAgICAgICAgICBlbWl0QVJNNjRDb21wYXJlKG9wZXJhbmRzLCA6cHRyLCAi
bHMiKQorICAgICAgICAgICAgZW1pdEFSTTY0Q29tcGFyZShvcGVyYW5kcywgOndvcmQsICJscyIp
CiAgICAgICAgIHdoZW4gImNpYWVxIiwgImNiYWVxIgogICAgICAgICAgICAgZW1pdEFSTTY0Q29t
cGFyZShvcGVyYW5kcywgOmludCwgImxvIikKICAgICAgICAgd2hlbiAiY3BhZXEiCiAgICAgICAg
ICAgICBlbWl0QVJNNjRDb21wYXJlKG9wZXJhbmRzLCA6cHRyLCAibG8iKQogICAgICAgICB3aGVu
ICJjcWFlcSIKLSAgICAgICAgICAgIGVtaXRBUk02NENvbXBhcmUob3BlcmFuZHMsIDpwdHIsICJs
byIpCisgICAgICAgICAgICBlbWl0QVJNNjRDb21wYXJlKG9wZXJhbmRzLCA6d29yZCwgImxvIikK
ICAgICAgICAgd2hlbiAiY2liIiwgImNiYiIKICAgICAgICAgICAgIGVtaXRBUk02NENvbXBhcmUo
b3BlcmFuZHMsIDppbnQsICJocyIpCiAgICAgICAgIHdoZW4gImNwYiIKICAgICAgICAgICAgIGVt
aXRBUk02NENvbXBhcmUob3BlcmFuZHMsIDpwdHIsICJocyIpCiAgICAgICAgIHdoZW4gImNxYiIK
LSAgICAgICAgICAgIGVtaXRBUk02NENvbXBhcmUob3BlcmFuZHMsIDpwdHIsICJocyIpCisgICAg
ICAgICAgICBlbWl0QVJNNjRDb21wYXJlKG9wZXJhbmRzLCA6d29yZCwgImhzIikKICAgICAgICAg
d2hlbiAiY2liZXEiLCAiY2JiZXEiCiAgICAgICAgICAgICBlbWl0QVJNNjRDb21wYXJlKG9wZXJh
bmRzLCA6aW50LCAiaGkiKQogICAgICAgICB3aGVuICJjcGJlcSIKICAgICAgICAgICAgIGVtaXRB
Uk02NENvbXBhcmUob3BlcmFuZHMsIDpwdHIsICJoaSIpCiAgICAgICAgIHdoZW4gImNxYmVxIgot
ICAgICAgICAgICAgZW1pdEFSTTY0Q29tcGFyZShvcGVyYW5kcywgOnB0ciwgImhpIikKKyAgICAg
ICAgICAgIGVtaXRBUk02NENvbXBhcmUob3BlcmFuZHMsIDp3b3JkLCAiaGkiKQogICAgICAgICB3
aGVuICJjaWx0IiwgImNibHQiCiAgICAgICAgICAgICBlbWl0QVJNNjRDb21wYXJlKG9wZXJhbmRz
LCA6aW50LCAiZ2UiKQogICAgICAgICB3aGVuICJjcGx0IgogICAgICAgICAgICAgZW1pdEFSTTY0
Q29tcGFyZShvcGVyYW5kcywgOnB0ciwgImdlIikKICAgICAgICAgd2hlbiAiY3FsdCIKLSAgICAg
ICAgICAgIGVtaXRBUk02NENvbXBhcmUob3BlcmFuZHMsIDpwdHIsICJnZSIpCisgICAgICAgICAg
ICBlbWl0QVJNNjRDb21wYXJlKG9wZXJhbmRzLCA6d29yZCwgImdlIikKICAgICAgICAgd2hlbiAi
Y2lsdGVxIiwgImNibHRlcSIKICAgICAgICAgICAgIGVtaXRBUk02NENvbXBhcmUob3BlcmFuZHMs
IDppbnQsICJndCIpCiAgICAgICAgIHdoZW4gImNwbHRlcSIKICAgICAgICAgICAgIGVtaXRBUk02
NENvbXBhcmUob3BlcmFuZHMsIDpwdHIsICJndCIpCiAgICAgICAgIHdoZW4gImNxbHRlcSIKLSAg
ICAgICAgICAgIGVtaXRBUk02NENvbXBhcmUob3BlcmFuZHMsIDpwdHIsICJndCIpCisgICAgICAg
ICAgICBlbWl0QVJNNjRDb21wYXJlKG9wZXJhbmRzLCA6d29yZCwgImd0IikKICAgICAgICAgd2hl
biAiY2lndCIsICJjYmd0IgogICAgICAgICAgICAgZW1pdEFSTTY0Q29tcGFyZShvcGVyYW5kcywg
OmludCwgImxlIikKICAgICAgICAgd2hlbiAiY3BndCIKICAgICAgICAgICAgIGVtaXRBUk02NENv
bXBhcmUob3BlcmFuZHMsIDpwdHIsICJsZSIpCiAgICAgICAgIHdoZW4gImNxZ3QiCi0gICAgICAg
ICAgICBlbWl0QVJNNjRDb21wYXJlKG9wZXJhbmRzLCA6cHRyLCAibGUiKQorICAgICAgICAgICAg
ZW1pdEFSTTY0Q29tcGFyZShvcGVyYW5kcywgOndvcmQsICJsZSIpCiAgICAgICAgIHdoZW4gImNp
Z3RlcSIsICJjYmd0ZXEiCiAgICAgICAgICAgICBlbWl0QVJNNjRDb21wYXJlKG9wZXJhbmRzLCA6
aW50LCAibHQiKQogICAgICAgICB3aGVuICJjcGd0ZXEiCiAgICAgICAgICAgICBlbWl0QVJNNjRD
b21wYXJlKG9wZXJhbmRzLCA6cHRyLCAibHQiKQogICAgICAgICB3aGVuICJjcWd0ZXEiCi0gICAg
ICAgICAgICBlbWl0QVJNNjRDb21wYXJlKG9wZXJhbmRzLCA6cHRyLCAibHQiKQorICAgICAgICAg
ICAgZW1pdEFSTTY0Q29tcGFyZShvcGVyYW5kcywgOndvcmQsICJsdCIpCiAgICAgICAgIHdoZW4g
InBlZWsiCi0gICAgICAgICAgICAkYXNtLnB1dHMgImxkciAje29wZXJhbmRzWzFdLmFybTY0T3Bl
cmFuZCg6cHRyKX0sIFtzcCwgXCMje29wZXJhbmRzWzBdLnZhbHVlICogOH1dIgorICAgICAgICAg
ICAgJGFzbS5wdXRzICJsZHIgI3tvcGVyYW5kc1sxXS5hcm02NE9wZXJhbmQoOndvcmQpfSwgW3Nw
LCBcIyN7b3BlcmFuZHNbMF0udmFsdWUgKiA4fV0iCiAgICAgICAgIHdoZW4gInBva2UiCi0gICAg
ICAgICAgICAkYXNtLnB1dHMgInN0ciAje29wZXJhbmRzWzFdLmFybTY0T3BlcmFuZCg6cHRyKX0s
IFtzcCwgXCMje29wZXJhbmRzWzBdLnZhbHVlICogOH1dIgorICAgICAgICAgICAgJGFzbS5wdXRz
ICJzdHIgI3tvcGVyYW5kc1sxXS5hcm02NE9wZXJhbmQoOndvcmQpfSwgW3NwLCBcIyN7b3BlcmFu
ZHNbMF0udmFsdWUgKiA4fV0iCiAgICAgICAgIHdoZW4gImZwMmQiCiAgICAgICAgICAgICBlbWl0
QVJNNjQoImZtb3YiLCBvcGVyYW5kcywgWzpwdHIsIDpkb3VibGVdKQogICAgICAgICB3aGVuICJm
cTJkIgotICAgICAgICAgICAgZW1pdEFSTTY0KCJmbW92Iiwgb3BlcmFuZHMsIFs6cHRyLCA6ZG91
YmxlXSkKKyAgICAgICAgICAgIGVtaXRBUk02NCgiZm1vdiIsIG9wZXJhbmRzLCBbOndvcmQsIDpk
b3VibGVdKQogICAgICAgICB3aGVuICJmZDJwIgogICAgICAgICAgICAgZW1pdEFSTTY0KCJmbW92
Iiwgb3BlcmFuZHMsIFs6ZG91YmxlLCA6cHRyXSkKICAgICAgICAgd2hlbiAiZmQycSIKLSAgICAg
ICAgICAgIGVtaXRBUk02NCgiZm1vdiIsIG9wZXJhbmRzLCBbOmRvdWJsZSwgOnB0cl0pCisgICAg
ICAgICAgICBlbWl0QVJNNjQoImZtb3YiLCBvcGVyYW5kcywgWzpkb3VibGUsIDp3b3JkXSkKICAg
ICAgICAgd2hlbiAiYm8iCiAgICAgICAgICAgICAkYXNtLnB1dHMgImIudnMgI3tvcGVyYW5kc1sw
XS5hc21MYWJlbH0iCiAgICAgICAgIHdoZW4gImJzIgpAQCAtOTE1LDEzICs5NjgsMTMgQEAgY2xh
c3MgSW5zdHJ1Y3Rpb24KICAgICAgICAgd2hlbiAibGVhcCIKICAgICAgICAgICAgIG9wZXJhbmRz
WzBdLmFybTY0RW1pdExlYShvcGVyYW5kc1sxXSwgOnB0cikKICAgICAgICAgd2hlbiAibGVhcSIK
LSAgICAgICAgICAgIG9wZXJhbmRzWzBdLmFybTY0RW1pdExlYShvcGVyYW5kc1sxXSwgOnB0cikK
KyAgICAgICAgICAgIG9wZXJhbmRzWzBdLmFybTY0RW1pdExlYShvcGVyYW5kc1sxXSwgOndvcmQp
CiAgICAgICAgIHdoZW4gInNtdWxsaSIKLSAgICAgICAgICAgICRhc20ucHV0cyAic21hZGRsICN7
b3BlcmFuZHNbMl0uYXJtNjRPcGVyYW5kKDpwdHIpfSwgI3tvcGVyYW5kc1swXS5hcm02NE9wZXJh
bmQoOmludCl9LCAje29wZXJhbmRzWzFdLmFybTY0T3BlcmFuZCg6aW50KX0sIHh6ciIKKyAgICAg
ICAgICAgICRhc20ucHV0cyAic21hZGRsICN7b3BlcmFuZHNbMl0uYXJtNjRPcGVyYW5kKDp3b3Jk
KX0sICN7b3BlcmFuZHNbMF0uYXJtNjRPcGVyYW5kKDppbnQpfSwgI3tvcGVyYW5kc1sxXS5hcm02
NE9wZXJhbmQoOmludCl9LCB4enIiCiAgICAgICAgIHdoZW4gIm1lbWZlbmNlIgogICAgICAgICAg
ICAgJGFzbS5wdXRzICJkbWIgc3kiCiAgICAgICAgIHdoZW4gInBjcnRvYWRkciIKLSAgICAgICAg
ICAgICRhc20ucHV0cyAiYWRyICN7b3BlcmFuZHNbMV0uYXJtNjRPcGVyYW5kKDpwdHIpfSwgI3tv
cGVyYW5kc1swXS52YWx1ZX0iCisgICAgICAgICAgICAkYXNtLnB1dHMgImFkciAje29wZXJhbmRz
WzFdLmFybTY0T3BlcmFuZCg6d29yZCl9LCAje29wZXJhbmRzWzBdLnZhbHVlfSIKICAgICAgICAg
d2hlbiAibm9wQ29ydGV4QTUzRml4ODM1NzY5IgogICAgICAgICAgICAgJGFzbS5wdXRTdHIoIiNp
ZiBDUFUoQVJNNjRfQ09SVEVYQTUzKSIpCiAgICAgICAgICAgICAkYXNtLnB1dHMgIm5vcCIKQEAg
LTkzMywxNCArOTg2LDE0IEBAIGNsYXNzIEluc3RydWN0aW9uCiAgICAgICAgICAgICAjIHRoZSBs
YWJlbHMgcmVxdWlyZWQgZm9yIHRoZSAubG9oIGRpcmVjdGl2ZS4KICAgICAgICAgICAgICRhc20u
cHV0U3RyKCIjaWYgT1MoREFSV0lOKSIpCiAgICAgICAgICAgICAkYXNtLnB1dHMgIkxfb2ZmbGlu
ZWFzbV9sb2hfYWRycF8je3VpZH06IgotICAgICAgICAgICAgJGFzbS5wdXRzICJhZHJwICN7b3Bl
cmFuZHNbMV0uYXJtNjRPcGVyYW5kKDpwdHIpfSwgI3tvcGVyYW5kc1swXS5hc21MYWJlbH1AR09U
UEFHRSIKKyAgICAgICAgICAgICRhc20ucHV0cyAiYWRycCAje29wZXJhbmRzWzFdLmFybTY0T3Bl
cmFuZCg6d29yZCl9LCAje29wZXJhbmRzWzBdLmFzbUxhYmVsfUBHT1RQQUdFIgogICAgICAgICAg
ICAgJGFzbS5wdXRzICJMX29mZmxpbmVhc21fbG9oX2xkcl8je3VpZH06IgotICAgICAgICAgICAg
JGFzbS5wdXRzICJsZHIgI3tvcGVyYW5kc1sxXS5hcm02NE9wZXJhbmQoOnB0cil9LCBbI3tvcGVy
YW5kc1sxXS5hcm02NE9wZXJhbmQoOnB0cil9LCAje29wZXJhbmRzWzBdLmFzbUxhYmVsfUBHT1RQ
QUdFT0ZGXSIKKyAgICAgICAgICAgICRhc20ucHV0cyAibGRyICN7b3BlcmFuZHNbMV0uYXJtNjRP
cGVyYW5kKDp3b3JkKX0sIFsje29wZXJhbmRzWzFdLmFybTY0T3BlcmFuZCg6d29yZCl9LCAje29w
ZXJhbmRzWzBdLmFzbUxhYmVsfUBHT1RQQUdFT0ZGXSIKIAogICAgICAgICAgICAgIyBPbiBMaW51
eCwgdXNlIEVMRiBHT1QgcmVsb2NhdGlvbiBzcGVjaWZpZXJzLgogICAgICAgICAgICAgJGFzbS5w
dXRTdHIoIiNlbGlmIE9TKExJTlVYKSIpCi0gICAgICAgICAgICAkYXNtLnB1dHMgImFkcnAgI3tv
cGVyYW5kc1sxXS5hcm02NE9wZXJhbmQoOnB0cil9LCA6Z290OiN7b3BlcmFuZHNbMF0uYXNtTGFi
ZWx9IgotICAgICAgICAgICAgJGFzbS5wdXRzICJsZHIgI3tvcGVyYW5kc1sxXS5hcm02NE9wZXJh
bmQoOnB0cil9LCBbI3tvcGVyYW5kc1sxXS5hcm02NE9wZXJhbmQoOnB0cil9LCA6Z290X2xvMTI6
I3tvcGVyYW5kc1swXS5hc21MYWJlbH1dIgorICAgICAgICAgICAgJGFzbS5wdXRzICJhZHJwICN7
b3BlcmFuZHNbMV0uYXJtNjRPcGVyYW5kKDp3b3JkKX0sIDpnb3Q6I3tvcGVyYW5kc1swXS5hc21M
YWJlbH0iCisgICAgICAgICAgICAkYXNtLnB1dHMgImxkciAje29wZXJhbmRzWzFdLmFybTY0T3Bl
cmFuZCg6d29yZCl9LCBbI3tvcGVyYW5kc1sxXS5hcm02NE9wZXJhbmQoOndvcmQpfSwgOmdvdF9s
bzEyOiN7b3BlcmFuZHNbMF0uYXNtTGFiZWx9XSIKIAogICAgICAgICAgICAgIyBUaHJvdyBhIGNv
bXBpbGVyIGVycm9yIGV2ZXJ5d2hlcmUgZWxzZS4KICAgICAgICAgICAgICRhc20ucHV0U3RyKCIj
ZWxzZSIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hc20u
cmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hc20ucmIKaW5kZXggMDYwNDE0
OTc0MjNlYjRjNTc2N2Q1MmZhODk0ZjkxNGY1Mzk1M2MyYi4uYmZhZTUxNTE1ZTkxZDI2ZmFlZDdm
YmNmM2VkZTU5OTAxZWY5ZDE2MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29m
ZmxpbmVhc20vYXNtLnJiCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2Fz
bS5yYgpAQCAtMzg5LDYgKzM4OSw3IEBAIEZpbGUub3BlbihvdXRwdXRGbG5tLCAidyIpIHsKICAg
ICAgICAgICAgIGxvd0xldmVsQVNUID0gbG93TGV2ZWxBU1QucmVzb2x2ZShidWlsZE9mZnNldHNN
YXAobG93TGV2ZWxBU1QsIG9mZnNldHNMaXN0KSkKICAgICAgICAgICAgIGxvd0xldmVsQVNULnZh
bGlkYXRlCiAgICAgICAgICAgICBlbWl0Q29kZUluQ29uZmlndXJhdGlvbihjb25jcmV0ZVNldHRp
bmdzLCBsb3dMZXZlbEFTVCwgYmFja2VuZCkgeworICAgICAgICAgICAgICAgICAkY3VycmVudFNl
dHRpbmdzID0gY29uY3JldGVTZXR0aW5ncwogICAgICAgICAgICAgICAgICRhc20uaW5Bc20gewog
ICAgICAgICAgICAgICAgICAgICBsb3dMZXZlbEFTVC5sb3dlcihiYWNrZW5kKQogICAgICAgICAg
ICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2Fz
dC5yYiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FzdC5yYgppbmRleCBiZmU4
NjZiMDJjNGY2MWM0MDJkZDg2ZThhMzBmNmZmZWU5ZDU3YTBhLi4zNDdhNTc4MjkwYzI5ZTVkNTk4
MzEzYzhmOTNiYTMwNzkwZGI2NTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
b2ZmbGluZWFzbS9hc3QucmIKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20v
YXN0LnJiCkBAIC04MTEsMTIgKzgxMSwxNiBAQCBjbGFzcyBCYXNlSW5kZXggPCBOb2RlCiAgICAg
ICAgIEBiYXNlID0gYmFzZQogICAgICAgICBAaW5kZXggPSBpbmRleAogICAgICAgICBAc2NhbGUg
PSBzY2FsZQotICAgICAgICByYWlzZSB1bmxlc3MgWzEsIDIsIDQsIDhdLm1lbWJlcj8gQHNjYWxl
CiAgICAgICAgIEBvZmZzZXQgPSBvZmZzZXQKICAgICBlbmQKLSAgICAKKworICAgIGRlZiBzY2Fs
ZVZhbHVlCisgICAgICAgIHJhaXNlIHVubGVzcyBbMSwgMiwgNCwgOF0uaW5jbHVkZT8gc2NhbGUu
dmFsdWUKKyAgICAgICAgc2NhbGUudmFsdWUKKyAgICBlbmQKKwogICAgIGRlZiBzY2FsZVNoaWZ0
Ci0gICAgICAgIGNhc2Ugc2NhbGUKKyAgICAgICAgY2FzZSBzY2FsZVZhbHVlCiAgICAgICAgIHdo
ZW4gMQogICAgICAgICAgICAgMAogICAgICAgICB3aGVuIDIKQEAgLTgyNiw3ICs4MzAsNyBAQCBj
bGFzcyBCYXNlSW5kZXggPCBOb2RlCiAgICAgICAgIHdoZW4gOAogICAgICAgICAgICAgMwogICAg
ICAgICBlbHNlCi0gICAgICAgICAgICByYWlzZSAiQmFkIHNjYWxlIGF0ICN7Y29kZU9yaWdpblN0
cmluZ30iCisgICAgICAgICAgICByYWlzZSAiQmFkIHNjYWxlOiAje3NjYWxlLnZhbHVlfSBhdCAj
e2NvZGVPcmlnaW5TdHJpbmd9IgogICAgICAgICBlbmQKICAgICBlbmQKICAgICAKQEAgLTgzOSwx
MSArODQzLDExIEBAIGNsYXNzIEJhc2VJbmRleCA8IE5vZGUKICAgICBlbmQKICAgICAKICAgICBk
ZWYgbWFwQ2hpbGRyZW4KLSAgICAgICAgQmFzZUluZGV4Lm5ldyhjb2RlT3JpZ2luLCAoeWllbGQg
QGJhc2UpLCAoeWllbGQgQGluZGV4KSwgQHNjYWxlLCAoeWllbGQgQG9mZnNldCkpCisgICAgICAg
IEJhc2VJbmRleC5uZXcoY29kZU9yaWdpbiwgKHlpZWxkIEBiYXNlKSwgKHlpZWxkIEBpbmRleCks
ICh5aWVsZCBAc2NhbGUpLCAoeWllbGQgQG9mZnNldCkpCiAgICAgZW5kCiAgICAgCiAgICAgZGVm
IGR1bXAKLSAgICAgICAgIiN7b2Zmc2V0LmR1bXB9WyN7YmFzZS5kdW1wfSwgI3tpbmRleC5kdW1w
fSwgI3tzY2FsZX1dIgorICAgICAgICAiI3tvZmZzZXQuZHVtcH1bI3tiYXNlLmR1bXB9LCAje2lu
ZGV4LmR1bXB9LCAje3NjYWxlLnZhbHVlfV0iCiAgICAgZW5kCiAgICAgCiAgICAgZGVmIGFkZHJl
c3M/CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9iYWNrZW5k
cy5yYiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2JhY2tlbmRzLnJiCmluZGV4
IDQ1NDlhYjFiZjE3YzQwM2Y0Yjc0NzcwN2VjZjU4ODM2Y2IzNzc4YTguLmZmMDY1ZDUzOTJkZmNk
ZDMyODU2YWFkN2YwNmFjMjE4ZDUyZDA4YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9vZmZsaW5lYXNtL2JhY2tlbmRzLnJiCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9v
ZmZsaW5lYXNtL2JhY2tlbmRzLnJiCkBAIC04Niw2ICs4Niw3IEBAIGRlZiBjYW5vbmljYWxpemVC
YWNrZW5kTmFtZXMoYmFja2VuZE5hbWVzKQogICAgICAgICBiYWNrZW5kTmFtZSA9IGJhY2tlbmRO
YW1lLnVwY2FzZQogICAgICAgICBpZiBiYWNrZW5kTmFtZSA9fiAvQVJNLiovCiAgICAgICAgICAg
ICBiYWNrZW5kTmFtZS5zdWIhKC9BUk1WNyhTPykoLiopLykgeyB8IF8gfCAnQVJNdjcnICsgJDEu
ZG93bmNhc2UgKyAkMiB9CisgICAgICAgICAgICBiYWNrZW5kTmFtZSA9ICJBUk02NCIgaWYgYmFj
a2VuZE5hbWUgPT0gIkFSTTY0XzMyIgogICAgICAgICBlbmQKICAgICAgICAgYmFja2VuZE5hbWUg
PSAiWDg2IiBpZiBiYWNrZW5kTmFtZSA9PSAiSTM4NiIKICAgICAgICAgbmV3QmFja2VuZE5hbWVz
IDw8IGJhY2tlbmROYW1lCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGlu
ZWFzbS9wYXJzZXIucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9wYXJzZXIu
cmIKaW5kZXggY2Y4YTEwN2Y1MzE3ODQwNDFhNjYzOTMwMmRjODRhNzJjNzM3ZmIxMi4uYzExMzhl
ZjQ4NWYxY2I3ZmRlMmIyODBlY2U0ZDNkNzUyOTAzZjRmMiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcGFyc2VyLnJiCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9vZmZsaW5lYXNtL3BhcnNlci5yYgpAQCAtMzYzLDYgKzM2MywyMyBAQCBjbGFzcyBQYXJz
ZXIKICAgICAgICAgQGlkeCArPSAxCiAgICAgICAgIHJlc3VsdAogICAgIGVuZAorCisgICAgZGVm
IHBhcnNlQ29uc3RFeHByCisgICAgICAgIGlmIEB0b2tlbnNbQGlkeF0gPT0gImNvbnN0ZXhwciIK
KyAgICAgICAgICAgIEBpZHggKz0gMQorICAgICAgICAgICAgc2tpcE5ld0xpbmUKKyAgICAgICAg
ICAgIGlmIEB0b2tlbnNbQGlkeF0gPT0gIigiCisgICAgICAgICAgICAgICAgY29kZU9yaWdpbiwg
dGV4dCA9IHBhcnNlVGV4dEluUGFyZW5zCisgICAgICAgICAgICAgICAgdGV4dCA9IHRleHQuam9p
bgorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGNvZGVPcmlnaW4sIHRleHQgPSBw
YXJzZUNvbG9uQ29sb24KKyAgICAgICAgICAgICAgICB0ZXh0ID0gdGV4dC5qb2luKCI6OiIpCisg
ICAgICAgICAgICBlbmQKKyAgICAgICAgICAgIENvbnN0RXhwci5mb3JOYW1lKGNvZGVPcmlnaW4s
IHRleHQpCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHBhcnNlRXJyb3IKKyAgICAgICAgZW5k
CisgICAgZW5kCiAgICAgCiAgICAgZGVmIHBhcnNlQWRkcmVzcyhvZmZzZXQpCiAgICAgICAgIHBh
cnNlRXJyb3IgdW5sZXNzIEB0b2tlbnNbQGlkeF0gPT0gIlsiCkBAIC0zODcsMTMgKzQwNCwxOCBA
QCBjbGFzcyBQYXJzZXIKICAgICAgICAgICAgIEBpZHggKz0gMQogICAgICAgICAgICAgYiA9IHBh
cnNlVmFyaWFibGUKICAgICAgICAgICAgIGlmIEB0b2tlbnNbQGlkeF0gPT0gIl0iCi0gICAgICAg
ICAgICAgICAgcmVzdWx0ID0gQmFzZUluZGV4Lm5ldyhjb2RlT3JpZ2luLCBhLCBiLCAxLCBvZmZz
ZXQpCisgICAgICAgICAgICAgICAgcmVzdWx0ID0gQmFzZUluZGV4Lm5ldyhjb2RlT3JpZ2luLCBh
LCBiLCBJbW1lZGlhdGUubmV3KGNvZGVPcmlnaW4sIDEpLCBvZmZzZXQpCiAgICAgICAgICAgICBl
bHNlCiAgICAgICAgICAgICAgICAgcGFyc2VFcnJvciB1bmxlc3MgQHRva2Vuc1tAaWR4XSA9PSAi
LCIKICAgICAgICAgICAgICAgICBAaWR4ICs9IDEKLSAgICAgICAgICAgICAgICBwYXJzZUVycm9y
IHVubGVzcyBbIjEiLCAiMiIsICI0IiwgIjgiXS5tZW1iZXI/IEB0b2tlbnNbQGlkeF0uc3RyaW5n
Ci0gICAgICAgICAgICAgICAgYyA9IEB0b2tlbnNbQGlkeF0uc3RyaW5nLnRvX2kKLSAgICAgICAg
ICAgICAgICBAaWR4ICs9IDEKKyAgICAgICAgICAgICAgICBpZiBbIjEiLCAiMiIsICI0IiwgIjgi
XS5tZW1iZXI/IEB0b2tlbnNbQGlkeF0uc3RyaW5nCisgICAgICAgICAgICAgICAgICAgIGMgPSBJ
bW1lZGlhdGUubmV3KGNvZGVPcmlnaW4sIEB0b2tlbnNbQGlkeF0uc3RyaW5nLnRvX2kpCisgICAg
ICAgICAgICAgICAgICAgIEBpZHggKz0gMQorICAgICAgICAgICAgICAgIGVsc2lmIEB0b2tlbnNb
QGlkeF0gPT0gImNvbnN0ZXhwciIKKyAgICAgICAgICAgICAgICAgICAgYyA9IHBhcnNlQ29uc3RF
eHByCisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBjID0gcGFyc2VW
YXJpYWJsZQorICAgICAgICAgICAgICAgIGVuZAogICAgICAgICAgICAgICAgIHBhcnNlRXJyb3Ig
dW5sZXNzIEB0b2tlbnNbQGlkeF0gPT0gIl0iCiAgICAgICAgICAgICAgICAgcmVzdWx0ID0gQmFz
ZUluZGV4Lm5ldyhjb2RlT3JpZ2luLCBhLCBiLCBjLCBvZmZzZXQpCiAgICAgICAgICAgICBlbmQK
QEAgLTQ3OCwxNiArNTAwLDcgQEAgY2xhc3MgUGFyc2VyCiAgICAgICAgICAgICBjb2RlT3JpZ2lu
LCBuYW1lcyA9IHBhcnNlQ29sb25Db2xvbgogICAgICAgICAgICAgU2l6ZW9mLmZvck5hbWUoY29k
ZU9yaWdpbiwgbmFtZXMuam9pbignOjonKSkKICAgICAgICAgZWxzaWYgQHRva2Vuc1tAaWR4XSA9
PSAiY29uc3RleHByIgotICAgICAgICAgICAgQGlkeCArPSAxCi0gICAgICAgICAgICBza2lwTmV3
TGluZQotICAgICAgICAgICAgaWYgQHRva2Vuc1tAaWR4XSA9PSAiKCIKLSAgICAgICAgICAgICAg
ICBjb2RlT3JpZ2luLCB0ZXh0ID0gcGFyc2VUZXh0SW5QYXJlbnMKLSAgICAgICAgICAgICAgICB0
ZXh0ID0gdGV4dC5qb2luCi0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgY29kZU9y
aWdpbiwgdGV4dCA9IHBhcnNlQ29sb25Db2xvbgotICAgICAgICAgICAgICAgIHRleHQgPSB0ZXh0
LmpvaW4oIjo6IikKLSAgICAgICAgICAgIGVuZAotICAgICAgICAgICAgQ29uc3RFeHByLmZvck5h
bWUoY29kZU9yaWdpbiwgdGV4dCkKKyAgICAgICAgICAgIHBhcnNlQ29uc3RFeHByCiAgICAgICAg
IGVsc2lmIGlzTGFiZWwgQHRva2Vuc1tAaWR4XQogICAgICAgICAgICAgcmVzdWx0ID0gTGFiZWxS
ZWZlcmVuY2UubmV3KEB0b2tlbnNbQGlkeF0uY29kZU9yaWdpbiwgTGFiZWwuZm9yTmFtZShAdG9r
ZW5zW0BpZHhdLmNvZGVPcmlnaW4sIEB0b2tlbnNbQGlkeF0uc3RyaW5nKSkKICAgICAgICAgICAg
IEBpZHggKz0gMQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20v
eDg2LnJiIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20veDg2LnJiCmluZGV4IGEw
NTliYzdlZjgwMmU2NTA5MTNlYTU4NzE0MjNjNjJkMWI3OTczN2YuLjk5ZmZiOGEwMmQxOWMwMzM1
MmU1YWY4NmZiZDk1MDQzODk1ZGYwNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9vZmZsaW5lYXNtL3g4Ni5yYgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFz
bS94ODYucmIKQEAgLTQyMSw5ICs0MjEsOSBAQCBjbGFzcyBCYXNlSW5kZXgKICAgICAKICAgICBk
ZWYgeDg2QWRkcmVzc09wZXJhbmQoYWRkcmVzc0tpbmQpCiAgICAgICAgIGlmICFpc0ludGVsU3lu
dGF4Ci0gICAgICAgICAgICAiI3tvZmZzZXQudmFsdWV9KCN7YmFzZS54ODZPcGVyYW5kKGFkZHJl
c3NLaW5kKX0sICN7aW5kZXgueDg2T3BlcmFuZChhZGRyZXNzS2luZCl9LCAje3NjYWxlfSkiCisg
ICAgICAgICAgICAiI3tvZmZzZXQudmFsdWV9KCN7YmFzZS54ODZPcGVyYW5kKGFkZHJlc3NLaW5k
KX0sICN7aW5kZXgueDg2T3BlcmFuZChhZGRyZXNzS2luZCl9LCAje3NjYWxlVmFsdWV9KSIKICAg
ICAgICAgZWxzZQotICAgICAgICAgICAgIiN7Z2V0U2l6ZVN0cmluZyhhZGRyZXNzS2luZCl9WyN7
b2Zmc2V0LnZhbHVlfSArICN7YmFzZS54ODZPcGVyYW5kKGFkZHJlc3NLaW5kKX0gKyAje2luZGV4
Lng4Nk9wZXJhbmQoYWRkcmVzc0tpbmQpfSAqICN7c2NhbGV9XSIKKyAgICAgICAgICAgICIje2dl
dFNpemVTdHJpbmcoYWRkcmVzc0tpbmQpfVsje29mZnNldC52YWx1ZX0gKyAje2Jhc2UueDg2T3Bl
cmFuZChhZGRyZXNzS2luZCl9ICsgI3tpbmRleC54ODZPcGVyYW5kKGFkZHJlc3NLaW5kKX0gKiAj
e3NjYWxlVmFsdWV9XSIKICAgICAgICAgZW5kCiAgICAgZW5kCiAgICAgCkBAIC00MzEsNyArNDMx
LDcgQEAgY2xhc3MgQmFzZUluZGV4CiAgICAgICAgIGlmICFpc0ludGVsU3ludGF4CiAgICAgICAg
ICAgICB4ODZBZGRyZXNzT3BlcmFuZCg6cHRyKQogICAgICAgICBlbHNlCi0gICAgICAgICAgICAi
I3tnZXRTaXplU3RyaW5nKGtpbmQpfVsje29mZnNldC52YWx1ZX0gKyAje2Jhc2UueDg2T3BlcmFu
ZCg6cHRyKX0gKyAje2luZGV4Lng4Nk9wZXJhbmQoOnB0cil9ICogI3tzY2FsZX1dIgorICAgICAg
ICAgICAgIiN7Z2V0U2l6ZVN0cmluZyhraW5kKX1bI3tvZmZzZXQudmFsdWV9ICsgI3tiYXNlLng4
Nk9wZXJhbmQoOnB0cil9ICsgI3tpbmRleC54ODZPcGVyYW5kKDpwdHIpfSAqICN7c2NhbGVWYWx1
ZX1dIgogICAgICAgICBlbmQKICAgICBlbmQKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQmFzaWNCbG9ja0xvY2F0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0Jhc2ljQmxvY2tMb2NhdGlvbi5jcHAKaW5kZXggZDk3YjAzNzBkM2M3Yjk2
NWExNjY3N2I0ZjU1MTY1NmE0NjBkMmI3NS4uN2RhYmY3M2M0NjM2ZDdkY2U1M2E5MTE3Y2UyNzli
NGJiMTQ2Mzg0NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQmFz
aWNCbG9ja0xvY2F0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9C
YXNpY0Jsb2NrTG9jYXRpb24uY3BwCkBAIC03NCwxNSArNzQsMTcgQEAgVmVjdG9yPHN0ZDo6cGFp
cjxpbnQsIGludD4+IEJhc2ljQmxvY2tMb2NhdGlvbjo6Z2V0RXhlY3V0ZWRSYW5nZXMoKSBjb25z
dAogdm9pZCBCYXNpY0Jsb2NrTG9jYXRpb246OmR1bXBEYXRhKCkgY29uc3QKIHsKICAgICBWZWN0
b3I8R2FwPiBleGVjdXRlZFJhbmdlcyA9IGdldEV4ZWN1dGVkUmFuZ2VzKCk7Ci0gICAgZm9yIChH
YXAgZ2FwIDogZXhlY3V0ZWRSYW5nZXMpCi0gICAgICAgIGRhdGFMb2dGKCJcdEJhc2ljQmxvY2s6
IFslZCwgJWRdIGhhc0V4ZWN1dGVkOiAlcywgZXhlY3V0aW9uQ291bnQ6JXp1XG4iLCBnYXAuZmly
c3QsIGdhcC5zZWNvbmQsIGhhc0V4ZWN1dGVkKCkgPyAidHJ1ZSIgOiAiZmFsc2UiLCBtX2V4ZWN1
dGlvbkNvdW50KTsKKyAgICBmb3IgKEdhcCBnYXAgOiBleGVjdXRlZFJhbmdlcykgeworICAgICAg
ICBkYXRhTG9nRigiXHRCYXNpY0Jsb2NrOiBbJWQsICVkXSBoYXNFeGVjdXRlZDogJXMsIGV4ZWN1
dGlvbkNvdW50OiIsIGdhcC5maXJzdCwgZ2FwLnNlY29uZCwgaGFzRXhlY3V0ZWQoKSA/ICJ0cnVl
IiA6ICJmYWxzZSIpOworICAgICAgICBkYXRhTG9nTG4obV9leGVjdXRpb25Db3VudCk7CisgICAg
fQogfQogCiAjaWYgRU5BQkxFKEpJVCkKICNpZiBVU0UoSlNWQUxVRTY0KQogdm9pZCBCYXNpY0Js
b2NrTG9jYXRpb246OmVtaXRFeGVjdXRlQ29kZShDQ2FsbEhlbHBlcnMmIGppdCkgY29uc3QKIHsK
LSAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihzaXplX3QpID09IDgsICJBc3N1bWluZyBzaXplX3Qg
aXMgNjQgYml0cyBvbiA2NCBiaXQgcGxhdGZvcm1zLiIpOworICAgIHN0YXRpY19hc3NlcnQoc2l6
ZW9mKFVDUFVSZWdpc3RlcikgPT0gOCwgIkFzc3VtaW5nIHNpemVfdCBpcyA2NCBiaXRzIG9uIDY0
IGJpdCBwbGF0Zm9ybXMuIik7CiAgICAgaml0LmFkZDY0KENDYWxsSGVscGVyczo6VHJ1c3RlZElt
bTMyKDEpLCBDQ2FsbEhlbHBlcnM6OkFic29sdXRlQWRkcmVzcygmbV9leGVjdXRpb25Db3VudCkp
OwogfQogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jh
c2ljQmxvY2tMb2NhdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQmFzaWNC
bG9ja0xvY2F0aW9uLmgKaW5kZXggMTJmYjQ3NmUxZDNhNTlmMDViNmQ1MzYwYzQ4Y2Y2YjAwMzVm
MTgwOC4uZTcwYmVhNmM5YzRhOTVmOWZhZDA0OTI3ZDYzNDQ4MTBjYWQyYjE5ZSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQmFzaWNCbG9ja0xvY2F0aW9uLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQmFzaWNCbG9ja0xvY2F0aW9uLmgKQEAg
LTYyLDggKzYyLDggQEAgcHJpdmF0ZToKIAogICAgIGludCBtX3N0YXJ0T2Zmc2V0OwogICAgIGlu
dCBtX2VuZE9mZnNldDsKLSAgICBzaXplX3QgbV9leGVjdXRpb25Db3VudDsKICAgICBWZWN0b3I8
R2FwPiBtX2dhcHM7CisgICAgVUNQVVJlZ2lzdGVyIG1fZXhlY3V0aW9uQ291bnQ7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0hhc093blByb3BlcnR5Q2FjaGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0hhc093blByb3BlcnR5Q2FjaGUuaAppbmRleCBhZGFkYzg5YWI4NGNmMWY3Mzk2MGFhZWU2NDg1
NmFkYTk3YzJiMzgwLi4wNjEyZWI3M2EzNzRkOWMwZDQyZjFmNjE2YjliYTczZTE3NTY3Y2E1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9IYXNPd25Qcm9wZXJ0eUNh
Y2hlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSGFzT3duUHJvcGVydHlD
YWNoZS5oCkBAIC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiBjbGFzcyBIYXNPd25Q
cm9wZXJ0eUNhY2hlIHsKICAgICBzdGF0aWMgY29uc3QgdWludDMyX3Qgc2l6ZSA9IDIgKiAxMDI0
OwotICAgIHN0YXRpY19hc3NlcnQoIShzaXplICYgKHNpemUgLSAxKSksICJzaXplIHNob3VsZCBi
ZSBhIHBvd2VyIG9mIHR3by4iKTsKKyAgICBzdGF0aWNfYXNzZXJ0KGhhc09uZUJpdFNldChzaXpl
KSwgInNpemUgc2hvdWxkIGJlIGEgcG93ZXIgb2YgdHdvLiIpOwogcHVibGljOgogICAgIHN0YXRp
YyBjb25zdCB1aW50MzJfdCBtYXNrID0gc2l6ZSAtIDE7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQmlnSW50LmNwcAppbmRleCAzYTZjMWI3YzA2Y2Y0NTY3NjQ3OGU1ZDZhYWY3
YzdmYzZmOGEzZDg2Li4wZjlhNGY0ZDNmNzFlMDdjMmNlMTVkMzQ1YTM0MjIzNTE3OTRkYTlhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JpZ0ludC5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQuY3BwCkBAIC0yMjYsMTEg
KzIyNiw4IEBAIGlubGluZSBib29sIEpTQmlnSW50Ojppc1plcm8oKQogfQogCiAvLyBNdWx0aXBs
aWVzIHt0aGlzfSB3aXRoIHtmYWN0b3J9IGFuZCBhZGRzIHtzdW1tYW5kfSB0byB0aGUgcmVzdWx0
LgotaW5saW5lIHZvaWQgSlNCaWdJbnQ6OmlucGxhY2VNdWx0aXBseUFkZCh1aW50cHRyX3QgZmFj
dG9yLCB1aW50cHRyX3Qgc3VtbWFuZCkKK3ZvaWQgSlNCaWdJbnQ6OmlucGxhY2VNdWx0aXBseUFk
ZChEaWdpdCBmYWN0b3IsIERpZ2l0IHN1bW1hbmQpCiB7Ci0gICAgU1RBVElDX0FTU0VSVChzaXpl
b2YoZmFjdG9yKSA9PSBzaXplb2YoRGlnaXQpKTsKLSAgICBTVEFUSUNfQVNTRVJUKHNpemVvZihz
dW1tYW5kKSA9PSBzaXplb2YoRGlnaXQpKTsKLQogICAgIGludGVybmFsTXVsdGlwbHlBZGQodGhp
cywgZmFjdG9yLCBzdW1tYW5kLCBsZW5ndGgoKSwgdGhpcyk7CiB9CiAKQEAgLTU2Myw4ICs1NjAs
OCBAQCBpbmxpbmUgSlNCaWdJbnQ6OkRpZ2l0IEpTQmlnSW50OjpkaWdpdERpdihEaWdpdCBoaWdo
LCBEaWdpdCBsb3csIERpZ2l0IGRpdmlzb3IsCiAgICAgLy8gbGVmdCBvcGVyYW5kIi4gV2UgbWFz
ayB0aGUgcmlnaHQgb3BlcmFuZCBvZiB0aGUgc2hpZnQgYnkge3NoaWZ0TWFza30gKGBkaWdpdEJp
dHMgLSAxYCksIHdoaWNoIG1ha2VzIGBkaWdpdEJpdHMgLSAwYCB6ZXJvLgogICAgIC8vIFRoaXMg
c2hpZnRpbmcgcHJvZHVjZXMgYSB2YWx1ZSB3aGljaCBjb3ZlcnMgMCA8IHtzfSA8PSAoZGlnaXRC
aXRzIC0gMSkgY2FzZXMuIHtzfSA9PSBkaWdpdEJpdHMgbmV2ZXIgaGFwcGVuIGFzIHdlIGFzc2Vy
dGVkLgogICAgIC8vIFNpbmNlIHtzWmVyb01hc2t9IGNsZWFycyB0aGUgdmFsdWUgaW4gdGhlIGNh
c2Ugb2Yge3N9ID09IDAsIHtzfSA9PSAwIGNhc2UgaXMgYWxzbyBjb3ZlcmVkLgotICAgIFNUQVRJ
Q19BU1NFUlQoc2l6ZW9mKGludHB0cl90KSA9PSBzaXplb2YoRGlnaXQpKTsKLSAgICBEaWdpdCBz
WmVyb01hc2sgPSBzdGF0aWNfY2FzdDxEaWdpdD4oKC1zdGF0aWNfY2FzdDxpbnRwdHJfdD4ocykp
ID4+IChkaWdpdEJpdHMgLSAxKSk7CisgICAgU1RBVElDX0FTU0VSVChzaXplb2YoQ1BVUmVnaXN0
ZXIpID09IHNpemVvZihEaWdpdCkpOworICAgIERpZ2l0IHNaZXJvTWFzayA9IHN0YXRpY19jYXN0
PERpZ2l0PigoLXN0YXRpY19jYXN0PENQVVJlZ2lzdGVyPihzKSkgPj4gKGRpZ2l0Qml0cyAtIDEp
KTsKICAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIHNoaWZ0TWFzayA9IGRpZ2l0Qml0cyAt
IDE7CiAgICAgRGlnaXQgdW4zMiA9IChoaWdoIDw8IHMpIHwgKChsb3cgPj4gKChkaWdpdEJpdHMg
LSBzKSAmIHNoaWZ0TWFzaykpICYgc1plcm9NYXNrKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQmlnSW50LmgKaW5kZXggYjQwZjIzOTZjY2ZkZWMzMGFhYzRlYzU3YjRjYzA3ZjRk
N2VhZGM4Ny4uODA1YTExNTA2ZTg3ZTY4Mjc1NmMyMTA2YmU3ZTE4ZGYwOTNlOTc5ZiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JpZ0ludC5oCkBAIC0yNSw2ICsyNSw3IEBACiAK
ICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiQ1BVLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uSGVs
cGVycy5oIgogI2luY2x1ZGUgIkpTT2JqZWN0LmgiCiAjaW5jbHVkZSAiUGFyc2VJbnQuaCIKQEAg
LTExOCw3ICsxMTksNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAKLSAgICB1c2luZyBEaWdpdCA9
IHVpbnRwdHJfdDsKKyAgICB1c2luZyBEaWdpdCA9IFVDUFVSZWdpc3RlcjsKICAgICBzdGF0aWMg
Y29uc3RleHByIHVuc2lnbmVkIGJpdHNQZXJCeXRlID0gODsKICAgICBzdGF0aWMgY29uc3RleHBy
IHVuc2lnbmVkIGRpZ2l0Qml0cyA9IHNpemVvZihEaWdpdCkgKiBiaXRzUGVyQnl0ZTsKICAgICBz
dGF0aWMgY29uc3RleHByIHVuc2lnbmVkIGhhbGZEaWdpdEJpdHMgPSBkaWdpdEJpdHMgLyAyOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKaW5kZXggMjUyM2I3OWRmMzQx
YTgzN2M0NDk1NDI0ZWJmZWU3ODM5ZTRmZWI2ZC4uNGQ1ZmM4Mzc1YTczOGQwNTAxMmMwYzM4OTE3
MTZjYjQ0MDhiY2IzYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5o
CkBAIC0xMDc0LDcgKzEwNzQsNyBAQCBwcml2YXRlOgogICAgIFByb3BlcnR5T2Zmc2V0IHByZXBh
cmVUb1B1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKFZNJiwgUHJvcGVydHlOYW1lLCB1bnNpZ25l
ZCBhdHRyaWJ1dGVzLCBTdHJ1Y3R1cmVJRCwgU3RydWN0dXJlKik7CiAKICAgICBBdXhpbGlhcnlC
YXJyaWVyPEJ1dHRlcmZseSo+IG1fYnV0dGVyZmx5OwotI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisj
aWYgQ1BVKEFERFJFU1MzMikKICAgICB1bnNpZ25lZCBtXzMyQml0UGFkZGluZzsKICNlbmRpZgog
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAKaW5kZXggMTMyODE4
YzE0Mjc5OGVlMzE0YTViZmE5M2YyNDk3MTNjNjRjOTQ5NS4uZDI4NTJiMDQwY2RiZGJiMGQxMmY2
NjZlM2I1YmI5ZTMwODQ4M2QyMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvT3B0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0
aW9ucy5jcHAKQEAgLTIxOSw2ICsyMTksMTEgQEAgc3RhdGljIGludDMyX3QgY29tcHV0ZVByaW9y
aXR5RGVsdGFPZldvcmtlclRocmVhZHMoaW50MzJfdCB0d29Db3JlUHJpb3JpdHlEZWx0YSwKICAg
ICByZXR1cm4gbXVsdGlDb3JlUHJpb3JpdHlEZWx0YTsKIH0KIAorc3RhdGljIGJvb2wgaml0RW5h
YmxlZEJ5RGVmYXVsdCgpCit7CisgICAgcmV0dXJuIGlzMzJCaXQoKSB8fCBpc0FkZHJlc3M2NEJp
dCgpOworfQorCiBzdGF0aWMgdW5zaWduZWQgY29tcHV0ZU51bWJlck9mR0NNYXJrZXJzKHVuc2ln
bmVkIG1heE51bWJlck9mR0NNYXJrZXJzKQogewogICAgIHJldHVybiBjb21wdXRlTnVtYmVyT2ZX
b3JrZXJUaHJlYWRzKG1heE51bWJlck9mR0NNYXJrZXJzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL09wdGlvbnMuaAppbmRleCAyZTQ5YTVkNTJjY2VhMDQxNjRiMjIxZDhjM2FiOGM5Y2Qx
ZTA4YzFhLi5kOWZmYmE0YjM4MjliNjRiOGVhNjBlODI0MzFiYzhmMmE0MzUzMTk4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCkBAIC0xMzYsNyArMTM2LDcgQEAgY29u
c3RleHByIGJvb2wgZW5hYmxlV2ViQXNzZW1ibHlTdHJlYW1pbmdBcGkgPSBmYWxzZTsKICAgICB2
KG9wdGlvblN0cmluZywgY29uZmlnRmlsZSwgbnVsbHB0ciwgTm9ybWFsLCAiZmlsZSB0byBjb25m
aWd1cmUgSlNDIG9wdGlvbnMgYW5kIGxvZ2dpbmcgbG9jYXRpb24iKSBcCiAgICAgXAogICAgIHYo
Ym9vbCwgdXNlTExJbnQsICB0cnVlLCBOb3JtYWwsICJhbGxvd3MgdGhlIExMSU5UIHRvIGJlIHVz
ZWQgaWYgdHJ1ZSIpIFwKLSAgICB2KGJvb2wsIHVzZUpJVCwgICAgdHJ1ZSwgTm9ybWFsLCAiYWxs
b3dzIHRoZSBleGVjdXRhYmxlIHBhZ2VzIHRvIGJlIGFsbG9jYXRlZCBmb3IgSklUIGFuZCB0aHVu
a3MgaWYgdHJ1ZSIpIFwKKyAgICB2KGJvb2wsIHVzZUpJVCwgaml0RW5hYmxlZEJ5RGVmYXVsdCgp
LCBOb3JtYWwsICJhbGxvd3MgdGhlIGV4ZWN1dGFibGUgcGFnZXMgdG8gYmUgYWxsb2NhdGVkIGZv
ciBKSVQgYW5kIHRodW5rcyBpZiB0cnVlIikgXAogICAgIHYoYm9vbCwgdXNlQmFzZWxpbmVKSVQs
IHRydWUsIE5vcm1hbCwgImFsbG93cyB0aGUgYmFzZWxpbmUgSklUIHRvIGJlIHVzZWQgaWYgdHJ1
ZSIpIFwKICAgICB2KGJvb2wsIHVzZURGR0pJVCwgdHJ1ZSwgTm9ybWFsLCAiYWxsb3dzIHRoZSBE
RkcgSklUIHRvIGJlIHVzZWQgaWYgdHJ1ZSIpIFwKICAgICB2KGJvb2wsIHVzZVJlZ0V4cEpJVCwg
dHJ1ZSwgTm9ybWFsLCAiYWxsb3dzIHRoZSBSZWdFeHAgSklUIHRvIGJlIHVzZWQgaWYgdHJ1ZSIp
IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHAuY3BwCmluZGV4IDQ3ZDBkMzIx
ODMwODVmODhlYzkxOTA5ZGEyZWVhMzQwN2FlNTZhOWUuLmUxYmEwOWM2M2EzYmJkOWUwZGM4MWE0
YzhhNjRiZjNmZWY1NzNjMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1JlZ0V4cC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhw
LmNwcApAQCAtNDk0LDEwICs0OTQsMTAgQEAgdm9pZCBSZWdFeHA6Om1hdGNoQ29tcGFyZVdpdGhJ
bnRlcnByZXRlcihjb25zdCBTdHJpbmcmIHMsIGludCBzdGFydE9mZnNldCwgaW50KgogICAgICAg
ICAgICAgc25wcmludGYoaml0OEJpdE1hdGNoQWRkciwgaml0QWRkclNpemUsICJmYWxsYmFjayAg
ICAiKTsKICAgICAgICAgICAgIHNucHJpbnRmKGppdDE2Qml0TWF0Y2hBZGRyLCBqaXRBZGRyU2l6
ZSwgIi0tLS0gICAgICAiKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNucHJpbnRm
KGppdDhCaXRNYXRjaE9ubHlBZGRyLCBqaXRBZGRyU2l6ZSwgIjB4JTAxNGx4IiwgcmVpbnRlcnBy
ZXRfY2FzdDx1bnNpZ25lZCBsb25nIGludD4oY29kZUJsb2NrLmdldDhCaXRNYXRjaE9ubHlBZGRy
KCkpKTsKLSAgICAgICAgICAgIHNucHJpbnRmKGppdDE2Qml0TWF0Y2hPbmx5QWRkciwgaml0QWRk
clNpemUsICIweCUwMTRseCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQgbG9uZyBpbnQ+KGNv
ZGVCbG9jay5nZXQxNkJpdE1hdGNoT25seUFkZHIoKSkpOwotICAgICAgICAgICAgc25wcmludGYo
aml0OEJpdE1hdGNoQWRkciwgaml0QWRkclNpemUsICIweCUwMTRseCIsIHJlaW50ZXJwcmV0X2Nh
c3Q8dW5zaWduZWQgbG9uZyBpbnQ+KGNvZGVCbG9jay5nZXQ4Qml0TWF0Y2hBZGRyKCkpKTsKLSAg
ICAgICAgICAgIHNucHJpbnRmKGppdDE2Qml0TWF0Y2hBZGRyLCBqaXRBZGRyU2l6ZSwgIjB4JTAx
NGx4IiwgcmVpbnRlcnByZXRfY2FzdDx1bnNpZ25lZCBsb25nIGludD4oY29kZUJsb2NrLmdldDE2
Qml0TWF0Y2hBZGRyKCkpKTsKKyAgICAgICAgICAgIHNucHJpbnRmKGppdDhCaXRNYXRjaE9ubHlB
ZGRyLCBqaXRBZGRyU2l6ZSwgIjB4JTAxNGx4IiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+
KGNvZGVCbG9jay5nZXQ4Qml0TWF0Y2hPbmx5QWRkcigpKSk7CisgICAgICAgICAgICBzbnByaW50
ZihqaXQxNkJpdE1hdGNoT25seUFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0bHgiLCByZWludGVy
cHJldF9jYXN0PHVpbnRwdHJfdD4oY29kZUJsb2NrLmdldDE2Qml0TWF0Y2hPbmx5QWRkcigpKSk7
CisgICAgICAgICAgICBzbnByaW50ZihqaXQ4Qml0TWF0Y2hBZGRyLCBqaXRBZGRyU2l6ZSwgIjB4
JTAxNGx4IiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvZGVCbG9jay5nZXQ4Qml0TWF0
Y2hBZGRyKCkpKTsKKyAgICAgICAgICAgIHNucHJpbnRmKGppdDE2Qml0TWF0Y2hBZGRyLCBqaXRB
ZGRyU2l6ZSwgIjB4JTAxNGx4IiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvZGVCbG9j
ay5nZXQxNkJpdE1hdGNoQWRkcigpKSk7CiAgICAgICAgIH0KICNlbHNlCiAgICAgICAgIGNvbnN0
IGNoYXIqIGppdDhCaXRNYXRjaE9ubHlBZGRyID0gIkpJVCBPZmYiOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcAppbmRleCBmZjA3ZGJh
YzMxNDAyZGZlZGQ2YzAyMzE4OTQwNzYzYjI3OWU0ZmQ5Li4yODQ4YWUxOGI0NzFiMmQ5OGIwYjkw
NWVkMDI2MWQ5ZGUzZDlhMWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcApAQCAtMjI4LDcgKzIyOCw3IEBAIHB1YmxpYzoKIAog
ICAgICAgICAgICAgaWYgKGlzQ0ZyYW1lKCkpIHsKICAgICAgICAgICAgICAgICBSRUxFQVNFX0FT
U0VSVCghTExJbnQ6OmlzTExJbnRQQyhmcmFtZSgpLT5jYWxsZXJGcmFtZSkpOwotICAgICAgICAg
ICAgICAgIHN0YWNrVHJhY2VbbV9kZXB0aF0gPSBVbnByb2Nlc3NlZFN0YWNrRnJhbWUoZnJhbWUo
KS0+cGMpOworICAgICAgICAgICAgICAgIHN0YWNrVHJhY2VbbV9kZXB0aF0gPSBVbnByb2Nlc3Nl
ZFN0YWNrRnJhbWUoZnJhbWUoKS0+cmV0dXJuUEMpOwogICAgICAgICAgICAgICAgIG1fZGVwdGgr
KzsKICAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgIHJlY29yZEpTRnJhbWUoc3Rh
Y2tUcmFjZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TbG93
UGF0aFJldHVyblR5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Nsb3dQYXRo
UmV0dXJuVHlwZS5oCmluZGV4IDRjYzU5YThmNzUxMGY4ZjI4MGY5OTExNTU3OWFjZTI1MzEyZDJi
Y2IuLmMwN2NjMTk0ZDE4ZDk0YzQ4NDQwNTEwMjIwNDgxNjU0NWMzNzJlYjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Nsb3dQYXRoUmV0dXJuVHlwZS5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Nsb3dQYXRoUmV0dXJuVHlwZS5oCkBAIC0y
NSw2ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiQ1BVLmgiCiAjaW5jbHVk
ZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogCiBuYW1lc3BhY2UgSlNDIHsKQEAgLTM0LDIyICszNSwy
MyBAQCBuYW1lc3BhY2UgSlNDIHsKIC8vICdleHRlcm4gIkMiJykgbmVlZHMgdG8gYmUgUE9EOyBo
ZW5jZSBwdXR0aW5nIGFueSBjb25zdHJ1Y3RvcnMgaW50byBpdCBjb3VsZCBjYXVzZSBlaXRoZXIg
Y29tcGlsZXIKIC8vIHdhcm5pbmdzLCBvciB3b3JzZSwgYSBjaGFuZ2UgaW4gdGhlIEFCSSB1c2Vk
IHRvIHJldHVybiB0aGVzZSB0eXBlcy4KIHN0cnVjdCBTbG93UGF0aFJldHVyblR5cGUgewotICAg
IHZvaWQqIGE7Ci0gICAgdm9pZCogYjsKKyAgICBDUFVSZWdpc3RlciBhOworICAgIENQVVJlZ2lz
dGVyIGI7CiB9Oworc3RhdGljX2Fzc2VydChzaXplb2YoU2xvd1BhdGhSZXR1cm5UeXBlKSA+PSBz
aXplb2Yodm9pZCopICogMiwgIlNsb3dQYXRoUmV0dXJuVHlwZSBzaG91bGQgZml0IGluIHR3byBt
YWNoaW5lIHJlZ2lzdGVycyIpOwogCiBpbmxpbmUgU2xvd1BhdGhSZXR1cm5UeXBlIGVuY29kZVJl
c3VsdCh2b2lkKiBhLCB2b2lkKiBiKQogewogICAgIFNsb3dQYXRoUmV0dXJuVHlwZSByZXN1bHQ7
Ci0gICAgcmVzdWx0LmEgPSBhOwotICAgIHJlc3VsdC5iID0gYjsKKyAgICByZXN1bHQuYSA9IHJl
aW50ZXJwcmV0X2Nhc3Q8Q1BVUmVnaXN0ZXI+KGEpOworICAgIHJlc3VsdC5iID0gcmVpbnRlcnBy
ZXRfY2FzdDxDUFVSZWdpc3Rlcj4oYik7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogaW5saW5l
IHZvaWQgZGVjb2RlUmVzdWx0KFNsb3dQYXRoUmV0dXJuVHlwZSByZXN1bHQsIHZvaWQqJiBhLCB2
b2lkKiYgYikKIHsKLSAgICBhID0gcmVzdWx0LmE7Ci0gICAgYiA9IHJlc3VsdC5iOworICAgIGEg
PSByZWludGVycHJldF9jYXN0PHZvaWQqPihyZXN1bHQuYSk7CisgICAgYiA9IHJlaW50ZXJwcmV0
X2Nhc3Q8dm9pZCo+KHJlc3VsdC5iKTsKIH0KIAogI2Vsc2UgLy8gVVNFKEpTVkFMVUUzMl82NCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9TaWdpbGxDcmFzaEFuYWx5
emVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9TaWdpbGxDcmFzaEFuYWx5emVy
LmNwcAppbmRleCBlZjc1M2Y1OTBhMzU4MjgzNGFiOTg3YmVhOGE5YmFmMmQzMTAwOTEwLi40MTY1
ZWE0YWZkOTEzY2UyZGYxODAzMGRiZmY4ODYyMDQyMzUzZWMwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdG9vbHMvU2lnaWxsQ3Jhc2hBbmFseXplci5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rvb2xzL1NpZ2lsbENyYXNoQW5hbHl6ZXIuY3BwCkBAIC0zMjEsMTAg
KzMyMSwxMCBAQCB2b2lkIFNpZ2lsbENyYXNoQW5hbHl6ZXI6OmR1bXBDb2RlQmxvY2soQ29kZUJs
b2NrKiBjb2RlQmxvY2ssIHZvaWQqIG1hY2hpbmVQQykKICAgICB3aGlsZSAoYnl0ZUNvdW50KSB7
CiAgICAgICAgIGNoYXIgcGNTdHJpbmdbMjRdOwogICAgICAgICBpZiAoY3VycmVudFBDID09IG1h
Y2hpbmVQQykgewotICAgICAgICAgICAgc25wcmludGYocGNTdHJpbmcsIHNpemVvZihwY1N0cmlu
ZyksICIqIDB4JWx4IiwgcmVpbnRlcnByZXRfY2FzdDx1bnNpZ25lZCBsb25nPihjdXJyZW50UEMp
KTsKKyAgICAgICAgICAgIHNucHJpbnRmKHBjU3RyaW5nLCBzaXplb2YocGNTdHJpbmcpLCAiKiAw
eCVseCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihjdXJyZW50UEMpKTsKICAgICAgICAg
ICAgIGxvZygiJTIwczogJXMgICAgPD09PT09PT09PT09PT09PT09PT09PT09PT0iLCBwY1N0cmlu
ZywgbV9hcm02NE9wY29kZS5kaXNhc3NlbWJsZShjdXJyZW50UEMpKTsKICAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgIHNucHJpbnRmKHBjU3RyaW5nLCBzaXplb2YocGNTdHJpbmcpLCAiMHgl
bHgiLCByZWludGVycHJldF9jYXN0PHVuc2lnbmVkIGxvbmc+KGN1cnJlbnRQQykpOworICAgICAg
ICAgICAgc25wcmludGYocGNTdHJpbmcsIHNpemVvZihwY1N0cmluZyksICIweCVseCIsIHJlaW50
ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihjdXJyZW50UEMpKTsKICAgICAgICAgICAgIGxvZygiJTIw
czogJXMiLCBwY1N0cmluZywgbV9hcm02NE9wY29kZS5kaXNhc3NlbWJsZShjdXJyZW50UEMpKTsK
ICAgICAgICAgfQogICAgICAgICBjdXJyZW50UEMrKzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL01hdGhFeHRyYXMuaCBiL1NvdXJjZS9XVEYvd3RmL01hdGhFeHRyYXMuaAppbmRleCA3OTZi
MWU4MWQxZWNmMjJkMzZkOWQ1ZWQwYzQ2ZTQwMjJkYTA4ZDEwLi41OGJiNDZmZjMwZDQ4NmYyMjcx
ZDcyNmY1OWRkMjMwZjcxZTg2MzNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9NYXRoRXh0
cmFzLmgKKysrIGIvU291cmNlL1dURi93dGYvTWF0aEV4dHJhcy5oCkBAIC0yMDcsNyArMjA3LDcg
QEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gY29uc3RleHByIGJvb2wgaGFzVHdvT3JNb3JlQml0c1Nl
dChUIHZhbHVlKQogICAgIHJldHVybiAhaGFzWmVyb09yT25lQml0c1NldCh2YWx1ZSk7CiB9CiAK
LXRlbXBsYXRlIDx0eXBlbmFtZSBUPiBpbmxpbmUgdW5zaWduZWQgZ2V0TFNCU2V0KFQgdmFsdWUp
Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gY29uc3RleHByIHVuc2lnbmVkIGdldExTQlNldChUIHZh
bHVlKQogewogICAgIHR5cGVkZWYgdHlwZW5hbWUgc3RkOjptYWtlX3Vuc2lnbmVkPFQ+Ojp0eXBl
IFVuc2lnbmVkVDsKICAgICB1bnNpZ25lZCByZXN1bHQgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvUGxhdGZvcm0uaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKaW5kZXggNjQw
NGVhZmYxMTc1NjRlNTFhMmUyZGVlMDFjMDk4Mjk1MzRiYTM3Zi4uNjU5YTc1OTk1MDVhNTEyYTkw
NGMzNTQ1ZmJjZTI1ZTZlNGY4NjI2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZv
cm0uaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCkBAIC03MzcsNyArNzM3LDcgQEAK
ICNlbmRpZgogCiAjaWYgIWRlZmluZWQoVVNFX0pTVkFMVUU2NCkgJiYgIWRlZmluZWQoVVNFX0pT
VkFMVUUzMl82NCkKLSNpZiBDUFUoQUREUkVTUzY0KQorI2lmIENQVShBRERSRVNTNjQpIHx8IENQ
VShBUk02NCkKICNkZWZpbmUgVVNFX0pTVkFMVUU2NCAxCiAjZWxzZQogI2RlZmluZSBVU0VfSlNW
QUxVRTMyXzY0IDEKQEAgLTc0Niw3ICs3NDYsNyBAQAogCiAvKiBUaGUgSklUIGlzIGVuYWJsZWQg
YnkgZGVmYXVsdCBvbiBhbGwgeDg2LCB4ODYtNjQsIEFSTSAmIE1JUFMgcGxhdGZvcm1zIGV4Y2Vw
dCBBUk12N2suICovCiAjaWYgIWRlZmluZWQoRU5BQkxFX0pJVCkgXAotICAgICYmIChDUFUoWDg2
KSB8fCBDUFUoWDg2XzY0KSB8fCBDUFUoQVJNKSB8fCAoQ1BVKEFSTTY0KSAmJiAhZGVmaW5lZChf
X0lMUDMyX18pKSB8fCBDUFUoTUlQUykpIFwKKyAgICAmJiAoQ1BVKFg4NikgfHwgQ1BVKFg4Nl82
NCkgfHwgQ1BVKEFSTSkgfHwgQ1BVKEFSTTY0KSB8fCBDUFUoTUlQUykpIFwKICAgICAmJiAhQ1BV
KEFQUExFX0FSTVY3SykKICNkZWZpbmUgRU5BQkxFX0pJVCAxCiAjZW5kaWYKQEAgLTg2Niw3ICs4
NjYsNyBAQAogI2VuZGlmCiAKICNpZiAhZGVmaW5lZChFTkFCTEVfV0VCQVNTRU1CTFkpCi0jaWYg
RU5BQkxFKEIzX0pJVCkgJiYgUExBVEZPUk0oQ09DT0EpCisjaWYgRU5BQkxFKEIzX0pJVCkgJiYg
UExBVEZPUk0oQ09DT0EpICYmIENQVShBRERSRVNTNjQpCiAjZGVmaW5lIEVOQUJMRV9XRUJBU1NF
TUJMWSAxCiAjZWxzZQogI2RlZmluZSBFTkFCTEVfV0VCQVNTRU1CTFkgMApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuY3BwCmluZGV4IGUzZWI1Zjc5ZDZlMDgzMTY3ZTli
ZGRiYTM1MzNmM2Y1MWMwM2I0ZDYuLjgwM2Q4MjUwM2ZjNDIzZWQ0YWNlZjUyNmZmNzM4N2EyZDhh
MzFkNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxlY3RvckNvbXBpbGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0b3JDb21waWxlci5jcHAKQEAg
LTIyMzIsNyArMjIzMiw3IEBAIHZvaWQgU2VsZWN0b3JDb2RlR2VuZXJhdG9yOjpnZW5lcmF0ZUFk
ZFN0eWxlUmVsYXRpb24oQXNzZW1ibGVyOjpSZWdpc3RlcklEIGNoZWNrCiAgICAgICAgIHN0YXRp
Y19hc3NlcnQoMSA8PCA0ID09IDE2LCAiIik7CiAgICAgICAgIG1fYXNzZW1ibGVyLmxzaGlmdFB0
cihBc3NlbWJsZXI6OlRydXN0ZWRJbW0zMig0KSwgc2l6ZUFuZFRhcmdldCk7CiAjZWxzZQotICAg
ICAgICBtX2Fzc2VtYmxlci5tdWwzMihUcnVzdGVkSW1tMzIoc2l6ZW9mKFN0eWxlOjpSZWxhdGlv
bikpLCBzaXplQW5kVGFyZ2V0LCBzaXplQW5kVGFyZ2V0KTsKKyAgICAgICAgbV9hc3NlbWJsZXIu
bXVsMzIoQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoc2l6ZW9mKFN0eWxlOjpSZWxhdGlvbikpLCBz
aXplQW5kVGFyZ2V0LCBzaXplQW5kVGFyZ2V0KTsKICNlbmRpZgogICAgICAgICBtX2Fzc2VtYmxl
ci5hZGRQdHIoZGF0YUFkZHJlc3MsIHNpemVBbmRUYXJnZXQpOwogICAgIH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>352428</attachid>
            <date>2018-10-15 20:26:51 -0700</date>
            <delta_ts>2018-10-15 21:05:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190273-20181015202649.patch</filename>
            <type>text/plain</type>
            <size>124517</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3MDkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
YThlOTM5MTI2ZGYzMzJhY2YxMTgxOWQ1ZDg0YjI3ZGY3ZGI0YzJiLi5iOTE5MDAyNDBiNTI4ZDBl
MzQyMmEyOTk5OGYxYzYwMDg5OTk2OWQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMzggQEAKKzIwMTgtMTAtMTUgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBs
ZS5jb20+CisKKyAgICAgICAgU3VwcG9ydCBhcm02NCBDUFVzIHdpdGggYSAzMi1iaXQgYWRkcmVz
cyBzcGFjZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTkwMjczCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIGFybTY0XzMyIGluIHRoZSBMTEludC4gSW4gb3Jk
ZXIgdG8KKyAgICAgICAgbWFrZSB0aGlzIHdvcmsgd2UgbmVlZGVkIHRvIGFkZCBhIG5ldyB0eXBl
IHRoYXQgcmVmbGVjdHMgdGhlIHNpemUKKyAgICAgICAgb2YgYSBjcHUgcmVnaXN0ZXIuIFRoaXMg
dHlwZSBpcyBjYWxsZWQgQ1BVUmVnaXN0ZXIgb3IgVUNQVVJlZ2lzdGVyCisgICAgICAgIGZvciB0
aGUgdW5zaWduZWQgdmVyc2lvbi4gTW9zdCBwbGFjZXMgdGhhdCB1c2VkIHZvaWQqIG9yIGludHB0
cl90CisgICAgICAgIHRvIHJlZmVyIHRvIGEgcmVnaXN0ZXIgaGF2ZSBiZWVuIGNoYW5nZWQgdG8g
dXNlIHRoaXMgbmV3IHR5cGUuCisKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGFzc2VtYmxlci9BUk02NEFzc2VtYmxlci5oOgor
ICAgICAgICAoSlNDOjppc0ludCk6CisgICAgICAgIChKU0M6OmlzNEJ5dGVBbGlnbmVkKToKKyAg
ICAgICAgKEpTQzo6UGFpclBvc3RJbmRleDo6UGFpclBvc3RJbmRleCk6CisgICAgICAgIChKU0M6
OlBhaXJQcmVJbmRleDo6UGFpclByZUluZGV4KToKKyAgICAgICAgKEpTQzo6QVJNNjRBc3NlbWJs
ZXI6OnJlYWRQb2ludGVyKToKKyAgICAgICAgKEpTQzo6QVJNNjRBc3NlbWJsZXI6OnJlYWRDYWxs
VGFyZ2V0KToKKyAgICAgICAgKEpTQzo6QVJNNjRBc3NlbWJsZXI6OmNvbXB1dGVKdW1wVHlwZSk6
CisgICAgICAgIChKU0M6OkFSTTY0QXNzZW1ibGVyOjpsaW5rQ29tcGFyZUFuZEJyYW5jaCk6Cisg
ICAgICAgIChKU0M6OkFSTTY0QXNzZW1ibGVyOjpsaW5rQ29uZGl0aW9uYWxCcmFuY2gpOgorICAg
ICAgICAoSlNDOjpBUk02NEFzc2VtYmxlcjo6bGlua1Rlc3RBbmRCcmFuY2gpOgorICAgICAgICAo
SlNDOjpBUk02NEFzc2VtYmxlcjo6bG9hZFJlZ2lzdGVyTGl0ZXJhbCk6CisgICAgICAgIChKU0M6
OkFSTTY0QXNzZW1ibGVyOjpsb2FkU3RvcmVSZWdpc3RlclBhaXJQb3N0SW5kZXgpOgorICAgICAg
ICAoSlNDOjpBUk02NEFzc2VtYmxlcjo6bG9hZFN0b3JlUmVnaXN0ZXJQYWlyUHJlSW5kZXgpOgor
ICAgICAgICAoSlNDOjpBUk02NEFzc2VtYmxlcjo6bG9hZFN0b3JlUmVnaXN0ZXJQYWlyT2Zmc2V0
KToKKyAgICAgICAgKEpTQzo6QVJNNjRBc3NlbWJsZXI6OmxvYWRTdG9yZVJlZ2lzdGVyUGFpck5v
blRlbXBvcmFsKToKKyAgICAgICAgKEpTQzo6aXNJbnQ3KTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6aXNJbnQxMSk6IERlbGV0ZWQuCisgICAgICAgICogYXNzZW1ibGVyL0NQVS5oOgorICAgICAg
ICAoSlNDOjppc0FkZHJlc3M2NEJpdCk6CisgICAgICAgIChKU0M6OmlzQWRkcmVzczMyQml0KToK
KyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXIuaDoKKyAgICAgICAgKEpTQzo6TWFj
cm9Bc3NlbWJsZXI6OnNob3VsZEJsaW5kKToKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3Nl
bWJsZXJBUk02NC5jcHA6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OmNvbGxl
Y3RDUFVGZWF0dXJlcyk6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQu
aDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6bG9hZCk6CisgICAgICAgIChK
U0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OnN0b3JlKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3Nl
bWJsZXJBUk02NDo6aXNJbkludFJhbmdlKTogRGVsZXRlZC4KKyAgICAgICAgKiBhc3NlbWJsZXIv
UHJpbnRlci5oOgorICAgICAgICAqIGFzc2VtYmxlci9Qcm9iZUNvbnRleHQuaDoKKyAgICAgICAg
KEpTQzo6UHJvYmU6OkNQVVN0YXRlOjpncHIpOgorICAgICAgICAoSlNDOjpQcm9iZTo6Q1BVU3Rh
dGU6OnNwcik6CisgICAgICAgIChKU0M6OlByb2JlOjpDb250ZXh0OjpncHIpOgorICAgICAgICAo
SlNDOjpQcm9iZTo6Q29udGV4dDo6c3ByKToKKyAgICAgICAgKiBiMy9CM0NvbnN0UHRyVmFsdWUu
aDoKKyAgICAgICAgKiBiMy9CM1N0YWNrbWFwU3BlY2lhbC5jcHA6CisgICAgICAgIChKU0M6OkIz
OjpTdGFja21hcFNwZWNpYWw6OmlzQXJnVmFsaWRGb3JSZXApOgorICAgICAgICAqIGIzL2Fpci9B
aXJBcmcuaDoKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6QXJnOjpzdGFja1Nsb3QgY29uc3QpOgor
ICAgICAgICAoSlNDOjpCMzo6QWlyOjpBcmc6OnNwZWNpYWwgY29uc3QpOgorICAgICAgICAqIGIz
L2Fpci90ZXN0YWlyLmNwcDoKKyAgICAgICAgKiBiMy90ZXN0YjMuY3BwOgorICAgICAgICAoSlND
OjpCMzo6dGVzdFN0b3JlQ29uc3RhbnRQdHIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEludGVy
cHJldGVyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RBZGRTaGwzMik6CisgICAgICAgIChKU0M6
OkIzOjp0ZXN0TG9hZEJhc2VJbmRleFNoaWZ0MzIpOgorICAgICAgICAqIGJpbmRpbmdzL1Njcmlw
dEZ1bmN0aW9uQ2FsbC5jcHA6CisgICAgICAgIChEZXByZWNhdGVkOjpTY3JpcHRDYWxsQXJndW1l
bnRIYW5kbGVyOjphcHBlbmRBcmd1bWVudCk6CisgICAgICAgICogYmluZGluZ3MvU2NyaXB0RnVu
Y3Rpb25DYWxsLmg6CisgICAgICAgICogYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcDoKKyAgICAgICAg
KEpTQzo6cm91bmRDYWxsZWVTYXZlU3BhY2VBc1ZpcnR1YWxSZWdpc3RlcnMpOgorICAgICAgICAq
IGRmZy9ERkdPU1JFeGl0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpyZXN0b3JlQ2FsbGVlU2F2
ZXNGb3IpOgorICAgICAgICAoSlNDOjpERkc6OnNhdmVDYWxsZWVTYXZlc0Zvcik6CisgICAgICAg
IChKU0M6OkRGRzo6cmVzdG9yZUNhbGxlZVNhdmVzRnJvbVZNRW50cnlGcmFtZUNhbGxlZVNhdmVz
QnVmZmVyKToKKyAgICAgICAgKEpTQzo6REZHOjpjb3B5Q2FsbGVlU2F2ZXNUb1ZNRW50cnlGcmFt
ZUNhbGxlZVNhdmVzQnVmZmVyKToKKyAgICAgICAgKiBkZmcvREZHT1NSRXhpdENvbXBpbGVyQ29t
bW9uLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpyZWlmeUlubGluZWRDYWxsRnJhbWVzKToKKyAg
ICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAqIGRpc2Fzc2VtYmxlci9VRGlzODZE
aXNhc3NlbWJsZXIuY3BwOgorICAgICAgICAoSlNDOjp0cnlUb0Rpc2Fzc2VtYmxlV2l0aFVEaXM4
Nik6CisgICAgICAgICogZnRsL0ZUTExvd2VyREZHVG9CMy5jcHA6CisgICAgICAgIChKU0M6OkZU
TDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVXZWFrTWFwR2V0KToKKyAgICAgICAgKiBoZWFw
L01hY2hpbmVTdGFja01hcmtlci5jcHA6CisgICAgICAgIChKU0M6OmNvcHlNZW1vcnkpOgorICAg
ICAgICAqIGludGVycHJldGVyL0NhbGxGcmFtZS5oOgorICAgICAgICAoSlNDOjpFeGVjU3RhdGU6
OnJldHVyblBDIGNvbnN0KToKKyAgICAgICAgKEpTQzo6RXhlY1N0YXRlOjpoYXNSZXR1cm5QQyBj
b25zdCk6CisgICAgICAgIChKU0M6OkV4ZWNTdGF0ZTo6Y2xlYXJSZXR1cm5QQyk6CisgICAgICAg
IChKU0M6OkV4ZWNTdGF0ZTo6cmV0dXJuUENPZmZzZXQpOgorICAgICAgICAoSlNDOjpFeGVjU3Rh
dGU6OmlzR2xvYmFsRXhlYyBjb25zdCk6CisgICAgICAgIChKU0M6OkV4ZWNTdGF0ZTo6c2V0UmV0
dXJuUEMpOgorICAgICAgICAqIGludGVycHJldGVyL0NhbGxlZUJpdHMuaDoKKyAgICAgICAgKEpT
Qzo6Q2FsbGVlQml0czo6Ym94V2FzbSk6CisgICAgICAgIChKU0M6OkNhbGxlZUJpdHM6OmlzV2Fz
bSBjb25zdCk6CisgICAgICAgIChKU0M6OkNhbGxlZUJpdHM6OmFzV2FzbUNhbGxlZSBjb25zdCk6
CisgICAgICAgICogaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwOgorICAgICAgICAoSlNDOjpV
bndpbmRGdW5jdG9yOjpjb3B5Q2FsbGVlU2F2ZXNUb0VudHJ5RnJhbWVDYWxsZWVTYXZlc0J1ZmZl
ciBjb25zdCk6CisgICAgICAgICogaW50ZXJwcmV0ZXIvVk1FbnRyeVJlY29yZC5oOgorICAgICAg
ICAqIGppdC9Bc3NlbWJseUhlbHBlcnMuaDoKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJz
OjpjbGVhclN0YWNrRnJhbWUpOgorICAgICAgICAqIGppdC9SZWdpc3RlckF0T2Zmc2V0Lmg6Cisg
ICAgICAgIChKU0M6OlJlZ2lzdGVyQXRPZmZzZXQ6Om9mZnNldEFzSW5kZXggY29uc3QpOgorICAg
ICAgICAqIGppdC9SZWdpc3RlckF0T2Zmc2V0TGlzdC5jcHA6CisgICAgICAgIChKU0M6OlJlZ2lz
dGVyQXRPZmZzZXRMaXN0OjpSZWdpc3RlckF0T2Zmc2V0TGlzdCk6CisgICAgICAgICogbGxpbnQv
TExJbnREYXRhLmNwcDoKKyAgICAgICAgKEpTQzo6TExJbnQ6OkRhdGE6OnBlcmZvcm1Bc3NlcnRp
b25zKToKKyAgICAgICAgKiBsbGludC9MTEludE9mZmxpbmVBc21Db25maWcuaDoKKyAgICAgICAg
KiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbToKKyAgICAgICAgKiBsbGludC9Mb3dMZXZl
bEludGVycHJldGVyNjQuYXNtOgorICAgICAgICAqIG9mZmxpbmVhc20vYXJtNjQucmI6CisgICAg
ICAgICogb2ZmbGluZWFzbS9hc20ucmI6CisgICAgICAgICogb2ZmbGluZWFzbS9hc3QucmI6Cisg
ICAgICAgICogb2ZmbGluZWFzbS9iYWNrZW5kcy5yYjoKKyAgICAgICAgKiBvZmZsaW5lYXNtL3Bh
cnNlci5yYjoKKyAgICAgICAgKiBvZmZsaW5lYXNtL3g4Ni5yYjoKKyAgICAgICAgKiBydW50aW1l
L0Jhc2ljQmxvY2tMb2NhdGlvbi5jcHA6CisgICAgICAgIChKU0M6OkJhc2ljQmxvY2tMb2NhdGlv
bjo6ZHVtcERhdGEgY29uc3QpOgorICAgICAgICAoSlNDOjpCYXNpY0Jsb2NrTG9jYXRpb246OmVt
aXRFeGVjdXRlQ29kZSBjb25zdCk6CisgICAgICAgICogcnVudGltZS9CYXNpY0Jsb2NrTG9jYXRp
b24uaDoKKyAgICAgICAgKiBydW50aW1lL0hhc093blByb3BlcnR5Q2FjaGUuaDoKKyAgICAgICAg
KiBydW50aW1lL0pTQmlnSW50LmNwcDoKKyAgICAgICAgKEpTQzo6SlNCaWdJbnQ6OmlucGxhY2VN
dWx0aXBseUFkZCk6CisgICAgICAgIChKU0M6OkpTQmlnSW50OjpkaWdpdERpdik6CisgICAgICAg
ICogcnVudGltZS9KU0JpZ0ludC5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNPYmplY3QuaDoKKyAg
ICAgICAgKiBydW50aW1lL09wdGlvbnMuY3BwOgorICAgICAgICAoSlNDOjpqaXRFbmFibGVkQnlE
ZWZhdWx0KToKKyAgICAgICAgKiBydW50aW1lL09wdGlvbnMuaDoKKyAgICAgICAgKiBydW50aW1l
L1JlZ0V4cC5jcHA6CisgICAgICAgIChKU0M6OlJlZ0V4cDo6cHJpbnRUcmFjZURhdGEpOgorICAg
ICAgICAqIHJ1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5jcHA6CisgICAgICAgIChKU0M6OkNGcmFt
ZVdhbGtlcjo6d2Fsayk6CisgICAgICAgICogcnVudGltZS9TbG93UGF0aFJldHVyblR5cGUuaDoK
KyAgICAgICAgKEpTQzo6ZW5jb2RlUmVzdWx0KToKKyAgICAgICAgKEpTQzo6ZGVjb2RlUmVzdWx0
KToKKyAgICAgICAgKiB0b29scy9TaWdpbGxDcmFzaEFuYWx5emVyLmNwcDoKKyAgICAgICAgKEpT
Qzo6U2lnaWxsQ3Jhc2hBbmFseXplcjo6ZHVtcENvZGVCbG9jayk6CisKIDIwMTgtMTAtMTIgIFRh
ZGV1IFphZ2FsbG8gIDx0emFnYWxsb0BhcHBsZS5jb20+CiAKICAgICAgICAgR2FyZGVuaW5nOiBC
dWlsZCBmaXggYWZ0ZXIgcjIzNzA4NC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9n
IGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggYTU0ZmRkZmUzNmVhNTU5MGUyNDFhMDM2Y2Y1
ZWFhN2M0MGZhMmRhOS4uOTZlZjMzZmY5NGViMDI5ZjcwYmNjODdhMWE3NGEyYjdmZTU2YzYxYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNiBAQAorMjAxOC0xMC0xNSAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWls
bGVyQGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0IGFybTY0IENQVXMgd2l0aCBhIDMyLWJp
dCBhZGRyZXNzIHNwYWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xOTAyNzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBVc2UgV1RGX0NQVV9BRERSRVNTNjQvMzIgdG8gZGVjaWRlIGlmIHRoZSBzeXN0ZW0g
aXMgcnVubmluZyBvbiBhcm02NF8zMi4KKworICAgICAgICAqIHd0Zi9NYXRoRXh0cmFzLmg6Cisg
ICAgICAgIChnZXRMU0JTZXQpOgorICAgICAgICAqIHd0Zi9QbGF0Zm9ybS5oOgorCiAyMDE4LTEw
LTEyICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgQWxsb3cgZW5jb2Rpbmcgb2Ygc21hbGwgZW51bSBjbGFzc2VzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2Zj
Y2M1ZDc5YmQ2N2NlNGMzNmZmN2MzNGE2MWEzODM5YmNlMTM4Mi4uM2M2N2FlZTMyNDkyNzdmMGVj
YWU1MjI1NjYyZmI5ZWExMTE2ZjgwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE4
LTEwLTE1ICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgorCisgICAgICAg
IFN1cHBvcnQgYXJtNjQgQ1BVcyB3aXRoIGEgMzItYml0IGFkZHJlc3Mgc3BhY2UKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MDI3MworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCBtaXNzaW5nIG5hbWVz
cGFjZSBhbm5vdGF0aW9uLgorCisgICAgICAgICogY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDb21waWxlcjo6U2VsZWN0b3JDb2RlR2VuZXJh
dG9yOjpnZW5lcmF0ZUFkZFN0eWxlUmVsYXRpb24pOgorCiAyMDE4LTEwLTEyICBXZW5zb24gSHNp
ZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIEFsbG93IFNQSSBj
bGllbnRzIHRvIGxheSBvdXQgYXQgYXJiaXRyYXJpbHkgc2NhbGVkIHNpemVzIGFuZCBzY2FsZSB0
byBmaXQgdGhlIHZpZXcKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMTE2NWExMDc4
MDk2MzI3Y2JhMmU5MDY1YzRlMTliZmRmYTU1NDY2Ni4uMzM3NzMxMGY2ZmU2NTllMzEwY2I5YTQx
M2E4NTg2N2RiOGMzYTIzYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEwMjI4
LDcgKzEwMjI4LDcgQEAKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNz
aW5nID0gMDsKIAkJCXNoZWxsUGF0aCA9IC9iaW4vc2g7Ci0JCQlzaGVsbFNjcmlwdCA9ICJpZiBb
WyBcIiR7QUNUSU9OfVwiID09IFwiaW5zdGFsbGhkcnNcIiBdXTsgdGhlblxuICAgIGV4aXQgMFxu
ZmlcblxuY2QgXCIke0JVSUxUX1BST0RVQ1RTX0RJUn0vRGVyaXZlZFNvdXJjZXMvSmF2YVNjcmlw
dENvcmVcIlxuXG4vdXNyL2Jpbi9lbnYgcnVieSBKYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2Fz
bS5yYiBcIi1JJHtCVUlMVF9QUk9EVUNUU19ESVJ9L0Rlcml2ZWRTb3VyY2VzL0phdmFTY3JpcHRD
b3JlXCIgSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20gXCIke0JV
SUxUX1BST0RVQ1RTX0RJUn0vSlNDTExJbnRPZmZzZXRzRXh0cmFjdG9yXCIgTExJbnRBc3NlbWJs
eS5oIHx8IGV4aXQgMSI7CisJCQlzaGVsbFNjcmlwdCA9ICJpZiBbWyBcIiR7QUNUSU9OfVwiID09
IFwiaW5zdGFsbGhkcnNcIiBdXTsgdGhlblxuICAgIGV4aXQgMFxuZmlcblxuY2QgXCIke0JVSUxU
X1BST0RVQ1RTX0RJUn0vRGVyaXZlZFNvdXJjZXMvSmF2YVNjcmlwdENvcmVcIlxuXG4vdXNyL2Jp
bi9lbnYgcnVieSBKYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FzbS5yYiBcIi1JJHtCVUlMVF9Q
Uk9EVUNUU19ESVJ9L0Rlcml2ZWRTb3VyY2VzL0phdmFTY3JpcHRDb3JlXCIgSmF2YVNjcmlwdENv
cmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20gXCIke0JVSUxUX1BST0RVQ1RTX0RJUn0v
SlNDTExJbnRPZmZzZXRzRXh0cmFjdG9yXCIgTExJbnRBc3NlbWJseS5oIHx8IGV4aXQgMVxuIjsK
IAkJfTsKIAkJNjVGQjNGNjUwOUQxMUU5MTAwRjQ5REVCIC8qIEdlbmVyYXRlIERlcml2ZWQgU291
cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFzZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNNjRBc3NlbWJsZXIuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNNjRBc3NlbWJsZXIuaAppbmRleCBkYjJj
NTU3ODI2Y2RiZDhiY2ExMTEwNmM1MWEyMjRmMzBmMmE5ZjViLi42YjJkM2IxZGUxNTM0ZjcxYTYy
NTQ4ZGUzMDMxNTU4ZGRkMTBiMmEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL0FSTTY0QXNzZW1ibGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9BUk02NEFzc2VtYmxlci5oCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRlICJB
c3NlbWJsZXJCdWZmZXIuaCIKICNpbmNsdWRlICJBc3NlbWJsZXJDb21tb24uaCIKKyNpbmNsdWRl
ICJDUFUuaCIKICNpbmNsdWRlICJKU0NQdHJUYWcuaCIKICNpbmNsdWRlIDxsaW1pdHMuaD4KICNp
bmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgpAQCAtNTQsMTQgKzU1LDE3IEBACiAKIG5hbWVzcGFj
ZSBKU0MgewogCi1BTFdBWVNfSU5MSU5FIGJvb2wgaXNJbnQ3KGludDMyX3QgdmFsdWUpCit0ZW1w
bGF0ZTxzaXplX3QgYml0cywgdHlwZW5hbWUgVHlwZT4KK0FMV0FZU19JTkxJTkUgY29uc3RleHBy
IGJvb2wgaXNJbnQoVHlwZSB0KQogewotICAgIHJldHVybiB2YWx1ZSA9PSAoKHZhbHVlIDw8IDI1
KSA+PiAyNSk7CisgICAgY29uc3RleHByIHNpemVfdCBzaGlmdCA9IHNpemVvZihUeXBlKSAqIENI
QVJfQklUIC0gYml0czsKKyAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihUeXBlKSAqIENIQVJfQklU
ID4gc2hpZnQsICJzaGlmdCBpcyBsYXJnZXIgdGhhbiB0aGUgc2l6ZSBvZiB0aGUgdmFsdWUiKTsK
KyAgICByZXR1cm4gKCh0IDw8IHNoaWZ0KSA+PiBzaGlmdCkgPT0gdDsKIH0KIAotQUxXQVlTX0lO
TElORSBib29sIGlzSW50MTEoaW50MzJfdCB2YWx1ZSkKK3N0YXRpYyBBTFdBWVNfSU5MSU5FIGJv
b2wgaXM0Qnl0ZUFsaWduZWQoY29uc3Qgdm9pZCogcHRyKQogewotICAgIHJldHVybiB2YWx1ZSA9
PSAoKHZhbHVlIDw8IDIxKSA+PiAyMSk7CisgICAgcmV0dXJuICEocmVpbnRlcnByZXRfY2FzdDxp
bnRwdHJfdD4ocHRyKSAmIDB4Myk7CiB9CiAKIEFMV0FZU19JTkxJTkUgYm9vbCBpc1VJbnQ1KGlu
dDMyX3QgdmFsdWUpCkBAIC0xMzAsNyArMTM0LDcgQEAgcHVibGljOgogICAgIGV4cGxpY2l0IFBh
aXJQb3N0SW5kZXgoaW50IHZhbHVlKQogICAgICAgICA6IG1fdmFsdWUodmFsdWUpCiAgICAgewot
ICAgICAgICBBU1NFUlQoaXNJbnQxMSh2YWx1ZSkpOworICAgICAgICBBU1NFUlQoaXNJbnQ8MTE+
KHZhbHVlKSk7CiAgICAgfQogCiAgICAgb3BlcmF0b3IgaW50KCkgeyByZXR1cm4gbV92YWx1ZTsg
fQpAQCAtMTQ0LDcgKzE0OCw3IEBAIHB1YmxpYzoKICAgICBleHBsaWNpdCBQYWlyUHJlSW5kZXgo
aW50IHZhbHVlKQogICAgICAgICA6IG1fdmFsdWUodmFsdWUpCiAgICAgewotICAgICAgICBBU1NF
UlQoaXNJbnQxMSh2YWx1ZSkpOworICAgICAgICBBU1NFUlQoaXNJbnQ8MTE+KHZhbHVlKSk7CiAg
ICAgfQogCiAgICAgb3BlcmF0b3IgaW50KCkgeyByZXR1cm4gbV92YWx1ZTsgfQpAQCAtNDYwLDgg
KzQ2NCw4IEBAIHB1YmxpYzoKICAgICBwcml2YXRlOgogICAgICAgICB1bmlvbiB7CiAgICAgICAg
ICAgICBzdHJ1Y3QgUmVhbFR5cGVzIHsKLSAgICAgICAgICAgICAgICBpbnRwdHJfdCBtX2Zyb20g
OiA0ODsKLSAgICAgICAgICAgICAgICBpbnRwdHJfdCBtX3RvIDogNDg7CisgICAgICAgICAgICAg
ICAgaW50NjRfdCBtX2Zyb207CisgICAgICAgICAgICAgICAgaW50NjRfdCBtX3RvOwogICAgICAg
ICAgICAgICAgIEp1bXBUeXBlIG1fdHlwZSA6IDg7CiAgICAgICAgICAgICAgICAgSnVtcExpbmtU
eXBlIG1fbGlua1R5cGUgOiA4OwogICAgICAgICAgICAgICAgIENvbmRpdGlvbiBtX2NvbmRpdGlv
biA6IDQ7CkBAIC0yODAwLDE2ICsyODA0LDE4IEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJUX1VO
VVNFRChleHBlY3RlZCwgZXhwZWN0ZWQgJiYgc2YgJiYgb3BjID09IE1vdmVXaWRlT3BfSyAmJiBo
dyA9PSAxICYmIHJkID09IHJkRmlyc3QpOwogICAgICAgICByZXN1bHQgfD0gc3RhdGljX2Nhc3Q8
dWludHB0cl90PihpbW0xNikgPDwgMTY7CiAKKyNpZiBDUFUoQUREUkVTUzY0KQogICAgICAgICBl
eHBlY3RlZCA9IGRpc2Fzc2VtYmxlTW92ZVdpZGVJbWVkaWF0ZShhZGRyZXNzICsgMiwgc2YsIG9w
YywgaHcsIGltbTE2LCByZCk7CiAgICAgICAgIEFTU0VSVF9VTlVTRUQoZXhwZWN0ZWQsIGV4cGVj
dGVkICYmIHNmICYmIG9wYyA9PSBNb3ZlV2lkZU9wX0sgJiYgaHcgPT0gMiAmJiByZCA9PSByZEZp
cnN0KTsKICAgICAgICAgcmVzdWx0IHw9IHN0YXRpY19jYXN0PHVpbnRwdHJfdD4oaW1tMTYpIDw8
IDMyOworI2VuZGlmCiAKICAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KHJl
c3VsdCk7CiAgICAgfQogCiAgICAgc3RhdGljIHZvaWQqIHJlYWRDYWxsVGFyZ2V0KHZvaWQqIGZy
b20pCiAgICAgewotICAgICAgICByZXR1cm4gcmVhZFBvaW50ZXIocmVpbnRlcnByZXRfY2FzdDxp
bnQqPihmcm9tKSAtIDQpOworICAgICAgICByZXR1cm4gcmVhZFBvaW50ZXIocmVpbnRlcnByZXRf
Y2FzdDxpbnQqPihmcm9tKSAtIChpc0FkZHJlc3M2NEJpdCgpID8gNCA6IDMpKTsKICAgICB9CiAK
ICAgICAvLyBUaGUgc3RhdGljIHJlbGluaywgcmVwYXRjaCwgYW5kIHJlcGxhY2UgbWV0aG9kcyBj
YW4gdXNlIGNhbgpAQCAtMjkyNiwzMSArMjkzMiwzMSBAQCBwdWJsaWM6CiAgICAgICAgIGNhc2Ug
SnVtcE5vQ29uZGl0aW9uOgogICAgICAgICAgICAgcmV0dXJuIExpbmtKdW1wTm9Db25kaXRpb247
CiAgICAgICAgIGNhc2UgSnVtcENvbmRpdGlvbjogewotICAgICAgICAgICAgQVNTRVJUKCEocmVp
bnRlcnByZXRfY2FzdDxpbnRwdHJfdD4oZnJvbSkgJiAweDMpKTsKLSAgICAgICAgICAgIEFTU0VS
VCghKHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KHRvKSAmIDB4MykpOworICAgICAgICAgICAg
QVNTRVJUKGlzNEJ5dGVBbGlnbmVkKGZyb20pKTsKKyAgICAgICAgICAgIEFTU0VSVChpczRCeXRl
QWxpZ25lZCh0bykpOwogICAgICAgICAgICAgaW50cHRyX3QgcmVsYXRpdmUgPSByZWludGVycHJl
dF9jYXN0PGludHB0cl90Pih0bykgLSAocmVpbnRlcnByZXRfY2FzdDxpbnRwdHJfdD4oZnJvbSkp
OwogCi0gICAgICAgICAgICBpZiAoKChyZWxhdGl2ZSA8PCA0MykgPj4gNDMpID09IHJlbGF0aXZl
KQorICAgICAgICAgICAgaWYgKGlzSW50PDIxPihyZWxhdGl2ZSkpCiAgICAgICAgICAgICAgICAg
cmV0dXJuIExpbmtKdW1wQ29uZGl0aW9uRGlyZWN0OwogCiAgICAgICAgICAgICByZXR1cm4gTGlu
a0p1bXBDb25kaXRpb247CiAgICAgICAgICAgICB9CiAgICAgICAgIGNhc2UgSnVtcENvbXBhcmVB
bmRCcmFuY2g6ICB7Ci0gICAgICAgICAgICBBU1NFUlQoIShyZWludGVycHJldF9jYXN0PGludHB0
cl90Pihmcm9tKSAmIDB4MykpOwotICAgICAgICAgICAgQVNTRVJUKCEocmVpbnRlcnByZXRfY2Fz
dDxpbnRwdHJfdD4odG8pICYgMHgzKSk7CisgICAgICAgICAgICBBU1NFUlQoaXM0Qnl0ZUFsaWdu
ZWQoZnJvbSkpOworICAgICAgICAgICAgQVNTRVJUKGlzNEJ5dGVBbGlnbmVkKHRvKSk7CiAgICAg
ICAgICAgICBpbnRwdHJfdCByZWxhdGl2ZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KHRv
KSAtIChyZWludGVycHJldF9jYXN0PGludHB0cl90Pihmcm9tKSk7CiAKLSAgICAgICAgICAgIGlm
ICgoKHJlbGF0aXZlIDw8IDQzKSA+PiA0MykgPT0gcmVsYXRpdmUpCisgICAgICAgICAgICBpZiAo
aXNJbnQ8MjE+KHJlbGF0aXZlKSkKICAgICAgICAgICAgICAgICByZXR1cm4gTGlua0p1bXBDb21w
YXJlQW5kQnJhbmNoRGlyZWN0OwogCiAgICAgICAgICAgICByZXR1cm4gTGlua0p1bXBDb21wYXJl
QW5kQnJhbmNoOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgSnVtcFRlc3RCaXQ6ICAgewotICAg
ICAgICAgICAgQVNTRVJUKCEocmVpbnRlcnByZXRfY2FzdDxpbnRwdHJfdD4oZnJvbSkgJiAweDMp
KTsKLSAgICAgICAgICAgIEFTU0VSVCghKHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KHRvKSAm
IDB4MykpOworICAgICAgICAgICAgQVNTRVJUKGlzNEJ5dGVBbGlnbmVkKGZyb20pKTsKKyAgICAg
ICAgICAgIEFTU0VSVChpczRCeXRlQWxpZ25lZCh0bykpOwogICAgICAgICAgICAgaW50cHRyX3Qg
cmVsYXRpdmUgPSByZWludGVycHJldF9jYXN0PGludHB0cl90Pih0bykgLSAocmVpbnRlcnByZXRf
Y2FzdDxpbnRwdHJfdD4oZnJvbSkpOwogCi0gICAgICAgICAgICBpZiAoKChyZWxhdGl2ZSA8PCA1
MCkgPj4gNTApID09IHJlbGF0aXZlKQorICAgICAgICAgICAgaWYgKGlzSW50PDE0PihyZWxhdGl2
ZSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIExpbmtKdW1wVGVzdEJpdERpcmVjdDsKIAogICAg
ICAgICAgICAgcmV0dXJuIExpbmtKdW1wVGVzdEJpdDsKQEAgLTMwNjgsOSArMzA3NCw5IEBAIHBy
b3RlY3RlZDoKICAgICAgICAgQVNTRVJUKCEocmVpbnRlcnByZXRfY2FzdDxpbnRwdHJfdD4oZnJv
bSkgJiAzKSk7CiAgICAgICAgIEFTU0VSVCghKHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KHRv
KSAmIDMpKTsKICAgICAgICAgaW50cHRyX3Qgb2Zmc2V0ID0gKHJlaW50ZXJwcmV0X2Nhc3Q8aW50
cHRyX3Q+KHRvKSAtIHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KGZyb21JbnN0cnVjdGlvbikp
ID4+IDI7Ci0gICAgICAgIEFTU0VSVCgoKG9mZnNldCA8PCAzOCkgPj4gMzgpID09IG9mZnNldCk7
CisgICAgICAgIEFTU0VSVChpc0ludDwyNj4ob2Zmc2V0KSk7CiAKLSAgICAgICAgYm9vbCB1c2VE
aXJlY3QgPSAoKG9mZnNldCA8PCA0NSkgPj4gNDUpID09IG9mZnNldDsgLy8gRml0cyBpbiAxOSBi
aXRzCisgICAgICAgIGJvb2wgdXNlRGlyZWN0ID0gaXNJbnQ8MTk+KG9mZnNldCk7CiAgICAgICAg
IEFTU0VSVCghaXNEaXJlY3QgfHwgdXNlRGlyZWN0KTsKIAogICAgICAgICBpZiAodXNlRGlyZWN0
IHx8IGlzRGlyZWN0KSB7CkBAIC0zMDk2LDkgKzMxMDIsOSBAQCBwcm90ZWN0ZWQ6CiAgICAgICAg
IEFTU0VSVCghKHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KGZyb20pICYgMykpOwogICAgICAg
ICBBU1NFUlQoIShyZWludGVycHJldF9jYXN0PGludHB0cl90Pih0bykgJiAzKSk7CiAgICAgICAg
IGludHB0cl90IG9mZnNldCA9IChyZWludGVycHJldF9jYXN0PGludHB0cl90Pih0bykgLSByZWlu
dGVycHJldF9jYXN0PGludHB0cl90Pihmcm9tSW5zdHJ1Y3Rpb24pKSA+PiAyOwotICAgICAgICBB
U1NFUlQoKChvZmZzZXQgPDwgMzgpID4+IDM4KSA9PSBvZmZzZXQpOworICAgICAgICBBU1NFUlQo
aXNJbnQ8MjY+KG9mZnNldCkpOwogCi0gICAgICAgIGJvb2wgdXNlRGlyZWN0ID0gKChvZmZzZXQg
PDwgNDUpID4+IDQ1KSA9PSBvZmZzZXQ7IC8vIEZpdHMgaW4gMTkgYml0cworICAgICAgICBib29s
IHVzZURpcmVjdCA9IGlzSW50PDE5PihvZmZzZXQpOwogICAgICAgICBBU1NFUlQoIWlzRGlyZWN0
IHx8IHVzZURpcmVjdCk7CiAKICAgICAgICAgaWYgKHVzZURpcmVjdCB8fCBpc0RpcmVjdCkgewpA
QCAtMzEyNSw5ICszMTMxLDkgQEAgcHJvdGVjdGVkOgogICAgICAgICBBU1NFUlQoIShyZWludGVy
cHJldF9jYXN0PGludHB0cl90Pih0bykgJiAzKSk7CiAgICAgICAgIGludHB0cl90IG9mZnNldCA9
IChyZWludGVycHJldF9jYXN0PGludHB0cl90Pih0bykgLSByZWludGVycHJldF9jYXN0PGludHB0
cl90Pihmcm9tSW5zdHJ1Y3Rpb24pKSA+PiAyOwogICAgICAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8
aW50PihvZmZzZXQpID09IG9mZnNldCk7Ci0gICAgICAgIEFTU0VSVCgoKG9mZnNldCA8PCAzOCkg
Pj4gMzgpID09IG9mZnNldCk7CisgICAgICAgIEFTU0VSVChpc0ludDwyNj4ob2Zmc2V0KSk7CiAK
LSAgICAgICAgYm9vbCB1c2VEaXJlY3QgPSAoKG9mZnNldCA8PCA1MCkgPj4gNTApID09IG9mZnNl
dDsgLy8gRml0cyBpbiAxNCBiaXRzCisgICAgICAgIGJvb2wgdXNlRGlyZWN0ID0gaXNJbnQ8MTQ+
KG9mZnNldCk7CiAgICAgICAgIEFTU0VSVCghaXNEaXJlY3QgfHwgdXNlRGlyZWN0KTsKIAogICAg
ICAgICBpZiAodXNlRGlyZWN0IHx8IGlzRGlyZWN0KSB7CkBAIC0zNTA2LDcgKzM1MTIsNyBAQCBw
cm90ZWN0ZWQ6CiAgICAgLy8gJ1YnIG1lYW5zIHZlY3RvcgogICAgIEFMV0FZU19JTkxJTkUgc3Rh
dGljIGludCBsb2FkUmVnaXN0ZXJMaXRlcmFsKExkckxpdGVyYWxPcCBvcGMsIGJvb2wgViwgaW50
IGltbTE5LCBGUFJlZ2lzdGVySUQgcnQpCiAgICAgewotICAgICAgICBBU1NFUlQoKChpbW0xOSA8
PCAxMykgPj4gMTMpID09IGltbTE5KTsKKyAgICAgICAgQVNTRVJUKGlzSW50PDE5PihpbW0xOSkp
OwogICAgICAgICByZXR1cm4gKDB4MTgwMDAwMDAgfCBvcGMgPDwgMzAgfCBWIDw8IDI2IHwgKGlt
bTE5ICYgMHg3ZmZmZikgPDwgNSB8IHJ0KTsKICAgICB9CiAKQEAgLTM1MzcsNyArMzU0Myw3IEBA
IHByb3RlY3RlZDoKICAgICAgICAgQVNTRVJUKFYgfHwgKHNpemUgIT0gTWVtUGFpck9wX0xvYWRT
aWduZWRfMzIpIHx8IChvcGMgPT0gTWVtT3BfTE9BRCkpOyAvLyBUaGVyZSBpc24ndCBhbiBpbnRl
Z2VyIHN0b3JlIHNpZ25lZC4KICAgICAgICAgdW5zaWduZWQgaW1tZWRTaGlmdEFtb3VudCA9IG1l
bVBhaXJPZmZzZXRTaGlmdChWLCBzaXplKTsKICAgICAgICAgaW50IGltbTcgPSBpbW1lZGlhdGUg
Pj4gaW1tZWRTaGlmdEFtb3VudDsKLSAgICAgICAgQVNTRVJUKChpbW03IDw8IGltbWVkU2hpZnRB
bW91bnQpID09IGltbWVkaWF0ZSAmJiBpc0ludDcoaW1tNykpOworICAgICAgICBBU1NFUlQoKGlt
bTcgPDwgaW1tZWRTaGlmdEFtb3VudCkgPT0gaW1tZWRpYXRlICYmIGlzSW50PDc+KGltbTcpKTsK
ICAgICAgICAgcmV0dXJuICgweDI4ODAwMDAwIHwgc2l6ZSA8PCAzMCB8IFYgPDwgMjYgfCBvcGMg
PDwgMjIgfCAoaW1tNyAmIDB4N2YpIDw8IDE1IHwgcnQyIDw8IDEwIHwgeE9yU3Aocm4pIDw8IDUg
fCBydCk7CiAgICAgfQogCkBAIC0zNTY4LDcgKzM1NzQsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAg
IEFTU0VSVChWIHx8IChzaXplICE9IE1lbVBhaXJPcF9Mb2FkU2lnbmVkXzMyKSB8fCAob3BjID09
IE1lbU9wX0xPQUQpKTsgLy8gVGhlcmUgaXNuJ3QgYW4gaW50ZWdlciBzdG9yZSBzaWduZWQuCiAg
ICAgICAgIHVuc2lnbmVkIGltbWVkU2hpZnRBbW91bnQgPSBtZW1QYWlyT2Zmc2V0U2hpZnQoViwg
c2l6ZSk7CiAgICAgICAgIGludCBpbW03ID0gaW1tZWRpYXRlID4+IGltbWVkU2hpZnRBbW91bnQ7
Ci0gICAgICAgIEFTU0VSVCgoaW1tNyA8PCBpbW1lZFNoaWZ0QW1vdW50KSA9PSBpbW1lZGlhdGUg
JiYgaXNJbnQ3KGltbTcpKTsKKyAgICAgICAgQVNTRVJUKChpbW03IDw8IGltbWVkU2hpZnRBbW91
bnQpID09IGltbWVkaWF0ZSAmJiBpc0ludDw3PihpbW03KSk7CiAgICAgICAgIHJldHVybiAoMHgy
OTgwMDAwMCB8IHNpemUgPDwgMzAgfCBWIDw8IDI2IHwgb3BjIDw8IDIyIHwgKGltbTcgJiAweDdm
KSA8PCAxNSB8IHJ0MiA8PCAxMCB8IHhPclNwKHJuKSA8PCA1IHwgcnQpOwogICAgIH0KIApAQCAt
MzU4NSw3ICszNTkxLDcgQEAgcHJvdGVjdGVkOgogICAgICAgICBBU1NFUlQoViB8fCAoc2l6ZSAh
PSBNZW1QYWlyT3BfTG9hZFNpZ25lZF8zMikgfHwgKG9wYyA9PSBNZW1PcF9MT0FEKSk7IC8vIFRo
ZXJlIGlzbid0IGFuIGludGVnZXIgc3RvcmUgc2lnbmVkLgogICAgICAgICB1bnNpZ25lZCBpbW1l
ZFNoaWZ0QW1vdW50ID0gbWVtUGFpck9mZnNldFNoaWZ0KFYsIHNpemUpOwogICAgICAgICBpbnQg
aW1tNyA9IGltbWVkaWF0ZSA+PiBpbW1lZFNoaWZ0QW1vdW50OwotICAgICAgICBBU1NFUlQoKGlt
bTcgPDwgaW1tZWRTaGlmdEFtb3VudCkgPT0gaW1tZWRpYXRlICYmIGlzSW50NyhpbW03KSk7Cisg
ICAgICAgIEFTU0VSVCgoaW1tNyA8PCBpbW1lZFNoaWZ0QW1vdW50KSA9PSBpbW1lZGlhdGUgJiYg
aXNJbnQ8Nz4oaW1tNykpOwogICAgICAgICByZXR1cm4gKDB4MjkwMDAwMDAgfCBzaXplIDw8IDMw
IHwgViA8PCAyNiB8IG9wYyA8PCAyMiB8IChpbW03ICYgMHg3ZikgPDwgMTUgfCBydDIgPDwgMTAg
fCB4T3JTcChybikgPDwgNSB8IHJ0KTsKICAgICB9CiAKQEAgLTM2MDIsNyArMzYwOCw3IEBAIHBy
b3RlY3RlZDoKICAgICAgICAgQVNTRVJUKFYgfHwgKHNpemUgIT0gTWVtUGFpck9wX0xvYWRTaWdu
ZWRfMzIpIHx8IChvcGMgPT0gTWVtT3BfTE9BRCkpOyAvLyBUaGVyZSBpc24ndCBhbiBpbnRlZ2Vy
IHN0b3JlIHNpZ25lZC4KICAgICAgICAgdW5zaWduZWQgaW1tZWRTaGlmdEFtb3VudCA9IG1lbVBh
aXJPZmZzZXRTaGlmdChWLCBzaXplKTsKICAgICAgICAgaW50IGltbTcgPSBpbW1lZGlhdGUgPj4g
aW1tZWRTaGlmdEFtb3VudDsKLSAgICAgICAgQVNTRVJUKChpbW03IDw8IGltbWVkU2hpZnRBbW91
bnQpID09IGltbWVkaWF0ZSAmJiBpc0ludDcoaW1tNykpOworICAgICAgICBBU1NFUlQoKGltbTcg
PDwgaW1tZWRTaGlmdEFtb3VudCkgPT0gaW1tZWRpYXRlICYmIGlzSW50PDc+KGltbTcpKTsKICAg
ICAgICAgcmV0dXJuICgweDI4MDAwMDAwIHwgc2l6ZSA8PCAzMCB8IFYgPDwgMjYgfCBvcGMgPDwg
MjIgfCAoaW1tNyAmIDB4N2YpIDw8IDE1IHwgcnQyIDw8IDEwIHwgeE9yU3Aocm4pIDw8IDUgfCBy
dCk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L0NQVS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9DUFUuaAppbmRleCBjMTZm
MGQ4NTBjM2Q4YjNlNmE2OTZjY2UwYTk2OGNjMzJjZDFhZTczLi42MTc5OTNmNGRkYmNmYWIxMmNk
MDJkYmVhOWIyYTYyZWI0ODFiMTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL0NQVS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQ1BV
LmgKQEAgLTI5LDYgKzI5LDE0IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCisjaWYgVVNFKEpTVkFM
VUU2NCkKK3VzaW5nIENQVVJlZ2lzdGVyID0gaW50NjRfdDsKK3VzaW5nIFVDUFVSZWdpc3RlciA9
IHVpbnQ2NF90OworI2Vsc2UKK3VzaW5nIENQVVJlZ2lzdGVyID0gaW50MzJfdDsKK3VzaW5nIFVD
UFVSZWdpc3RlciA9IHVpbnQzMl90OworI2VuZGlmCisKIGNvbnN0ZXhwciBib29sIGlzQVJNdjdJ
RElWU3VwcG9ydGVkKCkKIHsKICNpZiBIQVZFKEFSTV9JRElWX0lOU1RSVUNUSU9OUykKQEAgLTc5
LDYgKzg3LDE2IEBAIGNvbnN0ZXhwciBib29sIGlzMzJCaXQoKQogICAgIHJldHVybiAhaXM2NEJp
dCgpOwogfQogCitjb25zdGV4cHIgYm9vbCBpc0FkZHJlc3M2NEJpdCgpCit7CisgICAgcmV0dXJu
IHNpemVvZih2b2lkKikgPT0gODsKK30KKworY29uc3RleHByIGJvb2wgaXNBZGRyZXNzMzJCaXQo
KQoreworICAgIHJldHVybiAhaXNBZGRyZXNzNjRCaXQoKTsKK30KKwogY29uc3RleHByIGJvb2wg
aXNNSVBTKCkKIHsKICNpZiBDUFUoTUlQUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9h
c3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXIuaAppbmRleCBlODljYjE0NTQwYjJhZDRjZWIwMjJlY2My
NTVlZjg5OGRkZWVkNmY2Li5jZDFiNTQ1ODMyNTJhNjgwOWZkNTZmZjA5ZDhhZjM1ODZjZDU5NDA4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1i
bGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxl
ci5oCkBAIC0xMjcyLDcgKzEyNzIsNyBAQCBwdWJsaWM6CiAKICAgICAgICAgLy8gRmlyc3Qgb2Zm
IHdlJ2xsIHNwZWNpYWwgY2FzZSBjb21tb24sICJzYWZlIiB2YWx1ZXMgdG8gYXZvaWQgaHVydGlu
ZwogICAgICAgICAvLyBwZXJmb3JtYW5jZSB0b28gbXVjaAotICAgICAgICB1aW50cHRyX3QgdmFs
dWUgPSBpbW0uYXNUcnVzdGVkSW1tUHRyKCkuYXNJbnRwdHIoKTsKKyAgICAgICAgdWludDY0X3Qg
dmFsdWUgPSBpbW0uYXNUcnVzdGVkSW1tUHRyKCkuYXNJbnRwdHIoKTsKICAgICAgICAgc3dpdGNo
ICh2YWx1ZSkgewogICAgICAgICBjYXNlIDB4ZmZmZjoKICAgICAgICAgY2FzZSAweGZmZmZmZjoK
QEAgLTEyOTMsNyArMTI5Myw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKCFzaG91bGRDb25zaWRl
ckJsaW5kaW5nKCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgcmV0dXJu
IHNob3VsZEJsaW5kUG9pbnRlckZvclNwZWNpZmljQXJjaCh2YWx1ZSk7CisgICAgICAgIHJldHVy
biBzaG91bGRCbGluZFBvaW50ZXJGb3JTcGVjaWZpY0FyY2goc3RhdGljX2Nhc3Q8dWludHB0cl90
Pih2YWx1ZSkpOwogICAgIH0KIAogICAgIHVpbnQ4X3QgZ2VuZXJhdGVSb3RhdGlvblNlZWQoc2l6
ZV90IHdpZHRoSW5CaXRzKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5jcHAKaW5kZXggYzJiZTA4M2RhNzI2ZTUyM2U2ZDI1
MmZjNmNjNTcxMDc3YjQ1MmFjMi4uZWUxODJjZmI0MDJiYmYwM2U3YzI0N2IwMDI2YTI5YmIyNjlm
NWNkNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fz
c2VtYmxlckFSTTY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01h
Y3JvQXNzZW1ibGVyQVJNNjQuY3BwCkBAIC00OCw3ICs0OCwxMiBAQCB1c2luZyBuYW1lc3BhY2Ug
QVJNNjRSZWdpc3RlcnM7CiAKIC8vIFRoZSBmb2xsb3dpbmcgYXJlIG9mZnNldHMgZm9yIFByb2Jl
OjpTdGF0ZSBmaWVsZHMgYWNjZXNzZWQKIC8vIGJ5IHRoZSBjdGlNYXNtUHJvYmVUcmFtcG9saW5l
IHN0dWIuCisjaWYgQ1BVKEFERFJFU1M2NCkKICNkZWZpbmUgUFRSX1NJWkUgOAorI2Vsc2UKKyNk
ZWZpbmUgUFRSX1NJWkUgNAorI2VuZGlmCisKICNkZWZpbmUgUFJPQkVfUFJPQkVfRlVOQ1RJT05f
T0ZGU0VUICgwICogUFRSX1NJWkUpCiAjZGVmaW5lIFBST0JFX0FSR19PRkZTRVQgKDEgKiBQVFJf
U0laRSkKICNkZWZpbmUgUFJPQkVfSU5JVF9TVEFDS19GVU5DVElPTl9PRkZTRVQgKDIgKiBQVFJf
U0laRSkKQEAgLTEzMSw4ICsxMzYsOCBAQCB1c2luZyBuYW1lc3BhY2UgQVJNNjRSZWdpc3RlcnM7
CiAjZGVmaW5lIFBST0JFX0NQVV9RMzFfT0ZGU0VUIChQUk9CRV9GSVJTVF9GUFJFR19PRkZTRVQg
KyAoMzEgKiBGUFJFR19TSVpFKSkKICNkZWZpbmUgUFJPQkVfU0laRSAoUFJPQkVfRklSU1RfRlBS
RUdfT0ZGU0VUICsgKDMyICogRlBSRUdfU0laRSkpCiAKLSNkZWZpbmUgU0FWRURfUFJPQkVfUkVU
VVJOX1BDX09GRlNFVCAgICAgICAgKFBST0JFX1NJWkUgKyAoMCAqIFBUUl9TSVpFKSkKLSNkZWZp
bmUgUFJPQkVfU0laRV9QTFVTX0VYVFJBUyAgICAgICAgICAgICAgKFBST0JFX1NJWkUgKyAoMyAq
IFBUUl9TSVpFKSkKKyNkZWZpbmUgU0FWRURfUFJPQkVfUkVUVVJOX1BDX09GRlNFVCAgICAgICAg
KFBST0JFX1NJWkUgKyAoMCAqIEdQUkVHX1NJWkUpKQorI2RlZmluZSBQUk9CRV9TSVpFX1BMVVNf
RVhUUkFTICAgICAgICAgICAgICAoUFJPQkVfU0laRSArICgzICogR1BSRUdfU0laRSkpCiAKIC8v
IFRoZXNlIEFTU0VSVHMgcmVtaW5kIHlvdSB0aGF0IGlmIHlvdSBjaGFuZ2UgdGhlIGxheW91dCBv
ZiBQcm9iZTo6U3RhdGUsCiAvLyB5b3UgbmVlZCB0byBjaGFuZ2UgY3RpTWFzbVByb2JlVHJhbXBv
bGluZSBvZmZzZXRzIGFib3ZlIHRvIG1hdGNoLgpAQCAtMjIxLDcgKzIyNiw3IEBAIHN0YXRpY19h
c3NlcnQoUFJPQkVfT0ZGU0VUT0YoY3B1LmZwcnNbQVJNNjRSZWdpc3RlcnM6OnEzMV0pID09IFBS
T0JFX0NQVV9RMzFfT0ZGCiBzdGF0aWNfYXNzZXJ0KHNpemVvZihQcm9iZTo6U3RhdGUpID09IFBS
T0JFX1NJWkUsICJQcm9iZTo6U3RhdGUncyBzaXplIG1hdGNoZXMgY3RpTWFzbVByb2JlVHJhbXBv
bGluZSIpOwogCiAvLyBDb25kaXRpb25zIGZvciB1c2luZyBsZHAgYW5kIHN0cC4KLXN0YXRpY19h
c3NlcnQoUFJPQkVfQ1BVX1BDX09GRlNFVCA9PSBQUk9CRV9DUFVfU1BfT0ZGU0VUICsgUFRSX1NJ
WkUsICJQUk9CRV9DUFVfU1BfT0ZGU0VUIGFuZCBQUk9CRV9DUFVfUENfT0ZGU0VUIG11c3QgYmUg
YWRqYWNlbnQiKTsKK3N0YXRpY19hc3NlcnQoUFJPQkVfQ1BVX1BDX09GRlNFVCA9PSBQUk9CRV9D
UFVfU1BfT0ZGU0VUICsgR1BSRUdfU0laRSwgIlBST0JFX0NQVV9TUF9PRkZTRVQgYW5kIFBST0JF
X0NQVV9QQ19PRkZTRVQgbXVzdCBiZSBhZGphY2VudCIpOwogc3RhdGljX2Fzc2VydCghKFBST0JF
X1NJWkVfUExVU19FWFRSQVMgJiAweGYpLCAiUFJPQkVfU0laRV9QTFVTX0VYVFJBUyBzaG91bGQg
YmUgMTYgYnl0ZSBhbGlnbmVkIik7IC8vIHRoZSBQcm9iZTo6U3RhdGUgY29weWluZyBjb2RlIHJl
bGllcyBvbiB0aGlzLgogCiAjdW5kZWYgUFJPQkVfT0ZGU0VUT0YKQEAgLTIyOSwyMSArMjM0LDIx
IEBAIHN0YXRpY19hc3NlcnQoIShQUk9CRV9TSVpFX1BMVVNfRVhUUkFTICYgMHhmKSwgIlBST0JF
X1NJWkVfUExVU19FWFRSQVMgc2hvdWxkIGJlCiAjZGVmaW5lIEZQUl9PRkZTRVQoZnByKSAoUFJP
QkVfQ1BVXyMjZnByIyNfT0ZGU0VUIC0gUFJPQkVfQ1BVX1EwX09GRlNFVCkKIAogc3RydWN0IElu
Y29taW5nUHJvYmVSZWNvcmQgewotICAgIHVpbnRwdHJfdCB4MjQ7Ci0gICAgdWludHB0cl90IHgy
NTsKLSAgICB1aW50cHRyX3QgeDI2OwotICAgIHVpbnRwdHJfdCB4Mjc7Ci0gICAgdWludHB0cl90
IHgyODsKLSAgICB1aW50cHRyX3QgeDMwOyAvLyBscgorICAgIFVDUFVSZWdpc3RlciB4MjQ7Cisg
ICAgVUNQVVJlZ2lzdGVyIHgyNTsKKyAgICBVQ1BVUmVnaXN0ZXIgeDI2OworICAgIFVDUFVSZWdp
c3RlciB4Mjc7CisgICAgVUNQVVJlZ2lzdGVyIHgyODsKKyAgICBVQ1BVUmVnaXN0ZXIgeDMwOyAv
LyBscgogfTsKIAotI2RlZmluZSBJTl9YMjRfT0ZGU0VUICgwICogUFRSX1NJWkUpCi0jZGVmaW5l
IElOX1gyNV9PRkZTRVQgKDEgKiBQVFJfU0laRSkKLSNkZWZpbmUgSU5fWDI2X09GRlNFVCAoMiAq
IFBUUl9TSVpFKQotI2RlZmluZSBJTl9YMjdfT0ZGU0VUICgzICogUFRSX1NJWkUpCi0jZGVmaW5l
IElOX1gyOF9PRkZTRVQgKDQgKiBQVFJfU0laRSkKLSNkZWZpbmUgSU5fWDMwX09GRlNFVCAoNSAq
IFBUUl9TSVpFKQotI2RlZmluZSBJTl9TSVpFICAgICAgICg2ICogUFRSX1NJWkUpCisjZGVmaW5l
IElOX1gyNF9PRkZTRVQgKDAgKiBHUFJFR19TSVpFKQorI2RlZmluZSBJTl9YMjVfT0ZGU0VUICgx
ICogR1BSRUdfU0laRSkKKyNkZWZpbmUgSU5fWDI2X09GRlNFVCAoMiAqIEdQUkVHX1NJWkUpCisj
ZGVmaW5lIElOX1gyN19PRkZTRVQgKDMgKiBHUFJFR19TSVpFKQorI2RlZmluZSBJTl9YMjhfT0ZG
U0VUICg0ICogR1BSRUdfU0laRSkKKyNkZWZpbmUgSU5fWDMwX09GRlNFVCAoNSAqIEdQUkVHX1NJ
WkUpCisjZGVmaW5lIElOX1NJWkUgICAgICAgKDYgKiBHUFJFR19TSVpFKQogCiBzdGF0aWNfYXNz
ZXJ0KElOX1gyNF9PRkZTRVQgPT0gb2Zmc2V0b2YoSW5jb21pbmdQcm9iZVJlY29yZCwgeDI0KSwg
IklOX1gyNF9PRkZTRVQgaXMgaW5jb3JyZWN0Iik7CiBzdGF0aWNfYXNzZXJ0KElOX1gyNV9PRkZT
RVQgPT0gb2Zmc2V0b2YoSW5jb21pbmdQcm9iZVJlY29yZCwgeDI1KSwgIklOX1gyNV9PRkZTRVQg
aXMgaW5jb3JyZWN0Iik7CkBAIC0yNTUsMjEgKzI2MCwyMSBAQCBzdGF0aWNfYXNzZXJ0KElOX1NJ
WkUgPT0gc2l6ZW9mKEluY29taW5nUHJvYmVSZWNvcmQpLCAiSU5fU0laRSBpcyBpbmNvcnJlY3Qi
KTsKIHN0YXRpY19hc3NlcnQoIShzaXplb2YoSW5jb21pbmdQcm9iZVJlY29yZCkgJiAweGYpLCAi
SW5jb21pbmdQcm9iZVN0YWNrIG11c3QgYmUgMTYtYnl0ZSBhbGlnbmVkIik7CiAKIHN0cnVjdCBP
dXRnb2luZ1Byb2JlUmVjb3JkIHsKLSAgICB1aW50cHRyX3QgbnpjdjsKLSAgICB1aW50cHRyX3Qg
ZnBzcjsKLSAgICB1aW50cHRyX3QgeDI3OwotICAgIHVpbnRwdHJfdCB4Mjg7Ci0gICAgdWludHB0
cl90IGZwOwotICAgIHVpbnRwdHJfdCBscjsKKyAgICBVQ1BVUmVnaXN0ZXIgbnpjdjsKKyAgICBV
Q1BVUmVnaXN0ZXIgZnBzcjsKKyAgICBVQ1BVUmVnaXN0ZXIgeDI3OworICAgIFVDUFVSZWdpc3Rl
ciB4Mjg7CisgICAgVUNQVVJlZ2lzdGVyIGZwOworICAgIFVDUFVSZWdpc3RlciBscjsKIH07CiAK
LSNkZWZpbmUgT1VUX05aQ1ZfT0ZGU0VUICgwICogUFRSX1NJWkUpCi0jZGVmaW5lIE9VVF9GUFNS
X09GRlNFVCAoMSAqIFBUUl9TSVpFKQotI2RlZmluZSBPVVRfWDI3X09GRlNFVCAgKDIgKiBQVFJf
U0laRSkKLSNkZWZpbmUgT1VUX1gyOF9PRkZTRVQgICgzICogUFRSX1NJWkUpCi0jZGVmaW5lIE9V
VF9GUF9PRkZTRVQgICAoNCAqIFBUUl9TSVpFKQotI2RlZmluZSBPVVRfTFJfT0ZGU0VUICAgKDUg
KiBQVFJfU0laRSkKLSNkZWZpbmUgT1VUX1NJWkUgICAgICAgICg2ICogUFRSX1NJWkUpCisjZGVm
aW5lIE9VVF9OWkNWX09GRlNFVCAoMCAqIEdQUkVHX1NJWkUpCisjZGVmaW5lIE9VVF9GUFNSX09G
RlNFVCAoMSAqIEdQUkVHX1NJWkUpCisjZGVmaW5lIE9VVF9YMjdfT0ZGU0VUICAoMiAqIEdQUkVH
X1NJWkUpCisjZGVmaW5lIE9VVF9YMjhfT0ZGU0VUICAoMyAqIEdQUkVHX1NJWkUpCisjZGVmaW5l
IE9VVF9GUF9PRkZTRVQgICAoNCAqIEdQUkVHX1NJWkUpCisjZGVmaW5lIE9VVF9MUl9PRkZTRVQg
ICAoNSAqIEdQUkVHX1NJWkUpCisjZGVmaW5lIE9VVF9TSVpFICAgICAgICAoNiAqIEdQUkVHX1NJ
WkUpCiAKIHN0YXRpY19hc3NlcnQoT1VUX05aQ1ZfT0ZGU0VUID09IG9mZnNldG9mKE91dGdvaW5n
UHJvYmVSZWNvcmQsIG56Y3YpLCAiT1VUX05aQ1ZfT0ZGU0VUIGlzIGluY29ycmVjdCIpOwogc3Rh
dGljX2Fzc2VydChPVVRfRlBTUl9PRkZTRVQgPT0gb2Zmc2V0b2YoT3V0Z29pbmdQcm9iZVJlY29y
ZCwgZnBzciksICJPVVRfRlBTUl9PRkZTRVQgaXMgaW5jb3JyZWN0Iik7CkBAIC0yODEsMTIgKzI4
NiwxMiBAQCBzdGF0aWNfYXNzZXJ0KE9VVF9TSVpFID09IHNpemVvZihPdXRnb2luZ1Byb2JlUmVj
b3JkKSwgIk9VVF9TSVpFIGlzIGluY29ycmVjdCIpOwogc3RhdGljX2Fzc2VydCghKHNpemVvZihP
dXRnb2luZ1Byb2JlUmVjb3JkKSAmIDB4ZiksICJPdXRnb2luZ1Byb2JlU3RhY2sgbXVzdCBiZSAx
Ni1ieXRlIGFsaWduZWQiKTsKIAogc3RydWN0IExSUmVzdG9yYXRpb25SZWNvcmQgewotICAgIHVp
bnRwdHJfdCBscjsKLSAgICB1aW50cHRyX3QgdW51c2VkRHVtbXlUb0Vuc3VyZVNpemVJczE2Qnl0
ZUFsaWduZWQ7CisgICAgVUNQVVJlZ2lzdGVyIGxyOworICAgIFVDUFVSZWdpc3RlciB1bnVzZWRE
dW1teVRvRW5zdXJlU2l6ZUlzMTZCeXRlQWxpZ25lZDsKIH07CiAKLSNkZWZpbmUgTFJfUkVTVE9S
QVRJT05fTFJfT0ZGU0VUICgwICogUFRSX1NJWkUpCi0jZGVmaW5lIExSX1JFU1RPUkFUSU9OX1NJ
WkUgICAgICAoMiAqIFBUUl9TSVpFKQorI2RlZmluZSBMUl9SRVNUT1JBVElPTl9MUl9PRkZTRVQg
KDAgKiBHUFJFR19TSVpFKQorI2RlZmluZSBMUl9SRVNUT1JBVElPTl9TSVpFICAgICAgKDIgKiBH
UFJFR19TSVpFKQogCiBzdGF0aWNfYXNzZXJ0KExSX1JFU1RPUkFUSU9OX0xSX09GRlNFVCA9PSBv
ZmZzZXRvZihMUlJlc3RvcmF0aW9uUmVjb3JkLCBsciksICJMUl9SRVNUT1JBVElPTl9MUl9PRkZT
RVQgaXMgaW5jb3JyZWN0Iik7CiBzdGF0aWNfYXNzZXJ0KExSX1JFU1RPUkFUSU9OX1NJWkUgPT0g
c2l6ZW9mKExSUmVzdG9yYXRpb25SZWNvcmQpLCAiTFJfUkVTVE9SQVRJT05fU0laRSBpcyBpbmNv
cnJlY3QiKTsKQEAgLTM0OCw3ICszNTMsNyBAQCBhc20gKAogCiAgICAgInN0ciAgICAgICB4MzAs
IFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFNBVkVEX1BST0JFX1JFVFVSTl9QQ19PRkZTRVQp
ICJdIiAiXG4iIC8vIFNhdmUgYSBkdXBsaWNhdGUgY29weSBvZiByZXR1cm4gcGMgKGluIGxyKS4K
IAotICAgICJhZGQgICAgICAgeDMwLCB4MzAsICMiIFNUUklOR0laRV9WQUxVRV9PRigyICogUFRS
X1NJWkUpICJcbiIgLy8gVGhlIFBDIGFmdGVyIHRoZSBwcm9iZSBpcyBhdCAyIGluc3RydWN0aW9u
cyBwYXN0IHRoZSByZXR1cm4gcG9pbnQuCisgICAgImFkZCAgICAgICB4MzAsIHgzMCwgIyIgU1RS
SU5HSVpFX1ZBTFVFX09GKDIgKiBHUFJFR19TSVpFKSAiXG4iIC8vIFRoZSBQQyBhZnRlciB0aGUg
cHJvYmUgaXMgYXQgMiBpbnN0cnVjdGlvbnMgcGFzdCB0aGUgcmV0dXJuIHBvaW50LgogICAgICJz
dHIgICAgICAgeDMwLCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfUENfT0ZG
U0VUKSAiXSIgIlxuIgogCiAgICAgInN0cCAgICAgICB4MCwgeDEsIFtzcCwgIyIgU1RSSU5HSVpF
X1ZBTFVFX09GKFBST0JFX0NQVV9OWkNWX09GRlNFVCkgIl0iICJcbiIgLy8gU3RvcmUgbnpjdiBh
bmQgZnBzciAocHJlbG9hZGVkIGludG8geDAgYW5kIHgxIGFib3ZlKS4KQEAgLTQ3Miw3ICs0Nzcs
NyBAQCBhc20gKAogICAgICJsZHIgICAgICAgeDMwLCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9P
RihQUk9CRV9DUFVfU1BfT0ZGU0VUKSAiXSIgIlxuIiAvLyBwcmVsb2FkIHRoZSB0YXJnZXQgc3Au
CiAgICAgImxkciAgICAgICB4MjcsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFNBVkVEX1BS
T0JFX1JFVFVSTl9QQ19PRkZTRVQpICJdIiAiXG4iCiAgICAgImxkciAgICAgICB4MjgsIFtzcCwg
IyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9QQ19PRkZTRVQpICJdIiAiXG4iCi0gICAg
ImFkZCAgICAgICB4MjcsIHgyNywgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKDIgKiBQVFJfU0laRSkg
IlxuIgorICAgICJhZGQgICAgICAgeDI3LCB4MjcsICMiIFNUUklOR0laRV9WQUxVRV9PRigyICog
R1BSRUdfU0laRSkgIlxuIgogICAgICJjbXAgICAgICAgeDI3LCB4MjgiICJcbiIKICAgICAiYm5l
ICAgICAiIExPQ0FMX0xBQkVMX1NUUklORyhjdGlNYXNtUHJvYmVUcmFtcG9saW5lRW5kKSAiXG4i
CiAKQEAgLTUwMiwxMSArNTA3LDExIEBAIGFzbSAoCiAgICAgIm1vdiAgICAgICBzcCwgeDMwIiAi
XG4iCiAKICAgICAvLyBSZXN0b3JlIHRoZSByZW1haW5pbmcgcmVnaXN0ZXJzIGFuZCBwb3AgdGhl
IE91dGdvaW5nUHJvYmVSZWNvcmQuCi0gICAgImxkcCAgICAgICB4MjcsIHgyOCwgW3NwXSwgIyIg
U1RSSU5HSVpFX1ZBTFVFX09GKDIgKiBQVFJfU0laRSkgIlxuIgorICAgICJsZHAgICAgICAgeDI3
LCB4MjgsIFtzcF0sICMiIFNUUklOR0laRV9WQUxVRV9PRigyICogR1BSRUdfU0laRSkgIlxuIgog
ICAgICJtc3IgICAgICAgbnpjdiwgeDI3IiAiXG4iCiAgICAgIm1zciAgICAgICBmcHNyLCB4Mjgi
ICJcbiIKLSAgICAibGRwICAgICAgIHgyNywgeDI4LCBbc3BdLCAjIiBTVFJJTkdJWkVfVkFMVUVf
T0YoMiAqIFBUUl9TSVpFKSAiXG4iCi0gICAgImxkcCAgICAgICB4MjksIHgzMCwgW3NwXSwgIyIg
U1RSSU5HSVpFX1ZBTFVFX09GKDIgKiBQVFJfU0laRSkgIlxuIgorICAgICJsZHAgICAgICAgeDI3
LCB4MjgsIFtzcF0sICMiIFNUUklOR0laRV9WQUxVRV9PRigyICogR1BSRUdfU0laRSkgIlxuIgor
ICAgICJsZHAgICAgICAgeDI5LCB4MzAsIFtzcF0sICMiIFNUUklOR0laRV9WQUxVRV9PRigyICog
R1BSRUdfU0laRSkgIlxuIgogICAgICJyZXQiICJcbiIKICk7CiAjZW5kaWYgLy8gQ09NUElMRVIo
R0NDX0NPTVBBVElCTEUpCkBAIC01NDQsNyArNTQ5LDcgQEAgdm9pZCBNYWNyb0Fzc2VtYmxlckFS
TTY0Ojpjb2xsZWN0Q1BVRmVhdHVyZXMoKQogICAgICAgICAvLyBpcyBzaGlwcGVkIGFuZCBpbXBs
ZW1lbnRlZCBpbiBzb21lIENQVXMuIEluIHRoYXQgY2FzZSwgZXZlbiBpZiB0aGUgQ1BVIGhhcwog
ICAgICAgICAvLyB0aGF0IGZlYXR1cmUsIHRoZSBrZXJuZWwgZG9lcyBub3QgdGVsbCBpdCB0byB1
c2Vycy4pLCBpdCBpcyBhIHN0YWJsZSBhcHByb2FjaC4KICAgICAgICAgLy8gaHR0cHM6Ly93d3cu
a2VybmVsLm9yZy9kb2MvRG9jdW1lbnRhdGlvbi9hcm02NC9lbGZfaHdjYXBzLnR4dAotICAgICAg
ICB1bnNpZ25lZCBsb25nIGh3Y2FwcyA9IGdldGF1eHZhbChBVF9IV0NBUCk7CisgICAgICAgIHVp
bnQ2NF90IGh3Y2FwcyA9IGdldGF1eHZhbChBVF9IV0NBUCk7CiAKICNpZiAhZGVmaW5lZChIV0NB
UF9KU0NWVCkKICNkZWZpbmUgSFdDQVBfSlNDVlQgKDEgPDwgMTMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oCmluZGV4IDJi
MjFkNjg1MTFkZDYyZDgxNWJlMDY4M2IwYWUyNThkOTFlMTVkNDguLjI0ZTIzNTNiMjkxMGJlZDIy
MzZjMDhlYjA4ZGM5NDcwYWZiZmRkZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oCkBAIC01Myw5ICs1Myw5IEBAIHB1
YmxpYzoKIHByb3RlY3RlZDoKICAgICBzdGF0aWMgY29uc3QgQVJNNjRSZWdpc3RlcnM6OkZQUmVn
aXN0ZXJJRCBmcFRlbXBSZWdpc3RlciA9IEFSTTY0UmVnaXN0ZXJzOjpxMzE7CiAgICAgc3RhdGlj
IGNvbnN0IEFzc2VtYmxlcjo6U2V0RmxhZ3MgUyA9IEFzc2VtYmxlcjo6UzsKLSAgICBzdGF0aWMg
Y29uc3QgaW50cHRyX3QgbWFza0hhbGZXb3JkMCA9IDB4ZmZmZmw7Ci0gICAgc3RhdGljIGNvbnN0
IGludHB0cl90IG1hc2tIYWxmV29yZDEgPSAweGZmZmYwMDAwbDsKLSAgICBzdGF0aWMgY29uc3Qg
aW50cHRyX3QgbWFza1VwcGVyV29yZCA9IDB4ZmZmZmZmZmYwMDAwMDAwMGw7CisgICAgc3RhdGlj
IGNvbnN0IGludDY0X3QgbWFza0hhbGZXb3JkMCA9IDB4ZmZmZmw7CisgICAgc3RhdGljIGNvbnN0
IGludDY0X3QgbWFza0hhbGZXb3JkMSA9IDB4ZmZmZjAwMDBsOworICAgIHN0YXRpYyBjb25zdCBp
bnQ2NF90IG1hc2tVcHBlcldvcmQgPSAweGZmZmZmZmZmMDAwMDAwMDBsOwogCiAgICAgc3RhdGlj
IGNvbnN0ZXhwciBzaXplX3QgSU5TVFJVQ1RJT05fU0laRSA9IDQ7CiAKQEAgLTM5OTIsMTEgKzM5
OTIsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIHJldHVybiBtX2NhY2hlZE1lbW9yeVRlbXBSZWdp
c3RlcjsKICAgICB9CiAKLSAgICBBTFdBWVNfSU5MSU5FIGJvb2wgaXNJbkludFJhbmdlKGludHB0
cl90IHZhbHVlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHZhbHVlID09ICgodmFsdWUgPDwgMzIp
ID4+IDMyKTsKLSAgICB9Ci0KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBJbW1lZGlhdGVUeXBlLCB0
eXBlbmFtZSByYXdUeXBlPgogICAgIHZvaWQgbW92ZUludGVybmFsKEltbWVkaWF0ZVR5cGUgaW1t
LCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewpAQCAtNDEzMSw3ICs0MTI2LDcgQEAgcHJvdGVjdGVk
OgogICAgICAgICAgICAgaWYgKGRlc3QgPT0gbWVtb3J5VGVtcFJlZ2lzdGVyKQogICAgICAgICAg
ICAgICAgIGNhY2hlZE1lbW9yeVRlbXBSZWdpc3RlcigpLmludmFsaWRhdGUoKTsKIAotICAgICAg
ICAgICAgaWYgKGlzSW5JbnRSYW5nZShhZGRyZXNzRGVsdGEpKSB7CisgICAgICAgICAgICBpZiAo
aXNJbnQ8MzI+KGFkZHJlc3NEZWx0YSkpIHsKICAgICAgICAgICAgICAgICBpZiAoQXNzZW1ibGVy
OjpjYW5FbmNvZGVTSW1tT2Zmc2V0KGFkZHJlc3NEZWx0YSkpIHsKICAgICAgICAgICAgICAgICAg
ICAgbV9hc3NlbWJsZXIubGR1cjxkYXRhc2l6ZT4oZGVzdCwgIG1lbW9yeVRlbXBSZWdpc3Rlciwg
YWRkcmVzc0RlbHRhKTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwpAQCAtNDE2OCw3ICs0
MTYzLDcgQEAgcHJvdGVjdGVkOgogICAgICAgICAgICAgaW50cHRyX3QgYWRkcmVzc0FzSW50ID0g
cmVpbnRlcnByZXRfY2FzdDxpbnRwdHJfdD4oYWRkcmVzcyk7CiAgICAgICAgICAgICBpbnRwdHJf
dCBhZGRyZXNzRGVsdGEgPSBhZGRyZXNzQXNJbnQgLSBjdXJyZW50UmVnaXN0ZXJDb250ZW50czsK
IAotICAgICAgICAgICAgaWYgKGlzSW5JbnRSYW5nZShhZGRyZXNzRGVsdGEpKSB7CisgICAgICAg
ICAgICBpZiAoaXNJbnQ8MzI+KGFkZHJlc3NEZWx0YSkpIHsKICAgICAgICAgICAgICAgICBpZiAo
QXNzZW1ibGVyOjpjYW5FbmNvZGVTSW1tT2Zmc2V0KGFkZHJlc3NEZWx0YSkpIHsKICAgICAgICAg
ICAgICAgICAgICAgbV9hc3NlbWJsZXIuc3R1cjxkYXRhc2l6ZT4oc3JjLCBtZW1vcnlUZW1wUmVn
aXN0ZXIsIGFkZHJlc3NEZWx0YSk7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvUHJpbnRlci5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9QcmludGVyLmgKaW5kZXggNjQxZGVhZTVhYzNiNjQ1
MjBjMjQzODY4MmRiMDNmMmVlYWU4MDUwNi4uNmQ0NmNkOWU5ZjI0MGU0MjA4ZTg5YTQ2Y2RlMGFi
YzI1YjFmMjk5NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9Q
cmludGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9QcmludGVyLmgK
QEAgLTc5LDkgKzc5LDkgQEAgdW5pb24gRGF0YSB7CiAgICAgdWludHB0cl90IHZhbHVlOwogICAg
IGNvbnN0IHZvaWQqIHBvaW50ZXI7CiAjaWYgVVNFKEpTVkFMVUU2NCkKLSAgICB1aW50cHRyX3Qg
YnVmZmVyWzRdOworICAgIFVDUFVSZWdpc3RlciBidWZmZXJbNF07CiAjZWxpZiBVU0UoSlNWQUxV
RTMyXzY0KQotICAgIHVpbnRwdHJfdCBidWZmZXJbNl07CisgICAgVUNQVVJlZ2lzdGVyIGJ1ZmZl
cls2XTsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9Qcm9iZUNvbnRleHQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
UHJvYmVDb250ZXh0LmgKaW5kZXggOTMyZWFlMjYyZDY4MGIzYTU5NDg5YjYxOTc4MzczODk0ZmQ2
YWMxYS4uNGVlNmVlYThlNzNiOTEyYmFlNmFkZTAwYzliYjhiM2Q4MmE4MTIwYyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9Qcm9iZUNvbnRleHQuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL1Byb2JlQ29udGV4dC5oCkBAIC00MSw4ICs0
MSw4IEBAIHN0cnVjdCBDUFVTdGF0ZSB7CiAgICAgc3RhdGljIGlubGluZSBjb25zdCBjaGFyKiBn
cHJOYW1lKFJlZ2lzdGVySUQgaWQpIHsgcmV0dXJuIE1hY3JvQXNzZW1ibGVyOjpncHJOYW1lKGlk
KTsgfQogICAgIHN0YXRpYyBpbmxpbmUgY29uc3QgY2hhciogc3ByTmFtZShTUFJlZ2lzdGVySUQg
aWQpIHsgcmV0dXJuIE1hY3JvQXNzZW1ibGVyOjpzcHJOYW1lKGlkKTsgfQogICAgIHN0YXRpYyBp
bmxpbmUgY29uc3QgY2hhciogZnByTmFtZShGUFJlZ2lzdGVySUQgaWQpIHsgcmV0dXJuIE1hY3Jv
QXNzZW1ibGVyOjpmcHJOYW1lKGlkKTsgfQotICAgIGlubGluZSB1aW50cHRyX3QmIGdwcihSZWdp
c3RlcklEKTsKLSAgICBpbmxpbmUgdWludHB0cl90JiBzcHIoU1BSZWdpc3RlcklEKTsKKyAgICBp
bmxpbmUgVUNQVVJlZ2lzdGVyJiBncHIoUmVnaXN0ZXJJRCk7CisgICAgaW5saW5lIFVDUFVSZWdp
c3RlciYgc3ByKFNQUmVnaXN0ZXJJRCk7CiAgICAgaW5saW5lIGRvdWJsZSYgZnByKEZQUmVnaXN0
ZXJJRCk7CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBUIGdwcihSZWdpc3RlcklEKSBjb25z
dDsKQEAgLTU2LDE4ICs1NiwxOCBAQCBzdHJ1Y3QgQ1BVU3RhdGUgewogICAgIHRlbXBsYXRlPHR5
cGVuYW1lIFQ+IFQgZnAoKSBjb25zdDsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBUIHNwKCkg
Y29uc3Q7CiAKLSAgICB1aW50cHRyX3QgZ3Byc1tNYWNyb0Fzc2VtYmxlcjo6bnVtYmVyT2ZSZWdp
c3RlcnMoKV07Ci0gICAgdWludHB0cl90IHNwcnNbTWFjcm9Bc3NlbWJsZXI6Om51bWJlck9mU1BS
ZWdpc3RlcnMoKV07CisgICAgVUNQVVJlZ2lzdGVyIGdwcnNbTWFjcm9Bc3NlbWJsZXI6Om51bWJl
ck9mUmVnaXN0ZXJzKCldOworICAgIFVDUFVSZWdpc3RlciBzcHJzW01hY3JvQXNzZW1ibGVyOjpu
dW1iZXJPZlNQUmVnaXN0ZXJzKCldOwogICAgIGRvdWJsZSBmcHJzW01hY3JvQXNzZW1ibGVyOjpu
dW1iZXJPZkZQUmVnaXN0ZXJzKCldOwogfTsKIAotaW5saW5lIHVpbnRwdHJfdCYgQ1BVU3RhdGU6
OmdwcihSZWdpc3RlcklEIGlkKQoraW5saW5lIFVDUFVSZWdpc3RlciYgQ1BVU3RhdGU6OmdwcihS
ZWdpc3RlcklEIGlkKQogewogICAgIEFTU0VSVChpZCA+PSBNYWNyb0Fzc2VtYmxlcjo6Zmlyc3RS
ZWdpc3RlcigpICYmIGlkIDw9IE1hY3JvQXNzZW1ibGVyOjpsYXN0UmVnaXN0ZXIoKSk7CiAgICAg
cmV0dXJuIGdwcnNbaWRdOwogfQogCi1pbmxpbmUgdWludHB0cl90JiBDUFVTdGF0ZTo6c3ByKFNQ
UmVnaXN0ZXJJRCBpZCkKK2lubGluZSBVQ1BVUmVnaXN0ZXImIENQVVN0YXRlOjpzcHIoU1BSZWdp
c3RlcklEIGlkKQogewogICAgIEFTU0VSVChpZCA+PSBNYWNyb0Fzc2VtYmxlcjo6Zmlyc3RTUFJl
Z2lzdGVyKCkgJiYgaWQgPD0gTWFjcm9Bc3NlbWJsZXI6Omxhc3RTUFJlZ2lzdGVyKCkpOwogICAg
IHJldHVybiBzcHJzW2lkXTsKQEAgLTE5OCw4ICsxOTgsOCBAQCBwdWJsaWM6CiAgICAgdGVtcGxh
dGU8dHlwZW5hbWUgVD4KICAgICBUIGFyZygpIHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8VD4o
bV9zdGF0ZS0+YXJnKTsgfQogCi0gICAgdWludHB0cl90JiBncHIoUmVnaXN0ZXJJRCBpZCkgeyBy
ZXR1cm4gY3B1LmdwcihpZCk7IH0KLSAgICB1aW50cHRyX3QmIHNwcihTUFJlZ2lzdGVySUQgaWQp
IHsgcmV0dXJuIGNwdS5zcHIoaWQpOyB9CisgICAgVUNQVVJlZ2lzdGVyJiBncHIoUmVnaXN0ZXJJ
RCBpZCkgeyByZXR1cm4gY3B1LmdwcihpZCk7IH0KKyAgICBVQ1BVUmVnaXN0ZXImIHNwcihTUFJl
Z2lzdGVySUQgaWQpIHsgcmV0dXJuIGNwdS5zcHIoaWQpOyB9CiAgICAgZG91YmxlJiBmcHIoRlBS
ZWdpc3RlcklEIGlkKSB7IHJldHVybiBjcHUuZnByKGlkKTsgfQogICAgIGNvbnN0IGNoYXIqIGdw
ck5hbWUoUmVnaXN0ZXJJRCBpZCkgeyByZXR1cm4gY3B1Lmdwck5hbWUoaWQpOyB9CiAgICAgY29u
c3QgY2hhciogc3ByTmFtZShTUFJlZ2lzdGVySUQgaWQpIHsgcmV0dXJuIGNwdS5zcHJOYW1lKGlk
KTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29uc3RQdHJWYWx1
ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29uc3RQdHJWYWx1ZS5oCmluZGV4IDc4
YmNiYTM5YmRmZjE2NDczNTQ4ODMyOWZhZGY2NDdlNzg5MmMzNjguLjljOTkzZmMyM2Q0NTQ3NTJj
ZTY2ZjQ5OWMzODhmNjNkM2QyMzQ5YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM0NvbnN0UHRyVmFsdWUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjND
b25zdFB0clZhbHVlLmgKQEAgLTM2LDcgKzM2LDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFj
ZSBCMyB7CiAvLyBwbGF0Zm9ybS1hZ25vc3RpYyBjb2RlLiBOb3RlIHRoYXQgYSBDb25zdFB0clZh
bHVlIHdpbGwgYmVoYXZlIGxpa2UgZWl0aGVyIGEgQ29uc3QzMlZhbHVlIG9yCiAvLyBDb25zdDY0
VmFsdWUgZGVwZW5kaW5nIG9uIHBsYXRmb3JtLgogCi0jaWYgVVNFKEpTVkFMVUU2NCkKKyNpZiBD
UFUoQUREUkVTUzY0KQogdHlwZWRlZiBDb25zdDY0VmFsdWUgQ29uc3RQdHJWYWx1ZUJhc2U7CiAj
ZWxzZQogdHlwZWRlZiBDb25zdDMyVmFsdWUgQ29uc3RQdHJWYWx1ZUJhc2U7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTdGFja21hcFNwZWNpYWwuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzU3RhY2ttYXBTcGVjaWFsLmNwcAppbmRleCA2MjBkNmY4M2Mz
YmE4MjQ1MmUzMDMzMjdkZjM0OWUxMWNmMjM0NGFmLi5jZmQxYTFlNDJkNGRkNGE2YWY0OWUzOTMx
Njg2MDY4NmI3MTJlMmJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNT
dGFja21hcFNwZWNpYWwuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N0YWNr
bWFwU3BlY2lhbC5jcHAKQEAgLTI2Myw3ICsyNjMsNyBAQCBib29sIFN0YWNrbWFwU3BlY2lhbDo6
aXNBcmdWYWxpZEZvclJlcChBaXI6OkNvZGUmIGNvZGUsIGNvbnN0IEFpcjo6QXJnJiBhcmcsIGNv
bgogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGlmICgoYXJnLmlzQWRkcigpIHx8
IGFyZy5pc0V4dGVuZGVkT2Zmc2V0QWRkcigpKSAmJiBjb2RlLmZyYW1lU2l6ZSgpKSB7CiAgICAg
ICAgICAgICBpZiAoYXJnLmJhc2UoKSA9PSBUbXAoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIp
Ci0gICAgICAgICAgICAgICAgJiYgYXJnLm9mZnNldCgpID09IHJlcC5vZmZzZXRGcm9tU1AoKSAt
IGNvZGUuZnJhbWVTaXplKCkpCisgICAgICAgICAgICAgICAgJiYgYXJnLm9mZnNldCgpID09IHN0
YXRpY19jYXN0PGludDY0X3Q+KHJlcC5vZmZzZXRGcm9tU1AoKSkgLSBjb2RlLmZyYW1lU2l6ZSgp
KQogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgaWYgKGFyZy5iYXNl
KCkgPT0gVG1wKE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3RlcikKICAgICAgICAg
ICAgICAgICAmJiBhcmcub2Zmc2V0KCkgPT0gcmVwLm9mZnNldEZyb21TUCgpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9haXIvQWlyQXJnLmgKaW5kZXggY2QyMTYyZGRmYjlhZjllMWRiNWUwOGUwYjc0
ZTBlOTBjNGE2MzJhNy4uOTY0NTQ4YmVkZWQ1NDc0ZTA1MjA2N2VmMTM1MGY5OGM1NGEyNWI3MCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZy5oCkBAIC05NzMsNyArOTczLDcgQEAg
cHVibGljOgogICAgIFN0YWNrU2xvdCogc3RhY2tTbG90KCkgY29uc3QKICAgICB7CiAgICAgICAg
IEFTU0VSVChraW5kKCkgPT0gU3RhY2spOwotICAgICAgICByZXR1cm4gYml0d2lzZV9jYXN0PFN0
YWNrU2xvdCo+KG1fb2Zmc2V0KTsKKyAgICAgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxTdGFja1Ns
b3QqPihzdGF0aWNfY2FzdDx1aW50cHRyX3Q+KG1fb2Zmc2V0KSk7CiAgICAgfQogCiAgICAgQWly
OjpUbXAgaW5kZXgoKSBjb25zdApAQCAtOTk2LDcgKzk5Niw3IEBAIHB1YmxpYzoKICAgICBBaXI6
OlNwZWNpYWwqIHNwZWNpYWwoKSBjb25zdAogICAgIHsKICAgICAgICAgQVNTRVJUKGtpbmQoKSA9
PSBTcGVjaWFsKTsKLSAgICAgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxBaXI6OlNwZWNpYWwqPiht
X29mZnNldCk7CisgICAgICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8QWlyOjpTcGVjaWFsKj4oc3Rh
dGljX2Nhc3Q8dWludHB0cl90PihtX29mZnNldCkpOwogICAgIH0KIAogICAgIFdpZHRoIHdpZHRo
KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvdGVzdGFp
ci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL3Rlc3RhaXIuY3BwCmluZGV4IDA4
YjYzOTMwMThlYjFmYjg3OTk0MDk1NDliMGY4MWVlMGJlZmIwNzAuLjkxMjE5NGYwODkwNzAxN2Y2
MjIxOWIxNTYzMDAzYTRlMjEzZjFiMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9haXIvdGVzdGFpci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci90
ZXN0YWlyLmNwcApAQCAtMTM4LDkgKzEzOCwxMCBAQCB2b2lkIGxvYWRDb25zdGFudEltcGwoQmFz
aWNCbG9jayogYmxvY2ssIFQgdmFsdWUsIEIzOjpBaXI6Ok9wY29kZSBtb3ZlLCBUbXAgdG1wLAog
ICAgIGJsb2NrLT5hcHBlbmQobW92ZSwgbnVsbHB0ciwgQXJnOjphZGRyKHNjcmF0Y2gpLCB0bXAp
OwogfQogCi12b2lkIGxvYWRDb25zdGFudChCYXNpY0Jsb2NrKiBibG9jaywgaW50cHRyX3QgdmFs
dWUsIFRtcCB0bXApCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgordm9pZCBsb2FkQ29uc3RhbnQoQmFz
aWNCbG9jayogYmxvY2ssIFQgdmFsdWUsIFRtcCB0bXApCiB7Ci0gICAgbG9hZENvbnN0YW50SW1w
bDxpbnRwdHJfdD4oYmxvY2ssIHZhbHVlLCBNb3ZlLCB0bXAsIHRtcCk7CisgICAgbG9hZENvbnN0
YW50SW1wbChibG9jaywgdmFsdWUsIE1vdmUsIHRtcCwgdG1wKTsKIH0KIAogdm9pZCBsb2FkRG91
YmxlQ29uc3RhbnQoQmFzaWNCbG9jayogYmxvY2ssIGRvdWJsZSB2YWx1ZSwgVG1wIHRtcCwgVG1w
IHNjcmF0Y2gpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuY3BwCmluZGV4IDUyM2YxMGVmMDgx
ZDBhZmI1MWM0MTI5M2IxZDFiYjU1MzFkNzljNzYuLmIzMzg5NzliYTUxMmFlMmRkYWI2MDk2Nzlh
MDg0MmFjZmY2NDJjMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0
YjMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuY3BwCkBAIC01NDcz
LDEwICs1NDczLDExIEBAIHZvaWQgdGVzdFN0b3JlQ29uc3RhbnRQdHIoaW50cHRyX3QgdmFsdWUp
CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxv
Y2soKTsKICAgICBpbnRwdHJfdCBzbG90OwotICAgIGlmIChpczY0Qml0KCkpCi0gICAgICAgIHNs
b3QgPSAoc3RhdGljX2Nhc3Q8aW50cHRyX3Q+KDB4YmFhZGJlZWYpIDw8IDMyKSArIHN0YXRpY19j
YXN0PGludHB0cl90PigweGJhYWRiZWVmKTsKLSAgICBlbHNlCi0gICAgICAgIHNsb3QgPSAweGJh
YWRiZWVmOworI2lmIENQVShBRERSRVNTNjQpCisgICAgc2xvdCA9IChzdGF0aWNfY2FzdDxpbnRw
dHJfdD4oMHhiYWFkYmVlZikgPDwgMzIpICsgc3RhdGljX2Nhc3Q8aW50cHRyX3Q+KDB4YmFhZGJl
ZWYpOworI2Vsc2UKKyAgICBzbG90ID0gMHhiYWFkYmVlZjsKKyNlbmRpZgogICAgIHJvb3QtPmFw
cGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgIHByb2MsIFN0b3JlLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCB2YWx1
ZSksCkBAIC0xMzE5NCw5ICsxMzE5NSw5IEBAIHZvaWQgdGVzdEludGVycHJldGVyKCkKICAgICAK
ICAgICBhdXRvIGludGVycHJldGVyID0gY29tcGlsZVByb2MocHJvYyk7CiAgICAgCi0gICAgVmVj
dG9yPGludHB0cl90PiBkYXRhOwotICAgIFZlY3RvcjxpbnRwdHJfdD4gY29kZTsKLSAgICBWZWN0
b3I8aW50cHRyX3Q+IHN0cmVhbTsKKyAgICBWZWN0b3I8dWludHB0cl90PiBkYXRhOworICAgIFZl
Y3Rvcjx1aW50cHRyX3Q+IGNvZGU7CisgICAgVmVjdG9yPHVpbnRwdHJfdD4gc3RyZWFtOwogICAg
IAogICAgIGRhdGEuYXBwZW5kKDEpOwogICAgIGRhdGEuYXBwZW5kKDApOwpAQCAtMTQ0OTcsNyAr
MTQ0OTgsNyBAQCB2b2lkIHRlc3RBZGRTaGwzMigpCiAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogICAgIAogICAgIGF1dG8gY29kZSA9
IGNvbXBpbGVQcm9jKHByb2MpOwotICAgIENIRUNLX0VRKGludm9rZTxpbnRwdHJfdD4oKmNvZGUs
IDEsIDIpLCAxICsgKHN0YXRpY19jYXN0PGludHB0cl90PigyKSA8PCBzdGF0aWNfY2FzdDxpbnRw
dHJfdD4oMzIpKSk7CisgICAgQ0hFQ0tfRVEoaW52b2tlPGludDY0X3Q+KCpjb2RlLCAxLCAyKSwg
MSArIChzdGF0aWNfY2FzdDxpbnQ2NF90PigyKSA8PCBzdGF0aWNfY2FzdDxpbnQ2NF90PigzMikp
KTsKIH0KIAogdm9pZCB0ZXN0QWRkU2hsNjQoKQpAQCAtMTQ2MDcsNiArMTQ2MDgsNyBAQCB2b2lk
IHRlc3RMb2FkQmFzZUluZGV4U2hpZnQyKCkKIAogdm9pZCB0ZXN0TG9hZEJhc2VJbmRleFNoaWZ0
MzIoKQogeworI2lmIENQVShBRERSRVNTNjQpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KApAQCAtMTQ2MjUsNiArMTQ2MjcsNyBAQCB2b2lkIHRlc3RMb2FkQmFzZUluZGV4U2hpZnQz
MigpCiAgICAgY2hhciogcHRyID0gYml0d2lzZV9jYXN0PGNoYXIqPigmdmFsdWUpOwogICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCAxMDsgKytpKQogICAgICAgICBDSEVDS19FUShpbnZva2U8
aW50MzJfdD4oKmNvZGUsIHB0ciAtIChzdGF0aWNfY2FzdDxpbnRwdHJfdD4oMSkgPDwgc3RhdGlj
X2Nhc3Q8aW50cHRyX3Q+KDMyKSkgKiBpLCBpKSwgMTIzNDEyMzQpOworI2VuZGlmCiB9CiAKIHZv
aWQgdGVzdE9wdGltaXplTWF0ZXJpYWxpemF0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iaW5kaW5ncy9TY3JpcHRGdW5jdGlvbkNhbGwuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2JpbmRpbmdzL1NjcmlwdEZ1bmN0aW9uQ2FsbC5jcHAKaW5kZXggNDRiZmY1NGZi
ZGRjNDZjMTkzODViMGM0NDMyMmI1YmZlYWU0ZDU2OC4uOTllNWY1Y2NlNTgxNTliYjY3MzYxMTVh
OWQ2NjU4Mjk3MWI0MTUyNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2JpbmRp
bmdzL1NjcmlwdEZ1bmN0aW9uQ2FsbC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Jp
bmRpbmdzL1NjcmlwdEZ1bmN0aW9uQ2FsbC5jcHAKQEAgLTc1LDcgKzc1LDcgQEAgdm9pZCBTY3Jp
cHRDYWxsQXJndW1lbnRIYW5kbGVyOjphcHBlbmRBcmd1bWVudCh1bnNpZ25lZCBpbnQgYXJndW1l
bnQpCiAgICAgbV9hcmd1bWVudHMuYXBwZW5kKGpzTnVtYmVyKGFyZ3VtZW50KSk7CiB9CiAKLXZv
aWQgU2NyaXB0Q2FsbEFyZ3VtZW50SGFuZGxlcjo6YXBwZW5kQXJndW1lbnQodW5zaWduZWQgbG9u
ZyBhcmd1bWVudCkKK3ZvaWQgU2NyaXB0Q2FsbEFyZ3VtZW50SGFuZGxlcjo6YXBwZW5kQXJndW1l
bnQodWludDY0X3QgYXJndW1lbnQpCiB7CiAgICAgSlNMb2NrSG9sZGVyIGxvY2sobV9leGVjKTsK
ICAgICBtX2FyZ3VtZW50cy5hcHBlbmQoanNOdW1iZXIoYXJndW1lbnQpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iaW5kaW5ncy9TY3JpcHRGdW5jdGlvbkNhbGwuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iaW5kaW5ncy9TY3JpcHRGdW5jdGlvbkNhbGwuaAppbmRleCA2
OTc4NDE0ZTRlZWZhNDEzMjM0Yjk2NDUwNzkxNjBlYTBiZGFhZTJmLi4xYTdhNTM3NmI1NzRhNTEx
YjgzNzM2OGQ3ZDJjYzVlYzg3YmIxYThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYmluZGluZ3MvU2NyaXB0RnVuY3Rpb25DYWxsLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2JpbmRpbmdzL1NjcmlwdEZ1bmN0aW9uQ2FsbC5oCkBAIC01MSw3ICs1MSw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGFwcGVuZEFyZ3VtZW50KGxvbmcpOwogICAgIHZvaWQgYXBwZW5kQXJndW1l
bnQobG9uZyBsb25nKTsKICAgICB2b2lkIGFwcGVuZEFyZ3VtZW50KHVuc2lnbmVkIGludCk7Ci0g
ICAgdm9pZCBhcHBlbmRBcmd1bWVudCh1bnNpZ25lZCBsb25nKTsKKyAgICB2b2lkIGFwcGVuZEFy
Z3VtZW50KHVpbnQ2NF90KTsKICAgICB2b2lkIGFwcGVuZEFyZ3VtZW50KGludCk7CiAgICAgdm9p
ZCBhcHBlbmRBcmd1bWVudChib29sKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvQ29kZUJsb2NrLmNwcAppbmRleCAzZTk3NGJmMGNmOTY4MWM2YzE3NWJmODNjYmE4ZTMwMGYy
MTk5YjQyLi40OTc2NjYyZWQ3MDk0ZWU2MjhiZDE0NDAzYmNlM2M5MTc3MzM5NWE0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcApAQCAtMjE2MCw4ICsy
MTYwLDggQEAgdm9pZCBDb2RlQmxvY2s6OnNldENhbGxlZVNhdmVSZWdpc3RlcnMoc3RkOjp1bmlx
dWVfcHRyPFJlZ2lzdGVyQXRPZmZzZXRMaXN0PiByZWcKICAgICAKIHN0YXRpYyBzaXplX3Qgcm91
bmRDYWxsZWVTYXZlU3BhY2VBc1ZpcnR1YWxSZWdpc3RlcnMoc2l6ZV90IGNhbGxlZVNhdmVSZWdp
c3RlcnMpCiB7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNwdVJlZ2lzdGVyU2l6ZSA9IHNp
emVvZih2b2lkKik7Ci0gICAgcmV0dXJuIChXVEY6OnJvdW5kVXBUb011bHRpcGxlT2Yoc2l6ZW9m
KFJlZ2lzdGVyKSwgY2FsbGVlU2F2ZVJlZ2lzdGVycyAqIGNwdVJlZ2lzdGVyU2l6ZSkgLyBzaXpl
b2YoUmVnaXN0ZXIpKTsKKworICAgIHJldHVybiAoV1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9mKHNp
emVvZihSZWdpc3RlciksIGNhbGxlZVNhdmVSZWdpc3RlcnMgKiBzaXplb2YoQ1BVUmVnaXN0ZXIp
KSAvIHNpemVvZihSZWdpc3RlcikpOwogCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHT1NSRXhpdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R09TUkV4aXQuY3BwCmluZGV4IGY5MjFhYmY5NWVjZDIyN2YzY2RkODUxYmFmOTg3ZDkyNmJlNzlh
Y2YuLmE4YTIzMzkwNzE1Y2M2YmFhYTU2YzdkMzE5N2E5MjU4NWY4NjY5ZmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0LmNwcApAQCAtODYsNyArODYsNyBAQCBzdGF0aWMg
dm9pZCByZXN0b3JlQ2FsbGVlU2F2ZXNGb3IoQ29udGV4dCYgY29udGV4dCwgQ29kZUJsb2NrKiBj
b2RlQmxvY2spCiAgICAgUmVnaXN0ZXJTZXQgZG9udFJlc3RvcmVSZWdpc3RlcnMgPSBSZWdpc3Rl
clNldChSZWdpc3RlclNldDo6c3RhY2tSZWdpc3RlcnMoKSwgUmVnaXN0ZXJTZXQ6OmFsbEZQUnMo
KSk7CiAgICAgdW5zaWduZWQgcmVnaXN0ZXJDb3VudCA9IGNhbGxlZVNhdmVzLT5zaXplKCk7CiAK
LSAgICB1aW50cHRyX3QqIHBoeXNpY2FsU3RhY2tGcmFtZSA9IGNvbnRleHQuZnA8dWludHB0cl90
Kj4oKTsKKyAgICBVQ1BVUmVnaXN0ZXIqIHBoeXNpY2FsU3RhY2tGcmFtZSA9IGNvbnRleHQuZnA8
VUNQVVJlZ2lzdGVyKj4oKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcmVnaXN0ZXJD
b3VudDsgaSsrKSB7CiAgICAgICAgIFJlZ2lzdGVyQXRPZmZzZXQgZW50cnkgPSBjYWxsZWVTYXZl
cy0+YXQoaSk7CiAgICAgICAgIGlmIChkb250UmVzdG9yZVJlZ2lzdGVycy5nZXQoZW50cnkucmVn
KCkpKQpAQCAtOTQsOCArOTQsOCBAQCBzdGF0aWMgdm9pZCByZXN0b3JlQ2FsbGVlU2F2ZXNGb3Io
Q29udGV4dCYgY29udGV4dCwgQ29kZUJsb2NrKiBjb2RlQmxvY2spCiAgICAgICAgIC8vIFRoZSBj
YWxsZWUgc2F2ZWQgdmFsdWVzIGNvbWUgZnJvbSB0aGUgb3JpZ2luYWwgc3RhY2ssIG5vdCB0aGUg
cmVjb3ZlcmVkIHN0YWNrLgogICAgICAgICAvLyBIZW5jZSwgd2UgcmVhZCB0aGUgdmFsdWVzIGRp
cmVjdGx5IGZyb20gdGhlIHBoeXNpY2FsIHN0YWNrIG1lbW9yeSBpbnN0ZWFkIG9mCiAgICAgICAg
IC8vIGdvaW5nIHRocm91Z2ggY29udGV4dC5zdGFjaygpLgotICAgICAgICBBU1NFUlQoIShlbnRy
eS5vZmZzZXQoKSAlIHNpemVvZih1aW50cHRyX3QpKSk7Ci0gICAgICAgIGNvbnRleHQuZ3ByKGVu
dHJ5LnJlZygpLmdwcigpKSA9IHBoeXNpY2FsU3RhY2tGcmFtZVtlbnRyeS5vZmZzZXQoKSAvIHNp
emVvZih1aW50cHRyX3QpXTsKKyAgICAgICAgQVNTRVJUKCEoZW50cnkub2Zmc2V0KCkgJSBzaXpl
b2YoVUNQVVJlZ2lzdGVyKSkpOworICAgICAgICBjb250ZXh0LmdwcihlbnRyeS5yZWcoKS5ncHIo
KSkgPSBwaHlzaWNhbFN0YWNrRnJhbWVbZW50cnkub2Zmc2V0KCkgLyBzaXplb2YoVUNQVVJlZ2lz
dGVyKV07CiAgICAgfQogfQogCkBAIC0xMTMsNyArMTEzLDcgQEAgc3RhdGljIHZvaWQgc2F2ZUNh
bGxlZVNhdmVzRm9yKENvbnRleHQmIGNvbnRleHQsIENvZGVCbG9jayogY29kZUJsb2NrKQogICAg
ICAgICBSZWdpc3RlckF0T2Zmc2V0IGVudHJ5ID0gY2FsbGVlU2F2ZXMtPmF0KGkpOwogICAgICAg
ICBpZiAoZG9udFNhdmVSZWdpc3RlcnMuZ2V0KGVudHJ5LnJlZygpKSkKICAgICAgICAgICAgIGNv
bnRpbnVlOwotICAgICAgICBzdGFjay5zZXQoY29udGV4dC5mcCgpLCBlbnRyeS5vZmZzZXQoKSwg
Y29udGV4dC5ncHI8dWludHB0cl90PihlbnRyeS5yZWcoKS5ncHIoKSkpOworICAgICAgICBzdGFj
ay5zZXQoY29udGV4dC5mcCgpLCBlbnRyeS5vZmZzZXQoKSwgY29udGV4dC5ncHI8VUNQVVJlZ2lz
dGVyPihlbnRyeS5yZWcoKS5ncHIoKSkpOwogICAgIH0KIH0KIApAQCAtMTI3LDE0ICsxMjcsMTQg
QEAgc3RhdGljIHZvaWQgcmVzdG9yZUNhbGxlZVNhdmVzRnJvbVZNRW50cnlGcmFtZUNhbGxlZVNh
dmVzQnVmZmVyKENvbnRleHQmIGNvbnRleHQKICAgICB1bnNpZ25lZCByZWdpc3RlckNvdW50ID0g
YWxsQ2FsbGVlU2F2ZXMtPnNpemUoKTsKIAogICAgIFZNRW50cnlSZWNvcmQqIGVudHJ5UmVjb3Jk
ID0gdm1FbnRyeVJlY29yZCh2bS50b3BFbnRyeUZyYW1lKTsKLSAgICB1aW50cHRyX3QqIGNhbGxl
ZVNhdmVCdWZmZXIgPSByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdCo+KGVudHJ5UmVjb3JkLT5j
YWxsZWVTYXZlUmVnaXN0ZXJzQnVmZmVyKTsKKyAgICBVQ1BVUmVnaXN0ZXIqIGNhbGxlZVNhdmVC
dWZmZXIgPSByZWludGVycHJldF9jYXN0PFVDUFVSZWdpc3Rlcio+KGVudHJ5UmVjb3JkLT5jYWxs
ZWVTYXZlUmVnaXN0ZXJzQnVmZmVyKTsKIAogICAgIC8vIFJlc3RvcmUgYWxsIGNhbGxlZSBzYXZl
cy4KICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcmVnaXN0ZXJDb3VudDsgaSsrKSB7CiAg
ICAgICAgIFJlZ2lzdGVyQXRPZmZzZXQgZW50cnkgPSBhbGxDYWxsZWVTYXZlcy0+YXQoaSk7CiAg
ICAgICAgIGlmIChkb250UmVzdG9yZVJlZ2lzdGVycy5nZXQoZW50cnkucmVnKCkpKQogICAgICAg
ICAgICAgY29udGludWU7Ci0gICAgICAgIHNpemVfdCB1aW50cHRyT2Zmc2V0ID0gZW50cnkub2Zm
c2V0KCkgLyBzaXplb2YodWludHB0cl90KTsKKyAgICAgICAgc2l6ZV90IHVpbnRwdHJPZmZzZXQg
PSBlbnRyeS5vZmZzZXQoKSAvIHNpemVvZihVQ1BVUmVnaXN0ZXIpOwogICAgICAgICBpZiAoZW50
cnkucmVnKCkuaXNHUFIoKSkKICAgICAgICAgICAgIGNvbnRleHQuZ3ByKGVudHJ5LnJlZygpLmdw
cigpKSA9IGNhbGxlZVNhdmVCdWZmZXJbdWludHB0ck9mZnNldF07CiAgICAgICAgIGVsc2UKQEAg
LTE2MCw5ICsxNjAsOSBAQCBzdGF0aWMgdm9pZCBjb3B5Q2FsbGVlU2F2ZXNUb1ZNRW50cnlGcmFt
ZUNhbGxlZVNhdmVzQnVmZmVyKENvbnRleHQmIGNvbnRleHQpCiAgICAgICAgIGlmIChkb250Q29w
eVJlZ2lzdGVycy5nZXQoZW50cnkucmVnKCkpKQogICAgICAgICAgICAgY29udGludWU7CiAgICAg
ICAgIGlmIChlbnRyeS5yZWcoKS5pc0dQUigpKQotICAgICAgICAgICAgc3RhY2suc2V0KGNhbGxl
ZVNhdmVCdWZmZXIsIGVudHJ5Lm9mZnNldCgpLCBjb250ZXh0Lmdwcjx1aW50cHRyX3Q+KGVudHJ5
LnJlZygpLmdwcigpKSk7CisgICAgICAgICAgICBzdGFjay5zZXQoY2FsbGVlU2F2ZUJ1ZmZlciwg
ZW50cnkub2Zmc2V0KCksIGNvbnRleHQuZ3ByPFVDUFVSZWdpc3Rlcj4oZW50cnkucmVnKCkuZ3By
KCkpKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgc3RhY2suc2V0KGNhbGxlZVNhdmVCdWZm
ZXIsIGVudHJ5Lm9mZnNldCgpLCBjb250ZXh0LmZwcjx1aW50cHRyX3Q+KGVudHJ5LnJlZygpLmZw
cigpKSk7CisgICAgICAgICAgICBzdGFjay5zZXQoY2FsbGVlU2F2ZUJ1ZmZlciwgZW50cnkub2Zm
c2V0KCksIGNvbnRleHQuZnByPFVDUFVSZWdpc3Rlcj4oZW50cnkucmVnKCkuZnByKCkpKTsKICAg
ICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhp
dENvbXBpbGVyQ29tbW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhp
dENvbXBpbGVyQ29tbW9uLmNwcAppbmRleCA3NmNhM2I4MTk4NTU1ZjY5MjM5ZmNjYjRkZTY4Y2Ni
Y2Q1NTgzZTI4Li4xMTFlYmQzMmIwN2JjOThjNjAxNTQ4YWZhOWZiMjc3ZDNmYWM0MGU3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlckNvbW1v
bi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXJD
b21tb24uY3BwCkBAIC0yMzAsNyArMjMwLDcgQEAgdm9pZCByZWlmeUlubGluZWRDYWxsRnJhbWVz
KENDYWxsSGVscGVycyYgaml0LCBjb25zdCBPU1JFeGl0QmFzZSYgZXhpdCkKICAgICAgICAgaWYg
KCFpbmxpbmVDYWxsRnJhbWUtPmlzVmFyYXJncygpKQogICAgICAgICAgICAgaml0LnN0b3JlMzIo
QXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIoaW5saW5lQ2FsbEZyYW1lLT5hcmd1bWVudENv
dW50SW5jbHVkaW5nVGhpcyksIEFzc2VtYmx5SGVscGVyczo6cGF5bG9hZEZvcigoVmlydHVhbFJl
Z2lzdGVyKShpbmxpbmVDYWxsRnJhbWUtPnN0YWNrT2Zmc2V0ICsgQ2FsbEZyYW1lU2xvdDo6YXJn
dW1lbnRDb3VudCkpKTsKICNpZiBVU0UoSlNWQUxVRTY0KQotICAgICAgICBqaXQuc3RvcmU2NChj
YWxsZXJGcmFtZUdQUiwgQXNzZW1ibHlIZWxwZXJzOjphZGRyZXNzRm9yQnl0ZU9mZnNldChpbmxp
bmVDYWxsRnJhbWUtPmNhbGxlckZyYW1lT2Zmc2V0KCkpKTsKKyAgICAgICAgaml0LnN0b3JlUHRy
KGNhbGxlckZyYW1lR1BSLCBBc3NlbWJseUhlbHBlcnM6OmFkZHJlc3NGb3JCeXRlT2Zmc2V0KGlu
bGluZUNhbGxGcmFtZS0+Y2FsbGVyRnJhbWVPZmZzZXQoKSkpOwogICAgICAgICB1aW50MzJfdCBs
b2NhdGlvbkJpdHMgPSBDYWxsU2l0ZUluZGV4KGNvZGVPcmlnaW4tPmJ5dGVjb2RlSW5kZXgpLmJp
dHMoKTsKICAgICAgICAgaml0LnN0b3JlMzIoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIo
bG9jYXRpb25CaXRzKSwgQXNzZW1ibHlIZWxwZXJzOjp0YWdGb3IoKFZpcnR1YWxSZWdpc3Rlciko
aW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCArIENhbGxGcmFtZVNsb3Q6OmFyZ3VtZW50Q291
bnQpKSk7CiAgICAgICAgIGlmICghaW5saW5lQ2FsbEZyYW1lLT5pc0Nsb3N1cmVDYWxsKQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKaW5k
ZXggNDFjMmNkY2E1NjUxMjZlMjk3MzYxNDk0MTEzZjdlNzEyOWRkNzc2MC4uMmM3ZGIxMmNlNzcw
ZGRlOTc5YTU3ZGQ0NTdhMTlmZTEyN2NiY2UwNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCkBAIC00NDA3LDggKzQ0MDcsMTAgQEAg
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICBtX2ppdC5s
b2FkMzIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Mob2JqZWN0R1BSLCBKU0NlbGw6OnN0cnVjdHVy
ZUlET2Zmc2V0KCkpLCBzdHJ1Y3R1cmVJREdQUik7CiAgICAgICAgIG1faml0LmFkZDMyKHN0cnVj
dHVyZUlER1BSLCBoYXNoR1BSKTsKICAgICAgICAgbV9qaXQuYW5kMzIoVHJ1c3RlZEltbTMyKEhh
c093blByb3BlcnR5Q2FjaGU6Om1hc2spLCBoYXNoR1BSKTsKLSAgICAgICAgc3RhdGljX2Fzc2Vy
dChzaXplb2YoSGFzT3duUHJvcGVydHlDYWNoZTo6RW50cnkpID09IDE2LCAiU3Ryb25nIGFzc3Vt
cHRpb24gb2YgdGhhdCBoZXJlLiIpOwotICAgICAgICBtX2ppdC5sc2hpZnQzMihUcnVzdGVkSW1t
MzIoNCksIGhhc2hHUFIpOworICAgICAgICBpZiAoaGFzT25lQml0U2V0KHNpemVvZihIYXNPd25Q
cm9wZXJ0eUNhY2hlOjpFbnRyeSkpKSAvLyBpcyBhIHBvd2VyIG9mIDIKKyAgICAgICAgICAgIG1f
aml0LmxzaGlmdDMyKFRydXN0ZWRJbW0zMihnZXRMU0JTZXQoc2l6ZW9mKEhhc093blByb3BlcnR5
Q2FjaGU6OkVudHJ5KSkpLCBoYXNoR1BSKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbV9q
aXQubXVsMzIoVHJ1c3RlZEltbTMyKHNpemVvZihIYXNPd25Qcm9wZXJ0eUNhY2hlOjpFbnRyeSkp
LCBoYXNoR1BSLCBoYXNoR1BSKTsKICAgICAgICAgQVNTRVJUKG1faml0LnZtKCktPmhhc093blBy
b3BlcnR5Q2FjaGUoKSk7CiAgICAgICAgIG1faml0Lm1vdmUoVHJ1c3RlZEltbVB0cihtX2ppdC52
bSgpLT5oYXNPd25Qcm9wZXJ0eUNhY2hlKCkpLCB0ZW1wR1BSKTsKICAgICAgICAgc2xvd1BhdGgu
YXBwZW5kKG1faml0LmJyYW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rpc2Fzc2VtYmxlci9VRGlzODZEaXNhc3NlbWJs
ZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rpc2Fzc2VtYmxlci9VRGlzODZEaXNhc3Nl
bWJsZXIuY3BwCmluZGV4IDFmZjgxNTUxNjNkNDZhY2E3ZDM3NTMyN2E2ODNmNzQ4YWY1ZGY3MTQu
LjJjMTY3ZjI2MDY1MDQ0ZWRkNDJmZGExNWJlNmM2MGI0MjYxZWIyZTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kaXNhc3NlbWJsZXIvVURpczg2RGlzYXNzZW1ibGVyLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGlzYXNzZW1ibGVyL1VEaXM4NkRpc2Fzc2VtYmxl
ci5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAgYm9vbCB0cnlUb0Rpc2Fzc2VtYmxlV2l0aFVEaXM4Nihj
b25zdCBNYWNyb0Fzc2VtYmxlckNvZGVQdHI8RGlzYXNzZW1ibHlQdHJUYWc+JgogICAgIHVpbnQ2
NF90IGN1cnJlbnRQQyA9IGRpc2Fzc2VtYmxlci5wYzsKICAgICB3aGlsZSAodWRfZGlzYXNzZW1i
bGUoJmRpc2Fzc2VtYmxlcikpIHsKICAgICAgICAgY2hhciBwY1N0cmluZ1syMF07Ci0gICAgICAg
IHNucHJpbnRmKHBjU3RyaW5nLCBzaXplb2YocGNTdHJpbmcpLCAiMHglbHgiLCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZCBsb25nPihjdXJyZW50UEMpKTsKKyAgICAgICAgc25wcmludGYocGNTdHJpbmcs
IHNpemVvZihwY1N0cmluZyksICIweCVseCIsIHN0YXRpY19jYXN0PHVpbnRwdHJfdD4oY3VycmVu
dFBDKSk7CiAgICAgICAgIG91dC5wcmludGYoIiVzJTE2czogJXNcbiIsIHByZWZpeCwgcGNTdHJp
bmcsIHVkX2luc25fYXNtKCZkaXNhc3NlbWJsZXIpKTsKICAgICAgICAgY3VycmVudFBDID0gZGlz
YXNzZW1ibGVyLnBjOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMTG93ZXJERkdUb0IzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93
ZXJERkdUb0IzLmNwcAppbmRleCA2MDdkNzM0ZmZhMjAwOTk0NWM0MjAwNDBkOGExZWRkNmQ3YWY2
ODk1Li4wNTZhZDgzNmJhYjg5ZTJhYTg1NTM1NWNkZjc0NDMyZjRlYjJjZDA2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCkBAIC05NjYzLDEyICs5
NjYzLDEzIEBAIHByaXZhdGU6CiAgICAgICAgIExWYWx1ZSBpbmRleCA9IG1fb3V0LmJpdEFuZCht
YXNrLCB1bm1hc2tlZEluZGV4KTsKIAogICAgICAgICBMVmFsdWUgYnVja2V0OworCiAgICAgICAg
IGlmIChtX25vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSA9PSBXZWFrTWFwT2JqZWN0VXNlKSB7Ci0g
ICAgICAgICAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihXZWFrTWFwQnVja2V0PFdlYWtNYXBCdWNr
ZXREYXRhS2V5VmFsdWU+KSA9PSAxNiwgIiIpOwotICAgICAgICAgICAgYnVja2V0ID0gbV9vdXQu
YWRkKGJ1ZmZlciwgbV9vdXQuc2hsKG1fb3V0Lnplcm9FeHQoaW5kZXgsIEludDY0KSwgbV9vdXQu
Y29uc3RJbnQzMig0KSkpOworICAgICAgICAgICAgc3RhdGljX2Fzc2VydChoYXNPbmVCaXRTZXQo
c2l6ZW9mKFdlYWtNYXBCdWNrZXQ8V2Vha01hcEJ1Y2tldERhdGFLZXlWYWx1ZT4pKSwgIlNob3Vs
ZCBiZSBhIHBvd2VyIG9mIDIiKTsKKyAgICAgICAgICAgIGJ1Y2tldCA9IG1fb3V0LmFkZChidWZm
ZXIsIG1fb3V0LnNobChtX291dC56ZXJvRXh0KGluZGV4LCBJbnQ2NCksIG1fb3V0LmNvbnN0SW50
MzIoZ2V0TFNCU2V0KHNpemVvZihXZWFrTWFwQnVja2V0PFdlYWtNYXBCdWNrZXREYXRhS2V5VmFs
dWU+KSkpKSk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzdGF0aWNfYXNzZXJ0KHNp
emVvZihXZWFrTWFwQnVja2V0PFdlYWtNYXBCdWNrZXREYXRhS2V5PikgPT0gOCwgIiIpOwotICAg
ICAgICAgICAgYnVja2V0ID0gbV9vdXQuYWRkKGJ1ZmZlciwgbV9vdXQuc2hsKG1fb3V0Lnplcm9F
eHQoaW5kZXgsIEludDY0KSwgbV9vdXQuY29uc3RJbnQzMigzKSkpOworICAgICAgICAgICAgc3Rh
dGljX2Fzc2VydChoYXNPbmVCaXRTZXQoc2l6ZW9mKFdlYWtNYXBCdWNrZXQ8V2Vha01hcEJ1Y2tl
dERhdGFLZXk+KSksICJTaG91bGQgYmUgYSBwb3dlciBvZiAyIik7CisgICAgICAgICAgICBidWNr
ZXQgPSBtX291dC5hZGQoYnVmZmVyLCBtX291dC5zaGwobV9vdXQuemVyb0V4dChpbmRleCwgSW50
NjQpLCBtX291dC5jb25zdEludDMyKGdldExTQlNldChzaXplb2YoV2Vha01hcEJ1Y2tldDxXZWFr
TWFwQnVja2V0RGF0YUtleT4pKSkpKTsKICAgICAgICAgfQogCiAgICAgICAgIExWYWx1ZSBidWNr
ZXRLZXkgPSBtX291dC5sb2FkNjQoYnVja2V0LCBtX2hlYXBzLldlYWtNYXBCdWNrZXRfa2V5KTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hY2hpbmVTdGFja01hcmtl
ci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYWNoaW5lU3RhY2tNYXJrZXIuY3Bw
CmluZGV4IDhmNmM2MjA1NTY3MTIwYWNmNGVmM2RhMTBkZjk4MzUyYzAwNzRmNDMuLjBiYzBiOGU4
ZDkyMDllNTg5MzYzNTdjMzgwNDgzMjEzNWFiMGFiYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL01hY2hpbmVTdGFja01hcmtlci5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvTWFjaGluZVN0YWNrTWFya2VyLmNwcApAQCAtODcsMTMgKzg3LDEzIEBA
IHN0YXRpYyB2b2lkIGNvcHlNZW1vcnkodm9pZCogZHN0LCBjb25zdCB2b2lkKiBzcmMsIHNpemVf
dCBzaXplKQogewogICAgIHNpemVfdCBkc3RBc1NpemUgPSByZWludGVycHJldF9jYXN0PHNpemVf
dD4oZHN0KTsKICAgICBzaXplX3Qgc3JjQXNTaXplID0gcmVpbnRlcnByZXRfY2FzdDxzaXplX3Q+
KHNyYyk7Ci0gICAgUkVMRUFTRV9BU1NFUlQoZHN0QXNTaXplID09IFdURjo6cm91bmRVcFRvTXVs
dGlwbGVPZjxzaXplb2YoaW50cHRyX3QpPihkc3RBc1NpemUpKTsKLSAgICBSRUxFQVNFX0FTU0VS
VChzcmNBc1NpemUgPT0gV1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9mPHNpemVvZihpbnRwdHJfdCk+
KHNyY0FzU2l6ZSkpOwotICAgIFJFTEVBU0VfQVNTRVJUKHNpemUgPT0gV1RGOjpyb3VuZFVwVG9N
dWx0aXBsZU9mPHNpemVvZihpbnRwdHJfdCk+KHNpemUpKTsKKyAgICBSRUxFQVNFX0FTU0VSVChk
c3RBc1NpemUgPT0gV1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9mPHNpemVvZihDUFVSZWdpc3Rlcik+
KGRzdEFzU2l6ZSkpOworICAgIFJFTEVBU0VfQVNTRVJUKHNyY0FzU2l6ZSA9PSBXVEY6OnJvdW5k
VXBUb011bHRpcGxlT2Y8c2l6ZW9mKENQVVJlZ2lzdGVyKT4oc3JjQXNTaXplKSk7CisgICAgUkVM
RUFTRV9BU1NFUlQoc2l6ZSA9PSBXVEY6OnJvdW5kVXBUb011bHRpcGxlT2Y8c2l6ZW9mKENQVVJl
Z2lzdGVyKT4oc2l6ZSkpOwogCi0gICAgaW50cHRyX3QqIGRzdFB0ciA9IHJlaW50ZXJwcmV0X2Nh
c3Q8aW50cHRyX3QqPihkc3QpOwotICAgIGNvbnN0IGludHB0cl90KiBzcmNQdHIgPSByZWludGVy
cHJldF9jYXN0PGNvbnN0IGludHB0cl90Kj4oc3JjKTsKLSAgICBzaXplIC89IHNpemVvZihpbnRw
dHJfdCk7CisgICAgQ1BVUmVnaXN0ZXIqIGRzdFB0ciA9IHJlaW50ZXJwcmV0X2Nhc3Q8Q1BVUmVn
aXN0ZXIqPihkc3QpOworICAgIGNvbnN0IENQVVJlZ2lzdGVyKiBzcmNQdHIgPSByZWludGVycHJl
dF9jYXN0PGNvbnN0IENQVVJlZ2lzdGVyKj4oc3JjKTsKKyAgICBzaXplIC89IHNpemVvZihDUFVS
ZWdpc3Rlcik7CiAgICAgd2hpbGUgKHNpemUtLSkKICAgICAgICAgKmRzdFB0cisrID0gKnNyY1B0
cisrOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0Nh
bGxGcmFtZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5o
CmluZGV4IDYzYWE5YWFmMWI0ZjlhNDZjNDdjYmM3ZDBkMWY2ZmY4NzkxYzk5YjkuLmZmNDlhMjNh
MTk1NzY5ZGQxMGM5ZGRjMmE3MmRiNGZiN2I3YzZhOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsRnJhbWUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmgKQEAgLTY3LDEwICs2NywxMSBAQCBuYW1lc3Bh
Y2UgSlNDICB7CiAgICAgICAgIHVpbnQzMl90IG1fYml0czsKICAgICB9OwogCisgICAgLy8gYXJt
NjRfMzIgZXhwZWN0cyBjYWxsZXIgZnJhbWUgYW5kIHJldHVybiBwYyB0byB1c2UgOCBieXRlcyAK
ICAgICBzdHJ1Y3QgQ2FsbGVyRnJhbWVBbmRQQyB7Ci0gICAgICAgIENhbGxGcmFtZSogY2FsbGVy
RnJhbWU7Ci0gICAgICAgIEluc3RydWN0aW9uKiBwYzsKLSAgICAgICAgc3RhdGljIGNvbnN0IGlu
dCBzaXplSW5SZWdpc3RlcnMgPSAyICogc2l6ZW9mKHZvaWQqKSAvIHNpemVvZihSZWdpc3Rlcik7
CisgICAgICAgIGFsaWduYXMoQ1BVUmVnaXN0ZXIpIENhbGxGcmFtZSogY2FsbGVyRnJhbWU7Cisg
ICAgICAgIGFsaWduYXMoQ1BVUmVnaXN0ZXIpIEluc3RydWN0aW9uKiByZXR1cm5QQzsKKyAgICAg
ICAgc3RhdGljIGNvbnN0IGludCBzaXplSW5SZWdpc3RlcnMgPSAyICogc2l6ZW9mKENQVVJlZ2lz
dGVyKSAvIHNpemVvZihSZWdpc3Rlcik7CiAgICAgfTsKICAgICBzdGF0aWNfYXNzZXJ0KENhbGxl
ckZyYW1lQW5kUEM6OnNpemVJblJlZ2lzdGVycyA9PSBzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQykg
LyBzaXplb2YoUmVnaXN0ZXIpLCAiQ2FsbGVyRnJhbWVBbmRQQzo6c2l6ZUluUmVnaXN0ZXJzIGlz
IGluY29ycmVjdC4iKTsKIApAQCAtMTQ3LDEwICsxNDgsMTAgQEAgbmFtZXNwYWNlIEpTQyAgewog
CiAgICAgICAgIHN0YXRpYyBwdHJkaWZmX3QgY2FsbGVyRnJhbWVPZmZzZXQoKSB7IHJldHVybiBP
QkpFQ1RfT0ZGU0VUT0YoQ2FsbGVyRnJhbWVBbmRQQywgY2FsbGVyRnJhbWUpOyB9CiAKLSAgICAg
ICAgUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5QQygpIGNvbnN0IHsgcmV0dXJuIFJldHVybkFkZHJl
c3NQdHIoY2FsbGVyRnJhbWVBbmRQQygpLnBjKTsgfQotICAgICAgICBib29sIGhhc1JldHVyblBD
KCkgY29uc3QgeyByZXR1cm4gISFjYWxsZXJGcmFtZUFuZFBDKCkucGM7IH0KLSAgICAgICAgdm9p
ZCBjbGVhclJldHVyblBDKCkgeyBjYWxsZXJGcmFtZUFuZFBDKCkucGMgPSAwOyB9Ci0gICAgICAg
IHN0YXRpYyBwdHJkaWZmX3QgcmV0dXJuUENPZmZzZXQoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VU
T0YoQ2FsbGVyRnJhbWVBbmRQQywgcGMpOyB9CisgICAgICAgIFJldHVybkFkZHJlc3NQdHIgcmV0
dXJuUEMoKSBjb25zdCB7IHJldHVybiBSZXR1cm5BZGRyZXNzUHRyKGNhbGxlckZyYW1lQW5kUEMo
KS5yZXR1cm5QQyk7IH0KKyAgICAgICAgYm9vbCBoYXNSZXR1cm5QQygpIGNvbnN0IHsgcmV0dXJu
ICEhY2FsbGVyRnJhbWVBbmRQQygpLnJldHVyblBDOyB9CisgICAgICAgIHZvaWQgY2xlYXJSZXR1
cm5QQygpIHsgY2FsbGVyRnJhbWVBbmRQQygpLnJldHVyblBDID0gMDsgfQorICAgICAgICBzdGF0
aWMgcHRyZGlmZl90IHJldHVyblBDT2Zmc2V0KCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKENh
bGxlckZyYW1lQW5kUEMsIHJldHVyblBDKTsgfQogICAgICAgICBBYnN0cmFjdFBDIGFic3RyYWN0
UmV0dXJuUEMoVk0mIHZtKSB7IHJldHVybiBBYnN0cmFjdFBDKHZtLCB0aGlzKTsgfQogCiAgICAg
ICAgIGJvb2wgY2FsbFNpdGVCaXRzQXJlQnl0ZWNvZGVPZmZzZXQoKSBjb25zdDsKQEAgLTI1Myw3
ICsyNTQsNyBAQCBuYW1lc3BhY2UgSlNDICB7CiAgICAgICAgIHN0YXRpYyBDYWxsRnJhbWUqIG5v
Q2FsbGVyKCkgeyByZXR1cm4gbnVsbHB0cjsgfQogICAgICAgICBib29sIGlzR2xvYmFsRXhlYygp
IGNvbnN0CiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBjYWxsZXJGcmFtZUFuZFBDKCku
Y2FsbGVyRnJhbWUgPT0gbm9DYWxsZXIoKSAmJiBjYWxsZXJGcmFtZUFuZFBDKCkucGMgPT0gbnVs
bHB0cjsKKyAgICAgICAgICAgIHJldHVybiBjYWxsZXJGcmFtZUFuZFBDKCkuY2FsbGVyRnJhbWUg
PT0gbm9DYWxsZXIoKSAmJiBjYWxsZXJGcmFtZUFuZFBDKCkucmV0dXJuUEMgPT0gbnVsbHB0cjsK
ICAgICAgICAgfQogCiAgICAgICAgIHZvaWQgY29udmVydFRvU3RhY2tPdmVyZmxvd0ZyYW1lKFZN
Jik7CkBAIC0yNjMsNyArMjY0LDcgQEAgbmFtZXNwYWNlIEpTQyAgewogICAgICAgICB2b2lkIHNl
dEFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzKGludCBjb3VudCkgeyBzdGF0aWNfY2FzdDxSZWdp
c3Rlcio+KHRoaXMpW0NhbGxGcmFtZVNsb3Q6OmFyZ3VtZW50Q291bnRdLnBheWxvYWQoKSA9IGNv
dW50OyB9CiAgICAgICAgIHZvaWQgc2V0Q2FsbGVlKEpTT2JqZWN0KiBjYWxsZWUpIHsgc3RhdGlj
X2Nhc3Q8UmVnaXN0ZXIqPih0aGlzKVtDYWxsRnJhbWVTbG90OjpjYWxsZWVdID0gY2FsbGVlOyB9
CiAgICAgICAgIHZvaWQgc2V0Q29kZUJsb2NrKENvZGVCbG9jayogY29kZUJsb2NrKSB7IHN0YXRp
Y19jYXN0PFJlZ2lzdGVyKj4odGhpcylbQ2FsbEZyYW1lU2xvdDo6Y29kZUJsb2NrXSA9IGNvZGVC
bG9jazsgfQotICAgICAgICB2b2lkIHNldFJldHVyblBDKHZvaWQqIHZhbHVlKSB7IGNhbGxlckZy
YW1lQW5kUEMoKS5wYyA9IHJlaW50ZXJwcmV0X2Nhc3Q8SW5zdHJ1Y3Rpb24qPih2YWx1ZSk7IH0K
KyAgICAgICAgdm9pZCBzZXRSZXR1cm5QQyh2b2lkKiB2YWx1ZSkgeyBjYWxsZXJGcmFtZUFuZFBD
KCkucmV0dXJuUEMgPSByZWludGVycHJldF9jYXN0PEluc3RydWN0aW9uKj4odmFsdWUpOyB9CiAK
ICAgICAgICAgU3RyaW5nIGZyaWVuZGx5RnVuY3Rpb25OYW1lKCk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsZWVCaXRzLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbGVlQml0cy5oCmluZGV4IGU0YTk4NGQxZTk2Nzk2
M2NkOGQ5MmI4NDZjYTc2ZmE5YjMxZWI0MWMuLjg1YzNlZDg4YzFjMmJmMzIxZTY5MmRiNzNmMmVl
Yzk3ZjAwYzA3NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRl
ci9DYWxsZWVCaXRzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0Nh
bGxlZUJpdHMuaApAQCAtNTEsNyArNTEsNyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFdFQkFTU0VN
QkxZKQogICAgIHN0YXRpYyB2b2lkKiBib3hXYXNtKFdhc206OkNhbGxlZSogY2FsbGVlKQogICAg
IHsKLSAgICAgICAgQ2FsbGVlQml0cyByZXN1bHQoYml0d2lzZV9jYXN0PHZvaWQqPihiaXR3aXNl
X2Nhc3Q8dWludHB0cl90PihjYWxsZWUpIHwgVGFnQml0c1dhc20pKTsKKyAgICAgICAgQ2FsbGVl
Qml0cyByZXN1bHQocmVpbnRlcnByZXRfY2FzdDx2b2lkKj4ocmVpbnRlcnByZXRfY2FzdDx1aW50
cHRyX3Q+KGNhbGxlZSkgfCBUYWdCaXRzV2FzbSkpOwogICAgICAgICBBU1NFUlQocmVzdWx0Lmlz
V2FzbSgpKTsKICAgICAgICAgcmV0dXJuIHJlc3VsdC5yYXdQdHIoKTsKICAgICB9CkBAIC02MCw3
ICs2MCw3IEBAIHB1YmxpYzoKICAgICBib29sIGlzV2FzbSgpIGNvbnN0CiAgICAgewogI2lmIEVO
QUJMRShXRUJBU1NFTUJMWSkKLSAgICAgICAgcmV0dXJuIChiaXR3aXNlX2Nhc3Q8dWludHB0cl90
PihtX3B0cikgJiBUYWdXYXNtTWFzaykgPT0gVGFnQml0c1dhc207CisgICAgICAgIHJldHVybiAo
cmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KG1fcHRyKSAmIFRhZ1dhc21NYXNrKSA9PSBUYWdC
aXRzV2FzbTsKICNlbHNlCiAgICAgICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgpAQCAtNzcsNyAr
NzcsNyBAQCBwdWJsaWM6CiAgICAgV2FzbTo6Q2FsbGVlKiBhc1dhc21DYWxsZWUoKSBjb25zdAog
ICAgIHsKICAgICAgICAgQVNTRVJUKGlzV2FzbSgpKTsKLSAgICAgICAgcmV0dXJuIGJpdHdpc2Vf
Y2FzdDxXYXNtOjpDYWxsZWUqPihiaXR3aXNlX2Nhc3Q8dWludHB0cl90PihtX3B0cikgJiB+VGFn
Qml0c1dhc20pOworICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxXYXNtOjpDYWxsZWUq
PihyZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4obV9wdHIpICYgflRhZ0JpdHNXYXNtKTsKICAg
ICB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJl
dGVyL0ludGVycHJldGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9J
bnRlcnByZXRlci5jcHAKaW5kZXggNmU2NjhjNzc0YjZhMzA5M2Y0YzQ2MzQyZWM1YjFhZGJlOWQw
ZjdlNC4uYjQ1ZDg5MDMxN2EzNTkyOGM5NGQ5ZmE2MDMzMmJmYTdhNDkyYmU1MSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCkBAIC01
NjksNyArNTY5LDcgQEAgcHJpdmF0ZToKIAogICAgICAgICBSZWdpc3RlckF0T2Zmc2V0TGlzdCog
YWxsQ2FsbGVlU2F2ZXMgPSBSZWdpc3RlclNldDo6dm1DYWxsZWVTYXZlUmVnaXN0ZXJPZmZzZXRz
KCk7CiAgICAgICAgIFJlZ2lzdGVyU2V0IGRvbnRDb3B5UmVnaXN0ZXJzID0gUmVnaXN0ZXJTZXQ6
OnN0YWNrUmVnaXN0ZXJzKCk7Ci0gICAgICAgIGludHB0cl90KiBmcmFtZSA9IHJlaW50ZXJwcmV0
X2Nhc3Q8aW50cHRyX3QqPihtX2NhbGxGcmFtZS0+cmVnaXN0ZXJzKCkpOworICAgICAgICBDUFVS
ZWdpc3RlciogZnJhbWUgPSByZWludGVycHJldF9jYXN0PENQVVJlZ2lzdGVyKj4obV9jYWxsRnJh
bWUtPnJlZ2lzdGVycygpKTsKIAogICAgICAgICB1bnNpZ25lZCByZWdpc3RlckNvdW50ID0gY3Vy
cmVudENhbGxlZVNhdmVzLT5zaXplKCk7CiAgICAgICAgIFZNRW50cnlSZWNvcmQqIHJlY29yZCA9
IHZtRW50cnlSZWNvcmQobV92bS50b3BFbnRyeUZyYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9WTUVudHJ5UmVjb3JkLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW50ZXJwcmV0ZXIvVk1FbnRyeVJlY29yZC5oCmluZGV4IDIxYWUzNWI2OTFkYzNl
ZGVhOWZhN2YwZDdkYWI1OWQ3YzI2Y2FlYzMuLjZiNmViNzMxYjNiOWJjNmE0NzY4ZmM4ZGFmODUy
MTQ5NGFmMjQ3OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRl
ci9WTUVudHJ5UmVjb3JkLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVy
L1ZNRW50cnlSZWNvcmQuaApAQCAtNDcsNyArNDcsNyBAQCBzdHJ1Y3QgVk1FbnRyeVJlY29yZCB7
CiAgICAgSlNPYmplY3QqIGNhbGxlZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2FsbGVlOyB9CiAKICNp
ZiAhRU5BQkxFKENfTE9PUCkgJiYgTlVNQkVSX09GX0NBTExFRV9TQVZFU19SRUdJU1RFUlMgPiAw
Ci0gICAgaW50cHRyX3QgY2FsbGVlU2F2ZVJlZ2lzdGVyc0J1ZmZlcltOVU1CRVJfT0ZfQ0FMTEVF
X1NBVkVTX1JFR0lTVEVSU107CisgICAgQ1BVUmVnaXN0ZXIgY2FsbGVlU2F2ZVJlZ2lzdGVyc0J1
ZmZlcltOVU1CRVJfT0ZfQ0FMTEVFX1NBVkVTX1JFR0lTVEVSU107CiAjZW5kaWYKIAogICAgIEV4
ZWNTdGF0ZSogcHJldlRvcENhbGxGcmFtZSgpIHsgcmV0dXJuIG1fcHJldlRvcENhbGxGcmFtZTsg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKaW5kZXggOWRh
MTMyYTJjZDFiNDRhZGRjNzk1ZDBiZTA3MWQzNzY0Yzk5YTAzYy4uOWEzNTJlMWZlZWQyOTBlNGIz
YTdkOTg1Y2I4NWQ1MDBkODg2MmY4NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9Bc3NlbWJseUhlbHBlcnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fz
c2VtYmx5SGVscGVycy5oCkBAIC00NjEsMTEgKzQ2MSwxMSBAQCBwdWJsaWM6CiAgICAgewogICAg
ICAgICBBU1NFUlQoZnJhbWVTaXplICUgc3RhY2tBbGlnbm1lbnRCeXRlcygpID09IDApOwogICAg
ICAgICBpZiAoZnJhbWVTaXplIDw9IDEyOCkgewotICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBv
ZmZzZXQgPSAwOyBvZmZzZXQgPCBmcmFtZVNpemU7IG9mZnNldCArPSBzaXplb2YoaW50cHRyX3Qp
KQorICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBvZmZzZXQgPSAwOyBvZmZzZXQgPCBmcmFtZVNp
emU7IG9mZnNldCArPSBzaXplb2YoQ1BVUmVnaXN0ZXIpKQogICAgICAgICAgICAgICAgIHN0b3Jl
UHRyKFRydXN0ZWRJbW0zMigwKSwgQWRkcmVzcyhjdXJyZW50VG9wLCAtOCAtIG9mZnNldCkpOwog
ICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgY29uc3RleHByIHVuc2lnbmVkIHN0b3JlQnl0
ZXNQZXJJdGVyYXRpb24gPSBzdGFja0FsaWdubWVudEJ5dGVzKCk7Ci0gICAgICAgICAgICBjb25z
dGV4cHIgdW5zaWduZWQgc3RvcmVzUGVySXRlcmF0aW9uID0gc3RvcmVCeXRlc1Blckl0ZXJhdGlv
biAvIHNpemVvZihpbnRwdHJfdCk7CisgICAgICAgICAgICBjb25zdGV4cHIgdW5zaWduZWQgc3Rv
cmVzUGVySXRlcmF0aW9uID0gc3RvcmVCeXRlc1Blckl0ZXJhdGlvbiAvIHNpemVvZihDUFVSZWdp
c3Rlcik7CiAKICAgICAgICAgICAgIG1vdmUoY3VycmVudFRvcCwgdGVtcCk7CiAgICAgICAgICAg
ICBMYWJlbCB6ZXJvTG9vcCA9IGxhYmVsKCk7CkBAIC00NzUsNyArNDc1LDcgQEAgcHVibGljOgog
ICAgICAgICAgICAgc3RvcmVQYWlyNjQoQVJNNjRSZWdpc3RlcnM6OnpyLCBBUk02NFJlZ2lzdGVy
czo6enIsIHRlbXApOwogI2Vsc2UKICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IHN0b3Jl
c1Blckl0ZXJhdGlvbjsgaS0tICE9IDA7KQotICAgICAgICAgICAgICAgIHN0b3JlUHRyKFRydXN0
ZWRJbW0zMigwKSwgQWRkcmVzcyh0ZW1wLCBzaXplb2YoaW50cHRyX3QpICogaSkpOworICAgICAg
ICAgICAgICAgIHN0b3JlUHRyKFRydXN0ZWRJbW0zMigwKSwgQWRkcmVzcyh0ZW1wLCBzaXplb2Yo
Q1BVUmVnaXN0ZXIpICogaSkpOwogI2VuZGlmCiAgICAgICAgICAgICBicmFuY2hQdHIoTm90RXF1
YWwsIHRlbXAsIG5ld1RvcCkubGlua1RvKHplcm9Mb29wLCB0aGlzKTsKICAgICAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWdpc3RlckF0T2Zmc2V0LmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZ2lzdGVyQXRPZmZzZXQuaAppbmRleCBjZDQxNWI2
ZDY2OWY5MzlmZjFkMzVjZjMxYzdjZDdiNGEyMGU5MmM0Li44ZTU5NzQ2NGE3OGQzNDQ1ZjE4MTlk
MTMxZTk0NTA1ZTA3NzcxOTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L1JlZ2lzdGVyQXRPZmZzZXQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZ2lz
dGVyQXRPZmZzZXQuaApAQCAtNDksNyArNDksNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgUmVnIHJl
ZygpIGNvbnN0IHsgcmV0dXJuIG1fcmVnOyB9CiAgICAgcHRyZGlmZl90IG9mZnNldCgpIGNvbnN0
IHsgcmV0dXJuIG1fb2Zmc2V0OyB9Ci0gICAgaW50IG9mZnNldEFzSW5kZXgoKSBjb25zdCB7IHJl
dHVybiBvZmZzZXQoKSAvIHNpemVvZih2b2lkKik7IH0KKyAgICBpbnQgb2Zmc2V0QXNJbmRleCgp
IGNvbnN0IHsgQVNTRVJUKCEob2Zmc2V0KCkgJSBzaXplb2YoQ1BVUmVnaXN0ZXIpKSk7IHJldHVy
biBvZmZzZXQoKSAvIHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKENQVVJlZ2lzdGVyKSk7IH0KICAg
ICAKICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgUmVnaXN0ZXJBdE9mZnNldCYgb3RoZXIpIGNv
bnN0CiAgICAgewpAQCAtNjksNyArNjksNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgUmVn
IG1fcmVnOwotICAgIHB0cmRpZmZfdCBtX29mZnNldCA6IHNpemVvZihwdHJkaWZmX3QpICogOCAt
IHNpemVvZihSZWcpICogODsKKyAgICBwdHJkaWZmX3QgbV9vZmZzZXQgOiAoc2l6ZW9mKHB0cmRp
ZmZfdCkgLSBzaXplb2YoUmVnKSkgKiBDSEFSX0JJVDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpT
QwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWdpc3RlckF0T2Zmc2V0
TGlzdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZ2lzdGVyQXRPZmZzZXRMaXN0
LmNwcAppbmRleCA2ZmUwNmU3NzYyYjRhNDc5ZGQwNTE0Njg2MGFhZTliNGRkMWEzZmJkLi40OTI1
MmZjMjMwMGI3ZjJiM2Q4NmY1M2I4ZWU4YzQ3ZWE3MDc1MjM4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L1JlZ2lzdGVyQXRPZmZzZXRMaXN0LmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L1JlZ2lzdGVyQXRPZmZzZXRMaXN0LmNwcApAQCAtNDAsMTIgKzQw
LDEyIEBAIFJlZ2lzdGVyQXRPZmZzZXRMaXN0OjpSZWdpc3RlckF0T2Zmc2V0TGlzdChSZWdpc3Rl
clNldCByZWdpc3RlclNldCwgT2Zmc2V0QmFzZVR5CiAgICAgcHRyZGlmZl90IG9mZnNldCA9IDA7
CiAgICAgCiAgICAgaWYgKG9mZnNldEJhc2VUeXBlID09IEZyYW1lUG9pbnRlckJhc2VkKQotICAg
ICAgICBvZmZzZXQgPSAtKHN0YXRpY19jYXN0PHB0cmRpZmZfdD4obnVtYmVyT2ZSZWdpc3RlcnMp
ICogc2l6ZW9mKHZvaWQqKSk7CisgICAgICAgIG9mZnNldCA9IC0oc3RhdGljX2Nhc3Q8cHRyZGlm
Zl90PihudW1iZXJPZlJlZ2lzdGVycykgKiBzaXplb2YoQ1BVUmVnaXN0ZXIpKTsKIAogICAgIG1f
cmVnaXN0ZXJzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkobnVtYmVyT2ZSZWdpc3RlcnMpOwogICAg
IHJlZ2lzdGVyU2V0LmZvckVhY2goWyZdIChSZWcgcmVnKSB7CiAgICAgICAgIG1fcmVnaXN0ZXJz
LmFwcGVuZChSZWdpc3RlckF0T2Zmc2V0KHJlZywgb2Zmc2V0KSk7Ci0gICAgICAgIG9mZnNldCAr
PSBzaXplb2Yodm9pZCopOworICAgICAgICBvZmZzZXQgKz0gc2l6ZW9mKENQVVJlZ2lzdGVyKTsK
ICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xM
SW50RGF0YS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnREYXRhLmNwcApp
bmRleCAwZGQwNDU0MzM0Nzk3N2M1NjczYmZlZWJkZTM4YjhjNTIxZDI3ZDY5Li5kMDYxYjYzZGQ0
ZGY3N2JlNmJmMDlhODkwOWJhMjZhZjQwMjljZWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTExJbnREYXRhLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvTExJbnREYXRhLmNwcApAQCAtNzYsMjIgKzc2LDIwIEBAIHZvaWQgRGF0YTo6cGVyZm9y
bUFzc2VydGlvbnMoVk0mIHZtKQogICAgIC8vIHByZXBhcmVkIHRvIGNoYW5nZSBMb3dMZXZlbElu
dGVycHJldGVyLmFzbSBhcyB3ZWxsISEKIAogI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAgY29uc3Qg
cHRyZGlmZl90IFB0clNpemUgPSA4OwogICAgIGNvbnN0IHB0cmRpZmZfdCBDYWxsRnJhbWVIZWFk
ZXJTbG90cyA9IDU7CiAjZWxzZSAvLyBVU0UoSlNWQUxVRTY0KSAvLyBpLmUuIDMyLWJpdCB2ZXJz
aW9uCi0gICAgY29uc3QgcHRyZGlmZl90IFB0clNpemUgPSA0OwogICAgIGNvbnN0IHB0cmRpZmZf
dCBDYWxsRnJhbWVIZWFkZXJTbG90cyA9IDQ7CiAjZW5kaWYKKyAgICBjb25zdCBwdHJkaWZmX3Qg
TWFjaGluZVJlZ2lzdGVyU2l6ZSA9IHNpemVvZihDUFVSZWdpc3Rlcik7CiAgICAgY29uc3QgcHRy
ZGlmZl90IFNsb3RTaXplID0gODsKIAotICAgIFNUQVRJQ19BU1NFUlQoc2l6ZW9mKHZvaWQqKSA9
PSBQdHJTaXplKTsKICAgICBTVEFUSUNfQVNTRVJUKHNpemVvZihSZWdpc3RlcikgPT0gU2xvdFNp
emUpOwogICAgIFNUQVRJQ19BU1NFUlQoQ2FsbEZyYW1lOjpoZWFkZXJTaXplSW5SZWdpc3RlcnMg
PT0gQ2FsbEZyYW1lSGVhZGVyU2xvdHMpOwogCiAgICAgQVNTRVJUKCFDYWxsRnJhbWU6OmNhbGxl
ckZyYW1lT2Zmc2V0KCkpOwotICAgIFNUQVRJQ19BU1NFUlQoQ2FsbGVyRnJhbWVBbmRQQzo6c2l6
ZUluUmVnaXN0ZXJzID09IChQdHJTaXplICogMikgLyBTbG90U2l6ZSk7Ci0gICAgQVNTRVJUKENh
bGxGcmFtZTo6cmV0dXJuUENPZmZzZXQoKSA9PSBDYWxsRnJhbWU6OmNhbGxlckZyYW1lT2Zmc2V0
KCkgKyBQdHJTaXplKTsKLSAgICBBU1NFUlQoQ2FsbEZyYW1lU2xvdDo6Y29kZUJsb2NrICogc2l6
ZW9mKFJlZ2lzdGVyKSA9PSBDYWxsRnJhbWU6OnJldHVyblBDT2Zmc2V0KCkgKyBQdHJTaXplKTsK
KyAgICBTVEFUSUNfQVNTRVJUKENhbGxlckZyYW1lQW5kUEM6OnNpemVJblJlZ2lzdGVycyA9PSAo
TWFjaGluZVJlZ2lzdGVyU2l6ZSAqIDIpIC8gU2xvdFNpemUpOworICAgIEFTU0VSVChDYWxsRnJh
bWU6OnJldHVyblBDT2Zmc2V0KCkgPT0gQ2FsbEZyYW1lOjpjYWxsZXJGcmFtZU9mZnNldCgpICsg
TWFjaGluZVJlZ2lzdGVyU2l6ZSk7CisgICAgQVNTRVJUKENhbGxGcmFtZVNsb3Q6OmNvZGVCbG9j
ayAqIHNpemVvZihSZWdpc3RlcikgPT0gQ2FsbEZyYW1lOjpyZXR1cm5QQ09mZnNldCgpICsgTWFj
aGluZVJlZ2lzdGVyU2l6ZSk7CiAgICAgU1RBVElDX0FTU0VSVChDYWxsRnJhbWVTbG90OjpjYWxs
ZWUgKiBzaXplb2YoUmVnaXN0ZXIpID09IENhbGxGcmFtZVNsb3Q6OmNvZGVCbG9jayAqIHNpemVv
ZihSZWdpc3RlcikgKyBTbG90U2l6ZSk7CiAgICAgU1RBVElDX0FTU0VSVChDYWxsRnJhbWVTbG90
Ojphcmd1bWVudENvdW50ICogc2l6ZW9mKFJlZ2lzdGVyKSA9PSBDYWxsRnJhbWVTbG90OjpjYWxs
ZWUgKiBzaXplb2YoUmVnaXN0ZXIpICsgU2xvdFNpemUpOwogICAgIFNUQVRJQ19BU1NFUlQoQ2Fs
bEZyYW1lU2xvdDo6dGhpc0FyZ3VtZW50ICogc2l6ZW9mKFJlZ2lzdGVyKSA9PSBDYWxsRnJhbWVT
bG90Ojphcmd1bWVudENvdW50ICogc2l6ZW9mKFJlZ2lzdGVyKSArIFNsb3RTaXplKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludE9mZmxpbmVBc21Db25maWcu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludE9mZmxpbmVBc21Db25maWcuaApp
bmRleCBiYTZkNTE2ZDVmM2Y4MWEwNzM3Yjk2MjI2OWVjMzZiMDcyOWZjMmNlLi42YjliNzk4NzZl
Y2VhNjU2YzQyYTY1OTU2NGVhNTQ4MDgyNzAwM2RlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTExJbnRPZmZsaW5lQXNtQ29uZmlnLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2xsaW50L0xMSW50T2ZmbGluZUFzbUNvbmZpZy5oCkBAIC0xNDUsNiArMTQ1LDEy
IEBACiAjZGVmaW5lIE9GRkxJTkVfQVNNX0pTVkFMVUU2NCAwCiAjZW5kaWYKIAorI2lmIENQVShB
RERSRVNTNjQpCisjZGVmaW5lIE9GRkxJTkVfQVNNX0FERFJFU1M2NCAxCisjZWxzZQorI2RlZmlu
ZSBPRkZMSU5FX0FTTV9BRERSRVNTNjQgMAorI2VuZGlmCisKICNpZiBFTkFCTEUoUE9JU09OKQog
I2RlZmluZSBPRkZMSU5FX0FTTV9QT0lTT04gMQogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbSBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQppbmRleCAyYjQzNTBjZDUy
YTg3M2YxNGI1Yzg3NzZlYjRmYjljM2QwNGZhM2Q4Li5lOGFhMzAwNGIxOTNmOGQ0NGNmOTQxNjhl
YjYyMjZhNTA2NDI1ZWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TG93TGV2ZWxJbnRlcnByZXRlci5hc20KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCkBAIC0xNTcsOSArMTU3LDExIEBAIGNvbnN0IFB0clNp
emUgPSBjb25zdGV4cHIgKHNpemVvZih2b2lkKikpCiAKIGlmIEpTVkFMVUU2NAogICAgIGNvbnN0
IENhbGxGcmFtZUhlYWRlclNsb3RzID0gNQorICAgIGNvbnN0IE1hY2hpbmVSZWdpc3RlclNpemUg
PSA4CiBlbHNlCiAgICAgY29uc3QgQ2FsbEZyYW1lSGVhZGVyU2xvdHMgPSA0CiAgICAgY29uc3Qg
Q2FsbEZyYW1lQWxpZ25TbG90cyA9IDEKKyAgICBjb25zdCBNYWNoaW5lUmVnaXN0ZXJTaXplID0g
NAogZW5kCiBjb25zdCBTbG90U2l6ZSA9IDgKIApAQCAtMTcwLDExICsxNzIsMTEgQEAgY29uc3Qg
U3RhY2tBbGlnbm1lbnQgPSAxNgogY29uc3QgU3RhY2tBbGlnbm1lbnRTbG90cyA9IDIKIGNvbnN0
IFN0YWNrQWxpZ25tZW50TWFzayA9IFN0YWNrQWxpZ25tZW50IC0gMQogCi1jb25zdCBDYWxsZXJG
cmFtZUFuZFBDU2l6ZSA9IDIgKiBQdHJTaXplCitjb25zdCBDYWxsZXJGcmFtZUFuZFBDU2l6ZSA9
IGNvbnN0ZXhwciAoc2l6ZW9mKENhbGxlckZyYW1lQW5kUEMpKQogCiBjb25zdCBDYWxsZXJGcmFt
ZSA9IDAKLWNvbnN0IFJldHVyblBDID0gQ2FsbGVyRnJhbWUgKyBQdHJTaXplCi1jb25zdCBDb2Rl
QmxvY2sgPSBSZXR1cm5QQyArIFB0clNpemUKK2NvbnN0IFJldHVyblBDID0gQ2FsbGVyRnJhbWUg
KyBNYWNoaW5lUmVnaXN0ZXJTaXplCitjb25zdCBDb2RlQmxvY2sgPSBSZXR1cm5QQyArIE1hY2hp
bmVSZWdpc3RlclNpemUKIGNvbnN0IENhbGxlZSA9IENvZGVCbG9jayArIFNsb3RTaXplCiBjb25z
dCBBcmd1bWVudENvdW50ID0gQ2FsbGVlICsgU2xvdFNpemUKIGNvbnN0IFRoaXNBcmd1bWVudE9m
ZnNldCA9IEFyZ3VtZW50Q291bnQgKyBTbG90U2l6ZQpAQCAtMjk0LDM1ICsyOTYsMzUgQEAgaWYg
SlNWQUxVRTY0CiAgICAgZW5kCiAKICAgICBtYWNybyBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24ob2Zm
c2V0LCBkZXN0KQotICAgICAgICBsb2FkaXMgb2Zmc2V0ICogOFtQQiwgUEMsIDhdLCBkZXN0Cisg
ICAgICAgIGxvYWRpcyBvZmZzZXQgKiBQdHJTaXplW1BCLCBQQywgUHRyU2l6ZV0sIGRlc3QKICAg
ICBlbmQKICAgICAKICAgICBtYWNybyBsb2FkcEZyb21JbnN0cnVjdGlvbihvZmZzZXQsIGRlc3Qp
Ci0gICAgICAgIGxvYWRwIG9mZnNldCAqIDhbUEIsIFBDLCA4XSwgZGVzdAorICAgICAgICBsb2Fk
cCBvZmZzZXQgKiBQdHJTaXplW1BCLCBQQywgUHRyU2l6ZV0sIGRlc3QKICAgICBlbmQKIAogICAg
IG1hY3JvIGxvYWRpc0Zyb21TdHJ1Y3Qob2Zmc2V0LCBkZXN0KQotICAgICAgICBsb2FkaXMgb2Zm
c2V0W1BCLCBQQywgOF0sIGRlc3QKKyAgICAgICAgbG9hZGlzIG9mZnNldFtQQiwgUEMsIFB0clNp
emVdLCBkZXN0CiAgICAgZW5kCiAKICAgICBtYWNybyBsb2FkcEZyb21TdHJ1Y3Qob2Zmc2V0LCBk
ZXN0KQotICAgICAgICBsb2FkcCBvZmZzZXRbUEIsIFBDLCA4XSwgZGVzdAorICAgICAgICBsb2Fk
cCBvZmZzZXRbUEIsIFBDLCBQdHJTaXplXSwgZGVzdAogICAgIGVuZAogCiAgICAgbWFjcm8gc3Rv
cmVpc1RvSW5zdHJ1Y3Rpb24odmFsdWUsIG9mZnNldCkKLSAgICAgICAgc3RvcmVpIHZhbHVlLCBv
ZmZzZXQgKiA4W1BCLCBQQywgOF0KKyAgICAgICAgc3RvcmVpIHZhbHVlLCBvZmZzZXQgKiBQdHJT
aXplW1BCLCBQQywgUHRyU2l6ZV0KICAgICBlbmQKIAogICAgIG1hY3JvIHN0b3JlcFRvSW5zdHJ1
Y3Rpb24odmFsdWUsIG9mZnNldCkKLSAgICAgICAgc3RvcmVwIHZhbHVlLCBvZmZzZXQgKiA4W1BC
LCBQQywgOF0KKyAgICAgICAgc3RvcmVwIHZhbHVlLCBvZmZzZXQgKiBQdHJTaXplW1BCLCBQQywg
UHRyU2l6ZV0KICAgICBlbmQKIAogICAgIG1hY3JvIHN0b3JlaXNGcm9tU3RydWN0KHZhbHVlLCBv
ZmZzZXQpCi0gICAgICAgIHN0b3JlaSB2YWx1ZSwgb2Zmc2V0W1BCLCBQQywgOF0KKyAgICAgICAg
c3RvcmVpIHZhbHVlLCBvZmZzZXRbUEIsIFBDLCBQdHJTaXplXQogICAgIGVuZAogCiAgICAgbWFj
cm8gc3RvcmVwRnJvbVN0cnVjdCh2YWx1ZSwgb2Zmc2V0KQotICAgICAgICBzdG9yZXAgdmFsdWUs
IG9mZnNldFtQQiwgUEMsIDhdCisgICAgICAgIHN0b3JlcCB2YWx1ZSwgb2Zmc2V0W1BCLCBQQywg
UHRyU2l6ZV0KICAgICBlbmQKIAogZWxzZQpAQCAtNTc0LDcgKzU3Niw3IEBAIGVsc2lmIFg4NiBv
ciBYODZfV0lOCiAgICAgY29uc3QgQ2FsbGVlU2F2ZVJlZ2lzdGVyQ291bnQgPSAzCiBlbmQKIAot
Y29uc3QgQ2FsbGVlUmVnaXN0ZXJTYXZlU2l6ZSA9IENhbGxlZVNhdmVSZWdpc3RlckNvdW50ICog
UHRyU2l6ZQorY29uc3QgQ2FsbGVlUmVnaXN0ZXJTYXZlU2l6ZSA9IENhbGxlZVNhdmVSZWdpc3Rl
ckNvdW50ICogTWFjaGluZVJlZ2lzdGVyU2l6ZQogCiAjIFZNRW50cnlUb3RhbEZyYW1lU2l6ZSBp
bmNsdWRlcyB0aGUgc3BhY2UgZm9yIHN0cnVjdCBWTUVudHJ5UmVjb3JkIGFuZCB0aGUKICMgY2Fs
bGVlIHNhdmUgcmVnaXN0ZXJzIHJvdW5kZWQgdXAgdG8ga2VlcCB0aGUgc3RhY2sgYWxpZ25lZApA
QCAtNjk3LDE2ICs2OTksMTYgQEAgbWFjcm8gY29weUNhbGxlZVNhdmVzVG9WTUVudHJ5RnJhbWVD
YWxsZWVTYXZlc0J1ZmZlcih2bSwgdGVtcCkKICAgICAgICAgdm1FbnRyeVJlY29yZCh0ZW1wLCB0
ZW1wKQogICAgICAgICBsZWFwIFZNRW50cnlSZWNvcmQ6OmNhbGxlZVNhdmVSZWdpc3RlcnNCdWZm
ZXJbdGVtcF0sIHRlbXAKICAgICAgICAgaWYgQVJNNjQgb3IgQVJNNjRFCi0gICAgICAgICAgICBz
dG9yZXAgY3NyMCwgW3RlbXBdCi0gICAgICAgICAgICBzdG9yZXAgY3NyMSwgOFt0ZW1wXQotICAg
ICAgICAgICAgc3RvcmVwIGNzcjIsIDE2W3RlbXBdCi0gICAgICAgICAgICBzdG9yZXAgY3NyMywg
MjRbdGVtcF0KLSAgICAgICAgICAgIHN0b3JlcCBjc3I0LCAzMlt0ZW1wXQotICAgICAgICAgICAg
c3RvcmVwIGNzcjUsIDQwW3RlbXBdCi0gICAgICAgICAgICBzdG9yZXAgY3NyNiwgNDhbdGVtcF0K
LSAgICAgICAgICAgIHN0b3JlcCBjc3I3LCA1Nlt0ZW1wXQotICAgICAgICAgICAgc3RvcmVwIGNz
cjgsIDY0W3RlbXBdCi0gICAgICAgICAgICBzdG9yZXAgY3NyOSwgNzJbdGVtcF0KKyAgICAgICAg
ICAgIHN0b3JlcSBjc3IwLCBbdGVtcF0KKyAgICAgICAgICAgIHN0b3JlcSBjc3IxLCA4W3RlbXBd
CisgICAgICAgICAgICBzdG9yZXEgY3NyMiwgMTZbdGVtcF0KKyAgICAgICAgICAgIHN0b3JlcSBj
c3IzLCAyNFt0ZW1wXQorICAgICAgICAgICAgc3RvcmVxIGNzcjQsIDMyW3RlbXBdCisgICAgICAg
ICAgICBzdG9yZXEgY3NyNSwgNDBbdGVtcF0KKyAgICAgICAgICAgIHN0b3JlcSBjc3I2LCA0OFt0
ZW1wXQorICAgICAgICAgICAgc3RvcmVxIGNzcjcsIDU2W3RlbXBdCisgICAgICAgICAgICBzdG9y
ZXEgY3NyOCwgNjRbdGVtcF0KKyAgICAgICAgICAgIHN0b3JlcSBjc3I5LCA3Mlt0ZW1wXQogICAg
ICAgICAgICAgc3RvcmVkIGNzZnIwLCA4MFt0ZW1wXQogICAgICAgICAgICAgc3RvcmVkIGNzZnIx
LCA4OFt0ZW1wXQogICAgICAgICAgICAgc3RvcmVkIGNzZnIyLCA5Nlt0ZW1wXQpAQCAtNzE2LDE5
ICs3MTgsMTkgQEAgbWFjcm8gY29weUNhbGxlZVNhdmVzVG9WTUVudHJ5RnJhbWVDYWxsZWVTYXZl
c0J1ZmZlcih2bSwgdGVtcCkKICAgICAgICAgICAgIHN0b3JlZCBjc2ZyNiwgMTI4W3RlbXBdCiAg
ICAgICAgICAgICBzdG9yZWQgY3NmcjcsIDEzNlt0ZW1wXQogICAgICAgICBlbHNpZiBYODZfNjQK
LSAgICAgICAgICAgIHN0b3JlcCBjc3IwLCBbdGVtcF0KLSAgICAgICAgICAgIHN0b3JlcCBjc3Ix
LCA4W3RlbXBdCi0gICAgICAgICAgICBzdG9yZXAgY3NyMiwgMTZbdGVtcF0KLSAgICAgICAgICAg
IHN0b3JlcCBjc3IzLCAyNFt0ZW1wXQotICAgICAgICAgICAgc3RvcmVwIGNzcjQsIDMyW3RlbXBd
CisgICAgICAgICAgICBzdG9yZXEgY3NyMCwgW3RlbXBdCisgICAgICAgICAgICBzdG9yZXEgY3Ny
MSwgOFt0ZW1wXQorICAgICAgICAgICAgc3RvcmVxIGNzcjIsIDE2W3RlbXBdCisgICAgICAgICAg
ICBzdG9yZXEgY3NyMywgMjRbdGVtcF0KKyAgICAgICAgICAgIHN0b3JlcSBjc3I0LCAzMlt0ZW1w
XQogICAgICAgICBlbHNpZiBYODZfNjRfV0lOCi0gICAgICAgICAgICBzdG9yZXAgY3NyMCwgW3Rl
bXBdCi0gICAgICAgICAgICBzdG9yZXAgY3NyMSwgOFt0ZW1wXQotICAgICAgICAgICAgc3RvcmVw
IGNzcjIsIDE2W3RlbXBdCi0gICAgICAgICAgICBzdG9yZXAgY3NyMywgMjRbdGVtcF0KLSAgICAg
ICAgICAgIHN0b3JlcCBjc3I0LCAzMlt0ZW1wXQotICAgICAgICAgICAgc3RvcmVwIGNzcjUsIDQw
W3RlbXBdCi0gICAgICAgICAgICBzdG9yZXAgY3NyNiwgNDhbdGVtcF0KKyAgICAgICAgICAgIHN0
b3JlcSBjc3IwLCBbdGVtcF0KKyAgICAgICAgICAgIHN0b3JlcSBjc3IxLCA4W3RlbXBdCisgICAg
ICAgICAgICBzdG9yZXEgY3NyMiwgMTZbdGVtcF0KKyAgICAgICAgICAgIHN0b3JlcSBjc3IzLCAy
NFt0ZW1wXQorICAgICAgICAgICAgc3RvcmVxIGNzcjQsIDMyW3RlbXBdCisgICAgICAgICAgICBz
dG9yZXEgY3NyNSwgNDBbdGVtcF0KKyAgICAgICAgICAgIHN0b3JlcSBjc3I2LCA0OFt0ZW1wXQog
ICAgICAgICBlbmQKICAgICBlbmQKIGVuZApAQCAtNzM5LDE2ICs3NDEsMTYgQEAgbWFjcm8gcmVz
dG9yZUNhbGxlZVNhdmVzRnJvbVZNRW50cnlGcmFtZUNhbGxlZVNhdmVzQnVmZmVyKHZtLCB0ZW1w
KQogICAgICAgICB2bUVudHJ5UmVjb3JkKHRlbXAsIHRlbXApCiAgICAgICAgIGxlYXAgVk1FbnRy
eVJlY29yZDo6Y2FsbGVlU2F2ZVJlZ2lzdGVyc0J1ZmZlclt0ZW1wXSwgdGVtcAogICAgICAgICBp
ZiBBUk02NCBvciBBUk02NEUKLSAgICAgICAgICAgIGxvYWRwIFt0ZW1wXSwgY3NyMAotICAgICAg
ICAgICAgbG9hZHAgOFt0ZW1wXSwgY3NyMQotICAgICAgICAgICAgbG9hZHAgMTZbdGVtcF0sIGNz
cjIKLSAgICAgICAgICAgIGxvYWRwIDI0W3RlbXBdLCBjc3IzCi0gICAgICAgICAgICBsb2FkcCAz
Mlt0ZW1wXSwgY3NyNAotICAgICAgICAgICAgbG9hZHAgNDBbdGVtcF0sIGNzcjUKLSAgICAgICAg
ICAgIGxvYWRwIDQ4W3RlbXBdLCBjc3I2Ci0gICAgICAgICAgICBsb2FkcCA1Nlt0ZW1wXSwgY3Ny
NwotICAgICAgICAgICAgbG9hZHAgNjRbdGVtcF0sIGNzcjgKLSAgICAgICAgICAgIGxvYWRwIDcy
W3RlbXBdLCBjc3I5CisgICAgICAgICAgICBsb2FkcSBbdGVtcF0sIGNzcjAKKyAgICAgICAgICAg
IGxvYWRxIDhbdGVtcF0sIGNzcjEKKyAgICAgICAgICAgIGxvYWRxIDE2W3RlbXBdLCBjc3IyCisg
ICAgICAgICAgICBsb2FkcSAyNFt0ZW1wXSwgY3NyMworICAgICAgICAgICAgbG9hZHEgMzJbdGVt
cF0sIGNzcjQKKyAgICAgICAgICAgIGxvYWRxIDQwW3RlbXBdLCBjc3I1CisgICAgICAgICAgICBs
b2FkcSA0OFt0ZW1wXSwgY3NyNgorICAgICAgICAgICAgbG9hZHEgNTZbdGVtcF0sIGNzcjcKKyAg
ICAgICAgICAgIGxvYWRxIDY0W3RlbXBdLCBjc3I4CisgICAgICAgICAgICBsb2FkcSA3Mlt0ZW1w
XSwgY3NyOQogICAgICAgICAgICAgbG9hZGQgODBbdGVtcF0sIGNzZnIwCiAgICAgICAgICAgICBs
b2FkZCA4OFt0ZW1wXSwgY3NmcjEKICAgICAgICAgICAgIGxvYWRkIDk2W3RlbXBdLCBjc2ZyMgpA
QCAtNzU4LDE5ICs3NjAsMTkgQEAgbWFjcm8gcmVzdG9yZUNhbGxlZVNhdmVzRnJvbVZNRW50cnlG
cmFtZUNhbGxlZVNhdmVzQnVmZmVyKHZtLCB0ZW1wKQogICAgICAgICAgICAgbG9hZGQgMTI4W3Rl
bXBdLCBjc2ZyNgogICAgICAgICAgICAgbG9hZGQgMTM2W3RlbXBdLCBjc2ZyNwogICAgICAgICBl
bHNpZiBYODZfNjQKLSAgICAgICAgICAgIGxvYWRwIFt0ZW1wXSwgY3NyMAotICAgICAgICAgICAg
bG9hZHAgOFt0ZW1wXSwgY3NyMQotICAgICAgICAgICAgbG9hZHAgMTZbdGVtcF0sIGNzcjIKLSAg
ICAgICAgICAgIGxvYWRwIDI0W3RlbXBdLCBjc3IzCi0gICAgICAgICAgICBsb2FkcCAzMlt0ZW1w
XSwgY3NyNAorICAgICAgICAgICAgbG9hZHEgW3RlbXBdLCBjc3IwCisgICAgICAgICAgICBsb2Fk
cSA4W3RlbXBdLCBjc3IxCisgICAgICAgICAgICBsb2FkcSAxNlt0ZW1wXSwgY3NyMgorICAgICAg
ICAgICAgbG9hZHEgMjRbdGVtcF0sIGNzcjMKKyAgICAgICAgICAgIGxvYWRxIDMyW3RlbXBdLCBj
c3I0CiAgICAgICAgIGVsc2lmIFg4Nl82NF9XSU4KLSAgICAgICAgICAgIGxvYWRwIFt0ZW1wXSwg
Y3NyMAotICAgICAgICAgICAgbG9hZHAgOFt0ZW1wXSwgY3NyMQotICAgICAgICAgICAgbG9hZHAg
MTZbdGVtcF0sIGNzcjIKLSAgICAgICAgICAgIGxvYWRwIDI0W3RlbXBdLCBjc3IzCi0gICAgICAg
ICAgICBsb2FkcCAzMlt0ZW1wXSwgY3NyNAotICAgICAgICAgICAgbG9hZHAgNDBbdGVtcF0sIGNz
cjUKLSAgICAgICAgICAgIGxvYWRwIDQ4W3RlbXBdLCBjc3I2CisgICAgICAgICAgICBsb2FkcSBb
dGVtcF0sIGNzcjAKKyAgICAgICAgICAgIGxvYWRxIDhbdGVtcF0sIGNzcjEKKyAgICAgICAgICAg
IGxvYWRxIDE2W3RlbXBdLCBjc3IyCisgICAgICAgICAgICBsb2FkcSAyNFt0ZW1wXSwgY3NyMwor
ICAgICAgICAgICAgbG9hZHEgMzJbdGVtcF0sIGNzcjQKKyAgICAgICAgICAgIGxvYWRxIDQwW3Rl
bXBdLCBjc3I1CisgICAgICAgICAgICBsb2FkcSA0OFt0ZW1wXSwgY3NyNgogICAgICAgICBlbmQK
ICAgICBlbmQKIGVuZApAQCAtODg0LDkgKzg4Niw5IEBAIG1hY3JvIHByZXBhcmVGb3JUYWlsQ2Fs
bChjYWxsZWUsIHRlbXAxLCB0ZW1wMiwgdGVtcDMsIGNhbGxQdHJUYWcpCiAgICAgYW5kaSB+U3Rh
Y2tBbGlnbm1lbnRNYXNrLCB0ZW1wMgogCiAgICAgaWYgQVJNIG9yIEFSTXY3X1RSQURJVElPTkFM
IG9yIEFSTXY3IG9yIEFSTTY0IG9yIEFSTTY0RSBvciBDX0xPT1Agb3IgTUlQUwotICAgICAgICBh
ZGRwIDIgKiBQdHJTaXplLCBzcAotICAgICAgICBzdWJpIDIgKiBQdHJTaXplLCB0ZW1wMgotICAg
ICAgICBsb2FkcCBQdHJTaXplW2Nmcl0sIGxyCisgICAgICAgIGFkZHAgQ2FsbGVyRnJhbWVBbmRQ
Q1NpemUsIHNwCisgICAgICAgIHN1YmkgQ2FsbGVyRnJhbWVBbmRQQ1NpemUsIHRlbXAyCisgICAg
ICAgIGxvYWRwIENhbGxlckZyYW1lQW5kUEM6OnJldHVyblBDW2Nmcl0sIGxyCiAgICAgZWxzZQog
ICAgICAgICBhZGRwIFB0clNpemUsIHNwCiAgICAgICAgIHN1YmkgUHRyU2l6ZSwgdGVtcDIKQEAg
LTkwMywxMCArOTA1LDE3IEBAIG1hY3JvIHByZXBhcmVGb3JUYWlsQ2FsbChjYWxsZWUsIHRlbXAx
LCB0ZW1wMiwgdGVtcDMsIGNhbGxQdHJUYWcpCiAgICAgbG9hZHAgW2Nmcl0sIGNmcgogCiAuY29w
eUxvb3A6Ci0gICAgc3ViaSBQdHJTaXplLCB0ZW1wMgotICAgIGxvYWRwIFtzcCwgdGVtcDIsIDFd
LCB0ZW1wMwotICAgIHN0b3JlcCB0ZW1wMywgW3RlbXAxLCB0ZW1wMiwgMV0KLSAgICBidGlueiB0
ZW1wMiwgLmNvcHlMb29wCisgICAgaWYgQVJNNjQgYW5kIG5vdCBBRERSRVNTNjQKKyAgICAgICAg
c3ViaSBNYWNoaW5lUmVnaXN0ZXJTaXplLCB0ZW1wMgorICAgICAgICBsb2FkcSBbc3AsIHRlbXAy
LCAxXSwgdGVtcDMKKyAgICAgICAgc3RvcmVxIHRlbXAzLCBbdGVtcDEsIHRlbXAyLCAxXQorICAg
ICAgICBidGlueiB0ZW1wMiwgLmNvcHlMb29wCisgICAgZWxzZQorICAgICAgICBzdWJpIFB0clNp
emUsIHRlbXAyCisgICAgICAgIGxvYWRwIFtzcCwgdGVtcDIsIDFdLCB0ZW1wMworICAgICAgICBz
dG9yZXAgdGVtcDMsIFt0ZW1wMSwgdGVtcDIsIDFdCisgICAgICAgIGJ0aW56IHRlbXAyLCAuY29w
eUxvb3AKKyAgICBlbmQKIAogICAgIG1vdmUgdGVtcDEsIHNwCiAgICAgam1wIGNhbGxlZSwgY2Fs
bFB0clRhZwpAQCAtMTEwOSw3ICsxMTE4LDcgQEAgbWFjcm8gcHJvbG9ndWUoY29kZUJsb2NrR2V0
dGVyLCBjb2RlQmxvY2tTZXR0ZXIsIG9zclNsb3dQYXRoLCB0cmFjZVNsb3dQYXRoKQogCiAgICAg
aWYgSlNWQUxVRTY0CiAgICAgICAgIG1vdmUgVGFnVHlwZU51bWJlciwgdGFnVHlwZU51bWJlcgot
ICAgICAgICBhZGRwIFRhZ0JpdFR5cGVPdGhlciwgdGFnVHlwZU51bWJlciwgdGFnTWFzaworICAg
ICAgICBhZGRxIFRhZ0JpdFR5cGVPdGhlciwgdGFnVHlwZU51bWJlciwgdGFnTWFzawogICAgIGVu
ZAogZW5kCiAKQEAgLTEyNjMsNyArMTI3Miw3IEBAIG1hY3JvIHNldEVudHJ5QWRkcmVzcyhpbmRl
eCwgbGFiZWwpCiAgICAgZWxzaWYgQVJNNjQgb3IgQVJNNjRFCiAgICAgICAgIHBjcnRvYWRkciBs
YWJlbCwgdDEKICAgICAgICAgbW92ZSBpbmRleCwgdDQKLSAgICAgICAgc3RvcmVwIHQxLCBbYTAs
IHQ0LCA4XQorICAgICAgICBzdG9yZXAgdDEsIFthMCwgdDQsIFB0clNpemVdCiAgICAgZWxzaWYg
QVJNIG9yIEFSTXY3IG9yIEFSTXY3X1RSQURJVElPTkFMCiAgICAgICAgIG12bGJsIChsYWJlbCAt
IF9yZWxhdGl2ZVBDQmFzZSksIHQ0CiAgICAgICAgIGFkZHAgdDQsIHQxLCB0NApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20g
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQpp
bmRleCA1ZGI0NTBiNjYzMjE1NGNjN2IwN2Q5MThmMWNiMjhhNDIzY2IyNjYwLi40YThmNDFlMTll
ZjE2MGM5NjRhOGZlNTEyYTgzMTk2Yzg0MjYzNzRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQpAQCAtMjQsNyArMjQs
NyBAQAogCiAjIFV0aWxpdGllcy4KIG1hY3JvIGp1bXBUb0luc3RydWN0aW9uKCkKLSAgICBqbXAg
W1BCLCBQQywgOF0sIEJ5dGVjb2RlUHRyVGFnCisgICAgam1wIFtQQiwgUEMsIFB0clNpemVdLCBC
eXRlY29kZVB0clRhZwogZW5kCiAKIG1hY3JvIGRpc3BhdGNoKGFkdmFuY2UpCkBAIC0zOCw3ICsz
OCw3IEBAIG1hY3JvIGRpc3BhdGNoSW50KGFkdmFuY2UpCiBlbmQKIAogbWFjcm8gZGlzcGF0Y2hJ
bnRJbmRpcmVjdChvZmZzZXQpCi0gICAgZGlzcGF0Y2hJbnQob2Zmc2V0ICogOFtQQiwgUEMsIDhd
KQorICAgIGRpc3BhdGNoSW50KG9mZnNldCAqIFB0clNpemVbUEIsIFBDLCBQdHJTaXplXSkKIGVu
ZAogCiBtYWNybyBkaXNwYXRjaEFmdGVyQ2FsbCgpCkBAIC0zMDAsMTMgKzMwMCwxMyBAQCBfaGFu
ZGxlVW5jYXVnaHRFeGNlcHRpb246CiAKIAogbWFjcm8gcHJlcGFyZVN0YXRlRm9yQ0NhbGwoKQot
ICAgIGxlYXAgW1BCLCBQQywgOF0sIFBDCisgICAgbGVhcCBbUEIsIFBDLCBQdHJTaXplXSwgUEMK
IGVuZAogCiBtYWNybyByZXN0b3JlU3RhdGVBZnRlckNDYWxsKCkKICAgICBtb3ZlIHIwLCBQQwog
ICAgIHN1YnAgUEIsIFBDCi0gICAgcnNoaWZ0cCAzLCBQQworICAgIHJzaGlmdHAgY29uc3RleHBy
IChnZXRMU0JTZXQoc2l6ZW9mKHZvaWQqKSkpLCBQQwogZW5kCiAKIG1hY3JvIGNhbGxTbG93UGF0
aChzbG93UGF0aCkKQEAgLTQ4Nyw3ICs0ODcsNyBAQCBtYWNybyBzdHJ1Y3R1cmVJRFRvU3RydWN0
dXJlV2l0aFNjcmF0Y2goc3RydWN0dXJlSURUaGVuU3RydWN0dXJlLCBzY3JhdGNoLCBzY3JhdAog
ICAgIGxvYWRwIENvZGVCbG9jazo6bV9wb2lzb25lZFZNW3NjcmF0Y2hdLCBzY3JhdGNoCiAgICAg
dW5wb2lzb24oX2dfQ29kZUJsb2NrUG9pc29uLCBzY3JhdGNoLCBzY3JhdGNoMikKICAgICBsb2Fk
cCBWTTo6aGVhcCArIEhlYXA6Om1fc3RydWN0dXJlSURUYWJsZSArIFN0cnVjdHVyZUlEVGFibGU6
Om1fdGFibGVbc2NyYXRjaF0sIHNjcmF0Y2gKLSAgICBsb2FkcCBbc2NyYXRjaCwgc3RydWN0dXJl
SURUaGVuU3RydWN0dXJlLCA4XSwgc3RydWN0dXJlSURUaGVuU3RydWN0dXJlCisgICAgbG9hZHAg
W3NjcmF0Y2gsIHN0cnVjdHVyZUlEVGhlblN0cnVjdHVyZSwgUHRyU2l6ZV0sIHN0cnVjdHVyZUlE
VGhlblN0cnVjdHVyZQogZW5kCiAKIG1hY3JvIGxvYWRTdHJ1Y3R1cmVXaXRoU2NyYXRjaChjZWxs
LCBzdHJ1Y3R1cmUsIHNjcmF0Y2gsIHNjcmF0Y2gyKQpAQCAtNTQ5LDcgKzU0OSw4IEBAIG1hY3Jv
IGZ1bmN0aW9uQXJpdHlDaGVjayhkb25lTGFiZWwsIHNsb3dQYXRoKQogICAgIHN1YnAgQ2FsbGVl
U2F2ZVNwYWNlQXNWaXJ0dWFsUmVnaXN0ZXJzICogOCwgdDMKICAgICBhZGRpIENhbGxlZVNhdmVT
cGFjZUFzVmlydHVhbFJlZ2lzdGVycywgdDIKICAgICBtb3ZlIHQxLCB0MAotICAgIGxzaGlmdHAg
MywgdDAKKyAgICAjIEFkZHMgdG8gc3AgYXJlIGFsd2F5cyA2NCBiaXQgb24gYXJtNjQgc28gd2Ug
bmVlZCB0MCdzIGhpZ2ggYml0cyB0byBzdGF5IG1hcmtlZC4KKyAgICBsc2hpZnRxIDMsIHQwCiAg
ICAgYWRkcCB0MCwgY2ZyCiAgICAgYWRkcCB0MCwgc3AKIC5jb3B5TG9vcDoKQEAgLTU4OCw3ICs1
ODksNyBAQCBtYWNybyBicmFuY2hJZkV4Y2VwdGlvbihsYWJlbCkKICAgICBsb2FkcCBDYWxsZWVb
Y2ZyXSwgdDMKICAgICBhbmRwIE1hcmtlZEJsb2NrTWFzaywgdDMKICAgICBsb2FkcCBNYXJrZWRC
bG9ja0Zvb3Rlck9mZnNldCArIE1hcmtlZEJsb2NrOjpGb290ZXI6Om1fdm1bdDNdLCB0MwotICAg
IGJ0cXogVk06Om1fZXhjZXB0aW9uW3QzXSwgLm5vRXhjZXB0aW9uCisgICAgYnRweiBWTTo6bV9l
eGNlcHRpb25bdDNdLCAubm9FeGNlcHRpb24KICAgICBqbXAgbGFiZWwKIC5ub0V4Y2VwdGlvbjoK
IGVuZApAQCAtMTU0Nyw3ICsxNTQ4LDcgQEAgX2xsaW50X29wX3B1dF9ieV9pZDoKICAgICBsb2Fk
aSBKU0NlbGw6Om1fc3RydWN0dXJlSURbdDJdLCB0MgogICAgICMgTm93LCB0MSBoYXMgdGhlIFN0
cnVjdHVyZSogYW5kIHQyIGhhcyB0aGUgU3RydWN0dXJlSUQgdGhhdCB3ZSB3YW50IHRoYXQgU3Ry
dWN0dXJlKiB0byBoYXZlLgogICAgIGJpbmVxIHQyLCBTdHJ1Y3R1cmU6Om1fYmxvYiArIFN0cnVj
dHVyZUlEQmxvYjo6dS5maWVsZHMuc3RydWN0dXJlSURbdDFdLCAub3BQdXRCeUlkU2xvdwotICAg
IGFkZHAgOCwgdDMKKyAgICBhZGRwIFB0clNpemUsIHQzCiAgICAgbG9hZHEgU3RydWN0dXJlOjpt
X3Byb3RvdHlwZVt0MV0sIHQyCiAgICAgYnFuZXEgdDIsIFZhbHVlTnVsbCwgLm9wUHV0QnlJZFRy
YW5zaXRpb25DaGFpbkxvb3AKIApAQCAtMTc0Niw3ICsxNzQ3LDcgQEAgbWFjcm8gY29udGlndW91
c1B1dEJ5VmFsKHN0b3JlQ2FsbGJhY2spCiAKIC5vdXRPZkJvdW5kczoKICAgICBiaWFlcSB0Mywg
LXNpemVvZiBJbmRleGluZ0hlYWRlciArIEluZGV4aW5nSGVhZGVyOjp1Lmxlbmd0aHMudmVjdG9y
TGVuZ3RoW3QwXSwgLm9wUHV0QnlWYWxPdXRPZkJvdW5kcwotICAgIGxvYWRwIDMyW1BCLCBQQywg
OF0sIHQyCisgICAgbG9hZHBGcm9tSW5zdHJ1Y3Rpb24oNCwgdDIpCiAgICAgc3RvcmViIDEsIEFy
cmF5UHJvZmlsZTo6bV9tYXlTdG9yZVRvSG9sZVt0Ml0KICAgICBhZGRpIDEsIHQzLCB0MgogICAg
IHN0b3JlaSB0MiwgLXNpemVvZiBJbmRleGluZ0hlYWRlciArIEluZGV4aW5nSGVhZGVyOjp1Lmxl
bmd0aHMucHVibGljTGVuZ3RoW3QwXQpAQCAtMTc3MCw4ICsxNzcxLDggQEAgbWFjcm8gcHV0QnlW
YWwoc2xvd1BhdGgpCiAgICAgY29udGlndW91c1B1dEJ5VmFsKAogICAgICAgICBtYWNybyAob3Bl
cmFuZCwgc2NyYXRjaCwgYWRkcmVzcykKICAgICAgICAgICAgIGxvYWRDb25zdGFudE9yVmFyaWFi
bGUob3BlcmFuZCwgc2NyYXRjaCkKLSAgICAgICAgICAgIGJwYiBzY3JhdGNoLCB0YWdUeXBlTnVt
YmVyLCAub3BQdXRCeVZhbFNsb3cKLSAgICAgICAgICAgIHN0b3JlcCBzY3JhdGNoLCBhZGRyZXNz
CisgICAgICAgICAgICBicWIgc2NyYXRjaCwgdGFnVHlwZU51bWJlciwgLm9wUHV0QnlWYWxTbG93
CisgICAgICAgICAgICBzdG9yZXEgc2NyYXRjaCwgYWRkcmVzcwogICAgICAgICAgICAgd3JpdGVC
YXJyaWVyT25PcGVyYW5kcygxLCAzKQogICAgICAgICBlbmQpCiAKQEAgLTE3ODQsNyArMTc4NSw3
IEBAIG1hY3JvIHB1dEJ5VmFsKHNsb3dQYXRoKQogICAgICAgICAgICAgY2kyZCBzY3JhdGNoLCBm
dDAKICAgICAgICAgICAgIGptcCAucmVhZHkKICAgICAgICAgLm5vdEludDoKLSAgICAgICAgICAg
IGFkZHAgdGFnVHlwZU51bWJlciwgc2NyYXRjaAorICAgICAgICAgICAgYWRkcSB0YWdUeXBlTnVt
YmVyLCBzY3JhdGNoCiAgICAgICAgICAgICBmcTJkIHNjcmF0Y2gsIGZ0MAogICAgICAgICAgICAg
YmRuZXF1biBmdDAsIGZ0MCwgLm9wUHV0QnlWYWxTbG93CiAgICAgICAgIC5yZWFkeToKQEAgLTE3
OTcsNyArMTc5OCw3IEBAIG1hY3JvIHB1dEJ5VmFsKHNsb3dQYXRoKQogICAgIGNvbnRpZ3VvdXNQ
dXRCeVZhbCgKICAgICAgICAgbWFjcm8gKG9wZXJhbmQsIHNjcmF0Y2gsIGFkZHJlc3MpCiAgICAg
ICAgICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKG9wZXJhbmQsIHNjcmF0Y2gpCi0gICAgICAg
ICAgICBzdG9yZXAgc2NyYXRjaCwgYWRkcmVzcworICAgICAgICAgICAgc3RvcmVxIHNjcmF0Y2gs
IGFkZHJlc3MKICAgICAgICAgICAgIHdyaXRlQmFycmllck9uT3BlcmFuZHMoMSwgMykKICAgICAg
ICAgZW5kKQogCkBAIC0xOTA2LDEyICsxOTA3LDEyIEBAIF9sbGludF9vcF9qbmVxX3B0cjoKICAg
ICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oMiwgdDEpCiAgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0s
IHQyCiAgICAgbG9hZHAgQ29kZUJsb2NrOjptX2dsb2JhbE9iamVjdFt0Ml0sIHQyCi0gICAgbG9h
ZHAgSlNHbG9iYWxPYmplY3Q6Om1fc3BlY2lhbFBvaW50ZXJzW3QyLCB0MSwgOF0sIHQxCisgICAg
bG9hZHAgSlNHbG9iYWxPYmplY3Q6Om1fc3BlY2lhbFBvaW50ZXJzW3QyLCB0MSwgUHRyU2l6ZV0s
IHQxCiAgICAgYnBuZXEgdDEsIFtjZnIsIHQwLCA4XSwgLm9wSm5lcVB0clRhcmdldAogICAgIGRp
c3BhdGNoKDUpCiAKIC5vcEpuZXFQdHJUYXJnZXQ6Ci0gICAgc3RvcmVpIDEsIDMyW1BCLCBQQywg
OF0KKyAgICBzdG9yZWlzVG9JbnN0cnVjdGlvbigxLCA0KQogICAgIGRpc3BhdGNoSW50SW5kaXJl
Y3QoMykKIAogCkBAIC0yMTM0LDcgKzIxMzUsNyBAQCBfbGxpbnRfb3BfY2F0Y2g6CiAgICAgdW5w
b2lzb24oX2dfQ29kZUJsb2NrUG9pc29uLCBQQiwgdDIpCiAgICAgbG9hZHAgVk06OnRhcmdldElu
dGVycHJldGVyUENGb3JUaHJvd1t0M10sIFBDCiAgICAgc3VicCBQQiwgUEMKLSAgICByc2hpZnRw
IDMsIFBDCisgICAgcnNoaWZ0cCBjb25zdGV4cHIgKGdldExTQlNldChzaXplb2Yodm9pZCopKSks
IFBDCiAKICAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9jaGVja19pZl9leGNlcHRp
b25faXNfdW5jYXRjaGFibGVfYW5kX25vdGlmeV9wcm9maWxlcikKICAgICBicGVxIHIxLCAwLCAu
aXNDYXRjaGFibGVFeGNlcHRpb24KQEAgLTIxNDUsOCArMjE0Niw4IEBAIF9sbGludF9vcF9jYXRj
aDoKICAgICBhbmRwIE1hcmtlZEJsb2NrTWFzaywgdDMKICAgICBsb2FkcCBNYXJrZWRCbG9ja0Zv
b3Rlck9mZnNldCArIE1hcmtlZEJsb2NrOjpGb290ZXI6Om1fdm1bdDNdLCB0MwogCi0gICAgbG9h
ZHEgVk06Om1fZXhjZXB0aW9uW3QzXSwgdDAKLSAgICBzdG9yZXEgMCwgVk06Om1fZXhjZXB0aW9u
W3QzXQorICAgIGxvYWRwIFZNOjptX2V4Y2VwdGlvblt0M10sIHQwCisgICAgc3RvcmVwIDAsIFZN
OjptX2V4Y2VwdGlvblt0M10KICAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oMSwgdDIpCiAgICAg
c3RvcmVxIHQwLCBbY2ZyLCB0MiwgOF0KIApAQCAtMjIyOCw3ICsyMjI5LDcgQEAgbWFjcm8gbmF0
aXZlQ2FsbFRyYW1wb2xpbmUoZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb24pCiAgICAgYW5kcCBN
YXJrZWRCbG9ja01hc2ssIHQzCiAgICAgbG9hZHAgTWFya2VkQmxvY2tGb290ZXJPZmZzZXQgKyBN
YXJrZWRCbG9jazo6Rm9vdGVyOjptX3ZtW3QzXSwgdDMKIAotICAgIGJ0cW56IFZNOjptX2V4Y2Vw
dGlvblt0M10sIC5oYW5kbGVFeGNlcHRpb24KKyAgICBidHBueiBWTTo6bV9leGNlcHRpb25bdDNd
LCAuaGFuZGxlRXhjZXB0aW9uCiAKICAgICBmdW5jdGlvbkVwaWxvZ3VlKCkKICAgICByZXQKQEAg
LTIyNzEsNyArMjI3Miw3IEBAIG1hY3JvIGludGVybmFsRnVuY3Rpb25DYWxsVHJhbXBvbGluZShv
ZmZzZXRPZkZ1bmN0aW9uKQogICAgIGFuZHAgTWFya2VkQmxvY2tNYXNrLCB0MwogICAgIGxvYWRw
IE1hcmtlZEJsb2NrRm9vdGVyT2Zmc2V0ICsgTWFya2VkQmxvY2s6OkZvb3Rlcjo6bV92bVt0M10s
IHQzCiAKLSAgICBidHFueiBWTTo6bV9leGNlcHRpb25bdDNdLCAuaGFuZGxlRXhjZXB0aW9uCisg
ICAgYnRwbnogVk06Om1fZXhjZXB0aW9uW3QzXSwgLmhhbmRsZUV4Y2VwdGlvbgogCiAgICAgZnVu
Y3Rpb25FcGlsb2d1ZSgpCiAgICAgcmV0CkBAIC0yMjk3LDcgKzIyOTgsNyBAQCBlbmQKIG1hY3Jv
IHJlc29sdmVTY29wZSgpCiAgICAgbG9hZGlzRnJvbUluc3RydWN0aW9uKDUsIHQyKQogICAgIGxv
YWRpc0Zyb21JbnN0cnVjdGlvbigyLCB0MCkKLSAgICBsb2FkcCBbY2ZyLCB0MCwgOF0sIHQwCisg
ICAgbG9hZHEgW2NmciwgdDAsIDhdLCB0MAogICAgIGJ0aXogdDIsIC5yZXNvbHZlU2NvcGVMb29w
RW5kCiAKIC5yZXNvbHZlU2NvcGVMb29wOgpAQCAtMjU5Myw3ICsyNTk0LDcgQEAgX2xsaW50X29w
X3B1dF90b19zY29wZToKIF9sbGludF9vcF9nZXRfZnJvbV9hcmd1bWVudHM6CiAgICAgdHJhY2VF
eGVjdXRpb24oKQogICAgIGxvYWRWYXJpYWJsZSgyLCB0MCkKLSAgICBsb2FkaSAyNFtQQiwgUEMs
IDhdLCB0MQorICAgIGxvYWRpIDMgKiBQdHJTaXplW1BCLCBQQywgUHRyU2l6ZV0sIHQxCiAgICAg
bG9hZHEgRGlyZWN0QXJndW1lbnRzX3N0b3JhZ2VbdDAsIHQxLCA4XSwgdDAKICAgICB2YWx1ZVBy
b2ZpbGUodDAsIDQsIHQxKQogICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlvbigxLCB0MSkKQEAgLTI2
MDQsNyArMjYwNSw3IEBAIF9sbGludF9vcF9nZXRfZnJvbV9hcmd1bWVudHM6CiBfbGxpbnRfb3Bf
cHV0X3RvX2FyZ3VtZW50czoKICAgICB0cmFjZUV4ZWN1dGlvbigpCiAgICAgbG9hZFZhcmlhYmxl
KDEsIHQwKQotICAgIGxvYWRpIDE2W1BCLCBQQywgOF0sIHQxCisgICAgbG9hZGkgMiAqIFB0clNp
emVbUEIsIFBDLCBQdHJTaXplXSwgdDEKICAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oMywgdDMp
CiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MywgdDIpCiAgICAgc3RvcmVxIHQyLCBEaXJl
Y3RBcmd1bWVudHNfc3RvcmFnZVt0MCwgdDEsIDhdCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvb2ZmbGluZWFzbS9hcm02NC5yYiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZs
aW5lYXNtL2FybTY0LnJiCmluZGV4IDYxMTAyYzk4YzMyOWVhNGFlYWQ5M2RiNjhlYzI5ODI0Y2E3
ODQ0YWMuLjA3YTEyYzhmZjBhZDA4MzFiNWYyZmVmOWM3YTk4MTQzYzY4M2MxYzAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FybTY0LnJiCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FybTY0LnJiCkBAIC03OCw2ICs3OCw5IEBAIGRl
ZiBhcm02NEdQUk5hbWUobmFtZSwga2luZCkKICAgICB3aGVuIDppbnQKICAgICAgICAgInciICsg
bnVtYmVyCiAgICAgd2hlbiA6cHRyCisgICAgICAgIHByZWZpeCA9ICRjdXJyZW50U2V0dGluZ3Nb
IkFERFJFU1M2NCJdID8gIngiIDogInciCisgICAgICAgIHByZWZpeCArIG51bWJlcgorICAgIHdo
ZW4gOndvcmQKICAgICAgICAgIngiICsgbnVtYmVyCiAgICAgZWxzZQogICAgICAgICByYWlzZSAi
V3Jvbmcga2luZDogI3traW5kfSIKQEAgLTE5OSw3ICsyMDIsNyBAQCBlbmQKIGNsYXNzIEFkZHJl
c3MKICAgICBkZWYgYXJtNjRPcGVyYW5kKGtpbmQpCiAgICAgICAgIHJhaXNlICJJbnZhbGlkIG9m
ZnNldCAje29mZnNldC52YWx1ZX0gYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIgaWYgb2Zmc2V0LnZh
bHVlIDwgLTI1NSBvciBvZmZzZXQudmFsdWUgPiA0MDk1Ci0gICAgICAgICJbI3tiYXNlLmFybTY0
T3BlcmFuZCg6cHRyKX0sIFwjI3tvZmZzZXQudmFsdWV9XSIKKyAgICAgICAgIlsje2Jhc2UuYXJt
NjRPcGVyYW5kKDp3b3JkKX0sIFwjI3tvZmZzZXQudmFsdWV9XSIKICAgICBlbmQKICAgICAKICAg
ICBkZWYgYXJtNjRFbWl0TGVhKGRlc3RpbmF0aW9uLCBraW5kKQpAQCAtMjEwLDcgKzIxMyw3IEBA
IGVuZAogY2xhc3MgQmFzZUluZGV4CiAgICAgZGVmIGFybTY0T3BlcmFuZChraW5kKQogICAgICAg
ICByYWlzZSAiSW52YWxpZCBvZmZzZXQgI3tvZmZzZXQudmFsdWV9IGF0ICN7Y29kZU9yaWdpblN0
cmluZ30iIGlmIG9mZnNldC52YWx1ZSAhPSAwCi0gICAgICAgICJbI3tiYXNlLmFybTY0T3BlcmFu
ZCg6cHRyKX0sICN7aW5kZXguYXJtNjRPcGVyYW5kKDpwdHIpfSwgbHNsIFwjI3tzY2FsZVNoaWZ0
fV0iCisgICAgICAgICJbI3tiYXNlLmFybTY0T3BlcmFuZCg6d29yZCl9LCAje2luZGV4LmFybTY0
T3BlcmFuZCg6d29yZCl9LCBsc2wgXCMje3NjYWxlU2hpZnR9XSIKICAgICBlbmQKIAogICAgIGRl
ZiBhcm02NEVtaXRMZWEoZGVzdGluYXRpb24sIGtpbmQpCkBAIC0yMzMsMjMgKzIzNiwzMCBAQCBl
bmQKIGRlZiBhcm02NExvd2VyTWFsZm9ybWVkTG9hZFN0b3JlQWRkcmVzc2VzKGxpc3QpCiAgICAg
bmV3TGlzdCA9IFtdCiAKLSAgICBkZWYgaXNBZGRyZXNzTWFsZm9ybWVkKG9wZXJhbmQpCi0gICAg
ICAgIG9wZXJhbmQuaXNfYT8gQWRkcmVzcyBhbmQgbm90ICgtMjU1Li40MDk1KS5pbmNsdWRlPyBv
cGVyYW5kLm9mZnNldC52YWx1ZQorICAgIGRlZiBpc0FkZHJlc3NNYWxmb3JtZWQob3Bjb2RlLCBv
cGVyYW5kKQorICAgICAgICBtYWxmb3JtZWQgPSBmYWxzZQorICAgICAgICBpZiBvcGVyYW5kLmlz
X2E/IEFkZHJlc3MKKyAgICAgICAgICAgIG1hbGZvcm1lZCB8fD0gKG5vdCAoLTI1NS4uNDA5NSku
aW5jbHVkZT8gb3BlcmFuZC5vZmZzZXQudmFsdWUpCisgICAgICAgICAgICBpZiBvcGNvZGUgPX4g
L3EkLyBhbmQgJGN1cnJlbnRTZXR0aW5nc1siQUREUkVTUzY0Il0KKyAgICAgICAgICAgICAgICBt
YWxmb3JtZWQgfHw9IG9wZXJhbmQub2Zmc2V0LnZhbHVlICUgOAorICAgICAgICAgICAgZW5kCisg
ICAgICAgIGVuZAorICAgICAgICBtYWxmb3JtZWQKICAgICBlbmQKIAogICAgIGxpc3QuZWFjaCB7
CiAgICAgICAgIHwgbm9kZSB8CiAgICAgICAgIGlmIG5vZGUuaXNfYT8gSW5zdHJ1Y3Rpb24KLSAg
ICAgICAgICAgIGlmIG5vZGUub3Bjb2RlID1+IC9ec3RvcmUvIGFuZCBpc0FkZHJlc3NNYWxmb3Jt
ZWQobm9kZS5vcGVyYW5kc1sxXSkKKyAgICAgICAgICAgIGlmIG5vZGUub3Bjb2RlID1+IC9ec3Rv
cmUvIGFuZCBpc0FkZHJlc3NNYWxmb3JtZWQobm9kZS5vcGNvZGUsIG5vZGUub3BlcmFuZHNbMV0p
CiAgICAgICAgICAgICAgICAgYWRkcmVzcyA9IG5vZGUub3BlcmFuZHNbMV0KICAgICAgICAgICAg
ICAgICB0bXAgPSBUbXAubmV3KGNvZGVPcmlnaW4sIDpncHIpCiAgICAgICAgICAgICAgICAgbmV3
TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAibW92ZSIsIFthZGRyZXNz
Lm9mZnNldCwgdG1wXSkKLSAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5l
dyhub2RlLmNvZGVPcmlnaW4sIG5vZGUub3Bjb2RlLCBbbm9kZS5vcGVyYW5kc1swXSwgQmFzZUlu
ZGV4Lm5ldyhub2RlLmNvZGVPcmlnaW4sIGFkZHJlc3MuYmFzZSwgdG1wLCAxLCBJbW1lZGlhdGUu
bmV3KGNvZGVPcmlnaW4sIDApKV0sIG5vZGUuYW5ub3RhdGlvbikKLSAgICAgICAgICAgIGVsc2lm
IG5vZGUub3Bjb2RlID1+IC9ebG9hZC8gYW5kIGlzQWRkcmVzc01hbGZvcm1lZChub2RlLm9wZXJh
bmRzWzBdKQorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUu
Y29kZU9yaWdpbiwgbm9kZS5vcGNvZGUsIFtub2RlLm9wZXJhbmRzWzBdLCBCYXNlSW5kZXgubmV3
KG5vZGUuY29kZU9yaWdpbiwgYWRkcmVzcy5iYXNlLCB0bXAsIEltbWVkaWF0ZS5uZXcoY29kZU9y
aWdpbiwgMSksIEltbWVkaWF0ZS5uZXcoY29kZU9yaWdpbiwgMCkpXSwgbm9kZS5hbm5vdGF0aW9u
KQorICAgICAgICAgICAgZWxzaWYgbm9kZS5vcGNvZGUgPX4gL15sb2FkLyBhbmQgaXNBZGRyZXNz
TWFsZm9ybWVkKG5vZGUub3Bjb2RlLCBub2RlLm9wZXJhbmRzWzBdKQogICAgICAgICAgICAgICAg
IGFkZHJlc3MgPSBub2RlLm9wZXJhbmRzWzBdCiAgICAgICAgICAgICAgICAgdG1wID0gVG1wLm5l
dyhjb2RlT3JpZ2luLCA6Z3ByKQogICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rp
b24ubmV3KG5vZGUuY29kZU9yaWdpbiwgIm1vdmUiLCBbYWRkcmVzcy5vZmZzZXQsIHRtcF0pCi0g
ICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2lu
LCBub2RlLm9wY29kZSwgW0Jhc2VJbmRleC5uZXcobm9kZS5jb2RlT3JpZ2luLCBhZGRyZXNzLmJh
c2UsIHRtcCwgMSwgSW1tZWRpYXRlLm5ldyhjb2RlT3JpZ2luLCAwKSksIG5vZGUub3BlcmFuZHNb
MV1dLCBub2RlLmFubm90YXRpb24pCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVj
dGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCBub2RlLm9wY29kZSwgW0Jhc2VJbmRleC5uZXcobm9k
ZS5jb2RlT3JpZ2luLCBhZGRyZXNzLmJhc2UsIHRtcCwgSW1tZWRpYXRlLm5ldyhjb2RlT3JpZ2lu
LCAxKSwgSW1tZWRpYXRlLm5ldyhjb2RlT3JpZ2luLCAwKSksIG5vZGUub3BlcmFuZHNbMV1dLCBu
b2RlLmFubm90YXRpb24pCiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgbmV3TGlz
dCA8PCBub2RlCiAgICAgICAgICAgICBlbmQKQEAgLTI4NSw2ICsyOTUsNDMgQEAgZGVmIGFybTY0
TG93ZXJMYWJlbFJlZmVyZW5jZXMobGlzdCkKICAgICBuZXdMaXN0CiBlbmQKIAorZGVmIGFybTY0
Rml4U3BlY2lhbFJlZ2lzdGVyQXJpdGhtZXRpY01vZGUobGlzdCkKKyAgICBuZXdMaXN0ID0gW10K
KyAgICBkZWYgdXNlc1NwZWNpYWxSZWdpc3Rlcihub2RlKQorICAgICAgICBub2RlLmNoaWxkcmVu
LmFueT8geworICAgICAgICAgICAgfG9wZXJhbmR8CisgICAgICAgICAgICBpZiBvcGVyYW5kLmlz
X2E/IFJlZ2lzdGVySUQgYW5kIG9wZXJhbmQubmFtZSA9fiAvc3AvCisgICAgICAgICAgICAgICAg
dHJ1ZQorICAgICAgICAgICAgZWxzaWYgb3BlcmFuZC5pc19hPyBBZGRyZXNzIG9yIG9wZXJhbmQu
aXNfYT8gQmFzZUluZGV4CisgICAgICAgICAgICAgICAgdXNlc1NwZWNpYWxSZWdpc3RlcihvcGVy
YW5kKQorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGZhbHNlCisgICAgICAgICAg
ICBlbmQKKyAgICAgICAgfQorICAgIGVuZAorCisKKyAgICBsaXN0LmVhY2ggeworICAgICAgICB8
IG5vZGUgfAorICAgICAgICBpZiBub2RlLmlzX2E/IEluc3RydWN0aW9uCisgICAgICAgICAgICBj
YXNlIG5vZGUub3Bjb2RlCisgICAgICAgICAgICB3aGVuICJhZGRwIiwgInN1YnAiLCAibXVscCIs
ICJkaXZwIiwgImxlYXAiCisgICAgICAgICAgICAgICAgaWYgbm90ICRjdXJyZW50U2V0dGluZ3Nb
IkFERFJFU1M2NCJdIGFuZCB1c2VzU3BlY2lhbFJlZ2lzdGVyKG5vZGUpCisgICAgICAgICAgICAg
ICAgICAgIG5ld09wY29kZSA9IG5vZGUub3Bjb2RlLnN1YigvKC4qKXAvLCAnXDFxJykKKyAgICAg
ICAgICAgICAgICAgICAgbm9kZSA9IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sIG5l
d09wY29kZSwgbm9kZS5vcGVyYW5kcywgbm9kZS5hbm5vdGF0aW9uKQorICAgICAgICAgICAgICAg
IGVuZAorICAgICAgICAgICAgd2hlbiAvXmJwLworICAgICAgICAgICAgICAgIGlmIG5vdCAkY3Vy
cmVudFNldHRpbmdzWyJBRERSRVNTNjQiXSBhbmQgdXNlc1NwZWNpYWxSZWdpc3Rlcihub2RlKQor
ICAgICAgICAgICAgICAgICAgICBuZXdPcGNvZGUgPSBub2RlLm9wY29kZS5zdWIoL15icCguKikv
LCAnYnFcMScpCisgICAgICAgICAgICAgICAgICAgIG5vZGUgPSBJbnN0cnVjdGlvbi5uZXcobm9k
ZS5jb2RlT3JpZ2luLCBuZXdPcGNvZGUsIG5vZGUub3BlcmFuZHMsIG5vZGUuYW5ub3RhdGlvbikK
KyAgICAgICAgICAgICAgICBlbmQKKyAgICAgICAgICAgIGVuZAorICAgICAgICBlbmQKKyAgICAg
ICAgbmV3TGlzdCA8PCBub2RlCisgICAgfQorICAgIG5ld0xpc3QKK2VuZAorCiAjIFdvcmthcm91
bmQgZm9yIENvcnRleC1BNTMgZXJyYXR1bSAoODM1NzY5KQogZGVmIGFybTY0Q29ydGV4QTUzRml4
ODM1NzY5KGxpc3QpCiAgICAgbmV3TGlzdCA9IFtdCkBAIC0zMTgsNyArMzY1LDggQEAgY2xhc3Mg
U2VxdWVuY2UKICAgICAgICAgcmVzdWx0ID0gQGxpc3QKICAgICAgICAgcmVzdWx0ID0gcmlzY0xv
d2VyTm90KHJlc3VsdCkKICAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2VyU2ltcGxlQnJhbmNoT3Bz
KHJlc3VsdCkKLSAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2VySGFyZEJyYW5jaE9wczY0KHJlc3Vs
dCkKKworICAgICAgICByZXN1bHQgPSAkY3VycmVudFNldHRpbmdzWyJBRERSRVNTNjQiXSA/IHJp
c2NMb3dlckhhcmRCcmFuY2hPcHM2NChyZXN1bHQpIDogcmlzY0xvd2VySGFyZEJyYW5jaE9wcyhy
ZXN1bHQpCiAgICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlclNoaWZ0T3BzKHJlc3VsdCkKICAgICAg
ICAgcmVzdWx0ID0gYXJtNjRMb3dlck1hbGZvcm1lZExvYWRTdG9yZUFkZHJlc3NlcyhyZXN1bHQp
CiAgICAgICAgIHJlc3VsdCA9IGFybTY0TG93ZXJMYWJlbFJlZmVyZW5jZXMocmVzdWx0KQpAQCAt
MzM3LDcgKzM4NSw3IEBAIGNsYXNzIFNlcXVlbmNlCiAgICAgICAgICAgICAgICAgInVyc2hpZnRw
IiwgInVyc2hpZnRxIiwgImFkZHAiLCAiYWRkcSIsICJtdWxwIiwgIm11bHEiLCAiYW5kcCIsICJh
bmRxIiwgIm9ycCIsICJvcnEiLCAic3VicCIsICJzdWJxIiwgInhvcnAiLCAieG9ycSIsICJhZGRk
IiwKICAgICAgICAgICAgICAgICAiZGl2ZCIsICJzdWJkIiwgIm11bGQiLCAic3FydGQiLCAvXmJw
LywgL15icS8sIC9eYnRwLywgL15idHEvLCAvXmNwLywgL15jcS8sIC9edHAvLCAvXnRxLywgL15i
ZC8sCiAgICAgICAgICAgICAgICAgImptcCIsICJjYWxsIiwgImxlYXAiLCAibGVhcSIKLSAgICAg
ICAgICAgICAgICBzaXplID0gOAorICAgICAgICAgICAgICAgIHNpemUgPSAkY3VycmVudFNldHRp
bmdzWyJBRERSRVNTNjQiXSA/IDggOiA0CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAg
ICAgcmFpc2UgIkJhZCBpbnN0cnVjdGlvbiAje25vZGUub3Bjb2RlfSBmb3IgaGVhcCBhY2Nlc3Mg
YXQgI3tub2RlLmNvZGVPcmlnaW5TdHJpbmd9IgogICAgICAgICAgICAgZW5kCkBAIC0zNjgsNiAr
NDE2LDcgQEAgY2xhc3MgU2VxdWVuY2UKICAgICAgICAgICAgIGVuZAogICAgICAgICB9CiAgICAg
ICAgIHJlc3VsdCA9IHJpc2NMb3dlclRlc3QocmVzdWx0KQorICAgICAgICByZXN1bHQgPSBhcm02
NEZpeFNwZWNpYWxSZWdpc3RlckFyaXRobWV0aWNNb2RlKHJlc3VsdCkKICAgICAgICAgcmVzdWx0
ID0gYXNzaWduUmVnaXN0ZXJzVG9UZW1wb3JhcmllcyhyZXN1bHQsIDpncHIsIEFSTTY0X0VYVFJB
X0dQUlMpCiAgICAgICAgIHJlc3VsdCA9IGFzc2lnblJlZ2lzdGVyc1RvVGVtcG9yYXJpZXMocmVz
dWx0LCA6ZnByLCBBUk02NF9FWFRSQV9GUFJTKQogICAgICAgICByZXN1bHQgPSBhcm02NENvcnRl
eEE1M0ZpeDgzNTc2OShyZXN1bHQpCkBAIC00NDksMTAgKzQ5OCwxMSBAQCBlbmQKIAogZGVmIGVt
aXRBUk02NEFjY2VzcyhvcGNvZGUsIG9wY29kZU5lZ2F0aXZlT2Zmc2V0LCByZWdpc3RlciwgbWVt
b3J5LCBraW5kKQogICAgIGlmIG1lbW9yeS5pc19hPyBBZGRyZXNzIGFuZCBtZW1vcnkub2Zmc2V0
LnZhbHVlIDwgMAorICAgICAgICByYWlzZSB1bmxlc3MgLTI1NiA8PSBtZW1vcnkub2Zmc2V0LnZh
bHVlCiAgICAgICAgICRhc20ucHV0cyAiI3tvcGNvZGVOZWdhdGl2ZU9mZnNldH0gI3tyZWdpc3Rl
ci5hcm02NE9wZXJhbmQoa2luZCl9LCAje21lbW9yeS5hcm02NE9wZXJhbmQoa2luZCl9IgogICAg
ICAgICByZXR1cm4KICAgICBlbmQKLSAgICAKKwogICAgICRhc20ucHV0cyAiI3tvcGNvZGV9ICN7
cmVnaXN0ZXIuYXJtNjRPcGVyYW5kKGtpbmQpfSwgI3ttZW1vcnkuYXJtNjRPcGVyYW5kKGtpbmQp
fSIKIGVuZAogCkBAIC00OTEsMTMgKzU0MSwxMyBAQCBkZWYgZW1pdEFSTTY0TW92ZUltbWVkaWF0
ZSh2YWx1ZSwgdGFyZ2V0KQogICAgICAgICBuZXh0IGlmIGN1cnJlbnRWYWx1ZSA9PSAoaXNOZWdh
dGl2ZSA/IDB4ZmZmZiA6IDApIGFuZCAoc2hpZnQgIT0gMCBvciAhZmlyc3QpCiAgICAgICAgIGlm
IGZpcnN0CiAgICAgICAgICAgICBpZiBpc05lZ2F0aXZlCi0gICAgICAgICAgICAgICAgJGFzbS5w
dXRzICJtb3ZuICN7dGFyZ2V0LmFybTY0T3BlcmFuZCg6cHRyKX0sIFwjI3sofmN1cnJlbnRWYWx1
ZSkgJiAweGZmZmZ9LCBsc2wgXCMje3NoaWZ0fSIKKyAgICAgICAgICAgICAgICAkYXNtLnB1dHMg
Im1vdm4gI3t0YXJnZXQuYXJtNjRPcGVyYW5kKDp3b3JkKX0sIFwjI3sofmN1cnJlbnRWYWx1ZSkg
JiAweGZmZmZ9LCBsc2wgXCMje3NoaWZ0fSIKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAg
ICAgICAkYXNtLnB1dHMgIm1vdnogI3t0YXJnZXQuYXJtNjRPcGVyYW5kKDpwdHIpfSwgXCMje2N1
cnJlbnRWYWx1ZX0sIGxzbCBcIyN7c2hpZnR9IgorICAgICAgICAgICAgICAgICRhc20ucHV0cyAi
bW92eiAje3RhcmdldC5hcm02NE9wZXJhbmQoOndvcmQpfSwgXCMje2N1cnJlbnRWYWx1ZX0sIGxz
bCBcIyN7c2hpZnR9IgogICAgICAgICAgICAgZW5kCiAgICAgICAgICAgICBmaXJzdCA9IGZhbHNl
CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICRhc20ucHV0cyAibW92ayAje3RhcmdldC5hcm02
NE9wZXJhbmQoOnB0cil9LCBcIyN7Y3VycmVudFZhbHVlfSwgbHNsIFwjI3tzaGlmdH0iCisgICAg
ICAgICAgICAkYXNtLnB1dHMgIm1vdmsgI3t0YXJnZXQuYXJtNjRPcGVyYW5kKDp3b3JkKX0sIFwj
I3tjdXJyZW50VmFsdWV9LCBsc2wgXCMje3NoaWZ0fSIKICAgICAgICAgZW5kCiAgICAgfQogZW5k
CkBAIC01MTQsMjUgKzU2NCwyNSBAQCBjbGFzcyBJbnN0cnVjdGlvbgogICAgICAgICB3aGVuICdh
ZGRwcycKICAgICAgICAgICAgIGVtaXRBUk02NEFkZCgiYWRkcyIsIG9wZXJhbmRzLCA6cHRyKQog
ICAgICAgICB3aGVuICdhZGRxJwotICAgICAgICAgICAgZW1pdEFSTTY0QWRkKCJhZGQiLCBvcGVy
YW5kcywgOnB0cikKKyAgICAgICAgICAgIGVtaXRBUk02NEFkZCgiYWRkIiwgb3BlcmFuZHMsIDp3
b3JkKQogICAgICAgICB3aGVuICJhbmRpIgogICAgICAgICAgICAgZW1pdEFSTTY0VEFDKCJhbmQi
LCBvcGVyYW5kcywgOmludCkKICAgICAgICAgd2hlbiAiYW5kcCIKICAgICAgICAgICAgIGVtaXRB
Uk02NFRBQygiYW5kIiwgb3BlcmFuZHMsIDpwdHIpCiAgICAgICAgIHdoZW4gImFuZHEiCi0gICAg
ICAgICAgICBlbWl0QVJNNjRUQUMoImFuZCIsIG9wZXJhbmRzLCA6cHRyKQorICAgICAgICAgICAg
ZW1pdEFSTTY0VEFDKCJhbmQiLCBvcGVyYW5kcywgOndvcmQpCiAgICAgICAgIHdoZW4gIm9yaSIK
ICAgICAgICAgICAgIGVtaXRBUk02NFRBQygib3JyIiwgb3BlcmFuZHMsIDppbnQpCiAgICAgICAg
IHdoZW4gIm9ycCIKICAgICAgICAgICAgIGVtaXRBUk02NFRBQygib3JyIiwgb3BlcmFuZHMsIDpw
dHIpCiAgICAgICAgIHdoZW4gIm9ycSIKLSAgICAgICAgICAgIGVtaXRBUk02NFRBQygib3JyIiwg
b3BlcmFuZHMsIDpwdHIpCisgICAgICAgICAgICBlbWl0QVJNNjRUQUMoIm9yciIsIG9wZXJhbmRz
LCA6d29yZCkKICAgICAgICAgd2hlbiAieG9yaSIKICAgICAgICAgICAgIGVtaXRBUk02NFRBQygi
ZW9yIiwgb3BlcmFuZHMsIDppbnQpCiAgICAgICAgIHdoZW4gInhvcnAiCiAgICAgICAgICAgICBl
bWl0QVJNNjRUQUMoImVvciIsIG9wZXJhbmRzLCA6cHRyKQogICAgICAgICB3aGVuICJ4b3JxIgot
ICAgICAgICAgICAgZW1pdEFSTTY0VEFDKCJlb3IiLCBvcGVyYW5kcywgOnB0cikKKyAgICAgICAg
ICAgIGVtaXRBUk02NFRBQygiZW9yIiwgb3BlcmFuZHMsIDp3b3JkKQogICAgICAgICB3aGVuICJs
c2hpZnRpIgogICAgICAgICAgICAgZW1pdEFSTTY0U2hpZnQoImxzbHYiLCAidWJmbSIsIG9wZXJh
bmRzLCA6aW50KSB7CiAgICAgICAgICAgICAgICAgfCB2YWx1ZSB8CkBAIC01NDEsMTAgKzU5MSwx
MSBAQCBjbGFzcyBJbnN0cnVjdGlvbgogICAgICAgICB3aGVuICJsc2hpZnRwIgogICAgICAgICAg
ICAgZW1pdEFSTTY0U2hpZnQoImxzbHYiLCAidWJmbSIsIG9wZXJhbmRzLCA6cHRyKSB7CiAgICAg
ICAgICAgICAgICAgfCB2YWx1ZSB8Ci0gICAgICAgICAgICAgICAgWzY0IC0gdmFsdWUsIDYzIC0g
dmFsdWVdCisgICAgICAgICAgICAgICAgYml0U2l6ZSA9ICRjdXJyZW50U2V0dGluZ3NbIkFERFJF
U1M2NCJdID8gNjQgOiAzMgorICAgICAgICAgICAgICAgIFtiaXRTaXplIC0gdmFsdWUsIGJpdFNp
emUgLSAxIC0gdmFsdWVdCiAgICAgICAgICAgICB9CiAgICAgICAgIHdoZW4gImxzaGlmdHEiCi0g
ICAgICAgICAgICBlbWl0QVJNNjRTaGlmdCgibHNsdiIsICJ1YmZtIiwgb3BlcmFuZHMsIDpwdHIp
IHsKKyAgICAgICAgICAgIGVtaXRBUk02NFNoaWZ0KCJsc2x2IiwgInViZm0iLCBvcGVyYW5kcywg
OndvcmQpIHsKICAgICAgICAgICAgICAgICB8IHZhbHVlIHwKICAgICAgICAgICAgICAgICBbNjQg
LSB2YWx1ZSwgNjMgLSB2YWx1ZV0KICAgICAgICAgICAgIH0KQEAgLTU1NiwxMCArNjA3LDExIEBA
IGNsYXNzIEluc3RydWN0aW9uCiAgICAgICAgIHdoZW4gInJzaGlmdHAiCiAgICAgICAgICAgICBl
bWl0QVJNNjRTaGlmdCgiYXNydiIsICJzYmZtIiwgb3BlcmFuZHMsIDpwdHIpIHsKICAgICAgICAg
ICAgICAgICB8IHZhbHVlIHwKLSAgICAgICAgICAgICAgICBbdmFsdWUsIDYzXQorICAgICAgICAg
ICAgICAgIGJpdFNpemUgPSAkY3VycmVudFNldHRpbmdzWyJBRERSRVNTNjQiXSA/IDY0IDogMzIK
KyAgICAgICAgICAgICAgICBbdmFsdWUsIGJpdFNpemUgLSAxXQogICAgICAgICAgICAgfQogICAg
ICAgICB3aGVuICJyc2hpZnRxIgotICAgICAgICAgICAgZW1pdEFSTTY0U2hpZnQoImFzcnYiLCAi
c2JmbSIsIG9wZXJhbmRzLCA6cHRyKSB7CisgICAgICAgICAgICBlbWl0QVJNNjRTaGlmdCgiYXNy
diIsICJzYmZtIiwgb3BlcmFuZHMsIDp3b3JkKSB7CiAgICAgICAgICAgICAgICAgfCB2YWx1ZSB8
CiAgICAgICAgICAgICAgICAgW3ZhbHVlLCA2M10KICAgICAgICAgICAgIH0KQEAgLTU3MSw0NyAr
NjIzLDQ4IEBAIGNsYXNzIEluc3RydWN0aW9uCiAgICAgICAgIHdoZW4gInVyc2hpZnRwIgogICAg
ICAgICAgICAgZW1pdEFSTTY0U2hpZnQoImxzcnYiLCAidWJmbSIsIG9wZXJhbmRzLCA6cHRyKSB7
CiAgICAgICAgICAgICAgICAgfCB2YWx1ZSB8Ci0gICAgICAgICAgICAgICAgW3ZhbHVlLCA2M10K
KyAgICAgICAgICAgICAgICBiaXRTaXplID0gJGN1cnJlbnRTZXR0aW5nc1siQUREUkVTUzY0Il0g
PyA2NCA6IDMyCisgICAgICAgICAgICAgICAgW3ZhbHVlLCBiaXRTaXplIC0gMV0KICAgICAgICAg
ICAgIH0KICAgICAgICAgd2hlbiAidXJzaGlmdHEiCi0gICAgICAgICAgICBlbWl0QVJNNjRTaGlm
dCgibHNydiIsICJ1YmZtIiwgb3BlcmFuZHMsIDpwdHIpIHsKKyAgICAgICAgICAgIGVtaXRBUk02
NFNoaWZ0KCJsc3J2IiwgInViZm0iLCBvcGVyYW5kcywgOndvcmQpIHsKICAgICAgICAgICAgICAg
ICB8IHZhbHVlIHwKICAgICAgICAgICAgICAgICBbdmFsdWUsIDYzXQogICAgICAgICAgICAgfQog
ICAgICAgICB3aGVuICJtdWxpIgogICAgICAgICAgICAgJGFzbS5wdXRzICJtYWRkICN7YXJtNjRU
QUNPcGVyYW5kcyhvcGVyYW5kcywgOmludCl9LCB3enIiCiAgICAgICAgIHdoZW4gIm11bHAiCi0g
ICAgICAgICAgICAkYXNtLnB1dHMgIm1hZGQgI3thcm02NFRBQ09wZXJhbmRzKG9wZXJhbmRzLCA6
cHRyKX0sIHh6ciIKKyAgICAgICAgICAgICRhc20ucHV0cyAibWFkZCAje2FybTY0VEFDT3BlcmFu
ZHMob3BlcmFuZHMsIDpwdHIpfSwgI3thcm02NEdQUk5hbWUoJ3h6cicsIDpwdHIpfSIKICAgICAg
ICAgd2hlbiAibXVscSIKLSAgICAgICAgICAgICRhc20ucHV0cyAibWFkZCAje2FybTY0VEFDT3Bl
cmFuZHMob3BlcmFuZHMsIDpwdHIpfSwgeHpyIgorICAgICAgICAgICAgJGFzbS5wdXRzICJtYWRk
ICN7YXJtNjRUQUNPcGVyYW5kcyhvcGVyYW5kcywgOndvcmQpfSwgeHpyIgogICAgICAgICB3aGVu
ICJzdWJpIgogICAgICAgICAgICAgZW1pdEFSTTY0VEFDKCJzdWIiLCBvcGVyYW5kcywgOmludCkK
ICAgICAgICAgd2hlbiAic3VicCIKICAgICAgICAgICAgIGVtaXRBUk02NFRBQygic3ViIiwgb3Bl
cmFuZHMsIDpwdHIpCiAgICAgICAgIHdoZW4gInN1YnEiCi0gICAgICAgICAgICBlbWl0QVJNNjRU
QUMoInN1YiIsIG9wZXJhbmRzLCA6cHRyKQorICAgICAgICAgICAgZW1pdEFSTTY0VEFDKCJzdWIi
LCBvcGVyYW5kcywgOndvcmQpCiAgICAgICAgIHdoZW4gInN1YmlzIgogICAgICAgICAgICAgZW1p
dEFSTTY0VEFDKCJzdWJzIiwgb3BlcmFuZHMsIDppbnQpCiAgICAgICAgIHdoZW4gIm5lZ2kiCiAg
ICAgICAgICAgICAkYXNtLnB1dHMgInN1YiAje29wZXJhbmRzWzBdLmFybTY0T3BlcmFuZCg6aW50
KX0sIHd6ciwgI3tvcGVyYW5kc1swXS5hcm02NE9wZXJhbmQoOmludCl9IgogICAgICAgICB3aGVu
ICJuZWdwIgotICAgICAgICAgICAgJGFzbS5wdXRzICJzdWIgI3tvcGVyYW5kc1swXS5hcm02NE9w
ZXJhbmQoOnB0cil9LCB4enIsICN7b3BlcmFuZHNbMF0uYXJtNjRPcGVyYW5kKDpwdHIpfSIKKyAg
ICAgICAgICAgICRhc20ucHV0cyAic3ViICN7b3BlcmFuZHNbMF0uYXJtNjRPcGVyYW5kKDpwdHIp
fSwgI3thcm02NEdQUk5hbWUoJ3h6cicsIDpwdHIpfSwgI3tvcGVyYW5kc1swXS5hcm02NE9wZXJh
bmQoOnB0cil9IgogICAgICAgICB3aGVuICJuZWdxIgotICAgICAgICAgICAgJGFzbS5wdXRzICJz
dWIgI3tvcGVyYW5kc1swXS5hcm02NE9wZXJhbmQoOnB0cil9LCB4enIsICN7b3BlcmFuZHNbMF0u
YXJtNjRPcGVyYW5kKDpwdHIpfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAic3ViICN7b3BlcmFu
ZHNbMF0uYXJtNjRPcGVyYW5kKDp3b3JkKX0sIHh6ciwgI3tvcGVyYW5kc1swXS5hcm02NE9wZXJh
bmQoOndvcmQpfSIKICAgICAgICAgd2hlbiAibG9hZGkiCiAgICAgICAgICAgICBlbWl0QVJNNjRB
Y2Nlc3MoImxkciIsICJsZHVyIiwgb3BlcmFuZHNbMV0sIG9wZXJhbmRzWzBdLCA6aW50KQogICAg
ICAgICB3aGVuICJsb2FkaXMiCi0gICAgICAgICAgICBlbWl0QVJNNjRBY2Nlc3MoImxkcnN3Iiwg
ImxkdXJzdyIsIG9wZXJhbmRzWzFdLCBvcGVyYW5kc1swXSwgOnB0cikKKyAgICAgICAgICAgIGVt
aXRBUk02NEFjY2VzcygibGRyc3ciLCAibGR1cnN3Iiwgb3BlcmFuZHNbMV0sIG9wZXJhbmRzWzBd
LCA6d29yZCkKICAgICAgICAgd2hlbiAibG9hZHAiCiAgICAgICAgICAgICBlbWl0QVJNNjRBY2Nl
c3MoImxkciIsICJsZHVyIiwgb3BlcmFuZHNbMV0sIG9wZXJhbmRzWzBdLCA6cHRyKQogICAgICAg
ICB3aGVuICJsb2FkcSIKLSAgICAgICAgICAgIGVtaXRBUk02NEFjY2VzcygibGRyIiwgImxkdXIi
LCBvcGVyYW5kc1sxXSwgb3BlcmFuZHNbMF0sIDpwdHIpCisgICAgICAgICAgICBlbWl0QVJNNjRB
Y2Nlc3MoImxkciIsICJsZHVyIiwgb3BlcmFuZHNbMV0sIG9wZXJhbmRzWzBdLCA6d29yZCkKICAg
ICAgICAgd2hlbiAic3RvcmVpIgogICAgICAgICAgICAgZW1pdEFSTTY0VW5mbGlwcGVkKCJzdHIi
LCBvcGVyYW5kcywgOmludCkKICAgICAgICAgd2hlbiAic3RvcmVwIgogICAgICAgICAgICAgZW1p
dEFSTTY0VW5mbGlwcGVkKCJzdHIiLCBvcGVyYW5kcywgOnB0cikKICAgICAgICAgd2hlbiAic3Rv
cmVxIgotICAgICAgICAgICAgZW1pdEFSTTY0VW5mbGlwcGVkKCJzdHIiLCBvcGVyYW5kcywgOnB0
cikKKyAgICAgICAgICAgIGVtaXRBUk02NFVuZmxpcHBlZCgic3RyIiwgb3BlcmFuZHMsIDp3b3Jk
KQogICAgICAgICB3aGVuICJsb2FkYiIKICAgICAgICAgICAgIGVtaXRBUk02NEFjY2VzcygibGRy
YiIsICJsZHVyYiIsIG9wZXJhbmRzWzFdLCBvcGVyYW5kc1swXSwgOmludCkKICAgICAgICAgd2hl
biAibG9hZGJzIgpAQCAtNjk1LDI3ICs3NDgsMjcgQEAgY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICAg
ICAgICAgICAgICAjIFNvIGZvciBleGFtcGxlLCBpZiB3ZSBkaWQgcHVzaChBLCBCLCBDLCBEKSwg
d2Ugd291bGQgdGhlbiBwb3AoRCwgQywgQiwgQSkuCiAgICAgICAgICAgICAgICAgIyBCdXQgc2lu
Y2UgdGhlIG9yZGVyaW5nIG9mIGFyZ3VtZW50cyBkb2Vzbid0IGNoYW5nZSBvbiBhcm02NCBiZXR3
ZWVuIHRoZSBzdHAgYW5kIGxkcCAKICAgICAgICAgICAgICAgICAjIGluc3RydWN0aW9ucyB3ZSBu
ZWVkIHRvIGZsaXAgZmxvcCB0aGUgYXJndW1lbnQgcG9zaXRpb25zIHRoYXQgd2VyZSBwYXNzZWQg
dG8gdXMuCi0gICAgICAgICAgICAgICAgJGFzbS5wdXRzICJsZHAgI3tvcHNbMV0uYXJtNjRPcGVy
YW5kKDpwdHIpfSwgI3tvcHNbMF0uYXJtNjRPcGVyYW5kKDpwdHIpfSwgW3NwXSwgIzE2IgorICAg
ICAgICAgICAgICAgICRhc20ucHV0cyAibGRwICN7b3BzWzFdLmFybTY0T3BlcmFuZCg6d29yZCl9
LCAje29wc1swXS5hcm02NE9wZXJhbmQoOndvcmQpfSwgW3NwXSwgIzE2IgogICAgICAgICAgICAg
fQogICAgICAgICB3aGVuICJwdXNoIgogICAgICAgICAgICAgb3BlcmFuZHMuZWFjaF9zbGljZSgy
KSB7CiAgICAgICAgICAgICAgICAgfCBvcHMgfAotICAgICAgICAgICAgICAgICRhc20ucHV0cyAi
c3RwICN7b3BzWzBdLmFybTY0T3BlcmFuZCg6cHRyKX0sICN7b3BzWzFdLmFybTY0T3BlcmFuZCg6
cHRyKX0sIFtzcCwgIy0xNl0hIgorICAgICAgICAgICAgICAgICRhc20ucHV0cyAic3RwICN7b3Bz
WzBdLmFybTY0T3BlcmFuZCg6d29yZCl9LCAje29wc1sxXS5hcm02NE9wZXJhbmQoOndvcmQpfSwg
W3NwLCAjLTE2XSEiCiAgICAgICAgICAgICB9CiAgICAgICAgIHdoZW4gIm1vdmUiCiAgICAgICAg
ICAgICBpZiBvcGVyYW5kc1swXS5pbW1lZGlhdGU/CiAgICAgICAgICAgICAgICAgZW1pdEFSTTY0
TW92ZUltbWVkaWF0ZShvcGVyYW5kc1swXS52YWx1ZSwgb3BlcmFuZHNbMV0pCiAgICAgICAgICAg
ICBlbHNlCi0gICAgICAgICAgICAgICAgZW1pdEFSTTY0KCJtb3YiLCBvcGVyYW5kcywgOnB0cikK
KyAgICAgICAgICAgICAgICBlbWl0QVJNNjQoIm1vdiIsIG9wZXJhbmRzLCA6d29yZCkKICAgICAg
ICAgICAgIGVuZAogICAgICAgICB3aGVuICJzeGkycCIKICAgICAgICAgICAgIGVtaXRBUk02NCgi
c3h0dyIsIG9wZXJhbmRzLCBbOmludCwgOnB0cl0pCiAgICAgICAgIHdoZW4gInN4aTJxIgotICAg
ICAgICAgICAgZW1pdEFSTTY0KCJzeHR3Iiwgb3BlcmFuZHMsIFs6aW50LCA6cHRyXSkKKyAgICAg
ICAgICAgIGVtaXRBUk02NCgic3h0dyIsIG9wZXJhbmRzLCBbOmludCwgOndvcmRdKQogICAgICAg
ICB3aGVuICJ6eGkycCIKICAgICAgICAgICAgIGVtaXRBUk02NCgidXh0dyIsIG9wZXJhbmRzLCBb
OmludCwgOnB0cl0pCiAgICAgICAgIHdoZW4gInp4aTJxIgotICAgICAgICAgICAgZW1pdEFSTTY0
KCJ1eHR3Iiwgb3BlcmFuZHMsIFs6aW50LCA6cHRyXSkKKyAgICAgICAgICAgIGVtaXRBUk02NCgi
dXh0dyIsIG9wZXJhbmRzLCBbOmludCwgOndvcmRdKQogICAgICAgICB3aGVuICJub3AiCiAgICAg
ICAgICAgICAkYXNtLnB1dHMgIm5vcCIKICAgICAgICAgd2hlbiAiYmllcSIsICJiYmVxIgpAQCAt
NzMyLDE1ICs3ODUsMTUgQEAgY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICAgICAgICAgIGVsc2lmIG9w
ZXJhbmRzWzFdLmltbWVkaWF0ZT8gYW5kIG9wZXJhbmRzWzFdLnZhbHVlID09IDAKICAgICAgICAg
ICAgICAgICAkYXNtLnB1dHMgImNieiAje29wZXJhbmRzWzBdLmFybTY0T3BlcmFuZCg6cHRyKX0s
ICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9IgogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAg
ICAgIGVtaXRBUk02NEJyYW5jaCgic3VicyB4enIsICIsIG9wZXJhbmRzLCA6cHRyLCAiYi5lcSIp
CisgICAgICAgICAgICAgICAgZW1pdEFSTTY0QnJhbmNoKCJzdWJzICN7YXJtNjRHUFJOYW1lKCd4
enInLCA6cHRyKX0sICIsIG9wZXJhbmRzLCA6cHRyLCAiYi5lcSIpCiAgICAgICAgICAgICBlbmQK
ICAgICAgICAgd2hlbiAiYnFlcSIKICAgICAgICAgICAgIGlmIG9wZXJhbmRzWzBdLmltbWVkaWF0
ZT8gYW5kIG9wZXJhbmRzWzBdLnZhbHVlID09IDAKLSAgICAgICAgICAgICAgICAkYXNtLnB1dHMg
ImNieiAje29wZXJhbmRzWzFdLmFybTY0T3BlcmFuZCg6cHRyKX0sICN7b3BlcmFuZHNbMl0uYXNt
TGFiZWx9IgorICAgICAgICAgICAgICAgICRhc20ucHV0cyAiY2J6ICN7b3BlcmFuZHNbMV0uYXJt
NjRPcGVyYW5kKDp3b3JkKX0sICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9IgogICAgICAgICAgICAg
ZWxzaWYgb3BlcmFuZHNbMV0uaW1tZWRpYXRlPyBhbmQgb3BlcmFuZHNbMV0udmFsdWUgPT0gMAot
ICAgICAgICAgICAgICAgICRhc20ucHV0cyAiY2J6ICN7b3BlcmFuZHNbMF0uYXJtNjRPcGVyYW5k
KDpwdHIpfSwgI3tvcGVyYW5kc1syXS5hc21MYWJlbH0iCisgICAgICAgICAgICAgICAgJGFzbS5w
dXRzICJjYnogI3tvcGVyYW5kc1swXS5hcm02NE9wZXJhbmQoOndvcmQpfSwgI3tvcGVyYW5kc1sy
XS5hc21MYWJlbH0iCiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgZW1pdEFSTTY0
QnJhbmNoKCJzdWJzIHh6ciwgIiwgb3BlcmFuZHMsIDpwdHIsICJiLmVxIikKKyAgICAgICAgICAg
ICAgICBlbWl0QVJNNjRCcmFuY2goInN1YnMgeHpyLCAiLCBvcGVyYW5kcywgOndvcmQsICJiLmVx
IikKICAgICAgICAgICAgIGVuZAogICAgICAgICB3aGVuICJiaW5lcSIsICJiYm5lcSIKICAgICAg
ICAgICAgIGlmIG9wZXJhbmRzWzBdLmltbWVkaWF0ZT8gYW5kIG9wZXJhbmRzWzBdLnZhbHVlID09
IDAKQEAgLTc1Niw3NSArODA5LDc1IEBAIGNsYXNzIEluc3RydWN0aW9uCiAgICAgICAgICAgICBl
bHNpZiBvcGVyYW5kc1sxXS5pbW1lZGlhdGU/IGFuZCBvcGVyYW5kc1sxXS52YWx1ZSA9PSAwCiAg
ICAgICAgICAgICAgICAgJGFzbS5wdXRzICJjYm56ICN7b3BlcmFuZHNbMF0uYXJtNjRPcGVyYW5k
KDpwdHIpfSwgI3tvcGVyYW5kc1syXS5hc21MYWJlbH0iCiAgICAgICAgICAgICBlbHNlCi0gICAg
ICAgICAgICAgICAgZW1pdEFSTTY0QnJhbmNoKCJzdWJzIHh6ciwgIiwgb3BlcmFuZHMsIDpwdHIs
ICJiLm5lIikKKyAgICAgICAgICAgICAgICBlbWl0QVJNNjRCcmFuY2goInN1YnMgI3thcm02NEdQ
Uk5hbWUoJ3h6cicsIDpwdHIpfSwgIiwgb3BlcmFuZHMsIDpwdHIsICJiLm5lIikKICAgICAgICAg
ICAgIGVuZAogICAgICAgICB3aGVuICJicW5lcSIKICAgICAgICAgICAgIGlmIG9wZXJhbmRzWzBd
LmltbWVkaWF0ZT8gYW5kIG9wZXJhbmRzWzBdLnZhbHVlID09IDAKLSAgICAgICAgICAgICAgICAk
YXNtLnB1dHMgImNibnogI3tvcGVyYW5kc1sxXS5hcm02NE9wZXJhbmQoOnB0cil9LCAje29wZXJh
bmRzWzJdLmFzbUxhYmVsfSIKKyAgICAgICAgICAgICAgICAkYXNtLnB1dHMgImNibnogI3tvcGVy
YW5kc1sxXS5hcm02NE9wZXJhbmQoOndvcmQpfSwgI3tvcGVyYW5kc1syXS5hc21MYWJlbH0iCiAg
ICAgICAgICAgICBlbHNpZiBvcGVyYW5kc1sxXS5pbW1lZGlhdGU/IGFuZCBvcGVyYW5kc1sxXS52
YWx1ZSA9PSAwCi0gICAgICAgICAgICAgICAgJGFzbS5wdXRzICJjYm56ICN7b3BlcmFuZHNbMF0u
YXJtNjRPcGVyYW5kKDpwdHIpfSwgI3tvcGVyYW5kc1syXS5hc21MYWJlbH0iCisgICAgICAgICAg
ICAgICAgJGFzbS5wdXRzICJjYm56ICN7b3BlcmFuZHNbMF0uYXJtNjRPcGVyYW5kKDp3b3JkKX0s
ICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9IgogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAg
ICAgIGVtaXRBUk02NEJyYW5jaCgic3VicyB4enIsICIsIG9wZXJhbmRzLCA6cHRyLCAiYi5uZSIp
CisgICAgICAgICAgICAgICAgZW1pdEFSTTY0QnJhbmNoKCJzdWJzIHh6ciwgIiwgb3BlcmFuZHMs
IDp3b3JkLCAiYi5uZSIpCiAgICAgICAgICAgICBlbmQKICAgICAgICAgd2hlbiAiYmlhIiwgImJi
YSIKICAgICAgICAgICAgIGVtaXRBUk02NEJyYW5jaCgic3VicyB3enIsICIsIG9wZXJhbmRzLCA6
aW50LCAiYi5oaSIpCiAgICAgICAgIHdoZW4gImJwYSIKLSAgICAgICAgICAgIGVtaXRBUk02NEJy
YW5jaCgic3VicyB4enIsICIsIG9wZXJhbmRzLCA6cHRyLCAiYi5oaSIpCisgICAgICAgICAgICBl
bWl0QVJNNjRCcmFuY2goInN1YnMgI3thcm02NEdQUk5hbWUoJ3h6cicsIDpwdHIpfSwgIiwgb3Bl
cmFuZHMsIDpwdHIsICJiLmhpIikKICAgICAgICAgd2hlbiAiYnFhIgotICAgICAgICAgICAgZW1p
dEFSTTY0QnJhbmNoKCJzdWJzIHh6ciwgIiwgb3BlcmFuZHMsIDpwdHIsICJiLmhpIikKKyAgICAg
ICAgICAgIGVtaXRBUk02NEJyYW5jaCgic3VicyB4enIsICIsIG9wZXJhbmRzLCA6d29yZCwgImIu
aGkiKQogICAgICAgICB3aGVuICJiaWFlcSIsICJiYmFlcSIKICAgICAgICAgICAgIGVtaXRBUk02
NEJyYW5jaCgic3VicyB3enIsICIsIG9wZXJhbmRzLCA6aW50LCAiYi5ocyIpCiAgICAgICAgIHdo
ZW4gImJwYWVxIgotICAgICAgICAgICAgZW1pdEFSTTY0QnJhbmNoKCJzdWJzIHh6ciwgIiwgb3Bl
cmFuZHMsIDpwdHIsICJiLmhzIikKKyAgICAgICAgICAgIGVtaXRBUk02NEJyYW5jaCgic3VicyAj
e2FybTY0R1BSTmFtZSgneHpyJywgOnB0cil9LCAiLCBvcGVyYW5kcywgOnB0ciwgImIuaHMiKQog
ICAgICAgICB3aGVuICJicWFlcSIKLSAgICAgICAgICAgIGVtaXRBUk02NEJyYW5jaCgic3VicyB4
enIsICIsIG9wZXJhbmRzLCA6cHRyLCAiYi5ocyIpCisgICAgICAgICAgICBlbWl0QVJNNjRCcmFu
Y2goInN1YnMgeHpyLCAiLCBvcGVyYW5kcywgOndvcmQsICJiLmhzIikKICAgICAgICAgd2hlbiAi
YmliIiwgImJiYiIKICAgICAgICAgICAgIGVtaXRBUk02NEJyYW5jaCgic3VicyB3enIsICIsIG9w
ZXJhbmRzLCA6aW50LCAiYi5sbyIpCiAgICAgICAgIHdoZW4gImJwYiIKLSAgICAgICAgICAgIGVt
aXRBUk02NEJyYW5jaCgic3VicyB4enIsICIsIG9wZXJhbmRzLCA6cHRyLCAiYi5sbyIpCisgICAg
ICAgICAgICBlbWl0QVJNNjRCcmFuY2goInN1YnMgI3thcm02NEdQUk5hbWUoJ3h6cicsIDpwdHIp
fSwgIiwgb3BlcmFuZHMsIDpwdHIsICJiLmxvIikKICAgICAgICAgd2hlbiAiYnFiIgotICAgICAg
ICAgICAgZW1pdEFSTTY0QnJhbmNoKCJzdWJzIHh6ciwgIiwgb3BlcmFuZHMsIDpwdHIsICJiLmxv
IikKKyAgICAgICAgICAgIGVtaXRBUk02NEJyYW5jaCgic3VicyB4enIsICIsIG9wZXJhbmRzLCA6
d29yZCwgImIubG8iKQogICAgICAgICB3aGVuICJiaWJlcSIsICJiYmJlcSIKICAgICAgICAgICAg
IGVtaXRBUk02NEJyYW5jaCgic3VicyB3enIsICIsIG9wZXJhbmRzLCA6aW50LCAiYi5scyIpCiAg
ICAgICAgIHdoZW4gImJwYmVxIgotICAgICAgICAgICAgZW1pdEFSTTY0QnJhbmNoKCJzdWJzIHh6
ciwgIiwgb3BlcmFuZHMsIDpwdHIsICJiLmxzIikKKyAgICAgICAgICAgIGVtaXRBUk02NEJyYW5j
aCgic3VicyAje2FybTY0R1BSTmFtZSgneHpyJywgOnB0cil9LCAiLCBvcGVyYW5kcywgOnB0ciwg
ImIubHMiKQogICAgICAgICB3aGVuICJicWJlcSIKLSAgICAgICAgICAgIGVtaXRBUk02NEJyYW5j
aCgic3VicyB4enIsICIsIG9wZXJhbmRzLCA6cHRyLCAiYi5scyIpCisgICAgICAgICAgICBlbWl0
QVJNNjRCcmFuY2goInN1YnMgeHpyLCAiLCBvcGVyYW5kcywgOndvcmQsICJiLmxzIikKICAgICAg
ICAgd2hlbiAiYmlndCIsICJiYmd0IgogICAgICAgICAgICAgZW1pdEFSTTY0QnJhbmNoKCJzdWJz
IHd6ciwgIiwgb3BlcmFuZHMsIDppbnQsICJiLmd0IikKICAgICAgICAgd2hlbiAiYnBndCIKLSAg
ICAgICAgICAgIGVtaXRBUk02NEJyYW5jaCgic3VicyB4enIsICIsIG9wZXJhbmRzLCA6cHRyLCAi
Yi5ndCIpCisgICAgICAgICAgICBlbWl0QVJNNjRCcmFuY2goInN1YnMgI3thcm02NEdQUk5hbWUo
J3h6cicsIDpwdHIpfSwgIiwgb3BlcmFuZHMsIDpwdHIsICJiLmd0IikKICAgICAgICAgd2hlbiAi
YnFndCIKLSAgICAgICAgICAgIGVtaXRBUk02NEJyYW5jaCgic3VicyB4enIsICIsIG9wZXJhbmRz
LCA6cHRyLCAiYi5ndCIpCisgICAgICAgICAgICBlbWl0QVJNNjRCcmFuY2goInN1YnMgeHpyLCAi
LCBvcGVyYW5kcywgOndvcmQsICJiLmd0IikKICAgICAgICAgd2hlbiAiYmlndGVxIiwgImJiZ3Rl
cSIKICAgICAgICAgICAgIGVtaXRBUk02NEJyYW5jaCgic3VicyB3enIsICIsIG9wZXJhbmRzLCA6
aW50LCAiYi5nZSIpCiAgICAgICAgIHdoZW4gImJwZ3RlcSIKLSAgICAgICAgICAgIGVtaXRBUk02
NEJyYW5jaCgic3VicyB4enIsICIsIG9wZXJhbmRzLCA6cHRyLCAiYi5nZSIpCisgICAgICAgICAg
ICBlbWl0QVJNNjRCcmFuY2goInN1YnMgI3thcm02NEdQUk5hbWUoJ3h6cicsIDpwdHIpfSwgIiwg
b3BlcmFuZHMsIDpwdHIsICJiLmdlIikKICAgICAgICAgd2hlbiAiYnFndGVxIgotICAgICAgICAg
ICAgZW1pdEFSTTY0QnJhbmNoKCJzdWJzIHh6ciwgIiwgb3BlcmFuZHMsIDpwdHIsICJiLmdlIikK
KyAgICAgICAgICAgIGVtaXRBUk02NEJyYW5jaCgic3VicyB4enIsICIsIG9wZXJhbmRzLCA6d29y
ZCwgImIuZ2UiKQogICAgICAgICB3aGVuICJiaWx0IiwgImJibHQiCiAgICAgICAgICAgICBlbWl0
QVJNNjRCcmFuY2goInN1YnMgd3pyLCAiLCBvcGVyYW5kcywgOmludCwgImIubHQiKQogICAgICAg
ICB3aGVuICJicGx0IgotICAgICAgICAgICAgZW1pdEFSTTY0QnJhbmNoKCJzdWJzIHh6ciwgIiwg
b3BlcmFuZHMsIDpwdHIsICJiLmx0IikKKyAgICAgICAgICAgIGVtaXRBUk02NEJyYW5jaCgic3Vi
cyAje2FybTY0R1BSTmFtZSgneHpyJywgOnB0cil9LCAiLCBvcGVyYW5kcywgOnB0ciwgImIubHQi
KQogICAgICAgICB3aGVuICJicWx0IgotICAgICAgICAgICAgZW1pdEFSTTY0QnJhbmNoKCJzdWJz
IHh6ciwgIiwgb3BlcmFuZHMsIDpwdHIsICJiLmx0IikKKyAgICAgICAgICAgIGVtaXRBUk02NEJy
YW5jaCgic3VicyB4enIsICIsIG9wZXJhbmRzLCA6d29yZCwgImIubHQiKQogICAgICAgICB3aGVu
ICJiaWx0ZXEiLCAiYmJsdGVxIgogICAgICAgICAgICAgZW1pdEFSTTY0QnJhbmNoKCJzdWJzIHd6
ciwgIiwgb3BlcmFuZHMsIDppbnQsICJiLmxlIikKICAgICAgICAgd2hlbiAiYnBsdGVxIgotICAg
ICAgICAgICAgZW1pdEFSTTY0QnJhbmNoKCJzdWJzIHh6ciwgIiwgb3BlcmFuZHMsIDpwdHIsICJi
LmxlIikKKyAgICAgICAgICAgIGVtaXRBUk02NEJyYW5jaCgic3VicyAje2FybTY0R1BSTmFtZSgn
eHpyJywgOnB0cil9LCAiLCBvcGVyYW5kcywgOnB0ciwgImIubGUiKQogICAgICAgICB3aGVuICJi
cWx0ZXEiCi0gICAgICAgICAgICBlbWl0QVJNNjRCcmFuY2goInN1YnMgeHpyLCAiLCBvcGVyYW5k
cywgOnB0ciwgImIubGUiKQorICAgICAgICAgICAgZW1pdEFSTTY0QnJhbmNoKCJzdWJzIHh6ciwg
Iiwgb3BlcmFuZHMsIDp3b3JkLCAiYi5sZSIpCiAgICAgICAgIHdoZW4gImptcCIKICAgICAgICAg
ICAgIGlmIG9wZXJhbmRzWzBdLmxhYmVsPwogICAgICAgICAgICAgICAgICRhc20ucHV0cyAiYiAj
e29wZXJhbmRzWzBdLmFzbUxhYmVsfSIKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAg
ICBlbWl0QVJNNjRVbmZsaXBwZWQoImJyIiwgb3BlcmFuZHMsIDpwdHIpCisgICAgICAgICAgICAg
ICAgZW1pdEFSTTY0VW5mbGlwcGVkKCJiciIsIG9wZXJhbmRzLCA6d29yZCkKICAgICAgICAgICAg
IGVuZAogICAgICAgICB3aGVuICJjYWxsIgogICAgICAgICAgICAgaWYgb3BlcmFuZHNbMF0ubGFi
ZWw/CiAgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJibCAje29wZXJhbmRzWzBdLmFzbUxhYmVs
fSIKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBlbWl0QVJNNjRVbmZsaXBwZWQo
ImJsciIsIG9wZXJhbmRzLCA6cHRyKQorICAgICAgICAgICAgICAgIGVtaXRBUk02NFVuZmxpcHBl
ZCgiYmxyIiwgb3BlcmFuZHMsIDp3b3JkKQogICAgICAgICAgICAgZW5kCiAgICAgICAgIHdoZW4g
ImJyZWFrIgogICAgICAgICAgICAgJGFzbS5wdXRzICJicmsgXCMwIgpAQCAtODM1LDczICs4ODgs
NzMgQEAgY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICAgICAgd2hlbiAiY3BlcSIKICAgICAgICAgICAg
IGVtaXRBUk02NENvbXBhcmUob3BlcmFuZHMsIDpwdHIsICJuZSIpCiAgICAgICAgIHdoZW4gImNx
ZXEiCi0gICAgICAgICAgICBlbWl0QVJNNjRDb21wYXJlKG9wZXJhbmRzLCA6cHRyLCAibmUiKQor
ICAgICAgICAgICAgZW1pdEFSTTY0Q29tcGFyZShvcGVyYW5kcywgOndvcmQsICJuZSIpCiAgICAg
ICAgIHdoZW4gImNpbmVxIiwgImNibmVxIgogICAgICAgICAgICAgZW1pdEFSTTY0Q29tcGFyZShv
cGVyYW5kcywgOmludCwgImVxIikKICAgICAgICAgd2hlbiAiY3BuZXEiCiAgICAgICAgICAgICBl
bWl0QVJNNjRDb21wYXJlKG9wZXJhbmRzLCA6cHRyLCAiZXEiKQogICAgICAgICB3aGVuICJjcW5l
cSIKLSAgICAgICAgICAgIGVtaXRBUk02NENvbXBhcmUob3BlcmFuZHMsIDpwdHIsICJlcSIpCisg
ICAgICAgICAgICBlbWl0QVJNNjRDb21wYXJlKG9wZXJhbmRzLCA6d29yZCwgImVxIikKICAgICAg
ICAgd2hlbiAiY2lhIiwgImNiYSIKICAgICAgICAgICAgIGVtaXRBUk02NENvbXBhcmUob3BlcmFu
ZHMsIDppbnQsICJscyIpCiAgICAgICAgIHdoZW4gImNwYSIKICAgICAgICAgICAgIGVtaXRBUk02
NENvbXBhcmUob3BlcmFuZHMsIDpwdHIsICJscyIpCiAgICAgICAgIHdoZW4gImNxYSIKLSAgICAg
ICAgICAgIGVtaXRBUk02NENvbXBhcmUob3BlcmFuZHMsIDpwdHIsICJscyIpCisgICAgICAgICAg
ICBlbWl0QVJNNjRDb21wYXJlKG9wZXJhbmRzLCA6d29yZCwgImxzIikKICAgICAgICAgd2hlbiAi
Y2lhZXEiLCAiY2JhZXEiCiAgICAgICAgICAgICBlbWl0QVJNNjRDb21wYXJlKG9wZXJhbmRzLCA6
aW50LCAibG8iKQogICAgICAgICB3aGVuICJjcGFlcSIKICAgICAgICAgICAgIGVtaXRBUk02NENv
bXBhcmUob3BlcmFuZHMsIDpwdHIsICJsbyIpCiAgICAgICAgIHdoZW4gImNxYWVxIgotICAgICAg
ICAgICAgZW1pdEFSTTY0Q29tcGFyZShvcGVyYW5kcywgOnB0ciwgImxvIikKKyAgICAgICAgICAg
IGVtaXRBUk02NENvbXBhcmUob3BlcmFuZHMsIDp3b3JkLCAibG8iKQogICAgICAgICB3aGVuICJj
aWIiLCAiY2JiIgogICAgICAgICAgICAgZW1pdEFSTTY0Q29tcGFyZShvcGVyYW5kcywgOmludCwg
ImhzIikKICAgICAgICAgd2hlbiAiY3BiIgogICAgICAgICAgICAgZW1pdEFSTTY0Q29tcGFyZShv
cGVyYW5kcywgOnB0ciwgImhzIikKICAgICAgICAgd2hlbiAiY3FiIgotICAgICAgICAgICAgZW1p
dEFSTTY0Q29tcGFyZShvcGVyYW5kcywgOnB0ciwgImhzIikKKyAgICAgICAgICAgIGVtaXRBUk02
NENvbXBhcmUob3BlcmFuZHMsIDp3b3JkLCAiaHMiKQogICAgICAgICB3aGVuICJjaWJlcSIsICJj
YmJlcSIKICAgICAgICAgICAgIGVtaXRBUk02NENvbXBhcmUob3BlcmFuZHMsIDppbnQsICJoaSIp
CiAgICAgICAgIHdoZW4gImNwYmVxIgogICAgICAgICAgICAgZW1pdEFSTTY0Q29tcGFyZShvcGVy
YW5kcywgOnB0ciwgImhpIikKICAgICAgICAgd2hlbiAiY3FiZXEiCi0gICAgICAgICAgICBlbWl0
QVJNNjRDb21wYXJlKG9wZXJhbmRzLCA6cHRyLCAiaGkiKQorICAgICAgICAgICAgZW1pdEFSTTY0
Q29tcGFyZShvcGVyYW5kcywgOndvcmQsICJoaSIpCiAgICAgICAgIHdoZW4gImNpbHQiLCAiY2Js
dCIKICAgICAgICAgICAgIGVtaXRBUk02NENvbXBhcmUob3BlcmFuZHMsIDppbnQsICJnZSIpCiAg
ICAgICAgIHdoZW4gImNwbHQiCiAgICAgICAgICAgICBlbWl0QVJNNjRDb21wYXJlKG9wZXJhbmRz
LCA6cHRyLCAiZ2UiKQogICAgICAgICB3aGVuICJjcWx0IgotICAgICAgICAgICAgZW1pdEFSTTY0
Q29tcGFyZShvcGVyYW5kcywgOnB0ciwgImdlIikKKyAgICAgICAgICAgIGVtaXRBUk02NENvbXBh
cmUob3BlcmFuZHMsIDp3b3JkLCAiZ2UiKQogICAgICAgICB3aGVuICJjaWx0ZXEiLCAiY2JsdGVx
IgogICAgICAgICAgICAgZW1pdEFSTTY0Q29tcGFyZShvcGVyYW5kcywgOmludCwgImd0IikKICAg
ICAgICAgd2hlbiAiY3BsdGVxIgogICAgICAgICAgICAgZW1pdEFSTTY0Q29tcGFyZShvcGVyYW5k
cywgOnB0ciwgImd0IikKICAgICAgICAgd2hlbiAiY3FsdGVxIgotICAgICAgICAgICAgZW1pdEFS
TTY0Q29tcGFyZShvcGVyYW5kcywgOnB0ciwgImd0IikKKyAgICAgICAgICAgIGVtaXRBUk02NENv
bXBhcmUob3BlcmFuZHMsIDp3b3JkLCAiZ3QiKQogICAgICAgICB3aGVuICJjaWd0IiwgImNiZ3Qi
CiAgICAgICAgICAgICBlbWl0QVJNNjRDb21wYXJlKG9wZXJhbmRzLCA6aW50LCAibGUiKQogICAg
ICAgICB3aGVuICJjcGd0IgogICAgICAgICAgICAgZW1pdEFSTTY0Q29tcGFyZShvcGVyYW5kcywg
OnB0ciwgImxlIikKICAgICAgICAgd2hlbiAiY3FndCIKLSAgICAgICAgICAgIGVtaXRBUk02NENv
bXBhcmUob3BlcmFuZHMsIDpwdHIsICJsZSIpCisgICAgICAgICAgICBlbWl0QVJNNjRDb21wYXJl
KG9wZXJhbmRzLCA6d29yZCwgImxlIikKICAgICAgICAgd2hlbiAiY2lndGVxIiwgImNiZ3RlcSIK
ICAgICAgICAgICAgIGVtaXRBUk02NENvbXBhcmUob3BlcmFuZHMsIDppbnQsICJsdCIpCiAgICAg
ICAgIHdoZW4gImNwZ3RlcSIKICAgICAgICAgICAgIGVtaXRBUk02NENvbXBhcmUob3BlcmFuZHMs
IDpwdHIsICJsdCIpCiAgICAgICAgIHdoZW4gImNxZ3RlcSIKLSAgICAgICAgICAgIGVtaXRBUk02
NENvbXBhcmUob3BlcmFuZHMsIDpwdHIsICJsdCIpCisgICAgICAgICAgICBlbWl0QVJNNjRDb21w
YXJlKG9wZXJhbmRzLCA6d29yZCwgImx0IikKICAgICAgICAgd2hlbiAicGVlayIKLSAgICAgICAg
ICAgICRhc20ucHV0cyAibGRyICN7b3BlcmFuZHNbMV0uYXJtNjRPcGVyYW5kKDpwdHIpfSwgW3Nw
LCBcIyN7b3BlcmFuZHNbMF0udmFsdWUgKiA4fV0iCisgICAgICAgICAgICAkYXNtLnB1dHMgImxk
ciAje29wZXJhbmRzWzFdLmFybTY0T3BlcmFuZCg6d29yZCl9LCBbc3AsIFwjI3tvcGVyYW5kc1sw
XS52YWx1ZSAqIDh9XSIKICAgICAgICAgd2hlbiAicG9rZSIKLSAgICAgICAgICAgICRhc20ucHV0
cyAic3RyICN7b3BlcmFuZHNbMV0uYXJtNjRPcGVyYW5kKDpwdHIpfSwgW3NwLCBcIyN7b3BlcmFu
ZHNbMF0udmFsdWUgKiA4fV0iCisgICAgICAgICAgICAkYXNtLnB1dHMgInN0ciAje29wZXJhbmRz
WzFdLmFybTY0T3BlcmFuZCg6d29yZCl9LCBbc3AsIFwjI3tvcGVyYW5kc1swXS52YWx1ZSAqIDh9
XSIKICAgICAgICAgd2hlbiAiZnAyZCIKICAgICAgICAgICAgIGVtaXRBUk02NCgiZm1vdiIsIG9w
ZXJhbmRzLCBbOnB0ciwgOmRvdWJsZV0pCiAgICAgICAgIHdoZW4gImZxMmQiCi0gICAgICAgICAg
ICBlbWl0QVJNNjQoImZtb3YiLCBvcGVyYW5kcywgWzpwdHIsIDpkb3VibGVdKQorICAgICAgICAg
ICAgZW1pdEFSTTY0KCJmbW92Iiwgb3BlcmFuZHMsIFs6d29yZCwgOmRvdWJsZV0pCiAgICAgICAg
IHdoZW4gImZkMnAiCiAgICAgICAgICAgICBlbWl0QVJNNjQoImZtb3YiLCBvcGVyYW5kcywgWzpk
b3VibGUsIDpwdHJdKQogICAgICAgICB3aGVuICJmZDJxIgotICAgICAgICAgICAgZW1pdEFSTTY0
KCJmbW92Iiwgb3BlcmFuZHMsIFs6ZG91YmxlLCA6cHRyXSkKKyAgICAgICAgICAgIGVtaXRBUk02
NCgiZm1vdiIsIG9wZXJhbmRzLCBbOmRvdWJsZSwgOndvcmRdKQogICAgICAgICB3aGVuICJibyIK
ICAgICAgICAgICAgICRhc20ucHV0cyAiYi52cyAje29wZXJhbmRzWzBdLmFzbUxhYmVsfSIKICAg
ICAgICAgd2hlbiAiYnMiCkBAIC05MTUsMTMgKzk2OCwxMyBAQCBjbGFzcyBJbnN0cnVjdGlvbgog
ICAgICAgICB3aGVuICJsZWFwIgogICAgICAgICAgICAgb3BlcmFuZHNbMF0uYXJtNjRFbWl0TGVh
KG9wZXJhbmRzWzFdLCA6cHRyKQogICAgICAgICB3aGVuICJsZWFxIgotICAgICAgICAgICAgb3Bl
cmFuZHNbMF0uYXJtNjRFbWl0TGVhKG9wZXJhbmRzWzFdLCA6cHRyKQorICAgICAgICAgICAgb3Bl
cmFuZHNbMF0uYXJtNjRFbWl0TGVhKG9wZXJhbmRzWzFdLCA6d29yZCkKICAgICAgICAgd2hlbiAi
c211bGxpIgotICAgICAgICAgICAgJGFzbS5wdXRzICJzbWFkZGwgI3tvcGVyYW5kc1syXS5hcm02
NE9wZXJhbmQoOnB0cil9LCAje29wZXJhbmRzWzBdLmFybTY0T3BlcmFuZCg6aW50KX0sICN7b3Bl
cmFuZHNbMV0uYXJtNjRPcGVyYW5kKDppbnQpfSwgeHpyIgorICAgICAgICAgICAgJGFzbS5wdXRz
ICJzbWFkZGwgI3tvcGVyYW5kc1syXS5hcm02NE9wZXJhbmQoOndvcmQpfSwgI3tvcGVyYW5kc1sw
XS5hcm02NE9wZXJhbmQoOmludCl9LCAje29wZXJhbmRzWzFdLmFybTY0T3BlcmFuZCg6aW50KX0s
IHh6ciIKICAgICAgICAgd2hlbiAibWVtZmVuY2UiCiAgICAgICAgICAgICAkYXNtLnB1dHMgImRt
YiBzeSIKICAgICAgICAgd2hlbiAicGNydG9hZGRyIgotICAgICAgICAgICAgJGFzbS5wdXRzICJh
ZHIgI3tvcGVyYW5kc1sxXS5hcm02NE9wZXJhbmQoOnB0cil9LCAje29wZXJhbmRzWzBdLnZhbHVl
fSIKKyAgICAgICAgICAgICRhc20ucHV0cyAiYWRyICN7b3BlcmFuZHNbMV0uYXJtNjRPcGVyYW5k
KDp3b3JkKX0sICN7b3BlcmFuZHNbMF0udmFsdWV9IgogICAgICAgICB3aGVuICJub3BDb3J0ZXhB
NTNGaXg4MzU3NjkiCiAgICAgICAgICAgICAkYXNtLnB1dFN0cigiI2lmIENQVShBUk02NF9DT1JU
RVhBNTMpIikKICAgICAgICAgICAgICRhc20ucHV0cyAibm9wIgpAQCAtOTMzLDE0ICs5ODYsMTQg
QEAgY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICAgICAgICAgICMgdGhlIGxhYmVscyByZXF1aXJlZCBm
b3IgdGhlIC5sb2ggZGlyZWN0aXZlLgogICAgICAgICAgICAgJGFzbS5wdXRTdHIoIiNpZiBPUyhE
QVJXSU4pIikKICAgICAgICAgICAgICRhc20ucHV0cyAiTF9vZmZsaW5lYXNtX2xvaF9hZHJwXyN7
dWlkfToiCi0gICAgICAgICAgICAkYXNtLnB1dHMgImFkcnAgI3tvcGVyYW5kc1sxXS5hcm02NE9w
ZXJhbmQoOnB0cil9LCAje29wZXJhbmRzWzBdLmFzbUxhYmVsfUBHT1RQQUdFIgorICAgICAgICAg
ICAgJGFzbS5wdXRzICJhZHJwICN7b3BlcmFuZHNbMV0uYXJtNjRPcGVyYW5kKDp3b3JkKX0sICN7
b3BlcmFuZHNbMF0uYXNtTGFiZWx9QEdPVFBBR0UiCiAgICAgICAgICAgICAkYXNtLnB1dHMgIkxf
b2ZmbGluZWFzbV9sb2hfbGRyXyN7dWlkfToiCi0gICAgICAgICAgICAkYXNtLnB1dHMgImxkciAj
e29wZXJhbmRzWzFdLmFybTY0T3BlcmFuZCg6cHRyKX0sIFsje29wZXJhbmRzWzFdLmFybTY0T3Bl
cmFuZCg6cHRyKX0sICN7b3BlcmFuZHNbMF0uYXNtTGFiZWx9QEdPVFBBR0VPRkZdIgorICAgICAg
ICAgICAgJGFzbS5wdXRzICJsZHIgI3tvcGVyYW5kc1sxXS5hcm02NE9wZXJhbmQoOndvcmQpfSwg
WyN7b3BlcmFuZHNbMV0uYXJtNjRPcGVyYW5kKDp3b3JkKX0sICN7b3BlcmFuZHNbMF0uYXNtTGFi
ZWx9QEdPVFBBR0VPRkZdIgogCiAgICAgICAgICAgICAjIE9uIExpbnV4LCB1c2UgRUxGIEdPVCBy
ZWxvY2F0aW9uIHNwZWNpZmllcnMuCiAgICAgICAgICAgICAkYXNtLnB1dFN0cigiI2VsaWYgT1Mo
TElOVVgpIikKLSAgICAgICAgICAgICRhc20ucHV0cyAiYWRycCAje29wZXJhbmRzWzFdLmFybTY0
T3BlcmFuZCg6cHRyKX0sIDpnb3Q6I3tvcGVyYW5kc1swXS5hc21MYWJlbH0iCi0gICAgICAgICAg
ICAkYXNtLnB1dHMgImxkciAje29wZXJhbmRzWzFdLmFybTY0T3BlcmFuZCg6cHRyKX0sIFsje29w
ZXJhbmRzWzFdLmFybTY0T3BlcmFuZCg6cHRyKX0sIDpnb3RfbG8xMjoje29wZXJhbmRzWzBdLmFz
bUxhYmVsfV0iCisgICAgICAgICAgICAkYXNtLnB1dHMgImFkcnAgI3tvcGVyYW5kc1sxXS5hcm02
NE9wZXJhbmQoOndvcmQpfSwgOmdvdDoje29wZXJhbmRzWzBdLmFzbUxhYmVsfSIKKyAgICAgICAg
ICAgICRhc20ucHV0cyAibGRyICN7b3BlcmFuZHNbMV0uYXJtNjRPcGVyYW5kKDp3b3JkKX0sIFsj
e29wZXJhbmRzWzFdLmFybTY0T3BlcmFuZCg6d29yZCl9LCA6Z290X2xvMTI6I3tvcGVyYW5kc1sw
XS5hc21MYWJlbH1dIgogCiAgICAgICAgICAgICAjIFRocm93IGEgY29tcGlsZXIgZXJyb3IgZXZl
cnl3aGVyZSBlbHNlLgogICAgICAgICAgICAgJGFzbS5wdXRTdHIoIiNlbHNlIikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FzbS5yYiBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FzbS5yYgppbmRleCAwNjA0MTQ5NzQyM2ViNGM1NzY3ZDUy
ZmE4OTRmOTE0ZjUzOTUzYzJiLi5iZmFlNTE1MTVlOTFkMjZmYWVkN2ZiY2YzZWRlNTk5MDFlZjlk
MTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hc20ucmIK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXNtLnJiCkBAIC0zODksNiAr
Mzg5LDcgQEAgRmlsZS5vcGVuKG91dHB1dEZsbm0sICJ3IikgewogICAgICAgICAgICAgbG93TGV2
ZWxBU1QgPSBsb3dMZXZlbEFTVC5yZXNvbHZlKGJ1aWxkT2Zmc2V0c01hcChsb3dMZXZlbEFTVCwg
b2Zmc2V0c0xpc3QpKQogICAgICAgICAgICAgbG93TGV2ZWxBU1QudmFsaWRhdGUKICAgICAgICAg
ICAgIGVtaXRDb2RlSW5Db25maWd1cmF0aW9uKGNvbmNyZXRlU2V0dGluZ3MsIGxvd0xldmVsQVNU
LCBiYWNrZW5kKSB7CisgICAgICAgICAgICAgICAgICRjdXJyZW50U2V0dGluZ3MgPSBjb25jcmV0
ZVNldHRpbmdzCiAgICAgICAgICAgICAgICAgJGFzbS5pbkFzbSB7CiAgICAgICAgICAgICAgICAg
ICAgIGxvd0xldmVsQVNULmxvd2VyKGJhY2tlbmQpCiAgICAgICAgICAgICAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXN0LnJiIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXN0LnJiCmluZGV4IGJmZTg2NmIwMmM0ZjYxYzQwMmRk
ODZlOGEzMGY2ZmZlZTlkNTdhMGEuLmY0ZjljM2U2NzcwZDBhZmNjNDI2NjRjZjFjZWY2ZDkxMTcz
ZTk5MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FzdC5y
YgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hc3QucmIKQEAgLTgxMSwx
MiArODExLDE2IEBAIGNsYXNzIEJhc2VJbmRleCA8IE5vZGUKICAgICAgICAgQGJhc2UgPSBiYXNl
CiAgICAgICAgIEBpbmRleCA9IGluZGV4CiAgICAgICAgIEBzY2FsZSA9IHNjYWxlCi0gICAgICAg
IHJhaXNlIHVubGVzcyBbMSwgMiwgNCwgOF0ubWVtYmVyPyBAc2NhbGUKICAgICAgICAgQG9mZnNl
dCA9IG9mZnNldAogICAgIGVuZAotICAgIAorCisgICAgZGVmIHNjYWxlVmFsdWUKKyAgICAgICAg
cmFpc2UgdW5sZXNzIFsxLCAyLCA0LCA4XS5tZW1iZXI/IHNjYWxlLnZhbHVlCisgICAgICAgIHNj
YWxlLnZhbHVlCisgICAgZW5kCisKICAgICBkZWYgc2NhbGVTaGlmdAotICAgICAgICBjYXNlIHNj
YWxlCisgICAgICAgIGNhc2Ugc2NhbGVWYWx1ZQogICAgICAgICB3aGVuIDEKICAgICAgICAgICAg
IDAKICAgICAgICAgd2hlbiAyCkBAIC04MjYsNyArODMwLDcgQEAgY2xhc3MgQmFzZUluZGV4IDwg
Tm9kZQogICAgICAgICB3aGVuIDgKICAgICAgICAgICAgIDMKICAgICAgICAgZWxzZQotICAgICAg
ICAgICAgcmFpc2UgIkJhZCBzY2FsZSBhdCAje2NvZGVPcmlnaW5TdHJpbmd9IgorICAgICAgICAg
ICAgcmFpc2UgIkJhZCBzY2FsZTogI3tzY2FsZS52YWx1ZX0gYXQgI3tjb2RlT3JpZ2luU3RyaW5n
fSIKICAgICAgICAgZW5kCiAgICAgZW5kCiAgICAgCkBAIC04MzksMTEgKzg0MywxMSBAQCBjbGFz
cyBCYXNlSW5kZXggPCBOb2RlCiAgICAgZW5kCiAgICAgCiAgICAgZGVmIG1hcENoaWxkcmVuCi0g
ICAgICAgIEJhc2VJbmRleC5uZXcoY29kZU9yaWdpbiwgKHlpZWxkIEBiYXNlKSwgKHlpZWxkIEBp
bmRleCksIEBzY2FsZSwgKHlpZWxkIEBvZmZzZXQpKQorICAgICAgICBCYXNlSW5kZXgubmV3KGNv
ZGVPcmlnaW4sICh5aWVsZCBAYmFzZSksICh5aWVsZCBAaW5kZXgpLCAoeWllbGQgQHNjYWxlKSwg
KHlpZWxkIEBvZmZzZXQpKQogICAgIGVuZAogICAgIAogICAgIGRlZiBkdW1wCi0gICAgICAgICIj
e29mZnNldC5kdW1wfVsje2Jhc2UuZHVtcH0sICN7aW5kZXguZHVtcH0sICN7c2NhbGV9XSIKKyAg
ICAgICAgIiN7b2Zmc2V0LmR1bXB9WyN7YmFzZS5kdW1wfSwgI3tpbmRleC5kdW1wfSwgI3tzY2Fs
ZS52YWx1ZX1dIgogICAgIGVuZAogICAgIAogICAgIGRlZiBhZGRyZXNzPwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYmFja2VuZHMucmIgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9iYWNrZW5kcy5yYgppbmRleCA0NTQ5YWIxYmYxN2M0MDNm
NGI3NDc3MDdlY2Y1ODgzNmNiMzc3OGE4Li5mZjA2NWQ1MzkyZGZjZGQzMjg1NmFhZDdmMDZhYzIx
OGQ1MmQwOGMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9i
YWNrZW5kcy5yYgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9iYWNrZW5k
cy5yYgpAQCAtODYsNiArODYsNyBAQCBkZWYgY2Fub25pY2FsaXplQmFja2VuZE5hbWVzKGJhY2tl
bmROYW1lcykKICAgICAgICAgYmFja2VuZE5hbWUgPSBiYWNrZW5kTmFtZS51cGNhc2UKICAgICAg
ICAgaWYgYmFja2VuZE5hbWUgPX4gL0FSTS4qLwogICAgICAgICAgICAgYmFja2VuZE5hbWUuc3Vi
ISgvQVJNVjcoUz8pKC4qKS8pIHsgfCBfIHwgJ0FSTXY3JyArICQxLmRvd25jYXNlICsgJDIgfQor
ICAgICAgICAgICAgYmFja2VuZE5hbWUgPSAiQVJNNjQiIGlmIGJhY2tlbmROYW1lID09ICJBUk02
NF8zMiIKICAgICAgICAgZW5kCiAgICAgICAgIGJhY2tlbmROYW1lID0gIlg4NiIgaWYgYmFja2Vu
ZE5hbWUgPT0gIkkzODYiCiAgICAgICAgIG5ld0JhY2tlbmROYW1lcyA8PCBiYWNrZW5kTmFtZQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcGFyc2VyLnJiIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcGFyc2VyLnJiCmluZGV4IGNmOGExMDdm
NTMxNzg0MDQxYTY2MzkzMDJkYzg0YTcyYzczN2ZiMTIuLmMxMTM4ZWY0ODVmMWNiN2ZkZTJiMjgw
ZWNlNGQzZDc1MjkwM2Y0ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZs
aW5lYXNtL3BhcnNlci5yYgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9w
YXJzZXIucmIKQEAgLTM2Myw2ICszNjMsMjMgQEAgY2xhc3MgUGFyc2VyCiAgICAgICAgIEBpZHgg
Kz0gMQogICAgICAgICByZXN1bHQKICAgICBlbmQKKworICAgIGRlZiBwYXJzZUNvbnN0RXhwcgor
ICAgICAgICBpZiBAdG9rZW5zW0BpZHhdID09ICJjb25zdGV4cHIiCisgICAgICAgICAgICBAaWR4
ICs9IDEKKyAgICAgICAgICAgIHNraXBOZXdMaW5lCisgICAgICAgICAgICBpZiBAdG9rZW5zW0Bp
ZHhdID09ICIoIgorICAgICAgICAgICAgICAgIGNvZGVPcmlnaW4sIHRleHQgPSBwYXJzZVRleHRJ
blBhcmVucworICAgICAgICAgICAgICAgIHRleHQgPSB0ZXh0LmpvaW4KKyAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgICAgICBjb2RlT3JpZ2luLCB0ZXh0ID0gcGFyc2VDb2xvbkNvbG9uCisg
ICAgICAgICAgICAgICAgdGV4dCA9IHRleHQuam9pbigiOjoiKQorICAgICAgICAgICAgZW5kCisg
ICAgICAgICAgICBDb25zdEV4cHIuZm9yTmFtZShjb2RlT3JpZ2luLCB0ZXh0KQorICAgICAgICBl
bHNlCisgICAgICAgICAgICBwYXJzZUVycm9yCisgICAgICAgIGVuZAorICAgIGVuZAogICAgIAog
ICAgIGRlZiBwYXJzZUFkZHJlc3Mob2Zmc2V0KQogICAgICAgICBwYXJzZUVycm9yIHVubGVzcyBA
dG9rZW5zW0BpZHhdID09ICJbIgpAQCAtMzg3LDEzICs0MDQsMTggQEAgY2xhc3MgUGFyc2VyCiAg
ICAgICAgICAgICBAaWR4ICs9IDEKICAgICAgICAgICAgIGIgPSBwYXJzZVZhcmlhYmxlCiAgICAg
ICAgICAgICBpZiBAdG9rZW5zW0BpZHhdID09ICJdIgotICAgICAgICAgICAgICAgIHJlc3VsdCA9
IEJhc2VJbmRleC5uZXcoY29kZU9yaWdpbiwgYSwgYiwgMSwgb2Zmc2V0KQorICAgICAgICAgICAg
ICAgIHJlc3VsdCA9IEJhc2VJbmRleC5uZXcoY29kZU9yaWdpbiwgYSwgYiwgSW1tZWRpYXRlLm5l
dyhjb2RlT3JpZ2luLCAxKSwgb2Zmc2V0KQogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAg
ICAgIHBhcnNlRXJyb3IgdW5sZXNzIEB0b2tlbnNbQGlkeF0gPT0gIiwiCiAgICAgICAgICAgICAg
ICAgQGlkeCArPSAxCi0gICAgICAgICAgICAgICAgcGFyc2VFcnJvciB1bmxlc3MgWyIxIiwgIjIi
LCAiNCIsICI4Il0ubWVtYmVyPyBAdG9rZW5zW0BpZHhdLnN0cmluZwotICAgICAgICAgICAgICAg
IGMgPSBAdG9rZW5zW0BpZHhdLnN0cmluZy50b19pCi0gICAgICAgICAgICAgICAgQGlkeCArPSAx
CisgICAgICAgICAgICAgICAgaWYgWyIxIiwgIjIiLCAiNCIsICI4Il0ubWVtYmVyPyBAdG9rZW5z
W0BpZHhdLnN0cmluZworICAgICAgICAgICAgICAgICAgICBjID0gSW1tZWRpYXRlLm5ldyhjb2Rl
T3JpZ2luLCBAdG9rZW5zW0BpZHhdLnN0cmluZy50b19pKQorICAgICAgICAgICAgICAgICAgICBA
aWR4ICs9IDEKKyAgICAgICAgICAgICAgICBlbHNpZiBAdG9rZW5zW0BpZHhdID09ICJjb25zdGV4
cHIiCisgICAgICAgICAgICAgICAgICAgIGMgPSBwYXJzZUNvbnN0RXhwcgorICAgICAgICAgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgYyA9IHBhcnNlVmFyaWFibGUKKyAgICAgICAg
ICAgICAgICBlbmQKICAgICAgICAgICAgICAgICBwYXJzZUVycm9yIHVubGVzcyBAdG9rZW5zW0Bp
ZHhdID09ICJdIgogICAgICAgICAgICAgICAgIHJlc3VsdCA9IEJhc2VJbmRleC5uZXcoY29kZU9y
aWdpbiwgYSwgYiwgYywgb2Zmc2V0KQogICAgICAgICAgICAgZW5kCkBAIC00NzgsMTYgKzUwMCw3
IEBAIGNsYXNzIFBhcnNlcgogICAgICAgICAgICAgY29kZU9yaWdpbiwgbmFtZXMgPSBwYXJzZUNv
bG9uQ29sb24KICAgICAgICAgICAgIFNpemVvZi5mb3JOYW1lKGNvZGVPcmlnaW4sIG5hbWVzLmpv
aW4oJzo6JykpCiAgICAgICAgIGVsc2lmIEB0b2tlbnNbQGlkeF0gPT0gImNvbnN0ZXhwciIKLSAg
ICAgICAgICAgIEBpZHggKz0gMQotICAgICAgICAgICAgc2tpcE5ld0xpbmUKLSAgICAgICAgICAg
IGlmIEB0b2tlbnNbQGlkeF0gPT0gIigiCi0gICAgICAgICAgICAgICAgY29kZU9yaWdpbiwgdGV4
dCA9IHBhcnNlVGV4dEluUGFyZW5zCi0gICAgICAgICAgICAgICAgdGV4dCA9IHRleHQuam9pbgot
ICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIGNvZGVPcmlnaW4sIHRleHQgPSBwYXJz
ZUNvbG9uQ29sb24KLSAgICAgICAgICAgICAgICB0ZXh0ID0gdGV4dC5qb2luKCI6OiIpCi0gICAg
ICAgICAgICBlbmQKLSAgICAgICAgICAgIENvbnN0RXhwci5mb3JOYW1lKGNvZGVPcmlnaW4sIHRl
eHQpCisgICAgICAgICAgICBwYXJzZUNvbnN0RXhwcgogICAgICAgICBlbHNpZiBpc0xhYmVsIEB0
b2tlbnNbQGlkeF0KICAgICAgICAgICAgIHJlc3VsdCA9IExhYmVsUmVmZXJlbmNlLm5ldyhAdG9r
ZW5zW0BpZHhdLmNvZGVPcmlnaW4sIExhYmVsLmZvck5hbWUoQHRva2Vuc1tAaWR4XS5jb2RlT3Jp
Z2luLCBAdG9rZW5zW0BpZHhdLnN0cmluZykpCiAgICAgICAgICAgICBAaWR4ICs9IDEKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3g4Ni5yYiBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3g4Ni5yYgppbmRleCBhMDU5YmM3ZWY4MDJlNjUwOTEz
ZWE1ODcxNDIzYzYyZDFiNzk3MzdmLi45OWZmYjhhMDJkMTljMDMzNTJlNWFmODZmYmQ5NTA0Mzg5
NWRmMDczIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS94ODYu
cmIKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20veDg2LnJiCkBAIC00MjEs
OSArNDIxLDkgQEAgY2xhc3MgQmFzZUluZGV4CiAgICAgCiAgICAgZGVmIHg4NkFkZHJlc3NPcGVy
YW5kKGFkZHJlc3NLaW5kKQogICAgICAgICBpZiAhaXNJbnRlbFN5bnRheAotICAgICAgICAgICAg
IiN7b2Zmc2V0LnZhbHVlfSgje2Jhc2UueDg2T3BlcmFuZChhZGRyZXNzS2luZCl9LCAje2luZGV4
Lng4Nk9wZXJhbmQoYWRkcmVzc0tpbmQpfSwgI3tzY2FsZX0pIgorICAgICAgICAgICAgIiN7b2Zm
c2V0LnZhbHVlfSgje2Jhc2UueDg2T3BlcmFuZChhZGRyZXNzS2luZCl9LCAje2luZGV4Lng4Nk9w
ZXJhbmQoYWRkcmVzc0tpbmQpfSwgI3tzY2FsZVZhbHVlfSkiCiAgICAgICAgIGVsc2UKLSAgICAg
ICAgICAgICIje2dldFNpemVTdHJpbmcoYWRkcmVzc0tpbmQpfVsje29mZnNldC52YWx1ZX0gKyAj
e2Jhc2UueDg2T3BlcmFuZChhZGRyZXNzS2luZCl9ICsgI3tpbmRleC54ODZPcGVyYW5kKGFkZHJl
c3NLaW5kKX0gKiAje3NjYWxlfV0iCisgICAgICAgICAgICAiI3tnZXRTaXplU3RyaW5nKGFkZHJl
c3NLaW5kKX1bI3tvZmZzZXQudmFsdWV9ICsgI3tiYXNlLng4Nk9wZXJhbmQoYWRkcmVzc0tpbmQp
fSArICN7aW5kZXgueDg2T3BlcmFuZChhZGRyZXNzS2luZCl9ICogI3tzY2FsZVZhbHVlfV0iCiAg
ICAgICAgIGVuZAogICAgIGVuZAogICAgIApAQCAtNDMxLDcgKzQzMSw3IEBAIGNsYXNzIEJhc2VJ
bmRleAogICAgICAgICBpZiAhaXNJbnRlbFN5bnRheAogICAgICAgICAgICAgeDg2QWRkcmVzc09w
ZXJhbmQoOnB0cikKICAgICAgICAgZWxzZQotICAgICAgICAgICAgIiN7Z2V0U2l6ZVN0cmluZyhr
aW5kKX1bI3tvZmZzZXQudmFsdWV9ICsgI3tiYXNlLng4Nk9wZXJhbmQoOnB0cil9ICsgI3tpbmRl
eC54ODZPcGVyYW5kKDpwdHIpfSAqICN7c2NhbGV9XSIKKyAgICAgICAgICAgICIje2dldFNpemVT
dHJpbmcoa2luZCl9WyN7b2Zmc2V0LnZhbHVlfSArICN7YmFzZS54ODZPcGVyYW5kKDpwdHIpfSAr
ICN7aW5kZXgueDg2T3BlcmFuZCg6cHRyKX0gKiAje3NjYWxlVmFsdWV9XSIKICAgICAgICAgZW5k
CiAgICAgZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jh
c2ljQmxvY2tMb2NhdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9CYXNp
Y0Jsb2NrTG9jYXRpb24uY3BwCmluZGV4IGQ5N2IwMzcwZDNjN2I5NjVhMTY2NzdiNGY1NTE2NTZh
NDYwZDJiNzUuLjdkYWJmNzNjNDYzNmQ3ZGNlNTNhOTExN2NlMjc5YjRiYjE0NjM4NDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jhc2ljQmxvY2tMb2NhdGlvbi5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQmFzaWNCbG9ja0xvY2F0aW9u
LmNwcApAQCAtNzQsMTUgKzc0LDE3IEBAIFZlY3RvcjxzdGQ6OnBhaXI8aW50LCBpbnQ+PiBCYXNp
Y0Jsb2NrTG9jYXRpb246OmdldEV4ZWN1dGVkUmFuZ2VzKCkgY29uc3QKIHZvaWQgQmFzaWNCbG9j
a0xvY2F0aW9uOjpkdW1wRGF0YSgpIGNvbnN0CiB7CiAgICAgVmVjdG9yPEdhcD4gZXhlY3V0ZWRS
YW5nZXMgPSBnZXRFeGVjdXRlZFJhbmdlcygpOwotICAgIGZvciAoR2FwIGdhcCA6IGV4ZWN1dGVk
UmFuZ2VzKQotICAgICAgICBkYXRhTG9nRigiXHRCYXNpY0Jsb2NrOiBbJWQsICVkXSBoYXNFeGVj
dXRlZDogJXMsIGV4ZWN1dGlvbkNvdW50OiV6dVxuIiwgZ2FwLmZpcnN0LCBnYXAuc2Vjb25kLCBo
YXNFeGVjdXRlZCgpID8gInRydWUiIDogImZhbHNlIiwgbV9leGVjdXRpb25Db3VudCk7CisgICAg
Zm9yIChHYXAgZ2FwIDogZXhlY3V0ZWRSYW5nZXMpIHsKKyAgICAgICAgZGF0YUxvZ0YoIlx0QmFz
aWNCbG9jazogWyVkLCAlZF0gaGFzRXhlY3V0ZWQ6ICVzLCBleGVjdXRpb25Db3VudDoiLCBnYXAu
Zmlyc3QsIGdhcC5zZWNvbmQsIGhhc0V4ZWN1dGVkKCkgPyAidHJ1ZSIgOiAiZmFsc2UiKTsKKyAg
ICAgICAgZGF0YUxvZ0xuKG1fZXhlY3V0aW9uQ291bnQpOworICAgIH0KIH0KIAogI2lmIEVOQUJM
RShKSVQpCiAjaWYgVVNFKEpTVkFMVUU2NCkKIHZvaWQgQmFzaWNCbG9ja0xvY2F0aW9uOjplbWl0
RXhlY3V0ZUNvZGUoQ0NhbGxIZWxwZXJzJiBqaXQpIGNvbnN0CiB7Ci0gICAgc3RhdGljX2Fzc2Vy
dChzaXplb2Yoc2l6ZV90KSA9PSA4LCAiQXNzdW1pbmcgc2l6ZV90IGlzIDY0IGJpdHMgb24gNjQg
Yml0IHBsYXRmb3Jtcy4iKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihVQ1BVUmVnaXN0ZXIp
ID09IDgsICJBc3N1bWluZyBzaXplX3QgaXMgNjQgYml0cyBvbiA2NCBiaXQgcGxhdGZvcm1zLiIp
OwogICAgIGppdC5hZGQ2NChDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMigxKSwgQ0NhbGxIZWxw
ZXJzOjpBYnNvbHV0ZUFkZHJlc3MoJm1fZXhlY3V0aW9uQ291bnQpKTsKIH0KICNlbHNlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9CYXNpY0Jsb2NrTG9jYXRpb24u
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jhc2ljQmxvY2tMb2NhdGlvbi5oCmlu
ZGV4IDEyZmI0NzZlMWQzYTU5ZjA1YjZkNTM2MGM0OGNmNmIwMDM1ZjE4MDguLmU3MGJlYTZjOWM0
YTk1ZjlmYWQwNDkyN2Q2MzQ0ODEwY2FkMmIxOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0Jhc2ljQmxvY2tMb2NhdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0Jhc2ljQmxvY2tMb2NhdGlvbi5oCkBAIC02Miw4ICs2Miw4IEBAIHBy
aXZhdGU6CiAKICAgICBpbnQgbV9zdGFydE9mZnNldDsKICAgICBpbnQgbV9lbmRPZmZzZXQ7Ci0g
ICAgc2l6ZV90IG1fZXhlY3V0aW9uQ291bnQ7CiAgICAgVmVjdG9yPEdhcD4gbV9nYXBzOworICAg
IFVDUFVSZWdpc3RlciBtX2V4ZWN1dGlvbkNvdW50OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlND
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9IYXNPd25Qcm9wZXJ0
eUNhY2hlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9IYXNPd25Qcm9wZXJ0eUNh
Y2hlLmgKaW5kZXggYWRhZGM4OWFiODRjZjFmNzM5NjBhYWVlNjQ4NTZhZGE5N2MyYjM4MC4uMDYx
MmViNzNhMzc0ZDljMGQ0MmYxZjYxNmI5YmE3M2UxNzU2N2NhNSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSGFzT3duUHJvcGVydHlDYWNoZS5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0hhc093blByb3BlcnR5Q2FjaGUuaApAQCAtMzMsNyAr
MzMsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogY2xhc3MgSGFzT3duUHJvcGVydHlDYWNoZSB7CiAg
ICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IHNpemUgPSAyICogMTAyNDsKLSAgICBzdGF0aWNfYXNz
ZXJ0KCEoc2l6ZSAmIChzaXplIC0gMSkpLCAic2l6ZSBzaG91bGQgYmUgYSBwb3dlciBvZiB0d28u
Iik7CisgICAgc3RhdGljX2Fzc2VydChoYXNPbmVCaXRTZXQoc2l6ZSksICJzaXplIHNob3VsZCBi
ZSBhIHBvd2VyIG9mIHR3by4iKTsKIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgdWludDMyX3Qg
bWFzayA9IHNpemUgLSAxOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0JpZ0ludC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JpZ0lu
dC5jcHAKaW5kZXggM2E2YzFiN2MwNmNmNDU2NzY0NzhlNWQ2YWFmN2M3ZmM2ZjhhM2Q4Ni4uMGY5
YTRmNGQzZjcxZTA3YzJjZTE1ZDM0NWEzNDIyMzUxNzk0ZGE5YSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmNwcApAQCAtMjI2LDExICsyMjYsOCBAQCBpbmxpbmUg
Ym9vbCBKU0JpZ0ludDo6aXNaZXJvKCkKIH0KIAogLy8gTXVsdGlwbGllcyB7dGhpc30gd2l0aCB7
ZmFjdG9yfSBhbmQgYWRkcyB7c3VtbWFuZH0gdG8gdGhlIHJlc3VsdC4KLWlubGluZSB2b2lkIEpT
QmlnSW50OjppbnBsYWNlTXVsdGlwbHlBZGQodWludHB0cl90IGZhY3RvciwgdWludHB0cl90IHN1
bW1hbmQpCit2b2lkIEpTQmlnSW50OjppbnBsYWNlTXVsdGlwbHlBZGQoRGlnaXQgZmFjdG9yLCBE
aWdpdCBzdW1tYW5kKQogewotICAgIFNUQVRJQ19BU1NFUlQoc2l6ZW9mKGZhY3RvcikgPT0gc2l6
ZW9mKERpZ2l0KSk7Ci0gICAgU1RBVElDX0FTU0VSVChzaXplb2Yoc3VtbWFuZCkgPT0gc2l6ZW9m
KERpZ2l0KSk7Ci0KICAgICBpbnRlcm5hbE11bHRpcGx5QWRkKHRoaXMsIGZhY3Rvciwgc3VtbWFu
ZCwgbGVuZ3RoKCksIHRoaXMpOwogfQogCkBAIC01NjMsOCArNTYwLDggQEAgaW5saW5lIEpTQmln
SW50OjpEaWdpdCBKU0JpZ0ludDo6ZGlnaXREaXYoRGlnaXQgaGlnaCwgRGlnaXQgbG93LCBEaWdp
dCBkaXZpc29yLAogICAgIC8vIGxlZnQgb3BlcmFuZCIuIFdlIG1hc2sgdGhlIHJpZ2h0IG9wZXJh
bmQgb2YgdGhlIHNoaWZ0IGJ5IHtzaGlmdE1hc2t9IChgZGlnaXRCaXRzIC0gMWApLCB3aGljaCBt
YWtlcyBgZGlnaXRCaXRzIC0gMGAgemVyby4KICAgICAvLyBUaGlzIHNoaWZ0aW5nIHByb2R1Y2Vz
IGEgdmFsdWUgd2hpY2ggY292ZXJzIDAgPCB7c30gPD0gKGRpZ2l0Qml0cyAtIDEpIGNhc2VzLiB7
c30gPT0gZGlnaXRCaXRzIG5ldmVyIGhhcHBlbiBhcyB3ZSBhc3NlcnRlZC4KICAgICAvLyBTaW5j
ZSB7c1plcm9NYXNrfSBjbGVhcnMgdGhlIHZhbHVlIGluIHRoZSBjYXNlIG9mIHtzfSA9PSAwLCB7
c30gPT0gMCBjYXNlIGlzIGFsc28gY292ZXJlZC4KLSAgICBTVEFUSUNfQVNTRVJUKHNpemVvZihp
bnRwdHJfdCkgPT0gc2l6ZW9mKERpZ2l0KSk7Ci0gICAgRGlnaXQgc1plcm9NYXNrID0gc3RhdGlj
X2Nhc3Q8RGlnaXQ+KCgtc3RhdGljX2Nhc3Q8aW50cHRyX3Q+KHMpKSA+PiAoZGlnaXRCaXRzIC0g
MSkpOworICAgIFNUQVRJQ19BU1NFUlQoc2l6ZW9mKENQVVJlZ2lzdGVyKSA9PSBzaXplb2YoRGln
aXQpKTsKKyAgICBEaWdpdCBzWmVyb01hc2sgPSBzdGF0aWNfY2FzdDxEaWdpdD4oKC1zdGF0aWNf
Y2FzdDxDUFVSZWdpc3Rlcj4ocykpID4+IChkaWdpdEJpdHMgLSAxKSk7CiAgICAgc3RhdGljIGNv
bnN0ZXhwciB1bnNpZ25lZCBzaGlmdE1hc2sgPSBkaWdpdEJpdHMgLSAxOwogICAgIERpZ2l0IHVu
MzIgPSAoaGlnaCA8PCBzKSB8ICgobG93ID4+ICgoZGlnaXRCaXRzIC0gcykgJiBzaGlmdE1hc2sp
KSAmIHNaZXJvTWFzayk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQmlnSW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JpZ0ludC5o
CmluZGV4IGI0MGYyMzk2Y2NmZGVjMzBhYWM0ZWM1N2I0Y2MwN2Y0ZDdlYWRjODcuLjgwNWExMTUw
NmU4N2U2ODI3NTZjMjEwNmJlN2UxOGRmMDkzZTk3OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNCaWdJbnQuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAor
I2luY2x1ZGUgIkNQVS5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkhlbHBlcnMuaCIKICNpbmNsdWRl
ICJKU09iamVjdC5oIgogI2luY2x1ZGUgIlBhcnNlSW50LmgiCkBAIC0xMTgsNyArMTE5LDcgQEAg
cHVibGljOgogCiBwcml2YXRlOgogCi0gICAgdXNpbmcgRGlnaXQgPSB1aW50cHRyX3Q7CisgICAg
dXNpbmcgRGlnaXQgPSBVQ1BVUmVnaXN0ZXI7CiAgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25l
ZCBiaXRzUGVyQnl0ZSA9IDg7CiAgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBkaWdpdEJp
dHMgPSBzaXplb2YoRGlnaXQpICogYml0c1BlckJ5dGU7CiAgICAgc3RhdGljIGNvbnN0ZXhwciB1
bnNpZ25lZCBoYWxmRGlnaXRCaXRzID0gZGlnaXRCaXRzIC8gMjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU09iamVjdC5oCmluZGV4IDI1MjNiNzlkZjM0MWE4MzdjNDQ5NTQyNGViZmVl
NzgzOWU0ZmViNmQuLjRkNWZjODM3NWE3MzhkMDUwMTJjMGMzODkxNzE2Y2I0NDA4YmNiM2MgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaApAQCAtMTA3NCw3ICsxMDc0
LDcgQEAgcHJpdmF0ZToKICAgICBQcm9wZXJ0eU9mZnNldCBwcmVwYXJlVG9QdXREaXJlY3RXaXRo
b3V0VHJhbnNpdGlvbihWTSYsIFByb3BlcnR5TmFtZSwgdW5zaWduZWQgYXR0cmlidXRlcywgU3Ry
dWN0dXJlSUQsIFN0cnVjdHVyZSopOwogCiAgICAgQXV4aWxpYXJ5QmFycmllcjxCdXR0ZXJmbHkq
PiBtX2J1dHRlcmZseTsKLSNpZiBVU0UoSlNWQUxVRTMyXzY0KQorI2lmIENQVShBRERSRVNTMzIp
CiAgICAgdW5zaWduZWQgbV8zMkJpdFBhZGRpbmc7CiAjZW5kaWYKIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwCmluZGV4IDEzMjgxOGMxNDI3OThlZTMxNGE1YmZh
OTNmMjQ5NzEzYzY0Yzk0OTUuLmQyODUyYjA0MGNkYmRiYjBkMTJmNjY2ZTNiNWJiOWUzMDg0ODNk
MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwCkBAIC0yMTks
NiArMjE5LDExIEBAIHN0YXRpYyBpbnQzMl90IGNvbXB1dGVQcmlvcml0eURlbHRhT2ZXb3JrZXJU
aHJlYWRzKGludDMyX3QgdHdvQ29yZVByaW9yaXR5RGVsdGEsCiAgICAgcmV0dXJuIG11bHRpQ29y
ZVByaW9yaXR5RGVsdGE7CiB9CiAKK3N0YXRpYyBib29sIGppdEVuYWJsZWRCeURlZmF1bHQoKQor
eworICAgIHJldHVybiBpczMyQml0KCkgfHwgaXNBZGRyZXNzNjRCaXQoKTsKK30KKwogc3RhdGlj
IHVuc2lnbmVkIGNvbXB1dGVOdW1iZXJPZkdDTWFya2Vycyh1bnNpZ25lZCBtYXhOdW1iZXJPZkdD
TWFya2VycykKIHsKICAgICByZXR1cm4gY29tcHV0ZU51bWJlck9mV29ya2VyVGhyZWFkcyhtYXhO
dW1iZXJPZkdDTWFya2Vycyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9PcHRpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgK
aW5kZXggMmU0OWE1ZDUyY2NlYTA0MTY0YjIyMWQ4YzNhYjhjOWNkMWUwOGMxYS4uZDlmZmJhNGIz
ODI5YjY0YjhlYTYwZTgyNDMxYmM4ZjJhNDM1MzE5OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL09wdGlvbnMuaApAQCAtMTM2LDcgKzEzNiw3IEBAIGNvbnN0ZXhwciBib29sIGVuYWJs
ZVdlYkFzc2VtYmx5U3RyZWFtaW5nQXBpID0gZmFsc2U7CiAgICAgdihvcHRpb25TdHJpbmcsIGNv
bmZpZ0ZpbGUsIG51bGxwdHIsIE5vcm1hbCwgImZpbGUgdG8gY29uZmlndXJlIEpTQyBvcHRpb25z
IGFuZCBsb2dnaW5nIGxvY2F0aW9uIikgXAogICAgIFwKICAgICB2KGJvb2wsIHVzZUxMSW50LCAg
dHJ1ZSwgTm9ybWFsLCAiYWxsb3dzIHRoZSBMTElOVCB0byBiZSB1c2VkIGlmIHRydWUiKSBcCi0g
ICAgdihib29sLCB1c2VKSVQsICAgIHRydWUsIE5vcm1hbCwgImFsbG93cyB0aGUgZXhlY3V0YWJs
ZSBwYWdlcyB0byBiZSBhbGxvY2F0ZWQgZm9yIEpJVCBhbmQgdGh1bmtzIGlmIHRydWUiKSBcCisg
ICAgdihib29sLCB1c2VKSVQsIGppdEVuYWJsZWRCeURlZmF1bHQoKSwgTm9ybWFsLCAiYWxsb3dz
IHRoZSBleGVjdXRhYmxlIHBhZ2VzIHRvIGJlIGFsbG9jYXRlZCBmb3IgSklUIGFuZCB0aHVua3Mg
aWYgdHJ1ZSIpIFwKICAgICB2KGJvb2wsIHVzZUJhc2VsaW5lSklULCB0cnVlLCBOb3JtYWwsICJh
bGxvd3MgdGhlIGJhc2VsaW5lIEpJVCB0byBiZSB1c2VkIGlmIHRydWUiKSBcCiAgICAgdihib29s
LCB1c2VERkdKSVQsIHRydWUsIE5vcm1hbCwgImFsbG93cyB0aGUgREZHIEpJVCB0byBiZSB1c2Vk
IGlmIHRydWUiKSBcCiAgICAgdihib29sLCB1c2VSZWdFeHBKSVQsIHRydWUsIE5vcm1hbCwgImFs
bG93cyB0aGUgUmVnRXhwIEpJVCB0byBiZSB1c2VkIGlmIHRydWUiKSBcCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHAuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvUmVnRXhwLmNwcAppbmRleCA0N2QwZDMyMTgzMDg1Zjg4ZWM5MTkwOWRh
MmVlYTM0MDdhZTU2YTllLi5lMWJhMDljNjNhM2JiZDllMGRjODFhNGM4YTY0YmYzZmVmNTczYzMw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHAuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5jcHAKQEAgLTQ5NCwxMCAr
NDk0LDEwIEBAIHZvaWQgUmVnRXhwOjptYXRjaENvbXBhcmVXaXRoSW50ZXJwcmV0ZXIoY29uc3Qg
U3RyaW5nJiBzLCBpbnQgc3RhcnRPZmZzZXQsIGludCoKICAgICAgICAgICAgIHNucHJpbnRmKGpp
dDhCaXRNYXRjaEFkZHIsIGppdEFkZHJTaXplLCAiZmFsbGJhY2sgICAgIik7CiAgICAgICAgICAg
ICBzbnByaW50ZihqaXQxNkJpdE1hdGNoQWRkciwgaml0QWRkclNpemUsICItLS0tICAgICAgIik7
CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzbnByaW50ZihqaXQ4Qml0TWF0Y2hPbmx5
QWRkciwgaml0QWRkclNpemUsICIweCUwMTRseCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQg
bG9uZyBpbnQ+KGNvZGVCbG9jay5nZXQ4Qml0TWF0Y2hPbmx5QWRkcigpKSk7Ci0gICAgICAgICAg
ICBzbnByaW50ZihqaXQxNkJpdE1hdGNoT25seUFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0bHgi
LCByZWludGVycHJldF9jYXN0PHVuc2lnbmVkIGxvbmcgaW50Pihjb2RlQmxvY2suZ2V0MTZCaXRN
YXRjaE9ubHlBZGRyKCkpKTsKLSAgICAgICAgICAgIHNucHJpbnRmKGppdDhCaXRNYXRjaEFkZHIs
IGppdEFkZHJTaXplLCAiMHglMDE0bHgiLCByZWludGVycHJldF9jYXN0PHVuc2lnbmVkIGxvbmcg
aW50Pihjb2RlQmxvY2suZ2V0OEJpdE1hdGNoQWRkcigpKSk7Ci0gICAgICAgICAgICBzbnByaW50
ZihqaXQxNkJpdE1hdGNoQWRkciwgaml0QWRkclNpemUsICIweCUwMTRseCIsIHJlaW50ZXJwcmV0
X2Nhc3Q8dW5zaWduZWQgbG9uZyBpbnQ+KGNvZGVCbG9jay5nZXQxNkJpdE1hdGNoQWRkcigpKSk7
CisgICAgICAgICAgICBzbnByaW50ZihqaXQ4Qml0TWF0Y2hPbmx5QWRkciwgaml0QWRkclNpemUs
ICIweCUwMTRseCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb2RlQmxvY2suZ2V0OEJp
dE1hdGNoT25seUFkZHIoKSkpOworICAgICAgICAgICAgc25wcmludGYoaml0MTZCaXRNYXRjaE9u
bHlBZGRyLCBqaXRBZGRyU2l6ZSwgIjB4JTAxNGx4IiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRy
X3Q+KGNvZGVCbG9jay5nZXQxNkJpdE1hdGNoT25seUFkZHIoKSkpOworICAgICAgICAgICAgc25w
cmludGYoaml0OEJpdE1hdGNoQWRkciwgaml0QWRkclNpemUsICIweCUwMTRseCIsIHJlaW50ZXJw
cmV0X2Nhc3Q8dWludHB0cl90Pihjb2RlQmxvY2suZ2V0OEJpdE1hdGNoQWRkcigpKSk7CisgICAg
ICAgICAgICBzbnByaW50ZihqaXQxNkJpdE1hdGNoQWRkciwgaml0QWRkclNpemUsICIweCUwMTRs
eCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb2RlQmxvY2suZ2V0MTZCaXRNYXRjaEFk
ZHIoKSkpOwogICAgICAgICB9CiAjZWxzZQogICAgICAgICBjb25zdCBjaGFyKiBqaXQ4Qml0TWF0
Y2hPbmx5QWRkciA9ICJKSVQgT2ZmIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU2FtcGxpbmdQcm9maWxlci5jcHAKaW5kZXggZmYwN2RiYWMzMTQwMmRmZWRkNmMwMjMx
ODk0MDc2M2IyNzllNGZkOS4uMjg0OGFlMThiNDcxYjJkOThiMGI5MDVlZDAyNjFkOWRlM2Q5YTFj
NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9m
aWxlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9m
aWxlci5jcHAKQEAgLTIyOCw3ICsyMjgsNyBAQCBwdWJsaWM6CiAKICAgICAgICAgICAgIGlmIChp
c0NGcmFtZSgpKSB7CiAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoIUxMSW50Ojppc0xM
SW50UEMoZnJhbWUoKS0+Y2FsbGVyRnJhbWUpKTsKLSAgICAgICAgICAgICAgICBzdGFja1RyYWNl
W21fZGVwdGhdID0gVW5wcm9jZXNzZWRTdGFja0ZyYW1lKGZyYW1lKCktPnBjKTsKKyAgICAgICAg
ICAgICAgICBzdGFja1RyYWNlW21fZGVwdGhdID0gVW5wcm9jZXNzZWRTdGFja0ZyYW1lKGZyYW1l
KCktPnJldHVyblBDKTsKICAgICAgICAgICAgICAgICBtX2RlcHRoKys7CiAgICAgICAgICAgICB9
IGVsc2UKICAgICAgICAgICAgICAgICByZWNvcmRKU0ZyYW1lKHN0YWNrVHJhY2UpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2xvd1BhdGhSZXR1cm5UeXBlLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TbG93UGF0aFJldHVyblR5cGUuaAppbmRl
eCA0Y2M1OWE4Zjc1MTBmOGYyODBmOTkxMTU1NzlhY2UyNTMxMmQyYmNiLi5jMDdjYzE5NGQxOGQ5
NGM0ODQ0MDUxMDIyMDQ4MTY1NDVjMzcyZWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TbG93UGF0aFJldHVyblR5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TbG93UGF0aFJldHVyblR5cGUuaApAQCAtMjUsNiArMjUsNyBAQAogCiAj
cHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkNQVS5oIgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRy
YXMuaD4KIAogbmFtZXNwYWNlIEpTQyB7CkBAIC0zNCwyMiArMzUsMjMgQEAgbmFtZXNwYWNlIEpT
QyB7CiAvLyAnZXh0ZXJuICJDIicpIG5lZWRzIHRvIGJlIFBPRDsgaGVuY2UgcHV0dGluZyBhbnkg
Y29uc3RydWN0b3JzIGludG8gaXQgY291bGQgY2F1c2UgZWl0aGVyIGNvbXBpbGVyCiAvLyB3YXJu
aW5ncywgb3Igd29yc2UsIGEgY2hhbmdlIGluIHRoZSBBQkkgdXNlZCB0byByZXR1cm4gdGhlc2Ug
dHlwZXMuCiBzdHJ1Y3QgU2xvd1BhdGhSZXR1cm5UeXBlIHsKLSAgICB2b2lkKiBhOwotICAgIHZv
aWQqIGI7CisgICAgQ1BVUmVnaXN0ZXIgYTsKKyAgICBDUFVSZWdpc3RlciBiOwogfTsKK3N0YXRp
Y19hc3NlcnQoc2l6ZW9mKFNsb3dQYXRoUmV0dXJuVHlwZSkgPj0gc2l6ZW9mKHZvaWQqKSAqIDIs
ICJTbG93UGF0aFJldHVyblR5cGUgc2hvdWxkIGZpdCBpbiB0d28gbWFjaGluZSByZWdpc3RlcnMi
KTsKIAogaW5saW5lIFNsb3dQYXRoUmV0dXJuVHlwZSBlbmNvZGVSZXN1bHQodm9pZCogYSwgdm9p
ZCogYikKIHsKICAgICBTbG93UGF0aFJldHVyblR5cGUgcmVzdWx0OwotICAgIHJlc3VsdC5hID0g
YTsKLSAgICByZXN1bHQuYiA9IGI7CisgICAgcmVzdWx0LmEgPSByZWludGVycHJldF9jYXN0PENQ
VVJlZ2lzdGVyPihhKTsKKyAgICByZXN1bHQuYiA9IHJlaW50ZXJwcmV0X2Nhc3Q8Q1BVUmVnaXN0
ZXI+KGIpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKIGlubGluZSB2b2lkIGRlY29kZVJlc3Vs
dChTbG93UGF0aFJldHVyblR5cGUgcmVzdWx0LCB2b2lkKiYgYSwgdm9pZComIGIpCiB7Ci0gICAg
YSA9IHJlc3VsdC5hOwotICAgIGIgPSByZXN1bHQuYjsKKyAgICBhID0gcmVpbnRlcnByZXRfY2Fz
dDx2b2lkKj4ocmVzdWx0LmEpOworICAgIGIgPSByZWludGVycHJldF9jYXN0PHZvaWQqPihyZXN1
bHQuYik7CiB9CiAKICNlbHNlIC8vIFVTRShKU1ZBTFVFMzJfNjQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvU2lnaWxsQ3Jhc2hBbmFseXplci5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdG9vbHMvU2lnaWxsQ3Jhc2hBbmFseXplci5jcHAKaW5kZXggZWY3NTNm
NTkwYTM1ODI4MzRhYjk4N2JlYThhOWJhZjJkMzEwMDkxMC4uNDE2NWVhNGFmZDkxM2NlMmRmMTgw
MzBkYmZmODg2MjA0MjM1M2VjMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rv
b2xzL1NpZ2lsbENyYXNoQW5hbHl6ZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90
b29scy9TaWdpbGxDcmFzaEFuYWx5emVyLmNwcApAQCAtMzIxLDEwICszMjEsMTAgQEAgdm9pZCBT
aWdpbGxDcmFzaEFuYWx5emVyOjpkdW1wQ29kZUJsb2NrKENvZGVCbG9jayogY29kZUJsb2NrLCB2
b2lkKiBtYWNoaW5lUEMpCiAgICAgd2hpbGUgKGJ5dGVDb3VudCkgewogICAgICAgICBjaGFyIHBj
U3RyaW5nWzI0XTsKICAgICAgICAgaWYgKGN1cnJlbnRQQyA9PSBtYWNoaW5lUEMpIHsKLSAgICAg
ICAgICAgIHNucHJpbnRmKHBjU3RyaW5nLCBzaXplb2YocGNTdHJpbmcpLCAiKiAweCVseCIsIHJl
aW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQgbG9uZz4oY3VycmVudFBDKSk7CisgICAgICAgICAgICBz
bnByaW50ZihwY1N0cmluZywgc2l6ZW9mKHBjU3RyaW5nKSwgIiogMHglbHgiLCByZWludGVycHJl
dF9jYXN0PHVpbnRwdHJfdD4oY3VycmVudFBDKSk7CiAgICAgICAgICAgICBsb2coIiUyMHM6ICVz
ICAgIDw9PT09PT09PT09PT09PT09PT09PT09PT09IiwgcGNTdHJpbmcsIG1fYXJtNjRPcGNvZGUu
ZGlzYXNzZW1ibGUoY3VycmVudFBDKSk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBz
bnByaW50ZihwY1N0cmluZywgc2l6ZW9mKHBjU3RyaW5nKSwgIjB4JWx4IiwgcmVpbnRlcnByZXRf
Y2FzdDx1bnNpZ25lZCBsb25nPihjdXJyZW50UEMpKTsKKyAgICAgICAgICAgIHNucHJpbnRmKHBj
U3RyaW5nLCBzaXplb2YocGNTdHJpbmcpLCAiMHglbHgiLCByZWludGVycHJldF9jYXN0PHVpbnRw
dHJfdD4oY3VycmVudFBDKSk7CiAgICAgICAgICAgICBsb2coIiUyMHM6ICVzIiwgcGNTdHJpbmcs
IG1fYXJtNjRPcGNvZGUuZGlzYXNzZW1ibGUoY3VycmVudFBDKSk7CiAgICAgICAgIH0KICAgICAg
ICAgY3VycmVudFBDKys7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9NYXRoRXh0cmFzLmgg
Yi9Tb3VyY2UvV1RGL3d0Zi9NYXRoRXh0cmFzLmgKaW5kZXggNzk2YjFlODFkMWVjZjIyZDM2ZDlk
NWVkMGM0NmU0MDIyZGEwOGQxMC4uNThiYjQ2ZmYzMGQ0ODZmMjI3MWQ3MjZmNTlkZDIzMGY3MWU4
NjMzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvTWF0aEV4dHJhcy5oCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL01hdGhFeHRyYXMuaApAQCAtMjA3LDcgKzIwNyw3IEBAIHRlbXBsYXRlPHR5cGVu
YW1lIFQ+IGNvbnN0ZXhwciBib29sIGhhc1R3b09yTW9yZUJpdHNTZXQoVCB2YWx1ZSkKICAgICBy
ZXR1cm4gIWhhc1plcm9Pck9uZUJpdHNTZXQodmFsdWUpOwogfQogCi10ZW1wbGF0ZSA8dHlwZW5h
bWUgVD4gaW5saW5lIHVuc2lnbmVkIGdldExTQlNldChUIHZhbHVlKQordGVtcGxhdGUgPHR5cGVu
YW1lIFQ+IGNvbnN0ZXhwciB1bnNpZ25lZCBnZXRMU0JTZXQoVCB2YWx1ZSkKIHsKICAgICB0eXBl
ZGVmIHR5cGVuYW1lIHN0ZDo6bWFrZV91bnNpZ25lZDxUPjo6dHlwZSBVbnNpZ25lZFQ7CiAgICAg
dW5zaWduZWQgcmVzdWx0ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3Jt
LmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCmluZGV4IDY0MDRlYWZmMTE3NTY0ZTUxYTJl
MmRlZTAxYzA5ODI5NTM0YmEzN2YuLjY1OWE3NTk5NTA1YTUxMmE5MDRjMzU0NWZiY2UyNWU2ZTRm
ODYyNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKKysrIGIvU291cmNl
L1dURi93dGYvUGxhdGZvcm0uaApAQCAtNzM3LDcgKzczNyw3IEBACiAjZW5kaWYKIAogI2lmICFk
ZWZpbmVkKFVTRV9KU1ZBTFVFNjQpICYmICFkZWZpbmVkKFVTRV9KU1ZBTFVFMzJfNjQpCi0jaWYg
Q1BVKEFERFJFU1M2NCkKKyNpZiBDUFUoQUREUkVTUzY0KSB8fCBDUFUoQVJNNjQpCiAjZGVmaW5l
IFVTRV9KU1ZBTFVFNjQgMQogI2Vsc2UKICNkZWZpbmUgVVNFX0pTVkFMVUUzMl82NCAxCkBAIC03
NDYsNyArNzQ2LDcgQEAKIAogLyogVGhlIEpJVCBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgb24gYWxs
IHg4NiwgeDg2LTY0LCBBUk0gJiBNSVBTIHBsYXRmb3JtcyBleGNlcHQgQVJNdjdrLiAqLwogI2lm
ICFkZWZpbmVkKEVOQUJMRV9KSVQpIFwKLSAgICAmJiAoQ1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkg
fHwgQ1BVKEFSTSkgfHwgKENQVShBUk02NCkgJiYgIWRlZmluZWQoX19JTFAzMl9fKSkgfHwgQ1BV
KE1JUFMpKSBcCisgICAgJiYgKENQVShYODYpIHx8IENQVShYODZfNjQpIHx8IENQVShBUk0pIHx8
IENQVShBUk02NCkgfHwgQ1BVKE1JUFMpKSBcCiAgICAgJiYgIUNQVShBUFBMRV9BUk1WN0spCiAj
ZGVmaW5lIEVOQUJMRV9KSVQgMQogI2VuZGlmCkBAIC04NjYsNyArODY2LDcgQEAKICNlbmRpZgog
CiAjaWYgIWRlZmluZWQoRU5BQkxFX1dFQkFTU0VNQkxZKQotI2lmIEVOQUJMRShCM19KSVQpICYm
IFBMQVRGT1JNKENPQ09BKQorI2lmIEVOQUJMRShCM19KSVQpICYmIFBMQVRGT1JNKENPQ09BKSAm
JiBDUFUoQUREUkVTUzY0KQogI2RlZmluZSBFTkFCTEVfV0VCQVNTRU1CTFkgMQogI2Vsc2UKICNk
ZWZpbmUgRU5BQkxFX1dFQkFTU0VNQkxZIDAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
c2ppdC9TZWxlY3RvckNvbXBpbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxlY3Rv
ckNvbXBpbGVyLmNwcAppbmRleCBlM2ViNWY3OWQ2ZTA4MzE2N2U5YmRkYmEzNTMzZjNmNTFjMDNi
NGQ2Li44MDNkODI1MDNmYzQyM2VkNGFjZWY1MjZmZjczODdhMmQ4YTMxZDUyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0b3JDb21waWxlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuY3BwCkBAIC0yMjMyLDcgKzIyMzIsNyBA
QCB2b2lkIFNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Z2VuZXJhdGVBZGRTdHlsZVJlbGF0aW9uKEFz
c2VtYmxlcjo6UmVnaXN0ZXJJRCBjaGVjawogICAgICAgICBzdGF0aWNfYXNzZXJ0KDEgPDwgNCA9
PSAxNiwgIiIpOwogICAgICAgICBtX2Fzc2VtYmxlci5sc2hpZnRQdHIoQXNzZW1ibGVyOjpUcnVz
dGVkSW1tMzIoNCksIHNpemVBbmRUYXJnZXQpOwogI2Vsc2UKLSAgICAgICAgbV9hc3NlbWJsZXIu
bXVsMzIoVHJ1c3RlZEltbTMyKHNpemVvZihTdHlsZTo6UmVsYXRpb24pKSwgc2l6ZUFuZFRhcmdl
dCwgc2l6ZUFuZFRhcmdldCk7CisgICAgICAgIG1fYXNzZW1ibGVyLm11bDMyKEFzc2VtYmxlcjo6
VHJ1c3RlZEltbTMyKHNpemVvZihTdHlsZTo6UmVsYXRpb24pKSwgc2l6ZUFuZFRhcmdldCwgc2l6
ZUFuZFRhcmdldCk7CiAjZW5kaWYKICAgICAgICAgbV9hc3NlbWJsZXIuYWRkUHRyKGRhdGFBZGRy
ZXNzLCBzaXplQW5kVGFyZ2V0KTsKICAgICB9Owo=
</data>
<flag name="review"
          id="369722"
          type_id="1"
          status="+"
          setter="msaboff"
    />
          </attachment>
      

    </bug>

</bugzilla>