<?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>234116</bug_id>
          
          <creation_ts>2021-12-09 17:53:18 -0800</creation_ts>
          <short_desc>[WebAssembly][Modules] Unify memory import handling code in both module loader and JS cases</short_desc>
          <delta_ts>2022-01-11 15:49:49 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebAssembly</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="Asumu Takikawa">asumu</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1822467</commentid>
    <comment_count>0</comment_count>
    <who name="Asumu Takikawa">asumu</who>
    <bug_when>2021-12-09 17:53:18 -0800</bug_when>
    <thetext>Currently most initialization of Wasm module imports are done in the `WebAssemblyModuleRecord` class, and only memory imports are handled in `JSWebAssemblyInstance`.

These code paths can be unified now that memory imports are supported when Wasm modules are used via the module loader (in https://bugs.webkit.org/show_bug.cgi?id=184745). Unifying the memory code will finish the process of moving the import initialization to the module record.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822483</commentid>
    <comment_count>1</comment_count>
      <attachid>446652</attachid>
    <who name="Asumu Takikawa">asumu</who>
    <bug_when>2021-12-09 18:50:11 -0800</bug_when>
    <thetext>Created attachment 446652
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824507</commentid>
    <comment_count>2</comment_count>
      <attachid>447280</attachid>
    <who name="Asumu Takikawa">asumu</who>
    <bug_when>2021-12-15 13:02:19 -0800</bug_when>
    <thetext>Created attachment 447280
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824680</commentid>
    <comment_count>3</comment_count>
    <who name="Asumu Takikawa">asumu</who>
    <bug_when>2021-12-15 20:51:26 -0800</bug_when>
    <thetext>I&apos;m rebasing this now for the CodeBlock to CalleeGroup change and will upload a new patch soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824690</commentid>
    <comment_count>4</comment_count>
      <attachid>447328</attachid>
    <who name="Asumu Takikawa">asumu</who>
    <bug_when>2021-12-15 22:39:25 -0800</bug_when>
    <thetext>Created attachment 447328
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824712</commentid>
    <comment_count>5</comment_count>
      <attachid>447328</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-12-16 02:55:40 -0800</bug_when>
    <thetext>Comment on attachment 447328
Patch

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

Oops, I found one issue. So commented.

&gt; Source/JavaScriptCore/wasm/WasmModule.cpp:123
&gt; +        RefPtr&lt;CalleeGroup&gt; calleeGroup;
&gt; +        calleeGroup = m_calleeGroups[i];

Let&apos;s write it in one line. And since we never release once-created CalleeGroup, we do not need to ref here.

CalleeGroup* calleeGroup = m_calleeGroups[i].get();

&gt; Source/JavaScriptCore/wasm/WasmModule.cpp:126
&gt; +        if (calleeGroup &amp;&amp; (!calleeGroup-&gt;compilationFinished() || calleeGroup-&gt;runnable()))
&gt; +            continue;

This condition is saying, if calleeGroup exists but if it is not (!calleeGroup-&gt;compilationFinished() || calleeGroup-&gt;runnable()), then we override with the new one.
Is it right behavior? Destroying already-existing calleeGroup sounds incorrect to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824938</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-12-16 18:30:51 -0800</bug_when>
    <thetext>&lt;rdar://problem/86608194&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825631</commentid>
    <comment_count>7</comment_count>
    <who name="Asumu Takikawa">asumu</who>
    <bug_when>2021-12-20 09:10:00 -0800</bug_when>
    <thetext>&gt; This condition is saying, if calleeGroup exists but if it is not (!calleeGroup-&gt;compilationFinished() || calleeGroup-&gt;runnable()), then we override with the new one.
Is it right behavior? Destroying already-existing calleeGroup sounds incorrect to me.

I think the condition is saying something a bit different. It should be a negation of the related condition earlier in WasmModule.cpp in getOrCreateCalleeGroup:

&gt; (!calleeGroup || (calleeGroup-&gt;compilationFinished() &amp;&amp; !calleeGroup-&gt;runnable()))

vs

&gt; Source/JavaScriptCore/wasm/WasmModule.cpp:126
&gt; +        if (calleeGroup &amp;&amp; (!calleeGroup-&gt;compilationFinished() || calleeGroup-&gt;runnable()))
&gt; +            continue;

And it also continues when the condition is true.

So this should be saying, continue and skip the `createFromExisting` call if the calleeGroup exists already and unless the compilation is finished but it&apos;s still not runnable. Would it be clearer if the second half was written as the following?

&gt; !(calleeGroup-&gt;compilationFinished() &amp;&amp; !calleeGroup-&gt;runnable())

I&apos;ll upload a patch with this last refactoring in case that&apos;s better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825656</commentid>
    <comment_count>8</comment_count>
      <attachid>447613</attachid>
    <who name="Asumu Takikawa">asumu</who>
    <bug_when>2021-12-20 11:05:40 -0800</bug_when>
    <thetext>Created attachment 447613
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825665</commentid>
    <comment_count>9</comment_count>
      <attachid>447613</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-12-20 11:44:48 -0800</bug_when>
    <thetext>Comment on attachment 447613
Patch

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

&gt; Source/JavaScriptCore/wasm/WasmModule.cpp:125
&gt; +        // We should only try to copy the group here if it hasn&apos;t already been compiled.
&gt; +        if (calleeGroup &amp;&amp; !(calleeGroup-&gt;compilationFinished() &amp;&amp; !calleeGroup-&gt;runnable()))
&gt; +            continue;

Ah, what I would like to ask is that, if calleeGroup is non null, then wasting that calleeGroup by `m_calleeGroups[i] = WTFMove(newBlock)` sounds wrong to me.
When does it happen and why do we need to replace it with a newly copied one?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825692</commentid>
    <comment_count>10</comment_count>
    <who name="Asumu Takikawa">asumu</who>
    <bug_when>2021-12-20 12:45:59 -0800</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #9)
&gt; Ah, what I would like to ask is that, if calleeGroup is non null, then
&gt; wasting that calleeGroup by `m_calleeGroups[i] = WTFMove(newBlock)` sounds
&gt; wrong to me.
&gt; When does it happen and why do we need to replace it with a newly copied one?

Ah ok, I think I understand now. Do you mean that if the calleeGroup exists but it&apos;s not runnable, we can instead try to recompile the existing one (probably later when the memory is available) rather than copy a new one in here?

That makes sense to me. I can upload a new patch that implements this later (in Jan, as I&apos;ve run out of time and will be away from my computer for a while).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825891</commentid>
    <comment_count>11</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-12-21 00:16:37 -0800</bug_when>
    <thetext>(In reply to Asumu Takikawa from comment #10)
&gt; (In reply to Yusuke Suzuki from comment #9)
&gt; &gt; Ah, what I would like to ask is that, if calleeGroup is non null, then
&gt; &gt; wasting that calleeGroup by `m_calleeGroups[i] = WTFMove(newBlock)` sounds
&gt; &gt; wrong to me.
&gt; &gt; When does it happen and why do we need to replace it with a newly copied one?
&gt; 
&gt; Ah ok, I think I understand now. Do you mean that if the calleeGroup exists
&gt; but it&apos;s not runnable, we can instead try to recompile the existing one
&gt; (probably later when the memory is available) rather than copy a new one in
&gt; here?
&gt; 
&gt; That makes sense to me. I can upload a new patch that implements this later
&gt; (in Jan, as I&apos;ve run out of time and will be away from my computer for a
&gt; while).

Yeah, I would like to know why this condition happens. And I think, if CalleeGroup is already created, then destroying it and replacing it sounds dangerous. Probably, initialize it with the other CalleeGroup&apos;s LLIntCallees would be better, but I first would like to know when this happens.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829077</commentid>
    <comment_count>12</comment_count>
      <attachid>448631</attachid>
    <who name="Asumu Takikawa">asumu</who>
    <bug_when>2022-01-07 14:32:31 -0800</bug_when>
    <thetext>Created attachment 448631
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829079</commentid>
    <comment_count>13</comment_count>
    <who name="Asumu Takikawa">asumu</who>
    <bug_when>2022-01-07 14:36:53 -0800</bug_when>
    <thetext>I&apos;ve rebased the patch for recent changes.

&gt; Yeah, I would like to know why this condition happens. And I think, if CalleeGroup is already created, then destroying it and replacing it sounds dangerous. Probably, initialize it with the other CalleeGroup&apos;s LLIntCallees would be better, but I first would like to know when this happens.

I believe it might happen if the CalleeGroup came from a module that has already been used for another instance, but an OOM or similar event caused the compilation to fail there.

In the current patch, I removed the second part of the condition so that it doesn&apos;t try to replace the CalleeGroup. In the case where the callee group is present but not runnable, it should try to re-compile the code in the existing code path in WebAssemblyModuleRecord.cpp around line 430 where it checks if the callee group is runnable. Does that seem better?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829313</commentid>
    <comment_count>14</comment_count>
      <attachid>448631</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-01-09 09:09:11 -0800</bug_when>
    <thetext>Comment on attachment 448631
Patch

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

While I’m not an expert on the Wasm subsystem, the change sounds logical, and all the tests are passing.

&gt; Source/JavaScriptCore/wasm/WasmModule.cpp:128
&gt; +        CalleeGroup* calleeGroup = m_calleeGroups[i].get();
&gt; +        // We should only try to copy the group here if it hasn&apos;t already been created.
&gt; +        // If it exists but is not runnable, it should get compiled during module evaluation.
&gt; +        if (calleeGroup)
&gt; +            continue;
&gt;          Ref&lt;CalleeGroup&gt; newBlock = CalleeGroup::createFromExisting(static_cast&lt;MemoryMode&gt;(i), initialBlock);
&gt;          m_calleeGroups[i] = WTFMove(newBlock);

The local variables are making this code less readable. It should look more like this.

    // We should only try to copy the group here if it hasn&apos;t already been created.
    // If it exists but is not runnable, it should get compiled during module evaluation.
    if (!m_calleeGroups[i])
        m_calleeGroups[i] = CalleeGroup::createFromExisting(static_cast&lt;MemoryMode&gt;(i), initialBlock);

In fact, I would go even further:

    // We should only try to copy the group here if it hasn&apos;t already been created.
    // If it exists but is not runnable, it should get compiled during module evaluation.
    if (auto&amp; group = m_calleeGroups[i]; !group)
        group = CalleeGroup::createFromExisting(static_cast&lt;MemoryMode&gt;(i), initialBlock);

But some people might find that style subtle or confusing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829373</commentid>
    <comment_count>15</comment_count>
      <attachid>448631</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-01-09 20:57:08 -0800</bug_when>
    <thetext>Comment on attachment 448631
Patch

Looks good to me too!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829374</commentid>
    <comment_count>16</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-01-09 20:58:08 -0800</bug_when>
    <thetext>(In reply to Asumu Takikawa from comment #13)
&gt; I&apos;ve rebased the patch for recent changes.
&gt; 
&gt; &gt; Yeah, I would like to know why this condition happens. And I think, if CalleeGroup is already created, then destroying it and replacing it sounds dangerous. Probably, initialize it with the other CalleeGroup&apos;s LLIntCallees would be better, but I first would like to know when this happens.
&gt; 
&gt; I believe it might happen if the CalleeGroup came from a module that has
&gt; already been used for another instance, but an OOM or similar event caused
&gt; the compilation to fail there.
&gt; 
&gt; In the current patch, I removed the second part of the condition so that it
&gt; doesn&apos;t try to replace the CalleeGroup. In the case where the callee group
&gt; is present but not runnable, it should try to re-compile the code in the
&gt; existing code path in WebAssemblyModuleRecord.cpp around line 430 where it
&gt; checks if the callee group is runnable. Does that seem better?

Sounds good to me!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829890</commentid>
    <comment_count>17</comment_count>
      <attachid>448871</attachid>
    <who name="Asumu Takikawa">asumu</who>
    <bug_when>2022-01-11 12:46:33 -0800</bug_when>
    <thetext>Created attachment 448871
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829891</commentid>
    <comment_count>18</comment_count>
      <attachid>448871</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-01-11 12:47:06 -0800</bug_when>
    <thetext>Comment on attachment 448871
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829892</commentid>
    <comment_count>19</comment_count>
    <who name="Asumu Takikawa">asumu</who>
    <bug_when>2022-01-11 12:49:00 -0800</bug_when>
    <thetext>Rebased again.

(In reply to Darin Adler from comment #14)
&gt; The local variables are making this code less readable. It should look more like this.

Thanks! I&apos;ve implemented your second suggestion in the new patch revision.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829943</commentid>
    <comment_count>20</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-01-11 15:49:45 -0800</bug_when>
    <thetext>Committed r287903 (245938@main): &lt;https://commits.webkit.org/245938@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 448871.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446652</attachid>
            <date>2021-12-09 18:50:11 -0800</date>
            <delta_ts>2021-12-15 13:02:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234116-20211209185011.patch</filename>
            <type>text/plain</type>
            <size>23766</size>
            <attacher name="Asumu Takikawa">asumu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NzQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
MGFiMjVmYzE2MzM3ZjkzZTVmMzgzZjIzOGQxZjc4Y2U4YmYxMWYyLi5iYjY3ZTg0ZDYzZjc3N2E3
ZjBlYjIyN2NjZDgxZmMxMDdiNzYyNTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMCBAQAorMjAyMS0xMi0wOSAgQXN1bXUgVGFraWthd2EgIDxhc3VtdUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtXYXNtXSBVbmlmeSBtZW1vcnkgaW1wb3J0IGhhbmRsaW5nIGluIG1vZHVs
ZSBsb2FkZXIgYW5kIEpTIGNhc2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzQxMTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBNb3ZlcyB0aGUgbWVtb3J5IGltcG9ydCBoYW5kbGluZyBjb2RlIHRvIHRo
ZSBXYXNtIG1vZHVsZSByZWNvcmQgYW5kCisgICAgICAgIHVzZSB0aGUgc3RyYXRlZ3kgdXNlZCBi
eSB0aGUgbW9kdWxlIGxvYWRlciB0byBoYW5kbGUgbWVtb3J5IGluIGFsbAorICAgICAgICBjYXNl
cy4KKworICAgICAgICAqIHdhc20vanMvSlNXZWJBc3NlbWJseUluc3RhbmNlLmNwcDoKKyAgICAg
ICAgKEpTQzo6SlNXZWJBc3NlbWJseUluc3RhbmNlOjpmaW5hbGl6ZUNyZWF0aW9uKToKKyAgICAg
ICAgKEpTQzo6SlNXZWJBc3NlbWJseUluc3RhbmNlOjp0cnlDcmVhdGUpOgorICAgICAgICAqIHdh
c20vanMvV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQuY3BwOgorICAgICAgICAoSlNDOjpXZWJBc3Nl
bWJseU1vZHVsZVJlY29yZDo6aW5pdGlhbGl6ZUltcG9ydHNBbmRFeHBvcnRzKToKKwogMjAyMS0x
Mi0wOCAgQXN1bXUgVGFraWthd2EgIDxhc3VtdUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFN1cHBv
cnQgV2ViQXNzZW1ibHkuTWVtb3J5IGltcG9ydHMgaW4gV2FzbS9FU00gbW9kdWxlcy4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlJbnN0YW5j
ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5SW5zdGFu
Y2UuY3BwCmluZGV4IDkyZTM5MjFlYzdkODllYWQ2ZmJhZGU3MWE1MTZlNjNmM2EyYmZlMjcuLjA4
NGU3ODlmMGU2MjBhMDkxMjM5OWZkZDdiNDU2ZjhhMThlNTRiNTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlJbnN0YW5jZS5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUluc3RhbmNlLmNwcApA
QCAtMTM1LDExICsxMzUsMTEgQEAgdm9pZCBKU1dlYkFzc2VtYmx5SW5zdGFuY2U6OmZpbmFsaXpl
Q3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWMKICAgICAgICAgbV9t
b2R1bGUtPnNldENvZGVCbG9jayh2bSwgbWVtb3J5TW9kZSgpLCBqc0NvZGVCbG9jayk7CiAgICAg
fQogCi0gICAgLy8gSW4gdGhlIG1vZHVsZSBsb2FkZXIgY2FzZSwgd2Ugd2lsbCBpbml0aWFsaXpl
IGFsbCBtZW1vcnkgbW9kZXMgd2l0aCB0aGUgaW5pdGlhbCBMTEludCBjb21waWxhdGlvbgorICAg
IC8vIFdoZW4gbWVtb3J5IGlzIGltcG9ydGVkLCB3ZSB3aWxsIGluaXRpYWxpemUgYWxsIG1lbW9y
eSBtb2RlcyB3aXRoIHRoZSBpbml0aWFsIExMSW50IGNvbXBpbGF0aW9uCiAgICAgLy8gcmVzdWx0
cywgc28gdGhhdCBsYXRlciB3aGVuIG1lbW9yeSBpbXBvcnRzIGJlY29tZSBhdmFpbGFibGUsIHRo
ZSBhcHByb3ByaWF0ZSBDb2RlQmxvY2sgY2FuIGJlIHVzZWQuCiAgICAgLy8gSWYgTExJbnQgaXMg
ZGlzYWJsZWQsIHdlIGluc3RlYWQgZGVmZXIgY29tcGlsYXRpb24gdG8gbW9kdWxlIGV2YWx1YXRp
b24uCiAgICAgYm9vbCBoYXNNZW1vcnlJbXBvcnQgPSBtb2R1bGUoKS0+bW9kdWxlSW5mb3JtYXRp
b24oKS5tZW1vcnkuaXNJbXBvcnQoKTsKLSAgICBpZiAoY3JlYXRpb25Nb2RlID09IFdhc206OkNy
ZWF0aW9uTW9kZTo6RnJvbU1vZHVsZUxvYWRlciAmJiBPcHRpb25zOjp1c2VXYXNtTExJbnQoKSAm
JiBoYXNNZW1vcnlJbXBvcnQpIHsKKyAgICBpZiAoT3B0aW9uczo6dXNlV2FzbUxMSW50KCkgJiYg
aGFzTWVtb3J5SW1wb3J0KSB7CiAgICAgICAgIFdhc206Ok1lbW9yeU1vZGUgaW5pdGlhbE1vZGUg
PSBXYXNtOjpNZW1vcnlNb2RlOjpCb3VuZHNDaGVja2luZzsKICAgICAgICAgQVNTRVJUKG1lbW9y
eU1vZGUoKSA9PSBpbml0aWFsTW9kZSk7CiAgICAgICAgIG1vZHVsZSgpLT5tb2R1bGUoKS5jb3B5
SW5pdGlhbENvZGVCbG9ja1RvQWxsTWVtb3J5TW9kZXMoaW5pdGlhbE1vZGUpOwpAQCAtMTk2LDEw
ICsxOTYsNiBAQCBKU1dlYkFzc2VtYmx5SW5zdGFuY2UqIEpTV2ViQXNzZW1ibHlJbnN0YW5jZTo6
dHJ5Q3JlYXRlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqCiAgICAgaWYgKCFnbG9iYWxPYmplY3Qt
PndlYkFzc2VtYmx5RW5hYmxlZCgpKQogICAgICAgICByZXR1cm4gZXhjZXB0aW9uKGNyZWF0ZUV2
YWxFcnJvcihnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+d2ViQXNzZW1ibHlEaXNhYmxlZEVy
cm9yTWVzc2FnZSgpKSk7CiAKLSAgICBhdXRvIGltcG9ydEZhaWxNZXNzYWdlID0gWyZdIChjb25z
dCBXYXNtOjpJbXBvcnQmIGltcG9ydCwgY29uc3QgY2hhciogYmVmb3JlLCBjb25zdCBjaGFyKiBh
ZnRlcikgewotICAgICAgICByZXR1cm4gbWFrZVN0cmluZyhiZWZvcmUsICIgIiwgU3RyaW5nOjpm
cm9tVVRGOChpbXBvcnQubW9kdWxlKSwgIjoiLCBTdHJpbmc6OmZyb21VVEY4KGltcG9ydC5maWVs
ZCksICIgIiwgYWZ0ZXIpOwotICAgIH07Ci0KICAgICBXZWJBc3NlbWJseU1vZHVsZVJlY29yZCog
bW9kdWxlUmVjb3JkID0gV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQ6OmNyZWF0ZShnbG9iYWxPYmpl
Y3QsIHZtLCBnbG9iYWxPYmplY3QtPndlYkFzc2VtYmx5TW9kdWxlUmVjb3JkU3RydWN0dXJlKCks
IG1vZHVsZUtleSwgbW9kdWxlSW5mb3JtYXRpb24pOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04o
dGhyb3dTY29wZSwgbnVsbHB0cik7CiAKQEAgLTIxMywxMCArMjA5LDYgQEAgSlNXZWJBc3NlbWJs
eUluc3RhbmNlKiBKU1dlYkFzc2VtYmx5SW5zdGFuY2U6OnRyeUNyZWF0ZShWTSYgdm0sIEpTR2xv
YmFsT2JqZWN0KgogICAgIGpzSW5zdGFuY2UtPmZpbmlzaENyZWF0aW9uKHZtLCBqc01vZHVsZSwg
bW9kdWxlUmVjb3JkKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIG51bGxw
dHIpOwogCi0gICAgLy8gTGV0IGZ1bmNzLCBtZW1vcmllcyBhbmQgdGFibGVzIGJlIGluaXRpYWxs
eS1lbXB0eSBsaXN0cyBvZiBjYWxsYWJsZSBKYXZhU2NyaXB0IG9iamVjdHMsIFdlYkFzc2VtYmx5
Lk1lbW9yeSBvYmplY3RzIGFuZCBXZWJBc3NlbWJseS5UYWJsZSBvYmplY3RzLCByZXNwZWN0aXZl
bHkuCi0gICAgLy8gTGV0IGltcG9ydHMgYmUgYW4gaW5pdGlhbGx5LWVtcHR5IGxpc3Qgb2YgZXh0
ZXJuYWwgdmFsdWVzLgotICAgIGJvb2wgaGFzTWVtb3J5SW1wb3J0ID0gZmFsc2U7Ci0KICAgICBp
ZiAoY3JlYXRpb25Nb2RlID09IFdhc206OkNyZWF0aW9uTW9kZTo6RnJvbUpTKSB7CiAgICAgICAg
IC8vIElmIHRoZSBsaXN0IG9mIG1vZHVsZS5pbXBvcnRzIGlzIG5vdCBlbXB0eSBhbmQgVHlwZShp
bXBvcnRPYmplY3QpIGlzIG5vdCBPYmplY3QsIGEgVHlwZUVycm9yIGlzIHRocm93bi4KICAgICAg
ICAgaWYgKG1vZHVsZUluZm9ybWF0aW9uLmltcG9ydHMuc2l6ZSgpICYmICFpbXBvcnRPYmplY3Qp
CkBAIC0yMzQsMTEyICsyMjYsMzEgQEAgSlNXZWJBc3NlbWJseUluc3RhbmNlKiBKU1dlYkFzc2Vt
Ymx5SW5zdGFuY2U6OnRyeUNyZWF0ZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KgogICAgICAgICAg
ICAgZmllbGROYW1lLAogICAgICAgICAgICAgSWRlbnRpZmllcjo6ZnJvbVVpZChQcml2YXRlTmFt
ZShQcml2YXRlTmFtZTo6RGVzY3JpcHRpb24sICJXZWJBc3NlbWJseUltcG9ydE5hbWUiKSksCiAg
ICAgICAgIH0pOwotCi0gICAgICAgIC8vIFZhbGlkYXRpb24gZm9yIG1vc3QgdHlwZXMgYXJlIGRv
bmUgaW4gV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQ6OmluaXRpYWxpemVJbXBvcnRzQW5kRXhwb3J0
cyBhbmQgc2tpcHBlZCBoZXJlLgotICAgICAgICAvLyBFdmVudHVhbGx5IHdlIHdpbGwgbW92ZSBh
bGwgdGhlIGxpbmtpbmcgY29kZSBoZXJlIHRvIFdlYkFzc2VtYmx5TW9kdWxlUmVjb3JkOjppbml0
aWFsaXplSW1wb3J0c0FuZEV4cG9ydHMuCi0gICAgICAgIHN3aXRjaCAoaW1wb3J0LmtpbmQpIHsK
LSAgICAgICAgY2FzZSBXYXNtOjpFeHRlcm5hbEtpbmQ6OkZ1bmN0aW9uOgotICAgICAgICBjYXNl
IFdhc206OkV4dGVybmFsS2luZDo6R2xvYmFsOgotICAgICAgICBjYXNlIFdhc206OkV4dGVybmFs
S2luZDo6VGFibGU6Ci0gICAgICAgIGNhc2UgV2FzbTo6RXh0ZXJuYWxLaW5kOjpFeGNlcHRpb246
Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgY2FzZSBXYXNtOjpFeHRlcm5hbEtpbmQ6
Ok1lbW9yeToKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0KLSAgICAgICAgSlNWYWx1
ZSB2YWx1ZTsKLSAgICAgICAgaWYgKGNyZWF0aW9uTW9kZSA9PSBXYXNtOjpDcmVhdGlvbk1vZGU6
OkZyb21KUykgewotICAgICAgICAgICAgLy8gMS4gTGV0IG8gYmUgdGhlIHJlc3VsdGFudCB2YWx1
ZSBvZiBwZXJmb3JtaW5nIEdldChpbXBvcnRPYmplY3QsIGkubW9kdWxlX25hbWUpLgotICAgICAg
ICAgICAgSlNWYWx1ZSBpbXBvcnRNb2R1bGVWYWx1ZSA9IGltcG9ydE9iamVjdC0+Z2V0KGdsb2Jh
bE9iamVjdCwgbW9kdWxlTmFtZSk7Ci0gICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRo
cm93U2NvcGUsIG51bGxwdHIpOwotICAgICAgICAgICAgLy8gMi4gSWYgVHlwZShvKSBpcyBub3Qg
T2JqZWN0LCB0aHJvdyBhIFR5cGVFcnJvci4KLSAgICAgICAgICAgIGlmICghaW1wb3J0TW9kdWxl
VmFsdWUuaXNPYmplY3QoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZXhjZXB0aW9uKGNyZWF0
ZVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIGltcG9ydEZhaWxNZXNzYWdlKGltcG9ydCwgImltcG9y
dCIsICJtdXN0IGJlIGFuIG9iamVjdCIpLCBkZWZhdWx0U291cmNlQXBwZW5kZXIsIHJ1bnRpbWVU
eXBlRm9yVmFsdWUodm0sIGltcG9ydE1vZHVsZVZhbHVlKSkpOwotCi0gICAgICAgICAgICAvLyAz
LiBMZXQgdiBiZSB0aGUgdmFsdWUgb2YgcGVyZm9ybWluZyBHZXQobywgaS5pdGVtX25hbWUpCi0g
ICAgICAgICAgICBKU09iamVjdCogb2JqZWN0ID0ganNDYXN0PEpTT2JqZWN0Kj4oaW1wb3J0TW9k
dWxlVmFsdWUpOwotICAgICAgICAgICAgdmFsdWUgPSBvYmplY3QtPmdldChnbG9iYWxPYmplY3Qs
IGZpZWxkTmFtZSk7Ci0gICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUs
IG51bGxwdHIpOwotICAgICAgICB9Ci0gICAgICAgIGlmICghdmFsdWUpCi0gICAgICAgICAgICB2
YWx1ZSA9IGpzVW5kZWZpbmVkKCk7Ci0KLSAgICAgICAgc3dpdGNoIChpbXBvcnQua2luZCkgewot
ICAgICAgICBjYXNlIFdhc206OkV4dGVybmFsS2luZDo6RnVuY3Rpb246Ci0gICAgICAgIGNhc2Ug
V2FzbTo6RXh0ZXJuYWxLaW5kOjpHbG9iYWw6Ci0gICAgICAgIGNhc2UgV2FzbTo6RXh0ZXJuYWxL
aW5kOjpUYWJsZToKLSAgICAgICAgY2FzZSBXYXNtOjpFeHRlcm5hbEtpbmQ6OkV4Y2VwdGlvbjoK
LSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIGNhc2UgV2FzbTo6RXh0ZXJuYWxLaW5kOjpN
ZW1vcnk6IHsKLSAgICAgICAgICAgIC8vIDYuIElmIGkgaXMgYSBtZW1vcnkgaW1wb3J0OgotICAg
ICAgICAgICAgUkVMRUFTRV9BU1NFUlQoIWhhc01lbW9yeUltcG9ydCk7IC8vIFRoaXMgc2hvdWxk
IGJlIGd1YXJhbnRlZWQgYnkgYSB2YWxpZGF0aW9uIGZhaWx1cmUuCi0gICAgICAgICAgICBSRUxF
QVNFX0FTU0VSVChtb2R1bGVJbmZvcm1hdGlvbi5tZW1vcnkpOwotICAgICAgICAgICAgaGFzTWVt
b3J5SW1wb3J0ID0gdHJ1ZTsKLSAgICAgICAgICAgIC8vIEZvciB0aGUgbW9kdWxlIGxvYWRlciwg
d2UgY2Fubm90IGluaXRpYWxpemUgdGhlIG1lbW9yeSBoZXJlIHNvIHdlIGRlbGF5IHRoaXMKLSAg
ICAgICAgICAgIC8vIHVudGlsIFdlYkFzc2VtYmx5TW9kdWxlUmVjb3JkJ3MgaW5pdGlhbGl6YXRp
b24gb3BlcmF0aW9uLgotICAgICAgICAgICAgaWYgKGNyZWF0aW9uTW9kZSA9PSBXYXNtOjpDcmVh
dGlvbk1vZGU6OkZyb21Nb2R1bGVMb2FkZXIpCi0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgICAgICBKU1dlYkFzc2VtYmx5TWVtb3J5KiBtZW1vcnkgPSBqc0R5bmFtaWNDYXN0PEpTV2Vi
QXNzZW1ibHlNZW1vcnkqPih2bSwgdmFsdWUpOwotICAgICAgICAgICAgLy8gaS4gSWYgdiBpcyBu
b3QgYSBXZWJBc3NlbWJseS5NZW1vcnkgb2JqZWN0LCB0aHJvdyBhIFdlYkFzc2VtYmx5LkxpbmtF
cnJvci4KLSAgICAgICAgICAgIGlmICghbWVtb3J5KQotICAgICAgICAgICAgICAgIHJldHVybiBl
eGNlcHRpb24oY3JlYXRlSlNXZWJBc3NlbWJseUxpbmtFcnJvcihnbG9iYWxPYmplY3QsIHZtLCBp
bXBvcnRGYWlsTWVzc2FnZShpbXBvcnQsICJNZW1vcnkgaW1wb3J0IiwgImlzIG5vdCBhbiBpbnN0
YW5jZSBvZiBXZWJBc3NlbWJseS5NZW1vcnkiKSkpOwotCi0gICAgICAgICAgICBXYXNtOjpQYWdl
Q291bnQgZGVjbGFyZWRJbml0aWFsID0gbW9kdWxlSW5mb3JtYXRpb24ubWVtb3J5LmluaXRpYWwo
KTsKLSAgICAgICAgICAgIFdhc206OlBhZ2VDb3VudCBpbXBvcnRlZEluaXRpYWwgPSBtZW1vcnkt
Pm1lbW9yeSgpLmluaXRpYWwoKTsKLSAgICAgICAgICAgIGlmIChpbXBvcnRlZEluaXRpYWwgPCBk
ZWNsYXJlZEluaXRpYWwpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGV4Y2VwdGlvbihjcmVhdGVK
U1dlYkFzc2VtYmx5TGlua0Vycm9yKGdsb2JhbE9iamVjdCwgdm0sIGltcG9ydEZhaWxNZXNzYWdl
KGltcG9ydCwgIk1lbW9yeSBpbXBvcnQiLCAicHJvdmlkZWQgYW4gJ2luaXRpYWwnIHRoYXQgaXMg
c21hbGxlciB0aGFuIHRoZSBtb2R1bGUncyBkZWNsYXJlZCAnaW5pdGlhbCcgaW1wb3J0IG1lbW9y
eSBzaXplIikpKTsKLQotICAgICAgICAgICAgaWYgKFdhc206OlBhZ2VDb3VudCBkZWNsYXJlZE1h
eGltdW0gPSBtb2R1bGVJbmZvcm1hdGlvbi5tZW1vcnkubWF4aW11bSgpKSB7Ci0gICAgICAgICAg
ICAgICAgV2FzbTo6UGFnZUNvdW50IGltcG9ydGVkTWF4aW11bSA9IG1lbW9yeS0+bWVtb3J5KCku
bWF4aW11bSgpOwotICAgICAgICAgICAgICAgIGlmICghaW1wb3J0ZWRNYXhpbXVtKQotICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gZXhjZXB0aW9uKGNyZWF0ZUpTV2ViQXNzZW1ibHlMaW5rRXJy
b3IoZ2xvYmFsT2JqZWN0LCB2bSwgaW1wb3J0RmFpbE1lc3NhZ2UoaW1wb3J0LCAiTWVtb3J5IGlt
cG9ydCIsICJkaWQgbm90IGhhdmUgYSAnbWF4aW11bScgYnV0IHRoZSBtb2R1bGUgcmVxdWlyZXMg
dGhhdCBpdCBkb2VzIikpKTsKLQotICAgICAgICAgICAgICAgIGlmIChpbXBvcnRlZE1heGltdW0g
PiBkZWNsYXJlZE1heGltdW0pCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiBleGNlcHRpb24o
Y3JlYXRlSlNXZWJBc3NlbWJseUxpbmtFcnJvcihnbG9iYWxPYmplY3QsIHZtLCBpbXBvcnRGYWls
TWVzc2FnZShpbXBvcnQsICJNZW1vcnkgaW1wb3J0IiwgInByb3ZpZGVkIGEgJ21heGltdW0nIHRo
YXQgaXMgbGFyZ2VyIHRoYW4gdGhlIG1vZHVsZSdzIGRlY2xhcmVkICdtYXhpbXVtJyBpbXBvcnQg
bWVtb3J5IHNpemUiKSkpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiAoKG1lbW9y
eS0+bWVtb3J5KCkuc2hhcmluZ01vZGUoKSA9PSBXYXNtOjpNZW1vcnlTaGFyaW5nTW9kZTo6U2hh
cmVkKSAhPSBtb2R1bGVJbmZvcm1hdGlvbi5tZW1vcnkuaXNTaGFyZWQoKSkKLSAgICAgICAgICAg
ICAgICByZXR1cm4gZXhjZXB0aW9uKGNyZWF0ZUpTV2ViQXNzZW1ibHlMaW5rRXJyb3IoZ2xvYmFs
T2JqZWN0LCB2bSwgaW1wb3J0RmFpbE1lc3NhZ2UoaW1wb3J0LCAiTWVtb3J5IGltcG9ydCIsICJw
cm92aWRlZCBhICdzaGFyZWQnIHRoYXQgaXMgZGlmZmVybnQgZnJvbSB0aGUgbW9kdWxlJ3MgZGVj
bGFyZWQgJ3NoYXJlZCcgaW1wb3J0IG1lbW9yeSBhdHRyaWJ1dGUiKSkpOwotCi0gICAgICAgICAg
ICAvLyBpaS4gQXBwZW5kIHYgdG8gbWVtb3JpZXMuCi0gICAgICAgICAgICAvLyBpaWkuIEFwcGVu
ZCB2LltbTWVtb3J5XV0gdG8gaW1wb3J0cy4KLSAgICAgICAgICAgIGpzSW5zdGFuY2UtPnNldE1l
bW9yeSh2bSwgbWVtb3J5KTsKLSAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dT
Y29wZSwgbnVsbHB0cik7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICB9
CiAgICAgfQogICAgIEFTU0VSVChtb2R1bGVSZWNvcmQtPmltcG9ydEVudHJpZXMoKS5zaXplKCkg
PT0gbW9kdWxlSW5mb3JtYXRpb24uaW1wb3J0cy5zaXplKCkpOwogCi0gICAgewotICAgICAgICBp
ZiAoISFtb2R1bGVJbmZvcm1hdGlvbi5tZW1vcnkgJiYgbW9kdWxlSW5mb3JtYXRpb24ubWVtb3J5
LmlzSW1wb3J0KCkpIHsKLSAgICAgICAgICAgIC8vIFdlIHNob3VsZCBlaXRoZXIgaGF2ZSBhIE1l
bW9yeSBpbXBvcnQgb3Igd2Ugc2hvdWxkIGhhdmUgdGhyb3duIGFuIGV4Y2VwdGlvbi4KLSAgICAg
ICAgICAgIFJFTEVBU0VfQVNTRVJUKGhhc01lbW9yeUltcG9ydCk7Ci0gICAgICAgIH0KLQotICAg
ICAgICBpZiAobW9kdWxlSW5mb3JtYXRpb24ubWVtb3J5ICYmICFoYXNNZW1vcnlJbXBvcnQpIHsK
LSAgICAgICAgICAgIC8vIFdlIGNyZWF0ZSBhIG1lbW9yeSB3aGVuIGl0J3MgYSBtZW1vcnkgZGVm
aW5pdGlvbi4KLSAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKCFtb2R1bGVJbmZvcm1hdGlvbi5t
ZW1vcnkuaXNJbXBvcnQoKSk7Ci0KLSAgICAgICAgICAgIGF1dG8qIGpzTWVtb3J5ID0gSlNXZWJB
c3NlbWJseU1lbW9yeTo6dHJ5Q3JlYXRlKGdsb2JhbE9iamVjdCwgdm0sIGdsb2JhbE9iamVjdC0+
d2ViQXNzZW1ibHlNZW1vcnlTdHJ1Y3R1cmUoKSk7Ci0gICAgICAgICAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHRocm93U2NvcGUsIG51bGxwdHIpOworICAgIGJvb2wgaGFzTWVtb3J5SW1wb3J0ID0g
bW9kdWxlSW5mb3JtYXRpb24ubWVtb3J5LmlzSW1wb3J0KCk7CisgICAgaWYgKG1vZHVsZUluZm9y
bWF0aW9uLm1lbW9yeSAmJiAhaGFzTWVtb3J5SW1wb3J0KSB7CisgICAgICAgIC8vIFdlIGNyZWF0
ZSBhIG1lbW9yeSB3aGVuIGl0J3MgYSBtZW1vcnkgZGVmaW5pdGlvbi4KKyAgICAgICAgYXV0byog
anNNZW1vcnkgPSBKU1dlYkFzc2VtYmx5TWVtb3J5Ojp0cnlDcmVhdGUoZ2xvYmFsT2JqZWN0LCB2
bSwgZ2xvYmFsT2JqZWN0LT53ZWJBc3NlbWJseU1lbW9yeVN0cnVjdHVyZSgpKTsKKyAgICAgICAg
UkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCBudWxscHRyKTsKIAotICAgICAgICAgICAg
UmVmUHRyPFdhc206Ok1lbW9yeT4gbWVtb3J5ID0gV2FzbTo6TWVtb3J5Ojp0cnlDcmVhdGUobW9k
dWxlSW5mb3JtYXRpb24ubWVtb3J5LmluaXRpYWwoKSwgbW9kdWxlSW5mb3JtYXRpb24ubWVtb3J5
Lm1heGltdW0oKSwgbW9kdWxlSW5mb3JtYXRpb24ubWVtb3J5LmlzU2hhcmVkKCkgPyBXYXNtOjpN
ZW1vcnlTaGFyaW5nTW9kZTo6U2hhcmVkOiBXYXNtOjpNZW1vcnlTaGFyaW5nTW9kZTo6RGVmYXVs
dCwKLSAgICAgICAgICAgICAgICBbJnZtXSAoV2FzbTo6TWVtb3J5OjpOb3RpZnlQcmVzc3VyZSkg
eyB2bS5oZWFwLmNvbGxlY3RBc3luYyhDb2xsZWN0aW9uU2NvcGU6OkZ1bGwpOyB9LAotICAgICAg
ICAgICAgICAgIFsmdm1dIChXYXNtOjpNZW1vcnk6OlN5bmNUcnlUb1JlY2xhaW0pIHsgdm0uaGVh
cC5jb2xsZWN0U3luYyhDb2xsZWN0aW9uU2NvcGU6OkZ1bGwpOyB9LAotICAgICAgICAgICAgICAg
IFsmdm0sIGpzTWVtb3J5XSAoV2FzbTo6TWVtb3J5OjpHcm93U3VjY2VzcywgV2FzbTo6UGFnZUNv
dW50IG9sZFBhZ2VDb3VudCwgV2FzbTo6UGFnZUNvdW50IG5ld1BhZ2VDb3VudCkgeyBqc01lbW9y
eS0+Z3Jvd1N1Y2Nlc3NDYWxsYmFjayh2bSwgb2xkUGFnZUNvdW50LCBuZXdQYWdlQ291bnQpOyB9
KTsKLSAgICAgICAgICAgIGlmICghbWVtb3J5KQotICAgICAgICAgICAgICAgIHJldHVybiBleGNl
cHRpb24oY3JlYXRlT3V0T2ZNZW1vcnlFcnJvcihnbG9iYWxPYmplY3QpKTsKKyAgICAgICAgUmVm
UHRyPFdhc206Ok1lbW9yeT4gbWVtb3J5ID0gV2FzbTo6TWVtb3J5Ojp0cnlDcmVhdGUobW9kdWxl
SW5mb3JtYXRpb24ubWVtb3J5LmluaXRpYWwoKSwgbW9kdWxlSW5mb3JtYXRpb24ubWVtb3J5Lm1h
eGltdW0oKSwgbW9kdWxlSW5mb3JtYXRpb24ubWVtb3J5LmlzU2hhcmVkKCkgPyBXYXNtOjpNZW1v
cnlTaGFyaW5nTW9kZTo6U2hhcmVkOiBXYXNtOjpNZW1vcnlTaGFyaW5nTW9kZTo6RGVmYXVsdCwK
KyAgICAgICAgICAgIFsmdm1dKFdhc206Ok1lbW9yeTo6Tm90aWZ5UHJlc3N1cmUpIHsgdm0uaGVh
cC5jb2xsZWN0QXN5bmMoQ29sbGVjdGlvblNjb3BlOjpGdWxsKTsgfSwKKyAgICAgICAgICAgIFsm
dm1dKFdhc206Ok1lbW9yeTo6U3luY1RyeVRvUmVjbGFpbSkgeyB2bS5oZWFwLmNvbGxlY3RTeW5j
KENvbGxlY3Rpb25TY29wZTo6RnVsbCk7IH0sCisgICAgICAgICAgICBbJnZtLCBqc01lbW9yeV0o
V2FzbTo6TWVtb3J5OjpHcm93U3VjY2VzcywgV2FzbTo6UGFnZUNvdW50IG9sZFBhZ2VDb3VudCwg
V2FzbTo6UGFnZUNvdW50IG5ld1BhZ2VDb3VudCkgeyBqc01lbW9yeS0+Z3Jvd1N1Y2Nlc3NDYWxs
YmFjayh2bSwgb2xkUGFnZUNvdW50LCBuZXdQYWdlQ291bnQpOyB9CisgICAgICAgICk7CisgICAg
ICAgIGlmICghbWVtb3J5KQorICAgICAgICAgICAgcmV0dXJuIGV4Y2VwdGlvbihjcmVhdGVPdXRP
Zk1lbW9yeUVycm9yKGdsb2JhbE9iamVjdCkpOwogCi0gICAgICAgICAgICBqc01lbW9yeS0+YWRv
cHQobWVtb3J5LnJlbGVhc2VOb25OdWxsKCkpOwotICAgICAgICAgICAganNJbnN0YW5jZS0+c2V0
TWVtb3J5KHZtLCBqc01lbW9yeSk7Ci0gICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRo
cm93U2NvcGUsIG51bGxwdHIpOwotICAgICAgICB9CisgICAgICAgIGpzTWVtb3J5LT5hZG9wdCht
ZW1vcnkucmVsZWFzZU5vbk51bGwoKSk7CisgICAgICAgIGpzSW5zdGFuY2UtPnNldE1lbW9yeSh2
bSwganNNZW1vcnkpOworICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIG51
bGxwdHIpOwogICAgIH0KLSAgICAKKwogICAgIGlmICghanNJbnN0YW5jZS0+bWVtb3J5KCkpIHsK
ICAgICAgICAgLy8gTWFrZSBzdXJlIHdlIGhhdmUgYSBkdW1teSBtZW1vcnksIHNvIHRoYXQgd2Fz
bSAtPiB3YXNtIHRodW5rcyBhdm9pZCBjaGVja2luZyBmb3IgYSBudWxscHRyIE1lbW9yeSB3aGVu
IHRyeWluZyB0byBzZXQgcGlubmVkIHJlZ2lzdGVycy4KKyAgICAgICAgLy8gV2hlbiB0aGVyZSBp
cyBhIG1lbW9yeSBpbXBvcnQsIHRoaXMgd2lsbCBiZSByZXBsYWNlZCBsYXRlciBpbiB0aGUgbW9k
dWxlIHJlY29yZCBpbXBvcnQgaW5pdGlhbGl6YXRpb24uCiAgICAgICAgIGF1dG8qIGpzTWVtb3J5
ID0gSlNXZWJBc3NlbWJseU1lbW9yeTo6dHJ5Q3JlYXRlKGdsb2JhbE9iamVjdCwgdm0sIGdsb2Jh
bE9iamVjdC0+d2ViQXNzZW1ibHlNZW1vcnlTdHJ1Y3R1cmUoKSk7CiAgICAgICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04odGhyb3dTY29wZSwgbnVsbHB0cik7CiAgICAgICAgIGpzTWVtb3J5LT5hZG9w
dChXYXNtOjpNZW1vcnk6OmNyZWF0ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlUmVjb3JkLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlUmVjb3JkLmNwcAppbmRleCA0Y2I1MWYy
NWZlM2Q3ZTFhYjhlOGU5MTUzMjgwZmUwMTE3NjJhY2RjLi43YmU3NmJlYTQxN2NmZTA3OWEyNzMw
Y2E2NDRiMmIzOTY2ZGQ5NzgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9XZWJBc3NlbWJseU1vZHVsZVJlY29yZC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQuY3BwCkBAIC0xMzMsMjAgKzEzMyw2
IEBAIHZvaWQgV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQ6OmluaXRpYWxpemVJbXBvcnRzQW5kRXhw
b3J0cyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsCiAgICAgfTsKIAogICAgIGZvciAoY29uc3QgYXV0
byYgaW1wb3J0IDogbW9kdWxlSW5mb3JtYXRpb24uaW1wb3J0cykgewotICAgICAgICAvLyBWYWxp
ZGF0aW9uIGFuZCBsaW5raW5nIG90aGVyIHRoYW4gV2FzbTo6RXh0ZXJuYWxLaW5kOjpGdW5jdGlv
biBpcyBhbHJlYWR5IGRvbmUgaW4gSlNXZWJBc3NlbWJseUluc3RhbmNlLgotICAgICAgICAvLyBF
dmVudHVhbGx5IHdlIHdpbGwgbW92ZSBhbGwgdGhlIGxpbmtpbmcgY29kZSBpbiBKU1dlYkFzc2Vt
Ymx5SW5zdGFuY2UgaGVyZSBhbmQgcmVtb3ZlIHRoaXMgc3dpdGNoIHN0YXRlbWVudC4KLSAgICAg
ICAgc3dpdGNoIChpbXBvcnQua2luZCkgewotICAgICAgICBjYXNlIFdhc206OkV4dGVybmFsS2lu
ZDo6RnVuY3Rpb246Ci0gICAgICAgIGNhc2UgV2FzbTo6RXh0ZXJuYWxLaW5kOjpHbG9iYWw6Ci0g
ICAgICAgIGNhc2UgV2FzbTo6RXh0ZXJuYWxLaW5kOjpUYWJsZToKLSAgICAgICAgY2FzZSBXYXNt
OjpFeHRlcm5hbEtpbmQ6OkV4Y2VwdGlvbjoKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBj
YXNlIFdhc206OkV4dGVybmFsS2luZDo6TWVtb3J5OgotICAgICAgICAgICAgaWYgKGNyZWF0aW9u
TW9kZSA9PSBXYXNtOjpDcmVhdGlvbk1vZGU6OkZyb21KUykKLSAgICAgICAgICAgICAgICBjb250
aW51ZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0KICAgICAgICAgSWRlbnRpZmll
ciBtb2R1bGVOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgU3RyaW5nOjpmcm9tVVRG
OChpbXBvcnQubW9kdWxlKSk7CiAgICAgICAgIElkZW50aWZpZXIgZmllbGROYW1lID0gSWRlbnRp
Zmllcjo6ZnJvbVN0cmluZyh2bSwgU3RyaW5nOjpmcm9tVVRGOChpbXBvcnQuZmllbGQpKTsKICAg
ICAgICAgSlNWYWx1ZSB2YWx1ZTsKQEAgLTQwOSw3ICszOTUsNiBAQCB2b2lkIFdlYkFzc2VtYmx5
TW9kdWxlUmVjb3JkOjppbml0aWFsaXplSW1wb3J0c0FuZEV4cG9ydHMoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbAogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIAotICAgICAgICAvLyBNZW1v
cnkgaW5pdGlhbGl6YXRpb24gd2lsbCBvbmx5IG9jY3VyIGhlcmUgaWYgdGhlIGNyZWF0aW9uIG1v
ZGUgd2FzIHRocm91Z2ggdGhlIG1vZHVsZSBsb2FkZXIuCiAgICAgICAgIGNhc2UgV2FzbTo6RXh0
ZXJuYWxLaW5kOjpNZW1vcnk6CiAgICAgICAgICAgICBKU1dlYkFzc2VtYmx5TWVtb3J5KiBtZW1v
cnkgPSBqc0R5bmFtaWNDYXN0PEpTV2ViQXNzZW1ibHlNZW1vcnkqPih2bSwgdmFsdWUpOwogICAg
ICAgICAgICAgLy8gaS4gSWYgdiBpcyBub3QgYSBXZWJBc3NlbWJseS5NZW1vcnkgb2JqZWN0LCB0
aHJvdyBhIFdlYkFzc2VtYmx5LkxpbmtFcnJvci4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9n
CmluZGV4IDcxNDI3ZDRlYTRkMWZjZTI5ZTlhYWNlMGZkOTUyOTZmODBmNDVhZjAuLjZmODY0MGFm
MWNiOWI5MDgzYjdiYWM4OWM3ZTkwY2NiNTk2N2NmNjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0No
YW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIxLTEyLTA5ICBBc3VtdSBUYWtpa2F3YSAgPGFz
dW11QGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dhc21dIFVuaWZ5IG1lbW9yeSBpbXBvcnQgaGFu
ZGxpbmcgaW4gbW9kdWxlIGxvYWRlciBhbmQgSlMgY2FzZXMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDExNgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkanVzdCBXYXNtIFdQVCB0ZXN0IGV4cGVjdGF0
aW9ucyBub3cgdGhhdCBnZXR0ZXIgb3JkZXJpbmcgdGVzdHMKKyAgICAgICAgc2hvdWxkIHBhc3Mu
CisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9jb25zdHJ1Y3Rvci9p
bnN0YW50aWF0ZS5hbnktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy93YXNtL2pzYXBpL2NvbnN0cnVjdG9yL2luc3RhbnRpYXRlLmFueS53b3JrZXItZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL2luc3RhbmNlL2Nv
bnN0cnVjdG9yLmFueS1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L3dhc20vanNhcGkvaW5zdGFuY2UvY29uc3RydWN0b3IuYW55Lndvcmtlci1leHBlY3RlZC50eHQ6
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vd2ViYXBpL2luc3RhbnRpYXRlU3Ry
ZWFtaW5nLmFueS1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dh
c20vd2ViYXBpL2luc3RhbnRpYXRlU3RyZWFtaW5nLmFueS53b3JrZXItZXhwZWN0ZWQudHh0Ogor
CiAyMDIxLTEyLTA4ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbQ1NTIENhc2NhZGUgTGF5ZXJzXSBDU1NJbXBvcnRSdWxlLmNzc1RleHQgZG9lc24ndCBpbmNs
dWRlIGxheWVyIHBhcmFtZXRlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL2NvbnN0cnVjdG9yL2luc3RhbnRpYXRlLmFu
eS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dhc20vanNhcGkvY29uc3RydWN0b3IvaW5zdGFudGlhdGUuYW55LWV4cGVjdGVkLnR4dApp
bmRleCA1MDY0N2MyNTNkZjk1OTI1M2IyZGVjMzliZWRjYTM5ZDZmZTdjYjAzLi44NjQyYTVlYWUw
NjAxMzUxYWZkMTU1NDIxM2I4MzZlMWQ3OTEzMDgwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvY29uc3RydWN0b3IvaW5z
dGFudGlhdGUuYW55LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvY29uc3RydWN0b3IvaW5zdGFudGlhdGUuYW55
LWV4cGVjdGVkLnR4dApAQCAtOSw4ICs5LDggQEAgUEFTUyBFbXB0eSBtb2R1bGUgd2l0aCB1bmRl
ZmluZWQgaW1wb3J0cyBhcmd1bWVudDogQnVmZmVyU291cmNlIGFyZ3VtZW50CiBQQVNTIEVtcHR5
IG1vZHVsZSB3aXRoIHVuZGVmaW5lZCBpbXBvcnRzIGFyZ3VtZW50OiBNb2R1bGUgYXJndW1lbnQK
IFBBU1MgRW1wdHkgbW9kdWxlIHdpdGggZW1wdHkgaW1wb3J0cyBhcmd1bWVudDogQnVmZmVyU291
cmNlIGFyZ3VtZW50CiBQQVNTIEVtcHR5IG1vZHVsZSB3aXRoIGVtcHR5IGltcG9ydHMgYXJndW1l
bnQ6IE1vZHVsZSBhcmd1bWVudAotRkFJTCBnZXR0ZXIgb3JkZXIgZm9yIGltcG9ydHMgb2JqZWN0
OiBCdWZmZXJTb3VyY2UgYXJndW1lbnQgYXNzZXJ0X2FycmF5X2VxdWFsczogZXhwZWN0ZWQgcHJv
cGVydHkgMSB0byBiZSAiZ2xvYmFsMSBnZXR0ZXIiIGJ1dCBnb3QgIm1lbW9yeSBnZXR0ZXIiIChl
eHBlY3RlZCBhcnJheSBbIm1vZHVsZSBnZXR0ZXIiLCAiZ2xvYmFsMSBnZXR0ZXIiLCAibW9kdWxl
MiBnZXR0ZXIiLCAiZ2xvYmFsMyBnZXR0ZXIiLCAibW9kdWxlIGdldHRlciIsICJtZW1vcnkgZ2V0
dGVyIiwgIm1vZHVsZSBnZXR0ZXIiLCAiZ2xvYmFsMiBnZXR0ZXIiXSBnb3QgWyJtb2R1bGUgZ2V0
dGVyIiwgIm1lbW9yeSBnZXR0ZXIiLCAibW9kdWxlIGdldHRlciIsICJnbG9iYWwxIGdldHRlciIs
ICJtb2R1bGUyIGdldHRlciIsICJnbG9iYWwzIGdldHRlciIsICJtb2R1bGUgZ2V0dGVyIiwgImds
b2JhbDIgZ2V0dGVyIl0pCi1GQUlMIGdldHRlciBvcmRlciBmb3IgaW1wb3J0cyBvYmplY3Q6IE1v
ZHVsZSBhcmd1bWVudCBhc3NlcnRfYXJyYXlfZXF1YWxzOiBleHBlY3RlZCBwcm9wZXJ0eSAxIHRv
IGJlICJnbG9iYWwxIGdldHRlciIgYnV0IGdvdCAibWVtb3J5IGdldHRlciIgKGV4cGVjdGVkIGFy
cmF5IFsibW9kdWxlIGdldHRlciIsICJnbG9iYWwxIGdldHRlciIsICJtb2R1bGUyIGdldHRlciIs
ICJnbG9iYWwzIGdldHRlciIsICJtb2R1bGUgZ2V0dGVyIiwgIm1lbW9yeSBnZXR0ZXIiLCAibW9k
dWxlIGdldHRlciIsICJnbG9iYWwyIGdldHRlciJdIGdvdCBbIm1vZHVsZSBnZXR0ZXIiLCAibWVt
b3J5IGdldHRlciIsICJtb2R1bGUgZ2V0dGVyIiwgImdsb2JhbDEgZ2V0dGVyIiwgIm1vZHVsZTIg
Z2V0dGVyIiwgImdsb2JhbDMgZ2V0dGVyIiwgIm1vZHVsZSBnZXR0ZXIiLCAiZ2xvYmFsMiBnZXR0
ZXIiXSkKK1BBU1MgZ2V0dGVyIG9yZGVyIGZvciBpbXBvcnRzIG9iamVjdDogQnVmZmVyU291cmNl
IGFyZ3VtZW50CitQQVNTIGdldHRlciBvcmRlciBmb3IgaW1wb3J0cyBvYmplY3Q6IE1vZHVsZSBh
cmd1bWVudAogUEFTUyBpbXBvcnRzOiBCdWZmZXJTb3VyY2UgYXJndW1lbnQKIFBBU1MgaW1wb3J0
czogTW9kdWxlIGFyZ3VtZW50CiBQQVNTIGltcG9ydHMgd2l0aCBlbXB0eSBtb2R1bGUgbmFtZXM6
IEJ1ZmZlclNvdXJjZSBhcmd1bWVudApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL2NvbnN0cnVjdG9yL2luc3RhbnRpYXRl
LmFueS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL2NvbnN0cnVjdG9yL2luc3RhbnRpYXRlLmFueS53b3Jr
ZXItZXhwZWN0ZWQudHh0CmluZGV4IDUwNjQ3YzI1M2RmOTU5MjUzYjJkZWMzOWJlZGNhMzlkNmZl
N2NiMDMuLjg2NDJhNWVhZTA2MDEzNTFhZmQxNTU0MjEzYjgzNmUxZDc5MTMwODAgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2Fw
aS9jb25zdHJ1Y3Rvci9pbnN0YW50aWF0ZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvY29u
c3RydWN0b3IvaW5zdGFudGlhdGUuYW55Lndvcmtlci1leHBlY3RlZC50eHQKQEAgLTksOCArOSw4
IEBAIFBBU1MgRW1wdHkgbW9kdWxlIHdpdGggdW5kZWZpbmVkIGltcG9ydHMgYXJndW1lbnQ6IEJ1
ZmZlclNvdXJjZSBhcmd1bWVudAogUEFTUyBFbXB0eSBtb2R1bGUgd2l0aCB1bmRlZmluZWQgaW1w
b3J0cyBhcmd1bWVudDogTW9kdWxlIGFyZ3VtZW50CiBQQVNTIEVtcHR5IG1vZHVsZSB3aXRoIGVt
cHR5IGltcG9ydHMgYXJndW1lbnQ6IEJ1ZmZlclNvdXJjZSBhcmd1bWVudAogUEFTUyBFbXB0eSBt
b2R1bGUgd2l0aCBlbXB0eSBpbXBvcnRzIGFyZ3VtZW50OiBNb2R1bGUgYXJndW1lbnQKLUZBSUwg
Z2V0dGVyIG9yZGVyIGZvciBpbXBvcnRzIG9iamVjdDogQnVmZmVyU291cmNlIGFyZ3VtZW50IGFz
c2VydF9hcnJheV9lcXVhbHM6IGV4cGVjdGVkIHByb3BlcnR5IDEgdG8gYmUgImdsb2JhbDEgZ2V0
dGVyIiBidXQgZ290ICJtZW1vcnkgZ2V0dGVyIiAoZXhwZWN0ZWQgYXJyYXkgWyJtb2R1bGUgZ2V0
dGVyIiwgImdsb2JhbDEgZ2V0dGVyIiwgIm1vZHVsZTIgZ2V0dGVyIiwgImdsb2JhbDMgZ2V0dGVy
IiwgIm1vZHVsZSBnZXR0ZXIiLCAibWVtb3J5IGdldHRlciIsICJtb2R1bGUgZ2V0dGVyIiwgImds
b2JhbDIgZ2V0dGVyIl0gZ290IFsibW9kdWxlIGdldHRlciIsICJtZW1vcnkgZ2V0dGVyIiwgIm1v
ZHVsZSBnZXR0ZXIiLCAiZ2xvYmFsMSBnZXR0ZXIiLCAibW9kdWxlMiBnZXR0ZXIiLCAiZ2xvYmFs
MyBnZXR0ZXIiLCAibW9kdWxlIGdldHRlciIsICJnbG9iYWwyIGdldHRlciJdKQotRkFJTCBnZXR0
ZXIgb3JkZXIgZm9yIGltcG9ydHMgb2JqZWN0OiBNb2R1bGUgYXJndW1lbnQgYXNzZXJ0X2FycmF5
X2VxdWFsczogZXhwZWN0ZWQgcHJvcGVydHkgMSB0byBiZSAiZ2xvYmFsMSBnZXR0ZXIiIGJ1dCBn
b3QgIm1lbW9yeSBnZXR0ZXIiIChleHBlY3RlZCBhcnJheSBbIm1vZHVsZSBnZXR0ZXIiLCAiZ2xv
YmFsMSBnZXR0ZXIiLCAibW9kdWxlMiBnZXR0ZXIiLCAiZ2xvYmFsMyBnZXR0ZXIiLCAibW9kdWxl
IGdldHRlciIsICJtZW1vcnkgZ2V0dGVyIiwgIm1vZHVsZSBnZXR0ZXIiLCAiZ2xvYmFsMiBnZXR0
ZXIiXSBnb3QgWyJtb2R1bGUgZ2V0dGVyIiwgIm1lbW9yeSBnZXR0ZXIiLCAibW9kdWxlIGdldHRl
ciIsICJnbG9iYWwxIGdldHRlciIsICJtb2R1bGUyIGdldHRlciIsICJnbG9iYWwzIGdldHRlciIs
ICJtb2R1bGUgZ2V0dGVyIiwgImdsb2JhbDIgZ2V0dGVyIl0pCitQQVNTIGdldHRlciBvcmRlciBm
b3IgaW1wb3J0cyBvYmplY3Q6IEJ1ZmZlclNvdXJjZSBhcmd1bWVudAorUEFTUyBnZXR0ZXIgb3Jk
ZXIgZm9yIGltcG9ydHMgb2JqZWN0OiBNb2R1bGUgYXJndW1lbnQKIFBBU1MgaW1wb3J0czogQnVm
ZmVyU291cmNlIGFyZ3VtZW50CiBQQVNTIGltcG9ydHM6IE1vZHVsZSBhcmd1bWVudAogUEFTUyBp
bXBvcnRzIHdpdGggZW1wdHkgbW9kdWxlIG5hbWVzOiBCdWZmZXJTb3VyY2UgYXJndW1lbnQKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Fz
bS9qc2FwaS9pbnN0YW5jZS9jb25zdHJ1Y3Rvci5hbnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL2luc3RhbmNlL2Nv
bnN0cnVjdG9yLmFueS1leHBlY3RlZC50eHQKaW5kZXggNTczOGQ3NDgyMmVhMTk5OWNlMDI1Mjky
M2M4NjIzMWY3YzkyOTQ4OC4uMTU0NGFkOTUyMmEwMzMxMmJjMjU0YTdhMjlhODY0ZTNkYjQzNWE2
NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93YXNtL2pzYXBpL2luc3RhbmNlL2NvbnN0cnVjdG9yLmFueS1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL2lu
c3RhbmNlL2NvbnN0cnVjdG9yLmFueS1leHBlY3RlZC50eHQKQEAgLTcsNyArNyw3IEBAIFBBU1Mg
Q2FsbGluZwogUEFTUyBFbXB0eSBtb2R1bGUgd2l0aG91dCBpbXBvcnRzIGFyZ3VtZW50CiBQQVNT
IEVtcHR5IG1vZHVsZSB3aXRoIHVuZGVmaW5lZCBpbXBvcnRzIGFyZ3VtZW50CiBQQVNTIEVtcHR5
IG1vZHVsZSB3aXRoIGVtcHR5IGltcG9ydHMgYXJndW1lbnQKLUZBSUwgZ2V0dGVyIG9yZGVyIGZv
ciBpbXBvcnRzIG9iamVjdCBhc3NlcnRfYXJyYXlfZXF1YWxzOiBleHBlY3RlZCBwcm9wZXJ0eSAx
IHRvIGJlICJnbG9iYWwxIGdldHRlciIgYnV0IGdvdCAibWVtb3J5IGdldHRlciIgKGV4cGVjdGVk
IGFycmF5IFsibW9kdWxlIGdldHRlciIsICJnbG9iYWwxIGdldHRlciIsICJtb2R1bGUyIGdldHRl
ciIsICJnbG9iYWwzIGdldHRlciIsICJtb2R1bGUgZ2V0dGVyIiwgIm1lbW9yeSBnZXR0ZXIiLCAi
bW9kdWxlIGdldHRlciIsICJnbG9iYWwyIGdldHRlciJdIGdvdCBbIm1vZHVsZSBnZXR0ZXIiLCAi
bWVtb3J5IGdldHRlciIsICJtb2R1bGUgZ2V0dGVyIiwgImdsb2JhbDEgZ2V0dGVyIiwgIm1vZHVs
ZTIgZ2V0dGVyIiwgImdsb2JhbDMgZ2V0dGVyIiwgIm1vZHVsZSBnZXR0ZXIiLCAiZ2xvYmFsMiBn
ZXR0ZXIiXSkKK1BBU1MgZ2V0dGVyIG9yZGVyIGZvciBpbXBvcnRzIG9iamVjdAogUEFTUyBpbXBv
cnRzCiBQQVNTIGltcG9ydHMgd2l0aCBlbXB0eSBtb2R1bGUgbmFtZXMKIFBBU1MgaW1wb3J0cyB3
aXRoIGVtcHR5IG5hbWVzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvaW5zdGFuY2UvY29uc3RydWN0b3IuYW55Lndvcmtl
ci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dhc20vanNhcGkvaW5zdGFuY2UvY29uc3RydWN0b3IuYW55Lndvcmtlci1leHBlY3RlZC50
eHQKaW5kZXggNTczOGQ3NDgyMmVhMTk5OWNlMDI1MjkyM2M4NjIzMWY3YzkyOTQ4OC4uMTU0NGFk
OTUyMmEwMzMxMmJjMjU0YTdhMjlhODY0ZTNkYjQzNWE2NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL2luc3RhbmNlL2Nv
bnN0cnVjdG9yLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9pbnN0YW5jZS9jb25zdHJ1Y3Rv
ci5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtNyw3ICs3LDcgQEAgUEFTUyBDYWxsaW5nCiBQ
QVNTIEVtcHR5IG1vZHVsZSB3aXRob3V0IGltcG9ydHMgYXJndW1lbnQKIFBBU1MgRW1wdHkgbW9k
dWxlIHdpdGggdW5kZWZpbmVkIGltcG9ydHMgYXJndW1lbnQKIFBBU1MgRW1wdHkgbW9kdWxlIHdp
dGggZW1wdHkgaW1wb3J0cyBhcmd1bWVudAotRkFJTCBnZXR0ZXIgb3JkZXIgZm9yIGltcG9ydHMg
b2JqZWN0IGFzc2VydF9hcnJheV9lcXVhbHM6IGV4cGVjdGVkIHByb3BlcnR5IDEgdG8gYmUgImds
b2JhbDEgZ2V0dGVyIiBidXQgZ290ICJtZW1vcnkgZ2V0dGVyIiAoZXhwZWN0ZWQgYXJyYXkgWyJt
b2R1bGUgZ2V0dGVyIiwgImdsb2JhbDEgZ2V0dGVyIiwgIm1vZHVsZTIgZ2V0dGVyIiwgImdsb2Jh
bDMgZ2V0dGVyIiwgIm1vZHVsZSBnZXR0ZXIiLCAibWVtb3J5IGdldHRlciIsICJtb2R1bGUgZ2V0
dGVyIiwgImdsb2JhbDIgZ2V0dGVyIl0gZ290IFsibW9kdWxlIGdldHRlciIsICJtZW1vcnkgZ2V0
dGVyIiwgIm1vZHVsZSBnZXR0ZXIiLCAiZ2xvYmFsMSBnZXR0ZXIiLCAibW9kdWxlMiBnZXR0ZXIi
LCAiZ2xvYmFsMyBnZXR0ZXIiLCAibW9kdWxlIGdldHRlciIsICJnbG9iYWwyIGdldHRlciJdKQor
UEFTUyBnZXR0ZXIgb3JkZXIgZm9yIGltcG9ydHMgb2JqZWN0CiBQQVNTIGltcG9ydHMKIFBBU1Mg
aW1wb3J0cyB3aXRoIGVtcHR5IG1vZHVsZSBuYW1lcwogUEFTUyBpbXBvcnRzIHdpdGggZW1wdHkg
bmFtZXMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2FzbS93ZWJhcGkvaW5zdGFudGlhdGVTdHJlYW1pbmcuYW55LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS93ZWJhcGkv
aW5zdGFudGlhdGVTdHJlYW1pbmcuYW55LWV4cGVjdGVkLnR4dAppbmRleCBjNDA4ZjBmZjNiZTdk
M2FhZDA5NmFmNWViMmIwY2YwZmE2OWEwYTY1Li5lOGY0NzhlZjJhNjBiZDY0ZjcxMWI3NjEwNTAx
Zjc5YmIyNDY5YTlmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dhc20vd2ViYXBpL2luc3RhbnRpYXRlU3RyZWFtaW5nLmFueS1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
YXNtL3dlYmFwaS9pbnN0YW50aWF0ZVN0cmVhbWluZy5hbnktZXhwZWN0ZWQudHh0CkBAIC0yLDcg
KzIsNyBAQAogUEFTUyBFbXB0eSBtb2R1bGUgd2l0aG91dCBpbXBvcnRzIGFyZ3VtZW50CiBQQVNT
IEVtcHR5IG1vZHVsZSB3aXRoIHVuZGVmaW5lZCBpbXBvcnRzIGFyZ3VtZW50CiBQQVNTIEVtcHR5
IG1vZHVsZSB3aXRoIGVtcHR5IGltcG9ydHMgYXJndW1lbnQKLUZBSUwgZ2V0dGVyIG9yZGVyIGZv
ciBpbXBvcnRzIG9iamVjdCBhc3NlcnRfYXJyYXlfZXF1YWxzOiBleHBlY3RlZCBwcm9wZXJ0eSAx
IHRvIGJlICJnbG9iYWwxIGdldHRlciIgYnV0IGdvdCAibWVtb3J5IGdldHRlciIgKGV4cGVjdGVk
IGFycmF5IFsibW9kdWxlIGdldHRlciIsICJnbG9iYWwxIGdldHRlciIsICJtb2R1bGUyIGdldHRl
ciIsICJnbG9iYWwzIGdldHRlciIsICJtb2R1bGUgZ2V0dGVyIiwgIm1lbW9yeSBnZXR0ZXIiLCAi
bW9kdWxlIGdldHRlciIsICJnbG9iYWwyIGdldHRlciJdIGdvdCBbIm1vZHVsZSBnZXR0ZXIiLCAi
bWVtb3J5IGdldHRlciIsICJtb2R1bGUgZ2V0dGVyIiwgImdsb2JhbDEgZ2V0dGVyIiwgIm1vZHVs
ZTIgZ2V0dGVyIiwgImdsb2JhbDMgZ2V0dGVyIiwgIm1vZHVsZSBnZXR0ZXIiLCAiZ2xvYmFsMiBn
ZXR0ZXIiXSkKK1BBU1MgZ2V0dGVyIG9yZGVyIGZvciBpbXBvcnRzIG9iamVjdAogUEFTUyBpbXBv
cnRzCiBQQVNTIGltcG9ydHMgd2l0aCBlbXB0eSBtb2R1bGUgbmFtZXMKIFBBU1MgaW1wb3J0cyB3
aXRoIGVtcHR5IG5hbWVzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dhc20vd2ViYXBpL2luc3RhbnRpYXRlU3RyZWFtaW5nLmFueS53b3Jr
ZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93YXNtL3dlYmFwaS9pbnN0YW50aWF0ZVN0cmVhbWluZy5hbnkud29ya2VyLWV4cGVjdGVk
LnR4dAppbmRleCBjNDA4ZjBmZjNiZTdkM2FhZDA5NmFmNWViMmIwY2YwZmE2OWEwYTY1Li5lOGY0
NzhlZjJhNjBiZDY0ZjcxMWI3NjEwNTAxZjc5YmIyNDY5YTlmIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vd2ViYXBpL2luc3RhbnRp
YXRlU3RyZWFtaW5nLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS93ZWJhcGkvaW5zdGFudGlhdGVTdHJl
YW1pbmcuYW55Lndvcmtlci1leHBlY3RlZC50eHQKQEAgLTIsNyArMiw3IEBACiBQQVNTIEVtcHR5
IG1vZHVsZSB3aXRob3V0IGltcG9ydHMgYXJndW1lbnQKIFBBU1MgRW1wdHkgbW9kdWxlIHdpdGgg
dW5kZWZpbmVkIGltcG9ydHMgYXJndW1lbnQKIFBBU1MgRW1wdHkgbW9kdWxlIHdpdGggZW1wdHkg
aW1wb3J0cyBhcmd1bWVudAotRkFJTCBnZXR0ZXIgb3JkZXIgZm9yIGltcG9ydHMgb2JqZWN0IGFz
c2VydF9hcnJheV9lcXVhbHM6IGV4cGVjdGVkIHByb3BlcnR5IDEgdG8gYmUgImdsb2JhbDEgZ2V0
dGVyIiBidXQgZ290ICJtZW1vcnkgZ2V0dGVyIiAoZXhwZWN0ZWQgYXJyYXkgWyJtb2R1bGUgZ2V0
dGVyIiwgImdsb2JhbDEgZ2V0dGVyIiwgIm1vZHVsZTIgZ2V0dGVyIiwgImdsb2JhbDMgZ2V0dGVy
IiwgIm1vZHVsZSBnZXR0ZXIiLCAibWVtb3J5IGdldHRlciIsICJtb2R1bGUgZ2V0dGVyIiwgImds
b2JhbDIgZ2V0dGVyIl0gZ290IFsibW9kdWxlIGdldHRlciIsICJtZW1vcnkgZ2V0dGVyIiwgIm1v
ZHVsZSBnZXR0ZXIiLCAiZ2xvYmFsMSBnZXR0ZXIiLCAibW9kdWxlMiBnZXR0ZXIiLCAiZ2xvYmFs
MyBnZXR0ZXIiLCAibW9kdWxlIGdldHRlciIsICJnbG9iYWwyIGdldHRlciJdKQorUEFTUyBnZXR0
ZXIgb3JkZXIgZm9yIGltcG9ydHMgb2JqZWN0CiBQQVNTIGltcG9ydHMKIFBBU1MgaW1wb3J0cyB3
aXRoIGVtcHR5IG1vZHVsZSBuYW1lcwogUEFTUyBpbXBvcnRzIHdpdGggZW1wdHkgbmFtZXMK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447280</attachid>
            <date>2021-12-15 13:02:19 -0800</date>
            <delta_ts>2021-12-15 22:39:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234116-20211215130219.patch</filename>
            <type>text/plain</type>
            <size>28888</size>
            <attacher name="Asumu Takikawa">asumu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3MDg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
MmU1OWI2NzcwNTY0MGFiMzBiMGUyNjlmMmRhN2FkYzNjZmZmOTcwLi4xMDRlOWU4YTZkMzQxYjE2
NWQxMDRkMGIxZmRjYTQzYzQ1ZjhhNmI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAyMS0xMi0xNSAgQXN1bXUgVGFraWthd2EgIDxhc3VtdUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtXYXNtXSBVbmlmeSBtZW1vcnkgaW1wb3J0IGhhbmRsaW5nIGluIG1vZHVs
ZSBsb2FkZXIgYW5kIEpTIGNhc2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzQxMTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBNb3ZlcyB0aGUgbWVtb3J5IGltcG9ydCBoYW5kbGluZyBjb2RlIHRvIHRo
ZSBXYXNtIG1vZHVsZSByZWNvcmQgYW5kCisgICAgICAgIHVzZSB0aGUgc3RyYXRlZ3kgdXNlZCBi
eSB0aGUgbW9kdWxlIGxvYWRlciB0byBoYW5kbGUgbWVtb3J5IGluIGFsbAorICAgICAgICBjYXNl
cy4KKworICAgICAgICAqIHdhc20vV2FzbU1vZHVsZS5jcHA6CisgICAgICAgIChKU0M6Oldhc206
Ok1vZHVsZTo6Y29weUluaXRpYWxDb2RlQmxvY2tUb0FsbE1lbW9yeU1vZGVzKToKKyAgICAgICAg
KiB3YXNtL2pzL0pTV2ViQXNzZW1ibHlJbnN0YW5jZS5jcHA6CisgICAgICAgIChKU0M6OkpTV2Vi
QXNzZW1ibHlJbnN0YW5jZTo6ZmluYWxpemVDcmVhdGlvbik6CisgICAgICAgIChKU0M6OkpTV2Vi
QXNzZW1ibHlJbnN0YW5jZTo6dHJ5Q3JlYXRlKToKKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2Vt
Ymx5TW9kdWxlUmVjb3JkLmNwcDoKKyAgICAgICAgKEpTQzo6V2ViQXNzZW1ibHlNb2R1bGVSZWNv
cmQ6OmluaXRpYWxpemVJbXBvcnRzQW5kRXhwb3J0cyk6CisKIDIwMjEtMTItMTQgIFJvc3MgS2ly
c2xpbmcgIDxyb3NzLmtpcnNsaW5nQHNvbnkuY29tPgogCiAgICAgICAgIFtKU0NdIE9wSW5zdGFu
Y2VvZkN1c3RvbSBzaG91bGQgYmUgaW4gQ29tbW9uU2xvd1BhdGhzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTW9kdWxlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21Nb2R1bGUuY3BwCmluZGV4IGQzOGRiZTc0NDlkOGU4NTU3NjVhMDM1N2Q3
OGU5NDlhODVkYjAzNWYuLmNiYjMyMDFlYmQ4NWZiZDkzYWQyZTBmNTE5MzVlMTg2ODBiYTM0MzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Nb2R1bGUuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Nb2R1bGUuY3BwCkBAIC0xMTMsMTEg
KzExMywxNyBAQCB2b2lkIE1vZHVsZTo6Y29tcGlsZUFzeW5jKENvbnRleHQqIGNvbnRleHQsIE1l
bW9yeU1vZGUgbW9kZSwgQ29kZUJsb2NrOjpBc3luY0NvbQogCiB2b2lkIE1vZHVsZTo6Y29weUlu
aXRpYWxDb2RlQmxvY2tUb0FsbE1lbW9yeU1vZGVzKE1lbW9yeU1vZGUgaW5pdGlhbE1vZGUpCiB7
CisgICAgTG9ja2VyIGxvY2tlciB7IG1fbG9jayB9OwogICAgIEFTU0VSVChtX2NvZGVCbG9ja3Nb
c3RhdGljX2Nhc3Q8dWludDhfdD4oaW5pdGlhbE1vZGUpXSk7CiAgICAgY29uc3QgQ29kZUJsb2Nr
JiBpbml0aWFsQmxvY2sgPSAqbV9jb2RlQmxvY2tzW3N0YXRpY19jYXN0PHVpbnQ4X3Q+KGluaXRp
YWxNb2RlKV07CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IFdhc206Ok51bWJlck9mTWVt
b3J5TW9kZXM7IGkrKykgewogICAgICAgICBpZiAoaSA9PSBzdGF0aWNfY2FzdDx1aW50OF90Pihp
bml0aWFsTW9kZSkpCiAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgUmVmUHRyPENvZGVC
bG9jaz4gY29kZUJsb2NrOworICAgICAgICBjb2RlQmxvY2sgPSBtX2NvZGVCbG9ja3NbaV07Cisg
ICAgICAgIC8vIFdlIHNob3VsZCBvbmx5IHRyeSB0byBjb3B5IHRoZSBibG9jayBoZXJlIGlmIGl0
IGhhc24ndCBhbHJlYWR5IGJlZW4gY29tcGlsZWQuCisgICAgICAgIGlmIChjb2RlQmxvY2sgJiYg
KCFjb2RlQmxvY2stPmNvbXBpbGF0aW9uRmluaXNoZWQoKSB8fCBjb2RlQmxvY2stPnJ1bm5hYmxl
KCkpKQorICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIFJlZjxDb2RlQmxvY2s+IG5ld0Js
b2NrID0gQ29kZUJsb2NrOjpjcmVhdGVGcm9tRXhpc3Rpbmcoc3RhdGljX2Nhc3Q8TWVtb3J5TW9k
ZT4oaSksIGluaXRpYWxCbG9jayk7CiAgICAgICAgIG1fY29kZUJsb2Nrc1tpXSA9IFdURk1vdmUo
bmV3QmxvY2spOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L2pzL0pTV2ViQXNzZW1ibHlJbnN0YW5jZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9KU1dlYkFzc2VtYmx5SW5zdGFuY2UuY3BwCmluZGV4IDkyZTM5MjFlYzdkODllYWQ2ZmJh
ZGU3MWE1MTZlNjNmM2EyYmZlMjcuLjA0MjM0MzVmMzk5MmVkNWRjYmI2NzZmN2EwNzE4ZmViOWE0
MzVmMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNz
ZW1ibHlJbnN0YW5jZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNX
ZWJBc3NlbWJseUluc3RhbmNlLmNwcApAQCAtMTM1LDExICsxMzUsMTMgQEAgdm9pZCBKU1dlYkFz
c2VtYmx5SW5zdGFuY2U6OmZpbmFsaXplQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWMKICAgICAgICAgbV9tb2R1bGUtPnNldENvZGVCbG9jayh2bSwgbWVtb3J5TW9k
ZSgpLCBqc0NvZGVCbG9jayk7CiAgICAgfQogCi0gICAgLy8gSW4gdGhlIG1vZHVsZSBsb2FkZXIg
Y2FzZSwgd2Ugd2lsbCBpbml0aWFsaXplIGFsbCBtZW1vcnkgbW9kZXMgd2l0aCB0aGUgaW5pdGlh
bCBMTEludCBjb21waWxhdGlvbgorICAgIC8vIFdoZW4gbWVtb3J5IGlzIGltcG9ydGVkLCB3ZSB3
aWxsIGluaXRpYWxpemUgYWxsIG1lbW9yeSBtb2RlcyB3aXRoIHRoZSBpbml0aWFsIExMSW50IGNv
bXBpbGF0aW9uCiAgICAgLy8gcmVzdWx0cywgc28gdGhhdCBsYXRlciB3aGVuIG1lbW9yeSBpbXBv
cnRzIGJlY29tZSBhdmFpbGFibGUsIHRoZSBhcHByb3ByaWF0ZSBDb2RlQmxvY2sgY2FuIGJlIHVz
ZWQuCiAgICAgLy8gSWYgTExJbnQgaXMgZGlzYWJsZWQsIHdlIGluc3RlYWQgZGVmZXIgY29tcGls
YXRpb24gdG8gbW9kdWxlIGV2YWx1YXRpb24uCisgICAgLy8gSWYgdGhlIGNvZGUgaXMgYWxyZWFk
eSBjb21waWxlZCwgZS5nLiB0aGUgbW9kdWxlIHdhcyBhbHJlYWR5IGluc3RhbnRpYXRlZCBiZWZv
cmUsIHdlIGRvIG5vdCByZS1pbml0aWFsaXplCisgICAgLy8gYnV0IGRvIGNoZWNrIGlmIEpTV2Vi
QXNzZW1ibHlDb2RlQmxvY2tzIG5lZWQgdG8gYmUgY3JlYXRlZCBmb3IgYWxsIG1vZGVzLgogICAg
IGJvb2wgaGFzTWVtb3J5SW1wb3J0ID0gbW9kdWxlKCktPm1vZHVsZUluZm9ybWF0aW9uKCkubWVt
b3J5LmlzSW1wb3J0KCk7Ci0gICAgaWYgKGNyZWF0aW9uTW9kZSA9PSBXYXNtOjpDcmVhdGlvbk1v
ZGU6OkZyb21Nb2R1bGVMb2FkZXIgJiYgT3B0aW9uczo6dXNlV2FzbUxMSW50KCkgJiYgaGFzTWVt
b3J5SW1wb3J0KSB7CisgICAgaWYgKE9wdGlvbnM6OnVzZVdhc21MTEludCgpICYmIGhhc01lbW9y
eUltcG9ydCkgewogICAgICAgICBXYXNtOjpNZW1vcnlNb2RlIGluaXRpYWxNb2RlID0gV2FzbTo6
TWVtb3J5TW9kZTo6Qm91bmRzQ2hlY2tpbmc7CiAgICAgICAgIEFTU0VSVChtZW1vcnlNb2RlKCkg
PT0gaW5pdGlhbE1vZGUpOwogICAgICAgICBtb2R1bGUoKS0+bW9kdWxlKCkuY29weUluaXRpYWxD
b2RlQmxvY2tUb0FsbE1lbW9yeU1vZGVzKGluaXRpYWxNb2RlKTsKQEAgLTE0OSwxMiArMTUxLDE4
IEBAIHZvaWQgSlNXZWJBc3NlbWJseUluc3RhbmNlOjpmaW5hbGl6ZUNyZWF0aW9uKFZNJiB2bSwg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAg
ICAgICAgICAgICBXYXNtOjpNZW1vcnlNb2RlIG1lbW9yeU1vZGUgPSBzdGF0aWNfY2FzdDxXYXNt
OjpNZW1vcnlNb2RlPihpKTsKICAgICAgICAgICAgIFJlZlB0cjxXYXNtOjpDb2RlQmxvY2s+IGNv
ZGVCbG9jayA9IG1vZHVsZSgpLT5tb2R1bGUoKS5jb2RlQmxvY2tGb3IobWVtb3J5TW9kZSk7Ci0g
ICAgICAgICAgICBqc0NvZGVCbG9jayA9IEpTV2ViQXNzZW1ibHlDb2RlQmxvY2s6OmNyZWF0ZSh2
bSwgY29kZUJsb2NrLnJlbGVhc2VOb25OdWxsKCksIG1vZHVsZSgpLT5tb2R1bGUoKS5tb2R1bGVJ
bmZvcm1hdGlvbigpKTsKLSAgICAgICAgICAgIGlmIChVTkxJS0VMWSghanNDb2RlQmxvY2stPnJ1
bm5hYmxlKCkpKSB7Ci0gICAgICAgICAgICAgICAgdGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0
LCBzY29wZSwgY3JlYXRlSlNXZWJBc3NlbWJseUxpbmtFcnJvcihnbG9iYWxPYmplY3QsIHZtLCBq
c0NvZGVCbG9jay0+ZXJyb3JNZXNzYWdlKCkpKTsKLSAgICAgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgICAgICBqc0NvZGVCbG9jayA9IG1fbW9kdWxlLT5jb2RlQmxvY2sobWVtb3J5TW9kZSk7
CisgICAgICAgICAgICBpZiAoanNDb2RlQmxvY2spIHsKKyAgICAgICAgICAgICAgICBBU1NFUlQo
JmpzQ29kZUJsb2NrLT5jb2RlQmxvY2soKSA9PSBjb2RlQmxvY2spOworICAgICAgICAgICAgICAg
IG1fY29kZUJsb2NrLnNldCh2bSwgdGhpcywganNDb2RlQmxvY2spOworICAgICAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgICAgICBqc0NvZGVCbG9jayA9IEpTV2ViQXNzZW1ibHlDb2RlQmxv
Y2s6OmNyZWF0ZSh2bSwgY29kZUJsb2NrLnJlbGVhc2VOb25OdWxsKCksIG1vZHVsZSgpLT5tb2R1
bGUoKS5tb2R1bGVJbmZvcm1hdGlvbigpKTsKKyAgICAgICAgICAgICAgICBpZiAoVU5MSUtFTFko
IWpzQ29kZUJsb2NrLT5ydW5uYWJsZSgpKSkgeworICAgICAgICAgICAgICAgICAgICB0aHJvd0V4
Y2VwdGlvbihnbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVKU1dlYkFzc2VtYmx5TGlua0Vycm9y
KGdsb2JhbE9iamVjdCwgdm0sIGpzQ29kZUJsb2NrLT5lcnJvck1lc3NhZ2UoKSkpOworICAgICAg
ICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IG1fbW9kdWxlLT5zZXRDb2RlQmxvY2sodm0sIG1lbW9yeU1vZGUsIGpzQ29kZUJsb2NrKTsKICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIG1fbW9kdWxlLT5zZXRDb2RlQmxvY2sodm0sIG1lbW9y
eU1vZGUsIGpzQ29kZUJsb2NrKTsKICAgICAgICAgfQogICAgIH0KIApAQCAtMTk2LDEwICsyMDQs
NiBAQCBKU1dlYkFzc2VtYmx5SW5zdGFuY2UqIEpTV2ViQXNzZW1ibHlJbnN0YW5jZTo6dHJ5Q3Jl
YXRlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqCiAgICAgaWYgKCFnbG9iYWxPYmplY3QtPndlYkFz
c2VtYmx5RW5hYmxlZCgpKQogICAgICAgICByZXR1cm4gZXhjZXB0aW9uKGNyZWF0ZUV2YWxFcnJv
cihnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+d2ViQXNzZW1ibHlEaXNhYmxlZEVycm9yTWVz
c2FnZSgpKSk7CiAKLSAgICBhdXRvIGltcG9ydEZhaWxNZXNzYWdlID0gWyZdIChjb25zdCBXYXNt
OjpJbXBvcnQmIGltcG9ydCwgY29uc3QgY2hhciogYmVmb3JlLCBjb25zdCBjaGFyKiBhZnRlcikg
ewotICAgICAgICByZXR1cm4gbWFrZVN0cmluZyhiZWZvcmUsICIgIiwgU3RyaW5nOjpmcm9tVVRG
OChpbXBvcnQubW9kdWxlKSwgIjoiLCBTdHJpbmc6OmZyb21VVEY4KGltcG9ydC5maWVsZCksICIg
IiwgYWZ0ZXIpOwotICAgIH07Ci0KICAgICBXZWJBc3NlbWJseU1vZHVsZVJlY29yZCogbW9kdWxl
UmVjb3JkID0gV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQ6OmNyZWF0ZShnbG9iYWxPYmplY3QsIHZt
LCBnbG9iYWxPYmplY3QtPndlYkFzc2VtYmx5TW9kdWxlUmVjb3JkU3RydWN0dXJlKCksIG1vZHVs
ZUtleSwgbW9kdWxlSW5mb3JtYXRpb24pOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dT
Y29wZSwgbnVsbHB0cik7CiAKQEAgLTIxMywxMCArMjE3LDYgQEAgSlNXZWJBc3NlbWJseUluc3Rh
bmNlKiBKU1dlYkFzc2VtYmx5SW5zdGFuY2U6OnRyeUNyZWF0ZShWTSYgdm0sIEpTR2xvYmFsT2Jq
ZWN0KgogICAgIGpzSW5zdGFuY2UtPmZpbmlzaENyZWF0aW9uKHZtLCBqc01vZHVsZSwgbW9kdWxl
UmVjb3JkKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIG51bGxwdHIpOwog
Ci0gICAgLy8gTGV0IGZ1bmNzLCBtZW1vcmllcyBhbmQgdGFibGVzIGJlIGluaXRpYWxseS1lbXB0
eSBsaXN0cyBvZiBjYWxsYWJsZSBKYXZhU2NyaXB0IG9iamVjdHMsIFdlYkFzc2VtYmx5Lk1lbW9y
eSBvYmplY3RzIGFuZCBXZWJBc3NlbWJseS5UYWJsZSBvYmplY3RzLCByZXNwZWN0aXZlbHkuCi0g
ICAgLy8gTGV0IGltcG9ydHMgYmUgYW4gaW5pdGlhbGx5LWVtcHR5IGxpc3Qgb2YgZXh0ZXJuYWwg
dmFsdWVzLgotICAgIGJvb2wgaGFzTWVtb3J5SW1wb3J0ID0gZmFsc2U7Ci0KICAgICBpZiAoY3Jl
YXRpb25Nb2RlID09IFdhc206OkNyZWF0aW9uTW9kZTo6RnJvbUpTKSB7CiAgICAgICAgIC8vIElm
IHRoZSBsaXN0IG9mIG1vZHVsZS5pbXBvcnRzIGlzIG5vdCBlbXB0eSBhbmQgVHlwZShpbXBvcnRP
YmplY3QpIGlzIG5vdCBPYmplY3QsIGEgVHlwZUVycm9yIGlzIHRocm93bi4KICAgICAgICAgaWYg
KG1vZHVsZUluZm9ybWF0aW9uLmltcG9ydHMuc2l6ZSgpICYmICFpbXBvcnRPYmplY3QpCkBAIC0y
MzQsMTEyICsyMzQsMzEgQEAgSlNXZWJBc3NlbWJseUluc3RhbmNlKiBKU1dlYkFzc2VtYmx5SW5z
dGFuY2U6OnRyeUNyZWF0ZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KgogICAgICAgICAgICAgZmll
bGROYW1lLAogICAgICAgICAgICAgSWRlbnRpZmllcjo6ZnJvbVVpZChQcml2YXRlTmFtZShQcml2
YXRlTmFtZTo6RGVzY3JpcHRpb24sICJXZWJBc3NlbWJseUltcG9ydE5hbWUiKSksCiAgICAgICAg
IH0pOwotCi0gICAgICAgIC8vIFZhbGlkYXRpb24gZm9yIG1vc3QgdHlwZXMgYXJlIGRvbmUgaW4g
V2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQ6OmluaXRpYWxpemVJbXBvcnRzQW5kRXhwb3J0cyBhbmQg
c2tpcHBlZCBoZXJlLgotICAgICAgICAvLyBFdmVudHVhbGx5IHdlIHdpbGwgbW92ZSBhbGwgdGhl
IGxpbmtpbmcgY29kZSBoZXJlIHRvIFdlYkFzc2VtYmx5TW9kdWxlUmVjb3JkOjppbml0aWFsaXpl
SW1wb3J0c0FuZEV4cG9ydHMuCi0gICAgICAgIHN3aXRjaCAoaW1wb3J0LmtpbmQpIHsKLSAgICAg
ICAgY2FzZSBXYXNtOjpFeHRlcm5hbEtpbmQ6OkZ1bmN0aW9uOgotICAgICAgICBjYXNlIFdhc206
OkV4dGVybmFsS2luZDo6R2xvYmFsOgotICAgICAgICBjYXNlIFdhc206OkV4dGVybmFsS2luZDo6
VGFibGU6Ci0gICAgICAgIGNhc2UgV2FzbTo6RXh0ZXJuYWxLaW5kOjpFeGNlcHRpb246Ci0gICAg
ICAgICAgICBjb250aW51ZTsKLSAgICAgICAgY2FzZSBXYXNtOjpFeHRlcm5hbEtpbmQ6Ok1lbW9y
eToKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0KLSAgICAgICAgSlNWYWx1ZSB2YWx1
ZTsKLSAgICAgICAgaWYgKGNyZWF0aW9uTW9kZSA9PSBXYXNtOjpDcmVhdGlvbk1vZGU6OkZyb21K
UykgewotICAgICAgICAgICAgLy8gMS4gTGV0IG8gYmUgdGhlIHJlc3VsdGFudCB2YWx1ZSBvZiBw
ZXJmb3JtaW5nIEdldChpbXBvcnRPYmplY3QsIGkubW9kdWxlX25hbWUpLgotICAgICAgICAgICAg
SlNWYWx1ZSBpbXBvcnRNb2R1bGVWYWx1ZSA9IGltcG9ydE9iamVjdC0+Z2V0KGdsb2JhbE9iamVj
dCwgbW9kdWxlTmFtZSk7Ci0gICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2Nv
cGUsIG51bGxwdHIpOwotICAgICAgICAgICAgLy8gMi4gSWYgVHlwZShvKSBpcyBub3QgT2JqZWN0
LCB0aHJvdyBhIFR5cGVFcnJvci4KLSAgICAgICAgICAgIGlmICghaW1wb3J0TW9kdWxlVmFsdWUu
aXNPYmplY3QoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZXhjZXB0aW9uKGNyZWF0ZVR5cGVF
cnJvcihnbG9iYWxPYmplY3QsIGltcG9ydEZhaWxNZXNzYWdlKGltcG9ydCwgImltcG9ydCIsICJt
dXN0IGJlIGFuIG9iamVjdCIpLCBkZWZhdWx0U291cmNlQXBwZW5kZXIsIHJ1bnRpbWVUeXBlRm9y
VmFsdWUodm0sIGltcG9ydE1vZHVsZVZhbHVlKSkpOwotCi0gICAgICAgICAgICAvLyAzLiBMZXQg
diBiZSB0aGUgdmFsdWUgb2YgcGVyZm9ybWluZyBHZXQobywgaS5pdGVtX25hbWUpCi0gICAgICAg
ICAgICBKU09iamVjdCogb2JqZWN0ID0ganNDYXN0PEpTT2JqZWN0Kj4oaW1wb3J0TW9kdWxlVmFs
dWUpOwotICAgICAgICAgICAgdmFsdWUgPSBvYmplY3QtPmdldChnbG9iYWxPYmplY3QsIGZpZWxk
TmFtZSk7Ci0gICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIG51bGxw
dHIpOwotICAgICAgICB9Ci0gICAgICAgIGlmICghdmFsdWUpCi0gICAgICAgICAgICB2YWx1ZSA9
IGpzVW5kZWZpbmVkKCk7Ci0KLSAgICAgICAgc3dpdGNoIChpbXBvcnQua2luZCkgewotICAgICAg
ICBjYXNlIFdhc206OkV4dGVybmFsS2luZDo6RnVuY3Rpb246Ci0gICAgICAgIGNhc2UgV2FzbTo6
RXh0ZXJuYWxLaW5kOjpHbG9iYWw6Ci0gICAgICAgIGNhc2UgV2FzbTo6RXh0ZXJuYWxLaW5kOjpU
YWJsZToKLSAgICAgICAgY2FzZSBXYXNtOjpFeHRlcm5hbEtpbmQ6OkV4Y2VwdGlvbjoKLSAgICAg
ICAgICAgIGJyZWFrOwotCi0gICAgICAgIGNhc2UgV2FzbTo6RXh0ZXJuYWxLaW5kOjpNZW1vcnk6
IHsKLSAgICAgICAgICAgIC8vIDYuIElmIGkgaXMgYSBtZW1vcnkgaW1wb3J0OgotICAgICAgICAg
ICAgUkVMRUFTRV9BU1NFUlQoIWhhc01lbW9yeUltcG9ydCk7IC8vIFRoaXMgc2hvdWxkIGJlIGd1
YXJhbnRlZWQgYnkgYSB2YWxpZGF0aW9uIGZhaWx1cmUuCi0gICAgICAgICAgICBSRUxFQVNFX0FT
U0VSVChtb2R1bGVJbmZvcm1hdGlvbi5tZW1vcnkpOwotICAgICAgICAgICAgaGFzTWVtb3J5SW1w
b3J0ID0gdHJ1ZTsKLSAgICAgICAgICAgIC8vIEZvciB0aGUgbW9kdWxlIGxvYWRlciwgd2UgY2Fu
bm90IGluaXRpYWxpemUgdGhlIG1lbW9yeSBoZXJlIHNvIHdlIGRlbGF5IHRoaXMKLSAgICAgICAg
ICAgIC8vIHVudGlsIFdlYkFzc2VtYmx5TW9kdWxlUmVjb3JkJ3MgaW5pdGlhbGl6YXRpb24gb3Bl
cmF0aW9uLgotICAgICAgICAgICAgaWYgKGNyZWF0aW9uTW9kZSA9PSBXYXNtOjpDcmVhdGlvbk1v
ZGU6OkZyb21Nb2R1bGVMb2FkZXIpCi0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAg
ICBKU1dlYkFzc2VtYmx5TWVtb3J5KiBtZW1vcnkgPSBqc0R5bmFtaWNDYXN0PEpTV2ViQXNzZW1i
bHlNZW1vcnkqPih2bSwgdmFsdWUpOwotICAgICAgICAgICAgLy8gaS4gSWYgdiBpcyBub3QgYSBX
ZWJBc3NlbWJseS5NZW1vcnkgb2JqZWN0LCB0aHJvdyBhIFdlYkFzc2VtYmx5LkxpbmtFcnJvci4K
LSAgICAgICAgICAgIGlmICghbWVtb3J5KQotICAgICAgICAgICAgICAgIHJldHVybiBleGNlcHRp
b24oY3JlYXRlSlNXZWJBc3NlbWJseUxpbmtFcnJvcihnbG9iYWxPYmplY3QsIHZtLCBpbXBvcnRG
YWlsTWVzc2FnZShpbXBvcnQsICJNZW1vcnkgaW1wb3J0IiwgImlzIG5vdCBhbiBpbnN0YW5jZSBv
ZiBXZWJBc3NlbWJseS5NZW1vcnkiKSkpOwotCi0gICAgICAgICAgICBXYXNtOjpQYWdlQ291bnQg
ZGVjbGFyZWRJbml0aWFsID0gbW9kdWxlSW5mb3JtYXRpb24ubWVtb3J5LmluaXRpYWwoKTsKLSAg
ICAgICAgICAgIFdhc206OlBhZ2VDb3VudCBpbXBvcnRlZEluaXRpYWwgPSBtZW1vcnktPm1lbW9y
eSgpLmluaXRpYWwoKTsKLSAgICAgICAgICAgIGlmIChpbXBvcnRlZEluaXRpYWwgPCBkZWNsYXJl
ZEluaXRpYWwpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGV4Y2VwdGlvbihjcmVhdGVKU1dlYkFz
c2VtYmx5TGlua0Vycm9yKGdsb2JhbE9iamVjdCwgdm0sIGltcG9ydEZhaWxNZXNzYWdlKGltcG9y
dCwgIk1lbW9yeSBpbXBvcnQiLCAicHJvdmlkZWQgYW4gJ2luaXRpYWwnIHRoYXQgaXMgc21hbGxl
ciB0aGFuIHRoZSBtb2R1bGUncyBkZWNsYXJlZCAnaW5pdGlhbCcgaW1wb3J0IG1lbW9yeSBzaXpl
IikpKTsKLQotICAgICAgICAgICAgaWYgKFdhc206OlBhZ2VDb3VudCBkZWNsYXJlZE1heGltdW0g
PSBtb2R1bGVJbmZvcm1hdGlvbi5tZW1vcnkubWF4aW11bSgpKSB7Ci0gICAgICAgICAgICAgICAg
V2FzbTo6UGFnZUNvdW50IGltcG9ydGVkTWF4aW11bSA9IG1lbW9yeS0+bWVtb3J5KCkubWF4aW11
bSgpOwotICAgICAgICAgICAgICAgIGlmICghaW1wb3J0ZWRNYXhpbXVtKQotICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gZXhjZXB0aW9uKGNyZWF0ZUpTV2ViQXNzZW1ibHlMaW5rRXJyb3IoZ2xv
YmFsT2JqZWN0LCB2bSwgaW1wb3J0RmFpbE1lc3NhZ2UoaW1wb3J0LCAiTWVtb3J5IGltcG9ydCIs
ICJkaWQgbm90IGhhdmUgYSAnbWF4aW11bScgYnV0IHRoZSBtb2R1bGUgcmVxdWlyZXMgdGhhdCBp
dCBkb2VzIikpKTsKLQotICAgICAgICAgICAgICAgIGlmIChpbXBvcnRlZE1heGltdW0gPiBkZWNs
YXJlZE1heGltdW0pCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiBleGNlcHRpb24oY3JlYXRl
SlNXZWJBc3NlbWJseUxpbmtFcnJvcihnbG9iYWxPYmplY3QsIHZtLCBpbXBvcnRGYWlsTWVzc2Fn
ZShpbXBvcnQsICJNZW1vcnkgaW1wb3J0IiwgInByb3ZpZGVkIGEgJ21heGltdW0nIHRoYXQgaXMg
bGFyZ2VyIHRoYW4gdGhlIG1vZHVsZSdzIGRlY2xhcmVkICdtYXhpbXVtJyBpbXBvcnQgbWVtb3J5
IHNpemUiKSkpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiAoKG1lbW9yeS0+bWVt
b3J5KCkuc2hhcmluZ01vZGUoKSA9PSBXYXNtOjpNZW1vcnlTaGFyaW5nTW9kZTo6U2hhcmVkKSAh
PSBtb2R1bGVJbmZvcm1hdGlvbi5tZW1vcnkuaXNTaGFyZWQoKSkKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gZXhjZXB0aW9uKGNyZWF0ZUpTV2ViQXNzZW1ibHlMaW5rRXJyb3IoZ2xvYmFsT2JqZWN0
LCB2bSwgaW1wb3J0RmFpbE1lc3NhZ2UoaW1wb3J0LCAiTWVtb3J5IGltcG9ydCIsICJwcm92aWRl
ZCBhICdzaGFyZWQnIHRoYXQgaXMgZGlmZmVybnQgZnJvbSB0aGUgbW9kdWxlJ3MgZGVjbGFyZWQg
J3NoYXJlZCcgaW1wb3J0IG1lbW9yeSBhdHRyaWJ1dGUiKSkpOwotCi0gICAgICAgICAgICAvLyBp
aS4gQXBwZW5kIHYgdG8gbWVtb3JpZXMuCi0gICAgICAgICAgICAvLyBpaWkuIEFwcGVuZCB2Lltb
TWVtb3J5XV0gdG8gaW1wb3J0cy4KLSAgICAgICAgICAgIGpzSW5zdGFuY2UtPnNldE1lbW9yeSh2
bSwgbWVtb3J5KTsKLSAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwg
bnVsbHB0cik7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICB9CiAgICAg
fQogICAgIEFTU0VSVChtb2R1bGVSZWNvcmQtPmltcG9ydEVudHJpZXMoKS5zaXplKCkgPT0gbW9k
dWxlSW5mb3JtYXRpb24uaW1wb3J0cy5zaXplKCkpOwogCi0gICAgewotICAgICAgICBpZiAoISFt
b2R1bGVJbmZvcm1hdGlvbi5tZW1vcnkgJiYgbW9kdWxlSW5mb3JtYXRpb24ubWVtb3J5LmlzSW1w
b3J0KCkpIHsKLSAgICAgICAgICAgIC8vIFdlIHNob3VsZCBlaXRoZXIgaGF2ZSBhIE1lbW9yeSBp
bXBvcnQgb3Igd2Ugc2hvdWxkIGhhdmUgdGhyb3duIGFuIGV4Y2VwdGlvbi4KLSAgICAgICAgICAg
IFJFTEVBU0VfQVNTRVJUKGhhc01lbW9yeUltcG9ydCk7Ci0gICAgICAgIH0KLQotICAgICAgICBp
ZiAobW9kdWxlSW5mb3JtYXRpb24ubWVtb3J5ICYmICFoYXNNZW1vcnlJbXBvcnQpIHsKLSAgICAg
ICAgICAgIC8vIFdlIGNyZWF0ZSBhIG1lbW9yeSB3aGVuIGl0J3MgYSBtZW1vcnkgZGVmaW5pdGlv
bi4KLSAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKCFtb2R1bGVJbmZvcm1hdGlvbi5tZW1vcnku
aXNJbXBvcnQoKSk7Ci0KLSAgICAgICAgICAgIGF1dG8qIGpzTWVtb3J5ID0gSlNXZWJBc3NlbWJs
eU1lbW9yeTo6dHJ5Q3JlYXRlKGdsb2JhbE9iamVjdCwgdm0sIGdsb2JhbE9iamVjdC0+d2ViQXNz
ZW1ibHlNZW1vcnlTdHJ1Y3R1cmUoKSk7Ci0gICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHRocm93U2NvcGUsIG51bGxwdHIpOworICAgIGJvb2wgaGFzTWVtb3J5SW1wb3J0ID0gbW9kdWxl
SW5mb3JtYXRpb24ubWVtb3J5LmlzSW1wb3J0KCk7CisgICAgaWYgKG1vZHVsZUluZm9ybWF0aW9u
Lm1lbW9yeSAmJiAhaGFzTWVtb3J5SW1wb3J0KSB7CisgICAgICAgIC8vIFdlIGNyZWF0ZSBhIG1l
bW9yeSB3aGVuIGl0J3MgYSBtZW1vcnkgZGVmaW5pdGlvbi4KKyAgICAgICAgYXV0byoganNNZW1v
cnkgPSBKU1dlYkFzc2VtYmx5TWVtb3J5Ojp0cnlDcmVhdGUoZ2xvYmFsT2JqZWN0LCB2bSwgZ2xv
YmFsT2JqZWN0LT53ZWJBc3NlbWJseU1lbW9yeVN0cnVjdHVyZSgpKTsKKyAgICAgICAgUkVUVVJO
X0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCBudWxscHRyKTsKIAotICAgICAgICAgICAgUmVmUHRy
PFdhc206Ok1lbW9yeT4gbWVtb3J5ID0gV2FzbTo6TWVtb3J5Ojp0cnlDcmVhdGUobW9kdWxlSW5m
b3JtYXRpb24ubWVtb3J5LmluaXRpYWwoKSwgbW9kdWxlSW5mb3JtYXRpb24ubWVtb3J5Lm1heGlt
dW0oKSwgbW9kdWxlSW5mb3JtYXRpb24ubWVtb3J5LmlzU2hhcmVkKCkgPyBXYXNtOjpNZW1vcnlT
aGFyaW5nTW9kZTo6U2hhcmVkOiBXYXNtOjpNZW1vcnlTaGFyaW5nTW9kZTo6RGVmYXVsdCwKLSAg
ICAgICAgICAgICAgICBbJnZtXSAoV2FzbTo6TWVtb3J5OjpOb3RpZnlQcmVzc3VyZSkgeyB2bS5o
ZWFwLmNvbGxlY3RBc3luYyhDb2xsZWN0aW9uU2NvcGU6OkZ1bGwpOyB9LAotICAgICAgICAgICAg
ICAgIFsmdm1dIChXYXNtOjpNZW1vcnk6OlN5bmNUcnlUb1JlY2xhaW0pIHsgdm0uaGVhcC5jb2xs
ZWN0U3luYyhDb2xsZWN0aW9uU2NvcGU6OkZ1bGwpOyB9LAotICAgICAgICAgICAgICAgIFsmdm0s
IGpzTWVtb3J5XSAoV2FzbTo6TWVtb3J5OjpHcm93U3VjY2VzcywgV2FzbTo6UGFnZUNvdW50IG9s
ZFBhZ2VDb3VudCwgV2FzbTo6UGFnZUNvdW50IG5ld1BhZ2VDb3VudCkgeyBqc01lbW9yeS0+Z3Jv
d1N1Y2Nlc3NDYWxsYmFjayh2bSwgb2xkUGFnZUNvdW50LCBuZXdQYWdlQ291bnQpOyB9KTsKLSAg
ICAgICAgICAgIGlmICghbWVtb3J5KQotICAgICAgICAgICAgICAgIHJldHVybiBleGNlcHRpb24o
Y3JlYXRlT3V0T2ZNZW1vcnlFcnJvcihnbG9iYWxPYmplY3QpKTsKKyAgICAgICAgUmVmUHRyPFdh
c206Ok1lbW9yeT4gbWVtb3J5ID0gV2FzbTo6TWVtb3J5Ojp0cnlDcmVhdGUobW9kdWxlSW5mb3Jt
YXRpb24ubWVtb3J5LmluaXRpYWwoKSwgbW9kdWxlSW5mb3JtYXRpb24ubWVtb3J5Lm1heGltdW0o
KSwgbW9kdWxlSW5mb3JtYXRpb24ubWVtb3J5LmlzU2hhcmVkKCkgPyBXYXNtOjpNZW1vcnlTaGFy
aW5nTW9kZTo6U2hhcmVkOiBXYXNtOjpNZW1vcnlTaGFyaW5nTW9kZTo6RGVmYXVsdCwKKyAgICAg
ICAgICAgIFsmdm1dKFdhc206Ok1lbW9yeTo6Tm90aWZ5UHJlc3N1cmUpIHsgdm0uaGVhcC5jb2xs
ZWN0QXN5bmMoQ29sbGVjdGlvblNjb3BlOjpGdWxsKTsgfSwKKyAgICAgICAgICAgIFsmdm1dKFdh
c206Ok1lbW9yeTo6U3luY1RyeVRvUmVjbGFpbSkgeyB2bS5oZWFwLmNvbGxlY3RTeW5jKENvbGxl
Y3Rpb25TY29wZTo6RnVsbCk7IH0sCisgICAgICAgICAgICBbJnZtLCBqc01lbW9yeV0oV2FzbTo6
TWVtb3J5OjpHcm93U3VjY2VzcywgV2FzbTo6UGFnZUNvdW50IG9sZFBhZ2VDb3VudCwgV2FzbTo6
UGFnZUNvdW50IG5ld1BhZ2VDb3VudCkgeyBqc01lbW9yeS0+Z3Jvd1N1Y2Nlc3NDYWxsYmFjayh2
bSwgb2xkUGFnZUNvdW50LCBuZXdQYWdlQ291bnQpOyB9CisgICAgICAgICk7CisgICAgICAgIGlm
ICghbWVtb3J5KQorICAgICAgICAgICAgcmV0dXJuIGV4Y2VwdGlvbihjcmVhdGVPdXRPZk1lbW9y
eUVycm9yKGdsb2JhbE9iamVjdCkpOwogCi0gICAgICAgICAgICBqc01lbW9yeS0+YWRvcHQobWVt
b3J5LnJlbGVhc2VOb25OdWxsKCkpOwotICAgICAgICAgICAganNJbnN0YW5jZS0+c2V0TWVtb3J5
KHZtLCBqc01lbW9yeSk7Ci0gICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2Nv
cGUsIG51bGxwdHIpOwotICAgICAgICB9CisgICAgICAgIGpzTWVtb3J5LT5hZG9wdChtZW1vcnku
cmVsZWFzZU5vbk51bGwoKSk7CisgICAgICAgIGpzSW5zdGFuY2UtPnNldE1lbW9yeSh2bSwganNN
ZW1vcnkpOworICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIG51bGxwdHIp
OwogICAgIH0KLSAgICAKKwogICAgIGlmICghanNJbnN0YW5jZS0+bWVtb3J5KCkpIHsKICAgICAg
ICAgLy8gTWFrZSBzdXJlIHdlIGhhdmUgYSBkdW1teSBtZW1vcnksIHNvIHRoYXQgd2FzbSAtPiB3
YXNtIHRodW5rcyBhdm9pZCBjaGVja2luZyBmb3IgYSBudWxscHRyIE1lbW9yeSB3aGVuIHRyeWlu
ZyB0byBzZXQgcGlubmVkIHJlZ2lzdGVycy4KKyAgICAgICAgLy8gV2hlbiB0aGVyZSBpcyBhIG1l
bW9yeSBpbXBvcnQsIHRoaXMgd2lsbCBiZSByZXBsYWNlZCBsYXRlciBpbiB0aGUgbW9kdWxlIHJl
Y29yZCBpbXBvcnQgaW5pdGlhbGl6YXRpb24uCiAgICAgICAgIGF1dG8qIGpzTWVtb3J5ID0gSlNX
ZWJBc3NlbWJseU1lbW9yeTo6dHJ5Q3JlYXRlKGdsb2JhbE9iamVjdCwgdm0sIGdsb2JhbE9iamVj
dC0+d2ViQXNzZW1ibHlNZW1vcnlTdHJ1Y3R1cmUoKSk7CiAgICAgICAgIFJFVFVSTl9JRl9FWENF
UFRJT04odGhyb3dTY29wZSwgbnVsbHB0cik7CiAgICAgICAgIGpzTWVtb3J5LT5hZG9wdChXYXNt
OjpNZW1vcnk6OmNyZWF0ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlUmVjb3JkLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlUmVjb3JkLmNwcAppbmRleCBhMzc3ZmU1MzAyMWUw
OTIwZmM4ZjQwZTEzZjYxM2QwNGJjNGE4N2Y2Li5lZDMzNWZmNWMyMzAyODFhZDQ0YjQwNGM5ZmQ5
MmRkNWUyZmQ0MTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9X
ZWJBc3NlbWJseU1vZHVsZVJlY29yZC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQuY3BwCkBAIC0xMzMsMjAgKzEzMyw2IEBAIHZv
aWQgV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQ6OmluaXRpYWxpemVJbXBvcnRzQW5kRXhwb3J0cyhK
U0dsb2JhbE9iamVjdCogZ2xvYmFsCiAgICAgfTsKIAogICAgIGZvciAoY29uc3QgYXV0byYgaW1w
b3J0IDogbW9kdWxlSW5mb3JtYXRpb24uaW1wb3J0cykgewotICAgICAgICAvLyBWYWxpZGF0aW9u
IGFuZCBsaW5raW5nIG90aGVyIHRoYW4gV2FzbTo6RXh0ZXJuYWxLaW5kOjpGdW5jdGlvbiBpcyBh
bHJlYWR5IGRvbmUgaW4gSlNXZWJBc3NlbWJseUluc3RhbmNlLgotICAgICAgICAvLyBFdmVudHVh
bGx5IHdlIHdpbGwgbW92ZSBhbGwgdGhlIGxpbmtpbmcgY29kZSBpbiBKU1dlYkFzc2VtYmx5SW5z
dGFuY2UgaGVyZSBhbmQgcmVtb3ZlIHRoaXMgc3dpdGNoIHN0YXRlbWVudC4KLSAgICAgICAgc3dp
dGNoIChpbXBvcnQua2luZCkgewotICAgICAgICBjYXNlIFdhc206OkV4dGVybmFsS2luZDo6RnVu
Y3Rpb246Ci0gICAgICAgIGNhc2UgV2FzbTo6RXh0ZXJuYWxLaW5kOjpHbG9iYWw6Ci0gICAgICAg
IGNhc2UgV2FzbTo6RXh0ZXJuYWxLaW5kOjpUYWJsZToKLSAgICAgICAgY2FzZSBXYXNtOjpFeHRl
cm5hbEtpbmQ6OkV4Y2VwdGlvbjoKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFdh
c206OkV4dGVybmFsS2luZDo6TWVtb3J5OgotICAgICAgICAgICAgaWYgKGNyZWF0aW9uTW9kZSA9
PSBXYXNtOjpDcmVhdGlvbk1vZGU6OkZyb21KUykKLSAgICAgICAgICAgICAgICBjb250aW51ZTsK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0KICAgICAgICAgSWRlbnRpZmllciBtb2R1
bGVOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgU3RyaW5nOjpmcm9tVVRGOChpbXBv
cnQubW9kdWxlKSk7CiAgICAgICAgIElkZW50aWZpZXIgZmllbGROYW1lID0gSWRlbnRpZmllcjo6
ZnJvbVN0cmluZyh2bSwgU3RyaW5nOjpmcm9tVVRGOChpbXBvcnQuZmllbGQpKTsKICAgICAgICAg
SlNWYWx1ZSB2YWx1ZTsKQEAgLTQwOSw3ICszOTUsNiBAQCB2b2lkIFdlYkFzc2VtYmx5TW9kdWxl
UmVjb3JkOjppbml0aWFsaXplSW1wb3J0c0FuZEV4cG9ydHMoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bAogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIAotICAgICAgICAvLyBNZW1vcnkgaW5p
dGlhbGl6YXRpb24gd2lsbCBvbmx5IG9jY3VyIGhlcmUgaWYgdGhlIGNyZWF0aW9uIG1vZGUgd2Fz
IHRocm91Z2ggdGhlIG1vZHVsZSBsb2FkZXIuCiAgICAgICAgIGNhc2UgV2FzbTo6RXh0ZXJuYWxL
aW5kOjpNZW1vcnk6CiAgICAgICAgICAgICBKU1dlYkFzc2VtYmx5TWVtb3J5KiBtZW1vcnkgPSBq
c0R5bmFtaWNDYXN0PEpTV2ViQXNzZW1ibHlNZW1vcnkqPih2bSwgdmFsdWUpOwogICAgICAgICAg
ICAgLy8gaS4gSWYgdiBpcyBub3QgYSBXZWJBc3NlbWJseS5NZW1vcnkgb2JqZWN0LCB0aHJvdyBh
IFdlYkFzc2VtYmx5LkxpbmtFcnJvci4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4
IGNmY2MxNjUxYjM4ZWRlZjE0NmQ0NThiNGY1ZTJjMzE3MDk5ZTRlMDYuLmIwNmI1MDFkMTU4NDk5
N2Y3YWFkYjg3MzkxZTBlY2ZlY2E3YzViMDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDIwIEBACisyMDIxLTEyLTE1ICBBc3VtdSBUYWtpa2F3YSAgPGFzdW11QGln
YWxpYS5jb20+CisKKyAgICAgICAgW1dhc21dIFVuaWZ5IG1lbW9yeSBpbXBvcnQgaGFuZGxpbmcg
aW4gbW9kdWxlIGxvYWRlciBhbmQgSlMgY2FzZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDExNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkanVzdCBXYXNtIFdQVCB0ZXN0IGV4cGVjdGF0aW9ucyBu
b3cgdGhhdCBnZXR0ZXIgb3JkZXJpbmcgdGVzdHMKKyAgICAgICAgc2hvdWxkIHBhc3MuCisKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9jb25zdHJ1Y3Rvci9pbnN0YW50
aWF0ZS5hbnktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93YXNt
L2pzYXBpL2NvbnN0cnVjdG9yL2luc3RhbnRpYXRlLmFueS53b3JrZXItZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL2luc3RhbmNlL2NvbnN0cnVj
dG9yLmFueS1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20v
anNhcGkvaW5zdGFuY2UvY29uc3RydWN0b3IuYW55Lndvcmtlci1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vd2ViYXBpL2luc3RhbnRpYXRlU3RyZWFtaW5n
LmFueS1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vd2Vi
YXBpL2luc3RhbnRpYXRlU3RyZWFtaW5nLmFueS53b3JrZXItZXhwZWN0ZWQudHh0OgorCiAyMDIx
LTEyLTEzICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFtjc3MtZmxleGJveF0gQWJzb2x1dGVseSBwb3NpdGlvbmVkIGNoaWxkcmVuIHNob3VsZCBi
ZSBhbGlnbmVkIHVzaW5nIHRoZSBtYXJnaW4gYm94CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvY29uc3RydWN0b3IvaW5z
dGFudGlhdGUuYW55LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9jb25zdHJ1Y3Rvci9pbnN0YW50aWF0ZS5hbnktZXhw
ZWN0ZWQudHh0CmluZGV4IDUwNjQ3YzI1M2RmOTU5MjUzYjJkZWMzOWJlZGNhMzlkNmZlN2NiMDMu
Ljg2NDJhNWVhZTA2MDEzNTFhZmQxNTU0MjEzYjgzNmUxZDc5MTMwODAgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9jb25z
dHJ1Y3Rvci9pbnN0YW50aWF0ZS5hbnktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9jb25zdHJ1Y3Rvci9pbnN0
YW50aWF0ZS5hbnktZXhwZWN0ZWQudHh0CkBAIC05LDggKzksOCBAQCBQQVNTIEVtcHR5IG1vZHVs
ZSB3aXRoIHVuZGVmaW5lZCBpbXBvcnRzIGFyZ3VtZW50OiBCdWZmZXJTb3VyY2UgYXJndW1lbnQK
IFBBU1MgRW1wdHkgbW9kdWxlIHdpdGggdW5kZWZpbmVkIGltcG9ydHMgYXJndW1lbnQ6IE1vZHVs
ZSBhcmd1bWVudAogUEFTUyBFbXB0eSBtb2R1bGUgd2l0aCBlbXB0eSBpbXBvcnRzIGFyZ3VtZW50
OiBCdWZmZXJTb3VyY2UgYXJndW1lbnQKIFBBU1MgRW1wdHkgbW9kdWxlIHdpdGggZW1wdHkgaW1w
b3J0cyBhcmd1bWVudDogTW9kdWxlIGFyZ3VtZW50Ci1GQUlMIGdldHRlciBvcmRlciBmb3IgaW1w
b3J0cyBvYmplY3Q6IEJ1ZmZlclNvdXJjZSBhcmd1bWVudCBhc3NlcnRfYXJyYXlfZXF1YWxzOiBl
eHBlY3RlZCBwcm9wZXJ0eSAxIHRvIGJlICJnbG9iYWwxIGdldHRlciIgYnV0IGdvdCAibWVtb3J5
IGdldHRlciIgKGV4cGVjdGVkIGFycmF5IFsibW9kdWxlIGdldHRlciIsICJnbG9iYWwxIGdldHRl
ciIsICJtb2R1bGUyIGdldHRlciIsICJnbG9iYWwzIGdldHRlciIsICJtb2R1bGUgZ2V0dGVyIiwg
Im1lbW9yeSBnZXR0ZXIiLCAibW9kdWxlIGdldHRlciIsICJnbG9iYWwyIGdldHRlciJdIGdvdCBb
Im1vZHVsZSBnZXR0ZXIiLCAibWVtb3J5IGdldHRlciIsICJtb2R1bGUgZ2V0dGVyIiwgImdsb2Jh
bDEgZ2V0dGVyIiwgIm1vZHVsZTIgZ2V0dGVyIiwgImdsb2JhbDMgZ2V0dGVyIiwgIm1vZHVsZSBn
ZXR0ZXIiLCAiZ2xvYmFsMiBnZXR0ZXIiXSkKLUZBSUwgZ2V0dGVyIG9yZGVyIGZvciBpbXBvcnRz
IG9iamVjdDogTW9kdWxlIGFyZ3VtZW50IGFzc2VydF9hcnJheV9lcXVhbHM6IGV4cGVjdGVkIHBy
b3BlcnR5IDEgdG8gYmUgImdsb2JhbDEgZ2V0dGVyIiBidXQgZ290ICJtZW1vcnkgZ2V0dGVyIiAo
ZXhwZWN0ZWQgYXJyYXkgWyJtb2R1bGUgZ2V0dGVyIiwgImdsb2JhbDEgZ2V0dGVyIiwgIm1vZHVs
ZTIgZ2V0dGVyIiwgImdsb2JhbDMgZ2V0dGVyIiwgIm1vZHVsZSBnZXR0ZXIiLCAibWVtb3J5IGdl
dHRlciIsICJtb2R1bGUgZ2V0dGVyIiwgImdsb2JhbDIgZ2V0dGVyIl0gZ290IFsibW9kdWxlIGdl
dHRlciIsICJtZW1vcnkgZ2V0dGVyIiwgIm1vZHVsZSBnZXR0ZXIiLCAiZ2xvYmFsMSBnZXR0ZXIi
LCAibW9kdWxlMiBnZXR0ZXIiLCAiZ2xvYmFsMyBnZXR0ZXIiLCAibW9kdWxlIGdldHRlciIsICJn
bG9iYWwyIGdldHRlciJdKQorUEFTUyBnZXR0ZXIgb3JkZXIgZm9yIGltcG9ydHMgb2JqZWN0OiBC
dWZmZXJTb3VyY2UgYXJndW1lbnQKK1BBU1MgZ2V0dGVyIG9yZGVyIGZvciBpbXBvcnRzIG9iamVj
dDogTW9kdWxlIGFyZ3VtZW50CiBQQVNTIGltcG9ydHM6IEJ1ZmZlclNvdXJjZSBhcmd1bWVudAog
UEFTUyBpbXBvcnRzOiBNb2R1bGUgYXJndW1lbnQKIFBBU1MgaW1wb3J0cyB3aXRoIGVtcHR5IG1v
ZHVsZSBuYW1lczogQnVmZmVyU291cmNlIGFyZ3VtZW50CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvY29uc3RydWN0b3Iv
aW5zdGFudGlhdGUuYW55Lndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvY29uc3RydWN0b3IvaW5zdGFudGlh
dGUuYW55Lndvcmtlci1leHBlY3RlZC50eHQKaW5kZXggNTA2NDdjMjUzZGY5NTkyNTNiMmRlYzM5
YmVkY2EzOWQ2ZmU3Y2IwMy4uODY0MmE1ZWFlMDYwMTM1MWFmZDE1NTQyMTNiODM2ZTFkNzkxMzA4
MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93YXNtL2pzYXBpL2NvbnN0cnVjdG9yL2luc3RhbnRpYXRlLmFueS53b3JrZXItZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Fz
bS9qc2FwaS9jb25zdHJ1Y3Rvci9pbnN0YW50aWF0ZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApA
QCAtOSw4ICs5LDggQEAgUEFTUyBFbXB0eSBtb2R1bGUgd2l0aCB1bmRlZmluZWQgaW1wb3J0cyBh
cmd1bWVudDogQnVmZmVyU291cmNlIGFyZ3VtZW50CiBQQVNTIEVtcHR5IG1vZHVsZSB3aXRoIHVu
ZGVmaW5lZCBpbXBvcnRzIGFyZ3VtZW50OiBNb2R1bGUgYXJndW1lbnQKIFBBU1MgRW1wdHkgbW9k
dWxlIHdpdGggZW1wdHkgaW1wb3J0cyBhcmd1bWVudDogQnVmZmVyU291cmNlIGFyZ3VtZW50CiBQ
QVNTIEVtcHR5IG1vZHVsZSB3aXRoIGVtcHR5IGltcG9ydHMgYXJndW1lbnQ6IE1vZHVsZSBhcmd1
bWVudAotRkFJTCBnZXR0ZXIgb3JkZXIgZm9yIGltcG9ydHMgb2JqZWN0OiBCdWZmZXJTb3VyY2Ug
YXJndW1lbnQgYXNzZXJ0X2FycmF5X2VxdWFsczogZXhwZWN0ZWQgcHJvcGVydHkgMSB0byBiZSAi
Z2xvYmFsMSBnZXR0ZXIiIGJ1dCBnb3QgIm1lbW9yeSBnZXR0ZXIiIChleHBlY3RlZCBhcnJheSBb
Im1vZHVsZSBnZXR0ZXIiLCAiZ2xvYmFsMSBnZXR0ZXIiLCAibW9kdWxlMiBnZXR0ZXIiLCAiZ2xv
YmFsMyBnZXR0ZXIiLCAibW9kdWxlIGdldHRlciIsICJtZW1vcnkgZ2V0dGVyIiwgIm1vZHVsZSBn
ZXR0ZXIiLCAiZ2xvYmFsMiBnZXR0ZXIiXSBnb3QgWyJtb2R1bGUgZ2V0dGVyIiwgIm1lbW9yeSBn
ZXR0ZXIiLCAibW9kdWxlIGdldHRlciIsICJnbG9iYWwxIGdldHRlciIsICJtb2R1bGUyIGdldHRl
ciIsICJnbG9iYWwzIGdldHRlciIsICJtb2R1bGUgZ2V0dGVyIiwgImdsb2JhbDIgZ2V0dGVyIl0p
Ci1GQUlMIGdldHRlciBvcmRlciBmb3IgaW1wb3J0cyBvYmplY3Q6IE1vZHVsZSBhcmd1bWVudCBh
c3NlcnRfYXJyYXlfZXF1YWxzOiBleHBlY3RlZCBwcm9wZXJ0eSAxIHRvIGJlICJnbG9iYWwxIGdl
dHRlciIgYnV0IGdvdCAibWVtb3J5IGdldHRlciIgKGV4cGVjdGVkIGFycmF5IFsibW9kdWxlIGdl
dHRlciIsICJnbG9iYWwxIGdldHRlciIsICJtb2R1bGUyIGdldHRlciIsICJnbG9iYWwzIGdldHRl
ciIsICJtb2R1bGUgZ2V0dGVyIiwgIm1lbW9yeSBnZXR0ZXIiLCAibW9kdWxlIGdldHRlciIsICJn
bG9iYWwyIGdldHRlciJdIGdvdCBbIm1vZHVsZSBnZXR0ZXIiLCAibWVtb3J5IGdldHRlciIsICJt
b2R1bGUgZ2V0dGVyIiwgImdsb2JhbDEgZ2V0dGVyIiwgIm1vZHVsZTIgZ2V0dGVyIiwgImdsb2Jh
bDMgZ2V0dGVyIiwgIm1vZHVsZSBnZXR0ZXIiLCAiZ2xvYmFsMiBnZXR0ZXIiXSkKK1BBU1MgZ2V0
dGVyIG9yZGVyIGZvciBpbXBvcnRzIG9iamVjdDogQnVmZmVyU291cmNlIGFyZ3VtZW50CitQQVNT
IGdldHRlciBvcmRlciBmb3IgaW1wb3J0cyBvYmplY3Q6IE1vZHVsZSBhcmd1bWVudAogUEFTUyBp
bXBvcnRzOiBCdWZmZXJTb3VyY2UgYXJndW1lbnQKIFBBU1MgaW1wb3J0czogTW9kdWxlIGFyZ3Vt
ZW50CiBQQVNTIGltcG9ydHMgd2l0aCBlbXB0eSBtb2R1bGUgbmFtZXM6IEJ1ZmZlclNvdXJjZSBh
cmd1bWVudApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93YXNtL2pzYXBpL2luc3RhbmNlL2NvbnN0cnVjdG9yLmFueS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkv
aW5zdGFuY2UvY29uc3RydWN0b3IuYW55LWV4cGVjdGVkLnR4dAppbmRleCA1NzM4ZDc0ODIyZWEx
OTk5Y2UwMjUyOTIzYzg2MjMxZjdjOTI5NDg4Li4xNTQ0YWQ5NTIyYTAzMzEyYmMyNTRhN2EyOWE4
NjRlM2RiNDM1YTY1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dhc20vanNhcGkvaW5zdGFuY2UvY29uc3RydWN0b3IuYW55LWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dh
c20vanNhcGkvaW5zdGFuY2UvY29uc3RydWN0b3IuYW55LWV4cGVjdGVkLnR4dApAQCAtNyw3ICs3
LDcgQEAgUEFTUyBDYWxsaW5nCiBQQVNTIEVtcHR5IG1vZHVsZSB3aXRob3V0IGltcG9ydHMgYXJn
dW1lbnQKIFBBU1MgRW1wdHkgbW9kdWxlIHdpdGggdW5kZWZpbmVkIGltcG9ydHMgYXJndW1lbnQK
IFBBU1MgRW1wdHkgbW9kdWxlIHdpdGggZW1wdHkgaW1wb3J0cyBhcmd1bWVudAotRkFJTCBnZXR0
ZXIgb3JkZXIgZm9yIGltcG9ydHMgb2JqZWN0IGFzc2VydF9hcnJheV9lcXVhbHM6IGV4cGVjdGVk
IHByb3BlcnR5IDEgdG8gYmUgImdsb2JhbDEgZ2V0dGVyIiBidXQgZ290ICJtZW1vcnkgZ2V0dGVy
IiAoZXhwZWN0ZWQgYXJyYXkgWyJtb2R1bGUgZ2V0dGVyIiwgImdsb2JhbDEgZ2V0dGVyIiwgIm1v
ZHVsZTIgZ2V0dGVyIiwgImdsb2JhbDMgZ2V0dGVyIiwgIm1vZHVsZSBnZXR0ZXIiLCAibWVtb3J5
IGdldHRlciIsICJtb2R1bGUgZ2V0dGVyIiwgImdsb2JhbDIgZ2V0dGVyIl0gZ290IFsibW9kdWxl
IGdldHRlciIsICJtZW1vcnkgZ2V0dGVyIiwgIm1vZHVsZSBnZXR0ZXIiLCAiZ2xvYmFsMSBnZXR0
ZXIiLCAibW9kdWxlMiBnZXR0ZXIiLCAiZ2xvYmFsMyBnZXR0ZXIiLCAibW9kdWxlIGdldHRlciIs
ICJnbG9iYWwyIGdldHRlciJdKQorUEFTUyBnZXR0ZXIgb3JkZXIgZm9yIGltcG9ydHMgb2JqZWN0
CiBQQVNTIGltcG9ydHMKIFBBU1MgaW1wb3J0cyB3aXRoIGVtcHR5IG1vZHVsZSBuYW1lcwogUEFT
UyBpbXBvcnRzIHdpdGggZW1wdHkgbmFtZXMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9pbnN0YW5jZS9jb25zdHJ1Y3Rv
ci5hbnkud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9pbnN0YW5jZS9jb25zdHJ1Y3Rvci5hbnkud29ya2Vy
LWV4cGVjdGVkLnR4dAppbmRleCA1NzM4ZDc0ODIyZWExOTk5Y2UwMjUyOTIzYzg2MjMxZjdjOTI5
NDg4Li4xNTQ0YWQ5NTIyYTAzMzEyYmMyNTRhN2EyOWE4NjRlM2RiNDM1YTY1IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkv
aW5zdGFuY2UvY29uc3RydWN0b3IuYW55Lndvcmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL2luc3RhbmNl
L2NvbnN0cnVjdG9yLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC03LDcgKzcsNyBAQCBQQVNT
IENhbGxpbmcKIFBBU1MgRW1wdHkgbW9kdWxlIHdpdGhvdXQgaW1wb3J0cyBhcmd1bWVudAogUEFT
UyBFbXB0eSBtb2R1bGUgd2l0aCB1bmRlZmluZWQgaW1wb3J0cyBhcmd1bWVudAogUEFTUyBFbXB0
eSBtb2R1bGUgd2l0aCBlbXB0eSBpbXBvcnRzIGFyZ3VtZW50Ci1GQUlMIGdldHRlciBvcmRlciBm
b3IgaW1wb3J0cyBvYmplY3QgYXNzZXJ0X2FycmF5X2VxdWFsczogZXhwZWN0ZWQgcHJvcGVydHkg
MSB0byBiZSAiZ2xvYmFsMSBnZXR0ZXIiIGJ1dCBnb3QgIm1lbW9yeSBnZXR0ZXIiIChleHBlY3Rl
ZCBhcnJheSBbIm1vZHVsZSBnZXR0ZXIiLCAiZ2xvYmFsMSBnZXR0ZXIiLCAibW9kdWxlMiBnZXR0
ZXIiLCAiZ2xvYmFsMyBnZXR0ZXIiLCAibW9kdWxlIGdldHRlciIsICJtZW1vcnkgZ2V0dGVyIiwg
Im1vZHVsZSBnZXR0ZXIiLCAiZ2xvYmFsMiBnZXR0ZXIiXSBnb3QgWyJtb2R1bGUgZ2V0dGVyIiwg
Im1lbW9yeSBnZXR0ZXIiLCAibW9kdWxlIGdldHRlciIsICJnbG9iYWwxIGdldHRlciIsICJtb2R1
bGUyIGdldHRlciIsICJnbG9iYWwzIGdldHRlciIsICJtb2R1bGUgZ2V0dGVyIiwgImdsb2JhbDIg
Z2V0dGVyIl0pCitQQVNTIGdldHRlciBvcmRlciBmb3IgaW1wb3J0cyBvYmplY3QKIFBBU1MgaW1w
b3J0cwogUEFTUyBpbXBvcnRzIHdpdGggZW1wdHkgbW9kdWxlIG5hbWVzCiBQQVNTIGltcG9ydHMg
d2l0aCBlbXB0eSBuYW1lcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93YXNtL3dlYmFwaS9pbnN0YW50aWF0ZVN0cmVhbWluZy5hbnktZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
YXNtL3dlYmFwaS9pbnN0YW50aWF0ZVN0cmVhbWluZy5hbnktZXhwZWN0ZWQudHh0CmluZGV4IGM0
MDhmMGZmM2JlN2QzYWFkMDk2YWY1ZWIyYjBjZjBmYTY5YTBhNjUuLmU4ZjQ3OGVmMmE2MGJkNjRm
NzExYjc2MTA1MDFmNzliYjI0NjlhOWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS93ZWJhcGkvaW5zdGFudGlhdGVTdHJlYW1pbmcu
YW55LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dhc20vd2ViYXBpL2luc3RhbnRpYXRlU3RyZWFtaW5nLmFueS1leHBlY3RlZC50
eHQKQEAgLTIsNyArMiw3IEBACiBQQVNTIEVtcHR5IG1vZHVsZSB3aXRob3V0IGltcG9ydHMgYXJn
dW1lbnQKIFBBU1MgRW1wdHkgbW9kdWxlIHdpdGggdW5kZWZpbmVkIGltcG9ydHMgYXJndW1lbnQK
IFBBU1MgRW1wdHkgbW9kdWxlIHdpdGggZW1wdHkgaW1wb3J0cyBhcmd1bWVudAotRkFJTCBnZXR0
ZXIgb3JkZXIgZm9yIGltcG9ydHMgb2JqZWN0IGFzc2VydF9hcnJheV9lcXVhbHM6IGV4cGVjdGVk
IHByb3BlcnR5IDEgdG8gYmUgImdsb2JhbDEgZ2V0dGVyIiBidXQgZ290ICJtZW1vcnkgZ2V0dGVy
IiAoZXhwZWN0ZWQgYXJyYXkgWyJtb2R1bGUgZ2V0dGVyIiwgImdsb2JhbDEgZ2V0dGVyIiwgIm1v
ZHVsZTIgZ2V0dGVyIiwgImdsb2JhbDMgZ2V0dGVyIiwgIm1vZHVsZSBnZXR0ZXIiLCAibWVtb3J5
IGdldHRlciIsICJtb2R1bGUgZ2V0dGVyIiwgImdsb2JhbDIgZ2V0dGVyIl0gZ290IFsibW9kdWxl
IGdldHRlciIsICJtZW1vcnkgZ2V0dGVyIiwgIm1vZHVsZSBnZXR0ZXIiLCAiZ2xvYmFsMSBnZXR0
ZXIiLCAibW9kdWxlMiBnZXR0ZXIiLCAiZ2xvYmFsMyBnZXR0ZXIiLCAibW9kdWxlIGdldHRlciIs
ICJnbG9iYWwyIGdldHRlciJdKQorUEFTUyBnZXR0ZXIgb3JkZXIgZm9yIGltcG9ydHMgb2JqZWN0
CiBQQVNTIGltcG9ydHMKIFBBU1MgaW1wb3J0cyB3aXRoIGVtcHR5IG1vZHVsZSBuYW1lcwogUEFT
UyBpbXBvcnRzIHdpdGggZW1wdHkgbmFtZXMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS93ZWJhcGkvaW5zdGFudGlhdGVTdHJlYW1p
bmcuYW55Lndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dhc20vd2ViYXBpL2luc3RhbnRpYXRlU3RyZWFtaW5nLmFueS53b3Jr
ZXItZXhwZWN0ZWQudHh0CmluZGV4IGM0MDhmMGZmM2JlN2QzYWFkMDk2YWY1ZWIyYjBjZjBmYTY5
YTBhNjUuLmU4ZjQ3OGVmMmE2MGJkNjRmNzExYjc2MTA1MDFmNzliYjI0NjlhOWYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS93ZWJh
cGkvaW5zdGFudGlhdGVTdHJlYW1pbmcuYW55Lndvcmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL3dlYmFwaS9pbnN0
YW50aWF0ZVN0cmVhbWluZy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMiw3ICsyLDcgQEAK
IFBBU1MgRW1wdHkgbW9kdWxlIHdpdGhvdXQgaW1wb3J0cyBhcmd1bWVudAogUEFTUyBFbXB0eSBt
b2R1bGUgd2l0aCB1bmRlZmluZWQgaW1wb3J0cyBhcmd1bWVudAogUEFTUyBFbXB0eSBtb2R1bGUg
d2l0aCBlbXB0eSBpbXBvcnRzIGFyZ3VtZW50Ci1GQUlMIGdldHRlciBvcmRlciBmb3IgaW1wb3J0
cyBvYmplY3QgYXNzZXJ0X2FycmF5X2VxdWFsczogZXhwZWN0ZWQgcHJvcGVydHkgMSB0byBiZSAi
Z2xvYmFsMSBnZXR0ZXIiIGJ1dCBnb3QgIm1lbW9yeSBnZXR0ZXIiIChleHBlY3RlZCBhcnJheSBb
Im1vZHVsZSBnZXR0ZXIiLCAiZ2xvYmFsMSBnZXR0ZXIiLCAibW9kdWxlMiBnZXR0ZXIiLCAiZ2xv
YmFsMyBnZXR0ZXIiLCAibW9kdWxlIGdldHRlciIsICJtZW1vcnkgZ2V0dGVyIiwgIm1vZHVsZSBn
ZXR0ZXIiLCAiZ2xvYmFsMiBnZXR0ZXIiXSBnb3QgWyJtb2R1bGUgZ2V0dGVyIiwgIm1lbW9yeSBn
ZXR0ZXIiLCAibW9kdWxlIGdldHRlciIsICJnbG9iYWwxIGdldHRlciIsICJtb2R1bGUyIGdldHRl
ciIsICJnbG9iYWwzIGdldHRlciIsICJtb2R1bGUgZ2V0dGVyIiwgImdsb2JhbDIgZ2V0dGVyIl0p
CitQQVNTIGdldHRlciBvcmRlciBmb3IgaW1wb3J0cyBvYmplY3QKIFBBU1MgaW1wb3J0cwogUEFT
UyBpbXBvcnRzIHdpdGggZW1wdHkgbW9kdWxlIG5hbWVzCiBQQVNTIGltcG9ydHMgd2l0aCBlbXB0
eSBuYW1lcwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxv
ZwppbmRleCA1ZjAxOTE5ZWJjYTliNDdhZmJlYzFiMjRkNzI4ZTgzZjAyYTM5N2MyLi4zYjU5Y2Ey
OGUxOTU3OTA0MDJkZWRlYWQyMTliY2NkMWEwZjdlY2UyIDEwMDY0NAotLS0gYS9KU1Rlc3RzL0No
YW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTEy
LTE1ICBBc3VtdSBUYWtpa2F3YSAgPGFzdW11QGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dhc21d
IFVuaWZ5IG1lbW9yeSBpbXBvcnQgaGFuZGxpbmcgaW4gbW9kdWxlIGxvYWRlciBhbmQgSlMgY2Fz
ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDEx
NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBh
biBpbnN0YW50aWF0aW9uIHRlc3QgY2FzZSB0aGF0IHRlc3RzIHRoYXQgaW5zdGFudGlhdGluZyB0
aGUgc2FtZQorICAgICAgICBiaW5hcnkgbW9kdWxlIHR3aWNlIHdpbGwgbm90IGNyYXNoLgorCisg
ICAgICAgICogd2FzbS9qcy1hcGkvd2ViLWFzc2VtYmx5LWluc3RhbnRpYXRlLmpzOgorICAgICAg
ICAoYXNzZXJ0LmFzeW5jVGVzdC5hc3luYyB0ZXN0KToKKyAgICAgICAgKGFzc2VydC5hc3luY1Rl
c3QpOgorCiAyMDIxLTEyLTEzICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAK
ICAgICAgICAgW0pTQ10gVXBkYXRlIEludGwgdGVzdHMgYmFzZWQgb24gSUNVIDY5fgpkaWZmIC0t
Z2l0IGEvSlNUZXN0cy93YXNtL2pzLWFwaS93ZWItYXNzZW1ibHktaW5zdGFudGlhdGUuanMgYi9K
U1Rlc3RzL3dhc20vanMtYXBpL3dlYi1hc3NlbWJseS1pbnN0YW50aWF0ZS5qcwppbmRleCAyMzdi
M2E4OWFjYzA1OWZhOTE5MGE4OTY1M2M4ODI3ZWU3NDBlZmEyLi5jZWMyYTMwMjU2M2UyYTc1ODc1
MWU5ZDgxOWIzY2UwNjhhNTY2YjZjIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3dhc20vanMtYXBpL3dl
Yi1hc3NlbWJseS1pbnN0YW50aWF0ZS5qcworKysgYi9KU1Rlc3RzL3dhc20vanMtYXBpL3dlYi1h
c3NlbWJseS1pbnN0YW50aWF0ZS5qcwpAQCAtMTkwLDMgKzE5MCwzMCBAQCBhc3NlcnQuZXEoV2Vi
QXNzZW1ibHkuaW5zdGFudGlhdGUubGVuZ3RoLCAxKTsKIAogICAgIGFzc2VydC5hc3luY1Rlc3Qo
dGVzdCgpKTsKIH0KKworeworICAgIGNvbnN0IGJ1aWxkZXIgPSAobmV3IEJ1aWxkZXIoKSkKKyAg
ICAgICAgICAuVHlwZSgpLkVuZCgpCisgICAgICAgICAgLkltcG9ydCgpLk1lbW9yeSgiaW1wIiwg
Im1lbW9yeSIsIHtpbml0aWFsOjEwMH0pLkVuZCgpCisgICAgICAgICAgLkZ1bmN0aW9uKCkuRW5k
KCkKKyAgICAgICAgICAuRXhwb3J0KCkKKyAgICAgICAgICAgICAgLkZ1bmN0aW9uKCJmb28iKQor
ICAgICAgICAgIC5FbmQoKQorICAgICAgICAgIC5Db2RlKCkKKyAgICAgICAgICAgICAgLkZ1bmN0
aW9uKCJmb28iLCB7IHBhcmFtczogW10sIHJldDogImkzMiIgfSkKKyAgICAgICAgICAgICAgICAg
IC5JMzJDb25zdCgxKQorICAgICAgICAgICAgICAuRW5kKCkKKyAgICAgICAgICAuRW5kKCk7CisK
KyAgICBjb25zdCBiaW4gPSBidWlsZGVyLldlYkFzc2VtYmx5KCkuZ2V0KCk7CisKKyAgICBhc3lu
YyBmdW5jdGlvbiB0ZXN0KCkgeworICAgICAgICBsZXQgbW9kdWxlID0gbmV3IFdlYkFzc2VtYmx5
Lk1vZHVsZShiaW4pOworICAgICAgICBsZXQgaW5zdGFuY2UxID0gYXdhaXQgV2ViQXNzZW1ibHku
aW5zdGFudGlhdGUobW9kdWxlLCB7IGltcDogeyBtZW1vcnk6IG5ldyBXZWJBc3NlbWJseS5NZW1v
cnkoeyBpbml0aWFsOiAxMDAgfSkgfSB9KTsKKyAgICAgICAgYXNzZXJ0LnRydXRoeShpbnN0YW5j
ZTEgaW5zdGFuY2VvZiBXZWJBc3NlbWJseS5JbnN0YW5jZSk7CisgICAgICAgIGxldCBpbnN0YW5j
ZTIgPSBhd2FpdCBXZWJBc3NlbWJseS5pbnN0YW50aWF0ZShtb2R1bGUsIHsgaW1wOiB7IG1lbW9y
eTogbmV3IFdlYkFzc2VtYmx5Lk1lbW9yeSh7IGluaXRpYWw6IDEwMCB9KSB9IH0pOworICAgICAg
ICBhc3NlcnQudHJ1dGh5KGluc3RhbmNlMiBpbnN0YW5jZW9mIFdlYkFzc2VtYmx5Lkluc3RhbmNl
KTsKKyAgICB9CisKKyAgICBhc3NlcnQuYXN5bmNUZXN0KHRlc3QoKSk7Cit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447328</attachid>
            <date>2021-12-15 22:39:25 -0800</date>
            <delta_ts>2021-12-20 11:05:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234116-20211215223924.patch</filename>
            <type>text/plain</type>
            <size>29002</size>
            <attacher name="Asumu Takikawa">asumu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3MTI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
N2JkOGEyODIyY2M0MTVhOWU0NTQyOGVmOTg0NmExNmRjNDVkOGJkLi42ODFkNGVlOGEwYzZjNDFj
MjYxN2ZiYzg1MzQxNDRiZmE3NGYwZWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAyMS0xMi0xNSAgQXN1bXUgVGFraWthd2EgIDxhc3VtdUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtXYXNtXSBVbmlmeSBtZW1vcnkgaW1wb3J0IGhhbmRsaW5nIGluIG1vZHVs
ZSBsb2FkZXIgYW5kIEpTIGNhc2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzQxMTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBNb3ZlcyB0aGUgbWVtb3J5IGltcG9ydCBoYW5kbGluZyBjb2RlIHRvIHRo
ZSBXYXNtIG1vZHVsZSByZWNvcmQgYW5kCisgICAgICAgIHVzZSB0aGUgc3RyYXRlZ3kgdXNlZCBi
eSB0aGUgbW9kdWxlIGxvYWRlciB0byBoYW5kbGUgbWVtb3J5IGluIGFsbAorICAgICAgICBjYXNl
cy4KKworICAgICAgICAqIHdhc20vV2FzbU1vZHVsZS5jcHA6CisgICAgICAgIChKU0M6Oldhc206
Ok1vZHVsZTo6Y29weUluaXRpYWxDYWxsZWVHcm91cFRvQWxsTWVtb3J5TW9kZXMpOgorICAgICAg
ICAqIHdhc20vanMvSlNXZWJBc3NlbWJseUluc3RhbmNlLmNwcDoKKyAgICAgICAgKEpTQzo6SlNX
ZWJBc3NlbWJseUluc3RhbmNlOjpmaW5hbGl6ZUNyZWF0aW9uKToKKyAgICAgICAgKEpTQzo6SlNX
ZWJBc3NlbWJseUluc3RhbmNlOjp0cnlDcmVhdGUpOgorICAgICAgICAqIHdhc20vanMvV2ViQXNz
ZW1ibHlNb2R1bGVSZWNvcmQuY3BwOgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJseU1vZHVsZVJl
Y29yZDo6aW5pdGlhbGl6ZUltcG9ydHNBbmRFeHBvcnRzKToKKwogMjAyMS0xMi0xNSAgWXVzdWtl
IFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbmFtZSBXYXNtOjpDb2Rl
QmxvY2sgdG8gV2FzbTo6Q2FsbGVlR3JvdXAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21Nb2R1bGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bU1vZHVsZS5jcHAKaW5kZXggNTNlYjk4YmQ5YzM0MWU2OTBhZDgyN2JmODZhY2JiMDFhOGNjNGY5
Mi4uZTFmODQzZjQ0YmRiMGViZmE1MWM2OGVhNzBjZGNmZWU3ZjFmOTU0MiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1vZHVsZS5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV2FzbU1vZHVsZS5jcHAKQEAgLTExMywxMSArMTEzLDE3IEBAIHZv
aWQgTW9kdWxlOjpjb21waWxlQXN5bmMoQ29udGV4dCogY29udGV4dCwgTWVtb3J5TW9kZSBtb2Rl
LCBDYWxsZWVHcm91cDo6QXN5bmNDCiAKIHZvaWQgTW9kdWxlOjpjb3B5SW5pdGlhbENhbGxlZUdy
b3VwVG9BbGxNZW1vcnlNb2RlcyhNZW1vcnlNb2RlIGluaXRpYWxNb2RlKQogeworICAgIExvY2tl
ciBsb2NrZXIgeyBtX2xvY2sgfTsKICAgICBBU1NFUlQobV9jYWxsZWVHcm91cHNbc3RhdGljX2Nh
c3Q8dWludDhfdD4oaW5pdGlhbE1vZGUpXSk7CiAgICAgY29uc3QgQ2FsbGVlR3JvdXAmIGluaXRp
YWxCbG9jayA9ICptX2NhbGxlZUdyb3Vwc1tzdGF0aWNfY2FzdDx1aW50OF90Pihpbml0aWFsTW9k
ZSldOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBXYXNtOjpOdW1iZXJPZk1lbW9yeU1v
ZGVzOyBpKyspIHsKICAgICAgICAgaWYgKGkgPT0gc3RhdGljX2Nhc3Q8dWludDhfdD4oaW5pdGlh
bE1vZGUpKQogICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIFJlZlB0cjxDYWxsZWVHcm91
cD4gY2FsbGVlR3JvdXA7CisgICAgICAgIGNhbGxlZUdyb3VwID0gbV9jYWxsZWVHcm91cHNbaV07
CisgICAgICAgIC8vIFdlIHNob3VsZCBvbmx5IHRyeSB0byBjb3B5IHRoZSBncm91cCBoZXJlIGlm
IGl0IGhhc24ndCBhbHJlYWR5IGJlZW4gY29tcGlsZWQuCisgICAgICAgIGlmIChjYWxsZWVHcm91
cCAmJiAoIWNhbGxlZUdyb3VwLT5jb21waWxhdGlvbkZpbmlzaGVkKCkgfHwgY2FsbGVlR3JvdXAt
PnJ1bm5hYmxlKCkpKQorICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIFJlZjxDYWxsZWVH
cm91cD4gbmV3QmxvY2sgPSBDYWxsZWVHcm91cDo6Y3JlYXRlRnJvbUV4aXN0aW5nKHN0YXRpY19j
YXN0PE1lbW9yeU1vZGU+KGkpLCBpbml0aWFsQmxvY2spOwogICAgICAgICBtX2NhbGxlZUdyb3Vw
c1tpXSA9IFdURk1vdmUobmV3QmxvY2spOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlJbnN0YW5jZS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5SW5zdGFuY2UuY3BwCmluZGV4IGM0ZDQ5
Y2M0YzVhMThmYTlkMzZhZDllMmM3YjdhNDkzNjQ1MzNkZWEuLjc1MTZlNzIxOTI0YTQ0NmYxNDcx
ZWJhMThmMWQ1NDVkYTE2ZTU2MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL2pzL0pTV2ViQXNzZW1ibHlJbnN0YW5jZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUluc3RhbmNlLmNwcApAQCAtMTM1LDExICsxMzUsMTMg
QEAgdm9pZCBKU1dlYkFzc2VtYmx5SW5zdGFuY2U6OmZpbmFsaXplQ3JlYXRpb24oVk0mIHZtLCBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWMKICAgICAgICAgbV9tb2R1bGUtPnNldENhbGxlZUdy
b3VwKHZtLCBtZW1vcnlNb2RlKCksIGpzQ2FsbGVlR3JvdXApOwogICAgIH0KIAotICAgIC8vIElu
IHRoZSBtb2R1bGUgbG9hZGVyIGNhc2UsIHdlIHdpbGwgaW5pdGlhbGl6ZSBhbGwgbWVtb3J5IG1v
ZGVzIHdpdGggdGhlIGluaXRpYWwgTExJbnQgY29tcGlsYXRpb24KKyAgICAvLyBXaGVuIG1lbW9y
eSBpcyBpbXBvcnRlZCwgd2Ugd2lsbCBpbml0aWFsaXplIGFsbCBtZW1vcnkgbW9kZXMgd2l0aCB0
aGUgaW5pdGlhbCBMTEludCBjb21waWxhdGlvbgogICAgIC8vIHJlc3VsdHMsIHNvIHRoYXQgbGF0
ZXIgd2hlbiBtZW1vcnkgaW1wb3J0cyBiZWNvbWUgYXZhaWxhYmxlLCB0aGUgYXBwcm9wcmlhdGUg
Q2FsbGVlR3JvdXAgY2FuIGJlIHVzZWQuCiAgICAgLy8gSWYgTExJbnQgaXMgZGlzYWJsZWQsIHdl
IGluc3RlYWQgZGVmZXIgY29tcGlsYXRpb24gdG8gbW9kdWxlIGV2YWx1YXRpb24uCisgICAgLy8g
SWYgdGhlIGNvZGUgaXMgYWxyZWFkeSBjb21waWxlZCwgZS5nLiB0aGUgbW9kdWxlIHdhcyBhbHJl
YWR5IGluc3RhbnRpYXRlZCBiZWZvcmUsIHdlIGRvIG5vdCByZS1pbml0aWFsaXplCisgICAgLy8g
YnV0IGRvIGNoZWNrIGlmIEpTV2ViQXNzZW1ibHlDYWxsZWVHcm91cHMgbmVlZCB0byBiZSBjcmVh
dGVkIGZvciBhbGwgbW9kZXMuCiAgICAgYm9vbCBoYXNNZW1vcnlJbXBvcnQgPSBtb2R1bGUoKS0+
bW9kdWxlSW5mb3JtYXRpb24oKS5tZW1vcnkuaXNJbXBvcnQoKTsKLSAgICBpZiAoY3JlYXRpb25N
b2RlID09IFdhc206OkNyZWF0aW9uTW9kZTo6RnJvbU1vZHVsZUxvYWRlciAmJiBPcHRpb25zOjp1
c2VXYXNtTExJbnQoKSAmJiBoYXNNZW1vcnlJbXBvcnQpIHsKKyAgICBpZiAoT3B0aW9uczo6dXNl
V2FzbUxMSW50KCkgJiYgaGFzTWVtb3J5SW1wb3J0KSB7CiAgICAgICAgIFdhc206Ok1lbW9yeU1v
ZGUgaW5pdGlhbE1vZGUgPSBXYXNtOjpNZW1vcnlNb2RlOjpCb3VuZHNDaGVja2luZzsKICAgICAg
ICAgQVNTRVJUKG1lbW9yeU1vZGUoKSA9PSBpbml0aWFsTW9kZSk7CiAgICAgICAgIG1vZHVsZSgp
LT5tb2R1bGUoKS5jb3B5SW5pdGlhbENhbGxlZUdyb3VwVG9BbGxNZW1vcnlNb2Rlcyhpbml0aWFs
TW9kZSk7CkBAIC0xNDksMTIgKzE1MSwxOCBAQCB2b2lkIEpTV2ViQXNzZW1ibHlJbnN0YW5jZTo6
ZmluYWxpemVDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogICAg
ICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgV2FzbTo6TWVtb3J5TW9kZSBtZW1v
cnlNb2RlID0gc3RhdGljX2Nhc3Q8V2FzbTo6TWVtb3J5TW9kZT4oaSk7CiAgICAgICAgICAgICBS
ZWZQdHI8V2FzbTo6Q2FsbGVlR3JvdXA+IGNhbGxlZUdyb3VwID0gbW9kdWxlKCktPm1vZHVsZSgp
LmNhbGxlZUdyb3VwRm9yKG1lbW9yeU1vZGUpOwotICAgICAgICAgICAganNDYWxsZWVHcm91cCA9
IEpTV2ViQXNzZW1ibHlDYWxsZWVHcm91cDo6Y3JlYXRlKHZtLCBjYWxsZWVHcm91cC5yZWxlYXNl
Tm9uTnVsbCgpLCBtb2R1bGUoKS0+bW9kdWxlKCkubW9kdWxlSW5mb3JtYXRpb24oKSk7Ci0gICAg
ICAgICAgICBpZiAoVU5MSUtFTFkoIWpzQ2FsbGVlR3JvdXAtPnJ1bm5hYmxlKCkpKSB7Ci0gICAg
ICAgICAgICAgICAgdGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlSlNX
ZWJBc3NlbWJseUxpbmtFcnJvcihnbG9iYWxPYmplY3QsIHZtLCBqc0NhbGxlZUdyb3VwLT5lcnJv
ck1lc3NhZ2UoKSkpOwotICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIGpzQ2Fs
bGVlR3JvdXAgPSBtX21vZHVsZS0+Y2FsbGVlR3JvdXAobWVtb3J5TW9kZSk7CisgICAgICAgICAg
ICBpZiAoanNDYWxsZWVHcm91cCkgeworICAgICAgICAgICAgICAgIEFTU0VSVCgmanNDYWxsZWVH
cm91cC0+Y2FsbGVlR3JvdXAoKSA9PSBjYWxsZWVHcm91cCk7CisgICAgICAgICAgICAgICAgbV9j
YWxsZWVHcm91cC5zZXQodm0sIHRoaXMsIGpzQ2FsbGVlR3JvdXApOworICAgICAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgICAgICBqc0NhbGxlZUdyb3VwID0gSlNXZWJBc3NlbWJseUNhbGxl
ZUdyb3VwOjpjcmVhdGUodm0sIGNhbGxlZUdyb3VwLnJlbGVhc2VOb25OdWxsKCksIG1vZHVsZSgp
LT5tb2R1bGUoKS5tb2R1bGVJbmZvcm1hdGlvbigpKTsKKyAgICAgICAgICAgICAgICBpZiAoVU5M
SUtFTFkoIWpzQ2FsbGVlR3JvdXAtPnJ1bm5hYmxlKCkpKSB7CisgICAgICAgICAgICAgICAgICAg
IHRocm93RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZUpTV2ViQXNzZW1ibHlM
aW5rRXJyb3IoZ2xvYmFsT2JqZWN0LCB2bSwganNDYWxsZWVHcm91cC0+ZXJyb3JNZXNzYWdlKCkp
KTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICBtX21vZHVsZS0+c2V0Q2FsbGVlR3JvdXAodm0sIG1lbW9yeU1vZGUsIGpzQ2Fs
bGVlR3JvdXApOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgbV9tb2R1bGUtPnNldENhbGxl
ZUdyb3VwKHZtLCBtZW1vcnlNb2RlLCBqc0NhbGxlZUdyb3VwKTsKICAgICAgICAgfQogICAgIH0K
IApAQCAtMTk2LDEwICsyMDQsNiBAQCBKU1dlYkFzc2VtYmx5SW5zdGFuY2UqIEpTV2ViQXNzZW1i
bHlJbnN0YW5jZTo6dHJ5Q3JlYXRlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqCiAgICAgaWYgKCFn
bG9iYWxPYmplY3QtPndlYkFzc2VtYmx5RW5hYmxlZCgpKQogICAgICAgICByZXR1cm4gZXhjZXB0
aW9uKGNyZWF0ZUV2YWxFcnJvcihnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+d2ViQXNzZW1i
bHlEaXNhYmxlZEVycm9yTWVzc2FnZSgpKSk7CiAKLSAgICBhdXRvIGltcG9ydEZhaWxNZXNzYWdl
ID0gWyZdIChjb25zdCBXYXNtOjpJbXBvcnQmIGltcG9ydCwgY29uc3QgY2hhciogYmVmb3JlLCBj
b25zdCBjaGFyKiBhZnRlcikgewotICAgICAgICByZXR1cm4gbWFrZVN0cmluZyhiZWZvcmUsICIg
IiwgU3RyaW5nOjpmcm9tVVRGOChpbXBvcnQubW9kdWxlKSwgIjoiLCBTdHJpbmc6OmZyb21VVEY4
KGltcG9ydC5maWVsZCksICIgIiwgYWZ0ZXIpOwotICAgIH07Ci0KICAgICBXZWJBc3NlbWJseU1v
ZHVsZVJlY29yZCogbW9kdWxlUmVjb3JkID0gV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQ6OmNyZWF0
ZShnbG9iYWxPYmplY3QsIHZtLCBnbG9iYWxPYmplY3QtPndlYkFzc2VtYmx5TW9kdWxlUmVjb3Jk
U3RydWN0dXJlKCksIG1vZHVsZUtleSwgbW9kdWxlSW5mb3JtYXRpb24pOwogICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04odGhyb3dTY29wZSwgbnVsbHB0cik7CiAKQEAgLTIxMywxMCArMjE3LDYgQEAg
SlNXZWJBc3NlbWJseUluc3RhbmNlKiBKU1dlYkFzc2VtYmx5SW5zdGFuY2U6OnRyeUNyZWF0ZShW
TSYgdm0sIEpTR2xvYmFsT2JqZWN0KgogICAgIGpzSW5zdGFuY2UtPmZpbmlzaENyZWF0aW9uKHZt
LCBqc01vZHVsZSwgbW9kdWxlUmVjb3JkKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93
U2NvcGUsIG51bGxwdHIpOwogCi0gICAgLy8gTGV0IGZ1bmNzLCBtZW1vcmllcyBhbmQgdGFibGVz
IGJlIGluaXRpYWxseS1lbXB0eSBsaXN0cyBvZiBjYWxsYWJsZSBKYXZhU2NyaXB0IG9iamVjdHMs
IFdlYkFzc2VtYmx5Lk1lbW9yeSBvYmplY3RzIGFuZCBXZWJBc3NlbWJseS5UYWJsZSBvYmplY3Rz
LCByZXNwZWN0aXZlbHkuCi0gICAgLy8gTGV0IGltcG9ydHMgYmUgYW4gaW5pdGlhbGx5LWVtcHR5
IGxpc3Qgb2YgZXh0ZXJuYWwgdmFsdWVzLgotICAgIGJvb2wgaGFzTWVtb3J5SW1wb3J0ID0gZmFs
c2U7Ci0KICAgICBpZiAoY3JlYXRpb25Nb2RlID09IFdhc206OkNyZWF0aW9uTW9kZTo6RnJvbUpT
KSB7CiAgICAgICAgIC8vIElmIHRoZSBsaXN0IG9mIG1vZHVsZS5pbXBvcnRzIGlzIG5vdCBlbXB0
eSBhbmQgVHlwZShpbXBvcnRPYmplY3QpIGlzIG5vdCBPYmplY3QsIGEgVHlwZUVycm9yIGlzIHRo
cm93bi4KICAgICAgICAgaWYgKG1vZHVsZUluZm9ybWF0aW9uLmltcG9ydHMuc2l6ZSgpICYmICFp
bXBvcnRPYmplY3QpCkBAIC0yMzQsMTEyICsyMzQsMzEgQEAgSlNXZWJBc3NlbWJseUluc3RhbmNl
KiBKU1dlYkFzc2VtYmx5SW5zdGFuY2U6OnRyeUNyZWF0ZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0
KgogICAgICAgICAgICAgZmllbGROYW1lLAogICAgICAgICAgICAgSWRlbnRpZmllcjo6ZnJvbVVp
ZChQcml2YXRlTmFtZShQcml2YXRlTmFtZTo6RGVzY3JpcHRpb24sICJXZWJBc3NlbWJseUltcG9y
dE5hbWUiKSksCiAgICAgICAgIH0pOwotCi0gICAgICAgIC8vIFZhbGlkYXRpb24gZm9yIG1vc3Qg
dHlwZXMgYXJlIGRvbmUgaW4gV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQ6OmluaXRpYWxpemVJbXBv
cnRzQW5kRXhwb3J0cyBhbmQgc2tpcHBlZCBoZXJlLgotICAgICAgICAvLyBFdmVudHVhbGx5IHdl
IHdpbGwgbW92ZSBhbGwgdGhlIGxpbmtpbmcgY29kZSBoZXJlIHRvIFdlYkFzc2VtYmx5TW9kdWxl
UmVjb3JkOjppbml0aWFsaXplSW1wb3J0c0FuZEV4cG9ydHMuCi0gICAgICAgIHN3aXRjaCAoaW1w
b3J0LmtpbmQpIHsKLSAgICAgICAgY2FzZSBXYXNtOjpFeHRlcm5hbEtpbmQ6OkZ1bmN0aW9uOgot
ICAgICAgICBjYXNlIFdhc206OkV4dGVybmFsS2luZDo6R2xvYmFsOgotICAgICAgICBjYXNlIFdh
c206OkV4dGVybmFsS2luZDo6VGFibGU6Ci0gICAgICAgIGNhc2UgV2FzbTo6RXh0ZXJuYWxLaW5k
OjpFeGNlcHRpb246Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgY2FzZSBXYXNtOjpF
eHRlcm5hbEtpbmQ6Ok1lbW9yeToKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0KLSAg
ICAgICAgSlNWYWx1ZSB2YWx1ZTsKLSAgICAgICAgaWYgKGNyZWF0aW9uTW9kZSA9PSBXYXNtOjpD
cmVhdGlvbk1vZGU6OkZyb21KUykgewotICAgICAgICAgICAgLy8gMS4gTGV0IG8gYmUgdGhlIHJl
c3VsdGFudCB2YWx1ZSBvZiBwZXJmb3JtaW5nIEdldChpbXBvcnRPYmplY3QsIGkubW9kdWxlX25h
bWUpLgotICAgICAgICAgICAgSlNWYWx1ZSBpbXBvcnRNb2R1bGVWYWx1ZSA9IGltcG9ydE9iamVj
dC0+Z2V0KGdsb2JhbE9iamVjdCwgbW9kdWxlTmFtZSk7Ci0gICAgICAgICAgICBSRVRVUk5fSUZf
RVhDRVBUSU9OKHRocm93U2NvcGUsIG51bGxwdHIpOwotICAgICAgICAgICAgLy8gMi4gSWYgVHlw
ZShvKSBpcyBub3QgT2JqZWN0LCB0aHJvdyBhIFR5cGVFcnJvci4KLSAgICAgICAgICAgIGlmICgh
aW1wb3J0TW9kdWxlVmFsdWUuaXNPYmplY3QoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZXhj
ZXB0aW9uKGNyZWF0ZVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIGltcG9ydEZhaWxNZXNzYWdlKGlt
cG9ydCwgImltcG9ydCIsICJtdXN0IGJlIGFuIG9iamVjdCIpLCBkZWZhdWx0U291cmNlQXBwZW5k
ZXIsIHJ1bnRpbWVUeXBlRm9yVmFsdWUodm0sIGltcG9ydE1vZHVsZVZhbHVlKSkpOwotCi0gICAg
ICAgICAgICAvLyAzLiBMZXQgdiBiZSB0aGUgdmFsdWUgb2YgcGVyZm9ybWluZyBHZXQobywgaS5p
dGVtX25hbWUpCi0gICAgICAgICAgICBKU09iamVjdCogb2JqZWN0ID0ganNDYXN0PEpTT2JqZWN0
Kj4oaW1wb3J0TW9kdWxlVmFsdWUpOwotICAgICAgICAgICAgdmFsdWUgPSBvYmplY3QtPmdldChn
bG9iYWxPYmplY3QsIGZpZWxkTmFtZSk7Ci0gICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHRocm93U2NvcGUsIG51bGxwdHIpOwotICAgICAgICB9Ci0gICAgICAgIGlmICghdmFsdWUpCi0g
ICAgICAgICAgICB2YWx1ZSA9IGpzVW5kZWZpbmVkKCk7Ci0KLSAgICAgICAgc3dpdGNoIChpbXBv
cnQua2luZCkgewotICAgICAgICBjYXNlIFdhc206OkV4dGVybmFsS2luZDo6RnVuY3Rpb246Ci0g
ICAgICAgIGNhc2UgV2FzbTo6RXh0ZXJuYWxLaW5kOjpHbG9iYWw6Ci0gICAgICAgIGNhc2UgV2Fz
bTo6RXh0ZXJuYWxLaW5kOjpUYWJsZToKLSAgICAgICAgY2FzZSBXYXNtOjpFeHRlcm5hbEtpbmQ6
OkV4Y2VwdGlvbjoKLSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIGNhc2UgV2FzbTo6RXh0
ZXJuYWxLaW5kOjpNZW1vcnk6IHsKLSAgICAgICAgICAgIC8vIDYuIElmIGkgaXMgYSBtZW1vcnkg
aW1wb3J0OgotICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoIWhhc01lbW9yeUltcG9ydCk7IC8v
IFRoaXMgc2hvdWxkIGJlIGd1YXJhbnRlZWQgYnkgYSB2YWxpZGF0aW9uIGZhaWx1cmUuCi0gICAg
ICAgICAgICBSRUxFQVNFX0FTU0VSVChtb2R1bGVJbmZvcm1hdGlvbi5tZW1vcnkpOwotICAgICAg
ICAgICAgaGFzTWVtb3J5SW1wb3J0ID0gdHJ1ZTsKLSAgICAgICAgICAgIC8vIEZvciB0aGUgbW9k
dWxlIGxvYWRlciwgd2UgY2Fubm90IGluaXRpYWxpemUgdGhlIG1lbW9yeSBoZXJlIHNvIHdlIGRl
bGF5IHRoaXMKLSAgICAgICAgICAgIC8vIHVudGlsIFdlYkFzc2VtYmx5TW9kdWxlUmVjb3JkJ3Mg
aW5pdGlhbGl6YXRpb24gb3BlcmF0aW9uLgotICAgICAgICAgICAgaWYgKGNyZWF0aW9uTW9kZSA9
PSBXYXNtOjpDcmVhdGlvbk1vZGU6OkZyb21Nb2R1bGVMb2FkZXIpCi0gICAgICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgICAgICBKU1dlYkFzc2VtYmx5TWVtb3J5KiBtZW1vcnkgPSBqc0R5bmFt
aWNDYXN0PEpTV2ViQXNzZW1ibHlNZW1vcnkqPih2bSwgdmFsdWUpOwotICAgICAgICAgICAgLy8g
aS4gSWYgdiBpcyBub3QgYSBXZWJBc3NlbWJseS5NZW1vcnkgb2JqZWN0LCB0aHJvdyBhIFdlYkFz
c2VtYmx5LkxpbmtFcnJvci4KLSAgICAgICAgICAgIGlmICghbWVtb3J5KQotICAgICAgICAgICAg
ICAgIHJldHVybiBleGNlcHRpb24oY3JlYXRlSlNXZWJBc3NlbWJseUxpbmtFcnJvcihnbG9iYWxP
YmplY3QsIHZtLCBpbXBvcnRGYWlsTWVzc2FnZShpbXBvcnQsICJNZW1vcnkgaW1wb3J0IiwgImlz
IG5vdCBhbiBpbnN0YW5jZSBvZiBXZWJBc3NlbWJseS5NZW1vcnkiKSkpOwotCi0gICAgICAgICAg
ICBXYXNtOjpQYWdlQ291bnQgZGVjbGFyZWRJbml0aWFsID0gbW9kdWxlSW5mb3JtYXRpb24ubWVt
b3J5LmluaXRpYWwoKTsKLSAgICAgICAgICAgIFdhc206OlBhZ2VDb3VudCBpbXBvcnRlZEluaXRp
YWwgPSBtZW1vcnktPm1lbW9yeSgpLmluaXRpYWwoKTsKLSAgICAgICAgICAgIGlmIChpbXBvcnRl
ZEluaXRpYWwgPCBkZWNsYXJlZEluaXRpYWwpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGV4Y2Vw
dGlvbihjcmVhdGVKU1dlYkFzc2VtYmx5TGlua0Vycm9yKGdsb2JhbE9iamVjdCwgdm0sIGltcG9y
dEZhaWxNZXNzYWdlKGltcG9ydCwgIk1lbW9yeSBpbXBvcnQiLCAicHJvdmlkZWQgYW4gJ2luaXRp
YWwnIHRoYXQgaXMgc21hbGxlciB0aGFuIHRoZSBtb2R1bGUncyBkZWNsYXJlZCAnaW5pdGlhbCcg
aW1wb3J0IG1lbW9yeSBzaXplIikpKTsKLQotICAgICAgICAgICAgaWYgKFdhc206OlBhZ2VDb3Vu
dCBkZWNsYXJlZE1heGltdW0gPSBtb2R1bGVJbmZvcm1hdGlvbi5tZW1vcnkubWF4aW11bSgpKSB7
Ci0gICAgICAgICAgICAgICAgV2FzbTo6UGFnZUNvdW50IGltcG9ydGVkTWF4aW11bSA9IG1lbW9y
eS0+bWVtb3J5KCkubWF4aW11bSgpOwotICAgICAgICAgICAgICAgIGlmICghaW1wb3J0ZWRNYXhp
bXVtKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXhjZXB0aW9uKGNyZWF0ZUpTV2ViQXNz
ZW1ibHlMaW5rRXJyb3IoZ2xvYmFsT2JqZWN0LCB2bSwgaW1wb3J0RmFpbE1lc3NhZ2UoaW1wb3J0
LCAiTWVtb3J5IGltcG9ydCIsICJkaWQgbm90IGhhdmUgYSAnbWF4aW11bScgYnV0IHRoZSBtb2R1
bGUgcmVxdWlyZXMgdGhhdCBpdCBkb2VzIikpKTsKLQotICAgICAgICAgICAgICAgIGlmIChpbXBv
cnRlZE1heGltdW0gPiBkZWNsYXJlZE1heGltdW0pCi0gICAgICAgICAgICAgICAgICAgIHJldHVy
biBleGNlcHRpb24oY3JlYXRlSlNXZWJBc3NlbWJseUxpbmtFcnJvcihnbG9iYWxPYmplY3QsIHZt
LCBpbXBvcnRGYWlsTWVzc2FnZShpbXBvcnQsICJNZW1vcnkgaW1wb3J0IiwgInByb3ZpZGVkIGEg
J21heGltdW0nIHRoYXQgaXMgbGFyZ2VyIHRoYW4gdGhlIG1vZHVsZSdzIGRlY2xhcmVkICdtYXhp
bXVtJyBpbXBvcnQgbWVtb3J5IHNpemUiKSkpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAg
ICBpZiAoKG1lbW9yeS0+bWVtb3J5KCkuc2hhcmluZ01vZGUoKSA9PSBXYXNtOjpNZW1vcnlTaGFy
aW5nTW9kZTo6U2hhcmVkKSAhPSBtb2R1bGVJbmZvcm1hdGlvbi5tZW1vcnkuaXNTaGFyZWQoKSkK
LSAgICAgICAgICAgICAgICByZXR1cm4gZXhjZXB0aW9uKGNyZWF0ZUpTV2ViQXNzZW1ibHlMaW5r
RXJyb3IoZ2xvYmFsT2JqZWN0LCB2bSwgaW1wb3J0RmFpbE1lc3NhZ2UoaW1wb3J0LCAiTWVtb3J5
IGltcG9ydCIsICJwcm92aWRlZCBhICdzaGFyZWQnIHRoYXQgaXMgZGlmZmVybnQgZnJvbSB0aGUg
bW9kdWxlJ3MgZGVjbGFyZWQgJ3NoYXJlZCcgaW1wb3J0IG1lbW9yeSBhdHRyaWJ1dGUiKSkpOwot
Ci0gICAgICAgICAgICAvLyBpaS4gQXBwZW5kIHYgdG8gbWVtb3JpZXMuCi0gICAgICAgICAgICAv
LyBpaWkuIEFwcGVuZCB2LltbTWVtb3J5XV0gdG8gaW1wb3J0cy4KLSAgICAgICAgICAgIGpzSW5z
dGFuY2UtPnNldE1lbW9yeSh2bSwgbWVtb3J5KTsKLSAgICAgICAgICAgIFJFVFVSTl9JRl9FWENF
UFRJT04odGhyb3dTY29wZSwgbnVsbHB0cik7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAg
fQotICAgICAgICB9CiAgICAgfQogICAgIEFTU0VSVChtb2R1bGVSZWNvcmQtPmltcG9ydEVudHJp
ZXMoKS5zaXplKCkgPT0gbW9kdWxlSW5mb3JtYXRpb24uaW1wb3J0cy5zaXplKCkpOwogCi0gICAg
ewotICAgICAgICBpZiAoISFtb2R1bGVJbmZvcm1hdGlvbi5tZW1vcnkgJiYgbW9kdWxlSW5mb3Jt
YXRpb24ubWVtb3J5LmlzSW1wb3J0KCkpIHsKLSAgICAgICAgICAgIC8vIFdlIHNob3VsZCBlaXRo
ZXIgaGF2ZSBhIE1lbW9yeSBpbXBvcnQgb3Igd2Ugc2hvdWxkIGhhdmUgdGhyb3duIGFuIGV4Y2Vw
dGlvbi4KLSAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKGhhc01lbW9yeUltcG9ydCk7Ci0gICAg
ICAgIH0KLQotICAgICAgICBpZiAobW9kdWxlSW5mb3JtYXRpb24ubWVtb3J5ICYmICFoYXNNZW1v
cnlJbXBvcnQpIHsKLSAgICAgICAgICAgIC8vIFdlIGNyZWF0ZSBhIG1lbW9yeSB3aGVuIGl0J3Mg
YSBtZW1vcnkgZGVmaW5pdGlvbi4KLSAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKCFtb2R1bGVJ
bmZvcm1hdGlvbi5tZW1vcnkuaXNJbXBvcnQoKSk7Ci0KLSAgICAgICAgICAgIGF1dG8qIGpzTWVt
b3J5ID0gSlNXZWJBc3NlbWJseU1lbW9yeTo6dHJ5Q3JlYXRlKGdsb2JhbE9iamVjdCwgdm0sIGds
b2JhbE9iamVjdC0+d2ViQXNzZW1ibHlNZW1vcnlTdHJ1Y3R1cmUoKSk7Ci0gICAgICAgICAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIG51bGxwdHIpOworICAgIGJvb2wgaGFzTWVt
b3J5SW1wb3J0ID0gbW9kdWxlSW5mb3JtYXRpb24ubWVtb3J5LmlzSW1wb3J0KCk7CisgICAgaWYg
KG1vZHVsZUluZm9ybWF0aW9uLm1lbW9yeSAmJiAhaGFzTWVtb3J5SW1wb3J0KSB7CisgICAgICAg
IC8vIFdlIGNyZWF0ZSBhIG1lbW9yeSB3aGVuIGl0J3MgYSBtZW1vcnkgZGVmaW5pdGlvbi4KKyAg
ICAgICAgYXV0byoganNNZW1vcnkgPSBKU1dlYkFzc2VtYmx5TWVtb3J5Ojp0cnlDcmVhdGUoZ2xv
YmFsT2JqZWN0LCB2bSwgZ2xvYmFsT2JqZWN0LT53ZWJBc3NlbWJseU1lbW9yeVN0cnVjdHVyZSgp
KTsKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCBudWxscHRyKTsKIAot
ICAgICAgICAgICAgUmVmUHRyPFdhc206Ok1lbW9yeT4gbWVtb3J5ID0gV2FzbTo6TWVtb3J5Ojp0
cnlDcmVhdGUobW9kdWxlSW5mb3JtYXRpb24ubWVtb3J5LmluaXRpYWwoKSwgbW9kdWxlSW5mb3Jt
YXRpb24ubWVtb3J5Lm1heGltdW0oKSwgbW9kdWxlSW5mb3JtYXRpb24ubWVtb3J5LmlzU2hhcmVk
KCkgPyBXYXNtOjpNZW1vcnlTaGFyaW5nTW9kZTo6U2hhcmVkOiBXYXNtOjpNZW1vcnlTaGFyaW5n
TW9kZTo6RGVmYXVsdCwKLSAgICAgICAgICAgICAgICBbJnZtXSAoV2FzbTo6TWVtb3J5OjpOb3Rp
ZnlQcmVzc3VyZSkgeyB2bS5oZWFwLmNvbGxlY3RBc3luYyhDb2xsZWN0aW9uU2NvcGU6OkZ1bGwp
OyB9LAotICAgICAgICAgICAgICAgIFsmdm1dIChXYXNtOjpNZW1vcnk6OlN5bmNUcnlUb1JlY2xh
aW0pIHsgdm0uaGVhcC5jb2xsZWN0U3luYyhDb2xsZWN0aW9uU2NvcGU6OkZ1bGwpOyB9LAotICAg
ICAgICAgICAgICAgIFsmdm0sIGpzTWVtb3J5XSAoV2FzbTo6TWVtb3J5OjpHcm93U3VjY2Vzcywg
V2FzbTo6UGFnZUNvdW50IG9sZFBhZ2VDb3VudCwgV2FzbTo6UGFnZUNvdW50IG5ld1BhZ2VDb3Vu
dCkgeyBqc01lbW9yeS0+Z3Jvd1N1Y2Nlc3NDYWxsYmFjayh2bSwgb2xkUGFnZUNvdW50LCBuZXdQ
YWdlQ291bnQpOyB9KTsKLSAgICAgICAgICAgIGlmICghbWVtb3J5KQotICAgICAgICAgICAgICAg
IHJldHVybiBleGNlcHRpb24oY3JlYXRlT3V0T2ZNZW1vcnlFcnJvcihnbG9iYWxPYmplY3QpKTsK
KyAgICAgICAgUmVmUHRyPFdhc206Ok1lbW9yeT4gbWVtb3J5ID0gV2FzbTo6TWVtb3J5Ojp0cnlD
cmVhdGUobW9kdWxlSW5mb3JtYXRpb24ubWVtb3J5LmluaXRpYWwoKSwgbW9kdWxlSW5mb3JtYXRp
b24ubWVtb3J5Lm1heGltdW0oKSwgbW9kdWxlSW5mb3JtYXRpb24ubWVtb3J5LmlzU2hhcmVkKCkg
PyBXYXNtOjpNZW1vcnlTaGFyaW5nTW9kZTo6U2hhcmVkOiBXYXNtOjpNZW1vcnlTaGFyaW5nTW9k
ZTo6RGVmYXVsdCwKKyAgICAgICAgICAgIFsmdm1dKFdhc206Ok1lbW9yeTo6Tm90aWZ5UHJlc3N1
cmUpIHsgdm0uaGVhcC5jb2xsZWN0QXN5bmMoQ29sbGVjdGlvblNjb3BlOjpGdWxsKTsgfSwKKyAg
ICAgICAgICAgIFsmdm1dKFdhc206Ok1lbW9yeTo6U3luY1RyeVRvUmVjbGFpbSkgeyB2bS5oZWFw
LmNvbGxlY3RTeW5jKENvbGxlY3Rpb25TY29wZTo6RnVsbCk7IH0sCisgICAgICAgICAgICBbJnZt
LCBqc01lbW9yeV0oV2FzbTo6TWVtb3J5OjpHcm93U3VjY2VzcywgV2FzbTo6UGFnZUNvdW50IG9s
ZFBhZ2VDb3VudCwgV2FzbTo6UGFnZUNvdW50IG5ld1BhZ2VDb3VudCkgeyBqc01lbW9yeS0+Z3Jv
d1N1Y2Nlc3NDYWxsYmFjayh2bSwgb2xkUGFnZUNvdW50LCBuZXdQYWdlQ291bnQpOyB9CisgICAg
ICAgICk7CisgICAgICAgIGlmICghbWVtb3J5KQorICAgICAgICAgICAgcmV0dXJuIGV4Y2VwdGlv
bihjcmVhdGVPdXRPZk1lbW9yeUVycm9yKGdsb2JhbE9iamVjdCkpOwogCi0gICAgICAgICAgICBq
c01lbW9yeS0+YWRvcHQobWVtb3J5LnJlbGVhc2VOb25OdWxsKCkpOwotICAgICAgICAgICAganNJ
bnN0YW5jZS0+c2V0TWVtb3J5KHZtLCBqc01lbW9yeSk7Ci0gICAgICAgICAgICBSRVRVUk5fSUZf
RVhDRVBUSU9OKHRocm93U2NvcGUsIG51bGxwdHIpOwotICAgICAgICB9CisgICAgICAgIGpzTWVt
b3J5LT5hZG9wdChtZW1vcnkucmVsZWFzZU5vbk51bGwoKSk7CisgICAgICAgIGpzSW5zdGFuY2Ut
PnNldE1lbW9yeSh2bSwganNNZW1vcnkpOworICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRo
cm93U2NvcGUsIG51bGxwdHIpOwogICAgIH0KLSAgICAKKwogICAgIGlmICghanNJbnN0YW5jZS0+
bWVtb3J5KCkpIHsKICAgICAgICAgLy8gTWFrZSBzdXJlIHdlIGhhdmUgYSBkdW1teSBtZW1vcnks
IHNvIHRoYXQgd2FzbSAtPiB3YXNtIHRodW5rcyBhdm9pZCBjaGVja2luZyBmb3IgYSBudWxscHRy
IE1lbW9yeSB3aGVuIHRyeWluZyB0byBzZXQgcGlubmVkIHJlZ2lzdGVycy4KKyAgICAgICAgLy8g
V2hlbiB0aGVyZSBpcyBhIG1lbW9yeSBpbXBvcnQsIHRoaXMgd2lsbCBiZSByZXBsYWNlZCBsYXRl
ciBpbiB0aGUgbW9kdWxlIHJlY29yZCBpbXBvcnQgaW5pdGlhbGl6YXRpb24uCiAgICAgICAgIGF1
dG8qIGpzTWVtb3J5ID0gSlNXZWJBc3NlbWJseU1lbW9yeTo6dHJ5Q3JlYXRlKGdsb2JhbE9iamVj
dCwgdm0sIGdsb2JhbE9iamVjdC0+d2ViQXNzZW1ibHlNZW1vcnlTdHJ1Y3R1cmUoKSk7CiAgICAg
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgbnVsbHB0cik7CiAgICAgICAgIGpz
TWVtb3J5LT5hZG9wdChXYXNtOjpNZW1vcnk6OmNyZWF0ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlUmVjb3JkLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlUmVjb3JkLmNwcApp
bmRleCA2YWFkNjIxNzJiZDk1NjJiZWQ4MzRmNjA1NGU3N2MxMTY0YWM3ZGQ3Li41OTllMjM0ZjY1
NTQ0MGFjZTJlNzViODg0ZTU1YjI0OTY3Mjk3MGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZVJlY29yZC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQuY3BwCkBAIC0x
MzMsMjAgKzEzMyw2IEBAIHZvaWQgV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQ6OmluaXRpYWxpemVJ
bXBvcnRzQW5kRXhwb3J0cyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsCiAgICAgfTsKIAogICAgIGZv
ciAoY29uc3QgYXV0byYgaW1wb3J0IDogbW9kdWxlSW5mb3JtYXRpb24uaW1wb3J0cykgewotICAg
ICAgICAvLyBWYWxpZGF0aW9uIGFuZCBsaW5raW5nIG90aGVyIHRoYW4gV2FzbTo6RXh0ZXJuYWxL
aW5kOjpGdW5jdGlvbiBpcyBhbHJlYWR5IGRvbmUgaW4gSlNXZWJBc3NlbWJseUluc3RhbmNlLgot
ICAgICAgICAvLyBFdmVudHVhbGx5IHdlIHdpbGwgbW92ZSBhbGwgdGhlIGxpbmtpbmcgY29kZSBp
biBKU1dlYkFzc2VtYmx5SW5zdGFuY2UgaGVyZSBhbmQgcmVtb3ZlIHRoaXMgc3dpdGNoIHN0YXRl
bWVudC4KLSAgICAgICAgc3dpdGNoIChpbXBvcnQua2luZCkgewotICAgICAgICBjYXNlIFdhc206
OkV4dGVybmFsS2luZDo6RnVuY3Rpb246Ci0gICAgICAgIGNhc2UgV2FzbTo6RXh0ZXJuYWxLaW5k
OjpHbG9iYWw6Ci0gICAgICAgIGNhc2UgV2FzbTo6RXh0ZXJuYWxLaW5kOjpUYWJsZToKLSAgICAg
ICAgY2FzZSBXYXNtOjpFeHRlcm5hbEtpbmQ6OkV4Y2VwdGlvbjoKLSAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICBjYXNlIFdhc206OkV4dGVybmFsS2luZDo6TWVtb3J5OgotICAgICAgICAgICAg
aWYgKGNyZWF0aW9uTW9kZSA9PSBXYXNtOjpDcmVhdGlvbk1vZGU6OkZyb21KUykKLSAgICAgICAg
ICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0KICAgICAg
ICAgSWRlbnRpZmllciBtb2R1bGVOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgU3Ry
aW5nOjpmcm9tVVRGOChpbXBvcnQubW9kdWxlKSk7CiAgICAgICAgIElkZW50aWZpZXIgZmllbGRO
YW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgU3RyaW5nOjpmcm9tVVRGOChpbXBvcnQu
ZmllbGQpKTsKICAgICAgICAgSlNWYWx1ZSB2YWx1ZTsKQEAgLTQwOSw3ICszOTUsNiBAQCB2b2lk
IFdlYkFzc2VtYmx5TW9kdWxlUmVjb3JkOjppbml0aWFsaXplSW1wb3J0c0FuZEV4cG9ydHMoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbAogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIAotICAg
ICAgICAvLyBNZW1vcnkgaW5pdGlhbGl6YXRpb24gd2lsbCBvbmx5IG9jY3VyIGhlcmUgaWYgdGhl
IGNyZWF0aW9uIG1vZGUgd2FzIHRocm91Z2ggdGhlIG1vZHVsZSBsb2FkZXIuCiAgICAgICAgIGNh
c2UgV2FzbTo6RXh0ZXJuYWxLaW5kOjpNZW1vcnk6CiAgICAgICAgICAgICBKU1dlYkFzc2VtYmx5
TWVtb3J5KiBtZW1vcnkgPSBqc0R5bmFtaWNDYXN0PEpTV2ViQXNzZW1ibHlNZW1vcnkqPih2bSwg
dmFsdWUpOwogICAgICAgICAgICAgLy8gaS4gSWYgdiBpcyBub3QgYSBXZWJBc3NlbWJseS5NZW1v
cnkgb2JqZWN0LCB0aHJvdyBhIFdlYkFzc2VtYmx5LkxpbmtFcnJvci4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvQ2hhbmdlTG9nCmluZGV4IGNmY2MxNjUxYjM4ZWRlZjE0NmQ0NThiNGY1ZTJjMzE3MDk5ZTRl
MDYuLmIwNmI1MDFkMTU4NDk5N2Y3YWFkYjg3MzkxZTBlY2ZlY2E3YzViMDkgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIxLTEyLTE1ICBBc3VtdSBU
YWtpa2F3YSAgPGFzdW11QGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dhc21dIFVuaWZ5IG1lbW9y
eSBpbXBvcnQgaGFuZGxpbmcgaW4gbW9kdWxlIGxvYWRlciBhbmQgSlMgY2FzZXMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDExNgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkanVzdCBXYXNtIFdQVCB0
ZXN0IGV4cGVjdGF0aW9ucyBub3cgdGhhdCBnZXR0ZXIgb3JkZXJpbmcgdGVzdHMKKyAgICAgICAg
c2hvdWxkIHBhc3MuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9j
b25zdHJ1Y3Rvci9pbnN0YW50aWF0ZS5hbnktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL2NvbnN0cnVjdG9yL2luc3RhbnRpYXRlLmFueS53b3Jr
ZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBp
L2luc3RhbmNlL2NvbnN0cnVjdG9yLmFueS1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL3dhc20vanNhcGkvaW5zdGFuY2UvY29uc3RydWN0b3IuYW55Lndvcmtlci1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vd2ViYXBpL2lu
c3RhbnRpYXRlU3RyZWFtaW5nLmFueS1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL3dhc20vd2ViYXBpL2luc3RhbnRpYXRlU3RyZWFtaW5nLmFueS53b3JrZXItZXhw
ZWN0ZWQudHh0OgorCiAyMDIxLTEyLTEzICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBp
Z2FsaWEuY29tPgogCiAgICAgICAgIFtjc3MtZmxleGJveF0gQWJzb2x1dGVseSBwb3NpdGlvbmVk
IGNoaWxkcmVuIHNob3VsZCBiZSBhbGlnbmVkIHVzaW5nIHRoZSBtYXJnaW4gYm94CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNh
cGkvY29uc3RydWN0b3IvaW5zdGFudGlhdGUuYW55LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9jb25zdHJ1Y3Rvci9p
bnN0YW50aWF0ZS5hbnktZXhwZWN0ZWQudHh0CmluZGV4IDUwNjQ3YzI1M2RmOTU5MjUzYjJkZWMz
OWJlZGNhMzlkNmZlN2NiMDMuLjg2NDJhNWVhZTA2MDEzNTFhZmQxNTU0MjEzYjgzNmUxZDc5MTMw
ODAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2FzbS9qc2FwaS9jb25zdHJ1Y3Rvci9pbnN0YW50aWF0ZS5hbnktZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2Fw
aS9jb25zdHJ1Y3Rvci9pbnN0YW50aWF0ZS5hbnktZXhwZWN0ZWQudHh0CkBAIC05LDggKzksOCBA
QCBQQVNTIEVtcHR5IG1vZHVsZSB3aXRoIHVuZGVmaW5lZCBpbXBvcnRzIGFyZ3VtZW50OiBCdWZm
ZXJTb3VyY2UgYXJndW1lbnQKIFBBU1MgRW1wdHkgbW9kdWxlIHdpdGggdW5kZWZpbmVkIGltcG9y
dHMgYXJndW1lbnQ6IE1vZHVsZSBhcmd1bWVudAogUEFTUyBFbXB0eSBtb2R1bGUgd2l0aCBlbXB0
eSBpbXBvcnRzIGFyZ3VtZW50OiBCdWZmZXJTb3VyY2UgYXJndW1lbnQKIFBBU1MgRW1wdHkgbW9k
dWxlIHdpdGggZW1wdHkgaW1wb3J0cyBhcmd1bWVudDogTW9kdWxlIGFyZ3VtZW50Ci1GQUlMIGdl
dHRlciBvcmRlciBmb3IgaW1wb3J0cyBvYmplY3Q6IEJ1ZmZlclNvdXJjZSBhcmd1bWVudCBhc3Nl
cnRfYXJyYXlfZXF1YWxzOiBleHBlY3RlZCBwcm9wZXJ0eSAxIHRvIGJlICJnbG9iYWwxIGdldHRl
ciIgYnV0IGdvdCAibWVtb3J5IGdldHRlciIgKGV4cGVjdGVkIGFycmF5IFsibW9kdWxlIGdldHRl
ciIsICJnbG9iYWwxIGdldHRlciIsICJtb2R1bGUyIGdldHRlciIsICJnbG9iYWwzIGdldHRlciIs
ICJtb2R1bGUgZ2V0dGVyIiwgIm1lbW9yeSBnZXR0ZXIiLCAibW9kdWxlIGdldHRlciIsICJnbG9i
YWwyIGdldHRlciJdIGdvdCBbIm1vZHVsZSBnZXR0ZXIiLCAibWVtb3J5IGdldHRlciIsICJtb2R1
bGUgZ2V0dGVyIiwgImdsb2JhbDEgZ2V0dGVyIiwgIm1vZHVsZTIgZ2V0dGVyIiwgImdsb2JhbDMg
Z2V0dGVyIiwgIm1vZHVsZSBnZXR0ZXIiLCAiZ2xvYmFsMiBnZXR0ZXIiXSkKLUZBSUwgZ2V0dGVy
IG9yZGVyIGZvciBpbXBvcnRzIG9iamVjdDogTW9kdWxlIGFyZ3VtZW50IGFzc2VydF9hcnJheV9l
cXVhbHM6IGV4cGVjdGVkIHByb3BlcnR5IDEgdG8gYmUgImdsb2JhbDEgZ2V0dGVyIiBidXQgZ290
ICJtZW1vcnkgZ2V0dGVyIiAoZXhwZWN0ZWQgYXJyYXkgWyJtb2R1bGUgZ2V0dGVyIiwgImdsb2Jh
bDEgZ2V0dGVyIiwgIm1vZHVsZTIgZ2V0dGVyIiwgImdsb2JhbDMgZ2V0dGVyIiwgIm1vZHVsZSBn
ZXR0ZXIiLCAibWVtb3J5IGdldHRlciIsICJtb2R1bGUgZ2V0dGVyIiwgImdsb2JhbDIgZ2V0dGVy
Il0gZ290IFsibW9kdWxlIGdldHRlciIsICJtZW1vcnkgZ2V0dGVyIiwgIm1vZHVsZSBnZXR0ZXIi
LCAiZ2xvYmFsMSBnZXR0ZXIiLCAibW9kdWxlMiBnZXR0ZXIiLCAiZ2xvYmFsMyBnZXR0ZXIiLCAi
bW9kdWxlIGdldHRlciIsICJnbG9iYWwyIGdldHRlciJdKQorUEFTUyBnZXR0ZXIgb3JkZXIgZm9y
IGltcG9ydHMgb2JqZWN0OiBCdWZmZXJTb3VyY2UgYXJndW1lbnQKK1BBU1MgZ2V0dGVyIG9yZGVy
IGZvciBpbXBvcnRzIG9iamVjdDogTW9kdWxlIGFyZ3VtZW50CiBQQVNTIGltcG9ydHM6IEJ1ZmZl
clNvdXJjZSBhcmd1bWVudAogUEFTUyBpbXBvcnRzOiBNb2R1bGUgYXJndW1lbnQKIFBBU1MgaW1w
b3J0cyB3aXRoIGVtcHR5IG1vZHVsZSBuYW1lczogQnVmZmVyU291cmNlIGFyZ3VtZW50CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20v
anNhcGkvY29uc3RydWN0b3IvaW5zdGFudGlhdGUuYW55Lndvcmtlci1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvY29u
c3RydWN0b3IvaW5zdGFudGlhdGUuYW55Lndvcmtlci1leHBlY3RlZC50eHQKaW5kZXggNTA2NDdj
MjUzZGY5NTkyNTNiMmRlYzM5YmVkY2EzOWQ2ZmU3Y2IwMy4uODY0MmE1ZWFlMDYwMTM1MWFmZDE1
NTQyMTNiODM2ZTFkNzkxMzA4MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL2NvbnN0cnVjdG9yL2luc3RhbnRpYXRlLmFu
eS53b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9jb25zdHJ1Y3Rvci9pbnN0YW50aWF0ZS5hbnkud29y
a2VyLWV4cGVjdGVkLnR4dApAQCAtOSw4ICs5LDggQEAgUEFTUyBFbXB0eSBtb2R1bGUgd2l0aCB1
bmRlZmluZWQgaW1wb3J0cyBhcmd1bWVudDogQnVmZmVyU291cmNlIGFyZ3VtZW50CiBQQVNTIEVt
cHR5IG1vZHVsZSB3aXRoIHVuZGVmaW5lZCBpbXBvcnRzIGFyZ3VtZW50OiBNb2R1bGUgYXJndW1l
bnQKIFBBU1MgRW1wdHkgbW9kdWxlIHdpdGggZW1wdHkgaW1wb3J0cyBhcmd1bWVudDogQnVmZmVy
U291cmNlIGFyZ3VtZW50CiBQQVNTIEVtcHR5IG1vZHVsZSB3aXRoIGVtcHR5IGltcG9ydHMgYXJn
dW1lbnQ6IE1vZHVsZSBhcmd1bWVudAotRkFJTCBnZXR0ZXIgb3JkZXIgZm9yIGltcG9ydHMgb2Jq
ZWN0OiBCdWZmZXJTb3VyY2UgYXJndW1lbnQgYXNzZXJ0X2FycmF5X2VxdWFsczogZXhwZWN0ZWQg
cHJvcGVydHkgMSB0byBiZSAiZ2xvYmFsMSBnZXR0ZXIiIGJ1dCBnb3QgIm1lbW9yeSBnZXR0ZXIi
IChleHBlY3RlZCBhcnJheSBbIm1vZHVsZSBnZXR0ZXIiLCAiZ2xvYmFsMSBnZXR0ZXIiLCAibW9k
dWxlMiBnZXR0ZXIiLCAiZ2xvYmFsMyBnZXR0ZXIiLCAibW9kdWxlIGdldHRlciIsICJtZW1vcnkg
Z2V0dGVyIiwgIm1vZHVsZSBnZXR0ZXIiLCAiZ2xvYmFsMiBnZXR0ZXIiXSBnb3QgWyJtb2R1bGUg
Z2V0dGVyIiwgIm1lbW9yeSBnZXR0ZXIiLCAibW9kdWxlIGdldHRlciIsICJnbG9iYWwxIGdldHRl
ciIsICJtb2R1bGUyIGdldHRlciIsICJnbG9iYWwzIGdldHRlciIsICJtb2R1bGUgZ2V0dGVyIiwg
Imdsb2JhbDIgZ2V0dGVyIl0pCi1GQUlMIGdldHRlciBvcmRlciBmb3IgaW1wb3J0cyBvYmplY3Q6
IE1vZHVsZSBhcmd1bWVudCBhc3NlcnRfYXJyYXlfZXF1YWxzOiBleHBlY3RlZCBwcm9wZXJ0eSAx
IHRvIGJlICJnbG9iYWwxIGdldHRlciIgYnV0IGdvdCAibWVtb3J5IGdldHRlciIgKGV4cGVjdGVk
IGFycmF5IFsibW9kdWxlIGdldHRlciIsICJnbG9iYWwxIGdldHRlciIsICJtb2R1bGUyIGdldHRl
ciIsICJnbG9iYWwzIGdldHRlciIsICJtb2R1bGUgZ2V0dGVyIiwgIm1lbW9yeSBnZXR0ZXIiLCAi
bW9kdWxlIGdldHRlciIsICJnbG9iYWwyIGdldHRlciJdIGdvdCBbIm1vZHVsZSBnZXR0ZXIiLCAi
bWVtb3J5IGdldHRlciIsICJtb2R1bGUgZ2V0dGVyIiwgImdsb2JhbDEgZ2V0dGVyIiwgIm1vZHVs
ZTIgZ2V0dGVyIiwgImdsb2JhbDMgZ2V0dGVyIiwgIm1vZHVsZSBnZXR0ZXIiLCAiZ2xvYmFsMiBn
ZXR0ZXIiXSkKK1BBU1MgZ2V0dGVyIG9yZGVyIGZvciBpbXBvcnRzIG9iamVjdDogQnVmZmVyU291
cmNlIGFyZ3VtZW50CitQQVNTIGdldHRlciBvcmRlciBmb3IgaW1wb3J0cyBvYmplY3Q6IE1vZHVs
ZSBhcmd1bWVudAogUEFTUyBpbXBvcnRzOiBCdWZmZXJTb3VyY2UgYXJndW1lbnQKIFBBU1MgaW1w
b3J0czogTW9kdWxlIGFyZ3VtZW50CiBQQVNTIGltcG9ydHMgd2l0aCBlbXB0eSBtb2R1bGUgbmFt
ZXM6IEJ1ZmZlclNvdXJjZSBhcmd1bWVudApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL2luc3RhbmNlL2NvbnN0cnVjdG9y
LmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dhc20vanNhcGkvaW5zdGFuY2UvY29uc3RydWN0b3IuYW55LWV4cGVjdGVkLnR4dApp
bmRleCA1NzM4ZDc0ODIyZWExOTk5Y2UwMjUyOTIzYzg2MjMxZjdjOTI5NDg4Li4xNTQ0YWQ5NTIy
YTAzMzEyYmMyNTRhN2EyOWE4NjRlM2RiNDM1YTY1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvaW5zdGFuY2UvY29uc3Ry
dWN0b3IuYW55LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvaW5zdGFuY2UvY29uc3RydWN0b3IuYW55LWV4cGVj
dGVkLnR4dApAQCAtNyw3ICs3LDcgQEAgUEFTUyBDYWxsaW5nCiBQQVNTIEVtcHR5IG1vZHVsZSB3
aXRob3V0IGltcG9ydHMgYXJndW1lbnQKIFBBU1MgRW1wdHkgbW9kdWxlIHdpdGggdW5kZWZpbmVk
IGltcG9ydHMgYXJndW1lbnQKIFBBU1MgRW1wdHkgbW9kdWxlIHdpdGggZW1wdHkgaW1wb3J0cyBh
cmd1bWVudAotRkFJTCBnZXR0ZXIgb3JkZXIgZm9yIGltcG9ydHMgb2JqZWN0IGFzc2VydF9hcnJh
eV9lcXVhbHM6IGV4cGVjdGVkIHByb3BlcnR5IDEgdG8gYmUgImdsb2JhbDEgZ2V0dGVyIiBidXQg
Z290ICJtZW1vcnkgZ2V0dGVyIiAoZXhwZWN0ZWQgYXJyYXkgWyJtb2R1bGUgZ2V0dGVyIiwgImds
b2JhbDEgZ2V0dGVyIiwgIm1vZHVsZTIgZ2V0dGVyIiwgImdsb2JhbDMgZ2V0dGVyIiwgIm1vZHVs
ZSBnZXR0ZXIiLCAibWVtb3J5IGdldHRlciIsICJtb2R1bGUgZ2V0dGVyIiwgImdsb2JhbDIgZ2V0
dGVyIl0gZ290IFsibW9kdWxlIGdldHRlciIsICJtZW1vcnkgZ2V0dGVyIiwgIm1vZHVsZSBnZXR0
ZXIiLCAiZ2xvYmFsMSBnZXR0ZXIiLCAibW9kdWxlMiBnZXR0ZXIiLCAiZ2xvYmFsMyBnZXR0ZXIi
LCAibW9kdWxlIGdldHRlciIsICJnbG9iYWwyIGdldHRlciJdKQorUEFTUyBnZXR0ZXIgb3JkZXIg
Zm9yIGltcG9ydHMgb2JqZWN0CiBQQVNTIGltcG9ydHMKIFBBU1MgaW1wb3J0cyB3aXRoIGVtcHR5
IG1vZHVsZSBuYW1lcwogUEFTUyBpbXBvcnRzIHdpdGggZW1wdHkgbmFtZXMKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9p
bnN0YW5jZS9jb25zdHJ1Y3Rvci5hbnkud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9pbnN0YW5jZS9jb25z
dHJ1Y3Rvci5hbnkud29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCA1NzM4ZDc0ODIyZWExOTk5Y2Uw
MjUyOTIzYzg2MjMxZjdjOTI5NDg4Li4xNTQ0YWQ5NTIyYTAzMzEyYmMyNTRhN2EyOWE4NjRlM2Ri
NDM1YTY1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dhc20vanNhcGkvaW5zdGFuY2UvY29uc3RydWN0b3IuYW55Lndvcmtlci1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
YXNtL2pzYXBpL2luc3RhbmNlL2NvbnN0cnVjdG9yLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CkBA
IC03LDcgKzcsNyBAQCBQQVNTIENhbGxpbmcKIFBBU1MgRW1wdHkgbW9kdWxlIHdpdGhvdXQgaW1w
b3J0cyBhcmd1bWVudAogUEFTUyBFbXB0eSBtb2R1bGUgd2l0aCB1bmRlZmluZWQgaW1wb3J0cyBh
cmd1bWVudAogUEFTUyBFbXB0eSBtb2R1bGUgd2l0aCBlbXB0eSBpbXBvcnRzIGFyZ3VtZW50Ci1G
QUlMIGdldHRlciBvcmRlciBmb3IgaW1wb3J0cyBvYmplY3QgYXNzZXJ0X2FycmF5X2VxdWFsczog
ZXhwZWN0ZWQgcHJvcGVydHkgMSB0byBiZSAiZ2xvYmFsMSBnZXR0ZXIiIGJ1dCBnb3QgIm1lbW9y
eSBnZXR0ZXIiIChleHBlY3RlZCBhcnJheSBbIm1vZHVsZSBnZXR0ZXIiLCAiZ2xvYmFsMSBnZXR0
ZXIiLCAibW9kdWxlMiBnZXR0ZXIiLCAiZ2xvYmFsMyBnZXR0ZXIiLCAibW9kdWxlIGdldHRlciIs
ICJtZW1vcnkgZ2V0dGVyIiwgIm1vZHVsZSBnZXR0ZXIiLCAiZ2xvYmFsMiBnZXR0ZXIiXSBnb3Qg
WyJtb2R1bGUgZ2V0dGVyIiwgIm1lbW9yeSBnZXR0ZXIiLCAibW9kdWxlIGdldHRlciIsICJnbG9i
YWwxIGdldHRlciIsICJtb2R1bGUyIGdldHRlciIsICJnbG9iYWwzIGdldHRlciIsICJtb2R1bGUg
Z2V0dGVyIiwgImdsb2JhbDIgZ2V0dGVyIl0pCitQQVNTIGdldHRlciBvcmRlciBmb3IgaW1wb3J0
cyBvYmplY3QKIFBBU1MgaW1wb3J0cwogUEFTUyBpbXBvcnRzIHdpdGggZW1wdHkgbW9kdWxlIG5h
bWVzCiBQQVNTIGltcG9ydHMgd2l0aCBlbXB0eSBuYW1lcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL3dlYmFwaS9pbnN0YW50aWF0
ZVN0cmVhbWluZy5hbnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93YXNtL3dlYmFwaS9pbnN0YW50aWF0ZVN0cmVhbWluZy5hbnktZXhw
ZWN0ZWQudHh0CmluZGV4IGM0MDhmMGZmM2JlN2QzYWFkMDk2YWY1ZWIyYjBjZjBmYTY5YTBhNjUu
LmU4ZjQ3OGVmMmE2MGJkNjRmNzExYjc2MTA1MDFmNzliYjI0NjlhOWYgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS93ZWJhcGkvaW5z
dGFudGlhdGVTdHJlYW1pbmcuYW55LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vd2ViYXBpL2luc3RhbnRpYXRlU3RyZWFt
aW5nLmFueS1leHBlY3RlZC50eHQKQEAgLTIsNyArMiw3IEBACiBQQVNTIEVtcHR5IG1vZHVsZSB3
aXRob3V0IGltcG9ydHMgYXJndW1lbnQKIFBBU1MgRW1wdHkgbW9kdWxlIHdpdGggdW5kZWZpbmVk
IGltcG9ydHMgYXJndW1lbnQKIFBBU1MgRW1wdHkgbW9kdWxlIHdpdGggZW1wdHkgaW1wb3J0cyBh
cmd1bWVudAotRkFJTCBnZXR0ZXIgb3JkZXIgZm9yIGltcG9ydHMgb2JqZWN0IGFzc2VydF9hcnJh
eV9lcXVhbHM6IGV4cGVjdGVkIHByb3BlcnR5IDEgdG8gYmUgImdsb2JhbDEgZ2V0dGVyIiBidXQg
Z290ICJtZW1vcnkgZ2V0dGVyIiAoZXhwZWN0ZWQgYXJyYXkgWyJtb2R1bGUgZ2V0dGVyIiwgImds
b2JhbDEgZ2V0dGVyIiwgIm1vZHVsZTIgZ2V0dGVyIiwgImdsb2JhbDMgZ2V0dGVyIiwgIm1vZHVs
ZSBnZXR0ZXIiLCAibWVtb3J5IGdldHRlciIsICJtb2R1bGUgZ2V0dGVyIiwgImdsb2JhbDIgZ2V0
dGVyIl0gZ290IFsibW9kdWxlIGdldHRlciIsICJtZW1vcnkgZ2V0dGVyIiwgIm1vZHVsZSBnZXR0
ZXIiLCAiZ2xvYmFsMSBnZXR0ZXIiLCAibW9kdWxlMiBnZXR0ZXIiLCAiZ2xvYmFsMyBnZXR0ZXIi
LCAibW9kdWxlIGdldHRlciIsICJnbG9iYWwyIGdldHRlciJdKQorUEFTUyBnZXR0ZXIgb3JkZXIg
Zm9yIGltcG9ydHMgb2JqZWN0CiBQQVNTIGltcG9ydHMKIFBBU1MgaW1wb3J0cyB3aXRoIGVtcHR5
IG1vZHVsZSBuYW1lcwogUEFTUyBpbXBvcnRzIHdpdGggZW1wdHkgbmFtZXMKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS93ZWJhcGkv
aW5zdGFudGlhdGVTdHJlYW1pbmcuYW55Lndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vd2ViYXBpL2luc3RhbnRpYXRl
U3RyZWFtaW5nLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IGM0MDhmMGZmM2JlN2QzYWFk
MDk2YWY1ZWIyYjBjZjBmYTY5YTBhNjUuLmU4ZjQ3OGVmMmE2MGJkNjRmNzExYjc2MTA1MDFmNzli
YjI0NjlhOWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2FzbS93ZWJhcGkvaW5zdGFudGlhdGVTdHJlYW1pbmcuYW55Lndvcmtlci1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93YXNtL3dlYmFwaS9pbnN0YW50aWF0ZVN0cmVhbWluZy5hbnkud29ya2VyLWV4cGVjdGVkLnR4
dApAQCAtMiw3ICsyLDcgQEAKIFBBU1MgRW1wdHkgbW9kdWxlIHdpdGhvdXQgaW1wb3J0cyBhcmd1
bWVudAogUEFTUyBFbXB0eSBtb2R1bGUgd2l0aCB1bmRlZmluZWQgaW1wb3J0cyBhcmd1bWVudAog
UEFTUyBFbXB0eSBtb2R1bGUgd2l0aCBlbXB0eSBpbXBvcnRzIGFyZ3VtZW50Ci1GQUlMIGdldHRl
ciBvcmRlciBmb3IgaW1wb3J0cyBvYmplY3QgYXNzZXJ0X2FycmF5X2VxdWFsczogZXhwZWN0ZWQg
cHJvcGVydHkgMSB0byBiZSAiZ2xvYmFsMSBnZXR0ZXIiIGJ1dCBnb3QgIm1lbW9yeSBnZXR0ZXIi
IChleHBlY3RlZCBhcnJheSBbIm1vZHVsZSBnZXR0ZXIiLCAiZ2xvYmFsMSBnZXR0ZXIiLCAibW9k
dWxlMiBnZXR0ZXIiLCAiZ2xvYmFsMyBnZXR0ZXIiLCAibW9kdWxlIGdldHRlciIsICJtZW1vcnkg
Z2V0dGVyIiwgIm1vZHVsZSBnZXR0ZXIiLCAiZ2xvYmFsMiBnZXR0ZXIiXSBnb3QgWyJtb2R1bGUg
Z2V0dGVyIiwgIm1lbW9yeSBnZXR0ZXIiLCAibW9kdWxlIGdldHRlciIsICJnbG9iYWwxIGdldHRl
ciIsICJtb2R1bGUyIGdldHRlciIsICJnbG9iYWwzIGdldHRlciIsICJtb2R1bGUgZ2V0dGVyIiwg
Imdsb2JhbDIgZ2V0dGVyIl0pCitQQVNTIGdldHRlciBvcmRlciBmb3IgaW1wb3J0cyBvYmplY3QK
IFBBU1MgaW1wb3J0cwogUEFTUyBpbXBvcnRzIHdpdGggZW1wdHkgbW9kdWxlIG5hbWVzCiBQQVNT
IGltcG9ydHMgd2l0aCBlbXB0eSBuYW1lcwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cg
Yi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCA2MDU3OTIyNjZkMWU2NjE4NzlmNDY3MTE2MWJkY2M3
YTZlMjQzZDEyLi43ZjY0Zjg2ZTZjNTAyMmZlNGVlNmE5ZTI3YzlhNjE4NjM4ODgyMDgxIDEwMDY0
NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE3IEBACisyMDIxLTEyLTE1ICBBc3VtdSBUYWtpa2F3YSAgPGFzdW11QGlnYWxpYS5jb20+
CisKKyAgICAgICAgW1dhc21dIFVuaWZ5IG1lbW9yeSBpbXBvcnQgaGFuZGxpbmcgaW4gbW9kdWxl
IGxvYWRlciBhbmQgSlMgY2FzZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzNDExNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZCBhbiBpbnN0YW50aWF0aW9uIHRlc3QgY2FzZSB0aGF0IHRlc3RzIHRo
YXQgaW5zdGFudGlhdGluZyB0aGUgc2FtZQorICAgICAgICBiaW5hcnkgbW9kdWxlIHR3aWNlIHdp
bGwgbm90IGNyYXNoLgorCisgICAgICAgICogd2FzbS9qcy1hcGkvd2ViLWFzc2VtYmx5LWluc3Rh
bnRpYXRlLmpzOgorICAgICAgICAoYXNzZXJ0LmFzeW5jVGVzdC5hc3luYyB0ZXN0KToKKyAgICAg
ICAgKGFzc2VydC5hc3luY1Rlc3QpOgorCiAyMDIxLTEyLTE1ICBKb3NlcGggR3JpZWdvICA8amdy
aWVnb0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtTaGFkb3cgUmVhbG1zXSBXcmFwcGVkIGZ1bmN0
aW9ucyBtdXN0IG9ubHkgdGhyb3cgVHlwZUVycm9yIGZyb20gY2FsbGluZyByZWFsbQpkaWZmIC0t
Z2l0IGEvSlNUZXN0cy93YXNtL2pzLWFwaS93ZWItYXNzZW1ibHktaW5zdGFudGlhdGUuanMgYi9K
U1Rlc3RzL3dhc20vanMtYXBpL3dlYi1hc3NlbWJseS1pbnN0YW50aWF0ZS5qcwppbmRleCAyMzdi
M2E4OWFjYzA1OWZhOTE5MGE4OTY1M2M4ODI3ZWU3NDBlZmEyLi5jZWMyYTMwMjU2M2UyYTc1ODc1
MWU5ZDgxOWIzY2UwNjhhNTY2YjZjIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3dhc20vanMtYXBpL3dl
Yi1hc3NlbWJseS1pbnN0YW50aWF0ZS5qcworKysgYi9KU1Rlc3RzL3dhc20vanMtYXBpL3dlYi1h
c3NlbWJseS1pbnN0YW50aWF0ZS5qcwpAQCAtMTkwLDMgKzE5MCwzMCBAQCBhc3NlcnQuZXEoV2Vi
QXNzZW1ibHkuaW5zdGFudGlhdGUubGVuZ3RoLCAxKTsKIAogICAgIGFzc2VydC5hc3luY1Rlc3Qo
dGVzdCgpKTsKIH0KKworeworICAgIGNvbnN0IGJ1aWxkZXIgPSAobmV3IEJ1aWxkZXIoKSkKKyAg
ICAgICAgICAuVHlwZSgpLkVuZCgpCisgICAgICAgICAgLkltcG9ydCgpLk1lbW9yeSgiaW1wIiwg
Im1lbW9yeSIsIHtpbml0aWFsOjEwMH0pLkVuZCgpCisgICAgICAgICAgLkZ1bmN0aW9uKCkuRW5k
KCkKKyAgICAgICAgICAuRXhwb3J0KCkKKyAgICAgICAgICAgICAgLkZ1bmN0aW9uKCJmb28iKQor
ICAgICAgICAgIC5FbmQoKQorICAgICAgICAgIC5Db2RlKCkKKyAgICAgICAgICAgICAgLkZ1bmN0
aW9uKCJmb28iLCB7IHBhcmFtczogW10sIHJldDogImkzMiIgfSkKKyAgICAgICAgICAgICAgICAg
IC5JMzJDb25zdCgxKQorICAgICAgICAgICAgICAuRW5kKCkKKyAgICAgICAgICAuRW5kKCk7CisK
KyAgICBjb25zdCBiaW4gPSBidWlsZGVyLldlYkFzc2VtYmx5KCkuZ2V0KCk7CisKKyAgICBhc3lu
YyBmdW5jdGlvbiB0ZXN0KCkgeworICAgICAgICBsZXQgbW9kdWxlID0gbmV3IFdlYkFzc2VtYmx5
Lk1vZHVsZShiaW4pOworICAgICAgICBsZXQgaW5zdGFuY2UxID0gYXdhaXQgV2ViQXNzZW1ibHku
aW5zdGFudGlhdGUobW9kdWxlLCB7IGltcDogeyBtZW1vcnk6IG5ldyBXZWJBc3NlbWJseS5NZW1v
cnkoeyBpbml0aWFsOiAxMDAgfSkgfSB9KTsKKyAgICAgICAgYXNzZXJ0LnRydXRoeShpbnN0YW5j
ZTEgaW5zdGFuY2VvZiBXZWJBc3NlbWJseS5JbnN0YW5jZSk7CisgICAgICAgIGxldCBpbnN0YW5j
ZTIgPSBhd2FpdCBXZWJBc3NlbWJseS5pbnN0YW50aWF0ZShtb2R1bGUsIHsgaW1wOiB7IG1lbW9y
eTogbmV3IFdlYkFzc2VtYmx5Lk1lbW9yeSh7IGluaXRpYWw6IDEwMCB9KSB9IH0pOworICAgICAg
ICBhc3NlcnQudHJ1dGh5KGluc3RhbmNlMiBpbnN0YW5jZW9mIFdlYkFzc2VtYmx5Lkluc3RhbmNl
KTsKKyAgICB9CisKKyAgICBhc3NlcnQuYXN5bmNUZXN0KHRlc3QoKSk7Cit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447613</attachid>
            <date>2021-12-20 11:05:40 -0800</date>
            <delta_ts>2022-01-07 14:32:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234116-20211220110540.patch</filename>
            <type>text/plain</type>
            <size>29010</size>
            <attacher name="Asumu Takikawa">asumu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3MjYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
ZmNkZGFmOGRlMTQ1Y2E5NGQ1YWZkMDQyMjljMjkyMjIxNjdlN2QyLi40OWZhYTg5MjFiNGYzMTQx
Zjg3MDA2NzkzZjY2ODk3MjdiZTkyODk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAyMS0xMi0xNSAgQXN1bXUgVGFraWthd2EgIDxhc3VtdUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtXYXNtXSBVbmlmeSBtZW1vcnkgaW1wb3J0IGhhbmRsaW5nIGluIG1vZHVs
ZSBsb2FkZXIgYW5kIEpTIGNhc2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzQxMTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBNb3ZlcyB0aGUgbWVtb3J5IGltcG9ydCBoYW5kbGluZyBjb2RlIHRvIHRo
ZSBXYXNtIG1vZHVsZSByZWNvcmQgYW5kCisgICAgICAgIHVzZSB0aGUgc3RyYXRlZ3kgdXNlZCBi
eSB0aGUgbW9kdWxlIGxvYWRlciB0byBoYW5kbGUgbWVtb3J5IGluIGFsbAorICAgICAgICBjYXNl
cy4KKworICAgICAgICAqIHdhc20vV2FzbU1vZHVsZS5jcHA6CisgICAgICAgIChKU0M6Oldhc206
Ok1vZHVsZTo6Y29weUluaXRpYWxDYWxsZWVHcm91cFRvQWxsTWVtb3J5TW9kZXMpOgorICAgICAg
ICAqIHdhc20vanMvSlNXZWJBc3NlbWJseUluc3RhbmNlLmNwcDoKKyAgICAgICAgKEpTQzo6SlNX
ZWJBc3NlbWJseUluc3RhbmNlOjpmaW5hbGl6ZUNyZWF0aW9uKToKKyAgICAgICAgKEpTQzo6SlNX
ZWJBc3NlbWJseUluc3RhbmNlOjp0cnlDcmVhdGUpOgorICAgICAgICAqIHdhc20vanMvV2ViQXNz
ZW1ibHlNb2R1bGVSZWNvcmQuY3BwOgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJseU1vZHVsZVJl
Y29yZDo6aW5pdGlhbGl6ZUltcG9ydHNBbmRFeHBvcnRzKToKKwogMjAyMS0xMi0xOSAgUm9zcyBL
aXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29ueS5jb20+CiAKICAgICAgICAgW0pTQ10gT3BQb3cg
c2hvdWxkIGhhdmUgYSAic21hbGwgaW50IGV4cG9uZW50IiBmYXN0IHBhdGggYXQgbG93ZXIgdGll
cnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Nb2R1bGUuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1vZHVsZS5jcHAKaW5kZXggYzMyNjU0
MmU5OTdkYzU2YWUzZjk3MmMxOTdlNjYxMGRiZjk2ZDdmYS4uYzQ4ZWZiNTJhZTA0YWM1ZGE0ZmYy
YTE2Y2FjZTQ0ZWU4ZGZiNWVkNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbU1vZHVsZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1v
ZHVsZS5jcHAKQEAgLTExMywxMSArMTEzLDE2IEBAIHZvaWQgTW9kdWxlOjpjb21waWxlQXN5bmMo
Q29udGV4dCogY29udGV4dCwgTWVtb3J5TW9kZSBtb2RlLCBDYWxsZWVHcm91cDo6QXN5bmNDCiAK
IHZvaWQgTW9kdWxlOjpjb3B5SW5pdGlhbENhbGxlZUdyb3VwVG9BbGxNZW1vcnlNb2RlcyhNZW1v
cnlNb2RlIGluaXRpYWxNb2RlKQogeworICAgIExvY2tlciBsb2NrZXIgeyBtX2xvY2sgfTsKICAg
ICBBU1NFUlQobV9jYWxsZWVHcm91cHNbc3RhdGljX2Nhc3Q8dWludDhfdD4oaW5pdGlhbE1vZGUp
XSk7CiAgICAgY29uc3QgQ2FsbGVlR3JvdXAmIGluaXRpYWxCbG9jayA9ICptX2NhbGxlZUdyb3Vw
c1tzdGF0aWNfY2FzdDx1aW50OF90Pihpbml0aWFsTW9kZSldOwogICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBXYXNtOjpOdW1iZXJPZk1lbW9yeU1vZGVzOyBpKyspIHsKICAgICAgICAgaWYg
KGkgPT0gc3RhdGljX2Nhc3Q8dWludDhfdD4oaW5pdGlhbE1vZGUpKQogICAgICAgICAgICAgY29u
dGludWU7CisgICAgICAgIENhbGxlZUdyb3VwKiBjYWxsZWVHcm91cCA9IG1fY2FsbGVlR3JvdXBz
W2ldLmdldCgpOworICAgICAgICAvLyBXZSBzaG91bGQgb25seSB0cnkgdG8gY29weSB0aGUgZ3Jv
dXAgaGVyZSBpZiBpdCBoYXNuJ3QgYWxyZWFkeSBiZWVuIGNvbXBpbGVkLgorICAgICAgICBpZiAo
Y2FsbGVlR3JvdXAgJiYgIShjYWxsZWVHcm91cC0+Y29tcGlsYXRpb25GaW5pc2hlZCgpICYmICFj
YWxsZWVHcm91cC0+cnVubmFibGUoKSkpCisgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAg
UmVmPENhbGxlZUdyb3VwPiBuZXdCbG9jayA9IENhbGxlZUdyb3VwOjpjcmVhdGVGcm9tRXhpc3Rp
bmcoc3RhdGljX2Nhc3Q8TWVtb3J5TW9kZT4oaSksIGluaXRpYWxCbG9jayk7CiAgICAgICAgIG1f
Y2FsbGVlR3JvdXBzW2ldID0gV1RGTW92ZShuZXdCbG9jayk7CiAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUluc3RhbmNlLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlJbnN0YW5jZS5jcHAK
aW5kZXggYzRkNDljYzRjNWExOGZhOWQzNmFkOWUyYzdiN2E0OTM2NDUzM2RlYS4uNzUxNmU3MjE5
MjRhNDQ2ZjE0NzFlYmExOGYxZDU0NWRhMTZlNTYxNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUluc3RhbmNlLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5SW5zdGFuY2UuY3BwCkBAIC0xMzUs
MTEgKzEzNSwxMyBAQCB2b2lkIEpTV2ViQXNzZW1ibHlJbnN0YW5jZTo6ZmluYWxpemVDcmVhdGlv
bihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogICAgICAgICBtX21vZHVsZS0+
c2V0Q2FsbGVlR3JvdXAodm0sIG1lbW9yeU1vZGUoKSwganNDYWxsZWVHcm91cCk7CiAgICAgfQog
Ci0gICAgLy8gSW4gdGhlIG1vZHVsZSBsb2FkZXIgY2FzZSwgd2Ugd2lsbCBpbml0aWFsaXplIGFs
bCBtZW1vcnkgbW9kZXMgd2l0aCB0aGUgaW5pdGlhbCBMTEludCBjb21waWxhdGlvbgorICAgIC8v
IFdoZW4gbWVtb3J5IGlzIGltcG9ydGVkLCB3ZSB3aWxsIGluaXRpYWxpemUgYWxsIG1lbW9yeSBt
b2RlcyB3aXRoIHRoZSBpbml0aWFsIExMSW50IGNvbXBpbGF0aW9uCiAgICAgLy8gcmVzdWx0cywg
c28gdGhhdCBsYXRlciB3aGVuIG1lbW9yeSBpbXBvcnRzIGJlY29tZSBhdmFpbGFibGUsIHRoZSBh
cHByb3ByaWF0ZSBDYWxsZWVHcm91cCBjYW4gYmUgdXNlZC4KICAgICAvLyBJZiBMTEludCBpcyBk
aXNhYmxlZCwgd2UgaW5zdGVhZCBkZWZlciBjb21waWxhdGlvbiB0byBtb2R1bGUgZXZhbHVhdGlv
bi4KKyAgICAvLyBJZiB0aGUgY29kZSBpcyBhbHJlYWR5IGNvbXBpbGVkLCBlLmcuIHRoZSBtb2R1
bGUgd2FzIGFscmVhZHkgaW5zdGFudGlhdGVkIGJlZm9yZSwgd2UgZG8gbm90IHJlLWluaXRpYWxp
emUKKyAgICAvLyBidXQgZG8gY2hlY2sgaWYgSlNXZWJBc3NlbWJseUNhbGxlZUdyb3VwcyBuZWVk
IHRvIGJlIGNyZWF0ZWQgZm9yIGFsbCBtb2Rlcy4KICAgICBib29sIGhhc01lbW9yeUltcG9ydCA9
IG1vZHVsZSgpLT5tb2R1bGVJbmZvcm1hdGlvbigpLm1lbW9yeS5pc0ltcG9ydCgpOwotICAgIGlm
IChjcmVhdGlvbk1vZGUgPT0gV2FzbTo6Q3JlYXRpb25Nb2RlOjpGcm9tTW9kdWxlTG9hZGVyICYm
IE9wdGlvbnM6OnVzZVdhc21MTEludCgpICYmIGhhc01lbW9yeUltcG9ydCkgeworICAgIGlmIChP
cHRpb25zOjp1c2VXYXNtTExJbnQoKSAmJiBoYXNNZW1vcnlJbXBvcnQpIHsKICAgICAgICAgV2Fz
bTo6TWVtb3J5TW9kZSBpbml0aWFsTW9kZSA9IFdhc206Ok1lbW9yeU1vZGU6OkJvdW5kc0NoZWNr
aW5nOwogICAgICAgICBBU1NFUlQobWVtb3J5TW9kZSgpID09IGluaXRpYWxNb2RlKTsKICAgICAg
ICAgbW9kdWxlKCktPm1vZHVsZSgpLmNvcHlJbml0aWFsQ2FsbGVlR3JvdXBUb0FsbE1lbW9yeU1v
ZGVzKGluaXRpYWxNb2RlKTsKQEAgLTE0OSwxMiArMTUxLDE4IEBAIHZvaWQgSlNXZWJBc3NlbWJs
eUluc3RhbmNlOjpmaW5hbGl6ZUNyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICBXYXNtOjpNZW1v
cnlNb2RlIG1lbW9yeU1vZGUgPSBzdGF0aWNfY2FzdDxXYXNtOjpNZW1vcnlNb2RlPihpKTsKICAg
ICAgICAgICAgIFJlZlB0cjxXYXNtOjpDYWxsZWVHcm91cD4gY2FsbGVlR3JvdXAgPSBtb2R1bGUo
KS0+bW9kdWxlKCkuY2FsbGVlR3JvdXBGb3IobWVtb3J5TW9kZSk7Ci0gICAgICAgICAgICBqc0Nh
bGxlZUdyb3VwID0gSlNXZWJBc3NlbWJseUNhbGxlZUdyb3VwOjpjcmVhdGUodm0sIGNhbGxlZUdy
b3VwLnJlbGVhc2VOb25OdWxsKCksIG1vZHVsZSgpLT5tb2R1bGUoKS5tb2R1bGVJbmZvcm1hdGlv
bigpKTsKLSAgICAgICAgICAgIGlmIChVTkxJS0VMWSghanNDYWxsZWVHcm91cC0+cnVubmFibGUo
KSkpIHsKLSAgICAgICAgICAgICAgICB0aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHNjb3Bl
LCBjcmVhdGVKU1dlYkFzc2VtYmx5TGlua0Vycm9yKGdsb2JhbE9iamVjdCwgdm0sIGpzQ2FsbGVl
R3JvdXAtPmVycm9yTWVzc2FnZSgpKSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICAgICAganNDYWxsZWVHcm91cCA9IG1fbW9kdWxlLT5jYWxsZWVHcm91cChtZW1vcnlNb2RlKTsK
KyAgICAgICAgICAgIGlmIChqc0NhbGxlZUdyb3VwKSB7CisgICAgICAgICAgICAgICAgQVNTRVJU
KCZqc0NhbGxlZUdyb3VwLT5jYWxsZWVHcm91cCgpID09IGNhbGxlZUdyb3VwKTsKKyAgICAgICAg
ICAgICAgICBtX2NhbGxlZUdyb3VwLnNldCh2bSwgdGhpcywganNDYWxsZWVHcm91cCk7CisgICAg
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGpzQ2FsbGVlR3JvdXAgPSBKU1dlYkFz
c2VtYmx5Q2FsbGVlR3JvdXA6OmNyZWF0ZSh2bSwgY2FsbGVlR3JvdXAucmVsZWFzZU5vbk51bGwo
KSwgbW9kdWxlKCktPm1vZHVsZSgpLm1vZHVsZUluZm9ybWF0aW9uKCkpOworICAgICAgICAgICAg
ICAgIGlmIChVTkxJS0VMWSghanNDYWxsZWVHcm91cC0+cnVubmFibGUoKSkpIHsKKyAgICAgICAg
ICAgICAgICAgICAgdGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlSlNX
ZWJBc3NlbWJseUxpbmtFcnJvcihnbG9iYWxPYmplY3QsIHZtLCBqc0NhbGxlZUdyb3VwLT5lcnJv
ck1lc3NhZ2UoKSkpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIG1fbW9kdWxlLT5zZXRDYWxsZWVHcm91cCh2bSwgbWVtb3J5
TW9kZSwganNDYWxsZWVHcm91cCk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBtX21vZHVs
ZS0+c2V0Q2FsbGVlR3JvdXAodm0sIG1lbW9yeU1vZGUsIGpzQ2FsbGVlR3JvdXApOwogICAgICAg
ICB9CiAgICAgfQogCkBAIC0xOTYsMTAgKzIwNCw2IEBAIEpTV2ViQXNzZW1ibHlJbnN0YW5jZSog
SlNXZWJBc3NlbWJseUluc3RhbmNlOjp0cnlDcmVhdGUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCoK
ICAgICBpZiAoIWdsb2JhbE9iamVjdC0+d2ViQXNzZW1ibHlFbmFibGVkKCkpCiAgICAgICAgIHJl
dHVybiBleGNlcHRpb24oY3JlYXRlRXZhbEVycm9yKGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0
LT53ZWJBc3NlbWJseURpc2FibGVkRXJyb3JNZXNzYWdlKCkpKTsKIAotICAgIGF1dG8gaW1wb3J0
RmFpbE1lc3NhZ2UgPSBbJl0gKGNvbnN0IFdhc206OkltcG9ydCYgaW1wb3J0LCBjb25zdCBjaGFy
KiBiZWZvcmUsIGNvbnN0IGNoYXIqIGFmdGVyKSB7Ci0gICAgICAgIHJldHVybiBtYWtlU3RyaW5n
KGJlZm9yZSwgIiAiLCBTdHJpbmc6OmZyb21VVEY4KGltcG9ydC5tb2R1bGUpLCAiOiIsIFN0cmlu
Zzo6ZnJvbVVURjgoaW1wb3J0LmZpZWxkKSwgIiAiLCBhZnRlcik7Ci0gICAgfTsKLQogICAgIFdl
YkFzc2VtYmx5TW9kdWxlUmVjb3JkKiBtb2R1bGVSZWNvcmQgPSBXZWJBc3NlbWJseU1vZHVsZVJl
Y29yZDo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgdm0sIGdsb2JhbE9iamVjdC0+d2ViQXNzZW1ibHlN
b2R1bGVSZWNvcmRTdHJ1Y3R1cmUoKSwgbW9kdWxlS2V5LCBtb2R1bGVJbmZvcm1hdGlvbik7CiAg
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCBudWxscHRyKTsKIApAQCAtMjEzLDEw
ICsyMTcsNiBAQCBKU1dlYkFzc2VtYmx5SW5zdGFuY2UqIEpTV2ViQXNzZW1ibHlJbnN0YW5jZTo6
dHJ5Q3JlYXRlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqCiAgICAganNJbnN0YW5jZS0+ZmluaXNo
Q3JlYXRpb24odm0sIGpzTW9kdWxlLCBtb2R1bGVSZWNvcmQpOwogICAgIFJFVFVSTl9JRl9FWENF
UFRJT04odGhyb3dTY29wZSwgbnVsbHB0cik7CiAKLSAgICAvLyBMZXQgZnVuY3MsIG1lbW9yaWVz
IGFuZCB0YWJsZXMgYmUgaW5pdGlhbGx5LWVtcHR5IGxpc3RzIG9mIGNhbGxhYmxlIEphdmFTY3Jp
cHQgb2JqZWN0cywgV2ViQXNzZW1ibHkuTWVtb3J5IG9iamVjdHMgYW5kIFdlYkFzc2VtYmx5LlRh
YmxlIG9iamVjdHMsIHJlc3BlY3RpdmVseS4KLSAgICAvLyBMZXQgaW1wb3J0cyBiZSBhbiBpbml0
aWFsbHktZW1wdHkgbGlzdCBvZiBleHRlcm5hbCB2YWx1ZXMuCi0gICAgYm9vbCBoYXNNZW1vcnlJ
bXBvcnQgPSBmYWxzZTsKLQogICAgIGlmIChjcmVhdGlvbk1vZGUgPT0gV2FzbTo6Q3JlYXRpb25N
b2RlOjpGcm9tSlMpIHsKICAgICAgICAgLy8gSWYgdGhlIGxpc3Qgb2YgbW9kdWxlLmltcG9ydHMg
aXMgbm90IGVtcHR5IGFuZCBUeXBlKGltcG9ydE9iamVjdCkgaXMgbm90IE9iamVjdCwgYSBUeXBl
RXJyb3IgaXMgdGhyb3duLgogICAgICAgICBpZiAobW9kdWxlSW5mb3JtYXRpb24uaW1wb3J0cy5z
aXplKCkgJiYgIWltcG9ydE9iamVjdCkKQEAgLTIzNCwxMTIgKzIzNCwzMSBAQCBKU1dlYkFzc2Vt
Ymx5SW5zdGFuY2UqIEpTV2ViQXNzZW1ibHlJbnN0YW5jZTo6dHJ5Q3JlYXRlKFZNJiB2bSwgSlNH
bG9iYWxPYmplY3QqCiAgICAgICAgICAgICBmaWVsZE5hbWUsCiAgICAgICAgICAgICBJZGVudGlm
aWVyOjpmcm9tVWlkKFByaXZhdGVOYW1lKFByaXZhdGVOYW1lOjpEZXNjcmlwdGlvbiwgIldlYkFz
c2VtYmx5SW1wb3J0TmFtZSIpKSwKICAgICAgICAgfSk7Ci0KLSAgICAgICAgLy8gVmFsaWRhdGlv
biBmb3IgbW9zdCB0eXBlcyBhcmUgZG9uZSBpbiBXZWJBc3NlbWJseU1vZHVsZVJlY29yZDo6aW5p
dGlhbGl6ZUltcG9ydHNBbmRFeHBvcnRzIGFuZCBza2lwcGVkIGhlcmUuCi0gICAgICAgIC8vIEV2
ZW50dWFsbHkgd2Ugd2lsbCBtb3ZlIGFsbCB0aGUgbGlua2luZyBjb2RlIGhlcmUgdG8gV2ViQXNz
ZW1ibHlNb2R1bGVSZWNvcmQ6OmluaXRpYWxpemVJbXBvcnRzQW5kRXhwb3J0cy4KLSAgICAgICAg
c3dpdGNoIChpbXBvcnQua2luZCkgewotICAgICAgICBjYXNlIFdhc206OkV4dGVybmFsS2luZDo6
RnVuY3Rpb246Ci0gICAgICAgIGNhc2UgV2FzbTo6RXh0ZXJuYWxLaW5kOjpHbG9iYWw6Ci0gICAg
ICAgIGNhc2UgV2FzbTo6RXh0ZXJuYWxLaW5kOjpUYWJsZToKLSAgICAgICAgY2FzZSBXYXNtOjpF
eHRlcm5hbEtpbmQ6OkV4Y2VwdGlvbjoKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBj
YXNlIFdhc206OkV4dGVybmFsS2luZDo6TWVtb3J5OgotICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIH0KLQotICAgICAgICBKU1ZhbHVlIHZhbHVlOwotICAgICAgICBpZiAoY3JlYXRpb25Nb2Rl
ID09IFdhc206OkNyZWF0aW9uTW9kZTo6RnJvbUpTKSB7Ci0gICAgICAgICAgICAvLyAxLiBMZXQg
byBiZSB0aGUgcmVzdWx0YW50IHZhbHVlIG9mIHBlcmZvcm1pbmcgR2V0KGltcG9ydE9iamVjdCwg
aS5tb2R1bGVfbmFtZSkuCi0gICAgICAgICAgICBKU1ZhbHVlIGltcG9ydE1vZHVsZVZhbHVlID0g
aW1wb3J0T2JqZWN0LT5nZXQoZ2xvYmFsT2JqZWN0LCBtb2R1bGVOYW1lKTsKLSAgICAgICAgICAg
IFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgbnVsbHB0cik7Ci0gICAgICAgICAgICAv
LyAyLiBJZiBUeXBlKG8pIGlzIG5vdCBPYmplY3QsIHRocm93IGEgVHlwZUVycm9yLgotICAgICAg
ICAgICAgaWYgKCFpbXBvcnRNb2R1bGVWYWx1ZS5pc09iamVjdCgpKQotICAgICAgICAgICAgICAg
IHJldHVybiBleGNlcHRpb24oY3JlYXRlVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgaW1wb3J0RmFp
bE1lc3NhZ2UoaW1wb3J0LCAiaW1wb3J0IiwgIm11c3QgYmUgYW4gb2JqZWN0IiksIGRlZmF1bHRT
b3VyY2VBcHBlbmRlciwgcnVudGltZVR5cGVGb3JWYWx1ZSh2bSwgaW1wb3J0TW9kdWxlVmFsdWUp
KSk7Ci0KLSAgICAgICAgICAgIC8vIDMuIExldCB2IGJlIHRoZSB2YWx1ZSBvZiBwZXJmb3JtaW5n
IEdldChvLCBpLml0ZW1fbmFtZSkKLSAgICAgICAgICAgIEpTT2JqZWN0KiBvYmplY3QgPSBqc0Nh
c3Q8SlNPYmplY3QqPihpbXBvcnRNb2R1bGVWYWx1ZSk7Ci0gICAgICAgICAgICB2YWx1ZSA9IG9i
amVjdC0+Z2V0KGdsb2JhbE9iamVjdCwgZmllbGROYW1lKTsKLSAgICAgICAgICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04odGhyb3dTY29wZSwgbnVsbHB0cik7Ci0gICAgICAgIH0KLSAgICAgICAgaWYg
KCF2YWx1ZSkKLSAgICAgICAgICAgIHZhbHVlID0ganNVbmRlZmluZWQoKTsKLQotICAgICAgICBz
d2l0Y2ggKGltcG9ydC5raW5kKSB7Ci0gICAgICAgIGNhc2UgV2FzbTo6RXh0ZXJuYWxLaW5kOjpG
dW5jdGlvbjoKLSAgICAgICAgY2FzZSBXYXNtOjpFeHRlcm5hbEtpbmQ6Okdsb2JhbDoKLSAgICAg
ICAgY2FzZSBXYXNtOjpFeHRlcm5hbEtpbmQ6OlRhYmxlOgotICAgICAgICBjYXNlIFdhc206OkV4
dGVybmFsS2luZDo6RXhjZXB0aW9uOgotICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgY2Fz
ZSBXYXNtOjpFeHRlcm5hbEtpbmQ6Ok1lbW9yeTogewotICAgICAgICAgICAgLy8gNi4gSWYgaSBp
cyBhIG1lbW9yeSBpbXBvcnQ6Ci0gICAgICAgICAgICBSRUxFQVNFX0FTU0VSVCghaGFzTWVtb3J5
SW1wb3J0KTsgLy8gVGhpcyBzaG91bGQgYmUgZ3VhcmFudGVlZCBieSBhIHZhbGlkYXRpb24gZmFp
bHVyZS4KLSAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKG1vZHVsZUluZm9ybWF0aW9uLm1lbW9y
eSk7Ci0gICAgICAgICAgICBoYXNNZW1vcnlJbXBvcnQgPSB0cnVlOwotICAgICAgICAgICAgLy8g
Rm9yIHRoZSBtb2R1bGUgbG9hZGVyLCB3ZSBjYW5ub3QgaW5pdGlhbGl6ZSB0aGUgbWVtb3J5IGhl
cmUgc28gd2UgZGVsYXkgdGhpcwotICAgICAgICAgICAgLy8gdW50aWwgV2ViQXNzZW1ibHlNb2R1
bGVSZWNvcmQncyBpbml0aWFsaXphdGlvbiBvcGVyYXRpb24uCi0gICAgICAgICAgICBpZiAoY3Jl
YXRpb25Nb2RlID09IFdhc206OkNyZWF0aW9uTW9kZTo6RnJvbU1vZHVsZUxvYWRlcikKLSAgICAg
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIEpTV2ViQXNzZW1ibHlNZW1vcnkqIG1lbW9y
eSA9IGpzRHluYW1pY0Nhc3Q8SlNXZWJBc3NlbWJseU1lbW9yeSo+KHZtLCB2YWx1ZSk7Ci0gICAg
ICAgICAgICAvLyBpLiBJZiB2IGlzIG5vdCBhIFdlYkFzc2VtYmx5Lk1lbW9yeSBvYmplY3QsIHRo
cm93IGEgV2ViQXNzZW1ibHkuTGlua0Vycm9yLgotICAgICAgICAgICAgaWYgKCFtZW1vcnkpCi0g
ICAgICAgICAgICAgICAgcmV0dXJuIGV4Y2VwdGlvbihjcmVhdGVKU1dlYkFzc2VtYmx5TGlua0Vy
cm9yKGdsb2JhbE9iamVjdCwgdm0sIGltcG9ydEZhaWxNZXNzYWdlKGltcG9ydCwgIk1lbW9yeSBp
bXBvcnQiLCAiaXMgbm90IGFuIGluc3RhbmNlIG9mIFdlYkFzc2VtYmx5Lk1lbW9yeSIpKSk7Ci0K
LSAgICAgICAgICAgIFdhc206OlBhZ2VDb3VudCBkZWNsYXJlZEluaXRpYWwgPSBtb2R1bGVJbmZv
cm1hdGlvbi5tZW1vcnkuaW5pdGlhbCgpOwotICAgICAgICAgICAgV2FzbTo6UGFnZUNvdW50IGlt
cG9ydGVkSW5pdGlhbCA9IG1lbW9yeS0+bWVtb3J5KCkuaW5pdGlhbCgpOwotICAgICAgICAgICAg
aWYgKGltcG9ydGVkSW5pdGlhbCA8IGRlY2xhcmVkSW5pdGlhbCkKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gZXhjZXB0aW9uKGNyZWF0ZUpTV2ViQXNzZW1ibHlMaW5rRXJyb3IoZ2xvYmFsT2JqZWN0
LCB2bSwgaW1wb3J0RmFpbE1lc3NhZ2UoaW1wb3J0LCAiTWVtb3J5IGltcG9ydCIsICJwcm92aWRl
ZCBhbiAnaW5pdGlhbCcgdGhhdCBpcyBzbWFsbGVyIHRoYW4gdGhlIG1vZHVsZSdzIGRlY2xhcmVk
ICdpbml0aWFsJyBpbXBvcnQgbWVtb3J5IHNpemUiKSkpOwotCi0gICAgICAgICAgICBpZiAoV2Fz
bTo6UGFnZUNvdW50IGRlY2xhcmVkTWF4aW11bSA9IG1vZHVsZUluZm9ybWF0aW9uLm1lbW9yeS5t
YXhpbXVtKCkpIHsKLSAgICAgICAgICAgICAgICBXYXNtOjpQYWdlQ291bnQgaW1wb3J0ZWRNYXhp
bXVtID0gbWVtb3J5LT5tZW1vcnkoKS5tYXhpbXVtKCk7Ci0gICAgICAgICAgICAgICAgaWYgKCFp
bXBvcnRlZE1heGltdW0pCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiBleGNlcHRpb24oY3Jl
YXRlSlNXZWJBc3NlbWJseUxpbmtFcnJvcihnbG9iYWxPYmplY3QsIHZtLCBpbXBvcnRGYWlsTWVz
c2FnZShpbXBvcnQsICJNZW1vcnkgaW1wb3J0IiwgImRpZCBub3QgaGF2ZSBhICdtYXhpbXVtJyBi
dXQgdGhlIG1vZHVsZSByZXF1aXJlcyB0aGF0IGl0IGRvZXMiKSkpOwotCi0gICAgICAgICAgICAg
ICAgaWYgKGltcG9ydGVkTWF4aW11bSA+IGRlY2xhcmVkTWF4aW11bSkKLSAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIGV4Y2VwdGlvbihjcmVhdGVKU1dlYkFzc2VtYmx5TGlua0Vycm9yKGdsb2Jh
bE9iamVjdCwgdm0sIGltcG9ydEZhaWxNZXNzYWdlKGltcG9ydCwgIk1lbW9yeSBpbXBvcnQiLCAi
cHJvdmlkZWQgYSAnbWF4aW11bScgdGhhdCBpcyBsYXJnZXIgdGhhbiB0aGUgbW9kdWxlJ3MgZGVj
bGFyZWQgJ21heGltdW0nIGltcG9ydCBtZW1vcnkgc2l6ZSIpKSk7Ci0gICAgICAgICAgICB9Ci0K
LSAgICAgICAgICAgIGlmICgobWVtb3J5LT5tZW1vcnkoKS5zaGFyaW5nTW9kZSgpID09IFdhc206
Ok1lbW9yeVNoYXJpbmdNb2RlOjpTaGFyZWQpICE9IG1vZHVsZUluZm9ybWF0aW9uLm1lbW9yeS5p
c1NoYXJlZCgpKQotICAgICAgICAgICAgICAgIHJldHVybiBleGNlcHRpb24oY3JlYXRlSlNXZWJB
c3NlbWJseUxpbmtFcnJvcihnbG9iYWxPYmplY3QsIHZtLCBpbXBvcnRGYWlsTWVzc2FnZShpbXBv
cnQsICJNZW1vcnkgaW1wb3J0IiwgInByb3ZpZGVkIGEgJ3NoYXJlZCcgdGhhdCBpcyBkaWZmZXJu
dCBmcm9tIHRoZSBtb2R1bGUncyBkZWNsYXJlZCAnc2hhcmVkJyBpbXBvcnQgbWVtb3J5IGF0dHJp
YnV0ZSIpKSk7Ci0KLSAgICAgICAgICAgIC8vIGlpLiBBcHBlbmQgdiB0byBtZW1vcmllcy4KLSAg
ICAgICAgICAgIC8vIGlpaS4gQXBwZW5kIHYuW1tNZW1vcnldXSB0byBpbXBvcnRzLgotICAgICAg
ICAgICAganNJbnN0YW5jZS0+c2V0TWVtb3J5KHZtLCBtZW1vcnkpOwotICAgICAgICAgICAgUkVU
VVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCBudWxscHRyKTsKLSAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICB9Ci0gICAgICAgIH0KICAgICB9CiAgICAgQVNTRVJUKG1vZHVsZVJlY29yZC0+
aW1wb3J0RW50cmllcygpLnNpemUoKSA9PSBtb2R1bGVJbmZvcm1hdGlvbi5pbXBvcnRzLnNpemUo
KSk7CiAKLSAgICB7Ci0gICAgICAgIGlmICghIW1vZHVsZUluZm9ybWF0aW9uLm1lbW9yeSAmJiBt
b2R1bGVJbmZvcm1hdGlvbi5tZW1vcnkuaXNJbXBvcnQoKSkgewotICAgICAgICAgICAgLy8gV2Ug
c2hvdWxkIGVpdGhlciBoYXZlIGEgTWVtb3J5IGltcG9ydCBvciB3ZSBzaG91bGQgaGF2ZSB0aHJv
d24gYW4gZXhjZXB0aW9uLgotICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoaGFzTWVtb3J5SW1w
b3J0KTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChtb2R1bGVJbmZvcm1hdGlvbi5tZW1vcnkg
JiYgIWhhc01lbW9yeUltcG9ydCkgewotICAgICAgICAgICAgLy8gV2UgY3JlYXRlIGEgbWVtb3J5
IHdoZW4gaXQncyBhIG1lbW9yeSBkZWZpbml0aW9uLgotICAgICAgICAgICAgUkVMRUFTRV9BU1NF
UlQoIW1vZHVsZUluZm9ybWF0aW9uLm1lbW9yeS5pc0ltcG9ydCgpKTsKLQotICAgICAgICAgICAg
YXV0byoganNNZW1vcnkgPSBKU1dlYkFzc2VtYmx5TWVtb3J5Ojp0cnlDcmVhdGUoZ2xvYmFsT2Jq
ZWN0LCB2bSwgZ2xvYmFsT2JqZWN0LT53ZWJBc3NlbWJseU1lbW9yeVN0cnVjdHVyZSgpKTsKLSAg
ICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgbnVsbHB0cik7CisgICAg
Ym9vbCBoYXNNZW1vcnlJbXBvcnQgPSBtb2R1bGVJbmZvcm1hdGlvbi5tZW1vcnkuaXNJbXBvcnQo
KTsKKyAgICBpZiAobW9kdWxlSW5mb3JtYXRpb24ubWVtb3J5ICYmICFoYXNNZW1vcnlJbXBvcnQp
IHsKKyAgICAgICAgLy8gV2UgY3JlYXRlIGEgbWVtb3J5IHdoZW4gaXQncyBhIG1lbW9yeSBkZWZp
bml0aW9uLgorICAgICAgICBhdXRvKiBqc01lbW9yeSA9IEpTV2ViQXNzZW1ibHlNZW1vcnk6OnRy
eUNyZWF0ZShnbG9iYWxPYmplY3QsIHZtLCBnbG9iYWxPYmplY3QtPndlYkFzc2VtYmx5TWVtb3J5
U3RydWN0dXJlKCkpOworICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIG51
bGxwdHIpOwogCi0gICAgICAgICAgICBSZWZQdHI8V2FzbTo6TWVtb3J5PiBtZW1vcnkgPSBXYXNt
OjpNZW1vcnk6OnRyeUNyZWF0ZShtb2R1bGVJbmZvcm1hdGlvbi5tZW1vcnkuaW5pdGlhbCgpLCBt
b2R1bGVJbmZvcm1hdGlvbi5tZW1vcnkubWF4aW11bSgpLCBtb2R1bGVJbmZvcm1hdGlvbi5tZW1v
cnkuaXNTaGFyZWQoKSA/IFdhc206Ok1lbW9yeVNoYXJpbmdNb2RlOjpTaGFyZWQ6IFdhc206Ok1l
bW9yeVNoYXJpbmdNb2RlOjpEZWZhdWx0LAotICAgICAgICAgICAgICAgIFsmdm1dIChXYXNtOjpN
ZW1vcnk6Ok5vdGlmeVByZXNzdXJlKSB7IHZtLmhlYXAuY29sbGVjdEFzeW5jKENvbGxlY3Rpb25T
Y29wZTo6RnVsbCk7IH0sCi0gICAgICAgICAgICAgICAgWyZ2bV0gKFdhc206Ok1lbW9yeTo6U3lu
Y1RyeVRvUmVjbGFpbSkgeyB2bS5oZWFwLmNvbGxlY3RTeW5jKENvbGxlY3Rpb25TY29wZTo6RnVs
bCk7IH0sCi0gICAgICAgICAgICAgICAgWyZ2bSwganNNZW1vcnldIChXYXNtOjpNZW1vcnk6Okdy
b3dTdWNjZXNzLCBXYXNtOjpQYWdlQ291bnQgb2xkUGFnZUNvdW50LCBXYXNtOjpQYWdlQ291bnQg
bmV3UGFnZUNvdW50KSB7IGpzTWVtb3J5LT5ncm93U3VjY2Vzc0NhbGxiYWNrKHZtLCBvbGRQYWdl
Q291bnQsIG5ld1BhZ2VDb3VudCk7IH0pOwotICAgICAgICAgICAgaWYgKCFtZW1vcnkpCi0gICAg
ICAgICAgICAgICAgcmV0dXJuIGV4Y2VwdGlvbihjcmVhdGVPdXRPZk1lbW9yeUVycm9yKGdsb2Jh
bE9iamVjdCkpOworICAgICAgICBSZWZQdHI8V2FzbTo6TWVtb3J5PiBtZW1vcnkgPSBXYXNtOjpN
ZW1vcnk6OnRyeUNyZWF0ZShtb2R1bGVJbmZvcm1hdGlvbi5tZW1vcnkuaW5pdGlhbCgpLCBtb2R1
bGVJbmZvcm1hdGlvbi5tZW1vcnkubWF4aW11bSgpLCBtb2R1bGVJbmZvcm1hdGlvbi5tZW1vcnku
aXNTaGFyZWQoKSA/IFdhc206Ok1lbW9yeVNoYXJpbmdNb2RlOjpTaGFyZWQ6IFdhc206Ok1lbW9y
eVNoYXJpbmdNb2RlOjpEZWZhdWx0LAorICAgICAgICAgICAgWyZ2bV0oV2FzbTo6TWVtb3J5OjpO
b3RpZnlQcmVzc3VyZSkgeyB2bS5oZWFwLmNvbGxlY3RBc3luYyhDb2xsZWN0aW9uU2NvcGU6OkZ1
bGwpOyB9LAorICAgICAgICAgICAgWyZ2bV0oV2FzbTo6TWVtb3J5OjpTeW5jVHJ5VG9SZWNsYWlt
KSB7IHZtLmhlYXAuY29sbGVjdFN5bmMoQ29sbGVjdGlvblNjb3BlOjpGdWxsKTsgfSwKKyAgICAg
ICAgICAgIFsmdm0sIGpzTWVtb3J5XShXYXNtOjpNZW1vcnk6Okdyb3dTdWNjZXNzLCBXYXNtOjpQ
YWdlQ291bnQgb2xkUGFnZUNvdW50LCBXYXNtOjpQYWdlQ291bnQgbmV3UGFnZUNvdW50KSB7IGpz
TWVtb3J5LT5ncm93U3VjY2Vzc0NhbGxiYWNrKHZtLCBvbGRQYWdlQ291bnQsIG5ld1BhZ2VDb3Vu
dCk7IH0KKyAgICAgICAgKTsKKyAgICAgICAgaWYgKCFtZW1vcnkpCisgICAgICAgICAgICByZXR1
cm4gZXhjZXB0aW9uKGNyZWF0ZU91dE9mTWVtb3J5RXJyb3IoZ2xvYmFsT2JqZWN0KSk7CiAKLSAg
ICAgICAgICAgIGpzTWVtb3J5LT5hZG9wdChtZW1vcnkucmVsZWFzZU5vbk51bGwoKSk7Ci0gICAg
ICAgICAgICBqc0luc3RhbmNlLT5zZXRNZW1vcnkodm0sIGpzTWVtb3J5KTsKLSAgICAgICAgICAg
IFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgbnVsbHB0cik7Ci0gICAgICAgIH0KKyAg
ICAgICAganNNZW1vcnktPmFkb3B0KG1lbW9yeS5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICAgICAg
anNJbnN0YW5jZS0+c2V0TWVtb3J5KHZtLCBqc01lbW9yeSk7CisgICAgICAgIFJFVFVSTl9JRl9F
WENFUFRJT04odGhyb3dTY29wZSwgbnVsbHB0cik7CiAgICAgfQotICAgIAorCiAgICAgaWYgKCFq
c0luc3RhbmNlLT5tZW1vcnkoKSkgewogICAgICAgICAvLyBNYWtlIHN1cmUgd2UgaGF2ZSBhIGR1
bW15IG1lbW9yeSwgc28gdGhhdCB3YXNtIC0+IHdhc20gdGh1bmtzIGF2b2lkIGNoZWNraW5nIGZv
ciBhIG51bGxwdHIgTWVtb3J5IHdoZW4gdHJ5aW5nIHRvIHNldCBwaW5uZWQgcmVnaXN0ZXJzLgor
ICAgICAgICAvLyBXaGVuIHRoZXJlIGlzIGEgbWVtb3J5IGltcG9ydCwgdGhpcyB3aWxsIGJlIHJl
cGxhY2VkIGxhdGVyIGluIHRoZSBtb2R1bGUgcmVjb3JkIGltcG9ydCBpbml0aWFsaXphdGlvbi4K
ICAgICAgICAgYXV0byoganNNZW1vcnkgPSBKU1dlYkFzc2VtYmx5TWVtb3J5Ojp0cnlDcmVhdGUo
Z2xvYmFsT2JqZWN0LCB2bSwgZ2xvYmFsT2JqZWN0LT53ZWJBc3NlbWJseU1lbW9yeVN0cnVjdHVy
ZSgpKTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCBudWxscHRyKTsK
ICAgICAgICAganNNZW1vcnktPmFkb3B0KFdhc206Ok1lbW9yeTo6Y3JlYXRlKCkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVSZWNv
cmQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVS
ZWNvcmQuY3BwCmluZGV4IDZhYWQ2MjE3MmJkOTU2MmJlZDgzNGY2MDU0ZTc3YzExNjRhYzdkZDcu
LjU5OWUyMzRmNjU1NDQwYWNlMmU3NWI4ODRlNTViMjQ5NjcyOTcwZTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlUmVjb3JkLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZVJlY29y
ZC5jcHAKQEAgLTEzMywyMCArMTMzLDYgQEAgdm9pZCBXZWJBc3NlbWJseU1vZHVsZVJlY29yZDo6
aW5pdGlhbGl6ZUltcG9ydHNBbmRFeHBvcnRzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWwKICAgICB9
OwogCiAgICAgZm9yIChjb25zdCBhdXRvJiBpbXBvcnQgOiBtb2R1bGVJbmZvcm1hdGlvbi5pbXBv
cnRzKSB7Ci0gICAgICAgIC8vIFZhbGlkYXRpb24gYW5kIGxpbmtpbmcgb3RoZXIgdGhhbiBXYXNt
OjpFeHRlcm5hbEtpbmQ6OkZ1bmN0aW9uIGlzIGFscmVhZHkgZG9uZSBpbiBKU1dlYkFzc2VtYmx5
SW5zdGFuY2UuCi0gICAgICAgIC8vIEV2ZW50dWFsbHkgd2Ugd2lsbCBtb3ZlIGFsbCB0aGUgbGlu
a2luZyBjb2RlIGluIEpTV2ViQXNzZW1ibHlJbnN0YW5jZSBoZXJlIGFuZCByZW1vdmUgdGhpcyBz
d2l0Y2ggc3RhdGVtZW50LgotICAgICAgICBzd2l0Y2ggKGltcG9ydC5raW5kKSB7Ci0gICAgICAg
IGNhc2UgV2FzbTo6RXh0ZXJuYWxLaW5kOjpGdW5jdGlvbjoKLSAgICAgICAgY2FzZSBXYXNtOjpF
eHRlcm5hbEtpbmQ6Okdsb2JhbDoKLSAgICAgICAgY2FzZSBXYXNtOjpFeHRlcm5hbEtpbmQ6OlRh
YmxlOgotICAgICAgICBjYXNlIFdhc206OkV4dGVybmFsS2luZDo6RXhjZXB0aW9uOgotICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgV2FzbTo6RXh0ZXJuYWxLaW5kOjpNZW1vcnk6Ci0g
ICAgICAgICAgICBpZiAoY3JlYXRpb25Nb2RlID09IFdhc206OkNyZWF0aW9uTW9kZTo6RnJvbUpT
KQotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IH0KLQogICAgICAgICBJZGVudGlmaWVyIG1vZHVsZU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3Ry
aW5nKHZtLCBTdHJpbmc6OmZyb21VVEY4KGltcG9ydC5tb2R1bGUpKTsKICAgICAgICAgSWRlbnRp
ZmllciBmaWVsZE5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCBTdHJpbmc6OmZyb21V
VEY4KGltcG9ydC5maWVsZCkpOwogICAgICAgICBKU1ZhbHVlIHZhbHVlOwpAQCAtNDA5LDcgKzM5
NSw2IEBAIHZvaWQgV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQ6OmluaXRpYWxpemVJbXBvcnRzQW5k
RXhwb3J0cyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsCiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQogCi0gICAgICAgIC8vIE1lbW9yeSBpbml0aWFsaXphdGlvbiB3aWxsIG9ubHkgb2NjdXIg
aGVyZSBpZiB0aGUgY3JlYXRpb24gbW9kZSB3YXMgdGhyb3VnaCB0aGUgbW9kdWxlIGxvYWRlci4K
ICAgICAgICAgY2FzZSBXYXNtOjpFeHRlcm5hbEtpbmQ6Ok1lbW9yeToKICAgICAgICAgICAgIEpT
V2ViQXNzZW1ibHlNZW1vcnkqIG1lbW9yeSA9IGpzRHluYW1pY0Nhc3Q8SlNXZWJBc3NlbWJseU1l
bW9yeSo+KHZtLCB2YWx1ZSk7CiAgICAgICAgICAgICAvLyBpLiBJZiB2IGlzIG5vdCBhIFdlYkFz
c2VtYmx5Lk1lbW9yeSBvYmplY3QsIHRocm93IGEgV2ViQXNzZW1ibHkuTGlua0Vycm9yLgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggMWNiMDVmZTU0ZjEyODY1MjdhOGJmYTJjYjVi
OGIwY2ZhMjQzMDM0Ni4uMzQ1YzViNzk5NmZkNzQxMWE4N2ZhNjRhN2RjZmJmNDZiYTM3NDU1YSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjEtMTIt
MTUgIEFzdW11IFRha2lrYXdhICA8YXN1bXVAaWdhbGlhLmNvbT4KKworICAgICAgICBbV2FzbV0g
VW5pZnkgbWVtb3J5IGltcG9ydCBoYW5kbGluZyBpbiBtb2R1bGUgbG9hZGVyIGFuZCBKUyBjYXNl
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0MTE2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRqdXN0
IFdhc20gV1BUIHRlc3QgZXhwZWN0YXRpb25zIG5vdyB0aGF0IGdldHRlciBvcmRlcmluZyB0ZXN0
cworICAgICAgICBzaG91bGQgcGFzcy4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93
YXNtL2pzYXBpL2NvbnN0cnVjdG9yL2luc3RhbnRpYXRlLmFueS1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvY29uc3RydWN0b3IvaW5zdGFudGlh
dGUuYW55Lndvcmtlci1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L3dhc20vanNhcGkvaW5zdGFuY2UvY29uc3RydWN0b3IuYW55LWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9pbnN0YW5jZS9jb25zdHJ1Y3Rvci5h
bnkud29ya2VyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2Fz
bS93ZWJhcGkvaW5zdGFudGlhdGVTdHJlYW1pbmcuYW55LWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS93ZWJhcGkvaW5zdGFudGlhdGVTdHJlYW1pbmcuYW55
Lndvcmtlci1leHBlY3RlZC50eHQ6CisKIDIwMjEtMTItMTQgIFNlcmdpbyBWaWxsYXIgU2VuaW4g
IDxzdmlsbGFyQGlnYWxpYS5jb20+CiAKICAgICAgICAgW2Nzcy1mbGV4Ym94XSBQcmUtbGF5b3V0
IG9ydGhvZ29uYWwgY2hpbGRyZW4gdG8gY29tcHV0ZSB0aGUgcHJlZmVycmVkIGxvZ2ljYWwgd2lk
dGgKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2FzbS9qc2FwaS9jb25zdHJ1Y3Rvci9pbnN0YW50aWF0ZS5hbnktZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL2Nv
bnN0cnVjdG9yL2luc3RhbnRpYXRlLmFueS1leHBlY3RlZC50eHQKaW5kZXggNTA2NDdjMjUzZGY5
NTkyNTNiMmRlYzM5YmVkY2EzOWQ2ZmU3Y2IwMy4uODY0MmE1ZWFlMDYwMTM1MWFmZDE1NTQyMTNi
ODM2ZTFkNzkxMzA4MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL2NvbnN0cnVjdG9yL2luc3RhbnRpYXRlLmFueS1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93YXNtL2pzYXBpL2NvbnN0cnVjdG9yL2luc3RhbnRpYXRlLmFueS1leHBlY3RlZC50eHQKQEAg
LTksOCArOSw4IEBAIFBBU1MgRW1wdHkgbW9kdWxlIHdpdGggdW5kZWZpbmVkIGltcG9ydHMgYXJn
dW1lbnQ6IEJ1ZmZlclNvdXJjZSBhcmd1bWVudAogUEFTUyBFbXB0eSBtb2R1bGUgd2l0aCB1bmRl
ZmluZWQgaW1wb3J0cyBhcmd1bWVudDogTW9kdWxlIGFyZ3VtZW50CiBQQVNTIEVtcHR5IG1vZHVs
ZSB3aXRoIGVtcHR5IGltcG9ydHMgYXJndW1lbnQ6IEJ1ZmZlclNvdXJjZSBhcmd1bWVudAogUEFT
UyBFbXB0eSBtb2R1bGUgd2l0aCBlbXB0eSBpbXBvcnRzIGFyZ3VtZW50OiBNb2R1bGUgYXJndW1l
bnQKLUZBSUwgZ2V0dGVyIG9yZGVyIGZvciBpbXBvcnRzIG9iamVjdDogQnVmZmVyU291cmNlIGFy
Z3VtZW50IGFzc2VydF9hcnJheV9lcXVhbHM6IGV4cGVjdGVkIHByb3BlcnR5IDEgdG8gYmUgImds
b2JhbDEgZ2V0dGVyIiBidXQgZ290ICJtZW1vcnkgZ2V0dGVyIiAoZXhwZWN0ZWQgYXJyYXkgWyJt
b2R1bGUgZ2V0dGVyIiwgImdsb2JhbDEgZ2V0dGVyIiwgIm1vZHVsZTIgZ2V0dGVyIiwgImdsb2Jh
bDMgZ2V0dGVyIiwgIm1vZHVsZSBnZXR0ZXIiLCAibWVtb3J5IGdldHRlciIsICJtb2R1bGUgZ2V0
dGVyIiwgImdsb2JhbDIgZ2V0dGVyIl0gZ290IFsibW9kdWxlIGdldHRlciIsICJtZW1vcnkgZ2V0
dGVyIiwgIm1vZHVsZSBnZXR0ZXIiLCAiZ2xvYmFsMSBnZXR0ZXIiLCAibW9kdWxlMiBnZXR0ZXIi
LCAiZ2xvYmFsMyBnZXR0ZXIiLCAibW9kdWxlIGdldHRlciIsICJnbG9iYWwyIGdldHRlciJdKQot
RkFJTCBnZXR0ZXIgb3JkZXIgZm9yIGltcG9ydHMgb2JqZWN0OiBNb2R1bGUgYXJndW1lbnQgYXNz
ZXJ0X2FycmF5X2VxdWFsczogZXhwZWN0ZWQgcHJvcGVydHkgMSB0byBiZSAiZ2xvYmFsMSBnZXR0
ZXIiIGJ1dCBnb3QgIm1lbW9yeSBnZXR0ZXIiIChleHBlY3RlZCBhcnJheSBbIm1vZHVsZSBnZXR0
ZXIiLCAiZ2xvYmFsMSBnZXR0ZXIiLCAibW9kdWxlMiBnZXR0ZXIiLCAiZ2xvYmFsMyBnZXR0ZXIi
LCAibW9kdWxlIGdldHRlciIsICJtZW1vcnkgZ2V0dGVyIiwgIm1vZHVsZSBnZXR0ZXIiLCAiZ2xv
YmFsMiBnZXR0ZXIiXSBnb3QgWyJtb2R1bGUgZ2V0dGVyIiwgIm1lbW9yeSBnZXR0ZXIiLCAibW9k
dWxlIGdldHRlciIsICJnbG9iYWwxIGdldHRlciIsICJtb2R1bGUyIGdldHRlciIsICJnbG9iYWwz
IGdldHRlciIsICJtb2R1bGUgZ2V0dGVyIiwgImdsb2JhbDIgZ2V0dGVyIl0pCitQQVNTIGdldHRl
ciBvcmRlciBmb3IgaW1wb3J0cyBvYmplY3Q6IEJ1ZmZlclNvdXJjZSBhcmd1bWVudAorUEFTUyBn
ZXR0ZXIgb3JkZXIgZm9yIGltcG9ydHMgb2JqZWN0OiBNb2R1bGUgYXJndW1lbnQKIFBBU1MgaW1w
b3J0czogQnVmZmVyU291cmNlIGFyZ3VtZW50CiBQQVNTIGltcG9ydHM6IE1vZHVsZSBhcmd1bWVu
dAogUEFTUyBpbXBvcnRzIHdpdGggZW1wdHkgbW9kdWxlIG5hbWVzOiBCdWZmZXJTb3VyY2UgYXJn
dW1lbnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2FzbS9qc2FwaS9jb25zdHJ1Y3Rvci9pbnN0YW50aWF0ZS5hbnkud29ya2VyLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Fz
bS9qc2FwaS9jb25zdHJ1Y3Rvci9pbnN0YW50aWF0ZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApp
bmRleCA1MDY0N2MyNTNkZjk1OTI1M2IyZGVjMzliZWRjYTM5ZDZmZTdjYjAzLi44NjQyYTVlYWUw
NjAxMzUxYWZkMTU1NDIxM2I4MzZlMWQ3OTEzMDgwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvY29uc3RydWN0b3IvaW5z
dGFudGlhdGUuYW55Lndvcmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL2NvbnN0cnVjdG9yL2luc3RhbnRp
YXRlLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC05LDggKzksOCBAQCBQQVNTIEVtcHR5IG1v
ZHVsZSB3aXRoIHVuZGVmaW5lZCBpbXBvcnRzIGFyZ3VtZW50OiBCdWZmZXJTb3VyY2UgYXJndW1l
bnQKIFBBU1MgRW1wdHkgbW9kdWxlIHdpdGggdW5kZWZpbmVkIGltcG9ydHMgYXJndW1lbnQ6IE1v
ZHVsZSBhcmd1bWVudAogUEFTUyBFbXB0eSBtb2R1bGUgd2l0aCBlbXB0eSBpbXBvcnRzIGFyZ3Vt
ZW50OiBCdWZmZXJTb3VyY2UgYXJndW1lbnQKIFBBU1MgRW1wdHkgbW9kdWxlIHdpdGggZW1wdHkg
aW1wb3J0cyBhcmd1bWVudDogTW9kdWxlIGFyZ3VtZW50Ci1GQUlMIGdldHRlciBvcmRlciBmb3Ig
aW1wb3J0cyBvYmplY3Q6IEJ1ZmZlclNvdXJjZSBhcmd1bWVudCBhc3NlcnRfYXJyYXlfZXF1YWxz
OiBleHBlY3RlZCBwcm9wZXJ0eSAxIHRvIGJlICJnbG9iYWwxIGdldHRlciIgYnV0IGdvdCAibWVt
b3J5IGdldHRlciIgKGV4cGVjdGVkIGFycmF5IFsibW9kdWxlIGdldHRlciIsICJnbG9iYWwxIGdl
dHRlciIsICJtb2R1bGUyIGdldHRlciIsICJnbG9iYWwzIGdldHRlciIsICJtb2R1bGUgZ2V0dGVy
IiwgIm1lbW9yeSBnZXR0ZXIiLCAibW9kdWxlIGdldHRlciIsICJnbG9iYWwyIGdldHRlciJdIGdv
dCBbIm1vZHVsZSBnZXR0ZXIiLCAibWVtb3J5IGdldHRlciIsICJtb2R1bGUgZ2V0dGVyIiwgImds
b2JhbDEgZ2V0dGVyIiwgIm1vZHVsZTIgZ2V0dGVyIiwgImdsb2JhbDMgZ2V0dGVyIiwgIm1vZHVs
ZSBnZXR0ZXIiLCAiZ2xvYmFsMiBnZXR0ZXIiXSkKLUZBSUwgZ2V0dGVyIG9yZGVyIGZvciBpbXBv
cnRzIG9iamVjdDogTW9kdWxlIGFyZ3VtZW50IGFzc2VydF9hcnJheV9lcXVhbHM6IGV4cGVjdGVk
IHByb3BlcnR5IDEgdG8gYmUgImdsb2JhbDEgZ2V0dGVyIiBidXQgZ290ICJtZW1vcnkgZ2V0dGVy
IiAoZXhwZWN0ZWQgYXJyYXkgWyJtb2R1bGUgZ2V0dGVyIiwgImdsb2JhbDEgZ2V0dGVyIiwgIm1v
ZHVsZTIgZ2V0dGVyIiwgImdsb2JhbDMgZ2V0dGVyIiwgIm1vZHVsZSBnZXR0ZXIiLCAibWVtb3J5
IGdldHRlciIsICJtb2R1bGUgZ2V0dGVyIiwgImdsb2JhbDIgZ2V0dGVyIl0gZ290IFsibW9kdWxl
IGdldHRlciIsICJtZW1vcnkgZ2V0dGVyIiwgIm1vZHVsZSBnZXR0ZXIiLCAiZ2xvYmFsMSBnZXR0
ZXIiLCAibW9kdWxlMiBnZXR0ZXIiLCAiZ2xvYmFsMyBnZXR0ZXIiLCAibW9kdWxlIGdldHRlciIs
ICJnbG9iYWwyIGdldHRlciJdKQorUEFTUyBnZXR0ZXIgb3JkZXIgZm9yIGltcG9ydHMgb2JqZWN0
OiBCdWZmZXJTb3VyY2UgYXJndW1lbnQKK1BBU1MgZ2V0dGVyIG9yZGVyIGZvciBpbXBvcnRzIG9i
amVjdDogTW9kdWxlIGFyZ3VtZW50CiBQQVNTIGltcG9ydHM6IEJ1ZmZlclNvdXJjZSBhcmd1bWVu
dAogUEFTUyBpbXBvcnRzOiBNb2R1bGUgYXJndW1lbnQKIFBBU1MgaW1wb3J0cyB3aXRoIGVtcHR5
IG1vZHVsZSBuYW1lczogQnVmZmVyU291cmNlIGFyZ3VtZW50CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvaW5zdGFuY2Uv
Y29uc3RydWN0b3IuYW55LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9pbnN0YW5jZS9jb25zdHJ1Y3Rvci5hbnktZXhw
ZWN0ZWQudHh0CmluZGV4IDU3MzhkNzQ4MjJlYTE5OTljZTAyNTI5MjNjODYyMzFmN2M5Mjk0ODgu
LjE1NDRhZDk1MjJhMDMzMTJiYzI1NGE3YTI5YTg2NGUzZGI0MzVhNjUgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9pbnN0
YW5jZS9jb25zdHJ1Y3Rvci5hbnktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9pbnN0YW5jZS9jb25zdHJ1Y3Rv
ci5hbnktZXhwZWN0ZWQudHh0CkBAIC03LDcgKzcsNyBAQCBQQVNTIENhbGxpbmcKIFBBU1MgRW1w
dHkgbW9kdWxlIHdpdGhvdXQgaW1wb3J0cyBhcmd1bWVudAogUEFTUyBFbXB0eSBtb2R1bGUgd2l0
aCB1bmRlZmluZWQgaW1wb3J0cyBhcmd1bWVudAogUEFTUyBFbXB0eSBtb2R1bGUgd2l0aCBlbXB0
eSBpbXBvcnRzIGFyZ3VtZW50Ci1GQUlMIGdldHRlciBvcmRlciBmb3IgaW1wb3J0cyBvYmplY3Qg
YXNzZXJ0X2FycmF5X2VxdWFsczogZXhwZWN0ZWQgcHJvcGVydHkgMSB0byBiZSAiZ2xvYmFsMSBn
ZXR0ZXIiIGJ1dCBnb3QgIm1lbW9yeSBnZXR0ZXIiIChleHBlY3RlZCBhcnJheSBbIm1vZHVsZSBn
ZXR0ZXIiLCAiZ2xvYmFsMSBnZXR0ZXIiLCAibW9kdWxlMiBnZXR0ZXIiLCAiZ2xvYmFsMyBnZXR0
ZXIiLCAibW9kdWxlIGdldHRlciIsICJtZW1vcnkgZ2V0dGVyIiwgIm1vZHVsZSBnZXR0ZXIiLCAi
Z2xvYmFsMiBnZXR0ZXIiXSBnb3QgWyJtb2R1bGUgZ2V0dGVyIiwgIm1lbW9yeSBnZXR0ZXIiLCAi
bW9kdWxlIGdldHRlciIsICJnbG9iYWwxIGdldHRlciIsICJtb2R1bGUyIGdldHRlciIsICJnbG9i
YWwzIGdldHRlciIsICJtb2R1bGUgZ2V0dGVyIiwgImdsb2JhbDIgZ2V0dGVyIl0pCitQQVNTIGdl
dHRlciBvcmRlciBmb3IgaW1wb3J0cyBvYmplY3QKIFBBU1MgaW1wb3J0cwogUEFTUyBpbXBvcnRz
IHdpdGggZW1wdHkgbW9kdWxlIG5hbWVzCiBQQVNTIGltcG9ydHMgd2l0aCBlbXB0eSBuYW1lcwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
YXNtL2pzYXBpL2luc3RhbmNlL2NvbnN0cnVjdG9yLmFueS53b3JrZXItZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL2lu
c3RhbmNlL2NvbnN0cnVjdG9yLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IDU3MzhkNzQ4
MjJlYTE5OTljZTAyNTI5MjNjODYyMzFmN2M5Mjk0ODguLjE1NDRhZDk1MjJhMDMzMTJiYzI1NGE3
YTI5YTg2NGUzZGI0MzVhNjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9pbnN0YW5jZS9jb25zdHJ1Y3Rvci5hbnkud29y
a2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dhc20vanNhcGkvaW5zdGFuY2UvY29uc3RydWN0b3IuYW55Lndvcmtlci1leHBl
Y3RlZC50eHQKQEAgLTcsNyArNyw3IEBAIFBBU1MgQ2FsbGluZwogUEFTUyBFbXB0eSBtb2R1bGUg
d2l0aG91dCBpbXBvcnRzIGFyZ3VtZW50CiBQQVNTIEVtcHR5IG1vZHVsZSB3aXRoIHVuZGVmaW5l
ZCBpbXBvcnRzIGFyZ3VtZW50CiBQQVNTIEVtcHR5IG1vZHVsZSB3aXRoIGVtcHR5IGltcG9ydHMg
YXJndW1lbnQKLUZBSUwgZ2V0dGVyIG9yZGVyIGZvciBpbXBvcnRzIG9iamVjdCBhc3NlcnRfYXJy
YXlfZXF1YWxzOiBleHBlY3RlZCBwcm9wZXJ0eSAxIHRvIGJlICJnbG9iYWwxIGdldHRlciIgYnV0
IGdvdCAibWVtb3J5IGdldHRlciIgKGV4cGVjdGVkIGFycmF5IFsibW9kdWxlIGdldHRlciIsICJn
bG9iYWwxIGdldHRlciIsICJtb2R1bGUyIGdldHRlciIsICJnbG9iYWwzIGdldHRlciIsICJtb2R1
bGUgZ2V0dGVyIiwgIm1lbW9yeSBnZXR0ZXIiLCAibW9kdWxlIGdldHRlciIsICJnbG9iYWwyIGdl
dHRlciJdIGdvdCBbIm1vZHVsZSBnZXR0ZXIiLCAibWVtb3J5IGdldHRlciIsICJtb2R1bGUgZ2V0
dGVyIiwgImdsb2JhbDEgZ2V0dGVyIiwgIm1vZHVsZTIgZ2V0dGVyIiwgImdsb2JhbDMgZ2V0dGVy
IiwgIm1vZHVsZSBnZXR0ZXIiLCAiZ2xvYmFsMiBnZXR0ZXIiXSkKK1BBU1MgZ2V0dGVyIG9yZGVy
IGZvciBpbXBvcnRzIG9iamVjdAogUEFTUyBpbXBvcnRzCiBQQVNTIGltcG9ydHMgd2l0aCBlbXB0
eSBtb2R1bGUgbmFtZXMKIFBBU1MgaW1wb3J0cyB3aXRoIGVtcHR5IG5hbWVzCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vd2ViYXBp
L2luc3RhbnRpYXRlU3RyZWFtaW5nLmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vd2ViYXBpL2luc3RhbnRpYXRlU3RyZWFt
aW5nLmFueS1leHBlY3RlZC50eHQKaW5kZXggYzQwOGYwZmYzYmU3ZDNhYWQwOTZhZjVlYjJiMGNm
MGZhNjlhMGE2NS4uZThmNDc4ZWYyYTYwYmQ2NGY3MTFiNzYxMDUwMWY3OWJiMjQ2OWE5ZiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNt
L3dlYmFwaS9pbnN0YW50aWF0ZVN0cmVhbWluZy5hbnktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS93ZWJhcGkvaW5zdGFu
dGlhdGVTdHJlYW1pbmcuYW55LWV4cGVjdGVkLnR4dApAQCAtMiw3ICsyLDcgQEAKIFBBU1MgRW1w
dHkgbW9kdWxlIHdpdGhvdXQgaW1wb3J0cyBhcmd1bWVudAogUEFTUyBFbXB0eSBtb2R1bGUgd2l0
aCB1bmRlZmluZWQgaW1wb3J0cyBhcmd1bWVudAogUEFTUyBFbXB0eSBtb2R1bGUgd2l0aCBlbXB0
eSBpbXBvcnRzIGFyZ3VtZW50Ci1GQUlMIGdldHRlciBvcmRlciBmb3IgaW1wb3J0cyBvYmplY3Qg
YXNzZXJ0X2FycmF5X2VxdWFsczogZXhwZWN0ZWQgcHJvcGVydHkgMSB0byBiZSAiZ2xvYmFsMSBn
ZXR0ZXIiIGJ1dCBnb3QgIm1lbW9yeSBnZXR0ZXIiIChleHBlY3RlZCBhcnJheSBbIm1vZHVsZSBn
ZXR0ZXIiLCAiZ2xvYmFsMSBnZXR0ZXIiLCAibW9kdWxlMiBnZXR0ZXIiLCAiZ2xvYmFsMyBnZXR0
ZXIiLCAibW9kdWxlIGdldHRlciIsICJtZW1vcnkgZ2V0dGVyIiwgIm1vZHVsZSBnZXR0ZXIiLCAi
Z2xvYmFsMiBnZXR0ZXIiXSBnb3QgWyJtb2R1bGUgZ2V0dGVyIiwgIm1lbW9yeSBnZXR0ZXIiLCAi
bW9kdWxlIGdldHRlciIsICJnbG9iYWwxIGdldHRlciIsICJtb2R1bGUyIGdldHRlciIsICJnbG9i
YWwzIGdldHRlciIsICJtb2R1bGUgZ2V0dGVyIiwgImdsb2JhbDIgZ2V0dGVyIl0pCitQQVNTIGdl
dHRlciBvcmRlciBmb3IgaW1wb3J0cyBvYmplY3QKIFBBU1MgaW1wb3J0cwogUEFTUyBpbXBvcnRz
IHdpdGggZW1wdHkgbW9kdWxlIG5hbWVzCiBQQVNTIGltcG9ydHMgd2l0aCBlbXB0eSBuYW1lcwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
YXNtL3dlYmFwaS9pbnN0YW50aWF0ZVN0cmVhbWluZy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS93ZWJhcGkv
aW5zdGFudGlhdGVTdHJlYW1pbmcuYW55Lndvcmtlci1leHBlY3RlZC50eHQKaW5kZXggYzQwOGYw
ZmYzYmU3ZDNhYWQwOTZhZjVlYjJiMGNmMGZhNjlhMGE2NS4uZThmNDc4ZWYyYTYwYmQ2NGY3MTFi
NzYxMDUwMWY3OWJiMjQ2OWE5ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL3dlYmFwaS9pbnN0YW50aWF0ZVN0cmVhbWluZy5hbnku
d29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dhc20vd2ViYXBpL2luc3RhbnRpYXRlU3RyZWFtaW5nLmFueS53b3JrZXIt
ZXhwZWN0ZWQudHh0CkBAIC0yLDcgKzIsNyBAQAogUEFTUyBFbXB0eSBtb2R1bGUgd2l0aG91dCBp
bXBvcnRzIGFyZ3VtZW50CiBQQVNTIEVtcHR5IG1vZHVsZSB3aXRoIHVuZGVmaW5lZCBpbXBvcnRz
IGFyZ3VtZW50CiBQQVNTIEVtcHR5IG1vZHVsZSB3aXRoIGVtcHR5IGltcG9ydHMgYXJndW1lbnQK
LUZBSUwgZ2V0dGVyIG9yZGVyIGZvciBpbXBvcnRzIG9iamVjdCBhc3NlcnRfYXJyYXlfZXF1YWxz
OiBleHBlY3RlZCBwcm9wZXJ0eSAxIHRvIGJlICJnbG9iYWwxIGdldHRlciIgYnV0IGdvdCAibWVt
b3J5IGdldHRlciIgKGV4cGVjdGVkIGFycmF5IFsibW9kdWxlIGdldHRlciIsICJnbG9iYWwxIGdl
dHRlciIsICJtb2R1bGUyIGdldHRlciIsICJnbG9iYWwzIGdldHRlciIsICJtb2R1bGUgZ2V0dGVy
IiwgIm1lbW9yeSBnZXR0ZXIiLCAibW9kdWxlIGdldHRlciIsICJnbG9iYWwyIGdldHRlciJdIGdv
dCBbIm1vZHVsZSBnZXR0ZXIiLCAibWVtb3J5IGdldHRlciIsICJtb2R1bGUgZ2V0dGVyIiwgImds
b2JhbDEgZ2V0dGVyIiwgIm1vZHVsZTIgZ2V0dGVyIiwgImdsb2JhbDMgZ2V0dGVyIiwgIm1vZHVs
ZSBnZXR0ZXIiLCAiZ2xvYmFsMiBnZXR0ZXIiXSkKK1BBU1MgZ2V0dGVyIG9yZGVyIGZvciBpbXBv
cnRzIG9iamVjdAogUEFTUyBpbXBvcnRzCiBQQVNTIGltcG9ydHMgd2l0aCBlbXB0eSBtb2R1bGUg
bmFtZXMKIFBBU1MgaW1wb3J0cyB3aXRoIGVtcHR5IG5hbWVzCmRpZmYgLS1naXQgYS9KU1Rlc3Rz
L0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IDQ0MWFhZmQxNzZkNDg5OGNhMDJm
YjdhYjFjOTc2MTdjZDUxNTZjMWEuLmIxZGE4NDQ2Y2QzOTc4Zjk2OTRlYjI5N2ViYWY4ZjI5YmYw
ZjA3NzYgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjEtMTItMTUgIEFzdW11IFRha2lrYXdhICA8YXN1bXVA
aWdhbGlhLmNvbT4KKworICAgICAgICBbV2FzbV0gVW5pZnkgbWVtb3J5IGltcG9ydCBoYW5kbGlu
ZyBpbiBtb2R1bGUgbG9hZGVyIGFuZCBKUyBjYXNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0MTE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGFuIGluc3RhbnRpYXRpb24gdGVzdCBjYXNlIHRo
YXQgdGVzdHMgdGhhdCBpbnN0YW50aWF0aW5nIHRoZSBzYW1lCisgICAgICAgIGJpbmFyeSBtb2R1
bGUgdHdpY2Ugd2lsbCBub3QgY3Jhc2guCisKKyAgICAgICAgKiB3YXNtL2pzLWFwaS93ZWItYXNz
ZW1ibHktaW5zdGFudGlhdGUuanM6CisgICAgICAgIChhc3NlcnQuYXN5bmNUZXN0LmFzeW5jIHRl
c3QpOgorICAgICAgICAoYXNzZXJ0LmFzeW5jVGVzdCk6CisKIDIwMjEtMTItMTkgIFJvc3MgS2ly
c2xpbmcgIDxyb3NzLmtpcnNsaW5nQHNvbnkuY29tPgogCiAgICAgICAgIFtKU0NdIE9wUG93IHNo
b3VsZCBoYXZlIGEgInNtYWxsIGludCBleHBvbmVudCIgZmFzdCBwYXRoIGF0IGxvd2VyIHRpZXJz
CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3dhc20vanMtYXBpL3dlYi1hc3NlbWJseS1pbnN0YW50aWF0
ZS5qcyBiL0pTVGVzdHMvd2FzbS9qcy1hcGkvd2ViLWFzc2VtYmx5LWluc3RhbnRpYXRlLmpzCmlu
ZGV4IDIzN2IzYTg5YWNjMDU5ZmE5MTkwYTg5NjUzYzg4MjdlZTc0MGVmYTIuLmNlYzJhMzAyNTYz
ZTJhNzU4NzUxZTlkODE5YjNjZTA2OGE1NjZiNmMgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvd2FzbS9q
cy1hcGkvd2ViLWFzc2VtYmx5LWluc3RhbnRpYXRlLmpzCisrKyBiL0pTVGVzdHMvd2FzbS9qcy1h
cGkvd2ViLWFzc2VtYmx5LWluc3RhbnRpYXRlLmpzCkBAIC0xOTAsMyArMTkwLDMwIEBAIGFzc2Vy
dC5lcShXZWJBc3NlbWJseS5pbnN0YW50aWF0ZS5sZW5ndGgsIDEpOwogCiAgICAgYXNzZXJ0LmFz
eW5jVGVzdCh0ZXN0KCkpOwogfQorCit7CisgICAgY29uc3QgYnVpbGRlciA9IChuZXcgQnVpbGRl
cigpKQorICAgICAgICAgIC5UeXBlKCkuRW5kKCkKKyAgICAgICAgICAuSW1wb3J0KCkuTWVtb3J5
KCJpbXAiLCAibWVtb3J5Iiwge2luaXRpYWw6MTAwfSkuRW5kKCkKKyAgICAgICAgICAuRnVuY3Rp
b24oKS5FbmQoKQorICAgICAgICAgIC5FeHBvcnQoKQorICAgICAgICAgICAgICAuRnVuY3Rpb24o
ImZvbyIpCisgICAgICAgICAgLkVuZCgpCisgICAgICAgICAgLkNvZGUoKQorICAgICAgICAgICAg
ICAuRnVuY3Rpb24oImZvbyIsIHsgcGFyYW1zOiBbXSwgcmV0OiAiaTMyIiB9KQorICAgICAgICAg
ICAgICAgICAgLkkzMkNvbnN0KDEpCisgICAgICAgICAgICAgIC5FbmQoKQorICAgICAgICAgIC5F
bmQoKTsKKworICAgIGNvbnN0IGJpbiA9IGJ1aWxkZXIuV2ViQXNzZW1ibHkoKS5nZXQoKTsKKwor
ICAgIGFzeW5jIGZ1bmN0aW9uIHRlc3QoKSB7CisgICAgICAgIGxldCBtb2R1bGUgPSBuZXcgV2Vi
QXNzZW1ibHkuTW9kdWxlKGJpbik7CisgICAgICAgIGxldCBpbnN0YW5jZTEgPSBhd2FpdCBXZWJB
c3NlbWJseS5pbnN0YW50aWF0ZShtb2R1bGUsIHsgaW1wOiB7IG1lbW9yeTogbmV3IFdlYkFzc2Vt
Ymx5Lk1lbW9yeSh7IGluaXRpYWw6IDEwMCB9KSB9IH0pOworICAgICAgICBhc3NlcnQudHJ1dGh5
KGluc3RhbmNlMSBpbnN0YW5jZW9mIFdlYkFzc2VtYmx5Lkluc3RhbmNlKTsKKyAgICAgICAgbGV0
IGluc3RhbmNlMiA9IGF3YWl0IFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKG1vZHVsZSwgeyBpbXA6
IHsgbWVtb3J5OiBuZXcgV2ViQXNzZW1ibHkuTWVtb3J5KHsgaW5pdGlhbDogMTAwIH0pIH0gfSk7
CisgICAgICAgIGFzc2VydC50cnV0aHkoaW5zdGFuY2UyIGluc3RhbmNlb2YgV2ViQXNzZW1ibHku
SW5zdGFuY2UpOworICAgIH0KKworICAgIGFzc2VydC5hc3luY1Rlc3QodGVzdCgpKTsKK30K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448631</attachid>
            <date>2022-01-07 14:32:31 -0800</date>
            <delta_ts>2022-01-11 12:46:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234116-20220107143230.patch</filename>
            <type>text/plain</type>
            <size>27401</size>
            <attacher name="Asumu Takikawa">asumu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3Nzc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
ZjlmZjM4Nzc5ZTk0ZjI5YTg3NWYwZDUyMDE5ZDZmMDdhMmQ0ZmUyLi4wYzJjNTNiNThmNDExNjNi
YTFlYmIwMTI5YzQ1MDk5ZjdhNDExNWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAyMS0xMi0xNSAgQXN1bXUgVGFraWthd2EgIDxhc3VtdUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtXYXNtXSBVbmlmeSBtZW1vcnkgaW1wb3J0IGhhbmRsaW5nIGluIG1vZHVs
ZSBsb2FkZXIgYW5kIEpTIGNhc2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzQxMTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBNb3ZlcyB0aGUgbWVtb3J5IGltcG9ydCBoYW5kbGluZyBjb2RlIHRvIHRo
ZSBXYXNtIG1vZHVsZSByZWNvcmQgYW5kCisgICAgICAgIHVzZSB0aGUgc3RyYXRlZ3kgdXNlZCBi
eSB0aGUgbW9kdWxlIGxvYWRlciB0byBoYW5kbGUgbWVtb3J5IGluIGFsbAorICAgICAgICBjYXNl
cy4KKworICAgICAgICAqIHdhc20vV2FzbU1vZHVsZS5jcHA6CisgICAgICAgIChKU0M6Oldhc206
Ok1vZHVsZTo6Y29weUluaXRpYWxDYWxsZWVHcm91cFRvQWxsTWVtb3J5TW9kZXMpOgorICAgICAg
ICAqIHdhc20vanMvSlNXZWJBc3NlbWJseUluc3RhbmNlLmNwcDoKKyAgICAgICAgKEpTQzo6SlNX
ZWJBc3NlbWJseUluc3RhbmNlOjpmaW5hbGl6ZUNyZWF0aW9uKToKKyAgICAgICAgKEpTQzo6SlNX
ZWJBc3NlbWJseUluc3RhbmNlOjp0cnlDcmVhdGUpOgorICAgICAgICAqIHdhc20vanMvV2ViQXNz
ZW1ibHlNb2R1bGVSZWNvcmQuY3BwOgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJseU1vZHVsZVJl
Y29yZDo6aW5pdGlhbGl6ZUltcG9ydHNBbmRFeHBvcnRzKToKKwogMjAyMi0wMS0wNyAgQWxleCBD
aHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3
ZWQsIHJldmVydGluZyByMjg3Njk4LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbU1vZHVsZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTW9k
dWxlLmNwcAppbmRleCBjMzI2NTQyZTk5N2RjNTZhZTNmOTcyYzE5N2U2NjEwZGJmOTZkN2ZhLi4y
NGZhOGM1YTBiODhiZjdlNTVlZTA1ODM5ZjllNmU4ZGY4ZmNlYTVhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTW9kdWxlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtTW9kdWxlLmNwcApAQCAtMTEzLDExICsxMTMsMTcgQEAgdm9pZCBN
b2R1bGU6OmNvbXBpbGVBc3luYyhDb250ZXh0KiBjb250ZXh0LCBNZW1vcnlNb2RlIG1vZGUsIENh
bGxlZUdyb3VwOjpBc3luY0MKIAogdm9pZCBNb2R1bGU6OmNvcHlJbml0aWFsQ2FsbGVlR3JvdXBU
b0FsbE1lbW9yeU1vZGVzKE1lbW9yeU1vZGUgaW5pdGlhbE1vZGUpCiB7CisgICAgTG9ja2VyIGxv
Y2tlciB7IG1fbG9jayB9OwogICAgIEFTU0VSVChtX2NhbGxlZUdyb3Vwc1tzdGF0aWNfY2FzdDx1
aW50OF90Pihpbml0aWFsTW9kZSldKTsKICAgICBjb25zdCBDYWxsZWVHcm91cCYgaW5pdGlhbEJs
b2NrID0gKm1fY2FsbGVlR3JvdXBzW3N0YXRpY19jYXN0PHVpbnQ4X3Q+KGluaXRpYWxNb2RlKV07
CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IFdhc206Ok51bWJlck9mTWVtb3J5TW9kZXM7
IGkrKykgewogICAgICAgICBpZiAoaSA9PSBzdGF0aWNfY2FzdDx1aW50OF90Pihpbml0aWFsTW9k
ZSkpCiAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgQ2FsbGVlR3JvdXAqIGNhbGxlZUdy
b3VwID0gbV9jYWxsZWVHcm91cHNbaV0uZ2V0KCk7CisgICAgICAgIC8vIFdlIHNob3VsZCBvbmx5
IHRyeSB0byBjb3B5IHRoZSBncm91cCBoZXJlIGlmIGl0IGhhc24ndCBhbHJlYWR5IGJlZW4gY3Jl
YXRlZC4KKyAgICAgICAgLy8gSWYgaXQgZXhpc3RzIGJ1dCBpcyBub3QgcnVubmFibGUsIGl0IHNo
b3VsZCBnZXQgY29tcGlsZWQgZHVyaW5nIG1vZHVsZSBldmFsdWF0aW9uLgorICAgICAgICBpZiAo
Y2FsbGVlR3JvdXApCisgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgUmVmPENhbGxlZUdy
b3VwPiBuZXdCbG9jayA9IENhbGxlZUdyb3VwOjpjcmVhdGVGcm9tRXhpc3Rpbmcoc3RhdGljX2Nh
c3Q8TWVtb3J5TW9kZT4oaSksIGluaXRpYWxCbG9jayk7CiAgICAgICAgIG1fY2FsbGVlR3JvdXBz
W2ldID0gV1RGTW92ZShuZXdCbG9jayk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUluc3RhbmNlLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlJbnN0YW5jZS5jcHAKaW5kZXggNDQzZWI5
YmJiYzE5OWFmOGY3MzI3NGI0OWFhYzU2MzkyYzFkYzJmOC4uN2I4Njc1MzMyOWUyNTNiNzUwZTg0
NDI4OTA0MmIwZWE0NGI0YTFkNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvSlNXZWJBc3NlbWJseUluc3RhbmNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5SW5zdGFuY2UuY3BwCkBAIC0xMTcsMTEgKzExNywxMiBA
QCB2b2lkIEpTV2ViQXNzZW1ibHlJbnN0YW5jZTo6ZmluYWxpemVDcmVhdGlvbihWTSYgdm0sIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogCiAgICAgUkVMRUFTRV9BU1NFUlQod2FzbUNhbGxl
ZUdyb3VwLT5pc1NhZmVUb1J1bihtZW1vcnlNb2RlKCkpKTsKIAotICAgIC8vIEluIHRoZSBtb2R1
bGUgbG9hZGVyIGNhc2UsIHdlIHdpbGwgaW5pdGlhbGl6ZSBhbGwgbWVtb3J5IG1vZGVzIHdpdGgg
dGhlIGluaXRpYWwgTExJbnQgY29tcGlsYXRpb24KKyAgICAvLyBXaGVuIG1lbW9yeSBpcyBpbXBv
cnRlZCwgd2Ugd2lsbCBpbml0aWFsaXplIGFsbCBtZW1vcnkgbW9kZXMgd2l0aCB0aGUgaW5pdGlh
bCBMTEludCBjb21waWxhdGlvbgogICAgIC8vIHJlc3VsdHMsIHNvIHRoYXQgbGF0ZXIgd2hlbiBt
ZW1vcnkgaW1wb3J0cyBiZWNvbWUgYXZhaWxhYmxlLCB0aGUgYXBwcm9wcmlhdGUgQ2FsbGVlR3Jv
dXAgY2FuIGJlIHVzZWQuCiAgICAgLy8gSWYgTExJbnQgaXMgZGlzYWJsZWQsIHdlIGluc3RlYWQg
ZGVmZXIgY29tcGlsYXRpb24gdG8gbW9kdWxlIGV2YWx1YXRpb24uCisgICAgLy8gSWYgdGhlIGNv
ZGUgaXMgYWxyZWFkeSBjb21waWxlZCwgZS5nLiB0aGUgbW9kdWxlIHdhcyBhbHJlYWR5IGluc3Rh
bnRpYXRlZCBiZWZvcmUsIHdlIGRvIG5vdCByZS1pbml0aWFsaXplLgogICAgIGJvb2wgaGFzTWVt
b3J5SW1wb3J0ID0gbW9kdWxlKCktPm1vZHVsZUluZm9ybWF0aW9uKCkubWVtb3J5LmlzSW1wb3J0
KCk7Ci0gICAgaWYgKGNyZWF0aW9uTW9kZSA9PSBXYXNtOjpDcmVhdGlvbk1vZGU6OkZyb21Nb2R1
bGVMb2FkZXIgJiYgT3B0aW9uczo6dXNlV2FzbUxMSW50KCkgJiYgaGFzTWVtb3J5SW1wb3J0KSB7
CisgICAgaWYgKE9wdGlvbnM6OnVzZVdhc21MTEludCgpICYmIGhhc01lbW9yeUltcG9ydCkgewog
ICAgICAgICBXYXNtOjpNZW1vcnlNb2RlIGluaXRpYWxNb2RlID0gV2FzbTo6TWVtb3J5TW9kZTo6
Qm91bmRzQ2hlY2tpbmc7CiAgICAgICAgIEFTU0VSVChtZW1vcnlNb2RlKCkgPT0gaW5pdGlhbE1v
ZGUpOwogICAgICAgICBtb2R1bGUoKS0+bW9kdWxlKCkuY29weUluaXRpYWxDYWxsZWVHcm91cFRv
QWxsTWVtb3J5TW9kZXMoaW5pdGlhbE1vZGUpOwpAQCAtMTcyLDEwICsxNzMsNiBAQCBKU1dlYkFz
c2VtYmx5SW5zdGFuY2UqIEpTV2ViQXNzZW1ibHlJbnN0YW5jZTo6dHJ5Q3JlYXRlKFZNJiB2bSwg
SlNHbG9iYWxPYmplY3QqCiAgICAgaWYgKCFnbG9iYWxPYmplY3QtPndlYkFzc2VtYmx5RW5hYmxl
ZCgpKQogICAgICAgICByZXR1cm4gZXhjZXB0aW9uKGNyZWF0ZUV2YWxFcnJvcihnbG9iYWxPYmpl
Y3QsIGdsb2JhbE9iamVjdC0+d2ViQXNzZW1ibHlEaXNhYmxlZEVycm9yTWVzc2FnZSgpKSk7CiAK
LSAgICBhdXRvIGltcG9ydEZhaWxNZXNzYWdlID0gWyZdIChjb25zdCBXYXNtOjpJbXBvcnQmIGlt
cG9ydCwgY29uc3QgY2hhciogYmVmb3JlLCBjb25zdCBjaGFyKiBhZnRlcikgewotICAgICAgICBy
ZXR1cm4gbWFrZVN0cmluZyhiZWZvcmUsICIgIiwgU3RyaW5nOjpmcm9tVVRGOChpbXBvcnQubW9k
dWxlKSwgIjoiLCBTdHJpbmc6OmZyb21VVEY4KGltcG9ydC5maWVsZCksICIgIiwgYWZ0ZXIpOwot
ICAgIH07Ci0KICAgICBXZWJBc3NlbWJseU1vZHVsZVJlY29yZCogbW9kdWxlUmVjb3JkID0gV2Vi
QXNzZW1ibHlNb2R1bGVSZWNvcmQ6OmNyZWF0ZShnbG9iYWxPYmplY3QsIHZtLCBnbG9iYWxPYmpl
Y3QtPndlYkFzc2VtYmx5TW9kdWxlUmVjb3JkU3RydWN0dXJlKCksIG1vZHVsZUtleSwgbW9kdWxl
SW5mb3JtYXRpb24pOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgbnVsbHB0
cik7CiAKQEAgLTE4OSwxMCArMTg2LDYgQEAgSlNXZWJBc3NlbWJseUluc3RhbmNlKiBKU1dlYkFz
c2VtYmx5SW5zdGFuY2U6OnRyeUNyZWF0ZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KgogICAgIGpz
SW5zdGFuY2UtPmZpbmlzaENyZWF0aW9uKHZtLCBqc01vZHVsZSwgbW9kdWxlUmVjb3JkKTsKICAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIG51bGxwdHIpOwogCi0gICAgLy8gTGV0
IGZ1bmNzLCBtZW1vcmllcyBhbmQgdGFibGVzIGJlIGluaXRpYWxseS1lbXB0eSBsaXN0cyBvZiBj
YWxsYWJsZSBKYXZhU2NyaXB0IG9iamVjdHMsIFdlYkFzc2VtYmx5Lk1lbW9yeSBvYmplY3RzIGFu
ZCBXZWJBc3NlbWJseS5UYWJsZSBvYmplY3RzLCByZXNwZWN0aXZlbHkuCi0gICAgLy8gTGV0IGlt
cG9ydHMgYmUgYW4gaW5pdGlhbGx5LWVtcHR5IGxpc3Qgb2YgZXh0ZXJuYWwgdmFsdWVzLgotICAg
IGJvb2wgaGFzTWVtb3J5SW1wb3J0ID0gZmFsc2U7Ci0KICAgICBpZiAoY3JlYXRpb25Nb2RlID09
IFdhc206OkNyZWF0aW9uTW9kZTo6RnJvbUpTKSB7CiAgICAgICAgIC8vIElmIHRoZSBsaXN0IG9m
IG1vZHVsZS5pbXBvcnRzIGlzIG5vdCBlbXB0eSBhbmQgVHlwZShpbXBvcnRPYmplY3QpIGlzIG5v
dCBPYmplY3QsIGEgVHlwZUVycm9yIGlzIHRocm93bi4KICAgICAgICAgaWYgKG1vZHVsZUluZm9y
bWF0aW9uLmltcG9ydHMuc2l6ZSgpICYmICFpbXBvcnRPYmplY3QpCkBAIC0yMTAsMTEyICsyMDMs
MzEgQEAgSlNXZWJBc3NlbWJseUluc3RhbmNlKiBKU1dlYkFzc2VtYmx5SW5zdGFuY2U6OnRyeUNy
ZWF0ZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KgogICAgICAgICAgICAgZmllbGROYW1lLAogICAg
ICAgICAgICAgSWRlbnRpZmllcjo6ZnJvbVVpZChQcml2YXRlTmFtZShQcml2YXRlTmFtZTo6RGVz
Y3JpcHRpb24sICJXZWJBc3NlbWJseUltcG9ydE5hbWUiKSksCiAgICAgICAgIH0pOwotCi0gICAg
ICAgIC8vIFZhbGlkYXRpb24gZm9yIG1vc3QgdHlwZXMgYXJlIGRvbmUgaW4gV2ViQXNzZW1ibHlN
b2R1bGVSZWNvcmQ6OmluaXRpYWxpemVJbXBvcnRzQW5kRXhwb3J0cyBhbmQgc2tpcHBlZCBoZXJl
LgotICAgICAgICAvLyBFdmVudHVhbGx5IHdlIHdpbGwgbW92ZSBhbGwgdGhlIGxpbmtpbmcgY29k
ZSBoZXJlIHRvIFdlYkFzc2VtYmx5TW9kdWxlUmVjb3JkOjppbml0aWFsaXplSW1wb3J0c0FuZEV4
cG9ydHMuCi0gICAgICAgIHN3aXRjaCAoaW1wb3J0LmtpbmQpIHsKLSAgICAgICAgY2FzZSBXYXNt
OjpFeHRlcm5hbEtpbmQ6OkZ1bmN0aW9uOgotICAgICAgICBjYXNlIFdhc206OkV4dGVybmFsS2lu
ZDo6R2xvYmFsOgotICAgICAgICBjYXNlIFdhc206OkV4dGVybmFsS2luZDo6VGFibGU6Ci0gICAg
ICAgIGNhc2UgV2FzbTo6RXh0ZXJuYWxLaW5kOjpFeGNlcHRpb246Ci0gICAgICAgICAgICBjb250
aW51ZTsKLSAgICAgICAgY2FzZSBXYXNtOjpFeHRlcm5hbEtpbmQ6Ok1lbW9yeToKLSAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICB9Ci0KLSAgICAgICAgSlNWYWx1ZSB2YWx1ZTsKLSAgICAgICAg
aWYgKGNyZWF0aW9uTW9kZSA9PSBXYXNtOjpDcmVhdGlvbk1vZGU6OkZyb21KUykgewotICAgICAg
ICAgICAgLy8gMS4gTGV0IG8gYmUgdGhlIHJlc3VsdGFudCB2YWx1ZSBvZiBwZXJmb3JtaW5nIEdl
dChpbXBvcnRPYmplY3QsIGkubW9kdWxlX25hbWUpLgotICAgICAgICAgICAgSlNWYWx1ZSBpbXBv
cnRNb2R1bGVWYWx1ZSA9IGltcG9ydE9iamVjdC0+Z2V0KGdsb2JhbE9iamVjdCwgbW9kdWxlTmFt
ZSk7Ci0gICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIG51bGxwdHIp
OwotICAgICAgICAgICAgLy8gMi4gSWYgVHlwZShvKSBpcyBub3QgT2JqZWN0LCB0aHJvdyBhIFR5
cGVFcnJvci4KLSAgICAgICAgICAgIGlmICghaW1wb3J0TW9kdWxlVmFsdWUuaXNPYmplY3QoKSkK
LSAgICAgICAgICAgICAgICByZXR1cm4gZXhjZXB0aW9uKGNyZWF0ZVR5cGVFcnJvcihnbG9iYWxP
YmplY3QsIGltcG9ydEZhaWxNZXNzYWdlKGltcG9ydCwgImltcG9ydCIsICJtdXN0IGJlIGFuIG9i
amVjdCIpLCBkZWZhdWx0U291cmNlQXBwZW5kZXIsIHJ1bnRpbWVUeXBlRm9yVmFsdWUodm0sIGlt
cG9ydE1vZHVsZVZhbHVlKSkpOwotCi0gICAgICAgICAgICAvLyAzLiBMZXQgdiBiZSB0aGUgdmFs
dWUgb2YgcGVyZm9ybWluZyBHZXQobywgaS5pdGVtX25hbWUpCi0gICAgICAgICAgICBKU09iamVj
dCogb2JqZWN0ID0ganNDYXN0PEpTT2JqZWN0Kj4oaW1wb3J0TW9kdWxlVmFsdWUpOwotICAgICAg
ICAgICAgdmFsdWUgPSBvYmplY3QtPmdldChnbG9iYWxPYmplY3QsIGZpZWxkTmFtZSk7Ci0gICAg
ICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIG51bGxwdHIpOwotICAgICAg
ICB9Ci0gICAgICAgIGlmICghdmFsdWUpCi0gICAgICAgICAgICB2YWx1ZSA9IGpzVW5kZWZpbmVk
KCk7Ci0KLSAgICAgICAgc3dpdGNoIChpbXBvcnQua2luZCkgewotICAgICAgICBjYXNlIFdhc206
OkV4dGVybmFsS2luZDo6RnVuY3Rpb246Ci0gICAgICAgIGNhc2UgV2FzbTo6RXh0ZXJuYWxLaW5k
OjpHbG9iYWw6Ci0gICAgICAgIGNhc2UgV2FzbTo6RXh0ZXJuYWxLaW5kOjpUYWJsZToKLSAgICAg
ICAgY2FzZSBXYXNtOjpFeHRlcm5hbEtpbmQ6OkV4Y2VwdGlvbjoKLSAgICAgICAgICAgIGJyZWFr
OwotCi0gICAgICAgIGNhc2UgV2FzbTo6RXh0ZXJuYWxLaW5kOjpNZW1vcnk6IHsKLSAgICAgICAg
ICAgIC8vIDYuIElmIGkgaXMgYSBtZW1vcnkgaW1wb3J0OgotICAgICAgICAgICAgUkVMRUFTRV9B
U1NFUlQoIWhhc01lbW9yeUltcG9ydCk7IC8vIFRoaXMgc2hvdWxkIGJlIGd1YXJhbnRlZWQgYnkg
YSB2YWxpZGF0aW9uIGZhaWx1cmUuCi0gICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChtb2R1bGVJ
bmZvcm1hdGlvbi5tZW1vcnkpOwotICAgICAgICAgICAgaGFzTWVtb3J5SW1wb3J0ID0gdHJ1ZTsK
LSAgICAgICAgICAgIC8vIEZvciB0aGUgbW9kdWxlIGxvYWRlciwgd2UgY2Fubm90IGluaXRpYWxp
emUgdGhlIG1lbW9yeSBoZXJlIHNvIHdlIGRlbGF5IHRoaXMKLSAgICAgICAgICAgIC8vIHVudGls
IFdlYkFzc2VtYmx5TW9kdWxlUmVjb3JkJ3MgaW5pdGlhbGl6YXRpb24gb3BlcmF0aW9uLgotICAg
ICAgICAgICAgaWYgKGNyZWF0aW9uTW9kZSA9PSBXYXNtOjpDcmVhdGlvbk1vZGU6OkZyb21Nb2R1
bGVMb2FkZXIpCi0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBKU1dlYkFzc2Vt
Ymx5TWVtb3J5KiBtZW1vcnkgPSBqc0R5bmFtaWNDYXN0PEpTV2ViQXNzZW1ibHlNZW1vcnkqPih2
bSwgdmFsdWUpOwotICAgICAgICAgICAgLy8gaS4gSWYgdiBpcyBub3QgYSBXZWJBc3NlbWJseS5N
ZW1vcnkgb2JqZWN0LCB0aHJvdyBhIFdlYkFzc2VtYmx5LkxpbmtFcnJvci4KLSAgICAgICAgICAg
IGlmICghbWVtb3J5KQotICAgICAgICAgICAgICAgIHJldHVybiBleGNlcHRpb24oY3JlYXRlSlNX
ZWJBc3NlbWJseUxpbmtFcnJvcihnbG9iYWxPYmplY3QsIHZtLCBpbXBvcnRGYWlsTWVzc2FnZShp
bXBvcnQsICJNZW1vcnkgaW1wb3J0IiwgImlzIG5vdCBhbiBpbnN0YW5jZSBvZiBXZWJBc3NlbWJs
eS5NZW1vcnkiKSkpOwotCi0gICAgICAgICAgICBXYXNtOjpQYWdlQ291bnQgZGVjbGFyZWRJbml0
aWFsID0gbW9kdWxlSW5mb3JtYXRpb24ubWVtb3J5LmluaXRpYWwoKTsKLSAgICAgICAgICAgIFdh
c206OlBhZ2VDb3VudCBpbXBvcnRlZEluaXRpYWwgPSBtZW1vcnktPm1lbW9yeSgpLmluaXRpYWwo
KTsKLSAgICAgICAgICAgIGlmIChpbXBvcnRlZEluaXRpYWwgPCBkZWNsYXJlZEluaXRpYWwpCi0g
ICAgICAgICAgICAgICAgcmV0dXJuIGV4Y2VwdGlvbihjcmVhdGVKU1dlYkFzc2VtYmx5TGlua0Vy
cm9yKGdsb2JhbE9iamVjdCwgdm0sIGltcG9ydEZhaWxNZXNzYWdlKGltcG9ydCwgIk1lbW9yeSBp
bXBvcnQiLCAicHJvdmlkZWQgYW4gJ2luaXRpYWwnIHRoYXQgaXMgc21hbGxlciB0aGFuIHRoZSBt
b2R1bGUncyBkZWNsYXJlZCAnaW5pdGlhbCcgaW1wb3J0IG1lbW9yeSBzaXplIikpKTsKLQotICAg
ICAgICAgICAgaWYgKFdhc206OlBhZ2VDb3VudCBkZWNsYXJlZE1heGltdW0gPSBtb2R1bGVJbmZv
cm1hdGlvbi5tZW1vcnkubWF4aW11bSgpKSB7Ci0gICAgICAgICAgICAgICAgV2FzbTo6UGFnZUNv
dW50IGltcG9ydGVkTWF4aW11bSA9IG1lbW9yeS0+bWVtb3J5KCkubWF4aW11bSgpOwotICAgICAg
ICAgICAgICAgIGlmICghaW1wb3J0ZWRNYXhpbXVtKQotICAgICAgICAgICAgICAgICAgICByZXR1
cm4gZXhjZXB0aW9uKGNyZWF0ZUpTV2ViQXNzZW1ibHlMaW5rRXJyb3IoZ2xvYmFsT2JqZWN0LCB2
bSwgaW1wb3J0RmFpbE1lc3NhZ2UoaW1wb3J0LCAiTWVtb3J5IGltcG9ydCIsICJkaWQgbm90IGhh
dmUgYSAnbWF4aW11bScgYnV0IHRoZSBtb2R1bGUgcmVxdWlyZXMgdGhhdCBpdCBkb2VzIikpKTsK
LQotICAgICAgICAgICAgICAgIGlmIChpbXBvcnRlZE1heGltdW0gPiBkZWNsYXJlZE1heGltdW0p
Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBleGNlcHRpb24oY3JlYXRlSlNXZWJBc3NlbWJs
eUxpbmtFcnJvcihnbG9iYWxPYmplY3QsIHZtLCBpbXBvcnRGYWlsTWVzc2FnZShpbXBvcnQsICJN
ZW1vcnkgaW1wb3J0IiwgInByb3ZpZGVkIGEgJ21heGltdW0nIHRoYXQgaXMgbGFyZ2VyIHRoYW4g
dGhlIG1vZHVsZSdzIGRlY2xhcmVkICdtYXhpbXVtJyBpbXBvcnQgbWVtb3J5IHNpemUiKSkpOwot
ICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiAoKG1lbW9yeS0+bWVtb3J5KCkuc2hhcmlu
Z01vZGUoKSA9PSBXYXNtOjpNZW1vcnlTaGFyaW5nTW9kZTo6U2hhcmVkKSAhPSBtb2R1bGVJbmZv
cm1hdGlvbi5tZW1vcnkuaXNTaGFyZWQoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZXhjZXB0
aW9uKGNyZWF0ZUpTV2ViQXNzZW1ibHlMaW5rRXJyb3IoZ2xvYmFsT2JqZWN0LCB2bSwgaW1wb3J0
RmFpbE1lc3NhZ2UoaW1wb3J0LCAiTWVtb3J5IGltcG9ydCIsICJwcm92aWRlZCBhICdzaGFyZWQn
IHRoYXQgaXMgZGlmZmVybnQgZnJvbSB0aGUgbW9kdWxlJ3MgZGVjbGFyZWQgJ3NoYXJlZCcgaW1w
b3J0IG1lbW9yeSBhdHRyaWJ1dGUiKSkpOwotCi0gICAgICAgICAgICAvLyBpaS4gQXBwZW5kIHYg
dG8gbWVtb3JpZXMuCi0gICAgICAgICAgICAvLyBpaWkuIEFwcGVuZCB2LltbTWVtb3J5XV0gdG8g
aW1wb3J0cy4KLSAgICAgICAgICAgIGpzSW5zdGFuY2UtPnNldE1lbW9yeSh2bSwgbWVtb3J5KTsK
LSAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgbnVsbHB0cik7Ci0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICB9CiAgICAgfQogICAgIEFTU0VS
VChtb2R1bGVSZWNvcmQtPmltcG9ydEVudHJpZXMoKS5zaXplKCkgPT0gbW9kdWxlSW5mb3JtYXRp
b24uaW1wb3J0cy5zaXplKCkpOwogCi0gICAgewotICAgICAgICBpZiAoISFtb2R1bGVJbmZvcm1h
dGlvbi5tZW1vcnkgJiYgbW9kdWxlSW5mb3JtYXRpb24ubWVtb3J5LmlzSW1wb3J0KCkpIHsKLSAg
ICAgICAgICAgIC8vIFdlIHNob3VsZCBlaXRoZXIgaGF2ZSBhIE1lbW9yeSBpbXBvcnQgb3Igd2Ug
c2hvdWxkIGhhdmUgdGhyb3duIGFuIGV4Y2VwdGlvbi4KLSAgICAgICAgICAgIFJFTEVBU0VfQVNT
RVJUKGhhc01lbW9yeUltcG9ydCk7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAobW9kdWxlSW5m
b3JtYXRpb24ubWVtb3J5ICYmICFoYXNNZW1vcnlJbXBvcnQpIHsKLSAgICAgICAgICAgIC8vIFdl
IGNyZWF0ZSBhIG1lbW9yeSB3aGVuIGl0J3MgYSBtZW1vcnkgZGVmaW5pdGlvbi4KLSAgICAgICAg
ICAgIFJFTEVBU0VfQVNTRVJUKCFtb2R1bGVJbmZvcm1hdGlvbi5tZW1vcnkuaXNJbXBvcnQoKSk7
Ci0KLSAgICAgICAgICAgIGF1dG8qIGpzTWVtb3J5ID0gSlNXZWJBc3NlbWJseU1lbW9yeTo6dHJ5
Q3JlYXRlKGdsb2JhbE9iamVjdCwgdm0sIGdsb2JhbE9iamVjdC0+d2ViQXNzZW1ibHlNZW1vcnlT
dHJ1Y3R1cmUoKSk7Ci0gICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUs
IG51bGxwdHIpOworICAgIGJvb2wgaGFzTWVtb3J5SW1wb3J0ID0gbW9kdWxlSW5mb3JtYXRpb24u
bWVtb3J5LmlzSW1wb3J0KCk7CisgICAgaWYgKG1vZHVsZUluZm9ybWF0aW9uLm1lbW9yeSAmJiAh
aGFzTWVtb3J5SW1wb3J0KSB7CisgICAgICAgIC8vIFdlIGNyZWF0ZSBhIG1lbW9yeSB3aGVuIGl0
J3MgYSBtZW1vcnkgZGVmaW5pdGlvbi4KKyAgICAgICAgYXV0byoganNNZW1vcnkgPSBKU1dlYkFz
c2VtYmx5TWVtb3J5Ojp0cnlDcmVhdGUoZ2xvYmFsT2JqZWN0LCB2bSwgZ2xvYmFsT2JqZWN0LT53
ZWJBc3NlbWJseU1lbW9yeVN0cnVjdHVyZSgpKTsKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElP
Tih0aHJvd1Njb3BlLCBudWxscHRyKTsKIAotICAgICAgICAgICAgUmVmUHRyPFdhc206Ok1lbW9y
eT4gbWVtb3J5ID0gV2FzbTo6TWVtb3J5Ojp0cnlDcmVhdGUobW9kdWxlSW5mb3JtYXRpb24ubWVt
b3J5LmluaXRpYWwoKSwgbW9kdWxlSW5mb3JtYXRpb24ubWVtb3J5Lm1heGltdW0oKSwgbW9kdWxl
SW5mb3JtYXRpb24ubWVtb3J5LmlzU2hhcmVkKCkgPyBXYXNtOjpNZW1vcnlTaGFyaW5nTW9kZTo6
U2hhcmVkOiBXYXNtOjpNZW1vcnlTaGFyaW5nTW9kZTo6RGVmYXVsdCwKLSAgICAgICAgICAgICAg
ICBbJnZtXSAoV2FzbTo6TWVtb3J5OjpOb3RpZnlQcmVzc3VyZSkgeyB2bS5oZWFwLmNvbGxlY3RB
c3luYyhDb2xsZWN0aW9uU2NvcGU6OkZ1bGwpOyB9LAotICAgICAgICAgICAgICAgIFsmdm1dIChX
YXNtOjpNZW1vcnk6OlN5bmNUcnlUb1JlY2xhaW0pIHsgdm0uaGVhcC5jb2xsZWN0U3luYyhDb2xs
ZWN0aW9uU2NvcGU6OkZ1bGwpOyB9LAotICAgICAgICAgICAgICAgIFsmdm0sIGpzTWVtb3J5XSAo
V2FzbTo6TWVtb3J5OjpHcm93U3VjY2VzcywgV2FzbTo6UGFnZUNvdW50IG9sZFBhZ2VDb3VudCwg
V2FzbTo6UGFnZUNvdW50IG5ld1BhZ2VDb3VudCkgeyBqc01lbW9yeS0+Z3Jvd1N1Y2Nlc3NDYWxs
YmFjayh2bSwgb2xkUGFnZUNvdW50LCBuZXdQYWdlQ291bnQpOyB9KTsKLSAgICAgICAgICAgIGlm
ICghbWVtb3J5KQotICAgICAgICAgICAgICAgIHJldHVybiBleGNlcHRpb24oY3JlYXRlT3V0T2ZN
ZW1vcnlFcnJvcihnbG9iYWxPYmplY3QpKTsKKyAgICAgICAgUmVmUHRyPFdhc206Ok1lbW9yeT4g
bWVtb3J5ID0gV2FzbTo6TWVtb3J5Ojp0cnlDcmVhdGUobW9kdWxlSW5mb3JtYXRpb24ubWVtb3J5
LmluaXRpYWwoKSwgbW9kdWxlSW5mb3JtYXRpb24ubWVtb3J5Lm1heGltdW0oKSwgbW9kdWxlSW5m
b3JtYXRpb24ubWVtb3J5LmlzU2hhcmVkKCkgPyBXYXNtOjpNZW1vcnlTaGFyaW5nTW9kZTo6U2hh
cmVkOiBXYXNtOjpNZW1vcnlTaGFyaW5nTW9kZTo6RGVmYXVsdCwKKyAgICAgICAgICAgIFsmdm1d
KFdhc206Ok1lbW9yeTo6Tm90aWZ5UHJlc3N1cmUpIHsgdm0uaGVhcC5jb2xsZWN0QXN5bmMoQ29s
bGVjdGlvblNjb3BlOjpGdWxsKTsgfSwKKyAgICAgICAgICAgIFsmdm1dKFdhc206Ok1lbW9yeTo6
U3luY1RyeVRvUmVjbGFpbSkgeyB2bS5oZWFwLmNvbGxlY3RTeW5jKENvbGxlY3Rpb25TY29wZTo6
RnVsbCk7IH0sCisgICAgICAgICAgICBbJnZtLCBqc01lbW9yeV0oV2FzbTo6TWVtb3J5OjpHcm93
U3VjY2VzcywgV2FzbTo6UGFnZUNvdW50IG9sZFBhZ2VDb3VudCwgV2FzbTo6UGFnZUNvdW50IG5l
d1BhZ2VDb3VudCkgeyBqc01lbW9yeS0+Z3Jvd1N1Y2Nlc3NDYWxsYmFjayh2bSwgb2xkUGFnZUNv
dW50LCBuZXdQYWdlQ291bnQpOyB9CisgICAgICAgICk7CisgICAgICAgIGlmICghbWVtb3J5KQor
ICAgICAgICAgICAgcmV0dXJuIGV4Y2VwdGlvbihjcmVhdGVPdXRPZk1lbW9yeUVycm9yKGdsb2Jh
bE9iamVjdCkpOwogCi0gICAgICAgICAgICBqc01lbW9yeS0+YWRvcHQobWVtb3J5LnJlbGVhc2VO
b25OdWxsKCkpOwotICAgICAgICAgICAganNJbnN0YW5jZS0+c2V0TWVtb3J5KHZtLCBqc01lbW9y
eSk7Ci0gICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIG51bGxwdHIp
OwotICAgICAgICB9CisgICAgICAgIGpzTWVtb3J5LT5hZG9wdChtZW1vcnkucmVsZWFzZU5vbk51
bGwoKSk7CisgICAgICAgIGpzSW5zdGFuY2UtPnNldE1lbW9yeSh2bSwganNNZW1vcnkpOworICAg
ICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIG51bGxwdHIpOwogICAgIH0KLSAg
ICAKKwogICAgIGlmICghanNJbnN0YW5jZS0+bWVtb3J5KCkpIHsKICAgICAgICAgLy8gTWFrZSBz
dXJlIHdlIGhhdmUgYSBkdW1teSBtZW1vcnksIHNvIHRoYXQgd2FzbSAtPiB3YXNtIHRodW5rcyBh
dm9pZCBjaGVja2luZyBmb3IgYSBudWxscHRyIE1lbW9yeSB3aGVuIHRyeWluZyB0byBzZXQgcGlu
bmVkIHJlZ2lzdGVycy4KKyAgICAgICAgLy8gV2hlbiB0aGVyZSBpcyBhIG1lbW9yeSBpbXBvcnQs
IHRoaXMgd2lsbCBiZSByZXBsYWNlZCBsYXRlciBpbiB0aGUgbW9kdWxlIHJlY29yZCBpbXBvcnQg
aW5pdGlhbGl6YXRpb24uCiAgICAgICAgIGF1dG8qIGpzTWVtb3J5ID0gSlNXZWJBc3NlbWJseU1l
bW9yeTo6dHJ5Q3JlYXRlKGdsb2JhbE9iamVjdCwgdm0sIGdsb2JhbE9iamVjdC0+d2ViQXNzZW1i
bHlNZW1vcnlTdHJ1Y3R1cmUoKSk7CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dT
Y29wZSwgbnVsbHB0cik7CiAgICAgICAgIGpzTWVtb3J5LT5hZG9wdChXYXNtOjpNZW1vcnk6OmNy
ZWF0ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFz
c2VtYmx5TW9kdWxlUmVjb3JkLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dl
YkFzc2VtYmx5TW9kdWxlUmVjb3JkLmNwcAppbmRleCA2YWFkNjIxNzJiZDk1NjJiZWQ4MzRmNjA1
NGU3N2MxMTY0YWM3ZGQ3Li41OTllMjM0ZjY1NTQ0MGFjZTJlNzViODg0ZTU1YjI0OTY3Mjk3MGU0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1v
ZHVsZVJlY29yZC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNz
ZW1ibHlNb2R1bGVSZWNvcmQuY3BwCkBAIC0xMzMsMjAgKzEzMyw2IEBAIHZvaWQgV2ViQXNzZW1i
bHlNb2R1bGVSZWNvcmQ6OmluaXRpYWxpemVJbXBvcnRzQW5kRXhwb3J0cyhKU0dsb2JhbE9iamVj
dCogZ2xvYmFsCiAgICAgfTsKIAogICAgIGZvciAoY29uc3QgYXV0byYgaW1wb3J0IDogbW9kdWxl
SW5mb3JtYXRpb24uaW1wb3J0cykgewotICAgICAgICAvLyBWYWxpZGF0aW9uIGFuZCBsaW5raW5n
IG90aGVyIHRoYW4gV2FzbTo6RXh0ZXJuYWxLaW5kOjpGdW5jdGlvbiBpcyBhbHJlYWR5IGRvbmUg
aW4gSlNXZWJBc3NlbWJseUluc3RhbmNlLgotICAgICAgICAvLyBFdmVudHVhbGx5IHdlIHdpbGwg
bW92ZSBhbGwgdGhlIGxpbmtpbmcgY29kZSBpbiBKU1dlYkFzc2VtYmx5SW5zdGFuY2UgaGVyZSBh
bmQgcmVtb3ZlIHRoaXMgc3dpdGNoIHN0YXRlbWVudC4KLSAgICAgICAgc3dpdGNoIChpbXBvcnQu
a2luZCkgewotICAgICAgICBjYXNlIFdhc206OkV4dGVybmFsS2luZDo6RnVuY3Rpb246Ci0gICAg
ICAgIGNhc2UgV2FzbTo6RXh0ZXJuYWxLaW5kOjpHbG9iYWw6Ci0gICAgICAgIGNhc2UgV2FzbTo6
RXh0ZXJuYWxLaW5kOjpUYWJsZToKLSAgICAgICAgY2FzZSBXYXNtOjpFeHRlcm5hbEtpbmQ6OkV4
Y2VwdGlvbjoKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFdhc206OkV4dGVybmFs
S2luZDo6TWVtb3J5OgotICAgICAgICAgICAgaWYgKGNyZWF0aW9uTW9kZSA9PSBXYXNtOjpDcmVh
dGlvbk1vZGU6OkZyb21KUykKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICB9Ci0KICAgICAgICAgSWRlbnRpZmllciBtb2R1bGVOYW1lID0gSWRl
bnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgU3RyaW5nOjpmcm9tVVRGOChpbXBvcnQubW9kdWxlKSk7
CiAgICAgICAgIElkZW50aWZpZXIgZmllbGROYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2
bSwgU3RyaW5nOjpmcm9tVVRGOChpbXBvcnQuZmllbGQpKTsKICAgICAgICAgSlNWYWx1ZSB2YWx1
ZTsKQEAgLTQwOSw3ICszOTUsNiBAQCB2b2lkIFdlYkFzc2VtYmx5TW9kdWxlUmVjb3JkOjppbml0
aWFsaXplSW1wb3J0c0FuZEV4cG9ydHMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbAogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0KIAotICAgICAgICAvLyBNZW1vcnkgaW5pdGlhbGl6YXRpb24g
d2lsbCBvbmx5IG9jY3VyIGhlcmUgaWYgdGhlIGNyZWF0aW9uIG1vZGUgd2FzIHRocm91Z2ggdGhl
IG1vZHVsZSBsb2FkZXIuCiAgICAgICAgIGNhc2UgV2FzbTo6RXh0ZXJuYWxLaW5kOjpNZW1vcnk6
CiAgICAgICAgICAgICBKU1dlYkFzc2VtYmx5TWVtb3J5KiBtZW1vcnkgPSBqc0R5bmFtaWNDYXN0
PEpTV2ViQXNzZW1ibHlNZW1vcnkqPih2bSwgdmFsdWUpOwogICAgICAgICAgICAgLy8gaS4gSWYg
diBpcyBub3QgYSBXZWJBc3NlbWJseS5NZW1vcnkgb2JqZWN0LCB0aHJvdyBhIFdlYkFzc2VtYmx5
LkxpbmtFcnJvci4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDdmZWQwODU0MGNk
M2VkNjAyYzNhN2IyMzk5M2Q0ZDZjZThhNzRmZmEuLjgzYzA4NTk5ZjY5M2IyMTMxZThiZGY2MmQx
MDhiMmY1YzkyODY5OWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDIwIEBACisyMDIxLTEyLTE1ICBBc3VtdSBUYWtpa2F3YSAgPGFzdW11QGlnYWxpYS5jb20+CisK
KyAgICAgICAgW1dhc21dIFVuaWZ5IG1lbW9yeSBpbXBvcnQgaGFuZGxpbmcgaW4gbW9kdWxlIGxv
YWRlciBhbmQgSlMgY2FzZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzNDExNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkanVzdCBXYXNtIFdQVCB0ZXN0IGV4cGVjdGF0aW9ucyBub3cgdGhhdCBnZXR0
ZXIgb3JkZXJpbmcgdGVzdHMKKyAgICAgICAgc2hvdWxkIHBhc3MuCisKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9jb25zdHJ1Y3Rvci9pbnN0YW50aWF0ZS5hbnktZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL2NvbnN0
cnVjdG9yL2luc3RhbnRpYXRlLmFueS53b3JrZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL2luc3RhbmNlL2NvbnN0cnVjdG9yLmFueS1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvaW5zdGFu
Y2UvY29uc3RydWN0b3IuYW55Lndvcmtlci1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL3dhc20vd2ViYXBpL2luc3RhbnRpYXRlU3RyZWFtaW5nLmFueS1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vd2ViYXBpL2luc3RhbnRp
YXRlU3RyZWFtaW5nLmFueS53b3JrZXItZXhwZWN0ZWQudHh0OgorCiAyMDIyLTAxLTA3ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgogCiAgICAgICAgIEluc2VydGluZyBhIG5l
dyBAa2V5ZnJhbWVzIHJ1bGUgZG9lcyBub3Qgc3RhcnQgYW5pbWF0aW9ucyB0aGF0IGFscmVhZHkg
dXNlZCB0aGlzIG5hbWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9jb25zdHJ1Y3Rvci9pbnN0YW50aWF0ZS5hbnktZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
YXNtL2pzYXBpL2NvbnN0cnVjdG9yL2luc3RhbnRpYXRlLmFueS1leHBlY3RlZC50eHQKaW5kZXgg
NTA2NDdjMjUzZGY5NTkyNTNiMmRlYzM5YmVkY2EzOWQ2ZmU3Y2IwMy4uODY0MmE1ZWFlMDYwMTM1
MWFmZDE1NTQyMTNiODM2ZTFkNzkxMzA4MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL2NvbnN0cnVjdG9yL2luc3RhbnRp
YXRlLmFueS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL2NvbnN0cnVjdG9yL2luc3RhbnRpYXRlLmFueS1leHBl
Y3RlZC50eHQKQEAgLTksOCArOSw4IEBAIFBBU1MgRW1wdHkgbW9kdWxlIHdpdGggdW5kZWZpbmVk
IGltcG9ydHMgYXJndW1lbnQ6IEJ1ZmZlclNvdXJjZSBhcmd1bWVudAogUEFTUyBFbXB0eSBtb2R1
bGUgd2l0aCB1bmRlZmluZWQgaW1wb3J0cyBhcmd1bWVudDogTW9kdWxlIGFyZ3VtZW50CiBQQVNT
IEVtcHR5IG1vZHVsZSB3aXRoIGVtcHR5IGltcG9ydHMgYXJndW1lbnQ6IEJ1ZmZlclNvdXJjZSBh
cmd1bWVudAogUEFTUyBFbXB0eSBtb2R1bGUgd2l0aCBlbXB0eSBpbXBvcnRzIGFyZ3VtZW50OiBN
b2R1bGUgYXJndW1lbnQKLUZBSUwgZ2V0dGVyIG9yZGVyIGZvciBpbXBvcnRzIG9iamVjdDogQnVm
ZmVyU291cmNlIGFyZ3VtZW50IGFzc2VydF9hcnJheV9lcXVhbHM6IGV4cGVjdGVkIHByb3BlcnR5
IDEgdG8gYmUgImdsb2JhbDEgZ2V0dGVyIiBidXQgZ290ICJtZW1vcnkgZ2V0dGVyIiAoZXhwZWN0
ZWQgYXJyYXkgWyJtb2R1bGUgZ2V0dGVyIiwgImdsb2JhbDEgZ2V0dGVyIiwgIm1vZHVsZTIgZ2V0
dGVyIiwgImdsb2JhbDMgZ2V0dGVyIiwgIm1vZHVsZSBnZXR0ZXIiLCAibWVtb3J5IGdldHRlciIs
ICJtb2R1bGUgZ2V0dGVyIiwgImdsb2JhbDIgZ2V0dGVyIl0gZ290IFsibW9kdWxlIGdldHRlciIs
ICJtZW1vcnkgZ2V0dGVyIiwgIm1vZHVsZSBnZXR0ZXIiLCAiZ2xvYmFsMSBnZXR0ZXIiLCAibW9k
dWxlMiBnZXR0ZXIiLCAiZ2xvYmFsMyBnZXR0ZXIiLCAibW9kdWxlIGdldHRlciIsICJnbG9iYWwy
IGdldHRlciJdKQotRkFJTCBnZXR0ZXIgb3JkZXIgZm9yIGltcG9ydHMgb2JqZWN0OiBNb2R1bGUg
YXJndW1lbnQgYXNzZXJ0X2FycmF5X2VxdWFsczogZXhwZWN0ZWQgcHJvcGVydHkgMSB0byBiZSAi
Z2xvYmFsMSBnZXR0ZXIiIGJ1dCBnb3QgIm1lbW9yeSBnZXR0ZXIiIChleHBlY3RlZCBhcnJheSBb
Im1vZHVsZSBnZXR0ZXIiLCAiZ2xvYmFsMSBnZXR0ZXIiLCAibW9kdWxlMiBnZXR0ZXIiLCAiZ2xv
YmFsMyBnZXR0ZXIiLCAibW9kdWxlIGdldHRlciIsICJtZW1vcnkgZ2V0dGVyIiwgIm1vZHVsZSBn
ZXR0ZXIiLCAiZ2xvYmFsMiBnZXR0ZXIiXSBnb3QgWyJtb2R1bGUgZ2V0dGVyIiwgIm1lbW9yeSBn
ZXR0ZXIiLCAibW9kdWxlIGdldHRlciIsICJnbG9iYWwxIGdldHRlciIsICJtb2R1bGUyIGdldHRl
ciIsICJnbG9iYWwzIGdldHRlciIsICJtb2R1bGUgZ2V0dGVyIiwgImdsb2JhbDIgZ2V0dGVyIl0p
CitQQVNTIGdldHRlciBvcmRlciBmb3IgaW1wb3J0cyBvYmplY3Q6IEJ1ZmZlclNvdXJjZSBhcmd1
bWVudAorUEFTUyBnZXR0ZXIgb3JkZXIgZm9yIGltcG9ydHMgb2JqZWN0OiBNb2R1bGUgYXJndW1l
bnQKIFBBU1MgaW1wb3J0czogQnVmZmVyU291cmNlIGFyZ3VtZW50CiBQQVNTIGltcG9ydHM6IE1v
ZHVsZSBhcmd1bWVudAogUEFTUyBpbXBvcnRzIHdpdGggZW1wdHkgbW9kdWxlIG5hbWVzOiBCdWZm
ZXJTb3VyY2UgYXJndW1lbnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9jb25zdHJ1Y3Rvci9pbnN0YW50aWF0ZS5hbnku
d29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2FzbS9qc2FwaS9jb25zdHJ1Y3Rvci9pbnN0YW50aWF0ZS5hbnkud29ya2VyLWV4
cGVjdGVkLnR4dAppbmRleCA1MDY0N2MyNTNkZjk1OTI1M2IyZGVjMzliZWRjYTM5ZDZmZTdjYjAz
Li44NjQyYTVlYWUwNjAxMzUxYWZkMTU1NDIxM2I4MzZlMWQ3OTEzMDgwIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvY29u
c3RydWN0b3IvaW5zdGFudGlhdGUuYW55Lndvcmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL2NvbnN0cnVj
dG9yL2luc3RhbnRpYXRlLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC05LDggKzksOCBAQCBQ
QVNTIEVtcHR5IG1vZHVsZSB3aXRoIHVuZGVmaW5lZCBpbXBvcnRzIGFyZ3VtZW50OiBCdWZmZXJT
b3VyY2UgYXJndW1lbnQKIFBBU1MgRW1wdHkgbW9kdWxlIHdpdGggdW5kZWZpbmVkIGltcG9ydHMg
YXJndW1lbnQ6IE1vZHVsZSBhcmd1bWVudAogUEFTUyBFbXB0eSBtb2R1bGUgd2l0aCBlbXB0eSBp
bXBvcnRzIGFyZ3VtZW50OiBCdWZmZXJTb3VyY2UgYXJndW1lbnQKIFBBU1MgRW1wdHkgbW9kdWxl
IHdpdGggZW1wdHkgaW1wb3J0cyBhcmd1bWVudDogTW9kdWxlIGFyZ3VtZW50Ci1GQUlMIGdldHRl
ciBvcmRlciBmb3IgaW1wb3J0cyBvYmplY3Q6IEJ1ZmZlclNvdXJjZSBhcmd1bWVudCBhc3NlcnRf
YXJyYXlfZXF1YWxzOiBleHBlY3RlZCBwcm9wZXJ0eSAxIHRvIGJlICJnbG9iYWwxIGdldHRlciIg
YnV0IGdvdCAibWVtb3J5IGdldHRlciIgKGV4cGVjdGVkIGFycmF5IFsibW9kdWxlIGdldHRlciIs
ICJnbG9iYWwxIGdldHRlciIsICJtb2R1bGUyIGdldHRlciIsICJnbG9iYWwzIGdldHRlciIsICJt
b2R1bGUgZ2V0dGVyIiwgIm1lbW9yeSBnZXR0ZXIiLCAibW9kdWxlIGdldHRlciIsICJnbG9iYWwy
IGdldHRlciJdIGdvdCBbIm1vZHVsZSBnZXR0ZXIiLCAibWVtb3J5IGdldHRlciIsICJtb2R1bGUg
Z2V0dGVyIiwgImdsb2JhbDEgZ2V0dGVyIiwgIm1vZHVsZTIgZ2V0dGVyIiwgImdsb2JhbDMgZ2V0
dGVyIiwgIm1vZHVsZSBnZXR0ZXIiLCAiZ2xvYmFsMiBnZXR0ZXIiXSkKLUZBSUwgZ2V0dGVyIG9y
ZGVyIGZvciBpbXBvcnRzIG9iamVjdDogTW9kdWxlIGFyZ3VtZW50IGFzc2VydF9hcnJheV9lcXVh
bHM6IGV4cGVjdGVkIHByb3BlcnR5IDEgdG8gYmUgImdsb2JhbDEgZ2V0dGVyIiBidXQgZ290ICJt
ZW1vcnkgZ2V0dGVyIiAoZXhwZWN0ZWQgYXJyYXkgWyJtb2R1bGUgZ2V0dGVyIiwgImdsb2JhbDEg
Z2V0dGVyIiwgIm1vZHVsZTIgZ2V0dGVyIiwgImdsb2JhbDMgZ2V0dGVyIiwgIm1vZHVsZSBnZXR0
ZXIiLCAibWVtb3J5IGdldHRlciIsICJtb2R1bGUgZ2V0dGVyIiwgImdsb2JhbDIgZ2V0dGVyIl0g
Z290IFsibW9kdWxlIGdldHRlciIsICJtZW1vcnkgZ2V0dGVyIiwgIm1vZHVsZSBnZXR0ZXIiLCAi
Z2xvYmFsMSBnZXR0ZXIiLCAibW9kdWxlMiBnZXR0ZXIiLCAiZ2xvYmFsMyBnZXR0ZXIiLCAibW9k
dWxlIGdldHRlciIsICJnbG9iYWwyIGdldHRlciJdKQorUEFTUyBnZXR0ZXIgb3JkZXIgZm9yIGlt
cG9ydHMgb2JqZWN0OiBCdWZmZXJTb3VyY2UgYXJndW1lbnQKK1BBU1MgZ2V0dGVyIG9yZGVyIGZv
ciBpbXBvcnRzIG9iamVjdDogTW9kdWxlIGFyZ3VtZW50CiBQQVNTIGltcG9ydHM6IEJ1ZmZlclNv
dXJjZSBhcmd1bWVudAogUEFTUyBpbXBvcnRzOiBNb2R1bGUgYXJndW1lbnQKIFBBU1MgaW1wb3J0
cyB3aXRoIGVtcHR5IG1vZHVsZSBuYW1lczogQnVmZmVyU291cmNlIGFyZ3VtZW50CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNh
cGkvaW5zdGFuY2UvY29uc3RydWN0b3IuYW55LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9pbnN0YW5jZS9jb25zdHJ1
Y3Rvci5hbnktZXhwZWN0ZWQudHh0CmluZGV4IDU3MzhkNzQ4MjJlYTE5OTljZTAyNTI5MjNjODYy
MzFmN2M5Mjk0ODguLjE1NDRhZDk1MjJhMDMzMTJiYzI1NGE3YTI5YTg2NGUzZGI0MzVhNjUgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Fz
bS9qc2FwaS9pbnN0YW5jZS9jb25zdHJ1Y3Rvci5hbnktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9pbnN0YW5j
ZS9jb25zdHJ1Y3Rvci5hbnktZXhwZWN0ZWQudHh0CkBAIC03LDcgKzcsNyBAQCBQQVNTIENhbGxp
bmcKIFBBU1MgRW1wdHkgbW9kdWxlIHdpdGhvdXQgaW1wb3J0cyBhcmd1bWVudAogUEFTUyBFbXB0
eSBtb2R1bGUgd2l0aCB1bmRlZmluZWQgaW1wb3J0cyBhcmd1bWVudAogUEFTUyBFbXB0eSBtb2R1
bGUgd2l0aCBlbXB0eSBpbXBvcnRzIGFyZ3VtZW50Ci1GQUlMIGdldHRlciBvcmRlciBmb3IgaW1w
b3J0cyBvYmplY3QgYXNzZXJ0X2FycmF5X2VxdWFsczogZXhwZWN0ZWQgcHJvcGVydHkgMSB0byBi
ZSAiZ2xvYmFsMSBnZXR0ZXIiIGJ1dCBnb3QgIm1lbW9yeSBnZXR0ZXIiIChleHBlY3RlZCBhcnJh
eSBbIm1vZHVsZSBnZXR0ZXIiLCAiZ2xvYmFsMSBnZXR0ZXIiLCAibW9kdWxlMiBnZXR0ZXIiLCAi
Z2xvYmFsMyBnZXR0ZXIiLCAibW9kdWxlIGdldHRlciIsICJtZW1vcnkgZ2V0dGVyIiwgIm1vZHVs
ZSBnZXR0ZXIiLCAiZ2xvYmFsMiBnZXR0ZXIiXSBnb3QgWyJtb2R1bGUgZ2V0dGVyIiwgIm1lbW9y
eSBnZXR0ZXIiLCAibW9kdWxlIGdldHRlciIsICJnbG9iYWwxIGdldHRlciIsICJtb2R1bGUyIGdl
dHRlciIsICJnbG9iYWwzIGdldHRlciIsICJtb2R1bGUgZ2V0dGVyIiwgImdsb2JhbDIgZ2V0dGVy
Il0pCitQQVNTIGdldHRlciBvcmRlciBmb3IgaW1wb3J0cyBvYmplY3QKIFBBU1MgaW1wb3J0cwog
UEFTUyBpbXBvcnRzIHdpdGggZW1wdHkgbW9kdWxlIG5hbWVzCiBQQVNTIGltcG9ydHMgd2l0aCBl
bXB0eSBuYW1lcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93YXNtL2pzYXBpL2luc3RhbmNlL2NvbnN0cnVjdG9yLmFueS53b3JrZXItZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
YXNtL2pzYXBpL2luc3RhbmNlL2NvbnN0cnVjdG9yLmFueS53b3JrZXItZXhwZWN0ZWQudHh0Cmlu
ZGV4IDU3MzhkNzQ4MjJlYTE5OTljZTAyNTI5MjNjODYyMzFmN2M5Mjk0ODguLjE1NDRhZDk1MjJh
MDMzMTJiYzI1NGE3YTI5YTg2NGUzZGI0MzVhNjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9pbnN0YW5jZS9jb25zdHJ1
Y3Rvci5hbnkud29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvaW5zdGFuY2UvY29uc3RydWN0b3IuYW55
Lndvcmtlci1leHBlY3RlZC50eHQKQEAgLTcsNyArNyw3IEBAIFBBU1MgQ2FsbGluZwogUEFTUyBF
bXB0eSBtb2R1bGUgd2l0aG91dCBpbXBvcnRzIGFyZ3VtZW50CiBQQVNTIEVtcHR5IG1vZHVsZSB3
aXRoIHVuZGVmaW5lZCBpbXBvcnRzIGFyZ3VtZW50CiBQQVNTIEVtcHR5IG1vZHVsZSB3aXRoIGVt
cHR5IGltcG9ydHMgYXJndW1lbnQKLUZBSUwgZ2V0dGVyIG9yZGVyIGZvciBpbXBvcnRzIG9iamVj
dCBhc3NlcnRfYXJyYXlfZXF1YWxzOiBleHBlY3RlZCBwcm9wZXJ0eSAxIHRvIGJlICJnbG9iYWwx
IGdldHRlciIgYnV0IGdvdCAibWVtb3J5IGdldHRlciIgKGV4cGVjdGVkIGFycmF5IFsibW9kdWxl
IGdldHRlciIsICJnbG9iYWwxIGdldHRlciIsICJtb2R1bGUyIGdldHRlciIsICJnbG9iYWwzIGdl
dHRlciIsICJtb2R1bGUgZ2V0dGVyIiwgIm1lbW9yeSBnZXR0ZXIiLCAibW9kdWxlIGdldHRlciIs
ICJnbG9iYWwyIGdldHRlciJdIGdvdCBbIm1vZHVsZSBnZXR0ZXIiLCAibWVtb3J5IGdldHRlciIs
ICJtb2R1bGUgZ2V0dGVyIiwgImdsb2JhbDEgZ2V0dGVyIiwgIm1vZHVsZTIgZ2V0dGVyIiwgImds
b2JhbDMgZ2V0dGVyIiwgIm1vZHVsZSBnZXR0ZXIiLCAiZ2xvYmFsMiBnZXR0ZXIiXSkKK1BBU1Mg
Z2V0dGVyIG9yZGVyIGZvciBpbXBvcnRzIG9iamVjdAogUEFTUyBpbXBvcnRzCiBQQVNTIGltcG9y
dHMgd2l0aCBlbXB0eSBtb2R1bGUgbmFtZXMKIFBBU1MgaW1wb3J0cyB3aXRoIGVtcHR5IG5hbWVz
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dhc20vd2ViYXBpL2luc3RhbnRpYXRlU3RyZWFtaW5nLmFueS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vd2ViYXBpL2luc3Rh
bnRpYXRlU3RyZWFtaW5nLmFueS1leHBlY3RlZC50eHQKaW5kZXggYzQwOGYwZmYzYmU3ZDNhYWQw
OTZhZjVlYjJiMGNmMGZhNjlhMGE2NS4uZThmNDc4ZWYyYTYwYmQ2NGY3MTFiNzYxMDUwMWY3OWJi
MjQ2OWE5ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93YXNtL3dlYmFwaS9pbnN0YW50aWF0ZVN0cmVhbWluZy5hbnktZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS93
ZWJhcGkvaW5zdGFudGlhdGVTdHJlYW1pbmcuYW55LWV4cGVjdGVkLnR4dApAQCAtMiw3ICsyLDcg
QEAKIFBBU1MgRW1wdHkgbW9kdWxlIHdpdGhvdXQgaW1wb3J0cyBhcmd1bWVudAogUEFTUyBFbXB0
eSBtb2R1bGUgd2l0aCB1bmRlZmluZWQgaW1wb3J0cyBhcmd1bWVudAogUEFTUyBFbXB0eSBtb2R1
bGUgd2l0aCBlbXB0eSBpbXBvcnRzIGFyZ3VtZW50Ci1GQUlMIGdldHRlciBvcmRlciBmb3IgaW1w
b3J0cyBvYmplY3QgYXNzZXJ0X2FycmF5X2VxdWFsczogZXhwZWN0ZWQgcHJvcGVydHkgMSB0byBi
ZSAiZ2xvYmFsMSBnZXR0ZXIiIGJ1dCBnb3QgIm1lbW9yeSBnZXR0ZXIiIChleHBlY3RlZCBhcnJh
eSBbIm1vZHVsZSBnZXR0ZXIiLCAiZ2xvYmFsMSBnZXR0ZXIiLCAibW9kdWxlMiBnZXR0ZXIiLCAi
Z2xvYmFsMyBnZXR0ZXIiLCAibW9kdWxlIGdldHRlciIsICJtZW1vcnkgZ2V0dGVyIiwgIm1vZHVs
ZSBnZXR0ZXIiLCAiZ2xvYmFsMiBnZXR0ZXIiXSBnb3QgWyJtb2R1bGUgZ2V0dGVyIiwgIm1lbW9y
eSBnZXR0ZXIiLCAibW9kdWxlIGdldHRlciIsICJnbG9iYWwxIGdldHRlciIsICJtb2R1bGUyIGdl
dHRlciIsICJnbG9iYWwzIGdldHRlciIsICJtb2R1bGUgZ2V0dGVyIiwgImdsb2JhbDIgZ2V0dGVy
Il0pCitQQVNTIGdldHRlciBvcmRlciBmb3IgaW1wb3J0cyBvYmplY3QKIFBBU1MgaW1wb3J0cwog
UEFTUyBpbXBvcnRzIHdpdGggZW1wdHkgbW9kdWxlIG5hbWVzCiBQQVNTIGltcG9ydHMgd2l0aCBl
bXB0eSBuYW1lcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93YXNtL3dlYmFwaS9pbnN0YW50aWF0ZVN0cmVhbWluZy5hbnkud29ya2VyLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2FzbS93ZWJhcGkvaW5zdGFudGlhdGVTdHJlYW1pbmcuYW55Lndvcmtlci1leHBlY3RlZC50eHQK
aW5kZXggYzQwOGYwZmYzYmU3ZDNhYWQwOTZhZjVlYjJiMGNmMGZhNjlhMGE2NS4uZThmNDc4ZWYy
YTYwYmQ2NGY3MTFiNzYxMDUwMWY3OWJiMjQ2OWE5ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL3dlYmFwaS9pbnN0YW50aWF0ZVN0
cmVhbWluZy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vd2ViYXBpL2luc3RhbnRpYXRlU3RyZWFtaW5n
LmFueS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0yLDcgKzIsNyBAQAogUEFTUyBFbXB0eSBtb2R1
bGUgd2l0aG91dCBpbXBvcnRzIGFyZ3VtZW50CiBQQVNTIEVtcHR5IG1vZHVsZSB3aXRoIHVuZGVm
aW5lZCBpbXBvcnRzIGFyZ3VtZW50CiBQQVNTIEVtcHR5IG1vZHVsZSB3aXRoIGVtcHR5IGltcG9y
dHMgYXJndW1lbnQKLUZBSUwgZ2V0dGVyIG9yZGVyIGZvciBpbXBvcnRzIG9iamVjdCBhc3NlcnRf
YXJyYXlfZXF1YWxzOiBleHBlY3RlZCBwcm9wZXJ0eSAxIHRvIGJlICJnbG9iYWwxIGdldHRlciIg
YnV0IGdvdCAibWVtb3J5IGdldHRlciIgKGV4cGVjdGVkIGFycmF5IFsibW9kdWxlIGdldHRlciIs
ICJnbG9iYWwxIGdldHRlciIsICJtb2R1bGUyIGdldHRlciIsICJnbG9iYWwzIGdldHRlciIsICJt
b2R1bGUgZ2V0dGVyIiwgIm1lbW9yeSBnZXR0ZXIiLCAibW9kdWxlIGdldHRlciIsICJnbG9iYWwy
IGdldHRlciJdIGdvdCBbIm1vZHVsZSBnZXR0ZXIiLCAibWVtb3J5IGdldHRlciIsICJtb2R1bGUg
Z2V0dGVyIiwgImdsb2JhbDEgZ2V0dGVyIiwgIm1vZHVsZTIgZ2V0dGVyIiwgImdsb2JhbDMgZ2V0
dGVyIiwgIm1vZHVsZSBnZXR0ZXIiLCAiZ2xvYmFsMiBnZXR0ZXIiXSkKK1BBU1MgZ2V0dGVyIG9y
ZGVyIGZvciBpbXBvcnRzIG9iamVjdAogUEFTUyBpbXBvcnRzCiBQQVNTIGltcG9ydHMgd2l0aCBl
bXB0eSBtb2R1bGUgbmFtZXMKIFBBU1MgaW1wb3J0cyB3aXRoIGVtcHR5IG5hbWVzCmRpZmYgLS1n
aXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IGZlZGZlZGYz
NDc5MzZlNDRkOGVmZTU0MDY3MGFlMTMxMzFiMTJkN2YuLmE5NGIzODdiZDAxNjJmYjkyZWVhYjRk
NTkyNmE5NDk3ZmRhNzdiNjAgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pT
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjEtMTItMTUgIEFzdW11IFRha2lr
YXdhICA8YXN1bXVAaWdhbGlhLmNvbT4KKworICAgICAgICBbV2FzbV0gVW5pZnkgbWVtb3J5IGlt
cG9ydCBoYW5kbGluZyBpbiBtb2R1bGUgbG9hZGVyIGFuZCBKUyBjYXNlcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0MTE2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGFuIGluc3RhbnRpYXRpb24g
dGVzdCBjYXNlIHRoYXQgdGVzdHMgdGhhdCBpbnN0YW50aWF0aW5nIHRoZSBzYW1lCisgICAgICAg
IGJpbmFyeSBtb2R1bGUgdHdpY2Ugd2lsbCBub3QgY3Jhc2guCisKKyAgICAgICAgKiB3YXNtL2pz
LWFwaS93ZWItYXNzZW1ibHktaW5zdGFudGlhdGUuanM6CisgICAgICAgIChhc3NlcnQuYXN5bmNU
ZXN0LmFzeW5jIHRlc3QpOgorICAgICAgICAoYXNzZXJ0LmFzeW5jVGVzdCk6CisKIDIwMjItMDEt
MDYgIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CiAKICAgICAgICAgcHJlcGFyZVBh
dGNocG9pbnRGb3JFeGNlcHRpb25zIG5lZWRzIHRvIGhhbmRsZSB0dXBsZXMKZGlmZiAtLWdpdCBh
L0pTVGVzdHMvd2FzbS9qcy1hcGkvd2ViLWFzc2VtYmx5LWluc3RhbnRpYXRlLmpzIGIvSlNUZXN0
cy93YXNtL2pzLWFwaS93ZWItYXNzZW1ibHktaW5zdGFudGlhdGUuanMKaW5kZXggMjM3YjNhODlh
Y2MwNTlmYTkxOTBhODk2NTNjODgyN2VlNzQwZWZhMi4uY2VjMmEzMDI1NjNlMmE3NTg3NTFlOWQ4
MTliM2NlMDY4YTU2NmI2YyAxMDA2NDQKLS0tIGEvSlNUZXN0cy93YXNtL2pzLWFwaS93ZWItYXNz
ZW1ibHktaW5zdGFudGlhdGUuanMKKysrIGIvSlNUZXN0cy93YXNtL2pzLWFwaS93ZWItYXNzZW1i
bHktaW5zdGFudGlhdGUuanMKQEAgLTE5MCwzICsxOTAsMzAgQEAgYXNzZXJ0LmVxKFdlYkFzc2Vt
Ymx5Lmluc3RhbnRpYXRlLmxlbmd0aCwgMSk7CiAKICAgICBhc3NlcnQuYXN5bmNUZXN0KHRlc3Qo
KSk7CiB9CisKK3sKKyAgICBjb25zdCBidWlsZGVyID0gKG5ldyBCdWlsZGVyKCkpCisgICAgICAg
ICAgLlR5cGUoKS5FbmQoKQorICAgICAgICAgIC5JbXBvcnQoKS5NZW1vcnkoImltcCIsICJtZW1v
cnkiLCB7aW5pdGlhbDoxMDB9KS5FbmQoKQorICAgICAgICAgIC5GdW5jdGlvbigpLkVuZCgpCisg
ICAgICAgICAgLkV4cG9ydCgpCisgICAgICAgICAgICAgIC5GdW5jdGlvbigiZm9vIikKKyAgICAg
ICAgICAuRW5kKCkKKyAgICAgICAgICAuQ29kZSgpCisgICAgICAgICAgICAgIC5GdW5jdGlvbigi
Zm9vIiwgeyBwYXJhbXM6IFtdLCByZXQ6ICJpMzIiIH0pCisgICAgICAgICAgICAgICAgICAuSTMy
Q29uc3QoMSkKKyAgICAgICAgICAgICAgLkVuZCgpCisgICAgICAgICAgLkVuZCgpOworCisgICAg
Y29uc3QgYmluID0gYnVpbGRlci5XZWJBc3NlbWJseSgpLmdldCgpOworCisgICAgYXN5bmMgZnVu
Y3Rpb24gdGVzdCgpIHsKKyAgICAgICAgbGV0IG1vZHVsZSA9IG5ldyBXZWJBc3NlbWJseS5Nb2R1
bGUoYmluKTsKKyAgICAgICAgbGV0IGluc3RhbmNlMSA9IGF3YWl0IFdlYkFzc2VtYmx5Lmluc3Rh
bnRpYXRlKG1vZHVsZSwgeyBpbXA6IHsgbWVtb3J5OiBuZXcgV2ViQXNzZW1ibHkuTWVtb3J5KHsg
aW5pdGlhbDogMTAwIH0pIH0gfSk7CisgICAgICAgIGFzc2VydC50cnV0aHkoaW5zdGFuY2UxIGlu
c3RhbmNlb2YgV2ViQXNzZW1ibHkuSW5zdGFuY2UpOworICAgICAgICBsZXQgaW5zdGFuY2UyID0g
YXdhaXQgV2ViQXNzZW1ibHkuaW5zdGFudGlhdGUobW9kdWxlLCB7IGltcDogeyBtZW1vcnk6IG5l
dyBXZWJBc3NlbWJseS5NZW1vcnkoeyBpbml0aWFsOiAxMDAgfSkgfSB9KTsKKyAgICAgICAgYXNz
ZXJ0LnRydXRoeShpbnN0YW5jZTIgaW5zdGFuY2VvZiBXZWJBc3NlbWJseS5JbnN0YW5jZSk7Cisg
ICAgfQorCisgICAgYXNzZXJ0LmFzeW5jVGVzdCh0ZXN0KCkpOworfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448871</attachid>
            <date>2022-01-11 12:46:33 -0800</date>
            <delta_ts>2022-01-11 15:49:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234116-20220111124632.patch</filename>
            <type>text/plain</type>
            <size>27450</size>
            <attacher name="Asumu Takikawa">asumu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3ODkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
ZjFhNjE2OWU2YTc2ZTUyZDZmM2YyNzk2Njg3Y2Q3YjJmODMyM2RjLi4yYmQzMzM1MmIyNDBhOWNi
YmU1ZGU1MWNhNTMwMWVhZTRkNjU3MTFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAyMi0wMS0xMSAgQXN1bXUgVGFraWthd2EgIDxhc3VtdUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtXYXNtXSBVbmlmeSBtZW1vcnkgaW1wb3J0IGhhbmRsaW5nIGluIG1vZHVs
ZSBsb2FkZXIgYW5kIEpTIGNhc2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzQxMTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBNb3ZlcyB0aGUgbWVtb3J5IGltcG9ydCBoYW5kbGluZyBjb2RlIHRvIHRo
ZSBXYXNtIG1vZHVsZSByZWNvcmQgYW5kCisgICAgICAgIHVzZSB0aGUgc3RyYXRlZ3kgdXNlZCBi
eSB0aGUgbW9kdWxlIGxvYWRlciB0byBoYW5kbGUgbWVtb3J5IGluIGFsbAorICAgICAgICBjYXNl
cy4KKworICAgICAgICAqIHdhc20vV2FzbU1vZHVsZS5jcHA6CisgICAgICAgIChKU0M6Oldhc206
Ok1vZHVsZTo6Y29weUluaXRpYWxDYWxsZWVHcm91cFRvQWxsTWVtb3J5TW9kZXMpOgorICAgICAg
ICAqIHdhc20vanMvSlNXZWJBc3NlbWJseUluc3RhbmNlLmNwcDoKKyAgICAgICAgKEpTQzo6SlNX
ZWJBc3NlbWJseUluc3RhbmNlOjpmaW5hbGl6ZUNyZWF0aW9uKToKKyAgICAgICAgKEpTQzo6SlNX
ZWJBc3NlbWJseUluc3RhbmNlOjp0cnlDcmVhdGUpOgorICAgICAgICAqIHdhc20vanMvV2ViQXNz
ZW1ibHlNb2R1bGVSZWNvcmQuY3BwOgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJseU1vZHVsZVJl
Y29yZDo6aW5pdGlhbGl6ZUltcG9ydHNBbmRFeHBvcnRzKToKKwogMjAyMi0wMS0xMSAgQWRyaWFu
IFBlcmV6IGRlIENhc3RybyAgPGFwZXJlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIE5vbi11bmlm
aWVkIGJ1aWxkIGZpeGVzLCBlYXJseSBKYW51YXJ5IDIwMjIgZWRpdGlvbgpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1vZHVsZS5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtTW9kdWxlLmNwcAppbmRleCBjMzI2NTQyZTk5N2RjNTZhZTNmOTcy
YzE5N2U2NjEwZGJmOTZkN2ZhLi4xOTU5OGFhYmQwNzU0NjNmN2E3NmQ5MzRjOWRhZmVmMDQ2NTY1
OTE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTW9kdWxlLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTW9kdWxlLmNwcApAQCAtMTEz
LDEzICsxMTMsMTYgQEAgdm9pZCBNb2R1bGU6OmNvbXBpbGVBc3luYyhDb250ZXh0KiBjb250ZXh0
LCBNZW1vcnlNb2RlIG1vZGUsIENhbGxlZUdyb3VwOjpBc3luY0MKIAogdm9pZCBNb2R1bGU6OmNv
cHlJbml0aWFsQ2FsbGVlR3JvdXBUb0FsbE1lbW9yeU1vZGVzKE1lbW9yeU1vZGUgaW5pdGlhbE1v
ZGUpCiB7CisgICAgTG9ja2VyIGxvY2tlciB7IG1fbG9jayB9OwogICAgIEFTU0VSVChtX2NhbGxl
ZUdyb3Vwc1tzdGF0aWNfY2FzdDx1aW50OF90Pihpbml0aWFsTW9kZSldKTsKICAgICBjb25zdCBD
YWxsZWVHcm91cCYgaW5pdGlhbEJsb2NrID0gKm1fY2FsbGVlR3JvdXBzW3N0YXRpY19jYXN0PHVp
bnQ4X3Q+KGluaXRpYWxNb2RlKV07CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IFdhc206
Ok51bWJlck9mTWVtb3J5TW9kZXM7IGkrKykgewogICAgICAgICBpZiAoaSA9PSBzdGF0aWNfY2Fz
dDx1aW50OF90Pihpbml0aWFsTW9kZSkpCiAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAg
UmVmPENhbGxlZUdyb3VwPiBuZXdCbG9jayA9IENhbGxlZUdyb3VwOjpjcmVhdGVGcm9tRXhpc3Rp
bmcoc3RhdGljX2Nhc3Q8TWVtb3J5TW9kZT4oaSksIGluaXRpYWxCbG9jayk7Ci0gICAgICAgIG1f
Y2FsbGVlR3JvdXBzW2ldID0gV1RGTW92ZShuZXdCbG9jayk7CisgICAgICAgIC8vIFdlIHNob3Vs
ZCBvbmx5IHRyeSB0byBjb3B5IHRoZSBncm91cCBoZXJlIGlmIGl0IGhhc24ndCBhbHJlYWR5IGJl
ZW4gY3JlYXRlZC4KKyAgICAgICAgLy8gSWYgaXQgZXhpc3RzIGJ1dCBpcyBub3QgcnVubmFibGUs
IGl0IHNob3VsZCBnZXQgY29tcGlsZWQgZHVyaW5nIG1vZHVsZSBldmFsdWF0aW9uLgorICAgICAg
ICBpZiAoYXV0byYgZ3JvdXAgPSBtX2NhbGxlZUdyb3Vwc1tpXTsgIWdyb3VwKQorICAgICAgICAg
ICAgZ3JvdXAgPSBDYWxsZWVHcm91cDo6Y3JlYXRlRnJvbUV4aXN0aW5nKHN0YXRpY19jYXN0PE1l
bW9yeU1vZGU+KGkpLCBpbml0aWFsQmxvY2spOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUluc3RhbmNlLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlJbnN0YW5jZS5jcHAKaW5k
ZXggNDQzZWI5YmJiYzE5OWFmOGY3MzI3NGI0OWFhYzU2MzkyYzFkYzJmOC4uN2I4Njc1MzMyOWUy
NTNiNzUwZTg0NDI4OTA0MmIwZWE0NGI0YTFkNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUluc3RhbmNlLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5SW5zdGFuY2UuY3BwCkBAIC0xMTcsMTEg
KzExNywxMiBAQCB2b2lkIEpTV2ViQXNzZW1ibHlJbnN0YW5jZTo6ZmluYWxpemVDcmVhdGlvbihW
TSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogCiAgICAgUkVMRUFTRV9BU1NFUlQo
d2FzbUNhbGxlZUdyb3VwLT5pc1NhZmVUb1J1bihtZW1vcnlNb2RlKCkpKTsKIAotICAgIC8vIElu
IHRoZSBtb2R1bGUgbG9hZGVyIGNhc2UsIHdlIHdpbGwgaW5pdGlhbGl6ZSBhbGwgbWVtb3J5IG1v
ZGVzIHdpdGggdGhlIGluaXRpYWwgTExJbnQgY29tcGlsYXRpb24KKyAgICAvLyBXaGVuIG1lbW9y
eSBpcyBpbXBvcnRlZCwgd2Ugd2lsbCBpbml0aWFsaXplIGFsbCBtZW1vcnkgbW9kZXMgd2l0aCB0
aGUgaW5pdGlhbCBMTEludCBjb21waWxhdGlvbgogICAgIC8vIHJlc3VsdHMsIHNvIHRoYXQgbGF0
ZXIgd2hlbiBtZW1vcnkgaW1wb3J0cyBiZWNvbWUgYXZhaWxhYmxlLCB0aGUgYXBwcm9wcmlhdGUg
Q2FsbGVlR3JvdXAgY2FuIGJlIHVzZWQuCiAgICAgLy8gSWYgTExJbnQgaXMgZGlzYWJsZWQsIHdl
IGluc3RlYWQgZGVmZXIgY29tcGlsYXRpb24gdG8gbW9kdWxlIGV2YWx1YXRpb24uCisgICAgLy8g
SWYgdGhlIGNvZGUgaXMgYWxyZWFkeSBjb21waWxlZCwgZS5nLiB0aGUgbW9kdWxlIHdhcyBhbHJl
YWR5IGluc3RhbnRpYXRlZCBiZWZvcmUsIHdlIGRvIG5vdCByZS1pbml0aWFsaXplLgogICAgIGJv
b2wgaGFzTWVtb3J5SW1wb3J0ID0gbW9kdWxlKCktPm1vZHVsZUluZm9ybWF0aW9uKCkubWVtb3J5
LmlzSW1wb3J0KCk7Ci0gICAgaWYgKGNyZWF0aW9uTW9kZSA9PSBXYXNtOjpDcmVhdGlvbk1vZGU6
OkZyb21Nb2R1bGVMb2FkZXIgJiYgT3B0aW9uczo6dXNlV2FzbUxMSW50KCkgJiYgaGFzTWVtb3J5
SW1wb3J0KSB7CisgICAgaWYgKE9wdGlvbnM6OnVzZVdhc21MTEludCgpICYmIGhhc01lbW9yeUlt
cG9ydCkgewogICAgICAgICBXYXNtOjpNZW1vcnlNb2RlIGluaXRpYWxNb2RlID0gV2FzbTo6TWVt
b3J5TW9kZTo6Qm91bmRzQ2hlY2tpbmc7CiAgICAgICAgIEFTU0VSVChtZW1vcnlNb2RlKCkgPT0g
aW5pdGlhbE1vZGUpOwogICAgICAgICBtb2R1bGUoKS0+bW9kdWxlKCkuY29weUluaXRpYWxDYWxs
ZWVHcm91cFRvQWxsTWVtb3J5TW9kZXMoaW5pdGlhbE1vZGUpOwpAQCAtMTcyLDEwICsxNzMsNiBA
QCBKU1dlYkFzc2VtYmx5SW5zdGFuY2UqIEpTV2ViQXNzZW1ibHlJbnN0YW5jZTo6dHJ5Q3JlYXRl
KFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqCiAgICAgaWYgKCFnbG9iYWxPYmplY3QtPndlYkFzc2Vt
Ymx5RW5hYmxlZCgpKQogICAgICAgICByZXR1cm4gZXhjZXB0aW9uKGNyZWF0ZUV2YWxFcnJvcihn
bG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+d2ViQXNzZW1ibHlEaXNhYmxlZEVycm9yTWVzc2Fn
ZSgpKSk7CiAKLSAgICBhdXRvIGltcG9ydEZhaWxNZXNzYWdlID0gWyZdIChjb25zdCBXYXNtOjpJ
bXBvcnQmIGltcG9ydCwgY29uc3QgY2hhciogYmVmb3JlLCBjb25zdCBjaGFyKiBhZnRlcikgewot
ICAgICAgICByZXR1cm4gbWFrZVN0cmluZyhiZWZvcmUsICIgIiwgU3RyaW5nOjpmcm9tVVRGOChp
bXBvcnQubW9kdWxlKSwgIjoiLCBTdHJpbmc6OmZyb21VVEY4KGltcG9ydC5maWVsZCksICIgIiwg
YWZ0ZXIpOwotICAgIH07Ci0KICAgICBXZWJBc3NlbWJseU1vZHVsZVJlY29yZCogbW9kdWxlUmVj
b3JkID0gV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQ6OmNyZWF0ZShnbG9iYWxPYmplY3QsIHZtLCBn
bG9iYWxPYmplY3QtPndlYkFzc2VtYmx5TW9kdWxlUmVjb3JkU3RydWN0dXJlKCksIG1vZHVsZUtl
eSwgbW9kdWxlSW5mb3JtYXRpb24pOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29w
ZSwgbnVsbHB0cik7CiAKQEAgLTE4OSwxMCArMTg2LDYgQEAgSlNXZWJBc3NlbWJseUluc3RhbmNl
KiBKU1dlYkFzc2VtYmx5SW5zdGFuY2U6OnRyeUNyZWF0ZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0
KgogICAgIGpzSW5zdGFuY2UtPmZpbmlzaENyZWF0aW9uKHZtLCBqc01vZHVsZSwgbW9kdWxlUmVj
b3JkKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIG51bGxwdHIpOwogCi0g
ICAgLy8gTGV0IGZ1bmNzLCBtZW1vcmllcyBhbmQgdGFibGVzIGJlIGluaXRpYWxseS1lbXB0eSBs
aXN0cyBvZiBjYWxsYWJsZSBKYXZhU2NyaXB0IG9iamVjdHMsIFdlYkFzc2VtYmx5Lk1lbW9yeSBv
YmplY3RzIGFuZCBXZWJBc3NlbWJseS5UYWJsZSBvYmplY3RzLCByZXNwZWN0aXZlbHkuCi0gICAg
Ly8gTGV0IGltcG9ydHMgYmUgYW4gaW5pdGlhbGx5LWVtcHR5IGxpc3Qgb2YgZXh0ZXJuYWwgdmFs
dWVzLgotICAgIGJvb2wgaGFzTWVtb3J5SW1wb3J0ID0gZmFsc2U7Ci0KICAgICBpZiAoY3JlYXRp
b25Nb2RlID09IFdhc206OkNyZWF0aW9uTW9kZTo6RnJvbUpTKSB7CiAgICAgICAgIC8vIElmIHRo
ZSBsaXN0IG9mIG1vZHVsZS5pbXBvcnRzIGlzIG5vdCBlbXB0eSBhbmQgVHlwZShpbXBvcnRPYmpl
Y3QpIGlzIG5vdCBPYmplY3QsIGEgVHlwZUVycm9yIGlzIHRocm93bi4KICAgICAgICAgaWYgKG1v
ZHVsZUluZm9ybWF0aW9uLmltcG9ydHMuc2l6ZSgpICYmICFpbXBvcnRPYmplY3QpCkBAIC0yMTAs
MTEyICsyMDMsMzEgQEAgSlNXZWJBc3NlbWJseUluc3RhbmNlKiBKU1dlYkFzc2VtYmx5SW5zdGFu
Y2U6OnRyeUNyZWF0ZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KgogICAgICAgICAgICAgZmllbGRO
YW1lLAogICAgICAgICAgICAgSWRlbnRpZmllcjo6ZnJvbVVpZChQcml2YXRlTmFtZShQcml2YXRl
TmFtZTo6RGVzY3JpcHRpb24sICJXZWJBc3NlbWJseUltcG9ydE5hbWUiKSksCiAgICAgICAgIH0p
OwotCi0gICAgICAgIC8vIFZhbGlkYXRpb24gZm9yIG1vc3QgdHlwZXMgYXJlIGRvbmUgaW4gV2Vi
QXNzZW1ibHlNb2R1bGVSZWNvcmQ6OmluaXRpYWxpemVJbXBvcnRzQW5kRXhwb3J0cyBhbmQgc2tp
cHBlZCBoZXJlLgotICAgICAgICAvLyBFdmVudHVhbGx5IHdlIHdpbGwgbW92ZSBhbGwgdGhlIGxp
bmtpbmcgY29kZSBoZXJlIHRvIFdlYkFzc2VtYmx5TW9kdWxlUmVjb3JkOjppbml0aWFsaXplSW1w
b3J0c0FuZEV4cG9ydHMuCi0gICAgICAgIHN3aXRjaCAoaW1wb3J0LmtpbmQpIHsKLSAgICAgICAg
Y2FzZSBXYXNtOjpFeHRlcm5hbEtpbmQ6OkZ1bmN0aW9uOgotICAgICAgICBjYXNlIFdhc206OkV4
dGVybmFsS2luZDo6R2xvYmFsOgotICAgICAgICBjYXNlIFdhc206OkV4dGVybmFsS2luZDo6VGFi
bGU6Ci0gICAgICAgIGNhc2UgV2FzbTo6RXh0ZXJuYWxLaW5kOjpFeGNlcHRpb246Ci0gICAgICAg
ICAgICBjb250aW51ZTsKLSAgICAgICAgY2FzZSBXYXNtOjpFeHRlcm5hbEtpbmQ6Ok1lbW9yeToK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0KLSAgICAgICAgSlNWYWx1ZSB2YWx1ZTsK
LSAgICAgICAgaWYgKGNyZWF0aW9uTW9kZSA9PSBXYXNtOjpDcmVhdGlvbk1vZGU6OkZyb21KUykg
ewotICAgICAgICAgICAgLy8gMS4gTGV0IG8gYmUgdGhlIHJlc3VsdGFudCB2YWx1ZSBvZiBwZXJm
b3JtaW5nIEdldChpbXBvcnRPYmplY3QsIGkubW9kdWxlX25hbWUpLgotICAgICAgICAgICAgSlNW
YWx1ZSBpbXBvcnRNb2R1bGVWYWx1ZSA9IGltcG9ydE9iamVjdC0+Z2V0KGdsb2JhbE9iamVjdCwg
bW9kdWxlTmFtZSk7Ci0gICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUs
IG51bGxwdHIpOwotICAgICAgICAgICAgLy8gMi4gSWYgVHlwZShvKSBpcyBub3QgT2JqZWN0LCB0
aHJvdyBhIFR5cGVFcnJvci4KLSAgICAgICAgICAgIGlmICghaW1wb3J0TW9kdWxlVmFsdWUuaXNP
YmplY3QoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZXhjZXB0aW9uKGNyZWF0ZVR5cGVFcnJv
cihnbG9iYWxPYmplY3QsIGltcG9ydEZhaWxNZXNzYWdlKGltcG9ydCwgImltcG9ydCIsICJtdXN0
IGJlIGFuIG9iamVjdCIpLCBkZWZhdWx0U291cmNlQXBwZW5kZXIsIHJ1bnRpbWVUeXBlRm9yVmFs
dWUodm0sIGltcG9ydE1vZHVsZVZhbHVlKSkpOwotCi0gICAgICAgICAgICAvLyAzLiBMZXQgdiBi
ZSB0aGUgdmFsdWUgb2YgcGVyZm9ybWluZyBHZXQobywgaS5pdGVtX25hbWUpCi0gICAgICAgICAg
ICBKU09iamVjdCogb2JqZWN0ID0ganNDYXN0PEpTT2JqZWN0Kj4oaW1wb3J0TW9kdWxlVmFsdWUp
OwotICAgICAgICAgICAgdmFsdWUgPSBvYmplY3QtPmdldChnbG9iYWxPYmplY3QsIGZpZWxkTmFt
ZSk7Ci0gICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIG51bGxwdHIp
OwotICAgICAgICB9Ci0gICAgICAgIGlmICghdmFsdWUpCi0gICAgICAgICAgICB2YWx1ZSA9IGpz
VW5kZWZpbmVkKCk7Ci0KLSAgICAgICAgc3dpdGNoIChpbXBvcnQua2luZCkgewotICAgICAgICBj
YXNlIFdhc206OkV4dGVybmFsS2luZDo6RnVuY3Rpb246Ci0gICAgICAgIGNhc2UgV2FzbTo6RXh0
ZXJuYWxLaW5kOjpHbG9iYWw6Ci0gICAgICAgIGNhc2UgV2FzbTo6RXh0ZXJuYWxLaW5kOjpUYWJs
ZToKLSAgICAgICAgY2FzZSBXYXNtOjpFeHRlcm5hbEtpbmQ6OkV4Y2VwdGlvbjoKLSAgICAgICAg
ICAgIGJyZWFrOwotCi0gICAgICAgIGNhc2UgV2FzbTo6RXh0ZXJuYWxLaW5kOjpNZW1vcnk6IHsK
LSAgICAgICAgICAgIC8vIDYuIElmIGkgaXMgYSBtZW1vcnkgaW1wb3J0OgotICAgICAgICAgICAg
UkVMRUFTRV9BU1NFUlQoIWhhc01lbW9yeUltcG9ydCk7IC8vIFRoaXMgc2hvdWxkIGJlIGd1YXJh
bnRlZWQgYnkgYSB2YWxpZGF0aW9uIGZhaWx1cmUuCi0gICAgICAgICAgICBSRUxFQVNFX0FTU0VS
VChtb2R1bGVJbmZvcm1hdGlvbi5tZW1vcnkpOwotICAgICAgICAgICAgaGFzTWVtb3J5SW1wb3J0
ID0gdHJ1ZTsKLSAgICAgICAgICAgIC8vIEZvciB0aGUgbW9kdWxlIGxvYWRlciwgd2UgY2Fubm90
IGluaXRpYWxpemUgdGhlIG1lbW9yeSBoZXJlIHNvIHdlIGRlbGF5IHRoaXMKLSAgICAgICAgICAg
IC8vIHVudGlsIFdlYkFzc2VtYmx5TW9kdWxlUmVjb3JkJ3MgaW5pdGlhbGl6YXRpb24gb3BlcmF0
aW9uLgotICAgICAgICAgICAgaWYgKGNyZWF0aW9uTW9kZSA9PSBXYXNtOjpDcmVhdGlvbk1vZGU6
OkZyb21Nb2R1bGVMb2FkZXIpCi0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBK
U1dlYkFzc2VtYmx5TWVtb3J5KiBtZW1vcnkgPSBqc0R5bmFtaWNDYXN0PEpTV2ViQXNzZW1ibHlN
ZW1vcnkqPih2bSwgdmFsdWUpOwotICAgICAgICAgICAgLy8gaS4gSWYgdiBpcyBub3QgYSBXZWJB
c3NlbWJseS5NZW1vcnkgb2JqZWN0LCB0aHJvdyBhIFdlYkFzc2VtYmx5LkxpbmtFcnJvci4KLSAg
ICAgICAgICAgIGlmICghbWVtb3J5KQotICAgICAgICAgICAgICAgIHJldHVybiBleGNlcHRpb24o
Y3JlYXRlSlNXZWJBc3NlbWJseUxpbmtFcnJvcihnbG9iYWxPYmplY3QsIHZtLCBpbXBvcnRGYWls
TWVzc2FnZShpbXBvcnQsICJNZW1vcnkgaW1wb3J0IiwgImlzIG5vdCBhbiBpbnN0YW5jZSBvZiBX
ZWJBc3NlbWJseS5NZW1vcnkiKSkpOwotCi0gICAgICAgICAgICBXYXNtOjpQYWdlQ291bnQgZGVj
bGFyZWRJbml0aWFsID0gbW9kdWxlSW5mb3JtYXRpb24ubWVtb3J5LmluaXRpYWwoKTsKLSAgICAg
ICAgICAgIFdhc206OlBhZ2VDb3VudCBpbXBvcnRlZEluaXRpYWwgPSBtZW1vcnktPm1lbW9yeSgp
LmluaXRpYWwoKTsKLSAgICAgICAgICAgIGlmIChpbXBvcnRlZEluaXRpYWwgPCBkZWNsYXJlZElu
aXRpYWwpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGV4Y2VwdGlvbihjcmVhdGVKU1dlYkFzc2Vt
Ymx5TGlua0Vycm9yKGdsb2JhbE9iamVjdCwgdm0sIGltcG9ydEZhaWxNZXNzYWdlKGltcG9ydCwg
Ik1lbW9yeSBpbXBvcnQiLCAicHJvdmlkZWQgYW4gJ2luaXRpYWwnIHRoYXQgaXMgc21hbGxlciB0
aGFuIHRoZSBtb2R1bGUncyBkZWNsYXJlZCAnaW5pdGlhbCcgaW1wb3J0IG1lbW9yeSBzaXplIikp
KTsKLQotICAgICAgICAgICAgaWYgKFdhc206OlBhZ2VDb3VudCBkZWNsYXJlZE1heGltdW0gPSBt
b2R1bGVJbmZvcm1hdGlvbi5tZW1vcnkubWF4aW11bSgpKSB7Ci0gICAgICAgICAgICAgICAgV2Fz
bTo6UGFnZUNvdW50IGltcG9ydGVkTWF4aW11bSA9IG1lbW9yeS0+bWVtb3J5KCkubWF4aW11bSgp
OwotICAgICAgICAgICAgICAgIGlmICghaW1wb3J0ZWRNYXhpbXVtKQotICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gZXhjZXB0aW9uKGNyZWF0ZUpTV2ViQXNzZW1ibHlMaW5rRXJyb3IoZ2xvYmFs
T2JqZWN0LCB2bSwgaW1wb3J0RmFpbE1lc3NhZ2UoaW1wb3J0LCAiTWVtb3J5IGltcG9ydCIsICJk
aWQgbm90IGhhdmUgYSAnbWF4aW11bScgYnV0IHRoZSBtb2R1bGUgcmVxdWlyZXMgdGhhdCBpdCBk
b2VzIikpKTsKLQotICAgICAgICAgICAgICAgIGlmIChpbXBvcnRlZE1heGltdW0gPiBkZWNsYXJl
ZE1heGltdW0pCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiBleGNlcHRpb24oY3JlYXRlSlNX
ZWJBc3NlbWJseUxpbmtFcnJvcihnbG9iYWxPYmplY3QsIHZtLCBpbXBvcnRGYWlsTWVzc2FnZShp
bXBvcnQsICJNZW1vcnkgaW1wb3J0IiwgInByb3ZpZGVkIGEgJ21heGltdW0nIHRoYXQgaXMgbGFy
Z2VyIHRoYW4gdGhlIG1vZHVsZSdzIGRlY2xhcmVkICdtYXhpbXVtJyBpbXBvcnQgbWVtb3J5IHNp
emUiKSkpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiAoKG1lbW9yeS0+bWVtb3J5
KCkuc2hhcmluZ01vZGUoKSA9PSBXYXNtOjpNZW1vcnlTaGFyaW5nTW9kZTo6U2hhcmVkKSAhPSBt
b2R1bGVJbmZvcm1hdGlvbi5tZW1vcnkuaXNTaGFyZWQoKSkKLSAgICAgICAgICAgICAgICByZXR1
cm4gZXhjZXB0aW9uKGNyZWF0ZUpTV2ViQXNzZW1ibHlMaW5rRXJyb3IoZ2xvYmFsT2JqZWN0LCB2
bSwgaW1wb3J0RmFpbE1lc3NhZ2UoaW1wb3J0LCAiTWVtb3J5IGltcG9ydCIsICJwcm92aWRlZCBh
ICdzaGFyZWQnIHRoYXQgaXMgZGlmZmVybnQgZnJvbSB0aGUgbW9kdWxlJ3MgZGVjbGFyZWQgJ3No
YXJlZCcgaW1wb3J0IG1lbW9yeSBhdHRyaWJ1dGUiKSkpOwotCi0gICAgICAgICAgICAvLyBpaS4g
QXBwZW5kIHYgdG8gbWVtb3JpZXMuCi0gICAgICAgICAgICAvLyBpaWkuIEFwcGVuZCB2LltbTWVt
b3J5XV0gdG8gaW1wb3J0cy4KLSAgICAgICAgICAgIGpzSW5zdGFuY2UtPnNldE1lbW9yeSh2bSwg
bWVtb3J5KTsKLSAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgbnVs
bHB0cik7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICB9CiAgICAgfQog
ICAgIEFTU0VSVChtb2R1bGVSZWNvcmQtPmltcG9ydEVudHJpZXMoKS5zaXplKCkgPT0gbW9kdWxl
SW5mb3JtYXRpb24uaW1wb3J0cy5zaXplKCkpOwogCi0gICAgewotICAgICAgICBpZiAoISFtb2R1
bGVJbmZvcm1hdGlvbi5tZW1vcnkgJiYgbW9kdWxlSW5mb3JtYXRpb24ubWVtb3J5LmlzSW1wb3J0
KCkpIHsKLSAgICAgICAgICAgIC8vIFdlIHNob3VsZCBlaXRoZXIgaGF2ZSBhIE1lbW9yeSBpbXBv
cnQgb3Igd2Ugc2hvdWxkIGhhdmUgdGhyb3duIGFuIGV4Y2VwdGlvbi4KLSAgICAgICAgICAgIFJF
TEVBU0VfQVNTRVJUKGhhc01lbW9yeUltcG9ydCk7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAo
bW9kdWxlSW5mb3JtYXRpb24ubWVtb3J5ICYmICFoYXNNZW1vcnlJbXBvcnQpIHsKLSAgICAgICAg
ICAgIC8vIFdlIGNyZWF0ZSBhIG1lbW9yeSB3aGVuIGl0J3MgYSBtZW1vcnkgZGVmaW5pdGlvbi4K
LSAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKCFtb2R1bGVJbmZvcm1hdGlvbi5tZW1vcnkuaXNJ
bXBvcnQoKSk7Ci0KLSAgICAgICAgICAgIGF1dG8qIGpzTWVtb3J5ID0gSlNXZWJBc3NlbWJseU1l
bW9yeTo6dHJ5Q3JlYXRlKGdsb2JhbE9iamVjdCwgdm0sIGdsb2JhbE9iamVjdC0+d2ViQXNzZW1i
bHlNZW1vcnlTdHJ1Y3R1cmUoKSk7Ci0gICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRo
cm93U2NvcGUsIG51bGxwdHIpOworICAgIGJvb2wgaGFzTWVtb3J5SW1wb3J0ID0gbW9kdWxlSW5m
b3JtYXRpb24ubWVtb3J5LmlzSW1wb3J0KCk7CisgICAgaWYgKG1vZHVsZUluZm9ybWF0aW9uLm1l
bW9yeSAmJiAhaGFzTWVtb3J5SW1wb3J0KSB7CisgICAgICAgIC8vIFdlIGNyZWF0ZSBhIG1lbW9y
eSB3aGVuIGl0J3MgYSBtZW1vcnkgZGVmaW5pdGlvbi4KKyAgICAgICAgYXV0byoganNNZW1vcnkg
PSBKU1dlYkFzc2VtYmx5TWVtb3J5Ojp0cnlDcmVhdGUoZ2xvYmFsT2JqZWN0LCB2bSwgZ2xvYmFs
T2JqZWN0LT53ZWJBc3NlbWJseU1lbW9yeVN0cnVjdHVyZSgpKTsKKyAgICAgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTih0aHJvd1Njb3BlLCBudWxscHRyKTsKIAotICAgICAgICAgICAgUmVmUHRyPFdh
c206Ok1lbW9yeT4gbWVtb3J5ID0gV2FzbTo6TWVtb3J5Ojp0cnlDcmVhdGUobW9kdWxlSW5mb3Jt
YXRpb24ubWVtb3J5LmluaXRpYWwoKSwgbW9kdWxlSW5mb3JtYXRpb24ubWVtb3J5Lm1heGltdW0o
KSwgbW9kdWxlSW5mb3JtYXRpb24ubWVtb3J5LmlzU2hhcmVkKCkgPyBXYXNtOjpNZW1vcnlTaGFy
aW5nTW9kZTo6U2hhcmVkOiBXYXNtOjpNZW1vcnlTaGFyaW5nTW9kZTo6RGVmYXVsdCwKLSAgICAg
ICAgICAgICAgICBbJnZtXSAoV2FzbTo6TWVtb3J5OjpOb3RpZnlQcmVzc3VyZSkgeyB2bS5oZWFw
LmNvbGxlY3RBc3luYyhDb2xsZWN0aW9uU2NvcGU6OkZ1bGwpOyB9LAotICAgICAgICAgICAgICAg
IFsmdm1dIChXYXNtOjpNZW1vcnk6OlN5bmNUcnlUb1JlY2xhaW0pIHsgdm0uaGVhcC5jb2xsZWN0
U3luYyhDb2xsZWN0aW9uU2NvcGU6OkZ1bGwpOyB9LAotICAgICAgICAgICAgICAgIFsmdm0sIGpz
TWVtb3J5XSAoV2FzbTo6TWVtb3J5OjpHcm93U3VjY2VzcywgV2FzbTo6UGFnZUNvdW50IG9sZFBh
Z2VDb3VudCwgV2FzbTo6UGFnZUNvdW50IG5ld1BhZ2VDb3VudCkgeyBqc01lbW9yeS0+Z3Jvd1N1
Y2Nlc3NDYWxsYmFjayh2bSwgb2xkUGFnZUNvdW50LCBuZXdQYWdlQ291bnQpOyB9KTsKLSAgICAg
ICAgICAgIGlmICghbWVtb3J5KQotICAgICAgICAgICAgICAgIHJldHVybiBleGNlcHRpb24oY3Jl
YXRlT3V0T2ZNZW1vcnlFcnJvcihnbG9iYWxPYmplY3QpKTsKKyAgICAgICAgUmVmUHRyPFdhc206
Ok1lbW9yeT4gbWVtb3J5ID0gV2FzbTo6TWVtb3J5Ojp0cnlDcmVhdGUobW9kdWxlSW5mb3JtYXRp
b24ubWVtb3J5LmluaXRpYWwoKSwgbW9kdWxlSW5mb3JtYXRpb24ubWVtb3J5Lm1heGltdW0oKSwg
bW9kdWxlSW5mb3JtYXRpb24ubWVtb3J5LmlzU2hhcmVkKCkgPyBXYXNtOjpNZW1vcnlTaGFyaW5n
TW9kZTo6U2hhcmVkOiBXYXNtOjpNZW1vcnlTaGFyaW5nTW9kZTo6RGVmYXVsdCwKKyAgICAgICAg
ICAgIFsmdm1dKFdhc206Ok1lbW9yeTo6Tm90aWZ5UHJlc3N1cmUpIHsgdm0uaGVhcC5jb2xsZWN0
QXN5bmMoQ29sbGVjdGlvblNjb3BlOjpGdWxsKTsgfSwKKyAgICAgICAgICAgIFsmdm1dKFdhc206
Ok1lbW9yeTo6U3luY1RyeVRvUmVjbGFpbSkgeyB2bS5oZWFwLmNvbGxlY3RTeW5jKENvbGxlY3Rp
b25TY29wZTo6RnVsbCk7IH0sCisgICAgICAgICAgICBbJnZtLCBqc01lbW9yeV0oV2FzbTo6TWVt
b3J5OjpHcm93U3VjY2VzcywgV2FzbTo6UGFnZUNvdW50IG9sZFBhZ2VDb3VudCwgV2FzbTo6UGFn
ZUNvdW50IG5ld1BhZ2VDb3VudCkgeyBqc01lbW9yeS0+Z3Jvd1N1Y2Nlc3NDYWxsYmFjayh2bSwg
b2xkUGFnZUNvdW50LCBuZXdQYWdlQ291bnQpOyB9CisgICAgICAgICk7CisgICAgICAgIGlmICgh
bWVtb3J5KQorICAgICAgICAgICAgcmV0dXJuIGV4Y2VwdGlvbihjcmVhdGVPdXRPZk1lbW9yeUVy
cm9yKGdsb2JhbE9iamVjdCkpOwogCi0gICAgICAgICAgICBqc01lbW9yeS0+YWRvcHQobWVtb3J5
LnJlbGVhc2VOb25OdWxsKCkpOwotICAgICAgICAgICAganNJbnN0YW5jZS0+c2V0TWVtb3J5KHZt
LCBqc01lbW9yeSk7Ci0gICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUs
IG51bGxwdHIpOwotICAgICAgICB9CisgICAgICAgIGpzTWVtb3J5LT5hZG9wdChtZW1vcnkucmVs
ZWFzZU5vbk51bGwoKSk7CisgICAgICAgIGpzSW5zdGFuY2UtPnNldE1lbW9yeSh2bSwganNNZW1v
cnkpOworICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIG51bGxwdHIpOwog
ICAgIH0KLSAgICAKKwogICAgIGlmICghanNJbnN0YW5jZS0+bWVtb3J5KCkpIHsKICAgICAgICAg
Ly8gTWFrZSBzdXJlIHdlIGhhdmUgYSBkdW1teSBtZW1vcnksIHNvIHRoYXQgd2FzbSAtPiB3YXNt
IHRodW5rcyBhdm9pZCBjaGVja2luZyBmb3IgYSBudWxscHRyIE1lbW9yeSB3aGVuIHRyeWluZyB0
byBzZXQgcGlubmVkIHJlZ2lzdGVycy4KKyAgICAgICAgLy8gV2hlbiB0aGVyZSBpcyBhIG1lbW9y
eSBpbXBvcnQsIHRoaXMgd2lsbCBiZSByZXBsYWNlZCBsYXRlciBpbiB0aGUgbW9kdWxlIHJlY29y
ZCBpbXBvcnQgaW5pdGlhbGl6YXRpb24uCiAgICAgICAgIGF1dG8qIGpzTWVtb3J5ID0gSlNXZWJB
c3NlbWJseU1lbW9yeTo6dHJ5Q3JlYXRlKGdsb2JhbE9iamVjdCwgdm0sIGdsb2JhbE9iamVjdC0+
d2ViQXNzZW1ibHlNZW1vcnlTdHJ1Y3R1cmUoKSk7CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04odGhyb3dTY29wZSwgbnVsbHB0cik7CiAgICAgICAgIGpzTWVtb3J5LT5hZG9wdChXYXNtOjpN
ZW1vcnk6OmNyZWF0ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L2pzL1dlYkFzc2VtYmx5TW9kdWxlUmVjb3JkLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlUmVjb3JkLmNwcAppbmRleCA2YWFkNjIxNzJiZDk1NjJi
ZWQ4MzRmNjA1NGU3N2MxMTY0YWM3ZGQ3Li41OTllMjM0ZjY1NTQ0MGFjZTJlNzViODg0ZTU1YjI0
OTY3Mjk3MGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJB
c3NlbWJseU1vZHVsZVJlY29yZC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
anMvV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQuY3BwCkBAIC0xMzMsMjAgKzEzMyw2IEBAIHZvaWQg
V2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQ6OmluaXRpYWxpemVJbXBvcnRzQW5kRXhwb3J0cyhKU0ds
b2JhbE9iamVjdCogZ2xvYmFsCiAgICAgfTsKIAogICAgIGZvciAoY29uc3QgYXV0byYgaW1wb3J0
IDogbW9kdWxlSW5mb3JtYXRpb24uaW1wb3J0cykgewotICAgICAgICAvLyBWYWxpZGF0aW9uIGFu
ZCBsaW5raW5nIG90aGVyIHRoYW4gV2FzbTo6RXh0ZXJuYWxLaW5kOjpGdW5jdGlvbiBpcyBhbHJl
YWR5IGRvbmUgaW4gSlNXZWJBc3NlbWJseUluc3RhbmNlLgotICAgICAgICAvLyBFdmVudHVhbGx5
IHdlIHdpbGwgbW92ZSBhbGwgdGhlIGxpbmtpbmcgY29kZSBpbiBKU1dlYkFzc2VtYmx5SW5zdGFu
Y2UgaGVyZSBhbmQgcmVtb3ZlIHRoaXMgc3dpdGNoIHN0YXRlbWVudC4KLSAgICAgICAgc3dpdGNo
IChpbXBvcnQua2luZCkgewotICAgICAgICBjYXNlIFdhc206OkV4dGVybmFsS2luZDo6RnVuY3Rp
b246Ci0gICAgICAgIGNhc2UgV2FzbTo6RXh0ZXJuYWxLaW5kOjpHbG9iYWw6Ci0gICAgICAgIGNh
c2UgV2FzbTo6RXh0ZXJuYWxLaW5kOjpUYWJsZToKLSAgICAgICAgY2FzZSBXYXNtOjpFeHRlcm5h
bEtpbmQ6OkV4Y2VwdGlvbjoKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFdhc206
OkV4dGVybmFsS2luZDo6TWVtb3J5OgotICAgICAgICAgICAgaWYgKGNyZWF0aW9uTW9kZSA9PSBX
YXNtOjpDcmVhdGlvbk1vZGU6OkZyb21KUykKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0KICAgICAgICAgSWRlbnRpZmllciBtb2R1bGVO
YW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgU3RyaW5nOjpmcm9tVVRGOChpbXBvcnQu
bW9kdWxlKSk7CiAgICAgICAgIElkZW50aWZpZXIgZmllbGROYW1lID0gSWRlbnRpZmllcjo6ZnJv
bVN0cmluZyh2bSwgU3RyaW5nOjpmcm9tVVRGOChpbXBvcnQuZmllbGQpKTsKICAgICAgICAgSlNW
YWx1ZSB2YWx1ZTsKQEAgLTQwOSw3ICszOTUsNiBAQCB2b2lkIFdlYkFzc2VtYmx5TW9kdWxlUmVj
b3JkOjppbml0aWFsaXplSW1wb3J0c0FuZEV4cG9ydHMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbAog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIAotICAgICAgICAvLyBNZW1vcnkgaW5pdGlh
bGl6YXRpb24gd2lsbCBvbmx5IG9jY3VyIGhlcmUgaWYgdGhlIGNyZWF0aW9uIG1vZGUgd2FzIHRo
cm91Z2ggdGhlIG1vZHVsZSBsb2FkZXIuCiAgICAgICAgIGNhc2UgV2FzbTo6RXh0ZXJuYWxLaW5k
OjpNZW1vcnk6CiAgICAgICAgICAgICBKU1dlYkFzc2VtYmx5TWVtb3J5KiBtZW1vcnkgPSBqc0R5
bmFtaWNDYXN0PEpTV2ViQXNzZW1ibHlNZW1vcnkqPih2bSwgdmFsdWUpOwogICAgICAgICAgICAg
Ly8gaS4gSWYgdiBpcyBub3QgYSBXZWJBc3NlbWJseS5NZW1vcnkgb2JqZWN0LCB0aHJvdyBhIFdl
YkFzc2VtYmx5LkxpbmtFcnJvci4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IGVh
MWJmMzY3MjVhZmFmZWVhMWVkZmJmMGM4MjU4MGFiNmUxYjEzZjUuLjRhZmVlZGFjZDkyMjZhZmY0
OTYzMjJlZWIzNjU1NDZjOWVkZjc4MTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIwIEBACisyMDIyLTAxLTExICBBc3VtdSBUYWtpa2F3YSAgPGFzdW11QGlnYWxp
YS5jb20+CisKKyAgICAgICAgW1dhc21dIFVuaWZ5IG1lbW9yeSBpbXBvcnQgaGFuZGxpbmcgaW4g
bW9kdWxlIGxvYWRlciBhbmQgSlMgY2FzZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzNDExNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkanVzdCBXYXNtIFdQVCB0ZXN0IGV4cGVjdGF0aW9ucyBub3cg
dGhhdCBnZXR0ZXIgb3JkZXJpbmcgdGVzdHMKKyAgICAgICAgc2hvdWxkIHBhc3MuCisKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9jb25zdHJ1Y3Rvci9pbnN0YW50aWF0
ZS5hbnktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pz
YXBpL2NvbnN0cnVjdG9yL2luc3RhbnRpYXRlLmFueS53b3JrZXItZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL2luc3RhbmNlL2NvbnN0cnVjdG9y
LmFueS1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNh
cGkvaW5zdGFuY2UvY29uc3RydWN0b3IuYW55Lndvcmtlci1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vd2ViYXBpL2luc3RhbnRpYXRlU3RyZWFtaW5nLmFu
eS1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vd2ViYXBp
L2luc3RhbnRpYXRlU3RyZWFtaW5nLmFueS53b3JrZXItZXhwZWN0ZWQudHh0OgorCiAyMDIyLTAx
LTExICBSb2IgQnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0NTUyBjb250YWlu
XSBVcGRhdGUgY3NzLWNvbnRhaW4gdGVzdHMgZnJvbSBXUFQKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9jb25zdHJ1Y3Rv
ci9pbnN0YW50aWF0ZS5hbnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL2NvbnN0cnVjdG9yL2luc3RhbnRpYXRlLmFu
eS1leHBlY3RlZC50eHQKaW5kZXggNTA2NDdjMjUzZGY5NTkyNTNiMmRlYzM5YmVkY2EzOWQ2ZmU3
Y2IwMy4uODY0MmE1ZWFlMDYwMTM1MWFmZDE1NTQyMTNiODM2ZTFkNzkxMzA4MCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBp
L2NvbnN0cnVjdG9yL2luc3RhbnRpYXRlLmFueS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL2NvbnN0cnVjdG9y
L2luc3RhbnRpYXRlLmFueS1leHBlY3RlZC50eHQKQEAgLTksOCArOSw4IEBAIFBBU1MgRW1wdHkg
bW9kdWxlIHdpdGggdW5kZWZpbmVkIGltcG9ydHMgYXJndW1lbnQ6IEJ1ZmZlclNvdXJjZSBhcmd1
bWVudAogUEFTUyBFbXB0eSBtb2R1bGUgd2l0aCB1bmRlZmluZWQgaW1wb3J0cyBhcmd1bWVudDog
TW9kdWxlIGFyZ3VtZW50CiBQQVNTIEVtcHR5IG1vZHVsZSB3aXRoIGVtcHR5IGltcG9ydHMgYXJn
dW1lbnQ6IEJ1ZmZlclNvdXJjZSBhcmd1bWVudAogUEFTUyBFbXB0eSBtb2R1bGUgd2l0aCBlbXB0
eSBpbXBvcnRzIGFyZ3VtZW50OiBNb2R1bGUgYXJndW1lbnQKLUZBSUwgZ2V0dGVyIG9yZGVyIGZv
ciBpbXBvcnRzIG9iamVjdDogQnVmZmVyU291cmNlIGFyZ3VtZW50IGFzc2VydF9hcnJheV9lcXVh
bHM6IGV4cGVjdGVkIHByb3BlcnR5IDEgdG8gYmUgImdsb2JhbDEgZ2V0dGVyIiBidXQgZ290ICJt
ZW1vcnkgZ2V0dGVyIiAoZXhwZWN0ZWQgYXJyYXkgWyJtb2R1bGUgZ2V0dGVyIiwgImdsb2JhbDEg
Z2V0dGVyIiwgIm1vZHVsZTIgZ2V0dGVyIiwgImdsb2JhbDMgZ2V0dGVyIiwgIm1vZHVsZSBnZXR0
ZXIiLCAibWVtb3J5IGdldHRlciIsICJtb2R1bGUgZ2V0dGVyIiwgImdsb2JhbDIgZ2V0dGVyIl0g
Z290IFsibW9kdWxlIGdldHRlciIsICJtZW1vcnkgZ2V0dGVyIiwgIm1vZHVsZSBnZXR0ZXIiLCAi
Z2xvYmFsMSBnZXR0ZXIiLCAibW9kdWxlMiBnZXR0ZXIiLCAiZ2xvYmFsMyBnZXR0ZXIiLCAibW9k
dWxlIGdldHRlciIsICJnbG9iYWwyIGdldHRlciJdKQotRkFJTCBnZXR0ZXIgb3JkZXIgZm9yIGlt
cG9ydHMgb2JqZWN0OiBNb2R1bGUgYXJndW1lbnQgYXNzZXJ0X2FycmF5X2VxdWFsczogZXhwZWN0
ZWQgcHJvcGVydHkgMSB0byBiZSAiZ2xvYmFsMSBnZXR0ZXIiIGJ1dCBnb3QgIm1lbW9yeSBnZXR0
ZXIiIChleHBlY3RlZCBhcnJheSBbIm1vZHVsZSBnZXR0ZXIiLCAiZ2xvYmFsMSBnZXR0ZXIiLCAi
bW9kdWxlMiBnZXR0ZXIiLCAiZ2xvYmFsMyBnZXR0ZXIiLCAibW9kdWxlIGdldHRlciIsICJtZW1v
cnkgZ2V0dGVyIiwgIm1vZHVsZSBnZXR0ZXIiLCAiZ2xvYmFsMiBnZXR0ZXIiXSBnb3QgWyJtb2R1
bGUgZ2V0dGVyIiwgIm1lbW9yeSBnZXR0ZXIiLCAibW9kdWxlIGdldHRlciIsICJnbG9iYWwxIGdl
dHRlciIsICJtb2R1bGUyIGdldHRlciIsICJnbG9iYWwzIGdldHRlciIsICJtb2R1bGUgZ2V0dGVy
IiwgImdsb2JhbDIgZ2V0dGVyIl0pCitQQVNTIGdldHRlciBvcmRlciBmb3IgaW1wb3J0cyBvYmpl
Y3Q6IEJ1ZmZlclNvdXJjZSBhcmd1bWVudAorUEFTUyBnZXR0ZXIgb3JkZXIgZm9yIGltcG9ydHMg
b2JqZWN0OiBNb2R1bGUgYXJndW1lbnQKIFBBU1MgaW1wb3J0czogQnVmZmVyU291cmNlIGFyZ3Vt
ZW50CiBQQVNTIGltcG9ydHM6IE1vZHVsZSBhcmd1bWVudAogUEFTUyBpbXBvcnRzIHdpdGggZW1w
dHkgbW9kdWxlIG5hbWVzOiBCdWZmZXJTb3VyY2UgYXJndW1lbnQKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9jb25zdHJ1
Y3Rvci9pbnN0YW50aWF0ZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9jb25zdHJ1Y3Rvci9pbnN0
YW50aWF0ZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCA1MDY0N2MyNTNkZjk1OTI1M2Iy
ZGVjMzliZWRjYTM5ZDZmZTdjYjAzLi44NjQyYTVlYWUwNjAxMzUxYWZkMTU1NDIxM2I4MzZlMWQ3
OTEzMDgwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dhc20vanNhcGkvY29uc3RydWN0b3IvaW5zdGFudGlhdGUuYW55Lndvcmtlci1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93YXNtL2pzYXBpL2NvbnN0cnVjdG9yL2luc3RhbnRpYXRlLmFueS53b3JrZXItZXhwZWN0ZWQu
dHh0CkBAIC05LDggKzksOCBAQCBQQVNTIEVtcHR5IG1vZHVsZSB3aXRoIHVuZGVmaW5lZCBpbXBv
cnRzIGFyZ3VtZW50OiBCdWZmZXJTb3VyY2UgYXJndW1lbnQKIFBBU1MgRW1wdHkgbW9kdWxlIHdp
dGggdW5kZWZpbmVkIGltcG9ydHMgYXJndW1lbnQ6IE1vZHVsZSBhcmd1bWVudAogUEFTUyBFbXB0
eSBtb2R1bGUgd2l0aCBlbXB0eSBpbXBvcnRzIGFyZ3VtZW50OiBCdWZmZXJTb3VyY2UgYXJndW1l
bnQKIFBBU1MgRW1wdHkgbW9kdWxlIHdpdGggZW1wdHkgaW1wb3J0cyBhcmd1bWVudDogTW9kdWxl
IGFyZ3VtZW50Ci1GQUlMIGdldHRlciBvcmRlciBmb3IgaW1wb3J0cyBvYmplY3Q6IEJ1ZmZlclNv
dXJjZSBhcmd1bWVudCBhc3NlcnRfYXJyYXlfZXF1YWxzOiBleHBlY3RlZCBwcm9wZXJ0eSAxIHRv
IGJlICJnbG9iYWwxIGdldHRlciIgYnV0IGdvdCAibWVtb3J5IGdldHRlciIgKGV4cGVjdGVkIGFy
cmF5IFsibW9kdWxlIGdldHRlciIsICJnbG9iYWwxIGdldHRlciIsICJtb2R1bGUyIGdldHRlciIs
ICJnbG9iYWwzIGdldHRlciIsICJtb2R1bGUgZ2V0dGVyIiwgIm1lbW9yeSBnZXR0ZXIiLCAibW9k
dWxlIGdldHRlciIsICJnbG9iYWwyIGdldHRlciJdIGdvdCBbIm1vZHVsZSBnZXR0ZXIiLCAibWVt
b3J5IGdldHRlciIsICJtb2R1bGUgZ2V0dGVyIiwgImdsb2JhbDEgZ2V0dGVyIiwgIm1vZHVsZTIg
Z2V0dGVyIiwgImdsb2JhbDMgZ2V0dGVyIiwgIm1vZHVsZSBnZXR0ZXIiLCAiZ2xvYmFsMiBnZXR0
ZXIiXSkKLUZBSUwgZ2V0dGVyIG9yZGVyIGZvciBpbXBvcnRzIG9iamVjdDogTW9kdWxlIGFyZ3Vt
ZW50IGFzc2VydF9hcnJheV9lcXVhbHM6IGV4cGVjdGVkIHByb3BlcnR5IDEgdG8gYmUgImdsb2Jh
bDEgZ2V0dGVyIiBidXQgZ290ICJtZW1vcnkgZ2V0dGVyIiAoZXhwZWN0ZWQgYXJyYXkgWyJtb2R1
bGUgZ2V0dGVyIiwgImdsb2JhbDEgZ2V0dGVyIiwgIm1vZHVsZTIgZ2V0dGVyIiwgImdsb2JhbDMg
Z2V0dGVyIiwgIm1vZHVsZSBnZXR0ZXIiLCAibWVtb3J5IGdldHRlciIsICJtb2R1bGUgZ2V0dGVy
IiwgImdsb2JhbDIgZ2V0dGVyIl0gZ290IFsibW9kdWxlIGdldHRlciIsICJtZW1vcnkgZ2V0dGVy
IiwgIm1vZHVsZSBnZXR0ZXIiLCAiZ2xvYmFsMSBnZXR0ZXIiLCAibW9kdWxlMiBnZXR0ZXIiLCAi
Z2xvYmFsMyBnZXR0ZXIiLCAibW9kdWxlIGdldHRlciIsICJnbG9iYWwyIGdldHRlciJdKQorUEFT
UyBnZXR0ZXIgb3JkZXIgZm9yIGltcG9ydHMgb2JqZWN0OiBCdWZmZXJTb3VyY2UgYXJndW1lbnQK
K1BBU1MgZ2V0dGVyIG9yZGVyIGZvciBpbXBvcnRzIG9iamVjdDogTW9kdWxlIGFyZ3VtZW50CiBQ
QVNTIGltcG9ydHM6IEJ1ZmZlclNvdXJjZSBhcmd1bWVudAogUEFTUyBpbXBvcnRzOiBNb2R1bGUg
YXJndW1lbnQKIFBBU1MgaW1wb3J0cyB3aXRoIGVtcHR5IG1vZHVsZSBuYW1lczogQnVmZmVyU291
cmNlIGFyZ3VtZW50CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dhc20vanNhcGkvaW5zdGFuY2UvY29uc3RydWN0b3IuYW55LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9q
c2FwaS9pbnN0YW5jZS9jb25zdHJ1Y3Rvci5hbnktZXhwZWN0ZWQudHh0CmluZGV4IDU3MzhkNzQ4
MjJlYTE5OTljZTAyNTI5MjNjODYyMzFmN2M5Mjk0ODguLjE1NDRhZDk1MjJhMDMzMTJiYzI1NGE3
YTI5YTg2NGUzZGI0MzVhNjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9pbnN0YW5jZS9jb25zdHJ1Y3Rvci5hbnktZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2FzbS9qc2FwaS9pbnN0YW5jZS9jb25zdHJ1Y3Rvci5hbnktZXhwZWN0ZWQudHh0CkBAIC03
LDcgKzcsNyBAQCBQQVNTIENhbGxpbmcKIFBBU1MgRW1wdHkgbW9kdWxlIHdpdGhvdXQgaW1wb3J0
cyBhcmd1bWVudAogUEFTUyBFbXB0eSBtb2R1bGUgd2l0aCB1bmRlZmluZWQgaW1wb3J0cyBhcmd1
bWVudAogUEFTUyBFbXB0eSBtb2R1bGUgd2l0aCBlbXB0eSBpbXBvcnRzIGFyZ3VtZW50Ci1GQUlM
IGdldHRlciBvcmRlciBmb3IgaW1wb3J0cyBvYmplY3QgYXNzZXJ0X2FycmF5X2VxdWFsczogZXhw
ZWN0ZWQgcHJvcGVydHkgMSB0byBiZSAiZ2xvYmFsMSBnZXR0ZXIiIGJ1dCBnb3QgIm1lbW9yeSBn
ZXR0ZXIiIChleHBlY3RlZCBhcnJheSBbIm1vZHVsZSBnZXR0ZXIiLCAiZ2xvYmFsMSBnZXR0ZXIi
LCAibW9kdWxlMiBnZXR0ZXIiLCAiZ2xvYmFsMyBnZXR0ZXIiLCAibW9kdWxlIGdldHRlciIsICJt
ZW1vcnkgZ2V0dGVyIiwgIm1vZHVsZSBnZXR0ZXIiLCAiZ2xvYmFsMiBnZXR0ZXIiXSBnb3QgWyJt
b2R1bGUgZ2V0dGVyIiwgIm1lbW9yeSBnZXR0ZXIiLCAibW9kdWxlIGdldHRlciIsICJnbG9iYWwx
IGdldHRlciIsICJtb2R1bGUyIGdldHRlciIsICJnbG9iYWwzIGdldHRlciIsICJtb2R1bGUgZ2V0
dGVyIiwgImdsb2JhbDIgZ2V0dGVyIl0pCitQQVNTIGdldHRlciBvcmRlciBmb3IgaW1wb3J0cyBv
YmplY3QKIFBBU1MgaW1wb3J0cwogUEFTUyBpbXBvcnRzIHdpdGggZW1wdHkgbW9kdWxlIG5hbWVz
CiBQQVNTIGltcG9ydHMgd2l0aCBlbXB0eSBuYW1lcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL2luc3RhbmNlL2NvbnN0
cnVjdG9yLmFueS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL2luc3RhbmNlL2NvbnN0cnVjdG9yLmFueS53
b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IDU3MzhkNzQ4MjJlYTE5OTljZTAyNTI5MjNjODYyMzFm
N2M5Mjk0ODguLjE1NDRhZDk1MjJhMDMzMTJiYzI1NGE3YTI5YTg2NGUzZGI0MzVhNjUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9q
c2FwaS9pbnN0YW5jZS9jb25zdHJ1Y3Rvci5hbnkud29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvaW5z
dGFuY2UvY29uc3RydWN0b3IuYW55Lndvcmtlci1leHBlY3RlZC50eHQKQEAgLTcsNyArNyw3IEBA
IFBBU1MgQ2FsbGluZwogUEFTUyBFbXB0eSBtb2R1bGUgd2l0aG91dCBpbXBvcnRzIGFyZ3VtZW50
CiBQQVNTIEVtcHR5IG1vZHVsZSB3aXRoIHVuZGVmaW5lZCBpbXBvcnRzIGFyZ3VtZW50CiBQQVNT
IEVtcHR5IG1vZHVsZSB3aXRoIGVtcHR5IGltcG9ydHMgYXJndW1lbnQKLUZBSUwgZ2V0dGVyIG9y
ZGVyIGZvciBpbXBvcnRzIG9iamVjdCBhc3NlcnRfYXJyYXlfZXF1YWxzOiBleHBlY3RlZCBwcm9w
ZXJ0eSAxIHRvIGJlICJnbG9iYWwxIGdldHRlciIgYnV0IGdvdCAibWVtb3J5IGdldHRlciIgKGV4
cGVjdGVkIGFycmF5IFsibW9kdWxlIGdldHRlciIsICJnbG9iYWwxIGdldHRlciIsICJtb2R1bGUy
IGdldHRlciIsICJnbG9iYWwzIGdldHRlciIsICJtb2R1bGUgZ2V0dGVyIiwgIm1lbW9yeSBnZXR0
ZXIiLCAibW9kdWxlIGdldHRlciIsICJnbG9iYWwyIGdldHRlciJdIGdvdCBbIm1vZHVsZSBnZXR0
ZXIiLCAibWVtb3J5IGdldHRlciIsICJtb2R1bGUgZ2V0dGVyIiwgImdsb2JhbDEgZ2V0dGVyIiwg
Im1vZHVsZTIgZ2V0dGVyIiwgImdsb2JhbDMgZ2V0dGVyIiwgIm1vZHVsZSBnZXR0ZXIiLCAiZ2xv
YmFsMiBnZXR0ZXIiXSkKK1BBU1MgZ2V0dGVyIG9yZGVyIGZvciBpbXBvcnRzIG9iamVjdAogUEFT
UyBpbXBvcnRzCiBQQVNTIGltcG9ydHMgd2l0aCBlbXB0eSBtb2R1bGUgbmFtZXMKIFBBU1MgaW1w
b3J0cyB3aXRoIGVtcHR5IG5hbWVzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vd2ViYXBpL2luc3RhbnRpYXRlU3RyZWFtaW5nLmFu
eS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dhc20vd2ViYXBpL2luc3RhbnRpYXRlU3RyZWFtaW5nLmFueS1leHBlY3RlZC50eHQKaW5k
ZXggYzQwOGYwZmYzYmU3ZDNhYWQwOTZhZjVlYjJiMGNmMGZhNjlhMGE2NS4uZThmNDc4ZWYyYTYw
YmQ2NGY3MTFiNzYxMDUwMWY3OWJiMjQ2OWE5ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL3dlYmFwaS9pbnN0YW50aWF0ZVN0cmVh
bWluZy5hbnktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2FzbS93ZWJhcGkvaW5zdGFudGlhdGVTdHJlYW1pbmcuYW55LWV4cGVj
dGVkLnR4dApAQCAtMiw3ICsyLDcgQEAKIFBBU1MgRW1wdHkgbW9kdWxlIHdpdGhvdXQgaW1wb3J0
cyBhcmd1bWVudAogUEFTUyBFbXB0eSBtb2R1bGUgd2l0aCB1bmRlZmluZWQgaW1wb3J0cyBhcmd1
bWVudAogUEFTUyBFbXB0eSBtb2R1bGUgd2l0aCBlbXB0eSBpbXBvcnRzIGFyZ3VtZW50Ci1GQUlM
IGdldHRlciBvcmRlciBmb3IgaW1wb3J0cyBvYmplY3QgYXNzZXJ0X2FycmF5X2VxdWFsczogZXhw
ZWN0ZWQgcHJvcGVydHkgMSB0byBiZSAiZ2xvYmFsMSBnZXR0ZXIiIGJ1dCBnb3QgIm1lbW9yeSBn
ZXR0ZXIiIChleHBlY3RlZCBhcnJheSBbIm1vZHVsZSBnZXR0ZXIiLCAiZ2xvYmFsMSBnZXR0ZXIi
LCAibW9kdWxlMiBnZXR0ZXIiLCAiZ2xvYmFsMyBnZXR0ZXIiLCAibW9kdWxlIGdldHRlciIsICJt
ZW1vcnkgZ2V0dGVyIiwgIm1vZHVsZSBnZXR0ZXIiLCAiZ2xvYmFsMiBnZXR0ZXIiXSBnb3QgWyJt
b2R1bGUgZ2V0dGVyIiwgIm1lbW9yeSBnZXR0ZXIiLCAibW9kdWxlIGdldHRlciIsICJnbG9iYWwx
IGdldHRlciIsICJtb2R1bGUyIGdldHRlciIsICJnbG9iYWwzIGdldHRlciIsICJtb2R1bGUgZ2V0
dGVyIiwgImdsb2JhbDIgZ2V0dGVyIl0pCitQQVNTIGdldHRlciBvcmRlciBmb3IgaW1wb3J0cyBv
YmplY3QKIFBBU1MgaW1wb3J0cwogUEFTUyBpbXBvcnRzIHdpdGggZW1wdHkgbW9kdWxlIG5hbWVz
CiBQQVNTIGltcG9ydHMgd2l0aCBlbXB0eSBuYW1lcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL3dlYmFwaS9pbnN0YW50aWF0ZVN0
cmVhbWluZy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS93ZWJhcGkvaW5zdGFudGlhdGVTdHJlYW1pbmcuYW55
Lndvcmtlci1leHBlY3RlZC50eHQKaW5kZXggYzQwOGYwZmYzYmU3ZDNhYWQwOTZhZjVlYjJiMGNm
MGZhNjlhMGE2NS4uZThmNDc4ZWYyYTYwYmQ2NGY3MTFiNzYxMDUwMWY3OWJiMjQ2OWE5ZiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNt
L3dlYmFwaS9pbnN0YW50aWF0ZVN0cmVhbWluZy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vd2ViYXBp
L2luc3RhbnRpYXRlU3RyZWFtaW5nLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0yLDcgKzIs
NyBAQAogUEFTUyBFbXB0eSBtb2R1bGUgd2l0aG91dCBpbXBvcnRzIGFyZ3VtZW50CiBQQVNTIEVt
cHR5IG1vZHVsZSB3aXRoIHVuZGVmaW5lZCBpbXBvcnRzIGFyZ3VtZW50CiBQQVNTIEVtcHR5IG1v
ZHVsZSB3aXRoIGVtcHR5IGltcG9ydHMgYXJndW1lbnQKLUZBSUwgZ2V0dGVyIG9yZGVyIGZvciBp
bXBvcnRzIG9iamVjdCBhc3NlcnRfYXJyYXlfZXF1YWxzOiBleHBlY3RlZCBwcm9wZXJ0eSAxIHRv
IGJlICJnbG9iYWwxIGdldHRlciIgYnV0IGdvdCAibWVtb3J5IGdldHRlciIgKGV4cGVjdGVkIGFy
cmF5IFsibW9kdWxlIGdldHRlciIsICJnbG9iYWwxIGdldHRlciIsICJtb2R1bGUyIGdldHRlciIs
ICJnbG9iYWwzIGdldHRlciIsICJtb2R1bGUgZ2V0dGVyIiwgIm1lbW9yeSBnZXR0ZXIiLCAibW9k
dWxlIGdldHRlciIsICJnbG9iYWwyIGdldHRlciJdIGdvdCBbIm1vZHVsZSBnZXR0ZXIiLCAibWVt
b3J5IGdldHRlciIsICJtb2R1bGUgZ2V0dGVyIiwgImdsb2JhbDEgZ2V0dGVyIiwgIm1vZHVsZTIg
Z2V0dGVyIiwgImdsb2JhbDMgZ2V0dGVyIiwgIm1vZHVsZSBnZXR0ZXIiLCAiZ2xvYmFsMiBnZXR0
ZXIiXSkKK1BBU1MgZ2V0dGVyIG9yZGVyIGZvciBpbXBvcnRzIG9iamVjdAogUEFTUyBpbXBvcnRz
CiBQQVNTIGltcG9ydHMgd2l0aCBlbXB0eSBtb2R1bGUgbmFtZXMKIFBBU1MgaW1wb3J0cyB3aXRo
IGVtcHR5IG5hbWVzCmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hh
bmdlTG9nCmluZGV4IDY5NmM4MTJmNTUwYWVlNzgyM2YzMmVlNDJlNjkxMzA2NWJkMTI5OGUuLjNi
ODEzZDQzOGU5MjM1NTI0Yzg1NDA5OWQ0OGRlZWIyMDk3NjY2YWMgMTAwNjQ0Ci0tLSBhL0pTVGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIw
MjItMDEtMTEgIEFzdW11IFRha2lrYXdhICA8YXN1bXVAaWdhbGlhLmNvbT4KKworICAgICAgICBb
V2FzbV0gVW5pZnkgbWVtb3J5IGltcG9ydCBoYW5kbGluZyBpbiBtb2R1bGUgbG9hZGVyIGFuZCBK
UyBjYXNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjM0MTE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkIGFuIGluc3RhbnRpYXRpb24gdGVzdCBjYXNlIHRoYXQgdGVzdHMgdGhhdCBpbnN0YW50aWF0
aW5nIHRoZSBzYW1lCisgICAgICAgIGJpbmFyeSBtb2R1bGUgdHdpY2Ugd2lsbCBub3QgY3Jhc2gu
CisKKyAgICAgICAgKiB3YXNtL2pzLWFwaS93ZWItYXNzZW1ibHktaW5zdGFudGlhdGUuanM6Cisg
ICAgICAgIChhc3NlcnQuYXN5bmNUZXN0LmFzeW5jIHRlc3QpOgorICAgICAgICAoYXNzZXJ0LmFz
eW5jVGVzdCk6CisKIDIwMjItMDEtMTAgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNv
bT4KIAogICAgICAgICBVbnJldmlld2VkLCBhZGQgYSBiaXQgbW9yZSBJbnRsLkxvY2FsZSBob3Vy
Q3ljbGUgdGVzdHMgdG8gaW52ZXN0aWdhdGUgZmxha2luZXNzCmRpZmYgLS1naXQgYS9KU1Rlc3Rz
L3dhc20vanMtYXBpL3dlYi1hc3NlbWJseS1pbnN0YW50aWF0ZS5qcyBiL0pTVGVzdHMvd2FzbS9q
cy1hcGkvd2ViLWFzc2VtYmx5LWluc3RhbnRpYXRlLmpzCmluZGV4IDIzN2IzYTg5YWNjMDU5ZmE5
MTkwYTg5NjUzYzg4MjdlZTc0MGVmYTIuLmNlYzJhMzAyNTYzZTJhNzU4NzUxZTlkODE5YjNjZTA2
OGE1NjZiNmMgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvd2FzbS9qcy1hcGkvd2ViLWFzc2VtYmx5LWlu
c3RhbnRpYXRlLmpzCisrKyBiL0pTVGVzdHMvd2FzbS9qcy1hcGkvd2ViLWFzc2VtYmx5LWluc3Rh
bnRpYXRlLmpzCkBAIC0xOTAsMyArMTkwLDMwIEBAIGFzc2VydC5lcShXZWJBc3NlbWJseS5pbnN0
YW50aWF0ZS5sZW5ndGgsIDEpOwogCiAgICAgYXNzZXJ0LmFzeW5jVGVzdCh0ZXN0KCkpOwogfQor
Cit7CisgICAgY29uc3QgYnVpbGRlciA9IChuZXcgQnVpbGRlcigpKQorICAgICAgICAgIC5UeXBl
KCkuRW5kKCkKKyAgICAgICAgICAuSW1wb3J0KCkuTWVtb3J5KCJpbXAiLCAibWVtb3J5Iiwge2lu
aXRpYWw6MTAwfSkuRW5kKCkKKyAgICAgICAgICAuRnVuY3Rpb24oKS5FbmQoKQorICAgICAgICAg
IC5FeHBvcnQoKQorICAgICAgICAgICAgICAuRnVuY3Rpb24oImZvbyIpCisgICAgICAgICAgLkVu
ZCgpCisgICAgICAgICAgLkNvZGUoKQorICAgICAgICAgICAgICAuRnVuY3Rpb24oImZvbyIsIHsg
cGFyYW1zOiBbXSwgcmV0OiAiaTMyIiB9KQorICAgICAgICAgICAgICAgICAgLkkzMkNvbnN0KDEp
CisgICAgICAgICAgICAgIC5FbmQoKQorICAgICAgICAgIC5FbmQoKTsKKworICAgIGNvbnN0IGJp
biA9IGJ1aWxkZXIuV2ViQXNzZW1ibHkoKS5nZXQoKTsKKworICAgIGFzeW5jIGZ1bmN0aW9uIHRl
c3QoKSB7CisgICAgICAgIGxldCBtb2R1bGUgPSBuZXcgV2ViQXNzZW1ibHkuTW9kdWxlKGJpbik7
CisgICAgICAgIGxldCBpbnN0YW5jZTEgPSBhd2FpdCBXZWJBc3NlbWJseS5pbnN0YW50aWF0ZSht
b2R1bGUsIHsgaW1wOiB7IG1lbW9yeTogbmV3IFdlYkFzc2VtYmx5Lk1lbW9yeSh7IGluaXRpYWw6
IDEwMCB9KSB9IH0pOworICAgICAgICBhc3NlcnQudHJ1dGh5KGluc3RhbmNlMSBpbnN0YW5jZW9m
IFdlYkFzc2VtYmx5Lkluc3RhbmNlKTsKKyAgICAgICAgbGV0IGluc3RhbmNlMiA9IGF3YWl0IFdl
YkFzc2VtYmx5Lmluc3RhbnRpYXRlKG1vZHVsZSwgeyBpbXA6IHsgbWVtb3J5OiBuZXcgV2ViQXNz
ZW1ibHkuTWVtb3J5KHsgaW5pdGlhbDogMTAwIH0pIH0gfSk7CisgICAgICAgIGFzc2VydC50cnV0
aHkoaW5zdGFuY2UyIGluc3RhbmNlb2YgV2ViQXNzZW1ibHkuSW5zdGFuY2UpOworICAgIH0KKwor
ICAgIGFzc2VydC5hc3luY1Rlc3QodGVzdCgpKTsKK30K
</data>

          </attachment>
      

    </bug>

</bugzilla>